{"report_id":"2884b672-2baa-4433-b3ad-5306b7401bca","version":0,"status":"done","tags":[],"date":"2026-07-27T15:37:23Z","url":{"schema":"https","addr":"vote-fwa.fun/","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"final":{"url":{"schema":"https","addr":"vote-fwa.fun/","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"title":"vote-fwa.fun/","dom":{"size":229,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with no line terminators","md5":"73f4abbf241b09deef4c9610a7f66a9d","sha1":"1b13be50ca6578ce25820a935c8542d0ce590520","sha256":"cff7ca8054adfdf0cb178c6f97211f86d249648c6823f373f511254c4a735f22","sha512":"5c28f155350b44a6f5e32a724b073bb4da5cd0e7eb57c9369f0e6d6f5bdec6e30e8d8e92aac692318046e3792793257b8d23e8b2e60b360615fae065ca29f459","ssdeep":"","tlshash":"1bd09763cca2808c067086f0adb1d12c0909895c9312ac507dc021c80dc63528ca34a4","dom_hash":"domhash6731a414e743ae888880855c26d55d58","first_seen":"2026-07-27T09:22:57.499937Z","last_seen":"2026-08-01T18:29:40.095675Z","times_seen":93,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"vote-fwa.fun/","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":0,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T15:37:23Z","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":"vote-fwa.fun","ip":{"addr":"172.67.189.179","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2026-07-25","domain_rank":0,"first_seen":"2026-07-27T09:22:55.020701Z","last_seen":"2026-07-27T09:22:55.020701Z","alert_count":0,"request_count":4,"received_data":240738,"sent_data":2161,"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"]}]}],"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":"vote-fwa.fun/7e6ffb58.js","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"66e56a209e184a76287ce525cbd88c94","sha1":"5cb03f3e402ffac10b2a809b98f2b365222e0e82","sha256":"7e6ffb5886a304ee6305d985709b0234b3594c17e1b68e1e61901ffa6b119b12","sha512":"6a2b5cbf7bed82840013c5327f5cd22a2bd22b0ed9f110bb88aa5daffcc9da7632bb404cbf63ba05b4bc58b1f26a93548c233b3cfb26bc438653394ccd147871","ssdeep":"6144:VxdDZqIibuIkxci2W47tij9i6tntyTXlKaKkPxPf7zdjawSgw78F278PtntGTl9G:rdDcI3IkSk47tij9i6tntyTXlKaKkPxr","tlshash":"b3344a807790b8ab92fd72d8d02f562690abc4127d58f4c5ea68dcf904f9a81c37de35","size":237502,"data":"","first_seen":"2026-07-27T09:22:57.51221Z","last_seen":"2026-07-27T15:37:24.356816Z","times_seen":16,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"vote-fwa.fun/","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T15:36:49.349Z","timestamp":1785166609349,"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":"vote-fwa.fun","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 25 Jul 2026 07:47:27 GMT","end":"Fri, 23 Oct 2026 08:44:52 GMT"},"fingerprint":{"sha1":"0D:2A:CA:A9:E6:B3:7F:A4:42:AC:0D:9C:15:D9:97:88:C3:0B:AC:86","sha256":"11:14:51:E5:90:83:88:3D:97:CC:F2:EF:AD:61:EA:4F:BA:B0:C3:21:C1:40:A2:FF:43:C9:9A:1C:6B:2D:32:B6"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: vote-fwa.fun\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/3 200 \r\ncontent-type: text/html;charset=utf-8\r\ndate: Mon, 27 Jul 2026 15:36:49 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=IevqI9qYsMe%2B6aBrwZI4xZgP%2Ft%2FiXcREoq6qLlL5LpxJDFDgv5SO4ZQ8PPAvb%2B2hMMYndw5hncx1UzbrWKG2ln13H1sJq1X26RP5Qt0rvoOMljCS62ax%2FPIEFm%2B4hV8%3D\"}]}\r\nvary: Accept-Encoding\r\nserver: cloudflare\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncontent-encoding: zstd\r\npriority: u=0,i\r\ncf-ray: a21cb8ccdbca568b-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"]}],"data":{"size":284,"size_decoded":827,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with no line terminators","md5":"473127b5a45e9efc61fd0530f0017d20","sha1":"cdb2f9121e5ddc23d286202b3974b64784c501a0","sha256":"ef9d6532edef34cd8481ea10173d98dbfb7b1f3c257011fc2c68040dc623b2e6","sha512":"f07a4564bc5730b4f551de9590b946f76b1c2448552e90ad4abb7776e5fe3e0fbe744acebc08890e588e91242e472d90d86c6abb7813f49fba197263598285cc","ssdeep":"","tlshash":"46d02ba7dc9184cc15705bf4acb1d17c4a098a9ca752fc507dd425980ed1769cd93894","first_seen":"2026-07-27T09:22:57.505487Z","last_seen":"2026-07-27T15:37:24.355573Z","times_seen":16,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxzY3JpcHQgc3JjPSIvN2U2ZmZiNTguanMiPjwvc2NyaXB0PjxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPjwvaGVhZD48Ym9keT48bm9zY3JpcHQ+WW91IG5lZWQgdG8gZW5hYmxlIEphdmFTY3JpcHQgdG8gcnVuIHRoaXMgYXBwLjwvbm9zY3JpcHQ+PGRpdiBpZD0icm9vdCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4="}},"time_used":187,"timings":{"blocked":-1,"dns":43,"connect":17,"send":0,"wait":127,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vote-fwa.fun/7e6ffb58.js","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://vote-fwa.fun/","date":"2026-07-27T15:36:49.735Z","timestamp":1785166609735,"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":"vote-fwa.fun","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 25 Jul 2026 07:47:27 GMT","end":"Fri, 23 Oct 2026 08:44:52 GMT"},"fingerprint":{"sha1":"0D:2A:CA:A9:E6:B3:7F:A4:42:AC:0D:9C:15:D9:97:88:C3:0B:AC:86","sha256":"11:14:51:E5:90:83:88:3D:97:CC:F2:EF:AD:61:EA:4F:BA:B0:C3:21:C1:40:A2:FF:43:C9:9A:1C:6B:2D:32:B6"}}},"request":{"raw":"GET /7e6ffb58.js HTTP/1.1\r\nHost: vote-fwa.fun\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://vote-fwa.fun/\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\ncache-control: public, max-age=14400, s-maxage=60\r\ncontent-type: application/javascript\r\nlast-modified: Mon, 27 Jul 2026 09:22:22 GMT\r\ndate: Mon, 27 Jul 2026 15:36:49 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=7mfqlHqLKn6SGwjnkyX4odUYqUf65nrMSX9HxFqSVS5L429i%2F%2FtQv7RuBs8y0h8PNL2zSEqfHSmfZWuPs3KQBBE85xyJp3Rkr21iu7WuxLp0L6mpO6rdbazeZGnFqcc%3D\"}]}\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nage: 22466\r\ncf-cache-status: HIT\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=2,i=?0\r\ncf-ray: a21cb8cedbf9568b-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"]}],"data":{"size":237502,"size_decoded":129849,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"66e56a209e184a76287ce525cbd88c94","sha1":"5cb03f3e402ffac10b2a809b98f2b365222e0e82","sha256":"7e6ffb5886a304ee6305d985709b0234b3594c17e1b68e1e61901ffa6b119b12","sha512":"6a2b5cbf7bed82840013c5327f5cd22a2bd22b0ed9f110bb88aa5daffcc9da7632bb404cbf63ba05b4bc58b1f26a93548c233b3cfb26bc438653394ccd147871","ssdeep":"6144:VxdDZqIibuIkxci2W47tij9i6tntyTXlKaKkPxPf7zdjawSgw78F278PtntGTl9G:rdDcI3IkSk47tij9i6tntyTXlKaKkPxr","tlshash":"b3344a807790b8ab92fd72d8d02f562690abc4127d58f4c5ea68dcf904f9a81c37de35","first_seen":"2026-07-27T09:22:57.51221Z","last_seen":"2026-07-27T15:37:24.356816Z","times_seen":16,"resource_available":true,"data":"InVzZSBzdHJpY3QiOyhzZWxmWyJidWlsZF8wMG51a215MXFsd2MiXT1zZWxmWyJidWlsZF8wMG51a215MXFsd2MiXXx8W10pLnB1c2goW1siNTQ1Il0sezM3NzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGlzQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjUyKTt2YXIgdHJ5VG9TdHJpbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODcwKTt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe2lmKGlzQ2FsbGFibGUoYXJndW1lbnQpKXJldHVybiBhcmd1bWVudDt0aHJvdyBuZXcgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sNjI4OTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGlzUG9zc2libGVQcm90b3R5cGU9X193ZWJwYWNrX3JlcXVpcmVfXyg4NTYwKTt2YXIgJFN0cmluZz1TdHJpbmc7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGFyZ3VtZW50KXtpZihpc1Bvc3NpYmxlUHJvdG90eXBlKGFyZ3VtZW50KSlyZXR1cm4gYXJndW1lbnQ7dGhyb3cgbmV3ICRUeXBlRXJyb3IoIkNhbid0IHNldCAiKyRTdHJpbmcoYXJndW1lbnQpKyIgYXMgYSBwcm90b3R5cGUiKX19LDU5NDg6ZnVuY3Rpb24obW9kdWxlKXt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe2lmKHR5cGVvZiBhcmd1bWVudD09InN0cmluZyIpcmV0dXJuIGFyZ3VtZW50O3Rocm93IG5ldyAkVHlwZUVycm9yKCJBcmd1bWVudCBpcyBub3QgYSBzdHJpbmciKX19LDU4NjI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBpc1Byb3RvdHlwZU9mPV9fd2VicGFja19yZXF1aXJlX18oNTgwMik7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0LFByb3RvdHlwZSl7aWYoaXNQcm90b3R5cGVPZihQcm90b3R5cGUsaXQpKXJldHVybiBpdDt0aHJvdyBuZXcgJFR5cGVFcnJvcigiSW5jb3JyZWN0IGludm9jYXRpb24iKX19LDQ0Nzk6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzUpO3ZhciAkU3RyaW5nPVN0cmluZzt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe2lmKGFyZ3VtZW50PT09dm9pZCAwfHxpc09iamVjdChhcmd1bWVudCkpcmV0dXJuIGFyZ3VtZW50O3Rocm93IG5ldyAkVHlwZUVycm9yKCRTdHJpbmcoYXJndW1lbnQpKyIgaXMgbm90IGFuIG9iamVjdCBvciB1bmRlZmluZWQiKX19LDQ2NDI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzUpO3ZhciAkU3RyaW5nPVN0cmluZzt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe2lmKGlzT2JqZWN0KGFyZ3VtZW50KSlyZXR1cm4gYXJndW1lbnQ7dGhyb3cgbmV3ICRUeXBlRXJyb3IoJFN0cmluZyhhcmd1bWVudCkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSw1ODQ5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNDIpO3ZhciAkVHlwZUVycm9yPVR5cGVFcnJvcjttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihhcmd1bWVudCl7aWYoY2xhc3NvZihhcmd1bWVudCk9PT0iVWludDhBcnJheSIpcmV0dXJuIGFyZ3VtZW50O3Rocm93IG5ldyAkVHlwZUVycm9yKCJBcmd1bWVudCBpcyBub3QgYW4gVWludDhBcnJheSIpfX0sODIyODpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPXR5cGVvZiBBcnJheUJ1ZmZlciE9InVuZGVmaW5lZCImJnR5cGVvZiBEYXRhVmlldyE9InVuZGVmaW5lZCJ9LDYzOTM6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciB1bmN1cnJ5VGhpc0FjY2Vzc29yPV9fd2VicGFja19yZXF1aXJlX18oMzI1Nyk7dmFyIGNsYXNzb2Y9X193ZWJwYWNrX3JlcXVpcmVfXygzNjg5KTt2YXIgQXJyYXlCdWZmZXIxPWdsb2JhbFRoaXMxLkFycmF5QnVmZmVyO3ZhciBUeXBlRXJyb3IxPWdsb2JhbFRoaXMxLlR5cGVFcnJvcjttb2R1bGUuZXhwb3J0cz1BcnJheUJ1ZmZlcjEmJnVuY3VycnlUaGlzQWNjZXNzb3IoQXJyYXlCdWZmZXIxLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIsImdldCIpfHxmdW5jdGlvbihPKXtpZihjbGFzc29mKE8pIT09IkFycmF5QnVmZmVyIil0aHJvdyBuZXcgVHlwZUVycm9yMSgiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gTy5ieXRlTGVuZ3RofX0sNjg3NzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIE5BVElWRV9BUlJBWV9CVUZGRVI9X193ZWJwYWNrX3JlcXVpcmVfXyg4MjI4KTt2YXIgYXJyYXlCdWZmZXJCeXRlTGVuZ3RoPV9fd2VicGFja19yZXF1aXJlX18oNjM5Myk7dmFyIERhdGFWaWV3MT1nbG9iYWxUaGlzMS5EYXRhVmlldzttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihPKXtpZighTkFUSVZFX0FSUkFZX0JVRkZFUnx8YXJyYXlCdWZmZXJCeXRlTGVuZ3RoKE8pIT09MClyZXR1cm4gZmFsc2U7dHJ5e25ldyBEYXRhVmlldzEoTyk7cmV0dXJuIGZhbHNlfWNhdGNoKGVycm9yKXtyZXR1cm4gdHJ1ZX19fSw0MzAwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaXNEZXRhY2hlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4NzcpO3ZhciAkVHlwZUVycm9yPVR5cGVFcnJvcjttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihpdCl7aWYoaXNEZXRhY2hlZChpdCkpdGhyb3cgbmV3ICRUeXBlRXJyb3IoIkFycmF5QnVmZmVyIGlzIGRldGFjaGVkIik7cmV0dXJuIGl0fX0sMTMzMzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgdW5jdXJyeVRoaXNBY2Nlc3Nvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDMyNTcpO3ZhciB0b0luZGV4PV9fd2VicGFja19yZXF1aXJlX18oNTgwMyk7dmFyIG5vdERldGFjaGVkPV9fd2VicGFja19yZXF1aXJlX18oNDMwMCk7dmFyIGFycmF5QnVmZmVyQnl0ZUxlbmd0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYzOTMpO3ZhciBkZXRhY2hUcmFuc2ZlcmFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg3OTk0KTt2YXIgUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVI9X193ZWJwYWNrX3JlcXVpcmVfXyg2OTU1KTt2YXIgc3RydWN0dXJlZENsb25lPWdsb2JhbFRoaXMxLnN0cnVjdHVyZWRDbG9uZTt2YXIgQXJyYXlCdWZmZXIxPWdsb2JhbFRoaXMxLkFycmF5QnVmZmVyO3ZhciBEYXRhVmlldzE9Z2xvYmFsVGhpczEuRGF0YVZpZXc7dmFyIG1pbj1NYXRoLm1pbjt2YXIgQXJyYXlCdWZmZXJQcm90b3R5cGU9QXJyYXlCdWZmZXIxLnByb3RvdHlwZTt2YXIgRGF0YVZpZXdQcm90b3R5cGU9RGF0YVZpZXcxLnByb3RvdHlwZTt2YXIgc2xpY2U9dW5jdXJyeVRoaXMoQXJyYXlCdWZmZXJQcm90b3R5cGUuc2xpY2UpO3ZhciBpc1Jlc2l6YWJsZT11bmN1cnJ5VGhpc0FjY2Vzc29yKEFycmF5QnVmZmVyUHJvdG90eXBlLCJyZXNpemFibGUiLCJnZXQiKTt2YXIgbWF4Qnl0ZUxlbmd0aD11bmN1cnJ5VGhpc0FjY2Vzc29yKEFycmF5QnVmZmVyUHJvdG90eXBlLCJtYXhCeXRlTGVuZ3RoIiwiZ2V0Iik7dmFyIGdldEludDg9dW5jdXJyeVRoaXMoRGF0YVZpZXdQcm90b3R5cGUuZ2V0SW50OCk7dmFyIHNldEludDg9dW5jdXJyeVRoaXMoRGF0YVZpZXdQcm90b3R5cGUuc2V0SW50OCk7bW9kdWxlLmV4cG9ydHM9KFBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSfHxkZXRhY2hUcmFuc2ZlcmFibGUpJiZmdW5jdGlvbihhcnJheUJ1ZmZlcixuZXdMZW5ndGgscHJlc2VydmVSZXNpemFiaWxpdHkpe3ZhciBieXRlTGVuZ3RoPWFycmF5QnVmZmVyQnl0ZUxlbmd0aChhcnJheUJ1ZmZlcik7dmFyIG5ld0J5dGVMZW5ndGg9bmV3TGVuZ3RoPT09dm9pZCAwP2J5dGVMZW5ndGg6dG9JbmRleChuZXdMZW5ndGgpO3ZhciBmaXhlZExlbmd0aD0haXNSZXNpemFibGV8fCFpc1Jlc2l6YWJsZShhcnJheUJ1ZmZlcik7dmFyIG5ld0J1ZmZlcjtub3REZXRhY2hlZChhcnJheUJ1ZmZlcik7aWYoUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVIpe2FycmF5QnVmZmVyPXN0cnVjdHVyZWRDbG9uZShhcnJheUJ1ZmZlcix7dHJhbnNmZXI6W2FycmF5QnVmZmVyXX0pO2lmKGJ5dGVMZW5ndGg9PT1uZXdCeXRlTGVuZ3RoJiYocHJlc2VydmVSZXNpemFiaWxpdHl8fGZpeGVkTGVuZ3RoKSlyZXR1cm4gYXJyYXlCdWZmZXJ9aWYoYnl0ZUxlbmd0aD49bmV3Qnl0ZUxlbmd0aCYmKCFwcmVzZXJ2ZVJlc2l6YWJpbGl0eXx8Zml4ZWRMZW5ndGgpKXtuZXdCdWZmZXI9c2xpY2UoYXJyYXlCdWZmZXIsMCxuZXdCeXRlTGVuZ3RoKX1lbHNle3ZhciBvcHRpb25zPXByZXNlcnZlUmVzaXphYmlsaXR5JiYhZml4ZWRMZW5ndGgmJm1heEJ5dGVMZW5ndGg/e21heEJ5dGVMZW5ndGg6bWF4Qnl0ZUxlbmd0aChhcnJheUJ1ZmZlcil9OnZvaWQgMDtuZXdCdWZmZXI9bmV3IEFycmF5QnVmZmVyMShuZXdCeXRlTGVuZ3RoLG9wdGlvbnMpO3ZhciBhPW5ldyBEYXRhVmlldzEoYXJyYXlCdWZmZXIpO3ZhciBiPW5ldyBEYXRhVmlldzEobmV3QnVmZmVyKTt2YXIgY29weUxlbmd0aD1taW4obmV3Qnl0ZUxlbmd0aCxieXRlTGVuZ3RoKTtmb3IodmFyIGk9MDtpPGNvcHlMZW5ndGg7aSsrKXNldEludDgoYixpLGdldEludDgoYSxpKSl9aWYoIVBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSKWRldGFjaFRyYW5zZmVyYWJsZShhcnJheUJ1ZmZlcik7cmV0dXJuIG5ld0J1ZmZlcn19LDE0MDc6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBOQVRJVkVfQVJSQVlfQlVGRkVSPV9fd2VicGFja19yZXF1aXJlX18oODIyOCk7dmFyIERFU0NSSVBUT1JTPV9fd2VicGFja19yZXF1aXJlX18oNDQ1Myk7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIGlzQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjUyKTt2YXIgaXNPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMTM1KTt2YXIgaGFzT3duPV9fd2VicGFja19yZXF1aXJlX18oNTg2KTt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNDIpO3ZhciB0cnlUb1N0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDk4NzApO3ZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXygzMzkyKTt2YXIgZGVmaW5lQnVpbHRJbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyNjkpO3ZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3I9X193ZWJwYWNrX3JlcXVpcmVfXyg2MDYxKTt2YXIgaXNQcm90b3R5cGVPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MDIpO3ZhciBnZXRQcm90b3R5cGVPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY5MzApO3ZhciBzZXRQcm90b3R5cGVPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxODIpO3ZhciB3ZWxsS25vd25TeW1ib2w9X193ZWJwYWNrX3JlcXVpcmVfXygyNjc0KTt2YXIgdWlkPV9fd2VicGFja19yZXF1aXJlX18oMjUpO3ZhciBJbnRlcm5hbFN0YXRlTW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oMjI0Nik7dmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlPUludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTt2YXIgZ2V0SW50ZXJuYWxTdGF0ZT1JbnRlcm5hbFN0YXRlTW9kdWxlLmdldDt2YXIgSW50OEFycmF5MT1nbG9iYWxUaGlzMS5JbnQ4QXJyYXk7dmFyIEludDhBcnJheVByb3RvdHlwZT1JbnQ4QXJyYXkxJiZJbnQ4QXJyYXkxLnByb3RvdHlwZTt2YXIgVWludDhDbGFtcGVkQXJyYXkxPWdsb2JhbFRoaXMxLlVpbnQ4Q2xhbXBlZEFycmF5O3ZhciBVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZT1VaW50OENsYW1wZWRBcnJheTEmJlVpbnQ4Q2xhbXBlZEFycmF5MS5wcm90b3R5cGU7dmFyIFR5cGVkQXJyYXk9SW50OEFycmF5MSYmZ2V0UHJvdG90eXBlT2YoSW50OEFycmF5MSk7dmFyIFR5cGVkQXJyYXlQcm90b3R5cGU9SW50OEFycmF5UHJvdG90eXBlJiZnZXRQcm90b3R5cGVPZihJbnQ4QXJyYXlQcm90b3R5cGUpO3ZhciBPYmplY3RQcm90b3R5cGU9T2JqZWN0LnByb3RvdHlwZTt2YXIgVHlwZUVycm9yMT1nbG9iYWxUaGlzMS5UeXBlRXJyb3I7dmFyIFRPX1NUUklOR19UQUc9d2VsbEtub3duU3ltYm9sKCJ0b1N0cmluZ1RhZyIpO3ZhciBUWVBFRF9BUlJBWV9UQUc9dWlkKCJUWVBFRF9BUlJBWV9UQUciKTt2YXIgVFlQRURfQVJSQVlfQ09OU1RSVUNUT1I9IlR5cGVkQXJyYXlDb25zdHJ1Y3RvciI7dmFyIE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M9TkFUSVZFX0FSUkFZX0JVRkZFUiYmISFzZXRQcm90b3R5cGVPZiYmY2xhc3NvZihnbG9iYWxUaGlzMS5vcGVyYSkhPT0iT3BlcmEiO3ZhciBUWVBFRF9BUlJBWV9UQUdfUkVRVUlSRUQ9ZmFsc2U7dmFyIE5BTUUsQ29uc3RydWN0b3IsUHJvdG90eXBlO3ZhciBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdD17SW50OEFycmF5OjEsVWludDhBcnJheToxLFVpbnQ4Q2xhbXBlZEFycmF5OjEsSW50MTZBcnJheToyLFVpbnQxNkFycmF5OjIsSW50MzJBcnJheTo0LFVpbnQzMkFycmF5OjQsRmxvYXQzMkFycmF5OjQsRmxvYXQ2NEFycmF5Ojh9O3ZhciBCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3Q9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fTt2YXIgaXNWaWV3PWZ1bmN0aW9uIGlzVmlldzIoaXQpe2lmKCFpc09iamVjdChpdCkpcmV0dXJuIGZhbHNlO3ZhciBrbGFzcz1jbGFzc29mKGl0KTtyZXR1cm4ga2xhc3M9PT0iRGF0YVZpZXcifHxoYXNPd24oVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3Qsa2xhc3MpfHxoYXNPd24oQmlnSW50QXJyYXlDb25zdHJ1Y3RvcnNMaXN0LGtsYXNzKX07dmFyIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1mdW5jdGlvbihpdCl7dmFyIHByb3RvPWdldFByb3RvdHlwZU9mKGl0KTtpZighaXNPYmplY3QocHJvdG8pKXJldHVybjt2YXIgc3RhdGU9Z2V0SW50ZXJuYWxTdGF0ZShwcm90byk7cmV0dXJuIHN0YXRlJiZoYXNPd24oc3RhdGUsVFlQRURfQVJSQVlfQ09OU1RSVUNUT1IpP3N0YXRlW1RZUEVEX0FSUkFZX0NPTlNUUlVDVE9SXTpnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IocHJvdG8pfTt2YXIgaXNUeXBlZEFycmF5PWZ1bmN0aW9uKGl0KXtpZighaXNPYmplY3QoaXQpKXJldHVybiBmYWxzZTt2YXIga2xhc3M9Y2xhc3NvZihpdCk7cmV0dXJuIGhhc093bihUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCxrbGFzcyl8fGhhc093bihCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3Qsa2xhc3MpfTt2YXIgYVR5cGVkQXJyYXk9ZnVuY3Rpb24oaXQpe2lmKGlzVHlwZWRBcnJheShpdCkpcmV0dXJuIGl0O3Rocm93IG5ldyBUeXBlRXJyb3IxKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX07dmFyIGFUeXBlZEFycmF5Q29uc3RydWN0b3I9ZnVuY3Rpb24oQyl7aWYoaXNDYWxsYWJsZShDKSYmKCFzZXRQcm90b3R5cGVPZnx8aXNQcm90b3R5cGVPZihUeXBlZEFycmF5LEMpKSlyZXR1cm4gQzt0aHJvdyBuZXcgVHlwZUVycm9yMSh0cnlUb1N0cmluZyhDKSsiIGlzIG5vdCBhIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9yIil9O3ZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kPWZ1bmN0aW9uKEtFWSxwcm9wZXJ0eSxmb3JjZWQsb3B0aW9ucyl7aWYoIURFU0NSSVBUT1JTKXJldHVybjtpZihmb3JjZWQpZm9yKHZhciBBUlJBWSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCl7dmFyIFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1nbG9iYWxUaGlzMVtBUlJBWV07aWYoVHlwZWRBcnJheUNvbnN0cnVjdG9yJiZoYXNPd24oVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZSxLRVkpKXRyeXtkZWxldGUgVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZVtLRVldfWNhdGNoKGVycm9yKXt0cnl7VHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZVtLRVldPXByb3BlcnR5fWNhdGNoKGVycm9yMil7fX19aWYoIVR5cGVkQXJyYXlQcm90b3R5cGVbS0VZXXx8Zm9yY2VkKXtkZWZpbmVCdWlsdEluKFR5cGVkQXJyYXlQcm90b3R5cGUsS0VZLGZvcmNlZD9wcm9wZXJ0eTpOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTJiZJbnQ4QXJyYXlQcm90b3R5cGVbS0VZXXx8cHJvcGVydHksb3B0aW9ucyl9fTt2YXIgZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZD1mdW5jdGlvbihLRVkscHJvcGVydHksZm9yY2VkKXt2YXIgQVJSQVksVHlwZWRBcnJheUNvbnN0cnVjdG9yO2lmKCFERVNDUklQVE9SUylyZXR1cm47aWYoc2V0UHJvdG90eXBlT2Ype2lmKGZvcmNlZClmb3IoQVJSQVkgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3Qpe1R5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1nbG9iYWxUaGlzMVtBUlJBWV07aWYoVHlwZWRBcnJheUNvbnN0cnVjdG9yJiZoYXNPd24oVHlwZWRBcnJheUNvbnN0cnVjdG9yLEtFWSkpdHJ5e2RlbGV0ZSBUeXBlZEFycmF5Q29uc3RydWN0b3JbS0VZXX1jYXRjaChlcnJvcil7fX1pZighVHlwZWRBcnJheVtLRVldfHxmb3JjZWQpe3RyeXtyZXR1cm4gZGVmaW5lQnVpbHRJbihUeXBlZEFycmF5LEtFWSxmb3JjZWQ/cHJvcGVydHk6TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyYmVHlwZWRBcnJheVtLRVldfHxwcm9wZXJ0eSl9Y2F0Y2goZXJyb3Ipe319ZWxzZSByZXR1cm59Zm9yKEFSUkFZIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KXtUeXBlZEFycmF5Q29uc3RydWN0b3I9Z2xvYmFsVGhpczFbQVJSQVldO2lmKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciYmKCFUeXBlZEFycmF5Q29uc3RydWN0b3JbS0VZXXx8Zm9yY2VkKSl7ZGVmaW5lQnVpbHRJbihUeXBlZEFycmF5Q29uc3RydWN0b3IsS0VZLHByb3BlcnR5KX19fTtmb3IoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCl7Q29uc3RydWN0b3I9Z2xvYmFsVGhpczFbTkFNRV07UHJvdG90eXBlPUNvbnN0cnVjdG9yJiZDb25zdHJ1Y3Rvci5wcm90b3R5cGU7aWYoUHJvdG90eXBlKWVuZm9yY2VJbnRlcm5hbFN0YXRlKFByb3RvdHlwZSlbVFlQRURfQVJSQVlfQ09OU1RSVUNUT1JdPUNvbnN0cnVjdG9yO2Vsc2UgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUz1mYWxzZX1mb3IoTkFNRSBpbiBCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3Qpe0NvbnN0cnVjdG9yPWdsb2JhbFRoaXMxW05BTUVdO1Byb3RvdHlwZT1Db25zdHJ1Y3RvciYmQ29uc3RydWN0b3IucHJvdG90eXBlO2lmKFByb3RvdHlwZSllbmZvcmNlSW50ZXJuYWxTdGF0ZShQcm90b3R5cGUpW1RZUEVEX0FSUkFZX0NPTlNUUlVDVE9SXT1Db25zdHJ1Y3Rvcn1pZighTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXU3x8IWlzQ2FsbGFibGUoVHlwZWRBcnJheSl8fFR5cGVkQXJyYXk9PT1GdW5jdGlvbi5wcm90b3R5cGUpe1R5cGVkQXJyYXk9ZnVuY3Rpb24gVHlwZWRBcnJheTIoKXt0aHJvdyBuZXcgVHlwZUVycm9yMSgiSW5jb3JyZWN0IGludm9jYXRpb24iKX07aWYoTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUylmb3IoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCl7aWYoZ2xvYmFsVGhpczFbTkFNRV0pc2V0UHJvdG90eXBlT2YoZ2xvYmFsVGhpczFbTkFNRV0sVHlwZWRBcnJheSl9fWlmKCFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTfHwhVHlwZWRBcnJheVByb3RvdHlwZXx8VHlwZWRBcnJheVByb3RvdHlwZT09PU9iamVjdFByb3RvdHlwZSl7VHlwZWRBcnJheVByb3RvdHlwZT1UeXBlZEFycmF5LnByb3RvdHlwZTtpZihOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTKWZvcihOQU1FIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KXtpZihnbG9iYWxUaGlzMVtOQU1FXSlzZXRQcm90b3R5cGVPZihnbG9iYWxUaGlzMVtOQU1FXS5wcm90b3R5cGUsVHlwZWRBcnJheVByb3RvdHlwZSl9fWlmKE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MmJmdldFByb3RvdHlwZU9mKFVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlKSE9PVR5cGVkQXJyYXlQcm90b3R5cGUpe3NldFByb3RvdHlwZU9mKFVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlLFR5cGVkQXJyYXlQcm90b3R5cGUpfWlmKERFU0NSSVBUT1JTJiYhaGFzT3duKFR5cGVkQXJyYXlQcm90b3R5cGUsVE9fU1RSSU5HX1RBRykpe1RZUEVEX0FSUkFZX1RBR19SRVFVSVJFRD10cnVlO2RlZmluZUJ1aWx0SW5BY2Nlc3NvcihUeXBlZEFycmF5UHJvdG90eXBlLFRPX1NUUklOR19UQUcse2NvbmZpZ3VyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBpc09iamVjdCh0aGlzKT90aGlzW1RZUEVEX0FSUkFZX1RBR106dm9pZCAwfX0pO2ZvcihOQU1FIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KWlmKGdsb2JhbFRoaXMxW05BTUVdKXtjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoZ2xvYmFsVGhpczFbTkFNRV0sVFlQRURfQVJSQVlfVEFHLE5BTUUpfX1tb2R1bGUuZXhwb3J0cz17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxUWVBFRF9BUlJBWV9UQUc6VFlQRURfQVJSQVlfVEFHX1JFUVVJUkVEJiZUWVBFRF9BUlJBWV9UQUcsYVR5cGVkQXJyYXksYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixleHBvcnRUeXBlZEFycmF5TWV0aG9kLGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QsZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLGlzVmlldyxpc1R5cGVkQXJyYXksVHlwZWRBcnJheSxUeXBlZEFycmF5UHJvdG90eXBlfX0sOTMxMDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHRvT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNTM2NCk7dmFyIHRvQWJzb2x1dGVJbmRleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwMjcpO3ZhciBsZW5ndGhPZkFycmF5TGlrZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OSk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24gZmlsbCh2YWx1ZSl7dmFyIE89dG9PYmplY3QodGhpcyk7dmFyIGxlbmd0aD1sZW5ndGhPZkFycmF5TGlrZShPKTt2YXIgYXJndW1lbnRzTGVuZ3RoPWFyZ3VtZW50cy5sZW5ndGg7dmFyIGluZGV4PXRvQWJzb2x1dGVJbmRleChhcmd1bWVudHNMZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGxlbmd0aCk7dmFyIGVuZD1hcmd1bWVudHNMZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO3ZhciBlbmRQb3M9ZW5kPT09dm9pZCAwP2xlbmd0aDp0b0Fic29sdXRlSW5kZXgoZW5kLGxlbmd0aCk7d2hpbGUoZW5kUG9zPmluZGV4KU9baW5kZXgrK109dmFsdWU7cmV0dXJuIE99fSw4NDYzOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgbGVuZ3RoT2ZBcnJheUxpa2U9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKENvbnN0cnVjdG9yLGxpc3QsJGxlbmd0aCl7dmFyIGluZGV4PTA7dmFyIGxlbmd0aD1hcmd1bWVudHMubGVuZ3RoPjI/JGxlbmd0aDpsZW5ndGhPZkFycmF5TGlrZShsaXN0KTt2YXIgcmVzdWx0PW5ldyBDb25zdHJ1Y3RvcihsZW5ndGgpO3doaWxlKGxlbmd0aD5pbmRleClyZXN1bHRbaW5kZXhdPWxpc3RbaW5kZXgrK107cmV0dXJuIHJlc3VsdH19LDc1NjQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBiaW5kPV9fd2VicGFja19yZXF1aXJlX18oODY5Myk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgSW5kZXhlZE9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NDApO3ZhciB0b09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzNjQpO3ZhciB0b1Byb3BlcnR5S2V5PV9fd2VicGFja19yZXF1aXJlX18oMzY5Nik7dmFyIGxlbmd0aE9mQXJyYXlMaWtlPV9fd2VicGFja19yZXF1aXJlX18oODY5KTt2YXIgb2JqZWN0Q3JlYXRlPV9fd2VicGFja19yZXF1aXJlX18oMTQyNSk7dmFyIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0NjMpO3ZhciAkQXJyYXk9QXJyYXk7dmFyIHB1c2g9dW5jdXJyeVRoaXMoW10ucHVzaCk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oJHRoaXMsY2FsbGJhY2tmbix0aGF0LHNwZWNpZmljQ29uc3RydWN0b3Ipe3ZhciBPPXRvT2JqZWN0KCR0aGlzKTt2YXIgc2VsZjE9SW5kZXhlZE9iamVjdChPKTt2YXIgYm91bmRGdW5jdGlvbj1iaW5kKGNhbGxiYWNrZm4sdGhhdCk7dmFyIHRhcmdldD1vYmplY3RDcmVhdGUobnVsbCk7dmFyIGxlbmd0aD1sZW5ndGhPZkFycmF5TGlrZShzZWxmMSk7dmFyIGluZGV4PTA7dmFyIENvbnN0cnVjdG9yLGtleSx2YWx1ZTtmb3IoO2xlbmd0aD5pbmRleDtpbmRleCsrKXt2YWx1ZT1zZWxmMVtpbmRleF07a2V5PXRvUHJvcGVydHlLZXkoYm91bmRGdW5jdGlvbih2YWx1ZSxpbmRleCxPKSk7aWYoa2V5IGluIHRhcmdldClwdXNoKHRhcmdldFtrZXldLHZhbHVlKTtlbHNlIHRhcmdldFtrZXldPVt2YWx1ZV19aWYoc3BlY2lmaWNDb25zdHJ1Y3Rvcil7Q29uc3RydWN0b3I9c3BlY2lmaWNDb25zdHJ1Y3RvcihPKTtpZihDb25zdHJ1Y3RvciE9PSRBcnJheSl7Zm9yKGtleSBpbiB0YXJnZXQpdGFyZ2V0W2tleV09YXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0KENvbnN0cnVjdG9yLHRhcmdldFtrZXldKX19cmV0dXJuIHRhcmdldH19LDI3Nzg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB0b0luZGV4ZWRPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg4MjEyKTt2YXIgdG9BYnNvbHV0ZUluZGV4PV9fd2VicGFja19yZXF1aXJlX18oNDAyNyk7dmFyIGxlbmd0aE9mQXJyYXlMaWtlPV9fd2VicGFja19yZXF1aXJlX18oODY5KTt2YXIgY3JlYXRlTWV0aG9kPWZ1bmN0aW9uKElTX0lOQ0xVREVTKXtyZXR1cm4gZnVuY3Rpb24oJHRoaXMsZWwsZnJvbUluZGV4KXt2YXIgTz10b0luZGV4ZWRPYmplY3QoJHRoaXMpO3ZhciBsZW5ndGg9bGVuZ3RoT2ZBcnJheUxpa2UoTyk7aWYobGVuZ3RoPT09MClyZXR1cm4hSVNfSU5DTFVERVMmJi0xO3ZhciBpbmRleD10b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LGxlbmd0aCk7dmFyIHZhbHVlO2lmKElTX0lOQ0xVREVTJiZlbCE9PWVsKXdoaWxlKGxlbmd0aD5pbmRleCl7dmFsdWU9T1tpbmRleCsrXTtpZih2YWx1ZSE9PXZhbHVlKXJldHVybiB0cnVlfWVsc2UgZm9yKDtsZW5ndGg+aW5kZXg7aW5kZXgrKyl7aWYoKElTX0lOQ0xVREVTfHxpbmRleCBpbiBPKSYmT1tpbmRleF09PT1lbClyZXR1cm4gSVNfSU5DTFVERVN8fGluZGV4fHwwfXJldHVybiFJU19JTkNMVURFUyYmLTF9fTttb2R1bGUuZXhwb3J0cz17aW5jbHVkZXM6Y3JlYXRlTWV0aG9kKHRydWUpLGluZGV4T2Y6Y3JlYXRlTWV0aG9kKGZhbHNlKX19LDM5NjY6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBiaW5kPV9fd2VicGFja19yZXF1aXJlX18oODY5Myk7dmFyIEluZGV4ZWRPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyODQwKTt2YXIgdG9PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzY0KTt2YXIgbGVuZ3RoT2ZBcnJheUxpa2U9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkpO3ZhciBjcmVhdGVNZXRob2Q9ZnVuY3Rpb24oVFlQRSl7dmFyIElTX0ZJTkRfTEFTVF9JTkRFWD1UWVBFPT09MTtyZXR1cm4gZnVuY3Rpb24oJHRoaXMsY2FsbGJhY2tmbix0aGF0KXt2YXIgTz10b09iamVjdCgkdGhpcyk7dmFyIHNlbGYxPUluZGV4ZWRPYmplY3QoTyk7dmFyIGluZGV4PWxlbmd0aE9mQXJyYXlMaWtlKHNlbGYxKTt2YXIgYm91bmRGdW5jdGlvbj1iaW5kKGNhbGxiYWNrZm4sdGhhdCk7dmFyIHZhbHVlLHJlc3VsdDt3aGlsZShpbmRleC0tID4wKXt2YWx1ZT1zZWxmMVtpbmRleF07cmVzdWx0PWJvdW5kRnVuY3Rpb24odmFsdWUsaW5kZXgsTyk7aWYocmVzdWx0KXN3aXRjaChUWVBFKXtjYXNlIDA6cmV0dXJuIHZhbHVlO2Nhc2UgMTpyZXR1cm4gaW5kZXh9fXJldHVybiBJU19GSU5EX0xBU1RfSU5ERVg/LTE6dm9pZCAwfX07bW9kdWxlLmV4cG9ydHM9e2ZpbmRMYXN0OmNyZWF0ZU1ldGhvZCgwKSxmaW5kTGFzdEluZGV4OmNyZWF0ZU1ldGhvZCgxKX19LDMxODQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBiaW5kPV9fd2VicGFja19yZXF1aXJlX18oODY5Myk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgSW5kZXhlZE9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NDApO3ZhciB0b09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzNjQpO3ZhciBsZW5ndGhPZkFycmF5TGlrZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OSk7dmFyIGFycmF5U3BlY2llc0NyZWF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg5MzQpO3ZhciBwdXNoPXVuY3VycnlUaGlzKFtdLnB1c2gpO3ZhciBjcmVhdGVNZXRob2Q9ZnVuY3Rpb24oVFlQRSl7dmFyIElTX01BUD1UWVBFPT09MTt2YXIgSVNfRklMVEVSPVRZUEU9PT0yO3ZhciBJU19TT01FPVRZUEU9PT0zO3ZhciBJU19FVkVSWT1UWVBFPT09NDt2YXIgSVNfRklORF9JTkRFWD1UWVBFPT09Njt2YXIgSVNfRklMVEVSX1JFSkVDVD1UWVBFPT09Nzt2YXIgTk9fSE9MRVM9VFlQRT09PTV8fElTX0ZJTkRfSU5ERVg7cmV0dXJuIGZ1bmN0aW9uKCR0aGlzLGNhbGxiYWNrZm4sdGhhdCxzcGVjaWZpY0NyZWF0ZSl7dmFyIE89dG9PYmplY3QoJHRoaXMpO3ZhciBzZWxmMT1JbmRleGVkT2JqZWN0KE8pO3ZhciBsZW5ndGg9bGVuZ3RoT2ZBcnJheUxpa2Uoc2VsZjEpO3ZhciBib3VuZEZ1bmN0aW9uPWJpbmQoY2FsbGJhY2tmbix0aGF0KTt2YXIgaW5kZXg9MDt2YXIgY3JlYXRlPXNwZWNpZmljQ3JlYXRlfHxhcnJheVNwZWNpZXNDcmVhdGU7dmFyIHRhcmdldD1JU19NQVA/Y3JlYXRlKCR0aGlzLGxlbmd0aCk6SVNfRklMVEVSfHxJU19GSUxURVJfUkVKRUNUP2NyZWF0ZSgkdGhpcywwKTp2b2lkIDA7dmFyIHZhbHVlLHJlc3VsdDtmb3IoO2xlbmd0aD5pbmRleDtpbmRleCsrKWlmKE5PX0hPTEVTfHxpbmRleCBpbiBzZWxmMSl7dmFsdWU9c2VsZjFbaW5kZXhdO3Jlc3VsdD1ib3VuZEZ1bmN0aW9uKHZhbHVlLGluZGV4LE8pO2lmKFRZUEUpe2lmKElTX01BUCl0YXJnZXRbaW5kZXhdPXJlc3VsdDtlbHNlIGlmKHJlc3VsdClzd2l0Y2goVFlQRSl7Y2FzZSAzOnJldHVybiB0cnVlO2Nhc2UgNTpyZXR1cm4gdmFsdWU7Y2FzZSA2OnJldHVybiBpbmRleDtjYXNlIDI6cHVzaCh0YXJnZXQsdmFsdWUpfWVsc2Ugc3dpdGNoKFRZUEUpe2Nhc2UgNDpyZXR1cm4gZmFsc2U7Y2FzZSA3OnB1c2godGFyZ2V0LHZhbHVlKX19fXJldHVybiBJU19GSU5EX0lOREVYPy0xOklTX1NPTUV8fElTX0VWRVJZP0lTX0VWRVJZOnRhcmdldH19O21vZHVsZS5leHBvcnRzPXtmb3JFYWNoOmNyZWF0ZU1ldGhvZCgwKSxtYXA6Y3JlYXRlTWV0aG9kKDEpLGZpbHRlcjpjcmVhdGVNZXRob2QoMiksc29tZTpjcmVhdGVNZXRob2QoMyksZXZlcnk6Y3JlYXRlTWV0aG9kKDQpLGZpbmQ6Y3JlYXRlTWV0aG9kKDUpLGZpbmRJbmRleDpjcmVhdGVNZXRob2QoNiksZmlsdGVyUmVqZWN0OmNyZWF0ZU1ldGhvZCg3KX19LDgyODA6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBpc0FycmF5PV9fd2VicGFja19yZXF1aXJlX18oODc3NSk7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO3ZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgU0lMRU5UX09OX05PTl9XUklUQUJMRV9MRU5HVEhfU0VUPURFU0NSSVBUT1JTJiYhKGZ1bmN0aW9uKCl7aWYodGhpcyE9PXZvaWQgMClyZXR1cm4gdHJ1ZTt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTpmYWxzZX0pLmxlbmd0aD0xfWNhdGNoKGVycm9yKXtyZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSkoKTttb2R1bGUuZXhwb3J0cz1TSUxFTlRfT05fTk9OX1dSSVRBQkxFX0xFTkdUSF9TRVQ/ZnVuY3Rpb24oTyxsZW5ndGgpe2lmKGlzQXJyYXkoTykmJiFnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywibGVuZ3RoIikud3JpdGFibGUpe3Rocm93IG5ldyAkVHlwZUVycm9yKCJDYW5ub3Qgc2V0IHJlYWQgb25seSAubGVuZ3RoIil9cmV0dXJuIE8ubGVuZ3RoPWxlbmd0aH06ZnVuY3Rpb24oTyxsZW5ndGgpe3JldHVybiBPLmxlbmd0aD1sZW5ndGh9fSw1OTEzOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO21vZHVsZS5leHBvcnRzPXVuY3VycnlUaGlzKFtdLnNsaWNlKX0sMTE5MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGFycmF5U2xpY2U9X193ZWJwYWNrX3JlcXVpcmVfXyg1OTEzKTt2YXIgZmxvb3I9TWF0aC5mbG9vcjt2YXIgc29ydD1mdW5jdGlvbihhcnJheSxjb21wYXJlZm4pe3ZhciBsZW5ndGg9YXJyYXkubGVuZ3RoO2lmKGxlbmd0aDw4KXt2YXIgaT0xO3ZhciBlbGVtZW50LGo7d2hpbGUoaTxsZW5ndGgpe2o9aTtlbGVtZW50PWFycmF5W2ldO3doaWxlKGomJmNvbXBhcmVmbihhcnJheVtqLTFdLGVsZW1lbnQpPjApe2FycmF5W2pdPWFycmF5Wy0tal19aWYoaiE9PWkrKylhcnJheVtqXT1lbGVtZW50fX1lbHNle3ZhciBtaWRkbGU9Zmxvb3IobGVuZ3RoLzIpO3ZhciBsZWZ0PXNvcnQoYXJyYXlTbGljZShhcnJheSwwLG1pZGRsZSksY29tcGFyZWZuKTt2YXIgcmlnaHQ9c29ydChhcnJheVNsaWNlKGFycmF5LG1pZGRsZSksY29tcGFyZWZuKTt2YXIgbGxlbmd0aD1sZWZ0Lmxlbmd0aDt2YXIgcmxlbmd0aD1yaWdodC5sZW5ndGg7dmFyIGxpbmRleD0wO3ZhciByaW5kZXg9MDt3aGlsZShsaW5kZXg8bGxlbmd0aHx8cmluZGV4PHJsZW5ndGgpe2FycmF5W2xpbmRleCtyaW5kZXhdPWxpbmRleDxsbGVuZ3RoJiZyaW5kZXg8cmxlbmd0aD9jb21wYXJlZm4obGVmdFtsaW5kZXhdLHJpZ2h0W3JpbmRleF0pPD0wP2xlZnRbbGluZGV4KytdOnJpZ2h0W3JpbmRleCsrXTpsaW5kZXg8bGxlbmd0aD9sZWZ0W2xpbmRleCsrXTpyaWdodFtyaW5kZXgrK119fXJldHVybiBhcnJheX07bW9kdWxlLmV4cG9ydHM9c29ydH0sMjExNjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGlzQXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg4Nzc1KTt2YXIgaXNDb25zdHJ1Y3Rvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4OTApO3ZhciBpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzUpO3ZhciB3ZWxsS25vd25TeW1ib2w9X193ZWJwYWNrX3JlcXVpcmVfXygyNjc0KTt2YXIgU1BFQ0lFUz13ZWxsS25vd25TeW1ib2woInNwZWNpZXMiKTt2YXIgJEFycmF5PUFycmF5O21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG9yaWdpbmFsQXJyYXkpe3ZhciBDO2lmKGlzQXJyYXkob3JpZ2luYWxBcnJheSkpe0M9b3JpZ2luYWxBcnJheS5jb25zdHJ1Y3RvcjtpZihpc0NvbnN0cnVjdG9yKEMpJiYoQz09PSRBcnJheXx8aXNBcnJheShDLnByb3RvdHlwZSkpKUM9dm9pZCAwO2Vsc2UgaWYoaXNPYmplY3QoQykpe0M9Q1tTUEVDSUVTXTtpZihDPT09bnVsbClDPXZvaWQgMH19cmV0dXJuIEM9PT12b2lkIDA/JEFycmF5OkN9fSw4OTM0OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgYXJyYXlTcGVjaWVzQ29uc3RydWN0b3I9X193ZWJwYWNrX3JlcXVpcmVfXygyMTE2KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihvcmlnaW5hbEFycmF5LGxlbmd0aCl7cmV0dXJuIG5ldyhhcnJheVNwZWNpZXNDb25zdHJ1Y3RvcihvcmlnaW5hbEFycmF5KSkobGVuZ3RoPT09MD8wOmxlbmd0aCl9fSwzMTIxOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgbGVuZ3RoT2ZBcnJheUxpa2U9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjkpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKE8sQyl7dmFyIGxlbj1sZW5ndGhPZkFycmF5TGlrZShPKTt2YXIgQT1uZXcgQyhsZW4pO3ZhciBrMj0wO2Zvcig7azI8bGVuO2syKyspQVtrMl09T1tsZW4tazItMV07cmV0dXJuIEF9fSwxNDk2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciBhQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXygzNzcpO3ZhciBpc051bGxPclVuZGVmaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI5NTApO3ZhciBsZW5ndGhPZkFycmF5TGlrZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OSk7dmFyIHRvT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNTM2NCk7dmFyIE1hcEhlbHBlcnM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NTQxKTt2YXIgaXRlcmF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDczMDIpO3ZhciBNYXAxPU1hcEhlbHBlcnMuTWFwO3ZhciBtYXBIYXM9TWFwSGVscGVycy5oYXM7dmFyIG1hcFNldD1NYXBIZWxwZXJzLnNldDt2YXIgcHVzaD11bmN1cnJ5VGhpcyhbXS5wdXNoKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbiB1bmlxdWVCeShyZXNvbHZlcil7dmFyIHRoYXQ9dG9PYmplY3QodGhpcyk7dmFyIGxlbmd0aD1sZW5ndGhPZkFycmF5TGlrZSh0aGF0KTt2YXIgcmVzdWx0PVtdO3ZhciBtYXA9bmV3IE1hcDE7dmFyIHJlc29sdmVyRnVuY3Rpb249IWlzTnVsbE9yVW5kZWZpbmVkKHJlc29sdmVyKT9hQ2FsbGFibGUocmVzb2x2ZXIpOmZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gdmFsdWV9O3ZhciBpbmRleCxpdGVtLGtleTtmb3IoaW5kZXg9MDtpbmRleDxsZW5ndGg7aW5kZXgrKyl7aXRlbT10aGF0W2luZGV4XTtrZXk9cmVzb2x2ZXJGdW5jdGlvbihpdGVtKTtpZighbWFwSGFzKG1hcCxrZXkpKW1hcFNldChtYXAsa2V5LGl0ZW0pfWl0ZXJhdGUobWFwLGZ1bmN0aW9uKHZhbHVlKXtwdXNoKHJlc3VsdCx2YWx1ZSl9KTtyZXR1cm4gcmVzdWx0fX0sNzYxMTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGxlbmd0aE9mQXJyYXlMaWtlPV9fd2VicGFja19yZXF1aXJlX18oODY5KTt2YXIgdG9JbnRlZ2VyT3JJbmZpbml0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NDgpO3ZhciAkUmFuZ2VFcnJvcj1SYW5nZUVycm9yO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKE8sQyxpbmRleCx2YWx1ZSl7dmFyIGxlbj1sZW5ndGhPZkFycmF5TGlrZShPKTt2YXIgcmVsYXRpdmVJbmRleD10b0ludGVnZXJPckluZmluaXR5KGluZGV4KTt2YXIgYWN0dWFsSW5kZXg9cmVsYXRpdmVJbmRleDwwP2xlbityZWxhdGl2ZUluZGV4OnJlbGF0aXZlSW5kZXg7aWYoYWN0dWFsSW5kZXg+PWxlbnx8YWN0dWFsSW5kZXg8MCl0aHJvdyBuZXcgJFJhbmdlRXJyb3IoIkluY29ycmVjdCBpbmRleCIpO3ZhciBBPW5ldyBDKGxlbik7dmFyIGsyPTA7Zm9yKDtrMjxsZW47azIrKylBW2syXT1rMj09PWFjdHVhbEluZGV4P3ZhbHVlOk9bazJdO3JldHVybiBBfX0sMjE4NzpmdW5jdGlvbihtb2R1bGUpe3ZhciBjb21tb25BbHBoYWJldD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiO3ZhciBiYXNlNjRBbHBoYWJldD1jb21tb25BbHBoYWJldCsiKy8iO3ZhciBiYXNlNjRVcmxBbHBoYWJldD1jb21tb25BbHBoYWJldCsiLV8iO3ZhciBpbnZlcnNlPWZ1bmN0aW9uKGNoYXJhY3RlcnMpe3ZhciByZXN1bHQ9e307dmFyIGluZGV4PTA7Zm9yKDtpbmRleDw2NDtpbmRleCsrKXJlc3VsdFtjaGFyYWN0ZXJzLmNoYXJBdChpbmRleCldPWluZGV4O3JldHVybiByZXN1bHR9O21vZHVsZS5leHBvcnRzPXtpMmM6YmFzZTY0QWxwaGFiZXQsYzJpOmludmVyc2UoYmFzZTY0QWxwaGFiZXQpLGkyY1VybDpiYXNlNjRVcmxBbHBoYWJldCxjMmlVcmw6aW52ZXJzZShiYXNlNjRVcmxBbHBoYWJldCl9fSwyNzQwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgYW5PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjQyKTt2YXIgaXRlcmF0b3JDbG9zZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5MTYpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0ZXJhdG9yLGZuLHZhbHVlLEVOVFJJRVMpe3RyeXtyZXR1cm4gRU5UUklFUz9mbihhbk9iamVjdCh2YWx1ZSlbMF0sdmFsdWVbMV0pOmZuKHZhbHVlKX1jYXRjaChlcnJvcil7aXRlcmF0b3JDbG9zZShpdGVyYXRvciwidGhyb3ciLGVycm9yKX19fSwzNjg5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciB0b1N0cmluZz11bmN1cnJ5VGhpcyh7fS50b1N0cmluZyk7dmFyIHN0cmluZ1NsaWNlPXVuY3VycnlUaGlzKCIiLnNsaWNlKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihpdCl7cmV0dXJuIHN0cmluZ1NsaWNlKHRvU3RyaW5nKGl0KSw4LC0xKX19LDkxNDI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQ9X193ZWJwYWNrX3JlcXVpcmVfXyg3NzA1KTt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciBjbGFzc29mUmF3PV9fd2VicGFja19yZXF1aXJlX18oMzY4OSk7dmFyIHdlbGxLbm93blN5bWJvbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzQpO3ZhciBUT19TVFJJTkdfVEFHPXdlbGxLbm93blN5bWJvbCgidG9TdHJpbmdUYWciKTt2YXIgJE9iamVjdD1PYmplY3Q7dmFyIENPUlJFQ1RfQVJHVU1FTlRTPWNsYXNzb2ZSYXcoKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30pKCkpPT09IkFyZ3VtZW50cyI7dmFyIHRyeUdldD1mdW5jdGlvbihpdCxrZXkpe3RyeXtyZXR1cm4gaXRba2V5XX1jYXRjaChlcnJvcil7fX07bW9kdWxlLmV4cG9ydHM9VE9fU1RSSU5HX1RBR19TVVBQT1JUP2NsYXNzb2ZSYXc6ZnVuY3Rpb24oaXQpe3ZhciBPLHRhZyxyZXN1bHQ7cmV0dXJuIGl0PT09dm9pZCAwPyJVbmRlZmluZWQiOml0PT09bnVsbD8iTnVsbCI6dHlwZW9mKHRhZz10cnlHZXQoTz0kT2JqZWN0KGl0KSxUT19TVFJJTkdfVEFHKSk9PSJzdHJpbmciP3RhZzpDT1JSRUNUX0FSR1VNRU5UUz9jbGFzc29mUmF3KE8pOihyZXN1bHQ9Y2xhc3NvZlJhdyhPKSk9PT0iT2JqZWN0IiYmaXNDYWxsYWJsZShPLmNhbGxlZSk/IkFyZ3VtZW50cyI6cmVzdWx0fX0sNTMyMTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGhhc093bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Nik7dmFyIG93bktleXM9X193ZWJwYWNrX3JlcXVpcmVfXyg3ODgwKTt2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oMTc2KTt2YXIgZGVmaW5lUHJvcGVydHlNb2R1bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzIyKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbih0YXJnZXQsc291cmNlLGV4Y2VwdGlvbnMpe3ZhciBrZXlzPW93bktleXMoc291cmNlKTt2YXIgZGVmaW5lUHJvcGVydHk9ZGVmaW5lUHJvcGVydHlNb2R1bGUuZjt2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPWdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO2Zvcih2YXIgaT0wO2k8a2V5cy5sZW5ndGg7aSsrKXt2YXIga2V5PWtleXNbaV07aWYoIWhhc093bih0YXJnZXQsa2V5KSYmIShleGNlcHRpb25zJiZoYXNPd24oZXhjZXB0aW9ucyxrZXkpKSl7ZGVmaW5lUHJvcGVydHkodGFyZ2V0LGtleSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLGtleSkpfX19fSw4NjU2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZmFpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxNzApO21vZHVsZS5leHBvcnRzPSFmYWlscyhmdW5jdGlvbigpe2Z1bmN0aW9uIEYoKXt9Ri5wcm90b3R5cGUuY29uc3RydWN0b3I9bnVsbDtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKSE9PUYucHJvdG90eXBlfSl9LDUwNDpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHZhbHVlLGRvbmUpe3JldHVybnt2YWx1ZSxkb25lfX19LDMzOTI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMjIpO3ZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg3MTMxKTttb2R1bGUuZXhwb3J0cz1ERVNDUklQVE9SUz9mdW5jdGlvbihvYmplY3Qsa2V5LHZhbHVlKXtyZXR1cm4gZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3Qsa2V5LGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLHZhbHVlKSl9OmZ1bmN0aW9uKG9iamVjdCxrZXksdmFsdWUpe29iamVjdFtrZXldPXZhbHVlO3JldHVybiBvYmplY3R9fSw3MTMxOmZ1bmN0aW9uKG1vZHVsZSl7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYml0bWFwLHZhbHVlKXtyZXR1cm57ZW51bWVyYWJsZTohKGJpdG1hcCYxKSxjb25maWd1cmFibGU6IShiaXRtYXAmMiksd3JpdGFibGU6IShiaXRtYXAmNCksdmFsdWV9fX0sNjk2OTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIERFU0NSSVBUT1JTPV9fd2VicGFja19yZXF1aXJlX18oNDQ1Myk7dmFyIGRlZmluZVByb3BlcnR5TW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oNTMyMik7dmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMzEpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG9iamVjdCxrZXksdmFsdWUpe2lmKERFU0NSSVBUT1JTKWRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LGtleSxjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMCx2YWx1ZSkpO2Vsc2Ugb2JqZWN0W2tleV09dmFsdWV9fSw2MDYxOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgbWFrZUJ1aWx0SW49X193ZWJwYWNrX3JlcXVpcmVfXygzMzIyKTt2YXIgZGVmaW5lUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzIyKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbih0YXJnZXQsbmFtZSxkZXNjcmlwdG9yKXtpZihkZXNjcmlwdG9yLmdldCltYWtlQnVpbHRJbihkZXNjcmlwdG9yLmdldCxuYW1lLHtnZXR0ZXI6dHJ1ZX0pO2lmKGRlc2NyaXB0b3Iuc2V0KW1ha2VCdWlsdEluKGRlc2NyaXB0b3Iuc2V0LG5hbWUse3NldHRlcjp0cnVlfSk7cmV0dXJuIGRlZmluZVByb3BlcnR5LmYodGFyZ2V0LG5hbWUsZGVzY3JpcHRvcil9fSw2MjY5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMjIpO3ZhciBtYWtlQnVpbHRJbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzMjIpO3ZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzgpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKE8sa2V5LHZhbHVlLG9wdGlvbnMpe2lmKCFvcHRpb25zKW9wdGlvbnM9e307dmFyIHNpbXBsZT1vcHRpb25zLmVudW1lcmFibGU7dmFyIG5hbWU9b3B0aW9ucy5uYW1lIT09dm9pZCAwP29wdGlvbnMubmFtZTprZXk7aWYoaXNDYWxsYWJsZSh2YWx1ZSkpbWFrZUJ1aWx0SW4odmFsdWUsbmFtZSxvcHRpb25zKTtpZihvcHRpb25zLmdsb2JhbCl7aWYoc2ltcGxlKU9ba2V5XT12YWx1ZTtlbHNlIGRlZmluZUdsb2JhbFByb3BlcnR5KGtleSx2YWx1ZSl9ZWxzZXt0cnl7aWYoIW9wdGlvbnMudW5zYWZlKWRlbGV0ZSBPW2tleV07ZWxzZSBpZihPW2tleV0pc2ltcGxlPXRydWV9Y2F0Y2goZXJyb3Ipe31pZihzaW1wbGUpT1trZXldPXZhbHVlO2Vsc2UgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLGtleSx7dmFsdWUsZW51bWVyYWJsZTpmYWxzZSxjb25maWd1cmFibGU6IW9wdGlvbnMubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFvcHRpb25zLm5vbldyaXRhYmxlfSl9cmV0dXJuIE99fSw1NzIwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZGVmaW5lQnVpbHRJbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyNjkpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHRhcmdldCxzcmMsb3B0aW9ucyl7Zm9yKHZhciBrZXkgaW4gc3JjKWRlZmluZUJ1aWx0SW4odGFyZ2V0LGtleSxzcmNba2V5XSxvcHRpb25zKTtyZXR1cm4gdGFyZ2V0fX0sOTA3ODpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIGRlZmluZVByb3BlcnR5PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihrZXksdmFsdWUpe3RyeXtkZWZpbmVQcm9wZXJ0eShnbG9iYWxUaGlzMSxrZXkse3ZhbHVlLGNvbmZpZ3VyYWJsZTp0cnVlLHdyaXRhYmxlOnRydWV9KX1jYXRjaChlcnJvcil7Z2xvYmFsVGhpczFba2V5XT12YWx1ZX1yZXR1cm4gdmFsdWV9fSw0NDUzOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZmFpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxNzApO21vZHVsZS5leHBvcnRzPSFmYWlscyhmdW5jdGlvbigpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV0hPT03fSl9LDc5OTQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBnZXRCdWlsdEluTm9kZU1vZHVsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE2MjIpO3ZhciBQUk9QRVJfU1RSVUNUVVJFRF9DTE9ORV9UUkFOU0ZFUj1fX3dlYnBhY2tfcmVxdWlyZV9fKDY5NTUpO3ZhciBzdHJ1Y3R1cmVkQ2xvbmU9Z2xvYmFsVGhpczEuc3RydWN0dXJlZENsb25lO3ZhciAkQXJyYXlCdWZmZXI9Z2xvYmFsVGhpczEuQXJyYXlCdWZmZXI7dmFyICRNZXNzYWdlQ2hhbm5lbD1nbG9iYWxUaGlzMS5NZXNzYWdlQ2hhbm5lbDt2YXIgZGV0YWNoPWZhbHNlO3ZhciBXb3JrZXJUaHJlYWRzLGNoYW5uZWwsYnVmZmVyLCRkZXRhY2g7aWYoUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVIpe2RldGFjaD1mdW5jdGlvbih0cmFuc2ZlcmFibGUpe3N0cnVjdHVyZWRDbG9uZSh0cmFuc2ZlcmFibGUse3RyYW5zZmVyOlt0cmFuc2ZlcmFibGVdfSl9fWVsc2UgaWYoJEFycmF5QnVmZmVyKXRyeXtpZighJE1lc3NhZ2VDaGFubmVsKXtXb3JrZXJUaHJlYWRzPWdldEJ1aWx0SW5Ob2RlTW9kdWxlKCJ3b3JrZXJfdGhyZWFkcyIpO2lmKFdvcmtlclRocmVhZHMpJE1lc3NhZ2VDaGFubmVsPVdvcmtlclRocmVhZHMuTWVzc2FnZUNoYW5uZWx9aWYoJE1lc3NhZ2VDaGFubmVsKXtjaGFubmVsPW5ldyAkTWVzc2FnZUNoYW5uZWw7YnVmZmVyPW5ldyAkQXJyYXlCdWZmZXIoMik7JGRldGFjaD1mdW5jdGlvbih0cmFuc2ZlcmFibGUpe2NoYW5uZWwucG9ydDEucG9zdE1lc3NhZ2UobnVsbCxbdHJhbnNmZXJhYmxlXSl9O2lmKGJ1ZmZlci5ieXRlTGVuZ3RoPT09Mil7JGRldGFjaChidWZmZXIpO2lmKGJ1ZmZlci5ieXRlTGVuZ3RoPT09MClkZXRhY2g9JGRldGFjaH19fWNhdGNoKGVycm9yKXt9bW9kdWxlLmV4cG9ydHM9ZGV0YWNofSw4NDY6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzUpO3ZhciBkb2N1bWVudDE9Z2xvYmFsVGhpczEuZG9jdW1lbnQ7dmFyIEVYSVNUUz1pc09iamVjdChkb2N1bWVudDEpJiZpc09iamVjdChkb2N1bWVudDEuY3JlYXRlRWxlbWVudCk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaXQpe3JldHVybiBFWElTVFM/ZG9jdW1lbnQxLmNyZWF0ZUVsZW1lbnQoaXQpOnt9fX0sNTQxODpmdW5jdGlvbihtb2R1bGUpe3ZhciAkVHlwZUVycm9yPVR5cGVFcnJvcjt2YXIgTUFYX1NBRkVfSU5URUdFUj05MDA3MTk5MjU0NzQwOTkxO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0KXtpZihpdD5NQVhfU0FGRV9JTlRFR0VSKXRocm93ICRUeXBlRXJyb3IoIk1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIpO3JldHVybiBpdH19LDI1MTk6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz17SW5kZXhTaXplRXJyb3I6e3M6IklOREVYX1NJWkVfRVJSIixjOjEsbToxfSxET01TdHJpbmdTaXplRXJyb3I6e3M6IkRPTVNUUklOR19TSVpFX0VSUiIsYzoyLG06MH0sSGllcmFyY2h5UmVxdWVzdEVycm9yOntzOiJISUVSQVJDSFlfUkVRVUVTVF9FUlIiLGM6MyxtOjF9LFdyb25nRG9jdW1lbnRFcnJvcjp7czoiV1JPTkdfRE9DVU1FTlRfRVJSIixjOjQsbToxfSxJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6e3M6IklOVkFMSURfQ0hBUkFDVEVSX0VSUiIsYzo1LG06MX0sTm9EYXRhQWxsb3dlZEVycm9yOntzOiJOT19EQVRBX0FMTE9XRURfRVJSIixjOjYsbTowfSxOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjp7czoiTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIixjOjcsbToxfSxOb3RGb3VuZEVycm9yOntzOiJOT1RfRk9VTkRfRVJSIixjOjgsbToxfSxOb3RTdXBwb3J0ZWRFcnJvcjp7czoiTk9UX1NVUFBPUlRFRF9FUlIiLGM6OSxtOjF9LEluVXNlQXR0cmlidXRlRXJyb3I6e3M6IklOVVNFX0FUVFJJQlVURV9FUlIiLGM6MTAsbToxfSxJbnZhbGlkU3RhdGVFcnJvcjp7czoiSU5WQUxJRF9TVEFURV9FUlIiLGM6MTEsbToxfSxTeW50YXhFcnJvcjp7czoiU1lOVEFYX0VSUiIsYzoxMixtOjF9LEludmFsaWRNb2RpZmljYXRpb25FcnJvcjp7czoiSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIixjOjEzLG06MX0sTmFtZXNwYWNlRXJyb3I6e3M6Ik5BTUVTUEFDRV9FUlIiLGM6MTQsbToxfSxJbnZhbGlkQWNjZXNzRXJyb3I6e3M6IklOVkFMSURfQUNDRVNTX0VSUiIsYzoxNSxtOjF9LFZhbGlkYXRpb25FcnJvcjp7czoiVkFMSURBVElPTl9FUlIiLGM6MTYsbTowfSxUeXBlTWlzbWF0Y2hFcnJvcjp7czoiVFlQRV9NSVNNQVRDSF9FUlIiLGM6MTcsbToxfSxTZWN1cml0eUVycm9yOntzOiJTRUNVUklUWV9FUlIiLGM6MTgsbToxfSxOZXR3b3JrRXJyb3I6e3M6Ik5FVFdPUktfRVJSIixjOjE5LG06MX0sQWJvcnRFcnJvcjp7czoiQUJPUlRfRVJSIixjOjIwLG06MX0sVVJMTWlzbWF0Y2hFcnJvcjp7czoiVVJMX01JU01BVENIX0VSUiIsYzoyMSxtOjF9LFF1b3RhRXhjZWVkZWRFcnJvcjp7czoiUVVPVEFfRVhDRUVERURfRVJSIixjOjIyLG06MX0sVGltZW91dEVycm9yOntzOiJUSU1FT1VUX0VSUiIsYzoyMyxtOjF9LEludmFsaWROb2RlVHlwZUVycm9yOntzOiJJTlZBTElEX05PREVfVFlQRV9FUlIiLGM6MjQsbToxfSxEYXRhQ2xvbmVFcnJvcjp7czoiREFUQV9DTE9ORV9FUlIiLGM6MjUsbToxfX19LDQxODpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDExNTg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB1c2VyQWdlbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MDc2KTt2YXIgZmlyZWZveD11c2VyQWdlbnQubWF0Y2goL2ZpcmVmb3hcLyhcZCspL2kpO21vZHVsZS5leHBvcnRzPSEhZmlyZWZveCYmK2ZpcmVmb3hbMV19LDgxNDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIFVBPV9fd2VicGFja19yZXF1aXJlX18oNTA3Nik7bW9kdWxlLmV4cG9ydHM9L01TSUV8VHJpZGVudC8udGVzdChVQSl9LDEwMjA6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBFTlZJUk9OTUVOVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc5NjYpO21vZHVsZS5leHBvcnRzPUVOVklST05NRU5UPT09Ik5PREUifSw1MDc2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTt2YXIgbmF2aWdhdG9yPWdsb2JhbFRoaXMxLm5hdmlnYXRvcjt2YXIgdXNlckFnZW50PW5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudDttb2R1bGUuZXhwb3J0cz11c2VyQWdlbnQ/U3RyaW5nKHVzZXJBZ2VudCk6IiJ9LDk1MjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIHVzZXJBZ2VudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNzYpO3ZhciBwcm9jZXNzMj1nbG9iYWxUaGlzMS5wcm9jZXNzO3ZhciBEZW5vMT1nbG9iYWxUaGlzMS5EZW5vO3ZhciB2ZXJzaW9ucz1wcm9jZXNzMiYmcHJvY2VzczIudmVyc2lvbnN8fERlbm8xJiZEZW5vMS52ZXJzaW9uO3ZhciB2OD12ZXJzaW9ucyYmdmVyc2lvbnMudjg7dmFyIG1hdGNoLHZlcnNpb247aWYodjgpe21hdGNoPXY4LnNwbGl0KCIuIik7dmVyc2lvbj1tYXRjaFswXT4wJiZtYXRjaFswXTw0PzE6KyhtYXRjaFswXSttYXRjaFsxXSl9aWYoIXZlcnNpb24mJnVzZXJBZ2VudCl7bWF0Y2g9dXNlckFnZW50Lm1hdGNoKC9FZGdlXC8oXGQrKS8pO2lmKCFtYXRjaHx8bWF0Y2hbMV0+PTc0KXttYXRjaD11c2VyQWdlbnQubWF0Y2goL0Nocm9tZVwvKFxkKykvKTtpZihtYXRjaCl2ZXJzaW9uPSttYXRjaFsxXX19bW9kdWxlLmV4cG9ydHM9dmVyc2lvbn0sMzA4OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdXNlckFnZW50PV9fd2VicGFja19yZXF1aXJlX18oNTA3Nik7dmFyIHdlYmtpdD11c2VyQWdlbnQubWF0Y2goL0FwcGxlV2ViS2l0XC8oXGQrKVwuLyk7bW9kdWxlLmV4cG9ydHM9ISF3ZWJraXQmJit3ZWJraXRbMV19LDc5NjY6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciB1c2VyQWdlbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1MDc2KTt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2ODkpO3ZhciB1c2VyQWdlbnRTdGFydHNXaXRoPWZ1bmN0aW9uKHN0cmluZyl7cmV0dXJuIHVzZXJBZ2VudC5zbGljZSgwLHN0cmluZy5sZW5ndGgpPT09c3RyaW5nfTttb2R1bGUuZXhwb3J0cz0oZnVuY3Rpb24oKXtpZih1c2VyQWdlbnRTdGFydHNXaXRoKCJCdW4vIikpcmV0dXJuIkJVTiI7aWYodXNlckFnZW50U3RhcnRzV2l0aCgiQ2xvdWRmbGFyZS1Xb3JrZXJzIikpcmV0dXJuIkNMT1VERkxBUkUiO2lmKHVzZXJBZ2VudFN0YXJ0c1dpdGgoIkRlbm8vIikpcmV0dXJuIkRFTk8iO2lmKHVzZXJBZ2VudFN0YXJ0c1dpdGgoIk5vZGUuanMvIikpcmV0dXJuIk5PREUiO2lmKGdsb2JhbFRoaXMxLkJ1biYmdHlwZW9mIEJ1bi52ZXJzaW9uPT0ic3RyaW5nIilyZXR1cm4iQlVOIjtpZihnbG9iYWxUaGlzMS5EZW5vJiZ0eXBlb2YgRGVuby52ZXJzaW9uPT0ib2JqZWN0IilyZXR1cm4iREVOTyI7aWYoY2xhc3NvZihnbG9iYWxUaGlzMS5wcm9jZXNzKT09PSJwcm9jZXNzIilyZXR1cm4iTk9ERSI7aWYoZ2xvYmFsVGhpczEud2luZG93JiZnbG9iYWxUaGlzMS5kb2N1bWVudClyZXR1cm4iQlJPV1NFUiI7cmV0dXJuIlJFU1QifSkoKX0sMjAwNDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgJEVycm9yPUVycm9yO3ZhciByZXBsYWNlPXVuY3VycnlUaGlzKCIiLnJlcGxhY2UpO3ZhciBURVNUPShmdW5jdGlvbihhcmcpe3JldHVybiBTdHJpbmcobmV3ICRFcnJvcihhcmcpLnN0YWNrKX0pKCJ6eGNhc2QiKTt2YXIgVjhfT1JfQ0hBS1JBX1NUQUNLX0VOVFJZPS9cblxzKmF0IFteOl0qOlteXG5dKi87dmFyIElTX1Y4X09SX0NIQUtSQV9TVEFDSz1WOF9PUl9DSEFLUkFfU1RBQ0tfRU5UUlkudGVzdChURVNUKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihzdGFjayxkcm9wRW50cmllcyl7aWYoSVNfVjhfT1JfQ0hBS1JBX1NUQUNLJiZ0eXBlb2Ygc3RhY2s9PSJzdHJpbmciJiYhJEVycm9yLnByZXBhcmVTdGFja1RyYWNlKXt3aGlsZShkcm9wRW50cmllcy0tKXN0YWNrPXJlcGxhY2Uoc3RhY2ssVjhfT1JfQ0hBS1JBX1NUQUNLX0VOVFJZLCIiKX1yZXR1cm4gc3RhY2t9fSw1MDcwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oMzM5Mik7dmFyIGNsZWFyRXJyb3JTdGFjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwMDQpO3ZhciBFUlJPUl9TVEFDS19JTlNUQUxMQUJMRT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIzNTApO3ZhciBjYXB0dXJlU3RhY2tUcmFjZT1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihlcnJvcixDLHN0YWNrLGRyb3BFbnRyaWVzKXtpZihFUlJPUl9TVEFDS19JTlNUQUxMQUJMRSl7aWYoY2FwdHVyZVN0YWNrVHJhY2UpY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsQyk7ZWxzZSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoZXJyb3IsInN0YWNrIixjbGVhckVycm9yU3RhY2soc3RhY2ssZHJvcEVudHJpZXMpKX19fSwyMzUwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZmFpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxNzApO3ZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3I9X193ZWJwYWNrX3JlcXVpcmVfXyg3MTMxKTttb2R1bGUuZXhwb3J0cz0hZmFpbHMoZnVuY3Rpb24oKXt2YXIgZXJyb3I9bmV3IEVycm9yKCJhIik7aWYoISgic3RhY2siaW4gZXJyb3IpKXJldHVybiB0cnVlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnJvciwic3RhY2siLGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLDcpKTtyZXR1cm4gZXJyb3Iuc3RhY2shPT03fSl9LDU5MDk6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9X193ZWJwYWNrX3JlcXVpcmVfXygxNzYpLmY7dmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzOTIpO3ZhciBkZWZpbmVCdWlsdEluPV9fd2VicGFja19yZXF1aXJlX18oNjI2OSk7dmFyIGRlZmluZUdsb2JhbFByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oOTA3OCk7dmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzIxKTt2YXIgaXNGb3JjZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg5MTA1KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihvcHRpb25zLHNvdXJjZSl7dmFyIFRBUkdFVD1vcHRpb25zLnRhcmdldDt2YXIgR0xPQkFMPW9wdGlvbnMuZ2xvYmFsO3ZhciBTVEFUSUM9b3B0aW9ucy5zdGF0O3ZhciBGT1JDRUQsdGFyZ2V0LGtleSx0YXJnZXRQcm9wZXJ0eSxzb3VyY2VQcm9wZXJ0eSxkZXNjcmlwdG9yO2lmKEdMT0JBTCl7dGFyZ2V0PWdsb2JhbFRoaXMxfWVsc2UgaWYoU1RBVElDKXt0YXJnZXQ9Z2xvYmFsVGhpczFbVEFSR0VUXXx8ZGVmaW5lR2xvYmFsUHJvcGVydHkoVEFSR0VULHt9KX1lbHNle3RhcmdldD1nbG9iYWxUaGlzMVtUQVJHRVRdJiZnbG9iYWxUaGlzMVtUQVJHRVRdLnByb3RvdHlwZX1pZih0YXJnZXQpZm9yKGtleSBpbiBzb3VyY2Upe3NvdXJjZVByb3BlcnR5PXNvdXJjZVtrZXldO2lmKG9wdGlvbnMuZG9udENhbGxHZXRTZXQpe2Rlc2NyaXB0b3I9Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCxrZXkpO3RhcmdldFByb3BlcnR5PWRlc2NyaXB0b3ImJmRlc2NyaXB0b3IudmFsdWV9ZWxzZSB0YXJnZXRQcm9wZXJ0eT10YXJnZXRba2V5XTtGT1JDRUQ9aXNGb3JjZWQoR0xPQkFMP2tleTpUQVJHRVQrKFNUQVRJQz8iLiI6IiMiKStrZXksb3B0aW9ucy5mb3JjZWQpO2lmKCFGT1JDRUQmJnRhcmdldFByb3BlcnR5IT09dm9pZCAwKXtpZih0eXBlb2Ygc291cmNlUHJvcGVydHk9PXR5cGVvZiB0YXJnZXRQcm9wZXJ0eSljb250aW51ZTtjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKHNvdXJjZVByb3BlcnR5LHRhcmdldFByb3BlcnR5KX1pZihvcHRpb25zLnNoYW18fHRhcmdldFByb3BlcnR5JiZ0YXJnZXRQcm9wZXJ0eS5zaGFtKXtjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoc291cmNlUHJvcGVydHksInNoYW0iLHRydWUpfWRlZmluZUJ1aWx0SW4odGFyZ2V0LGtleSxzb3VyY2VQcm9wZXJ0eSxvcHRpb25zKX19fSwxNzA6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihleGVjKXt0cnl7cmV0dXJuISFleGVjKCl9Y2F0Y2goZXJyb3Ipe3JldHVybiB0cnVlfX19LDgwNzg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBOQVRJVkVfQklORD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MzUpO3ZhciBGdW5jdGlvblByb3RvdHlwZT1GdW5jdGlvbi5wcm90b3R5cGU7dmFyIGFwcGx5PUZ1bmN0aW9uUHJvdG90eXBlLmFwcGx5O3ZhciBjYWxsPUZ1bmN0aW9uUHJvdG90eXBlLmNhbGw7bW9kdWxlLmV4cG9ydHM9dHlwZW9mIFJlZmxlY3Q9PSJvYmplY3QiJiZSZWZsZWN0LmFwcGx5fHwoTkFUSVZFX0JJTkQ/Y2FsbC5iaW5kKGFwcGx5KTpmdW5jdGlvbigpe3JldHVybiBjYWxsLmFwcGx5KGFwcGx5LGFyZ3VtZW50cyl9KX0sODY5MzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDA1MSk7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7dmFyIE5BVElWRV9CSU5EPV9fd2VicGFja19yZXF1aXJlX18oMTczNSk7dmFyIGJpbmQ9dW5jdXJyeVRoaXModW5jdXJyeVRoaXMuYmluZCk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oZm4sdGhhdCl7YUNhbGxhYmxlKGZuKTtyZXR1cm4gdGhhdD09PXZvaWQgMD9mbjpOQVRJVkVfQklORD9iaW5kKGZuLHRoYXQpOmZ1bmN0aW9uKCl7cmV0dXJuIGZuLmFwcGx5KHRoYXQsYXJndW1lbnRzKX19fSwxNzM1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZmFpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxNzApO21vZHVsZS5leHBvcnRzPSFmYWlscyhmdW5jdGlvbigpe3ZhciB0ZXN0PShmdW5jdGlvbigpe30pLmJpbmQoKTtyZXR1cm4gdHlwZW9mIHRlc3QhPSJmdW5jdGlvbiJ8fHRlc3QuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSl9LDY4ODA6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBOQVRJVkVfQklORD1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MzUpO3ZhciBjYWxsPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO21vZHVsZS5leHBvcnRzPU5BVElWRV9CSU5EP2NhbGwuYmluZChjYWxsKTpmdW5jdGlvbigpe3JldHVybiBjYWxsLmFwcGx5KGNhbGwsYXJndW1lbnRzKX19LDIxNTE6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBoYXNPd249X193ZWJwYWNrX3JlcXVpcmVfXyg1ODYpO3ZhciBGdW5jdGlvblByb3RvdHlwZT1GdW5jdGlvbi5wcm90b3R5cGU7dmFyIGdldERlc2NyaXB0b3I9REVTQ1JJUFRPUlMmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIEVYSVNUUz1oYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsIm5hbWUiKTt2YXIgUFJPUEVSPUVYSVNUUyYmKGZ1bmN0aW9uIHNvbWV0aGluZygpe30pLm5hbWU9PT0ic29tZXRoaW5nIjt2YXIgQ09ORklHVVJBQkxFPUVYSVNUUyYmKCFERVNDUklQVE9SU3x8REVTQ1JJUFRPUlMmJmdldERlc2NyaXB0b3IoRnVuY3Rpb25Qcm90b3R5cGUsIm5hbWUiKS5jb25maWd1cmFibGUpO21vZHVsZS5leHBvcnRzPXtFWElTVFMsUFJPUEVSLENPTkZJR1VSQUJMRX19LDMyNTc6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB1bmN1cnJ5VGhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4OSk7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24ob2JqZWN0LGtleSxtZXRob2Qpe3RyeXtyZXR1cm4gdW5jdXJyeVRoaXMoYUNhbGxhYmxlKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LGtleSlbbWV0aG9kXSkpfWNhdGNoKGVycm9yKXt9fX0sNDA1MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGNsYXNzb2ZSYXc9X193ZWJwYWNrX3JlcXVpcmVfXygzNjg5KTt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGZuKXtpZihjbGFzc29mUmF3KGZuKT09PSJGdW5jdGlvbiIpcmV0dXJuIHVuY3VycnlUaGlzKGZuKX19LDQ4OTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIE5BVElWRV9CSU5EPV9fd2VicGFja19yZXF1aXJlX18oMTczNSk7dmFyIEZ1bmN0aW9uUHJvdG90eXBlPUZ1bmN0aW9uLnByb3RvdHlwZTt2YXIgY2FsbD1GdW5jdGlvblByb3RvdHlwZS5jYWxsO3ZhciB1bmN1cnJ5VGhpc1dpdGhCaW5kPU5BVElWRV9CSU5EJiZGdW5jdGlvblByb3RvdHlwZS5iaW5kLmJpbmQoY2FsbCxjYWxsKTttb2R1bGUuZXhwb3J0cz1OQVRJVkVfQklORD91bmN1cnJ5VGhpc1dpdGhCaW5kOmZ1bmN0aW9uKGZuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gY2FsbC5hcHBseShmbixhcmd1bWVudHMpfX19LDMwMjE6ZnVuY3Rpb24obW9kdWxlKXt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24ob3B0aW9ucyl7dmFyIGFscGhhYmV0PW9wdGlvbnMmJm9wdGlvbnMuYWxwaGFiZXQ7aWYoYWxwaGFiZXQ9PT12b2lkIDB8fGFscGhhYmV0PT09ImJhc2U2NCJ8fGFscGhhYmV0PT09ImJhc2U2NHVybCIpcmV0dXJuIGFscGhhYmV0fHwiYmFzZTY0Ijt0aHJvdyBuZXcgJFR5cGVFcnJvcigiSW5jb3JyZWN0IGBhbHBoYWJldGAgb3B0aW9uIil9fSwxNjIyOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTt2YXIgSVNfTk9ERT1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwMjApO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG5hbWUpe2lmKElTX05PREUpe3RyeXtyZXR1cm4gZ2xvYmFsVGhpczEucHJvY2Vzcy5nZXRCdWlsdGluTW9kdWxlKG5hbWUpfWNhdGNoKGVycm9yKXt9dHJ5e3JldHVybiBGdW5jdGlvbigncmV0dXJuIHJlcXVpcmUoIicrbmFtZSsnIiknKSgpfWNhdGNoKGVycm9yKXt9fX19LDg1NDA6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBpc0NhbGxhYmxlPV9fd2VicGFja19yZXF1aXJlX18oNTI1Mik7dmFyIGFGdW5jdGlvbj1mdW5jdGlvbihhcmd1bWVudCl7cmV0dXJuIGlzQ2FsbGFibGUoYXJndW1lbnQpP2FyZ3VtZW50OnZvaWQgMH07bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24obmFtZXNwYWNlLG1ldGhvZCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9hRnVuY3Rpb24oZ2xvYmFsVGhpczFbbmFtZXNwYWNlXSk6Z2xvYmFsVGhpczFbbmFtZXNwYWNlXSYmZ2xvYmFsVGhpczFbbmFtZXNwYWNlXVttZXRob2RdfX0sNDgxMDpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG9iail7cmV0dXJue2l0ZXJhdG9yOm9iaixuZXh0Om9iai5uZXh0LGRvbmU6ZmFsc2V9fX0sNzE5NDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGNsYXNzb2Y9X193ZWJwYWNrX3JlcXVpcmVfXyg5MTQyKTt2YXIgZ2V0TWV0aG9kPV9fd2VicGFja19yZXF1aXJlX18oMjI0OSk7dmFyIGlzTnVsbE9yVW5kZWZpbmVkPV9fd2VicGFja19yZXF1aXJlX18oMjk1MCk7dmFyIEl0ZXJhdG9ycz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0NjApO3ZhciB3ZWxsS25vd25TeW1ib2w9X193ZWJwYWNrX3JlcXVpcmVfXygyNjc0KTt2YXIgSVRFUkFUT1I9d2VsbEtub3duU3ltYm9sKCJpdGVyYXRvciIpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0KXtpZighaXNOdWxsT3JVbmRlZmluZWQoaXQpKXJldHVybiBnZXRNZXRob2QoaXQsSVRFUkFUT1IpfHxnZXRNZXRob2QoaXQsIkBAaXRlcmF0b3IiKXx8SXRlcmF0b3JzW2NsYXNzb2YoaXQpXX19LDQyNjI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBjYWxsPV9fd2VicGFja19yZXF1aXJlX18oNjg4MCk7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7dmFyIGFuT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDY0Mik7dmFyIHRyeVRvU3RyaW5nPV9fd2VicGFja19yZXF1aXJlX18oOTg3MCk7dmFyIGdldEl0ZXJhdG9yTWV0aG9kPV9fd2VicGFja19yZXF1aXJlX18oNzE5NCk7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGFyZ3VtZW50LHVzaW5nSXRlcmF0b3Ipe3ZhciBpdGVyYXRvck1ldGhvZD1hcmd1bWVudHMubGVuZ3RoPDI/Z2V0SXRlcmF0b3JNZXRob2QoYXJndW1lbnQpOnVzaW5nSXRlcmF0b3I7aWYoYUNhbGxhYmxlKGl0ZXJhdG9yTWV0aG9kKSlyZXR1cm4gYW5PYmplY3QoY2FsbChpdGVyYXRvck1ldGhvZCxhcmd1bWVudCkpO3Rocm93IG5ldyAkVHlwZUVycm9yKHRyeVRvU3RyaW5nKGFyZ3VtZW50KSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sMjI0OTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7dmFyIGlzTnVsbE9yVW5kZWZpbmVkPV9fd2VicGFja19yZXF1aXJlX18oMjk1MCk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oVixQKXt2YXIgZnVuYz1WW1BdO3JldHVybiBpc051bGxPclVuZGVmaW5lZChmdW5jKT92b2lkIDA6YUNhbGxhYmxlKGZ1bmMpfX0sNTgxMzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGNoZWNrPWZ1bmN0aW9uKGl0KXtyZXR1cm4gaXQmJml0Lk1hdGg9PT1NYXRoJiZpdH07bW9kdWxlLmV4cG9ydHM9Y2hlY2sodHlwZW9mIGdsb2JhbFRoaXM9PSJvYmplY3QiJiZnbG9iYWxUaGlzKXx8Y2hlY2sodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJndpbmRvdyl8fGNoZWNrKHR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZil8fGNoZWNrKHR5cGVvZiBfX3dlYnBhY2tfcmVxdWlyZV9fLmc9PSJvYmplY3QiJiZfX3dlYnBhY2tfcmVxdWlyZV9fLmcpfHxjaGVjayh0eXBlb2YgdGhpcz09Im9iamVjdCImJnRoaXMpfHwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDU4NjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgdG9PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzY0KTt2YXIgaGFzT3duUHJvcGVydHk9dW5jdXJyeVRoaXMoe30uaGFzT3duUHJvcGVydHkpO21vZHVsZS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uIGhhc093bihpdCxrZXkpe3JldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksa2V5KX19LDI2MjA6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz17fX0sMTM1NDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdldEJ1aWx0SW49X193ZWJwYWNrX3JlcXVpcmVfXyg4NTQwKTttb2R1bGUuZXhwb3J0cz1nZXRCdWlsdEluKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSwzMDM4OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgREVTQ1JJUFRPUlM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDUzKTt2YXIgZmFpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxNzApO3ZhciBjcmVhdGVFbGVtZW50PV9fd2VicGFja19yZXF1aXJlX18oODQ2KTttb2R1bGUuZXhwb3J0cz0hREVTQ1JJUFRPUlMmJiFmYWlscyhmdW5jdGlvbigpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlRWxlbWVudCgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hIT09N30pfSwyODQwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciBmYWlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MCk7dmFyIGNsYXNzb2Y9X193ZWJwYWNrX3JlcXVpcmVfXygzNjg5KTt2YXIgJE9iamVjdD1PYmplY3Q7dmFyIHNwbGl0PXVuY3VycnlUaGlzKCIiLnNwbGl0KTttb2R1bGUuZXhwb3J0cz1mYWlscyhmdW5jdGlvbigpe3JldHVybiEkT2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCl9KT9mdW5jdGlvbihpdCl7cmV0dXJuIGNsYXNzb2YoaXQpPT09IlN0cmluZyI/c3BsaXQoaXQsIiIpOiRPYmplY3QoaXQpfTokT2JqZWN0fSw4NjU0OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciBpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzUpO3ZhciBzZXRQcm90b3R5cGVPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxODIpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKCR0aGlzLGR1bW15LFdyYXBwZXIpe3ZhciBOZXdUYXJnZXQsTmV3VGFyZ2V0UHJvdG90eXBlO2lmKHNldFByb3RvdHlwZU9mJiZpc0NhbGxhYmxlKE5ld1RhcmdldD1kdW1teS5jb25zdHJ1Y3RvcikmJk5ld1RhcmdldCE9PVdyYXBwZXImJmlzT2JqZWN0KE5ld1RhcmdldFByb3RvdHlwZT1OZXdUYXJnZXQucHJvdG90eXBlKSYmTmV3VGFyZ2V0UHJvdG90eXBlIT09V3JhcHBlci5wcm90b3R5cGUpc2V0UHJvdG90eXBlT2YoJHRoaXMsTmV3VGFyZ2V0UHJvdG90eXBlKTtyZXR1cm4gJHRoaXN9fSw5NDg1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciBpc0NhbGxhYmxlPV9fd2VicGFja19yZXF1aXJlX18oNTI1Mik7dmFyIHN0b3JlPV9fd2VicGFja19yZXF1aXJlX18oMTIxNCk7dmFyIGZ1bmN0aW9uVG9TdHJpbmc9dW5jdXJyeVRoaXMoRnVuY3Rpb24udG9TdHJpbmcpO2lmKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKXtzdG9yZS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKGl0KXtyZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCl9fW1vZHVsZS5leHBvcnRzPXN0b3JlLmluc3BlY3RTb3VyY2V9LDM2NDE6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBpc09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxMzUpO3ZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXygzMzkyKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihPLG9wdGlvbnMpe2lmKGlzT2JqZWN0KG9wdGlvbnMpJiYiY2F1c2UiaW4gb3B0aW9ucyl7Y3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KE8sImNhdXNlIixvcHRpb25zLmNhdXNlKX19fSwyMjQ2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgTkFUSVZFX1dFQUtfTUFQPV9fd2VicGFja19yZXF1aXJlX18oNzY5KTt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTt2YXIgaXNPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMTM1KTt2YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oMzM5Mik7dmFyIGhhc093bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Nik7dmFyIHNoYXJlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEyMTQpO3ZhciBzaGFyZWRLZXk9X193ZWJwYWNrX3JlcXVpcmVfXygzOTg0KTt2YXIgaGlkZGVuS2V5cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2MjApO3ZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRD0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiO3ZhciBUeXBlRXJyb3IxPWdsb2JhbFRoaXMxLlR5cGVFcnJvcjt2YXIgV2Vha01hcDI9Z2xvYmFsVGhpczEuV2Vha01hcDt2YXIgc2V0LGdldCxoYXM7dmFyIGVuZm9yY2U9ZnVuY3Rpb24oaXQpe3JldHVybiBoYXMoaXQpP2dldChpdCk6c2V0KGl0LHt9KX07dmFyIGdldHRlckZvcj1mdW5jdGlvbihUWVBFKXtyZXR1cm4gZnVuY3Rpb24oaXQpe3ZhciBzdGF0ZTtpZighaXNPYmplY3QoaXQpfHwoc3RhdGU9Z2V0KGl0KSkudHlwZSE9PVRZUEUpe3Rocm93IG5ldyBUeXBlRXJyb3IxKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrVFlQRSsiIHJlcXVpcmVkIil9cmV0dXJuIHN0YXRlfX07aWYoTkFUSVZFX1dFQUtfTUFQfHxzaGFyZWQuc3RhdGUpe3ZhciBzdG9yZT1zaGFyZWQuc3RhdGV8fChzaGFyZWQuc3RhdGU9bmV3IFdlYWtNYXAyKTtzdG9yZS5nZXQ9c3RvcmUuZ2V0O3N0b3JlLmhhcz1zdG9yZS5oYXM7c3RvcmUuc2V0PXN0b3JlLnNldDtzZXQ9ZnVuY3Rpb24oaXQsbWV0YWRhdGEpe2lmKHN0b3JlLmhhcyhpdCkpdGhyb3cgbmV3IFR5cGVFcnJvcjEoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO21ldGFkYXRhLmZhY2FkZT1pdDtzdG9yZS5zZXQoaXQsbWV0YWRhdGEpO3JldHVybiBtZXRhZGF0YX07Z2V0PWZ1bmN0aW9uKGl0KXtyZXR1cm4gc3RvcmUuZ2V0KGl0KXx8e319O2hhcz1mdW5jdGlvbihpdCl7cmV0dXJuIHN0b3JlLmhhcyhpdCl9fWVsc2V7dmFyIFNUQVRFPXNoYXJlZEtleSgic3RhdGUiKTtoaWRkZW5LZXlzW1NUQVRFXT10cnVlO3NldD1mdW5jdGlvbihpdCxtZXRhZGF0YSl7aWYoaGFzT3duKGl0LFNUQVRFKSl0aHJvdyBuZXcgVHlwZUVycm9yMShPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCk7bWV0YWRhdGEuZmFjYWRlPWl0O2NyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCxTVEFURSxtZXRhZGF0YSk7cmV0dXJuIG1ldGFkYXRhfTtnZXQ9ZnVuY3Rpb24oaXQpe3JldHVybiBoYXNPd24oaXQsU1RBVEUpP2l0W1NUQVRFXTp7fX07aGFzPWZ1bmN0aW9uKGl0KXtyZXR1cm4gaGFzT3duKGl0LFNUQVRFKX19bW9kdWxlLmV4cG9ydHM9e3NldCxnZXQsaGFzLGVuZm9yY2UsZ2V0dGVyRm9yfX0sNzc4NjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHdlbGxLbm93blN5bWJvbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzQpO3ZhciBJdGVyYXRvcnM9X193ZWJwYWNrX3JlcXVpcmVfXygxNDYwKTt2YXIgSVRFUkFUT1I9d2VsbEtub3duU3ltYm9sKCJpdGVyYXRvciIpO3ZhciBBcnJheVByb3RvdHlwZT1BcnJheS5wcm90b3R5cGU7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaXQpe3JldHVybiBpdCE9PXZvaWQgMCYmKEl0ZXJhdG9ycy5BcnJheT09PWl0fHxBcnJheVByb3RvdHlwZVtJVEVSQVRPUl09PT1pdCl9fSw4Nzc1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2ODkpO21vZHVsZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uIGlzQXJyYXkoYXJndW1lbnQpe3JldHVybiBjbGFzc29mKGFyZ3VtZW50KT09PSJBcnJheSJ9fSw2MTYwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNDIpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0KXt2YXIga2xhc3M9Y2xhc3NvZihpdCk7cmV0dXJuIGtsYXNzPT09IkJpZ0ludDY0QXJyYXkifHxrbGFzcz09PSJCaWdVaW50NjRBcnJheSJ9fSw1MjUyOmZ1bmN0aW9uKG1vZHVsZSl7dmFyIGRvY3VtZW50QWxsPXR5cGVvZiBkb2N1bWVudD09Im9iamVjdCImJmRvY3VtZW50LmFsbDttb2R1bGUuZXhwb3J0cz10eXBlb2YgZG9jdW1lbnRBbGw9PSJ1bmRlZmluZWQiJiZkb2N1bWVudEFsbCE9PXZvaWQgMD9mdW5jdGlvbihhcmd1bWVudCl7cmV0dXJuIHR5cGVvZiBhcmd1bWVudD09ImZ1bmN0aW9uInx8YXJndW1lbnQ9PT1kb2N1bWVudEFsbH06ZnVuY3Rpb24oYXJndW1lbnQpe3JldHVybiB0eXBlb2YgYXJndW1lbnQ9PSJmdW5jdGlvbiJ9fSw2ODkwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciBmYWlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MCk7dmFyIGlzQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjUyKTt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNDIpO3ZhciBnZXRCdWlsdEluPV9fd2VicGFja19yZXF1aXJlX18oODU0MCk7dmFyIGluc3BlY3RTb3VyY2U9X193ZWJwYWNrX3JlcXVpcmVfXyg5NDg1KTt2YXIgbm9vcD1mdW5jdGlvbigpe307dmFyIGNvbnN0cnVjdD1nZXRCdWlsdEluKCJSZWZsZWN0IiwiY29uc3RydWN0Iik7dmFyIGNvbnN0cnVjdG9yUmVnRXhwPS9eXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXGIvO3ZhciBleGVjPXVuY3VycnlUaGlzKGNvbnN0cnVjdG9yUmVnRXhwLmV4ZWMpO3ZhciBJTkNPUlJFQ1RfVE9fU1RSSU5HPSFjb25zdHJ1Y3RvclJlZ0V4cC50ZXN0KG5vb3ApO3ZhciBpc0NvbnN0cnVjdG9yTW9kZXJuPWZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpe2lmKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSlyZXR1cm4gZmFsc2U7dHJ5e2NvbnN0cnVjdChub29wLFtdLGFyZ3VtZW50KTtyZXR1cm4gdHJ1ZX1jYXRjaChlcnJvcil7cmV0dXJuIGZhbHNlfX07dmFyIGlzQ29uc3RydWN0b3JMZWdhY3k9ZnVuY3Rpb24gaXNDb25zdHJ1Y3Rvcihhcmd1bWVudCl7aWYoIWlzQ2FsbGFibGUoYXJndW1lbnQpKXJldHVybiBmYWxzZTtzd2l0Y2goY2xhc3NvZihhcmd1bWVudCkpe2Nhc2UiQXN5bmNGdW5jdGlvbiI6Y2FzZSJHZW5lcmF0b3JGdW5jdGlvbiI6Y2FzZSJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIjpyZXR1cm4gZmFsc2V9dHJ5e3JldHVybiBJTkNPUlJFQ1RfVE9fU1RSSU5HfHwhIWV4ZWMoY29uc3RydWN0b3JSZWdFeHAsaW5zcGVjdFNvdXJjZShhcmd1bWVudCkpfWNhdGNoKGVycm9yKXtyZXR1cm4gdHJ1ZX19O2lzQ29uc3RydWN0b3JMZWdhY3kuc2hhbT10cnVlO21vZHVsZS5leHBvcnRzPSFjb25zdHJ1Y3R8fGZhaWxzKGZ1bmN0aW9uKCl7dmFyIGNhbGxlZDtyZXR1cm4gaXNDb25zdHJ1Y3Rvck1vZGVybihpc0NvbnN0cnVjdG9yTW9kZXJuLmNhbGwpfHwhaXNDb25zdHJ1Y3Rvck1vZGVybihPYmplY3QpfHwhaXNDb25zdHJ1Y3Rvck1vZGVybihmdW5jdGlvbigpe2NhbGxlZD10cnVlfSl8fGNhbGxlZH0pP2lzQ29uc3RydWN0b3JMZWdhY3k6aXNDb25zdHJ1Y3Rvck1vZGVybn0sOTEwNTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGZhaWxzPV9fd2VicGFja19yZXF1aXJlX18oMTcwKTt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciByZXBsYWNlbWVudD0vI3xcLnByb3RvdHlwZVwuLzt2YXIgaXNGb3JjZWQ9ZnVuY3Rpb24oZmVhdHVyZSxkZXRlY3Rpb24pe3ZhciB2YWx1ZT1kYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07cmV0dXJuIHZhbHVlPT09UE9MWUZJTEw/dHJ1ZTp2YWx1ZT09PU5BVElWRT9mYWxzZTppc0NhbGxhYmxlKGRldGVjdGlvbik/ZmFpbHMoZGV0ZWN0aW9uKTohIWRldGVjdGlvbn07dmFyIG5vcm1hbGl6ZT1pc0ZvcmNlZC5ub3JtYWxpemU9ZnVuY3Rpb24oc3RyaW5nKXtyZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZShyZXBsYWNlbWVudCwiLiIpLnRvTG93ZXJDYXNlKCl9O3ZhciBkYXRhPWlzRm9yY2VkLmRhdGE9e307dmFyIE5BVElWRT1pc0ZvcmNlZC5OQVRJVkU9Ik4iO3ZhciBQT0xZRklMTD1pc0ZvcmNlZC5QT0xZRklMTD0iUCI7bW9kdWxlLmV4cG9ydHM9aXNGb3JjZWR9LDI5NTA6ZnVuY3Rpb24obW9kdWxlKXttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihpdCl7cmV0dXJuIGl0PT09bnVsbHx8aXQ9PT12b2lkIDB9fSwyMTM1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0KXtyZXR1cm4gdHlwZW9mIGl0PT0ib2JqZWN0Ij9pdCE9PW51bGw6aXNDYWxsYWJsZShpdCl9fSw4NTYwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaXNPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMTM1KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihhcmd1bWVudCl7cmV0dXJuIGlzT2JqZWN0KGFyZ3VtZW50KXx8YXJndW1lbnQ9PT1udWxsfX0sNTM5MDpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZhbHNlfSwzMjg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnZXRCdWlsdEluPV9fd2VicGFja19yZXF1aXJlX18oODU0MCk7dmFyIGlzQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjUyKTt2YXIgaXNQcm90b3R5cGVPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MDIpO3ZhciBVU0VfU1lNQk9MX0FTX1VJRD1fX3dlYnBhY2tfcmVxdWlyZV9fKDEwNSk7dmFyICRPYmplY3Q9T2JqZWN0O21vZHVsZS5leHBvcnRzPVVTRV9TWU1CT0xfQVNfVUlEP2Z1bmN0aW9uKGl0KXtyZXR1cm4gdHlwZW9mIGl0PT0ic3ltYm9sIn06ZnVuY3Rpb24oaXQpe3ZhciAkU3ltYm9sPWdldEJ1aWx0SW4oIlN5bWJvbCIpO3JldHVybiBpc0NhbGxhYmxlKCRTeW1ib2wpJiZpc1Byb3RvdHlwZU9mKCRTeW1ib2wucHJvdG90eXBlLCRPYmplY3QoaXQpKX19LDYyNDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihyZWNvcmQsZm4sSVRFUkFUT1JfSU5TVEVBRF9PRl9SRUNPUkQpe3ZhciBpdGVyYXRvcj1JVEVSQVRPUl9JTlNURUFEX09GX1JFQ09SRD9yZWNvcmQ6cmVjb3JkLml0ZXJhdG9yO3ZhciBuZXh0PXJlY29yZC5uZXh0O3ZhciBzdGVwLHJlc3VsdDt3aGlsZSghKHN0ZXA9Y2FsbChuZXh0LGl0ZXJhdG9yKSkuZG9uZSl7cmVzdWx0PWZuKHN0ZXAudmFsdWUpO2lmKHJlc3VsdCE9PXZvaWQgMClyZXR1cm4gcmVzdWx0fX19LDk0NzM6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBiaW5kPV9fd2VicGFja19yZXF1aXJlX18oODY5Myk7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTt2YXIgYW5PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjQyKTt2YXIgdHJ5VG9TdHJpbmc9X193ZWJwYWNrX3JlcXVpcmVfXyg5ODcwKTt2YXIgaXNBcnJheUl0ZXJhdG9yTWV0aG9kPV9fd2VicGFja19yZXF1aXJlX18oNzc4Nik7dmFyIGxlbmd0aE9mQXJyYXlMaWtlPV9fd2VicGFja19yZXF1aXJlX18oODY5KTt2YXIgaXNQcm90b3R5cGVPZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MDIpO3ZhciBnZXRJdGVyYXRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDQyNjIpO3ZhciBnZXRJdGVyYXRvck1ldGhvZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxOTQpO3ZhciBpdGVyYXRvckNsb3NlPV9fd2VicGFja19yZXF1aXJlX18oOTkxNik7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO3ZhciBSZXN1bHQ9ZnVuY3Rpb24oc3RvcHBlZCxyZXN1bHQpe3RoaXMuc3RvcHBlZD1zdG9wcGVkO3RoaXMucmVzdWx0PXJlc3VsdH07dmFyIFJlc3VsdFByb3RvdHlwZT1SZXN1bHQucHJvdG90eXBlO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0ZXJhYmxlLHVuYm91bmRGdW5jdGlvbixvcHRpb25zKXt2YXIgdGhhdD1vcHRpb25zJiZvcHRpb25zLnRoYXQ7dmFyIEFTX0VOVFJJRVM9ISEob3B0aW9ucyYmb3B0aW9ucy5BU19FTlRSSUVTKTt2YXIgSVNfUkVDT1JEPSEhKG9wdGlvbnMmJm9wdGlvbnMuSVNfUkVDT1JEKTt2YXIgSVNfSVRFUkFUT1I9ISEob3B0aW9ucyYmb3B0aW9ucy5JU19JVEVSQVRPUik7dmFyIElOVEVSUlVQVEVEPSEhKG9wdGlvbnMmJm9wdGlvbnMuSU5URVJSVVBURUQpO3ZhciBmbj1iaW5kKHVuYm91bmRGdW5jdGlvbix0aGF0KTt2YXIgaXRlcmF0b3IsaXRlckZuLGluZGV4LGxlbmd0aCxyZXN1bHQsbmV4dCxzdGVwO3ZhciBzdG9wPWZ1bmN0aW9uKGNvbmRpdGlvbil7aWYoaXRlcmF0b3IpaXRlcmF0b3JDbG9zZShpdGVyYXRvciwibm9ybWFsIik7cmV0dXJuIG5ldyBSZXN1bHQodHJ1ZSxjb25kaXRpb24pfTt2YXIgY2FsbEZuPWZ1bmN0aW9uKHZhbHVlKXtpZihBU19FTlRSSUVTKXthbk9iamVjdCh2YWx1ZSk7cmV0dXJuIElOVEVSUlVQVEVEP2ZuKHZhbHVlWzBdLHZhbHVlWzFdLHN0b3ApOmZuKHZhbHVlWzBdLHZhbHVlWzFdKX1yZXR1cm4gSU5URVJSVVBURUQ/Zm4odmFsdWUsc3RvcCk6Zm4odmFsdWUpfTtpZihJU19SRUNPUkQpe2l0ZXJhdG9yPWl0ZXJhYmxlLml0ZXJhdG9yfWVsc2UgaWYoSVNfSVRFUkFUT1Ipe2l0ZXJhdG9yPWl0ZXJhYmxlfWVsc2V7aXRlckZuPWdldEl0ZXJhdG9yTWV0aG9kKGl0ZXJhYmxlKTtpZighaXRlckZuKXRocm93IG5ldyAkVHlwZUVycm9yKHRyeVRvU3RyaW5nKGl0ZXJhYmxlKSsiIGlzIG5vdCBpdGVyYWJsZSIpO2lmKGlzQXJyYXlJdGVyYXRvck1ldGhvZChpdGVyRm4pKXtmb3IoaW5kZXg9MCxsZW5ndGg9bGVuZ3RoT2ZBcnJheUxpa2UoaXRlcmFibGUpO2xlbmd0aD5pbmRleDtpbmRleCsrKXtyZXN1bHQ9Y2FsbEZuKGl0ZXJhYmxlW2luZGV4XSk7aWYocmVzdWx0JiZpc1Byb3RvdHlwZU9mKFJlc3VsdFByb3RvdHlwZSxyZXN1bHQpKXJldHVybiByZXN1bHR9cmV0dXJuIG5ldyBSZXN1bHQoZmFsc2UpfWl0ZXJhdG9yPWdldEl0ZXJhdG9yKGl0ZXJhYmxlLGl0ZXJGbil9bmV4dD1JU19SRUNPUkQ/aXRlcmFibGUubmV4dDppdGVyYXRvci5uZXh0O3doaWxlKCEoc3RlcD1jYWxsKG5leHQsaXRlcmF0b3IpKS5kb25lKXt0cnl7cmVzdWx0PWNhbGxGbihzdGVwLnZhbHVlKX1jYXRjaChlcnJvcil7aXRlcmF0b3JDbG9zZShpdGVyYXRvciwidGhyb3ciLGVycm9yKX1pZih0eXBlb2YgcmVzdWx0PT0ib2JqZWN0IiYmcmVzdWx0JiZpc1Byb3RvdHlwZU9mKFJlc3VsdFByb3RvdHlwZSxyZXN1bHQpKXJldHVybiByZXN1bHR9cmV0dXJuIG5ldyBSZXN1bHQoZmFsc2UpfX0sNTY5NzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGl0ZXJhdG9yQ2xvc2U9X193ZWJwYWNrX3JlcXVpcmVfXyg5OTE2KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihpdGVycyxraW5kLHZhbHVlKXtmb3IodmFyIGk9aXRlcnMubGVuZ3RoLTE7aT49MDtpLS0pe2lmKGl0ZXJzW2ldPT09dm9pZCAwKWNvbnRpbnVlO3RyeXt2YWx1ZT1pdGVyYXRvckNsb3NlKGl0ZXJzW2ldLml0ZXJhdG9yLGtpbmQsdmFsdWUpfWNhdGNoKGVycm9yKXtraW5kPSJ0aHJvdyI7dmFsdWU9ZXJyb3J9fWlmKGtpbmQ9PT0idGhyb3ciKXRocm93IHZhbHVlO3JldHVybiB2YWx1ZX19LDk5MTY6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBjYWxsPV9fd2VicGFja19yZXF1aXJlX18oNjg4MCk7dmFyIGFuT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDY0Mik7dmFyIGdldE1ldGhvZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIyNDkpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0ZXJhdG9yLGtpbmQsdmFsdWUpe3ZhciBpbm5lclJlc3VsdCxpbm5lckVycm9yO2FuT2JqZWN0KGl0ZXJhdG9yKTt0cnl7aW5uZXJSZXN1bHQ9Z2V0TWV0aG9kKGl0ZXJhdG9yLCJyZXR1cm4iKTtpZighaW5uZXJSZXN1bHQpe2lmKGtpbmQ9PT0idGhyb3ciKXRocm93IHZhbHVlO3JldHVybiB2YWx1ZX1pbm5lclJlc3VsdD1jYWxsKGlubmVyUmVzdWx0LGl0ZXJhdG9yKX1jYXRjaChlcnJvcil7aW5uZXJFcnJvcj10cnVlO2lubmVyUmVzdWx0PWVycm9yfWlmKGtpbmQ9PT0idGhyb3ciKXRocm93IHZhbHVlO2lmKGlubmVyRXJyb3IpdGhyb3cgaW5uZXJSZXN1bHQ7YW5PYmplY3QoaW5uZXJSZXN1bHQpO3JldHVybiB2YWx1ZX19LDY3NTU6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBjYWxsPV9fd2VicGFja19yZXF1aXJlX18oNjg4MCk7dmFyIGNyZWF0ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MjUpO3ZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHk9X193ZWJwYWNrX3JlcXVpcmVfXygzMzkyKTt2YXIgZGVmaW5lQnVpbHRJbnM9X193ZWJwYWNrX3JlcXVpcmVfXyg1NzIwKTt2YXIgd2VsbEtub3duU3ltYm9sPV9fd2VicGFja19yZXF1aXJlX18oMjY3NCk7dmFyIEludGVybmFsU3RhdGVNb2R1bGU9X193ZWJwYWNrX3JlcXVpcmVfXygyMjQ2KTt2YXIgZ2V0TWV0aG9kPV9fd2VicGFja19yZXF1aXJlX18oMjI0OSk7dmFyIEl0ZXJhdG9yUHJvdG90eXBlPV9fd2VicGFja19yZXF1aXJlX18oMjkwNikuSXRlcmF0b3JQcm90b3R5cGU7dmFyIGNyZWF0ZUl0ZXJSZXN1bHRPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg1MDQpO3ZhciBpdGVyYXRvckNsb3NlPV9fd2VicGFja19yZXF1aXJlX18oOTkxNik7dmFyIGl0ZXJhdG9yQ2xvc2VBbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg1Njk3KTt2YXIgVE9fU1RSSU5HX1RBRz13ZWxsS25vd25TeW1ib2woInRvU3RyaW5nVGFnIik7dmFyIElURVJBVE9SX0hFTFBFUj0iSXRlcmF0b3JIZWxwZXIiO3ZhciBXUkFQX0ZPUl9WQUxJRF9JVEVSQVRPUj0iV3JhcEZvclZhbGlkSXRlcmF0b3IiO3ZhciBOT1JNQUw9Im5vcm1hbCI7dmFyIFRIUk9XPSJ0aHJvdyI7dmFyIHNldEludGVybmFsU3RhdGU9SW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7dmFyIGNyZWF0ZUl0ZXJhdG9yUHJveHlQcm90b3R5cGU9ZnVuY3Rpb24oSVNfSVRFUkFUT1Ipe3ZhciBnZXRJbnRlcm5hbFN0YXRlPUludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKElTX0lURVJBVE9SP1dSQVBfRk9SX1ZBTElEX0lURVJBVE9SOklURVJBVE9SX0hFTFBFUik7cmV0dXJuIGRlZmluZUJ1aWx0SW5zKGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSkse25leHQ6ZnVuY3Rpb24gbmV4dCgpe3ZhciBzdGF0ZT1nZXRJbnRlcm5hbFN0YXRlKHRoaXMpO2lmKElTX0lURVJBVE9SKXJldHVybiBzdGF0ZS5uZXh0SGFuZGxlcigpO2lmKHN0YXRlLmRvbmUpcmV0dXJuIGNyZWF0ZUl0ZXJSZXN1bHRPYmplY3Qodm9pZCAwLHRydWUpO3RyeXt2YXIgcmVzdWx0PXN0YXRlLm5leHRIYW5kbGVyKCk7cmV0dXJuIHN0YXRlLnJldHVybkhhbmRsZXJSZXN1bHQ/cmVzdWx0OmNyZWF0ZUl0ZXJSZXN1bHRPYmplY3QocmVzdWx0LHN0YXRlLmRvbmUpfWNhdGNoKGVycm9yKXtzdGF0ZS5kb25lPXRydWU7dGhyb3cgZXJyb3J9fSwicmV0dXJuIjpmdW5jdGlvbigpe3ZhciBzdGF0ZT1nZXRJbnRlcm5hbFN0YXRlKHRoaXMpO3ZhciBpdGVyYXRvcj1zdGF0ZS5pdGVyYXRvcjtzdGF0ZS5kb25lPXRydWU7aWYoSVNfSVRFUkFUT1Ipe3ZhciByZXR1cm5NZXRob2Q9Z2V0TWV0aG9kKGl0ZXJhdG9yLCJyZXR1cm4iKTtyZXR1cm4gcmV0dXJuTWV0aG9kP2NhbGwocmV0dXJuTWV0aG9kLGl0ZXJhdG9yKTpjcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHZvaWQgMCx0cnVlKX1pZihzdGF0ZS5pbm5lcil0cnl7aXRlcmF0b3JDbG9zZShzdGF0ZS5pbm5lci5pdGVyYXRvcixOT1JNQUwpfWNhdGNoKGVycm9yKXtyZXR1cm4gaXRlcmF0b3JDbG9zZShpdGVyYXRvcixUSFJPVyxlcnJvcil9aWYoc3RhdGUub3Blbkl0ZXJzKXRyeXtpdGVyYXRvckNsb3NlQWxsKHN0YXRlLm9wZW5JdGVycyxOT1JNQUwpfWNhdGNoKGVycm9yKXtyZXR1cm4gaXRlcmF0b3JDbG9zZShpdGVyYXRvcixUSFJPVyxlcnJvcil9aWYoaXRlcmF0b3IpaXRlcmF0b3JDbG9zZShpdGVyYXRvcixOT1JNQUwpO3JldHVybiBjcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHZvaWQgMCx0cnVlKX19KX07dmFyIFdyYXBGb3JWYWxpZEl0ZXJhdG9yUHJvdG90eXBlPWNyZWF0ZUl0ZXJhdG9yUHJveHlQcm90b3R5cGUodHJ1ZSk7dmFyIEl0ZXJhdG9ySGVscGVyUHJvdG90eXBlPWNyZWF0ZUl0ZXJhdG9yUHJveHlQcm90b3R5cGUoZmFsc2UpO2NyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYXRvckhlbHBlclByb3RvdHlwZSxUT19TVFJJTkdfVEFHLCJJdGVyYXRvciBIZWxwZXIiKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihuZXh0SGFuZGxlcixJU19JVEVSQVRPUixSRVRVUk5fSEFORExFUl9SRVNVTFQpe3ZhciBJdGVyYXRvclByb3h5PWZ1bmN0aW9uIEl0ZXJhdG9yMShyZWNvcmQsc3RhdGUpe2lmKHN0YXRlKXtzdGF0ZS5pdGVyYXRvcj1yZWNvcmQuaXRlcmF0b3I7c3RhdGUubmV4dD1yZWNvcmQubmV4dH1lbHNlIHN0YXRlPXJlY29yZDtzdGF0ZS50eXBlPUlTX0lURVJBVE9SP1dSQVBfRk9SX1ZBTElEX0lURVJBVE9SOklURVJBVE9SX0hFTFBFUjtzdGF0ZS5yZXR1cm5IYW5kbGVyUmVzdWx0PSEhUkVUVVJOX0hBTkRMRVJfUkVTVUxUO3N0YXRlLm5leHRIYW5kbGVyPW5leHRIYW5kbGVyO3N0YXRlLmNvdW50ZXI9MDtzdGF0ZS5kb25lPWZhbHNlO3NldEludGVybmFsU3RhdGUodGhpcyxzdGF0ZSl9O0l0ZXJhdG9yUHJveHkucHJvdG90eXBlPUlTX0lURVJBVE9SP1dyYXBGb3JWYWxpZEl0ZXJhdG9yUHJvdG90eXBlOkl0ZXJhdG9ySGVscGVyUHJvdG90eXBlO3JldHVybiBJdGVyYXRvclByb3h5fX0sODE1NTpmdW5jdGlvbihtb2R1bGUpe21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG1ldGhvZE5hbWUsYXJndW1lbnQpe3ZhciBtZXRob2Q9dHlwZW9mIEl0ZXJhdG9yPT0iZnVuY3Rpb24iJiZJdGVyYXRvci5wcm90b3R5cGVbbWV0aG9kTmFtZV07aWYobWV0aG9kKXRyeXttZXRob2QuY2FsbCh7bmV4dDpudWxsfSxhcmd1bWVudCkubmV4dCgpfWNhdGNoKGVycm9yKXtyZXR1cm4gdHJ1ZX19fSw4NTIyOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihNRVRIT0RfTkFNRSxFeHBlY3RlZEVycm9yKXt2YXIgSXRlcmF0b3IxPWdsb2JhbFRoaXMxLkl0ZXJhdG9yO3ZhciBJdGVyYXRvclByb3RvdHlwZT1JdGVyYXRvcjEmJkl0ZXJhdG9yMS5wcm90b3R5cGU7dmFyIG1ldGhvZD1JdGVyYXRvclByb3RvdHlwZSYmSXRlcmF0b3JQcm90b3R5cGVbTUVUSE9EX05BTUVdO3ZhciBDTE9TRUQ9ZmFsc2U7aWYobWV0aG9kKXRyeXttZXRob2QuY2FsbCh7bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOnRydWV9fSwicmV0dXJuIjpmdW5jdGlvbigpe0NMT1NFRD10cnVlfX0sLTEpfWNhdGNoKGVycm9yKXtpZighKGVycm9yIGluc3RhbmNlb2YgRXhwZWN0ZWRFcnJvcikpQ0xPU0VEPWZhbHNlfWlmKCFDTE9TRUQpcmV0dXJuIG1ldGhvZH19LDI5MDY6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBmYWlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MCk7dmFyIGlzQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjUyKTt2YXIgaXNPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMTM1KTt2YXIgY3JlYXRlPV9fd2VicGFja19yZXF1aXJlX18oMTQyNSk7dmFyIGdldFByb3RvdHlwZU9mPV9fd2VicGFja19yZXF1aXJlX18oNjkzMCk7dmFyIGRlZmluZUJ1aWx0SW49X193ZWJwYWNrX3JlcXVpcmVfXyg2MjY5KTt2YXIgd2VsbEtub3duU3ltYm9sPV9fd2VicGFja19yZXF1aXJlX18oMjY3NCk7dmFyIElTX1BVUkU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzkwKTt2YXIgSVRFUkFUT1I9d2VsbEtub3duU3ltYm9sKCJpdGVyYXRvciIpO3ZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTPWZhbHNlO3ZhciBJdGVyYXRvclByb3RvdHlwZSxQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUsYXJyYXlJdGVyYXRvcjtpZihbXS5rZXlzKXthcnJheUl0ZXJhdG9yPVtdLmtleXMoKTtpZighKCJuZXh0ImluIGFycmF5SXRlcmF0b3IpKUJVR0dZX1NBRkFSSV9JVEVSQVRPUlM9dHJ1ZTtlbHNle1Byb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZT1nZXRQcm90b3R5cGVPZihnZXRQcm90b3R5cGVPZihhcnJheUl0ZXJhdG9yKSk7aWYoUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlIT09T2JqZWN0LnByb3RvdHlwZSlJdGVyYXRvclByb3RvdHlwZT1Qcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGV9fXZhciBORVdfSVRFUkFUT1JfUFJPVE9UWVBFPSFpc09iamVjdChJdGVyYXRvclByb3RvdHlwZSl8fGZhaWxzKGZ1bmN0aW9uKCl7dmFyIHRlc3Q9e307cmV0dXJuIEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXS5jYWxsKHRlc3QpIT09dGVzdH0pO2lmKE5FV19JVEVSQVRPUl9QUk9UT1RZUEUpSXRlcmF0b3JQcm90b3R5cGU9e307ZWxzZSBpZihJU19QVVJFKUl0ZXJhdG9yUHJvdG90eXBlPWNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7aWYoIWlzQ2FsbGFibGUoSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdKSl7ZGVmaW5lQnVpbHRJbihJdGVyYXRvclByb3RvdHlwZSxJVEVSQVRPUixmdW5jdGlvbigpe3JldHVybiB0aGlzfSl9bW9kdWxlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlN9fSwxNDYwOmZ1bmN0aW9uKG1vZHVsZSl7bW9kdWxlLmV4cG9ydHM9e319LDg2OTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHRvTGVuZ3RoPV9fd2VicGFja19yZXF1aXJlX18oNDAzKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihvYmope3JldHVybiB0b0xlbmd0aChvYmoubGVuZ3RoKX19LDMzMjI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB1bmN1cnJ5VGhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4OSk7dmFyIGZhaWxzPV9fd2VicGFja19yZXF1aXJlX18oMTcwKTt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciBoYXNPd249X193ZWJwYWNrX3JlcXVpcmVfXyg1ODYpO3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRT1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxNTEpLkNPTkZJR1VSQUJMRTt2YXIgaW5zcGVjdFNvdXJjZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk0ODUpO3ZhciBJbnRlcm5hbFN0YXRlTW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oMjI0Nik7dmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlPUludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTt2YXIgZ2V0SW50ZXJuYWxTdGF0ZT1JbnRlcm5hbFN0YXRlTW9kdWxlLmdldDt2YXIgJFN0cmluZz1TdHJpbmc7dmFyIGRlZmluZVByb3BlcnR5PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgc3RyaW5nU2xpY2U9dW5jdXJyeVRoaXMoIiIuc2xpY2UpO3ZhciByZXBsYWNlPXVuY3VycnlUaGlzKCIiLnJlcGxhY2UpO3ZhciBqb2luPXVuY3VycnlUaGlzKFtdLmpvaW4pO3ZhciBDT05GSUdVUkFCTEVfTEVOR1RIPURFU0NSSVBUT1JTJiYhZmFpbHMoZnVuY3Rpb24oKXtyZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oKXt9LCJsZW5ndGgiLHt2YWx1ZTo4fSkubGVuZ3RoIT09OH0pO3ZhciBURU1QTEFURT1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7dmFyIG1ha2VCdWlsdEluPW1vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHZhbHVlLG5hbWUsb3B0aW9ucyl7aWYoc3RyaW5nU2xpY2UoJFN0cmluZyhuYW1lKSwwLDcpPT09IlN5bWJvbCgiKXtuYW1lPSJbIityZXBsYWNlKCRTdHJpbmcobmFtZSksL15TeW1ib2xcKChbXildKilcKS4qJC8sIiQxIikrIl0ifWlmKG9wdGlvbnMmJm9wdGlvbnMuZ2V0dGVyKW5hbWU9ImdldCAiK25hbWU7aWYob3B0aW9ucyYmb3B0aW9ucy5zZXR0ZXIpbmFtZT0ic2V0ICIrbmFtZTtpZighaGFzT3duKHZhbHVlLCJuYW1lIil8fENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FJiZ2YWx1ZS5uYW1lIT09bmFtZSl7aWYoREVTQ1JJUFRPUlMpZGVmaW5lUHJvcGVydHkodmFsdWUsIm5hbWUiLHt2YWx1ZTpuYW1lLGNvbmZpZ3VyYWJsZTp0cnVlfSk7ZWxzZSB2YWx1ZS5uYW1lPW5hbWV9aWYoQ09ORklHVVJBQkxFX0xFTkdUSCYmb3B0aW9ucyYmaGFzT3duKG9wdGlvbnMsImFyaXR5IikmJnZhbHVlLmxlbmd0aCE9PW9wdGlvbnMuYXJpdHkpe2RlZmluZVByb3BlcnR5KHZhbHVlLCJsZW5ndGgiLHt2YWx1ZTpvcHRpb25zLmFyaXR5fSl9dHJ5e2lmKG9wdGlvbnMmJmhhc093bihvcHRpb25zLCJjb25zdHJ1Y3RvciIpJiZvcHRpb25zLmNvbnN0cnVjdG9yKXtpZihERVNDUklQVE9SUylkZWZpbmVQcm9wZXJ0eSh2YWx1ZSwicHJvdG90eXBlIix7d3JpdGFibGU6ZmFsc2V9KX1lbHNlIGlmKHZhbHVlLnByb3RvdHlwZSl2YWx1ZS5wcm90b3R5cGU9dm9pZCAwfWNhdGNoKGVycm9yKXt9dmFyIHN0YXRlPWVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKTtpZighaGFzT3duKHN0YXRlLCJzb3VyY2UiKSl7c3RhdGUuc291cmNlPWpvaW4oVEVNUExBVEUsdHlwZW9mIG5hbWU9PSJzdHJpbmciP25hbWU6IiIpfXJldHVybiB2YWx1ZX07RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPW1ha2VCdWlsdEluKGZ1bmN0aW9uIHRvU3RyaW5nKCl7cmV0dXJuIGlzQ2FsbGFibGUodGhpcykmJmdldEludGVybmFsU3RhdGUodGhpcykuc291cmNlfHxpbnNwZWN0U291cmNlKHRoaXMpfSwidG9TdHJpbmciKX0sOTU0MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgTWFwUHJvdG90eXBlPU1hcC5wcm90b3R5cGU7bW9kdWxlLmV4cG9ydHM9e01hcCxzZXQ6dW5jdXJyeVRoaXMoTWFwUHJvdG90eXBlLnNldCksZ2V0OnVuY3VycnlUaGlzKE1hcFByb3RvdHlwZS5nZXQpLGhhczp1bmN1cnJ5VGhpcyhNYXBQcm90b3R5cGUuaGFzKSxyZW1vdmU6dW5jdXJyeVRoaXMoTWFwUHJvdG90eXBlWyJkZWxldGUiXSkscHJvdG86TWFwUHJvdG90eXBlfX0sNzMwMjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgaXRlcmF0ZVNpbXBsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDYyNCk7dmFyIE1hcEhlbHBlcnM9X193ZWJwYWNrX3JlcXVpcmVfXyg5NTQxKTt2YXIgTWFwMT1NYXBIZWxwZXJzLk1hcDt2YXIgTWFwUHJvdG90eXBlPU1hcEhlbHBlcnMucHJvdG87dmFyIGZvckVhY2g9dW5jdXJyeVRoaXMoTWFwUHJvdG90eXBlLmZvckVhY2gpO3ZhciBlbnRyaWVzPXVuY3VycnlUaGlzKE1hcFByb3RvdHlwZS5lbnRyaWVzKTt2YXIgbmV4dD1lbnRyaWVzKG5ldyBNYXAxKS5uZXh0O21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG1hcCxmbixpbnRlcnJ1cHRpYmxlKXtyZXR1cm4gaW50ZXJydXB0aWJsZT9pdGVyYXRlU2ltcGxlKHtpdGVyYXRvcjplbnRyaWVzKG1hcCksbmV4dH0sZnVuY3Rpb24oZW50cnkpe3JldHVybiBmbihlbnRyeVsxXSxlbnRyeVswXSl9KTpmb3JFYWNoKG1hcCxmbil9fSw1ODI6ZnVuY3Rpb24obW9kdWxlKXt2YXIgY2VpbD1NYXRoLmNlaWw7dmFyIGZsb29yPU1hdGguZmxvb3I7bW9kdWxlLmV4cG9ydHM9TWF0aC50cnVuY3x8ZnVuY3Rpb24gdHJ1bmMoeCl7dmFyIG49K3g7cmV0dXJuKG4+MD9mbG9vcjpjZWlsKShuKX19LDYwMTg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB0b1N0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDY5NzgpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGFyZ3VtZW50LCRkZWZhdWx0KXtyZXR1cm4gYXJndW1lbnQ9PT12b2lkIDA/YXJndW1lbnRzLmxlbmd0aDwyPyIiOiRkZWZhdWx0OnRvU3RyaW5nKGFyZ3VtZW50KX19LDE0MjU6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBhbk9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2NDIpO3ZhciBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oNjkwMik7dmFyIGVudW1CdWdLZXlzPV9fd2VicGFja19yZXF1aXJlX18oNDE4KTt2YXIgaGlkZGVuS2V5cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2MjApO3ZhciBodG1sPV9fd2VicGFja19yZXF1aXJlX18oMTM1NCk7dmFyIGRvY3VtZW50Q3JlYXRlRWxlbWVudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0Nik7dmFyIHNoYXJlZEtleT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM5ODQpO3ZhciBHVD0iPiI7dmFyIExUPSI8Ijt2YXIgUFJPVE9UWVBFPSJwcm90b3R5cGUiO3ZhciBTQ1JJUFQ9InNjcmlwdCI7dmFyIElFX1BST1RPPXNoYXJlZEtleSgiSUVfUFJPVE8iKTt2YXIgRW1wdHlDb25zdHJ1Y3Rvcj1mdW5jdGlvbigpe307dmFyIHNjcmlwdFRhZz1mdW5jdGlvbihjb250ZW50KXtyZXR1cm4gTFQrU0NSSVBUK0dUK2NvbnRlbnQrTFQrIi8iK1NDUklQVCtHVH07dmFyIE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVg9ZnVuY3Rpb24oYWN0aXZlWERvY3VtZW50Mil7YWN0aXZlWERvY3VtZW50Mi53cml0ZShzY3JpcHRUYWcoIiIpKTthY3RpdmVYRG9jdW1lbnQyLmNsb3NlKCk7dmFyIHRlbXA9YWN0aXZlWERvY3VtZW50Mi5wYXJlbnRXaW5kb3cuT2JqZWN0O2FjdGl2ZVhEb2N1bWVudDI9bnVsbDtyZXR1cm4gdGVtcH07dmFyIE51bGxQcm90b09iamVjdFZpYUlGcmFtZT1mdW5jdGlvbigpe3ZhciBpZnJhbWU9ZG9jdW1lbnRDcmVhdGVFbGVtZW50KCJpZnJhbWUiKTt2YXIgSlM9ImphdmEiK1NDUklQVCsiOiI7dmFyIGlmcmFtZURvY3VtZW50O2lmcmFtZS5zdHlsZS5kaXNwbGF5PSJub25lIjtodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7aWZyYW1lLnNyYz1TdHJpbmcoSlMpO2lmcmFtZURvY3VtZW50PWlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O2lmcmFtZURvY3VtZW50Lm9wZW4oKTtpZnJhbWVEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoImRvY3VtZW50LkY9T2JqZWN0IikpO2lmcmFtZURvY3VtZW50LmNsb3NlKCk7cmV0dXJuIGlmcmFtZURvY3VtZW50LkZ9O3ZhciBhY3RpdmVYRG9jdW1lbnQ7dmFyIE51bGxQcm90b09iamVjdD1mdW5jdGlvbigpe3RyeXthY3RpdmVYRG9jdW1lbnQ9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goZXJyb3Ipe31OdWxsUHJvdG9PYmplY3Q9dHlwZW9mIGRvY3VtZW50IT0idW5kZWZpbmVkIj9kb2N1bWVudC5kb21haW4mJmFjdGl2ZVhEb2N1bWVudD9OdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGFjdGl2ZVhEb2N1bWVudCk6TnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lKCk6TnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpO3ZhciBsZW5ndGg9ZW51bUJ1Z0tleXMubGVuZ3RoO3doaWxlKGxlbmd0aC0tKWRlbGV0ZSBOdWxsUHJvdG9PYmplY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tsZW5ndGhdXTtyZXR1cm4gTnVsbFByb3RvT2JqZWN0KCl9O2hpZGRlbktleXNbSUVfUFJPVE9dPXRydWU7bW9kdWxlLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24gY3JlYXRlKE8sUHJvcGVydGllcyl7dmFyIHJlc3VsdDtpZihPIT09bnVsbCl7RW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdPWFuT2JqZWN0KE8pO3Jlc3VsdD1uZXcgRW1wdHlDb25zdHJ1Y3RvcjtFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV09bnVsbDtyZXN1bHRbSUVfUFJPVE9dPU99ZWxzZSByZXN1bHQ9TnVsbFByb3RvT2JqZWN0KCk7cmV0dXJuIFByb3BlcnRpZXM9PT12b2lkIDA/cmVzdWx0OmRlZmluZVByb3BlcnRpZXNNb2R1bGUuZihyZXN1bHQsUHJvcGVydGllcyl9fSw2OTAyOmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgREVTQ1JJUFRPUlM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NDUzKTt2YXIgVjhfUFJPVE9UWVBFX0RFRklORV9CVUc9X193ZWJwYWNrX3JlcXVpcmVfXyg5MDE5KTt2YXIgZGVmaW5lUHJvcGVydHlNb2R1bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzIyKTt2YXIgYW5PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjQyKTt2YXIgdG9JbmRleGVkT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oODIxMik7dmFyIG9iamVjdEtleXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0NzYxKTtleHBvcnRzLmY9REVTQ1JJUFRPUlMmJiFWOF9QUk9UT1RZUEVfREVGSU5FX0JVRz9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sUHJvcGVydGllcyl7YW5PYmplY3QoTyk7dmFyIHByb3BzPXRvSW5kZXhlZE9iamVjdChQcm9wZXJ0aWVzKTt2YXIga2V5cz1vYmplY3RLZXlzKFByb3BlcnRpZXMpO3ZhciBsZW5ndGg9a2V5cy5sZW5ndGg7dmFyIGluZGV4PTA7dmFyIGtleTt3aGlsZShsZW5ndGg+aW5kZXgpZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLGtleT1rZXlzW2luZGV4KytdLHByb3BzW2tleV0pO3JldHVybiBPfX0sNTMyMjpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIERFU0NSSVBUT1JTPV9fd2VicGFja19yZXF1aXJlX18oNDQ1Myk7dmFyIElFOF9ET01fREVGSU5FPV9fd2VicGFja19yZXF1aXJlX18oMzAzOCk7dmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHPV9fd2VicGFja19yZXF1aXJlX18oOTAxOSk7dmFyIGFuT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDY0Mik7dmFyIHRvUHJvcGVydHlLZXk9X193ZWJwYWNrX3JlcXVpcmVfXygzNjk2KTt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7dmFyICRkZWZpbmVQcm9wZXJ0eT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgRU5VTUVSQUJMRT0iZW51bWVyYWJsZSI7dmFyIENPTkZJR1VSQUJMRT0iY29uZmlndXJhYmxlIjt2YXIgV1JJVEFCTEU9IndyaXRhYmxlIjtleHBvcnRzLmY9REVTQ1JJUFRPUlM/VjhfUFJPVE9UWVBFX0RFRklORV9CVUc/ZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTyxQLEF0dHJpYnV0ZXMpe2FuT2JqZWN0KE8pO1A9dG9Qcm9wZXJ0eUtleShQKTthbk9iamVjdChBdHRyaWJ1dGVzKTtpZih0eXBlb2YgTz09PSJmdW5jdGlvbiImJlA9PT0icHJvdG90eXBlIiYmInZhbHVlImluIEF0dHJpYnV0ZXMmJldSSVRBQkxFIGluIEF0dHJpYnV0ZXMmJiFBdHRyaWJ1dGVzW1dSSVRBQkxFXSl7dmFyIGN1cnJlbnQ9JGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLFApO2lmKGN1cnJlbnQmJmN1cnJlbnRbV1JJVEFCTEVdKXtPW1BdPUF0dHJpYnV0ZXMudmFsdWU7QXR0cmlidXRlcz17Y29uZmlndXJhYmxlOkNPTkZJR1VSQUJMRSBpbiBBdHRyaWJ1dGVzP0F0dHJpYnV0ZXNbQ09ORklHVVJBQkxFXTpjdXJyZW50W0NPTkZJR1VSQUJMRV0sZW51bWVyYWJsZTpFTlVNRVJBQkxFIGluIEF0dHJpYnV0ZXM/QXR0cmlidXRlc1tFTlVNRVJBQkxFXTpjdXJyZW50W0VOVU1FUkFCTEVdLHdyaXRhYmxlOmZhbHNlfX19cmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLFAsQXR0cmlidXRlcyl9OiRkZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLFAsQXR0cmlidXRlcyl7YW5PYmplY3QoTyk7UD10b1Byb3BlcnR5S2V5KFApO2FuT2JqZWN0KEF0dHJpYnV0ZXMpO2lmKElFOF9ET01fREVGSU5FKXRyeXtyZXR1cm4gJGRlZmluZVByb3BlcnR5KE8sUCxBdHRyaWJ1dGVzKX1jYXRjaChlcnJvcil7fWlmKCJnZXQiaW4gQXR0cmlidXRlc3x8InNldCJpbiBBdHRyaWJ1dGVzKXRocm93IG5ldyAkVHlwZUVycm9yKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO2lmKCJ2YWx1ZSJpbiBBdHRyaWJ1dGVzKU9bUF09QXR0cmlidXRlcy52YWx1ZTtyZXR1cm4gT319LDE3NjpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIERFU0NSSVBUT1JTPV9fd2VicGFja19yZXF1aXJlX18oNDQ1Myk7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTt2YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1NjA4KTt2YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yPV9fd2VicGFja19yZXF1aXJlX18oNzEzMSk7dmFyIHRvSW5kZXhlZE9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDgyMTIpO3ZhciB0b1Byb3BlcnR5S2V5PV9fd2VicGFja19yZXF1aXJlX18oMzY5Nik7dmFyIGhhc093bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Nik7dmFyIElFOF9ET01fREVGSU5FPV9fd2VicGFja19yZXF1aXJlX18oMzAzOCk7dmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtleHBvcnRzLmY9REVTQ1JJUFRPUlM/JGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTyxQKXtPPXRvSW5kZXhlZE9iamVjdChPKTtQPXRvUHJvcGVydHlLZXkoUCk7aWYoSUU4X0RPTV9ERUZJTkUpdHJ5e3JldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sUCl9Y2F0Y2goZXJyb3Ipe31pZihoYXNPd24oTyxQKSlyZXR1cm4gY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKCFjYWxsKHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlLmYsTyxQKSxPW1BdKX19LDIxMzpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLGV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGludGVybmFsT2JqZWN0S2V5cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU0NTEpO3ZhciBlbnVtQnVnS2V5cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxOCk7dmFyIGhpZGRlbktleXM9ZW51bUJ1Z0tleXMuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtleHBvcnRzLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTyl7cmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLGhpZGRlbktleXMpfX0sODU0ODpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLGV4cG9ydHMpe2V4cG9ydHMuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw2OTMwOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgaGFzT3duPV9fd2VicGFja19yZXF1aXJlX18oNTg2KTt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciB0b09iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzNjQpO3ZhciBzaGFyZWRLZXk9X193ZWJwYWNrX3JlcXVpcmVfXygzOTg0KTt2YXIgQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSPV9fd2VicGFja19yZXF1aXJlX18oODY1Nik7dmFyIElFX1BST1RPPXNoYXJlZEtleSgiSUVfUFJPVE8iKTt2YXIgJE9iamVjdD1PYmplY3Q7dmFyIE9iamVjdFByb3RvdHlwZT0kT2JqZWN0LnByb3RvdHlwZTttb2R1bGUuZXhwb3J0cz1DT1JSRUNUX1BST1RPVFlQRV9HRVRURVI/JE9iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihPKXt2YXIgb2JqZWN0PXRvT2JqZWN0KE8pO2lmKGhhc093bihvYmplY3QsSUVfUFJPVE8pKXJldHVybiBvYmplY3RbSUVfUFJPVE9dO3ZhciBjb25zdHJ1Y3Rvcj1vYmplY3QuY29uc3RydWN0b3I7aWYoaXNDYWxsYWJsZShjb25zdHJ1Y3RvcikmJm9iamVjdCBpbnN0YW5jZW9mIGNvbnN0cnVjdG9yKXtyZXR1cm4gY29uc3RydWN0b3IucHJvdG90eXBlfXJldHVybiBvYmplY3QgaW5zdGFuY2VvZiAkT2JqZWN0P09iamVjdFByb3RvdHlwZTpudWxsfX0sNTgwMjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTttb2R1bGUuZXhwb3J0cz11bmN1cnJ5VGhpcyh7fS5pc1Byb3RvdHlwZU9mKX0sNTQ1MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgaGFzT3duPV9fd2VicGFja19yZXF1aXJlX18oNTg2KTt2YXIgdG9JbmRleGVkT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oODIxMik7dmFyIGluZGV4T2Y9X193ZWJwYWNrX3JlcXVpcmVfXygyNzc4KS5pbmRleE9mO3ZhciBoaWRkZW5LZXlzPV9fd2VicGFja19yZXF1aXJlX18oMjYyMCk7dmFyIHB1c2g9dW5jdXJyeVRoaXMoW10ucHVzaCk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24ob2JqZWN0LG5hbWVzKXt2YXIgTz10b0luZGV4ZWRPYmplY3Qob2JqZWN0KTt2YXIgaT0wO3ZhciByZXN1bHQ9W107dmFyIGtleTtmb3Ioa2V5IGluIE8pIWhhc093bihoaWRkZW5LZXlzLGtleSkmJmhhc093bihPLGtleSkmJnB1c2gocmVzdWx0LGtleSk7d2hpbGUobmFtZXMubGVuZ3RoPmkpaWYoaGFzT3duKE8sa2V5PW5hbWVzW2krK10pKXt+aW5kZXhPZihyZXN1bHQsa2V5KXx8cHVzaChyZXN1bHQsa2V5KX1yZXR1cm4gcmVzdWx0fX0sNDc2MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGludGVybmFsT2JqZWN0S2V5cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU0NTEpO3ZhciBlbnVtQnVnS2V5cz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQxOCk7bW9kdWxlLmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uIGtleXMoTyl7cmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLGVudW1CdWdLZXlzKX19LDU2MDg6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxleHBvcnRzKXt2YXIgJHByb3BlcnR5SXNFbnVtZXJhYmxlPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO3ZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgTkFTSE9STl9CVUc9Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJiYhJHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoezE6Mn0sMSk7ZXhwb3J0cy5mPU5BU0hPUk5fQlVHP2Z1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKFYpe3ZhciBkZXNjcmlwdG9yPWdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLFYpO3JldHVybiEhZGVzY3JpcHRvciYmZGVzY3JpcHRvci5lbnVtZXJhYmxlfTokcHJvcGVydHlJc0VudW1lcmFibGV9LDQxODI6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB1bmN1cnJ5VGhpc0FjY2Vzc29yPV9fd2VicGFja19yZXF1aXJlX18oMzI1Nyk7dmFyIGlzT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oMjEzNSk7dmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGU9X193ZWJwYWNrX3JlcXVpcmVfXyg4NzgxKTt2YXIgYVBvc3NpYmxlUHJvdG90eXBlPV9fd2VicGFja19yZXF1aXJlX18oNjI4OSk7bW9kdWxlLmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9PyhmdW5jdGlvbigpe3ZhciBDT1JSRUNUX1NFVFRFUj1mYWxzZTt2YXIgdGVzdD17fTt2YXIgc2V0dGVyO3RyeXtzZXR0ZXI9dW5jdXJyeVRoaXNBY2Nlc3NvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iLCJzZXQiKTtzZXR0ZXIodGVzdCxbXSk7Q09SUkVDVF9TRVRURVI9dGVzdCBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGVycm9yKXt9cmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKE8scHJvdG8pe3JlcXVpcmVPYmplY3RDb2VyY2libGUoTyk7YVBvc3NpYmxlUHJvdG90eXBlKHByb3RvKTtpZighaXNPYmplY3QoTykpcmV0dXJuIE87aWYoQ09SUkVDVF9TRVRURVIpc2V0dGVyKE8scHJvdG8pO2Vsc2UgTy5fX3Byb3RvX189cHJvdG87cmV0dXJuIE99fSkoKTp2b2lkIDApfSw4NDA3OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgY2FsbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4ODApO3ZhciBpc0NhbGxhYmxlPV9fd2VicGFja19yZXF1aXJlX18oNTI1Mik7dmFyIGlzT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oMjEzNSk7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGlucHV0LHByZWYpe3ZhciBmbix2YWw7aWYocHJlZj09PSJzdHJpbmciJiZpc0NhbGxhYmxlKGZuPWlucHV0LnRvU3RyaW5nKSYmIWlzT2JqZWN0KHZhbD1jYWxsKGZuLGlucHV0KSkpcmV0dXJuIHZhbDtpZihpc0NhbGxhYmxlKGZuPWlucHV0LnZhbHVlT2YpJiYhaXNPYmplY3QodmFsPWNhbGwoZm4saW5wdXQpKSlyZXR1cm4gdmFsO2lmKHByZWYhPT0ic3RyaW5nIiYmaXNDYWxsYWJsZShmbj1pbnB1dC50b1N0cmluZykmJiFpc09iamVjdCh2YWw9Y2FsbChmbixpbnB1dCkpKXJldHVybiB2YWw7dGhyb3cgbmV3ICRUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sNzg4MDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdldEJ1aWx0SW49X193ZWJwYWNrX3JlcXVpcmVfXyg4NTQwKTt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oMjEzKTt2YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlPV9fd2VicGFja19yZXF1aXJlX18oODU0OCk7dmFyIGFuT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDY0Mik7dmFyIGNvbmNhdD11bmN1cnJ5VGhpcyhbXS5jb25jYXQpO21vZHVsZS5leHBvcnRzPWdldEJ1aWx0SW4oIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uIG93bktleXMoaXQpe3ZhciBrZXlzPWdldE93blByb3BlcnR5TmFtZXNNb2R1bGUuZihhbk9iamVjdChpdCkpO3ZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHM9Z2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlLmY7cmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scz9jb25jYXQoa2V5cyxnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpKTprZXlzfX0sNTA4NzpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGRlZmluZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oNTMyMikuZjttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihUYXJnZXQsU291cmNlLGtleSl7a2V5IGluIFRhcmdldHx8ZGVmaW5lUHJvcGVydHkoVGFyZ2V0LGtleSx7Y29uZmlndXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNvdXJjZVtrZXldfSxzZXQ6ZnVuY3Rpb24oaXQpe1NvdXJjZVtrZXldPWl0fX0pfX0sODc4MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGlzTnVsbE9yVW5kZWZpbmVkPV9fd2VicGFja19yZXF1aXJlX18oMjk1MCk7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGl0KXtpZihpc051bGxPclVuZGVmaW5lZChpdCkpdGhyb3cgbmV3ICRUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIraXQpO3JldHVybiBpdH19LDM5ODQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBzaGFyZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjI2KTt2YXIgdWlkPV9fd2VicGFja19yZXF1aXJlX18oMjUpO3ZhciBrZXlzPXNoYXJlZCgia2V5cyIpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGtleSl7cmV0dXJuIGtleXNba2V5XXx8KGtleXNba2V5XT11aWQoa2V5KSl9fSwxMjE0OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgSVNfUFVSRT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzOTApO3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDkwNzgpO3ZhciBTSEFSRUQ9Il9fY29yZS1qc19zaGFyZWRfXyI7dmFyIHN0b3JlPW1vZHVsZS5leHBvcnRzPWdsb2JhbFRoaXMxW1NIQVJFRF18fGRlZmluZUdsb2JhbFByb3BlcnR5KFNIQVJFRCx7fSk7KHN0b3JlLnZlcnNpb25zfHwoc3RvcmUudmVyc2lvbnM9W10pKS5wdXNoKHt2ZXJzaW9uOiIzLjQ3LjAiLG1vZGU6SVNfUFVSRT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceEE5IDIwMTQtMjAyNSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSwgMjAyNSBDb3JlSlMgQ29tcGFueSAoY29yZS1qcy5pbykiLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuNDcuMC9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pfSw2MjI2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgc3RvcmU9X193ZWJwYWNrX3JlcXVpcmVfXygxMjE0KTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihrZXksdmFsdWUpe3JldHVybiBzdG9yZVtrZXldfHwoc3RvcmVba2V5XT12YWx1ZXx8e30pfX0sNjk1NTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIGZhaWxzPV9fd2VicGFja19yZXF1aXJlX18oMTcwKTt2YXIgVjg9X193ZWJwYWNrX3JlcXVpcmVfXyg5NTIpO3ZhciBFTlZJUk9OTUVOVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc5NjYpO3ZhciBzdHJ1Y3R1cmVkQ2xvbmU9Z2xvYmFsVGhpczEuc3RydWN0dXJlZENsb25lO21vZHVsZS5leHBvcnRzPSEhc3RydWN0dXJlZENsb25lJiYhZmFpbHMoZnVuY3Rpb24oKXtpZihFTlZJUk9OTUVOVD09PSJERU5PIiYmVjg+OTJ8fEVOVklST05NRU5UPT09Ik5PREUiJiZWOD45NHx8RU5WSVJPTk1FTlQ9PT0iQlJPV1NFUiImJlY4Pjk3KXJldHVybiBmYWxzZTt2YXIgYnVmZmVyPW5ldyBBcnJheUJ1ZmZlcig4KTt2YXIgY2xvbmU9c3RydWN0dXJlZENsb25lKGJ1ZmZlcix7dHJhbnNmZXI6W2J1ZmZlcl19KTtyZXR1cm4gYnVmZmVyLmJ5dGVMZW5ndGghPT0wfHxjbG9uZS5ieXRlTGVuZ3RoIT09OH0pfSw0OTM2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgVjhfVkVSU0lPTj1fX3dlYnBhY2tfcmVxdWlyZV9fKDk1Mik7dmFyIGZhaWxzPV9fd2VicGFja19yZXF1aXJlX18oMTcwKTt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTt2YXIgJFN0cmluZz1nbG9iYWxUaGlzMS5TdHJpbmc7bW9kdWxlLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhZmFpbHMoZnVuY3Rpb24oKXt2YXIgc3ltYm9sPVN5bWJvbCgic3ltYm9sIGRldGVjdGlvbiIpO3JldHVybiEkU3RyaW5nKHN5bWJvbCl8fCEoT2JqZWN0KHN5bWJvbClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmVjhfVkVSU0lPTiYmVjhfVkVSU0lPTjw0MX0pfSw0MDI3OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdG9JbnRlZ2VyT3JJbmZpbml0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NDgpO3ZhciBtYXg9TWF0aC5tYXg7dmFyIG1pbj1NYXRoLm1pbjttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihpbmRleCxsZW5ndGgpe3ZhciBpbnRlZ2VyPXRvSW50ZWdlck9ySW5maW5pdHkoaW5kZXgpO3JldHVybiBpbnRlZ2VyPDA/bWF4KGludGVnZXIrbGVuZ3RoLDApOm1pbihpbnRlZ2VyLGxlbmd0aCl9fSw4NDYxOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdG9QcmltaXRpdmU9X193ZWJwYWNrX3JlcXVpcmVfXygxMTk0KTt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe3ZhciBwcmltPXRvUHJpbWl0aXZlKGFyZ3VtZW50LCJudW1iZXIiKTtpZih0eXBlb2YgcHJpbT09Im51bWJlciIpdGhyb3cgbmV3ICRUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgbnVtYmVyIHRvIGJpZ2ludCIpO3JldHVybiBCaWdJbnQocHJpbSl9fSw1ODAzOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdG9JbnRlZ2VyT3JJbmZpbml0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NDgpO3ZhciB0b0xlbmd0aD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwMyk7dmFyICRSYW5nZUVycm9yPVJhbmdlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaXQpe2lmKGl0PT09dm9pZCAwKXJldHVybiAwO3ZhciBudW1iZXI9dG9JbnRlZ2VyT3JJbmZpbml0eShpdCk7dmFyIGxlbmd0aD10b0xlbmd0aChudW1iZXIpO2lmKG51bWJlciE9PWxlbmd0aCl0aHJvdyBuZXcgJFJhbmdlRXJyb3IoIldyb25nIGxlbmd0aCBvciBpbmRleCIpO3JldHVybiBsZW5ndGh9fSw4MjEyOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgSW5kZXhlZE9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI4NDApO3ZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlPV9fd2VicGFja19yZXF1aXJlX18oODc4MSk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaXQpe3JldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKX19LDQ4NDg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB0cnVuYz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Mik7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe3ZhciBudW1iZXI9K2FyZ3VtZW50O3JldHVybiBudW1iZXIhPT1udW1iZXJ8fG51bWJlcj09PTA/MDp0cnVuYyhudW1iZXIpfX0sNDAzOmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdG9JbnRlZ2VyT3JJbmZpbml0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NDgpO3ZhciBtaW49TWF0aC5taW47bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oYXJndW1lbnQpe3ZhciBsZW49dG9JbnRlZ2VyT3JJbmZpbml0eShhcmd1bWVudCk7cmV0dXJuIGxlbj4wP21pbihsZW4sOTAwNzE5OTI1NDc0MDk5MSk6MH19LDUzNjQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlPV9fd2VicGFja19yZXF1aXJlX18oODc4MSk7dmFyICRPYmplY3Q9T2JqZWN0O21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGFyZ3VtZW50KXtyZXR1cm4gJE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSl9fSwzMDQ4OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdG9Qb3NpdGl2ZUludGVnZXI9X193ZWJwYWNrX3JlcXVpcmVfXygyMDAzKTt2YXIgJFJhbmdlRXJyb3I9UmFuZ2VFcnJvcjttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihpdCxCWVRFUyl7dmFyIG9mZnNldD10b1Bvc2l0aXZlSW50ZWdlcihpdCk7aWYob2Zmc2V0JUJZVEVTKXRocm93IG5ldyAkUmFuZ2VFcnJvcigiV3Jvbmcgb2Zmc2V0Iik7cmV0dXJuIG9mZnNldH19LDIwMDM6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB0b0ludGVnZXJPckluZmluaXR5PV9fd2VicGFja19yZXF1aXJlX18oNDg0OCk7dmFyICRSYW5nZUVycm9yPVJhbmdlRXJyb3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaXQpe3ZhciByZXN1bHQ9dG9JbnRlZ2VyT3JJbmZpbml0eShpdCk7aWYocmVzdWx0PDApdGhyb3cgbmV3ICRSYW5nZUVycm9yKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gcmVzdWx0fX0sMTE5NDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTt2YXIgaXNPYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMTM1KTt2YXIgaXNTeW1ib2w9X193ZWJwYWNrX3JlcXVpcmVfXygzMjgpO3ZhciBnZXRNZXRob2Q9X193ZWJwYWNrX3JlcXVpcmVfXygyMjQ5KTt2YXIgb3JkaW5hcnlUb1ByaW1pdGl2ZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0MDcpO3ZhciB3ZWxsS25vd25TeW1ib2w9X193ZWJwYWNrX3JlcXVpcmVfXygyNjc0KTt2YXIgJFR5cGVFcnJvcj1UeXBlRXJyb3I7dmFyIFRPX1BSSU1JVElWRT13ZWxsS25vd25TeW1ib2woInRvUHJpbWl0aXZlIik7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaW5wdXQscHJlZil7aWYoIWlzT2JqZWN0KGlucHV0KXx8aXNTeW1ib2woaW5wdXQpKXJldHVybiBpbnB1dDt2YXIgZXhvdGljVG9QcmltPWdldE1ldGhvZChpbnB1dCxUT19QUklNSVRJVkUpO3ZhciByZXN1bHQ7aWYoZXhvdGljVG9QcmltKXtpZihwcmVmPT09dm9pZCAwKXByZWY9ImRlZmF1bHQiO3Jlc3VsdD1jYWxsKGV4b3RpY1RvUHJpbSxpbnB1dCxwcmVmKTtpZighaXNPYmplY3QocmVzdWx0KXx8aXNTeW1ib2wocmVzdWx0KSlyZXR1cm4gcmVzdWx0O3Rocm93IG5ldyAkVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1pZihwcmVmPT09dm9pZCAwKXByZWY9Im51bWJlciI7cmV0dXJuIG9yZGluYXJ5VG9QcmltaXRpdmUoaW5wdXQscHJlZil9fSwzNjk2OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdG9QcmltaXRpdmU9X193ZWJwYWNrX3JlcXVpcmVfXygxMTk0KTt2YXIgaXNTeW1ib2w9X193ZWJwYWNrX3JlcXVpcmVfXygzMjgpO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGFyZ3VtZW50KXt2YXIga2V5PXRvUHJpbWl0aXZlKGFyZ3VtZW50LCJzdHJpbmciKTtyZXR1cm4gaXNTeW1ib2woa2V5KT9rZXk6a2V5KyIifX0sNzcwNTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIHdlbGxLbm93blN5bWJvbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDI2NzQpO3ZhciBUT19TVFJJTkdfVEFHPXdlbGxLbm93blN5bWJvbCgidG9TdHJpbmdUYWciKTt2YXIgdGVzdD17fTt0ZXN0W1RPX1NUUklOR19UQUddPSJ6Ijttb2R1bGUuZXhwb3J0cz1TdHJpbmcodGVzdCk9PT0iW29iamVjdCB6XSJ9LDY5Nzg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBjbGFzc29mPV9fd2VicGFja19yZXF1aXJlX18oOTE0Mik7dmFyICRTdHJpbmc9U3RyaW5nO21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGFyZ3VtZW50KXtpZihjbGFzc29mKGFyZ3VtZW50KT09PSJTeW1ib2wiKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuICRTdHJpbmcoYXJndW1lbnQpfX0sOTg3MDpmdW5jdGlvbihtb2R1bGUpe3ZhciAkU3RyaW5nPVN0cmluZzttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihhcmd1bWVudCl7dHJ5e3JldHVybiAkU3RyaW5nKGFyZ3VtZW50KX1jYXRjaChlcnJvcil7cmV0dXJuIk9iamVjdCJ9fX0sNjU4MTpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0NjMpO3ZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I9X193ZWJwYWNrX3JlcXVpcmVfXygxNDA3KS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaW5zdGFuY2UsbGlzdCl7cmV0dXJuIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdChnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IoaW5zdGFuY2UpLGxpc3QpfX0sMjU6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciB1bmN1cnJ5VGhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4OSk7dmFyIGlkPTA7dmFyIHBvc3RmaXg9TWF0aC5yYW5kb20oKTt2YXIgdG9TdHJpbmc9dW5jdXJyeVRoaXMoMS4xLnRvU3RyaW5nKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihrZXkpe3JldHVybiJTeW1ib2woIisoa2V5PT09dm9pZCAwPyIiOmtleSkrIilfIit0b1N0cmluZygrK2lkK3Bvc3RmaXgsMzYpfX0sMzY5MDpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgYW5PYmplY3RPclVuZGVmaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NzkpO3ZhciBhU3RyaW5nPV9fd2VicGFja19yZXF1aXJlX18oNTk0OCk7dmFyIGhhc093bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Nik7dmFyIGJhc2U2NE1hcD1fX3dlYnBhY2tfcmVxdWlyZV9fKDIxODcpO3ZhciBnZXRBbHBoYWJldE9wdGlvbj1fX3dlYnBhY2tfcmVxdWlyZV9fKDMwMjEpO3ZhciBub3REZXRhY2hlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMDApO3ZhciBiYXNlNjRBbHBoYWJldD1iYXNlNjRNYXAuYzJpO3ZhciBiYXNlNjRVcmxBbHBoYWJldD1iYXNlNjRNYXAuYzJpVXJsO3ZhciBTeW50YXhFcnJvcj1nbG9iYWxUaGlzMS5TeW50YXhFcnJvcjt2YXIgVHlwZUVycm9yMT1nbG9iYWxUaGlzMS5UeXBlRXJyb3I7dmFyIGF0PXVuY3VycnlUaGlzKCIiLmNoYXJBdCk7dmFyIHNraXBBc2NpaVdoaXRlc3BhY2U9ZnVuY3Rpb24oc3RyaW5nLGluZGV4KXt2YXIgbGVuZ3RoPXN0cmluZy5sZW5ndGg7Zm9yKDtpbmRleDxsZW5ndGg7aW5kZXgrKyl7dmFyIGNocj1hdChzdHJpbmcsaW5kZXgpO2lmKGNociE9PSIgIiYmY2hyIT09IgkiJiZjaHIhPT0iXG4iJiZjaHIhPT0iXGYiJiZjaHIhPT0iXHIiKWJyZWFrfXJldHVybiBpbmRleH07dmFyIGRlY29kZUJhc2U2NENodW5rPWZ1bmN0aW9uKGNodW5rLGFscGhhYmV0LHRocm93T25FeHRyYUJpdHMpe3ZhciBjaHVua0xlbmd0aD1jaHVuay5sZW5ndGg7aWYoY2h1bmtMZW5ndGg8NCl7Y2h1bmsrPWNodW5rTGVuZ3RoPT09Mj8iQUEiOiJBIn12YXIgdHJpcGxldD0oYWxwaGFiZXRbYXQoY2h1bmssMCldPDwxOCkrKGFscGhhYmV0W2F0KGNodW5rLDEpXTw8MTIpKyhhbHBoYWJldFthdChjaHVuaywyKV08PDYpK2FscGhhYmV0W2F0KGNodW5rLDMpXTt2YXIgY2h1bmtCeXRlcz1bdHJpcGxldD4+MTYmMjU1LHRyaXBsZXQ+PjgmMjU1LHRyaXBsZXQmMjU1XTtpZihjaHVua0xlbmd0aD09PTIpe2lmKHRocm93T25FeHRyYUJpdHMmJmNodW5rQnl0ZXNbMV0hPT0wKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoIkV4dHJhIGJpdHMiKX1yZXR1cm5bY2h1bmtCeXRlc1swXV19aWYoY2h1bmtMZW5ndGg9PT0zKXtpZih0aHJvd09uRXh0cmFCaXRzJiZjaHVua0J5dGVzWzJdIT09MCl7dGhyb3cgbmV3IFN5bnRheEVycm9yKCJFeHRyYSBiaXRzIil9cmV0dXJuW2NodW5rQnl0ZXNbMF0sY2h1bmtCeXRlc1sxXV19cmV0dXJuIGNodW5rQnl0ZXN9O3ZhciB3cml0ZUJ5dGVzPWZ1bmN0aW9uKGJ5dGVzLGVsZW1lbnRzLHdyaXR0ZW4pe3ZhciBlbGVtZW50c0xlbmd0aD1lbGVtZW50cy5sZW5ndGg7Zm9yKHZhciBpbmRleD0wO2luZGV4PGVsZW1lbnRzTGVuZ3RoO2luZGV4Kyspe2J5dGVzW3dyaXR0ZW4raW5kZXhdPWVsZW1lbnRzW2luZGV4XX1yZXR1cm4gd3JpdHRlbitlbGVtZW50c0xlbmd0aH07bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oc3RyaW5nLG9wdGlvbnMsaW50byxtYXhMZW5ndGgpe2FTdHJpbmcoc3RyaW5nKTthbk9iamVjdE9yVW5kZWZpbmVkKG9wdGlvbnMpO3ZhciBhbHBoYWJldD1nZXRBbHBoYWJldE9wdGlvbihvcHRpb25zKT09PSJiYXNlNjQiP2Jhc2U2NEFscGhhYmV0OmJhc2U2NFVybEFscGhhYmV0O3ZhciBsYXN0Q2h1bmtIYW5kbGluZz1vcHRpb25zP29wdGlvbnMubGFzdENodW5rSGFuZGxpbmc6dm9pZCAwO2lmKGxhc3RDaHVua0hhbmRsaW5nPT09dm9pZCAwKWxhc3RDaHVua0hhbmRsaW5nPSJsb29zZSI7aWYobGFzdENodW5rSGFuZGxpbmchPT0ibG9vc2UiJiZsYXN0Q2h1bmtIYW5kbGluZyE9PSJzdHJpY3QiJiZsYXN0Q2h1bmtIYW5kbGluZyE9PSJzdG9wLWJlZm9yZS1wYXJ0aWFsIil7dGhyb3cgbmV3IFR5cGVFcnJvcjEoIkluY29ycmVjdCBgbGFzdENodW5rSGFuZGxpbmdgIG9wdGlvbiIpfWlmKGludG8pbm90RGV0YWNoZWQoaW50by5idWZmZXIpO3ZhciBzdHJpbmdMZW5ndGg9c3RyaW5nLmxlbmd0aDt2YXIgYnl0ZXM9aW50b3x8W107dmFyIHdyaXR0ZW49MDt2YXIgcmVhZD0wO3ZhciBjaHVuaz0iIjt2YXIgaW5kZXg9MDtpZihtYXhMZW5ndGgpd2hpbGUodHJ1ZSl7aW5kZXg9c2tpcEFzY2lpV2hpdGVzcGFjZShzdHJpbmcsaW5kZXgpO2lmKGluZGV4PT09c3RyaW5nTGVuZ3RoKXtpZihjaHVuay5sZW5ndGg+MCl7aWYobGFzdENodW5rSGFuZGxpbmc9PT0ic3RvcC1iZWZvcmUtcGFydGlhbCIpe2JyZWFrfWlmKGxhc3RDaHVua0hhbmRsaW5nPT09Imxvb3NlIil7aWYoY2h1bmsubGVuZ3RoPT09MSl7dGhyb3cgbmV3IFN5bnRheEVycm9yKCJNYWxmb3JtZWQgcGFkZGluZzogZXhhY3RseSBvbmUgYWRkaXRpb25hbCBjaGFyYWN0ZXIiKX13cml0dGVuPXdyaXRlQnl0ZXMoYnl0ZXMsZGVjb2RlQmFzZTY0Q2h1bmsoY2h1bmssYWxwaGFiZXQsZmFsc2UpLHdyaXR0ZW4pfWVsc2V7dGhyb3cgbmV3IFN5bnRheEVycm9yKCJNaXNzaW5nIHBhZGRpbmciKX19cmVhZD1zdHJpbmdMZW5ndGg7YnJlYWt9dmFyIGNocj1hdChzdHJpbmcsaW5kZXgpOysraW5kZXg7aWYoY2hyPT09Ij0iKXtpZihjaHVuay5sZW5ndGg8Mil7dGhyb3cgbmV3IFN5bnRheEVycm9yKCJQYWRkaW5nIGlzIHRvbyBlYXJseSIpfWluZGV4PXNraXBBc2NpaVdoaXRlc3BhY2Uoc3RyaW5nLGluZGV4KTtpZihjaHVuay5sZW5ndGg9PT0yKXtpZihpbmRleD09PXN0cmluZ0xlbmd0aCl7aWYobGFzdENodW5rSGFuZGxpbmc9PT0ic3RvcC1iZWZvcmUtcGFydGlhbCIpe2JyZWFrfXRocm93IG5ldyBTeW50YXhFcnJvcigiTWFsZm9ybWVkIHBhZGRpbmc6IG9ubHkgb25lID0iKX1pZihhdChzdHJpbmcsaW5kZXgpPT09Ij0iKXsrK2luZGV4O2luZGV4PXNraXBBc2NpaVdoaXRlc3BhY2Uoc3RyaW5nLGluZGV4KX19aWYoaW5kZXg8c3RyaW5nTGVuZ3RoKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlVuZXhwZWN0ZWQgY2hhcmFjdGVyIGFmdGVyIHBhZGRpbmciKX13cml0dGVuPXdyaXRlQnl0ZXMoYnl0ZXMsZGVjb2RlQmFzZTY0Q2h1bmsoY2h1bmssYWxwaGFiZXQsbGFzdENodW5rSGFuZGxpbmc9PT0ic3RyaWN0Iiksd3JpdHRlbik7cmVhZD1zdHJpbmdMZW5ndGg7YnJlYWt9aWYoIWhhc093bihhbHBoYWJldCxjaHIpKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlVuZXhwZWN0ZWQgY2hhcmFjdGVyIil9dmFyIHJlbWFpbmluZ0J5dGVzPW1heExlbmd0aC13cml0dGVuO2lmKHJlbWFpbmluZ0J5dGVzPT09MSYmY2h1bmsubGVuZ3RoPT09Mnx8cmVtYWluaW5nQnl0ZXM9PT0yJiZjaHVuay5sZW5ndGg9PT0zKXticmVha31jaHVuays9Y2hyO2lmKGNodW5rLmxlbmd0aD09PTQpe3dyaXR0ZW49d3JpdGVCeXRlcyhieXRlcyxkZWNvZGVCYXNlNjRDaHVuayhjaHVuayxhbHBoYWJldCxmYWxzZSksd3JpdHRlbik7Y2h1bms9IiI7cmVhZD1pbmRleDtpZih3cml0dGVuPT09bWF4TGVuZ3RoKXticmVha319fXJldHVybntieXRlcyxyZWFkLHdyaXR0ZW59fX0sMzc1NjpmdW5jdGlvbihtb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgVWludDhBcnJheTI9Z2xvYmFsVGhpczEuVWludDhBcnJheTt2YXIgU3ludGF4RXJyb3I9Z2xvYmFsVGhpczEuU3ludGF4RXJyb3I7dmFyIHBhcnNlSW50Mj1nbG9iYWxUaGlzMS5wYXJzZUludDt2YXIgbWluPU1hdGgubWluO3ZhciBOT1RfSEVYPS9bXlxkYS1mXS9pO3ZhciBleGVjPXVuY3VycnlUaGlzKE5PVF9IRVguZXhlYyk7dmFyIHN0cmluZ1NsaWNlPXVuY3VycnlUaGlzKCIiLnNsaWNlKTttb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihzdHJpbmcsaW50byl7dmFyIHN0cmluZ0xlbmd0aD1zdHJpbmcubGVuZ3RoO2lmKHN0cmluZ0xlbmd0aCUyIT09MCl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlN0cmluZyBzaG91bGQgYmUgYW4gZXZlbiBudW1iZXIgb2YgY2hhcmFjdGVycyIpO3ZhciBtYXhMZW5ndGg9aW50bz9taW4oaW50by5sZW5ndGgsc3RyaW5nTGVuZ3RoLzIpOnN0cmluZ0xlbmd0aC8yO3ZhciBieXRlcz1pbnRvfHxuZXcgVWludDhBcnJheTIobWF4TGVuZ3RoKTt2YXIgcmVhZD0wO3ZhciB3cml0dGVuPTA7d2hpbGUod3JpdHRlbjxtYXhMZW5ndGgpe3ZhciBoZXhpdHM9c3RyaW5nU2xpY2Uoc3RyaW5nLHJlYWQscmVhZCs9Mik7aWYoZXhlYyhOT1RfSEVYLGhleGl0cykpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJTdHJpbmcgc2hvdWxkIG9ubHkgY29udGFpbiBoZXggY2hhcmFjdGVycyIpO2J5dGVzW3dyaXR0ZW4rK109cGFyc2VJbnQyKGhleGl0cywxNil9cmV0dXJue2J5dGVzLHJlYWR9fX0sMTA1OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgTkFUSVZFX1NZTUJPTD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ5MzYpO21vZHVsZS5leHBvcnRzPU5BVElWRV9TWU1CT0wmJiFTeW1ib2wuc2hhbSYmdHlwZW9mIFN5bWJvbC5pdGVyYXRvcj09InN5bWJvbCJ9LDkwMTk6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBmYWlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MCk7bW9kdWxlLmV4cG9ydHM9REVTQ1JJUFRPUlMmJmZhaWxzKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe30sInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOmZhbHNlfSkucHJvdG90eXBlIT09NDJ9KX0sNzY5OmZ1bmN0aW9uKG1vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTt2YXIgaXNDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUyNTIpO3ZhciBXZWFrTWFwMj1nbG9iYWxUaGlzMS5XZWFrTWFwO21vZHVsZS5leHBvcnRzPWlzQ2FsbGFibGUoV2Vha01hcDIpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKFdlYWtNYXAyKSl9LDI2NzQ6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBzaGFyZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MjI2KTt2YXIgaGFzT3duPV9fd2VicGFja19yZXF1aXJlX18oNTg2KTt2YXIgdWlkPV9fd2VicGFja19yZXF1aXJlX18oMjUpO3ZhciBOQVRJVkVfU1lNQk9MPV9fd2VicGFja19yZXF1aXJlX18oNDkzNik7dmFyIFVTRV9TWU1CT0xfQVNfVUlEPV9fd2VicGFja19yZXF1aXJlX18oMTA1KTt2YXIgU3ltYm9sMT1nbG9iYWxUaGlzMS5TeW1ib2w7dmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZT1zaGFyZWQoIndrcyIpO3ZhciBjcmVhdGVXZWxsS25vd25TeW1ib2w9VVNFX1NZTUJPTF9BU19VSUQ/U3ltYm9sMVsiZm9yIl18fFN5bWJvbDE6U3ltYm9sMSYmU3ltYm9sMS53aXRob3V0U2V0dGVyfHx1aWQ7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24obmFtZSl7aWYoIWhhc093bihXZWxsS25vd25TeW1ib2xzU3RvcmUsbmFtZSkpe1dlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXT1OQVRJVkVfU1lNQk9MJiZoYXNPd24oU3ltYm9sMSxuYW1lKT9TeW1ib2wxW25hbWVdOmNyZWF0ZVdlbGxLbm93blN5bWJvbCgiU3ltYm9sLiIrbmFtZSl9cmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXX19LDU3Njg6ZnVuY3Rpb24obW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnZXRCdWlsdEluPV9fd2VicGFja19yZXF1aXJlX18oODU0MCk7dmFyIGhhc093bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Nik7dmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDMzOTIpO3ZhciBpc1Byb3RvdHlwZU9mPV9fd2VicGFja19yZXF1aXJlX18oNTgwMik7dmFyIHNldFByb3RvdHlwZU9mPV9fd2VicGFja19yZXF1aXJlX18oNDE4Mik7dmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXM9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzIxKTt2YXIgcHJveHlBY2Nlc3Nvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwODcpO3ZhciBpbmhlcml0SWZSZXF1aXJlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2NTQpO3ZhciBub3JtYWxpemVTdHJpbmdBcmd1bWVudD1fX3dlYnBhY2tfcmVxdWlyZV9fKDYwMTgpO3ZhciBpbnN0YWxsRXJyb3JDYXVzZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2NDEpO3ZhciBpbnN0YWxsRXJyb3JTdGFjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDUwNzApO3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBJU19QVVJFPV9fd2VicGFja19yZXF1aXJlX18oNTM5MCk7bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oRlVMTF9OQU1FLHdyYXBwZXIsRk9SQ0VELElTX0FHR1JFR0FURV9FUlJPUil7dmFyIFNUQUNLX1RSQUNFX0xJTUlUPSJzdGFja1RyYWNlTGltaXQiO3ZhciBPUFRJT05TX1BPU0lUSU9OPUlTX0FHR1JFR0FURV9FUlJPUj8yOjE7dmFyIHBhdGg9RlVMTF9OQU1FLnNwbGl0KCIuIik7dmFyIEVSUk9SX05BTUU9cGF0aFtwYXRoLmxlbmd0aC0xXTt2YXIgT3JpZ2luYWxFcnJvcj1nZXRCdWlsdEluLmFwcGx5KG51bGwscGF0aCk7aWYoIU9yaWdpbmFsRXJyb3IpcmV0dXJuO3ZhciBPcmlnaW5hbEVycm9yUHJvdG90eXBlPU9yaWdpbmFsRXJyb3IucHJvdG90eXBlO2lmKCFJU19QVVJFJiZoYXNPd24oT3JpZ2luYWxFcnJvclByb3RvdHlwZSwiY2F1c2UiKSlkZWxldGUgT3JpZ2luYWxFcnJvclByb3RvdHlwZS5jYXVzZTtpZighRk9SQ0VEKXJldHVybiBPcmlnaW5hbEVycm9yO3ZhciBCYXNlRXJyb3I9Z2V0QnVpbHRJbigiRXJyb3IiKTt2YXIgV3JhcHBlZEVycm9yPXdyYXBwZXIoZnVuY3Rpb24oYSxiKXt2YXIgbWVzc2FnZT1ub3JtYWxpemVTdHJpbmdBcmd1bWVudChJU19BR0dSRUdBVEVfRVJST1I/YjphLHZvaWQgMCk7dmFyIHJlc3VsdD1JU19BR0dSRUdBVEVfRVJST1I/bmV3IE9yaWdpbmFsRXJyb3IoYSk6bmV3IE9yaWdpbmFsRXJyb3I7aWYobWVzc2FnZSE9PXZvaWQgMCljcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocmVzdWx0LCJtZXNzYWdlIixtZXNzYWdlKTtpbnN0YWxsRXJyb3JTdGFjayhyZXN1bHQsV3JhcHBlZEVycm9yLHJlc3VsdC5zdGFjaywyKTtpZih0aGlzJiZpc1Byb3RvdHlwZU9mKE9yaWdpbmFsRXJyb3JQcm90b3R5cGUsdGhpcykpaW5oZXJpdElmUmVxdWlyZWQocmVzdWx0LHRoaXMsV3JhcHBlZEVycm9yKTtpZihhcmd1bWVudHMubGVuZ3RoPk9QVElPTlNfUE9TSVRJT04paW5zdGFsbEVycm9yQ2F1c2UocmVzdWx0LGFyZ3VtZW50c1tPUFRJT05TX1BPU0lUSU9OXSk7cmV0dXJuIHJlc3VsdH0pO1dyYXBwZWRFcnJvci5wcm90b3R5cGU9T3JpZ2luYWxFcnJvclByb3RvdHlwZTtpZihFUlJPUl9OQU1FIT09IkVycm9yIil7aWYoc2V0UHJvdG90eXBlT2Ypc2V0UHJvdG90eXBlT2YoV3JhcHBlZEVycm9yLEJhc2VFcnJvcik7ZWxzZSBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKFdyYXBwZWRFcnJvcixCYXNlRXJyb3Ise25hbWU6dHJ1ZX0pfWVsc2UgaWYoREVTQ1JJUFRPUlMmJlNUQUNLX1RSQUNFX0xJTUlUIGluIE9yaWdpbmFsRXJyb3Ipe3Byb3h5QWNjZXNzb3IoV3JhcHBlZEVycm9yLE9yaWdpbmFsRXJyb3IsU1RBQ0tfVFJBQ0VfTElNSVQpO3Byb3h5QWNjZXNzb3IoV3JhcHBlZEVycm9yLE9yaWdpbmFsRXJyb3IsInByZXBhcmVTdGFja1RyYWNlIil9Y29weUNvbnN0cnVjdG9yUHJvcGVydGllcyhXcmFwcGVkRXJyb3IsT3JpZ2luYWxFcnJvcik7aWYoIUlTX1BVUkUpdHJ5e2lmKE9yaWdpbmFsRXJyb3JQcm90b3R5cGUubmFtZSE9PUVSUk9SX05BTUUpe2NyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShPcmlnaW5hbEVycm9yUHJvdG90eXBlLCJuYW1lIixFUlJPUl9OQU1FKX1PcmlnaW5hbEVycm9yUHJvdG90eXBlLmNvbnN0cnVjdG9yPVdyYXBwZWRFcnJvcn1jYXRjaChlcnJvcil7fXJldHVybiBXcmFwcGVkRXJyb3J9fSw5MDE4OmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIERFU0NSSVBUT1JTPV9fd2VicGFja19yZXF1aXJlX18oNDQ1Myk7dmFyIGRlZmluZUJ1aWx0SW5BY2Nlc3Nvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDYwNjEpO3ZhciBpc0RldGFjaGVkPV9fd2VicGFja19yZXF1aXJlX18oNjg3Nyk7dmFyIEFycmF5QnVmZmVyUHJvdG90eXBlPUFycmF5QnVmZmVyLnByb3RvdHlwZTtpZihERVNDUklQVE9SUyYmISgiZGV0YWNoZWQiaW4gQXJyYXlCdWZmZXJQcm90b3R5cGUpKXtkZWZpbmVCdWlsdEluQWNjZXNzb3IoQXJyYXlCdWZmZXJQcm90b3R5cGUsImRldGFjaGVkIix7Y29uZmlndXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uIGRldGFjaGVkKCl7cmV0dXJuIGlzRGV0YWNoZWQodGhpcyl9fSl9fSw5ODc6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgJD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDkpO3ZhciAkdHJhbnNmZXI9X193ZWJwYWNrX3JlcXVpcmVfXygxMzMzKTtpZigkdHJhbnNmZXIpJCh7dGFyZ2V0OiJBcnJheUJ1ZmZlciIscHJvdG86dHJ1ZX0se3RyYW5zZmVyVG9GaXhlZExlbmd0aDpmdW5jdGlvbiB0cmFuc2ZlclRvRml4ZWRMZW5ndGgoKXtyZXR1cm4gJHRyYW5zZmVyKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLGZhbHNlKX19KX0sMTE4NzpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkPV9fd2VicGFja19yZXF1aXJlX18oNTkwOSk7dmFyICR0cmFuc2Zlcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDEzMzMpO2lmKCR0cmFuc2ZlcikkKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzp0cnVlfSx7dHJhbnNmZXI6ZnVuY3Rpb24gdHJhbnNmZXIoKXtyZXR1cm4gJHRyYW5zZmVyKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwLHRydWUpfX0pfSw3MTpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkPV9fd2VicGFja19yZXF1aXJlX18oNTkwOSk7dmFyIHRvT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNTM2NCk7dmFyIGxlbmd0aE9mQXJyYXlMaWtlPV9fd2VicGFja19yZXF1aXJlX18oODY5KTt2YXIgc2V0QXJyYXlMZW5ndGg9X193ZWJwYWNrX3JlcXVpcmVfXyg4MjgwKTt2YXIgZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyPV9fd2VicGFja19yZXF1aXJlX18oNTQxOCk7dmFyIGZhaWxzPV9fd2VicGFja19yZXF1aXJlX18oMTcwKTt2YXIgSU5DT1JSRUNUX1RPX0xFTkdUSD1mYWlscyhmdW5jdGlvbigpe3JldHVybltdLnB1c2guY2FsbCh7bGVuZ3RoOjQyOTQ5NjcyOTZ9LDEpIT09NDI5NDk2NzI5N30pO3ZhciBwcm9wZXJFcnJvck9uTm9uV3JpdGFibGVMZW5ndGg9ZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTpmYWxzZX0pLnB1c2goKX1jYXRjaChlcnJvcil7cmV0dXJuIGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yfX07dmFyIEZPUkNFRD1JTkNPUlJFQ1RfVE9fTEVOR1RIfHwhcHJvcGVyRXJyb3JPbk5vbldyaXRhYmxlTGVuZ3RoKCk7JCh7dGFyZ2V0OiJBcnJheSIscHJvdG86dHJ1ZSxhcml0eToxLGZvcmNlZDpGT1JDRUR9LHtwdXNoOmZ1bmN0aW9uIHB1c2goaXRlbSl7dmFyIE89dG9PYmplY3QodGhpcyk7dmFyIGxlbj1sZW5ndGhPZkFycmF5TGlrZShPKTt2YXIgYXJnQ291bnQ9YXJndW1lbnRzLmxlbmd0aDtkb2VzTm90RXhjZWVkU2FmZUludGVnZXIobGVuK2FyZ0NvdW50KTtmb3IodmFyIGk9MDtpPGFyZ0NvdW50O2krKyl7T1tsZW5dPWFyZ3VtZW50c1tpXTtsZW4rK31zZXRBcnJheUxlbmd0aChPLGxlbik7cmV0dXJuIGxlbn19KX0sODU4NzpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkPV9fd2VicGFja19yZXF1aXJlX18oNTkwOSk7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIGFwcGx5PV9fd2VicGFja19yZXF1aXJlX18oODA3OCk7dmFyIHdyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlPV9fd2VicGFja19yZXF1aXJlX18oNTc2OCk7dmFyIFdFQl9BU1NFTUJMWT0iV2ViQXNzZW1ibHkiO3ZhciBXZWJBc3NlbWJseT1nbG9iYWxUaGlzMVtXRUJfQVNTRU1CTFldO3ZhciBGT1JDRUQ9bmV3IEVycm9yKCJlIix7Y2F1c2U6N30pLmNhdXNlIT09Nzt2YXIgZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXI9ZnVuY3Rpb24oRVJST1JfTkFNRSx3cmFwcGVyKXt2YXIgTz17fTtPW0VSUk9SX05BTUVdPXdyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlKEVSUk9SX05BTUUsd3JhcHBlcixGT1JDRUQpOyQoe2dsb2JhbDp0cnVlLGNvbnN0cnVjdG9yOnRydWUsYXJpdHk6MSxmb3JjZWQ6Rk9SQ0VEfSxPKX07dmFyIGV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXI9ZnVuY3Rpb24oRVJST1JfTkFNRSx3cmFwcGVyKXtpZihXZWJBc3NlbWJseSYmV2ViQXNzZW1ibHlbRVJST1JfTkFNRV0pe3ZhciBPPXt9O09bRVJST1JfTkFNRV09d3JhcEVycm9yQ29uc3RydWN0b3JXaXRoQ2F1c2UoV0VCX0FTU0VNQkxZKyIuIitFUlJPUl9OQU1FLHdyYXBwZXIsRk9SQ0VEKTskKHt0YXJnZXQ6V0VCX0FTU0VNQkxZLHN0YXQ6dHJ1ZSxjb25zdHJ1Y3Rvcjp0cnVlLGFyaXR5OjEsZm9yY2VkOkZPUkNFRH0sTyl9fTtleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiRXJyb3IiLGZ1bmN0aW9uKGluaXQpe3JldHVybiBmdW5jdGlvbiBFcnJvcjEobWVzc2FnZSl7cmV0dXJuIGFwcGx5KGluaXQsdGhpcyxhcmd1bWVudHMpfX0pO2V4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJFdmFsRXJyb3IiLGZ1bmN0aW9uKGluaXQpe3JldHVybiBmdW5jdGlvbiBFdmFsRXJyb3IobWVzc2FnZSl7cmV0dXJuIGFwcGx5KGluaXQsdGhpcyxhcmd1bWVudHMpfX0pO2V4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJSYW5nZUVycm9yIixmdW5jdGlvbihpbml0KXtyZXR1cm4gZnVuY3Rpb24gUmFuZ2VFcnJvcjEobWVzc2FnZSl7cmV0dXJuIGFwcGx5KGluaXQsdGhpcyxhcmd1bWVudHMpfX0pO2V4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJSZWZlcmVuY2VFcnJvciIsZnVuY3Rpb24oaW5pdCl7cmV0dXJuIGZ1bmN0aW9uIFJlZmVyZW5jZUVycm9yMihtZXNzYWdlKXtyZXR1cm4gYXBwbHkoaW5pdCx0aGlzLGFyZ3VtZW50cyl9fSk7ZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoIlN5bnRheEVycm9yIixmdW5jdGlvbihpbml0KXtyZXR1cm4gZnVuY3Rpb24gU3ludGF4RXJyb3IobWVzc2FnZSl7cmV0dXJuIGFwcGx5KGluaXQsdGhpcyxhcmd1bWVudHMpfX0pO2V4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCJUeXBlRXJyb3IiLGZ1bmN0aW9uKGluaXQpe3JldHVybiBmdW5jdGlvbiBUeXBlRXJyb3IxKG1lc3NhZ2Upe3JldHVybiBhcHBseShpbml0LHRoaXMsYXJndW1lbnRzKX19KTtleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcigiVVJJRXJyb3IiLGZ1bmN0aW9uKGluaXQpe3JldHVybiBmdW5jdGlvbiBVUklFcnJvcihtZXNzYWdlKXtyZXR1cm4gYXBwbHkoaW5pdCx0aGlzLGFyZ3VtZW50cyl9fSk7ZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlcigiQ29tcGlsZUVycm9yIixmdW5jdGlvbihpbml0KXtyZXR1cm4gZnVuY3Rpb24gQ29tcGlsZUVycm9yKG1lc3NhZ2Upe3JldHVybiBhcHBseShpbml0LHRoaXMsYXJndW1lbnRzKX19KTtleHBvcnRXZWJBc3NlbWJseUVycm9yQ2F1c2VXcmFwcGVyKCJMaW5rRXJyb3IiLGZ1bmN0aW9uKGluaXQpe3JldHVybiBmdW5jdGlvbiBMaW5rRXJyb3IobWVzc2FnZSl7cmV0dXJuIGFwcGx5KGluaXQsdGhpcyxhcmd1bWVudHMpfX0pO2V4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIoIlJ1bnRpbWVFcnJvciIsZnVuY3Rpb24oaW5pdCl7cmV0dXJuIGZ1bmN0aW9uIFJ1bnRpbWVFcnJvcihtZXNzYWdlKXtyZXR1cm4gYXBwbHkoaW5pdCx0aGlzLGFyZ3VtZW50cyl9fSl9LDc0NzA6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgJD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDkpO3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBhbkluc3RhbmNlPV9fd2VicGFja19yZXF1aXJlX18oNTg2Mik7dmFyIGFuT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDY0Mik7dmFyIGlzQ2FsbGFibGU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MjUyKTt2YXIgZ2V0UHJvdG90eXBlT2Y9X193ZWJwYWNrX3JlcXVpcmVfXyg2OTMwKTt2YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yPV9fd2VicGFja19yZXF1aXJlX18oNjA2MSk7dmFyIGNyZWF0ZVByb3BlcnR5PV9fd2VicGFja19yZXF1aXJlX18oNjk2OSk7dmFyIGZhaWxzPV9fd2VicGFja19yZXF1aXJlX18oMTcwKTt2YXIgaGFzT3duPV9fd2VicGFja19yZXF1aXJlX18oNTg2KTt2YXIgd2VsbEtub3duU3ltYm9sPV9fd2VicGFja19yZXF1aXJlX18oMjY3NCk7dmFyIEl0ZXJhdG9yUHJvdG90eXBlPV9fd2VicGFja19yZXF1aXJlX18oMjkwNikuSXRlcmF0b3JQcm90b3R5cGU7dmFyIERFU0NSSVBUT1JTPV9fd2VicGFja19yZXF1aXJlX18oNDQ1Myk7dmFyIElTX1BVUkU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzkwKTt2YXIgQ09OU1RSVUNUT1I9ImNvbnN0cnVjdG9yIjt2YXIgSVRFUkFUT1I9Ikl0ZXJhdG9yIjt2YXIgVE9fU1RSSU5HX1RBRz13ZWxsS25vd25TeW1ib2woInRvU3RyaW5nVGFnIik7dmFyICRUeXBlRXJyb3I9VHlwZUVycm9yO3ZhciBOYXRpdmVJdGVyYXRvcj1nbG9iYWxUaGlzMVtJVEVSQVRPUl07dmFyIEZPUkNFRD1JU19QVVJFfHwhaXNDYWxsYWJsZShOYXRpdmVJdGVyYXRvcil8fE5hdGl2ZUl0ZXJhdG9yLnByb3RvdHlwZSE9PUl0ZXJhdG9yUHJvdG90eXBlfHwhZmFpbHMoZnVuY3Rpb24oKXtOYXRpdmVJdGVyYXRvcih7fSl9KTt2YXIgSXRlcmF0b3JDb25zdHJ1Y3Rvcj1mdW5jdGlvbiBJdGVyYXRvcjEoKXthbkluc3RhbmNlKHRoaXMsSXRlcmF0b3JQcm90b3R5cGUpO2lmKGdldFByb3RvdHlwZU9mKHRoaXMpPT09SXRlcmF0b3JQcm90b3R5cGUpdGhyb3cgbmV3ICRUeXBlRXJyb3IoIkFic3RyYWN0IGNsYXNzIEl0ZXJhdG9yIG5vdCBkaXJlY3RseSBjb25zdHJ1Y3RhYmxlIil9O3ZhciBkZWZpbmVJdGVyYXRvclByb3RvdHlwZUFjY2Vzc29yPWZ1bmN0aW9uKGtleSx2YWx1ZSl7aWYoREVTQ1JJUFRPUlMpe2RlZmluZUJ1aWx0SW5BY2Nlc3NvcihJdGVyYXRvclByb3RvdHlwZSxrZXkse2NvbmZpZ3VyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2YWx1ZX0sc2V0OmZ1bmN0aW9uKHJlcGxhY2VtZW50KXthbk9iamVjdCh0aGlzKTtpZih0aGlzPT09SXRlcmF0b3JQcm90b3R5cGUpdGhyb3cgbmV3ICRUeXBlRXJyb3IoIllvdSBjYW4ndCByZWRlZmluZSB0aGlzIHByb3BlcnR5Iik7aWYoaGFzT3duKHRoaXMsa2V5KSl0aGlzW2tleV09cmVwbGFjZW1lbnQ7ZWxzZSBjcmVhdGVQcm9wZXJ0eSh0aGlzLGtleSxyZXBsYWNlbWVudCl9fSl9ZWxzZSBJdGVyYXRvclByb3RvdHlwZVtrZXldPXZhbHVlfTtpZighaGFzT3duKEl0ZXJhdG9yUHJvdG90eXBlLFRPX1NUUklOR19UQUcpKWRlZmluZUl0ZXJhdG9yUHJvdG90eXBlQWNjZXNzb3IoVE9fU1RSSU5HX1RBRyxJVEVSQVRPUik7aWYoRk9SQ0VEfHwhaGFzT3duKEl0ZXJhdG9yUHJvdG90eXBlLENPTlNUUlVDVE9SKXx8SXRlcmF0b3JQcm90b3R5cGVbQ09OU1RSVUNUT1JdPT09T2JqZWN0KXtkZWZpbmVJdGVyYXRvclByb3RvdHlwZUFjY2Vzc29yKENPTlNUUlVDVE9SLEl0ZXJhdG9yQ29uc3RydWN0b3IpfUl0ZXJhdG9yQ29uc3RydWN0b3IucHJvdG90eXBlPUl0ZXJhdG9yUHJvdG90eXBlOyQoe2dsb2JhbDp0cnVlLGNvbnN0cnVjdG9yOnRydWUsZm9yY2VkOkZPUkNFRH0se0l0ZXJhdG9yOkl0ZXJhdG9yQ29uc3RydWN0b3J9KX0sOTc0NjpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkPV9fd2VicGFja19yZXF1aXJlX18oNTkwOSk7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTt2YXIgYUNhbGxhYmxlPV9fd2VicGFja19yZXF1aXJlX18oMzc3KTt2YXIgYW5PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjQyKTt2YXIgZ2V0SXRlcmF0b3JEaXJlY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODEwKTt2YXIgY3JlYXRlSXRlcmF0b3JQcm94eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NTUpO3ZhciBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjc0MCk7dmFyIElTX1BVUkU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzkwKTt2YXIgaXRlcmF0b3JDbG9zZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDk5MTYpO3ZhciBpdGVyYXRvckhlbHBlclRocm93c09uSW52YWxpZEl0ZXJhdG9yPV9fd2VicGFja19yZXF1aXJlX18oODE1NSk7dmFyIGl0ZXJhdG9ySGVscGVyV2l0aG91dENsb3NpbmdPbkVhcmx5RXJyb3I9X193ZWJwYWNrX3JlcXVpcmVfXyg4NTIyKTt2YXIgRklMVEVSX1dJVEhPVVRfVEhST1dJTkdfT05fSU5WQUxJRF9JVEVSQVRPUj0hSVNfUFVSRSYmIWl0ZXJhdG9ySGVscGVyVGhyb3dzT25JbnZhbGlkSXRlcmF0b3IoImZpbHRlciIsZnVuY3Rpb24oKXt9KTt2YXIgZmlsdGVyV2l0aG91dENsb3NpbmdPbkVhcmx5RXJyb3I9IUlTX1BVUkUmJiFGSUxURVJfV0lUSE9VVF9USFJPV0lOR19PTl9JTlZBTElEX0lURVJBVE9SJiZpdGVyYXRvckhlbHBlcldpdGhvdXRDbG9zaW5nT25FYXJseUVycm9yKCJmaWx0ZXIiLFR5cGVFcnJvcik7dmFyIEZPUkNFRD1JU19QVVJFfHxGSUxURVJfV0lUSE9VVF9USFJPV0lOR19PTl9JTlZBTElEX0lURVJBVE9SfHxmaWx0ZXJXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcjt2YXIgSXRlcmF0b3JQcm94eT1jcmVhdGVJdGVyYXRvclByb3h5KGZ1bmN0aW9uKCl7dmFyIGl0ZXJhdG9yPXRoaXMuaXRlcmF0b3I7dmFyIHByZWRpY2F0ZT10aGlzLnByZWRpY2F0ZTt2YXIgbmV4dD10aGlzLm5leHQ7dmFyIHJlc3VsdCxkb25lLHZhbHVlO3doaWxlKHRydWUpe3Jlc3VsdD1hbk9iamVjdChjYWxsKG5leHQsaXRlcmF0b3IpKTtkb25lPXRoaXMuZG9uZT0hIXJlc3VsdC5kb25lO2lmKGRvbmUpcmV0dXJuO3ZhbHVlPXJlc3VsdC52YWx1ZTtpZihjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nKGl0ZXJhdG9yLHByZWRpY2F0ZSxbdmFsdWUsdGhpcy5jb3VudGVyKytdLHRydWUpKXJldHVybiB2YWx1ZX19KTskKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzp0cnVlLHJlYWw6dHJ1ZSxmb3JjZWQ6Rk9SQ0VEfSx7ZmlsdGVyOmZ1bmN0aW9uIGZpbHRlcihwcmVkaWNhdGUpe2FuT2JqZWN0KHRoaXMpO3RyeXthQ2FsbGFibGUocHJlZGljYXRlKX1jYXRjaChlcnJvcil7aXRlcmF0b3JDbG9zZSh0aGlzLCJ0aHJvdyIsZXJyb3IpfWlmKGZpbHRlcldpdGhvdXRDbG9zaW5nT25FYXJseUVycm9yKXJldHVybiBjYWxsKGZpbHRlcldpdGhvdXRDbG9zaW5nT25FYXJseUVycm9yLHRoaXMscHJlZGljYXRlKTtyZXR1cm4gbmV3IEl0ZXJhdG9yUHJveHkoZ2V0SXRlcmF0b3JEaXJlY3QodGhpcykse3ByZWRpY2F0ZX0pfX0pfSw3NDQ3OmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyICQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1OTA5KTt2YXIgY2FsbD1fX3dlYnBhY2tfcmVxdWlyZV9fKDY4ODApO3ZhciBpdGVyYXRlPV9fd2VicGFja19yZXF1aXJlX18oOTQ3Myk7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7dmFyIGFuT2JqZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDY0Mik7dmFyIGdldEl0ZXJhdG9yRGlyZWN0PV9fd2VicGFja19yZXF1aXJlX18oNDgxMCk7dmFyIGl0ZXJhdG9yQ2xvc2U9X193ZWJwYWNrX3JlcXVpcmVfXyg5OTE2KTt2YXIgaXRlcmF0b3JIZWxwZXJXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDg1MjIpO3ZhciBmb3JFYWNoV2l0aG91dENsb3NpbmdPbkVhcmx5RXJyb3I9aXRlcmF0b3JIZWxwZXJXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcigiZm9yRWFjaCIsVHlwZUVycm9yKTskKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzp0cnVlLHJlYWw6dHJ1ZSxmb3JjZWQ6Zm9yRWFjaFdpdGhvdXRDbG9zaW5nT25FYXJseUVycm9yfSx7Zm9yRWFjaDpmdW5jdGlvbiBmb3JFYWNoKGZuKXthbk9iamVjdCh0aGlzKTt0cnl7YUNhbGxhYmxlKGZuKX1jYXRjaChlcnJvcil7aXRlcmF0b3JDbG9zZSh0aGlzLCJ0aHJvdyIsZXJyb3IpfWlmKGZvckVhY2hXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcilyZXR1cm4gY2FsbChmb3JFYWNoV2l0aG91dENsb3NpbmdPbkVhcmx5RXJyb3IsdGhpcyxmbik7dmFyIHJlY29yZD1nZXRJdGVyYXRvckRpcmVjdCh0aGlzKTt2YXIgY291bnRlcj0wO2l0ZXJhdGUocmVjb3JkLGZ1bmN0aW9uKHZhbHVlKXtmbih2YWx1ZSxjb3VudGVyKyspfSx7SVNfUkVDT1JEOnRydWV9KX19KX0sNTUxOTpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkPV9fd2VicGFja19yZXF1aXJlX18oNTkwOSk7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTt2YXIgYUNhbGxhYmxlPV9fd2VicGFja19yZXF1aXJlX18oMzc3KTt2YXIgYW5PYmplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0NjQyKTt2YXIgZ2V0SXRlcmF0b3JEaXJlY3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODEwKTt2YXIgY3JlYXRlSXRlcmF0b3JQcm94eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDY3NTUpO3ZhciBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nPV9fd2VicGFja19yZXF1aXJlX18oMjc0MCk7dmFyIGl0ZXJhdG9yQ2xvc2U9X193ZWJwYWNrX3JlcXVpcmVfXyg5OTE2KTt2YXIgaXRlcmF0b3JIZWxwZXJUaHJvd3NPbkludmFsaWRJdGVyYXRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDgxNTUpO3ZhciBpdGVyYXRvckhlbHBlcldpdGhvdXRDbG9zaW5nT25FYXJseUVycm9yPV9fd2VicGFja19yZXF1aXJlX18oODUyMik7dmFyIElTX1BVUkU9X193ZWJwYWNrX3JlcXVpcmVfXyg1MzkwKTt2YXIgTUFQX1dJVEhPVVRfVEhST1dJTkdfT05fSU5WQUxJRF9JVEVSQVRPUj0hSVNfUFVSRSYmIWl0ZXJhdG9ySGVscGVyVGhyb3dzT25JbnZhbGlkSXRlcmF0b3IoIm1hcCIsZnVuY3Rpb24oKXt9KTt2YXIgbWFwV2l0aG91dENsb3NpbmdPbkVhcmx5RXJyb3I9IUlTX1BVUkUmJiFNQVBfV0lUSE9VVF9USFJPV0lOR19PTl9JTlZBTElEX0lURVJBVE9SJiZpdGVyYXRvckhlbHBlcldpdGhvdXRDbG9zaW5nT25FYXJseUVycm9yKCJtYXAiLFR5cGVFcnJvcik7dmFyIEZPUkNFRD1JU19QVVJFfHxNQVBfV0lUSE9VVF9USFJPV0lOR19PTl9JTlZBTElEX0lURVJBVE9SfHxtYXBXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcjt2YXIgSXRlcmF0b3JQcm94eT1jcmVhdGVJdGVyYXRvclByb3h5KGZ1bmN0aW9uKCl7dmFyIGl0ZXJhdG9yPXRoaXMuaXRlcmF0b3I7dmFyIHJlc3VsdD1hbk9iamVjdChjYWxsKHRoaXMubmV4dCxpdGVyYXRvcikpO3ZhciBkb25lPXRoaXMuZG9uZT0hIXJlc3VsdC5kb25lO2lmKCFkb25lKXJldHVybiBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nKGl0ZXJhdG9yLHRoaXMubWFwcGVyLFtyZXN1bHQudmFsdWUsdGhpcy5jb3VudGVyKytdLHRydWUpfSk7JCh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86dHJ1ZSxyZWFsOnRydWUsZm9yY2VkOkZPUkNFRH0se21hcDpmdW5jdGlvbiBtYXAobWFwcGVyKXthbk9iamVjdCh0aGlzKTt0cnl7YUNhbGxhYmxlKG1hcHBlcil9Y2F0Y2goZXJyb3Ipe2l0ZXJhdG9yQ2xvc2UodGhpcywidGhyb3ciLGVycm9yKX1pZihtYXBXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcilyZXR1cm4gY2FsbChtYXBXaXRob3V0Q2xvc2luZ09uRWFybHlFcnJvcix0aGlzLG1hcHBlcik7cmV0dXJuIG5ldyBJdGVyYXRvclByb3h5KGdldEl0ZXJhdG9yRGlyZWN0KHRoaXMpLHttYXBwZXJ9KX19KX0sNDUzNzpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBBcnJheUJ1ZmZlclZpZXdDb3JlPV9fd2VicGFja19yZXF1aXJlX18oMTQwNyk7dmFyIGxlbmd0aE9mQXJyYXlMaWtlPV9fd2VicGFja19yZXF1aXJlX18oODY5KTt2YXIgdG9JbnRlZ2VyT3JJbmZpbml0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4NDgpO3ZhciBhVHlwZWRBcnJheT1BcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O3ZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kPUFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtleHBvcnRUeXBlZEFycmF5TWV0aG9kKCJhdCIsZnVuY3Rpb24gYXQoaW5kZXgpe3ZhciBPPWFUeXBlZEFycmF5KHRoaXMpO3ZhciBsZW49bGVuZ3RoT2ZBcnJheUxpa2UoTyk7dmFyIHJlbGF0aXZlSW5kZXg9dG9JbnRlZ2VyT3JJbmZpbml0eShpbmRleCk7dmFyIGsyPXJlbGF0aXZlSW5kZXg+PTA/cmVsYXRpdmVJbmRleDpsZW4rcmVsYXRpdmVJbmRleDtyZXR1cm4gazI8MHx8azI+PWxlbj92b2lkIDA6T1trMl19KX0sNjY5OmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIEFycmF5QnVmZmVyVmlld0NvcmU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDA3KTt2YXIgJGZpbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg5MzEwKTt2YXIgdG9CaWdJbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4NDYxKTt2YXIgY2xhc3NvZj1fX3dlYnBhY2tfcmVxdWlyZV9fKDkxNDIpO3ZhciBjYWxsPV9fd2VicGFja19yZXF1aXJlX18oNjg4MCk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgZmFpbHM9X193ZWJwYWNrX3JlcXVpcmVfXygxNzApO3ZhciBhVHlwZWRBcnJheT1BcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O3ZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kPUFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDt2YXIgc2xpY2U9dW5jdXJyeVRoaXMoIiIuc2xpY2UpO3ZhciBDT05WRVJTSU9OX0JVRz1mYWlscyhmdW5jdGlvbigpe3ZhciBjb3VudD0wO25ldyBJbnQ4QXJyYXkoMikuZmlsbCh7dmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiBjb3VudCsrfX0pO3JldHVybiBjb3VudCE9PTF9KTtleHBvcnRUeXBlZEFycmF5TWV0aG9kKCJmaWxsIixmdW5jdGlvbiBmaWxsKHZhbHVlKXt2YXIgbGVuZ3RoPWFyZ3VtZW50cy5sZW5ndGg7YVR5cGVkQXJyYXkodGhpcyk7dmFyIGFjdHVhbFZhbHVlPXNsaWNlKGNsYXNzb2YodGhpcyksMCwzKT09PSJCaWciP3RvQmlnSW50KHZhbHVlKTordmFsdWU7cmV0dXJuIGNhbGwoJGZpbGwsdGhpcyxhY3R1YWxWYWx1ZSxsZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxDT05WRVJTSU9OX0JVRyl9LDg3MzM6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgQXJyYXlCdWZmZXJWaWV3Q29yZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MDcpO3ZhciAkZmluZExhc3RJbmRleD1fX3dlYnBhY2tfcmVxdWlyZV9fKDM5NjYpLmZpbmRMYXN0SW5kZXg7dmFyIGFUeXBlZEFycmF5PUFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7dmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q9QXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO2V4cG9ydFR5cGVkQXJyYXlNZXRob2QoImZpbmRMYXN0SW5kZXgiLGZ1bmN0aW9uIGZpbmRMYXN0SW5kZXgocHJlZGljYXRlKXtyZXR1cm4gJGZpbmRMYXN0SW5kZXgoYVR5cGVkQXJyYXkodGhpcykscHJlZGljYXRlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pfSw3OTAwOmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIEFycmF5QnVmZmVyVmlld0NvcmU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDA3KTt2YXIgJGZpbmRMYXN0PV9fd2VicGFja19yZXF1aXJlX18oMzk2NikuZmluZExhc3Q7dmFyIGFUeXBlZEFycmF5PUFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7dmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q9QXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO2V4cG9ydFR5cGVkQXJyYXlNZXRob2QoImZpbmRMYXN0IixmdW5jdGlvbiBmaW5kTGFzdChwcmVkaWNhdGUpe3JldHVybiAkZmluZExhc3QoYVR5cGVkQXJyYXkodGhpcykscHJlZGljYXRlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pfSwyNDk4OmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIGNhbGw9X193ZWJwYWNrX3JlcXVpcmVfXyg2ODgwKTt2YXIgQXJyYXlCdWZmZXJWaWV3Q29yZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MDcpO3ZhciBsZW5ndGhPZkFycmF5TGlrZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OSk7dmFyIHRvT2Zmc2V0PV9fd2VicGFja19yZXF1aXJlX18oMzA0OCk7dmFyIHRvSW5kZXhlZE9iamVjdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzNjQpO3ZhciBmYWlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MCk7dmFyIFJhbmdlRXJyb3IxPWdsb2JhbFRoaXMxLlJhbmdlRXJyb3I7dmFyIEludDhBcnJheTE9Z2xvYmFsVGhpczEuSW50OEFycmF5O3ZhciBJbnQ4QXJyYXlQcm90b3R5cGU9SW50OEFycmF5MSYmSW50OEFycmF5MS5wcm90b3R5cGU7dmFyICRzZXQ9SW50OEFycmF5UHJvdG90eXBlJiZJbnQ4QXJyYXlQcm90b3R5cGUuc2V0O3ZhciBhVHlwZWRBcnJheT1BcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O3ZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kPUFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDt2YXIgV09SS1NfV0lUSF9PQkpFQ1RTX0FORF9HRU5FUklDX09OX1RZUEVEX0FSUkFZUz0hZmFpbHMoZnVuY3Rpb24oKXt2YXIgYXJyYXk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDIpO2NhbGwoJHNldCxhcnJheSx7bGVuZ3RoOjEsMDozfSwxKTtyZXR1cm4gYXJyYXlbMV0hPT0zfSk7dmFyIFRPX09CSkVDVF9CVUc9V09SS1NfV0lUSF9PQkpFQ1RTX0FORF9HRU5FUklDX09OX1RZUEVEX0FSUkFZUyYmQXJyYXlCdWZmZXJWaWV3Q29yZS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTJiZmYWlscyhmdW5jdGlvbigpe3ZhciBhcnJheT1uZXcgSW50OEFycmF5MSgyKTthcnJheS5zZXQoMSk7YXJyYXkuc2V0KCIyIiwxKTtyZXR1cm4gYXJyYXlbMF0hPT0wfHxhcnJheVsxXSE9PTJ9KTtleHBvcnRUeXBlZEFycmF5TWV0aG9kKCJzZXQiLGZ1bmN0aW9uIHNldChhcnJheUxpa2Upe2FUeXBlZEFycmF5KHRoaXMpO3ZhciBvZmZzZXQ9dG9PZmZzZXQoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMSk7dmFyIHNyYz10b0luZGV4ZWRPYmplY3QoYXJyYXlMaWtlKTtpZihXT1JLU19XSVRIX09CSkVDVFNfQU5EX0dFTkVSSUNfT05fVFlQRURfQVJSQVlTKXJldHVybiBjYWxsKCRzZXQsdGhpcyxzcmMsb2Zmc2V0KTt2YXIgbGVuZ3RoPXRoaXMubGVuZ3RoO3ZhciBsZW49bGVuZ3RoT2ZBcnJheUxpa2Uoc3JjKTt2YXIgaW5kZXg9MDtpZihsZW4rb2Zmc2V0Pmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcjEoIldyb25nIGxlbmd0aCIpO3doaWxlKGluZGV4PGxlbil0aGlzW29mZnNldCtpbmRleF09c3JjW2luZGV4KytdfSwhV09SS1NfV0lUSF9PQkpFQ1RTX0FORF9HRU5FUklDX09OX1RZUEVEX0FSUkFZU3x8VE9fT0JKRUNUX0JVRyl9LDRlMzpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciB1bmN1cnJ5VGhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQwNTEpO3ZhciBmYWlscz1fX3dlYnBhY2tfcmVxdWlyZV9fKDE3MCk7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7dmFyIGludGVybmFsU29ydD1fX3dlYnBhY2tfcmVxdWlyZV9fKDExOTEpO3ZhciBBcnJheUJ1ZmZlclZpZXdDb3JlPV9fd2VicGFja19yZXF1aXJlX18oMTQwNyk7dmFyIEZGPV9fd2VicGFja19yZXF1aXJlX18oMTE1OCk7dmFyIElFX09SX0VER0U9X193ZWJwYWNrX3JlcXVpcmVfXyg4MTQpO3ZhciBWOD1fX3dlYnBhY2tfcmVxdWlyZV9fKDk1Mik7dmFyIFdFQktJVD1fX3dlYnBhY2tfcmVxdWlyZV9fKDMwOCk7dmFyIGFUeXBlZEFycmF5PUFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7dmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q9QXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3ZhciBVaW50MTZBcnJheT1nbG9iYWxUaGlzMS5VaW50MTZBcnJheTt2YXIgbmF0aXZlU29ydD1VaW50MTZBcnJheSYmdW5jdXJyeVRoaXMoVWludDE2QXJyYXkucHJvdG90eXBlLnNvcnQpO3ZhciBBQ0NFUFRfSU5DT1JSRUNUX0FSR1VNRU5UUz0hIW5hdGl2ZVNvcnQmJiEoZmFpbHMoZnVuY3Rpb24oKXtuYXRpdmVTb3J0KG5ldyBVaW50MTZBcnJheSgyKSxudWxsKX0pJiZmYWlscyhmdW5jdGlvbigpe25hdGl2ZVNvcnQobmV3IFVpbnQxNkFycmF5KDIpLHt9KX0pKTt2YXIgU1RBQkxFX1NPUlQ9ISFuYXRpdmVTb3J0JiYhZmFpbHMoZnVuY3Rpb24oKXtpZihWOClyZXR1cm4gVjg8NzQ7aWYoRkYpcmV0dXJuIEZGPDY3O2lmKElFX09SX0VER0UpcmV0dXJuIHRydWU7aWYoV0VCS0lUKXJldHVybiBXRUJLSVQ8NjAyO3ZhciBhcnJheT1uZXcgVWludDE2QXJyYXkoNTE2KTt2YXIgZXhwZWN0ZWQ9QXJyYXkoNTE2KTt2YXIgaW5kZXgsbW9kO2ZvcihpbmRleD0wO2luZGV4PDUxNjtpbmRleCsrKXttb2Q9aW5kZXglNDthcnJheVtpbmRleF09NTE1LWluZGV4O2V4cGVjdGVkW2luZGV4XT1pbmRleC0yKm1vZCszfW5hdGl2ZVNvcnQoYXJyYXksZnVuY3Rpb24oYSxiKXtyZXR1cm4oYS80fDApLShiLzR8MCl9KTtmb3IoaW5kZXg9MDtpbmRleDw1MTY7aW5kZXgrKyl7aWYoYXJyYXlbaW5kZXhdIT09ZXhwZWN0ZWRbaW5kZXhdKXJldHVybiB0cnVlfX0pO3ZhciBnZXRTb3J0Q29tcGFyZT1mdW5jdGlvbihjb21wYXJlZm4pe3JldHVybiBmdW5jdGlvbih4LHkpe2lmKGNvbXBhcmVmbiE9PXZvaWQgMClyZXR1cm4rY29tcGFyZWZuKHgseSl8fDA7aWYoeSE9PXkpcmV0dXJuLTE7aWYoeCE9PXgpcmV0dXJuIDE7aWYoeD09PTAmJnk9PT0wKXJldHVybiAxL3g+MCYmMS95PDA/MTotMTtyZXR1cm4geD55fX07ZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgic29ydCIsZnVuY3Rpb24gc29ydChjb21wYXJlZm4pe2lmKGNvbXBhcmVmbiE9PXZvaWQgMClhQ2FsbGFibGUoY29tcGFyZWZuKTtpZihTVEFCTEVfU09SVClyZXR1cm4gbmF0aXZlU29ydCh0aGlzLGNvbXBhcmVmbik7cmV0dXJuIGludGVybmFsU29ydChhVHlwZWRBcnJheSh0aGlzKSxnZXRTb3J0Q29tcGFyZShjb21wYXJlZm4pKX0sIVNUQUJMRV9TT1JUfHxBQ0NFUFRfSU5DT1JSRUNUX0FSR1VNRU5UUyl9LDUzMzI6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgYXJyYXlUb1JldmVyc2VkPV9fd2VicGFja19yZXF1aXJlX18oMzEyMSk7dmFyIEFycmF5QnVmZmVyVmlld0NvcmU9X193ZWJwYWNrX3JlcXVpcmVfXygxNDA3KTt2YXIgYVR5cGVkQXJyYXk9QXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTt2YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZD1BcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7dmFyIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1BcnJheUJ1ZmZlclZpZXdDb3JlLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtleHBvcnRUeXBlZEFycmF5TWV0aG9kKCJ0b1JldmVyc2VkIixmdW5jdGlvbiB0b1JldmVyc2VkKCl7cmV0dXJuIGFycmF5VG9SZXZlcnNlZChhVHlwZWRBcnJheSh0aGlzKSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IodGhpcykpfSl9LDY3MDc6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgQXJyYXlCdWZmZXJWaWV3Q29yZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MDcpO3ZhciB1bmN1cnJ5VGhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4OSk7dmFyIGFDYWxsYWJsZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDM3Nyk7dmFyIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0NjMpO3ZhciBhVHlwZWRBcnJheT1BcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O3ZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I9QXJyYXlCdWZmZXJWaWV3Q29yZS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7dmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q9QXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3ZhciBzb3J0PXVuY3VycnlUaGlzKEFycmF5QnVmZmVyVmlld0NvcmUuVHlwZWRBcnJheVByb3RvdHlwZS5zb3J0KTtleHBvcnRUeXBlZEFycmF5TWV0aG9kKCJ0b1NvcnRlZCIsZnVuY3Rpb24gdG9Tb3J0ZWQoY29tcGFyZUZuKXtpZihjb21wYXJlRm4hPT12b2lkIDApYUNhbGxhYmxlKGNvbXBhcmVGbik7dmFyIE89YVR5cGVkQXJyYXkodGhpcyk7dmFyIEE9YXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0KGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihPKSxPKTtyZXR1cm4gc29ydChBLGNvbXBhcmVGbil9KX0sNTEwNDpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBhcnJheVdpdGg9X193ZWJwYWNrX3JlcXVpcmVfXyg3NjExKTt2YXIgQXJyYXlCdWZmZXJWaWV3Q29yZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MDcpO3ZhciBpc0JpZ0ludEFycmF5PV9fd2VicGFja19yZXF1aXJlX18oNjE2MCk7dmFyIHRvSW50ZWdlck9ySW5maW5pdHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODQ4KTt2YXIgdG9CaWdJbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4NDYxKTt2YXIgYVR5cGVkQXJyYXk9QXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTt2YXIgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yPUFycmF5QnVmZmVyVmlld0NvcmUuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO3ZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kPUFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDt2YXIgUFJPUEVSX09SREVSPShmdW5jdGlvbigpe3RyeXtuZXcgSW50OEFycmF5KDEpWyJ3aXRoIl0oMix7dmFsdWVPZjpmdW5jdGlvbigpe3Rocm93IDh9fSl9Y2F0Y2goZXJyb3Ipe3JldHVybiBlcnJvcj09PTh9fSkoKTt2YXIgVEhST1dfT05fTkVHQVRJVkVfRlJBQ1RJT05BTF9JTkRFWD1QUk9QRVJfT1JERVImJihmdW5jdGlvbigpe3RyeXtuZXcgSW50OEFycmF5KDEpWyJ3aXRoIl0oLS41LDEpfWNhdGNoKGVycm9yKXtyZXR1cm4gdHJ1ZX19KSgpO2V4cG9ydFR5cGVkQXJyYXlNZXRob2QoIndpdGgiLHsid2l0aCI6ZnVuY3Rpb24oaW5kZXgsdmFsdWUpe3ZhciBPPWFUeXBlZEFycmF5KHRoaXMpO3ZhciByZWxhdGl2ZUluZGV4PXRvSW50ZWdlck9ySW5maW5pdHkoaW5kZXgpO3ZhciBhY3R1YWxWYWx1ZT1pc0JpZ0ludEFycmF5KE8pP3RvQmlnSW50KHZhbHVlKTordmFsdWU7cmV0dXJuIGFycmF5V2l0aChPLGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihPKSxyZWxhdGl2ZUluZGV4LGFjdHVhbFZhbHVlKX19WyJ3aXRoIl0sIVBST1BFUl9PUkRFUnx8VEhST1dfT05fTkVHQVRJVkVfRlJBQ1RJT05BTF9JTkRFWCl9LDQxMTU6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgJD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDkpO3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciAkZnJvbUJhc2U2ND1fX3dlYnBhY2tfcmVxdWlyZV9fKDM2OTApO3ZhciBhblVpbnQ4QXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODQ5KTt2YXIgVWludDhBcnJheTI9Z2xvYmFsVGhpczEuVWludDhBcnJheTt2YXIgSU5DT1JSRUNUX0JFSEFWSU9SX09SX0RPRVNOVF9FWElTVFM9IVVpbnQ4QXJyYXkyfHwhVWludDhBcnJheTIucHJvdG90eXBlLnNldEZyb21CYXNlNjR8fCEoZnVuY3Rpb24oKXt2YXIgdGFyZ2V0PW5ldyBVaW50OEFycmF5MihbMjU1LDI1NSwyNTUsMjU1LDI1NV0pO3RyeXt0YXJnZXQuc2V0RnJvbUJhc2U2NCgiIixudWxsKTtyZXR1cm59Y2F0Y2goZXJyb3Ipe310cnl7dGFyZ2V0LnNldEZyb21CYXNlNjQoImEiKTtyZXR1cm59Y2F0Y2goZXJyb3Ipe310cnl7dGFyZ2V0LnNldEZyb21CYXNlNjQoIk1qWXlaZz09PSIpfWNhdGNoKGVycm9yKXtyZXR1cm4gdGFyZ2V0WzBdPT09NTAmJnRhcmdldFsxXT09PTU0JiZ0YXJnZXRbMl09PT01MCYmdGFyZ2V0WzNdPT09MjU1JiZ0YXJnZXRbNF09PT0yNTV9fSkoKTtpZihVaW50OEFycmF5MikkKHt0YXJnZXQ6IlVpbnQ4QXJyYXkiLHByb3RvOnRydWUsZm9yY2VkOklOQ09SUkVDVF9CRUhBVklPUl9PUl9ET0VTTlRfRVhJU1RTfSx7c2V0RnJvbUJhc2U2NDpmdW5jdGlvbiBzZXRGcm9tQmFzZTY0KHN0cmluZyl7YW5VaW50OEFycmF5KHRoaXMpO3ZhciByZXN1bHQ9JGZyb21CYXNlNjQoc3RyaW5nLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHRoaXMsdGhpcy5sZW5ndGgpO3JldHVybntyZWFkOnJlc3VsdC5yZWFkLHdyaXR0ZW46cmVzdWx0LndyaXR0ZW59fX0pfSw3NDQzOmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7dmFyICQ9X193ZWJwYWNrX3JlcXVpcmVfXyg1OTA5KTt2YXIgZ2xvYmFsVGhpczE9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODEzKTt2YXIgYVN0cmluZz1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5NDgpO3ZhciBhblVpbnQ4QXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODQ5KTt2YXIgbm90RGV0YWNoZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MzAwKTt2YXIgJGZyb21IZXg9X193ZWJwYWNrX3JlcXVpcmVfXygzNzU2KTtpZihnbG9iYWxUaGlzMS5VaW50OEFycmF5KSQoe3RhcmdldDoiVWludDhBcnJheSIscHJvdG86dHJ1ZX0se3NldEZyb21IZXg6ZnVuY3Rpb24gc2V0RnJvbUhleChzdHJpbmcpe2FuVWludDhBcnJheSh0aGlzKTthU3RyaW5nKHN0cmluZyk7bm90RGV0YWNoZWQodGhpcy5idWZmZXIpO3ZhciByZWFkPSRmcm9tSGV4KHN0cmluZyx0aGlzKS5yZWFkO3JldHVybntyZWFkLHdyaXR0ZW46cmVhZC8yfX19KX0sNTk0NTpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciAkPV9fd2VicGFja19yZXF1aXJlX18oNTkwOSk7dmFyIGdsb2JhbFRoaXMxPV9fd2VicGFja19yZXF1aXJlX18oNTgxMyk7dmFyIHVuY3VycnlUaGlzPV9fd2VicGFja19yZXF1aXJlX18oNDg5KTt2YXIgYW5PYmplY3RPclVuZGVmaW5lZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NzkpO3ZhciBhblVpbnQ4QXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODQ5KTt2YXIgbm90RGV0YWNoZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg0MzAwKTt2YXIgYmFzZTY0TWFwPV9fd2VicGFja19yZXF1aXJlX18oMjE4Nyk7dmFyIGdldEFscGhhYmV0T3B0aW9uPV9fd2VicGFja19yZXF1aXJlX18oMzAyMSk7dmFyIGJhc2U2NEFscGhhYmV0PWJhc2U2NE1hcC5pMmM7dmFyIGJhc2U2NFVybEFscGhhYmV0PWJhc2U2NE1hcC5pMmNVcmw7dmFyIGNoYXJBdD11bmN1cnJ5VGhpcygiIi5jaGFyQXQpO3ZhciBVaW50OEFycmF5Mj1nbG9iYWxUaGlzMS5VaW50OEFycmF5O3ZhciBJTkNPUlJFQ1RfQkVIQVZJT1JfT1JfRE9FU05UX0VYSVNUUz0hVWludDhBcnJheTJ8fCFVaW50OEFycmF5Mi5wcm90b3R5cGUudG9CYXNlNjR8fCEoZnVuY3Rpb24oKXt0cnl7dmFyIHRhcmdldD1uZXcgVWludDhBcnJheTI7dGFyZ2V0LnRvQmFzZTY0KG51bGwpfWNhdGNoKGVycm9yKXtyZXR1cm4gdHJ1ZX19KSgpO2lmKFVpbnQ4QXJyYXkyKSQoe3RhcmdldDoiVWludDhBcnJheSIscHJvdG86dHJ1ZSxmb3JjZWQ6SU5DT1JSRUNUX0JFSEFWSU9SX09SX0RPRVNOVF9FWElTVFN9LHt0b0Jhc2U2NDpmdW5jdGlvbiB0b0Jhc2U2NCgpe3ZhciBhcnJheT1hblVpbnQ4QXJyYXkodGhpcyk7dmFyIG9wdGlvbnM9YXJndW1lbnRzLmxlbmd0aD9hbk9iamVjdE9yVW5kZWZpbmVkKGFyZ3VtZW50c1swXSk6dm9pZCAwO3ZhciBhbHBoYWJldD1nZXRBbHBoYWJldE9wdGlvbihvcHRpb25zKT09PSJiYXNlNjQiP2Jhc2U2NEFscGhhYmV0OmJhc2U2NFVybEFscGhhYmV0O3ZhciBvbWl0UGFkZGluZz0hIW9wdGlvbnMmJiEhb3B0aW9ucy5vbWl0UGFkZGluZztub3REZXRhY2hlZCh0aGlzLmJ1ZmZlcik7dmFyIHJlc3VsdD0iIjt2YXIgaT0wO3ZhciBsZW5ndGg9YXJyYXkubGVuZ3RoO3ZhciB0cmlwbGV0O3ZhciBhdD1mdW5jdGlvbihzaGlmdCl7cmV0dXJuIGNoYXJBdChhbHBoYWJldCx0cmlwbGV0Pj42KnNoaWZ0JjYzKX07Zm9yKDtpKzI8bGVuZ3RoO2krPTMpe3RyaXBsZXQ9KGFycmF5W2ldPDwxNikrKGFycmF5W2krMV08PDgpK2FycmF5W2krMl07cmVzdWx0Kz1hdCgzKSthdCgyKSthdCgxKSthdCgwKX1pZihpKzI9PT1sZW5ndGgpe3RyaXBsZXQ9KGFycmF5W2ldPDwxNikrKGFycmF5W2krMV08PDgpO3Jlc3VsdCs9YXQoMykrYXQoMikrYXQoMSkrKG9taXRQYWRkaW5nPyIiOiI9Iil9ZWxzZSBpZihpKzE9PT1sZW5ndGgpe3RyaXBsZXQ9YXJyYXlbaV08PDE2O3Jlc3VsdCs9YXQoMykrYXQoMikrKG9taXRQYWRkaW5nPyIiOiI9PSIpfXJldHVybiByZXN1bHR9fSl9LDg3NjE6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgJD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDkpO3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciB1bmN1cnJ5VGhpcz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ4OSk7dmFyIGFuVWludDhBcnJheT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4NDkpO3ZhciBub3REZXRhY2hlZD1fX3dlYnBhY2tfcmVxdWlyZV9fKDQzMDApO3ZhciBudW1iZXJUb1N0cmluZz11bmN1cnJ5VGhpcygxLjEudG9TdHJpbmcpO3ZhciBVaW50OEFycmF5Mj1nbG9iYWxUaGlzMS5VaW50OEFycmF5O3ZhciBJTkNPUlJFQ1RfQkVIQVZJT1JfT1JfRE9FU05UX0VYSVNUUz0hVWludDhBcnJheTJ8fCFVaW50OEFycmF5Mi5wcm90b3R5cGUudG9IZXh8fCEoZnVuY3Rpb24oKXt0cnl7dmFyIHRhcmdldD1uZXcgVWludDhBcnJheTIoWzI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTVdKTtyZXR1cm4gdGFyZ2V0LnRvSGV4KCk9PT0iZmZmZmZmZmZmZmZmZmZmZiJ9Y2F0Y2goZXJyb3Ipe3JldHVybiBmYWxzZX19KSgpO2lmKFVpbnQ4QXJyYXkyKSQoe3RhcmdldDoiVWludDhBcnJheSIscHJvdG86dHJ1ZSxmb3JjZWQ6SU5DT1JSRUNUX0JFSEFWSU9SX09SX0RPRVNOVF9FWElTVFN9LHt0b0hleDpmdW5jdGlvbiB0b0hleCgpe2FuVWludDhBcnJheSh0aGlzKTtub3REZXRhY2hlZCh0aGlzLmJ1ZmZlcik7dmFyIHJlc3VsdD0iIjtmb3IodmFyIGk9MCxsZW5ndGg9dGhpcy5sZW5ndGg7aTxsZW5ndGg7aSsrKXt2YXIgaGV4PW51bWJlclRvU3RyaW5nKHRoaXNbaV0sMTYpO3Jlc3VsdCs9aGV4Lmxlbmd0aD09PTE/IjAiK2hleDpoZXh9cmV0dXJuIHJlc3VsdH19KX0sMTM5MzpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBBcnJheUJ1ZmZlclZpZXdDb3JlPV9fd2VicGFja19yZXF1aXJlX18oMTQwNyk7dmFyICRmaWx0ZXJSZWplY3Q9X193ZWJwYWNrX3JlcXVpcmVfXygzMTg0KS5maWx0ZXJSZWplY3Q7dmFyIGZyb21TYW1lVHlwZUFuZExpc3Q9X193ZWJwYWNrX3JlcXVpcmVfXyg2NTgxKTt2YXIgYVR5cGVkQXJyYXk9QXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTt2YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZD1BcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7ZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgiZmlsdGVyUmVqZWN0IixmdW5jdGlvbiBmaWx0ZXJSZWplY3QoY2FsbGJhY2tmbil7dmFyIGxpc3Q9JGZpbHRlclJlamVjdChhVHlwZWRBcnJheSh0aGlzKSxjYWxsYmFja2ZuLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZnJvbVNhbWVUeXBlQW5kTGlzdCh0aGlzLGxpc3QpfSx0cnVlKX0sNjU4NDpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe3ZhciBBcnJheUJ1ZmZlclZpZXdDb3JlPV9fd2VicGFja19yZXF1aXJlX18oMTQwNyk7dmFyICRncm91cD1fX3dlYnBhY2tfcmVxdWlyZV9fKDc1NjQpO3ZhciBhVHlwZWRBcnJheT1BcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O3ZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I9QXJyYXlCdWZmZXJWaWV3Q29yZS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7dmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q9QXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO2V4cG9ydFR5cGVkQXJyYXlNZXRob2QoImdyb3VwQnkiLGZ1bmN0aW9uIGdyb3VwQnkoY2FsbGJhY2tmbil7dmFyIHRoaXNBcmc9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7cmV0dXJuICRncm91cChhVHlwZWRBcnJheSh0aGlzKSxjYWxsYmFja2ZuLHRoaXNBcmcsZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yKX0sdHJ1ZSl9LDI5ODM6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgQXJyYXlCdWZmZXJWaWV3Q29yZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0MDcpO3ZhciBsZW5ndGhPZkFycmF5TGlrZT1fX3dlYnBhY2tfcmVxdWlyZV9fKDg2OSk7dmFyIGlzQmlnSW50QXJyYXk9X193ZWJwYWNrX3JlcXVpcmVfXyg2MTYwKTt2YXIgdG9BYnNvbHV0ZUluZGV4PV9fd2VicGFja19yZXF1aXJlX18oNDAyNyk7dmFyIHRvQmlnSW50PV9fd2VicGFja19yZXF1aXJlX18oODQ2MSk7dmFyIHRvSW50ZWdlck9ySW5maW5pdHk9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODQ4KTt2YXIgYVR5cGVkQXJyYXk9QXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTt2YXIgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yPUFycmF5QnVmZmVyVmlld0NvcmUuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO3ZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kPUFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDt2YXIgbWF4PU1hdGgubWF4O3ZhciBtaW49TWF0aC5taW47ZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgidG9TcGxpY2VkIixmdW5jdGlvbiB0b1NwbGljZWQoc3RhcnQsZGVsZXRlQ291bnQpe3ZhciBPPWFUeXBlZEFycmF5KHRoaXMpO3ZhciBDPWdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihPKTt2YXIgbGVuPWxlbmd0aE9mQXJyYXlMaWtlKE8pO3ZhciBhY3R1YWxTdGFydD10b0Fic29sdXRlSW5kZXgoc3RhcnQsbGVuKTt2YXIgYXJndW1lbnRzTGVuZ3RoPWFyZ3VtZW50cy5sZW5ndGg7dmFyIGsyPTA7dmFyIGluc2VydENvdW50LGFjdHVhbERlbGV0ZUNvdW50LHRoaXNJc0JpZ0ludEFycmF5LGNvbnZlcnRlZEl0ZW1zLHZhbHVlLG5ld0xlbixBO2lmKGFyZ3VtZW50c0xlbmd0aD09PTApe2luc2VydENvdW50PWFjdHVhbERlbGV0ZUNvdW50PTB9ZWxzZSBpZihhcmd1bWVudHNMZW5ndGg9PT0xKXtpbnNlcnRDb3VudD0wO2FjdHVhbERlbGV0ZUNvdW50PWxlbi1hY3R1YWxTdGFydH1lbHNle2FjdHVhbERlbGV0ZUNvdW50PW1pbihtYXgodG9JbnRlZ2VyT3JJbmZpbml0eShkZWxldGVDb3VudCksMCksbGVuLWFjdHVhbFN0YXJ0KTtpbnNlcnRDb3VudD1hcmd1bWVudHNMZW5ndGgtMjtpZihpbnNlcnRDb3VudCl7Y29udmVydGVkSXRlbXM9bmV3IEMoaW5zZXJ0Q291bnQpO3RoaXNJc0JpZ0ludEFycmF5PWlzQmlnSW50QXJyYXkoY29udmVydGVkSXRlbXMpO2Zvcih2YXIgaT0yO2k8YXJndW1lbnRzTGVuZ3RoO2krKyl7dmFsdWU9YXJndW1lbnRzW2ldO2NvbnZlcnRlZEl0ZW1zW2ktMl09dGhpc0lzQmlnSW50QXJyYXk/dG9CaWdJbnQodmFsdWUpOit2YWx1ZX19fW5ld0xlbj1sZW4raW5zZXJ0Q291bnQtYWN0dWFsRGVsZXRlQ291bnQ7QT1uZXcgQyhuZXdMZW4pO2Zvcig7azI8YWN0dWFsU3RhcnQ7azIrKylBW2syXT1PW2syXTtmb3IoO2syPGFjdHVhbFN0YXJ0K2luc2VydENvdW50O2syKyspQVtrMl09Y29udmVydGVkSXRlbXNbazItYWN0dWFsU3RhcnRdO2Zvcig7azI8bmV3TGVuO2syKyspQVtrMl09T1trMithY3R1YWxEZWxldGVDb3VudC1pbnNlcnRDb3VudF07cmV0dXJuIEF9LHRydWUpfSw0Njg6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgdW5jdXJyeVRoaXM9X193ZWJwYWNrX3JlcXVpcmVfXyg0ODkpO3ZhciBBcnJheUJ1ZmZlclZpZXdDb3JlPV9fd2VicGFja19yZXF1aXJlX18oMTQwNyk7dmFyIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdD1fX3dlYnBhY2tfcmVxdWlyZV9fKDg0NjMpO3ZhciAkYXJyYXlVbmlxdWVCeT1fX3dlYnBhY2tfcmVxdWlyZV9fKDE0OTYpO3ZhciBhVHlwZWRBcnJheT1BcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O3ZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I9QXJyYXlCdWZmZXJWaWV3Q29yZS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7dmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2Q9QXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3ZhciBhcnJheVVuaXF1ZUJ5PXVuY3VycnlUaGlzKCRhcnJheVVuaXF1ZUJ5KTtleHBvcnRUeXBlZEFycmF5TWV0aG9kKCJ1bmlxdWVCeSIsZnVuY3Rpb24gdW5pcXVlQnkocmVzb2x2ZXIpe2FUeXBlZEFycmF5KHRoaXMpO3JldHVybiBhcnJheUZyb21Db25zdHJ1Y3RvckFuZExpc3QoZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yKHRoaXMpLGFycmF5VW5pcXVlQnkodGhpcyxyZXNvbHZlcikpfSx0cnVlKX0sMTc4MjpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe19fd2VicGFja19yZXF1aXJlX18oNDExNSl9LDI2NTY6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXtfX3dlYnBhY2tfcmVxdWlyZV9fKDc0NDMpfSwxMjg4OmZ1bmN0aW9uKF9fdW51c2VkX3JzcGFja19tb2R1bGUsX191bnVzZWRfcnNwYWNrX2V4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyl7X193ZWJwYWNrX3JlcXVpcmVfXyg1OTQ1KX0sMjE0NjpmdW5jdGlvbihfX3VudXNlZF9yc3BhY2tfbW9kdWxlLF9fdW51c2VkX3JzcGFja19leHBvcnRzLF9fd2VicGFja19yZXF1aXJlX18pe19fd2VicGFja19yZXF1aXJlX18oODc2MSl9LDQ2NDY6ZnVuY3Rpb24oX191bnVzZWRfcnNwYWNrX21vZHVsZSxfX3VudXNlZF9yc3BhY2tfZXhwb3J0cyxfX3dlYnBhY2tfcmVxdWlyZV9fKXt2YXIgJD1fX3dlYnBhY2tfcmVxdWlyZV9fKDU5MDkpO3ZhciBnbG9iYWxUaGlzMT1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4MTMpO3ZhciBnZXRCdWlsdEluPV9fd2VicGFja19yZXF1aXJlX18oODU0MCk7dmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcj1fX3dlYnBhY2tfcmVxdWlyZV9fKDcxMzEpO3ZhciBkZWZpbmVQcm9wZXJ0eT1fX3dlYnBhY2tfcmVxdWlyZV9fKDUzMjIpLmY7dmFyIGhhc093bj1fX3dlYnBhY2tfcmVxdWlyZV9fKDU4Nik7dmFyIGFuSW5zdGFuY2U9X193ZWJwYWNrX3JlcXVpcmVfXyg1ODYyKTt2YXIgaW5oZXJpdElmUmVxdWlyZWQ9X193ZWJwYWNrX3JlcXVpcmVfXyg4NjU0KTt2YXIgbm9ybWFsaXplU3RyaW5nQXJndW1lbnQ9X193ZWJwYWNrX3JlcXVpcmVfXyg2MDE4KTt2YXIgRE9NRXhjZXB0aW9uQ29uc3RhbnRzPV9fd2VicGFja19yZXF1aXJlX18oMjUxOSk7dmFyIGNsZWFyRXJyb3JTdGFjaz1fX3dlYnBhY2tfcmVxdWlyZV9fKDIwMDQpO3ZhciBERVNDUklQVE9SUz1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ0NTMpO3ZhciBJU19QVVJFPV9fd2VicGFja19yZXF1aXJlX18oNTM5MCk7dmFyIERPTV9FWENFUFRJT049IkRPTUV4Y2VwdGlvbiI7dmFyIEVycm9yMT1nZXRCdWlsdEluKCJFcnJvciIpO3ZhciBOYXRpdmVET01FeGNlcHRpb249Z2V0QnVpbHRJbihET01fRVhDRVBUSU9OKTt2YXIgJERPTUV4Y2VwdGlvbj1mdW5jdGlvbiBET01FeGNlcHRpb24oKXthbkluc3RhbmNlKHRoaXMsRE9NRXhjZXB0aW9uUHJvdG90eXBlKTt2YXIgYXJndW1lbnRzTGVuZ3RoPWFyZ3VtZW50cy5sZW5ndGg7dmFyIG1lc3NhZ2U9bm9ybWFsaXplU3RyaW5nQXJndW1lbnQoYXJndW1lbnRzTGVuZ3RoPDE/dm9pZCAwOmFyZ3VtZW50c1swXSk7dmFyIG5hbWU9bm9ybWFsaXplU3RyaW5nQXJndW1lbnQoYXJndW1lbnRzTGVuZ3RoPDI/dm9pZCAwOmFyZ3VtZW50c1sxXSwiRXJyb3IiKTt2YXIgdGhhdD1uZXcgTmF0aXZlRE9NRXhjZXB0aW9uKG1lc3NhZ2UsbmFtZSk7dmFyIGVycm9yPW5ldyBFcnJvcjEobWVzc2FnZSk7ZXJyb3IubmFtZT1ET01fRVhDRVBUSU9OO2RlZmluZVByb3BlcnR5KHRoYXQsInN0YWNrIixjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSxjbGVhckVycm9yU3RhY2soZXJyb3Iuc3RhY2ssMSkpKTtpbmhlcml0SWZSZXF1aXJlZCh0aGF0LHRoaXMsJERPTUV4Y2VwdGlvbik7cmV0dXJuIHRoYXR9O3ZhciBET01FeGNlcHRpb25Qcm90b3R5cGU9JERPTUV4Y2VwdGlvbi5wcm90b3R5cGU9TmF0aXZlRE9NRXhjZXB0aW9uLnByb3RvdHlwZTt2YXIgRVJST1JfSEFTX1NUQUNLPSJzdGFjayJpbiBuZXcgRXJyb3IxKERPTV9FWENFUFRJT04pO3ZhciBET01fRVhDRVBUSU9OX0hBU19TVEFDSz0ic3RhY2siaW4gbmV3IE5hdGl2ZURPTUV4Y2VwdGlvbigxLDIpO3ZhciBkZXNjcmlwdG9yPU5hdGl2ZURPTUV4Y2VwdGlvbiYmREVTQ1JJUFRPUlMmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsVGhpczEsRE9NX0VYQ0VQVElPTik7dmFyIEJVR0dZX0RFU0NSSVBUT1I9ISFkZXNjcmlwdG9yJiYhKGRlc2NyaXB0b3Iud3JpdGFibGUmJmRlc2NyaXB0b3IuY29uZmlndXJhYmxlKTt2YXIgRk9SQ0VEX0NPTlNUUlVDVE9SPUVSUk9SX0hBU19TVEFDSyYmIUJVR0dZX0RFU0NSSVBUT1ImJiFET01fRVhDRVBUSU9OX0hBU19TVEFDSzskKHtnbG9iYWw6dHJ1ZSxjb25zdHJ1Y3Rvcjp0cnVlLGZvcmNlZDpJU19QVVJFfHxGT1JDRURfQ09OU1RSVUNUT1J9LHtET01FeGNlcHRpb246Rk9SQ0VEX0NPTlNUUlVDVE9SPyRET01FeGNlcHRpb246TmF0aXZlRE9NRXhjZXB0aW9ufSk7dmFyIFBvbHlmaWxsZWRET01FeGNlcHRpb249Z2V0QnVpbHRJbihET01fRVhDRVBUSU9OKTt2YXIgUG9seWZpbGxlZERPTUV4Y2VwdGlvblByb3RvdHlwZT1Qb2x5ZmlsbGVkRE9NRXhjZXB0aW9uLnByb3RvdHlwZTtpZihQb2x5ZmlsbGVkRE9NRXhjZXB0aW9uUHJvdG90eXBlLmNvbnN0cnVjdG9yIT09UG9seWZpbGxlZERPTUV4Y2VwdGlvbil7aWYoIUlTX1BVUkUpe2RlZmluZVByb3BlcnR5KFBvbHlmaWxsZWRET01FeGNlcHRpb25Qcm90b3R5cGUsImNvbnN0cnVjdG9yIixjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSxQb2x5ZmlsbGVkRE9NRXhjZXB0aW9uKSl9Zm9yKHZhciBrZXkgaW4gRE9NRXhjZXB0aW9uQ29uc3RhbnRzKWlmKGhhc093bihET01FeGNlcHRpb25Db25zdGFudHMsa2V5KSl7dmFyIGNvbnN0YW50PURPTUV4Y2VwdGlvbkNvbnN0YW50c1trZXldO3ZhciBjb25zdGFudE5hbWU9Y29uc3RhbnQucztpZighaGFzT3duKFBvbHlmaWxsZWRET01FeGNlcHRpb24sY29uc3RhbnROYW1lKSl7ZGVmaW5lUHJvcGVydHkoUG9seWZpbGxlZERPTUV4Y2VwdGlvbixjb25zdGFudE5hbWUsY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDYsY29uc3RhbnQuYykpfX19fX1dKTsidXNlIHN0cmljdCI7dmFyIEVYaT0xODg1NDU4MzY1O2Z1bmN0aW9uIHNOYShkLHgpe3ZhciByPSIiO3ZhciBpO3ZhciBiO3ZhciBwaztmb3IoaT0wO2k8ZC5sZW5ndGg7KytpKXtiPWRbaV07cGs9TWF0aC5pbXVsKEVYaV54LDczMjQ0NDc1KStpJjI1NTtiPShiPDw0fGI+Pj40KSYyNTU7Yj0oYj4+PjZ8Yjw8MikmMjU1O2I9YisoMTk1K3BrJjI1NSkmMjU1O2I9KGI8PDR8Yj4+PjQpJjI1NTtiPWJeMTU1K3BrJjI1NTtiPWJeMTgzK3BrJjI1NTtiPShiPDw0fGI+Pj40KSYyNTU7cis9U3RyaW5nLmZyb21DaGFyQ29kZShiKX1yZXR1cm4gcn12YXIgYllYPSJGMVBmd0VyWHpEZDQ5MlhUeklyREdmTHpoMmZUdVA5c2ZJRXhCZE5xdWl6T3d1NSRmV2hIczlHaExDVURoV21zbzU5dGlsZlNCYWlHakgiO3ZhciBMT0I9IjdwMzIyaTg4MGFBSmxnWG1WaHZDRnJzWHAkbE5pX0NVWHd0R205U1hwTyRQWWpzNnNXViI7dmFyIGdUYz1bWzYyLDc4LDY3LDU5LDQzLDc1LDExNywzNyw1NCw3Nyw1MSw3NSw4Myw2NywyOSwzNyw1MywxMDEsMTUsNTUsMzksMTEsMjldLFsxNjEsMTU5LDc0LDEyNywxMjJdLFsxNjAsMTU2LDE3OSwxNjgsMTE3XSxbMjAzLDE4Nyw3MCwxNTYsNzZdLFs2OCw1Miw1NywyMjgsNjldLFsyMywyMSw0MSw0OSwyMjddLFsxMTAsOTgsMTMsNDEsMzVdLFsxMjEsOTcsMTAxLDEwNywyNDldLFsyMjUsMjM3LDIxOSwxNTQsMjQ2XSxbMjA4LDIyMiwyMTQsMTU3LDE5MF0sWzEyLDI0LDI1MCwxODIsMjUzXSxbMjUwLDI1NCwxNCwyMzEsOF0sWzE5OSwxNTksMTE2LDg4LDE3Ml0sWzE0NiwxNjgsMTcxLDk1LDEwN10sWzE4OSwxMDgsMTkyLDEwMCwxNzBdLFsxNTYsOTksODcsMTUzLDE2NV0sWzExNywyMCw5MSwxMCw1OF0sWzY0LDUsMjIwLDksNTddLFsxNTUsNTgsMTE0LDE0MywxMjhdLFsxMDYsNjEsNTcsMzksNDddLFsyNDYsMjI1LDE5OSwyNDQsMjM1XSxbMjIxLDE5NCwyMTUsMTk4LDIxMV0sWzI5LDI1NSwzMiwyMDMsMjI5XSxbOCwyMzgsMjU0LDE3LDEwXSxbMTUyLDE2MywxNTgsMTQ2LDE5NF0sWzE5NSwxNzYsMTU3LDc2LDYwXSxbMjA2LDE4OSwxNzcsMjA5LDE3MV0sWzE4NSwxOTIsMTEyLDE5NSwxNjZdLFsxMDIsODEsMyw3MSwxMTVdLFsxMTMsOTQsMjQxLDk1LDI0MV0sWzE0MCwxNjcsMTI4LDM5LDM3XSxbMTUxLDExNCwxMzUsOTYsOTJdLFs0LDM1LDEwLDE4OCwxOTZdLFsyNDIsOCwwLDIyOCwyMTVdLFs0NiwyMzYsNDUsMjIwLDI0Ml0sWzE3LDQ4LDMzLDE5LDE0XSxbMTk3LDE2OCwxOTAsMTIyLDE1MF0sWzE3Niw4OSwxNDIsMTQ1LDE1OF0sWzIyNywxODYsMTUwLDI0MywyMjRdLFsyMTAsMjI1LDEyMSwxMzksMjEyXSxbMjAxLDc4LDE2LDEyLDEyLDEwOCw1OSw1OCw0Niw0MiwyOCw5Niw5MiwyOSwyNTBdLFsxODQsMTUwLDc5LDAsMjA2LDEyNCw2OSwyMzIsOSwyMywxNTQsMTg2LDMsMzMsMTY0LDVdLFsyMDcsMTIwLDE0NCw4MCw2MiwxNTQsNTQsOTUsODAsODQsMzYsMzIsNzVdLFsyNTQsMTc4LDE4MiwxOTIsMjAwLDQ1LDEwOSw3NSw5Miw5MiwxMjQsMTkyLDU3LDEyNCw3OCwyNTRdLFsxNzUsMjQ3LDIwNSwyMiwyMjksNiwyMDcsMTgwLDE3NSwyMTksMTg5LDE4MSwxNDVdLFsxOTQsMTg4LDI0NCwyMTIsMThdLFsyNiwxOCw4Myw4MywyMDcsNjAsNTMsMTE5LDI0NSwxOCwzOCwxNDUsMTcxLDIwMyw1LDhdLFsyNDgsMjI4LDI0NCwyMTAsMjI2XSxbMTM3LDIwOSwxNjMsMTE1LDE5NSwxNDcsMTUzLDE1M10sWzEyMCwxMDYsMTkxLDE1NSwxNDZdLFsxNzksMTk5LDIyNCwyNDAsMjA5XSxbMTc4LDIyNiwyNDMsMTQ4LDIxNl0sWzc1LDExNSw3Myw0OSwzMywxMDVdLFsyMiw2NCwyOCw1Miw1NiwxMDZdLFsxMTcsMTM3LDEzMywxMDEsMTg0XSxbMTgwLDEzNiwxNzYsMTUwLDEzNV0sWzMzLDI2LDcsNTYsMzFdLFs4LDI2LDI1MywyMjksMjI5LDE5OV0sWzc1LDI3LDE1LDQzLDEwLDY1LDM3LDg1LDI0MiwyMjcsMjM0LDU5LDIxMiwyMzIsMjI4LDIyMCwyMjIsMjE0XSxbOTAsMjMzLDE0LDI0MywyNTEsMjUxLDE2LDIzNywyMjldLFsyMjIsMjA3LDIxNiwxODgsMjAwXSxbMjAxLDE5MSwyMDcsMTQ3LDE5OV0sWzI1LDE2MCw3MiwxMjgsOTgsMjUwLDI1NCwyMzEsNTYsMjQ5LDkyLDEzNiwxNzgsNTgsMTAsMl0sWzQsMTc1LDE1OSwyNTQsMTUzXV07dmFyIGM1ND1bXTt2YXIgTHFWPVsxODE5NDIzMDYxLDIwNTMzMjY5MDMsMTUxNTE1NjA5MCw4Nzk4NDA4MTgsMjAwMzM5NTEyOSwxMTEzNjcwNTE2LDExMjkwNzkzNzMsMTYzNDM2NTc3MywxNDk5MDI3NzQ4LDE0NjUzNDg5ODIsODEyMTUwNjQ1LDEyOTYxMjUyNDAsMTM4MzA5MzgzNiwxMzYzOTYwMTgzLDEzNDc2NDM5NTYsMTY4NDYyNTAxMiwxMzMwNzk2NjY1LDE5NzA1NjY0NTMsMTgxNjYyMDYxMSwyMDE4MTM4NDM2LDg5NjQzMjQ4NF07dmFyIFhFej0iT2Z4UVVlQkQ4OTg0dWRUUEswU1h3SUYyeTN0JGwxUG5ROU5mZDRKNWNCMmR5Z1JjSTZiak4za2NLOE00bmhoYTZfWmRCMWQzX3FCVVhybllWN3VoMmxBZEZtMmU0STZMRDB0YWxKdjFONCRGbUdTJDhaUzhXNFl4V0ZwVjh6RWxLaDVMMFlxWUFqaTV0MkJmeXE0UW93SThqbEFzd0ZNOEgzUG9rb1oiO3ZhciBIMmY9IlAwT19VWk54YTczanhOUTF2SDMwcFJzd2pNZHBfQW9OX3dDZHc2dnJHNUptRjc1bDdnQWJXWTRXU053VUZUckR1bk04X1A5SGdLc3R4TUl3ejlFdlg3Rm1kYUFzTFhxZ0VZd3ZqeG91V0NRb3lnckNfUlpfWXh1RERpJG9xN0pPWjhodzJoanR0eXE5ZHh6NHN1VG1zRW9qVmJWJGYkVkxqTkVfRUlHRk9oQ3ZXcmFia0p4YUI1SmpkS3ozJDFuMUkxRyRuczhjWVQ5OUNWc0Yzdldvd2dYY0xIbHNTdlc5ZGlwY1o1YkZDR2k0OUpobU5GZ0hFa1JOS3d6S2UkVWp0TGpaWmVrMGxZT2t0X3ZLWWlacTNzZDdaMHEycXVBTlR0UjhYWDFZY1FnaXYkYUlCNVRJTWQ1UDl4NG5xdW44OEJSYmVaVXRPYkpLR3cxaEZOU1MkUXk0Z25wMDZJcW5QdTJSZDJlY0twa0lhNURwQ09zTUVDTW9YRUJ1Wmw3dkFBb0ZNb1F1R1lrOHExd0pBb09sUl82OFZ1eUFLbVFGS01Wem8zQWhHazB0eFhzZEZwSFVyRlZZaDhvJFg2RFBHRSRQR0tvQ3dfVmhacWZUUnpza3BvVjBfUXAwTUNwU1pYMWRzMFAiO3ZhciBUNlg9ImY5REk5MGcxYWxfSWdJMmtpMkh4Qzl5UU9DYWYxdlZ0YUI1clUwWnV2VVZyWlNDU09manp1QVByYzlwWnBpZCI7dmFyIGZPUj0icmY5M2ZLJGxQSVZnVU9pRXV3Ym9SekF5QlBneWVhR0RKVmM2M01Wc1RRaTlTR01aMGc2cE5sRXgyc1Z5a1ZKUXhod3pKZHNOMlFkOEhIZ3U1NmhwUzc2X1FxWUpYZ3g1Tml3Zzh1aHNLVUpKJGFyRmVwUTVTeURpZFYxRk5ZM0wxTllzR253VTh1eEFsVVp2V2xfQ2pJWF9SZGduS2Y0OFpweklOY20ycU5MOTBwTkc2NHJwc25tVURTVWRwWSRtb21zaGdsMmdtUGxteHFNOUFLbTdoVG9FMkhPSzlsVmcyZ2lDRDdjWE9yZUxNZDh0R3kzb3Z0bTlmU3J0VXB1R19vc2cwdFd6QUZBWXNQUTdST3E4MEdUOURsOWQ5NjJHUUhQMWkzc05FWmNyVUxmeDNrbHZGc0JjUlJKaUxvbXpHRk8yQ284WFRzOEt6NTVMclJHSnVkIjt2YXIgYkNoPSJWZEliUFBhbVpIbzg3dDZXczFUUndOOHA2OG5tSU9GNjFDYm1RcmQ2b1JHeVpiZzhvMlk5WVNNaThvVnFZbyRFb2tuek5QY3VjbjlNUUpUOWxoeF82d1Q5alVsbG5tNUY2bWlCZ185JGdIWnR4SWEwMGhhalFyMmcxWlNobDhSb1ZzTHk3YWc3JGFpeGlfWnMySGZfSXUyYTZEN2x5dXhlY194Z0Rvb0I2JFlXaGhCemtoNl8xVlFUSkpxTEtFa1BFVUI3bU9zJE9VVmJWRVVHQjhXbk5yMGQ5aDNSQmdtUTdQZV9uWHFNa0N1MWdTS09iWVpPMktnZVdCam82YllTUVd4M0Y2OFBxdDlCNWRKTVp3XzVPenZ5TmNYVncxVFlSSTFvQm1QTmskMkhKQkR5M1duZ3FiTVRpWnF6SmtIdE0yUnp4cjhMUlpUODl3cU5fR1Rwd1Q1YiRPaiI7ZnVuY3Rpb24gVXIwKGkpe3JldHVybiBjNTRbaV18fChjNTRbaV09c05hKGdUY1tpXSxpKSl9dmFyIElyND1NYXRoLmltdWw7dmFyIFA0Yj0ieml4clVPTWpRX0hXVENON0piNnIkdVZtb2JWR09MN19tU1JFeE5rNkd6UDZDWnd6MG1WdU9YSHlQS1RTV1hxMUxsZHViRnRsOXEwVks1RCR6SW5BRlEwTXJ2TFBGQldnUmVsVXgkVXdHZ2NYViRiYTJVODVSVTI3YkdmcmdycWRUJHg4Z0JrZUVvR0VwYlNHYlIiO3ZhciBQZVg9WzEyMzE3MTA3OTAsMTIzMDEzNTYzOCwyMDE5MTI3MDkwLDEyNDYzMjA5NjgsMTM2Mzk0OTY3MCwyMDE2NzYzNzY3LDE5NTMyNjUwMDYsMTg4NDU4MTcyOSwxMjQ4Njc5MjcxLDEyNjU5ODQwOTksMTMxMTkyNzg5MSwxODE3NjcxNzMxLDE2NDg2NDI5MzEsMjAxNzYyMDAyNCwxNjY1NzM3Nzk1LDExNjQ3OTM2MzYsMTIyOTIyMzQ5OCwxNDQ3ODQwMDUyLDE1MTcwNDE3NDIsMTQ4MDY3Nzk3MSwxMzgyNzA4MDU2LDExNjM0MjI3NzIsMTExNDU5MDc3NCwxMjMwMTI5Nzc5LDExNDY0Mzc5NjUsMTg4MTQxOTg0MSwxNDQ2MDc4Mjc5LDE1MTcxODc2NjUsMTA5NTc5MTczMywxMzY0NjY5MjU2LDkxMzUyNTMwMSwxODMyNDgxNjQyLDg5Njc1NDc2OSwxOTQ5OTEwNjUwLDIwNTMwNTU1OTcsMTQ2NzQzNTg2MiwxMTMwMzI0ODE5LDEyMTM2NzgxNTAsMTQ4MjMxNDA5MCw4NDUyMjcwODQsMTExMTU3Mzg2MCwxMjI5NTUxNzMwLDExNjQ0NjQ5ODEsMTI2NTg0NTEwMiwxODY3MTQxOTkzLDExOTg4NzgyODksMTE5ODYwODcyMyw4OTM1NDI5NjIsMTcxODE3OTEzOSwxMzgyMTcxNDkwLDE2ODI5MTI2MzMsOTQ1OTAwNjAxLDE5MTc3Mzg3ODgsMTQzMTcxMjYxMCwxODg2NjgwNjY2LDExMzIwOTY4NDJdO3ZhciBuZ049IjdMY0dQNkJVNTBMYnF3ZjJCcFFzQnRVTzFjNTRBJGZqcG14Z2ROMWNJdU8wVE1Ba1hIaGJzWEMzcnBxRUp5clZEZnRGck82X0M2QVN6bTEyeEk0STJXSjJJJGxEaE1sTjFqdWJBTDdsckRmSnJSOU9aUG84YmNTMWpMZ2loeSI7dmFyIEw2bj0iam5xX3dzUVhLWm1DZHN1SVkwdmVZS2hVMHJnX0NZSG1fX2pRQXIwRkE4TkN5dCREdGdfVEpXU2tkVTZjQTY2R1RNa2ZFQzMzdGFZempwWWxrbHFVY0lkIjt2YXIgTVJtPVN5bWJvbCgpO3ZhciBVTjI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgTFVSPSI3Q3NkdVYwY3JMTmFpcWE4QlpPZUE1RnZyRFFic2czYnVvMnVTVmhQeWhkTjZLamUxVl9DWUdITExrU3N6ME5FU2p3OUpnS09MZmpYOUg3eGdyX1ZHUE9hWUNKenJXWkRCeVhZSDJBZlh0enA4RSI7dmFyIEVYSz10eXBlb2YgZ2xvYmFsVGhpcyE9PVVyMCg1OSk/Z2xvYmFsVGhpczp0eXBlb2Ygd2luZG93IT09VXIwKDU5KT93aW5kb3c6dHlwZW9mIGdsb2JhbCE9PVVyMCg1OSk/Z2xvYmFsOnR5cGVvZiBzZWxmIT09VXIwKDU5KT9zZWxmOnt9O3ZhciBMc0o9IkFkMEcyWEUyU1VabFdBckN6STVtcjBjUTh1NzhZcUt3S2toczlYaVZGSmw4Mnd2eG1nWEFUUVNNRzNzb1BocnNfU2pQTmp1ZFFiV0Z2djFYaFE2RTJSYVNGaTlNNUtzTjZPaGtfMmo3N0VDeEFja1pTRV9fSzV1N2poSkJRc2FwdExGSlhiRTRpeUkxbSRmckdEUWJyRU5BT3hGUkJKRDl4NWlkRFN4ZFJOcEdsMnZiQmJJSElfN3k0aEF2a2p3cXhhTWgyS2ZVcVhnc2RRM241aWdobEpvWHVVTUxyZGU0bGhzaGQ3OHBjdkxoOTIiO3ZhciByYWQ9WzEyNDUyNjMyMDcsMTM2NjM3OTg5NSwxODE2NDA4NjYwLDE3MzEyODI3NzUsMTM0NzYzOTY1MSwxODE2OTQ2MjYwLDE4NjU4MjM4MTYsMTk4NTYzMDUxN107dmFyIERLSj0iZEVLZ294R2RQdVp4MTlzYnU1OHNoS0QwJGl2YTBMTEJGVDlzMWVmS0s4ZlQ2cklyM2ZuUjZqbGk2ck52c1o3R1lnSl9yRzBKQTFqRDNYVUxESkZwc2Q0UDckdTNTaEpBcFlfRHQ0Y01pUzk2ME5JRHZFZ2hiYTRyTGVqalIkYlYkS2xVQnpCOUxwb3ZMVUExWlVqa0RxSkg2RUpVOTI3bmxad3UzMzhIN1AkWmhIZ2NrUTd4UVVtUWRLWXA5eXExaGtXYVh3SmZFQjZSZEVWUiI7dmFyIGJTUD0iNklhaWVkR09STWRuVERyNEtHd3FZOV81REpSUU5oRjJ4dW83RW1PRTJtb3VvSmJya01JVEVXcml0VyQ2R3dnIjt2YXIgVGl4PSIzbjJvSXR1dTZodGtqTENQZ1VwN1M5SjJKTEZxOHd6Z2RBZkk2aFlzNDB1QUtTV1pZNXc4NU1DUEc4enhkMXBuSEFLWE9tR1BCUDNKN2NhbjlzM2hQJFB5WFR0OCRraEE5UmhwV1diVVpMOVBpdllodVlzRllISDNGTkQkNDgxM0NBOUxFVzZsNkhzNHJ6eXE4endINVFnVVVHVGlraGNGSmdPOGtqcyI7dmFyIFhhVj0ibUlxbFJtTFRJcWtWRVRWZkVqR2xlYmVYc2tlZlJnTU5xbmhEM29leTRDdFhRc2daVDlUVldRcTU1dm1NOUVOZ0RKMktQNHpmJCR0UjkiO3ZhciBqUVo9IjRDSVJBTFB6d3k1YmFvSzFuWW93U1l0M0twMElWb0FKMXBjVWxpdU5TOVJxck9hS1BuWTY1cWxROVZtNUllZURVYVNHaDNESEkwR1FjbCRUZEthMmJhMkxHSmxPZ3NMOUUwNjBRN0k3Ijt2YXIgRVhnPU9iamVjdC5jcmVhdGUobnVsbCk7dmFyIExpcD0iVE5WRFhXQ1dGMWhuSGswV1FRbF9GSXdjOVZibXM4Ql9Vd3kxT2RESTh5eGc3c2Z2WlJrcm5KSkpTbEdCUnBlRzRWTnp0JFVPN2Z6aW12JEY3NHdtSU92N0llbDJmenBQbkM2JFNrZFU2Y0E2a0dfbkgkVEtsIjt2YXIgRDhMPSIwayRZWHNqZDh3bmdmamgyWUNNYXZhbGFGdDRyTnZMb0p3JDBVM0hhaW94SjVXZGRReHZVUlokSUVwVlo5WldsWWpBaUttQnVOZlFxN3E3TW92S01rMWMxOXZTZFdEZ0VLcFNBZU1hNnVpN3BmNklkQ2NDTHJKZXMzN3Zia0VYYVAzSyI7dmFyIG5TZj0iUjhsUXNSYWFvOTlDQUVVSWV3azhjY2JQYmxKa2FEVzhIN2VCOHE2T2pqbDdDU3dxS0lYeGRPQ2NVaXp1ZU9qZEF4N2hSaVJwWGhaNEZVeXhsa1lZTHBodTZYdklNQ3BUNWhwdmZLdlNrRGpBTFMiO3ZhciBmMmg9IlIyQ0NkZW14QThYRG5Da2dXNF9YYXBFa2RxSWV5ZWgzRlVIZEZPN3ZJU2llTUg5akxuNjhDN29jNDdrSGVpeUZqaVVMRUxGaldENUJCU3ciO3ZhciBMWXA9IjhpOTFYX2piZU9fOWJLQU5UbDh1Wk52X3l6VWcxYlZZcHM3SXVZOEVQcGU0eDBCekdrMXlsN2ZFbjIwX0w1MjZGek1fMkxsdGM4S0pLOHViR2s4Ijt2YXIgYk03PSJBZDBHMm5FOFNVWGxXQXJDekk1aDUwayRRTmlsRXFuZ3JPd2RscEtfZFFldlRNbkxRWVdISzFYeWNvS3ZHcmRtUyI7dmFyIERjUj0iQWQwRzJYRUJTVUtsV0FyQ3RJNGg4RzhGaWpDZklseFRPejBJd1dkQVIyTTFONG9SM29DVl9pa3hvWXY1bndRRDFBS0hSN2M4VXloWEpNdEZkMHRLYXBSZW0xZWxpZjBtMDJaSUhFZEZ6MDQ0NzdvZm9sZkRSMU11dXN4UFR1TlVWZ1hqbGVWbEpGNmxiSnVtcURmamM2aTRfZW9sOXpIUnlFdFFzZUlKYVBXdjNRcmtzT1FiR1Z0cXVYc3F0dTVsR3pLODhvVkJHelREZmJaZDdobFJmcm1yOGxUcUU5SmhnTGxtU3dWeUgkckFQSUNhNzFhcWRjNWt4elNUeWs1QVFuQzZNd000czQ4JE9BaEskbGtuaDNBeG5YQ3REVjFtR2N4N3dUYkd4TmZDNlJUalRlYzZ0RDQ2ZDRTNXZKR0FfcUE3Um56TXM5bG5qQVljOTVQNmxkN19JT2sxNU5VWUNLVXFlMENJU3M2Ijt2YXIgckVaPSJuWDUwa0h5ZE9xUFZYTnIzOWxCejB5WGpmazhSbHJZbXE1anFpSmRsTUJEMUx5SEtmX002WHNLenRDMHRTanFoanBSTkh3UTBIT1N3emN2MV9WMEQ5QlVtTUNoS1MkSXJNbnF1WlFOY2pHbHUyWHB1JFY1bXFKcW9XVWFWYTZxRXk3SFh5dndOT0x0bTEzd2JSQTVkR2pfekFVZDFZOVd3VzhJWl9HWlBnc1M2am0xeGl1SnZXdmhWJGVkWDZlSDBaNERiJFVTNEp1VSRxMUVOZnFWZjMzU1dSRU9DcDQxOWh5UTZzUyROdCRLdHlZNVhxSlBwbDdIbEhJX0tIbkw1SGhKQmFtdCRwX2NnJHFYNm1CQ09xNzUxak5OJHNSdUYkaldkdWQyOXdxd2RjV055R3F0M1pRSjVyMzVHWnJ1Wk1vOWVaVUw3X3FJQjAzOTBlcmttVEFESldzeVZLRXdOZjltZFhfN0tyaDFacURveF9GZWs4TDRQYng1cllPZW10UWdWN0RnbzFlRW5qWkpMTThHYTFFbHdUVWRReUdWT0xzRDRqY29wRFZSTyRmd0JOVjBqbUwzODBoUFlpQ2d0R2ZqdEpMdjJpNWw3cHFjMl9kY0tVb1hzNGRNJHhmWDFBck42dUFKT3lMU3NHbGZTelVMZ2lnbVU2T1RQb2gyN1dqY1hhRkxhYjFOR0lCTkVLZ2MwdlV1MFZpd182WEJrSjhta2QxdGdfb1liVDFsR1ZUJGtFNEtLcHJlaG56MTh6ajRLUCRmR0R5NWhKS2N6bVpDYUs3bzVEaEtDVm1VNENhb1Q5T2E1Yk1haUdUMFRQQVZrWG1idjlmTWFsaVRMellhRGZUQVhYQlBVbXh6aHBKd2lxQlR4SU9fU2NlZFFnZVJrZGVrME1FY3BZYzR0ZFNONWlFMDNPUXFQNTliNUticXI4WWhranU5dGU2R2lkRkpncVZKN1BHVndwaXgydkpNVVpNTkZKZ0VTYmNnUSR2JEtjb0IydHZaNzBRNE1QWXNwN0JRNndWVngxT0pQRjVzWl82VlhzMUdhRDdTZWhTckRWSndUTU1MSFE5NnE4RTJDUFBGTiRoaTRKTjRZNVFzMXhxUUlvWmtGUjMkcTQyMktWZEhlank5R29tWHZFWjFrSVBqQlFpbUhIb3k2MG5iOTRoUng1QVFWeUNQR3NwY0Q5UWtQUTZfV202bVNONUJOWkZLMlhWMTRPb0FWdjR4R3k5Rm1fZ2JRZjlOQXFXeFBNZDRsT2haRGZ1bDJHZ1Boc3NQJGVwczlCaEtJTUR0SEE0cVY1X3JfMjdPaXQxQUdhaURWc2NPeHRuJF9hUGNQS013MWlrcXNadnFUeWtpdjBlSmNqM0ZYYmkkTlprT2Nkc3lhYkRIX2hSNXZBejdldFAzYkhrQWFvWVJTVVRaMWx5WGczU01vdUNRaGJmT3lOYnBMM25IY2hVR09ndmJHJHlyYW9MWTRQS1ckVEpuTFNyMWJiWjRud0twbTZZUlFWTVVsVXBHVWpDYTRRRXJ2RTRLVGxKSUhFd2NkVEt1V0R2ZVpFaFFLWk5YWlc5UmVxbFcwZFllaFV5dFI2TlVKeEJYTEllMURZbUlCMkJIVndWc1pOSkRMNHlrVHFZWF96MTl2dWh2RTg3c1Z6NGxJdkdTSjJuTHgkcFhVTGpmcHZZMTU5eGI2dG1EaXh1bTdJN3g0cjA4d0U1Y3hoWmkwSWgka3Z6dnNidzVPWWFoajE3V3pOJEc3cFliODR0RDVzQWxxdHpfUzlUZXZZU1JUR291UTFBMnlqTzg5eDVlTVRneUdXVzlTTms0cWoxUkRUYlFHRjlHYWw0MWlBamZmMnNEUV9mVXQkazBfS0NJb2VVVlExOWJ6UEFxanFMWU9KamVSeGJ3QXpMMmhmQTZiR2FvSHhvSlYxX2FkOUFoY1dnaTZ4YWVnbjc5TEl1dEV6QVFmcnd5RVNnY1FSck44TW8kSUg2SmVBMnprYTJfQnE0U2dkVENVb1hCUzF6MENpVmVQVThEbF9mNSRBME1UR0ZYU3J1cThKWUVQdDZucGp6bXAybEJfRzlveURhQWRZcUloRW9BWjBidnA2YzB5Q00yd01kN1RjUElSd3RvVW81elpTUDJBVlZSY3lmM3B5NXpxWnBOT05TY0lSVEtrRHBqS2Z2cnQkMkVjWDRpc2ttNFhWWUtSaHRVSE1EYnZLSVgzTnBPTGEyUmNiQW1YQU9wd3M5Tk1yYVpNX2h5ekVZSnRtU3l2TkJuSDlRMUxUQUpMUEd3c2dqQmFwNXFkN0IwQjlKUURlRmg1YjcwQ0p0YVN6X202SE51TmxURU00MTNGZm1xV1hQUFhVbXk0STJaZktNandIWDNmTmtzQll0Q3pabzZJWE9pS050V0JPaGd6aVlmbDZsTmNsUEZGQlNXWl8kMmxCbyRxVm1YZ3pZRFhRemtGUm12bzdKMHh1cE45Ukx3NVpiMUtRNm9CNVRrd2xEWjM0Uk1YeXdFbWZPWWFScE5nRlJGZjAkVDZ2T2JxRjJfVElEV0dOc1pKRnQ5S0syX2E3RHFnbGZDMFZxQ0xfblpENlNxaGxSd25DRG5IVWc0aDVIZFk5N3h4T3JOV0lUTnFXWXdZTVh4VjA4b2RFQnlGZCRVWXJ3VEVTZERpWWVOeFB4ZHo5MGRoY0k0NGo3SDQwWHhIUFI4SG5Va1p4YzRLOSRMaWFQOHFSNFFkZlM2VGVPbXRObE41dUhYZ0QxWnE4NUx4bmh4dmtRdmdpR2RfSTF0NUxrVlZoYiQ1cXBnU3ZWVk9WbGlyQ0V0d2JrSEs1cDdxbEJENnNCRXRRSzVmM1RiYnVNdGdBZmY5X1RGNFJ2aWhSN2xJeUowejBDNzJiQlFLVkpNVmhjYkNFMWZ4dmJ1OHpEVVMwMHMkenJsTjRFUG5RemdGVnZHTyRjZ2Y5ell3TGxRV0ZUMXNiSEJ5TkhjUXokU0ZOVnFnJGhGbThCQkN4RXZvZGVoMDRGNTBhZWw3RXJXallQbkVVVjJrUlZmN1hxSHJQc3ZhVEFVblZXM2dhVFlsQk01Y2tJV0kkQzdEMlFTa00zRG5Da2xpYjF3NUNxUjlhX2o0OGJsWSRIbU9ZTFJSU0ZEem1PdGdnMFUyWG1xRzYxY2JTeFcyRlF6Ukh0Z1k0bHRKVGdzeUVvbVprMG1CNmREQ1NuMzBENFp5cWxHVTRKQmJpSiRzNmZaSmJ2RTBDQk1VMjBvaFU4RWEzVVZZRzRBTEYkQThCY0lhQUpZMk5UekVuWUFGRkcxY1BMakNpb2k0Ylc3Y0xzVzZfQVR2djNvd2JJU0w4UWk2OFZZcHFVR1QwVldJd2o5blQxWjBXUzl0WENoM0ZZTERBdnR0T29KeHlya3kzZGJmNU9NdU5lbko5bUc2SEw5VmJGbVJ5bld4UFUkWCRSNVBNMG5aUnV2UF9FZEUwOFh6dWFkU0h4UTBjNjZKNmhpOWpROVQ1VzllaEtjR2FRX2xtMkNSZW1SZ20ySUpOJDM0bHg2UHhkOWZ2azJfeHFrTDZLT09YJDdlQ1VxWmN4MVJwajcwQWFJWDhGMVRCQWRzS2YySGh0Vm5JelpNaGxEbHNXSFBKXzMyb1RnXzBXdl8zN3FjVFpMb3VJckgwVE0xVzBkX1UwY0tYclBtN1B1enEkWk9jMFZSbVc4VVVxV0l2aUFWX0o3NV9xVkltSkFLbGl6c2NYY3gyS2pmV01GVEpLR2FYa3F4cnVjYTRfUTF4Sk43WUx4amw0N1dqUTNvdWFBSGF6NG1RZURYN01TaVcySFQwaFIwOTlubU90b1R6RkxzdHFQY2cxdXBKUVVFR0FJY1RWalJucVVkWTNLV0FYaGlLa1JnajBhU3JJJHlwMkFBUkJYeE9CdGdhbTRqSEhnZUZkT3JxTG9lZXIxWE1mVHRUSUpud2l5QUZKSnJhaHU5UjVsaXpyTjlPVnBQQzN6Zk9ZODlnWGw3RmhrOW90YXN5TTRURXJ6aXZvRVpYazBTV0JINnpDTGRqcFY2Qzd4SFRpU3pRNUp0bHprZGZzNWdKcnRaVDhpRVlLJGd5U25UVGcwQ3Q2aWNaJHhnb0hQTFRrMGM0ZzJEbENnZTFETVdHU0xFWFJoZXZKSW1BbTV1SG5IcFVyb0VZdmxEVTloUnNubENaWUN5c1BVUzlOUUM0TERVelZpbGpBSFBSVGNLYnlCZG9HY0tLZFA0a1NmRklCWmQ0Sm9ib1doTFRGZHJYTFpIVzlOUEM5TXZIaHNKazZDUUlicUQzaEdqd3VvZzEwV2lUUmI5QzJ0VlpwbkxwTFhEWUtCOTdSUzEwWkdleWR5bmhYNDBCemRhM2tVUUxFVEpRY2JqUTFkNlNReUFZdFJnMzZMd29sRk1KOVNlYUlaTDhYdlNVTWQ0Z3h6VXZzcUo1c1V2QlRIVmNxJGN2MkhwRVFQZ0xDUmhDJHNZdXM0Z2JXbG9WcFJWTyRNUGZoNmlRTyRfbkZHMmQwM3VZTTkyclJSVG4wVkx2d3RVVnJLb2l1cGpjMXVNWmhFaV91RlVXZlA0S191TFdWVUdRMm55U21Bb2tDTE15RGQiO3ZhciBMWWw9IkwzQmlNbmJrT29KbllfUjdsbVlBR3k4ZVRQY2RNTkQ4NzlNblJ2WlFjWXJDaGRvUFhGQm1Ddmc1eXloWHNpbHkxJFk3U1h0aVZvY0czVTI0SWFfRk9QQlNIblZxZzFOczJad0lVOFdydHNyN01MRnBqS09MSktJMklsTVM4TyR6RnlYZDR6WmJFOU93NXNPcHQ4OWtlU1g1RTFIVW9SSWNtTllpQW9HTER4Qk9ya1p5TlhweEtuWnBrT042WHRFY3B1YzhuQnNPNThGMkpQd2F2ZUlickpfTkdRbXlOMm41Sno5dyRzQmVjalkzSjJ4ZVpnczRsNFlSQzFZUklZZmpZRFhSdnJuemx5NVFjeDA2dXk2dXFXRHZib1lsSUtDZk5FWWs1QldVYTNsdDVURUJOOUZ1UkFHSWwwQ2Rkc25HTEJEOXRqVHZGV0ZLdFBDWVB4MkdZNWZjTUY0QVVKbzlWZkZqdDdrVnQxWUJfb0hOcEQ2aGgyTkROZXo0aklXN0VjVjZIRVRNTVB5OEd2d25uOWdVSndFaG5XWmF0Q2FzYmZyY3B4UUxxeWZVb3lIVEVNV3E1S1dqaHdjTE41UFlTQm9iZVM5RDJTdnUxOHBuRWJ0Qlo2ak1iOWw1R2FWOThvaDB2cWI4RHp3Z2xWYno5RDduZUI5dkwiO3ZhciByaTU9WzEwOTcwODQ5OTksODQ1ODI1MzE2LDEzOTgxMDY0NzYsMTQ2MzkwNjg4MywyMDUxNjMwMTYyLDE2NjgzODEyNTYsODgwMjMxNDkzLDg2MzA2Mjg2NSwxMjY0Njc1NDAyLDg0NjE1NDg1NCwxOTM1MjMxMjgwLDEyMjk5NDIwODUsMTMxNDE0MTI0OSwxMzEzOTU2OTQyLDEyODE3NzA1NDYsMTE5ODY4MDk0MSwxNDQ3NjM3Mjk5LDEyNjE1OTExNTcsMTUwMTA1ODM4MywxOTY4NDAxMjIzLDE2MDExOTQzMzcsMTYzNDEwNTY4NCwxNDE3MTcwODAyLDE0MDAwNjU1ODYsMTMyODY4OTI3MiwxODUyMTk5NzgwLDIwMTc5NDEwNTcsMTkwMDgyMzM2NywxMjgyMDk4NzY5LDE3NjY0ODA0OTEsMTUxNDQ5NDU0MiwxNDEyOTcwMzEzLDE2MzI4NTA0ODMsMTEyOTAwOTUyOSwxMzMwNDc0ODAxLDE5ODUzMDM4ODgsMTUxNTAwNTA0MCwxMjY0ODcxMDI1LDExMTM4Nzc4MTcsOTQzMTQyNTEwLDE0OTU1NjIzNTcsMTE0ODg2NjM1NywxMjMxMTI0ODIyLDg5MjU2MTUxNiwxMTc5Njc2MjI3LDExMjkwMTg0MzYsMTE2MzIxNTE5NCwxMTQ2MDQ2NTM3LDE3MDIyNDkzMzYsMTQwMDMyMjE2NSwxNTEyMzM3NDg0LDE2OTc2NTg0NzcsMTA5NTQ0ODM2OCw4MjU1MDgxNjUsMTQ1MDI3Mjg4MywyMDM1ODI0NzE1LDE0MTI0NTgzNDYsOTA5NzM0OTgxLDEyODE3MTM0OTEsMTczMTU1Nzk5MCwxOTE4NDU1MzUwLDYwOTA0MzAwOSw5NDQ2NjY5OTgsMTg2NzIwNjIyOSw5NDMwMDY4MDUsMTEwOTY3NjY2NSwxMjk1NTk3ODgxLDg0NDU5MDkyNyw5MTE4OTUzMzJdO3ZhciBqczM9IkVrTGZUZ2xXcjVzWU95am1UOG9KYnJJdGFCNXJVRFZiSmpkIjt2YXIgak9kPSI0eWlMMTU1SXJKSGJRMWlWcDhrU281MTdQRzVYVTNNVkVjcnVCYURHTWttaHN0SFlkWEduVmZZU2lHQTJUcTFkQUxmcVA5ZXl3RTFramVIUjY4NUNTRTdna3U4ZWxSODBKQ3dueUpueWk5eUc5NEhIUEd3V3dyb2sxc2Y3cUJPTiQzZUpFUkg4V3JjYm9YMTUxanpuNWtVSDBoc3FQTTN4bU56akhJdlhkNlZleW5KMWxsd2ZBMmp4cENob1ExbSRTMWRYNlNRVXNYZHlIa0ZZU2tVdGhGbEpSRnRlSUVrdlBRUGVYVGF4VnZDYiRVVjIxNG5rdTRqeW1SU0dkM1g5eVNXS09GdktBOXRPZTlLSmpGcGR6MHk4VEVpNUR5NGtFVzZGRG5lREVzd2FpYzluNGJMcXh1RkZ4dFJJUzlHOVBxOTQ2MzZDNDZyWkFnNHZNUDhNbGlKb2p2eUdRTjBDNUFPMFE4QUM4RnZtc3MyRDA0M2c5RiRvWkxDSmM3OUREU3ROZzFFMllld3gyQ1A3MmJQN1lRZVRSQkxDWThQVE1qTnN2UWZYU21uMXViSUpWUEhQcE5qZEhfV1RwMVc2bHlBMHlPa2lwbXc2a2NUTWZDdlZwMGt4QTR0R1hEc3R1TGZZczdjNTY5MHZlMnlQcEJYcTdpbSRYNUVzdFE1bkdzelVacDVBbk5WMDFhUTRJUWtOQmZaQW9hcGJOam8kQ09wYkhCU21MJG42dUpuSjlhN0hTN1ZnNG13SmxYRkozbnY3TGFNOUE5cGZXOWhHVVBzSndEMHl2NVpqUDFZNGFYUU8xTjRxRF9Uc2NRNCRUWEtWOHZmcDBsZmhkTVJaa2x1SlFlZXU0ajNzVlQwU2ZRN0E3YmJ3X3pyTDJqUUozdDB2X2Q3Sm0iO3ZhciBiOGw9IkhVX21aSWhuY21BMGdjTFBmM3YxZmpGUkpwRmxreU9oWUdiQVV1cnR1QkQkTVBMZ0VHJHg1ZjZBNlk2Y0d4dGdVOE9PRDNKc25wNmVpX25NSlFXWmFVbHEyNzFER1R6UENNS2JZNll4X1RzSU5UcEp2M3FlZENBSkJva2VEWGMwR1dCYWwyVTFlOWwkTW0zc09lUzMzQWNJUnFTRjVucE8wX1cwZjdQSlY5MW5tRzhjazNPdUxTZkNnS3MwUDE5VHJaZ0MzbDdrS252c1VUYTlORVlNN0pxX3R1Yzk2NTNCQWpXYXcxblNMc2E0ODd0SE9mb25Xa0N4T1NTUVEydFhrQ3ZrTlpDVGpqRm9Md0sxSyRBVG5tVGtGOUNrQ2dQN0R4NnplJHQ2NHVMVTJiYjZtYk44aTFtSkZWaUJzZFVIQ2pkb3NlWWFTZkxIMEx3RU1iV194Ijt2YXIgdmNyPSJBZDBHMm5FZVNVTGxXQXJDdGg0RE40X2dnbmpfUTdzMGEzbWFhaDZqYVFBUGJiUEtsQ3R0ZF91RnVlVUVHcm9tYyQ5ak56V2drSUU1eXp6NCI7dmFyIFB3bD0iaVgxZTVCV25CaTNfZzZ0Y3YyJHhuV3E3MEJ6TGNZOGlLaWZnbFN1aEw5dGVBSHhJRk9oVFBRQ3dxV2tWTG5oaU1ZQkxvOUM5S2FTNTh3a1lZX3EzUDhOcFdXT3ZIaVR5cHJWSWZLb0RFdnNDdXlZaWxjQ3huMFokcVNoOXBHV2w0cHZLaTRRTnZZS0lZbWhwS0NzMk9IaTVMJE9iVDZscDdNOHZEcWhIR0hwbEtnTk5fMmU1RVZWekxPUTNPSkFEX20xWmRIeW5LMlFzR09RazBKVVdkWUxDeE9TVVFRMnR5a0N2a05QQ1RqajhvTHdLWEskQVRBWVRrRjlwa0NnUFdDeDZ6MDd0NjR1c1UyYmI0d2JOOE9DeHZDWiI7dmFyIEF2cz1mdW5jdGlvbih2KXtpZih0eXBlb2Ygdj09PVVyMCg1Mikpe3Y9W3ZdfXZhciBzPSIiO3ZhciBpO3ZhciBuO2ZvcihpPTA7aTx2Lmxlbmd0aDtpKyspe249dltpXTtzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4+Pj4yNCYyNTUsbj4+PjE2JjI1NSxuPj4+OCYyNTUsbiYyNTUpfXJldHVybiBzfTt2YXIgYktmPVs5NDY2ODczMDcsMTY4NTAwOTk5NCwxOTM2NTQ3NzA0LDExMDk2NzMzMTEsMTg1MDIyNDkzMiw4NzU5ODQ5OTQsMTc2NTAzNDA5OCwxOTM3MTM0MTg2LDE4NjU5NTUxNTUsMTIxNTAwMTk2NCwxNjY3OTEwNzQxLDgxMjg1MjMyOSwxNTAwMjA0MTE0LDEzNDY1MTk4NTYsMjA0OTIwMDE5NSwxNjgyNTg0OTM2LDIwNTQxMjU2NjMsMTcwMTg2NTgwOSwxNDQ4MjQxMjQwLDgxMDgzNDQ4NCw5NDczNTA1OTcsOTI5MzIwMjcwLDE0NjcxODI5MjUsMTI0ODQyMzc4NV07dmFyIFRPNT0iZWNyR3FjYWtJSkZEcjYkZWJzN0g1YjkxcWpBMWJCU3phJHJ4cXRFN3cxWk1vTmNYODlBWWdKQjFBeWZZWkVUc1FOUlFNWnJoZ2dEZjczZUpGUkFDd2R2OFVhWGZJTUFLTkJ3Ylc2czN2JE9oUzdheXpLWlk5OFZPaFRFcFdKNThmX1ZabWdaajJZZkVkRlJoVTRVR0F1cmpLam92N0ZKRjdMejhWV3JTRTIkQ1hoMHVWMXNmJDR0VEQzdWhWcDJtQ1NvNnpueVZwSjFzWkFDV1VzX2E3WjN4QSQ2RW5kSGFhQ1ZhakFta3R4MjFfcG5vb1puR3QkWDNxclFDcUVackJTOUZXJCRhRFVCQ3RRIjt2YXIgRldUPVVyMCg0MSk7dmFyIHJpcj0iOUY1bjh6dTljeW9WMlB4RU1wRlBQX3VZWHYwIjt2YXIgRHdEPSI1JEZfWWE5R1RneTZrMnkzVmwkZlNCeGVkTXgyeE9Lc0pxeHQ5bWp2Rl8kejNnRERpU2lJV055dTVqUU1vU3JpT3hCS3N2ekZFaFhRQXVqSzRWTmM2VHBPZTRrN0VfX0FfV2FncTJfbm9CU2tVTHRZQjNkbzRhVnVUdHc3YWIwdGU4UWp4UWtmbVNMYVpWYXlDaG5jU0hTUVRDSUxaSW9lRmtYQjN1TWgzQWNGNlFlVlNxWVhfWk5mSnZ5WUlzVm83S19PZDQ0aGhRSUNHaE1ENzdUYzdFekIyWjQ0V0R0ejFDNUdoQ2Rkd3hhckdNcXg2UU5FZjIiO3ZhciBweUQ9VXIwKDYyKTt2YXIgcnVSPSJmanp1QVByYzY5Vjk1aWREU0trJEUyUVFCUmNZeCI7dmFyIHRPUj1VcjAoNDYpO3ZhciBqMnQ9IjMwWGRBR2RoNFNDSDJXalFkaFY5aDJRVVJ0dGFEazY5bWU3M1RzS3BmeVJPY2ZXTGVRNUR4WE5kNER5a0h4dzBBN19pTDd2dDVBcGxZOVluXzR5TURmMzB4M25OSlp0NkM0bmJCamNaNXNMMXpuWTNOZnAyX0Q5ZnE4cmxSU0VzclM0OW96SnhHQU94U1N4c1FiSjhzb3BuRkIkOVNDNGZMVmNOWGIwTWc1VXEkb041bDI2SFZVeVFtTEFCZmxjR0F0eWl1MkhLZ0I4cVphUFdLeDBZJFQ4ZWttTGFmNUttTHpCV3NNcEVVUENWcV9FT3IxZ3U5NmNBaVFaTHJGeUNQWjlpMnZraU9yTDFyWmdySDJ4ZW1PZDlrenJGNmIwTUU3a1JWcUczbGhYekxqYWcyNVRsdlJ3Z3ZtZ3BTdXhURDFqZGRNWFpqYTFYc002MmVMRHczZEFzeW1tY0ZIdk5zWWRKXzRmaFFHMG55RWp3V2FXdE9XU2VFelNyV0xqT19vM0w2JDRtNEN2dnpiJDRGWG82R1pqaGp3Y1BXXzhfNVFQTTRROXNMbnJaMndpSTNQZVBxZnBjbGpSTGtvZl9TbGJWR24wMVNUZmcySlVZZXFJbjNuTTJFZVQ0SHBOVmVoVWhZcWxQUWsyTURZb1UiO3ZhciBaMGo9VXIwKDQzKTt2YXIgUDg5PSJjNTBIc3ZVYVdod2JsSnJZa2NTYmdRMnFvVG9kNk1UVHRQSWVLMkUxWDdhREJqNlRXcTdYdEJWQkRBTW9mTFhDdjYxa0NSOHlFeXowQmQ0eWF2WnkxbURqbURPWWRIcEtib2JoVTckOTdCZUM2SHI5UmVHc2NEVDhibEhqTjFGVzNXRVNya2RBc1JjZlBoNGxaMDhrX1ZNVGZOS1Y1JHg4cHkzUnd6WUpYdHBMVFlvMUNKX05UOFowSVRldlUzcmNNaUNvdk5xOEtBcEtWa2wiO3ZhciBrMzA9WjBqK0ZXVCtweUQrdE9SO3ZhciBrMzBSPXt9O3ZhciBqbWY9IkFkMEcyWEVSU1VLbFdBckN0STVfNEhOTlR1VjZkQUIyVTF2V1U5S0FSMnkxOGtqcnpxZ3lVbkVrQl9aQlVWTmxUTjVhdVBtYlNvOXcxdXlNM3NsYlVUb293aDZKcXdhX0JHWkdYcW9ZQW4xSHBPSktPNFckbnNPcnpkTUdHYWxYX3JZeGFxeiRSaUduZkVqZTBEOXhPZmRXdUFjOFlSY3RkeG1Wb0FXaFVzekJycVdJeTI5dDckeFA0bmxVdElfeHZFcGVlckJCbDV4N1RZNExSb3d6eHpsbzYxVHdBbVQyZURtM2gxUFRuU1VETjFoUFB5OUtmOUNkVWtoRnc4M05KYktHVFVNWThhNnVwY2ZrbXZLWlkkRFAkeHUzM0d6bWVvMGpvT0hiVTBRTEN3bXZhV0NzWmtrNmh1aUJLUyRyQ0pDOG1TWmhFMnZxWnA3MXlxVGtIZXJsZ2FDV3dqVm9uMDdSalEzNnd1NlVFJG5IazhPZXA4OXBYeVZOYjZMaTM0UmNWbEtmUW1sV2s3R1k4TnR2ZzNONXpLY0JKeE9RNmZLUE1QaVFORW1WWiRkT3AybUlHWGxId0lySW9GNkxCVEtfTjdPZDVkSVZHVjVtTV95T0RycTBuUm1rS3BhRTVCZVFwdk1COEhmQmVBeHJqQnEyJDlJa0tPdEFQa20zIjt2YXIgVGFCPSJtR3JlWjVwNzh5WURUYnBETHZyRXVRSXNGZng3SERveDFoMlU1S3NTVmp5ODhIVWtMS0ViNjBZJGdVYW9xU1BmWEZ5WFJMY1ZRR2RySmVzMzd2YmtXT1RjNjd1SE1jTXdFaVkzaWE5eVB1ZzgxUjlrRiRQYnl6aiREQnNkTG1UWGFfRndVTDRsR041SzR6enZsYkxNT0duMFpuUjBpT2VQdm9jZzMxSWpSVFoiO2Zvcih2YXIgaz0wO2s8azMwLmxlbmd0aDtrKyspe2szMFJbazMwLmNoYXJDb2RlQXQoayldPWt9O3ZhciB6cWg9ImFXYkExZDNBdWE1R1A1TXVROFJvSjgxb3lOUE5MUHJJNUlKQV9Gd1FSNUh0VTFDa1NQJHJZeXkkcXFCbFk1Z1VPM3RSSWQwR1hrZGpFJExLaE10bzZuOUl4SHRjajV4Ijt2YXIgWHVyPSJBZDBHMm5FOFNVSGxXQXJDeklnVERJeEhGY3RGaHFLSktRIjtmdW5jdGlvbiBNUGcoc3RyKXt2YXIgVD1rMzBSO3ZhciBuPXN0ci5sZW5ndGg7dmFyIG91dD1uZXcgVWludDhBcnJheSgobiozPj4yKSszKTt2YXIgaj0wO2Zvcih2YXIgaT0wO2k8bjtpKz00KXt2YXIgYT1UW3N0ci5jaGFyQ29kZUF0KGkpXXwwO3ZhciBiPVRbc3RyLmNoYXJDb2RlQXQoaSsxKV18MDt2YXIgYz1UW3N0ci5jaGFyQ29kZUF0KGkrMildfDA7dmFyIGQ9VFtzdHIuY2hhckNvZGVBdChpKzMpXXwwO291dFtqKytdPWE8PDJ8Yj4+NDtpZihpKzI8bil7b3V0W2orK109KGImMTUpPDw0fGM+PjJ9aWYoaSszPG4pe291dFtqKytdPShjJjMpPDw2fGR9fXJldHVybiBvdXQuc3ViYXJyYXkoMCxqKX12YXIgdkl4PSJ5YUJGOXZ0STR4MjZDdDN5Z3gzWEIyYXVkaVZKMCR6SEltRmIyX0hlS0tnRzgySUpHZzdvWHJRZVhUSFhMIjt2YXIgWEN6PVsxMjgwMzQxNTYxLDExNzc1NzE5NDEsMjAzNDM4OTA4MCwxMjc3NDQ5MDQ0LDE4MTY3NDkzNzksMTY4MjQ2NzYzNiwxNjY1MjI0Mjk5LDExOTg5OTM5OTIsMTgzNTYyMDIxNSw5NDc1NDU5NzAsMTM2NjM5MTE2Miw5MTAyNTYyMjYsMTMxMTg1MjQwNCwxMTk2ODk3ODY2LDE0OTY4Njg0NTIsMTI5NjY2MDU5NiwxNDI5NDg4Njg5LDE2NTE3MTY0MTgsMTM4Mjk1ODkzNywxNDMzODg1Mjk1LDg5NTk2MDk0NCw5NDUzODc4OTgsMTkzNjYxNTAzMSwxODY4Nzg2MjI0LDE5MTcwNzIyMTYsMTE4MjQyMjEyMyw5MjYwNDIxODMsMTMxNjUxNDQxNCwxNjM0NjIwMjUwLDE4MzU3NTYxMzJdO3ZhciBiaTk9Imc4UWZ0WnBmY25QeE5BTkVwOUM1UFZ5NFF3SGJkMmlIMHdrT3VDTHpvTTllS01saFMzVFRBQWh2TGkwWXhHJE5CV2ROVFMkTm5iTlBtY3BRQUpOSk9jY1Akcll5eSRxTzRsTjVnN08zdFJBZDBHWGtLbVdudWhrIjtmdW5jdGlvbiBzYk8oKXt2YXIgaD0zNjM1OTU5NjYzXjIyNzQyOTk1Njg7aF49QXJyYXkucHJvdG90eXBlLnJlZHVjZS5sZW5ndGg8PDI0O2hePVN0cmluZy5wcm90b3R5cGUuY2hhckNvZGVBdC5sZW5ndGg8PDIwO2hePU1hdGguZmxvb3IubGVuZ3RoPDwxNjtoXj1PYmplY3Qua2V5cy5sZW5ndGg8PDEyO2hePUpTT04uc3RyaW5naWZ5Lmxlbmd0aDw8ODtoXj1wYXJzZUludC5sZW5ndGg8PDQ7aD0oaF5oPj4+MTYpKigxMDU0MjI3NzczLTk4MDk4MzI5OD4+PjApO2g9KGheaD4+PjEzKSooNDE2MzQ0ODk2NF4yOTgxNDc5ODAxXjEzMDQ1MjE0MTQpO2g9aF5oPj4+MTY7cmV0dXJuIGg+Pj4wfXZhciBESVQ9Inc3d0FFNFZoVXJEbTVpYnlLS3JEeXdQSkIyd2tGT0xQZm1ObVM2blZ4Q2NvMHpvcDRHeHg3N0g4ZlpsNV9HRURxbyRuQWdTSzdfZUokN3dWJHJRUHJSYjRiNzRpUVhmbXlTcWFpVENTVEhmOEdMSDBtRkoxR3JNeW9NOEdCX1lrNXJBcHY1YThkSjFEdUozdE1ISEx4RFhCN0FuUEE0ZEN6UlJJbU5YQ1d4ZXVPTks1am9OUXZBRGlLNkJMalNMUUw0cEY0cVFFNm1qbzFERERiQ1N2NXNuTEhSUEdjM2RfSEJzQU5qdDhLTGl2R1FHNFc2RHFGMDlXZmljZUFGRjJhNFZjYUhKWXhoOFN5ZEt6b0hKc2RLVjRnckdQc0JHdGlSQjY4dnhHVDN4dGZhTmRGWW93M1VaM1FPMFl2ZzhIQ0hoVnNJMGxKMHpwNmFRZkFHNmNWT0pwZEpEVEVTQmN1akZQb25YSEdGbE1lTUhUQ2p5NUl4ZUFnNlNZZzB2ZkFza29NNDBjVWdCWXhURXhNJG44SUs3bGZENUE1eFd1b3ZRX1pINEhwbDRaU3BsX0kwc0pfbDhGQ1ZFZ0pBZkhZaU5qY2RKVndObU9HSWZuck9DcllGOU9MTFBoTlFqZ2txVktNZW1HQVp2eWY4WUNOYW1kQmxPQ3RpZiRqYUFnVWFCVzA2bW5XTGtvVHJhTlVXRWp5TnluMVNnVDExOTh1eFlDR1k4R25iVjBXSVhDNDh3RThVOV9MTVYkNDhQNTFidHBaV0l1aDU5dVh0dWh4dE4wUGg0JEgwRmdnMnRuenBfVmVjSmlva2R5VnIxTjhxblNLUzRTUEdIV0xEWk5IWGw2Y3JnS2VLJDU2dzBwZWhKM0pPaU1tV3BueE9KeW56N3pZRzdGQllwMGJGUmxxQWZpSFB4amdobDJ5RGM3T19IaEMzRmZVVzBIN0VhdGdXZnJaOXl6ODdGYTZJUjlDOEhuX3ZfRTNEbF9hc3VyQ2Ffcmc2VSRUdXN0a1d0REkxa3RyTmhROXFmQkpfXzB6amNOa1ZQNnRJcktxcXViaUlUR3g5TXZXdnpXWFlJM2lyTmhfMDhONUgkOFQ5U0Mxa043TTVWbzV5RWNGaGdoNFU4TVJ2aVNfWEJZVFRxVnFiRG1US2dzVWZKdjJ6ZkV0STVmb2xpWV9ycDVfb0J3aDdMMXZTalp0UEtWS19hMU1mZlVFV3I0WGFWc3h2alhGOXRENGxnQ3JRTkptYmQ1eHlDJFRtMUlVX3NITE51OXBscUFhUlRwdzNENU9Cd2l1NElDU2ZZOXBVSHhuM0FyUlNreGpQaDRGWThXZiRuaHNnZWJvZV8kenNnRVZiOTZlZUJWMFRwejRDY2Q1NDk1WjBDMmZHeWVUSGFfRWZ6MjFpZElWcHBtNVZJbGdPY0I2U3p5XzVEajhjVmtRVDE2N3c4ek02U05id1hPekQ4VE1jazlpU200X09IUU1XOFUyX05RdG5pT2xBZ0tueExFb25JN3BSNXJyYnVMNUNydndEaU1qU0Zud2RPVHlXM2taOUh5OHM2bUxhMzByOUJpalNsOFdBQWd1T1dCNm5OYnNONzJQMTQ0b2JsMmsybndkRllncmd1MHhJOVBYZzhRUVBTUVM5ZDBaRDRhVHIySG9UTVR4bUZoUkJhckE3VSQxaTlIbDIkZGNjak44ZFZOSWNLM3MzRVdCc0skZjJUOWZJWlkxSWszQ0JkUmRfMTBqY3U2eDV3dXZZNWpacUhsTl9MUzVpU0Rqb0tETDc5eG16R1A3VWZMM3ZPdTg4bkQ5WCRHYlgxckZBX190OEFOSzZkek1rNGtvQ1FEenEzUWhMNiQ4d0NJUU52Z3lsSWFVM29HJEVicCRzbiRNTDZSWEVQVDZ3QVhoVVFYMXVuRXlsJDRIb3pFOGE3Q0FBbjdfYiRVQkYwSkt2UVhFTm0waGJ4JFVoTkFuTUVpdUdqVloyVUl6a010eDdZUzV3eTR4QU53Z1RiUnpXVkVHcXZ4WEVMUzc4Wk5oVmJGclRwZWZUNG0kU1p3X2cydzdhX3JocUtEOTlYNklEWG1NTUpvOFdDWTkwUEdWc1d1cTB1c015aXBuTHVjRFZUS2tZJEpnRWdyR3I2ZWJZbU45ZmdTR3VsMFJqaDhlMWttMTJxTXZOS3BmY2xoWmZTUWRST1pmVDJNMnJYakR1dmVqbmJTQnczTUlJJE5pZXc0bENqd0Y5b0txYTlQR2FqTnZoaVJOdDlxQVZxJDY3X19CcTJOb0J3cVhDRFRJVW5pVFZrUW0zdXc0TlFwZ3F0SzBOemxPVG1FMmZvJEg3ZmxZMHA0ZF9PUzR5MVdibmpVX2s2aThKVl9fR0xMTTVyWldKdEdRSWh4TndJOENuUW0wWU1pU25hUEdpV1RzdW5fakJXVTZuMl80WW5zOVVaUlBqUyR4cExFVlJCNEZCVG9rT1dxZDVzNk4yVnlRb3diNWR4YW4wUXVNTFQxMk1odHAzMVowWkxQNEdlb3Y4VEVWdVFpdGVvcUVnRnZzRktrN1NxZCR5OE5LZFhfUGw5M3okX0JaNVdiZTdkM0dWJEZPM2dTZXZ5cEx6enhWNjVwMnVBOTNwRjFOWGlUNXhydG1FMURyUUJORlNKM1dJMEM5OWFUeFlsSFZpQU1jb1EyQ2RfcUNKcUpkOG1wWFVSdDhBMnYkT0NLbDhPSVpzQVVGZ1o0UUZPSDJrVEtIUjNuUEplWFB6YnRIUFkxRXEwSlFhb2UyQXhoRFp6YXh1WWdNM3JiQSRpMzJuNnJJZ2FoRTJ5aDNsX3NTMzY0MmhQN05FdzhMTyRSTlpUYlFNSlFOMjRxSWZib1V5ZzhpNEFXaVo1VUxWRUp0UVpMbDdPNWt2SnZ0UXduSXNtNUZVRkJfV0N4WFhVeWtwdFpxSWtwNlNOSkVzNXR4dW5FbGNWOEFGaktKQzY5bl9Sa2JOel9Fekc4cnpEaWE4bDFzJGFCSkVySUo3aUoyNktXX2RTazNkR0JYVGlabHF3QjI3SlM1MmNBN2tIYTIzOGJ2RDU4dWY1NFNWZXNBY3pCTWxBd2JZX3lyVTJ1ZThRNWdFc29SMnZndFhQRG4wcHVRc1JyMzNFMWx3QnZwWGpMYiQyWTNwNkp4dUVsdjRMbENIdEtTamJUZVYwZDdXcDJUV0laYjF1amNyMjlMVzNJR3ZWbUk2Wk1YSExCOEJyYXZNTEE2RUdOcHokdE9tQjh2XzloV3IkNXpPRGFpJGlDbzZjT215bGRUJFFFZENDTVk4OWJSOFFaRUVKSUMxb08yV1UwV2RPS2Z6V2U4RmE5U0pUc3dOJDhyZE1QNmpuOEREeDV6Q01NZHlsSVVEZVlrZ3lnOXlIcGdmWTFJT0tteTBjQUo3NzE3aW5aV2dlMUlNQUxIRDE5ZUQ3T2xOTTlITktnRzcwNXRnJGw5Tmh3cUxZY1hRVjJXUTZyaG5ZJElrV294bjFFTWpzOVlKUzdIenVLUTBGTTlmYlBZcFdqT2Y2WWpQQWExc3JvTjkkdndtOUxMMHBST1QxZFEwMHFpY05iZzZETTFNeVpoUGtRWmFlTXRWaUJjZGFQdmEkVjRBVWVwX3AxWnh0WWtmRUFFRnhfbklpVXRHMktRY0dudHE0JHVaQjBGbjR1VmFaY19hdlQxU0R1WkluaDFWWlNwS2p6STJFQldkTDMyQ292Vmg5RlJ0WUtiem1jJHNWOWF3MjRPeFhDY2RtMjFKYU9RSzlCTUl2cnlEaF9uMHJwOXZmUDQkdGpXU2dWdkZoQlZQN2JTciRVTyRnQ3V1VW9BdFNtd2gzSEZPU2hzSEcyY1dzampIM1NCRHJfOFhPTW1ZY1VDd29mMmxBc1RKU01USFh6YjFWX2FxMGw2U21DWXphdzhsd1lNOThBc0xieFk4aVpXQkM0ZGNKaWtJYzRUbVF6SFczWFdpZFlyNFZ1NzlYNFJyeUZqendXVldPRmt1M09wNTZ4ZmJ1OEZWT0Q3JGZjeFVSYkRYY04wNWYxSlExWlRLcEtoWHFNNlpsVUFKUjlhb3ZaT2FLTGw4c0FFJHliRFBDTm9vTCQ1TV9hRVdSMGd0c2lpNHhyX3ZkeEtHMm4wJGdwOFlXMVR6T1hwbG9CYTlZa3ZvRDBhaVVobm56MXNOamFKR3NRVnBwV01VejlHR21XR3dmbjg1YXZWMV9GR1FkejFKUTNERDFyZUQ1QWd3QXRuTWRRakNKSCRlTGNVRk1adGEyV1p4ZUIkJFdKNnB4czhRQlZOSFZ3S2F5Rlg4TEhoOUNGeFJjTXNVZ1c0bWI5MlVpN0pOWmRwczVzN09KcUZZc1AyRE9NNWVYWkdzVW1jZGtkM2s1RktDJHBGQkdIaHI5UDV1RFRmeThNRmo3TnEkU2lOOFJ4T2p5TFFtdTFYTXUyMzZPRVBfZXZ4U290bHhZb2NfcEZtY29aVnRyM3gyJEVjejd3T2xlTGtyamNJTU5POE94WnRVZkNuNTZmUDlMV1hjSlFjZEtlZjJHZ29kc0Z4ZGZTcU5EZ1JZcXdEVTlzS085R2NENnF2WEx0ZWo3UFVIOWpIWFd2V2FlRW9wV0R2SzVMMlp3RjZTd3BHOFVUb0o1SjVma0ZObzVDNXQ3bDlXZlIkSU5lOEl6eVV3VXJhd28zZE4kZFFFME1CZFlJd3FKaFR0NGFHWERDRmhaczNUa2tGT2Z3bEVWaHVNTzFNN1ZiYiRVWnV4R3J4eUFjV0haRDRnYSRPcHpLZWxCaEFsaFQ1eE9JMmVkNDFkT3pvWWYweG5ERzN4X1VVSmN3QjZ0SFZScHgyR3d5R19jRzdnZGdWWUZuNzB3R0tQYnd1YUdtVm9FNzVtdmZBbTZYT0Y4JENPQlVidE9nVkU0NVg4VTZLRDdCeF92Xzh0X01uVXAzNTNnZEo0X3EzMmNDTDFrQko5eUJ0V002YkNIQ3NFYkFsdkRnMkYwMmhkcWNfbGFiSFo2M0hXWFFla0pDQ29pemkwS2VsZkFyTzhyZXl2OCRGTlBYdjhKY2xNOWhnNHpiWFo4NEFvMUxPZGxua2M4RDcyMnYkVm9DbFRkcmNRQ3R1ODdGOEpnQ1ZMVGF5eklxSndRMW03eDAyeEY4U3NaQlhyRzBkS3REOUFCMjNQNk5tazZkRDVUOEpRcnkkaHZEVGRsd0xoQnhjVDNNOXVBNzR3U0FNUWVEY2pfaWhNWUFUS2pNNiRvTnRGODBZMUNEakV2TTVTUjF6M3R2bXF5TnZEbnpPVnJURiRUenNobXYzZWF3SUdWVFQ0RlFybWF0VW9kWFhGZ01KZktENXZRaVh1YWFxTUkwbTd6UzdFaE9OZXNvcE9MVG1qYTZpVnJHejY4TiQ2NkRYaGskUVpWSGV0RW5MYUZyOGlFZ1l1dmokZmlDN2djaTNKVzNSaktVNmFHd3ZQS1I4MVk5M3BiTGQyUm5aeDVxeERPcHV2Mm10d1d6Q3JkcDYiO2Z1bmN0aW9uIGtGTyhkYXRhLGtleSl7dmFyIGg9NDI0MDM3NjMzOV4yMTA3ODc1Mjg2O2Zvcih2YXIgaT0wO2k8a2V5Lmxlbmd0aDtpKyspe2g9SXI0KGhea2V5LmNoYXJDb2RlQXQoaSksMTY0MTA2Mjg4OS0xNjI0Mjg1MjcwPj4+MCl9aD1oPj4+MDt2YXIgb3V0PW5ldyBVaW50OEFycmF5KGRhdGEubGVuZ3RoKTtmb3IoaT0wO2k8ZGF0YS5sZW5ndGg7aSsrKXtoPUlyNChoLDQxNTE4OTY1NjheNDAxNDk1NTQ1M140MDU3MjIxODQpKygzNTU3MDA4NjMxXjM4OTk0Nzk5NzYpPj4+MDtvdXRbaV09ZGF0YVtpXV5oPj4+MTYmMjU1fXJldHVybiBvdXR9dmFyIFBBVj1bMTY0ODU3MjI3MiwxMzgwMjA5NzcwLDE3NDgzOTE1NDMsMTcwMTE5NjYyMiwxOTgyOTQ0MTEwLDg2MDM3NTEyMiw4NDM0Nzc4MTYsMTkzNDc2NzkyMSwxOTM2NDExNDk4LDExNjAwMTIzOTUsMTc0OTkwNjU0MywyMDAzNzEyMzI5LDIwMTk5NzA2NDAsMTQzMjk3MDgyNiwyMDUyMjEzMzY0LDExMjg2MjE2NTYsMTkxNzY2NjM2OV07dmFyIGpFRD0iZVQ0ckFabEVIbXhkcW5Ud2RCSF9kS2g5ZEp5JEZkIjt2YXIgdkFKPSJ1aEkxejNaJFdiX3dPMSQkMFd5bGVmbjNkODdmYndTa2JxRXhHTUs5eDRzVlI5cmR1UVpaUERmXzN2ajBYajhOeHFVaDZvZnJqNXl3ZkZfWmhnYk1CalFjJDBDS1d1ZV9ncmtJZnF6QVFCeW12VHhIelZ6RHhvZlRpSGpIRldGY1dZc1NqZE1mSkhpN0NBZlg1bWpPNzlqb3M1SHFMQmVDSHZFNHV6aXVfXzN3QlBKMGckY0RTWkN6TXlTeHVzc2h6MnZyblAiO3ZhciB6dVI9IjdLVkpfUDJGcVFleHpGVDJnbFVZRHRtTFZTemNqMDRTQ0JLUElPc056Yzh6WWZBJFdDT3ZMeUdYQlhZajRrUTF3ZFJycUxvWGdsJCI7dmFyIFhVYj0iQWRGRzJuRTNTVUhsV0FyQ1NoZDRWSVp1enZuRGEkV0xWMHhOYjZBYWc2aE5Odmx0V252ZlJBMEZPengzZUpkbVdISmFpbnVfa0hhb0lCMmQ4ODg1Y3hhRUtCSG55NnUkcVkiOyhmdW5jdGlvbiBzTncoKXt2YXIgSWhtPTA7dmFyIE03Uz0wO2Z1bmN0aW9uIHdKRSgpe0lobT1JaG0rMTtpZihJaG08PTIpe3RyeXt2YXIgWVBTPU9iamVjdC5rZXlzKGZjKTtmb3IodmFyIElaMD0wO0laMDxZUFMubGVuZ3RoO0laMD1JWjArMSl7dmFyIFVWMD1mY1tZUFNbSVowXV07aWYoVVYwJiZVVjAuaSl7Zm9yKHZhciBZRGU9MDtZRGU8VVYwLmkubGVuZ3RoO1lEZT1ZRGUrMil7VVYwLmlbWURlXT1VVjAuaVtZRGVdK0lobSo3JjY1NTM1fX19fWNhdGNoKF8pe319ZWxzZXtpZihJaG08PTQpe3RyeXtmb3IodmFyIFVIbSBpbiBZM3Upe2RlbGV0ZSBZM3VbVUhtXX19Y2F0Y2goXyl7fXRyeXt2YXIgWVBTPU9iamVjdC5rZXlzKGZjKTtmb3IodmFyIElaMD0wO0laMDxZUFMubGVuZ3RoO0laMD1JWjArMSl7dmFyIFVWMD1mY1tZUFNbSVowXV07aWYoVVYwKXtVVjAuYz1bXX19fWNhdGNoKF8pe319ZWxzZXt0cnl7dmFyIFlQUz1PYmplY3Qua2V5cyhmYyk7Zm9yKHZhciBJWjA9MDtJWjA8WVBTLmxlbmd0aDtJWjA9SVowKzEpe3ZhciBVVjA9ZmNbWVBTW0laMF1dO2lmKFVWMCl7VVYwLmk9W107VVYwLmM9W119fX1jYXRjaChfKXt9dHJ5e2Zvcih2YXIgVUhtIGluIFkzdSl7ZGVsZXRlIFkzdVtVSG1dfX1jYXRjaChfKXt9d2hpbGUodHJ1ZSl7SWhtPUlobSsxfX19fWZ1bmN0aW9uIGszZygpe3RyeXt2YXIgWXJlPVVyMCg0NCk7dmFyIEVIaT1bT2JqZWN0LmtleXMsT2JqZWN0LmRlZmluZVByb3BlcnR5LEFycmF5LnByb3RvdHlwZS5wdXNoLEFycmF5LnByb3RvdHlwZS5zbGljZSxKU09OLnN0cmluZ2lmeV07Zm9yKHZhciBZSlk9MDtZSlk8RUhpLmxlbmd0aDtZSlk9WUpZKzEpe3ZhciBnWEE9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoRUhpW1lKWV0pO2lmKGdYQS5pbmRleE9mKFlyZSk9PT0tMSl7cmV0dXJuIHRydWV9fX1jYXRjaChfKXt9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIEVmYSgpe3RyeXt2YXIgWVRVPW5ldyBFcnJvcigpLnN0YWNrfHwiIjtpZigvLS1pbnNwZWN0fC0tZGVidWcvaS50ZXN0KFlUVSkpe3JldHVybiB0cnVlfX1jYXRjaChfKXt9aWYodHlwZW9mIHByb2Nlc3MhPT1VcjAoNTkpKXt0cnl7aWYocHJvY2Vzcy5leGVjQXJndil7Zm9yKHZhciBZSlk9MDtZSlk8cHJvY2Vzcy5leGVjQXJndi5sZW5ndGg7WUpZPVlKWSsxKXtpZigvLS1pbnNwZWN0fC0tZGVidWcvLnRlc3QocHJvY2Vzcy5leGVjQXJndltZSlldKSl7cmV0dXJuIHRydWV9fX19Y2F0Y2goXyl7fX1yZXR1cm4gZmFsc2V9dmFyIEFsST1zTncudG9TdHJpbmcoKTt2YXIgSWJ5PTIxNjYxMzYyNjE7Zm9yKHZhciBrMUc9MDtrMUc8QWxJLmxlbmd0aDtrMUc9azFHKzEpe0lieT0oKElieV5BbEkuY2hhckNvZGVBdChrMUcpKT4+PjApKjE2Nzc3NjE5Pj4+MH1mdW5jdGlvbiBFdkkoKXt2YXIgb3IyPXNOdy50b1N0cmluZygpO3ZhciBVOTA9MjE2NjEzNjI2MTtmb3IodmFyIGtKOD0wO2tKODxvcjIubGVuZ3RoO2tKOD1rSjgrMSl7VTkwPSgoVTkwXm9yMi5jaGFyQ29kZUF0KGtKOCkpPj4+MCkqMTY3Nzc2MTk+Pj4wfXJldHVybiBVOTAhPT1JYnl9dmFyIFlsbz1bazNnLEVmYSxFdkldO2Z1bmN0aW9uIHdKdygpe3ZhciBFOU89MisoTWF0aC5yYW5kb20oKSoyfDApO3ZhciBzWkE9ZmFsc2U7Zm9yKHZhciBZSlk9MDtZSlk8RTlPO1lKWT1ZSlkrMSl7dmFyIFVqRT1NYXRoLnJhbmRvbSgpKllsby5sZW5ndGh8MDt0cnl7aWYoWWxvW1VqRV0oKSl7c1pBPXRydWU7YnJlYWt9fWNhdGNoKF8pe319aWYoc1pBKXtNN1M9TTdTKzE7aWYoTTdTPj0zKXt3SkUoKX19ZWxzZXtNN1M9MH1pZihJaG08NSl7dmFyIFFGNj0yZTMrKE1hdGgucmFuZG9tKCkqNWUzfDApO3ZhciBNM3E9c2V0VGltZW91dCh3SncsUUY2KTtpZih0eXBlb2YgTTNxPT09VXIwKDUzKSYmTTNxLnVucmVmKXtNM3EudW5yZWYoKX19fXZhciBjVFE9c2V0VGltZW91dChmdW5jdGlvbigpe3dKdygpfSw1MDArKE1hdGgucmFuZG9tKCkqMTUwMHwwKSk7aWYodHlwZW9mIGNUUT09PVVyMCg1MykmJmNUUS51bnJlZil7Y1RRLnVucmVmKCl9fSkoKTt2YXIgemN2PSJ2OSRBVmU0VzNEV3h1eTd1NGRweWVGa09ZZHdFbnAkNHhROWUycHBlcmxFYngyRWFfTWFVZ1pMeTV4dmFJZ1NFRHZadVhzcVR3YVlIb3llMExITUF1JDZ1VEZOQjF4OTFnU01vcU5ZdHFab0JneFlhZnlVeDB3Q1gyeXU2TW9LcTRnVjVMSkZjZFplSnpubFE0Y2VHb18wMzVTU1pZTGhyZE42eV9Gb1F2cVRVZFZ1VXc3VHBfZlFfM3RXTmx6T3FNUzFmWlVBeVVuQkJOYWdkV2FBRzRjaXdDIjt2YXIgRFdWPSJ6dzRPT1l1NzlwVzFrd3pzVnJKcWJfb2VUcFpMdlRsYVg5d3ZBaDJ3WVVFaGVianhZNmVNdmlsYkJDTCI7ZnVuY3Rpb24gd1BpKGJ5dGVzKXt2YXIgY1RrPXtnTEs6bmV3IERhdGFWaWV3KGJ5dGVzLmJ1ZmZlcixieXRlcy5ieXRlT2Zmc2V0LGJ5dGVzLmJ5dGVMZW5ndGgpLE14MjowLFVmTSgpe3JldHVybiB0aGlzLmdMSy5nZXRVaW50OCh0aGlzLk14MisrKX0sdzFtKCl7dmFyIHg9dGhpcy5nTEsuZ2V0VWludDE2KHRoaXMuTXgyLHRydWUpO3RoaXMuTXgyKz0yO3JldHVybiB4fSxRZFMoKXt2YXIgeD10aGlzLmdMSy5nZXRVaW50MzIodGhpcy5NeDIsdHJ1ZSk7dGhpcy5NeDIrPTQ7cmV0dXJuIHh9LFVkYSgpe3ZhciB4PXRoaXMuZ0xLLmdldEludDMyKHRoaXMuTXgyLHRydWUpO3RoaXMuTXgyKz00O3JldHVybiB4fSxjN3MoKXt2YXIgeD10aGlzLmdMSy5nZXRGbG9hdDY0KHRoaXMuTXgyLHRydWUpO3RoaXMuTXgyKz04O3JldHVybiB4fSxndG8oKXt2YXIgbj10aGlzLlFkUygpO3ZhciBhPVtdO2Zvcih2YXIgaTI9MDtpMjxuO2kyKyspe2EucHVzaCh0aGlzLlVmTSgpKX1yZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEpfX07Y1RrLlVmTSgpO3ZhciBnUDA9Y1RrLncxbSgpO3ZhciBNUnM9Y1RrLncxbSgpO3ZhciBBcEs9Y1RrLncxbSgpO3ZhciB3N0c9Y1RrLlFkUygpO3ZhciBndEM9W107Zm9yKHZhciBpPTA7aTx3N0c7aSsrKXt2YXIgZ3h1PWNUay5VZk0oKTtzd2l0Y2goZ3h1KXtjYXNlIDA6e2d0Qy5wdXNoKG51bGwpO2JyZWFrfWNhc2UgMTp7Z3RDLnB1c2godm9pZCAwKTticmVha31jYXNlIDI6e2d0Qy5wdXNoKGZhbHNlKTticmVha31jYXNlIDM6e2d0Qy5wdXNoKHRydWUpO2JyZWFrfWNhc2UgNDp7Z3RDLnB1c2goY1RrLmdMSy5nZXRJbnQ4KGNUay5NeDIpKTtjVGsuTXgyKz0xO2JyZWFrfWNhc2UgNTp7Z3RDLnB1c2goY1RrLmdMSy5nZXRJbnQxNihjVGsuTXgyLHRydWUpKTtjVGsuTXgyKz0yO2JyZWFrfWNhc2UgNjp7Z3RDLnB1c2goY1RrLlVkYSgpKTticmVha31jYXNlIDc6e2d0Qy5wdXNoKGNUay5jN3MoKSk7YnJlYWt9Y2FzZSA4OntndEMucHVzaChCaWdJbnQoY1RrLmd0bygpKSk7YnJlYWt9Y2FzZSA5Ont7dmFyIHA9Y1RrLmd0bygpO3ZhciBmPWNUay5ndG8oKTtndEMucHVzaChuZXcgUmVnRXhwKHAsZikpO2JyZWFrfX1jYXNlIDExOnt7dmFyIHNsZz1jVGsudzFtKCk7dmFyIElIVT1bXTtmb3IodmFyIHNOST0wO3NOSTxzbGc7c05JKyspe0lIVS5wdXNoKGNUay53MW0oKSl9Z3RDLnB1c2goSUhVKTticmVha319ZGVmYXVsdDp7Z3RDLnB1c2goY1RrLmd0bygpKTticmVha319fXZhciBjMVM9Y1RrLlFkUygpO3ZhciBNaEk9bmV3IEludDMyQXJyYXkoYzFTKjIpO2Zvcih2YXIgaT0wO2k8YzFTO2krKyl7TWhJW2kqMl09Y1RrLncxbSgpO01oSVtpKjIrMV09Y1RrLlVkYSgpfXZhciBzVFM9Y1RrLlFkUygpO2Zvcih2YXIgaT0wO2k8c1RTO2krKyl7Y1RrLlFkUygpO2NUay5RZFMoKX12YXIgVUx1PWNUay5RZFMoKTtmb3IodmFyIGk9MDtpPFVMdTtpKyspe2NUay5RZFMoKTtjVGsuUWRTKCk7Y1RrLlVkYSgpO2NUay5VZGEoKX12YXIgSWgwPWNUay5RZFMoKTt2YXIgRTVHPXt9O2Zvcih2YXIgaT0wO2k8SWgwO2krKyl7RTVHW2NUay5RZFMoKV09Y1RrLlFkUygpfWNUay5VZGEoKTtyZXR1cm57YzpndEMsaTpNaEkscjpBcEssc2w6MCxwOk1ScyxnOiEhKGdQMCYxKSxzOiEhKGdQMCYyKSxzdDohIShnUDAmNCksYTohIShnUDAmOCksYmw6RTVHfX12YXIgZmVyPSIkJFVUVWtTVE9jYmlTblRyJFJVMjdiR2ZyZyRxeFQkeDhnQmtlRW9HRUV1U0diUnRSIjt2YXIgZmM9e307dmFyIFBHbD0ibW44UXlQTFBvM1lrdjBKS29TTjVUMmNXR0lVN0ZISWJWcVoxYmcxRGZ3cUxCd3dmSiR1eFhFdnFDam1vcU1LWlhhcGxmM3VFZFlfQmFFeWZYckFfdzNjaldvSFh1cTh1S1JGUzJwVGZKd3NpaUNiYzBZQVJNSjN3RndRYU82czBoa0RFUUdlV0ZGUXgyV0QxcmRfNHNsbVBpZnZzMElpJEVDT0pOSURaMl81WjQ4NDdoUzhwZmxPT25uU2pVRVRZZTVxUW16OUVRcWJNSWlndWFjZHlHam1ubWtMdWRYSlpHNDRuRUFzUm44MWpBakhKcjEyWiI7dmFyIG5BMT0iOEFVN1ViRno4aHJVMFp1dlVlclpTRVNPZmp6dUFQcmN6OVY5WDVlMVluIjt2YXIgSEFmPSJBZDBHMm5FTFNfeGxXQXJDUzc0S3ZsUTVEQWNUaDYzV2FXVWtlMm1BcVJYcnJ0MWNJJDBQU2xKNVNRQ2pnUjJQY2tfMHZEcnAyelNNbzNfcDhITjRCN1RrR0VJYmVMZTBuMmIxSHdIazlXTWNqczJNbzNOb2hqY0drVWd4QkFkN2JyZl9YQjdySjBTV2pfZWw2TEtjZmtNN2hKdUU2WWZfbDhmTjJnZVdxdXAxZHYkS1NmTVpLQnhWQmprTjc4d2w1QWZzZjhRWEN1NUpMeVM4a0Q0Uml1NWlBVkx4bU5rZkhPQ0ZhVV94OUJScXE4Y3Q2WlVSUzNIUFpLY0JUWDN2ZTBBVHZRazNRRmZhb2JZYl9UTSRzNVkwQ1dsJEd0RWdWaThYejZSMHhRV05wX182UmdMNGl4UEZDSVAxJG5yYmJMYWJPd2kwQ0hvQ3ZTWGRZSk56Wl9hRWdrWDRob1RnTVF5ZHhpSUI2U3haVFp4blUkYlNCNGxLNF90NHg1UFN2bW40JHlxSEN5bmhXajQ0Sm4xN05ZMTZiaDB5UkhTX2I0RXE1T2hJenNuWUVibkpjQldOWkR6cGhvN3lVVmdfR0J2TmNBeWZ0UmRDS011TEFrSkhOZkJWbG9Ja0pjU2siO3ZhciB2RUw9IkFkMEcyWEVWU1VIbFdBckN0aGd5SFRhNXloUGhrVXlWTmtsIjt2YXIgUDZyPSJhN29xMXpsTDRDRUdES0NzNERlbHgwUURTajZEMSI7dmFyIE1iMD1bMTY5OTcsMTc3MzIsMjI5OSwzNzczLDYzMTA5LDM2MDE1LDI3NTMwLDIxMjE3LDMyMzQ4LDQwOTM0LDE3MTYwLDM1NzAxLDI3Mzc0LDEzOTc1LDMwMjQwLDM4MjEwLDY0MjgsNDAyMDAsMTE2ODEsMTkwNzIsMzM1NDUsMzAxNzQsNTE4MTQsMjYyNzcsNjU0ODIsNDYwNjQsMjcxMDksMjk1MzgsNDE1MDMsMzQ3OTksNDA3MDUsNDE4NjYsMTc0ODAsNTY1NjUsMjk5NDcsMjMzNDgsNTU5NzUsNTk1MzgsNzY2NywxMjg5Miw1NDMxMiwxMDk4NCw0ODQ4OSw5MzY3LDU3MDIyLDQzNywyMjM2OCwzNTAwNiw0OTk1OSwzNjk0MiwxMjk0NiwyMDg0OSwyMTYzNCw1NTYzMSwxNDA1NywyMTYyOCwyNDMwNSw1NjAyMSwzNjkxMywxMTg0LDQzNzM2LDU3NTE1LDM0NTU1LDEzMzgyLDE0MCwxNDcyNiw1Mjg1LDE0MTE3LDE1NjcyLDI0NzUxLDU4MTU2LDQ3NjA5LDQ0OTI0LDI1Mjc2LDMwMTczLDMyMTUzLDI3OTAxLDQzNTc2LDE2ODU5LDc0ODIsMTI4MDgsMzQyNDIsMzI2MzAsMjYyNTEsNDM2NTAsMTQxNzksMjM1Niw4NTA4LDI3MzExLDU4NTY2LDE4MDExLDEzNjA3LDQ3ODU0LDM1MjgwLDU4ODg0LDI2NzE0LDMyMzgyLDEyNTU3LDI2OTk3LDQ1NDMwLDYzNDkwLDMxMDE3LDI2MjUxLDI1NDI0LDYzMzM2LDM3NzE4LDQwMzkxLDU5MDkwLDYyODUwLDM5NCwyMTIzNiwyNTk5Myw0MzU5Niw0MTMzMCwyOTQ2NCwxMjA5MSwyODM4NywyOTE5OCwzNTgwMCw1MDE2OSwyNTEyNSw1MDYzNCwzOTM3MSw2MjMzNywzNDU1MSw1NTIwNiwzMzc3Miw0MjA4MSw2NDQ3MSw1NTg1MywzNzYyMSw0NzExNSwyMTY4LDIyNzE2LDMxNTI2LDYyNDkyLDY0MzYxLDMwNTc1LDEwNTA0LDY0NzUsMjc3NTcsNTM5NjgsNDUxNTUsNjM2NTUsODk3MSw0NTA5LDU5NDYwLDE5MDY0LDUwMDY4LDQzMzcxLDY1NDQ2LDExNjgwLDE1MTEsMjU3MSw1NDczNiwzMTExLDMwNjM3LDQxMTk5LDE3MzcsMTc0NCwyNjU0MywyMzA4MCwzODU4OCw0NDM4NiwzMzI1Niw1ODk2OSwyMDgxLDI4NTU2LDI0MTQ5LDc1NTIsMzQ5MjMsNTYxMzQsNTg3MjksNDkzNiw1ODc1LDUzMjAwLDE0MDk2LDM3NjMwLDQxMTcyLDU1NzEyLDQ4MjIwLDM2MDY3LDM2MTcyLDc5MjYsNTAzMTksNTg3NDQsNzYxMCw1MzksMjQ0NTQsMTkwMTMsMTU4NDAsNjU1MzUsMjUyNTEsMzMxODUsNjM2MzcsMzIxNzEsNTQ2MDgsMjY2NjMsNTU2NzIsMzE5MzAsNDI2NTcsNDQyMTcsMjYxMzUsMTA2OTIsNTMzMTUsMzU5MCw0MDA2MiwxMTA3NCwyMTI3NCwxMDU3OCwxOTY5NSwxNjM5MiwxMTI3MSwzOTA0NSwzMjM5OCw2MzM4MCwyMzcyNiwzMTU5MywyODE3MiwxNzY3OCw1MzQ1OSwyODI0LDExNzA1LDExNjE4LDI4ODU3LDYxNDk5LDU3Nzg5LDgxNzAsMjcwNTUsMTMwNTUsMzE4OCwzMzgxMiw2MDA2MiwxNDk3NCwxMzM4NSw2MDYsMjU1OTAsMTI0NjgsNTQxNjQsMjc2NTQsNDQ4NTksMjA0MTUsMTk2OSw4ODIsNDYzMDYsMTE2MTEsMzY0Miw0MjkwMSwxOTgyNywxNzk4NiwxODA5NSwyMDAwOSw2NDM1Nyw0MDkyLDQzODk0LDQ2ODgyLDUyNzM2LDU3MTc3LDMxMjg0LDU3OTYsMzAxNTQsMzgwNjYsMzk4NjMsMzc1NSwzNTg2MywyNTc5MCwzNzQ5NCw1MzU3NSwyODMxLDQ4MjEyLDU2NjUxLDU1OTgzLDM4MjYyLDEyNjAwLDQ4MjQyLDQxMTQ4LDE1MzY3LDMzMjY4LDExOTk5LDM2NjM3LDIwMDA2LDQwNjY1LDQwMDcxLDM2NzE2LDYwNTA3LDMxODE4LDY0OTU4LDMwNDk1LDMxODc1LDMwOTc0LDM5NjMsMTQ3MzksNjI5OTcsMTAwMzIsNDk1NjEsMTA5NDQsNDIyNTgsMTkyNjMsMTQ3MDgsNzg2NywxODkyNywzMzIxLDMxNTU1LDI3MTg2LDEzMTgsNDI4ODgsNTE2MTEsMzY0NDEsNDgwOTksMTU0MTUsMTg5NTQsMTk0NTcsMTc5MzgsMjQyOTgsMjE2MjcsNzY5Myw1NjU4Miw1MzU2MSw0MzUyMywzNTc4NiwzMDI3LDU4OTgwLDUwODgyLDU0Mjg1LDE5NjY2LDQzNTQ1LDg3MDQsNjg2OSw1NDg4Nyw1OTcwOCwyNTMwMCwyNDU4LDI5MzY3LDIwNzMwLDY0NjUsNDkwMTEsMTI0MzgsNTI0MzUsMjM4MDQsMjQxNTEsNjIwNzUsNDcyMTQsMTgyMTcsMjc4NjcsNTY1NzYsNTA1OTIsNjEzMDAsNDg3MjUsMTUzMDUsMjczMSw0MDQ4NSw0MzkzMywyODE1OSwzMTIyOSw0NzgwNCwzMDMwMCw1MjUyNiw0MjQwNSw1NjI5NSwyNjk3MSwxMDE3Myw1NDQ0MywzNTU5OCw0NjI4MSw0ODgyNCwzNzg2MiwxNTU5NiwzNjczMCw0MDY3Myw1MjkyNiwyMzY0NCwxODAwOSwyODA5Miw0NjE3NywzODA2LDU4MDg4LDIwMzg1LDE5MjkzLDIyOTM0LDUwMjkxLDUzMDIwLDUyOTE5LDgxODcsMzE1MzEsMTcyMjUsNDY1ODgsNTUzNjIsMTM0MjYsNTQ2OTIsNzA2LDYyMzksNTM4MDQsNDA1NjAsMTA3MDMsNDkzNCw1ODYwOSw2MDM0MSwzODY0NSw0ODQzMSw2NDcyMyw1MTc4OCwxNTcxMSw1NDA0NiwyMDgyMCwxODgwMSwzODgwMiw3MzE5LDE1NDU3LDI0NDAzLDYzOTk4LDM0MjM4LDM0ODExLDU0Mzc5LDc0MzgsMjY4OTEsNDg5NTIsMjYwNSwyODczMywxOTQ0OSwxMTcwOCwxMDY5OSw2NDI2Niw0NjY4OCwzNDMxNSw0MzE0Nyw2MDM3NiwxMTY4NCwyMTAyMCwyNDY3NCwzNzIyNyw1MTU5LDQ5MjA2LDU2NjU1LDUzNTQxLDQ3NDIsMjMwMDksMzIzNDIsMjE1MTgsMzQ2NjMsNDAyMDQsMTE1MzEsNTA3OTEsMTM4ODYsMjI0NjQsNzU1LDE4MzA3LDM5ODY3LDQ3MTgxLDI0NjgsMTE0MDMsNTIzNCw0NDk1NiwzMzkyNCw0MDcyNSwzNDQ3OSwxNTE1OSw0ODAxNyw1MjIyOSwxODg2MCw2NDYzOCw1Mjg0NCw1MjA4LDQyNTQxLDM0MjgwLDE2Mjc3LDI4MjA1LDEyOTU2LDYwNDI4LDM2MTUyLDUyNDU4LDIxMjg1LDU0MDQsOTI4OSwxNTc3Miw0NTg1MiwzMjc3OCw0Mzk0MCw0MzIzMywyNzE2NSw0OSwzMDU4OSw0ODM0MCwxMTI5Miw1NTE5MSwzNjUxMiwyNjY0LDE1OTI1LDQyNzAyLDE2ODY0LDYzMzQwLDIwMDkxLDQ1MzczLDMxNjIxLDIzNDM4LDQ3MjgsMzU4MDcsNTE1MjgsMjQxODUsNzAzMyw0MzMyNSwzMTQ4OSw1NDI5OCw2MzcwNCwyMDEyLDMzMDY4LDU0NTE1LDY1OTMsNjEwMTMsNTI4OTIsMTAxNjgsMzMwNTIsMjgzMTAsOTYzMCwxOTk4MCw1MjYxNSw0MzY2MywxNDMyMiwyNjA3MCwxMjg1NCw0MDk2OCw3Mjk5LDM3NjEsNjEzODEsNTE5OTcsNDAzMzcsMzg0OTgsMjQ0NjYsMjcyMDQsNDYxNzMsNjI3NTksMjE2NTEsODk0OSw1MTc0MCwyOTU2MCw2MzYyNiwzMjM5Myw2NDcxOCwxOTc4NywxMzQzMiw0NDQ1LDQwNjE5LDU0MTg1LDUxMDUyLDI5MTIyLDIyNzQsMjE1MDAsMjc0MDksNDI2NzYsMTUwNzUsNDE3OTMsMzY0NDAsNTEzOCwzMDUzMCwxNTUyNywzMTU0NywyMjY5MiwyNzExLDE4MTQ1LDE0NTMwLDIwNTU2LDM3Nzk4LDMyNTg3LDgyNzUsMzMzODksMzA3LDU3NDQxLDYyMTYyLDEyNzA0LDI1OTcxLDU4Njc0LDUzMTQzLDUwNzkwLDQxNDM0LDIzMTYzLDQ1NjA2LDU1MzUwLDQzNDgzLDc0MzgsMTExMDcsNjEwMzksMzIyMDIsMjAxMDQsMjkzMjksNDc2MDcsMzA1MzksMjgzODAsNDcxMiw2NDgwNiw1NDQ5MSwxOTcwOCw0NzAxLDM0MzEyLDY1MzU0LDE4MDQsNTI1MjAsMzkwMjMsODQ3OSw0NzU0NCw1Nzg2OCw0NDYxMiwzNjMzNSwxNjU0NV07dmFyIFRFWj0iQWQwRzJuRUdTVVpsV0FyQ1NoZzRnaktuOG5yWmtfZkU3MUhHZTBTTnE5MEpCUkc1UE1XdmpSOUI2OFAzZUowYmlncXBubV80SWJoWkpfR2FQZWpVMktQRENaMVF3X1lEWE9HeFJvZElwX1doUjhLZ1NneUxweERET3kiO3ZhciBqME49WzkzMDQ0MzMzMCwxNzM0Mjk5NTAyLDExNjAwMDM5MDcsMTQxMzkwMTg5NSwxNDI5Njg3OTE4LDEzNDc3MTAzMTQsMTg4NjYwNDYzMywxMjQ4ODg1MzMwLDE3NDgxMjA5NTAsMTYzNTIwMTM4MSwxNDE3MjI5ODk1LDIwNTIyMTIwNjMsMTc4MjEzNDA2NiwxOTY3Njg0MjE1LDgxMzMyMTg0MiwxMzk4OTUyMDE0LDEzNjMyMzU2NTIsMTM4MDM0OTUxMywxMTE1MTE1ODI3LDEyMTQ3MjY1MjIsMTg2NTk3MDcyNCwxOTcwOTU2MzM5LDEyNDc4ODg3MjIsMTE3OTIwMjQxMiwxNDk4NzAyNjY3LDEzMTQ4NjU3NjcsMTI5NzQzODU2Nyw5NjExNjM4ODgsMTgxNzA3MzUyMSwxNDc5Njk0NDM2LDkyOTg5OTYzNiwxNzUxMjY5OTc0LDEyNDczMTA5MzMsMTY0OTUwNjE1Nyw4MjY3NTY2NThdO3ZhciBEY2g9IkFkMEcyWEVWU1VIbFdBckNVSWd5SFRhNXloUGgiO3ZhciByQXI9Ijl5NFZYS0h1U3FkWDlnQUxSYTlNOF9UZHlVNHdpdmxUVGhPU0xNeWU1cTg2Tk5QWk9sU3R0T3BFM0wkTXVWMWR4VjB2ckY4Vkx2WWhnanVuZmpCNXlmQ1FvQUwkalZMbjI1SjN6RktkJE9PMTBVSjduTV8wSlgyb25SMWtsZU44NE1VSlltcHgySkFsRGtTRHBIZDl3UFpvUnhtRGh3RUI3UGd6Z1Z4QUJfR3RVMGpBOHRXMG9OaktPUDF4OVp2NWM1UFFWSkxvajIkciQzZGhvNzVOYUd1bEdONGFLX1pFSXYxYUd5ankwZUNrZVpZWXV0aDdIYTg3MnpXQ2pKU3VJSHFUSVg2UDVtZGpIX3IkY3M3VUJrNFFEbVg3RUttVENLTEFqRk1wZGdxWDcyWlNRaEVZZWcwOUFPJElhXzZwIjt2YXIgTEc3PSJSOUkkS3paJEExdWdQS2g2dWFvOG5DNyQkZ0pubXdYbkdOZmNEM0pvQU1JN2MybGhPWlZBUzNIdzdLYnVndzRJVXFZQVJuejJFNnM3eCI7dmFyIGpJcD0icWxrM2gwTGdJUHd6VDFQcVcxa0k0ZEdZeXl4Y19md0hLTHZUb3hFOVF2QWgyUU9PTHRwSjI0c2hiendjZ1RpR2R4RiRQJFhmMGM5MzB1TUoiO3ZhciBjZkM9W107dmFyIFFQdz0zNjM1OTU5NjYzXjI2NTA1NDMzOTE7dmFyIHYyTj0iTzZ2U24xZDRfaUxBWWJpN0s2ekNWd1UyamwwTmxZbWhwS0NzMk9IblpMJE9MVDZscFN2OHZEcWU0R0hwM0tfTk5fc3c1RThZU0xPUUdMNEFEU2U0WmRIX0dLMlFVaU9Ra2VSQVdkTmtQeE9TUzRRMnRhMjN2a05JRl9VVUMiO3ZhciBmMEo9IkFkMEcyWEVEU1VpbFdBckN6ZmRBOWxwclRhU2JlcmhESElPUWxyRzZUYzZUbTlaa0swb0VLbHpOV3laZlVKUlNra1plODZXNGt5Mk1sTVdvdFFVTk5UZ3dYOHVJN1QzX2Q3UzIxX09rNmRJYWdrb2lOZDVHY3RLS25kc250RndtaXZ3T3F5WG9DQzJnbVUwcTUxJFdVR1c4MG1kc0YzUCRxRUhLT1BYazRYdDNPMXBWZHpTTWpGdG5DdjQ4dFRyX1hPdzUyWnJxJFJ5bXNNZDNaMV9CWW1RbFhLeEwzdkdVRFhzSEFvZUVnRDA0Uzg4RTd3cFB4MDBtOFhwU1UzTVk2aUhCckVsVGpNRTEkdzhnZGlhaUI5TTFVRyRtZXRHdWlsVEo2ZDJTOEZ3WmEyUU94M1J3d3l6NDFsdF9sRW1SMkRVR3BVOUNOaTlnTEdSQ2txSXdDT2VnbFhicGhobnI5eHkkaFZINlpaQVB5NVpJTXdVeWNyY0M2c0c4RjlBcUxkYzBwMm81MWh4a0loVXdfeW1KZHA4UU1fYXRnMDdiMUZhRnZzRzR1MG5RbnhOUG5jRGx3TXlxJHlXQkNTaVFTZXhmSnZLZDFWJHhJWDckMmF5V1BmbFokUnNPaVc5ZEk4bFBtaVhnQVpiVTQ3MFAzNzRIOWpidmFrSEllelVCZHIzUWljYUJ4Ijt2YXIgdm81PSJ5RHI4M2dGa0pnVzFQd0ZmVlFrYnJWNDlMWFZxTVVtR3lHOTdZU1Z0WjE4NzdZbzhzTENlX3ZnaTJEQjRzVWNYTzI0ZHFNbXFXUEJJT1RreWJWRTRUb0t3MVFGV3BMOGtwJGtNNCRZeENlbFRBc3FyWlBRS1RHNUJ3anQ4dUQzT0JLbWliY2diRkpPdldZekxPUUdPSkFEU20xWmRIX25LMlFVR09Ra2RhakVleCI7dmFyIG5Ncj0iVHViTllzNHkxRjBpXzJjVFl4QmRaNTJjUnpzalAyaXpTdnlZZnh5eEc4NVJVMjdiR2ZyNG5zZV9uIjt2YXIgandoPSJJNGx0Z1lSUUI5QSRONldMRHU2T0xFV2tzUzFsWGFyZmZwT19HTWRoZWVVR1pwYzByb090aGFSRW1INWtNJCRMbEFpanN2MmIxb2gweTNCajlpdEdpZmdNdDVjZSRndXB6b2pqUkgwYTAwYjkzZnJQZmZqQWdtYlR6MWJ0Y0VyNzFySVRMdU5wZUJ3UFd5SXpFUkVYSm5KZUFVWDZCa1dhcGlwNEhzb1NCZHpxM3NiaEZkV1NoOU8xODlwazZxaWRucmMwcVViOE5ta1llT1hSMGRPVjNXY3FwYWk4N3paN2pObmFRZTFQMmNLTTgzZjZPX21XaXl0cnZmc1RFVFJnSkRMejlQazhSaFVYNllSNjROOERwU2FWUXlJNl84aWI1RTRzdmZpM1FUZHVLYXNpb3JMTUdkcGJuY29reDBOdG5Yck41a0VSM3I3NFVFVFZ0NncyS3hGT3RScU5ZYW1SYkpmdXR4eGpoNDVYQ0FqVGM2ZVQ3Z1E0NWRJbTBSZUxPZkxsVFZOQUxtMkFpcVQwVmc1UGZRek1pUzIxTWlwZ3V6Rk80ZjFSR0t0eVNhekdJbDBwQ3lqSmhycVVnSjlST1dnc0xxRGVwdnRDV2JrWk9icnVBZ3V4Mmh2WFJvM2FjJEszeE4yVXZfbHdOaCRiOGdSQ1pUUDBDMkw0N05UTFBhT1FBNEt1Wl9QVnI2WFFXbDNDY2NKcnVlajM4cFBPOWUxYVVaeiRZRUtYZHJ4Vm9EcWl0Y01HYzBOeWhBVTh2eWpPJDJ4TWNCWiI7dmFyIExVcD1bMTY4MTM0ODE3MSwxNjY1NDg1NjU0LDExMTA2NjE0OTQsMTIxMTcyNTQxMywxODUwOTU0NTg2LDEzODAwMDA4NDJdO3ZhciB6VUI9InFLcldVQ1BHSVpsTGI4UmJkY01tRjhMQTdJcFBqZERTS2skRTJRTGFRUFNqNGRpVl9PUlh5dXR5aXo0JG4iO3ZhciBMZTE9Ilhwc0ZzYkhaJDlsJDQ1WmJTQjhyckdSM0RacE1BNWJfcnJZdG5zMmE1WlNBV2JSUFBxZkVtVXQ2X3NQRmV1U2lkTCRHUEtYV0llbklrRkNyNFNIR1lQJEhCMmp1NzdReSRqTDRuN3hIQXlOQURwOVhUdHdEZllncWYwMkx3X0NPMUZuJHh3MmxzNXNTdGZncDVxX2xJR1k3TGJyNTF3U29ySl9ZZ3BEbGxrOUR0ZUJPaG1wc3ZMYnRadERfJGRQcjVNbVhVcGY2NWRONWhGWDBkUXM0bTQ1Vm5rWmdiciI7dmFyIHoyRj0iQWFQa0luVWRlNEVuT3NOUk1uYUZKRFVZZG1lSDNrQWdTcUk4bkJlJFpFX1U0NHRjdzhWYVdQX3hyVzIxWlUxWEs2MTc2UEJEUTF0NUtFRDcwbkJhWXhLQno3WkNXeDFnNm5YdFlNT3NrdjlKSTVJSkFfRndRUjRrdFUxQ2tTUCRyWXl5JHFYR3pTaVIiO2Zvcih2YXIgWXhzPTA7WXhzPE1iMC5sZW5ndGg7WXhzKz0yKXt2YXIgSUI4PU1iMFtZeHNdXlFQdyY2NTUzNTt2YXIgVVZrPU1iMFtZeHMrMV1eUVB3Pj4+MTYmNjU1MzU7Y2ZDW0lCOF09VVZrO1FQdz0oSXI0KFFQd15JQjgsMTA1NDIyNzc3My05ODA5ODMyOTg+Pj4wKV5VVmspPj4+MH12YXIgam1kPSJBZEZHMlhFOFNVZGxXQXJDdElkY1lMVzA2cWFaNDlmOHZNc0FUdG96UjNHMWtsZGxIQXJxMTBBeGF4bHR4endTam1ydHdOcUhFZmlVZGV2R2dNV0VnbmN5MGlBSFFJJHBGZjM5RnJrUlZIMlckZnZOakR2V2ZOdktPeW9tbUFTMHJrREJQeFFZY3hzM3QiO3ZhciBya3Q9IkFkRkcyakVlU1VkbFdBckN6ZmQ3bkdVSVkxR18zX0YkQXB3UWxKMFVicmY1YmhwZ203ejBHVSI7O3ZhciBYZTc9Im9razE2dnAwaThEVWZtWjlzYnVmVjhrVHB6eXRpcFUwRHJxV0VialF2U2NtYVZ6THlKc0tidXkzTkNVOWlvTDk4OG80RUdsSnN1MUk4cVZkTndRTmdPaFMwOXdxSGcydE0ydG1JcDhPOTJZbENwaDFTa2R6YTBMUlMxdWZ0X184clNUUFc5eUpfak83b2Nqc3hDMF92MyI7dmFyIFBvVD0icEdwQ090U240X2VXUEwwWXJEMnFTNkl1NF9FTUJ2V3Q2MFBGa1pISnl6ZjBHNFpFd2xvUDNETnRqQnNNakZibnlmc2NZZlhialpjTERVejhvMFZhRyRyRUJ3Sm5wRHl6QUpMYkJfRVdrU191JHNGN042ZWxldFoyd2hSR09XYlJxaTYyallMOWEyeTltMHNRMExRbnI4WjJsb3I5S2FXSlpkcnlkYXBUbkRsN2tBSjJJU3hDbHl1Q2hlckpkWnNxQVJFcDlDS3FEc25fMmVyUU5vNFJsdHh2UGRVZE9iQmpkZTl4aDBfXzYyY08kX2xxRm1iTFlJT05tcHIkalBFQ3NFQ1BaaDVBNUNDbW9EakNuVVoybFpJSXRsekhKbkduaWEzUHVxT3Q5Z0lWZGZSMF82dEFqUlVzTyRtUFp2eU9xdCRnRUJ1NFEwdUpWYjN4Zl9xNElxaHV4alV4N3ducWRPdmU3YnRXbWtURU9YanFBMkt3dGlvY1FScmxhMDk2eTNKSFNFV09BU0NVUVNjNjdzNmJYMjRLcTZFYXVqQ2tVeUQyUGsyRjQ2aiRvYWxER0ZVbWFJclBocmtMZHNwSjR4TGNzQzNFUlBLSSRJemd6WjEzZCI7dmFyIGZhUj0iY1JOa3E0ZmxMRndtY3pLVkdzeEFrdUJ1QjZ2cEdacWdRNXMyQm1peG5BV1U2M2tvM2ExY1BXcDNxMzkxJHpzX0JsY1BNa0c2Mm02VGJ3VnZ1RmNBZkkyRGdpQTFnTkpxR0p6am9BS1hiNjU3QjVwZlc3Y29YYmhRSmtmMGJsTXB1WVdxTG1Vem9OUFpBVDgwX0tPVDViQW1OZGVmUHFsNkZDSU5vVXB6dXY5dlowTklEOGdZSEtfVjZsU2hnWV9BVXg2NmZZcDdxQXd5MDlKT3BNQTFfS3p6VDN1ZEg0Sk1WT0pxNVo1Ijt2YXIgTFlmPVsxMDk3MDg0OTk5LDg0NDY0NTcxOCwxMzk4MTA2OTg4LDE0NjM5MDY4ODMsOTI5NDU4MDI3LDE4Njg5MTYwNTAsMTUxMzUwMjMxNCw4NDQ3ODQ0ODQsODI4MzIzNDI1LDEyOTUyMDUyNDIsMTYzNDAyMjIzOSw4MjczNTY1MDYsMTIxNTg0NTIwMywxNDk5NTQyODQ5LDg3OTkwODk0NiwxNjg1MDg5ODcyLDEyMTUyNTg0MzUsMTc1MDE2Nzg3MywxMzgwOTkzODQ2LDEzMTUxMzYxMDAsMTk2NzIyMjYxNywxODE5NTY5MjUyLDE0Mjk0MjAzOTIsMTM5ODI5NDA4NywxMjk2NjQ5MzI5LDEyMzIyMzc4OTYsMTg1MjY1MDYxNCw5MzA3NjMzNjYsMjAyMDYyNjU0Myw5NDcyNzIwMTVdO3ZhciBEMmg9IkFkMEcyakVZU1VkbFdBckN0ZmRGY01jbnNEdF9mSzAzSG1SU2xzZGlIeE5Scld3SllfNmdMblo4Q0dtOF9DckUkb2k4ODBWejU4a0k0RjhKczU0NmFCSGV2MG9NUTcxV1FvRnRwR2dnYURQYWxHZXpEeFVvNTkkVDVuM25tY1hTbDRtSEh3MWIzcDZVRklQbXQyakJTJHB1TW1oRHVzSGVmNndQdFFGOXRrMGE0ZkxlTE9Qdm9kaUtrbUVEajlTYXpZM2lWS25IRkNrV3hBYU5xRXB5MWs5c0ZHSGpNN2hmc3IwTTZfdXNKaXJGaFlHWjJzVHdBN3hkWW96SzB6NE5LNldielFUJGN5UDJVaEpCVkNmMEtsek90d3ZEUXQ0XzRWTWh1dldoekhuMHVITG1tUkFrOFV5TWhMTEdtYzZfNVdmd2VKRWdNbGUzYjdxRUczX2N2ZzRXZlR1VzBJUExtTDdENFBfeGlEa0I2Z2pDZnpsME5ObmFZQjRQdyI7dmFyIFhRZj0iWFE3SnhyJEFWUWRGN1lLRG1EMVpHODYzZ2QzZmVNUGs4a0JsMF9pWjNtUU9yVGVadk1lSm1GbjdmbExaRU5iUzVJeDVjeVNNYmRmZUl2OEVzOGR6RlRUT2psbTFQMHdTQ1BJbGdQTndvSHNndnRYNEwyb3hYT0M4QkFNdmxZcGhFeXBBSVR5OXFWSFpTOF9zU3lQdTROdjRBY3JaSEhRTHRHWm1aQTBYQ2JBR0NKbnlZeEJoSGg5ZyQ4QmVLN2FiczJRc3BESUJIJERyYXVuRk5fQm1RMGhUTGN1d2VfcXRrMmJMdDB3YlhuVWdqR21BZW9xM2xqWm1iYkVxOEZRSkxVY2lEclZEYU1xSDVMaUNfQm44anlCYzNZX21TTkNESjVvUzBXSFYkRnNlVDMyZG13UVZvVVRJbjRzX3p1MEZQdmVEaUpVMmozNSRpMFZ0NmF2bk5xOUxSREdJWjFZbEVHYTlmUkF1UUNNR29NWTdkOTdVbWpEZ2M1WFJZRUlDUUZHV0I5ejlLRXdwT0VKeW4xb1FLS3hFODR2eXJ5QzdPR3FsN2VPSFU0RTEkTXRWV2MzQ3hmTjJZWmVWT3VnaXlyUWNKTXVFMjVGdTFBekJrXzZqTEZGUzZ4Y0hpYmN0VmoiO3ZhciBmY3o9Ijk3RXdNclQ1V1BlMEk1YnpncmE4T3RFbTFwQVpMcTQ1WldlTGdIVHRYajhiJF9ueXB3aEdpQXlDRTZGbW1OY1BUSkNNeEZQam05Yjh5YnBRRDdxSzhNbG9XOCRYcFZXYXF1WmhzandEbGRRd2VhbGtXNlpKSVVKX1JUbm5XV1Z3N1FPMExTZmVIal84MzMkTVFXanJpaE94eXc0X2RZSEVueGFtaDZxVGckd2c2ZHhjYlNZVSQzUUdka0ppQ1pSUWFjekJYNDJZVFVWeVZHTFhkaUNuOE5MX181SXJuUFZKNjdRZk9IX2NxNkhfNFI0UzBtbjJzYk1qNk8yZ0FhZm5kVm1QTWM2dXE2NUthMXRndGNDcVF5MU0kX0w0d1lBN1JhZjQ3ZlZRVTF1cE8yejdYNjNXUk9POUckeGNnU2VDZE5tM25YcTAwTEVMOEQkSXJScU51MTdHRFJaQndrMWsxZ3hrSm1Ma2tHcE9uODBuMGZvRkNsWW92RllFclFRUDBGS1V1MEJ5JGEkSWJQcllnbU5lalR6JHZMTUJhcHkxcTJVT1pIV1JYcnpzT1ZrSU5CVTA4YmNiZlQ1bSRuYXNyb05ZSmJaQWVsUHZZYjZwSE1tMWc1YXJvQXpZTzJNRkpHblhVSDdRYk1EbWpOQlJ6UXZqX1VoeThZbWsiO3ZhciBiZzc9WzEwOTcwODQ5OTksODQ2MDg3NTI1LDEzOTgxMDY0NzYsMTQ2MzkwNjg4MywyMDUzNjQ5NzQ4LDE4MDI2NTQwMDIsMTA5NzAyNzY0OSwxODY4OTcyNjIyLDE0NjMyNDkyNTksMTg4MjQ3NTA5MCwxMTE0MDcyMTgxLDg3NzA4NzAyNCw4NjExMDU0OTEsMTQxNDU0NjcyNCwxMzE0NTQ2NTUxLDk0Mzg1ODc2NywxOTY4MTMwODk1LDEzMzE3NzQwNTIsMTkzNzAwMDUzOCwxMTc4ODIzNTQyLDExMTIxMDAzODgsOTI4MDgxNzUwLDE4MzY1NDIwNjAsMTgzNTc0MjI4NCwxNDY3MjQ3MTU4LDE0ODIxOTA0NDQsMTQ0NzU4NDU5NCwxNjg0MjI4MTQ2LDEzODMwODUxNTEsMTE0NzQzMTI5MCwxOTUzMjUyOTQ5LDk2MzAwNzI4NSwxMjk3MDQ1MDkzLDIwMTk4Mzg4MTddO3ZhciBFNUs9NDE2MzQ0ODk2NF4yOTgxNDc5ODAxXjM3Njc3MTU3NDY7dmFyIHZ5eD0iX0JvUkxJeHNUd2FERUc4RHhzblZCQkpxaHFDVkgxUnNQJEM0Ym9XY3JnS19hWXpqcFlsa3pzakUyaXpTdnlZcHh5eEc4NU9qSW91NCI7dmFyIG5zMz0iQWRGRzNYRWpTSkhsV0FyQ3RJNDh6UFpRcWo5Z2RkOFE5NnVYUk9qT1IyMzE2V1NCQWdiTUZqQW5fX1ExRzdXeEQ4WU15aEYkWWtRUUo5djcyTmJIdzZkZVd2X2tLTmVLJFhCM2lKZHRFSjUwS2ZTQ1Q0dUxVWUYkSG01V2dWY0dPQjdTWEJRbF8weXA1Q0l4OFpDd3BPQkthSWR0SkdmdmNPMmRZcTI1cnlWQVcyZUhtN2N5REpLZzNOdGdTdTRMdFk0XzhSQkhmTlVnenFqcnFreSQwOW92QTk0ZFVvQ3BxVVduRkFzb0RUJDZuRFBvTWhvcVpxd3MzT05Jc1UzOEpiU0dyMmpIM0loQW5yUktRd012T09zQnV3RG9sblNZN1FpSlgxT0xJVmhkZzkxZFhURVM0ZW8kTWQ1TU9pbW5NTyQ2U0JWbWxUY1A1N0RHSERXdnhpQ2pSVVZUVEM5cWs3THJreXZWenNBOFB3cW9ENWRqeFRlRWpjOWN6ZXBLMWJoV1BWenRuYU5sSE1vXzF4ZU9rb0pUWlc2enpTZUdKSUx6RTdaY1pXS1RWVzRFTUpWQTlmRDUwM19MNGUkQ3BaT2V1RTk1N0gwc3FRVmQ0cjdIaEhXRVIzSkpTSk5oYkM0Z2xWTXdMaHN0UnpvQVokaHdDaDU0Q1BPRFMwUDgzbXk1MyRKVkRjb2FVdGNMNnpIQnhMSmprZ3dxSiRpQ1ZiNXVOakkyVERYNmNod0dMdHgwY2dTT05pRkRaa09xRkpUZVpNUTVIbG1nSlFHY0xVeHFTMm5sOFBUdU82SFVlaVZtTCQkZUd3cmozUGlGbldLOHBHR0hiVWZoWVpGSFN5QmZiMWpCam04JHZYS2NoUUVjY0s2OE1hRUxyeG05Q2lRUFRrSnVHSEZwTUhNbWd1NVhMVXVIeFpQNThjWGYybFlDaU5Qalk5bGp4UURBSWhLU1hZWEgiO3ZhciB6cXI9InhFMGlSUldrYndZVTJzV3VLSDk4N2hYR0ZBaW1EX2FjMjROckVjaVU2Q2dqSFZtaGM3WTRJMFpFc1paeWxCRGlXcTdhUVVWNUdrU1YzQkEkSHY2eDRieTZ3cHFYZUxUTHVsMVVZZzUkekNoMWdlV3Jzc1RKJDFLM1IiO2ZvcihZeHM9MDtZeHM8TWIwLmxlbmd0aDtZeHMrKyl7RTVLPUlyNChFNUteTWIwW1l4c10sNDI0MDM3NjMzOV40MjU3MTUzOTIwKT4+PjB9dmFyIGZNeD0iQ1BLdTZRQ1RQczRJNmNjU2FFNG9WRWlHbVl1SXdKcXpmQ0pvQWpsVlJCaWVkTnl6RDQ5ZlNlZ2xuc1R6YTQ0THdNcXFnUU5ISXAyQTNUa3pualZwQVNXc25zTDU2MHhXem0keGpMaHFoTXpjJFQkQXVTY2pDYjhFVHRZTHhhSUVGbF9DdlA5c1FITUNmcnFvQzMwRm55eEtZdkJDYyQ5MVQ4VnVfVEZQV1VBXzBSRlFMdzBENDJvOU1MZjNMR2dQV3VhdkxhXzNpWXBnU1RVJG9oYURRYkFSNUtMUHc4S0o2dWNOekJXQlpzTUN4VUgkdERkZ2ZmOWd6YUN5ZkR1QnBoSTMydTk0Qkd6dTh0aWdqNTkkcFdfNXJIbWVOa0w1bjhvNXM0QmhtYnhrOGhyTEpGT0dudjFpaXFwX2F4WlZncWprSWpKdno2dHB0QlVZVVhhQm4xYjN6aGtweTBaVVA2a204ZlVTdnBYdzRRQV9wZE5jWTJHJDBWRkFBaFNJWXJFSkJnSjdDMEZSMTVaRjQ0OCI7O3ZhciBUdUo9Ik5lQXl0SGZuM0JUaFRaMkw1TUpiYWNHWDB6TDNSbng5dmdiaGVJcG4kQWlSbFhWNm03em1LUjB2V1BxeVlaNmNlbTJ2ZThBdE9OdFdKdDNkSWtZJEVVVThSa0JxSnBZbUx5Rl9RN1dCX3JqZUd0b1JCbHY0UXVGVVBFVURyV21XRmEkVjVBNTVka1pjdkNjNlY0SEhIc2hYTDhNdGZGYkdzUmNxaW5tV3MwUVJuRUZEamplRDllcVIxdVR2X1BBNU5ZTHYwYTdBNjV2cWFTZUUwJGx0VFlQcnJ4cGR6UldwJHQwU202bGJnX2dZUDhnQzRRVUQ3QTBYVmlOd1kkRFN3YjZEVTNEb3dHZzFhX0VjTno1U1lON29IWXEkYTFWRmJiVzdFMEdkbkdPMjFvWkk3QmFqZFl4MENUWldoJExrWGNGODZMMTZwbFdVdjIwSXhoZUxIWjdVckR1dHRhSGdJajRzVVdDcnIkSTFfc2NUaDlvSUVtT1dmMmE3bGhpcU1pbSRYdGJzdHNPUkdzekpocDVBbmxWMDExWHJJUWtUZWZaQTJKemJOamtjQ09QT2NCU21oS2o2dTlQNjlhN2taN1ZnQlFtSmxhd3ozbm85ZmFNOTlNNmZXWDBhVVBzMW5EMElmTlpqUFhOSmFYNkNwTjRxMlMwc2NHMndUWEtVanZmRWdHa2tlIjt2YXIgZkdqPSJSVU9ocHRmZ1hVNjlhZGNla1dlblNkbHhaUDJGeGV0Qk14Rlc5ZkVOd3ckRmdzd2MxTHNiWjEyR1B2RTNmUkFxVGZUN205dWZHTHQ2T1ZfWldpSDdEZzVGVUQ1bldVVFBuZUNRcnN0S0gxQXAyQWQzT3MkTyRWYlZmaEdEOFdITnIwZDc3M1JCZ1ZRVVNlam5YQk1zZ3V6Z3hQT2JRWkwyQ0RldTRqWTZiUVNYdV8wRjZOUEx5OVE1WjBNeUFfc090dHlpVlhHdzE0WUtmd3FCbTJOUSQzY0poYXlWV25YcURHVHBacUFKa0t0MTJEVHhySkxPTG14OWRzdGpCeCI7dmFyIFBJcj1bMTA5NzA4NDk5OSw4NDQ2NDg1MjUsMTM5OTAxNjMwMCwxNDYzOTA2ODgzLDIwNTM1MzA3MjIsOTQ3MTU1MDE2LDE2ODQ0MTk2NjYsMTg4NjI2OTgwOSwxNzQ5MzAxMDczLDE4MTUzNzMxMzMsMTg4MjQxMDU0NiwyMDM3OTM4NzU0LDExOTg2Nzg2MTAsMTg2OTU2ODA1NSw4NjA1ODAxNzgsMTE5ODY3NDc5NywxNDEzNTY5MTEwLDE2NTIxMjgzNDIsMjA1MTY5NTcyMiwxMTEzOTQxMzU2LDE1OTYyMTQxMzAsOTQ2MDM0NTA4LDE3MzE2MjA0NjAsMTM4MTMyNjY5MCwyMDM1OTY4NTgzLDgyOTUwOTIyNSwxNjMzOTA0OTcxLDkyNjM4MjE4MiwxNjMyMzE4MDMzLDEzOTc5NjI1NjgsODgwNDI1MzM0LDEyODMwODEyNzEsMTU5OTMwNDAxNCwxNzgzOTE2MTExLDk2MTk1MDMxMSwxNzgxODcwNjc4LDEzNjIzMTYxMTgsMjAwMjI4MTI4NiwxOTAzNTg2OTI1LDk2MzY2NjI2MiwxOTAwMjQyMjQ2LDE4MzYzNDE4NjcsMTM5OTYwMDQ5Miw4MTMwNDg5NTAsMTM5OTQ3NzA2OSwxNDQ5NTQ0NzcyLDEzODEwNjE0NTgsMTQ0OTA4ODMzMCwxMTQ4Mjg2NTUwLDE5MTgxMzc5MDksMTkzNDUxMzQ2MywyMDU0MjQ0OTc0LDEyMzI0OTEzODQsMTI3ODU1OTgyMyw4Nzk4NDM5MjEsOTI2MzAwNDg3LDE4MzI0MDQ1NjcsMTcxNjIxMTU2OSwxNzMxNDg3ODQ4LDE3OTg1MjE5NzEsMTI4MTMxMjM1Niw2MTE1NDM2NjYsODc3ODExNzY0LDIwNTE3NjQ4MzksMjAzNzEzOTA1MSwxODY2NjI0NjA3LDE4MTU1NTg0NjYsMTcxNjIyMTU1MCwxMjQ5NTI3MzkxLDE3NjU5NTQ0MjYsMTQ0Nzk3OTU5OCwxOTg3MTQ0NTUwLDE3NTEzMzc1ODksMTgwMjY1OTY0MSwxOTg3MzkyMDg5LDk2MTkwMjcwNyw4NDUyOTY0NzAsMTI0NzM3NjcxNywxMTYyMTc2MzQwLDEyMzI3NTc1ODUsOTQ2ODg0OTM4LDYxMTQwNDYyOSwxMjYxNzk0NDA1LDE4MTY4NzQzMDYsMTg2OTE4MDI3NCw4Mjg0NjA2MzMsMTA5NTE5NjUyNiw4Mjg4NDc2ODgsMTQ0ODIzNTg2NiwxNDUwNjYwOTUxLDgwNzY4MDM3MCwxNDMyNzY3MzA5LDg2MDE5MDUzMiwxMzMxMTg0NDgyLDExNDg4MDU0NDcsMTE2NDQ2MTEzMiwxNjMxMTU2ODUyLDE5MzQyNDY3MzAsMTEzMjAzMTU5MiwxNjAxMTMyNjIyLDE4NTIxNDA4ODIsOTYzNjAwOTg1LDg3OTI0MzM4MywxMzgwMDEyOTE5LDExMTQ5MTk3NzUsMTI5OTMzNzA1MCwxMzQ5NjYzMDg5LDE0ODM2MzMyMjAsMTM3OTIzNTQxNSw5NjA3MTE1NDAsMjAyMDAzNjk3Miw5NjI2ODAxODIsMTI0NDgwNzczMywxMTI3NjkxODYwLDk0NjM2NzM0OSwxNzY2Mjc4NzY5LDEyODIwMzI1MDMsMTM2NDY4MjA5MywxMzI3Nzg5ODc4LDExMjc3NjU4NTgsMTc1MjM4ODY5MywxMzQ4NjE4NTY2LDg0NDA2NTM1MCwxMjk1MDg3NjkwLDE0NjI5NzQwNDIsMTM2NTE5OTY4MSwxNjgzMDUwODIzLDE1MTQ2MjAyMjksMTQ5NzUwOTk0NSw4NTg4MDM3OTQsMTE0ODY2OTI4MywxMTc4NzQ0MTMzLDE4MDE2MDY3MjksMTQzMzk1Mzg3OCwxMzY2MTgxNjg0LDE0NTAwMDEyMzgsMTQzMjc3NzgxNiwxNjY0NTExODQ4LDE5NTMxMjM4NzYsMTEyOTE1MDMxOCwxNjMzMTEwODY2LDExMTM1NDM0ODksMTQxNDk0OTE4NiwxMjExMTk4MDM3LDg2MDIzODE4MiwxNTk4ODk1OTM4LDE1MTY2NjM2MDksMTE5NDU1MTM5NiwxNzY3MzM2MDE3LDE0NjQxNTY0NzMsMTg2NzQxMjA0MywxOTY3MjcyNTAzLDE5MDI5ODU1NzksMTA5NTM4NTM4MCw4MjU1ODYyMjQsMTE5NTc4NzExOSwxNTE3NjM5MjQ1LDE4NjYwMjc4OTEsODQ1OTAwNjQxLDEzNjM4ODkyNzMsMTk0OTc4ODc4MCw5NDMwNzcyNDEsMTcwMjMxNDg2NSwxOTIwMzY0ODcxLDEyNjUyNTUwMzAsMjAwMTM1MjMxMCwxMjk3NDQ2NDkwLDEyNjU2NDg3MTIsMTM2NTc4NzcxNyw5MTA3MTQ0MzMsMTMxNTQ0Nzg2MSwxNzE4NTgwMDg1LDE4MTk0MzE1MTksODEwNDQzNjI4LDE0NDcxOTE4OTEsMTk1MTI5OTQxMiwxNjQ2NTUyNjU1LDE2ODI1Mjc1MjQsMTQxNDAzMTczMiwyMDU0NDM2MTgxLDgxMjMzOTMwMCw5Mjc4MDcwNDIsMTIzMDEyODc0NCwxNDYyNzc3MjAxLDEyMTQ4MDQzNDQsMTI2NjE4NTAxMSwxNzY2NTM3MDU4LDYwNzMzOTA3NCwxNDMyNTEyODIzLDE4NDc4NzkyMjEsMTY5NzY2NDMwOCwxODAxODY1MzI5LDEyOTYyNTA5NDcsMTMxMjk2MTU4OSw5NDYzNTc4ODAsMTI3OTM0NzUzMywxOTg0NTI0MzI0LDEzNTAwNjI0MTYsODI3NDg4MTE2LDE0MTQwMjI5NjksODkzOTQwNTk3LDE4ODY0ODQ4NDcsMTEyOTM0NTM2MCwxMTQ2MTEyMzY0LDIwNTEzNTY5ODEsMTk4NDUxNTEyMiwxNjgyMDA2NjM5LDg0NTI0OTEzMywxMjk4NTU5NTkyLDExOTU2MDM1NjcsMTg1MDg4ODI3MiwxODAwODkyNzkxLDk2NDE4NzczMiw4Mjk5NjQ1OTMsMTIyODM3MDI5OCw4NDQyNTYzMDcsMTQzMzg5MjIxMCw4NTkyMDE4NzksMTk2Nzg2ODI2NCwxNTE1NDg0OTg1LDE4MTU2ODQxODEsMTczNDk1NTgyNiwxMjY0OTM3Nzc4LDE3ODMyNjI1MTgsNjA5NjQyMzMwLDEzOTc3NzY2ODgsMTQ5NjQxNDI5NiwxNzMyNzk0NDg1LDE0OTk0MTYxMjAsMTQzMDM1MjcxMSwxMjE1OTc1NzY1LDg4MDQyOTg2MCwxNjg1NzMzOTg3LDEyMjc5MDgxNDksMTI5NTIwODU2Miw4NTk0MDQ2MDAsODc4MDcxOTE1LDgyOTk2OTk5NSwxMTk2OTc2NjkxLDExNzk3NDAyNzYsMTk2NzUzNDE3OSwxNjgzOTY2Nzg2LDE3MTY4NzI1MjcsMTkxOTgzNDcwMiw5NDU0NTAzNTMsMTM5ODc1NTQxMCw4NDIwMjAyMDgsMTIyODIyNDg4NiwxOTM1Mjk3Mzg4LDg0NDUxMDAxOSwxMzQ5MzUwNzYwLDg3NjE3MTg1MSwxMzgzNTQ3MjM2LDE2OTg4NTM3MzMsMTc1Mjc3ODMwNiwxNzgzMzI1MDQ4LDg3OTI0Mzg3Niw4NDIwMjgzODksMTkwMDgyOTI3MywxMzQ1Njc1ODYwLDE4MTU0MzI3ODIsMTk0OTg1MjUxMywyMDU0MTkwMTI4LDE5MzQxMTE1NDAsMTk1MzEyOTU3MCwxOTUxMTUxMjE0LDE3NDgzOTAyMjEsMTc1Mjg0NDM3NSw5NDcwOTA3NjQsMTgwMjg0OTg3MiwxMTEyMDQwNzgzLDExMjg2ODE4MjcsMTUxNzA0NDA4MSwxODUwMTc4MTQ2LDE3ODM0NDk0MTgsMTIzMjYyMDE1NCw4ODAzNzI4NTcsMTI4MjIyNTUyNywxODE4ODM4ODQ5LDE5MDIyNzY0MDksMTk1MjU0NDExNSw2MTA1NDYwMjMsMTczMjM5NTgyNiwyMDE2NDkxMTEwLDE1OTk1NTM4NjEsMTMzMzM0Nzk0NCwxMzI4NTYwNDk2LDE5OTk4NTg3ODksMTUxMjMyODU0OCwxMzQ3NjM5MzQ3LDg5NDc5MjUyMCwxMjk5NTk1ODc5LDEzNDkxMzcyMzAsODgwMDMwMjc2LDEzNjIzODM5NzgsMTIzMDU4MzQxNiw4Mjc2ODIxMTksMTM0ODY3ODI0NCwxNDgxMzk0MDQxLDEyNjQwNzczOTUsMTE2MDg1NjM3NywxODY5Mjk3NzM4LDE0MzE1MTczMDIsODk3MDY2MDcxLDE1MDExOTc5MzgsMTkwMzE4Mjk0NSwxMTE1MzIyNDQ3LDE5MjA0ODkyODMsMTc2ODcxNTg4MCwxMTY0OTIwMTY2LDEzODMzNjI5MTMsMTM2NTUxNzM4NCwxMzk2Nzk4MzIyLDg2MjA5MDA1MCwxMjMwNTIxMTc4LDE0MTM3NzA4NjEsMTQzMTUxNzUyMSw5Mjg2MDk2MTYsMTc2OTM1MzgyOSwxNTAxMDU0ODA2LDgxMDk2MjQ5OSwxMTk0NTQ2MDMwLDE3MzM1MDYxNDMsMTg2NDY0Mzk1MiwxMzY0MDIzMzgyLDEyMTM4ODUyODIsMTM2NDYxMjE5OSwxNzgzNDUzNzQ4LDgxMjgwNjIyMCwxNTE1NjE1MDk1LDExMTMwMTEzMDYsMjA1MjM1NDYxMiwxOTE4ODQyNjgwLDE0NjQ3NTIyNDcsMjAxODc5MjUwMywxNDMxMzMxNjkwLDEzNjUzOTczMTYsMTgwMzE3MTE3NCwxMTk0NzUwMDM3LDE4MzM3MTA2NzcsMTM2NDAyMTg2NCwxODAyMDczOTA3LDEzMTUwMDUyMzIsMTE3NzcwMDQwMCwxNjk5MzYyNDA4LDg3OTI0NTY1OCwyMDE3NzQwODM2LDE2NjYzNDA3MTAsMTM0NjQ2NTM4MSwxMjQ5MzM1MDkwLDEyNDkwMDYxNTIsOTQ3MzUyNDA3LDE5NjcyODUzMzIsMjAwMTAzMTc0NSw4NzY5NTcwNDAsMTE0ODUzNjEzNywxMjE1MTgxOTM2LDEyNDYyNTQ4OTksMTU5ODE4MzUzNSw4NDM0MDMxMTQsMTM5ODMwMzU0NSwxMjY1MjU4NjA4LDEzNDk4MDcxNTcsNjEwODkxODI4LDIwMDI3NDEzMjEsMTkxNzA3MzczMCwxMTEyNDI5OTI2LDE0Nzk4MzA2NTAsMTQzMTkxNTg0NSwxMzY0MjIyMzE2LDk2MTc2OTAyNywxMjMxNTc0MzgzLDE4ODY0MTg1MTAsMTYzMTg3NTYzNSwxNDE1NjcxNDA5LDEzODEzMTU4OTMsMTc1MTcyNjE1MSwxMjY1MjY4MDUwLDg1ODAyNzM4MiwxNDQ3MTgwNTkyLDEyMTExODgyOTgsOTQ0MTk4NDkwLDg0MjYyNDg3MCwxNjg1MjEwNDE4LDEzOTcyNTU1NDIsMTg5ODk5MjE3OCwxMjE0NDczNTQ0LDIwMTY1MDMxMjMsMTM2MjU3OTU2OCwxMzgyNDMzODQzLDIwMTc5Mzg3MzksMTg0ODg1Mzg2MSwxMzQ5ODcxNDE3LDEyODE4MzI3OTksMTc1MjY1ODAyNywxOTAyMDY1NTAzLDE0NjY0NTEyNjUsMTQzMDQwMjg5NywxNDgzMjI4OTk0LDE0MzEwMDUwMTgsMTY2ODYzOTgyMSwxNDQ3MTk2MjQ0LDEzNDU5MzkwMjksMTk3MDgxODYwOSwyMDAwODQzNTg1LDEzMTMzNjQyNzIsMTI5NzM2ODEzMywxMzQ4NzU3ODQzLDkyODU0MzgyMywxNzgzODU1MTg0LDE2Njc3MTkwMjcsMTgwMTY2MjU4MiwxNTk3MDY0MjgyLDE2MzIyNjYxMDUsMTM4MTA1Njg1NywxMTgxMDQyOTk0LDg0MzY1ODYxNywxMTc3NTY1MDE2LDIwNTM4NjM3MzQsMTUxNzY0NzkyNSwxOTM1NzQ5OTk2LDg5NzA4MTY0OCwxMzMyMjk1MjQwLDIwMTk4MzY3NzcsMTYwMTUyOTkyNiwxMjc4ODIwNzExLDE4NTI1MzY0MTAsMTgzNTE2NzMxMywxMzQ5NjYzMDU3LDE4MzY1OTc4NDIsMTYwMTY0NzE1NywxMTQ1NzI4MDQ5LDE3ODA3NjEyMTAsMTQ4MzEwNzkxNywxOTg3NDcwMTU5LDgxMjUzNjkyNywxNzAyNTA4MzYyLDEzOTY5MjA0MzUsMTM4MDIwNTQwMiwxNjUyMDU2Njk4LDE5Njg3OTE4ODksMTkzNDI1NjY5MiwxMzExODU2NzU5LDE2NDk4MjAyMzcsMTY2NDYzNTcxNCwxNjgzNDM3NDIwLDE0OTc1NzYwMzQsMTE5NjMxMTEyMSwxNTk5MDk5MjQ4LDg5MjYzMDYwMSwxMzY1ODUyNzI5LDk0NDcyMDczNSwxODE1NjE4NjExLDEzOTk3Mzk3MjksMTkwMTA4Mjk2MCw5NDc1NTAzMTMsMTM0NzQzNjg1NCwxNDk4ODI4NjU5LDk2MDA1NDA4NywxNjgzNTc2MTc0LDE4MTc1NDA0NTgsMTgxNTI5NDU3NCwxMDk3NzU1NDkwLDgxMTc1NDU2NSwxMTc5NDY1Mjk1LDg0NjI4NTY1NywxMTE0Nzc2NjU3LDEzMzI1NjYxMDAsMTg2NTUxMDcwOCwxODMzMTMzNjU4LDIwNTQzODM3MjYsMTM0NzA1NjQyMCwxNTk3NTI0Mjc0LDkyODU0MzU3NCwxMzMwMDgxMzQ3LDE0NTA0NjMwMjUsMTI0NjE5NzA4OSwxODM2NDc5MzA1LDEzOTYyNjQyOTEsMTY2NTI4MzY5MCwxOTM0Mzg5MzU4LDE4ODY0NzYxMTgsMTI2NTIwMTczNywxNzY0OTgwNTYwLDIwMTg0NTU2NTQsMTEzMTIzNzQ1OCwxMzYzMjQ1MDkyLDkwOTM5OTA3Niw4Mjk5MTI2NTksMTI3ODgyODg1NiwyMDAzMjUxODE2LDE5NjUzMjE3NzksOTEzNzg4MjcyLDEzMjg5NjA4NzAsMjAzNzkyNzU0MywxNzE3MjAxNTI2LDExNjIxNzc4ODIsMTcxODE4NDAzOSwxMzE0MDEwOTY3LDEzNjIxMjc0MzUsMTI5NTQwNTQxNyw4MjkxMDg4NTYsMTQ0OTg3Mzk5MSw2MDg3MTY2MTAsMTE3OTAwNTI2MywxMTQ4Mjc5MTQ0LDE4OTkwNjY0MzYsMTI3ODQyNDg4OCwxOTAzNTgxNDkzLDE3ODQyOTI0MDMsMTM0ODU1NDgwNiwxNzAxMDEwMDA5LDE4NTI3OTg4MjQsMTg1MzQzNzI5NSwxNjk5NDkzNzI5LDEzMTU5Mjc2NDEsODk1NDQ0MzIzLDYwODc4NjI1OCwxMzMzMjI0NTIzLDE2NDkyMjU4MTEsMTc4MTk0NDM4OSwyMDM0OTg0MDMxLDE3MzQ1NjkwMjUsOTYyNTU2NDY5LDExOTg0ODIyNjEsMjAyMDc1Njg0MCw2MDg3MTk5MzksMTU5NzQ2MjYyOCwxNDMxOTc1Nzc1LDEzNjQwOTMwNDAsMTk4NjIyMTQyMSwxNDE0NjE0ODg5LDkzMDI5NjE4MSwxMzE0MDE5OTU2LDgxMjQwNTM0Nyw5NjA3NjcwNDYsOTYzMDE2ODA5LDEyNDg4NzIyNjcsMTc0OTMwNTQ1NSwxNjAxNjQ4NzUwLDYxMTI4MzA2MSwxOTMyODAwNjEyLDkwOTMyNTY1NCwxMTY0MjU5NjY4LDEyMzAxMzk5OTEsMjA1MTk0NTgyNiwxOTcwOTQ3MTQ2LDE0Njc1NzQwOTUsMTM2Njc3MjI5MiwxNTE1MTU1Mjg2LDEzNjM0NDE3MzIsMTMxNTY2MjEzMiwxODUyOTIyMTg4LDIwNTE1NjQ2NjMsODEyODc0MzI5LDE0OTgxNjk5MzEsMTgzMjI3NDUwMCw4MDk5MTI2NTcsOTYzNzk0NDk4LDE0NjY3Nzk5NzQsMTkwMjY2Mjk4OSwxOTg1MTE0NzMyLDE1MTc3MDMwMjYsMTM1MDEzMzc5NiwxMTc3NzA0MDA5LDIwMDMxODc3OTMsMTY0OTExMjEzNiwxMjQ0OTUwNjAwLDEyNDY1ODQ2NzcsMTYzMjE5OTAzMiwxMzE1NjY1MjIyLDEwOTM4MTc0NDksMTg2ODA1NTY1NSwxOTMzMTI4MDUyLDEzOTcxMTExMTksMTUwMDU5NjAzOSwxNzg0NjMyMTQxLDE3OTg1MTc4ODAsMTIxMzY3NTg0OCw5MzA1NzY5NDgsODc4OTk1MzAyLDg3Nzg2Mzk4Niw5MjgxNDYyNjAsMTczNDgxNjA4OCwxNDAwNTMyNTg0LDE4OTk1MjM0NTAsMTY2ODYyNTI0NywxOTM1MTAyNTY5LDE3ODYzMzI1MzMsMTg2NzM5OTUwOCwxMTc3NTc3MzMyLDE3MTg1ODE4ODAsMTY2NjAyMDQ2MCwxNDUwNzMyODc0LDIwNTIxNTExNjEsMTE3OTA4NzQyNiwxMzk5NzM0ODM1LDE0MzI5MDE5NTMsMTk1MzM3ODg5Nyw4NDM4NTk1NDIsMTQ2NTE1MTM1Miw4MTMxMzEwODAsMTEyOTIxNDgxNywxODg2ODEwMTk2LDEyMTU1ODg5NDksMTc1MjMyMjM3MiwxNDk4MTcxNDY1LDExOTgzNDc4ODYsMTkwMDM2MTgxNiwxMjYzMDg5NzY5LDE3NTIwNjg2NTgsMjAwMzMzNDk4OCwxNDE0MDE4NjYyLDE2MzIxMzQ5NzksMTM2NDQ4OTMzNywxNzM1OTQ2MDgxLDEzNjMzNjIzNjEsMTUxMzI0NTAxNCwxMTk0NzQwMjgwLDE0MzI3NzQyNTEsMjA1MjU0ODQwMCwxODE5ODk1MzQ0LDExMTE2NDIxNzgsMTExMDUzODU2NCwxODg2OTMwNDgzLDExMTUxMDk3MjAsODc5ODQzMzg0LDE4NDg4NjIwMjMsMTM5ODAzMTkyNCwxMzQ4NzQwMjE1LDE5MzU4OTg2NjAsMTk2NzY3MTY2NiwxNjQ3NjY2NzQ1LDkxMzY1ODk5NCwxMzQ3MTg3Mjk4LDkxMjIxMjgzOCwxMTc4Njg3NTYyLDEzNjM0NDA3NDksMTg0ODcyNTA5OSwxNjAxMTI3MDIxLDE0MTUxNDQ3ODUsMTY0ODcwNjExMywxNzY2NjA3OTc3LDE3NTEyNzU4MzEsMTczMzQ0NTQ0MywxNjM0NTQ4MDI1LDE4MTgzMTg0MTYsMTk1MjUzODkxNiwxNjQ4NDQwODg4LDExNjA4NjU2NDUsMTc2ODkwOTEzNyw4OTY4MDgwNDQsMTYzMjQ0OTE0MSwxNjQ3NDU3MDk3LDE0NjMyNDg0MzQsMTE5Njc4MDY1MCwxODg0NjM5MDQ0LDEyNzk4MDM3MDIsMTI5ODM1NjI2MCwxNjMxODY2NDg0LDE1MDAxMzE0MTIsOTEzMDcwMTM0LDEzMTM4ODYyODEsNjExNDEwMjk2LDExNjU1NzY1MTgsMTc2NTEwODU1NywyMDE5OTc5NjM1LDE0ODE3ODc1MDQsMTMxMzc2MTEzMSwxMTk4ODcyNjI5LDEyMTQ3Mjg1NDUsMTc2ODc4MjE5OSw4MTExNTkxNTYsMTg1MjMyNzI1NCwxMjE1MzEzMjM3LDEzOTczODA0MzEsOTI5Nzg1OTU0LDE0NTAzOTA4OTIsOTYyNTQ1NzE3LDEyOTUyMDI0MDgsMTc4Mzg0MzkyMSwxODY5NzYxODYwLDk0NjY4NDIyNSw4Nzc2MDkzMDAsMjAyMDM2ODY5MiwxNzM1MjkxNDQ0LDEzODI1MDc2MDUsMTU5OTQyNjM5MCw4OTQwNjAzMzcsMTE0MzIzMzA4OSw4Mjg1ODk2MzgsODc5OTEyNTYxLDE0NDc2Mzk0MTgsMTMzMTE4MDM1MywxNDE1Nzg3MzQ3LDE0NTA2MDMzNzksODYwMDU2OTQ2LDE3MDEzOTkzNjUsMTQzMzIzNjA4NSw4OTQ1MjU3NDYsMTY0OTIzOTY2NCwxODMzOTE1NzYzLDg1OTM5MDU1OSwxNjQ4NzExNzM3LDIwMTc3NDI2OTQsMTg4NDQ0NDUwMywyMDA0MTA5Mzk5LDE1OTg1NjcyMzgsMTg0OTE3NzQ2NiwxNjUyMDUwMDM0LDEzMzI0ODcyNTAsMTkxOTQzOTk5NCw4NjE0ODc0MzcsMTE0NDI3MjI0MCwxMzgzMzUyMTE4LDgxMjI3NDc4NiwxNzUxNjA4MTYzLDE4ODM3ODUyODIsMTMxNTUzMTM0MCwyMDUzNzIzNDI4LDEzNDU0MTAzNzcsMTkyMDE2NDk3NCwxMDk3NDI0NzU5LDE4MDI5ODk5MDUsMTM2NDQxNDI5MCwxOTAxMTYyNjAzLDE2MzQ1NTI0MzAsMTE0NTcxODA4NCwxNjQ4NTgwNDczLDEyMzIyMjUzODYsMTEyOTYwMjg2NCwxODUxMDc4NzM3LDE1OTg3Njk3MzUsMTg5OTUwOTA4OSwxMzk5NjA0NTkyLDIwMTk5Njg4NTgsMTEyODQxNzg1OSwxNzE4OTc0ODE1LDYxMDM2NjUzMywxNzE4MDM5OTEzLDg2MTA4OTkxNCwxNzg1NjE1MjA0LDE5MTg5NzI5NjQsMTUxNzk2NjM4NSwxOTE4MDU4ODA1LDg0NDY0NjczMiwxOTk4ODcyNDI5LDExNzgwMzUwNDMsMTcxNTY5Mjg1MywyMDAzMDU0NjYzLDE3ODU5MzU0MjUsMTkzNjA5MDQzOCwyMDIwMDM2OTM1LDE5MDA4ODUwNDMsOTExNjM0NDg5LDE5NjYyMjgzMzksMTk4Mjg4MTYwNiwxMTEwNTI0NTEzLDEwOTgzMzU4MjcsMTE2NDY2Nzk1OSwxMjQ1OTk4MTYzLDIwMzQ3NzU4ODgsMTk4NTE2MzU5NCwxNTk4MzcyMjA2LDExMTE5NjM0NzQsMTQ0OTc1MDM1NiwxNjMyMzMxNTk1LDg3NjE2OTg0NiwxMTYyMjM3ODAzLDEzNjQyMTkyMzgsMTc0ODI1OTY3MywxMzk4OTYxMjY0LDE0NjMwNDcwMjEsMTE0NjcwNDk4MCwxMjgwNTkzNTE3LDEwOTYyMzc2NTIsMTE0NTI3MjQzOCwxNzEzNjYzODE1LDkyODQwMjI2MSw4OTY0OTY2OTcsMTIxNTMxODA2NiwxMjI4MzYwMDM0LDEzNjQ1NTUzNjIsMTgxOTk1NTc2OSwxMjEyNjMxMzY1LDEyNDY4MzY4MTgsODk1NzY5MTYxLDE2NTA1NTUyMDQsODI1MzEzMzY5LDExODIyMjMyMDUsODI5NDM2NzQzLDEyNDcyNDEwNjUsMTgxOTYyNTU1Niw2MTA1NDI2NDQsMTM3OTE1OTEyOCwxOTE4MjU4Nzg3LDEyMTQzNDMyNDYsMTgxOTU2MjA2OSwxOTUxOTU1MDQyLDExOTU5MzIyNjgsMTE5ODY2NjYwNSwxNDYxOTk3Njc4LDE3NjgzNzAyNTQsMTE4MTMxNDE0NiwxMTMyMDg4OTAwLDE5MzE3Njk5MDgsMTI2MTk3OTI0NiwxODUwMjkxNzY2LDE2MzIyNjU4MzEsMTcwMDQyNTU4MywxNjMwODE5MTQ0LDEzNDY3MTc4MDUsMTQxMTY3MjQyMywxNzE2NTQ3MTU4LDEzNDY1MjE2NTQsMTkzNjg3ODY0MiwxODE5NTAwMzc3LDEyODI5NDY2NzAsODkzODczNzAwLDE3ODQzMDE2MTYsMTgxNjYyMTY4MiwxODE1MjQzODY0LDE3MzI5OTAzMjUsMTg1MDgyMTk1NywxMzY2NzA3NTExLDE5MDM1ODU4ODksMjAwMjE0MzMwOCw5NDU0NDY3MDgsMTgxNTU2NDM5OCwxMzY0ODc3MTM4LDEyODA3MzM1NDIsMTQwMDE5NTEzOSwxNzY2MDExMTkwLDE4Njc5MjEyNTksOTQ2ODczNDM0LDEyMjk4NzM3MTIsMTIzMTM2ODc3NCwxMjYxNzk0NDEwLDIwMjAzMDU1MDgsMTQ4Mjk3NDgzNSw5NDQ1ODc4NzUsMTg2NjU0MDExNywxODE2ODA4MjYxLDEyOTYzMjcwMTEsMTU5NzI2MzE3MSwxMTc4ODc0MjE3LDE5MzI4ODA5NTEsODA4NjEyMTc4LDk0NDI2OTY3NSwxNzE5MDI4NTY2LDE4ODM4NjAzMDAsMjAyMDgzMjM0NiwxNzE3NzI5Mzc3LDEyOTcxNjcxOTksMjA1MzA1OTE0OCwxNjY2MjcwNTY4LDE0OTY5Mjc4NTYsODQxMjMyNjg4LDE5MTkxODU0OTcsMTIxNDY2MjIzOSwxOTAzMzc5Nzk2LDEyMzExODE2MDQsMTQzMzY3ODE2NSwxOTM3Mzk4MTI4LDkxMzUzMzc2OCwxMTgwMDU3OTM3LDE5MzQ5Nzg5MDMsMTY0OTU2MTQxNywxODE3MDEzODA4LDE3ODE5NTM5MDEsMTkxODUxNTU0NSwyMDM1NzcwNDkwLDE4MzM5ODg5ODIsMTE5NjA1OTI1MiwxNDE1NzIxNTYxLDIwMjExNDg0ODUsMTIxNDYwNTE1NCwxNjAwODAyOTE5LDE0MTU4NTMxNTgsMTE5NDY3NzA4MiwxMzYzMzYyMTM4LDE4MTYyMjQzMDYsMTk2ODcyNjg4NCwxNDk4NTY0MTk0LDE3ODUzNTgzOTIsMTczNTIxOTc5NSwyMDAxNjgwMTY0LDYwOTQzOTU1NSwxOTAzMjYyMzI3LDE2NTE5MDk2ODUsMTQ5NjYwNTQ5MiwxOTg3MTM2ODQyLDEzMjkwOTQ1MDIsMTQ2NDIzNjM1NCwxMzQ5NDEzOTkxLDEyODE1ODI5NjMsMTY2Njg2OTI5NywxODAzMDU2NDgxLDE3NjY5NDYxMzgsMTY2NjE1MTQ3MiwxOTg1NTA3MTM3LDE0MzE1OTk0MTAsMTYzNTQwODQ1NSw2MDg1MjI1NzQsMTk3MDYyMTAzOSwxOTAxNjg1NjA4LDExNDQyMDY2NTgsMTM4MDQwNDM0MywxMTc5MzM4Mjk2LDEzNjQ1NTYxMTgsMTgzNTE2ODgyMiwxNzE5MTAwNDcyLDE0NjMzODQ0MDcsMTgwMTUzNzM3NywxOTIwNTQ2Njc4LDE4MTUxNzIxNjMsMTkxNjA5NzEwNCw5NjQxMTg1OTMsMTIyODIyOTcwMywxNzg2MTQ0ODkwLDg5NDY1Nzg0NCwxNDQ4MTA5NDM0LDEzMzAyMTI0MjUsMTc1MjI1NTA0Nyw4NjIxNTc0MDEsOTQ0NTM0ODcyLDEwOTY4OTYzNDMsMTc2OTMwMjYyNSwxNzAwMjE0OTA1LDIwMjA4ODQ4NDMsMTExMjc2MTcyMSw4Mjc1NTIwNTMsMTg4NTI5MDgwNywxMTQ3NDkyNDY2LDEyOTg4MDY4NTQsODQyMDk5NTExLDE0ODM5NTQwMzksMTgxNzcxOTg3NiwxMDk4MTk5NjYyLDk2MDY1NjQ5OCwxNDE1OTIzNzk0LDE1MTQ4MTI0NzIsMjAxOTk2NDAwMSwyMDE2OTYxNTg5LDIwMzUyNTA5OTYsMTQ0NjMzOTkzNyw5MTE1NTk3MzQsMTE2NDcyNzM5MSwxNDY3NjQxNzA5LDIwMjA4MzM5MDcsMTgzNDk3MjUwMiwxNzY3MzMwNjQ3LDE1MTY2NTE2MjQsMjAwMjE0NDU4NSw5NjM5OTcyNTYsMTIzMDM5MjEzOCwxMjQ4Mjg5ODYzLDIwMjA0MjY4MDcsMTg4NjM0MTY5OCwxMzQ1NDg0ODg3LDg2MjA4MzE1NCwxODUyNTM0MTI3LDIwMTY1NTU4OTAsMjAwMjkzMjgyNiwxMjY1OTczMzQ1LDEzNjU1OTA4NTQsMTczNjA2MTI4MSwxODY0NjUyMzc0LDExNzg5NDY2MTcsMTc1MDIyNDc0MiwxMTA5Njg2ODU4LDg5MjQyMzIwNCwyMDE5NzA2NDM4LDE3OTk3NjIyODMsMjAzNzcyNDIxNiwxNDk3OTA3ODIzLDg0MzI3OTE5MywyMDM3Nzk3NDYzLDEzNjY4MzExOTQsOTI5NjQyMDY0LDg5NTU3MjA3MCwxMDkzNjkwOTg0LDE3MzU4NzAwMDMsMTE3NzgzNDg0NywxMTc3NzY0MjEyLDE4MTY4MTM4OTUsMTk1MzQ1Mjg4MSwxNDAwNDU4MDU3LDE3MTY2NzUxNDAsMTk3MDYyODk0MiwxNDMzODIzMzIwLDE4MzQ5NTkyMDIsMTY1MTcyMjU2NywxMjgxNTEzNTQzLDE4MTU1MDUwMTAsMTE2MTI1MTQxMywxOTgzMDEwNDIyLDE5NTI3MjQwODgsMjA1MDMxNjYyMSw5MTA0NDAyNjMsODEwNTc1NjY5LDEyNjI1NjM5NDAsMTI0NDg3NzE0NCwxOTcwNzUyMzY4LDE5Njg3ODk4MTAsMTQ5ODQ0MTU0NCw4NDYxNjA5NzEsMTcxNTg4MjgyMSwxMzE1OTkxODU2LDE5ODI5NDc3MDYsMTY4MDg5NzMzMCwxMTgxMzYxMjY4LDEzNDQ1NTUzMzMsMTExMDkzMTUzMywxODM2NDE1MzUzLDE0ODI5MDUxMzgsMTkxNzk5MDc1NCw5NjE0MzU3NzAsMTIxNTcxNTkxMSwxNjg1MDc4Mzc4LDE3MDAyNzkxNDAsMTg2NTk2MDAwOSw5MzA2ODkzNzgsMTM5NTg3NTY2NCwxNTE2NTk5NDE1LDExNjIwMzgzNTgsMTE2MTkxODUzMywxNTk5MDk2MTg1LDEzNDk4NzM1MTEsODEwNDMyNTYzLDEzOTk0ODcwNzUsODI3MTQ5ODgwLDIwMjA0MjgxMDcsNjA4NzgxMTU4LDg3NzIxNjg3MywxOTAxNzU0MTk4LDEzODI0MjU3MDQsMTk2ODcyMjI5MywxNzQ5ODI1NjM3LDE5MzY3MzczMzYsMTczMTQ4MDQzOCwxNjk5NDkzMjAzLDExMzA4MzI5ODQsMTc4MzE4MzIxOCwxOTcwNDMxNTYwLDE3MzE1NDQ5MTEsMTk4NTYyOTMwNSwxMzEyMzEyNjg1LDEyMzIxNjk3ODIsOTQ0OTIzMTg5LDgwODcyNzY1NywxMzk4NzU3OTc0LDE3MTYxNDM0MDksOTYzMzk3NzAyLDE3MTM2NTk2OTksMTc2NDk4MDg1NywxODg1ODg0MjcwLDE3MTc3MjQyNzEsMTE4MTE2NzkzOCwxMzMwMjYzNjU1LDExNzc3NzAzNDUsMTcxNTAzOTc5Myw4MTI4MDY5OTQsMTQ2NTg3NWUzLDExNjQ0NjI5MzgsMTg2NjYwODc2MSwxNDE0MjkyNTk2LDk2MTY5MjIxMiwxNDMxMjU5NDQ4LDEzNjI0NTQ4NzEsMTgzMzI2NDc0OCw5NDcyMTgwMTgsMjAwMzY1NTIyMiw4MTAxMDg3NzYsOTQzOTMzNTQyLDE0MTM2MzkwMDcsMTM5Nzk3NTE1MCwxNDQ2MzQwMTQ2LDExNDg0NzQ2NzcsMTk4NjM1MTk1NiwxODE1MDk5MjM5LDgwODYxMDM1NywyMDUwMzgxNjYzLDE3Njk0MTk1NjksMTY5Njg2NzM3NiwxNTk3MzM5MjM2LDE3MTc3OTQ2MTUsMTU5ODM4MjY3MSwxMzQ5Nzk4MjIwLDExNjQ1MzA1NDIsMTExMDg2MjQxNCwxMTc4MTY2OTA0LDE0NDc2NDkwNzMsMTkwMDk1MDkwMSwxODUxNDE3MTkwLDExOTgxNTg5MjgsMTYwMTExOTI4NCwxNjMyMTM5MzU0XTt2YXIgQTljPXt9O3ZhciByVWQ9Im9hblVDY0l1JHRreHFBX3VJZUxMS2skRW9GbWpXJGNoVDZmWVFSWmRkUHJYOElTVGt0VVI5VFdQcnFfa1p1TWRSelZ0SzdWTWhVVGM3MmZ4OTdCWTRkYjU4N3JJIjt2YXIgRGlwPSJkSkNLNzRhWkhsM1RjdExZV3lsdW50M1B2V2VQTUtGYmw2SG13M1RnU0lWUEFyaGZ2eWVvQU9nMlRoUnZQbFVBa0dxTHNkcXlNZkhLbEpyYU1aZmlsR2ZzMVROblZZU1QySkpIRExJVlFvTzRfdndNTkRkdUR1V3ZmbGVqQ2Zxenp2UHFuYzhhX1FoTnN6QzUyNWlWaVlSQV9qSGNUYmNCQiRtSFY5ajNwWFZJXzRjMjJzJEtSZHBMak80M0ljUXVoa01qcUV3b1RReWlhZGlFWHJsUFlZRFE1WmNFamdsNDBpS2VtZ0hPTUp4SENqZTF2UlV1NmpLTWtVRmROT01hekNWeHBOd0hORmpEcGlscHJRU2twZDNwRDJxV21aY3o3NGk0aHFrWjckQjdsYkxEVjFPWjJFQSRyUHRTRzNKV240OU9mbVdpNUlCTnhacmZ0ZUJxaDFtbExoRTVGMUFuNmNkcTFiejgxM1JROTN1dWVBSHlRbTNRZm03aVUzb284cFFSakhNS2NMd0dmT08xb2txaExtbWdoVUZIN2JUYUtHdXFmbCR0NDRhWWRMSTV1Y0drTnFnd3NxNkVfZXpLQzg1SFkkMSRuNXFickJlajBya3p3R3EySG1RUWdYNHNBUEt5NDRiaVJTRVpyUkxwYUczQW1jdWJUNE1RaVo5TEJXdkxrNkJ1YVZzb2JBOWNHMHdqUWJFdmRodWh3QjdFdXEiO3ZhciBQT1o9Il9YSVh2cW5qU0c1emNWdGhpazRxbVRpa200WTBvdTdJV19ndzRaYzRNRTBIblJBZktWdEd1RmpTNUJtY0lSdG5oUkZjakZ6dVJmRWFVNUtySU43YWN3WFVvVEdvWTB4OXVxSHRlTkc2dWp0SmYkWXoySDRtaGpZZ042WkFGX0k5anUxeHZLeExDV0FpSTFmWk9nQmlDWFAyWXBGX1dvTHdXelNwX2d1dm0zdHNUQTBaMzJXSVNiZnBnVUZZM3FoUzR0cVU5d09tWTczbVdRdFk3bzhSTk5fWFpXc2duR2tXejhodzhtR1JhZkpHa3VPelF6SkVWbkhVdUdUT0xkbnZQalckSjh3anNwVlBoRkRBZGQ2Ukt1eWY5SHpZMEtkR1VGa19MMngxYUlldEckSUtSZFZiQkM5WkxKIjt2YXIgTWhBPXZvaWQgMDt2YXIgUHl0PSJBZDBHMmpFR1NVb2xXQXJDdGg1aFpCYUJfS0ZONmlyNGEyMXlwa0g0VXk1QkRRVnBsQ190elpYYWlrbkJldFlnUTA4VTAkNHZrakRUTkZucGltc0ExUUxSV1oxMXkzNG1SSng4OHFJb0RoUG5Gb3UkeFVNOGkiO3ZhciBJdHU9W2Z1bmN0aW9uKCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSYwKTtzMzIucHVzaChjRFdbSWo2XSk7cmV0dXJufSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3ZhciBNRGE9czMyLnBvcCgpO3ZhciBJWDQ9czMyW3MzMi5sZW5ndGgtMV07aWYoQXJyYXkuaXNBcnJheShJWDQpKXt2YXIgUXZXPUFycmF5LmZyb20oTURhKTtmb3IodmFyIFV4OD0wO1V4ODxRdlcubGVuZ3RoO1V4OCsrKXtJWDQucHVzaChRdldbVXg4XSl9fWVsc2V7T2JqZWN0LmFzc2lnbihJWDQsTURhKX1yZXR1cm59LGZ1bmN0aW9uKCl7MCxBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSYwKTt2YXIgY2hrPWNEV1tJajZdO3ZhciBVUEc9TTFvW2Noa107aWYoVVBHIT09dm9pZCAwKXtpZihVUEc9PT1FWGcpe3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihVcjAoNDApK2NoaytVcjAoMCkpfXMzMi5wdXNoKFVQRyk7cmV0dXJufWlmKGNoayBpbiBNMW8pezAsczMyLnB1c2goVVBHKTtyZXR1cm59czMyLnB1c2goZ1A4W2Noa10pO3JldHVybn0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3ZhciBVWGc9b1ZrKGNEV1tJajZdKTtpZihVWGcuYSl7czMyLnB1c2goKGZ1bmN0aW9uKHUsY3MsY3Qpe2lmKHUucyl7cmV0dXJuIGFzeW5jIGZ1bmN0aW9uKC4uLkU3TSl7cmV0dXJuIHdQSyh1LEU3TSxjcyxjdCl9fXJldHVybiBmdW5jdGlvbiguLi5FN00pe3JldHVybiB3UE0odSxFN00sY3MsY3QpfX0pKFVYZyxNMW8sc2ZtKSl9ZWxzZXtzMzIucHVzaCgoZnVuY3Rpb24odSxjcyl7aWYodS5zKXt2YXIgZm49YXN5bmMgZnVuY3Rpb24oLi4uRTdNKXt2YXIgc0hPPXRoaXM7aWYoIXUuc3Qpe2lmKHNITz09bnVsbCl7c0hPPWdsb2JhbFRoaXN9ZWxzZXt2YXIgQUZHPXR5cGVvZiBzSE87aWYoQUZHIT09VXIwKDUzKSYmQUZHIT09VXIwKDQ4KSl7c0hPPU9iamVjdChzSE8pfX19cmV0dXJuIHdQSyh1LEU3TSxjcyxzSE8sdm9pZCAwLGZuLndkNil9O3JldHVybiBmbn12YXIgZm49ZnVuY3Rpb24oLi4uRTdNKXt2YXIgc0hPPXRoaXM7aWYoIXUuc3Qpe2lmKHNITz09bnVsbCl7c0hPPWdsb2JhbFRoaXN9ZWxzZXt2YXIgQUZHPXR5cGVvZiBzSE87aWYoQUZHIT09VXIwKDUzKSYmQUZHIT09VXIwKDQ4KSl7c0hPPU9iamVjdChzSE8pfX19cmV0dXJuIHdQTSh1LEU3TSxjcyxzSE8sdm9pZCAwLGZuLndkNil9O3JldHVybiBmbn0pKFVYZyxNMW8pKX1yZXR1cm59LGZ1bmN0aW9uKCl7aWYofih+d1JxJn4wKSooKHdScV4wKSsod1JxJjApKSU0IT09Mil7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmMCk7czMyLnB1c2goc2ZtKTtyZXR1cm59ZWxzZXt2YXIgX2Q9MDtfZD0oX2R8MCk9PT1fZCYmKDF8MCk9PT0xPyhfZHwxKSsoX2QmMSk6X2QrMX19LGZ1bmN0aW9uKCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSYwKTtzMzIucHVzaCh3Qk9bSWo2XSk7cmV0dXJufSxmdW5jdGlvbigpezAsQU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSYwKTtzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXT1+czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoJn4xKS0ofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXTtyZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpJn4wKTt2YXIgY2hrPWNEV1tJajZdO2lmKGNoayBpbiBNMW8pe3MzMi5wdXNoKHR5cGVvZiBNMW9bY2hrXSk7cmV0dXJufXMzMi5wdXNoKHR5cGVvZiBnUDhbY2hrXSk7cmV0dXJufSxmdW5jdGlvbigpe2lmKH4ofigod1JxXjApKyh3UnEmMCkpJn4xKSp+KH4oKHdScV4wKSsod1JxJjApKSZ+MSklMiE9PTApe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmfjApO3ZhciBzWmk9KElqNnw2NTUzNSleKElqNl42NTUzNSk7dmFyIGs5Mj1+KH4oSWo2Pj4+MTYpfH42NTUzNSk7czMyLnB1c2god0JPW3NaaV08d0JPW2s5Ml0pO3JldHVybjtpZihBTjQ8UXRXKXtrbm09KChrbm18KH4yNDk0MzEzMzU5JjExOTI1MzY1MTh8MjQ5NDMxMzM1OSZ+MTE5MjUzNjUxOCkpJn4oa25tJih+MjQ5NDMxMzM1OSYxMTkyNTM2NTE4fDI0OTQzMTMzNTkmfjExOTI1MzY1MTgpKSk+Pj4wfVF0Vz1BTjR9ZWxzZXt2YXIgX2Q9MDtfZD0oX2R8MCk9PT1fZCYmKDF8MCk9PT0xPyhfZF4xKSsyKihfZCYxKTpfZCsxfX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3ZhciBnRE89czMyLnBvcCgpO3MzMltzMzIubGVuZ3RoLTFdPXMzMltzMzIubGVuZ3RoLTFdPj1nRE87cmV0dXJufSxmdW5jdGlvbigpe2lmKCh+KCh3UnFeMCkrKHdScSYwKSkmfih+d1JxJn4wKXwod1JxXjApKyh3UnEmMCkmfn4ofndScSZ+MCkpPT09MCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSYwKTt2YXIgY2hrPWNEV1tJajZdO3ZhciBZRm09TTFvO3doaWxlKFlGbSl7aWYoVU4yLmNhbGwoWUZtLGNoaykpe3ZhciBZRk09WUZtW2Noa107WUZtW2Noa109KFlGTXwwKT09PVlGTSYmKDF8MCk9PT0xPyhZRk1eMSkrMiooWUZNJjEpOllGTSsxO3MzMi5wdXNoKFlGTSk7cmV0dXJufVlGbT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoWUZtKX1yZXR1cm47aWYoQU40PFF0Vyl7a25tPSgoa25tfCgoNDI5MTk2NDY3NXwwKT09PTQyOTE5NjQ2NzUmJig3Mzk4NzM5Nzh8MCk9PT03Mzk4NzM5Nzg/KDQyOTE5NjQ2NzUmfjczOTg3Mzk3OCktKH40MjkxOTY0Njc1JjczOTg3Mzk3OCk6NDI5MTk2NDY3NS03Mzk4NzM5NzgpPj4+MCkmfihrbm0mKCg0MjkxOTY0Njc1fDApPT09NDI5MTk2NDY3NSYmKDczOTg3Mzk3OHwwKT09PTczOTg3Mzk3OD8oNDI5MTk2NDY3NSZ+NzM5ODczOTc4KS0ofjQyOTE5NjQ2NzUmNzM5ODczOTc4KTo0MjkxOTY0Njc1LTczOTg3Mzk3OCk+Pj4wKSk+Pj4wfVF0Vz1BTjR9ZWxzZXt2YXIgX2Q9MDtfZD0oX2R8MCk9PT1fZCYmKDF8MCk9PT0xPyhfZF4xKSsyKihfZCYxKTpfZCsxfX0sZnVuY3Rpb24oKXtpZigoKHdScV4wKSsod1JxJjApKSp+KH53UnEmfjApJTQhPT0yKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3ZhciBnWDg9czMyLnBvcCgpO3ZhciBpdGVyYXRvcj1nWDhbU3ltYm9sLml0ZXJhdG9yXSgpO3ZhciBnM2k9aXRlcmF0b3IubmV4dCgpO3MzMi5wdXNoKHtZeE86aXRlcmF0b3IsTTdROiEhZzNpLmRvbmUsd3hnOmczaS52YWx1ZX0pO3JldHVybn1lbHNle3ZhciBfZD0wO19kPShfZHwwKT09PV9kJiYoMXwwKT09PTE/KF9kXjEpKzIqKF9kJjEpOl9kKzF9fSxmdW5jdGlvbigpe2lmKCgofih+d1JxJn4wKV4xKSsofih+d1JxJn4wKSYxKSkqKCh+KH53UnEmfjApXjEpKyh+KH53UnEmfjApJjEpKSUyIT09MCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmMCk7dmFyIFFqaT1zMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXTtzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGgmfjEpLSh+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdPXMzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigyfDApPT09Mj8oczMyLmxlbmd0aF4yKS0yKih+czMyLmxlbmd0aCYyKTpzMzIubGVuZ3RoLTJdO3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigyfDApPT09Mj8oczMyLmxlbmd0aCZ+MiktKH5zMzIubGVuZ3RoJjIpOnMzMi5sZW5ndGgtMl09UWppO3JldHVybn1lbHNle3ZhciBfZD1+KH4wJn4wKTt2b2lkIF9kfX0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3ZhciBzPU0xbztpZihzJiZjRFdbSWo2XWluIHMpe3NbY0RXW0lqNl1dPXMzMi5wb3AoKX1yZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJn4wKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT0oczMyW3MzMi5sZW5ndGgtMV18MCk9PT1zMzJbczMyLmxlbmd0aC0xXSYmKGdET3wwKT09PWdETz8oczMyW3MzMi5sZW5ndGgtMV18Z0RPKSsoczMyW3MzMi5sZW5ndGgtMV0mZ0RPKTpzMzJbczMyLmxlbmd0aC0xXStnRE87cmV0dXJufSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmMCk7d0JPW0lqNl09czMyLnBvcCgpO3JldHVybjtpZihBTjQ8UXRXKXtrbm09KH5rbm0mKCg0OTA0MzU4Njd8MCk9PT00OTA0MzU4NjcmJigxMjMzMzEyNDY2fDApPT09MTIzMzMxMjQ2Nj8oNDkwNDM1ODY3XjEyMzMzMTI0NjYpLTIqKH40OTA0MzU4NjcmMTIzMzMxMjQ2Nik6NDkwNDM1ODY3LTEyMzMzMTI0NjYpPj4+MHxrbm0mfigoKDQ5MDQzNTg2N3wwKT09PTQ5MDQzNTg2NyYmKDEyMzMzMTI0NjZ8MCk9PT0xMjMzMzEyNDY2Pyg0OTA0MzU4NjdeMTIzMzMxMjQ2NiktMioofjQ5MDQzNTg2NyYxMjMzMzEyNDY2KTo0OTA0MzU4NjctMTIzMzMxMjQ2Nik+Pj4wKSk+Pj4wfVF0Vz1BTjR9LGZ1bmN0aW9uKCl7aWYoKCh+KH53UnEmfjApfCh3UnFeMCkrKHdScSYwKSkmfih+KH53UnEmfjApJih3UnFeMCkrKHdScSYwKSkpPT09MCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7dmFyIGdETz1zMzIucG9wKCk7czMyW3MzMi5sZW5ndGgtMV09KHMzMltzMzIubGVuZ3RoLTFdfDApPT09czMyW3MzMi5sZW5ndGgtMV0mJihnRE98MCk9PT1nRE8/KHMzMltzMzIubGVuZ3RoLTFdJn5nRE8pLSh+czMyW3MzMi5sZW5ndGgtMV0mZ0RPKTpzMzJbczMyLmxlbmd0aC0xXS1nRE87cmV0dXJuO2lmKEFONDxRdFcpe2tubT0ofmtubSYoKDM4MjgzNzM1NTV8MCk9PT0zODI4MzczNTU1JiYoMjc2MjgyODU4fDApPT09Mjc2MjgyODU4PygzODI4MzczNTU1XjI3NjI4Mjg1OCktMioofjM4MjgzNzM1NTUmMjc2MjgyODU4KTozODI4MzczNTU1LTI3NjI4Mjg1OCk+Pj4wfGtubSZ+KCgoMzgyODM3MzU1NXwwKT09PTM4MjgzNzM1NTUmJigyNzYyODI4NTh8MCk9PT0yNzYyODI4NTg/KDM4MjgzNzM1NTVeMjc2MjgyODU4KS0yKih+MzgyODM3MzU1NSYyNzYyODI4NTgpOjM4MjgzNzM1NTUtMjc2MjgyODU4KT4+PjApKT4+PjB9UXRXPUFONH1lbHNle3ZhciBfZD0wfX0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSYwKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXTw8Z0RPO3JldHVybjtpZihBTjQ8UXRXKXswLGtubT0ofmtubSYoKDM2OTkxNTYyMzF8MCk9PT0zNjk5MTU2MjMxJiYoMTQ3MDY1NTM0fDApPT09MTQ3MDY1NTM0PygzNjk5MTU2MjMxXjE0NzA2NTUzNCktMioofjM2OTkxNTYyMzEmMTQ3MDY1NTM0KTozNjk5MTU2MjMxLTE0NzA2NTUzNCk+Pj4wfGtubSZ+KCgoMzY5OTE1NjIzMXwwKT09PTM2OTkxNTYyMzEmJigxNDcwNjU1MzR8MCk9PT0xNDcwNjU1MzQ/KDM2OTkxNTYyMzFeMTQ3MDY1NTM0KS0yKih+MzY5OTE1NjIzMSYxNDcwNjU1MzQpOjM2OTkxNTYyMzEtMTQ3MDY1NTM0KT4+PjApKT4+PjB9UXRXPUFONH0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmfjApO3MzMi5wdXNoKElqNjxnMTAubGVuZ3RoP2cxMFtJajZdOnZvaWQgMCk7cmV0dXJuO2lmKEFONDxRdFcpe2tubT0ofmtubSYoKH4yODk4MDU3ODAmNDE5MDQ4NTUxM3wyODk4MDU3ODAmfjQxOTA0ODU1MTN8OTkzNzM1NTcyKSZ+KCh+Mjg5ODA1NzgwJjQxOTA0ODU1MTN8Mjg5ODA1NzgwJn40MTkwNDg1NTEzKSY5OTM3MzU1NzIpKXxrbm0mfigofjI4OTgwNTc4MCY0MTkwNDg1NTEzfDI4OTgwNTc4MCZ+NDE5MDQ4NTUxM3w5OTM3MzU1NzIpJn4oKH4yODk4MDU3ODAmNDE5MDQ4NTUxM3wyODk4MDU3ODAmfjQxOTA0ODU1MTMpJjk5MzczNTU3MikpKT4+PjB9UXRXPUFONH0sZnVuY3Rpb24oKXtpZigoKH4ofigod1JxXjApKyh3UnEmMCkpfH4xKXwwKT09PX4ofigod1JxXjApKyh3UnEmMCkpfH4xKSYmKH4ofigod1JxXjApKyh3UnEmMCkpfH4xKXwwKT09PX4ofigod1JxXjApKyh3UnEmMCkpfH4xKT8ofih+KCh3UnFeMCkrKHdScSYwKSl8fjEpfH4ofigod1JxXjApKyh3UnEmMCkpfH4xKSkrKH4ofigod1JxXjApKyh3UnEmMCkpfH4xKSZ+KH4oKHdScV4wKSsod1JxJjApKXx+MSkpOn4ofigod1JxXjApKyh3UnEmMCkpfH4xKSt+KH4oKHdScV4wKSsod1JxJjApKXx+MSkpJTIhPT0wKXt2YXIgX2Q9fih+MCZ+MCk7dm9pZCBfZH1lbHNle0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmfjApO3ZhciB2YWx1ZT1zMzIucG9wKCk7dmFyIGNoaz1jRFdbSWo2XTt2YXIgWUZtPU0xbzt3aGlsZShZRm0pe2lmKFVOMi5jYWxsKFlGbSxjaGspKXtZRm1bY2hrXSs9dmFsdWU7czMyLnB1c2goWUZtW2Noa10pO3JldHVybn1ZRm09T2JqZWN0LmdldFByb3RvdHlwZU9mKFlGbSl9cmV0dXJufX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3MzMi5wdXNoKHZvaWQgMCk7cmV0dXJufSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3ZhciBRNWs9czMyW3MzMi5sZW5ndGgtMV07czMyLnB1c2goUTVrLlk3aT49UTVrLnNSZS5sZW5ndGgpO3JldHVybn0sZnVuY3Rpb24oKXtpZigoKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSYmKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKT8oKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSl8KH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKygoKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpJigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkpOigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkrKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSklMiE9PTApe3ZhciBfZD0oMF4wKSsoMCYwKTt2b2lkIF9kfWVsc2V7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSYwKTtzMzJbczMyLmxlbmd0aC0xXT0hczMyW3MzMi5sZW5ndGgtMV07cmV0dXJufX0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSYwKTtNMW89T2JqZWN0LmdldFByb3RvdHlwZU9mKE0xbyl8fE0xbztyZXR1cm47czMyLnB1c2goRVhnKTtpZihzMzIucG9wKCkhPT1FWGcpe2tubT0ofmtubSYoKDI1ODMwNjgyM3w5NDMwOTQ1MjEpJn4oMjU4MzA2ODIzJjk0MzA5NDUyMSkpfGtubSZ+KCgyNTgzMDY4MjN8OTQzMDk0NTIxKSZ+KDI1ODMwNjgyMyY5NDMwOTQ1MjEpKSk+Pj4wfX0sZnVuY3Rpb24oKXtpZigoKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSYmKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKT8yKigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKXwofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSktKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpXigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkpOigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkrKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSklMiE9PTApe3ZhciBfZD0wO19kPShfZHwwKT09PV9kJiYoMXwwKT09PTE/KF9kXjEpKzIqKF9kJjEpOl9kKzF9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTtzMzIucHVzaChudWxsKTtyZXR1cm59fSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmMCk7dmFyIHZhbHVlPXMzMi5wb3AoKTt2YXIgTXJFPXMzMi5wb3AoKTt2YXIgRUhXPXMzMltzMzIubGVuZ3RoLTFdO0VIV1tNckVdPXZhbHVlO3JldHVybn0sZnVuY3Rpb24oKXtpZih+KH53UnEmfjApKigod1JxXjApKyh3UnEmMCkpJTQ9PT0zKXt2YXIgX2Q9fih+MCZ+MCk7dm9pZCBfZH1lbHNle0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSZ+MCk7czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoJn4xKS0ofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXT0tczMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV07cmV0dXJufX0sZnVuY3Rpb24oKXtpZih+KH53UnEmfjApKigod1JxXjApKyh3UnEmMCkpJTQhPT0yKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1+KH5zMzJbczMyLmxlbmd0aC0xXSZ+Z0RPKTtyZXR1cm47aWYoQU40PFF0Vyl7a25tPSgoa25tfCh+Mjk5NzA2ODgyNyYxNjI5MTc1Mzc4fDI5OTcwNjg4MjcmfjE2MjkxNzUzNzgpKSZ+KGtubSYofjI5OTcwNjg4MjcmMTYyOTE3NTM3OHwyOTk3MDY4ODI3Jn4xNjI5MTc1Mzc4KSkpPj4+MH1RdFc9QU40fWVsc2V7dmFyIF9kPTA7dmFyIF9lPTE7dm9pZCgoX2R8MCk9PT1fZCYmKF9lfDApPT09X2U/KF9kXl9lKSsyKihfZCZfZSk6X2QrX2UpfX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJn4wKTtpZihZdGEmJll0YS5sZW5ndGg+MCl7dmFyIGN6UT1ZdGFbKFl0YS5sZW5ndGh8MCk9PT1ZdGEubGVuZ3RoJiYoMXwwKT09PTE/KFl0YS5sZW5ndGgmfjEpLSh+WXRhLmxlbmd0aCYxKTpZdGEubGVuZ3RoLTFdO2lmKGN6US5ZaHE+PTApe0FyMj0xO2NGNj12b2lkIDA7WXRhLnBvcCgpO3MzMi5sZW5ndGg9Y3pRLk1KMjt3UnE9Y3pRLllocSoyO3JldHVybn19cmV0dXJuIE1oQT12b2lkIDAsQTljfSxmdW5jdGlvbigpe2lmKH4ofndScSZ+MCkqKCh3UnFeMCkrKHdScSYwKSklNCE9PTIpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpJjApO3ZhciBFVDY9fih+SWo2fH4yNTUpO3ZhciBjZDA9KElqNj4+Pjh8MjU1KV4oSWo2Pj4+OF4yNTUpO3ZhciBJWDQ9fih+KElqNj4+PjE2KXx+NjU1MzUpO2lmKCEod0JPW0VUNl08Y0RXW2NkMF0pKXt3UnE9SVg0KjJ9cmV0dXJuO2lmKEFONDxRdFcpe2tubT0ofmtubSYoKH4yMjk1NDM1MDQ0JjE4NzU3NDQ0MDl8MjI5NTQzNTA0NCZ+MTg3NTc0NDQwOXw4ODMxOTY5MTYpJn4oKH4yMjk1NDM1MDQ0JjE4NzU3NDQ0MDl8MjI5NTQzNTA0NCZ+MTg3NTc0NDQwOSkmODgzMTk2OTE2KSl8a25tJn4oKH4yMjk1NDM1MDQ0JjE4NzU3NDQ0MDl8MjI5NTQzNTA0NCZ+MTg3NTc0NDQwOXw4ODMxOTY5MTYpJn4oKH4yMjk1NDM1MDQ0JjE4NzU3NDQ0MDl8MjI5NTQzNTA0NCZ+MTg3NTc0NDQwOSkmODgzMTk2OTE2KSkpPj4+MH1RdFc9QU40fWVsc2V7dmFyIF9kPTA7X2Q9KF9kfDApPT09X2QmJigxfDApPT09MT8oX2R8MSkrKF9kJjEpOl9kKzF9fSxmdW5jdGlvbigpe2lmKCgoKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSl8MCk9PT0oKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpJiYoKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSl8MCk9PT0oKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpPygofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKXwofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkrKCgofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkmKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSk6KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSsoKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKSUyIT09MCl7dmFyIF9kPTA7X2Q9KF9kfDApPT09X2QmJigxfDApPT09MT8oX2R8MSkrKF9kJjEpOl9kKzF9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXT5nRE87cmV0dXJufX0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTt2YXIgY2hrPWNEV1tJajZdO2lmKCFVTjIuY2FsbChNMW8sY2hrKSl7TTFvW2Noa109dm9pZCAwfXJldHVybjtpZihBTjQ8UXRXKXtrbm09KChrbm18KH4oKDE5ODkyNzg3OTJ8MzI1MzA3MjcxNykmfigxOTg5Mjc4NzkyJjMyNTMwNzI3MTcpKSYxNjkxMTI5MTY0fCgxOTg5Mjc4NzkyfDMyNTMwNzI3MTcpJn4oMTk4OTI3ODc5MiYzMjUzMDcyNzE3KSZ+MTY5MTEyOTE2NCkpJn4oa25tJih+KCgxOTg5Mjc4NzkyfDMyNTMwNzI3MTcpJn4oMTk4OTI3ODc5MiYzMjUzMDcyNzE3KSkmMTY5MTEyOTE2NHwoMTk4OTI3ODc5MnwzMjUzMDcyNzE3KSZ+KDE5ODkyNzg3OTImMzI1MzA3MjcxNykmfjE2OTExMjkxNjQpKSk+Pj4wfVF0Vz1BTjR9LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJn4wKTswLHMzMltzMzIubGVuZ3RoLTFdPS1zMzJbczMyLmxlbmd0aC0xXTtyZXR1cm59LGZ1bmN0aW9uKCl7aWYoKCh3UnFeMCkrKHdScSYwKSkqfih+d1JxJn4wKSU0IT09Mil7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpJn4wKTt2YXIgdzlNPXMzMi5wb3AoKTtpZihJajY+PTApe3ZhciBNdmE9Y0RXW0lqNl07aWYodHlwZW9mIE12YT09PVVyMCg1Nykpe00xb1tNdmFdPXc5TX1lbHNle3dCT1tJajZdPXc5TX19ZWxzZXtzMzIucHVzaCh3OU0pfXJldHVybn1lbHNle3ZhciBfZD0wO3ZhciBfZT0xO3ZvaWQoKF9kfDApPT09X2QmJihfZXwwKT09PV9lPzIqKF9kfF9lKS0oX2ReX2UpOl9kK19lKX19LGZ1bmN0aW9uKCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmMCk7dmFyIEE3az1zMzIucG9wKCk7d0JPW0lqNl09d0JPW0lqNl0qQTdrO3MzMi5wdXNoKHdCT1tJajZdKTtyZXR1cm47aWYoQU40PFF0Vyl7a25tPSh+a25tJigoNzU4NDg4MTV8MCk9PT03NTg0ODgxNSYmKDgxODcyNTQxNHwwKT09PTgxODcyNTQxND8oNzU4NDg4MTVeODE4NzI1NDE0KS0yKih+NzU4NDg4MTUmODE4NzI1NDE0KTo3NTg0ODgxNS04MTg3MjU0MTQpPj4+MHxrbm0mfigoKDc1ODQ4ODE1fDApPT09NzU4NDg4MTUmJig4MTg3MjU0MTR8MCk9PT04MTg3MjU0MTQ/KDc1ODQ4ODE1XjgxODcyNTQxNCktMioofjc1ODQ4ODE1JjgxODcyNTQxNCk6NzU4NDg4MTUtODE4NzI1NDE0KT4+PjApKT4+PjB9UXRXPUFONH0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3ZhciBFSFc9czMyLnBvcCgpO3ZhciBrZXlzPVtdO2Zvcih2YXIgWXBrIGluIEVIVyl7a2V5cy5wdXNoKFlwayl9MCxzMzIucHVzaCh7c1JlOmtleXMsWTdpOjB9KTtyZXR1cm59LGZ1bmN0aW9uKCl7aWYoKCgofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKXwwKT09PSgofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkmJigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKXwwKT09PSgofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSk/MiooKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSl8KH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpLSgofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKV4oKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKTooKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKygofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkpJTIhPT0wKXt2YXIgX2Q9MH1lbHNle0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSZ+MCk7aWYoIXMzMi5wb3AoKSl7d1JxPUlqNioyfXJldHVybjtpZihBTjQ8UXRXKXtrbm09KH5rbm0mKCh+MTg4MTYzOTA3MiYxNDYzMzY2NDA1fDE4ODE2MzkwNzImfjE0NjMzNjY0MDV8NDEwNDUyODM2NCkmfigofjE4ODE2MzkwNzImMTQ2MzM2NjQwNXwxODgxNjM5MDcyJn4xNDYzMzY2NDA1KSY0MTA0NTI4MzY0KSl8a25tJn4oKH4xODgxNjM5MDcyJjE0NjMzNjY0MDV8MTg4MTYzOTA3MiZ+MTQ2MzM2NjQwNXw0MTA0NTI4MzY0KSZ+KCh+MTg4MTYzOTA3MiYxNDYzMzY2NDA1fDE4ODE2MzkwNzImfjE0NjMzNjY0MDUpJjQxMDQ1MjgzNjQpKSk+Pj4wfVF0Vz1BTjR9fSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmMCk7dmFyIE10Uz1zMzIucG9wKCk7czMyLnB1c2goTXRTLnd4Zyk7dmFyIG5leHQ9TXRTLll4Ty5uZXh0KCk7TXRTLk03UT0hIW5leHQuZG9uZTtNdFMud3hnPW5leHQudmFsdWU7cmV0dXJufSxmdW5jdGlvbigpe2lmKCgod1JxXjApKyh3UnEmMCkpKn4ofndScSZ+MCklND09PTMpe3ZhciBfZD0wO19kPShfZHwwKT09PV9kJiYoMXwwKT09PTE/MiooX2R8MSktKF9kXjEpOl9kKzF9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdPSFzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGgmfjEpLSh+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdO3JldHVybn19LGZ1bmN0aW9uKCl7aWYofih+KCh3UnFeMCkrKHdScSYwKSkmfjEpKn4ofigod1JxXjApKyh3UnEmMCkpJn4xKSUyIT09MCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7dmFyIEF0YT1JajY7dmFyIHNWdT1uZXcgQXJyYXkoQXRhKTtmb3IodmFyIFl2VT0oQXRhfDApPT09QXRhJiYoMXwwKT09PTE/KEF0YSZ+MSktKH5BdGEmMSk6QXRhLTE7WXZVPj0wO1l2VS0tKXswLHNWdVtZdlVdPXMzMi5wb3AoKX12YXIgSVp1PXMzMi5wb3AoKTtzMzIucHVzaChuZXcgSVp1KC4uLnNWdSkpO3JldHVybn1lbHNle3ZhciBfZD0wO3ZhciBfZT0xO3ZvaWQoKF9kfDApPT09X2QmJihfZXwwKT09PV9lPyhfZHxfZSkrKF9kJl9lKTpfZCtfZSl9fSxmdW5jdGlvbigpe2lmKCgod1JxXjApKyh3UnEmMCkpKn4ofndScSZ+MCklND09PTMpe3ZhciBfZD0wO3ZhciBfZT0xO3ZvaWQoKF9kfDApPT09X2QmJihfZXwwKT09PV9lPyhfZHxfZSkrKF9kJl9lKTpfZCtfZSl9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSYwKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXT4+PmdETztyZXR1cm59fSxmdW5jdGlvbigpe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmfjApO3ZhciBiPXMzMi5wb3AoKTtzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGgmfjEpLSh+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdPShzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXXwwKT09PXMzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdJiYoYnwwKT09PWI/KHMzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdJn5iKS0ofnMzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdJmIpOnMzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdLWI7cmV0dXJufSxmdW5jdGlvbigpe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSZ+MCk7dmFyIEVIVz1zMzIucG9wKCk7czMyW3MzMi5sZW5ndGgtMV09czMyW3MzMi5sZW5ndGgtMV1pbiBFSFc7cmV0dXJuO2lmKEFONDxRdFcpe2tubT0oKGtubXwofjIzNDEwNjM0NjcmMTQ3OTYyNzEwNnwyMzQxMDYzNDY3Jn4xNDc5NjI3MTA2KSkmfihrbm0mKH4yMzQxMDYzNDY3JjE0Nzk2MjcxMDZ8MjM0MTA2MzQ2NyZ+MTQ3OTYyNzEwNikpKT4+PjB9UXRXPUFONH0sZnVuY3Rpb24oKXtpZigoKHdScV4wKSsod1JxJjApKSp+KH53UnEmfjApJTQhPT0yKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3dScT1JajYqMjtyZXR1cm59ZWxzZXt2YXIgX2Q9MDt2YXIgX2U9MTt2b2lkKChfZHwwKT09PV9kJiYoX2V8MCk9PT1fZT8yKihfZHxfZSktKF9kXl9lKTpfZCtfZSl9fSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmMCk7czMyLnBvcCgpO3JldHVybn0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3MzMltzMzIubGVuZ3RoLTFdPXZvaWQgMDtyZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJn4wKTtpZihzMzIucG9wKCkpe3dScT1JajYqMn1yZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJn4wKTt2YXIgYj1zMzIucG9wKCk7czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoJn4xKS0ofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXT0oczMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV18MCk9PT1zMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXSYmKGJ8MCk9PT1iPyhzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXV5iKSsyKihzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXSZiKTpzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXStiO3JldHVybn0sZnVuY3Rpb24oKXtpZigoKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSYmKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKT8oKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSl8KH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKygoKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpJigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkpOigofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkrKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSklMiE9PTApe3ZhciBfZD0oMF4wKSsoMCYwKTt2b2lkIF9kfWVsc2V7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmMCk7WXRhLnBvcCgpO3JldHVybn19LGZ1bmN0aW9uKCl7aWYofih+d1JxJn4wKSooKHdScV4wKSsod1JxJjApKSU0IT09Mil7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmMCk7dmFyIGMxZz1BcnJheS5mcm9tKHMzMltzMzIubGVuZ3RoLTFdKTtjMWdbTVJtXT10cnVlO3MzMltzMzIubGVuZ3RoLTFdPWMxZztyZXR1cm47aWYoQU40PFF0Vyl7a25tPSh+a25tJigoMzgzMDI1MTczNXwwKT09PTM4MzAyNTE3MzUmJigyNzgxNjEwMzh8MCk9PT0yNzgxNjEwMzg/KDM4MzAyNTE3MzVeMjc4MTYxMDM4KS0yKih+MzgzMDI1MTczNSYyNzgxNjEwMzgpOjM4MzAyNTE3MzUtMjc4MTYxMDM4KT4+PjB8a25tJn4oKCgzODMwMjUxNzM1fDApPT09MzgzMDI1MTczNSYmKDI3ODE2MTAzOHwwKT09PTI3ODE2MTAzOD8oMzgzMDI1MTczNV4yNzgxNjEwMzgpLTIqKH4zODMwMjUxNzM1JjI3ODE2MTAzOCk6MzgzMDI1MTczNS0yNzgxNjEwMzgpPj4+MCkpPj4+MH1RdFc9QU40fWVsc2V7dmFyIF9kPTA7X2Q9KF9kfDApPT09X2QmJigxfDApPT09MT8yKihfZHwxKS0oX2ReMSk6X2QrMX19LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJn4wKTswLHMzMi5wdXNoKHRydWUpO3JldHVybjtzMzIucHVzaChFWGcpO2lmKHMzMi5wb3AoKSE9PUVYZyl7a25tPSgoa25tfCgoMjU1MjQ3NDE5NnwwKT09PTI1NTI0NzQxOTYmJigxNjI0Mjg1MjcwfDApPT09MTYyNDI4NTI3MD8oMjU1MjQ3NDE5NiZ+MTYyNDI4NTI3MCktKH4yNTUyNDc0MTk2JjE2MjQyODUyNzApOjI1NTI0NzQxOTYtMTYyNDI4NTI3MCk+Pj4wKSZ+KGtubSYoKDI1NTI0NzQxOTZ8MCk9PT0yNTUyNDc0MTk2JiYoMTYyNDI4NTI3MHwwKT09PTE2MjQyODUyNzA/KDI1NTI0NzQxOTYmfjE2MjQyODUyNzApLSh+MjU1MjQ3NDE5NiYxNjI0Mjg1MjcwKToyNTUyNDc0MTk2LTE2MjQyODUyNzApPj4+MCkpPj4+MH19LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7czMyLnB1c2goIiIpO3JldHVybn0sZnVuY3Rpb24oKXtpZigoKH4ofndScSZ+MCleMSkrKH4ofndScSZ+MCkmMSkpKigofih+d1JxJn4wKV4xKSsofih+d1JxJn4wKSYxKSklMiE9PTApe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmMCk7dmFyIEF6YT1zMzIucG9wKCk7aWYoWXRhJiZZdGEubGVuZ3RoPjApe3ZhciBjelE9WXRhWyhZdGEubGVuZ3RofDApPT09WXRhLmxlbmd0aCYmKDF8MCk9PT0xPyhZdGEubGVuZ3RoXjEpLTIqKH5ZdGEubGVuZ3RoJjEpOll0YS5sZW5ndGgtMV07aWYoY3pRLllocT49MCl7QXIyPTE7Y0Y2PUF6YTtZdGEucG9wKCk7czMyLmxlbmd0aD1jelEuTUoyO3dScT1jelEuWWhxKjI7cmV0dXJufX1yZXR1cm4gTWhBPUF6YSxBOWM7aWYoQU40PFF0Vyl7a25tPSgoa25tfCh+MTA5MDkzNzU5JjM1NzcyMzE2NzB8MTA5MDkzNzU5Jn4zNTc3MjMxNjcwKSkmfihrbm0mKH4xMDkwOTM3NTkmMzU3NzIzMTY3MHwxMDkwOTM3NTkmfjM1NzcyMzE2NzApKSk+Pj4wfVF0Vz1BTjR9ZWxzZXt2YXIgX2Q9MDt2YXIgX2U9MTt2b2lkKChfZHwwKT09PV9kJiYoX2V8MCk9PT1fZT8oX2R8X2UpKyhfZCZfZSk6X2QrX2UpfX0sZnVuY3Rpb24oKXtpZigoKHdScV4wKSsod1JxJjApKSp+KH53UnEmfjApJTQhPT0yKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJn4wKTswLE0xbz1PYmplY3QuY3JlYXRlKE0xbyk7cmV0dXJufWVsc2V7dmFyIF9kPTB9fSxmdW5jdGlvbigpe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSZ+MCk7dmFyIFk3Nj1zMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGgmfjEpLSh+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdO3ZhciBFbk89czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDJ8MCk9PT0yPyhzMzIubGVuZ3RoXjIpLTIqKH5zMzIubGVuZ3RoJjIpOnMzMi5sZW5ndGgtMl07dmFyIGdscz1zMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoM3wwKT09PTM/KHMzMi5sZW5ndGgmfjMpLSh+czMyLmxlbmd0aCYzKTpzMzIubGVuZ3RoLTNdO3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigzfDApPT09Mz8oczMyLmxlbmd0aF4zKS0yKih+czMyLmxlbmd0aCYzKTpzMzIubGVuZ3RoLTNdPVk3NjtzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMnwwKT09PTI/KHMzMi5sZW5ndGgmfjIpLSh+czMyLmxlbmd0aCYyKTpzMzIubGVuZ3RoLTJdPWdscztzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXT1Fbk87cmV0dXJuO3MzMi5wdXNoKEVYZyk7aWYoczMyLnBvcCgpIT09RVhnKXtrbm09KChrbm18KH4zNTU3MDA4NjMxJjM4MTM3MTUyMDl8MzU1NzAwODYzMSZ+MzgxMzcxNTIwOSkpJn4oa25tJih+MzU1NzAwODYzMSYzODEzNzE1MjA5fDM1NTcwMDg2MzEmfjM4MTM3MTUyMDkpKSk+Pj4wfX0sZnVuY3Rpb24oKXswLEFOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3ZhciBFVDY9fih+SWo2fH42NTUzNSk7dmFyIGNkMD0oSWo2Pj4+MTZ8NjU1MzUpXihJajY+Pj4xNl42NTUzNSk7czMyLnB1c2god0JPW0VUNl0qY0RXW2NkMF0pO3JldHVybn0sZnVuY3Rpb24oKXtpZigoKHdScV4wKSsod1JxJjApKSp+KH53UnEmfjApJTQ9PT0zKXt2YXIgX2Q9MDt2YXIgX2U9MTt2b2lkKChfZHwwKT09PV9kJiYoX2V8MCk9PT1fZT8oX2ReX2UpKzIqKF9kJl9lKTpfZCtfZSl9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3ZhciBnRE89czMyLnBvcCgpO3MzMltzMzIubGVuZ3RoLTFdPXMzMltzMzIubGVuZ3RoLTFdPD1nRE87cmV0dXJufX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3MzMi5wdXNoKGcxMCk7cmV0dXJufSxmdW5jdGlvbigpe2lmKH4ofndScSZ+MCkqKCh3UnFeMCkrKHdScSYwKSklND09PTMpe3ZhciBfZD1+KH4wJn4wKTt2b2lkIF9kfWVsc2V7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7dmFyIGdETz1zMzIucG9wKCk7czMyW3MzMi5sZW5ndGgtMV09czMyW3MzMi5sZW5ndGgtMV08Z0RPO3JldHVybn19LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7dmFyIGI9czMyLnBvcCgpO3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aCZ+MSktKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV09KHMzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdfDApPT09czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV0mJihifDApPT09Yj8oczMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV0mfmIpLSh+czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV0mYik6czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV0tYjtyZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJn4wKTt2YXIgdmFsdWU9czMyLnBvcCgpO2lmKHZhbHVlPT09bnVsbHx8dmFsdWU9PT12b2lkIDApezAsd1JxPUlqNioyfXJldHVybn0sZnVuY3Rpb24oKXtpZigoKHdScV4wKSsod1JxJjApKSp+KH53UnEmfjApJTQhPT0yKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmfjApO3ZhciBjaGs9Y0RXW0lqNl07dmFyIHZhbHVlPXMzMi5wb3AoKTtpZihVTjIuY2FsbChNMW8sY2hrKSl7TTFvW2Noa109dmFsdWU7cmV0dXJufXZhciBZRm09T2JqZWN0LmdldFByb3RvdHlwZU9mKE0xbyk7dmFyIGtacz1mYWxzZTt3aGlsZShZRm0pe2lmKFVOMi5jYWxsKFlGbSxjaGspKXswLFlGbVtjaGtdPXZhbHVlO2tacz10cnVlO3JldHVybn1ZRm09T2JqZWN0LmdldFByb3RvdHlwZU9mKFlGbSl9aWYoIWtacyl7MCxnUDhbY2hrXT12YWx1ZX1yZXR1cm59ZWxzZXt2YXIgX2Q9MDt2YXIgX2U9MTt2b2lkKChfZHwwKT09PV9kJiYoX2V8MCk9PT1fZT8yKihfZHxfZSktKF9kXl9lKTpfZCtfZSl9fSxmdW5jdGlvbigpe2lmKH4ofigod1JxXjApKyh3UnEmMCkpJn4xKSp+KH4oKHdScV4wKSsod1JxJjApKSZ+MSklMiE9PTApe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmfjApO3ZhciBNdFM9czMyW3MzMi5sZW5ndGgtMV07MCxzMzIucHVzaCghIU10Uy5NN1EpO3JldHVybn1lbHNle3ZhciBfZD0oMF4wKSsoMCYwKTt2b2lkIF9kfX0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3ZhciB2YWx1ZT1zMzIucG9wKCk7dmFyIEVIVz1zMzJbczMyLmxlbmd0aC0xXTt2YXIgTXJFPWNEV1tJajZdO0VIV1tNckVdPXZhbHVlO3JldHVybn0sZnVuY3Rpb24oKXswLEFOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpJjApO3MzMi5wdXNoKGZhbHNlKTtyZXR1cm59LGZ1bmN0aW9uKCl7aWYoKCh3UnFeMCkrKHdScSYwKSkqfih+d1JxJn4wKSU0IT09Mil7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7dmFyIHZhbHVlPXMzMi5wb3AoKTt2YXIgWXRFPXMzMltzMzIubGVuZ3RoLTFdOzAsWXRFLnB1c2godmFsdWUpO3JldHVybn1lbHNle3ZhciBfZD0wO3ZhciBfZT0xO3ZvaWQoKF9kfDApPT09X2QmJihfZXwwKT09PV9lPyhfZF5fZSkrMiooX2QmX2UpOl9kK19lKX19LGZ1bmN0aW9uKCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmMCk7czMyLnB1c2goe30pO3JldHVybn0sZnVuY3Rpb24oKXtpZih+KH53UnEmfjApKigod1JxXjApKyh3UnEmMCkpJTQ9PT0zKXt2YXIgX2Q9MDt2YXIgX2U9MTt2b2lkKChfZHwwKT09PV9kJiYoX2V8MCk9PT1fZT8oX2R8X2UpKyhfZCZfZSk6X2QrX2UpfWVsc2V7MCxBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3ZhciB2YWx1ZT1zMzIucG9wKCk7dmFyIGNoaz1jRFdbSWo2XTt2YXIgWUZtPU0xbzt3aGlsZShZRm0pe2lmKFVOMi5jYWxsKFlGbSxjaGspKXtZRm1bY2hrXV49dmFsdWU7czMyLnB1c2goWUZtW2Noa10pO3JldHVybn0wLFlGbT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoWUZtKX1yZXR1cm59fSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3MzMltzMzIubGVuZ3RoLTFdPSgrczMyW3MzMi5sZW5ndGgtMV18MCk9PT0rczMyW3MzMi5sZW5ndGgtMV0mJigxfDApPT09MT8oK3MzMltzMzIubGVuZ3RoLTFdXjEpLTIqKH4rczMyW3MzMi5sZW5ndGgtMV0mMSk6K3MzMltzMzIubGVuZ3RoLTFdLTE7cmV0dXJufSxmdW5jdGlvbigpe2lmKH4ofigod1JxXjApKyh3UnEmMCkpJn4xKSp+KH4oKHdScV4wKSsod1JxJjApKSZ+MSklMiE9PTApe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmfjApOzAsczMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoJn4xKS0ofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXT0oK3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdfDApPT09K3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdJiYoMXwwKT09PTE/KCtzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXXwxKSsoK3MzMlsoczMyLmxlbmd0aHwwKT09PXMzMi5sZW5ndGgmJigxfDApPT09MT8oczMyLmxlbmd0aF4xKS0yKih+czMyLmxlbmd0aCYxKTpzMzIubGVuZ3RoLTFdJjEpOitzMzJbKHMzMi5sZW5ndGh8MCk9PT1zMzIubGVuZ3RoJiYoMXwwKT09PTE/KHMzMi5sZW5ndGheMSktMioofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXSsxO3JldHVybn1lbHNle3ZhciBfZD0wfX0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3MzMi5wdXNoKFtdKTtyZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpJn4wKTt2YXIga25VPShJajY+PjE2fDY1NTM1KV4oSWo2Pj4xNl42NTUzNSk7dmFyIFlocT1+KH5JajZ8fjY1NTM1KTtpZihrblU9PT02NTUzNSl7a25VPS0xfWlmKFlocT09PTY1NTM1KXtZaHE9LTF9aWYoIVl0YSl7WXRhPVtdfVl0YS5wdXNoKHtrblUsWWhxLE1KMjpzMzIubGVuZ3RofSk7cmV0dXJufSxmdW5jdGlvbigpe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSZ+MCk7dmFyIGdETz1zMzIucG9wKCk7czMyW3MzMi5sZW5ndGgtMV09KHMzMltzMzIubGVuZ3RoLTFdfGdETyleKHMzMltzMzIubGVuZ3RoLTFdXmdETyk7cmV0dXJufSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3ZhciBzWmk9fih+SWo2fH42NTUzNSk7dmFyIGs5Mj0oSWo2Pj4+MTZ8NjU1MzUpXihJajY+Pj4xNl42NTUzNSk7czMyLnB1c2goKHdCT1tzWmldfDApPT09d0JPW3NaaV0mJih3Qk9bazkyXXwwKT09PXdCT1trOTJdPyh3Qk9bc1ppXV53Qk9bazkyXSktMioofndCT1tzWmldJndCT1trOTJdKTp3Qk9bc1ppXS13Qk9bazkyXSk7cmV0dXJuO2lmKEFONDxRdFcpezAsa25tPSh+a25tJigofjMyMDc3ODM2NjQmOTUxMjM3NzgxfDMyMDc3ODM2NjQmfjk1MTIzNzc4MXwxNDEzMDA1ODY4KSZ+KCh+MzIwNzc4MzY2NCY5NTEyMzc3ODF8MzIwNzc4MzY2NCZ+OTUxMjM3NzgxKSYxNDEzMDA1ODY4KSl8a25tJn4oKH4zMjA3NzgzNjY0Jjk1MTIzNzc4MXwzMjA3NzgzNjY0Jn45NTEyMzc3ODF8MTQxMzAwNTg2OCkmfigofjMyMDc3ODM2NjQmOTUxMjM3NzgxfDMyMDc3ODM2NjQmfjk1MTIzNzc4MSkmMTQxMzAwNTg2OCkpKT4+PjB9UXRXPUFONH0sZnVuY3Rpb24oKXtpZigoKHdScV4wKSsod1JxJjApKSp+KH53UnEmfjApJTQ9PT0zKXt2YXIgX2Q9MH1lbHNle0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSZ+MCk7dmFyIGdETz1zMzIucG9wKCk7czMyW3MzMi5sZW5ndGgtMV09czMyW3MzMi5sZW5ndGgtMV0hPT1nRE87cmV0dXJufX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3ZhciBBdGE9SWo2O3ZhciB3RGM9QXRhPDA7aWYod0RjKXtBdGE9LUF0YX12YXIgc1Z1PW5ldyBBcnJheShBdGEpO2Zvcih2YXIgWXZVPShBdGF8MCk9PT1BdGEmJigxfDApPT09MT8oQXRhJn4xKS0ofkF0YSYxKTpBdGEtMTtZdlU+PTA7WXZVLS0pe3NWdVtZdlVdPXMzMi5wb3AoKX1pZih3RGMpe3ZhciBNZlc9W107Zm9yKHZhciBZdlU9MDtZdlU8c1Z1Lmxlbmd0aDtZdlUrKyl7aWYoc1Z1W1l2VV0mJnNWdVtZdlVdW01SbV0pe2Zvcih2YXIgVXg4PTA7VXg4PHNWdVtZdlVdLmxlbmd0aDtVeDgrKyl7TWZXLnB1c2goc1Z1W1l2VV1bVXg4XSl9fWVsc2V7TWZXLnB1c2goc1Z1W1l2VV0pfX1zVnU9TWZXfXZhciBNYm89czMyLnBvcCgpO3MzMi5wdXNoKE1iby5hcHBseSh2b2lkIDAsc1Z1KSk7cmV0dXJufSxmdW5jdGlvbigpe2lmKCgofih+d1JxJn4wKV4xKSsofih+d1JxJn4wKSYxKSkqKCh+KH53UnEmfjApXjEpKyh+KH53UnEmfjApJjEpKSUyIT09MCl7MCxBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXT09PWdETztyZXR1cm59ZWxzZXt2YXIgX2Q9MDtfZD0oX2R8MCk9PT1fZCYmKDF8MCk9PT0xPzIqKF9kfDEpLShfZF4xKTpfZCsxfX0sZnVuY3Rpb24oKXtpZigoKH4ofigod1JxXjApKyh3UnEmMCkpfH4xKXwwKT09PX4ofigod1JxXjApKyh3UnEmMCkpfH4xKSYmKH4ofigod1JxXjApKyh3UnEmMCkpfH4xKXwwKT09PX4ofigod1JxXjApKyh3UnEmMCkpfH4xKT8yKih+KH4oKHdScV4wKSsod1JxJjApKXx+MSl8fih+KCh3UnFeMCkrKHdScSYwKSl8fjEpKS0ofih+KCh3UnFeMCkrKHdScSYwKSl8fjEpXn4ofigod1JxXjApKyh3UnEmMCkpfH4xKSk6fih+KCh3UnFeMCkrKHdScSYwKSl8fjEpK34ofigod1JxXjApKyh3UnEmMCkpfH4xKSklMiE9PTApe3ZhciBfZD0wfWVsc2V7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmMCk7czMyLnB1c2goczMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV0pO3JldHVybjtpZihBTjQ8UXRXKXtrbm09KChrbm18KH4yODI5MDI5NDI3JjIwNjYxNTYxNTR8MjgyOTAyOTQyNyZ+MjA2NjE1NjE1NCkpJn4oa25tJih+MjgyOTAyOTQyNyYyMDY2MTU2MTU0fDI4MjkwMjk0MjcmfjIwNjYxNTYxNTQpKSk+Pj4wfVF0Vz1BTjQ7czMyLnB1c2goRVhnKTtpZihzMzIucG9wKCkhPT1FWGcpe2tubT0oKGtubXwoKDI4OTA2Mzc4MTJ8MCk9PT0yODkwNjM3ODEyJiYoMTk2MjQ0ODg4NnwwKT09PTE5NjI0NDg4ODY/KDI4OTA2Mzc4MTImfjE5NjI0NDg4ODYpLSh+Mjg5MDYzNzgxMiYxOTYyNDQ4ODg2KToyODkwNjM3ODEyLTE5NjI0NDg4ODYpPj4+MCkmfihrbm0mKCgyODkwNjM3ODEyfDApPT09Mjg5MDYzNzgxMiYmKDE5NjI0NDg4ODZ8MCk9PT0xOTYyNDQ4ODg2PygyODkwNjM3ODEyJn4xOTYyNDQ4ODg2KS0ofjI4OTA2Mzc4MTImMTk2MjQ0ODg4Nik6Mjg5MDYzNzgxMi0xOTYyNDQ4ODg2KT4+PjApKT4+PjB9fX0sZnVuY3Rpb24oKXtpZigoKH4ofndScSZ+MCl8KHdScV4wKSsod1JxJjApKSZ+KH4ofndScSZ+MCkmKHdScV4wKSsod1JxJjApKSk9PT0wKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmfjApO3ZhciBnRE89czMyLnBvcCgpO3MzMltzMzIubGVuZ3RoLTFdPXMzMltzMzIubGVuZ3RoLTFdPj5nRE87cmV0dXJufWVsc2V7dmFyIF9kPSgwXjApKygwJjApO3ZvaWQgX2R9fSxmdW5jdGlvbigpe0FOND1+KH4oKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSZ+MCk7dmFyIFE1az1zMzIucG9wKCk7czMyLnB1c2goUTVrLnNSZVtRNWsuWTdpKytdKTtyZXR1cm59LGZ1bmN0aW9uKCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7czMyLnB1c2god0JPW0lqNl0pO3JldHVybn0sZnVuY3Rpb24oKXtpZigoKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSYmKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpfDApPT09KCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKT8oKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSleKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSkrMiooKCh+KH53UnEmfjApfDEpXih+KH53UnEmfjApXjEpKSYoKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKTooKH4ofndScSZ+MCl8MSleKH4ofndScSZ+MCleMSkpKygofih+d1JxJn4wKXwxKV4ofih+d1JxJn4wKV4xKSkpJTIhPT0wKXt2YXIgX2Q9MDt2YXIgX2U9MTt2b2lkKChfZHwwKT09PV9kJiYoX2V8MCk9PT1fZT8oX2ReX2UpKzIqKF9kJl9lKTpfZCtfZSl9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTt2YXIgZ0RPPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXS9nRE87cmV0dXJuO3MzMi5wdXNoKEVYZyk7aWYoczMyLnBvcCgpIT09RVhnKXtrbm09KChrbm18KH4oKDEwNzAzNzUwODR8MzU1NzM0ODQxNykmfigxMDcwMzc1MDg0JjM1NTczNDg0MTcpKSYzNzAwOTE1NDc1fCgxMDcwMzc1MDg0fDM1NTczNDg0MTcpJn4oMTA3MDM3NTA4NCYzNTU3MzQ4NDE3KSZ+MzcwMDkxNTQ3NSkpJn4oa25tJih+KCgxMDcwMzc1MDg0fDM1NTczNDg0MTcpJn4oMTA3MDM3NTA4NCYzNTU3MzQ4NDE3KSkmMzcwMDkxNTQ3NXwoMTA3MDM3NTA4NHwzNTU3MzQ4NDE3KSZ+KDEwNzAzNzUwODQmMzU1NzM0ODQxNykmfjM3MDA5MTU0NzUpKSk+Pj4wfX19LGZ1bmN0aW9uKCl7aWYofih+KCh3UnFeMCkrKHdScSYwKSkmfjEpKn4ofigod1JxXjApKyh3UnEmMCkpJn4xKSUyIT09MCl7QU40PX4ofigoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSZ+MCk7MCxzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXVtjRFdbSWo2XV07cmV0dXJufWVsc2V7dmFyIF9kPTA7X2Q9KF9kfDApPT09X2QmJigxfDApPT09MT8oX2R8MSkrKF9kJjEpOl9kKzF9fSxmdW5jdGlvbigpe2lmKCh+KCh3UnFeMCkrKHdScSYwKSkmfih+d1JxJn4wKXwod1JxXjApKyh3UnEmMCkmfn4ofndScSZ+MCkpPT09MCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmMCk7czMyLnB1c2goczMyW3MzMi5sZW5ndGgtMV0pO3JldHVybjtzMzIucHVzaChFWGcpO2lmKHMzMi5wb3AoKSE9PUVYZyl7a25tPSgoa25tfCh+KCg0MTUxODk2NTY4fDQwMTQ5NTU0NTMpJn4oNDE1MTg5NjU2OCY0MDE0OTU1NDUzKSkmNzk1MTMwODExfCg0MTUxODk2NTY4fDQwMTQ5NTU0NTMpJn4oNDE1MTg5NjU2OCY0MDE0OTU1NDUzKSZ+Nzk1MTMwODExKSkmfihrbm0mKH4oKDQxNTE4OTY1Njh8NDAxNDk1NTQ1Mykmfig0MTUxODk2NTY4JjQwMTQ5NTU0NTMpKSY3OTUxMzA4MTF8KDQxNTE4OTY1Njh8NDAxNDk1NTQ1Mykmfig0MTUxODk2NTY4JjQwMTQ5NTU0NTMpJn43OTUxMzA4MTEpKSk+Pj4wfX1lbHNle3ZhciBfZD0wfX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40XjEpKzIqKEFONCYxKTpBTjQrMSkmfjApO3ZhciBnRE89czMyLnBvcCgpOzAsczMyW3MzMi5sZW5ndGgtMV09fnMzMltzMzIubGVuZ3RoLTFdJmdET3xzMzJbczMyLmxlbmd0aC0xXSZ+Z0RPO3JldHVybn0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKV4wKSsoKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJjApO3ZhciB3alc9czMyLnBvcCgpO3Rocm93IHdqV30sZnVuY3Rpb24oKXtpZih+KH53UnEmfjApKigod1JxXjApKyh3UnEmMCkpJTQhPT0yKXswLEFOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3ZhciBzWmk9fih+SWo2fH42NTUzNSk7dmFyIGs5Mj0oSWo2Pj4+MTZ8NjU1MzUpXihJajY+Pj4xNl42NTUzNSk7czMyLnB1c2god0JPW3NaaV0+d0JPW2s5Ml0pO3JldHVybn1lbHNle3ZhciBfZD0wfX0sZnVuY3Rpb24oKXtpZigofigod1JxXjApKyh3UnEmMCkpJn4ofndScSZ+MCl8KHdScV4wKSsod1JxJjApJn5+KH53UnEmfjApKT09PTApe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSkmMCk7dmFyIEVUNj1+KH5JajZ8fjY1NTM1KTt2YXIgQVhzPShJajY+Pj4xNnw2NTUzNSleKElqNj4+PjE2XjY1NTM1KTtzMzIucHVzaCh3Qk9bRVQ2XVtjRFdbQVhzXV0pO3JldHVybjtpZihBTjQ8UXRXKXtrbm09KH5rbm0mKCgxMTE0MTIxNzA3fDApPT09MTExNDEyMTcwNyYmKDE4NTY5OTgzMDZ8MCk9PT0xODU2OTk4MzA2PygxMTE0MTIxNzA3XjE4NTY5OTgzMDYpLTIqKH4xMTE0MTIxNzA3JjE4NTY5OTgzMDYpOjExMTQxMjE3MDctMTg1Njk5ODMwNik+Pj4wfGtubSZ+KCgoMTExNDEyMTcwN3wwKT09PTExMTQxMjE3MDcmJigxODU2OTk4MzA2fDApPT09MTg1Njk5ODMwNj8oMTExNDEyMTcwN14xODU2OTk4MzA2KS0yKih+MTExNDEyMTcwNyYxODU2OTk4MzA2KToxMTE0MTIxNzA3LTE4NTY5OTgzMDYpPj4+MCkpPj4+MH1RdFc9QU40fWVsc2V7dmFyIF9kPTA7dmFyIF9lPTE7dm9pZCgoX2R8MCk9PT1fZCYmKF9lfDApPT09X2U/MiooX2R8X2UpLShfZF5fZSk6X2QrX2UpfX0sZnVuY3Rpb24oKXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSkmfjApO3ZhciBnRE89czMyLnBvcCgpO3MzMltzMzIubGVuZ3RoLTFdPXMzMltzMzIubGVuZ3RoLTFdKmdETztyZXR1cm59LGZ1bmN0aW9uKCl7QU40PSgoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjR8MSkrKEFONCYxKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONHwxKSsoQU40JjEpOkFONCsxKSYwKTt2YXIgYj1zMzIucG9wKCk7czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoXjEpLTIqKH5zMzIubGVuZ3RoJjEpOnMzMi5sZW5ndGgtMV09fih+czMyWyhzMzIubGVuZ3RofDApPT09czMyLmxlbmd0aCYmKDF8MCk9PT0xPyhzMzIubGVuZ3RoJn4xKS0ofnMzMi5sZW5ndGgmMSk6czMyLmxlbmd0aC0xXSZ+Yik7cmV0dXJufSxmdW5jdGlvbigpe0FOND0oKChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8yKihBTjR8MSktKEFONF4xKTpBTjQrMSleMCkrKCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpJjApO3ZhciBBdGE9SWo2O3ZhciB3RGM9QXRhPDA7aWYod0RjKXtBdGE9LUF0YX12YXIgc1Z1PW5ldyBBcnJheShBdGEpO2Zvcih2YXIgWXZVPShBdGF8MCk9PT1BdGEmJigxfDApPT09MT8oQXRhXjEpLTIqKH5BdGEmMSk6QXRhLTE7WXZVPj0wO1l2VS0tKXtzVnVbWXZVXT1zMzIucG9wKCl9aWYod0RjKXt2YXIgTWZXPVtdO2Zvcih2YXIgWXZVPTA7WXZVPHNWdS5sZW5ndGg7WXZVKyspe2lmKHNWdVtZdlVdJiZzVnVbWXZVXVtNUm1dKXtmb3IodmFyIFV4OD0wO1V4ODxzVnVbWXZVXS5sZW5ndGg7VXg4Kyspe01mVy5wdXNoKHNWdVtZdlVdW1V4OF0pfX1lbHNle01mVy5wdXNoKHNWdVtZdlVdKX19c1Z1PU1mV312YXIgd2ZjPXMzMi5wb3AoKTt2YXIgTWJvPXMzMi5wb3AoKTtzMzIucHVzaChNYm8uYXBwbHkod2ZjLHNWdSkpO3JldHVybn0sZnVuY3Rpb24oKXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/KEFONF4xKSsyKihBTjQmMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPyhBTjReMSkrMiooQU40JjEpOkFONCsxKSYwKTt2YXIgd3pPPXdCT1tJajZdO3dCT1tJajZdPSgrd3pPfDApPT09K3d6TyYmKDF8MCk9PT0xPygrd3pPXjEpKzIqKCt3ek8mMSk6K3d6TysxO3MzMi5wdXNoKCt3ek8pO3JldHVybjtzMzIucHVzaChFWGcpO2lmKHMzMi5wb3AoKSE9PUVYZyl7a25tPSgoa25tfCh+NzI4MDA4NDgzJjQ3MzQwMzEwMXw3MjgwMDg0ODMmfjQ3MzQwMzEwMSkpJn4oa25tJih+NzI4MDA4NDgzJjQ3MzQwMzEwMXw3MjgwMDg0ODMmfjQ3MzQwMzEwMSkpKT4+PjB9fSxmdW5jdGlvbigpe2lmKCgofih+KCh3UnFeMCkrKHdScSYwKSl8fjEpfDApPT09fih+KCh3UnFeMCkrKHdScSYwKSl8fjEpJiYofih+KCh3UnFeMCkrKHdScSYwKSl8fjEpfDApPT09fih+KCh3UnFeMCkrKHdScSYwKSl8fjEpPyh+KH4oKHdScV4wKSsod1JxJjApKXx+MSlefih+KCh3UnFeMCkrKHdScSYwKSl8fjEpKSsyKih+KH4oKHdScV4wKSsod1JxJjApKXx+MSkmfih+KCh3UnFeMCkrKHdScSYwKSl8fjEpKTp+KH4oKHdScV4wKSsod1JxJjApKXx+MSkrfih+KCh3UnFeMCkrKHdScSYwKSl8fjEpKSUyIT09MCl7dmFyIF9kPX4ofjAmfjApO3ZvaWQgX2R9ZWxzZXtBTjQ9fih+KChBTjR8MCk9PT1BTjQmJigxfDApPT09MT8oQU40fDEpKyhBTjQmMSk6QU40KzEpJn4wKTt2YXIgTXJFPXMzMi5wb3AoKTtzMzJbczMyLmxlbmd0aC0xXT1zMzJbczMyLmxlbmd0aC0xXVtNckVdO3JldHVybn19LGZ1bmN0aW9uKCl7aWYofih+d1JxJn4wKSooKHdScV4wKSsod1JxJjApKSU0PT09Myl7dmFyIF9kPTB9ZWxzZXtBTjQ9KCgoQU40fDApPT09QU40JiYoMXwwKT09PTE/MiooQU40fDEpLShBTjReMSk6QU40KzEpXjApKygoKEFONHwwKT09PUFONCYmKDF8MCk9PT0xPzIqKEFONHwxKS0oQU40XjEpOkFONCsxKSYwKTt2YXIgY2hrPWNEV1tJajZdO3ZhciBZRm09TTFvO3doaWxlKFlGbSl7aWYoVU4yLmNhbGwoWUZtLGNoaykpe3ZhciBZRk09WUZtW2Noa107WUZtW2Noa109KFlGTXwwKT09PVlGTSYmKDF8MCk9PT0xPyhZRk1eMSktMioofllGTSYxKTpZRk0tMTtzMzIucHVzaChZRk0pO3JldHVybn1ZRm09T2JqZWN0LmdldFByb3RvdHlwZU9mKFlGbSl9cmV0dXJuO2lmKEFONDxRdFcpe2tubT0ofmtubSYoKH4xNDE0OTM0NTI0JjI5NzIxNjMyODF8MTQxNDkzNDUyNCZ+Mjk3MjE2MzI4MXw5MTkxNTI5OTYpJn4oKH4xNDE0OTM0NTI0JjI5NzIxNjMyODF8MTQxNDkzNDUyNCZ+Mjk3MjE2MzI4MSkmOTE5MTUyOTk2KSl8a25tJn4oKH4xNDE0OTM0NTI0JjI5NzIxNjMyODF8MTQxNDkzNDUyNCZ+Mjk3MjE2MzI4MXw5MTkxNTI5OTYpJn4oKH4xNDE0OTM0NTI0JjI5NzIxNjMyODF8MTQxNDkzNDUyNCZ+Mjk3MjE2MzI4MSkmOTE5MTUyOTk2KSkpPj4+MH1RdFc9QU40fX1dO3ZhciBzMzI9dm9pZCAwO3ZhciBMa0Q9Ik5na21oR25MOHV2NUNsRHhEOEJmWl9zR3loR1p5NXZ0S3NuVmVveGZUcDBmQmtRdnlaT0kxVXdMM041V3kyd1VGVFhXZFZEX3o5VHc2UHRBV0JOX2w2QVN6djEyeEk1ZkxXSjJRJGxEaFdsTjFqUWJoTDdsNlJmSnJiV09aUEt1R2NTMUxMZ2lMOHFTc0MiO3ZhciB3Qk89dm9pZCAwO3ZhciBia1I9IkFkRkcyWEU4U1VrbFdBckN0ZjU2VTJxQzB1MWJaM0RHcnhkU3A5S19aZTlTOHV3Sll4T3ZKSTRaTlRtSDNMJEE5b2loOHF2Z0JUVlUzYWwyMiRUb1ciO3ZhciB3UnE9dm9pZCAwO3ZhciBiZ0w9IkduS3F6WTFrWFFJUTVGaXIkb1NDWU41RnhsTDBkaFp2ZUpJNUlKQV9GdzdSNEh0SjFDa1NLT3JZeXlZcU80TlNpMG9YIjt2YXIgemNYPSJBS0p6elg4OXZYZFZkbVJzVjhQRzY0OVo3eVl4NTZ2Z1R6QzBndVRFcFQzUGxCcHczZmRyWFFVMUlNV0MwTXp5VmpjSGxveTF2U19jZFUxUWZUYjZKd05mV3JjYjlTNFJraFpLR3JVNWpoSXpCVnFYNF9zbzNDUGNQS1ZsaGxaMFZvMUJLTlM2RmRGcndMX3RPanMyR2t0WmdQUmo2TzBkek5rSGlsakM5VmZmdjdDU2hqZVVadVZfZW54RkxxckszUXRVYWhLYVJTSjV3NWI5NF9neXQkc2hFN3M2YmVCeGNITmhVczlOZjk0d0NweiI7dmFyIEhZbj0ibV9oZzhtY3h2d0htTmwyOUIkczBjN29Gd1FSMXY5dVc0MjVRYkpmRmRqYk5JWDV0UTNtRDR4ekZDa0lSS0RwcnlxSTVGV1lPU3Z6UzF5VFQkNWNKd0IyVWJuUHpXQVVESGw3VWkyc1lsRVRYTksycU9MazR2QzViJDE1cjFlb0c1JGV2aVZ5Vmw2bHprZ2twQUFiUkNBT0lYcWJ5c1JFMllDS3E0dl9QaXRjZVNXR20xSUdTJFMwaXF1a21DQ3R3SXliVVJ3cXUxc0dMVkVoMWFQc1VDeEM0bk9zbzd5UVhwWUhOZWkyMF9FciRSIjt2YXIgVGUxPSJBZEZHMm5FM1NVZGxXQXJDVWg0NEdvdWVhWkxGMlBtYUxBSnZYWU04bVN3THBNbDJFVlB6T1IxVTVVYVhmWGpHNmlPa0g2V3VrNXJ1eGxDemNjekQ3Ijt2YXIgTHkzPSJvcnJTYU5CdHpVSmd2SVlzTExSa2ZucDVqcVVWR19xdTFJSTcwc2VkQk5zd2NWelJkYlg2M25VWTQ0bEFUYkREamY1TnBlZVRZbzdRQXVKRWpPcnJVYWhoaGN4WkcwS2xPRUUyZ0thaERYTFpZN19NSlA1WGZYUTVuQU5FUE5nSFJsTmtid3FHUHdlSnEzcnRMbWFLOExUd04keGdqc2kkbGJrTUFWYl9pME5ReFM5UDBiWUhISFZXSTlENGxlTnJMakJ3dnNPQTBtV0tFZ2xLRzA4M2lsWFplRmVlSnk5OGFCVyRzWW41Yk9PenVnU2RvRnpaM3lnT0dlUjh2Sm5KRXdTZWFWTzRXc1BvU1NSTUpHRk5YV3pkS0hXSzYwQjNNSGk0dExyRzRXaEM2ZW5fN3BiNU5NeHVhSkN0T2xSeVlfYnFBWSI7dmFyIGNEVz12b2lkIDA7dmFyIER1eD0iQWQwRzJqRSRTSm5sV0FyQ3RmZHhWOU9oM3o5aHJDZiRGa01xUEs4ZHcyVXVidXdGWUFad1I3UlhWb0VvdHhYSEc3Z1lGdUpLUVJpYXhsdHpPUlhlM2dZMllPUGxzc1Z2TUlvcWFtZFZMYng2Y0pMam1Db3RnNGpRYkFYQ3hSVUZFRFZ4YUJJbF9GNmlOU0ZGNUxCNWFXS00zb0RxREk4dHFKRTZwTFg1JEtPTDZzcExldlhDUXNqakZmOGZqZGUkQkVybThhMWhyV2l6WnhGVUg4NzFUSTRwY2lqUTc2V1ZRalRMTjdySTRUTW9jTUs2b2pDbEZudTFudWRVbW5QakFvOXdrMkRlSjc5dmZtSmhJV0lYNlcwOXBfOXJFQUUwbyRoX0hpdE4zTGl4bUhNczh1M2ZablEkZno5U1RBUDlZZ0h2ZVFKclhzTUhsV09GUFMiO3ZhciBiZ1Q9IkZLZFd2Mlh4Z3ZYbHk4WHFoelZ6bFckNEQiO3ZhciBMd2g9IjhuaEl0akdJcndrbFRCYkhJUW94SWttU1gxc3dfMFM1UkVnJHA3Vlh3TzB2Z2UyZHE2bHlTdnBKQ0NUWnVIJE9sdkZ6NXdXaFlwWCRXemtZTjI4djB2bmRjaUZLVHBmdlBuQ290eiRPcXAiO3ZhciBJajY9dm9pZCAwO3ZhciBNMW89dm9pZCAwO3ZhciByTzM9WzE4NjU0MjkyOTcsMTY2ODc2NTQ3Niw4NzkzMjUzMDMsOTI3NDg2MjgwLDE5NzAwMzg2MTEsODkzNjY3OTEyLDIwNTE4MzAxMzAsMTkwMzMxODM1NywxMjQ3Mzc2OTc0LDE1OTg0NDQzNjEsMTI2Mzk1MzI1OSwxMTgyMDI1MDMwLDEzMjkxMDA0MDQsMTQ3OTYzNzA2NSw4OTcwMDc5NDEsMTI5ODgxNzY0NiwxMTk4MDc2MjY2LDE4MDAyOTI0NjksMTExMDg1MzIyNSwyMDAzMzk2MTUzLDg2MDg0MjYxMiwxNzMyMzI2NzA2LDEzNjYxOTIxOTYsOTI3MjMwMjc2LDk2MDU3MDQyMiwxMzY2Nzc1NjA5LDE4MDA5NDkzNDksMTY0ODYzMjg4MCwxOTAxMjIxNzMwLDE0MzA3NDY3MzYsMTM4MjcwNTc3Nyw4NjMwMDg4MzQsMTc4NDk2Mzk2MiwxMzk1NzUxNDk1LDE0MTM2NDA3OTksMTUwMDcyNjYyNSwyMDE5OTgwMDgwLDE4ODI2MDU2MzYsMTEyODQ4MjM4MSwxODk5MDU3MjIyLDEyNjYzMDc2NjUsMTk0OTc5MDAwMiwxNzk5NTgzNzk4LDE4NjU1MDkyNDIsMTkzNTA0MjE2OSwxMjgxNDM4NTY4LDEzMTQyMjI0MjEsMTcxNjI3MDE5NSwxMjY0MjA4OTk2LDE1OTk2MzExNzEsMTQxNDkzOTQ5OCw4NjI0MTU0MjgsMTcxODEwOTI0MCwxMzEyOTExMTU5LDIwMTg5OTUzMDMsMTYzMzkwMjk2Miw4Mjg2NTU2ODIsMTk1MTgxOTMxNCwxMzk3NTg1NDg5LDE1MTQ2MTU2NTAsMTgwMzE3NjA0MywxNDg0MTU2NDg1LDE3ODQ3NzEzNzcsMTc1MjU4OTE1OSwxNDgyOTc2NTg3LDE3ODYwMDE3NzksMTIxNTEyODg5NywxNjg0Njk2Njc5LDEzNjIyNDU5NzgsMTgxNTM3NDQ0NSwxNDgxNzk5MjMzLDE4MzI0MDUxMDIsMTkxOTMwMDIwNywxOTQ5ODU0NzkyLDE3MDAwOTgxMTUsMTM2NDQyMTIxNywxNDMxMDcyMDc5LDEyODA2MDAzNzEsMTM0NjUyODU5NywxMTk0MzQ5NDE0LDEzNDgwMzYxNzIsMTQ1MDI1OTMxNywxOTE5MDU0OTY4LDE0NjE5OTk5NDcsMTYwMTc5MjU5MiwxMTI2NDU4Njk5LDE2NDczMjc2MDEsODYzNjUzMjM1LDEyNjUxMjcwMzMsMTgwMjM4NDk3Myw5MTA0Mzg3NDMsMTc4NjIwNDc0MSwxODAyMzI0ODEyLDEzNTAxOTI5NTEsMTkzNDc3NDM0MSw5NjA3MjE0NzksMTg2NzA3NjQ3MCw4MjU2NDM2MjcsMTYwMDkzOTYwNywxOTg1MzAzOTA5XTt2YXIgcms3PSJKTTlnY2FIb2xFSSRHb0tJb0ckTjZSaG0xbWwxWGNlQWgycVFVaE1QTWNmWmdHaXFVTWNkd2htZEVvb09qU2FUIjt2YXIgWXRhPXZvaWQgMDt2YXIgem1iPSJOa2pfSkdvZEUxNE1rZUg4enJ5VV9KZGFBdjdWaWhIclgybkIiO3ZhciBiZzU9Ijc2S3ZPSHlsVktxMWMkJHFPOWR4OEpBeXNBNVJQSW5WdmN5NlA1b3BsVkRlM3VPeXBJOHBqWTM2Sl9uelR6ZkZrYkFLVjJJNUkxVTdnSDE3Ijt2YXIgSFU5PSJ6SUwxcV8yd2RCNndlaFlJNGxtWFhwdyRnN1hBd1JpWk9DbjBkQVVhY3NuREJSQVZMcklfWEptbVVPNDhuMCI7dmFyIFhncj1bMTc2NzM4ODQ4MSw4NDQxODE1ODksODExMjM0NjQ1LDE2ODU1OTk4NjEsMTEyOTczMjE4MCwyMDAwODkyNzUwLDE3MTU1NjQzNjksODc3ODE3OTM3LDExNjEyNDY1MTIsMTg1MTQxOTIzOSw4MTI5MjU1MTksMTQxNDE2NjU4NSw5NjI3OTg2NzYsMTM5OTAyNDk4NCwxODg0NjQwMTE5LDE0NDYzOTYyMTEsMjAzNjk1MjYyNSwxODY4NzY4MzMwLDExMjg0ODYxOTIsMTM4MDkyODg0OCwxMjY1NzcxNjI5LDE2NTEwNzUxODAsMTk3MDg3ODI4NCwxNzgyMTQyODA0LDg5NDI2NTE0MCwxMDk4MzM4MTQ5LDE2MDA2NjgwMjUsODEyODY4NDMxLDE0Mjg0NDMyMTAsMTM2NDIxNzQyNiw5MjYzMDUwNzksMTg1MjUyNTQyNSw4OTM2MDEwOTcsMTg4MzMyODA4NCwxMzE1MTk4MzI2LDExMzA4NDI0MjQsODc2NzY1ODE2XTt2YXIgTEdEPSJrVXlWTmtsU0ExZFQzVUt0NUxWcTdYdTc5dXFHQ251bnRKWCRXVSI7dmFyIEhBRD0iWFBsQ3lEcVVfMkZpQV9qeldaVSQ1eUREVXJHNDYwQnV1cTVXczNaX0pwUTBvQ24iO3ZhciB2MFA9InBPMTBRdUFYYll0Z0s0dDNtUVVYZTFHVDM0cEl3b2hxeDIkc1RaZmFZbmJ6dk5PZ3d5T1BfQ285UE85Y09tbHRtT2lDbXNkSnB0ejN4YVJOVm9VTnQ1VWhYcVckZWFoZVBPT2FNcF8wa291MnJkOEE3WnVmVDdrUG5CS0htek9xSEViZGQ5NmVjWlokd1NZMTFsd01MZHJZeE1Kb0V1aGZBNURURlRZZmNjRjZHMm9nOGYyWFdKdlZyQ3lVejVzNmdMdFNmSjluVTNTRUxWemRPRmNsTUNSc0ZHRml3Tnp5MFhiNFBjSHJYdlJqaEZjRnFndk5KTXZSSlVhJHdrb3h2d2Q3TUJxMG42bm1oTE1HcEFneVZPQUpnR2ozbW85WlMxTExIMkJNM25kdUhoR0x2dEdzRnRIek5wQld6MWpNcDlJa09Td0RVWlZ1VGFCM1N6M3FQTGx4T0w5RCRDWmxvcDB5cTRwTzhxN25XT1pCcDdHbGZoMXF5VVN0SEFFJE9hYVlDQlFLT3hROVl3WVFwT285cmhORGVPcXpxS3RoX3N5RmZsWW5hTG5WUCRVS3p1a0dSJE50dEkxQUdIOUFVaXEwME1YQ1VJY2hMdGJFb243NWNueUZjRWtQQnpXcFFsZ21iV2ozN0JwJFpkTW5LeGhqVTM4QzlRWHk5UGVaNDk4X040cjdFNWw0TXZsMElEWmUyckQzVXFyVk4yTyRVOVpwRDllZCI7dmFyIHo4ZD0iMU1kV2JKWWF2dHNkWVEzYjFOdWltOUNlT3RER05oTW5VdHkxUUJNTENLVm5NOE94eUJ6c29ZMXVLeG01c0NBMEVZeTI1NUF6Wk9RU001VnlZVjQ4ZDhQNHM0MmwkYnR1UnNjUk1NSVoxcFRPSWNIV1p5cSRaJHVCNk1HVE56bzM5WjRDZGI1TGVMRmt3bFpOZWdpOXZ4ekpTN0pselBrN1F6YWRvdG1XeW1ERUlxd3I1TGUkcDg2TW1jUm5zOFJ0Q3NPWWdYNkZsNEMyQWVHeHJwYVlLazUyczFwX1oyRVRXUThWYUViR1A3VkJrb21XSld6ZGw4RlpFWXlUVVZSaG5iQXdJa2dNRkhyN2NkZk9ISjB4Mm9RYm5RTnNMRjlSeEUydlIyUVM0SEZZZVhEdWxMQ21tbSRwQTlSUlhSQ3oxV0N3VThaN18wOXJ3XzFUZDVXbkJxUElHa0RHOWNmdUtPYVg0YnJVT0t6TVJTY1ppRm5UbDcyY1g2Z0tiZkN6N3BzdEhocjVERkdDcGtVdmYwdVdDRFBqS3p3MlBfQzY1UU9nZFNBWkMiO3ZhciBYa2w9IjkzSkhQTGZuWHRLNVE0eUw2QVJUdjNMUEJncVBmTWdmUGx5SVhMNTNhUmlsbU5VSmpPcUVQcXhlQWhxc1lNZDZBN2dYeUZRZUJicVB6anA5TkNSWlhwZXdQZzNDMVNOZ05kMkNHRW1KQXB3a0txcGlBaXhycCRhaGpnSWF0VFl0YjFFUWUxQVVLMkMwQnBTSnI2a29ZVzRMYVpGUHV5JFB1X3lMSXg3ZnR4Zm9OamRZZmVkOVVEOG9uc3NLMk00Sm9rd09CdWY2OWVBeFJ3SXBvX3VyU250ekhURnFYRUpNejk0NG1UV2M3TDVnNmxHR25HdmxsSTA5dHpHQWVyeUEwN1JwZExRaFVXMVpxNEExRnVvblo5WDh4ak9UUlh4cERha0czSzB5UGkwTHo1NWtBQlhjWXBRZmpDSVRfdEl6U2RhUGxVQXlfSU9aOUFNQ25UYkc1JCRQVmNub1kyWkZnUUE0OWJmNk1MbU9xeUEwN0N4TlBCRk1oRWh0ZjV4NEFaeEJoSVhWOWVsd05oJEpSTWp5SldIRGp4UXlYVCI7dmFyIGJFcD0iMVJZcmIwbktnYnhtSDVKV3lLaGhJJDdXbFVfTjB1ckFSa1dKQ3lNQk5EWEppb05PNDVBcmRDNDJLQlpGd2hUSUFMYzBPUzc4elgyaDkkeWtLSXVycUhVNXY3RVZ1aFJ1X2JqTFJCeHJNdjViOFJfYVhMTWVzaExOTE1WU0Y4N04xWDJLU3M1bTcyU2t6bzBMQTViN0ZtT1JxRHJmTzFDQjgkZkNmUGhWUk42MFVxUlFuIjt2YXIgekcxPSJBZDBHMm5FSlNKSGxXQXJDdGZkRHBSbUhjd0NpMTEkb3ZEJG1XWnRnd1lvR1pXd0pZRjNfZVFQczVUOVNLdDBkXzJkVlZxcWRrdDl5Zjl2STJsRFlpdHpfdUFrc1hYdDVQc1hMSFI0N2pXVnJEdU1ERyRBMmE3b3NNNkhlTU9MOUxySVZSZGZKc3djbjdVbHJaU2JTRGZWenVBTFBXdEVHOTVpZ0RTaG8kRW9JYkp3UHR2dVEwVl9aWHpuZ2tJZWJlS2s2JDBFaGdHTUJUMXRSRlY5SVVSRW5fQkM0d0JfYk5GaElmSjQwayR0SXg4Rlc4bXp6ZFp0QnBsamdqamlmMUpwZnZORm9MRm14WmtiTUw5T0FSdkJRVURZbTV2M0tva053eXJYbGRPNGRwdG12dWxaZnczSTFINWhqblZjUTJYUGVramxWblZhODdtWXZtdlJyUXFxYld0TktsTHhEUTFlZDFZeE91UVVCd2FHbzQ0WlpNYXJoaFZ1T1FfQklSaTR1cWlienNrTyRqSDJBbnZjZ0dZJFYxQUxSX0hhdk85eGhmUmtmOHJLa1YwMlplSTRrOG1odCRtZml2YW96XzhhOWllN1cyUzBlNWxWWHdHWjdSM1Zmdk1mSWhmWnQyRHpONjNwWGxaUTVRR2ttTVI3dXNEbDRqNDJIOENvcEFVWklrSSR0cEpKMWNWamNxUHJYN0ZPcVh3OUt4VnptU2FBeHBSTCI7dmFyIGp3cj0iVlc2ODVNX1hGaGtucmo0cVhLM0pqc1F2cFByZV95dlYweVVpRjJ5SFAzWVU0SG9SaFpDWm5rYk9NOFdveVpnN0I0TDJGWmttVXBBMHczTTNCdyRnWlpGRjIxa2ZKZEVCTkx6UU1IUER4VmdIZTZSZndyWDk4Y0pyVFNYSFF6RGdoVnp5aVQyRDBXeEVtb1E3N1I2ZHY1cndQOHpISFN5VXpLSUxVZVZ4SkV1eF9qeGx4UU1qS3dNS1FKUUhxajVYYl9GMXBEN2l3WDdZWFRua044Q1RRX0p3SHZKMjR3RWtpdGJBc2NYYjNUVjdMUEM4TERqOTJxRHU0MWl3OWhOQk5jeVdvaFlyOVphMEtJZEEySWFxRW1ONjNwYWdwVnNSNDgxUldWOHNMWUU2RmFhVHFaY3V1X2EwS0hwJEVlNWNZMkN0c3NpQkZBVnhXZmNZQWdvY05vJFppalh1VE5nX1dOYTUyVTgwNmdhZE82bGYyTzVhUk9FODBLaUpuSXRyaXpLMWFWNjMyamdOYjJOX2U4eXgySXFfNlVUVUxsWHBzYzh4N3R0bXgxdnR0OVBSN0MxZnZGcjQ5bFJDb2tPWTRLR2VncWVQSVhNVSRFJExyeWdtbWFVWlBtcWVYZHM4dHRmTjdJWkduMUVBbjZNRTU2cW4kTnlaWHBIRUFKdktzYWZGS2JQTVRlUUhzN3l5UlZsM1A3bVN5QUxJQkNBQmVMWVBpS3BvUDVROVpMaVpRX2RNTTJtWVN6SnNTZzVQR2FtQ2VpSEgybDg2UjB6NV9QOHJBeF9MWXhJV0ZEd2xUUnphRTFJNGRYWE1LMW5TWkgzQnlpa0dlazlVV1BISkpnVTBBbk5fRVJ5SHB3VXF6TXVWMEpBU2E5ZlpfeWxTeCRrdyRXQ2ZUTjBBRlo2cDZBdyRsQVRDeGcwekZLaHZxZE5WQUxFckRMSXlsV2V4RVVSSDRZb2FBdFpBVkVoMkEkYjQ1OGxBZE1jUl85NTlPY3lPUV9OWVhHeDRyZlZxT2Ztb3gkRnpTWUxzZXdOT0dBODdYdWZuRnFwYmxLdSI7dmFyIExxRj0iQWQwRzJYRVZTVWtsV0FyQzdmZ2tvZWVSWjY2ajJaY2QxXzZhTTNDemFlM18xUHVaSHhTU1lhNUE0Ijt2YXIgWTdrPXZvaWQgMDt2YXIgVUZHPXZvaWQgMDt2YXIgQXIyPXZvaWQgMDt2YXIgY0Y2PXZvaWQgMDt2YXIgb2xlPXZvaWQgMDt2YXIgakduPVsxMDk3MDkwNjMxLDg0NjA4NzQ3NSwxMzk4MDk4MDI4LDE0NjM5MDY4ODMsMTM5OTM1MDMyNCwxNDQ3NjQ3ODYxLDIwNTQ1ODE4MjgsMTYyOTc3MTU5NiwxNDQ2MDE3MTAyLDE2NDc3MjI4NDksMTczMTYxODg5NCwxMzE2MzgzODYwLDE0NjY4NTcwNjIsMTM4MDAwMzkxMCwxMzMzNDI2MjI3LDE2OTkzNzQxODksMTQ2NDM1NTQyNSwxNzY4ODQ2Njg3LDE3OTk5MDU2NDcsMTIyOTA3NTA0NCw5NDMyMDg1MDEsMTY2ODgzMzYwNSwxMjYyNjM1MTE4LDIwMzM2MTIwNjgsMTkwMTY4OTQ2M107dmFyIGo2VD1bMjA1MTM2ODgxMywxNjAwOTM1MDE0LDE1MDExOTg4OTksMjAzNzk4NTY0NSwxMzYyMzIxOTg5LDgwODYxMTQ1MCwxNDgxMTQwMjc0LDExMTM1MzY1OTQsMTMzMzI5MDA5OSwxNjgyMzkzNjc5LDE2NDc1MzY3NTUsMTUxNDQ5ODY2MiwxNjg1NDY3NzY5LDk2MDU5MDkyNiwxNzY0OTY0NDA5LDEyNDc5NTc4NzksMTkxNzk5OTE1Miw4MTAwNDE5MTEsMTQ5NzQ1MjExOCw4MjcwOTM1NzQsMTQ5ODY5NTUzMSw5MTM3MTU1NDMsMTc4MTg3NjU3MCwxNDgxMTkxOTkwLDExMjc1MDkzNDUsMjAwMzUyMDM3NiwxNDQ5NjEwNjExLDg2MzA3MTU1NywxMTEyODMwMDA4LDE2NjU2ODMyODIsMTI5OTIwNjcwNCwxMTQ1OTExNjIwLDE2Njg3NjI5NzcsMTE2Mjc2MTI4OCwxOTUzMTMzMTM0LDE4OTkwNjYxOTIsMTE0ODIxMDI1NCwxMTc5Mjg1NTc4LDE0NDc0NDUzMDEsMTg4MjIwNzg2MSwyMDIwMzA4MzE0LDE2NTIxMjc4MzAsMTQ2NjkyMjU3NiwxMzQ5NjAwNTg1LDExNjUwNTU1ODUsMTEyOTkyNTI0MiwxMTI4NjgzMTMwLDEwOTg1MzkzNzUsMTczMjk5NzIzNSw5MTM2MDEzMzUsMTE5ODI4OTAxNywxODY2NzU4NTA0LDE3NjgzNzQ4MzQsMTk4Njg3N2UzLDE2MzQzNjY1MjEsMTEyNzc2ODk0MSwxNDgyOTc0MzI5LDExNjQyNjA2NTgsMTQ5ODQzNzY2OCwxNzgzNTE0OTUxLDExODE0OTk3NDksMTM2NTMzMDAzMiwxNzE4MzE1Mzc2LDYxMTkzMTk3MSw5Mjc2MjQwNTAsMTYzMzExNDcwNywxNDc5ODkzMjk5LDE5NjYzNjM0NTcsMTQ0NzEzMTc1NCwxNjM0OTU0MDg2LDE2NDk0MzExNDcsMTQxNjE5MzM3NywxOTY5MzE3MjIxLDEzNjI1MDYzMDgsMTI4MzA4MDgxNSwxNzE4NjI5OTU1LDE3Njg2OTg5NTQsMjAwMjA3OTg0MiwxNzAxOTMyMDgwLDE3NjUyMjY3ODgsMTE2Mzg3NDkxNywxMzQ2NjU1NTQ1LDE3ODE5NDE4NjcsMTczNTgxMzczNywxOTU0MDQwNDE4LDEzNDkyODQxOTUsMTQxMTY2Nzc5MywxODUyMTI3MDkyLDEyMTMyMTY1OTEsMTUwMDMzODI4OCwxOTMyNjc4NTIwLDEzMzIxMDQ3NTgsNjExNTM1OTg3LDE4MDI4NDkxNDQsMTk3MDU1MDg1NSw5Mjg5ODYyMTYsMTY2NzcyNTkyOSwxOTg1NDkwOTkyLDEyMzE0NDk0MTYsMTg4NjQ4Mzc4NiwxMjQ4OTQ4ODEyLDkzMDIzMTYwNSwyMDM3MDIwNzg2LDExNjM5OTQxODMsMTcxODk2OTcyMSwxODAyNzgyNTM2LDE3NTEyMDU0NzYsMTczMjY1NTIwMV07dmFyIGcxMD12b2lkIDA7dmFyIHNmbT12b2lkIDA7dmFyIE1WZT12b2lkIDA7dmFyIGJxaj0iSEsxbERNTEIzdjJCeFZqRGJnJFNOMXpYT0xvMFJYRjBYMnRVVnJKREtpdEY4THVKbklERVgwaVVYSmU0NTFjWXJOMXZaTkI0SXkzclBrZFU2Y0Y2NkdUTUhmRUMzM3RhWXRVOVN6aCI7dmFyIHM5Qz12b2lkIDA7dmFyIEx3Zj0iM010bEhIYzJZaE9aVkZQM0h3SWpidWd3a0lVcVlGUm56SVd5cW9FRmVNMnJIVEM1eDQ5Z05mTUQkYjM0VXI4Z1BoJGFJUnRIelZqdkcydXEzdGJONWZvWmtUYV9FIjt2YXIgZnVOPVsxNDE2OTA5MTM3LDE3MDE1Mjc4ODYsMTc1MjQ2MTE2NSwxNDE2MTk4NzQ1LDEzNDU1NDU3ODEsMTc4MzM5NTk1NSw4Mjc1NDMwOTUsMTQ2NjUyNTUyNCw4NDU4MzczODIsMTk1MTAzNDk0N107dmFyIFRXTj0iendmOURJOTBnMWFsX0lnSTNRaTJIeEM5eXA0NThDY29RdGFCNXJVMFp1dlVWclpTQ1NPZmp6dUFQcmM5cFpwaWQiO3ZhciBEaTM9WzEwOTcwODQ5OTksODQ1ODI1MzMxLDEzOTgwOTgwMjgsMTQ2MzkwNjg4Myw5MjYzNzcwNTksMTE0NTg2MTY4Niw5MTI4ODAyMzQsOTI2MzA4NDU1LDEyNjUwNjA0MzAsMTMxNDA4NDIxMiwxNDMzMTYzMDk4LDExOTU1MzcyMTcsMTMzMzAzMjI5NV07dmFyIGdQOD12b2lkIDA7dmFyIEw2aj0iQWQwRzJqRUdTVWRsV0FyQzdmZzVCWlZIWjY0ajJBdnhZZiRHS2dxSTMwM1o2M012M292SWFuYk5aem1wR3J4bWtHa1UyTWljUyRjN0x0b2xncnRJWUNENE50Q19Ta1ptTUlYcTlRb3NlV0VXcUZLbkt3aUNUQXFjd2x4SHlMNDB6Ijt2YXIgenVEPSJyWFJkcG5QSG9fQ2hRcUFSUEs2TmNiZHVBb1lsdGxkVTM5aFNYRkdNSUxxSXJ1SG5tNHY3N2tmU3FQWThqYk9lZng3VWU0RDBsOFp1NUpQVEZTdHdJMTI2UGFTNXJpNlRHeSI7dmFyIGZhNT0iSjlWTm9seEFhZFQ4NUtlNXFlcXpYdVE5dXJHS1h1UXRfOEJva1dNWHFyQWt0UXciO3ZhciBIdWg9Im9aNzNhS1E5MmtObFVKaFQyckR2WkZZWmxBY0lfYmRndHNDeVE3WTRVbWJyOUZmJGtPRnh2SzJvaiRlM1lBS2xpYWJ4dVMxVDNsMFlVJFRsTlRDc1NmWGN4Q2FXenl4V280VERoJHpFVkp0ZTM3MGszODlxN2FzYTAkMFNXMHcwaHlUOHQ5b2N2anhuVU85ZG43N0NQWHFFc1l2N0pVamhCUE5zWHpldXkydGV1WVpIYmkzUzdSdG9XeSRfZEpJeDI4a3JWUzRJaV9hblpWc3VKYUdXTnhWRThxVEUkdDNnMElhTmVoTkQ5clRfM3pWTW53TDRpVTFDY1Z0cjM0WF9ydExjd3hSUk4ydXVYTnoxWlZybWtHN3F4M1NIaThGbENCZkU3ZjhhZ0F5VGgyTHhCUTg3b0VIZjlwR1dsNHB2bGk0ZU52WUtJWW1ocEtDc0JPSG41TE9PTFQ2eXBTdjhtRHFlSFYycDNLZ3BOX2tlZkU4WXpiT1FHT3gkRFNlMWdkSF9udkhRVUdPVWtlQlVyZE5rQ181U1NRa250YTJDRWtOWkNfVVVDN2QiO3ZhciB2RXI9IkpJNUlKQV9Gd1FSNEh0SDFDa1NQT3JZeXlBcU80bGw1ZzdPR3RSQWQwRFhrS2poJGJraG50b3luSFF4Zk5QemlmSnp3dk5XV3giO3ZhciB6Q1o9IkFkMEcyWEUkU3pQbFdBckN0SWc2WU92TTZidWVEb3d2Y19lbFNONk1SMnkxZnF1TzlSd2d5a1E3YWU0Z0l5VlIxc01TcVJJcW9OZV9hT3ZNM3NZRms5al9ac0hRZ19LbzhLaU9rem1vUlR4V21rZXNCVlRQUk9UVEJkb1BtV05sYmJRa2tEWkc0T1Z1VzNmbHlQJG1pU2E3JF9BaDJvaUE5MGZOSVpYNCRQcmxORmxjU0Jiak5BS2FYc1kxaWkxb2xBJGp4UzZpV0JwUUowM1BGMEM2MnlIdnF3MEVqcUlTWUc5M09aeVBLZlBtWVBRV3pxMnhlc0cyRU1mek5mZmxXbXZZaklMNzI3OURmUF92SXVCMk1VWiRfVVZ4U0N6ZDBkVF9DQ2Uxa0dkWFZDSFpGdjdHcGlBNGhpYnAwWkVOWHJtYnA3UHIkb1NDWVA1Q0o5UDB4YTJDM280ajJUM09YSV9OcW5NNzFEUFVQVFM0SGxaRTlBMTJGYW05bkJUTDQxOVhXZXExb0tGRTdTQnk3QTFucCRoSVRXV2FCcmJFZzFwa0FPaE1Hd3Nya2ZPcDkkUDB3THR4d3NLcmJTNWxBUTE2ZzBzV19OUFF5V0pEYzJDdm1jN2ZpUCRZbHRqQnZ2bUhBeEtaQngwcFNIUzFNZkdXMUhCYktydTVfMzFnRkJQWFdobmdkMiRmVkQ2ZnZrM09lRHh4RTlvWlgzeXdEZmFvdHpJQ0VtTGFNelVYUTdyaHQ4T0NlRm85a3dxRU5TTHN5RWpxRm12a0Q5SGw5MFZYVEpLU2F1NlU2UURGT3N0Mmc0YW1aX2pBd1RkZmJNZ3REMjA2NEdDME0kaTFVZjV1cWJmVmEzQVlPNkhLWXp6OU5hOVpDNm54R1N4emZsSTltVFNaWE5LRElfNjM3Q1VaZXJ2VUVUNnk3TzlIYVZOYzRPYlhEdDFtcXFUd1Y1ZTBQRkM2S0psUE9mTF85WGp0RHJWRCRGeHU1TkwybTNMYWZCcWpldUloREIzd0o1SFMwa1VoMUxKY3NXWkNUampGMlJXS3dkJEFUbllUZFdTanNfZ1A3X3g2cEc2dElENlpBUTM2YU8zdDJYMW1ObDhXQnd4SWtaWFFvTk1QcmN1ejl3dXVLN1hNbDVFNjhlU0xOUFJnSWpTa0s0S25vb1hwbjhoSlFxV3pKTEpIQ2Zoc0cxMjhoZE9jdkxnaDJ5NFV5SGk1bGtyaUk4TVROeGx5Y1pPcHFnTlpfQU9mZm0yUGNuMzJfa1pCQWNieXVYcXZfSmh2M0FiN2pIUkNMOEU5eWtmRGZwZE5uWTZWWk5nUXhxYjhXdEdYcXNCTFZ2cWIkb2R6YUwkNmNoRDRHWlpYOHdGemFhV3VpN3BmNnpnT1FDb3JKZXMzN3JaMnVPVGM2N3VITVVNUmJpSVJpNHk3cUlqZnQyMVFMR3dHMEQwNDF6RVB5ZTRrYVRlQXgyR3loRHdOZHA4dlFpNnhZSTJtZzNiSUlwUlJLUUNxVTUweVByWmNBRWwkdWh5R3VTVGtuYXJqNk1IN3EyUkQwQzBzQiRIOUlIRFR6SlBUYXlrdWJUbkRxMU9NMmtfTnFOd25MeDYkNkZqWU1TeEFCRFBxVWVRMllmeiQ5ck1wckhaVUFDZF9ZN192JHlIQTI4S3Qkb0hxbk1fYlBTTWltbm1kaF9iQlh2YUZubUYxMU9wdnN6b1p2TmQkRjNQaDVMYkRoeDBYd1kkc1JDNEZLY2dlbXdYUjAyQThiVzJCQTZZTkJ5OHMwYSRIRW1HUU9BdVJWMUF1ZWNQQ1NHZXZBZmZCZ3VEeHRKUktHM2JOZUt2c3ozSU9pRHU2ZWF6dE5zbDVHYW9qQzk5JFFxa29BVUN0MVp2Z2JvMm4zY2lwaTYkTmNKQ3hTRnNiZWNZWHdHTWhDQ3RaOEFPY2p1cmhJaU9KeEthUGVZVTRLTEFWazlDWXRYTVljeDd4TFVsSmQ3RUVJbmUxM0ppZjNvVTNJZmFvWThNb1ZYQ1hwanJHc0VmWGswMFo0RkhMMFJnWnl5WmhJVlhWNHdnYV85a0YxZTJfbWg0OWV1R0ticEhzdEcwQ1NaUXlHOVBIZVBUQnIzZFMwQ1BVOERMRnokTFpXbURtRGdjdzNOajB3cDI2d05oNGhmNVpYV3RzaXJzeXNaVkM2VXVxN25jQlpCcHFUbFZoMUJhVVNBOVdiJEFqbmV0TUJ3SmxnVUhIWXFZU1h1Rm9ycDR0bFlUZE5tQnRuMmwwX0M0YTZPZV9sUWxuRXJSQ1ZLTHQzSlMycDQyN1AzcFhibW10cUNCeWZsS2Y2cXl1d2FYbmpTRklXdmpQNW9rQmx2V1FrOGlxb094VFJuVTM4ZkdRMDVYRzBMNDlLRE40OFVaNVlCanRMZVk0VlVBME1weWpfJHlxOGFaeFBYRFZodVJNUVZ2VklxVHY4d05LMTVYb3UxbGZlMkZvV3NMeFR6QjVOd3QkRmlqbkY5anpOd2ZieXhOQ3gycnJYYmhlUk53eHI1RXlVJFpnTEMzYUhhWmJwcTNMYmNQS2V3eE8kTHJiU3E4SVQ2T0lIWnluWEd2ZWd5bGNIZWlBbWl3a2VxV2VQSE92RGhIa2xQNlR3TkpsdlNuRFZxR2ZtQTZrVW1ya3g1cUtpMlpBcm5QWSQ0YlZFa2ZISFZtZGNveFpkcUVFVEtrUkhTQjBGRUVfUXNoME9lNTJMZGxwb0pCd2FYcGdUSFRlZlNPcko5ZlJMSXlDdmFYYVh6Q3lEUmczVnlJSUZ3ZE90UXQ0MmlVUDhTMHEkb1V2eGFiOU1YYURMTmUxdXp4NFNKb2NRRkhFMU5KbTJ2M1FNaSRoNnBTSmFHVGgxNWhwZGZ1MlZXTHBSc1RnMDVnWThOcUN4MzhVX0NOakMwdlBXUU5ENVZKVEhWMFBoNGRFVXlGUjdkVzFPRkxGdHRXZmxwcEwzamZENEtSRE1KSF82bFhybHFmUyRfNlRiWVAzTTlnaEYiO3ZhciBEMjc9Ik9IMThVYnEkY1F4NWcxMUg3TVhESVRRS1B0eTZKb0tVa05SNTR4dTRxa08zQXVVYiQkZGFKUjJTQ0RDaVZQaHZJQzluTGVkQnhPcXB6SUxURFpaSHJ1VlpqUEwiO3ZhciBEQ3Q9InlLWVRDVGtBV2dQV1E0Z1NGMHU4YUEkUGFWREx2MDVyTWFnQXdPUWp0UW5wNEdWTmhTc0tqTWR1OWZvcEN2M055d2hUaHBDYVUxQ2tTUCRyWXl5bXFPNGxZNWc3TzN0UkFkMENYa0tqUCRia2g5eW95bjl3eGZOZmo1SHZsIjtFNUs9KEU1S14oNjk5NzkwOTA3XjQyMDcxNzE1NDYpKT4+PjA7dmFyIGpRWD1bMTA5NzA5MDYzMSw4NDQ2NDU3MTgsMTM5ODEwNzc1NiwxNDYzOTA2ODgzLDE0MzI5MDQ3NjEsMTU5OTQ4ODM1NywxOTE2OTUzOTQxLDE5MzUyMzgyNDcsMTQ5ODUwOTM5MCwxMTYyNzYwNTUzLDE2NDk3MDE3MzUsMTc1MDQ4MDcxNiwxMTE0MjcyODQ1LDg5Mjc0NTgzNCwxOTY3NDg0NDczXTt2YXIgeks1PSJhNWgkcWxDR3RSUDNmNmp6VmhpS3hHWmdFUGFoUnp5dUVVOWd6MksiO3ZhciBudWo9WzE2OTg5MDM0MTUsMTE2MDgwMTExOSw4NDEyMzQyNTMsMTI2MTkyMTM1NSw2MTA4MTM3NzUsMTE0MzIyOTgwMSwxNTk2MjE1NjUwLDExMjkyMDUzNjcsMjA1NDUwOTY0OSwxNDMzNDgxODA4LDE3ODQyMzc2NDUsMTI0NzAzOTA1OCw5NjIwODUxODksMTIxMjQ5NDQzMywxMzQ3MTE3OTM0LDE5MzU5NTI5NjIsMTY0NzUzNjIxMiw4MjUzMDQxNjcsODYwNDQzMjQyLDk0NDU5ODY0Niw5NjQwNTYzNzEsMTI5NjU5MzI2NSwxOTY3MjEyOTE2LDE5NzA3NDU5MjQsMTM5NzQ1NDkwMSwxOTcwNTU0OTUyLDg2Mjc0NjIyMSwxODM1Njk0MTkxLDg2MzMzNjgxMSwxNDY2OTE3OTczLDE3Njc1MjQ0NTEsMTIyODEwNDU1MCwxMjk4NTQzOTQxLDIwMDM2NTIxNzUsMTE0Nzg4MjAzOCwxMDk2MzgyMzA4LDE5Njk3NzY0NTQsOTQ0NTg0NTI4LDE2MzQ4MDQ4MTYsMTkzNzMzODQ4MCw5NDc1Mjg3NzAsMTIzMDEyNDEyMCwxMzQ2ODYxMTEwLDE2OTc2NzQwNjcsMTY2NTIxODM2MSwxNTE3MzY5MTY5LDEzNjM0OTM0ODIsMTI4MDAwMTM2NSwxODAwNjMwNTg1LDE3NTAwMzA0MjAsMjA1NDU3MzY2NSw4MjY5NDU4NjIsMTcwMDM0NTM5OSw4OTU4OTk0OTAsMTEyOTUzMjQ5OSwxOTg0MjYyNTA5LDExODA5MTExODEsMTMyODU2NzM1MywyMDM3MTM1NzE4LDEyNDUxNDY5OTcsMTA5NjM3NjY1OSwxNzE1NjE5ODg4LDEyODA4NTc5NzAsMTk2NzQ3Nzg2NiwxNTk3MTkwNzc1LDEyNjMzMDIyMDksMTgzMjI2OTE1NiwxMjYxNDY3NzU5LDExNDQxNTAzODMsMTIzMDMyMTczNSwxMzMxOTA3NzAyLDkxMzg2MjUwMiwxNzk5ODQ2MjQ0XTt2YXIgSDBEPSJnbmtXYW95VjdidU5tdVhoRjhTRU95akwxQWc0SVlfVkVBV21zMEdOS0JIeTQzdTFlaFYkWTNhWHB5OGdnNGJUNEtxa3JpckhESEoyWFJzRTFUeUM3WGthVFVjc000S3pXWUckVTVrYUNkdGFwZGZXNlR1Nml0WUM3XyI7dmFyIFhRdj0idGg2Yl9CV2RPVGt2UiRHN0o2NUhFel9ja2NONGh5RDJyNXRNR0tmNDlqaFBNVmR2S296aFNMOVc2UnRRUFJDNVJ6dDZvNzM3T3g2MEhaTWVjSnE5SldWYzQ5Qk12UnRHUnF1Mmw3WU41RnhsMjBkaFpZZSI7dmFyIHIwaj0iM0JpQXRKQVRZenZWTHhzcHg5YUV4N1huMHJFMTRMQ1NPIjt2YXIgckNYPSJBZEZHMlhFVlNVbmxXQXJDVWhkMkpUeGtucFBqQVJ5VVlCV1UzOFNRRUxQSjd0T24zTTRYclIiO3ZhciBiaVo9IlkkQmR5SFBVa1FJMnV5Yk5YYUJ2OHE0X0RGbjlTJHgyMmhXRUJfRzlHVnh3NEdvNlMwTDQ1Q2hSbGJ3cVQ1ZEI0THMiO3ZhciBEY2w9WzEwOTcwOTA2MzEsODQ0NjQ1NzExLDEzOTgxMDAwNzYsMTQ2MzkwNjg4MywxMzk5MzUwMzQwLDE4NTAxNTYxMDUsMTk4NDMxNzI4NCw4NjE4OTUyMDQsOTYzNjcxOTA1LDEzODA2NjkzMDMsMTE2NTA1MTczMyw4OTM4MTEyODEsMTg4NjU5ODIyNCwyMDAzNzc3ODk5LDg3NjgyNDYyNywxNjk5MzcxMTE0LDE0Njc1MDE2MzksMTgwMDA5NTA2NCwxMzgyMTgwOTc0LDEyNDYxMjgyMjMsMTgxNzcyMTE4MywxODY4NzgxMTA1LDE4Njk2OTUzMjIsMTk1MTY4NzAzMSwxOTE5NTEwMzI3LDE3NjkzNjI3NjUsMTE3OTI2NzkyNCwxMjgwMTQ1NzEyLDE0NjI4NTU3NTksMTMzMzM0MjI5NSwyMDUxNDkyMTUzLDEzODM2MDk5NTEsMTc0OTY5MzgxMiw5NjA3ODU3NzIsMTI0NzAzMjkwMywyMDM2NDgyNjc4LDk0NTQ0MTQwMCwxMTYxMTI1NzQ1LDE4MDIzMjQ4NTAsMTM2NjI2MDA1MCwxMjEzNTU2MDcyLDg5NTA1MzE3MiwxMjMxNjMwNDA3LDEzNjU3MzAzODQsMjA1NDA0ODM1NiwxOTAxMDI0NjIzLDExNzkwMDE5NDEsMTI4MjE3MjUzMCw4NjI1Mjg1NzgsMTM2NjQ0NjE5OCwyMDM2NjI3NTExLDIwMTY4ODQ1NjUsODU5MDA5OTA3LDEyMzA0NTUzNzAsNjEwNzUyMDc0LDIwNTMxOTcxNzgsMTczNTc0NjY0MSwxMTk4MDIyOTk3LDIwNTM4NTUzMjAsMTY5OTE3MjY3NywxNjUwMDI0NzU3LDkyNjExMDgyMiwxOTM0NTExNjk0LDE4ODQ1MDAzMTksMTk1MDgzMTE3MiwxODMzNzIyNDE4XTt2YXIgZkt4PSI3cEdnUGdwNlpQOTJVTjhBVW1sUXROVFdIR2thSXM5dVVKaHRkMzFIZG1oRGFRNGpBNSI7ZnVuY3Rpb24ga053KHUpe3ZhciBoPTMyMjM3NTQwNDheMTU5MTAxMTg3N141MzU3NDkyODA7aD1JcjQoaF51LmkubGVuZ3RoPj4+MSwxNzM3MTYwNjg5LTE3MjAzODMwNzA+Pj4wKTtoPUlyNChoXnUuciwxNzM3MTYwNjg5LTE3MjAzODMwNzA+Pj4wKTtoPUlyNChoXnUucCwxNzM3MTYwNjg5LTE3MjAzODMwNzA+Pj4wKTtoPUlyNChoXnUuYy5sZW5ndGgsMTczNzE2MDY4OS0xNzIwMzgzMDcwPj4+MCk7aD1JcjQoaF4oNDA0NTE0NjAxNV40MjkzOTQ4NzYxKSwxNzM3MTYwNjg5LTE3MjAzODMwNzA+Pj4wKTtoXj1oPj4+MTY7aD1JcjQoaCwxNzU4MDIzNTk3LTE2ODQ3NzkxMjI+Pj4wKTtoXj1oPj4+MTM7dmFyIGsyPWg+Pj4wO2syPShrMl5FNUspPj4+MDtyZXR1cm4gazJ9dmFyIGJTMT0iakIxQXY2RyQ5M19KQlNYbW5OSFFydDNZSk1BYzltM1hwal9JMTdsNjlQcjR4T2tuUUtYcjJCUkZKOUJ4R2E1ZnJVMElYRTFVNXdsUWtJZVZJUjJHckFaRE4iO3ZhciBQOEg9Wzg1ODk0NDYxOSwxMTE0Mzk1OTYwLDExNDgyMDkyNjMsMTk4NDUxMDA0OSwyMDUyMjgxOTM2LDg0NTI0MDY1NCwxOTg1MTcwNDg5LDE3Njg4NDQzNzMsMTg2NzA3NDA5OSwxMjE0ODYyMzkyLDExNDg0Njk4MzIsMTk2ODcyODEzNywxMzk2MjU4MTIxLDE2Njc5ODM5NDUsMTYwMTE4OTE5NSwxNjgzNjM4ODcwLDE2NjQ1MTEwNzUsMTI0NDY3OTI1MCwxNzYzOTk2NzQ2LDE4MzIwMTk4MTksMTQ1MDcxOTM0NSw2MTA0OTA5NzUsMTc4NDgyNTY2NSwxMjk4MDk3MjUyLDIwMzQ1ODE4MjgsMTUxMzM4NDI3MSw4NzU5MTg2OTUsOTMwNjM5OTY3XTtmdW5jdGlvbiBBRDIocyxhLGIpe3ZhciBoPXM7aD1JcjQoaF5hLDQ4MjM4NTAxMl4yMDM1NzAxMDMzXjM3NjYyODkyMDYpPj4+MDtoPUlyNChoXmIsMzA4NDk4MzYxOV4xOTY4NDE5NzAyKT4+PjA7aF49aD4+PjE2O3JldHVybiBoPj4+MH1mdW5jdGlvbiBNTmsobWssYmlkKXt2YXIgaD1taztoPUlyNChoXmJpZCw1NTQ3NzEyODktNTM3OTkzNjcwPj4+MCk+Pj4wO2g9SXI0KGheSXI0KGJpZCwzMzU2NjYzMDE2XjQyNDYyNDQ5NzNeMjg3MjkyOTA4NCk+Pj4wLDU3OTY4OTI1NV4yODA4NTE2OTQwKT4+PjA7aF49aD4+PjE2O2g9SXI0KGgsNDE4NDg1MzY0Ny05MTgzNjM3Mzg+Pj4wKT4+PjA7aF49aD4+PjEzO3JldHVybiBoPj4+MH12YXIgdmc3PVsxODUzNDQ4MDU0LDE5MzYyMjQ4NTEsOTYzNTk1MzYyLDE1OTc0NjkwNTAsODc3NzUyNDM5LDk2MzAwODA1NCwxNzg0MTcwMDk1LDE3ODU0OTE1MzksMTkwMjI2NzQ3OCw5Mjc2Mjc2MjYsMTk2OTkwMDEwMCw5NjMxMzUwNjQsMTI0ODA4NzE1NiwxMjY0NTQ0MzY3LDE0ODMyOTQ3NjksMTM0OTc0MzkyMSwxODUyNzIzNTczLDEwOTU3OTEyMDksODQ0MzkwNzcwLDE0MzE4NjAyOTRdO3ZhciByU2w9IkFkRkcyakUkU1VpbFdBclQ3SV9OTlBzWElxQnk1d2JQbl9oVG1KSjBCc2x5aFc5dXNRcG03Wk51eDJPRnczQl9TWFh3VWNla0lHN1hTV2xOY0ZYVE91Qm1VT1lkeE9yQzd3bEVJS3diSE9oRFM3U3BUa3g5S09hWXMzWlBtV292RHZrWGwxMUcwTnNHR0dVbElQcmJ3YnNEb2tzSXYkVHJIR0JyM3dycXF2QklBYnAwZUVCdVA4TzVDN2xndFc0VjdRTXhKUFhtd3J5JDJybE40MEd3c2hlRFB2SEhzZ25lU3lQcDlOR3M1clluYzFIJCRCZ002T1g5cFZBanYiO3ZhciBEb1A9IkFkRkcyWEVWU1VIbFdBckNVaGdoSHZFNWQ3UENrIjtmdW5jdGlvbiBRdkkocyxvcCxvZCl7dmFyIGg9cztoPUlyNChoXm9wLDQ0ODg5MTU0OF4xNDI0NzEwMTI5XjM0MTg0Mjk3MDIpPj4+MDtoPUlyNChoXm9kLDEwNTIzMjEwOTleNDIyODYxNTAzOCk+Pj4wO2hePWg+Pj4xNjtyZXR1cm4gaD4+PjB9dmFyIEQ2aD0iTHpMJGxaNzI1Q1BTRm1BNXViRTBxUlpMZXV0cUFvUlNOTHpMazdDT3NKVkNZeW5lZ25lcmVDTkMzdGhnSTJtMzBuUGlSZm54ajVJd1FEZEdXRGRGYTU5MVgxSVRpVkxqelpXa1lDejVXV010cE1zQ05rcUlpcDJSOWFDNzhMaEZhbjFVN196Vm5jWnlBZmh4b0xCdnNvZkIxVThnVjY2aWszaGJqaHVncWh0SHBnVDRxU2lsZFJ0UTYwVVE0QlZ5WGFFam9hYjBwQk1hbjliVFckMyRjT0V5UXpBdW1jJGk5OU5xMDY1WkhLanNVTFpKcVdXNTRubnF4M2ZkUjZWJFIkbU9rbjJIQXhwMHg3TTRUckpEbVQ1R2t2VVB1RnkwbjU0dFdwU2pfd0ckTkIyRTdCdW03Y3ZwME1xS0lEYmNwZFZOZSRLRUZjSXNWbyI7dmFyIGZzUj0iWWx6bFl2QWgyaDF6WSREMEpSdGYyZlRnTkVNaXFTIjtmdW5jdGlvbiB3UE0oTHcsTXBBLGNqZyxNVkMsd2htLG9OSyl7a0YyKys7dmFyIGcxbz1bczMyLHdCTyx3UnEsY0RXLElqNixNMW8sWXRhLFk3ayxVRkcsQXIyLGNGNixvbGUsZzEwLHNmbSxNVmUsczlDLGdQOF07b2xlPUx3O2cxMD1NcEE7c2ZtPU1WQztNVmU9d2htO3M5Qz1vTks7aWYoa0YyPjUwMCl7a0YyLS07czMyPWcxb1swXTt3Qk89ZzFvWzFdO3dScT1nMW9bMl07Y0RXPWcxb1szXTtJajY9ZzFvWzRdO00xbz1nMW9bNV07WXRhPWcxb1s2XTtZN2s9ZzFvWzddO1VGRz1nMW9bOF07QXIyPWcxb1s5XTtjRjY9ZzFvWzEwXTtvbGU9ZzFvWzExXTtnMTA9ZzFvWzEyXTtzZm09ZzFvWzEzXTtNVmU9ZzFvWzE0XTtzOUM9ZzFvWzE1XTtnUDg9ZzFvWzE2XTt0aHJvdyBuZXcgUmFuZ2VFcnJvcihVcjAoNDIpKyJzIitVcjAoNTgpKX10cnl7czMyPVtdO3dCTz1bXTtmb3IodmFyIF9ybD1vbGUucjtfcmw+MDtfcmwtLSl7d0JPLnB1c2godm9pZCAwKX13UnE9MDtjRFc9b2xlLmM7dmFyIE03Tz1vbGUuaTtZdGE9bnVsbDtZN2s9bnVsbDtVRkc9ZmFsc2U7QXIyPTA7Y0Y2PXZvaWQgMDtNMW89T2JqZWN0LmNyZWF0ZShjamcpO2dQOD1FWEs7dmFyIGtubTI9a053KG9sZSk7dmFyIFV2az1NTmsoa25tMiwwKTt2YXIgSUxRPU03Ty5sZW5ndGg7Zm9yKDs7KXt0cnl7d2hpbGUod1JxPElMUSl7dmFyIGtmUT1NN09bd1JxXTtJajY9TTdPW3dScSsxXTt3UnErPTI7dmFyIFlqST13UnEtMj4+PjE7aWYoKFlqSSYyNTUpPT09MCl7a25tMj0oa25tMl5FbkEoKSk+Pj4wO2tubTI9KGtubTJeKCEob3pBIGluc3RhbmNlb2YgV2Vha01hcCl8fG96QS5nZXQoWVhlKSE9PXRydWU/NzY5MTg4NTA0XjI3ODk2NTk4MV4zNTMzMDE0OTc5OjApKT4+PjB9aWYob2xlLmJsW1lqSV0hPT12b2lkIDApe1V2az1NTmsoa25tMixvbGUuYmxbWWpJXSl9a2ZRPShrZlFeVXZrJjY1NTM1KSY2NTUzNTtJajY9SWo2XlV2a3wwO1V2az1RdkkoVXZrLGtmUSxJajYpO3ZhciBzSmM9a25tMjtzSmM9SXI0KHNKY15ZakksNDYyNjE5OTI3XjI2NTg3MTc1NjQpPj4+MDtzSmM9SXI0KHNKY14oWWpJXjM1NjMzMTM0NzUtOTA4ODc3NzA2Pj4+MCksMzM3NDM3MTY2MF4yMTM0NTU5MDczXjE5NTcyMTMyMDgpPj4+MDtzSmM9c0pjXnNKYz4+PjE2O3NKYz1zSmM+Pj4wO2tmUT0oa2ZRXnNKYyY2NTUzNSkmNjU1MzU7SWo2PUlqNl5zSmN8MDt2YXIgb1BTPWNmQ1trZlFdO2lmKEl0dVtvUFNdKCk9PT1BOWMpe3JldHVybiBNaEF9fXJldHVybiB2b2lkIDB9Y2F0Y2goZSl7VUZHPWZhbHNlO1k3az1udWxsO0FyMj0wO2NGNj12b2lkIDA7aWYoWXRhJiZZdGEubGVuZ3RoPjApe3ZhciBjelE9WXRhLnBvcCgpO2lmKGN6US5rblU+PTApe3MzMi5sZW5ndGg9Y3pRLk1KMjtzMzIucHVzaChlKTt3UnE9Y3pRLmtuVSoyO2NvbnRpbnVlfWlmKGN6US5ZaHE+PTApe3MzMi5sZW5ndGg9Y3pRLk1KMjtZN2s9ZTtVRkc9dHJ1ZTt3UnE9Y3pRLllocSoyO2NvbnRpbnVlfX10aHJvdyBlfX19ZmluYWxseXtrRjItLTtzMzI9ZzFvWzBdO3dCTz1nMW9bMV07d1JxPWcxb1syXTtjRFc9ZzFvWzNdO0lqNj1nMW9bNF07TTFvPWcxb1s1XTtZdGE9ZzFvWzZdO1k3az1nMW9bN107VUZHPWcxb1s4XTtBcjI9ZzFvWzldO2NGNj1nMW9bMTBdO29sZT1nMW9bMTFdO2cxMD1nMW9bMTJdO3NmbT1nMW9bMTNdO01WZT1nMW9bMTRdO3M5Qz1nMW9bMTVdO2dQOD1nMW9bMTZdfX12YXIgemtoPSJmeW1wUTckSzFKOG1ycE4wVVYxNl85aHlUb1dSTThRdVRUNGxTdXVwVlVqZzV5MmZzaURka3hheFExYW04eEM4S3giO3ZhciB3UEs9d1BNO3ZhciB6d3o9IkFkRkcyWEUwU1VvbFdBckNVaGREWVYwM1ppTGNFS0NZc2E0NEJ6Tk9WS2I5UmFoRW5yT2JuZzlaWlQ3Z1BNS0VERVZtenBXMWthYk1ZRFFKd2lYJFJKUkxsMW9heUNUaFk3TlViZ01FX0FDMktGUGNaeUU1Zll1VUJiZWpaS1NrQlJxajVzJDNtdkdLUk9VZlpIRUVucEFVSnhHeXNMbFI5T2U1eTExTmlSWGRCYTFNX01RWk91TF9RZ2ZPR01iTFdIZFpZRENxbyRzT1RCcHF1UjRveDFMbWowamppRVBwc0RteEVMaENjSGh0U0tOZnBWbzRXOWRDMjgkckxueDI2TER3cnRMSDNJYjd1ZEtmMWV3Y2UkQTh1d0RvU05RZkpIZFZ3TzckRGNoNWdVMGpJbTd5WTRrSjZpeUFpeFZjWDUxd2ZLN3pZIjtmdW5jdGlvbiBNdGEoaWQsZzEwMixnOWUsc2ZtMixNVmUyLHM5QzIpe3ZhciBvbGUyPW9WayhpZCk7aWYoc2ZtMiE9PXZvaWQgMCYmIShvbGUyLmF8fG9sZTIuc3QpKXtpZihzZm0yPT1udWxsKXtzZm0yPWdsb2JhbFRoaXN9ZWxzZXt2YXIgQVgwPXR5cGVvZiBzZm0yO2lmKEFYMCE9PVVyMCg1MykmJkFYMCE9PVVyMCg0OCkpe3NmbTI9T2JqZWN0KHNmbTIpfX19aWYob2xlMi5zKXtyZXR1cm4gd1BLKG9sZTIsZzEwMnx8W10sZzllfHxudWxsLHNmbTIsTVZlMixzOUMyKX1yZXR1cm4gd1BNKG9sZTIsZzEwMnx8W10sZzllfHxudWxsLHNmbTIsTVZlMixzOUMyKX12YXIgYmFuPSI3dlFMVm1JWFNOQWx4NEVyZG5rJGZCZWVmdzFEZF9QekcxU1FINlJLaXR3RHVNIjt2YXIgajRqPSIkMzlCWjZLNG9YR2dfWkVCTXhENXFwc0lKOSRoNzk4SkhkMW1OVE1xM1NDa3dEcVQxTF9LMlk5TjdpUEhJalRzYloyb09Jamp5dlp6bktFaTNyUUxDUExPOCRDMHRwUHVDdnF5WFFRNlBOWHdkRE9hWGZ6bVpnWFBwQVA1cFRIYV9PNzlxRjkwaW5Ia0g3eGpIV2NUWUZSMDg4eVBnZ01yaldCSjNqY1k5M2htTFAkOUNJQlJsS01MbmtGbG9mdkxJdDNRbGc5Y0NNTCRjNm1OenkwWGI0MmNIJDJ2UmpoRmNGcWd2TjBNdlJ6SmEkd3NZS3Z3eUl0QnEwU29ubWhUTWFwQWdESU9BVXYzajNtamFMUzFPU1gyQk1qRWR1SFVpU3Z0aXBDTmZZaSI7dmFyIFhLUj0iQWQwRzJqRUxTVUtsV0FyQ3RmNFpmZSRKcmMkT0Z2dEp0dzM0R011QTRMSlQ3V3dKWTcwQW04QnhkJHBkSzZUVXBIaWI4aHZsZHhGYzZjVzl1SiQ3TmhDYXpGR1NMVVBPTUlqcUJlck8yZFN0WkJGS0tfM1dLTzlZakk2Slp0dFdMNDdGWEI1aDU0QTRPZnBjZ0xhTU9tWUVJekFFR283UGhpS244dF93bkIyZ0lhQWx0djZaR1k2WFJ1bHV0dTVLMHZEQUhNekdIY25peXRjODBoTmV6dkNFTFM5Y2pwbkdPMEYiO3ZhciB6QWg9IkFkRkcybkVCU1VabFdBckNVaDR5QlN3ODliU2ZjSVVab3V3MWtMVmFxJDZ0MWpFVGZUODlOX3VkT0U0RVdkTyRwWURWdnFXVWt1ZUtxRFFsbGhyamNoa0ZMZUYyUFRKazBPeHVzNUo1cHVzRDEkNW16WE9sb3RNdExyMSRVUmxSUDh6RWxJeDZEVG9hdkFiIjt2YXIgYnU1PSJJajJsUCROOVFHYk9pVHNIQ1I4RWlpa1NFVWRqa3gyRVUzblJVWDk3Ukljend6QXFZVFNVS2NkZTUiO3ZhciBQMmo9IngxMzgyS04zT2xseEhSc29weFJfMXR1dmhDSVNYR0hPel93Ym54aGRsT2o1blpteDVPeUc3V1hkcEZ4TWZkTXNfV0loQXhPMXlpdHlWWlVRODhEVlAwd3ZYQiI7dmFyIExDVD0iR2pzZk5tV1BlTUhSVTIwUWVOdVQ3ajBZbXhuNERYejBwcTVPZmtSU0U2eDZpVDhEbjMxbE53SE5rcW42ZURFdEo0bmhyU3ZtSWN2OG52Rzl1QVUkOFRFWWROa1ZiaDlwSDRpNk5vaVhRQ3lwVmxkNGJkZmZxaTZDQzBnVEpFYmFuU0wwQmg5SHlfYVFjTVR1ZkRqcmRSc04ySXB1aXJBMUhGVzYxamdjWDQkNVAkQndtSTlEb01hRXZ3X1dWMzBfelR3SXd2a0tET1JIcUU3YktPcHdtaGhDYmFfZzVVRTdreFJQNFhrYm82SDM0QTJ0M2NqU1VLRmxxX3RKNWF4NUJEQmY5emxyQXBLT2g2Y0t6TGpBbHZvOUFEdFpDWklTSUZnJHlBV3MkQ0x2bk9MQldfcXA4bTJnT2p2cFVUSllWVnBjWHVtZ1ZqOEphcWxyMnNIZmRHR01ZX0lFNGVQRmM4dkEweno1Z1RJeldRV0ZLRExjOG5Pbm5LNiRBQ0dsSjIzbkhiOWJYS3doSk9XX2J5NEdTQyQ0dHFrbzJiU2pvd3ZEYkhMcEdwamE2Z2FlU3JyY2JMJFYyNUwySm45aDlrUmdxZUJLZHZxeXpJeVg1dkJZN3dpaGI1QjRzMnpBY3okc01HY0tIMFhOV3R5cnZ2ZnNUa2gySTN1YWhyX0lyJFBGWXdxVk1QMzhqX1FJSGtoWHRHTFF1bzdhczgkZjVjaGpDN25SQUI1ZW50OURMSkttTlVfOHhmcE5qY2JnQjNhMEp5aFlQZWdrcWQ4dXV4WkZBbWZEUFU0RHl4cFB6MHJ6dGltbWdUbCRvUVk3WWFEQm9tVUpSZlJDd3ZpZ1M2TVRfSkM1ZHZJcmZZZHVXSFBEMUphMW5sSGFyT1RQVXAwWTdSbXpfamdhbHgkUTNYWjRXOWxoM3ZHZUJKdW9mWGx6U2JfVUFrJFFNMTQ3WllqWUl5TnJMUW5XdHRTU1FRemcxd3BjeVZGSkV1VmlOcHBtUGdXdXBzSmIzMFhZT0lsRkE0NjRFcmYwTjlia1dBWlN4UEZLQ01qbHhoa2VodzlDMFgyQ0Vha29mR0RYVnZPcFVGbkJ6UDhDSDFndWwxbmFQN3dsclVpdXoyWnZoeERPcyREdUdNZEg5V3BqQVBiRlMxczVfUlBoUDF4SXBtZUxZS0JUaElIY2dqT1lxQ1NQYURPUFBmSTFyaXVrR3IkN3UkX0k1UVJXJFlaQTRHOWhxVkFHVG5VOUFvTzd3UXBXJHZKdmtrbV9Va2UyVzdxb2FCbDBfRHVUY1lfb0NUdWxzWjc5cVNWS2V0elJ4TEVmcUNuOW9ZOF9qemNtQlBneTdFWlVxeFdPaVhWeUtZZnBCZzl2a0h2NnFQd3VraXJuQ0g0R3dYJE5XdEpEbXZYN2xoOWwzTTU5UVBxTGRJNjNHejJKSERnc2w2MWlhVV9oT3lFQVFEUlNsQUNzTnBNQ1VCeDFveVdiSHQkVUk4R0NvMFNWeTZmYk9UbndaRENzREljQTlZM1UwMlhpZmtHTTJRN25sd1FlR2ZFbTNGNUZnWXVIb3JiRmV1dXVQMHpBa0lNNjYwOGokWTRwNzdUNHF3c3E4YzBvN2EzT2lzQ01VS01kYW1uNVY1bVZfVkQxTlZYTG9jdjF1cktsJFU1R1E3anRHS0ppUWFaZlNTWU5jN2E5cVk1RmtjZm1wak1FNCR1YThSS0lTM0xjR1YxOTZqXzB4Rm1rN3hYRklQT0FTQXhTcHZ1anBMb2M1Q0dGRVhCYkVvdUhLOGVCU2F6NlhJamFwRWFOQ0VZTDNlZE55TjMzZjVDUiR3SkdKazRhQjl3ZEM0WkdJUEkxNjhZQ2xlOVokam1vamhJeHlhZXM4SHdkbktYRW9xZjdWQ1VDdUl0VCRfb0NpWWFyUnRTTE82T3pmdThoQVU2cndibGl3b1ZHallKdzA1bkhVcWV5bHI2MXJsaXFHSVZ0TGltd09BZiQ0RUljaGZMMyRYa1Y2T2o5dGdQenlpZVZla3pUUVNEWjBzcjVjY05CY0E4MklZTTdob0JnX3NmOVdGaVl5YzdSOHFRN1liTFlZOXUyRzlLWGdpQ2kwa2VwektidHVqUVRqX0xwejJoa2xINGRxbkdHSmpBTSRvU2tZU1Vma2RtRHRjZVdZbFhxTTNOR2lOSU9IZVFvdHJWJCRCMWxfd19mUUV6ZmZ1MEU3cVhFRUF0eDBfNUtsNktVcWF3aHl4T1luNWFlelRpOE5PZFo1RzV0ZmtvYkpVcnEzY01PVkckX0pzM21uMkZEZFI1OXN5REpDaXJhRlBtdzV3X1Zkd1JTbnY2djlYNklwSXlJRXBrRVN1SDA2endBS0RuM1ZpWlBzR0FmeGpkNzhDVWg5dklNRU1WUTMxa0p3RjhGJGlHRVkwZG1RNXdrVEdnNWU5TEdmOVE1YUJ2ZFI1Zk4xYk44MGJOdWdxZFhSZlVwMXRRMHpPWUFwS2c4bTRkQzJuT3VrJGVnblh3bHU3SjduQ3p2R2xVNVRJcUo5R05HM05NMnF4akl6UklyYlVjY0okeDdpVlJpSXdBaEViZFhUJHc4aFllaXRfQnAyRnFsZHY1OFdIT3YyYzlDNkc2Uk9RcGRjY2NKblRYSHo1WWFvNERwc205Vm5aQmh1ak9pdzdzS3FEblRFVTJGNFVNTUpZbWxRZjNDJHZ6RXo1Qm8zZjk1dnokTFczV2NudHJPOWphSzJCTVdfazFpVFRxaVVlbUhkc2ZkeDVDS2FDSGFrRXBaUTZOb0JHZVRPdFN3N3pxaXRoaThwNnlicmJzeE5GYklScHZ6JExfdnlwMU9uTXpfbDVSS05mdjVpQlJyRWtUX29ncW9XTEtXazhOUmpQV1dpazFnMFptTENzMTJjSzNuRjgwMk5CUjZTekZ3a0RYald4OVJxSmdtWHhHVDE3M25Gd0ZGa2lSaGFOV0FaQ2Rkcm5ucFM4MnJPbzUyMkZxWm96SWxpMUZMYkNaYnBYSWk2ajNGNnlYdlZFVCRjalJFR0tDUHVrWWxmekd6ZlNrOEFUYUhUUVJMam9GWnhpJG1qdmpFaGExcTJYcXlJT1JmZkNqT21aN0JRQTVsRWdqSWdvYUVmRzBKSGxzWjJzQnkyVThZOXZXMCRrNDJJZ0R0ZkFwMHFra0JZcDRkRUNMc096MEJGeTFGUDdFdUUyd08kRjJSNlNqM3daV0NIOFl3JDJqOGVqWFBfQVE5bF9sWjVSSTVISXN3ZmxiY2o0X1ZZUyRCX0xva0Y4RGpvMWozY0NYYmpsRHhGQms2ak9aNldtV1Q5MzlWYW14RSRQSEpoX3J3d3ZvMkJnM2tyVUFkek9KVEd3cWlPZmRQSyRBenBsZ0hyV3lKVyQ3S2ZWN1U4SEw1RWRmUXR0UXN2RUV5V3lEJGJUc0pEckFFdlk5Ukw2dXlERXhzUjBIVDdiaDRNcHU3RUVRZFhuRG5PaFZaZ2lwbF9fbllaeGRaOGtjR3dxRVN5SnBMQTVDNXoxb3lJOFJwQUt1SWhIbmZfRXBZWHdvaHEyWlI4NEVXTWhFOGtVN2xUOGZvcVc2OGpyU0Iwelc1cl9pSWRWc01QYzE1OFZMUzZGRUhpZ3BYSXhRUWJOb0pHcVpOcm5MQTBfcnVsOHN6REs3clE5Nno0RnQzZG9pdDJ1NFhWWEw3QUVadlk1WlM3U25BX25iTmJsNlliRDZuViRCU3lPdUpYU0NZb1dMVTgzZUM0VmdCUG5DNWVfbWs4cnlzNEJ5TjNyTEEkSE1HcjhZc1d1U3pGcERfZ3IybzBsbURyTl80dVFhRTVrRjQ4MUNtdmRnRmZya3BlczJhMFJaJHkkVU9oSDU5SnNuYXhVSCRsMTRIN1hIaFB3dnlvVmpteDRDdVRkbnBGNW5WVHRIMDNGTW5oM3VCcm9NbVVINlZHSVZZb0FCJHZsc1ZWMkNoQ0FGaWFHM3duRGpDV0I2U3FVNEJzRkRDWVhjam5hVE9kcDZsQWRZdEtISk5lRlc5M1Y0eWF1eGVOUmlZRU5LTDdyT0FLblJmSDNpQ0h4VjFLNmN4NEh5QkJGWEx0aWNiQnc3UjZSWFVYTU5EbFlXQUtGbzd3aE04UmhVaTdLdHEzbVZuVkZTM1lhM1Eka2FZbFM5T2twZnU1dUpOdElsSXZQSmh2eiR2Z1dMbmFUMGM3alNjczBxdndQd0ZnR3hTQWFmMG13QzNJQWlNYlJyZUFURWk2REZ5Mlltc1dBaDZ5cjJrakw2NWtvSWptUEFqODZKaUdJQllpb3hNRzNpYUlNdXBBYko5MEx4MkpvT2hiRjhhNzRRRDNqa0JoNm5vMVV4Rkk2S0FqbSRIeXdzdm1jYkVTNDJaazlhalBUYUlBU2JyM0lGa0VHVUs0czk0TmpjSWZxNmRVQVNGSkF3RFZXQjM5eFBsQ0JIbHNjMzJjb3hSVVRmUzd6SllraWxVS0pZQ1RsMTlleXhjZVRZREVDSnRzQVpla1FWRCR2bXAwaFB4MUlPNERGa1NBRUhvdjd0bjVIZ3N0STgwUllWclYzNnVNX1JCdHcwY21ub2YyVWdaRDhKNjdlWUNzTVhMcG1GRWUwcHFjWkJGS0RQU3Y1WmpQcWEwc1pUa3g0ajYweGo2dks5ZXFDSEM4U2Q3dkFfV3NUUXIwV1dMTnFaM1Z3QkJiN2RiVDEzR19YUWw5MUokYmQyRGs4c2N1WUNhZ3ZFREVlYmEkM205dEFvZjJXYmlzYkZmeTVBMzE2WCRjbEJHY3VjQ3cxeDk2NDBzZ09ha3NjZGdxODZrUDJRdjdJcVk3JEhMal9PX0ptc3lJSWRlZmh4OXJBJHpianJRbFVEeVdWSlVNaUVwRHZMTGtmZWtUcDJRNEFIbFJxMndXM1VMczk3d0ZTQjFQdTBSUU1qVEpMRWhIT1lYNjNTWWpiSUd4N21idDh5V2EwUzhYcGtUOGxBN3VINWQxQWhsMGtmdm92SHU5WXhjaUV5MHl1Q0pQZDR2aXlJTSRsOEtvd3FNV3Q2YVl5OFBJczhkQ0JiZ2Exd0kkTnJ3VHJvVjAzYXFVNERNeVgxY216YXZ3NmprWUFHX0NnT0pJS21SdzNQdW96UUlHRkpwa1lBWUczQjhXcHBpRjN4d0FQalVHcktPQ0ZHcVBFTXhKb09paiROTXF5Wjk5VU01Y1VydEV1dldvRlA0UndIMnJqQXNiMnpzN0xHbktha3p1cXhvdzJZaUtpeDdnc3FvSm1MWEtVbXlZMkhMdEhwUU9tc0JJZWg2V19BdzBwbkJia25LWlhJNkhnVWp1bzk0Y21wVTBaMjZkR25KM2NWeXp2SDZRR1FYWndfaUtZbFA0S3d5RXUzQ0ZYM0J1OEw4a3hvNDQ4ajBJNktBS0FDd0dUT0lqZnBSQVZpZFVPQVJSS1VkRzJISnBicDQ1bm9uR0xHbiQkX3BWN1NaMEZORDc0Z0dPQ01HekFKJFdVU2hmdmpDb29sNVNxTk5uTjlCdUJidjhUR050R3ROV0xYX2ZfSlNsRHNFdGQ4SEI0aDh5Vl9JVFAkeFBGVGo1ck1pSCRQUm14VWFJNDFXdndPR1NQMDAkOVZiNmh6WmdEUHRvMUo2TTNTUjljWUlrb1RtNTcxOXokNzV1bXpORDdEbUVRNWxsako5ZkR4Mm9CTzdoNHBfTlRickFpTXF5U19BWlBOM0k0czdxSmZLSmZjUnU3WE9UdzNxcEo4d1pLQkZFUGtZb2dTUnZNRjgzODY2anJzUjljOF9CX2RaSWV1c1FZZTBvS19fU1RpMjRhUFN6enhBRjZrRzZIZXhGazAzdTFVWlhPOU5OajdBRXJRWF9zZDV4Sl8xajc4QkJzV3d2UlFVRHFmQkFHYk9HciRaRk40ZWVTcTV5JGhobzRFckZMVVV3cTQ1N3M3WlpKME10TF94MU9zSUVpaGZDZHAkQmdSZFgkQ2h4Z1FkQnRDb0xhclhPdHVuV0tKbFZlRFM2alFjUVZka3dUUFhpNGEwVG1mT0VrODhucDdOSXFOYnJJX2tKT2ZUZVBwNGFEckliRmhEWUNyM1NBSFJ3MTJiZ0wwWVkybGhwdkxKSHJ4Mlo0WmdsUmpiUmkxT2VJc3FyZG5YeExiaXJHaVp3d1NybUllVlhKRjI2NTZUM3RfRzNicFFPN184anAzNEF1dDNDaHUiO3ZhciBQMEw9Ik8xNFJ5ZUVBM2FRWHRpYUVPeW9tbWlQUXZVUmN0TDBja3NuQU9rSklOciI7dmFyIGJROT0iQWRGRzJpUCRTeGpsV0FybTlFYVQ1U180UjYwbFZoa1pJVWZ5bjU2MGJXM1FYdUlfNV9FeFlvVFpIM0gyNVVqTjZrWjhTaEoxQ2JodWY5eVV5c0JJdHFrOG0wZWoxc1FvenpSR1hxb002MFUyRnBuR2ljdjJzdXUxVkgyNFQ3cmQ5Qjd5dzRZclpiJGJkNXRfX0FlYmNQJEV3RG5GSzR5SUpBeElEU3JvYWpMb1hzUW16aWdCODdFYlBRVDJoTUtxUnc0NVA1ZXR5ZmVTQjFfUkZUbm00Z0ExZEl5QnA2M294aFFPUUd6NE9oRnFPMTZpeHhmY3ptWElhR3VsNlVCd0piWkc1dWJHJDZYaXgkVWpyZDRPeExtTDRSSWlRcm1GaV9CeFlrJFZpNTY3ak45JGVuVFNKV1V2UDlaSTA2ZDBBNXFYUENNbHRYQThlNHM4JHNTbWQwTEVhQXM1eUhiMUo1ZzJtV1Y0aXZGTnk0UjV6YUdKMTBMZ3Q4RjcwT1F5dkozSXNkVENkNk9ucyRDSzlkeG4zZW5IMGhfTl9KUlU5Mm9PMm1DNWgkRlVzTkZONVB4Uk1QMzhTUXZ2dDBpOWZxJEtqWG5kOUN1UGhSWG1UdkdJb0RZeHB2NTk1NG5VWWhnR2lOeDJEcWtrUjY4Y2kwOXEwV0wkVHpyaFQ4aHBCdGJ0MzAwUkRXdHNsdk0kTjA2Wngzc1RzUERHWVZlWVhoekgxUDNzajB6ZGRkV2l6dlVRT0M0V3hiX2gkUDBnM1NBS2VTOE4xRCI7dmFyIGJLYj1bMTczMjYwMjk1MCwxODY5NTY4NTgyLDExMTUxMTQzNDgsMTk4NTA0OTk3MCwxMzgzNDExNzkxLDE5NTA2MjYxNTMsMTc0ODI1MDk1MywxOTMyOTQ0MjQxLDE0NjYzOTY3ODksMTQ4MDc0MjczNiwxOTY5OTY1OTMxLDE4MDA0MjU4MDUsMTc1Mjg1MzA0MCwxNzE1NzQ2MTU2LDg3OTc4MjQ5NSwyMDIwNDk3OTcyLDE0NDg2MjkwOTksMTQ4MjMyMzAyNSwxNDE3MTcwMjk2LDg3OTMwODg1NCw2MDk3NzU0MzIsODYwNDQzNzAyLDE0MzA5MjU5MTMsMTE5NDYwNzk4NSwxMTQ4NjAwOTE3LDE5OTk5ODE2NzAsMTI5NzAzNTM0NCwxNzE2ODcxMDIzLDE5NzAxNTYxMzMsMTE3OTEzNzM4MSwxMjQ2NTc0NDQ1LDE5NjYwODkzMTcsMTY2ODE2NTkzOSw4NDY2MTcxNzAsMTQ1MDI3NDkxOCwxMjYzNjI2MjkyLDE2MzA2MjM4MjMsMTIxNTUwOTg3MywxMjE0NjcwOTE1LDE3OTk5NjQyNjIsMTg1MTk0NTMxOSwxMTk3NTY4MDcyLDE4MTUxNzg4MzYsMTIxNTQ1Njg4NSwxMzQ3OTA1ODg5LDE5MDAxMDczMTksMTcxMzY1NzIxMCwxODE3NjUzMzUzLDg5NjE2MDA3Myw4Mjc2MDE3ODYsNjExNDE0NTc3LDE2MDE3Nzc5OTEsMTExMjI5MDM4MCw2MDg1MjQ2NTAsMTczMjYwMDY3MSwxMjk2MTE0NzQ0LDIwMzU5NTgzMjksODc4MzQzMjI0LDE2ODU0MTg4NTcsODEyMzk2NjY1LDIwNTE5NTA3MDMsMTA5NzQyOTM0OSwxMzQ5ODAwMDM3LDg4MDM3NTQxNSwxNTE2Mzk0NTk2LDg2Mjk5NTU2MiwxODM0NDQ5NDgzLDEzNjM0MzIwMDYsOTU5NjYxOTAyLDE2NjQ2OTg3MDMsMTQ1MDIxMTY0MCwxMTgxNjQwNzg2LDEyNzg2OTU1MjMsMTE2MTI0NDk5OCw4MTA1MTI5ODAsMTYwMTY1NTEwNiwxNDYzMTgzNDcwLDIwNTEzNzM0MDIsMTcxNzkxMzQwMSwxMjE0ODYxMTMyLDE5MTgwNTk2MzAsMTY4NTc0NzI1NCw4NDYwMjUwNDUsMTQ4Mzg4Mjg2MCwxNjQ5NDM5MDYzLDEyNjQwMTc3NDUsMTQ0NzcwNDM5OSwxNDc5NzY3Mzc2LDkxMTY5OTA0OSwxMzY1NjUzMDczLDg1OTA3NTM3OSwxODQ5OTY5OTg4LDExOTY5MDkxNjgsMTkwMDE2NzUxNCwxNjg1MTU0MTI5LDk0NzE0NTU3OSwxNDE0NjczNzIxLDEzOTgxNjU4NzQsMTQ4MzYzMjI0MSwxNzg1ODc3ODQyLDExNDU3MjkxNDUsMTY4MjU5OTc4OSwxNDI5MzY4Mzc0LDEwOTgzNDcxMjYsMTY5ODc4NTMzNiwxODAyOTE1MTQ2LDE0Mjk3NjM4OTUsMTk3MDk1NjM3Miw4NzYxMDY4NjYsMTg2NTU2MDk1M107dmFyIFBjTj0iQWQwRzJuRTBTSmRsV0FyQ1M3NDF2NGlSRXNIWmRRcXJRdzJEaDIyWWxTSWNfel9yUTlmRWRzVGd6MktHVWR0cl96QjZsUDBkWEU5eHNPVncxWm1SSTJSOXZ4VmFXWFJQeGFhQzVaNkk2ejhLZFUkaG1qeXZxc0lVRHpYUFRXbEZDandCdzRlcjVTMG53UmEwZVhNNklXb1JWcnU0U2lUTks3dHd4aGVvRVh3eXJOR1N6blRkMnNUXzBYMDBGaDdiazYzVFZRR1haZkpZX1BtYmxUbkw0a0NsQ2t4MzI0aVBzdEtUeG80Y01QczV2ZUVGRXJHWHo5ZG0yMkZKR255RDlUVVh5N3Rwb0hrJHA5RHNpRTc0Y2l0M3VlUElQbEpMRkNUMXBSOEN3NVIkS3F3Um45SHdadEJpMVlWeUI3QUEyX2tUdU04MmhMZnd0JGN0VTNWbkRfeDdzNnI0SyRIbENxcnRrNU81QkZ4MUpRQ2J2WXZpTjR5JDV3Zkx5ZW12SFlZbDZWNmplelBHS3dTMUZsWkEwMEtIMFJnb3NMZ0tRaWVfX2RMQUdKYzhZJF9zYjVqVkJPVVpkWkpiNUwxQ0Rma0IyUGRGdnk5ZF9xNERua3JZWDJld0hRUHJLWGt2VzNTJGhOdlRoJGRWNnd2RDRXIjtNdGEuY2FsbD1mdW5jdGlvbihzZm0yLGlkLGcxMDIsZzllLHM5QzIpe3ZhciBvbGUyPW9WayhpZCk7aWYoIShvbGUyLmF8fG9sZTIuc3QpKXtpZihzZm0yPT1udWxsKXtzZm0yPWdsb2JhbFRoaXN9ZWxzZXt2YXIgQVgwPXR5cGVvZiBzZm0yO2lmKEFYMCE9PVVyMCg1MykmJkFYMCE9PVVyMCg0OCkpe3NmbTI9T2JqZWN0KHNmbTIpfX19aWYob2xlMi5zKXtyZXR1cm4gd1BLKG9sZTIsZzEwMnx8W10sZzllfHxudWxsLHNmbTIsdm9pZCAwLHM5QzIpfXJldHVybiB3UE0ob2xlMixnMTAyfHxbXSxnOWV8fG51bGwsc2ZtMix2b2lkIDAsczlDMil9O3ZhciB6Y3I9ImJ3Qk56bVJIX1c3QlBwWTBKb29tXyRCclNWSm10UWFfbFdyNXNZT3lvbVROb0pickl0YUI1clUwWnVKamRNVksiO2Z1bmN0aW9uIEFObyhtayxiLHgpe3ZhciBrMj0obWteeCooNDA4MDgwODkzNS0xNDI2MzczMTY2Pj4+MCkpPj4+MDt2YXIgX2NhPVtdO2Zvcih2YXIgaT0wO2k8Yi5sZW5ndGg7aSsrKXtrMj1rMiooMTk4NjUwMTAwOF41MDkxMzE3MDFeMTc0NzMzODI4MCkrKDIyNDcxNzIwMTVeMzExNDI2NTg0MCk+Pj4wO19jYS5wdXNoKGJbaV1eazImNjU1MzUpfXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsX2NhKX12YXIgRHVaPSJBZDBHMm5FOFNVWmxXQXJDejc1WDV0cHlTSTNjWWFmOXJPNWRLWWJ3YUwkR2N0d0ZPSlcwTnRUQ3hrbGlSIjt2YXIgdktYPSJ1WDZLZXZPaDdsOFNYOHF5UjFCUkVoMVUxektaTDBnR0kiO3ZhciBqZTk9IlhUR3Y1b3RSM3N6eGtXX0hQTEY5c3UwZkRYdzlJSHpna1BVYU9hMDNNUER1TmZ4Tjh3RGQ1THo5SjlhNFoxN0RkQVVtbENWeEIzNFpHRXVqTk83MXZPcmp4YW0zNlNRJDA5cjUxWlNqdEZlNTdVZTA2eGNMYnRWdnRleWNSVVhkQlYxSW01dk83Nm5xMWFSanVxSldSQ2dSTWs2MXIwVERRb2RrbWh3aERQWjNfNG9ROVNIbDFGZzMyWmFmc0VWMUNTMFlXelFuOWRyT3hwIjt2YXIgUDBUPVsxMzExNzgxMTk4LDE0NjYxMTgyMDksMTQxNTk4OTYyNiwxMzYyMzgzNDQ0LDE5ODM5OTcwMTgsMjA1NDgzMzQ4NCwxNjAxMzk5OTI1LDg0Njg4NzUyNCwxNzUxNDcwOTM4LDEyMzIzMDI5NTUsMTkzNjg3NzE2MCwxNjgyNzg1MzUyLDE4MDIyNzAwNzIsMTc0ODE5ODc3Myw4Nzc1NDAyMTEsMTQ0ODM2MjU3OSwxNzE2NTk4NTkzLDgyNjU2OTg0NywxNjAxMTk0NTc4LDg0NTgzNzYyNCwxOTg3MzI2MDM2LDE0MTU5MzI3OTAsMjAyMDE2ODgxNCwxMjY1MTk1NTkwLDE3Njg0MzU4MDIsMTk4NTYzMjA1Miw2MDk1Njk2MDQsOTU5OTg5MzM1LDE0MTcwMzM1ODEsMTYwMDQwNzY1OCw4NjI4NjQ0NjYsMTY4NTQ2OTUzOSwxNDUwNzE3MjMyLDE3ODYyMTE5NTksMTc1MTUzODI0OSwxODg0ODQ0MTQ5LDE3NTI2NTc0ODIsMTQ2NjUyNzA3NSw2MTE3OTE0MzAsMTg2Nzc5OTEwNSwxMjY2MjQwMzEwLDExNzk5ODkzMjQsMTI4MjA5NDE0OCwxMzMxNjQ1MjUyLDE3MDAwODg0MjMsOTYzNDc0MjgxLDE3NDkzMDY0NDMsMTIxNDk4NjI5NSwxNzY1OTYwMjk2LDE5ODQwNjY4NzAsODk1NzcxMjA0LDE3ODUxNTgyMTEsMTgzNTg5MTAxOCwxNTk5MDkyMDQyLDE2OTg5Njc4ODMsODkyODkwMjE3LDEzMTI5MDkzOTAsMTY1MDgwMzc2MCwxNDMzMjk1MTgzLDE2MzA1NTc1NTQsMTQxMjkxMjI0Niw5NTg2NzM0NTksODI5NTE0MDkxLDExNDQwMjcwMDEsODI4ODU1MTU2LDE4NjkwNTEyMjAsMTc0OTMxNjE3NCwxOTY5MTg5NzA5LDE0MTMwNDY2MTMsMTQ2NTk5NTMzMCwxOTAxNTQ3NTg5LDE3MDE1NDAxNjksOTQ2NzU5Nzc5LDEzMTA5OTY1NzgsMTUxNjc3OTM4MiwxNzE0NTAxOTQwLDEzNDgxMDYzMTMsMTk0OTU5NTQ0MCwxMTQ2MTczODE2LDg5NDI2NjE2Ml07dmFyIEhtRD0iQWQwRzJYRVZTVVJsV0FyQzdmZ1pmcnZ4WjZOamlSMlRUUUNCWXRDbVRPMkowV1FTVXRRMzI2bFBiRDBRNlBERDZ6Qk1kSVRHUks3UUo5Xzc4OTg0clQ1OEVFNmNJM1lwbmZWTURyeUlhdTY2V1RUMmU4QVFORXRjdnhMS3dWdlFDeExOT3Jtb1VCTjV5cyR4S2MiO3ZhciBQNE49IlptS1VFQmI2WnIybmFtSTllV3BwJG9HSTNOVEt4aVc0dThNTXV2TGtiWGRpbk9SUW1vX2tkTkZpTkFBREJJSjc2amdPWEtuRndkdkIkJEt4VER0RTc3cWJvT0YzSkRSZDd3eGtlVjBKY2lfbWdOc0RDSkJJSXYybnIzdm1LeVV4NTlkclREMVoycDliUEx2d3JQVmJVbFhaX0dJeGwyNmVqZ3AzelRtN2c5d1UyNVZnb21MJFBDeWxMU3FWeXZGUTVSZzByZ1FSOUlMcW5xMlJ5bGdzVzYwZG56SVczcW9FRjhuMnJITmc1eDQ5OU5mTUQ4Ymw0VSR1eVBockNBUnRIRlZYdkdlazgzdGIxZGZvSWhUYV9FWlIiO2Z1bmN0aW9uIG9WayhpZCl7aWYoWTN1W2lkXSl7cmV0dXJuIFkzdVtpZF19dmFyIHJhdz1mY1tpZF07dmFyIGJ5dGVzPU1QZyhyYXcpO3ZhciBrZXk9c2JPKCkudG9TdHJpbmcoMTYpO2J5dGVzPWtGTyhieXRlcyxrZXkpO3ZhciBldT13UGkoYnl0ZXMpO2Zvcih2YXIgaj0wO2o8ZXUuYy5sZW5ndGg7aisrKXt2YXIgY3Y9ZXUuY1tqXTtpZihBcnJheS5pc0FycmF5KGN2KSl7ZXUuY1tqXT1BTm8oa053KGV1KSxjdixqKX19WTN1W2lkXT1ldTtyZXR1cm4gWTN1W2lkXX12YXIgdFdIPU1Oazt2YXIgTElYPSJBZDBHMlhFVlNVSGxXQXJDdGhneUhUYTV5aFBoa1V5Vk5rbFNBMW5UOCRLIjt2YXIgYmVmPVsxMzk2NzgxNDIyLDE0MTI5NjU0NTEsMTYzMDg5MDAyMCwxOTAwOTYxNTkzLDE1OTg0NTA3MzYsMTczMjUyOTIyNSwxNjgzNTA5NTcxXTt2YXIgbll4PSJBZDBHMm5FM1NKeGxXQXJDdGZnVTlNZXdYSWQ4dllxQTJKY1dhdHNsTF9sYTBOd0pZbjdRdFFxYUY4WDFGNEJtSDJpODhoR0NCUzNMRnlINTI4MXNYekt2NkQ4MiRMTUNIRUtqNjVBb0RGeHgwcUtoakRzVzJDSXNRM3lzME1fQlk2eVVDYnFtVkZTdW1ybXJQVktSSXg1d2Z2Wmhrb1UkbVNGMzF6YUV2bllBckFFeXhFOGEwVTZueFVyY2tFcjdxSkFMSFpyVCRlR2RoYlVrRkRTT1diV3pQaFpWOUFUdWt5UzBhQTc3RnlTaXNfZWhmV2ZUIjt2YXIgdkNIPSJwekNiRiRBQWQyOUVTSkFITEN4aVpROUFoQkJ2Q3ZiVW1mVW40ZGlHR2x2dm1HV0R2eXRxVUNueWpHZUo4eSI7dmFyIEJDWD13UE07dmFyIFRhTD1bMTg2OTQzMzkzMCwxOTg0MjYzMjczLDE4NjczMzA2NjIsMjAyMDgxNjQ4OCwxNDMzNzU5MzA0LDE0ODMwMzcwNTAsMTE0NDE1NjQ4NSwxOTUzNDU4MDMzLDE5NTM3Nzc5OTgsMTYzMjU5NTgzNCwxMTQ2MTA3MTkxLDE1MTc5NzUxMTYsOTEzNTM0ZTMsMTg4NDM3ODkzNCwyMDM4MDU4NTk4LDE3OTgzMzQzMTksMjAyMTI4OTMzNywxMzk3NTgwODg3LDE2MzQ2OTM0MzAsMTgzMjAyMTA3NCwxOTg2ODA3NjUwLDg5MjQyMzk5MiwxMjk2NDYyMTE2LDEzMTQxNDg5ODYsMTg2NTg5Mzc0NCwxNjUxMjY4MjAwLDE1OTg4MzgxMTFdO3ZhciBsd1Y9QUQyO3ZhciByNHQ9IlJwcXdOczRDdktzTjNKN0ZwS2NqRjBxVFpCa25TUWVBem9EazRQMklxQm9ETTlTRmRwdXV0M1B0aEp0V3BTd1B3cWZTSGskbzRYMGdZJF9aTjUwSzRBcmE5MGFid0ZiS3JVRko5aG9RRkRieGZQUWR4R19ScHQ5dzg1YXNFMGF1MUZ1WnoyeGlZSTJubHF3WTJOR2djaSRoalhMMnV0ek1sbXAyMWpQVzFVdE5SalNWX2JJWkJtUzlmcjQ0X2NvRWw1S1o3SWdLMWZ4ZndZWDBZcUxHeUplcWhvV3V5JCQwNEdLaEZLcHFUZlQ3bTl1ZmlMTTZPVl9aV2lIN0RnNUZKdDZuV1VtUFhlQ2FKX3RLSDZNcDJBRlZPcyRPVWhiVkVVaEQ4V25ZcjBkOXFHUkJnbTFVU2VfSGpCTWtDSnpnU0NyYlFaTzNfRGVXR1VTM3VTIjt2YXIgYkV0PSJBZEZHMm5FUlNVWGxXQXJDemZka3BSQUhjd0NtMXVVb2ZDJFpZSlRWUjMzMTlIVnIkVl9Wb2RtR0I4YzRLSktDQ0hhOXl1TW9KRWc1TG5Sb052VUt1UTRTc3RUSlM5ZXZHV04wNXgxUE5FUHc4ZlNqVGQ2T1VLZW5TRW13QmV6aTFuTzdjU05JMVdnSGQwY2x5U0NsMVNIcDdGVlJDSjlWOTVpZm03c1Jqbk9ESU9kWTBQJDFxJERXRHZfM0YyZTZqODE1b29fUzZ3azdmNUJxcmNRMlV6ZGlnSm1rclFSV2VvZDRMMGc1UFR4UDVkdXphYU9zZktWckVIM2VFZVZ5UlJzcVl6Z3plX3NRT3NvRGRVJHBYUlg0Y2k2UjIyQ0ZiQlNkUnBsQTVDRVo2b2puZFIiO3ZhciBUT2Q9Imd1YnFSVlg3dk5yWFZJZ2xXcjVzWU95b21UTm9KYnJJdGFCNXJVMFp1SmpkTVZLIjt2YXIgajh2PSJBZDBHMm5FRFNKaWxXQXJDN2Y1U25JalVaNjZqQ1RueUtLdzdiXzNIQkZhaV9HeUc5YVNtTDRHX1gkODFDVlJQRmtfRiR6OXBSejhHa1Z1MDFsUGlfVHFPdzZleWxFYXlnZlFHV1JQMmRBSk5oTTh5akRHV0xzN2dYN2VrSW1jZ2lCWURhcXU4bUZ1YmdwOFY1a3lJWDV5QWZnZ0NiTXFUMWNJaHN4YnhaSWt2ZyRHRXN2Ykw2aEE2YzNJeVZxbXlWaUNPenlOY0ptMTJQOXo4RjdLeHlKbkZpbVZ6MVl1MTRSX0k2SFFUQ0J3S1ZjQllEcVl3JERfSSRnZ1Q4WGNMUGNCcm15SEg4aExJV000aFphdEgyVkZQQmFmbGx5dGI0ZzJxSHJLZko4akZ0Z0sydDg4aTNkbEpOemtzdEFGZGFQcVFUTDRPaV9XRWJPZ01zQnJwZlZYY2pCWVpJdFAiO3ZhciBKMjM9d1BpO3ZhciBGRVQ9TXRhO3ZhciBiU2I9IkY0Mmh6OElFYjRfVEVLM2ZteE5INTVVejNDaEM5d0x3T3U1VE0keGNvUkZfc1MwZGhadmVKSTVJSmNfRndRUjRIdFUxQ2tTUGpNUzg4biI7dmFyIERjNT0iQWQwRzJuRThTVVJsV0FyQ3pmNGtDTUlkMGc5Vm5zR0xiR2ZRTjRlcm82dWhjdU9WRUNieEZveiRqdGhIYk51b0xlMkxWcUw2OUpLRE84SjdWOSI7dmFyIHZlQj0iQWQwRzJpRTJTVWRsV0FyQ3o3ZHY1MDJ5RWNMZGl6UVRyTyRkNlAwajg0RjUwV21TNm15eVZlal96MktHR2M0VF9TR3lQSkpua3ljd0J3T0ckM0MyZUJlTml1a3IkdDJxVCRzJHVDWWN2RVJGYXFHV05TRkJIRThYb1djSE1ZUWhPT0pGSTAkdEM4cDhRa0Rib2UiO3ZhciBIeW49ImRielVoN2hZMEJBUWZLSjNmVVpIWXBJaTZJbWVDdkROUVcxdW9ka2V5S1dmJFkyT3VFRXZHOVFyeXBYdXJia3VscGgxZTNCcGZrdjdZbG9tRUd4NGd6MyI7dmFyIHJVeD0iQWQwRzJuRWVTVVpsV0FyQ3RoZHdCUDlJNVI5SU5reHd2TXY3NXlpSXBqbDZmS3c0bEN0dHBPM1huemtzR3JrbVNlRG9jTE8iO2Z1bmN0aW9uIEVuQSgpe3ZhciBjPTA7aWYodFdIIT09TU5rKXtjPShjXjI1Mzg0MTY2NC04Nzg5ODc1ODY+Pj4wKT4+PjB9aWYoQkNYIT09d1BNKXtjPShjXigzNjk1NzIxOTI0XjM2MjM5Mjg5Xjk4NDE5NTAwKSk+Pj4wfWlmKGx3ViE9PUFEMil7Yz0oY14oMTAyMDkzMTY2N14zODMxOTY2NDExKSk+Pj4wfWlmKEoyMyE9PXdQaSl7Yz0oY141NjczMDU2NjUtMTIwOTIyOTIwNj4+PjApPj4+MH1pZihGRVQhPT1NdGEpe2M9KGNeKDMwNDExNDM2MDheMTkzMTkwNzU4MV40MTczMTM5OTkpKT4+PjB9cmV0dXJuIGN9dmFyIEFOND0wO3ZhciBYQUo9IkJBMjc3TWJuemFUTzJKTll3V2xOTnZ6SVNNcWYyTHlJRGZMdzFBTjU3bU8kRk5pazNtSFJ3Y3p3M0xaekdZeTNCR0h1Y3FHQ2VISHJKd3R1TDFXMU1Qbl9sUXlxdGNDOWlvTW1QbndFcWlVY2NpZU9VTUEkMFpKY1psV09iYWNJbzlnN0E4cmRaUktoY3duenZMRXlkVSRmJGt1SlJJT2NCOFljdjh4TXZkOUUycWxBX1hQOHpxcmd0VGRJRzdYY1dwUkUxSDV6RHZOSmRhcWxnOEhzQnlaQVhHeWp0Y00kZWVaa2xRRERDOHJKb3BMMHVaVXpaJHFhdHlyS0thZl81WDduUzhUUkNVdjF2T0dWUEVUemxxYW9IcXI5dG5pUFk3eU1TZnh0Ijt2YXIgUXRXPTA7dmFyIG42bD0iMmlDQ1VTZFZuNjhTTHJ0TmdJTFlxTERLZGNlciRrN2NFQWVHMWhFRjBMU09qb2Z1ZXZlSFhWR3ZSelFmeUZjYVZYRzAyQV9mM0ZoVWpUZm9hUlg5ZDZXUHk4V215MXg5X0dveFRXZF96YjFBSEx0QmhNVlZzdnVVMGl2cEh2YXpDbkdNYkU5SjZkOTdXbmw4T0FpZUVHODEzN2lmYVY1QW85UHFBdU1Db0NwTGJHZTdFVXdHJEttcFpYRUpmV0dsc09JNXhYa1VTRkdxOURHaHJZUEo2cmt4ZE5NQVVUeXJTT0dVY01QMG1CY2J3SjhieDNKQlNNbkxmZjlBNGMyWkdjMzRMZkoxTFcwVGhvUlYkd2NqXzVYNXlMWEVxMjlXM0RaQWVQNiRKOG1ieEsxblBzaWV1UnNIQlVrTGdkNmN3a1pFeWRGajF6cG1BYzhRJGtJa2daSlZiWmhqUEhaZVFiekRBcU5FdnpNMnBid3Q4WHFWMWVSMm1GZlpHTDFzbUthZWtFZllzejFGWkxMNHZ1MHRmYUxweWJyWktWXzlxMWswVFJOSHNvQlBHRVJCcUk1cTNRUjF6VUEzejdTVDdWVGJHa2xPQ2k0QlVUblNWMW5VRmF2SU5yNkNsTVpSY05oWHVMTkhJbTF4WXhmYWNxTjUzTUZiQjVXMDZoaWd5RDhJMzZZNldwcWxmTjRIUllFblJGVzhFZHhXNyI7dmFyIG53Yj0iQWQwRzJYRWVTVWtsV0FyQ1M3ZzB4VkdYX2tvU0EycThmMWdDXzMyaHQ3ellRNVVBaE0xYkdsSnVTeWNLOTVTZG5WRHJ3VDFwblB5U01md1N5S0IyaThqTGoxbGpONjFyVXlDamVOTklzbmw4M2ZTRVR3bWlCQTNLaHRZUmRnSSI7dmFyIFlYZT1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBIT2g9IlVqaE4zWEliM1BQMjVRQlEkNERnZzlGNm1MU1hlXzBLQ01FaXNuTE8wVkZZeTh6bHNBd1NPQ2ZUMjlGUTBoek9OVlg3VWJWcEdaR2pIM2hVUW12RFZ0MmRKelJ2THpWZlczWkNOclZuWDk0UndEJFZrWW9fMmRrWFVrU2hQQ1VhZVY2bW5FWkVnb3BhRXIzNWczY3lKY0JJMXFLenRIVlZ0dmx0V2MyR09NQUlITjZWTzdOQ1hwaFlWckJTWlhjRFJNR0lnWVBmY0lhdUpsNkp2YlFlV0d3M2JVSzZiUlVZU2ZoU0RiTXl0X2dVMXh1MWZTaEJkS1IzaGo1SUFHbzQwV3pIbWZEMTc5QUFjWEVSNzNlWmJFdVVyRXFPS3pjd1lYa01yRlh6ME9ibDBEMTI4YjZsZFNpa0d6S0FKM2hKT3hWYzdwb1RGYTYxbmtuJDEwUGt3S1VScmVtdk1LaCQ5MWJJX0NzODhnM3VqMVoiO3ZhciBvekE9bmV3IFdlYWtNYXA7b3pBLnNldChZWGUsdHJ1ZSk7dmFyIHIyOT0iR2ZaVnlNSEN1d2JzSFhRTnF1eEZCcm01U3Z5VV9UYWlrMFpxQlZUVjAyaTN2MXJOZF9wdlNTVnRYbXVoSUVMYWw5ZzMkWHFmQ0VlNDJpNUtpOTdHTkF5Wno3MXJtYjBraW9mbSRfS3hNTmxUdTc3cFdZUTA3N1RnOUhSS0tJSF9YV1czNWs0WnZqOXlYZXBQSVhnTEtPQyRnWlFMUjJlYU9GajZEMHNCNG5heHVQRGg4NXI4cTRuVHRlR05vMUNUdUVtVjRySzBuYlZ5cHZLYU8yZlZ0WTdESnZLd1dEa3Bkd3ZwVnU5ZU4ydCQ4Q0pYYXVJQjBvd2hNdUlWSmtHNUxZNDI3bEJYSW8xRm10Q1k2b2hwYnBSbExhSjRLdWQ2bGVFbU92Mmd3djF1TjY0TDZGVjI1R25Qc3lXSHpzRmZjYXEzQ1RtSzdGR3ZtSGRDRFFMYnJtMzB6QnpmYkJUa2k4b2lDcWFCNXBId0J3ZWNQUVhTUk1CcHJKYVRuamtCUld6biI7dmFyIGtGMj0wO3ZhciBQcTk9IlZYR1lhV1JBcTg3MV9IRzBBUzVVNUhpZHEwJDdWb3pKR3YzOFBFdHBBeUtOXzM1V0UwMUE4cUlQZ1JoOURXJDJ4eTZRR1FESlhGSnJ0WE55bXNFajE4TDJqSXNVX2NOMHRWZXFGWGVhWDNZdXRTS0ZUdnZvUDM1VE82SDBIMnIyQmdmQUdEU2Mwd05uUVVrS3p0U05VQWVBeWpRM3JYUGpOcFV4UU9jYWpsa3RPY212aW4zcEVlXzBBSTVMQ0c2WkFEWHZ2M1BNejczYUphWkVIeDYwTmV4clRVQkEwYmRGTl9VNkpxQUdPZ1VDUnZXNmo3dHEzOGQxemI4X3hMV2JfanczOTFqZ0YkYkdJRUR4TjZNZ0Jmb0t6NVNiOU9vbndHQ09OenZkTWZPa0k1dDV0MEc0eFhZbW5oY05kdWJaaHpNZjE5ZDhaeEl0SWUwRFE3ZmlyaDZHMDBRdG51Z3phMGEwRHJIMENqZG5LRWhjVEtGWV9iWnA1dVpTVnB6dVNOMzBGSDFYN0xSekppQ1NuN21wQnlSVGhwck5kVDQ1dDBKa1AxbTROZXYwaUZIZyR1SWs0R2kiO3ZhciBZM289W107dmFyIFkzdT17fTt2YXIgdklIPSJwY2wxX0d2d0Q3b2VvbGFpOW5UNTBRNkxrc000c0RCandWRmR4N1pHZXNoMURrU2doSTdDUjFrTTU5UTNVOG5iWThqSnc1ZGFMUlBncll6ZHdTMkpKWElERXBIV1RaRkZXOFNycU42YkNQTjJlUkphNzY0TU5NU1ZtcGtvZU5ydlljbG5IY3ZwdEJYZGhNaWpwX2lVWGRmdXkyMUxzVkp5OVY0NThRZ3NIbVZxWUskZnNQZ0tFMm1QT0xKaURSeGpnSjVfRVhEcW1scktDd2s2NUs4V0dyUGhsNkh4a2hHTkpqaHd3REdJcHBQS3d0OVFabGVaTmJ6MFZ0NjR1aFUyYkxnd2JOOGlGbUpGVjFCczVqcDFVZSI7dmFyIGtEcT17fTt2YXIgVGNqPSJxd3loMXFuTUlET2dGVUV0SEhQSVl2dFdhT0VhdHFVdzR6SEZYbzB4V1kxJEJLNE1pUjB4N296d0lTOUpJN3hHQUtGdkVBMGxPWTE0RlQ2S2ZyV0NPV19TYnhZZFV5a1BXR2hCSGY4dk55Rjd5MDVUdGFwX1k1TEhkUlBMNU9XOGFXZDM4eXhnSmc5JFVWRnJtaU9ibWxMcW5vcVJhaiRNMzJNcmhENDNZVExkUWZWSk53OWdRU0NRS2FESThuOThKWHdUUFFMSVEkMXF2UTA0Yms5UGEwS1dTS1U0VEpfZHA1TWh6ZGp2WUZjenVKNE9SamhhZ0tOWl93VXg1M3R3bkhrYzlna2o2M3p1R2trOGd2SXdhWWVTcEI2anZPVmozZnJ0M19PVG9Ca0VtTUNnQmpNdHJOR2luVzN1RXMwQm8yWkhxM1k3SnI1bXI2dkRxZUhHSHAzS2dxTl9rZTVFOFl6TE9RR09KWURTZTF5ZEhfblBvUVVHTzVrZUJVUmROa0N4NVNTUXNYdGEyQ2xrTlpDcmlqRm9MY0sxUnJVVG5ZVHMwOWprVDBjb1RqIjtrRHFbVXIwKDIpXT1NdGE7a0RxW1VyMCgxMSldPU10YTtrRHFbVXIwKDM5KV09TXRhO2tEcVtVcjAoNSldPU10YTtrRHFbVXIwKDgpXT1NdGE7dmFyIHZncD0idWpMdHRVeHJSUEl3MiQ0NTZjQlJkX29mbmVTbjJ4UWd6R0UwRFpkUWxSODI3cDFfSkc5b0p0dnEweHVQTGVSbm1zcktzV3hsQiRQa3BCRkFOQjJkeFU4UUVDMzNmanNvTl9PdEt0Tm9ONlZEMUMxbXpFeHJiRllwZ2tWaTJYNFlhd0FKVFRmVFF5SGl0VTVPUkxQcFpqbHhtVUx3IjtrRHFbVXIwKDcpXT1NdGE7a0RxW1VyMCgyNCldPU10YTtrRHFbVXIwKDI2KV09TXRhO2tEcVtVcjAoMTQpXT1NdGE7a0RxW1VyMCgzMildPU10YTtrRHFbVXIwKDUxKV09TXRhO2tEcVtVcjAoMjgpXT1NdGE7a0RxW1VyMCg1MCldPU10YTtrRHFbVXIwKDEyKV09TXRhO2tEcVtVcjAoNDUpXT1NdGE7a0RxW1VyMCgzMCldPU10YTtrRHFbVXIwKDU0KV09TXRhO2tEcVtVcjAoMTkpXT1NdGE7a0RxW1VyMCgzOCldPU10YTtrRHFbVXIwKDIzKV09TXRhO2tEcVtVcjAoMjUpXT1NdGE7a0RxW1VyMCg1NSldPU10YTtrRHFbVXIwKDE3KV09TXRhO2tEcVtVcjAoNDcpXT1NdGE7a0RxW1VyMCgzMSldPU10YTtrRHFbVXIwKDE4KV09TXRhO2tEcVtVcjAoNDkpXT1NdGE7a0RxW1VyMCgzNildPU10YTtrRHFbVXIwKDMzKV09TXRhO2tEcVtVcjAoMSldPU10YTtrRHFbVXIwKDI3KV09TXRhO2tEcVtVcjAoNjEpXT1NdGE7a0RxW1VyMCg5KV09TXRhO2tEcVtVcjAoMzQpXT1NdGE7a0RxW1VyMCgxNSldPU10YTtrRHFbVXIwKDE2KV09TXRhO2tEcVtVcjAoMyldPU10YTtrRHFbVXIwKDYpXT1NdGE7a0RxW1VyMCgyMildPU10YTtrRHFbVXIwKDIxKV09TXRhO2tEcVtVcjAoMTApXT1NdGE7a0RxW1VyMCg2MCldPU10YTtrRHFbVXIwKDEzKV09TXRhO2tEcVtVcjAoMjApXT1NdGE7a0RxW1VyMCgzNyldPU10YTtrRHFbVXIwKDU2KV09TXRhO2tEcVtVcjAoMjkpXT1NdGE7a0RxW1VyMCg2MyldPU10YTtrRHFbVXIwKDQpXT1NdGE7a0RxW1VyMCgzNSldPU10YTtmdW5jdGlvbiBRVEsoaWQsY0wyLG8zRyxrYjIsZ2JNLGdwYyl7cmV0dXJuIGtEcVtpZF0oaWQsY0wyLG8zRyxrYjIsZ2JNLGdwYyl9UVRLLmNhbGw9ZnVuY3Rpb24oa2IyLGlkLGNMMixvM0csZ3BjKXtyZXR1cm4ga0RxW2lkXS5jYWxsKGtiMixpZCxjTDIsbzNHLGdwYyl9O2ZjWyIxMXc0byJdPXp3eitIWW4rdklIO2lmKHR5cGVvZiBnbG9iYWxUaGlzIT09VXIwKDU5KSl7Z2xvYmFsVGhpcy5RVEs9UVRLfWVsc2V7aWYodHlwZW9mIHdpbmRvdyE9PVVyMCg1OSkpe3dpbmRvdy5RVEs9UVRLfWVsc2V7aWYodHlwZW9mIGdsb2JhbCE9PVVyMCg1OSkpe2dsb2JhbC5RVEs9UVRLfWVsc2V7aWYodHlwZW9mIHNlbGYhPT1VcjAoNTkpKXtzZWxmLlFUSz1RVEt9fX19ZmNbIjE3eHJ4Il09ekFoK3ZncCtQODkrbmdOOztmY1siN3hjZDgiXT1YS1IrVGl4K1hlNytqZTkrTGUxK1RhQjtmY1siMTM1OGUiXT1EMmgrVGNqO2ZjWyIxNTBheSJdPXpHMStMWWwrandoK1R1SjtmY1siMTQyMG0iXT1EdVorTE9CK0F2cyhmdU4pK2J1NSt6bWIrZmVyO2ZjWyIxcjU3OCJdPUR1eCtQR2wrWEFKK1hrbCtqNGo7ZmNbIjFybHVsIl09QXZzKHJpNSkrejhkK0hPaCtiQ2g7ZmNbIjFidGJzIl09am1mK0Q2aCtBdnMoajZUKSt2MFA7ZmNbIjF5NGZlIl09ajh2K242bCtyQXIrcjI5K2oydCtQcTk7ZmNbImt0OWd1Il09bndiK1hhVitBdnMoWEN6KStMWXArSHluK0xrRDtmY1siMXVmdHgiXT1QeXQrTGlwK0F2cyhQOEgpK2JFcCtBdnMoajBOKSt2Mk47ZmNbImdpMTRyIl09bll4K3pjWCtmYVIremN2K0Q4TDtmY1siMThjaXMiXT1MNmorQXZzKFhncikrYmk5O2ZjWyJhYXBpOSJdPUF2cyhMWWYpK1hFeitEQ3Q7ZmNbIjF4MGZmIl09UGNOK0gyZityNHQ7ZmNbIm9paW44Il09SG1EK3JVZCt6MkY7ZmNbIjFra29qIl09clV4K2JTMSt6a2grYmlaK2JTYjtmY1siNmlhOXoiXT1iRXQrRHdEK1B3bDtmY1siMW9wejUiXT1BdnMoRGkzKStIQUQrVE9kO2ZjWyIxcjZrbCJdPURjNStiU1ArZjJoK0QyNyt6cWg7ZmNbInB6cXc4Il09dmVCK1A0YjtmY1siMWhhbXgiXT1EY1IrSHVoO2ZjWyJmYmliZyJdPXZFTCtBdnMoYmVmKStyaXIrZnNSO2ZjWyIxeTN6eiJdPVh1citiZ1QrQXZzKExVcCkrdktYK3IwaitydVI7ZmNbIjFoeTFyIl09SEFmK1hRZitQT1orZk14K0F2cyhiS2IpK0F2cyhQMFQpO2ZjWyJnYzkxbiJdPUxJWCt6SzUremNyO2ZjWyI1c3ZmbiJdPVRFWitBdnMoVGFMKStYUXYrdkVyO2ZjWyIxeXowcyJdPXZjcitIVTkrdkNIK3p1UitMd2grTEc3O2ZjWyIxMGQ2diJdPUxxRit6dUQrdkl4K0F2cyhiS2YpK2JnTDtmY1siMXRhOXMiXT1EY2grTEdEK2pFRCtQNnIrbkExO2ZjWyJ3cXpoeiJdPUF2cyhQSXIpK0xDVCtESVQ7ZmNbIjE1NGswIl09ZjBKK2I4bDtmY1siMmV0Y2oiXT1Mc0orUDROO2ZjWyIxY2F0cCJdPUF2cyhiZzcpK25TZitIMEQrenFyK2pRWit2bzU7ZmNbIjFmNGl6Il09Yk03K3JrNytQMmorbk1yO2ZjWyIxMm55aiJdPXpDWityRVo7ZmNbIjEzZ29uIl09YlE5K0F2cyhyTzMpK0RpcCtMeTMrUG9UK2ZjejtmY1siMW50Y2siXT1ia1IrQXZzKHZnNykrYmc1K0xVUitBdnMoUEFWKStMd2Y7ZmNbIjFuMG0xIl09QXZzKGpRWCkrRFdWK0F2cyhMcVYpO2ZjWyIxNXJiMSJdPXJrdCtmS3grUDBMK2Jhbit2eXg7ZmNbIncwdHJ2Il09ckNYK2pJcCt6VUI7ZmNbIjE4eWt3Il09VGUxK2JZWCtMNm47ZmNbIjFtajV3Il09bnMzK2p3citqT2Q7ZmNbIjZkNnQwIl09am1kK2JxajtmY1siczBvOXciXT1YVWIrVFdOO2ZjWyIxdW8zbSJdPUF2cyhqR24pK1Q2WDtmY1sieWZhOWEiXT1yU2wrdkFKK1RPNStES0orQXZzKFBlWCkrZkdqO2ZjWyIxMndjeiJdPUF2cyhEY2wpK2ZPUitBdnMobnVqKTtmY1siM3g1NnYiXT1Eb1ArZmE1K0F2cyhyYWQpK2pzMzt2YXIgSTdTPU9iamVjdC5jcmVhdGUobnVsbCk7KGZ1bmN0aW9uKC4uLl9fYXJncyl7dmFyIF9uPV9fYXJncy5sZW5ndGh8MDtyZXR1cm4gUVRLKCIxMXc0byIsX19hcmdzLEk3Uyx0aGlzKX0pKCk7Cg=="}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":8,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vote-fwa.fun/","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T15:36:53.510Z","timestamp":1785166613510,"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":"vote-fwa.fun","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 25 Jul 2026 07:47:27 GMT","end":"Fri, 23 Oct 2026 08:44:52 GMT"},"fingerprint":{"sha1":"0D:2A:CA:A9:E6:B3:7F:A4:42:AC:0D:9C:15:D9:97:88:C3:0B:AC:86","sha256":"11:14:51:E5:90:83:88:3D:97:CC:F2:EF:AD:61:EA:4F:BA:B0:C3:21:C1:40:A2:FF:43:C9:9A:1C:6B:2D:32:B6"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: vote-fwa.fun\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\nCookie: __p=kbheGwODCKX%2B9tjaSqoy9DxYEqp8f8rUtrnuiJpUPxWMrruqynr8OJM5yKn6ijmJLsbeZfo%2FCfiTzD6wtLcevCHTFJP7g0uWpbzt3Vrd%2BRACQEOUhcCAnvYzKIR4DxSqjMXFkz4aizzPdbl%2BxmpLZMBZQbPRSSBHrPNthO1BoZA897duWBh9mU1epA%3D%3D\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/3 200 \r\nset-cookie: __p=; Max-Age=0; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT\n__v=8ab6a29d-c969-4ad4-b513-f06e3fad4bbe; Path=/; HttpOnly; Secure; SameSite=None\r\ncontent-type: text/html;charset=utf-8\r\ndate: Mon, 27 Jul 2026 15:36:53 GMT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2Fp%2FKSZuMaYQWFjWEjz7rqp0isWET1cMFqSp0DretVoxUk%2Bs5z%2BVqwAQVhKTpJDn1fwWnOBXzh0LE4RebAm7qlUjtbFWTD1t9EZRegbRw9717v9hl6UlSJBkufVgLX2E%3D\"}]}\r\nvary: Accept-Encoding\r\nserver: cloudflare\r\ncf-cache-status: DYNAMIC\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncontent-encoding: zstd\r\npriority: u=0,i\r\ncf-ray: a21cb8e67dea568b-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"]}],"data":{"size":248,"size_decoded":956,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with no line terminators","md5":"35c5a77db05b2dda27ae4d93d8780237","sha1":"e920b77e480b5835accb8bac78c7ca4ada8c976e","sha256":"0e8a00548cdcf5ace52f9a654c8e0d8807c63c33039429e1c7550e3f9991593b","sha512":"290e2e2f9d9d1b69591b3497b57ed394f56b805acd1122dccb1326b2fdddd204d7eb4d8c27606e76d127cbff04c9f10ba376bdf8308d22764c9832c9dc3587e1","ssdeep":"","tlshash":"f3d097a3cca2848c0a7057f0adf1e17c0e0a8adc6343ec507dc026ec0ec1326cc938a4","first_seen":"2026-07-27T09:22:57.50948Z","last_seen":"2026-08-01T18:29:40.101611Z","times_seen":93,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04IiAvPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPjwvaGVhZD48Ym9keT48bm9zY3JpcHQ+WW91IG5lZWQgdG8gZW5hYmxlIEphdmFTY3JpcHQgdG8gcnVuIHRoaXMgYXBwLjwvbm9zY3JpcHQ+PGRpdiBpZD0icm9vdCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4="}},"time_used":69,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":69,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vote-fwa.fun/favicon.ico","fqdn":"vote-fwa.fun","domain":"vote-fwa.fun","tld":"fun"},"ip":{"addr":"172.67.189.179","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://vote-fwa.fun/","date":"2026-07-27T15:36:53.605Z","timestamp":1785166613605,"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":"vote-fwa.fun","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sat, 25 Jul 2026 07:47:27 GMT","end":"Fri, 23 Oct 2026 08:44:52 GMT"},"fingerprint":{"sha1":"0D:2A:CA:A9:E6:B3:7F:A4:42:AC:0D:9C:15:D9:97:88:C3:0B:AC:86","sha256":"11:14:51:E5:90:83:88:3D:97:CC:F2:EF:AD:61:EA:4F:BA:B0:C3:21:C1:40:A2:FF:43:C9:9A:1C:6B:2D:32:B6"}}},"request":{"raw":"GET /favicon.ico HTTP/1.1\r\nHost: vote-fwa.fun\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://vote-fwa.fun/\r\nCookie: __v=8ab6a29d-c969-4ad4-b513-f06e3fad4bbe\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 404 \r\ncache-control: no-store\r\ncontent-type: text/plain;charset=utf-8\r\ndate: Mon, 27 Jul 2026 15:36:53 GMT\r\nserver-timing: cfExtPri\r\ncf-cache-status: BYPASS\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=6,i=?0\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=rapZjRK6%2BDwgrqGGEhi0XgxB%2FYJfV5Agbc4u9%2BTUYlY%2Ba9bZCjnf1vKKZtXrmseNHcgeFTkhzSL830O85mI3vCKrxFiGuLd7AkUHMEnUgTa3M7N2wQ0MJx%2FUEr2UBbs%3D\"}]}\r\ncf-ray: a21cb8e70df1568b-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 9\r\n\r\n","headers":null,"cookies":null,"status_code":"404","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":9,"size_decoded":618,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"9d1ead73e678fa2f51a70a933b0bf017","sha1":"d205cbd6783332a212c5ae92d73c77178c2d2f28","sha256":"0019dfc4b32d63c1392aa264aed2253c1e0c2fb09216f8e2cc269bbfb8bb49b5","sha512":"935b3d516e996f6d25948ba8a54c1b7f70f7f0e3f517e36481fdf0196c2c5cfc2841f86e891f3df9517746b7fb605db47cdded1b8ff78d9482ddaa621db43a34","ssdeep":"","tlshash":"a250000c0003c3cc0000003030c0000000000300300000300000c000000000000c000c","first_seen":"2023-03-08T03:03:03Z","last_seen":"2026-08-15T11:48:53.200226Z","times_seen":89154,"resource_available":true,"data":"Tm90IEZvdW5k"}},"time_used":109,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
