{"report_id":"514ced24-5cfc-4737-8ebf-d3fd7725f36a","version":0,"status":"done","tags":[],"date":"2026-07-27T09:12:33Z","url":{"schema":"https","addr":"retail-shopping.shop/","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":0,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"final":{"url":{"schema":"https","addr":"retail-shopping.shop/#/","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"title":"RETAIL-SHOPPING","dom":{"size":110424,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (40760), with CRLF, LF line terminators","md5":"f0c3dcbf990aaea30d54fb1ae4065c35","sha1":"acd1df0b2f0da6644edddb90d480c45c2ab280de","sha256":"d106b5989758a801a6284d45ed89a129a9361000f6ad5a17e1df3bac6d43a0bc","sha512":"2b8591fa373fdfd3ae61387b911c1ef4dcbe6f643c8d052a4befc898d7283480a7a7cab23b9775725ad0244b96ead80a08f306984d53820cbdcef4d8359ddd35","ssdeep":"1536:Ns4pe2N4MjsYId0FHoMqu7NdEAaM2OUYuvOxFZ4sfdhsfyKsffssfs4W6YEJJS+:Aqsp0NVr7fnaMp/","tlshash":"6bb33193bad8149cea2bcd86d289b3bcfabf256183525cd3e71137358f912c3220565d","dom_hash":"domhash78d3fceeecd32ff20362003a4aa9bcee","first_seen":"2026-07-27T06:06:44.998037Z","last_seen":"2026-07-27T14:18:45.065479Z","times_seen":3,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"retail-shopping.shop/","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":0,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T09:12:33Z","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":2}},"detection":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null},"summary":[{"fqdn":"retail-shopping.shop","ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-06-23T05:37:06.445393Z","last_seen":"2026-07-27T06:06:43.869076Z","alert_count":24,"request_count":12,"received_data":1096013,"sent_data":6102,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}]},{"fqdn":"cdn.dcloud.net.cn","ip":{"addr":"124.174.94.22","port":443,"asn":0,"as":"","country":"China","country_code":"CN"},"domain_registered":"2013-07-17","domain_rank":296858,"first_seen":"2018-09-15T09:18:08Z","last_seen":"2026-07-24T17:44:02.835081Z","alert_count":0,"request_count":1,"received_data":577,"sent_data":555,"comment":"","tags":null,"fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}]}],"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":"retail-shopping.shop/h5/static/js/index.04539d30.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"e8af1d1ecda4ab826f7c876a8630b140","sha1":"d816b86dcf60ff2e6c52a4b28ee0bf2644c94628","sha256":"0f8f6e15a14718b04b2a8d0d988d8f3d3cd92c996d6e2213043ad0667b3f768f","sha512":"b168dfba52b0fd6639cc5e3dcc4977fc28f5bf7a41cec0b303e8956d94463c4c73abf43ed3f3b3bfdb2c4c91cf78a9380f0f3d99294d2934accf98766ab06b28","ssdeep":"1536:UCon8rxj/gXxRACUJBgM/5+w3CokhjuAvP:ToQCUJBAhZ","tlshash":"eac37183fac9605d8b4b5e82d05f33f8fab72c725246e8c3d6a17f658f58697221250c","size":123811,"data":"","first_seen":"2026-07-17T10:51:36.435719Z","last_seen":"2026-07-27T14:18:45.085718Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/pages-checkIn-CheckInRecord~pages-checkIn-checkIn~pages-index-index~pages-index-list~pages-index-mai~cbbde680.a8d8becf.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"dcc5a3963eee31b5089f9585da727c07","sha1":"e0e7df39be0162a8183ab3889ad040194f879abe","sha256":"f30d8e39fc27ad29b15fd8fa8c5c799a59038c0948f773d06ebbd12649a6ba27","sha512":"c0b00be157c0e64668a2853a81f9f5b6a9522584ba0b58e60a5bd1316bff8a778074ab39242b4988057c48a7eab6b931cd4eeb330a2904649e217e07f19795ac","ssdeep":"768:TIFZpYdqUgQnKb6QWm4AmCd0tG8e+W1MAbu7N8ChEAh8sd0Q2Z7wXubeNDtfDsS2:0FjCrsYId0FHoMqu7NdEAaM2Oce/Z2","tlshash":"f353eae6f20d1cd13bffc94b6344634e7991b726d8a42c28f167164c4ef33a621997a8","size":60746,"data":"","first_seen":"2026-07-17T10:51:36.446639Z","last_seen":"2026-07-27T14:18:45.088762Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/pages-login-login.94b69155.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"f53f76584169179c013754c31eb0ea85","sha1":"df9293fad39cd36c27c4dfdf279e8373a785c578","sha256":"21a2dc117f0f6a86efc73a62e10d7ec6ff09dc1cba375964b59b392c98880a22","sha512":"566757d2d7397ba342aa37653873713c1a11c3b5f7f8518a93987f05a4a99f501d334ab4f75584e5dd17f2b7e15490a6d2f8f348c0b70dcfcf399227b738995a","ssdeep":"192:SvKxwdw8Jhh2WZemhCdgCeFBhkImQioRsSAF+RBQL:SSSLJhh2WawwJL","tlshash":"6f12961810a3a49e4c06b8a530571a1570337e7ea097804aa7b6caf59df5ecf7727f28","size":9459,"data":"","first_seen":"2026-07-17T10:51:36.438277Z","last_seen":"2026-07-27T14:18:45.089909Z","times_seen":4,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":true,"md5":"93368157fb131b56a45d6f60f8b40342","sha1":"ea2a25edb7b00c3e0a06650f02fded5bd87dfa20","sha256":"c48d4859bc082aa591168f7d7230bef438ecc2b3074e707c83864e11ec1a891f","sha512":"366c90d022f7fd6718d76460de51a154cf6cf8bf8e3aefa2e0e736cbba24ec53506485331abd3c3c2a7e6ae00c9a3b957a9aa675ecdd389afca7863ad8365908","ssdeep":"","tlshash":"c8e068c260a6294c02208016304ac1031bb608729ec149613c4c67a58fb9f4bc46e859","size":352,"data":"","first_seen":"2023-03-07T01:10:06Z","last_seen":"2026-08-17T05:04:56.200892Z","times_seen":7196,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/chunk-vendors.99d58eee.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"introduction_type":"scriptElement","is_inline":false,"md5":"664996a2203dd9ef5c0ade8f56868c15","sha1":"06186c01c702881b6c931d97121de2b9dd4f3f60","sha256":"beccab3bf55f94c38c11474b2cf160bd1ff9fb145c1eb9d0d74232c8b16d5ab6","sha512":"7a250854f1471e27a5007ce9ef14ce6dff4cd007545561a093400d15794a54fb289130f00b645e21dcafa27a1846186b19d6ffc1ba16b3e31aa3065fd533082d","ssdeep":"6144:a+sqYP0/ytNaP81AhKH+hU1Cd9wKwz2CGXNOdqJZ:aHtQo5bCRwzQ4dqJZ","tlshash":"70d4089cb285b4a607d761f1003f220bb13b6868b40b95d9f27ae4d46e7d94e6127f3c","size":620511,"data":"","first_seen":"2024-09-19T20:12:05.640581Z","last_seen":"2026-07-27T14:18:45.067163Z","times_seen":20,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"log","text":"[system]App Launch","filename":"https://retail-shopping.shop/h5/static/js/chunk-vendors.99d58eee.js","line_number":1,"column_number":177699},{"level":"log","text":"[system]App Show","filename":"https://retail-shopping.shop/h5/static/js/chunk-vendors.99d58eee.js","line_number":1,"column_number":177699},{"level":"log","text":"[system]https://retail-shopping.shop/#/","filename":"https://retail-shopping.shop/h5/static/js/chunk-vendors.99d58eee.js","line_number":1,"column_number":177699}]},"http":[{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/chunk-vendors.99d58eee.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:05.384Z","timestamp":1785143525384,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/js/chunk-vendors.99d58eee.js HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:05 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 09 Jun 2026 09:23:16 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a27db84-977df\"\r\nexpires: Mon, 03 Aug 2026 09:12:05 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":620511,"size_decoded":220780,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (65152), with no line terminators","md5":"664996a2203dd9ef5c0ade8f56868c15","sha1":"06186c01c702881b6c931d97121de2b9dd4f3f60","sha256":"beccab3bf55f94c38c11474b2cf160bd1ff9fb145c1eb9d0d74232c8b16d5ab6","sha512":"7a250854f1471e27a5007ce9ef14ce6dff4cd007545561a093400d15794a54fb289130f00b645e21dcafa27a1846186b19d6ffc1ba16b3e31aa3065fd533082d","ssdeep":"6144:a+sqYP0/ytNaP81AhKH+hU1Cd9wKwz2CGXNOdqJZ:aHtQo5bCRwzQ4dqJZ","tlshash":"70d4089cb285b4a607d761f1003f220bb13b6868b40b95d9f27ae4d46e7d94e6127f3c","first_seen":"2024-09-19T20:12:05.640581Z","last_seen":"2026-07-27T14:18:45.067163Z","times_seen":20,"resource_available":true,"data":"KHdpbmRvd1sid2VicGFja0pzb25wIl09d2luZG93WyJ3ZWJwYWNrSnNvbnAiXXx8W10pLnB1c2goW1siY2h1bmstdmVuZG9ycyJdLHsiMDA5NCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpPW4oImRhODQiKSxhPW4oImUzMzAiKSxvPW4oIjY5NjQiKSxzPW4oImYxODMiKSxjPW4oIjZkNjEiKSx1PW4oImFjYWMiKSxsPW4oIjg2MWQiKSxmPW4oIjRmYWQiKSxkPW4oIjY5ZjMiKS5lbmZvcmNlLGg9bigiY2RjZSIpLHA9IWkuQWN0aXZlWE9iamVjdCYmIkFjdGl2ZVhPYmplY3QiaW4gaSx2PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LGc9YygiV2Vha01hcCIsdix1KTtpZihoJiZwKXtyPXUuZ2V0Q29uc3RydWN0b3IodiwiV2Vha01hcCIsITApLHMuZW5hYmxlKCk7dmFyIG09Zy5wcm90b3R5cGUsYj1hKG1bImRlbGV0ZSJdKSx5PWEobS5oYXMpLF89YShtLmdldCksdz1hKG0uc2V0KTtvKG0se2RlbGV0ZTpmdW5jdGlvbih0KXtpZihsKHQpJiYhZih0KSl7dmFyIGU9ZCh0aGlzKTtyZXR1cm4gZS5mcm96ZW58fChlLmZyb3plbj1uZXcgciksYih0aGlzLHQpfHxlLmZyb3plblsiZGVsZXRlIl0odCl9cmV0dXJuIGIodGhpcyx0KX0saGFzOmZ1bmN0aW9uKHQpe2lmKGwodCkmJiFmKHQpKXt2YXIgZT1kKHRoaXMpO3JldHVybiBlLmZyb3plbnx8KGUuZnJvemVuPW5ldyByKSx5KHRoaXMsdCl8fGUuZnJvemVuLmhhcyh0KX1yZXR1cm4geSh0aGlzLHQpfSxnZXQ6ZnVuY3Rpb24odCl7aWYobCh0KSYmIWYodCkpe3ZhciBlPWQodGhpcyk7cmV0dXJuIGUuZnJvemVufHwoZS5mcm96ZW49bmV3IHIpLHkodGhpcyx0KT9fKHRoaXMsdCk6ZS5mcm96ZW4uZ2V0KHQpfXJldHVybiBfKHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LGUpe2lmKGwodCkmJiFmKHQpKXt2YXIgbj1kKHRoaXMpO24uZnJvemVufHwobi5mcm96ZW49bmV3IHIpLHkodGhpcyx0KT93KHRoaXMsdCxlKTpuLmZyb3plbi5zZXQodCxlKX1lbHNlIHcodGhpcyx0LGUpO3JldHVybiB0aGlzfX0pfX0sIjAwYjQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiYWMxZiIpO3ZhciByPW4oIjIzZTciKSxpPW4oImM2NWIiKSxhPW4oIjE2MjYiKSxvPW4oIjgyNWEiKSxzPW4oIjU3N2UiKSxjPWZ1bmN0aW9uKCl7dmFyIHQ9ITEsZT0vW2FjXS87cmV0dXJuIGUuZXhlYz1mdW5jdGlvbigpe3JldHVybiB0PSEwLC8uLy5leGVjLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sITA9PT1lLnRlc3QoImFiYyIpJiZ0fSgpLHU9Ly4vLnRlc3Q7cih7dGFyZ2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDohY30se3Rlc3Q6ZnVuY3Rpb24odCl7dmFyIGU9byh0aGlzKSxuPXModCkscj1lLmV4ZWM7aWYoIWEocikpcmV0dXJuIGkodSxlLG4pO3ZhciBjPWkocixlLG4pO3JldHVybiBudWxsIT09YyYmKG8oYyksITApfX0pfSwiMDBkZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZTk3MSIpLGk9bigiZDI1ZSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjAwZWUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIiksaT1yKCJ0b1N0cmluZ1RhZyIpLGE9e307YVtpXT0ieiIsdC5leHBvcnRzPSJbb2JqZWN0IHpdIj09PVN0cmluZyhhKX0sIjAxMzgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUsbil7cmV0dXJuIHQ+ZS1uJiZ0PGUrbn1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHIodCwwLGUpfWZ1bmN0aW9uIGEodCxlLG4pe3RoaXMuX209dCx0aGlzLl9rPWUsdGhpcy5fYz1uLHRoaXMuX3NvbHV0aW9uPW51bGwsdGhpcy5fZW5kUG9zaXRpb249MCx0aGlzLl9zdGFydFRpbWU9MH1uKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU3ByaW5nPWEsYS5wcm90b3R5cGUuX3NvbHZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5fYyxyPXRoaXMuX20saT10aGlzLl9rLGE9bipuLTQqcippO2lmKDA9PT1hKXt2YXIgbz0tbi8oMipyKSxzPXQsYz1lLyhvKnQpO3JldHVybnt4OmZ1bmN0aW9uKHQpe3JldHVybihzK2MqdCkqTWF0aC5wb3coTWF0aC5FLG8qdCl9LGR4OmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgucG93KE1hdGguRSxvKnQpO3JldHVybiBvKihzK2MqdCkqZStjKmV9fX1pZihhPjApe3ZhciB1PSgtbi1NYXRoLnNxcnQoYSkpLygyKnIpLGw9KC1uK01hdGguc3FydChhKSkvKDIqciksZj0oZS11KnQpLyhsLXUpLGQ9dC1mO3JldHVybnt4OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIHQ9PT10aGlzLl90JiYoZT10aGlzLl9wb3dFUjFULG49dGhpcy5fcG93RVIyVCksdGhpcy5fdD10LGV8fChlPXRoaXMuX3Bvd0VSMVQ9TWF0aC5wb3coTWF0aC5FLHUqdCkpLG58fChuPXRoaXMuX3Bvd0VSMlQ9TWF0aC5wb3coTWF0aC5FLGwqdCkpLGQqZStmKm59LGR4OmZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIHQ9PT10aGlzLl90JiYoZT10aGlzLl9wb3dFUjFULG49dGhpcy5fcG93RVIyVCksdGhpcy5fdD10LGV8fChlPXRoaXMuX3Bvd0VSMVQ9TWF0aC5wb3coTWF0aC5FLHUqdCkpLG58fChuPXRoaXMuX3Bvd0VSMlQ9TWF0aC5wb3coTWF0aC5FLGwqdCkpLGQqdSplK2YqbCpufX19dmFyIGg9TWF0aC5zcXJ0KDQqcippLW4qbikvKDIqcikscD0tbi8yKnIsdj10LGc9KGUtcCp0KS9oO3JldHVybnt4OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyhNYXRoLkUscCp0KSoodipNYXRoLmNvcyhoKnQpK2cqTWF0aC5zaW4oaCp0KSl9LGR4OmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgucG93KE1hdGguRSxwKnQpLG49TWF0aC5jb3MoaCp0KSxyPU1hdGguc2luKGgqdCk7cmV0dXJuIGUqKGcqaCpuLXYqaCpyKStwKmUqKGcqcit2Km4pfX19LGEucHJvdG90eXBlLng9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdGhpcy5fc29sdXRpb24/dGhpcy5fZW5kUG9zaXRpb24rdGhpcy5fc29sdXRpb24ueCh0KTowfSxhLnByb3RvdHlwZS5keD1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9KChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuX3N0YXJ0VGltZSkvMWUzKSx0aGlzLl9zb2x1dGlvbj90aGlzLl9zb2x1dGlvbi5keCh0KTowfSxhLnByb3RvdHlwZS5zZXRFbmQ9ZnVuY3Rpb24odCxlLG4pe2lmKG58fChuPShuZXcgRGF0ZSkuZ2V0VGltZSgpKSx0IT09dGhpcy5fZW5kUG9zaXRpb258fCFpKGUsLjQpKXtlPWV8fDA7dmFyIHI9dGhpcy5fZW5kUG9zaXRpb247dGhpcy5fc29sdXRpb24mJihpKGUsLjQpJiYoZT10aGlzLl9zb2x1dGlvbi5keCgobi10aGlzLl9zdGFydFRpbWUpLzFlMykpLHI9dGhpcy5fc29sdXRpb24ueCgobi10aGlzLl9zdGFydFRpbWUpLzFlMyksaShlLC40KSYmKGU9MCksaShyLC40KSYmKHI9MCkscis9dGhpcy5fZW5kUG9zaXRpb24pLHRoaXMuX3NvbHV0aW9uJiZpKHItdCwuNCkmJmkoZSwuNCl8fCh0aGlzLl9lbmRQb3NpdGlvbj10LHRoaXMuX3NvbHV0aW9uPXRoaXMuX3NvbHZlKHItdGhpcy5fZW5kUG9zaXRpb24sZSksdGhpcy5fc3RhcnRUaW1lPW4pfX0sYS5wcm90b3R5cGUuc25hcD1mdW5jdGlvbih0KXt0aGlzLl9zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCksdGhpcy5fZW5kUG9zaXRpb249dCx0aGlzLl9zb2x1dGlvbj17eDpmdW5jdGlvbigpe3JldHVybiAwfSxkeDpmdW5jdGlvbigpe3JldHVybiAwfX19LGEucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHR8fCh0PShuZXcgRGF0ZSkuZ2V0VGltZSgpKSxyKHRoaXMueCgpLHRoaXMuX2VuZFBvc2l0aW9uLC40KSYmaSh0aGlzLmR4KCksLjQpfSxhLnByb3RvdHlwZS5yZWNvbmZpZ3VyZT1mdW5jdGlvbih0LGUsbil7dGhpcy5fbT10LHRoaXMuX2s9ZSx0aGlzLl9jPW4sdGhpcy5kb25lKCl8fCh0aGlzLl9zb2x1dGlvbj10aGlzLl9zb2x2ZSh0aGlzLngoKS10aGlzLl9lbmRQb3NpdGlvbix0aGlzLmR4KCkpLHRoaXMuX3N0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKSl9LGEucHJvdG90eXBlLnNwcmluZ0NvbnN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2t9LGEucHJvdG90eXBlLmRhbXBpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY30sYS5wcm90b3R5cGUuY29uZmlndXJhdGlvbj1mdW5jdGlvbigpe3JldHVyblt7bGFiZWw6IlNwcmluZyBDb25zdGFudCIscmVhZDp0aGlzLnNwcmluZ0NvbnN0YW50LmJpbmQodGhpcyksd3JpdGU6ZnVuY3Rpb24odCxlKXt0LnJlY29uZmlndXJlKDEsZSx0LmRhbXBpbmcoKSl9LmJpbmQodGhpcyx0aGlzKSxtaW46MTAwLG1heDoxZTN9LHtsYWJlbDoiRGFtcGluZyIscmVhZDp0aGlzLmRhbXBpbmcuYmluZCh0aGlzKSx3cml0ZTpmdW5jdGlvbih0LGUpe3QucmVjb25maWd1cmUoMSx0LnNwcmluZ0NvbnN0YW50KCksZSl9LmJpbmQodGhpcyx0aGlzKSxtaW46MSxtYXg6NTAwfV19fSwiMDE3OSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxvYWRGb250RmFjZT1mdW5jdGlvbihlKXt2YXIgbj1lLm9wdGlvbnMscj1lLmNhbGxiYWNrSWQsaT1uLmZhbWlseSxhPW4uc291cmNlLG89bi5kZXNjLHM9dm9pZCAwPT09bz97fTpvLGM9ZG9jdW1lbnQuZm9udHM7aWYoYyl7dmFyIHU9bmV3IEZvbnRGYWNlKGksYSxzKTt1LmxvYWQoKS50aGVuKChmdW5jdGlvbigpe2MuYWRkKHUpLHQucHVibGlzaEhhbmRsZXIoIm9uTG9hZEZvbnRGYWNlQ2FsbGJhY2siLHtjYWxsYmFja0lkOnIsZGF0YTp7ZXJyTXNnOiJsb2FkRm9udEZhY2U6b2sifX0pfSkpLmNhdGNoKChmdW5jdGlvbihlKXt0LnB1Ymxpc2hIYW5kbGVyKCJvbkxvYWRGb250RmFjZUNhbGxiYWNrIix7Y2FsbGJhY2tJZDpyLGRhdGE6e2Vyck1zZzoibG9hZEZvbnRGYWNlOmZhaWwgIi5jb25jYXQoZSl9fSl9KSl9ZWxzZXt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2wuaW5uZXJUZXh0PSdAZm9udC1mYWNle2ZvbnQtZmFtaWx5OiInLmNvbmNhdChpLCciO3NyYzonKS5jb25jYXQoYSwiO2ZvbnQtc3R5bGU6IikuY29uY2F0KHMuc3R5bGUsIjtmb250LXdlaWdodDoiKS5jb25jYXQocy53ZWlnaHQsIjtmb250LXN0cmV0Y2g6IikuY29uY2F0KHMuc3RyZXRjaCwiO3VuaWNvZGUtcmFuZ2U6IikuY29uY2F0KHMudW5pY29kZVJhbmdlLCI7Zm9udC12YXJpYW50OiIpLmNvbmNhdChzLnZhcmlhbnQsIjtmb250LWZlYXR1cmUtc2V0dGluZ3M6IikuY29uY2F0KHMuZmVhdHVyZVNldHRpbmdzLCI7fSIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobCksdC5wdWJsaXNoSGFuZGxlcigib25Mb2FkRm9udEZhY2VDYWxsYmFjayIse2NhbGxiYWNrSWQ6cixkYXRhOntlcnJNc2c6ImxvYWRGb250RmFjZTpvayJ9fSl9fSxuKCI5OWFmIil9KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sIjAxYjQiOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbH07bi5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt2YXIgZT17aXRlbTp0LG5leHQ6bnVsbH07dGhpcy5oZWFkP3RoaXMudGFpbC5uZXh0PWU6dGhpcy5oZWFkPWUsdGhpcy50YWlsPWV9LGdldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaGVhZDtpZih0KXJldHVybiB0aGlzLmhlYWQ9dC5uZXh0LHRoaXMudGFpbD09PXQmJih0aGlzLnRhaWw9bnVsbCksdC5pdGVtfX0sdC5leHBvcnRzPW59LCIwMjA2IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS51cHgycHg9ZnVuY3Rpb24odCxlKXswPT09aSYmZnVuY3Rpb24oKXt2YXIgdD11bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKSxlPXQucGxhdGZvcm0sbj10LnBpeGVsUmF0aW8sbz10LndpbmRvd1dpZHRoO2k9byxhPW4scj0iaW9zIj09PWV9KCk7aWYodD1OdW1iZXIodCksMD09PXQpcmV0dXJuIDA7dmFyIG49X191bmlDb25maWcuZ2xvYmFsU3R5bGV8fF9fdW5pQ29uZmlnLndpbmRvd3x8e30scz1vKG4ucnB4Q2FsY01heERldmljZVdpZHRoLDk2MCksYz1vKG4ucnB4Q2FsY0Jhc2VEZXZpY2VXaWR0aCwzNzUpLHU9byhuLnJweENhbGNJbmNsdWRlV2lkdGgsNzUwKSxsPWV8fGk7bD10PT09dXx8bDw9cz9sOmM7dmFyIGY9dC83NTAqbDtmPDAmJihmPS1mKTtmPU1hdGguZmxvb3IoZisxZS00KSwwPT09ZiYmKGY9MSE9PWEmJnI/LjU6MSk7cmV0dXJuIHQ8MD8tZjpmfSxuKCJhOWUzIik7dmFyIHI9ITEsaT0wLGE9MDtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQ9TnVtYmVyKHQpLGlzTmFOKHQpP2U6dH19LCIwMjkyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIHI9bigiZGI2YSIpLGk9e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57cHJldmlld0ltYWdlOnt2aXNpYmxlOiExfX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3Qub24oIm9uU2hvd1ByZXZpZXdJbWFnZSIsKGZ1bmN0aW9uKHQsbil7ZS5wcmV2aWV3SW1hZ2U9T2JqZWN0LmFzc2lnbih7fSx0LHt2aXNpYmxlOiEwfSksKDAsci5pc0ZuKShuKSYmZS4kbmV4dFRpY2sobil9KSksdC5vbigib25DbG9zZVByZXZpZXdJbWFnZSIsKGZ1bmN0aW9uKHQpe2UuX29uUHJldmlld0Nsb3NlKCksKDAsci5pc0ZuKSh0KSYmZS4kbmV4dFRpY2sodCl9KSksdC5vbigib25IaWRlUG9wdXAiLChmdW5jdGlvbih0KXtlLnByZXZpZXdJbWFnZS52aXNpYmxlPSExfSkpfSxtZXRob2RzOntfb25QcmV2aWV3Q2xvc2U6ZnVuY3Rpb24odCl7dGhpcy5wcmV2aWV3SW1hZ2UudmlzaWJsZT0hMX19fTtlLmRlZmF1bHQ9aX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMDJkMiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2V0TmF2aWdhdGlvbkJhclRpdGxlPWUuc2V0TmF2aWdhdGlvbkJhckNvbG9yPXZvaWQgMCxuKCJjOTc1Iik7dmFyIHI9WyIjZmZmZmZmIiwiIzAwMDAwMCJdLGk9e2Zyb250Q29sb3I6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe2lmKC0xPT09ci5pbmRleE9mKHQpKXJldHVybidpbnZhbGlkIGZyb250Q29sb3IgIicuY29uY2F0KHQsJyInKX19LGJhY2tncm91bmRDb2xvcjp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGFuaW1hdGlvbjp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybntkdXJhdGlvbjowLHRpbWluZ0Z1bmM6ImxpbmVhciJ9fSx2YWxpZGF0b3I6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtlLmFuaW1hdGlvbj17ZHVyYXRpb246dC5kdXJhdGlvbnx8MCx0aW1pbmdGdW5jOnQudGltaW5nRnVuY3x8ImxpbmVhciJ9fX19O2Uuc2V0TmF2aWdhdGlvbkJhckNvbG9yPWk7dmFyIGE9e3RpdGxlOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19O2Uuc2V0TmF2aWdhdGlvbkJhclRpdGxlPWF9LCIwMzY2IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNDYyNSIpLGk9bigiNTllZCIpLGE9bigiNDBkNSIpLG89cihyLmJpbmQpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBpKHQpLHZvaWQgMD09PWU/dDphP28odCxlKTpmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19fSwiMDRkMSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjM0MmYiKSxpPXIubWF0Y2goL2ZpcmVmb3hcLyhcZCspL2kpO3QuZXhwb3J0cz0hIWkmJitpWzFdfSwiMDRmOCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjJkMDAiKSxpPW4oImQwMzkiKTt0LmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhaSgoZnVuY3Rpb24oKXt2YXIgdD1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKHQpfHwhKE9iamVjdCh0KWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZyJiZyPDQxfSkpfSwiMDU3ZiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImM2YjYiKSxpPW4oImZjNmEiKSxhPW4oIjI0MWMiKS5mLG89bigiNGRhZSIpLHM9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gcyYmIldpbmRvdyI9PXIodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBhKHQpfWNhdGNoKGUpe3JldHVybiBvKHMpfX0odCk6YShpKHQpKX19LCIwNmI5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LGUscil7dmFyIGk9bigiNGVhNCIpLmRlZmF1bHQ7bigiZDNiNyIpLG4oIjdhODIiKTt2YXIgYT1pKG4oImQ0ZWMiKSksbz1pKG4oImJlZTIiKSkscz1pKG4oImUxNDMiKSksYz1pKG4oIjMxMTciKSksdT1mdW5jdGlvbigpe2Z1bmN0aW9uIGkoKXsoMCxhLmRlZmF1bHQpKHRoaXMsaSksdGhpcy5faW5pdCgpfXJldHVybigwLG8uZGVmYXVsdCkoaSxbe2tleToiX2luaXQiLHZhbHVlOmZ1bmN0aW9uKCl7ZS5VbmlWaWV3SlNCcmlkZ2U9e3N1YnNjcmliZTp0LnN1YnNjcmliZSxwdWJsaXNoSGFuZGxlcjp0LnB1Ymxpc2hIYW5kbGVyLHN1YnNjcmliZUhhbmRsZXI6dC5zdWJzY3JpYmVIYW5kbGVyfSxlLlVuaVNlcnZpY2VKU0JyaWRnZT17c3Vic2NyaWJlOnIuc3Vic2NyaWJlLHB1Ymxpc2hIYW5kbGVyOnIucHVibGlzaEhhbmRsZXIsc3Vic2NyaWJlSGFuZGxlcjpyLnN1YnNjcmliZUhhbmRsZXJ9O3ZhciBpPW4oIjM1ZDAiKSxhPWkuZGVmYXVsdCxvPWkuZ2V0QXBwLHU9aS5nZXRDdXJyZW50UGFnZXM7WyJjaG9vc2VJbWFnZSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHQse3dyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMX0pfSkpLGUudW5pPWEsZS53eD1lLnVuaSxlLmdldEFwcD1vLGUuZ2V0Q3VycmVudFBhZ2VzPXUscy5kZWZhdWx0LnVzZShuKCJkNjZkIikuZGVmYXVsdCx7cm91dGVzOl9fdW5pUm91dGVzfSkscy5kZWZhdWx0LnVzZShuKCI3YWJiIikuZGVmYXVsdCx7cm91dGVzOl9fdW5pUm91dGVzfSksKDAsYy5kZWZhdWx0KShzLmRlZmF1bHQpLG4oImQ2NmEiKSxuKCJjMWRkIil9fV0pLGl9KCk7ZS5VbmlBcHA9dSxlLl9fdW5pQ29uZmlnJiZuZXcgdX0pLmNhbGwodGhpcyxuKCJjNWMzIiksbigiYzhiYSIpLG4oImE5YWEiKSl9LCIwNmM1IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuO2lmKCJzdHJpbmciPT09dHlwZW9mIHQpcmV0dXJuKDAsci5kZWZhdWx0KSh0LGUpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20odCk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4oMCxyLmRlZmF1bHQpKHQsZSl9LG4oImZiNmEiKSxuKCJkM2I3IiksbigiYTYzMCIpLG4oIjNjYTMiKSxuKCJhYzFmIiksbigiMDBiNCIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigiNmI3NSIpKX0sIjA2Y2YiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4M2FiIiksaT1uKCJjNjViIiksYT1uKCJkMWU3Iiksbz1uKCI1YzZjIikscz1uKCJmYzZhIiksYz1uKCJhMDRiIiksdT1uKCIxYTJkIiksbD1uKCIwY2ZiIiksZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1yP2Y6ZnVuY3Rpb24odCxlKXtpZih0PXModCksZT1jKGUpLGwpdHJ5e3JldHVybiBmKHQsZSl9Y2F0Y2gobil7fWlmKHUodCxlKSlyZXR1cm4gbyghaShhLmYsdCxlKSx0W2VdKX19LCIwNzM1IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zaG93VG9hc3Q9ZS5zaG93TW9kYWw9ZS5zaG93TG9hZGluZz1lLnNob3dBY3Rpb25TaGVldD12b2lkIDAsbigiYzk3NSIpLG4oImE5ZTMiKTt2YXIgaT1uKCI4MWU4IiksYT1yKG4oImYxY2EiKSksbz17dGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGNvbnRlbnQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHNob3dDYW5jZWw6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxjYW5jZWxUZXh0Ont0eXBlOlN0cmluZyxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuKDAsaS50KSgidW5pLnNob3dNb2RhbC5jYW5jZWwiKX19LGNhbmNlbENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjMDAwIn0sY29uZmlybVRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLnQpKCJ1bmkuc2hvd01vZGFsLmNvbmZpcm0iKX19LGNvbmZpcm1Db2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIzAwN2FmZiJ9LHZpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX07ZS5zaG93TW9kYWw9bzt2YXIgcz17dGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGljb246e2RlZmF1bHQ6InN1Y2Nlc3MiLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpey0xPT09WyJzdWNjZXNzIiwibG9hZGluZyIsImVycm9yIiwibm9uZSJdLmluZGV4T2YodCkmJihlLmljb249InN1Y2Nlc3MiKX19LGltYWdlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIiLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe3QmJihlLmltYWdlPSgwLGEuZGVmYXVsdCkodCkpfX0sZHVyYXRpb246e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MTUwMH0sbWFzazp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHZpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX07ZS5zaG93VG9hc3Q9czt2YXIgYz17dGl0bGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGljb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImxvYWRpbmcifSxkdXJhdGlvbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxZTh9LG1hc2s6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSx2aXNpYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19O2Uuc2hvd0xvYWRpbmc9Yzt2YXIgdT17aXRlbUxpc3Q6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7aWYoIXQubGVuZ3RoKXJldHVybiJwYXJhbWV0ZXIuaXRlbUxpc3Qgc2hvdWxkIGhhdmUgYXQgbGVhc3QgMSBpdGVtIn19LGl0ZW1Db2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIzAwMCJ9LHZpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxwb3BvdmVyOnt0eXBlOk9iamVjdH19O2Uuc2hvd0FjdGlvblNoZWV0PXV9LCIwN2E2IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlU2Nyb2xsTGlzdGVuZXI9ZnVuY3Rpb24oZSxuKXt2YXIgbz1uLmVuYWJsZVBhZ2VTY3JvbGwscz1uLmVuYWJsZVBhZ2VSZWFjaEJvdHRvbSxjPW4ub25SZWFjaEJvdHRvbURpc3RhbmNlLHU9bi5lbmFibGVUcmFuc3BhcmVudFRpdGxlTlZpZXcsbD0hMSxmPSExLGQ9ITA7ZnVuY3Rpb24gaCgpe3ZhciBuPWdldEN1cnJlbnRQYWdlcygpO2lmKG4ubGVuZ3RoJiZuW24ubGVuZ3RoLTFdLiRwYWdlLmlkPT09ZSl7dmFyIGg9d2luZG93LnBhZ2VZT2Zmc2V0O28mJigwLGkucHVibGlzaEhhbmRsZXIpKCJvblBhZ2VTY3JvbGwiLHtzY3JvbGxUb3A6aH0sZSksdSYmdC5lbWl0KCJvblBhZ2VTY3JvbGwiLHtzY3JvbGxUb3A6aH0pLHMmJmQmJihwKCl8fChyPXNldFRpbWVvdXQocCwzMDApKSksbD0hMX1mdW5jdGlvbiBwKCl7aWYoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0LGU9d2luZG93LmlubmVySGVpZ2h0LG49d2luZG93LnNjcm9sbFkscj1uPjAmJnQ+ZSYmbitlK2M+PXQsaT1NYXRoLmFicyh0LWEpPmM7cmV0dXJuIXJ8fGYmJiFpPyghciYmZiYmKGY9ITEpLCExKTooYT10LGY9ITAsITApfSgpKXJldHVybigwLGkucHVibGlzaEhhbmRsZXIpKCJvblJlYWNoQm90dG9tIix7fSxlKSxkPSExLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZD0hMH0pLDM1MCksITB9fXJldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKSxsfHxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaCksbD0hMH19LGUuZGlzYWJsZVNjcm9sbD1mdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9LGUucGFnZVNjcm9sbFRvPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2Nyb2xsVG9wLG49dC5zZWxlY3RvcixyPXQuZHVyYXRpb247aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgZSl7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihuKTtpZihpKXt2YXIgYT1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89YS50b3Ascz1hLmhlaWdodDtlPW8rd2luZG93LnBhZ2VZT2Zmc2V0LGUtPXN9fXZhciBjPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx1PWMuY2xpZW50SGVpZ2h0LGw9Yy5zY3JvbGxIZWlnaHQ7aWYoZT1NYXRoLm1pbihlLGwtdSksMD09PXIpcmV0dXJuIHZvaWQoYy5zY3JvbGxUb3A9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9ZSk7aWYod2luZG93LnNjcm9sbFk9PT1lKXJldHVybjsoZnVuY3Rpb24gdChuKXtpZihuPD0wKXdpbmRvdy5zY3JvbGxUbygwLGUpO2Vsc2V7dmFyIHI9ZS13aW5kb3cuc2Nyb2xsWTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7d2luZG93LnNjcm9sbFRvKDAsd2luZG93LnNjcm9sbFkrci9uKjEwKSx0KG4tMTApfSkpfX0pKHIpfTt2YXIgcixpPW4oImI2NWUiKTt2YXIgYT0wfSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LCIwN2FjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiNmY1MyIpLnZhbHVlcztyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMH0se3ZhbHVlczpmdW5jdGlvbih0KXtyZXR1cm4gaSh0KX19KX0sIjA3ZmEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1MGM0Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiByKHQubGVuZ3RoKX19LCIwODNhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjBkNTEiKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighZGVsZXRlIHRbZV0pdGhyb3cgaSgiQ2Fubm90IGRlbGV0ZSBwcm9wZXJ0eSAiK3IoZSkrIiBvZiAiK3IodCkpfX0sIjA4YzUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5lbGVtZW50TWF0Y2hlc1BvbHlmaWxsPWZ1bmN0aW9uKHQpe3QubWF0Y2hlc3x8KHQubWF0Y2hlcz10Lm1hdGNoZXNTZWxlY3Rvcnx8dC5tb3pNYXRjaGVzU2VsZWN0b3J8fHQubXNNYXRjaGVzU2VsZWN0b3J8fHQub01hdGNoZXNTZWxlY3Rvcnx8dC53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGZ1bmN0aW9uKHQpe3ZhciBlPSh0aGlzLmRvY3VtZW50fHx0aGlzLm93bmVyRG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwodCksbj1lLmxlbmd0aDt3aGlsZSgtLW4+PTAmJmUuaXRlbShuKSE9PXRoaXMpO3JldHVybiBuPi0xfSk7cmV0dXJuIHR9LGUuZmluZEVsbT1mdW5jdGlvbihlLG4pe2lmKCFuKXJldHVybiB0LmVycm9yKCJwYWdlIGlzIG5vdCByZWFkeSIpO2lmKCFlKXJldHVybiBuLiRlbDswO3JldHVybiBlLiRlbH0sbigiZDllMiIpLG4oImQ0MDEiKSxuKCI5OWFmIil9KS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiMDkxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS1yZXNpemUtc2Vuc29yIix7b246eyJ+YW5pbWF0aW9uc3RhcnQiOmZ1bmN0aW9uKGUpe3JldHVybiB0LnVwZGF0ZShlKX19fSxbbigiZGl2Iix7b246e3Njcm9sbDp0LnVwZGF0ZX19LFtuKCJkaXYiKV0pLG4oImRpdiIse29uOntzY3JvbGw6dC51cGRhdGV9fSxbbigiZGl2IildKV0pfSxpPVtdfSwiMDk0ZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNmNiZCIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjA5YjAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoInVuaS13ZWItdmlldyIsdGhpcy5fZyh7cmVmOiJ3ZWJ2aWV3Q29udGFpbmVyIixjbGFzczp7InVuaS13ZWJ2aWV3LS1mdWxsc2NyZWVuIjp0aGlzLmZ1bGxzY3JlZW59fSx0aGlzLiRsaXN0ZW5lcnMpLFtlKCJ2LXVuaS1yZXNpemUtc2Vuc29yIix7cmVmOiJzZW5zb3IiLG9uOntyZXNpemU6dGhpcy5fcmVzaXplfX0pXSwxKX0saT1bXX0sIjA5ZjAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLGksYSxvLHM9W10sYz0hMCx1PSExO3RyeXtpZihhPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWEuY2FsbChuKSkuZG9uZSkmJihzLnB1c2goci52YWx1ZSkscy5sZW5ndGghPT1lKTtjPSEwKTt9Y2F0Y2gobCl7dT0hMCxpPWx9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW5bInJldHVybiJdJiYobz1uWyJyZXR1cm4iXSgpLE9iamVjdChvKSE9PW8pKXJldHVybn1maW5hbGx5e2lmKHUpdGhyb3cgaX19cmV0dXJuIHN9fSxuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKSxuKCIxNGQ5Iil9LCIwYTcxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYzk3NSIpLG4oImNhYWQiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImM3NDAiKSxuKCI0ZGU0IiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCJhNDM0Iik7dmFyIGk9cihuKCJmMWNhIikpLGE9bigiZGI2YSIpLG89bigiOWE4OSIpLHM9bigiMDE3OSIpO3ZhciBjPXtuYW1lOiJUYWJCYXIiLHByb3BzOntwb3NpdGlvbjp7ZGVmYXVsdDoiYm90dG9tIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1bImJvdHRvbSIsInRvcCJdLmluZGV4T2YodCl9fSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIzk5OSJ9LHNlbGVjdGVkQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiMwMDdhZmYifSxiYWNrZ3JvdW5kQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGJvcmRlclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJibGFjayJ9LGljb25mb250U3JjOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxsaXN0Ont0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LG1hdGNoTWVkaWE6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LGJsdXJFZmZlY3Q6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Im5vbmUifSxmb250U2l6ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiMTBweCJ9LGljb25XaWR0aDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiMjRweCJ9LHNwYWNpbmc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IjNweCJ9LGhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiNTBweCJ9LG1pZEJ1dHRvbjp7dHlwZTpPYmplY3QsZGVmYXVsdDpudWxsfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzZWxlY3RlZEluZGV4OjAsdmlzaWJsZUxpc3Q6W10saW50ZXJuYWxNaWRCdXR0b246e319fSxjb21wdXRlZDp7dGFiYmFyQmFja2dyb3VuZENvbG9yOmZ1bmN0aW9uKCl7aWYodGhpcy5iYWNrZ3JvdW5kQ29sb3IpcmV0dXJuIHRoaXMuYmFja2dyb3VuZENvbG9yO2lmKGZ1bmN0aW9uKHQpe3JldHVybiB3aW5kb3cuQ1NTJiZDU1Muc3VwcG9ydHMmJihDU1Muc3VwcG9ydHModCl8fENTUy5zdXBwb3J0cy5hcHBseShDU1MsdC5zcGxpdCgiOiIpKSl9KCJiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KSIpJiYibm9uZSIhPT10aGlzLmJsdXJFZmZlY3Qpe2lmKCJkYXJrIj09PXRoaXMuYmx1ckVmZmVjdClyZXR1cm4icmdiKDAsIDAsIDAsIDAuOCkiO2lmKFsibGlnaHQiLCJleHRyYWxpZ2h0Il0uaW5jbHVkZXModGhpcy5ibHVyRWZmZWN0KSlyZXR1cm4icmdiKDI1MCwgMjUwLCAyNTAsIDAuOCkifXJldHVybiIjZjdmN2ZhIn0sYm9yZGVyQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4id2hpdGUiPT09dGhpcy5ib3JkZXJTdHlsZT8icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMzKSI6ImJsYWNrIj09PXRoaXMuYm9yZGVyU3R5bGU/InJnYmEoMCwgMCwgMCwgMC4zMykiOnRoaXMuYm9yZGVyU3R5bGV9fSx3YXRjaDp7JHJvdXRlOntpbW1lZGlhdGU6ITAsaGFuZGxlcjpmdW5jdGlvbigpe3RoaXMudmlzaWJsZUxpc3QubGVuZ3RofHx0aGlzLl9pbml0VmlzaWJsZUxpc3QoKSx0aGlzLnNldFNlbGVjdGVkSW5kZXgoKX19LGxpc3Q6e2RlZXA6ITAsaGFuZGxlcjpmdW5jdGlvbigpe3RoaXMuX2luaXRWaXNpYmxlTGlzdCgpLHRoaXMuc2V0U2VsZWN0ZWRJbmRleCgpfX0sbWlkQnV0dG9uOmZ1bmN0aW9uKHQpe3RoaXMuX2luaXRWaXNpYmxlTGlzdCgpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5saXN0LmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUudmlzaWJsZSYmdC4kc2V0KGUsInZpc2libGUiLCEwKX0pKSx0aGlzLmljb25mb250U3JjJiYoMCxzLmxvYWRGb250RmFjZSkoe29wdGlvbnM6e2ZhbWlseToiVW5pVGFiYmFySWNvbkZvbnQiLHNvdXJjZTondXJsKCInLmNvbmNhdCh0aGlzLmljb25mb250U3JjLCciKScpfX0pfSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fcGF0aF9fPXRoaXMuJHJvdXRlLnBhdGh9LG1ldGhvZHM6e2dldEljb25QYXRoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRJbmRleD09PWUmJnQuc2VsZWN0ZWRJY29uUGF0aHx8dC5pY29uUGF0aHx8IiJ9LHNldFNlbGVjdGVkSW5kZXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMuJHJvdXRlLm1ldGEuaXNUYWJCYXIpe3RoaXMuX19wYXRoX189dGhpcy4kcm91dGUucGF0aDt2YXIgZT10aGlzLnZpc2libGVMaXN0LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuJHJvdXRlLm1ldGEucGFnZVBhdGg9PT1lLnBhZ2VQYXRofSkpO3RoaXMuc2VsZWN0ZWRJbmRleD1lfX0sX2luaXRWaXNpYmxlTGlzdDpmdW5jdGlvbigpe3RoaXMudmlzaWJsZUxpc3Q9dGhpcy5faW5pdE1pZEJ1dHRvbih0aGlzLmxpc3QuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hMSE9PXQudmlzaWJsZX0pKSl9LF9nZXRSZWFsUGF0aDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPS9eKFthLXotXSs6KT9cL1wvL2ksbj0vXmRhdGE6LiosLiovO3JldHVybiBlLnRlc3QodCl8fG4udGVzdCh0KXx8MD09PXQuaW5kZXhPZigiLyIpfHwodD0iLyIrdCksKDAsaS5kZWZhdWx0KSh0KX0sX3N3aXRjaFRhYjpmdW5jdGlvbihlLG4pe3ZhciByPWUudGV4dCxpPWUucGFnZVBhdGgsYT1lLmlzTWlkQnV0dG9uLHM9dm9pZCAwIT09YSYmYTtpZihzKSgwLG8ucHVibGlzaCkoIm9uVGFiQmFyTWlkQnV0dG9uVGFwIik7ZWxzZXt0aGlzLnNlbGVjdGVkSW5kZXg9bjt2YXIgYz0iLyIraTtjPT09X191bmlSb3V0ZXNbMF0uYWxpYXMmJihjPSIvIik7dmFyIHU9e2luZGV4Om4sdGV4dDpyLHBhZ2VQYXRoOml9O3RoaXMuJHJvdXRlLnBhdGghPT1jPyh0aGlzLl9fcGF0aF9fPXRoaXMuJHJvdXRlLnBhdGgsdW5pLnN3aXRjaFRhYih7ZnJvbToidGFiQmFyIix1cmw6YyxkZXRhaWw6dX0pKTp0LmVtaXQoIm9uVGFiSXRlbVRhcCIsdSl9fSxfaW5pdE1pZEJ1dHRvbjpmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gZSUyPT09MCYmKDAsYS5pc1BsYWluT2JqZWN0KSh0aGlzLm1pZEJ1dHRvbikmJih0aGlzLmludGVybmFsTWlkQnV0dG9uPU9iamVjdC5hc3NpZ24oe3dpZHRoOiI1MHB4IixoZWlnaHQ6IjUwcHgiLGljb25XaWR0aDoiMjRweCJ9LHRoaXMuaW50ZXJuYWxNaWRCdXR0b24sdGhpcy5taWRCdXR0b24pLHQuc3BsaWNlKH5+KGUvMiksMCxPYmplY3QuYXNzaWduKHt9LHRoaXMuaW50ZXJuYWxNaWRCdXR0b24se2lzTWlkQnV0dG9uOiEwfSkpKSx0fSxfdW5pVGFiYmFyQmRTdHlsZTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx7d2lkdGg6dC53aWR0aCxoZWlnaHQ6dC5oZWlnaHQsYmFja2dyb3VuZEltYWdlOnQuYmFja2dyb3VuZEltYWdlPyJ1cmwoJyIrdGhpcy5fZ2V0UmVhbFBhdGgodC5iYWNrZ3JvdW5kSW1hZ2UpKyInKSI6IiJ9KX19fTtlLmRlZmF1bHQ9Y30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMGE3NSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCJhOWUzIik7dmFyIGk9cihuKCI1ODk3IikpLGE9e25hbWU6IlRvYXN0IixtaXhpbnM6W2kuZGVmYXVsdF0scHJvcHM6e3RpdGxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxpY29uOntkZWZhdWx0OiJzdWNjZXNzIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1bInN1Y2Nlc3MiLCJsb2FkaW5nIiwiZXJyb3IiLCJub25lIl0uaW5kZXhPZih0KX19LGltYWdlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxkdXJhdGlvbjp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxNTAwfSxtYXNrOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdmlzaWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxjb21wdXRlZDp7aWNvbkNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuInN1Y2Nlc3MiPT09dGhpcy5pY29uPyJ1bmktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZSI6ImxvYWRpbmciPT09dGhpcy5pY29uPyJ1bmktbG9hZGluZyI6ImVycm9yIj09PXRoaXMuaWNvbj8idW5pLWljb24tZXJyb3IiOiIifX0sYmVmb3JlVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy52aXNpYmxlJiYodGhpcy50aW1lb3V0SWQmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCksdGhpcy50aW1lb3V0SWQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmVtaXQoIm9uSGlkZVRvYXN0Iil9KSx0aGlzLmR1cmF0aW9uKSl9fTtlLmRlZmF1bHQ9YX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMGE4NyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiN2UzNiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjBiMjUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1OTI2IiksaT1uKCI1MGM0IiksYT1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXJldHVybiAwO3ZhciBlPXIodCksbj1pKGUpO2lmKGUhPT1uKXRocm93IGEoIldyb25nIGxlbmd0aCBvciBpbmRleCIpO3JldHVybiBufX0sIjBiNDIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlOGI1IiksaT1uKCI2OGVlIiksYT1uKCI4NjFkIiksbz1uKCJiNjIyIikscz1vKCJzcGVjaWVzIiksYz1BcnJheTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHIodCkmJihlPXQuY29uc3RydWN0b3IsaShlKSYmKGU9PT1jfHxyKGUucHJvdG90eXBlKSk/ZT12b2lkIDA6YShlKSYmKGU9ZVtzXSxudWxsPT09ZSYmKGU9dm9pZCAwKSkpLHZvaWQgMD09PWU/YzplfX0sIjBiNDMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwNGY4Iik7dC5leHBvcnRzPXImJiEhU3ltYm9sWyJmb3IiXSYmISFTeW1ib2wua2V5Rm9yfSwiMGM0NyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oImQ0NGUiKTtpKHIuSlNPTiwiSlNPTiIsITApfSwiMGNiMiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPW4oIjdiMGIiKSxhPU1hdGguZmxvb3Isbz1yKCIiLmNoYXJBdCkscz1yKCIiLnJlcGxhY2UpLGM9cigiIi5zbGljZSksdT0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxsPS9cJChbJCYnYF18XGR7MSwyfSkvZzt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4scixmLGQpe3ZhciBoPW4rdC5sZW5ndGgscD1yLmxlbmd0aCx2PWw7cmV0dXJuIHZvaWQgMCE9PWYmJihmPWkoZiksdj11KSxzKGQsdiwoZnVuY3Rpb24oaSxzKXt2YXIgdTtzd2l0Y2gobyhzLDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiB0O2Nhc2UiYCI6cmV0dXJuIGMoZSwwLG4pO2Nhc2UiJyI6cmV0dXJuIGMoZSxoKTtjYXNlIjwiOnU9ZltjKHMsMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGw9K3M7aWYoMD09PWwpcmV0dXJuIGk7aWYobD5wKXt2YXIgZD1hKGwvMTApO3JldHVybiAwPT09ZD9pOmQ8PXA/dm9pZCAwPT09cltkLTFdP28ocywxKTpyW2QtMV0rbyhzLDEpOml9dT1yW2wtMV19cmV0dXJuIHZvaWQgMD09PXU/IiI6dX0pKX19LCIwY2NiIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9bigiNTBjNCIpLGE9bigiNTc3ZSIpLG89bigiMTE0OCIpLHM9bigiMWQ4MCIpLGM9cihvKSx1PXIoIiIuc2xpY2UpLGw9TWF0aC5jZWlsLGY9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXt2YXIgbyxmLGQ9YShzKGUpKSxoPWkobikscD1kLmxlbmd0aCx2PXZvaWQgMD09PXI/IiAiOmEocik7cmV0dXJuIGg8PXB8fCIiPT12P2Q6KG89aC1wLGY9Yyh2LGwoby92Lmxlbmd0aCkpLGYubGVuZ3RoPm8mJihmPXUoZiwwLG8pKSx0P2QrZjpmK2QpfX07dC5leHBvcnRzPXtzdGFydDpmKCExKSxlbmQ6ZighMCl9fSwiMGNmYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjgzYWIiKSxpPW4oImQwMzkiKSxhPW4oImNjMTIiKTt0LmV4cG9ydHM9IXImJiFpKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoYSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpfSwiMGQwNCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCIyOTA5IikpO24oIjRkZTQiKSxuKCJkM2I3IiksbigiYzc0MCIpLG4oIjE1OWIiKSxuKCJkODFkIiksbigiYzk3NSIpLG4oIjE0ZDkiKTt2YXIgYT1uKCJkYjZhIiksbz17bmFtZToiUGlja2VyVmlldyIscHJvcHM6e3ZhbHVlOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX0sdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgdH0pKS5sZW5ndGg9PT10Lmxlbmd0aH19LGluZGljYXRvclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxpbmRpY2F0b3JDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sbWFza1N0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxtYXNrQ2xhc3M6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3ZhbHVlU3luYzooMCxpLmRlZmF1bHQpKHRoaXMudmFsdWUpLGhlaWdodDozNCxpdGVtczpbXSxjaGFuZ2VTb3VyY2U6IiJ9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3RoaXMudmFsdWVTeW5jLmxlbmd0aD10Lmxlbmd0aCx0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dCE9PW4udmFsdWVTeW5jW2VdJiZuLiRzZXQobi52YWx1ZVN5bmMsZSx0KX0pKX0sdmFsdWVTeW5jOntkZWVwOiEwLGhhbmRsZXI6ZnVuY3Rpb24odCxlKXtpZigiIj09PXRoaXMuY2hhbmdlU291cmNlKXRoaXMuX3ZhbHVlQ2hhbmdlZCh0KTtlbHNle3RoaXMuY2hhbmdlU291cmNlPSIiO3ZhciBuPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKTt0aGlzLiRlbWl0KCJ1cGRhdGU6dmFsdWUiLG4pLHRoaXMuJHRyaWdnZXIoImNoYW5nZSIse30se3ZhbHVlOm59KX19fX0sbWV0aG9kczp7Z2V0SXRlbUluZGV4OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLml0ZW1zLmluZGV4T2YodCl9LGdldEl0ZW1WYWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52YWx1ZVN5bmNbdGhpcy5nZXRJdGVtSW5kZXgodC4kdm5vZGUpXXx8MH0sc2V0SXRlbVZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5nZXRJdGVtSW5kZXgodC4kdm5vZGUpLHI9dGhpcy52YWx1ZVN5bmNbbl07ciE9PWUmJih0aGlzLmNoYW5nZVNvdXJjZT0idG91Y2giLHRoaXMuJHNldCh0aGlzLnZhbHVlU3luYyxuLGUpKX0sX3ZhbHVlQ2hhbmdlZDpmdW5jdGlvbih0KXt0aGlzLml0ZW1zLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7ZS5jb21wb25lbnRJbnN0YW5jZS5zZXRDdXJyZW50KHRbbl18fDApfSkpfSxfcmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuaGVpZ2h0PWV9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHRoaXMuJHNsb3RzLmRlZmF1bHQmJigwLGEuZGVlcENsb25lKSh0aGlzLiRzbG90cy5kZWZhdWx0LHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29tcG9uZW50T3B0aW9ucyYmInYtdW5pLXBpY2tlci12aWV3LWNvbHVtbiI9PT10LmNvbXBvbmVudE9wdGlvbnMudGFnJiZlLnB1c2godCl9KSksdGhpcy5pdGVtcz1lLHQoInVuaS1waWNrZXItdmlldyIse29uOnRoaXMuJGxpc3RlbmVyc30sW3QoInYtdW5pLXJlc2l6ZS1zZW5zb3IiLHthdHRyczp7aW5pdGlhbDohMH0sb246e3Jlc2l6ZTp0aGlzLl9yZXNpemV9fSksdCgiZGl2Iix7cmVmOiJ3cmFwcGVyIixjbGFzczoidW5pLXBpY2tlci12aWV3LXdyYXBwZXIifSxlKV0pfX07ZS5kZWZhdWx0PW99LCIwZDIxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9fSwiMGQyNiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPUVycm9yLGE9cigiIi5yZXBsYWNlKSxvPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoaSgienhjYXNkIikuc3RhY2spfSgpLHM9L1xuXHMqYXQgW146XSo6W15cbl0qLyxjPXMudGVzdChvKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihjJiYic3RyaW5nIj09dHlwZW9mIHQmJiFpLnByZXBhcmVTdGFja1RyYWNlKXdoaWxlKGUtLSl0PWEodCxzLCIiKTtyZXR1cm4gdH19LCIwZDUxIjpmdW5jdGlvbih0LGUpe3ZhciBuPVN0cmluZzt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBuKHQpfWNhdGNoKGUpe3JldHVybiJPYmplY3QifX19LCIwZWI2IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjdjMzciKSxhPW4oImQwNjYiKSxvPW4oImQwMzkiKSxzPW4oIjdjNzMiKSxjPW4oIjVjNmMiKSx1PW4oIjliZjIiKS5mLGw9bigiY2IyZCIpLGY9bigiZWRkMCIpLGQ9bigiMWEyZCIpLGg9bigiMTlhYSIpLHA9bigiODI1YSIpLHY9bigiYWExZiIpLGc9bigiZTM5MSIpLG09bigiY2Y5OCIpLGI9bigiMGQyNiIpLHk9bigiNjlmMyIpLF89bigiODNhYiIpLHc9bigiYzQzMCIpLHg9YSgiRXJyb3IiKSxTPWEoIkRPTUV4Y2VwdGlvbiIpfHxmdW5jdGlvbigpe3RyeXt2YXIgdD1hKCJNZXNzYWdlQ2hhbm5lbCIpfHxpKCJ3b3JrZXJfdGhyZWFkcyIpLk1lc3NhZ2VDaGFubmVsOyhuZXcgdCkucG9ydDEucG9zdE1lc3NhZ2UobmV3IFdlYWtNYXApfWNhdGNoKGUpe2lmKCJEQVRBX0NMT05FX0VSUiI9PWUubmFtZSYmMjU9PWUuY29kZSlyZXR1cm4gZS5jb25zdHJ1Y3Rvcn19KCksVD1TJiZTLnByb3RvdHlwZSxDPXgucHJvdG90eXBlLGs9eS5zZXQsTz15LmdldHRlckZvcigiRE9NRXhjZXB0aW9uIiksRT0ic3RhY2siaW4geCgiRE9NRXhjZXB0aW9uIiksST1mdW5jdGlvbih0KXtyZXR1cm4gZChtLHQpJiZtW3RdLm0/bVt0XS5jOjB9LFA9ZnVuY3Rpb24oKXtoKHRoaXMsTSk7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPWcodDwxP3ZvaWQgMDphcmd1bWVudHNbMF0pLG49Zyh0PDI/dm9pZCAwOmFyZ3VtZW50c1sxXSwiRXJyb3IiKSxyPUkobik7aWYoayh0aGlzLHt0eXBlOiJET01FeGNlcHRpb24iLG5hbWU6bixtZXNzYWdlOmUsY29kZTpyfSksX3x8KHRoaXMubmFtZT1uLHRoaXMubWVzc2FnZT1lLHRoaXMuY29kZT1yKSxFKXt2YXIgaT14KGUpO2kubmFtZT0iRE9NRXhjZXB0aW9uIix1KHRoaXMsInN0YWNrIixjKDEsYihpLnN0YWNrLDEpKSl9fSxNPVAucHJvdG90eXBlPXMoQyksQT1mdW5jdGlvbih0KXtyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OnR9fSwkPWZ1bmN0aW9uKHQpe3JldHVybiBBKChmdW5jdGlvbigpe3JldHVybiBPKHRoaXMpW3RdfSkpfTtfJiYoZihNLCJjb2RlIiwkKCJjb2RlIikpLGYoTSwibWVzc2FnZSIsJCgibWVzc2FnZSIpKSxmKE0sIm5hbWUiLCQoIm5hbWUiKSkpLHUoTSwiY29uc3RydWN0b3IiLGMoMSxQKSk7dmFyIEw9bygoZnVuY3Rpb24oKXtyZXR1cm4hKG5ldyBTIGluc3RhbmNlb2YgeCl9KSksaj1MfHxvKChmdW5jdGlvbigpe3JldHVybiBDLnRvU3RyaW5nIT09dnx8IjI6IDEiIT09U3RyaW5nKG5ldyBTKDEsMikpfSkpLFI9THx8bygoZnVuY3Rpb24oKXtyZXR1cm4gMjUhPT1uZXcgUygxLCJEYXRhQ2xvbmVFcnJvciIpLmNvZGV9KSksTj1MfHwyNSE9PVNbIkRBVEFfQ0xPTkVfRVJSIl18fDI1IT09VFsiREFUQV9DTE9ORV9FUlIiXSxCPXc/anx8Unx8TjpMO3Ioe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6Qn0se0RPTUV4Y2VwdGlvbjpCP1A6U30pO3ZhciBEPWEoIkRPTUV4Y2VwdGlvbiIpLEY9RC5wcm90b3R5cGU7Zm9yKHZhciBXIGluIGomJih3fHxTPT09RCkmJmwoRiwidG9TdHJpbmciLHYpLFImJl8mJlM9PT1EJiZmKEYsImNvZGUiLEEoKGZ1bmN0aW9uKCl7cmV0dXJuIEkocCh0aGlzKS5uYW1lKX0pKSksbSlpZihkKG0sVykpe3ZhciBIPW1bV10sVj1ILnMsVT1jKDYsSC5jKTtkKEQsVil8fHUoRCxWLFUpLGQoRixWKXx8dShGLFYsVSl9fSwiMGViYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc2V0U3RvcmFnZVN5bmM9ZS5zZXRTdG9yYWdlPWUucmVtb3ZlU3RvcmFnZVN5bmM9ZS5yZW1vdmVTdG9yYWdlPWUuZ2V0U3RvcmFnZVN5bmM9ZS5nZXRTdG9yYWdlPXZvaWQgMDt2YXIgcj17a2V5Ont0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19O2UuZ2V0U3RvcmFnZT1yO3ZhciBpPVt7bmFtZToia2V5Iix0eXBlOlN0cmluZyxyZXF1aXJlZDohMH1dO2UuZ2V0U3RvcmFnZVN5bmM9aTt2YXIgYT17a2V5Ont0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sZGF0YTp7cmVxdWlyZWQ6ITB9fTtlLnNldFN0b3JhZ2U9YTt2YXIgbz1be25hbWU6ImtleSIsdHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHtuYW1lOiJkYXRhIixyZXF1aXJlZDohMH1dO2Uuc2V0U3RvcmFnZVN5bmM9bzt2YXIgcz1yO2UucmVtb3ZlU3RvcmFnZT1zO3ZhciBjPWk7ZS5yZW1vdmVTdG9yYWdlU3luYz1jfSwiMGZiZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuVU5JX1NUT1JBR0VfTE9DQUxFPWUuVEFCQkFSX0hFSUdIVD1lLlJFU1BPTlNJVkVfTUlOX1dJRFRIPWUuT05fVEhFTUVfQ0hBTkdFPWUuTkFWQkFSX0hFSUdIVD12b2lkIDA7ZS5OQVZCQVJfSEVJR0hUPTQ0O2UuVEFCQkFSX0hFSUdIVD01MDtlLlJFU1BPTlNJVkVfTUlOX1dJRFRIPTc2ODtlLlVOSV9TVE9SQUdFX0xPQ0FMRT0iVU5JX0xPQ0FMRSI7ZS5PTl9USEVNRV9DSEFOR0U9Im9uVGhlbWVDaGFuZ2UifSwiMTA3YyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oImRhODQiKSxhPWkuUmVnRXhwO3QuZXhwb3J0cz1yKChmdW5jdGlvbigpe3ZhciB0PWEoIig/PGE+YikiLCJnIik7cmV0dXJuImIiIT09dC5leGVjKCJiIikuZ3JvdXBzLmF8fCJiYyIhPT0iYiIucmVwbGFjZSh0LCIkPGE+YyIpfSkpfSwiMTBkMSI6ZnVuY3Rpb24odCxlLG4pe24oIjAwOTQiKX0sMTEwODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYTllMyIpLG4oImM3NDAiKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oImM5NzUiKTt2YXIgaT1yKG4oImYxY2EiKSksYT1uKCI2MzFhIiksbz17bmFtZToiQ3VzdG9tVGFiQmFyIixwcm9wczp7c2VsZWN0ZWQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sc2hvd0ljb246e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxkaXJlY3Rpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Imhvcml6b250YWwifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzZWxlY3RlZEluZGV4OnRoaXMuc2VsZWN0ZWR9fSxjb21wdXRlZDp7dGFiQmFyT3B0aW9uczpmdW5jdGlvbigpe3JldHVybiBhLnRhYkJhcn0saGFzVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIGEudGFiQmFyLmxpc3QmJmEudGFiQmFyLmxpc3QubGVuZ3RofSxzaG93VGFiQmFyOmZ1bmN0aW9uKCl7dmFyIHQ9Z2V0QXBwKCk7cmV0dXJuIXR8fCF0LiRjaGlsZHJlblswXS5oaWRlVGFiQmFyfX0sd2F0Y2g6e3NlbGVjdGVkOmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0ZWRJbmRleD10O3ZhciBlPWdldEFwcCgpLiRjaGlsZHJlblswXS4kcmVmcy50YWJCYXI7ZSYmKGUuc2VsZWN0ZWRJbmRleD10KX0sJHJvdXRlOmZ1bmN0aW9uKHQsZSl7aWYodC5tZXRhLmlzVGFiQmFyKXt2YXIgbj1hLnRhYkJhci5saXN0LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQubWV0YS5wYWdlUGF0aD09PWUucGFnZVBhdGh9KSk7bj4tMSYmKHRoaXMuc2VsZWN0ZWRJbmRleD1uKX19fSxtZXRob2RzOntfZ2V0UmVhbFBhdGg6ZnVuY3Rpb24odCl7cmV0dXJuL14oW2Etei1dKzopP1wvXC8vaS50ZXN0KHQpfHwvXmRhdGE6LiosLiovLnRlc3QodCl8fDA9PT10LmluZGV4T2YoIi8iKXx8KHQ9Ii8iK3QpLCgwLGkuZGVmYXVsdCkodCl9LF9zd2l0Y2hUYWI6ZnVuY3Rpb24oZSxuKXt2YXIgcj1lLnRleHQsaT1lLnBhZ2VQYXRoO3RoaXMuc2VsZWN0ZWRJbmRleD1uO3ZhciBhPSIvIitpO2E9PT1fX3VuaVJvdXRlc1swXS5hbGlhcyYmKGE9Ii8iKTt2YXIgbz17aW5kZXg6bix0ZXh0OnIscGFnZVBhdGg6aX07dGhpcy4kZW1pdCgib25UYWJJdGVtVGFwIixvKSx0aGlzLiRyb3V0ZS5wYXRoPT09YSYmdC5lbWl0KCJvblRhYkl0ZW1UYXAiLG8pfX19O2UuZGVmYXVsdD1vfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LDExNDg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1OTI2IiksaT1uKCI1NzdlIiksYT1uKCIxZDgwIiksbz1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKGEodGhpcykpLG49IiIscz1yKHQpO2lmKHM8MHx8cz09MS8wKXRocm93IG8oIldyb25nIG51bWJlciBvZiByZXBldGl0aW9ucyIpO2Zvcig7cz4wOyhzPj4+PTEpJiYoZSs9ZSkpMSZzJiYobis9ZSk7cmV0dXJuIG59fSwxMjM5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiMzM5ZiIpKSxhPXtuYW1lOiJWaWV3IixtaXhpbnM6W2kuZGVmYXVsdF0sbGlzdGVuZXJzOnsibGFiZWwtY2xpY2siOiJjbGlja0hhbmRsZXIifX07ZS5kZWZhdWx0PWF9LDEyNzY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyYmE0IiksaT1uKCJjNjViIiksYT1uKCJlMzMwIiksbz1uKCJkNzg0Iikscz1uKCI4MjVhIiksYz1uKCI3MjM0IiksdT1uKCI0NGU3IiksbD1uKCIxZDgwIiksZj1uKCI0ODQwIiksZD1uKCI4YWE1IiksaD1uKCI1MGM0IikscD1uKCI1NzdlIiksdj1uKCJkYzRhIiksZz1uKCI0ZGFlIiksbT1uKCIxNGMzIiksYj1uKCI5MjYzIikseT1uKCI5ZjdmIiksXz1uKCJkMDM5Iiksdz15LlVOU1VQUE9SVEVEX1kseD1NYXRoLm1pbixTPVtdLnB1c2gsVD1hKC8uLy5leGVjKSxDPWEoUyksaz1hKCIiLnNsaWNlKSxPPSFfKChmdW5jdGlvbigpe3ZhciB0PS8oPzopLyxlPXQuZXhlYzt0LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBuPSJhYiIuc3BsaXQodCk7cmV0dXJuIDIhPT1uLmxlbmd0aHx8ImEiIT09blswXXx8ImIiIT09blsxXX0pKTtvKCJzcGxpdCIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgYTtyZXR1cm4gYT0iYyI9PSJhYmJjIi5zcGxpdCgvKGIpKi8pWzFdfHw0IT0idGVzdCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPSJhYiIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPSIuIi5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGh8fCIuIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHwiIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24odCxuKXt2YXIgYT1wKGwodGhpcykpLG89dm9pZCAwPT09bj80Mjk0OTY3Mjk1Om4+Pj4wO2lmKDA9PT1vKXJldHVybltdO2lmKHZvaWQgMD09PXQpcmV0dXJuW2FdO2lmKCF1KHQpKXJldHVybiBpKGUsYSx0LG8pO3ZhciBzLGMsZixkPVtdLGg9KHQuaWdub3JlQ2FzZT8iaSI6IiIpKyh0Lm11bHRpbGluZT8ibSI6IiIpKyh0LnVuaWNvZGU/InUiOiIiKSsodC5zdGlja3k/InkiOiIiKSx2PTAsbT1uZXcgUmVnRXhwKHQuc291cmNlLGgrImciKTt3aGlsZShzPWkoYixtLGEpKXtpZihjPW0ubGFzdEluZGV4LGM+diYmKEMoZCxrKGEsdixzLmluZGV4KSkscy5sZW5ndGg+MSYmcy5pbmRleDxhLmxlbmd0aCYmcihTLGQsZyhzLDEpKSxmPXNbMF0ubGVuZ3RoLHY9YyxkLmxlbmd0aD49bykpYnJlYWs7bS5sYXN0SW5kZXg9PT1zLmluZGV4JiZtLmxhc3RJbmRleCsrfXJldHVybiB2PT09YS5sZW5ndGg/IWYmJlQobSwiIil8fEMoZCwiIik6QyhkLGsoYSx2KSksZC5sZW5ndGg+bz9nKGQsMCxvKTpkfToiMCIuc3BsaXQodm9pZCAwLDApLmxlbmd0aD9mdW5jdGlvbih0LG4pe3JldHVybiB2b2lkIDA9PT10JiYwPT09bj9bXTppKGUsdGhpcyx0LG4pfTplLFtmdW5jdGlvbihlLG4pe3ZhciByPWwodGhpcyksbz1jKGUpP3ZvaWQgMDp2KGUsdCk7cmV0dXJuIG8/aShvLGUscixuKTppKGEscChyKSxlLG4pfSxmdW5jdGlvbih0LHIpe3ZhciBpPXModGhpcyksbz1wKHQpLGM9bihhLGksbyxyLGEhPT1lKTtpZihjLmRvbmUpcmV0dXJuIGMudmFsdWU7dmFyIHU9ZihpLFJlZ0V4cCksbD1pLnVuaWNvZGUsdj0oaS5pZ25vcmVDYXNlPyJpIjoiIikrKGkubXVsdGlsaW5lPyJtIjoiIikrKGkudW5pY29kZT8idSI6IiIpKyh3PyJnIjoieSIpLGc9bmV3IHUodz8iXig/OiIraS5zb3VyY2UrIikiOmksdiksYj12b2lkIDA9PT1yPzQyOTQ5NjcyOTU6cj4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PW8ubGVuZ3RoKXJldHVybiBudWxsPT09bShnLG8pP1tvXTpbXTt2YXIgeT0wLF89MCxTPVtdO3doaWxlKF88by5sZW5ndGgpe2cubGFzdEluZGV4PXc/MDpfO3ZhciBULE89bShnLHc/ayhvLF8pOm8pO2lmKG51bGw9PT1PfHwoVD14KGgoZy5sYXN0SW5kZXgrKHc/XzowKSksby5sZW5ndGgpKT09PXkpXz1kKG8sXyxsKTtlbHNle2lmKEMoUyxrKG8seSxfKSksUy5sZW5ndGg9PT1iKXJldHVybiBTO2Zvcih2YXIgRT0xO0U8PU8ubGVuZ3RoLTE7RSsrKWlmKEMoUyxPW0VdKSxTLmxlbmd0aD09PWIpcmV0dXJuIFM7Xz15PVR9fXJldHVybiBDKFMsayhvLHkpKSxTfV19KSwhTyx3KX0sIjEyOWYiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPU9iamVjdC5pc3x8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWU/MCE9PXR8fDEvdD09PTEvZTp0IT10JiZlIT1lfX0sIjEzMWEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCJkMmJiIik7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtzZXRQcm90b3R5cGVPZjppfSl9LDEzODc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3RoaXMuX2RyYWc9dCx0aGlzLl9kcmFnTG9nPU1hdGgubG9nKHQpLHRoaXMuX3g9MCx0aGlzLl92PTAsdGhpcy5fc3RhcnRUaW1lPTB9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkZyaWN0aW9uPXIsci5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5feD10LHRoaXMuX3Y9ZSx0aGlzLl9zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCl9LHIucHJvdG90eXBlLnNldFZlbG9jaXR5QnlFbmQ9ZnVuY3Rpb24odCl7dGhpcy5fdj0odC10aGlzLl94KSp0aGlzLl9kcmFnTG9nLyhNYXRoLnBvdyh0aGlzLl9kcmFnLDEwMCktMSl9LHIucHJvdG90eXBlLng9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksZT10PT09dGhpcy5fZHQmJnRoaXMuX3Bvd0RyYWdEdD90aGlzLl9wb3dEcmFnRHQ6dGhpcy5fcG93RHJhZ0R0PU1hdGgucG93KHRoaXMuX2RyYWcsdCksdGhpcy5fZHQ9dCx0aGlzLl94K3RoaXMuX3YqZS90aGlzLl9kcmFnTG9nLXRoaXMuX3YvdGhpcy5fZHJhZ0xvZ30sci5wcm90b3R5cGUuZHg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksZT10PT09dGhpcy5fZHQmJnRoaXMuX3Bvd0RyYWdEdD90aGlzLl9wb3dEcmFnRHQ6dGhpcy5fcG93RHJhZ0R0PU1hdGgucG93KHRoaXMuX2RyYWcsdCksdGhpcy5fZHQ9dCx0aGlzLl92KmV9LHIucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5hYnModGhpcy5keCgpKTwzfSxyLnByb3RvdHlwZS5yZWNvbmZpZ3VyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLngoKSxuPXRoaXMuZHgoKTt0aGlzLl9kcmFnPXQsdGhpcy5fZHJhZ0xvZz1NYXRoLmxvZyh0KSx0aGlzLnNldChlLG4pfSxyLnByb3RvdHlwZS5jb25maWd1cmF0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm5be2xhYmVsOiJGcmljdGlvbiIscmVhZDpmdW5jdGlvbigpe3JldHVybiB0Ll9kcmFnfSx3cml0ZTpmdW5jdGlvbihlKXt0LnJlY29uZmlndXJlKGUpfSxtaW46LjAwMSxtYXg6LjEsc3RlcDouMDAxfV19fSwiMTNkMiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oIjE2MjYiKSxhPW4oIjFhMmQiKSxvPW4oIjgzYWIiKSxzPW4oIjVlNzciKS5DT05GSUdVUkFCTEUsYz1uKCI4OTI1IiksdT1uKCI2OWYzIiksbD11LmVuZm9yY2UsZj11LmdldCxkPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoPW8mJiFyKChmdW5jdGlvbigpe3JldHVybiA4IT09ZCgoZnVuY3Rpb24oKXt9KSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pKSxwPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSx2PXQuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7IlN5bWJvbCgiPT09U3RyaW5nKGUpLnNsaWNlKDAsNykmJihlPSJbIitTdHJpbmcoZSkucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLG4mJm4uZ2V0dGVyJiYoZT0iZ2V0ICIrZSksbiYmbi5zZXR0ZXImJihlPSJzZXQgIitlKSwoIWEodCwibmFtZSIpfHxzJiZ0Lm5hbWUhPT1lKSYmKG8/ZCh0LCJuYW1lIix7dmFsdWU6ZSxjb25maWd1cmFibGU6ITB9KTp0Lm5hbWU9ZSksaCYmbiYmYShuLCJhcml0eSIpJiZ0Lmxlbmd0aCE9PW4uYXJpdHkmJmQodCwibGVuZ3RoIix7dmFsdWU6bi5hcml0eX0pO3RyeXtuJiZhKG4sImNvbnN0cnVjdG9yIikmJm4uY29uc3RydWN0b3I/byYmZCh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOnQucHJvdG90eXBlJiYodC5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChpKXt9dmFyIHI9bCh0KTtyZXR1cm4gYShyLCJzb3VyY2UiKXx8KHIuc291cmNlPXAuam9pbigic3RyaW5nIj09dHlwZW9mIGU/ZToiIikpLHR9O0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZz12KChmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpJiZmKHRoaXMpLnNvdXJjZXx8Yyh0aGlzKX0pLCJ0b1N0cmluZyIpfSwiMTNkNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJkNThmIikubGVmdCxhPW4oImE2NDAiKSxvPW4oIjJkMDAiKSxzPW4oIjYwNWQiKSxjPWEoInJlZHVjZSIpLHU9IXMmJm8+NzkmJm88ODM7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFjfHx1fSx7cmVkdWNlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGkodGhpcyx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwiMTNmMSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZWZkNCIpLGk9bigiZTMzMDEiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LDE0NDg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRmYjkiKSxpPW4oImI2YjciKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcihpKHQpLGUpfX0sIjE0NWUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiN2IwYiIpLGk9bigiMjNjYiIpLGE9bigiMDdmYSIpLG89bigiMDgzYSIpLHM9TWF0aC5taW47dC5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKHQsZSl7dmFyIG49cih0aGlzKSxjPWEobiksdT1pKHQsYyksbD1pKGUsYyksZj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxkPXMoKHZvaWQgMD09PWY/YzppKGYsYykpLWwsYy11KSxoPTE7bDx1JiZ1PGwrZCYmKGg9LTEsbCs9ZC0xLHUrPWQtMSk7d2hpbGUoZC0tID4wKWwgaW4gbj9uW3VdPW5bbF06byhuLHUpLHUrPWgsbCs9aDtyZXR1cm4gbn19LCIxNGJjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS51bmlJZE1peGluPWZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLnVuaUlESGFzUm9sZT1mdW5jdGlvbih0KXt2YXIgZT1vKCksbj1lLnJvbGU7cmV0dXJuIG4uaW5kZXhPZih0KT4tMX0sdC5wcm90b3R5cGUudW5pSURIYXNQZXJtaXNzaW9uPWZ1bmN0aW9uKHQpe3ZhciBlPW8oKSxuPWUucGVybWlzc2lvbjtyZXR1cm4gdGhpcy51bmlJREhhc1JvbGUoImFkbWluIil8fG4uaW5kZXhPZih0KT4tMX0sdC5wcm90b3R5cGUudW5pSURUb2tlblZhbGlkPWZ1bmN0aW9uKCl7dmFyIHQ9bygpLGU9dC50b2tlbkV4cGlyZWQ7cmV0dXJuIGU+RGF0ZS5ub3coKX19LG4oImQ0MDEiKSxuKCI4MWIyIiksbigiMGViNiIpLG4oImI3ZWYiKSxuKCI4YmQ0IiksbigiYWMxZiIpLG4oIjUzMTkiKSxuKCIwMGI0IiksbigiZDllMiIpLG4oImQ4MWQiKSxuKCJmYjZhIiksbigiZDNiNyIpLG4oIjI1ZjAiKSxuKCJjOTc1Iik7dmFyIGk9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IixhPS9eKD86W0EtWmEtelxkKy9dezR9KSo/KD86W0EtWmEtelxkKy9dezJ9KD86PT0pP3xbQS1aYS16XGQrL117M309Pyk/JC87ZnVuY3Rpb24gbygpe3ZhciB0LGU9dW5pLmdldFN0b3JhZ2VTeW5jKCJ1bmlfaWRfdG9rZW4iKXx8IiIsbj1lLnNwbGl0KCIuIik7aWYoIWV8fDMhPT1uLmxlbmd0aClyZXR1cm57dWlkOm51bGwscm9sZTpbXSxwZXJtaXNzaW9uOltdLHRva2VuRXhwaXJlZDowfTt0cnl7dD1KU09OLnBhcnNlKGZ1bmN0aW9uKHQpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQocih0KS5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iJSIrKCIwMCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpfSkpLmpvaW4oIiIpKX0oblsxXSkpfWNhdGNoKGkpe3Rocm93IG5ldyBFcnJvcigi6I635Y+W5b2T5YmN55So5oi35L+h5oGv5Ye66ZSZ77yM6K+m57uG6ZSZ6K+v5L+h5oGv5Li677yaIitpLm1lc3NhZ2UpfXJldHVybiB0LnRva2VuRXhwaXJlZD0xZTMqdC5leHAsZGVsZXRlIHQuZXhwLGRlbGV0ZSB0LmlhdCx0fXI9ImZ1bmN0aW9uIiE9PXR5cGVvZiBhdG9iP2Z1bmN0aW9uKHQpe2lmKHQ9U3RyaW5nKHQpLnJlcGxhY2UoL1tcdFxuXGZcciBdKy9nLCIiKSwhYS50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGV4ZWN1dGUgJ2F0b2InIG9uICdXaW5kb3cnOiBUaGUgc3RyaW5nIHRvIGJlIGRlY29kZWQgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkLiIpO3ZhciBlO3QrPSI9PSIuc2xpY2UoMi0oMyZ0Lmxlbmd0aCkpO2Zvcih2YXIgbixyLG89IiIscz0wO3M8dC5sZW5ndGg7KWU9aS5pbmRleE9mKHQuY2hhckF0KHMrKykpPDwxOHxpLmluZGV4T2YodC5jaGFyQXQocysrKSk8PDEyfChuPWkuaW5kZXhPZih0LmNoYXJBdChzKyspKSk8PDZ8KHI9aS5pbmRleE9mKHQuY2hhckF0KHMrKykpKSxvKz02ND09PW4/U3RyaW5nLmZyb21DaGFyQ29kZShlPj4xNiYyNTUpOjY0PT09cj9TdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjE2JjI1NSxlPj44JjI1NSk6U3RyaW5nLmZyb21DaGFyQ29kZShlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmUpO3JldHVybiBvfTphdG9ifSwiMTRjMiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiMDkxYSIpLGk9bigiYTUzYyIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjE0YzMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCI4MjVhIiksYT1uKCIxNjI2Iiksbz1uKCJjNmI2Iikscz1uKCI5MjYzIiksYz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5leGVjO2lmKGEobikpe3ZhciB1PXIobix0LGUpO3JldHVybiBudWxsIT09dSYmaSh1KSx1fWlmKCJSZWdFeHAiPT09byh0KSlyZXR1cm4gcihzLHQsZSk7dGhyb3cgYygiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpfX0sIjE0ZDkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiN2IwYiIpLGE9bigiMDdmYSIpLG89bigiM2EzNCIpLHM9bigiMzUxMSIpLGM9bigiZDAzOSIpLHU9YygoZnVuY3Rpb24oKXtyZXR1cm4gNDI5NDk2NzI5NyE9PVtdLnB1c2guY2FsbCh7bGVuZ3RoOjQyOTQ5NjcyOTZ9LDEpfSkpLGw9IWZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShbXSwibGVuZ3RoIix7d3JpdGFibGU6ITF9KS5wdXNoKCl9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOnV8fGx9LHtwdXNoOmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyksbj1hKGUpLHI9YXJndW1lbnRzLmxlbmd0aDtzKG4rcik7Zm9yKHZhciBjPTA7YzxyO2MrKyllW25dPWFyZ3VtZW50c1tjXSxuKys7cmV0dXJuIG8oZSxuKSxufX0pfSwiMTRlNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJjNjViIiksYT1uKCI1OWVkIiksbz1uKCJmMDY5Iikscz1uKCJlNjY3IiksYz1uKCIyMjY2IiksdT1uKCI1ZWVkIik7cih7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDp1fSx7YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1vLmYoZSkscj1uLnJlc29sdmUsdT1uLnJlamVjdCxsPXMoKGZ1bmN0aW9uKCl7dmFyIG49YShlLnJlc29sdmUpLG89W10scz0wLGw9MTtjKHQsKGZ1bmN0aW9uKHQpe3ZhciBhPXMrKyxjPSExO2wrKyxpKG4sZSx0KS50aGVuKChmdW5jdGlvbih0KXtjfHwoYz0hMCxvW2FdPXQsLS1sfHxyKG8pKX0pLHUpfSkpLC0tbHx8cihvKX0pKTtyZXR1cm4gbC5lcnJvciYmdShsLnZhbHVlKSxuLnByb21pc2V9fSl9LDE1MjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYTllMyIpLG4oImM5NzUiKSxuKCJlMjVlIiksbigiYWNkOCIpO24oImRiNmEiKTt2YXIgaT1yKG4oIjY0YjIiKSk7ZnVuY3Rpb24gYSgpe312YXIgbz17bmFtZToiS2V5Ym9hcmQiLG1peGluczpbaS5kZWZhdWx0XSxwcm9wczp7Y3Vyc29yU3BhY2luZzp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSxzaG93Q29uZmlybUJhcjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ImF1dG8ifSxhZGp1c3RQb3NpdGlvbjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITB9LGF1dG9CbHVyOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX19LGNvbXB1dGVkOntpc0FwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1TdHJpbmcobmF2aWdhdG9yLnZlbmRvcikuaW5kZXhPZigiQXBwbGUiKX19LGRpcmVjdGl2ZXM6e2tleWJvYXJkOntpbnNlcnRlZDpmdW5jdGlvbih0LGUsbil7bi5jb250ZXh0LmluaXRLZXlib2FyZCh0KX19fSxtZXRob2RzOntpbml0S2V5Ym9hcmQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwoZnVuY3Rpb24oKXshMCxjbGVhclRpbWVvdXQodm9pZCAwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYSwhMSl9KSk7dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoZnVuY3Rpb24oKXtlLmlzQXBwbGUmJnQuYmx1cigpLCExLGZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEsITEpLGUuaXNBcHBsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApfSgpfSkpfX19O2UuZGVmYXVsdD1vfSwiMTU5YiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oImZkYmMiKSxhPW4oIjc4NWEiKSxvPW4oIjE3YzIiKSxzPW4oIjkxMTIiKSxjPWZ1bmN0aW9uKHQpe2lmKHQmJnQuZm9yRWFjaCE9PW8pdHJ5e3ModCwiZm9yRWFjaCIsbyl9Y2F0Y2goZSl7dC5mb3JFYWNoPW99fTtmb3IodmFyIHUgaW4gaSlpW3VdJiZjKHJbdV0mJnJbdV0ucHJvdG90eXBlKTtjKGEpfSwxNjI2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4ZWExIiksaT1yLmFsbDt0LmV4cG9ydHM9ci5JU19IVE1MRERBP2Z1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fHx0PT09aX06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9fSwiMTcwZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsZS5zdGFydEFuaW1hdGlvbj1vO3ZhciBpPXIobigiMjkwOSIpKTtmdW5jdGlvbiBhKHQpe3JldHVybi9eLT9cZCtbdXJdcHgkL2kudGVzdCh0KT90LnJlcGxhY2UoLyheLT9cZCspW3VyXXB4JC9pLChmdW5jdGlvbih0LGUpe3JldHVybiIiLmNvbmNhdCh1bmkudXB4MnB4KHBhcnNlRmxvYXQoZSkpLCJweCIpfSkpOi9eLT9bXGRcLl0rJC8udGVzdCh0KT8iIi5jb25jYXQodCwicHgiKTp0fHwiIn1mdW5jdGlvbiBvKHQpe3ZhciBlPXQuYW5pbWF0aW9uO2lmKGUmJmUuYWN0aW9ucyYmZS5hY3Rpb25zLmxlbmd0aCl7dmFyIG49MCxyPWUuYWN0aW9ucyxvPWUuYWN0aW9ucy5sZW5ndGg7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtzKCl9KSwwKX1mdW5jdGlvbiBzKCl7dmFyIGU9cltuXSxjPWUub3B0aW9uLnRyYW5zaXRpb24sdT1mdW5jdGlvbih0KXt2YXIgZT1bIm1hdHJpeCIsIm1hdHJpeDNkIiwic2NhbGUiLCJzY2FsZTNkIiwicm90YXRlM2QiLCJza2V3IiwidHJhbnNsYXRlIiwidHJhbnNsYXRlM2QiXSxuPVsic2NhbGVYIiwic2NhbGVZIiwic2NhbGVaIiwicm90YXRlIiwicm90YXRlWCIsInJvdGF0ZVkiLCJyb3RhdGVaIiwic2tld1giLCJza2V3WSIsInRyYW5zbGF0ZVgiLCJ0cmFuc2xhdGVZIiwidHJhbnNsYXRlWiJdLHI9WyJvcGFjaXR5IiwiYmFja2dyb3VuZC1jb2xvciJdLG89WyJ3aWR0aCIsImhlaWdodCIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdLHM9dC5hbmltYXRlcyxjPXQub3B0aW9uLHU9Yy50cmFuc2l0aW9uLGw9e30sZj1bXTtyZXR1cm4gcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcz10LnR5cGUsYz0oMCxpLmRlZmF1bHQpKHQuYXJncyk7aWYoZS5jb25jYXQobikuaW5jbHVkZXMocykpcy5zdGFydHNXaXRoKCJyb3RhdGUiKXx8cy5zdGFydHNXaXRoKCJza2V3Iik/Yz1jLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlRmxvYXQodCkrImRlZyJ9KSk6cy5zdGFydHNXaXRoKCJ0cmFuc2xhdGUiKSYmKGM9Yy5tYXAoYSkpLG4uaW5kZXhPZihzKT49MCYmKGMubGVuZ3RoPTEpLGYucHVzaCgiIi5jb25jYXQocywiKCIpLmNvbmNhdChjLmpvaW4oIiwiKSwiKSIpKTtlbHNlIGlmKHIuY29uY2F0KG8pLmluY2x1ZGVzKGNbMF0pKXtzPWNbMF07dmFyIHU9Y1sxXTtsW3NdPW8uaW5jbHVkZXMocyk/YSh1KTp1fX0pKSxsLnRyYW5zZm9ybT1sLndlYmtpdFRyYW5zZm9ybT1mLmpvaW4oIiAiKSxsLnRyYW5zaXRpb249bC53ZWJraXRUcmFuc2l0aW9uPU9iamVjdC5rZXlzKGwpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1tBLVpdL2csKGZ1bmN0aW9uKHQpe3JldHVybiItIi5jb25jYXQodC50b0xvd2VyQ2FzZSgpKX0pKS5yZXBsYWNlKCJ3ZWJraXQiLCItd2Via2l0Iil9KHQpLCIgIikuY29uY2F0KHUuZHVyYXRpb24sIm1zICIpLmNvbmNhdCh1LnRpbWluZ0Z1bmN0aW9uLCIgIikuY29uY2F0KHUuZGVsYXksIm1zIil9KSkuam9pbigiLCIpLGwudHJhbnNmb3JtT3JpZ2luPWwud2Via2l0VHJhbnNmb3JtT3JpZ2luPWMudHJhbnNmb3JtT3JpZ2luLGx9KGUpO09iamVjdC5rZXlzKHUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuJGVsLnN0eWxlW2VdPXVbZV19KSksbis9MSxuPG8mJnNldFRpbWVvdXQocyxjLmR1cmF0aW9uK2MuZGVsYXkpfX1uKCJhYzFmIiksbigiMDBiNCIpLG4oIjUzMTkiKSxuKCJhY2Q4IiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJjYWFkIiksbigiMjUzMiIpLG4oIjk5YWYiKSxuKCIyY2EwIiksbigiZDgxZCIpLG4oImM5NzUiKSxuKCIxNGQ5IiksbigiYjY0YiIpO3ZhciBzPXtwcm9wczpbImFuaW1hdGlvbiJdLHdhdGNoOnthbmltYXRpb246ZnVuY3Rpb24oKXtvKHRoaXMpfX0sbW91bnRlZDpmdW5jdGlvbigpe28odGhpcyl9fTtlLmRlZmF1bHQ9c30sMTc0MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQsZT10aGlzLl9zZWxmLl9jfHx0O3JldHVybiBlKCJ1bmktcGFnZS13cmFwcGVyIixbZSgidW5pLXBhZ2UtYm9keSIsW3RoaXMuX3QoImRlZmF1bHQiKV0sMildLDEpfSxpPVtdfSwiMTdjMiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJiNzI3IikuZm9yRWFjaCxpPW4oImE2NDAiKSxhPWkoImZvckVhY2giKTt0LmV4cG9ydHM9YT9bXS5mb3JFYWNoOmZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSwiMTgyZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImY4Y2QiKSxpPVJhbmdlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0KTtpZihuJWUpdGhyb3cgaSgiV3Jvbmcgb2Zmc2V0Iik7cmV0dXJuIG59fSwxODc2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjA5YjAiKSxpPW4oIjI0NTciKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LDE4OTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZmU4MSIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjE5YWEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzYTliIiksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYocihlLHQpKXJldHVybiB0O3Rocm93IGkoIkluY29ycmVjdCBpbnZvY2F0aW9uIil9fSwiMTliZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe3ZhciB0O3JldHVybnthcmdzOmZ1bmN0aW9uKGUsbil7dD1zKGUuZXZlbnRzKSxlLnVybCYmKGUudXJsPWUudXJsKygtMT09PWUudXJsLmluZGV4T2YoIj8iKT8iPyI6IiYiKSsiX19pZF9fPSIrdC5pZCl9LHJldHVyblZhbHVlOmZ1bmN0aW9uKGUsbil7ZS5ldmVudENoYW5uZWw9dH19fSxlLmdldEV2ZW50Q2hhbm5lbD1mdW5jdGlvbih0KXt2YXIgZT1hW3RdO3JldHVybiBkZWxldGUgYVt0XSxlfSxlLmluaXRFdmVudENoYW5uZWw9cyxuKCJjOTc1Iik7dmFyIGk9cihuKCI1ZTEzIikpLGE9e30sbz0wO2Z1bmN0aW9uIHModCl7dmFyIGU9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtvKys7dmFyIG49bmV3IGkuZGVmYXVsdChvLHQpO3JldHVybiBlJiYoYVtvXT1uKSxufX0sIjFhMmQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCI3YjBiIiksYT1yKHt9Lmhhc093blByb3BlcnR5KTt0LmV4cG9ydHM9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gYShpKHQpLGUpfX0sIjFhMzkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlc3Ryb3lDb21wb25lbnRPYnNlcnZlcj1mdW5jdGlvbihlKXt2YXIgbj1lLnJlcUlkLHI9Y1tuXTtyJiYoci5kaXNjb25uZWN0KCksZGVsZXRlIGNbbl0sdC5wdWJsaXNoSGFuZGxlcigib25SZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXIiLHtyZXFJZDpuLHJlcUVuZDohMH0pKX0sZS5yZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXI9ZnVuY3Rpb24oZSxuKXt2YXIgdSxsPWUucmVxSWQsZj1lLmNvbXBvbmVudCxkPWUub3B0aW9ucztpZihuLl9pc1Z1ZSl1PW47ZWxzZXt2YXIgaD1nZXRDdXJyZW50UGFnZXMoKSxwPWguZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1ufSkpO2lmKCFwKXRocm93IG5ldyBFcnJvcigiTm90IEZvdW5k77yaUGFnZVsiLmNvbmNhdChuLCJdIikpO3U9cC4kdm19dmFyIHY9KDAsYS5maW5kRWxtKShmLHUpLGc9ZC5yZWxhdGl2ZVRvU2VsZWN0b3I/di5xdWVyeVNlbGVjdG9yKGQucmVsYXRpdmVUb1NlbGVjdG9yKTpudWxsLG09Y1tsXT1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKGUsbil7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LnB1Ymxpc2hIYW5kbGVyKCJvblJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIse3JlcUlkOmwscmVzOntpbnRlcnNlY3Rpb25SYXRpbzpzKGUpLGludGVyc2VjdGlvblJlY3Q6byhlLmludGVyc2VjdGlvblJlY3QpLGJvdW5kaW5nQ2xpZW50UmVjdDpvKGUuYm91bmRpbmdDbGllbnRSZWN0KSxyZWxhdGl2ZVJlY3Q6byhlLnJvb3RCb3VuZHMpLHRpbWU6RGF0ZS5ub3coKSxkYXRhc2V0OigwLGkuZ2V0VGFyZ2V0RGF0YXNldCkoZS50YXJnZXQpLGlkOmUudGFyZ2V0LmlkfX0pfSkpfSkse3Jvb3Q6Zyxyb290TWFyZ2luOmQucm9vdE1hcmdpbix0aHJlc2hvbGQ6ZC50aHJlc2hvbGRzfSk7aWYoZC5vYnNlcnZlQWxsKW0uVVNFX01VVEFUSU9OX09CU0VSVkVSPSEwLEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbCh2LnF1ZXJ5U2VsZWN0b3JBbGwoZC5zZWxlY3RvciksKGZ1bmN0aW9uKHQpe3Q/bS5vYnNlcnZlKHQpOnIud2FybigiTm9kZSAiLmNvbmNhdChkLnNlbGVjdG9yLCIgaXMgbm90IGZvdW5kLiBJbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgd2lsbCBub3QgdHJpZ2dlci4iKSl9KSk7ZWxzZXttLlVTRV9NVVRBVElPTl9PQlNFUlZFUj0hMTt2YXIgYj12LnF1ZXJ5U2VsZWN0b3IoZC5zZWxlY3Rvcik7aWYoIWIpcmV0dXJuIHZvaWQgci53YXJuKCJOb2RlICIuY29uY2F0KGQuc2VsZWN0b3IsIiBpcyBub3QgZm91bmQuIEludGVyc2VjdGlvbiBvYnNlcnZlciB3aWxsIG5vdCB0cmlnZ2VyLiIpKTttLm9ic2VydmUoYil9fSxuKCI3ZGIwIiksbigiZDNiNyIpLG4oImQ5ZTIiKSxuKCJkNDAxIiksbigiMTU5YiIpLG4oImQ4MWQiKSxuKCI1YWJlIik7dmFyIGk9bigiZjRmMCIpLGE9bigiMDhjNSIpO2Z1bmN0aW9uIG8odCl7cmV0dXJue2JvdHRvbTp0LmJvdHRvbSxoZWlnaHQ6dC5oZWlnaHQsbGVmdDp0LmxlZnQscmlnaHQ6dC5yaWdodCx0b3A6dC50b3Asd2lkdGg6dC53aWR0aH19ZnVuY3Rpb24gcyh0KXt2YXIgZT10LmludGVyc2VjdGlvblJhdGlvLG49dC5ib3VuZGluZ0NsaWVudFJlY3Qscj1uLmhlaWdodCxpPW4ud2lkdGgsYT10LmludGVyc2VjdGlvblJlY3Qsbz1hLmhlaWdodCxzPWEud2lkdGg7cmV0dXJuIDAhPT1lP2U6bz09PXI/cy9pOm8vcn12YXIgYz17fX0pLmNhbGwodGhpcyxuKCJjNWMzIiksbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiMWIxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRjcmVhdGVFbGVtZW50LGU9dGhpcy5fc2VsZi5fY3x8dDtyZXR1cm4gZSgidW5pLW1vdmFibGUtdmlldyIsdGhpcy5fZyh7fSx0aGlzLiRsaXN0ZW5lcnMpLFtlKCJ2LXVuaS1yZXNpemUtc2Vuc29yIix7b246e3Jlc2l6ZTp0aGlzLnNldFBhcmVudH19KSx0aGlzLl90KCJkZWZhdWx0IildLDIpfSxpPVtdfSwiMWI3MSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKSxpPW4oIjk4N2QiKTtmdW5jdGlvbiBhKCl7dGhpcy4kZGlzcGF0Y2goIkZvcm0iLCJ1bmktZm9ybS1ncm91cC11cGRhdGUiLHt0eXBlOiJhZGQiLHZtOnRoaXN9KX1mdW5jdGlvbiBvKCl7dGhpcy4kZGlzcGF0Y2goIkZvcm0iLCJ1bmktZm9ybS1ncm91cC11cGRhdGUiLHt0eXBlOiJyZW1vdmUiLHZtOnRoaXN9KX12YXIgcz17bmFtZToidW5pOi8vZm9ybS1maWVsZCIsaW5pdDpmdW5jdGlvbih0LGUpe2UuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wcyYmZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLm5hbWUmJmUuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wcy52YWx1ZXx8KGUuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wc3x8KGUuY29uc3RydWN0b3Iub3B0aW9ucy5wcm9wcz17fSksZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLm5hbWV8fChlLmNvbnN0cnVjdG9yLm9wdGlvbnMucHJvcHMubmFtZT10LnByb3BzLm5hbWU9e3R5cGU6U3RyaW5nfSksZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLnZhbHVlfHwoZS5jb25zdHJ1Y3Rvci5vcHRpb25zLnByb3BzLnZhbHVlPXQucHJvcHMudmFsdWU9e3R5cGU6bnVsbH0pKSx0LnByb3BzRGF0YXx8KHQucHJvcHNEYXRhPXt9KTt2YXIgbj1lLiR2bm9kZTtpZihuJiZuLmRhdGEmJm4uZGF0YS5hdHRycyYmKCgwLHIuaGFzT3duKShuLmRhdGEuYXR0cnMsIm5hbWUiKSYmKHQucHJvcHNEYXRhLm5hbWU9bi5kYXRhLmF0dHJzLm5hbWUpLCgwLHIuaGFzT3duKShuLmRhdGEuYXR0cnMsInZhbHVlIikmJih0LnByb3BzRGF0YS52YWx1ZT1uLmRhdGEuYXR0cnMudmFsdWUpKSwhZS5jb25zdHJ1Y3Rvci5vcHRpb25zLm1ldGhvZHN8fCFlLmNvbnN0cnVjdG9yLm9wdGlvbnMubWV0aG9kcy5fZ2V0Rm9ybURhdGEpe2UuY29uc3RydWN0b3Iub3B0aW9ucy5tZXRob2RzfHwoZS5jb25zdHJ1Y3Rvci5vcHRpb25zLm1ldGhvZHM9e30pLHQubWV0aG9kc3x8KHQubWV0aG9kcz17fSk7dmFyIHM9e19nZXRGb3JtRGF0YTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWU/e2tleTp0aGlzLm5hbWUsdmFsdWU6dGhpcy52YWx1ZX06e319LF9yZXNldEZvcm1EYXRhOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZT0iIn19O09iamVjdC5hc3NpZ24oZS5jb25zdHJ1Y3Rvci5vcHRpb25zLm1ldGhvZHMscyksT2JqZWN0LmFzc2lnbih0Lm1ldGhvZHMscyksT2JqZWN0LmFzc2lnbihlLmNvbnN0cnVjdG9yLm9wdGlvbnMubWV0aG9kcyxpLmVtaXR0ZXIubWV0aG9kcyksT2JqZWN0LmFzc2lnbih0Lm1ldGhvZHMsaS5lbWl0dGVyLm1ldGhvZHMpO3ZhciBjPXQuY3JlYXRlZDtlLmNvbnN0cnVjdG9yLm9wdGlvbnMuY3JlYXRlZD10LmNyZWF0ZWQ9Yz9bXS5jb25jYXQoYSxjKTpbYV07dmFyIHU9dC5iZWZvcmVEZXN0cm95O2UuY29uc3RydWN0b3Iub3B0aW9ucy5iZWZvcmVEZXN0cm95PXQuYmVmb3JlRGVzdHJveT11P1tdLmNvbmNhdChvLHUpOltvXX19fTtlLmRlZmF1bHQ9c30sIjFiOWMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjNkNDYiKTtmb3IodmFyIGkgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGkpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGkpO3ZhciBhPW4oImYwYzUiKSxvPU9iamVjdChhWyJhIl0pKHJbImRlZmF1bHQiXSx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsLCExLHZvaWQgMCx2b2lkIDApO2VbImRlZmF1bHQiXT1vLmV4cG9ydHN9LCIxYmU0IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDA2NiIpO3QuZXhwb3J0cz1yKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpfSwiMWMyYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVxdWVzdD1lLmNvbmZpZ01UTFM9dm9pZCAwLG4oIjRkZTQiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImU5YzQiKSxuKCJkODFkIiksbigiYjY0YiIpLG4oIjk5YWYiKSxuKCJjOTc1IiksbigiMDdhYyIpLG4oImMxOWYiKSxuKCJhY2U0IiksbigiN2RiMCIpLG4oImE5ZTMiKTt2YXIgcj1uKCJkYjZhIiksaT17T1BUSU9OUzoiT1BUSU9OUyIsR0VUOiJHRVQiLEhFQUQ6IkhFQUQiLFBPU1Q6IlBPU1QiLFBVVDoiUFVUIixERUxFVEU6IkRFTEVURSIsVFJBQ0U6IlRSQUNFIixDT05ORUNUOiJDT05ORUNUIixQQVRDSDoiUEFUQ0gifSxhPXtKU09OOiJqc29uIn0sbz17VEVYVDoidGV4dCIsQVJSQVlCVUZGRVI6ImFycmF5YnVmZmVyIn0scz1lbmNvZGVVUklDb21wb25lbnQ7dmFyIGM9e21ldGhvZDp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7dD0odHx8IiIpLnRvVXBwZXJDYXNlKCksZS5tZXRob2Q9T2JqZWN0LnZhbHVlcyhpKS5pbmRleE9mKHQpPDA/aS5HRVQ6dH19LGRhdGE6e3R5cGU6W09iamVjdCxTdHJpbmcsQXJyYXksQXJyYXlCdWZmZXJdLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe2UuZGF0YT10fHwiIn19LHVybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7ZS5tZXRob2Q9PT1pLkdFVCYmKDAsci5pc1BsYWluT2JqZWN0KShlLmRhdGEpJiZPYmplY3Qua2V5cyhlLmRhdGEpLmxlbmd0aCYmKGUudXJsPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5zcGxpdCgiIyIpLGk9blsxXXx8IiI7bj1uWzBdLnNwbGl0KCI/Iik7dmFyIGE9blsxXXx8IiI7dD1uWzBdO3ZhciBvPWEuc3BsaXQoIiYiKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpO2Zvcih2YXIgYyBpbiBhPXt9LG8uZm9yRWFjaCgoZnVuY3Rpb24odCl7dD10LnNwbGl0KCI9IiksYVt0WzBdXT10WzFdfSkpLGUpaWYoKDAsci5oYXNPd24pKGUsYykpe3ZhciB1PWVbY107InVuZGVmaW5lZCI9PT10eXBlb2YgdXx8bnVsbD09PXU/dT0iIjooMCxyLmlzUGxhaW5PYmplY3QpKHUpJiYodT1KU09OLnN0cmluZ2lmeSh1KSksYVtzKGMpXT1zKHUpfXJldHVybiBhPU9iamVjdC5rZXlzKGEpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiIuY29uY2F0KHQsIj0iKS5jb25jYXQoYVt0XSl9KSkuam9pbigiJiIpLHQrKGE/Ij8iK2E6IiIpKyhpPyIjIitpOiIiKX0odCxlLmRhdGEpKX19LGhlYWRlcjp7dHlwZTpPYmplY3QsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5oZWFkZXI9dHx8e307ZS5tZXRob2QhPT1pLkdFVCYmKE9iamVjdC5rZXlzKG4pLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpfSkpfHwoblsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24iKSl9fSxkYXRhVHlwZTp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7ZS5kYXRhVHlwZT0odHx8YS5KU09OKS50b0xvd2VyQ2FzZSgpfX0scmVzcG9uc2VUeXBlOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCxlKXt0PSh0fHwiIikudG9Mb3dlckNhc2UoKSxlLnJlc3BvbnNlVHlwZT1PYmplY3QudmFsdWVzKG8pLmluZGV4T2YodCk8MD9vLlRFWFQ6dH19LHdpdGhDcmVkZW50aWFsczp7dHlwZTpCb29sZWFufSx0aW1lb3V0Ont0eXBlOk51bWJlcn19O2UucmVxdWVzdD1jO3ZhciB1PXtjZXJ0aWZpY2F0ZXM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe2lmKHQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIlN0cmluZyIhPT0oMCxyLnRvUmF3VHlwZSkodC5ob3N0KX0pKSlyZXR1cm4i5Y+C5pWw6YWN572u6ZSZ6K+v77yM6K+356Gu6K6k5ZCO6YeN6K+VIn19fTtlLmNvbmZpZ01UTFM9dX0sIjFjN2UiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIiksaT1yKCJpdGVyYXRvciIpLGE9ITE7dHJ5e3ZhciBvPTAscz17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhbysrfX0scmV0dXJuOmZ1bmN0aW9uKCl7YT0hMH19O3NbaV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShzLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2goYyl7fXQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCFlJiYhYSlyZXR1cm4hMTt2YXIgbj0hMTt0cnl7dmFyIHI9e307cltpXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6bj0hMH19fX0sdChyKX1jYXRjaChjKXt9cmV0dXJuIG59fSwiMWNjYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCI3ZWU3IikpLGE9cihuKCJjZTVjIikpLG89cihuKCI0NTUyIikpLHM9e1RvYXN0OmkuZGVmYXVsdCxQcmV2aWV3SW1hZ2U6YS5kZWZhdWx0LE1vZGFsOm8uZGVmYXVsdH07ZS5kZWZhdWx0PXN9LCIxY2RjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMzQyZiIpO3QuZXhwb3J0cz0vKD86aXBhZHxpcGhvbmV8aXBvZCkuKmFwcGxld2Via2l0L2kudGVzdChyKX0sIjFkMDIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYTI1OCIpLmZpbmRMYXN0SW5kZXgsYT1yLmFUeXBlZEFycmF5LG89ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO28oImZpbmRMYXN0SW5kZXgiLChmdW5jdGlvbih0KXtyZXR1cm4gaShhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSwiMWQxYyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oIjgzYWIiKSxhPW4oIjM3ZTgiKS5mO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpPYmplY3QuZGVmaW5lUHJvcGVydGllcyE9PWEsc2hhbTohaX0se2RlZmluZVByb3BlcnRpZXM6YX0pfSwiMWQ4MCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjcyMzQiKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KSl0aHJvdyBpKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fX0sIjFkYTEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUsbixyLGksYSxvKXt0cnl7dmFyIHM9dFthXShvKSxjPXMudmFsdWV9Y2F0Y2godSl7cmV0dXJuIHZvaWQgbih1KX1zLmRvbmU/ZShjKTpQcm9taXNlLnJlc29sdmUoYykudGhlbihyLGkpfW4oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpLGEpe3ZhciBvPXQuYXBwbHkoZSxuKTtmdW5jdGlvbiBzKHQpe3IobyxpLGEscyxjLCJuZXh0Iix0KX1mdW5jdGlvbiBjKHQpe3IobyxpLGEscyxjLCJ0aHJvdyIsdCl9cyh2b2lkIDApfSkpfX0sbigiZDNiNyIpfSwiMWRkZSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oImI2MjIiKSxhPW4oIjJkMDAiKSxvPWkoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGE+PTUxfHwhcigoZnVuY3Rpb24oKXt2YXIgZT1bXSxuPWUuY29uc3RydWN0b3I9e307cmV0dXJuIG5bb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09ZVt0XShCb29sZWFuKS5mb299KSl9fSwiMWVhZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImNhYWQiKSxuKCJhOWUzIiksbigiYzk3NSIpO3ZhciBpPW4oImRiNmEiKSxhPXIobigiNjRiMiIpKSxvPXIobigiMTUyMSIpKSxzPXIobigiNmI4NyIpKTt0LnN1YnNjcmliZSgiZ2V0U2VsZWN0ZWRUZXh0UmFuZ2UiLChmdW5jdGlvbihlKXt2YXIgbj1lLnBhZ2VJZCxyPWUuY2FsbGJhY2tJZCxpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsYT1pLnRhZ05hbWUudG9Mb3dlckNhc2UoKSxvPXt9O1siaW5wdXQiLCJ0ZXh0YXJlYSJdLmluY2x1ZGVzKGEpPyhvLmVyck1zZz0iZ2V0U2VsZWN0ZWRUZXh0UmFuZ2U6b2siLG8uc3RhcnQ9aS5zZWxlY3Rpb25TdGFydCxvLmVuZD1pLnNlbGVjdGlvbkVuZCk6by5lcnJNc2c9ImdldFNlbGVjdGVkVGV4dFJhbmdlOmZhaWwgbm8gZm9jdXNlZCIsdC5wdWJsaXNoSGFuZGxlcigib25HZXRTZWxlY3RlZFRleHRSYW5nZSIse2NhbGxiYWNrSWQ6cixkYXRhOm99LG4pfSkpO3ZhciBjLHU9e25hbWU6IkZpZWxkIixtaXhpbnM6W2EuZGVmYXVsdCxvLmRlZmF1bHQscy5kZWZhdWx0XSxtb2RlbDp7cHJvcDoidmFsdWUiLGV2ZW50OiJ1cGRhdGU6dmFsdWUifSxwcm9wczp7dmFsdWU6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6IiJ9LGF1dG9Gb2N1czp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LGZvY3VzOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sY3Vyc29yOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0Oi0xfSxzZWxlY3Rpb25TdGFydDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDotMX0sc2VsZWN0aW9uRW5kOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0Oi0xfSxjb25maXJtSG9sZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGlnbm9yZUNvbXBvc2l0aW9uRXZlbnQ6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjb21wb3Npbmc6ITEsdmFsdWVTeW5jOnRoaXMuX2dldFZhbHVlU3RyaW5nKHRoaXMudmFsdWUsdGhpcy50eXBlKSxmb2N1c1N5bmM6dGhpcy5mb2N1cyxmaXhDb2xvcjowPT09U3RyaW5nKG5hdmlnYXRvci52ZW5kb3IpLmluZGV4T2YoIkFwcGxlIikmJkNTUy5zdXBwb3J0cygiaW1hZ2Utb3JpZW50YXRpb246ZnJvbS1pbWFnZSIpfX0sd2F0Y2g6e2ZvY3VzOmZ1bmN0aW9uKHQpe3Q/dGhpcy5fZm9jdXMoKTp0aGlzLl9ibHVyKCl9LGZvY3VzU3luYzpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KCJ1cGRhdGU6Zm9jdXMiLHQpfSxjdXJzb3JOdW1iZXI6ZnVuY3Rpb24oKXt0aGlzLl9jaGVja0N1cnNvcigpfSxzZWxlY3Rpb25TdGFydE51bWJlcjpmdW5jdGlvbigpe3RoaXMuX2NoZWNrU2VsZWN0aW9uKCl9LHNlbGVjdGlvbkVuZE51bWJlcjpmdW5jdGlvbigpe3RoaXMuX2NoZWNrU2VsZWN0aW9uKCl9fSxjb21wdXRlZDp7bmVlZEZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXV0b0ZvY3VzfHx0aGlzLmZvY3VzfSxjdXJzb3JOdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5jdXJzb3IpO3JldHVybiBpc05hTih0KT8tMTp0fSxzZWxlY3Rpb25TdGFydE51bWJlcjpmdW5jdGlvbigpe3ZhciB0PU51bWJlcih0aGlzLnNlbGVjdGlvblN0YXJ0KTtyZXR1cm4gaXNOYU4odCk/LTE6dH0sc2VsZWN0aW9uRW5kTnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMuc2VsZWN0aW9uRW5kKTtyZXR1cm4gaXNOYU4odCk/LTE6dH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5fX3ZhbHVlQ2hhbmdlPSgwLGkuZGVib3VuY2UpKChmdW5jdGlvbihlKXt0LnZhbHVlU3luYz10Ll9nZXRWYWx1ZVN0cmluZyhlLHQudHlwZSl9KSwxMDApO3RoaXMuJHdhdGNoKCJ2YWx1ZSIsZSksdGhpcy5fX3RyaWdnZXJJbnB1dD0oMCxpLnRocm90dGxlKSgoZnVuY3Rpb24oZSxuKXt0Ll9fdmFsdWVDaGFuZ2UuY2FuY2VsKCksdC4kZW1pdCgidXBkYXRlOnZhbHVlIixuLnZhbHVlKSx0LiR0cmlnZ2VyKCJpbnB1dCIsZSxuKX0pLDEwMCksdGhpcy4kdHJpZ2dlcklucHV0PWZ1bmN0aW9uKGUsbixyKXt0Ll9fdmFsdWVDaGFuZ2UuY2FuY2VsKCksdC5fX3RyaWdnZXJJbnB1dChlLG4pLHImJnQuX190cmlnZ2VySW5wdXQuZmx1c2goKX19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fdmFsdWVDaGFuZ2UuY2FuY2VsKCksdGhpcy5fX3RyaWdnZXJJbnB1dC5jYW5jZWwoKX0sZGlyZWN0aXZlczp7ZmllbGQ6e2luc2VydGVkOmZ1bmN0aW9uKHQsZSxuKXtuLmNvbnRleHQuX2luaXRGaWVsZCh0KX19fSxtZXRob2RzOntfZ2V0VmFsdWVTdHJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4ibnVtYmVyIj09PWUmJmlzTmFOKE51bWJlcih0KSkmJih0PSIiKSxudWxsPT09dD8iIjpTdHJpbmcodCl9LF9pbml0RmllbGQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9maWVsZD10LGM9Y3x8RGF0ZS5ub3coKSx0aGlzLm5lZWRGb2N1cyYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl9mb2N1cygpfSkpfSxfZm9jdXM6ZnVuY3Rpb24oKXtpZih0aGlzLm5lZWRGb2N1cyl7dmFyIHQ9dGhpcy5fZmllbGQ7aWYodCl0LmZvY3VzKCk7ZWxzZSBzZXRUaW1lb3V0KHRoaXMuX2ZvY3VzLmJpbmQodGhpcyksMTAwKX19LF9ibHVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZmllbGQ7dCYmdC5ibHVyKCl9LF9vbkZvY3VzOmZ1bmN0aW9uKHQpe3RoaXMuZm9jdXNTeW5jPSEwLHRoaXMuJHRyaWdnZXIoImZvY3VzIix0LHt2YWx1ZTp0aGlzLnZhbHVlU3luY30pLHRoaXMuX2NoZWNrU2VsZWN0aW9uKCksdGhpcy5fY2hlY2tDdXJzb3IoKX0sX29uQmx1cjpmdW5jdGlvbih0KXt0aGlzLmNvbXBvc2luZyYmKHRoaXMuY29tcG9zaW5nPSExLHRoaXMuX29uSW5wdXQodCwhMCkpLHRoaXMuZm9jdXNTeW5jPSExO3ZhciBlLG49dC50YXJnZXQ7Im51bWJlciI9PT1uLnR5cGU/KG4udHlwZT0idGV4dCIsZT1uLnNlbGVjdGlvbkVuZCxuLnR5cGU9Im51bWJlciIpOmU9bi5zZWxlY3Rpb25FbmQsdGhpcy4kdHJpZ2dlcigiYmx1ciIsdCx7dmFsdWU6dGhpcy52YWx1ZVN5bmMsY3Vyc29yOmV9KX0sX2NoZWNrU2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZmllbGQ7dGhpcy5mb2N1c1N5bmMmJnRoaXMuc2VsZWN0aW9uU3RhcnROdW1iZXI+LTEmJnRoaXMuc2VsZWN0aW9uRW5kTnVtYmVyPi0xJiYibnVtYmVyIiE9PXQudHlwZSYmKHQuc2VsZWN0aW9uU3RhcnQ9dGhpcy5zZWxlY3Rpb25TdGFydE51bWJlcix0LnNlbGVjdGlvbkVuZD10aGlzLnNlbGVjdGlvbkVuZE51bWJlcil9LF9jaGVja0N1cnNvcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZpZWxkO3RoaXMuZm9jdXNTeW5jJiZ0aGlzLnNlbGVjdGlvblN0YXJ0TnVtYmVyPDAmJnRoaXMuc2VsZWN0aW9uRW5kTnVtYmVyPDAmJnRoaXMuY3Vyc29yTnVtYmVyPi0xJiYibnVtYmVyIiE9PXQudHlwZSYmKHQuc2VsZWN0aW9uRW5kPXQuc2VsZWN0aW9uU3RhcnQ9dGhpcy5jdXJzb3JOdW1iZXIpfX19O2UuZGVmYXVsdD11fSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LCIxZWYxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgaT1yKG4oIjUzY2EiKSk7ZnVuY3Rpb24gYSh0KXtyZXR1cm4oInVuZGVmaW5lZCI9PT10eXBlb2YgbmF2aWdhdG9yfHwoMCxpLmRlZmF1bHQpKG5hdmlnYXRvcikpJiYiR29vZ2xlIEluYy4iPT09bmF2aWdhdG9yLnZlbmRvciYmdD4xMCYmKHQ9MipNYXRoLnJvdW5kKHQvMikpLHR9dmFyIG89e25hbWU6IkltYWdlIixwcm9wczp7c3JjOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxtb2RlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJzY2FsZVRvRmlsbCJ9LGxhenlMb2FkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sZHJhZ2dhYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57b3JpZ2luYWxXaWR0aDowLG9yaWdpbmFsSGVpZ2h0OjAsb3JpZ2luYWxTdHlsZTp7d2lkdGg6IiIsaGVpZ2h0OiIifSxjb250ZW50UGF0aDoiIn19LGNvbXB1dGVkOntyYXRpbzpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9yaWdpbmFsV2lkdGgmJnRoaXMub3JpZ2luYWxIZWlnaHQ/dGhpcy5vcmlnaW5hbFdpZHRoL3RoaXMub3JpZ2luYWxIZWlnaHQ6MH0sc3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD0iYXV0byIsZT0iIjtzd2l0Y2godGhpcy5tb2RlKXtjYXNlImFzcGVjdEZpdCI6dD0iY29udGFpbiIsZT0iY2VudGVyIGNlbnRlciI7YnJlYWs7Y2FzZSJhc3BlY3RGaWxsIjp0PSJjb3ZlciIsZT0iY2VudGVyIGNlbnRlciI7YnJlYWs7Y2FzZSJ3aWR0aEZpeCI6Y2FzZSJoZWlnaHRGaXgiOnQ9IjEwMCUgMTAwJSI7YnJlYWs7Y2FzZSJ0b3AiOmU9ImNlbnRlciB0b3AiO2JyZWFrO2Nhc2UiYm90dG9tIjplPSJjZW50ZXIgYm90dG9tIjticmVhaztjYXNlImNlbnRlciI6ZT0iY2VudGVyIGNlbnRlciI7YnJlYWs7Y2FzZSJsZWZ0IjplPSJsZWZ0IGNlbnRlciI7YnJlYWs7Y2FzZSJyaWdodCI6ZT0icmlnaHQgY2VudGVyIjticmVhaztjYXNlInRvcCBsZWZ0IjplPSJsZWZ0IHRvcCI7YnJlYWs7Y2FzZSJ0b3AgcmlnaHQiOmU9InJpZ2h0IHRvcCI7YnJlYWs7Y2FzZSJib3R0b20gbGVmdCI6ZT0ibGVmdCBib3R0b20iO2JyZWFrO2Nhc2UiYm90dG9tIHJpZ2h0IjplPSJyaWdodCBib3R0b20iO2JyZWFrO2RlZmF1bHQ6dD0iMTAwJSAxMDAlIixlPSIwJSAwJSI7YnJlYWt9cmV0dXJueyJiYWNrZ3JvdW5kLWltYWdlIjp0aGlzLmNvbnRlbnRQYXRoPyd1cmwoIicuY29uY2F0KHRoaXMuY29udGVudFBhdGgsJyIpJyk6Im5vbmUiLCJiYWNrZ3JvdW5kLXBvc2l0aW9uIjplLCJiYWNrZ3JvdW5kLXNpemUiOnQsImJhY2tncm91bmQtcmVwZWF0Ijoibm8tcmVwZWF0In19fSx3YXRjaDp7c3JjOmZ1bmN0aW9uKHQsZSl7dGhpcy5fbG9hZEltYWdlKCl9LG1vZGU6ZnVuY3Rpb24odCxlKXsid2lkdGhGaXgiIT09ZSYmImhlaWdodEZpeCIhPT1lfHx0aGlzLl9yZXNldFNpemUoKSwid2lkdGhGaXgiIT09dCYmImhlaWdodEZpeCIhPT10fHx0aGlzLl9maXhTaXplKCl9LGNvbnRlbnRQYXRoOmZ1bmN0aW9uKHQpeyF0JiZ0aGlzLl9faW1nJiYodGhpcy5fX2ltZy5yZW1vdmUoKSxkZWxldGUgdGhpcy5fX2ltZyl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5vcmlnaW5hbFN0eWxlLndpZHRoPXRoaXMuJGVsLnN0eWxlLndpZHRofHwiIix0aGlzLm9yaWdpbmFsU3R5bGUuaGVpZ2h0PXRoaXMuJGVsLnN0eWxlLmhlaWdodHx8IiIsdGhpcy5fbG9hZEltYWdlKCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckltYWdlKCl9LG1ldGhvZHM6e19maXhTaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5yYXRpbyl7dmFyIHQ9dGhpcy4kZWw7aWYoIndpZHRoRml4Ij09PXRoaXMubW9kZSl7dmFyIGU9dC5vZmZzZXRXaWR0aDtlJiYodC5zdHlsZS5oZWlnaHQ9YShlL3RoaXMucmF0aW8pKyJweCIpfWVsc2UgaWYoImhlaWdodEZpeCI9PT10aGlzLm1vZGUpe3ZhciBuPXQub2Zmc2V0SGVpZ2h0O24mJih0LnN0eWxlLndpZHRoPWEobip0aGlzLnJhdGlvKSsicHgiKX19d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJ1cGRhdGV2aWV3IikpfSxfcmVzZXRTaXplOmZ1bmN0aW9uKCl7dGhpcy4kZWwuc3R5bGUud2lkdGg9dGhpcy5vcmlnaW5hbFN0eWxlLndpZHRoLHRoaXMuJGVsLnN0eWxlLmhlaWdodD10aGlzLm9yaWdpbmFsU3R5bGUuaGVpZ2h0fSxfcmVzZXREYXRhOmZ1bmN0aW9uKCl7dGhpcy5vcmlnaW5hbFdpZHRoPTAsdGhpcy5vcmlnaW5hbEhlaWdodD0wLHRoaXMuY29udGVudFBhdGg9IiJ9LF9sb2FkSW1hZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy4kZ2V0UmVhbFBhdGgodGhpcy5zcmMpO2lmKGUpe3ZhciBuPXRoaXMuX2ltZz10aGlzLl9pbWd8fG5ldyBJbWFnZTtuLm9ubG9hZD1mdW5jdGlvbihyKXt0Ll9pbWc9bnVsbDt2YXIgaT10Lm9yaWdpbmFsV2lkdGg9bi53aWR0aCxhPXQub3JpZ2luYWxIZWlnaHQ9bi5oZWlnaHQ7dC5fZml4U2l6ZSgpLHQuY29udGVudFBhdGg9ZSxuLmRyYWdnYWJsZT10LmRyYWdnYWJsZSx0Ll9faW1nJiZ0Ll9faW1nLnJlbW92ZSgpLHQuX19pbWc9bix0LiRlbC5hcHBlbmRDaGlsZChuKSx0LiR0cmlnZ2VyKCJsb2FkIixyLHt3aWR0aDppLGhlaWdodDphfSl9LG4ub25lcnJvcj1mdW5jdGlvbihlKXt0Ll9pbWc9bnVsbCx0Ll9yZXNldERhdGEoKSx0LiR0cmlnZ2VyKCJlcnJvciIsZSx7ZXJyTXNnOiJHRVQgIi5jb25jYXQodC5zcmMsIiA0MDQgKE5vdCBGb3VuZCkiKX0pfSxuLnNyYz1lfWVsc2UgdGhpcy5fY2xlYXJJbWFnZSgpLHRoaXMuX3Jlc2V0RGF0YSgpfSxfY2xlYXJJbWFnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ltZzt0JiYodC5vbmxvYWQ9bnVsbCx0Lm9uZXJyb3I9bnVsbCx0aGlzLl9pbWc9bnVsbCl9fX07ZS5kZWZhdWx0PW99LCIyMGIxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCI4MWU4IiksaT17bmFtZToiQXN5bmNFcnJvciIsbWl4aW5zOltyLmkxOG5NaXhpbl0sbWV0aG9kczp7X29uQ2xpY2s6ZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9fX07ZS5kZWZhdWx0PWl9LCIyMTljIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImRhODQiKSxpPW4oIjQ2MjUiKSxhPW4oImQwMzkiKSxvPW4oIjU5ZWQiKSxzPW4oImFkZGIiKSxjPW4oImViYjUiKSx1PW4oIjA0ZDEiKSxsPW4oImQ5OTgiKSxmPW4oIjJkMDAiKSxkPW4oIjUxMmMiKSxoPWMuYVR5cGVkQXJyYXkscD1jLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Qsdj1yLlVpbnQxNkFycmF5LGc9diYmaSh2LnByb3RvdHlwZS5zb3J0KSxtPSEhZyYmIShhKChmdW5jdGlvbigpe2cobmV3IHYoMiksbnVsbCl9KSkmJmEoKGZ1bmN0aW9uKCl7ZyhuZXcgdigyKSx7fSl9KSkpLGI9ISFnJiYhYSgoZnVuY3Rpb24oKXtpZihmKXJldHVybiBmPDc0O2lmKHUpcmV0dXJuIHU8Njc7aWYobClyZXR1cm4hMDtpZihkKXJldHVybiBkPDYwMjt2YXIgdCxlLG49bmV3IHYoNTE2KSxyPUFycmF5KDUxNik7Zm9yKHQ9MDt0PDUxNjt0KyspZT10JTQsblt0XT01MTUtdCxyW3RdPXQtMiplKzM7Zm9yKGcobiwoZnVuY3Rpb24odCxlKXtyZXR1cm4odC80fDApLShlLzR8MCl9KSksdD0wO3Q8NTE2O3QrKylpZihuW3RdIT09clt0XSlyZXR1cm4hMH0pKTtwKCJzb3J0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQmJm8odCksYj9nKHRoaXMsdCk6cyhoKHRoaXMpLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiB2b2lkIDAhPT10Pyt0KGUsbil8fDA6biE9PW4/LTE6ZSE9PWU/MTowPT09ZSYmMD09PW4/MS9lPjAmJjEvbjwwPzE6LTE6ZT5ufX0odCkpfSksIWJ8fG0pfSwyMjY2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwMzY2IiksaT1uKCJjNjViIiksYT1uKCI4MjVhIiksbz1uKCIwZDUxIikscz1uKCJlOTVhIiksYz1uKCIwN2ZhIiksdT1uKCIzYTliIiksbD1uKCI5YTFmIiksZj1uKCIzNWExIiksZD1uKCIyYTYyIiksaD1UeXBlRXJyb3IscD1mdW5jdGlvbih0LGUpe3RoaXMuc3RvcHBlZD10LHRoaXMucmVzdWx0PWV9LHY9cC5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgZyxtLGIseSxfLHcseCxTPW4mJm4udGhhdCxUPSEoIW58fCFuLkFTX0VOVFJJRVMpLEM9ISghbnx8IW4uSVNfUkVDT1JEKSxrPSEoIW58fCFuLklTX0lURVJBVE9SKSxPPSEoIW58fCFuLklOVEVSUlVQVEVEKSxFPXIoZSxTKSxJPWZ1bmN0aW9uKHQpe3JldHVybiBnJiZkKGcsIm5vcm1hbCIsdCksbmV3IHAoITAsdCl9LFA9ZnVuY3Rpb24odCl7cmV0dXJuIFQ/KGEodCksTz9FKHRbMF0sdFsxXSxJKTpFKHRbMF0sdFsxXSkpOk8/RSh0LEkpOkUodCl9O2lmKEMpZz10Lml0ZXJhdG9yO2Vsc2UgaWYoaylnPXQ7ZWxzZXtpZihtPWYodCksIW0pdGhyb3cgaChvKHQpKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYocyhtKSl7Zm9yKGI9MCx5PWModCk7eT5iO2IrKylpZihfPVAodFtiXSksXyYmdSh2LF8pKXJldHVybiBfO3JldHVybiBuZXcgcCghMSl9Zz1sKHQsbSl9dz1DP3QubmV4dDpnLm5leHQ7d2hpbGUoISh4PWkodyxnKSkuZG9uZSl7dHJ5e189UCh4LnZhbHVlKX1jYXRjaChNKXtkKGcsInRocm93IixNKX1pZigib2JqZWN0Ij09dHlwZW9mIF8mJl8mJnUodixfKSlyZXR1cm4gX31yZXR1cm4gbmV3IHAoITEpfX0sMjM5ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuRWRpdG9yQ29udGV4dD12b2lkIDAsbigiZDNiNyIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPW4oImRiNmEiKTtmdW5jdGlvbiBzKGUsbixyLGkpe3QucHVibGlzaEhhbmRsZXIobisiLWVkaXRvci0iK2Use2NvbXBvbmVudElkOmUsdHlwZTpyLGRhdGE6aX0sbil9dC5zdWJzY3JpYmUoIm9uRWRpdG9yTWV0aG9kQ2FsbGJhY2siLChmdW5jdGlvbih0KXt2YXIgZT10LmNhbGxiYWNrSWQsbj10LmRhdGE7by5jYWxsYmFjay5pbnZva2UoZSxuKX0pKTt2YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5pZD1lLHRoaXMucGFnZUlkPW59cmV0dXJuKDAsYS5kZWZhdWx0KSh0LFt7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cyh0aGlzLmlkLHRoaXMucGFnZUlkLCJmb3JtYXQiLHtvcHRpb25zOntuYW1lOnQsdmFsdWU6ZX19KX19XSksdH0oKTtlLkVkaXRvckNvbnRleHQ9YyxbImluc2VydERpdmlkZXIiLCJpbnNlcnRJbWFnZSIsImluc2VydFRleHQiLCJzZXRDb250ZW50cyIsImdldENvbnRlbnRzIiwiY2xlYXIiLCJyZW1vdmVGb3JtYXQiLCJ1bmRvIiwicmVkbyIsImJsdXIiLCJnZXRTZWxlY3Rpb25UZXh0Iiwic2Nyb2xsSW50b1ZpZXciXS5mb3JFYWNoKChmdW5jdGlvbih0KXtjLnByb3RvdHlwZVt0XT1vLmNhbGxiYWNrLndhcnAoKGZ1bmN0aW9uKGUsbil7cyh0aGlzLmlkLHRoaXMucGFnZUlkLHQse29wdGlvbnM6ZSxjYWxsYmFja0lkOm59KX0pKX0pKX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMjNjYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjU5MjYiKSxpPU1hdGgubWF4LGE9TWF0aC5taW47dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49cih0KTtyZXR1cm4gbjwwP2kobitlLDApOmEobixlKX19LCIyM2RjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDQ0ZSIpO3IoTWF0aCwiTWF0aCIsITApfSwiMjNlNyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oIjA2Y2YiKS5mLGE9bigiOTExMiIpLG89bigiY2IyZCIpLHM9bigiNjM3NCIpLGM9bigiZTg5MyIpLHU9bigiOTRjYSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLGwsZixkLGgscCx2PXQudGFyZ2V0LGc9dC5nbG9iYWwsbT10LnN0YXQ7aWYobD1nP3I6bT9yW3ZdfHxzKHYse30pOihyW3ZdfHx7fSkucHJvdG90eXBlLGwpZm9yKGYgaW4gZSl7aWYoaD1lW2ZdLHQuZG9udENhbGxHZXRTZXQ/KHA9aShsLGYpLGQ9cCYmcC52YWx1ZSk6ZD1sW2ZdLG49dShnP2Y6disobT8iLiI6IiMiKStmLHQuZm9yY2VkKSwhbiYmdm9pZCAwIT09ZCl7aWYodHlwZW9mIGg9PXR5cGVvZiBkKWNvbnRpbnVlO2MoaCxkKX0odC5zaGFtfHxkJiZkLnNoYW0pJiZhKGgsInNoYW0iLCEwKSxvKGwsZixoLHQpfX19LDI0MTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEN1cnJlbnRQYWdlSWQ9ZnVuY3Rpb24oKXt2YXIgdD1nZXRDdXJyZW50UGFnZXMoKSxlPXRbdC5sZW5ndGgtMV07cmV0dXJuIGUmJmUuJHBhZ2UuaWR9LGUuZ2V0Q3VycmVudFBhZ2VWbT1mdW5jdGlvbihlKXt2YXIgbj1nZXRDdXJyZW50UGFnZXMoKSxyPW4ubGVuZ3RoO3J8fHQuZW1pdCgib25FcnJvciIsIiIuY29uY2F0KGUsIjpmYWlsIikpO3ZhciBpPW5bci0xXTtyZXR1cm4gaS4kdm19LGUuaW52b2tlTWV0aG9kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCkscj0xO3I8ZTtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gaS5kZWZhdWx0W3RdLmFwcGx5KG51bGwsbil9LGUub25NZXRob2Q9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5vbigiYXBpLiIrZSxuKX07dmFyIGk9cihuKCJiMDFiIikpfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCIyNDFjIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiY2E4NCIpLGk9bigiNzgzOSIpLGE9aS5jb25jYXQoImxlbmd0aCIsInByb3RvdHlwZSIpO2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7cmV0dXJuIHIodCxhKX19LDI0NTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOTE3ZiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sIjI0ZmIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKChmdW5jdGlvbihlKXt2YXIgbj1mdW5jdGlvbih0LGUpe3ZhciBuPXRbMV18fCIiLHI9dFszXTtpZighcilyZXR1cm4gbjtpZihlJiYiZnVuY3Rpb24iPT09dHlwZW9mIGJ0b2Epe3ZhciBpPWZ1bmN0aW9uKHQpe3ZhciBlPWJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHQpKSkpLG49InNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIuY29uY2F0KGUpO3JldHVybiIvKiMgIi5jb25jYXQobiwiICovIil9KHIpLGE9ci5zb3VyY2VzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIi8qIyBzb3VyY2VVUkw9Ii5jb25jYXQoci5zb3VyY2VSb290fHwiIikuY29uY2F0KHQsIiAqLyIpfSkpO3JldHVybltuXS5jb25jYXQoYSkuY29uY2F0KFtpXSkuam9pbigiXG4iKX1yZXR1cm5bbl0uam9pbigiXG4iKX0oZSx0KTtyZXR1cm4gZVsyXT8iQG1lZGlhICIuY29uY2F0KGVbMl0sIiB7IikuY29uY2F0KG4sIn0iKTpufSkpLmpvaW4oIiIpfSxlLmk9ZnVuY3Rpb24odCxuLHIpeyJzdHJpbmciPT09dHlwZW9mIHQmJih0PVtbbnVsbCx0LCIiXV0pO3ZhciBpPXt9O2lmKHIpZm9yKHZhciBhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciBvPXRoaXNbYV1bMF07bnVsbCE9byYmKGlbb109ITApfWZvcih2YXIgcz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgYz1bXS5jb25jYXQodFtzXSk7ciYmaVtjWzBdXXx8KG4mJihjWzJdP2NbMl09IiIuY29uY2F0KG4sIiBhbmQgIikuY29uY2F0KGNbMl0pOmNbMl09biksZS5wdXNoKGMpKX19LGV9fSwyNTI2OmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVuaS5hcHAucXVpdCI6IuWGjeaMieS4gOasoemAgOWHuuaHieeUqCIsInVuaS5hc3luYy5lcnJvciI6IumAo+aOpeacjeWLmeWZqOi2heaZgu+8jOm7nuaTiuWxj+W5lemHjeippiIsInVuaS5zaG93QWN0aW9uU2hlZXQuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dUb2FzdC51bnBhaXJlZCI6Iuiri+azqOaEjyBzaG93VG9hc3Qg6IiHIGhpZGVUb2FzdCDlv4XpoIjphY3lsI3kvb/nlKgiLCJ1bmkuc2hvd0xvYWRpbmcudW5wYWlyZWQiOiLoq4vms6jmhI8gc2hvd0xvYWRpbmcg6IiHIGhpZGVMb2FkaW5nIOW/hemgiOmFjeWwjeS9v+eUqCIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoi56K65a6aIiwidW5pLmNob29zZUltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoi5b6e55u45YaK6YG45pOHIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pSdIiwidW5pLmNob29zZVZpZGVvLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VWaWRlby5zb3VyY2VUeXBlLmFsYnVtIjoi5b6e55u45YaK6YG45pOHIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pSdIiwidW5pLmNob29zZUZpbGUubm90VXNlckFjdGl2YXRpb24iOiLmlofku7bpgbjmk4flmajlsI3oqbHmoYblj6rog73lnKjnlLHnlKjmiLbmv4DmtLvmmYLpoa/npLoiLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiLkv53lrZjlnJblg48iLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuc3VjY2VzcyI6IuS/neWtmOWcluWDj+WIsOebuOWGiuaIkOWKnyIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5mYWlsIjoi5L+d5a2Y5ZyW5YOP5Yiw55u45YaK5aSx5pWXIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IuWFp+WuueW3suW+qeWItiIsInVuaS5zY2FuQ29kZS50aXRsZSI6IuaOg+eivCIsInVuaS5zY2FuQ29kZS5hbGJ1bSI6IuebuOWGiiIsInVuaS5zY2FuQ29kZS5mYWlsIjoi6K2Y5Yil5aSx5pWXIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9uIjoi6LyV6Ke454Wn5LquIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9mZiI6Iui8leinuOmXnOmWiSIsInVuaS5zdGFydFNvdGVyQXV0aGVudGljYXRpb24uYXV0aENvbnRlbnQiOiLmjIfntIvorZjliKXkuK0uLi4iLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50Ijoi54Sh5rOV6K2Y5YilIiwidW5pLnBpY2tlci5kb25lIjoi5a6M5oiQIiwidW5pLnBpY2tlci5jYW5jZWwiOiLlj5bmtogiLCJ1bmkudmlkZW8uZGFubXUiOiLlvYjluZUiLCJ1bmkudmlkZW8udm9sdW1lIjoi6Z+z6YePIiwidW5pLmJ1dHRvbi5mZWVkYmFjay50aXRsZSI6IuWVj+mhjOWPjemliyIsInVuaS5idXR0b24uZmVlZGJhY2suc2VuZCI6IueZvOmAgSIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiLmkJzntKLlnLDpu54iLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoi5Y+W5raIIn0nKX0sMjUzMjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImUzMzAiKSxhPW4oIjVhMzQiKSxvPW4oIjFkODAiKSxzPW4oIjU3N2UiKSxjPW4oImFiMTMiKSx1PWkoIiIuaW5kZXhPZik7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohYygiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiEhfnUocyhvKHRoaXMpKSxzKGEodCkpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sIjI1YTEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiZDU4ZiIpLnJpZ2h0LGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtvKCJyZWR1Y2VSaWdodCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGkoYSh0aGlzKSx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSwiMjVmMCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1ZTc3IikuUFJPUEVSLGk9bigiY2IyZCIpLGE9bigiODI1YSIpLG89bigiNTc3ZSIpLHM9bigiZDAzOSIpLGM9bigiOTBkOCIpLHU9UmVnRXhwLnByb3RvdHlwZSxsPXVbInRvU3RyaW5nIl0sZj1zKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bC5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSkpLGQ9ciYmInRvU3RyaW5nIiE9bC5uYW1lOyhmfHxkKSYmaShSZWdFeHAucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7dmFyIHQ9YSh0aGlzKSxlPW8odC5zb3VyY2UpLG49byhjKHQpKTtyZXR1cm4iLyIrZSsiLyIrbn0pLHt1bnNhZmU6ITB9KX0sMjYyNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImQwNjYiKSxpPW4oIjliZjIiKSxhPW4oImI2MjIiKSxvPW4oIjgzYWIiKSxzPWEoInNwZWNpZXMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cih0KSxuPWkuZjtvJiZlJiYhZVtzXSYmbihlLHMse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19LCIyNjZlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIiksbigiYzk3NSIpLG4oIjk5YWYiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImI2NGIiKTtuKCI4MWU4Iik7dmFyIHI9bigiOTg3ZCIpLGk9e25hbWU6IkJ1dHRvbiIsbWl4aW5zOltyLmhvdmVyLHIuZW1pdHRlcixyLmxpc3RlbmVyc10scHJvcHM6e2hvdmVyQ2xhc3M6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImJ1dHRvbi1ob3ZlciJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0saWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGhvdmVyU3RvcFByb3BhZ2F0aW9uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saG92ZXJTdGFydFRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MjB9LGhvdmVyU3RheVRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NzB9LGZvcm1UeXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5+WyIiLCJzdWJtaXQiLCJyZXNldCJdLmluZGV4T2YodCl9fSxvcGVuVHlwZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y2xpY2tGdW5jdGlvbjpudWxsfX0sbWV0aG9kczp7X29uQ2xpY2s6ZnVuY3Rpb24odCxlKXt0aGlzLmRpc2FibGVkfHwoZSYmdGhpcy4kZWwuY2xpY2soKSx0aGlzLmZvcm1UeXBlP3RoaXMuJGRpc3BhdGNoKCJGb3JtIiwic3VibWl0Ij09PXRoaXMuZm9ybVR5cGU/InVuaS1mb3JtLXN1Ym1pdCI6InVuaS1mb3JtLXJlc2V0Iix7dHlwZTp0aGlzLmZvcm1UeXBlfSk6dGhpcy5vcGVuVHlwZSl9LF9iaW5kT2JqZWN0TGlzdGVuZXJzOmZ1bmN0aW9uKHQsZSl7aWYoZSlmb3IodmFyIG4gaW4gZSl7dmFyIHI9dC5vbltuXSxpPWVbbl07dC5vbltuXT1yP1tdLmNvbmNhdChyLGkpOml9cmV0dXJuIHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHRoaXMuJGxpc3RlbmVycyYmT2JqZWN0LmtleXModGhpcy4kbGlzdGVuZXJzKS5mb3JFYWNoKChmdW5jdGlvbih0KXsoIWUuZGlzYWJsZWR8fCJjbGljayIhPT10JiYidGFwIiE9PXQpJiYoblt0XT1lLiRsaXN0ZW5lcnNbdF0pfSkpLHRoaXMuaG92ZXJDbGFzcyYmIm5vbmUiIT09dGhpcy5ob3ZlckNsYXNzP3QoInVuaS1idXR0b24iLHRoaXMuX2JpbmRPYmplY3RMaXN0ZW5lcnMoe2NsYXNzOlt0aGlzLmhvdmVyaW5nP3RoaXMuaG92ZXJDbGFzczoiIl0sYXR0cnM6e2Rpc2FibGVkOnRoaXMuZGlzYWJsZWR9LG9uOnt0b3VjaHN0YXJ0OnRoaXMuX2hvdmVyVG91Y2hTdGFydCx0b3VjaGVuZDp0aGlzLl9ob3ZlclRvdWNoRW5kLHRvdWNoY2FuY2VsOnRoaXMuX2hvdmVyVG91Y2hDYW5jZWwsbW91c2Vkb3duOnRoaXMuX2hvdmVyTW91c2Vkb3duLG1vdXNldXA6dGhpcy5faG92ZXJNb3VzZXVwLGNsaWNrOnRoaXMuX29uQ2xpY2t9fSxuKSx0aGlzLiRzbG90cy5kZWZhdWx0KTp0KCJ1bmktYnV0dG9uIix0aGlzLl9iaW5kT2JqZWN0TGlzdGVuZXJzKHtjbGFzczpbdGhpcy5ob3ZlcmluZz90aGlzLmhvdmVyQ2xhc3M6IiJdLGF0dHJzOntkaXNhYmxlZDp0aGlzLmRpc2FibGVkfSxvbjp7Y2xpY2s6dGhpcy5fb25DbGlja319LG4pLHRoaXMuJHNsb3RzLmRlZmF1bHQpfSxsaXN0ZW5lcnM6eyJsYWJlbC1jbGljayI6Il9vbkNsaWNrIiwiQGxhYmVsLWNsaWNrIjoiX29uQ2xpY2sifX07ZS5kZWZhdWx0PWl9LCIyNmU5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImUzMzAiKSxhPW4oImU4YjUiKSxvPWkoW10ucmV2ZXJzZSkscz1bMSwyXTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6U3RyaW5nKHMpPT09U3RyaW5nKHMucmV2ZXJzZSgpKX0se3JldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKSYmKHRoaXMubGVuZ3RoPXRoaXMubGVuZ3RoKSxvKHRoaXMpfX0pfSwyODYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5oaWRlTG9hZGluZz1mdW5jdGlvbigpe3JldHVybiBpKCJvbkhpZGVMb2FkaW5nIikse319LGUuaGlkZVRvYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIGkoIm9uSGlkZVRvYXN0Iikse319LGUuc2hvd0FjdGlvblNoZWV0PWZ1bmN0aW9uKHQsZSl7aSgib25TaG93QWN0aW9uU2hlZXQiLHQsKGZ1bmN0aW9uKHQpe2EoZSwtMT09PXQ/e2Vyck1zZzoic2hvd0FjdGlvblNoZWV0OmZhaWwgY2FuY2VsIn06e3RhcEluZGV4OnR9KX0pKX0sZS5zaG93TG9hZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gaSgib25TaG93TG9hZGluZyIsdCkse319LGUuc2hvd01vZGFsPWZ1bmN0aW9uKHQsZSl7aSgib25TaG93TW9kYWwiLHQsKGZ1bmN0aW9uKHQpe2EoZSx0KX0pKX0sZS5zaG93VG9hc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGkoIm9uU2hvd1RvYXN0Iix0KSx7fX07dmFyIHI9dCxpPXIuZW1pdCxhPXIuaW52b2tlQ2FsbGJhY2tIYW5kbGVyfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCIyODliIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiByKHQsZSxuKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LmNoYW5nZWRUb3VjaGVzKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkZW50aWZpZXI9PT1lfSkpWzBdO3JldHVybiEhciYmKHQuZGVsdGFZPXIucGFnZVktbiwhMCl9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oIjRkZTQiKSxuKCJkM2I3IiksbigiZmI2YSIpLG4oImM5NzUiKTt2YXIgaT0iYWJvcnRpbmciLGE9InJlZnJlc2hpbmciLG89InJlc3RvcmluZyIscz17bW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5lbmFibGVQdWxsRG93blJlZnJlc2gmJih0aGlzLnJlZnJlc2hDb250YWluZXJFbGVtPXRoaXMuJHJlZnMucmVmcmVzaC4kZWwsdGhpcy5yZWZyZXNoQ29udHJvbGxlckVsZW09dGhpcy5yZWZyZXNoQ29udGFpbmVyRWxlbS5xdWVyeVNlbGVjdG9yKCIudW5pLXBhZ2UtcmVmcmVzaCIpLHRoaXMucmVmcmVzaElubmVyRWxlbVN0eWxlPXRoaXMucmVmcmVzaENvbnRyb2xsZXJFbGVtLnF1ZXJ5U2VsZWN0b3IoIi51bmktcGFnZS1yZWZyZXNoLWlubmVyIikuc3R5bGUsdC5vbih0aGlzLiRyb3V0ZS5wYXJhbXMuX19pZF9fKyIuc3RhcnRQdWxsRG93blJlZnJlc2giLChmdW5jdGlvbigpe2Uuc3RhdGV8fChlLnN0YXRlPWEsZS5fYWRkQ2xhc3MoKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuX3JlZnJlc2hpbmcoKX0pLDUwKSl9KSksdC5vbih0aGlzLiRyb3V0ZS5wYXJhbXMuX19pZF9fKyIuc3RvcFB1bGxEb3duUmVmcmVzaCIsKGZ1bmN0aW9uKCl7ZS5zdGF0ZT09PWEmJihlLl9yZW1vdmVDbGFzcygpLGUuc3RhdGU9byxlLl9hZGRDbGFzcygpLGUuX3Jlc3RvcmluZygoZnVuY3Rpb24oKXtlLl9yZW1vdmVDbGFzcygpLGUuc3RhdGU9ZS5kaXN0YW5jZT1lLm9mZnNldD1udWxsfSkpKX0pKSl9LG1ldGhvZHM6e190b3VjaHN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hhbmdlZFRvdWNoZXNbMF07dGhpcy50b3VjaElkPWUuaWRlbnRpZmllcix0aGlzLnN0YXJ0WT1lLnBhZ2VZLFtpLGEsb10uaW5kZXhPZih0aGlzLnN0YXRlKT49MD90aGlzLmNhblJlZnJlc2g9ITE6dGhpcy5jYW5SZWZyZXNoPSEwfSxfdG91Y2htb3ZlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVmcmVzaCYmcih0LHRoaXMudG91Y2hJZCx0aGlzLnN0YXJ0WSkpe3ZhciBlPXQuZGVsdGFZO2lmKDA9PT0oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApKXtpZighKGU8MCl8fHRoaXMuc3RhdGUpe3QucHJldmVudERlZmF1bHQoKSxudWxsPT10aGlzLmRpc3RhbmNlJiYodGhpcy5vZmZzZXQ9ZSx0aGlzLnN0YXRlPSJwdWxsaW5nIix0aGlzLl9hZGRDbGFzcygpKSxlLT10aGlzLm9mZnNldCxlPDAmJihlPTApLHRoaXMuZGlzdGFuY2U9ZTt2YXIgbj1lPj10aGlzLnJlZnJlc2hPcHRpb25zLnJhbmdlJiYicmVhY2hlZCIhPT10aGlzLnN0YXRlLGk9ZTx0aGlzLnJlZnJlc2hPcHRpb25zLnJhbmdlJiYicHVsbGluZyIhPT10aGlzLnN0YXRlOyhufHxpKSYmKHRoaXMuX3JlbW92ZUNsYXNzKCksdGhpcy5zdGF0ZT0icmVhY2hlZCI9PT10aGlzLnN0YXRlPyJwdWxsaW5nIjoicmVhY2hlZCIsdGhpcy5fYWRkQ2xhc3MoKSksdGhpcy5fcHVsbGluZyhlKX19ZWxzZSB0aGlzLnRvdWNoSWQ9bnVsbH19LF90b3VjaGVuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3IodCx0aGlzLnRvdWNoSWQsdGhpcy5zdGFydFkpJiZudWxsIT09dGhpcy5zdGF0ZSYmKCJwdWxsaW5nIj09PXRoaXMuc3RhdGU/KHRoaXMuX3JlbW92ZUNsYXNzKCksdGhpcy5zdGF0ZT1pLHRoaXMuX2FkZENsYXNzKCksdGhpcy5fYWJvcnRpbmcoKGZ1bmN0aW9uKCl7ZS5fcmVtb3ZlQ2xhc3MoKSxlLnN0YXRlPWUuZGlzdGFuY2U9ZS5vZmZzZXQ9bnVsbH0pKSk6InJlYWNoZWQiPT09dGhpcy5zdGF0ZSYmKHRoaXMuX3JlbW92ZUNsYXNzKCksdGhpcy5zdGF0ZT1hLHRoaXMuX2FkZENsYXNzKCksdGhpcy5fcmVmcmVzaGluZygpKSl9LF90b2dnbGVDbGFzczpmdW5jdGlvbih0KXtpZih0aGlzLnN0YXRlKXt2YXIgZT10aGlzLnJlZnJlc2hDb250YWluZXJFbGVtO2UmJmUuY2xhc3NMaXN0W3RdKCJ1bmktcGFnZS1yZWZyZXNoLS0iK3RoaXMuc3RhdGUpfX0sX2FkZENsYXNzOmZ1bmN0aW9uKCl7dGhpcy5fdG9nZ2xlQ2xhc3MoImFkZCIpfSxfcmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oKXt0aGlzLl90b2dnbGVDbGFzcygicmVtb3ZlIil9LF9wdWxsaW5nOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmVmcmVzaENvbnRyb2xsZXJFbGVtO2lmKGUpe3ZhciBuPWUuc3R5bGUscj10L3RoaXMucmVmcmVzaE9wdGlvbnMucmFuZ2U7cj4xP3I9MTpyKj1yKnI7dmFyIGk9TWF0aC5yb3VuZCh0Lyh0aGlzLnJlZnJlc2hPcHRpb25zLnJhbmdlL3RoaXMucmVmcmVzaE9wdGlvbnMuaGVpZ2h0KSksYT1pPyJ0cmFuc2xhdGUzZCgtNTAlLCAiK2krInB4LCAwKSI6MDtuLndlYmtpdFRyYW5zZm9ybT1hLG4uY2xpcD0icmVjdCgiKyg0NS1pKSsicHgsNDVweCw0NXB4LC01cHgpIix0aGlzLnJlZnJlc2hJbm5lckVsZW1TdHlsZS53ZWJraXRUcmFuc2Zvcm09InJvdGF0ZSgiKzM2MCpyKyJkZWcpIn19LF9hYm9ydGluZzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnJlZnJlc2hDb250cm9sbGVyRWxlbTtpZihlKXt2YXIgbj1lLnN0eWxlO2lmKG4ud2Via2l0VHJhbnNmb3JtKXtuLndlYmtpdFRyYW5zaXRpb249Ii13ZWJraXQtdHJhbnNmb3JtIDAuM3MiLG4ud2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKSI7dmFyIHI9ZnVuY3Rpb24gcigpe2kmJmNsZWFyVGltZW91dChpKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHIpLG4ud2Via2l0VHJhbnNpdGlvbj0iIix0KCl9O2UuYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIscik7dmFyIGk9c2V0VGltZW91dChyLDM1MCl9ZWxzZSB0KCl9fSxfcmVmcmVzaGluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVmcmVzaENvbnRyb2xsZXJFbGVtO2lmKGUpe3ZhciBuPWUuc3R5bGU7bi53ZWJraXRUcmFuc2l0aW9uPSItd2Via2l0LXRyYW5zZm9ybSAwLjJzIixuLndlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlM2QoLTUwJSwgIit0aGlzLnJlZnJlc2hPcHRpb25zLmhlaWdodCsicHgsIDApIix0LmVtaXQoIm9uUHVsbERvd25SZWZyZXNoIix7fSx0aGlzLiRyb3V0ZS5wYXJhbXMuX19pZF9fKX19LF9yZXN0b3Jpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5yZWZyZXNoQ29udHJvbGxlckVsZW07aWYoZSl7dmFyIG49ZS5zdHlsZTtuLndlYmtpdFRyYW5zaXRpb249Ii13ZWJraXQtdHJhbnNmb3JtIDAuM3MiLG4ud2Via2l0VHJhbnNmb3JtKz0iIHNjYWxlKDAuMDEpIjt2YXIgcj1mdW5jdGlvbiByKCl7aSYmY2xlYXJUaW1lb3V0KGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsciksbi53ZWJraXRUcmFuc2l0aW9uPSIiLG4ud2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKSIsdCgpfTtlLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHIpO3ZhciBpPXNldFRpbWVvdXQociwzNTApfX19fTtlLmRlZmF1bHQ9c30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwyOTA5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7cmV0dXJuKDAsci5kZWZhdWx0KSh0KXx8KDAsaS5kZWZhdWx0KSh0KXx8KDAsYS5kZWZhdWx0KSh0KXx8KDAsby5kZWZhdWx0KSgpfTt2YXIgcj1zKG4oIjYwMDUiKSksaT1zKG4oImRiOTAiKSksYT1zKG4oIjA2YzUiKSksbz1zKG4oIjM0MjciKSk7ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19fSwyOTU0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYjZiNyIpLGE9bigiZDAzOSIpLG89bigiZjM2YSIpLHM9ci5hVHlwZWRBcnJheSxjPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCx1PWEoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpO2MoInNsaWNlIiwoZnVuY3Rpb24odCxlKXt2YXIgbj1vKHModGhpcyksdCxlKSxyPWkodGhpcyksYT0wLGM9bi5sZW5ndGgsdT1uZXcgcihjKTt3aGlsZShjPmEpdVthXT1uW2ErK107cmV0dXJuIHV9KSx1KX0sIjJhNjIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCI4MjVhIiksYT1uKCJkYzRhIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbyxzO2kodCk7dHJ5e2lmKG89YSh0LCJyZXR1cm4iKSwhbyl7aWYoInRocm93Ij09PWUpdGhyb3cgbjtyZXR1cm4gbn1vPXIobyx0KX1jYXRjaChjKXtzPSEwLG89Y31pZigidGhyb3ciPT09ZSl0aHJvdyBuO2lmKHMpdGhyb3cgbztyZXR1cm4gaShvKSxufX0sIjJhYmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNhbklVc2U9ZnVuY3Rpb24odCl7aWYoKDAsaS5oYXNPd24pKGEuZGVmYXVsdCx0KSlyZXR1cm4gYS5kZWZhdWx0W3RdO2lmKCgwLGkuaGFzT3duKShvLmRlZmF1bHQsdCkpcmV0dXJuITA7cmV0dXJuITF9O3ZhciBpPW4oImRiNmEiKSxhPXIobigiMmVlMiIpKSxvPXIobigiODMzMCIpKX0sIjJiM2QiOmZ1bmN0aW9uKHQsZSxuKXtuKCI0MDAyIil9LCIyYmE0IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNDBkNSIpLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9aS5hcHBseSxvPWkuY2FsbDt0LmV4cG9ydHM9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmFwcGx5fHwocj9vLmJpbmQoYSk6ZnVuY3Rpb24oKXtyZXR1cm4gby5hcHBseShhLGFyZ3VtZW50cyl9KX0sIjJjMjciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjkxMmYiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCIyYzNlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiOWY3ZiIpLk1JU1NFRF9TVElDS1ksYT1uKCJjNmI2Iiksbz1uKCJlZGQwIikscz1uKCI2OWYzIikuZ2V0LGM9UmVnRXhwLnByb3RvdHlwZSx1PVR5cGVFcnJvcjtyJiZpJiZvKGMsInN0aWNreSIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZih0aGlzIT09Yyl7aWYoIlJlZ0V4cCI9PT1hKHRoaXMpKXJldHVybiEhcyh0aGlzKS5zdGlja3k7dGhyb3cgdSgiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCBSZWdFeHAgcmVxdWlyZWQiKX19fSl9LCIyY2EwIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjQ2MjUiKSxhPW4oIjA2Y2YiKS5mLG89bigiNTBjNCIpLHM9bigiNTc3ZSIpLGM9bigiNWEzNCIpLHU9bigiMWQ4MCIpLGw9bigiYWIxMyIpLGY9bigiYzQzMCIpLGQ9aSgiIi5zdGFydHNXaXRoKSxoPWkoIiIuc2xpY2UpLHA9TWF0aC5taW4sdj1sKCJzdGFydHNXaXRoIiksZz0hZiYmIXYmJiEhZnVuY3Rpb24oKXt2YXIgdD1hKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKTtyZXR1cm4gdCYmIXQud3JpdGFibGV9KCk7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohZyYmIXZ9LHtzdGFydHNXaXRoOmZ1bmN0aW9uKHQpe3ZhciBlPXModSh0aGlzKSk7Yyh0KTt2YXIgbj1vKHAoYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsZS5sZW5ndGgpKSxyPXModCk7cmV0dXJuIGQ/ZChlLHIsbik6aChlLG4sbityLmxlbmd0aCk9PT1yfX0pfSwiMmNhMyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuaW5pdEV2ZW50cz1mdW5jdGlvbigpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixnLGYpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLG0sZiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixoLGYpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsaCxmKX0sZS5wcm9jZXNzRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LHI9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnt9O2lmKGUuX3Byb2Nlc3NlZClyZXR1cm4gZS50eXBlPW4udHlwZXx8dCxlO2lmKCJjbGljayI9PT10KXt2YXIgYT0oMCxzLmRlZmF1bHQpKCksZj1hLnRvcDtuPXt4OmUueCx5OmUueS1mfSxlLnRvdWNoZXM9ZS5jaGFuZ2VkVG91Y2hlcz1be2ZvcmNlOjEsaWRlbnRpZmllcjowLGNsaWVudFg6ZS5jbGllbnRYLGNsaWVudFk6ZS5jbGllbnRZLHBhZ2VYOmUucGFnZVgscGFnZVk6ZS5wYWdlWX1dfXZhciBkPSgwLG8ud3JhcHBlck1QRXZlbnQpKHt0eXBlOm4udHlwZXx8dCx0aW1lU3RhbXA6ZS50aW1lU3RhbXB8fDAsZGV0YWlsOm4sdGFyZ2V0OmMocixuKSxjdXJyZW50VGFyZ2V0OmMoaSwhMSwhMCksdG91Y2hlczplIGluc3RhbmNlb2YgRXZlbnR8fGUgaW5zdGFuY2VvZiBDdXN0b21FdmVudD91KGUudG91Y2hlcyk6ZS50b3VjaGVzLGNoYW5nZWRUb3VjaGVzOmUgaW5zdGFuY2VvZiBFdmVudHx8ZSBpbnN0YW5jZW9mIEN1c3RvbUV2ZW50P3UoZS5jaGFuZ2VkVG91Y2hlcyk6ZS5jaGFuZ2VkVG91Y2hlcyxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe30sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7fX0pO2lmKGwodCkpe3ZhciBoPSgwLHMuZGVmYXVsdCkoKSxwPWgudG9wO2QucGFnZVg9ZS5wYWdlWCxkLnBhZ2VZPWUucGFnZVktcCxkLmNsaWVudFg9ZS5jbGllbnRYLGQuY2xpZW50WT1lLmNsaWVudFktcH0wO3JldHVybiBkfSxuKCIxNGQ5IiksbigiMmNhMCIpLG4oImNhYWQiKTt2YXIgaT1uKCJkYjZhIiksYT1uKCJmNGYwIiksbz1uKCI2MGY2Iikscz1yKG4oIjRmY2IiKSk7ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPXtpZDp0LmlkLG9mZnNldExlZnQ6dC5vZmZzZXRMZWZ0LG9mZnNldFRvcDp0Lm9mZnNldFRvcCxkYXRhc2V0OigwLGEuZ2V0VGFyZ2V0RGF0YXNldCkodCl9O3JldHVybiBlJiZPYmplY3QuYXNzaWduKG4sZSksbn1mdW5jdGlvbiB1KHQpe2lmKHQpe2Zvcih2YXIgZT1bXSxuPSgwLHMuZGVmYXVsdCkoKSxyPW4udG9wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTtlLnB1c2goe2lkZW50aWZpZXI6YS5pZGVudGlmaWVyLHBhZ2VYOmEucGFnZVgscGFnZVk6YS5wYWdlWS1yLGNsaWVudFg6YS5jbGllbnRYLGNsaWVudFk6YS5jbGllbnRZLXIsZm9yY2U6YS5mb3JjZXx8MH0pfXJldHVybiBlfXJldHVybltdfWZ1bmN0aW9uIGwodCl7cmV0dXJuIHQuc3RhcnRzV2l0aCgibW91c2UiKXx8WyJjb250ZXh0bWVudSJdLmluY2x1ZGVzKHQpfXZhciBmPSEhaS5zdXBwb3J0c1Bhc3NpdmUmJntwYXNzaXZlOiEwfSxkPSExO2Z1bmN0aW9uIGgoKXtkJiYoY2xlYXJUaW1lb3V0KGQpLGQ9ITEpfXZhciBwPTAsdj0wO2Z1bmN0aW9uIGcodCl7aWYoaCgpLDE9PT10LnRvdWNoZXMubGVuZ3RoKXt2YXIgZT10LnRvdWNoZXNbMF0sbj1lLnBhZ2VYLHI9ZS5wYWdlWTtwPW4sdj1yLGQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgZT1uZXcgQ3VzdG9tRXZlbnQoImxvbmdwcmVzcyIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx0YXJnZXQ6dC50YXJnZXQsY3VycmVudFRhcmdldDp0LmN1cnJlbnRUYXJnZXR9KTtlLnRvdWNoZXM9dC50b3VjaGVzLGUuY2hhbmdlZFRvdWNoZXM9dC5jaGFuZ2VkVG91Y2hlcyx0LnRhcmdldC5kaXNwYXRjaEV2ZW50KGUpfSksMzUwKX19ZnVuY3Rpb24gbSh0KXtpZihkKXtpZigxIT09dC50b3VjaGVzLmxlbmd0aClyZXR1cm4gaCgpO3ZhciBlPXQudG91Y2hlc1swXSxuPWUucGFnZVgscj1lLnBhZ2VZO3JldHVybiBNYXRoLmFicyhuLXApPjEwfHxNYXRoLmFicyhyLXYpPjEwP2goKTp2b2lkIDB9fX0sIjJjZWEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlLG4pe3ZhciByPWVbdF0saT0hKDAsYS5oYXNPd24pKG4sdCksbz1uW3RdLGM9ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdShlLHQpPzA6LTE7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKHUoZVtuXSx0KSlyZXR1cm4gbjtyZXR1cm4tMX0oQm9vbGVhbixyLnR5cGUpO2M+LTEmJmkmJiEoMCxhLmhhc093bikociwiZGVmYXVsdCIpJiYobz0hMSk7aWYodm9pZCAwPT09byYmKDAsYS5oYXNPd24pKHIsImRlZmF1bHQiKSl7dmFyIGY9ci5kZWZhdWx0O289KDAsYS5pc0ZuKShmKT9mKCk6ZixuW3RdPW99cmV0dXJuIGZ1bmN0aW9uKHQsZSxuLHIsaSl7aWYodC5yZXF1aXJlZCYmcilyZXR1cm4iTWlzc2luZyByZXF1aXJlZCBwYXJhbWV0ZXIgYCIuY29uY2F0KGUsImAiKTtpZihudWxsPT1uJiYhdC5yZXF1aXJlZCl7dmFyIG89dC52YWxpZGF0b3I7cmV0dXJuIG8/byhuLGkpOnZvaWQgMH12YXIgYz10LnR5cGUsdT0hY3x8ITA9PT1jLGY9W107aWYoYyl7QXJyYXkuaXNBcnJheShjKXx8KGM9W2NdKTtmb3IodmFyIGg9MDtoPGMubGVuZ3RoJiYhdTtoKyspe3ZhciBwPXMobixjW2hdKTtmLnB1c2gocC5leHBlY3RlZFR5cGV8fCIiKSx1PXAudmFsaWR9fWlmKCF1KXJldHVybiBmdW5jdGlvbih0LGUsbil7dmFyIHI9InBhcmFtZXRlciBgIi5jb25jYXQodCwiYC4iKSsiIEV4cGVjdGVkICIuY29uY2F0KG4uam9pbigiLCAiKSksaT1uWzBdLG89KDAsYS50b1Jhd1R5cGUpKGUpLHM9bChlLGkpLGM9bChlLG8pOzE9PT1uLmxlbmd0aCYmZChpKSYmIWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIGUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuImJvb2xlYW4iPT09dC50b0xvd2VyQ2FzZSgpfSkpfShpLG8pJiYocis9IiB3aXRoIHZhbHVlICIuY29uY2F0KHMpKTtyKz0iLCBnb3QgIi5jb25jYXQobywiICIpLGQobykmJihyKz0id2l0aCB2YWx1ZSAiLmNvbmNhdChjLCIuIikpO3JldHVybiByfShlLG4sZik7dmFyIHY9dC52YWxpZGF0b3I7aWYodilyZXR1cm4gdihuLGkpfShyLHQsbyxpLG4pfTt2YXIgaT1yKG4oIjUzY2EiKSk7bigiMTRkOSIpLG4oImFjMWYiKSxuKCIwMGI0IiksbigiNDY2ZCIpLG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMjVmMCIpLG4oImE5ZTMiKTt2YXIgYT1uKCJkYjZhIik7dmFyIG89L14oU3RyaW5nfE51bWJlcnxCb29sZWFufEZ1bmN0aW9ufFN5bWJvbCkkLztmdW5jdGlvbiBzKHQsZSl7dmFyIG4scj1jKGUpO2lmKG8udGVzdChyKSl7dmFyIHM9KDAsaS5kZWZhdWx0KSh0KTtuPXM9PT1yLnRvTG93ZXJDYXNlKCksbnx8Im9iamVjdCIhPT1zfHwobj10IGluc3RhbmNlb2YgZSl9ZWxzZSBuPXQuYnl0ZUxlbmd0aD49MHx8KCJPYmplY3QiPT09cj8oMCxhLmlzUGxhaW5PYmplY3QpKHQpOiJBcnJheSI9PT1yP0FycmF5LmlzQXJyYXkodCk6dCBpbnN0YW5jZW9mIGV8fCgwLGEudG9SYXdUeXBlKSh0KT09PWMoZSkpO3JldHVybnt2YWxpZDpuLGV4cGVjdGVkVHlwZTpyfX1mdW5jdGlvbiBjKHQpe3ZhciBlPXQmJnQudG9TdHJpbmcoKS5tYXRjaCgvXlxzKmZ1bmN0aW9uIChcdyspLyk7cmV0dXJuIGU/ZVsxXToiIn1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuIGModCk9PT1jKGUpfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4iU3RyaW5nIj09PWU/JyInLmNvbmNhdCh0LCciJyk6IiIuY29uY2F0KCJOdW1iZXIiPT09ZT9OdW1iZXIodCk6dCl9dmFyIGY9WyJzdHJpbmciLCJudW1iZXIiLCJib29sZWFuIl07ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZi5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpPT09ZX0pKX19LCIyY2Y0IjpmdW5jdGlvbih0LGUsbil7dmFyIHIsaSxhLG8scz1uKCJkYTg0IiksYz1uKCIyYmE0IiksdT1uKCIwMzY2IiksbD1uKCIxNjI2IiksZj1uKCIxYTJkIiksZD1uKCJkMDM5IiksaD1uKCIxYmU0IikscD1uKCJmMzZhIiksdj1uKCJjYzEyIiksZz1uKCJkNmQ2IiksbT1uKCIxY2RjIiksYj1uKCI2MDVkIikseT1zLnNldEltbWVkaWF0ZSxfPXMuY2xlYXJJbW1lZGlhdGUsdz1zLnByb2Nlc3MseD1zLkRpc3BhdGNoLFM9cy5GdW5jdGlvbixUPXMuTWVzc2FnZUNoYW5uZWwsQz1zLlN0cmluZyxrPTAsTz17fTt0cnl7cj1zLmxvY2F0aW9ufWNhdGNoKEEpe312YXIgRT1mdW5jdGlvbih0KXtpZihmKE8sdCkpe3ZhciBlPU9bdF07ZGVsZXRlIE9bdF0sZSgpfX0sST1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtFKHQpfX0sUD1mdW5jdGlvbih0KXtFKHQuZGF0YSl9LE09ZnVuY3Rpb24odCl7cy5wb3N0TWVzc2FnZShDKHQpLHIucHJvdG9jb2wrIi8vIityLmhvc3QpfTt5JiZffHwoeT1mdW5jdGlvbih0KXtnKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIGU9bCh0KT90OlModCksbj1wKGFyZ3VtZW50cywxKTtyZXR1cm4gT1srK2tdPWZ1bmN0aW9uKCl7YyhlLHZvaWQgMCxuKX0saShrKSxrfSxfPWZ1bmN0aW9uKHQpe2RlbGV0ZSBPW3RdfSxiP2k9ZnVuY3Rpb24odCl7dy5uZXh0VGljayhJKHQpKX06eCYmeC5ub3c/aT1mdW5jdGlvbih0KXt4Lm5vdyhJKHQpKX06VCYmIW0/KGE9bmV3IFQsbz1hLnBvcnQyLGEucG9ydDEub25tZXNzYWdlPVAsaT11KG8ucG9zdE1lc3NhZ2UsbykpOnMuYWRkRXZlbnRMaXN0ZW5lciYmbChzLnBvc3RNZXNzYWdlKSYmIXMuaW1wb3J0U2NyaXB0cyYmciYmImZpbGU6IiE9PXIucHJvdG9jb2wmJiFkKE0pPyhpPU0scy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixQLCExKSk6aT0ib25yZWFkeXN0YXRlY2hhbmdlImluIHYoInNjcmlwdCIpP2Z1bmN0aW9uKHQpe2guYXBwZW5kQ2hpbGQodigic2NyaXB0IikpWyJvbnJlYWR5c3RhdGVjaGFuZ2UiXT1mdW5jdGlvbigpe2gucmVtb3ZlQ2hpbGQodGhpcyksRSh0KX19OmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoSSh0KSwwKX0pLHQuZXhwb3J0cz17c2V0OnksY2xlYXI6X319LCIyZDAwIjpmdW5jdGlvbih0LGUsbil7dmFyIHIsaSxhPW4oImRhODQiKSxvPW4oIjM0MmYiKSxzPWEucHJvY2VzcyxjPWEuRGVubyx1PXMmJnMudmVyc2lvbnN8fGMmJmMudmVyc2lvbixsPXUmJnUudjg7bCYmKHI9bC5zcGxpdCgiLiIpLGk9clswXT4wJiZyWzBdPDQ/MTorKHJbMF0rclsxXSkpLCFpJiZvJiYocj1vLm1hdGNoKC9FZGdlXC8oXGQrKS8pLCghcnx8clsxXT49NzQpJiYocj1vLm1hdGNoKC9DaHJvbWVcLyhcZCspLyksciYmKGk9K3JbMV0pKSksdC5leHBvcnRzPWl9LCIyZWUyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7cmV0dXJuIHdpbmRvdy5DU1MmJkNTUy5zdXBwb3J0cyYmKENTUy5zdXBwb3J0cyh0KXx8Q1NTLnN1cHBvcnRzLmFwcGx5KENTUyx0LnNwbGl0KCI6IikpKX1uKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9eyJjc3MudmFyIjpyKCItLWE6MCIpLCJjc3MuZW52IjpyKCJ0b3A6ZW52KGEpIiksImNzcy5jb25zdGFudCI6cigidG9wOmNvbnN0YW50KGEpIil9O2UuZGVmYXVsdD1pfSwiMzAxYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZGRhZCIpLGk9bigiOWFkZiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sMzExNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbihlKXtlLmNvbmZpZy5lcnJvckhhbmRsZXI9ZnVuY3Rpb24obixyLGkpe3ZhciBzPSgwLG8udG9SYXdUeXBlKShuKTtlLnV0aWwud2FybigiRXJyb3IgaW4gIi5jb25jYXQoaSwnOiAiJykuY29uY2F0KCJFcnJvciI9PT1zP24udG9TdHJpbmcoKTpuLCciJykscik7dmFyIGM9ImZ1bmN0aW9uIj09PXR5cGVvZiBnZXRBcHAmJmdldEFwcCgpO2MmJigwLGEuaGFzTGlmZWN5Y2xlSG9vaykoYy4kb3B0aW9ucywib25FcnJvciIpP2MuX19jYWxsX2hvb2soIm9uRXJyb3IiLG4pOnQuZXJyb3Iobil9O3ZhciBuPWUuY29uZmlnLmlzUmVzZXJ2ZWRUYWc7ZS5jb25maWcuaXNSZXNlcnZlZFRhZz1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PWkuZGVmYXVsdC5pbmRleE9mKHQpfHxuKHQpfSxlLmNvbmZpZy5pZ25vcmVkRWxlbWVudHM9aS5kZWZhdWx0O3ZhciByPWUuY29uZmlnLmdldFRhZ05hbWVzcGFjZSxzPVsic3dpdGNoIiwiaW1hZ2UiLCJ0ZXh0IiwidmlldyJdO2UuY29uZmlnLmdldFRhZ05hbWVzcGFjZT1mdW5jdGlvbih0KXtyZXR1cm4hfnMuaW5kZXhPZih0KSYmcih0KX19LG4oIjk5YWYiKSxuKCJkNDAxIiksbigiZDNiNyIpLG4oIjI1ZjAiKSxuKCJjOTc1Iik7dmFyIGk9cihuKCI0Y2FjIikpLGE9bigiZjRmMCIpLG89bigiZGI2YSIpfSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sMzE1MjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIik7dmFyIHI9e25hbWU6IlBhZ2VSZWZyZXNoIixwcm9wczp7Y29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiMyQkQwMDkifSxvZmZzZXQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH19fTtlLmRlZmF1bHQ9cn0sMzE5MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI3NjY2IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiMzIwZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9ITEsbj0hMTt0KCJvblBhZ2VMb2FkIiwoZnVuY3Rpb24odCl7Yyh0KX0pKSx0KCJvblBhZ2VTaG93IiwoZnVuY3Rpb24odCl7dmFyIGE9dC4kcGFyZW50LiRwYXJlbnQ7dC5faXNNb3VudGVkJiZjKHQpLG4mJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsbixzKSxhLmRpc2FibGVTY3JvbGwmJihuPW8uZGlzYWJsZVNjcm9sbCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLG4scykpO3ZhciB1PSgwLGkuaGFzTGlmZWN5Y2xlSG9vaykodC4kb3B0aW9ucywib25QYWdlU2Nyb2xsIiksbD0oMCxpLmhhc0xpZmVjeWNsZUhvb2spKHQuJG9wdGlvbnMsIm9uUmVhY2hCb3R0b20iKSxmPWEub25SZWFjaEJvdHRvbURpc3RhbmNlLGQ9KDAsci5pc1BsYWluT2JqZWN0KShhLnRpdGxlTlZpZXcpJiYidHJhbnNwYXJlbnQiPT09YS50aXRsZU5WaWV3LnR5cGV8fCgwLHIuaXNQbGFpbk9iamVjdCkoYS5uYXZpZ2F0aW9uQmFyKSYmInRyYW5zcGFyZW50Ij09PWEubmF2aWdhdGlvbkJhci50eXBlO2UmJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZSksKGR8fHV8fGwpJiYoZT0oMCxvLmNyZWF0ZVNjcm9sbExpc3RlbmVyKSh0LiRwYWdlLmlkLHtlbmFibGVQYWdlU2Nyb2xsOnUsZW5hYmxlUGFnZVJlYWNoQm90dG9tOmwsb25SZWFjaEJvdHRvbURpc3RhbmNlOmYsZW5hYmxlVHJhbnNwYXJlbnRUaXRsZU5WaWV3OmR9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlKX0pKSl9KSl9LG4oImFjZDgiKSxuKCI5OWFmIik7dmFyIHI9bigiZGI2YSIpLGk9bigiZjRmMCIpLGE9bigiMGZiZSIpLG89bigiMDdhNiIpLHM9ISFyLnN1cHBvcnRzUGFzc2l2ZSYme3Bhc3NpdmU6ITF9O2Z1bmN0aW9uIGMoZSl7aWYodW5pLmNhbklVc2UoImNzcy52YXIiKSl7dmFyIG49cGFyc2VGbG9hdChfX3VuaUNvbmZpZy50YWJCYXIuaGVpZ2h0KSxyPWUuJHBhcmVudC4kcGFyZW50LGk9ci5uYXZpZ2F0aW9uQmFyLnR5cGUsbz0iZGVmYXVsdCI9PT1pfHwiZmxvYXQiPT09aT9hLk5BVkJBUl9IRUlHSFQ6MCxzPWdldEFwcCgpLiRjaGlsZHJlblswXS5zaG93VGFiQmFyP2lzTmFOKG4pP2EuVEFCQkFSX0hFSUdIVDpuOjAsYz11bmkuY2FuSVVzZSgiY3NzLmVudiIpPyJlbnYiOnVuaS5jYW5JVXNlKCJjc3MuY29uc3RhbnQiKT8iY29uc3RhbnQiOiIiLHU9byYmYz8iY2FsYygiLmNvbmNhdChvLCJweCArICIpLmNvbmNhdChjLCIoc2FmZS1hcmVhLWluc2V0LXRvcCkpIik6IiIuY29uY2F0KG8sInB4IiksbD1zJiZjPyJjYWxjKCIuY29uY2F0KHMsInB4ICsgIikuY29uY2F0KGMsIihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkiKToiIi5jb25jYXQocywicHgiKSxmPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZTtmLnNldFByb3BlcnR5KCItLXdpbmRvdy10b3AiLCJjYWxjKHZhcigtLXRvcC13aW5kb3ctaGVpZ2h0KSArICIuY29uY2F0KHUsIikiKSksZi5zZXRQcm9wZXJ0eSgiLS13aW5kb3ctYm90dG9tIixsKSx0LmRlYnVnKCIiLmNvbmNhdChlLiRwYWdlLnJvdXRlLCJbIikuY29uY2F0KGUuJHBhZ2UuaWQsIl3vvJotLXdpbmRvdy10b3A9IikuY29uY2F0KHUpKSx0LmRlYnVnKCIiLmNvbmNhdChlLiRwYWdlLnJvdXRlLCJbIikuY29uY2F0KGUuJHBhZ2UuaWQsIl3vvJotLXdpbmRvdy1ib3R0b209IikuY29uY2F0KGwpKX19fSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sMzI4MDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oIjJiYTQiKSxhPW4oImU1OGMiKSxvPXIuYVR5cGVkQXJyYXkscz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7cygibGFzdEluZGV4T2YiLChmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoO3JldHVybiBpKGEsbyh0aGlzKSxlPjE/W3QsYXJndW1lbnRzWzFdXTpbdF0pfSkpfSwzMzE5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnByZXZpZXdJbWFnZT12b2lkIDAsbigiZDgxZCIpLG4oImE5ZTMiKTt2YXIgaT1yKG4oImYxY2EiKSksYT17dXJsczp7dHlwZTpBcnJheSxyZXF1aXJlZDohMCx2YWxpZGF0b3I6ZnVuY3Rpb24odCxlKXt2YXIgbjtpZihlLnVybHM9dC5tYXAoKGZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT09dHlwZW9mIHQpcmV0dXJuKDAsaS5kZWZhdWx0KSh0KTtuPSEwfSkpLG4pcmV0dXJuInVybCBpcyBub3Qgc3RyaW5nIn19LGN1cnJlbnQ6e3R5cGU6W1N0cmluZyxOdW1iZXJdLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpeyJudW1iZXIiPT09dHlwZW9mIHQ/ZS5jdXJyZW50PXQ+MCYmdDxlLnVybHMubGVuZ3RoP3Q6MDoic3RyaW5nIj09PXR5cGVvZiB0JiZ0JiYoZS5jdXJyZW50PSgwLGkuZGVmYXVsdCkodCkpfSxkZWZhdWx0OjB9fTtlLnByZXZpZXdJbWFnZT1hfSwzMzc3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImZhMjEiKTtmb3IodmFyIGkgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGkpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGkpO3ZhciBhPW4oImYwYzUiKSxvPU9iamVjdChhWyJhIl0pKHJbImRlZmF1bHQiXSx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsLCExLHZvaWQgMCx2b2lkIDApO2VbImRlZmF1bHQiXT1vLmV4cG9ydHN9LCIzMzlmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIik7dmFyIHI9e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aG92ZXJpbmc6ITF9fSxwcm9wczp7aG92ZXJDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoibm9uZSJ9LGhvdmVyU3RvcFByb3BhZ2F0aW9uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saG92ZXJTdGFydFRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NTB9LGhvdmVyU3RheVRpbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NDAwfX0sbWV0aG9kczp7X2hvdmVyVG91Y2hTdGFydDpmdW5jdGlvbih0KXt0LnRvdWNoZXMubGVuZ3RoPjF8fHRoaXMuX2hhbmRsZUhvdmVyU3RhcnQodCl9LF9ob3Zlck1vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLl9ob3ZlclRvdWNofHwodGhpcy5faGFuZGxlSG92ZXJTdGFydCh0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5faG92ZXJNb3VzZXVwKSl9LF9oYW5kbGVIb3ZlclN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dC5faG92ZXJQcm9wYWdhdGlvblN0b3BwZWR8fHRoaXMuaG92ZXJDbGFzcyYmIm5vbmUiIT09dGhpcy5ob3ZlckNsYXNzJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuaG92ZXJTdG9wUHJvcGFnYXRpb24mJih0Ll9ob3ZlclByb3BhZ2F0aW9uU3RvcHBlZD0hMCksdGhpcy5faG92ZXJUb3VjaD0hMCx0aGlzLl9ob3ZlclN0YXJ0VGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLmhvdmVyaW5nPSEwLGUuX2hvdmVyVG91Y2h8fGUuX2hvdmVyUmVzZXQoKX0pLHRoaXMuaG92ZXJTdGFydFRpbWUpKX0sX2hvdmVyTW91c2V1cDpmdW5jdGlvbigpe3RoaXMuX2hvdmVyVG91Y2gmJih0aGlzLl9oYW5kbGVIb3ZlckVuZCgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9ob3Zlck1vdXNldXApKX0sX2hvdmVyVG91Y2hFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVIb3ZlckVuZCgpfSxfaGFuZGxlSG92ZXJFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9ob3ZlclRvdWNoPSExLHRoaXMuaG92ZXJpbmcmJnRoaXMuX2hvdmVyUmVzZXQoKX0sX2hvdmVyUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodC5faG92ZXJTdGF5VGltZXIpLHQuX2hvdmVyU3RheVRpbWVyPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5ob3ZlcmluZz0hMX0pLHQuaG92ZXJTdGF5VGltZSl9KSl9LF9ob3ZlclRvdWNoQ2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faG92ZXJUb3VjaD0hMSx0aGlzLmhvdmVyaW5nPSExLGNsZWFyVGltZW91dCh0aGlzLl9ob3ZlclN0YXJ0VGltZXIpfX19O2UuZGVmYXVsdD1yfSwzNDEwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCJkMDM5IiksYT1uKCI3YjBiIiksbz1uKCJlMTYzIikscz1uKCJlMTc3IiksYz1pKChmdW5jdGlvbigpe28oMSl9KSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOmMsc2hhbTohc30se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBvKGEodCkpfX0pfSwzNDI3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0sbigiZDllMiIpLG4oImQ0MDEiKX0sIjM0MmYiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDY2Iik7dC5leHBvcnRzPXIoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIn0sIjM1MGEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiNTUzMCIpKSxhPXIobigiZjE5ZSIpKSxvPXIobigiYTUyNCIpKSxzPXIobigiMWNjYyIpKSxjPSgwLGkuZGVmYXVsdCkoe1RhYkJhcjphLmRlZmF1bHQsTGF5b3V0Om8uZGVmYXVsdH0scy5kZWZhdWx0KTtlLmRlZmF1bHQ9Y30sMzUxMTpmdW5jdGlvbih0LGUpe3ZhciBuPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYodD45MDA3MTk5MjU0NzQwOTkxKXRocm93IG4oIk1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIpO3JldHVybiB0fX0sMzUyOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImM2NWIiKSxhPW4oIjU5ZWQiKSxvPW4oImYwNjkiKSxzPW4oImU2NjciKSxjPW4oIjIyNjYiKSx1PW4oIjVlZWQiKTtyKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITAsZm9yY2VkOnV9LHtyYWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1vLmYoZSkscj1uLnJlamVjdCx1PXMoKGZ1bmN0aW9uKCl7dmFyIG89YShlLnJlc29sdmUpO2ModCwoZnVuY3Rpb24odCl7aShvLGUsdCkudGhlbihuLnJlc29sdmUscil9KSl9KSk7cmV0dXJuIHUuZXJyb3ImJnIodS52YWx1ZSksbi5wcm9taXNlfX0pfSwiMzVhMSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImY1ZGYiKSxpPW4oImRjNGEiKSxhPW4oIjcyMzQiKSxvPW4oIjNmOGMiKSxzPW4oImI2MjIiKSxjPXMoIml0ZXJhdG9yIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFhKHQpKXJldHVybiBpKHQsYyl8fGkodCwiQEBpdGVyYXRvciIpfHxvW3IodCldfX0sIjM1YmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaT17ZXh0ZW5kOiEwLGlzRm46ITAsaXNTdHI6ITAsaXNTdHJpbmc6ITAsaXNPYmplY3Q6ITAsaXNQbGFpbk9iamVjdDohMCxoYXNPd246ITAsbm9vcDohMCx0b1Jhd1R5cGU6ITAsY2FjaGVkOiEwLGNhbWVsaXplOiEwLGNhcGl0YWxpemU6ITAsc2V0UHJvcGVydGllczohMCxnZXRMZW46ITAsZm9ybWF0RGF0ZVRpbWU6ITAsdXBkYXRlRWxlbWVudFN0eWxlOiEwLGd1aWQ6ITAsZGVib3VuY2U6ITAsdGhyb3R0bGU6ITAsa2ViYWJDYXNlOiEwLGxvb3NlRXF1YWw6ITAsZGVlcENsb25lOiEwLHNvcnRPYmplY3Q6ITB9O2UuY2FjaGVkPWcsZS5jYXBpdGFsaXplPWUuY2FtZWxpemU9dm9pZCAwLGUuZGVib3VuY2U9ZnVuY3Rpb24odCxlKXt2YXIgbixyPWZ1bmN0aW9uKCl7dmFyIHI9YXJndW1lbnRzLGk9dGhpcztjbGVhclRpbWVvdXQobik7dmFyIGE9ZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShpLHIpfTtuPXNldFRpbWVvdXQoYSxlKX07cmV0dXJuIHIuY2FuY2VsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KG4pfSxyfSxlLmRlZXBDbG9uZT1mdW5jdGlvbih0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24gdChuKXt2YXIgcj1uLmNoaWxkcmVuJiZuLmNoaWxkcmVuLm1hcCh0KSxpPWUobi50YWcsbi5kYXRhLHIpO3JldHVybiBpLnRleHQ9bi50ZXh0LGkuaXNDb21tZW50PW4uaXNDb21tZW50LGkuY29tcG9uZW50T3B0aW9ucz1uLmNvbXBvbmVudE9wdGlvbnMsaS5lbG09bi5lbG0saS5jb250ZXh0PW4uY29udGV4dCxpLm5zPW4ubnMsaS5pc1N0YXRpYz1uLmlzU3RhdGljLGkua2V5PW4ua2V5LGl9KSl9LGUuZXh0ZW5kPXZvaWQgMCxlLmZvcm1hdERhdGVUaW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZGF0ZSxuPXZvaWQgMD09PWU/bmV3IERhdGU6ZSxyPXQubW9kZSxpPXZvaWQgMD09PXI/ImRhdGUiOnI7cmV0dXJuInRpbWUiPT09aT91KG4uZ2V0SG91cnMoKSkrIjoiK3Uobi5nZXRNaW51dGVzKCkpOm4uZ2V0RnVsbFllYXIoKSsiLSIrdShuLmdldE1vbnRoKCkrMSkrIi0iK3Uobi5nZXREYXRlKCkpfSxlLmdldExlbj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjtyZXR1cm4oIiIrdCkucmVwbGFjZSgvW15ceDAwLVx4ZmZdL2csIioqIikubGVuZ3RofSxlLmd1aWQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcig0Mjk0OTY3Mjk2KigxK01hdGgucmFuZG9tKCkpKS50b1N0cmluZygxNikuc2xpY2UoMSl9LGUuaGFzT3duPXYsZS5pc0ZuPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdH0sZS5pc09iamVjdD1oLGUuaXNQbGFpbk9iamVjdD1wLGUuaXNTdHI9ZixlLmlzU3RyaW5nPXZvaWQgMCxlLmtlYmFiQ2FzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bQS1aXS9nLChmdW5jdGlvbih0KXtyZXR1cm4iLSIrdC50b0xvd2VyQ2FzZSgpfSkpfSxlLmxvb3NlRXF1YWw9ZnVuY3Rpb24gdChlLG4pe2lmKGU9PT1uKXJldHVybiEwO3ZhciByPWgoZSksaT1oKG4pO2lmKCFyfHwhaSlyZXR1cm4hciYmIWkmJlN0cmluZyhlKT09PVN0cmluZyhuKTt0cnl7dmFyIGE9QXJyYXkuaXNBcnJheShlKSxvPUFycmF5LmlzQXJyYXkobik7aWYoYSYmbylyZXR1cm4gZS5sZW5ndGg9PT1uLmxlbmd0aCYmZS5ldmVyeSgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gdChlLG5bcl0pfSkpO2lmKGUgaW5zdGFuY2VvZiBEYXRlJiZuIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gZS5nZXRUaW1lKCk9PT1uLmdldFRpbWUoKTtpZihhfHxvKXJldHVybiExO3ZhciBzPU9iamVjdC5rZXlzKGUpLGM9T2JqZWN0LmtleXMobik7cmV0dXJuIHMubGVuZ3RoPT09Yy5sZW5ndGgmJnMuZXZlcnkoKGZ1bmN0aW9uKHIpe3JldHVybiB0KGVbcl0sbltyXSl9KSl9Y2F0Y2godSl7cmV0dXJuITF9fSxlLm5vb3A9ZnVuY3Rpb24oKXt9LGUuc2V0UHJvcGVydGllcz1mdW5jdGlvbih0LGUsbil7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXt2KG4sZSkmJih0W2VdPW5bZV0pfSkpfSxlLnNvcnRPYmplY3Q9ZnVuY3Rpb24odCl7dmFyIGU9e307cCh0KSYmT2JqZWN0LmtleXModCkuc29ydCgpLmZvckVhY2goKGZ1bmN0aW9uKG4pe2Vbbl09dFtuXX0pKTtyZXR1cm4gT2JqZWN0LmtleXMoZSk/ZTp0fSxlLnRocm90dGxlPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpPTAsYT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLG89YXJndW1lbnRzLmxlbmd0aCxzPW5ldyBBcnJheShvKSxjPTA7YzxvO2MrKylzW2NdPWFyZ3VtZW50c1tjXTt2YXIgdT1EYXRlLm5vdygpO2NsZWFyVGltZW91dChuKSxyPWZ1bmN0aW9uKCl7cj1udWxsLGk9dSx0LmFwcGx5KGEscyl9LHUtaTxlP249c2V0VGltZW91dChyLGUtKHUtaSkpOnIoKX07cmV0dXJuIGEuY2FuY2VsPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KG4pLHI9bnVsbH0sYS5mbHVzaD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChuKSxyJiZyKCl9LGF9LGUudG9SYXdUeXBlPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhbGwodCkuc2xpY2UoOCwtMSl9LGUudXBkYXRlRWxlbWVudFN0eWxlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpdC5zdHlsZVtuXT1lW25dfTt2YXIgYT1yKG4oIjUzY2EiKSk7bigiZDNiNyIpLG4oImZiNmEiKSxuKCJhYzFmIiksbigiNTMxOSIpLG4oIjE1OWIiKSxuKCJkNDAxIiksbigiMjVmMCIpLG4oImI2NGIiKSxuKCJkODFkIiksbigiNGU4MiIpO3ZhciBvPW4oIjE0YmMiKTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksdCl8fHQgaW4gZSYmZVt0XT09PW9bdF18fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG9bdF19fSkpfSkpO3ZhciBzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+OT90OiIwIit0fSxsPU9iamVjdC5hc3NpZ247ZnVuY3Rpb24gZih0KXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0fWUuZXh0ZW5kPWw7dmFyIGQ9ZjtmdW5jdGlvbiBoKHQpe3JldHVybiBudWxsIT09dCYmIm9iamVjdCI9PT0oMCxhLmRlZmF1bHQpKHQpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1zLmNhbGwodCl9ZnVuY3Rpb24gdih0LGUpe3JldHVybiBjLmNhbGwodCxlKX1mdW5jdGlvbiBnKHQpe3ZhciBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByPWVbbl07cmV0dXJuIHJ8fChlW25dPXQobikpfX1lLmlzU3RyaW5nPWQ7dmFyIG09Ly0oXHcpL2csYj1nKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKG0sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/ZS50b1VwcGVyQ2FzZSgpOiIifSkpfSkpO2UuY2FtZWxpemU9Yjt2YXIgeT1nKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpfSkpO2UuY2FwaXRhbGl6ZT15fSwiMzVkMCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJnZXRBcHAiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmdldEFwcH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0Q3VycmVudFBhZ2VzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcy5nZXRDdXJyZW50UGFnZXN9fSk7dmFyIGk9cihuKCI5NDVjIikpLGE9cihuKCJiNDZmIikpLG89bigiYzU1OCIpLHM9bigiNDFhZSIpOygwLGkuZGVmYXVsdCkodC5vbix7Z2V0QXBwOnMuZ2V0QXBwLGdldEN1cnJlbnRQYWdlczpzLmdldEN1cnJlbnRQYWdlc30pLCgwLGEuZGVmYXVsdCkodC5zdWJzY3JpYmUse2dldEFwcDpzLmdldEFwcCxnZXRDdXJyZW50UGFnZXM6cy5nZXRDdXJyZW50UGFnZXN9KTt2YXIgYz1vLnVuaTtlLmRlZmF1bHQ9Y30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMzVkMDYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImZjMzUiKSxpPW4oImMyYjEiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCIzNmVmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlTWVkaWFRdWVyeU9ic2VydmVyPWZ1bmN0aW9uKHQsZSl7dC5faXNWdWV8fChlPXQsdD1udWxsKTtpZih0KXJldHVybiBuZXcgbCh0LGUpO3JldHVybiBuZXcgbCgoMCxzLmdldEN1cnJlbnRQYWdlVm0pKCJjcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIiKSxlKX0sbigiMTRkOSIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPXIobigiZmYyMiIpKSxzPW4oIjI0MTIiKSxjPW4oIjlkOGMiKSx1PSgwLG8uZGVmYXVsdCkoInJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXIiKSxsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4peygwLGkuZGVmYXVsdCkodGhpcyxlKSx0aGlzLnBhZ2VJZD10LiRwYWdlJiZ0LiRwYWdlLmlkLHRoaXMuY29tcG9uZW50PXQuXyRpZHx8dCx0aGlzLm9wdGlvbnM9bn1yZXR1cm4oMCxhLmRlZmF1bHQpKGUsW3trZXk6Im9ic2VydmUiLHZhbHVlOmZ1bmN0aW9uKGUsbil7ImZ1bmN0aW9uIj09PXR5cGVvZiBuJiYodGhpcy5vcHRpb25zPWUsdGhpcy5yZXFJZD11LnB1c2gobiksdC5wdWJsaXNoSGFuZGxlcigicmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOnRoaXMucmVxSWQsY29tcG9uZW50OnRoaXMuY29tcG9uZW50LG9wdGlvbnM6dGhpcy5vcHRpb25zfSwoMCxjLmNoZWNrSW5XaW5kb3dzKSh0aGlzLmNvbXBvbmVudCk/dGhpcy5jb21wb25lbnQ6dGhpcy5wYWdlSWQpKX19LHtrZXk6ImRpc2Nvbm5lY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dC5wdWJsaXNoSGFuZGxlcigiZGVzdHJveU1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOnRoaXMucmVxSWR9LCgwLGMuY2hlY2tJbldpbmRvd3MpKHRoaXMuY29tcG9uZW50KT90aGlzLmNvbXBvbmVudDp0aGlzLnBhZ2VJZCl9fV0pLGV9KCl9KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sIjM3N2UiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jbG9zZVByZXZpZXdJbWFnZT1mdW5jdGlvbih0LGUpe2koIm9uQ2xvc2VQcmV2aWV3SW1hZ2UiLChmdW5jdGlvbigpe2EoZSx7ZXJyTXNnOiJjbG9zZVByZXZpZXdJbWFnZTpvayJ9KX0pKX0sZS5wcmV2aWV3SW1hZ2U9ZnVuY3Rpb24odCxlKXtpKCJvblNob3dQcmV2aWV3SW1hZ2UiLHQsKGZ1bmN0aW9uKHQpe2EoZSx7ZXJyTXNnOiJwcmV2aWV3SW1hZ2U6b2sifSl9KSl9O3ZhciByPXQsaT1yLmVtaXQsYT1yLmludm9rZUNhbGxiYWNrSGFuZGxlcn0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiMzdkYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCxyKXtuKCI3YTgyIik7dmFyIGk9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTE9DQUxFX1pIX0hBTlQ9ZS5MT0NBTEVfWkhfSEFOUz1lLkxPQ0FMRV9GUj1lLkxPQ0FMRV9FUz1lLkxPQ0FMRV9FTj1lLkkxOG49ZS5Gb3JtYXR0ZXI9dm9pZCAwLGUuY29tcGlsZUkxOG5Kc29uU3RyPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5sb2NhbGUscj1lLmxvY2FsZXMsaT1lLmRlbGltaXRlcnM7aWYoIUModCxpKSlyZXR1cm4gdDtTfHwoUz1uZXcgZik7dmFyIGE9W107T2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCE9PW4mJmEucHVzaCh7bG9jYWxlOnQsdmFsdWVzOnJbdF19KX0pKSxhLnVuc2hpZnQoe2xvY2FsZTpuLHZhbHVlczpyW25dfSk7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShPKEpTT04ucGFyc2UodCksYSxpKSxudWxsLDIpfWNhdGNoKG8pe31yZXR1cm4gdH0sZS5oYXNJMThuSnNvbj1mdW5jdGlvbiB0KGUsbil7U3x8KFM9bmV3IGYpO3JldHVybiBFKGUsKGZ1bmN0aW9uKGUscil7dmFyIGk9ZVtyXTtyZXR1cm4gVChpKT8hIUMoaSxuKXx8dm9pZCAwOnQoaSxuKX0pKX0sZS5pbml0VnVlSTE4bj1mdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxyPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwO2lmKCJzdHJpbmciIT09dHlwZW9mIHQpe3ZhciBpPVtlLHRdO3Q9aVswXSxlPWlbMV19InN0cmluZyIhPT10eXBlb2YgdCYmKHQ9eCgpKTsic3RyaW5nIiE9PXR5cGVvZiBuJiYobj0idW5kZWZpbmVkIiE9PXR5cGVvZiBfX3VuaUNvbmZpZyYmX191bmlDb25maWcuZmFsbGJhY2tMb2NhbGV8fCJlbiIpO3ZhciBhPW5ldyBfKHtsb2NhbGU6dCxmYWxsYmFja0xvY2FsZTpuLG1lc3NhZ2VzOmUsd2F0Y2hlcjpyfSksbz1mdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgZ2V0QXBwKW89ZnVuY3Rpb24odCxlKXtyZXR1cm4gYS50KHQsZSl9O2Vsc2V7dmFyIG49ITE7bz1mdW5jdGlvbih0LGUpe3ZhciByPWdldEFwcCgpLiR2bTtyZXR1cm4gciYmKHIuJGxvY2FsZSxufHwobj0hMCx3KHIsYSkpKSxhLnQodCxlKX19cmV0dXJuIG8odCxlKX07cmV0dXJue2kxOG46YSxmOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gYS5mKHQsZSxuKX0sdDpmdW5jdGlvbih0LGUpe3JldHVybiBvKHQsZSl9LGFkZDpmdW5jdGlvbih0LGUpe3ZhciBuPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07cmV0dXJuIGEuYWRkKHQsZSxuKX0sd2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIGEud2F0Y2hMb2NhbGUodCl9LGdldExvY2FsZTpmdW5jdGlvbigpe3JldHVybiBhLmdldExvY2FsZSgpfSxzZXRMb2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIGEuc2V0TG9jYWxlKHQpfX19LGUuaXNJMThuU3RyPUMsZS5pc1N0cmluZz12b2lkIDAsZS5ub3JtYWxpemVMb2NhbGU9eSxlLnBhcnNlSTE4bkpzb249ZnVuY3Rpb24gdChlLG4scil7U3x8KFM9bmV3IGYpO3JldHVybiBFKGUsKGZ1bmN0aW9uKGUsaSl7dmFyIGE9ZVtpXTtUKGEpP0MoYSxyKSYmKGVbaV09ayhhLG4scikpOnQoYSxuLHIpfSkpLGV9LGUucmVzb2x2ZUxvY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGU/KGU9eShlKXx8ZSxmdW5jdGlvbih0KXt2YXIgZT1bXSxuPXQuc3BsaXQoIi0iKTt3aGlsZShuLmxlbmd0aCllLnB1c2gobi5qb2luKCItIikpLG4ucG9wKCk7cmV0dXJuIGV9KGUpLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiB0LmluZGV4T2YoZSk+LTF9KSkpOmV9fSxuKCIxNGQ5IiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCJlMjVlIiksbigiOTlhZiIpLG4oIjdkYjAiKSxuKCJkM2I3IiksbigiYzk3NSIpLG4oIjUzMTkiKSxuKCI0OThhIiksbigiYjY0YiIpLG4oIjE1OWIiKSxuKCJhNDM0IiksbigiM2M2NSIpLG4oImU5YzQiKSxuKCJkZGIwIik7dmFyIGE9aShuKCIzODM1IikpLG89aShuKCJkNGVjIikpLHM9aShuKCJiZWUyIikpLGM9aShuKCI1M2NhIikpLHU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPT10JiYib2JqZWN0Ij09PSgwLGMuZGVmYXVsdCkodCl9LGw9WyJ7IiwifSJdLGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7KDAsby5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuX2NhY2hlcz1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybigwLHMuZGVmYXVsdCkodCxbe2tleToiaW50ZXJwb2xhdGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOmw7aWYoIWUpcmV0dXJuW3RdO3ZhciByPXRoaXMuX2NhY2hlc1t0XTtyZXR1cm4gcnx8KHI9cCh0LG4pLHRoaXMuX2NhY2hlc1t0XT1yKSx2KHIsZSl9fV0pLHR9KCk7ZS5Gb3JtYXR0ZXI9Zjt2YXIgZD0vXig/OlxkKSsvLGg9L14oPzpcdykrLztmdW5jdGlvbiBwKHQsZSl7dmFyIG49KDAsYS5kZWZhdWx0KShlLDIpLHI9blswXSxpPW5bMV0sbz1bXSxzPTAsYz0iIjt3aGlsZShzPHQubGVuZ3RoKXt2YXIgdT10W3MrK107aWYodT09PXIpe2MmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Y30pLGM9IiI7dmFyIGw9IiI7dT10W3MrK107d2hpbGUodm9pZCAwIT09dSYmdSE9PWkpbCs9dSx1PXRbcysrXTt2YXIgZj11PT09aSxwPWQudGVzdChsKT8ibGlzdCI6ZiYmaC50ZXN0KGwpPyJuYW1lZCI6InVua25vd24iO28ucHVzaCh7dmFsdWU6bCx0eXBlOnB9KX1lbHNlIGMrPXV9cmV0dXJuIGMmJm8ucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6Y30pLG99ZnVuY3Rpb24gdih0LGUpe3ZhciBuPVtdLHI9MCxpPUFycmF5LmlzQXJyYXkoZSk/Imxpc3QiOnUoZSk/Im5hbWVkIjoidW5rbm93biI7aWYoInVua25vd24iPT09aSlyZXR1cm4gbjt3aGlsZShyPHQubGVuZ3RoKXt2YXIgYT10W3JdO3N3aXRjaChhLnR5cGUpe2Nhc2UidGV4dCI6bi5wdXNoKGEudmFsdWUpO2JyZWFrO2Nhc2UibGlzdCI6bi5wdXNoKGVbcGFyc2VJbnQoYS52YWx1ZSwxMCldKTticmVhaztjYXNlIm5hbWVkIjoibmFtZWQiPT09aSYmbi5wdXNoKGVbYS52YWx1ZV0pO2JyZWFrO2Nhc2UidW5rbm93biI6MDticmVha31yKyt9cmV0dXJuIG59ZS5MT0NBTEVfWkhfSEFOUz0iemgtSGFucyI7ZS5MT0NBTEVfWkhfSEFOVD0iemgtSGFudCI7ZS5MT0NBTEVfRU49ImVuIjtlLkxPQ0FMRV9GUj0iZnIiO2UuTE9DQUxFX0VTPSJlcyI7dmFyIGc9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGcuY2FsbCh0LGUpfSxiPW5ldyBmO2Z1bmN0aW9uIHkodCxlKXtpZih0KXtpZih0PXQudHJpbSgpLnJlcGxhY2UoL18vZywiLSIpLGUmJmVbdF0pcmV0dXJuIHQ7aWYodD10LnRvTG93ZXJDYXNlKCksImNoaW5lc2UiPT09dClyZXR1cm4iemgtSGFucyI7aWYoMD09PXQuaW5kZXhPZigiemgiKSlyZXR1cm4gdC5pbmRleE9mKCItaGFucyIpPi0xPyJ6aC1IYW5zIjp0LmluZGV4T2YoIi1oYW50Iik+LTF8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuISFlLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUpfSkpfSh0LFsiLXR3IiwiLWhrIiwiLW1vIiwiLWNodCJdKT8iemgtSGFudCI6InpoLUhhbnMiO3ZhciBuPVsiZW4iLCJmciIsImVzIl07ZSYmT2JqZWN0LmtleXMoZSkubGVuZ3RoPjAmJihuPU9iamVjdC5rZXlzKGUpKTt2YXIgcj1mdW5jdGlvbih0LGUpe3JldHVybiBlLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybiAwPT09dC5pbmRleE9mKGUpfSkpfSh0LG4pO3JldHVybiByfHx2b2lkIDB9fXZhciBfPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgbj10LmxvY2FsZSxyPXQuZmFsbGJhY2tMb2NhbGUsaT10Lm1lc3NhZ2VzLGE9dC53YXRjaGVyLHM9dC5mb3JtYXRlcjsoMCxvLmRlZmF1bHQpKHRoaXMsZSksdGhpcy5sb2NhbGU9ImVuIix0aGlzLmZhbGxiYWNrTG9jYWxlPSJlbiIsdGhpcy5tZXNzYWdlPXt9LHRoaXMubWVzc2FnZXM9e30sdGhpcy53YXRjaGVycz1bXSxyJiYodGhpcy5mYWxsYmFja0xvY2FsZT1yKSx0aGlzLmZvcm1hdGVyPXN8fGIsdGhpcy5tZXNzYWdlcz1pfHx7fSx0aGlzLnNldExvY2FsZShufHwiZW4iKSxhJiZ0aGlzLndhdGNoTG9jYWxlKGEpfXJldHVybigwLHMuZGVmYXVsdCkoZSxbe2tleToic2V0TG9jYWxlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5sb2NhbGU7dGhpcy5sb2NhbGU9eSh0LHRoaXMubWVzc2FnZXMpfHx0aGlzLmZhbGxiYWNrTG9jYWxlLHRoaXMubWVzc2FnZXNbdGhpcy5sb2NhbGVdfHwodGhpcy5tZXNzYWdlc1t0aGlzLmxvY2FsZV09e30pLHRoaXMubWVzc2FnZT10aGlzLm1lc3NhZ2VzW3RoaXMubG9jYWxlXSxuIT09dGhpcy5sb2NhbGUmJnRoaXMud2F0Y2hlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChlLmxvY2FsZSxuKX0pKX19LHtrZXk6ImdldExvY2FsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGV9fSx7a2V5OiJ3YXRjaExvY2FsZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMud2F0Y2hlcnMucHVzaCh0KS0xO3JldHVybiBmdW5jdGlvbigpe2Uud2F0Y2hlcnMuc3BsaWNlKG4sMSl9fX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0scj10aGlzLm1lc3NhZ2VzW3RdO3I/bj9PYmplY3QuYXNzaWduKHIsZSk6T2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7bShyLHQpfHwoclt0XT1lW3RdKX0pKTp0aGlzLm1lc3NhZ2VzW3RdPWV9fSx7a2V5OiJmIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRoaXMuZm9ybWF0ZXIuaW50ZXJwb2xhdGUodCxlLG4pLmpvaW4oIiIpfX0se2tleToidCIsdmFsdWU6ZnVuY3Rpb24oZSxuLHIpe3ZhciBpPXRoaXMubWVzc2FnZTtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBuPyhuPXkobix0aGlzLm1lc3NhZ2VzKSxuJiYoaT10aGlzLm1lc3NhZ2VzW25dKSk6cj1uLG0oaSxlKT90aGlzLmZvcm1hdGVyLmludGVycG9sYXRlKGlbZV0scikuam9pbigiIik6KHQud2FybigiQ2Fubm90IHRyYW5zbGF0ZSB0aGUgdmFsdWUgb2Yga2V5cGF0aCAiLmNvbmNhdChlLCIuIFVzZSB0aGUgdmFsdWUgb2Yga2V5cGF0aCBhcyBkZWZhdWx0LiIpKSxlKX19XSksZX0oKTtmdW5jdGlvbiB3KHQsZSl7dC4kd2F0Y2hMb2NhbGU/dC4kd2F0Y2hMb2NhbGUoKGZ1bmN0aW9uKHQpe2Uuc2V0TG9jYWxlKHQpfSkpOnQuJHdhdGNoKChmdW5jdGlvbigpe3JldHVybiB0LiRsb2NhbGV9KSwoZnVuY3Rpb24odCl7ZS5zZXRMb2NhbGUodCl9KSl9ZnVuY3Rpb24geCgpe3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIHVuaSYmdW5pLmdldExvY2FsZT91bmkuZ2V0TG9jYWxlKCk6InVuZGVmaW5lZCIhPT10eXBlb2YgciYmci5nZXRMb2NhbGU/ci5nZXRMb2NhbGUoKToiZW4ifWUuSTE4bj1fO3ZhciBTLFQ9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgdH07ZnVuY3Rpb24gQyh0LGUpe3JldHVybiB0LmluZGV4T2YoZVswXSk+LTF9ZnVuY3Rpb24gayh0LGUsbil7cmV0dXJuIFMuaW50ZXJwb2xhdGUodCxlLG4pLmpvaW4oIiIpfWZ1bmN0aW9uIE8odCxlLG4pe3JldHVybiBFKHQsKGZ1bmN0aW9uKHQscil7KGZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRbZV07aWYoVChpKSl7aWYoQyhpLHIpJiYodFtlXT1rKGksblswXS52YWx1ZXMsciksbi5sZW5ndGg+MSkpe3ZhciBhPXRbZSsiTG9jYWxlcyJdPXt9O24uZm9yRWFjaCgoZnVuY3Rpb24odCl7YVt0LmxvY2FsZV09ayhpLHQudmFsdWVzLHIpfSkpfX1lbHNlIE8oaSxuLHIpfSkodCxyLGUsbil9KSksdH1mdW5jdGlvbiBFKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYoZSh0LG4pKXJldHVybiEwfWVsc2UgaWYodSh0KSlmb3IodmFyIHIgaW4gdClpZihlKHQscikpcmV0dXJuITA7cmV0dXJuITF9ZS5pc1N0cmluZz1UfSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdLG4oImM4YmEiKSl9LCIzN2U4IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiYWVkOSIpLGE9bigiOWJmMiIpLG89bigiODI1YSIpLHM9bigiZmM2YSIpLGM9bigiZGY3NSIpO2UuZj1yJiYhaT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LGUpe28odCk7dmFyIG4scj1zKGUpLGk9YyhlKSx1PWkubGVuZ3RoLGw9MDt3aGlsZSh1PmwpYS5mKHQsbj1pW2wrK10scltuXSk7cmV0dXJuIHR9fSwiMzdmYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudXB4MnB4PXZvaWQgMCxuKCJhOWUzIik7dmFyIHI9W3tuYW1lOiJ1cHgiLHR5cGU6W051bWJlcixTdHJpbmddLHJlcXVpcmVkOiEwfV07ZS51cHgycHg9cn0sMzgzNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuKDAsci5kZWZhdWx0KSh0KXx8KDAsaS5kZWZhdWx0KSh0LGUpfHwoMCxhLmRlZmF1bHQpKHQsZSl8fCgwLG8uZGVmYXVsdCkoKX07dmFyIHI9cyhuKCIwZDIxIikpLGk9cyhuKCIwOWYwIikpLGE9cyhuKCIwNmM1IikpLG89cyhuKCIzZDhjIikpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fX0sMzk1NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jcmVhdGVBbmltYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzKHQpfSxuKCIxNGQ5IiksbigiYWMxZiIpLG4oIjUzMTkiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjk5YWYiKSxuKCIwN2FjIiksbigiY2FhZCIpLG4oIjI1MzIiKTt2YXIgaT1yKG4oImQ0ZWMiKSksYT1yKG4oImJlZTIiKSksbz17ZHVyYXRpb246NDAwLHRpbWluZ0Z1bmN0aW9uOiJsaW5lYXIiLGRlbGF5OjAsdHJhbnNmb3JtT3JpZ2luOiI1MCUgNTAlIDAifSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5hY3Rpb25zPVtdLHRoaXMuY3VycmVudFRyYW5zZm9ybT17fSx0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXM9W10sdGhpcy5vcHRpb249T2JqZWN0LmFzc2lnbih7fSxvLGUpfXJldHVybigwLGEuZGVmYXVsdCkodCxbe2tleToiX2dldE9wdGlvbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9e3RyYW5zaXRpb246T2JqZWN0LmFzc2lnbih7fSx0aGlzLm9wdGlvbix0KX07cmV0dXJuIGUudHJhbnNmb3JtT3JpZ2luPWUudHJhbnNpdGlvbi50cmFuc2Zvcm1PcmlnaW4sZGVsZXRlIGUudHJhbnNpdGlvbi50cmFuc2Zvcm1PcmlnaW4sZX19LHtrZXk6Il9wdXNoQW5pbWF0ZXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5jdXJyZW50U3RlcEFuaW1hdGVzLnB1c2goe3R5cGU6dCxhcmdzOmV9KX19LHtrZXk6Il9jb252ZXJUeXBlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bQS1aXS9nLChmdW5jdGlvbih0KXtyZXR1cm4iLSIuY29uY2F0KHQudG9Mb3dlckNhc2UoKSl9KSl9fSx7a2V5OiJfZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT09dHlwZW9mIHQ/IiIuY29uY2F0KHQsInB4Iik6dH19LHtrZXk6ImV4cG9ydCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFjdGlvbnM7cmV0dXJuIHRoaXMuYWN0aW9ucz1bXSx7YWN0aW9uczp0fX19LHtrZXk6InN0ZXAiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY3VycmVudFN0ZXBBbmltYXRlcy5mb3JFYWNoKChmdW5jdGlvbih0KXsic3R5bGUiIT09dC50eXBlP2UuY3VycmVudFRyYW5zZm9ybVt0LnR5cGVdPXQ6ZS5jdXJyZW50VHJhbnNmb3JtWyIiLmNvbmNhdCh0LnR5cGUsIi4iKS5jb25jYXQodC5hcmdzWzBdKV09dH0pKSx0aGlzLmFjdGlvbnMucHVzaCh7YW5pbWF0ZXM6T2JqZWN0LnZhbHVlcyh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0pLG9wdGlvbjp0aGlzLl9nZXRPcHRpb24odCl9KSx0aGlzLmN1cnJlbnRTdGVwQW5pbWF0ZXM9W10sdGhpc319XSksdH0oKSxjPVsib3BhY2l0eSIsImJhY2tncm91bmRDb2xvciJdLHU9WyJ3aWR0aCIsImhlaWdodCIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSJdO1sibWF0cml4IiwibWF0cml4M2QiLCJyb3RhdGUiLCJyb3RhdGUzZCIsInJvdGF0ZVgiLCJyb3RhdGVZIiwicm90YXRlWiIsInNjYWxlIiwic2NhbGUzZCIsInNjYWxlWCIsInNjYWxlWSIsInNjYWxlWiIsInNrZXciLCJza2V3WCIsInNrZXdZIiwidHJhbnNsYXRlIiwidHJhbnNsYXRlM2QiLCJ0cmFuc2xhdGVYIiwidHJhbnNsYXRlWSIsInRyYW5zbGF0ZVoiXS5jb25jYXQoYyx1KS5mb3JFYWNoKChmdW5jdGlvbih0KXtzLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3JldHVybiBjLmNvbmNhdCh1KS5pbmNsdWRlcyh0KT90aGlzLl9wdXNoQW5pbWF0ZXMoInN0eWxlIixbdGhpcy5fY29udmVyVHlwZSh0KSx1LmluY2x1ZGVzKHQpP3RoaXMuX2dldFZhbHVlKG5bMF0pOm5bMF1dKTp0aGlzLl9wdXNoQW5pbWF0ZXModCxuKSx0aGlzfX0pKX0sIjM5YTciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIik7dmFyIHI9e25hbWU6IlN3aXBlckl0ZW0iLHByb3BzOntpdGVtSWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kZWw7dC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHQuc3R5bGUud2lkdGg9IjEwMCUiLHQuc3R5bGUuaGVpZ2h0PSIxMDAlIjt2YXIgZT10aGlzLiR2bm9kZS5fY2FsbGJhY2tzO2UmJmUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfX07ZS5kZWZhdWx0PXJ9LCIzYTM0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjgzYWIiKSxpPW4oImU4YjUiKSxhPVR5cGVFcnJvcixvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscz1yJiYhZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzKXJldHVybiEwO3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkubGVuZ3RoPTF9Y2F0Y2godCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBUeXBlRXJyb3J9fSgpO3QuZXhwb3J0cz1zP2Z1bmN0aW9uKHQsZSl7aWYoaSh0KSYmIW8odCwibGVuZ3RoIikud3JpdGFibGUpdGhyb3cgYSgiQ2Fubm90IHNldCByZWFkIG9ubHkgLmxlbmd0aCIpO3JldHVybiB0Lmxlbmd0aD1lfTpmdW5jdGlvbih0LGUpe3JldHVybiB0Lmxlbmd0aD1lfX0sIjNhN2IiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYjcyNyIpLmZpbmRJbmRleCxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiZmluZEluZGV4IiwoZnVuY3Rpb24odCl7cmV0dXJuIGkoYSh0aGlzKSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKX0sIjNhN2UiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNhbGxiYWNrPXZvaWQgMCxuKCJhYzFmIiksbigiMDBiNCIpLG4oIjRkNjMiKSxuKCJjNjA3IiksbigiMmMzZSIpLG4oIjI1ZjAiKTt2YXIgcj0wLGk9e307ZnVuY3Rpb24gYSh0LGUpe3ZhciBuPWlbdF18fHt9O2RlbGV0ZSBpW3RdO3ZhciByPWUuZXJyTXNnfHwiIjtuZXcgUmVnRXhwKCJcXDpcXHMqZmFpbCIpLnRlc3Qocik/bi5mYWlsJiZuLmZhaWwoZSk6bi5zdWNjZXNzJiZuLnN1Y2Nlc3MoZSksbi5jb21wbGV0ZSYmbi5jb21wbGV0ZShlKX12YXIgbz17d2FycDpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sbj1TdHJpbmcocisrKTtpW25dPXtzdWNjZXNzOmUuc3VjY2VzcyxmYWlsOmUuZmFpbCxjb21wbGV0ZTplLmNvbXBsZXRlfTt2YXIgbz1PYmplY3QuYXNzaWduKHt9LGUpLHM9dC5iaW5kKHRoaXMpKG8sbik7cyYmYShuLHMpfX0saW52b2tlOmF9O2UuY2FsbGJhY2s9b30sIjNhOWIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIik7dC5leHBvcnRzPXIoe30uaXNQcm90b3R5cGVPZil9LCIzYmJlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMTYyNiIpLGk9U3RyaW5nLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHR8fHIodCkpcmV0dXJuIHQ7dGhyb3cgYSgiQ2FuJ3Qgc2V0ICIraSh0KSsiIGFzIGEgcHJvdG90eXBlIil9fSwiM2JlYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuVmlkZW9Db250ZXh0PXZvaWQgMCxlLmNyZWF0ZVZpZGVvQ29udGV4dD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIG5ldyB1KHQsZSk7cmV0dXJuIG5ldyB1KHQsKDAsby5nZXRDdXJyZW50UGFnZVZtKSgiY3JlYXRlVmlkZW9Db250ZXh0IikpfSxuKCJjOTc1Iik7dmFyIGk9cihuKCJkNGVjIikpLGE9cihuKCJiZWUyIikpLG89bigiMjQxMiIpLHM9Wy41LC44LDEsMS4yNSwxLjUsMl07ZnVuY3Rpb24gYyh0LGUsbixyKXsoMCxvLmludm9rZU1ldGhvZCkoIm9wZXJhdGVWaWRlb1BsYXllciIsdCxlLG4scil9dmFyIHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7KDAsaS5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuaWQ9ZSx0aGlzLnBhZ2VWbT1ufXJldHVybigwLGEuZGVmYXVsdCkodCxbe2tleToicGxheSIsdmFsdWU6ZnVuY3Rpb24oKXtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sInBsYXkiKX19LHtrZXk6InBhdXNlIix2YWx1ZTpmdW5jdGlvbigpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwicGF1c2UiKX19LHtrZXk6InN0b3AiLHZhbHVlOmZ1bmN0aW9uKCl7Yyh0aGlzLmlkLHRoaXMucGFnZVZtLCJzdG9wIil9fSx7a2V5OiJzZWVrIix2YWx1ZTpmdW5jdGlvbih0KXtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sInNlZWsiLHtwb3NpdGlvbjp0fSl9fSx7a2V5OiJzZW5kRGFubXUiLHZhbHVlOmZ1bmN0aW9uKHQpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwic2VuZERhbm11Iix0KX19LHtrZXk6InBsYXliYWNrUmF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7fnMuaW5kZXhPZih0KXx8KHQ9MSksYyh0aGlzLmlkLHRoaXMucGFnZVZtLCJwbGF5YmFja1JhdGUiLHtyYXRlOnR9KX19LHtrZXk6InJlcXVlc3RGdWxsU2NyZWVuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sInJlcXVlc3RGdWxsU2NyZWVuIix0KX19LHtrZXk6ImV4aXRGdWxsU2NyZWVuIix2YWx1ZTpmdW5jdGlvbigpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwiZXhpdEZ1bGxTY3JlZW4iKX19LHtrZXk6InNob3dTdGF0dXNCYXIiLHZhbHVlOmZ1bmN0aW9uKCl7Yyh0aGlzLmlkLHRoaXMucGFnZVZtLCJzaG93U3RhdHVzQmFyIil9fSx7a2V5OiJoaWRlU3RhdHVzQmFyIix2YWx1ZTpmdW5jdGlvbigpe2ModGhpcy5pZCx0aGlzLnBhZ2VWbSwiaGlkZVN0YXR1c0JhciIpfX1dKSx0fSgpO2UuVmlkZW9Db250ZXh0PXV9LCIzYzVkIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImRhODQiKSxpPW4oImM2NWIiKSxhPW4oImViYjUiKSxvPW4oIjA3ZmEiKSxzPW4oIjE4MmQiKSxjPW4oIjdiMGIiKSx1PW4oImQwMzkiKSxsPXIuUmFuZ2VFcnJvcixmPXIuSW50OEFycmF5LGQ9ZiYmZi5wcm90b3R5cGUsaD1kJiZkLnNldCxwPWEuYVR5cGVkQXJyYXksdj1hLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsZz0hdSgoZnVuY3Rpb24oKXt2YXIgdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMik7cmV0dXJuIGkoaCx0LHtsZW5ndGg6MSwwOjN9LDEpLDMhPT10WzFdfSkpLG09ZyYmYS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTJiZ1KChmdW5jdGlvbigpe3ZhciB0PW5ldyBmKDIpO3JldHVybiB0LnNldCgxKSx0LnNldCgiMiIsMSksMCE9PXRbMF18fDIhPT10WzFdfSkpO3YoInNldCIsKGZ1bmN0aW9uKHQpe3AodGhpcyk7dmFyIGU9cyhhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwxKSxuPWModCk7aWYoZylyZXR1cm4gaShoLHRoaXMsbixlKTt2YXIgcj10aGlzLmxlbmd0aCxhPW8obiksdT0wO2lmKGErZT5yKXRocm93IGwoIldyb25nIGxlbmd0aCIpO3doaWxlKHU8YSl0aGlzW2UrdV09blt1KytdfSksIWd8fG0pfSwiM2M2NSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCI3YjBiIiksYT1uKCIwN2ZhIiksbz1uKCIzYTM0Iikscz1uKCIwODNhIiksYz1uKCIzNTExIiksdT0xIT09W10udW5zaGlmdCgwKSxsPSFmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkudW5zaGlmdCgpfWNhdGNoKHQpe3JldHVybiB0IGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxhcml0eToxLGZvcmNlZDp1fHxsfSx7dW5zaGlmdDpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpLG49YShlKSxyPWFyZ3VtZW50cy5sZW5ndGg7aWYocil7YyhuK3IpO3ZhciB1PW47d2hpbGUodS0tKXt2YXIgbD11K3I7dSBpbiBlP2VbbF09ZVt1XTpzKGUsbCl9Zm9yKHZhciBmPTA7ZjxyO2YrKyllW2ZdPWFyZ3VtZW50c1tmXX1yZXR1cm4gbyhlLG4rcil9fSl9LCIzY2EzIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjY1NDciKS5jaGFyQXQsaT1uKCI1NzdlIiksYT1uKCI2OWYzIiksbz1uKCJjNmQyIikscz1uKCI0NzU0IiksYz1hLnNldCx1PWEuZ2V0dGVyRm9yKCJTdHJpbmcgSXRlcmF0b3IiKTtvKFN0cmluZywiU3RyaW5nIiwoZnVuY3Rpb24odCl7Yyh0aGlzLHt0eXBlOiJTdHJpbmcgSXRlcmF0b3IiLHN0cmluZzppKHQpLGluZGV4OjB9KX0pLChmdW5jdGlvbigpe3ZhciB0LGU9dSh0aGlzKSxuPWUuc3RyaW5nLGk9ZS5pbmRleDtyZXR1cm4gaT49bi5sZW5ndGg/cyh2b2lkIDAsITApOih0PXIobixpKSxlLmluZGV4Kz10Lmxlbmd0aCxzKHQsITEpKX0pKX0sIjNkNDYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjhiOTEiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCIzZDhjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0sbigiZDllMiIpLG4oImQ0MDEiKX0sIjNkYTgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ1bmktaW1hZ2UiLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbbigiZGl2Iix7cmVmOiJjb250ZW50IixzdHlsZTp0LnN0eWxlfSksIndpZHRoRml4Ij09PXQubW9kZXx8ImhlaWdodEZpeCI9PT10Lm1vZGU/bigidi11bmktcmVzaXplLXNlbnNvciIse3JlZjoic2Vuc29yIixvbjp7cmVzaXplOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9maXhTaXplKCl9fX0pOnQuX2UoKV0sMSl9LGk9W119LCIzZTI0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI4N2Q2IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiM2Y4YyI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e319LCIzZmNjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oImI3MjciKS5tYXAsYT1uKCJiNmI3Iiksbz1yLmFUeXBlZEFycmF5LHM9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO3MoIm1hcCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKG8odGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3KGEodCkpKGUpfSkpfSkpfSw0MDAyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiM2NhMyIpO3ZhciByLGk9bigiMjNlNyIpLGE9bigiODNhYiIpLG89bigiZjM1NCIpLHM9bigiZGE4NCIpLGM9bigiMDM2NiIpLHU9bigiZTMzMCIpLGw9bigiY2IyZCIpLGY9bigiZWRkMCIpLGQ9bigiMTlhYSIpLGg9bigiMWEyZCIpLHA9bigiNjBkYSIpLHY9bigiNGRmNCIpLGc9bigiNGRhZSIpLG09bigiNjU0NyIpLmNvZGVBdCxiPW4oIjVmYjIiKSx5PW4oIjU3N2UiKSxfPW4oImQ0NGUiKSx3PW4oImQ2ZDYiKSx4PW4oIjUzNTIiKSxTPW4oIjY5ZjMiKSxUPVMuc2V0LEM9Uy5nZXR0ZXJGb3IoIlVSTCIpLGs9eC5VUkxTZWFyY2hQYXJhbXMsTz14LmdldFN0YXRlLEU9cy5VUkwsST1zLlR5cGVFcnJvcixQPXMucGFyc2VJbnQsTT1NYXRoLmZsb29yLEE9TWF0aC5wb3csJD11KCIiLmNoYXJBdCksTD11KC8uLy5leGVjKSxqPXUoW10uam9pbiksUj11KDEuLnRvU3RyaW5nKSxOPXUoW10ucG9wKSxCPXUoW10ucHVzaCksRD11KCIiLnJlcGxhY2UpLEY9dShbXS5zaGlmdCksVz11KCIiLnNwbGl0KSxIPXUoIiIuc2xpY2UpLFY9dSgiIi50b0xvd2VyQ2FzZSksVT11KFtdLnVuc2hpZnQpLHE9L1thLXpdL2ksej0vW1xkKy0uYS16XS9pLFk9L1xkLyxYPS9eMHgvaSxHPS9eWzAtN10rJC8sUT0vXlxkKyQvLEo9L15bXGRhLWZdKyQvaSxLPS9bXDBcdFxuXHIgIyUvOjw+P0BbXFxcXV58XS8sWj0vW1wwXHRcblxyICMvOjw+P0BbXFxcXV58XS8sdHQ9L15bXHUwMDAwLVx1MDAyMF0rfFtcdTAwMDAtXHUwMDIwXSskL2csZXQ9L1tcdFxuXHJdL2csbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk7aWYoIm51bWJlciI9PXR5cGVvZiB0KXtmb3IoZT1bXSxuPTA7bjw0O24rKylVKGUsdCUyNTYpLHQ9TSh0LzI1Nik7cmV0dXJuIGooZSwiLiIpfWlmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKGU9IiIscj1mdW5jdGlvbih0KXtmb3IodmFyIGU9bnVsbCxuPTEscj1udWxsLGk9MCxhPTA7YTw4O2ErKykwIT09dFthXT8oaT5uJiYoZT1yLG49aSkscj1udWxsLGk9MCk6KG51bGw9PT1yJiYocj1hKSwrK2kpO3JldHVybiBpPm4mJihlPXIsbj1pKSxlfSh0KSxuPTA7bjw4O24rKylpJiYwPT09dFtuXXx8KGkmJihpPSExKSxyPT09bj8oZSs9bj8iOiI6Ijo6IixpPSEwKTooZSs9Uih0W25dLDE2KSxuPDcmJihlKz0iOiIpKSk7cmV0dXJuIlsiK2UrIl0ifXJldHVybiB0fSxydD17fSxpdD1wKHt9LHJ0LHsiICI6MSwnIic6MSwiPCI6MSwiPiI6MSwiYCI6MX0pLGF0PXAoe30saXQseyIjIjoxLCI/IjoxLCJ7IjoxLCJ9IjoxfSksb3Q9cCh7fSxhdCx7Ii8iOjEsIjoiOjEsIjsiOjEsIj0iOjEsIkAiOjEsIlsiOjEsIlxcIjoxLCJdIjoxLCJeIjoxLCJ8IjoxfSksc3Q9ZnVuY3Rpb24odCxlKXt2YXIgbj1tKHQsMCk7cmV0dXJuIG4+MzImJm48MTI3JiYhaChlLHQpP3Q6ZW5jb2RlVVJJQ29tcG9uZW50KHQpfSxjdD17ZnRwOjIxLGZpbGU6bnVsbCxodHRwOjgwLGh0dHBzOjQ0Myx3czo4MCx3c3M6NDQzfSx1dD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiAyPT10Lmxlbmd0aCYmTChxLCQodCwwKSkmJigiOiI9PShuPSQodCwxKSl8fCFlJiYifCI9PW4pfSxsdD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdC5sZW5ndGg+MSYmdXQoSCh0LDAsMikpJiYoMj09dC5sZW5ndGh8fCIvIj09PShlPSQodCwyKSl8fCJcXCI9PT1lfHwiPyI9PT1lfHwiIyI9PT1lKX0sZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIi4iPT09dHx8IiUyZSI9PT1WKHQpfSxkdD1mdW5jdGlvbih0KXtyZXR1cm4gdD1WKHQpLCIuLiI9PT10fHwiJTJlLiI9PT10fHwiLiUyZSI9PT10fHwiJTJlJTJlIj09PXR9LGh0PXt9LHB0PXt9LHZ0PXt9LGd0PXt9LG10PXt9LGJ0PXt9LHl0PXt9LF90PXt9LHd0PXt9LHh0PXt9LFN0PXt9LFR0PXt9LEN0PXt9LGt0PXt9LE90PXt9LEV0PXt9LEl0PXt9LFB0PXt9LE10PXt9LEF0PXt9LCR0PXt9LEx0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLGEsbz15KHQpO2lmKGUpe2lmKGk9dGhpcy5wYXJzZShvKSxpKXRocm93IEkoaSk7dGhpcy5zZWFyY2hQYXJhbXM9bnVsbH1lbHNle2lmKHZvaWQgMCE9PW4mJihyPW5ldyBMdChuLCEwKSksaT10aGlzLnBhcnNlKG8sbnVsbCxyKSxpKXRocm93IEkoaSk7YT1PKG5ldyBrKSxhLmJpbmRVUkwodGhpcyksdGhpcy5zZWFyY2hQYXJhbXM9YX19O0x0LnByb3RvdHlwZT17dHlwZToiVVJMIixwYXJzZTpmdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHMsYz10aGlzLHU9ZXx8aHQsbD0wLGY9IiIsZD0hMSxwPSExLG09ITE7dD15KHQpLGV8fChjLnNjaGVtZT0iIixjLnVzZXJuYW1lPSIiLGMucGFzc3dvcmQ9IiIsYy5ob3N0PW51bGwsYy5wb3J0PW51bGwsYy5wYXRoPVtdLGMucXVlcnk9bnVsbCxjLmZyYWdtZW50PW51bGwsYy5jYW5ub3RCZUFCYXNlVVJMPSExLHQ9RCh0LHR0LCIiKSksdD1EKHQsZXQsIiIpLGk9dih0KTt3aGlsZShsPD1pLmxlbmd0aCl7c3dpdGNoKGE9aVtsXSx1KXtjYXNlIGh0OmlmKCFhfHwhTChxLGEpKXtpZihlKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7dT12dDtjb250aW51ZX1mKz1WKGEpLHU9cHQ7YnJlYWs7Y2FzZSBwdDppZihhJiYoTCh6LGEpfHwiKyI9PWF8fCItIj09YXx8Ii4iPT1hKSlmKz1WKGEpO2Vsc2V7aWYoIjoiIT1hKXtpZihlKXJldHVybiJJbnZhbGlkIHNjaGVtZSI7Zj0iIix1PXZ0LGw9MDtjb250aW51ZX1pZihlJiYoYy5pc1NwZWNpYWwoKSE9aChjdCxmKXx8ImZpbGUiPT1mJiYoYy5pbmNsdWRlc0NyZWRlbnRpYWxzKCl8fG51bGwhPT1jLnBvcnQpfHwiZmlsZSI9PWMuc2NoZW1lJiYhYy5ob3N0KSlyZXR1cm47aWYoYy5zY2hlbWU9ZixlKXJldHVybiB2b2lkKGMuaXNTcGVjaWFsKCkmJmN0W2Muc2NoZW1lXT09Yy5wb3J0JiYoYy5wb3J0PW51bGwpKTtmPSIiLCJmaWxlIj09Yy5zY2hlbWU/dT1rdDpjLmlzU3BlY2lhbCgpJiZuJiZuLnNjaGVtZT09Yy5zY2hlbWU/dT1ndDpjLmlzU3BlY2lhbCgpP3U9X3Q6Ii8iPT1pW2wrMV0/KHU9bXQsbCsrKTooYy5jYW5ub3RCZUFCYXNlVVJMPSEwLEIoYy5wYXRoLCIiKSx1PU10KX1icmVhaztjYXNlIHZ0OmlmKCFufHxuLmNhbm5vdEJlQUJhc2VVUkwmJiIjIiE9YSlyZXR1cm4iSW52YWxpZCBzY2hlbWUiO2lmKG4uY2Fubm90QmVBQmFzZVVSTCYmIiMiPT1hKXtjLnNjaGVtZT1uLnNjaGVtZSxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9bi5xdWVyeSxjLmZyYWdtZW50PSIiLGMuY2Fubm90QmVBQmFzZVVSTD0hMCx1PSR0O2JyZWFrfXU9ImZpbGUiPT1uLnNjaGVtZT9rdDpidDtjb250aW51ZTtjYXNlIGd0OmlmKCIvIiE9YXx8Ii8iIT1pW2wrMV0pe3U9YnQ7Y29udGludWV9dT13dCxsKys7YnJlYWs7Y2FzZSBtdDppZigiLyI9PWEpe3U9eHQ7YnJlYWt9dT1QdDtjb250aW51ZTtjYXNlIGJ0OmlmKGMuc2NoZW1lPW4uc2NoZW1lLGE9PXIpYy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PW4ucXVlcnk7ZWxzZSBpZigiLyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCkpdT15dDtlbHNlIGlmKCI/Ij09YSljLnVzZXJuYW1lPW4udXNlcm5hbWUsYy5wYXNzd29yZD1uLnBhc3N3b3JkLGMuaG9zdD1uLmhvc3QsYy5wb3J0PW4ucG9ydCxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9IiIsdT1BdDtlbHNle2lmKCIjIiE9YSl7Yy51c2VybmFtZT1uLnVzZXJuYW1lLGMucGFzc3dvcmQ9bi5wYXNzd29yZCxjLmhvc3Q9bi5ob3N0LGMucG9ydD1uLnBvcnQsYy5wYXRoPWcobi5wYXRoKSxjLnBhdGgubGVuZ3RoLS0sdT1QdDtjb250aW51ZX1jLnVzZXJuYW1lPW4udXNlcm5hbWUsYy5wYXNzd29yZD1uLnBhc3N3b3JkLGMuaG9zdD1uLmhvc3QsYy5wb3J0PW4ucG9ydCxjLnBhdGg9ZyhuLnBhdGgpLGMucXVlcnk9bi5xdWVyeSxjLmZyYWdtZW50PSIiLHU9JHR9YnJlYWs7Y2FzZSB5dDppZighYy5pc1NwZWNpYWwoKXx8Ii8iIT1hJiYiXFwiIT1hKXtpZigiLyIhPWEpe2MudXNlcm5hbWU9bi51c2VybmFtZSxjLnBhc3N3b3JkPW4ucGFzc3dvcmQsYy5ob3N0PW4uaG9zdCxjLnBvcnQ9bi5wb3J0LHU9UHQ7Y29udGludWV9dT14dH1lbHNlIHU9d3Q7YnJlYWs7Y2FzZSBfdDppZih1PXd0LCIvIiE9YXx8Ii8iIT0kKGYsbCsxKSljb250aW51ZTtsKys7YnJlYWs7Y2FzZSB3dDppZigiLyIhPWEmJiJcXCIhPWEpe3U9eHQ7Y29udGludWV9YnJlYWs7Y2FzZSB4dDppZigiQCI9PWEpe2QmJihmPSIlNDAiK2YpLGQ9ITAsbz12KGYpO2Zvcih2YXIgYj0wO2I8by5sZW5ndGg7YisrKXt2YXIgXz1vW2JdO2lmKCI6IiE9X3x8bSl7dmFyIHc9c3QoXyxvdCk7bT9jLnBhc3N3b3JkKz13OmMudXNlcm5hbWUrPXd9ZWxzZSBtPSEwfWY9IiJ9ZWxzZSBpZihhPT1yfHwiLyI9PWF8fCI/Ij09YXx8IiMiPT1hfHwiXFwiPT1hJiZjLmlzU3BlY2lhbCgpKXtpZihkJiYiIj09ZilyZXR1cm4iSW52YWxpZCBhdXRob3JpdHkiO2wtPXYoZikubGVuZ3RoKzEsZj0iIix1PVN0fWVsc2UgZis9YTticmVhaztjYXNlIFN0OmNhc2UgVHQ6aWYoZSYmImZpbGUiPT1jLnNjaGVtZSl7dT1FdDtjb250aW51ZX1pZigiOiIhPWF8fHApe2lmKGE9PXJ8fCIvIj09YXx8Ij8iPT1hfHwiIyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCkpe2lmKGMuaXNTcGVjaWFsKCkmJiIiPT1mKXJldHVybiJJbnZhbGlkIGhvc3QiO2lmKGUmJiIiPT1mJiYoYy5pbmNsdWRlc0NyZWRlbnRpYWxzKCl8fG51bGwhPT1jLnBvcnQpKXJldHVybjtpZihzPWMucGFyc2VIb3N0KGYpLHMpcmV0dXJuIHM7aWYoZj0iIix1PUl0LGUpcmV0dXJuO2NvbnRpbnVlfSJbIj09YT9wPSEwOiJdIj09YSYmKHA9ITEpLGYrPWF9ZWxzZXtpZigiIj09ZilyZXR1cm4iSW52YWxpZCBob3N0IjtpZihzPWMucGFyc2VIb3N0KGYpLHMpcmV0dXJuIHM7aWYoZj0iIix1PUN0LGU9PVR0KXJldHVybn1icmVhaztjYXNlIEN0OmlmKCFMKFksYSkpe2lmKGE9PXJ8fCIvIj09YXx8Ij8iPT1hfHwiIyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCl8fGUpe2lmKCIiIT1mKXt2YXIgeD1QKGYsMTApO2lmKHg+NjU1MzUpcmV0dXJuIkludmFsaWQgcG9ydCI7Yy5wb3J0PWMuaXNTcGVjaWFsKCkmJng9PT1jdFtjLnNjaGVtZV0/bnVsbDp4LGY9IiJ9aWYoZSlyZXR1cm47dT1JdDtjb250aW51ZX1yZXR1cm4iSW52YWxpZCBwb3J0In1mKz1hO2JyZWFrO2Nhc2Uga3Q6aWYoYy5zY2hlbWU9ImZpbGUiLCIvIj09YXx8IlxcIj09YSl1PU90O2Vsc2V7aWYoIW58fCJmaWxlIiE9bi5zY2hlbWUpe3U9UHQ7Y29udGludWV9aWYoYT09ciljLmhvc3Q9bi5ob3N0LGMucGF0aD1nKG4ucGF0aCksYy5xdWVyeT1uLnF1ZXJ5O2Vsc2UgaWYoIj8iPT1hKWMuaG9zdD1uLmhvc3QsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PSIiLHU9QXQ7ZWxzZXtpZigiIyIhPWEpe2x0KGooZyhpLGwpLCIiKSl8fChjLmhvc3Q9bi5ob3N0LGMucGF0aD1nKG4ucGF0aCksYy5zaG9ydGVuUGF0aCgpKSx1PVB0O2NvbnRpbnVlfWMuaG9zdD1uLmhvc3QsYy5wYXRoPWcobi5wYXRoKSxjLnF1ZXJ5PW4ucXVlcnksYy5mcmFnbWVudD0iIix1PSR0fX1icmVhaztjYXNlIE90OmlmKCIvIj09YXx8IlxcIj09YSl7dT1FdDticmVha31uJiYiZmlsZSI9PW4uc2NoZW1lJiYhbHQoaihnKGksbCksIiIpKSYmKHV0KG4ucGF0aFswXSwhMCk/QihjLnBhdGgsbi5wYXRoWzBdKTpjLmhvc3Q9bi5ob3N0KSx1PVB0O2NvbnRpbnVlO2Nhc2UgRXQ6aWYoYT09cnx8Ii8iPT1hfHwiXFwiPT1hfHwiPyI9PWF8fCIjIj09YSl7aWYoIWUmJnV0KGYpKXU9UHQ7ZWxzZSBpZigiIj09Zil7aWYoYy5ob3N0PSIiLGUpcmV0dXJuO3U9SXR9ZWxzZXtpZihzPWMucGFyc2VIb3N0KGYpLHMpcmV0dXJuIHM7aWYoImxvY2FsaG9zdCI9PWMuaG9zdCYmKGMuaG9zdD0iIiksZSlyZXR1cm47Zj0iIix1PUl0fWNvbnRpbnVlfWYrPWE7YnJlYWs7Y2FzZSBJdDppZihjLmlzU3BlY2lhbCgpKXtpZih1PVB0LCIvIiE9YSYmIlxcIiE9YSljb250aW51ZX1lbHNlIGlmKGV8fCI/IiE9YSlpZihlfHwiIyIhPWEpe2lmKGEhPXImJih1PVB0LCIvIiE9YSkpY29udGludWV9ZWxzZSBjLmZyYWdtZW50PSIiLHU9JHQ7ZWxzZSBjLnF1ZXJ5PSIiLHU9QXQ7YnJlYWs7Y2FzZSBQdDppZihhPT1yfHwiLyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCl8fCFlJiYoIj8iPT1hfHwiIyI9PWEpKXtpZihkdChmKT8oYy5zaG9ydGVuUGF0aCgpLCIvIj09YXx8IlxcIj09YSYmYy5pc1NwZWNpYWwoKXx8QihjLnBhdGgsIiIpKTpmdChmKT8iLyI9PWF8fCJcXCI9PWEmJmMuaXNTcGVjaWFsKCl8fEIoYy5wYXRoLCIiKTooImZpbGUiPT1jLnNjaGVtZSYmIWMucGF0aC5sZW5ndGgmJnV0KGYpJiYoYy5ob3N0JiYoYy5ob3N0PSIiKSxmPSQoZiwwKSsiOiIpLEIoYy5wYXRoLGYpKSxmPSIiLCJmaWxlIj09Yy5zY2hlbWUmJihhPT1yfHwiPyI9PWF8fCIjIj09YSkpd2hpbGUoYy5wYXRoLmxlbmd0aD4xJiYiIj09PWMucGF0aFswXSlGKGMucGF0aCk7Ij8iPT1hPyhjLnF1ZXJ5PSIiLHU9QXQpOiIjIj09YSYmKGMuZnJhZ21lbnQ9IiIsdT0kdCl9ZWxzZSBmKz1zdChhLGF0KTticmVhaztjYXNlIE10OiI/Ij09YT8oYy5xdWVyeT0iIix1PUF0KToiIyI9PWE/KGMuZnJhZ21lbnQ9IiIsdT0kdCk6YSE9ciYmKGMucGF0aFswXSs9c3QoYSxydCkpO2JyZWFrO2Nhc2UgQXQ6ZXx8IiMiIT1hP2EhPXImJigiJyI9PWEmJmMuaXNTcGVjaWFsKCk/Yy5xdWVyeSs9IiUyNyI6Yy5xdWVyeSs9IiMiPT1hPyIlMjMiOnN0KGEscnQpKTooYy5mcmFnbWVudD0iIix1PSR0KTticmVhaztjYXNlICR0OmEhPXImJihjLmZyYWdtZW50Kz1zdChhLGl0KSk7YnJlYWt9bCsrfX0scGFyc2VIb3N0OmZ1bmN0aW9uKHQpe3ZhciBlLG4scjtpZigiWyI9PSQodCwwKSl7aWYoIl0iIT0kKHQsdC5sZW5ndGgtMSkpcmV0dXJuIkludmFsaWQgaG9zdCI7aWYoZT1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxhLG8scyxjPVswLDAsMCwwLDAsMCwwLDBdLHU9MCxsPW51bGwsZj0wLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gJCh0LGYpfTtpZigiOiI9PWQoKSl7aWYoIjoiIT0kKHQsMSkpcmV0dXJuO2YrPTIsdSsrLGw9dX13aGlsZShkKCkpe2lmKDg9PXUpcmV0dXJuO2lmKCI6IiE9ZCgpKXtlPW49MDt3aGlsZShuPDQmJkwoSixkKCkpKWU9MTYqZStQKGQoKSwxNiksZisrLG4rKztpZigiLiI9PWQoKSl7aWYoMD09bilyZXR1cm47aWYoZi09bix1PjYpcmV0dXJuO3I9MDt3aGlsZShkKCkpe2lmKGk9bnVsbCxyPjApe2lmKCEoIi4iPT1kKCkmJnI8NCkpcmV0dXJuO2YrK31pZighTChZLGQoKSkpcmV0dXJuO3doaWxlKEwoWSxkKCkpKXtpZihhPVAoZCgpLDEwKSxudWxsPT09aSlpPWE7ZWxzZXtpZigwPT1pKXJldHVybjtpPTEwKmkrYX1pZihpPjI1NSlyZXR1cm47ZisrfWNbdV09MjU2KmNbdV0raSxyKyssMiE9ciYmNCE9cnx8dSsrfWlmKDQhPXIpcmV0dXJuO2JyZWFrfWlmKCI6Ij09ZCgpKXtpZihmKyssIWQoKSlyZXR1cm59ZWxzZSBpZihkKCkpcmV0dXJuO2NbdSsrXT1lfWVsc2V7aWYobnVsbCE9PWwpcmV0dXJuO2YrKyx1KyssbD11fX1pZihudWxsIT09bCl7bz11LWwsdT03O3doaWxlKDAhPXUmJm8+MClzPWNbdV0sY1t1LS1dPWNbbCtvLTFdLGNbbCstLW9dPXN9ZWxzZSBpZig4IT11KXJldHVybjtyZXR1cm4gY30oSCh0LDEsLTEpKSwhZSlyZXR1cm4iSW52YWxpZCBob3N0Ijt0aGlzLmhvc3Q9ZX1lbHNlIGlmKHRoaXMuaXNTcGVjaWFsKCkpe2lmKHQ9Yih0KSxMKEssdCkpcmV0dXJuIkludmFsaWQgaG9zdCI7aWYoZT1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxhLG8scyxjPVcodCwiLiIpO2lmKGMubGVuZ3RoJiYiIj09Y1tjLmxlbmd0aC0xXSYmYy5sZW5ndGgtLSxlPWMubGVuZ3RoLGU+NClyZXR1cm4gdDtmb3Iobj1bXSxyPTA7cjxlO3IrKyl7aWYoaT1jW3JdLCIiPT1pKXJldHVybiB0O2lmKGE9MTAsaS5sZW5ndGg+MSYmIjAiPT0kKGksMCkmJihhPUwoWCxpKT8xNjo4LGk9SChpLDg9PWE/MToyKSksIiI9PT1pKW89MDtlbHNle2lmKCFMKDEwPT1hP1E6OD09YT9HOkosaSkpcmV0dXJuIHQ7bz1QKGksYSl9QihuLG8pfWZvcihyPTA7cjxlO3IrKylpZihvPW5bcl0scj09ZS0xKXtpZihvPj1BKDI1Niw1LWUpKXJldHVybiBudWxsfWVsc2UgaWYobz4yNTUpcmV0dXJuIG51bGw7Zm9yKHM9TihuKSxyPTA7cjxuLmxlbmd0aDtyKyspcys9bltyXSpBKDI1NiwzLXIpO3JldHVybiBzfSh0KSxudWxsPT09ZSlyZXR1cm4iSW52YWxpZCBob3N0Ijt0aGlzLmhvc3Q9ZX1lbHNle2lmKEwoWix0KSlyZXR1cm4iSW52YWxpZCBob3N0Ijtmb3IoZT0iIixuPXYodCkscj0wO3I8bi5sZW5ndGg7cisrKWUrPXN0KG5bcl0scnQpO3RoaXMuaG9zdD1lfX0sY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaG9zdHx8dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHwiZmlsZSI9PXRoaXMuc2NoZW1lfSxpbmNsdWRlc0NyZWRlbnRpYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIiIhPXRoaXMudXNlcm5hbWV8fCIiIT10aGlzLnBhc3N3b3JkfSxpc1NwZWNpYWw6ZnVuY3Rpb24oKXtyZXR1cm4gaChjdCx0aGlzLnNjaGVtZSl9LHNob3J0ZW5QYXRoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXRoLGU9dC5sZW5ndGg7IWV8fCJmaWxlIj09dGhpcy5zY2hlbWUmJjE9PWUmJnV0KHRbMF0sITApfHx0Lmxlbmd0aC0tfSxzZXJpYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5zY2hlbWUsbj10LnVzZXJuYW1lLHI9dC5wYXNzd29yZCxpPXQuaG9zdCxhPXQucG9ydCxvPXQucGF0aCxzPXQucXVlcnksYz10LmZyYWdtZW50LHU9ZSsiOiI7cmV0dXJuIG51bGwhPT1pPyh1Kz0iLy8iLHQuaW5jbHVkZXNDcmVkZW50aWFscygpJiYodSs9bisocj8iOiIrcjoiIikrIkAiKSx1Kz1udChpKSxudWxsIT09YSYmKHUrPSI6IithKSk6ImZpbGUiPT1lJiYodSs9Ii8vIiksdSs9dC5jYW5ub3RCZUFCYXNlVVJMP29bMF06by5sZW5ndGg/Ii8iK2oobywiLyIpOiIiLG51bGwhPT1zJiYodSs9Ij8iK3MpLG51bGwhPT1jJiYodSs9IiMiK2MpLHV9LHNldEhyZWY6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5wYXJzZSh0KTtpZihlKXRocm93IEkoZSk7dGhpcy5zZWFyY2hQYXJhbXMudXBkYXRlKCl9LGdldE9yaWdpbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2NoZW1lLGU9dGhpcy5wb3J0O2lmKCJibG9iIj09dCl0cnl7cmV0dXJuIG5ldyBqdCh0LnBhdGhbMF0pLm9yaWdpbn1jYXRjaChuKXtyZXR1cm4ibnVsbCJ9cmV0dXJuImZpbGUiIT10JiZ0aGlzLmlzU3BlY2lhbCgpP3QrIjovLyIrbnQodGhpcy5ob3N0KSsobnVsbCE9PWU/IjoiK2U6IiIpOiJudWxsIn0sZ2V0UHJvdG9jb2w6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zY2hlbWUrIjoifSxzZXRQcm90b2NvbDpmdW5jdGlvbih0KXt0aGlzLnBhcnNlKHkodCkrIjoiLGh0KX0sZ2V0VXNlcm5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51c2VybmFtZX0sc2V0VXNlcm5hbWU6ZnVuY3Rpb24odCl7dmFyIGU9dih5KHQpKTtpZighdGhpcy5jYW5ub3RIYXZlVXNlcm5hbWVQYXNzd29yZFBvcnQoKSl7dGhpcy51c2VybmFtZT0iIjtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLnVzZXJuYW1lKz1zdChlW25dLG90KX19LGdldFBhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFzc3dvcmR9LHNldFBhc3N3b3JkOmZ1bmN0aW9uKHQpe3ZhciBlPXYoeSh0KSk7aWYoIXRoaXMuY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0KCkpe3RoaXMucGFzc3dvcmQ9IiI7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspdGhpcy5wYXNzd29yZCs9c3QoZVtuXSxvdCl9fSxnZXRIb3N0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ob3N0LGU9dGhpcy5wb3J0O3JldHVybiBudWxsPT09dD8iIjpudWxsPT09ZT9udCh0KTpudCh0KSsiOiIrZX0sc2V0SG9zdDpmdW5jdGlvbih0KXt0aGlzLmNhbm5vdEJlQUJhc2VVUkx8fHRoaXMucGFyc2UodCxTdCl9LGdldEhvc3RuYW1lOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ob3N0O3JldHVybiBudWxsPT09dD8iIjpudCh0KX0sc2V0SG9zdG5hbWU6ZnVuY3Rpb24odCl7dGhpcy5jYW5ub3RCZUFCYXNlVVJMfHx0aGlzLnBhcnNlKHQsVHQpfSxnZXRQb3J0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3J0O3JldHVybiBudWxsPT09dD8iIjp5KHQpfSxzZXRQb3J0OmZ1bmN0aW9uKHQpe3RoaXMuY2Fubm90SGF2ZVVzZXJuYW1lUGFzc3dvcmRQb3J0KCl8fCh0PXkodCksIiI9PXQ/dGhpcy5wb3J0PW51bGw6dGhpcy5wYXJzZSh0LEN0KSl9LGdldFBhdGhuYW1lOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wYXRoO3JldHVybiB0aGlzLmNhbm5vdEJlQUJhc2VVUkw/dFswXTp0Lmxlbmd0aD8iLyIraih0LCIvIik6IiJ9LHNldFBhdGhuYW1lOmZ1bmN0aW9uKHQpe3RoaXMuY2Fubm90QmVBQmFzZVVSTHx8KHRoaXMucGF0aD1bXSx0aGlzLnBhcnNlKHQsSXQpKX0sZ2V0U2VhcmNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5xdWVyeTtyZXR1cm4gdD8iPyIrdDoiIn0sc2V0U2VhcmNoOmZ1bmN0aW9uKHQpe3Q9eSh0KSwiIj09dD90aGlzLnF1ZXJ5PW51bGw6KCI/Ij09JCh0LDApJiYodD1IKHQsMSkpLHRoaXMucXVlcnk9IiIsdGhpcy5wYXJzZSh0LEF0KSksdGhpcy5zZWFyY2hQYXJhbXMudXBkYXRlKCl9LGdldFNlYXJjaFBhcmFtczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlYXJjaFBhcmFtcy5mYWNhZGV9LGdldEhhc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZyYWdtZW50O3JldHVybiB0PyIjIit0OiIifSxzZXRIYXNoOmZ1bmN0aW9uKHQpe3Q9eSh0KSwiIiE9dD8oIiMiPT0kKHQsMCkmJih0PUgodCwxKSksdGhpcy5mcmFnbWVudD0iIix0aGlzLnBhcnNlKHQsJHQpKTp0aGlzLmZyYWdtZW50PW51bGx9LHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMucXVlcnk9dGhpcy5zZWFyY2hQYXJhbXMuc2VyaWFsaXplKCl8fG51bGx9fTt2YXIganQ9ZnVuY3Rpb24odCl7dmFyIGU9ZCh0aGlzLFJ0KSxuPXcoYXJndW1lbnRzLmxlbmd0aCwxKT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAscj1UKGUsbmV3IEx0KHQsITEsbikpO2F8fChlLmhyZWY9ci5zZXJpYWxpemUoKSxlLm9yaWdpbj1yLmdldE9yaWdpbigpLGUucHJvdG9jb2w9ci5nZXRQcm90b2NvbCgpLGUudXNlcm5hbWU9ci5nZXRVc2VybmFtZSgpLGUucGFzc3dvcmQ9ci5nZXRQYXNzd29yZCgpLGUuaG9zdD1yLmdldEhvc3QoKSxlLmhvc3RuYW1lPXIuZ2V0SG9zdG5hbWUoKSxlLnBvcnQ9ci5nZXRQb3J0KCksZS5wYXRobmFtZT1yLmdldFBhdGhuYW1lKCksZS5zZWFyY2g9ci5nZXRTZWFyY2goKSxlLnNlYXJjaFBhcmFtcz1yLmdldFNlYXJjaFBhcmFtcygpLGUuaGFzaD1yLmdldEhhc2goKSl9LFJ0PWp0LnByb3RvdHlwZSxOdD1mdW5jdGlvbih0LGUpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzKVt0XSgpfSxzZXQ6ZSYmZnVuY3Rpb24odCl7cmV0dXJuIEModGhpcylbZV0odCl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX07aWYoYSYmKGYoUnQsImhyZWYiLE50KCJzZXJpYWxpemUiLCJzZXRIcmVmIikpLGYoUnQsIm9yaWdpbiIsTnQoImdldE9yaWdpbiIpKSxmKFJ0LCJwcm90b2NvbCIsTnQoImdldFByb3RvY29sIiwic2V0UHJvdG9jb2wiKSksZihSdCwidXNlcm5hbWUiLE50KCJnZXRVc2VybmFtZSIsInNldFVzZXJuYW1lIikpLGYoUnQsInBhc3N3b3JkIixOdCgiZ2V0UGFzc3dvcmQiLCJzZXRQYXNzd29yZCIpKSxmKFJ0LCJob3N0IixOdCgiZ2V0SG9zdCIsInNldEhvc3QiKSksZihSdCwiaG9zdG5hbWUiLE50KCJnZXRIb3N0bmFtZSIsInNldEhvc3RuYW1lIikpLGYoUnQsInBvcnQiLE50KCJnZXRQb3J0Iiwic2V0UG9ydCIpKSxmKFJ0LCJwYXRobmFtZSIsTnQoImdldFBhdGhuYW1lIiwic2V0UGF0aG5hbWUiKSksZihSdCwic2VhcmNoIixOdCgiZ2V0U2VhcmNoIiwic2V0U2VhcmNoIikpLGYoUnQsInNlYXJjaFBhcmFtcyIsTnQoImdldFNlYXJjaFBhcmFtcyIpKSxmKFJ0LCJoYXNoIixOdCgiZ2V0SGFzaCIsInNldEhhc2giKSkpLGwoUnQsInRvSlNPTiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcykuc2VyaWFsaXplKCl9KSx7ZW51bWVyYWJsZTohMH0pLGwoUnQsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gQyh0aGlzKS5zZXJpYWxpemUoKX0pLHtlbnVtZXJhYmxlOiEwfSksRSl7dmFyIEJ0PUUuY3JlYXRlT2JqZWN0VVJMLER0PUUucmV2b2tlT2JqZWN0VVJMO0J0JiZsKGp0LCJjcmVhdGVPYmplY3RVUkwiLGMoQnQsRSkpLER0JiZsKGp0LCJyZXZva2VPYmplY3RVUkwiLGMoRHQsRSkpfV8oanQsIlVSTCIpLGkoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6IW8sc2hhbTohYX0se1VSTDpqdH0pfSwiNDA4YSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKTt0LmV4cG9ydHM9cigxLi52YWx1ZU9mKX0sIjQwZDUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5Iik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpfSwiNDBkYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucGx1c1JlYWR5PWZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgdClyZXR1cm47aWYod2luZG93LnBsdXMpcmV0dXJuIHQoKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwbHVzcmVhZHkiLHQpfX0sIjQxYWUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCJkYmNlIikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jcmVhdGVBcHBNaXhpbj1mdW5jdGlvbihlLG4scil7cmV0dXJue2NyZWF0ZWQ6ZnVuY3Rpb24oKXsoMCxhLmRlZmF1bHQpKGUsdGhpcyxuKSxyLm1ldGEubmFtZXx8dC5lbWl0KCJvblBhZ2VOb3RGb3VuZCIse3BhdGg6ci5wYXRoLHF1ZXJ5OnIucXVlcnksaXNFbnRyeVBhZ2U6ITB9KX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt0aGlzLiRlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIil9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtsKHtwYXRoOnRoaXMuJHJvdXRlLm1ldGEmJnRoaXMuJHJvdXRlLm1ldGEucGFnZVBhdGgscXVlcnk6dGhpcy4kcm91dGUucXVlcnl9KSwoMCxpLmNhbGxBcHBIb29rKSh0aGlzLCJvbkxhdW5jaCIsdSksKDAsaS5jYWxsQXBwSG9vaykodGhpcywib25TaG93IixjKX19fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0QXBwIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRBcHB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImdldEN1cnJlbnRQYWdlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Q3VycmVudFBhZ2VzfX0pLGUuZ2V0RW50ZXJPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LGUuZ2V0TGF1bmNoT3B0aW9ucz1mdW5jdGlvbigpe3JldHVybiB1fSxlLmluaXRMYXVuY2hPcHRpb25zPWw7dmFyIGk9bigiNTU5YSIpLGE9cihuKCJjMTllIikpLG89T2JqZWN0LmFzc2lnbjtmdW5jdGlvbiBzKCl7cmV0dXJue3BhdGg6IiIscXVlcnk6e30sc2NlbmU6MTAwMSxyZWZlcnJlckluZm86e2FwcElkOiIiLGV4dHJhRGF0YTp7fX19fXZhciBjPXMoKSx1PXMoKTtmdW5jdGlvbiBsKHQpe3ZhciBlPXQucGF0aCxuPXQucXVlcnkscj10LnJlZmVycmVySW5mbztyZXR1cm4gbyh1LHtwYXRoOmUscXVlcnk6bnx8e30scmVmZXJyZXJJbmZvOnJ8fHt9fSksbyhjLHUpLHV9fSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCI0MjhmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpO3QuZXhwb3J0cz1yfSw0NDAzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXF1ZXN0Q29tcG9uZW50SW5mbz1mdW5jdGlvbihlLG4pe3ZhciByLGk9ZS5yZXFJZCxhPWUucmVxcztpZihuLl9pc1Z1ZSlyPW47ZWxzZXt2YXIgbz1nZXRDdXJyZW50UGFnZXMoKSx1PW8uZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1ufSkpO2lmKCF1KXRocm93IG5ldyBFcnJvcigiTm90IEZvdW5k77yaUGFnZVsiLmNvbmNhdChuLCJdIikpO3I9dS4kdm19dmFyIGw9W107YS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmNvbXBvbmVudCxuPXQuc2VsZWN0b3IsaT10LnNpbmdsZSxhPXQuZmllbGRzOzA9PT1lP2wucHVzaChmdW5jdGlvbih0KXt2YXIgZT17fTt0LmlkJiYoZS5pZD0iIik7dC5kYXRhc2V0JiYoZS5kYXRhc2V0PXt9KTt0LnJlY3QmJihlLmxlZnQ9MCxlLnJpZ2h0PTAsZS50b3A9MCxlLmJvdHRvbT0wKTt0LnNpemUmJihlLndpZHRoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxlLmhlaWdodD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KTtpZih0LnNjcm9sbE9mZnNldCl7dmFyIG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9ZG9jdW1lbnQuYm9keTtlLnNjcm9sbExlZnQ9bi5zY3JvbGxMZWZ0fHxyLnNjcm9sbExlZnR8fDAsZS5zY3JvbGxUb3A9bi5zY3JvbGxUb3B8fHIuc2Nyb2xsVG9wfHwwLGUuc2Nyb2xsSGVpZ2h0PW4uc2Nyb2xsSGVpZ2h0fHxyLnNjcm9sbEhlaWdodHx8MCxlLnNjcm9sbFdpZHRoPW4uc2Nyb2xsV2lkdGh8fHIuc2Nyb2xsV2lkdGh8fDB9cmV0dXJuIGV9KGEpKTpsLnB1c2goZnVuY3Rpb24odCxlLG4scixpKXt2YXIgYT0oMCxzLmVsZW1lbnRNYXRjaGVzUG9seWZpbGwpKCgwLHMuZmluZEVsbSkoZSx0KSk7aWYoIWF8fGEmJjg9PT1hLm5vZGVUeXBlKXJldHVybiByP251bGw6W107aWYocil7dmFyIG89YS5tYXRjaGVzKG4pP2E6YS5xdWVyeVNlbGVjdG9yKG4pO3JldHVybiBvP2MobyxpKTpudWxsfXZhciB1PVtdLGw9YS5xdWVyeVNlbGVjdG9yQWxsKG4pO3JldHVybiBsJiZsLmxlbmd0aCYmKHU9W10ubWFwLmNhbGwobCwoZnVuY3Rpb24odCl7cmV0dXJuIGModCxpKX0pKSksYS5tYXRjaGVzKG4pJiZ1LnVuc2hpZnQoYyhhLGkpKSx1fShyLGUsbixpLGEpKX0pKSx0LnB1Ymxpc2hIYW5kbGVyKCJvblJlcXVlc3RDb21wb25lbnRJbmZvIix7cmVxSWQ6aSxyZXM6bH0pfSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImQ4MWQiKSxuKCIzYzY1IiksbigiN2RiMCIpLG4oImQ5ZTIiKSxuKCJkNDAxIiksbigiMTRkOSIpO3ZhciBpPW4oImY0ZjAiKSxhPW4oImRiNmEiKSxvPXIobigiNGZjYiIpKSxzPW4oIjA4YzUiKTtmdW5jdGlvbiBjKHQsZSl7dmFyIG49e30scj0oMCxvLmRlZmF1bHQpKCkscz1yLnRvcDtpZihlLmlkJiYobi5pZD10LmlkKSxlLmRhdGFzZXQmJihuLmRhdGFzZXQ9KDAsaS5nZXRUYXJnZXREYXRhc2V0KSh0KSksZS5yZWN0fHxlLnNpemUpe3ZhciBjPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ZS5yZWN0JiYobi5sZWZ0PWMubGVmdCxuLnJpZ2h0PWMucmlnaHQsbi50b3A9Yy50b3AtcyxuLmJvdHRvbT1jLmJvdHRvbS1zKSxlLnNpemUmJihuLndpZHRoPWMud2lkdGgsbi5oZWlnaHQ9Yy5oZWlnaHQpfWlmKEFycmF5LmlzQXJyYXkoZS5wcm9wZXJ0aWVzKSl7dmFyIHU9dC5fX3Z1ZV9fJiZ0Ll9fdnVlX18uJHByb3BzO3UmJmUucHJvcGVydGllcy5mb3JFYWNoKChmdW5jdGlvbih0KXsic3RyaW5nIj09PXR5cGVvZiB0JiYodD0oMCxhLmNhbWVsaXplKSh0KSxudWxsIT11W3RdJiYoblt0XT11W3RdKSl9KSl9aWYoZS5zY3JvbGxPZmZzZXQmJigiVU5JLVNDUk9MTC1WSUVXIj09PXQudGFnTmFtZSYmdC5fX3Z1ZV9fJiZ0Ll9fdnVlX18uZ2V0U2Nyb2xsUG9zaXRpb24/T2JqZWN0LmFzc2lnbihuLHQuX192dWVfXy5nZXRTY3JvbGxQb3NpdGlvbigpKToobi5zY3JvbGxMZWZ0PTAsbi5zY3JvbGxUb3A9MCxuLnNjcm9sbEhlaWdodD0wLG4uc2Nyb2xsV2lkdGg9MCkpLEFycmF5LmlzQXJyYXkoZS5jb21wdXRlZFN0eWxlKSl7dmFyIGw9Z2V0Q29tcHV0ZWRTdHlsZSh0KTtlLmNvbXB1dGVkU3R5bGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT1sW3RdfSkpfXJldHVybiBlLmNvbnRleHQmJnQuX192dWVfXyYmdC5fX3Z1ZV9fLl9nZXRDb250ZXh0SW5mbyYmKG4uY29udGV4dD10Ll9fdnVlX18uX2dldENvbnRleHRJbmZvKCkpLG59fSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LDQ0NzU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlVmlkZW9Db250ZXh0PWUuY3JlYXRlTWFwQ29udGV4dD1lLmNyZWF0ZUNhbnZhc0NvbnRleHQ9ZS5jcmVhdGVBdWRpb0NvbnRleHQ9dm9pZCAwO3ZhciByPVt7bmFtZToiaWQiLHR5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfV0saT1yO2UuY3JlYXRlQXVkaW9Db250ZXh0PWk7dmFyIGE9cjtlLmNyZWF0ZVZpZGVvQ29udGV4dD1hO3ZhciBvPXI7ZS5jcmVhdGVNYXBDb250ZXh0PW87dmFyIHM9W3tuYW1lOiJjYW52YXNJZCIsdHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHtuYW1lOiJjb21wb25lbnRJbnN0YW5jZSIsdHlwZTpPYmplY3R9XTtlLmNyZWF0ZUNhbnZhc0NvbnRleHQ9c30sIjQ0YWQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCJkMDM5IiksYT1uKCJjNmI2Iiksbz1PYmplY3Qscz1yKCIiLnNwbGl0KTt0LmV4cG9ydHM9aSgoZnVuY3Rpb24oKXtyZXR1cm4hbygieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHQpe3JldHVybiJTdHJpbmciPT1hKHQpP3ModCwiIik6byh0KX06b30sIjQ0ZDIiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIiksaT1uKCI3YzczIiksYT1uKCI5YmYyIikuZixvPXIoInVuc2NvcGFibGVzIikscz1BcnJheS5wcm90b3R5cGU7dm9pZCAwPT1zW29dJiZhKHMsbyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmkobnVsbCl9KSx0LmV4cG9ydHM9ZnVuY3Rpb24odCl7c1tvXVt0XT0hMH19LCI0NGRlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPXIuY29uc29sZTtuJiZuLmVycm9yJiYoMT09YXJndW1lbnRzLmxlbmd0aD9uLmVycm9yKHQpOm4uZXJyb3IodCxlKSl9fSwiNDRlNyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjg2MWQiKSxpPW4oImM2YjYiKSxhPW4oImI2MjIiKSxvPWEoIm1hdGNoIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiByKHQpJiYodm9pZCAwIT09KGU9dFtvXSk/ISFlOiJSZWdFeHAiPT1pKHQpKX19LDQ1NTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiYWY1NSIpLGk9bigiYWYyMCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjQ1N2QiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImE5ZTMiKSxuKCJjOTc1IiksbigiZmI2YSIpLG4oImUyNWUiKTt2YXIgcj1uKCI5ODdkIiksaT1uKCJkYjZhIiksYT1bInRleHQiLCJudW1iZXIiLCJpZGNhcmQiLCJkaWdpdCIsInBhc3N3b3JkIiwidGVsIl0sbz1bIm51bWJlciIsImRpZ2l0Il0scz1bIm9mZiIsIm9uZS10aW1lLWNvZGUiXSxjPVsibm9uZSIsInRleHQiLCJkZWNpbWFsIiwibnVtZXJpYyIsInRlbCIsInNlYXJjaCIsImVtYWlsIiwidXJsIl0sdT17bmFtZToiSW5wdXQiLG1peGluczpbci5maWVsZF0scHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InRleHQifSxwYXNzd29yZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHBsYWNlaG9sZGVyOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxwbGFjZWhvbGRlclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxwbGFjZWhvbGRlckNsYXNzOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJpbnB1dC1wbGFjZWhvbGRlciJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sbWF4bGVuZ3RoOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjE0MH0sY29uZmlybVR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImRvbmUifSx0ZXh0Q29udGVudFR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHN0ZXA6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IjAuMDAwMDAwMDAwMDAwMDAwMDAxIn0saW5wdXRtb2RlOnt0eXBlOlN0cmluZyxkZWZhdWx0OnZvaWQgMCx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuISF+Yy5pbmRleE9mKHQpfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57d3JhcHBlckhlaWdodDowLGNhY2hlZFZhbHVlOiIifX0sY29tcHV0ZWQ6e2lucHV0VHlwZTpmdW5jdGlvbigpe3ZhciB0PSIiO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UidGV4dCI6InNlYXJjaCI9PT10aGlzLmNvbmZpcm1UeXBlJiYodD0ic2VhcmNoIik7YnJlYWs7Y2FzZSJpZGNhcmQiOnQ9InRleHQiO2JyZWFrO2Nhc2UiZGlnaXQiOnQ9Im51bWJlciI7YnJlYWs7ZGVmYXVsdDp0PX5hLmluZGV4T2YodGhpcy50eXBlKT90aGlzLnR5cGU6InRleHQiO2JyZWFrfXJldHVybiB0aGlzLnBhc3N3b3JkPyJwYXNzd29yZCI6dH0sX3N0ZXA6ZnVuY3Rpb24oKXtyZXR1cm5+by5pbmRleE9mKHRoaXMudHlwZSk/dGhpcy5zdGVwOiIifSxhdXRvY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgdD1zLmluZGV4T2YodGhpcy50ZXh0Q29udGVudFR5cGUpLGU9cy5pbmRleE9mKCgwLGkua2ViYWJDYXNlKSh0aGlzLnRleHRDb250ZW50VHlwZSkpLG49LTEhPT10P3Q6LTEhPT1lP2U6MDtyZXR1cm4gc1tuXX0sc2hvd1BsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7dmFyIHQ9ImRpZ2l0Ij09PXRoaXMudHlwZT90aGlzLmNhY2hlZFZhbHVlLmluZGV4T2YoIi4iKTotMTtyZXR1cm4hKHRoaXMuY29tcG9zaW5nfHx0aGlzLnZhbHVlU3luYy5sZW5ndGh8fCItIj09PXRoaXMuY2FjaGVkVmFsdWV8fC0xIT09dCYmdD09PXRoaXMuY2FjaGVkVmFsdWUubGVuZ3RoLTEpfX0sd2F0Y2g6e21heGxlbmd0aDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnZhbHVlU3luYy5zbGljZSgwLHBhcnNlSW50KHQsMTApKTtlIT09dGhpcy52YWx1ZVN5bmMmJih0aGlzLnZhbHVlU3luYz1lKX0sdmFsdWVTeW5jOmZ1bmN0aW9uKHQpeyJudW1iZXIiIT09dGhpcy50eXBlfHwiLSI9PT10aGlzLmNhY2hlZFZhbHVlJiYiIj09PXR8fCh0aGlzLmNhY2hlZFZhbHVlPXQpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuJGRpc3BhdGNoKCJGb3JtIiwidW5pLWZvcm0tZ3JvdXAtdXBkYXRlIix7dHlwZToiYWRkIix2bTp0aGlzfSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtpZigic2VhcmNoIj09PXRoaXMuY29uZmlybVR5cGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTt0LmFjdGlvbj0iIix0Lm9uc3VibWl0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LHQuY2xhc3NOYW1lPSJ1bmktaW5wdXQtZm9ybSIsdC5hcHBlbmRDaGlsZCh0aGlzLiRyZWZzLmlucHV0KSx0aGlzLiRyZWZzLndyYXBwZXIuYXBwZW5kQ2hpbGQodCl9dmFyIGU9dGhpczt3aGlsZShlKXt2YXIgbj1lLiRvcHRpb25zLl9zY29wZUlkO24mJnRoaXMuJHJlZnMucGxhY2Vob2xkZXIuc2V0QXR0cmlidXRlKG4sIiIpLGU9ZS4kcGFyZW50fX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJGRpc3BhdGNoKCJGb3JtIiwidW5pLWZvcm0tZ3JvdXAtdXBkYXRlIix7dHlwZToicmVtb3ZlIix2bTp0aGlzfSl9LG1ldGhvZHM6e19vbktleXVwOmZ1bmN0aW9uKHQpe3ZhciBlPXQudGFyZ2V0O3RoaXMuJHRyaWdnZXIoImNvbmZpcm0iLHQse3ZhbHVlOmUudmFsdWV9KSx0aGlzLmNvbmZpcm1Ib2xkfHxlLmJsdXIoKX0sX29uSW5wdXQ6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9ITE7aWYoIXRoaXMuY29tcG9zaW5nfHwhdGhpcy5pZ25vcmVDb21wb3NpdGlvbkV2ZW50KXtpZigibnVtYmVyIj09PXRoaXMuaW5wdXRUeXBlKXt2YXIgaT1wYXJzZUludCh0aGlzLm1heGxlbmd0aCwxMCk7aWYoaT4wJiZ0LnRhcmdldC52YWx1ZS5sZW5ndGg+aSYmKHRoaXMuY2FjaGVkVmFsdWUubGVuZ3RoPT09aT8odGhpcy52YWx1ZVN5bmM9dGhpcy5jYWNoZWRWYWx1ZSxyPSEwKToodC50YXJnZXQudmFsdWU9dC50YXJnZXQudmFsdWUuc2xpY2UoMCxpKSx0aGlzLnZhbHVlU3luYz10LnRhcmdldC52YWx1ZSkpLHRoaXMuX19jbGVhckNhY2hlZFZhbHVlJiZ0LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9fY2xlYXJDYWNoZWRWYWx1ZSksdC50YXJnZXQudmFsaWRpdHkmJiF0LnRhcmdldC52YWxpZGl0eS52YWxpZCl7aWYoKCF0aGlzLmNhY2hlZFZhbHVlfHwhdC50YXJnZXQudmFsdWUpJiYiLSI9PT10LmRhdGF8fCItIj09PXRoaXMuY2FjaGVkVmFsdWVbMF0mJiJkZWxldGVDb250ZW50QmFja3dhcmQiPT09dC5pbnB1dFR5cGUpe3RoaXMuY2FjaGVkVmFsdWU9Ii0iLHRoaXMudmFsdWVTeW5jPSIiO3ZhciBhPXRoaXMuX19jbGVhckNhY2hlZFZhbHVlPWZ1bmN0aW9uKCl7bi5jYWNoZWRWYWx1ZT10LnRhcmdldC52YWx1ZT0iIn07cmV0dXJuIHZvaWQgdC50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsYSl9aWYodGhpcy5jYWNoZWRWYWx1ZSlpZigtMSE9PXRoaXMuY2FjaGVkVmFsdWUuaW5kZXhPZigiLiIpKXtpZigiLiIhPT10LmRhdGEmJiJkZWxldGVDb250ZW50QmFja3dhcmQiPT09dC5pbnB1dFR5cGUpe3ZhciBvPXRoaXMuY2FjaGVkVmFsdWUuaW5kZXhPZigiLiIpO3JldHVybiB0aGlzLmNhY2hlZFZhbHVlPXQudGFyZ2V0LnZhbHVlPXRoaXMudmFsdWVTeW5jPXRoaXMuY2FjaGVkVmFsdWUuc2xpY2UoMCxvKSx0aGlzLiR0cmlnZ2VySW5wdXQodCx7dmFsdWU6dGhpcy52YWx1ZVN5bmN9LGUpfX1lbHNlIGlmKCIuIj09PXQuZGF0YSlyZXR1cm4gdGhpcy5jYWNoZWRWYWx1ZSs9Ii4iLHRoaXMuX19jbGVhckNhY2hlZFZhbHVlPWZ1bmN0aW9uKCl7bi5jYWNoZWRWYWx1ZT1uLnZhbHVlU3luYz10LnRhcmdldC52YWx1ZT1uLmNhY2hlZFZhbHVlLnNsaWNlKDAsLTEpfSx0LnRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9fY2xlYXJDYWNoZWRWYWx1ZSksITE7cmV0dXJuIHZvaWQodGhpcy5jYWNoZWRWYWx1ZT10aGlzLnZhbHVlU3luYz10LnRhcmdldC52YWx1ZT0iLSI9PT10aGlzLmNhY2hlZFZhbHVlPyIiOnRoaXMuY2FjaGVkVmFsdWUpfXRoaXMuY2FjaGVkVmFsdWU9dGhpcy52YWx1ZVN5bmN9cnx8KHRoaXMudmFsdWVTeW5jPXRoaXMuJHJlZnMuaW5wdXQudmFsdWUsdGhpcy4kdHJpZ2dlcklucHV0KHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jfSxlKSl9fSxfb25Db21wb3NpdGlvbjpmdW5jdGlvbih0KXtzd2l0Y2godC50eXBlKXtjYXNlImNvbXBvc2l0aW9uc3RhcnQiOnRoaXMuY29tcG9zaW5nPSEwO2JyZWFrO2Nhc2UiY29tcG9zaXRpb25lbmQiOnRoaXMuY29tcG9zaW5nJiYodGhpcy5jb21wb3Npbmc9ITEsdGhpcy5fb25JbnB1dCh0KSk7YnJlYWt9IXRoaXMuaWdub3JlQ29tcG9zaXRpb25FdmVudCYmdGhpcy4kdHJpZ2dlcih0LnR5cGUsdCx7ZGF0YTp0LmRhdGF9KX0sX3Jlc2V0Rm9ybURhdGE6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlU3luYz0iIn0sX2dldEZvcm1EYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZT97dmFsdWU6dGhpcy52YWx1ZVN5bmMsa2V5OnRoaXMubmFtZX06e319fX07ZS5kZWZhdWx0PXV9LDQ2MjU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImM2YjYiKSxpPW4oImUzMzAiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIkZ1bmN0aW9uIj09PXIodCkpcmV0dXJuIGkodCl9fSwiNDY2ZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJjNjViIiksaT1uKCJkNzg0IiksYT1uKCI4MjVhIiksbz1uKCI3MjM0Iikscz1uKCI1MGM0IiksYz1uKCI1NzdlIiksdT1uKCIxZDgwIiksbD1uKCJkYzRhIiksZj1uKCI4YWE1IiksZD1uKCIxNGMzIik7aSgibWF0Y2giLChmdW5jdGlvbih0LGUsbil7cmV0dXJuW2Z1bmN0aW9uKGUpe3ZhciBuPXUodGhpcyksaT1vKGUpP3ZvaWQgMDpsKGUsdCk7cmV0dXJuIGk/cihpLGUsbik6bmV3IFJlZ0V4cChlKVt0XShjKG4pKX0sZnVuY3Rpb24odCl7dmFyIHI9YSh0aGlzKSxpPWModCksbz1uKGUscixpKTtpZihvLmRvbmUpcmV0dXJuIG8udmFsdWU7aWYoIXIuZ2xvYmFsKXJldHVybiBkKHIsaSk7dmFyIHU9ci51bmljb2RlO3IubGFzdEluZGV4PTA7dmFyIGwsaD1bXSxwPTA7d2hpbGUobnVsbCE9PShsPWQocixpKSkpe3ZhciB2PWMobFswXSk7aFtwXT12LCIiPT09diYmKHIubGFzdEluZGV4PWYoaSxzKHIubGFzdEluZGV4KSx1KSkscCsrfXJldHVybiAwPT09cD9udWxsOmh9XX0pKX0sNDczODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiZDI1NiIpLGE9bigiMTYyNiIpLG89bigiOTRjYSIpLHM9bigiODkyNSIpLGM9bigiYjYyMiIpLHU9bigiNjA2OSIpLGw9bigiNmM1OSIpLGY9bigiYzQzMCIpLGQ9bigiMmQwMCIpLGg9aSYmaS5wcm90b3R5cGUscD1jKCJzcGVjaWVzIiksdj0hMSxnPWEoci5Qcm9taXNlUmVqZWN0aW9uRXZlbnQpLG09bygiUHJvbWlzZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9cyhpKSxlPXQhPT1TdHJpbmcoaSk7aWYoIWUmJjY2PT09ZClyZXR1cm4hMDtpZihmJiYoIWhbImNhdGNoIl18fCFoWyJmaW5hbGx5Il0pKXJldHVybiEwO2lmKCFkfHxkPDUxfHwhL25hdGl2ZSBjb2RlLy50ZXN0KHQpKXt2YXIgbj1uZXcgaSgoZnVuY3Rpb24odCl7dCgxKX0pKSxyPWZ1bmN0aW9uKHQpe3QoKGZ1bmN0aW9uKCl7fSksKGZ1bmN0aW9uKCl7fSkpfSxhPW4uY29uc3RydWN0b3I9e307aWYoYVtwXT1yLHY9bi50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgciwhdilyZXR1cm4hMH1yZXR1cm4hZSYmKHV8fGwpJiYhZ30pKTt0LmV4cG9ydHM9e0NPTlNUUlVDVE9SOm0sUkVKRUNUSU9OX0VWRU5UOmcsU1VCQ0xBU1NJTkc6dn19LDQ3NTQ6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm57dmFsdWU6dCxkb25lOmV9fX0sIjQ3ZGIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCIxNGQ5IiksbigiZDNiNyIpLG4oIjk5YWYiKSxuKCJhYzFmIiksbigiNDY2ZCIpLG4oImUyNWUiKTt2YXIgcj1uKCJkYjZhIiksaT17bW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoInRyYW5zcGFyZW50Ij09PXRoaXMudHlwZSl7Zm9yKHZhciBuPXRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3IoIi51bmktcGFnZS1oZWFkLXRyYW5zcGFyZW50Iikuc3R5bGUscj10aGlzLiRlbC5xdWVyeVNlbGVjdG9yKCIudW5pLXBhZ2UtaGVhZF9fdGl0bGUiKSxpPXRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi51bmktYnRuLWljb24iKSxhPVtdLG89dGhpcy50ZXh0Q29sb3Iscz0wO3M8aS5sZW5ndGg7cysrKWEucHVzaChpW3NdLnN0eWxlKTtmb3IodmFyIGM9dGhpcy4kZWwucXVlcnlTZWxlY3RvckFsbCgiLnVuaS1wYWdlLWhlYWQtYnRuIiksdT1bXSxsPVtdLGY9MDtmPGMubGVuZ3RoO2YrKyl7dmFyIGQ9Y1tmXTt1LnB1c2goZ2V0Q29tcHV0ZWRTdHlsZShkKS5iYWNrZ3JvdW5kQ29sb3IpLGwucHVzaChkLnN0eWxlKX10aGlzLl9BPTAsdC5vbigib25QYWdlU2Nyb2xsIiwoZnVuY3Rpb24odCl7dmFyIGk9dC5zY3JvbGxUb3Ascz1NYXRoLm1pbihpL2Uub2Zmc2V0LDEpOzE9PT1zJiYxPT09ZS5fQXx8KHM+LjUmJmUuX0E8PS41P2EuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2xvcj1vfSkpOnM8PS41JiZlLl9BPi41JiZhLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29sb3I9IiNmZmYifSkpLGUuX0E9cyxyJiYoci5zdHlsZS5vcGFjaXR5PXMpLG4uYmFja2dyb3VuZENvbG9yPSJyZ2JhKCIuY29uY2F0KGUuX1IsIiwiKS5jb25jYXQoZS5fRywiLCIpLmNvbmNhdChlLl9CLCIsIikuY29uY2F0KHMsIikiKSxsLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49dVtlXSxyPW4ubWF0Y2goL1tcZCtcLl0rL2cpO3JbM109KDEtcykqKDQ9PT1yLmxlbmd0aD9yWzNdOjEpLHQuYmFja2dyb3VuZENvbG9yPSJyZ2JhKCIuY29uY2F0KHIsIikiKX0pKSl9KSl9ZWxzZSBpZigiZmxvYXQiPT09dGhpcy50eXBlKXtmb3IodmFyIGg9dGhpcy4kZWwucXVlcnlTZWxlY3RvckFsbCgiLnVuaS1idG4taWNvbiIpLHA9W10sdj0wO3Y8aC5sZW5ndGg7disrKXAucHVzaChoW3ZdLnN0eWxlKTtmb3IodmFyIGc9dGhpcy4kZWwucXVlcnlTZWxlY3RvckFsbCgiLnVuaS1wYWdlLWhlYWQtYnRuIiksbT1bXSxiPVtdLHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIF89Z1t5XTttLnB1c2goZ2V0Q29tcHV0ZWRTdHlsZShfKS5iYWNrZ3JvdW5kQ29sb3IpLGIucHVzaChfLnN0eWxlKX19fSxjb21wdXRlZDp7Y29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNwYXJlbnQiPT09dGhpcy50eXBlPyIjZmZmIjp0aGlzLnRleHRDb2xvcn0sb2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMuY292ZXJhZ2UpfSxiZ0NvbG9yOmZ1bmN0aW9uKCl7aWYoInRyYW5zcGFyZW50Ij09PXRoaXMudHlwZSl7dmFyIHQ9KDAsci5oZXhUb1JnYmEpKHRoaXMuYmFja2dyb3VuZENvbG9yKSxlPXQucixuPXQuZyxpPXQuYjtyZXR1cm4gdGhpcy5fUj1lLHRoaXMuX0c9bix0aGlzLl9CPWksInJnYmEoIi5jb25jYXQoZSwiLCIpLmNvbmNhdChuLCIsIikuY29uY2F0KGksIiwwKSIpfXJldHVybiB0aGlzLmJhY2tncm91bmRDb2xvcn19fTtlLmRlZmF1bHQ9aX0pLmNhbGwodGhpcyxuKCJjNWMzIikpfSw0ODQwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4MjVhIiksaT1uKCI1MDg3IiksYT1uKCI3MjM0Iiksbz1uKCJiNjIyIikscz1vKCJzcGVjaWVzIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbz1yKHQpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1vfHxhKG49cihvKVtzXSk/ZTppKG4pfX0sIjQ4NWEiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCIxNjI2IiksYT1uKCI4NjFkIiksbz1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG4scztpZigic3RyaW5nIj09PWUmJmkobj10LnRvU3RyaW5nKSYmIWEocz1yKG4sdCkpKXJldHVybiBzO2lmKGkobj10LnZhbHVlT2YpJiYhYShzPXIobix0KSkpcmV0dXJuIHM7aWYoInN0cmluZyIhPT1lJiZpKG49dC50b1N0cmluZykmJiFhKHM9cihuLHQpKSlyZXR1cm4gczt0aHJvdyBvKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LCI0OThhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjU4YTgiKS50cmltLGE9bigiYzhkMiIpO3Ioe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6YSgidHJpbSIpfSx7dHJpbTpmdW5jdGlvbigpe3JldHVybiBpKHRoaXMpfX0pfSwiNDliNCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLk1hcENvbnRleHQ9dm9pZCAwLGUuY3JlYXRlTWFwQ29udGV4dD1mdW5jdGlvbih0LGUpe2lmKGUpcmV0dXJuIG5ldyB1KHQsZSk7cmV0dXJuIG5ldyB1KHQsKDAsby5nZXRDdXJyZW50UGFnZVZtKSgiY3JlYXRlTWFwQ29udGV4dCIpKX0sbigiZDNiNyIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPW4oIjI0MTIiKSxzPW4oImRiNmEiKTtmdW5jdGlvbiBjKHQsZSxuLHIpeygwLG8uaW52b2tlTWV0aG9kKSgib3BlcmF0ZU1hcFBsYXllciIsdCxlLG4scil9dC5zdWJzY3JpYmUoIm9uTWFwTWV0aG9kQ2FsbGJhY2siLChmdW5jdGlvbih0KXt2YXIgZT10LmNhbGxiYWNrSWQsbj10LmRhdGE7cy5jYWxsYmFjay5pbnZva2UoZSxuKX0pKTt2YXIgdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5pZD1lLHRoaXMucGFnZVZtPW59cmV0dXJuKDAsYS5kZWZhdWx0KSh0LFt7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtjKHRoaXMuaWQsdGhpcy5wYWdlVm0sIm9uIix7bmFtZTp0LGNhbGxiYWNrOmV9KX19XSksdH0oKTtlLk1hcENvbnRleHQ9dSx1LnByb3RvdHlwZS4kZ2V0QXBwTWFwPWZ1bmN0aW9uKCl7MH0sWyJnZXRDZW50ZXJMb2NhdGlvbiIsIm1vdmVUb0xvY2F0aW9uIiwiZ2V0U2NhbGUiLCJnZXRSZWdpb24iLCJpbmNsdWRlUG9pbnRzIiwidHJhbnNsYXRlTWFya2VyIiwiYWRkQ3VzdG9tTGF5ZXIiLCJyZW1vdmVDdXN0b21MYXllciIsImFkZEdyb3VuZE92ZXJsYXkiLCJyZW1vdmVHcm91bmRPdmVybGF5IiwidXBkYXRlR3JvdW5kT3ZlcmxheSIsImluaXRNYXJrZXJDbHVzdGVyIiwiYWRkTWFya2VycyIsInJlbW92ZU1hcmtlcnMiLCJtb3ZlQWxvbmciLCJzZXRMb2NNYXJrZXJJY29uIiwib3Blbk1hcEFwcCJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3UucHJvdG90eXBlW3RdPXMuY2FsbGJhY2sud2FycCgoZnVuY3Rpb24oZSxuKXtlLmNhbGxiYWNrSWQ9bixjKHRoaXMuaWQsdGhpcy5wYWdlVm0sdCxlKX0pKX0pKX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiNDliNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZ2V0QnJvd3NlckluZm89ZnVuY3Rpb24oKXt2YXIgdCxlLG4scj1uYXZpZ2F0b3IubGFuZ3VhZ2UsZD0icGhvbmUiO2lmKHMpe3Q9ImlPUyI7dmFyIGg9YS5tYXRjaCgvT1NccyhbXHdfXSspXHNsaWtlLyk7aCYmKGU9aFsxXS5yZXBsYWNlKC9fL2csIi4iKSk7dmFyIHA9YS5tYXRjaCgvXCgoW2EtekEtWl0rKTsvKTtwJiYobj1wWzFdKX1lbHNlIGlmKG8pe3Q9IkFuZHJvaWQiO3ZhciB2PWEubWF0Y2goL0FuZHJvaWRbXHMvXShbXHdcLl0rKVs7XHNdLyk7diYmKGU9dlsxXSk7Zm9yKHZhciBnPWEubWF0Y2goL1woKC4rPylcKS8pLG09Zz9nWzFdLnNwbGl0KCI7Iik6YS5zcGxpdCgiICIpLGI9Wy9cYkFuZHJvaWRcYi9pLC9cYkxpbnV4XGIvaSwvXGJVXGIvaSwvXlxzP1thLXpdW2Etel0kL2ksL15ccz9bYS16XVthLXpdLVthLXpdW2Etel0kL2ksL1xid3ZcYi9pLC9cL1tcZFwuLF0rJC8sL15ccz9bXGRcLixdKyQvLC9cYkJyb3dzZXJcYi9pLC9cYk1vYmlsZVxiL2ldLHk9MDt5PG0ubGVuZ3RoO3krKyl7dmFyIF89bVt5XTtpZihfLmluZGV4T2YoIkJ1aWxkIik+MCl7bj1fLnNwbGl0KCJCdWlsZCIpWzBdLnRyaW0oKTticmVha31mb3IodmFyIHc9dm9pZCAwLHg9MDt4PGIubGVuZ3RoO3grKylpZihiW3hdLnRlc3QoXykpe3c9ITA7YnJlYWt9aWYoIXcpe249Xy50cmltKCk7YnJlYWt9fX1lbHNlIGlmKGYpbj0iaVBhZCIsdD0iaU9TIixlPSJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LkJpZ0ludD8iMTQuMCI6IjEzLjAiLGQ9InBhZCI7ZWxzZSBpZihjfHx1fHxsKXtuPSJQQyIsdD0iUEMiLGQ9InBjIjt2YXIgUz1hLm1hdGNoKC9cKCguKz8pXCkvKVsxXTtpZihjKXtzd2l0Y2godD0iV2luZG93cyIsZT0iIixjWzFdKXtjYXNlIjUuMSI6ZT0iWFAiO2JyZWFrO2Nhc2UiNi4wIjplPSJWaXN0YSI7YnJlYWs7Y2FzZSI2LjEiOmU9IjciO2JyZWFrO2Nhc2UiNi4yIjplPSI4IjticmVhaztjYXNlIjYuMyI6ZT0iOC4xIjticmVhaztjYXNlIjEwLjAiOmU9IjEwIjticmVha312YXIgVD1TLm1hdGNoKC9bV2lufFdPV10oW1xkXSspLyk7VCYmKGUrPSIgeCIuY29uY2F0KFRbMV0pKX1lbHNlIHU/KHQ9Im1hY09TIixlPVMubWF0Y2goL01hYyBPUyBYICguKykvKXx8IiIsZSYmKGU9ZVsxXS5yZXBsYWNlKC9fL2csIi4iKSwtMSE9PWUuaW5kZXhPZigiOyIpJiYoZT1lLnNwbGl0KCI7IilbMF0pKSk6bCYmKHQ9IkxpbnV4IixlPVMubWF0Y2goL0xpbnV4ICguKikvKXx8IiIsZSYmKGU9ZVsxXSwtMSE9PWUuaW5kZXhPZigiOyIpJiYoZT1lLnNwbGl0KCI7IilbMF0pKSl9ZWxzZSB0PSJPdGhlciIsZT0iMCIsZD0idW5rbm93biI7dmFyIEM9IiIuY29uY2F0KHQsIiAiKS5jb25jYXQoZSksaz10LnRvTG9jYWxlTG93ZXJDYXNlKCksTz0iIixFPVN0cmluZyhmdW5jdGlvbigpe3ZhciB0PW5hdmlnYXRvci51c2VyQWdlbnQsZT10LmluZGV4T2YoImNvbXBhdGlibGUiKT4tMSYmdC5pbmRleE9mKCJNU0lFIik+LTEsbj10LmluZGV4T2YoIkVkZ2UiKT4tMSYmIWUscj10LmluZGV4T2YoIlRyaWRlbnQiKT4tMSYmdC5pbmRleE9mKCJydjoxMS4wIik+LTE7aWYoZSl7dmFyIGk9bmV3IFJlZ0V4cCgiTVNJRSAoXFxkK1xcLlxcZCspOyIpO2kudGVzdCh0KTt2YXIgYT1wYXJzZUZsb2F0KFJlZ0V4cC4kMSk7cmV0dXJuIGE+Nj9hOjZ9cmV0dXJuIG4/LTE6cj8xMTotMX0oKSk7aWYoIi0xIiE9PUUpTz0iSUUiO2Vsc2UgZm9yKHZhciBJPVsiVmVyc2lvbiIsIkZpcmVmb3giLCJDaHJvbWUiLCJFZGdlezAsMX0iXSxQPVsiU2FmYXJpIiwiRmlyZWZveCIsIkNocm9tZSIsIkVkZ2UiXSxNPTA7TTxJLmxlbmd0aDtNKyspe3ZhciBBPUlbTV0sJD1uZXcgUmVnRXhwKCIoIi5jb25jYXQoQSwiKS8oXFxTKilcXGIiKSk7JC50ZXN0KGEpJiYoTz1QW01dLEU9YS5tYXRjaCgkKVsyXSl9dmFyIEwsaj0idW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuc2NyZWVuLm9yaWVudGF0aW9uP3dpbmRvdy5vcmllbnRhdGlvbjp3aW5kb3cuc2NyZWVuLm9yaWVudGF0aW9uLmFuZ2xlO3JldHVybiBMPTkwPT09TWF0aC5hYnMoaik/ImxhbmRzY2FwZSI6InBvcnRyYWl0Iix7ZGV2aWNlQnJhbmQ6dm9pZCAwLGJyYW5kOnZvaWQgMCxkZXZpY2VNb2RlbDpuLGRldmljZU9yaWVudGF0aW9uOkwsbW9kZWw6bixzeXN0ZW06QyxwbGF0Zm9ybTprLGJyb3dzZXJOYW1lOk8udG9Mb2NhbGVMb3dlckNhc2UoKSxicm93c2VyVmVyc2lvbjpFLGxhbmd1YWdlOnIsZGV2aWNlVHlwZTpkLHVhOmEsb3NuYW1lOnQsb3N2ZXJzaW9uOmUsdGhlbWU6aSgpfX0sZS5nZXRUaGVtZT1pLG4oImM5NzUiKSxuKCI0ZDYzIiksbigiYzYwNyIpLG4oImFjMWYiKSxuKCIyYzNlIiksbigiMjVmMCIpLG4oIjAwYjQiKSxuKCJhY2Q4IiksbigiNDY2ZCIpLG4oIjUzMTkiKSxuKCI0OThhIiksbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKTtmdW5jdGlvbiBpKCl7aWYoITAhPT1fX3VuaUNvbmZpZy5kYXJrbW9kZSlyZXR1cm4oMCxyLmlzU3RyKShfX3VuaUNvbmZpZy5kYXJrbW9kZSk/X191bmlDb25maWcuZGFya21vZGU6ImxpZ2h0Ijt0cnl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSIpLm1hdGNoZXM/ImxpZ2h0IjoiZGFyayJ9Y2F0Y2godCl7cmV0dXJuImxpZ2h0In19dmFyIGE9bmF2aWdhdG9yLnVzZXJBZ2VudCxvPS9hbmRyb2lkL2kudGVzdChhKSxzPS9pcGhvbmV8aXBhZHxpcG9kL2kudGVzdChhKSxjPWEubWF0Y2goL1dpbmRvd3MgTlQgKFtcZHxcZC5cZF0qKS9pKSx1PS9NYWNpbnRvc2h8TWFjL2kudGVzdChhKSxsPS9MaW51eHxYMTEvaS50ZXN0KGEpLGY9dSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9LCI0YWUyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUucmVxdWVzdD1mdW5jdGlvbihlLG4pe3ZhciByLGk9ZS51cmwsYT1lLmRhdGEsbz1lLmhlYWRlcixsPWUubWV0aG9kLGY9ZS5kYXRhVHlwZSxkPWUucmVzcG9uc2VUeXBlLGg9ZS53aXRoQ3JlZGVudGlhbHMscD1lLnRpbWVvdXQsdj12b2lkIDA9PT1wP19fdW5pQ29uZmlnLm5ldHdvcmtUaW1lb3V0JiZfX3VuaUNvbmZpZy5uZXR3b3JrVGltZW91dC5yZXF1ZXN0fHw2ZTQ6cCxnPXQsbT1nLmludm9rZUNhbGxiYWNrSGFuZGxlcixiPW51bGw7Zm9yKHZhciB5IGluIG8paWYoKDAscy5oYXNPd24pKG8seSkmJiJjb250ZW50LXR5cGUiPT09eS50b0xvd2VyQ2FzZSgpKXtyPW9beV0scj0wPT09ci5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik/Impzb24iOjA9PT1yLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPyJ1cmxlbmNvZGVkIjoic3RyaW5nIjticmVha31pZigiR0VUIiE9PWwpaWYoInN0cmluZyI9PT10eXBlb2YgYXx8YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKWI9YTtlbHNlIGlmKCJqc29uIj09PXIpdHJ5e2I9SlNPTi5zdHJpbmdpZnkoYSl9Y2F0Y2goayl7Yj1hLnRvU3RyaW5nKCl9ZWxzZSBpZigidXJsZW5jb2RlZCI9PT1yKXt2YXIgXz1bXTtmb3IodmFyIHcgaW4gYSkoMCxzLmhhc093bikoYSx3KSYmXy5wdXNoKGVuY29kZVVSSUNvbXBvbmVudCh3KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFbd10pKTtiPV8uam9pbigiJiIpfWVsc2UgYj1hLnRvU3RyaW5nKCk7dmFyIHg9bmV3IFhNTEh0dHBSZXF1ZXN0LFM9bmV3IGMoeCk7Zm9yKHZhciBUIGluIHgub3BlbihsLGkpLG8pKDAscy5oYXNPd24pKG8sVCkmJnguc2V0UmVxdWVzdEhlYWRlcihULG9bVF0pO3ZhciBDPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7eC5vbmxvYWQ9eC5vbmFib3J0PXgub25lcnJvcj1udWxsLFMuYWJvcnQoKSxtKG4se2Vyck1zZzoicmVxdWVzdDpmYWlsIHRpbWVvdXQifSl9KSx2KTtyZXR1cm4geC5yZXNwb25zZVR5cGU9ZCx4Lm9ubG9hZD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChDKTt2YXIgdD14LnN0YXR1cyxlPSJ0ZXh0Ij09PWQ/eC5yZXNwb25zZVRleHQ6eC5yZXNwb25zZTtpZigidGV4dCI9PT1kJiYianNvbiI9PT1mKXRyeXtlPUpTT04ucGFyc2UoZSl9Y2F0Y2goayl7fW0obix7ZGF0YTplLHN0YXR1c0NvZGU6dCxoZWFkZXI6dSh4LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxlcnJNc2c6InJlcXVlc3Q6b2sifSl9LHgub25hYm9ydD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChDKSxtKG4se2Vyck1zZzoicmVxdWVzdDpmYWlsIGFib3J0In0pfSx4Lm9uZXJyb3I9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoQyksbShuLHtlcnJNc2c6InJlcXVlc3Q6ZmFpbCJ9KX0seC53aXRoQ3JlZGVudGlhbHM9aCx4LnNlbmQoYiksU30sbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJhYzFmIiksbigiNDY2ZCIpLG4oImM5NzUiKSxuKCJjMTlmIiksbigiYWNlNCIpLG4oImU5YzQiKSxuKCJkNDAxIiksbigiMjVmMCIpLG4oIjE0ZDkiKTt2YXIgaT1yKG4oImQ0ZWMiKSksYT1yKG4oImJlZTIiKSksbz1yKG4oImFkZTMiKSkscz1uKCJkYjZhIiksYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7KDAsaS5kZWZhdWx0KSh0aGlzLHQpLCgwLG8uZGVmYXVsdCkodGhpcywiX3hociIsdm9pZCAwKSx0aGlzLl94aHI9ZX1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImFib3J0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3hociYmKHRoaXMuX3hoci5hYm9ydCgpLGRlbGV0ZSB0aGlzLl94aHIpfX1dKSx0fSgpO2Z1bmN0aW9uIHUodCl7dmFyIGU9e30sbj10LnNwbGl0KCJcbiIpO3JldHVybiBuLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQubWF0Y2goLyhcUytccyopOlxzKiguKikvKTtpZihuJiYzPT09bi5sZW5ndGgpe3ZhciByPW5bMV0saT1uWzJdO2Vbcl09aX19KSksZX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sIjRiMTEiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LCI0YmFmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJkM2I3IiksbigiOTlhZiIpO3ZhciBpPXIobigiNWZlNyIpKSxhPXIobigiYzdmZiIpKSxvPW4oIjEzODciKSxzPW4oIjAxMzgiKSxjPW4oIjY0ZmUiKTt2YXIgdT17bmFtZToiUGlja2VyVmlld0NvbHVtbiIsbWl4aW5zOltpLmRlZmF1bHQsYS5kZWZhdWx0XSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Njb3BlOiJwaWNrZXItdmlldy1jb2x1bW4tIi5jb25jYXQoRGF0ZS5ub3coKSksaW5pdGVkOiExLGluZGljYXRvclN0eWxlOiIiLGluZGljYXRvckNsYXNzOiIiLGluZGljYXRvckhlaWdodDozNCxtYXNrU3R5bGU6IiIsbWFza0NsYXNzOiIiLGN1cnJlbnQ6dGhpcy4kcGFyZW50LmdldEl0ZW1WYWx1ZSh0aGlzKSxsZW5ndGg6MH19LGNvbXB1dGVkOntoZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcGFyZW50LmhlaWdodH0sbWFza1NpemU6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5oZWlnaHQtdGhpcy5pbmRpY2F0b3JIZWlnaHQpLzJ9fSx3YXRjaDp7aW5kaWNhdG9ySGVpZ2h0OmZ1bmN0aW9uKHQpe3RoaXMuX3NldEl0ZW1IZWlnaHQodCksdGhpcy5pbml0ZWQmJnRoaXMudXBkYXRlKCl9LGN1cnJlbnQ6ZnVuY3Rpb24odCl7dGhpcy4kcGFyZW50LnNldEl0ZW1WYWx1ZSh0aGlzLHQpfSxsZW5ndGg6ZnVuY3Rpb24odCl7dGhpcy5pbml0ZWQmJnRoaXMudXBkYXRlKHQpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHBhcmVudDt0aGlzLmluZGljYXRvclN0eWxlPXQuaW5kaWNhdG9yU3R5bGUsdGhpcy5pbmRpY2F0b3JDbGFzcz10LmluZGljYXRvckNsYXNzLHRoaXMubWFza1N0eWxlPXQubWFza1N0eWxlLHRoaXMubWFza0NsYXNzPXQubWFza0NsYXNzLHRoaXMuZGVsdGFZPTB9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudG91Y2h0cmFjayh0aGlzLiRyZWZzLm1haW4sIl9oYW5kbGVUcmFjayIsITApLHRoaXMuc2V0Q3VycmVudCh0aGlzLmN1cnJlbnQpLHRoaXMuJG5leHRUaWNrKChmdW5jdGlvbigpe3QuaW5pdCgpLHQudXBkYXRlKCl9KSksZnVuY3Rpb24odCl7dmFyIGU9MCxuPTA7dC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwoZnVuY3Rpb24odCl7dmFyIHI9dC5jaGFuZ2VkVG91Y2hlc1swXTtlPXIuY2xpZW50WCxuPXIuY2xpZW50WX0pKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwoZnVuY3Rpb24odCl7dmFyIHI9dC5jaGFuZ2VkVG91Y2hlc1swXTtpZihNYXRoLmFicyhyLmNsaWVudFgtZSk8MjAmJk1hdGguYWJzKHIuY2xpZW50WS1uKTwyMCl7dmFyIGk9bmV3IEN1c3RvbUV2ZW50KCJjbGljayIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCx0YXJnZXQ6dC50YXJnZXQsY3VycmVudFRhcmdldDp0LmN1cnJlbnRUYXJnZXR9KTtbInNjcmVlblgiLCJzY3JlZW5ZIiwiY2xpZW50WCIsImNsaWVudFkiLCJwYWdlWCIsInBhZ2VZIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7aVt0XT1yW3RdfSkpLHQudGFyZ2V0LmRpc3BhdGNoRXZlbnQoaSl9fSkpfSh0aGlzLiRlbCksKDAsYy5pbml0U2Nyb2xsQm91bmNlKSgpO3ZhciBlPXRoaXM7d2hpbGUoZSl7dmFyIG49ZS4kb3B0aW9ucy5fc2NvcGVJZDtuJiZ0aGlzLiRyZWZzLmluZGljYXRvci5zZXRBdHRyaWJ1dGUobiwiIiksZT1lLiRwYXJlbnR9fSxtZXRob2RzOntfc2V0SXRlbUhlaWdodDpmdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2UuaW5uZXJUZXh0PSIudW5pLXBpY2tlci12aWV3LWNvbnRlbnQuIi5jb25jYXQodGhpcy5zY29wZSwiPip7aGVpZ2h0OiAiKS5jb25jYXQodCwicHg7b3ZlcmZsb3c6IGhpZGRlbjt9IiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKX0sX2hhbmRsZVRyYWNrOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3Njcm9sbGVyKXN3aXRjaCh0LmRldGFpbC5zdGF0ZSl7Y2FzZSJzdGFydCI6dGhpcy5faGFuZGxlVG91Y2hTdGFydCh0KSwoMCxjLmRpc2FibGVTY3JvbGxCb3VuY2UpKHtkaXNhYmxlOiEwfSk7YnJlYWs7Y2FzZSJtb3ZlIjp0aGlzLl9oYW5kbGVUb3VjaE1vdmUodCksdC5zdG9wUHJvcGFnYXRpb24oKTticmVhaztjYXNlImVuZCI6Y2FzZSJjYW5jZWwiOnRoaXMuX2hhbmRsZVRvdWNoRW5kKHQpLCgwLGMuZGlzYWJsZVNjcm9sbEJvdW5jZSkoe2Rpc2FibGU6ITF9KX19LF9oYW5kbGVUYXA6ZnVuY3Rpb24odCl7dmFyIGU9dC5jbGllbnRZO2lmKCF0aGlzLl9zY3JvbGxlci5pc1Njcm9sbGluZygpKXt2YXIgbj10aGlzLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWUtbi50b3AtdGhpcy5oZWlnaHQvMixpPXRoaXMuaW5kaWNhdG9ySGVpZ2h0LzI7aWYoIShNYXRoLmFicyhyKTw9aSkpe3ZhciBhPU1hdGguY2VpbCgoTWF0aC5hYnMociktaSkvdGhpcy5pbmRpY2F0b3JIZWlnaHQpLG89cjwwPy1hOmEscz1NYXRoLm1pbih0aGlzLmN1cnJlbnQrbyx0aGlzLmxlbmd0aC0xKTt0aGlzLmN1cnJlbnQ9cz1NYXRoLm1heChzLDApLHRoaXMuX3Njcm9sbGVyLnNjcm9sbFRvKHMqdGhpcy5pbmRpY2F0b3JIZWlnaHQpfX19LF9oYW5kbGVXaGVlbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmRlbHRhWSt0LmRlbHRhWTtpZihNYXRoLmFicyhlKT4xMCl7dGhpcy5kZWx0YVk9MDt2YXIgbj1NYXRoLm1pbih0aGlzLmN1cnJlbnQrKGU8MD8tMToxKSx0aGlzLmxlbmd0aC0xKTt0aGlzLmN1cnJlbnQ9bj1NYXRoLm1heChuLDApLHRoaXMuX3Njcm9sbGVyLnNjcm9sbFRvKG4qdGhpcy5pbmRpY2F0b3JIZWlnaHQpfWVsc2UgdGhpcy5kZWx0YVk9ZTt0LnByZXZlbnREZWZhdWx0KCl9LHNldEN1cnJlbnQ6ZnVuY3Rpb24odCl7dCE9PXRoaXMuY3VycmVudCYmKHRoaXMuY3VycmVudD10LHRoaXMuaW5pdGVkJiZ0aGlzLnVwZGF0ZSgpKX0saW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5pbml0U2Nyb2xsZXIodGhpcy4kcmVmcy5jb250ZW50LHtlbmFibGVZOiEwLGVuYWJsZVg6ITEsZW5hYmxlU25hcDohMCxpdGVtU2l6ZTp0aGlzLmluZGljYXRvckhlaWdodCxmcmljdGlvbjpuZXcgby5GcmljdGlvbigxZS00KSxzcHJpbmc6bmV3IHMuU3ByaW5nKDIsOTAsMjApLG9uU25hcDpmdW5jdGlvbihlKXtpc05hTihlKXx8ZT09PXQuY3VycmVudHx8KHQuY3VycmVudD1lKX19KSx0aGlzLmluaXRlZD0hMH0sdXBkYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljaygoZnVuY3Rpb24oKXt2YXIgZT1NYXRoLm1pbih0LmN1cnJlbnQsdC5sZW5ndGgtMSk7ZT1NYXRoLm1heChlLDApLHQuX3Njcm9sbGVyLnVwZGF0ZShlKnQuaW5kaWNhdG9ySGVpZ2h0LHZvaWQgMCx0LmluZGljYXRvckhlaWdodCl9KSl9LF9yZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5pbmRpY2F0b3JIZWlnaHQ9ZX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg9dGhpcy4kc2xvdHMuZGVmYXVsdCYmdGhpcy4kc2xvdHMuZGVmYXVsdC5sZW5ndGh8fDAsdCgidW5pLXBpY2tlci12aWV3LWNvbHVtbiIse29uOntvbjp0aGlzLiRsaXN0ZW5lcnN9fSxbdCgiZGl2Iix7cmVmOiJtYWluIixzdGF0aWNDbGFzczoidW5pLXBpY2tlci12aWV3LWdyb3VwIixvbjp7d2hlZWw6dGhpcy5faGFuZGxlV2hlZWwsY2xpY2s6dGhpcy5faGFuZGxlVGFwfX0sW3QoImRpdiIse3JlZjoibWFzayIsc3RhdGljQ2xhc3M6InVuaS1waWNrZXItdmlldy1tYXNrIixjbGFzczp0aGlzLm1hc2tDbGFzcyxzdHlsZToiYmFja2dyb3VuZC1zaXplOiAxMDAlICIuY29uY2F0KHRoaXMubWFza1NpemUsInB4OyIpLmNvbmNhdCh0aGlzLm1hc2tTdHlsZSl9KSx0KCJkaXYiLHtyZWY6ImluZGljYXRvciIsc3RhdGljQ2xhc3M6InVuaS1waWNrZXItdmlldy1pbmRpY2F0b3IiLGNsYXNzOnRoaXMuaW5kaWNhdG9yQ2xhc3Msc3R5bGU6dGhpcy5pbmRpY2F0b3JTdHlsZX0sW3QoInYtdW5pLXJlc2l6ZS1zZW5zb3IiLHthdHRyczp7aW5pdGlhbDohMH0sb246e3Jlc2l6ZTp0aGlzLl9yZXNpemV9fSldKSx0KCJkaXYiLHtyZWY6ImNvbnRlbnQiLHN0YXRpY0NsYXNzOiJ1bmktcGlja2VyLXZpZXctY29udGVudCIsY2xhc3M6dGhpcy5zY29wZSxzdHlsZToicGFkZGluZzogIi5jb25jYXQodGhpcy5tYXNrU2l6ZSwicHggMDsiKX0sW3RoaXMuJHNsb3RzLmRlZmF1bHRdKV0pXSl9fTtlLmRlZmF1bHQ9dX0sIjRjYWMiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPVsidW5pLWFwcCIsInVuaS1sYXlvdXQiLCJ1bmktY29udGVudCIsInVuaS1tYWluIiwidW5pLXRvcC13aW5kb3ciLCJ1bmktbGVmdC13aW5kb3ciLCJ1bmktcmlnaHQtd2luZG93IiwidW5pLXRhYmJhciIsInVuaS1wYWdlIiwidW5pLXBhZ2UtaGVhZCIsInVuaS1wYWdlLXdyYXBwZXIiLCJ1bmktcGFnZS1ib2R5IiwidW5pLXBhZ2UtcmVmcmVzaCIsInVuaS1hY3Rpb25zaGVldCIsInVuaS1tb2RhbCIsInVuaS10b2FzdCIsInVuaS1yZXNpemUtc2Vuc29yIiwidW5pLXNoYWRvdy1yb290IiwidW5pLWFkIiwidW5pLWF1ZGlvIiwidW5pLWJ1dHRvbiIsInVuaS1jYW1lcmEiLCJ1bmktY2FudmFzIiwidW5pLWNoZWNrYm94IiwidW5pLWNoZWNrYm94LWdyb3VwIiwidW5pLWNvdmVyLWltYWdlIiwidW5pLWNvdmVyLXZpZXciLCJ1bmktZWRpdG9yIiwidW5pLWZvcm0iLCJ1bmktZnVuY3Rpb25hbC1wYWdlLW5hdmlnYXRvciIsInVuaS1pY29uIiwidW5pLWltYWdlIiwidW5pLWlucHV0IiwidW5pLWxhYmVsIiwidW5pLWxpdmUtcGxheWVyIiwidW5pLWxpdmUtcHVzaGVyIiwidW5pLW1hcCIsInVuaS1tb3ZhYmxlLWFyZWEiLCJ1bmktbW92YWJsZS12aWV3IiwidW5pLW5hdmlnYXRvciIsInVuaS1vZmZpY2lhbC1hY2NvdW50IiwidW5pLW9wZW4tZGF0YSIsInVuaS1waWNrZXIiLCJ1bmktcGlja2VyLXZpZXciLCJ1bmktcGlja2VyLXZpZXctY29sdW1uIiwidW5pLXByb2dyZXNzIiwidW5pLXJhZGlvIiwidW5pLXJhZGlvLWdyb3VwIiwidW5pLXJpY2gtdGV4dCIsInVuaS1zY3JvbGwtdmlldyIsInVuaS1zbGlkZXIiLCJ1bmktc3dpcGVyIiwidW5pLXN3aXBlci1pdGVtIiwidW5pLXN3aXRjaCIsInVuaS10ZXh0IiwidW5pLXRleHRhcmVhIiwidW5pLXZpZGVvIiwidW5pLXZpZXciLCJ1bmktd2ViLXZpZXciXX0sIjRkNjMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4M2FiIiksaT1uKCJkYTg0IiksYT1uKCJlMzMwIiksbz1uKCI5NGNhIikscz1uKCI3MTU2IiksYz1uKCI5MTEyIiksdT1uKCIyNDFjIikuZixsPW4oIjNhOWIiKSxmPW4oIjQ0ZTciKSxkPW4oIjU3N2UiKSxoPW4oIjkwZDgiKSxwPW4oIjlmN2YiKSx2PW4oImFlYjAiKSxnPW4oImNiMmQiKSxtPW4oImQwMzkiKSxiPW4oIjFhMmQiKSx5PW4oIjY5ZjMiKS5lbmZvcmNlLF89bigiMjYyNiIpLHc9bigiYjYyMiIpLHg9bigiZmNlMyIpLFM9bigiMTA3YyIpLFQ9dygibWF0Y2giKSxDPWkuUmVnRXhwLGs9Qy5wcm90b3R5cGUsTz1pLlN5bnRheEVycm9yLEU9YShrLmV4ZWMpLEk9YSgiIi5jaGFyQXQpLFA9YSgiIi5yZXBsYWNlKSxNPWEoIiIuaW5kZXhPZiksQT1hKCIiLnNsaWNlKSwkPS9eXD88W15cc1xkISMlJiorPD0+QF5dW15ccyEjJSYqKzw9PkBeXSo+LyxMPS9hL2csaj0vYS9nLFI9bmV3IEMoTCkhPT1MLE49cC5NSVNTRURfU1RJQ0tZLEI9cC5VTlNVUFBPUlRFRF9ZLEQ9ciYmKCFSfHxOfHx4fHxTfHxtKChmdW5jdGlvbigpe3JldHVybiBqW1RdPSExLEMoTCkhPUx8fEMoaik9PWp8fCIvYS9pIiE9QyhMLCJpIil9KSkpO2lmKG8oIlJlZ0V4cCIsRCkpe2Zvcih2YXIgRj1mdW5jdGlvbih0LGUpe3ZhciBuLHIsaSxhLG8sdSxwPWwoayx0aGlzKSx2PWYodCksZz12b2lkIDA9PT1lLG09W10sXz10O2lmKCFwJiZ2JiZnJiZ0LmNvbnN0cnVjdG9yPT09RilyZXR1cm4gdDtpZigodnx8bChrLHQpKSYmKHQ9dC5zb3VyY2UsZyYmKGU9aChfKSkpLHQ9dm9pZCAwPT09dD8iIjpkKHQpLGU9dm9pZCAwPT09ZT8iIjpkKGUpLF89dCx4JiYiZG90QWxsImluIEwmJihyPSEhZSYmTShlLCJzIik+LTEsciYmKGU9UChlLC9zL2csIiIpKSksbj1lLE4mJiJzdGlja3kiaW4gTCYmKGk9ISFlJiZNKGUsInkiKT4tMSxpJiZCJiYoZT1QKGUsL3kvZywiIikpKSxTJiYoYT1mdW5jdGlvbih0KXtmb3IodmFyIGUsbj10Lmxlbmd0aCxyPTAsaT0iIixhPVtdLG89e30scz0hMSxjPSExLHU9MCxsPSIiO3I8PW47cisrKXtpZihlPUkodCxyKSwiXFwiPT09ZSllKz1JKHQsKytyKTtlbHNlIGlmKCJdIj09PWUpcz0hMTtlbHNlIGlmKCFzKXN3aXRjaCghMCl7Y2FzZSJbIj09PWU6cz0hMDticmVhaztjYXNlIigiPT09ZTpFKCQsQSh0LHIrMSkpJiYocis9MixjPSEwKSxpKz1lLHUrKztjb250aW51ZTtjYXNlIj4iPT09ZSYmYzppZigiIj09PWx8fGIobyxsKSl0aHJvdyBuZXcgTygiSW52YWxpZCBjYXB0dXJlIGdyb3VwIG5hbWUiKTtvW2xdPSEwLGFbYS5sZW5ndGhdPVtsLHVdLGM9ITEsbD0iIjtjb250aW51ZX1jP2wrPWU6aSs9ZX1yZXR1cm5baSxhXX0odCksdD1hWzBdLG09YVsxXSksbz1zKEModCxlKSxwP3RoaXM6ayxGKSwocnx8aXx8bS5sZW5ndGgpJiYodT15KG8pLHImJih1LmRvdEFsbD0hMCx1LnJhdz1GKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPXQubGVuZ3RoLHI9MCxpPSIiLGE9ITE7cjw9bjtyKyspZT1JKHQsciksIlxcIiE9PWU/YXx8Ii4iIT09ZT8oIlsiPT09ZT9hPSEwOiJdIj09PWUmJihhPSExKSxpKz1lKTppKz0iW1xcc1xcU10iOmkrPWUrSSh0LCsrcik7cmV0dXJuIGl9KHQpLG4pKSxpJiYodS5zdGlja3k9ITApLG0ubGVuZ3RoJiYodS5ncm91cHM9bSkpLHQhPT1fKXRyeXtjKG8sInNvdXJjZSIsIiI9PT1fPyIoPzopIjpfKX1jYXRjaCh3KXt9cmV0dXJuIG99LFc9dShDKSxIPTA7Vy5sZW5ndGg+SDspdihGLEMsV1tIKytdKTtrLmNvbnN0cnVjdG9yPUYsRi5wcm90b3R5cGU9ayxnKGksIlJlZ0V4cCIsRix7Y29uc3RydWN0b3I6ITB9KX1fKCJSZWdFeHAiKX0sIjRkNjQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJmYzZhIiksaT1uKCIyM2NiIiksYT1uKCIwN2ZhIiksbz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLG8pe3ZhciBzLGM9cihlKSx1PWEoYyksbD1pKG8sdSk7aWYodCYmbiE9bil7d2hpbGUodT5sKWlmKHM9Y1tsKytdLHMhPXMpcmV0dXJuITB9ZWxzZSBmb3IoO3U+bDtsKyspaWYoKHR8fGwgaW4gYykmJmNbbF09PT1uKXJldHVybiB0fHxsfHwwO3JldHVybiF0JiYtMX19O3QuZXhwb3J0cz17aW5jbHVkZXM6byghMCksaW5kZXhPZjpvKCExKX19LCI0ZDkwIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjBjY2IiKS5zdGFydCxhPW4oIjlhMGMiKTtyKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOmF9LHtwYWRTdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwiNGRhZSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzY2IiKSxpPW4oIjA3ZmEiKSxhPW4oIjg0MTgiKSxvPUFycmF5LHM9TWF0aC5tYXg7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGM9aSh0KSx1PXIoZSxjKSxsPXIodm9pZCAwPT09bj9jOm4sYyksZj1vKHMobC11LDApKSxkPTA7dTxsO3UrKyxkKyspYShmLGQsdFt1XSk7cmV0dXJuIGYubGVuZ3RoPWQsZn19LCI0ZGU0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImI3MjciKS5maWx0ZXIsYT1uKCIxZGRlIiksbz1hKCJmaWx0ZXIiKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IW99LHtmaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sIjRkZjQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMDM2NiIpLGk9bigiYzY1YiIpLGE9bigiN2IwYiIpLG89bigiOWJkZCIpLHM9bigiZTk1YSIpLGM9bigiNjhlZSIpLHU9bigiMDdmYSIpLGw9bigiODQxOCIpLGY9bigiOWExZiIpLGQ9bigiMzVhMSIpLGg9QXJyYXk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWEodCksbj1jKHRoaXMpLHA9YXJndW1lbnRzLmxlbmd0aCx2PXA+MT9hcmd1bWVudHNbMV06dm9pZCAwLGc9dm9pZCAwIT09djtnJiYodj1yKHYscD4yP2FyZ3VtZW50c1syXTp2b2lkIDApKTt2YXIgbSxiLHksXyx3LHgsUz1kKGUpLFQ9MDtpZighU3x8dGhpcz09PWgmJnMoUykpZm9yKG09dShlKSxiPW4/bmV3IHRoaXMobSk6aChtKTttPlQ7VCsrKXg9Zz92KGVbVF0sVCk6ZVtUXSxsKGIsVCx4KTtlbHNlIGZvcihfPWYoZSxTKSx3PV8ubmV4dCxiPW4/bmV3IHRoaXM6W107ISh5PWkodyxfKSkuZG9uZTtUKyspeD1nP28oXyx2LFt5LnZhbHVlLFRdLCEwKTp5LnZhbHVlLGwoYixULHgpO3JldHVybiBiLmxlbmd0aD1ULGJ9fSwiNGU4MiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJlMzMwIiksYT1uKCI1OWVkIiksbz1uKCI3YjBiIikscz1uKCIwN2ZhIiksYz1uKCIwODNhIiksdT1uKCI1NzdlIiksbD1uKCJkMDM5IiksZj1uKCJhZGRiIiksZD1uKCJhNjQwIiksaD1uKCIwNGQxIikscD1uKCJkOTk4Iiksdj1uKCIyZDAwIiksZz1uKCI1MTJjIiksbT1bXSxiPWkobS5zb3J0KSx5PWkobS5wdXNoKSxfPWwoKGZ1bmN0aW9uKCl7bS5zb3J0KHZvaWQgMCl9KSksdz1sKChmdW5jdGlvbigpe20uc29ydChudWxsKX0pKSx4PWQoInNvcnQiKSxTPSFsKChmdW5jdGlvbigpe2lmKHYpcmV0dXJuIHY8NzA7aWYoIShoJiZoPjMpKXtpZihwKXJldHVybiEwO2lmKGcpcmV0dXJuIGc8NjAzO3ZhciB0LGUsbixyLGk9IiI7Zm9yKHQ9NjU7dDw3Njt0Kyspe3N3aXRjaChlPVN0cmluZy5mcm9tQ2hhckNvZGUodCksdCl7Y2FzZSA2NjpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA3MjpuPTM7YnJlYWs7Y2FzZSA2ODpjYXNlIDcxOm49NDticmVhaztkZWZhdWx0Om49Mn1mb3Iocj0wO3I8NDc7cisrKW0ucHVzaCh7azplK3IsdjpufSl9Zm9yKG0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS52LXQudn0pKSxyPTA7cjxtLmxlbmd0aDtyKyspZT1tW3JdLmsuY2hhckF0KDApLGkuY2hhckF0KGkubGVuZ3RoLTEpIT09ZSYmKGkrPWUpO3JldHVybiJER0JFRkhBQ0lKSyIhPT1pfX0pKSxUPV98fCF3fHwheHx8IVM7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOlR9LHtzb3J0OmZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXQmJmEodCk7dmFyIGU9byh0aGlzKTtpZihTKXJldHVybiB2b2lkIDA9PT10P2IoZSk6YihlLHQpO3ZhciBuLHIsaT1bXSxsPXMoZSk7Zm9yKHI9MDtyPGw7cisrKXIgaW4gZSYmeShpLGVbcl0pO2YoaSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gdm9pZCAwPT09bj8tMTp2b2lkIDA9PT1lPzE6dm9pZCAwIT09dD8rdChlLG4pfHwwOnUoZSk+dShuKT8xOi0xfX0odCkpLG49cyhpKSxyPTA7d2hpbGUocjxuKWVbcl09aVtyKytdO3doaWxlKHI8bCljKGUscisrKTtyZXR1cm4gZX19KX0sIjRlYTQiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSwiNGYwNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7Zm9yKHZhciBuPVtdLHI9e30saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldLG89YVswXSxzPWFbMV0sYz1hWzJdLHU9YVszXSxsPXtpZDp0KyI6IitpLGNzczpzLG1lZGlhOmMsc291cmNlTWFwOnV9O3Jbb10/cltvXS5wYXJ0cy5wdXNoKGwpOm4ucHVzaChyW29dPXtpZDpvLHBhcnRzOltsXX0pfXJldHVybiBufW4ucihlKSxuLmQoZSwiZGVmYXVsdCIsKGZ1bmN0aW9uKCl7cmV0dXJuIGh9KSk7dmFyIGk9InVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQ7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgREVCVUcmJkRFQlVHJiYhaSl0aHJvdyBuZXcgRXJyb3IoInZ1ZS1zdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudC4gVXNlIHsgdGFyZ2V0OiAnbm9kZScgfSBpbiB5b3VyIFdlYnBhY2sgY29uZmlnIHRvIGluZGljYXRlIGEgc2VydmVyLXJlbmRlcmluZyBlbnZpcm9ubWVudC4iKTt2YXIgYT17fSxvPWkmJihkb2N1bWVudC5oZWFkfHxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdKSxzPW51bGwsYz0wLHU9ITEsbD1mdW5jdGlvbigpe30sZj1udWxsLGQ9InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiYvbXNpZSBbNi05XVxiLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7ZnVuY3Rpb24gaCh0LGUsbixpKXt1PW4sZj1pfHx7fTt2YXIgbz1yKHQsZSk7cmV0dXJuIHAobyksZnVuY3Rpb24oZSl7Zm9yKHZhciBuPVtdLGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIHM9b1tpXSxjPWFbcy5pZF07Yy5yZWZzLS0sbi5wdXNoKGMpfWU/KG89cih0LGUpLHAobykpOm89W107Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKyl7Yz1uW2ldO2lmKDA9PT1jLnJlZnMpe2Zvcih2YXIgdT0wO3U8Yy5wYXJ0cy5sZW5ndGg7dSsrKWMucGFydHNbdV0oKTtkZWxldGUgYVtjLmlkXX19fX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbj10W2VdLHI9YVtuLmlkXTtpZihyKXtyLnJlZnMrKztmb3IodmFyIGk9MDtpPHIucGFydHMubGVuZ3RoO2krKylyLnBhcnRzW2ldKG4ucGFydHNbaV0pO2Zvcig7aTxuLnBhcnRzLmxlbmd0aDtpKyspci5wYXJ0cy5wdXNoKGcobi5wYXJ0c1tpXSkpO3IucGFydHMubGVuZ3RoPm4ucGFydHMubGVuZ3RoJiYoci5wYXJ0cy5sZW5ndGg9bi5wYXJ0cy5sZW5ndGgpfWVsc2V7dmFyIG89W107Zm9yKGk9MDtpPG4ucGFydHMubGVuZ3RoO2krKylvLnB1c2goZyhuLnBhcnRzW2ldKSk7YVtuLmlkXT17aWQ6bi5pZCxyZWZzOjEscGFydHM6b319fX1mdW5jdGlvbiB2KCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gdC50eXBlPSJ0ZXh0L2NzcyIsby5hcHBlbmRDaGlsZCh0KSx0fWZ1bmN0aW9uIGcodCl7dmFyIGUsbixyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtdnVlLXNzci1pZH49IicrdC5pZCsnIl0nKTtpZihyKXtpZih1KXJldHVybiBsO3IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKX1pZihkKXt2YXIgaT1jKys7cj1zfHwocz12KCkpLGU9Yi5iaW5kKG51bGwscixpLCExKSxuPWIuYmluZChudWxsLHIsaSwhMCl9ZWxzZSByPXYoKSxlPXkuYmluZChudWxsLHIpLG49ZnVuY3Rpb24oKXtyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocil9O3JldHVybiBlKHQpLGZ1bmN0aW9uKHIpe2lmKHIpe2lmKHIuY3NzPT09dC5jc3MmJnIubWVkaWE9PT10Lm1lZGlhJiZyLnNvdXJjZU1hcD09PXQuc291cmNlTWFwKXJldHVybjtlKHQ9cil9ZWxzZSBuKCl9fXZhciBtPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIGZ1bmN0aW9uKGUsbil7cmV0dXJuIHRbZV09bix0LmZpbHRlcihCb29sZWFuKS5qb2luKCJcbiIpfX0oKTtmdW5jdGlvbiBiKHQsZSxuLHIpe3ZhciBpPW4/IiI6SShyLmNzcyk7aWYodC5zdHlsZVNoZWV0KXQuc3R5bGVTaGVldC5jc3NUZXh0PW0oZSxpKTtlbHNle3ZhciBhPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGkpLG89dC5jaGlsZE5vZGVzO29bZV0mJnQucmVtb3ZlQ2hpbGQob1tlXSksby5sZW5ndGg/dC5pbnNlcnRCZWZvcmUoYSxvW2VdKTp0LmFwcGVuZENoaWxkKGEpfX1mdW5jdGlvbiB5KHQsZSl7dmFyIG49SShlLmNzcykscj1lLm1lZGlhLGk9ZS5zb3VyY2VNYXA7aWYociYmdC5zZXRBdHRyaWJ1dGUoIm1lZGlhIixyKSxmLnNzcklkJiZ0LnNldEF0dHJpYnV0ZSgiZGF0YS12dWUtc3NyLWlkIixlLmlkKSxpJiYobis9IlxuLyojIHNvdXJjZVVSTD0iK2kuc291cmNlc1swXSsiICovIixuKz0iXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIrYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoaSkpKSkrIiAqLyIpLHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1uO2Vsc2V7d2hpbGUodC5maXJzdENoaWxkKXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG4pKX19dmFyIF89LyVcPyhbKy1dP1xkKyhcLlxkKyk/KVw/JS9nLHc9L1wuXD8lUEFHRVw/JS9nLHg9L1w/JVBBR0VcPyVcW2RhdGEtdi1bYS16MC05XXs4fVxdL2csUz0vdW5pLXBhZ2UtYm9keVxbZGF0YS12LVthLXowLTldezh9XF0vZyxUPS92YXJcKC0tc3RhdHVzLWJhci1oZWlnaHRcKS9naSxDPS92YXJcKC0td2luZG93LXRvcFwpL2dpLGs9L3ZhclwoLS13aW5kb3ctYm90dG9tXCkvZ2ksTz0vdmFyXCgtLXdpbmRvdy1sZWZ0XCkvZ2ksRT0vdmFyXCgtLXdpbmRvdy1yaWdodFwpL2dpO2Z1bmN0aW9uIEkodCl7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgdD0iZnVuY3Rpb24iPT09dHlwZW9mIGdldEFwcCYmZ2V0QXBwKCk7cmV0dXJuIHQmJnQuJHJvdXRlJiZ0LiRyb3V0ZS5tZXRhJiZ0LiRyb3V0ZS5tZXRhLm5hbWV8fCIifSgpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHVuaSYmIXVuaS5jYW5JVXNlKCJjc3MudmFyIikpe3ZhciBuPWZ1bmN0aW9uKCl7dmFyIHQ9ImZ1bmN0aW9uIj09PXR5cGVvZiBnZXRBcHAmJmdldEFwcCgpO2lmKHQmJnQuJHJvdXRlJiZ0LiRyb3V0ZS5tZXRhJiZ0LiRyb3V0ZS5tZXRhLm5hbWUpcmV0dXJue3RvcDp0LiRyb3V0ZS5tZXRhLndpbmRvd1RvcCxib3R0b206dC4kcm91dGUubWV0YS5pc1RhYkJhcj81MDowfTtyZXR1cm57dG9wOjAsYm90dG9tOjB9fSgpO3Q9dC5yZXBsYWNlKFQsIjBweCIpLnJlcGxhY2UoQyxuLnRvcCsicHgiKS5yZXBsYWNlKGssbi5ib3R0b20rInB4IikucmVwbGFjZShPLCIwcHgiKS5yZXBsYWNlKEUsIjBweCIpfXJldHVybiB0LnJlcGxhY2UoeCxlKS5yZXBsYWNlKHcsIiIpLnJlcGxhY2UoUywiYm9keS4iK2UrIiB1bmktcGFnZS1ib2R5IikucmVwbGFjZSgvXHtbXHNcU10rP1x9fEBtZWRpYS4rP1x7L2csKGZ1bmN0aW9uKHQpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHVuaT90OnQucmVwbGFjZShfLChmdW5jdGlvbih0LGUpe3JldHVybiB1bmkudXB4MnB4KGUpKyJweCJ9KSl9KSl9fSwiNGYxZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmludm9rZUNhbGxiYWNrSGFuZGxlcj1fLGUucmVtb3ZlQ2FsbGJhY2tIYW5kbGVyPWZ1bmN0aW9uKHQpe2RlbGV0ZSB2W3RdfSxlLndyYXBwZXI9ZnVuY3Rpb24odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYoeC5pbmRleE9mKHQpPi0xfHwhKDAsaS5pc0ZuKShlKSlyZXR1cm4gZTtyZXR1cm4gdyh0LG4pLGZ1bmN0aW9uKCl7Zm9yKHZhciByPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkocikscz0wO3M8cjtzKyspYVtzXT1hcmd1bWVudHNbc107aWYoKDAsby5pc1N5bmNBcGkpKHQpKXtpZihoKHQsYSwtMSkpcmV0dXJuIGUuYXBwbHkobnVsbCxhKX1lbHNlIGlmKCgwLG8uaXNDYWxsYmFja0FwaSkodCkpe2lmKGgodCxhLC0xKSlyZXR1cm4gZSgodC5zdGFydHNXaXRoKCJvZmYiKT9tOmcpKHQsYVswXSkpfWVsc2V7dmFyIGM9e307YS5sZW5ndGgmJihjPWFbMF0pO3ZhciB1LGw9eSh0LGMsbiksZj1sLnBhcmFtcyxkPWwuY2FsbGJhY2tJZDtpZighMSE9PWQpcmV0dXJuIHU9KDAsaS5pc0ZuKShmKT9lKGQpOmUoZixkKSx1JiYhKDAsby5pc1Rhc2tBcGkpKHQpJiYodT1fKGQsdSksKDAsaS5pc1BsYWluT2JqZWN0KSh1KSYmKHUuZXJyTXNnPXUuZXJyTXNnfHx0KyI6b2siKSksdX19fSxlLndyYXBwZXJVbmltcGxlbWVudGVkPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihuKXt0LmVycm9yKCJBUEkgYCIrZSsiYCBpcyBub3QgeWV0IGltcGxlbWVudGVkIil9fSxuKCI5OWFmIiksbigiZDllMiIpLG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oImI2NGIiKSxuKCJjOTc1IiksbigiMmNhMCIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiYTllMyIpO3ZhciBpPW4oImRiNmEiKSxhPW4oIjlmNDkiKSxvPW4oImE1ZTAiKSxzPW4oIjkwZmUiKSxjPXIobigiY2NhOCIpKSx1PXIobigiMmNlYSIpKTtmdW5jdGlvbiBsKHQsZSxuKXt2YXIgcj0iIi5jb25jYXQoZSwiOmZhaWwgIikuY29uY2F0KHQpO2lmKC0xPT09bil0aHJvdyBuZXcgRXJyb3Iocik7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgbiYmXyhuLHtlcnJNc2c6cn0pLCExfXZhciBmPVt7bmFtZToiY2FsbGJhY2siLHR5cGU6RnVuY3Rpb24scmVxdWlyZWQ6ITB9XSxkPVsiYmVmb3JlVmFsaWRhdGUiLCJiZWZvcmVBbGwiLCJiZWZvcmVTdWNjZXNzIl07ZnVuY3Rpb24gaCh0LGUsbil7dmFyIHI9Yy5kZWZhdWx0W3RdO2lmKCFyJiYoMCxvLmlzQ2FsbGJhY2tBcGkpKHQpJiYocj1mKSxyKXtpZihBcnJheS5pc0FycmF5KHIpJiZBcnJheS5pc0FycmF5KGUpKXt2YXIgYT1PYmplY3QuY3JlYXRlKG51bGwpLHM9T2JqZWN0LmNyZWF0ZShudWxsKSxoPWUubGVuZ3RoO3IuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXthW3QubmFtZV09dCxoPm4mJihzW3QubmFtZV09ZVtuXSl9KSkscj1hLGU9c31pZigoMCxpLmlzRm4pKHIuYmVmb3JlVmFsaWRhdGUpKXt2YXIgcD1yLmJlZm9yZVZhbGlkYXRlKGUpO2lmKHApcmV0dXJuIGwocCx0LG4pfWZvcih2YXIgdj1PYmplY3Qua2V5cyhyKSxnPTA7Zzx2Lmxlbmd0aDtnKyspaWYoLTE9PT1kLmluZGV4T2YodltnXSkpe3ZhciBtPSgwLHUuZGVmYXVsdCkodltnXSxyLGUpO2lmKG0pcmV0dXJuIGwobSx0LG4pfX1yZXR1cm4hMH12YXIgcD0xLHY9e307ZnVuY3Rpb24gZyh0LGUpe3ZhciBuPXArKyxyPSJhcGkuIit0KyIuIituO3JldHVybiB2W25dPXtuYW1lOnIsa2VlcEFsaXZlOiEwLGNhbGxiYWNrOmV9LG59ZnVuY3Rpb24gbSh0LGUpe2Zvcih2YXIgbiBpbiB2KXt2YXIgcj12W25dO2lmKHIubmFtZS5zdGFydHNXaXRoKCJhcGkuIit0LnJlcGxhY2UoL15vZmYvLCJvbiIpKSYmci5jYWxsYmFjaz09PWUpcmV0dXJuIGRlbGV0ZSB2W25dLE51bWJlcihuKX1yZXR1cm4iZmFpbCJ9ZnVuY3Rpb24gYih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYoISgwLGkuaXNQbGFpbk9iamVjdCkoZSkpcmV0dXJue3BhcmFtczplfTtlPU9iamVjdC5hc3NpZ24oe30sZSk7dmFyIHI9KDAscy5nZXRBcGlDYWxsYmFja3MpKGUpLG89ci5zdWNjZXNzLGM9ci5mYWlsLHU9ci5jYW5jZWwsbD1yLmNvbXBsZXRlLGY9KDAsaS5pc0ZuKShvKSxkPSgwLGkuaXNGbikoYyksaD0oMCxpLmlzRm4pKHUpLGc9KDAsaS5pc0ZuKShsKTtpZighZiYmIWQmJiFoJiYhZylyZXR1cm57cGFyYW1zOmV9O3ZhciBtPXt9O2Zvcih2YXIgYiBpbiBuKXt2YXIgeT1uW2JdOygwLGkuaXNGbikoeSkmJihtW2JdPSgwLGEudHJ5Q2F0Y2hGcmFtZXdvcmspKHkpKX12YXIgXz1tLmJlZm9yZVN1Y2Nlc3Msdz1tLmFmdGVyU3VjY2Vzcyx4PW0uYmVmb3JlRmFpbCxTPW0uYWZ0ZXJGYWlsLFQ9bS5iZWZvcmVDYW5jZWwsQz1tLmFmdGVyQ2FuY2VsLGs9bS5iZWZvcmVBbGwsTz1tLmFmdGVyQWxsLEU9cCsrLEk9ImFwaS4iK3QrIi4iK0UsUD1mdW5jdGlvbihuKXtpZihuLmVyck1zZz1uLmVyck1zZ3x8dCsiOm9rIiwtMSE9PW4uZXJyTXNnLmluZGV4T2YoIjpvayIpKW4uZXJyTXNnPXQrIjpvayI7ZWxzZSBpZigtMSE9PW4uZXJyTXNnLmluZGV4T2YoIjpjYW5jZWwiKSluLmVyck1zZz10KyI6Y2FuY2VsIjtlbHNlIGlmKC0xIT09bi5lcnJNc2cuaW5kZXhPZigiOmZhaWwiKSl7dmFyIHI9IiIsYT1uLmVyck1zZy5pbmRleE9mKCIgIik7YT4tMSYmKHI9bi5lcnJNc2cuc3Vic3RyKGEpKSxuLmVyck1zZz10KyI6ZmFpbCIrcn0oMCxpLmlzRm4pKGspJiZrKG4pO3ZhciBzPW4uZXJyTXNnOzA9PT1zLmluZGV4T2YodCsiOm9rIik/KCgwLGkuaXNGbikoXykmJl8obixlKSxmJiZvKG4pLCgwLGkuaXNGbikodykmJncobikpOjA9PT1zLmluZGV4T2YodCsiOmNhbmNlbCIpPyhuLmVyck1zZz1uLmVyck1zZy5yZXBsYWNlKHQrIjpjYW5jZWwiLHQrIjpmYWlsIGNhbmNlbCIpLGQmJmMobiksKDAsaS5pc0ZuKShUKSYmVChuKSxoJiZ1KG4pLCgwLGkuaXNGbikoQykmJkMobikpOjA9PT1zLmluZGV4T2YodCsiOmZhaWwiKSYmKCgwLGkuaXNGbikoeCkmJngobiksZCYmYyhuKSwoMCxpLmlzRm4pKFMpJiZTKG4pKSxnJiZsKG4pLCgwLGkuaXNGbikoTykmJk8obil9O3JldHVybiB2W0VdPXtuYW1lOkksY2FsbGJhY2s6UH0se3BhcmFtczplLGNhbGxiYWNrSWQ6RX19ZnVuY3Rpb24geSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30scj1iKHQsZSxuKSxhPXIucGFyYW1zLG89ci5jYWxsYmFja0lkO3JldHVybigwLGkuaXNQbGFpbk9iamVjdCkoYSkmJiFoKHQsYSxvKT97cGFyYW1zOmEsY2FsbGJhY2tJZDohMX06e3BhcmFtczphLGNhbGxiYWNrSWQ6b319ZnVuY3Rpb24gXyh0LGUsbil7aWYoIm51bWJlciI9PT10eXBlb2YgdCl7dmFyIHI9dlt0XTtpZihyKXJldHVybiByLmtlZXBBbGl2ZXx8ZGVsZXRlIHZbdF0sci5jYWxsYmFjayhlLG4pfXJldHVybiBlfWZ1bmN0aW9uIHcodCxlKXt2YXIgbj1jLmRlZmF1bHRbdF07biYmKCgwLGkuaXNGbikobi5iZWZvcmVBbGwpJiYoZS5iZWZvcmVBbGw9bi5iZWZvcmVBbGwpLCgwLGkuaXNGbikobi5iZWZvcmVTdWNjZXNzKSYmKGUuYmVmb3JlU3VjY2Vzcz1uLmJlZm9yZVN1Y2Nlc3MpKX12YXIgeD1bImdldFB1c2hDbGllbnRJZCIsIm9uUHVzaE1lc3NhZ2UiLCJvZmZQdXNoTWVzc2FnZSJdfSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sIjRmYWQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCI4NjFkIiksYT1uKCJjNmI2Iiksbz1uKCJkODZiIikscz1PYmplY3QuaXNFeHRlbnNpYmxlLGM9cigoZnVuY3Rpb24oKXtzKDEpfSkpO3QuZXhwb3J0cz1jfHxvP2Z1bmN0aW9uKHQpe3JldHVybiEhaSh0KSYmKCghb3x8IkFycmF5QnVmZmVyIiE9YSh0KSkmJighc3x8cyh0KSkpfTpzfSwiNGZjYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbigpe2lmKHVuaS5jYW5JVXNlKCJjc3MudmFyIikpe3ZhciB0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSxlPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0td2luZG93LXRvcCIpLm1hdGNoKC9cZCsvKXx8WyIwIl0pWzBdKSxuPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0td2luZG93LWJvdHRvbSIpLm1hdGNoKC9cZCsvKXx8WyIwIl0pWzBdKSxyPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0td2luZG93LWxlZnQiKS5tYXRjaCgvXGQrLyl8fFsiMCJdKVswXSksbz1wYXJzZUludCgodC5nZXRQcm9wZXJ0eVZhbHVlKCItLXdpbmRvdy1yaWdodCIpLm1hdGNoKC9cZCsvKXx8WyIwIl0pWzBdKSxzPXBhcnNlSW50KCh0LmdldFByb3BlcnR5VmFsdWUoIi0tdG9wLXdpbmRvdy1oZWlnaHQiKS5tYXRjaCgvXGQrLyl8fFsiMCJdKVswXSk7cmV0dXJue3RvcDooZT9lK2EuZGVmYXVsdC50b3A6MCkrKHN8fDApLGJvdHRvbTpuP24rYS5kZWZhdWx0LmJvdHRvbTowLGxlZnQ6cj9yK2EuZGVmYXVsdC5sZWZ0OjAscmlnaHQ6bz9vK2EuZGVmYXVsdC5yaWdodDowfX12YXIgYz0wLHU9MCxsPWdldEN1cnJlbnRQYWdlcygpO2lmKGwubGVuZ3RoKXt2YXIgZj1sW2wubGVuZ3RoLTFdLiRwYXJlbnQuJHBhcmVudCxkPWYubmF2aWdhdGlvbkJhci50eXBlO2M9ImRlZmF1bHQiPT09ZHx8ImZsb2F0Ij09PWQ/aS5OQVZCQVJfSEVJR0hUOjB9dmFyIGg9Z2V0QXBwKCk7aCYmKHU9aC4kY2hpbGRyZW5bMF0mJmguJGNoaWxkcmVuWzBdLnNob3dUYWJCYXI/aS5UQUJCQVJfSEVJR0hUOjApO3JldHVybnt0b3A6Yyxib3R0b206dSxsZWZ0OjAscmlnaHQ6MH19LG4oImUyNWUiKSxuKCJhYzFmIiksbigiNDY2ZCIpO3ZhciBpPW4oIjBmYmUiKSxhPXIobigiZDhjOCIpKX0sNTA4NzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNjhlZSIpLGk9bigiMGQ1MSIpLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpKXJldHVybiB0O3Rocm93IGEoaSh0KSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIil9fSwiNTBjNCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjU5MjYiKSxpPU1hdGgubWluO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP2kocih0KSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sIjUxMmMiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzNDJmIiksaT1yLm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkKylcLi8pO3QuZXhwb3J0cz0hIWkmJitpWzFdfSwiNTFlYiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI4MjVhIiksaT1uKCI0ODVhIiksYT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHIodGhpcyksInN0cmluZyI9PT10fHwiZGVmYXVsdCI9PT10KXQ9InN0cmluZyI7ZWxzZSBpZigibnVtYmVyIiE9PXQpdGhyb3cgYSgiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gaSh0aGlzLHQpfX0sIjUyOGEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjNkYTgiKSxpPW4oImI4OWQiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LDUzMTk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyYmE0IiksaT1uKCJjNjViIiksYT1uKCJlMzMwIiksbz1uKCJkNzg0Iikscz1uKCJkMDM5IiksYz1uKCI4MjVhIiksdT1uKCIxNjI2IiksbD1uKCI3MjM0IiksZj1uKCI1OTI2IiksZD1uKCI1MGM0IiksaD1uKCI1NzdlIikscD1uKCIxZDgwIiksdj1uKCI4YWE1IiksZz1uKCJkYzRhIiksbT1uKCIwY2IyIiksYj1uKCIxNGMzIikseT1uKCJiNjIyIiksXz15KCJyZXBsYWNlIiksdz1NYXRoLm1heCx4PU1hdGgubWluLFM9YShbXS5jb25jYXQpLFQ9YShbXS5wdXNoKSxDPWEoIiIuaW5kZXhPZiksaz1hKCIiLnNsaWNlKSxPPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3Q6U3RyaW5nKHQpfSxFPWZ1bmN0aW9uKCl7cmV0dXJuIiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKX0oKSxJPWZ1bmN0aW9uKCl7cmV0dXJuISEvLi9bX10mJiIiPT09Ly4vW19dKCJhIiwiJDAiKX0oKSxQPSFzKChmdW5jdGlvbigpe3ZhciB0PS8uLztyZXR1cm4gdC5leGVjPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHQuZ3JvdXBzPXthOiI3In0sdH0sIjciIT09IiIucmVwbGFjZSh0LCIkPGE+Iil9KSk7bygicmVwbGFjZSIsKGZ1bmN0aW9uKHQsZSxuKXt2YXIgYT1JPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbih0LG4pe3ZhciByPXAodGhpcyksYT1sKHQpP3ZvaWQgMDpnKHQsXyk7cmV0dXJuIGE/aShhLHQscixuKTppKGUsaChyKSx0LG4pfSxmdW5jdGlvbih0LGkpe3ZhciBvPWModGhpcykscz1oKHQpO2lmKCJzdHJpbmciPT10eXBlb2YgaSYmLTE9PT1DKGksYSkmJi0xPT09QyhpLCIkPCIpKXt2YXIgbD1uKGUsbyxzLGkpO2lmKGwuZG9uZSlyZXR1cm4gbC52YWx1ZX12YXIgcD11KGkpO3B8fChpPWgoaSkpO3ZhciBnPW8uZ2xvYmFsO2lmKGcpe3ZhciB5PW8udW5pY29kZTtvLmxhc3RJbmRleD0wfXZhciBfPVtdO3doaWxlKDEpe3ZhciBFPWIobyxzKTtpZihudWxsPT09RSlicmVhaztpZihUKF8sRSksIWcpYnJlYWs7dmFyIEk9aChFWzBdKTsiIj09PUkmJihvLmxhc3RJbmRleD12KHMsZChvLmxhc3RJbmRleCkseSkpfWZvcih2YXIgUD0iIixNPTAsQT0wO0E8Xy5sZW5ndGg7QSsrKXtFPV9bQV07Zm9yKHZhciAkPWgoRVswXSksTD13KHgoZihFLmluZGV4KSxzLmxlbmd0aCksMCksaj1bXSxSPTE7UjxFLmxlbmd0aDtSKyspVChqLE8oRVtSXSkpO3ZhciBOPUUuZ3JvdXBzO2lmKHApe3ZhciBCPVMoWyRdLGosTCxzKTt2b2lkIDAhPT1OJiZUKEIsTik7dmFyIEQ9aChyKGksdm9pZCAwLEIpKX1lbHNlIEQ9bSgkLHMsTCxqLE4saSk7TD49TSYmKFArPWsocyxNLEwpK0QsTT1MKyQubGVuZ3RoKX1yZXR1cm4gUCtrKHMsTSl9XX0pLCFQfHwhRXx8SSl9LDUzNTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCJlMjYwIik7dmFyIHI9bigiMjNlNyIpLGk9bigiZGE4NCIpLGE9bigiYzY1YiIpLG89bigiZTMzMCIpLHM9bigiODNhYiIpLGM9bigiZjM1NCIpLHU9bigiY2IyZCIpLGw9bigiNjk2NCIpLGY9bigiZDQ0ZSIpLGQ9bigiZGNjMyIpLGg9bigiNjlmMyIpLHA9bigiMTlhYSIpLHY9bigiMTYyNiIpLGc9bigiMWEyZCIpLG09bigiMDM2NiIpLGI9bigiZjVkZiIpLHk9bigiODI1YSIpLF89bigiODYxZCIpLHc9bigiNTc3ZSIpLHg9bigiN2M3MyIpLFM9bigiNWM2YyIpLFQ9bigiOWExZiIpLEM9bigiMzVhMSIpLGs9bigiZDZkNiIpLE89bigiYjYyMiIpLEU9bigiYWRkYiIpLEk9TygiaXRlcmF0b3IiKSxQPWguc2V0LE09aC5nZXR0ZXJGb3IoIlVSTFNlYXJjaFBhcmFtcyIpLEE9aC5nZXR0ZXJGb3IoIlVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yIiksJD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEw9ZnVuY3Rpb24odCl7aWYoIXMpcmV0dXJuIGlbdF07dmFyIGU9JChpLHQpO3JldHVybiBlJiZlLnZhbHVlfSxqPUwoImZldGNoIiksUj1MKCJSZXF1ZXN0IiksTj1MKCJIZWFkZXJzIiksQj1SJiZSLnByb3RvdHlwZSxEPU4mJk4ucHJvdG90eXBlLEY9aS5SZWdFeHAsVz1pLlR5cGVFcnJvcixIPWkuZGVjb2RlVVJJQ29tcG9uZW50LFY9aS5lbmNvZGVVUklDb21wb25lbnQsVT1vKCIiLmNoYXJBdCkscT1vKFtdLmpvaW4pLHo9byhbXS5wdXNoKSxZPW8oIiIucmVwbGFjZSksWD1vKFtdLnNoaWZ0KSxHPW8oW10uc3BsaWNlKSxRPW8oIiIuc3BsaXQpLEo9bygiIi5zbGljZSksSz0vXCsvZyxaPUFycmF5KDQpLHR0PWZ1bmN0aW9uKHQpe3JldHVybiBaW3QtMV18fChaW3QtMV09RigiKCg/OiVbXFxkYS1mXXsyfSl7Iit0KyJ9KSIsImdpIikpfSxldD1mdW5jdGlvbih0KXt0cnl7cmV0dXJuIEgodCl9Y2F0Y2goZSl7cmV0dXJuIHR9fSxudD1mdW5jdGlvbih0KXt2YXIgZT1ZKHQsSywiICIpLG49NDt0cnl7cmV0dXJuIEgoZSl9Y2F0Y2gocil7d2hpbGUobillPVkoZSx0dChuLS0pLGV0KTtyZXR1cm4gZX19LHJ0PS9bIScoKX5dfCUyMC9nLGl0PXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIn0sYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGl0W3RdfSxvdD1mdW5jdGlvbih0KXtyZXR1cm4gWShWKHQpLHJ0LGF0KX0sc3Q9ZCgoZnVuY3Rpb24odCxlKXtQKHRoaXMse3R5cGU6IlVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yIixpdGVyYXRvcjpUKE0odCkuZW50cmllcyksa2luZDplfSl9KSwiSXRlcmF0b3IiLChmdW5jdGlvbigpe3ZhciB0PUEodGhpcyksZT10LmtpbmQsbj10Lml0ZXJhdG9yLm5leHQoKSxyPW4udmFsdWU7cmV0dXJuIG4uZG9uZXx8KG4udmFsdWU9ImtleXMiPT09ZT9yLmtleToidmFsdWVzIj09PWU/ci52YWx1ZTpbci5rZXksci52YWx1ZV0pLG59KSwhMCksY3Q9ZnVuY3Rpb24odCl7dGhpcy5lbnRyaWVzPVtdLHRoaXMudXJsPW51bGwsdm9pZCAwIT09dCYmKF8odCk/dGhpcy5wYXJzZU9iamVjdCh0KTp0aGlzLnBhcnNlUXVlcnkoInN0cmluZyI9PXR5cGVvZiB0PyI/Ij09PVUodCwwKT9KKHQsMSk6dDp3KHQpKSl9O2N0LnByb3RvdHlwZT17dHlwZToiVVJMU2VhcmNoUGFyYW1zIixiaW5kVVJMOmZ1bmN0aW9uKHQpe3RoaXMudXJsPXQsdGhpcy51cGRhdGUoKX0scGFyc2VPYmplY3Q6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxzLGMsdT1DKHQpO2lmKHUpe2U9VCh0LHUpLG49ZS5uZXh0O3doaWxlKCEocj1hKG4sZSkpLmRvbmUpe2lmKGk9VCh5KHIudmFsdWUpKSxvPWkubmV4dCwocz1hKG8saSkpLmRvbmV8fChjPWEobyxpKSkuZG9uZXx8IWEobyxpKS5kb25lKXRocm93IFcoIkV4cGVjdGVkIHNlcXVlbmNlIHdpdGggbGVuZ3RoIDIiKTt6KHRoaXMuZW50cmllcyx7a2V5Oncocy52YWx1ZSksdmFsdWU6dyhjLnZhbHVlKX0pfX1lbHNlIGZvcih2YXIgbCBpbiB0KWcodCxsKSYmeih0aGlzLmVudHJpZXMse2tleTpsLHZhbHVlOncodFtsXSl9KX0scGFyc2VRdWVyeTpmdW5jdGlvbih0KXtpZih0KXt2YXIgZSxuLHI9USh0LCImIiksaT0wO3doaWxlKGk8ci5sZW5ndGgpZT1yW2krK10sZS5sZW5ndGgmJihuPVEoZSwiPSIpLHoodGhpcy5lbnRyaWVzLHtrZXk6bnQoWChuKSksdmFsdWU6bnQocShuLCI9IikpfSkpfX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLmVudHJpZXMsbj1bXSxyPTA7d2hpbGUocjxlLmxlbmd0aCl0PWVbcisrXSx6KG4sb3QodC5rZXkpKyI9IitvdCh0LnZhbHVlKSk7cmV0dXJuIHEobiwiJiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXMubGVuZ3RoPTAsdGhpcy5wYXJzZVF1ZXJ5KHRoaXMudXJsLnF1ZXJ5KX0sdXBkYXRlVVJMOmZ1bmN0aW9uKCl7dGhpcy51cmwmJnRoaXMudXJsLnVwZGF0ZSgpfX07dmFyIHV0PWZ1bmN0aW9uKCl7cCh0aGlzLGx0KTt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMDtQKHRoaXMsbmV3IGN0KHQpKX0sbHQ9dXQucHJvdG90eXBlO2lmKGwobHQse2FwcGVuZDpmdW5jdGlvbih0LGUpe2soYXJndW1lbnRzLmxlbmd0aCwyKTt2YXIgbj1NKHRoaXMpO3oobi5lbnRyaWVzLHtrZXk6dyh0KSx2YWx1ZTp3KGUpfSksbi51cGRhdGVVUkwoKX0sZGVsZXRlOmZ1bmN0aW9uKHQpe2soYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgZT1NKHRoaXMpLG49ZS5lbnRyaWVzLHI9dyh0KSxpPTA7d2hpbGUoaTxuLmxlbmd0aCluW2ldLmtleT09PXI/RyhuLGksMSk6aSsrO2UudXBkYXRlVVJMKCl9LGdldDpmdW5jdGlvbih0KXtrKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBlPU0odGhpcykuZW50cmllcyxuPXcodCkscj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0ua2V5PT09bilyZXR1cm4gZVtyXS52YWx1ZTtyZXR1cm4gbnVsbH0sZ2V0QWxsOmZ1bmN0aW9uKHQpe2soYXJndW1lbnRzLmxlbmd0aCwxKTtmb3IodmFyIGU9TSh0aGlzKS5lbnRyaWVzLG49dyh0KSxyPVtdLGk9MDtpPGUubGVuZ3RoO2krKyllW2ldLmtleT09PW4mJnoocixlW2ldLnZhbHVlKTtyZXR1cm4gcn0saGFzOmZ1bmN0aW9uKHQpe2soYXJndW1lbnRzLmxlbmd0aCwxKTt2YXIgZT1NKHRoaXMpLmVudHJpZXMsbj13KHQpLHI9MDt3aGlsZShyPGUubGVuZ3RoKWlmKGVbcisrXS5rZXk9PT1uKXJldHVybiEwO3JldHVybiExfSxzZXQ6ZnVuY3Rpb24odCxlKXtrKGFyZ3VtZW50cy5sZW5ndGgsMSk7Zm9yKHZhciBuLHI9TSh0aGlzKSxpPXIuZW50cmllcyxhPSExLG89dyh0KSxzPXcoZSksYz0wO2M8aS5sZW5ndGg7YysrKW49aVtjXSxuLmtleT09PW8mJihhP0coaSxjLS0sMSk6KGE9ITAsbi52YWx1ZT1zKSk7YXx8eihpLHtrZXk6byx2YWx1ZTpzfSksci51cGRhdGVVUkwoKX0sc29ydDpmdW5jdGlvbigpe3ZhciB0PU0odGhpcyk7RSh0LmVudHJpZXMsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQua2V5PmUua2V5PzE6LTF9KSksdC51cGRhdGVVUkwoKX0sZm9yRWFjaDpmdW5jdGlvbih0KXt2YXIgZSxuPU0odGhpcykuZW50cmllcyxyPW0odCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksaT0wO3doaWxlKGk8bi5sZW5ndGgpZT1uW2krK10scihlLnZhbHVlLGUua2V5LHRoaXMpfSxrZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBzdCh0aGlzLCJrZXlzIil9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuZXcgc3QodGhpcywidmFsdWVzIil9LGVudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHN0KHRoaXMsImVudHJpZXMiKX19LHtlbnVtZXJhYmxlOiEwfSksdShsdCxJLGx0LmVudHJpZXMse25hbWU6ImVudHJpZXMifSksdShsdCwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiBNKHRoaXMpLnNlcmlhbGl6ZSgpfSkse2VudW1lcmFibGU6ITB9KSxmKHV0LCJVUkxTZWFyY2hQYXJhbXMiKSxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOiFjfSx7VVJMU2VhcmNoUGFyYW1zOnV0fSksIWMmJnYoTikpe3ZhciBmdD1vKEQuaGFzKSxkdD1vKEQuc2V0KSxodD1mdW5jdGlvbih0KXtpZihfKHQpKXt2YXIgZSxuPXQuYm9keTtpZigiVVJMU2VhcmNoUGFyYW1zIj09PWIobikpcmV0dXJuIGU9dC5oZWFkZXJzP25ldyBOKHQuaGVhZGVycyk6bmV3IE4sZnQoZSwiY29udGVudC10eXBlIil8fGR0KGUsImNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikseCh0LHtib2R5OlMoMCx3KG4pKSxoZWFkZXJzOlMoMCxlKX0pfXJldHVybiB0fTtpZih2KGopJiZyKHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxkb250Q2FsbEdldFNldDohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gaih0LGFyZ3VtZW50cy5sZW5ndGg+MT9odChhcmd1bWVudHNbMV0pOnt9KX19KSx2KFIpKXt2YXIgcHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAodGhpcyxCKSxuZXcgUih0LGFyZ3VtZW50cy5sZW5ndGg+MT9odChhcmd1bWVudHNbMV0pOnt9KX07Qi5jb25zdHJ1Y3Rvcj1wdCxwdC5wcm90b3R5cGU9QixyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZG9udENhbGxHZXRTZXQ6ITAsZm9yY2VkOiEwfSx7UmVxdWVzdDpwdH0pfX10LmV4cG9ydHM9e1VSTFNlYXJjaFBhcmFtczp1dCxnZXRTdGF0ZTpNfX0sIjUzY2EiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZS5kZWZhdWx0PXI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHIodCl9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9cixuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKX0sNTUwOTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI3NDY1Iik7Zm9yKHZhciBpIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihpKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShpKTt2YXIgYT1uKCJmMGM1Iiksbz1PYmplY3QoYVsiYSJdKShyWyJkZWZhdWx0Il0sdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCwhMSx2b2lkIDAsdm9pZCAwKTtlWyJkZWZhdWx0Il09by5leHBvcnRzfSw1NTMwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9pKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7KDAsci5kZWZhdWx0KSh0LGUsbltlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aShPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pKX1yZXR1cm4gdH0sbigiYjY0YiIpLG4oImE0ZDMiKSxuKCI0ZGU0IiksbigiZDNiNyIpLG4oImU0MzkiKSxuKCIxNGQ5IiksbigiMTU5YiIpLG4oImRiYjQiKSxuKCIxZDFjIiksbigiN2E4MiIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigiYWRlMyIpKTtmdW5jdGlvbiBpKHQsZSl7dmFyIG49T2JqZWN0LmtleXModCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtlJiYocj1yLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn19LCI1NTlhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LHIpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jYWxsQXBwSG9vaz1mdW5jdGlvbihlLG4scil7Im9uRXJyb3IiIT09biYmdC5kZWJ1ZygiQXBw77yaIi5jb25jYXQobiwiIGhhdmUgYmVlbiBpbnZva2VkIikrKHI/IiAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShyKSk6IiIpKTtyZXR1cm4gZT1lLiR2bXx8ZSxlLl9fY2FsbF9ob29rJiZlLl9fY2FsbF9ob29rKG4scil9LGUuY2FsbFBhZ2VIb29rPWZ1bmN0aW9uKGUsbixpKXsib25Mb2FkIj09PW4mJihlLiRtcC5xdWVyeT1pLHIucHVibGlzaEhhbmRsZXIoIm9uUGFnZUxvYWQiLGUsZS4kcGFnZS5pZCkpLCJvblNob3ciPT09biYmKGUuJHJvdXRlLm1ldGEuaXNUYWJCYXImJmUuJHJvdXRlLnBhcmFtcy5kZXRhaWwmJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5lbWl0KCJvblRhYkl0ZW1UYXAiLGUuJHJvdXRlLnBhcmFtcy5kZXRhaWwpfSksMCksci5wdWJsaXNoSGFuZGxlcigib25QYWdlU2hvdyIsZSxlLiRwYWdlLmlkKSk7Im9uUGFnZVNjcm9sbCIhPT1uJiZ0LmRlYnVnKCIiLmNvbmNhdChlLiRwYWdlLnJvdXRlLCJbIikuY29uY2F0KGUuJHBhZ2UuaWQsIl3vvJoiKS5jb25jYXQobiwiIGhhdmUgYmVlbiBpbnZva2VkIikpO3JldHVybiBmdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9dC4kdm18fHQsdC5fX2NhbGxfaG9vayYmdC5fX2NhbGxfaG9vayhlLG4pfShlLG4saSl9LG4oImU5YzQiKSxuKCI5OWFmIil9KS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0sbigiYTlhYSIpKX0sNTY5MjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzQzMCIpLGk9bigiYzZjZCIpOyh0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaVt0XXx8KGlbdF09dm9pZCAwIT09ZT9lOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjYuMSIsbW9kZTpyPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTQtMjAyMiBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yNi4xL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LCI1NmVmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDA2NiIpLGk9bigiZTMzMCIpLGE9bigiMjQxYyIpLG89bigiNzQxOCIpLHM9bigiODI1YSIpLGM9aShbXS5jb25jYXQpO3QuZXhwb3J0cz1yKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1hLmYocyh0KSksbj1vLmY7cmV0dXJuIG4/YyhlLG4odCkpOmV9fSw1NzYwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlNjcm9sbGVyPWk7dmFyIHI9bigiZDEzOCIpO2Z1bmN0aW9uIGkodCxlKXtlPWV8fHt9LHRoaXMuX2VsZW1lbnQ9dCx0aGlzLl9vcHRpb25zPWUsdGhpcy5fZW5hYmxlU25hcD1lLmVuYWJsZVNuYXB8fCExLHRoaXMuX2l0ZW1TaXplPWUuaXRlbVNpemV8fDAsdGhpcy5fZW5hYmxlWD1lLmVuYWJsZVh8fCExLHRoaXMuX2VuYWJsZVk9ZS5lbmFibGVZfHwhMSx0aGlzLl9zaG91bGREaXNwYXRjaFNjcm9sbEV2ZW50PSEhZS5vblNjcm9sbCx0aGlzLl9lbmFibGVYPyh0aGlzLl9leHRlbnQ9KGUuc2Nyb2xsV2lkdGh8fHRoaXMuX2VsZW1lbnQub2Zmc2V0V2lkdGgpLXRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCx0aGlzLl9zY3JvbGxXaWR0aD1lLnNjcm9sbFdpZHRoKToodGhpcy5fZXh0ZW50PShlLnNjcm9sbEhlaWdodHx8dGhpcy5fZWxlbWVudC5vZmZzZXRIZWlnaHQpLXRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHQsdGhpcy5fc2Nyb2xsSGVpZ2h0PWUuc2Nyb2xsSGVpZ2h0KSx0aGlzLl9wb3NpdGlvbj0wLHRoaXMuX3Njcm9sbD1uZXcgci5TY3JvbGwodGhpcy5fZXh0ZW50LGUuZnJpY3Rpb24sZS5zcHJpbmcpLHRoaXMuX29uVHJhbnNpdGlvbkVuZD10aGlzLm9uVHJhbnNpdGlvbkVuZC5iaW5kKHRoaXMpLHRoaXMudXBkYXRlUG9zaXRpb24oKX1pLnByb3RvdHlwZS5vblRvdWNoU3RhcnQ9ZnVuY3Rpb24oKXt0aGlzLl9zdGFydFBvc2l0aW9uPXRoaXMuX3Bvc2l0aW9uLHRoaXMuX2xhc3RDaGFuZ2VQb3M9dGhpcy5fc3RhcnRQb3NpdGlvbix0aGlzLl9zdGFydFBvc2l0aW9uPjA/dGhpcy5fc3RhcnRQb3NpdGlvbi89LjU6dGhpcy5fc3RhcnRQb3NpdGlvbjwtdGhpcy5fZXh0ZW50JiYodGhpcy5fc3RhcnRQb3NpdGlvbj0odGhpcy5fc3RhcnRQb3NpdGlvbit0aGlzLl9leHRlbnQpLy41LXRoaXMuX2V4dGVudCksdGhpcy5fYW5pbWF0aW9uJiYodGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3Njcm9sbGluZz0hMSksdGhpcy51cGRhdGVQb3NpdGlvbigpfSxpLnByb3RvdHlwZS5vblRvdWNoTW92ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3N0YXJ0UG9zaXRpb247dGhpcy5fZW5hYmxlWD9uKz10OnRoaXMuX2VuYWJsZVkmJihuKz1lKSxuPjA/bio9LjU6bjwtdGhpcy5fZXh0ZW50JiYobj0uNSoobit0aGlzLl9leHRlbnQpLXRoaXMuX2V4dGVudCksdGhpcy5fcG9zaXRpb249bix0aGlzLnVwZGF0ZVBvc2l0aW9uKCksdGhpcy5kaXNwYXRjaFNjcm9sbCgpfSxpLnByb3RvdHlwZS5vblRvdWNoRW5kPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2lmKHRoaXMuX2VuYWJsZVNuYXAmJnRoaXMuX3Bvc2l0aW9uPi10aGlzLl9leHRlbnQmJnRoaXMuX3Bvc2l0aW9uPDApe2lmKHRoaXMuX2VuYWJsZVkmJihNYXRoLmFicyhlKTx0aGlzLl9pdGVtU2l6ZSYmTWF0aC5hYnMobi55KTwzMDB8fE1hdGguYWJzKG4ueSk8MTUwKSlyZXR1cm4gdm9pZCB0aGlzLnNuYXAoKTtpZih0aGlzLl9lbmFibGVYJiYoTWF0aC5hYnModCk8dGhpcy5faXRlbVNpemUmJk1hdGguYWJzKG4ueCk8MzAwfHxNYXRoLmFicyhuLngpPDE1MCkpcmV0dXJuIHZvaWQgdGhpcy5zbmFwKCl9aWYodGhpcy5fZW5hYmxlWD90aGlzLl9zY3JvbGwuc2V0KHRoaXMuX3Bvc2l0aW9uLG4ueCk6dGhpcy5fZW5hYmxlWSYmdGhpcy5fc2Nyb2xsLnNldCh0aGlzLl9wb3NpdGlvbixuLnkpLHRoaXMuX2VuYWJsZVNuYXApe3ZhciBpPXRoaXMuX3Njcm9sbC5fZnJpY3Rpb24ueCgxMDApLGE9aSV0aGlzLl9pdGVtU2l6ZSxvPU1hdGguYWJzKGEpPnRoaXMuX2l0ZW1TaXplLzI/aS0odGhpcy5faXRlbVNpemUtTWF0aC5hYnMoYSkpOmktYTtvPD0wJiZvPj0tdGhpcy5fZXh0ZW50JiZ0aGlzLl9zY3JvbGwuc2V0VmVsb2NpdHlCeUVuZChvKX10aGlzLl9sYXN0VGltZT1EYXRlLm5vdygpLHRoaXMuX2xhc3REZWxheT0wLHRoaXMuX3Njcm9sbGluZz0hMCx0aGlzLl9sYXN0Q2hhbmdlUG9zPXRoaXMuX3Bvc2l0aW9uLHRoaXMuX2xhc3RJZHg9TWF0aC5mbG9vcihNYXRoLmFicyh0aGlzLl9wb3NpdGlvbi90aGlzLl9pdGVtU2l6ZSkpLHRoaXMuX2FuaW1hdGlvbj1mdW5jdGlvbih0LGUsbil7dmFyIHI9e2lkOjAsY2FuY2VsbGVkOiExfTtyZXR1cm4gZnVuY3Rpb24gdChlLG4scixpKXtpZighZXx8IWUuY2FuY2VsbGVkKXtyKG4pO3ZhciBhPW4uZG9uZSgpO2F8fGUuY2FuY2VsbGVkfHwoZS5pZD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodC5iaW5kKG51bGwsZSxuLHIsaSkpKSxhJiZpJiZpKG4pfX0ocix0LGUsbikse2NhbmNlbDpmdW5jdGlvbih0KXt0JiZ0LmlkJiZjYW5jZWxBbmltYXRpb25GcmFtZSh0LmlkKSx0JiYodC5jYW5jZWxsZWQ9ITApfS5iaW5kKG51bGwsciksbW9kZWw6dH19KHRoaXMuX3Njcm9sbCwoZnVuY3Rpb24oKXt2YXIgdD1EYXRlLm5vdygpLGU9KHQtci5fc2Nyb2xsLl9zdGFydFRpbWUpLzFlMyxuPXIuX3Njcm9sbC54KGUpO3IuX3Bvc2l0aW9uPW4sci51cGRhdGVQb3NpdGlvbigpO3ZhciBpPXIuX3Njcm9sbC5keChlKTtyLl9zaG91bGREaXNwYXRjaFNjcm9sbEV2ZW50JiZ0LXIuX2xhc3RUaW1lPnIuX2xhc3REZWxheSYmKHIuZGlzcGF0Y2hTY3JvbGwoKSxyLl9sYXN0RGVsYXk9TWF0aC5hYnMoMmUzL2kpLHIuX2xhc3RUaW1lPXQpfSksKGZ1bmN0aW9uKCl7ci5fZW5hYmxlU25hcCYmKG88PTAmJm8+PS1yLl9leHRlbnQmJihyLl9wb3NpdGlvbj1vLHIudXBkYXRlUG9zaXRpb24oKSksImZ1bmN0aW9uIj09PXR5cGVvZiByLl9vcHRpb25zLm9uU25hcCYmci5fb3B0aW9ucy5vblNuYXAoTWF0aC5mbG9vcihNYXRoLmFicyhyLl9wb3NpdGlvbikvci5faXRlbVNpemUpKSksci5fc2hvdWxkRGlzcGF0Y2hTY3JvbGxFdmVudCYmci5kaXNwYXRjaFNjcm9sbCgpLHIuX3Njcm9sbGluZz0hMX0pKX0saS5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKCl7dGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uPSIiLHRoaXMuX2VsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0iIix0aGlzLl9lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX29uVHJhbnNpdGlvbkVuZCksdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIix0aGlzLl9vblRyYW5zaXRpb25FbmQpLHRoaXMuX3NuYXBwaW5nJiYodGhpcy5fc25hcHBpbmc9ITEpLHRoaXMuZGlzcGF0Y2hTY3JvbGwoKX0saS5wcm90b3R5cGUuc25hcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2l0ZW1TaXplLGU9dGhpcy5fcG9zaXRpb24ldCxuPU1hdGguYWJzKGUpPnRoaXMuX2l0ZW1TaXplLzI/dGhpcy5fcG9zaXRpb24tKHQtTWF0aC5hYnMoZSkpOnRoaXMuX3Bvc2l0aW9uLWU7dGhpcy5fcG9zaXRpb24hPT1uJiYodGhpcy5fc25hcHBpbmc9ITAsdGhpcy5zY3JvbGxUbygtbiksImZ1bmN0aW9uIj09PXR5cGVvZiB0aGlzLl9vcHRpb25zLm9uU25hcCYmdGhpcy5fb3B0aW9ucy5vblNuYXAoTWF0aC5mbG9vcihNYXRoLmFicyh0aGlzLl9wb3NpdGlvbikvdGhpcy5faXRlbVNpemUpKSl9LGkucHJvdG90eXBlLnNjcm9sbFRvPWZ1bmN0aW9uKHQsZSl7dGhpcy5fYW5pbWF0aW9uJiYodGhpcy5fYW5pbWF0aW9uLmNhbmNlbCgpLHRoaXMuX3Njcm9sbGluZz0hMSksIm51bWJlciI9PT10eXBlb2YgdCYmKHRoaXMuX3Bvc2l0aW9uPS10KSx0aGlzLl9wb3NpdGlvbjwtdGhpcy5fZXh0ZW50P3RoaXMuX3Bvc2l0aW9uPS10aGlzLl9leHRlbnQ6dGhpcy5fcG9zaXRpb24+MCYmKHRoaXMuX3Bvc2l0aW9uPTApLHRoaXMuX2VsZW1lbnQuc3R5bGUudHJhbnNpdGlvbj0idHJhbnNmb3JtICIrKGV8fC4yKSsicyBlYXNlLW91dCIsdGhpcy5fZWxlbWVudC5zdHlsZS53ZWJraXRUcmFuc2l0aW9uPSItd2Via2l0LXRyYW5zZm9ybSAiKyhlfHwuMikrInMgZWFzZS1vdXQiLHRoaXMudXBkYXRlUG9zaXRpb24oKSx0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX29uVHJhbnNpdGlvbkVuZCksdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIix0aGlzLl9vblRyYW5zaXRpb25FbmQpfSxpLnByb3RvdHlwZS5kaXNwYXRjaFNjcm9sbD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5fb3B0aW9ucy5vblNjcm9sbCYmTWF0aC5yb3VuZCh0aGlzLl9sYXN0UG9zKSE9PU1hdGgucm91bmQodGhpcy5fcG9zaXRpb24pKXt0aGlzLl9sYXN0UG9zPXRoaXMuX3Bvc2l0aW9uO3ZhciB0PXt0YXJnZXQ6e3Njcm9sbExlZnQ6dGhpcy5fZW5hYmxlWD8tdGhpcy5fcG9zaXRpb246MCxzY3JvbGxUb3A6dGhpcy5fZW5hYmxlWT8tdGhpcy5fcG9zaXRpb246MCxzY3JvbGxIZWlnaHQ6dGhpcy5fc2Nyb2xsSGVpZ2h0fHx0aGlzLl9lbGVtZW50Lm9mZnNldEhlaWdodCxzY3JvbGxXaWR0aDp0aGlzLl9zY3JvbGxXaWR0aHx8dGhpcy5fZWxlbWVudC5vZmZzZXRXaWR0aCxvZmZzZXRIZWlnaHQ6dGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodCxvZmZzZXRXaWR0aDp0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGh9fTt0aGlzLl9vcHRpb25zLm9uU2Nyb2xsKHQpfX0saS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wLGk9dGhpcy5fcG9zaXRpb247dGhpcy5fZW5hYmxlWD8ocj10aGlzLl9lbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoPyhlfHx0aGlzLl9lbGVtZW50Lm9mZnNldFdpZHRoKS10aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGg6MCx0aGlzLl9zY3JvbGxXaWR0aD1lKToocj10aGlzLl9lbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoPyhlfHx0aGlzLl9lbGVtZW50Lm9mZnNldEhlaWdodCktdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldEhlaWdodDowLHRoaXMuX3Njcm9sbEhlaWdodD1lKSwibnVtYmVyIj09PXR5cGVvZiB0JiYodGhpcy5fcG9zaXRpb249LXQpLHRoaXMuX3Bvc2l0aW9uPC1yP3RoaXMuX3Bvc2l0aW9uPS1yOnRoaXMuX3Bvc2l0aW9uPjAmJih0aGlzLl9wb3NpdGlvbj0wKSx0aGlzLl9pdGVtU2l6ZT1ufHx0aGlzLl9pdGVtU2l6ZSx0aGlzLnVwZGF0ZVBvc2l0aW9uKCksaSE9PXRoaXMuX3Bvc2l0aW9uJiYodGhpcy5kaXNwYXRjaFNjcm9sbCgpLCJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5fb3B0aW9ucy5vblNuYXAmJnRoaXMuX29wdGlvbnMub25TbmFwKE1hdGguZmxvb3IoTWF0aC5hYnModGhpcy5fcG9zaXRpb24pL3RoaXMuX2l0ZW1TaXplKSkpLHRoaXMuX2V4dGVudD1yLHRoaXMuX3Njcm9sbC5fZXh0ZW50PXJ9LGkucHJvdG90eXBlLnVwZGF0ZVBvc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9IiI7dGhpcy5fZW5hYmxlWD90PSJ0cmFuc2xhdGVYKCIrdGhpcy5fcG9zaXRpb24rInB4KSB0cmFuc2xhdGVaKDApIjp0aGlzLl9lbmFibGVZJiYodD0idHJhbnNsYXRlWSgiK3RoaXMuX3Bvc2l0aW9uKyJweCkgdHJhbnNsYXRlWigwKSIpLHRoaXMuX2VsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtPXQsdGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2Zvcm09dH0saS5wcm90b3R5cGUuaXNTY3JvbGxpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Nyb2xsaW5nfHx0aGlzLl9zbmFwcGluZ319LCI1NzdlIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZjVkZiIpLGk9U3RyaW5nO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZigiU3ltYm9sIj09PXIodCkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBpKHQpfX0sIjU3YjkiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjNjViIiksaT1uKCJkMDY2IiksYT1uKCJiNjIyIiksbz1uKCJjYjJkIik7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9aSgiU3ltYm9sIiksZT10JiZ0LnByb3RvdHlwZSxuPWUmJmUudmFsdWVPZixzPWEoInRvUHJpbWl0aXZlIik7ZSYmIWVbc10mJm8oZSxzLChmdW5jdGlvbih0KXtyZXR1cm4gcihuLHRoaXMpfSkse2FyaXR5OjF9KX19LDU4OTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7ZS5kZWZhdWx0PXttZXRob2RzOntiZWZvcmVUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7fSxhZnRlclRyYW5zaXRpb246ZnVuY3Rpb24oKXt9fX19LDU4OTk6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9Ilx0XG5cdlxmXHIgwqDhmoDigIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIBcdTIwMjhcdTIwMjlcdWZlZmYifSwiNThhNyI6ZnVuY3Rpb24odCl7dC5leHBvcnRzPUpTT04ucGFyc2UoJ3sidW5pLmFwcC5xdWl0IjoiUHJlc3MgYmFjayBidXR0b24gYWdhaW4gdG8gZXhpdCIsInVuaS5hc3luYy5lcnJvciI6IlRoZSBjb25uZWN0aW9uIHRpbWVkIG91dCwgY2xpY2sgdGhlIHNjcmVlbiB0byB0cnkgYWdhaW4uIiwidW5pLnNob3dBY3Rpb25TaGVldC5jYW5jZWwiOiJDYW5jZWwiLCJ1bmkuc2hvd1RvYXN0LnVucGFpcmVkIjoiUGxlYXNlIG5vdGUgc2hvd1RvYXN0IG11c3QgYmUgcGFpcmVkIHdpdGggaGlkZVRvYXN0IiwidW5pLnNob3dMb2FkaW5nLnVucGFpcmVkIjoiUGxlYXNlIG5vdGUgc2hvd0xvYWRpbmcgbXVzdCBiZSBwYWlyZWQgd2l0aCBoaWRlTG9hZGluZyIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoiQ2FuY2VsIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoiT0siLCJ1bmkuY2hvb3NlSW1hZ2UuY2FuY2VsIjoiQ2FuY2VsIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuYWxidW0iOiJBbGJ1bSIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmNhbWVyYSI6IkNhbWVyYSIsInVuaS5jaG9vc2VWaWRlby5jYW5jZWwiOiJDYW5jZWwiLCJ1bmkuY2hvb3NlVmlkZW8uc291cmNlVHlwZS5hbGJ1bSI6IkFsYnVtIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ2FtZXJhIiwidW5pLmNob29zZUZpbGUubm90VXNlckFjdGl2YXRpb24iOiJGaWxlIGNob29zZXIgZGlhbG9nIGNhbiBvbmx5IGJlIHNob3duIHdpdGggYSB1c2VyIGFjdGl2YXRpb24iLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IkNhbmNlbCIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiJTYXZlIEltYWdlIiwidW5pLnByZXZpZXdJbWFnZS5zYXZlLnN1Y2Nlc3MiOiJTYXZlZCBzdWNjZXNzZnVsbHkiLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuZmFpbCI6IlNhdmUgZmFpbGVkIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IkNvbnRlbnQgY29waWVkIiwidW5pLnNjYW5Db2RlLnRpdGxlIjoiU2NhbiBjb2RlIiwidW5pLnNjYW5Db2RlLmFsYnVtIjoiQWxidW0iLCJ1bmkuc2NhbkNvZGUuZmFpbCI6IlJlY29nbml0aW9uIGZhaWx1cmUiLCJ1bmkuc2NhbkNvZGUuZmxhc2gub24iOiJUYXAgdG8gdHVybiBsaWdodCBvbiIsInVuaS5zY2FuQ29kZS5mbGFzaC5vZmYiOiJUYXAgdG8gdHVybiBsaWdodCBvZmYiLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLmF1dGhDb250ZW50IjoiRmluZ2VycHJpbnQgcmVjb2duaXRpb24iLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50IjoiVW5yZWNvZ25pemFibGUiLCJ1bmkucGlja2VyLmRvbmUiOiJEb25lIiwidW5pLnBpY2tlci5jYW5jZWwiOiJDYW5jZWwiLCJ1bmkudmlkZW8uZGFubXUiOiJEYW5tdSIsInVuaS52aWRlby52b2x1bWUiOiJWb2x1bWUiLCJ1bmkuYnV0dG9uLmZlZWRiYWNrLnRpdGxlIjoiZmVlZGJhY2siLCJ1bmkuYnV0dG9uLmZlZWRiYWNrLnNlbmQiOiJzZW5kIiwidW5pLmNob29zZUxvY2F0aW9uLnNlYXJjaCI6IkZpbmQgUGxhY2UiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoiQ2FuY2VsIn0nKX0sIjU4YTgiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCIxZDgwIiksYT1uKCI1NzdlIiksbz1uKCI1ODk5Iikscz1yKCIiLnJlcGxhY2UpLGM9IlsiK28rIl0iLHU9UmVnRXhwKCJeIitjK2MrIioiKSxsPVJlZ0V4cChjK2MrIiokIiksZj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49YShpKGUpKTtyZXR1cm4gMSZ0JiYobj1zKG4sdSwiIikpLDImdCYmKG49cyhuLGwsIiIpKSxufX07dC5leHBvcnRzPXtzdGFydDpmKDEpLGVuZDpmKDIpLHRyaW06ZigzKX19LDU5MjY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImI0MmUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGUhPT1lfHwwPT09ZT8wOnIoZSl9fSwiNTllZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjE2MjYiKSxpPW4oIjBkNTEiKSxhPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYocih0KSlyZXR1cm4gdDt0aHJvdyBhKGkodCkrIiBpcyBub3QgYSBmdW5jdGlvbiIpfX0sIjVhMzQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI0NGU3IiksaT1UeXBlRXJyb3I7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKHIodCkpdGhyb3cgaSgiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIHR9fSwiNWE0NyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oIjA0ZjgiKSxhPW4oImQwMzkiKSxvPW4oIjc0MTgiKSxzPW4oIjdiMGIiKSxjPSFpfHxhKChmdW5jdGlvbigpe28uZigxKX0pKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6Y30se2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbih0KXt2YXIgZT1vLmY7cmV0dXJuIGU/ZShzKHQpKTpbXX19KX0sIjVhNTIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCIzYzY1Iik7dmFyIHI9QXJyYXkucHJvdG90eXBlLnVuc2hpZnQ7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gci5jYWxsKHQsIltzeXN0ZW1dIiksdH1mdW5jdGlvbiBhKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPSEwOyJkZWJ1ZyIhPT1lfHxfX3VuaUNvbmZpZy5kZWJ1Z3x8KG49ITEpLG4mJnQuY29uc29sZVtlXS5hcHBseSh0LmNvbnNvbGUsaShhcmd1bWVudHMpKX19dmFyIG89e2xvZzphKCJsb2ciKSxpbmZvOmEoImluZm8iKSx3YXJuOmEoIndhcm4iKSxkZWJ1ZzphKCJkZWJ1ZyIpLGVycm9yOmEoImVycm9yIil9O2UuZGVmYXVsdD1vfSkuY2FsbCh0aGlzLG4oImM4YmEiKSl9LCI1YWJlIjpmdW5jdGlvbih0LGUpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtpZigib2JqZWN0Ij09PXR5cGVvZiB3aW5kb3cpaWYoIkludGVyc2VjdGlvbk9ic2VydmVyImluIHdpbmRvdyYmIkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkiaW4gd2luZG93JiYiaW50ZXJzZWN0aW9uUmF0aW8iaW4gd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyRW50cnkucHJvdG90eXBlKSJpc0ludGVyc2VjdGluZyJpbiB3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5wcm90b3R5cGV8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5wcm90b3R5cGUsImlzSW50ZXJzZWN0aW5nIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW50ZXJzZWN0aW9uUmF0aW8+MH19KTtlbHNle3ZhciB0PXdpbmRvdy5kb2N1bWVudCxlPVtdO3IucHJvdG90eXBlLlRIUk9UVExFX1RJTUVPVVQ9MTAwLHIucHJvdG90eXBlLlBPTExfSU5URVJWQUw9bnVsbCxyLnByb3RvdHlwZS5VU0VfTVVUQVRJT05fT0JTRVJWRVI9ITAsci5wcm90b3R5cGUub2JzZXJ2ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9vYnNlcnZhdGlvblRhcmdldHMuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZWxlbWVudD09dH0pKTtpZighZSl7aWYoIXR8fDEhPXQubm9kZVR5cGUpdGhyb3cgbmV3IEVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBFbGVtZW50Iik7dGhpcy5fcmVnaXN0ZXJJbnN0YW5jZSgpLHRoaXMuX29ic2VydmF0aW9uVGFyZ2V0cy5wdXNoKHtlbGVtZW50OnQsZW50cnk6bnVsbH0pLHRoaXMuX21vbml0b3JJbnRlcnNlY3Rpb25zKCksdGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zKCl9fSxyLnByb3RvdHlwZS51bm9ic2VydmU9ZnVuY3Rpb24odCl7dGhpcy5fb2JzZXJ2YXRpb25UYXJnZXRzPXRoaXMuX29ic2VydmF0aW9uVGFyZ2V0cy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVsZW1lbnQhPXR9KSksdGhpcy5fb2JzZXJ2YXRpb25UYXJnZXRzLmxlbmd0aHx8KHRoaXMuX3VubW9uaXRvckludGVyc2VjdGlvbnMoKSx0aGlzLl91bnJlZ2lzdGVySW5zdGFuY2UoKSl9LHIucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLl9vYnNlcnZhdGlvblRhcmdldHM9W10sdGhpcy5fdW5tb25pdG9ySW50ZXJzZWN0aW9ucygpLHRoaXMuX3VucmVnaXN0ZXJJbnN0YW5jZSgpfSxyLnByb3RvdHlwZS50YWtlUmVjb3Jkcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3F1ZXVlZEVudHJpZXMuc2xpY2UoKTtyZXR1cm4gdGhpcy5fcXVldWVkRW50cmllcz1bXSx0fSxyLnByb3RvdHlwZS5faW5pdFRocmVzaG9sZHM9ZnVuY3Rpb24odCl7dmFyIGU9dHx8WzBdO3JldHVybiBBcnJheS5pc0FycmF5KGUpfHwoZT1bZV0pLGUuc29ydCgpLmZpbHRlcigoZnVuY3Rpb24odCxlLG4pe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8aXNOYU4odCl8fHQ8MHx8dD4xKXRocm93IG5ldyBFcnJvcigidGhyZXNob2xkIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxIGluY2x1c2l2ZWx5Iik7cmV0dXJuIHQhPT1uW2UtMV19KSl9LHIucHJvdG90eXBlLl9wYXJzZVJvb3RNYXJnaW49ZnVuY3Rpb24odCl7dmFyIGU9dHx8IjBweCIsbj1lLnNwbGl0KC9ccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPS9eKC0/XGQqXC4/XGQrKShweHwlKSQvLmV4ZWModCk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJyb290TWFyZ2luIG11c3QgYmUgc3BlY2lmaWVkIGluIHBpeGVscyBvciBwZXJjZW50Iik7cmV0dXJue3ZhbHVlOnBhcnNlRmxvYXQoZVsxXSksdW5pdDplWzJdfX0pKTtyZXR1cm4gblsxXT1uWzFdfHxuWzBdLG5bMl09blsyXXx8blswXSxuWzNdPW5bM118fG5bMV0sbn0sci5wcm90b3R5cGUuX21vbml0b3JJbnRlcnNlY3Rpb25zPWZ1bmN0aW9uKCl7dGhpcy5fbW9uaXRvcmluZ0ludGVyc2VjdGlvbnN8fCh0aGlzLl9tb25pdG9yaW5nSW50ZXJzZWN0aW9ucz0hMCx0aGlzLlBPTExfSU5URVJWQUw/dGhpcy5fbW9uaXRvcmluZ0ludGVydmFsPXNldEludGVydmFsKHRoaXMuX2NoZWNrRm9ySW50ZXJzZWN0aW9ucyx0aGlzLlBPTExfSU5URVJWQUwpOihhKHdpbmRvdywicmVzaXplIix0aGlzLl9jaGVja0ZvckludGVyc2VjdGlvbnMsITApLGEodCwic2Nyb2xsIix0aGlzLl9jaGVja0ZvckludGVyc2VjdGlvbnMsITApLHRoaXMuVVNFX01VVEFUSU9OX09CU0VSVkVSJiYiTXV0YXRpb25PYnNlcnZlciJpbiB3aW5kb3cmJih0aGlzLl9kb21PYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLl9jaGVja0ZvckludGVyc2VjdGlvbnMpLHRoaXMuX2RvbU9ic2VydmVyLm9ic2VydmUodCx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsY2hhcmFjdGVyRGF0YTohMCxzdWJ0cmVlOiEwfSkpKSl9LHIucHJvdG90eXBlLl91bm1vbml0b3JJbnRlcnNlY3Rpb25zPWZ1bmN0aW9uKCl7dGhpcy5fbW9uaXRvcmluZ0ludGVyc2VjdGlvbnMmJih0aGlzLl9tb25pdG9yaW5nSW50ZXJzZWN0aW9ucz0hMSxjbGVhckludGVydmFsKHRoaXMuX21vbml0b3JpbmdJbnRlcnZhbCksdGhpcy5fbW9uaXRvcmluZ0ludGVydmFsPW51bGwsbyh3aW5kb3csInJlc2l6ZSIsdGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zLCEwKSxvKHQsInNjcm9sbCIsdGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zLCEwKSx0aGlzLl9kb21PYnNlcnZlciYmKHRoaXMuX2RvbU9ic2VydmVyLmRpc2Nvbm5lY3QoKSx0aGlzLl9kb21PYnNlcnZlcj1udWxsKSl9LHIucHJvdG90eXBlLl9jaGVja0ZvckludGVyc2VjdGlvbnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yb290SXNJbkRvbSgpLGU9dD90aGlzLl9nZXRSb290UmVjdCgpOnUoKTt0aGlzLl9vYnNlcnZhdGlvblRhcmdldHMuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIGE9ci5lbGVtZW50LG89YyhhKSxzPXRoaXMuX3Jvb3RDb250YWluc1RhcmdldChhKSx1PXIuZW50cnksbD10JiZzJiZ0aGlzLl9jb21wdXRlVGFyZ2V0QW5kUm9vdEludGVyc2VjdGlvbihhLGUpLGY9ci5lbnRyeT1uZXcgbih7dGltZTppKCksdGFyZ2V0OmEsYm91bmRpbmdDbGllbnRSZWN0Om8scm9vdEJvdW5kczplLGludGVyc2VjdGlvblJlY3Q6bH0pO3U/dCYmcz90aGlzLl9oYXNDcm9zc2VkVGhyZXNob2xkKHUsZikmJnRoaXMuX3F1ZXVlZEVudHJpZXMucHVzaChmKTp1JiZ1LmlzSW50ZXJzZWN0aW5nJiZ0aGlzLl9xdWV1ZWRFbnRyaWVzLnB1c2goZik6dGhpcy5fcXVldWVkRW50cmllcy5wdXNoKGYpfSksdGhpcyksdGhpcy5fcXVldWVkRW50cmllcy5sZW5ndGgmJnRoaXMuX2NhbGxiYWNrKHRoaXMudGFrZVJlY29yZHMoKSx0aGlzKX0sci5wcm90b3R5cGUuX2NvbXB1dGVUYXJnZXRBbmRSb290SW50ZXJzZWN0aW9uPWZ1bmN0aW9uKGUsbil7aWYoIm5vbmUiIT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS5kaXNwbGF5KXt2YXIgcj1jKGUpLGk9cixhPWYoZSksbz0hMTt3aGlsZSghbyl7dmFyIHU9bnVsbCxsPTE9PWEubm9kZVR5cGU/d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSk6e307aWYoIm5vbmUiPT1sLmRpc3BsYXkpcmV0dXJuO2lmKGE9PXRoaXMucm9vdHx8YT09dD8obz0hMCx1PW4pOmEhPXQuYm9keSYmYSE9dC5kb2N1bWVudEVsZW1lbnQmJiJ2aXNpYmxlIiE9bC5vdmVyZmxvdyYmKHU9YyhhKSksdSYmKGk9cyh1LGkpLCFpKSlicmVhazthPWYoYSl9cmV0dXJuIGl9fSxyLnByb3RvdHlwZS5fZ2V0Um9vdFJlY3Q9ZnVuY3Rpb24oKXt2YXIgZTtpZih0aGlzLnJvb3QpZT1jKHRoaXMucm9vdCk7ZWxzZXt2YXIgbj10LmRvY3VtZW50RWxlbWVudCxyPXQuYm9keTtlPXt0b3A6MCxsZWZ0OjAscmlnaHQ6bi5jbGllbnRXaWR0aHx8ci5jbGllbnRXaWR0aCx3aWR0aDpuLmNsaWVudFdpZHRofHxyLmNsaWVudFdpZHRoLGJvdHRvbTpuLmNsaWVudEhlaWdodHx8ci5jbGllbnRIZWlnaHQsaGVpZ2h0Om4uY2xpZW50SGVpZ2h0fHxyLmNsaWVudEhlaWdodH19cmV0dXJuIHRoaXMuX2V4cGFuZFJlY3RCeVJvb3RNYXJnaW4oZSl9LHIucHJvdG90eXBlLl9leHBhbmRSZWN0QnlSb290TWFyZ2luPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3Jvb3RNYXJnaW5WYWx1ZXMubWFwKChmdW5jdGlvbihlLG4pe3JldHVybiJweCI9PWUudW5pdD9lLnZhbHVlOmUudmFsdWUqKG4lMj90LndpZHRoOnQuaGVpZ2h0KS8xMDB9KSksbj17dG9wOnQudG9wLWVbMF0scmlnaHQ6dC5yaWdodCtlWzFdLGJvdHRvbTp0LmJvdHRvbStlWzJdLGxlZnQ6dC5sZWZ0LWVbM119O3JldHVybiBuLndpZHRoPW4ucmlnaHQtbi5sZWZ0LG4uaGVpZ2h0PW4uYm90dG9tLW4udG9wLG59LHIucHJvdG90eXBlLl9oYXNDcm9zc2VkVGhyZXNob2xkPWZ1bmN0aW9uKHQsZSl7dmFyIG49dCYmdC5pc0ludGVyc2VjdGluZz90LmludGVyc2VjdGlvblJhdGlvfHwwOi0xLHI9ZS5pc0ludGVyc2VjdGluZz9lLmludGVyc2VjdGlvblJhdGlvfHwwOi0xO2lmKG4hPT1yKWZvcih2YXIgaT0wO2k8dGhpcy50aHJlc2hvbGRzLmxlbmd0aDtpKyspe3ZhciBhPXRoaXMudGhyZXNob2xkc1tpXTtpZihhPT1ufHxhPT1yfHxhPG4hPT1hPHIpcmV0dXJuITB9fSxyLnByb3RvdHlwZS5fcm9vdElzSW5Eb209ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5yb290fHxsKHQsdGhpcy5yb290KX0sci5wcm90b3R5cGUuX3Jvb3RDb250YWluc1RhcmdldD1mdW5jdGlvbihlKXtyZXR1cm4gbCh0aGlzLnJvb3R8fHQsZSl9LHIucHJvdG90eXBlLl9yZWdpc3Rlckluc3RhbmNlPWZ1bmN0aW9uKCl7ZS5pbmRleE9mKHRoaXMpPDAmJmUucHVzaCh0aGlzKX0sci5wcm90b3R5cGUuX3VucmVnaXN0ZXJJbnN0YW5jZT1mdW5jdGlvbigpe3ZhciB0PWUuaW5kZXhPZih0aGlzKTstMSE9dCYmZS5zcGxpY2UodCwxKX0sd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyPXIsd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyRW50cnk9bn1mdW5jdGlvbiBuKHQpe3RoaXMudGltZT10LnRpbWUsdGhpcy50YXJnZXQ9dC50YXJnZXQsdGhpcy5yb290Qm91bmRzPXQucm9vdEJvdW5kcyx0aGlzLmJvdW5kaW5nQ2xpZW50UmVjdD10LmJvdW5kaW5nQ2xpZW50UmVjdCx0aGlzLmludGVyc2VjdGlvblJlY3Q9dC5pbnRlcnNlY3Rpb25SZWN0fHx1KCksdGhpcy5pc0ludGVyc2VjdGluZz0hIXQuaW50ZXJzZWN0aW9uUmVjdDt2YXIgZT10aGlzLmJvdW5kaW5nQ2xpZW50UmVjdCxuPWUud2lkdGgqZS5oZWlnaHQscj10aGlzLmludGVyc2VjdGlvblJlY3QsaT1yLndpZHRoKnIuaGVpZ2h0O3RoaXMuaW50ZXJzZWN0aW9uUmF0aW89bj9OdW1iZXIoKGkvbikudG9GaXhlZCg0KSk6dGhpcy5pc0ludGVyc2VjdGluZz8xOjB9ZnVuY3Rpb24gcih0LGUpe3ZhciBuPWV8fHt9O2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiY2FsbGJhY2sgbXVzdCBiZSBhIGZ1bmN0aW9uIik7aWYobi5yb290JiYxIT1uLnJvb3Qubm9kZVR5cGUpdGhyb3cgbmV3IEVycm9yKCJyb290IG11c3QgYmUgYW4gRWxlbWVudCIpO3RoaXMuX2NoZWNrRm9ySW50ZXJzZWN0aW9ucz1mdW5jdGlvbih0LGUpe3ZhciBuPW51bGw7cmV0dXJuIGZ1bmN0aW9uKCl7bnx8KG49c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0KCksbj1udWxsfSksZSkpfX0odGhpcy5fY2hlY2tGb3JJbnRlcnNlY3Rpb25zLmJpbmQodGhpcyksdGhpcy5USFJPVFRMRV9USU1FT1VUKSx0aGlzLl9jYWxsYmFjaz10LHRoaXMuX29ic2VydmF0aW9uVGFyZ2V0cz1bXSx0aGlzLl9xdWV1ZWRFbnRyaWVzPVtdLHRoaXMuX3Jvb3RNYXJnaW5WYWx1ZXM9dGhpcy5fcGFyc2VSb290TWFyZ2luKG4ucm9vdE1hcmdpbiksdGhpcy50aHJlc2hvbGRzPXRoaXMuX2luaXRUaHJlc2hvbGRzKG4udGhyZXNob2xkKSx0aGlzLnJvb3Q9bi5yb290fHxudWxsLHRoaXMucm9vdE1hcmdpbj10aGlzLl9yb290TWFyZ2luVmFsdWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWUrdC51bml0fSkpLmpvaW4oIiAiKX1mdW5jdGlvbiBpKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93JiZwZXJmb3JtYW5jZS5ub3coKX1mdW5jdGlvbiBhKHQsZSxuLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LmFkZEV2ZW50TGlzdGVuZXI/dC5hZGRFdmVudExpc3RlbmVyKGUsbixyfHwhMSk6ImZ1bmN0aW9uIj09dHlwZW9mIHQuYXR0YWNoRXZlbnQmJnQuYXR0YWNoRXZlbnQoIm9uIitlLG4pfWZ1bmN0aW9uIG8odCxlLG4scil7ImZ1bmN0aW9uIj09dHlwZW9mIHQucmVtb3ZlRXZlbnRMaXN0ZW5lcj90LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxuLHJ8fCExKToiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXRhdGNoRXZlbnQmJnQuZGV0YXRjaEV2ZW50KCJvbiIrZSxuKX1mdW5jdGlvbiBzKHQsZSl7dmFyIG49TWF0aC5tYXgodC50b3AsZS50b3ApLHI9TWF0aC5taW4odC5ib3R0b20sZS5ib3R0b20pLGk9TWF0aC5tYXgodC5sZWZ0LGUubGVmdCksYT1NYXRoLm1pbih0LnJpZ2h0LGUucmlnaHQpLG89YS1pLHM9ci1uO3JldHVybiBvPj0wJiZzPj0wJiZ7dG9wOm4sYm90dG9tOnIsbGVmdDppLHJpZ2h0OmEsd2lkdGg6byxoZWlnaHQ6c319ZnVuY3Rpb24gYyh0KXt2YXIgZTt0cnl7ZT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKG4pe31yZXR1cm4gZT8oZS53aWR0aCYmZS5oZWlnaHR8fChlPXt0b3A6ZS50b3AscmlnaHQ6ZS5yaWdodCxib3R0b206ZS5ib3R0b20sbGVmdDplLmxlZnQsd2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSksZSk6dSgpfWZ1bmN0aW9uIHUoKXtyZXR1cm57dG9wOjAsYm90dG9tOjAsbGVmdDowLHJpZ2h0OjAsd2lkdGg6MCxoZWlnaHQ6MH19ZnVuY3Rpb24gbCh0LGUpe3ZhciBuPWU7d2hpbGUobil7aWYobj09dClyZXR1cm4hMDtuPWYobil9cmV0dXJuITF9ZnVuY3Rpb24gZih0KXt2YXIgZT10LnBhcmVudE5vZGU7cmV0dXJuIGUmJjExPT1lLm5vZGVUeXBlJiZlLmhvc3Q/ZS5ob3N0OmUmJmUuYXNzaWduZWRTbG90P2UuYXNzaWduZWRTbG90LnBhcmVudE5vZGU6ZX19KSgpfSwiNWI4MCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbiB0KGUsbil7aWYobil7aWYoMD09PW4uaW5kZXhPZigiLyIpKXJldHVybiBufWVsc2V7aWYobj1lLDA9PT1uLmluZGV4T2YoIi8iKSlyZXR1cm4gbjt2YXIgcj1nZXRDdXJyZW50UGFnZXMoKTtlPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV0uJHBhZ2Uucm91dGU6IiJ9aWYoMD09PW4uaW5kZXhPZigiLi8iKSlyZXR1cm4gdChlLG4uc3Vic3RyKDIpKTtmb3IodmFyIGk9bi5zcGxpdCgiLyIpLGE9aS5sZW5ndGgsbz0wO288YSYmIi4uIj09PWlbb107bysrKTtpLnNwbGljZSgwLG8pLG49aS5qb2luKCIvIik7dmFyIHM9ZS5sZW5ndGg+MD9lLnNwbGl0KCIvIik6W107cmV0dXJuIHMuc3BsaWNlKHMubGVuZ3RoLW8tMSxvKzEpLCIvIitzLmNvbmNhdChpKS5qb2luKCIvIil9LG4oImM5NzUiKSxuKCJhNDM0IiksbigiOTlhZiIpfSwiNWM1YyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY2xlYXJTdG9yYWdlPXUsZS5jbGVhclN0b3JhZ2VTeW5jPWZ1bmN0aW9uKCl7dSgpfSxlLmdldFN0b3JhZ2U9cyxlLmdldFN0b3JhZ2VJbmZvPWwsZS5nZXRTdG9yYWdlSW5mb1N5bmM9ZnVuY3Rpb24oKXt2YXIgdD1sKCk7cmV0dXJuIGRlbGV0ZSB0LmVyck1zZyx0fSxlLmdldFN0b3JhZ2VTeW5jPWZ1bmN0aW9uKHQpe3ZhciBlPXMoe2tleTp0fSk7cmV0dXJuIGUuZGF0YX0sZS5yZW1vdmVTdG9yYWdlPWMsZS5yZW1vdmVTdG9yYWdlU3luYz1mdW5jdGlvbih0KXtjKHtrZXk6dH0pfSxlLnNldFN0b3JhZ2U9byxlLnNldFN0b3JhZ2VTeW5jPWZ1bmN0aW9uKHQsZSl7byh7a2V5OnQsZGF0YTplfSl9O3ZhciBpPXIobigiNTNjYSIpKTtuKCJjOTc1IiksbigiYjY0YiIpLG4oImFjMWYiKSxuKCIwMGI0IiksbigiZTljNCIpLG4oIjE0ZDkiKSxuKCJhOWUzIik7ZnVuY3Rpb24gYSh0KXt0cnl7dmFyIGU9InN0cmluZyI9PT10eXBlb2YgdD9KU09OLnBhcnNlKHQpOnQsbj1lLnR5cGU7aWYoWyJvYmplY3QiLCJzdHJpbmciLCJudW1iZXIiLCJib29sZWFuIiwidW5kZWZpbmVkIl0uaW5kZXhPZihuKT49MCl7dmFyIHI9T2JqZWN0LmtleXMoZSk7aWYoMj09PXIubGVuZ3RoJiYiZGF0YSJpbiBlKXtpZigoMCxpLmRlZmF1bHQpKGUuZGF0YSk9PT1uKXJldHVybiBlLmRhdGE7aWYoIm9iamVjdCI9PT1uJiYvXlxkezR9LVxkezJ9LVxkezJ9VFxkezJ9XDpcZHsyfVw6XGR7Mn1cLlxkezN9WiQvLnRlc3QoZS5kYXRhKSlyZXR1cm4gbmV3IERhdGUoZS5kYXRhKX1lbHNlIGlmKDE9PT1yLmxlbmd0aClyZXR1cm4iIn19Y2F0Y2goYSl7fX1mdW5jdGlvbiBvKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9dC5rZXksbj10LmRhdGEscj0oMCxpLmRlZmF1bHQpKG4pLGE9InN0cmluZyI9PT1yP246SlNPTi5zdHJpbmdpZnkoe3R5cGU6cixkYXRhOm59KTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oZSxhKX1jYXRjaChvKXtyZXR1cm57ZXJyTXNnOiJzZXRTdG9yYWdlOmZhaWwgIi5jb25jYXQobyl9fXJldHVybntlcnJNc2c6InNldFN0b3JhZ2U6b2sifX1mdW5jdGlvbiBzKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9dC5rZXksbj1sb2NhbFN0b3JhZ2UmJmxvY2FsU3RvcmFnZS5nZXRJdGVtKGUpO2lmKCJzdHJpbmciIT09dHlwZW9mIG4pcmV0dXJue2RhdGE6IiIsZXJyTXNnOiJnZXRTdG9yYWdlOmZhaWwifTt2YXIgcj1uO3RyeXt2YXIgaT1KU09OLnBhcnNlKG4pLG89YShpKTt2b2lkIDAhPT1vJiYocj1vKX1jYXRjaChzKXt9cmV0dXJue2RhdGE6cixlcnJNc2c6ImdldFN0b3JhZ2U6b2sifX1mdW5jdGlvbiBjKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGU9dC5rZXk7cmV0dXJuIGxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oZSkse2Vyck1zZzoicmVtb3ZlU3RvcmFnZTpvayJ9fWZ1bmN0aW9uIHUoKXtyZXR1cm4gbG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2UuY2xlYXIoKSx7ZXJyTXNnOiJjbGVhclN0b3JhZ2U6b2sifX1mdW5jdGlvbiBsKCl7Zm9yKHZhciB0PWxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlLmxlbmd0aHx8MCxlPVtdLG49MCxyPTA7cjx0O3IrKyl7dmFyIGk9bG9jYWxTdG9yYWdlLmtleShyKSxhPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGkpO24rPWkubGVuZ3RoK2EubGVuZ3RoLCJ1bmktc3RvcmFnZS1rZXlzIiE9PWkmJmUucHVzaChpKX1yZXR1cm57a2V5czplLGN1cnJlbnRTaXplOk1hdGguY2VpbCgyKm4vMTAyNCksbGltaXRTaXplOk51bWJlci5NQVhfVkFMVUUsZXJyTXNnOiJnZXRTdG9yYWdlSW5mbzpvayJ9fX0sIjVjNmMiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJue2VudW1lcmFibGU6ISgxJnQpLGNvbmZpZ3VyYWJsZTohKDImdCksd3JpdGFibGU6ISg0JnQpLHZhbHVlOmV9fX0sIjVjYzYiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI3NGU4Iik7cigiVWludDgiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIpe3JldHVybiB0KHRoaXMsZSxuLHIpfX0pKX0sIjVkMGUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgaT1yKG4oIjI5MDkiKSk7bigiZmI2YSIpLG4oImQ4MWQiKSxuKCJkM2I3IiksbigiMTRkOSIpLG4oImM5NzUiKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oIjE1OWIiKSxuKCI1MzE5IiksbigiOTlhZiIpLG4oIjNjNjUiKSxuKCJhY2U0IiksbigiOGE1OSIpLG4oIjkwN2EiKSxuKCI5YThjIiksbigiYTk3NSIpLG4oIjczNWUiKSxuKCJjMWFjIiksbigiZDEzOSIpLG4oIjNhN2IiKSxuKCI5ODZhIiksbigiMWQwMiIpLG4oImQ1ZDYiKSxuKCI4MmY4IiksbigiZTkxZiIpLG4oIjYwYmQiKSxuKCI1Zjk2IiksbigiMzI4MCIpLG4oIjNmY2MiKSxuKCJjYTkxIiksbigiMjVhMSIpLG4oImNkMjYiKSxuKCIzYzVkIiksbigiMjk1NCIpLG4oIjY0OWUiKSxuKCIyMTljIiksbigiYjM5YSIpLG4oIjcyZjciKTt2YXIgYSxvPW4oIjk4N2QiKSxzPW4oImI5OWYiKSxjPXIobigiNzA0MSIpKSx1PW4oImIyODYiKTtmdW5jdGlvbiBsKHQpe3JldHVybiB0PXQuc2xpY2UoMCksdFszXT10WzNdLzI1NSwicmdiYSgiK3Quam9pbigiLCIpKyIpIn1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuW10ubWFwLmNhbGwoZSwoZnVuY3Rpb24oZSl7dmFyIG49dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57aWRlbnRpZmllcjplLmlkZW50aWZpZXIseDplLmNsaWVudFgtbi5sZWZ0LHk6ZS5jbGllbnRZLW4udG9wfX0pKX1mdW5jdGlvbiBkKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4gYXx8KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLGEud2lkdGg9dCxhLmhlaWdodD1lLGF9dmFyIGg9e25hbWU6IkNhbnZhcyIsbWl4aW5zOltvLnN1YnNjcmliZXJdLHByb3BzOntjYW52YXNJZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sZGlzYWJsZVNjcm9sbDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LGhpZHBpOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57YWN0aW9uc1dhaXRpbmc6ITF9fSxjb21wdXRlZDp7aWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW52YXNJZH0sX2xpc3RlbmVyczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1PYmplY3QuYXNzaWduKHt9LHRoaXMuJGxpc3RlbmVycyk7cmV0dXJuWyJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiXS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1lW25dLGk9W107ciYmaS5wdXNoKChmdW5jdGlvbihlKXt0LiR0cmlnZ2VyKG4sT2JqZWN0LmFzc2lnbih7fSxlLHt0b3VjaGVzOmYoZS5jdXJyZW50VGFyZ2V0LGUudG91Y2hlcyksY2hhbmdlZFRvdWNoZXM6ZihlLmN1cnJlbnRUYXJnZXQsZS5jaGFuZ2VkVG91Y2hlcyl9KSl9KSksdC5kaXNhYmxlU2Nyb2xsJiYidG91Y2htb3ZlIj09PW4mJmkucHVzaCh0Ll90b3VjaG1vdmUpLGVbbl09aX0pKSxlfSxwaXhlbFJhdGlvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGlkcGk/cy5waXhlbFJhdGlvOjF9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fYWN0aW9uc0RlZmVyPVtdLHRoaXMuX2ltYWdlcz17fX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX3Jlc2l6ZSgpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5jYW52YXM7dC5oZWlnaHQ9dC53aWR0aD0wfSxtZXRob2RzOntfaGFuZGxlU3Vic2NyaWJlOmZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxuPXQuZGF0YSxyPXZvaWQgMD09PW4/e306bixpPXRoaXNbZV07MCE9PWUuaW5kZXhPZigiXyIpJiYiZnVuY3Rpb24iPT09dHlwZW9mIGkmJmkocil9LF9yZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kcmVmcy5jYW52YXMsbj0hdHx8ZS53aWR0aCE9PU1hdGguZmxvb3IodC53aWR0aCp0aGlzLnBpeGVsUmF0aW8pfHxlLmhlaWdodCE9PU1hdGguZmxvb3IodC5oZWlnaHQqdGhpcy5waXhlbFJhdGlvKTtpZihuKWlmKGUud2lkdGg+MCYmZS5oZWlnaHQ+MCl7dmFyIHI9ZS5nZXRDb250ZXh0KCIyZCIpLGk9ci5nZXRJbWFnZURhdGEoMCwwLGUud2lkdGgsZS5oZWlnaHQpOygwLHMud3JhcHBlcikoZSx0aGlzLmhpZHBpKSxyLnB1dEltYWdlRGF0YShpLDAsMCl9ZWxzZSgwLHMud3JhcHBlcikoZSx0aGlzLmhpZHBpKX0sX3RvdWNobW92ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9LGFjdGlvbnNDaGFuZ2VkOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1lLmFjdGlvbnMsYT1lLnJlc2VydmUsbz1lLmNhbGxiYWNrSWQscz10aGlzO2lmKHIpaWYodGhpcy5hY3Rpb25zV2FpdGluZyl0aGlzLl9hY3Rpb25zRGVmZXIucHVzaChbcixhLG9dKTtlbHNle3ZhciBjPXRoaXMuJHJlZnMuY2FudmFzLHU9Yy5nZXRDb250ZXh0KCIyZCIpO2F8fCh1LmZpbGxTdHlsZT0iIzAwMDAwMCIsdS5zdHJva2VTdHlsZT0iIzAwMDAwMCIsdS5zaGFkb3dDb2xvcj0iIzAwMDAwMCIsdS5zaGFkb3dCbHVyPTAsdS5zaGFkb3dPZmZzZXRYPTAsdS5zaGFkb3dPZmZzZXRZPTAsdS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLHUuY2xlYXJSZWN0KDAsMCxjLndpZHRoLGMuaGVpZ2h0KSksdGhpcy5wcmVsb2FkSW1hZ2Uocik7Zm9yKHZhciBmPWZ1bmN0aW9uKHQpe3ZhciBlPXJbdF0sYT1lLm1ldGhvZCxjPWUuZGF0YTtpZigvXnNldC8udGVzdChhKSYmInNldFRyYW5zZm9ybSIhPT1hKXt2YXIgZixkPWFbM10udG9Mb3dlckNhc2UoKSthLnNsaWNlKDQpO2lmKCJmaWxsU3R5bGUiPT09ZHx8InN0cm9rZVN0eWxlIj09PWQpe2lmKCJub3JtYWwiPT09Y1swXSlmPWwoY1sxXSk7ZWxzZSBpZigibGluZWFyIj09PWNbMF0pe3ZhciB2PXUuY3JlYXRlTGluZWFyR3JhZGllbnQuYXBwbHkodSwoMCxpLmRlZmF1bHQpKGNbMV0pKTtjWzJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj1sKHRbMV0pO3YuYWRkQ29sb3JTdG9wKGUsbil9KSksZj12fWVsc2UgaWYoInJhZGlhbCI9PT1jWzBdKXt2YXIgZz1jWzFdWzBdLG09Y1sxXVsxXSxiPWNbMV1bMl0seT11LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGcsbSwwLGcsbSxiKTtjWzJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0sbj1sKHRbMV0pO3kuYWRkQ29sb3JTdG9wKGUsbil9KSksZj15fWVsc2UgaWYoInBhdHRlcm4iPT09Y1swXSl7dmFyIF89bi5jaGVja0ltYWdlTG9hZGVkKGNbMV0sci5zbGljZSh0KzEpLG8sKGZ1bmN0aW9uKHQpe3QmJih1W2RdPXUuY3JlYXRlUGF0dGVybih0LGNbMl0pKX0pKTtyZXR1cm4gXz8iY29udGludWUiOiJicmVhayJ9dVtkXT1mfWVsc2UgaWYoImdsb2JhbEFscGhhIj09PWQpdVtkXT1jWzBdLzI1NTtlbHNlIGlmKCJzaGFkb3ciPT09ZCloPVsic2hhZG93T2Zmc2V0WCIsInNoYWRvd09mZnNldFkiLCJzaGFkb3dCbHVyIiwic2hhZG93Q29sb3IiXSxjLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dVtoW2VdXT0ic2hhZG93Q29sb3IiPT09aFtlXT9sKHQpOnR9KSk7ZWxzZSBpZigiZm9udFNpemUiPT09ZCl7dmFyIHc9dS5fX2ZvbnRfX3x8dS5mb250O3UuX19mb250X189dS5mb250PXcucmVwbGFjZSgvXGQrXC4/XGQqcHgvLGNbMF0rInB4Iil9ZWxzZSJsaW5lRGFzaCI9PT1kPyh1LnNldExpbmVEYXNoKGNbMF0pLHUubGluZURhc2hPZmZzZXQ9Y1sxXXx8MCk6InRleHRCYXNlbGluZSI9PT1kPygibm9ybWFsIj09PWNbMF0mJihjWzBdPSJhbHBoYWJldGljIiksdVtkXT1jWzBdKToiZm9udCI9PT1kP3UuX19mb250X189dS5mb250PWNbMF06dVtkXT1jWzBdfWVsc2UgaWYoImZpbGxQYXRoIj09PWF8fCJzdHJva2VQYXRoIj09PWEpYT1hLnJlcGxhY2UoL1BhdGgvLCIiKSx1LmJlZ2luUGF0aCgpLGMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dVt0Lm1ldGhvZF0uYXBwbHkodSx0LmRhdGEpfSkpLHVbYV0oKTtlbHNlIGlmKCJmaWxsVGV4dCI9PT1hKXUuZmlsbFRleHQuYXBwbHkodSxjKTtlbHNlIGlmKCJkcmF3SW1hZ2UiPT09YSl7aWYocD1mdW5jdGlvbigpe3ZhciBlPSgwLGkuZGVmYXVsdCkoYyksbj1lWzBdLGE9ZS5zbGljZSgxKTtpZihzLl9pbWFnZXM9cy5faW1hZ2VzfHx7fSwhcy5jaGVja0ltYWdlTG9hZGVkKG4sci5zbGljZSh0KzEpLG8sKGZ1bmN0aW9uKHQpe3QmJnUuZHJhd0ltYWdlLmFwcGx5KHUsW3RdLmNvbmNhdCgoMCxpLmRlZmF1bHQpKGEuc2xpY2UoNCw4KSksKDAsaS5kZWZhdWx0KShhLnNsaWNlKDAsNCkpKSl9KSkpcmV0dXJuImJyZWFrIn0oKSwiYnJlYWsiPT09cClyZXR1cm4iYnJlYWsifWVsc2UiY2xpcCI9PT1hPyhjLmZvckVhY2goKGZ1bmN0aW9uKHQpe3VbdC5tZXRob2RdLmFwcGx5KHUsdC5kYXRhKX0pKSx1LmNsaXAoKSk6dVthXS5hcHBseSh1LGMpfSxkPTA7ZDxyLmxlbmd0aDtkKyspe3ZhciBoLHAsdj1mKGQpO2lmKCJicmVhayI9PT12KWJyZWFrfSF0aGlzLmFjdGlvbnNXYWl0aW5nJiZvJiZ0LnB1Ymxpc2hIYW5kbGVyKCJvbkNhbnZhc01ldGhvZENhbGxiYWNrIix7Y2FsbGJhY2tJZDpvLGRhdGE6e2Vyck1zZzoiZHJhd0NhbnZhczpvayJ9fSx0aGlzLiRwYWdlLmlkKX19LHByZWxvYWRJbWFnZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5tZXRob2Qscj10LmRhdGEsaT0iIjsiZHJhd0ltYWdlIj09PW4/KGk9clswXSxpPWUuJGdldFJlYWxQYXRoKGkpLHJbMF09aSk6InNldEZpbGxTdHlsZSI9PT1uJiYicGF0dGVybiI9PT1yWzBdJiYoaT1yWzFdLGk9ZS4kZ2V0UmVhbFBhdGgoaSksclsxXT1pKSxpJiYhZS5faW1hZ2VzW2ldJiZmdW5jdGlvbigpe3ZhciB0PWUuX2ltYWdlc1tpXT1uZXcgSW1hZ2U7dC5vbmxvYWQ9ZnVuY3Rpb24oKXt0LnJlYWR5PSEwfSwhMTsoMCx1LmdldFNhbWVPcmlnaW5VcmwpKGkpLnRoZW4oKGZ1bmN0aW9uKGUpe3Quc3JjPWV9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7dC5zcmM9aX0pKX0oKX0pKX0sY2hlY2tJbWFnZUxvYWRlZDpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLGE9dGhpcy5faW1hZ2VzW3RdO3JldHVybiBhLnJlYWR5PyhyKGEpLCEwKToodGhpcy5fYWN0aW9uc0RlZmVyLnVuc2hpZnQoW2UsITBdKSx0aGlzLmFjdGlvbnNXYWl0aW5nPSEwLGEub25sb2FkPWZ1bmN0aW9uKCl7YS5yZWFkeT0hMCxyKGEpLGkuYWN0aW9uc1dhaXRpbmc9ITE7dmFyIHQ9aS5fYWN0aW9uc0RlZmVyLnNsaWNlKDApO2kuX2FjdGlvbnNEZWZlcj1bXTtmb3IodmFyIGU9dC5zaGlmdCgpO2U7KWkuYWN0aW9uc0NoYW5nZWQoe2FjdGlvbnM6ZVswXSxyZXNlcnZlOmVbMV0sY2FsbGJhY2tJZDpufSksZT10LnNoaWZ0KCl9LCExKX0sZ2V0SW1hZ2VEYXRhOmZ1bmN0aW9uKGUpe3ZhciBuLHI9ZS54LGk9dm9pZCAwPT09cj8wOnIsYT1lLnksbz12b2lkIDA9PT1hPzA6YSxzPWUud2lkdGgsYz1lLmhlaWdodCx1PWUuZGVzdFdpZHRoLGw9ZS5kZXN0SGVpZ2h0LGY9ZS5oaWRwaSxoPXZvaWQgMD09PWZ8fGYscD1lLmRhdGFUeXBlLHY9ZS5xdWFsaXR5LGc9dm9pZCAwPT09dj8xOnYsbT1lLnR5cGUsYj12b2lkIDA9PT1tPyJwbmciOm0seT1lLmNhbGxiYWNrSWQsXz10aGlzLiRyZWZzLmNhbnZhcyx3PV8ub2Zmc2V0V2lkdGgtaTtzPXM/TWF0aC5taW4ocyx3KTp3O3ZhciB4PV8ub2Zmc2V0SGVpZ2h0LW87Yz1jP01hdGgubWluKGMseCk6eCxoPyh1PXMsbD1jKTp1fHxsP3U/bHx8KGw9TWF0aC5yb3VuZChjL3MqdSkpOnU9TWF0aC5yb3VuZChzL2MqbCk6KHU9TWF0aC5yb3VuZChzKnRoaXMucGl4ZWxSYXRpbyksbD1NYXRoLnJvdW5kKGMqdGhpcy5waXhlbFJhdGlvKSk7dmFyIFMsVD1kKHUsbCksQz1ULmdldENvbnRleHQoIjJkIik7ImpwZWciIT09YiYmImpwZyIhPT1ifHwoYj0ianBlZyIsQy5maWxsU3R5bGU9IiNmZmYiLEMuZmlsbFJlY3QoMCwwLHUsbCkpLEMuX19oaWRwaV9fPSEwLEMuZHJhd0ltYWdlQnlDYW52YXMoXyxpLG8scyxjLDAsMCx1LGwsITEpO3RyeXtpZigiYmFzZTY0Ij09PXApbj1ULnRvRGF0YVVSTCgiaW1hZ2UvIi5jb25jYXQoYiksZyk7ZWxzZXt2YXIgaz1DLmdldEltYWdlRGF0YSgwLDAsdSxsKTtuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGsuZGF0YSl9Uz17ZXJyTXNnOiJjYW52YXNHZXRJbWFnZURhdGE6b2siLGRhdGE6bixjb21wcmVzc2VkOnZvaWQgMCx3aWR0aDp1LGhlaWdodDpsfX1jYXRjaChPKXtTPXtlcnJNc2c6ImNhbnZhc0dldEltYWdlRGF0YTpmYWlsICIuY29uY2F0KE8pfX1pZihULmhlaWdodD1ULndpZHRoPTAsQy5fX2hpZHBpX189ITEsIXkpcmV0dXJuIFM7dC5wdWJsaXNoSGFuZGxlcigib25DYW52YXNNZXRob2RDYWxsYmFjayIse2NhbGxiYWNrSWQ6eSxkYXRhOlN9LHRoaXMuJHBhZ2UuaWQpfSxwdXRJbWFnZURhdGE6ZnVuY3Rpb24oZSl7dmFyIG49ZS5kYXRhLHI9ZS54LGk9ZS55LGE9ZS53aWR0aCxvPWUuaGVpZ2h0LHM9KGUuY29tcHJlc3NlZCxlLmNhbGxiYWNrSWQpO3RyeXtvfHwobz1NYXRoLnJvdW5kKG4ubGVuZ3RoLzQvYSkpO3ZhciBjPWQoYSxvKSx1PWMuZ2V0Q29udGV4dCgiMmQiKTt1LnB1dEltYWdlRGF0YShuZXcgSW1hZ2VEYXRhKG5ldyBVaW50OENsYW1wZWRBcnJheShuKSxhLG8pLDAsMCksdGhpcy4kcmVmcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoYyxyLGksYSxvKSxjLmhlaWdodD1jLndpZHRoPTB9Y2F0Y2gobCl7cmV0dXJuIHZvaWQgdC5wdWJsaXNoSGFuZGxlcigib25DYW52YXNNZXRob2RDYWxsYmFjayIse2NhbGxiYWNrSWQ6cyxkYXRhOntlcnJNc2c6ImNhbnZhc1B1dEltYWdlRGF0YTpmYWlsIn19LHRoaXMuJHBhZ2UuaWQpfXQucHVibGlzaEhhbmRsZXIoIm9uQ2FudmFzTWV0aG9kQ2FsbGJhY2siLHtjYWxsYmFja0lkOnMsZGF0YTp7ZXJyTXNnOiJjYW52YXNQdXRJbWFnZURhdGE6b2sifX0sdGhpcy4kcGFnZS5pZCl9LHRvVGVtcEZpbGVQYXRoOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1lLngsaT12b2lkIDA9PT1yPzA6cixhPWUueSxvPXZvaWQgMD09PWE/MDphLHM9ZS53aWR0aCx1PWUuaGVpZ2h0LGw9ZS5kZXN0V2lkdGgsZj1lLmRlc3RIZWlnaHQsZD1lLmZpbGVUeXBlLGg9ZS5xdWFsaXR5LHA9ZS5kaXJuYW1lLHY9ZS5jYWxsYmFja0lkLGc9dGhpcy5nZXRJbWFnZURhdGEoe3g6aSx5Om8sd2lkdGg6cyxoZWlnaHQ6dSxkZXN0V2lkdGg6bCxkZXN0SGVpZ2h0OmYsaGlkcGk6ITEsZGF0YVR5cGU6ImJhc2U2NCIsdHlwZTpkLHF1YWxpdHk6aH0pO2cuZGF0YSYmZy5kYXRhLmxlbmd0aD8oMCxjLmRlZmF1bHQpKGcuZGF0YSxwLChmdW5jdGlvbihlLHIpe3ZhciBpPSJ0b1RlbXBGaWxlUGF0aDoiLmNvbmNhdChlPyJmYWlsIjoib2siKTtlJiYoaSs9IiAiLmNvbmNhdChlLm1lc3NhZ2UpKSx0LnB1Ymxpc2hIYW5kbGVyKCJvbkNhbnZhc01ldGhvZENhbGxiYWNrIix7Y2FsbGJhY2tJZDp2LGRhdGE6e2Vyck1zZzppLHRlbXBGaWxlUGF0aDpyfX0sbi4kcGFnZS5pZCl9KSk6dC5wdWJsaXNoSGFuZGxlcigib25DYW52YXNNZXRob2RDYWxsYmFjayIse2NhbGxiYWNrSWQ6dixkYXRhOntlcnJNc2c6Zy5lcnJNc2cucmVwbGFjZSgiY2FudmFzUHV0SW1hZ2VEYXRhIiwidG9UZW1wRmlsZVBhdGgiKX19LHRoaXMuJHBhZ2UuaWQpfX19O2UuZGVmYXVsdD1ofSkuY2FsbCh0aGlzLG4oImM1YzMiKSl9LCI1ZGFmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQ7dGhpcy5fc2VsZi5fYztyZXR1cm4gdGhpcy5fbSgwKX0saT1bZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRjcmVhdGVFbGVtZW50LGU9dGhpcy5fc2VsZi5fY3x8dDtyZXR1cm4gZSgiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1hc3luYy1sb2FkaW5nIn0sW2UoImkiLHtzdGF0aWNDbGFzczoidW5pLWxvYWRpbmcifSldKX1dfSwiNWUxMyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiMTRkOSIpLG4oIjRkZTQiKSxuKCJhNDM0IiksbigiOTlhZiIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3ZhciByPXRoaXM7KDAsaS5kZWZhdWx0KSh0aGlzLHQpLHRoaXMuaWQ9ZSx0aGlzLmxpc3RlbmVyPXt9LHRoaXMuZW1pdENhY2hlPXt9LG4mJk9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Iub24odCxuW3RdKX0pKX1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImVtaXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCkscj0xO3I8ZTtyKyspbltyLTFdPWFyZ3VtZW50c1tyXTt2YXIgaT10aGlzLmxpc3RlbmVyW3RdO2lmKCFpKXJldHVybih0aGlzLmVtaXRDYWNoZVt0XXx8KHRoaXMuZW1pdENhY2hlW3RdPVtdKSkucHVzaChuKTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZm4uYXBwbHkodC5mbixuKX0pKSx0aGlzLmxpc3RlbmVyW3RdPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4ib25jZSIhPT10LnR5cGV9KSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLl9hZGRMaXN0ZW5lcih0LCJvbiIsZSksdGhpcy5fY2xlYXJDYWNoZSh0KX19LHtrZXk6Im9uY2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5fYWRkTGlzdGVuZXIodCwib25jZSIsZSksdGhpcy5fY2xlYXJDYWNoZSh0KX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmxpc3RlbmVyW3RdO2lmKG4paWYoZSlmb3IodmFyIHI9MDtyPG4ubGVuZ3RoOyluW3JdLmZuPT09ZSYmKG4uc3BsaWNlKHIsMSksci0tKSxyKys7ZWxzZSBkZWxldGUgdGhpcy5saXN0ZW5lclt0XX19LHtrZXk6Il9jbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmVtaXRDYWNoZVt0XTtpZihlKWZvcig7ZS5sZW5ndGg+MDspdGhpcy5lbWl0LmFwcGx5KHRoaXMsW3RdLmNvbmNhdChlLnNoaWZ0KCkpKX19LHtrZXk6Il9hZGRMaXN0ZW5lciIsdmFsdWU6ZnVuY3Rpb24odCxlLG4peyh0aGlzLmxpc3RlbmVyW3RdfHwodGhpcy5saXN0ZW5lclt0XT1bXSkpLnB1c2goe2ZuOm4sdHlwZTplfSl9fV0pLHR9KCk7ZS5kZWZhdWx0PW99LCI1ZTc3IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiMWEyZCIpLGE9RnVuY3Rpb24ucHJvdG90eXBlLG89ciYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixzPWkoYSwibmFtZSIpLGM9cyYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSx1PXMmJighcnx8ciYmbyhhLCJuYW1lIikuY29uZmlndXJhYmxlKTt0LmV4cG9ydHM9e0VYSVNUUzpzLFBST1BFUjpjLENPTkZJR1VSQUJMRTp1fX0sIjVlN2UiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsaSxhLG89bigiMjNlNyIpLHM9bigiYzQzMCIpLGM9bigiNjA1ZCIpLHU9bigiZGE4NCIpLGw9bigiYzY1YiIpLGY9bigiY2IyZCIpLGQ9bigiZDJiYiIpLGg9bigiZDQ0ZSIpLHA9bigiMjYyNiIpLHY9bigiNTllZCIpLGc9bigiMTYyNiIpLG09bigiODYxZCIpLGI9bigiMTlhYSIpLHk9bigiNDg0MCIpLF89bigiMmNmNCIpLnNldCx3PW4oImI1NzUiKSx4PW4oIjQ0ZGUiKSxTPW4oImU2NjciKSxUPW4oIjAxYjQiKSxDPW4oIjY5ZjMiKSxrPW4oImQyNTYiKSxPPW4oIjQ3MzgiKSxFPW4oImYwNjkiKSxJPU8uQ09OU1RSVUNUT1IsUD1PLlJFSkVDVElPTl9FVkVOVCxNPU8uU1VCQ0xBU1NJTkcsQT1DLmdldHRlckZvcigiUHJvbWlzZSIpLCQ9Qy5zZXQsTD1rJiZrLnByb3RvdHlwZSxqPWssUj1MLE49dS5UeXBlRXJyb3IsQj11LmRvY3VtZW50LEQ9dS5wcm9jZXNzLEY9RS5mLFc9RixIPSEhKEImJkIuY3JlYXRlRXZlbnQmJnUuZGlzcGF0Y2hFdmVudCksVj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hKCFtKHQpfHwhZyhlPXQudGhlbikpJiZlfSxVPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLGE9ZS52YWx1ZSxvPTE9PWUuc3RhdGUscz1vP3Qub2s6dC5mYWlsLGM9dC5yZXNvbHZlLHU9dC5yZWplY3QsZj10LmRvbWFpbjt0cnl7cz8ob3x8KDI9PT1lLnJlamVjdGlvbiYmRyhlKSxlLnJlamVjdGlvbj0xKSwhMD09PXM/bj1hOihmJiZmLmVudGVyKCksbj1zKGEpLGYmJihmLmV4aXQoKSxpPSEwKSksbj09PXQucHJvbWlzZT91KE4oIlByb21pc2UtY2hhaW4gY3ljbGUiKSk6KHI9VihuKSk/bChyLG4sYyx1KTpjKG4pKTp1KGEpfWNhdGNoKGQpe2YmJiFpJiZmLmV4aXQoKSx1KGQpfX0scT1mdW5jdGlvbih0LGUpe3Qubm90aWZpZWR8fCh0Lm5vdGlmaWVkPSEwLHcoKGZ1bmN0aW9uKCl7dmFyIG4scj10LnJlYWN0aW9uczt3aGlsZShuPXIuZ2V0KCkpVShuLHQpO3Qubm90aWZpZWQ9ITEsZSYmIXQucmVqZWN0aW9uJiZZKHQpfSkpKX0sej1mdW5jdGlvbih0LGUsbil7dmFyIHIsaTtIPyhyPUIuY3JlYXRlRXZlbnQoIkV2ZW50Iiksci5wcm9taXNlPWUsci5yZWFzb249bixyLmluaXRFdmVudCh0LCExLCEwKSx1LmRpc3BhdGNoRXZlbnQocikpOnI9e3Byb21pc2U6ZSxyZWFzb246bn0sIVAmJihpPXVbIm9uIit0XSk/aShyKToidW5oYW5kbGVkcmVqZWN0aW9uIj09PXQmJngoIlVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbiIsbil9LFk9ZnVuY3Rpb24odCl7bChfLHUsKGZ1bmN0aW9uKCl7dmFyIGUsbj10LmZhY2FkZSxyPXQudmFsdWUsaT1YKHQpO2lmKGkmJihlPVMoKGZ1bmN0aW9uKCl7Yz9ELmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIscixuKTp6KCJ1bmhhbmRsZWRyZWplY3Rpb24iLG4scil9KSksdC5yZWplY3Rpb249Y3x8WCh0KT8yOjEsZS5lcnJvcikpdGhyb3cgZS52YWx1ZX0pKX0sWD1mdW5jdGlvbih0KXtyZXR1cm4gMSE9PXQucmVqZWN0aW9uJiYhdC5wYXJlbnR9LEc9ZnVuY3Rpb24odCl7bChfLHUsKGZ1bmN0aW9uKCl7dmFyIGU9dC5mYWNhZGU7Yz9ELmVtaXQoInJlamVjdGlvbkhhbmRsZWQiLGUpOnooInJlamVjdGlvbmhhbmRsZWQiLGUsdC52YWx1ZSl9KSl9LFE9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBmdW5jdGlvbihyKXt0KGUscixuKX19LEo9ZnVuY3Rpb24odCxlLG4pe3QuZG9uZXx8KHQuZG9uZT0hMCxuJiYodD1uKSx0LnZhbHVlPWUsdC5zdGF0ZT0yLHEodCwhMCkpfSxLPWZ1bmN0aW9uKHQsZSxuKXtpZighdC5kb25lKXt0LmRvbmU9ITAsbiYmKHQ9bik7dHJ5e2lmKHQuZmFjYWRlPT09ZSl0aHJvdyBOKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpO3ZhciByPVYoZSk7cj93KChmdW5jdGlvbigpe3ZhciBuPXtkb25lOiExfTt0cnl7bChyLGUsUShLLG4sdCksUShKLG4sdCkpfWNhdGNoKGkpe0oobixpLHQpfX0pKToodC52YWx1ZT1lLHQuc3RhdGU9MSxxKHQsITEpKX1jYXRjaChpKXtKKHtkb25lOiExfSxpLHQpfX19O2lmKEkmJihqPWZ1bmN0aW9uKHQpe2IodGhpcyxSKSx2KHQpLGwocix0aGlzKTt2YXIgZT1BKHRoaXMpO3RyeXt0KFEoSyxlKSxRKEosZSkpfWNhdGNoKG4pe0ooZSxuKX19LFI9ai5wcm90b3R5cGUscj1mdW5jdGlvbih0KXskKHRoaXMse3R5cGU6IlByb21pc2UiLGRvbmU6ITEsbm90aWZpZWQ6ITEscGFyZW50OiExLHJlYWN0aW9uczpuZXcgVCxyZWplY3Rpb246ITEsc3RhdGU6MCx2YWx1ZTp2b2lkIDB9KX0sci5wcm90b3R5cGU9ZihSLCJ0aGVuIiwoZnVuY3Rpb24odCxlKXt2YXIgbj1BKHRoaXMpLHI9Rih5KHRoaXMsaikpO3JldHVybiBuLnBhcmVudD0hMCxyLm9rPSFnKHQpfHx0LHIuZmFpbD1nKGUpJiZlLHIuZG9tYWluPWM/RC5kb21haW46dm9pZCAwLDA9PW4uc3RhdGU/bi5yZWFjdGlvbnMuYWRkKHIpOncoKGZ1bmN0aW9uKCl7VShyLG4pfSkpLHIucHJvbWlzZX0pKSxpPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHIsZT1BKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1RKEssZSksdGhpcy5yZWplY3Q9UShKLGUpfSxFLmY9Rj1mdW5jdGlvbih0KXtyZXR1cm4gdD09PWp8fHZvaWQgMD09PXQ/bmV3IGkodCk6Vyh0KX0sIXMmJmcoaykmJkwhPT1PYmplY3QucHJvdG90eXBlKSl7YT1MLnRoZW4sTXx8ZihMLCJ0aGVuIiwoZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO3JldHVybiBuZXcgaigoZnVuY3Rpb24odCxlKXtsKGEsbix0LGUpfSkpLnRoZW4odCxlKX0pLHt1bnNhZmU6ITB9KTt0cnl7ZGVsZXRlIEwuY29uc3RydWN0b3J9Y2F0Y2goWil7fWQmJmQoTCxSKX1vKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsd3JhcDohMCxmb3JjZWQ6SX0se1Byb21pc2U6an0pLGgoaiwiUHJvbWlzZSIsITEsITApLHAoIlByb21pc2UiKX0sIjVlZWQiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMjU2IiksaT1uKCIxYzdlIiksYT1uKCI0NzM4IikuQ09OU1RSVUNUT1I7dC5leHBvcnRzPWF8fCFpKChmdW5jdGlvbih0KXtyLmFsbCh0KS50aGVuKHZvaWQgMCwoZnVuY3Rpb24oKXt9KSl9KSl9LCI1ZWVlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS4kb25jZT1lLiRvbj1lLiRvZmY9ZS4kZW1pdD12b2lkIDA7dmFyIHI9W3tuYW1lOiJldmVudCIsdHlwZTpbU3RyaW5nLEFycmF5XSxyZXF1aXJlZDohMH0se25hbWU6ImNhbGxiYWNrIix0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfV07ZS4kb249cjt2YXIgaT1yO2UuJG9uY2U9aTt2YXIgYT1be25hbWU6ImV2ZW50Iix0eXBlOltTdHJpbmcsQXJyYXldfSx7bmFtZToiY2FsbGJhY2siLHR5cGU6RnVuY3Rpb259XTtlLiRvZmY9YTt2YXIgbz1be25hbWU6ImV2ZW50Iix0eXBlOlN0cmluZyxyZXF1aXJlZDohMH1dO2UuJGVtaXQ9b30sIjVmMTMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24oKXtpZihyPXJ8fGlbIl9fRENfU1RBVF9VVUlEIl0sIXIpe3I9RGF0ZS5ub3coKSsiIitNYXRoLmZsb29yKDFlNypNYXRoLnJhbmRvbSgpKTt0cnl7aVsiX19EQ19TVEFUX1VVSUQiXT1yfWNhdGNoKHQpe319cmV0dXJuIHJ9O3ZhciByLGk9bmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQmJih3aW5kb3cubG9jYWxTdG9yYWdlfHx3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpfHx7fX0sIjVmOTYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiZTMzMCIpLGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxzPWkoW10uam9pbik7bygiam9pbiIsKGZ1bmN0aW9uKHQpe3JldHVybiBzKGEodGhpcyksdCl9KSl9LCI1ZmIyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImUzMzAiKSxpPS9bXlwwLVx1MDA3RV0vLGE9L1suXHUzMDAyXHVGRjBFXHVGRjYxXS9nLG89Ik92ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzIixzPVJhbmdlRXJyb3IsYz1yKGEuZXhlYyksdT1NYXRoLmZsb29yLGw9U3RyaW5nLmZyb21DaGFyQ29kZSxmPXIoIiIuY2hhckNvZGVBdCksZD1yKFtdLmpvaW4pLGg9cihbXS5wdXNoKSxwPXIoIiIucmVwbGFjZSksdj1yKCIiLnNwbGl0KSxnPXIoIiIudG9Mb3dlckNhc2UpLG09ZnVuY3Rpb24odCl7cmV0dXJuIHQrMjIrNzUqKHQ8MjYpfSxiPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0wO3Q9bj91KHQvNzAwKTp0Pj4xLHQrPXUodC9lKTt3aGlsZSh0PjQ1NSl0PXUodC8zNSkscis9MzY7cmV0dXJuIHUociszNip0Lyh0KzM4KSl9LHk9ZnVuY3Rpb24odCl7dmFyIGU9W107dD1mdW5jdGlvbih0KXt2YXIgZT1bXSxuPTAscj10Lmxlbmd0aDt3aGlsZShuPHIpe3ZhciBpPWYodCxuKyspO2lmKGk+PTU1Mjk2JiZpPD01NjMxOSYmbjxyKXt2YXIgYT1mKHQsbisrKTs1NjMyMD09KDY0NTEyJmEpP2goZSwoKDEwMjMmaSk8PDEwKSsoMTAyMyZhKSs2NTUzNik6KGgoZSxpKSxuLS0pfWVsc2UgaChlLGkpfXJldHVybiBlfSh0KTt2YXIgbixyLGk9dC5sZW5ndGgsYT0xMjgsYz0wLHA9NzI7Zm9yKG49MDtuPHQubGVuZ3RoO24rKylyPXRbbl0scjwxMjgmJmgoZSxsKHIpKTt2YXIgdj1lLmxlbmd0aCxnPXY7diYmaChlLCItIik7d2hpbGUoZzxpKXt2YXIgeT0yMTQ3NDgzNjQ3O2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspcj10W25dLHI+PWEmJnI8eSYmKHk9cik7dmFyIF89ZysxO2lmKHktYT51KCgyMTQ3NDgzNjQ3LWMpL18pKXRocm93IHMobyk7Zm9yKGMrPSh5LWEpKl8sYT15LG49MDtuPHQubGVuZ3RoO24rKyl7aWYocj10W25dLHI8YSYmKytjPjIxNDc0ODM2NDcpdGhyb3cgcyhvKTtpZihyPT1hKXt2YXIgdz1jLHg9MzY7d2hpbGUoMSl7dmFyIFM9eDw9cD8xOng+PXArMjY/MjY6eC1wO2lmKHc8UylicmVhazt2YXIgVD13LVMsQz0zNi1TO2goZSxsKG0oUytUJUMpKSksdz11KFQvQykseCs9MzZ9aChlLGwobSh3KSkpLHA9YihjLF8sZz09diksYz0wLGcrK319YysrLGErK31yZXR1cm4gZChlLCIiKX07dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj1bXSxvPXYocChnKHQpLGEsIi4iKSwiLiIpO2ZvcihlPTA7ZTxvLmxlbmd0aDtlKyspbj1vW2VdLGgocixjKGksbik/InhuLS0iK3kobik6bik7cmV0dXJuIGQociwiLiIpfX0sIjVmZTciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKHQsZSxuLHIpe3QuYWRkRXZlbnRMaXN0ZW5lcihlLChmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT09dHlwZW9mIG4mJiExPT09bih0KSYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpKX0pLHtjYXB0dXJlOnIscGFzc2l2ZTohMX0pfSxpPXtiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9fbW91c2VNb3ZlRXZlbnRMaXN0ZW5lciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fX21vdXNlVXBFdmVudExpc3RlbmVyKX0sbWV0aG9kczp7dG91Y2h0cmFjazpmdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHM9dGhpcyxjPXRoaXMsdT0wLGw9MCxmPTAsZD0wLGg9ZnVuY3Rpb24odCxuLHIsaSl7aWYoITE9PT1jW2VdKHt0YXJnZXQ6dC50YXJnZXQsY3VycmVudFRhcmdldDp0LmN1cnJlbnRUYXJnZXQscHJldmVudERlZmF1bHQ6dC5wcmV2ZW50RGVmYXVsdC5iaW5kKHQpLHN0b3BQcm9wYWdhdGlvbjp0LnN0b3BQcm9wYWdhdGlvbi5iaW5kKHQpLHRvdWNoZXM6dC50b3VjaGVzLGNoYW5nZWRUb3VjaGVzOnQuY2hhbmdlZFRvdWNoZXMsZGV0YWlsOntzdGF0ZTpuLHg6cix5OmksZHg6ci11LGR5OmktbCxkZHg6ci1mLGRkeTppLWQsdGltZVN0YW1wOnQudGltZVN0YW1wfX0pKXJldHVybiExfSxwPW51bGw7cih0LCJ0b3VjaHN0YXJ0IiwoZnVuY3Rpb24odCl7aWYoYT0hMCwxPT09dC50b3VjaGVzLmxlbmd0aCYmIXApcmV0dXJuIHA9dCx1PWY9dC50b3VjaGVzWzBdLnBhZ2VYLGw9ZD10LnRvdWNoZXNbMF0ucGFnZVksaCh0LCJzdGFydCIsdSxsKX0pKSxyKHQsIm1vdXNlZG93biIsKGZ1bmN0aW9uKHQpe2lmKG89ITAsIWEmJiFwKXJldHVybiBwPXQsdT1mPXQucGFnZVgsbD1kPXQucGFnZVksaCh0LCJzdGFydCIsdSxsKX0pKSxyKHQsInRvdWNobW92ZSIsKGZ1bmN0aW9uKHQpe2lmKDE9PT10LnRvdWNoZXMubGVuZ3RoJiZwKXt2YXIgZT1oKHQsIm1vdmUiLHQudG91Y2hlc1swXS5wYWdlWCx0LnRvdWNoZXNbMF0ucGFnZVkpO3JldHVybiBmPXQudG91Y2hlc1swXS5wYWdlWCxkPXQudG91Y2hlc1swXS5wYWdlWSxlfX0pKTt2YXIgdj10aGlzLl9fY2xpY2tFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfSxnPXRoaXMuX19tb3VzZU1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQpe2lmKCFhJiZvJiZwKXshaSYmKE1hdGguYWJzKGYtdSk+Mnx8TWF0aC5hYnMoZC1sKT4yKSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix2LCEwKSxpPSEwKTt2YXIgZT1oKHQsIm1vdmUiLHQucGFnZVgsdC5wYWdlWSk7cmV0dXJuIGY9dC5wYWdlWCxkPXQucGFnZVksZX19O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZykscih0LCJ0b3VjaGVuZCIsKGZ1bmN0aW9uKHQpe2lmKDA9PT10LnRvdWNoZXMubGVuZ3RoJiZwKXJldHVybiBhPSExLHA9bnVsbCxoKHQsImVuZCIsdC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWCx0LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZKX0pKTt2YXIgbT10aGlzLl9fbW91c2VVcEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCl7aWYobz0hMSwhYSYmcClyZXR1cm4gaSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIscy5fX2NsaWNrRXZlbnRMaXN0ZW5lciwhMCksaT0hMX0pLDApLHA9bnVsbCxoKHQsImVuZCIsdC5wYWdlWCx0LnBhZ2VZKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbSkscih0LCJ0b3VjaGNhbmNlbCIsKGZ1bmN0aW9uKHQpe2lmKHApe2E9ITE7dmFyIGU9cDtyZXR1cm4gcD1udWxsLGgodCxuPyJjYW5jZWwiOiJlbmQiLGUudG91Y2hlc1swXS5wYWdlWCxlLnRvdWNoZXNbMF0ucGFnZVkpfX0pKX19fTtlLmRlZmF1bHQ9aX0sNjAwNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuKDAsci5kZWZhdWx0KSh0KX07dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCI2Yjc1IikpfSwiNjA1ZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImM2YjYiKSxpPW4oImRhODQiKTt0LmV4cG9ydHM9InByb2Nlc3MiPT1yKGkucHJvY2Vzcyl9LDYwNjk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjZjNTkiKSxpPW4oIjYwNWQiKTt0LmV4cG9ydHM9IXImJiFpJiYib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmIm9iamVjdCI9PXR5cGVvZiBkb2N1bWVudH0sIjYwYmQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZGE4NCIpLGk9bigiZDAzOSIpLGE9bigiZTMzMCIpLG89bigiZWJiNSIpLHM9bigiZTI2MCIpLGM9bigiYjYyMiIpLHU9YygiaXRlcmF0b3IiKSxsPXIuVWludDhBcnJheSxmPWEocy52YWx1ZXMpLGQ9YShzLmtleXMpLGg9YShzLmVudHJpZXMpLHA9by5hVHlwZWRBcnJheSx2PW8uZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxnPWwmJmwucHJvdG90eXBlLG09IWkoKGZ1bmN0aW9uKCl7Z1t1XS5jYWxsKFsxXSl9KSksYj0hIWcmJmcudmFsdWVzJiZnW3VdPT09Zy52YWx1ZXMmJiJ2YWx1ZXMiPT09Zy52YWx1ZXMubmFtZSx5PWZ1bmN0aW9uKCl7cmV0dXJuIGYocCh0aGlzKSl9O3YoImVudHJpZXMiLChmdW5jdGlvbigpe3JldHVybiBoKHAodGhpcykpfSksbSksdigia2V5cyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGQocCh0aGlzKSl9KSxtKSx2KCJ2YWx1ZXMiLHksbXx8IWIse25hbWU6InZhbHVlcyJ9KSx2KHUseSxtfHwhYix7bmFtZToidmFsdWVzIn0pfSwiNjBkYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI4M2FiIiksaT1uKCJlMzMwIiksYT1uKCJjNjViIiksbz1uKCJkMDM5Iikscz1uKCJkZjc1IiksYz1uKCI3NDE4IiksdT1uKCJkMWU3IiksbD1uKCI3YjBiIiksZj1uKCI0NGFkIiksZD1PYmplY3QuYXNzaWduLGg9T2JqZWN0LmRlZmluZVByb3BlcnR5LHA9aShbXS5jb25jYXQpO3QuZXhwb3J0cz0hZHx8bygoZnVuY3Rpb24oKXtpZihyJiYxIT09ZCh7YjoxfSxkKGgoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2godGhpcywiYiIse3ZhbHVlOjMsZW51bWVyYWJsZTohMX0pfX0pLHtiOjJ9KSkuYilyZXR1cm4hMDt2YXIgdD17fSxlPXt9LG49U3ltYm9sKCk7cmV0dXJuIHRbbl09NywiYWJjZGVmZ2hpamtsbW5vcHFyc3QiLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9ZCh7fSx0KVtuXXx8ImFiY2RlZmdoaWprbG1ub3BxcnN0IiE9cyhkKHt9LGUpKS5qb2luKCIiKX0pKT9mdW5jdGlvbih0LGUpe3ZhciBuPWwodCksaT1hcmd1bWVudHMubGVuZ3RoLG89MSxkPWMuZixoPXUuZjt3aGlsZShpPm8pe3ZhciB2LGc9Zihhcmd1bWVudHNbbysrXSksbT1kP3AocyhnKSxkKGcpKTpzKGcpLGI9bS5sZW5ndGgseT0wO3doaWxlKGI+eSl2PW1beSsrXSxyJiYhYShoLGcsdil8fChuW3ZdPWdbdl0pfXJldHVybiBufTpkfSwiNjBmNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUubWVyZ2VUaXRsZU5WaWV3PWZ1bmN0aW9uKHQsZSl7KDAsYS5pc1BsYWluT2JqZWN0KShlKSYmKCgwLGEuaGFzT3duKShlLCJiYWNrZ3JvdW5kQ29sb3IiKSYmKHQuYmFja2dyb3VuZENvbG9yPWUuYmFja2dyb3VuZENvbG9yKSwoMCxhLmhhc093bikoZSwiYnV0dG9ucyIpJiYodC5idXR0b25zPWUuYnV0dG9ucyksKDAsYS5oYXNPd24pKGUsInRpdGxlQ29sb3IiKSYmKHQudGV4dENvbG9yPWUudGl0bGVDb2xvciksKDAsYS5oYXNPd24pKGUsInRpdGxlVGV4dCIpJiYodC50aXRsZVRleHQ9ZS50aXRsZVRleHQpLCgwLGEuaGFzT3duKShlLCJ0aXRsZVNpemUiKSYmKHQudGl0bGVTaXplPWUudGl0bGVTaXplKSwoMCxhLmhhc093bikoZSwidHlwZSIpJiYodC50eXBlPWUudHlwZSksKDAsYS5oYXNPd24pKGUsInNlYXJjaElucHV0IikmJiJvYmplY3QiPT09KDAsaS5kZWZhdWx0KShlLnNlYXJjaElucHV0KSYmKHQuc2VhcmNoSW5wdXQ9T2JqZWN0LmFzc2lnbih7YXV0b0ZvY3VzOiExLGFsaWduOiJjZW50ZXIiLGNvbG9yOiIjMDAwMDAwIixiYWNrZ3JvdW5kQ29sb3I6InJnYmEoMjU1LDI1NSwyNTUsMC41KSIsYm9yZGVyUmFkaXVzOiIwcHgiLHBsYWNlaG9sZGVyOiIiLHBsYWNlaG9sZGVyQ29sb3I6IiNDQ0NDQ0MiLGRpc2FibGVkOiExfSxlLnNlYXJjaElucHV0KSkpO3JldHVybiB0fSxlLndyYXBwZXJNUEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1wPU9iamVjdC5hc3NpZ24oeyJAd2FybmluZyI6Im1wIGlzIGRlcHJlY2F0ZWQifSx0KSx0Ll9wcm9jZXNzZWQ9ITAsdH07dmFyIGk9cihuKCI1M2NhIikpLGE9bigiZGI2YSIpfSw2MTgwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oIjdkYjAiKSxuKCJkM2I3IiksbigiYjY0YiIpLG4oImNhYWQiKSxuKCIyNTMyIik7dmFyIHI9e25hbWU6IktleXByZXNzIixwcm9wczp7ZGlzYWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXtlc2M6WyJFc2MiLCJFc2NhcGUiXSx0YWI6IlRhYiIsZW50ZXI6IkVudGVyIixzcGFjZTpbIiAiLCJTcGFjZWJhciJdLHVwOlsiVXAiLCJBcnJvd1VwIl0sbGVmdDpbIkxlZnQiLCJBcnJvd0xlZnQiXSxyaWdodDpbIlJpZ2h0IiwiQXJyb3dSaWdodCJdLGRvd246WyJEb3duIiwiQXJyb3dEb3duIl0sZGVsZXRlOlsiQmFja3NwYWNlIiwiRGVsZXRlIiwiRGVsIl19LG49ZnVuY3Rpb24obil7aWYoIXQuZGlzYWJsZSl7dmFyIHI9T2JqZWN0LmtleXMoZSkuZmluZCgoZnVuY3Rpb24odCl7dmFyIHI9bi5rZXksaT1lW3RdO3JldHVybiBpPT09cnx8QXJyYXkuaXNBcnJheShpKSYmaS5pbmNsdWRlcyhyKX0pKTtyJiZzZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuJGVtaXQocixuKX0pLDApfX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLG4pLHRoaXMuJG9uY2UoImhvb2s6YmVmb3JlRGVzdHJveSIsKGZ1bmN0aW9uKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLG4pfSkpfSxyZW5kZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19O2UuZGVmYXVsdD1yfSwiNjIxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJkYTg0IiksaT1uKCJlMzMwIiksYT1uKCI4M2FiIiksbz1uKCI0YjExIikscz1uKCI1ZTc3IiksYz1uKCI5MTEyIiksdT1uKCI2OTY0IiksbD1uKCJkMDM5IiksZj1uKCIxOWFhIiksZD1uKCI1OTI2IiksaD1uKCI1MGM0IikscD1uKCIwYjI1Iiksdj1uKCI3N2E3IiksZz1uKCJlMTYzIiksbT1uKCJkMmJiIiksYj1uKCIyNDFjIikuZix5PW4oIjliZjIiKS5mLF89bigiODFkNSIpLHc9bigiNGRhZSIpLHg9bigiZDQ0ZSIpLFM9bigiNjlmMyIpLFQ9cy5QUk9QRVIsQz1zLkNPTkZJR1VSQUJMRSxrPVMuZ2V0LE89Uy5zZXQsRT1yWyJBcnJheUJ1ZmZlciJdLEk9RSxQPUkmJklbInByb3RvdHlwZSJdLE09clsiRGF0YVZpZXciXSxBPU0mJk1bInByb3RvdHlwZSJdLCQ9T2JqZWN0LnByb3RvdHlwZSxMPXIuQXJyYXksaj1yLlJhbmdlRXJyb3IsUj1pKF8pLE49aShbXS5yZXZlcnNlKSxCPXYucGFjayxEPXYudW5wYWNrLEY9ZnVuY3Rpb24odCl7cmV0dXJuWzI1NSZ0XX0sVz1mdW5jdGlvbih0KXtyZXR1cm5bMjU1JnQsdD4+OCYyNTVdfSxIPWZ1bmN0aW9uKHQpe3JldHVyblsyNTUmdCx0Pj44JjI1NSx0Pj4xNiYyNTUsdD4+MjQmMjU1XX0sVj1mdW5jdGlvbih0KXtyZXR1cm4gdFszXTw8MjR8dFsyXTw8MTZ8dFsxXTw8OHx0WzBdfSxVPWZ1bmN0aW9uKHQpe3JldHVybiBCKHQsMjMsNCl9LHE9ZnVuY3Rpb24odCl7cmV0dXJuIEIodCw1Miw4KX0sej1mdW5jdGlvbih0LGUpe3kodFsicHJvdG90eXBlIl0sZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGsodGhpcylbZV19fSl9LFk9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9cChuKSxhPWsodCk7aWYoaStlPmEuYnl0ZUxlbmd0aCl0aHJvdyBqKCJXcm9uZyBpbmRleCIpO3ZhciBvPWsoYS5idWZmZXIpLmJ5dGVzLHM9aSthLmJ5dGVPZmZzZXQsYz13KG8scyxzK2UpO3JldHVybiByP2M6TihjKX0sWD1mdW5jdGlvbih0LGUsbixyLGksYSl7dmFyIG89cChuKSxzPWsodCk7aWYobytlPnMuYnl0ZUxlbmd0aCl0aHJvdyBqKCJXcm9uZyBpbmRleCIpO2Zvcih2YXIgYz1rKHMuYnVmZmVyKS5ieXRlcyx1PW8rcy5ieXRlT2Zmc2V0LGw9cigraSksZj0wO2Y8ZTtmKyspY1t1K2ZdPWxbYT9mOmUtZi0xXX07aWYobyl7dmFyIEc9VCYmIkFycmF5QnVmZmVyIiE9PUUubmFtZTtpZihsKChmdW5jdGlvbigpe0UoMSl9KSkmJmwoKGZ1bmN0aW9uKCl7bmV3IEUoLTEpfSkpJiYhbCgoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEUsbmV3IEUoMS41KSxuZXcgRShOYU4pLDEhPUUubGVuZ3RofHxHJiYhQ30pKSlHJiZDJiZjKEUsIm5hbWUiLCJBcnJheUJ1ZmZlciIpO2Vsc2V7ST1mdW5jdGlvbih0KXtyZXR1cm4gZih0aGlzLFApLG5ldyBFKHAodCkpfSxJWyJwcm90b3R5cGUiXT1QO2Zvcih2YXIgUSxKPWIoRSksSz0wO0oubGVuZ3RoPks7KShRPUpbSysrXSlpbiBJfHxjKEksUSxFW1FdKTtQLmNvbnN0cnVjdG9yPUl9bSYmZyhBKSE9PSQmJm0oQSwkKTt2YXIgWj1uZXcgTShuZXcgSSgyKSksdHQ9aShBLnNldEludDgpO1ouc2V0SW50OCgwLDIxNDc0ODM2NDgpLFouc2V0SW50OCgxLDIxNDc0ODM2NDkpLCFaLmdldEludDgoMCkmJlouZ2V0SW50OCgxKXx8dShBLHtzZXRJbnQ4OmZ1bmN0aW9uKHQsZSl7dHQodGhpcyx0LGU8PDI0Pj4yNCl9LHNldFVpbnQ4OmZ1bmN0aW9uKHQsZSl7dHQodGhpcyx0LGU8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBJPWZ1bmN0aW9uKHQpe2YodGhpcyxQKTt2YXIgZT1wKHQpO08odGhpcyx7Ynl0ZXM6UihMKGUpLDApLGJ5dGVMZW5ndGg6ZX0pLGF8fCh0aGlzLmJ5dGVMZW5ndGg9ZSl9LFA9SVsicHJvdG90eXBlIl0sTT1mdW5jdGlvbih0LGUsbil7Zih0aGlzLEEpLGYodCxQKTt2YXIgcj1rKHQpLmJ5dGVMZW5ndGgsaT1kKGUpO2lmKGk8MHx8aT5yKXRocm93IGooIldyb25nIG9mZnNldCIpO2lmKG49dm9pZCAwPT09bj9yLWk6aChuKSxpK24+cil0aHJvdyBqKCJXcm9uZyBsZW5ndGgiKTtPKHRoaXMse2J1ZmZlcjp0LGJ5dGVMZW5ndGg6bixieXRlT2Zmc2V0Oml9KSxhfHwodGhpcy5idWZmZXI9dCx0aGlzLmJ5dGVMZW5ndGg9bix0aGlzLmJ5dGVPZmZzZXQ9aSl9LEE9TVsicHJvdG90eXBlIl0sYSYmKHooSSwiYnl0ZUxlbmd0aCIpLHooTSwiYnVmZmVyIikseihNLCJieXRlTGVuZ3RoIikseihNLCJieXRlT2Zmc2V0IikpLHUoQSx7Z2V0SW50ODpmdW5jdGlvbih0KXtyZXR1cm4gWSh0aGlzLDEsdClbMF08PDI0Pj4yNH0sZ2V0VWludDg6ZnVuY3Rpb24odCl7cmV0dXJuIFkodGhpcywxLHQpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbih0KXt2YXIgZT1ZKHRoaXMsMix0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4oZVsxXTw8OHxlWzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24odCl7dmFyIGU9WSh0aGlzLDIsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIGVbMV08PDh8ZVswXX0sZ2V0SW50MzI6ZnVuY3Rpb24odCl7cmV0dXJuIFYoWSh0aGlzLDQsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpfSxnZXRVaW50MzI6ZnVuY3Rpb24odCl7cmV0dXJuIFYoWSh0aGlzLDQsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbih0KXtyZXR1cm4gRChZKHRoaXMsNCx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSwyMyl9LGdldEZsb2F0NjQ6ZnVuY3Rpb24odCl7cmV0dXJuIEQoWSh0aGlzLDgsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCksNTIpfSxzZXRJbnQ4OmZ1bmN0aW9uKHQsZSl7WCh0aGlzLDEsdCxGLGUpfSxzZXRVaW50ODpmdW5jdGlvbih0LGUpe1godGhpcywxLHQsRixlKX0sc2V0SW50MTY6ZnVuY3Rpb24odCxlKXtYKHRoaXMsMix0LFcsZSxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldFVpbnQxNjpmdW5jdGlvbih0LGUpe1godGhpcywyLHQsVyxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24odCxlKXtYKHRoaXMsNCx0LEgsZSxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldFVpbnQzMjpmdW5jdGlvbih0LGUpe1godGhpcyw0LHQsSCxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQzMjpmdW5jdGlvbih0LGUpe1godGhpcyw0LHQsVSxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbih0LGUpe1godGhpcyw4LHQscSxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX19KTt4KEksIkFycmF5QnVmZmVyIikseChNLCJEYXRhVmlldyIpLHQuZXhwb3J0cz17QXJyYXlCdWZmZXI6SSxEYXRhVmlldzpNfX0sIjYyZDkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7dmFyIGk9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ29tcG9uZW50RGVzY3JpcHRvcj12b2lkIDAsZS5jcmVhdGVDb21wb25lbnREZXNjcmlwdG9yPWZ1bmN0aW9uKHQpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07ZSYmdCYmdC4kb3B0aW9ucy5uYW1lJiYwPT09dC4kb3B0aW9ucy5uYW1lLmluZGV4T2YoIlZVbmkiKSYmKHQ9dC4kcGFyZW50KTtpZih0KXJldHVybiJfX3d4c0NvbXBvbmVudERlc2NyaXB0b3IiaW4gdHx8KHQuX193eHNDb21wb25lbnREZXNjcmlwdG9yPW5ldyBkKHQpKSx0Ll9fd3hzQ29tcG9uZW50RGVzY3JpcHRvcn0sZS5wYXJzZVN0eWxlVGV4dD1mO3ZhciBhPWkobigiZDRlYyIpKSxvPWkobigiYmVlMiIpKTtuKCJkM2I3IiksbigiMTU5YiIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiMTRkOSIpLG4oIjEyNzYiKSxuKCI0OThhIiksbigiN2E4MiIpLG4oImM3NDAiKSxuKCJhNDM0IiksbigiZTljNCIpLG4oImM5NzUiKTt2YXIgcz1uKCJkYjZhIiksYz0vXlxzK3xccyskL2csdT0vXHMrLztmdW5jdGlvbiBsKHQsZSxuKXt2YXIgcj1bXSxpPWZ1bmN0aW9uKHQpe3JldHVybiBpPW4/ZnVuY3Rpb24odCl7cmV0dXJuIWUuY29udGFpbnModCl9OmZ1bmN0aW9uKHQpe3JldHVybiBlLmNvbnRhaW5zKHQpfSxpKHQpfTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0PXQucmVwbGFjZShjLCIiKSxpKHQpJiZyLnB1c2godCl9KSkscn1mdW5jdGlvbiBmKHQpe3ZhciBlPXt9LG49LzooLispLztyZXR1cm4gdC5zcGxpdCgvOyg/IVteKF0qXCkpL2cpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKHQpe3ZhciByPXQuc3BsaXQobik7ci5sZW5ndGg+MSYmKGVbclswXS50cmltKCldPXJbMV0udHJpbSgpKX19KSksZX12YXIgZD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7KDAsYS5kZWZhdWx0KSh0aGlzLGUpLHRoaXMuJHZtPXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIiRlbCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0LiRlbH19KX1yZXR1cm4oMCxvLmRlZmF1bHQpKGUsW3trZXk6InNlbGVjdENvbXBvbmVudCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy4kZWwmJnQpe3ZhciBlPXRoaXMuJGVsLnF1ZXJ5U2VsZWN0b3IodCksbj1lLl9fdnVlX198fGU7cmV0dXJuIG4uJGdldENvbXBvbmVudERlc2NyaXB0b3ImJm4uJGdldENvbXBvbmVudERlc2NyaXB0b3IobiwhMSl9fX0se2tleToic2VsZWN0QWxsQ29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuJGVsfHwhdClyZXR1cm5bXTtmb3IodmFyIGU9W10sbj10aGlzLiRlbC5xdWVyeVNlbGVjdG9yQWxsKHQpLHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXSxhPWkuX192dWVfX3x8aTthLiRnZXRDb21wb25lbnREZXNjcmlwdG9yJiZlLnB1c2goYS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcihhLCExKSl9cmV0dXJuIGV9fSx7a2V5OiJzZXRTdHlsZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuJGVsJiZ0Pygic3RyaW5nIj09PXR5cGVvZiB0JiYodD1mKHQpKSwoMCxzLmlzUGxhaW5PYmplY3QpKHQpJiYodGhpcy4kZWwuX193eHNTdHlsZT10LHRoaXMuJHZtLiRmb3JjZVVwZGF0ZSgpKSx0aGlzKTp0aGlzfX0se2tleToiYWRkQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07aWYoIXRoaXMuJGVsfHwhZS5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIHI9bChlLHRoaXMuJGVsLmNsYXNzTGlzdCwhMCk7aWYoci5sZW5ndGgpe3ZhciBpPXRoaXMuJGVsLl9fd3hzQWRkQ2xhc3N8fCIiO3RoaXMuJGVsLl9fd3hzQWRkQ2xhc3M9aSsoaT8iICI6IiIpK3Iuam9pbigiICIpLHRoaXMuJHZtLiRmb3JjZVVwZGF0ZSgpfXJldHVybiB0aGlzfX0se2tleToicmVtb3ZlQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCksbj0wO248dDtuKyspZVtuXT1hcmd1bWVudHNbbl07aWYoIXRoaXMuJGVsfHwhZS5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIHI9dGhpcy4kZWwuY2xhc3NMaXN0LGk9dGhpcy4kZWwuX193eHNBZGRDbGFzcz90aGlzLiRlbC5fX3d4c0FkZENsYXNzLnNwbGl0KHUpOltdLGE9bChlLHIsITEpO2lmKGEubGVuZ3RoKXt2YXIgbz1bXTthLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWkuZmluZEluZGV4KChmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR9KSk7LTEhPT1lJiZpLnNwbGljZShlLDEpLG8ucHVzaCh0KX0pKSx0aGlzLiRlbC5fX3d4c1JlbW92ZUNsYXNzPW8sdGhpcy4kZWwuX193eHNBZGRDbGFzcz1pLmpvaW4oIiAiKSx0aGlzLiR2bS4kZm9yY2VVcGRhdGUoKX1yZXR1cm4gdGhpc319LHtrZXk6Imhhc0NsYXNzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy4kZWwmJnRoaXMuJGVsLmNsYXNzTGlzdC5jb250YWlucyh0KX19LHtrZXk6ImdldENvbXB1dGVkU3R5bGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGVsP3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuJGVsKTp7fX19LHtrZXk6ImdldERhdGFzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGVsJiZ0aGlzLiRlbC5kYXRhc2V0fX0se2tleToiY2FsbE1ldGhvZCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2UgaW4gdGhpcy4kdm0/dGhpcy4kdm1bZV0oSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuKSkpOnRoaXMuJHZtLl8kaWQmJnQucHVibGlzaEhhbmRsZXIoIm9uV3hzSW52b2tlQ2FsbE1ldGhvZCIse2NpZDp0aGlzLiR2bS5fJGlkLG1ldGhvZDplLGFyZ3M6bn0pfX0se2tleToicmVxdWVzdEFuaW1hdGlvbkZyYW1lIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gci5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCksdGhpc319LHtrZXk6ImdldFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRlbCYmKHRoaXMuJGVsLl9fd3hzU3RhdGV8fCh0aGlzLiRlbC5fX3d4c1N0YXRlPXt9KSl9fSx7a2V5OiJ0cmlnZ2VyRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy4kdm0uJGVtaXQodCxlKSx0aGlzfX0se2tleToic2V0VGltZW91dCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gd2luZG93LnNldFRpbWVvdXQodCxlKX19LHtrZXk6ImNsZWFyVGltZW91dCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHdpbmRvdy5jbGVhclRpbWVvdXQodCl9fSx7a2V5OiJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfX1dKSxlfSgpO2UuQ29tcG9uZW50RGVzY3JpcHRvcj1kfSkuY2FsbCh0aGlzLG4oImM1YzMiKSxuKCJjOGJhIikpfSwiNjMxYSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudGFiQmFyPXZvaWQgMCxuKCJkM2I3IiksbigiMTU5YiIpO3ZhciBpPXIobigiZTE0MyIpKSxhPW4oIjgxZTgiKSxvPW4oIjY3NTYiKSxzPV9fdW5pQ29uZmlnLnRhYkJhcnx8e307X191bmlDb25maWcudGFiQmFyPWkuZGVmYXVsdC5vYnNlcnZhYmxlKCgwLG8ucGFyc2VUaGVtZSkoKDAsYS5pbml0VGFiQmFySTE4bikocykpKSwoMCxvLm9uVGhlbWVDaGFuZ2UpKChmdW5jdGlvbigpe3ZhciB0PSgwLG8ucGFyc2VUaGVtZSkoKDAsYS5pbml0VGFiQmFySTE4bikocykpO19fdW5pQ29uZmlnLnRhYkJhci5iYWNrZ3JvdW5kQ29sb3I9dC5iYWNrZ3JvdW5kQ29sb3IsX191bmlDb25maWcudGFiQmFyLmJvcmRlclN0eWxlPXQuYm9yZGVyU3R5bGUsX191bmlDb25maWcudGFiQmFyLmNvbG9yPXQuY29sb3IsX191bmlDb25maWcudGFiQmFyLnNlbGVjdGVkQ29sb3I9dC5zZWxlY3RlZENvbG9yLF9fdW5pQ29uZmlnLnRhYkJhci5ibHVyRWZmZWN0PXQuYmx1ckVmZmVjdCx0Lmxpc3QmJnQubGlzdC5sZW5ndGgmJl9fdW5pQ29uZmlnLnRhYkJhci5saXN0Lmxlbmd0aCYmdC5saXN0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7X191bmlDb25maWcudGFiQmFyLmxpc3RbZV0uaWNvblBhdGg9dC5pY29uUGF0aCxfX3VuaUNvbmZpZy50YWJCYXIubGlzdFtlXS5zZWxlY3RlZEljb25QYXRoPXQuc2VsZWN0ZWRJY29uUGF0aH0pKX0pKTt2YXIgYz1fX3VuaUNvbmZpZy50YWJCYXI7ZS50YWJCYXI9Y30sIjYzM2QiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5oaWRlTmF2aWdhdGlvbkJhckxvYWRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGkoImhpZGVOYXZpZ2F0aW9uQmFyTG9hZGluZyIsdCl9LGUuc2V0TmF2aWdhdGlvbkJhckNvbG9yPWZ1bmN0aW9uKHQpe3JldHVybiBpKCJzZXROYXZpZ2F0aW9uQmFyQ29sb3IiLHQpfSxlLnNldE5hdmlnYXRpb25CYXJUaXRsZT1mdW5jdGlvbih0KXtyZXR1cm4gaSgic2V0TmF2aWdhdGlvbkJhclRpdGxlIix0KX0sZS5zaG93TmF2aWdhdGlvbkJhckxvYWRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGkoInNob3dOYXZpZ2F0aW9uQmFyTG9hZGluZyIsdCl9O3ZhciByPW4oImMxNWYiKTtmdW5jdGlvbiBpKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPSgwLHIuZ2V0UGFnZUhvbGRlcikobi5fX3BhZ2VfXyk7aWYoaSlzd2l0Y2goZSl7Y2FzZSJzZXROYXZpZ2F0aW9uQmFyQ29sb3IiOnZhciBhPW4uZnJvbnRDb2xvcixvPW4uYmFja2dyb3VuZENvbG9yLHM9bi5hbmltYXRpb24sYz1zLmR1cmF0aW9uLHU9cy50aW1pbmdGdW5jO2EmJihpLm5hdmlnYXRpb25CYXIudGV4dENvbG9yPSIjMDAwMDAwIj09PWE/ImJsYWNrIjoid2hpdGUiKSxvJiYoaS5uYXZpZ2F0aW9uQmFyLmJhY2tncm91bmRDb2xvcj1vKSx0LmVtaXQoIm9uTmF2aWdhdGlvbkJhckNoYW5nZSIse3RleHRDb2xvcjoiIzAwMDAwMCI9PT1hPyIjMDAwIjoiI2ZmZiIsYmFja2dyb3VuZENvbG9yOmkubmF2aWdhdGlvbkJhci5iYWNrZ3JvdW5kQ29sb3J9KSxpLm5hdmlnYXRpb25CYXIuZHVyYXRpb249YysibXMiLGkubmF2aWdhdGlvbkJhci50aW1pbmdGdW5jPXU7YnJlYWs7Y2FzZSJzaG93TmF2aWdhdGlvbkJhckxvYWRpbmciOmkubmF2aWdhdGlvbkJhci5sb2FkaW5nPSEwO2JyZWFrO2Nhc2UiaGlkZU5hdmlnYXRpb25CYXJMb2FkaW5nIjppLm5hdmlnYXRpb25CYXIubG9hZGluZz0hMTticmVhaztjYXNlInNldE5hdmlnYXRpb25CYXJUaXRsZSI6dmFyIGw9bi50aXRsZTtpLm5hdmlnYXRpb25CYXIudGl0bGVUZXh0PWwsKDAsci5pc0N1cnJlbnRQYWdlKShpKSYmKGRvY3VtZW50LnRpdGxlPWwpLHQuZW1pdCgib25OYXZpZ2F0aW9uQmFyQ2hhbmdlIix7dGl0bGVUZXh0Omx9KTticmVha31yZXR1cm57fX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sNjM3NDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9T2JqZWN0LmRlZmluZVByb3BlcnR5O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3RyeXtpKHIsdCx7dmFsdWU6ZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXtyW3RdPWV9cmV0dXJuIGV9fSwiNjQ5ZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCJiNzI3Iikuc29tZSxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygic29tZSIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LCI2NGIyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlKXtmb3IodmFyIG49dGhpcy4kY2hpbGRyZW4saT1uLmxlbmd0aCxhPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkoYT4yP2EtMjowKSxzPTI7czxhO3MrKylvW3MtMl09YXJndW1lbnRzW3NdO2Zvcih2YXIgYz0wO2M8aTtjKyspe3ZhciB1PW5bY10sbD11LiRvcHRpb25zLm5hbWUmJnUuJG9wdGlvbnMubmFtZS5zdWJzdHIoNCk7aWYofnQuaW5kZXhPZihsKSlyZXR1cm4gdS4kZW1pdC5hcHBseSh1LFtlXS5jb25jYXQobykpLCExO2lmKCExPT09ci5hcHBseSh1LFt0LGVdLmNvbmNhdChbb10pKSlyZXR1cm4hMX19bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCI5OWFmIik7dmFyIGk9e21ldGhvZHM6eyRkaXNwYXRjaDpmdW5jdGlvbih0LGUpeyJzdHJpbmciPT09dHlwZW9mIHQmJih0PVt0XSk7dmFyIG49dGhpcy4kcGFyZW50fHx0aGlzLiRyb290LHI9bi4kb3B0aW9ucy5uYW1lJiZuLiRvcHRpb25zLm5hbWUuc3Vic3RyKDQpO3doaWxlKG4mJighcnx8IX50LmluZGV4T2YocikpKW49bi4kcGFyZW50LG4mJihyPW4uJG9wdGlvbnMubmFtZSYmbi4kb3B0aW9ucy5uYW1lLnN1YnN0cig0KSk7aWYobil7Zm9yKHZhciBpPWFyZ3VtZW50cy5sZW5ndGgsYT1uZXcgQXJyYXkoaT4yP2ktMjowKSxvPTI7bzxpO28rKylhW28tMl09YXJndW1lbnRzW29dO24uJGVtaXQuYXBwbHkobixbZV0uY29uY2F0KGEpKX19LCRicm9hZGNhc3Q6ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09PXR5cGVvZiB0JiYodD1bdF0pO2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KG4+Mj9uLTI6MCksYT0yO2E8bjthKyspaVthLTJdPWFyZ3VtZW50c1thXTtyLmFwcGx5KHRoaXMsW3QsZV0uY29uY2F0KGkpKX19fTtlLmRlZmF1bHQ9aX0sIjY0ZmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRpc2FibGVTY3JvbGxCb3VuY2U9ZnVuY3Rpb24odCl7dC5kaXNhYmxlfSxlLmluaXRTY3JvbGxCb3VuY2U9ZnVuY3Rpb24oKXt9fSw2NTQ3OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCI1OTI2IiksYT1uKCI1NzdlIiksbz1uKCIxZDgwIikscz1yKCIiLmNoYXJBdCksYz1yKCIiLmNoYXJDb2RlQXQpLHU9cigiIi5zbGljZSksbD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgcixsLGY9YShvKGUpKSxkPWkobiksaD1mLmxlbmd0aDtyZXR1cm4gZDwwfHxkPj1oP3Q/IiI6dm9pZCAwOihyPWMoZixkKSxyPDU1Mjk2fHxyPjU2MzE5fHxkKzE9PT1ofHwobD1jKGYsZCsxKSk8NTYzMjB8fGw+NTczNDM/dD9zKGYsZCk6cjp0P3UoZixkLGQrMik6bC01NjMyMCsoci01NTI5Njw8MTApKzY1NTM2KX19O3QuZXhwb3J0cz17Y29kZUF0OmwoITEpLGNoYXJBdDpsKCEwKX19LCI2NWYwIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMGI0MiIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcocih0KSkoMD09PWU/MDplKX19LDY3NTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0VGhlbWUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmdldFRoZW1lfX0pLGUub2ZmVGhlbWVDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZnVuY3Rpb24oKXt9O3Qub2ZmKCJhcGkuIithLk9OX1RIRU1FX0NIQU5HRSxlKX0sZS5vblRoZW1lQ2hhbmdlPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmZ1bmN0aW9uKCl7fTtfX3VuaUNvbmZpZy5kYXJrbW9kZSYmdC5vbigiYXBpLiIrYS5PTl9USEVNRV9DSEFOR0UsZSl9LGUucGFyc2VUaGVtZT1mdW5jdGlvbih0KXt2YXIgZT17fTtpZihfX3VuaUNvbmZpZy5kYXJrbW9kZSl7dmFyIG49KDAsaS5nZXRUaGVtZSkoKTtlPSgwLHIubm9ybWFsbGl6ZVN0eWxlcykodCxfX3VuaUNvbmZpZy50aGVtZUNvbmZpZyxuKX1yZXR1cm4gX191bmlDb25maWcuZGFya21vZGU/ZTp0fTt2YXIgcj1uKCJkYjZhIiksaT1uKCI0OWI2IiksYT1uKCIwZmJlIil9KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sIjY4ZWUiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMzMwIiksaT1uKCJkMDM5IiksYT1uKCIxNjI2Iiksbz1uKCJmNWRmIikscz1uKCJkMDY2IiksYz1uKCI4OTI1IiksdT1mdW5jdGlvbigpe30sbD1bXSxmPXMoIlJlZmxlY3QiLCJjb25zdHJ1Y3QiKSxkPS9eXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXGIvLGg9cihkLmV4ZWMpLHA9IWQuZXhlYyh1KSx2PWZ1bmN0aW9uKHQpe2lmKCFhKHQpKXJldHVybiExO3RyeXtyZXR1cm4gZih1LGwsdCksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSxnPWZ1bmN0aW9uKHQpe2lmKCFhKHQpKXJldHVybiExO3N3aXRjaChvKHQpKXtjYXNlIkFzeW5jRnVuY3Rpb24iOmNhc2UiR2VuZXJhdG9yRnVuY3Rpb24iOmNhc2UiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiI6cmV0dXJuITF9dHJ5e3JldHVybiBwfHwhIWgoZCxjKHQpKX1jYXRjaChlKXtyZXR1cm4hMH19O2cuc2hhbT0hMCx0LmV4cG9ydHM9IWZ8fGkoKGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHYodi5jYWxsKXx8IXYoT2JqZWN0KXx8IXYoKGZ1bmN0aW9uKCl7dD0hMH0pKXx8dH0pKT9nOnZ9LDY5NjQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImNiMmQiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaSBpbiBlKXIodCxpLGVbaV0sbik7cmV0dXJuIHR9fSwiNjlmMyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLGksYSxvPW4oImNkY2UiKSxzPW4oImRhODQiKSxjPW4oIjg2MWQiKSx1PW4oIjkxMTIiKSxsPW4oIjFhMmQiKSxmPW4oImM2Y2QiKSxkPW4oImY3NzIiKSxoPW4oImQwMTIiKSxwPXMuVHlwZUVycm9yLHY9cy5XZWFrTWFwO2lmKG98fGYuc3RhdGUpe3ZhciBnPWYuc3RhdGV8fChmLnN0YXRlPW5ldyB2KTtnLmdldD1nLmdldCxnLmhhcz1nLmhhcyxnLnNldD1nLnNldCxyPWZ1bmN0aW9uKHQsZSl7aWYoZy5oYXModCkpdGhyb3cgcCgiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiKTtyZXR1cm4gZS5mYWNhZGU9dCxnLnNldCh0LGUpLGV9LGk9ZnVuY3Rpb24odCl7cmV0dXJuIGcuZ2V0KHQpfHx7fX0sYT1mdW5jdGlvbih0KXtyZXR1cm4gZy5oYXModCl9fWVsc2V7dmFyIG09ZCgic3RhdGUiKTtoW21dPSEwLHI9ZnVuY3Rpb24odCxlKXtpZihsKHQsbSkpdGhyb3cgcCgiT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiKTtyZXR1cm4gZS5mYWNhZGU9dCx1KHQsbSxlKSxlfSxpPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQsbSk/dFttXTp7fX0sYT1mdW5jdGlvbih0KXtyZXR1cm4gbCh0LG0pfX10LmV4cG9ydHM9e3NldDpyLGdldDppLGhhczphLGVuZm9yY2U6ZnVuY3Rpb24odCl7cmV0dXJuIGEodCk/aSh0KTpyKHQse30pfSxnZXR0ZXJGb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuO2lmKCFjKGUpfHwobj1pKGUpKS50eXBlIT09dCl0aHJvdyBwKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX19LCI2YWUwIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5nZXRXaW5kb3dJbmZvPWZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93LnNjcmVlbixlPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLG49L15BcHBsZS8udGVzdChuYXZpZ2F0b3IudmVuZG9yKSYmIm51bWJlciI9PT10eXBlb2Ygd2luZG93Lm9yaWVudGF0aW9uLHI9biYmOTA9PT1NYXRoLmFicyh3aW5kb3cub3JpZW50YXRpb24pLG89bj9NYXRoW3I/Im1heCI6Im1pbiJdKHQud2lkdGgsdC5oZWlnaHQpOnQud2lkdGgscz1uP01hdGhbcj8ibWluIjoibWF4Il0odC5oZWlnaHQsdC53aWR0aCk6dC5oZWlnaHQsYz1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsbyl8fG8sdT13aW5kb3cuaW5uZXJIZWlnaHQsbD1hLmRlZmF1bHQudG9wLGY9e2xlZnQ6YS5kZWZhdWx0LmxlZnQscmlnaHQ6Yy1hLmRlZmF1bHQucmlnaHQsdG9wOmEuZGVmYXVsdC50b3AsYm90dG9tOnUtYS5kZWZhdWx0LmJvdHRvbSx3aWR0aDpjLWEuZGVmYXVsdC5sZWZ0LWEuZGVmYXVsdC5yaWdodCxoZWlnaHQ6dS1hLmRlZmF1bHQudG9wLWEuZGVmYXVsdC5ib3R0b219LGQ9KDAsaS5kZWZhdWx0KSgpLGg9ZC50b3AscD1kLmJvdHRvbTtyZXR1cm4gdS09aCx1LT1wLHt3aW5kb3dUb3A6aCx3aW5kb3dCb3R0b206cCx3aW5kb3dXaWR0aDpjLHdpbmRvd0hlaWdodDp1LHBpeGVsUmF0aW86ZSxzY3JlZW5XaWR0aDpvLHNjcmVlbkhlaWdodDpzLHN0YXR1c0JhckhlaWdodDpsLHNhZmVBcmVhOmYsc2FmZUFyZWFJbnNldHM6e3RvcDphLmRlZmF1bHQudG9wLHJpZ2h0OmEuZGVmYXVsdC5yaWdodCxib3R0b206YS5kZWZhdWx0LmJvdHRvbSxsZWZ0OmEuZGVmYXVsdC5sZWZ0fSxzY3JlZW5Ub3A6cy11fX0sbigiYWMxZiIpLG4oIjAwYjQiKTt2YXIgaT1yKG4oIjRmY2IiKSksYT1yKG4oImQ4YzgiKSl9LCI2YjY5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYWMxZiIpLG4oIjUzMTkiKTt2YXIgcj1uKCJkYjZhIiksaT17bW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fdG9nZ2xlTGlzdGVuZXJzKCJzdWJzY3JpYmUiLHRoaXMuaWQpLHRoaXMuJHdhdGNoKCJpZCIsKGZ1bmN0aW9uKGUsbil7dC5fdG9nZ2xlTGlzdGVuZXJzKCJ1bnN1YnNjcmliZSIsbiwhMCksdC5fdG9nZ2xlTGlzdGVuZXJzKCJzdWJzY3JpYmUiLGUsITApfSkpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fdG9nZ2xlTGlzdGVuZXJzKCJ1bnN1YnNjcmliZSIsdGhpcy5pZCksdGhpcy5fY29udGV4dElkJiZ0aGlzLl90b2dnbGVMaXN0ZW5lcnMoInVuc3Vic2NyaWJlIix0aGlzLl9jb250ZXh0SWQpfSxtZXRob2RzOntfdG9nZ2xlTGlzdGVuZXJzOmZ1bmN0aW9uKGUsbixpKXtpJiYhbnx8KDAsci5pc0ZuKSh0aGlzLl9oYW5kbGVTdWJzY3JpYmUpJiZ0W2VdKHRoaXMuJHBhZ2UuaWQrIi0iK3RoaXMuJG9wdGlvbnMubmFtZS5yZXBsYWNlKC9WVW5pKFtBLVpdKS8sIiQxIikudG9Mb3dlckNhc2UoKSsiLSIrbix0aGlzLl9oYW5kbGVTdWJzY3JpYmUpfSxfZ2V0Q29udGV4dEluZm86ZnVuY3Rpb24oKXt2YXIgdD0iY29udGV4dC0iLmNvbmNhdCh0aGlzLl91aWQpO3JldHVybiB0aGlzLl9jb250ZXh0SWR8fCh0aGlzLl90b2dnbGVMaXN0ZW5lcnMoInN1YnNjcmliZSIsdCksdGhpcy5fY29udGV4dElkPXQpLHtuYW1lOnRoaXMuJG9wdGlvbnMubmFtZS5yZXBsYWNlKC9WVW5pKFtBLVpdKS8sIiQxIikudG9Mb3dlckNhc2UoKSxpZDp0LHBhZ2U6dGhpcy4kcGFnZS5pZH19fX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sIjZiNzUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPW5ldyBBcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn19LCI2Yjg3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJkM2I3IiksbigiMTRkOSIpLG4oImM5NzUiKSxuKCJhNDM0Iik7dmFyIHIsaT1uKCJkYjZhIiksYT0haS5zdXBwb3J0c1Bhc3NpdmV8fHtwYXNzaXZlOiEwLGNhcHR1cmU6ITB9LG89W10scz0wO2Z1bmN0aW9uIGModCl7by5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZS51c2VySW50ZXJhY3Q9dH0pKX1mdW5jdGlvbiB1KCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKCFyKXt2YXIgZT1bInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIsIm1vdXNlZG93biIsIm1vdXNldXAiXTtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIodCwoZnVuY3Rpb24oKXshcyYmYyghMCkscysrLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7IS0tcyYmYyghMSl9KSwwKX0pLGEpfSkpLHI9ITB9by5wdXNoKHQpfXZhciBsPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3VzZXJJbnRlcmFjdDohMX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt1KHRoaXMpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7KGZ1bmN0aW9uKHQpe3ZhciBlPW8uaW5kZXhPZih0KTtlPj0wJiZvLnNwbGljZShlLDEpfSkodGhpcyl9LGFkZEludGVyYWN0TGlzdGVuZXI6dSxnZXRTdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4hIXN9fTtlLmRlZmF1bHQ9bH0sIjZjNTkiOmZ1bmN0aW9uKHQsZSl7dC5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgRGVubyYmRGVubyYmIm9iamVjdCI9PXR5cGVvZiBEZW5vLnZlcnNpb259LCI2Y2E3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIyMGIxIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiNmNiZCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiYTllMyIpLG4oImNhYWQiKSxuKCIyNTMyIiksbigiOTlhZiIpLG4oImM5NzUiKSxuKCJhY2Q4Iik7dmFyIHI9bigiOTg3ZCIpLGk9WyJkb25lIiwiZ28iLCJuZXh0Iiwic2VhcmNoIiwic2VuZCJdLGE9WyJub25lIiwidGV4dCIsImRlY2ltYWwiLCJudW1lcmljIiwidGVsIiwic2VhcmNoIiwiZW1haWwiLCJ1cmwiXSxvPXtuYW1lOiJUZXh0YXJlYSIsbWl4aW5zOltyLmZpZWxkXSxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sbWF4bGVuZ3RoOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjE0MH0scGxhY2Vob2xkZXI6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0scGxhY2Vob2xkZXJDbGFzczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoidGV4dGFyZWEtcGxhY2Vob2xkZXIifSxwbGFjZWhvbGRlclN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxhdXRvSGVpZ2h0Ont0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sY29uZmlybVR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InJldHVybiIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBpLmNvbmNhdCgicmV0dXJuIikuaW5jbHVkZXModCl9fSxpbnB1dG1vZGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6dm9pZCAwLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4hIX5hLmluZGV4T2YodCl9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt2YWx1ZUNvbXBvc2l0aW9uOiIiLGhlaWdodDowLGZvY3VzQ2hhbmdlU291cmNlOiIiLGZpeE1hcmdpbjowPT09U3RyaW5nKG5hdmlnYXRvci5wbGF0Zm9ybSkuaW5kZXhPZigiaVAiKSYmMD09PVN0cmluZyhuYXZpZ2F0b3IudmVuZG9yKS5pbmRleE9mKCJBcHBsZSIpJiYiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIhPT13aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1lZGlhfX0sY29tcHV0ZWQ6e21heGxlbmd0aE51bWJlcjpmdW5jdGlvbigpe3ZhciB0PU51bWJlcih0aGlzLm1heGxlbmd0aCk7cmV0dXJuIGlzTmFOKHQpPzE0MDp0fSx2YWx1ZUNvbXB1dGU6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5jb21wb3Npbmc/dGhpcy52YWx1ZUNvbXBvc2l0aW9uOnRoaXMudmFsdWVTeW5jKS5zcGxpdCgiXG4iKX0saXNEb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGkuaW5jbHVkZXModGhpcy5jb25maXJtVHlwZSl9fSx3YXRjaDp7Zm9jdXM6ZnVuY3Rpb24odCl7dCYmKHRoaXMuZm9jdXNDaGFuZ2VTb3VyY2U9ImZvY3VzIil9LGhlaWdodDpmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcy4kZWwpLmxpbmVIZWlnaHQpO2lzTmFOKGUpJiYoZT10aGlzLiRyZWZzLmxpbmUub2Zmc2V0SGVpZ2h0KTt2YXIgbj1NYXRoLnJvdW5kKHQvZSk7dGhpcy4kdHJpZ2dlcigibGluZWNoYW5nZSIse30se2hlaWdodDp0LGhlaWdodFJweDo3NTAvd2luZG93LmlubmVyV2lkdGgqdCxsaW5lQ291bnQ6bn0pLHRoaXMuYXV0b0hlaWdodCYmKHRoaXMuJGVsLnN0eWxlLmhlaWdodD0iYXV0byIsdGhpcy4kcmVmcy53cmFwcGVyLnN0eWxlLmhlaWdodD10aGlzLmhlaWdodCsicHgiKX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRkaXNwYXRjaCgiRm9ybSIsInVuaS1mb3JtLWdyb3VwLXVwZGF0ZSIse3R5cGU6ImFkZCIsdm06dGhpc30pfSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fcmVzaXplKHtoZWlnaHQ6dGhpcy4kcmVmcy5zZW5zb3IuJGVsLm9mZnNldEhlaWdodH0pO3ZhciB0PXRoaXM7d2hpbGUodCl7dmFyIGU9dC4kb3B0aW9ucy5fc2NvcGVJZDtlJiZ0aGlzLiRyZWZzLnBsYWNlaG9sZGVyLnNldEF0dHJpYnV0ZShlLCIiKSx0PXQuJHBhcmVudH19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRkaXNwYXRjaCgiRm9ybSIsInVuaS1mb3JtLWdyb3VwLXVwZGF0ZSIse3R5cGU6InJlbW92ZSIsdm06dGhpc30pfSxtZXRob2RzOntfb25LZXlEb3duRW50ZXI6ZnVuY3Rpb24odCl7dGhpcy5pc0RvbmUmJnQucHJldmVudERlZmF1bHQoKX0sX29uS2V5VXBFbnRlcjpmdW5jdGlvbih0KXt0aGlzLmlzRG9uZSYmKHRoaXMuX2NvbmZpcm0odCksIXRoaXMuY29uZmlybUhvbGQmJnRoaXMuJHJlZnMudGV4dGFyZWEuYmx1cigpKX0sX29uQ29tcG9zaXRpb246ZnVuY3Rpb24odCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJjb21wb3NpdGlvbnN0YXJ0Ijp0aGlzLmNvbXBvc2luZz0hMDticmVhaztjYXNlImNvbXBvc2l0aW9uZW5kIjp0aGlzLmNvbXBvc2luZyYmKHRoaXMuY29tcG9zaW5nPSExLHRoaXMuX29uSW5wdXQodCkpO2JyZWFrfSF0aGlzLmlnbm9yZUNvbXBvc2l0aW9uRXZlbnQmJnRoaXMuJHRyaWdnZXIodC50eXBlLHQse2RhdGE6dC5kYXRhfSl9LF9jb25maXJtOmZ1bmN0aW9uKHQpe3RoaXMuJHRyaWdnZXIoImNvbmZpcm0iLHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jfSl9LF9saW5lY2hhbmdlOmZ1bmN0aW9uKHQpe3RoaXMuJHRyaWdnZXIoImxpbmVjaGFuZ2UiLHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jfSl9LF9vblRvdWNoc3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzQ2hhbmdlU291cmNlPSJ0b3VjaCJ9LF9yZXNpemU6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5oZWlnaHQ9ZX0sX29uSW5wdXQ6ZnVuY3Rpb24odCxlKXt0aGlzLmNvbXBvc2luZyYmdGhpcy5pZ25vcmVDb21wb3NpdGlvbkV2ZW50P3RoaXMudmFsdWVDb21wb3NpdGlvbj10LnRhcmdldC52YWx1ZToodGhpcy5pZ25vcmVDb21wb3NpdGlvbkV2ZW50fHwodGhpcy52YWx1ZVN5bmM9dGhpcy4kcmVmcy50ZXh0YXJlYS52YWx1ZSksdGhpcy4kdHJpZ2dlcklucHV0KHQse3ZhbHVlOnRoaXMudmFsdWVTeW5jLGN1cnNvcjp0aGlzLiRyZWZzLnRleHRhcmVhLnNlbGVjdGlvbkVuZH0sZSkpfSxfZ2V0Rm9ybURhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6dGhpcy52YWx1ZVN5bmMsa2V5OnRoaXMubmFtZX19LF9yZXNldEZvcm1EYXRhOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZVN5bmM9IiJ9fX07ZS5kZWZhdWx0PW99LCI2ZDYxIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImRhODQiKSxhPW4oImUzMzAiKSxvPW4oIjk0Y2EiKSxzPW4oImNiMmQiKSxjPW4oImYxODMiKSx1PW4oIjIyNjYiKSxsPW4oIjE5YWEiKSxmPW4oIjE2MjYiKSxkPW4oIjcyMzQiKSxoPW4oIjg2MWQiKSxwPW4oImQwMzkiKSx2PW4oIjFjN2UiKSxnPW4oImQ0NGUiKSxtPW4oIjcxNTYiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBiPS0xIT09dC5pbmRleE9mKCJNYXAiKSx5PS0xIT09dC5pbmRleE9mKCJXZWFrIiksXz1iPyJzZXQiOiJhZGQiLHc9aVt0XSx4PXcmJncucHJvdG90eXBlLFM9dyxUPXt9LEM9ZnVuY3Rpb24odCl7dmFyIGU9YSh4W3RdKTtzKHgsdCwiYWRkIj09dD9mdW5jdGlvbih0KXtyZXR1cm4gZSh0aGlzLDA9PT10PzA6dCksdGhpc306ImRlbGV0ZSI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuISh5JiYhaCh0KSkmJmUodGhpcywwPT09dD8wOnQpfToiZ2V0Ij09dD9mdW5jdGlvbih0KXtyZXR1cm4geSYmIWgodCk/dm9pZCAwOmUodGhpcywwPT09dD8wOnQpfToiaGFzIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKHkmJiFoKHQpKSYmZSh0aGlzLDA9PT10PzA6dCl9OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGUodGhpcywwPT09dD8wOnQsbiksdGhpc30pfSxrPW8odCwhZih3KXx8ISh5fHx4LmZvckVhY2gmJiFwKChmdW5jdGlvbigpeyhuZXcgdykuZW50cmllcygpLm5leHQoKX0pKSkpO2lmKGspUz1uLmdldENvbnN0cnVjdG9yKGUsdCxiLF8pLGMuZW5hYmxlKCk7ZWxzZSBpZihvKHQsITApKXt2YXIgTz1uZXcgUyxFPU9bX10oeT97fTotMCwxKSE9TyxJPXAoKGZ1bmN0aW9uKCl7Ty5oYXMoMSl9KSksUD12KChmdW5jdGlvbih0KXtuZXcgdyh0KX0pKSxNPSF5JiZwKChmdW5jdGlvbigpe3ZhciB0PW5ldyB3LGU9NTt3aGlsZShlLS0pdFtfXShlLGUpO3JldHVybiF0LmhhcygtMCl9KSk7UHx8KFM9ZSgoZnVuY3Rpb24odCxlKXtsKHQseCk7dmFyIG49bShuZXcgdyx0LFMpO3JldHVybiBkKGUpfHx1KGUsbltfXSx7dGhhdDpuLEFTX0VOVFJJRVM6Yn0pLG59KSksUy5wcm90b3R5cGU9eCx4LmNvbnN0cnVjdG9yPVMpLChJfHxNKSYmKEMoImRlbGV0ZSIpLEMoImhhcyIpLGImJkMoImdldCIpKSwoTXx8RSkmJkMoXykseSYmeC5jbGVhciYmZGVsZXRlIHguY2xlYXJ9cmV0dXJuIFRbdF09UyxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOlMhPXd9LFQpLGcoUyx0KSx5fHxuLnNldFN0cm9uZyhTLHQsYiksU319LCI2ZjUzIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiZTMzMCIpLGE9bigiZGY3NSIpLG89bigiZmM2YSIpLHM9bigiZDFlNyIpLmYsYz1pKHMpLHU9aShbXS5wdXNoKSxsPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbixpPW8oZSkscz1hKGkpLGw9cy5sZW5ndGgsZj0wLGQ9W107d2hpbGUobD5mKW49c1tmKytdLHImJiFjKGksbil8fHUoZCx0P1tuLGlbbl1dOmlbbl0pO3JldHVybiBkfX07dC5leHBvcnRzPXtlbnRyaWVzOmwoITApLHZhbHVlczpsKCExKX19LDcwMzc6ZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHQuZXhwb3J0cz1yPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSx0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHNbImRlZmF1bHQiXT10LmV4cG9ydHMscihlKX1uKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKSx0LmV4cG9ydHM9cix0LmV4cG9ydHMuX19lc01vZHVsZT0hMCx0LmV4cG9ydHNbImRlZmF1bHQiXT10LmV4cG9ydHN9LDcwNDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUsbil7bihudWxsLHQpfX0sNzE0OTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImQwNjYiKSxhPW4oImM0MzAiKSxvPW4oImQyNTYiKSxzPW4oIjQ3MzgiKS5DT05TVFJVQ1RPUixjPW4oImNkZjkiKSx1PWkoIlByb21pc2UiKSxsPWEmJiFzO3Ioe3RhcmdldDoiUHJvbWlzZSIsc3RhdDohMCxmb3JjZWQ6YXx8c30se3Jlc29sdmU6ZnVuY3Rpb24odCl7cmV0dXJuIGMobCYmdGhpcz09PXU/bzp0aGlzLHQpfX0pfSw3MTU2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIxNjI2IiksaT1uKCI4NjFkIiksYT1uKCJkMmJiIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbyxzO3JldHVybiBhJiZyKG89ZS5jb25zdHJ1Y3RvcikmJm8hPT1uJiZpKHM9by5wcm90b3R5cGUpJiZzIT09bi5wcm90b3R5cGUmJmEodCxzKSx0fX0sNzIzNDpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09PXR8fHZvaWQgMD09PXR9fSwiNzJmNyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IikuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxpPW4oImQwMzkiKSxhPW4oImRhODQiKSxvPW4oImUzMzAiKSxzPWEuVWludDhBcnJheSxjPXMmJnMucHJvdG90eXBlfHx7fSx1PVtdLnRvU3RyaW5nLGw9byhbXS5qb2luKTtpKChmdW5jdGlvbigpe3UuY2FsbCh7fSl9KSkmJih1PWZ1bmN0aW9uKCl7cmV0dXJuIGwodGhpcyl9KTt2YXIgZj1jLnRvU3RyaW5nIT11O3IoInRvU3RyaW5nIix1LGYpfSw3MzI5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pbnZva2U9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4oZT10KS5pbnZva2VDYWxsYmFja0hhbmRsZXIuYXBwbHkoZSxhcmd1bWVudHMpfSxlLnBhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LGUucmVtb3ZlPWZ1bmN0aW9uKGUpe3JldHVybiB0LnJlbW92ZUNhbGxiYWNrSGFuZGxlcihlKX0sZS51bnBhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCI3MzVlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oIjgxZDUiKSxhPW4oImY0OTUiKSxvPW4oImY1ZGYiKSxzPW4oImM2NWIiKSxjPW4oImUzMzAiKSx1PW4oImQwMzkiKSxsPXIuYVR5cGVkQXJyYXksZj1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QsZD1jKCIiLnNsaWNlKSxoPXUoKGZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gbmV3IEludDhBcnJheSgyKS5maWxsKHt2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHQrK319KSwxIT09dH0pKTtmKCJmaWxsIiwoZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDtsKHRoaXMpO3ZhciBuPSJCaWciPT09ZChvKHRoaXMpLDAsMyk/YSh0KTordDtyZXR1cm4gcyhpLHRoaXMsbixlPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSxoKX0sIjczYmYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCJkYjZhIiksaT17ZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93TW9kYWw6e3Zpc2libGU6ITF9fX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dC5vbigib25TaG93TW9kYWwiLChmdW5jdGlvbih0LG4pe2Uuc2hvd01vZGFsPXQsZS5vbk1vZGFsQ2xvc2VDYWxsYmFjaz1ufSkpLHQub24oIm9uSGlkZVBvcHVwIiwoZnVuY3Rpb24odCl7ZS5zaG93TW9kYWwudmlzaWJsZT0hMX0pKX0sbWV0aG9kczp7X29uTW9kYWxDbG9zZTpmdW5jdGlvbih0KXt0aGlzLnNob3dNb2RhbC52aXNpYmxlPSExLCgwLHIuaXNGbikodGhpcy5vbk1vZGFsQ2xvc2VDYWxsYmFjaykmJnRoaXMub25Nb2RhbENsb3NlQ2FsbGJhY2sodCl9fX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sNzQxODpmdW5jdGlvbih0LGUpe2UuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSw3NDY1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjk5ZTAiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCI3NGU4IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImRhODQiKSxhPW4oImM2NWIiKSxvPW4oIjgzYWIiKSxzPW4oIjhhYTciKSxjPW4oImViYjUiKSx1PW4oIjYyMWEiKSxsPW4oIjE5YWEiKSxmPW4oIjVjNmMiKSxkPW4oIjkxMTIiKSxoPW4oImVhYzUiKSxwPW4oIjUwYzQiKSx2PW4oIjBiMjUiKSxnPW4oIjE4MmQiKSxtPW4oImEwNGIiKSxiPW4oIjFhMmQiKSx5PW4oImY1ZGYiKSxfPW4oIjg2MWQiKSx3PW4oImQ5YjUiKSx4PW4oIjdjNzMiKSxTPW4oIjNhOWIiKSxUPW4oImQyYmIiKSxDPW4oIjI0MWMiKS5mLGs9bigiYTA3OCIpLE89bigiYjcyNyIpLmZvckVhY2gsRT1uKCIyNjI2IiksST1uKCI5YmYyIiksUD1uKCIwNmNmIiksTT1uKCI2OWYzIiksQT1uKCI3MTU2IiksJD1NLmdldCxMPU0uc2V0LGo9TS5lbmZvcmNlLFI9SS5mLE49UC5mLEI9TWF0aC5yb3VuZCxEPWkuUmFuZ2VFcnJvcixGPXUuQXJyYXlCdWZmZXIsVz1GLnByb3RvdHlwZSxIPXUuRGF0YVZpZXcsVj1jLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsVT1jLlRZUEVEX0FSUkFZX1RBRyxxPWMuVHlwZWRBcnJheSx6PWMuVHlwZWRBcnJheVByb3RvdHlwZSxZPWMuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixYPWMuaXNUeXBlZEFycmF5LEc9ZnVuY3Rpb24odCxlKXtZKHQpO3ZhciBuPTAscj1lLmxlbmd0aCxpPW5ldyB0KHIpO3doaWxlKHI+bilpW25dPWVbbisrXTtyZXR1cm4gaX0sUT1mdW5jdGlvbih0LGUpe1IodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJCh0aGlzKVtlXX19KX0sSj1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gUyhXLHQpfHwiQXJyYXlCdWZmZXIiPT0oZT15KHQpKXx8IlNoYXJlZEFycmF5QnVmZmVyIj09ZX0sSz1mdW5jdGlvbih0LGUpe3JldHVybiBYKHQpJiYhdyhlKSYmZSBpbiB0JiZoKCtlKSYmZT49MH0sWj1mdW5jdGlvbih0LGUpe3JldHVybiBlPW0oZSksSyh0LGUpP2YoMix0W2VdKTpOKHQsZSl9LHR0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1tKGUpLCEoSyh0LGUpJiZfKG4pJiZiKG4sInZhbHVlIikpfHxiKG4sImdldCIpfHxiKG4sInNldCIpfHxuLmNvbmZpZ3VyYWJsZXx8YihuLCJ3cml0YWJsZSIpJiYhbi53cml0YWJsZXx8YihuLCJlbnVtZXJhYmxlIikmJiFuLmVudW1lcmFibGU/Uih0LGUsbik6KHRbZV09bi52YWx1ZSx0KX07bz8oVnx8KFAuZj1aLEkuZj10dCxRKHosImJ1ZmZlciIpLFEoeiwiYnl0ZU9mZnNldCIpLFEoeiwiYnl0ZUxlbmd0aCIpLFEoeiwibGVuZ3RoIikpLHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohVn0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpaLGRlZmluZVByb3BlcnR5OnR0fSksdC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbz10Lm1hdGNoKC9cZCskLylbMF0vOCxjPXQrKG4/IkNsYW1wZWQiOiIiKSsiQXJyYXkiLHU9ImdldCIrdCxmPSJzZXQiK3QsaD1pW2NdLG09aCxiPW0mJm0ucHJvdG90eXBlLHk9e30sdz1mdW5jdGlvbih0LGUpe1IodCxlLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj0kKHQpO3JldHVybiBuLnZpZXdbdV0oZSpvK24uYnl0ZU9mZnNldCwhMCl9KHRoaXMsZSl9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBpPSQodCk7biYmKHI9KHI9QihyKSk8MD8wOnI+MjU1PzI1NToyNTUmciksaS52aWV3W2ZdKGUqbytpLmJ5dGVPZmZzZXQsciwhMCl9KHRoaXMsZSx0KX0sZW51bWVyYWJsZTohMH0pfTtWP3MmJihtPWUoKGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBsKHQsYiksQShmdW5jdGlvbigpe3JldHVybiBfKGUpP0ooZSk/dm9pZCAwIT09cj9uZXcgaChlLGcobixvKSxyKTp2b2lkIDAhPT1uP25ldyBoKGUsZyhuLG8pKTpuZXcgaChlKTpYKGUpP0cobSxlKTphKGssbSxlKTpuZXcgaCh2KGUpKX0oKSx0LG0pfSkpLFQmJlQobSxxKSxPKEMoaCksKGZ1bmN0aW9uKHQpe3QgaW4gbXx8ZChtLHQsaFt0XSl9KSksbS5wcm90b3R5cGU9Yik6KG09ZSgoZnVuY3Rpb24odCxlLG4scil7bCh0LGIpO3ZhciBpLHMsYyx1PTAsZj0wO2lmKF8oZSkpe2lmKCFKKGUpKXJldHVybiBYKGUpP0cobSxlKTphKGssbSxlKTtpPWUsZj1nKG4sbyk7dmFyIGQ9ZS5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PXIpe2lmKGQlbyl0aHJvdyBEKCJXcm9uZyBsZW5ndGgiKTtpZihzPWQtZixzPDApdGhyb3cgRCgiV3JvbmcgbGVuZ3RoIil9ZWxzZSBpZihzPXAocikqbyxzK2Y+ZCl0aHJvdyBEKCJXcm9uZyBsZW5ndGgiKTtjPXMvb31lbHNlIGM9dihlKSxzPWMqbyxpPW5ldyBGKHMpO0wodCx7YnVmZmVyOmksYnl0ZU9mZnNldDpmLGJ5dGVMZW5ndGg6cyxsZW5ndGg6Yyx2aWV3Om5ldyBIKGkpfSk7d2hpbGUodTxjKXcodCx1KyspfSkpLFQmJlQobSxxKSxiPW0ucHJvdG90eXBlPXgoeikpLGIuY29uc3RydWN0b3IhPT1tJiZkKGIsImNvbnN0cnVjdG9yIixtKSxqKGIpLlR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1tLFUmJmQoYixVLGMpO3ZhciBTPW0hPWg7eVtjXT1tLHIoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6UyxzaGFtOiFWfSx5KSwiQllURVNfUEVSX0VMRU1FTlQiaW4gbXx8ZChtLCJCWVRFU19QRVJfRUxFTUVOVCIsbyksIkJZVEVTX1BFUl9FTEVNRU5UImluIGJ8fGQoYiwiQllURVNfUEVSX0VMRU1FTlQiLG8pLEUoYyl9KTp0LmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSw3NTUxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7dC4kcm91dGVyLmJlZm9yZUVhY2goKGZ1bmN0aW9uKG4scixpKXtmLmNhbGwodCxuLHIsaSxlKX0pKSx0LiRyb3V0ZXIuYWZ0ZXJFYWNoKChmdW5jdGlvbihlLG4pe2QuY2FsbCh0LGUsbil9KSl9LGUuZ2V0VGFiQmFyU2Nyb2xsUG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHNbdF19LG4oImM5NzUiKSxuKCIxNGQ5IiksbigiZDgxZCIpLG4oImE0MzQiKSxuKCJlMjVlIiksbigiZTljNCIpLG4oIjdkYjAiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjI2ZTkiKTt2YXIgcj1uKCI1NTlhIik7ZnVuY3Rpb24gaSh0KXstMT09PXRoaXMua2VlcEFsaXZlSW5jbHVkZS5pbmRleE9mKHQpJiZ0aGlzLmtlZXBBbGl2ZUluY2x1ZGUucHVzaCh0KX12YXIgYT1bXTtmdW5jdGlvbiBvKHQpe2lmKCJudW1iZXIiPT09dHlwZW9mIHQpYT10aGlzLmtlZXBBbGl2ZUluY2x1ZGUuc3BsaWNlKC0odC0xKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VJbnQodC5zcGxpdCgiLSIpLnBvcCgpKX0pKTtlbHNle3ZhciBlPXRoaXMua2VlcEFsaXZlSW5jbHVkZS5pbmRleE9mKHQpOy0xIT09ZSYmdGhpcy5rZWVwQWxpdmVJbmNsdWRlLnNwbGljZShlLDEpfX12YXIgcz1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIGModCxlLG4pe2UmJm4mJmUubWV0YS5pc1RhYkJhciYmbi5tZXRhLmlzVGFiQmFyJiZmdW5jdGlvbih0KXtzW3RdPXt4OndpbmRvdy5wYWdlWE9mZnNldCx5OndpbmRvdy5wYWdlWU9mZnNldH19KG4ucGFyYW1zLl9faWRfXyk7Zm9yKHZhciBpPWdldEN1cnJlbnRQYWdlcygpLGE9aS5sZW5ndGgtMTthPj0wO2EtLSl7dmFyIGM9aVthXSx1PWMuJHBhZ2UubWV0YTt1LmlzVGFiQmFyfHwoby5jYWxsKHRoaXMsdS5uYW1lKyItIitjLiRwYWdlLmlkKSwoMCxyLmNhbGxQYWdlSG9vaykoYywib25VbmxvYWQiKSl9fWZ1bmN0aW9uIHUodCl7X191bmlDb25maWcucmVMYXVuY2g9KF9fdW5pQ29uZmlnLnJlTGF1bmNofHwxKSsxO2Zvcih2YXIgZT1nZXRDdXJyZW50UGFnZXMoITApLG49ZS5sZW5ndGgtMTtuPj0wO24tLSkoMCxyLmNhbGxQYWdlSG9vaykoZVtuXSwib25VbmxvYWQiKSxlW25dLiRkZXN0cm95KCk7dGhpcy5rZWVwQWxpdmVJbmNsdWRlPVtdLHM9T2JqZWN0LmNyZWF0ZShudWxsKX12YXIgbD1bXTtmdW5jdGlvbiBmKHQsZSxuLHIpe2w9Z2V0Q3VycmVudFBhZ2VzKCEwKTt2YXIgYT1lLnBhcmFtcy5fX2lkX18scz10LnBhcmFtcy5fX2lkX18sZj10Lm1ldGEubmFtZSsiLSIrcztpZihzPT09YSYmInJlTGF1bmNoIiE9PXQudHlwZSl0LmZ1bGxQYXRoIT09ZS5mdWxsUGF0aD8oaS5jYWxsKHRoaXMsZiksbigpKTpuKCExKTtlbHNlIGlmKHQubWV0YS5pZCYmdC5tZXRhLmlkIT09cyluKHtwYXRoOnQucGF0aCxyZXBsYWNlOiEwfSk7ZWxzZXt2YXIgZD1lLm1ldGEubmFtZSsiLSIrYTtzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOmJyZWFrO2Nhc2UicmVkaXJlY3RUbyI6by5jYWxsKHRoaXMsZCksZS5tZXRhJiZlLm1ldGEuaXNRdWl0JiYodC5tZXRhLmlzUXVpdD0hMCx0Lm1ldGEuaXNFbnRyeT0hIWUubWV0YS5pc0VudHJ5KTticmVhaztjYXNlInN3aXRjaFRhYiI6Yy5jYWxsKHRoaXMscix0LGUpO2JyZWFrO2Nhc2UicmVMYXVuY2giOnUuY2FsbCh0aGlzLGYpLHQubWV0YS5pc1F1aXQ9ITA7YnJlYWs7ZGVmYXVsdDphJiZhPnMmJihvLmNhbGwodGhpcyxkKSx0aGlzLiRyb3V0ZXIuXyRkZWx0YT4xJiZvLmNhbGwodGhpcyx0aGlzLiRyb3V0ZXIuXyRkZWx0YSkpO2JyZWFrfWlmKCJyZUxhdW5jaCIhPT10LnR5cGUmJiJyZWRpcmVjdFRvIiE9PXQudHlwZSYmZS5tZXRhLmlkJiZpLmNhbGwodGhpcyxkKSxpLmNhbGwodGhpcyxmKSx0Lm1ldGEmJnQubWV0YS5uYW1lKXtkb2N1bWVudC5ib2R5LmNsYXNzTmFtZT0idW5pLWJvZHkgIit0Lm1ldGEubmFtZTt2YXIgaD0ibnZ1ZS1kaXItIitfX3VuaUNvbmZpZy5udnVlWyJmbGV4LWRpcmVjdGlvbiJdO3QubWV0YS5pc05WdWU/KGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJudnVlIiwiIiksZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoaCwiIikpOihkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgibnZ1ZSIpLGRvY3VtZW50LmJvZHkucmVtb3ZlQXR0cmlidXRlKGgpKX1uKCl9fWZ1bmN0aW9uIGQoZSxuKXt2YXIgaSxvPW4ucGFyYW1zLl9faWRfXyxzPWUucGFyYW1zLl9faWRfXztmdW5jdGlvbiBjKHQpe2lmKHQpeygwLHIuY2FsbFBhZ2VIb29rKSh0LCJvblVubG9hZCIpO3ZhciBlPWwuaW5kZXhPZih0KTtlPj0wJiZsLnNwbGljZShlLDEpfX1zd2l0Y2goaT1uLm1ldGEuaXNTZXQ/bC5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC4kcGFnZS5tZXRhLnBhZ2VQYXRoPT09bi5tZXRhLnBhZ2VQYXRofSkpOmwuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1vfSkpLGUudHlwZSl7Y2FzZSJuYXZpZ2F0ZVRvIjppJiYoMCxyLmNhbGxQYWdlSG9vaykoaSwib25IaWRlIik7YnJlYWs7Y2FzZSJyZWRpcmVjdFRvIjpjKGkpO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpuLm1ldGEuaXNUYWJCYXImJmkmJigwLHIuY2FsbFBhZ2VIb29rKShpLCJvbkhpZGUiKTticmVhaztjYXNlInJlTGF1bmNoIjpicmVhaztkZWZhdWx0Om8mJm8+cyYmKGMoaSksdGhpcy4kcm91dGVyLl8kZGVsdGE+MSYmYS5yZXZlcnNlKCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bC5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4gZS4kcGFnZS5pZD09PXR9KSk7YyhlKX0pKSk7YnJlYWt9aWYoZGVsZXRlIHRoaXMuJHJvdXRlci5fJGRlbHRhLGEubGVuZ3RoPTAsInJlTGF1bmNoIiE9PWUudHlwZSl7dmFyIHUsZj1nZXRDdXJyZW50UGFnZXMoITApO3U9ZS5tZXRhLmlzU2V0P2YuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UubWV0YS5wYWdlUGF0aD09PWUubWV0YS5wYWdlUGF0aH0pKTpmLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LiRwYWdlLmlkPT09c30pKSx1JiYoc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmVtaXQoIm9uTmF2aWdhdGlvbkJhckNoYW5nZSIsdS4kcGFyZW50LiRwYXJlbnQubmF2aWdhdGlvbkJhciksKDAsci5jYWxsUGFnZUhvb2spKHUsIm9uU2hvdyIpfSksMCksZG9jdW1lbnQudGl0bGU9dS4kcGFyZW50LiRwYXJlbnQubmF2aWdhdGlvbkJhci50aXRsZVRleHQpfX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sNzY2NjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCJhY2Q4IiksbigiMTRkOSIpLG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMjVmMCIpO3ZhciBpPXIobigiNWZlNyIpKSxhPW4oIjlmMDQiKSxvPW4oIjY0ZmUiKSxzPSExO2Z1bmN0aW9uIGModCl7c3x8KHM9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe3QoKSxzPSExfSkpKX1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuKygoMWUzKnQtMWUzKmUpLzFlMykudG9GaXhlZCgxKX1mdW5jdGlvbiBsKHQsZSxuKXt2YXIgcj17aWQ6MCxjYW5jZWxsZWQ6ITF9O3JldHVybiBmdW5jdGlvbiBlKG4scixpLGEpe2lmKCFufHwhbi5jYW5jZWxsZWQpe2kocik7dmFyIG89dC5kb25lKCk7b3x8bi5jYW5jZWxsZWR8fChuLmlkPXJlcXVlc3RBbmltYXRpb25GcmFtZShlLmJpbmQobnVsbCxuLHIsaSxhKSkpLG8mJmEmJmEocil9fShyLHQsZSxuKSx7Y2FuY2VsOmZ1bmN0aW9uKHQpe3QmJnQuaWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQuaWQpLHQmJih0LmNhbmNlbGxlZD0hMCl9LmJpbmQobnVsbCxyKSxtb2RlbDp0fX12YXIgZj17bmFtZToiTW92YWJsZVZpZXciLG1peGluczpbaS5kZWZhdWx0XSxwcm9wczp7ZGlyZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJub25lIn0saW5lcnRpYTp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LG91dE9mQm91bmRzOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0seDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSx5Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjB9LGRhbXBpbmc6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MjB9LGZyaWN0aW9uOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjJ9LGRpc2FibGVkOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sc2NhbGU6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfSxzY2FsZU1pbjp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDouNX0sc2NhbGVNYXg6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MTB9LHNjYWxlVmFsdWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MX0sYW5pbWF0aW9uOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57eFN5bmM6dGhpcy5fZ2V0UHgodGhpcy54KSx5U3luYzp0aGlzLl9nZXRQeCh0aGlzLnkpLHNjYWxlVmFsdWVTeW5jOk51bWJlcih0aGlzLnNjYWxlVmFsdWUpfHwxLHdpZHRoOjAsaGVpZ2h0OjAsbWluWDowLG1pblk6MCxtYXhYOjAsbWF4WTowfX0sY29tcHV0ZWQ6e2RhbXBpbmdOdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5kYW1waW5nKTtyZXR1cm4gaXNOYU4odCk/MjA6dH0sZnJpY3Rpb25OdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5mcmljdGlvbik7cmV0dXJuIGlzTmFOKHQpfHx0PD0wPzI6dH0sc2NhbGVNaW5OdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5zY2FsZU1pbik7cmV0dXJuIGlzTmFOKHQpPy41OnR9LHNjYWxlTWF4TnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMuc2NhbGVNYXgpO3JldHVybiBpc05hTih0KT8xMDp0fSx4TW92ZTpmdW5jdGlvbigpe3JldHVybiJhbGwiPT09dGhpcy5kaXJlY3Rpb258fCJob3Jpem9udGFsIj09PXRoaXMuZGlyZWN0aW9ufSx5TW92ZTpmdW5jdGlvbigpe3JldHVybiJhbGwiPT09dGhpcy5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCI9PT10aGlzLmRpcmVjdGlvbn19LHdhdGNoOnt4OmZ1bmN0aW9uKHQpe3RoaXMueFN5bmM9dGhpcy5fZ2V0UHgodCl9LHhTeW5jOmZ1bmN0aW9uKHQpe3RoaXMuX3NldFgodCl9LHk6ZnVuY3Rpb24odCl7dGhpcy55U3luYz10aGlzLl9nZXRQeCh0KX0seVN5bmM6ZnVuY3Rpb24odCl7dGhpcy5fc2V0WSh0KX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXt0aGlzLl9faGFuZGxlVG91Y2hTdGFydCgpfSxzY2FsZVZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuc2NhbGVWYWx1ZVN5bmM9TnVtYmVyKHQpfHwwfSxzY2FsZVZhbHVlU3luYzpmdW5jdGlvbih0KXt0aGlzLl9zZXRTY2FsZVZhbHVlKHQpfSxzY2FsZU1pbk51bWJlcjpmdW5jdGlvbigpe3RoaXMuX3NldFNjYWxlTWluT3JNYXgoKX0sc2NhbGVNYXhOdW1iZXI6ZnVuY3Rpb24oKXt0aGlzLl9zZXRTY2FsZU1pbk9yTWF4KCl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fb2Zmc2V0PXt4OjAseTowfSx0aGlzLl9zY2FsZU9mZnNldD17eDowLHk6MH0sdGhpcy5fdHJhbnNsYXRlWD0wLHRoaXMuX3RyYW5zbGF0ZVk9MCx0aGlzLl9zY2FsZT0xLHRoaXMuX29sZFNjYWxlPTEsdGhpcy5fU1REPW5ldyBhLlNURCgxLDkqTWF0aC5wb3codGhpcy5kYW1waW5nTnVtYmVyLDIpLzQwLHRoaXMuZGFtcGluZ051bWJlciksdGhpcy5fZnJpY3Rpb249bmV3IGEuRnJpY3Rpb24oMSx0aGlzLmZyaWN0aW9uTnVtYmVyKSx0aGlzLl9kZWNsaW5lWD1uZXcgYS5EZWNsaW5lLHRoaXMuX2RlY2xpbmVZPW5ldyBhLkRlY2xpbmUsdGhpcy5fX3RvdWNoSW5mbz17aGlzdG9yeVg6WzAsMF0saGlzdG9yeVk6WzAsMF0saGlzdG9yeVQ6WzAsMF19fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy50b3VjaHRyYWNrKHRoaXMuJGVsLCJfb25UcmFjayIpLHRoaXMuc2V0UGFyZW50KCksdGhpcy5fZnJpY3Rpb24ucmVjb25maWd1cmUoMSx0aGlzLmZyaWN0aW9uTnVtYmVyKSx0aGlzLl9TVEQucmVjb25maWd1cmUoMSw5Kk1hdGgucG93KHRoaXMuZGFtcGluZ051bWJlciwyKS80MCx0aGlzLmRhbXBpbmdOdW1iZXIpLHRoaXMuJGVsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0iY2VudGVyIiwoMCxvLmluaXRTY3JvbGxCb3VuY2UpKCl9LG1ldGhvZHM6e19nZXRQeDpmdW5jdGlvbih0KXtyZXR1cm4vXGQrW3VyXXB4JC9pLnRlc3QodCk/dW5pLnVweDJweChwYXJzZUZsb2F0KHQpKTpOdW1iZXIodCl8fDB9LF9zZXRYOmZ1bmN0aW9uKHQpe2lmKHRoaXMueE1vdmUpe2lmKHQrdGhpcy5fc2NhbGVPZmZzZXQueD09PXRoaXMuX3RyYW5zbGF0ZVgpcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVg7dGhpcy5fU0ZBJiZ0aGlzLl9TRkEuY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uVG8odCt0aGlzLl9zY2FsZU9mZnNldC54LHRoaXMueVN5bmMrdGhpcy5fc2NhbGVPZmZzZXQueSx0aGlzLl9zY2FsZSl9cmV0dXJuIHR9LF9zZXRZOmZ1bmN0aW9uKHQpe2lmKHRoaXMueU1vdmUpe2lmKHQrdGhpcy5fc2NhbGVPZmZzZXQueT09PXRoaXMuX3RyYW5zbGF0ZVkpcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVk7dGhpcy5fU0ZBJiZ0aGlzLl9TRkEuY2FuY2VsKCksdGhpcy5fYW5pbWF0aW9uVG8odGhpcy54U3luYyt0aGlzLl9zY2FsZU9mZnNldC54LHQrdGhpcy5fc2NhbGVPZmZzZXQueSx0aGlzLl9zY2FsZSl9cmV0dXJuIHR9LF9zZXRTY2FsZU1pbk9yTWF4OmZ1bmN0aW9uKCl7aWYoIXRoaXMuc2NhbGUpcmV0dXJuITE7dGhpcy5fdXBkYXRlU2NhbGUodGhpcy5fc2NhbGUsITApLHRoaXMuX3VwZGF0ZU9sZFNjYWxlKHRoaXMuX3NjYWxlKX0sX3NldFNjYWxlVmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuISF0aGlzLnNjYWxlJiYodD10aGlzLl9hZGp1c3RTY2FsZSh0KSx0aGlzLl91cGRhdGVTY2FsZSh0LCEwKSx0aGlzLl91cGRhdGVPbGRTY2FsZSh0KSx0KX0sX19oYW5kbGVUb3VjaFN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5faXNTY2FsaW5nfHx0aGlzLmRpc2FibGVkfHwoKDAsby5kaXNhYmxlU2Nyb2xsQm91bmNlKSh7ZGlzYWJsZTohMH0pLHRoaXMuX0ZBJiZ0aGlzLl9GQS5jYW5jZWwoKSx0aGlzLl9TRkEmJnRoaXMuX1NGQS5jYW5jZWwoKSx0aGlzLl9fdG91Y2hJbmZvLmhpc3RvcnlYPVswLDBdLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVk9WzAsMF0sdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5VD1bMCwwXSx0aGlzLnhNb3ZlJiYodGhpcy5fX2Jhc2VYPXRoaXMuX3RyYW5zbGF0ZVgpLHRoaXMueU1vdmUmJih0aGlzLl9fYmFzZVk9dGhpcy5fdHJhbnNsYXRlWSksdGhpcy4kZWwuc3R5bGUud2lsbENoYW5nZT0idHJhbnNmb3JtIix0aGlzLl9jaGVja0Nhbk1vdmU9bnVsbCx0aGlzLl9maXJzdE1vdmVEaXJlY3Rpb249bnVsbCx0aGlzLl9pc1RvdWNoaW5nPSEwKX0sX19oYW5kbGVUb3VjaE1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5faXNTY2FsaW5nJiYhdGhpcy5kaXNhYmxlZCYmdGhpcy5faXNUb3VjaGluZyl7dmFyIG49dGhpcy5fdHJhbnNsYXRlWCxyPXRoaXMuX3RyYW5zbGF0ZVk7aWYobnVsbD09PXRoaXMuX2ZpcnN0TW92ZURpcmVjdGlvbiYmKHRoaXMuX2ZpcnN0TW92ZURpcmVjdGlvbj1NYXRoLmFicyh0LmRldGFpbC5keC90LmRldGFpbC5keSk+MT8iaHRvdWNobW92ZSI6InZ0b3VjaG1vdmUiKSx0aGlzLnhNb3ZlJiYobj10LmRldGFpbC5keCt0aGlzLl9fYmFzZVgsdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5WC5zaGlmdCgpLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVgucHVzaChuKSx0aGlzLnlNb3ZlfHxudWxsIT09dGhpcy5fY2hlY2tDYW5Nb3ZlfHwodGhpcy5fY2hlY2tDYW5Nb3ZlPU1hdGguYWJzKHQuZGV0YWlsLmR4L3QuZGV0YWlsLmR5KTwxKSksdGhpcy55TW92ZSYmKHI9dC5kZXRhaWwuZHkrdGhpcy5fX2Jhc2VZLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVkuc2hpZnQoKSx0aGlzLl9fdG91Y2hJbmZvLmhpc3RvcnlZLnB1c2gociksdGhpcy54TW92ZXx8bnVsbCE9PXRoaXMuX2NoZWNrQ2FuTW92ZXx8KHRoaXMuX2NoZWNrQ2FuTW92ZT1NYXRoLmFicyh0LmRldGFpbC5keS90LmRldGFpbC5keCk8MSkpLHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVQuc2hpZnQoKSx0aGlzLl9fdG91Y2hJbmZvLmhpc3RvcnlULnB1c2godC5kZXRhaWwudGltZVN0YW1wKSwhdGhpcy5fY2hlY2tDYW5Nb3ZlKXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGk9InRvdWNoIjtuPHRoaXMubWluWD90aGlzLm91dE9mQm91bmRzPyhpPSJ0b3VjaC1vdXQtb2YtYm91bmRzIixuPXRoaXMubWluWC10aGlzLl9kZWNsaW5lWC54KHRoaXMubWluWC1uKSk6bj10aGlzLm1pblg6bj50aGlzLm1heFgmJih0aGlzLm91dE9mQm91bmRzPyhpPSJ0b3VjaC1vdXQtb2YtYm91bmRzIixuPXRoaXMubWF4WCt0aGlzLl9kZWNsaW5lWC54KG4tdGhpcy5tYXhYKSk6bj10aGlzLm1heFgpLHI8dGhpcy5taW5ZP3RoaXMub3V0T2ZCb3VuZHM/KGk9InRvdWNoLW91dC1vZi1ib3VuZHMiLHI9dGhpcy5taW5ZLXRoaXMuX2RlY2xpbmVZLngodGhpcy5taW5ZLXIpKTpyPXRoaXMubWluWTpyPnRoaXMubWF4WSYmKHRoaXMub3V0T2ZCb3VuZHM/KGk9InRvdWNoLW91dC1vZi1ib3VuZHMiLHI9dGhpcy5tYXhZK3RoaXMuX2RlY2xpbmVZLngoci10aGlzLm1heFkpKTpyPXRoaXMubWF4WSksYygoZnVuY3Rpb24oKXtlLl9zZXRUcmFuc2Zvcm0obixyLGUuX3NjYWxlLGkpfSkpfX19LF9faGFuZGxlVG91Y2hFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9pc1NjYWxpbmcmJiF0aGlzLmRpc2FibGVkJiZ0aGlzLl9pc1RvdWNoaW5nJiYoKDAsby5kaXNhYmxlU2Nyb2xsQm91bmNlKSh7ZGlzYWJsZTohMX0pLHRoaXMuJGVsLnN0eWxlLndpbGxDaGFuZ2U9ImF1dG8iLHRoaXMuX2lzVG91Y2hpbmc9ITEsIXRoaXMuX2NoZWNrQ2FuTW92ZSYmIXRoaXMuX3JldmlzZSgib3V0LW9mLWJvdW5kcyIpJiZ0aGlzLmluZXJ0aWEpKXt2YXIgZT0xZTMqKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVhbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5WFswXSkvKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVRbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5VFswXSksbj0xZTMqKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVlbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5WVswXSkvKHRoaXMuX190b3VjaEluZm8uaGlzdG9yeVRbMV0tdGhpcy5fX3RvdWNoSW5mby5oaXN0b3J5VFswXSk7dGhpcy5fZnJpY3Rpb24uc2V0VihlLG4pLHRoaXMuX2ZyaWN0aW9uLnNldFModGhpcy5fdHJhbnNsYXRlWCx0aGlzLl90cmFuc2xhdGVZKTt2YXIgcj10aGlzLl9mcmljdGlvbi5kZWx0YSgpLngsaT10aGlzLl9mcmljdGlvbi5kZWx0YSgpLnksYT1yK3RoaXMuX3RyYW5zbGF0ZVgscz1pK3RoaXMuX3RyYW5zbGF0ZVk7YTx0aGlzLm1pblg/KGE9dGhpcy5taW5YLHM9dGhpcy5fdHJhbnNsYXRlWSsodGhpcy5taW5YLXRoaXMuX3RyYW5zbGF0ZVgpKmkvcik6YT50aGlzLm1heFgmJihhPXRoaXMubWF4WCxzPXRoaXMuX3RyYW5zbGF0ZVkrKHRoaXMubWF4WC10aGlzLl90cmFuc2xhdGVYKSppL3IpLHM8dGhpcy5taW5ZPyhzPXRoaXMubWluWSxhPXRoaXMuX3RyYW5zbGF0ZVgrKHRoaXMubWluWS10aGlzLl90cmFuc2xhdGVZKSpyL2kpOnM+dGhpcy5tYXhZJiYocz10aGlzLm1heFksYT10aGlzLl90cmFuc2xhdGVYKyh0aGlzLm1heFktdGhpcy5fdHJhbnNsYXRlWSkqci9pKSx0aGlzLl9mcmljdGlvbi5zZXRFbmQoYSxzKSx0aGlzLl9GQT1sKHRoaXMuX2ZyaWN0aW9uLChmdW5jdGlvbigpe3ZhciBlPXQuX2ZyaWN0aW9uLnMoKSxuPWUueCxyPWUueTt0Ll9zZXRUcmFuc2Zvcm0obixyLHQuX3NjYWxlLCJmcmljdGlvbiIpfSksKGZ1bmN0aW9uKCl7dC5fRkEuY2FuY2VsKCl9KSl9fSxfb25UcmFjazpmdW5jdGlvbih0KXtzd2l0Y2godC5kZXRhaWwuc3RhdGUpe2Nhc2Uic3RhcnQiOnRoaXMuX19oYW5kbGVUb3VjaFN0YXJ0KCk7YnJlYWs7Y2FzZSJtb3ZlIjp0aGlzLl9faGFuZGxlVG91Y2hNb3ZlKHQpO2JyZWFrO2Nhc2UiZW5kIjp0aGlzLl9faGFuZGxlVG91Y2hFbmQoKX19LF9nZXRMaW1pdFhZOmZ1bmN0aW9uKHQsZSl7dmFyIG49ITE7cmV0dXJuIHQ+dGhpcy5tYXhYPyh0PXRoaXMubWF4WCxuPSEwKTp0PHRoaXMubWluWCYmKHQ9dGhpcy5taW5YLG49ITApLGU+dGhpcy5tYXhZPyhlPXRoaXMubWF4WSxuPSEwKTplPHRoaXMubWluWSYmKGU9dGhpcy5taW5ZLG49ITApLHt4OnQseTplLG91dE9mQm91bmRzOm59fSxzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtpZih0aGlzLiRwYXJlbnQuX2lzTW91bnRlZCl7dGhpcy5fRkEmJnRoaXMuX0ZBLmNhbmNlbCgpLHRoaXMuX1NGQSYmdGhpcy5fU0ZBLmNhbmNlbCgpO3ZhciB0PXRoaXMuc2NhbGU/dGhpcy5zY2FsZVZhbHVlU3luYzoxO3RoaXMuX3VwZGF0ZU9mZnNldCgpLHRoaXMuX3VwZGF0ZVdIKHQpLHRoaXMuX3VwZGF0ZUJvdW5kYXJ5KCksdGhpcy5fdHJhbnNsYXRlWD10aGlzLnhTeW5jK3RoaXMuX3NjYWxlT2Zmc2V0LngsdGhpcy5fdHJhbnNsYXRlWT10aGlzLnlTeW5jK3RoaXMuX3NjYWxlT2Zmc2V0Lnk7dmFyIGU9dGhpcy5fZ2V0TGltaXRYWSh0aGlzLl90cmFuc2xhdGVYLHRoaXMuX3RyYW5zbGF0ZVkpLG49ZS54LHI9ZS55O3RoaXMuX3NldFRyYW5zZm9ybShuLHIsdCwiIiwhMCksdGhpcy5fdXBkYXRlT2xkU2NhbGUodCl9fSxfdXBkYXRlT2Zmc2V0OmZ1bmN0aW9uKCl7dGhpcy5fb2Zmc2V0Lng9ZnVuY3Rpb24gdChlLG4pe2lmKGU9PT1uKXJldHVybiAwO3ZhciByPWUub2Zmc2V0TGVmdDtyZXR1cm4gZS5vZmZzZXRQYXJlbnQ/cis9dChlLm9mZnNldFBhcmVudCxuKTowfSh0aGlzLiRlbCx0aGlzLiRwYXJlbnQuJGVsKSx0aGlzLl9vZmZzZXQueT1mdW5jdGlvbiB0KGUsbil7aWYoZT09PW4pcmV0dXJuIDA7dmFyIHI9ZS5vZmZzZXRUb3A7cmV0dXJuIGUub2Zmc2V0UGFyZW50P3IrPXQoZS5vZmZzZXRQYXJlbnQsbik6MH0odGhpcy4kZWwsdGhpcy4kcGFyZW50LiRlbCl9LF91cGRhdGVXSDpmdW5jdGlvbih0KXt0PXR8fHRoaXMuX3NjYWxlLHQ9dGhpcy5fYWRqdXN0U2NhbGUodCk7dmFyIGU9dGhpcy4kZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5oZWlnaHQ9ZS5oZWlnaHQvdGhpcy5fc2NhbGUsdGhpcy53aWR0aD1lLndpZHRoL3RoaXMuX3NjYWxlO3ZhciBuPXRoaXMuaGVpZ2h0KnQscj10aGlzLndpZHRoKnQ7dGhpcy5fc2NhbGVPZmZzZXQueD0oci10aGlzLndpZHRoKS8yLHRoaXMuX3NjYWxlT2Zmc2V0Lnk9KG4tdGhpcy5oZWlnaHQpLzJ9LF91cGRhdGVCb3VuZGFyeTpmdW5jdGlvbigpe3ZhciB0PTAtdGhpcy5fb2Zmc2V0LngrdGhpcy5fc2NhbGVPZmZzZXQueCxlPXRoaXMuJHBhcmVudC53aWR0aC10aGlzLndpZHRoLXRoaXMuX29mZnNldC54LXRoaXMuX3NjYWxlT2Zmc2V0Lng7dGhpcy5taW5YPU1hdGgubWluKHQsZSksdGhpcy5tYXhYPU1hdGgubWF4KHQsZSk7dmFyIG49MC10aGlzLl9vZmZzZXQueSt0aGlzLl9zY2FsZU9mZnNldC55LHI9dGhpcy4kcGFyZW50LmhlaWdodC10aGlzLmhlaWdodC10aGlzLl9vZmZzZXQueS10aGlzLl9zY2FsZU9mZnNldC55O3RoaXMubWluWT1NYXRoLm1pbihuLHIpLHRoaXMubWF4WT1NYXRoLm1heChuLHIpfSxfYmVnaW5TY2FsZTpmdW5jdGlvbigpe3RoaXMuX2lzU2NhbGluZz0hMH0sX2VuZFNjYWxlOmZ1bmN0aW9uKCl7dGhpcy5faXNTY2FsaW5nPSExLHRoaXMuX3VwZGF0ZU9sZFNjYWxlKHRoaXMuX3NjYWxlKX0sX3NldFNjYWxlOmZ1bmN0aW9uKHQpe3RoaXMuc2NhbGUmJih0PXRoaXMuX29sZFNjYWxlKnQsdGhpcy5fYmVnaW5TY2FsZSgpLHRoaXMuX3VwZGF0ZVNjYWxlKHQpKX0sX3VwZGF0ZVNjYWxlOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZih0aGlzLnNjYWxlKXt0PXRoaXMuX2FkanVzdFNjYWxlKHQpLHRoaXMuX3VwZGF0ZVdIKHQpLHRoaXMuX3VwZGF0ZUJvdW5kYXJ5KCk7dmFyIHI9dGhpcy5fZ2V0TGltaXRYWSh0aGlzLl90cmFuc2xhdGVYLHRoaXMuX3RyYW5zbGF0ZVkpLGk9ci54LGE9ci55O2U/dGhpcy5fYW5pbWF0aW9uVG8oaSxhLHQsIiIsITAsITApOmMoKGZ1bmN0aW9uKCl7bi5fc2V0VHJhbnNmb3JtKGksYSx0LCIiLCEwLCEwKX0pKX19LF91cGRhdGVPbGRTY2FsZTpmdW5jdGlvbih0KXt0aGlzLl9vbGRTY2FsZT10fSxfYWRqdXN0U2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5tYXgoLjUsdGhpcy5zY2FsZU1pbk51bWJlcix0KSx0PU1hdGgubWluKDEwLHRoaXMuc2NhbGVNYXhOdW1iZXIsdCksdH0sX2FuaW1hdGlvblRvOmZ1bmN0aW9uKHQsZSxuLHIsaSxhKXt2YXIgbz10aGlzO3RoaXMuX0ZBJiZ0aGlzLl9GQS5jYW5jZWwoKSx0aGlzLl9TRkEmJnRoaXMuX1NGQS5jYW5jZWwoKSx0aGlzLnhNb3ZlfHwodD10aGlzLl90cmFuc2xhdGVYKSx0aGlzLnlNb3ZlfHwoZT10aGlzLl90cmFuc2xhdGVZKSx0aGlzLnNjYWxlfHwobj10aGlzLl9zY2FsZSk7dmFyIHM9dGhpcy5fZ2V0TGltaXRYWSh0LGUpO3Q9cy54LGU9cy55LHRoaXMuYW5pbWF0aW9uPyh0aGlzLl9TVEQuX3NwcmluZ1guX3NvbHV0aW9uPW51bGwsdGhpcy5fU1RELl9zcHJpbmdZLl9zb2x1dGlvbj1udWxsLHRoaXMuX1NURC5fc3ByaW5nU2NhbGUuX3NvbHV0aW9uPW51bGwsdGhpcy5fU1RELl9zcHJpbmdYLl9lbmRQb3NpdGlvbj10aGlzLl90cmFuc2xhdGVYLHRoaXMuX1NURC5fc3ByaW5nWS5fZW5kUG9zaXRpb249dGhpcy5fdHJhbnNsYXRlWSx0aGlzLl9TVEQuX3NwcmluZ1NjYWxlLl9lbmRQb3NpdGlvbj10aGlzLl9zY2FsZSx0aGlzLl9TVEQuc2V0RW5kKHQsZSxuLDEpLHRoaXMuX1NGQT1sKHRoaXMuX1NURCwoZnVuY3Rpb24oKXt2YXIgdD1vLl9TVEQueCgpLGU9dC54LG49dC55LHM9dC5zY2FsZTtvLl9zZXRUcmFuc2Zvcm0oZSxuLHMscixpLGEpfSksKGZ1bmN0aW9uKCl7by5fU0ZBLmNhbmNlbCgpfSkpKTp0aGlzLl9zZXRUcmFuc2Zvcm0odCxlLG4scixpLGEpfSxfcmV2aXNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldExpbWl0WFkodGhpcy5fdHJhbnNsYXRlWCx0aGlzLl90cmFuc2xhdGVZKSxuPWUueCxyPWUueSxpPWUub3V0T2ZCb3VuZHM7cmV0dXJuIGkmJnRoaXMuX2FuaW1hdGlvblRvKG4scix0aGlzLl9zY2FsZSx0KSxpfSxfc2V0VHJhbnNmb3JtOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106IiIsaT1hcmd1bWVudHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOnZvaWQgMCxhPWFyZ3VtZW50cy5sZW5ndGg+NT9hcmd1bWVudHNbNV06dm9pZCAwO251bGwhPT10JiYiTmFOIiE9PXQudG9TdHJpbmcoKSYmIm51bWJlciI9PT10eXBlb2YgdHx8KHQ9dGhpcy5fdHJhbnNsYXRlWHx8MCksbnVsbCE9PWUmJiJOYU4iIT09ZS50b1N0cmluZygpJiYibnVtYmVyIj09PXR5cGVvZiBlfHwoZT10aGlzLl90cmFuc2xhdGVZfHwwKSx0PU51bWJlcih0LnRvRml4ZWQoMSkpLGU9TnVtYmVyKGUudG9GaXhlZCgxKSksbj1OdW1iZXIobi50b0ZpeGVkKDEpKSx0aGlzLl90cmFuc2xhdGVYPT09dCYmdGhpcy5fdHJhbnNsYXRlWT09PWV8fGl8fHRoaXMuJHRyaWdnZXIoImNoYW5nZSIse30se3g6dSh0LHRoaXMuX3NjYWxlT2Zmc2V0LngpLHk6dShlLHRoaXMuX3NjYWxlT2Zmc2V0LnkpLHNvdXJjZTpyfSksdGhpcy5zY2FsZXx8KG49dGhpcy5fc2NhbGUpLG49dGhpcy5fYWRqdXN0U2NhbGUobiksbj0rbi50b0ZpeGVkKDMpLGEmJm4hPT10aGlzLl9zY2FsZSYmdGhpcy4kdHJpZ2dlcigic2NhbGUiLHt9LHt4OnQseTplLHNjYWxlOm59KTt2YXIgbz0idHJhbnNsYXRlWCgiK3QrInB4KSB0cmFuc2xhdGVZKCIrZSsicHgpIHRyYW5zbGF0ZVooMHB4KSBzY2FsZSgiK24rIikiO3RoaXMuJGVsLnN0eWxlLnRyYW5zZm9ybT1vLHRoaXMuJGVsLnN0eWxlLndlYmtpdFRyYW5zZm9ybT1vLHRoaXMuX3RyYW5zbGF0ZVg9dCx0aGlzLl90cmFuc2xhdGVZPWUsdGhpcy5fc2NhbGU9bn19fTtlLmRlZmF1bHQ9Zn0sIjc3YTAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjFiMWEiKSxpPW4oIjMxOTMiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCI3N2E3IjpmdW5jdGlvbih0LGUpe3ZhciBuPUFycmF5LHI9TWF0aC5hYnMsaT1NYXRoLnBvdyxhPU1hdGguZmxvb3Isbz1NYXRoLmxvZyxzPU1hdGguTE4yO3QuZXhwb3J0cz17cGFjazpmdW5jdGlvbih0LGUsYyl7dmFyIHUsbCxmLGQ9bihjKSxoPTgqYy1lLTEscD0oMTw8aCktMSx2PXA+PjEsZz0yMz09PWU/aSgyLC0yNCktaSgyLC03Nyk6MCxtPXQ8MHx8MD09PXQmJjEvdDwwPzE6MCxiPTA7dD1yKHQpLHQhPXR8fHQ9PT0xLzA/KGw9dCE9dD8xOjAsdT1wKToodT1hKG8odCkvcyksZj1pKDIsLXUpLHQqZjwxJiYodS0tLGYqPTIpLHQrPXUrdj49MT9nL2Y6ZyppKDIsMS12KSx0KmY+PTImJih1KyssZi89MiksdSt2Pj1wPyhsPTAsdT1wKTp1K3Y+PTE/KGw9KHQqZi0xKSppKDIsZSksdSs9dik6KGw9dCppKDIsdi0xKSppKDIsZSksdT0wKSk7d2hpbGUoZT49OClkW2IrK109MjU1JmwsbC89MjU2LGUtPTg7dT11PDxlfGwsaCs9ZTt3aGlsZShoPjApZFtiKytdPTI1NSZ1LHUvPTI1NixoLT04O3JldHVybiBkWy0tYl18PTEyOCptLGR9LHVucGFjazpmdW5jdGlvbih0LGUpe3ZhciBuLHI9dC5sZW5ndGgsYT04KnItZS0xLG89KDE8PGEpLTEscz1vPj4xLGM9YS03LHU9ci0xLGw9dFt1LS1dLGY9MTI3Jmw7bD4+PTc7d2hpbGUoYz4wKWY9MjU2KmYrdFt1LS1dLGMtPTg7bj1mJigxPDwtYyktMSxmPj49LWMsYys9ZTt3aGlsZShjPjApbj0yNTYqbit0W3UtLV0sYy09ODtpZigwPT09ZilmPTEtcztlbHNle2lmKGY9PT1vKXJldHVybiBuP05hTjpsPy0xLzA6MS8wO24rPWkoMixlKSxmLT1zfXJldHVybihsPy0xOjEpKm4qaSgyLGYtZSl9fX0sNzgzOTpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdfSwiNzg1YSI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImNjMTIiKSxpPXIoInNwYW4iKS5jbGFzc0xpc3QsYT1pJiZpLmNvbnN0cnVjdG9yJiZpLmNvbnN0cnVjdG9yLnByb3RvdHlwZTt0LmV4cG9ydHM9YT09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOmF9LDc4OTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZjBjYyIpLGk9bigiMTg5NiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjc5YWUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImM2YzIiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCI3OWZlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDtlLmRlZmF1bHQ9e319LCI3YTgyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiODNhYiIpLGE9bigiOWJmMiIpLmY7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5kZWZpbmVQcm9wZXJ0eSE9PWEsc2hhbTohaX0se2RlZmluZVByb3BlcnR5OmF9KX0sIjdhYmIiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCI3YTgyIiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiOTlhZiIpO3ZhciBpPW4oImY0ZjAiKSxhPW4oIjJjYTMiKSxvPXIobigiYWY5MCIpKSxzPW4oIjYyZDkiKTtmdW5jdGlvbiBjKCl7dC5wdWJsaXNoSGFuZGxlcigib25QYWdlUmVhZHkiLHt9LHRoaXMuJHBhZ2UuaWQpfXZhciB1PXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtlLnJvdXRlczsoMCxhLmluaXRFdmVudHMpKCk7dmFyIG49ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC50YXJnZXQ7biYmbiE9PWU7bj1uLnBhcmVudE5vZGUpaWYobi50YWdOYW1lJiYwPT09bi50YWdOYW1lLmluZGV4T2YoIlVOSS0iKSlicmVhaztyZXR1cm4gbn07dC5wcm90b3R5cGUuJGhhbmRsZUV2ZW50PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBFdmVudCl7dmFyIGU9bih0LHRoaXMuJGVsKTt0PWEucHJvY2Vzc0V2ZW50LmNhbGwodGhpcyx0LnR5cGUsdCx7fSxlfHx0LnRhcmdldCx0LmN1cnJlbnRUYXJnZXQpfXJldHVybiB0fSx0LnByb3RvdHlwZS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcj1mdW5jdGlvbih0LGUpe3JldHVybigwLHMuY3JlYXRlQ29tcG9uZW50RGVzY3JpcHRvcikodHx8dGhpcyxlKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCIkb3duZXJJbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRnZXRDb21wb25lbnREZXNjcmlwdG9yKHRoaXMpfX0pLHQucHJvdG90eXBlLiRoYW5kbGVXeHNFdmVudD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgRXZlbnQpe3ZhciBlPXQuY3VycmVudFRhcmdldCxyPWUmJihlLl9fdnVlX198fGUpLGk9ZSYmci4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvciYmci4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcihyLCExKSxvPXQ7dD1hLnByb2Nlc3NFdmVudC5jYWxsKHRoaXMsby50eXBlLG8se30sbihvLHRoaXMuJGVsKXx8by50YXJnZXQsby5jdXJyZW50VGFyZ2V0KSx0Lmluc3RhbmNlPWksdC5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBvLnByZXZlbnREZWZhdWx0KCl9LHQuc3RvcFByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG8uc3RvcFByb3BhZ2F0aW9uKCl9fXJldHVybiB0fSx0Lm1peGluKHtiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy4kb3B0aW9ucyxuPWUud3hzO24mJk9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09bltlXX0pKSxlLmJlaGF2aW9ycyYmZS5iZWhhdmlvcnMubGVuZ3RoJiYoMCxvLmRlZmF1bHQpKGUsdGhpcyksKDAsaS5pc1BhZ2UpKHRoaXMpJiYoZS5tb3VudGVkPWUubW91bnRlZD9bXS5jb25jYXQoYyxlLm1vdW50ZWQpOltjXSl9fSl9fTtlLmRlZmF1bHQ9dX0pLmNhbGwodGhpcyxuKCJjNWMzIikpfSwiN2IwYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjFkODAiKSxpPU9iamVjdDt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkocih0KSl9fSwiN2JiZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOGE5ZCIpLGk9bigiNmNhNyIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sIjdjMzciOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI2MDVkIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtpZihyKXJldHVybiBGdW5jdGlvbigncmV0dXJuIHJlcXVpcmUoIicrdCsnIiknKSgpfWNhdGNoKGUpe319fSwiN2M3MyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByLGk9bigiODI1YSIpLGE9bigiMzdlOCIpLG89bigiNzgzOSIpLHM9bigiZDAxMiIpLGM9bigiMWJlNCIpLHU9bigiY2MxMiIpLGw9bigiZjc3MiIpLGY9bCgiSUVfUFJPVE8iKSxkPWZ1bmN0aW9uKCl7fSxoPWZ1bmN0aW9uKHQpe3JldHVybiI8c2NyaXB0PiIrdCsiPFwvc2NyaXB0PiJ9LHA9ZnVuY3Rpb24odCl7dC53cml0ZShoKCIiKSksdC5jbG9zZSgpO3ZhciBlPXQucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gdD1udWxsLGV9LHY9ZnVuY3Rpb24oKXt0cnl7cj1uZXcgQWN0aXZlWE9iamVjdCgiaHRtbGZpbGUiKX1jYXRjaChlKXt9dj0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmRvbWFpbiYmcj9wKHIpOmZ1bmN0aW9uKCl7dmFyIHQsZT11KCJpZnJhbWUiKTtyZXR1cm4gZS5zdHlsZS5kaXNwbGF5PSJub25lIixjLmFwcGVuZENoaWxkKGUpLGUuc3JjPVN0cmluZygiamF2YXNjcmlwdDoiKSx0PWUuY29udGVudFdpbmRvdy5kb2N1bWVudCx0Lm9wZW4oKSx0LndyaXRlKGgoImRvY3VtZW50LkY9T2JqZWN0IikpLHQuY2xvc2UoKSx0LkZ9KCk6cChyKTt2YXIgdD1vLmxlbmd0aDt3aGlsZSh0LS0pZGVsZXRlIHZbInByb3RvdHlwZSJdW29bdF1dO3JldHVybiB2KCl9O3NbZl09ITAsdC5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQsZSl7dmFyIG47cmV0dXJuIG51bGwhPT10PyhkWyJwcm90b3R5cGUiXT1pKHQpLG49bmV3IGQsZFsicHJvdG90eXBlIl09bnVsbCxuW2ZdPXQpOm49digpLHZvaWQgMD09PWU/bjphLmYobixlKX19LCI3ZDJjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wYWdlU2Nyb2xsVG89dm9pZCAwLG4oImE5ZTMiKTt2YXIgcj17c2Nyb2xsVG9wOnt0eXBlOk51bWJlcn0sZHVyYXRpb246e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe2UuZHVyYXRpb249TWF0aC5tYXgoMCx0KX19fTtlLnBhZ2VTY3JvbGxUbz1yfSwiN2RiMCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJiNzI3IikuZmluZCxhPW4oIjQ0ZDIiKSxvPSEwOyJmaW5kImluW10mJkFycmF5KDEpWyJmaW5kIl0oKGZ1bmN0aW9uKCl7bz0hMX0pKSxyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6b30se2ZpbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxhKCJmaW5kIil9LCI3ZGI0IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5jcmVhdGVTZWxlY3RvclF1ZXJ5PWZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIG5ldyB2KHQpO3JldHVybiBuZXcgdigoMCxzLmdldEN1cnJlbnRQYWdlVm0pKCJjcmVhdGVTZWxlY3RvclF1ZXJ5IikpfSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjE0ZDkiKTt2YXIgaT1yKG4oImQ0ZWMiKSksYT1yKG4oImJlZTIiKSksbz1uKCJkYjZhIikscz1uKCIyNDEyIiksYz1uKCI4OTU5IiksdT1uKCI0OWI0IiksbD1uKCIzYmVhIiksZj1uKCIyMzk4IiksZD17Y2FudmFzOmMuQ2FudmFzQ29udGV4dCxtYXA6dS5NYXBDb250ZXh0LHZpZGVvOmwuVmlkZW9Db250ZXh0LGVkaXRvcjpmLkVkaXRvckNvbnRleHR9O2Z1bmN0aW9uIGgodCl7aWYodCYmdC5jb250ZXh0KXt2YXIgZT10LmNvbnRleHQsbj1lLmlkLHI9ZS5uYW1lLGk9ZS5wYWdlLGE9ZFtyXTt0LmNvbnRleHQ9YSYmbmV3IGEobixpKX19dmFyIHA9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixyLGEpeygwLGkuZGVmYXVsdCkodGhpcyx0KSx0aGlzLl9zZWxlY3RvclF1ZXJ5PWUsdGhpcy5fY29tcG9uZW50PW4sdGhpcy5fc2VsZWN0b3I9cix0aGlzLl9zaW5nbGU9YX1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImJvdW5kaW5nQ2xpZW50UmVjdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NlbGVjdG9yUXVlcnkuX3B1c2godGhpcy5fc2VsZWN0b3IsdGhpcy5fY29tcG9uZW50LHRoaXMuX3NpbmdsZSx7aWQ6ITAsZGF0YXNldDohMCxyZWN0OiEwLHNpemU6ITB9LHQpLHRoaXMuX3NlbGVjdG9yUXVlcnl9fSx7a2V5OiJmaWVsZHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3NlbGVjdG9yUXVlcnkuX3B1c2godGhpcy5fc2VsZWN0b3IsdGhpcy5fY29tcG9uZW50LHRoaXMuX3NpbmdsZSx0LGUpLHRoaXMuX3NlbGVjdG9yUXVlcnl9fSx7a2V5OiJzY3JvbGxPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9zZWxlY3RvclF1ZXJ5Ll9wdXNoKHRoaXMuX3NlbGVjdG9yLHRoaXMuX2NvbXBvbmVudCx0aGlzLl9zaW5nbGUse2lkOiEwLGRhdGFzZXQ6ITAsc2Nyb2xsT2Zmc2V0OiEwfSx0KSx0aGlzLl9zZWxlY3RvclF1ZXJ5fX0se2tleToiY29udGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NlbGVjdG9yUXVlcnkuX3B1c2godGhpcy5fc2VsZWN0b3IsdGhpcy5fY29tcG9uZW50LHRoaXMuX3NpbmdsZSx7Y29udGV4dDohMH0sdCksdGhpcy5fc2VsZWN0b3JRdWVyeX19XSksdH0oKSx2PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXsoMCxpLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5fcGFnZT1lLHRoaXMuX3F1ZXVlPVtdLHRoaXMuX3F1ZXVlQ2I9W10sdGhpcy5fbm9kZXNSZWY9bnVsbH1yZXR1cm4oMCxhLmRlZmF1bHQpKHQsW3trZXk6ImV4ZWMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuKDAscy5pbnZva2VNZXRob2QpKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIsdGhpcy5fcGFnZSx0aGlzLl9xdWV1ZSwoZnVuY3Rpb24obil7dmFyIHI9ZS5fcXVldWVDYjtuLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7QXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goaCk6aCh0KTt2YXIgaT1yW25dOygwLG8uaXNGbikoaSkmJmkuY2FsbChlLHQpfSkpLCgwLG8uaXNGbikodCkmJnQuY2FsbChlLG4pfSkpLHRoaXMuX25vZGVzUmVmfX0se2tleToiaW4iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jb21wb25lbnQ9dC5fJGlkfHx0LHRoaXN9fSx7a2V5OiJzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ub2Rlc1JlZj1uZXcgcCh0aGlzLHRoaXMuX2NvbXBvbmVudCx0LCEwKX19LHtrZXk6InNlbGVjdEFsbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25vZGVzUmVmPW5ldyBwKHRoaXMsdGhpcy5fY29tcG9uZW50LHQsITEpfX0se2tleToic2VsZWN0Vmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25vZGVzUmVmPW5ldyBwKHRoaXMsMCwiIiwhMCl9fSx7a2V5OiJfcHVzaCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4scixpKXt0aGlzLl9xdWV1ZS5wdXNoKHtjb21wb25lbnQ6ZSxzZWxlY3Rvcjp0LHNpbmdsZTpuLGZpZWxkczpyfSksdGhpcy5fcXVldWVDYi5wdXNoKGkpfX1dKSx0fSgpfSwiN2UxMiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oImQwMzkiKSxhPW4oImUzMzAiKSxvPW4oIjU3N2UiKSxzPW4oIjU4YTgiKS50cmltLGM9bigiNTg5OSIpLHU9YSgiIi5jaGFyQXQpLGw9ci5wYXJzZUZsb2F0LGY9ci5TeW1ib2wsZD1mJiZmLml0ZXJhdG9yLGg9MS9sKGMrIi0wIikhPT0tMS8wfHxkJiYhaSgoZnVuY3Rpb24oKXtsKE9iamVjdChkKSl9KSk7dC5leHBvcnRzPWg/ZnVuY3Rpb24odCl7dmFyIGU9cyhvKHQpKSxuPWwoZSk7cmV0dXJuIDA9PT1uJiYiLSI9PXUoZSwwKT8tMDpufTpsfSwiN2UzNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCI1NTMwIikpO24oImE5ZTMiKSxuKCIxNGQ5IiksbigiYWMxZiIpLG4oIjAwYjQiKSxuKCI1MzE5IiksbigiYWNkOCIpLG4oImM5NzUiKSxuKCJkM2I3IiksbigiMTU5YiIpO3ZhciBhPXIobigiNWZlNyIpKSxvPW4oImRiNmEiKSxzPXtuYW1lOiJTd2lwZXIiLG1peGluczpbYS5kZWZhdWx0XSxwcm9wczp7aW5kaWNhdG9yRG90czp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHZlcnRpY2FsOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sYXV0b3BsYXk6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfSxjaXJjdWxhcjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LGludGVydmFsOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjVlM30sZHVyYXRpb246e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NTAwfSxjdXJyZW50Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjB9LGluZGljYXRvckNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxpbmRpY2F0b3JBY3RpdmVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0scHJldmlvdXNNYXJnaW46e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LG5leHRNYXJnaW46e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGN1cnJlbnRJdGVtSWQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHNraXBIaWRkZW5JdGVtTGF5b3V0Ont0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sZGlzcGxheU11bHRpcGxlSXRlbXM6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6MX0sZGlzYWJsZVRvdWNoOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sbmF2aWdhdGlvbjp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LG5hdmlnYXRpb25Db2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LG5hdmlnYXRpb25BY3RpdmVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoicmdiYSg1MywgNTMsIDUzLCAwLjYpIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudFN5bmM6TWF0aC5yb3VuZCh0aGlzLmN1cnJlbnQpfHwwLGN1cnJlbnRJdGVtSWRTeW5jOnRoaXMuY3VycmVudEl0ZW1JZHx8IiIsdXNlclRyYWNraW5nOiExLGN1cnJlbnRDaGFuZ2VTb3VyY2U6IiIsaXRlbXM6W10saXNOYXZpZ2F0aW9uQXV0bzohMSxoaWRlTmF2aWdhdGlvbjohMSxwcmV2RGlzYWJsZWQ6ITEsbmV4dERpc2FibGVkOiExfX0sY29tcHV0ZWQ6e2ludGVydmFsTnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMuaW50ZXJ2YWwpO3JldHVybiBpc05hTih0KT81ZTM6dH0sZHVyYXRpb25OdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy5kdXJhdGlvbik7cmV0dXJuIGlzTmFOKHQpPzUwMDp0fSxkaXNwbGF5TXVsdGlwbGVJdGVtc051bWJlcjpmdW5jdGlvbigpe3ZhciB0PU1hdGgucm91bmQodGhpcy5kaXNwbGF5TXVsdGlwbGVJdGVtcyk7cmV0dXJuIGlzTmFOKHQpPzE6dH0sc2xpZGVzU3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4odGhpcy5uZXh0TWFyZ2lufHx0aGlzLnByZXZpb3VzTWFyZ2luKSYmKHQ9dGhpcy52ZXJ0aWNhbD97bGVmdDowLHJpZ2h0OjAsdG9wOnRoaXMuX3VweDJweCh0aGlzLnByZXZpb3VzTWFyZ2luKSxib3R0b206dGhpcy5fdXB4MnB4KHRoaXMubmV4dE1hcmdpbil9Ont0b3A6MCxib3R0b206MCxsZWZ0OnRoaXMuX3VweDJweCh0aGlzLnByZXZpb3VzTWFyZ2luKSxyaWdodDp0aGlzLl91cHgycHgodGhpcy5uZXh0TWFyZ2luKX0pLHR9LHNsaWRlRnJhbWVTdHlsZTpmdW5jdGlvbigpe3ZhciB0PU1hdGguYWJzKDEwMC90aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyKSsiJSI7cmV0dXJue3dpZHRoOnRoaXMudmVydGljYWw/IjEwMCUiOnQsaGVpZ2h0OnRoaXMudmVydGljYWw/dDoiMTAwJSJ9fSxzd2lwZXJFbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoPnRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXJ9LGNpcmN1bGFyRW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNpcmN1bGFyJiZ0aGlzLnN3aXBlckVuYWJsZWR9fSx3YXRjaDp7dmVydGljYWw6ZnVuY3Rpb24oKXt0aGlzLl9yZXNldExheW91dCgpfSxjaXJjdWxhcjpmdW5jdGlvbigpe3RoaXMuX3Jlc2V0TGF5b3V0KCl9LGludGVydmFsTnVtYmVyOmZ1bmN0aW9uKHQpe3RoaXMuX3RpbWVyJiYodGhpcy5fY2FuY2VsU2NoZWR1bGUoKSx0aGlzLl9zY2hlZHVsZUF1dG9wbGF5KCkpfSxjdXJyZW50OmZ1bmN0aW9uKHQpe3RoaXMuX2N1cnJlbnRDaGVjaygpfSxjdXJyZW50U3luYzpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnJlbnRDaGFuZ2VkKHQsZSksdGhpcy4kZW1pdCgidXBkYXRlOmN1cnJlbnQiLHQpLHRoaXMuX3NldE5hdmlnYXRpb25TdGF0ZSgpfSxjdXJyZW50SXRlbUlkOmZ1bmN0aW9uKHQpe3RoaXMuX2N1cnJlbnRDaGVjaygpfSxjdXJyZW50SXRlbUlkU3luYzpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KCJ1cGRhdGU6Y3VycmVudEl0ZW1JZCIsdCl9LGRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyOmZ1bmN0aW9uKCl7dGhpcy5fcmVzZXRMYXlvdXQoKX0sbmF2aWdhdGlvbjp7aW1tZWRpYXRlOiEwLGhhbmRsZXI6ZnVuY3Rpb24odCl7dGhpcy5pc05hdmlnYXRpb25BdXRvPSJhdXRvIj09PXQsdGhpcy5oaWRlTmF2aWdhdGlvbj0hMCE9PXR8fHRoaXMuaXNOYXZpZ2F0aW9uQXV0byx0aGlzLl9uYXZpZ2F0aW9uU3dpcGVyQWRkTW91c2VFdmVudCgpfX0saXRlbXM6ZnVuY3Rpb24oKXt0aGlzLl9zZXROYXZpZ2F0aW9uU3RhdGUoKX0sc3dpcGVyRW5hYmxlZDpmdW5jdGlvbih0KXt0fHwodGhpcy5wcmV2RGlzYWJsZWQ9ITAsdGhpcy5uZXh0RGlzYWJsZWQ9ITAsdGhpcy5pc05hdmlnYXRpb25BdXRvJiYodGhpcy5oaWRlTmF2aWdhdGlvbj0hMCkpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuX2ludmFsaWQ9ITAsdGhpcy5fdmlld3BvcnRQb3NpdGlvbj0wLHRoaXMuX3ZpZXdwb3J0TW92ZVJhdGlvPTEsdGhpcy5fYW5pbWF0aW5nPW51bGwsdGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9uPSExLHRoaXMuX3VzZXJEaXJlY3Rpb25DaGVja2VkPSExLHRoaXMuX2NvbnRlbnRUcmFja1ZpZXdwb3J0PTAsdGhpcy5fY29udGVudFRyYWNrU3BlZWQ9MCx0aGlzLl9jb250ZW50VHJhY2tUPTB9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2N1cnJlbnRDaGVjaygpLHRoaXMudG91Y2h0cmFjayh0aGlzLiRyZWZzLnNsaWRlc1dyYXBwZXIsIl9oYW5kbGVDb250ZW50VHJhY2siLCEwKSx0aGlzLl9yZXNldExheW91dCgpLHRoaXMuJHdhdGNoKChmdW5jdGlvbigpe3JldHVybiB0LmF1dG9wbGF5JiYhdC51c2VyVHJhY2tpbmd9KSx0aGlzLl9pbmludEF1dG9wbGF5KSx0aGlzLl9pbmludEF1dG9wbGF5KHRoaXMuYXV0b3BsYXkmJiF0aGlzLnVzZXJUcmFja2luZyksdGhpcy4kd2F0Y2goIml0ZW1zLmxlbmd0aCIsdGhpcy5fcmVzZXRMYXlvdXQpLHRoaXMuX25hdmlnYXRpb25Td2lwZXJBZGRNb3VzZUV2ZW50KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9jYW5jZWxTY2hlZHVsZSgpLGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbkZyYW1lKX0sbWV0aG9kczp7X2luaW50QXV0b3BsYXk6ZnVuY3Rpb24odCl7dD90aGlzLl9zY2hlZHVsZUF1dG9wbGF5KCk6dGhpcy5fY2FuY2VsU2NoZWR1bGUoKX0sX2N1cnJlbnRDaGVjazpmdW5jdGlvbigpe3ZhciB0PS0xO2lmKHRoaXMuY3VycmVudEl0ZW1JZClmb3IodmFyIGU9MCxuPXRoaXMuaXRlbXM7ZTxuLmxlbmd0aDtlKyspe3ZhciByPW5bZV0uY29tcG9uZW50SW5zdGFuY2U7aWYociYmci5pdGVtSWQ9PT10aGlzLmN1cnJlbnRJdGVtSWQpe3Q9ZTticmVha319dDwwJiYodD1NYXRoLnJvdW5kKHRoaXMuY3VycmVudCl8fDApLHQ9dDwwPzA6dCx0aGlzLmN1cnJlbnRTeW5jIT09dCYmKHRoaXMuY3VycmVudENoYW5nZVNvdXJjZT0iIix0aGlzLmN1cnJlbnRTeW5jPXQpfSxfaXRlbVJlYWR5OmZ1bmN0aW9uKHQsZSl7dC5jb21wb25lbnRJbnN0YW5jZSYmdC5jb21wb25lbnRJbnN0YW5jZS5faXNNb3VudGVkP2UoKToodC5fY2FsbGJhY2tzPXQuX2NhbGxiYWNrc3x8W10sdC5fY2FsbGJhY2tzLnB1c2goZSkpfSxfY3VycmVudENoYW5nZWQ6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9dGhpcy5jdXJyZW50Q2hhbmdlU291cmNlO2lmKHRoaXMuY3VycmVudENoYW5nZVNvdXJjZT0iIiwhcil7dmFyIGk9dGhpcy5pdGVtcy5sZW5ndGg7dGhpcy5fYW5pbWF0ZVZpZXdwb3J0KHQsIiIsdGhpcy5jaXJjdWxhckVuYWJsZWQmJmUrKGktdCklaT5pLzI/MTowKX12YXIgYT10aGlzLml0ZW1zW3RdO2EmJnRoaXMuX2l0ZW1SZWFkeShhLChmdW5jdGlvbigpe3ZhciB0PW4uY3VycmVudEl0ZW1JZFN5bmM9YS5jb21wb25lbnRJbnN0YW5jZS5pdGVtSWR8fCIiO24uJHRyaWdnZXIoImNoYW5nZSIse30se2N1cnJlbnQ6bi5jdXJyZW50U3luYyxjdXJyZW50SXRlbUlkOnQsc291cmNlOnJ9KX0pKX0sX3NjaGVkdWxlQXV0b3BsYXk6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2NhbmNlbFNjaGVkdWxlKCksIXRoaXMuX2lzTW91bnRlZHx8dGhpcy5faW52YWxpZHx8dGhpcy5pdGVtcy5sZW5ndGg8PXRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXJ8fCh0aGlzLl90aW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbiBlKCl7dC5fdGltZXI9bnVsbCx0LmN1cnJlbnRDaGFuZ2VTb3VyY2U9ImF1dG9wbGF5Iix0LmNpcmN1bGFyRW5hYmxlZD90LmN1cnJlbnRTeW5jPXQuX25vcm1hbGl6ZUN1cnJlbnRWYWx1ZSh0LmN1cnJlbnRTeW5jKzEpOnQuY3VycmVudFN5bmM9dC5jdXJyZW50U3luYyt0LmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyPHQuaXRlbXMubGVuZ3RoP3QuY3VycmVudFN5bmMrMTowLHQuX2FuaW1hdGVWaWV3cG9ydCh0LmN1cnJlbnRTeW5jLCJhdXRvcGxheSIsdC5jaXJjdWxhckVuYWJsZWQ/MTowKSx0Ll90aW1lcj1zZXRUaW1lb3V0KGUsdC5pbnRlcnZhbE51bWJlcil9KSx0aGlzLmludGVydmFsTnVtYmVyKSl9LF9jYW5jZWxTY2hlZHVsZTpmdW5jdGlvbigpe3RoaXMuX3RpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSx0aGlzLl90aW1lcj1udWxsKX0sX25vcm1hbGl6ZUN1cnJlbnRWYWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLml0ZW1zLmxlbmd0aDtpZighZSlyZXR1cm4tMTt2YXIgbj0oTWF0aC5yb3VuZCh0KSVlK2UpJWU7aWYodGhpcy5jaXJjdWxhckVuYWJsZWQpe2lmKGU8PXRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXIpcmV0dXJuIDB9ZWxzZSBpZihuPmUtdGhpcy5kaXNwbGF5TXVsdGlwbGVJdGVtc051bWJlcilyZXR1cm4gZS10aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyO3JldHVybiBufSxfdXB4MnB4OmZ1bmN0aW9uKHQpe3JldHVybi9cZCtbdXJdcHgkL2kudGVzdCh0KSYmdC5yZXBsYWNlKC9cZCtbdXJdcHgkL2ksKGZ1bmN0aW9uKHQpe3JldHVybiIiLmNvbmNhdCh1bmkudXB4MnB4KHBhcnNlRmxvYXQodCkpLCJweCIpfSkpLHR8fCIifSxfcmVzZXRMYXlvdXQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9pc01vdW50ZWQpe3RoaXMuX2NhbmNlbFNjaGVkdWxlKCksdGhpcy5fZW5kVmlld3BvcnRBbmltYXRpb24oKTtmb3IodmFyIHQ9dGhpcy5pdGVtcyxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5fdXBkYXRlSXRlbVBvcyhlLGUpO2lmKHRoaXMuX3ZpZXdwb3J0TW92ZVJhdGlvPTEsMT09PXRoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXImJnQubGVuZ3RoKXt2YXIgbj10WzBdLmNvbXBvbmVudEluc3RhbmNlLiRlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPXRoaXMuJHJlZnMuc2xpZGVGcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLl92aWV3cG9ydE1vdmVSYXRpbz1uLndpZHRoL3Iud2lkdGgsdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW8+MCYmdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW88MXx8KHRoaXMuX3ZpZXdwb3J0TW92ZVJhdGlvPTEpfXZhciBpPXRoaXMuX3ZpZXdwb3J0UG9zaXRpb247dGhpcy5fdmlld3BvcnRQb3NpdGlvbj0tMjt2YXIgYT10aGlzLmN1cnJlbnRTeW5jO2E+PTA/KHRoaXMuX2ludmFsaWQ9ITEsdGhpcy51c2VyVHJhY2tpbmc/KHRoaXMuX3VwZGF0ZVZpZXdwb3J0KGkrYS10aGlzLl9jb250ZW50VHJhY2tWaWV3cG9ydCksdGhpcy5fY29udGVudFRyYWNrVmlld3BvcnQ9YSk6KHRoaXMuX3VwZGF0ZVZpZXdwb3J0KGEpLHRoaXMuYXV0b3BsYXkmJnRoaXMuX3NjaGVkdWxlQXV0b3BsYXkoKSkpOih0aGlzLl9pbnZhbGlkPSEwLHRoaXMuX3VwZGF0ZVZpZXdwb3J0KC10aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyLTEpKX19LF9jaGVja0NpcmN1bGFyTGF5b3V0OmZ1bmN0aW9uKHQpe2lmKCF0aGlzLl9pbnZhbGlkKWZvcih2YXIgZT10aGlzLml0ZW1zLG49ZS5sZW5ndGgscj10K3RoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXIsaT0wO2k8bjtpKyspe3ZhciBhPWVbaV0sbz1hLl9wb3NpdGlvbixzPU1hdGguZmxvb3IodC9uKSpuK2ksYz1zK24sdT1zLW4sbD1NYXRoLm1heCh0LShzKzEpLHMtciwwKSxmPU1hdGgubWF4KHQtKGMrMSksYy1yLDApLGQ9TWF0aC5tYXgodC0odSsxKSx1LXIsMCksaD1NYXRoLm1pbihsLGYsZCkscD1bcyxjLHVdW1tsLGYsZF0uaW5kZXhPZihoKV07byE9PXAmJnRoaXMuX3VwZGF0ZUl0ZW1Qb3MoaSxwKX19LF91cGRhdGVJdGVtUG9zOmZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy52ZXJ0aWNhbD8iMCI6MTAwKmUrIiUiLHI9dGhpcy52ZXJ0aWNhbD8xMDAqZSsiJSI6IjAiLGk9InRyYW5zbGF0ZSgiK24rIiwgIityKyIpIHRyYW5zbGF0ZVooMCkiLGE9dGhpcy5pdGVtc1t0XTt0aGlzLl9pdGVtUmVhZHkoYSwoZnVuY3Rpb24oKXt2YXIgdD1hLmNvbXBvbmVudEluc3RhbmNlLiRlbDt0LnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdPWksdC5zdHlsZS50cmFuc2Zvcm09aSx0Ll9wb3NpdGlvbj1lfSkpfSxfdXBkYXRlVmlld3BvcnQ6ZnVuY3Rpb24odCl7TWF0aC5mbG9vcigyKnRoaXMuX3ZpZXdwb3J0UG9zaXRpb24pPT09TWF0aC5mbG9vcigyKnQpJiZNYXRoLmNlaWwoMip0aGlzLl92aWV3cG9ydFBvc2l0aW9uKT09PU1hdGguY2VpbCgyKnQpfHx0aGlzLmNpcmN1bGFyRW5hYmxlZCYmdGhpcy5fY2hlY2tDaXJjdWxhckxheW91dCh0KTt2YXIgZT10aGlzLnZlcnRpY2FsPyIwIjoxMDAqLXQqdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW8rIiUiLG49dGhpcy52ZXJ0aWNhbD8xMDAqLXQqdGhpcy5fdmlld3BvcnRNb3ZlUmF0aW8rIiUiOiIwIixyPSJ0cmFuc2xhdGUoIitlKyIsICIrbisiKSB0cmFuc2xhdGVaKDApIixpPXRoaXMuJHJlZnMuc2xpZGVGcmFtZTtpZihpJiYoaS5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXT1yLGkuc3R5bGUudHJhbnNmb3JtPXIpLHRoaXMuX3ZpZXdwb3J0UG9zaXRpb249dCwhdGhpcy5fdHJhbnNpdGlvblN0YXJ0KXtpZih0JTE9PT0wKXJldHVybjt0aGlzLl90cmFuc2l0aW9uU3RhcnQ9dH10LT1NYXRoLmZsb29yKHRoaXMuX3RyYW5zaXRpb25TdGFydCksdDw9LSh0aGlzLml0ZW1zLmxlbmd0aC0xKT90Kz10aGlzLml0ZW1zLmxlbmd0aDp0Pj10aGlzLml0ZW1zLmxlbmd0aCYmKHQtPXRoaXMuaXRlbXMubGVuZ3RoKSx0PXRoaXMuX3RyYW5zaXRpb25TdGFydCUxPi41fHx0aGlzLl90cmFuc2l0aW9uU3RhcnQ8MD90LTE6dCx0aGlzLiR0cmlnZ2VyKCJ0cmFuc2l0aW9uIix7fSx7ZHg6dGhpcy52ZXJ0aWNhbD8wOnQqaS5vZmZzZXRXaWR0aCxkeTp0aGlzLnZlcnRpY2FsP3QqaS5vZmZzZXRIZWlnaHQ6MH0pfSxfYW5pbWF0ZUZyYW1lRnVuY1Byb3RvOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLl9hbmltYXRpbmcpe3ZhciBlPXRoaXMuX2FuaW1hdGluZyxuPWUudG9Qb3Mscj1lLmFjYyxpPWUuZW5kVGltZSxhPWUuc291cmNlLG89aS1EYXRlLm5vdygpO2lmKG88PTApe3RoaXMuX3VwZGF0ZVZpZXdwb3J0KG4pLHRoaXMuX2FuaW1hdGluZz1udWxsLHRoaXMuX3JlcXVlc3RlZEFuaW1hdGlvbj0hMSx0aGlzLl90cmFuc2l0aW9uU3RhcnQ9bnVsbDt2YXIgcz10aGlzLml0ZW1zW3RoaXMuY3VycmVudFN5bmNdO3MmJnRoaXMuX2l0ZW1SZWFkeShzLChmdW5jdGlvbigpe3ZhciBlPXMuY29tcG9uZW50SW5zdGFuY2UuaXRlbUlkfHwiIjt0LiR0cmlnZ2VyKCJhbmltYXRpb25maW5pc2giLHt9LHtjdXJyZW50OnQuY3VycmVudFN5bmMsY3VycmVudEl0ZW1JZDplLHNvdXJjZTphfSl9KSl9ZWxzZXt2YXIgYz1yKm8qby8yLHU9bitjO3RoaXMuX3VwZGF0ZVZpZXdwb3J0KHUpLHRoaXMuX2FuaW1hdGlvbkZyYW1lPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9hbmltYXRlRnJhbWVGdW5jUHJvdG8uYmluZCh0aGlzKSl9fWVsc2UgdGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9uPSExfSxfYW5pbWF0ZVZpZXdwb3J0OmZ1bmN0aW9uKHQsZSxuKXt0aGlzLl9jYW5jZWxWaWV3cG9ydEFuaW1hdGlvbigpO3ZhciByPXRoaXMuZHVyYXRpb25OdW1iZXIsaT10aGlzLml0ZW1zLmxlbmd0aCxhPXRoaXMuX3ZpZXdwb3J0UG9zaXRpb247aWYodGhpcy5jaXJjdWxhckVuYWJsZWQpaWYobjwwKXtmb3IoO2E8dDspYSs9aTtmb3IoO2EtaT50OylhLT1pfWVsc2UgaWYobj4wKXtmb3IoO2E+dDspYS09aTtmb3IoO2EraTx0OylhKz1pO2EraS10PHQtYSYmKGErPWkpfWVsc2V7Zm9yKDthK2k8dDspYSs9aTtmb3IoO2EtaT50OylhLT1pO2EraS10PHQtYSYmKGErPWkpfWVsc2UiY2xpY2siPT09ZSYmKHQ9dCt0aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyLTE8aT90OjApO3RoaXMuX2FuaW1hdGluZz17dG9Qb3M6dCxhY2M6MiooYS10KS8ocipyKSxlbmRUaW1lOkRhdGUubm93KCkrcixzb3VyY2U6ZX0sdGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9ufHwodGhpcy5fcmVxdWVzdGVkQW5pbWF0aW9uPSEwLHRoaXMuX2FuaW1hdGlvbkZyYW1lPXJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9hbmltYXRlRnJhbWVGdW5jUHJvdG8uYmluZCh0aGlzKSkpfSxfY2FuY2VsVmlld3BvcnRBbmltYXRpb246ZnVuY3Rpb24oKXt0aGlzLl9hbmltYXRpbmc9bnVsbH0sX2VuZFZpZXdwb3J0QW5pbWF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5fYW5pbWF0aW5nJiYodGhpcy5fdXBkYXRlVmlld3BvcnQodGhpcy5fYW5pbWF0aW5nLnRvUG9zKSx0aGlzLl9hbmltYXRpbmc9bnVsbCl9LF9oYW5kbGVUcmFja1N0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY2FuY2VsU2NoZWR1bGUoKSx0aGlzLl9jb250ZW50VHJhY2tWaWV3cG9ydD10aGlzLl92aWV3cG9ydFBvc2l0aW9uLHRoaXMuX2NvbnRlbnRUcmFja1NwZWVkPTAsdGhpcy5fY29udGVudFRyYWNrVD1EYXRlLm5vdygpLHRoaXMuX2NhbmNlbFZpZXdwb3J0QW5pbWF0aW9uKCl9LF9oYW5kbGVUcmFja01vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX2NvbnRlbnRUcmFja1Q7dGhpcy5fY29udGVudFRyYWNrVD1EYXRlLm5vdygpO3ZhciByPXRoaXMuaXRlbXMubGVuZ3RoLGk9ci10aGlzLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyO2Z1bmN0aW9uIGEodCl7cmV0dXJuLjUtLjI1Lyh0Ky41KX1mdW5jdGlvbiBvKHQsbil7dmFyIHI9ZS5fY29udGVudFRyYWNrVmlld3BvcnQrdDtlLl9jb250ZW50VHJhY2tTcGVlZD0uNiplLl9jb250ZW50VHJhY2tTcGVlZCsuNCpuLGUuY2lyY3VsYXJFbmFibGVkfHwocjwwfHxyPmkpJiYocjwwP3I9LWEoLXIpOnI+aSYmKHI9aSthKHItaSkpLGUuX2NvbnRlbnRUcmFja1NwZWVkPTApLGUuX3VwZGF0ZVZpZXdwb3J0KHIpfXZhciBzPXRoaXMuX2NvbnRlbnRUcmFja1Qtbnx8MTt0aGlzLnZlcnRpY2FsP28oLXQuZHkvdGhpcy4kcmVmcy5zbGlkZUZyYW1lLm9mZnNldEhlaWdodCwtdC5kZHkvcyk6bygtdC5keC90aGlzLiRyZWZzLnNsaWRlRnJhbWUub2Zmc2V0V2lkdGgsLXQuZGR4L3MpfSxfaGFuZGxlVHJhY2tFbmQ6ZnVuY3Rpb24odCl7dGhpcy51c2VyVHJhY2tpbmc9ITE7dmFyIGU9dGhpcy5fY29udGVudFRyYWNrU3BlZWQvTWF0aC5hYnModGhpcy5fY29udGVudFRyYWNrU3BlZWQpLG49MDshdCYmTWF0aC5hYnModGhpcy5fY29udGVudFRyYWNrU3BlZWQpPi4yJiYobj0uNSplKTt2YXIgcj10aGlzLl9ub3JtYWxpemVDdXJyZW50VmFsdWUodGhpcy5fdmlld3BvcnRQb3NpdGlvbituKTt0P3RoaXMuX3VwZGF0ZVZpZXdwb3J0KHRoaXMuX2NvbnRlbnRUcmFja1ZpZXdwb3J0KToodGhpcy5jdXJyZW50Q2hhbmdlU291cmNlPSJ0b3VjaCIsdGhpcy5jdXJyZW50U3luYz1yLHRoaXMuX2FuaW1hdGVWaWV3cG9ydChyLCJ0b3VjaCIsMCE9PW4/bjowPT09ciYmdGhpcy5jaXJjdWxhckVuYWJsZWQmJnRoaXMuX3ZpZXdwb3J0UG9zaXRpb24+PTE/MTowKSl9LF9oYW5kbGVDb250ZW50VHJhY2s6ZnVuY3Rpb24odCl7aWYoIXRoaXMuZGlzYWJsZVRvdWNoJiZ0aGlzLml0ZW1zLmxlbmd0aCYmIXRoaXMuX2ludmFsaWQpe2lmKCJzdGFydCI9PT10LmRldGFpbC5zdGF0ZSlyZXR1cm4gdGhpcy51c2VyVHJhY2tpbmc9ITAsdGhpcy5fdXNlckRpcmVjdGlvbkNoZWNrZWQ9ITEsdGhpcy5faGFuZGxlVHJhY2tTdGFydCgpO2lmKCJlbmQiPT09dC5kZXRhaWwuc3RhdGUpcmV0dXJuIHRoaXMuX2hhbmRsZVRyYWNrRW5kKCExKTtpZigiY2FuY2VsIj09PXQuZGV0YWlsLnN0YXRlKXJldHVybiB0aGlzLl9oYW5kbGVUcmFja0VuZCghMCk7aWYodGhpcy51c2VyVHJhY2tpbmcpe2lmKCF0aGlzLl91c2VyRGlyZWN0aW9uQ2hlY2tlZCl7dGhpcy5fdXNlckRpcmVjdGlvbkNoZWNrZWQ9ITA7dmFyIGU9TWF0aC5hYnModC5kZXRhaWwuZHgpLG49TWF0aC5hYnModC5kZXRhaWwuZHkpO2lmKChlPj1uJiZ0aGlzLnZlcnRpY2FsfHxlPD1uJiYhdGhpcy52ZXJ0aWNhbCkmJih0aGlzLnVzZXJUcmFja2luZz0hMSksIXRoaXMudXNlclRyYWNraW5nKXJldHVybiB2b2lkKHRoaXMuYXV0b3BsYXkmJnRoaXMuX3NjaGVkdWxlQXV0b3BsYXkoKSl9cmV0dXJuIHRoaXMuX2hhbmRsZVRyYWNrTW92ZSh0LmRldGFpbCksITF9fX0sX29uU3dpcGVyRG90Q2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5fYW5pbWF0ZVZpZXdwb3J0KHRoaXMuY3VycmVudFN5bmM9dCx0aGlzLmN1cnJlbnRDaGFuZ2VTb3VyY2U9ImNsaWNrIix0aGlzLmNpcmN1bGFyRW5hYmxlZD8xOjApfSxfbmF2aWdhdGlvbkNsaWNrOmZ1bmN0aW9uKHQsZSxuKXtpZih0LnN0b3BQcm9wYWdhdGlvbigpLCFuKXt2YXIgcj10aGlzLml0ZW1zLmxlbmd0aCxpPXRoaXMuY3VycmVudFN5bmM7c3dpdGNoKGUpe2Nhc2UicHJldiI6aS0tLGk8MCYmdGhpcy5jaXJjdWxhckVuYWJsZWQmJihpPXItMSk7YnJlYWs7Y2FzZSJuZXh0IjppKyssaT49ciYmdGhpcy5jaXJjdWxhckVuYWJsZWQmJihpPTApO2JyZWFrfXRoaXMuX29uU3dpcGVyRG90Q2xpY2soaSl9fSxfbmF2aWdhdGlvbk1vdXNlTW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2NsZWFyVGltZW91dCh0aGlzLmhpZGVOYXZpZ2F0aW9uVGltZXIpO3ZhciBuPXQuY2xpZW50WCxyPXQuY2xpZW50WSxpPXRoaXMuJHJlZnMuc2xpZGVzV3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWkubGVmdCxvPWkucmlnaHQscz1pLnRvcCxjPWkuYm90dG9tLHU9aS53aWR0aCxsPWkuaGVpZ2h0LGY9ITE7Zj10aGlzLnZlcnRpY2FsPyEoci1zPGwvM3x8Yy1yPGwvMyk6IShuLWE8dS8zfHxvLW48dS8zKSxmP3RoaXMuaGlkZU5hdmlnYXRpb25UaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuaGlkZU5hdmlnYXRpb249Zn0pLDMwMCk6dGhpcy5oaWRlTmF2aWdhdGlvbj1mfSxfbmF2aWdhdGlvbk1vdXNlT3V0OmZ1bmN0aW9uKCl7dGhpcy5oaWRlTmF2aWdhdGlvbj0hMH0sX25hdmlnYXRpb25Td2lwZXJBZGRNb3VzZUV2ZW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5zbGlkZXNXcmFwcGVyO3QmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fbmF2aWdhdGlvbk1vdXNlTW92ZSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9uYXZpZ2F0aW9uTW91c2VPdXQpLHRoaXMuaXNOYXZpZ2F0aW9uQXV0byYmKHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9uYXZpZ2F0aW9uTW91c2VNb3ZlKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX25hdmlnYXRpb25Nb3VzZU91dCkpKX0sX25hdmlnYXRpb25Ib3ZlcjpmdW5jdGlvbih0LGUpe3ZhciBuPXQuY3VycmVudFRhcmdldDtuJiYobi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9Im92ZXIiPT09ZT90aGlzLm5hdmlnYXRpb25BY3RpdmVDb2xvcjoiIil9LF9zZXROYXZpZ2F0aW9uU3RhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLml0ZW1zLmxlbmd0aCxlPSF0aGlzLmNpcmN1bGFyRW5hYmxlZDt0aGlzLnByZXZEaXNhYmxlZD0wPT09dGhpcy5jdXJyZW50U3luYyYmZSx0aGlzLm5leHREaXNhYmxlZD10aGlzLmN1cnJlbnRTeW5jPT09dC0xJiZlfHxlJiZ0aGlzLmN1cnJlbnRTeW5jK3RoaXMuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXI+PXR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPVtdLHI9W107dGhpcy4kc2xvdHMuZGVmYXVsdCYmKDAsby5kZWVwQ2xvbmUpKHRoaXMuJHNsb3RzLmRlZmF1bHQsdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb21wb25lbnRPcHRpb25zJiYidi11bmktc3dpcGVyLWl0ZW0iPT09dC5jb21wb25lbnRPcHRpb25zLnRhZyYmci5wdXNoKHQpfSkpO2Zvcih2YXIgYT1mdW5jdGlvbihyLGkpe3ZhciBhPWUuY3VycmVudFN5bmM7bi5wdXNoKHQoImRpdiIse29uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLl9vblN3aXBlckRvdENsaWNrKHIpfX0sY2xhc3M6eyJ1bmktc3dpcGVyLWRvdCI6ITAsInVuaS1zd2lwZXItZG90LWFjdGl2ZSI6cjxhK2UuZGlzcGxheU11bHRpcGxlSXRlbXNOdW1iZXImJnI+PWF8fHI8YStlLmRpc3BsYXlNdWx0aXBsZUl0ZW1zTnVtYmVyLWl9LHN0eWxlOntiYWNrZ3JvdW5kOnI9PT1hP2UuaW5kaWNhdG9yQWN0aXZlQ29sb3I6ZS5pbmRpY2F0b3JDb2xvcn19KSl9LHM9MCxjPXIubGVuZ3RoO3M8YztzKyspYShzLGMpO3RoaXMuaXRlbXM9cjt2YXIgdT1bdCgiZGl2Iix7cmVmOiJzbGlkZXMiLHN0eWxlOnRoaXMuc2xpZGVzU3R5bGUsY2xhc3M6InVuaS1zd2lwZXItc2xpZGVzIn0sW3QoImRpdiIse3JlZjoic2xpZGVGcmFtZSIsY2xhc3M6InVuaS1zd2lwZXItc2xpZGUtZnJhbWUiLHN0eWxlOnRoaXMuc2xpZGVGcmFtZVN0eWxlfSxyKV0pXTtpZih0aGlzLmluZGljYXRvckRvdHMmJnUucHVzaCh0KCJkaXYiLHtyZWY6InNsaWRlc0RvdHMiLGNsYXNzOlsidW5pLXN3aXBlci1kb3RzIix0aGlzLnZlcnRpY2FsPyJ1bmktc3dpcGVyLWRvdHMtdmVydGljYWwiOiJ1bmktc3dpcGVyLWRvdHMtaG9yaXpvbnRhbCJdfSxuKSksdGhpcy5uYXZpZ2F0aW9uKXt2YXIgbD17InVuaS1zd2lwZXItbmF2aWdhdGlvbi1oaWRlIjp0aGlzLmhpZGVOYXZpZ2F0aW9uLCJ1bmktc3dpcGVyLW5hdmlnYXRpb24tdmVydGljYWwiOnRoaXMudmVydGljYWx9LGY9dCgiaSIse2RvbVByb3BzOntpbm5lckhUTUw6IiYjeGU2MDE7In0sY2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6e2NvbG9yOnRoaXMubmF2aWdhdGlvbkNvbG9yLGZvbnRTaXplOiIyNnB4In19KSxkPXttb3VzZW92ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX25hdmlnYXRpb25Ib3Zlcih0LCJvdmVyIil9LG1vdXNlb3V0OmZ1bmN0aW9uKHQpe3JldHVybiBlLl9uYXZpZ2F0aW9uSG92ZXIodCwib3V0Iil9fTt1LnB1c2godCgiZGl2Iix7b246KDAsaS5kZWZhdWx0KSh7Y2xpY2s6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX25hdmlnYXRpb25DbGljayh0LCJwcmV2IixlLnByZXZEaXNhYmxlZCl9fSxkKSxjbGFzczpbInVuaS1zd2lwZXItbmF2aWdhdGlvbiIsInVuaS1zd2lwZXItbmF2aWdhdGlvbi1wcmV2IiwoMCxpLmRlZmF1bHQpKHsidW5pLXN3aXBlci1uYXZpZ2F0aW9uLWRpc2FibGVkIjp0aGlzLnByZXZEaXNhYmxlZH0sbCldfSxbZl0pLHQoImRpdiIse29uOigwLGkuZGVmYXVsdCkoe2NsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9uYXZpZ2F0aW9uQ2xpY2sodCwibmV4dCIsZS5uZXh0RGlzYWJsZWQpfX0sZCksY2xhc3M6WyJ1bmktc3dpcGVyLW5hdmlnYXRpb24iLCJ1bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dCIsKDAsaS5kZWZhdWx0KSh7InVuaS1zd2lwZXItbmF2aWdhdGlvbi1kaXNhYmxlZCI6dGhpcy5uZXh0RGlzYWJsZWR9LGwpXX0sW2ZdKSl9cmV0dXJuIHQoInVuaS1zd2lwZXIiLHtvbjp0aGlzLiRsaXN0ZW5lcnN9LFt0KCJkaXYiLHtyZWY6InNsaWRlc1dyYXBwZXIiLGNsYXNzOiJ1bmktc3dpcGVyLXdyYXBwZXIifSx1KV0pfX07ZS5kZWZhdWx0PXN9LCI3ZWU3IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI4NGFmIiksaT1uKCI4NDIxIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSw4MTcyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMDY1IiksaT1uKCI1N2I5Iik7cigidG9QcmltaXRpdmUiKSxpKCl9LCI4MWIyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZDA2NiIpLGE9bigiZTMzMCIpLG89bigiZDAzOSIpLHM9bigiNTc3ZSIpLGM9bigiMWEyZCIpLHU9bigiZDZkNiIpLGw9bigiYjkxNyIpLmN0b2ksZj0vW15cZCsvYS16XS9pLGQ9L1tcdFxuXGZcciBdKy9nLGg9L1s9XSskLyxwPWkoImF0b2IiKSx2PVN0cmluZy5mcm9tQ2hhckNvZGUsZz1hKCIiLmNoYXJBdCksbT1hKCIiLnJlcGxhY2UpLGI9YShmLmV4ZWMpLHk9bygoZnVuY3Rpb24oKXtyZXR1cm4iIiE9PXAoIiAiKX0pKSxfPSFvKChmdW5jdGlvbigpe3AoImEiKX0pKSx3PSF5JiYhXyYmIW8oKGZ1bmN0aW9uKCl7cCgpfSkpLHg9IXkmJiFfJiYxIT09cC5sZW5ndGg7cih7Z2xvYmFsOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOnl8fF98fHd8fHh9LHthdG9iOmZ1bmN0aW9uKHQpe2lmKHUoYXJndW1lbnRzLmxlbmd0aCwxKSx3fHx4KXJldHVybiBwKHQpO3ZhciBlLG4scj1tKHModCksZCwiIiksYT0iIixvPTAseT0wO2lmKHIubGVuZ3RoJTQ9PTAmJihyPW0ocixoLCIiKSksci5sZW5ndGglND09MXx8YihmLHIpKXRocm93IG5ldyhpKCJET01FeGNlcHRpb24iKSkoIlRoZSBzdHJpbmcgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkIiwiSW52YWxpZENoYXJhY3RlckVycm9yIik7d2hpbGUoZT1nKHIsbysrKSljKGwsZSkmJihuPXklND82NCpuK2xbZV06bFtlXSx5KyslNCYmKGErPXYoMjU1Jm4+PigtMip5JjYpKSkpO3JldHVybiBhfX0pfSwiODFkNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI3YjBiIiksaT1uKCIyM2NiIiksYT1uKCIwN2ZhIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXIodGhpcyksbj1hKGUpLG89YXJndW1lbnRzLmxlbmd0aCxzPWkobz4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbiksYz1vPjI/YXJndW1lbnRzWzJdOnZvaWQgMCx1PXZvaWQgMD09PWM/bjppKGMsbik7d2hpbGUodT5zKWVbcysrXT10O3JldHVybiBlfX0sIjgxZTgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuTE9DQUxFX1pIX0hBTlQ9ZS5MT0NBTEVfWkhfSEFOUz1lLkxPQ0FMRV9GUj1lLkxPQ0FMRV9FUz1lLkxPQ0FMRV9FTj1lLkkxOE5fSlNPTl9ERUxJTUlURVJTPXZvaWQgMCxlLmRlZmluZUkxOG5Qcm9wZXJ0aWVzPVMsZS5kZWZpbmVJMThuUHJvcGVydHk9VCxlLmZvcm1hdEkxOG49eCxlLmkxOG5NaXhpbj1lLmkxOG49ZS5nZXRMb2NhbGU9dm9pZCAwLGUuaW5pdEFwcExvY2FsZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dC5vYnNlcnZhYmxlKHtsb2NhbGU6bnx8Zy5nZXRMb2NhbGUoKX0pLGk9W107ZS4kd2F0Y2hMb2NhbGU9ZnVuY3Rpb24odCl7aS5wdXNoKHQpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiJGxvY2FsZSIse2dldDpmdW5jdGlvbigpe3JldHVybiByLmxvY2FsZX0sc2V0OmZ1bmN0aW9uKHQpe3IubG9jYWxlPXQsaS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gZSh0KX0pKX19KX0sZS5pbml0TmF2aWdhdGlvbkJhckkxOG49ZnVuY3Rpb24odCl7aWYoQygpKXJldHVybiBTKHQsW1sidGl0bGVUZXh0Il0sWyJzZWFyY2hJbnB1dCIsInBsYWNlaG9sZGVyIl0sWyJidXR0b25zIiwidGV4dCJdXSl9LGUuaW5pdFB1bGxUb1JlZnJlc2hJMThuPWZ1bmN0aW9uKHQpe2lmKEMoKSl7cmV0dXJuIFModCxbWyJjb250ZW50ZG93biIsImNhcHRpb24iXSxbImNvbnRlbnRvdmVyIiwiY2FwdGlvbiJdLFsiY29udGVudHJlZnJlc2giLCJjYXB0aW9uIl1dKX19LGUuaW5pdFRhYkJhckkxOG49ZnVuY3Rpb24odCl7QygpJiZ0Lmxpc3QmJnQubGlzdC5mb3JFYWNoKChmdW5jdGlvbih0KXtUKHQsWyJ0ZXh0Il0pfSkpO3JldHVybiB0fSxlLm5vcm1hbGl6ZUxvY2FsZT1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybjtpZih0PXQudHJpbSgpLnJlcGxhY2UoL18vZywiLSIpLGUmJmVbdF0pcmV0dXJuIHQ7aWYodD10LnRvTG93ZXJDYXNlKCksImNoaW5lc2UiPT09dClyZXR1cm4iemgtSGFucyI7aWYoMD09PXQuaW5kZXhPZigiemgiKSlyZXR1cm4gdC5pbmRleE9mKCItaGFucyIpPi0xPyJ6aC1IYW5zIjp0LmluZGV4T2YoIi1oYW50Iik+LTF8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuISFlLmZpbmQoKGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUpfSkpfSh0LFsiLXR3IiwiLWhrIiwiLW1vIiwiLWNodCJdKT8iemgtSGFudCI6InpoLUhhbnMiO3ZhciBuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT10LmluZGV4T2YoZSl9KSl9KHQsWyJlbiIsImZyIiwiZXMiXSk7aWYobilyZXR1cm4gbn0sZS50PWUuc2V0TG9jYWxlPXZvaWQgMCxuKCJiNjRiIiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCIxNGQ5IiksbigiN2E4MiIpLG4oIjRkZTQiKSxuKCJkODFkIiksbigiN2RiMCIpLG4oImM5NzUiKSxuKCJhYzFmIiksbigiNTMxOSIpLG4oIjQ5OGEiKTtyKG4oIjUzY2EiKSk7dmFyIGk9cihuKCJhZGUzIikpLGE9bigiMzdkYyIpLG89bigiZGI2YSIpLHM9bigiMGZiZSIpLGM9cihuKCI1OGE3IikpLHU9cihuKCI4NjZlIikpLGw9cihuKCJlOGMzIikpLGY9cihuKCJiNDc5IikpLGQ9cihuKCIyNTI2IikpO2UuTE9DQUxFX1pIX0hBTlM9InpoLUhhbnMiO2UuTE9DQUxFX1pIX0hBTlQ9InpoLUhhbnQiO2UuTE9DQUxFX0VOPSJlbiI7ZS5MT0NBTEVfRlI9ImZyIjtlLkxPQ0FMRV9FUz0iZXMiO3ZhciBoLHAsdj17fTtPYmplY3QuYXNzaWduKHYsKGg9e30sKDAsaS5kZWZhdWx0KShoLCJlbiIsYy5kZWZhdWx0KSwoMCxpLmRlZmF1bHQpKGgsImVzIix1LmRlZmF1bHQpLCgwLGkuZGVmYXVsdCkoaCwiZnIiLGwuZGVmYXVsdCksKDAsaS5kZWZhdWx0KShoLCJ6aC1IYW5zIixmLmRlZmF1bHQpLCgwLGkuZGVmYXVsdCkoaCwiemgtSGFudCIsZC5kZWZhdWx0KSxoKSkscD1uYXZpZ2F0b3IuY29va2llRW5hYmxlZCYmd2luZG93LmxvY2FsU3RvcmFnZSYmbG9jYWxTdG9yYWdlW3MuVU5JX1NUT1JBR0VfTE9DQUxFXXx8X191bmlDb25maWcubG9jYWxlfHxuYXZpZ2F0b3IubGFuZ3VhZ2UsZnVuY3Rpb24oKXtpZihDKCkpe3ZhciB0PU9iamVjdC5rZXlzKF9fdW5pQ29uZmlnLmxvY2FsZXMpO3QubGVuZ3RoJiZ0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXZbdF0sbj1fX3VuaUNvbmZpZy5sb2NhbGVzW3RdO2U/T2JqZWN0LmFzc2lnbihlLG4pOnZbdF09bn0pKX19KCk7dmFyIGc9KDAsYS5pbml0VnVlSTE4bikocCx2KTtlLmkxOG49Zzt2YXIgbT1nLnQ7ZS50PW07dmFyIGI9Zy5taXhpbj17YmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWcuaTE4bi53YXRjaExvY2FsZSgoZnVuY3Rpb24oKXt0LiRmb3JjZVVwZGF0ZSgpfSkpO3RoaXMuJG9uY2UoImhvb2s6YmVmb3JlRGVzdHJveSIsKGZ1bmN0aW9uKCl7ZSgpfSkpfSxtZXRob2RzOnskJHQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbSh0LGUpfX19O2UuaTE4bk1peGluPWI7dmFyIHk9Zy5zZXRMb2NhbGU7ZS5zZXRMb2NhbGU9eTt2YXIgXz1nLmdldExvY2FsZTtlLmdldExvY2FsZT1fO3ZhciB3PVsiJSIsIiUiXTtmdW5jdGlvbiB4KHQpe3JldHVybigwLGEuaXNJMThuU3RyKSh0LHcpP2cuZih0LGZ1bmN0aW9uKCl7dmFyIHQ9dW5pLmdldExvY2FsZSgpLGU9X191bmlDb25maWcubG9jYWxlcztyZXR1cm4gZVt0XXx8ZVtfX3VuaUNvbmZpZy5mYWxsYmFja0xvY2FsZV18fGVbImVuIl18fHt9fSgpLHcpOnR9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIFQodCxlKX0pKX1mdW5jdGlvbiBUKHQsZSl7dmFyIG49ZnVuY3Rpb24gdChlLG4pe2lmKDEhPT1uLmxlbmd0aCl7dmFyIHI9bi5zaGlmdCgpO3JldHVybiB0KGUmJmVbcl0sbil9aWYoZSl7dmFyIGk9ZnVuY3Rpb24odCl7cmV0dXJuKDAsby5pc1N0cikodCkmJigwLGEuaXNJMThuU3RyKSh0LHcpfSxzPW5bMF0sYz1bXTtpZihBcnJheS5pc0FycmF5KGUpJiYoYz1lLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIGkodFtzXSl9KSkpLmxlbmd0aClyZXR1cm4gYzt2YXIgdT1lW3NdO2lmKGkodSkpcmV0dXJuIGV9fSh0LGUpO2lmKCFuKXJldHVybiExO3ZhciByPWVbZS5sZW5ndGgtMV07aWYoQXJyYXkuaXNBcnJheShuKSluLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBUKHQsW3JdKX0pKTtlbHNle3ZhciBpPW5bcl07T2JqZWN0LmRlZmluZVByb3BlcnR5KG4scix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHgoaSl9LHNldDpmdW5jdGlvbih0KXtpPXR9fSl9cmV0dXJuITB9ZnVuY3Rpb24gQygpe3JldHVybiJ1bmRlZmluZWQiIT09dHlwZW9mIF9fdW5pQ29uZmlnJiZfX3VuaUNvbmZpZy5sb2NhbGVzJiYhIU9iamVjdC5rZXlzKF9fdW5pQ29uZmlnLmxvY2FsZXMpLmxlbmd0aH1lLkkxOE5fSlNPTl9ERUxJTUlURVJTPXd9LCI4MjVhIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODYxZCIpLGk9U3RyaW5nLGE9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihyKHQpKXJldHVybiB0O3Rocm93IGEoaSh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKX19LCI4MjViIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIxNzQzIiksaT1uKCJjMzgxIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSwiODI1ZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtPYmplY3Qua2V5cyhpLmRlZmF1bHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QoZSxpLmRlZmF1bHRbZV0pfSkpLHQoInBhZ2VTY3JvbGxUbyIsYS5wYWdlU2Nyb2xsVG8pLHQoImxvYWRGb250RmFjZSIsby5sb2FkRm9udEZhY2UpLCgwLHMuZGVmYXVsdCkodCl9LG4oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpO3ZhciBpPXIobigiZTZiMCIpKSxhPW4oIjA3YTYiKSxvPW4oIjAxNzkiKSxzPXIobigiMzIwZCIpKX0sODI5NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI5OTEwIik7Zm9yKHZhciBpIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihpKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShpKTt2YXIgYT1uKCJmMGM1Iiksbz1PYmplY3QoYVsiYSJdKShyWyJkZWZhdWx0Il0sdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCwhMSx2b2lkIDAsdm9pZCAwKTtlWyJkZWZhdWx0Il09by5leHBvcnRzfSwiODJmOCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCI0ZDY0IikuaW5jbHVkZXMsYT1yLmFUeXBlZEFycmF5LG89ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO28oImluY2x1ZGVzIiwoZnVuY3Rpb24odCl7cmV0dXJuIGkoYSh0aGlzKSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKX0sODMzMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCJlNDY3IiksaT1uKCIyYWJlIiksYT1uKCI4OTU5Iiksbz1uKCI1YzVjIikscz1uKCIzOTU0IiksYz1uKCI4ZGViIiksdT1uKCIzNmVmIiksbD1uKCI3ZGI0IiksZj1uKCJjNGZlIiksZD1uKCJmODYxIiksaD1uKCIyODYxIikscD1uKCJhNDlmIiksdj1uKCJiMzM0IiksZz1uKCIzNzdlIiksbT1uKCI0YWUyIiksYj1uKCI2MzNkIikseT1uKCIwMjA2IiksXz17JGVtaXQ6ci4kZW1pdCxjYW5JVXNlOmkuY2FuSVVzZSxjYW52YXNUb1RlbXBGaWxlUGF0aDphLmNhbnZhc1RvVGVtcEZpbGVQYXRoLGNsZWFyU3RvcmFnZTpvLmNsZWFyU3RvcmFnZSxjbGVhclN0b3JhZ2VTeW5jOm8uY2xlYXJTdG9yYWdlU3luYyxjcmVhdGVBbmltYXRpb246cy5jcmVhdGVBbmltYXRpb24sY3JlYXRlQ2FudmFzQ29udGV4dDphLmNyZWF0ZUNhbnZhc0NvbnRleHQsY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI6Yy5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcixjcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXI6dS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIsY3JlYXRlU2VsZWN0b3JRdWVyeTpsLmNyZWF0ZVNlbGVjdG9yUXVlcnksZ2V0TG9jYWxlOmYuZ2V0TG9jYWxlLGdldFN0b3JhZ2VTeW5jOm8uZ2V0U3RvcmFnZVN5bmMsZ2V0U3lzdGVtSW5mbzpkLmdldFN5c3RlbUluZm8sZ2V0U3lzdGVtSW5mb1N5bmM6ZC5nZXRTeXN0ZW1JbmZvU3luYyxoaWRlTG9hZGluZzpoLmhpZGVMb2FkaW5nLG5hdmlnYXRlQmFjazpwLm5hdmlnYXRlQmFjayxuYXZpZ2F0ZVRvOnAubmF2aWdhdGVUbyxwYWdlU2Nyb2xsVG86di5wYWdlU2Nyb2xsVG8scHJldmlld0ltYWdlOmcucHJldmlld0ltYWdlLHJlTGF1bmNoOnAucmVMYXVuY2gscmVkaXJlY3RUbzpwLnJlZGlyZWN0VG8scmVxdWVzdDptLnJlcXVlc3Qsc2V0TmF2aWdhdGlvbkJhclRpdGxlOmIuc2V0TmF2aWdhdGlvbkJhclRpdGxlLHNldFN0b3JhZ2VTeW5jOm8uc2V0U3RvcmFnZVN5bmMsc2hvd0xvYWRpbmc6aC5zaG93TG9hZGluZyxzaG93TW9kYWw6aC5zaG93TW9kYWwsc2hvd1RvYXN0Omguc2hvd1RvYXN0LHN3aXRjaFRhYjpwLnN3aXRjaFRhYix1cHgycHg6eS51cHgycHh9O2UuZGVmYXVsdD1ffSwiODNhYiI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKTt0LmV4cG9ydHM9IXIoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKX0sODQxODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImEwNGIiKSxpPW4oIjliZjIiKSxhPW4oIjVjNmMiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3ZhciBvPXIoZSk7byBpbiB0P2kuZih0LG8sYSgwLG4pKTp0W29dPW59fSwiODQxYyI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJjNjViIiksaT1uKCJkNzg0IiksYT1uKCI4MjVhIiksbz1uKCI3MjM0Iikscz1uKCIxZDgwIiksYz1uKCIxMjlmIiksdT1uKCI1NzdlIiksbD1uKCJkYzRhIiksZj1uKCIxNGMzIik7aSgic2VhcmNoIiwoZnVuY3Rpb24odCxlLG4pe3JldHVybltmdW5jdGlvbihlKXt2YXIgbj1zKHRoaXMpLGk9byhlKT92b2lkIDA6bChlLHQpO3JldHVybiBpP3IoaSxlLG4pOm5ldyBSZWdFeHAoZSlbdF0odShuKSl9LGZ1bmN0aW9uKHQpe3ZhciByPWEodGhpcyksaT11KHQpLG89bihlLHIsaSk7aWYoby5kb25lKXJldHVybiBvLnZhbHVlO3ZhciBzPXIubGFzdEluZGV4O2MocywwKXx8KHIubGFzdEluZGV4PTApO3ZhciBsPWYocixpKTtyZXR1cm4gYyhyLmxhc3RJbmRleCxzKXx8KHIubGFzdEluZGV4PXMpLG51bGw9PT1sPy0xOmwuaW5kZXh9XX0pKX0sODQyMTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIwYTc1IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiODRhZiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInRyYW5zaXRpb24iLHthdHRyczp7bmFtZToidW5pLWZhZGUifX0sW3QudmlzaWJsZT9uKCJ1bmktdG9hc3QiLHthdHRyczp7ImRhdGEtZHVyYXRpb24iOnQuZHVyYXRpb259fSxbdC5tYXNrP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbWFzayIsc3RhdGljU3R5bGU6e2JhY2tncm91bmQ6InRyYW5zcGFyZW50In0sb246e3RvdWNobW92ZTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9fX0pOnQuX2UoKSx0LmltYWdlfHx0Lmljb25DbGFzcz9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRvYXN0In0sW3QuaW1hZ2U/bigiaW1nIix7c3RhdGljQ2xhc3M6InVuaS10b2FzdF9faWNvbiIsYXR0cnM6e3NyYzp0LmltYWdlfX0pOm4oImkiLHtzdGF0aWNDbGFzczoidW5pLWljb25fdG9hc3QiLGNsYXNzOnQuaWNvbkNsYXNzfSksbigicCIse3N0YXRpY0NsYXNzOiJ1bmktdG9hc3RfX2NvbnRlbnQifSxbdC5fdigiXG4gICAgICAgICIrdC5fcyh0LnRpdGxlKSsiXG4gICAgICAiKV0pXSk6bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1zYW1wbGUtdG9hc3QifSxbbigicCIse3N0YXRpY0NsYXNzOiJ1bmktc2ltcGxlLXRvYXN0X190ZXh0In0sW3QuX3YoIlxuICAgICAgICAiK3QuX3ModC50aXRsZSkrIlxuICAgICAgIildKV0pXSk6dC5fZSgpXSwxKX0saT1bXX0sIjg2MGYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ1bmktaW5wdXQiLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbbigiZGl2Iix7cmVmOiJ3cmFwcGVyIixzdGF0aWNDbGFzczoidW5pLWlucHV0LXdyYXBwZXIifSxbbigiZGl2Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6dC5zaG93UGxhY2Vob2xkZXIsZXhwcmVzc2lvbjoic2hvd1BsYWNlaG9sZGVyIn1dLHJlZjoicGxhY2Vob2xkZXIiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtcGxhY2Vob2xkZXIiLGNsYXNzOnQucGxhY2Vob2xkZXJDbGFzcyxzdHlsZTp0LnBsYWNlaG9sZGVyU3R5bGUsZG9tUHJvcHM6e3RleHRDb250ZW50OnQuX3ModC5wbGFjZWhvbGRlcil9fSksImNoZWNrYm94IiE9PXQuaW5wdXRUeXBlfHx0LmRpc2FibGVkJiZ0LmZpeENvbG9yPyJyYWRpbyIhPT10LmlucHV0VHlwZXx8dC5kaXNhYmxlZCYmdC5maXhDb2xvcj90LmRpc2FibGVkJiZ0LmZpeENvbG9yP3QuX2UoKTpuKCJpbnB1dCIse2RpcmVjdGl2ZXM6W3tuYW1lOiJtb2RlbCIscmF3TmFtZToidi1tb2RlbCIsdmFsdWU6dC52YWx1ZVN5bmMsZXhwcmVzc2lvbjoidmFsdWVTeW5jIn0se25hbWU6ImtleWJvYXJkIixyYXdOYW1lOiJ2LWtleWJvYXJkIn0se25hbWU6ImZpZWxkIixyYXdOYW1lOiJ2LWZpZWxkIn1dLHJlZjoiaW5wdXQiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtaW5wdXQiLGF0dHJzOntkaXNhYmxlZDp0LmRpc2FibGVkLG1heGxlbmd0aDp0Lm1heGxlbmd0aCxzdGVwOnQuX3N0ZXAsZW50ZXJrZXloaW50OnQuY29uZmlybVR5cGUscGF0dGVybjoibnVtYmVyIj09PXQudHlwZT8iWzAtOV0qIjpudWxsLGF1dG9jb21wbGV0ZTp0LmF1dG9jb21wbGV0ZSxpbnB1dG1vZGU6dC5pbnB1dG1vZGUsdHlwZTp0LmlucHV0VHlwZX0sZG9tUHJvcHM6e3ZhbHVlOnQudmFsdWVTeW5jfSxvbjp7Y2hhbmdlOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LGZvY3VzOnQuX29uRm9jdXMsYmx1cjp0Ll9vbkJsdXIsaW5wdXQ6W2Z1bmN0aW9uKGUpe2UudGFyZ2V0LmNvbXBvc2luZ3x8KHQudmFsdWVTeW5jPWUudGFyZ2V0LnZhbHVlKX0sZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25JbnB1dChlKX1dLGNvbXBvc2l0aW9uc3RhcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25Db21wb3NpdGlvbihlKX0sY29tcG9zaXRpb25lbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25Db21wb3NpdGlvbihlKX0sY29tcG9zaXRpb251cGRhdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCksdC5fb25Db21wb3NpdGlvbihlKX0sa2V5dXA6ZnVuY3Rpb24oZSl7cmV0dXJuIWUudHlwZS5pbmRleE9mKCJrZXkiKSYmdC5fayhlLmtleUNvZGUsImVudGVyIiwxMyxlLmtleSwiRW50ZXIiKT9udWxsOihlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uS2V5dXAoZSkpfX19KTpuKCJpbnB1dCIse2RpcmVjdGl2ZXM6W3tuYW1lOiJtb2RlbCIscmF3TmFtZToidi1tb2RlbCIsdmFsdWU6dC52YWx1ZVN5bmMsZXhwcmVzc2lvbjoidmFsdWVTeW5jIn0se25hbWU6ImtleWJvYXJkIixyYXdOYW1lOiJ2LWtleWJvYXJkIn0se25hbWU6ImZpZWxkIixyYXdOYW1lOiJ2LWZpZWxkIn1dLHJlZjoiaW5wdXQiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtaW5wdXQiLGF0dHJzOntkaXNhYmxlZDp0LmRpc2FibGVkLG1heGxlbmd0aDp0Lm1heGxlbmd0aCxzdGVwOnQuX3N0ZXAsZW50ZXJrZXloaW50OnQuY29uZmlybVR5cGUscGF0dGVybjoibnVtYmVyIj09PXQudHlwZT8iWzAtOV0qIjpudWxsLGF1dG9jb21wbGV0ZTp0LmF1dG9jb21wbGV0ZSxpbnB1dG1vZGU6dC5pbnB1dG1vZGUsdHlwZToicmFkaW8ifSxkb21Qcm9wczp7Y2hlY2tlZDp0Ll9xKHQudmFsdWVTeW5jLG51bGwpfSxvbjp7Y2hhbmdlOltmdW5jdGlvbihlKXt0LnZhbHVlU3luYz1udWxsfSxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfV0sZm9jdXM6dC5fb25Gb2N1cyxibHVyOnQuX29uQmx1cixpbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbklucHV0KGUpfSxjb21wb3NpdGlvbnN0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9uZW5kOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9udXBkYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGtleXVwOmZ1bmN0aW9uKGUpe3JldHVybiFlLnR5cGUuaW5kZXhPZigia2V5IikmJnQuX2soZS5rZXlDb2RlLCJlbnRlciIsMTMsZS5rZXksIkVudGVyIik/bnVsbDooZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbktleXVwKGUpKX19fSk6bigiaW5wdXQiLHtkaXJlY3RpdmVzOlt7bmFtZToibW9kZWwiLHJhd05hbWU6InYtbW9kZWwiLHZhbHVlOnQudmFsdWVTeW5jLGV4cHJlc3Npb246InZhbHVlU3luYyJ9LHtuYW1lOiJrZXlib2FyZCIscmF3TmFtZToidi1rZXlib2FyZCJ9LHtuYW1lOiJmaWVsZCIscmF3TmFtZToidi1maWVsZCJ9XSxyZWY6ImlucHV0IixzdGF0aWNDbGFzczoidW5pLWlucHV0LWlucHV0IixhdHRyczp7ZGlzYWJsZWQ6dC5kaXNhYmxlZCxtYXhsZW5ndGg6dC5tYXhsZW5ndGgsc3RlcDp0Ll9zdGVwLGVudGVya2V5aGludDp0LmNvbmZpcm1UeXBlLHBhdHRlcm46Im51bWJlciI9PT10LnR5cGU/IlswLTldKiI6bnVsbCxhdXRvY29tcGxldGU6dC5hdXRvY29tcGxldGUsaW5wdXRtb2RlOnQuaW5wdXRtb2RlLHR5cGU6ImNoZWNrYm94In0sZG9tUHJvcHM6e2NoZWNrZWQ6QXJyYXkuaXNBcnJheSh0LnZhbHVlU3luYyk/dC5faSh0LnZhbHVlU3luYyxudWxsKT4tMTp0LnZhbHVlU3luY30sb246e2NoYW5nZTpbZnVuY3Rpb24oZSl7dmFyIG49dC52YWx1ZVN5bmMscj1lLnRhcmdldCxpPSEhci5jaGVja2VkO2lmKEFycmF5LmlzQXJyYXkobikpe3ZhciBhPXQuX2kobixudWxsKTtyLmNoZWNrZWQ/YTwwJiYodC52YWx1ZVN5bmM9bi5jb25jYXQoW251bGxdKSk6YT4tMSYmKHQudmFsdWVTeW5jPW4uc2xpY2UoMCxhKS5jb25jYXQobi5zbGljZShhKzEpKSl9ZWxzZSB0LnZhbHVlU3luYz1pfSxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfV0sZm9jdXM6dC5fb25Gb2N1cyxibHVyOnQuX29uQmx1cixpbnB1dDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbklucHV0KGUpfSxjb21wb3NpdGlvbnN0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9uZW5kOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGNvbXBvc2l0aW9udXBkYXRlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpLHQuX29uQ29tcG9zaXRpb24oZSl9LGtleXVwOmZ1bmN0aW9uKGUpe3JldHVybiFlLnR5cGUuaW5kZXhPZigia2V5IikmJnQuX2soZS5rZXlDb2RlLCJlbnRlciIsMTMsZS5rZXksIkVudGVyIik/bnVsbDooZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbktleXVwKGUpKX19fSksdC5kaXNhYmxlZCYmdC5maXhDb2xvcj9uKCJpbnB1dCIse3JlZjoiaW5wdXQiLHN0YXRpY0NsYXNzOiJ1bmktaW5wdXQtaW5wdXQiLGF0dHJzOnt0YWJpbmRleDoiLTEiLHJlYWRvbmx5OnQuZGlzYWJsZWQsdHlwZTp0LmlucHV0VHlwZSxtYXhsZW5ndGg6dC5tYXhsZW5ndGgsc3RlcDp0Ll9zdGVwfSxkb21Qcm9wczp7dmFsdWU6dC52YWx1ZVN5bmN9LG9uOntmb2N1czpmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXQuYmx1cigpfX19KTp0Ll9lKCldKV0pfSxpPVtdfSwiODYxZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjE2MjYiKSxpPW4oIjhlYTEiKSxhPWkuYWxsO3QuZXhwb3J0cz1pLklTX0hUTUxEREE/ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0P251bGwhPT10OnIodCl8fHQ9PT1hfTpmdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ/bnVsbCE9PXQ6cih0KX19LCI4NjZlIjpmdW5jdGlvbih0KXt0LmV4cG9ydHM9SlNPTi5wYXJzZSgneyJ1bmkuYXBwLnF1aXQiOiJQdWxzZSBvdHJhIHZleiBwYXJhIHNhbGlyIiwidW5pLmFzeW5jLmVycm9yIjoiU2UgYWdvdMOzIGVsIHRpZW1wbyBkZSBjb25leGnDs24sIGhhZ2EgY2xpYyBlbiBsYSBwYW50YWxsYSBwYXJhIHZvbHZlciBhIGludGVudGFybG8uIiwidW5pLnNob3dBY3Rpb25TaGVldC5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5zaG93VG9hc3QudW5wYWlyZWQiOiJUZW5nYSBlbiBjdWVudGEgcXVlIHNob3dUb2FzdCBkZWJlIGVzdGFyIGVtcGFyZWphZG8gY29uIGhpZGVUb2FzdCIsInVuaS5zaG93TG9hZGluZy51bnBhaXJlZCI6IlRlbmdhIGVuIGN1ZW50YSBxdWUgc2hvd0xvYWRpbmcgZGViZSBlc3RhciBlbXBhcmVqYWRvIGNvbiBoaWRlTG9hZGluZyIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoiQ2FuY2VsYXIiLCJ1bmkuc2hvd01vZGFsLmNvbmZpcm0iOiJPSyIsInVuaS5jaG9vc2VJbWFnZS5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoiw4FsYnVtIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ8OhbWFyYSIsInVuaS5jaG9vc2VWaWRlby5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5jaG9vc2VWaWRlby5zb3VyY2VUeXBlLmFsYnVtIjoiw4FsYnVtIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ8OhbWFyYSIsInVuaS5jaG9vc2VGaWxlLm5vdFVzZXJBY3RpdmF0aW9uIjoiRWwgY3VhZHJvIGRlIGRpw6Fsb2dvIGRlbCBzZWxlY3RvciBkZSBhcmNoaXZvcyBzb2xvIHNlIHB1ZWRlIG1vc3RyYXIgY29uIGxhIGFjdGl2YWNpw7NuIGRlbCB1c3VhcmlvIiwidW5pLnByZXZpZXdJbWFnZS5jYW5jZWwiOiJDYW5jZWxhciIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiJHdWFyZGFyIGltYWdlbiIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5zdWNjZXNzIjoiR3VhcmRhZG8gZXhpdG9zYW1lbnRlIiwidW5pLnByZXZpZXdJbWFnZS5zYXZlLmZhaWwiOiJFcnJvciBhbCBndWFyZGFyIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IkNvbnRlbmlkbyBjb3BpYWRvIiwidW5pLnNjYW5Db2RlLnRpdGxlIjoiQ8OzZGlnbyBkZSBlc2NhbmVvIiwidW5pLnNjYW5Db2RlLmFsYnVtIjoiw4FsYnVtIiwidW5pLnNjYW5Db2RlLmZhaWwiOiLDiWNoZWMgZGUgbGEgcmVjb25uYWlzc2FuY2UiLCJ1bmkuc2NhbkNvZGUuZmxhc2gub24iOiJUb3F1ZSBwYXJhIGVuY2VuZGVyIGxhIGx1eiIsInVuaS5zY2FuQ29kZS5mbGFzaC5vZmYiOiJUb3F1ZSBwYXJhIGFwYWdhciBsYSBsdXoiLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLmF1dGhDb250ZW50IjoiUmVjb25vY2ltaWVudG8gZGUgaHVlbGxhcyBkYWN0aWxhcmVzIiwidW5pLnN0YXJ0U290ZXJBdXRoZW50aWNhdGlvbi53YWl0aW5nQ29udGVudCI6IklycmVjb25vY2libGUiLCJ1bmkucGlja2VyLmRvbmUiOiJPSyIsInVuaS5waWNrZXIuY2FuY2VsIjoiQ2FuY2VsYXIiLCJ1bmkudmlkZW8uZGFubXUiOiJEYW5tdSIsInVuaS52aWRlby52b2x1bWUiOiJWb2x1bWVuIiwidW5pLmJ1dHRvbi5mZWVkYmFjay50aXRsZSI6InJlYWxpbWVudGFjacOzbiIsInVuaS5idXR0b24uZmVlZGJhY2suc2VuZCI6ImVudmlhciIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiJFbmNvbnRyYXIiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoiQ2FuY2VsYXIifScpfSw4NzUxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZSk7ciYmbiYmKHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSxyPW51bGwpO3J8fChyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksci50eXBlPSJ0ZXh0L2NzcyIsZSYmKHIuaWQ9ZSksZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChyKSk7ci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSl9fSwiODdkNiI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7ZS5kZWZhdWx0PXtuYW1lOiJBc3luY0xvYWRpbmcifX0sODkyNTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9bigiMTYyNiIpLGE9bigiYzZjZCIpLG89cihGdW5jdGlvbi50b1N0cmluZyk7aShhLmluc3BlY3RTb3VyY2UpfHwoYS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpfSksdC5leHBvcnRzPWEuaW5zcGVjdFNvdXJjZX0sODk1OTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LHIpe24oIjdhODIiKTt2YXIgaT1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DYW52YXNDb250ZXh0PXZvaWQgMCxlLmNhbnZhc0dldEltYWdlRGF0YT1mdW5jdGlvbih0LGUpe3ZhciBuPXQuY2FudmFzSWQscj10LngsaT10LnksYT10LndpZHRoLG89dC5oZWlnaHQscz0oMCxmLmdldEN1cnJlbnRQYWdlSWQpKCk7aWYoIXMpcmV0dXJuIHZvaWQoMCxkLmludm9rZSkoZSx7ZXJyTXNnOiJjYW52YXNHZXRJbWFnZURhdGE6ZmFpbCJ9KTt2YXIgYz1wLnB1c2goKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZGF0YTtuJiZuLmxlbmd0aCYmKHQuZGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkobikpOygwLGQuaW52b2tlKShlLHQpfSkpO3YobixzLCJnZXRJbWFnZURhdGEiLHt4OnIseTppLHdpZHRoOmEsaGVpZ2h0Om8sY2FsbGJhY2tJZDpjfSl9LGUuY2FudmFzUHV0SW1hZ2VEYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5jYW52YXNJZCxyPXQuZGF0YSxpPXQueCxhPXQueSxvPXQud2lkdGgscz10LmhlaWdodCxjPSgwLGYuZ2V0Q3VycmVudFBhZ2VJZCkoKTtpZighYylyZXR1cm4gdm9pZCgwLGQuaW52b2tlKShlLHtlcnJNc2c6ImNhbnZhc1B1dEltYWdlRGF0YTpmYWlsIn0pO3ZhciB1PXAucHVzaCgoZnVuY3Rpb24odCl7KDAsZC5pbnZva2UpKGUsdCl9KSk7cj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyKTt2KG4sYywicHV0SW1hZ2VEYXRhIix7ZGF0YTpyLHg6aSx5OmEsd2lkdGg6byxoZWlnaHQ6cyxjb21wcmVzc2VkOnZvaWQgMCxjYWxsYmFja0lkOnV9KX0sZS5jYW52YXNUb1RlbXBGaWxlUGF0aD1mdW5jdGlvbih0LGUpe3ZhciBuPXQueCxyPXZvaWQgMD09PW4/MDpuLGk9dC55LGE9dm9pZCAwPT09aT8wOmksbz10LndpZHRoLHM9dC5oZWlnaHQsYz10LmRlc3RXaWR0aCx1PXQuZGVzdEhlaWdodCxsPXQuY2FudmFzSWQsZz10LmZpbGVUeXBlLG09dC5xdWFsaXR5LGI9KDAsZi5nZXRDdXJyZW50UGFnZUlkKSgpO2lmKCFiKXJldHVybiB2b2lkKDAsZC5pbnZva2UpKGUse2Vyck1zZzoiY2FudmFzVG9UZW1wRmlsZVBhdGg6ZmFpbCJ9KTt2YXIgeT1wLnB1c2goKGZ1bmN0aW9uKHQpeygwLGQuaW52b2tlKShlLHQpfSkpLF89IiIuY29uY2F0KGguVEVNUF9QQVRILCIvY2FudmFzIik7dihsLGIsInRvVGVtcEZpbGVQYXRoIix7eDpyLHk6YSx3aWR0aDpvLGhlaWdodDpzLGRlc3RXaWR0aDpjLGRlc3RIZWlnaHQ6dSxmaWxlVHlwZTpnLHF1YWxpdHk6bSxkaXJuYW1lOl8sY2FsbGJhY2tJZDp5fSl9LGUuY3JlYXRlQ2FudmFzQ29udGV4dD1mdW5jdGlvbihlLG4pe2lmKG4pcmV0dXJuIG5ldyB3KGUsbi4kcGFnZS5pZCk7dmFyIHI9KDAsZi5nZXRDdXJyZW50UGFnZUlkKSgpO2lmKHIpcmV0dXJuIG5ldyB3KGUscik7dC5lbWl0KCJvbkVycm9yIiwiY3JlYXRlQ2FudmFzQ29udGV4dDpmYWlsIil9O3ZhciBhPWkobigiNTNjYSIpKSxvPWkobigiMjkwOSIpKSxzPWkobigiZDRlYyIpKSxjPWkobigiYmVlMiIpKTtuKCJhYzFmIiksbigiZTI1ZSIpLG4oImZiNmEiKSxuKCI5OWFmIiksbigiZDgxZCIpLG4oIjQ5OGEiKSxuKCJhY2Q4IiksbigiMTRkOSIpLG4oImM5NzUiKSxuKCI3ZGIwIiksbigiZDNiNyIpLG4oIjhhNzkiKSxuKCJhOWUzIiksbigiZDQwMSIpLG4oIjI1ZjAiKSxuKCJlOWM0IiksbigiNDY2ZCIpLG4oIjEyNzYiKSxuKCIxNTliIiksbigiNTMxOSIpLG4oImFjZTQiKSxuKCI4YTU5IiksbigiOTA3YSIpLG4oIjlhOGMiKSxuKCJhOTc1IiksbigiNzM1ZSIpLG4oImMxYWMiKSxuKCJkMTM5IiksbigiM2E3YiIpLG4oIjk4NmEiKSxuKCIxZDAyIiksbigiZDVkNiIpLG4oIjgyZjgiKSxuKCJlOTFmIiksbigiNjBiZCIpLG4oIjVmOTYiKSxuKCIzMjgwIiksbigiM2ZjYyIpLG4oImNhOTEiKSxuKCIyNWExIiksbigiY2QyNiIpLG4oIjNjNWQiKSxuKCIyOTU0IiksbigiNjQ5ZSIpLG4oIjIxOWMiKSxuKCJiMzlhIiksbigiNzJmNyIpO3ZhciB1PW4oImRiNmEiKSxsPWkobigiZmYyMiIpKSxmPW4oIjI0MTIiKSxkPW4oIjczMjkiKSxoPW4oIjkwNjYiKSxwPSgwLGwuZGVmYXVsdCkoImNhbnZhc0V2ZW50Iik7ZnVuY3Rpb24gdihlLG4scixpKXt0LnB1Ymxpc2hIYW5kbGVyKG4rIi1jYW52YXMtIitlLHtjYW52YXNJZDplLHR5cGU6cixkYXRhOml9LG4pfXQuc3Vic2NyaWJlKCJvbkNhbnZhc01ldGhvZENhbGxiYWNrIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5jYWxsYmFja0lkLG49dC5kYXRhLHI9cC5wb3AoZSk7ciYmcihuKX0pKTt2YXIgZz17YWxpY2VibHVlOiIjZjBmOGZmIixhbnRpcXVld2hpdGU6IiNmYWViZDciLGFxdWE6IiMwMGZmZmYiLGFxdWFtYXJpbmU6IiM3ZmZmZDQiLGF6dXJlOiIjZjBmZmZmIixiZWlnZToiI2Y1ZjVkYyIsYmlzcXVlOiIjZmZlNGM0IixibGFjazoiIzAwMDAwMCIsYmxhbmNoZWRhbG1vbmQ6IiNmZmViY2QiLGJsdWU6IiMwMDAwZmYiLGJsdWV2aW9sZXQ6IiM4YTJiZTIiLGJyb3duOiIjYTUyYTJhIixidXJseXdvb2Q6IiNkZWI4ODciLGNhZGV0Ymx1ZToiIzVmOWVhMCIsY2hhcnRyZXVzZToiIzdmZmYwMCIsY2hvY29sYXRlOiIjZDI2OTFlIixjb3JhbDoiI2ZmN2Y1MCIsY29ybmZsb3dlcmJsdWU6IiM2NDk1ZWQiLGNvcm5zaWxrOiIjZmZmOGRjIixjcmltc29uOiIjZGMxNDNjIixjeWFuOiIjMDBmZmZmIixkYXJrYmx1ZToiIzAwMDA4YiIsZGFya2N5YW46IiMwMDhiOGIiLGRhcmtnb2xkZW5yb2Q6IiNiODg2MGIiLGRhcmtncmF5OiIjYTlhOWE5IixkYXJrZ3JleToiI2E5YTlhOSIsZGFya2dyZWVuOiIjMDA2NDAwIixkYXJra2hha2k6IiNiZGI3NmIiLGRhcmttYWdlbnRhOiIjOGIwMDhiIixkYXJrb2xpdmVncmVlbjoiIzU1NmIyZiIsZGFya29yYW5nZToiI2ZmOGMwMCIsZGFya29yY2hpZDoiIzk5MzJjYyIsZGFya3JlZDoiIzhiMDAwMCIsZGFya3NhbG1vbjoiI2U5OTY3YSIsZGFya3NlYWdyZWVuOiIjOGZiYzhmIixkYXJrc2xhdGVibHVlOiIjNDgzZDhiIixkYXJrc2xhdGVncmF5OiIjMmY0ZjRmIixkYXJrc2xhdGVncmV5OiIjMmY0ZjRmIixkYXJrdHVycXVvaXNlOiIjMDBjZWQxIixkYXJrdmlvbGV0OiIjOTQwMGQzIixkZWVwcGluazoiI2ZmMTQ5MyIsZGVlcHNreWJsdWU6IiMwMGJmZmYiLGRpbWdyYXk6IiM2OTY5NjkiLGRpbWdyZXk6IiM2OTY5NjkiLGRvZGdlcmJsdWU6IiMxZTkwZmYiLGZpcmVicmljazoiI2IyMjIyMiIsZmxvcmFsd2hpdGU6IiNmZmZhZjAiLGZvcmVzdGdyZWVuOiIjMjI4YjIyIixmdWNoc2lhOiIjZmYwMGZmIixnYWluc2Jvcm86IiNkY2RjZGMiLGdob3N0d2hpdGU6IiNmOGY4ZmYiLGdvbGQ6IiNmZmQ3MDAiLGdvbGRlbnJvZDoiI2RhYTUyMCIsZ3JheToiIzgwODA4MCIsZ3JleToiIzgwODA4MCIsZ3JlZW46IiMwMDgwMDAiLGdyZWVueWVsbG93OiIjYWRmZjJmIixob25leWRldzoiI2YwZmZmMCIsaG90cGluazoiI2ZmNjliNCIsaW5kaWFucmVkOiIjY2Q1YzVjIixpbmRpZ286IiM0YjAwODIiLGl2b3J5OiIjZmZmZmYwIixraGFraToiI2YwZTY4YyIsbGF2ZW5kZXI6IiNlNmU2ZmEiLGxhdmVuZGVyYmx1c2g6IiNmZmYwZjUiLGxhd25ncmVlbjoiIzdjZmMwMCIsbGVtb25jaGlmZm9uOiIjZmZmYWNkIixsaWdodGJsdWU6IiNhZGQ4ZTYiLGxpZ2h0Y29yYWw6IiNmMDgwODAiLGxpZ2h0Y3lhbjoiI2UwZmZmZiIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6IiNmYWZhZDIiLGxpZ2h0Z3JheToiI2QzZDNkMyIsbGlnaHRncmV5OiIjZDNkM2QzIixsaWdodGdyZWVuOiIjOTBlZTkwIixsaWdodHBpbms6IiNmZmI2YzEiLGxpZ2h0c2FsbW9uOiIjZmZhMDdhIixsaWdodHNlYWdyZWVuOiIjMjBiMmFhIixsaWdodHNreWJsdWU6IiM4N2NlZmEiLGxpZ2h0c2xhdGVncmF5OiIjNzc4ODk5IixsaWdodHNsYXRlZ3JleToiIzc3ODg5OSIsbGlnaHRzdGVlbGJsdWU6IiNiMGM0ZGUiLGxpZ2h0eWVsbG93OiIjZmZmZmUwIixsaW1lOiIjMDBmZjAwIixsaW1lZ3JlZW46IiMzMmNkMzIiLGxpbmVuOiIjZmFmMGU2IixtYWdlbnRhOiIjZmYwMGZmIixtYXJvb246IiM4MDAwMDAiLG1lZGl1bWFxdWFtYXJpbmU6IiM2NmNkYWEiLG1lZGl1bWJsdWU6IiMwMDAwY2QiLG1lZGl1bW9yY2hpZDoiI2JhNTVkMyIsbWVkaXVtcHVycGxlOiIjOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiIzNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiIjN2I2OGVlIixtZWRpdW1zcHJpbmdncmVlbjoiIzAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiIjNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6IiNjNzE1ODUiLG1pZG5pZ2h0Ymx1ZToiIzE5MTk3MCIsbWludGNyZWFtOiIjZjVmZmZhIixtaXN0eXJvc2U6IiNmZmU0ZTEiLG1vY2Nhc2luOiIjZmZlNGI1IixuYXZham93aGl0ZToiI2ZmZGVhZCIsbmF2eToiIzAwMDA4MCIsb2xkbGFjZToiI2ZkZjVlNiIsb2xpdmU6IiM4MDgwMDAiLG9saXZlZHJhYjoiIzZiOGUyMyIsb3JhbmdlOiIjZmZhNTAwIixvcmFuZ2VyZWQ6IiNmZjQ1MDAiLG9yY2hpZDoiI2RhNzBkNiIscGFsZWdvbGRlbnJvZDoiI2VlZThhYSIscGFsZWdyZWVuOiIjOThmYjk4IixwYWxldHVycXVvaXNlOiIjYWZlZWVlIixwYWxldmlvbGV0cmVkOiIjZGI3MDkzIixwYXBheWF3aGlwOiIjZmZlZmQ1IixwZWFjaHB1ZmY6IiNmZmRhYjkiLHBlcnU6IiNjZDg1M2YiLHBpbms6IiNmZmMwY2IiLHBsdW06IiNkZGEwZGQiLHBvd2RlcmJsdWU6IiNiMGUwZTYiLHB1cnBsZToiIzgwMDA4MCIscmViZWNjYXB1cnBsZToiIzY2MzM5OSIscmVkOiIjZmYwMDAwIixyb3N5YnJvd246IiNiYzhmOGYiLHJveWFsYmx1ZToiIzQxNjllMSIsc2FkZGxlYnJvd246IiM4YjQ1MTMiLHNhbG1vbjoiI2ZhODA3MiIsc2FuZHlicm93bjoiI2Y0YTQ2MCIsc2VhZ3JlZW46IiMyZThiNTciLHNlYXNoZWxsOiIjZmZmNWVlIixzaWVubmE6IiNhMDUyMmQiLHNpbHZlcjoiI2MwYzBjMCIsc2t5Ymx1ZToiIzg3Y2VlYiIsc2xhdGVibHVlOiIjNmE1YWNkIixzbGF0ZWdyYXk6IiM3MDgwOTAiLHNsYXRlZ3JleToiIzcwODA5MCIsc25vdzoiI2ZmZmFmYSIsc3ByaW5nZ3JlZW46IiMwMGZmN2YiLHN0ZWVsYmx1ZToiIzQ2ODJiNCIsdGFuOiIjZDJiNDhjIix0ZWFsOiIjMDA4MDgwIix0aGlzdGxlOiIjZDhiZmQ4Iix0b21hdG86IiNmZjYzNDciLHR1cnF1b2lzZToiIzQwZTBkMCIsdmlvbGV0OiIjZWU4MmVlIix3aGVhdDoiI2Y1ZGViMyIsd2hpdGU6IiNmZmZmZmYiLHdoaXRlc21va2U6IiNmNWY1ZjUiLHllbGxvdzoiI2ZmZmYwMCIseWVsbG93Z3JlZW46IiM5YWNkMzIiLHRyYW5zcGFyZW50OiIjMDAwMDAwMDAifTtmdW5jdGlvbiBtKHQpe3Q9dHx8IiMwMDAwMDAiO3ZhciBlPW51bGw7aWYobnVsbCE9KGU9L14jKFswLTl8QS1GfGEtZl17Nn0pJC8uZXhlYyh0KSkpe3ZhciBuPXBhcnNlSW50KGVbMV0uc2xpY2UoMCwyKSwxNiksaT1wYXJzZUludChlWzFdLnNsaWNlKDIsNCksMTYpLGE9cGFyc2VJbnQoZVsxXS5zbGljZSg0KSwxNik7cmV0dXJuW24saSxhLDI1NV19aWYobnVsbCE9KGU9L14jKFswLTl8QS1GfGEtZl17M30pJC8uZXhlYyh0KSkpe3ZhciBvPWVbMV0uc2xpY2UoMCwxKSxzPWVbMV0uc2xpY2UoMSwyKSxjPWVbMV0uc2xpY2UoMiwzKTtyZXR1cm4gbz1wYXJzZUludChvK28sMTYpLHM9cGFyc2VJbnQocytzLDE2KSxjPXBhcnNlSW50KGMrYywxNiksW28scyxjLDI1NV19aWYobnVsbCE9KGU9L15yZ2JcKCguKylcKSQvLmV4ZWModCkpKXJldHVybiBlWzFdLnNwbGl0KCIsIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4oMjU1LHBhcnNlSW50KHQudHJpbSgpKSl9KSkuY29uY2F0KDI1NSk7aWYobnVsbCE9KGU9L15yZ2JhXCgoLispXCkkLy5leGVjKHQpKSlyZXR1cm4gZVsxXS5zcGxpdCgiLCIpLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gMz09PWU/TWF0aC5mbG9vcigyNTUqcGFyc2VGbG9hdCh0LnRyaW0oKSkpOk1hdGgubWluKDI1NSxwYXJzZUludCh0LnRyaW0oKSkpfSkpO3ZhciBsPXQudG9Mb3dlckNhc2UoKTtpZigoMCx1Lmhhc093bikoZyxsKSl7ZT0vXiMoWzAtOXxBLUZ8YS1mXXs2LDh9KSQvLmV4ZWMoZ1tsXSk7dmFyIGY9cGFyc2VJbnQoZVsxXS5zbGljZSgwLDIpLDE2KSxkPXBhcnNlSW50KGVbMV0uc2xpY2UoMiw0KSwxNiksaD1wYXJzZUludChlWzFdLnNsaWNlKDQsNiksMTYpLHA9cGFyc2VJbnQoZVsxXS5zbGljZSg2LDgpLDE2KTtyZXR1cm4gcD1wPj0wP3A6MjU1LFtmLGQsaCxwXX1yZXR1cm4gci5lcnJvcigidW5zdXBwb3J0ZWQgY29sb3I6Iit0KSxbMCwwLDAsMjU1XX1mdW5jdGlvbiBiKHQsZSl7dGhpcy50eXBlPSJwYXR0ZXJuIix0aGlzLmRhdGE9dCx0aGlzLmNvbG9yU3RvcD1lfXZhciB5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4peygwLHMuZGVmYXVsdCkodGhpcyx0KSx0aGlzLnR5cGU9ZSx0aGlzLmRhdGE9bix0aGlzLmNvbG9yU3RvcD1bXX1yZXR1cm4oMCxjLmRlZmF1bHQpKHQsW3trZXk6ImFkZENvbG9yU3RvcCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLmNvbG9yU3RvcC5wdXNoKFt0LG0oZSldKX19XSksdH0oKTtmdW5jdGlvbiBfKHQpe3RoaXMud2lkdGg9dH12YXIgdz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXsoMCxzLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5pZD1lLHRoaXMucGFnZUlkPW4sdGhpcy5hY3Rpb25zPVtdLHRoaXMucGF0aD1bXSx0aGlzLnN1YnBhdGg9W10sdGhpcy5jdXJyZW50VHJhbnNmb3JtPVtdLHRoaXMuY3VycmVudFN0ZXBBbmltYXRlcz1bXSx0aGlzLmRyYXdpbmdTdGF0ZT1bXSx0aGlzLnN0YXRlPXtsaW5lRGFzaDpbMCwwXSxzaGFkb3dPZmZzZXRYOjAsc2hhZG93T2Zmc2V0WTowLHNoYWRvd0JsdXI6MCxzaGFkb3dDb2xvcjpbMCwwLDAsMF0sZm9udDoiMTBweCBzYW5zLXNlcmlmIixmb250U2l6ZToxMCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTdHlsZToibm9ybWFsIixmb250RmFtaWx5OiJzYW5zLXNlcmlmIn19cmV0dXJuKDAsYy5kZWZhdWx0KSh0LFt7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxuPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHI9KDAsby5kZWZhdWx0KSh0aGlzLmFjdGlvbnMpO3RoaXMuYWN0aW9ucz1bXSx0aGlzLnBhdGg9W10sImZ1bmN0aW9uIj09PXR5cGVvZiBuJiYodD1wLnB1c2gobikpLHYodGhpcy5pZCx0aGlzLnBhZ2VJZCwiYWN0aW9uc0NoYW5nZWQiLHthY3Rpb25zOnIscmVzZXJ2ZTplLGNhbGxiYWNrSWQ6dH0pfX0se2tleToiY3JlYXRlTGluZWFyR3JhZGllbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZXcgeSgibGluZWFyIixbdCxlLG4scl0pfX0se2tleToiY3JlYXRlQ2lyY3VsYXJHcmFkaWVudCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuZXcgeSgicmFkaWFsIixbdCxlLG5dKX19LHtrZXk6ImNyZWF0ZVBhdHRlcm4iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZSlyLmVycm9yKCJGYWlsZWQgdG8gZXhlY3V0ZSAnY3JlYXRlUGF0dGVybicgb24gJ0NhbnZhc0NvbnRleHQnOiAyIGFyZ3VtZW50cyByZXF1aXJlZCwgYnV0IG9ubHkgMSBwcmVzZW50LiIpO2Vsc2V7aWYoIShbInJlcGVhdCIsInJlcGVhdC14IiwicmVwZWF0LXkiLCJuby1yZXBlYXQiXS5pbmRleE9mKGUpPDApKXJldHVybiBuZXcgYih0LGUpO3IuZXJyb3IoIkZhaWxlZCB0byBleGVjdXRlICdjcmVhdGVQYXR0ZXJuJyBvbiAnQ2FudmFzQ29udGV4dCc6IFRoZSBwcm92aWRlZCB0eXBlICgnIitlKyInKSBpcyBub3Qgb25lIG9mICdyZXBlYXQnLCAnbm8tcmVwZWF0JywgJ3JlcGVhdC14Jywgb3IgJ3JlcGVhdC15Jy4iKX19fSx7a2V5OiJtZWFzdXJlVGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdGF0ZS5mb250LG49MDtyZXR1cm4gbj1mdW5jdGlvbih0LGUpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHI9bi5nZXRDb250ZXh0KCIyZCIpO3JldHVybiByLmZvbnQ9ZSxyLm1lYXN1cmVUZXh0KHQpLndpZHRofHwwfSh0LGUpLG5ldyBfKG4pfX0se2tleToic2F2ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzYXZlIixkYXRhOltdfSksdGhpcy5kcmF3aW5nU3RhdGUucHVzaCh0aGlzLnN0YXRlKX19LHtrZXk6InJlc3RvcmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoicmVzdG9yZSIsZGF0YTpbXX0pLHRoaXMuc3RhdGU9dGhpcy5kcmF3aW5nU3RhdGUucG9wKCl8fHtsaW5lRGFzaDpbMCwwXSxzaGFkb3dPZmZzZXRYOjAsc2hhZG93T2Zmc2V0WTowLHNoYWRvd0JsdXI6MCxzaGFkb3dDb2xvcjpbMCwwLDAsMF0sZm9udDoiMTBweCBzYW5zLXNlcmlmIixmb250U2l6ZToxMCxmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTdHlsZToibm9ybWFsIixmb250RmFtaWx5OiJzYW5zLXNlcmlmIn19fSx7a2V5OiJiZWdpblBhdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wYXRoPVtdLHRoaXMuc3VicGF0aD1bXSx0aGlzLnBhdGgucHVzaCh7bWV0aG9kOiJiZWdpblBhdGgiLGRhdGE6W119KX19LHtrZXk6Im1vdmVUbyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLnBhdGgucHVzaCh7bWV0aG9kOiJtb3ZlVG8iLGRhdGE6W3QsZV19KSx0aGlzLnN1YnBhdGg9W1t0LGVdXX19LHtrZXk6ImxpbmVUbyIsdmFsdWU6ZnVuY3Rpb24odCxlKXswPT09dGhpcy5wYXRoLmxlbmd0aCYmMD09PXRoaXMuc3VicGF0aC5sZW5ndGg/dGhpcy5wYXRoLnB1c2goe21ldGhvZDoibW92ZVRvIixkYXRhOlt0LGVdfSk6dGhpcy5wYXRoLnB1c2goe21ldGhvZDoibGluZVRvIixkYXRhOlt0LGVdfSksdGhpcy5zdWJwYXRoLnB1c2goW3QsZV0pfX0se2tleToicXVhZHJhdGljQ3VydmVUbyIsdmFsdWU6ZnVuY3Rpb24odCxlLG4scil7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoicXVhZHJhdGljQ3VydmVUbyIsZGF0YTpbdCxlLG4scl19KSx0aGlzLnN1YnBhdGgucHVzaChbbixyXSl9fSx7a2V5OiJiZXppZXJDdXJ2ZVRvIix2YWx1ZTpmdW5jdGlvbih0LGUsbixyLGksYSl7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiYmV6aWVyQ3VydmVUbyIsZGF0YTpbdCxlLG4scixpLGFdfSksdGhpcy5zdWJwYXRoLnB1c2goW2ksYV0pfX0se2tleToiYXJjIix2YWx1ZTpmdW5jdGlvbih0LGUsbixyLGkpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdJiZhcmd1bWVudHNbNV07dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiYXJjIixkYXRhOlt0LGUsbixyLGksYV19KSx0aGlzLnN1YnBhdGgucHVzaChbdCxlXSl9fSx7a2V5OiJyZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUsbixyKXt0aGlzLnBhdGgucHVzaCh7bWV0aG9kOiJyZWN0IixkYXRhOlt0LGUsbixyXX0pLHRoaXMuc3VicGF0aD1bW3QsZV1dfX0se2tleToiYXJjVG8iLHZhbHVlOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiYXJjVG8iLGRhdGE6W3QsZSxuLHIsaV19KSx0aGlzLnN1YnBhdGgucHVzaChbbixyXSl9fSx7a2V5OiJjbGlwIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6ImNsaXAiLGRhdGE6KDAsby5kZWZhdWx0KSh0aGlzLnBhdGgpfSl9fSx7a2V5OiJjbG9zZVBhdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wYXRoLnB1c2goe21ldGhvZDoiY2xvc2VQYXRoIixkYXRhOltdfSksdGhpcy5zdWJwYXRoLmxlbmd0aCYmKHRoaXMuc3VicGF0aD1bdGhpcy5zdWJwYXRoLnNoaWZ0KCldKX19LHtrZXk6ImNsZWFyQWN0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFjdGlvbnM9W10sdGhpcy5wYXRoPVtdLHRoaXMuc3VicGF0aD1bXX19LHtrZXk6ImdldEFjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9KDAsby5kZWZhdWx0KSh0aGlzLmFjdGlvbnMpO3JldHVybiB0aGlzLmNsZWFyQWN0aW9ucygpLHR9fSx7a2V5OiJsaW5lRGFzaE9mZnNldCIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldExpbmVEYXNoT2Zmc2V0IixkYXRhOlt0XX0pfX0se2tleToiZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0R2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIixkYXRhOlt0XX0pfX0se2tleToic2hhZG93Qmx1ciIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFNoYWRvd0JsdXIiLGRhdGE6W3RdfSl9fSx7a2V5OiJzaGFkb3dDb2xvciIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFNoYWRvd0NvbG9yIixkYXRhOlt0XX0pfX0se2tleToic2hhZG93T2Zmc2V0WCIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFNoYWRvd09mZnNldFgiLGRhdGE6W3RdfSl9fSx7a2V5OiJzaGFkb3dPZmZzZXRZIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0U2hhZG93T2Zmc2V0WSIsZGF0YTpbdF19KX19LHtrZXk6ImZvbnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlLmZvbnR9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuc3RhdGUuZm9udD10O3ZhciBuPXQubWF0Y2goL14oKFtcd1wtXStccykqKShcZCtyP3B4KShcLyhcZCtcLj9cZCoocj9weCk/KSk/XHMrKC4qKS8pO2lmKG4pe3ZhciBpPW5bMV0udHJpbSgpLnNwbGl0KC9ccy8pLGE9cGFyc2VGbG9hdChuWzNdKSxvPW5bN10scz1bXTtpLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7WyJpdGFsaWMiLCJvYmxpcXVlIiwibm9ybWFsIl0uaW5kZXhPZih0KT4tMT8ocy5wdXNoKHttZXRob2Q6InNldEZvbnRTdHlsZSIsZGF0YTpbdF19KSxlLnN0YXRlLmZvbnRTdHlsZT10KTpbImJvbGQiLCJub3JtYWwiXS5pbmRleE9mKHQpPi0xPyhzLnB1c2goe21ldGhvZDoic2V0Rm9udFdlaWdodCIsZGF0YTpbdF19KSxlLnN0YXRlLmZvbnRXZWlnaHQ9dCk6MD09PW4/KHMucHVzaCh7bWV0aG9kOiJzZXRGb250U3R5bGUiLGRhdGE6WyJub3JtYWwiXX0pLGUuc3RhdGUuZm9udFN0eWxlPSJub3JtYWwiKToxPT09biYmYygpfSkpLDE9PT1pLmxlbmd0aCYmYygpLGk9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGFbMF19KSkuam9pbigiICIpLHRoaXMuc3RhdGUuZm9udFNpemU9YSx0aGlzLnN0YXRlLmZvbnRGYW1pbHk9byx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzZXRGb250IixkYXRhOlsiIi5jb25jYXQoaSwiICIpLmNvbmNhdChhLCJweCAiKS5jb25jYXQobyldfSl9ZWxzZSByLndhcm4oIkZhaWxlZCB0byBzZXQgJ2ZvbnQnIG9uICdDYW52YXNDb250ZXh0JzogaW52YWxpZCBmb3JtYXQuIik7ZnVuY3Rpb24gYygpe3MucHVzaCh7bWV0aG9kOiJzZXRGb250V2VpZ2h0IixkYXRhOlsibm9ybWFsIl19KSxlLnN0YXRlLmZvbnRXZWlnaHQ9Im5vcm1hbCJ9fX0se2tleToiZmlsbFN0eWxlIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5zZXRGaWxsU3R5bGUodCl9fSx7a2V5OiJzdHJva2VTdHlsZSIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuc2V0U3Ryb2tlU3R5bGUodCl9fSx7a2V5OiJnbG9iYWxBbHBoYSIsc2V0OmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcigyNTUqcGFyc2VGbG9hdCh0KSksdGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0R2xvYmFsQWxwaGEiLGRhdGE6W3RdfSl9fSx7a2V5OiJ0ZXh0QWxpZ24iLHNldDpmdW5jdGlvbih0KXt0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzZXRUZXh0QWxpZ24iLGRhdGE6W3RdfSl9fSx7a2V5OiJsaW5lQ2FwIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0TGluZUNhcCIsZGF0YTpbdF19KX19LHtrZXk6ImxpbmVKb2luIixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0TGluZUpvaW4iLGRhdGE6W3RdfSl9fSx7a2V5OiJsaW5lV2lkdGgiLHNldDpmdW5jdGlvbih0KXt0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOiJzZXRMaW5lV2lkdGgiLGRhdGE6W3RdfSl9fSx7a2V5OiJtaXRlckxpbWl0IixzZXQ6ZnVuY3Rpb24odCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic2V0TWl0ZXJMaW1pdCIsZGF0YTpbdF19KX19LHtrZXk6InRleHRCYXNlbGluZSIsc2V0OmZ1bmN0aW9uKHQpe3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6InNldFRleHRCYXNlbGluZSIsZGF0YTpbdF19KX19XSksdH0oKTtlLkNhbnZhc0NvbnRleHQ9dyxbXS5jb25jYXQoWyJzY2FsZSIsInJvdGF0ZSIsInRyYW5zbGF0ZSIsInNldFRyYW5zZm9ybSIsInRyYW5zZm9ybSJdLFsiZHJhd0ltYWdlIiwiZmlsbFRleHQiLCJmaWxsIiwic3Ryb2tlIiwiZmlsbFJlY3QiLCJzdHJva2VSZWN0IiwiY2xlYXJSZWN0Iiwic3Ryb2tlVGV4dCJdKS5mb3JFYWNoKChmdW5jdGlvbih0KXt3LnByb3RvdHlwZVt0XT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSJmaWxsIjpjYXNlInN0cm9rZSI6cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDp0KyJQYXRoIixkYXRhOigwLG8uZGVmYXVsdCkodGhpcy5wYXRoKX0pfTtjYXNlImZpbGxSZWN0IjpyZXR1cm4gZnVuY3Rpb24odCxlLG4scil7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoiZmlsbFBhdGgiLGRhdGE6W3ttZXRob2Q6InJlY3QiLGRhdGE6W3QsZSxuLHJdfV19KX07Y2FzZSJzdHJva2VSZWN0IjpyZXR1cm4gZnVuY3Rpb24odCxlLG4scil7dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDoic3Ryb2tlUGF0aCIsZGF0YTpbe21ldGhvZDoicmVjdCIsZGF0YTpbdCxlLG4scl19XX0pfTtjYXNlImZpbGxUZXh0IjpjYXNlInN0cm9rZVRleHQiOnJldHVybiBmdW5jdGlvbihlLG4scixpKXt2YXIgYT1bZS50b1N0cmluZygpLG4scl07Im51bWJlciI9PT10eXBlb2YgaSYmYS5wdXNoKGkpLHRoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOmF9KX07Y2FzZSJkcmF3SW1hZ2UiOnJldHVybiBmdW5jdGlvbihlLG4scixpLGEsbyxzLGMsdSl7dmFyIGw7ZnVuY3Rpb24gZih0KXtyZXR1cm4ibnVtYmVyIj09PXR5cGVvZiB0fXZvaWQgMD09PXUmJihvPW4scz1yLGM9aSx1PWEsbj12b2lkIDAscj12b2lkIDAsaT12b2lkIDAsYT12b2lkIDApLGw9ZihuKSYmZihyKSYmZihpKSYmZihhKT9bZSxvLHMsYyx1LG4scixpLGFdOmYoYykmJmYodSk/W2UsbyxzLGMsdV06W2UsbyxzXSx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOnQsZGF0YTpsfSl9O2RlZmF1bHQ6cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspbltyXT1hcmd1bWVudHNbcl07dGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDp0LGRhdGE6bn0pfX19KHQpfSkpLFsic2V0RmlsbFN0eWxlIiwic2V0VGV4dEFsaWduIiwic2V0U3Ryb2tlU3R5bGUiLCJzZXRHbG9iYWxBbHBoYSIsInNldFNoYWRvdyIsInNldEZvbnRTaXplIiwic2V0TGluZUNhcCIsInNldExpbmVKb2luIiwic2V0TGluZVdpZHRoIiwic2V0TWl0ZXJMaW1pdCIsInNldFRleHRCYXNlbGluZSIsInNldExpbmVEYXNoIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7dy5wcm90b3R5cGVbdF09ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2Uic2V0RmlsbFN0eWxlIjpjYXNlInNldFN0cm9rZVN0eWxlIjpyZXR1cm4gZnVuY3Rpb24oZSl7Im9iamVjdCIhPT0oMCxhLmRlZmF1bHQpKGUpP3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOlsibm9ybWFsIixtKGUpXX0pOnRoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOltlLnR5cGUsZS5kYXRhLGUuY29sb3JTdG9wXX0pfTtjYXNlInNldEdsb2JhbEFscGhhIjpyZXR1cm4gZnVuY3Rpb24oZSl7ZT1NYXRoLmZsb29yKDI1NSpwYXJzZUZsb2F0KGUpKSx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOnQsZGF0YTpbZV19KX07Y2FzZSJzZXRTaGFkb3ciOnJldHVybiBmdW5jdGlvbihlLG4scixpKXtpPW0oaSksdGhpcy5hY3Rpb25zLnB1c2goe21ldGhvZDp0LGRhdGE6W2UsbixyLGldfSksdGhpcy5zdGF0ZS5zaGFkb3dCbHVyPXIsdGhpcy5zdGF0ZS5zaGFkb3dDb2xvcj1pLHRoaXMuc3RhdGUuc2hhZG93T2Zmc2V0WD1lLHRoaXMuc3RhdGUuc2hhZG93T2Zmc2V0WT1ufTtjYXNlInNldExpbmVEYXNoIjpyZXR1cm4gZnVuY3Rpb24oZSxuKXtlPWV8fFswLDBdLG49bnx8MCx0aGlzLmFjdGlvbnMucHVzaCh7bWV0aG9kOnQsZGF0YTpbZSxuXX0pLHRoaXMuc3RhdGUubGluZURhc2g9ZX07Y2FzZSJzZXRGb250U2l6ZSI6cmV0dXJuIGZ1bmN0aW9uKGUpe3RoaXMuc3RhdGUuZm9udD10aGlzLnN0YXRlLmZvbnQucmVwbGFjZSgvXGQrXC4/XGQqcHgvLGUrInB4IiksdGhpcy5zdGF0ZS5mb250U2l6ZT1lLHRoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOltlXX0pfTtkZWZhdWx0OnJldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKW5bcl09YXJndW1lbnRzW3JdO3RoaXMuYWN0aW9ucy5wdXNoKHttZXRob2Q6dCxkYXRhOm59KX19fSh0KX0pKX0pLmNhbGwodGhpcyxuKCJhOWFhIiksbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiOGE1MCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnJlcXVlc3RDb21wb25lbnRJbmZvPWZ1bmN0aW9uKGUsbixyKXt0LnB1Ymxpc2hIYW5kbGVyKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIse3JlcUlkOm8ucHVzaChyKSxyZXFzOm59LCgwLGEuY2hlY2tJbldpbmRvd3MpKGUpP2U6ZS4kcGFnZS5pZCl9LG4oIjE0ZDkiKTt2YXIgaT1yKG4oImZmMjIiKSksYT1uKCI5ZDhjIiksbz0oMCxpLmRlZmF1bHQpKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIpfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LCI4YTU5IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNzRlOCIpO3IoIlVpbnQ4IiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdCh0aGlzLGUsbixyKX19KSwhMCl9LCI4YTc5IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjQ2MjUiKSxhPW4oIjA2Y2YiKS5mLG89bigiNTBjNCIpLHM9bigiNTc3ZSIpLGM9bigiNWEzNCIpLHU9bigiMWQ4MCIpLGw9bigiYWIxMyIpLGY9bigiYzQzMCIpLGQ9aSgiIi5lbmRzV2l0aCksaD1pKCIiLnNsaWNlKSxwPU1hdGgubWluLHY9bCgiZW5kc1dpdGgiKSxnPSFmJiYhdiYmISFmdW5jdGlvbigpe3ZhciB0PWEoU3RyaW5nLnByb3RvdHlwZSwiZW5kc1dpdGgiKTtyZXR1cm4gdCYmIXQud3JpdGFibGV9KCk7cih7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohZyYmIXZ9LHtlbmRzV2l0aDpmdW5jdGlvbih0KXt2YXIgZT1zKHUodGhpcykpO2ModCk7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAscj1lLmxlbmd0aCxpPXZvaWQgMD09PW4/cjpwKG8obiksciksYT1zKHQpO3JldHVybiBkP2QoZSxhLGkpOmgoZSxpLWEubGVuZ3RoLGkpPT09YX19KX0sIjhhOWQiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktYXN5bmMtZXJyb3IiLG9uOntjbGljazp0aGlzLl9vbkNsaWNrfX0sW3RoaXMuX3YoIlxuICAiK3RoaXMuX3ModGhpcy4kJHQoInVuaS5hc3luYy5lcnJvciIpKSsiXG4iKV0pfSxpPVtdfSwiOGFhNSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI2NTQ3IikuY2hhckF0O3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGUrKG4/cih0LGUpLmxlbmd0aDoxKX19LCI4YWE3IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiZDAzOSIpLGE9bigiMWM3ZSIpLG89bigiZWJiNSIpLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1Mscz1yLkFycmF5QnVmZmVyLGM9ci5JbnQ4QXJyYXk7dC5leHBvcnRzPSFvfHwhaSgoZnVuY3Rpb24oKXtjKDEpfSkpfHwhaSgoZnVuY3Rpb24oKXtuZXcgYygtMSl9KSl8fCFhKChmdW5jdGlvbih0KXtuZXcgYyxuZXcgYyhudWxsKSxuZXcgYygxLjUpLG5ldyBjKHQpfSksITApfHxpKChmdW5jdGlvbigpe3JldHVybiAxIT09bmV3IGMobmV3IHMoMiksMSx2b2lkIDApLmxlbmd0aH0pKX0sIjhiOTEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIiksbigiMTNkNSIpLG4oImFjZDgiKSxuKCIxNGQ5IiksbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKSxpPW4oIjY0ZmUiKTtmdW5jdGlvbiBhKHQpe3JldHVybiBNYXRoLnNxcnQodC54KnQueCt0LnkqdC55KX12YXIgbz17bmFtZToiTW92YWJsZUFyZWEiLHByb3BzOntzY2FsZUFyZWE6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt3aWR0aDowLGhlaWdodDowLGl0ZW1zOltdfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuZ2FwVj17eDpudWxsLHk6bnVsbH0sdGhpcy5waW5jaFN0YXJ0TGVuPW51bGx9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9yZXNpemUoKSwoMCxpLmluaXRTY3JvbGxCb3VuY2UpKCl9LG1ldGhvZHM6e19yZXNpemU6ZnVuY3Rpb24oKXt0aGlzLl9nZXRXSCgpLHRoaXMuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LmNvbXBvbmVudEluc3RhbmNlLnNldFBhcmVudCgpfSkpfSxfZmluZDpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5pdGVtcyxuPXRoaXMuJGVsO2Z1bmN0aW9uIHIodCl7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYodD09PWEuY29tcG9uZW50SW5zdGFuY2UuJGVsKXJldHVybiBhfXJldHVybiB0PT09bnx8dD09PWRvY3VtZW50LmJvZHl8fHQ9PT1kb2N1bWVudD9udWxsOnIodC5wYXJlbnROb2RlKX1yZXR1cm4gcih0KX0sX3RvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7KDAsaS5kaXNhYmxlU2Nyb2xsQm91bmNlKSh7ZGlzYWJsZTohMH0pO3ZhciBlPXQudG91Y2hlcztpZihlJiZlLmxlbmd0aD4xKXt2YXIgbj17eDplWzFdLnBhZ2VYLWVbMF0ucGFnZVgseTplWzFdLnBhZ2VZLWVbMF0ucGFnZVl9O2lmKHRoaXMucGluY2hTdGFydExlbj1hKG4pLHRoaXMuZ2FwVj1uLCF0aGlzLnNjYWxlQXJlYSl7dmFyIHI9dGhpcy5fZmluZChlWzBdLnRhcmdldCksbz10aGlzLl9maW5kKGVbMV0udGFyZ2V0KTt0aGlzLl9zY2FsZU1vdmFibGVWaWV3PXImJnI9PT1vP3I6bnVsbH19fSxfdG91Y2htb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXQudG91Y2hlcztpZihlJiZlLmxlbmd0aD4xKXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIG49e3g6ZVsxXS5wYWdlWC1lWzBdLnBhZ2VYLHk6ZVsxXS5wYWdlWS1lWzBdLnBhZ2VZfTtpZihudWxsIT09dGhpcy5nYXBWLngmJnRoaXMucGluY2hTdGFydExlbj4wKXt2YXIgcj1hKG4pL3RoaXMucGluY2hTdGFydExlbjt0aGlzLl91cGRhdGVTY2FsZShyKX10aGlzLmdhcFY9bn19LF90b3VjaGVuZDpmdW5jdGlvbih0KXsoMCxpLmRpc2FibGVTY3JvbGxCb3VuY2UpKHtkaXNhYmxlOiExfSk7dmFyIGU9dC50b3VjaGVzO2UmJmUubGVuZ3RofHx0LmNoYW5nZWRUb3VjaGVzJiYodGhpcy5nYXBWLng9MCx0aGlzLmdhcFYueT0wLHRoaXMucGluY2hTdGFydExlbj1udWxsLHRoaXMuc2NhbGVBcmVhP3RoaXMuaXRlbXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb21wb25lbnRJbnN0YW5jZS5fZW5kU2NhbGUoKX0pKTp0aGlzLl9zY2FsZU1vdmFibGVWaWV3JiZ0aGlzLl9zY2FsZU1vdmFibGVWaWV3LmNvbXBvbmVudEluc3RhbmNlLl9lbmRTY2FsZSgpKX0sX3VwZGF0ZVNjYWxlOmZ1bmN0aW9uKHQpe3QmJjEhPT10JiYodGhpcy5zY2FsZUFyZWE/dGhpcy5pdGVtcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmNvbXBvbmVudEluc3RhbmNlLl9zZXRTY2FsZSh0KX0pKTp0aGlzLl9zY2FsZU1vdmFibGVWaWV3JiZ0aGlzLl9zY2FsZU1vdmFibGVWaWV3LmNvbXBvbmVudEluc3RhbmNlLl9zZXRTY2FsZSh0KSl9LF9nZXRXSDpmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuJGVsKSxlPXRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMud2lkdGg9ZS53aWR0aC1bIkxlZnQiLCJSaWdodCJdLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZStwYXJzZUZsb2F0KHRbImJvcmRlciIrbisiV2lkdGgiXSkrcGFyc2VGbG9hdCh0WyJwYWRkaW5nIituXSl9KSwwKSx0aGlzLmhlaWdodD1lLmhlaWdodC1bIlRvcCIsIkJvdHRvbSJdLnJlZHVjZSgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZStwYXJzZUZsb2F0KHRbImJvcmRlciIrbisiV2lkdGgiXSkrcGFyc2VGbG9hdCh0WyJwYWRkaW5nIituXSl9KSwwKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49W10saT10aGlzLiRzbG90cy5kZWZhdWx0JiYoMCxyLmRlZXBDbG9uZSkodGhpcy4kc2xvdHMuZGVmYXVsdCx0KTtpJiZpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29tcG9uZW50T3B0aW9ucyYmInYtdW5pLW1vdmFibGUtdmlldyI9PT10LmNvbXBvbmVudE9wdGlvbnMudGFnJiZuLnB1c2godCl9KSksdGhpcy5pdGVtcz1uO3ZhciBhPU9iamVjdC5hc3NpZ24oe30sdGhpcy4kbGlzdGVuZXJzKTtyZXR1cm5bInRvdWNoc3RhcnQiLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBuPWFbdF0scj1lWyJfIi5jb25jYXQodCldO2FbdF09bj9bXS5jb25jYXQobixyKTpyfSkpLHQoInVuaS1tb3ZhYmxlLWFyZWEiLHtvbjphfSxbdCgidi11bmktcmVzaXplLXNlbnNvciIse29uOntyZXNpemU6dGhpcy5fcmVzaXplfX0pLGldKX19O2UuZGVmYXVsdD1vfSwiOGJkNCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwNjYiKSxpPW4oImQ0NGUiKTtpKHIoIkRPTUV4Y2VwdGlvbiIpLCJET01FeGNlcHRpb24iKX0sIjhjZDAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjk1NzEiKSxpPW4oIjA5NGQiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCI4ZGViIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCxlKXt0Ll9pc1Z1ZXx8KGU9dCx0PW51bGwpO2lmKHQpcmV0dXJuIG5ldyBmKHQsZSk7cmV0dXJuIG5ldyBmKCgwLGMuZ2V0Q3VycmVudFBhZ2VWbSkoImNyZWF0ZUludGVyc2VjdGlvbk9ic2VydmVyIiksZSl9LG4oImQ4MWQiKSxuKCJhOWUzIiksbigiMTRkOSIpO3ZhciBpPXIobigiZDRlYyIpKSxhPXIobigiYmVlMiIpKSxvPXIobigiZmYyMiIpKSxzPW4oIjlkOGMiKSxjPW4oIjI0MTIiKSx1PSgwLG8uZGVmYXVsdCkoInJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIpLGw9e3RocmVzaG9sZHM6WzBdLGluaXRpYWxSYXRpbzowLG9ic2VydmVBbGw6ITF9LGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbil7KDAsaS5kZWZhdWx0KSh0aGlzLGUpLHRoaXMucGFnZUlkPXQuJHBhZ2UmJnQuJHBhZ2UuaWQsdGhpcy5jb21wb25lbnQ9dC5fJGlkfHx0LHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHt9LGwsbil9cmV0dXJuKDAsYS5kZWZhdWx0KShlLFt7a2V5OiJfbWFrZVJvb3RNYXJnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O3RoaXMub3B0aW9ucy5yb290TWFyZ2luPVsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0Il0ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4iIi5jb25jYXQoTnVtYmVyKHRbZV0pfHwwLCJweCIpfSkpLmpvaW4oIiAiKX19LHtrZXk6InJlbGF0aXZlVG8iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMub3B0aW9ucy5yZWxhdGl2ZVRvU2VsZWN0b3I9dCx0aGlzLl9tYWtlUm9vdE1hcmdpbihlKSx0aGlzfX0se2tleToicmVsYXRpdmVUb1ZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLnJlbGF0aXZlVG9TZWxlY3Rvcj1udWxsLHRoaXMuX21ha2VSb290TWFyZ2luKHQpLHRoaXN9fSx7a2V5OiJvYnNlcnZlIix2YWx1ZTpmdW5jdGlvbihlLG4peyJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKHRoaXMub3B0aW9ucy5zZWxlY3Rvcj1lLHRoaXMucmVxSWQ9dS5wdXNoKG4pLHQucHVibGlzaEhhbmRsZXIoInJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIse3JlcUlkOnRoaXMucmVxSWQsY29tcG9uZW50OnRoaXMuY29tcG9uZW50LG9wdGlvbnM6dGhpcy5vcHRpb25zfSwoMCxzLmNoZWNrSW5XaW5kb3dzKSh0aGlzLmNvbXBvbmVudCk/dGhpcy5jb21wb25lbnQ6dGhpcy5wYWdlSWQpKX19LHtrZXk6ImRpc2Nvbm5lY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dC5wdWJsaXNoSGFuZGxlcigiZGVzdHJveUNvbXBvbmVudE9ic2VydmVyIix7cmVxSWQ6dGhpcy5yZXFJZH0sKDAscy5jaGVja0luV2luZG93cykodGhpcy5jb21wb25lbnQpP3RoaXMuY29tcG9uZW50OnRoaXMucGFnZUlkKX19XSksZX0oKX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSwiOGVhMSI6ZnVuY3Rpb24odCxlKXt2YXIgbj0ib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5hbGwscj0idW5kZWZpbmVkIj09dHlwZW9mIG4mJnZvaWQgMCE9PW47dC5leHBvcnRzPXthbGw6bixJU19IVE1MRERBOnJ9fSwiOGVkZSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS10YWJiYXIiLHtjbGFzczpbInVuaS10YWJiYXItIit0LnBvc2l0aW9uXX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyIixzdHlsZTp7YmFja2dyb3VuZENvbG9yOnQudGFiYmFyQmFja2dyb3VuZENvbG9yLCJiYWNrZHJvcC1maWx0ZXIiOiJub25lIiE9PXQuYmx1ckVmZmVjdD8iYmx1cigxMHB4KSI6dC5ibHVyRWZmZWN0fX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyLWJvcmRlciIsc3R5bGU6e2JhY2tncm91bmRDb2xvcjp0LmJvcmRlckNvbG9yfX0pLHQuX2wodC52aXNpYmxlTGlzdCwoZnVuY3Rpb24oZSxyKXtyZXR1cm4gbigiZGl2Iix7a2V5OmUuaXNNaWRCdXR0b24/cjplLnBhZ2VQYXRoLHN0YXRpY0NsYXNzOiJ1bmktdGFiYmFyX19pdGVtIixzdHlsZTplLmlzTWlkQnV0dG9uP3tmbGV4OiIwIDAgIitlLndpZHRoLHBvc2l0aW9uOiJyZWxhdGl2ZSJ9Ont9LG9uOntjbGljazpmdW5jdGlvbihuKXtyZXR1cm4gdC5fc3dpdGNoVGFiKGUscil9fX0sW2UuaXNNaWRCdXR0b24/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX21pZCIsc3R5bGU6dC5fdW5pVGFiYmFyQmRTdHlsZShlKX0sW2UuaWNvblBhdGg/bigiaW1nIix7c3R5bGU6e3dpZHRoOmUuaWNvbldpZHRoLGhlaWdodDplLmljb25XaWR0aH0sYXR0cnM6e3NyYzp0Ll9nZXRSZWFsUGF0aChlLmljb25QYXRoKX19KTp0Ll9lKCldKTp0Ll9lKCksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2JkIixzdHlsZTp7aGVpZ2h0OnQuaGVpZ2h0fX0sW3QuZ2V0SWNvblBhdGgoZSxyKXx8ZS5pY29uZm9udHx8ZS5pY29uUGF0aHx8ZS5pc01pZEJ1dHRvbj9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9faWNvbiIsY2xhc3M6eyJ1bmktdGFiYmFyX19pY29uX19kaWZmIjohZS50ZXh0fSxzdHlsZTp7d2lkdGg6dC5pY29uV2lkdGgsaGVpZ2h0OnQuaWNvbldpZHRofX0sW2UuaWNvbmZvbnQ/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2ljb25mb250IixzdHlsZTp7Y29sb3I6dC5zZWxlY3RlZEluZGV4PT09cj9lLmljb25mb250LnNlbGVjdGVkQ29sb3I6ZS5pY29uZm9udC5jb2xvcixmb250U2l6ZTplLmljb25mb250LmZvbnRTaXplfHx0Lmljb25XaWR0aH19LFt0Ll92KCJcbiAgICAgICAgICAgICIrdC5fcyh0LnNlbGVjdGVkSW5kZXg9PT1yP2UuaWNvbmZvbnQuc2VsZWN0ZWRUZXh0OmUuaWNvbmZvbnQudGV4dCkrIlxuICAgICAgICAgICIpXSk6ZS5pc01pZEJ1dHRvbj90Ll9lKCk6bigiaW1nIix7YXR0cnM6e3NyYzp0Ll9nZXRSZWFsUGF0aCh0LmdldEljb25QYXRoKGUscikpfX0pXSk6dC5fZSgpLGUudGV4dD9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9fbGFiZWwiLHN0eWxlOntjb2xvcjp0LnNlbGVjdGVkSW5kZXg9PT1yP3Quc2VsZWN0ZWRDb2xvcjp0LmNvbG9yLGZvbnRTaXplOnQuZm9udFNpemUsbGluZUhlaWdodDplLmljb25QYXRoPyJub3JtYWwiOjEuOCxtYXJnaW5Ub3A6ZS5pY29uUGF0aD90LnNwYWNpbmc6ImluaGVyaXQifX0sW3QuX3YoIlxuICAgICAgICAgICIrdC5fcyhlLnRleHQpKyJcbiAgICAgICAgIildKTp0Ll9lKCksZS5yZWREb3Q/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX3JlZGRvdCIsY2xhc3M6eyJ1bmktdGFiYmFyX19iYWRnZSI6ISFlLmJhZGdlfX0sW3QuX3YoIlxuICAgICAgICAgICIrdC5fcyhlLmJhZGdlKSsiXG4gICAgICAgICIpXSk6dC5fZSgpXSldKX0pKV0sMiksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wbGFjZWhvbGRlciIsc3R5bGU6e2hlaWdodDp0LmhlaWdodH19KV0pfSxpPVtdfSw5MDY2OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlRFTVBfUEFUSD12b2lkIDA7ZS5URU1QX1BBVEg9IiJ9LCI5MDdhIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oIjA3ZmEiKSxhPW4oIjU5MjYiKSxvPXIuYVR5cGVkQXJyYXkscz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7cygiYXQiLChmdW5jdGlvbih0KXt2YXIgZT1vKHRoaXMpLG49aShlKSxyPWEodCkscz1yPj0wP3I6bityO3JldHVybiBzPDB8fHM+PW4/dm9pZCAwOmVbc119KSl9LCI5MGQ4IjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzY1YiIpLGk9bigiMWEyZCIpLGE9bigiM2E5YiIpLG89bigiYWQ2ZCIpLHM9UmVnRXhwLnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5mbGFncztyZXR1cm4gdm9pZCAwIT09ZXx8ImZsYWdzImluIHN8fGkodCwiZmxhZ3MiKXx8IWEocyx0KT9lOnIobyx0KX19LCI5MGRlIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI0NTdkIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiOTBlMyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPTAsYT1NYXRoLnJhbmRvbSgpLG89cigxLi50b1N0cmluZyk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09dD8iIjp0KSsiKV8iK28oKytpK2EsMzYpfX0sIjkwZmUiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEFwaUNhbGxiYWNrcz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCl7dmFyIGE9dFtuXTsoMCxyLmlzRm4pKGEpJiYoZVtuXT0oMCxpLnRyeUNhdGNoKShhKSxkZWxldGUgdFtuXSl9cmV0dXJuIGV9O3ZhciByPW4oImRiNmEiKSxpPW4oIjlmNDkiKX0sOTExMjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiOWJmMiIpLGE9bigiNWM2YyIpO3QuZXhwb3J0cz1yP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaS5mKHQsZSxhKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fX0sIjkxMmYiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImE5ZTMiKSxuKCJjOTc1Iik7dmFyIGk9cihuKCJjNmM5IikpLGE9e25hbWU6IlByZXZpZXdJbWFnZSIsY29tcG9uZW50czp7aW1hZ2VWaWV3OmkuZGVmYXVsdH0scHJvcHM6e3Zpc2libGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSx1cmxzOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LGN1cnJlbnQ6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6MH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6MH19LHdhdGNoOnt2aXNpYmxlOmZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPSJudW1iZXIiPT09dHlwZW9mIHRoaXMuY3VycmVudD90aGlzLmN1cnJlbnQ6dGhpcy51cmxzLmluZGV4T2YodGhpcy5jdXJyZW50KTt0aGlzLmluZGV4PWU8MD8wOmV9fX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT0wLG49MDt0aGlzLiRlbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLChmdW5jdGlvbihyKXt0LnByZXZlbnREZWZhdWx0PSExLGU9ci5jbGllbnRYLG49ci5jbGllbnRZfSkpLHRoaXMuJGVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLChmdW5jdGlvbihyKXsoTWF0aC5hYnMoci5jbGllbnRYLWUpPjIwfHxNYXRoLmFicyhyLmNsaWVudFktbik+MjApJiYodC5wcmV2ZW50RGVmYXVsdD0hMCl9KSl9LG1ldGhvZHM6e19jbGljazpmdW5jdGlvbigpe3RoaXMucHJldmVudERlZmF1bHR8fHRoaXMuJGVtaXQoImNsb3NlIil9fX07ZS5kZWZhdWx0PWF9LCI5MTdmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJkM2I3IiksbigiMTU5YiIpLG4oImI2NGIiKTt2YXIgcj17bmFtZToiV2ViVmlldyIscHJvcHM6e3NyYzp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sZnVsbHNjcmVlbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9fSx3YXRjaDp7c3JjOmZ1bmN0aW9uKHQsZSl7dGhpcy5pZnJhbWUmJih0aGlzLmlmcmFtZS5zcmM9dGhpcy4kZ2V0UmVhbFBhdGgodGhpcy5zcmMpKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaWZyYW1lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpLE9iamVjdC5rZXlzKHRoaXMuJGF0dHJzKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmlmcmFtZVtlXT10LiRhdHRyc1tlXX0pKSx0aGlzLmlmcmFtZS5zcmM9dGhpcy4kZ2V0UmVhbFBhdGgodGhpcy5zcmMpLHRoaXMuZnVsbHNjcmVlbj9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuaWZyYW1lKTp0aGlzLiRyZWZzLndlYnZpZXdDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5pZnJhbWUpLHRoaXMuX3Jlc2l6ZSgpfSxhY3RpdmF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmZ1bGxzY3JlZW4mJih0aGlzLmlmcmFtZS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfSxkZWFjdGl2YXRlZDpmdW5jdGlvbigpe3RoaXMuZnVsbHNjcmVlbiYmKHRoaXMuaWZyYW1lLnN0eWxlLmRpc3BsYXk9Im5vbmUiKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZnVsbHNjcmVlbiYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmlmcmFtZSl9LG1ldGhvZHM6e19yZXNpemU6ZnVuY3Rpb24oKXtpZih0aGlzLmZ1bGxzY3JlZW4pe3ZhciB0PXRoaXMuJGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dC50b3Asbj10LmxlZnQscj10LndpZHRoLGk9dC5oZWlnaHQ7dGhpcy5pZnJhbWUuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmlmcmFtZS5zdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5pZnJhbWUuc3R5bGUuYm9yZGVyPTAsdGhpcy5pZnJhbWUuc3R5bGUudG9wPWUrInB4Iix0aGlzLmlmcmFtZS5zdHlsZS5sZWZ0PW4rInB4Iix0aGlzLmlmcmFtZS5zdHlsZS53aWR0aD1yKyJweCIsdGhpcy5pZnJhbWUuc3R5bGUuaGVpZ2h0PWkrInB4In1lbHNlIHRoaXMuaWZyYW1lLnN0eWxlLndpZHRoPXRoaXMuJHJlZnMud2Vidmlld0NvbnRhaW5lci5zdHlsZS53aWR0aHx8IjMwMHB4Iix0aGlzLmlmcmFtZS5zdHlsZS5oZWlnaHQ9dGhpcy4kcmVmcy53ZWJ2aWV3Q29udGFpbmVyLnN0eWxlLmhlaWdodHx8IjE1MHB4In19fTtlLmRlZmF1bHQ9cn0sOTI2MzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImM2NWIiKSxpPW4oImUzMzAiKSxhPW4oIjU3N2UiKSxvPW4oImFkNmQiKSxzPW4oIjlmN2YiKSxjPW4oIjU2OTIiKSx1PW4oIjdjNzMiKSxsPW4oIjY5ZjMiKS5nZXQsZj1uKCJmY2UzIiksZD1uKCIxMDdjIiksaD1jKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSkscD1SZWdFeHAucHJvdG90eXBlLmV4ZWMsdj1wLGc9aSgiIi5jaGFyQXQpLG09aSgiIi5pbmRleE9mKSxiPWkoIiIucmVwbGFjZSkseT1pKCIiLnNsaWNlKSxfPWZ1bmN0aW9uKCl7dmFyIHQ9L2EvLGU9L2IqL2c7cmV0dXJuIHIocCx0LCJhIikscihwLGUsImEiKSwwIT09dC5sYXN0SW5kZXh8fDAhPT1lLmxhc3RJbmRleH0oKSx3PXMuQlJPS0VOX0NBUkVULHg9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdLFM9X3x8eHx8d3x8Znx8ZDtTJiYodj1mdW5jdGlvbih0KXt2YXIgZSxuLGkscyxjLGYsZCxTPXRoaXMsVD1sKFMpLEM9YSh0KSxrPVQucmF3O2lmKGspcmV0dXJuIGsubGFzdEluZGV4PVMubGFzdEluZGV4LGU9cih2LGssQyksUy5sYXN0SW5kZXg9ay5sYXN0SW5kZXgsZTt2YXIgTz1ULmdyb3VwcyxFPXcmJlMuc3RpY2t5LEk9cihvLFMpLFA9Uy5zb3VyY2UsTT0wLEE9QztpZihFJiYoST1iKEksInkiLCIiKSwtMT09PW0oSSwiZyIpJiYoSSs9ImciKSxBPXkoQyxTLmxhc3RJbmRleCksUy5sYXN0SW5kZXg+MCYmKCFTLm11bHRpbGluZXx8Uy5tdWx0aWxpbmUmJiJcbiIhPT1nKEMsUy5sYXN0SW5kZXgtMSkpJiYoUD0iKD86ICIrUCsiKSIsQT0iICIrQSxNKyspLG49bmV3IFJlZ0V4cCgiXig/OiIrUCsiKSIsSSkpLHgmJihuPW5ldyBSZWdFeHAoIl4iK1ArIiQoPyFcXHMpIixJKSksXyYmKGk9Uy5sYXN0SW5kZXgpLHM9cihwLEU/bjpTLEEpLEU/cz8ocy5pbnB1dD15KHMuaW5wdXQsTSksc1swXT15KHNbMF0sTSkscy5pbmRleD1TLmxhc3RJbmRleCxTLmxhc3RJbmRleCs9c1swXS5sZW5ndGgpOlMubGFzdEluZGV4PTA6XyYmcyYmKFMubGFzdEluZGV4PVMuZ2xvYmFsP3MuaW5kZXgrc1swXS5sZW5ndGg6aSkseCYmcyYmcy5sZW5ndGg+MSYmcihoLHNbMF0sbiwoZnVuY3Rpb24oKXtmb3IoYz0xO2M8YXJndW1lbnRzLmxlbmd0aC0yO2MrKyl2b2lkIDA9PT1hcmd1bWVudHNbY10mJihzW2NdPXZvaWQgMCl9KSkscyYmTylmb3Iocy5ncm91cHM9Zj11KG51bGwpLGM9MDtjPE8ubGVuZ3RoO2MrKylkPU9bY10sZltkWzBdXT1zW2RbMV1dO3JldHVybiBzfSksdC5leHBvcnRzPXZ9LCI5NDRhIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDA2NiIpLGk9bigiZTA2NSIpLGE9bigiZDQ0ZSIpO2koInRvU3RyaW5nVGFnIiksYShyKCJTeW1ib2wiKSwiU3ltYm9sIil9LCI5NDVjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5nZXRBcHAscj1lLmdldEN1cnJlbnRQYWdlcztmdW5jdGlvbiBzKHQsZSl7dmFyIG49cigpO24ubGVuZ3RoJiYoMCxpLmNhbGxQYWdlSG9vaykobltuLmxlbmd0aC0xXSx0LGUpfWZ1bmN0aW9uIGModCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ModCxlKX19dCgib25FcnJvciIsKGZ1bmN0aW9uKHQpeygwLGkuY2FsbEFwcEhvb2spKG4oKSwib25FcnJvciIsdCl9KSksdCgib25QYWdlTm90Rm91bmQiLChmdW5jdGlvbih0KXsoMCxpLmNhbGxBcHBIb29rKShuKCksIm9uUGFnZU5vdEZvdW5kIix0KX0pKSwhMTt0KCJvbkFwcEVudGVyQmFja2dyb3VuZCIsKGZ1bmN0aW9uKCl7KDAsaS5jYWxsQXBwSG9vaykobigpLCJvbkhpZGUiKSxzKCJvbkhpZGUiKX0pKSx0KCJvbkFwcEVudGVyRm9yZWdyb3VuZCIsKGZ1bmN0aW9uKHQpeygwLGkuY2FsbEFwcEhvb2spKG4oKSwib25TaG93Iix0KTt2YXIgZT1yKCk7MCE9PWUubGVuZ3RoJiZzKCJvblNob3ciKX0pKSx0KCJvblJlc2l6ZSIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49cigpLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LiRwYWdlLmlkPT09ZX0pKTtuJiYoMCxpLmNhbGxQYWdlSG9vaykobiwib25SZXNpemUiLHQpfSkpLHQoIm9uUHVsbERvd25SZWZyZXNoIiwoZnVuY3Rpb24odCxlKXt2YXIgbj1yKCkuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuJHBhZ2UuaWQ9PT1lfSkpO24mJigoMCxhLnNldFB1bGxEb3duUmVmcmVzaFBhZ2VJZCkoZSksKDAsaS5jYWxsUGFnZUhvb2spKG4sIm9uUHVsbERvd25SZWZyZXNoIikpfSkpLHQoIm9uVGFiSXRlbVRhcCIsYygib25UYWJJdGVtVGFwIikpLHQoIm9uTmF2aWdhdGlvbkJhckJ1dHRvblRhcCIsYygib25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwIikpLHQoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q2hhbmdlZCIsYygib25OYXZpZ2F0aW9uQmFyU2VhcmNoSW5wdXRDaGFuZ2VkIikpLHQoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q29uZmlybWVkIixjKCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENvbmZpcm1lZCIpKSx0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENsaWNrZWQiLGMoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q2xpY2tlZCIpKSx0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dEZvY3VzQ2hhbmdlZCIsYygib25OYXZpZ2F0aW9uQmFyU2VhcmNoSW5wdXRGb2N1c0NoYW5nZWQiKSksdCgib25XZWJJbnZva2VBcHBTZXJ2aWNlIixvLmRlZmF1bHQpfSxuKCI3ZGIwIiksbigiZDNiNyIpO3ZhciBpPW4oIjU1OWEiKSxhPW4oImJlOWMiKSxvPXIobigiZjYzOCIpKX0sIjk0Y2EiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCIxNjI2IiksYT0vI3xcLnByb3RvdHlwZVwuLyxvPWZ1bmN0aW9uKHQsZSl7dmFyIG49Y1tzKHQpXTtyZXR1cm4gbj09bHx8biE9dSYmKGkoZSk/cihlKTohIWUpfSxzPW8ubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZShhLCIuIikudG9Mb3dlckNhc2UoKX0sYz1vLmRhdGE9e30sdT1vLk5BVElWRT0iTiIsbD1vLlBPTFlGSUxMPSJQIjt0LmV4cG9ydHM9b30sOTUyMzpmdW5jdGlvbih0LGUsbil7bigiN2E4MiIpO3ZhciByPW4oImEzOTUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPXIoZSksZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSw5NTcxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ1bmktdGV4dGFyZWEiLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbbigiZGl2Iix7cmVmOiJ3cmFwcGVyIixzdGF0aWNDbGFzczoidW5pLXRleHRhcmVhLXdyYXBwZXIifSxbbigiZGl2Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6ISh0LmNvbXBvc2luZ3x8dC52YWx1ZVN5bmMubGVuZ3RoKSxleHByZXNzaW9uOiIhKGNvbXBvc2luZyB8fCB2YWx1ZVN5bmMubGVuZ3RoKSJ9XSxyZWY6InBsYWNlaG9sZGVyIixzdGF0aWNDbGFzczoidW5pLXRleHRhcmVhLXBsYWNlaG9sZGVyIixjbGFzczp0LnBsYWNlaG9sZGVyQ2xhc3Msc3R5bGU6dC5wbGFjZWhvbGRlclN0eWxlLGRvbVByb3BzOnt0ZXh0Q29udGVudDp0Ll9zKHQucGxhY2Vob2xkZXIpfX0pLG4oImRpdiIse3JlZjoibGluZSIsc3RhdGljQ2xhc3M6InVuaS10ZXh0YXJlYS1saW5lIixkb21Qcm9wczp7dGV4dENvbnRlbnQ6dC5fcygiICIpfX0pLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGV4dGFyZWEtY29tcHV0ZSJ9LFt0Ll9sKHQudmFsdWVDb21wdXRlLChmdW5jdGlvbihlLHIpe3JldHVybiBuKCJkaXYiLHtrZXk6cixkb21Qcm9wczp7dGV4dENvbnRlbnQ6dC5fcyhlLnRyaW0oKT9lOiIuIil9fSl9KSksbigidi11bmktcmVzaXplLXNlbnNvciIse3JlZjoic2Vuc29yIixvbjp7cmVzaXplOnQuX3Jlc2l6ZX19KV0sMiksdC5kaXNhYmxlZCYmdC5maXhDb2xvcj90Ll9lKCk6bigidGV4dGFyZWEiLHtkaXJlY3RpdmVzOlt7bmFtZToibW9kZWwiLHJhd05hbWU6InYtbW9kZWwiLHZhbHVlOnQudmFsdWVTeW5jLGV4cHJlc3Npb246InZhbHVlU3luYyJ9LHtuYW1lOiJrZXlib2FyZCIscmF3TmFtZToidi1rZXlib2FyZCJ9LHtuYW1lOiJmaWVsZCIscmF3TmFtZToidi1maWVsZCJ9XSxyZWY6InRleHRhcmVhIixzdGF0aWNDbGFzczoidW5pLXRleHRhcmVhLXRleHRhcmVhIixjbGFzczp7InVuaS10ZXh0YXJlYS10ZXh0YXJlYS1maXgtbWFyZ2luIjp0LmZpeE1hcmdpbn0sc3R5bGU6eyJvdmVyZmxvdy15Ijp0LmF1dG9IZWlnaHQ/ImhpZGRlbiI6ImF1dG8ifSxhdHRyczp7ZGlzYWJsZWQ6dC5kaXNhYmxlZCxtYXhsZW5ndGg6dC5tYXhsZW5ndGhOdW1iZXIsZW50ZXJrZXloaW50OnQuY29uZmlybVR5cGUsaW5wdXRtb2RlOnQuaW5wdXRtb2RlfSxkb21Qcm9wczp7dmFsdWU6dC52YWx1ZVN5bmN9LG9uOntjaGFuZ2U6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0sY29tcG9zaXRpb25zdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbkNvbXBvc2l0aW9uKGUpfSxjb21wb3NpdGlvbmVuZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbkNvbXBvc2l0aW9uKGUpfSxjb21wb3NpdGlvbnVwZGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbkNvbXBvc2l0aW9uKGUpfSxpbnB1dDpbZnVuY3Rpb24oZSl7ZS50YXJnZXQuY29tcG9zaW5nfHwodC52YWx1ZVN5bmM9ZS50YXJnZXQudmFsdWUpfSxmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKSx0Ll9vbklucHV0KGUpfV0sZm9jdXM6dC5fb25Gb2N1cyxibHVyOnQuX29uQmx1ciwiJnRvdWNoc3RhcnQiOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vblRvdWNoc3RhcnQoZSl9LGtleXVwOmZ1bmN0aW9uKGUpe3JldHVybiFlLnR5cGUuaW5kZXhPZigia2V5IikmJnQuX2soZS5rZXlDb2RlLCJlbnRlciIsMTMsZS5rZXksIkVudGVyIik/bnVsbDp0Ll9vbktleVVwRW50ZXIoZSl9LGtleWRvd246ZnVuY3Rpb24oZSl7cmV0dXJuIWUudHlwZS5pbmRleE9mKCJrZXkiKSYmdC5fayhlLmtleUNvZGUsImVudGVyIiwxMyxlLmtleSwiRW50ZXIiKT9udWxsOnQuX29uS2V5RG93bkVudGVyKGUpfX19KSx0LmRpc2FibGVkJiZ0LmZpeENvbG9yP24oInRleHRhcmVhIix7cmVmOiJ0ZXh0YXJlYSIsc3RhdGljQ2xhc3M6InVuaS10ZXh0YXJlYS10ZXh0YXJlYSIsY2xhc3M6eyJ1bmktdGV4dGFyZWEtdGV4dGFyZWEtZml4LW1hcmdpbiI6dC5maXhNYXJnaW59LHN0eWxlOnsib3ZlcmZsb3cteSI6dC5hdXRvSGVpZ2h0PyJoaWRkZW4iOiJhdXRvIn0sYXR0cnM6e3RhYmluZGV4OiItMSIscmVhZG9ubHk6dC5kaXNhYmxlZCxtYXhsZW5ndGg6dC5tYXhsZW5ndGhOdW1iZXJ9LGRvbVByb3BzOnt2YWx1ZTp0LnZhbHVlU3luY30sb246e2ZvY3VzOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldC5ibHVyKCl9fX0pOnQuX2UoKV0pXSl9LGk9W119LDk1ODI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUudW5QcmVsb2FkUGFnZT1lLnN3aXRjaFRhYj1lLnJlZGlyZWN0VG89ZS5yZUxhdW5jaD1lLnByZWxvYWRQYWdlPWUubmF2aWdhdGVUbz1lLm5hdmlnYXRlQmFjaz12b2lkIDAsbigiYzk3NSIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiNDk4YSIpLG4oImQzYjciKSxuKCIxNTliIiksbigiMTRkOSIpLG4oIjdkYjAiKSxuKCJhOWUzIiksbigiZTI1ZSIpO3ZhciBpLGE9cihuKCI1YjgwIikpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUsbil7ZT0oMCxhLmRlZmF1bHQpKGUpO3ZhciByPWUuc3BsaXQoIj8iKVswXSxvPV9fdW5pUm91dGVzLmZpbmQoKGZ1bmN0aW9uKHQpe3ZhciBlPXQucGF0aCxuPXQuYWxpYXM7cmV0dXJuIGU9PT1yfHxuPT09cn0pKTtpZighbylyZXR1cm4icGFnZSBgIitlKyJgIGlzIG5vdCBmb3VuZCI7aWYoIm5hdmlnYXRlVG8iPT09dHx8InJlZGlyZWN0VG8iPT09dCl7aWYoby5tZXRhLmlzVGFiQmFyKXJldHVybiJjYW4gbm90ICIuY29uY2F0KHQsIiBhIHRhYmJhciBwYWdlIil9ZWxzZSBpZigic3dpdGNoVGFiIj09PXQmJiFvLm1ldGEuaXNUYWJCYXIpcmV0dXJuImNhbiBub3Qgc3dpdGNoIHRvIG5vLXRhYkJhciBwYWdlIjtpZigic3dpdGNoVGFiIiE9PXQmJiJwcmVsb2FkUGFnZSIhPT10fHwhby5tZXRhLmlzVGFiQmFyfHwiYXBwTGF1bmNoIj09PW4ub3BlblR5cGV8fChlPXIpLG8ubWV0YS5pc0VudHJ5JiYoZT1lLnJlcGxhY2Uoby5hbGlhcywiLyIpKSxuLnVybD1mdW5jdGlvbih0KXtpZigic3RyaW5nIiE9PXR5cGVvZiB0KXJldHVybiB0O3ZhciBlPXQuaW5kZXhPZigiPyIpO2lmKC0xPT09ZSlyZXR1cm4gdDt2YXIgbj10LnN1YnN0cihlKzEpLnRyaW0oKS5yZXBsYWNlKC9eKFw/fCN8JikvLCIiKTtpZighbilyZXR1cm4gdDt0PXQuc3Vic3RyKDAsZSk7dmFyIHI9W107cmV0dXJuIG4uc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLG49ZS5zaGlmdCgpLGk9ZS5sZW5ndGg+MD9lLmpvaW4oIj0iKToiIjtyLnB1c2gobisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpKX0pKSxyLmxlbmd0aD90KyI/IityLmpvaW4oIiYiKTp0fShlKSwidW5QcmVsb2FkUGFnZSIhPT10KWlmKCJwcmVsb2FkUGFnZSIhPT10KXtpZihpPT09ZSYmImFwcExhdW5jaCIhPT1uLm9wZW5UeXBlKXJldHVybiIiLmNvbmNhdChpLCIgbG9ja2VkIik7X191bmlDb25maWcucmVhZHkmJiExIT09X191bmlDb25maWcuZW5hYmxlTmF2aWdhdG9yTG9jayYmKGk9ZSl9ZWxzZSBpZihvLm1ldGEuaXNUYWJCYXIpe3ZhciBzPWdldEN1cnJlbnRQYWdlcyghMCksYz0oby5hbGlhc3x8by5wYXRoKS5zdWJzdHIoMSk7aWYocy5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yb3V0ZT09PWN9KSkpcmV0dXJuInRhYkJhciBwYWdlIGAiK2MrImAgYWxyZWFkeSBleGlzdHMifX19ZnVuY3Rpb24gcyh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIE9iamVjdC5hc3NpZ24oe3VybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOm8odCl9LGJlZm9yZUFsbDpmdW5jdGlvbigpe2k9IiJ9fSxlKX1mdW5jdGlvbiBjKHQpe3JldHVybnthbmltYXRpb25UeXBlOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24oZSl7aWYoZSYmLTE9PT10LmluZGV4T2YoZSkpcmV0dXJuImAiK2UrImAgaXMgbm90IHN1cHBvcnRlZCBmb3IgYGFuaW1hdGlvblR5cGVgIChzdXBwb3J0ZWQgdmFsdWVzIGFyZTogYCIrdC5qb2luKCJgfGAiKSsiYCkifX0sYW5pbWF0aW9uRHVyYXRpb246e3R5cGU6TnVtYmVyfX19dmFyIHU9cygicmVkaXJlY3RUbyIpO2UucmVkaXJlY3RUbz11O3ZhciBsPXMoInJlTGF1bmNoIik7ZS5yZUxhdW5jaD1sO3ZhciBmPXMoIm5hdmlnYXRlVG8iLGMoWyJzbGlkZS1pbi1yaWdodCIsInNsaWRlLWluLWxlZnQiLCJzbGlkZS1pbi10b3AiLCJzbGlkZS1pbi1ib3R0b20iLCJmYWRlLWluIiwiem9vbS1vdXQiLCJ6b29tLWZhZGUtb3V0IiwicG9wLWluIiwibm9uZSJdKSk7ZS5uYXZpZ2F0ZVRvPWY7dmFyIGQ9cygic3dpdGNoVGFiIik7ZS5zd2l0Y2hUYWI9ZDt2YXIgaD1PYmplY3QuYXNzaWduKHtkZWx0YTp7dHlwZTpOdW1iZXIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQsZSl7dD1wYXJzZUludCh0KXx8MSxlLmRlbHRhPU1hdGgubWluKGdldEN1cnJlbnRQYWdlcygpLmxlbmd0aC0xLHQpfX19LGMoWyJzbGlkZS1vdXQtcmlnaHQiLCJzbGlkZS1vdXQtbGVmdCIsInNsaWRlLW91dC10b3AiLCJzbGlkZS1vdXQtYm90dG9tIiwiZmFkZS1vdXQiLCJ6b29tLWluIiwiem9vbS1mYWRlLWluIiwicG9wLW91dCIsIm5vbmUiXSkpO2UubmF2aWdhdGVCYWNrPWg7dmFyIHA9e3VybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOm8oInByZWxvYWRQYWdlIil9fTtlLnByZWxvYWRQYWdlPXA7dmFyIHY9e3VybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOm8oInVuUHJlbG9hZFBhZ2UiKX19O2UudW5QcmVsb2FkUGFnZT12fSw5NjU3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ2LXVuaS1tb3ZhYmxlLWFyZWEiLHtzdGF0aWNDbGFzczoiaW1hZ2Utdmlldy1hcmVhIixuYXRpdmVPbjp7dG91Y2hzdGFydDpmdW5jdGlvbihlKXtyZXR1cm4gdC5vblRvdWNoU3RhcnQoZSl9LHRvdWNobW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jaGVja0RpcmVjdGlvbihlKX0sdG91Y2hlbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHQub25Ub3VjaEVuZChlKX19fSxbbigidi11bmktbW92YWJsZS12aWV3Iix7c3RhdGljQ2xhc3M6ImltYWdlLXZpZXctdmlldyIsYXR0cnM6e2RpcmVjdGlvbjp0LmRpcmVjdGlvbixpbmVydGlhOiEwLHNjYWxlOiEwLCJzY2FsZS1taW4iOiIxIiwic2NhbGUtbWF4IjoiNCJ9LG9uOntzY2FsZTp0Lm9uU2NhbGV9fSxbbigiaW1nIix7c3RhdGljQ2xhc3M6ImltYWdlLXZpZXctaW1nIixhdHRyczp7c3JjOnQuc3JjfSxvbjp7bG9hZDp0Lm9uSW1nTG9hZH19KV0pXSwxKX0saT1bXX0sIjk2YjciOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiB0LnZpc2libGU/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1zeXN0ZW0tcHJldmlldy1pbWFnZSIsb246e2NsaWNrOnQuX2NsaWNrfX0sW24oInYtdW5pLXN3aXBlciIse3N0YXRpY0NsYXNzOiJ1bmktc3lzdGVtLXByZXZpZXctaW1hZ2Utc3dpcGVyIixhdHRyczp7bmF2aWdhdGlvbjoiYXV0byIsY3VycmVudDp0LmluZGV4LCJpbmRpY2F0b3ItZG90cyI6ITEsYXV0b3BsYXk6ITF9LG9uOnsidXBkYXRlOmN1cnJlbnQiOmZ1bmN0aW9uKGUpe3QuaW5kZXg9ZX19fSx0Ll9sKHQudXJscywoZnVuY3Rpb24odCxlKXtyZXR1cm4gbigidi11bmktc3dpcGVyLWl0ZW0iLHtrZXk6ZX0sW24oImltYWdlLXZpZXciLHthdHRyczp7c3JjOnR9fSldLDEpfSkpLDEpLHQuX20oMCldLDEpOnQuX2UoKX0saT1bZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRjcmVhdGVFbGVtZW50LGU9dGhpcy5fc2VsZi5fY3x8dDtyZXR1cm4gZSgiZGl2Iix7c3RhdGljQ2xhc3M6Im5hdi1idG4tYmFjayJ9LFtlKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiJ9LFt0aGlzLl92KCLumZAiKV0pXSl9XX0sOTgwNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWNvZGVkUXVlcnk9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24obil7dHJ5e2Vbbl09cyh0W25dKX1jYXRjaChyKXtlW25dPXRbbl19fSkpLGV9LGUucGFyc2VRdWVyeT1mdW5jdGlvbih0KXt2YXIgZT17fTtpZih0PXQudHJpbSgpLnJlcGxhY2UoL14oXD98I3wmKS8sIiIpLCF0KXJldHVybiBlO3JldHVybiB0LnNwbGl0KCImIikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5yZXBsYWNlKC9cKy9nLCIgIikuc3BsaXQoIj0iKSxyPXMobi5zaGlmdCgpKSxpPW4ubGVuZ3RoPjA/cyhuLmpvaW4oIj0iKSk6bnVsbDt2b2lkIDA9PT1lW3JdP2Vbcl09aTpBcnJheS5pc0FycmF5KGVbcl0pP2Vbcl0ucHVzaChpKTplW3JdPVtlW3JdLGldfSkpLGV9LGUuc3RyaW5naWZ5UXVlcnk9ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm8sbj10P09iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24obil7dmFyIHI9dFtuXTtpZih2b2lkIDA9PT1yKXJldHVybiIiO2lmKG51bGw9PT1yKXJldHVybiBlKG4pO2lmKEFycmF5LmlzQXJyYXkocikpe3ZhciBpPVtdO3JldHVybiByLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXQmJihudWxsPT09dD9pLnB1c2goZShuKSk6aS5wdXNoKGUobikrIj0iK2UodCkpKX0pKSxpLmpvaW4oIiYiKX1yZXR1cm4gZShuKSsiPSIrZShyKX0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4wfSkpLmpvaW4oIiYiKTpudWxsO3JldHVybiBuPyI/Ii5jb25jYXQobik6IiJ9LG4oImQ0MDEiKSxuKCJkM2I3IiksbigiMjVmMCIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiNDk4YSIpLG4oIjE1OWIiKSxuKCIxNGQ5IiksbigiNGRlNCIpLG4oImQ4MWQiKSxuKCJiNjRiIik7dmFyIHI9L1shJygpKl0vZyxpPWZ1bmN0aW9uKHQpe3JldHVybiIlIit0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpfSxhPS8lMkMvZyxvPWZ1bmN0aW9uKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZShyLGkpLnJlcGxhY2UoYSwiLCIpfSxzPWRlY29kZVVSSUNvbXBvbmVudH0sIjk4M2UiOmZ1bmN0aW9uKHQsZSxuKXtuKCI5OWFmIik7dmFyIHI9W10uY29uY2F0KFsiYmFzZTY0VG9BcnJheUJ1ZmZlciIsImFycmF5QnVmZmVyVG9CYXNlNjQiLCJhZGRJbnRlcmNlcHRvciIsInJlbW92ZUludGVyY2VwdG9yIiwiaW50ZXJjZXB0b3JzIl0sWyJyZXF1ZXN0IiwidXBsb2FkRmlsZSIsImRvd25sb2FkRmlsZSIsImNvbm5lY3RTb2NrZXQiLCJvblNvY2tldE9wZW4iLCJvblNvY2tldEVycm9yIiwic2VuZFNvY2tldE1lc3NhZ2UiLCJvblNvY2tldE1lc3NhZ2UiLCJjbG9zZVNvY2tldCIsIm9uU29ja2V0Q2xvc2UiLCJnZXRVcGRhdGVNYW5hZ2VyIiwiY29uZmlnTVRMUyJdLFsibmF2aWdhdGVUbyIsInJlZGlyZWN0VG8iLCJyZUxhdW5jaCIsInN3aXRjaFRhYiIsIm5hdmlnYXRlQmFjayJdLFsic2V0U3RvcmFnZSIsInNldFN0b3JhZ2VTeW5jIiwiZ2V0U3RvcmFnZSIsImdldFN0b3JhZ2VTeW5jIiwiZ2V0U3RvcmFnZUluZm8iLCJnZXRTdG9yYWdlSW5mb1N5bmMiLCJyZW1vdmVTdG9yYWdlIiwicmVtb3ZlU3RvcmFnZVN5bmMiLCJjbGVhclN0b3JhZ2UiLCJjbGVhclN0b3JhZ2VTeW5jIl0sWyJnZXRMb2NhdGlvbiIsImNob29zZUxvY2F0aW9uIiwib3BlbkxvY2F0aW9uIiwiY3JlYXRlTWFwQ29udGV4dCIsIm9uTG9jYXRpb25DaGFuZ2UiLCJvbkxvY2F0aW9uQ2hhbmdlRXJyb3IiLCJzdGFydExvY2F0aW9uVXBkYXRlIiwic3RvcExvY2F0aW9uVXBkYXRlIiwib2ZmTG9jYXRpb25DaGFuZ2UiLCJvZmZMb2NhdGlvbkNoYW5nZUVycm9yIl0sWyJjaG9vc2VJbWFnZSIsImNob29zZUZpbGUiLCJwcmV2aWV3SW1hZ2UiLCJjbG9zZVByZXZpZXdJbWFnZSIsImdldEltYWdlSW5mbyIsImdldFZpZGVvSW5mbyIsInNhdmVJbWFnZVRvUGhvdG9zQWxidW0iLCJjb21wcmVzc0ltYWdlIiwiY29tcHJlc3NWaWRlbyIsImdldFJlY29yZGVyTWFuYWdlciIsImdldEJhY2tncm91bmRBdWRpb01hbmFnZXIiLCJjcmVhdGVBdWRpb0NvbnRleHQiLCJjcmVhdGVJbm5lckF1ZGlvQ29udGV4dCIsImNob29zZVZpZGVvIiwic2F2ZVZpZGVvVG9QaG90b3NBbGJ1bSIsImNyZWF0ZVZpZGVvQ29udGV4dCIsImNyZWF0ZUNhbWVyYUNvbnRleHQiLCJjcmVhdGVMaXZlUGxheWVyQ29udGV4dCIsImNyZWF0ZUxpdmVQdXNoZXJDb250ZXh0Il0sWyJnZXRTeXN0ZW1JbmZvIiwiZ2V0U3lzdGVtSW5mb1N5bmMiLCJnZXRXaW5kb3dJbmZvIiwiZ2V0RGV2aWNlSW5mbyIsImdldEFwcEJhc2VJbmZvIiwiY2FuSVVzZSIsIm9uTWVtb3J5V2FybmluZyIsImdldE5ldHdvcmtUeXBlIiwib25OZXR3b3JrU3RhdHVzQ2hhbmdlIiwib2ZmTmV0d29ya1N0YXR1c0NoYW5nZSIsIm9uQWNjZWxlcm9tZXRlckNoYW5nZSIsIm9mZkFjY2VsZXJvbWV0ZXJDaGFuZ2UiLCJzdGFydEFjY2VsZXJvbWV0ZXIiLCJzdG9wQWNjZWxlcm9tZXRlciIsIm9uQ29tcGFzc0NoYW5nZSIsIm9mZkNvbXBhc3NDaGFuZ2UiLCJzdGFydENvbXBhc3MiLCJzdG9wQ29tcGFzcyIsIm9uR3lyb3Njb3BlQ2hhbmdlIiwic3RhcnRHeXJvc2NvcGUiLCJzdG9wR3lyb3Njb3BlIiwibWFrZVBob25lQ2FsbCIsInNjYW5Db2RlIiwic2V0Q2xpcGJvYXJkRGF0YSIsImdldENsaXBib2FyZERhdGEiLCJzZXRTY3JlZW5CcmlnaHRuZXNzIiwiZ2V0U2NyZWVuQnJpZ2h0bmVzcyIsInNldEtlZXBTY3JlZW5PbiIsIm9uVXNlckNhcHR1cmVTY3JlZW4iLCJ2aWJyYXRlTG9uZyIsInZpYnJhdGVTaG9ydCIsImFkZFBob25lQ29udGFjdCIsIm9wZW5CbHVldG9vdGhBZGFwdGVyIiwic3RhcnRCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5Iiwib25CbHVldG9vdGhEZXZpY2VGb3VuZCIsInN0b3BCbHVldG9vdGhEZXZpY2VzRGlzY292ZXJ5Iiwib25CbHVldG9vdGhBZGFwdGVyU3RhdGVDaGFuZ2UiLCJnZXRDb25uZWN0ZWRCbHVldG9vdGhEZXZpY2VzIiwiZ2V0Qmx1ZXRvb3RoRGV2aWNlcyIsImdldEJsdWV0b290aEFkYXB0ZXJTdGF0ZSIsImNsb3NlQmx1ZXRvb3RoQWRhcHRlciIsIndyaXRlQkxFQ2hhcmFjdGVyaXN0aWNWYWx1ZSIsInJlYWRCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlIiwib25CTEVDb25uZWN0aW9uU3RhdGVDaGFuZ2UiLCJvbkJMRUNoYXJhY3RlcmlzdGljVmFsdWVDaGFuZ2UiLCJub3RpZnlCTEVDaGFyYWN0ZXJpc3RpY1ZhbHVlQ2hhbmdlIiwiZ2V0QkxFRGV2aWNlU2VydmljZXMiLCJnZXRCTEVEZXZpY2VDaGFyYWN0ZXJpc3RpY3MiLCJjcmVhdGVCTEVDb25uZWN0aW9uIiwiY2xvc2VCTEVDb25uZWN0aW9uIiwic2V0QkxFTVRVIiwiZ2V0QkxFRGV2aWNlUlNTSSIsIm9uQmVhY29uU2VydmljZUNoYW5nZSIsIm9uQmVhY29uVXBkYXRlIiwiZ2V0QmVhY29ucyIsInN0YXJ0QmVhY29uRGlzY292ZXJ5Iiwic3RvcEJlYWNvbkRpc2NvdmVyeSIsImNoZWNrSXNTdXBwb3J0U290ZXJBdXRoZW50aWNhdGlvbiIsImNoZWNrSXNTb3RlckVucm9sbGVkSW5EZXZpY2UiLCJzdGFydFNvdGVyQXV0aGVudGljYXRpb24iLCJvblRoZW1lQ2hhbmdlIiwib2ZmVGhlbWVDaGFuZ2UiLCJvblVJU3R5bGVDaGFuZ2UiLCJnZXRTeXN0ZW1TZXR0aW5nIiwiZ2V0QXBwQXV0aG9yaXplU2V0dGluZyIsIm9wZW5BcHBBdXRob3JpemVTZXR0aW5nIl0sWyJoaWRlS2V5Ym9hcmQiLCJvbktleWJvYXJkSGVpZ2h0Q2hhbmdlIiwib2ZmS2V5Ym9hcmRIZWlnaHRDaGFuZ2UiLCJnZXRTZWxlY3RlZFRleHRSYW5nZSJdLFsic2hvd1RvYXN0IiwiaGlkZVRvYXN0Iiwic2hvd0xvYWRpbmciLCJoaWRlTG9hZGluZyIsInNob3dNb2RhbCIsInNob3dBY3Rpb25TaGVldCIsInNldE5hdmlnYXRpb25CYXJUaXRsZSIsInNldE5hdmlnYXRpb25CYXJDb2xvciIsInNob3dOYXZpZ2F0aW9uQmFyTG9hZGluZyIsImhpZGVOYXZpZ2F0aW9uQmFyTG9hZGluZyIsInNldFRhYkJhckl0ZW0iLCJzZXRUYWJCYXJTdHlsZSIsImhpZGVUYWJCYXIiLCJzaG93VGFiQmFyIiwic2V0VGFiQmFyQmFkZ2UiLCJyZW1vdmVUYWJCYXJCYWRnZSIsInNob3dUYWJCYXJSZWREb3QiLCJoaWRlVGFiQmFyUmVkRG90Iiwib25UYWJCYXJNaWRCdXR0b25UYXAiLCJzZXRCYWNrZ3JvdW5kQ29sb3IiLCJzZXRCYWNrZ3JvdW5kVGV4dFN0eWxlIiwiY3JlYXRlQW5pbWF0aW9uIiwicGFnZVNjcm9sbFRvIiwib25XaW5kb3dSZXNpemUiLCJvZmZXaW5kb3dSZXNpemUiLCJsb2FkRm9udEZhY2UiLCJzdGFydFB1bGxEb3duUmVmcmVzaCIsInN0b3BQdWxsRG93blJlZnJlc2giLCJjcmVhdGVTZWxlY3RvclF1ZXJ5IiwiY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJjcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIiLCJnZXRNZW51QnV0dG9uQm91bmRpbmdDbGllbnRSZWN0Iiwic2hvd1RvcFdpbmRvdyIsInNob3dMZWZ0V2luZG93Iiwic2hvd1JpZ2h0V2luZG93IiwiaGlkZVRvcFdpbmRvdyIsImhpZGVMZWZ0V2luZG93IiwiaGlkZVJpZ2h0V2luZG93IiwiZ2V0VG9wV2luZG93U3R5bGUiLCJnZXRMZWZ0V2luZG93U3R5bGUiLCJnZXRSaWdodFdpbmRvd1N0eWxlIiwic2V0VG9wV2luZG93U3R5bGUiLCJzZXRMZWZ0V2luZG93U3R5bGUiLCJzZXRSaWdodFdpbmRvd1N0eWxlIiwiZ2V0TG9jYWxlIiwic2V0TG9jYWxlIiwib25Mb2NhbGVDaGFuZ2UiXSxbIiRlbWl0IiwiJG9uIiwiJG9uY2UiLCIkb2ZmIl0sWyJzYXZlRmlsZSIsImdldFNhdmVkRmlsZUxpc3QiLCJnZXRTYXZlZEZpbGVJbmZvIiwicmVtb3ZlU2F2ZWRGaWxlIiwiZ2V0RmlsZUluZm8iLCJvcGVuRG9jdW1lbnQiLCJnZXRGaWxlU3lzdGVtTWFuYWdlciJdLFsiY3JlYXRlT2Zmc2NyZWVuQ2FudmFzIiwiY3JlYXRlQ2FudmFzQ29udGV4dCIsImNhbnZhc1RvVGVtcEZpbGVQYXRoIiwiY2FudmFzUHV0SW1hZ2VEYXRhIiwiY2FudmFzR2V0SW1hZ2VEYXRhIl0sWyJnZXRQcm92aWRlciIsImxvZ2luIiwiY2hlY2tTZXNzaW9uIiwiZ2V0VXNlckluZm8iLCJnZXRVc2VyUHJvZmlsZSIsInByZUxvZ2luIiwiY2xvc2VBdXRoVmlldyIsImdldENoZWNrQm94U3RhdGUiLCJnZXRVbml2ZXJpZnlNYW5hZ2VyIiwic2hhcmUiLCJzaGFyZVdpdGhTeXN0ZW0iLCJzaG93U2hhcmVNZW51IiwiaGlkZVNoYXJlTWVudSIsInJlcXVlc3RQYXltZW50Iiwic3Vic2NyaWJlUHVzaCIsInVuc3Vic2NyaWJlUHVzaCIsIm9uUHVzaCIsIm9mZlB1c2giLCJyZXF1aXJlTmF0aXZlUGx1Z2luIiwidXB4MnB4IiwicmVzdG9yZUdsb2JhbCIsInJlcXVpcmVHbG9iYWwiLCJnZXRTdWJOVnVlQnlJZCIsImdldEN1cnJlbnRTdWJOVnVlIiwic2V0UGFnZU1ldGEiLCJvbkhvc3RFdmVudFJlY2VpdmUiLCJvbk5hdGl2ZUV2ZW50UmVjZWl2ZSIsInNlbmROYXRpdmVFdmVudCIsInByZWxvYWRQYWdlIiwidW5QcmVsb2FkUGFnZSIsImxvYWRTdWJQYWNrYWdlIiwic2VuZEhvc3RFdmVudCIsIm5hdmlnYXRlVG9NaW5pUHJvZ3JhbSIsImdldExhdW5jaE9wdGlvbnNTeW5jIiwiZ2V0RW50ZXJPcHRpb25zU3luYyIsImluaXRVVFNQcm94eUNsYXNzIiwiaW5pdFVUU1Byb3h5RnVuY3Rpb24iLCJpbml0VVRTSW5kZXhDbGFzc05hbWUiLCJpbml0VVRTQ2xhc3NOYW1lIiwiaW5pdFVUU1BhY2thZ2VOYW1lIiwicmVxdWlyZVVUU1BsdWdpbiIsInJlZ2lzdGVyVVRTUGx1Z2luIiwicmVnaXN0ZXJVVFNJbnRlcmZhY2UiXSxbImNyZWF0ZVJld2FyZGVkVmlkZW9BZCIsImNyZWF0ZUZ1bGxTY3JlZW5WaWRlb0FkIiwiY3JlYXRlSW50ZXJzdGl0aWFsQWQiLCJjcmVhdGVJbnRlcmFjdGl2ZUFkIl0sWyJpbnZva2VQdXNoQ2FsbGJhY2siLCJnZXRQdXNoQ2xpZW50SWQiLCJvblB1c2hNZXNzYWdlIiwib2ZmUHVzaE1lc3NhZ2UiLCJjcmVhdGVQdXNoTWVzc2FnZSJdKTt0LmV4cG9ydHM9cn0sIjk4NGMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLm5vcm1hbGl6ZVRhYkJhclN0eWxlcz1hLGUubm9ybWFsbGl6ZVN0eWxlcz1mdW5jdGlvbiB0KGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToibGlnaHQiLG89bltpXSxzPXt9O2lmKCFvKXJldHVybiBlO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihjKXt2YXIgdT1lW2NdO3NbY109ZnVuY3Rpb24oKXtpZigoMCxyLmlzUGxhaW5PYmplY3QpKHUpKXJldHVybiB0KHUsbixpKTtpZihBcnJheS5pc0FycmF5KHUpKXJldHVybiB1Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuKDAsci5pc1BsYWluT2JqZWN0KShlKT90KGUsbixpKTplfSkpO2lmKCgwLHIuaXNTdHIpKHUpJiZ1LnN0YXJ0c1dpdGgoIkAiKSl7dmFyIGU9dS5yZXBsYWNlKCJAIiwiIikscz1vW2VdfHx1O3N3aXRjaChjKXtjYXNlImJvcmRlclN0eWxlIjpzPWEocyk7YnJlYWt9cmV0dXJuIHN9cmV0dXJuIHV9KCl9KSksc30sbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiZDgxZCIpLG4oIjJjYTAiKSxuKCJhYzFmIiksbigiNTMxOSIpO3ZhciByPW4oIjM1YmUiKSxpPXtibGFjazoicmdiYSgwLDAsMCwwLjQpIix3aGl0ZToicmdiYSgyNTUsMjU1LDI1NSwwLjQpIn07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdCYmdCBpbiBpP2lbdF06dH19LDk4NjE6ZnVuY3Rpb24odCxlLG4pe24oIjUzNTIiKX0sIjk4NmEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiYTI1OCIpLmZpbmRMYXN0LGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtvKCJmaW5kTGFzdCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LCI5ODdkIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImVtaXR0ZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImZpZWxkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJob3ZlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uZGVmYXVsdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaW50ZXJhY3QiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImtleWJvYXJkIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5kZWZhdWx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJsaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLmRlZmF1bHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN1YnNjcmliZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHR9fSk7dmFyIGk9cihuKCI2NGIyIikpLGE9cihuKCJkOGMzIikpLG89cihuKCIzMzlmIikpLHM9cihuKCI2YjY5IikpLGM9cihuKCIxNTIxIikpLHU9cihuKCIxZWFkIikpLGw9cihuKCI2Yjg3IikpfSw5OTEwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjBkMDQiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LCI5OWFmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImQwMzkiKSxhPW4oImU4YjUiKSxvPW4oIjg2MWQiKSxzPW4oIjdiMGIiKSxjPW4oIjA3ZmEiKSx1PW4oIjM1MTEiKSxsPW4oIjg0MTgiKSxmPW4oIjY1ZjAiKSxkPW4oIjFkZGUiKSxoPW4oImI2MjIiKSxwPW4oIjJkMDAiKSx2PWgoImlzQ29uY2F0U3ByZWFkYWJsZSIpLGc9cD49NTF8fCFpKChmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0W3ZdPSExLHQuY29uY2F0KClbMF0hPT10fSkpLG09ZCgiY29uY2F0IiksYj1mdW5jdGlvbih0KXtpZighbyh0KSlyZXR1cm4hMTt2YXIgZT10W3ZdO3JldHVybiB2b2lkIDAhPT1lPyEhZTphKHQpfSx5PSFnfHwhbTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxhcml0eToxLGZvcmNlZDp5fSx7Y29uY2F0OmZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLGEsbz1zKHRoaXMpLGQ9ZihvLDApLGg9MDtmb3IoZT0tMSxyPWFyZ3VtZW50cy5sZW5ndGg7ZTxyO2UrKylpZihhPS0xPT09ZT9vOmFyZ3VtZW50c1tlXSxiKGEpKWZvcihpPWMoYSksdShoK2kpLG49MDtuPGk7bisrLGgrKyluIGluIGEmJmwoZCxoLGFbbl0pO2Vsc2UgdShoKzEpLGwoZCxoKyssYSk7cmV0dXJuIGQubGVuZ3RoPWgsZH19KX0sIjk5ZTAiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhYzFmIiksbigiNTMxOSIpLG4oImQzYjciKSxuKCIxNTliIiksbigiMTRkOSIpO3ZhciByPXtlbnNwOiLigIIiLGVtc3A6IuKAgyIsbmJzcDoiwqAifSxpPXtuYW1lOiJUZXh0Iixwcm9wczp7c2VsZWN0YWJsZTp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHNwYWNlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxkZWNvZGU6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfX0sbWV0aG9kczp7X2RlY29kZUh0bWw6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3BhY2UmJnJbdGhpcy5zcGFjZV0mJih0PXQucmVwbGFjZSgvIC9nLHJbdGhpcy5zcGFjZV0pKSx0aGlzLmRlY29kZSYmKHQ9dC5yZXBsYWNlKC8mbmJzcDsvZyxyLm5ic3ApLnJlcGxhY2UoLyZlbnNwOy9nLHIuZW5zcCkucmVwbGFjZSgvJmVtc3A7L2csci5lbXNwKS5yZXBsYWNlKC8mbHQ7L2csIjwiKS5yZXBsYWNlKC8mZ3Q7L2csIj4iKS5yZXBsYWNlKC8mYW1wOy9nLCImIikucmVwbGFjZSgvJnF1b3Q7L2csJyInKS5yZXBsYWNlKC8mYXBvczsvZywiJyIpKSx0fX0scmVuZGVyOmZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMscj1bXTtyZXR1cm4gdGhpcy4kc2xvdHMuZGVmYXVsdCYmdGhpcy4kc2xvdHMuZGVmYXVsdC5mb3JFYWNoKChmdW5jdGlvbihpKXtpZihpLnRleHQpe3ZhciBhPWkudGV4dC5yZXBsYWNlKC9cXG4vZywiXG4iKSxvPWEuc3BsaXQoIlxuIik7by5mb3JFYWNoKChmdW5jdGlvbih0LGkpe3IucHVzaChuLl9kZWNvZGVIdG1sKHQpKSxpIT09by5sZW5ndGgtMSYmci5wdXNoKGUoImJyIikpfSkpfWVsc2UgaS5jb21wb25lbnRPcHRpb25zJiYidi11bmktdGV4dCIhPT1pLmNvbXBvbmVudE9wdGlvbnMudGFnJiZ0Lndhcm4oIkRvIG5vdCBuZXN0IG90aGVyIGNvbXBvbmVudHMgaW4gdGhlIHRleHQgY29tcG9uZW50LCBhcyB0aGVyZSBtYXkgYmUgZGlzcGxheSBkaWZmZXJlbmNlcyBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zLiIpLHIucHVzaChpKX0pKSxlKCJ1bmktdGV4dCIse29uOnRoaXMuJGxpc3RlbmVycyxhdHRyczp7c2VsZWN0YWJsZTohIXRoaXMuc2VsZWN0YWJsZX19LFtlKCJzcGFuIix7fSxyKV0pfX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0pfSwiOWEwYyI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjM0MmYiKTt0LmV4cG9ydHM9L1ZlcnNpb25cLzEwKD86XC5cZCspezEsMn0oPzogW1x3Li9dKyk/KD86IE1vYmlsZVwvXHcrKT8gU2FmYXJpXC8vLnRlc3Qocil9LCI5YTFmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzY1YiIpLGk9bigiNTllZCIpLGE9bigiODI1YSIpLG89bigiMGQ1MSIpLHM9bigiMzVhMSIpLGM9VHlwZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg8Mj9zKHQpOmU7aWYoaShuKSlyZXR1cm4gYShyKG4sdCkpO3Rocm93IGMobyh0KSsiIGlzIG5vdCBpdGVyYWJsZSIpfX0sIjlhODkiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnB1Ymxpc2g9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC5lbWl0KCJhcGkuIitlLG4pfSxlLnB1Ymxpc2hIYW5kbGVyPWZ1bmN0aW9uKHQsZSxuKXtyLlVuaVZpZXdKU0JyaWRnZS5zdWJzY3JpYmVIYW5kbGVyKHQsZSxuKX19KS5jYWxsKHRoaXMsbigiYTlhYSIpLG4oImM4YmEiKSl9LCI5YThjIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImUzMzAiKSxpPW4oImViYjUiKSxhPW4oIjE0NWUiKSxvPXIoYSkscz1pLmFUeXBlZEFycmF5LGM9aS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO2MoImNvcHlXaXRoaW4iLChmdW5jdGlvbih0LGUpe3JldHVybiBvKHModGhpcyksdCxlLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0pKX0sIjlhYTgiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjg2MGYiKSxpPW4oIjkwZGUiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LCI5YWRmIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJjM2FiIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiOWJkZCI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjgyNWEiKSxpPW4oIjJhNjIiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sYSl7dHJ5e3JldHVybiBhP2UocihuKVswXSxuWzFdKTplKG4pfWNhdGNoKG8pe2kodCwidGhyb3ciLG8pfX19LCI5YmYyIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiMGNmYiIpLGE9bigiYWVkOSIpLG89bigiODI1YSIpLHM9bigiYTA0YiIpLGM9VHlwZUVycm9yLHU9T2JqZWN0LmRlZmluZVByb3BlcnR5LGw9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtlLmY9cj9hP2Z1bmN0aW9uKHQsZSxuKXtpZihvKHQpLGU9cyhlKSxvKG4pLCJmdW5jdGlvbiI9PT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gbiYmIndyaXRhYmxlImluIG4mJiFuWyJ3cml0YWJsZSJdKXt2YXIgcj1sKHQsZSk7ciYmclsid3JpdGFibGUiXSYmKHRbZV09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6ImNvbmZpZ3VyYWJsZSJpbiBuP25bImNvbmZpZ3VyYWJsZSJdOnJbImNvbmZpZ3VyYWJsZSJdLGVudW1lcmFibGU6ImVudW1lcmFibGUiaW4gbj9uWyJlbnVtZXJhYmxlIl06clsiZW51bWVyYWJsZSJdLHdyaXRhYmxlOiExfSl9cmV0dXJuIHUodCxlLG4pfTp1OmZ1bmN0aW9uKHQsZSxuKXtpZihvKHQpLGU9cyhlKSxvKG4pLGkpdHJ5e3JldHVybiB1KHQsZSxuKX1jYXRjaChyKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgYygiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKHRbZV09bi52YWx1ZSksdH19LCI5YzkyIjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LHIpe24oIjdhODIiKTt2YXIgaT1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCI5OWFmIik7dmFyIGE9bigiZGI2YSIpLG89bigiMGZiZSIpLHM9aShuKCIzNTBhIikpLGM9aShuKCJmMjYyIikpLHU9bigiNjMxYSIpO3ZhciBsPXtuYW1lOiJBcHAiLGNvbXBvbmVudHM6cy5kZWZhdWx0LG1peGluczpjLmRlZmF1bHQscHJvcHM6e2tlZXBBbGl2ZUluY2x1ZGU6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57dHJhbnNpdGlvbk5hbWU6ImZhZGUiLGhpZGVUYWJCYXI6ITEsc3lzQ29tcG9uZW50czp0aGlzLiRzeXNDb21wb25lbnRzLHNob3dMYXlvdXQ6ITEsc2hvd01heFdpZHRoOiExLHRhYkJhck1lZGlhUXVlcnk6ITF9fSxjb21wdXRlZDp7a2V5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJvdXRlLm1ldGEubmFtZSsiLSIrdGhpcy4kcm91dGUucGFyYW1zLl9faWRfXysiLSIrKF9fdW5pQ29uZmlnLnJlTGF1bmNofHwxKX0sdGFiQmFyT3B0aW9uczpmdW5jdGlvbigpe3JldHVybiB1LnRhYkJhcn0saGFzVGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIHUudGFiQmFyLmxpc3QmJnUudGFiQmFyLmxpc3QubGVuZ3RofSxzaG93VGFiQmFyOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGlkZVRhYkJhciYmKHRoaXMuJHJvdXRlLm1ldGEuaXNUYWJCYXJ8fHRoaXMudGFiQmFyTWVkaWFRdWVyeSl9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKGUsbil7dC5lbWl0KCJvbkhpZGVQb3B1cCIpfSxoaWRlVGFiQmFyOmZ1bmN0aW9uKHQsZSl7aWYodW5pLmNhbklVc2UoImNzcy52YXIiKSl7dmFyIG49dD8wOm8uVEFCQkFSX0hFSUdIVCxpPXVuaS5jYW5JVXNlKCJjc3MuZW52Iik/ImVudiI6dW5pLmNhbklVc2UoImNzcy5jb25zdGFudCIpPyJjb25zdGFudCI6IiIsYT1uJiZpPyJjYWxjKCIuY29uY2F0KG4sInB4ICsgIikuY29uY2F0KGksIihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkiKToiIi5jb25jYXQobiwicHgiKTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0td2luZG93LWJvdHRvbSIsYSksci5kZWJ1ZygidW5pLiIuY29uY2F0KGE/InNob3dUYWJCYXIiOiJoaWRlVGFiQmFyIiwi77yaLS13aW5kb3ctYm90dG9tPSIpLmNvbmNhdChhKSl9d2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJyZXNpemUiKSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dW5pLmNhbklVc2UoImNzcy52YXIiKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLXN0YXR1cy1iYXItaGVpZ2h0IiwiMHB4IiksdGhpcy5pbml0TWVkaWFRdWVyeSgpfSxtb3VudGVkOmZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLChmdW5jdGlvbihlKXsoMCxhLmlzUGxhaW5PYmplY3QpKGUuZGF0YSkmJiJXRUJfSU5WT0tFX0FQUFNFUlZJQ0UiPT09ZS5kYXRhLnR5cGUmJnQuZW1pdCgib25XZWJJbnZva2VBcHBTZXJ2aWNlIixlLmRhdGEuZGF0YSxlLmRhdGEucGFnZUlkKX0pKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwoZnVuY3Rpb24oKXsidmlzaWJsZSI9PT1kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/dC5lbWl0KCJvbkFwcEVudGVyRm9yZWdyb3VuZCIse30pOnQuZW1pdCgib25BcHBFbnRlckJhY2tncm91bmQiKX0pKSxmdW5jdGlvbigpe3ZhciBlPW51bGw7dHJ5e2U9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKX1jYXRjaChyKXt9aWYoZSl7dmFyIG49ZnVuY3Rpb24oZSl7dC5lbWl0KCJhcGkuIitvLk9OX1RIRU1FX0NIQU5HRSx7dGhlbWU6ZS5tYXRjaGVzPyJkYXJrIjoibGlnaHQifSl9O2UuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsbik6ZS5hZGRMaXN0ZW5lcihuKX19KCl9LG1ldGhvZHM6e29uTGF5b3V0OmZ1bmN0aW9uKHQpe3RoaXMuc2hvd0xheW91dD10fSxvbk1heFdpZHRoOmZ1bmN0aW9uKHQpe3RoaXMuc2hvd01heFdpZHRoPXR9LGluaXRNZWRpYVF1ZXJ5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih3aW5kb3cubWF0Y2hNZWRpYSYmdS50YWJCYXIubWF0Y2hNZWRpYSYmKDAsYS5oYXNPd24pKHUudGFiQmFyLm1hdGNoTWVkaWEsIm1pbldpZHRoIikpe3ZhciBlPXdpbmRvdy5tYXRjaE1lZGlhKCIobWluLXdpZHRoOiAiK3UudGFiQmFyLm1hdGNoTWVkaWEubWluV2lkdGgrInB4KSIpO2UuYWRkTGlzdGVuZXIoKGZ1bmN0aW9uKGUpe3QudGFiQmFyTWVkaWFRdWVyeT1lLm1hdGNoZXN9KSksdGhpcy50YWJCYXJNZWRpYVF1ZXJ5PWUubWF0Y2hlc319fX07ZS5kZWZhdWx0PWx9KS5jYWxsKHRoaXMsbigiYTlhYSIpLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sIjlkOGMiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNoZWNrSW5XaW5kb3dzPWZ1bmN0aW9uKHQpezA7d2hpbGUodCl7aWYoLTEhPT1yLmluZGV4T2YodC4kb3B0aW9ucy5uYW1lKSlyZXR1cm4hMDt0PXQuJHBhcmVudH19LG4oImM5NzUiKTt2YXIgcj1bIlZVbmlMZWZ0V2luZG93IiwiVlVuaVRvcFdpbmRvdyIsIlZVbmlSaWdodFdpbmRvdyJdfSwiOWYwNCI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSxuKXtyZXR1cm4gdD5lLW4mJnQ8ZStufWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gcih0LDAsZSl9ZnVuY3Rpb24gYSgpe31mdW5jdGlvbiBvKHQsZSl7dGhpcy5fbT10LHRoaXMuX2Y9MWUzKmUsdGhpcy5fc3RhcnRUaW1lPTAsdGhpcy5fdj0wfWZ1bmN0aW9uIHModCxlLG4pe3RoaXMuX209dCx0aGlzLl9rPWUsdGhpcy5fYz1uLHRoaXMuX3NvbHV0aW9uPW51bGwsdGhpcy5fZW5kUG9zaXRpb249MCx0aGlzLl9zdGFydFRpbWU9MH1mdW5jdGlvbiBjKHQsZSxuKXt0aGlzLl9zcHJpbmdYPW5ldyBzKHQsZSxuKSx0aGlzLl9zcHJpbmdZPW5ldyBzKHQsZSxuKSx0aGlzLl9zcHJpbmdTY2FsZT1uZXcgcyh0LGUsbiksdGhpcy5fc3RhcnRUaW1lPTB9bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkRlY2xpbmU9YSxlLkZyaWN0aW9uPW8sZS5TVEQ9YyxlLlNwcmluZz1zLGEucHJvdG90eXBlLng9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCh0KX0sby5wcm90b3R5cGUuc2V0Vj1mdW5jdGlvbih0LGUpe3ZhciBuPU1hdGgucG93KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKSwuNSk7dGhpcy5feF92PXQsdGhpcy5feV92PWUsdGhpcy5feF9hPS10aGlzLl9mKnRoaXMuX3hfdi9uLHRoaXMuX3lfYT0tdGhpcy5fZip0aGlzLl95X3Yvbix0aGlzLl90PU1hdGguYWJzKHQvdGhpcy5feF9hKXx8TWF0aC5hYnMoZS90aGlzLl95X2EpLHRoaXMuX2xhc3REdD1udWxsLHRoaXMuX3N0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKX0sby5wcm90b3R5cGUuc2V0Uz1mdW5jdGlvbih0LGUpe3RoaXMuX3hfcz10LHRoaXMuX3lfcz1lfSxvLnByb3RvdHlwZS5zPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdD50aGlzLl90JiYodD10aGlzLl90LHRoaXMuX2xhc3REdD10KTt2YXIgZT10aGlzLl94X3YqdCsuNSp0aGlzLl94X2EqTWF0aC5wb3codCwyKSt0aGlzLl94X3Msbj10aGlzLl95X3YqdCsuNSp0aGlzLl95X2EqTWF0aC5wb3codCwyKSt0aGlzLl95X3M7cmV0dXJuKHRoaXMuX3hfYT4wJiZlPHRoaXMuX2VuZFBvc2l0aW9uWHx8dGhpcy5feF9hPDAmJmU+dGhpcy5fZW5kUG9zaXRpb25YKSYmKGU9dGhpcy5fZW5kUG9zaXRpb25YKSwodGhpcy5feV9hPjAmJm48dGhpcy5fZW5kUG9zaXRpb25ZfHx0aGlzLl95X2E8MCYmbj50aGlzLl9lbmRQb3NpdGlvblkpJiYobj10aGlzLl9lbmRQb3NpdGlvblkpLHt4OmUseTpufX0sby5wcm90b3R5cGUuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdD50aGlzLl90JiYodD10aGlzLl90KSx7ZHg6dGhpcy5feF92K3RoaXMuX3hfYSp0LGR5OnRoaXMuX3lfdit0aGlzLl95X2EqdH19LG8ucHJvdG90eXBlLmRlbHRhPWZ1bmN0aW9uKCl7cmV0dXJue3g6LTEuNSpNYXRoLnBvdyh0aGlzLl94X3YsMikvdGhpcy5feF9hfHwwLHk6LTEuNSpNYXRoLnBvdyh0aGlzLl95X3YsMikvdGhpcy5feV9hfHwwfX0sby5wcm90b3R5cGUuZHQ9ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5feF92L3RoaXMuX3hfYX0sby5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbigpe3ZhciB0PXIodGhpcy5zKCkueCx0aGlzLl9lbmRQb3NpdGlvblgpfHxyKHRoaXMucygpLnksdGhpcy5fZW5kUG9zaXRpb25ZKXx8dGhpcy5fbGFzdER0PT09dGhpcy5fdDtyZXR1cm4gdGhpcy5fbGFzdER0PW51bGwsdH0sby5wcm90b3R5cGUuc2V0RW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fZW5kUG9zaXRpb25YPXQsdGhpcy5fZW5kUG9zaXRpb25ZPWV9LG8ucHJvdG90eXBlLnJlY29uZmlndXJlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbT10LHRoaXMuX2Y9MWUzKmV9LHMucHJvdG90eXBlLl9zb2x2ZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2Mscj10aGlzLl9tLGk9dGhpcy5fayxhPW4qbi00KnIqaTtpZigwPT09YSl7dmFyIG89LW4vKDIqcikscz10LGM9ZS8obyp0KTtyZXR1cm57eDpmdW5jdGlvbih0KXtyZXR1cm4ocytjKnQpKk1hdGgucG93KE1hdGguRSxvKnQpfSxkeDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdyhNYXRoLkUsbyp0KTtyZXR1cm4gbyoocytjKnQpKmUrYyplfX19aWYoYT4wKXt2YXIgdT0oLW4tTWF0aC5zcXJ0KGEpKS8oMipyKSxsPSgtbitNYXRoLnNxcnQoYSkpLygyKnIpLGY9KGUtdSp0KS8obC11KSxkPXQtZjtyZXR1cm57eDpmdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiB0PT09dGhpcy5fdCYmKGU9dGhpcy5fcG93RVIxVCxuPXRoaXMuX3Bvd0VSMlQpLHRoaXMuX3Q9dCxlfHwoZT10aGlzLl9wb3dFUjFUPU1hdGgucG93KE1hdGguRSx1KnQpKSxufHwobj10aGlzLl9wb3dFUjJUPU1hdGgucG93KE1hdGguRSxsKnQpKSxkKmUrZipufSxkeDpmdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiB0PT09dGhpcy5fdCYmKGU9dGhpcy5fcG93RVIxVCxuPXRoaXMuX3Bvd0VSMlQpLHRoaXMuX3Q9dCxlfHwoZT10aGlzLl9wb3dFUjFUPU1hdGgucG93KE1hdGguRSx1KnQpKSxufHwobj10aGlzLl9wb3dFUjJUPU1hdGgucG93KE1hdGguRSxsKnQpKSxkKnUqZStmKmwqbn19fXZhciBoPU1hdGguc3FydCg0KnIqaS1uKm4pLygyKnIpLHA9LW4vMipyLHY9dCxnPShlLXAqdCkvaDtyZXR1cm57eDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coTWF0aC5FLHAqdCkqKHYqTWF0aC5jb3MoaCp0KStnKk1hdGguc2luKGgqdCkpfSxkeDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdyhNYXRoLkUscCp0KSxuPU1hdGguY29zKGgqdCkscj1NYXRoLnNpbihoKnQpO3JldHVybiBlKihnKmgqbi12KmgqcikrcCplKihnKnIrdipuKX19fSxzLnByb3RvdHlwZS54PWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD0oKG5ldyBEYXRlKS5nZXRUaW1lKCktdGhpcy5fc3RhcnRUaW1lKS8xZTMpLHRoaXMuX3NvbHV0aW9uP3RoaXMuX2VuZFBvc2l0aW9uK3RoaXMuX3NvbHV0aW9uLngodCk6MH0scy5wcm90b3R5cGUuZHg9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdGhpcy5fc29sdXRpb24/dGhpcy5fc29sdXRpb24uZHgodCk6MH0scy5wcm90b3R5cGUuc2V0RW5kPWZ1bmN0aW9uKHQsZSxuKXtpZihufHwobj0obmV3IERhdGUpLmdldFRpbWUoKSksdCE9PXRoaXMuX2VuZFBvc2l0aW9ufHwhaShlLC4xKSl7ZT1lfHwwO3ZhciByPXRoaXMuX2VuZFBvc2l0aW9uO3RoaXMuX3NvbHV0aW9uJiYoaShlLC4xKSYmKGU9dGhpcy5fc29sdXRpb24uZHgoKG4tdGhpcy5fc3RhcnRUaW1lKS8xZTMpKSxyPXRoaXMuX3NvbHV0aW9uLngoKG4tdGhpcy5fc3RhcnRUaW1lKS8xZTMpLGkoZSwuMSkmJihlPTApLGkociwuMSkmJihyPTApLHIrPXRoaXMuX2VuZFBvc2l0aW9uKSx0aGlzLl9zb2x1dGlvbiYmaShyLXQsLjEpJiZpKGUsLjEpfHwodGhpcy5fZW5kUG9zaXRpb249dCx0aGlzLl9zb2x1dGlvbj10aGlzLl9zb2x2ZShyLXRoaXMuX2VuZFBvc2l0aW9uLGUpLHRoaXMuX3N0YXJ0VGltZT1uKX19LHMucHJvdG90eXBlLnNuYXA9ZnVuY3Rpb24odCl7dGhpcy5fc3RhcnRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLHRoaXMuX2VuZFBvc2l0aW9uPXQsdGhpcy5fc29sdXRpb249e3g6ZnVuY3Rpb24oKXtyZXR1cm4gMH0sZHg6ZnVuY3Rpb24oKXtyZXR1cm4gMH19fSxzLnByb3RvdHlwZS5kb25lPWZ1bmN0aW9uKHQpe3JldHVybiB0fHwodD0obmV3IERhdGUpLmdldFRpbWUoKSkscih0aGlzLngoKSx0aGlzLl9lbmRQb3NpdGlvbiwuMSkmJmkodGhpcy5keCgpLC4xKX0scy5wcm90b3R5cGUucmVjb25maWd1cmU9ZnVuY3Rpb24odCxlLG4pe3RoaXMuX209dCx0aGlzLl9rPWUsdGhpcy5fYz1uLHRoaXMuZG9uZSgpfHwodGhpcy5fc29sdXRpb249dGhpcy5fc29sdmUodGhpcy54KCktdGhpcy5fZW5kUG9zaXRpb24sdGhpcy5keCgpKSx0aGlzLl9zdGFydFRpbWU9KG5ldyBEYXRlKS5nZXRUaW1lKCkpfSxzLnByb3RvdHlwZS5zcHJpbmdDb25zdGFudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9rfSxzLnByb3RvdHlwZS5kYW1waW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N9LHMucHJvdG90eXBlLmNvbmZpZ3VyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm5be2xhYmVsOiJTcHJpbmcgQ29uc3RhbnQiLHJlYWQ6dGhpcy5zcHJpbmdDb25zdGFudC5iaW5kKHRoaXMpLHdyaXRlOmZ1bmN0aW9uKHQsZSl7dC5yZWNvbmZpZ3VyZSgxLGUsdC5kYW1waW5nKCkpfS5iaW5kKHRoaXMsdGhpcyksbWluOjEwMCxtYXg6MWUzfSx7bGFiZWw6IkRhbXBpbmciLHJlYWQ6dGhpcy5kYW1waW5nLmJpbmQodGhpcyksd3JpdGU6ZnVuY3Rpb24odCxlKXt0LnJlY29uZmlndXJlKDEsdC5zcHJpbmdDb25zdGFudCgpLGUpfS5iaW5kKHRoaXMsdGhpcyksbWluOjEsbWF4OjUwMH1dfSxjLnByb3RvdHlwZS5zZXRFbmQ9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5fc3ByaW5nWC5zZXRFbmQodCxyLGkpLHRoaXMuX3NwcmluZ1kuc2V0RW5kKGUscixpKSx0aGlzLl9zcHJpbmdTY2FsZS5zZXRFbmQobixyLGkpLHRoaXMuX3N0YXJ0VGltZT1pfSxjLnByb3RvdHlwZS54PWZ1bmN0aW9uKCl7dmFyIHQ9KChuZXcgRGF0ZSkuZ2V0VGltZSgpLXRoaXMuX3N0YXJ0VGltZSkvMWUzO3JldHVybnt4OnRoaXMuX3NwcmluZ1gueCh0KSx5OnRoaXMuX3NwcmluZ1kueCh0KSxzY2FsZTp0aGlzLl9zcHJpbmdTY2FsZS54KHQpfX0sYy5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbigpe3ZhciB0PShuZXcgRGF0ZSkuZ2V0VGltZSgpO3JldHVybiB0aGlzLl9zcHJpbmdYLmRvbmUodCkmJnRoaXMuX3NwcmluZ1kuZG9uZSh0KSYmdGhpcy5fc3ByaW5nU2NhbGUuZG9uZSh0KX0sYy5wcm90b3R5cGUucmVjb25maWd1cmU9ZnVuY3Rpb24odCxlLG4pe3RoaXMuX3NwcmluZ1gucmVjb25maWd1cmUodCxlLG4pLHRoaXMuX3NwcmluZ1kucmVjb25maWd1cmUodCxlLG4pLHRoaXMuX3NwcmluZ1NjYWxlLnJlY29uZmlndXJlKHQsZSxuKX19LCI5ZjQ4IjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIxMjM5IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSwiOWY0OSI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyeUNhdGNoPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3RyeXtyZXR1cm4gZS5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2gobil7dC5lcnJvcihuKX19fSxlLnRyeUNhdGNoRnJhbWV3b3JrPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3RyeXtyZXR1cm4gZS5hcHBseShlLGFyZ3VtZW50cyl9Y2F0Y2gobil7dC5lcnJvcihuKX19fX0pLmNhbGwodGhpcyxuKCI1YTUyIilbImRlZmF1bHQiXSl9LCI5ZjdmIjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDAzOSIpLGk9bigiZGE4NCIpLGE9aS5SZWdFeHAsbz1yKChmdW5jdGlvbigpe3ZhciB0PWEoImEiLCJ5Iik7cmV0dXJuIHQubGFzdEluZGV4PTIsbnVsbCE9dC5leGVjKCJhYmNkIil9KSkscz1vfHxyKChmdW5jdGlvbigpe3JldHVybiFhKCJhIiwieSIpLnN0aWNreX0pKSxjPW98fHIoKGZ1bmN0aW9uKCl7dmFyIHQ9YSgiXnIiLCJneSIpO3JldHVybiB0Lmxhc3RJbmRleD0yLG51bGwhPXQuZXhlYygic3RyIil9KSk7dC5leHBvcnRzPXtCUk9LRU5fQ0FSRVQ6YyxNSVNTRURfU1RJQ0tZOnMsVU5TVVBQT1JURURfWTpvfX0sIjlmZDEiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoInVuaS1zd2lwZXItaXRlbSIsdGhpcy5fZyh7fSx0aGlzLiRsaXN0ZW5lcnMpLFt0aGlzLl90KCJkZWZhdWx0IildLDIpfSxpPVtdfSxhMDRiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjMDRlIiksaT1uKCJkOWI1Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXIodCwic3RyaW5nIik7cmV0dXJuIGkoZSk/ZTplKyIifX0sYTA3ODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMDM2NiIpLGk9bigiYzY1YiIpLGE9bigiNTA4NyIpLG89bigiN2IwYiIpLHM9bigiMDdmYSIpLGM9bigiOWExZiIpLHU9bigiMzVhMSIpLGw9bigiZTk1YSIpLGY9bigiYmNiZiIpLGQ9bigiZWJiNSIpLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaD1uKCJmNDk1Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLG4scCx2LGcsbSxiLHksXz1hKHRoaXMpLHc9byh0KSx4PWFyZ3VtZW50cy5sZW5ndGgsUz14PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxUPXZvaWQgMCE9PVMsQz11KHcpO2lmKEMmJiFsKEMpKXtiPWModyxDKSx5PWIubmV4dCx3PVtdO3doaWxlKCEobT1pKHksYikpLmRvbmUpdy5wdXNoKG0udmFsdWUpfWZvcihUJiZ4PjImJihTPXIoUyxhcmd1bWVudHNbMl0pKSxuPXModykscD1uZXcoZChfKSkobiksdj1mKHApLGU9MDtuPmU7ZSsrKWc9VD9TKHdbZV0sZSk6d1tlXSxwW2VdPXY/aChnKTorZztyZXR1cm4gcH19LGEyNTg6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjAzNjYiKSxpPW4oIjQ0YWQiKSxhPW4oIjdiMGIiKSxvPW4oIjA3ZmEiKSxzPWZ1bmN0aW9uKHQpe3ZhciBlPTE9PXQ7cmV0dXJuIGZ1bmN0aW9uKG4scyxjKXt2YXIgdSxsLGY9YShuKSxkPWkoZiksaD1yKHMsYykscD1vKGQpO3doaWxlKHAtLSA+MClpZih1PWRbcF0sbD1oKHUscCxmKSxsKXN3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIHU7Y2FzZSAxOnJldHVybiBwfXJldHVybiBlPy0xOnZvaWQgMH19O3QuZXhwb3J0cz17ZmluZExhc3Q6cygwKSxmaW5kTGFzdEluZGV4OnMoMSl9fSxhMzhlOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9KDAsaS5kZWZhdWx0KSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PSgwLHIuZGVmYXVsdCkoZSk/ZTpTdHJpbmcoZSl9O3ZhciByPWEobigiNTNjYSIpKSxpPWEobigiYWY1MCIpKTtmdW5jdGlvbiBhKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX19LGEzOTU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjcwMzciKVsiZGVmYXVsdCJdLGk9bigiZTUwZCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT09cihlKT9lOlN0cmluZyhlKX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSxhNDM0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiN2IwYiIpLGE9bigiMjNjYiIpLG89bigiNTkyNiIpLHM9bigiMDdmYSIpLGM9bigiM2EzNCIpLHU9bigiMzUxMSIpLGw9bigiNjVmMCIpLGY9bigiODQxOCIpLGQ9bigiMDgzYSIpLGg9bigiMWRkZSIpLHA9aCgic3BsaWNlIiksdj1NYXRoLm1heCxnPU1hdGgubWluO3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohcH0se3NwbGljZTpmdW5jdGlvbih0LGUpe3ZhciBuLHIsaCxwLG0sYix5PWkodGhpcyksXz1zKHkpLHc9YSh0LF8pLHg9YXJndW1lbnRzLmxlbmd0aDtmb3IoMD09PXg/bj1yPTA6MT09PXg/KG49MCxyPV8tdyk6KG49eC0yLHI9Zyh2KG8oZSksMCksXy13KSksdShfK24tciksaD1sKHkscikscD0wO3A8cjtwKyspbT13K3AsbSBpbiB5JiZmKGgscCx5W21dKTtpZihoLmxlbmd0aD1yLG48cil7Zm9yKHA9dztwPF8tcjtwKyspbT1wK3IsYj1wK24sbSBpbiB5P3lbYl09eVttXTpkKHksYik7Zm9yKHA9XztwPl8tcituO3AtLSlkKHkscC0xKX1lbHNlIGlmKG4+cilmb3IocD1fLXI7cD53O3AtLSltPXArci0xLGI9cCtuLTEsbSBpbiB5P3lbYl09eVttXTpkKHksYik7Zm9yKHA9MDtwPG47cCsrKXlbcCt3XT1hcmd1bWVudHNbcCsyXTtyZXR1cm4gYyh5LF8tcituKSxofX0pfSxhNDlmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5uYXZpZ2F0ZUJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHMoIm5hdmlnYXRlQmFjayIsdCl9LGUubmF2aWdhdGVUbz1mdW5jdGlvbih0KXtyZXR1cm4gcygibmF2aWdhdGVUbyIsdCl9LGUucHJlbG9hZFBhZ2U9ZnVuY3Rpb24odCxlKXt2YXIgbj10LnVybCxyPW4uc3BsaXQoIj8iKVswXS5yZXBsYWNlKC9cLy9nLCItIik7X191bmlDb25maWcuX193ZWJwYWNrX2NodW5rX2xvYWRfXyhyLnN1YnN0cigxKSkudGhlbigoZnVuY3Rpb24oKXtvKGUse3VybDpuLGVyck1zZzoicHJlbG9hZFBhZ2U6b2sifSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe28oZSx7dXJsOm4sZXJyTXNnOiJwcmVsb2FkUGFnZTpmYWlsICIrdH0pfSkpfSxlLnJlTGF1bmNoPWZ1bmN0aW9uKHQpe3JldHVybiBzKCJyZUxhdW5jaCIsdCl9LGUucmVkaXJlY3RUbz1mdW5jdGlvbih0KXtyZXR1cm4gcygicmVkaXJlY3RUbyIsdCl9LGUuc3dpdGNoVGFiPWZ1bmN0aW9uKHQpe3JldHVybiBzKCJzd2l0Y2hUYWIiLHQpfSxuKCJhYzFmIiksbigiNTMxOSIpLG4oIjE0ZDkiKTt2YXIgcj1uKCJmNGYwIiksaT1uKCIxOWJmIiksYT10LG89YS5pbnZva2VDYWxsYmFja0hhbmRsZXI7ZnVuY3Rpb24gcyh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1lLnVybCxhPWUuZGVsdGEsbz1lLmV2ZW50cyxjPWUuZXhpc3RzLHU9ZS5hbmltYXRpb25UeXBlLGw9ZS5hbmltYXRpb25EdXJhdGlvbixmPWUuZnJvbSxkPXZvaWQgMD09PWY/Im5hdmlnYXRlQmFjayI6ZixoPWUuZGV0YWlsLHA9Z2V0QXBwKCkuJHJvdXRlcjtzd2l0Y2goZGVsZXRlIHAuJGV2ZW50Q2hhbm5lbCx0KXtjYXNlInJlZGlyZWN0VG8iOmlmKCJiYWNrIj09PWMpe3ZhciB2PSgwLHIuZmluZEV4aXN0c1BhZ2VJbmRleCkobik7aWYoLTEhPT12KXt2YXIgZz1nZXRDdXJyZW50UGFnZXMoKS5sZW5ndGgtMS12O2lmKGc+MClyZXR1cm4gcygibmF2aWdhdGVCYWNrIix7ZGVsdGE6Z30pfX1wLnJlcGxhY2Uoe3R5cGU6dCxwYXRoOm59KTticmVhaztjYXNlIm5hdmlnYXRlVG8iOnJldHVybiBwLiRldmVudENoYW5uZWw9KDAsaS5pbml0RXZlbnRDaGFubmVsKShvKSxwLnB1c2goe3R5cGU6dCxwYXRoOm4sYW5pbWF0aW9uVHlwZTp1LGFuaW1hdGlvbkR1cmF0aW9uOmx9KSx7ZXJyTXNnOnQrIjpvayIsZXZlbnRDaGFubmVsOnAuJGV2ZW50Q2hhbm5lbH07Y2FzZSJuYXZpZ2F0ZUJhY2siOnZhciBtPSEwLGI9Z2V0Q3VycmVudFBhZ2VzKCk7aWYoYi5sZW5ndGgpe3ZhciB5PWJbYi5sZW5ndGgtMV07KDAsci5oYXNMaWZlY3ljbGVIb29rKSh5LiRvcHRpb25zLCJvbkJhY2tQcmVzcyIpJiYhMD09PXkuX19jYWxsX2hvb2soIm9uQmFja1ByZXNzIix7ZnJvbTpkfSkmJihtPSExKX1tJiYoYT4xJiYocC5fJGRlbHRhPWEpLHAuZ28oLWEse2FuaW1hdGlvblR5cGU6dSxhbmltYXRpb25EdXJhdGlvbjpsfSkpO2JyZWFrO2Nhc2UicmVMYXVuY2giOnAucmVwbGFjZSh7dHlwZTp0LHBhdGg6bn0pO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpwLnJlcGxhY2Uoe3R5cGU6dCxwYXRoOm4scGFyYW1zOntkZXRhaWw6aH19KTticmVha31yZXR1cm57ZXJyTXNnOnQrIjpvayJ9fX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSxhNGI0OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzNDJmIik7dC5leHBvcnRzPS93ZWIwcyg/IS4qY2hyb21lKS9pLnRlc3Qocil9LGE0ZDM6ZnVuY3Rpb24odCxlLG4pe24oImQ5ZjUiKSxuKCJiNGY4IiksbigiYzUxMyIpLG4oImU5YzQiKSxuKCI1YTQ3Iil9LGE1MjQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZWNiZiIpLGk9bigiNzlhZSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYTUzYzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJhYmY0IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxhNTVjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNhbklVc2U9dm9pZCAwO3ZhciByPVt7bmFtZToic2NoZW1hIix0eXBlOlN0cmluZyxyZXF1aXJlZDohMH1dO2UuY2FuSVVzZT1yfSxhNWUwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmlzQ2FsbGJhY2tBcGk9aCxlLmlzQ29udGV4dEFwaT1mLGUuaXNTeW5jQXBpPWQsZS5pc1Rhc2tBcGk9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1jLmluZGV4T2YodCl9LGUucHJvbWlzaWZ5PWZ1bmN0aW9uKHQsZSl7aWYoIXYodCl8fCEoMCxyLmlzRm4pKGUpKXJldHVybiBlO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sYT1hcmd1bWVudHMubGVuZ3RoLG89bmV3IEFycmF5KGE+MT9hLTE6MCkscz0xO3M8YTtzKyspb1tzLTFdPWFyZ3VtZW50c1tzXTtyZXR1cm4oMCxyLmlzRm4pKG4uc3VjY2Vzcyl8fCgwLHIuaXNGbikobi5mYWlsKXx8KDAsci5pc0ZuKShuLmNvbXBsZXRlKT8oMCxpLndyYXBwZXJSZXR1cm5WYWx1ZSkodCxpLmludm9rZUFwaS5hcHBseSh2b2lkIDAsW3QsZSxuXS5jb25jYXQobykpKTooMCxpLndyYXBwZXJSZXR1cm5WYWx1ZSkodCxwKG5ldyBQcm9taXNlKChmdW5jdGlvbihyLGEpe2kuaW52b2tlQXBpLmFwcGx5KHZvaWQgMCxbdCxlLE9iamVjdC5hc3NpZ24oe30sbix7c3VjY2VzczpyLGZhaWw6YX0pXS5jb25jYXQobykpfSkpKSl9fSxlLnNob3VsZFByb21pc2U9dixuKCJhYzFmIiksbigiMDBiNCIpLG4oImM5NzUiKSxuKCJkM2I3IiksbigiOTlhZiIpO3ZhciByPW4oImRiNmEiKSxpPW4oImZlNjciKSxhPS9eXCR8V2luZG93JHxXaW5kb3dTdHlsZSR8c2VuZEhvc3RFdmVudHxzZW5kTmF0aXZlRXZlbnR8cmVzdG9yZUdsb2JhbHxyZXF1aXJlR2xvYmFsfGdldEN1cnJlbnRTdWJOVnVlfGdldE1lbnVCdXR0b25Cb3VuZGluZ0NsaWVudFJlY3R8XnJlcG9ydHxpbnRlcmNlcHRvcnN8SW50ZXJjZXB0b3IkfGdldFN1Yk5WdWVCeUlkfHJlcXVpcmVOYXRpdmVQbHVnaW58dXB4MnB4fGhpZGVLZXlib2FyZHxjYW5JVXNlfF5jcmVhdGV8U3luYyR8TWFuYWdlciR8YmFzZTY0VG9BcnJheUJ1ZmZlcnxhcnJheUJ1ZmZlclRvQmFzZTY0fGdldExvY2FsZXxzZXRMb2NhbGV8aW52b2tlUHVzaENhbGxiYWNrfGdldFdpbmRvd0luZm98Z2V0RGV2aWNlSW5mb3xnZXRBcHBCYXNlSW5mb3xnZXRTeXN0ZW1TZXR0aW5nfGdldEFwcEF1dGhvcml6ZVNldHRpbmd8aW5pdFVUU3xyZXF1aXJlVVRTfHJlZ2lzdGVyVVRTLyxvPS9eY3JlYXRlfE1hbmFnZXIkLyxzPVsiY3JlYXRlQkxFQ29ubmVjdGlvbiJdLGM9WyJyZXF1ZXN0IiwiZG93bmxvYWRGaWxlIiwidXBsb2FkRmlsZSIsImNvbm5lY3RTb2NrZXQiXSx1PVsiY3JlYXRlQkxFQ29ubmVjdGlvbiIsImNyZWF0ZVB1c2hNZXNzYWdlIl0sbD0vXm9ufF5vZmYvO2Z1bmN0aW9uIGYodCl7cmV0dXJuIG8udGVzdCh0KSYmLTE9PT1zLmluZGV4T2YodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gYS50ZXN0KHQpJiYtMT09PXUuaW5kZXhPZih0KX1mdW5jdGlvbiBoKHQpe3JldHVybiBsLnRlc3QodCkmJiJvblB1c2giIT09dH1mdW5jdGlvbiBwKHQpe3JldHVybiB0LnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybltudWxsLHRdfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm5bdF19KSl9ZnVuY3Rpb24gdih0KXtyZXR1cm4hKGYodCl8fGQodCl8fGgodCkpfVByb21pc2UucHJvdG90eXBlLmZpbmFsbHl8fChQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbigoZnVuY3Rpb24obil7cmV0dXJuIGUucmVzb2x2ZSh0KCkpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSl9KSwoZnVuY3Rpb24obil7cmV0dXJuIGUucmVzb2x2ZSh0KCkpLnRoZW4oKGZ1bmN0aW9uKCl7dGhyb3cgbn0pKX0pKX0pfSxhNjMwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCI0ZGY0IiksYT1uKCIxYzdlIiksbz0hYSgoZnVuY3Rpb24odCl7QXJyYXkuZnJvbSh0KX0pKTtyKHt0YXJnZXQ6IkFycmF5IixzdGF0OiEwLGZvcmNlZDpvfSx7ZnJvbTppfSl9LGE2NDA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJkMDM5Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49W11bdF07cmV0dXJuISFuJiZyKChmdW5jdGlvbigpe24uY2FsbChudWxsLGV8fGZ1bmN0aW9uKCl7cmV0dXJuIDF9LDEpfSkpfX0sYTc5ZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImM0MzAiKSxhPW4oImQyNTYiKSxvPW4oImQwMzkiKSxzPW4oImQwNjYiKSxjPW4oIjE2MjYiKSx1PW4oIjQ4NDAiKSxsPW4oImNkZjkiKSxmPW4oImNiMmQiKSxkPWEmJmEucHJvdG90eXBlLGg9ISFhJiZvKChmdW5jdGlvbigpe2RbImZpbmFsbHkiXS5jYWxsKHt0aGVuOmZ1bmN0aW9uKCl7fX0sKGZ1bmN0aW9uKCl7fSkpfSkpO2lmKHIoe3RhcmdldDoiUHJvbWlzZSIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6aH0se2ZpbmFsbHk6ZnVuY3Rpb24odCl7dmFyIGU9dSh0aGlzLHMoIlByb21pc2UiKSksbj1jKHQpO3JldHVybiB0aGlzLnRoZW4obj9mdW5jdGlvbihuKXtyZXR1cm4gbChlLHQoKSkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gbn0pKX06dCxuP2Z1bmN0aW9uKG4pe3JldHVybiBsKGUsdCgpKS50aGVuKChmdW5jdGlvbigpe3Rocm93IG59KSl9OnQpfX0pLCFpJiZjKGEpKXt2YXIgcD1zKCJQcm9taXNlIikucHJvdG90eXBlWyJmaW5hbGx5Il07ZFsiZmluYWxseSJdIT09cCYmZihkLCJmaW5hbGx5IixwLHt1bnNhZmU6ITB9KX19LGE3YTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSksZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLmluZGV4T2YoIkVycm9yIik+LTF9ZnVuY3Rpb24gcih0LGUpe2Zvcih2YXIgbiBpbiBlKXRbbl09ZVtuXTtyZXR1cm4gdH12YXIgaT17bmFtZToiUm91dGVyVmlldyIsZnVuY3Rpb25hbDohMCxwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiZGVmYXVsdCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnByb3BzLGk9ZS5jaGlsZHJlbixhPWUucGFyZW50LG89ZS5kYXRhO28ucm91dGVyVmlldz0hMDt2YXIgcz1hLiRjcmVhdGVFbGVtZW50LGM9bi5uYW1lLHU9YS4kcm91dGUsbD1hLl9yb3V0ZXJWaWV3Q2FjaGV8fChhLl9yb3V0ZXJWaWV3Q2FjaGU9e30pLGY9MCxkPSExO3doaWxlKGEmJmEuX3JvdXRlclJvb3QhPT1hKWEuJHZub2RlJiZhLiR2bm9kZS5kYXRhLnJvdXRlclZpZXcmJmYrKyxhLl9pbmFjdGl2ZSYmKGQ9ITApLGE9YS4kcGFyZW50O2lmKG8ucm91dGVyVmlld0RlcHRoPWYsZClyZXR1cm4gcyhsW2NdLG8saSk7dmFyIGg9dS5tYXRjaGVkW2ZdO2lmKCFoKXJldHVybiBsW2NdPW51bGwscygpO3ZhciBwPWxbY109aC5jb21wb25lbnRzW2NdO28ucmVnaXN0ZXJSb3V0ZUluc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIG49aC5pbnN0YW5jZXNbY107KGUmJm4hPT10fHwhZSYmbj09PXQpJiYoaC5pbnN0YW5jZXNbY109ZSl9LChvLmhvb2t8fChvLmhvb2s9e30pKS5wcmVwYXRjaD1mdW5jdGlvbih0LGUpe2guaW5zdGFuY2VzW2NdPWUuY29tcG9uZW50SW5zdGFuY2V9O3ZhciB2PW8ucHJvcHM9ZnVuY3Rpb24odCxlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UidW5kZWZpbmVkIjpyZXR1cm47Y2FzZSJvYmplY3QiOnJldHVybiBlO2Nhc2UiZnVuY3Rpb24iOnJldHVybiBlKHQpO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIGU/dC5wYXJhbXM6dm9pZCAwO2RlZmF1bHQ6MH19KHUsaC5wcm9wcyYmaC5wcm9wc1tjXSk7aWYodil7dj1vLnByb3BzPXIoe30sdik7dmFyIGc9by5hdHRycz1vLmF0dHJzfHx7fTtmb3IodmFyIG0gaW4gdilwLnByb3BzJiZtIGluIHAucHJvcHN8fChnW21dPXZbbV0sZGVsZXRlIHZbbV0pfXJldHVybiBzKHAsbyxpKX19O3ZhciBhPS9bIScoKSpdL2csbz1mdW5jdGlvbih0KXtyZXR1cm4iJSIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KX0scz0vJTJDL2csYz1mdW5jdGlvbih0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpLnJlcGxhY2UoYSxvKS5yZXBsYWNlKHMsIiwiKX0sdT1kZWNvZGVVUklDb21wb25lbnQ7ZnVuY3Rpb24gbCh0LGUsbil7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciByLGk9bnx8Zjt0cnl7cj1pKHR8fCIiKX1jYXRjaChvKXtyPXt9fWZvcih2YXIgYSBpbiBlKXJbYV09ZVthXTtyZXR1cm4gcn1mdW5jdGlvbiBmKHQpe3ZhciBlPXt9O3JldHVybiB0PXQudHJpbSgpLnJlcGxhY2UoL14oXD98I3wmKS8sIiIpLHQ/KHQuc3BsaXQoIiYiKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj10LnJlcGxhY2UoL1wrL2csIiAiKS5zcGxpdCgiPSIpLHI9dShuLnNoaWZ0KCkpLGk9bi5sZW5ndGg+MD91KG4uam9pbigiPSIpKTpudWxsO3ZvaWQgMD09PWVbcl0/ZVtyXT1pOkFycmF5LmlzQXJyYXkoZVtyXSk/ZVtyXS5wdXNoKGkpOmVbcl09W2Vbcl0saV19KSksZSk6ZX1mdW5jdGlvbiBkKHQpe3ZhciBlPXQ/T2JqZWN0LmtleXModCkubWFwKChmdW5jdGlvbihlKXt2YXIgbj10W2VdO2lmKHZvaWQgMD09PW4pcmV0dXJuIiI7aWYobnVsbD09PW4pcmV0dXJuIGMoZSk7aWYoQXJyYXkuaXNBcnJheShuKSl7dmFyIHI9W107cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7dm9pZCAwIT09dCYmKG51bGw9PT10P3IucHVzaChjKGUpKTpyLnB1c2goYyhlKSsiPSIrYyh0KSkpfSkpLHIuam9pbigiJiIpfXJldHVybiBjKGUpKyI9IitjKG4pfSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPjB9KSkuam9pbigiJiIpOm51bGw7cmV0dXJuIGU/Ij8iK2U6IiJ9dmFyIGg9L1wvPyQvO2Z1bmN0aW9uIHAodCxlLG4scil7dmFyIGk9ciYmci5vcHRpb25zLnN0cmluZ2lmeVF1ZXJ5LGE9ZS5xdWVyeXx8e307dHJ5e2E9dihhKX1jYXRjaChzKXt9dmFyIG89e25hbWU6ZS5uYW1lfHx0JiZ0Lm5hbWUsbWV0YTp0JiZ0Lm1ldGF8fHt9LHBhdGg6ZS5wYXRofHwiLyIsaGFzaDplLmhhc2h8fCIiLHR5cGU6ZS50eXBlLHF1ZXJ5OmEscGFyYW1zOmUucGFyYW1zfHx7fSxmdWxsUGF0aDpiKGUsaSksbWF0Y2hlZDp0P20odCk6W119O3JldHVybiBuJiYoby5yZWRpcmVjdGVkRnJvbT1iKG4saSkpLE9iamVjdC5mcmVlemUobyl9ZnVuY3Rpb24gdih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcCh2KTtpZih0JiYib2JqZWN0Ij09PXR5cGVvZiB0KXt2YXIgZT17fTtmb3IodmFyIG4gaW4gdCllW25dPXYodFtuXSk7cmV0dXJuIGV9cmV0dXJuIHR9dmFyIGc9cChudWxsLHtwYXRoOiIvIn0pO2Z1bmN0aW9uIG0odCl7dmFyIGU9W107d2hpbGUodCllLnVuc2hpZnQodCksdD10LnBhcmVudDtyZXR1cm4gZX1mdW5jdGlvbiBiKHQsZSl7dmFyIG49dC5wYXRoLHI9dC5xdWVyeTt2b2lkIDA9PT1yJiYocj17fSk7dmFyIGk9dC5oYXNoO3ZvaWQgMD09PWkmJihpPSIiKTt2YXIgYT1lfHxkO3JldHVybihufHwiLyIpK2EocikraX1mdW5jdGlvbiB5KHQsZSl7aWYodm9pZCAwPT09dCYmKHQ9e30pLHZvaWQgMD09PWUmJihlPXt9KSwhdHx8IWUpcmV0dXJuIHQ9PT1lO3ZhciBuPU9iamVjdC5rZXlzKHQpLHI9T2JqZWN0LmtleXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09ci5sZW5ndGgmJm4uZXZlcnkoKGZ1bmN0aW9uKG4pe3ZhciByPXRbbl0saT1lW25dO3JldHVybiJvYmplY3QiPT09dHlwZW9mIHImJiJvYmplY3QiPT09dHlwZW9mIGk/eShyLGkpOlN0cmluZyhyKT09PVN0cmluZyhpKX0pKX12YXIgXyx3PVtTdHJpbmcsT2JqZWN0XSx4PVtTdHJpbmcsQXJyYXldLFM9e25hbWU6IlJvdXRlckxpbmsiLHByb3BzOnt0bzp7dHlwZTp3LHJlcXVpcmVkOiEwfSx0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImEifSxleGFjdDpCb29sZWFuLGFwcGVuZDpCb29sZWFuLHJlcGxhY2U6Qm9vbGVhbixhY3RpdmVDbGFzczpTdHJpbmcsZXhhY3RBY3RpdmVDbGFzczpTdHJpbmcsZXZlbnQ6e3R5cGU6eCxkZWZhdWx0OiJjbGljayJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuJHJvdXRlcixpPXRoaXMuJHJvdXRlLGE9bi5yZXNvbHZlKHRoaXMudG8saSx0aGlzLmFwcGVuZCksbz1hLmxvY2F0aW9uLHM9YS5yb3V0ZSxjPWEuaHJlZix1PXt9LGw9bi5vcHRpb25zLmxpbmtBY3RpdmVDbGFzcyxmPW4ub3B0aW9ucy5saW5rRXhhY3RBY3RpdmVDbGFzcyxkPW51bGw9PWw/InJvdXRlci1saW5rLWFjdGl2ZSI6bCx2PW51bGw9PWY/InJvdXRlci1saW5rLWV4YWN0LWFjdGl2ZSI6ZixtPW51bGw9PXRoaXMuYWN0aXZlQ2xhc3M/ZDp0aGlzLmFjdGl2ZUNsYXNzLGI9bnVsbD09dGhpcy5leGFjdEFjdGl2ZUNsYXNzP3Y6dGhpcy5leGFjdEFjdGl2ZUNsYXNzLF89by5wYXRoP3AobnVsbCxvLG51bGwsbik6czt1W2JdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9PT1nP3Q9PT1lOiEhZSYmKHQucGF0aCYmZS5wYXRoP3QucGF0aC5yZXBsYWNlKGgsIiIpPT09ZS5wYXRoLnJlcGxhY2UoaCwiIikmJnQuaGFzaD09PWUuaGFzaCYmeSh0LnF1ZXJ5LGUucXVlcnkpOiEoIXQubmFtZXx8IWUubmFtZSkmJih0Lm5hbWU9PT1lLm5hbWUmJnQuaGFzaD09PWUuaGFzaCYmeSh0LnF1ZXJ5LGUucXVlcnkpJiZ5KHQucGFyYW1zLGUucGFyYW1zKSkpfShpLF8pLHVbbV09dGhpcy5leGFjdD91W2JdOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA9PT10LnBhdGgucmVwbGFjZShoLCIvIikuaW5kZXhPZihlLnBhdGgucmVwbGFjZShoLCIvIikpJiYoIWUuaGFzaHx8dC5oYXNoPT09ZS5oYXNoKSYmZnVuY3Rpb24odCxlKXtmb3IodmFyIG4gaW4gZSlpZighKG4gaW4gdCkpcmV0dXJuITE7cmV0dXJuITB9KHQucXVlcnksZS5xdWVyeSl9KGksXyk7dmFyIHc9ZnVuY3Rpb24odCl7VCh0KSYmKGUucmVwbGFjZT9uLnJlcGxhY2Uobyk6bi5wdXNoKG8pKX0seD17Y2xpY2s6VH07QXJyYXkuaXNBcnJheSh0aGlzLmV2ZW50KT90aGlzLmV2ZW50LmZvckVhY2goKGZ1bmN0aW9uKHQpe3hbdF09d30pKTp4W3RoaXMuZXZlbnRdPXc7dmFyIFM9e2NsYXNzOnV9O2lmKCJhIj09PXRoaXMudGFnKVMub249eCxTLmF0dHJzPXtocmVmOmN9O2Vsc2V7dmFyIEM9ZnVuY3Rpb24gdChlKXt2YXIgbjtpZihlKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXtpZihuPWVbcl0sImEiPT09bi50YWcpcmV0dXJuIG47aWYobi5jaGlsZHJlbiYmKG49dChuLmNoaWxkcmVuKSkpcmV0dXJuIG59fSh0aGlzLiRzbG90cy5kZWZhdWx0KTtpZihDKXtDLmlzU3RhdGljPSExO3ZhciBrPUMuZGF0YT1yKHt9LEMuZGF0YSk7ay5vbj14O3ZhciBPPUMuZGF0YS5hdHRycz1yKHt9LEMuZGF0YS5hdHRycyk7Ty5ocmVmPWN9ZWxzZSBTLm9uPXh9cmV0dXJuIHQodGhpcy50YWcsUyx0aGlzLiRzbG90cy5kZWZhdWx0KX19O2Z1bmN0aW9uIFQodCl7aWYoISh0Lm1ldGFLZXl8fHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQuc2hpZnRLZXkpJiYhdC5kZWZhdWx0UHJldmVudGVkJiYodm9pZCAwPT09dC5idXR0b258fDA9PT10LmJ1dHRvbikpe2lmKHQuY3VycmVudFRhcmdldCYmdC5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSl7dmFyIGU9dC5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgidGFyZ2V0Iik7aWYoL1xiX2JsYW5rXGIvaS50ZXN0KGUpKXJldHVybn1yZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCYmdC5wcmV2ZW50RGVmYXVsdCgpLCEwfX12YXIgQz0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c7ZnVuY3Rpb24gayh0LGUsbil7dmFyIHI9dC5jaGFyQXQoMCk7aWYoIi8iPT09cilyZXR1cm4gdDtpZigiPyI9PT1yfHwiIyI9PT1yKXJldHVybiBlK3Q7dmFyIGk9ZS5zcGxpdCgiLyIpO24mJmlbaS5sZW5ndGgtMV18fGkucG9wKCk7Zm9yKHZhciBhPXQucmVwbGFjZSgvXlwvLywiIikuc3BsaXQoIi8iKSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107Ii4uIj09PXM/aS5wb3AoKToiLiIhPT1zJiZpLnB1c2gocyl9cmV0dXJuIiIhPT1pWzBdJiZpLnVuc2hpZnQoIiIpLGkuam9pbigiLyIpfWZ1bmN0aW9uIE8odCl7cmV0dXJuIHQucmVwbGFjZSgvXC9cLy9nLCIvIil9dmFyIEU9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxJPVUsUD1qLE09ZnVuY3Rpb24odCxlKXtyZXR1cm4gQihqKHQsZSkpfSxBPUIsJD1WLEw9bmV3IFJlZ0V4cChbIihcXFxcLikiLCIoW1xcLy5dKT8oPzooPzpcXDooXFx3KykoPzpcXCgoKD86XFxcXC58W15cXFxcKCldKSspXFwpKT98XFwoKCg/OlxcXFwufFteXFxcXCgpXSkrKVxcKSkoWysqP10pP3woXFwqKSkiXS5qb2luKCJ8IiksImciKTtmdW5jdGlvbiBqKHQsZSl7dmFyIG4scj1bXSxpPTAsYT0wLG89IiIscz1lJiZlLmRlbGltaXRlcnx8Ii8iO3doaWxlKG51bGwhPShuPUwuZXhlYyh0KSkpe3ZhciBjPW5bMF0sdT1uWzFdLGw9bi5pbmRleDtpZihvKz10LnNsaWNlKGEsbCksYT1sK2MubGVuZ3RoLHUpbys9dVsxXTtlbHNle3ZhciBmPXRbYV0sZD1uWzJdLGg9blszXSxwPW5bNF0sdj1uWzVdLGc9bls2XSxtPW5bN107byYmKHIucHVzaChvKSxvPSIiKTt2YXIgYj1udWxsIT1kJiZudWxsIT1mJiZmIT09ZCx5PSIrIj09PWd8fCIqIj09PWcsXz0iPyI9PT1nfHwiKiI9PT1nLHc9blsyXXx8cyx4PXB8fHY7ci5wdXNoKHtuYW1lOmh8fGkrKyxwcmVmaXg6ZHx8IiIsZGVsaW1pdGVyOncsb3B0aW9uYWw6XyxyZXBlYXQ6eSxwYXJ0aWFsOmIsYXN0ZXJpc2s6ISFtLHBhdHRlcm46eD9GKHgpOm0/Ii4qIjoiW14iK0QodykrIl0rPyJ9KX19cmV0dXJuIGE8dC5sZW5ndGgmJihvKz10LnN1YnN0cihhKSksbyYmci5wdXNoKG8pLHJ9ZnVuY3Rpb24gUih0KXtyZXR1cm4gZW5jb2RlVVJJKHQpLnJlcGxhY2UoL1tcLz8jXS9nLChmdW5jdGlvbih0KXtyZXR1cm4iJSIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSkpfWZ1bmN0aW9uIE4odCl7cmV0dXJuIGVuY29kZVVSSSh0KS5yZXBsYWNlKC9bPyNdL2csKGZ1bmN0aW9uKHQpe3JldHVybiIlIit0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9KSl9ZnVuY3Rpb24gQih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDtuKyspIm9iamVjdCI9PT10eXBlb2YgdFtuXSYmKGVbbl09bmV3IFJlZ0V4cCgiXig/OiIrdFtuXS5wYXR0ZXJuKyIpJCIpKTtyZXR1cm4gZnVuY3Rpb24obixyKXtmb3IodmFyIGk9IiIsYT1ufHx7fSxvPXJ8fHt9LHM9by5wcmV0dHk/UjplbmNvZGVVUklDb21wb25lbnQsYz0wO2M8dC5sZW5ndGg7YysrKXt2YXIgdT10W2NdO2lmKCJzdHJpbmciIT09dHlwZW9mIHUpe3ZhciBsLGY9YVt1Lm5hbWVdO2lmKG51bGw9PWYpe2lmKHUub3B0aW9uYWwpe3UucGFydGlhbCYmKGkrPXUucHJlZml4KTtjb250aW51ZX10aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCAiJyt1Lm5hbWUrJyIgdG8gYmUgZGVmaW5lZCcpfWlmKEUoZikpe2lmKCF1LnJlcGVhdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCAiJyt1Lm5hbWUrJyIgdG8gbm90IHJlcGVhdCwgYnV0IHJlY2VpdmVkIGAnK0pTT04uc3RyaW5naWZ5KGYpKyJgIik7aWYoMD09PWYubGVuZ3RoKXtpZih1Lm9wdGlvbmFsKWNvbnRpbnVlO3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkICInK3UubmFtZSsnIiB0byBub3QgYmUgZW1wdHknKX1mb3IodmFyIGQ9MDtkPGYubGVuZ3RoO2QrKyl7aWYobD1zKGZbZF0pLCFlW2NdLnRlc3QobCkpdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsICInK3UubmFtZSsnIiB0byBtYXRjaCAiJyt1LnBhdHRlcm4rJyIsIGJ1dCByZWNlaXZlZCBgJytKU09OLnN0cmluZ2lmeShsKSsiYCIpO2krPSgwPT09ZD91LnByZWZpeDp1LmRlbGltaXRlcikrbH19ZWxzZXtpZihsPXUuYXN0ZXJpc2s/TihmKTpzKGYpLCFlW2NdLnRlc3QobCkpdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgIicrdS5uYW1lKyciIHRvIG1hdGNoICInK3UucGF0dGVybisnIiwgYnV0IHJlY2VpdmVkICInK2wrJyInKTtpKz11LnByZWZpeCtsfX1lbHNlIGkrPXV9cmV0dXJuIGl9fWZ1bmN0aW9uIEQodCl7cmV0dXJuIHQucmVwbGFjZSgvKFsuKyo/PV4hOiR7fSgpW1xdfFwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5yZXBsYWNlKC8oWz0hOiRcLygpXSkvZywiXFwkMSIpfWZ1bmN0aW9uIFcodCxlKXtyZXR1cm4gdC5rZXlzPWUsdH1mdW5jdGlvbiBIKHQpe3JldHVybiB0LnNlbnNpdGl2ZT8iIjoiaSJ9ZnVuY3Rpb24gVih0LGUsbil7RShlKXx8KG49ZXx8bixlPVtdKSxuPW58fHt9O2Zvcih2YXIgcj1uLnN0cmljdCxpPSExIT09bi5lbmQsYT0iIixvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb107aWYoInN0cmluZyI9PT10eXBlb2YgcylhKz1EKHMpO2Vsc2V7dmFyIGM9RChzLnByZWZpeCksdT0iKD86IitzLnBhdHRlcm4rIikiO2UucHVzaChzKSxzLnJlcGVhdCYmKHUrPSIoPzoiK2MrdSsiKSoiKSx1PXMub3B0aW9uYWw/cy5wYXJ0aWFsP2MrIigiK3UrIik/IjoiKD86IitjKyIoIit1KyIpKT8iOmMrIigiK3UrIikiLGErPXV9fXZhciBsPUQobi5kZWxpbWl0ZXJ8fCIvIiksZj1hLnNsaWNlKC1sLmxlbmd0aCk9PT1sO3JldHVybiByfHwoYT0oZj9hLnNsaWNlKDAsLWwubGVuZ3RoKTphKSsiKD86IitsKyIoPz0kKSk/IiksYSs9aT8iJCI6ciYmZj8iIjoiKD89IitsKyJ8JCkiLFcobmV3IFJlZ0V4cCgiXiIrYSxIKG4pKSxlKX1mdW5jdGlvbiBVKHQsZSxuKXtyZXR1cm4gRShlKXx8KG49ZXx8bixlPVtdKSxuPW58fHt9LHQgaW5zdGFuY2VvZiBSZWdFeHA/ZnVuY3Rpb24odCxlKXt2YXIgbj10LnNvdXJjZS5tYXRjaCgvXCgoPyFcPykvZyk7aWYobilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyllLnB1c2goe25hbWU6cixwcmVmaXg6bnVsbCxkZWxpbWl0ZXI6bnVsbCxvcHRpb25hbDohMSxyZXBlYXQ6ITEscGFydGlhbDohMSxhc3RlcmlzazohMSxwYXR0ZXJuOm51bGx9KTtyZXR1cm4gVyh0LGUpfSh0LGUpOkUodCk/ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspci5wdXNoKFUodFtpXSxlLG4pLnNvdXJjZSk7dmFyIGE9bmV3IFJlZ0V4cCgiKD86IityLmpvaW4oInwiKSsiKSIsSChuKSk7cmV0dXJuIFcoYSxlKX0odCxlLG4pOmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVihqKHQsbiksZSxuKX0odCxlLG4pfUkucGFyc2U9UCxJLmNvbXBpbGU9TSxJLnRva2Vuc1RvRnVuY3Rpb249QSxJLnRva2Vuc1RvUmVnRXhwPSQ7dmFyIHE9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiB6KHQsZSxuKXt0cnl7dmFyIHI9cVt0XXx8KHFbdF09SS5jb21waWxlKHQpKTtyZXR1cm4gcihlfHx7fSx7cHJldHR5OiEwfSl9Y2F0Y2goaSl7cmV0dXJuIiJ9fWZ1bmN0aW9uIFkodCxlLG4scil7dmFyIGk9ZXx8W10sYT1ufHxPYmplY3QuY3JlYXRlKG51bGwpLG89cnx8T2JqZWN0LmNyZWF0ZShudWxsKTt0LmZvckVhY2goKGZ1bmN0aW9uKHQpeyhmdW5jdGlvbiB0KGUsbixyLGksYSxvKXt2YXIgcz1pLnBhdGgsYz1pLm5hbWU7MDt2YXIgdT1pLnBhdGhUb1JlZ2V4cE9wdGlvbnN8fHt9LGw9ZnVuY3Rpb24odCxlLG4pe258fCh0PXQucmVwbGFjZSgvXC8kLywiIikpO2lmKCIvIj09PXRbMF0pcmV0dXJuIHQ7aWYobnVsbD09ZSlyZXR1cm4gdDtyZXR1cm4gTyhlLnBhdGgrIi8iK3QpfShzLGEsdS5zdHJpY3QpOyJib29sZWFuIj09PXR5cGVvZiBpLmNhc2VTZW5zaXRpdmUmJih1LnNlbnNpdGl2ZT1pLmNhc2VTZW5zaXRpdmUpO3ZhciBmPXtwYXRoOmwscmVnZXg6WChsLHUpLGNvbXBvbmVudHM6aS5jb21wb25lbnRzfHx7ZGVmYXVsdDppLmNvbXBvbmVudH0saW5zdGFuY2VzOnt9LG5hbWU6YyxwYXJlbnQ6YSxtYXRjaEFzOm8scmVkaXJlY3Q6aS5yZWRpcmVjdCxiZWZvcmVFbnRlcjppLmJlZm9yZUVudGVyLG1ldGE6aS5tZXRhfHx7fSxwcm9wczpudWxsPT1pLnByb3BzP3t9OmkuY29tcG9uZW50cz9pLnByb3BzOntkZWZhdWx0OmkucHJvcHN9fTtpLmNoaWxkcmVuJiZpLmNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKGkpe3ZhciBhPW8/TyhvKyIvIitpLnBhdGgpOnZvaWQgMDt0KGUsbixyLGksZixhKX0pKTtpZih2b2lkIDAhPT1pLmFsaWFzKXt2YXIgZD1BcnJheS5pc0FycmF5KGkuYWxpYXMpP2kuYWxpYXM6W2kuYWxpYXNdO2QuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIHM9e3BhdGg6byxjaGlsZHJlbjppLmNoaWxkcmVufTt0KGUsbixyLHMsYSxmLnBhdGh8fCIvIil9KSl9bltmLnBhdGhdfHwoZS5wdXNoKGYucGF0aCksbltmLnBhdGhdPWYpO2MmJihyW2NdfHwocltjXT1mKSl9KShpLGEsbyx0KX0pKTtmb3IodmFyIHM9MCxjPWkubGVuZ3RoO3M8YztzKyspIioiPT09aVtzXSYmKGkucHVzaChpLnNwbGljZShzLDEpWzBdKSxjLS0scy0tKTtyZXR1cm57cGF0aExpc3Q6aSxwYXRoTWFwOmEsbmFtZU1hcDpvfX1mdW5jdGlvbiBYKHQsZSl7dmFyIG49SSh0LFtdLGUpO3JldHVybiBufWZ1bmN0aW9uIEcodCxlLG4saSl7dmFyIGE9InN0cmluZyI9PT10eXBlb2YgdD97cGF0aDp0fTp0O2lmKGEubmFtZXx8YS5fbm9ybWFsaXplZClyZXR1cm4gYTtpZighYS5wYXRoJiZhLnBhcmFtcyYmZSl7YT1yKHt9LGEpLGEuX25vcm1hbGl6ZWQ9ITA7dmFyIG89cihyKHt9LGUucGFyYW1zKSxhLnBhcmFtcyk7aWYoZS5uYW1lKWEubmFtZT1lLm5hbWUsYS5wYXJhbXM9bztlbHNlIGlmKGUubWF0Y2hlZC5sZW5ndGgpe3ZhciBzPWUubWF0Y2hlZFtlLm1hdGNoZWQubGVuZ3RoLTFdLnBhdGg7YS5wYXRoPXoocyxvLGUucGF0aCl9ZWxzZSAwO3JldHVybiBhfXZhciBjPWZ1bmN0aW9uKHQpe3ZhciBlPSIiLG49IiIscj10LmluZGV4T2YoIiMiKTtyPj0wJiYoZT10LnNsaWNlKHIpLHQ9dC5zbGljZSgwLHIpKTt2YXIgaT10LmluZGV4T2YoIj8iKTtyZXR1cm4gaT49MCYmKG49dC5zbGljZShpKzEpLHQ9dC5zbGljZSgwLGkpKSx7cGF0aDp0LHF1ZXJ5Om4saGFzaDplfX0oYS5wYXRofHwiIiksdT1lJiZlLnBhdGh8fCIvIixmPWMucGF0aD9rKGMucGF0aCx1LG58fGEuYXBwZW5kKTp1LGQ9bChjLnF1ZXJ5LGEucXVlcnksaSYmaS5vcHRpb25zLnBhcnNlUXVlcnkpLGg9YS5oYXNofHxjLmhhc2g7cmV0dXJuIGgmJiIjIiE9PWguY2hhckF0KDApJiYoaD0iIyIraCkse19ub3JtYWxpemVkOiEwLHR5cGU6YS50eXBlLHBhcmFtczphLnBhcmFtc3x8e30scGF0aDpmLHF1ZXJ5OmQsaGFzaDpofX1mdW5jdGlvbiBRKHQsZSl7dmFyIG49WSh0KSxpPW4ucGF0aExpc3QsYT1uLnBhdGhNYXAsbz1uLm5hbWVNYXA7ZnVuY3Rpb24gcyh0LG4scil7dmFyIHM9Ryh0LG4sITEsZSksYz1zLm5hbWU7aWYoYyl7dmFyIGw9b1tjXTtpZighbClyZXR1cm4gdShudWxsLHMpO3ZhciBmPWwucmVnZXgua2V5cy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0Lm9wdGlvbmFsfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pKTtpZigib2JqZWN0IiE9PXR5cGVvZiBzLnBhcmFtcyYmKHMucGFyYW1zPXt9KSxuJiYib2JqZWN0Ij09PXR5cGVvZiBuLnBhcmFtcylmb3IodmFyIGQgaW4gbi5wYXJhbXMpIShkIGluIHMucGFyYW1zKSYmZi5pbmRleE9mKGQpPi0xJiYocy5wYXJhbXNbZF09bi5wYXJhbXNbZF0pO2lmKGwpcmV0dXJuIHMucGF0aD16KGwucGF0aCxzLnBhcmFtcyksdShsLHMscil9ZWxzZSBpZihzLnBhdGgpe3MucGFyYW1zPXMucGFyYW1zfHx7fTtmb3IodmFyIGg9MDtoPGkubGVuZ3RoO2grKyl7dmFyIHA9aVtoXSx2PWFbcF07aWYoSih2LnJlZ2V4LHMucGF0aCxzLnBhcmFtcykpcmV0dXJuIHUodixzLHIpfX1yZXR1cm4gdShudWxsLHMpfWZ1bmN0aW9uIGModCxuKXt2YXIgcj10LnJlZGlyZWN0LGk9ImZ1bmN0aW9uIj09PXR5cGVvZiByP3IocCh0LG4sbnVsbCxlKSk6cjtpZigic3RyaW5nIj09PXR5cGVvZiBpJiYoaT17cGF0aDppfSksIWl8fCJvYmplY3QiIT09dHlwZW9mIGkpcmV0dXJuIHUobnVsbCxuKTt2YXIgYT1pLGM9YS5uYW1lLGw9YS5wYXRoLGY9bi5xdWVyeSxkPW4uaGFzaCxoPW4ucGFyYW1zO2lmKGY9YS5oYXNPd25Qcm9wZXJ0eSgicXVlcnkiKT9hLnF1ZXJ5OmYsZD1hLmhhc093blByb3BlcnR5KCJoYXNoIik/YS5oYXNoOmQsaD1hLmhhc093blByb3BlcnR5KCJwYXJhbXMiKT9hLnBhcmFtczpoLGMpe29bY107cmV0dXJuIHMoe19ub3JtYWxpemVkOiEwLG5hbWU6YyxxdWVyeTpmLGhhc2g6ZCxwYXJhbXM6aH0sdm9pZCAwLG4pfWlmKGwpe3ZhciB2PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGsodCxlLnBhcmVudD9lLnBhcmVudC5wYXRoOiIvIiwhMCl9KGwsdCksZz16KHYsaCk7cmV0dXJuIHMoe19ub3JtYWxpemVkOiEwLHBhdGg6ZyxxdWVyeTpmLGhhc2g6ZH0sdm9pZCAwLG4pfXJldHVybiB1KG51bGwsbil9ZnVuY3Rpb24gdSh0LG4saSl7cmV0dXJuIHQmJnQucmVkaXJlY3Q/Yyh0LGl8fG4pOnQmJnQubWF0Y2hBcz9mdW5jdGlvbih0LGUsbil7dmFyIHI9eihuLGUucGFyYW1zKSxpPXMoe19ub3JtYWxpemVkOiEwLHBhdGg6cn0pO2lmKGkpe3ZhciBhPWkubWF0Y2hlZCxvPWFbYS5sZW5ndGgtMV07cmV0dXJuIGUucGFyYW1zPWkucGFyYW1zLHUobyxlKX1yZXR1cm4gdShudWxsLGUpfSgwLG4sdC5tYXRjaEFzKToobi5wYXJhbXM9bi5wYXJhbXN8fHt9LHQmJnQubWV0YSYmdC5tZXRhLmlkP24ucGFyYW1zLl9faWRfXz10Lm1ldGEuaWQ6bi5wYXJhbXMuX19pZF9ffHwobi5wYXJhbXMuX19pZF9fPWUuaWQpLHQmJnQubWV0YSYmdC5tZXRhLm5hbWUmJih0Lm1ldGEuaWQ/dC5jb21wb25lbnRzLmRlZmF1bHQubmFtZT10Lm1ldGEubmFtZSsiLSIrbi5wYXJhbXMuX19pZF9fOih0PXIoe30sdCksdC5jb21wb25lbnRzPXtkZWZhdWx0OntuYW1lOnQubWV0YS5uYW1lKyItIituLnBhcmFtcy5fX2lkX18scmVuZGVyOnQuY29tcG9uZW50c1siZGVmYXVsdCJdLnJlbmRlcn19KSkscCh0LG4saSxlKSl9cmV0dXJue21hdGNoOnMsYWRkUm91dGVzOmZ1bmN0aW9uKHQpe1kodCxpLGEsbyl9fX1mdW5jdGlvbiBKKHQsZSxuKXt2YXIgcj1lLm1hdGNoKHQpO2lmKCFyKXJldHVybiExO2lmKCFuKXJldHVybiEwO2Zvcih2YXIgaT0xLGE9ci5sZW5ndGg7aTxhOysraSl7dmFyIG89dC5rZXlzW2ktMV0scz0ic3RyaW5nIj09PXR5cGVvZiByW2ldP2RlY29kZVVSSUNvbXBvbmVudChyW2ldKTpyW2ldO28mJihuW28ubmFtZXx8InBhdGhNYXRjaCJdPXMpfXJldHVybiEwfXZhciBLPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gWih0KXt3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe2tleTpsdCgpLGlkOnQuY3VycmVudFJvdXRlJiZ0LmN1cnJlbnRSb3V0ZS5wYXJhbXMuX19pZF9ffHx0LmlkfSwiIix3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sIiIpKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLChmdW5jdGlvbih0KXtldCgpLHQuc3RhdGUmJnQuc3RhdGUua2V5JiZmdW5jdGlvbih0KXtjdD10fSh0LnN0YXRlLmtleSl9KSl9ZnVuY3Rpb24gdHQodCxlLG4scil7aWYodC5hcHApe3ZhciBpPXQub3B0aW9ucy5zY3JvbGxCZWhhdmlvcjtpJiZ0LmFwcC4kbmV4dFRpY2soKGZ1bmN0aW9uKCl7dmFyIGE9ZnVuY3Rpb24oKXt2YXIgdD1sdCgpO2lmKHQpcmV0dXJuIEtbdF19KCksbz1pLmNhbGwodCxlLG4scj9hOm51bGwpO28mJigiZnVuY3Rpb24iPT09dHlwZW9mIG8udGhlbj9vLnRoZW4oKGZ1bmN0aW9uKHQpe2F0KHQsYSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpezB9KSk6YXQobyxhKSl9KSl9fWZ1bmN0aW9uIGV0KCl7dmFyIHQ9bHQoKTt0JiYoS1t0XT17eDp3aW5kb3cucGFnZVhPZmZzZXQseTp3aW5kb3cucGFnZVlPZmZzZXR9KX1mdW5jdGlvbiBudCh0KXtyZXR1cm4gaXQodC54KXx8aXQodC55KX1mdW5jdGlvbiBydCh0KXtyZXR1cm57eDppdCh0LngpP3QueDp3aW5kb3cucGFnZVhPZmZzZXQseTppdCh0LnkpP3QueTp3aW5kb3cucGFnZVlPZmZzZXR9fWZ1bmN0aW9uIGl0KHQpe3JldHVybiJudW1iZXIiPT09dHlwZW9mIHR9ZnVuY3Rpb24gYXQodCxlKXt2YXIgbj0ib2JqZWN0Ij09PXR5cGVvZiB0O2lmKG4mJiJzdHJpbmciPT09dHlwZW9mIHQuc2VsZWN0b3Ipe3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodC5zZWxlY3Rvcik7aWYocil7dmFyIGk9dC5vZmZzZXQmJiJvYmplY3QiPT09dHlwZW9mIHQub2Zmc2V0P3Qub2Zmc2V0Ont9O2k9ZnVuY3Rpb24odCl7cmV0dXJue3g6aXQodC54KT90Lng6MCx5Oml0KHQueSk/dC55OjB9fShpKSxlPWZ1bmN0aW9uKHQsZSl7dmFyIG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3g6aS5sZWZ0LXIubGVmdC1lLngseTppLnRvcC1yLnRvcC1lLnl9fShyLGkpfWVsc2UgbnQodCkmJihlPXJ0KHQpKX1lbHNlIG4mJm50KHQpJiYoZT1ydCh0KSk7ZSYmd2luZG93LnNjcm9sbFRvKGUueCxlLnkpfXZhciBvdD1DJiZmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50O3JldHVybigtMT09PXQuaW5kZXhPZigiQW5kcm9pZCAyLiIpJiYtMT09PXQuaW5kZXhPZigiQW5kcm9pZCA0LjAiKXx8LTE9PT10LmluZGV4T2YoIk1vYmlsZSBTYWZhcmkiKXx8LTEhPT10LmluZGV4T2YoIkNocm9tZSIpfHwtMSE9PXQuaW5kZXhPZigiV2luZG93cyBQaG9uZSIpKSYmKHdpbmRvdy5oaXN0b3J5JiYicHVzaFN0YXRlImluIHdpbmRvdy5oaXN0b3J5KX0oKSxzdD1DJiZ3aW5kb3cucGVyZm9ybWFuY2UmJndpbmRvdy5wZXJmb3JtYW5jZS5ub3c/d2luZG93LnBlcmZvcm1hbmNlOkRhdGUsY3Q9dXQoKTtmdW5jdGlvbiB1dCgpe3JldHVybiBzdC5ub3coKS50b0ZpeGVkKDMpfWZ1bmN0aW9uIGx0KCl7cmV0dXJuIGN0fWZ1bmN0aW9uIGZ0KHQsZSxuKXtldCgpO3ZhciByPXdpbmRvdy5oaXN0b3J5O3RyeXtuP3IucmVwbGFjZVN0YXRlKHtpZDplLGtleTpjdH0sIiIsdCk6KGN0PXV0KCksci5wdXNoU3RhdGUoe2lkOmUsa2V5OmN0fSwiIix0KSl9Y2F0Y2goaSl7d2luZG93LmxvY2F0aW9uW24/InJlcGxhY2UiOiJhc3NpZ24iXSh0KX19ZnVuY3Rpb24gZHQodCxlKXtmdCh0LGUsITApfWZ1bmN0aW9uIGh0KHQsZSxuKXt2YXIgcj1mdW5jdGlvbihpKXtpPj10Lmxlbmd0aD9uKCk6dFtpXT9lKHRbaV0sKGZ1bmN0aW9uKCl7cihpKzEpfSkpOnIoaSsxKX07cigwKX1mdW5jdGlvbiBwdCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLGkpe3ZhciBhPSExLG89MCxzPW51bGw7dnQodCwoZnVuY3Rpb24odCxlLHIsYyl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiB0JiZ2b2lkIDA9PT10LmNpZCl7YT0hMCxvKys7dmFyIHUsbD1idCgoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fZXNNb2R1bGV8fG10JiYiTW9kdWxlIj09PXRbU3ltYm9sLnRvU3RyaW5nVGFnXX0pKGUpJiYoZT1lLmRlZmF1bHQpLHQucmVzb2x2ZWQ9ImZ1bmN0aW9uIj09PXR5cGVvZiBlP2U6Xy5leHRlbmQoZSksci5jb21wb25lbnRzW2NdPWUsby0tLG88PTAmJmkoKX0pKSxmPWJ0KChmdW5jdGlvbih0KXt2YXIgZT0iRmFpbGVkIHRvIHJlc29sdmUgYXN5bmMgY29tcG9uZW50ICIrYysiOiAiK3Q7c3x8KHM9bih0KT90Om5ldyBFcnJvcihlKSxpKHMpKX0pKTt0cnl7dT10KGwsZil9Y2F0Y2goaCl7ZihoKX1pZih1KWlmKCJmdW5jdGlvbiI9PT10eXBlb2YgdS50aGVuKXUudGhlbihsLGYpO2Vsc2V7dmFyIGQ9dS5jb21wb25lbnQ7ZCYmImZ1bmN0aW9uIj09PXR5cGVvZiBkLnRoZW4mJmQudGhlbihsLGYpfX19KSksYXx8aSgpfX1mdW5jdGlvbiB2dCh0LGUpe3JldHVybiBndCh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQuY29tcG9uZW50cykubWFwKChmdW5jdGlvbihuKXtyZXR1cm4gZSh0LmNvbXBvbmVudHNbbl0sdC5pbnN0YW5jZXNbbl0sdCxuKX0pKX0pKSl9ZnVuY3Rpb24gZ3QodCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sdCl9dmFyIG10PSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWc7ZnVuY3Rpb24gYnQodCl7dmFyIGU9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49W10scj1hcmd1bWVudHMubGVuZ3RoO3doaWxlKHItLSluW3JdPWFyZ3VtZW50c1tyXTtpZighZSlyZXR1cm4gZT0hMCx0LmFwcGx5KHRoaXMsbil9fXZhciB5dD1mdW5jdGlvbih0LGUpe3RoaXMucm91dGVyPXQsdGhpcy5iYXNlPWZ1bmN0aW9uKHQpe2lmKCF0KWlmKEMpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKTt0PWUmJmUuZ2V0QXR0cmlidXRlKCJocmVmIil8fCIvIix0PXQucmVwbGFjZSgvXmh0dHBzPzpcL1wvW15cL10rLywiIil9ZWxzZSB0PSIvIjsiLyIhPT10LmNoYXJBdCgwKSYmKHQ9Ii8iK3QpO3JldHVybiB0LnJlcGxhY2UoL1wvJC8sIiIpfShlKSx0aGlzLmN1cnJlbnQ9Zyx0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnJlYWR5PSExLHRoaXMucmVhZHlDYnM9W10sdGhpcy5yZWFkeUVycm9yQ2JzPVtdLHRoaXMuZXJyb3JDYnM9W119O2Z1bmN0aW9uIF90KHQsZSxuLHIpe3ZhciBpPXZ0KHQsKGZ1bmN0aW9uKHQscixpLGEpe3ZhciBvPWZ1bmN0aW9uKHQsZSl7ImZ1bmN0aW9uIiE9PXR5cGVvZiB0JiYodD1fLmV4dGVuZCh0KSk7cmV0dXJuIHQub3B0aW9uc1tlXX0odCxlKTtpZihvKXJldHVybiBBcnJheS5pc0FycmF5KG8pP28ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbih0LHIsaSxhKX0pKTpuKG8scixpLGEpfSkpO3JldHVybiBndChyP2kucmV2ZXJzZSgpOmkpfWZ1bmN0aW9uIHd0KHQsZSl7aWYoZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fXl0LnByb3RvdHlwZS5saXN0ZW49ZnVuY3Rpb24odCl7dGhpcy5jYj10fSx5dC5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbih0LGUpe3RoaXMucmVhZHk/dCgpOih0aGlzLnJlYWR5Q2JzLnB1c2godCksZSYmdGhpcy5yZWFkeUVycm9yQ2JzLnB1c2goZSkpfSx5dC5wcm90b3R5cGUub25FcnJvcj1mdW5jdGlvbih0KXt0aGlzLmVycm9yQ2JzLnB1c2godCl9LHl0LnByb3RvdHlwZS50cmFuc2l0aW9uVG89ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMsaT10aGlzLnJvdXRlci5tYXRjaCh0LHRoaXMuY3VycmVudCk7dGhpcy5jb25maXJtVHJhbnNpdGlvbihpLChmdW5jdGlvbigpe3IudXBkYXRlUm91dGUoaSksZSYmZShpKSxyLmVuc3VyZVVSTCgpLHIucmVhZHl8fChyLnJlYWR5PSEwLHIucmVhZHlDYnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dChpKX0pKSl9KSwoZnVuY3Rpb24odCl7biYmbih0KSx0JiYhci5yZWFkeSYmKHIucmVhZHk9ITAsci5yZWFkeUVycm9yQ2JzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UodCl9KSkpfSkpfSx5dC5wcm90b3R5cGUuY29uZmlybVRyYW5zaXRpb249ZnVuY3Rpb24oZSxyLGkpe3ZhciBhPXRoaXMsbz10aGlzLmN1cnJlbnQscz1mdW5jdGlvbihlKXtuKGUpJiYoYS5lcnJvckNicy5sZW5ndGg/YS5lcnJvckNicy5mb3JFYWNoKChmdW5jdGlvbih0KXt0KGUpfSkpOihmdW5jdGlvbih0LGUpezB9KCksdC5lcnJvcihlKSkpLGkmJmkoZSl9LGM9ZnVuY3Rpb24odCxlKXt2YXIgbixyPU1hdGgubWF4KHQubGVuZ3RoLGUubGVuZ3RoKTtmb3Iobj0wO248cjtuKyspaWYodFtuXSE9PWVbbl0pYnJlYWs7cmV0dXJue3VwZGF0ZWQ6ZS5zbGljZSgwLG4pLGFjdGl2YXRlZDplLnNsaWNlKG4pLGRlYWN0aXZhdGVkOnQuc2xpY2Uobil9fSh0aGlzLmN1cnJlbnQubWF0Y2hlZCxlLm1hdGNoZWQpLHU9Yy51cGRhdGVkLGw9Yy5kZWFjdGl2YXRlZCxmPWMuYWN0aXZhdGVkLGQ9W10uY29uY2F0KGZ1bmN0aW9uKHQpe3JldHVybiBfdCh0LCJiZWZvcmVSb3V0ZUxlYXZlIix3dCwhMCl9KGwpLHRoaXMucm91dGVyLmJlZm9yZUhvb2tzLGZ1bmN0aW9uKHQpe3JldHVybiBfdCh0LCJiZWZvcmVSb3V0ZVVwZGF0ZSIsd3QpfSh1KSxmLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYmVmb3JlRW50ZXJ9KSkscHQoZikpO3RoaXMucGVuZGluZz1lO3ZhciBoPWZ1bmN0aW9uKHQscil7aWYoYS5wZW5kaW5nIT09ZSlyZXR1cm4gcygpO3RyeXt0KGUsbywoZnVuY3Rpb24odCl7ITE9PT10fHxuKHQpPyhhLmVuc3VyZVVSTCghMCkscyh0KSk6InN0cmluZyI9PT10eXBlb2YgdHx8Im9iamVjdCI9PT10eXBlb2YgdCYmKCJzdHJpbmciPT09dHlwZW9mIHQucGF0aHx8InN0cmluZyI9PT10eXBlb2YgdC5uYW1lKT8ocygpLCJvYmplY3QiPT09dHlwZW9mIHQmJnQucmVwbGFjZT9hLnJlcGxhY2UodCk6YS5wdXNoKHQpKTpyKHQpfSkpfWNhdGNoKGkpe3MoaSl9fTtodChkLGgsKGZ1bmN0aW9uKCl7dmFyIHQ9W10sbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIF90KHQsImJlZm9yZVJvdXRlRW50ZXIiLChmdW5jdGlvbih0LHIsaSxhKXtyZXR1cm4gZnVuY3Rpb24odCxlLG4scixpKXtyZXR1cm4gZnVuY3Rpb24oYSxvLHMpe3JldHVybiB0KGEsbywoZnVuY3Rpb24odCl7cyh0KSwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJnIucHVzaCgoZnVuY3Rpb24oKXsoZnVuY3Rpb24gdChlLG4scixpKXtuW3JdJiYhbltyXS5faXNCZWluZ0Rlc3Ryb3llZD9lKG5bcl0pOmkoKSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0KGUsbixyLGkpfSksMTYpfSkodCxlLmluc3RhbmNlcyxuLGkpfSkpfSkpfX0odCxpLGEsZSxuKX0pKX0oZix0LChmdW5jdGlvbigpe3JldHVybiBhLmN1cnJlbnQ9PT1lfSkpLGk9bi5jb25jYXQoYS5yb3V0ZXIucmVzb2x2ZUhvb2tzKTtodChpLGgsKGZ1bmN0aW9uKCl7aWYoYS5wZW5kaW5nIT09ZSlyZXR1cm4gcygpO2EucGVuZGluZz1udWxsLHIoZSksYS5yb3V0ZXIuYXBwJiZhLnJvdXRlci5hcHAuJG5leHRUaWNrKChmdW5jdGlvbigpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfSkpfSkpfSkpfSx5dC5wcm90b3R5cGUudXBkYXRlUm91dGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50O3RoaXMuY3VycmVudD10LHRoaXMuY2ImJnRoaXMuY2IodCksdGhpcy5yb3V0ZXIuYWZ0ZXJIb29rcy5mb3JFYWNoKChmdW5jdGlvbihuKXtuJiZuKHQsZSl9KSl9O3ZhciB4dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldHVwTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMucm91dGVyLG49ZS5vcHRpb25zLnNjcm9sbEJlaGF2aW9yLHI9b3QmJm47ciYmWihlKTt2YXIgaT1TdCh0aGlzLmJhc2UpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsKGZ1bmN0aW9uKG4pe3ZhciBhPXQuY3VycmVudCxvPVN0KHQuYmFzZSk7aWYodC5jdXJyZW50IT09Z3x8byE9PWkpe3ZhciBzPW4uc3RhdGUmJm4uc3RhdGUuaWQ7aWYoIXMpcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTt0LnRyYW5zaXRpb25Ubyh7cGF0aDpvLHBhcmFtczp7X19pZF9fOnN9fSwoZnVuY3Rpb24odCl7ciYmdHQoZSx0LGEsITApfSkpfX0pKX0sZS5wcm90b3R5cGUuZ289ZnVuY3Rpb24odCl7d2luZG93Lmhpc3RvcnkuZ28odCl9LGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7aWYoIm9iamVjdCI9PT10eXBlb2YgdCl7dC5wYXJhbXM9dC5wYXJhbXN8fHt9O3ZhciBpPXQucGFyYW1zLl9faWRfXztzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOml8fHRoaXMucm91dGVyLmlkKys7YnJlYWs7Y2FzZSJyZWRpcmVjdFRvIjpjYXNlInJlTGF1bmNoIjp0aGlzLnJvdXRlci5pZCsrO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpicmVha31pfHwodC5wYXJhbXMuX19pZF9fPXRoaXMucm91dGVyLmlkKX12YXIgYT10aGlzLmN1cnJlbnQ7dGhpcy50cmFuc2l0aW9uVG8odCwoZnVuY3Rpb24obil7ZnQoTyhyLmJhc2Urbi5mdWxsUGF0aCksdC5wYXJhbXMuX19pZF9fKSx0dChyLnJvdXRlcixuLGEsITEpLGUmJmUobil9KSxuKX0sZS5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcztpZigib2JqZWN0Ij09PXR5cGVvZiB0KXtzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOmNhc2UicmVkaXJlY3RUbyI6Y2FzZSJyZUxhdW5jaCI6dGhpcy5yb3V0ZXIuaWQrKzticmVhaztjYXNlInN3aXRjaFRhYiI6YnJlYWt9dC5wYXJhbXM9dC5wYXJhbXN8fHt9LHQucGFyYW1zLl9faWRfXz10aGlzLnJvdXRlci5pZH12YXIgaT10aGlzLmN1cnJlbnQ7dGhpcy50cmFuc2l0aW9uVG8odCwoZnVuY3Rpb24obil7ZHQoTyhyLmJhc2Urbi5mdWxsUGF0aCksdC5wYXJhbXMuX19pZF9fKSx0dChyLnJvdXRlcixuLGksITEpLGUmJmUobil9KSxuKX0sZS5wcm90b3R5cGUuZW5zdXJlVVJMPWZ1bmN0aW9uKHQpe2lmKFN0KHRoaXMuYmFzZSkhPT10aGlzLmN1cnJlbnQuZnVsbFBhdGgpe3ZhciBlPU8odGhpcy5iYXNlK3RoaXMuY3VycmVudC5mdWxsUGF0aCksbj10aGlzLmN1cnJlbnQucGFyYW1zLl9faWRfXzt0P2Z0KGUsbik6ZHQoZSxuKX19LGUucHJvdG90eXBlLmdldEN1cnJlbnRMb2NhdGlvbj1mdW5jdGlvbigpe3JldHVybntwYXRoOlN0KHRoaXMuYmFzZSkscGFyYW1zOntfX2lkX186Kyt0aGlzLnJvdXRlci5pZH19fSxlfSh5dCk7ZnVuY3Rpb24gU3QodCl7dmFyIGU9ZGVjb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7cmV0dXJuIHQmJjA9PT1lLmluZGV4T2YodCkmJihlPWUuc2xpY2UodC5sZW5ndGgpKSwoZXx8Ii8iKStkKGwod2luZG93LmxvY2F0aW9uLnNlYXJjaCkpK3dpbmRvdy5sb2NhdGlvbi5oYXNofXZhciBUdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUsbixyKXt0LmNhbGwodGhpcyxlLG4pLHImJmZ1bmN0aW9uKHQpe3ZhciBlPVN0KHQpO2lmKCEvXlwvIy8udGVzdChlKSlyZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoTyh0KyIvIyIrZSkpLCEwfSh0aGlzLmJhc2UpfHxDdCgpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXR1cExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnJvdXRlcixuPWUub3B0aW9ucy5zY3JvbGxCZWhhdmlvcixyPW90JiZuO3ImJlooZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIob3Q/InBvcHN0YXRlIjoiaGFzaGNoYW5nZSIsKGZ1bmN0aW9uKGUpe3ZhciBuPXQuY3VycmVudDtpZihDdCgpKXt2YXIgaT1lLnN0YXRlJiZlLnN0YXRlLmlkO2lmKCFpKXJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7dC50cmFuc2l0aW9uVG8oe3BhdGg6a3QoKSxwYXJhbXM6e19faWRfXzppfX0sKGZ1bmN0aW9uKGUpe3ImJnR0KHQucm91dGVyLGUsbiwhMCksb3R8fEl0KGUuZnVsbFBhdGgsZS5wYXJhbXMuX19pZF9fKX0pKX19KSl9LGUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7aWYoIm9iamVjdCI9PT10eXBlb2YgdCl7dC5wYXJhbXM9dC5wYXJhbXN8fHt9O3ZhciBpPXQucGFyYW1zLl9faWRfXztzd2l0Y2godC50eXBlKXtjYXNlIm5hdmlnYXRlVG8iOml8fHRoaXMucm91dGVyLmlkKys7YnJlYWs7Y2FzZSJyZWRpcmVjdFRvIjpjYXNlInJlTGF1bmNoIjp0aGlzLnJvdXRlci5pZCsrO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpicmVha31pfHwodC5wYXJhbXMuX19pZF9fPXRoaXMucm91dGVyLmlkKX12YXIgYT10aGlzLmN1cnJlbnQsbz10aGlzLnJvdXRlci5pZDt0aGlzLnRyYW5zaXRpb25Ubyh0LChmdW5jdGlvbih0KXtFdCh0LmZ1bGxQYXRoLG8pLHR0KHIucm91dGVyLHQsYSwhMSksZSYmZSh0KX0pLG4pfSxlLnByb3RvdHlwZS5yZXBsYWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO2lmKCJvYmplY3QiPT09dHlwZW9mIHQpe3N3aXRjaCh0LnR5cGUpe2Nhc2UibmF2aWdhdGVUbyI6Y2FzZSJyZWRpcmVjdFRvIjpjYXNlInJlTGF1bmNoIjp0aGlzLnJvdXRlci5pZCsrO2JyZWFrO2Nhc2Uic3dpdGNoVGFiIjpicmVha310LnBhcmFtcz10LnBhcmFtc3x8e30sdC5wYXJhbXMuX19pZF9fPXRoaXMucm91dGVyLmlkfXZhciBpPXRoaXMuY3VycmVudCxhPXRoaXMucm91dGVyLmlkO3RoaXMudHJhbnNpdGlvblRvKHQsKGZ1bmN0aW9uKHQpe0l0KHQuZnVsbFBhdGgsYSksdHQoci5yb3V0ZXIsdCxpLCExKSxlJiZlKHQpfSksbil9LGUucHJvdG90eXBlLmdvPWZ1bmN0aW9uKHQpe3dpbmRvdy5oaXN0b3J5LmdvKHQpfSxlLnByb3RvdHlwZS5lbnN1cmVVUkw9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50LmZ1bGxQYXRoO2t0KCkhPT1lJiYodD9FdChlLHRoaXMuY3VycmVudC5wYXJhbXMuX19pZF9fKTpJdChlLHRoaXMuY3VycmVudC5wYXJhbXMuX19pZF9fKSl9LGUucHJvdG90eXBlLmdldEN1cnJlbnRMb2NhdGlvbj1mdW5jdGlvbigpe3JldHVybntwYXRoOmt0KCkscGFyYW1zOntfX2lkX186Kyt0aGlzLnJvdXRlci5pZH19fSxlfSh5dCk7ZnVuY3Rpb24gQ3QoKXt2YXIgdD1rdCgpO3JldHVybiIvIj09PXQuY2hhckF0KDApfHwoSXQoIi8iK3QpLCExKX1mdW5jdGlvbiBrdCgpe3ZhciB0PXdpbmRvdy5sb2NhdGlvbi5ocmVmLGU9dC5pbmRleE9mKCIjIik7cmV0dXJuLTE9PT1lPyIiOmRlY29kZVVSSSh0LnNsaWNlKGUrMSkpfWZ1bmN0aW9uIE90KHQpe3ZhciBlPXdpbmRvdy5sb2NhdGlvbi5ocmVmLG49ZS5pbmRleE9mKCIjIikscj1uPj0wP2Uuc2xpY2UoMCxuKTplO3JldHVybiByKyIjIit0fWZ1bmN0aW9uIEV0KHQsZSl7b3Q/ZnQoT3QodCksZSk6d2luZG93LmxvY2F0aW9uLmhhc2g9dH1mdW5jdGlvbiBJdCh0LGUpe290P2R0KE90KHQpLGUpOndpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKE90KHQpKX12YXIgUHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLG4pe3QuY2FsbCh0aGlzLGUsbiksdGhpcy5zdGFjaz1bXSx0aGlzLmluZGV4PS0xfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzO3RoaXMudHJhbnNpdGlvblRvKHQsKGZ1bmN0aW9uKHQpe3Iuc3RhY2s9ci5zdGFjay5zbGljZSgwLHIuaW5kZXgrMSkuY29uY2F0KHQpLHIuaW5kZXgrKyxlJiZlKHQpfSksbil9LGUucHJvdG90eXBlLnJlcGxhY2U9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXM7dGhpcy50cmFuc2l0aW9uVG8odCwoZnVuY3Rpb24odCl7ci5zdGFjaz1yLnN0YWNrLnNsaWNlKDAsci5pbmRleCkuY29uY2F0KHQpLGUmJmUodCl9KSxuKX0sZS5wcm90b3R5cGUuZ289ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuaW5kZXgrdDtpZighKG48MHx8bj49dGhpcy5zdGFjay5sZW5ndGgpKXt2YXIgcj10aGlzLnN0YWNrW25dO3RoaXMuY29uZmlybVRyYW5zaXRpb24ociwoZnVuY3Rpb24oKXtlLmluZGV4PW4sZS51cGRhdGVSb3V0ZShyKX0pKX19LGUucHJvdG90eXBlLmdldEN1cnJlbnRMb2NhdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3RhY2tbdGhpcy5zdGFjay5sZW5ndGgtMV07cmV0dXJuIHQ/dC5mdWxsUGF0aDoiLyJ9LGUucHJvdG90eXBlLmVuc3VyZVVSTD1mdW5jdGlvbigpe30sZX0oeXQpLE10PWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PXt9KSx0aGlzLmFwcD1udWxsLHRoaXMuYXBwcz1bXSx0aGlzLm9wdGlvbnM9dCx0aGlzLmJlZm9yZUhvb2tzPVtdLHRoaXMucmVzb2x2ZUhvb2tzPVtdLHRoaXMuYWZ0ZXJIb29rcz1bXSx0aGlzLm1hdGNoZXI9USh0LnJvdXRlc3x8W10sdGhpcyksdGhpcy5pZD10LmlkfHwxLHRoaXMubWluSWQ9dC5pZHx8MTt2YXIgZT10Lm1vZGV8fCJoYXNoIjtzd2l0Y2godGhpcy5mYWxsYmFjaz0iaGlzdG9yeSI9PT1lJiYhb3QmJiExIT09dC5mYWxsYmFjayx0aGlzLmZhbGxiYWNrJiYoZT0iaGFzaCIpLEN8fChlPSJhYnN0cmFjdCIpLHRoaXMubW9kZT1lLGUpe2Nhc2UiaGlzdG9yeSI6dGhpcy5oaXN0b3J5PW5ldyB4dCh0aGlzLHQuYmFzZSk7YnJlYWs7Y2FzZSJoYXNoIjp0aGlzLmhpc3Rvcnk9bmV3IFR0KHRoaXMsdC5iYXNlLHRoaXMuZmFsbGJhY2spO2JyZWFrO2Nhc2UiYWJzdHJhY3QiOnRoaXMuaGlzdG9yeT1uZXcgUHQodGhpcyx0LmJhc2UpO2JyZWFrO2RlZmF1bHQ6MH19LEF0PXtjdXJyZW50Um91dGU6e2NvbmZpZ3VyYWJsZTohMH19O2Z1bmN0aW9uICR0KHQsZSl7cmV0dXJuIHQucHVzaChlKSxmdW5jdGlvbigpe3ZhciBuPXQuaW5kZXhPZihlKTtuPi0xJiZ0LnNwbGljZShuLDEpfX1NdC5wcm90b3R5cGUubWF0Y2g9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLm1hdGNoZXIubWF0Y2godCxlLG4pfSxBdC5jdXJyZW50Um91dGUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGlzdG9yeSYmdGhpcy5oaXN0b3J5LmN1cnJlbnR9LE10LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5hcHBzLnB1c2godCksIXRoaXMuYXBwKXt0aGlzLmFwcD10O3ZhciBuPXRoaXMuaGlzdG9yeTtpZihuIGluc3RhbmNlb2YgeHQpe3ZhciByPWZ1bmN0aW9uKCl7bi5zZXR1cExpc3RlbmVycygpfTtuLnRyYW5zaXRpb25UbyhuLmdldEN1cnJlbnRMb2NhdGlvbigpLHIscil9ZWxzZSBpZihuIGluc3RhbmNlb2YgVHQpe3ZhciBpPWZ1bmN0aW9uKCl7bi5zZXR1cExpc3RlbmVycygpfTtuLnRyYW5zaXRpb25UbyhuLmdldEN1cnJlbnRMb2NhdGlvbigpLGksaSl9bi5saXN0ZW4oKGZ1bmN0aW9uKHQpe2UuYXBwcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLl9yb3V0ZT10fSkpfSkpfX0sTXQucHJvdG90eXBlLmJlZm9yZUVhY2g9ZnVuY3Rpb24odCl7cmV0dXJuICR0KHRoaXMuYmVmb3JlSG9va3MsdCl9LE10LnByb3RvdHlwZS5iZWZvcmVSZXNvbHZlPWZ1bmN0aW9uKHQpe3JldHVybiAkdCh0aGlzLnJlc29sdmVIb29rcyx0KX0sTXQucHJvdG90eXBlLmFmdGVyRWFjaD1mdW5jdGlvbih0KXtyZXR1cm4gJHQodGhpcy5hZnRlckhvb2tzLHQpfSxNdC5wcm90b3R5cGUub25SZWFkeT1mdW5jdGlvbih0LGUpe3RoaXMuaGlzdG9yeS5vblJlYWR5KHQsZSl9LE10LnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKHQpe3RoaXMuaGlzdG9yeS5vbkVycm9yKHQpfSxNdC5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUsbil7dGhpcy5oaXN0b3J5LnB1c2godCxlLG4pfSxNdC5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LGUsbil7dGhpcy5oaXN0b3J5LnJlcGxhY2UodCxlLG4pfSxNdC5wcm90b3R5cGUuZ289ZnVuY3Rpb24odCl7dGhpcy5oaXN0b3J5LmdvKHQpfSxNdC5wcm90b3R5cGUuYmFjaz1mdW5jdGlvbigpe3RoaXMuZ28oLTEpfSxNdC5wcm90b3R5cGUuZm9yd2FyZD1mdW5jdGlvbigpe3RoaXMuZ28oMSl9LE10LnByb3RvdHlwZS5nZXRNYXRjaGVkQ29tcG9uZW50cz1mdW5jdGlvbih0KXt2YXIgZT10P3QubWF0Y2hlZD90OnRoaXMucmVzb2x2ZSh0KS5yb3V0ZTp0aGlzLmN1cnJlbnRSb3V0ZTtyZXR1cm4gZT9bXS5jb25jYXQuYXBwbHkoW10sZS5tYXRjaGVkLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQuY29tcG9uZW50cykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jb21wb25lbnRzW2VdfSkpfSkpKTpbXX0sTXQucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPUcodCxlfHx0aGlzLmhpc3RvcnkuY3VycmVudCxuLHRoaXMpLGk9dGhpcy5tYXRjaChyLGUpLGE9aS5yZWRpcmVjdGVkRnJvbXx8aS5mdWxsUGF0aCxvPXRoaXMuaGlzdG9yeS5iYXNlLHM9ZnVuY3Rpb24odCxlLG4pe3ZhciByPSJoYXNoIj09PW4/IiMiK2U6ZTtyZXR1cm4gdD9PKHQrIi8iK3IpOnJ9KG8sYSx0aGlzLm1vZGUpO3JldHVybntsb2NhdGlvbjpyLHJvdXRlOmksaHJlZjpzLG5vcm1hbGl6ZWRUbzpyLHJlc29sdmVkOml9fSxNdC5wcm90b3R5cGUuYWRkUm91dGVzPWZ1bmN0aW9uKHQpe3RoaXMubWF0Y2hlci5hZGRSb3V0ZXModCksdGhpcy5oaXN0b3J5LmN1cnJlbnQhPT1nJiZ0aGlzLmhpc3RvcnkudHJhbnNpdGlvblRvKHRoaXMuaGlzdG9yeS5nZXRDdXJyZW50TG9jYXRpb24oKSl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKE10LnByb3RvdHlwZSxBdCksTXQuaW5zdGFsbD1mdW5jdGlvbiB0KGUpe2lmKCF0Lmluc3RhbGxlZHx8XyE9PWUpe3QuaW5zdGFsbGVkPSEwLF89ZTt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dH0scj1mdW5jdGlvbih0LGUpe3ZhciByPXQuJG9wdGlvbnMuX3BhcmVudFZub2RlO24ocikmJm4ocj1yLmRhdGEpJiZuKHI9ci5yZWdpc3RlclJvdXRlSW5zdGFuY2UpJiZyKHQsZSl9O2UubWl4aW4oe2JlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe24odGhpcy4kb3B0aW9ucy5yb3V0ZXIpPyh0aGlzLl9yb3V0ZXJSb290PXRoaXMsdGhpcy5fcm91dGVyPXRoaXMuJG9wdGlvbnMucm91dGVyLHRoaXMuX3JvdXRlci5pbml0KHRoaXMpLGUudXRpbC5kZWZpbmVSZWFjdGl2ZSh0aGlzLCJfcm91dGUiLHRoaXMuX3JvdXRlci5oaXN0b3J5LmN1cnJlbnQpKTp0aGlzLl9yb3V0ZXJSb290PXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50Ll9yb3V0ZXJSb290fHx0aGlzLHIodGhpcyx0aGlzKX0sZGVzdHJveWVkOmZ1bmN0aW9uKCl7cih0aGlzKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsIiRyb3V0ZXIiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcm91dGVyUm9vdC5fcm91dGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiJHJvdXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JvdXRlclJvb3QuX3JvdXRlfX0pLGUuY29tcG9uZW50KCJSb3V0ZXJWaWV3IixpKSxlLmNvbXBvbmVudCgiUm91dGVyTGluayIsUyk7dmFyIGE9ZS5jb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO2EuYmVmb3JlUm91dGVFbnRlcj1hLmJlZm9yZVJvdXRlTGVhdmU9YS5iZWZvcmVSb3V0ZVVwZGF0ZT1hLmNyZWF0ZWR9fSxNdC52ZXJzaW9uPSIzLjAuMSIsZVsiZGVmYXVsdCJdPU10fS5jYWxsKHRoaXMsbigiNWE1MiIpWyJkZWZhdWx0Il0pfSxhOTI1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLGZ1bmN0aW9uKHQpewovKiEKICogdnVlLWkxOG4gdjguMjguMiAKICogKGMpIDIwMjIga2F6dXlhIGthd2FndWNoaQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLwp2YXIgbj1bImNvbXBhY3REaXNwbGF5IiwiY3VycmVuY3kiLCJjdXJyZW5jeURpc3BsYXkiLCJjdXJyZW5jeVNpZ24iLCJsb2NhbGVNYXRjaGVyIiwibm90YXRpb24iLCJudW1iZXJpbmdTeXN0ZW0iLCJzaWduRGlzcGxheSIsInN0eWxlIiwidW5pdCIsInVuaXREaXNwbGF5IiwidXNlR3JvdXBpbmciLCJtaW5pbXVtSW50ZWdlckRpZ2l0cyIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsIm1pbmltdW1TaWduaWZpY2FudERpZ2l0cyIsIm1heGltdW1TaWduaWZpY2FudERpZ2l0cyJdLHI9WyJkYXRlU3R5bGUiLCJ0aW1lU3R5bGUiLCJjYWxlbmRhciIsImxvY2FsZU1hdGNoZXIiLCJob3VyMTIiLCJob3VyQ3ljbGUiLCJ0aW1lWm9uZSIsImZvcm1hdE1hdGNoZXIiLCJ3ZWVrZGF5IiwiZXJhIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsInRpbWVab25lTmFtZSJdO2Z1bmN0aW9uIGkoZSxuKXsidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiYodC53YXJuKCJbdnVlLWkxOG5dICIrZSksbiYmdC53YXJuKG4uc3RhY2spKX12YXIgYT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIG8odCl7cmV0dXJuIG51bGwhPT10JiYib2JqZWN0Ij09PXR5cGVvZiB0fWZ1bmN0aW9uIHModCl7cmV0dXJuImJvb2xlYW4iPT09dHlwZW9mIHR9ZnVuY3Rpb24gYyh0KXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0fXZhciB1PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gbCh0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PXUuY2FsbCh0KX1mdW5jdGlvbiBmKHQpe3JldHVybiBudWxsPT09dHx8dm9pZCAwPT09dH1mdW5jdGlvbiBkKHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdH1mdW5jdGlvbiBoKCl7dmFyIHQ9W10sZT1hcmd1bWVudHMubGVuZ3RoO3doaWxlKGUtLSl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgbj1udWxsLHI9bnVsbDtyZXR1cm4gMT09PXQubGVuZ3RoP28odFswXSl8fGEodFswXSk/cj10WzBdOiJzdHJpbmciPT09dHlwZW9mIHRbMF0mJihuPXRbMF0pOjI9PT10Lmxlbmd0aCYmKCJzdHJpbmciPT09dHlwZW9mIHRbMF0mJihuPXRbMF0pLChvKHRbMV0pfHxhKHRbMV0pKSYmKHI9dFsxXSkpLHtsb2NhbGU6bixwYXJhbXM6cn19ZnVuY3Rpb24gcCh0KXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0KSl9ZnVuY3Rpb24gdih0LGUpe3JldHVybiEhfnQuaW5kZXhPZihlKX12YXIgZz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIG0odCxlKXtyZXR1cm4gZy5jYWxsKHQsZSl9ZnVuY3Rpb24gYih0KXtmb3IodmFyIGU9YXJndW1lbnRzLG49T2JqZWN0KHQpLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXt2YXIgaT1lW3JdO2lmKHZvaWQgMCE9PWkmJm51bGwhPT1pKXt2YXIgYT12b2lkIDA7Zm9yKGEgaW4gaSltKGksYSkmJihvKGlbYV0pP25bYV09YihuW2FdLGlbYV0pOm5bYV09aVthXSl9fXJldHVybiBufWZ1bmN0aW9uIHkodCxlKXtpZih0PT09ZSlyZXR1cm4hMDt2YXIgbj1vKHQpLHI9byhlKTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcodCk9PT1TdHJpbmcoZSk7dHJ5e3ZhciBpPWEodCkscz1hKGUpO2lmKGkmJnMpcmV0dXJuIHQubGVuZ3RoPT09ZS5sZW5ndGgmJnQuZXZlcnkoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHkodCxlW25dKX0pKTtpZihpfHxzKXJldHVybiExO3ZhciBjPU9iamVjdC5rZXlzKHQpLHU9T2JqZWN0LmtleXMoZSk7cmV0dXJuIGMubGVuZ3RoPT09dS5sZW5ndGgmJmMuZXZlcnkoKGZ1bmN0aW9uKG4pe3JldHVybiB5KHRbbl0sZVtuXSl9KSl9Y2F0Y2gobCl7cmV0dXJuITF9fWZ1bmN0aW9uIF8odCl7cmV0dXJuIG51bGwhPXQmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpeyJzdHJpbmciPT10eXBlb2YgdFtlXSYmKHRbZV09ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiZhcG9zOyIpfSh0W2VdKSl9KSksdH12YXIgdz17bmFtZToiaTE4biIsZnVuY3Rpb25hbDohMCxwcm9wczp7dGFnOnt0eXBlOltTdHJpbmcsQm9vbGVhbixPYmplY3RdLGRlZmF1bHQ6InNwYW4ifSxwYXRoOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sbG9jYWxlOnt0eXBlOlN0cmluZ30scGxhY2VzOnt0eXBlOltBcnJheSxPYmplY3RdfX0scmVuZGVyOmZ1bmN0aW9uKHQsZSl7dmFyIG49ZS5kYXRhLHI9ZS5wYXJlbnQsaT1lLnByb3BzLGE9ZS5zbG90cyxvPXIuJGkxOG47aWYobyl7dmFyIHM9aS5wYXRoLGM9aS5sb2NhbGUsdT1pLnBsYWNlcyxsPWEoKSxmPW8uaShzLGMsZnVuY3Rpb24odCl7dmFyIGU7Zm9yKGUgaW4gdClpZigiZGVmYXVsdCIhPT1lKXJldHVybiExO3JldHVybiBCb29sZWFuKGUpfShsKXx8dT9mdW5jdGlvbih0LGUpe3ZhciBuPWU/ZnVuY3Rpb24odCl7MDtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90LnJlZHVjZShTLHt9KTpPYmplY3QuYXNzaWduKHt9LHQpfShlKTp7fTtpZighdClyZXR1cm4gbjt0PXQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC50YWd8fCIiIT09dC50ZXh0LnRyaW0oKX0pKTt2YXIgcj10LmV2ZXJ5KFQpOzA7cmV0dXJuIHQucmVkdWNlKHI/eDpTLG4pfShsLmRlZmF1bHQsdSk6bCksZD1pLnRhZyYmITAhPT1pLnRhZ3x8ITE9PT1pLnRhZz9pLnRhZzoic3BhbiI7cmV0dXJuIGQ/dChkLG4sZik6Zn19fTtmdW5jdGlvbiB4KHQsZSl7cmV0dXJuIGUuZGF0YSYmZS5kYXRhLmF0dHJzJiZlLmRhdGEuYXR0cnMucGxhY2UmJih0W2UuZGF0YS5hdHRycy5wbGFjZV09ZSksdH1mdW5jdGlvbiBTKHQsZSxuKXtyZXR1cm4gdFtuXT1lLHR9ZnVuY3Rpb24gVCh0KXtyZXR1cm4gQm9vbGVhbih0LmRhdGEmJnQuZGF0YS5hdHRycyYmdC5kYXRhLmF0dHJzLnBsYWNlKX12YXIgQyxrPXtuYW1lOiJpMThuLW4iLGZ1bmN0aW9uYWw6ITAscHJvcHM6e3RhZzp7dHlwZTpbU3RyaW5nLEJvb2xlYW4sT2JqZWN0XSxkZWZhdWx0OiJzcGFuIn0sdmFsdWU6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwfSxmb3JtYXQ6e3R5cGU6W1N0cmluZyxPYmplY3RdfSxsb2NhbGU6e3R5cGU6U3RyaW5nfX0scmVuZGVyOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5wcm9wcyxpPWUucGFyZW50LGE9ZS5kYXRhLHM9aS4kaTE4bjtpZighcylyZXR1cm4gbnVsbDt2YXIgdT1udWxsLGw9bnVsbDtjKHIuZm9ybWF0KT91PXIuZm9ybWF0Om8oci5mb3JtYXQpJiYoci5mb3JtYXQua2V5JiYodT1yLmZvcm1hdC5rZXkpLGw9T2JqZWN0LmtleXMoci5mb3JtYXQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXt2YXIgaTtyZXR1cm4gdihuLGUpP09iamVjdC5hc3NpZ24oe30sdCwoaT17fSxpW2VdPXIuZm9ybWF0W2VdLGkpKTp0fSksbnVsbCkpO3ZhciBmPXIubG9jYWxlfHxzLmxvY2FsZSxkPXMuX250cChyLnZhbHVlLGYsdSxsKSxoPWQubWFwKChmdW5jdGlvbih0LGUpe3ZhciBuLHI9YS5zY29wZWRTbG90cyYmYS5zY29wZWRTbG90c1t0LnR5cGVdO3JldHVybiByP3IoKG49e30sblt0LnR5cGVdPXQudmFsdWUsbi5pbmRleD1lLG4ucGFydHM9ZCxuKSk6dC52YWx1ZX0pKSxwPXIudGFnJiYhMCE9PXIudGFnfHwhMT09PXIudGFnP3IudGFnOiJzcGFuIjtyZXR1cm4gcD90KHAse2F0dHJzOmEuYXR0cnMsY2xhc3M6YVsiY2xhc3MiXSxzdGF0aWNDbGFzczphLnN0YXRpY0NsYXNzfSxoKTpofX07ZnVuY3Rpb24gTyh0LGUsbil7UCh0LG4pJiZNKHQsZSxuKX1mdW5jdGlvbiBFKHQsZSxuLHIpe2lmKFAodCxuKSl7dmFyIGk9bi5jb250ZXh0LiRpMThuOyhmdW5jdGlvbih0LGUpe3ZhciBuPWUuY29udGV4dDtyZXR1cm4gdC5fbG9jYWxlPT09bi4kaTE4bi5sb2NhbGV9KSh0LG4pJiZ5KGUudmFsdWUsZS5vbGRWYWx1ZSkmJnkodC5fbG9jYWxlTWVzc2FnZSxpLmdldExvY2FsZU1lc3NhZ2UoaS5sb2NhbGUpKXx8TSh0LGUsbil9fWZ1bmN0aW9uIEkodCxlLG4scil7dmFyIGE9bi5jb250ZXh0O2lmKGEpe3ZhciBvPW4uY29udGV4dC4kaTE4bnx8e307ZS5tb2RpZmllcnMucHJlc2VydmV8fG8ucHJlc2VydmVEaXJlY3RpdmVDb250ZW50fHwodC50ZXh0Q29udGVudD0iIiksdC5fdnQ9dm9pZCAwLGRlbGV0ZSB0WyJfdnQiXSx0Ll9sb2NhbGU9dm9pZCAwLGRlbGV0ZSB0WyJfbG9jYWxlIl0sdC5fbG9jYWxlTWVzc2FnZT12b2lkIDAsZGVsZXRlIHRbIl9sb2NhbGVNZXNzYWdlIl19ZWxzZSBpKCJWdWUgaW5zdGFuY2UgZG9lcyBub3QgZXhpc3RzIGluIFZOb2RlIGNvbnRleHQiKX1mdW5jdGlvbiBQKHQsZSl7dmFyIG49ZS5jb250ZXh0O3JldHVybiBuPyEhbi4kaTE4bnx8KGkoIlZ1ZUkxOG4gaW5zdGFuY2UgZG9lcyBub3QgZXhpc3RzIGluIFZ1ZSBpbnN0YW5jZSIpLCExKTooaSgiVnVlIGluc3RhbmNlIGRvZXMgbm90IGV4aXN0cyBpbiBWTm9kZSBjb250ZXh0IiksITEpfWZ1bmN0aW9uIE0odCxlLG4pe3ZhciByLGEsbz1lLnZhbHVlLHM9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGk7Yyh0KT9lPXQ6bCh0KSYmKGU9dC5wYXRoLG49dC5sb2NhbGUscj10LmFyZ3MsaT10LmNob2ljZSk7cmV0dXJue3BhdGg6ZSxsb2NhbGU6bixhcmdzOnIsY2hvaWNlOml9fShvKSx1PXMucGF0aCxmPXMubG9jYWxlLGQ9cy5hcmdzLGg9cy5jaG9pY2U7aWYodXx8Znx8ZClpZih1KXt2YXIgcD1uLmNvbnRleHQ7dC5fdnQ9dC50ZXh0Q29udGVudD1udWxsIT1oPyhyPXAuJGkxOG4pLnRjLmFwcGx5KHIsW3UsaF0uY29uY2F0KEEoZixkKSkpOihhPXAuJGkxOG4pLnQuYXBwbHkoYSxbdV0uY29uY2F0KEEoZixkKSkpLHQuX2xvY2FsZT1wLiRpMThuLmxvY2FsZSx0Ll9sb2NhbGVNZXNzYWdlPXAuJGkxOG4uZ2V0TG9jYWxlTWVzc2FnZShwLiRpMThuLmxvY2FsZSl9ZWxzZSBpKCJgcGF0aGAgaXMgcmVxdWlyZWQgaW4gdi10IGRpcmVjdGl2ZSIpO2Vsc2UgaSgidmFsdWUgdHlwZSBub3Qgc3VwcG9ydGVkIil9ZnVuY3Rpb24gQSh0LGUpe3ZhciBuPVtdO3JldHVybiB0JiZuLnB1c2godCksZSYmKEFycmF5LmlzQXJyYXkoZSl8fGwoZSkpJiZuLnB1c2goZSksbn1mdW5jdGlvbiAkKHQsZSl7dm9pZCAwPT09ZSYmKGU9e2JyaWRnZTohMX0pLCQuaW5zdGFsbGVkPSEwLEM9dDtDLnZlcnNpb24mJk51bWJlcihDLnZlcnNpb24uc3BsaXQoIi4iKVswXSk7KGZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KCIkaTE4biIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsIiRpMThuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2kxOG59fSksdC5wcm90b3R5cGUuJHQ9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1hcmd1bWVudHMubGVuZ3RoLTE7d2hpbGUobi0tID4wKWVbbl09YXJndW1lbnRzW24rMV07dmFyIHI9dGhpcy4kaTE4bjtyZXR1cm4gci5fdC5hcHBseShyLFt0LHIubG9jYWxlLHIuX2dldE1lc3NhZ2VzKCksdGhpc10uY29uY2F0KGUpKX0sdC5wcm90b3R5cGUuJHRjPWZ1bmN0aW9uKHQsZSl7dmFyIG49W10scj1hcmd1bWVudHMubGVuZ3RoLTI7d2hpbGUoci0tID4wKW5bcl09YXJndW1lbnRzW3IrMl07dmFyIGk9dGhpcy4kaTE4bjtyZXR1cm4gaS5fdGMuYXBwbHkoaSxbdCxpLmxvY2FsZSxpLl9nZXRNZXNzYWdlcygpLHRoaXMsZV0uY29uY2F0KG4pKX0sdC5wcm90b3R5cGUuJHRlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy4kaTE4bjtyZXR1cm4gbi5fdGUodCxuLmxvY2FsZSxuLl9nZXRNZXNzYWdlcygpLGUpfSx0LnByb3RvdHlwZS4kZD1mdW5jdGlvbih0KXt2YXIgZSxuPVtdLHI9YXJndW1lbnRzLmxlbmd0aC0xO3doaWxlKHItLSA+MCluW3JdPWFyZ3VtZW50c1tyKzFdO3JldHVybihlPXRoaXMuJGkxOG4pLmQuYXBwbHkoZSxbdF0uY29uY2F0KG4pKX0sdC5wcm90b3R5cGUuJG49ZnVuY3Rpb24odCl7dmFyIGUsbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTt3aGlsZShyLS0gPjApbltyXT1hcmd1bWVudHNbcisxXTtyZXR1cm4oZT10aGlzLiRpMThuKS5uLmFwcGx5KGUsW3RdLmNvbmNhdChuKSl9fSkoQyksQy5taXhpbihmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dGhpcyE9PXRoaXMuJHJvb3QmJnRoaXMuJG9wdGlvbnMuX19JTlRMSUZZX01FVEFfXyYmdGhpcy4kZWwmJnRoaXMuJGVsLnNldEF0dHJpYnV0ZSgiZGF0YS1pbnRsaWZ5Iix0aGlzLiRvcHRpb25zLl9fSU5UTElGWV9NRVRBX18pfXJldHVybiB2b2lkIDA9PT10JiYodD0hMSksdD97bW91bnRlZDplfTp7YmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kb3B0aW9ucztpZih0LmkxOG49dC5pMThufHwodC5fX2kxOG5CcmlkZ2V8fHQuX19pMThuP3t9Om51bGwpLHQuaTE4bilpZih0LmkxOG4gaW5zdGFuY2VvZiBHKXtpZih0Ll9faTE4bkJyaWRnZXx8dC5fX2kxOG4pdHJ5e3ZhciBlPXQuaTE4biYmdC5pMThuLm1lc3NhZ2VzP3QuaTE4bi5tZXNzYWdlczp7fSxuPXQuX19pMThuQnJpZGdlfHx0Ll9faTE4bjtuLmZvckVhY2goKGZ1bmN0aW9uKHQpe2U9YihlLEpTT04ucGFyc2UodCkpfSkpLE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3QuaTE4bi5tZXJnZUxvY2FsZU1lc3NhZ2UobixlW25dKX0pKX1jYXRjaChjKXswfXRoaXMuX2kxOG49dC5pMThuLHRoaXMuX2kxOG5XYXRjaGVyPXRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpfWVsc2UgaWYobCh0LmkxOG4pKXt2YXIgcj10aGlzLiRyb290JiZ0aGlzLiRyb290LiRpMThuJiZ0aGlzLiRyb290LiRpMThuIGluc3RhbmNlb2YgRz90aGlzLiRyb290LiRpMThuOm51bGw7aWYociYmKHQuaTE4bi5yb290PXRoaXMuJHJvb3QsdC5pMThuLmZvcm1hdHRlcj1yLmZvcm1hdHRlcix0LmkxOG4uZmFsbGJhY2tMb2NhbGU9ci5mYWxsYmFja0xvY2FsZSx0LmkxOG4uZm9ybWF0RmFsbGJhY2tNZXNzYWdlcz1yLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMsdC5pMThuLnNpbGVudFRyYW5zbGF0aW9uV2Fybj1yLnNpbGVudFRyYW5zbGF0aW9uV2Fybix0LmkxOG4uc2lsZW50RmFsbGJhY2tXYXJuPXIuc2lsZW50RmFsbGJhY2tXYXJuLHQuaTE4bi5wbHVyYWxpemF0aW9uUnVsZXM9ci5wbHVyYWxpemF0aW9uUnVsZXMsdC5pMThuLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudD1yLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudCksdC5fX2kxOG5CcmlkZ2V8fHQuX19pMThuKXRyeXt2YXIgaT10LmkxOG4mJnQuaTE4bi5tZXNzYWdlcz90LmkxOG4ubWVzc2FnZXM6e30sYT10Ll9faTE4bkJyaWRnZXx8dC5fX2kxOG47YS5mb3JFYWNoKChmdW5jdGlvbih0KXtpPWIoaSxKU09OLnBhcnNlKHQpKX0pKSx0LmkxOG4ubWVzc2FnZXM9aX1jYXRjaChjKXswfXZhciBvPXQuaTE4bixzPW8uc2hhcmVkTWVzc2FnZXM7cyYmbChzKSYmKHQuaTE4bi5tZXNzYWdlcz1iKHQuaTE4bi5tZXNzYWdlcyxzKSksdGhpcy5faTE4bj1uZXcgRyh0LmkxOG4pLHRoaXMuX2kxOG5XYXRjaGVyPXRoaXMuX2kxOG4ud2F0Y2hJMThuRGF0YSgpLCh2b2lkIDA9PT10LmkxOG4uc3luY3x8dC5pMThuLnN5bmMpJiYodGhpcy5fbG9jYWxlV2F0Y2hlcj10aGlzLiRpMThuLndhdGNoTG9jYWxlKCkpLHImJnIub25Db21wb25lbnRJbnN0YW5jZUNyZWF0ZWQodGhpcy5faTE4bil9ZWxzZSAwO2Vsc2UgdGhpcy4kcm9vdCYmdGhpcy4kcm9vdC4kaTE4biYmdGhpcy4kcm9vdC4kaTE4biBpbnN0YW5jZW9mIEc/dGhpcy5faTE4bj10aGlzLiRyb290LiRpMThuOnQucGFyZW50JiZ0LnBhcmVudC4kaTE4biYmdC5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBHJiYodGhpcy5faTE4bj10LnBhcmVudC4kaTE4bil9LGJlZm9yZU1vdW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kb3B0aW9uczt0LmkxOG49dC5pMThufHwodC5fX2kxOG5CcmlkZ2V8fHQuX19pMThuP3t9Om51bGwpLHQuaTE4bj8odC5pMThuIGluc3RhbmNlb2YgR3x8bCh0LmkxOG4pKSYmKHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpLHRoaXMuX3N1YnNjcmliaW5nPSEwKToodGhpcy4kcm9vdCYmdGhpcy4kcm9vdC4kaTE4biYmdGhpcy4kcm9vdC4kaTE4biBpbnN0YW5jZW9mIEd8fHQucGFyZW50JiZ0LnBhcmVudC4kaTE4biYmdC5wYXJlbnQuJGkxOG4gaW5zdGFuY2VvZiBHKSYmKHRoaXMuX2kxOG4uc3Vic2NyaWJlRGF0YUNoYW5naW5nKHRoaXMpLHRoaXMuX3N1YnNjcmliaW5nPSEwKX0sbW91bnRlZDplLGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtpZih0aGlzLl9pMThuKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKChmdW5jdGlvbigpe3QuX3N1YnNjcmliaW5nJiYodC5faTE4bi51bnN1YnNjcmliZURhdGFDaGFuZ2luZyh0KSxkZWxldGUgdC5fc3Vic2NyaWJpbmcpLHQuX2kxOG5XYXRjaGVyJiYodC5faTE4bldhdGNoZXIoKSx0Ll9pMThuLmRlc3Ryb3lWTSgpLGRlbGV0ZSB0Ll9pMThuV2F0Y2hlciksdC5fbG9jYWxlV2F0Y2hlciYmKHQuX2xvY2FsZVdhdGNoZXIoKSxkZWxldGUgdC5fbG9jYWxlV2F0Y2hlcil9KSl9fX19KGUuYnJpZGdlKSksQy5kaXJlY3RpdmUoInQiLHtiaW5kOk8sdXBkYXRlOkUsdW5iaW5kOkl9KSxDLmNvbXBvbmVudCh3Lm5hbWUsdyksQy5jb21wb25lbnQoay5uYW1lLGspO3ZhciBuPUMuY29uZmlnLm9wdGlvbk1lcmdlU3RyYXRlZ2llcztuLmkxOG49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09ZT90OmV9fXZhciBMPWZ1bmN0aW9uKCl7dGhpcy5fY2FjaGVzPU9iamVjdC5jcmVhdGUobnVsbCl9O0wucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuW3RdO3ZhciBuPXRoaXMuX2NhY2hlc1t0XTtyZXR1cm4gbnx8KG49ZnVuY3Rpb24odCl7dmFyIGU9W10sbj0wLHI9IiI7d2hpbGUobjx0Lmxlbmd0aCl7dmFyIGk9dFtuKytdO2lmKCJ7Ij09PWkpe3ImJmUucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cn0pLHI9IiI7dmFyIGE9IiI7aT10W24rK107d2hpbGUodm9pZCAwIT09aSYmIn0iIT09aSlhKz1pLGk9dFtuKytdO3ZhciBvPSJ9Ij09PWkscz1qLnRlc3QoYSk/Imxpc3QiOm8mJlIudGVzdChhKT8ibmFtZWQiOiJ1bmtub3duIjtlLnB1c2goe3ZhbHVlOmEsdHlwZTpzfSl9ZWxzZSIlIj09PWk/InsiIT09dFtuXSYmKHIrPWkpOnIrPWl9cmV0dXJuIHImJmUucHVzaCh7dHlwZToidGV4dCIsdmFsdWU6cn0pLGV9KHQpLHRoaXMuX2NhY2hlc1t0XT1uKSxmdW5jdGlvbih0LGUpe3ZhciBuPVtdLHI9MCxpPUFycmF5LmlzQXJyYXkoZSk/Imxpc3QiOm8oZSk/Im5hbWVkIjoidW5rbm93biI7aWYoInVua25vd24iPT09aSlyZXR1cm4gbjt3aGlsZShyPHQubGVuZ3RoKXt2YXIgYT10W3JdO3N3aXRjaChhLnR5cGUpe2Nhc2UidGV4dCI6bi5wdXNoKGEudmFsdWUpO2JyZWFrO2Nhc2UibGlzdCI6bi5wdXNoKGVbcGFyc2VJbnQoYS52YWx1ZSwxMCldKTticmVhaztjYXNlIm5hbWVkIjoibmFtZWQiPT09aSYmbi5wdXNoKGVbYS52YWx1ZV0pO2JyZWFrO2Nhc2UidW5rbm93biI6MDticmVha31yKyt9cmV0dXJuIG59KG4sZSl9O3ZhciBqPS9eKD86XGQpKy8sUj0vXig/Olx3KSsvO3ZhciBOPVtdO05bMF09e3dzOlswXSxpZGVudDpbMywwXSwiWyI6WzRdLGVvZjpbN119LE5bMV09e3dzOlsxXSwiLiI6WzJdLCJbIjpbNF0sZW9mOls3XX0sTlsyXT17d3M6WzJdLGlkZW50OlszLDBdLDA6WzMsMF0sbnVtYmVyOlszLDBdfSxOWzNdPXtpZGVudDpbMywwXSwwOlszLDBdLG51bWJlcjpbMywwXSx3czpbMSwxXSwiLiI6WzIsMV0sIlsiOls0LDFdLGVvZjpbNywxXX0sTls0XT17IiciOls1LDBdLCciJzpbNiwwXSwiWyI6WzQsMl0sIl0iOlsxLDNdLGVvZjo4LGVsc2U6WzQsMF19LE5bNV09eyInIjpbNCwwXSxlb2Y6OCxlbHNlOls1LDBdfSxOWzZdPXsnIic6WzQsMF0sZW9mOjgsZWxzZTpbNiwwXX07dmFyIEI9L15ccz8oPzp0cnVlfGZhbHNlfC0/W1xkLl0rfCdbXiddKid8IlteIl0qIilccz8kLztmdW5jdGlvbiBEKHQpe2lmKHZvaWQgMD09PXR8fG51bGw9PT10KXJldHVybiJlb2YiO3ZhciBlPXQuY2hhckNvZGVBdCgwKTtzd2l0Y2goZSl7Y2FzZSA5MTpjYXNlIDkzOmNhc2UgNDY6Y2FzZSAzNDpjYXNlIDM5OnJldHVybiB0O2Nhc2UgOTU6Y2FzZSAzNjpjYXNlIDQ1OnJldHVybiJpZGVudCI7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMzpjYXNlIDE2MDpjYXNlIDY1Mjc5OmNhc2UgODIzMjpjYXNlIDgyMzM6cmV0dXJuIndzIn1yZXR1cm4iaWRlbnQifWZ1bmN0aW9uIEYodCl7dmFyIGU9dC50cmltKCk7cmV0dXJuKCIwIiE9PXQuY2hhckF0KDApfHwhaXNOYU4odCkpJiYoZnVuY3Rpb24odCl7cmV0dXJuIEIudGVzdCh0KX0oZSk/ZnVuY3Rpb24odCl7dmFyIGU9dC5jaGFyQ29kZUF0KDApLG49dC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpO3JldHVybiBlIT09bnx8MzQhPT1lJiYzOSE9PWU/dDp0LnNsaWNlKDEsLTEpfShlKToiKiIrZSl9dmFyIFc9ZnVuY3Rpb24oKXt0aGlzLl9jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpfTtXLnByb3RvdHlwZS5wYXJzZVBhdGg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fY2FjaGVbdF07cmV0dXJuIGV8fChlPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLGEsbyxzLGM9W10sdT0tMSxsPTAsZj0wLGQ9W107ZnVuY3Rpb24gaCgpe3ZhciBlPXRbdSsxXTtpZig1PT09bCYmIiciPT09ZXx8Nj09PWwmJiciJz09PWUpcmV0dXJuIHUrKyxyPSJcXCIrZSxkWzBdKCksITB9ZFsxXT1mdW5jdGlvbigpe3ZvaWQgMCE9PW4mJihjLnB1c2gobiksbj12b2lkIDApfSxkWzBdPWZ1bmN0aW9uKCl7dm9pZCAwPT09bj9uPXI6bis9cn0sZFsyXT1mdW5jdGlvbigpe2RbMF0oKSxmKyt9LGRbM109ZnVuY3Rpb24oKXtpZihmPjApZi0tLGw9NCxkWzBdKCk7ZWxzZXtpZihmPTAsdm9pZCAwPT09bilyZXR1cm4hMTtpZihuPUYobiksITE9PT1uKXJldHVybiExO2RbMV0oKX19O3doaWxlKG51bGwhPT1sKWlmKHUrKyxlPXRbdV0sIlxcIiE9PWV8fCFoKCkpe2lmKGk9RChlKSxzPU5bbF0sYT1zW2ldfHxzWyJlbHNlIl18fDgsOD09PWEpcmV0dXJuO2lmKGw9YVswXSxvPWRbYVsxXV0sbyYmKHI9YVsyXSxyPXZvaWQgMD09PXI/ZTpyLCExPT09bygpKSlyZXR1cm47aWYoNz09PWwpcmV0dXJuIGN9fSh0KSxlJiYodGhpcy5fY2FjaGVbdF09ZSkpLGV8fFtdfSxXLnByb3RvdHlwZS5nZXRQYXRoVmFsdWU9ZnVuY3Rpb24odCxlKXtpZighbyh0KSlyZXR1cm4gbnVsbDt2YXIgbj10aGlzLnBhcnNlUGF0aChlKTtpZigwPT09bi5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHI9bi5sZW5ndGgsaT10LGE9MDt3aGlsZShhPHIpe3ZhciBzPWlbblthXV07aWYodm9pZCAwPT09c3x8bnVsbD09PXMpcmV0dXJuIG51bGw7aT1zLGErK31yZXR1cm4gaX07dmFyIEgsVj0vPFwvP1tcd1xzPSIvLic6OyMtXC9dKz4vLFU9Lyg/OkAoPzpcLlthLXpBLVpdKyk/Oig/Oltcd1wtX3wuL10rfFwoW1x3XC1fOnwuL10rXCkpKS9nLHE9L15AKD86XC4oW2EtekEtWl0rKSk/Oi8sej0vWygpXS9nLFk9e3VwcGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvTG9jYWxlVXBwZXJDYXNlKCl9LGxvd2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvTG9jYWxlTG93ZXJDYXNlKCl9LGNhcGl0YWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIiIrdC5jaGFyQXQoMCkudG9Mb2NhbGVVcHBlckNhc2UoKSt0LnN1YnN0cigxKX19LFg9bmV3IEwsRz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PXt9KSwhQyYmInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuVnVlJiYkKHdpbmRvdy5WdWUpO3ZhciBuPXQubG9jYWxlfHwiZW4tVVMiLHI9ITEhPT10LmZhbGxiYWNrTG9jYWxlJiYodC5mYWxsYmFja0xvY2FsZXx8ImVuLVVTIiksaT10Lm1lc3NhZ2VzfHx7fSxhPXQuZGF0ZVRpbWVGb3JtYXRzfHx0LmRhdGV0aW1lRm9ybWF0c3x8e30sbz10Lm51bWJlckZvcm1hdHN8fHt9O3RoaXMuX3ZtPW51bGwsdGhpcy5fZm9ybWF0dGVyPXQuZm9ybWF0dGVyfHxYLHRoaXMuX21vZGlmaWVycz10Lm1vZGlmaWVyc3x8e30sdGhpcy5fbWlzc2luZz10Lm1pc3Npbmd8fG51bGwsdGhpcy5fcm9vdD10LnJvb3R8fG51bGwsdGhpcy5fc3luYz12b2lkIDA9PT10LnN5bmN8fCEhdC5zeW5jLHRoaXMuX2ZhbGxiYWNrUm9vdD12b2lkIDA9PT10LmZhbGxiYWNrUm9vdHx8ISF0LmZhbGxiYWNrUm9vdCx0aGlzLl9mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmc9dm9pZCAwPT09dC5mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmd8fCEhdC5mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmcsdGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcz12b2lkIDAhPT10LmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMmJiEhdC5mb3JtYXRGYWxsYmFja01lc3NhZ2VzLHRoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2Fybj12b2lkIDAhPT10LnNpbGVudFRyYW5zbGF0aW9uV2FybiYmdC5zaWxlbnRUcmFuc2xhdGlvbldhcm4sdGhpcy5fc2lsZW50RmFsbGJhY2tXYXJuPXZvaWQgMCE9PXQuc2lsZW50RmFsbGJhY2tXYXJuJiYhIXQuc2lsZW50RmFsbGJhY2tXYXJuLHRoaXMuX2RhdGVUaW1lRm9ybWF0dGVycz17fSx0aGlzLl9udW1iZXJGb3JtYXR0ZXJzPXt9LHRoaXMuX3BhdGg9bmV3IFcsdGhpcy5fZGF0YUxpc3RlbmVycz1uZXcgU2V0LHRoaXMuX2NvbXBvbmVudEluc3RhbmNlQ3JlYXRlZExpc3RlbmVyPXQuY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXJ8fG51bGwsdGhpcy5fcHJlc2VydmVEaXJlY3RpdmVDb250ZW50PXZvaWQgMCE9PXQucHJlc2VydmVEaXJlY3RpdmVDb250ZW50JiYhIXQucHJlc2VydmVEaXJlY3RpdmVDb250ZW50LHRoaXMucGx1cmFsaXphdGlvblJ1bGVzPXQucGx1cmFsaXphdGlvblJ1bGVzfHx7fSx0aGlzLl93YXJuSHRtbEluTWVzc2FnZT10Lndhcm5IdG1sSW5NZXNzYWdlfHwib2ZmIix0aGlzLl9wb3N0VHJhbnNsYXRpb249dC5wb3N0VHJhbnNsYXRpb258fG51bGwsdGhpcy5fZXNjYXBlUGFyYW1ldGVySHRtbD10LmVzY2FwZVBhcmFtZXRlckh0bWx8fCExLCJfX1ZVRV9JMThOX0JSSURHRV9fImluIHQmJih0aGlzLl9fVlVFX0kxOE5fQlJJREdFX189dC5fX1ZVRV9JMThOX0JSSURHRV9fKSx0aGlzLmdldENob2ljZUluZGV4PWZ1bmN0aW9uKHQsbil7dmFyIHI9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO2lmKHImJnIuZ2V0Q2hvaWNlSW5kZXgpe3ZhciBpPXIuZ2V0Q2hvaWNlSW5kZXg7cmV0dXJuIGkuY2FsbChlLHQsbil9cmV0dXJuIGUubG9jYWxlIGluIGUucGx1cmFsaXphdGlvblJ1bGVzP2UucGx1cmFsaXphdGlvblJ1bGVzW2UubG9jYWxlXS5hcHBseShlLFt0LG5dKTpmdW5jdGlvbih0LGUpe3JldHVybiB0PU1hdGguYWJzKHQpLDI9PT1lP3Q/dD4xPzE6MDoxOnQ/TWF0aC5taW4odCwyKTowfSh0LG4pfSx0aGlzLl9leGlzdD1mdW5jdGlvbih0LG4pe3JldHVybiEoIXR8fCFuKSYmKCFmKGUuX3BhdGguZ2V0UGF0aFZhbHVlKHQsbikpfHwhIXRbbl0pfSwid2FybiIhPT10aGlzLl93YXJuSHRtbEluTWVzc2FnZSYmImVycm9yIiE9PXRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlfHxPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLl9jaGVja0xvY2FsZU1lc3NhZ2UodCxlLl93YXJuSHRtbEluTWVzc2FnZSxpW3RdKX0pKSx0aGlzLl9pbml0Vk0oe2xvY2FsZTpuLGZhbGxiYWNrTG9jYWxlOnIsbWVzc2FnZXM6aSxkYXRlVGltZUZvcm1hdHM6YSxudW1iZXJGb3JtYXRzOm99KX0sUT17dm06e2NvbmZpZ3VyYWJsZTohMH0sbWVzc2FnZXM6e2NvbmZpZ3VyYWJsZTohMH0sZGF0ZVRpbWVGb3JtYXRzOntjb25maWd1cmFibGU6ITB9LG51bWJlckZvcm1hdHM6e2NvbmZpZ3VyYWJsZTohMH0sYXZhaWxhYmxlTG9jYWxlczp7Y29uZmlndXJhYmxlOiEwfSxsb2NhbGU6e2NvbmZpZ3VyYWJsZTohMH0sZmFsbGJhY2tMb2NhbGU6e2NvbmZpZ3VyYWJsZTohMH0sZm9ybWF0RmFsbGJhY2tNZXNzYWdlczp7Y29uZmlndXJhYmxlOiEwfSxtaXNzaW5nOntjb25maWd1cmFibGU6ITB9LGZvcm1hdHRlcjp7Y29uZmlndXJhYmxlOiEwfSxzaWxlbnRUcmFuc2xhdGlvbldhcm46e2NvbmZpZ3VyYWJsZTohMH0sc2lsZW50RmFsbGJhY2tXYXJuOntjb25maWd1cmFibGU6ITB9LHByZXNlcnZlRGlyZWN0aXZlQ29udGVudDp7Y29uZmlndXJhYmxlOiEwfSx3YXJuSHRtbEluTWVzc2FnZTp7Y29uZmlndXJhYmxlOiEwfSxwb3N0VHJhbnNsYXRpb246e2NvbmZpZ3VyYWJsZTohMH0sc3luYzp7Y29uZmlndXJhYmxlOiEwfX07Ry5wcm90b3R5cGUuX2NoZWNrTG9jYWxlTWVzc2FnZT1mdW5jdGlvbihlLG4scil7dmFyIG89ZnVuY3Rpb24oZSxuLHIscyl7aWYobChyKSlPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgaT1yW3RdO2woaSk/KHMucHVzaCh0KSxzLnB1c2goIi4iKSxvKGUsbixpLHMpLHMucG9wKCkscy5wb3AoKSk6KHMucHVzaCh0KSxvKGUsbixpLHMpLHMucG9wKCkpfSkpO2Vsc2UgaWYoYShyKSlyLmZvckVhY2goKGZ1bmN0aW9uKHQscil7bCh0KT8ocy5wdXNoKCJbIityKyJdIikscy5wdXNoKCIuIiksbyhlLG4sdCxzKSxzLnBvcCgpLHMucG9wKCkpOihzLnB1c2goIlsiK3IrIl0iKSxvKGUsbix0LHMpLHMucG9wKCkpfSkpO2Vsc2UgaWYoYyhyKSl7dmFyIHU9Vi50ZXN0KHIpO2lmKHUpe3ZhciBmPSJEZXRlY3RlZCBIVE1MIGluIG1lc3NhZ2UgJyIrcisiJyBvZiBrZXlwYXRoICciK3Muam9pbigiIikrIicgYXQgJyIrbisiJy4gQ29uc2lkZXIgY29tcG9uZW50IGludGVycG9sYXRpb24gd2l0aCAnPGkxOG4+JyB0byBhdm9pZCBYU1MuIFNlZSBodHRwczovL2JpdC5seS8yWnFKemtwIjsid2FybiI9PT1lP2koZik6ImVycm9yIj09PWUmJmZ1bmN0aW9uKGUsbil7InVuZGVmaW5lZCIhPT10eXBlb2YgdCYmKHQuZXJyb3IoIlt2dWUtaTE4bl0gIitlKSxuJiZ0LmVycm9yKG4uc3RhY2spKX0oZil9fX07byhuLGUscixbXSl9LEcucHJvdG90eXBlLl9pbml0Vk09ZnVuY3Rpb24odCl7dmFyIGU9Qy5jb25maWcuc2lsZW50O0MuY29uZmlnLnNpbGVudD0hMCx0aGlzLl92bT1uZXcgQyh7ZGF0YTp0LF9fVlVFMThOX19JTlNUQU5DRV9fOiEwfSksQy5jb25maWcuc2lsZW50PWV9LEcucHJvdG90eXBlLmRlc3Ryb3lWTT1mdW5jdGlvbigpe3RoaXMuX3ZtLiRkZXN0cm95KCl9LEcucHJvdG90eXBlLnN1YnNjcmliZURhdGFDaGFuZ2luZz1mdW5jdGlvbih0KXt0aGlzLl9kYXRhTGlzdGVuZXJzLmFkZCh0KX0sRy5wcm90b3R5cGUudW5zdWJzY3JpYmVEYXRhQ2hhbmdpbmc9ZnVuY3Rpb24odCl7KGZ1bmN0aW9uKHQsZSl7aWYodC5kZWxldGUoZSkpO30pKHRoaXMuX2RhdGFMaXN0ZW5lcnMsdCl9LEcucHJvdG90eXBlLndhdGNoSTE4bkRhdGE9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl92bS4kd2F0Y2goIiRkYXRhIiwoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5wdXNoKHQpfSkpLGV9KHQuX2RhdGFMaXN0ZW5lcnMpLG49ZS5sZW5ndGg7d2hpbGUobi0tKUMubmV4dFRpY2soKGZ1bmN0aW9uKCl7ZVtuXSYmZVtuXS4kZm9yY2VVcGRhdGUoKX0pKX0pLHtkZWVwOiEwfSl9LEcucHJvdG90eXBlLndhdGNoTG9jYWxlPWZ1bmN0aW9uKHQpe2lmKHQpe2lmKCF0aGlzLl9fVlVFX0kxOE5fQlJJREdFX18pcmV0dXJuIG51bGw7dmFyIGU9dGhpcyxuPXRoaXMuX3ZtO3JldHVybiB0aGlzLnZtLiR3YXRjaCgibG9jYWxlIiwoZnVuY3Rpb24ocil7bi4kc2V0KG4sImxvY2FsZSIsciksZS5fX1ZVRV9JMThOX0JSSURHRV9fJiZ0JiYodC5sb2NhbGUudmFsdWU9ciksbi4kZm9yY2VVcGRhdGUoKX0pLHtpbW1lZGlhdGU6ITB9KX1pZighdGhpcy5fc3luY3x8IXRoaXMuX3Jvb3QpcmV0dXJuIG51bGw7dmFyIHI9dGhpcy5fdm07cmV0dXJuIHRoaXMuX3Jvb3QuJGkxOG4udm0uJHdhdGNoKCJsb2NhbGUiLChmdW5jdGlvbih0KXtyLiRzZXQociwibG9jYWxlIix0KSxyLiRmb3JjZVVwZGF0ZSgpfSkse2ltbWVkaWF0ZTohMH0pfSxHLnByb3RvdHlwZS5vbkNvbXBvbmVudEluc3RhbmNlQ3JlYXRlZD1mdW5jdGlvbih0KXt0aGlzLl9jb21wb25lbnRJbnN0YW5jZUNyZWF0ZWRMaXN0ZW5lciYmdGhpcy5fY29tcG9uZW50SW5zdGFuY2VDcmVhdGVkTGlzdGVuZXIodCx0aGlzKX0sUS52bS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm19LFEubWVzc2FnZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHAodGhpcy5fZ2V0TWVzc2FnZXMoKSl9LFEuZGF0ZVRpbWVGb3JtYXRzLmdldD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMuX2dldERhdGVUaW1lRm9ybWF0cygpKX0sUS5udW1iZXJGb3JtYXRzLmdldD1mdW5jdGlvbigpe3JldHVybiBwKHRoaXMuX2dldE51bWJlckZvcm1hdHMoKSl9LFEuYXZhaWxhYmxlTG9jYWxlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5tZXNzYWdlcykuc29ydCgpfSxRLmxvY2FsZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm0ubG9jYWxlfSxRLmxvY2FsZS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fdm0uJHNldCh0aGlzLl92bSwibG9jYWxlIix0KX0sUS5mYWxsYmFja0xvY2FsZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm0uZmFsbGJhY2tMb2NhbGV9LFEuZmFsbGJhY2tMb2NhbGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX2xvY2FsZUNoYWluQ2FjaGU9e30sdGhpcy5fdm0uJHNldCh0aGlzLl92bSwiZmFsbGJhY2tMb2NhbGUiLHQpfSxRLmZvcm1hdEZhbGxiYWNrTWVzc2FnZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Zvcm1hdEZhbGxiYWNrTWVzc2FnZXN9LFEuZm9ybWF0RmFsbGJhY2tNZXNzYWdlcy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZm9ybWF0RmFsbGJhY2tNZXNzYWdlcz10fSxRLm1pc3NpbmcuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21pc3Npbmd9LFEubWlzc2luZy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWlzc2luZz10fSxRLmZvcm1hdHRlci5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9ybWF0dGVyfSxRLmZvcm1hdHRlci5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZm9ybWF0dGVyPXR9LFEuc2lsZW50VHJhbnNsYXRpb25XYXJuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaWxlbnRUcmFuc2xhdGlvbldhcm59LFEuc2lsZW50VHJhbnNsYXRpb25XYXJuLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zaWxlbnRUcmFuc2xhdGlvbldhcm49dH0sUS5zaWxlbnRGYWxsYmFja1dhcm4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NpbGVudEZhbGxiYWNrV2Fybn0sUS5zaWxlbnRGYWxsYmFja1dhcm4uc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3NpbGVudEZhbGxiYWNrV2Fybj10fSxRLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJlc2VydmVEaXJlY3RpdmVDb250ZW50fSxRLnByZXNlcnZlRGlyZWN0aXZlQ29udGVudC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fcHJlc2VydmVEaXJlY3RpdmVDb250ZW50PXR9LFEud2Fybkh0bWxJbk1lc3NhZ2UuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlfSxRLndhcm5IdG1sSW5NZXNzYWdlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2U7aWYodGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2U9dCxuIT09dCYmKCJ3YXJuIj09PXR8fCJlcnJvciI9PT10KSl7dmFyIHI9dGhpcy5fZ2V0TWVzc2FnZXMoKTtPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLl9jaGVja0xvY2FsZU1lc3NhZ2UodCxlLl93YXJuSHRtbEluTWVzc2FnZSxyW3RdKX0pKX19LFEucG9zdFRyYW5zbGF0aW9uLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3N0VHJhbnNsYXRpb259LFEucG9zdFRyYW5zbGF0aW9uLnNldD1mdW5jdGlvbih0KXt0aGlzLl9wb3N0VHJhbnNsYXRpb249dH0sUS5zeW5jLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zeW5jfSxRLnN5bmMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N5bmM9dH0sRy5wcm90b3R5cGUuX2dldE1lc3NhZ2VzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZtLm1lc3NhZ2VzfSxHLnByb3RvdHlwZS5fZ2V0RGF0ZVRpbWVGb3JtYXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZtLmRhdGVUaW1lRm9ybWF0c30sRy5wcm90b3R5cGUuX2dldE51bWJlckZvcm1hdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdm0ubnVtYmVyRm9ybWF0c30sRy5wcm90b3R5cGUuX3dhcm5EZWZhdWx0PWZ1bmN0aW9uKHQsZSxuLHIsaSxhKXtpZighZihuKSlyZXR1cm4gbjtpZih0aGlzLl9taXNzaW5nKXt2YXIgbz10aGlzLl9taXNzaW5nLmFwcGx5KG51bGwsW3QsZSxyLGldKTtpZihjKG8pKXJldHVybiBvfWVsc2UgMDtpZih0aGlzLl9mb3JtYXRGYWxsYmFja01lc3NhZ2VzKXt2YXIgcz1oLmFwcGx5KHZvaWQgMCxpKTtyZXR1cm4gdGhpcy5fcmVuZGVyKGUsYSxzLnBhcmFtcyxlKX1yZXR1cm4gZX0sRy5wcm90b3R5cGUuX2lzRmFsbGJhY2tSb290PWZ1bmN0aW9uKHQpe3JldHVybih0aGlzLl9mYWxsYmFja1Jvb3RXaXRoRW1wdHlTdHJpbmc/IXQ6Zih0KSkmJiFmKHRoaXMuX3Jvb3QpJiZ0aGlzLl9mYWxsYmFja1Jvb3R9LEcucHJvdG90eXBlLl9pc1NpbGVudEZhbGxiYWNrV2Fybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc2lsZW50RmFsbGJhY2tXYXJuIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMuX3NpbGVudEZhbGxiYWNrV2Fybi50ZXN0KHQpOnRoaXMuX3NpbGVudEZhbGxiYWNrV2Fybn0sRy5wcm90b3R5cGUuX2lzU2lsZW50RmFsbGJhY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5faXNTaWxlbnRGYWxsYmFja1dhcm4oZSkmJih0aGlzLl9pc0ZhbGxiYWNrUm9vdCgpfHx0IT09dGhpcy5mYWxsYmFja0xvY2FsZSl9LEcucHJvdG90eXBlLl9pc1NpbGVudFRyYW5zbGF0aW9uV2Fybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc2lsZW50VHJhbnNsYXRpb25XYXJuIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2Fybi50ZXN0KHQpOnRoaXMuX3NpbGVudFRyYW5zbGF0aW9uV2Fybn0sRy5wcm90b3R5cGUuX2ludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSxuLHIsaSxvLHMpe2lmKCFlKXJldHVybiBudWxsO3ZhciB1LGg9dGhpcy5fcGF0aC5nZXRQYXRoVmFsdWUoZSxuKTtpZihhKGgpfHxsKGgpKXJldHVybiBoO2lmKGYoaCkpe2lmKCFsKGUpKXJldHVybiBudWxsO2lmKHU9ZVtuXSwhYyh1KSYmIWQodSkpcmV0dXJuIG51bGx9ZWxzZXtpZighYyhoKSYmIWQoaCkpcmV0dXJuIG51bGw7dT1ofXJldHVybiBjKHUpJiYodS5pbmRleE9mKCJAOiIpPj0wfHx1LmluZGV4T2YoIkAuIik+PTApJiYodT10aGlzLl9saW5rKHQsZSx1LHIsInJhdyIsbyxzKSksdGhpcy5fcmVuZGVyKHUsaSxvLG4pfSxHLnByb3RvdHlwZS5fbGluaz1mdW5jdGlvbih0LGUsbixyLGksbyxzKXt2YXIgYz1uLHU9Yy5tYXRjaChVKTtmb3IodmFyIGwgaW4gdSlpZih1Lmhhc093blByb3BlcnR5KGwpKXt2YXIgZj11W2xdLGQ9Zi5tYXRjaChxKSxoPWRbMF0scD1kWzFdLGc9Zi5yZXBsYWNlKGgsIiIpLnJlcGxhY2UoeiwiIik7aWYodihzLGcpKXJldHVybiBjO3MucHVzaChnKTt2YXIgbT10aGlzLl9pbnRlcnBvbGF0ZSh0LGUsZyxyLCJyYXciPT09aT8ic3RyaW5nIjppLCJyYXciPT09aT92b2lkIDA6byxzKTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChtKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTt2YXIgYj10aGlzLl9yb290LiRpMThuO209Yi5fdHJhbnNsYXRlKGIuX2dldE1lc3NhZ2VzKCksYi5sb2NhbGUsYi5mYWxsYmFja0xvY2FsZSxnLHIsaSxvKX1tPXRoaXMuX3dhcm5EZWZhdWx0KHQsZyxtLHIsYShvKT9vOltvXSxpKSx0aGlzLl9tb2RpZmllcnMuaGFzT3duUHJvcGVydHkocCk/bT10aGlzLl9tb2RpZmllcnNbcF0obSk6WS5oYXNPd25Qcm9wZXJ0eShwKSYmKG09WVtwXShtKSkscy5wb3AoKSxjPW0/Yy5yZXBsYWNlKGYsbSk6Y31yZXR1cm4gY30sRy5wcm90b3R5cGUuX2NyZWF0ZU1lc3NhZ2VDb250ZXh0PWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPXRoaXMscz1hKHQpP3Q6W10sYz1vKHQpP3Q6e30sdT10aGlzLl9nZXRNZXNzYWdlcygpLGw9dGhpcy5sb2NhbGU7cmV0dXJue2xpc3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdF19LG5hbWVkOmZ1bmN0aW9uKHQpe3JldHVybiBjW3RdfSx2YWx1ZXM6dCxmb3JtYXR0ZXI6ZSxwYXRoOm4sbWVzc2FnZXM6dSxsb2NhbGU6bCxsaW5rZWQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkuX2ludGVycG9sYXRlKGwsdVtsXXx8e30sdCxudWxsLHIsdm9pZCAwLFt0XSl9fX0sRy5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbih0LGUsbixyKXtpZihkKHQpKXJldHVybiB0KHRoaXMuX2NyZWF0ZU1lc3NhZ2VDb250ZXh0KG4sdGhpcy5fZm9ybWF0dGVyfHxYLHIsZSkpO3ZhciBpPXRoaXMuX2Zvcm1hdHRlci5pbnRlcnBvbGF0ZSh0LG4scik7cmV0dXJuIGl8fChpPVguaW50ZXJwb2xhdGUodCxuLHIpKSwic3RyaW5nIiE9PWV8fGMoaSk/aTppLmpvaW4oIiIpfSxHLnByb3RvdHlwZS5fYXBwZW5kSXRlbVRvQ2hhaW49ZnVuY3Rpb24odCxlLG4pe3ZhciByPSExO3JldHVybiB2KHQsZSl8fChyPSEwLGUmJihyPSIhIiE9PWVbZS5sZW5ndGgtMV0sZT1lLnJlcGxhY2UoLyEvZywiIiksdC5wdXNoKGUpLG4mJm5bZV0mJihyPW5bZV0pKSkscn0sRy5wcm90b3R5cGUuX2FwcGVuZExvY2FsZVRvQ2hhaW49ZnVuY3Rpb24odCxlLG4pe3ZhciByLGk9ZS5zcGxpdCgiLSIpO2Rve3ZhciBhPWkuam9pbigiLSIpO3I9dGhpcy5fYXBwZW5kSXRlbVRvQ2hhaW4odCxhLG4pLGkuc3BsaWNlKC0xLDEpfXdoaWxlKGkubGVuZ3RoJiYhMD09PXIpO3JldHVybiByfSxHLnByb3RvdHlwZS5fYXBwZW5kQmxvY2tUb0NoYWluPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHI9ITAsaT0wO2k8ZS5sZW5ndGgmJnMocik7aSsrKXt2YXIgYT1lW2ldO2MoYSkmJihyPXRoaXMuX2FwcGVuZExvY2FsZVRvQ2hhaW4odCxhLG4pKX1yZXR1cm4gcn0sRy5wcm90b3R5cGUuX2dldExvY2FsZUNoYWluPWZ1bmN0aW9uKHQsZSl7aWYoIiI9PT10KXJldHVybltdO3RoaXMuX2xvY2FsZUNoYWluQ2FjaGV8fCh0aGlzLl9sb2NhbGVDaGFpbkNhY2hlPXt9KTt2YXIgbj10aGlzLl9sb2NhbGVDaGFpbkNhY2hlW3RdO2lmKCFuKXtlfHwoZT10aGlzLmZhbGxiYWNrTG9jYWxlKSxuPVtdO3ZhciByLGk9W3RdO3doaWxlKGEoaSkpaT10aGlzLl9hcHBlbmRCbG9ja1RvQ2hhaW4obixpLGUpO3I9YShlKT9lOm8oZSk/ZVsiZGVmYXVsdCJdP2VbImRlZmF1bHQiXTpudWxsOmUsaT1jKHIpP1tyXTpyLGkmJnRoaXMuX2FwcGVuZEJsb2NrVG9DaGFpbihuLGksbnVsbCksdGhpcy5fbG9jYWxlQ2hhaW5DYWNoZVt0XT1ufXJldHVybiBufSxHLnByb3RvdHlwZS5fdHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxuLHIsaSxhLG8pe2Zvcih2YXIgcyxjPXRoaXMuX2dldExvY2FsZUNoYWluKGUsbiksdT0wO3U8Yy5sZW5ndGg7dSsrKXt2YXIgbD1jW3VdO2lmKHM9dGhpcy5faW50ZXJwb2xhdGUobCx0W2xdLHIsaSxhLG8sW3JdKSwhZihzKSlyZXR1cm4gc31yZXR1cm4gbnVsbH0sRy5wcm90b3R5cGUuX3Q9ZnVuY3Rpb24odCxlLG4scil7dmFyIGksYT1bXSxvPWFyZ3VtZW50cy5sZW5ndGgtNDt3aGlsZShvLS0gPjApYVtvXT1hcmd1bWVudHNbbys0XTtpZighdClyZXR1cm4iIjt2YXIgcz1oLmFwcGx5KHZvaWQgMCxhKTt0aGlzLl9lc2NhcGVQYXJhbWV0ZXJIdG1sJiYocy5wYXJhbXM9XyhzLnBhcmFtcykpO3ZhciBjPXMubG9jYWxlfHxlLHU9dGhpcy5fdHJhbnNsYXRlKG4sYyx0aGlzLmZhbGxiYWNrTG9jYWxlLHQsciwic3RyaW5nIixzLnBhcmFtcyk7aWYodGhpcy5faXNGYWxsYmFja1Jvb3QodSkpe2lmKCF0aGlzLl9yb290KXRocm93IEVycm9yKCJ1bmV4cGVjdGVkIGVycm9yIik7cmV0dXJuKGk9dGhpcy5fcm9vdCkuJHQuYXBwbHkoaSxbdF0uY29uY2F0KGEpKX1yZXR1cm4gdT10aGlzLl93YXJuRGVmYXVsdChjLHQsdSxyLGEsInN0cmluZyIpLHRoaXMuX3Bvc3RUcmFuc2xhdGlvbiYmbnVsbCE9PXUmJnZvaWQgMCE9PXUmJih1PXRoaXMuX3Bvc3RUcmFuc2xhdGlvbih1LHQpKSx1fSxHLnByb3RvdHlwZS50PWZ1bmN0aW9uKHQpe3ZhciBlLG49W10scj1hcmd1bWVudHMubGVuZ3RoLTE7d2hpbGUoci0tID4wKW5bcl09YXJndW1lbnRzW3IrMV07cmV0dXJuKGU9dGhpcykuX3QuYXBwbHkoZSxbdCx0aGlzLmxvY2FsZSx0aGlzLl9nZXRNZXNzYWdlcygpLG51bGxdLmNvbmNhdChuKSl9LEcucHJvdG90eXBlLl9pPWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIGE9dGhpcy5fdHJhbnNsYXRlKG4sZSx0aGlzLmZhbGxiYWNrTG9jYWxlLHQsciwicmF3IixpKTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChhKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTtyZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5pKHQsZSxpKX1yZXR1cm4gdGhpcy5fd2FybkRlZmF1bHQoZSx0LGEscixbaV0sInJhdyIpfSxHLnByb3RvdHlwZS5pPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD8oYyhlKXx8KGU9dGhpcy5sb2NhbGUpLHRoaXMuX2kodCxlLHRoaXMuX2dldE1lc3NhZ2VzKCksbnVsbCxuKSk6IiJ9LEcucHJvdG90eXBlLl90Yz1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBhLG89W10scz1hcmd1bWVudHMubGVuZ3RoLTU7d2hpbGUocy0tID4wKW9bc109YXJndW1lbnRzW3MrNV07aWYoIXQpcmV0dXJuIiI7dm9pZCAwPT09aSYmKGk9MSk7dmFyIGM9e2NvdW50OmksbjppfSx1PWguYXBwbHkodm9pZCAwLG8pO3JldHVybiB1LnBhcmFtcz1PYmplY3QuYXNzaWduKGMsdS5wYXJhbXMpLG89bnVsbD09PXUubG9jYWxlP1t1LnBhcmFtc106W3UubG9jYWxlLHUucGFyYW1zXSx0aGlzLmZldGNoQ2hvaWNlKChhPXRoaXMpLl90LmFwcGx5KGEsW3QsZSxuLHJdLmNvbmNhdChvKSksaSl9LEcucHJvdG90eXBlLmZldGNoQ2hvaWNlPWZ1bmN0aW9uKHQsZSl7aWYoIXR8fCFjKHQpKXJldHVybiBudWxsO3ZhciBuPXQuc3BsaXQoInwiKTtyZXR1cm4gZT10aGlzLmdldENob2ljZUluZGV4KGUsbi5sZW5ndGgpLG5bZV0/bltlXS50cmltKCk6dH0sRy5wcm90b3R5cGUudGM9ZnVuY3Rpb24odCxlKXt2YXIgbixyPVtdLGk9YXJndW1lbnRzLmxlbmd0aC0yO3doaWxlKGktLSA+MClyW2ldPWFyZ3VtZW50c1tpKzJdO3JldHVybihuPXRoaXMpLl90Yy5hcHBseShuLFt0LHRoaXMubG9jYWxlLHRoaXMuX2dldE1lc3NhZ2VzKCksbnVsbCxlXS5jb25jYXQocikpfSxHLnByb3RvdHlwZS5fdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPVtdLGk9YXJndW1lbnRzLmxlbmd0aC0zO3doaWxlKGktLSA+MClyW2ldPWFyZ3VtZW50c1tpKzNdO3ZhciBhPWguYXBwbHkodm9pZCAwLHIpLmxvY2FsZXx8ZTtyZXR1cm4gdGhpcy5fZXhpc3QoblthXSx0KX0sRy5wcm90b3R5cGUudGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdGUodCx0aGlzLmxvY2FsZSx0aGlzLl9nZXRNZXNzYWdlcygpLGUpfSxHLnByb3RvdHlwZS5nZXRMb2NhbGVNZXNzYWdlPWZ1bmN0aW9uKHQpe3JldHVybiBwKHRoaXMuX3ZtLm1lc3NhZ2VzW3RdfHx7fSl9LEcucHJvdG90eXBlLnNldExvY2FsZU1lc3NhZ2U9ZnVuY3Rpb24odCxlKXsid2FybiIhPT10aGlzLl93YXJuSHRtbEluTWVzc2FnZSYmImVycm9yIiE9PXRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlfHx0aGlzLl9jaGVja0xvY2FsZU1lc3NhZ2UodCx0aGlzLl93YXJuSHRtbEluTWVzc2FnZSxlKSx0aGlzLl92bS4kc2V0KHRoaXMuX3ZtLm1lc3NhZ2VzLHQsZSl9LEcucHJvdG90eXBlLm1lcmdlTG9jYWxlTWVzc2FnZT1mdW5jdGlvbih0LGUpeyJ3YXJuIiE9PXRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlJiYiZXJyb3IiIT09dGhpcy5fd2Fybkh0bWxJbk1lc3NhZ2V8fHRoaXMuX2NoZWNrTG9jYWxlTWVzc2FnZSh0LHRoaXMuX3dhcm5IdG1sSW5NZXNzYWdlLGUpLHRoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubWVzc2FnZXMsdCxiKCJ1bmRlZmluZWQiIT09dHlwZW9mIHRoaXMuX3ZtLm1lc3NhZ2VzW3RdJiZPYmplY3Qua2V5cyh0aGlzLl92bS5tZXNzYWdlc1t0XSkubGVuZ3RoP09iamVjdC5hc3NpZ24oe30sdGhpcy5fdm0ubWVzc2FnZXNbdF0pOnt9LGUpKX0sRy5wcm90b3R5cGUuZ2V0RGF0ZVRpbWVGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHAodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzW3RdfHx7fSl9LEcucHJvdG90eXBlLnNldERhdGVUaW1lRm9ybWF0PWZ1bmN0aW9uKHQsZSl7dGhpcy5fdm0uJHNldCh0aGlzLl92bS5kYXRlVGltZUZvcm1hdHMsdCxlKSx0aGlzLl9jbGVhckRhdGVUaW1lRm9ybWF0KHQsZSl9LEcucHJvdG90eXBlLm1lcmdlRGF0ZVRpbWVGb3JtYXQ9ZnVuY3Rpb24odCxlKXt0aGlzLl92bS4kc2V0KHRoaXMuX3ZtLmRhdGVUaW1lRm9ybWF0cyx0LGIodGhpcy5fdm0uZGF0ZVRpbWVGb3JtYXRzW3RdfHx7fSxlKSksdGhpcy5fY2xlYXJEYXRlVGltZUZvcm1hdCh0LGUpfSxHLnByb3RvdHlwZS5fY2xlYXJEYXRlVGltZUZvcm1hdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbiBpbiBlKXt2YXIgcj10KyJfXyIrbjt0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkocikmJmRlbGV0ZSB0aGlzLl9kYXRlVGltZUZvcm1hdHRlcnNbcl19fSxHLnByb3RvdHlwZS5fbG9jYWxpemVEYXRlVGltZT1mdW5jdGlvbih0LGUsbixyLGksYSl7Zm9yKHZhciBvPWUscz1yW29dLGM9dGhpcy5fZ2V0TG9jYWxlQ2hhaW4oZSxuKSx1PTA7dTxjLmxlbmd0aDt1Kyspe3ZhciBsPWNbdV07aWYocz1yW2xdLG89bCwhZihzKSYmIWYoc1tpXSkpYnJlYWt9aWYoZihzKXx8ZihzW2ldKSlyZXR1cm4gbnVsbDt2YXIgZCxoPXNbaV07aWYoYSlkPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KG8sT2JqZWN0LmFzc2lnbih7fSxoLGEpKTtlbHNle3ZhciBwPW8rIl9fIitpO2Q9dGhpcy5fZGF0ZVRpbWVGb3JtYXR0ZXJzW3BdLGR8fChkPXRoaXMuX2RhdGVUaW1lRm9ybWF0dGVyc1twXT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChvLGgpKX1yZXR1cm4gZC5mb3JtYXQodCl9LEcucHJvdG90eXBlLl9kPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFuKXt2YXIgaT1yP25ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KGUscik6bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoZSk7cmV0dXJuIGkuZm9ybWF0KHQpfXZhciBhPXRoaXMuX2xvY2FsaXplRGF0ZVRpbWUodCxlLHRoaXMuZmFsbGJhY2tMb2NhbGUsdGhpcy5fZ2V0RGF0ZVRpbWVGb3JtYXRzKCksbixyKTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChhKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTtyZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5kKHQsbixlKX1yZXR1cm4gYXx8IiJ9LEcucHJvdG90eXBlLmQ9ZnVuY3Rpb24odCl7dmFyIGU9W10sbj1hcmd1bWVudHMubGVuZ3RoLTE7d2hpbGUobi0tID4wKWVbbl09YXJndW1lbnRzW24rMV07dmFyIGk9dGhpcy5sb2NhbGUsYT1udWxsLHM9bnVsbDtyZXR1cm4gMT09PWUubGVuZ3RoPyhjKGVbMF0pP2E9ZVswXTpvKGVbMF0pJiYoZVswXS5sb2NhbGUmJihpPWVbMF0ubG9jYWxlKSxlWzBdLmtleSYmKGE9ZVswXS5rZXkpKSxzPU9iamVjdC5rZXlzKGVbMF0pLnJlZHVjZSgoZnVuY3Rpb24odCxuKXt2YXIgaTtyZXR1cm4gdihyLG4pP09iamVjdC5hc3NpZ24oe30sdCwoaT17fSxpW25dPWVbMF1bbl0saSkpOnR9KSxudWxsKSk6Mj09PWUubGVuZ3RoJiYoYyhlWzBdKSYmKGE9ZVswXSksYyhlWzFdKSYmKGk9ZVsxXSkpLHRoaXMuX2QodCxpLGEscyl9LEcucHJvdG90eXBlLmdldE51bWJlckZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gcCh0aGlzLl92bS5udW1iZXJGb3JtYXRzW3RdfHx7fSl9LEcucHJvdG90eXBlLnNldE51bWJlckZvcm1hdD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZtLiRzZXQodGhpcy5fdm0ubnVtYmVyRm9ybWF0cyx0LGUpLHRoaXMuX2NsZWFyTnVtYmVyRm9ybWF0KHQsZSl9LEcucHJvdG90eXBlLm1lcmdlTnVtYmVyRm9ybWF0PWZ1bmN0aW9uKHQsZSl7dGhpcy5fdm0uJHNldCh0aGlzLl92bS5udW1iZXJGb3JtYXRzLHQsYih0aGlzLl92bS5udW1iZXJGb3JtYXRzW3RdfHx7fSxlKSksdGhpcy5fY2xlYXJOdW1iZXJGb3JtYXQodCxlKX0sRy5wcm90b3R5cGUuX2NsZWFyTnVtYmVyRm9ybWF0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpe3ZhciByPXQrIl9fIituO3RoaXMuX251bWJlckZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkocikmJmRlbGV0ZSB0aGlzLl9udW1iZXJGb3JtYXR0ZXJzW3JdfX0sRy5wcm90b3R5cGUuX2dldE51bWJlckZvcm1hdHRlcj1mdW5jdGlvbih0LGUsbixyLGksYSl7Zm9yKHZhciBvPWUscz1yW29dLGM9dGhpcy5fZ2V0TG9jYWxlQ2hhaW4oZSxuKSx1PTA7dTxjLmxlbmd0aDt1Kyspe3ZhciBsPWNbdV07aWYocz1yW2xdLG89bCwhZihzKSYmIWYoc1tpXSkpYnJlYWt9aWYoZihzKXx8ZihzW2ldKSlyZXR1cm4gbnVsbDt2YXIgZCxoPXNbaV07aWYoYSlkPW5ldyBJbnRsLk51bWJlckZvcm1hdChvLE9iamVjdC5hc3NpZ24oe30saCxhKSk7ZWxzZXt2YXIgcD1vKyJfXyIraTtkPXRoaXMuX251bWJlckZvcm1hdHRlcnNbcF0sZHx8KGQ9dGhpcy5fbnVtYmVyRm9ybWF0dGVyc1twXT1uZXcgSW50bC5OdW1iZXJGb3JtYXQobyxoKSl9cmV0dXJuIGR9LEcucHJvdG90eXBlLl9uPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKCFHLmF2YWlsYWJpbGl0aWVzLm51bWJlckZvcm1hdClyZXR1cm4iIjtpZighbil7dmFyIGk9cj9uZXcgSW50bC5OdW1iZXJGb3JtYXQoZSxyKTpuZXcgSW50bC5OdW1iZXJGb3JtYXQoZSk7cmV0dXJuIGkuZm9ybWF0KHQpfXZhciBhPXRoaXMuX2dldE51bWJlckZvcm1hdHRlcih0LGUsdGhpcy5mYWxsYmFja0xvY2FsZSx0aGlzLl9nZXROdW1iZXJGb3JtYXRzKCksbixyKSxvPWEmJmEuZm9ybWF0KHQpO2lmKHRoaXMuX2lzRmFsbGJhY2tSb290KG8pKXtpZighdGhpcy5fcm9vdCl0aHJvdyBFcnJvcigidW5leHBlY3RlZCBlcnJvciIpO3JldHVybiB0aGlzLl9yb290LiRpMThuLm4odCxPYmplY3QuYXNzaWduKHt9LHtrZXk6bixsb2NhbGU6ZX0scikpfXJldHVybiBvfHwiIn0sRy5wcm90b3R5cGUubj1mdW5jdGlvbih0KXt2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTt3aGlsZShyLS0gPjApZVtyXT1hcmd1bWVudHNbcisxXTt2YXIgaT10aGlzLmxvY2FsZSxhPW51bGwscz1udWxsO3JldHVybiAxPT09ZS5sZW5ndGg/YyhlWzBdKT9hPWVbMF06byhlWzBdKSYmKGVbMF0ubG9jYWxlJiYoaT1lWzBdLmxvY2FsZSksZVswXS5rZXkmJihhPWVbMF0ua2V5KSxzPU9iamVjdC5rZXlzKGVbMF0pLnJlZHVjZSgoZnVuY3Rpb24odCxyKXt2YXIgaTtyZXR1cm4gdihuLHIpP09iamVjdC5hc3NpZ24oe30sdCwoaT17fSxpW3JdPWVbMF1bcl0saSkpOnR9KSxudWxsKSk6Mj09PWUubGVuZ3RoJiYoYyhlWzBdKSYmKGE9ZVswXSksYyhlWzFdKSYmKGk9ZVsxXSkpLHRoaXMuX24odCxpLGEscyl9LEcucHJvdG90eXBlLl9udHA9ZnVuY3Rpb24odCxlLG4scil7aWYoIUcuYXZhaWxhYmlsaXRpZXMubnVtYmVyRm9ybWF0KXJldHVybltdO2lmKCFuKXt2YXIgaT1yP25ldyBJbnRsLk51bWJlckZvcm1hdChlLHIpOm5ldyBJbnRsLk51bWJlckZvcm1hdChlKTtyZXR1cm4gaS5mb3JtYXRUb1BhcnRzKHQpfXZhciBhPXRoaXMuX2dldE51bWJlckZvcm1hdHRlcih0LGUsdGhpcy5mYWxsYmFja0xvY2FsZSx0aGlzLl9nZXROdW1iZXJGb3JtYXRzKCksbixyKSxvPWEmJmEuZm9ybWF0VG9QYXJ0cyh0KTtpZih0aGlzLl9pc0ZhbGxiYWNrUm9vdChvKSl7aWYoIXRoaXMuX3Jvb3QpdGhyb3cgRXJyb3IoInVuZXhwZWN0ZWQgZXJyb3IiKTtyZXR1cm4gdGhpcy5fcm9vdC4kaTE4bi5fbnRwKHQsZSxuLHIpfXJldHVybiBvfHxbXX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRy5wcm90b3R5cGUsUSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEcsImF2YWlsYWJpbGl0aWVzIix7Z2V0OmZ1bmN0aW9uKCl7aWYoIUgpe3ZhciB0PSJ1bmRlZmluZWQiIT09dHlwZW9mIEludGw7SD17ZGF0ZVRpbWVGb3JtYXQ6dCYmInVuZGVmaW5lZCIhPT10eXBlb2YgSW50bC5EYXRlVGltZUZvcm1hdCxudW1iZXJGb3JtYXQ6dCYmInVuZGVmaW5lZCIhPT10eXBlb2YgSW50bC5OdW1iZXJGb3JtYXR9fXJldHVybiBIfX0pLEcuaW5zdGFsbD0kLEcudmVyc2lvbj0iOC4yOC4yIixlWyJkZWZhdWx0Il09R30uY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sYTk3NTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oImI3MjciKS5ldmVyeSxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiZXZlcnkiLChmdW5jdGlvbih0KXtyZXR1cm4gaShhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSxhOWFhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmVtaXQ9dm9pZCAwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJpbnZva2VDYWxsYmFja0hhbmRsZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLmludm9rZUNhbGxiYWNrSGFuZGxlcn19KSxlLm9uY2U9ZS5vbj1lLm9mZj12b2lkIDAsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInB1Ymxpc2hIYW5kbGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5wdWJsaXNoSGFuZGxlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicmVtb3ZlQ2FsbGJhY2tIYW5kbGVyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5yZW1vdmVDYWxsYmFja0hhbmRsZXJ9fSksZS5zdWJzY3JpYmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYygidmlldy4iK3QsZSl9LGUuc3Vic2NyaWJlSGFuZGxlcj1mdW5jdGlvbih0LGUsbil7MDtyZXR1cm4gZigidmlldy4iK3QsZSxuKX0sZS51bnN1YnNjcmliZT1mdW5jdGlvbih0LGUpe3JldHVybiB1KCJ2aWV3LiIrdCxlKX0sbigiOTlhZiIpLG4oImU5YzQiKTt2YXIgaT1yKG4oImUxNDMiKSksYT1uKCI0ZjFmIiksbz1uKCI5YTg5Iikscz1uZXcgaS5kZWZhdWx0LGM9cy4kb24uYmluZChzKTtlLm9uPWM7dmFyIHU9cy4kb2ZmLmJpbmQocyk7ZS5vZmY9dTt2YXIgbD1zLiRvbmNlLmJpbmQocyk7ZS5vbmNlPWw7dmFyIGY9cy4kZW1pdC5iaW5kKHMpO2UuZW1pdD1mfSxhOWUzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiODNhYiIpLGk9bigiZGE4NCIpLGE9bigiZTMzMCIpLG89bigiOTRjYSIpLHM9bigiY2IyZCIpLGM9bigiMWEyZCIpLHU9bigiNzE1NiIpLGw9bigiM2E5YiIpLGY9bigiZDliNSIpLGQ9bigiYzA0ZSIpLGg9bigiZDAzOSIpLHA9bigiMjQxYyIpLmYsdj1uKCIwNmNmIikuZixnPW4oIjliZjIiKS5mLG09bigiNDA4YSIpLGI9bigiNThhOCIpLnRyaW0seT1pWyJOdW1iZXIiXSxfPXkucHJvdG90eXBlLHc9aS5UeXBlRXJyb3IseD1hKCIiLnNsaWNlKSxTPWEoIiIuY2hhckNvZGVBdCksVD1mdW5jdGlvbih0KXt2YXIgZT1kKHQsIm51bWJlciIpO3JldHVybiJiaWdpbnQiPT10eXBlb2YgZT9lOkMoZSl9LEM9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksYSxvLHMsYyx1PWQodCwibnVtYmVyIik7aWYoZih1KSl0aHJvdyB3KCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51bWJlciIpO2lmKCJzdHJpbmciPT10eXBlb2YgdSYmdS5sZW5ndGg+MilpZih1PWIodSksZT1TKHUsMCksNDM9PT1lfHw0NT09PWUpe2lmKG49Uyh1LDIpLDg4PT09bnx8MTIwPT09bilyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1lKXtzd2l0Y2goUyh1LDEpKXtjYXNlIDY2OmNhc2UgOTg6cj0yLGk9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpyPTgsaT01NTticmVhaztkZWZhdWx0OnJldHVybit1fWZvcihhPXgodSwyKSxvPWEubGVuZ3RoLHM9MDtzPG87cysrKWlmKGM9UyhhLHMpLGM8NDh8fGM+aSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChhLHIpfXJldHVybit1fTtpZihvKCJOdW1iZXIiLCF5KCIgMG8xIil8fCF5KCIwYjEiKXx8eSgiKzB4MSIpKSl7Zm9yKHZhciBrLE89ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aDwxPzA6eShUKHQpKSxuPXRoaXM7cmV0dXJuIGwoXyxuKSYmaCgoZnVuY3Rpb24oKXttKG4pfSkpP3UoT2JqZWN0KGUpLG4sTyk6ZX0sRT1yP3AoeSk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04sTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLHBhcnNlRmxvYXQscGFyc2VJbnQsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxJPTA7RS5sZW5ndGg+STtJKyspYyh5LGs9RVtJXSkmJiFjKE8saykmJmcoTyxrLHYoeSxrKSk7Ty5wcm90b3R5cGU9XyxfLmNvbnN0cnVjdG9yPU8scyhpLCJOdW1iZXIiLE8se2NvbnN0cnVjdG9yOiEwfSl9fSxhYTFmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiODNhYiIpLGk9bigiZDAzOSIpLGE9bigiODI1YSIpLG89bigiN2M3MyIpLHM9bigiZTM5MSIpLGM9RXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLHU9aSgoZnVuY3Rpb24oKXtpZihyKXt2YXIgdD1vKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwibmFtZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzPT09dH19KSk7aWYoInRydWUiIT09Yy5jYWxsKHQpKXJldHVybiEwfXJldHVybiIyOiAxIiE9PWMuY2FsbCh7bWVzc2FnZToxLG5hbWU6Mn0pfHwiRXJyb3IiIT09Yy5jYWxsKHt9KX0pKTt0LmV4cG9ydHM9dT9mdW5jdGlvbigpe3ZhciB0PWEodGhpcyksZT1zKHQubmFtZSwiRXJyb3IiKSxuPXModC5tZXNzYWdlKTtyZXR1cm4gZT9uP2UrIjogIituOmU6bn06Y30sYWFjNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dC4kcm91dGU7dC5yb3V0ZT1uLm1ldGEucGFnZVBhdGgsdC5vcHRpb25zfHwodC5vcHRpb25zPWUpO3ZhciByPSgwLGkuaGFzT3duKShuLnBhcmFtcywiX19pZF9fIik/bi5wYXJhbXMuX19pZF9fOm4ubWV0YS5pZCxvPW4uZnVsbFBhdGg7bi5tZXRhLmlzRW50cnkmJi0xPT09by5pbmRleE9mKG4ubWV0YS5wYWdlUGF0aCkmJihvPSIvIituLm1ldGEucGFnZVBhdGgrby5yZXBsYWNlKCIvIiwiIikpO3QuX19wYWdlX189e2lkOnIscGF0aDpuLnBhdGgscm91dGU6bi5tZXRhLnBhZ2VQYXRoLGZ1bGxQYXRoOm8sb3B0aW9uczplLG1ldGE6T2JqZWN0LmFzc2lnbih7fSxuLm1ldGEpfTt2YXIgcz10LiRyb3V0ZXIuJGV2ZW50Q2hhbm5lbHx8bmV3IGEuZGVmYXVsdDt0LmdldE9wZW5lckV2ZW50Q2hhbm5lbD1mdW5jdGlvbigpe3JldHVybiBzfSx0LiR2bT10LHQuJHJvb3Q9dCx0LiRob2xkZXI9dC4kcGFyZW50LiRwYXJlbnQsdC4kbXA9e21wVHlwZToicGFnZSIscGFnZTp0LHF1ZXJ5Ont9LHN0YXR1czoiIn19LG4oImM5NzUiKSxuKCJhYzFmIiksbigiNTMxOSIpO3ZhciBpPW4oImRiNmEiKSxhPXIobigiNWUxMyIpKX0sYWIxMzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYjYyMiIpLGk9cigibWF0Y2giKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9Ly4vO3RyeXsiLy4vIlt0XShlKX1jYXRjaChuKXt0cnl7cmV0dXJuIGVbaV09ITEsIi8uLyJbdF0oZSl9Y2F0Y2gocil7fX1yZXR1cm4hMX19LGFiMzY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjg2MWQiKSxpPW4oIjkxMTIiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyKGUpJiYiY2F1c2UiaW4gZSYmaSh0LCJjYXVzZSIsZS5jYXVzZSl9fSxhYmY0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciByPTFlNSxpPXtuYW1lOiJSZXNpemVTZW5zb3IiLHByb3BzOntpbml0aWFsOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c2l6ZTp7d2lkdGg6LTEsaGVpZ2h0Oi0xfX19LHdhdGNoOntzaXplOntkZWVwOiEwLGhhbmRsZXI6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdCgicmVzaXplIixPYmplY3QuYXNzaWduKHt9LHQpKX19fSxtb3VudGVkOmZ1bmN0aW9uKCl7ITA9PT10aGlzLmluaXRpYWwmJnRoaXMuJG5leHRUaWNrKHRoaXMudXBkYXRlKSx0aGlzLiRlbC5vZmZzZXRQYXJlbnQhPT10aGlzLiRlbC5wYXJlbnROb2RlJiYodGhpcy4kZWwucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSwiQW5pbWF0aW9uRXZlbnQiaW4gd2luZG93fHx0aGlzLnJlc2V0KCl9LGFjdGl2YXRlZDpmdW5jdGlvbigpe3RoaXMucmVzZXQoKX0sbWV0aG9kczp7cmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRlbC5maXJzdENoaWxkO3Quc2Nyb2xsTGVmdD1yLHQuc2Nyb2xsVG9wPXI7dmFyIGU9dGhpcy4kZWwubGFzdENoaWxkO2Uuc2Nyb2xsTGVmdD1yLGUuc2Nyb2xsVG9wPXJ9LHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMuc2l6ZS53aWR0aD10aGlzLiRlbC5vZmZzZXRXaWR0aCx0aGlzLnNpemUuaGVpZ2h0PXRoaXMuJGVsLm9mZnNldEhlaWdodCx0aGlzLnJlc2V0KCl9fX07ZS5kZWZhdWx0PWl9LGFjMWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCI5MjYzIik7cih7dGFyZ2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDovLi8uZXhlYyE9PWl9LHtleGVjOml9KX0sYWNhNzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIwYTg3Iik7Zm9yKHZhciBpIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihpKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShpKTt2YXIgYT1uKCJmMGM1Iiksbz1PYmplY3QoYVsiYSJdKShyWyJkZWZhdWx0Il0sdm9pZCAwLHZvaWQgMCwhMSxudWxsLG51bGwsbnVsbCwhMSx2b2lkIDAsdm9pZCAwKTtlWyJkZWZhdWx0Il09by5leHBvcnRzfSxhY2FjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZTMzMCIpLGk9bigiNjk2NCIpLGE9bigiZjE4MyIpLmdldFdlYWtEYXRhLG89bigiMTlhYSIpLHM9bigiODI1YSIpLGM9bigiNzIzNCIpLHU9bigiODYxZCIpLGw9bigiMjI2NiIpLGY9bigiYjcyNyIpLGQ9bigiMWEyZCIpLGg9bigiNjlmMyIpLHA9aC5zZXQsdj1oLmdldHRlckZvcixnPWYuZmluZCxtPWYuZmluZEluZGV4LGI9cihbXS5zcGxpY2UpLHk9MCxfPWZ1bmN0aW9uKHQpe3JldHVybiB0LmZyb3plbnx8KHQuZnJvemVuPW5ldyB3KX0sdz1mdW5jdGlvbigpe3RoaXMuZW50cmllcz1bXX0seD1mdW5jdGlvbih0LGUpe3JldHVybiBnKHQuZW50cmllcywoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09PT1lfSkpfTt3LnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcyx0KTtpZihlKXJldHVybiBlWzFdfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF4KHRoaXMsdCl9LHNldDpmdW5jdGlvbih0LGUpe3ZhciBuPXgodGhpcyx0KTtuP25bMV09ZTp0aGlzLmVudHJpZXMucHVzaChbdCxlXSl9LGRlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1tKHRoaXMuZW50cmllcywoZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT10fSkpO3JldHVybn5lJiZiKHRoaXMuZW50cmllcyxlLDEpLCEhfmV9fSx0LmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBmPXQoKGZ1bmN0aW9uKHQsaSl7byh0LGgpLHAodCx7dHlwZTplLGlkOnkrKyxmcm96ZW46dm9pZCAwfSksYyhpKXx8bChpLHRbcl0se3RoYXQ6dCxBU19FTlRSSUVTOm59KX0pKSxoPWYucHJvdG90eXBlLGc9dihlKSxtPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1nKHQpLGk9YShzKGUpLCEwKTtyZXR1cm4hMD09PWk/XyhyKS5zZXQoZSxuKTppW3IuaWRdPW4sdH07cmV0dXJuIGkoaCx7ZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPWcodGhpcyk7aWYoIXUodCkpcmV0dXJuITE7dmFyIG49YSh0KTtyZXR1cm4hMD09PW4/XyhlKVsiZGVsZXRlIl0odCk6biYmZChuLGUuaWQpJiZkZWxldGUgbltlLmlkXX0saGFzOmZ1bmN0aW9uKHQpe3ZhciBlPWcodGhpcyk7aWYoIXUodCkpcmV0dXJuITE7dmFyIG49YSh0KTtyZXR1cm4hMD09PW4/XyhlKS5oYXModCk6biYmZChuLGUuaWQpfX0pLGkoaCxuP3tnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9Zyh0aGlzKTtpZih1KHQpKXt2YXIgbj1hKHQpO3JldHVybiEwPT09bj9fKGUpLmdldCh0KTpuP25bZS5pZF06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG0odGhpcyx0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gbSh0aGlzLHQsITApfX0pLGZ9fX0sYWNkODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiN2UxMiIpO3Ioe2dsb2JhbDohMCxmb3JjZWQ6cGFyc2VGbG9hdCE9aX0se3BhcnNlRmxvYXQ6aX0pfSxhY2U0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiNDYyNSIpLGE9bigiZDAzOSIpLG89bigiNjIxYSIpLHM9bigiODI1YSIpLGM9bigiMjNjYiIpLHU9bigiNTBjNCIpLGw9bigiNDg0MCIpLGY9by5BcnJheUJ1ZmZlcixkPW8uRGF0YVZpZXcsaD1kLnByb3RvdHlwZSxwPWkoZi5wcm90b3R5cGUuc2xpY2UpLHY9aShoLmdldFVpbnQ4KSxnPWkoaC5zZXRVaW50OCksbT1hKChmdW5jdGlvbigpe3JldHVybiFuZXcgZigyKS5zbGljZSgxLHZvaWQgMCkuYnl0ZUxlbmd0aH0pKTtyKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMCx1bnNhZmU6ITAsZm9yY2VkOm19LHtzbGljZTpmdW5jdGlvbih0LGUpe2lmKHAmJnZvaWQgMD09PWUpcmV0dXJuIHAocyh0aGlzKSx0KTt2YXIgbj1zKHRoaXMpLmJ5dGVMZW5ndGgscj1jKHQsbiksaT1jKHZvaWQgMD09PWU/bjplLG4pLGE9bmV3KGwodGhpcyxmKSkodShpLXIpKSxvPW5ldyBkKHRoaXMpLGg9bmV3IGQoYSksbT0wO3doaWxlKHI8aSlnKGgsbSsrLHYobyxyKyspKTtyZXR1cm4gYX19KX0sYWQ2ZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjgyNWEiKTt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1yKHRoaXMpLGU9IiI7cmV0dXJuIHQuaGFzSW5kaWNlcyYmKGUrPSJkIiksdC5nbG9iYWwmJihlKz0iZyIpLHQuaWdub3JlQ2FzZSYmKGUrPSJpIiksdC5tdWx0aWxpbmUmJihlKz0ibSIpLHQuZG90QWxsJiYoZSs9InMiKSx0LnVuaWNvZGUmJihlKz0idSIpLHQudW5pY29kZVNldHMmJihlKz0idiIpLHQuc3RpY2t5JiYoZSs9InkiKSxlfX0sYWRkYjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNGRhZSIpLGk9TWF0aC5mbG9vcixhPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5sZW5ndGgsYz1pKG4vMik7cmV0dXJuIG48OD9vKHQsZSk6cyh0LGEocih0LDAsYyksZSksYShyKHQsYyksZSksZSl9LG89ZnVuY3Rpb24odCxlKXt2YXIgbixyLGk9dC5sZW5ndGgsYT0xO3doaWxlKGE8aSl7cj1hLG49dFthXTt3aGlsZShyJiZlKHRbci0xXSxuKT4wKXRbcl09dFstLXJdO3IhPT1hKysmJih0W3JdPW4pfXJldHVybiB0fSxzPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBpPWUubGVuZ3RoLGE9bi5sZW5ndGgsbz0wLHM9MDt3aGlsZShvPGl8fHM8YSl0W28rc109bzxpJiZzPGE/cihlW29dLG5bc10pPD0wP2VbbysrXTpuW3MrK106bzxpP2VbbysrXTpuW3MrK107cmV0dXJuIHR9O3QuZXhwb3J0cz1hfSxhZGUzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUsbil7ZT0oMCxyLmRlZmF1bHQpKGUpLGUgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1uO3JldHVybiB0fSxuKCI3YTgyIik7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCJhMzhlIikpfSxhZTkzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHIsaSxhLG89bigiZDAzOSIpLHM9bigiMTYyNiIpLGM9bigiODYxZCIpLHU9bigiN2M3MyIpLGw9bigiZTE2MyIpLGY9bigiY2IyZCIpLGQ9bigiYjYyMiIpLGg9bigiYzQzMCIpLHA9ZCgiaXRlcmF0b3IiKSx2PSExO1tdLmtleXMmJihhPVtdLmtleXMoKSwibmV4dCJpbiBhPyhpPWwobChhKSksaSE9PU9iamVjdC5wcm90b3R5cGUmJihyPWkpKTp2PSEwKTt2YXIgZz0hYyhyKXx8bygoZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gcltwXS5jYWxsKHQpIT09dH0pKTtnP3I9e306aCYmKHI9dShyKSkscyhyW3BdKXx8ZihyLHAsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5leHBvcnRzPXtJdGVyYXRvclByb3RvdHlwZTpyLEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6dn19LGFlYjA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjliZjIiKS5mO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7biBpbiB0fHxyKHQsbix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlW25dfSxzZXQ6ZnVuY3Rpb24odCl7ZVtuXT10fX0pfX0sYWVkOTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODNhYiIpLGk9bigiZDAzOSIpO3QuZXhwb3J0cz1yJiZpKChmdW5jdGlvbigpe3JldHVybiA0MiE9T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKX0sYWYyMDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJjNzdiIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxhZjUwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9PSgwLHIuZGVmYXVsdCkodCl8fG51bGw9PT10KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgaT1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09KDAsci5kZWZhdWx0KShpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9LG4oIjgxNzIiKSxuKCJlZmVjIiksbigiYTRkMyIpLG4oImUwMWEiKSxuKCJkM2I3IiksbigiZDllMiIpLG4oImQ0MDEiKSxuKCJhOWUzIik7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCI1M2NhIikpfSxhZjU1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiBuKCJ0cmFuc2l0aW9uIix7YXR0cnM6e25hbWU6InVuaS1mYWRlIn19LFtuKCJ1bmktbW9kYWwiLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnZpc2libGUsZXhwcmVzc2lvbjoidmlzaWJsZSJ9XSxvbjp7dG91Y2htb3ZlOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX19fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1tYXNrIn0pLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbW9kYWwifSxbdC50aXRsZT9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLW1vZGFsX19oZCJ9LFtuKCJzdHJvbmciLHtzdGF0aWNDbGFzczoidW5pLW1vZGFsX190aXRsZSIsZG9tUHJvcHM6e3RleHRDb250ZW50OnQuX3ModC50aXRsZSl9fSldKTp0Ll9lKCksdC5lZGl0YWJsZT9uKCJ0ZXh0YXJlYSIse3JlZjoiZWRpdENvbnRlbnQiLHN0YXRpY0NsYXNzOiJ1bmktbW9kYWxfX3RleHRhcmVhIixhdHRyczp7cm93czoiMSIscGxhY2Vob2xkZXI6dC5wbGFjZWhvbGRlclRleHR9LGRvbVByb3BzOnt2YWx1ZTp0LmNvbnRlbnR9fSk6bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1tb2RhbF9fYmQiLGRvbVByb3BzOnt0ZXh0Q29udGVudDp0Ll9zKHQuY29udGVudCl9LG9uOnt0b3VjaG1vdmU6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX19fSksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1tb2RhbF9fZnQifSxbdC5zaG93Q2FuY2VsP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbW9kYWxfX2J0biB1bmktbW9kYWxfX2J0bl9kZWZhdWx0IixzdHlsZTp7Y29sb3I6dC5jYW5jZWxDb2xvcl99LG9uOntjbGljazpmdW5jdGlvbihlKXtyZXR1cm4gdC5fY2xvc2UoImNhbmNlbCIpfX19LFt0Ll92KCJcbiAgICAgICAgICAiK3QuX3ModC5jYW5jZWxUZXh0KSsiXG4gICAgICAgICIpXSk6dC5fZSgpLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktbW9kYWxfX2J0biB1bmktbW9kYWxfX2J0bl9wcmltYXJ5IixzdHlsZTp7Y29sb3I6dC5jb25maXJtQ29sb3J9LG9uOntjbGljazpmdW5jdGlvbihlKXtyZXR1cm4gdC5fY2xvc2UoImNvbmZpcm0iKX19fSxbdC5fdigiXG4gICAgICAgICAgIit0Ll9zKHQuY29uZmlybVRleHQpKyJcbiAgICAgICAgIildKV0pXSksbigia2V5cHJlc3MiLHthdHRyczp7ZGlzYWJsZTohdC52aXNpYmxlfSxvbjp7ZXNjOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9jbG9zZSgiY2FuY2VsIil9LGVudGVyOmZ1bmN0aW9uKGUpeyF0LmVkaXRhYmxlJiZ0Ll9jbG9zZSgiY29uZmlybSIpfX19KV0sMSldLDEpfSxpPVtdfSxhZjkwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt0LmJlaGF2aW9ycy5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1vW25dO3ImJnIuaW5pdCh0LGUpfSkpfSxuKCJkM2I3IiksbigiMTU5YiIpO3ZhciBpPXIobigiYWRlMyIpKSxhPXIobigiMWI3MSIpKSxvPSgwLGkuZGVmYXVsdCkoe30sYS5kZWZhdWx0Lm5hbWUsYS5kZWZhdWx0KX0sYjAxYjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCI4YTUwIiksaT17cmVxdWVzdENvbXBvbmVudEluZm86ci5yZXF1ZXN0Q29tcG9uZW50SW5mb307ZS5kZWZhdWx0PWl9LGIwNDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwMGVlIiksaT1uKCJmNWRmIik7dC5leHBvcnRzPXI/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK2kodGhpcykrIl0ifX0sYjI4NjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5iYXNlNjRUb0ZpbGU9byxlLmJsb2JUb0ZpbGU9cyxlLmZpbGVUb1VybD1jLGUuZ2V0RmlsZU5hbWU9ZnVuY3Rpb24odCl7dD10LnNwbGl0KCIjIilbMF0uc3BsaXQoIj8iKVswXTt2YXIgZT10LnNwbGl0KCIvIik7cmV0dXJuIGVbZS5sZW5ndGgtMV19LGUuZ2V0U2FtZU9yaWdpblVybD1mdW5jdGlvbih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYoZS5ocmVmPXQsZS5vcmlnaW49PT1sb2NhdGlvbi5vcmlnaW4pcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0KTtyZXR1cm4gYSh0KS50aGVuKGMpfSxlLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbih0KXsod2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCkucmV2b2tlT2JqZWN0VVJMKHQpLGRlbGV0ZSBpW3RdfSxlLnVybFRvRmlsZT1hLG4oImQzYjciKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oImQ5ZTIiKSxuKCJkNDAxIiksbigiNDY2ZCIpLG4oIjgxYjIiKSxuKCIwZWI2IiksbigiYjdlZiIpLG4oIjhiZDQiKSxuKCJhY2U0IiksbigiNWNjNiIpLG4oIjkwN2EiKSxuKCI5YThjIiksbigiYTk3NSIpLG4oIjczNWUiKSxuKCJjMWFjIiksbigiZDEzOSIpLG4oIjNhN2IiKSxuKCI5ODZhIiksbigiMWQwMiIpLG4oImQ1ZDYiKSxuKCI4MmY4IiksbigiZTkxZiIpLG4oIjYwYmQiKSxuKCI1Zjk2IiksbigiMzI4MCIpLG4oIjNmY2MiKSxuKCJjYTkxIiksbigiMjVhMSIpLG4oImNkMjYiKSxuKCIzYzVkIiksbigiMjk1NCIpLG4oIjY0OWUiKSxuKCIyMTljIiksbigiYjM5YSIpLG4oIjcyZjciKSxuKCI5OWFmIiksbigiM2NhMyIpLG4oImRkYjAiKSxuKCIyYjNkIiksbigiOTg2MSIpO3ZhciByPW4oImRiNmEiKSxpPXt9O2Z1bmN0aW9uIGEodCxlKXt2YXIgbj1pW3RdO3JldHVybiBuP1Byb21pc2UucmVzb2x2ZShuKTovXmRhdGE6W2Etei1dK1wvW2Etei1dKztiYXNlNjQsLy50ZXN0KHQpP1Byb21pc2UucmVzb2x2ZShvKHQpKTplP1Byb21pc2UucmVqZWN0KG5ldyBFcnJvcigibm90IGZpbmQiKSk6bmV3IFByb21pc2UoKGZ1bmN0aW9uKGUsbil7dmFyIHI9bmV3IFhNTEh0dHBSZXF1ZXN0O3Iub3BlbigiR0VUIix0LCEwKSxyLnJlc3BvbnNlVHlwZT0iYmxvYiIsci5vbmxvYWQ9ZnVuY3Rpb24oKXtlKHRoaXMucmVzcG9uc2UpfSxyLm9uZXJyb3I9bixyLnNlbmQoKX0pKX1mdW5jdGlvbiBvKHQpe3Q9dC5zcGxpdCgiLCIpO3ZhciBlPXRbMF0ubWF0Y2goLzooLio/KTsvKVsxXSxuPWF0b2IodFsxXSkscj1uLmxlbmd0aCxpPW5ldyBVaW50OEFycmF5KHIpO3doaWxlKHItLSlpW3JdPW4uY2hhckNvZGVBdChyKTtyZXR1cm4gcyhpLGUpfWZ1bmN0aW9uIHModCxlKXtpZighKHQgaW5zdGFuY2VvZiBGaWxlKSl7ZT1lfHx0LnR5cGV8fCIiO3ZhciBuPSIiLmNvbmNhdChEYXRlLm5vdygpKS5jb25jYXQoZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiLyIpWzFdO3JldHVybiBlPyIuIi5jb25jYXQoZSk6IiJ9KGUpKTt0cnl7dD1uZXcgRmlsZShbdF0sbix7dHlwZTplfSl9Y2F0Y2gocil7dD10IGluc3RhbmNlb2YgQmxvYj90Om5ldyBCbG9iKFt0XSx7dHlwZTplfSksdC5uYW1lPXQubmFtZXx8bn19cmV0dXJuIHR9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGUgaW4gaSlpZigoMCxyLmhhc093bikoaSxlKSl7dmFyIG49aVtlXTtpZihuPT09dClyZXR1cm4gZX12YXIgYT0od2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCkuY3JlYXRlT2JqZWN0VVJMKHQpO3JldHVybiBpW2FdPXQsYX19LGIzMzQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnBhZ2VTY3JvbGxUbz1mdW5jdGlvbihlKXt2YXIgbj1nZXRDdXJyZW50UGFnZXMoKTtuLmxlbmd0aCYmdC5wdWJsaXNoSGFuZGxlcigicGFnZVNjcm9sbFRvIixlLG5bbi5sZW5ndGgtMV0uJHBhZ2UuaWQpO3JldHVybnt9fX0pLmNhbGwodGhpcyxuKCJhOWFhIikpfSxiMzlhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZGE4NCIpLGk9bigiMmJhNCIpLGE9bigiZWJiNSIpLG89bigiZDAzOSIpLHM9bigiZjM2YSIpLGM9ci5JbnQ4QXJyYXksdT1hLmFUeXBlZEFycmF5LGw9YS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLGY9W10udG9Mb2NhbGVTdHJpbmcsZD0hIWMmJm8oKGZ1bmN0aW9uKCl7Zi5jYWxsKG5ldyBjKDEpKX0pKSxoPW8oKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IGMoWzEsMl0pLnRvTG9jYWxlU3RyaW5nKCl9KSl8fCFvKChmdW5jdGlvbigpe2MucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpO2woInRvTG9jYWxlU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gaShmLGQ/cyh1KHRoaXMpKTp1KHRoaXMpLHMoYXJndW1lbnRzKSl9KSxoKX0sYjQyZTpmdW5jdGlvbih0LGUpe3ZhciBuPU1hdGguY2VpbCxyPU1hdGguZmxvb3I7dC5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybihlPjA/cjpuKShlKX19LGI0NmY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0LGUpe2UuZ2V0QXBwO3ZhciBuPWUuZ2V0Q3VycmVudFBhZ2VzO2Z1bmN0aW9uIHIodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cj1wYXJzZUludChyKTt2YXIgaT1uKCksbz1pLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LiRwYWdlLmlkPT09cn0pKTtvJiYoMCxhLmNhbGxQYWdlSG9vaykobyx0LGUpfX12YXIgbz0oMCxpLmRlZmF1bHQpKCJyZXF1ZXN0Q29tcG9uZW50SW5mbyIpO3ZhciBzPSgwLGkuZGVmYXVsdCkoInJlcXVlc3RDb21wb25lbnRPYnNlcnZlciIpO3ZhciBjPSgwLGkuZGVmYXVsdCkoInJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXIiKTt0KCJvblBhZ2VSZWFkeSIscigib25SZWFkeSIpKTt0KCJvblBhZ2VTY3JvbGwiLHIoIm9uUGFnZVNjcm9sbCIpKSx0KCJvblJlYWNoQm90dG9tIixyKCJvblJlYWNoQm90dG9tIikpLHQoIm9uUmVxdWVzdENvbXBvbmVudEluZm8iLChmdW5jdGlvbih0KXt2YXIgZT10LnJlcUlkLG49dC5yZXMscj1vLnBvcChlKTtyJiZyKG4pfSkpLHQoIm9uUmVxdWVzdENvbXBvbmVudE9ic2VydmVyIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5yZXFJZCxuPXQucmVxRW5kLHI9dC5yZXMsaT1zLmdldChlKTtpZihpKXtpZihuKXJldHVybiB2b2lkIHMucG9wKGUpO2kocil9fSkpLHQoIm9uUmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIsKGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVxSWQsbj10LnJlcUVuZCxyPXQucmVzLGk9Yy5nZXQoZSk7aWYoaSl7aWYobilyZXR1cm4gdm9pZCBjLnBvcChlKTtpKHIpfX0pKX0sbigiZTI1ZSIpLG4oIjdkYjAiKSxuKCJkM2I3Iik7dmFyIGk9cihuKCJmZjIyIikpLGE9bigiNTU5YSIpfSxiNDc5OmZ1bmN0aW9uKHQpe3QuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVuaS5hcHAucXVpdCI6IuWGjeaMieS4gOasoemAgOWHuuW6lOeUqCIsInVuaS5hc3luYy5lcnJvciI6Iui/nuaOpeacjeWKoeWZqOi2heaXtu+8jOeCueWHu+Wxj+W5lemHjeivlSIsInVuaS5zaG93QWN0aW9uU2hlZXQuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dUb2FzdC51bnBhaXJlZCI6Iuivt+azqOaEjyBzaG93VG9hc3Qg5LiOIGhpZGVUb2FzdCDlv4XpobvphY3lr7nkvb/nlKgiLCJ1bmkuc2hvd0xvYWRpbmcudW5wYWlyZWQiOiLor7fms6jmhI8gc2hvd0xvYWRpbmcg5LiOIGhpZGVMb2FkaW5nIOW/hemhu+mFjeWvueS9v+eUqCIsInVuaS5zaG93TW9kYWwuY2FuY2VsIjoi5Y+W5raIIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoi56Gu5a6aIiwidW5pLmNob29zZUltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoi5LuO55u45YaM6YCJ5oupIiwidW5pLmNob29zZUltYWdlLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pGEIiwidW5pLmNob29zZVZpZGVvLmNhbmNlbCI6IuWPlua2iCIsInVuaS5jaG9vc2VWaWRlby5zb3VyY2VUeXBlLmFsYnVtIjoi5LuO55u45YaM6YCJ5oupIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoi5ouN5pGEIiwidW5pLmNob29zZUZpbGUubm90VXNlckFjdGl2YXRpb24iOiLmlofku7bpgInmi6nlmajlr7nor53moYblj6rog73lnKjnlLHnlKjmiLfmv4DmtLvml7bmmL7npLoiLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IuWPlua2iCIsInVuaS5wcmV2aWV3SW1hZ2UuYnV0dG9uLnNhdmUiOiLkv53lrZjlm77lg48iLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuc3VjY2VzcyI6IuS/neWtmOWbvuWDj+WIsOebuOWGjOaIkOWKnyIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5mYWlsIjoi5L+d5a2Y5Zu+5YOP5Yiw55u45YaM5aSx6LSlIiwidW5pLnNldENsaXBib2FyZERhdGEuc3VjY2VzcyI6IuWGheWuueW3suWkjeWItiIsInVuaS5zY2FuQ29kZS50aXRsZSI6IuaJq+eggSIsInVuaS5zY2FuQ29kZS5hbGJ1bSI6IuebuOWGjCIsInVuaS5zY2FuQ29kZS5mYWlsIjoi6K+G5Yir5aSx6LSlIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9uIjoi6L276Kem54Wn5LquIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9mZiI6Iui9u+inpuWFs+mXrSIsInVuaS5zdGFydFNvdGVyQXV0aGVudGljYXRpb24uYXV0aENvbnRlbnQiOiLmjIfnurnor4bliKvkuK0uLi4iLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50Ijoi5peg5rOV6K+G5YirIiwidW5pLnBpY2tlci5kb25lIjoi5a6M5oiQIiwidW5pLnBpY2tlci5jYW5jZWwiOiLlj5bmtogiLCJ1bmkudmlkZW8uZGFubXUiOiLlvLnluZUiLCJ1bmkudmlkZW8udm9sdW1lIjoi6Z+z6YePIiwidW5pLmJ1dHRvbi5mZWVkYmFjay50aXRsZSI6IumXrumimOWPjemmiCIsInVuaS5idXR0b24uZmVlZGJhY2suc2VuZCI6IuWPkemAgSIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiLmkJzntKLlnLDngrkiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoi5Y+W5raIIn0nKX0sYjRmODpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZDA2NiIpLGE9bigiMWEyZCIpLG89bigiNTc3ZSIpLHM9bigiNTY5MiIpLGM9bigiMGI0MyIpLHU9cygic3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeSIpLGw9cygic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeSIpO3Ioe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohY30se2ZvcjpmdW5jdGlvbih0KXt2YXIgZT1vKHQpO2lmKGEodSxlKSlyZXR1cm4gdVtlXTt2YXIgbj1pKCJTeW1ib2wiKShlKTtyZXR1cm4gdVtlXT1uLGxbbl09ZSxufX0pfSxiNTc1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLGEsbyxzLGMsdSxsLGY9bigiZGE4NCIpLGQ9bigiMDM2NiIpLGg9bigiMDZjZiIpLmYscD1uKCIyY2Y0Iikuc2V0LHY9bigiMWNkYyIpLGc9bigiZDRjMyIpLG09bigiYTRiNCIpLGI9bigiNjA1ZCIpLHk9Zi5NdXRhdGlvbk9ic2VydmVyfHxmLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsXz1mLmRvY3VtZW50LHc9Zi5wcm9jZXNzLHg9Zi5Qcm9taXNlLFM9aChmLCJxdWV1ZU1pY3JvdGFzayIpLFQ9UyYmUy52YWx1ZTtUfHwocj1mdW5jdGlvbigpe3ZhciB0LGU7YiYmKHQ9dy5kb21haW4pJiZ0LmV4aXQoKTt3aGlsZShpKXtlPWkuZm4saT1pLm5leHQ7dHJ5e2UoKX1jYXRjaChuKXt0aHJvdyBpP28oKTphPXZvaWQgMCxufX1hPXZvaWQgMCx0JiZ0LmVudGVyKCl9LHZ8fGJ8fG18fCF5fHwhXz8hZyYmeCYmeC5yZXNvbHZlPyh1PXgucmVzb2x2ZSh2b2lkIDApLHUuY29uc3RydWN0b3I9eCxsPWQodS50aGVuLHUpLG89ZnVuY3Rpb24oKXtsKHIpfSk6Yj9vPWZ1bmN0aW9uKCl7dy5uZXh0VGljayhyKX06KHA9ZChwLGYpLG89ZnVuY3Rpb24oKXtwKHIpfSk6KHM9ITAsYz1fLmNyZWF0ZVRleHROb2RlKCIiKSxuZXcgeShyKS5vYnNlcnZlKGMse2NoYXJhY3RlckRhdGE6ITB9KSxvPWZ1bmN0aW9uKCl7Yy5kYXRhPXM9IXN9KSksdC5leHBvcnRzPVR8fGZ1bmN0aW9uKHQpe3ZhciBlPXtmbjp0LG5leHQ6dm9pZCAwfTthJiYoYS5uZXh0PWUpLGl8fChpPWUsbygpKSxhPWV9fSxiNjIyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCI1NjkyIiksYT1uKCIxYTJkIiksbz1uKCI5MGUzIikscz1uKCIwNGY4IiksYz1uKCJmZGJmIiksdT1pKCJ3a3MiKSxsPXIuU3ltYm9sLGY9bCYmbFsiZm9yIl0sZD1jP2w6bCYmbC53aXRob3V0U2V0dGVyfHxvO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighYSh1LHQpfHwhcyYmInN0cmluZyIhPXR5cGVvZiB1W3RdKXt2YXIgZT0iU3ltYm9sLiIrdDtzJiZhKGwsdCk/dVt0XT1sW3RdOnVbdF09YyYmZj9mKGUpOmQoZSl9cmV0dXJuIHVbdF19fSxiNjM2OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJlMDY1Iik7cigiYXN5bmNJdGVyYXRvciIpfSxiNjRiOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCI3YjBiIiksYT1uKCJkZjc1Iiksbz1uKCJkMDM5Iikscz1vKChmdW5jdGlvbigpe2EoMSl9KSk7cih7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOnN9LHtrZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX0pfSxiNjVlOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wdWJsaXNoSGFuZGxlcj1mdW5jdGlvbihlLG4scil7dC5VbmlTZXJ2aWNlSlNCcmlkZ2Uuc3Vic2NyaWJlSGFuZGxlcihlLG4scil9fSkuY2FsbCh0aGlzLG4oImM4YmEiKSl9LGI2Yjc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImViYjUiKSxpPW4oIjQ4NDAiKSxhPXIuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixvPXIuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYShpKHQsbyh0KSkpfX0sYjcyNzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMDM2NiIpLGk9bigiZTMzMCIpLGE9bigiNDRhZCIpLG89bigiN2IwYiIpLHM9bigiMDdmYSIpLGM9bigiNjVmMCIpLHU9aShbXS5wdXNoKSxsPWZ1bmN0aW9uKHQpe3ZhciBlPTE9PXQsbj0yPT10LGk9Mz09dCxsPTQ9PXQsZj02PT10LGQ9Nz09dCxoPTU9PXR8fGY7cmV0dXJuIGZ1bmN0aW9uKHAsdixnLG0pe2Zvcih2YXIgYix5LF89byhwKSx3PWEoXykseD1yKHYsZyksUz1zKHcpLFQ9MCxDPW18fGMsaz1lP0MocCxTKTpufHxkP0MocCwwKTp2b2lkIDA7Uz5UO1QrKylpZigoaHx8VCBpbiB3KSYmKGI9d1tUXSx5PXgoYixULF8pLHQpKWlmKGUpa1tUXT15O2Vsc2UgaWYoeSlzd2l0Y2godCl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gYjtjYXNlIDY6cmV0dXJuIFQ7Y2FzZSAyOnUoayxiKX1lbHNlIHN3aXRjaCh0KXtjYXNlIDQ6cmV0dXJuITE7Y2FzZSA3OnUoayxiKX1yZXR1cm4gZj8tMTppfHxsP2w6a319O3QuZXhwb3J0cz17Zm9yRWFjaDpsKDApLG1hcDpsKDEpLGZpbHRlcjpsKDIpLHNvbWU6bCgzKSxldmVyeTpsKDQpLGZpbmQ6bCg1KSxmaW5kSW5kZXg6bCg2KSxmaWx0ZXJSZWplY3Q6bCg3KX19LGI3ZWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJkYTg0IiksYT1uKCJkMDY2Iiksbz1uKCI1YzZjIikscz1uKCI5YmYyIikuZixjPW4oIjFhMmQiKSx1PW4oIjE5YWEiKSxsPW4oIjcxNTYiKSxmPW4oImUzOTEiKSxkPW4oImNmOTgiKSxoPW4oIjBkMjYiKSxwPW4oIjgzYWIiKSx2PW4oImM0MzAiKSxnPWEoIkVycm9yIiksbT1hKCJET01FeGNlcHRpb24iKSxiPWZ1bmN0aW9uKCl7dSh0aGlzLHkpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1mKHQ8MT92b2lkIDA6YXJndW1lbnRzWzBdKSxuPWYodDwyP3ZvaWQgMDphcmd1bWVudHNbMV0sIkVycm9yIikscj1uZXcgbShlLG4pLGk9ZyhlKTtyZXR1cm4gaS5uYW1lPSJET01FeGNlcHRpb24iLHMociwic3RhY2siLG8oMSxoKGkuc3RhY2ssMSkpKSxsKHIsdGhpcyxiKSxyfSx5PWIucHJvdG90eXBlPW0ucHJvdG90eXBlLF89InN0YWNrImluIGcoIkRPTUV4Y2VwdGlvbiIpLHc9InN0YWNrImluIG5ldyBtKDEsMikseD1tJiZwJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIkRPTUV4Y2VwdGlvbiIpLFM9ISF4JiYhKHgud3JpdGFibGUmJnguY29uZmlndXJhYmxlKSxUPV8mJiFTJiYhdztyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOnZ8fFR9LHtET01FeGNlcHRpb246VD9iOm19KTt2YXIgQz1hKCJET01FeGNlcHRpb24iKSxrPUMucHJvdG90eXBlO2lmKGsuY29uc3RydWN0b3IhPT1DKWZvcih2YXIgTyBpbiB2fHxzKGssImNvbnN0cnVjdG9yIixvKDEsQykpLGQpaWYoYyhkLE8pKXt2YXIgRT1kW09dLEk9RS5zO2MoQyxJKXx8cyhDLEksbyg2LEUuYykpfX0sYjg5ZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIxZWYxIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxiOTE3OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIscj17fSxpPTA7aTw2NjtpKyspcltuLmNoYXJBdChpKV09aTt0LmV4cG9ydHM9e2l0b2M6bixjdG9pOnJ9fSxiOTgwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCI1YzZjIik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciB0PUVycm9yKCJhIik7cmV0dXJuISgic3RhY2siaW4gdCl8fChPYmplY3QuZGVmaW5lUHJvcGVydHkodCwic3RhY2siLGkoMSw3KSksNyE9PXQuc3RhY2spfSkpfSxiOTlmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnBpeGVsUmF0aW89dm9pZCAwLGUud3JhcHBlcj1mdW5jdGlvbih0KXt2YXIgZT0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3Qud2lkdGg9dC5vZmZzZXRXaWR0aCooZT9pOjEpLHQuaGVpZ2h0PXQub2Zmc2V0SGVpZ2h0KihlP2k6MSksdC5fX2hpZHBpX189ZSx0Ll9fY29udGV4dDJkX189dC5nZXRDb250ZXh0KCIyZCIpLHQuX19jb250ZXh0MmRfXy5fX2hpZHBpX189ZX0sbigiZmI2YSIpLG4oImQ4MWQiKSxuKCJhYzFmIiksbigiNTMxOSIpO3ZhciByPW4oImRiNmEiKSxpPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dC5oZWlnaHQ9dC53aWR0aD0wO3ZhciBlPXQuZ2V0Q29udGV4dCgiMmQiKSxuPWUuYmFja2luZ1N0b3JlUGl4ZWxSYXRpb3x8ZS53ZWJraXRCYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLm1vekJhY2tpbmdTdG9yZVBpeGVsUmF0aW98fGUubXNCYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLm9CYWNraW5nU3RvcmVQaXhlbFJhdGlvfHxlLmJhY2tpbmdTdG9yZVBpeGVsUmF0aW98fDE7cmV0dXJuKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvfHwxKS9ufSgpO2UucGl4ZWxSYXRpbz1pO3ZhciBhPUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5wcm90b3R5cGU7YS5kcmF3SW1hZ2VCeUNhbnZhcz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLHIsYSxvLHMsYyx1LGwsZil7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtuKj1pLHIqPWksYSo9aSxvKj1pLHMqPWksYyo9aSx1PWY/dSppOnUsbD1mP2wqaTpsLHQuY2FsbCh0aGlzLGUsbixyLGEsbyxzLGMsdSxsKX19KGEuZHJhd0ltYWdlKSwxIT09aSYmKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIHQpKDAsci5oYXNPd24pKHQsbikmJmUodFtuXSxuKX0oe2ZpbGxSZWN0OiJhbGwiLGNsZWFyUmVjdDoiYWxsIixzdHJva2VSZWN0OiJhbGwiLG1vdmVUbzoiYWxsIixsaW5lVG86ImFsbCIsYXJjOlswLDEsMl0sYXJjVG86ImFsbCIsYmV6aWVyQ3VydmVUbzoiYWxsIixpc1BvaW50aW5QYXRoOiJhbGwiLGlzUG9pbnRpblN0cm9rZToiYWxsIixxdWFkcmF0aWNDdXJ2ZVRvOiJhbGwiLHJlY3Q6ImFsbCIsdHJhbnNsYXRlOiJhbGwiLGNyZWF0ZVJhZGlhbEdyYWRpZW50OiJhbGwiLGNyZWF0ZUxpbmVhckdyYWRpZW50OiJhbGwiLHRyYW5zZm9ybTpbNCw1XSxzZXRUcmFuc2Zvcm06WzQsNV19LChmdW5jdGlvbih0LGUpe2FbZV09ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKCJhbGwiPT09dCluPW4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdCppfSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyluW3Rbcl1dKj1pO3JldHVybiBlLmFwcGx5KHRoaXMsbil9fShhW2VdKX0pKSxhLnN0cm9rZT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtpZighdGhpcy5fX2hpZHBpX18pcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMubGluZVdpZHRoKj1pLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMubGluZVdpZHRoLz1pfX0oYS5zdHJva2UpLGEuZmlsbFRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2VbMV0qPWksZVsyXSo9aSxlWzNdKj1pLGlzTmFOKGVbM10pJiYoZS5sZW5ndGg9Myk7dmFyIG49dGhpcy5fX2ZvbnRfX3x8dGhpcy5mb250O3RoaXMuZm9udD1uLnJlcGxhY2UoLyhcZCtcLj9cZCopKHB4fGVtfHJlbXxwdCkvZywoZnVuY3Rpb24odCxlLG4pe3JldHVybiBlKmkrbn0pKSx0LmFwcGx5KHRoaXMsZSksdGhpcy5mb250PW59fShhLmZpbGxUZXh0KSxhLnN0cm9rZVRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXRoaXMuX19oaWRwaV9fKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2VbMV0qPWksZVsyXSo9aSxlWzNdKj1pLGlzTmFOKGVbM10pJiYoZS5sZW5ndGg9Myk7dmFyIG49dGhpcy5fX2ZvbnRfX3x8dGhpcy5mb250O3RoaXMuZm9udD1uLnJlcGxhY2UoLyhcZCtcLj9cZCopKHB4fGVtfHJlbXxwdCkvZywoZnVuY3Rpb24odCxlLG4pe3JldHVybiBlKmkrbn0pKSx0LmFwcGx5KHRoaXMsZSksdGhpcy5mb250PW59fShhLnN0cm9rZVRleHQpLGEuZHJhd0ltYWdlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2lmKCF0aGlzLl9faGlkcGlfXylyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy5zY2FsZShpLGkpLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuc2NhbGUoMS9pLDEvaSl9fShhLmRyYXdJbWFnZSkpfSxiOWE5OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImJiMWUiKTtmb3IodmFyIGkgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGkpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGkpO3ZhciBhPW4oImYwYzUiKSxvPU9iamVjdChhWyJhIl0pKHJbImRlZmF1bHQiXSx2b2lkIDAsdm9pZCAwLCExLG51bGwsbnVsbCxudWxsLCExLHZvaWQgMCx2b2lkIDApO2VbImRlZmF1bHQiXT1vLmV4cG9ydHN9LGI5YjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe2lmKDA9PT10LmluZGV4T2YoIiMiKSl7dmFyIGU9dC5zdWJzdHIoMSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiEoIXQuY29tcG9uZW50SW5zdGFuY2V8fHQuY29tcG9uZW50SW5zdGFuY2UuaWQhPT1lKXx8ISghdC5kYXRhfHwhdC5kYXRhLmF0dHJzfHx0LmRhdGEuYXR0cnMuaWQhPT1lKX19aWYoMD09PXQuaW5kZXhPZigiLiIpKXt2YXIgbj10LnN1YnN0cigxKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YSYmZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiIiO2lmKGUpcmV0dXJuLTEhPT1lLnNwbGl0KGkpLmluZGV4T2YodCk7aWYobiYmInN0cmluZyI9PT10eXBlb2YgbilyZXR1cm4tMSE9PW4uc3BsaXQoaSkuaW5kZXhPZih0KX0obix0LmRhdGEuc3RhdGljQ2xhc3MsdC5kYXRhLmNsYXNzKX19fW4oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pbml0UG9seWZpbGw9ZnVuY3Rpb24odCl7dC5wcm90b3R5cGUuY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLHQpfSx0LnByb3RvdHlwZS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIodGhpcyx0KX0sdC5wcm90b3R5cGUuc2VsZWN0Q29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiB0KGUsbil7aWYobihlLiR2bm9kZXx8ZS5fdm5vZGUpKXJldHVybiBlO2Zvcih2YXIgcj1lLiRjaGlsZHJlbixpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXQocltpXSxuKTtpZihhKXJldHVybiBhfX0odGhpcyxyKHQpKX0sdC5wcm90b3R5cGUuc2VsZWN0QWxsQ29tcG9uZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gdChlLG4scil7bihlLiR2bm9kZXx8ZS5fdm5vZGUpJiZyLnB1c2goZSk7Zm9yKHZhciBpPWUuJGNoaWxkcmVuLGE9MDthPGkubGVuZ3RoO2ErKyl0KGlbYV0sbixyKTtyZXR1cm4gcn0odGhpcyxyKHQpLFtdKX19LG4oImM5NzUiKSxuKCJhYzFmIiksbigiMTI3NiIpLG4oIjE0ZDkiKTt2YXIgaT0vXHMrL30sYjliMWM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOWZkMSIpLGk9bigiZDVmYSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYmIxZTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIyNjZlIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxiYjJmOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5Iik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSkpfSxiYzk0OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNyZWF0ZVBhZ2VNaXhpbj1mdW5jdGlvbigpe3JldHVybntjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9KDAsaS5kZWNvZGVkUXVlcnkpKHRoaXMuJHJvdXRlLnF1ZXJ5KTsoMCxvLmRlZmF1bHQpKHRoaXMsdCksKDAsYS5jYWxsUGFnZUhvb2spKHRoaXMsIm9uTG9hZCIsdCksKDAsYS5jYWxsUGFnZUhvb2spKHRoaXMsIm9uU2hvdyIpfX19O3ZhciBpPW4oImRiNmEiKSxhPW4oIjU1OWEiKSxvPXIobigiYWFjNyIpKX0sYmNiZjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZjVkZiIpLGk9bigiZTMzMCIpLGE9aSgiIi5zbGljZSk7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJCaWciPT09YShyKHQpLDAsMyl9fSxiZTljOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciByO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5zZXRQdWxsRG93blJlZnJlc2hQYWdlSWQ9ZnVuY3Rpb24odCl7cj10fSxlLnN0YXJ0UHVsbERvd25SZWZyZXNoPWZ1bmN0aW9uKCl7ciYmdC5lbWl0KHIrIi5zdG9wUHVsbERvd25SZWZyZXNoIix7fSxyKTt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKTtlLmxlbmd0aCYmKHI9ZVtlLmxlbmd0aC0xXS4kcGFnZS5pZCx0LmVtaXQocisiLnN0YXJ0UHVsbERvd25SZWZyZXNoIix7fSxyKSk7cmV0dXJue319LGUuc3RvcFB1bGxEb3duUmVmcmVzaD1mdW5jdGlvbigpe2lmKHIpdC5lbWl0KHIrIi5zdG9wUHVsbERvd25SZWZyZXNoIix7fSxyKSxyPW51bGw7ZWxzZXt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKTtlLmxlbmd0aCYmKHI9ZVtlLmxlbmd0aC0xXS4kcGFnZS5pZCx0LmVtaXQocisiLnN0b3BQdWxsRG93blJlZnJlc2giLHt9LHIpKX1yZXR1cm57fX19KS5jYWxsKHRoaXMsbigiYTlhYSIpKX0sYmVlMjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlLG4pe2UmJmkodC5wcm90b3R5cGUsZSk7biYmaSh0LG4pO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fSxuKCI3YTgyIik7dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9fShuKCJhMzhlIikpO2Z1bmN0aW9uIGkodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCgwLHIuZGVmYXVsdCkoaS5rZXkpLGkpfX19LGJmZTY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS1wYWdlIix7YXR0cnM6eyJkYXRhLXBhZ2UiOnQuJHJvdXRlLm1ldGEucGFnZVBhdGh9fSxbIm5vbmUiIT09dC5uYXZpZ2F0aW9uQmFyLnR5cGU/bigicGFnZS1oZWFkIix0Ll9iKHt9LCJwYWdlLWhlYWQiLHQubmF2aWdhdGlvbkJhciwhMSkpOnQuX2UoKSx0LmVuYWJsZVB1bGxEb3duUmVmcmVzaD9uKCJwYWdlLXJlZnJlc2giLHtyZWY6InJlZnJlc2giLGF0dHJzOntjb2xvcjp0LnJlZnJlc2hPcHRpb25zLmNvbG9yLG9mZnNldDp0LnJlZnJlc2hPcHRpb25zLm9mZnNldH19KTp0Ll9lKCksdC5lbmFibGVQdWxsRG93blJlZnJlc2g/bigicGFnZS1ib2R5Iix7bmF0aXZlT246e3RvdWNoc3RhcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3RvdWNoc3RhcnQoZSl9LHRvdWNobW92ZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5fdG91Y2htb3ZlKGUpfSx0b3VjaGVuZDpmdW5jdGlvbihlKXtyZXR1cm4gdC5fdG91Y2hlbmQoZSl9LHRvdWNoY2FuY2VsOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll90b3VjaGVuZChlKX19fSxbdC5fdCgicGFnZSIpXSwyKTpuKCJwYWdlLWJvZHkiLFt0Ll90KCJwYWdlIildLDIpXSwxKX0saT1bXX0sYzA0ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzY1YiIpLGk9bigiODYxZCIpLGE9bigiZDliNSIpLG89bigiZGM0YSIpLHM9bigiNDg1YSIpLGM9bigiYjYyMiIpLHU9VHlwZUVycm9yLGw9YygidG9QcmltaXRpdmUiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighaSh0KXx8YSh0KSlyZXR1cm4gdDt2YXIgbixjPW8odCxsKTtpZihjKXtpZih2b2lkIDA9PT1lJiYoZT0iZGVmYXVsdCIpLG49cihjLHQsZSksIWkobil8fGEobikpcmV0dXJuIG47dGhyb3cgdSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxzKHQsZSl9fSxjMTVmOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldFBhZ2VIb2xkZXI9ZnVuY3Rpb24odCl7aWYodClyZXR1cm4gdC4kaG9sZGVyO3ZhciBlPWdldEN1cnJlbnRQYWdlcygpLG49ZS5sZW5ndGg7aWYobilyZXR1cm4gZVtuLTFdLiRob2xkZXJ9LGUuaXNDdXJyZW50UGFnZT1mdW5jdGlvbih0KXt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKSxuPWUubGVuZ3RoO2lmKG4pcmV0dXJuIGVbbi0xXS4kaG9sZGVyPT09dDtyZXR1cm4hMX19LGMxOWU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlLG4pe289ZSxvLiR2bT1lLG8uZ2xvYmFsRGF0YT1vLiRvcHRpb25zLmdsb2JhbERhdGF8fHt9LCgwLGkuaW5pdEFwcExvY2FsZSkodCxvKSwoMCxhLmRlZmF1bHQpKG8sbil9LGUuZ2V0QXBwPXMsZS5nZXRDdXJyZW50UGFnZXM9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxyPVtdLGk9cygpO2lmKCFpKXJldHVybiBuJiZ0LmVycm9yKCJhcHAgaXMgbm90IHJlYWR5IiksW107dmFyIGE9aS4kY2hpbGRyZW5bMF07aWYoYSYmYS4kY2hpbGRyZW4ubGVuZ3RoKXt2YXIgbz1hLiRjaGlsZHJlbi5maW5kKChmdW5jdGlvbih0KXtyZXR1cm4iVGFiQmFyIj09PXQuJG9wdGlvbnMubmFtZX0pKSxjPWEuJGNoaWxkcmVuLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiJMYXlvdXQiPT09dC4kb3B0aW9ucy5uYW1lfSkpO2MmJihhPWMpLGEuJGNoaWxkcmVuLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKG8hPT10JiZ0LiRjaGlsZHJlbi5sZW5ndGgmJiJQYWdlIj09PXQuJGNoaWxkcmVuWzBdLiRvcHRpb25zLm5hbWUmJnQuJGNoaWxkcmVuWzBdLiRzbG90cy5wYWdlKXt2YXIgbj10LiRjaGlsZHJlblswXS4kY2hpbGRyZW4uZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuIlBhZ2VCb2R5Ij09PXQuJG9wdGlvbnMubmFtZX0pKSxhPW4mJm4uJGNoaWxkcmVuLmZpbmQoKGZ1bmN0aW9uKHQpe3JldHVybiEhdC4kcGFnZX0pKTtpZihhKXt2YXIgcz0hMDshZSYmbyYmYS4kcGFnZSYmYS4kcGFnZS5tZXRhLmlzVGFiQmFyJiYoaS4kcm91dGUubWV0YSYmaS4kcm91dGUubWV0YS5pc1RhYkJhcj9pLiRyb3V0ZS5wYXRoIT09YS4kcGFnZS5wYXRoJiYocz0hMSk6by5fX3BhdGhfXyE9PWEuJHBhZ2UucGF0aCYmKHM9ITEpKSxzJiZyLnB1c2goYSl9fX0pKX12YXIgdT1yLmxlbmd0aDtpZih1PjEpe3ZhciBsPXJbdS0xXTtsLiRwYWdlLnBhdGghPT1pLiRyb3V0ZS5wYXRoJiZyLnNwbGljZSh1LTEsMSl9cmV0dXJuIHJ9LG4oIjdkYjAiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjE0ZDkiKSxuKCJhNDM0Iik7dmFyIGk9bigiODFlOCIpLGE9cihuKCI3NTUxIikpLG89ITE7ZnVuY3Rpb24gcygpe3JldHVybiBvfX0pLmNhbGwodGhpcyxuKCI1YTUyIilbImRlZmF1bHQiXSl9LGMxOWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJkYTg0IiksYT1uKCI2MjFhIiksbz1uKCIyNjI2Iikscz1hWyJBcnJheUJ1ZmZlciJdLGM9aVsiQXJyYXlCdWZmZXIiXTtyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOmMhPT1zfSx7QXJyYXlCdWZmZXI6c30pLG8oIkFycmF5QnVmZmVyIil9LGMxYWM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCJiNzI3IikuZmlsdGVyLGE9bigiMTQ0OCIpLG89ci5hVHlwZWRBcnJheSxzPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtzKCJmaWx0ZXIiLChmdW5jdGlvbih0KXt2YXIgZT1pKG8odGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIGEodGhpcyxlKX0pKX0sYzFkZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O24oIjk5YWYiKSxuKCIxNGQ5Iik7dmFyIGk9cihuKCJlMTQzIikpLGE9cihuKCJjMmIxNSIpKSxvPXIobigiMTcwZiIpKSxzPXIobigiYjlhOSIpKSxjPXIobigiZWEyNyIpKSx1PXIobigiNTI4YSIpKSxsPXIobigiOWFhOCIpKSxmPXIobigiMWI5YyIpKSxkPXIobigiNzdhMCIpKSxoPXIobigiODI5NCIpKSxwPXIobigiMzM3NyIpKSx2PXIobigiMTRjMiIpKSxnPXIobigiMzAxYiIpKSxtPXIobigiYWNhNyIpKSxiPXIobigiYjliMWMiKSkseT1yKG4oIjU1MDkiKSksXz1yKG4oIjhjZDAiKSksdz1yKG4oImMyYTUiKSkseD1yKG4oIjE4NzYiKSk7cy5kZWZhdWx0Lm5hbWU9IlZVbmlCdXR0b24iLHMuZGVmYXVsdC5taXhpbnM9cy5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LHMuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLHMuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQocy5kZWZhdWx0Lm5hbWUscy5kZWZhdWx0KSxjLmRlZmF1bHQubmFtZT0iVlVuaUNhbnZhcyIsYy5kZWZhdWx0Lm1peGlucz1jLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsYy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sYy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChjLmRlZmF1bHQubmFtZSxjLmRlZmF1bHQpLHUuZGVmYXVsdC5uYW1lPSJWVW5pSW1hZ2UiLHUuZGVmYXVsdC5taXhpbnM9dS5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LHUuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLHUuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQodS5kZWZhdWx0Lm5hbWUsdS5kZWZhdWx0KSxsLmRlZmF1bHQubmFtZT0iVlVuaUlucHV0IixsLmRlZmF1bHQubWl4aW5zPWwuZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCxsLmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSxsLmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KGwuZGVmYXVsdC5uYW1lLGwuZGVmYXVsdCksZi5kZWZhdWx0Lm5hbWU9IlZVbmlNb3ZhYmxlQXJlYSIsZi5kZWZhdWx0Lm1peGlucz1mLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsZi5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sZi5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChmLmRlZmF1bHQubmFtZSxmLmRlZmF1bHQpLGQuZGVmYXVsdC5uYW1lPSJWVW5pTW92YWJsZVZpZXciLGQuZGVmYXVsdC5taXhpbnM9ZC5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LGQuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLGQuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQoZC5kZWZhdWx0Lm5hbWUsZC5kZWZhdWx0KSxoLmRlZmF1bHQubmFtZT0iVlVuaVBpY2tlclZpZXciLGguZGVmYXVsdC5taXhpbnM9aC5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LGguZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLGguZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQoaC5kZWZhdWx0Lm5hbWUsaC5kZWZhdWx0KSxwLmRlZmF1bHQubmFtZT0iVlVuaVBpY2tlclZpZXdDb2x1bW4iLHAuZGVmYXVsdC5taXhpbnM9cC5kZWZhdWx0Lm1peGlucz9bXS5jb25jYXQoYS5kZWZhdWx0LHAuZGVmYXVsdC5taXhpbnMpOlthLmRlZmF1bHRdLHAuZGVmYXVsdC5taXhpbnMucHVzaChvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQocC5kZWZhdWx0Lm5hbWUscC5kZWZhdWx0KSx2LmRlZmF1bHQubmFtZT0iVlVuaVJlc2l6ZVNlbnNvciIsdi5kZWZhdWx0Lm1peGlucz12LmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsdi5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sdi5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh2LmRlZmF1bHQubmFtZSx2LmRlZmF1bHQpLGcuZGVmYXVsdC5uYW1lPSJWVW5pU2Nyb2xsVmlldyIsZy5kZWZhdWx0Lm1peGlucz1nLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsZy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sZy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChnLmRlZmF1bHQubmFtZSxnLmRlZmF1bHQpLG0uZGVmYXVsdC5uYW1lPSJWVW5pU3dpcGVyIixtLmRlZmF1bHQubWl4aW5zPW0uZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCxtLmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSxtLmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KG0uZGVmYXVsdC5uYW1lLG0uZGVmYXVsdCksYi5kZWZhdWx0Lm5hbWU9IlZVbmlTd2lwZXJJdGVtIixiLmRlZmF1bHQubWl4aW5zPWIuZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCxiLmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSxiLmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KGIuZGVmYXVsdC5uYW1lLGIuZGVmYXVsdCkseS5kZWZhdWx0Lm5hbWU9IlZVbmlUZXh0Iix5LmRlZmF1bHQubWl4aW5zPXkuZGVmYXVsdC5taXhpbnM/W10uY29uY2F0KGEuZGVmYXVsdCx5LmRlZmF1bHQubWl4aW5zKTpbYS5kZWZhdWx0XSx5LmRlZmF1bHQubWl4aW5zLnB1c2goby5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KHkuZGVmYXVsdC5uYW1lLHkuZGVmYXVsdCksXy5kZWZhdWx0Lm5hbWU9IlZVbmlUZXh0YXJlYSIsXy5kZWZhdWx0Lm1peGlucz1fLmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsXy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sXy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChfLmRlZmF1bHQubmFtZSxfLmRlZmF1bHQpLHcuZGVmYXVsdC5uYW1lPSJWVW5pVmlldyIsdy5kZWZhdWx0Lm1peGlucz13LmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQsdy5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0sdy5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh3LmRlZmF1bHQubmFtZSx3LmRlZmF1bHQpLHguZGVmYXVsdC5uYW1lPSJWVW5pV2ViVmlldyIseC5kZWZhdWx0Lm1peGlucz14LmRlZmF1bHQubWl4aW5zP1tdLmNvbmNhdChhLmRlZmF1bHQseC5kZWZhdWx0Lm1peGlucyk6W2EuZGVmYXVsdF0seC5kZWZhdWx0Lm1peGlucy5wdXNoKG8uZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh4LmRlZmF1bHQubmFtZSx4LmRlZmF1bHQpfSxjMjBkOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCJkMDM5IiksYT1uKCJlMzMwIiksbz1uKCI1NzdlIikscz1uKCI1OGE4IikudHJpbSxjPW4oIjU4OTkiKSx1PXIucGFyc2VJbnQsbD1yLlN5bWJvbCxmPWwmJmwuaXRlcmF0b3IsZD0vXlsrLV0/MHgvaSxoPWEoZC5leGVjKSxwPTghPT11KGMrIjA4Iil8fDIyIT09dShjKyIweDE2Iil8fGYmJiFpKChmdW5jdGlvbigpe3UoT2JqZWN0KGYpKX0pKTt0LmV4cG9ydHM9cD9mdW5jdGlvbih0LGUpe3ZhciBuPXMobyh0KSk7cmV0dXJuIHUobixlPj4+MHx8KGgoZCxuKT8xNjoxMCkpfTp1fSxjMmE1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImNmMTUiKSxpPW4oIjlmNDgiKTtmb3IodmFyIGEgaW4gaSlbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGlbdF19KSl9KGEpO3ZhciBvPW4oImYwYzUiKSxzPU9iamVjdChvWyJhIl0pKGlbImRlZmF1bHQiXSxyWyJiIl0sclsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLHJbImEiXSx2b2lkIDApO2VbImRlZmF1bHQiXT1zLmV4cG9ydHN9LGMyYjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiMzE1MiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sYzJiMTU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIGk9cihuKCJmMWNhIikpLGE9bigiMmNhMyIpLG89e21ldGhvZHM6eyRnZXRSZWFsUGF0aDpmdW5jdGlvbih0KXtyZXR1cm4gdD8oMCxpLmRlZmF1bHQpKHQpOnR9LCR0cmlnZ2VyOmZ1bmN0aW9uKHQsZSxuKXt0aGlzLiRlbWl0KHQsYS5wcm9jZXNzRXZlbnQuY2FsbCh0aGlzLHQsZSxuLHRoaXMuJGVsLHRoaXMuJGVsKSl9fX07ZS5kZWZhdWx0PW99LGMyZTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNWRhZiIpLGk9bigiM2UyNCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYzM4MTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJlNTc0IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxjM2FiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCJhOWUzIiksbigiYWMxZiIpLG4oIjAwYjQiKTt2YXIgaT1yKG4oImM3ZmYiKSksYT1uKCJkYjZhIiksbz1uKCI2NGZlIikscz1mdW5jdGlvbigpe3ZhciB0PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07cmV0dXJuISFhLnN1cHBvcnRzUGFzc2l2ZSYme3Bhc3NpdmU6dH19LGM9cygpLHU9e25hbWU6IlNjcm9sbFZpZXciLG1peGluczpbaS5kZWZhdWx0XSxwcm9wczp7c2Nyb2xsWDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHNjcm9sbFk6e3R5cGU6W0Jvb2xlYW4sU3RyaW5nXSxkZWZhdWx0OiExfSx1cHBlclRocmVzaG9sZDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDo1MH0sbG93ZXJUaHJlc2hvbGQ6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6NTB9LHNjcm9sbFRvcDp7dHlwZTpbTnVtYmVyLFN0cmluZ10sZGVmYXVsdDowfSxzY3JvbGxMZWZ0Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjB9LHNjcm9sbEludG9WaWV3Ont0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxzY3JvbGxXaXRoQW5pbWF0aW9uOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0sZW5hYmxlQmFja1RvVG9wOnt0eXBlOltCb29sZWFuLFN0cmluZ10sZGVmYXVsdDohMX0scmVmcmVzaGVyRW5hYmxlZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9LHJlZnJlc2hlclRocmVzaG9sZDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo0NX0scmVmcmVzaGVyRGVmYXVsdFN0eWxlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJiYWNrIn0scmVmcmVzaGVyQmFja2dyb3VuZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LHJlZnJlc2hlclRyaWdnZXJlZDp7dHlwZTpbQm9vbGVhbixTdHJpbmddLGRlZmF1bHQ6ITF9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2xhc3RTY3JvbGxUb3A6dGhpcy5zY3JvbGxUb3BOdW1iZXIsbGFzdFNjcm9sbExlZnQ6dGhpcy5zY3JvbGxMZWZ0TnVtYmVyLGxhc3RTY3JvbGxUb1VwcGVyVGltZTowLGxhc3RTY3JvbGxUb0xvd2VyVGltZTowLHJlZnJlc2hlckhlaWdodDowLHJlZnJlc2hSb3RhdGU6MCxyZWZyZXNoU3RhdGU6IiJ9fSxjb21wdXRlZDp7dXBwZXJUaHJlc2hvbGROdW1iZXI6ZnVuY3Rpb24oKXt2YXIgdD1OdW1iZXIodGhpcy51cHBlclRocmVzaG9sZCk7cmV0dXJuIGlzTmFOKHQpPzUwOnR9LGxvd2VyVGhyZXNob2xkTnVtYmVyOmZ1bmN0aW9uKCl7dmFyIHQ9TnVtYmVyKHRoaXMubG93ZXJUaHJlc2hvbGQpO3JldHVybiBpc05hTih0KT81MDp0fSxzY3JvbGxUb3BOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyKHRoaXMuc2Nyb2xsVG9wKXx8MH0sc2Nyb2xsTGVmdE51bWJlcjpmdW5jdGlvbigpe3JldHVybiBOdW1iZXIodGhpcy5zY3JvbGxMZWZ0KXx8MH19LHdhdGNoOntzY3JvbGxUb3BOdW1iZXI6ZnVuY3Rpb24odCl7dGhpcy5fc2Nyb2xsVG9wQ2hhbmdlZCh0KX0sc2Nyb2xsTGVmdE51bWJlcjpmdW5jdGlvbih0KXt0aGlzLl9zY3JvbGxMZWZ0Q2hhbmdlZCh0KX0sc2Nyb2xsSW50b1ZpZXc6ZnVuY3Rpb24odCl7dGhpcy5fc2Nyb2xsSW50b1ZpZXdDaGFuZ2VkKHQpfSxyZWZyZXNoZXJUcmlnZ2VyZWQ6ZnVuY3Rpb24odCl7ITA9PT10P3RoaXMuX3NldFJlZnJlc2hTdGF0ZSgicmVmcmVzaGluZyIpOiExPT09dCYmdGhpcy5fc2V0UmVmcmVzaFN0YXRlKCJyZXN0b3JlIil9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPW51bGwsbj1udWxsO3RoaXMuX2F0dGFjaGVkPSEwLHRoaXMudG9VcHBlck51bWJlcj0wLHRoaXMudHJpZ2dlckFib3J0PSExLHRoaXMuYmVmb3JlUmVmcmVzaGluZz0hMSx0aGlzLl9zY3JvbGxUb3BDaGFuZ2VkKHRoaXMuc2Nyb2xsVG9wTnVtYmVyKSx0aGlzLl9zY3JvbGxMZWZ0Q2hhbmdlZCh0aGlzLnNjcm9sbExlZnROdW1iZXIpLHRoaXMuX3Njcm9sbEludG9WaWV3Q2hhbmdlZCh0aGlzLnNjcm9sbEludG9WaWV3KSx0aGlzLl9faGFuZGxlU2Nyb2xsPWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHQuX2hhbmRsZVNjcm9sbC5iaW5kKHQsZSkoKX0sdGhpcy5fX2hhbmRsZVRvdWNoTW92ZT1mdW5jdGlvbihyKXtpZihudWxsIT09ZSl7dmFyIGk9ci50b3VjaGVzWzBdLnBhZ2VYLGE9ci50b3VjaGVzWzBdLnBhZ2VZLG89dC4kcmVmcy5tYWluO2lmKE1hdGguYWJzKGktZS54KT5NYXRoLmFicyhhLWUueSkpaWYodC5zY3JvbGxYKXtpZigwPT09by5zY3JvbGxMZWZ0JiZpPmUueClyZXR1cm4gdm9pZChuPSExKTtpZihvLnNjcm9sbFdpZHRoPT09by5vZmZzZXRXaWR0aCtvLnNjcm9sbExlZnQmJmk8ZS54KXJldHVybiB2b2lkKG49ITEpO249ITB9ZWxzZSBuPSExO2Vsc2UgaWYodC5zY3JvbGxZKWlmKDA9PT1vLnNjcm9sbFRvcCYmYT5lLnkpbj0hMSx0LnJlZnJlc2hlckVuYWJsZWQmJiExIT09ci5jYW5jZWxhYmxlJiZyLnByZXZlbnREZWZhdWx0KCk7ZWxzZXtpZihvLnNjcm9sbEhlaWdodD09PW8ub2Zmc2V0SGVpZ2h0K28uc2Nyb2xsVG9wJiZhPGUueSlyZXR1cm4gdm9pZChuPSExKTtuPSEwfWVsc2Ugbj0hMTtpZihuJiZyLnN0b3BQcm9wYWdhdGlvbigpLDA9PT1vLnNjcm9sbFRvcCYmMT09PXIudG91Y2hlcy5sZW5ndGgmJih0LnJlZnJlc2hTdGF0ZT0icHVsbGluZyIpLHQucmVmcmVzaGVyRW5hYmxlZCYmInB1bGxpbmciPT09dC5yZWZyZXNoU3RhdGUpe3ZhciBzPWEtZS55OzA9PT10LnRvVXBwZXJOdW1iZXImJih0LnRvVXBwZXJOdW1iZXI9YSksdC5iZWZvcmVSZWZyZXNoaW5nPyh0LnJlZnJlc2hlckhlaWdodD1zK3QucmVmcmVzaGVyVGhyZXNob2xkLHQudHJpZ2dlckFib3J0PSExKToodC5yZWZyZXNoZXJIZWlnaHQ9YS10LnRvVXBwZXJOdW1iZXIsdC5yZWZyZXNoZXJIZWlnaHQ+MCYmKHQudHJpZ2dlckFib3J0PSEwLHQuJHRyaWdnZXIoInJlZnJlc2hlcnB1bGxpbmciLHIse2RlbHRhWTpzfSkpKTt2YXIgYz10LnJlZnJlc2hlckhlaWdodC90LnJlZnJlc2hlclRocmVzaG9sZDt0LnJlZnJlc2hSb3RhdGU9MzYwKihjPjE/MTpjKX19fSx0aGlzLl9faGFuZGxlVG91Y2hTdGFydD1mdW5jdGlvbih0KXsxPT09dC50b3VjaGVzLmxlbmd0aCYmKCgwLG8uZGlzYWJsZVNjcm9sbEJvdW5jZSkoe2Rpc2FibGU6ITB9KSxlPXt4OnQudG91Y2hlc1swXS5wYWdlWCx5OnQudG91Y2hlc1swXS5wYWdlWX0pfSx0aGlzLl9faGFuZGxlVG91Y2hFbmQ9ZnVuY3Rpb24obil7ZT1udWxsLCgwLG8uZGlzYWJsZVNjcm9sbEJvdW5jZSkoe2Rpc2FibGU6ITF9KSx0LnJlZnJlc2hlckhlaWdodD49dC5yZWZyZXNoZXJUaHJlc2hvbGQ/dC5fc2V0UmVmcmVzaFN0YXRlKCJyZWZyZXNoaW5nIik6dC5fc2V0UmVmcmVzaFN0YXRlKCJyZWZyZXNoZXJhYm9ydCIpfSx0aGlzLiRyZWZzLm1haW4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fX2hhbmRsZVRvdWNoU3RhcnQsYyksdGhpcy4kcmVmcy5tYWluLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fX2hhbmRsZVRvdWNoTW92ZSxzKCExKSksdGhpcy4kcmVmcy5tYWluLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5fX2hhbmRsZVNjcm9sbCxzKCExKSksdGhpcy4kcmVmcy5tYWluLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9faGFuZGxlVG91Y2hFbmQsYyksKDAsby5pbml0U2Nyb2xsQm91bmNlKSgpfSxhY3RpdmF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbFkmJih0aGlzLiRyZWZzLm1haW4uc2Nyb2xsVG9wPXRoaXMubGFzdFNjcm9sbFRvcCksdGhpcy5zY3JvbGxYJiYodGhpcy4kcmVmcy5tYWluLnNjcm9sbExlZnQ9dGhpcy5sYXN0U2Nyb2xsTGVmdCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLm1haW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fX2hhbmRsZVRvdWNoU3RhcnQsYyksdGhpcy4kcmVmcy5tYWluLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5fX2hhbmRsZVRvdWNoTW92ZSxjKSx0aGlzLiRyZWZzLm1haW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9faGFuZGxlU2Nyb2xsLHMoITEpKSx0aGlzLiRyZWZzLm1haW4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX19oYW5kbGVUb3VjaEVuZCxjKX0sbWV0aG9kczp7c2Nyb2xsVG86ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLiRyZWZzLm1haW47dDwwP3Q9MDoieCI9PT1lJiZ0Pm4uc2Nyb2xsV2lkdGgtbi5vZmZzZXRXaWR0aD90PW4uc2Nyb2xsV2lkdGgtbi5vZmZzZXRXaWR0aDoieSI9PT1lJiZ0Pm4uc2Nyb2xsSGVpZ2h0LW4ub2Zmc2V0SGVpZ2h0JiYodD1uLnNjcm9sbEhlaWdodC1uLm9mZnNldEhlaWdodCk7dmFyIHI9MCxpPSIiOyJ4Ij09PWU/cj1uLnNjcm9sbExlZnQtdDoieSI9PT1lJiYocj1uLnNjcm9sbFRvcC10KSwwIT09ciYmKHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0Iix0aGlzLiRyZWZzLmNvbnRlbnQuc3R5bGUud2Via2l0VHJhbnNpdGlvbj0iLXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2Utb3V0IiwieCI9PT1lP2k9InRyYW5zbGF0ZVgoIityKyJweCkgdHJhbnNsYXRlWigwKSI6InkiPT09ZSYmKGk9InRyYW5zbGF0ZVkoIityKyJweCkgdHJhbnNsYXRlWigwKSIpLHRoaXMuJHJlZnMuY29udGVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLl9fdHJhbnNpdGlvbkVuZCksdGhpcy4kcmVmcy5jb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHRoaXMuX190cmFuc2l0aW9uRW5kKSx0aGlzLl9fdHJhbnNpdGlvbkVuZD10aGlzLl90cmFuc2l0aW9uRW5kLmJpbmQodGhpcyx0LGUpLHRoaXMuJHJlZnMuY29udGVudC5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0aGlzLl9fdHJhbnNpdGlvbkVuZCksdGhpcy4kcmVmcy5jb250ZW50LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLHRoaXMuX190cmFuc2l0aW9uRW5kKSwieCI9PT1lP24uc3R5bGUub3ZlcmZsb3dYPSJoaWRkZW4iOiJ5Ij09PWUmJihuLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIiksdGhpcy4kcmVmcy5jb250ZW50LnN0eWxlLnRyYW5zZm9ybT1pLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS53ZWJraXRUcmFuc2Zvcm09aSl9LF9oYW5kbGVUcmFjazpmdW5jdGlvbih0KXtpZigic3RhcnQiPT09dC5kZXRhaWwuc3RhdGUpcmV0dXJuIHRoaXMuX3g9dC5kZXRhaWwueCx0aGlzLl95PXQuZGV0YWlsLnksdm9pZCh0aGlzLl9ub0J1YmJsZT1udWxsKTsiZW5kIj09PXQuZGV0YWlsLnN0YXRlJiYodGhpcy5fbm9CdWJibGU9ITEpLG51bGw9PT10aGlzLl9ub0J1YmJsZSYmdGhpcy5zY3JvbGxZJiYoTWF0aC5hYnModGhpcy5feS10LmRldGFpbC55KS9NYXRoLmFicyh0aGlzLl94LXQuZGV0YWlsLngpPjE/dGhpcy5fbm9CdWJibGU9ITA6dGhpcy5fbm9CdWJibGU9ITEpLG51bGw9PT10aGlzLl9ub0J1YmJsZSYmdGhpcy5zY3JvbGxYJiYoTWF0aC5hYnModGhpcy5feC10LmRldGFpbC54KS9NYXRoLmFicyh0aGlzLl95LXQuZGV0YWlsLnkpPjE/dGhpcy5fbm9CdWJibGU9ITA6dGhpcy5fbm9CdWJibGU9ITEpLHRoaXMuX3g9dC5kZXRhaWwueCx0aGlzLl95PXQuZGV0YWlsLnksdGhpcy5fbm9CdWJibGUmJnQuc3RvcFByb3BhZ2F0aW9uKCl9LF9oYW5kbGVTY3JvbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQ7dGhpcy4kdHJpZ2dlcigic2Nyb2xsIix0LHtzY3JvbGxMZWZ0OmUuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6ZS5zY3JvbGxUb3Asc2Nyb2xsSGVpZ2h0OmUuc2Nyb2xsSGVpZ2h0LHNjcm9sbFdpZHRoOmUuc2Nyb2xsV2lkdGgsZGVsdGFYOnRoaXMubGFzdFNjcm9sbExlZnQtZS5zY3JvbGxMZWZ0LGRlbHRhWTp0aGlzLmxhc3RTY3JvbGxUb3AtZS5zY3JvbGxUb3B9KSx0aGlzLnNjcm9sbFkmJihlLnNjcm9sbFRvcDw9dGhpcy51cHBlclRocmVzaG9sZE51bWJlciYmdGhpcy5sYXN0U2Nyb2xsVG9wLWUuc2Nyb2xsVG9wPjAmJnQudGltZVN0YW1wLXRoaXMubGFzdFNjcm9sbFRvVXBwZXJUaW1lPjIwMCYmKHRoaXMuJHRyaWdnZXIoInNjcm9sbHRvdXBwZXIiLHQse2RpcmVjdGlvbjoidG9wIn0pLHRoaXMubGFzdFNjcm9sbFRvVXBwZXJUaW1lPXQudGltZVN0YW1wKSxlLnNjcm9sbFRvcCtlLm9mZnNldEhlaWdodCt0aGlzLmxvd2VyVGhyZXNob2xkTnVtYmVyPj1lLnNjcm9sbEhlaWdodCYmdGhpcy5sYXN0U2Nyb2xsVG9wLWUuc2Nyb2xsVG9wPDAmJnQudGltZVN0YW1wLXRoaXMubGFzdFNjcm9sbFRvTG93ZXJUaW1lPjIwMCYmKHRoaXMuJHRyaWdnZXIoInNjcm9sbHRvbG93ZXIiLHQse2RpcmVjdGlvbjoiYm90dG9tIn0pLHRoaXMubGFzdFNjcm9sbFRvTG93ZXJUaW1lPXQudGltZVN0YW1wKSksdGhpcy5zY3JvbGxYJiYoZS5zY3JvbGxMZWZ0PD10aGlzLnVwcGVyVGhyZXNob2xkTnVtYmVyJiZ0aGlzLmxhc3RTY3JvbGxMZWZ0LWUuc2Nyb2xsTGVmdD4wJiZ0LnRpbWVTdGFtcC10aGlzLmxhc3RTY3JvbGxUb1VwcGVyVGltZT4yMDAmJih0aGlzLiR0cmlnZ2VyKCJzY3JvbGx0b3VwcGVyIix0LHtkaXJlY3Rpb246ImxlZnQifSksdGhpcy5sYXN0U2Nyb2xsVG9VcHBlclRpbWU9dC50aW1lU3RhbXApLGUuc2Nyb2xsTGVmdCtlLm9mZnNldFdpZHRoK3RoaXMubG93ZXJUaHJlc2hvbGROdW1iZXI+PWUuc2Nyb2xsV2lkdGgmJnRoaXMubGFzdFNjcm9sbExlZnQtZS5zY3JvbGxMZWZ0PDAmJnQudGltZVN0YW1wLXRoaXMubGFzdFNjcm9sbFRvTG93ZXJUaW1lPjIwMCYmKHRoaXMuJHRyaWdnZXIoInNjcm9sbHRvbG93ZXIiLHQse2RpcmVjdGlvbjoicmlnaHQifSksdGhpcy5sYXN0U2Nyb2xsVG9Mb3dlclRpbWU9dC50aW1lU3RhbXApKSx0aGlzLmxhc3RTY3JvbGxUb3A9ZS5zY3JvbGxUb3AsdGhpcy5sYXN0U2Nyb2xsTGVmdD1lLnNjcm9sbExlZnR9LF9zY3JvbGxUb3BDaGFuZ2VkOmZ1bmN0aW9uKHQpe3RoaXMuc2Nyb2xsWSYmKHRoaXMuX2lubmVyU2V0U2Nyb2xsVG9wP3RoaXMuX2lubmVyU2V0U2Nyb2xsVG9wPSExOnRoaXMuc2Nyb2xsV2l0aEFuaW1hdGlvbj90aGlzLnNjcm9sbFRvKHQsInkiKTp0aGlzLiRyZWZzLm1haW4uc2Nyb2xsVG9wPXQpfSxfc2Nyb2xsTGVmdENoYW5nZWQ6ZnVuY3Rpb24odCl7dGhpcy5zY3JvbGxYJiYodGhpcy5faW5uZXJTZXRTY3JvbGxMZWZ0P3RoaXMuX2lubmVyU2V0U2Nyb2xsTGVmdD0hMTp0aGlzLnNjcm9sbFdpdGhBbmltYXRpb24/dGhpcy5zY3JvbGxUbyh0LCJ4Iik6dGhpcy4kcmVmcy5tYWluLnNjcm9sbExlZnQ9dCl9LF9zY3JvbGxJbnRvVmlld0NoYW5nZWQ6ZnVuY3Rpb24oZSl7aWYoZSl7aWYoIS9eW19hLXpBLVpdWy1fYS16QS1aMC05Ol0qJC8udGVzdChlKSlyZXR1cm4gdm9pZCB0LmVycm9yKCJpZCBlcnJvcjogc2Nyb2xsLWludG8tdmlldz0iLmNvbmNhdChlKSk7dmFyIG49dGhpcy4kZWwucXVlcnlTZWxlY3RvcigiIyIrZSk7aWYobil7dmFyIHI9dGhpcy4kcmVmcy5tYWluLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih0aGlzLnNjcm9sbFgpe3ZhciBhPWkubGVmdC1yLmxlZnQsbz10aGlzLiRyZWZzLm1haW4uc2Nyb2xsTGVmdCxzPW8rYTt0aGlzLnNjcm9sbFdpdGhBbmltYXRpb24/dGhpcy5zY3JvbGxUbyhzLCJ4Iik6dGhpcy4kcmVmcy5tYWluLnNjcm9sbExlZnQ9c31pZih0aGlzLnNjcm9sbFkpe3ZhciBjPWkudG9wLXIudG9wLHU9dGhpcy4kcmVmcy5tYWluLnNjcm9sbFRvcCxsPXUrYzt0aGlzLnNjcm9sbFdpdGhBbmltYXRpb24/dGhpcy5zY3JvbGxUbyhsLCJ5Iik6dGhpcy4kcmVmcy5tYWluLnNjcm9sbFRvcD1sfX19fSxfdHJhbnNpdGlvbkVuZDpmdW5jdGlvbih0LGUpe3RoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2l0aW9uPSIiLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS53ZWJraXRUcmFuc2l0aW9uPSIiLHRoaXMuJHJlZnMuY29udGVudC5zdHlsZS50cmFuc2Zvcm09IiIsdGhpcy4kcmVmcy5jb250ZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybT0iIjt2YXIgbj10aGlzLiRyZWZzLm1haW47IngiPT09ZT8obi5zdHlsZS5vdmVyZmxvd1g9dGhpcy5zY3JvbGxYPyJhdXRvIjoiaGlkZGVuIixuLnNjcm9sbExlZnQ9dCk6InkiPT09ZSYmKG4uc3R5bGUub3ZlcmZsb3dZPXRoaXMuc2Nyb2xsWT8iYXV0byI6ImhpZGRlbiIsbi5zY3JvbGxUb3A9dCksdGhpcy4kcmVmcy5jb250ZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHRoaXMuX190cmFuc2l0aW9uRW5kKSx0aGlzLiRyZWZzLmNvbnRlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsdGhpcy5fX3RyYW5zaXRpb25FbmQpfSxfc2V0UmVmcmVzaFN0YXRlOmZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlInJlZnJlc2hpbmciOnRoaXMucmVmcmVzaGVySGVpZ2h0PXRoaXMucmVmcmVzaGVyVGhyZXNob2xkLHRoaXMuYmVmb3JlUmVmcmVzaGluZ3x8KHRoaXMuYmVmb3JlUmVmcmVzaGluZz0hMCx0aGlzLiR0cmlnZ2VyKCJyZWZyZXNoZXJyZWZyZXNoIix7fSx7fSkpO2JyZWFrO2Nhc2UicmVzdG9yZSI6Y2FzZSJyZWZyZXNoZXJhYm9ydCI6dGhpcy5iZWZvcmVSZWZyZXNoaW5nPSExLHRoaXMucmVmcmVzaGVySGVpZ2h0PXRoaXMudG9VcHBlck51bWJlcj0wLCJyZXN0b3JlIj09PXQmJih0aGlzLnRyaWdnZXJBYm9ydD0hMSx0aGlzLiR0cmlnZ2VyKCJyZWZyZXNoZXJyZXN0b3JlIix7fSx7fSkpLCJyZWZyZXNoZXJhYm9ydCI9PT10JiZ0aGlzLnRyaWdnZXJBYm9ydCYmKHRoaXMudHJpZ2dlckFib3J0PSExLHRoaXMuJHRyaWdnZXIoInJlZnJlc2hlcmFib3J0Iix7fSx7fSkpO2JyZWFrfXRoaXMucmVmcmVzaFN0YXRlPXR9LGdldFNjcm9sbFBvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5tYWluO3JldHVybntzY3JvbGxMZWZ0OnQuc2Nyb2xsTGVmdCxzY3JvbGxUb3A6dC5zY3JvbGxUb3Asc2Nyb2xsSGVpZ2h0OnQuc2Nyb2xsSGVpZ2h0LHNjcm9sbFdpZHRoOnQuc2Nyb2xsV2lkdGh9fX19O2UuZGVmYXVsdD11fSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sYzQzMDpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz0hMX0sYzRmZTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5nZXRMb2NhbGU9ZnVuY3Rpb24oKXt2YXIgdD1nZXRBcHAoe2FsbG93RGVmYXVsdDohMH0pO2lmKHQmJnQuJHZtKXJldHVybiB0LiR2bS4kbG9jYWxlO3JldHVybiBpLmkxOG4uZ2V0TG9jYWxlKCl9LGUub25Mb2NhbGVDaGFuZ2U9ZnVuY3Rpb24odCl7by5wdXNoKHQpfSxlLnNldExvY2FsZT1mdW5jdGlvbih0KXt2YXIgZT1nZXRBcHAoKS4kdm0uJGxvY2FsZTtpZihlIT09dCl7cmV0dXJuIGdldEFwcCgpLiR2bS4kbG9jYWxlPXQsbmF2aWdhdG9yLmNvb2tpZUVuYWJsZWQmJndpbmRvdy5sb2NhbFN0b3JhZ2UmJihsb2NhbFN0b3JhZ2VbYS5VTklfU1RPUkFHRV9MT0NBTEVdPXQpLG8uZm9yRWFjaCgoZnVuY3Rpb24oZSl7KDAsci5pbnZva2UpKGUse2xvY2FsZTp0fSl9KSksITB9cmV0dXJuITF9LG4oImQzYjciKSxuKCIxNTliIiksbigiMTRkOSIpO3ZhciByPW4oIjczMjkiKSxpPW4oIjgxZTgiKSxhPW4oIjBmYmUiKTt2YXIgbz1bXX0sYzUxMzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiMWEyZCIpLGE9bigiZDliNSIpLG89bigiMGQ1MSIpLHM9bigiNTY5MiIpLGM9bigiMGI0MyIpLHU9cygic3ltYm9sLXRvLXN0cmluZy1yZWdpc3RyeSIpO3Ioe3RhcmdldDoiU3ltYm9sIixzdGF0OiEwLGZvcmNlZDohY30se2tleUZvcjpmdW5jdGlvbih0KXtpZighYSh0KSl0aHJvdyBUeXBlRXJyb3Iobyh0KSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKGkodSx0KSlyZXR1cm4gdVt0XX19KX0sYzU1ODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS51bmk9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIik7dmFyIGk9cihuKCI5ODNlIikpLGE9bigiNGYxZiIpLG89bigiYTVlMCIpLHM9cihuKCI4MzMwIikpLGM9T2JqZWN0LmNyZWF0ZShudWxsKTtlLnVuaT1jLGkuZGVmYXVsdC5mb3JFYWNoKChmdW5jdGlvbih0KXtzLmRlZmF1bHRbdF0/Y1t0XT0oMCxvLnByb21pc2lmeSkodCwoMCxhLndyYXBwZXIpKHQscy5kZWZhdWx0W3RdKSk6Y1t0XT0oMCxhLndyYXBwZXJVbmltcGxlbWVudGVkKSh0KX0pKX0sYzVjMzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5vbmNlPWUub249ZS5vZmY9ZS5lbWl0PXZvaWQgMCxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHVibGlzaEhhbmRsZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLnB1Ymxpc2hIYW5kbGVyfX0pLGUuc3Vic2NyaWJlPWQsZS5zdWJzY3JpYmVIYW5kbGVyPWZ1bmN0aW9uKHQsZSxuKXswO2YoInNlcnZpY2UuIit0LGUsbil9LGUudW5zdWJzY3JpYmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdSgic2VydmljZS4iK3QsZSl9LG4oIjk5YWYiKSxuKCJlOWM0Iik7dmFyIGk9cihuKCJlMTQzIikpLGE9cihuKCI4MjVmIikpLG89bigiYjY1ZSIpLHM9bmV3IGkuZGVmYXVsdCxjPXMuJG9uLmJpbmQocyk7ZS5vbj1jO3ZhciB1PXMuJG9mZi5iaW5kKHMpO2Uub2ZmPXU7dmFyIGw9cy4kb25jZS5iaW5kKHMpO2Uub25jZT1sO3ZhciBmPXMuJGVtaXQuYmluZChzKTtmdW5jdGlvbiBkKHQsZSl7cmV0dXJuIGMoInNlcnZpY2UuIit0LGUpfWUuZW1pdD1mLCgwLGEuZGVmYXVsdCkoZCl9LGM2MDc6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjgzYWIiKSxpPW4oImZjZTMiKSxhPW4oImM2YjYiKSxvPW4oImVkZDAiKSxzPW4oIjY5ZjMiKS5nZXQsYz1SZWdFeHAucHJvdG90eXBlLHU9VHlwZUVycm9yO3ImJmkmJm8oYywiZG90QWxsIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKHRoaXMhPT1jKXtpZigiUmVnRXhwIj09PWEodGhpcykpcmV0dXJuISFzKHRoaXMpLmRvdEFsbDt0aHJvdyB1KCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFJlZ0V4cCByZXF1aXJlZCIpfX19KX0sYzY1YjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNDBkNSIpLGk9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7dC5leHBvcnRzPXI/aS5iaW5kKGkpOmZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkoaSxhcmd1bWVudHMpfX0sYzZiNjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9cih7fS50b1N0cmluZyksYT1yKCIiLnNsaWNlKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEoaSh0KSw4LC0xKX19LGM2YzI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCJlMjVlIik7dmFyIGksYT1yKG4oImUxNDMiKSksbz1uKCJkYjZhIikscz1uKCIwZmJlIiksYz1bInRvcCIsImxlZnQiLCJyaWdodCJdLHU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Z1bmN0aW9uIGwodCxlKXtpfHwoaT11LnN0eWxlKSxpLnNldFByb3BlcnR5KHQsZSl9dmFyIGY9e25hbWU6IkxheW91dCIscHJvcHM6e3JvdXRlcktleTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sa2VlcEFsaXZlSW5jbHVkZTp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttYXJnaW5XaWR0aDowLGxlZnRXaW5kb3dTdHlsZToiIixyaWdodFdpbmRvd1N0eWxlOiIiLHRvcFdpbmRvd1N0eWxlOiIiLHRvcFdpbmRvd01lZGlhUXVlcnk6ITEsbGVmdFdpbmRvd01lZGlhUXVlcnk6ITEscmlnaHRXaW5kb3dNZWRpYVF1ZXJ5OiExLHRvcFdpbmRvd0hlaWdodDoiMHB4IixhcGlTaG93VG9wV2luZG93OiExLGFwaVNob3dMZWZ0V2luZG93OiExLGFwaVNob3dSaWdodFdpbmRvdzohMSxuYXZpZ2F0aW9uQmFyVGl0bGVUZXh0OiIiLG1heFdpZHRoTWVpZGFRdWVyeTohMX19LGNvbXB1dGVkOntiaW5kV2luZG93OmZ1bmN0aW9uKCl7cmV0dXJue21hdGNoVG9wV2luZG93OnRoaXMudG9wV2luZG93TWVkaWFRdWVyeSxzaG93VG9wV2luZG93OnRoaXMuc2hvd1RvcFdpbmRvd3x8dGhpcy5hcGlTaG93VG9wV2luZG93LG1hdGNoTGVmdFdpbmRvdzp0aGlzLmxlZnRXaW5kb3dNZWRpYVF1ZXJ5LHNob3dMZWZ0V2luZG93OnRoaXMuc2hvd0xlZnRXaW5kb3d8fHRoaXMuYXBpU2hvd0xlZnRXaW5kb3csbWF0Y2hSaWdodFdpbmRvdzp0aGlzLnJpZ2h0V2luZG93TWVkaWFRdWVyeSxzaG93UmlnaHRXaW5kb3c6dGhpcy5zaG93UmlnaHRXaW5kb3d8fHRoaXMuYXBpU2hvd1JpZ2h0V2luZG93fX0sc2hvd0xheW91dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dUb3BXaW5kb3d8fHRoaXMuc2hvd0xlZnRXaW5kb3d8fHRoaXMuc2hvd1JpZ2h0V2luZG93fSxzaG93VG9wV2luZG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzZXRBcGlTaG93V2luZG93KCksITEhPT10aGlzLiRyb3V0ZS5tZXRhLnRvcFdpbmRvdyYmdGhpcy50b3BXaW5kb3dNZWRpYVF1ZXJ5fSxzaG93TGVmdFdpbmRvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc2V0QXBpU2hvd1dpbmRvdygpLCExIT09dGhpcy4kcm91dGUubWV0YS5sZWZ0V2luZG93JiZ0aGlzLmxlZnRXaW5kb3dNZWRpYVF1ZXJ5fSxzaG93UmlnaHRXaW5kb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNldEFwaVNob3dXaW5kb3coKSwhMSE9PXRoaXMuJHJvdXRlLm1ldGEucmlnaHRXaW5kb3cmJnRoaXMucmlnaHRXaW5kb3dNZWRpYVF1ZXJ5fX0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuY2hlY2tNYXhXaWR0aCgpfSxzaG93TGF5b3V0OmZ1bmN0aW9uKCl7dGhpcy5jaGVja0xheW91dCgpfSxzaG93VG9wV2luZG93OmZ1bmN0aW9uKHQsZSl7dD90aGlzLiRuZXh0VGljayh0aGlzLm9uVG9wV2luZG93SW5pdCk6bCgiLS10b3Atd2luZG93LWhlaWdodCIsIjBweCIpfSxzaG93TGVmdFdpbmRvdzpmdW5jdGlvbih0LGUpe3Q/dGhpcy4kbmV4dFRpY2sodGhpcy5vbkxlZnRXaW5kb3dJbml0KTpsKCItLXdpbmRvdy1sZWZ0IiwiMHB4Iil9LHNob3dSaWdodFdpbmRvdzpmdW5jdGlvbih0LGUpe3Q/dGhpcy4kbmV4dFRpY2sodGhpcy5vblJpZ2h0V2luZG93SW5pdCk6bCgiLS13aW5kb3ctcmlnaHQiLCIwcHgiKX0sbWFyZ2luV2lkdGg6ZnVuY3Rpb24odCl7bCgiLS13aW5kb3ctbWFyZ2luIix0KyJweCIpfX0sYmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7bCgiLS10b3Atd2luZG93LWhlaWdodCIsIjBweCIpLGwoIi0td2luZG93LWxlZnQiLCIwcHgiKSxsKCItLXdpbmRvdy1yaWdodCIsIjBweCIpLGwoIi0td2luZG93LW1hcmdpbiIsIjBweCIpfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnRvcFdpbmRvdz1hLmRlZmF1bHQuY29tcG9uZW50KCJWVW5pVG9wV2luZG93IiksdGhpcy5sZWZ0V2luZG93PWEuZGVmYXVsdC5jb21wb25lbnQoIlZVbmlMZWZ0V2luZG93IiksdGhpcy5yaWdodFdpbmRvdz1hLmRlZmF1bHQuY29tcG9uZW50KCJWVW5pUmlnaHRXaW5kb3ciKSwodGhpcy50b3BXaW5kb3d8fHRoaXMubGVmdFdpbmRvd3x8dGhpcy5yaWdodFdpbmRvdykmJnVuaS5jYW5JVXNlKCJjc3MudmFyIikmJndpbmRvdy5tYXRjaE1lZGlhJiYoYy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbml0V2luZG93TWluV2lkdGgodCl9KSksdGhpcy5yZXNwb25zaXZlPWZ1bmN0aW9uKHQpe3ZhciBlPXdpbmRvdy5zY3JlZW4sbj1bd2luZG93Lm91dGVyV2lkdGgsd2luZG93Lm91dGVySGVpZ2h0LGUud2lkdGgsZS5oZWlnaHQsdS5jbGllbnRXaWR0aCx1LmNsaWVudEhlaWdodF07cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsbik+dH0odGhpcy5taW5XaWR0aCksdGhpcy5yZXNwb25zaXZlJiYodGhpcy50b3BXaW5kb3cmJnRoaXMudG9wV2luZG93Lm9wdGlvbnMuc3R5bGUmJih0aGlzLnRvcFdpbmRvd1N0eWxlPXRoaXMudG9wV2luZG93Lm9wdGlvbnMuc3R5bGUpLHRoaXMubGVmdFdpbmRvdyYmdGhpcy5sZWZ0V2luZG93Lm9wdGlvbnMuc3R5bGUmJih0aGlzLmxlZnRXaW5kb3dTdHlsZT10aGlzLmxlZnRXaW5kb3cub3B0aW9ucy5zdHlsZSksdGhpcy5yaWdodFdpbmRvdyYmdGhpcy5yaWdodFdpbmRvdy5vcHRpb25zLnN0eWxlJiYodGhpcy5yaWdodFdpbmRvd1N0eWxlPXRoaXMucmlnaHRXaW5kb3cub3B0aW9ucy5zdHlsZSksYy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5pbml0TWVkaWFRdWVyeSh0KX0pKSx0Lm9uKCJvbk5hdmlnYXRpb25CYXJDaGFuZ2UiLChmdW5jdGlvbih0KXtlLm5hdmlnYXRpb25CYXJUaXRsZVRleHQ9dC50aXRsZVRleHR9KSkpKSx0aGlzLmluaXRNYXhXaWR0aCgpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0xheW91dCgpLHRoaXMuY2hlY2tNYXhXaWR0aCgpfSxtZXRob2RzOntyZXNldEFwaVNob3dXaW5kb3c6ZnVuY3Rpb24oKXt0aGlzLmFwaVNob3dMZWZ0V2luZG93PSExLHRoaXMuYXBpU2hvd1JpZ2h0V2luZG93PSExfSxzaG93V2luZG93OmZ1bmN0aW9uKHQpe3ZhciBlPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV07aWYoIXRoaXNbdCsiV2luZG93Il0pcmV0dXJuIHQrIldpbmRvdyBub3QgZm91bmQiO3ZhciBuPSgwLG8uY2FwaXRhbGl6ZSkodCk7aWYoIXRoaXNbInNob3ciK24rIldpbmRvdyJdKXt2YXIgcj0iYXBpU2hvdyIrbisiV2luZG93Ijt0aGlzW3JdIT09ZSYmKHRoaXNbcl09ZSwidG9wIj09PXQmJihlP3RoaXMuJG5leHRUaWNrKHRoaXMub25Ub3BXaW5kb3dJbml0KTpsKCItLXRvcC13aW5kb3ctaGVpZ2h0IiwiMHB4IikpKX19LGdldFdpbmRvd1N0eWxlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzW3QrIldpbmRvdyJdKXJldHVybiB0KyJXaW5kb3cgbm90IGZvdW5kIjt2YXIgZT1PYmplY3QuYXNzaWduKHt9LHRoaXNbdCsiV2luZG93U3R5bGUiXSk7cmV0dXJuIGV9LHNldFdpbmRvd1N0eWxlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXNbdCsiV2luZG93Il0pcmV0dXJuIHQrIldpbmRvdyBub3QgZm91bmQiO2UmJih0aGlzW3QrIldpbmRvd1N0eWxlIl09ZSx0aGlzLiRuZXh0VGljayh0aGlzWyJvbiIrKDAsby5jYXBpdGFsaXplKSh0KSsiV2luZG93SW5pdCJdKSl9LGluaXRNYXhXaWR0aDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsKGZ1bmN0aW9uKCl7dC5jaGVja01heFdpZHRoKCl9KSl9LGNoZWNrTGF5b3V0OmZ1bmN0aW9uKCl7dGhpcy4kZW1pdCgibGF5b3V0Iix0aGlzLnNob3dMYXlvdXQpfSxjaGVja01heFdpZHRoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgsbj1wYXJzZUludCh0aGlzLiRyb3V0ZS5tZXRhLm1heFdpZHRoKSxyPSExO3I9ZT5uLHRoaXMuJGVtaXQoIm1heFdpZHRoIixyKSx0aGlzLiRjb250YWluZXJFbGVtfHwodGhpcy4kY29udGFpbmVyRWxlbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ1bmktYXBwIikpLHRoaXMuJGNvbnRhaW5lckVsZW0mJihyJiZuPyh0aGlzLm1hcmdpbldpZHRoPShlLW4pLzIsdGhpcy4kbmV4dFRpY2soKGZ1bmN0aW9uKCl7dC5vbkxlZnRXaW5kb3dJbml0KCksdC5vblJpZ2h0V2luZG93SW5pdCgpLHQuJGNvbnRhaW5lckVsZW0uc2V0QXR0cmlidXRlKCJzdHlsZSIsIm1heC13aWR0aDoiK24rInB4O21hcmdpbjowIGF1dG87Iil9KSkpOih0aGlzLm1hcmdpbldpZHRoPTAsdGhpcy4kbmV4dFRpY2soKGZ1bmN0aW9uKCl7dC5vbkxlZnRXaW5kb3dJbml0KCksdC5vblJpZ2h0V2luZG93SW5pdCgpLHQuJGNvbnRhaW5lckVsZW0ucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpfSkpKSl9LGluaXRXaW5kb3dNaW5XaWR0aDpmdW5jdGlvbih0KXt2YXIgZT10KyJXaW5kb3ciO2lmKHRoaXNbZV0pe3ZhciBuPXQrIldpbmRvd01pbldpZHRoIjt0aGlzW25dPXMuUkVTUE9OU0lWRV9NSU5fV0lEVEg7dmFyIHI9X191bmlDb25maWdbZV07ciYmci5tYXRjaE1lZGlhJiYoMCxvLmhhc093bikoci5tYXRjaE1lZGlhLCJtaW5XaWR0aCIpJiYodGhpc1tuXT1yLm1hdGNoTWVkaWEubWluV2lkdGgpLCgidW5kZWZpbmVkIj09PXR5cGVvZiB0aGlzLm1pbldpZHRofHx0aGlzLm1pbldpZHRoPnRoaXNbbl0pJiYodGhpcy5taW5XaWR0aD10aGlzW25dKX19LGluaXRNZWRpYVF1ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpc1t0KyJXaW5kb3ciXSl7dmFyIG49dCsiV2luZG93TWVkaWFRdWVyeSIscj13aW5kb3cubWF0Y2hNZWRpYSgiKG1pbi13aWR0aDogIit0aGlzW3QrIldpbmRvd01pbldpZHRoIl0rInB4KSIpO3IuYWRkTGlzdGVuZXIoKGZ1bmN0aW9uKHIpe2Vbbl09ci5tYXRjaGVzLGUuJG5leHRUaWNrKChmdW5jdGlvbigpe2VbIm9uIisoMCxvLmNhcGl0YWxpemUpKHQpKyJXaW5kb3dJbml0Il0oKX0pKX0pKSx0aGlzW25dPXIubWF0Y2hlc319LG9uVG9wV2luZG93SW5pdDpmdW5jdGlvbigpe2lmKHRoaXMucmVzcG9uc2l2ZSYmdGhpcy50b3BXaW5kb3cpe3ZhciB0PSIwcHgiO3Q9dGhpcy50b3BXaW5kb3dTdHlsZSYmdGhpcy50b3BXaW5kb3dTdHlsZS5oZWlnaHQ/dGhpcy4kcmVmcy50b3BXaW5kb3cub2Zmc2V0SGVpZ2h0KyJweCI6dGhpcy4kcmVmcy50b3AuJGVsLm9mZnNldEhlaWdodCsicHgiLHRoaXMudG9wV2luZG93SGVpZ2h0PXQsbCgiLS10b3Atd2luZG93LWhlaWdodCIsdCl9fSxvbkxlZnRXaW5kb3dJbml0OmZ1bmN0aW9uKCl7dGhpcy5yZXNwb25zaXZlJiZ0aGlzLmxlZnRXaW5kb3c/dGhpcy5sZWZ0V2luZG93U3R5bGUmJnRoaXMubGVmdFdpbmRvd1N0eWxlLndpZHRoP2woIi0td2luZG93LWxlZnQiLHRoaXMuJHJlZnMubGVmdFdpbmRvdy5vZmZzZXRXaWR0aCt0aGlzLm1hcmdpbldpZHRoKyJweCIpOmwoIi0td2luZG93LWxlZnQiLHRoaXMuJHJlZnMubGVmdC4kZWwub2Zmc2V0V2lkdGgrdGhpcy5tYXJnaW5XaWR0aCsicHgiKTpsKCItLXdpbmRvdy1sZWZ0Iix0aGlzLm1hcmdpbldpZHRoKyJweCIpfSxvblJpZ2h0V2luZG93SW5pdDpmdW5jdGlvbigpe3RoaXMucmVzcG9uc2l2ZSYmdGhpcy5yaWdodFdpbmRvdz90aGlzLnJpZ2h0V2luZG93U3R5bGUmJnRoaXMucmlnaHRXaW5kb3dTdHlsZS53aWR0aD9sKCItLXdpbmRvdy1yaWdodCIsdGhpcy4kcmVmcy5yaWdodFdpbmRvdy5vZmZzZXRXaWR0aCt0aGlzLm1hcmdpbldpZHRoKyJweCIpOmwoIi0td2luZG93LXJpZ2h0Iix0aGlzLiRyZWZzLnJpZ2h0LiRlbC5vZmZzZXRXaWR0aCt0aGlzLm1hcmdpbldpZHRoKyJweCIpOmwoIi0td2luZG93LXJpZ2h0Iix0aGlzLm1hcmdpbldpZHRoKyJweCIpfX19O2UuZGVmYXVsdD1mfSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LGM2Yzk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOTY1NyIpLGk9bigiZDk1NCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sYzZjZDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiNjM3NCIpLGE9clsiX19jb3JlLWpzX3NoYXJlZF9fIl18fGkoIl9fY29yZS1qc19zaGFyZWRfXyIse30pO3QuZXhwb3J0cz1hfSxjNmQyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiYzY1YiIpLGE9bigiYzQzMCIpLG89bigiNWU3NyIpLHM9bigiMTYyNiIpLGM9bigiZGNjMyIpLHU9bigiZTE2MyIpLGw9bigiZDJiYiIpLGY9bigiZDQ0ZSIpLGQ9bigiOTExMiIpLGg9bigiY2IyZCIpLHA9bigiYjYyMiIpLHY9bigiM2Y4YyIpLGc9bigiYWU5MyIpLG09by5QUk9QRVIsYj1vLkNPTkZJR1VSQUJMRSx5PWcuSXRlcmF0b3JQcm90b3R5cGUsXz1nLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsdz1wKCJpdGVyYXRvciIpLHg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLG8scCxnLFMpe2MobixlLG8pO3ZhciBULEMsayxPPWZ1bmN0aW9uKHQpe2lmKHQ9PT1wJiZBKXJldHVybiBBO2lmKCFfJiZ0IGluIFApcmV0dXJuIFBbdF07c3dpdGNoKHQpe2Nhc2Uia2V5cyI6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsdCl9O2Nhc2UidmFsdWVzIjpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyx0KX07Y2FzZSJlbnRyaWVzIjpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyx0KX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMpfX0sRT1lKyIgSXRlcmF0b3IiLEk9ITEsUD10LnByb3RvdHlwZSxNPVBbd118fFBbIkBAaXRlcmF0b3IiXXx8cCYmUFtwXSxBPSFfJiZNfHxPKHApLCQ9IkFycmF5Ij09ZSYmUC5lbnRyaWVzfHxNO2lmKCQmJihUPXUoJC5jYWxsKG5ldyB0KSksVCE9PU9iamVjdC5wcm90b3R5cGUmJlQubmV4dCYmKGF8fHUoVCk9PT15fHwobD9sKFQseSk6cyhUW3ddKXx8aChULHcseCkpLGYoVCxFLCEwLCEwKSxhJiYodltFXT14KSkpLG0mJiJ2YWx1ZXMiPT1wJiZNJiYidmFsdWVzIiE9PU0ubmFtZSYmKCFhJiZiP2QoUCwibmFtZSIsInZhbHVlcyIpOihJPSEwLEE9ZnVuY3Rpb24oKXtyZXR1cm4gaShNLHRoaXMpfSkpLHApaWYoQz17dmFsdWVzOk8oInZhbHVlcyIpLGtleXM6Zz9BOk8oImtleXMiKSxlbnRyaWVzOk8oImVudHJpZXMiKX0sUylmb3IoayBpbiBDKShffHxJfHwhKGsgaW4gUCkpJiZoKFAsayxDW2tdKTtlbHNlIHIoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpffHxJfSxDKTtyZXR1cm4gYSYmIVN8fFBbd109PT1BfHxoKFAsdyxBLHtuYW1lOnB9KSx2W2VdPUEsQ319LGM3NDA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJiNzI3IikuZmluZEluZGV4LGE9bigiNDRkMiIpLG89ITA7ImZpbmRJbmRleCJpbltdJiZBcnJheSgxKVsiZmluZEluZGV4Il0oKGZ1bmN0aW9uKCl7bz0hMX0pKSxyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6b30se2ZpbmRJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gaSh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGEoImZpbmRJbmRleCIpfSxjNzdiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiYWRlMyIpKSxhPXIobigiNTg5NyIpKSxvPXIobigiNjE4MCIpKSxzPW4oIjY3NTYiKSxjPXtsaWdodDp7Y2FuY2VsQ29sb3I6IiMwMDAwMDAifSxkYXJrOntjYW5jZWxDb2xvcjoicmdiKDE3MCwgMTcwLCAxNzApIn19O2Z1bmN0aW9uIHUodCl7dGhpcy5jYW5jZWxDb2xvcl89Y1t0XS5jYW5jZWxDb2xvcn12YXIgbD17bmFtZToiTW9kYWwiLGNvbXBvbmVudHM6e2tleXByZXNzOm8uZGVmYXVsdH0sbWl4aW5zOlthLmRlZmF1bHRdLHByb3BzOnt0aXRsZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sY29udGVudDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sc2hvd0NhbmNlbDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LGNhbmNlbFRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IkNhbmNlbCJ9LGNhbmNlbENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjMDAwMDAwIn0sY29uZmlybVRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Ik9LIn0sY29uZmlybUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjMDA3YWZmIn0sdmlzaWJsZTp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGVkaXRhYmxlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0scGxhY2Vob2xkZXJUZXh0Ont0eXBlOlN0cmluZyxkZWZhdWx0OiIifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjYW5jZWxDb2xvcl86IiMwMDAifX0sd2F0Y2g6e3Zpc2libGU6ZnVuY3Rpb24odCl7dD8odGhpcy5jYW5jZWxDb2xvcl89dGhpcy4kcGFyZW50LnNob3dNb2RhbC5jYW5jZWxDb2xvciwiIzAwMCI9PT10aGlzLiRwYXJlbnQuc2hvd01vZGFsLmNhbmNlbENvbG9yJiYoImRhcmsiPT09KDAscy5nZXRUaGVtZSkoKSYmdGhpcy5fb25UaGVtZUNoYW5nZSh7dGhlbWU6ImRhcmsifSksKDAscy5vblRoZW1lQ2hhbmdlKSh0aGlzLl9vblRoZW1lQ2hhbmdlKSkpOigwLHMub2ZmVGhlbWVDaGFuZ2UpKHRoaXMuX29uVGhlbWVDaGFuZ2UpfX0sbWV0aG9kczp7X29uVGhlbWVDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9dC50aGVtZTt1LmNhbGwodGhpcyxlKX0sX2Nsb3NlOmZ1bmN0aW9uKHQpe3ZhciBlPSgwLGkuZGVmYXVsdCkoe30sdCwhMCk7dGhpcy5lZGl0YWJsZSYmImNvbmZpcm0iPT09dCYmKGUuY29udGVudD10aGlzLiRyZWZzLmVkaXRDb250ZW50LnZhbHVlKSx0aGlzLiRlbWl0KCJjbG9zZSIsZSl9fX07ZS5kZWZhdWx0PWx9LGM3ZWI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKCl7Ci8qISByZWdlbmVyYXRvci1ydW50aW1lIC0tIENvcHlyaWdodCAoYykgMjAxNC1wcmVzZW50LCBGYWNlYm9vaywgSW5jLiAtLSBsaWNlbnNlIChNSVQpOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL0xJQ0VOU0UgKi8KZS5kZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHR9O3ZhciB0PXt9LG49T2JqZWN0LnByb3RvdHlwZSxpPW4uaGFzT3duUHJvcGVydHksYT1PYmplY3QuZGVmaW5lUHJvcGVydHl8fGZ1bmN0aW9uKHQsZSxuKXt0W2VdPW4udmFsdWV9LG89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30scz1vLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIsYz1vLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiLHU9by50b1N0cmluZ1RhZ3x8IkBAdG9TdHJpbmdUYWciO2Z1bmN0aW9uIGwodCxlLG4pe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSksdFtlXX10cnl7bCh7fSwiIil9Y2F0Y2goUCl7bD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bn19ZnVuY3Rpb24gZih0LGUsbixyKXt2YXIgaT1lJiZlLnByb3RvdHlwZSBpbnN0YW5jZW9mIHA/ZTpwLG89T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSkscz1uZXcgTyhyfHxbXSk7cmV0dXJuIGEobywiX2ludm9rZSIse3ZhbHVlOlModCxuLHMpfSksb31mdW5jdGlvbiBkKHQsZSxuKXt0cnl7cmV0dXJue3R5cGU6Im5vcm1hbCIsYXJnOnQuY2FsbChlLG4pfX1jYXRjaChQKXtyZXR1cm57dHlwZToidGhyb3ciLGFyZzpQfX19dC53cmFwPWY7dmFyIGg9e307ZnVuY3Rpb24gcCgpe31mdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIGcoKXt9dmFyIG09e307bChtLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIGI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHk9YiYmYihiKEUoW10pKSk7eSYmeSE9PW4mJmkuY2FsbCh5LHMpJiYobT15KTt2YXIgXz1nLnByb3RvdHlwZT1wLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG0pO2Z1bmN0aW9uIHcodCl7WyJuZXh0IiwidGhyb3ciLCJyZXR1cm4iXS5mb3JFYWNoKChmdW5jdGlvbihlKXtsKHQsZSwoZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ludm9rZShlLHQpfSkpfSkpfWZ1bmN0aW9uIHgodCxlKXt2YXIgbjthKHRoaXMsIl9pbnZva2UiLHt2YWx1ZTpmdW5jdGlvbihhLG8pe2Z1bmN0aW9uIHMoKXtyZXR1cm4gbmV3IGUoKGZ1bmN0aW9uKG4scyl7KGZ1bmN0aW9uIG4oYSxvLHMsYyl7dmFyIHU9ZCh0W2FdLHQsbyk7aWYoInRocm93IiE9PXUudHlwZSl7dmFyIGw9dS5hcmcsZj1sLnZhbHVlO3JldHVybiBmJiYib2JqZWN0Ij09KDAsci5kZWZhdWx0KShmKSYmaS5jYWxsKGYsIl9fYXdhaXQiKT9lLnJlc29sdmUoZi5fX2F3YWl0KS50aGVuKChmdW5jdGlvbih0KXtuKCJuZXh0Iix0LHMsYyl9KSwoZnVuY3Rpb24odCl7bigidGhyb3ciLHQscyxjKX0pKTplLnJlc29sdmUoZikudGhlbigoZnVuY3Rpb24odCl7bC52YWx1ZT10LHMobCl9KSwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInRocm93Iix0LHMsYyl9KSl9Yyh1LmFyZyl9KShhLG8sbixzKX0pKX1yZXR1cm4gbj1uP24udGhlbihzLHMpOnMoKX19KX1mdW5jdGlvbiBTKHQsZSxuKXt2YXIgcj0ic3VzcGVuZGVkU3RhcnQiO3JldHVybiBmdW5jdGlvbihpLGEpe2lmKCJleGVjdXRpbmciPT09cil0aHJvdyBuZXcgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtpZigiY29tcGxldGVkIj09PXIpe2lmKCJ0aHJvdyI9PT1pKXRocm93IGE7cmV0dXJuIEkoKX1mb3Iobi5tZXRob2Q9aSxuLmFyZz1hOzspe3ZhciBvPW4uZGVsZWdhdGU7aWYobyl7dmFyIHM9VChvLG4pO2lmKHMpe2lmKHM9PT1oKWNvbnRpbnVlO3JldHVybiBzfX1pZigibmV4dCI9PT1uLm1ldGhvZCluLnNlbnQ9bi5fc2VudD1uLmFyZztlbHNlIGlmKCJ0aHJvdyI9PT1uLm1ldGhvZCl7aWYoInN1c3BlbmRlZFN0YXJ0Ij09PXIpdGhyb3cgcj0iY29tcGxldGVkIixuLmFyZztuLmRpc3BhdGNoRXhjZXB0aW9uKG4uYXJnKX1lbHNlInJldHVybiI9PT1uLm1ldGhvZCYmbi5hYnJ1cHQoInJldHVybiIsbi5hcmcpO3I9ImV4ZWN1dGluZyI7dmFyIGM9ZCh0LGUsbik7aWYoIm5vcm1hbCI9PT1jLnR5cGUpe2lmKHI9bi5kb25lPyJjb21wbGV0ZWQiOiJzdXNwZW5kZWRZaWVsZCIsYy5hcmc9PT1oKWNvbnRpbnVlO3JldHVybnt2YWx1ZTpjLmFyZyxkb25lOm4uZG9uZX19InRocm93Ij09PWMudHlwZSYmKHI9ImNvbXBsZXRlZCIsbi5tZXRob2Q9InRocm93IixuLmFyZz1jLmFyZyl9fX1mdW5jdGlvbiBUKHQsZSl7dmFyIG49ZS5tZXRob2Qscj10Lml0ZXJhdG9yW25dO2lmKHZvaWQgMD09PXIpcmV0dXJuIGUuZGVsZWdhdGU9bnVsbCwidGhyb3ciPT09biYmdC5pdGVyYXRvclsicmV0dXJuIl0mJihlLm1ldGhvZD0icmV0dXJuIixlLmFyZz12b2lkIDAsVCh0LGUpLCJ0aHJvdyI9PT1lLm1ldGhvZCl8fCJyZXR1cm4iIT09biYmKGUubWV0aG9kPSJ0aHJvdyIsZS5hcmc9bmV3IFR5cGVFcnJvcigiVGhlIGl0ZXJhdG9yIGRvZXMgbm90IHByb3ZpZGUgYSAnIituKyInIG1ldGhvZCIpKSxoO3ZhciBpPWQocix0Lml0ZXJhdG9yLGUuYXJnKTtpZigidGhyb3ciPT09aS50eXBlKXJldHVybiBlLm1ldGhvZD0idGhyb3ciLGUuYXJnPWkuYXJnLGUuZGVsZWdhdGU9bnVsbCxoO3ZhciBhPWkuYXJnO3JldHVybiBhP2EuZG9uZT8oZVt0LnJlc3VsdE5hbWVdPWEudmFsdWUsZS5uZXh0PXQubmV4dExvYywicmV0dXJuIiE9PWUubWV0aG9kJiYoZS5tZXRob2Q9Im5leHQiLGUuYXJnPXZvaWQgMCksZS5kZWxlZ2F0ZT1udWxsLGgpOmE6KGUubWV0aG9kPSJ0aHJvdyIsZS5hcmc9bmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKSxlLmRlbGVnYXRlPW51bGwsaCl9ZnVuY3Rpb24gQyh0KXt2YXIgZT17dHJ5TG9jOnRbMF19OzEgaW4gdCYmKGUuY2F0Y2hMb2M9dFsxXSksMiBpbiB0JiYoZS5maW5hbGx5TG9jPXRbMl0sZS5hZnRlckxvYz10WzNdKSx0aGlzLnRyeUVudHJpZXMucHVzaChlKX1mdW5jdGlvbiBrKHQpe3ZhciBlPXQuY29tcGxldGlvbnx8e307ZS50eXBlPSJub3JtYWwiLGRlbGV0ZSBlLmFyZyx0LmNvbXBsZXRpb249ZX1mdW5jdGlvbiBPKHQpe3RoaXMudHJ5RW50cmllcz1be3RyeUxvYzoicm9vdCJ9XSx0LmZvckVhY2goQyx0aGlzKSx0aGlzLnJlc2V0KCEwKX1mdW5jdGlvbiBFKHQpe2lmKHQpe3ZhciBlPXRbc107aWYoZSlyZXR1cm4gZS5jYWxsKHQpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm5leHQpcmV0dXJuIHQ7aWYoIWlzTmFOKHQubGVuZ3RoKSl7dmFyIG49LTEscj1mdW5jdGlvbiBlKCl7Zm9yKDsrK248dC5sZW5ndGg7KWlmKGkuY2FsbCh0LG4pKXJldHVybiBlLnZhbHVlPXRbbl0sZS5kb25lPSExLGU7cmV0dXJuIGUudmFsdWU9dm9pZCAwLGUuZG9uZT0hMCxlfTtyZXR1cm4gci5uZXh0PXJ9fXJldHVybntuZXh0Okl9fWZ1bmN0aW9uIEkoKXtyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXJldHVybiB2LnByb3RvdHlwZT1nLGEoXywiY29uc3RydWN0b3IiLHt2YWx1ZTpnLGNvbmZpZ3VyYWJsZTohMH0pLGEoZywiY29uc3RydWN0b3IiLHt2YWx1ZTp2LGNvbmZpZ3VyYWJsZTohMH0pLHYuZGlzcGxheU5hbWU9bChnLHUsIkdlbmVyYXRvckZ1bmN0aW9uIiksdC5pc0dlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPSJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yO3JldHVybiEhZSYmKGU9PT12fHwiR2VuZXJhdG9yRnVuY3Rpb24iPT09KGUuZGlzcGxheU5hbWV8fGUubmFtZSkpfSx0Lm1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YodCxnKToodC5fX3Byb3RvX189ZyxsKHQsdSwiR2VuZXJhdG9yRnVuY3Rpb24iKSksdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShfKSx0fSx0LmF3cmFwPWZ1bmN0aW9uKHQpe3JldHVybntfX2F3YWl0OnR9fSx3KHgucHJvdG90eXBlKSxsKHgucHJvdG90eXBlLGMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksdC5Bc3luY0l0ZXJhdG9yPXgsdC5hc3luYz1mdW5jdGlvbihlLG4scixpLGEpe3ZvaWQgMD09PWEmJihhPVByb21pc2UpO3ZhciBvPW5ldyB4KGYoZSxuLHIsaSksYSk7cmV0dXJuIHQuaXNHZW5lcmF0b3JGdW5jdGlvbihuKT9vOm8ubmV4dCgpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRvbmU/dC52YWx1ZTpvLm5leHQoKX0pKX0sdyhfKSxsKF8sdSwiR2VuZXJhdG9yIiksbChfLHMsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSksbChfLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSksdC5rZXlzPWZ1bmN0aW9uKHQpe3ZhciBlPU9iamVjdCh0KSxuPVtdO2Zvcih2YXIgciBpbiBlKW4ucHVzaChyKTtyZXR1cm4gbi5yZXZlcnNlKCksZnVuY3Rpb24gdCgpe2Zvcig7bi5sZW5ndGg7KXt2YXIgcj1uLnBvcCgpO2lmKHIgaW4gZSlyZXR1cm4gdC52YWx1ZT1yLHQuZG9uZT0hMSx0fXJldHVybiB0LmRvbmU9ITAsdH19LHQudmFsdWVzPUUsTy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOk8scmVzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5wcmV2PTAsdGhpcy5uZXh0PTAsdGhpcy5zZW50PXRoaXMuX3NlbnQ9dm9pZCAwLHRoaXMuZG9uZT0hMSx0aGlzLmRlbGVnYXRlPW51bGwsdGhpcy5tZXRob2Q9Im5leHQiLHRoaXMuYXJnPXZvaWQgMCx0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChrKSwhdClmb3IodmFyIGUgaW4gdGhpcykidCI9PT1lLmNoYXJBdCgwKSYmaS5jYWxsKHRoaXMsZSkmJiFpc05hTigrZS5zbGljZSgxKSkmJih0aGlzW2VdPXZvaWQgMCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLmRvbmU9ITA7dmFyIHQ9dGhpcy50cnlFbnRyaWVzWzBdLmNvbXBsZXRpb247aWYoInRocm93Ij09PXQudHlwZSl0aHJvdyB0LmFyZztyZXR1cm4gdGhpcy5ydmFsfSxkaXNwYXRjaEV4Y2VwdGlvbjpmdW5jdGlvbih0KXtpZih0aGlzLmRvbmUpdGhyb3cgdDt2YXIgZT10aGlzO2Z1bmN0aW9uIG4obixyKXtyZXR1cm4gby50eXBlPSJ0aHJvdyIsby5hcmc9dCxlLm5leHQ9bixyJiYoZS5tZXRob2Q9Im5leHQiLGUuYXJnPXZvaWQgMCksISFyfWZvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7cj49MDstLXIpe3ZhciBhPXRoaXMudHJ5RW50cmllc1tyXSxvPWEuY29tcGxldGlvbjtpZigicm9vdCI9PT1hLnRyeUxvYylyZXR1cm4gbigiZW5kIik7aWYoYS50cnlMb2M8PXRoaXMucHJldil7dmFyIHM9aS5jYWxsKGEsImNhdGNoTG9jIiksYz1pLmNhbGwoYSwiZmluYWxseUxvYyIpO2lmKHMmJmMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBuKGEuY2F0Y2hMb2MsITApO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG4oYS5maW5hbGx5TG9jKX1lbHNlIGlmKHMpe2lmKHRoaXMucHJldjxhLmNhdGNoTG9jKXJldHVybiBuKGEuY2F0Y2hMb2MsITApfWVsc2V7aWYoIWMpdGhyb3cgbmV3IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpO2lmKHRoaXMucHJldjxhLmZpbmFsbHlMb2MpcmV0dXJuIG4oYS5maW5hbGx5TG9jKX19fX0sYWJydXB0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtuPj0wOy0tbil7dmFyIHI9dGhpcy50cnlFbnRyaWVzW25dO2lmKHIudHJ5TG9jPD10aGlzLnByZXYmJmkuY2FsbChyLCJmaW5hbGx5TG9jIikmJnRoaXMucHJldjxyLmZpbmFsbHlMb2Mpe3ZhciBhPXI7YnJlYWt9fWEmJigiYnJlYWsiPT09dHx8ImNvbnRpbnVlIj09PXQpJiZhLnRyeUxvYzw9ZSYmZTw9YS5maW5hbGx5TG9jJiYoYT1udWxsKTt2YXIgbz1hP2EuY29tcGxldGlvbjp7fTtyZXR1cm4gby50eXBlPXQsby5hcmc9ZSxhPyh0aGlzLm1ldGhvZD0ibmV4dCIsdGhpcy5uZXh0PWEuZmluYWxseUxvYyxoKTp0aGlzLmNvbXBsZXRlKG8pfSxjb21wbGV0ZTpmdW5jdGlvbih0LGUpe2lmKCJ0aHJvdyI9PT10LnR5cGUpdGhyb3cgdC5hcmc7cmV0dXJuImJyZWFrIj09PXQudHlwZXx8ImNvbnRpbnVlIj09PXQudHlwZT90aGlzLm5leHQ9dC5hcmc6InJldHVybiI9PT10LnR5cGU/KHRoaXMucnZhbD10aGlzLmFyZz10LmFyZyx0aGlzLm1ldGhvZD0icmV0dXJuIix0aGlzLm5leHQ9ImVuZCIpOiJub3JtYWwiPT09dC50eXBlJiZlJiYodGhpcy5uZXh0PWUpLGh9LGZpbmlzaDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgbj10aGlzLnRyeUVudHJpZXNbZV07aWYobi5maW5hbGx5TG9jPT09dClyZXR1cm4gdGhpcy5jb21wbGV0ZShuLmNvbXBsZXRpb24sbi5hZnRlckxvYyksayhuKSxofX0sY2F0Y2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTtlPj0wOy0tZSl7dmFyIG49dGhpcy50cnlFbnRyaWVzW2VdO2lmKG4udHJ5TG9jPT09dCl7dmFyIHI9bi5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1yLnR5cGUpe3ZhciBpPXIuYXJnO2sobil9cmV0dXJuIGl9fXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iil9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLmRlbGVnYXRlPXtpdGVyYXRvcjpFKHQpLHJlc3VsdE5hbWU6ZSxuZXh0TG9jOm59LCJuZXh0Ij09PXRoaXMubWV0aG9kJiYodGhpcy5hcmc9dm9pZCAwKSxofX0sdH0sbigiN2E4MiIpLG4oImE0ZDMiKSxuKCJlMDFhIiksbigiZDNiNyIpLG4oImQyOGIiKSxuKCIzY2EzIiksbigiZGRiMCIpLG4oImI2MzYiKSxuKCI5NDRhIiksbigiMGM0NyIpLG4oIjIzZGMiKSxuKCIzNDEwIiksbigiZDllMiIpLG4oImQ0MDEiKSxuKCIxNGQ5IiksbigiMTU5YiIpLG4oIjEzMWEiKSxuKCIyNmU5IiksbigiZmI2YSIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fX0obigiNTNjYSIpKX0sYzdmZjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMCxuKCIxNGQ5Iik7dmFyIHI9bigiNTc2MCIpLGk9e21ldGhvZHM6e2luaXRTY3JvbGxlcjpmdW5jdGlvbih0LGUpe3RoaXMuX3RvdWNoSW5mbz17dHJhY2tpbmdJRDotMSxtYXhEeTowLG1heER4OjB9LHRoaXMuX3Njcm9sbGVyPW5ldyByLlNjcm9sbGVyKHQsZSksdGhpcy5fX2hhbmRsZVRvdWNoU3RhcnQ9dGhpcy5faGFuZGxlVG91Y2hTdGFydC5iaW5kKHRoaXMpLHRoaXMuX19oYW5kbGVUb3VjaE1vdmU9dGhpcy5faGFuZGxlVG91Y2hNb3ZlLmJpbmQodGhpcyksdGhpcy5fX2hhbmRsZVRvdWNoRW5kPXRoaXMuX2hhbmRsZVRvdWNoRW5kLmJpbmQodGhpcyksdGhpcy5faW5pdGVkU2Nyb2xsZXI9ITB9LF9maW5kRGVsdGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdG91Y2hJbmZvO3JldHVybiJtb3ZlIj09PXQuZGV0YWlsLnN0YXRlfHwiZW5kIj09PXQuZGV0YWlsLnN0YXRlP3t4OnQuZGV0YWlsLmR4LHk6dC5kZXRhaWwuZHl9Ont4OnQuc2NyZWVuWC1lLngseTp0LnNjcmVlblktZS55fX0sX2hhbmRsZVRvdWNoU3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdG91Y2hJbmZvLG49dGhpcy5fc2Nyb2xsZXI7biYmKCJzdGFydCI9PT10LmRldGFpbC5zdGF0ZT8oZS50cmFja2luZ0lEPSJ0b3VjaCIsZS54PXQuZGV0YWlsLngsZS55PXQuZGV0YWlsLnkpOihlLnRyYWNraW5nSUQ9Im1vdXNlIixlLng9dC5zY3JlZW5YLGUueT10LnNjcmVlblkpLGUubWF4RHg9MCxlLm1heER5PTAsZS5oaXN0b3J5WD1bMF0sZS5oaXN0b3J5WT1bMF0sZS5oaXN0b3J5VGltZT1bdC5kZXRhaWwudGltZVN0YW1wXSxlLmxpc3RlbmVyPW4sbi5vblRvdWNoU3RhcnQmJm4ub25Ub3VjaFN0YXJ0KCksdC5wcmV2ZW50RGVmYXVsdCgpKX0sX2hhbmRsZVRvdWNoTW92ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl90b3VjaEluZm87aWYoLTEhPT1lLnRyYWNraW5nSUQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgbj10aGlzLl9maW5kRGVsdGEodCk7aWYobil7Zm9yKGUubWF4RHk9TWF0aC5tYXgoZS5tYXhEeSxNYXRoLmFicyhuLnkpKSxlLm1heER4PU1hdGgubWF4KGUubWF4RHgsTWF0aC5hYnMobi54KSksZS5oaXN0b3J5WC5wdXNoKG4ueCksZS5oaXN0b3J5WS5wdXNoKG4ueSksZS5oaXN0b3J5VGltZS5wdXNoKHQuZGV0YWlsLnRpbWVTdGFtcCk7ZS5oaXN0b3J5VGltZS5sZW5ndGg+MTA7KWUuaGlzdG9yeVRpbWUuc2hpZnQoKSxlLmhpc3RvcnlYLnNoaWZ0KCksZS5oaXN0b3J5WS5zaGlmdCgpO2UubGlzdGVuZXImJmUubGlzdGVuZXIub25Ub3VjaE1vdmUmJmUubGlzdGVuZXIub25Ub3VjaE1vdmUobi54LG4ueSx0LmRldGFpbC50aW1lU3RhbXApfX19LF9oYW5kbGVUb3VjaEVuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl90b3VjaEluZm87aWYoLTEhPT1lLnRyYWNraW5nSUQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgbj10aGlzLl9maW5kRGVsdGEodCk7aWYobil7dmFyIHI9ZS5saXN0ZW5lcjtlLnRyYWNraW5nSUQ9LTEsZS5saXN0ZW5lcj1udWxsO3ZhciBpPWUuaGlzdG9yeVRpbWUubGVuZ3RoLGE9e3g6MCx5OjB9O2lmKGk+Milmb3IodmFyIG89ZS5oaXN0b3J5VGltZS5sZW5ndGgtMSxzPWUuaGlzdG9yeVRpbWVbb10sYz1lLmhpc3RvcnlYW29dLHU9ZS5oaXN0b3J5WVtvXTtvPjA7KXtvLS07dmFyIGw9ZS5oaXN0b3J5VGltZVtvXSxmPXMtbDtpZihmPjMwJiZmPDUwKXthLng9KGMtZS5oaXN0b3J5WFtvXSkvKGYvMWUzKSxhLnk9KHUtZS5oaXN0b3J5WVtvXSkvKGYvMWUzKTticmVha319ZS5oaXN0b3J5VGltZT1bXSxlLmhpc3RvcnlYPVtdLGUuaGlzdG9yeVk9W10sciYmci5vblRvdWNoRW5kJiZyLm9uVG91Y2hFbmQobi54LG4ueSxhKX19fX19O2UuZGVmYXVsdD1pfSxjOGJhOmZ1bmN0aW9uKHQsZSl7dmFyIG47bj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSgpO3RyeXtuPW58fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHIpeyJvYmplY3QiPT09dHlwZW9mIHdpbmRvdyYmKG49d2luZG93KX10LmV4cG9ydHM9bn0sYzhkMjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNWU3NyIpLlBST1BFUixpPW4oImQwMzkiKSxhPW4oIjU4OTkiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkoKGZ1bmN0aW9uKCl7cmV0dXJuISFhW3RdKCl8fCLigIvCheGgjiIhPT0i4oCLwoXhoI4iW3RdKCl8fHImJmFbdF0ubmFtZSE9PXR9KSl9fSxjOTc1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiNDYyNSIpLGE9bigiNGQ2NCIpLmluZGV4T2Ysbz1uKCJhNjQwIikscz1pKFtdLmluZGV4T2YpLGM9ISFzJiYxL3MoWzFdLDEsLTApPDAsdT1vKCJpbmRleE9mIik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOmN8fCF1fSx7aW5kZXhPZjpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtyZXR1cm4gYz9zKHRoaXMsdCxlKXx8MDphKHRoaXMsdCxlKX19KX0sY2EwNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKTt2YXIgcj1uKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5oZXhUb1JnYmE9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJue3I6MCxnOjAsYjowLGE6MH07dmFyIGU9dC5zbGljZSgxKSxuPWUubGVuZ3RoO2lmKCFbMyw0LDYsOF0uaW5jbHVkZXMobikpcmV0dXJue3I6MCxnOjAsYjowLGE6MH07MyE9PW4mJjQhPT1ufHwoZT1lLnJlcGxhY2UoLyhcd3sxfSkvZywiJDEkMSIpKTt2YXIgcj1lLm1hdGNoKC8oXHd7Mn0pL2cpLGE9KDAsaS5kZWZhdWx0KShyLDQpLG89YVswXSxzPWFbMV0sYz1hWzJdLHU9YVszXSxsPXBhcnNlSW50KG8sMTYpLGY9cGFyc2VJbnQocywxNiksZD1wYXJzZUludChjLDE2KTtpZighdSlyZXR1cm57cjpsLGc6ZixiOmQsYToxfTtyZXR1cm57cjpsLGc6ZixiOmQsYTooIjB4MTAwIi5jb25jYXQodSktNjU1MzYpLzI1NX19O3ZhciBpPXIobigiMzgzNSIpKTtuKCJmYjZhIiksbigiY2FhZCIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiNDY2ZCIpLG4oImUyNWUiKX0sY2E4NDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTMzMCIpLGk9bigiMWEyZCIpLGE9bigiZmM2YSIpLG89bigiNGQ2NCIpLmluZGV4T2Yscz1uKCJkMDEyIiksYz1yKFtdLnB1c2gpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLHI9YSh0KSx1PTAsbD1bXTtmb3IobiBpbiByKSFpKHMsbikmJmkocixuKSYmYyhsLG4pO3doaWxlKGUubGVuZ3RoPnUpaShyLG49ZVt1KytdKSYmKH5vKGwsbil8fGMobCxuKSk7cmV0dXJuIGx9fSxjYTkxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZWJiNSIpLGk9bigiZDU4ZiIpLmxlZnQsYT1yLmFUeXBlZEFycmF5LG89ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kO28oInJlZHVjZSIsKGZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGkoYSh0aGlzKSx0LGUsZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSxjYWFkOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiNGQ2NCIpLmluY2x1ZGVzLGE9bigiZDAzOSIpLG89bigiNDRkMiIpLHM9YSgoZnVuY3Rpb24oKXtyZXR1cm4hQXJyYXkoMSkuaW5jbHVkZXMoKX0pKTtyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6c30se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksbygiaW5jbHVkZXMiKX0sY2IyZDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMTYyNiIpLGk9bigiOWJmMiIpLGE9bigiMTNkMiIpLG89bigiNjM3NCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixzKXtzfHwocz17fSk7dmFyIGM9cy5lbnVtZXJhYmxlLHU9dm9pZCAwIT09cy5uYW1lP3MubmFtZTplO2lmKHIobikmJmEobix1LHMpLHMuZ2xvYmFsKWM/dFtlXT1uOm8oZSxuKTtlbHNle3RyeXtzLnVuc2FmZT90W2VdJiYoYz0hMCk6ZGVsZXRlIHRbZV19Y2F0Y2gobCl7fWM/dFtlXT1uOmkuZih0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6IXMubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFzLm5vbldyaXRhYmxlfSl9cmV0dXJuIHR9fSxjYzEyOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCI4NjFkIiksYT1yLmRvY3VtZW50LG89aShhKSYmaShhLmNyZWF0ZUVsZW1lbnQpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbz9hLmNyZWF0ZUVsZW1lbnQodCk6e319fSxjYzk4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiYzQzMCIpLGE9bigiNDczOCIpLkNPTlNUUlVDVE9SLG89bigiZDI1NiIpLHM9bigiZDA2NiIpLGM9bigiMTYyNiIpLHU9bigiY2IyZCIpLGw9byYmby5wcm90b3R5cGU7aWYocih7dGFyZ2V0OiJQcm9taXNlIixwcm90bzohMCxmb3JjZWQ6YSxyZWFsOiEwfSx7Y2F0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9fSksIWkmJmMobykpe3ZhciBmPXMoIlByb21pc2UiKS5wcm90b3R5cGVbImNhdGNoIl07bFsiY2F0Y2giXSE9PWYmJnUobCwiY2F0Y2giLGYse3Vuc2FmZTohMH0pfX0sY2NhNjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiNjBkYSIpO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGFyaXR5OjIsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT1pfSx7YXNzaWduOml9KX0sY2NhODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PXZvaWQgMDt2YXIgcj1uKCI1ZWVlIiksaT1uKCJhNTVjIiksYT1uKCJlMGI1Iiksbz1uKCI0NDc1Iikscz1uKCIwZWJiIiksYz1uKCI5NTgyIiksdT1uKCI3ZDJjIiksbD1uKCIzMzE5IiksZj1uKCIxYzJjIiksZD1uKCIwMmQyIiksaD1uKCIwNzM1IikscD1uKCIzN2ZhIiksdj17JGVtaXQ6ci4kZW1pdCxjYW5JVXNlOmkuY2FuSVVzZSxjYW52YXNUb1RlbXBGaWxlUGF0aDphLmNhbnZhc1RvVGVtcEZpbGVQYXRoLGNyZWF0ZUNhbnZhc0NvbnRleHQ6by5jcmVhdGVDYW52YXNDb250ZXh0LGdldFN0b3JhZ2VTeW5jOnMuZ2V0U3RvcmFnZVN5bmMsbmF2aWdhdGVCYWNrOmMubmF2aWdhdGVCYWNrLG5hdmlnYXRlVG86Yy5uYXZpZ2F0ZVRvLHBhZ2VTY3JvbGxUbzp1LnBhZ2VTY3JvbGxUbyxwcmV2aWV3SW1hZ2U6bC5wcmV2aWV3SW1hZ2UscmVMYXVuY2g6Yy5yZUxhdW5jaCxyZWRpcmVjdFRvOmMucmVkaXJlY3RUbyxyZXF1ZXN0OmYucmVxdWVzdCxzZXROYXZpZ2F0aW9uQmFyVGl0bGU6ZC5zZXROYXZpZ2F0aW9uQmFyVGl0bGUsc2V0U3RvcmFnZVN5bmM6cy5zZXRTdG9yYWdlU3luYyxzaG93TG9hZGluZzpoLnNob3dMb2FkaW5nLHNob3dNb2RhbDpoLnNob3dNb2RhbCxzaG93VG9hc3Q6aC5zaG93VG9hc3Qsc3dpdGNoVGFiOmMuc3dpdGNoVGFiLHVweDJweDpwLnVweDJweH07ZS5kZWZhdWx0PXZ9LGNkMjY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1yLmFUeXBlZEFycmF5LGE9ci5leHBvcnRUeXBlZEFycmF5TWV0aG9kLG89TWF0aC5mbG9vcjthKCJyZXZlcnNlIiwoZnVuY3Rpb24oKXt2YXIgdCxlPWkodGhpcykubGVuZ3RoLG49byhlLzIpLHI9MDt3aGlsZShyPG4pdD10aGlzW3JdLHRoaXNbcisrXT10aGlzWy0tZV0sdGhpc1tlXT10O3JldHVybiB0aGlzfSkpfSxjZGNlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkYTg0IiksaT1uKCIxNjI2IiksYT1yLldlYWtNYXA7dC5leHBvcnRzPWkoYSkmJi9uYXRpdmUgY29kZS8udGVzdChTdHJpbmcoYSkpfSxjZGY5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI4MjVhIiksaT1uKCI4NjFkIiksYT1uKCJmMDY5Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYocih0KSxpKGUpJiZlLmNvbnN0cnVjdG9yPT09dClyZXR1cm4gZTt2YXIgbj1hLmYodCksbz1uLnJlc29sdmU7cmV0dXJuIG8oZSksbi5wcm9taXNlfX0sY2U1YzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI5NmI3IiksaT1uKCIyYzI3Iik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSxjZjE1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuJGNyZWF0ZUVsZW1lbnQsbj10Ll9zZWxmLl9jfHxlO3JldHVybiB0LmhvdmVyQ2xhc3MmJiJub25lIiE9PXQuaG92ZXJDbGFzcz9uKCJ1bmktdmlldyIsdC5fZyh7Y2xhc3M6W3QuaG92ZXJpbmc/dC5ob3ZlckNsYXNzOiIiXSxvbjp7dG91Y2hzdGFydDp0Ll9ob3ZlclRvdWNoU3RhcnQsdG91Y2hlbmQ6dC5faG92ZXJUb3VjaEVuZCx0b3VjaGNhbmNlbDp0Ll9ob3ZlclRvdWNoQ2FuY2VsLG1vdXNlZG93bjp0Ll9ob3Zlck1vdXNlZG93bixtb3VzZXVwOnQuX2hvdmVyTW91c2V1cH19LHQuJGxpc3RlbmVycyksW3QuX3QoImRlZmF1bHQiKV0sMik6bigidW5pLXZpZXciLHQuX2coe30sdC4kbGlzdGVuZXJzKSxbdC5fdCgiZGVmYXVsdCIpXSwyKX0saT1bXX0sY2Y5ODpmdW5jdGlvbih0LGUpe3QuZXhwb3J0cz17SW5kZXhTaXplRXJyb3I6e3M6IklOREVYX1NJWkVfRVJSIixjOjEsbToxfSxET01TdHJpbmdTaXplRXJyb3I6e3M6IkRPTVNUUklOR19TSVpFX0VSUiIsYzoyLG06MH0sSGllcmFyY2h5UmVxdWVzdEVycm9yOntzOiJISUVSQVJDSFlfUkVRVUVTVF9FUlIiLGM6MyxtOjF9LFdyb25nRG9jdW1lbnRFcnJvcjp7czoiV1JPTkdfRE9DVU1FTlRfRVJSIixjOjQsbToxfSxJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6e3M6IklOVkFMSURfQ0hBUkFDVEVSX0VSUiIsYzo1LG06MX0sTm9EYXRhQWxsb3dlZEVycm9yOntzOiJOT19EQVRBX0FMTE9XRURfRVJSIixjOjYsbTowfSxOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjp7czoiTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSIixjOjcsbToxfSxOb3RGb3VuZEVycm9yOntzOiJOT1RfRk9VTkRfRVJSIixjOjgsbToxfSxOb3RTdXBwb3J0ZWRFcnJvcjp7czoiTk9UX1NVUFBPUlRFRF9FUlIiLGM6OSxtOjF9LEluVXNlQXR0cmlidXRlRXJyb3I6e3M6IklOVVNFX0FUVFJJQlVURV9FUlIiLGM6MTAsbToxfSxJbnZhbGlkU3RhdGVFcnJvcjp7czoiSU5WQUxJRF9TVEFURV9FUlIiLGM6MTEsbToxfSxTeW50YXhFcnJvcjp7czoiU1lOVEFYX0VSUiIsYzoxMixtOjF9LEludmFsaWRNb2RpZmljYXRpb25FcnJvcjp7czoiSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSIixjOjEzLG06MX0sTmFtZXNwYWNlRXJyb3I6e3M6Ik5BTUVTUEFDRV9FUlIiLGM6MTQsbToxfSxJbnZhbGlkQWNjZXNzRXJyb3I6e3M6IklOVkFMSURfQUNDRVNTX0VSUiIsYzoxNSxtOjF9LFZhbGlkYXRpb25FcnJvcjp7czoiVkFMSURBVElPTl9FUlIiLGM6MTYsbTowfSxUeXBlTWlzbWF0Y2hFcnJvcjp7czoiVFlQRV9NSVNNQVRDSF9FUlIiLGM6MTcsbToxfSxTZWN1cml0eUVycm9yOntzOiJTRUNVUklUWV9FUlIiLGM6MTgsbToxfSxOZXR3b3JrRXJyb3I6e3M6Ik5FVFdPUktfRVJSIixjOjE5LG06MX0sQWJvcnRFcnJvcjp7czoiQUJPUlRfRVJSIixjOjIwLG06MX0sVVJMTWlzbWF0Y2hFcnJvcjp7czoiVVJMX01JU01BVENIX0VSUiIsYzoyMSxtOjF9LFF1b3RhRXhjZWVkZWRFcnJvcjp7czoiUVVPVEFfRVhDRUVERURfRVJSIixjOjIyLG06MX0sVGltZW91dEVycm9yOntzOiJUSU1FT1VUX0VSUiIsYzoyMyxtOjF9LEludmFsaWROb2RlVHlwZUVycm9yOntzOiJJTlZBTElEX05PREVfVFlQRV9FUlIiLGM6MjQsbToxfSxEYXRhQ2xvbmVFcnJvcjp7czoiREFUQV9DTE9ORV9FUlIiLGM6MjUsbToxfX19LGQwMTI6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e319LGQwMzk6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKGUpe3JldHVybiEwfX19LGQwNjY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImRhODQiKSxpPW4oIjE2MjYiKSxhPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpP3Q6dm9pZCAwfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP2Eoclt0XSk6clt0XSYmclt0XVtlXX19LGQxMzg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU2Nyb2xsPWEsbigiMTRkOSIpO3ZhciByPW4oIjEzODciKSxpPW4oIjAxMzgiKTtmdW5jdGlvbiBhKHQsZSxuKXt0aGlzLl9leHRlbnQ9dCx0aGlzLl9mcmljdGlvbj1lfHxuZXcgci5GcmljdGlvbiguMDEpLHRoaXMuX3NwcmluZz1ufHxuZXcgaS5TcHJpbmcoMSw5MCwyMCksdGhpcy5fc3RhcnRUaW1lPTAsdGhpcy5fc3ByaW5naW5nPSExLHRoaXMuX3NwcmluZ09mZnNldD0wfWEucHJvdG90eXBlLnNuYXA9ZnVuY3Rpb24odCxlKXt0aGlzLl9zcHJpbmdPZmZzZXQ9MCx0aGlzLl9zcHJpbmdpbmc9ITAsdGhpcy5fc3ByaW5nLnNuYXAodCksdGhpcy5fc3ByaW5nLnNldEVuZChlKX0sYS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5fZnJpY3Rpb24uc2V0KHQsZSksdD4wJiZlPj0wPyh0aGlzLl9zcHJpbmdPZmZzZXQ9MCx0aGlzLl9zcHJpbmdpbmc9ITAsdGhpcy5fc3ByaW5nLnNuYXAodCksdGhpcy5fc3ByaW5nLnNldEVuZCgwKSk6dDwtdGhpcy5fZXh0ZW50JiZlPD0wPyh0aGlzLl9zcHJpbmdPZmZzZXQ9MCx0aGlzLl9zcHJpbmdpbmc9ITAsdGhpcy5fc3ByaW5nLnNuYXAodCksdGhpcy5fc3ByaW5nLnNldEVuZCgtdGhpcy5fZXh0ZW50KSk6dGhpcy5fc3ByaW5naW5nPSExLHRoaXMuX3N0YXJ0VGltZT0obmV3IERhdGUpLmdldFRpbWUoKX0sYS5wcm90b3R5cGUueD1mdW5jdGlvbih0KXtpZighdGhpcy5fc3RhcnRUaW1lKXJldHVybiAwO2lmKHR8fCh0PSgobmV3IERhdGUpLmdldFRpbWUoKS10aGlzLl9zdGFydFRpbWUpLzFlMyksdGhpcy5fc3ByaW5naW5nKXJldHVybiB0aGlzLl9zcHJpbmcueCgpK3RoaXMuX3NwcmluZ09mZnNldDt2YXIgZT10aGlzLl9mcmljdGlvbi54KHQpLG49dGhpcy5keCh0KTtyZXR1cm4oZT4wJiZuPj0wfHxlPC10aGlzLl9leHRlbnQmJm48PTApJiYodGhpcy5fc3ByaW5naW5nPSEwLHRoaXMuX3NwcmluZy5zZXRFbmQoMCxuKSxlPC10aGlzLl9leHRlbnQ/dGhpcy5fc3ByaW5nT2Zmc2V0PS10aGlzLl9leHRlbnQ6dGhpcy5fc3ByaW5nT2Zmc2V0PTAsZT10aGlzLl9zcHJpbmcueCgpK3RoaXMuX3NwcmluZ09mZnNldCksZX0sYS5wcm90b3R5cGUuZHg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGU9dGhpcy5fbGFzdFRpbWU9PT10P3RoaXMuX2xhc3REeDp0aGlzLl9zcHJpbmdpbmc/dGhpcy5fc3ByaW5nLmR4KHQpOnRoaXMuX2ZyaWN0aW9uLmR4KHQpLHRoaXMuX2xhc3RUaW1lPXQsdGhpcy5fbGFzdER4PWUsZX0sYS5wcm90b3R5cGUuZG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zcHJpbmdpbmc/dGhpcy5fc3ByaW5nLmRvbmUoKTp0aGlzLl9mcmljdGlvbi5kb25lKCl9LGEucHJvdG90eXBlLnNldFZlbG9jaXR5QnlFbmQ9ZnVuY3Rpb24odCl7dGhpcy5fZnJpY3Rpb24uc2V0VmVsb2NpdHlCeUVuZCh0KX0sYS5wcm90b3R5cGUuY29uZmlndXJhdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2ZyaWN0aW9uLmNvbmZpZ3VyYXRpb24oKTtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsdGhpcy5fc3ByaW5nLmNvbmZpZ3VyYXRpb24oKSksdH19LGQxMzk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCJiNzI3IikuZmluZCxhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiZmluZCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LGQxZTc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsYT1pJiYhci5jYWxsKHsxOjJ9LDEpO2UuZj1hP2Z1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06cn0sZDI1NjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpO3QuZXhwb3J0cz1yLlByb21pc2V9LGQyNWU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiOWM5MiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZDI4YjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZTA2NSIpO3IoIml0ZXJhdG9yIil9LGQyYmI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKSxpPW4oIjgyNWEiKSxhPW4oIjNiYmUiKTt0LmV4cG9ydHM9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKCl7dmFyIHQsZT0hMSxuPXt9O3RyeXt0PXIoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLHQobixbXSksZT1uIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2gobyl7fXJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBpKG4pLGEociksZT90KG4scik6bi5fX3Byb3RvX189cixufX0oKTp2b2lkIDApfSxkM2I3OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwMGVlIiksaT1uKCJjYjJkIiksYT1uKCJiMDQxIik7cnx8aShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsYSx7dW5zYWZlOiEwfSl9LGQ0MDE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImNiMmQiKSxpPW4oImFhMWYiKSxhPUVycm9yLnByb3RvdHlwZTthLnRvU3RyaW5nIT09aSYmcihhLCJ0b1N0cmluZyIsaSl9LGQ0MTI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNWQwZSIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZDQ0ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiOWJmMiIpLmYsaT1uKCIxYTJkIiksYT1uKCJiNjIyIiksbz1hKCJ0b1N0cmluZ1RhZyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbil7dCYmIW4mJih0PXQucHJvdG90eXBlKSx0JiYhaSh0LG8pJiZyKHQsbyx7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmV9KX19LGQ0YzM6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjM0MmYiKSxpPW4oImRhODQiKTt0LmV4cG9ydHM9L2lwYWR8aXBob25lfGlwb2QvaS50ZXN0KHIpJiZ2b2lkIDAhPT1pLlBlYmJsZX0sZDRlYzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5kZWZhdWx0PWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9LG4oImQ5ZTIiKSxuKCJkNDAxIil9LGQ1OGY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjU5ZWQiKSxpPW4oIjdiMGIiKSxhPW4oIjQ0YWQiKSxvPW4oIjA3ZmEiKSxzPVR5cGVFcnJvcixjPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4sYyx1KXtyKG4pO3ZhciBsPWkoZSksZj1hKGwpLGQ9byhsKSxoPXQ/ZC0xOjAscD10Py0xOjE7aWYoYzwyKXdoaWxlKDEpe2lmKGggaW4gZil7dT1mW2hdLGgrPXA7YnJlYWt9aWYoaCs9cCx0P2g8MDpkPD1oKXRocm93IHMoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO3Q/aD49MDpkPmg7aCs9cCloIGluIGYmJih1PW4odSxmW2hdLGgsbCkpO3JldHVybiB1fX07dC5leHBvcnRzPXtsZWZ0OmMoITEpLHJpZ2h0OmMoITApfX0sZDVkNjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImViYjUiKSxpPW4oImI3MjciKS5mb3JFYWNoLGE9ci5hVHlwZWRBcnJheSxvPXIuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtvKCJmb3JFYWNoIiwoZnVuY3Rpb24odCl7aShhKHRoaXMpLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpfSxkNWZhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oIjM5YTciKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LGQ2MTg6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDA7dmFyIHI9e25hbWU6IkltYWdlVmlldyIscHJvcHM6e3NyYzp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZGlyZWN0aW9uOiJub25lIn19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNjYWxlPTEsdGhpcy5pbWdXaWR0aD0wLHRoaXMuaW1nSGVpZ2h0PTAsdGhpcy53aWR0aD0wLHRoaXMuaGVpZ2h0PTB9LG1ldGhvZHM6e29uU2NhbGU6ZnVuY3Rpb24odCl7dmFyIGU9dC5kZXRhaWwuc2NhbGU7dGhpcy5zY2FsZT1lfSxvbkltZ0xvYWQ6ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQsbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuaW1nV2lkdGg9bi53aWR0aCx0aGlzLmltZ0hlaWdodD1uLmhlaWdodH0sb25Ub3VjaFN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJGVsLG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLndpZHRoPW4ud2lkdGgsdGhpcy5oZWlnaHQ9bi5oZWlnaHQsdGhpcy5jaGVja0RpcmVjdGlvbih0KX0sb25Ub3VjaEVuZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjYWxlLG49ZSp0aGlzLmltZ1dpZHRoPnRoaXMud2lkdGgscj1lKnRoaXMuaW1nSGVpZ2h0PnRoaXMuaGVpZ2h0O3RoaXMuZGlyZWN0aW9uPW4mJnI/ImFsbCI6bj8iaG9yaXpvbnRhbCI6cj8idmVydGljYWwiOiJub25lIix0aGlzLmNoZWNrRGlyZWN0aW9uKHQpfSxjaGVja0RpcmVjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmRpcmVjdGlvbjsiYWxsIiE9PWUmJiJob3Jpem9udGFsIiE9PWV8fHQuc3RvcFByb3BhZ2F0aW9uKCl9fX07ZS5kZWZhdWx0PXJ9LGQ2MWU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlc3Ryb3lNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXFJZCxhPWlbbl0sbz1yW25dO28mJihvLnJlbW92ZUxpc3RlbmVyKGEpLGRlbGV0ZSByW25dLHQucHVibGlzaEhhbmRsZXIoIm9uUmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOm4scmVxRW5kOiEwfSkpfSxlLnJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXFJZCxvPWUub3B0aW9ucyxzPXJbbl09d2luZG93Lm1hdGNoTWVkaWEoZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MCxyPVsid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwiaGVpZ2h0IiwibWluSGVpZ2h0IiwibWF4SGVpZ2h0Iiwib3JpZW50YXRpb24iXTtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTsib3JpZW50YXRpb24iIT09aSYmIiIhPT10W2ldJiZOdW1iZXIodFtpXSk+PTAmJmUucHVzaCgiKCIuY29uY2F0KGEoaSksIjogIikuY29uY2F0KE51bWJlcih0W2ldKSwicHgpIikpLCJvcmllbnRhdGlvbiI9PT1pJiZ0W2ldJiZlLnB1c2goIigiLmNvbmNhdChhKGkpLCI6ICIpLmNvbmNhdCh0W2ldLCIpIikpfXJldHVybiBlPWUuam9pbigiIGFuZCAiKSxlfShvKSksYz1pW25dPWZ1bmN0aW9uKGUpe3QucHVibGlzaEhhbmRsZXIoIm9uUmVxdWVzdE1lZGlhUXVlcnlPYnNlcnZlciIse3JlcUlkOm4scmVzOmUubWF0Y2hlc30pfTtjKHMpLHMuYWRkTGlzdGVuZXIoYyl9LG4oImE5ZTMiKSxuKCIxNGQ5IiksbigiOTlhZiIpLG4oImFjMWYiKSxuKCI1MzE5Iik7dmFyIHI9e30saT17fTtmdW5jdGlvbiBhKHQpe3JldHVybiB0LnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKX19KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sZDY2YTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O24oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpO3ZhciBpPXIobigiZTE0MyIpKSxhPXIobigiMDBkZSIpKSxvPXIobigiZTUyYSIpKSxzPXIobigiN2JiZiIpKSxjPXIobigiYzJlMCIpKSx1PXIobigiMTNmMSIpKSxsPXIobigiNzlmZSIpKTtpLmRlZmF1bHQuY29tcG9uZW50KGEuZGVmYXVsdC5uYW1lLGEuZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudChvLmRlZmF1bHQubmFtZSxvLmRlZmF1bHQpLGkuZGVmYXVsdC5jb21wb25lbnQocy5kZWZhdWx0Lm5hbWUscy5kZWZhdWx0KSxpLmRlZmF1bHQuY29tcG9uZW50KGMuZGVmYXVsdC5uYW1lLGMuZGVmYXVsdCksaS5kZWZhdWx0LmNvbXBvbmVudCh1LmRlZmF1bHQubmFtZSx1LmRlZmF1bHQpLE9iamVjdC5rZXlzKGwuZGVmYXVsdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bC5kZWZhdWx0W3RdO2kuZGVmYXVsdC5jb21wb25lbnQoZS5uYW1lLGUpfSkpfSxkNjZkOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIiksbigiYzk3NSIpLG4oImZiNmEiKSxuKCJhYzFmIiksbigiODQxYyIpLG4oIjQ2NmQiKSxuKCIxNGQ5IiksbigiYjY0YiIpLG4oIjk5YWYiKSxuKCI3YTgyIik7dmFyIGk9cihuKCJhN2E3IikpLGE9bigiZjRmMCIpLG89bigiNDFhZSIpLHM9bigiYmM5NCIpLGM9bigiZjBiMSIpLHU9bigiYjliMSIpLGw9bigiNzU1MSIpLGY9bigiZGI2YSIpO2Z1bmN0aW9uIGQodCl7dmFyIGU9MDtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt0Lm1ldGEuaWQmJmUrK30pKSxlfWZ1bmN0aW9uIGgoKXt2YXIgdD13aW5kb3cubG9jYXRpb24uaHJlZixlPXQuaW5kZXhPZigiIyIpO3JldHVybi0xPT09ZT8iIjpkZWNvZGVVUkkodC5zbGljZShlKzEpKX1mdW5jdGlvbiBwKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIvIixlPWRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpLG49d2luZG93LmxvY2F0aW9uLnNlYXJjaCxyPXdpbmRvdy5sb2NhdGlvbi5oYXNoO3JldHVybiIvIj09PXRbdC5sZW5ndGgtMV0mJmU9PT10LnN1YnN0cmluZygwLHQubGVuZ3RoLTEpJiYoZT10LHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwiIix0K24rcikpLHQmJjA9PT1lLmluZGV4T2YodCkmJihlPWUuc2xpY2UodC5sZW5ndGgpKSwoZXx8Ii8iKStuK3J9dmFyIHY9e2luc3RhbGw6ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LHI9bi5yb3V0ZXM7ZS5jb25maWcuZGV2dG9vbHMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImhidWlsZGVyeCIpJiYoZS5jb25maWcuZGV2dG9vbHM9ITEpLCgwLHUuaW5pdFBvbHlmaWxsKShlKSwoMCxjLmxpZmVjeWNsZU1peGluKShlKSwoMCxmLnVuaUlkTWl4aW4pKGUpLCJ1bmRlZmluZWQiIT09dHlwZW9mIF9fVU5JX1JPVVRFUl9CQVNFX18mJihfX3VuaUNvbmZpZy5yb3V0ZXIuYmFzZT1fX1VOSV9ST1VURVJfQkFTRV9fKTt2YXIgdj1kKHIpLGc9bmV3IGkuZGVmYXVsdCh7aWQ6dixtb2RlOl9fdW5pQ29uZmlnLnJvdXRlci5tb2RlLGJhc2U6X191bmlDb25maWcucm91dGVyLmJhc2Uscm91dGVzOnIsc2Nyb2xsQmVoYXZpb3I6ZnVuY3Rpb24odCxlLG4pe2lmKG4pcmV0dXJuIG47aWYodCYmZSYmdC5tZXRhLmlzVGFiQmFyJiZlLm1ldGEuaXNUYWJCYXIpe3ZhciByPSgwLGwuZ2V0VGFiQmFyU2Nyb2xsUG9zaXRpb24pKHQucGFyYW1zLl9faWRfXyk7aWYocilyZXR1cm4gcn1yZXR1cm57eDowLHk6MH19fSksbT1bXSxiPWcubWF0Y2goImhpc3RvcnkiPT09X191bmlDb25maWcucm91dGVyLm1vZGU/cChfX3VuaUNvbmZpZy5yb3V0ZXIuYmFzZSk6aCgpKTtpZihiLm1ldGEubmFtZSYmKGIubWV0YS5pZD9tLnB1c2goYi5tZXRhLm5hbWUrIi0iK2IubWV0YS5pZCk6bS5wdXNoKGIubWV0YS5uYW1lKyItIisodisxKSkpLGIubWV0YSYmYi5tZXRhLm5hbWUmJihkb2N1bWVudC5ib2R5LmNsYXNzTmFtZT0idW5pLWJvZHkgIitiLm1ldGEubmFtZSxiLm1ldGEuaXNOVnVlKSl7dmFyIHk9Im52dWUtZGlyLSIrX191bmlDb25maWcubnZ1ZVsiZmxleC1kaXJlY3Rpb24iXTtkb2N1bWVudC5ib2R5LnNldEF0dHJpYnV0ZSgibnZ1ZSIsIiIpLGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKHksIiIpfWUubWl4aW4oe2JlZm9yZUNyZWF0ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXMuJG9wdGlvbnM7aWYoImFwcCI9PT1uLm1wVHlwZSl7bi5kYXRhPWZ1bmN0aW9uKCl7cmV0dXJue2tlZXBBbGl2ZUluY2x1ZGU6bX19O3ZhciBpPSgwLG8uY3JlYXRlQXBwTWl4aW4pKGUscixiKTtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtuW3RdPW5bdF0/W10uY29uY2F0KGlbdF0sblt0XSk6W2lbdF1dfSkpLG4ucm91dGVyPWcsQXJyYXkuaXNBcnJheShuLm9uRXJyb3IpJiYwIT09bi5vbkVycm9yLmxlbmd0aHx8KG4ub25FcnJvcj1bZnVuY3Rpb24oZSl7dC5lcnJvcihlKX1dKX1lbHNlIGlmKCgwLGEuaXNQYWdlKSh0aGlzKSl7dmFyIGM9KDAscy5jcmVhdGVQYWdlTWl4aW4pKCk7T2JqZWN0LmtleXMoYykuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5tcE9wdGlvbnM/blt0XT1uW3RdP1tdLmNvbmNhdChuW3RdLGNbdF0pOltjW3RdXTpuW3RdPW5bdF0/W10uY29uY2F0KGNbdF0sblt0XSk6W2NbdF1dfSkpfWVsc2UgdGhpcy4kcGFyZW50JiZ0aGlzLiRwYXJlbnQuX19wYWdlX18mJih0aGlzLl9fcGFnZV9fPXRoaXMuJHBhcmVudC5fX3BhZ2VfXyl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkcGFnZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fcGFnZV9ffX0pLGUucHJvdG90eXBlLmNyZWF0ZVNlbGVjdG9yUXVlcnk9ZnVuY3Rpb24oKXtyZXR1cm4gdW5pLmNyZWF0ZVNlbGVjdG9yUXVlcnkoKS5pbih0aGlzKX0sZS5wcm90b3R5cGUuY3JlYXRlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLHQpfSxlLnByb3RvdHlwZS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHVuaS5jcmVhdGVNZWRpYVF1ZXJ5T2JzZXJ2ZXIodGhpcyx0KX0sZS51c2UoaS5kZWZhdWx0KX19O2UuZGVmYXVsdD12fSkuY2FsbCh0aGlzLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sZDZkNjpmdW5jdGlvbih0LGUpe3ZhciBuPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0PGUpdGhyb3cgbigiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gdH19LGQ3ODQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCJhYzFmIik7dmFyIHI9bigiNDYyNSIpLGk9bigiY2IyZCIpLGE9bigiOTI2MyIpLG89bigiZDAzOSIpLHM9bigiYjYyMiIpLGM9bigiOTExMiIpLHU9cygic3BlY2llcyIpLGw9UmVnRXhwLnByb3RvdHlwZTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sZil7dmFyIGQ9cyh0KSxoPSFvKChmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiBlW2RdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3RdKGUpfSkpLHA9aCYmIW8oKGZ1bmN0aW9uKCl7dmFyIGU9ITEsbj0vYS87cmV0dXJuInNwbGl0Ij09PXQmJihuPXt9LG4uY29uc3RydWN0b3I9e30sbi5jb25zdHJ1Y3Rvclt1XT1mdW5jdGlvbigpe3JldHVybiBufSxuLmZsYWdzPSIiLG5bZF09Ly4vW2RdKSxuLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxudWxsfSxuW2RdKCIiKSwhZX0pKTtpZighaHx8IXB8fG4pe3ZhciB2PXIoLy4vW2RdKSxnPWUoZCwiIlt0XSwoZnVuY3Rpb24odCxlLG4saSxvKXt2YXIgcz1yKHQpLGM9ZS5leGVjO3JldHVybiBjPT09YXx8Yz09PWwuZXhlYz9oJiYhbz97ZG9uZTohMCx2YWx1ZTp2KGUsbixpKX06e2RvbmU6ITAsdmFsdWU6cyhuLGUsaSl9Ontkb25lOiExfX0pKTtpKFN0cmluZy5wcm90b3R5cGUsdCxnWzBdKSxpKGwsZCxnWzFdKX1mJiZjKGxbZF0sInNoYW0iLCEwKX19LGQ4MWQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJiNzI3IikubWFwLGE9bigiMWRkZSIpLG89YSgibWFwIik7cih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFvfSx7bWFwOmZ1bmN0aW9uKHQpe3JldHVybiBpKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGQ4NmI6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKTt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PW5ldyBBcnJheUJ1ZmZlcig4KTtPYmplY3QuaXNFeHRlbnNpYmxlKHQpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYSIse3ZhbHVlOjh9KX19KSl9LGQ4YzM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpLG4oImM5NzUiKSxuKCI5OWFmIik7dmFyIHI9bigiZGI2YSIpLGk9e3Byb3BzOntpZDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2FkZExpc3RlbmVycyh0aGlzLmlkKSx0aGlzLiR3YXRjaCgiaWQiLChmdW5jdGlvbihlLG4pe3QuX3JlbW92ZUxpc3RlbmVycyhuLCEwKSx0Ll9hZGRMaXN0ZW5lcnMoZSwhMCl9KSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVMaXN0ZW5lcnModGhpcy5pZCl9LG1ldGhvZHM6e19hZGRMaXN0ZW5lcnM6ZnVuY3Rpb24oZSxuKXt2YXIgaT10aGlzO2lmKCFufHxlKXt2YXIgYT10aGlzLiRvcHRpb25zLmxpc3RlbmVyczsoMCxyLmlzUGxhaW5PYmplY3QpKGEpJiZPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChmdW5jdGlvbihyKXtuPzAhPT1yLmluZGV4T2YoIkAiKSYmMCE9PXIuaW5kZXhPZigidW5pLSIpJiZ0Lm9uKCJ1bmktIi5jb25jYXQociwiLSIpLmNvbmNhdChpLiRwYWdlLmlkLCItIikuY29uY2F0KGUpLGlbYVtyXV0pOjA9PT1yLmluZGV4T2YoIkAiKT9pLiRvbigidW5pLSIuY29uY2F0KHIuc3Vic3RyKDEpKSxpW2Fbcl1dKTowPT09ci5pbmRleE9mKCJ1bmktIik/dC5vbihyLGlbYVtyXV0pOmUmJnQub24oInVuaS0iLmNvbmNhdChyLCItIikuY29uY2F0KGkuJHBhZ2UuaWQsIi0iKS5jb25jYXQoZSksaVthW3JdXSl9KSl9fSxfcmVtb3ZlTGlzdGVuZXJzOmZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcztpZighbnx8ZSl7dmFyIGE9dGhpcy4kb3B0aW9ucy5saXN0ZW5lcnM7KDAsci5pc1BsYWluT2JqZWN0KShhKSYmT2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7bj8wIT09ci5pbmRleE9mKCJAIikmJjAhPT1yLmluZGV4T2YoInVuaS0iKSYmdC5vZmYoInVuaS0iLmNvbmNhdChyLCItIikuY29uY2F0KGkuJHBhZ2UuaWQsIi0iKS5jb25jYXQoZSksaVthW3JdXSk6MD09PXIuaW5kZXhPZigiQCIpP2kuJG9mZigidW5pLSIuY29uY2F0KHIuc3Vic3RyKDEpKSxpW2Fbcl1dKTowPT09ci5pbmRleE9mKCJ1bmktIik/dC5vZmYocixpW2Fbcl1dKTplJiZ0Lm9mZigidW5pLSIuY29uY2F0KHIsIi0iKS5jb25jYXQoaS4kcGFnZS5pZCwiLSIpLmNvbmNhdChlKSxpW2Fbcl1dKX0pKX19fX07ZS5kZWZhdWx0PWl9KS5jYWxsKHRoaXMsbigiYzVjMyIpKX0sZDhjODpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByLGksYT1bInRvcCIsImxlZnQiLCJyaWdodCIsImJvdHRvbSJdLG89e307ZnVuY3Rpb24gcygpe3JldHVybiBpPSJDU1MiaW4gd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2YgQ1NTLnN1cHBvcnRzP0NTUy5zdXBwb3J0cygidG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkiKT8iZW52IjpDU1Muc3VwcG9ydHMoInRvcDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXRvcCkiKT8iY29uc3RhbnQiOiIiOiIiLGl9ZnVuY3Rpb24gYygpe2lmKGk9InN0cmluZyI9PT10eXBlb2YgaT9pOnMoKSxpKXt2YXIgdD1bXSxlPSExO3RyeXt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtlPXtwYXNzaXZlOiEwfX19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsbnVsbCxuKX1jYXRjaChwKXt9dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dShjLHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6IjAiLHRvcDoiMCIsd2lkdGg6IjAiLGhlaWdodDoiMCIsekluZGV4OiItMSIsb3ZlcmZsb3c6ImhpZGRlbiIsdmlzaWJpbGl0eToiaGlkZGVuIn0pLGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7aChjLHQpfSkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYyksZCgpLHI9ITB9ZWxzZSBhLmZvckVhY2goKGZ1bmN0aW9uKHQpe29bdF09MH0pKTtmdW5jdGlvbiB1KHQsZSl7dmFyIG49dC5zdHlsZTtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1lW3RdO25bdF09cn0pKX1mdW5jdGlvbiBkKGUpe2U/dC5wdXNoKGUpOnQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dCgpfSkpfWZ1bmN0aW9uIGgodCxuKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxMDBweCIsaGVpZ2h0OiIyMDBweCIsYm94U2l6aW5nOiJib3JkZXItYm94IixvdmVyZmxvdzoiaGlkZGVuIixwYWRkaW5nQm90dG9tOmkrIihzYWZlLWFyZWEtaW5zZXQtIituKyIpIn07dShyLGgpLHUoYSxoKSx1KHMse3RyYW5zaXRpb246IjBzIixhbmltYXRpb246Im5vbmUiLHdpZHRoOiI0MDBweCIsaGVpZ2h0OiI0MDBweCJ9KSx1KGMse3RyYW5zaXRpb246IjBzIixhbmltYXRpb246Im5vbmUiLHdpZHRoOiIyNTAlIixoZWlnaHQ6IjI1MCUifSksci5hcHBlbmRDaGlsZChzKSxhLmFwcGVuZENoaWxkKGMpLHQuYXBwZW5kQ2hpbGQociksdC5hcHBlbmRDaGlsZChhKSxkKChmdW5jdGlvbigpe3Iuc2Nyb2xsVG9wPWEuc2Nyb2xsVG9wPTFlNDt2YXIgdD1yLnNjcm9sbFRvcCxpPWEuc2Nyb2xsVG9wO2Z1bmN0aW9uIHMoKXt0aGlzLnNjcm9sbFRvcCE9PSh0aGlzPT09cj90OmkpJiYoci5zY3JvbGxUb3A9YS5zY3JvbGxUb3A9MWU0LHQ9ci5zY3JvbGxUb3AsaT1hLnNjcm9sbFRvcCxmdW5jdGlvbih0KXtsLmxlbmd0aHx8c2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD17fTtsLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09b1tlXX0pKSxsLmxlbmd0aD0wLGYuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZSh0KX0pKX0pLDApO2wucHVzaCh0KX0obikpfXIuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixzLGUpLGEuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixzLGUpfSkpO3ZhciBwPWdldENvbXB1dGVkU3R5bGUocik7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sbix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBwYXJzZUZsb2F0KHAucGFkZGluZ0JvdHRvbSl9fSl9fWZ1bmN0aW9uIHUodCl7cmV0dXJuIHJ8fGMoKSxvW3RdfXZhciBsPVtdO3ZhciBmPVtdO3ZhciBkPXtnZXQgc3VwcG9ydCgpe3JldHVybiAwIT0oInN0cmluZyI9PT10eXBlb2YgaT9pOnMoKSkubGVuZ3RofSxnZXQgdG9wKCl7cmV0dXJuIHUoInRvcCIpfSxnZXQgbGVmdCgpe3JldHVybiB1KCJsZWZ0Iil9LGdldCByaWdodCgpe3JldHVybiB1KCJyaWdodCIpfSxnZXQgYm90dG9tKCl7cmV0dXJuIHUoImJvdHRvbSIpfSxvbkNoYW5nZTpmdW5jdGlvbih0KXtzKCkmJihyfHxjKCksImZ1bmN0aW9uIj09PXR5cGVvZiB0JiZmLnB1c2godCkpfSxvZmZDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9Zi5pbmRleE9mKHQpO2U+PTAmJmYuc3BsaWNlKGUsMSl9fTt0LmV4cG9ydHM9ZH0sZDk1NDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJkNjE4IiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxkOTk4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIzNDJmIik7dC5leHBvcnRzPS9NU0lFfFRyaWRlbnQvLnRlc3Qocil9LGQ5YjU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwNjYiKSxpPW4oIjE2MjYiKSxhPW4oIjNhOWIiKSxvPW4oImZkYmYiKSxzPU9iamVjdDt0LmV4cG9ydHM9bz9mdW5jdGlvbih0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3ZhciBlPXIoIlN5bWJvbCIpO3JldHVybiBpKGUpJiZhKGUucHJvdG90eXBlLHModCkpfX0sZDllMjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZGE4NCIpLGE9bigiMmJhNCIpLG89bigiZTVjYiIpLHM9aVsiV2ViQXNzZW1ibHkiXSxjPTchPT1FcnJvcigiZSIse2NhdXNlOjd9KS5jYXVzZSx1PWZ1bmN0aW9uKHQsZSl7dmFyIG49e307blt0XT1vKHQsZSxjKSxyKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6Y30sbil9LGw9ZnVuY3Rpb24odCxlKXtpZihzJiZzW3RdKXt2YXIgbj17fTtuW3RdPW8oIldlYkFzc2VtYmx5LiIrdCxlLGMpLHIoe3RhcmdldDoiV2ViQXNzZW1ibHkiLHN0YXQ6ITAsY29uc3RydWN0b3I6ITAsYXJpdHk6MSxmb3JjZWQ6Y30sbil9fTt1KCJFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksdSgiRXZhbEVycm9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhKHQsdGhpcyxhcmd1bWVudHMpfX0pKSx1KCJSYW5nZUVycm9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhKHQsdGhpcyxhcmd1bWVudHMpfX0pKSx1KCJSZWZlcmVuY2VFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksdSgiU3ludGF4RXJyb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGEodCx0aGlzLGFyZ3VtZW50cyl9fSkpLHUoIlR5cGVFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksdSgiVVJJRXJyb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGEodCx0aGlzLGFyZ3VtZW50cyl9fSkpLGwoIkNvbXBpbGVFcnJvciIsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYSh0LHRoaXMsYXJndW1lbnRzKX19KSksbCgiTGlua0Vycm9yIiwoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhKHQsdGhpcyxhcmd1bWVudHMpfX0pKSxsKCJSdW50aW1lRXJyb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGEodCx0aGlzLGFyZ3VtZW50cyl9fSkpfSxkOWY1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNlNyIpLGk9bigiZGE4NCIpLGE9bigiYzY1YiIpLG89bigiZTMzMCIpLHM9bigiYzQzMCIpLGM9bigiODNhYiIpLHU9bigiMDRmOCIpLGw9bigiZDAzOSIpLGY9bigiMWEyZCIpLGQ9bigiM2E5YiIpLGg9bigiODI1YSIpLHA9bigiZmM2YSIpLHY9bigiYTA0YiIpLGc9bigiNTc3ZSIpLG09bigiNWM2YyIpLGI9bigiN2M3MyIpLHk9bigiZGY3NSIpLF89bigiMjQxYyIpLHc9bigiMDU3ZiIpLHg9bigiNzQxOCIpLFM9bigiMDZjZiIpLFQ9bigiOWJmMiIpLEM9bigiMzdlOCIpLGs9bigiZDFlNyIpLE89bigiY2IyZCIpLEU9bigiNTY5MiIpLEk9bigiZjc3MiIpLFA9bigiZDAxMiIpLE09bigiOTBlMyIpLEE9bigiYjYyMiIpLCQ9bigiZTUzOCIpLEw9bigiZTA2NSIpLGo9bigiNTdiOSIpLFI9bigiZDQ0ZSIpLE49bigiNjlmMyIpLEI9bigiYjcyNyIpLmZvckVhY2gsRD1JKCJoaWRkZW4iKSxGPU4uc2V0LFc9Ti5nZXR0ZXJGb3IoIlN5bWJvbCIpLEg9T2JqZWN0WyJwcm90b3R5cGUiXSxWPWkuU3ltYm9sLFU9ViYmVlsicHJvdG90eXBlIl0scT1pLlR5cGVFcnJvcix6PWkuUU9iamVjdCxZPVMuZixYPVQuZixHPXcuZixRPWsuZixKPW8oW10ucHVzaCksSz1FKCJzeW1ib2xzIiksWj1FKCJvcC1zeW1ib2xzIiksdHQ9RSgid2tzIiksZXQ9IXp8fCF6WyJwcm90b3R5cGUiXXx8IXpbInByb3RvdHlwZSJdLmZpbmRDaGlsZCxudD1jJiZsKChmdW5jdGlvbigpe3JldHVybiA3IT1iKFgoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWCh0aGlzLCJhIix7dmFsdWU6N30pLmF9fSkpLmF9KSk/ZnVuY3Rpb24odCxlLG4pe3ZhciByPVkoSCxlKTtyJiZkZWxldGUgSFtlXSxYKHQsZSxuKSxyJiZ0IT09SCYmWChILGUscil9OlgscnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1LW3RdPWIoVSk7cmV0dXJuIEYobix7dHlwZToiU3ltYm9sIix0YWc6dCxkZXNjcmlwdGlvbjplfSksY3x8KG4uZGVzY3JpcHRpb249ZSksbn0saXQ9ZnVuY3Rpb24odCxlLG4pe3Q9PT1IJiZpdChaLGUsbiksaCh0KTt2YXIgcj12KGUpO3JldHVybiBoKG4pLGYoSyxyKT8obi5lbnVtZXJhYmxlPyhmKHQsRCkmJnRbRF1bcl0mJih0W0RdW3JdPSExKSxuPWIobix7ZW51bWVyYWJsZTptKDAsITEpfSkpOihmKHQsRCl8fFgodCxELG0oMSx7fSkpLHRbRF1bcl09ITApLG50KHQscixuKSk6WCh0LHIsbil9LGF0PWZ1bmN0aW9uKHQsZSl7aCh0KTt2YXIgbj1wKGUpLHI9eShuKS5jb25jYXQodXQobikpO3JldHVybiBCKHIsKGZ1bmN0aW9uKGUpe2MmJiFhKG90LG4sZSl8fGl0KHQsZSxuW2VdKX0pKSx0fSxvdD1mdW5jdGlvbih0KXt2YXIgZT12KHQpLG49YShRLHRoaXMsZSk7cmV0dXJuISh0aGlzPT09SCYmZihLLGUpJiYhZihaLGUpKSYmKCEobnx8IWYodGhpcyxlKXx8IWYoSyxlKXx8Zih0aGlzLEQpJiZ0aGlzW0RdW2VdKXx8bil9LHN0PWZ1bmN0aW9uKHQsZSl7dmFyIG49cCh0KSxyPXYoZSk7aWYobiE9PUh8fCFmKEsscil8fGYoWixyKSl7dmFyIGk9WShuLHIpO3JldHVybiFpfHwhZihLLHIpfHxmKG4sRCkmJm5bRF1bcl18fChpLmVudW1lcmFibGU9ITApLGl9fSxjdD1mdW5jdGlvbih0KXt2YXIgZT1HKHAodCkpLG49W107cmV0dXJuIEIoZSwoZnVuY3Rpb24odCl7ZihLLHQpfHxmKFAsdCl8fEoobix0KX0pKSxufSx1dD1mdW5jdGlvbih0KXt2YXIgZT10PT09SCxuPUcoZT9aOnAodCkpLHI9W107cmV0dXJuIEIobiwoZnVuY3Rpb24odCl7IWYoSyx0KXx8ZSYmIWYoSCx0KXx8SihyLEtbdF0pfSkpLHJ9O3V8fChWPWZ1bmN0aW9uKCl7aWYoZChVLHRoaXMpKXRocm93IHEoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9nKGFyZ3VtZW50c1swXSk6dm9pZCAwLGU9TSh0KSxuPWZ1bmN0aW9uKHQpe3RoaXM9PT1IJiZhKG4sWix0KSxmKHRoaXMsRCkmJmYodGhpc1tEXSxlKSYmKHRoaXNbRF1bZV09ITEpLG50KHRoaXMsZSxtKDEsdCkpfTtyZXR1cm4gYyYmZXQmJm50KEgsZSx7Y29uZmlndXJhYmxlOiEwLHNldDpufSkscnQoZSx0KX0sVT1WWyJwcm90b3R5cGUiXSxPKFUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzKS50YWd9KSksTyhWLCJ3aXRob3V0U2V0dGVyIiwoZnVuY3Rpb24odCl7cmV0dXJuIHJ0KE0odCksdCl9KSksay5mPW90LFQuZj1pdCxDLmY9YXQsUy5mPXN0LF8uZj13LmY9Y3QseC5mPXV0LCQuZj1mdW5jdGlvbih0KXtyZXR1cm4gcnQoQSh0KSx0KX0sYyYmKFgoVSwiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcykuZGVzY3JpcHRpb259fSksc3x8TyhILCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsb3Qse3Vuc2FmZTohMH0pKSkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLHdyYXA6ITAsZm9yY2VkOiF1LHNoYW06IXV9LHtTeW1ib2w6Vn0pLEIoeSh0dCksKGZ1bmN0aW9uKHQpe0wodCl9KSkscih7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiF1fSx7dXNlU2V0dGVyOmZ1bmN0aW9uKCl7ZXQ9ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe2V0PSExfX0pLHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohdSxzaGFtOiFjfSx7Y3JlYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/Yih0KTphdChiKHQpLGUpfSxkZWZpbmVQcm9wZXJ0eTppdCxkZWZpbmVQcm9wZXJ0aWVzOmF0LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpzdH0pLHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohdX0se2dldE93blByb3BlcnR5TmFtZXM6Y3R9KSxqKCksUihWLCJTeW1ib2wiKSxQW0RdPSEwfSxkYTVjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuc3VwcG9ydHNQYXNzaXZlPXZvaWQgMCxuKCI3YTgyIik7dmFyIHI9ITE7ZS5zdXBwb3J0c1Bhc3NpdmU9cjt0cnl7dmFyIGk9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGksInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtlLnN1cHBvcnRzUGFzc2l2ZT1yPSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0LXBhc3NpdmUiLG51bGwsaSl9Y2F0Y2goYSl7fX0sZGE4NDpmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9O3QuZXhwb3J0cz1uKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fG4oIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyl8fG4oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8bigib2JqZWN0Ij09dHlwZW9mIGUmJmUpfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfSkuY2FsbCh0aGlzLG4oImM4YmEiKSl9LGRiNmE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPW4oImRhNWMiKTtPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYodCBpbiBlJiZlW3RdPT09clt0XXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gclt0XX19KSl9KSk7dmFyIGk9bigiMzViZSIpO09iamVjdC5rZXlzKGkpLmZvckVhY2goKGZ1bmN0aW9uKHQpeyJkZWZhdWx0IiE9PXQmJiJfX2VzTW9kdWxlIiE9PXQmJih0IGluIGUmJmVbdF09PT1pW3RdfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpW3RdfX0pKX0pKTt2YXIgYT1uKCJjYTA2Iik7T2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImRlZmF1bHQiIT09dCYmIl9fZXNNb2R1bGUiIT09dCYmKHQgaW4gZSYmZVt0XT09PWFbdF18fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFbdF19fSkpfSkpO3ZhciBvPW4oIjk4MDUiKTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYodCBpbiBlJiZlW3RdPT09b1t0XXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb1t0XX19KSl9KSk7dmFyIHM9bigiNDBkYSIpO09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKHQpeyJkZWZhdWx0IiE9PXQmJiJfX2VzTW9kdWxlIiE9PXQmJih0IGluIGUmJmVbdF09PT1zW3RdfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzW3RdfX0pKX0pKTt2YXIgYz1uKCIzYTdlIik7T2JqZWN0LmtleXMoYykuZm9yRWFjaCgoZnVuY3Rpb24odCl7ImRlZmF1bHQiIT09dCYmIl9fZXNNb2R1bGUiIT09dCYmKHQgaW4gZSYmZVt0XT09PWNbdF18fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGNbdF19fSkpfSkpO3ZhciB1PW4oIjk4NGMiKTtPYmplY3Qua2V5cyh1KS5mb3JFYWNoKChmdW5jdGlvbih0KXsiZGVmYXVsdCIhPT10JiYiX19lc01vZHVsZSIhPT10JiYodCBpbiBlJiZlW3RdPT09dVt0XXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVt0XX19KSl9KSl9LGRiOTA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD1mdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBTeW1ib2wmJm51bGwhPXRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9dFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKHQpfSxuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkMjhiIiksbigiM2NhMyIpLG4oImRkYjAiKSxuKCJhNjMwIil9LGRiYjQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oIjgzYWIiKSxhPW4oIjU2ZWYiKSxvPW4oImZjNmEiKSxzPW4oIjA2Y2YiKSxjPW4oIjg0MTgiKTtyKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxzaGFtOiFpfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yczpmdW5jdGlvbih0KXt2YXIgZSxuLHI9byh0KSxpPXMuZix1PWEociksbD17fSxmPTA7d2hpbGUodS5sZW5ndGg+ZiluPWkocixlPXVbZisrXSksdm9pZCAwIT09biYmYyhsLGUsbik7cmV0dXJuIGx9fSl9LGRiY2U6ZnVuY3Rpb24odCxlLG4pe24oImQzYjciKSxuKCIzY2EzIiksbigiMTBkMSIpLG4oImRkYjAiKSxuKCI3YTgyIiksbigiZTQzOSIpO3ZhciByPW4oIjcwMzciKVsiZGVmYXVsdCJdO2Z1bmN0aW9uIGkodCl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBXZWFrTWFwKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLG49bmV3IFdlYWtNYXA7cmV0dXJuKGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/bjplfSkodCl9dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIWUmJnQmJnQuX19lc01vZHVsZSlyZXR1cm4gdDtpZihudWxsPT09dHx8Im9iamVjdCIhPT1yKHQpJiYiZnVuY3Rpb24iIT09dHlwZW9mIHQpcmV0dXJue2RlZmF1bHQ6dH07dmFyIG49aShlKTtpZihuJiZuLmhhcyh0KSlyZXR1cm4gbi5nZXQodCk7dmFyIGE9e30sbz1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHQpaWYoImRlZmF1bHQiIT09cyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykpe3ZhciBjPW8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpOm51bGw7YyYmKGMuZ2V0fHxjLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGEscyxjKTphW3NdPXRbc119cmV0dXJuIGFbImRlZmF1bHQiXT10LG4mJm4uc2V0KHQsYSksYX0sdC5leHBvcnRzLl9fZXNNb2R1bGU9ITAsdC5leHBvcnRzWyJkZWZhdWx0Il09dC5leHBvcnRzfSxkYzRhOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1OWVkIiksaT1uKCI3MjM0Iik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIG49dFtlXTtyZXR1cm4gaShuKT92b2lkIDA6cihuKX19LGRjYzM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJhZTkzIikuSXRlcmF0b3JQcm90b3R5cGUsaT1uKCI3YzczIiksYT1uKCI1YzZjIiksbz1uKCJkNDRlIikscz1uKCIzZjhjIiksYz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4sdSl7dmFyIGw9ZSsiIEl0ZXJhdG9yIjtyZXR1cm4gdC5wcm90b3R5cGU9aShyLHtuZXh0OmEoKyF1LG4pfSksbyh0LGwsITEsITApLHNbbF09Yyx0fX0sZGRhZDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LiRjcmVhdGVFbGVtZW50LG49dC5fc2VsZi5fY3x8ZTtyZXR1cm4gbigidW5pLXNjcm9sbC12aWV3Iix0Ll9nKHt9LHQuJGxpc3RlbmVycyksW24oImRpdiIse3JlZjoid3JhcCIsc3RhdGljQ2xhc3M6InVuaS1zY3JvbGwtdmlldyJ9LFtuKCJkaXYiLHtyZWY6Im1haW4iLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXciLHN0eWxlOnsib3ZlcmZsb3cteCI6dC5zY3JvbGxYPyJhdXRvIjoiaGlkZGVuIiwib3ZlcmZsb3cteSI6dC5zY3JvbGxZPyJhdXRvIjoiaGlkZGVuIn19LFtuKCJkaXYiLHtyZWY6ImNvbnRlbnQiLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctY29udGVudCJ9LFt0LnJlZnJlc2hlckVuYWJsZWQ/bigiZGl2Iix7cmVmOiJyZWZyZXNoZXJpbm5lciIsc3RhdGljQ2xhc3M6InVuaS1zY3JvbGwtdmlldy1yZWZyZXNoZXIiLHN0eWxlOnsiYmFja2dyb3VuZC1jb2xvciI6dC5yZWZyZXNoZXJCYWNrZ3JvdW5kLGhlaWdodDp0LnJlZnJlc2hlckhlaWdodCsicHgifX0sWyJub25lIiE9PXQucmVmcmVzaGVyRGVmYXVsdFN0eWxlP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctcmVmcmVzaCJ9LFtuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXNjcm9sbC12aWV3LXJlZnJlc2gtaW5uZXIifSxbInB1bGxpbmciPT10LnJlZnJlc2hTdGF0ZT9uKCJzdmciLHtrZXk6InJlZnJlc2hfX2ljb24iLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctcmVmcmVzaF9faWNvbiIsc3R5bGU6e3RyYW5zZm9ybToicm90YXRlKCIrdC5yZWZyZXNoUm90YXRlKyJkZWcpIn0sYXR0cnM6e2ZpbGw6IiMyQkQwMDkiLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0In19LFtuKCJwYXRoIix7YXR0cnM6e2Q6Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoifX0pLG4oInBhdGgiLHthdHRyczp7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9fSldKTp0Ll9lKCksInJlZnJlc2hpbmciPT10LnJlZnJlc2hTdGF0ZT9uKCJzdmciLHtrZXk6InJlZnJlc2hfX3NwaW5uZXIiLHN0YXRpY0NsYXNzOiJ1bmktc2Nyb2xsLXZpZXctcmVmcmVzaF9fc3Bpbm5lciIsYXR0cnM6e3dpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMjUgMjUgNTAgNTAifX0sW24oImNpcmNsZSIse3N0YXRpY1N0eWxlOntjb2xvcjoiIzJiZDAwOSJ9LGF0dHJzOntjeDoiNTAiLGN5OiI1MCIscjoiMjAiLGZpbGw6Im5vbmUiLCJzdHJva2Utd2lkdGgiOiIzIn19KV0pOnQuX2UoKV0pXSk6dC5fZSgpLCJub25lIj09dC5yZWZyZXNoZXJEZWZhdWx0U3R5bGU/dC5fdCgicmVmcmVzaGVyIik6dC5fZSgpXSwyKTp0Ll9lKCksdC5fdCgiZGVmYXVsdCIpXSwyKV0pXSldKX0saT1bXX0sZGRiMDpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZGE4NCIpLGk9bigiZmRiYyIpLGE9bigiNzg1YSIpLG89bigiZTI2MCIpLHM9bigiOTExMiIpLGM9bigiYjYyMiIpLHU9YygiaXRlcmF0b3IiKSxsPWMoInRvU3RyaW5nVGFnIiksZj1vLnZhbHVlcyxkPWZ1bmN0aW9uKHQsZSl7aWYodCl7aWYodFt1XSE9PWYpdHJ5e3ModCx1LGYpfWNhdGNoKHIpe3RbdV09Zn1pZih0W2xdfHxzKHQsbCxlKSxpW2VdKWZvcih2YXIgbiBpbiBvKWlmKHRbbl0hPT1vW25dKXRyeXtzKHQsbixvW25dKX1jYXRjaChyKXt0W25dPW9bbl19fX07Zm9yKHZhciBoIGluIGkpZChyW2hdJiZyW2hdLnByb3RvdHlwZSxoKTtkKGEsIkRPTVRva2VuTGlzdCIpfSxkZjc1OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJjYTg0IiksaT1uKCI3ODM5Iik7dC5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gcih0LGkpfX0sZGZiOTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMDdmYSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuPTAsaT1yKGUpLGE9bmV3IHQoaSk7d2hpbGUoaT5uKWFbbl09ZVtuKytdO3JldHVybiBhfX0sZTAxYTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oIjgzYWIiKSxhPW4oImRhODQiKSxvPW4oImUzMzAiKSxzPW4oIjFhMmQiKSxjPW4oIjE2MjYiKSx1PW4oIjNhOWIiKSxsPW4oIjU3N2UiKSxmPW4oIjliZjIiKS5mLGQ9bigiZTg5MyIpLGg9YS5TeW1ib2wscD1oJiZoLnByb3RvdHlwZTtpZihpJiZjKGgpJiYoISgiZGVzY3JpcHRpb24iaW4gcCl8fHZvaWQgMCE9PWgoKS5kZXNjcmlwdGlvbikpe3ZhciB2PXt9LGc9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPDF8fHZvaWQgMD09PWFyZ3VtZW50c1swXT92b2lkIDA6bChhcmd1bWVudHNbMF0pLGU9dShwLHRoaXMpP25ldyBoKHQpOnZvaWQgMD09PXQ/aCgpOmgodCk7cmV0dXJuIiI9PT10JiYodltlXT0hMCksZX07ZChnLGgpLGcucHJvdG90eXBlPXAscC5jb25zdHJ1Y3Rvcj1nO3ZhciBtPSJTeW1ib2wodGVzdCkiPT1TdHJpbmcoaCgidGVzdCIpKSxiPW8ocC52YWx1ZU9mKSx5PW8ocC50b1N0cmluZyksXz0vXlN5bWJvbFwoKC4qKVwpW14pXSskLyx3PW8oIiIucmVwbGFjZSkseD1vKCIiLnNsaWNlKTtmKHAsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PWIodGhpcyk7aWYocyh2LHQpKXJldHVybiIiO3ZhciBlPXkodCksbj1tP3goZSw3LC0xKTp3KGUsXywiJDEiKTtyZXR1cm4iIj09PW4/dm9pZCAwOm59fSkscih7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDohMH0se1N5bWJvbDpnfSl9fSxlMDRjOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpO3ZhciByPW4oImY1MjIiKSxpPW4ubihyKTtmb3IodmFyIGEgaW4gcilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKHQpe24uZChlLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIHJbdF19KSl9KGEpO2VbImRlZmF1bHQiXT1pLmF9LGUwNjU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjQyOGYiKSxpPW4oIjFhMmQiKSxhPW4oImU1MzgiKSxvPW4oIjliZjIiKS5mO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1yLlN5bWJvbHx8KHIuU3ltYm9sPXt9KTtpKGUsdCl8fG8oZSx0LHt2YWx1ZTphLmYodCl9KX19LGUwYjU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe2UmJihuW3RdPU1hdGgucm91bmQoZSkpfX1uKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZHJhd0NhbnZhcz1lLmNhbnZhc1RvVGVtcEZpbGVQYXRoPWUuY2FudmFzUHV0SW1hZ2VEYXRhPWUuY2FudmFzR2V0SW1hZ2VEYXRhPXZvaWQgMCxuKCJhOWUzIiksbigiYWNlNCIpLG4oImQzYjciKSxuKCI4YTU5IiksbigiOTA3YSIpLG4oIjlhOGMiKSxuKCJhOTc1IiksbigiNzM1ZSIpLG4oImMxYWMiKSxuKCJkMTM5IiksbigiM2E3YiIpLG4oIjk4NmEiKSxuKCIxZDAyIiksbigiZDVkNiIpLG4oIjgyZjgiKSxuKCJlOTFmIiksbigiNjBiZCIpLG4oIjVmOTYiKSxuKCIzMjgwIiksbigiM2ZjYyIpLG4oImNhOTEiKSxuKCIyNWExIiksbigiY2QyNiIpLG4oIjNjNWQiKSxuKCIyOTU0IiksbigiNjQ5ZSIpLG4oIjIxOWMiKSxuKCJiMzlhIiksbigiNzJmNyIpO3ZhciBpPXtjYW52YXNJZDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHg6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ4Iil9LHk6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ5Iil9LHdpZHRoOnt0eXBlOk51bWJlcixyZXF1aXJlZDohMCx2YWxpZGF0b3I6cigid2lkdGgiKX0saGVpZ2h0Ont0eXBlOk51bWJlcixyZXF1aXJlZDohMCx2YWxpZGF0b3I6cigiaGVpZ2h0Iil9fTtlLmNhbnZhc0dldEltYWdlRGF0YT1pO3ZhciBhPXtjYW52YXNJZDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGRhdGE6e3R5cGU6VWludDhDbGFtcGVkQXJyYXkscmVxdWlyZWQ6ITB9LHg6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ4Iil9LHk6e3R5cGU6TnVtYmVyLHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpyKCJ5Iil9LHdpZHRoOnt0eXBlOk51bWJlcixyZXF1aXJlZDohMCx2YWxpZGF0b3I6cigid2lkdGgiKX0saGVpZ2h0Ont0eXBlOk51bWJlcix2YWxpZGF0b3I6cigiaGVpZ2h0Iil9fTtlLmNhbnZhc1B1dEltYWdlRGF0YT1hO3ZhciBvPXtQTkc6InBuZyIsSlBHOiJqcGciLEpQRUc6ImpwZyJ9LHM9e3g6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MCx2YWxpZGF0b3I6cigieCIpfSx5Ont0eXBlOk51bWJlcixkZWZhdWx0OjAsdmFsaWRhdG9yOnIoInkiKX0sd2lkdGg6e3R5cGU6TnVtYmVyLHZhbGlkYXRvcjpyKCJ3aWR0aCIpfSxoZWlnaHQ6e3R5cGU6TnVtYmVyLHZhbGlkYXRvcjpyKCJoZWlnaHQiKX0sZGVzdFdpZHRoOnt0eXBlOk51bWJlcix2YWxpZGF0b3I6cigiZGVzdFdpZHRoIil9LGRlc3RIZWlnaHQ6e3R5cGU6TnVtYmVyLHZhbGlkYXRvcjpyKCJkZXN0SGVpZ2h0Iil9LGNhbnZhc0lkOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH0sZmlsZVR5cGU6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpmdW5jdGlvbih0LGUpe3Q9KHR8fCIiKS50b1VwcGVyQ2FzZSgpLGUuZmlsZVR5cGU9dCBpbiBvP29bdF06by5QTkd9fSxxdWFsaXR5Ont0eXBlOk51bWJlcix2YWxpZGF0b3I6ZnVuY3Rpb24odCxlKXtlLnF1YWxpdHk9dD4wJiZ0PDE/dDoxfX19O2UuY2FudmFzVG9UZW1wRmlsZVBhdGg9czt2YXIgYz17Y2FudmFzSWQ6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxhY3Rpb25zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwfSxyZXNlcnZlOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX19O2UuZHJhd0NhbnZhcz1jfSxlMTQzOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5yKGUpLGZ1bmN0aW9uKHQsbil7Ci8qIQogKiBWdWUuanMgdjIuNi4xMQogKiAoYykgMjAxNC0yMDIyIEV2YW4gWW91CiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCnZhciByPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIGkodCl7cmV0dXJuIHZvaWQgMD09PXR8fG51bGw9PT10fWZ1bmN0aW9uIGEodCl7cmV0dXJuIHZvaWQgMCE9PXQmJm51bGwhPT10fWZ1bmN0aW9uIG8odCl7cmV0dXJuITA9PT10fWZ1bmN0aW9uIHModCl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgdHx8Im51bWJlciI9PT10eXBlb2YgdHx8InN5bWJvbCI9PT10eXBlb2YgdHx8ImJvb2xlYW4iPT09dHlwZW9mIHR9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gbnVsbCE9PXQmJiJvYmplY3QiPT09dHlwZW9mIHR9dmFyIHU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBsKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09dS5jYWxsKHQpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT11LmNhbGwodCl9ZnVuY3Rpb24gZCh0KXt2YXIgZT1wYXJzZUZsb2F0KFN0cmluZyh0KSk7cmV0dXJuIGU+PTAmJk1hdGguZmxvb3IoZSk9PT1lJiZpc0Zpbml0ZSh0KX1mdW5jdGlvbiBoKHQpe3JldHVybiBhKHQpJiYiZnVuY3Rpb24iPT09dHlwZW9mIHQudGhlbiYmImZ1bmN0aW9uIj09PXR5cGVvZiB0LmNhdGNofWZ1bmN0aW9uIHAodCl7cmV0dXJuIG51bGw9PXQ/IiI6QXJyYXkuaXNBcnJheSh0KXx8bCh0KSYmdC50b1N0cmluZz09PXU/SlNPTi5zdHJpbmdpZnkodCxudWxsLDIpOlN0cmluZyh0KX1mdW5jdGlvbiB2KHQpe3ZhciBlPXBhcnNlRmxvYXQodCk7cmV0dXJuIGlzTmFOKGUpP3Q6ZX1mdW5jdGlvbiBnKHQsZSl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj10LnNwbGl0KCIsIiksaT0wO2k8ci5sZW5ndGg7aSsrKW5bcltpXV09ITA7cmV0dXJuIGU/ZnVuY3Rpb24odCl7cmV0dXJuIG5bdC50b0xvd2VyQ2FzZSgpXX06ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19fWcoInNsb3QsY29tcG9uZW50IiwhMCk7dmFyIG09Zygia2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMiKTtmdW5jdGlvbiBiKHQsZSl7aWYodC5sZW5ndGgpe3ZhciBuPXQuaW5kZXhPZihlKTtpZihuPi0xKXJldHVybiB0LnNwbGljZShuLDEpfX12YXIgeT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIF8odCxlKXtyZXR1cm4geS5jYWxsKHQsZSl9ZnVuY3Rpb24gdyh0KXt2YXIgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj1lW25dO3JldHVybiByfHwoZVtuXT10KG4pKX19dmFyIHg9Ly0oXHcpL2csUz13KChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXBsYWNlKHgsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/ZS50b1VwcGVyQ2FzZSgpOiIifSkpfSkpLFQ9dygoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX0pKSxDPS9cQihbQS1aXSkvZyxrPXcoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoQywiLSQxIikudG9Mb3dlckNhc2UoKX0pKTt2YXIgTz1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbih0LGUpe3JldHVybiB0LmJpbmQoZSl9OmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT90LmFwcGx5KGUsYXJndW1lbnRzKTp0LmNhbGwoZSxuKTp0LmNhbGwoZSl9cmV0dXJuIG4uX2xlbmd0aD10Lmxlbmd0aCxufTtmdW5jdGlvbiBFKHQsZSl7ZT1lfHwwO3ZhciBuPXQubGVuZ3RoLWUscj1uZXcgQXJyYXkobik7d2hpbGUobi0tKXJbbl09dFtuK2VdO3JldHVybiByfWZ1bmN0aW9uIEkodCxlKXtmb3IodmFyIG4gaW4gZSl0W25dPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gUCh0KXtmb3IodmFyIGU9e30sbj0wO248dC5sZW5ndGg7bisrKXRbbl0mJkkoZSx0W25dKTtyZXR1cm4gZX1mdW5jdGlvbiBNKHQsZSxuKXt9dmFyIEE9ZnVuY3Rpb24odCxlLG4pe3JldHVybiExfSwkPWZ1bmN0aW9uKHQpe3JldHVybiB0fTtmdW5jdGlvbiBMKHQsZSl7aWYodD09PWUpcmV0dXJuITA7dmFyIG49Yyh0KSxyPWMoZSk7aWYoIW58fCFyKXJldHVybiFuJiYhciYmU3RyaW5nKHQpPT09U3RyaW5nKGUpO3RyeXt2YXIgaT1BcnJheS5pc0FycmF5KHQpLGE9QXJyYXkuaXNBcnJheShlKTtpZihpJiZhKXJldHVybiB0Lmxlbmd0aD09PWUubGVuZ3RoJiZ0LmV2ZXJ5KChmdW5jdGlvbih0LG4pe3JldHVybiBMKHQsZVtuXSl9KSk7aWYodCBpbnN0YW5jZW9mIERhdGUmJmUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiB0LmdldFRpbWUoKT09PWUuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIG89T2JqZWN0LmtleXModCkscz1PYmplY3Qua2V5cyhlKTtyZXR1cm4gby5sZW5ndGg9PT1zLmxlbmd0aCYmby5ldmVyeSgoZnVuY3Rpb24obil7cmV0dXJuIEwodFtuXSxlW25dKX0pKX1jYXRjaCh1KXtyZXR1cm4hMX19ZnVuY3Rpb24gaih0LGUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWlmKEwodFtuXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBSKHQpe3ZhciBlPSExO3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dmFyIE49WyJjb21wb25lbnQiLCJkaXJlY3RpdmUiLCJmaWx0ZXIiXSxCPVsiYmVmb3JlQ3JlYXRlIiwiY3JlYXRlZCIsImJlZm9yZU1vdW50IiwibW91bnRlZCIsImJlZm9yZVVwZGF0ZSIsInVwZGF0ZWQiLCJiZWZvcmVEZXN0cm95IiwiZGVzdHJveWVkIiwiYWN0aXZhdGVkIiwiZGVhY3RpdmF0ZWQiLCJlcnJvckNhcHR1cmVkIiwic2VydmVyUHJlZmV0Y2giXSxEPXtvcHRpb25NZXJnZVN0cmF0ZWdpZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxzaWxlbnQ6ITEscHJvZHVjdGlvblRpcDohMSxkZXZ0b29sczohMSxwZXJmb3JtYW5jZTohMSxlcnJvckhhbmRsZXI6bnVsbCx3YXJuSGFuZGxlcjpudWxsLGlnbm9yZWRFbGVtZW50czpbXSxrZXlDb2RlczpPYmplY3QuY3JlYXRlKG51bGwpLGlzUmVzZXJ2ZWRUYWc6QSxpc1Jlc2VydmVkQXR0cjpBLGlzVW5rbm93bkVsZW1lbnQ6QSxnZXRUYWdOYW1lc3BhY2U6TSxwYXJzZVBsYXRmb3JtVGFnTmFtZTokLG11c3RVc2VQcm9wOkEsYXN5bmM6ITAsX2xpZmVjeWNsZUhvb2tzOkJ9LEY9L2EtekEtWlx1MDBCN1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUyMDBEXHUyMDNGLVx1MjA0MFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZELztmdW5jdGlvbiBXKHQpe3ZhciBlPSh0KyIiKS5jaGFyQ29kZUF0KDApO3JldHVybiAzNj09PWV8fDk1PT09ZX1mdW5jdGlvbiBIKHQsZSxuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohIXIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyIFY9bmV3IFJlZ0V4cCgiW14iK0Yuc291cmNlKyIuJF9cXGRdIik7dmFyIFUscT0iX19wcm90b19fImlue30sej0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3csWT0idW5kZWZpbmVkIiE9PXR5cGVvZiBXWEVudmlyb25tZW50JiYhIVdYRW52aXJvbm1lbnQucGxhdGZvcm0sWD1ZJiZXWEVudmlyb25tZW50LnBsYXRmb3JtLnRvTG93ZXJDYXNlKCksRz16JiZ3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLFE9RyYmL21zaWV8dHJpZGVudC8udGVzdChHKSxKPUcmJkcuaW5kZXhPZigibXNpZSA5LjAiKT4wLEs9RyYmRy5pbmRleE9mKCJlZGdlLyIpPjAsWj0oRyYmRy5pbmRleE9mKCJhbmRyb2lkIiksRyYmL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KEcpfHwiaW9zIj09PVgpLHR0PShHJiYvY2hyb21lXC9cZCsvLnRlc3QoRyksRyYmL3BoYW50b21qcy8udGVzdChHKSxHJiZHLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSxldD17fS53YXRjaCxudD0hMTtpZih6KXRyeXt2YXIgcnQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHJ0LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7bnQ9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QtcGFzc2l2ZSIsbnVsbCxydCl9Y2F0Y2goVWkpe312YXIgaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09VSYmKFU9IXomJiFZJiYidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiYodFsicHJvY2VzcyJdJiYic2VydmVyIj09PXRbInByb2Nlc3MiXS5lbnYuVlVFX0VOVikpLFV9LGF0PXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIG90KHQpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmL25hdGl2ZSBjb2RlLy50ZXN0KHQudG9TdHJpbmcoKSl9dmFyIHN0LGN0PSJ1bmRlZmluZWQiIT09dHlwZW9mIFN5bWJvbCYmb3QoU3ltYm9sKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgUmVmbGVjdCYmb3QoUmVmbGVjdC5vd25LZXlzKTtzdD0idW5kZWZpbmVkIiE9PXR5cGVvZiBTZXQmJm90KFNldCk/U2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4hMD09PXRoaXMuc2V0W3RdfSx0LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5zZXRbdF09ITB9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX0sdH0oKTt2YXIgdXQ9TSxsdD0wLGZ0PWZ1bmN0aW9uKCl7dGhpcy5pZD1sdCsrLHRoaXMuc3Vicz1bXX07ZnVuY3Rpb24gZHQodCl7ZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrLnB1c2godCksZnQuU2hhcmVkT2JqZWN0LnRhcmdldD10LGZ0LnRhcmdldD10fWZ1bmN0aW9uIGh0KCl7ZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrLnBvcCgpLGZ0LlNoYXJlZE9iamVjdC50YXJnZXQ9ZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrW2Z0LlNoYXJlZE9iamVjdC50YXJnZXRTdGFjay5sZW5ndGgtMV0sZnQudGFyZ2V0PWZ0LlNoYXJlZE9iamVjdC50YXJnZXR9ZnQucHJvdG90eXBlLmFkZFN1Yj1mdW5jdGlvbih0KXt0aGlzLnN1YnMucHVzaCh0KX0sZnQucHJvdG90eXBlLnJlbW92ZVN1Yj1mdW5jdGlvbih0KXtiKHRoaXMuc3Vicyx0KX0sZnQucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2Z0LlNoYXJlZE9iamVjdC50YXJnZXQmJmZ0LlNoYXJlZE9iamVjdC50YXJnZXQuYWRkRGVwKHRoaXMpfSxmdC5wcm90b3R5cGUubm90aWZ5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdWJzLnNsaWNlKCk7Zm9yKHZhciBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRbZV0udXBkYXRlKCl9LGZ0LlNoYXJlZE9iamVjdD17fSxmdC5TaGFyZWRPYmplY3QudGFyZ2V0PW51bGwsZnQuU2hhcmVkT2JqZWN0LnRhcmdldFN0YWNrPVtdO3ZhciBwdD1mdW5jdGlvbih0LGUsbixyLGksYSxvLHMpe3RoaXMudGFnPXQsdGhpcy5kYXRhPWUsdGhpcy5jaGlsZHJlbj1uLHRoaXMudGV4dD1yLHRoaXMuZWxtPWksdGhpcy5ucz12b2lkIDAsdGhpcy5jb250ZXh0PWEsdGhpcy5mbkNvbnRleHQ9dm9pZCAwLHRoaXMuZm5PcHRpb25zPXZvaWQgMCx0aGlzLmZuU2NvcGVJZD12b2lkIDAsdGhpcy5rZXk9ZSYmZS5rZXksdGhpcy5jb21wb25lbnRPcHRpb25zPW8sdGhpcy5jb21wb25lbnRJbnN0YW5jZT12b2lkIDAsdGhpcy5wYXJlbnQ9dm9pZCAwLHRoaXMucmF3PSExLHRoaXMuaXNTdGF0aWM9ITEsdGhpcy5pc1Jvb3RJbnNlcnQ9ITAsdGhpcy5pc0NvbW1lbnQ9ITEsdGhpcy5pc0Nsb25lZD0hMSx0aGlzLmlzT25jZT0hMSx0aGlzLmFzeW5jRmFjdG9yeT1zLHRoaXMuYXN5bmNNZXRhPXZvaWQgMCx0aGlzLmlzQXN5bmNQbGFjZWhvbGRlcj0hMX0sdnQ9e2NoaWxkOntjb25maWd1cmFibGU6ITB9fTt2dC5jaGlsZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHQucHJvdG90eXBlLHZ0KTt2YXIgZ3Q9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9IiIpO3ZhciBlPW5ldyBwdDtyZXR1cm4gZS50ZXh0PXQsZS5pc0NvbW1lbnQ9ITAsZX07ZnVuY3Rpb24gbXQodCl7cmV0dXJuIG5ldyBwdCh2b2lkIDAsdm9pZCAwLHZvaWQgMCxTdHJpbmcodCkpfWZ1bmN0aW9uIGJ0KHQpe3ZhciBlPW5ldyBwdCh0LnRhZyx0LmRhdGEsdC5jaGlsZHJlbiYmdC5jaGlsZHJlbi5zbGljZSgpLHQudGV4dCx0LmVsbSx0LmNvbnRleHQsdC5jb21wb25lbnRPcHRpb25zLHQuYXN5bmNGYWN0b3J5KTtyZXR1cm4gZS5ucz10Lm5zLGUuaXNTdGF0aWM9dC5pc1N0YXRpYyxlLmtleT10LmtleSxlLmlzQ29tbWVudD10LmlzQ29tbWVudCxlLmZuQ29udGV4dD10LmZuQ29udGV4dCxlLmZuT3B0aW9ucz10LmZuT3B0aW9ucyxlLmZuU2NvcGVJZD10LmZuU2NvcGVJZCxlLmFzeW5jTWV0YT10LmFzeW5jTWV0YSxlLmlzQ2xvbmVkPSEwLGV9dmFyIHl0PUFycmF5LnByb3RvdHlwZSxfdD1PYmplY3QuY3JlYXRlKHl0KTtbInB1c2giLCJwb3AiLCJzaGlmdCIsInVuc2hpZnQiLCJzcGxpY2UiLCJzb3J0IiwicmV2ZXJzZSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXl0W3RdO0goX3QsdCwoZnVuY3Rpb24oKXt2YXIgbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7d2hpbGUoci0tKW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLGE9ZS5hcHBseSh0aGlzLG4pLG89dGhpcy5fX29iX187c3dpdGNoKHQpe2Nhc2UicHVzaCI6Y2FzZSJ1bnNoaWZ0IjppPW47YnJlYWs7Y2FzZSJzcGxpY2UiOmk9bi5zbGljZSgyKTticmVha31yZXR1cm4gaSYmby5vYnNlcnZlQXJyYXkoaSksby5kZXAubm90aWZ5KCksYX0pKX0pKTt2YXIgd3Q9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoX3QpLHh0PSEwO2Z1bmN0aW9uIFN0KHQpe3h0PXR9dmFyIFR0PWZ1bmN0aW9uKHQpe3RoaXMudmFsdWU9dCx0aGlzLmRlcD1uZXcgZnQsdGhpcy52bUNvdW50PTAsSCh0LCJfX29iX18iLHRoaXMpLEFycmF5LmlzQXJyYXkodCk/KHE/ZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfSh0LF90KTpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgYT1uW3JdO0godCxhLGVbYV0pfX0odCxfdCx3dCksdGhpcy5vYnNlcnZlQXJyYXkodCkpOnRoaXMud2Fsayh0KX07ZnVuY3Rpb24gQ3QodCxlKXt2YXIgbjtpZihjKHQpJiYhKHQgaW5zdGFuY2VvZiBwdCkpcmV0dXJuIF8odCwiX19vYl9fIikmJnQuX19vYl9fIGluc3RhbmNlb2YgVHQ/bj10Ll9fb2JfXzp4dCYmIWl0KCkmJihBcnJheS5pc0FycmF5KHQpfHxsKHQpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZSh0KSYmIXQuX2lzVnVlJiYobj1uZXcgVHQodCkpLGUmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24ga3QodCxlLG4scixpKXt2YXIgYT1uZXcgZnQsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSk7aWYoIW98fCExIT09by5jb25maWd1cmFibGUpe3ZhciBzPW8mJm8uZ2V0LGM9byYmby5zZXQ7cyYmIWN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj10W2VdKTt2YXIgdT0haSYmQ3Qobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIGU9cz9zLmNhbGwodCk6bjtyZXR1cm4gZnQuU2hhcmVkT2JqZWN0LnRhcmdldCYmKGEuZGVwZW5kKCksdSYmKHUuZGVwLmRlcGVuZCgpLEFycmF5LmlzQXJyYXkoZSkmJkl0KGUpKSksZX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciByPXM/cy5jYWxsKHQpOm47ZT09PXJ8fGUhPT1lJiZyIT09cnx8cyYmIWN8fChjP2MuY2FsbCh0LGUpOm49ZSx1PSFpJiZDdChlKSxhLm5vdGlmeSgpKX19KX19ZnVuY3Rpb24gT3QodCxlLG4pe2lmKEFycmF5LmlzQXJyYXkodCkmJmQoZSkpcmV0dXJuIHQubGVuZ3RoPU1hdGgubWF4KHQubGVuZ3RoLGUpLHQuc3BsaWNlKGUsMSxuKSxuO2lmKGUgaW4gdCYmIShlIGluIE9iamVjdC5wcm90b3R5cGUpKXJldHVybiB0W2VdPW4sbjt2YXIgcj10Ll9fb2JfXztyZXR1cm4gdC5faXNWdWV8fHImJnIudm1Db3VudD9uOnI/KGt0KHIudmFsdWUsZSxuKSxyLmRlcC5ub3RpZnkoKSxuKToodFtlXT1uLG4pfWZ1bmN0aW9uIEV0KHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSYmZChlKSl0LnNwbGljZShlLDEpO2Vsc2V7dmFyIG49dC5fX29iX187dC5faXNWdWV8fG4mJm4udm1Db3VudHx8Xyh0LGUpJiYoZGVsZXRlIHRbZV0sbiYmbi5kZXAubm90aWZ5KCkpfX1mdW5jdGlvbiBJdCh0KXtmb3IodmFyIGU9dm9pZCAwLG49MCxyPXQubGVuZ3RoO248cjtuKyspZT10W25dLGUmJmUuX19vYl9fJiZlLl9fb2JfXy5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheShlKSYmSXQoZSl9VHQucHJvdG90eXBlLndhbGs9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPU9iamVjdC5rZXlzKHQpLG49MDtuPGUubGVuZ3RoO24rKylrdCh0LGVbbl0pfSxUdC5wcm90b3R5cGUub2JzZXJ2ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKylDdCh0W2VdKX07dmFyIFB0PUQub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO2Z1bmN0aW9uIE10KHQsZSl7aWYoIWUpcmV0dXJuIHQ7Zm9yKHZhciBuLHIsaSxhPWN0P1JlZmxlY3Qub3duS2V5cyhlKTpPYmplY3Qua2V5cyhlKSxvPTA7bzxhLmxlbmd0aDtvKyspbj1hW29dLCJfX29iX18iIT09biYmKHI9dFtuXSxpPWVbbl0sXyh0LG4pP3IhPT1pJiZsKHIpJiZsKGkpJiZNdChyLGkpOk90KHQsbixpKSk7cmV0dXJuIHR9ZnVuY3Rpb24gQXQodCxlLG4pe3JldHVybiBuP2Z1bmN0aW9uKCl7dmFyIHI9ImZ1bmN0aW9uIj09PXR5cGVvZiBlP2UuY2FsbChuLG4pOmUsaT0iZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5jYWxsKG4sbik6dDtyZXR1cm4gcj9NdChyLGkpOml9OmU/dD9mdW5jdGlvbigpe3JldHVybiBNdCgiZnVuY3Rpb24iPT09dHlwZW9mIGU/ZS5jYWxsKHRoaXMsdGhpcyk6ZSwiZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5jYWxsKHRoaXMsdGhpcyk6dCl9OmU6dH1mdW5jdGlvbiAkdCh0LGUpe3ZhciBuPWU/dD90LmNvbmNhdChlKTpBcnJheS5pc0FycmF5KGUpP2U6W2VdOnQ7cmV0dXJuIG4/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLG49MDtuPHQubGVuZ3RoO24rKyktMT09PWUuaW5kZXhPZih0W25dKSYmZS5wdXNoKHRbbl0pO3JldHVybiBlfShuKTpufWZ1bmN0aW9uIEx0KHQsZSxuLHIpe3ZhciBpPU9iamVjdC5jcmVhdGUodHx8bnVsbCk7cmV0dXJuIGU/SShpLGUpOml9UHQuZGF0YT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG4/QXQodCxlLG4pOmUmJiJmdW5jdGlvbiIhPT10eXBlb2YgZT90OkF0KHQsZSl9LEIuZm9yRWFjaCgoZnVuY3Rpb24odCl7UHRbdF09JHR9KSksTi5mb3JFYWNoKChmdW5jdGlvbih0KXtQdFt0KyJzIl09THR9KSksUHQud2F0Y2g9ZnVuY3Rpb24odCxlLG4scil7aWYodD09PWV0JiYodD12b2lkIDApLGU9PT1ldCYmKGU9dm9pZCAwKSwhZSlyZXR1cm4gT2JqZWN0LmNyZWF0ZSh0fHxudWxsKTtpZighdClyZXR1cm4gZTt2YXIgaT17fTtmb3IodmFyIGEgaW4gSShpLHQpLGUpe3ZhciBvPWlbYV0scz1lW2FdO28mJiFBcnJheS5pc0FycmF5KG8pJiYobz1bb10pLGlbYV09bz9vLmNvbmNhdChzKTpBcnJheS5pc0FycmF5KHMpP3M6W3NdfXJldHVybiBpfSxQdC5wcm9wcz1QdC5tZXRob2RzPVB0LmluamVjdD1QdC5jb21wdXRlZD1mdW5jdGlvbih0LGUsbixyKXtpZighdClyZXR1cm4gZTt2YXIgaT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBJKGksdCksZSYmSShpLGUpLGl9LFB0LnByb3ZpZGU9QXQ7dmFyIGp0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWU/dDplfTtmdW5jdGlvbiBSdCh0LGUsbil7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBlJiYoZT1lLm9wdGlvbnMpLGZ1bmN0aW9uKHQsZSl7dmFyIG49dC5wcm9wcztpZihuKXt2YXIgcixpLGEsbz17fTtpZihBcnJheS5pc0FycmF5KG4pKXtyPW4ubGVuZ3RoO3doaWxlKHItLSlpPW5bcl0sInN0cmluZyI9PT10eXBlb2YgaSYmKGE9UyhpKSxvW2FdPXt0eXBlOm51bGx9KX1lbHNlIGlmKGwobikpZm9yKHZhciBzIGluIG4paT1uW3NdLGE9UyhzKSxvW2FdPWwoaSk/aTp7dHlwZTppfTtlbHNlIDA7dC5wcm9wcz1vfX0oZSksZnVuY3Rpb24odCxlKXt2YXIgbj10LmluamVjdDtpZihuKXt2YXIgcj10LmluamVjdD17fTtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXJbbltpXV09e2Zyb206bltpXX07ZWxzZSBpZihsKG4pKWZvcih2YXIgYSBpbiBuKXt2YXIgbz1uW2FdO3JbYV09bChvKT9JKHtmcm9tOmF9LG8pOntmcm9tOm99fWVsc2UgMH19KGUpLGZ1bmN0aW9uKHQpe3ZhciBlPXQuZGlyZWN0aXZlcztpZihlKWZvcih2YXIgbiBpbiBlKXt2YXIgcj1lW25dOyJmdW5jdGlvbiI9PT10eXBlb2YgciYmKGVbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0oZSksIWUuX2Jhc2UmJihlLmV4dGVuZHMmJih0PVJ0KHQsZS5leHRlbmRzLG4pKSxlLm1peGlucykpZm9yKHZhciByPTAsaT1lLm1peGlucy5sZW5ndGg7cjxpO3IrKyl0PVJ0KHQsZS5taXhpbnNbcl0sbik7dmFyIGEsbz17fTtmb3IoYSBpbiB0KXMoYSk7Zm9yKGEgaW4gZSlfKHQsYSl8fHMoYSk7ZnVuY3Rpb24gcyhyKXt2YXIgaT1QdFtyXXx8anQ7b1tyXT1pKHRbcl0sZVtyXSxuLHIpfXJldHVybiBvfWZ1bmN0aW9uIE50KHQsZSxuLHIpe2lmKCJzdHJpbmciPT09dHlwZW9mIG4pe3ZhciBpPXRbZV07aWYoXyhpLG4pKXJldHVybiBpW25dO3ZhciBhPVMobik7aWYoXyhpLGEpKXJldHVybiBpW2FdO3ZhciBvPVQoYSk7aWYoXyhpLG8pKXJldHVybiBpW29dO3ZhciBzPWlbbl18fGlbYV18fGlbb107cmV0dXJuIHN9fWZ1bmN0aW9uIEJ0KHQsZSxuLHIpe3ZhciBpPWVbdF0sYT0hXyhuLHQpLG89blt0XSxzPVd0KEJvb2xlYW4saS50eXBlKTtpZihzPi0xKWlmKGEmJiFfKGksImRlZmF1bHQiKSlvPSExO2Vsc2UgaWYoIiI9PT1vfHxvPT09ayh0KSl7dmFyIGM9V3QoU3RyaW5nLGkudHlwZSk7KGM8MHx8czxjKSYmKG89ITApfWlmKHZvaWQgMD09PW8pe289ZnVuY3Rpb24odCxlLG4pe2lmKCFfKGUsImRlZmF1bHQiKSlyZXR1cm47dmFyIHI9ZS5kZWZhdWx0OzA7aWYodCYmdC4kb3B0aW9ucy5wcm9wc0RhdGEmJnZvaWQgMD09PXQuJG9wdGlvbnMucHJvcHNEYXRhW25dJiZ2b2lkIDAhPT10Ll9wcm9wc1tuXSlyZXR1cm4gdC5fcHJvcHNbbl07cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiByJiYiRnVuY3Rpb24iIT09RHQoZS50eXBlKT9yLmNhbGwodCk6cn0ocixpLHQpO3ZhciB1PXh0O1N0KCEwKSxDdChvKSxTdCh1KX1yZXR1cm4gb31mdW5jdGlvbiBEdCh0KXt2YXIgZT10JiZ0LnRvU3RyaW5nKCkubWF0Y2goL15ccypmdW5jdGlvbiAoXHcrKS8pO3JldHVybiBlP2VbMV06IiJ9ZnVuY3Rpb24gRnQodCxlKXtyZXR1cm4gRHQodCk9PT1EdChlKX1mdW5jdGlvbiBXdCh0LGUpe2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiBGdChlLHQpPzA6LTE7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKEZ0KGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gSHQodCxlLG4pe2R0KCk7dHJ5e2lmKGUpe3ZhciByPWU7d2hpbGUocj1yLiRwYXJlbnQpe3ZhciBpPXIuJG9wdGlvbnMuZXJyb3JDYXB0dXJlZDtpZihpKWZvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXRyeXt2YXIgbz0hMT09PWlbYV0uY2FsbChyLHQsZSxuKTtpZihvKXJldHVybn1jYXRjaChVaSl7VXQoVWksciwiZXJyb3JDYXB0dXJlZCBob29rIil9fX1VdCh0LGUsbil9ZmluYWxseXtodCgpfX1mdW5jdGlvbiBWdCh0LGUsbixyLGkpe3ZhciBhO3RyeXthPW4/dC5hcHBseShlLG4pOnQuY2FsbChlKSxhJiYhYS5faXNWdWUmJmgoYSkmJiFhLl9oYW5kbGVkJiYoYS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIEh0KHQscixpKyIgKFByb21pc2UvYXN5bmMpIil9KSksYS5faGFuZGxlZD0hMCl9Y2F0Y2goVWkpe0h0KFVpLHIsaSl9cmV0dXJuIGF9ZnVuY3Rpb24gVXQodCxlLG4pe2lmKEQuZXJyb3JIYW5kbGVyKXRyeXtyZXR1cm4gRC5lcnJvckhhbmRsZXIuY2FsbChudWxsLHQsZSxuKX1jYXRjaChVaSl7VWkhPT10JiZxdChVaSxudWxsLCJjb25maWcuZXJyb3JIYW5kbGVyIil9cXQodCxlLG4pfWZ1bmN0aW9uIHF0KHQsZSxyKXtpZigheiYmIVl8fCJ1bmRlZmluZWQiPT09dHlwZW9mIG4pdGhyb3cgdDtuLmVycm9yKHQpfXZhciB6dCxZdD0hMSxYdD1bXSxHdD0hMTtmdW5jdGlvbiBRdCgpe0d0PSExO3ZhciB0PVh0LnNsaWNlKDApO1h0Lmxlbmd0aD0wO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0oKX1pZigidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm9taXNlJiZvdChQcm9taXNlKSl7dmFyIEp0PVByb21pc2UucmVzb2x2ZSgpO3p0PWZ1bmN0aW9uKCl7SnQudGhlbihRdCksWiYmc2V0VGltZW91dChNKX0sWXQ9ITB9ZWxzZSBpZihRfHwidW5kZWZpbmVkIj09PXR5cGVvZiBNdXRhdGlvbk9ic2VydmVyfHwhb3QoTXV0YXRpb25PYnNlcnZlcikmJiJbb2JqZWN0IE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcl0iIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXp0PSJ1bmRlZmluZWQiIT09dHlwZW9mIHNldEltbWVkaWF0ZSYmb3Qoc2V0SW1tZWRpYXRlKT9mdW5jdGlvbigpe3NldEltbWVkaWF0ZShRdCl9OmZ1bmN0aW9uKCl7c2V0VGltZW91dChRdCwwKX07ZWxzZXt2YXIgS3Q9MSxadD1uZXcgTXV0YXRpb25PYnNlcnZlcihRdCksdGU9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKEt0KSk7WnQub2JzZXJ2ZSh0ZSx7Y2hhcmFjdGVyRGF0YTohMH0pLHp0PWZ1bmN0aW9uKCl7S3Q9KEt0KzEpJTIsdGUuZGF0YT1TdHJpbmcoS3QpfSxZdD0hMH1mdW5jdGlvbiBlZSh0LGUpe3ZhciBuO2lmKFh0LnB1c2goKGZ1bmN0aW9uKCl7aWYodCl0cnl7dC5jYWxsKGUpfWNhdGNoKFVpKXtIdChVaSxlLCJuZXh0VGljayIpfWVsc2UgbiYmbihlKX0pKSxHdHx8KEd0PSEwLHp0KCkpLCF0JiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7bj10fSkpfXZhciBuZT1uZXcgc3Q7ZnVuY3Rpb24gcmUodCl7KGZ1bmN0aW9uIHQoZSxuKXt2YXIgcixpLGE9QXJyYXkuaXNBcnJheShlKTtpZighYSYmIWMoZSl8fE9iamVjdC5pc0Zyb3plbihlKXx8ZSBpbnN0YW5jZW9mIHB0KXJldHVybjtpZihlLl9fb2JfXyl7dmFyIG89ZS5fX29iX18uZGVwLmlkO2lmKG4uaGFzKG8pKXJldHVybjtuLmFkZChvKX1pZihhKXtyPWUubGVuZ3RoO3doaWxlKHItLSl0KGVbcl0sbil9ZWxzZXtpPU9iamVjdC5rZXlzKGUpLHI9aS5sZW5ndGg7d2hpbGUoci0tKXQoZVtpW3JdXSxuKX19KSh0LG5lKSxuZS5jbGVhcigpfXZhciBpZT13KChmdW5jdGlvbih0KXt2YXIgZT0iJiI9PT10LmNoYXJBdCgwKTt0PWU/dC5zbGljZSgxKTp0O3ZhciBuPSJ+Ij09PXQuY2hhckF0KDApO3Q9bj90LnNsaWNlKDEpOnQ7dmFyIHI9IiEiPT09dC5jaGFyQXQoMCk7cmV0dXJuIHQ9cj90LnNsaWNlKDEpOnQse25hbWU6dCxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6ZX19KSk7ZnVuY3Rpb24gYWUodCxlKXtmdW5jdGlvbiBuKCl7dmFyIHQ9YXJndW1lbnRzLHI9bi5mbnM7aWYoIUFycmF5LmlzQXJyYXkocikpcmV0dXJuIFZ0KHIsbnVsbCxhcmd1bWVudHMsZSwidi1vbiBoYW5kbGVyIik7Zm9yKHZhciBpPXIuc2xpY2UoKSxhPTA7YTxpLmxlbmd0aDthKyspVnQoaVthXSxudWxsLHQsZSwidi1vbiBoYW5kbGVyIil9cmV0dXJuIG4uZm5zPXQsbn1mdW5jdGlvbiBvZSh0LGUsbixyLGEscyl7dmFyIGMsdSxsLGY7Zm9yKGMgaW4gdCl1PXRbY10sbD1lW2NdLGY9aWUoYyksaSh1KXx8KGkobCk/KGkodS5mbnMpJiYodT10W2NdPWFlKHUscykpLG8oZi5vbmNlKSYmKHU9dFtjXT1hKGYubmFtZSx1LGYuY2FwdHVyZSkpLG4oZi5uYW1lLHUsZi5jYXB0dXJlLGYucGFzc2l2ZSxmLnBhcmFtcykpOnUhPT1sJiYobC5mbnM9dSx0W2NdPWwpKTtmb3IoYyBpbiBlKWkodFtjXSkmJihmPWllKGMpLHIoZi5uYW1lLGVbY10sZi5jYXB0dXJlKSl9ZnVuY3Rpb24gc2UodCxlLG4pe3ZhciByO3QgaW5zdGFuY2VvZiBwdCYmKHQ9dC5kYXRhLmhvb2t8fCh0LmRhdGEuaG9vaz17fSkpO3ZhciBzPXRbZV07ZnVuY3Rpb24gYygpe24uYXBwbHkodGhpcyxhcmd1bWVudHMpLGIoci5mbnMsYyl9aShzKT9yPWFlKFtjXSk6YShzLmZucykmJm8ocy5tZXJnZWQpPyhyPXMsci5mbnMucHVzaChjKSk6cj1hZShbcyxjXSksci5tZXJnZWQ9ITAsdFtlXT1yfWZ1bmN0aW9uIGNlKHQsZSxuLHIpe3ZhciBvPWUub3B0aW9ucy5tcE9wdGlvbnMmJmUub3B0aW9ucy5tcE9wdGlvbnMucHJvcGVydGllcztpZihpKG8pKXJldHVybiBuO3ZhciBzPWUub3B0aW9ucy5tcE9wdGlvbnMuZXh0ZXJuYWxDbGFzc2VzfHxbXSxjPXQuYXR0cnMsdT10LnByb3BzO2lmKGEoYyl8fGEodSkpZm9yKHZhciBsIGluIG8pe3ZhciBmPWsobCksZD11ZShuLHUsbCxmLCEwKXx8dWUobixjLGwsZiwhMSk7ZCYmbltsXSYmLTEhPT1zLmluZGV4T2YoZikmJnJbUyhuW2xdKV0mJihuW2xdPXJbUyhuW2xdKV0pfXJldHVybiBufWZ1bmN0aW9uIHVlKHQsZSxuLHIsaSl7aWYoYShlKSl7aWYoXyhlLG4pKXJldHVybiB0W25dPWVbbl0saXx8ZGVsZXRlIGVbbl0sITA7aWYoXyhlLHIpKXJldHVybiB0W25dPWVbcl0saXx8ZGVsZXRlIGVbcl0sITB9cmV0dXJuITF9ZnVuY3Rpb24gbGUodCl7cmV0dXJuIHModCk/W210KHQpXTpBcnJheS5pc0FycmF5KHQpP2Z1bmN0aW9uIHQoZSxuKXt2YXIgcixjLHUsbCxmPVtdO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspYz1lW3JdLGkoYyl8fCJib29sZWFuIj09PXR5cGVvZiBjfHwodT1mLmxlbmd0aC0xLGw9Zlt1XSxBcnJheS5pc0FycmF5KGMpP2MubGVuZ3RoPjAmJihjPXQoYywobnx8IiIpKyJfIityKSxmZShjWzBdKSYmZmUobCkmJihmW3VdPW10KGwudGV4dCtjWzBdLnRleHQpLGMuc2hpZnQoKSksZi5wdXNoLmFwcGx5KGYsYykpOnMoYyk/ZmUobCk/Zlt1XT1tdChsLnRleHQrYyk6IiIhPT1jJiZmLnB1c2gobXQoYykpOmZlKGMpJiZmZShsKT9mW3VdPW10KGwudGV4dCtjLnRleHQpOihvKGUuX2lzVkxpc3QpJiZhKGMudGFnKSYmaShjLmtleSkmJmEobikmJihjLmtleT0iX192bGlzdCIrbisiXyIrcisiX18iKSxmLnB1c2goYykpKTtyZXR1cm4gZn0odCk6dm9pZCAwfWZ1bmN0aW9uIGZlKHQpe3JldHVybiBhKHQpJiZhKHQudGV4dCkmJmZ1bmN0aW9uKHQpe3JldHVybiExPT09dH0odC5pc0NvbW1lbnQpfWZ1bmN0aW9uIGRlKHQsZSl7aWYodCl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj1jdD9SZWZsZWN0Lm93bktleXModCk6T2JqZWN0LmtleXModCksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2lmKCJfX29iX18iIT09YSl7dmFyIG89dFthXS5mcm9tLHM9ZTt3aGlsZShzKXtpZihzLl9wcm92aWRlZCYmXyhzLl9wcm92aWRlZCxvKSl7blthXT1zLl9wcm92aWRlZFtvXTticmVha31zPXMuJHBhcmVudH1pZighcylpZigiZGVmYXVsdCJpbiB0W2FdKXt2YXIgYz10W2FdLmRlZmF1bHQ7blthXT0iZnVuY3Rpb24iPT09dHlwZW9mIGM/Yy5jYWxsKGUpOmN9ZWxzZSAwfX1yZXR1cm4gbn19ZnVuY3Rpb24gaGUodCxlKXtpZighdHx8IXQubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT10Lmxlbmd0aDtyPGk7cisrKXt2YXIgYT10W3JdLG89YS5kYXRhO2lmKG8mJm8uYXR0cnMmJm8uYXR0cnMuc2xvdCYmZGVsZXRlIG8uYXR0cnMuc2xvdCxhLmNvbnRleHQhPT1lJiZhLmZuQ29udGV4dCE9PWV8fCFvfHxudWxsPT1vLnNsb3QpYS5hc3luY01ldGEmJmEuYXN5bmNNZXRhLmRhdGEmJiJwYWdlIj09PWEuYXN5bmNNZXRhLmRhdGEuc2xvdD8oblsicGFnZSJdfHwoblsicGFnZSJdPVtdKSkucHVzaChhKToobi5kZWZhdWx0fHwobi5kZWZhdWx0PVtdKSkucHVzaChhKTtlbHNle3ZhciBzPW8uc2xvdCxjPW5bc118fChuW3NdPVtdKTsidGVtcGxhdGUiPT09YS50YWc/Yy5wdXNoLmFwcGx5KGMsYS5jaGlsZHJlbnx8W10pOmMucHVzaChhKX19Zm9yKHZhciB1IGluIG4pblt1XS5ldmVyeShwZSkmJmRlbGV0ZSBuW3VdO3JldHVybiBufWZ1bmN0aW9uIHBlKHQpe3JldHVybiB0LmlzQ29tbWVudCYmIXQuYXN5bmNGYWN0b3J5fHwiICI9PT10LnRleHR9ZnVuY3Rpb24gdmUodCxlLG4pe3ZhciBpLGE9T2JqZWN0LmtleXMoZSkubGVuZ3RoPjAsbz10PyEhdC4kc3RhYmxlOiFhLHM9dCYmdC4ka2V5O2lmKHQpe2lmKHQuX25vcm1hbGl6ZWQpcmV0dXJuIHQuX25vcm1hbGl6ZWQ7aWYobyYmbiYmbiE9PXImJnM9PT1uLiRrZXkmJiFhJiYhbi4kaGFzTm9ybWFsKXJldHVybiBuO2Zvcih2YXIgYyBpbiBpPXt9LHQpdFtjXSYmIiQiIT09Y1swXSYmKGlbY109Z2UoZSxjLHRbY10pKX1lbHNlIGk9e307Zm9yKHZhciB1IGluIGUpdSBpbiBpfHwoaVt1XT1tZShlLHUpKTtyZXR1cm4gdCYmT2JqZWN0LmlzRXh0ZW5zaWJsZSh0KSYmKHQuX25vcm1hbGl6ZWQ9aSksSChpLCIkc3RhYmxlIixvKSxIKGksIiRrZXkiLHMpLEgoaSwiJGhhc05vcm1hbCIsYSksaX1mdW5jdGlvbiBnZSh0LGUsbil7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoP24uYXBwbHkobnVsbCxhcmd1bWVudHMpOm4oe30pO3JldHVybiB0PXQmJiJvYmplY3QiPT09dHlwZW9mIHQmJiFBcnJheS5pc0FycmF5KHQpP1t0XTpsZSh0KSx0JiYoMD09PXQubGVuZ3RofHwxPT09dC5sZW5ndGgmJnRbMF0uaXNDb21tZW50KT92b2lkIDA6dH07cmV0dXJuIG4ucHJveHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse2dldDpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSkscn1mdW5jdGlvbiBtZSh0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0W2VdfX1mdW5jdGlvbiBiZSh0LGUpe3ZhciBuLHIsaSxvLHM7aWYoQXJyYXkuaXNBcnJheSh0KXx8InN0cmluZyI9PT10eXBlb2YgdClmb3Iobj1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspbltyXT1lKHRbcl0scixyLHIpO2Vsc2UgaWYoIm51bWJlciI9PT10eXBlb2YgdClmb3Iobj1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspbltyXT1lKHIrMSxyLHIscik7ZWxzZSBpZihjKHQpKWlmKGN0JiZ0W1N5bWJvbC5pdGVyYXRvcl0pe249W107dmFyIHU9dFtTeW1ib2wuaXRlcmF0b3JdKCksbD11Lm5leHQoKTt3aGlsZSghbC5kb25lKW4ucHVzaChlKGwudmFsdWUsbi5sZW5ndGgscixyKyspKSxsPXUubmV4dCgpfWVsc2UgZm9yKG89T2JqZWN0LmtleXModCksbj1uZXcgQXJyYXkoby5sZW5ndGgpLHI9MCxpPW8ubGVuZ3RoO3I8aTtyKyspcz1vW3JdLG5bcl09ZSh0W3NdLHMscixyKTtyZXR1cm4gYShuKXx8KG49W10pLG4uX2lzVkxpc3Q9ITAsbn1mdW5jdGlvbiB5ZSh0LGUsbixyKXt2YXIgaSxhPXRoaXMuJHNjb3BlZFNsb3RzW3RdO2E/KG49bnx8e30sciYmKG49SShJKHt9LHIpLG4pKSxpPWEobix0aGlzLG4uX2kpfHxlKTppPXRoaXMuJHNsb3RzW3RdfHxlO3ZhciBvPW4mJm4uc2xvdDtyZXR1cm4gbz90aGlzLiRjcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIse3Nsb3Q6b30saSk6aX1mdW5jdGlvbiBfZSh0KXtyZXR1cm4gTnQodGhpcy4kb3B0aW9ucywiZmlsdGVycyIsdCl8fCR9ZnVuY3Rpb24gd2UodCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8tMT09PXQuaW5kZXhPZihlKTp0IT09ZX1mdW5jdGlvbiB4ZSh0LGUsbixyLGkpe3ZhciBhPUQua2V5Q29kZXNbZV18fG47cmV0dXJuIGkmJnImJiFELmtleUNvZGVzW2VdP3dlKGkscik6YT93ZShhLHQpOnI/ayhyKSE9PWU6dm9pZCAwfWZ1bmN0aW9uIFNlKHQsZSxuLHIsaSl7aWYobilpZihjKG4pKXt2YXIgYTtBcnJheS5pc0FycmF5KG4pJiYobj1QKG4pKTt2YXIgbz1mdW5jdGlvbihvKXtpZigiY2xhc3MiPT09b3x8InN0eWxlIj09PW98fG0obykpYT10O2Vsc2V7dmFyIHM9dC5hdHRycyYmdC5hdHRycy50eXBlO2E9cnx8RC5tdXN0VXNlUHJvcChlLHMsbyk/dC5kb21Qcm9wc3x8KHQuZG9tUHJvcHM9e30pOnQuYXR0cnN8fCh0LmF0dHJzPXt9KX12YXIgYz1TKG8pLHU9ayhvKTtpZighKGMgaW4gYSkmJiEodSBpbiBhKSYmKGFbb109bltvXSxpKSl7dmFyIGw9dC5vbnx8KHQub249e30pO2xbInVwZGF0ZToiK29dPWZ1bmN0aW9uKHQpe25bb109dH19fTtmb3IodmFyIHMgaW4gbilvKHMpfWVsc2U7cmV0dXJuIHR9ZnVuY3Rpb24gVGUodCxlKXt2YXIgbj10aGlzLl9zdGF0aWNUcmVlc3x8KHRoaXMuX3N0YXRpY1RyZWVzPVtdKSxyPW5bdF07cmV0dXJuIHImJiFlfHwocj1uW3RdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW3RdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSxrZShyLCJfX3N0YXRpY19fIit0LCExKSkscn1mdW5jdGlvbiBDZSh0LGUsbil7cmV0dXJuIGtlKHQsIl9fb25jZV9fIitlKyhuPyJfIituOiIiKSwhMCksdH1mdW5jdGlvbiBrZSh0LGUsbil7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdJiYic3RyaW5nIiE9PXR5cGVvZiB0W3JdJiZPZSh0W3JdLGUrIl8iK3Isbik7ZWxzZSBPZSh0LGUsbil9ZnVuY3Rpb24gT2UodCxlLG4pe3QuaXNTdGF0aWM9ITAsdC5rZXk9ZSx0LmlzT25jZT1ufWZ1bmN0aW9uIEVlKHQsZSl7aWYoZSlpZihsKGUpKXt2YXIgbj10Lm9uPXQub24/SSh7fSx0Lm9uKTp7fTtmb3IodmFyIHIgaW4gZSl7dmFyIGk9bltyXSxhPWVbcl07bltyXT1pP1tdLmNvbmNhdChpLGEpOmF9fWVsc2U7cmV0dXJuIHR9ZnVuY3Rpb24gSWUodCxlLG4scil7ZT1lfHx7JHN0YWJsZTohbn07Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07QXJyYXkuaXNBcnJheShhKT9JZShhLGUsbik6YSYmKGEucHJveHkmJihhLmZuLnByb3h5PSEwKSxlW2Eua2V5XT1hLmZuKX1yZXR1cm4gciYmKGUuJGtleT1yKSxlfWZ1bmN0aW9uIFBlKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKz0yKXt2YXIgcj1lW25dOyJzdHJpbmciPT09dHlwZW9mIHImJnImJih0W2Vbbl1dPWVbbisxXSl9cmV0dXJuIHR9ZnVuY3Rpb24gTWUodCxlKXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0P2UrdDp0fWZ1bmN0aW9uIEFlKHQpe3QuX289Q2UsdC5fbj12LHQuX3M9cCx0Ll9sPWJlLHQuX3Q9eWUsdC5fcT1MLHQuX2k9aix0Ll9tPVRlLHQuX2Y9X2UsdC5faz14ZSx0Ll9iPVNlLHQuX3Y9bXQsdC5fZT1ndCx0Ll91PUllLHQuX2c9RWUsdC5fZD1QZSx0Ll9wPU1lfWZ1bmN0aW9uICRlKHQsZSxuLGksYSl7dmFyIHMsYz10aGlzLHU9YS5vcHRpb25zO18oaSwiX3VpZCIpPyhzPU9iamVjdC5jcmVhdGUoaSkscy5fb3JpZ2luYWw9aSk6KHM9aSxpPWkuX29yaWdpbmFsKTt2YXIgbD1vKHUuX2NvbXBpbGVkKSxmPSFsO3RoaXMuZGF0YT10LHRoaXMucHJvcHM9ZSx0aGlzLmNoaWxkcmVuPW4sdGhpcy5wYXJlbnQ9aSx0aGlzLmxpc3RlbmVycz10Lm9ufHxyLHRoaXMuaW5qZWN0aW9ucz1kZSh1LmluamVjdCxpKSx0aGlzLnNsb3RzPWZ1bmN0aW9uKCl7cmV0dXJuIGMuJHNsb3RzfHx2ZSh0LnNjb3BlZFNsb3RzLGMuJHNsb3RzPWhlKG4saSkpLGMuJHNsb3RzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic2NvcGVkU2xvdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB2ZSh0LnNjb3BlZFNsb3RzLHRoaXMuc2xvdHMoKSl9fSksbCYmKHRoaXMuJG9wdGlvbnM9dSx0aGlzLiRzbG90cz10aGlzLnNsb3RzKCksdGhpcy4kc2NvcGVkU2xvdHM9dmUodC5zY29wZWRTbG90cyx0aGlzLiRzbG90cykpLHUuX3Njb3BlSWQ/dGhpcy5fYz1mdW5jdGlvbih0LGUsbixyKXt2YXIgYT1GZShzLHQsZSxuLHIsZik7cmV0dXJuIGEmJiFBcnJheS5pc0FycmF5KGEpJiYoYS5mblNjb3BlSWQ9dS5fc2NvcGVJZCxhLmZuQ29udGV4dD1pKSxhfTp0aGlzLl9jPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBGZShzLHQsZSxuLHIsZil9fWZ1bmN0aW9uIExlKHQsZSxuLHIsaSl7dmFyIGE9YnQodCk7cmV0dXJuIGEuZm5Db250ZXh0PW4sYS5mbk9wdGlvbnM9cixlLnNsb3QmJigoYS5kYXRhfHwoYS5kYXRhPXt9KSkuc2xvdD1lLnNsb3QpLGF9ZnVuY3Rpb24gamUodCxlKXtmb3IodmFyIG4gaW4gZSl0W1MobildPWVbbl19QWUoJGUucHJvdG90eXBlKTt2YXIgUmU9e2luaXQ6ZnVuY3Rpb24odCxlKXtpZih0LmNvbXBvbmVudEluc3RhbmNlJiYhdC5jb21wb25lbnRJbnN0YW5jZS5faXNEZXN0cm95ZWQmJnQuZGF0YS5rZWVwQWxpdmUpe3ZhciBuPXQ7UmUucHJlcGF0Y2gobixuKX1lbHNle3ZhciByPXQuY29tcG9uZW50SW5zdGFuY2U9ZnVuY3Rpb24odCxlKXt2YXIgbj17X2lzQ29tcG9uZW50OiEwLF9wYXJlbnRWbm9kZTp0LHBhcmVudDplfSxyPXQuZGF0YS5pbmxpbmVUZW1wbGF0ZTthKHIpJiYobi5yZW5kZXI9ci5yZW5kZXIsbi5zdGF0aWNSZW5kZXJGbnM9ci5zdGF0aWNSZW5kZXJGbnMpO3JldHVybiBuZXcgdC5jb21wb25lbnRPcHRpb25zLkN0b3Iobil9KHQsUWUpO3IuJG1vdW50KGU/dC5lbG06dm9pZCAwLGUpfX0scHJlcGF0Y2g6ZnVuY3Rpb24odCxlKXt2YXIgbj1lLmNvbXBvbmVudE9wdGlvbnMsaT1lLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2U7KGZ1bmN0aW9uKHQsZSxuLGksYSl7MDt2YXIgbz1pLmRhdGEuc2NvcGVkU2xvdHMscz10LiRzY29wZWRTbG90cyxjPSEhKG8mJiFvLiRzdGFibGV8fHMhPT1yJiYhcy4kc3RhYmxlfHxvJiZ0LiRzY29wZWRTbG90cy4ka2V5IT09by4ka2V5KSx1PSEhKGF8fHQuJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVufHxjKTt0LiRvcHRpb25zLl9wYXJlbnRWbm9kZT1pLHQuJHZub2RlPWksdC5fdm5vZGUmJih0Ll92bm9kZS5wYXJlbnQ9aSk7aWYodC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW49YSx0LiRhdHRycz1pLmRhdGEuYXR0cnN8fHIsdC4kbGlzdGVuZXJzPW58fHIsZSYmdC4kb3B0aW9ucy5wcm9wcyl7U3QoITEpO2Zvcih2YXIgbD10Ll9wcm9wcyxmPXQuJG9wdGlvbnMuX3Byb3BLZXlzfHxbXSxkPTA7ZDxmLmxlbmd0aDtkKyspe3ZhciBoPWZbZF0scD10LiRvcHRpb25zLnByb3BzO2xbaF09QnQoaCxwLGUsdCl9U3QoITApLHQuJG9wdGlvbnMucHJvcHNEYXRhPWV9dC5fJHVwZGF0ZVByb3BlcnRpZXMmJnQuXyR1cGRhdGVQcm9wZXJ0aWVzKHQpLG49bnx8cjt2YXIgdj10LiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzPW4sR2UodCxuLHYpLHUmJih0LiRzbG90cz1oZShhLGkuY29udGV4dCksdC4kZm9yY2VVcGRhdGUoKSk7MH0pKGksbi5wcm9wc0RhdGEsbi5saXN0ZW5lcnMsZSxuLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29udGV4dCxuPXQuY29tcG9uZW50SW5zdGFuY2U7bi5faXNNb3VudGVkfHwodG4obiwib25TZXJ2aWNlQ3JlYXRlZCIpLHRuKG4sIm9uU2VydmljZUF0dGFjaGVkIiksbi5faXNNb3VudGVkPSEwLHRuKG4sIm1vdW50ZWQiKSksdC5kYXRhLmtlZXBBbGl2ZSYmKGUuX2lzTW91bnRlZD9mdW5jdGlvbih0KXt0Ll9pbmFjdGl2ZT0hMSxubi5wdXNoKHQpfShuKTpaZShuLCEwKSl9LGRlc3Ryb3k6ZnVuY3Rpb24odCl7dmFyIGU9dC5jb21wb25lbnRJbnN0YW5jZTtlLl9pc0Rlc3Ryb3llZHx8KHQuZGF0YS5rZWVwQWxpdmU/ZnVuY3Rpb24gdChlLG4pe2lmKG4mJihlLl9kaXJlY3RJbmFjdGl2ZT0hMCxLZShlKSkpcmV0dXJuO2lmKCFlLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITA7Zm9yKHZhciByPTA7cjxlLiRjaGlsZHJlbi5sZW5ndGg7cisrKXQoZS4kY2hpbGRyZW5bcl0pO3RuKGUsImRlYWN0aXZhdGVkIil9fShlLCEwKTplLiRkZXN0cm95KCkpfX0sTmU9T2JqZWN0LmtleXMoUmUpO2Z1bmN0aW9uIEJlKHQsZSxuLHMsdSl7aWYoIWkodCkpe3ZhciBsPW4uJG9wdGlvbnMuX2Jhc2U7aWYoYyh0KSYmKHQ9bC5leHRlbmQodCkpLCJmdW5jdGlvbiI9PT10eXBlb2YgdCl7dmFyIGY7aWYoaSh0LmNpZCkmJihmPXQsdD1mdW5jdGlvbih0LGUpe2lmKG8odC5lcnJvcikmJmEodC5lcnJvckNvbXApKXJldHVybiB0LmVycm9yQ29tcDtpZihhKHQucmVzb2x2ZWQpKXJldHVybiB0LnJlc29sdmVkO3ZhciBuPUhlO24mJmEodC5vd25lcnMpJiYtMT09PXQub3duZXJzLmluZGV4T2YobikmJnQub3duZXJzLnB1c2gobik7aWYobyh0LmxvYWRpbmcpJiZhKHQubG9hZGluZ0NvbXApKXJldHVybiB0LmxvYWRpbmdDb21wO2lmKG4mJiFhKHQub3duZXJzKSl7dmFyIHI9dC5vd25lcnM9W25dLHM9ITAsdT1udWxsLGw9bnVsbDtuLiRvbigiaG9vazpkZXN0cm95ZWQiLChmdW5jdGlvbigpe3JldHVybiBiKHIsbil9KSk7dmFyIGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsbj1yLmxlbmd0aDtlPG47ZSsrKXJbZV0uJGZvcmNlVXBkYXRlKCk7dCYmKHIubGVuZ3RoPTAsbnVsbCE9PXUmJihjbGVhclRpbWVvdXQodSksdT1udWxsKSxudWxsIT09bCYmKGNsZWFyVGltZW91dChsKSxsPW51bGwpKX0sZD1SKChmdW5jdGlvbihuKXt0LnJlc29sdmVkPVZlKG4sZSkscz9yLmxlbmd0aD0wOmYoITApfSkpLHA9UigoZnVuY3Rpb24oZSl7YSh0LmVycm9yQ29tcCkmJih0LmVycm9yPSEwLGYoITApKX0pKSx2PXQoZCxwKTtyZXR1cm4gYyh2KSYmKGgodik/aSh0LnJlc29sdmVkKSYmdi50aGVuKGQscCk6aCh2LmNvbXBvbmVudCkmJih2LmNvbXBvbmVudC50aGVuKGQscCksYSh2LmVycm9yKSYmKHQuZXJyb3JDb21wPVZlKHYuZXJyb3IsZSkpLGEodi5sb2FkaW5nKSYmKHQubG9hZGluZ0NvbXA9VmUodi5sb2FkaW5nLGUpLDA9PT12LmRlbGF5P3QubG9hZGluZz0hMDp1PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dT1udWxsLGkodC5yZXNvbHZlZCkmJmkodC5lcnJvcikmJih0LmxvYWRpbmc9ITAsZighMSkpfSksdi5kZWxheXx8MjAwKSksYSh2LnRpbWVvdXQpJiYobD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2w9bnVsbCxpKHQucmVzb2x2ZWQpJiZwKG51bGwpfSksdi50aW1lb3V0KSkpKSxzPSExLHQubG9hZGluZz90LmxvYWRpbmdDb21wOnQucmVzb2x2ZWR9fShmLGwpLHZvaWQgMD09PXQpKXJldHVybiBmdW5jdGlvbih0LGUsbixyLGkpe3ZhciBhPWd0KCk7cmV0dXJuIGEuYXN5bmNGYWN0b3J5PXQsYS5hc3luY01ldGE9e2RhdGE6ZSxjb250ZXh0Om4sY2hpbGRyZW46cix0YWc6aX0sYX0oZixlLG4scyx1KTtlPWV8fHt9LFNuKHQpLGEoZS5tb2RlbCkmJmZ1bmN0aW9uKHQsZSl7dmFyIG49dC5tb2RlbCYmdC5tb2RlbC5wcm9wfHwidmFsdWUiLHI9dC5tb2RlbCYmdC5tb2RlbC5ldmVudHx8ImlucHV0IjsoZS5hdHRyc3x8KGUuYXR0cnM9e30pKVtuXT1lLm1vZGVsLnZhbHVlO3ZhciBpPWUub258fChlLm9uPXt9KSxvPWlbcl0scz1lLm1vZGVsLmNhbGxiYWNrO2Eobyk/KEFycmF5LmlzQXJyYXkobyk/LTE9PT1vLmluZGV4T2Yocyk6byE9PXMpJiYoaVtyXT1bc10uY29uY2F0KG8pKTppW3JdPXN9KHQub3B0aW9ucyxlKTt2YXIgZD1mdW5jdGlvbih0LGUsbixyKXt2YXIgbz1lLm9wdGlvbnMucHJvcHM7aWYoaShvKSlyZXR1cm4gY2UodCxlLHt9LHIpO3ZhciBzPXt9LGM9dC5hdHRycyx1PXQucHJvcHM7aWYoYShjKXx8YSh1KSlmb3IodmFyIGwgaW4gbyl7dmFyIGY9ayhsKTt1ZShzLHUsbCxmLCEwKXx8dWUocyxjLGwsZiwhMSl9cmV0dXJuIGNlKHQsZSxzLHIpfShlLHQsMCxuKTtpZihvKHQub3B0aW9ucy5mdW5jdGlvbmFsKSlyZXR1cm4gZnVuY3Rpb24odCxlLG4saSxvKXt2YXIgcz10Lm9wdGlvbnMsYz17fSx1PXMucHJvcHM7aWYoYSh1KSlmb3IodmFyIGwgaW4gdSljW2xdPUJ0KGwsdSxlfHxyKTtlbHNlIGEobi5hdHRycykmJmplKGMsbi5hdHRycyksYShuLnByb3BzKSYmamUoYyxuLnByb3BzKTt2YXIgZj1uZXcgJGUobixjLG8saSx0KSxkPXMucmVuZGVyLmNhbGwobnVsbCxmLl9jLGYpO2lmKGQgaW5zdGFuY2VvZiBwdClyZXR1cm4gTGUoZCxuLGYucGFyZW50LHMsZik7aWYoQXJyYXkuaXNBcnJheShkKSl7Zm9yKHZhciBoPWxlKGQpfHxbXSxwPW5ldyBBcnJheShoLmxlbmd0aCksdj0wO3Y8aC5sZW5ndGg7disrKXBbdl09TGUoaFt2XSxuLGYucGFyZW50LHMsZik7cmV0dXJuIHB9fSh0LGQsZSxuLHMpO3ZhciBwPWUub247aWYoZS5vbj1lLm5hdGl2ZU9uLG8odC5vcHRpb25zLmFic3RyYWN0KSl7dmFyIHY9ZS5zbG90O2U9e30sdiYmKGUuc2xvdD12KX0oZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuaG9va3x8KHQuaG9vaz17fSksbj0wO248TmUubGVuZ3RoO24rKyl7dmFyIHI9TmVbbl0saT1lW3JdLGE9UmVbcl07aT09PWF8fGkmJmkuX21lcmdlZHx8KGVbcl09aT9EZShhLGkpOmEpfX0pKGUpO3ZhciBnPXQub3B0aW9ucy5uYW1lfHx1LG09bmV3IHB0KCJ2dWUtY29tcG9uZW50LSIrdC5jaWQrKGc/Ii0iK2c6IiIpLGUsdm9pZCAwLHZvaWQgMCx2b2lkIDAsbix7Q3Rvcjp0LHByb3BzRGF0YTpkLGxpc3RlbmVyczpwLHRhZzp1LGNoaWxkcmVuOnN9LGYpO3JldHVybiBtfX19ZnVuY3Rpb24gRGUodCxlKXt2YXIgbj1mdW5jdGlvbihuLHIpe3QobixyKSxlKG4scil9O3JldHVybiBuLl9tZXJnZWQ9ITAsbn1mdW5jdGlvbiBGZSh0LGUsbixyLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkobil8fHMobikpJiYodT1yLHI9bixuPXZvaWQgMCksbyhsKSYmKHU9MiksZnVuY3Rpb24odCxlLG4scixzKXtpZihhKG4pJiZhKG4uX19vYl9fKSlyZXR1cm4gZ3QoKTthKG4pJiZhKG4uaXMpJiYoZT1uLmlzKTtpZighZSlyZXR1cm4gZ3QoKTswO0FycmF5LmlzQXJyYXkocikmJiJmdW5jdGlvbiI9PT10eXBlb2YgclswXSYmKG49bnx8e30sbi5zY29wZWRTbG90cz17ZGVmYXVsdDpyWzBdfSxyLmxlbmd0aD0wKTsyPT09cz9yPWxlKHIpOjE9PT1zJiYocj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylpZihBcnJheS5pc0FycmF5KHRbZV0pKXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLHQpO3JldHVybiB0fShyKSk7dmFyIHUsbDtpZigic3RyaW5nIj09PXR5cGVvZiBlKXt2YXIgZjtsPXQuJHZub2RlJiZ0LiR2bm9kZS5uc3x8RC5nZXRUYWdOYW1lc3BhY2UoZSksdT1ELmlzUmVzZXJ2ZWRUYWcoZSk/bmV3IHB0KEQucGFyc2VQbGF0Zm9ybVRhZ05hbWUoZSksbixyLHZvaWQgMCx2b2lkIDAsdCk6biYmbi5wcmV8fCFhKGY9TnQodC4kb3B0aW9ucywiY29tcG9uZW50cyIsZSkpP25ldyBwdChlLG4scix2b2lkIDAsdm9pZCAwLHQpOkJlKGYsbix0LHIsZSl9ZWxzZSB1PUJlKGUsbix0LHIpO3JldHVybiBBcnJheS5pc0FycmF5KHUpP3U6YSh1KT8oYShsKSYmZnVuY3Rpb24gdChlLG4scil7ZS5ucz1uLCJmb3JlaWduT2JqZWN0Ij09PWUudGFnJiYobj12b2lkIDAscj0hMCk7aWYoYShlLmNoaWxkcmVuKSlmb3IodmFyIHM9MCxjPWUuY2hpbGRyZW4ubGVuZ3RoO3M8YztzKyspe3ZhciB1PWUuY2hpbGRyZW5bc107YSh1LnRhZykmJihpKHUubnMpfHxvKHIpJiYic3ZnIiE9PXUudGFnKSYmdCh1LG4scil9fSh1LGwpLGEobikmJmZ1bmN0aW9uKHQpe2ModC5zdHlsZSkmJnJlKHQuc3R5bGUpO2ModC5jbGFzcykmJnJlKHQuY2xhc3MpfShuKSx1KTpndCgpfSh0LGUsbixyLHUpfXZhciBXZSxIZT1udWxsO2Z1bmN0aW9uIFZlKHQsZSl7cmV0dXJuKHQuX19lc01vZHVsZXx8Y3QmJiJNb2R1bGUiPT09dFtTeW1ib2wudG9TdHJpbmdUYWddKSYmKHQ9dC5kZWZhdWx0KSxjKHQpP2UuZXh0ZW5kKHQpOnR9ZnVuY3Rpb24gVWUodCl7cmV0dXJuIHQuaXNDb21tZW50JiZ0LmFzeW5jRmFjdG9yeX1mdW5jdGlvbiBxZSh0KXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbj10W2VdO2lmKGEobikmJihhKG4uY29tcG9uZW50T3B0aW9ucyl8fFVlKG4pKSlyZXR1cm4gbn19ZnVuY3Rpb24gemUodCxlKXtXZS4kb24odCxlKX1mdW5jdGlvbiBZZSh0LGUpe1dlLiRvZmYodCxlKX1mdW5jdGlvbiBYZSh0LGUpe3ZhciBuPVdlO3JldHVybiBmdW5jdGlvbiByKCl7dmFyIGk9ZS5hcHBseShudWxsLGFyZ3VtZW50cyk7bnVsbCE9PWkmJm4uJG9mZih0LHIpfX1mdW5jdGlvbiBHZSh0LGUsbil7V2U9dCxvZShlLG58fHt9LHplLFllLFhlLHQpLFdlPXZvaWQgMH12YXIgUWU9bnVsbDtmdW5jdGlvbiBKZSh0KXt2YXIgZT1RZTtyZXR1cm4gUWU9dCxmdW5jdGlvbigpe1FlPWV9fWZ1bmN0aW9uIEtlKHQpe3doaWxlKHQmJih0PXQuJHBhcmVudCkpaWYodC5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWmUodCxlKXtpZihlKXtpZih0Ll9kaXJlY3RJbmFjdGl2ZT0hMSxLZSh0KSlyZXR1cm59ZWxzZSBpZih0Ll9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYodC5faW5hY3RpdmV8fG51bGw9PT10Ll9pbmFjdGl2ZSl7dC5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjx0LiRjaGlsZHJlbi5sZW5ndGg7bisrKVplKHQuJGNoaWxkcmVuW25dKTt0bih0LCJhY3RpdmF0ZWQiKX19ZnVuY3Rpb24gdG4odCxlKXtkdCgpO3ZhciBuPXQuJG9wdGlvbnNbZV0scj1lKyIgaG9vayI7aWYobilmb3IodmFyIGk9MCxhPW4ubGVuZ3RoO2k8YTtpKyspVnQobltpXSx0LG51bGwsdCxyKTt0Ll9oYXNIb29rRXZlbnQmJnQuJGVtaXQoImhvb2s6IitlKSxodCgpfXZhciBlbj1bXSxubj1bXSxybj17fSxhbj0hMSxvbj0hMSxzbj0wO3ZhciBjbj0wLHVuPURhdGUubm93O2lmKHomJiFRKXt2YXIgbG49d2luZG93LnBlcmZvcm1hbmNlO2xuJiYiZnVuY3Rpb24iPT09dHlwZW9mIGxuLm5vdyYmdW4oKT5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKS50aW1lU3RhbXAmJih1bj1mdW5jdGlvbigpe3JldHVybiBsbi5ub3coKX0pfWZ1bmN0aW9uIGZuKCl7dmFyIHQsZTtmb3IoY249dW4oKSxvbj0hMCxlbi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmlkLWUuaWR9KSksc249MDtzbjxlbi5sZW5ndGg7c24rKyl0PWVuW3NuXSx0LmJlZm9yZSYmdC5iZWZvcmUoKSxlPXQuaWQscm5bZV09bnVsbCx0LnJ1bigpO3ZhciBuPW5uLnNsaWNlKCkscj1lbi5zbGljZSgpOyhmdW5jdGlvbigpe3NuPWVuLmxlbmd0aD1ubi5sZW5ndGg9MCxybj17fSxhbj1vbj0hMX0pKCksZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5faW5hY3RpdmU9ITAsWmUodFtlXSwhMCl9KG4pLGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO3doaWxlKGUtLSl7dmFyIG49dFtlXSxyPW4udm07ci5fd2F0Y2hlcj09PW4mJnIuX2lzTW91bnRlZCYmIXIuX2lzRGVzdHJveWVkJiZ0bihyLCJ1cGRhdGVkIil9fShyKSxhdCYmRC5kZXZ0b29scyYmYXQuZW1pdCgiZmx1c2giKX12YXIgZG49MCxobj1mdW5jdGlvbih0LGUsbixyLGkpe3RoaXMudm09dCxpJiYodC5fd2F0Y2hlcj10aGlzKSx0Ll93YXRjaGVycy5wdXNoKHRoaXMpLHI/KHRoaXMuZGVlcD0hIXIuZGVlcCx0aGlzLnVzZXI9ISFyLnVzZXIsdGhpcy5sYXp5PSEhci5sYXp5LHRoaXMuc3luYz0hIXIuc3luYyx0aGlzLmJlZm9yZT1yLmJlZm9yZSk6dGhpcy5kZWVwPXRoaXMudXNlcj10aGlzLmxhenk9dGhpcy5zeW5jPSExLHRoaXMuY2I9bix0aGlzLmlkPSsrZG4sdGhpcy5hY3RpdmU9ITAsdGhpcy5kaXJ0eT10aGlzLmxhenksdGhpcy5kZXBzPVtdLHRoaXMubmV3RGVwcz1bXSx0aGlzLmRlcElkcz1uZXcgc3QsdGhpcy5uZXdEZXBJZHM9bmV3IHN0LHRoaXMuZXhwcmVzc2lvbj0iIiwiZnVuY3Rpb24iPT09dHlwZW9mIGU/dGhpcy5nZXR0ZXI9ZToodGhpcy5nZXR0ZXI9ZnVuY3Rpb24odCl7aWYoIVYudGVzdCh0KSl7dmFyIGU9dC5zcGxpdCgiLiIpO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7aWYoIXQpcmV0dXJuO3Q9dFtlW25dXX1yZXR1cm4gdH19fShlKSx0aGlzLmdldHRlcnx8KHRoaXMuZ2V0dGVyPU0pKSx0aGlzLnZhbHVlPXRoaXMubGF6eT92b2lkIDA6dGhpcy5nZXQoKX07aG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciB0O2R0KHRoaXMpO3ZhciBlPXRoaXMudm07dHJ5e3Q9dGhpcy5nZXR0ZXIuY2FsbChlLGUpfWNhdGNoKFVpKXtpZighdGhpcy51c2VyKXRocm93IFVpO0h0KFVpLGUsJ2dldHRlciBmb3Igd2F0Y2hlciAiJyt0aGlzLmV4cHJlc3Npb24rJyInKX1maW5hbGx5e3RoaXMuZGVlcCYmcmUodCksaHQoKSx0aGlzLmNsZWFudXBEZXBzKCl9cmV0dXJuIHR9LGhuLnByb3RvdHlwZS5hZGREZXA9ZnVuY3Rpb24odCl7dmFyIGU9dC5pZDt0aGlzLm5ld0RlcElkcy5oYXMoZSl8fCh0aGlzLm5ld0RlcElkcy5hZGQoZSksdGhpcy5uZXdEZXBzLnB1c2godCksdGhpcy5kZXBJZHMuaGFzKGUpfHx0LmFkZFN1Yih0aGlzKSl9LGhuLnByb3RvdHlwZS5jbGVhbnVwRGVwcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZGVwcy5sZW5ndGg7d2hpbGUodC0tKXt2YXIgZT10aGlzLmRlcHNbdF07dGhpcy5uZXdEZXBJZHMuaGFzKGUuaWQpfHxlLnJlbW92ZVN1Yih0aGlzKX12YXIgbj10aGlzLmRlcElkczt0aGlzLmRlcElkcz10aGlzLm5ld0RlcElkcyx0aGlzLm5ld0RlcElkcz1uLHRoaXMubmV3RGVwSWRzLmNsZWFyKCksbj10aGlzLmRlcHMsdGhpcy5kZXBzPXRoaXMubmV3RGVwcyx0aGlzLm5ld0RlcHM9bix0aGlzLm5ld0RlcHMubGVuZ3RoPTB9LGhuLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLmxhenk/dGhpcy5kaXJ0eT0hMDp0aGlzLnN5bmM/dGhpcy5ydW4oKTpmdW5jdGlvbih0KXt2YXIgZT10LmlkO2lmKG51bGw9PXJuW2VdKXtpZihybltlXT0hMCxvbil7dmFyIG49ZW4ubGVuZ3RoLTE7d2hpbGUobj5zbiYmZW5bbl0uaWQ+dC5pZCluLS07ZW4uc3BsaWNlKG4rMSwwLHQpfWVsc2UgZW4ucHVzaCh0KTthbnx8KGFuPSEwLGVlKGZuKSl9fSh0aGlzKX0saG4ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt2YXIgdD10aGlzLmdldCgpO2lmKHQhPT10aGlzLnZhbHVlfHxjKHQpfHx0aGlzLmRlZXApe3ZhciBlPXRoaXMudmFsdWU7aWYodGhpcy52YWx1ZT10LHRoaXMudXNlcil0cnl7dGhpcy5jYi5jYWxsKHRoaXMudm0sdCxlKX1jYXRjaChVaSl7SHQoVWksdGhpcy52bSwnY2FsbGJhY2sgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSx0LGUpfX19LGhuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxobi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5kZXBzLmxlbmd0aDt3aGlsZSh0LS0pdGhpcy5kZXBzW3RdLmRlcGVuZCgpfSxobi5wcm90b3R5cGUudGVhcmRvd249ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZSl7dGhpcy52bS5faXNCZWluZ0Rlc3Ryb3llZHx8Yih0aGlzLnZtLl93YXRjaGVycyx0aGlzKTt2YXIgdD10aGlzLmRlcHMubGVuZ3RoO3doaWxlKHQtLSl0aGlzLmRlcHNbdF0ucmVtb3ZlU3ViKHRoaXMpO3RoaXMuYWN0aXZlPSExfX07dmFyIHBuPXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6TSxzZXQ6TX07ZnVuY3Rpb24gdm4odCxlLG4pe3BuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzW2VdW25dfSxwbi5zZXQ9ZnVuY3Rpb24odCl7dGhpc1tlXVtuXT10fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHBuKX1mdW5jdGlvbiBnbih0KXt0Ll93YXRjaGVycz1bXTt2YXIgZT10LiRvcHRpb25zO2UucHJvcHMmJmZ1bmN0aW9uKHQsZSl7dmFyIG49dC4kb3B0aW9ucy5wcm9wc0RhdGF8fHt9LHI9dC5fcHJvcHM9e30saT10LiRvcHRpb25zLl9wcm9wS2V5cz1bXSxhPSF0LiRwYXJlbnQ7YXx8U3QoITEpO3ZhciBvPWZ1bmN0aW9uKGEpe2kucHVzaChhKTt2YXIgbz1CdChhLGUsbix0KTtrdChyLGEsbyksYSBpbiB0fHx2bih0LCJfcHJvcHMiLGEpfTtmb3IodmFyIHMgaW4gZSlvKHMpO1N0KCEwKX0odCxlLnByb3BzKSxlLm1ldGhvZHMmJmZ1bmN0aW9uKHQsZSl7dC4kb3B0aW9ucy5wcm9wcztmb3IodmFyIG4gaW4gZSl0W25dPSJmdW5jdGlvbiIhPT10eXBlb2YgZVtuXT9NOk8oZVtuXSx0KX0odCxlLm1ldGhvZHMpLGUuZGF0YT9mdW5jdGlvbih0KXt2YXIgZT10LiRvcHRpb25zLmRhdGE7ZT10Ll9kYXRhPSJmdW5jdGlvbiI9PT10eXBlb2YgZT9mdW5jdGlvbih0LGUpe2R0KCk7dHJ5e3JldHVybiB0LmNhbGwoZSxlKX1jYXRjaChVaSl7cmV0dXJuIEh0KFVpLGUsImRhdGEoKSIpLHt9fWZpbmFsbHl7aHQoKX19KGUsdCk6ZXx8e30sbChlKXx8KGU9e30pO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9dC4kb3B0aW9ucy5wcm9wcyxpPSh0LiRvcHRpb25zLm1ldGhvZHMsbi5sZW5ndGgpO3doaWxlKGktLSl7dmFyIGE9bltpXTswLHImJl8ocixhKXx8VyhhKXx8dm4odCwiX2RhdGEiLGEpfUN0KGUsITApfSh0KTpDdCh0Ll9kYXRhPXt9LCEwKSxlLmNvbXB1dGVkJiZmdW5jdGlvbih0LGUpe3ZhciBuPXQuX2NvbXB1dGVkV2F0Y2hlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSxyPWl0KCk7Zm9yKHZhciBpIGluIGUpe3ZhciBhPWVbaV0sbz0iZnVuY3Rpb24iPT09dHlwZW9mIGE/YTphLmdldDswLHJ8fChuW2ldPW5ldyBobih0LG98fE0sTSxtbikpLGkgaW4gdHx8Ym4odCxpLGEpfX0odCxlLmNvbXB1dGVkKSxlLndhdGNoJiZlLndhdGNoIT09ZXQmJmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIGUpe3ZhciByPWVbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl3bih0LG4scltpXSk7ZWxzZSB3bih0LG4scil9fSh0LGUud2F0Y2gpfXZhciBtbj17bGF6eTohMH07ZnVuY3Rpb24gYm4odCxlLG4pe3ZhciByPSFpdCgpOyJmdW5jdGlvbiI9PT10eXBlb2Ygbj8ocG4uZ2V0PXI/eW4oZSk6X24obikscG4uc2V0PU0pOihwbi5nZXQ9bi5nZXQ/ciYmITEhPT1uLmNhY2hlP3luKGUpOl9uKG4uZ2V0KTpNLHBuLnNldD1uLnNldHx8TSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxwbil9ZnVuY3Rpb24geW4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fY29tcHV0ZWRXYXRjaGVycyYmdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1t0XTtpZihlKXJldHVybiBlLmRpcnR5JiZlLmV2YWx1YXRlKCksZnQuU2hhcmVkT2JqZWN0LnRhcmdldCYmZS5kZXBlbmQoKSxlLnZhbHVlfX1mdW5jdGlvbiBfbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5jYWxsKHRoaXMsdGhpcyl9fWZ1bmN0aW9uIHduKHQsZSxuLHIpe3JldHVybiBsKG4pJiYocj1uLG49bi5oYW5kbGVyKSwic3RyaW5nIj09PXR5cGVvZiBuJiYobj10W25dKSx0LiR3YXRjaChlLG4scil9dmFyIHhuPTA7ZnVuY3Rpb24gU24odCl7dmFyIGU9dC5vcHRpb25zO2lmKHQuc3VwZXIpe3ZhciBuPVNuKHQuc3VwZXIpLHI9dC5zdXBlck9wdGlvbnM7aWYobiE9PXIpe3Quc3VwZXJPcHRpb25zPW47dmFyIGk9ZnVuY3Rpb24odCl7dmFyIGUsbj10Lm9wdGlvbnMscj10LnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJihlfHwoZT17fSksZVtpXT1uW2ldKTtyZXR1cm4gZX0odCk7aSYmSSh0LmV4dGVuZE9wdGlvbnMsaSksZT10Lm9wdGlvbnM9UnQobix0LmV4dGVuZE9wdGlvbnMpLGUubmFtZSYmKGUuY29tcG9uZW50c1tlLm5hbWVdPXQpfX1yZXR1cm4gZX1mdW5jdGlvbiBUbih0KXt0aGlzLl9pbml0KHQpfWZ1bmN0aW9uIENuKHQpe3QuY2lkPTA7dmFyIGU9MTt0LmV4dGVuZD1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPXQuX0N0b3J8fCh0Ll9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBhPXQubmFtZXx8bi5vcHRpb25zLm5hbWU7dmFyIG89ZnVuY3Rpb24odCl7dGhpcy5faW5pdCh0KX07cmV0dXJuIG8ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLG8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW8sby5jaWQ9ZSsrLG8ub3B0aW9ucz1SdChuLm9wdGlvbnMsdCksb1sic3VwZXIiXT1uLG8ub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24odCl7dmFyIGU9dC5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiBlKXZuKHQucHJvdG90eXBlLCJfcHJvcHMiLG4pfShvKSxvLm9wdGlvbnMuY29tcHV0ZWQmJmZ1bmN0aW9uKHQpe3ZhciBlPXQub3B0aW9ucy5jb21wdXRlZDtmb3IodmFyIG4gaW4gZSlibih0LnByb3RvdHlwZSxuLGVbbl0pfShvKSxvLmV4dGVuZD1uLmV4dGVuZCxvLm1peGluPW4ubWl4aW4sby51c2U9bi51c2UsTi5mb3JFYWNoKChmdW5jdGlvbih0KXtvW3RdPW5bdF19KSksYSYmKG8ub3B0aW9ucy5jb21wb25lbnRzW2FdPW8pLG8uc3VwZXJPcHRpb25zPW4ub3B0aW9ucyxvLmV4dGVuZE9wdGlvbnM9dCxvLnNlYWxlZE9wdGlvbnM9SSh7fSxvLm9wdGlvbnMpLGlbcl09byxvfX1mdW5jdGlvbiBrbih0KXtyZXR1cm4gdCYmKHQuQ3Rvci5vcHRpb25zLm5hbWV8fHQudGFnKX1mdW5jdGlvbiBPbih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QuaW5kZXhPZihlKT4tMToic3RyaW5nIj09PXR5cGVvZiB0P3Quc3BsaXQoIiwiKS5pbmRleE9mKGUpPi0xOiEhZih0KSYmdC50ZXN0KGUpfWZ1bmN0aW9uIEVuKHQsZSl7dmFyIG49dC5jYWNoZSxyPXQua2V5cyxpPXQuX3Zub2RlO2Zvcih2YXIgYSBpbiBuKXt2YXIgbz1uW2FdO2lmKG8pe3ZhciBzPWtuKG8uY29tcG9uZW50T3B0aW9ucyk7cyYmIWUocykmJkluKG4sYSxyLGkpfX19ZnVuY3Rpb24gSW4odCxlLG4scil7dmFyIGk9dFtlXTshaXx8ciYmaS50YWc9PT1yLnRhZ3x8aS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpLHRbZV09bnVsbCxiKG4sZSl9KGZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZS5fdWlkPXhuKyssZS5faXNWdWU9ITAsdCYmdC5faXNDb21wb25lbnQ/ZnVuY3Rpb24odCxlKXt2YXIgbj10LiRvcHRpb25zPU9iamVjdC5jcmVhdGUodC5jb25zdHJ1Y3Rvci5vcHRpb25zKSxyPWUuX3BhcmVudFZub2RlO24ucGFyZW50PWUucGFyZW50LG4uX3BhcmVudFZub2RlPXI7dmFyIGk9ci5jb21wb25lbnRPcHRpb25zO24ucHJvcHNEYXRhPWkucHJvcHNEYXRhLG4uX3BhcmVudExpc3RlbmVycz1pLmxpc3RlbmVycyxuLl9yZW5kZXJDaGlsZHJlbj1pLmNoaWxkcmVuLG4uX2NvbXBvbmVudFRhZz1pLnRhZyxlLnJlbmRlciYmKG4ucmVuZGVyPWUucmVuZGVyLG4uc3RhdGljUmVuZGVyRm5zPWUuc3RhdGljUmVuZGVyRm5zKX0oZSx0KTplLiRvcHRpb25zPVJ0KFNuKGUuY29uc3RydWN0b3IpLHR8fHt9LGUpLGUuX3JlbmRlclByb3h5PWUsZS5fc2VsZj1lLGZ1bmN0aW9uKHQpe3ZhciBlPXQuJG9wdGlvbnMsbj1lLnBhcmVudDtpZihuJiYhZS5hYnN0cmFjdCl7d2hpbGUobi4kb3B0aW9ucy5hYnN0cmFjdCYmbi4kcGFyZW50KW49bi4kcGFyZW50O24uJGNoaWxkcmVuLnB1c2godCl9dC4kcGFyZW50PW4sdC4kcm9vdD1uP24uJHJvb3Q6dCx0LiRjaGlsZHJlbj1bXSx0LiRyZWZzPXt9LHQuX3dhdGNoZXI9bnVsbCx0Ll9pbmFjdGl2ZT1udWxsLHQuX2RpcmVjdEluYWN0aXZlPSExLHQuX2lzTW91bnRlZD0hMSx0Ll9pc0Rlc3Ryb3llZD0hMSx0Ll9pc0JlaW5nRGVzdHJveWVkPSExfShlKSxmdW5jdGlvbih0KXt0Ll9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0Ll9oYXNIb29rRXZlbnQ9ITE7dmFyIGU9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO2UmJkdlKHQsZSl9KGUpLGZ1bmN0aW9uKHQpe3QuX3Zub2RlPW51bGwsdC5fc3RhdGljVHJlZXM9bnVsbDt2YXIgZT10LiRvcHRpb25zLG49dC4kdm5vZGU9ZS5fcGFyZW50Vm5vZGUsaT1uJiZuLmNvbnRleHQ7dC4kc2xvdHM9aGUoZS5fcmVuZGVyQ2hpbGRyZW4saSksdC4kc2NvcGVkU2xvdHM9cix0Ll9jPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBGZSh0LGUsbixyLGksITEpfSx0LiRjcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBGZSh0LGUsbixyLGksITApfTt2YXIgYT1uJiZuLmRhdGE7a3QodCwiJGF0dHJzIixhJiZhLmF0dHJzfHxyLG51bGwsITApLGt0KHQsIiRsaXN0ZW5lcnMiLGUuX3BhcmVudExpc3RlbmVyc3x8cixudWxsLCEwKX0oZSksdG4oZSwiYmVmb3JlQ3JlYXRlIiksIWUuXyRmYWxsYmFjayYmZnVuY3Rpb24odCl7dmFyIGU9ZGUodC4kb3B0aW9ucy5pbmplY3QsdCk7ZSYmKFN0KCExKSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXtrdCh0LG4sZVtuXSl9KSksU3QoITApKX0oZSksZ24oZSksIWUuXyRmYWxsYmFjayYmZnVuY3Rpb24odCl7dmFyIGU9dC4kb3B0aW9ucy5wcm92aWRlO2UmJih0Ll9wcm92aWRlZD0iZnVuY3Rpb24iPT09dHlwZW9mIGU/ZS5jYWxsKHQpOmUpfShlKSwhZS5fJGZhbGxiYWNrJiZ0bihlLCJjcmVhdGVkIiksZS4kb3B0aW9ucy5lbCYmZS4kbW91bnQoZS4kb3B0aW9ucy5lbCl9fSkoVG4pLGZ1bmN0aW9uKHQpe3ZhciBlPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YX19LG49e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wcm9wc319O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiJGRhdGEiLGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiJHByb3BzIixuKSx0LnByb3RvdHlwZS4kc2V0PU90LHQucHJvdG90eXBlLiRkZWxldGU9RXQsdC5wcm90b3R5cGUuJHdhdGNoPWZ1bmN0aW9uKHQsZSxuKXtpZihsKGUpKXJldHVybiB3bih0aGlzLHQsZSxuKTtuPW58fHt9LG4udXNlcj0hMDt2YXIgcj1uZXcgaG4odGhpcyx0LGUsbik7aWYobi5pbW1lZGlhdGUpdHJ5e2UuY2FsbCh0aGlzLHIudmFsdWUpfWNhdGNoKGkpe0h0KGksdGhpcywnY2FsbGJhY2sgZm9yIGltbWVkaWF0ZSB3YXRjaGVyICInK3IuZXhwcmVzc2lvbisnIicpfXJldHVybiBmdW5jdGlvbigpe3IudGVhcmRvd24oKX19fShUbiksZnVuY3Rpb24odCl7dmFyIGU9L15ob29rOi87dC5wcm90b3R5cGUuJG9uPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcztpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgaT0wLGE9dC5sZW5ndGg7aTxhO2krKylyLiRvbih0W2ldLG4pO2Vsc2Uoci5fZXZlbnRzW3RdfHwoci5fZXZlbnRzW3RdPVtdKSkucHVzaChuKSxlLnRlc3QodCkmJihyLl9oYXNIb29rRXZlbnQ9ITApO3JldHVybiByfSx0LnByb3RvdHlwZS4kb25jZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7ZnVuY3Rpb24gcigpe24uJG9mZih0LHIpLGUuYXBwbHkobixhcmd1bWVudHMpfXJldHVybiByLmZuPWUsbi4kb24odCxyKSxufSx0LnByb3RvdHlwZS4kb2ZmPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcztpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksbjtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspbi4kb2ZmKHRbcl0sZSk7cmV0dXJuIG59dmFyIGEsbz1uLl9ldmVudHNbdF07aWYoIW8pcmV0dXJuIG47aWYoIWUpcmV0dXJuIG4uX2V2ZW50c1t0XT1udWxsLG47dmFyIHM9by5sZW5ndGg7d2hpbGUocy0tKWlmKGE9b1tzXSxhPT09ZXx8YS5mbj09PWUpe28uc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LHQucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1lLl9ldmVudHNbdF07aWYobil7bj1uLmxlbmd0aD4xP0Uobik6bjtmb3IodmFyIHI9RShhcmd1bWVudHMsMSksaT0nZXZlbnQgaGFuZGxlciBmb3IgIicrdCsnIicsYT0wLG89bi5sZW5ndGg7YTxvO2ErKylWdChuW2FdLGUscixlLGkpfXJldHVybiBlfX0oVG4pLGZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLHI9bi4kZWwsaT1uLl92bm9kZSxhPUplKG4pO24uX3Zub2RlPXQsbi4kZWw9aT9uLl9fcGF0Y2hfXyhpLHQpOm4uX19wYXRjaF9fKG4uJGVsLHQsZSwhMSksYSgpLHImJihyLl9fdnVlX189bnVsbCksbi4kZWwmJihuLiRlbC5fX3Z1ZV9fPW4pLG4uJHZub2RlJiZuLiRwYXJlbnQmJm4uJHZub2RlPT09bi4kcGFyZW50Ll92bm9kZSYmKG4uJHBhcmVudC4kZWw9bi4kZWwpfSx0LnByb3RvdHlwZS4kZm9yY2VVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl93YXRjaGVyJiZ0aGlzLl93YXRjaGVyLnVwZGF0ZSgpfSx0LnByb3RvdHlwZS4kZGVzdHJveT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXQuX2lzQmVpbmdEZXN0cm95ZWQpe3RuKHQsImJlZm9yZURlc3Ryb3kiKSx0Ll9pc0JlaW5nRGVzdHJveWVkPSEwO3ZhciBlPXQuJHBhcmVudDshZXx8ZS5faXNCZWluZ0Rlc3Ryb3llZHx8dC4kb3B0aW9ucy5hYnN0cmFjdHx8YihlLiRjaGlsZHJlbix0KSx0Ll93YXRjaGVyJiZ0Ll93YXRjaGVyLnRlYXJkb3duKCk7dmFyIG49dC5fd2F0Y2hlcnMubGVuZ3RoO3doaWxlKG4tLSl0Ll93YXRjaGVyc1tuXS50ZWFyZG93bigpO3QuX2RhdGEuX19vYl9fJiZ0Ll9kYXRhLl9fb2JfXy52bUNvdW50LS0sdC5faXNEZXN0cm95ZWQ9ITAsdC5fX3BhdGNoX18odC5fdm5vZGUsbnVsbCksdG4odCwiZGVzdHJveWVkIiksdC4kb2ZmKCksdC4kZWwmJih0LiRlbC5fX3Z1ZV9fPW51bGwpLHQuJHZub2RlJiYodC4kdm5vZGUucGFyZW50PW51bGwpfX19KFRuKSxmdW5jdGlvbih0KXtBZSh0LnByb3RvdHlwZSksdC5wcm90b3R5cGUuJG5leHRUaWNrPWZ1bmN0aW9uKHQpe3JldHVybiBlZSh0LHRoaXMpfSx0LnByb3RvdHlwZS5fcmVuZGVyPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLG49ZS4kb3B0aW9ucyxyPW4ucmVuZGVyLGk9bi5fcGFyZW50Vm5vZGU7aSYmKGUuJHNjb3BlZFNsb3RzPXZlKGkuZGF0YS5zY29wZWRTbG90cyxlLiRzbG90cyxlLiRzY29wZWRTbG90cykpLGUuJHZub2RlPWk7dHJ5e0hlPWUsdD1yLmNhbGwoZS5fcmVuZGVyUHJveHksZS4kY3JlYXRlRWxlbWVudCl9Y2F0Y2goVWkpe0h0KFVpLGUsInJlbmRlciIpLHQ9ZS5fdm5vZGV9ZmluYWxseXtIZT1udWxsfXJldHVybiBBcnJheS5pc0FycmF5KHQpJiYxPT09dC5sZW5ndGgmJih0PXRbMF0pLHQgaW5zdGFuY2VvZiBwdHx8KHQ9Z3QoKSksdC5wYXJlbnQ9aSx0fX0oVG4pO3ZhciBQbj1bU3RyaW5nLFJlZ0V4cCxBcnJheV0sTW49e25hbWU6ImtlZXAtYWxpdmUiLGFic3RyYWN0OiEwLHByb3BzOntpbmNsdWRlOlBuLGV4Y2x1ZGU6UG4sbWF4OltTdHJpbmcsTnVtYmVyXX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmtleXM9W119LGRlc3Ryb3llZDpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLmNhY2hlKUluKHRoaXMuY2FjaGUsdCx0aGlzLmtleXMpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiR3YXRjaCgiaW5jbHVkZSIsKGZ1bmN0aW9uKGUpe0VuKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBPbihlLHQpfSkpfSkpLHRoaXMuJHdhdGNoKCJleGNsdWRlIiwoZnVuY3Rpb24oZSl7RW4odCwoZnVuY3Rpb24odCl7cmV0dXJuIU9uKGUsdCl9KSl9KSl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHNsb3RzLmRlZmF1bHQsZT1xZSh0KSxuPWUmJmUuY29tcG9uZW50T3B0aW9ucztpZihuKXt2YXIgcj1rbihuKSxpPXRoaXMuaW5jbHVkZSxhPXRoaXMuZXhjbHVkZTtpZihpJiYoIXJ8fCFPbihpLHIpKXx8YSYmciYmT24oYSxyKSlyZXR1cm4gZTt2YXIgbz10aGlzLmNhY2hlLHM9dGhpcy5rZXlzLGM9bnVsbD09ZS5rZXk/bi5DdG9yLmNpZCsobi50YWc/Ijo6IituLnRhZzoiIik6ZS5rZXk7b1tjXT8oZS5jb21wb25lbnRJbnN0YW5jZT1vW2NdLmNvbXBvbmVudEluc3RhbmNlLGIocyxjKSxzLnB1c2goYykpOihvW2NdPWUscy5wdXNoKGMpLHRoaXMubWF4JiZzLmxlbmd0aD5wYXJzZUludCh0aGlzLm1heCkmJkluKG8sc1swXSxzLHRoaXMuX3Zub2RlKSksZS5kYXRhLmtlZXBBbGl2ZT0hMH1yZXR1cm4gZXx8dCYmdFswXX19LEFuPXtLZWVwQWxpdmU6TW59OyhmdW5jdGlvbih0KXt2YXIgZT17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIER9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiY29uZmlnIixlKSx0LnV0aWw9e3dhcm46dXQsZXh0ZW5kOkksbWVyZ2VPcHRpb25zOlJ0LGRlZmluZVJlYWN0aXZlOmt0fSx0LnNldD1PdCx0LmRlbGV0ZT1FdCx0Lm5leHRUaWNrPWVlLHQub2JzZXJ2YWJsZT1mdW5jdGlvbih0KXtyZXR1cm4gQ3QodCksdH0sdC5vcHRpb25zPU9iamVjdC5jcmVhdGUobnVsbCksTi5mb3JFYWNoKChmdW5jdGlvbihlKXt0Lm9wdGlvbnNbZSsicyJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSksdC5vcHRpb25zLl9iYXNlPXQsSSh0Lm9wdGlvbnMuY29tcG9uZW50cyxBbiksZnVuY3Rpb24odCl7dC51c2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5faW5zdGFsbGVkUGx1Z2luc3x8KHRoaXMuX2luc3RhbGxlZFBsdWdpbnM9W10pO2lmKGUuaW5kZXhPZih0KT4tMSlyZXR1cm4gdGhpczt2YXIgbj1FKGFyZ3VtZW50cywxKTtyZXR1cm4gbi51bnNoaWZ0KHRoaXMpLCJmdW5jdGlvbiI9PT10eXBlb2YgdC5pbnN0YWxsP3QuaW5zdGFsbC5hcHBseSh0LG4pOiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdC5hcHBseShudWxsLG4pLGUucHVzaCh0KSx0aGlzfX0odCksZnVuY3Rpb24odCl7dC5taXhpbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPVJ0KHRoaXMub3B0aW9ucyx0KSx0aGlzfX0odCksQ24odCksZnVuY3Rpb24odCl7Ti5mb3JFYWNoKChmdW5jdGlvbihlKXt0W2VdPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG4/KCJjb21wb25lbnQiPT09ZSYmbChuKSYmKG4ubmFtZT1uLm5hbWV8fHQsbj10aGlzLm9wdGlvbnMuX2Jhc2UuZXh0ZW5kKG4pKSwiZGlyZWN0aXZlIj09PWUmJiJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKG49e2JpbmQ6bix1cGRhdGU6bn0pLHRoaXMub3B0aW9uc1tlKyJzIl1bdF09bixuKTp0aGlzLm9wdGlvbnNbZSsicyJdW3RdfX0pKX0odCl9KShUbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRuLnByb3RvdHlwZSwiJGlzU2VydmVyIix7Z2V0Oml0fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRuLnByb3RvdHlwZSwiJHNzckNvbnRleHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kdm5vZGUmJnRoaXMuJHZub2RlLnNzckNvbnRleHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFRuLCJGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCIse3ZhbHVlOiRlfSksVG4udmVyc2lvbj0iMi42LjExIjt2YXIgJG49Zygic3R5bGUsY2xhc3MiKSxMbj1nKCJpbnB1dCx0ZXh0YXJlYSxvcHRpb24sc2VsZWN0LHByb2dyZXNzIiksam49ZygiY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrIiksUm49ZygiZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seSIpLE5uPWcoImFsbG93ZnVsbHNjcmVlbixhc3luYyxhdXRvZm9jdXMsYXV0b3BsYXksY2hlY2tlZCxjb21wYWN0LGNvbnRyb2xzLGRlY2xhcmUsZGVmYXVsdCxkZWZhdWx0Y2hlY2tlZCxkZWZhdWx0bXV0ZWQsZGVmYXVsdHNlbGVjdGVkLGRlZmVyLGRpc2FibGVkLGVuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsbXV0ZWQsbm9ocmVmLG5vcmVzaXplLG5vc2hhZGUsbm92YWxpZGF0ZSxub3dyYXAsb3BlbixwYXVzZW9uZXhpdCxyZWFkb25seSxyZXF1aXJlZCxyZXZlcnNlZCxzY29wZWQsc2VhbWxlc3Msc2VsZWN0ZWQsc29ydGFibGUsdHJhbnNsYXRlLHRydWVzcGVlZCx0eXBlbXVzdG1hdGNoLHZpc2libGUiKSxCbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsRG49ZnVuY3Rpb24odCl7cmV0dXJuIjoiPT09dC5jaGFyQXQoNSkmJiJ4bGluayI9PT10LnNsaWNlKDAsNSl9LEZuPWZ1bmN0aW9uKHQpe3JldHVybiBEbih0KT90LnNsaWNlKDYsdC5sZW5ndGgpOiIifSxXbj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dHx8ITE9PT10fTtmdW5jdGlvbiBIbih0KXt2YXIgZT10LmRhdGEsbj10LHI9dDt3aGlsZShhKHIuY29tcG9uZW50SW5zdGFuY2UpKXI9ci5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUsciYmci5kYXRhJiYoZT1WbihyLmRhdGEsZSkpO3doaWxlKGEobj1uLnBhcmVudCkpbiYmbi5kYXRhJiYoZT1WbihlLG4uZGF0YSkpO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKGEodCl8fGEoZSkpcmV0dXJuIFVuKHQscW4oZSkpO3JldHVybiIifShlLnN0YXRpY0NsYXNzLGUuY2xhc3MpfWZ1bmN0aW9uIFZuKHQsZSl7cmV0dXJue3N0YXRpY0NsYXNzOlVuKHQuc3RhdGljQ2xhc3MsZS5zdGF0aWNDbGFzcyksY2xhc3M6YSh0LmNsYXNzKT9bdC5jbGFzcyxlLmNsYXNzXTplLmNsYXNzfX1mdW5jdGlvbiBVbih0LGUpe3JldHVybiB0P2U/dCsiICIrZTp0OmV8fCIifWZ1bmN0aW9uIHFuKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPSIiLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspYShlPXFuKHRbcl0pKSYmIiIhPT1lJiYobiYmKG4rPSIgIiksbis9ZSk7cmV0dXJuIG59KHQpOmModCk/ZnVuY3Rpb24odCl7dmFyIGU9IiI7Zm9yKHZhciBuIGluIHQpdFtuXSYmKGUmJihlKz0iICIpLGUrPW4pO3JldHVybiBlfSh0KToic3RyaW5nIj09PXR5cGVvZiB0P3Q6IiJ9dmFyIHpuPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixtYXRoOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIn0sWW49ZygiaHRtbCxib2R5LGJhc2UsaGVhZCxsaW5rLG1ldGEsc3R5bGUsdGl0bGUsYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGdyb3VwLG5hdixzZWN0aW9uLGRpdixkZCxkbCxkdCxmaWdjYXB0aW9uLGZpZ3VyZSxwaWN0dXJlLGhyLGltZyxsaSxtYWluLG9sLHAscHJlLHVsLGEsYixhYmJyLGJkaSxiZG8sYnIsY2l0ZSxjb2RlLGRhdGEsZGZuLGVtLGksa2JkLG1hcmsscSxycCxydCxydGMscnVieSxzLHNhbXAsc21hbGwsc3BhbixzdHJvbmcsc3ViLHN1cCx0aW1lLHUsdmFyLHdicixhcmVhLGF1ZGlvLG1hcCx0cmFjayx2aWRlbyxlbWJlZCxvYmplY3QscGFyYW0sc291cmNlLGNhbnZhcyxzY3JpcHQsbm9zY3JpcHQsZGVsLGlucyxjYXB0aW9uLGNvbCxjb2xncm91cCx0YWJsZSx0aGVhZCx0Ym9keSx0ZCx0aCx0cixidXR0b24sZGF0YWxpc3QsZmllbGRzZXQsZm9ybSxpbnB1dCxsYWJlbCxsZWdlbmQsbWV0ZXIsb3B0Z3JvdXAsb3B0aW9uLG91dHB1dCxwcm9ncmVzcyxzZWxlY3QsdGV4dGFyZWEsZGV0YWlscyxkaWFsb2csbWVudSxtZW51aXRlbSxzdW1tYXJ5LGNvbnRlbnQsZWxlbWVudCxzaGFkb3csdGVtcGxhdGUsYmxvY2txdW90ZSxpZnJhbWUsdGZvb3QiKSxYbj1nKCJzdmcsYW5pbWF0ZSxjaXJjbGUsY2xpcHBhdGgsY3Vyc29yLGRlZnMsZGVzYyxlbGxpcHNlLGZpbHRlcixmb250LWZhY2UsZm9yZWlnbk9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4scG9seWdvbixwb2x5bGluZSxyZWN0LHN3aXRjaCxzeW1ib2wsdGV4dCx0ZXh0cGF0aCx0c3Bhbix1c2UsdmlldyIsITApLEduPWZ1bmN0aW9uKHQpe3JldHVybiBZbih0KXx8WG4odCl9O3ZhciBRbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBKbj1nKCJ0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCIpO3ZhciBLbj1PYmplY3QuZnJlZXplKHtjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKHQsZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0KTtyZXR1cm4ic2VsZWN0IiE9PXR8fGUuZGF0YSYmZS5kYXRhLmF0dHJzJiZ2b2lkIDAhPT1lLmRhdGEuYXR0cnMubXVsdGlwbGUmJm4uc2V0QXR0cmlidXRlKCJtdWx0aXBsZSIsIm11bHRpcGxlIiksbn0sY3JlYXRlRWxlbWVudE5TOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh6blt0XSxlKX0sY3JlYXRlVGV4dE5vZGU6ZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpfSxjcmVhdGVDb21tZW50OmZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxlLG4pe3QuaW5zZXJ0QmVmb3JlKGUsbil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKHQsZSl7dC5yZW1vdmVDaGlsZChlKX0sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24odCxlKXt0LmFwcGVuZENoaWxkKGUpfSxwYXJlbnROb2RlOmZ1bmN0aW9uKHQpe3JldHVybiB0LnBhcmVudE5vZGV9LG5leHRTaWJsaW5nOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm5leHRTaWJsaW5nfSx0YWdOYW1lOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRhZ05hbWV9LHNldFRleHRDb250ZW50OmZ1bmN0aW9uKHQsZSl7dC50ZXh0Q29udGVudD1lfSxzZXRTdHlsZVNjb3BlOmZ1bmN0aW9uKHQsZSl7dC5zZXRBdHRyaWJ1dGUoZSwiIil9fSksWm49e2NyZWF0ZTpmdW5jdGlvbih0LGUpe3RyKGUpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt0LmRhdGEucmVmIT09ZS5kYXRhLnJlZiYmKHRyKHQsITApLHRyKGUpKX0sZGVzdHJveTpmdW5jdGlvbih0KXt0cih0LCEwKX19O2Z1bmN0aW9uIHRyKHQsZSl7dmFyIG49dC5kYXRhLnJlZjtpZihhKG4pKXt2YXIgcj10LmNvbnRleHQsaT10LmNvbXBvbmVudEluc3RhbmNlfHx0LmVsbSxvPXIuJHJlZnM7ZT9BcnJheS5pc0FycmF5KG9bbl0pP2Iob1tuXSxpKTpvW25dPT09aSYmKG9bbl09dm9pZCAwKTp0LmRhdGEucmVmSW5Gb3I/QXJyYXkuaXNBcnJheShvW25dKT9vW25dLmluZGV4T2YoaSk8MCYmb1tuXS5wdXNoKGkpOm9bbl09W2ldOm9bbl09aX19dmFyIGVyPW5ldyBwdCgiIix7fSxbXSksbnI9WyJjcmVhdGUiLCJhY3RpdmF0ZSIsInVwZGF0ZSIsInJlbW92ZSIsImRlc3Ryb3kiXTtmdW5jdGlvbiBycih0LGUpe3JldHVybiB0LmtleT09PWUua2V5JiYodC50YWc9PT1lLnRhZyYmdC5pc0NvbW1lbnQ9PT1lLmlzQ29tbWVudCYmYSh0LmRhdGEpPT09YShlLmRhdGEpJiZmdW5jdGlvbih0LGUpe2lmKCJpbnB1dCIhPT10LnRhZylyZXR1cm4hMDt2YXIgbixyPWEobj10LmRhdGEpJiZhKG49bi5hdHRycykmJm4udHlwZSxpPWEobj1lLmRhdGEpJiZhKG49bi5hdHRycykmJm4udHlwZTtyZXR1cm4gcj09PWl8fEpuKHIpJiZKbihpKX0odCxlKXx8byh0LmlzQXN5bmNQbGFjZWhvbGRlcikmJnQuYXN5bmNGYWN0b3J5PT09ZS5hc3luY0ZhY3RvcnkmJmkoZS5hc3luY0ZhY3RvcnkuZXJyb3IpKX1mdW5jdGlvbiBpcih0LGUsbil7dmFyIHIsaSxvPXt9O2ZvcihyPWU7cjw9bjsrK3IpaT10W3JdLmtleSxhKGkpJiYob1tpXT1yKTtyZXR1cm4gb312YXIgYXI9e2NyZWF0ZTpvcix1cGRhdGU6b3IsZGVzdHJveTpmdW5jdGlvbih0KXtvcih0LGVyKX19O2Z1bmN0aW9uIG9yKHQsZSl7KHQuZGF0YS5kaXJlY3RpdmVzfHxlLmRhdGEuZGlyZWN0aXZlcykmJmZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLGE9dD09PWVyLG89ZT09PWVyLHM9Y3IodC5kYXRhLmRpcmVjdGl2ZXMsdC5jb250ZXh0KSxjPWNyKGUuZGF0YS5kaXJlY3RpdmVzLGUuY29udGV4dCksdT1bXSxsPVtdO2ZvcihuIGluIGMpcj1zW25dLGk9Y1tuXSxyPyhpLm9sZFZhbHVlPXIudmFsdWUsaS5vbGRBcmc9ci5hcmcsbHIoaSwidXBkYXRlIixlLHQpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihscihpLCJiaW5kIixlLHQpLGkuZGVmJiZpLmRlZi5pbnNlcnRlZCYmdS5wdXNoKGkpKTtpZih1Lmxlbmd0aCl7dmFyIGY9ZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPHUubGVuZ3RoO24rKylscih1W25dLCJpbnNlcnRlZCIsZSx0KX07YT9zZShlLCJpbnNlcnQiLGYpOmYoKX1sLmxlbmd0aCYmc2UoZSwicG9zdHBhdGNoIiwoZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPGwubGVuZ3RoO24rKylscihsW25dLCJjb21wb25lbnRVcGRhdGVkIixlLHQpfSkpO2lmKCFhKWZvcihuIGluIHMpY1tuXXx8bHIoc1tuXSwidW5iaW5kIix0LHQsbyl9KHQsZSl9dmFyIHNyPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gY3IodCxlKXt2YXIgbixyLGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighdClyZXR1cm4gaTtmb3Iobj0wO248dC5sZW5ndGg7bisrKXI9dFtuXSxyLm1vZGlmaWVyc3x8KHIubW9kaWZpZXJzPXNyKSxpW3VyKHIpXT1yLHIuZGVmPU50KGUuJG9wdGlvbnMsImRpcmVjdGl2ZXMiLHIubmFtZSk7cmV0dXJuIGl9ZnVuY3Rpb24gdXIodCl7cmV0dXJuIHQucmF3TmFtZXx8dC5uYW1lKyIuIitPYmplY3Qua2V5cyh0Lm1vZGlmaWVyc3x8e30pLmpvaW4oIi4iKX1mdW5jdGlvbiBscih0LGUsbixyLGkpe3ZhciBhPXQuZGVmJiZ0LmRlZltlXTtpZihhKXRyeXthKG4uZWxtLHQsbixyLGkpfWNhdGNoKFVpKXtIdChVaSxuLmNvbnRleHQsImRpcmVjdGl2ZSAiK3QubmFtZSsiICIrZSsiIGhvb2siKX19dmFyIGZyPVtabixhcl07ZnVuY3Rpb24gZHIodCxlKXtpZighaSh0LmRhdGEud3hzUHJvcHMpfHwhaShlLmRhdGEud3hzUHJvcHMpKXt2YXIgbj10LiR3eHNXYXRjaGVzLHI9T2JqZWN0LmtleXMoZS5kYXRhLnd4c1Byb3BzKTtpZihufHxyLmxlbmd0aCl7bnx8KG49e30pO3ZhciBhPWZ1bmN0aW9uKHQsZSl7dmFyIG49e307cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKHIpe2Vbcl0mJihuW3Rbcl1dPWVbcl0sZGVsZXRlIGVbcl0pfSkpLG59KGUuZGF0YS53eHNQcm9wcyxlLmRhdGEuYXR0cnMpLG89ZS5jb250ZXh0O2UuJHd4c1dhdGNoZXM9e30sT2JqZWN0LmtleXMoYSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9dDtlLmNvbnRleHQud3hzUHJvcHMmJihyPSJ3eHNQcm9wcy4iK3QpLGUuJHd4c1dhdGNoZXNbdF09blt0XXx8ZS5jb250ZXh0LiR3YXRjaChyLChmdW5jdGlvbihuLHIpe3ZhciBpPWUuZWxtLl9fdnVlX198fGUuZWxtO2FbdF0obixyLG8uJGdldENvbXBvbmVudERlc2NyaXB0b3IobywhMCksaS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvciYmaS4kZ2V0Q29tcG9uZW50RGVzY3JpcHRvcihpLCExKSl9KSx7aW1tZWRpYXRlOiEwLGRlZXA6ITB9KX0pKSxPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlLiR3eHNXYXRjaGVzW3RdfHwoblt0XSgpLGRlbGV0ZSBuW3RdKX0pKX19fXZhciBocj17Y3JlYXRlOmRyLHVwZGF0ZTpkcn07ZnVuY3Rpb24gcHIodCxlKXt2YXIgbj1lLmNvbXBvbmVudE9wdGlvbnM7aWYoKCFhKG4pfHwhMSE9PW4uQ3Rvci5vcHRpb25zLmluaGVyaXRBdHRycykmJighaSh0LmRhdGEuYXR0cnMpfHwhaShlLmRhdGEuYXR0cnMpKSl7dmFyIHIsbyxzLGM9ZS5lbG0sdT10LmRhdGEuYXR0cnN8fHt9LGw9ZS5kYXRhLmF0dHJzfHx7fTtmb3IociBpbiBhKGwuX19vYl9fKSYmKGw9ZS5kYXRhLmF0dHJzPUkoe30sbCkpLGwpbz1sW3JdLHM9dVtyXSxzIT09byYmdnIoYyxyLG8pO2ZvcihyIGluKFF8fEspJiZsLnZhbHVlIT09dS52YWx1ZSYmdnIoYywidmFsdWUiLGwudmFsdWUpLHUpaShsW3JdKSYmKERuKHIpP2MucmVtb3ZlQXR0cmlidXRlTlMoQm4sRm4ocikpOmpuKHIpfHxjLnJlbW92ZUF0dHJpYnV0ZShyKSl9fWZ1bmN0aW9uIHZyKHQsZSxuKXt0LnRhZ05hbWUuaW5kZXhPZigiLSIpPi0xP2dyKHQsZSxuKTpObihlKT9XbihuKT90LnJlbW92ZUF0dHJpYnV0ZShlKToobj0iYWxsb3dmdWxsc2NyZWVuIj09PWUmJiJFTUJFRCI9PT10LnRhZ05hbWU/InRydWUiOmUsdC5zZXRBdHRyaWJ1dGUoZSxuKSk6am4oZSk/dC5zZXRBdHRyaWJ1dGUoZSxmdW5jdGlvbih0LGUpe3JldHVybiBXbihlKXx8ImZhbHNlIj09PWU/ImZhbHNlIjoiY29udGVudGVkaXRhYmxlIj09PXQmJlJuKGUpP2U6InRydWUifShlLG4pKTpEbihlKT9XbihuKT90LnJlbW92ZUF0dHJpYnV0ZU5TKEJuLEZuKGUpKTp0LnNldEF0dHJpYnV0ZU5TKEJuLGUsbik6Z3IodCxlLG4pfWZ1bmN0aW9uIGdyKHQsZSxuKXtpZihXbihuKSl0LnJlbW92ZUF0dHJpYnV0ZShlKTtlbHNle2lmKFEmJiFKJiYiVEVYVEFSRUEiPT09dC50YWdOYW1lJiYicGxhY2Vob2xkZXIiPT09ZSYmIiIhPT1uJiYhdC5fX2llcGgpe3ZhciByPWZ1bmN0aW9uKGUpe2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnB1dCIscil9O3QuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpLHQuX19pZXBoPSEwfXQuc2V0QXR0cmlidXRlKGUsbil9fXZhciBtcj17Y3JlYXRlOnByLHVwZGF0ZTpwcn07ZnVuY3Rpb24gYnIodCxlKXt2YXIgbj1lLmVsbSxyPWUuZGF0YSxvPXQuZGF0YTtpZighKGkoci5zdGF0aWNDbGFzcykmJmkoci5jbGFzcykmJihpKG8pfHxpKG8uc3RhdGljQ2xhc3MpJiZpKG8uY2xhc3MpKSYmaShuLl9fd3hzQWRkQ2xhc3MpJiZpKG4uX193eHNSZW1vdmVDbGFzcykpKXt2YXIgcz1IbihlKSxjPW4uX3RyYW5zaXRpb25DbGFzc2VzO2lmKGEoYykmJihzPVVuKHMscW4oYykpKSxBcnJheS5pc0FycmF5KG4uX193eHNSZW1vdmVDbGFzcykmJm4uX193eHNSZW1vdmVDbGFzcy5sZW5ndGgpe3ZhciB1PXMuc3BsaXQoL1xzKy8pO24uX193eHNSZW1vdmVDbGFzcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT11LmZpbmRJbmRleCgoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fSkpOy0xIT09ZSYmdS5zcGxpY2UoZSwxKX0pKSxzPXUuam9pbigiICIpLG4uX193eHNSZW1vdmVDbGFzcy5sZW5ndGg9MH1pZihuLl9fd3hzQWRkQ2xhc3Mpe3ZhciBsPXMuc3BsaXQoL1xzKy8pLmNvbmNhdChuLl9fd3hzQWRkQ2xhc3Muc3BsaXQoL1xzKy8pKSxmPU9iamVjdC5jcmVhdGUobnVsbCk7bC5mb3JFYWNoKChmdW5jdGlvbih0KXt0JiYoZlt0XT0xKX0pKSxzPU9iamVjdC5rZXlzKGYpLmpvaW4oIiAiKX12YXIgZD1lLmNvbnRleHQsaD1kLiRvcHRpb25zLm1wT3B0aW9ucyYmZC4kb3B0aW9ucy5tcE9wdGlvbnMuZXh0ZXJuYWxDbGFzc2VzO0FycmF5LmlzQXJyYXkoaCkmJmguZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9ZFtTKHQpXTtlJiYocz1zLnJlcGxhY2UodCxlKSl9KSkscyE9PW4uX3ByZXZDbGFzcyYmKG4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyksbi5fcHJldkNsYXNzPXMpfX12YXIgeXIsX3I9e2NyZWF0ZTpicix1cGRhdGU6YnJ9O2Z1bmN0aW9uIHdyKHQsZSxuKXt2YXIgcj15cjtyZXR1cm4gZnVuY3Rpb24gaSgpe3ZhciBhPWUuYXBwbHkobnVsbCxhcmd1bWVudHMpO251bGwhPT1hJiZUcih0LGksbixyKX19dmFyIHhyPVl0JiYhKHR0JiZOdW1iZXIodHRbMV0pPD01Myk7ZnVuY3Rpb24gU3IodCxlLG4scil7aWYoeHIpe3ZhciBpPWNuLGE9ZTtlPWEuX3dyYXBwZXI9ZnVuY3Rpb24odCl7aWYodC50YXJnZXQ9PT10LmN1cnJlbnRUYXJnZXR8fHQudGltZVN0YW1wPj1pfHx0LnRpbWVTdGFtcDw9MHx8dC50YXJnZXQub3duZXJEb2N1bWVudCE9PWRvY3VtZW50KXJldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19eXIuYWRkRXZlbnRMaXN0ZW5lcih0LGUsbnQ/e2NhcHR1cmU6bixwYXNzaXZlOnJ9Om4pfWZ1bmN0aW9uIFRyKHQsZSxuLHIpeyhyfHx5cikucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUuX3dyYXBwZXJ8fGUsbil9ZnVuY3Rpb24gQ3IodCxlKXtpZighaSh0LmRhdGEub24pfHwhaShlLmRhdGEub24pKXt2YXIgbj1lLmRhdGEub258fHt9LHI9dC5kYXRhLm9ufHx7fTt5cj1lLmVsbSxmdW5jdGlvbih0KXtpZihhKHRbIl9fciJdKSl7dmFyIGU9UT8iY2hhbmdlIjoiaW5wdXQiO3RbZV09W10uY29uY2F0KHRbIl9fciJdLHRbZV18fFtdKSxkZWxldGUgdFsiX19yIl19YSh0WyJfX2MiXSkmJih0LmNoYW5nZT1bXS5jb25jYXQodFsiX19jIl0sdC5jaGFuZ2V8fFtdKSxkZWxldGUgdFsiX19jIl0pfShuKSxvZShuLHIsU3IsVHIsd3IsZS5jb250ZXh0KSx5cj12b2lkIDB9fXZhciBrcixPcj17Y3JlYXRlOkNyLHVwZGF0ZTpDcn07ZnVuY3Rpb24gRXIodCxlKXtpZighaSh0LmRhdGEuZG9tUHJvcHMpfHwhaShlLmRhdGEuZG9tUHJvcHMpKXt2YXIgbixyLG89ZS5lbG0scz10LmRhdGEuZG9tUHJvcHN8fHt9LGM9ZS5kYXRhLmRvbVByb3BzfHx7fTtmb3IobiBpbiBhKGMuX19vYl9fKSYmKGM9ZS5kYXRhLmRvbVByb3BzPUkoe30sYykpLHMpbiBpbiBjfHwob1tuXT0iIik7Zm9yKG4gaW4gYyl7aWYocj1jW25dLCJ0ZXh0Q29udGVudCI9PT1ufHwiaW5uZXJIVE1MIj09PW4pe2lmKGUuY2hpbGRyZW4mJihlLmNoaWxkcmVuLmxlbmd0aD0wKSxyPT09c1tuXSljb250aW51ZTsxPT09by5jaGlsZE5vZGVzLmxlbmd0aCYmby5yZW1vdmVDaGlsZChvLmNoaWxkTm9kZXNbMF0pfWlmKCJ2YWx1ZSI9PT1uJiYiUFJPR1JFU1MiIT09by50YWdOYW1lKXtvLl92YWx1ZT1yO3ZhciB1PWkocik/IiI6U3RyaW5nKHIpO0lyKG8sdSkmJihvLnZhbHVlPXUpfWVsc2UgaWYoImlubmVySFRNTCI9PT1uJiZYbihvLnRhZ05hbWUpJiZpKG8uaW5uZXJIVE1MKSl7a3I9a3J8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGtyLmlubmVySFRNTD0iPHN2Zz4iK3IrIjwvc3ZnPiI7dmFyIGw9a3IuZmlyc3RDaGlsZDt3aGlsZShvLmZpcnN0Q2hpbGQpby5yZW1vdmVDaGlsZChvLmZpcnN0Q2hpbGQpO3doaWxlKGwuZmlyc3RDaGlsZClvLmFwcGVuZENoaWxkKGwuZmlyc3RDaGlsZCl9ZWxzZSBpZihyIT09c1tuXSl0cnl7b1tuXT1yfWNhdGNoKFVpKXt9fX19ZnVuY3Rpb24gSXIodCxlKXtyZXR1cm4hdC5jb21wb3NpbmcmJigiT1BUSU9OIj09PXQudGFnTmFtZXx8ZnVuY3Rpb24odCxlKXt2YXIgbj0hMDt0cnl7bj1kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dH1jYXRjaChVaSl7fXJldHVybiBuJiZ0LnZhbHVlIT09ZX0odCxlKXx8ZnVuY3Rpb24odCxlKXt2YXIgbj10LnZhbHVlLHI9dC5fdk1vZGlmaWVycztpZihhKHIpKXtpZihyLm51bWJlcilyZXR1cm4gdihuKSE9PXYoZSk7aWYoci50cmltKXJldHVybiBuLnRyaW0oKSE9PWUudHJpbSgpfXJldHVybiBuIT09ZX0odCxlKSl9dmFyIFByPXtjcmVhdGU6RXIsdXBkYXRlOkVyfSxNcj13KChmdW5jdGlvbih0KXt2YXIgZT17fSxuPS86KC4rKS87cmV0dXJuIHQuc3BsaXQoLzsoPyFbXihdKlwpKS9nKS5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0KXt2YXIgcj10LnNwbGl0KG4pO3IubGVuZ3RoPjEmJihlW3JbMF0udHJpbSgpXT1yWzFdLnRyaW0oKSl9fSkpLGV9KSk7ZnVuY3Rpb24gQXIodCl7dmFyIGU9JHIodC5zdHlsZSk7cmV0dXJuIHQuc3RhdGljU3R5bGU/SSh0LnN0YXRpY1N0eWxlLGUpOmV9ZnVuY3Rpb24gJHIodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/UCh0KToic3RyaW5nIj09PXR5cGVvZiB0P01yKHQpOnR9dmFyIExyLGpyPS9eLS0vLFJyPS9ccyohaW1wb3J0YW50JC8sTnI9L1xiKFsrLV0/XGQrKFwuXGQrKT8pW3J8dV1weFxiL2csQnI9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgdD90LnJlcGxhY2UoTnIsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHVuaS51cHgycHgoZSkrInB4In0pKTp0fSxEcj0vdXJsXChccypbJyJdKC4rP1wuKGpwZ3xnaWZ8cG5nKSlbJyJdXHMqXCkvLEZyPS91cmxcKFxzKihbYS16QS1aMC05XC5cLVxfXC9dKz9cLihqcGd8Z2lmfHBuZykpXHMqXCkvLFdyPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKHImJnIuXyRnZXRSZWFsUGF0aCYmbiYmKG49ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09PXR5cGVvZiB0JiYtMSE9PXQuaW5kZXhPZigidXJsKCIpKXt2YXIgbj10Lm1hdGNoKERyKXx8dC5tYXRjaChGcik7biYmMz09PW4ubGVuZ3RoJiYodD10LnJlcGxhY2UoblsxXSxlLl8kZ2V0UmVhbFBhdGgoblsxXSkpKX1yZXR1cm4gdH0obixyKSksanIudGVzdChlKSl0LnN0eWxlLnNldFByb3BlcnR5KGUsbik7ZWxzZSBpZihSci50ZXN0KG4pKXQuc3R5bGUuc2V0UHJvcGVydHkoayhlKSxuLnJlcGxhY2UoUnIsIiIpLCJpbXBvcnRhbnQiKTtlbHNle3ZhciBpPVZyKGUpO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBhPTAsbz1uLmxlbmd0aDthPG87YSsrKXQuc3R5bGVbaV09QnIoblthXSk7ZWxzZSB0LnN0eWxlW2ldPUJyKG4pfX0sSHI9WyJXZWJraXQiLCJNb3oiLCJtcyJdLFZyPXcoKGZ1bmN0aW9uKHQpe2lmKExyPUxyfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSx0PVModCksImZpbHRlciIhPT10JiZ0IGluIExyKXJldHVybiB0O2Zvcih2YXIgZT10LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSksbj0wO248SHIubGVuZ3RoO24rKyl7dmFyIHI9SHJbbl0rZTtpZihyIGluIExyKXJldHVybiByfX0pKTtmdW5jdGlvbiBVcih0LGUpe3ZhciBuPWUuZGF0YSxyPXQuZGF0YSxvPWUuZWxtO2lmKCEoaShuLnN0YXRpY1N0eWxlKSYmaShuLnN0eWxlKSYmaShyLnN0YXRpY1N0eWxlKSYmaShyLnN0eWxlKSYmaShvLl9fd3hzU3R5bGUpKSl7dmFyIHMsYyx1PXIuc3RhdGljU3R5bGUsbD1yLm5vcm1hbGl6ZWRTdHlsZXx8ci5zdHlsZXx8e30sZj11fHxsLGQ9JHIoZS5kYXRhLnN0eWxlKXx8e307ZS5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1hKGQuX19vYl9fKT9JKHt9LGQpOmQ7dmFyIGg9ZnVuY3Rpb24odCxlKXt2YXIgbixyPXt9O2lmKGUpe3ZhciBpPXQ7d2hpbGUoaS5jb21wb25lbnRJbnN0YW5jZSlpPWkuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLGkmJmkuZGF0YSYmKG49QXIoaS5kYXRhKSkmJkkocixuKX0obj1Bcih0LmRhdGEpKSYmSShyLG4pO3ZhciBhPXQ7d2hpbGUoYT1hLnBhcmVudClhLmRhdGEmJihuPUFyKGEuZGF0YSkpJiZJKHIsbik7cmV0dXJuIHJ9KGUsITApO2ZvcihjIGluIG8uX193eHNTdHlsZSYmKE9iamVjdC5hc3NpZ24oZS5kYXRhLm5vcm1hbGl6ZWRTdHlsZSxvLl9fd3hzU3R5bGUpLE9iamVjdC5hc3NpZ24oaCxvLl9fd3hzU3R5bGUpKSxmKWkoaFtjXSkmJldyKG8sYywiIik7Zm9yKGMgaW4gaClzPWhbY10scyE9PWZbY10mJldyKG8sYyxudWxsPT1zPyIiOnMsZS5jb250ZXh0KX19dmFyIHFyPXtjcmVhdGU6VXIsdXBkYXRlOlVyfSx6cj0vXHMrLztmdW5jdGlvbiBZcih0LGUpe2lmKGUmJihlPWUudHJpbSgpKSlpZih0LmNsYXNzTGlzdCllLmluZGV4T2YoIiAiKT4tMT9lLnNwbGl0KHpyKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jbGFzc0xpc3QuYWRkKGUpfSkpOnQuY2xhc3NMaXN0LmFkZChlKTtlbHNle3ZhciBuPSIgIisodC5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKSsiICI7bi5pbmRleE9mKCIgIitlKyIgIik8MCYmdC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwobitlKS50cmltKCkpfX1mdW5jdGlvbiBYcih0LGUpe2lmKGUmJihlPWUudHJpbSgpKSlpZih0LmNsYXNzTGlzdCllLmluZGV4T2YoIiAiKT4tMT9lLnNwbGl0KHpyKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5jbGFzc0xpc3QucmVtb3ZlKGUpfSkpOnQuY2xhc3NMaXN0LnJlbW92ZShlKSx0LmNsYXNzTGlzdC5sZW5ndGh8fHQucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpO2Vsc2V7dmFyIG49IiAiKyh0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIixyPSIgIitlKyIgIjt3aGlsZShuLmluZGV4T2Yocik+PTApbj1uLnJlcGxhY2UociwiICIpO249bi50cmltKCksbj90LnNldEF0dHJpYnV0ZSgiY2xhc3MiLG4pOnQucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfX1mdW5jdGlvbiBHcih0KXtpZih0KXtpZigib2JqZWN0Ij09PXR5cGVvZiB0KXt2YXIgZT17fTtyZXR1cm4hMSE9PXQuY3NzJiZJKGUsUXIodC5uYW1lfHwidiIpKSxJKGUsdCksZX1yZXR1cm4ic3RyaW5nIj09PXR5cGVvZiB0P1FyKHQpOnZvaWQgMH19dmFyIFFyPXcoKGZ1bmN0aW9uKHQpe3JldHVybntlbnRlckNsYXNzOnQrIi1lbnRlciIsZW50ZXJUb0NsYXNzOnQrIi1lbnRlci10byIsZW50ZXJBY3RpdmVDbGFzczp0KyItZW50ZXItYWN0aXZlIixsZWF2ZUNsYXNzOnQrIi1sZWF2ZSIsbGVhdmVUb0NsYXNzOnQrIi1sZWF2ZS10byIsbGVhdmVBY3RpdmVDbGFzczp0KyItbGVhdmUtYWN0aXZlIn19KSksSnI9eiYmIUosS3I9InRyYW5zaXRpb24iLFpyPSJ0cmFuc2l0aW9uZW5kIix0aT0iYW5pbWF0aW9uIixlaT0iYW5pbWF0aW9uZW5kIjtKciYmKHZvaWQgMD09PXdpbmRvdy5vbnRyYW5zaXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdHRyYW5zaXRpb25lbmQmJihLcj0iV2Via2l0VHJhbnNpdGlvbiIsWnI9IndlYmtpdFRyYW5zaXRpb25FbmQiKSx2b2lkIDA9PT13aW5kb3cub25hbmltYXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdGFuaW1hdGlvbmVuZCYmKHRpPSJXZWJraXRBbmltYXRpb24iLGVpPSJ3ZWJraXRBbmltYXRpb25FbmQiKSk7dmFyIG5pPXo/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpzZXRUaW1lb3V0OmZ1bmN0aW9uKHQpe3JldHVybiB0KCl9O2Z1bmN0aW9uIHJpKHQpe25pKChmdW5jdGlvbigpe25pKHQpfSkpfWZ1bmN0aW9uIGlpKHQsZSl7dmFyIG49dC5fdHJhbnNpdGlvbkNsYXNzZXN8fCh0Ll90cmFuc2l0aW9uQ2xhc3Nlcz1bXSk7bi5pbmRleE9mKGUpPDAmJihuLnB1c2goZSksWXIodCxlKSl9ZnVuY3Rpb24gYWkodCxlKXt0Ll90cmFuc2l0aW9uQ2xhc3NlcyYmYih0Ll90cmFuc2l0aW9uQ2xhc3NlcyxlKSxYcih0LGUpfWZ1bmN0aW9uIG9pKHQsZSxuKXt2YXIgcj1jaSh0LGUpLGk9ci50eXBlLGE9ci50aW1lb3V0LG89ci5wcm9wQ291bnQ7aWYoIWkpcmV0dXJuIG4oKTt2YXIgcz0idHJhbnNpdGlvbiI9PT1pP1pyOmVpLGM9MCx1PWZ1bmN0aW9uKCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKHMsbCksbigpfSxsPWZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09dCYmKytjPj1vJiZ1KCl9O3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7YzxvJiZ1KCl9KSxhKzEpLHQuYWRkRXZlbnRMaXN0ZW5lcihzLGwpfXZhciBzaT0vXGIodHJhbnNmb3JtfGFsbCkoLHwkKS87ZnVuY3Rpb24gY2kodCxlKXt2YXIgbixyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLGk9KHJbS3IrIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxhPShyW0tyKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksbz11aShpLGEpLHM9KHJbdGkrIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxjPShyW3RpKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksdT11aShzLGMpLGw9MCxmPTA7InRyYW5zaXRpb24iPT09ZT9vPjAmJihuPSJ0cmFuc2l0aW9uIixsPW8sZj1hLmxlbmd0aCk6ImFuaW1hdGlvbiI9PT1lP3U+MCYmKG49ImFuaW1hdGlvbiIsbD11LGY9Yy5sZW5ndGgpOihsPU1hdGgubWF4KG8sdSksbj1sPjA/bz51PyJ0cmFuc2l0aW9uIjoiYW5pbWF0aW9uIjpudWxsLGY9bj8idHJhbnNpdGlvbiI9PT1uP2EubGVuZ3RoOmMubGVuZ3RoOjApO3ZhciBkPSJ0cmFuc2l0aW9uIj09PW4mJnNpLnRlc3QocltLcisiUHJvcGVydHkiXSk7cmV0dXJue3R5cGU6bix0aW1lb3V0OmwscHJvcENvdW50OmYsaGFzVHJhbnNmb3JtOmR9fWZ1bmN0aW9uIHVpKHQsZSl7d2hpbGUodC5sZW5ndGg8ZS5sZW5ndGgpdD10LmNvbmNhdCh0KTtyZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCxlLm1hcCgoZnVuY3Rpb24oZSxuKXtyZXR1cm4gbGkoZSkrbGkodFtuXSl9KSkpfWZ1bmN0aW9uIGxpKHQpe3JldHVybiAxZTMqTnVtYmVyKHQuc2xpY2UoMCwtMSkucmVwbGFjZSgiLCIsIi4iKSl9ZnVuY3Rpb24gZmkodCxlKXt2YXIgbj10LmVsbTthKG4uX2xlYXZlQ2IpJiYobi5fbGVhdmVDYi5jYW5jZWxsZWQ9ITAsbi5fbGVhdmVDYigpKTt2YXIgcj1Hcih0LmRhdGEudHJhbnNpdGlvbik7aWYoIWkocikmJiFhKG4uX2VudGVyQ2IpJiYxPT09bi5ub2RlVHlwZSl7dmFyIG89ci5jc3Mscz1yLnR5cGUsdT1yLmVudGVyQ2xhc3MsbD1yLmVudGVyVG9DbGFzcyxmPXIuZW50ZXJBY3RpdmVDbGFzcyxkPXIuYXBwZWFyQ2xhc3MsaD1yLmFwcGVhclRvQ2xhc3MscD1yLmFwcGVhckFjdGl2ZUNsYXNzLGc9ci5iZWZvcmVFbnRlcixtPXIuZW50ZXIsYj1yLmFmdGVyRW50ZXIseT1yLmVudGVyQ2FuY2VsbGVkLF89ci5iZWZvcmVBcHBlYXIsdz1yLmFwcGVhcix4PXIuYWZ0ZXJBcHBlYXIsUz1yLmFwcGVhckNhbmNlbGxlZCxUPXIuZHVyYXRpb24sQz1RZSxrPVFlLiR2bm9kZTt3aGlsZShrJiZrLnBhcmVudClDPWsuY29udGV4dCxrPWsucGFyZW50O3ZhciBPPSFDLl9pc01vdW50ZWR8fCF0LmlzUm9vdEluc2VydDtpZighT3x8d3x8IiI9PT13KXt2YXIgRT1PJiZkP2Q6dSxJPU8mJnA/cDpmLFA9TyYmaD9oOmwsTT1PJiZffHxnLEE9TyYmImZ1bmN0aW9uIj09PXR5cGVvZiB3P3c6bSwkPU8mJnh8fGIsTD1PJiZTfHx5LGo9dihjKFQpP1QuZW50ZXI6VCk7MDt2YXIgTj0hMSE9PW8mJiFKLEI9cGkoQSksRD1uLl9lbnRlckNiPVIoKGZ1bmN0aW9uKCl7TiYmKGFpKG4sUCksYWkobixJKSksRC5jYW5jZWxsZWQ/KE4mJmFpKG4sRSksTCYmTChuKSk6JCYmJChuKSxuLl9lbnRlckNiPW51bGx9KSk7dC5kYXRhLnNob3d8fHNlKHQsImluc2VydCIsKGZ1bmN0aW9uKCl7dmFyIGU9bi5wYXJlbnROb2RlLHI9ZSYmZS5fcGVuZGluZyYmZS5fcGVuZGluZ1t0LmtleV07ciYmci50YWc9PT10LnRhZyYmci5lbG0uX2xlYXZlQ2ImJnIuZWxtLl9sZWF2ZUNiKCksQSYmQShuLEQpfSkpLE0mJk0obiksTiYmKGlpKG4sRSksaWkobixJKSxyaSgoZnVuY3Rpb24oKXthaShuLEUpLEQuY2FuY2VsbGVkfHwoaWkobixQKSxCfHwoaGkoaik/c2V0VGltZW91dChELGopOm9pKG4scyxEKSkpfSkpKSx0LmRhdGEuc2hvdyYmKGUmJmUoKSxBJiZBKG4sRCkpLE58fEJ8fEQoKX19fWZ1bmN0aW9uIGRpKHQsZSl7dmFyIG49dC5lbG07YShuLl9lbnRlckNiKSYmKG4uX2VudGVyQ2IuY2FuY2VsbGVkPSEwLG4uX2VudGVyQ2IoKSk7dmFyIHI9R3IodC5kYXRhLnRyYW5zaXRpb24pO2lmKGkocil8fDEhPT1uLm5vZGVUeXBlKXJldHVybiBlKCk7aWYoIWEobi5fbGVhdmVDYikpe3ZhciBvPXIuY3NzLHM9ci50eXBlLHU9ci5sZWF2ZUNsYXNzLGw9ci5sZWF2ZVRvQ2xhc3MsZj1yLmxlYXZlQWN0aXZlQ2xhc3MsZD1yLmJlZm9yZUxlYXZlLGg9ci5sZWF2ZSxwPXIuYWZ0ZXJMZWF2ZSxnPXIubGVhdmVDYW5jZWxsZWQsbT1yLmRlbGF5TGVhdmUsYj1yLmR1cmF0aW9uLHk9ITEhPT1vJiYhSixfPXBpKGgpLHc9dihjKGIpP2IubGVhdmU6Yik7MDt2YXIgeD1uLl9sZWF2ZUNiPVIoKGZ1bmN0aW9uKCl7bi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUuX3BlbmRpbmcmJihuLnBhcmVudE5vZGUuX3BlbmRpbmdbdC5rZXldPW51bGwpLHkmJihhaShuLGwpLGFpKG4sZikpLHguY2FuY2VsbGVkPyh5JiZhaShuLHUpLGcmJmcobikpOihlKCkscCYmcChuKSksbi5fbGVhdmVDYj1udWxsfSkpO20/bShTKTpTKCl9ZnVuY3Rpb24gUygpe3guY2FuY2VsbGVkfHwoIXQuZGF0YS5zaG93JiZuLnBhcmVudE5vZGUmJigobi5wYXJlbnROb2RlLl9wZW5kaW5nfHwobi5wYXJlbnROb2RlLl9wZW5kaW5nPXt9KSlbdC5rZXldPXQpLGQmJmQobikseSYmKGlpKG4sdSksaWkobixmKSxyaSgoZnVuY3Rpb24oKXthaShuLHUpLHguY2FuY2VsbGVkfHwoaWkobixsKSxffHwoaGkodyk/c2V0VGltZW91dCh4LHcpOm9pKG4scyx4KSkpfSkpKSxoJiZoKG4seCkseXx8X3x8eCgpKX19ZnVuY3Rpb24gaGkodCl7cmV0dXJuIm51bWJlciI9PT10eXBlb2YgdCYmIWlzTmFOKHQpfWZ1bmN0aW9uIHBpKHQpe2lmKGkodCkpcmV0dXJuITE7dmFyIGU9dC5mbnM7cmV0dXJuIGEoZSk/cGkoQXJyYXkuaXNBcnJheShlKT9lWzBdOmUpOih0Ll9sZW5ndGh8fHQubGVuZ3RoKT4xfWZ1bmN0aW9uIHZpKHQsZSl7ITAhPT1lLmRhdGEuc2hvdyYmZmkoZSl9dmFyIGdpPXo/e2NyZWF0ZTp2aSxhY3RpdmF0ZTp2aSxyZW1vdmU6ZnVuY3Rpb24odCxlKXshMCE9PXQuZGF0YS5zaG93P2RpKHQsZSk6ZSgpfX06e30sbWk9W2hyLG1yLF9yLE9yLFByLHFyLGdpXSxiaT1taS5jb25jYXQoZnIpLHlpPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj17fSxjPXQubW9kdWxlcyx1PXQubm9kZU9wcztmb3IoZT0wO2U8bnIubGVuZ3RoOysrZSlmb3IocltucltlXV09W10sbj0wO248Yy5sZW5ndGg7KytuKWEoY1tuXVtucltlXV0pJiZyW25yW2VdXS5wdXNoKGNbbl1bbnJbZV1dKTtmdW5jdGlvbiBsKHQpe3ZhciBlPXUucGFyZW50Tm9kZSh0KTthKGUpJiZ1LnJlbW92ZUNoaWxkKGUsdCl9ZnVuY3Rpb24gZih0LGUsbixpLHMsYyxsKXtpZihhKHQuZWxtKSYmYShjKSYmKHQ9Y1tsXT1idCh0KSksdC5pc1Jvb3RJbnNlcnQ9IXMsIWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciBzPXQuZGF0YTtpZihhKHMpKXt2YXIgYz1hKHQuY29tcG9uZW50SW5zdGFuY2UpJiZzLmtlZXBBbGl2ZTtpZihhKHM9cy5ob29rKSYmYShzPXMuaW5pdCkmJnModCwhMSksYSh0LmNvbXBvbmVudEluc3RhbmNlKSlyZXR1cm4gZCh0LGUpLGgobix0LmVsbSxpKSxvKGMpJiZmdW5jdGlvbih0LGUsbixpKXt2YXIgbyxzPXQ7d2hpbGUocy5jb21wb25lbnRJbnN0YW5jZSlpZihzPXMuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLGEobz1zLmRhdGEpJiZhKG89by50cmFuc2l0aW9uKSl7Zm9yKG89MDtvPHIuYWN0aXZhdGUubGVuZ3RoOysrbylyLmFjdGl2YXRlW29dKGVyLHMpO2UucHVzaChzKTticmVha31oKG4sdC5lbG0saSl9KHQsZSxuLGkpLCEwfX0odCxlLG4saSkpe3ZhciBmPXQuZGF0YSx2PXQuY2hpbGRyZW4sZz10LnRhZzthKGcpPyh0LmVsbT10Lm5zP3UuY3JlYXRlRWxlbWVudE5TKHQubnMsZyk6dS5jcmVhdGVFbGVtZW50KGcsdCksYih0KSxwKHQsdixlKSxhKGYpJiZtKHQsZSksaChuLHQuZWxtLGkpKTpvKHQuaXNDb21tZW50KT8odC5lbG09dS5jcmVhdGVDb21tZW50KHQudGV4dCksaChuLHQuZWxtLGkpKToodC5lbG09dS5jcmVhdGVUZXh0Tm9kZSh0LnRleHQpLGgobix0LmVsbSxpKSl9fWZ1bmN0aW9uIGQodCxlKXthKHQuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKGUucHVzaC5hcHBseShlLHQuZGF0YS5wZW5kaW5nSW5zZXJ0KSx0LmRhdGEucGVuZGluZ0luc2VydD1udWxsKSx0LmVsbT10LmNvbXBvbmVudEluc3RhbmNlLiRlbCx2KHQpPyhtKHQsZSksYih0KSk6KHRyKHQpLGUucHVzaCh0KSl9ZnVuY3Rpb24gaCh0LGUsbil7YSh0KSYmKGEobik/dS5wYXJlbnROb2RlKG4pPT09dCYmdS5pbnNlcnRCZWZvcmUodCxlLG4pOnUuYXBwZW5kQ2hpbGQodCxlKSl9ZnVuY3Rpb24gcCh0LGUsbil7aWYoQXJyYXkuaXNBcnJheShlKSl7MDtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilmKGVbcl0sbix0LmVsbSxudWxsLCEwLGUscil9ZWxzZSBzKHQudGV4dCkmJnUuYXBwZW5kQ2hpbGQodC5lbG0sdS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcodC50ZXh0KSkpfWZ1bmN0aW9uIHYodCl7d2hpbGUodC5jb21wb25lbnRJbnN0YW5jZSl0PXQuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBhKHQudGFnKX1mdW5jdGlvbiBtKHQsbil7Zm9yKHZhciBpPTA7aTxyLmNyZWF0ZS5sZW5ndGg7KytpKXIuY3JlYXRlW2ldKGVyLHQpO2U9dC5kYXRhLmhvb2ssYShlKSYmKGEoZS5jcmVhdGUpJiZlLmNyZWF0ZShlcix0KSxhKGUuaW5zZXJ0KSYmbi5wdXNoKHQpKX1mdW5jdGlvbiBiKHQpe3ZhciBlO2lmKGEoZT10LmZuU2NvcGVJZCkpdS5zZXRTdHlsZVNjb3BlKHQuZWxtLGUpO2Vsc2V7dmFyIG49dDt3aGlsZShuKWEoZT1uLmNvbnRleHQpJiZhKGU9ZS4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZSh0LmVsbSxlKSxuPW4ucGFyZW50fWEoZT1RZSkmJmUhPT10LmNvbnRleHQmJmUhPT10LmZuQ29udGV4dCYmYShlPWUuJG9wdGlvbnMuX3Njb3BlSWQpJiYhUWUuX3Zub2RlLmVsbS5fX3VuaURhdGFzZXQmJnUuc2V0U3R5bGVTY29wZSh0LmVsbSxlKX1mdW5jdGlvbiB5KHQsZSxuLHIsaSxhKXtmb3IoO3I8PWk7KytyKWYobltyXSxhLHQsZSwhMSxuLHIpfWZ1bmN0aW9uIF8odCl7dmFyIGUsbixpPXQuZGF0YTtpZihhKGkpKWZvcihhKGU9aS5ob29rKSYmYShlPWUuZGVzdHJveSkmJmUodCksZT0wO2U8ci5kZXN0cm95Lmxlbmd0aDsrK2Upci5kZXN0cm95W2VdKHQpO2lmKGEoZT10LmNoaWxkcmVuKSlmb3Iobj0wO248dC5jaGlsZHJlbi5sZW5ndGg7KytuKV8odC5jaGlsZHJlbltuXSl9ZnVuY3Rpb24gdyh0LGUsbil7Zm9yKDtlPD1uOysrZSl7dmFyIHI9dFtlXTthKHIpJiYoYShyLnRhZyk/KHgociksXyhyKSk6bChyLmVsbSkpfX1mdW5jdGlvbiB4KHQsZSl7aWYoYShlKXx8YSh0LmRhdGEpKXt2YXIgbixpPXIucmVtb3ZlLmxlbmd0aCsxO2ZvcihhKGUpP2UubGlzdGVuZXJzKz1pOmU9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7MD09PS0tbi5saXN0ZW5lcnMmJmwodCl9cmV0dXJuIG4ubGlzdGVuZXJzPWUsbn0odC5lbG0saSksYShuPXQuY29tcG9uZW50SW5zdGFuY2UpJiZhKG49bi5fdm5vZGUpJiZhKG4uZGF0YSkmJngobixlKSxuPTA7bjxyLnJlbW92ZS5sZW5ndGg7KytuKXIucmVtb3ZlW25dKHQsZSk7YShuPXQuZGF0YS5ob29rKSYmYShuPW4ucmVtb3ZlKT9uKHQsZSk6ZSgpfWVsc2UgbCh0LmVsbSl9ZnVuY3Rpb24gUyh0LGUsbixyKXtmb3IodmFyIGk9bjtpPHI7aSsrKXt2YXIgbz1lW2ldO2lmKGEobykmJnJyKHQsbykpcmV0dXJuIGl9fWZ1bmN0aW9uIFQodCxlLG4scyxjLGwpe2lmKHQhPT1lKXthKGUuZWxtKSYmYShzKSYmKGU9c1tjXT1idChlKSk7dmFyIGQ9ZS5lbG09dC5lbG07aWYobyh0LmlzQXN5bmNQbGFjZWhvbGRlcikpYShlLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCk/Tyh0LmVsbSxlLG4pOmUuaXNBc3luY1BsYWNlaG9sZGVyPSEwO2Vsc2UgaWYobyhlLmlzU3RhdGljKSYmbyh0LmlzU3RhdGljKSYmZS5rZXk9PT10LmtleSYmKG8oZS5pc0Nsb25lZCl8fG8oZS5pc09uY2UpKSllLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2U7ZWxzZXt2YXIgaCxwPWUuZGF0YTthKHApJiZhKGg9cC5ob29rKSYmYShoPWgucHJlcGF0Y2gpJiZoKHQsZSk7dmFyIGc9dC5jaGlsZHJlbixtPWUuY2hpbGRyZW47aWYoYShwKSYmdihlKSl7Zm9yKGg9MDtoPHIudXBkYXRlLmxlbmd0aDsrK2gpci51cGRhdGVbaF0odCxlKTthKGg9cC5ob29rKSYmYShoPWgudXBkYXRlKSYmaCh0LGUpfWkoZS50ZXh0KT9hKGcpJiZhKG0pP2chPT1tJiZmdW5jdGlvbih0LGUsbixyLG8pe3ZhciBzLGMsbCxkLGg9MCxwPTAsdj1lLmxlbmd0aC0xLGc9ZVswXSxtPWVbdl0sYj1uLmxlbmd0aC0xLF89blswXSx4PW5bYl0sQz0hbzt3aGlsZShoPD12JiZwPD1iKWkoZyk/Zz1lWysraF06aShtKT9tPWVbLS12XTpycihnLF8pPyhUKGcsXyxyLG4scCksZz1lWysraF0sXz1uWysrcF0pOnJyKG0seCk/KFQobSx4LHIsbixiKSxtPWVbLS12XSx4PW5bLS1iXSk6cnIoZyx4KT8oVChnLHgscixuLGIpLEMmJnUuaW5zZXJ0QmVmb3JlKHQsZy5lbG0sdS5uZXh0U2libGluZyhtLmVsbSkpLGc9ZVsrK2hdLHg9blstLWJdKTpycihtLF8pPyhUKG0sXyxyLG4scCksQyYmdS5pbnNlcnRCZWZvcmUodCxtLmVsbSxnLmVsbSksbT1lWy0tdl0sXz1uWysrcF0pOihpKHMpJiYocz1pcihlLGgsdikpLGM9YShfLmtleSk/c1tfLmtleV06UyhfLGUsaCx2KSxpKGMpP2YoXyxyLHQsZy5lbG0sITEsbixwKToobD1lW2NdLHJyKGwsXyk/KFQobCxfLHIsbixwKSxlW2NdPXZvaWQgMCxDJiZ1Lmluc2VydEJlZm9yZSh0LGwuZWxtLGcuZWxtKSk6ZihfLHIsdCxnLmVsbSwhMSxuLHApKSxfPW5bKytwXSk7aD52PyhkPWkobltiKzFdKT9udWxsOm5bYisxXS5lbG0seSh0LGQsbixwLGIscikpOnA+YiYmdyhlLGgsdil9KGQsZyxtLG4sbCk6YShtKT8oYSh0LnRleHQpJiZ1LnNldFRleHRDb250ZW50KGQsIiIpLHkoZCxudWxsLG0sMCxtLmxlbmd0aC0xLG4pKTphKGcpP3coZywwLGcubGVuZ3RoLTEpOmEodC50ZXh0KSYmdS5zZXRUZXh0Q29udGVudChkLCIiKTp0LnRleHQhPT1lLnRleHQmJnUuc2V0VGV4dENvbnRlbnQoZCxlLnRleHQpLGEocCkmJmEoaD1wLmhvb2spJiZhKGg9aC5wb3N0cGF0Y2gpJiZoKHQsZSl9fX1mdW5jdGlvbiBDKHQsZSxuKXtpZihvKG4pJiZhKHQucGFyZW50KSl0LnBhcmVudC5kYXRhLnBlbmRpbmdJbnNlcnQ9ZTtlbHNlIGZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKWVbcl0uZGF0YS5ob29rLmluc2VydChlW3JdKX12YXIgaz1nKCJhdHRycyxjbGFzcyxzdGF0aWNDbGFzcyxzdGF0aWNTdHlsZSxrZXkiKTtmdW5jdGlvbiBPKHQsZSxuLHIpe3ZhciBpLHM9ZS50YWcsYz1lLmRhdGEsdT1lLmNoaWxkcmVuO2lmKHI9cnx8YyYmYy5wcmUsZS5lbG09dCxvKGUuaXNDb21tZW50KSYmYShlLmFzeW5jRmFjdG9yeSkpcmV0dXJuIGUuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKGEoYykmJihhKGk9Yy5ob29rKSYmYShpPWkuaW5pdCkmJmkoZSwhMCksYShpPWUuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gZChlLG4pLCEwO2lmKGEocykpe2lmKGEodSkpaWYodC5oYXNDaGlsZE5vZGVzKCkpaWYoYShpPWMpJiZhKGk9aS5kb21Qcm9wcykmJmEoaT1pLmlubmVySFRNTCkpe2lmKGkhPT10LmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCxmPXQuZmlyc3RDaGlsZCxoPTA7aDx1Lmxlbmd0aDtoKyspe2lmKCFmfHwhTyhmLHVbaF0sbixyKSl7bD0hMTticmVha31mPWYubmV4dFNpYmxpbmd9aWYoIWx8fGYpcmV0dXJuITF9ZWxzZSBwKGUsdSxuKTtpZihhKGMpKXt2YXIgdj0hMTtmb3IodmFyIGcgaW4gYylpZighayhnKSl7dj0hMCxtKGUsbik7YnJlYWt9IXYmJmNbImNsYXNzIl0mJnJlKGNbImNsYXNzIl0pfX1lbHNlIHQuZGF0YSE9PWUudGV4dCYmKHQuZGF0YT1lLnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbih0LGUsbixzKXtpZighaShlKSl7dmFyIGM9ITEsbD1bXTtpZihpKHQpKWM9ITAsZihlLGwpO2Vsc2V7dmFyIGQ9YSh0Lm5vZGVUeXBlKTtpZighZCYmcnIodCxlKSlUKHQsZSxsLG51bGwsbnVsbCxzKTtlbHNle2lmKGQpe2lmKDE9PT10Lm5vZGVUeXBlJiZ0Lmhhc0F0dHJpYnV0ZSgiZGF0YS1zZXJ2ZXItcmVuZGVyZWQiKSYmKHQucmVtb3ZlQXR0cmlidXRlKCJkYXRhLXNlcnZlci1yZW5kZXJlZCIpLG49ITApLG8obikmJk8odCxlLGwpKXJldHVybiBDKGUsbCwhMCksdDt0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcHQodS50YWdOYW1lKHQpLnRvTG93ZXJDYXNlKCkse30sW10sdm9pZCAwLHQpfSh0KX12YXIgaD10LmVsbSxwPXUucGFyZW50Tm9kZShoKTtpZihmKGUsbCxoLl9sZWF2ZUNiP251bGw6cCx1Lm5leHRTaWJsaW5nKGgpKSxhKGUucGFyZW50KSl7dmFyIGc9ZS5wYXJlbnQsbT12KGUpO3doaWxlKGcpe2Zvcih2YXIgYj0wO2I8ci5kZXN0cm95Lmxlbmd0aDsrK2Ipci5kZXN0cm95W2JdKGcpO2lmKGcuZWxtPWUuZWxtLG0pe2Zvcih2YXIgeT0wO3k8ci5jcmVhdGUubGVuZ3RoOysreSlyLmNyZWF0ZVt5XShlcixnKTt2YXIgeD1nLmRhdGEuaG9vay5pbnNlcnQ7aWYoeC5tZXJnZWQpZm9yKHZhciBTPTE7Uzx4LmZucy5sZW5ndGg7UysrKXguZm5zW1NdKCl9ZWxzZSB0cihnKTtnPWcucGFyZW50fX1hKHApP3coW3RdLDAsMCk6YSh0LnRhZykmJl8odCl9fXJldHVybiBDKGUsbCxjKSxlLmVsbX1hKHQpJiZfKHQpfX0oe25vZGVPcHM6S24sbW9kdWxlczpiaX0pO0omJmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdGlvbmNoYW5nZSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0JiZ0LnZtb2RlbCYmT2kodCwiaW5wdXQiKX0pKTt2YXIgX2k9e2luc2VydGVkOmZ1bmN0aW9uKHQsZSxuLHIpeyJzZWxlY3QiPT09bi50YWc/KHIuZWxtJiYhci5lbG0uX3ZPcHRpb25zP3NlKG4sInBvc3RwYXRjaCIsKGZ1bmN0aW9uKCl7X2kuY29tcG9uZW50VXBkYXRlZCh0LGUsbil9KSk6d2kodCxlLG4uY29udGV4dCksdC5fdk9wdGlvbnM9W10ubWFwLmNhbGwodC5vcHRpb25zLFRpKSk6KCJ0ZXh0YXJlYSI9PT1uLnRhZ3x8Sm4odC50eXBlKSkmJih0Ll92TW9kaWZpZXJzPWUubW9kaWZpZXJzLGUubW9kaWZpZXJzLmxhenl8fCh0LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLENpKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIixraSksdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGtpKSxKJiYodC52bW9kZWw9ITApKSl9LGNvbXBvbmVudFVwZGF0ZWQ6ZnVuY3Rpb24odCxlLG4pe2lmKCJzZWxlY3QiPT09bi50YWcpe3dpKHQsZSxuLmNvbnRleHQpO3ZhciByPXQuX3ZPcHRpb25zLGk9dC5fdk9wdGlvbnM9W10ubWFwLmNhbGwodC5vcHRpb25zLFRpKTtpZihpLnNvbWUoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIUwodCxyW2VdKX0pKSl7dmFyIGE9dC5tdWx0aXBsZT9lLnZhbHVlLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiBTaSh0LGkpfSkpOmUudmFsdWUhPT1lLm9sZFZhbHVlJiZTaShlLnZhbHVlLGkpO2EmJk9pKHQsImNoYW5nZSIpfX19fTtmdW5jdGlvbiB3aSh0LGUsbil7eGkodCxlLG4pLChRfHxLKSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXt4aSh0LGUsbil9KSwwKX1mdW5jdGlvbiB4aSh0LGUsbil7dmFyIHI9ZS52YWx1ZSxpPXQubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgYSxvLHM9MCxjPXQub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihvPXQub3B0aW9uc1tzXSxpKWE9aihyLFRpKG8pKT4tMSxvLnNlbGVjdGVkIT09YSYmKG8uc2VsZWN0ZWQ9YSk7ZWxzZSBpZihMKFRpKG8pLHIpKXJldHVybiB2b2lkKHQuc2VsZWN0ZWRJbmRleCE9PXMmJih0LnNlbGVjdGVkSW5kZXg9cykpO2l8fCh0LnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBTaSh0LGUpe3JldHVybiBlLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4hTChlLHQpfSkpfWZ1bmN0aW9uIFRpKHQpe3JldHVybiJfdmFsdWUiaW4gdD90Ll92YWx1ZTp0LnZhbHVlfWZ1bmN0aW9uIENpKHQpe3QudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBraSh0KXt0LnRhcmdldC5jb21wb3NpbmcmJih0LnRhcmdldC5jb21wb3Npbmc9ITEsT2kodC50YXJnZXQsImlucHV0IikpfWZ1bmN0aW9uIE9pKHQsZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKTtuLmluaXRFdmVudChlLCEwLCEwKSx0LmRpc3BhdGNoRXZlbnQobil9ZnVuY3Rpb24gRWkodCl7cmV0dXJuIXQuY29tcG9uZW50SW5zdGFuY2V8fHQuZGF0YSYmdC5kYXRhLnRyYW5zaXRpb24/dDpFaSh0LmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSl9dmFyIElpPXtiaW5kOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lLnZhbHVlO249RWkobik7dmFyIGk9bi5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixhPXQuX192T3JpZ2luYWxEaXNwbGF5PSJub25lIj09PXQuc3R5bGUuZGlzcGxheT8iIjp0LnN0eWxlLmRpc3BsYXk7ciYmaT8obi5kYXRhLnNob3c9ITAsZmkobiwoZnVuY3Rpb24oKXt0LnN0eWxlLmRpc3BsYXk9YX0pKSk6dC5zdHlsZS5kaXNwbGF5PXI/YToibm9uZSJ9LHVwZGF0ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZS52YWx1ZSxpPWUub2xkVmFsdWU7aWYoIXIhPT0haSl7bj1FaShuKTt2YXIgYT1uLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uO2E/KG4uZGF0YS5zaG93PSEwLHI/ZmkobiwoZnVuY3Rpb24oKXt0LnN0eWxlLmRpc3BsYXk9dC5fX3ZPcmlnaW5hbERpc3BsYXl9KSk6ZGkobiwoZnVuY3Rpb24oKXt0LnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpKTp0LnN0eWxlLmRpc3BsYXk9cj90Ll9fdk9yaWdpbmFsRGlzcGxheToibm9uZSJ9fSx1bmJpbmQ6ZnVuY3Rpb24odCxlLG4scixpKXtpfHwodC5zdHlsZS5kaXNwbGF5PXQuX192T3JpZ2luYWxEaXNwbGF5KX19LFBpPXttb2RlbDpfaSxzaG93OklpfSxNaT17bmFtZTpTdHJpbmcsYXBwZWFyOkJvb2xlYW4sY3NzOkJvb2xlYW4sbW9kZTpTdHJpbmcsdHlwZTpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nLGVudGVyQWN0aXZlQ2xhc3M6U3RyaW5nLGxlYXZlQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhckNsYXNzOlN0cmluZyxhcHBlYXJBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyVG9DbGFzczpTdHJpbmcsZHVyYXRpb246W051bWJlcixTdHJpbmcsT2JqZWN0XX07ZnVuY3Rpb24gQWkodCl7dmFyIGU9dCYmdC5jb21wb25lbnRPcHRpb25zO3JldHVybiBlJiZlLkN0b3Iub3B0aW9ucy5hYnN0cmFjdD9BaShxZShlLmNoaWxkcmVuKSk6dH1mdW5jdGlvbiAkaSh0KXt2YXIgZT17fSxuPXQuJG9wdGlvbnM7Zm9yKHZhciByIGluIG4ucHJvcHNEYXRhKWVbcl09dFtyXTt2YXIgaT1uLl9wYXJlbnRMaXN0ZW5lcnM7Zm9yKHZhciBhIGluIGkpZVtTKGEpXT1pW2FdO3JldHVybiBlfWZ1bmN0aW9uIExpKHQsZSl7aWYoL1xkLWtlZXAtYWxpdmUkLy50ZXN0KGUudGFnKSlyZXR1cm4gdCgia2VlcC1hbGl2ZSIse3Byb3BzOmUuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGF9KX12YXIgamk9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGFnfHxVZSh0KX0sUmk9ZnVuY3Rpb24odCl7cmV0dXJuInNob3ciPT09dC5uYW1lfSxOaT17bmFtZToidHJhbnNpdGlvbiIscHJvcHM6TWksYWJzdHJhY3Q6ITAscmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLiRzbG90cy5kZWZhdWx0O2lmKG4mJihuPW4uZmlsdGVyKGppKSxuLmxlbmd0aCkpezA7dmFyIHI9dGhpcy5tb2RlOzA7dmFyIGk9blswXTtpZihmdW5jdGlvbih0KXt3aGlsZSh0PXQucGFyZW50KWlmKHQuZGF0YS50cmFuc2l0aW9uKXJldHVybiEwfSh0aGlzLiR2bm9kZSkpcmV0dXJuIGk7dmFyIGE9QWkoaSk7aWYoIWEpcmV0dXJuIGk7aWYodGhpcy5fbGVhdmluZylyZXR1cm4gTGkodCxpKTt2YXIgbz0iX190cmFuc2l0aW9uLSIrdGhpcy5fdWlkKyItIjthLmtleT1udWxsPT1hLmtleT9hLmlzQ29tbWVudD9vKyJjb21tZW50IjpvK2EudGFnOnMoYS5rZXkpPzA9PT1TdHJpbmcoYS5rZXkpLmluZGV4T2Yobyk/YS5rZXk6bythLmtleTphLmtleTt2YXIgYz0oYS5kYXRhfHwoYS5kYXRhPXt9KSkudHJhbnNpdGlvbj0kaSh0aGlzKSx1PXRoaXMuX3Zub2RlLGw9QWkodSk7aWYoYS5kYXRhLmRpcmVjdGl2ZXMmJmEuZGF0YS5kaXJlY3RpdmVzLnNvbWUoUmkpJiYoYS5kYXRhLnNob3c9ITApLGwmJmwuZGF0YSYmIWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUua2V5PT09dC5rZXkmJmUudGFnPT09dC50YWd9KGEsbCkmJiFVZShsKSYmKCFsLmNvbXBvbmVudEluc3RhbmNlfHwhbC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KSl7dmFyIGY9bC5kYXRhLnRyYW5zaXRpb249SSh7fSxjKTtpZigib3V0LWluIj09PXIpcmV0dXJuIHRoaXMuX2xlYXZpbmc9ITAsc2UoZiwiYWZ0ZXJMZWF2ZSIsKGZ1bmN0aW9uKCl7ZS5fbGVhdmluZz0hMSxlLiRmb3JjZVVwZGF0ZSgpfSkpLExpKHQsaSk7aWYoImluLW91dCI9PT1yKXtpZihVZShhKSlyZXR1cm4gdTt2YXIgZCxoPWZ1bmN0aW9uKCl7ZCgpfTtzZShjLCJhZnRlckVudGVyIixoKSxzZShjLCJlbnRlckNhbmNlbGxlZCIsaCksc2UoZiwiZGVsYXlMZWF2ZSIsKGZ1bmN0aW9uKHQpe2Q9dH0pKX19cmV0dXJuIGl9fX0sQmk9SSh7dGFnOlN0cmluZyxtb3ZlQ2xhc3M6U3RyaW5nfSxNaSk7ZGVsZXRlIEJpLm1vZGU7dmFyIERpPXtwcm9wczpCaSxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLl91cGRhdGU7dGhpcy5fdXBkYXRlPWZ1bmN0aW9uKG4scil7dmFyIGk9SmUodCk7dC5fX3BhdGNoX18odC5fdm5vZGUsdC5rZXB0LCExLCEwKSx0Ll92bm9kZT10LmtlcHQsaSgpLGUuY2FsbCh0LG4scil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMudGFnfHx0aGlzLiR2bm9kZS5kYXRhLnRhZ3x8InNwYW4iLG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRoaXMucHJldkNoaWxkcmVuPXRoaXMuY2hpbGRyZW4saT10aGlzLiRzbG90cy5kZWZhdWx0fHxbXSxhPXRoaXMuY2hpbGRyZW49W10sbz0kaSh0aGlzKSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBjPWlbc107aWYoYy50YWcpaWYobnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoIl9fdmxpc3QiKSlhLnB1c2goYyksbltjLmtleV09YywoYy5kYXRhfHwoYy5kYXRhPXt9KSkudHJhbnNpdGlvbj1vO2Vsc2U7fWlmKHIpe2Zvcih2YXIgdT1bXSxsPVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIGQ9cltmXTtkLmRhdGEudHJhbnNpdGlvbj1vLGQuZGF0YS5wb3M9ZC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbltkLmtleV0/dS5wdXNoKGQpOmwucHVzaChkKX10aGlzLmtlcHQ9dChlLG51bGwsdSksdGhpcy5yZW1vdmVkPWx9cmV0dXJuIHQoZSxudWxsLGEpfSx1cGRhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcmV2Q2hpbGRyZW4sZT10aGlzLm1vdmVDbGFzc3x8KHRoaXMubmFtZXx8InYiKSsiLW1vdmUiO3QubGVuZ3RoJiZ0aGlzLmhhc01vdmUodFswXS5lbG0sZSkmJih0LmZvckVhY2goRmkpLHQuZm9yRWFjaChXaSksdC5mb3JFYWNoKEhpKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsdC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZih0LmRhdGEubW92ZWQpe3ZhciBuPXQuZWxtLHI9bi5zdHlsZTtpaShuLGUpLHIudHJhbnNmb3JtPXIuV2Via2l0VHJhbnNmb3JtPXIudHJhbnNpdGlvbkR1cmF0aW9uPSIiLG4uYWRkRXZlbnRMaXN0ZW5lcihacixuLl9tb3ZlQ2I9ZnVuY3Rpb24gdChyKXtyJiZyLnRhcmdldCE9PW58fHImJiEvdHJhbnNmb3JtJC8udGVzdChyLnByb3BlcnR5TmFtZSl8fChuLnJlbW92ZUV2ZW50TGlzdGVuZXIoWnIsdCksbi5fbW92ZUNiPW51bGwsYWkobixlKSl9KX19KSkpfSxtZXRob2RzOntoYXNNb3ZlOmZ1bmN0aW9uKHQsZSl7aWYoIUpyKXJldHVybiExO2lmKHRoaXMuX2hhc01vdmUpcmV0dXJuIHRoaXMuX2hhc01vdmU7dmFyIG49dC5jbG9uZU5vZGUoKTt0Ll90cmFuc2l0aW9uQ2xhc3NlcyYmdC5fdHJhbnNpdGlvbkNsYXNzZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7WHIobix0KX0pKSxZcihuLGUpLG4uc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy4kZWwuYXBwZW5kQ2hpbGQobik7dmFyIHI9Y2kobik7cmV0dXJuIHRoaXMuJGVsLnJlbW92ZUNoaWxkKG4pLHRoaXMuX2hhc01vdmU9ci5oYXNUcmFuc2Zvcm19fX07ZnVuY3Rpb24gRmkodCl7dC5lbG0uX21vdmVDYiYmdC5lbG0uX21vdmVDYigpLHQuZWxtLl9lbnRlckNiJiZ0LmVsbS5fZW50ZXJDYigpfWZ1bmN0aW9uIFdpKHQpe3QuZGF0YS5uZXdQb3M9dC5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gSGkodCl7dmFyIGU9dC5kYXRhLnBvcyxuPXQuZGF0YS5uZXdQb3Mscj1lLmxlZnQtbi5sZWZ0LGk9ZS50b3Atbi50b3A7aWYocnx8aSl7dC5kYXRhLm1vdmVkPSEwO3ZhciBhPXQuZWxtLnN0eWxlO2EudHJhbnNmb3JtPWEuV2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUoIityKyJweCwiK2krInB4KSIsYS50cmFuc2l0aW9uRHVyYXRpb249IjBzIn19dmFyIFZpPXtUcmFuc2l0aW9uOk5pLFRyYW5zaXRpb25Hcm91cDpEaX07VG4uY29uZmlnLm11c3RVc2VQcm9wPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4idmFsdWUiPT09biYmTG4odCkmJiJidXR0b24iIT09ZXx8InNlbGVjdGVkIj09PW4mJiJvcHRpb24iPT09dHx8ImNoZWNrZWQiPT09biYmImlucHV0Ij09PXR8fCJtdXRlZCI9PT1uJiYidmlkZW8iPT09dH0sVG4uY29uZmlnLmlzUmVzZXJ2ZWRUYWc9R24sVG4uY29uZmlnLmlzUmVzZXJ2ZWRBdHRyPSRuLFRuLmNvbmZpZy5nZXRUYWdOYW1lc3BhY2U9ZnVuY3Rpb24odCl7cmV0dXJuIFhuKHQpPyJzdmciOiJtYXRoIj09PXQ/Im1hdGgiOnZvaWQgMH0sVG4uY29uZmlnLmlzVW5rbm93bkVsZW1lbnQ9ZnVuY3Rpb24odCl7aWYoIXopcmV0dXJuITA7aWYoR24odCkpcmV0dXJuITE7aWYodD10LnRvTG93ZXJDYXNlKCksbnVsbCE9UW5bdF0pcmV0dXJuIFFuW3RdO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodCk7cmV0dXJuIHQuaW5kZXhPZigiLSIpPi0xP1FuW3RdPWUuY29uc3RydWN0b3I9PT13aW5kb3cuSFRNTFVua25vd25FbGVtZW50fHxlLmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxFbGVtZW50OlFuW3RdPS9IVE1MVW5rbm93bkVsZW1lbnQvLnRlc3QoZS50b1N0cmluZygpKX0sSShUbi5vcHRpb25zLmRpcmVjdGl2ZXMsUGkpLEkoVG4ub3B0aW9ucy5jb21wb25lbnRzLFZpKSxUbi5wcm90b3R5cGUuX19wYXRjaF9fPXo/eWk6TSxUbi5wcm90b3R5cGUuX19jYWxsX2hvb2s9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzO2R0KCk7dmFyIHIsaT1uLiRvcHRpb25zW3RdLGE9dCsiIGhvb2siO2lmKGkpZm9yKHZhciBvPTAscz1pLmxlbmd0aDtvPHM7bysrKXI9VnQoaVtvXSxuLGU/W2VdOm51bGwsbixhKTtyZXR1cm4gbi5faGFzSG9va0V2ZW50JiZuLiRlbWl0KCJob29rOiIrdCxlKSxodCgpLHJ9LFRuLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10JiZ6P2Z1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT09dHlwZW9mIHQpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCk7cmV0dXJuIGV8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfXJldHVybiB0fSh0KTp2b2lkIDAsZnVuY3Rpb24odCxlLG4pe3ZhciByO3JldHVybiB0LiRlbD1lLHQuJG9wdGlvbnMucmVuZGVyfHwodC4kb3B0aW9ucy5yZW5kZXI9Z3QpLHRuKHQsImJlZm9yZU1vdW50Iikscj1mdW5jdGlvbigpe3QuX3VwZGF0ZSh0Ll9yZW5kZXIoKSxuKX0sbmV3IGhuKHQscixNLHtiZWZvcmU6ZnVuY3Rpb24oKXt0Ll9pc01vdW50ZWQmJiF0Ll9pc0Rlc3Ryb3llZCYmdG4odCwiYmVmb3JlVXBkYXRlIil9fSwhMCksbj0hMSxudWxsPT10LiR2bm9kZSYmKHRuKHQsIm9uU2VydmljZUNyZWF0ZWQiKSx0bih0LCJvblNlcnZpY2VBdHRhY2hlZCIpLHQuX2lzTW91bnRlZD0hMCx0bih0LCJtb3VudGVkIikpLHR9KHRoaXMsdCxlKX0seiYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtELmRldnRvb2xzJiZhdCYmYXQuZW1pdCgiaW5pdCIsVG4pfSksMCksZVsiZGVmYXVsdCJdPVRufS5jYWxsKHRoaXMsbigiYzhiYSIpLG4oIjVhNTIiKVsiZGVmYXVsdCJdKX0sZTE2MzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMWEyZCIpLGk9bigiMTYyNiIpLGE9bigiN2IwYiIpLG89bigiZjc3MiIpLHM9bigiZTE3NyIpLGM9bygiSUVfUFJPVE8iKSx1PU9iamVjdCxsPXUucHJvdG90eXBlO3QuZXhwb3J0cz1zP3UuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCl7dmFyIGU9YSh0KTtpZihyKGUsYykpcmV0dXJuIGVbY107dmFyIG49ZS5jb25zdHJ1Y3RvcjtyZXR1cm4gaShuKSYmZSBpbnN0YW5jZW9mIG4/bi5wcm90b3R5cGU6ZSBpbnN0YW5jZW9mIHU/bDpudWxsfX0sZTE3NzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiZDAzOSIpO3QuZXhwb3J0cz0hcigoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiB0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1udWxsLE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgdCkhPT10LnByb3RvdHlwZX0pKX0sZTI1ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiYzIwZCIpO3Ioe2dsb2JhbDohMCxmb3JjZWQ6cGFyc2VJbnQhPWl9LHtwYXJzZUludDppfSl9LGUyNjA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJmYzZhIiksaT1uKCI0NGQyIiksYT1uKCIzZjhjIiksbz1uKCI2OWYzIikscz1uKCI5YmYyIikuZixjPW4oImM2ZDIiKSx1PW4oIjQ3NTQiKSxsPW4oImM0MzAiKSxmPW4oIjgzYWIiKSxkPW8uc2V0LGg9by5nZXR0ZXJGb3IoIkFycmF5IEl0ZXJhdG9yIik7dC5leHBvcnRzPWMoQXJyYXksIkFycmF5IiwoZnVuY3Rpb24odCxlKXtkKHRoaXMse3R5cGU6IkFycmF5IEl0ZXJhdG9yIix0YXJnZXQ6cih0KSxpbmRleDowLGtpbmQ6ZX0pfSksKGZ1bmN0aW9uKCl7dmFyIHQ9aCh0aGlzKSxlPXQudGFyZ2V0LG49dC5raW5kLHI9dC5pbmRleCsrO3JldHVybiFlfHxyPj1lLmxlbmd0aD8odC50YXJnZXQ9dm9pZCAwLHUodm9pZCAwLCEwKSk6dSgia2V5cyI9PW4/cjoidmFsdWVzIj09bj9lW3JdOltyLGVbcl1dLCExKX0pLCJ2YWx1ZXMiKTt2YXIgcD1hLkFyZ3VtZW50cz1hLkFycmF5O2lmKGkoImtleXMiKSxpKCJ2YWx1ZXMiKSxpKCJlbnRyaWVzIiksIWwmJmYmJiJ2YWx1ZXMiIT09cC5uYW1lKXRyeXtzKHAsIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKHYpe319LGUzMzA6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjQwZDUiKSxpPUZ1bmN0aW9uLnByb3RvdHlwZSxhPWkuY2FsbCxvPXImJmkuYmluZC5iaW5kKGEsYSk7dC5leHBvcnRzPXI/bzpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sZTMzMDE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiMTEwOCIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZTM5MTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNTc3ZSIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10P2FyZ3VtZW50cy5sZW5ndGg8Mj8iIjplOnIodCl9fSxlNDM5OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIyM2U3IiksaT1uKCJkMDM5IiksYT1uKCJmYzZhIiksbz1uKCIwNmNmIikuZixzPW4oIjgzYWIiKSxjPWkoKGZ1bmN0aW9uKCl7bygxKX0pKSx1PSFzfHxjO3Ioe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDp1LHNoYW06IXN9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbyhhKHQpLGUpfX0pfSxlNDY3OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLiRlbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIG8oYSwiJGVtaXQiLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxlLiRvZmY9ZnVuY3Rpb24oKXtyZXR1cm4gbyhhLCIkb2ZmIixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKX0sZS4kb249ZnVuY3Rpb24oKXtyZXR1cm4gbyhhLCIkb24iLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxlLiRvbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG8oYSwiJG9uY2UiLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfSxuKCJmYjZhIik7dmFyIGk9cihuKCJlMTQzIikpLGE9bmV3IGkuZGVmYXVsdDtmdW5jdGlvbiBvKHQsZSxuKXtyZXR1cm4gdFtlXS5hcHBseSh0LG4pfX0sZTUwZDpmdW5jdGlvbih0LGUsbil7bigiODE3MiIpLG4oImVmZWMiKSxuKCJhNGQzIiksbigiZTAxYSIpLG4oImQzYjciKSxuKCJkOWUyIiksbigiZDQwMSIpLG4oImE5ZTMiKTt2YXIgcj1uKCI3MDM3IilbImRlZmF1bHQiXTt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZigib2JqZWN0IiE9PXIodCl8fG51bGw9PT10KXJldHVybiB0O3ZhciBuPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1uKXt2YXIgaT1uLmNhbGwodCxlfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09cihpKSlyZXR1cm4gaTt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PWU/U3RyaW5nOk51bWJlcikodCl9LHQuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLHQuZXhwb3J0c1siZGVmYXVsdCJdPXQuZXhwb3J0c30sZTUyYTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCJiZmU2IiksaT1uKCJlMDRjIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSxlNTM4OmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJiNjIyIik7ZS5mPXJ9LGU1NzQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVmYXVsdD12b2lkIDAsbigiOTlhZiIpO3ZhciBpPXIobigiODc1MSIpKSxhPW4oIjYzMWEiKSxvPXtuYW1lOiJQYWdlQm9keSIsbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PWEudGFiQmFyLmhlaWdodHx8IjUwcHgiLGU9Ii51bmktYXBwLS1zaG93dGFiYmFyIHVuaS1wYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAiLmNvbmNhdCh0LCIpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICIpLmNvbmNhdCh0LCIgLSBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gIikuY29uY2F0KHQsIiAtIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgICAgICAgICAgICB9Iik7ZSs9IlxuIixlKz0nLnVuaS1hcHAtLXNob3d0YWJiYXIgdW5pLXBhZ2Utd3JhcHBlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgY29udGVudDogIiI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnLmNvbmNhdCh0LCI7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoIikuY29uY2F0KHQsIiArIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygiKS5jb25jYXQodCwiICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICAgICAgICB9IiksZSs9IlxuIixlKz0nLnVuaS1hcHAtLXNob3d0YWJiYXIgdW5pLXBhZ2UtaGVhZFt1bmktcGFnZS1oZWFkLXR5cGU9ImRlZmF1bHQiXSB+IHVuaS1wYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0NHB4IC0gJy5jb25jYXQodCwiKTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDRweCAtIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApIC0gIikuY29uY2F0KHQsIiAtIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gNDRweCAtIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSAtICIpLmNvbmNhdCh0LCIgLSBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICAgICAgICAgIH0iKSwoMCxpLmRlZmF1bHQpKGUpfX07ZS5kZWZhdWx0PW99LGU1OGM6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyYmE0IiksaT1uKCJmYzZhIiksYT1uKCI1OTI2Iiksbz1uKCIwN2ZhIikscz1uKCJhNjQwIiksYz1NYXRoLm1pbix1PVtdLmxhc3RJbmRleE9mLGw9ISF1JiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwLGY9cygibGFzdEluZGV4T2YiKSxkPWx8fCFmO3QuZXhwb3J0cz1kP2Z1bmN0aW9uKHQpe2lmKGwpcmV0dXJuIHIodSx0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGU9aSh0aGlzKSxuPW8oZSkscz1uLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKHM9YyhzLGEoYXJndW1lbnRzWzFdKSkpLHM8MCYmKHM9bitzKTtzPj0wO3MtLSlpZihzIGluIGUmJmVbc109PT10KXJldHVybiBzfHwwO3JldHVybi0xfTp1fSxlNWNiOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZDA2NiIpLGk9bigiMWEyZCIpLGE9bigiOTExMiIpLG89bigiM2E5YiIpLHM9bigiZDJiYiIpLGM9bigiZTg5MyIpLHU9bigiYWViMCIpLGw9bigiNzE1NiIpLGY9bigiZTM5MSIpLGQ9bigiYWIzNiIpLGg9bigiMGQyNiIpLHA9bigiYjk4MCIpLHY9bigiODNhYiIpLGc9bigiYzQzMCIpO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixtKXt2YXIgYj1tPzI6MSx5PXQuc3BsaXQoIi4iKSxfPXlbeS5sZW5ndGgtMV0sdz1yLmFwcGx5KG51bGwseSk7aWYodyl7dmFyIHg9dy5wcm90b3R5cGU7aWYoIWcmJmkoeCwiY2F1c2UiKSYmZGVsZXRlIHguY2F1c2UsIW4pcmV0dXJuIHc7dmFyIFM9cigiRXJyb3IiKSxUPWUoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ZihtP2U6dCx2b2lkIDApLHI9bT9uZXcgdyh0KTpuZXcgdztyZXR1cm4gdm9pZCAwIT09biYmYShyLCJtZXNzYWdlIixuKSxwJiZhKHIsInN0YWNrIixoKHIuc3RhY2ssMikpLHRoaXMmJm8oeCx0aGlzKSYmbChyLHRoaXMsVCksYXJndW1lbnRzLmxlbmd0aD5iJiZkKHIsYXJndW1lbnRzW2JdKSxyfSkpO2lmKFQucHJvdG90eXBlPXgsIkVycm9yIiE9PV8/cz9zKFQsUyk6YyhULFMse25hbWU6ITB9KTp2JiYic3RhY2tUcmFjZUxpbWl0ImluIHcmJih1KFQsdywic3RhY2tUcmFjZUxpbWl0IiksdShULHcsInByZXBhcmVTdGFja1RyYWNlIikpLGMoVCx3KSwhZyl0cnl7eC5uYW1lIT09XyYmYSh4LCJuYW1lIixfKSx4LmNvbnN0cnVjdG9yPVR9Y2F0Y2goQyl7fXJldHVybiBUfX19LGU2Njc6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTp0KCl9fWNhdGNoKGUpe3JldHVybntlcnJvcjohMCx2YWx1ZTplfX19fSxlNmIwOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciByPW4oIjFhMzkiKSxpPW4oImQ2MWUiKSxhPW4oIjQ0MDMiKSxvPXtyZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXI6ci5yZXF1ZXN0Q29tcG9uZW50T2JzZXJ2ZXIsZGVzdHJveUNvbXBvbmVudE9ic2VydmVyOnIuZGVzdHJveUNvbXBvbmVudE9ic2VydmVyLHJlcXVlc3RNZWRpYVF1ZXJ5T2JzZXJ2ZXI6aS5yZXF1ZXN0TWVkaWFRdWVyeU9ic2VydmVyLGRlc3Ryb3lNZWRpYVF1ZXJ5T2JzZXJ2ZXI6aS5kZXN0cm95TWVkaWFRdWVyeU9ic2VydmVyLHJlcXVlc3RDb21wb25lbnRJbmZvOmEucmVxdWVzdENvbXBvbmVudEluZm99O2UuZGVmYXVsdD1vfSxlNmNmOmZ1bmN0aW9uKHQsZSxuKXtuKCI1ZTdlIiksbigiMTRlNSIpLG4oImNjOTgiKSxuKCIzNTI5IiksbigiZjIyYiIpLG4oIjcxNDkiKX0sZTc0MjpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCIwYTcxIiksaT1uLm4ocik7Zm9yKHZhciBhIGluIHIpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiByW3RdfSkpfShhKTtlWyJkZWZhdWx0Il09aS5hfSxlODkzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIxYTJkIiksaT1uKCI1NmVmIiksYT1uKCIwNmNmIiksbz1uKCI5YmYyIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIHM9aShlKSxjPW8uZix1PWEuZixsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciBmPXNbbF07cih0LGYpfHxuJiZyKG4sZil8fGModCxmLHUoZSxmKSl9fX0sZThiNTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiYzZiNiIpO3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iQXJyYXkiPT1yKHQpfX0sZThjMzpmdW5jdGlvbih0KXt0LmV4cG9ydHM9SlNPTi5wYXJzZSgneyJ1bmkuYXBwLnF1aXQiOiJBcHB1eWV6IMOgIG5vdXZlYXUgcG91ciBxdWl0dGVyIGxcJ2FwcGxpY2F0aW9uIiwidW5pLmFzeW5jLmVycm9yIjoiTGEgY29ubmV4aW9uIGEgZXhwaXLDqSwgY2xpcXVleiBzdXIgbFwnw6ljcmFuIHBvdXIgcsOpZXNzYXllci4iLCJ1bmkuc2hvd0FjdGlvblNoZWV0LmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkuc2hvd1RvYXN0LnVucGFpcmVkIjoiVmV1aWxsZXogbm90ZXIgcXVlIHNob3dUb2FzdCBkb2l0IMOqdHJlIGFzc29jacOpIMOgIGhpZGVUb2FzdCIsInVuaS5zaG93TG9hZGluZy51bnBhaXJlZCI6IlZldWlsbGV6IG5vdGVyIHF1ZSBzaG93TG9hZGluZyBkb2l0IMOqdHJlIGFzc29jacOpIMOgIGhpZGVMb2FkaW5nIiwidW5pLnNob3dNb2RhbC5jYW5jZWwiOiJBbm51bGVyIiwidW5pLnNob3dNb2RhbC5jb25maXJtIjoiT0siLCJ1bmkuY2hvb3NlSW1hZ2UuY2FuY2VsIjoiQW5udWxlciIsInVuaS5jaG9vc2VJbWFnZS5zb3VyY2VUeXBlLmFsYnVtIjoiQWxidW0iLCJ1bmkuY2hvb3NlSW1hZ2Uuc291cmNlVHlwZS5jYW1lcmEiOiJDYW3DqXJhIiwidW5pLmNob29zZVZpZGVvLmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkuY2hvb3NlVmlkZW8uc291cmNlVHlwZS5hbGJ1bSI6IkFsYnVtIiwidW5pLmNob29zZVZpZGVvLnNvdXJjZVR5cGUuY2FtZXJhIjoiQ2Ftw6lyYSIsInVuaS5jaG9vc2VGaWxlLm5vdFVzZXJBY3RpdmF0aW9uIjoiTGEgYm/DrnRlIGRlIGRpYWxvZ3VlIGR1IHPDqWxlY3RldXIgZGUgZmljaGllciBuZSBwZXV0IMOqdHJlIGFmZmljaMOpZSBxdVwnYXZlYyB1bmUgYWN0aXZhdGlvbiBwYXIgbFwndXRpbGlzYXRldXIiLCJ1bmkucHJldmlld0ltYWdlLmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkucHJldmlld0ltYWdlLmJ1dHRvbi5zYXZlIjoiR3VhcmRhciBpbWFnZW4iLCJ1bmkucHJldmlld0ltYWdlLnNhdmUuc3VjY2VzcyI6IkVucmVnaXN0csOpIGF2ZWMgc3VjY8OocyIsInVuaS5wcmV2aWV3SW1hZ2Uuc2F2ZS5mYWlsIjoiw4ljaGVjIGRlIGxhIHNhdXZlZ2FyZGUiLCJ1bmkuc2V0Q2xpcGJvYXJkRGF0YS5zdWNjZXNzIjoiQ29udGVudSBjb3Bpw6kiLCJ1bmkuc2NhbkNvZGUudGl0bGUiOiJDb2RlIGTigJlhbmFseXNlIiwidW5pLnNjYW5Db2RlLmFsYnVtIjoiQWxidW0iLCJ1bmkuc2NhbkNvZGUuZmFpbCI6IkZhbGxvIGRlIHJlY29ub2NpbWllbnRvIiwidW5pLnNjYW5Db2RlLmZsYXNoLm9uIjoiQXBwdXlleiBwb3VyIGFjdGl2ZXIgbFwnw6ljbGFpcmFnZSIsInVuaS5zY2FuQ29kZS5mbGFzaC5vZmYiOiJBcHB1eWV6IHBvdXIgZMOpc2FjdGl2ZXIgbFwnw6ljbGFpcmFnZSIsInVuaS5zdGFydFNvdGVyQXV0aGVudGljYXRpb24uYXV0aENvbnRlbnQiOiJSZWNvbm5haXNzYW5jZSBkZSBsXCdlbXByZWludGUgZGlnaXRhbGUiLCJ1bmkuc3RhcnRTb3RlckF1dGhlbnRpY2F0aW9uLndhaXRpbmdDb250ZW50IjoiTcOpY29ubmFpc3NhYmxlIiwidW5pLnBpY2tlci5kb25lIjoiT0siLCJ1bmkucGlja2VyLmNhbmNlbCI6IkFubnVsZXIiLCJ1bmkudmlkZW8uZGFubXUiOiJEYW5tdSIsInVuaS52aWRlby52b2x1bWUiOiJMZSBWb2x1bWUiLCJ1bmkuYnV0dG9uLmZlZWRiYWNrLnRpdGxlIjoicmV0b3VyIGRcJ2luZm9ybWF0aW9uIiwidW5pLmJ1dHRvbi5mZWVkYmFjay5zZW5kIjoiZW52b3llciIsInVuaS5jaG9vc2VMb2NhdGlvbi5zZWFyY2giOiJUcm91dmUiLCJ1bmkuY2hvb3NlTG9jYXRpb24uY2FuY2VsIjoiQW5udWxlciJ9Jyl9LGU5MWY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlYmI1IiksaT1uKCI0ZDY0IikuaW5kZXhPZixhPXIuYVR5cGVkQXJyYXksbz1yLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7bygiaW5kZXhPZiIsKGZ1bmN0aW9uKHQpe3JldHVybiBpKGEodGhpcyksdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSl9LGU5NWE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImI2MjIiKSxpPW4oIjNmOGMiKSxhPXIoIml0ZXJhdG9yIiksbz1BcnJheS5wcm90b3R5cGU7dC5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10JiYoaS5BcnJheT09PXR8fG9bYV09PT10KX19LGU5NzE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIG4oInVuaS1hcHAiLHtjbGFzczp7InVuaS1hcHAtLXNob3d0YWJiYXIiOnQuc2hvd1RhYkJhciwidW5pLWFwcC0tbWF4d2lkdGgiOnQuc2hvd01heFdpZHRofX0sW24oImxheW91dCIse3JlZjoibGF5b3V0IixhdHRyczp7InJvdXRlci1rZXkiOnQua2V5LCJrZWVwLWFsaXZlLWluY2x1ZGUiOnQua2VlcEFsaXZlSW5jbHVkZX0sb246e21heFdpZHRoOnQub25NYXhXaWR0aCxsYXlvdXQ6dC5vbkxheW91dH19KSx0Lmhhc1RhYkJhcj9uKCJ0YWItYmFyIix0Ll9iKHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dUYWJCYXIsZXhwcmVzc2lvbjoic2hvd1RhYkJhciJ9XSxyZWY6InRhYkJhciJ9LCJ0YWItYmFyIix0LnRhYkJhck9wdGlvbnMsITEpKTp0Ll9lKCksdC4kb3B0aW9ucy5jb21wb25lbnRzLlRvYXN0P24oInRvYXN0Iix0Ll9iKHt9LCJ0b2FzdCIsdC5zaG93VG9hc3QsITEpKTp0Ll9lKCksdC4kb3B0aW9ucy5jb21wb25lbnRzLkFjdGlvblNoZWV0P24oImFjdGlvbi1zaGVldCIsdC5fYih7b246e2Nsb3NlOnQuX29uQWN0aW9uU2hlZXRDbG9zZX19LCJhY3Rpb24tc2hlZXQiLHQuc2hvd0FjdGlvblNoZWV0LCExKSk6dC5fZSgpLHQuJG9wdGlvbnMuY29tcG9uZW50cy5Nb2RhbD9uKCJtb2RhbCIsdC5fYih7b246e2Nsb3NlOnQuX29uTW9kYWxDbG9zZX19LCJtb2RhbCIsdC5zaG93TW9kYWwsITEpKTp0Ll9lKCksdC4kb3B0aW9ucy5jb21wb25lbnRzLlByZXZpZXdJbWFnZT9uKCJwcmV2aWV3LWltYWdlIix0Ll9iKHtvbjp7Y2xvc2U6dC5fb25QcmV2aWV3Q2xvc2V9fSwicHJldmlldy1pbWFnZSIsdC5wcmV2aWV3SW1hZ2UsITEpKTp0Ll9lKCksdC5zeXNDb21wb25lbnRzJiZ0LnN5c0NvbXBvbmVudHMubGVuZ3RoP3QuX2wodC5zeXNDb21wb25lbnRzLChmdW5jdGlvbih0LGUpe3JldHVybiBuKHQse2tleTplLHRhZzoiY29tcG9uZW50In0pfSkpOnQuX2UoKV0sMil9LGk9W119LGU5YzQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjIzZTciKSxpPW4oImQwNjYiKSxhPW4oIjJiYTQiKSxvPW4oImM2NWIiKSxzPW4oImUzMzAiKSxjPW4oImQwMzkiKSx1PW4oImU4YjUiKSxsPW4oIjE2MjYiKSxmPW4oIjg2MWQiKSxkPW4oImQ5YjUiKSxoPW4oImYzNmEiKSxwPW4oIjA0ZjgiKSx2PWkoIkpTT04iLCJzdHJpbmdpZnkiKSxnPXMoLy4vLmV4ZWMpLG09cygiIi5jaGFyQXQpLGI9cygiIi5jaGFyQ29kZUF0KSx5PXMoIiIucmVwbGFjZSksXz1zKDEuLnRvU3RyaW5nKSx3PS9bXHVEODAwLVx1REZGRl0vZyx4PS9eW1x1RDgwMC1cdURCRkZdJC8sUz0vXltcdURDMDAtXHVERkZGXSQvLFQ9IXB8fGMoKGZ1bmN0aW9uKCl7dmFyIHQ9aSgiU3ltYm9sIikoKTtyZXR1cm4iW251bGxdIiE9dihbdF0pfHwie30iIT12KHthOnR9KXx8Int9IiE9dihPYmplY3QodCkpfSkpLEM9YygoZnVuY3Rpb24oKXtyZXR1cm4nIlxcdWRmMDZcXHVkODM0IichPT12KCJcdWRmMDZcdWQ4MzQiKXx8JyJcXHVkZWFkIichPT12KCJcdWRlYWQiKX0pKSxrPWZ1bmN0aW9uKHQsZSl7dmFyIG49aChhcmd1bWVudHMpLHI9ZTtpZigoZihlKXx8dm9pZCAwIT09dCkmJiFkKHQpKXJldHVybiB1KGUpfHwoZT1mdW5jdGlvbih0LGUpe2lmKGwocikmJihlPW8ocix0aGlzLHQsZSkpLCFkKGUpKXJldHVybiBlfSksblsxXT1lLGEodixudWxsLG4pfSxPPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1tKG4sZS0xKSxpPW0obixlKzEpO3JldHVybiBnKHgsdCkmJiFnKFMsaSl8fGcoUyx0KSYmIWcoeCxyKT8iXFx1IitfKGIodCwwKSwxNik6dH07diYmcih7dGFyZ2V0OiJKU09OIixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOlR8fEN9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWgoYXJndW1lbnRzKSxpPWEoVD9rOnYsbnVsbCxyKTtyZXR1cm4gQyYmInN0cmluZyI9PXR5cGVvZiBpP3koaSx3LE8pOml9fSl9LGVhMjc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiZWFiNCIpLGk9bigiZDQxMiIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0oYSk7dmFyIG89bigiZjBjNSIpLHM9T2JqZWN0KG9bImEiXSkoaVsiZGVmYXVsdCJdLHJbImIiXSxyWyJjIl0sITEsbnVsbCxudWxsLG51bGwsITEsclsiYSJdLHZvaWQgMCk7ZVsiZGVmYXVsdCJdPXMuZXhwb3J0c30sZWFiNDpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQsZT10aGlzLl9zZWxmLl9jfHx0O3JldHVybiBlKCJ1bmktY2FudmFzIix0aGlzLl9nKHthdHRyczp7ImNhbnZhcy1pZCI6dGhpcy5jYW52YXNJZCwiZGlzYWJsZS1zY3JvbGwiOnRoaXMuZGlzYWJsZVNjcm9sbH19LHRoaXMuX2xpc3RlbmVycyksW2UoImNhbnZhcyIse3JlZjoiY2FudmFzIixhdHRyczp7d2lkdGg6IjMwMCIsaGVpZ2h0OiIxNTAifX0pLGUoImRpdiIse3N0YXRpY1N0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoiMCIsbGVmdDoiMCIsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsb3ZlcmZsb3c6ImhpZGRlbiJ9fSxbdGhpcy5fdCgiZGVmYXVsdCIpXSwyKSxlKCJ2LXVuaS1yZXNpemUtc2Vuc29yIix7cmVmOiJzZW5zb3IiLG9uOntyZXNpemU6dGhpcy5fcmVzaXplfX0pXSwxKX0saT1bXX0sZWFjNTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiODYxZCIpLGk9TWF0aC5mbG9vcjt0LmV4cG9ydHM9TnVtYmVyLmlzSW50ZWdlcnx8ZnVuY3Rpb24odCl7cmV0dXJuIXIodCkmJmlzRmluaXRlKHQpJiZpKHQpPT09dH19LGViYjU6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpLGEsbz1uKCI0YjExIikscz1uKCI4M2FiIiksYz1uKCJkYTg0IiksdT1uKCIxNjI2IiksbD1uKCI4NjFkIiksZj1uKCIxYTJkIiksZD1uKCJmNWRmIiksaD1uKCIwZDUxIikscD1uKCI5MTEyIiksdj1uKCJjYjJkIiksZz1uKCI5YmYyIikuZixtPW4oIjNhOWIiKSxiPW4oImUxNjMiKSx5PW4oImQyYmIiKSxfPW4oImI2MjIiKSx3PW4oIjkwZTMiKSx4PW4oIjY5ZjMiKSxTPXguZW5mb3JjZSxUPXguZ2V0LEM9Yy5JbnQ4QXJyYXksaz1DJiZDLnByb3RvdHlwZSxPPWMuVWludDhDbGFtcGVkQXJyYXksRT1PJiZPLnByb3RvdHlwZSxJPUMmJmIoQyksUD1rJiZiKGspLE09T2JqZWN0LnByb3RvdHlwZSxBPWMuVHlwZUVycm9yLCQ9XygidG9TdHJpbmdUYWciKSxMPXcoIlRZUEVEX0FSUkFZX1RBRyIpLGo9byYmISF5JiYiT3BlcmEiIT09ZChjLm9wZXJhKSxSPSExLE49e0ludDhBcnJheToxLFVpbnQ4QXJyYXk6MSxVaW50OENsYW1wZWRBcnJheToxLEludDE2QXJyYXk6MixVaW50MTZBcnJheToyLEludDMyQXJyYXk6NCxVaW50MzJBcnJheTo0LEZsb2F0MzJBcnJheTo0LEZsb2F0NjRBcnJheTo4fSxCPXtCaWdJbnQ2NEFycmF5OjgsQmlnVWludDY0QXJyYXk6OH0sRD1mdW5jdGlvbih0KXt2YXIgZT1iKHQpO2lmKGwoZSkpe3ZhciBuPVQoZSk7cmV0dXJuIG4mJmYobiwiVHlwZWRBcnJheUNvbnN0cnVjdG9yIik/blsiVHlwZWRBcnJheUNvbnN0cnVjdG9yIl06RChlKX19LEY9ZnVuY3Rpb24odCl7aWYoIWwodCkpcmV0dXJuITE7dmFyIGU9ZCh0KTtyZXR1cm4gZihOLGUpfHxmKEIsZSl9O2ZvcihyIGluIE4paT1jW3JdLGE9aSYmaS5wcm90b3R5cGUsYT9TKGEpWyJUeXBlZEFycmF5Q29uc3RydWN0b3IiXT1pOmo9ITE7Zm9yKHIgaW4gQilpPWNbcl0sYT1pJiZpLnByb3RvdHlwZSxhJiYoUyhhKVsiVHlwZWRBcnJheUNvbnN0cnVjdG9yIl09aSk7aWYoKCFqfHwhdShJKXx8ST09PUZ1bmN0aW9uLnByb3RvdHlwZSkmJihJPWZ1bmN0aW9uKCl7dGhyb3cgQSgiSW5jb3JyZWN0IGludm9jYXRpb24iKX0saikpZm9yKHIgaW4gTiljW3JdJiZ5KGNbcl0sSSk7aWYoKCFqfHwhUHx8UD09PU0pJiYoUD1JLnByb3RvdHlwZSxqKSlmb3IociBpbiBOKWNbcl0mJnkoY1tyXS5wcm90b3R5cGUsUCk7aWYoaiYmYihFKSE9PVAmJnkoRSxQKSxzJiYhZihQLCQpKWZvcihyIGluIFI9ITAsZyhQLCQse2dldDpmdW5jdGlvbigpe3JldHVybiBsKHRoaXMpP3RoaXNbTF06dm9pZCAwfX0pLE4pY1tyXSYmcChjW3JdLEwscik7dC5leHBvcnRzPXtOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOmosVFlQRURfQVJSQVlfVEFHOlImJkwsYVR5cGVkQXJyYXk6ZnVuY3Rpb24odCl7aWYoRih0KSlyZXR1cm4gdDt0aHJvdyBBKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkiKX0sYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpmdW5jdGlvbih0KXtpZih1KHQpJiYoIXl8fG0oSSx0KSkpcmV0dXJuIHQ7dGhyb3cgQShoKHQpKyIgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbih0LGUsbixyKXtpZihzKXtpZihuKWZvcih2YXIgaSBpbiBOKXt2YXIgYT1jW2ldO2lmKGEmJmYoYS5wcm90b3R5cGUsdCkpdHJ5e2RlbGV0ZSBhLnByb3RvdHlwZVt0XX1jYXRjaChvKXt0cnl7YS5wcm90b3R5cGVbdF09ZX1jYXRjaCh1KXt9fX1QW3RdJiYhbnx8dihQLHQsbj9lOmomJmtbdF18fGUscil9fSxleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpO2lmKHMpe2lmKHkpe2lmKG4pZm9yKHIgaW4gTilpZihpPWNbcl0saSYmZihpLHQpKXRyeXtkZWxldGUgaVt0XX1jYXRjaChhKXt9aWYoSVt0XSYmIW4pcmV0dXJuO3RyeXtyZXR1cm4gdihJLHQsbj9lOmomJklbdF18fGUpfWNhdGNoKGEpe319Zm9yKHIgaW4gTilpPWNbcl0sIWl8fGlbdF0mJiFufHx2KGksdCxlKX19LGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjpELGlzVmlldzpmdW5jdGlvbih0KXtpZighbCh0KSlyZXR1cm4hMTt2YXIgZT1kKHQpO3JldHVybiJEYXRhVmlldyI9PT1lfHxmKE4sZSl8fGYoQixlKX0saXNUeXBlZEFycmF5OkYsVHlwZWRBcnJheTpJLFR5cGVkQXJyYXlQcm90b3R5cGU6UH19LGVjYmY6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIHQucmVzcG9uc2l2ZT9uKCJ1bmktbGF5b3V0Iix7Y2xhc3M6eyJ1bmktYXBwLS1zaG93bGF5b3V0Ijp0LnNob3dMYXlvdXQsInVuaS1hcHAtLXNob3d0b3B3aW5kb3ciOnQuc2hvd1RvcFdpbmRvdywidW5pLWFwcC0tc2hvd2xlZnR3aW5kb3ciOnQuc2hvd0xlZnRXaW5kb3csInVuaS1hcHAtLXNob3dyaWdodHdpbmRvdyI6dC5zaG93UmlnaHRXaW5kb3d9fSxbdC50b3BXaW5kb3c/bigidW5pLXRvcC13aW5kb3ciLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dUb3BXaW5kb3d8fHQuYXBpU2hvd1RvcFdpbmRvdyxleHByZXNzaW9uOiJzaG93VG9wV2luZG93IHx8IGFwaVNob3dUb3BXaW5kb3cifV19LFtuKCJkaXYiLHtyZWY6InRvcFdpbmRvdyIsc3RhdGljQ2xhc3M6InVuaS10b3Atd2luZG93IixzdHlsZTp0LnRvcFdpbmRvd1N0eWxlfSxbbigidi11bmktdG9wLXdpbmRvdyIsdC5fYih7cmVmOiJ0b3AiLGF0dHJzOnsibmF2aWdhdGlvbi1iYXItdGl0bGUtdGV4dCI6dC5uYXZpZ2F0aW9uQmFyVGl0bGVUZXh0fSxvbjp7Imhvb2s6bW91bnRlZCI6dC5vblRvcFdpbmRvd0luaXR9fSwidi11bmktdG9wLXdpbmRvdyIsdC5iaW5kV2luZG93LCExKSldLDEpLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdG9wLXdpbmRvdy0tcGxhY2Vob2xkZXIiLHN0eWxlOntoZWlnaHQ6dC50b3BXaW5kb3dIZWlnaHR9fSldKTp0Ll9lKCksbigidW5pLWNvbnRlbnQiLFtuKCJ1bmktbWFpbiIsW24oImtlZXAtYWxpdmUiLHthdHRyczp7aW5jbHVkZTp0LmtlZXBBbGl2ZUluY2x1ZGV9fSxbbigicm91dGVyLXZpZXciLHtrZXk6dC5yb3V0ZXJLZXl9KV0sMSldLDEpLHQubGVmdFdpbmRvdz9uKCJ1bmktbGVmdC13aW5kb3ciLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dMZWZ0V2luZG93fHx0LmFwaVNob3dMZWZ0V2luZG93LGV4cHJlc3Npb246InNob3dMZWZ0V2luZG93IHx8IGFwaVNob3dMZWZ0V2luZG93In1dLHJlZjoibGVmdFdpbmRvdyIsc3R5bGU6dC5sZWZ0V2luZG93U3R5bGUsYXR0cnM6eyJkYXRhLXNob3ciOnQuYXBpU2hvd0xlZnRXaW5kb3d9fSxbdC5hcGlTaG93TGVmdFdpbmRvdz9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLW1hc2siLG9uOntjbGljazpmdW5jdGlvbihlKXt0LmFwaVNob3dMZWZ0V2luZG93PSExfX19KTp0Ll9lKCksbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1sZWZ0LXdpbmRvdyJ9LFtuKCJ2LXVuaS1sZWZ0LXdpbmRvdyIsdC5fYih7cmVmOiJsZWZ0Iixvbjp7Imhvb2s6bW91bnRlZCI6dC5vbkxlZnRXaW5kb3dJbml0fX0sInYtdW5pLWxlZnQtd2luZG93Iix0LmJpbmRXaW5kb3csITEpKV0sMSldKTp0Ll9lKCksdC5yaWdodFdpbmRvdz9uKCJ1bmktcmlnaHQtd2luZG93Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6dC5zaG93UmlnaHRXaW5kb3d8fHQuYXBpU2hvd1JpZ2h0V2luZG93LGV4cHJlc3Npb246InNob3dSaWdodFdpbmRvdyB8fCBhcGlTaG93UmlnaHRXaW5kb3cifV0scmVmOiJyaWdodFdpbmRvdyIsc3R5bGU6dC5yaWdodFdpbmRvd1N0eWxlLGF0dHJzOnsiZGF0YS1zaG93Ijp0LmFwaVNob3dSaWdodFdpbmRvd319LFt0LmFwaVNob3dSaWdodFdpbmRvdz9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLW1hc2siLG9uOntjbGljazpmdW5jdGlvbihlKXt0LmFwaVNob3dSaWdodFdpbmRvdz0hMX19fSk6dC5fZSgpLG4oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktcmlnaHQtd2luZG93In0sW24oInYtdW5pLXJpZ2h0LXdpbmRvdyIsdC5fYih7cmVmOiJyaWdodCIsb246eyJob29rOm1vdW50ZWQiOnQub25SaWdodFdpbmRvd0luaXR9fSwidi11bmktcmlnaHQtd2luZG93Iix0LmJpbmRXaW5kb3csITEpKV0sMSldKTp0Ll9lKCldLDEpXSwxKTpuKCJrZWVwLWFsaXZlIix7YXR0cnM6e2luY2x1ZGU6dC5rZWVwQWxpdmVJbmNsdWRlfX0sW24oInJvdXRlci12aWV3Iix7a2V5OnQucm91dGVyS2V5fSldLDEpfSxpPVtdfSxlZGQwOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIxM2QyIiksaT1uKCI5YmYyIik7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbi5nZXQmJnIobi5nZXQsZSx7Z2V0dGVyOiEwfSksbi5zZXQmJnIobi5zZXQsZSx7c2V0dGVyOiEwfSksaS5mKHQsZSxuKX19LGVmZDQ6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLmQoZSwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSksbi5kKGUsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG4uZChlLCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC4kY3JlYXRlRWxlbWVudCxuPXQuX3NlbGYuX2N8fGU7cmV0dXJuIHQuaGFzVGFiQmFyP24oInVuaS10YWJiYXIiLHtkaXJlY3RpdmVzOlt7bmFtZToic2hvdyIscmF3TmFtZToidi1zaG93Iix2YWx1ZTp0LnNob3dUYWJCYXIsZXhwcmVzc2lvbjoic2hvd1RhYkJhciJ9XX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyIixzdHlsZTp7ImZsZXgtZGlyZWN0aW9uIjoidmVydGljYWwiPT09dC5kaXJlY3Rpb24/ImNvbHVtbiI6InJvdyIsYmFja2dyb3VuZENvbG9yOnQudGFiQmFyT3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3J9fSxbdC5fbCh0LnRhYkJhck9wdGlvbnMubGlzdCwoZnVuY3Rpb24oZSxyKXtyZXR1cm5bITEhPT1lLnZpc2libGU/bigiZGl2Iix7a2V5OmUucGFnZVBhdGgsc3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2l0ZW0iLG9uOntjbGljazpmdW5jdGlvbihuKXtyZXR1cm4gdC5fc3dpdGNoVGFiKGUscil9fX0sW24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyX19iZCJ9LFt0LnNob3dJY29uJiZlLmljb25QYXRoP24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktdGFiYmFyX19pY29uIixjbGFzczp7InVuaS10YWJiYXJfX2ljb25fX2RpZmYiOiFlLnRleHR9fSxbbigiaW1nIix7YXR0cnM6e3NyYzp0Ll9nZXRSZWFsUGF0aCh0LnNlbGVjdGVkSW5kZXg9PT1yP2Uuc2VsZWN0ZWRJY29uUGF0aDplLmljb25QYXRoKX19KSxlLnJlZERvdD9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9fcmVkZG90IixjbGFzczp7InVuaS10YWJiYXJfX2JhZGdlIjohIWUuYmFkZ2V9fSxbdC5fdigiXG4gICAgICAgICAgICAgICIrdC5fcyhlLmJhZGdlKSsiXG4gICAgICAgICAgICAiKV0pOnQuX2UoKV0pOnQuX2UoKSxlLnRleHQ/bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS10YWJiYXJfX2xhYmVsIixzdHlsZTp7Y29sb3I6dC5zZWxlY3RlZEluZGV4PT09cj90LnRhYkJhck9wdGlvbnMuc2VsZWN0ZWRDb2xvcjp0LnRhYkJhck9wdGlvbnMuY29sb3IsZm9udFNpemU6dC5zaG93SWNvbiYmZS5pY29uUGF0aD8iMTBweCI6IjE0cHgifX0sW3QuX3YoIlxuICAgICAgICAgICAgIit0Ll9zKGUudGV4dCkrIlxuICAgICAgICAgICAgIiksIWUucmVkRG90fHx0LnNob3dJY29uJiZlLmljb25QYXRoP3QuX2UoKTpuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXRhYmJhcl9fcmVkZG90IixjbGFzczp7InVuaS10YWJiYXJfX2JhZGdlIjohIWUuYmFkZ2V9fSxbdC5fdigiXG4gICAgICAgICAgICAgICIrdC5fcyhlLmJhZGdlKSsiXG4gICAgICAgICAgICAiKV0pXSk6dC5fZSgpXSldKTp0Ll9lKCldfSkpXSwyKV0pOnQuX2UoKX0saT1bXX0sZWZlYzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMWEyZCIpLGk9bigiY2IyZCIpLGE9bigiNTFlYiIpLG89bigiYjYyMiIpLHM9bygidG9QcmltaXRpdmUiKSxjPURhdGUucHJvdG90eXBlO3IoYyxzKXx8aShjLHMsYSl9LGYwNjk6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1OWVkIiksaT1UeXBlRXJyb3IsYT1mdW5jdGlvbih0KXt2YXIgZSxuO3RoaXMucHJvbWlzZT1uZXcgdCgoZnVuY3Rpb24odCxyKXtpZih2b2lkIDAhPT1lfHx2b2lkIDAhPT1uKXRocm93IGkoIkJhZCBQcm9taXNlIGNvbnN0cnVjdG9yIik7ZT10LG49cn0pKSx0aGlzLnJlc29sdmU9cihlKSx0aGlzLnJlamVjdD1yKG4pfTt0LmV4cG9ydHMuZj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGEodCl9fSxmMGIxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmxpZmVjeWNsZU1peGluPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZXh0ZW5kO3QuZXh0ZW5kPWZ1bmN0aW9uKHQpe3Q9dHx8e307dmFyIG49dC5tZXRob2RzO24mJk9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKGUpey0xIT09YS5pbmRleE9mKGUpJiYodFtlXT1uW2VdLGRlbGV0ZSBuW2VdKX0pKTt2YXIgcj10LnNldHVwO2lmKHIpe3ZhciBpPSIiO3RyeXtpPXIudG9TdHJpbmcoKX1jYXRjaChvKXt9WyJvblBhZ2VTY3JvbGwiLCJvblJlYWNoQm90dG9tIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5pbmRleE9mKCJ1bmlBcHAuIi5jb25jYXQoZSkpJiYhdFtlXSYmKHRbZV09W2Z1bmN0aW9uKCl7fV0pfSkpfXJldHVybiBlLmNhbGwodGhpcyx0KX07dmFyIG49dC5jb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzLHI9bi5jcmVhdGVkO2EuZm9yRWFjaCgoZnVuY3Rpb24odCl7blt0XT1yfSkpLG4ubXBPcHRpb25zPWZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIGU7dmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gcyhuLHQpLGUmJnMobixlKSxufX0sbigiMTRkOSIpLG4oImQzYjciKSxuKCIxNTliIiksbigiYjY0YiIpLG4oImM5NzUiKSxuKCJkNDAxIiksbigiMjVmMCIpO3ZhciBpPXIobigiMjkwOSIpKSxhPVsib25MYXVuY2giLCJvblNob3ciLCJvbkhpZGUiLCJvblVuaU5WaWV3TWVzc2FnZSIsIm9uUGFnZU5vdEZvdW5kIiwib25UaGVtZUNoYW5nZSIsIm9uRXJyb3IiLCJvblVuaGFuZGxlZFJlamVjdGlvbiIsIm9uSW5pdCIsIm9uTG9hZCIsIm9uUmVhZHkiLCJvblVubG9hZCIsIm9uUHVsbERvd25SZWZyZXNoIiwib25SZWFjaEJvdHRvbSIsIm9uVGFiSXRlbVRhcCIsIm9uQWRkVG9GYXZvcml0ZXMiLCJvblNoYXJlVGltZWxpbmUiLCJvblNoYXJlQXBwTWVzc2FnZSIsIm9uUmVzaXplIiwib25QYWdlU2Nyb2xsIiwib25OYXZpZ2F0aW9uQmFyQnV0dG9uVGFwIiwib25CYWNrUHJlc3MiLCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENoYW5nZWQiLCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENvbmZpcm1lZCIsIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Q2xpY2tlZCIsIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Rm9jdXNDaGFuZ2VkIiwib25QYWdlU2hvdyIsIm9uUGFnZUhpZGUiLCJvblBhZ2VSZXNpemUiLCJvblNlcnZpY2VDcmVhdGVkIiwib25TZXJ2aWNlQXR0YWNoZWQiXSxvPVsiZGF0YSIsInByb3BlcnRpZXMiLCJvcHRpb25zIiwicmVsYXRpb25zIl07ZnVuY3Rpb24gcyh0LGUpe28uZm9yRWFjaCgoZnVuY3Rpb24obil7KGZ1bmN0aW9uKHQsZSxuKXtlW25dJiZPYmplY3QuYXNzaWduKHRbbl18fCh0W25dPXt9KSxlW25dKX0pKHQsZSxuKX0pKSxlLmV4dGVybmFsQ2xhc3NlcyYmZnVuY3Rpb24odCxlKXt0LnB1c2guYXBwbHkodCwoMCxpLmRlZmF1bHQpKGUpKX0odC5leHRlcm5hbENsYXNzZXN8fCh0LmV4dGVybmFsQ2xhc3Nlcz1bXSksZS5leHRlcm5hbENsYXNzZXMpLGUucGF0aCYmKHQucGF0aD1lLnBhdGgpfX0sZjBjNTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4scixpLGEsbyxzLGMsdSl7dmFyIGwsZj0iZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5vcHRpb25zOnQ7aWYoYyl7Zi5jb21wb25lbnRzfHwoZi5jb21wb25lbnRzPXt9KTt2YXIgZD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Zvcih2YXIgaCBpbiBjKWQuY2FsbChjLGgpJiYhZC5jYWxsKGYuY29tcG9uZW50cyxoKSYmKGYuY29tcG9uZW50c1toXT1jW2hdKX1pZih1JiYoImZ1bmN0aW9uIj09PXR5cGVvZiB1LmJlZm9yZUNyZWF0ZSYmKHUuYmVmb3JlQ3JlYXRlPVt1LmJlZm9yZUNyZWF0ZV0pLCh1LmJlZm9yZUNyZWF0ZXx8KHUuYmVmb3JlQ3JlYXRlPVtdKSkudW5zaGlmdCgoZnVuY3Rpb24oKXt0aGlzW3UuX19tb2R1bGVdPXRoaXN9KSksKGYubWl4aW5zfHwoZi5taXhpbnM9W10pKS5wdXNoKHUpKSxlJiYoZi5yZW5kZXI9ZSxmLnN0YXRpY1JlbmRlckZucz1uLGYuX2NvbXBpbGVkPSEwKSxyJiYoZi5mdW5jdGlvbmFsPSEwKSxhJiYoZi5fc2NvcGVJZD0iZGF0YS12LSIrYSksbz8obD1mdW5jdGlvbih0KXt0PXR8fHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fHx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuJHZub2RlJiZ0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCx0fHwidW5kZWZpbmVkIj09PXR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9ffHwodD1fX1ZVRV9TU1JfQ09OVEVYVF9fKSxpJiZpLmNhbGwodGhpcyx0KSx0JiZ0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cyYmdC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG8pfSxmLl9zc3JSZWdpc3Rlcj1sKTppJiYobD1zP2Z1bmN0aW9uKCl7aS5jYWxsKHRoaXMsdGhpcy4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290KX06aSksbClpZihmLmZ1bmN0aW9uYWwpe2YuX2luamVjdFN0eWxlcz1sO3ZhciBwPWYucmVuZGVyO2YucmVuZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGwuY2FsbChlKSxwKHQsZSl9fWVsc2V7dmFyIHY9Zi5iZWZvcmVDcmVhdGU7Zi5iZWZvcmVDcmVhdGU9dj9bXS5jb25jYXQodixsKTpbbF19cmV0dXJue2V4cG9ydHM6dCxvcHRpb25zOmZ9fW4uZChlLCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKX0sZjBjYzpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24uZChlLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQoZSwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KSksbi5kKGUsImEiLChmdW5jdGlvbigpe30pKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LiRjcmVhdGVFbGVtZW50LG49dC5fc2VsZi5fY3x8ZTtyZXR1cm4gbigidW5pLXBhZ2UtaGVhZCIse2F0dHJzOnsidW5pLXBhZ2UtaGVhZC10eXBlIjp0LnR5cGV9fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQiLGNsYXNzOnQuaGVhZENsYXNzLHN0eWxlOnt0cmFuc2l0aW9uRHVyYXRpb246dC5kdXJhdGlvbix0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246dC50aW1pbmdGdW5jLGJhY2tncm91bmRDb2xvcjp0LmJnQ29sb3IsY29sb3I6dC50ZXh0Q29sb3J9fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtaGQifSxbbigiZGl2Iix7ZGlyZWN0aXZlczpbe25hbWU6InNob3ciLHJhd05hbWU6InYtc2hvdyIsdmFsdWU6dC5iYWNrQnV0dG9uLGV4cHJlc3Npb246ImJhY2tCdXR0b24ifV0sc3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtYnRuIixvbjp7Y2xpY2s6dC5fYmFja319LFtuKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6e2NvbG9yOnQuY29sb3IsZm9udFNpemU6IjI3cHgifX0sW3QuX3YoIu6YgSIpXSldKSxuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1mdCJ9LFt0Ll9sKHQuYnRucywoZnVuY3Rpb24oZSxyKXtyZXR1cm5bImxlZnQiPT09ZS5mbG9hdD9uKCJkaXYiLHtrZXk6cixzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1idG4iLGNsYXNzOnsidW5pLXBhZ2UtaGVhZC1idG4tcmVkLWRvdCI6ZS5yZWREb3R8fGUuYmFkZ2VUZXh0LCJ1bmktcGFnZS1oZWFkLWJ0bi1zZWxlY3QiOmUuc2VsZWN0fSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCI9PT10LnR5cGU/ZS5iYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsd2lkdGg6ZS53aWR0aH0sYXR0cnM6eyJiYWRnZS10ZXh0IjplLmJhZGdlVGV4dH19LFtuKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6dC5fZm9ybWF0QnRuU3R5bGUoZSksZG9tUHJvcHM6e2lubmVySFRNTDp0Ll9zKHQuX2Zvcm1hdEJ0bkZvbnRUZXh0KGUpKX0sb246e2NsaWNrOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vbkJ0bkNsaWNrKHIpfX19KV0pOnQuX2UoKV19KSldLDIpXSksdC5zZWFyY2hJbnB1dD90Ll9lKCk6bigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtYmQifSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWRfX3RpdGxlIixzdHlsZTp7Zm9udFNpemU6dC50aXRsZVNpemUsb3BhY2l0eToidHJhbnNwYXJlbnQiPT09dC50eXBlPzA6MX19LFt0LmxvYWRpbmc/bigiaSIse3N0YXRpY0NsYXNzOiJ1bmktbG9hZGluZyJ9KTp0Ll9lKCksIiIhPT10LnRpdGxlSW1hZ2U/bigiaW1nIix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWRfX3RpdGxlX2ltYWdlIixhdHRyczp7c3JjOnQudGl0bGVJbWFnZX19KTpbdC5fdigiXG4gICAgICAgICAgIit0Ll9zKHQudGl0bGVUZXh0KSsiXG4gICAgICAgICIpXV0sMildKSx0LnNlYXJjaElucHV0P24oImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1oZWFkLXNlYXJjaCIsc3R5bGU6eyJib3JkZXItcmFkaXVzIjp0LnNlYXJjaElucHV0LmJvcmRlclJhZGl1cywiYmFja2dyb3VuZC1jb2xvciI6dC5zZWFyY2hJbnB1dC5iYWNrZ3JvdW5kQ29sb3J9fSxbbigiZGl2Iix7c3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtc2VhcmNoLXBsYWNlaG9sZGVyIixjbGFzczpbInVuaS1wYWdlLWhlYWQtc2VhcmNoLXBsYWNlaG9sZGVyLSIrKHQuZm9jdXN8fHQuc2hvd1BsYWNlaG9sZGVyPyJsZWZ0Ijp0LnNlYXJjaElucHV0LmFsaWduKV0sc3R5bGU6e2NvbG9yOnQuc2VhcmNoSW5wdXQucGxhY2Vob2xkZXJDb2xvcn0sZG9tUHJvcHM6e3RleHRDb250ZW50OnQuX3ModC5zaG93UGxhY2Vob2xkZXJ8fHQuY29tcG9zaW5nPyIiOnQuc2VhcmNoSW5wdXQucGxhY2Vob2xkZXIpfX0pLG4oInYtdW5pLWlucHV0Iix7cmVmOiJpbnB1dCIsc3RhdGljQ2xhc3M6InVuaS1wYWdlLWhlYWQtc2VhcmNoLWlucHV0IixzdHlsZTp7Y29sb3I6dC5zZWFyY2hJbnB1dC5jb2xvcn0sYXR0cnM6e2ZvY3VzOnQuc2VhcmNoSW5wdXQuYXV0b0ZvY3VzLGRpc2FibGVkOnQuc2VhcmNoSW5wdXQuZGlzYWJsZWQsInBsYWNlaG9sZGVyLXN0eWxlIjoiY29sb3I6Iit0LnNlYXJjaElucHV0LnBsYWNlaG9sZGVyQ29sb3IsImNvbmZpcm0tdHlwZSI6InNlYXJjaCJ9LG9uOntmb2N1czp0Ll9mb2N1cyxibHVyOnQuX2JsdXIsInVwZGF0ZTp2YWx1ZSI6dC5faW5wdXR9LG1vZGVsOnt2YWx1ZTp0LnRleHQsY2FsbGJhY2s6ZnVuY3Rpb24oZSl7dC50ZXh0PWV9LGV4cHJlc3Npb246InRleHQifX0pLHQudGV4dD9uKCJpIix7c3RhdGljQ2xhc3M6InVuaS1pY29uLWNsZWFyIixvbjp7Y2xpY2s6dC5fY2xlYXJJbnB1dH19KTp0Ll9lKCldLDEpOnQuX2UoKSxuKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1mdCJ9LFt0Ll9sKHQuYnRucywoZnVuY3Rpb24oZSxyKXtyZXR1cm5bImxlZnQiIT09ZS5mbG9hdD9uKCJkaXYiLHtrZXk6cixzdGF0aWNDbGFzczoidW5pLXBhZ2UtaGVhZC1idG4iLGNsYXNzOnsidW5pLXBhZ2UtaGVhZC1idG4tcmVkLWRvdCI6ZS5yZWREb3R8fGUuYmFkZ2VUZXh0LCJ1bmktcGFnZS1oZWFkLWJ0bi1zZWxlY3QiOmUuc2VsZWN0fSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCI9PT10LnR5cGU/ZS5iYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsd2lkdGg6ZS53aWR0aH0sYXR0cnM6eyJiYWRnZS10ZXh0IjplLmJhZGdlVGV4dH19LFtuKCJpIix7c3RhdGljQ2xhc3M6InVuaS1idG4taWNvbiIsc3R5bGU6dC5fZm9ybWF0QnRuU3R5bGUoZSksZG9tUHJvcHM6e2lubmVySFRNTDp0Ll9zKHQuX2Zvcm1hdEJ0bkZvbnRUZXh0KGUpKX0sb246e2NsaWNrOmZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vbkJ0bkNsaWNrKHIpfX19KV0pOnQuX2UoKV19KSldLDIpXSksInRyYW5zcGFyZW50IiE9PXQudHlwZSYmImZsb2F0IiE9PXQudHlwZT9uKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBsYWNlaG9sZGVyIixjbGFzczp7InVuaS1wbGFjZWhvbGRlci10aXRsZVBlbmV0cmF0ZSI6dC50aXRsZVBlbmV0cmF0ZX19KTp0Ll9lKCldKX0saT1bXX0sZjE4MzpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiMjNlNyIpLGk9bigiZTMzMCIpLGE9bigiZDAxMiIpLG89bigiODYxZCIpLHM9bigiMWEyZCIpLGM9bigiOWJmMiIpLmYsdT1uKCIyNDFjIiksbD1uKCIwNTdmIiksZj1uKCI0ZmFkIiksZD1uKCI5MGUzIiksaD1uKCJiYjJmIikscD0hMSx2PWQoIm1ldGEiKSxnPTAsbT1mdW5jdGlvbih0KXtjKHQsdix7dmFsdWU6e29iamVjdElEOiJPIitnKyssd2Vha0RhdGE6e319fSl9LGI9dC5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24oKXtiLmVuYWJsZT1mdW5jdGlvbigpe30scD0hMDt2YXIgdD11LmYsZT1pKFtdLnNwbGljZSksbj17fTtuW3ZdPTEsdChuKS5sZW5ndGgmJih1LmY9ZnVuY3Rpb24obil7Zm9yKHZhciByPXQobiksaT0wLGE9ci5sZW5ndGg7aTxhO2krKylpZihyW2ldPT09dil7ZShyLGksMSk7YnJlYWt9cmV0dXJuIHJ9LHIoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohMH0se2dldE93blByb3BlcnR5TmFtZXM6bC5mfSkpfSxmYXN0S2V5OmZ1bmN0aW9uKHQsZSl7aWYoIW8odCkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6KCJzdHJpbmciPT10eXBlb2YgdD8iUyI6IlAiKSt0O2lmKCFzKHQsdikpe2lmKCFmKHQpKXJldHVybiJGIjtpZighZSlyZXR1cm4iRSI7bSh0KX1yZXR1cm4gdFt2XS5vYmplY3RJRH0sZ2V0V2Vha0RhdGE6ZnVuY3Rpb24odCxlKXtpZighcyh0LHYpKXtpZighZih0KSlyZXR1cm4hMDtpZighZSlyZXR1cm4hMTttKHQpfXJldHVybiB0W3ZdLndlYWtEYXRhfSxvbkZyZWV6ZTpmdW5jdGlvbih0KXtyZXR1cm4gaCYmcCYmZih0KSYmIXModCx2KSYmbSh0KSx0fX07YVt2XT0hMH0sZjE5ZTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO24ucihlKTt2YXIgcj1uKCI4ZWRlIiksaT1uKCJlNzQyIik7Zm9yKHZhciBhIGluIGkpWyJkZWZhdWx0Il0uaW5kZXhPZihhKTwwJiZmdW5jdGlvbih0KXtuLmQoZSx0LChmdW5jdGlvbigpe3JldHVybiBpW3RdfSkpfShhKTt2YXIgbz1uKCJmMGM1Iikscz1PYmplY3Qob1siYSJdKShpWyJkZWZhdWx0Il0sclsiYiJdLHJbImMiXSwhMSxudWxsLG51bGwsbnVsbCwhMSxyWyJhIl0sdm9pZCAwKTtlWyJkZWZhdWx0Il09cy5leHBvcnRzfSxmMWNhOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7Ii4vIj09PV9fdW5pQ29uZmlnLnJvdXRlci5iYXNlJiYodD10LnJlcGxhY2UoL15cLlwvc3RhdGljXC8vLCIvc3RhdGljLyIpKTtpZigwPT09dC5pbmRleE9mKCIvIikpe2lmKDAhPT10LmluZGV4T2YoIi8vIikpcmV0dXJuIHModC5zdWJzdHIoMSkpO3Q9Imh0dHBzOiIrdH1pZihhLnRlc3QodCl8fG8udGVzdCh0KXx8MD09PXQuaW5kZXhPZigiYmxvYjoiKSlyZXR1cm4gdDt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKTtpZihlLmxlbmd0aClyZXR1cm4gcygoMCxpLmRlZmF1bHQpKGVbZS5sZW5ndGgtMV0uJHBhZ2Uucm91dGUsdCkuc3Vic3RyKDEpKTtyZXR1cm4gdH0sbigiYzk3NSIpLG4oImFjMWYiKSxuKCI1MzE5IiksbigiMDBiNCIpO3ZhciBpPXIobigiNWI4MCIpKSxhPS9eKFthLXotXSs6KT9cL1wvL2ksbz0vXmRhdGE6LiosLiovO2Z1bmN0aW9uIHModCl7dmFyIGU9X191bmlDb25maWcucm91dGVyLmJhc2U7cmV0dXJuIGU/Ii8iIT09ZSYmMD09PSgiLyIrdCkuaW5kZXhPZihlKT8iLyIrdDplK3Q6dH19LGYyMmI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyM2U3IiksaT1uKCJjNjViIiksYT1uKCJmMDY5Iiksbz1uKCI0NzM4IikuQ09OU1RSVUNUT1I7cih7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDpvfSx7cmVqZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPWEuZih0aGlzKTtyZXR1cm4gaShlLnJlamVjdCx2b2lkIDAsdCksZS5wcm9taXNlfX0pfSxmMjYyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPXIobigiZjVmMSIpKSxhPXIobigiMDI5MiIpKSxvPXIobigiNzNiZiIpKSxzPVtpLmRlZmF1bHQsYS5kZWZhdWx0LG8uZGVmYXVsdF07ZS5kZWZhdWx0PXN9LGYzNTQ6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImQwMzkiKSxpPW4oImI2MjIiKSxhPW4oImM0MzAiKSxvPWkoIml0ZXJhdG9yIik7dC5leHBvcnRzPSFyKChmdW5jdGlvbigpe3ZhciB0PW5ldyBVUkwoImI/YT0xJmI9MiZjPTMiLCJodHRwOi8vYSIpLGU9dC5zZWFyY2hQYXJhbXMsbj0iIjtyZXR1cm4gdC5wYXRobmFtZT0iYyUyMGQiLGUuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtlWyJkZWxldGUiXSgiYiIpLG4rPXIrdH0pKSxhJiYhdC50b0pTT058fCFlLnNvcnR8fCJodHRwOi8vYS9jJTIwZD9hPTEmYz0zIiE9PXQuaHJlZnx8IjMiIT09ZS5nZXQoImMiKXx8ImE9MSIhPT1TdHJpbmcobmV3IFVSTFNlYXJjaFBhcmFtcygiP2E9MSIpKXx8IWVbb118fCJhIiE9PW5ldyBVUkwoImh0dHBzOi8vYUBiIikudXNlcm5hbWV8fCJiIiE9PW5ldyBVUkxTZWFyY2hQYXJhbXMobmV3IFVSTFNlYXJjaFBhcmFtcygiYT1iIikpLmdldCgiYSIpfHwieG4tLWUxYXliYyIhPT1uZXcgVVJMKCJodHRwOi8v0YLQtdGB0YIiKS5ob3N0fHwiIyVEMCVCMSIhPT1uZXcgVVJMKCJodHRwOi8vYSPQsSIpLmhhc2h8fCJhMWMzIiE9PW58fCJ4IiE9PW5ldyBVUkwoImh0dHA6Ly94Iix2b2lkIDApLmhvc3R9KSl9LGYzNmE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImUzMzAiKTt0LmV4cG9ydHM9cihbXS5zbGljZSl9LGY0OTU6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oImMwNGUiKSxpPVR5cGVFcnJvcjt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9cih0LCJudW1iZXIiKTtpZigibnVtYmVyIj09dHlwZW9mIGUpdGhyb3cgaSgiQ2FuJ3QgY29udmVydCBudW1iZXIgdG8gYmlnaW50Iik7cmV0dXJuIEJpZ0ludChlKX19LGY0ZjA6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZmluZEV4aXN0c1BhZ2VJbmRleD1mdW5jdGlvbih0KXt2YXIgZT1nZXRDdXJyZW50UGFnZXMoKSxuPWUubGVuZ3RoO3doaWxlKG4tLSl7dmFyIHI9ZVtuXTtpZihyLiRwYWdlJiZyLiRwYWdlLmZ1bGxQYXRoPT09dClyZXR1cm4gbn1yZXR1cm4tMX0sZS5nZXRUYXJnZXREYXRhc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXt9LG49dC5fX3Z1ZV9fO2Z1bmN0aW9uIGkodCxuKXt2YXIgaT10LiRhdHRycztmb3IodmFyIGEgaW4gaSlpZihhLnN0YXJ0c1dpdGgoImRhdGEtIikpe3ZhciBvPSgwLHIuY2FtZWxpemUpKGEuc3Vic3RyKDUpLnRvTG93ZXJDYXNlKCkpLHM9aVthXTtlW29dPW4/czplW29dfHxzfX1pZihuKXt2YXIgbz1uO3doaWxlKG8mJm8uJGVsPT09dClpKG8pLG89by4kY2hpbGRyZW5bMF07dmFyIHM9bi4kcGFyZW50O3doaWxlKHMmJnMuJGVsPT09dClpKHMsITApLHM9cy4kcGFyZW50fWVsc2UgZT1PYmplY3QuYXNzaWduKHt9LHQuZGF0YXNldCx0Ll9fdW5pRGF0YXNldCk7cmV0dXJuIGEoZSl9LGUuaGFzTGlmZWN5Y2xlSG9vaz1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxlPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO3JldHVybiBBcnJheS5pc0FycmF5KHRbZV0pJiZ0W2VdLmxlbmd0aH0sZS5pc1BhZ2U9ZnVuY3Rpb24odCl7aWYodC4kcGFyZW50JiYiUGFnZUJvZHkiPT09dC4kcGFyZW50LiRvcHRpb25zLm5hbWUpcmV0dXJuLTE9PT1pLmluZGV4T2YodC4kb3B0aW9ucy5uYW1lKTtyZXR1cm4hMX0sZS5ub3JtYWxpemVEYXRhc2V0PWEsZS51cHgycHg9ZnVuY3Rpb24odCl7aWYodCs9IiIsLTEhPT10LmluZGV4T2YoInVweCIpKXJldHVybiB1bmkudXB4MnB4KHBhcnNlSW50KHQpfHwwKTtyZXR1cm4gcGFyc2VJbnQodCl8fDB9LG4oImM5NzUiKSxuKCJlOWM0IiksbigiYjY0YiIpLG4oIjJjYTAiKSxuKCJlMjVlIik7dmFyIHI9bigiZGI2YSIpLGk9WyJTeXN0ZW1Bc3luY0xvYWRpbmciLCJTeXN0ZW1Bc3luY0Vycm9yIl07ZnVuY3Rpb24gYSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxlPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodCkpLG49T2JqZWN0LmtleXMoZSkscj1uLmxlbmd0aDtpZihyKWZvcih2YXIgaT0wO2k8cjtpKyspe3ZhciBhPW5baV0sbz1hLmxlbmd0aDsidiIhPT1hLnN1YnN0cigwLDEpfHw5IT09byYmMTAhPT1vfHxkZWxldGUgZVthXX1yZXR1cm4gZX19LGY1MjI6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImE5ZTMiKSxuKCJjOTc1Iik7dmFyIGk9cihuKCI1M2NhIikpLGE9bigiZjRmMCIpLG89bigiODFlOCIpLHM9bigiMGZiZSIpLGM9bigiZGI2YSIpLHU9bigiNjBmNiIpLGw9cihuKCI3ODk2IikpLGY9cihuKCI4MjViIikpLGQ9cihuKCIzNWQwNiIpKSxoPXIobigiMjg5YiIpKSxwPXIobigiZDhjOCIpKSx2PW4oIjY3NTYiKTtmdW5jdGlvbiBnKCl7dmFyIHQ9e30sZT17bm9uZToiZGVmYXVsdCIsYXV0bzoidHJhbnNwYXJlbnQiLGFsd2F5czoiZmxvYXQifSxuPXRoaXMudGl0bGVOVmlldztuPSExPT09bnx8ImZhbHNlIj09PW58fCJjdXN0b20iPT09dGhpcy5uYXZpZ2F0aW9uU3R5bGUmJiEoMCxjLmlzUGxhaW5PYmplY3QpKG4pfHwiYWx3YXlzIj09PXRoaXMudHJhbnNwYXJlbnRUaXRsZSYmISgwLGMuaXNQbGFpbk9iamVjdCkobik/e3R5cGU6Im5vbmUifTpPYmplY3QuYXNzaWduKHt9LHt0eXBlOiJjdXN0b20iPT09dGhpcy5uYXZpZ2F0aW9uU3R5bGU/Im5vbmUiOiJkZWZhdWx0In0sdGhpcy50cmFuc3BhcmVudFRpdGxlIGluIGU/e3R5cGU6ZVt0aGlzLnRyYW5zcGFyZW50VGl0bGVdfTpudWxsLCJvYmplY3QiPT09KDAsaS5kZWZhdWx0KShuKT9uOiJib29sZWFuIj09PXR5cGVvZiBuP3t0eXBlOm4/ImRlZmF1bHQiOiJub25lIn06bnVsbCk7cmV0dXJuIHQ9KDAsdS5tZXJnZVRpdGxlTlZpZXcpKHtsb2FkaW5nOiExLGJhY2tCdXR0b246IXRoaXMuaXNRdWl0JiYhdGhpcy4kcm91dGUubWV0YS5pc1F1aXQsYmFja2dyb3VuZENvbG9yOnRoaXMubmF2aWdhdGlvbkJhckJhY2tncm91bmRDb2xvcix0ZXh0Q29sb3I6IndoaXRlIj09PSgwLHYucGFyc2VUaGVtZSkoe3Rlc3RTdHlsZTp0aGlzLm5hdmlnYXRpb25CYXJUZXh0U3R5bGV9KS50ZXN0U3R5bGU/IiNmZmYiOiIjMDAwIix0aXRsZVRleHQ6dGhpcy5uYXZpZ2F0aW9uQmFyVGl0bGVUZXh0LHRpdGxlSW1hZ2U6dGhpcy50aXRsZUltYWdlLGR1cmF0aW9uOiIwIix0aW1pbmdGdW5jOiIiLHRpdGxlUGVuZXRyYXRlOntZRVM6ITAsTk86ITF9W3RoaXMudGl0bGVQZW5ldHJhdGVdfSxuKSx0LnNoYWRvdz10aGlzLm5hdmlnYXRpb25CYXJTaGFkb3csKDAsby5pbml0TmF2aWdhdGlvbkJhckkxOG4pKHQpLHtuYXZpZ2F0aW9uQmFyOl9fdW5pQ29uZmlnLmRhcmttb2RlPygwLHYucGFyc2VUaGVtZSkodCk6dCx0aXRsZU5WaWV3Om59fWZ1bmN0aW9uIG0odCl7dmFyIGU9T2JqZWN0LmFzc2lnbih7c3VwcG9ydDohMCxjb2xvcjoiIzJCRDAwOSIsc3R5bGU6ImNpcmNsZSIsaGVpZ2h0OjcwLHJhbmdlOjE1MCxvZmZzZXQ6MH0sdGhpcy5wdWxsVG9SZWZyZXNoKSxuPSgwLGEudXB4MnB4KShlLm9mZnNldCk7cmV0dXJuIm5vbmUiIT09dC50eXBlJiYidHJhbnNwYXJlbnQiIT09dC50eXBlJiYobis9cy5OQVZCQVJfSEVJR0hUK3AuZGVmYXVsdC50b3ApLGUub2Zmc2V0PW4sZS5oZWlnaHQ9KDAsYS51cHgycHgpKGUuaGVpZ2h0KSxlLnJhbmdlPSgwLGEudXB4MnB4KShlLnJhbmdlKSxlfXZhciBiPXtuYW1lOiJQYWdlIixtcFR5cGU6InBhZ2UiLGNvbXBvbmVudHM6e1BhZ2VIZWFkOmwuZGVmYXVsdCxQYWdlQm9keTpmLmRlZmF1bHQsUGFnZVJlZnJlc2g6ZC5kZWZhdWx0fSxtaXhpbnM6W2guZGVmYXVsdF0scHJvcHM6e2lzUXVpdDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LGlzRW50cnk6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxpc1RhYkJhcjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRhYkJhckluZGV4Ont0eXBlOk51bWJlcixkZWZhdWx0Oi0xfSxuYXZpZ2F0aW9uQmFyQmFja2dyb3VuZENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjZjhmOGY4In0sbmF2aWdhdGlvbkJhclRleHRTdHlsZTp7ZGVmYXVsdDoiYmxhY2siLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4tMSE9PVsid2hpdGUiLCJibGFjayJdLmluZGV4T2YodCl8fDA9PT10LmluZGV4T2YoIkAiKX19LG5hdmlnYXRpb25CYXJUaXRsZVRleHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LG5hdmlnYXRpb25TdHlsZTp7ZGVmYXVsdDoiZGVmYXVsdCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybi0xIT09WyJkZWZhdWx0IiwiY3VzdG9tIl0uaW5kZXhPZih0KX19LGJhY2tncm91bmRDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZmZmZiJ9LGJhY2tncm91bmRUZXh0U3R5bGU6e2RlZmF1bHQ6ImRhcmsiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4tMSE9PVsiZGFyayIsImxpZ2h0Il0uaW5kZXhPZih0KX19LGJhY2tncm91bmRDb2xvclRvcDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LGJhY2tncm91bmRDb2xvckJvdHRvbTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LGVuYWJsZVB1bGxEb3duUmVmcmVzaDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LG9uUmVhY2hCb3R0b21EaXN0YW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1MH0sZGlzYWJsZVNjcm9sbDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRpdGxlTlZpZXc6e3R5cGU6W0Jvb2xlYW4sT2JqZWN0LFN0cmluZ10sZGVmYXVsdDoiIn0scHVsbFRvUmVmcmVzaDp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sdGl0bGVJbWFnZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sdHJhbnNwYXJlbnRUaXRsZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sdGl0bGVQZW5ldHJhdGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6Ik5PIn0sbmF2aWdhdGlvbkJhclNoYWRvdzp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sdG9wV2luZG93Ont0eXBlOkJvb2xlYW4sZGVmYXVsdDohMH19LGRhdGE6ZnVuY3Rpb24oKXt2YXIgdD1nLmNhbGwodGhpcyksZT10Lm5hdmlnYXRpb25CYXIsbj10LnRpdGxlTlZpZXc7cmV0dXJue25hdmlnYXRpb25CYXI6ZSxyZWZyZXNoT3B0aW9uczptLmNhbGwodGhpcyxuKX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLG49dGhpcy5uYXZpZ2F0aW9uQmFyO2RvY3VtZW50LnRpdGxlPW4udGl0bGVUZXh0LHQuZW1pdCgib25OYXZpZ2F0aW9uQmFyQ2hhbmdlIixuKSwoMCx2Lm9uVGhlbWVDaGFuZ2UpKChmdW5jdGlvbigpe2UubmF2aWdhdGlvbkJhcj1nLmNhbGwoZSkubmF2aWdhdGlvbkJhcn0pKX19O2UuZGVmYXVsdD1ifSkuY2FsbCh0aGlzLG4oImE5YWEiKSl9LGY1ZGY6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjAwZWUiKSxpPW4oIjE2MjYiKSxhPW4oImM2YjYiKSxvPW4oImI2MjIiKSxzPW8oInRvU3RyaW5nVGFnIiksYz1PYmplY3QsdT0iQXJndW1lbnRzIj09YShmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpO3QuZXhwb3J0cz1yP2E6ZnVuY3Rpb24odCl7dmFyIGUsbixyO3JldHVybiB2b2lkIDA9PT10PyJVbmRlZmluZWQiOm51bGw9PT10PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKG49ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbZV19Y2F0Y2gobil7fX0oZT1jKHQpLHMpKT9uOnU/YShlKToiT2JqZWN0Ij09KHI9YShlKSkmJmkoZS5jYWxsZWUpPyJBcmd1bWVudHMiOnJ9fSxmNWYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQscil7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPW4oIjgxZTgiKSxhPXtkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Nob3dUb2FzdDp7dmlzaWJsZTohMX19fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxuPSIiLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIpe249dCxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2Uuc2hvd1RvYXN0PXJ9KSwxMCl9fTt0Lm9uKCJvblNob3dUb2FzdCIsYSgib25TaG93VG9hc3QiKSksdC5vbigib25TaG93TG9hZGluZyIsYSgib25TaG93TG9hZGluZyIpKTt2YXIgbz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtpZihuKXt2YXIgYT0iIjtpZigib25IaWRlVG9hc3QiPT09dCYmIm9uU2hvd1RvYXN0IiE9PW4/YT0oMCxpLnQpKCJ1bmkuc2hvd1RvYXN0LnVucGFpcmVkIik6Im9uSGlkZUxvYWRpbmciPT09dCYmIm9uU2hvd0xvYWRpbmciIT09biYmKGE9KDAsaS50KSgidW5pLnNob3dMb2FkaW5nLnVucGFpcmVkIikpLGEpcmV0dXJuIHIud2FybihhKTtuPSIiLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5zaG93VG9hc3QudmlzaWJsZT0hMX0pLDEwKX19fTt0Lm9uKCJvbkhpZGVQb3B1cCIsbygib25IaWRlUG9wdXAiKSksdC5vbigib25IaWRlVG9hc3QiLG8oIm9uSGlkZVRvYXN0IikpLHQub24oIm9uSGlkZUxvYWRpbmciLG8oIm9uSGlkZUxvYWRpbmciKSl9fTtlLmRlZmF1bHQ9YX0pLmNhbGwodGhpcyxuKCJhOWFhIiksbigiNWE1MiIpWyJkZWZhdWx0Il0pfSxmNjM4OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm5hbWUscj10LmFyZzsicG9zdE1lc3NhZ2UiPT09bnx8dW5pW25dKHIpfX0sZjc3MjpmdW5jdGlvbih0LGUsbil7dmFyIHI9bigiNTY5MiIpLGk9bigiOTBlMyIpLGE9cigia2V5cyIpO3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYVt0XXx8KGFbdF09aSh0KSl9fSxmODYxOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmdldEFwcEJhc2VJbmZvPWQsZS5nZXREZXZpY2VJbmZvPWYsZS5nZXRTeXN0ZW1JbmZvPWZ1bmN0aW9uKCl7cmV0dXJuIGgoKX0sZS5nZXRTeXN0ZW1JbmZvU3luYz1oO3ZhciBpPW4oIjZhZTAiKSxhPXIobigiNWYxMyIpKSxvPW4oIjQ5YjYiKSxzPW4oImRiNmEiKSxjPXt9LHU9ITA7ZnVuY3Rpb24gbCgpe3UmJihjPSgwLG8uZ2V0QnJvd3NlckluZm8pKCkpfWZ1bmN0aW9uIGYoKXtsKCk7dmFyIHQ9YyxlPXQuZGV2aWNlQnJhbmQsbj10LmRldmljZU1vZGVsLHI9dC5icmFuZCxpPXQubW9kZWwsbz10LnBsYXRmb3JtLHM9dC5zeXN0ZW0sdT10LmRldmljZU9yaWVudGF0aW9uLGY9dC5kZXZpY2VUeXBlO3JldHVybnticmFuZDpyLGRldmljZUJyYW5kOmUsZGV2aWNlTW9kZWw6bixkZXZpY2VQaXhlbFJhdGlvOndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLGRldmljZUlkOigwLGEuZGVmYXVsdCkoKSxkZXZpY2VPcmllbnRhdGlvbjp1LGRldmljZVR5cGU6Zixtb2RlbDppLHBsYXRmb3JtOm8sc3lzdGVtOnN9fWZ1bmN0aW9uIGQoKXtsKCk7dmFyIHQ9YyxlPXQudGhlbWUsbj10Lmxhbmd1YWdlLHI9dC5icm93c2VyTmFtZSxpPXQuYnJvd3NlclZlcnNpb24sYT11bmkmJnVuaS5nZXRMb2NhbGU/dW5pLmdldExvY2FsZSgpOm47cmV0dXJue2FwcElkOl9fdW5pQ29uZmlnLmFwcElkLGFwcE5hbWU6X191bmlDb25maWcuYXBwTmFtZSxhcHBWZXJzaW9uOl9fdW5pQ29uZmlnLmFwcFZlcnNpb24sYXBwVmVyc2lvbkNvZGU6X191bmlDb25maWcuYXBwVmVyc2lvbkNvZGUsYXBwTGFuZ3VhZ2U6YSxlbmFibGVEZWJ1ZzohMSxob3N0U0RLVmVyc2lvbjp2b2lkIDAsaG9zdFBhY2thZ2VOYW1lOnZvaWQgMCxob3N0Rm9udFNpemVTZXR0aW5nOnZvaWQgMCxob3N0TmFtZTpyLGhvc3RWZXJzaW9uOmksaG9zdFRoZW1lOmUsaG9zdExhbmd1YWdlOm4sbGFuZ3VhZ2U6bixTREtWZXJzaW9uOiIiLHRoZW1lOmUsdmVyc2lvbjoiIn19ZnVuY3Rpb24gaCgpe3U9ITAsbCgpLHU9ITE7dmFyIHQ9KDAsaS5nZXRXaW5kb3dJbmZvKSgpLGU9ZigpLG49ZCgpO3U9ITA7dmFyIHI9YyxhPXIudWEsbz1yLmJyb3dzZXJOYW1lLGg9ci5icm93c2VyVmVyc2lvbixwPXIub3NuYW1lLHY9ci5vc3ZlcnNpb24sZz1PYmplY3QuYXNzaWduKHt9LHQsZSxuLHticm93c2VyTmFtZTpvLGJyb3dzZXJWZXJzaW9uOmgsZm9udFNpemVTZXR0aW5nOm4uaG9zdEZvbnRTaXplU2V0dGluZyxvc05hbWU6cC50b0xvY2FsZUxvd2VyQ2FzZSgpLG9zVmVyc2lvbjp2LG9zTGFuZ3VhZ2U6dm9pZCAwLG9zVGhlbWU6dm9pZCAwLHVuaVBsYXRmb3JtOiJ3ZWIiLHVuaUNvbXBpbGVWZXJzaW9uOl9fdW5pQ29uZmlnLmNvbXBpbGVyVmVyc2lvbix1bmlSdW50aW1lVmVyc2lvbjpfX3VuaUNvbmZpZy5jb21waWxlclZlcnNpb24sdWE6YX0pO3JldHVybiBkZWxldGUgZy5zY3JlZW5Ub3AsZGVsZXRlIGcuZW5hYmxlRGVidWcsX191bmlDb25maWcuZGFya21vZGV8fGRlbGV0ZSBnLnRoZW1lLCgwLHMuc29ydE9iamVjdCkoZyl9fSxmOGNkOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCI1OTI2IiksaT1SYW5nZUVycm9yO3QuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1yKHQpO2lmKGU8MCl0aHJvdyBpKCJUaGUgYXJndW1lbnQgY2FuJ3QgYmUgbGVzcyB0aGFuIDAiKTtyZXR1cm4gZX19LGZhMjE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuLnIoZSk7dmFyIHI9bigiNGJhZiIpLGk9bi5uKHIpO2Zvcih2YXIgYSBpbiByKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24odCl7bi5kKGUsdCwoZnVuY3Rpb24oKXtyZXR1cm4gclt0XX0pKX0oYSk7ZVsiZGVmYXVsdCJdPWkuYX0sZmI2YTpmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjIzZTciKSxpPW4oImU4YjUiKSxhPW4oIjY4ZWUiKSxvPW4oIjg2MWQiKSxzPW4oIjIzY2IiKSxjPW4oIjA3ZmEiKSx1PW4oImZjNmEiKSxsPW4oIjg0MTgiKSxmPW4oImI2MjIiKSxkPW4oIjFkZGUiKSxoPW4oImYzNmEiKSxwPWQoInNsaWNlIiksdj1mKCJzcGVjaWVzIiksZz1BcnJheSxtPU1hdGgubWF4O3Ioe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohcH0se3NsaWNlOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixmLGQ9dSh0aGlzKSxwPWMoZCksYj1zKHQscCkseT1zKHZvaWQgMD09PWU/cDplLHApO2lmKGkoZCkmJihuPWQuY29uc3RydWN0b3IsYShuKSYmKG49PT1nfHxpKG4ucHJvdG90eXBlKSk/bj12b2lkIDA6byhuKSYmKG49blt2XSxudWxsPT09biYmKG49dm9pZCAwKSksbj09PWd8fHZvaWQgMD09PW4pKXJldHVybiBoKGQsYix5KTtmb3Iocj1uZXcodm9pZCAwPT09bj9nOm4pKG0oeS1iLDApKSxmPTA7Yjx5O2IrKyxmKyspYiBpbiBkJiZsKHIsZixkW2JdKTtyZXR1cm4gci5sZW5ndGg9ZixyfX0pfSxmYzM1OmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bi5kKGUsImIiLChmdW5jdGlvbigpe3JldHVybiByfSkpLG4uZChlLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQoZSwiYSIsKGZ1bmN0aW9uKCl7fSkpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kY3JlYXRlRWxlbWVudCxlPXRoaXMuX3NlbGYuX2N8fHQ7cmV0dXJuIGUoInVuaS1wYWdlLXJlZnJlc2giLFtlKCJkaXYiLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtcmVmcmVzaCIsc3R5bGU6eyJtYXJnaW4tdG9wIjp0aGlzLm9mZnNldCsicHgifX0sW2UoImRpdiIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1yZWZyZXNoLWlubmVyIn0sW2UoInN2ZyIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1yZWZyZXNoX19pY29uIixhdHRyczp7ZmlsbDp0aGlzLmNvbG9yLHdpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMCAwIDI0IDI0In19LFtlKCJwYXRoIix7YXR0cnM6e2Q6Ik0xNy42NSA2LjM1QzE2LjIgNC45IDE0LjIxIDQgMTIgNGMtNC40MiAwLTcuOTkgMy41OC03Ljk5IDhzMy41NyA4IDcuOTkgOGMzLjczIDAgNi44NC0yLjU1IDcuNzMtNmgtMi4wOGMtLjgyIDIuMzMtMy4wNCA0LTUuNjUgNC0zLjMxIDAtNi0yLjY5LTYtNnMyLjY5LTYgNi02YzEuNjYgMCAzLjE0LjY5IDQuMjIgMS43OEwxMyAxMWg3VjRsLTIuMzUgMi4zNXoifX0pLGUoInBhdGgiLHthdHRyczp7ZDoiTTAgMGgyNHYyNEgweiIsZmlsbDoibm9uZSJ9fSldKSxlKCJzdmciLHtzdGF0aWNDbGFzczoidW5pLXBhZ2UtcmVmcmVzaF9fc3Bpbm5lciIsYXR0cnM6e3dpZHRoOiIyNCIsaGVpZ2h0OiIyNCIsdmlld0JveDoiMjUgMjUgNTAgNTAifX0sW2UoImNpcmNsZSIse3N0YXRpY0NsYXNzOiJ1bmktcGFnZS1yZWZyZXNoX19wYXRoIixhdHRyczp7c3Ryb2tlOnRoaXMuY29sb3IsY3g6IjUwIixjeToiNTAiLHI6IjIwIixmaWxsOiJub25lIiwic3Ryb2tlLXdpZHRoIjoiNCIsInN0cm9rZS1taXRlcmxpbWl0IjoiMTAifX0pXSldKV0pXSl9LGk9W119LGZjNmE6ZnVuY3Rpb24odCxlLG4pe3ZhciByPW4oIjQ0YWQiKSxpPW4oIjFkODAiKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIoaSh0KSl9fSxmY2UzOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCJkMDM5IiksaT1uKCJkYTg0IiksYT1pLlJlZ0V4cDt0LmV4cG9ydHM9cigoZnVuY3Rpb24oKXt2YXIgdD1hKCIuIiwicyIpO3JldHVybiEodC5kb3RBbGwmJnQuZXhlYygiXG4iKSYmInMiPT09dC5mbGFncyl9KSl9LGZkYmM6ZnVuY3Rpb24odCxlKXt0LmV4cG9ydHM9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENsaWVudFJlY3RMaXN0OjAsRE9NUmVjdExpc3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVudDowLE1lZGlhTGlzdDowLE1pbWVUeXBlQXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxTVkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNmb3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9fSxmZGJmOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1uKCIwNGY4Iik7dC5leHBvcnRzPXImJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3J9LGZlNjc6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtuKCI3YTgyIik7dmFyIHI9bigiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuYWRkSW50ZXJjZXB0b3I9ZnVuY3Rpb24odCxlKXsic3RyaW5nIj09PXR5cGVvZiB0JiYoMCxvLmlzUGxhaW5PYmplY3QpKGUpP2wodVt0XXx8KHVbdF09e30pLGUpOigwLG8uaXNQbGFpbk9iamVjdCkodCkmJmwoYyx0KX0sZS5pbnZva2VBcGk9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLGk9bmV3IEFycmF5KHI+Mz9yLTM6MCksYT0zO2E8cjthKyspaVthLTNdPWFyZ3VtZW50c1thXTt2YXIgbz1nKHQpO2lmKG8mJk9iamVjdC5rZXlzKG8pLmxlbmd0aCl7aWYoQXJyYXkuaXNBcnJheShvLmludm9rZSkpe3ZhciBzPXAoby5pbnZva2Usbik7cmV0dXJuIHMudGhlbigoZnVuY3Rpb24obil7cmV0dXJuIGUuYXBwbHkodm9pZCAwLFt2KGcodCksbildLmNvbmNhdChpKSl9KSl9cmV0dXJuIGUuYXBwbHkodm9pZCAwLFt2KG8sbildLmNvbmNhdChpKSl9cmV0dXJuIGUuYXBwbHkodm9pZCAwLFtuXS5jb25jYXQoaSkpfSxlLnByb21pc2VJbnRlcmNlcHRvcj12b2lkIDAsZS5yZW1vdmVJbnRlcmNlcHRvcj1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT09dHlwZW9mIHQ/KDAsby5pc1BsYWluT2JqZWN0KShlKT9mKHVbdF0sZSk6ZGVsZXRlIHVbdF06KDAsby5pc1BsYWluT2JqZWN0KSh0KSYmZihjLHQpfSxlLndyYXBwZXJSZXR1cm5WYWx1ZT1mdW5jdGlvbih0LGUpe3ZhciBuPVtdO0FycmF5LmlzQXJyYXkoYy5yZXR1cm5WYWx1ZSkmJm4ucHVzaC5hcHBseShuLCgwLGkuZGVmYXVsdCkoYy5yZXR1cm5WYWx1ZSkpO3ZhciByPXVbdF07ciYmQXJyYXkuaXNBcnJheShyLnJldHVyblZhbHVlKSYmbi5wdXNoLmFwcGx5KG4sKDAsaS5kZWZhdWx0KShyLnJldHVyblZhbHVlKSk7cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7ZT10KGUpfHxlfSkpLGV9O3ZhciBpPXIobigiMjkwOSIpKSxhPXIobigiNTNjYSIpKTtuKCI5OWFmIiksbigiYzk3NSIpLG4oIjE0ZDkiKSxuKCJhNDM0IiksbigiZDNiNyIpLG4oIjE1OWIiKSxuKCJiNjRiIiksbigiZmI2YSIpO3ZhciBvPW4oImRiNmEiKSxzPVsiaW52b2tlIiwic3VjY2VzcyIsImZhaWwiLCJjb21wbGV0ZSIsInJldHVyblZhbHVlIl0sYz17fSx1PXt9O2Z1bmN0aW9uIGwodCxlKXtPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbihuKXstMSE9PXMuaW5kZXhPZihuKSYmKDAsby5pc0ZuKShlW25dKSYmKHRbbl09ZnVuY3Rpb24odCxlKXt2YXIgbj1lP3Q/dC5jb25jYXQoZSk6QXJyYXkuaXNBcnJheShlKT9lOltlXTp0O3JldHVybiBuP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspLTE9PT1lLmluZGV4T2YodFtuXSkmJmUucHVzaCh0W25dKTtyZXR1cm4gZX0obik6bn0odFtuXSxlW25dKSl9KSl9ZnVuY3Rpb24gZih0LGUpe3QmJmUmJk9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKG4pey0xIT09cy5pbmRleE9mKG4pJiYoMCxvLmlzRm4pKGVbbl0pJiZmdW5jdGlvbih0LGUpe3ZhciBuPXQuaW5kZXhPZihlKTstMSE9PW4mJnQuc3BsaWNlKG4sMSl9KHRbbl0sZVtuXSl9KSl9ZnVuY3Rpb24gZCh0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChuLGUpfHxufX1mdW5jdGlvbiBoKHQpe3JldHVybiEhdCYmKCJvYmplY3QiPT09KDAsYS5kZWZhdWx0KSh0KXx8ImZ1bmN0aW9uIj09PXR5cGVvZiB0KSYmImZ1bmN0aW9uIj09PXR5cGVvZiB0LnRoZW59ZnVuY3Rpb24gcCh0LGUsbil7Zm9yKHZhciByPSExLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTtpZihyKXI9UHJvbWlzZS5yZXNvbHZlKGQoYSxuKSk7ZWxzZXt2YXIgbz1hKGUsbik7aWYoaChvKSYmKHI9UHJvbWlzZS5yZXNvbHZlKG8pKSwhMT09PW8pcmV0dXJue3RoZW46ZnVuY3Rpb24oKXt9fX19cmV0dXJuIHJ8fHt0aGVuOmZ1bmN0aW9uKHQpe3JldHVybiB0KGUpfX19ZnVuY3Rpb24gdih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuWyJzdWNjZXNzIiwiZmFpbCIsImNvbXBsZXRlIl0uZm9yRWFjaCgoZnVuY3Rpb24obil7aWYoQXJyYXkuaXNBcnJheSh0W25dKSl7dmFyIHI9ZVtuXTtlW25dPWZ1bmN0aW9uKGkpe3AodFtuXSxpLGUpLnRoZW4oKGZ1bmN0aW9uKHQpe3JldHVybigwLG8uaXNGbikocikmJnIodCl8fHR9KSl9fX0pKSxlfWZ1bmN0aW9uIGcodCl7dmFyIGU9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3Qua2V5cyhjKS5mb3JFYWNoKChmdW5jdGlvbih0KXsicmV0dXJuVmFsdWUiIT09dCYmKGVbdF09Y1t0XS5zbGljZSgpKX0pKTt2YXIgbj11W3RdO3JldHVybiBuJiZPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXsicmV0dXJuVmFsdWUiIT09dCYmKGVbdF09KGVbdF18fFtdKS5jb25jYXQoblt0XSkpfSkpLGV9dmFyIG09e3JldHVyblZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBoKHQpP25ldyBQcm9taXNlKChmdW5jdGlvbihlLG4pe3QudGhlbigoZnVuY3Rpb24odCl7dFswXT9uKHRbMF0pOmUodFsxXSl9KSl9KSk6dH19O2UucHJvbWlzZUludGVyY2VwdG9yPW19LGZlODE6ZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7bigiN2E4MiIpO3ZhciByPW4oIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9dm9pZCAwLG4oImM5NzUiKSxuKCJkM2I3IiksbigiMTU5YiIpLG4oIjk5YWYiKSxuKCJhYzFmIiksbigiMDBiNCIpLG4oIjE0ZDkiKSxuKCI1MzE5Iik7dmFyIGk9cihuKCI4NzUxIikpLGE9cihuKCJmMWNhIikpLG89cihuKCI0N2RiIikpLHM9e2ZvcndhcmQ6IiYjeGU2MDA7IixiYWNrOiImI3hlNjAxOyIsc2hhcmU6IiYjeGU2MDI7IixmYXZvcml0ZToiJiN4ZTYwNDsiLGhvbWU6IiYjeGU2MDU7IixtZW51OiImI3hlNjA2OyIsY2xvc2U6IiYjeGU2NTA7In0sYz17bmFtZToiUGFnZUhlYWQiLG1peGluczpbby5kZWZhdWx0XSxwcm9wczp7YmFja0J1dHRvbjp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITB9LGJhY2tncm91bmRDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiJ0cmFuc3BhcmVudCI9PT10aGlzLnR5cGU/IiMwMDAiOiIjRjhGOEY4In19LHRleHRDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2ZmZiJ9LHRpdGxlVGV4dDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sZHVyYXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IjAifSx0aW1pbmdGdW5jOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIifSxsb2FkaW5nOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdGl0bGVTaXplOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIxNnB4In0sdHlwZTp7ZGVmYXVsdDoiZGVmYXVsdCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybi0xIT09WyJkZWZhdWx0IiwidHJhbnNwYXJlbnQiLCJmbG9hdCJdLmluZGV4T2YodCl9fSxjb3ZlcmFnZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiMTMycHgifSxidXR0b25zOnt0eXBlOkFycmF5LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX19LHNlYXJjaElucHV0Ont0eXBlOltPYmplY3QsQm9vbGVhbl0sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiExfX0sdGl0bGVJbWFnZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sdGl0bGVQZW5ldHJhdGU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiExfSxzaGFkb3c6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2ZvY3VzOiExLHRleHQ6IiIsY29tcG9zaW5nOiExLHNob3dQbGFjZWhvbGRlcjohMX19LGNvbXB1dGVkOntidG5zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdLG49e307cmV0dXJuIHRoaXMuYnV0dG9ucy5sZW5ndGgmJnRoaXMuYnV0dG9ucy5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgbz1PYmplY3QuYXNzaWduKHt9LHIpO2lmKG8uZm9udFNyYyYmIW8uZm9udEZhbWlseSl7dmFyIHMsYz1vLmZvbnRTcmM9KDAsYS5kZWZhdWx0KShvLmZvbnRTcmMpO2lmKGMgaW4gbilzPW5bY107ZWxzZXtzPSJmb250Ii5jb25jYXQoRGF0ZS5ub3coKSksbltjXT1zO3ZhciB1PSdAZm9udC1mYWNle2ZvbnQtZmFtaWx5OiAiJy5jb25jYXQocywnIjtzcmM6IHVybCgiJykuY29uY2F0KGMsJyIpIGZvcm1hdCgidHJ1ZXR5cGUiKX0nKTsoMCxpLmRlZmF1bHQpKHUsInVuaS1idG4tZm9udC0iK3MpfW8uZm9udEZhbWlseT1zfW8uY29sb3I9InRyYW5zcGFyZW50Ij09PXQudHlwZT8iI2ZmZiI6by5jb2xvcnx8dC50ZXh0Q29sb3I7dmFyIGw9by5mb250U2l6ZXx8KCJ0cmFuc3BhcmVudCI9PT10LnR5cGV8fC9cXHUvLnRlc3Qoby50ZXh0KT8iMjJweCI6IjI3cHgiKTsvXGQkLy50ZXN0KGwpJiYobCs9InB4Iiksby5mb250U2l6ZT1sLG8uZm9udFdlaWdodD1vLmZvbnRXZWlnaHR8fCJub3JtYWwiLGUucHVzaChvKX0pKSxlfSxoZWFkQ2xhc3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNoYWRvdy5jb2xvclR5cGUsZT17InVuaS1wYWdlLWhlYWQtdHJhbnNwYXJlbnQiOiJ0cmFuc3BhcmVudCI9PT10aGlzLnR5cGUsInVuaS1wYWdlLWhlYWQtdGl0bGVQZW5ldHJhdGUiOnRoaXMudGl0bGVQZW5ldHJhdGUsInVuaS1wYWdlLWhlYWQtc2hhZG93Ijp0fTtyZXR1cm4gdCYmKGVbInVuaS1wYWdlLWhlYWQtc2hhZG93LSIuY29uY2F0KHQpXT10KSxlfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5zZWFyY2hJbnB1dCl7dmFyIG49dGhpcy4kcmVmcy5pbnB1dDtuLiR3YXRjaCgiY29tcG9zaW5nIiwoZnVuY3Rpb24odCl7ZS5jb21wb3Npbmc9dH0pKSxuLiR3YXRjaCgidmFsdWVTeW5jIiwoZnVuY3Rpb24odCl7ZS5zaG93UGxhY2Vob2xkZXI9ISF0fSkpLHRoaXMuc2VhcmNoSW5wdXQuZGlzYWJsZWQ/bi4kZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLChmdW5jdGlvbigpe3QuZW1pdCgib25OYXZpZ2F0aW9uQmFyU2VhcmNoSW5wdXRDbGlja2VkIiwiIil9KSk6KG4uJHJlZnMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLChmdW5jdGlvbihuKXsiRU5URVIiPT09bi5rZXkudG9VcHBlckNhc2UoKSYmdC5lbWl0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENvbmZpcm1lZCIse3RleHQ6ZS50ZXh0fSl9KSksbi4kcmVmcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsKGZ1bmN0aW9uKCl7dC5lbWl0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dEZvY3VzQ2hhbmdlZCIse2ZvY3VzOiEwfSl9KSksbi4kcmVmcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwoZnVuY3Rpb24oKXt0LmVtaXQoIm9uTmF2aWdhdGlvbkJhclNlYXJjaElucHV0Rm9jdXNDaGFuZ2VkIix7Zm9jdXM6ITF9KX0pKSl9fSxtZXRob2RzOntfYmFjazpmdW5jdGlvbigpezE9PT1nZXRDdXJyZW50UGFnZXMoKS5sZW5ndGg/dW5pLnJlTGF1bmNoKHt1cmw6Ii8ifSk6dW5pLm5hdmlnYXRlQmFjayh7ZnJvbToiYmFja2J1dHRvbiJ9KX0sX29uQnRuQ2xpY2s6ZnVuY3Rpb24oZSl7dC5lbWl0KCJvbk5hdmlnYXRpb25CYXJCdXR0b25UYXAiLE9iamVjdC5hc3NpZ24oe30sdGhpcy5idG5zW2VdLHtpbmRleDplfSkpfSxfZm9ybWF0QnRuRm9udFRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuZm9udFNyYyYmdC5mb250RmFtaWx5P3QudGV4dC5yZXBsYWNlKCJcXHUiLCImI3giKTpzW3QudHlwZV0/c1t0LnR5cGVdOnQudGV4dHx8IiJ9LF9mb3JtYXRCdG5TdHlsZTpmdW5jdGlvbih0KXt2YXIgZT17Y29sb3I6dC5jb2xvcixmb250U2l6ZTp0LmZvbnRTaXplLGZvbnRXZWlnaHQ6dC5mb250V2VpZ2h0fTtyZXR1cm4gdC5mb250RmFtaWx5JiYoZS5mb250RmFtaWx5PXQuZm9udEZhbWlseSksZX0sX2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5mb2N1cz0hMH0sX2JsdXI6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzPSExfSxfaW5wdXQ6ZnVuY3Rpb24oZSl7dC5lbWl0KCJvbk5hdmlnYXRpb25CYXJTZWFyY2hJbnB1dENoYW5nZWQiLHt0ZXh0OmV9KX0sX2NsZWFySW5wdXQ6ZnVuY3Rpb24oKXt0aGlzLnRleHQ9IiIsdGhpcy5faW5wdXQodGhpcy50ZXh0KX19fTtlLmRlZmF1bHQ9Y30pLmNhbGwodGhpcyxuKCJhOWFhIikpfSxmZjIyOmZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7bigiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9clt0XTtlfHwoZT17aWQ6MSxjYWxsYmFja3M6T2JqZWN0LmNyZWF0ZShudWxsKX0sclt0XT1lKTtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBlLmNhbGxiYWNrc1t0XX0scG9wOmZ1bmN0aW9uKHQpe3ZhciBuPWUuY2FsbGJhY2tzW3RdO3JldHVybiBuJiZkZWxldGUgZS5jYWxsYmFja3NbdF0sbn0scHVzaDpmdW5jdGlvbih0KXt2YXIgbj1lLmlkKys7cmV0dXJuIGUuY2FsbGJhY2tzW25dPXQsbn19fTt2YXIgcj17fX19XSk7"}},"time_used":830,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":830,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T09:12:02.483Z","timestamp":1785143522483,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: retail-shopping.shop\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nPriority: u=0, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:05 GMT\r\ncontent-type: text/html\r\ncontent-length: 795\r\nlast-modified: Tue, 09 Jun 2026 09:29:41 GMT\r\netag: \"6a27dd05-31b\"\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: MISS\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":795,"size_decoded":1246,"mime_type":"text/html","magic":"HTML document, ASCII text, with very long lines (509)","md5":"c6f62b641c84c2dda59245212211c877","sha1":"d0ae903e784bb8f711d8c0e799c1164a568cce76","sha256":"8c80452bdc95343085dbfdfcc0b1342d1aa19f1e6fe0c23269649b013d2bbc0a","sha512":"ee3c8f5a7ab64253b7ecadef73d63c802401964dd8af3582876150ab1fadb7dabef78483b11e06a4e37366628ae7b1a8a216f0ff6bdfb39d6305ee16449d3c31","ssdeep":"","tlshash":"0901f1c21c20f54c1710859178b6e51e89964ab5ad909c207cdc2efc5be1b8dde1fc14","first_seen":"2026-07-17T10:51:36.425519Z","last_seen":"2026-07-27T14:18:45.085175Z","times_seen":4,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz1lbj48aGVhZD48bWV0YSBjaGFyc2V0PXV0Zi04PjxtZXRhIGh0dHAtZXF1aXY9WC1VQS1Db21wYXRpYmxlIGNvbnRlbnQ9IklFPWVkZ2UiPjx0aXRsZT5SRVRBSUwtU0hPUFBJTkc8L3RpdGxlPjxzY3JpcHQ+dmFyIGNvdmVyU3VwcG9ydCA9ICdDU1MnIGluIHdpbmRvdyAmJiB0eXBlb2YgQ1NTLnN1cHBvcnRzID09PSAnZnVuY3Rpb24nICYmIChDU1Muc3VwcG9ydHMoJ3RvcDogZW52KGEpJykgfHwgQ1NTLnN1cHBvcnRzKCd0b3A6IGNvbnN0YW50KGEpJykpCiAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCc8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2VyLXNjYWxhYmxlPW5vLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIG1pbmltdW0tc2NhbGU9MS4wJyArIChjb3ZlclN1cHBvcnQgPyAnLCB2aWV3cG9ydC1maXQ9Y292ZXInIDogJycpICsgJyIgLz4nKTwvc2NyaXB0PjxsaW5rIHJlbD1zdHlsZXNoZWV0IGhyZWY9L2g1L3N0YXRpYy9pbmRleC45NzQ2NWU3Yi5jc3M+PC9oZWFkPjxib2R5Pjxub3NjcmlwdD48c3Ryb25nPlBsZWFzZSBlbmFibGUgSmF2YVNjcmlwdCB0byBjb250aW51ZS48L3N0cm9uZz48L25vc2NyaXB0PjxkaXYgaWQ9YXBwPjwvZGl2PjxzY3JpcHQgc3JjPS9oNS9zdGF0aWMvanMvY2h1bmstdmVuZG9ycy45OWQ1OGVlZS5qcz48L3NjcmlwdD48c2NyaXB0IHNyYz0vaDUvc3RhdGljL2pzL2luZGV4LjA0NTM5ZDMwLmpzPjwvc2NyaXB0PjwvYm9keT48L2h0bWw+"}},"time_used":2729,"timings":{"blocked":-1,"dns":147,"connect":267,"send":0,"wait":709,"receive":0,"ssl":553},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/icon/tab/48.png","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:06.958Z","timestamp":1785143526958,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/icon/tab/48.png HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: image/png\r\ncontent-length: 3504\r\nlast-modified: Tue, 09 Jun 2026 09:23:17 GMT\r\nvary: Accept-Encoding\r\netag: \"6a27db85-db0\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":3504,"size_decoded":4060,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"40f7c0c9cd3fe3c54aeafa0ed96b2fc2","sha1":"b602bc0993db7b425db77d3daddd26a4d45c89d8","sha256":"1fafebdaf311841e93a1c578f5509386319eb0ddd81b0898e8536b7fe07da756","sha512":"2d61099bb621b73f99ebc2c369d245278ad9cc88e6b11fca0bec7ae00cc0d445bb7761c5469f717685873a8882d66b38cb80d7c2beb5e27da1444da87f2cc9d1","ssdeep":"","tlshash":"5c717e2034f097a8b65e24a04ab7b8c4dfe2354f6e1edd6b4ced29069871c3035ecc05","first_seen":"2026-02-01T06:56:24.375394Z","last_seen":"2026-07-27T14:18:45.06769Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":281,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":281,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/favicon.ico","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:07.249Z","timestamp":1785143527249,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /favicon.ico HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\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/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: image/x-icon\r\ncontent-length: 67646\r\nlast-modified: Tue, 09 Jun 2026 09:28:18 GMT\r\netag: \"6a27dcb2-1083e\"\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: MISS\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":67646,"size_decoded":68104,"mime_type":"image/x-icon","magic":"MS Windows icon resource - 1 icon, -128x-128, 32 bits/pixel","md5":"fe1e4084f49a4431a693bdac1fe0eeff","sha1":"b0c9d79b24081585017c9deea54316a5d9262481","sha256":"df6068841aa9672293ed2e219aab6b33ee100412f3cc02c274092f646d888f8e","sha512":"a395d19b67f2c06607e973ce348dd58bfcf45dd4cd80f474c5084ef61428e0301e8111549832ff014626db98d7478f3b86dffa3dcd11907f3e3597c2e71c746c","ssdeep":"384:PASQAAkiHMIinCeK1VX5IcgHR2/DBhxbKBaRWnqKoc83AReUiDXlZEKzV:fAkiyws0uzo5DXRV","tlshash":"7d63869139b677d6d2b1db34e63c94bc6ad31c10b4ba938adda4beb50b368407b30531","first_seen":"2026-07-17T10:51:36.428061Z","last_seen":"2026-07-27T14:18:45.066581Z","times_seen":4,"resource_available":false,"data":"AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABACUWAAAlFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8APn5+QD+/v4T/v7+Pv///3j///+x////1P///+7////+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P////b////uv///4f///9L/v7+G/39/QL9/f0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/gb+/v4y////ff///8X////u/////f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////P////S////j////0P+/v4M////AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP7+/gj+/v49////n////+r/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8////7b+/v5T/v7+Evz8/AD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39APz8/AL+/v45////qf///+7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f////D/v7+Uf39/Qj+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QD9/f0E/v7+af///+j////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0////jv7+/g7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+Ev7+/ob////x///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6////pv7+/iP///8A/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD19fUA/v7+AP7+/hv///+o/////f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yP7+/jT+/v4A/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD+/v4h////t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1f///z7///8A/Pz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+Gv///7T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1f7+/jT+/v4A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+AP7+/g////+j////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////x/7+/iT///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gD8/PwC/v7+e/////v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////pv7+/g7+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0Atra2AP7+/ln////t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6////jf39/Qj+/v4AAAAAAAAAAAAAAAAAAAAAAP7+/gD+/v4s////3f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z/v7+Uf///wD9/f0AAAAAAAAAAAD9/f0A+/v7A////5f////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////C/f39Ev7+/gAAAAAAAAAAAP7+/gD+/v4r////4v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f+/v5T////APj4+AD9/f0A////AP///4X//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7X+/v4M/v7+AP7+/gD+/v4d////1///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8v7+/kL///8A////AP7+/lv////7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////jv///wD9/f0F////pf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Q/v7+G/7+/iD////Y//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////L+/v5K/v7+Tv////T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f/+//7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4T///9////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//7//v/+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////uP///6T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/b1/9bU0P/8/fz////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Z////wv////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Xz8/+di4f/emRg//j49/////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////H////W///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39vb/kYF7/z4XCv9ZOjL/6unn/////////v////7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///+H/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+fj4/5qNiP9AHA//PRMD/0YnG//U0c/////////+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/+hk4//QR0Q/z0UBf8+FQX/PhkM/7uwrP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f3/qqCe/0IgFP89FAT/PhUG/z4VBv88EwT/nIiB//////////7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/7Oqp/9GJhr/PBQD/z4WBf8+FgX/PhYF/zsSAf93YFf/+/v5/////v////7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v+6r6v/SSof/zwUA/8+FgT/PhYE/z4WBP8+FgT/PBMC/1o+M//t6+j//////////v////////////////////////////////////////////////////////////////////////////////////////////7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wri1/00rH/88FAL/PhYE/z4WBP8+FgT/PhYE/z4WBP89FQP/RiYa/9XQzf/////////+///////////////////////////////////////////////////////////////////////////////////////+/v7//v7+/9rW0//Burb/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//Cu7f/wru3/8K7t//CvLf/wbu2/9nW1P/9//7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////87Ixf9TMyn/PBMC/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP89GAz/t6+q//////////7////////////////////////////////////////////////////////////////////////////////////////////Y09H/Vzwz/zwbDv89HA//PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/z0dDv89HQ7/PR0O/zscDf9EKyL/w7u5////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////h3tz/ZkxE/zsTA/8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/zsTBf+YjYb//////////v//////////////////////////////////////////////////////////////////////////////////////8O7u/3hjXf86EgT/PhUF/z4VBf8+FgT/PhYD/z4WA/8+FgP/PhYE/z4WBP8+FgP/PhYD/z4WA/8+FgP/PhYD/z4WBP8+FgP/PhYD/z4WA/8+FgP/PhYD/z4WA/8+FgP/PhYD/z4WA/8+FgP/PhYD/z4WA/89FQP/OhcH/5GBfP/7+vr////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0szJ/2RKQf88FAb/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/OxIB/3hnXf/8/Pn////+//////////////////////////////////////////////////////////////////////////////////n39/+Qfnn/PBcJ/z4VBv8+FQb/PhYF/z4WBP8+FgP/PhYE/z4WBP8+FQX/PhUF/z4WBP8+FgP/PhYE/z4WBP8+FgX/PhUF/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PRYE/zkUBP94ZFz/8e/u/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9PNyf9ZPDP/OxEF/z4VBv8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP88EwH/YEQ4/+/u6v/////////////////////////////////////////////////////////////////////////////////9/Pz/opSQ/z8dEP88FAX/PhUG/z4VBv8+FgT/PhYE/z4WA/8+FgT/PhYE/z4VBv8+FQX/PhYE/z4WA/8+FgT/PhYE/z4VBf8+FQb/PhYF/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP86FAP/Z05F/+Xg3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Z09H/YEA3/zwRBf8+FAf/PhUG/z4WBP8+FgT/PhYE/z0VA/89FQP/PhYE/z4WBP8+FgT/PhYE/z4UA/9QKRz/3NTT/////////////////////////////////////////////////////////////////////////////////7arqP9FJBj/OxQE/z0VBv8+FQb/PhUG/z0WBP89FgP/PRYD/z4VBP8+FQT/PhUF/z4VBf8+FQT/PhYD/z4VA/8+FQT/PhUF/z4UBv8+FQT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP89FwX/OxUD/1c7L//Wz83////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3NjX/2JJQP87EwT/PhUG/z4VBv8+FQX/PhYE/z4WBP88FQT/Ricb/0oqHv89FQT/PRYE/z4WBP8+FgT/PxUD/0IaCv++srD////////////////////////////////////////////////////////////////////////////JwsD/TC8k/zsUBf89FgX/PRYF/z4VBf89Fgb/PRYF/zsVBf8/Gg7/QBsR/0AbEf9AGxH/QBsR/0AbEf9AGxD/QBsQ/0AbEf9AGxH/QBsR/z8bEf8/HA7/PhcF/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/zwVA/9KKx7/xLu5/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Dd2/9mT0b/OxQD/z4WBP8+FgX/PhYE/z4WBP8+FgT/PBUD/0cmG/+zqKP/hXNr/zkSA/89FgT/PhYE/z4WBP8/FQT/PRMD/5yLhv//////////////////////////////////////////////////////////////////////08zL/1o+Nf87FAT/PRYG/z4WBP8+FgT/PhYE/z0WBf88Fgj/d2Nb/7q1sv/Aurj/wru4/8K7uP/Cu7j/wru4/8K7uP/Cu7j/wru4/8K7uf/Cu7n/w727/4h2bv8+GAj/PhYE/z4WBP8+FgT/PhYE/z4WBP89FQP/QiAR/66inv/+/v7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////h3t3/alNK/zsUA/8+FgT/PhYE/z4WBP8+FgT/PhYE/zwVA/9EIhX/rqCb/////v+pnpf/OxUG/z0WBP8+FgT/PhYE/z8VBP88EgH/eWRa//r7+v///////////////////////////////////////////////////v7//////9fRz/9aPjP/OxQD/z4WBP8+FgT/PhYE/z4WBP8+FgT/OhMD/25VTv/q5+f////////////////////////////////////////////////////////////a1NP/Wzwz/zwTBP8+FgT/PhYE/z4WBP8+FgT/PhYD/z0ZCP+Xh4D/+vr5///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////5ODe/2xVS/87FQT/PhYE/z4WBP8+FgT/PhYE/z4WBP89FQP/QR4Q/6SWkP/8+/n//////8e9uP9BHBD/PRUD/z4WBP8+FgT/PxUE/z4TAf9fQjb/7uzr///////////////////////////////////////////////////////n4+L/a1FG/zwUAv8+FgT/PhYE/z4WBP8+FgT/PhYE/zsTAv9cPzb/3dfX///////+/v7/6Oj3/9vb9f/c3PX/3Nz1/9zb9f/c2/X/3Nz1/9zc9f/d3fb/0s7Y/2ZPR/86EgP/PhUF/z8VBP8+FgT/PhYE/z4WBP86FQT/fmtj//Px8P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+nn5f9uWE7/OxQD/z4WBP8+FgT/PhYE/z4WBP8+FgT/PRUE/0AdEP+dkIr/+vn3/////f/39PH/rpqU/0YhFf89FQP/PhYE/z4WBP8/FQT/QBQC/0soGv/X0tH/////////////////////////////////////////////////8/Lx/3xqY/87FAT/PxYE/z4WBP8+FgT/PhYE/z4WBP88FAP/TCwg/8rBv//////////9/8/M8P9GPtr/KyDY/ywh2P8sIdj/LCHY/ywh2P8sIdj/LSDa/zUkx/9BJUn/PBUE/z4VBP8/FQT/QBUE/z4WBP8+FgT/OhQD/2dRSP/n5OT/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39fT/iXhv/zoWBf8+FgT/PhYE/z4WBP8+FgT/PhYE/zwVBP87Fgr/hHRv//b29P////3//Pv4/8m6tf+afXX/UC0h/zwUA/8+FgT/PhYE/z8VBP9BFQP/PhoL/7u1s//////////////////////////////////////////////+/v+onJj/PBoM/z0VA/8+FgT/PhYE/z4WBP8+FgT/PhUD/zsYCv+ej43//v7+/////v/n5vX/W1He/w4A1f8TANT/EwDV/xMA1v8TANb/EwDW/xMA1/8WA9D/Kg1o/z0UBv8+FgP/PhYE/z8VBP9AFQT/PRYE/zsUAv9UOi//zsnI///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8e/t/5ODe/9AHAz/PhUD/z4WBP8+FgT/PhYE/z4WBP89FgT/PhgM/35pZP/t6+n////9//38+f/PxL//oIZ+/5+Cef9ePzT/OxQC/z4WBP8+FgT/PxUE/z8VBP86FAT/n5GM//////////////////////////////////7+/v//////wLe0/0gpHf88FAP/PhYE/z4WBP8+FgT/PhYE/z4WBP86FAT/f2xn//Px8v//////6er5/2Ba3/8UBNb/EwDV/xQA1f8UANX/FADV/xQA1f8UANb/GAPP/ysQZ/87Fgv/QBUE/0AVBP9AFQT/QBUE/z8VBP87FAL/TS4h/8nBvv///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3s6/99bGP/PBkK/z0VA/8+FgT/PhYE/z8WBv8/Fgf/PRUG/zwWCP+JdnD/8fDt/////f/9/fr/1MfD/6OHgP+fgXj/oYR7/3FTSf88FQT/QBYD/0AVBP9AFQT/PxUE/zkTAf9+aGD/+/z8//3+/v/9/v7//v7+//7+/v/+/v7//////9HLyP9VOS7/OxQC/z4WBP8+FgT/PhYE/z4WBP8+FgT/OxMD/2pSS//o5eX///////Tz+/90buT/FATY/xMA1v8UANX/FADV/xQA1f8UANX/FADX/xUC1f8oDHr/PhQL/0AVA/8/FQT/PhYE/z4WBP8+FgT/PRUD/0EiFf+yqKT/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////w7uz/gHBl/zsXCP88FQX/PhYE/z4WBP8+FgT/PhYH/z0WBv86Fwr/gnBo/+7v7P////3//v37/9bKxv+jiID/n4F4/5+Cef+hhHv/hGZc/0AaCP9AFgP/QBUE/0AVBP8/FQT/PBMC/19FOv/u7u3//P////z+/v/9/v7//v7+///////h3tz/Y0k//zsTAv8+FgT/PhYE/z4WBP8+FgT/PhYE/zoTA/9ZPjb/29XV///////7+vz/kIrm/xoK1/8TANb/FADV/xQA1f8UANX/FADV/xQA1f8VAtf/JQuM/zwUE/9AFgL/PxUE/z4WBP8+FgT/PhYE/z4WBP89Gwz/mo2I//v7+v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6yhnv85Fgj/PBQF/zwVBv8+FgT/PhYE/z4WBP89Fgb/OxYI/3xrYf/u7un//v/9//7+/P/azsv/pYmC/56BeP+fgnn/n4J5/6CDev+SdGv/SSMU/0AVA/9AFQT/QBUE/0AVBP8+EwL/Tioc/9rW0v/9/////P7+//3+/v//////7evq/3NeVf87FAP/PhYE/z4WBP8+FgT/PhYE/z4WBP87EwP/TC4k/8nBwf///////v7+/6im7P8jFNn/EgDW/xQA1f8UANX/FADV/xQA1f8UANX/FQLX/yMJm/84Exv/PhYD/z8WBP8+FgT/PhYE/z4WBP8+FgT/PBYG/4Nwav/18/P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ubCu/zsZDv87FQb/PBUG/z0WBP8+FgT/PRYE/zsVB/92YFb/7Ork//7//f/7+/n/2czK/6eKhP+fgXj/n4J5/5+Cef+fgnn/n4J5/5x+df9WMSb/PxQF/z8VBf8+FQX/PhYE/z4VA/9BGwz/vbSv//3////8/v7////+//b19P+Idm//PBYH/z4WA/8+FgT/PhYE/z4WBP89FQX/OxQE/0MjGP+1qqj//v///////v/BwPD/MCLY/xIA1v8UANX/FADV/xQA1f8UANX/FADV/xQB2P8fCKv/ORIm/z8WAv8+FgT/PhYE/z4WBP8+FgT/PhYE/zsUA/9tVk7/6+fm////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Y1NP/RSgf/zoUBv88FQb/PRYF/z4WBP88FAL/UDMl/93Z0v////7/+/z6/9HBv/+lhoD/oYF5/5+Cef+fgnn/n4J5/5+Cef+fgnn/oIN6/2VDOf88FAX/PRUG/z4VBf8+FgT/PhYE/zwUA/+cjYb//f////3//v/7+/r/nI+J/z4bDv89FQT/PhYE/z4WBP8+FgT/PhYE/zwUBP8+HBD/oJGO//z8/P//////19f0/0M22/8SANb/FADW/xQA1f8UANX/FADV/xQA1v8UANf/HAa3/zUSNv9AFQP/PxUE/z4WBP8+FgT/PhYE/z4WBP87EwL/W0A1/9vW1f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+7s7P9YQDn/OBIE/zwVBv89FgX/PhYE/z0UA/9PLyH/393W//7////y8O//rZGM/6KAev+hgnr/n4J5/5+Cef+fgnn/n4J5/5+Cef+hhHv/dFZM/zkVB/88FQb/PRYF/z4WBP8+FgT/PBIB/3tmXf/5/fr/+fr5/6ugmv9EIxb/PBUF/z4WBf8+FgT/PhYE/z4WBP89FQP/Qh4R/52Oiv/39vb//////+np+f9bUN//EwDW/xQA1v8UANb/FADV/xQA1f8UANb/FQDZ/xsGwf8zEUL/PxcE/z8WBP8+FgT/PhYE/z4WBP8+FgT/PBQC/0stIf/Iwb3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/3RgW/83EQP/PBUG/z0WBP8+FgT/PhUE/z8eDv/Cvrb///////f4+P+1nJj/n394/6CBev+fgnn/n4J5/5+Cef+fgnn/n4J5/6GEe/+FaF//OxkM/zwVBf89FgX/PhYE/z4WBP89EwH/YEU6/+3w7f+xqKP/QiEU/z0VBP89FgX/PhYE/z4WBP8+FgT/PhYE/zwWCP+RgHz/+fj4///////09fz/dXDi/xUE1f8UANb/FADW/xQA1f8UANX/EwDW/xQA2P8ZA87/Lg5V/z4VBP8/FgT/PhYE/z4WBP8+FgT/PhYE/z0VA/9AIBP/sKej//7+/v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////kYJ+/zgSBP89FgT/PhYE/z4WBP8+FgT/OhUF/6aakv///////P3+/76sqf+df3f/n4F5/5+Cef+fgnn/n4J5/5+Cef+fgnn/oIN6/5J1bP9DIhf/OxQE/z0WBP8+FgT/PhYE/z4UAv9SMyf/vLOt/1U2LP87FAL/PhYE/z4WBP8+FgT/PhYE/z4WBP87EwL/alFK/+zo6f///////////6ak7P8dD9X/EwDV/xQA1f8UANX/FADV/xQA1f8SANf/FQLY/yoLgP87FQr/PRYD/z4WBP8+FgT/PhYE/z4WBP8+FgT/OxYG/4V2cP/5+Pj///////7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+xp6X/PBcK/z8VBP8+FgT/PhYE/z4WBP88EgL/hm9m//v9/P/+////zcPA/56BeP+ggnn/n4J5/5+Cef+fgnn/n4J5/5+Cef+fgnn/noF4/109Mv87EwL/PhYE/z4WBP8+FgT/PhUD/0UeD/9XNCf/PhcG/z4WBP8+FgT/PhYE/z4WBP8+FgT/PBMC/1k6MP/X0M/////////////Fw/L/LyTY/xEA1f8UANX/FADV/xQA1f8UANX/FADV/xUB2P8iDJP/OhQY/z4WA/89FgT/PhYE/z4WBP8+FgT/PhYE/zkTA/9vW1L/7Oro/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HLyv9HIhn/QBQE/z4WBP8+FgT/PhYE/z4SA/9kRz3/7/Dv///////g2tj/oIV8/6CDef+fgnn/n4J5/5+Cef+fgnn/n4J5/5+Cef+hhXv/dFVJ/z0UBP8+FQT/PhYE/z4WBP8+FgT/PhYE/z0UAv8+FgT/PhYE/z4WBP8+FgT/PhYE/z0UAv9MKyD/xru6///////+////0tLz/0Y52v8RANb/EwHV/xQA1f8UANX/FADV/xQA1f8VAdX/JAqU/zgVHv8/FgL/PhYE/z4WBP8+FgT/PhYE/z4WBP86FAX/aldP/+Dd2///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6ufm/1k4Mv8/EgX/PhYE/z4WBP8+FgT/PxQE/04rIP/b2Nb//////+3s6/+kkIn/oIN4/5+Cef+fgnn/n4J5/5+Cef+fgnn/n4J5/6GEe/+EZlz/QBkL/z4VBf8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP89FAP/RiEV/7OmpP/+/v7//////9TS9v9CN9v/FAHV/xQB1P8UAdT/FADV/xQA1f8UAdT/FQHW/yQJnf83FBz/PRcC/z4WBP8+FgT/PhYE/z4WBP8+FgT/OhQD/2RORP/h4N3////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4+Pf/cFdS/z4SBv8+FgT/PhYE/z4WBP9AFQX/QRsP/722s///////+/v7/7ytqP+fgnj/n4J5/5+Cef+fgnn/n4J5/5+Cef+fgnn/oIN6/5F1av9HIhX/PhQF/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhUD/z8ZDP+cjIj/+/n6///////m5ff/VUze/xAA1v8UANX/FADU/xQA1f8UANb/FADV/xQB1/8gCK3/NhMo/z4XAv8/FwP/PhYE/z4WBP8+FgT/PhYE/zsUBP9OMCX/0c3I///////+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+PfXn/PRMI/z8VBP8+FgT/PhYF/0AVBv87FAX/mouG////////////0cfF/56Def+fgnn/n4J5/5+Cef+fgnn/n4J5/5+Cef+fgnn/m391/1QxJv88EwX/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4VBP89FQb/hXFs//Xz8///////8PD7/29m4v8UA9f/EwDX/xQA1f8UANX/FADV/xQA1v8UANn/Gwa+/zMSO/8/GAH/PxcE/z4XBP8+FgT/PhYE/z4WBP8+FgT/PBQE/0gnG/+hko//8fDt/////////v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////66ioP86FQr/QBUG/0AVBv9AFQb/QBUG/zsSAv95Yln/+vr6///////j3Nv/ood//5+Cef+fgnn/n4J5/5+Cef+fgnn/n4J5/5+Cef+fhHr/Y0I5/zwSBv8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PBMD/3JaUv/t6un///////j4+v+IgOb/GAfX/xIA2P8TAdf/FADV/xQA1f8UANX/FADX/xsEx/8zD0v/PxcE/z4YA/89GAT/PRcE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PBUD/z8YCf9uVUr/ysPB//7+/v///v////7////+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0czK/0QpH/8/FAX/QBUG/0AVBv9AFQb/PRMD/1pAM//s6+n///////Ht7f+oj4v/noF5/5+Cef+fgnn/n4J5/5+Cef+fgnn/n4J5/6CFe/93Vkz/PhQI/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/zwTAv9jRjz/4dvb///////8/P3/oZvp/yEQ1/8SAdb/FAHX/xQA1/8UANX/FADV/xQA1v8XAdH/Lg1o/0EWC/9BGAH/PhgB/z0YA/89FwT/PRYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PxUD/zsSAf9MLSD/tKqm//z8/P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////08/L/ZlJK/zsSA/8/FQb/PxUG/0AVBv8/FQX/SCga/9XQzf//////+vn5/7SfnP+egHj/n4J5/5+Cef+fgnn/n4J5/5+Cef+fgnn/oIR7/4hoXv9BGQ3/PhUE/z4WBP8+FgT/PhYE/z4WBP88FAP/VjUq/9DIxv///////v/+/7O17P8rHNn/EwDX/xUA2P8VANj/FQDX/xQA1f8UANX/FADV/xYB0P8gB6z/JguP/y4OaP82Ejj/PBUS/z4WBP8+FgP/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/zwUAv9FJRb/qJ+Z//z7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Fc2//ORAD/z4UB/8+FQb/PhUF/z8WBf9AGwv/u7Cs///////+/v//v7Gv/5yAeP+egnr/noJ6/5+Cef+fgnn/n4J5/5+Cef+gg3r/kXRr/0chFP8+FQP/PhYE/z4WBP8/FQT/PhQC/00oG//Ct7P////////////Z3PT/QTjY/xAA1/8UANf/FADW/xQA1v8UANb/FADV/xQA1f8UANX/FADW/xQA2f8UANn/EwHa/xcEzf8iC6P/LxBY/z0TGP8/FAL/PRUD/zwWBP89FgT/PhYE/z4WBP8+FgT/PhYE/zwUAv9GJhf/v7iz///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6eZlv87FAf/PBQH/z0VB/8+FQX/PhYE/zsUAv+aioP///////7////Qx8T/nYJ4/56Ce/+egnr/n4J5/5+Cef+fgnn/n4J5/5+Cef+afXT/Uy4i/z8UA/8+FgT/PxYE/z8UA/9EHQ//rJuW//79/f//////6uz4/2Fa3f8SAdb/EwDY/xQA1v8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADX/xMA2f8WA9P/IQeu/zEOXf83FBT/PBYC/z0WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/zwUA/9XOC//1M3K/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////x7+9/0AeE/88FAb/PBUH/z4VBv8+FQb/OxIC/3hhWP/4+vr//f///+Hc2P+ghnz/noJ6/56Cev+fgnn/n4J5/5+Cef+fgnn/n4J5/5+Cef9iQDT/PhME/z8WBf8/FgT/QBcI/5OAev/5+Pj///////T1/P93ceT/FQTW/xMA1v8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xQA1v8UANn/FgPW/x8Knv8xEjb/PBYE/z4XAv8+FgT/PhYE/z4WBP8+FgT/PhYE/zwTAv9oTkT/5+Xk////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////h3t7/TDAo/zsTBf88FQf/PhUG/z4VBf88EwL/XD8z/+vq6v/9////7u3r/6aPiP+dgXr/noJ6/5+Cef+fgnn/n4J5/5+Cef+fgnn/oYR6/3NUR/8/Fgf/QRYG/z4UBP98ZFz/8e7u///////5+v3/jovn/xkL1v8SANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANb/FAHZ/xsGwP8vEVn/PBUK/z4VBP8+FQX/PhYE/z4WBP8+FgT/PhYE/zoUBf+HdnH/+fn4///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Tz8/9jTUj/ORIE/zwVB/8+FQX/PhYE/z4VA/9HJhf/08/O//7////2+Pn/sJ6c/52Aef+egnr/n4J5/5+Cef+fgnn/n4J5/5+Cef+hhHr/hWZa/0MaDf8/EgX/aE1F/+Xg3///////+Pj9/52Z5/8gE9b/EgDU/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/EwDW/xgEzv8qDXP/PBMQ/z4VBf8+FgT/PhYE/z4WBP8+FgT/PhQE/0MgFP+7sq///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///4Fybf84EgT/PBUG/z4VBf8+FgT/PhYE/z0YB/+zq6f//v////v+///CtLP/nIB6/56Cev+fg3n/n4J5/5+Cef+fgnn/n4J5/6CDev+TdGr/SR8W/1k3Mv/Uzs3///////z8/v+clur/IhDV/xIA0/8UAdT/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/EwDW/xYD0v8qDnX/PhYM/z8XBP8+FgT/PhYE/z4WBP8/FQX/PRID/2JJQP/r6ej/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////pJqX/zkUCP88FQb/PRUF/z4WBP8+FgT/OhMB/5CDfP/9/////f///9TKyv+dgXz/noJ6/56Def+fgnn/n4J5/5+Cef+fgnn/oIN6/5t8cv9lQz3/xLi3//////////z/r67s/ycZ2P8SANP/EwHS/xMB0/8TANT/EwDV/xMA1f8UANX/FQDV/xUA1f8VANb/FQDW/xQA1v8UANX/EwDV/xMA1f8TANX/EwDV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xgEz/8tDmX/PRUL/z8WBP8+FgT/PhYE/z8VBf9AFQX/PBcI/6WZlP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////GwcD/Px8T/zwUBv88FgX/PhYE/z4WBP87EgD/c1tR//f5+f/+////5N/f/6CHgv+dgnr/noN5/5+Cef+fgnn/oIN6/6CDev+gg3n/ood//8zBv//9/f3//////8XE6v81KdD/EgLO/xUFzf8VBc3/FQXN/xUEzf8VBM3/FQTN/xYEzf8ZBM3/GQPM/xkEy/8ZBMv/GATN/xcD0P8UAtb/EgHZ/xIA1v8SAdT/EwHU/xQB1P8UANT/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xkFzf8xDlb/QRUD/0AVBP9AFQb/QBUG/0AVBv88EwL/XkI3/+ro5v/////////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Lg3/9QMij/PhQE/z0WBP8+FgT/PhYE/zwUAf9aOSz/6OPi//7////w8PD/ppKN/56Bef+fgnn/n4J5/5+Cef+gg3r/oIN6/6CEe//Ov7v//fz8///////c2NT/Vj9T/y8OPv8xD0D/MRA//zEQP/8xED//MRA//zEQP/8xED//MhA//zMQP/8zDzz/MxA6/zMQOv8xEED/LhBP/ykObP8eCZ//FwXI/xMC1f8TAdX/FADT/xQA1P8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/EwDX/xwGt/83Eyj/QBYD/0AVBv9AFQb/QBUG/z8VBf8/GQv/sqai//////////7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9PPz/2dMQ/9AEwL/PhYE/z4WBP8+FgT/PhYE/0MeEf++tLH//v////n6+v+0op7/n4B4/5+Cef+fgnn/n4J5/6CDev+egXj/uaWe//n39v//////9PPx/3NeU/86FAD/PhYB/z4WAf8+FgH/PhYB/z4WAf8+FgH/PhYB/z4WAf8+FgH/PhYB/z4WAf8+FgH/PhYB/z4WAf8+FwD/PhYC/zoVDv8xEj//Hwmo/xQC1/8UANT/FADU/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FAHW/ygNdP8/FQb/QBUG/0AVBv9AFQb/QBUG/zwSAv90X1f/+Pf3///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/gm1n/0ATA/8/FgT/PhYE/z4WBP8+FgT/ORME/5ODf//+/////P7//8O1sP+fgHj/ooN6/6GDev+hg3r/oIJ4/6uSiv/q4+H///////////+so5//PRwK/z0VA/8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgP/PhYD/z4WAv83FR3/JQ18/xkDzf8VANb/FQDW/xUA1v8VANb/FADV/xQA1f8UANX/FADV/xQA1f8UANb/HAe2/zcTIv8/FQP/PhYE/z4WBf8+FgT/PhUE/0UmG//JxMH//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+jlpL/QBUH/z8WBP8+FgT/PhYE/z4WBP87EwP/dl1X//n4+f//////1czI/5+Cef+ig3r/ooN6/6CCeP+qkov/4djW/////////////////5uRi/84FQL/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WAv88FQv/LA9d/xsFwv8VANn/FQDX/xUA1v8UANX/FADV/xQA1f8UANX/FADV/xQA1f8WAtX/LA9h/z4VA/8+FgT/PhYE/z4WBP8+FgX/PBQF/5eFgP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8S9uv9EHRD/PxUE/z4WBP8+FgT/PhYE/zwUA/9cOzT/7Ofo///////m4N7/o4h+/6KEef+hg3j/pYyD/9/X1f//////////////////////wLi0/z8cDP8+FgP/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FQX/LQ9c/xYD0f8UANb/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FQDV/xUA2v8hCaH/OhQQ/z4VBP8+FgT/PhYE/z4WBf88EwT/b1VM//f29f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4Nzb/1AvI/8+FAP/PhYE/z4WBP8+FgT/PRUE/0gjGv/Uy8z///////Pw7/+rlYj/oIN3/6KHff/Uycb//v7+///////////////////////d2dn/TSsj/z0UAv8+FgP/PhYD/z4WA/8+FgP/PhYD/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgP/PhYE/z4WBP89FgX/PRYG/z0VBf8+FgT/PhYE/z8VBP89FA//JQmW/xQB2P8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xoFxf82Ey//PhYD/z4WBP8+FgT/PhYF/z4UBf9TNCj/5eHf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z8vL/Y0tC/zwTAv8+FgT/PhYE/z4WBP8+FQT/PxcK/7Sopf//////+vr6/7almf+dgXf/x7ey//z6+/////////////////////////////Dx8f9jSET/OxYH/z4ZCv8+GQr/PhkK/z4ZCv8+GQr/PhgJ/z4YCf89GAn/PRgJ/z0YCf8+GAn/PhgJ/z8ZCv8+GAj/OxQE/zwVBf89Fgf/PBUG/z0WBf8+FgT/PhYE/0AWAf8zEEj/FgTP/xQA1v8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FgLU/zAQVP8+FgH/PhYE/z4WBP8+FgX/PxUG/0QhFP/OxsP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v9/cGr/ORMC/z4WBP8+FgT/PhYE/z8VBP88EwL/kX94//7+///8////w7ev/7eknv/28/P///7//////////////////////////////f39/8jEw/+zqqn/tauq/7Wrqv+1q6r/tauq/7Wrqv+0qqn/s6mo/7Kop/+yqKf/sqin/7OpqP+0qqn/t62r/7OnpP+Ofnf/Sisf/zoVBv87FQb/PBYF/z4WBP8+FgT/QBUD/zsTG/8bCLP/EwDY/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1v8UAdr/LA14/z4VA/8+FgT/PhYE/z4WBf8/Fgf/PRgL/7arp//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6SYlv86FQf/PRYF/z0WBf8+FgT/PxYE/zwTAf9xV07/+PX3//3////k4d//7uro///////+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//+3q6j/QSEU/zsVBf88FgX/PhYE/z4WBP8/FQT/PRUK/yMMlf8VANr/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xQA2v8mCZX/PhUJ/z4WBP8+FgT/PhYF/z8WB/85FAb/npKO/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////x7++/0IeEv89FQb/PRYH/z4WBf8+FgT/PRUC/1c4LP/o4uT//v////3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/t7f9cQzr/ORMD/zwWBf8+FgT/PhYE/z4WBP88FQb/JgyD/xUB2P8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANb/FADa/yIIov89Fg3/PhYE/z4WBP8+FgX/PxYH/zkTBf+Rg33/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////i3t3/TzAm/zwVBf89Fgf/PhYF/z4WBP8+FQP/RCMV/9DIyP///////v7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8vDx/19HP/85EgP/PBYF/z4WBP8+FgT/PhYE/z0VBf8oDIL/EwLY/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1v8UANr/Hwmn/zwVDv8+FgT/PhYE/z4WBf8/Fgf/ORIE/417df/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Py8f9gSUH/OhME/z0WB/8+FgX/PhYE/z4WBP87GAj/tKmm///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////NxsX/SSge/zsUBP88FgT/PhYE/z4WBP8+FgT/PBUH/yQKj/8UAdr/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xQA2v8gCKn/PRUP/z4WA/8+FgT/PhYF/z8WB/85EgT/i3t1/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/31wa/84EwT/PRYH/z4WBf8+FgT/PhYE/zkUAv+LeXT/8Ovu/+zn6f/r5uj/6+bo/+vm6P/r5uj/6+bo/+vm6P/r5uj/6+bo/+rm6P/q5uj/6ubo/+rm6P/q5uf/6ebm/+nl5v/p5eb/6eXm/+nl5v/p5eb/6eXm/+nl5v/p5eb/6eXm/+nm5//m4OH/w7i4/2NIQP88FAT/PRYE/z4WBP8+FgT/PhYE/z4VBP87FRH/IQik/xUA2f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANb/FADa/yIJof8+Fgv/PhYE/z4WBP8+FgX/PxYH/zkTBf+Qgn7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////opqY/zgVCP89Fgb/PhYF/z4WBP8+FgT/PBUD/0UlF/9bPzb/WDsz/1Y5Mf9WOTH/Vjkx/1Y5Mf9WOTH/Vjkx/1Y5Mf9WOTH/VDgw/1Q4L/9UOC//VTgw/1c3L/9WNi7/VjYu/1Y2Lv9WNi7/VjYu/1Y2Lv9WNi7/VjYu/1Y2Lv9WNi7/VjYu/1MyKP9EHxL/PBQD/z4WBP8+FgT/PhYE/z4WBP8+FgT/PRYC/zYRL/8dBMT/FQDV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1v8SANr/IgmV/z0VCP8+FgT/PhYE/z4WBf8/Fgf/OhQG/52Pi//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////FwcD/Ph8U/z0VBv8+FgX/PhYE/z4WBP8+FgT/PRUD/zwTAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PBQC/zwUAv88FAL/PRQC/z4VA/8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP89FQP/Kw5q/xYB2P8VANb/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADW/xkH2v89KH//OxcF/z4WBP8+FgT/PhYF/z8WB/87Fwr/r6Wh/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Lg4P9OMyn/PBQD/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/zgTJP8eCLb/FQDX/xUA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8SANb/OivZ/2ZSYv87FAP/PhYE/z4WBP8+FgX/PRUG/0AfEv/GwL7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9fX1/2hRSv87EQP/PhUE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PRYF/z0WA/86FRP/KAuI/xcB2P8WANb/FQDV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xYE1P95c9D/XEE3/zwSAv8+FgT/PhYE/z0WBf87FQX/TC8k/+Dd2//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////i3hz/zoQBP8+FQX/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PRYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP89FgL/NhQb/yQMjf8WAtT/FADX/xQA1/8UANb/FADV/xQA1f8UANX/FADV/xQA1f8RANT/Rz7e/6Ser/9DIBL/PhUE/z4WBP8+FgT/PRYF/zkTA/9nTkX/9fTz/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+uoZ3/OxYH/z4VBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z0WBP89FgX/PRYF/z0VBf8+FQT/PhUE/z4WBP89FgT/PBYE/zwWBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PhUD/z8WAf9AFgH/PxQM/zUQP/8eCaP/FALW/xMA1v8UANb/FADW/xQA1v8UANX/FADV/xQA1f8UANX/FADW/yET1/+pq+n/fmxi/zsTBf8/Fgb/PhYE/z4WBP89FgT/OBQF/5GBe///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8rDv/9BIBD/PRUD/z4WBP8+FgT/PhYE/z4WBP8+FgT/PRYE/zsWBf88HBH/PyEY/0AeFf9CHhH/PhgN/z4XC/89Fwv/PRcL/z0XC/88Fgz/PBYM/zwWDP88Fgz/PBYM/zwWDP88Fgz/PBYM/zwWDP88Fgz/PBYM/zwWDf88Fg3/PBYM/zsWC/89FBT/OBAp/zEQTv8nDJX/GgTJ/xQB1/8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8SANX/enPn/87Jyv9LKh3/PhUF/z8WBv8+FgT/PhYE/z4WA/9BIRX/w7y6///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2tXS/0gpGv89FQL/PhYE/z4WBP8+FgT/PhYE/z4WBP88FAP/Sise/7Sopf/Uzs3/0szH/6Cbuv8wHKT/IQef/yIJnv8iCZ//IQif/yEIoP8iCaH/Igmi/yIJov8iCaL/Igmi/yIJov8iCaL/Igmi/yIJov8iCaL/Igmi/yEJo/8hCaL/IAmh/yEJqv8cB7v/FgTP/xMB2v8UANf/FADX/xQA1/8UANb/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FAHU/1dO3P/c3fX/kYF5/zwVBf8+FgT/PhYE/z4WBP8+FgT/OxMB/21VTf/y8fD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////r6+f+UhX//OxgJ/z4WBP8+FgT/PhYE/z4WBP8+FgX/PRUE/0EdD/+snpn//v7+///////T1fb/S0Tf/xMB2v8UANj/FADY/xQA2P8VANj/FQDY/xUA2P8VANj/FQDY/xUA2P8VANj/FQDY/xUA2P8VANj/FQDY/xUA2P8UANj/FADY/xQA2f8UANj/FAHY/xQA1/8UANb/FADW/xQA1v8UANb/FADX/xQA1v8UANX/FADV/xQA1f8UANb/FADV/xIA1P9ORN3/3uD5/9DLx/9KKyD/PRUD/z4WBP8+FgT/PhYE/z4WBP88GAn/raGe////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7/rqGd/0EfEf87FAX/PRYE/z4WBP8+FgT/PhUF/z4VBf89Fwn/kH54//n49/////7/5uf3/1RL4P8QANb/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1/8SANX/Rjzd/9PU9v/q6eX/b1lR/zsUA/8+FgT/PhYE/z4WBP8+FgT/PBMC/1o+NP/n5OP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8C3tP9JKRz/PBQD/z0WBf8+FgT/PhYE/z4WBP8+FgT/PBQF/3liXP/w7uz///////L0+f9ybeL/EwPV/xIA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8TANb/FAPV/1NM2f/W1/X/8fDt/3hlXv86FQf/PhYE/z4WBP8+FgT/PhYE/z4WBP88Fgf/oJOO///////+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Tzcr/VTgs/zwUAv8+FgT/PhYE/z4WBP8+FgT/PhYE/zsSAv9mSkL/5ODe///////7/Pz/kI3n/xoK1/8SANX/EwDV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/EgDW/yAP1/91b+H/5eb2//f18/+LeXL/PBcI/z4VBP8+FgT/PhYE/z4WBP8+FgT/OxMC/1xCOP/n5OT///////7+/v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////4+De/2VMQv87EwL/PhYE/z4WBP8+FgT/PhUF/z4VBv88EgP/VjYr/9PMyf/////////9/7Sv7f8qF9j/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FQDU/xUA1P8UANX/FQDU/xUA1P8TANb/EQDW/xQE1v9CONr/rKjs//f3/P/29fP/lYJ7/0AbC/89FQP/PhYE/z4WBP8+FgT/PhYE/z0VA/8/HA7/s6ik///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/u7f93Y1v/OxQE/z4WBP8+FgT/PhYE/z4WBP8+FQX/PBIE/0cmG/++tLD//////////P/NzPL/OyvZ/xQA1v8WAdX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8UANX/FADV/xQA1f8WANT/FQDU/xQA1v8UANX/EwDU/xoL1/8+NNv/j4zo/+Pj+P////7/8O7s/415cv9AGwv/PRUD/z4WBP8+FgT/PhYE/z4WBP8+FgT/ORMD/35qY//29fT//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////x8O//iHhy/z0XCP8+FgT/PhYE/z4WBP8+FgT/PhYF/z0UBP9FJBr/qp+b//39/P////3/4N/0/0pE3f8PANf/EgDW/xMA1v8TANX/EgDV/xIA1f8SANX/EgDV/xIA1f8SANX/EgDV/xIA1f8SANX/EgDV/xIA1f8SANX/EgDV/xIA1f8SANX/EgDV/xIA1f8SANX/EgDV/xIA1f8SANT/EQDU/xIA0/8VAtP/Hg3W/zss2f9vZuL/sLDt/+Pl+P/9/v7//////97X1P94YFf/PRcH/z0VA/8+FgT/PhYE/z4WBP8+FgT/PRYE/zoTA/9eRDv/4d3c///////+/v7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////+Pf3/4l3cf89GQr/PhUD/z4WBP8+FgT/PxUF/z8VBv89FAb/PhkN/6WalP/9/vz//v/9//b4+f+JheD/OzLc/z4z3v8/M93/PzPc/zww2v88MNn/PDDZ/zww2f88MNn/PDDZ/zww2f88MNn/PDDZ/zww2f88MNn/Oy/Z/zou1/86Ltf/Oi7X/zou1/86Ltf/Oi7X/zou1/86Ltj/PDDZ/0Q42v9QQ9v/ZF7g/42I5f+7uOz/4+L2//v7/P////3///////r5+P+zpqL/Vzgt/zsUA/8+FgP/PhYE/z4WBP8+FgT/PhYF/z0WBv86FAX/SSwi/8rEw//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//////+zqKX/QyAT/z0VA/8+FgT/PhYE/z4WBP9AFQb/PxUG/zoSBf98Z1//8/Px/////v/+//3/9/n6/93e9v/d3Pn/3t75/97e+f/e3fn/3dz4/9zc9//c3Pf/3Nz3/9zc9//c3Pf/3Nz3/9zc9//c3Pf/3Nz3/9zc9//c2/f/3Nv2/9vb9v/b2/b/29v2/9vb9v/b2/b/3Nv2/9zb9//e3fj/5OP7/+/s/P/6+v3////8/////v////////////r5+f/a1NH/jXlz/0MgFP87EwP/PhYE/z4WBP8+FgT/PhYE/z4WBP89FgX/OxUF/z4dEP+ilpP//v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////y8LA/08vI/88FAL/PhYE/z4WBP8+FgT/PhYE/0AVBv89EwX/ZUtB/+Th3//////////////////+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/r7/+bi4v+4rqz/e2Ve/00tIv86EwX/PRQF/z4VBv8+FgT/PhYE/z4WBP8+FgT/PRYE/zwVA/8/HQ7/m46K//n5+f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7P/////////////////////////////////////////////////////////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//////9zX1v9cQDb/PBQC/z4WBP8+FgT/PhYE/z4WBP8+FgT/PxQF/0giFf+sn5v/2djY/9fW1f/X1tb/19bW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/U1NT/09TU/9PU1P/T09P/0tPT/9PT0//U0tL/08/P/8/Ix//Evbz/t6yp/56NiP96Ylr/Vjcr/0AbDP87EgH/PBQD/z0VBf8+FQX/PhUF/z4WBP8+FgT/PhYE/z4WBP87EwH/QiAS/6CRi//5+Pj////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s//////////////////////////////////////////////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+///////o5eX/bVRN/zsTA/8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8/FQX/QhkL/0spH/9JKSD/SCkg/0kpIP9IKSD/SCkg/0gpIP9IKSD/SCkg/0gpH/9HKh//Rykf/0cpH/9HKR//Rykf/0cpH/9HKR//Rykf/0cpH/9HKR//Rykf/0cpH/9HKR//Rykf/0YoHv9GKB7/Rige/0YoHf9FJx3/RScd/0UnHf9FJRn/QiEU/z4dEP88GAv/OhME/zsSA/88EwL/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FQP/OxQE/1Q5Lv+0qaX/+/r6/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z//////////////////////////////////////////////////////////////////////////////////////////////////////v7+//7+/v/+/v7//v7+//7+/v//////8vHx/39sZv88FAb/PhUE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/0AVBv9AFQb/PhQE/z4UBP8+FAT/PhQE/z4UBP8+FAT/PhQE/z4UBP8+FAT/PRQD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VA/89FQP/PRUD/z0VBP89FQT/PhYF/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PBMC/0IfEf+Abmj/4Nzc////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6P/////////////////////////////////////////////////////////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7///////n5+f+Xh4L/PxcK/0AUBf8/FQX/PhYF/z4WBf8+FgX/PhYF/z4WBf8/FQX/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/QBUG/z8VBv8+FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP89FgT/PRYE/z0WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PBMC/zwXCP9jSD7/ua+s//f29v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////e///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/v7/q6Cd/0MeEv8/FAX/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/QBUG/0AVBv9AFQb/PhUF/z0WA/88FwP/PBcD/zwXA/88FwP/PBcD/zwXA/88FwP/PBcD/zwXA/88FwP/PBcD/zwXA/88FwP/PBcD/zwXA/88FwP/PBcD/zwXA/88FwP/PBcD/zwWA/8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP8+FgT/PhYE/z4WBP89FQP/OxMC/z8aDP9gRDv/p5qW/+zp6f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9P//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+3tf9MKR7/QBQF/0AVBv9AFQb/QBUF/0AVBf9AFQX/QBUF/0AVBf9AFQX/QBUF/0AVBf9AFQX/QBUF/0AVBf9AFQX/QBUG/0AVBv9AFQb/QBUG/0AVBv8/FQX/PhYD/z0WA/89FgP/PRYD/z0WA/89FgP/PRYD/z0WA/89FgP/PRYD/z0WA/89FgP/PRYD/z0WA/89FgP/PRYD/z0WA/89FgP/PRYD/z0WA/89FgT/PhYE/z8XBP8/FgT/PhYE/z8WBP8+FgT/PRUD/zwTAv88EwL/PhkK/0wsIf92YFn/t6up/+3q6v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9////uv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////SzMv/UTQr/zYOAf85EAT/ORAE/zkQBP85EQT/OREF/zkRBf85EQX/OREF/zkRBf85EQX/OREF/zkRBf85EQX/OREF/zkRBf85EQT/ORAE/zkQBP85EAT/ORAE/zkRBP84EQT/OBED/zgRA/84EQP/OBED/zgRA/84EQP/OBED/zgRA/84EQP/OBED/zgRA/84EQP/OBED/zgRA/84EQP/OBED/zgRA/84EQP/OBED/zcQAv83EAL/NxAC/zgRA/84EwX/OBMF/0IgEv9SMyf/aU9G/415c/+2q6j/3NfW//n4+P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+v///+a/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7u0tP+HeHf/jH18/45/fv+Of3//jn9//45/f/+Of3//jn9//45/f/+Of3//jn9//45/fv+NfX3/jH19/419ff+NfX3/jH18/4t8e/+Le3v/i3t7/4t7e/+Le3r/inp5/4p6ef+Kenn/inp5/4p6ef+Jenn/iXl5/4l5ef+Jenn/iHh4/4d3dv+Hd3b/h3d2/4d3dv+Hd3b/h3d2/4d3dv+Hd3b/h3d2/4d3dv+Gd3b/hnd2/4Z3dv+Kenr/joB//5SIh/+dlJL/vre2/+Hd3P/19PT//v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0f///3T////9/////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+t/v7+Qf///+7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f7+/nb+/v4X////zf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////s/v7+PO7u7gD///+T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8P+/v4R////AP7+/kj////1////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ev///wD+/v4A/v7+Ev///8b//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+j+/v4x/v7+AP39/QD///8A/v7+a/////3/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////nP39/QT+/v4AAAAAAP7+/gD+/v4a////0P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+z///87////AAAAAAAAAAAA/v7+AP///wD+/v52/////v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////pf39/Qf+/v4AAAAAAAAAAAAAAAAA/v7+AP7+/hn////E/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+X+/v43/v7+AAAAAAAAAAAAAAAAAAAAAAD9/f0A////AP7+/jf////Z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////w/v7+Zvz8/AL+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A////AP7+/lj////x/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////P7+/oL8/PwE/f39AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39Bf///3z////4//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+l/v7+Ef7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+Cf7+/ov////7/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+s/7+/hr+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/f39Df7+/ov////4/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///7D+/v4f/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+Cf///3z////x//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////r///+g/v7+GP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/f0A/f39Bf7+/lb////Z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////r////dv7+/g3+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A////AP7+/jb////E/////f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2/7+/lT+/v4C/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8/PwA////AP7+/hj+/v51////0P////z////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+////4f///5L+/v4p+Pj4AP39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+APz8/AD+/v4Z/v7+af///8b////1///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6////1v7+/oL///8o/f39A/7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/ADk5OQA/v7+Ef///0b///+S////zP///+7////9/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////P////W////ov7+/lj+/v4b/Pz8Af39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/f39AP39/QL+/v4V////P////3L///+X////t////9D////c////5v///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////s////7P///+z////t////6P///97////T////v////6D///97////S/7+/h39/f0E/f39AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAH////+AAAAAAAAAAAAAAAAf///+AAAAAAAAAAAAAAAAB///+AAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAA//4AAAAAAAAAAAAAAAAAAH/8AAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/gAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAH+AAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAB/8AAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAAAAAAAAH//+AAAAAAAAAAAAAAAAAD///wAAAAAAAAAAAAAAAAB///+AAAAAAAAAAAAAAAAB////4AAAAAAAAAAAAAAAB/////wAAAAAAAAAAAAAAD//8="}},"time_used":548,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":543,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/pages-login-login.94b69155.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:06.942Z","timestamp":1785143526942,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/js/pages-login-login.94b69155.js HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 09 Jun 2026 09:23:16 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a27db84-24f3\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":9459,"size_decoded":3764,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (8953), with no line terminators","md5":"f53f76584169179c013754c31eb0ea85","sha1":"df9293fad39cd36c27c4dfdf279e8373a785c578","sha256":"21a2dc117f0f6a86efc73a62e10d7ec6ff09dc1cba375964b59b392c98880a22","sha512":"566757d2d7397ba342aa37653873713c1a11c3b5f7f8518a93987f05a4a99f501d334ab4f75584e5dd17f2b7e15490a6d2f8f348c0b70dcfcf399227b738995a","ssdeep":"192:SvKxwdw8Jhh2WZemhCdgCeFBhkImQioRsSAF+RBQL:SSSLJhh2WawwJL","tlshash":"6f12961810a3a49e4c06b8a530571a1570337e7ea097804aa7b6caf59df5ecf7727f28","first_seen":"2026-07-17T10:51:36.438277Z","last_seen":"2026-07-27T14:18:45.089909Z","times_seen":4,"resource_available":true,"data":"KHdpbmRvd1sid2VicGFja0pzb25wIl09d2luZG93WyJ3ZWJwYWNrSnNvbnAiXXx8W10pLnB1c2goW1sicGFnZXMtbG9naW4tbG9naW4iXSx7IjAxYzIiOmZ1bmN0aW9uKHQsaSxlKXsidXNlIHN0cmljdCI7ZS5kKGksImIiLChmdW5jdGlvbigpe3JldHVybiBufSkpLGUuZChpLCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gb30pKSxlLmQoaSwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSk7dmFyIGE9e3VUb2FzdDplKCJjMTk4IikuZGVmYXVsdH0sbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMsaT10LiRjcmVhdGVFbGVtZW50LGE9dC5fc2VsZi5fY3x8aTtyZXR1cm4gYSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJwYWdlIn0sW2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoibG9nbyJ9LFthKCJ2LXVuaS1pbWFnZSIse2F0dHJzOntzcmM6ZSgiYmJjZiIpLG1vZGU6IiJ9fSldLDEpLGEoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidGl0In0sW3QuX3YodC5fcyh0LmkxOG4ucGxhdGZvcm1OYW1lKSldKSxhKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6InRhYiJ9LFthKCJ2LXVuaS12aWV3Iix7Y2xhc3M6MT09dC50YWJ2YWw/InRhYl9ib3gyIjoidGFiX2JveCIsb246e2NsaWNrOmZ1bmN0aW9uKGkpe2FyZ3VtZW50c1swXT1pPXQuJGhhbmRsZUV2ZW50KGkpLHQuc3dpdGNoVGFiKDEpfX19LFthKCJ2LXVuaS12aWV3IixbdC5fdih0Ll9zKHQuaTE4bi5hY2NvdW50TG9naW4pKV0pLDE9PXQudGFidmFsP2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidGFiX2JveF9zaGFkb3cifSk6dC5fZSgpXSwxKSxhKCJ2LXVuaS12aWV3Iix7Y2xhc3M6Mj09dC50YWJ2YWw/InRhYl9ib3gyIjoidGFiX2JveCIsb246e2NsaWNrOmZ1bmN0aW9uKGkpe2FyZ3VtZW50c1swXT1pPXQuJGhhbmRsZUV2ZW50KGkpLHQuc3dpdGNoVGFiKDIpfX19LFthKCJ2LXVuaS12aWV3IixbdC5fdih0Ll9zKHQuaTE4bi5TaWduVXBOb3cpKV0pLDI9PXQudGFidmFsP2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidGFiX2JveF9zaGFkb3cifSk6dC5fZSgpXSwxKV0sMSksMT09dC50YWJ2YWw/YSgidi11bmktdmlldyIsW2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94In0sW2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94X3ZpZXcifSxbYSgidi11bmktaW5wdXQiLHthdHRyczp7dHlwZToidGV4dCIscGxhY2Vob2xkZXI6dC5pMThuLmFjY291bnR9LG1vZGVsOnt2YWx1ZTp0LnBob25lLGNhbGxiYWNrOmZ1bmN0aW9uKGkpe3QucGhvbmU9aX0sZXhwcmVzc2lvbjoicGhvbmUifX0pXSwxKSxhKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveF92aWV3In0sW2EoInYtdW5pLWlucHV0Iix7YXR0cnM6e3R5cGU6InRleHQiLHBsYWNlaG9sZGVyOnQuaTE4bi5wYXNzd29yZH0sbW9kZWw6e3ZhbHVlOnQucGFzc3dvcmQsY2FsbGJhY2s6ZnVuY3Rpb24oaSl7dC5wYXNzd29yZD1pfSxleHByZXNzaW9uOiJwYXNzd29yZCJ9fSldLDEpLGEoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94X2Zvb3QifSxbYSgiYSIse29uOntjbGljazpmdW5jdGlvbihpKXthcmd1bWVudHNbMF09aT10LiRoYW5kbGVFdmVudChpKSx0Lmp1bXAoIi9wYWdlcy9teS9TZXJ2aWNlIil9fX0sW3QuX3YodC5fcyh0LmkxOG4uRm9yZ2V0Q3VzdG9tZXJTZXJ2aWNlKSldKV0pXSwxKSxhKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImJ1dCJ9LFsxPT10LmxvZ2luU2hvdz9hKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImJ1dF9ib3giLG9uOntjbGljazpmdW5jdGlvbihpKXthcmd1bWVudHNbMF09aT10LiRoYW5kbGVFdmVudChpKSx0LmxvZ2luKCl9fX0sW3QuX3YodC5fcyh0LmkxOG4ubG9naW5JbW1lZGlhdGVseSkpXSk6YSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJidXRfYm94MiJ9LFt0Ll92KHQuX3ModC5pMThuLmxvZ2dpbmdJbikpXSldLDEpXSwxKTp0Ll9lKCksMj09dC50YWJ2YWw/YSgidi11bmktdmlldyIsW2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94In0sW2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiaW5wdXRfYm94X3ZpZXcifSxbYSgidi11bmktaW5wdXQiLHthdHRyczp7dHlwZToidGV4dCIscGxhY2Vob2xkZXI6dC5pMThuLmFjY291bnR9LG1vZGVsOnt2YWx1ZTp0LnBob25lLGNhbGxiYWNrOmZ1bmN0aW9uKGkpe3QucGhvbmU9aX0sZXhwcmVzc2lvbjoicGhvbmUifX0pXSwxKSxhKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveF92aWV3In0sW2EoInYtdW5pLWlucHV0Iix7YXR0cnM6e3R5cGU6Im51bWJlciIscGxhY2Vob2xkZXI6dC5pMThuLnBhc3N3b3JkfSxtb2RlbDp7dmFsdWU6dC5wYXNzd29yZCxjYWxsYmFjazpmdW5jdGlvbihpKXt0LnBhc3N3b3JkPWl9LGV4cHJlc3Npb246InBhc3N3b3JkIn19KV0sMSksYSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJpbnB1dF9ib3hfdmlldyJ9LFthKCJ2LXVuaS1pbnB1dCIse2F0dHJzOnt0eXBlOiJudW1iZXIiLHBsYWNlaG9sZGVyOnQuaTE4bi5Db25maXJtUGFzc3dvcmR9LG1vZGVsOnt2YWx1ZTp0LnBhc3N3b3JkMixjYWxsYmFjazpmdW5jdGlvbihpKXt0LnBhc3N3b3JkMj1pfSxleHByZXNzaW9uOiJwYXNzd29yZDIifX0pXSwxKSxhKCJ2LXVuaS12aWV3Iix7c3RhdGljQ2xhc3M6ImlucHV0X2JveF92aWV3In0sW2EoInYtdW5pLWlucHV0Iix7YXR0cnM6e3R5cGU6InRleHQiLHBsYWNlaG9sZGVyOnQuaTE4bi5JbnZpdGF0aW9uQ29kZUVycm9yfSxtb2RlbDp7dmFsdWU6dC5pbnZpdGUsY2FsbGJhY2s6ZnVuY3Rpb24oaSl7dC5pbnZpdGU9aX0sZXhwcmVzc2lvbjoiaW52aXRlIn19KV0sMSksYSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJpbnB1dF9ib3hfZm9vdCIsb246e2NsaWNrOmZ1bmN0aW9uKGkpe2FyZ3VtZW50c1swXT1pPXQuJGhhbmRsZUV2ZW50KGkpLHQuanVtcCgiL3BhZ2VzL215L1NlcnZpY2UiKX19fSxbYSgiYSIse2F0dHJzOntocmVmOiIifX0sW3QuX3YodC5fcyh0LmkxOG4uUXVlc3Rpb25DdXN0b21lclNlcnZpY2UpKV0pXSldLDEpLGEoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiYnV0In0sWzE9PXQucmVnaXN0ZXJTaG93P2EoInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoiYnV0X2JveCIsb246e2NsaWNrOmZ1bmN0aW9uKGkpe2FyZ3VtZW50c1swXT1pPXQuJGhhbmRsZUV2ZW50KGkpLHQucmVnaXN0ZXIoKX19fSxbdC5fdih0Ll9zKHQuaTE4bi5yZWdpc3RlcikpXSk6YSgidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJidXRfYm94MiJ9LFt0Ll92KHQuX3ModC5pMThuLnJlZ2lzdGVyaW5nKSldKV0sMSldLDEpOnQuX2UoKSxhKCJ2LXVuaS12aWV3IixbYSgidS10b2FzdCIse3JlZjoidVRvYXN0In0pXSwxKV0sMSl9LG89W119LCIyMTdhIjpmdW5jdGlvbih0LGksZSl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtlKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGkuZGVmYXVsdD12b2lkIDAsZSgiYmFhNSIpLGUoImZiNmEiKTt2YXIgYT17Y29tcHV0ZWQ6e2kxOG46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kdCgibWVzc2FnZSIpfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt0YWJ2YWw6MSxwaG9uZToiIixwYXNzd29yZDoiIixwYXNzd29yZDI6IiIsaW52aXRlOiIiLHJlZ2lzdGVyU2hvdzoxLGxvZ2luU2hvdzoxLHRva2VuOiIifX0sb25Mb2FkOmZ1bmN0aW9uKGkpe3ZhciBlPXdpbmRvdy5sb2NhdGlvbi5ocmVmO3QubG9nKGUpO3ZhciBhPWUubGFzdEluZGV4T2YoIj8iKSsxLG49ZS5sZW5ndGgtMjtpZigwIT1hKXt0LmxvZyhlLmxlbmd0aCksdC5sb2coYSk7dmFyIG89ZS5zbGljZShhLG4pO3QubG9nKG8pO3ZhciBzPW8uc3BsaXQoIiYiKTt0LmxvZyhzKTt2YXIgcj1zWzBdLGM9c1sxXTt0aGlzLmludml0ZT1yLnNsaWNlKDEyLDE4KSx0aGlzLnRhYnZhbD1jLnNsaWNlKDQsNSl9fSxtZXRob2RzOntzd2l0Y2hUYWI6ZnVuY3Rpb24odCl7dGhpcy50YWJ2YWw9dCx0aGlzLnBob25lPSIiLHRoaXMucGFzc3dvcmQ9IiIsdGhpcy5wYXNzd29yZDI9IiIsdGhpcy5pbnZpdGU9IiJ9LGxvZ2luOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxvZ2luU2hvdz0yLCIiIT10aGlzLnBob25lPyIiIT10aGlzLnBhc3N3b3JkP3RoaXMuJGh0dHAuaHR0cCh7dXJsOiIvbG9naW4iLGRhdGE6e21vYmlsZTp0aGlzLnBob25lLHBhc3N3b3JkOnRoaXMucGFzc3dvcmR9LGNhbGxiYWNrOmZ1bmN0aW9uKGkpezIwMD09aS5jb2RlPyh0LiRyZWZzLnVUb2FzdC5zaG93KHt0aXRsZTp0LmkxOG4ubG9naW5TdWNjZXNzLHR5cGU6InN1Y2Nlc3MifSksdC5zd2l0Y2hUYWIoMSksdC5sb2dpblNob3c9MSx0LnRva2VuPWkuZGF0YS50b2tlbix1bmkuc2V0U3RvcmFnZVN5bmMoInRva2VuIix0LnRva2VuKSx0Lmp1bXB0YWJCYXIoIi9wYWdlcy9pbmRleC9pbmRleCIpKToodC4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6aS5tc2csdHlwZToiZXJyb3IifSksdC5sb2dpblNob3c9MSl9fSk6dGhpcy4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dGhpcy5pMThuLnBhc3N3b3JkLHR5cGU6Indhcm5pbmcifSk6dGhpcy4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dGhpcy5pMThuLmFjY291bnQsdHlwZToid2FybmluZyJ9KX0scmVnaXN0ZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMucmVnaXN0ZXJTaG93PTIsIiIhPXRoaXMucGhvbmU/IiIhPXRoaXMucGFzc3dvcmQ/IiIhPXRoaXMucGFzc3dvcmQyPyIiIT10aGlzLmludml0ZT90aGlzLiRodHRwLmh0dHAoe3VybDoiL3JlZ2lzdGVyIixkYXRhOnttb2JpbGU6dGhpcy5waG9uZSxwYXNzd29yZDp0aGlzLnBhc3N3b3JkLHBhc3N3b3JkMjp0aGlzLnBhc3N3b3JkMixpbnZpdGVfY29kZTp0aGlzLmludml0ZX0sY2FsbGJhY2s6ZnVuY3Rpb24oaSl7MjAwPT1pLmNvZGU/KHQuJHJlZnMudVRvYXN0LnNob3coe3RpdGxlOnQuaTE4bi5yZWdpc3RyYXRpb25TdWNjZXNzLHR5cGU6InN1Y2Nlc3MifSksdC5zd2l0Y2hUYWIoMSksdC5yZWdpc3RlclNob3c9MSk6KHQuJHJlZnMudVRvYXN0LnNob3coe3RpdGxlOmkubXNnLHR5cGU6ImVycm9yIn0pLHQucmVnaXN0ZXJTaG93PTEpfX0pOnRoaXMuJHJlZnMudVRvYXN0LnNob3coe3RpdGxlOnRoaXMuaTE4bi5JbnZpdGF0aW9uQ29kZUVycm9yLHR5cGU6Indhcm5pbmcifSk6dGhpcy4kcmVmcy51VG9hc3Quc2hvdyh7dGl0bGU6dGhpcy5pMThuLkNvbmZpcm1QYXNzd29yZCx0eXBlOiJ3YXJuaW5nIn0pOnRoaXMuJHJlZnMudVRvYXN0LnNob3coe3RpdGxlOnRoaXMuaTE4bi5wYXNzd29yZCx0eXBlOiJ3YXJuaW5nIn0pOnRoaXMuJHJlZnMudVRvYXN0LnNob3coe3RpdGxlOnRoaXMuaTE4bi5hY2NvdW50LHR5cGU6Indhcm5pbmcifSl9fX07aS5kZWZhdWx0PWF9KS5jYWxsKHRoaXMsZSgiNWE1MiIpWyJkZWZhdWx0Il0pfSw0Njc3OmZ1bmN0aW9uKHQsaSxlKXt2YXIgYT1lKCIyNGZiIik7aT1hKCExKSxpLnB1c2goW3QuaSwnQGNoYXJzZXQgIlVURi04IjtcclxuLyoqXHJcbiAqIOi/memHjOaYr3VuaS1hcHDlhoXnva7nmoTluLjnlKjmoLflvI/lj5jph49cclxuICpcclxuICogdW5pLWFwcCDlrpjmlrnmianlsZXmj5Lku7blj4rmj5Lku7bluILlnLrvvIhodHRwczovL2V4dC5kY2xvdWQubmV0LmNu77yJ5LiK5b6I5aSa5LiJ5pa55o+S5Lu25Z2H5L2/55So5LqG6L+Z5Lqb5qC35byP5Y+Y6YePXHJcbiAqIOWmguaenOS9oOaYr+aPkuS7tuW8gOWPkeiAhe+8jOW7uuiuruS9oOS9v+eUqHNjc3PpooTlpITnkIbvvIzlubblnKjmj5Lku7bku6PnoIHkuK3nm7TmjqXkvb/nlKjov5nkupvlj5jph4/vvIjml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tu+8ie+8jOaWueS+v+eUqOaIt+mAmui/h+aQreenr+acqOeahOaWueW8j+W8gOWPkeaVtOS9k+mjjuagvOS4gOiHtOeahEFwcFxyXG4gKlxyXG4gKi9cclxuLyoqXHJcbiAqIOWmguaenOS9oOaYr0FwcOW8gOWPkeiAhe+8iOaPkuS7tuS9v+eUqOiAhe+8ie+8jOS9oOWPr+S7pemAmui/h+S/ruaUuei/meS6m+WPmOmHj+adpeWumuWItuiHquW3seeahOaPkuS7tuS4u+mimO+8jOWunueOsOiHquWumuS5ieS4u+mimOWKn+iDvVxyXG4gKlxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67lkIzmoLfkvb/nlKjkuoZzY3Nz6aKE5aSE55CG77yM5L2g5Lmf5Y+v5Lul55u05o6l5Zyo5L2g55qEIHNjc3Mg5Luj56CB5Lit5L2/55So5aaC5LiL5Y+Y6YeP77yM5ZCM5pe25peg6ZyAIGltcG9ydCDov5nkuKrmlofku7ZcclxuICovXHJcbi8qIOminOiJsuWPmOmHjyAqL1xyXG4vKuWFqOWxgOS4u+mimOiJsuiwgyovXHJcbi8qIOihjOS4uuebuOWFs+minOiJsiAqL1xyXG4vKiDmloflrZfln7rmnKzpopzoibIgKi9cclxuLyog6IOM5pmv6aKc6ImyICovXHJcbi8qIOi+ueahhuminOiJsiAqL1xyXG4vKiDlsLrlr7jlj5jph48gKi9cclxuLyog5paH5a2X5bC65a+4ICovXHJcbi8qIOWbvueJh+WwuuWvuCAqL1xyXG4vKiBCb3JkZXIgUmFkaXVzICovXHJcbi8qIOawtOW5s+mXtOi3nSAqL1xyXG4vKiDlnoLnm7Tpl7Tot50gKi9cclxuLyog6YCP5piO5bqmICovXHJcbi8qIOaWh+eroOWcuuaZr+ebuOWFsyAqL3VuaS1wYWdlLWJvZHlbZGF0YS12LTFlOGJjZTEzXXttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZC1jb2xvcjojZTllZmZmO2ZvbnQtZmFtaWx5OkhlbHZldGljYSxNaWNyb3NvZnQgWWFIZWksQXJpYWwsc2Fucy1zZXJpZn1ib2R5Lj8lUEFHRT8lW2RhdGEtdi0xZThiY2UxM117YmFja2dyb3VuZC1jb2xvcjojZTllZmZmfS5sb2dvW2RhdGEtdi0xZThiY2UxM117bWFyZ2luLXRvcDolPzE1OD8lO3dpZHRoOjkwJTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5sb2dvIHVuaS1pbWFnZVtkYXRhLXYtMWU4YmNlMTNde3dpZHRoOiU/MTgwPyU7aGVpZ2h0OiU/MTgwPyV9LnRpdFtkYXRhLXYtMWU4YmNlMTNde2ZvbnQtc2l6ZTolPzQ4PyU7d2lkdGg6OTAlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87Zm9udC13ZWlnaHQ6NTUwfS50YWJbZGF0YS12LTFlOGJjZTEzXXttYXJnaW4tdG9wOiU/ODQ/JTtkaXNwbGF5OmZsZXg7d2lkdGg6OTAlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LnRhYl9ib3hbZGF0YS12LTFlOGJjZTEzXXttYXJnaW4tcmlnaHQ6JT80OD8lO2ZvbnQtc2l6ZTolPzM2PyU7Y29sb3I6IzU4NWE2Mn0udGFiX2JveDJbZGF0YS12LTFlOGJjZTEzXXttYXJnaW4tcmlnaHQ6JT80OD8lO2ZvbnQtc2l6ZTolPzM2PyU7Y29sb3I6IzM1M2M1NTtmb250LXdlaWdodDo1NTB9LnRhYl9ib3hfc2hhZG93W2RhdGEtdi0xZThiY2UxM117YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCMwZTU4NTEsIzBlNTg1MSk7aGVpZ2h0OiU/Mjg/JTtib3JkZXItcmFkaXVzOiU/MTQ/JTttYXJnaW4tdG9wOiU/LTIwPyV9LmlucHV0X2JveFtkYXRhLXYtMWU4YmNlMTNde3dpZHRoOjkwJTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO21hcmdpbi10b3A6JT84ND8lfS5pbnB1dF9ib3hfdmlld1tkYXRhLXYtMWU4YmNlMTNde21hcmdpbi1ib3R0b206JT8zMj8lO2JveC1zaGFkb3c6JT8wPyUgJT80PyUgJT8xNj8lICU/MD8lIHJnYmEoMjI0LDIzNCwyNTUsLjUpfS5pbnB1dF9ib3hfdmlldyB1bmktaW5wdXRbZGF0YS12LTFlOGJjZTEzXXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cGFkZGluZzolPzMyPyU7Ym94LXNoYWRvdzolPzA/JSAlPzQ/JSAlPzE2PyUgJT8wPyUgcmdiYSgyMjQsMjM0LDI1NSwuNSk7Ym9yZGVyLXJhZGl1czolPzI0PyU7Zm9udC1zaXplOiU/MzI/JTtjb2xvcjojMzUzYzU1fS5pbnB1dF9ib3hfZm9vdFtkYXRhLXYtMWU4YmNlMTNde3RleHQtYWxpZ246cmlnaHR9LmlucHV0X2JveF9mb290IGFbZGF0YS12LTFlOGJjZTEzXXtjb2xvcjojNTc5NGY4O2ZvbnQtc2l6ZTolPzI0PyU7Zm9udC13ZWlnaHQ6NDAwfS5idXRbZGF0YS12LTFlOGJjZTEzXXt3aWR0aDo5MCU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bzttYXJnaW4tdG9wOiU/NzI/JX0uYnV0X2JveFtkYXRhLXYtMWU4YmNlMTNde2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDMxNWRlZywjMGU1ODUxLCMwZTU4NTEpO2JvcmRlci1yYWRpdXM6JT8yND8lO2JveC1zaGFkb3c6JT8wPyUgJT8yPyUgJT8xNj8lICU/MD8lIHJnYmEoMTA1LDE1MywyNTUsLjYpO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6JT8zNT8lIDB9LmJ1dF9ib3gyW2RhdGEtdi0xZThiY2UxM117YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCMwZTU4NTEsIzBlNTg1MSk7Ym9yZGVyLXJhZGl1czolPzI0PyU7Ym94LXNoYWRvdzolPzA/JSAlPzI/JSAlPzE2PyUgJT8wPyUgcmdiYSgxMDUsMTUzLDI1NSwuNik7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzolPzM1PyUgMDtvcGFjaXR5Oi41fScsIiJdKSx0LmV4cG9ydHM9aX0sIjY5MGUiOmZ1bmN0aW9uKHQsaSxlKXsidXNlIHN0cmljdCI7ZS5yKGkpO3ZhciBhPWUoIjIxN2EiKSxuPWUubihhKTtmb3IodmFyIG8gaW4gYSlbImRlZmF1bHQiXS5pbmRleE9mKG8pPDAmJmZ1bmN0aW9uKHQpe2UuZChpLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIGFbdF19KSl9KG8pO2lbImRlZmF1bHQiXT1uLmF9LCI4NmMzIjpmdW5jdGlvbih0LGksZSl7dmFyIGE9ZSgiNDY3NyIpO2EuX19lc01vZHVsZSYmKGE9YS5kZWZhdWx0KSwic3RyaW5nIj09PXR5cGVvZiBhJiYoYT1bW3QuaSxhLCIiXV0pLGEubG9jYWxzJiYodC5leHBvcnRzPWEubG9jYWxzKTt2YXIgbj1lKCI0ZjA2IikuZGVmYXVsdDtuKCJiOTU5YjU4ZSIsYSwhMCx7c291cmNlTWFwOiExLHNoYWRvd01vZGU6ITF9KX0sYmFhNTpmdW5jdGlvbih0LGksZSl7dmFyIGE9ZSgiMjNlNyIpLG49ZSgiZTU4YyIpO2Eoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpuIT09W10ubGFzdEluZGV4T2Z9LHtsYXN0SW5kZXhPZjpufSl9LGJiY2Y6ZnVuY3Rpb24odCxpLGUpe3QuZXhwb3J0cz1lLnArInN0YXRpYy9pbWcvbG9nby5jOWViYWVlYS5wbmcifSxiZDVjOmZ1bmN0aW9uKHQsaSxlKXsidXNlIHN0cmljdCI7ZS5yKGkpO3ZhciBhPWUoIjAxYzIiKSxuPWUoIjY5MGUiKTtmb3IodmFyIG8gaW4gbilbImRlZmF1bHQiXS5pbmRleE9mKG8pPDAmJmZ1bmN0aW9uKHQpe2UuZChpLHQsKGZ1bmN0aW9uKCl7cmV0dXJuIG5bdF19KSl9KG8pO2UoImZkZjYiKTt2YXIgcz1lKCJmMGM1Iikscj1PYmplY3Qoc1siYSJdKShuWyJkZWZhdWx0Il0sYVsiYiJdLGFbImMiXSwhMSxudWxsLCIxZThiY2UxMyIsbnVsbCwhMSxhWyJhIl0sdm9pZCAwKTtpWyJkZWZhdWx0Il09ci5leHBvcnRzfSxmZGY2OmZ1bmN0aW9uKHQsaSxlKXsidXNlIHN0cmljdCI7dmFyIGE9ZSgiODZjMyIpLG49ZS5uKGEpO24uYX19XSk7"}},"time_used":278,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":278,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/icon/tab/49.png","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:06.960Z","timestamp":1785143526960,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/icon/tab/49.png HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: image/png\r\ncontent-length: 2749\r\nlast-modified: Tue, 09 Jun 2026 09:23:17 GMT\r\nvary: Accept-Encoding\r\netag: \"6a27db85-abd\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":2749,"size_decoded":3305,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"84d67b9adfd11bec4bb5aa5fd269546c","sha1":"b07d2b18eb09245a6d6b9a175b643f1e30bdbb29","sha256":"e866df2f3c30453ad03854f7c2431a7f445ad8270b55f1a281b12bde5995734a","sha512":"fd2fc8807da787289679801eb3e809715b72787019c88390f7bde5dbba7e225e76c9474d5ad953c485bc29bfb7bbf1ed5faa4e07dab9a7120b4d4afb3b608e09","ssdeep":"","tlshash":"c5514b27354bfd68974cf051a460a082f49216ac0859d4dfe689402d71b7875b6ab9fc","first_seen":"2026-02-01T06:56:24.371566Z","last_seen":"2026-07-27T14:18:45.086779Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":279,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":279,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/icon/tab/50.png","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:06.961Z","timestamp":1785143526961,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/icon/tab/50.png HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: image/png\r\ncontent-length: 1732\r\nlast-modified: Tue, 09 Jun 2026 09:23:17 GMT\r\nvary: Accept-Encoding\r\netag: \"6a27db85-6c4\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":1732,"size_decoded":2288,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"7bc89ba9b856f97a4c1969709b7b1867","sha1":"fa6d698a124cbc5f085e532c17320357d75f9e91","sha256":"e6e80eeaca92ea87ae4db96fcadce083a10719535d122aaa7762b6a91bca5b90","sha512":"4db483e7ce6ac56752c6f1e800d2b33de82f61caa1ad1592cb226d2a9bcdffbad813c29004ad1ad59afe05eef773a9f51160fcc562f4a536cf552f3b94629a14","ssdeep":"","tlshash":"c7311a65e2c93578af49717b3ae1033df5ebc3d5648436376d4908b850159c5900d3e9","first_seen":"2026-02-01T06:56:24.372543Z","last_seen":"2026-07-27T14:18:45.087333Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":278,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":278,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/icon/tab/51.png","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:06.963Z","timestamp":1785143526963,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/icon/tab/51.png HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: image/png\r\ncontent-length: 3645\r\nlast-modified: Tue, 09 Jun 2026 09:23:17 GMT\r\nvary: Accept-Encoding\r\netag: \"6a27db85-e3d\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":3645,"size_decoded":4201,"mime_type":"image/png","magic":"PNG image data, 64 x 64, 8-bit/color RGBA, non-interlaced","md5":"4c416c8d6f08e6bc031b5abbcea3f76d","sha1":"275cd89c21293e513ff4aa23f5660aad3aa761c1","sha256":"6b6776f9f044fea272347b78153b7ee0542f40fc9a5d412bced3b70d57f8e050","sha512":"746843a2d940b70ee0a545e223690f70c8adba97d0d85c8ea629007bc5bfdc446be5ea2c23289199b2101f2723fae2e4c1878057c50767b9a4dd83ee76be5891","ssdeep":"","tlshash":"3a715df3b7228abe8f310c160a961570f5bdd9c5001cee2aa42bd13d91d4fa544bcb74","first_seen":"2026-02-01T06:56:24.376216Z","last_seen":"2026-07-27T14:18:45.090472Z","times_seen":14,"resource_available":false,"data":"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"}},"time_used":277,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":277,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/index.97465e7b.css","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:05.383Z","timestamp":1785143525383,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/index.97465e7b.css HTTP/1.1\r\nHost: retail-shopping.shop\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://retail-shopping.shop/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:05 GMT\r\ncontent-type: text/css\r\nlast-modified: Tue, 09 Jun 2026 09:23:17 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a27db85-17894\"\r\nexpires: Mon, 03 Aug 2026 09:12:05 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":96404,"size_decoded":30236,"mime_type":"text/css","magic":"ASCII text, with very long lines (65536), with no line terminators","md5":"97a29764a1df91af2f287e5641b1efeb","sha1":"887cbd5cd4630164c4ac6b8738d8a32459c920d6","sha256":"f6789ee8a50f44f18ba717956bd34c4cd17b1d658443e92408976907b83a0242","sha512":"b54537789bc819ff8b1edd39e579ad2c5731e399379e817f3bedbc3105853d87891bb19dc0373f4d3af03554173ef4c486e5f6b85cab3b8cd9edcb8b5624f67a","ssdeep":"1536:OlIApuK7hmVmb2RS1Wu3xdyn37ehgnKhlvbc:VApuK7hmVrS1Wu3iy6nKPI","tlshash":"aa93f73719012e39e52bcd26b6c1ab5a1e61c033e15307adfba47628cbcf9c9167b345","first_seen":"2023-07-13T05:53:18Z","last_seen":"2026-08-16T11:36:50.474926Z","times_seen":1069,"resource_available":false,"data":"dW5pLXRhYmJhcntkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO3otaW5kZXg6OTk4fXVuaS10YWJiYXIgLnVuaS10YWJiYXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7ei1pbmRleDo5OTg7Ym94LXNpemluZzpib3JkZXItYm94fXVuaS10YWJiYXIudW5pLXRhYmJhci1ib3R0b20sdW5pLXRhYmJhci51bmktdGFiYmFyLWJvdHRvbSAudW5pLXRhYmJhcix1bmktdGFiYmFyLnVuaS10YWJiYXItdG9wLHVuaS10YWJiYXIudW5pLXRhYmJhci10b3AgLnVuaS10YWJiYXJ7cG9zaXRpb246Zml4ZWQ7bGVmdDp2YXIoLS13aW5kb3ctbGVmdCk7cmlnaHQ6dmFyKC0td2luZG93LXJpZ2h0KX0udW5pLWFwcC0tc2hvd2xheW91dCt1bmktdGFiYmFyLnVuaS10YWJiYXItYm90dG9tLC51bmktYXBwLS1zaG93bGF5b3V0K3VuaS10YWJiYXIudW5pLXRhYmJhci1ib3R0b20gLnVuaS10YWJiYXIsLnVuaS1hcHAtLXNob3dsYXlvdXQrdW5pLXRhYmJhci51bmktdGFiYmFyLXRvcCwudW5pLWFwcC0tc2hvd2xheW91dCt1bmktdGFiYmFyLnVuaS10YWJiYXItdG9wIC51bmktdGFiYmFye2xlZnQ6dmFyKC0td2luZG93LW1hcmdpbik7cmlnaHQ6dmFyKC0td2luZG93LW1hcmdpbil9dW5pLXRhYmJhci51bmktdGFiYmFyLWJvdHRvbSAudW5pLXRhYmJhcntib3R0b206MDtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctYm90dG9tOmNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX11bmktdGFiYmFyIC51bmktdGFiYmFyfi51bmktcGxhY2Vob2xkZXJ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjA7bWFyZ2luLWJvdHRvbTpjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTttYXJnaW4tYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX11bmktdGFiYmFyIC51bmktdGFiYmFyICp7Ym94LXNpemluZzpib3JkZXItYm94fXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2l0ZW17LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTtmbGV4OjE7Zm9udC1zaXplOjA7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLXRhYmJhciAudW5pLXRhYmJhcl9fYmQsdW5pLXRhYmJhciAudW5pLXRhYmJhcl9faXRlbXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsfXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2Jke3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtjdXJzb3I6cG9pbnRlcn11bmktdGFiYmFyIC51bmktdGFiYmFyX19pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6NXB4fXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2ljb24udW5pLXRhYmJhcl9faWNvbl9fZGlmZnttYXJnaW4tdG9wOjA7d2lkdGg6MzRweDtoZWlnaHQ6MzRweH11bmktdGFiYmFyIC51bmktdGFiYmFyX19pY29uIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2ljb25mb250e2ZvbnQtZmFtaWx5OlVuaVRhYmJhckljb25Gb250fXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2xhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxMHB4fXVuaS10YWJiYXIgLnVuaS10YWJiYXItYm9yZGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxcHg7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX11bmktdGFiYmFyIC51bmktdGFiYmFyX19yZWRkb3R7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDowO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZjQzNTMwO2NvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDQwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSg0MCUpfXVuaS10YWJiYXIgLnVuaS10YWJiYXJfX2JhZGdle3dpZHRoOmF1dG87aGVpZ2h0OjE2cHg7bGluZS1oZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjE2cHg7bWluLXdpZHRoOjE2cHg7cGFkZGluZzowIDJweDtmb250LXNpemU6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9dW5pLXRhYmJhciAudW5pLXRhYmJhcl9fbWlkey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9dW5pLWNvbnRlbnQsdW5pLXRhYmJhciAudW5pLXRhYmJhcl9fbWlke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS1jb250ZW50ey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MSAwIGF1dG87ZmxleDoxIDAgYXV0bztoZWlnaHQ6MTAwJX11bmktbWFpbnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO3dpZHRoOjEwMCV9dW5pLXRvcC13aW5kb3crdW5pLWNvbnRlbnR7aGVpZ2h0OmNhbGMoMTAwdmggLSB2YXIoLS10b3Atd2luZG93LWhlaWdodCkpfXVuaS1sZWZ0LXdpbmRvd3t3aWR0aDp2YXIoLS13aW5kb3ctbGVmdCk7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDowOy13ZWJraXQtb3JkZXI6LTE7b3JkZXI6LTF9dW5pLWxlZnQtd2luZG93LHVuaS1yaWdodC13aW5kb3d7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDpoaWRkZW59dW5pLXJpZ2h0LXdpbmRvd3t3aWR0aDp2YXIoLS13aW5kb3ctcmlnaHQpfXVuaS1sZWZ0LXdpbmRvd1tkYXRhLXNob3ddLHVuaS1yaWdodC13aW5kb3dbZGF0YS1zaG93XXtwb3NpdGlvbjphYnNvbHV0ZX11bmktcmlnaHQtd2luZG93W2RhdGEtc2hvd117cmlnaHQ6MH0udW5pLWxlZnQtd2luZG93LC51bmktcmlnaHQtd2luZG93LHVuaS1jb250ZW50IC51bmktbWFza3t6LWluZGV4Ojk5N30udW5pLW1hc2srLnVuaS1sZWZ0LXdpbmRvdywudW5pLW1hc2srLnVuaS1yaWdodC13aW5kb3d7cG9zaXRpb246Zml4ZWR9LnVuaS10b3Atd2luZG93e3Bvc2l0aW9uOmZpeGVkO2xlZnQ6dmFyKC0td2luZG93LW1hcmdpbik7cmlnaHQ6dmFyKC0td2luZG93LW1hcmdpbik7dG9wOjA7ei1pbmRleDo5OTg7b3ZlcmZsb3c6aGlkZGVufXVuaS10b2FzdHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4Ojk5OTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb2ludGVyLWV2ZW50czpub25lO2ZvbnQtc2l6ZToxNnB4fXVuaS10b2FzdCAudW5pLXNhbXBsZS10b2FzdHtwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0ZXh0LWFsaWduOmNlbnRlcjttYXgtd2lkdGg6ODAlfXVuaS10b2FzdCAudW5pLXNpbXBsZS10b2FzdF9fdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTcsMTcsMTcsLjcpO3BhZGRpbmc6MTBweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4O2ZvbnQtc2l6ZToxM3B4O3RleHQtYWxpZ246Y2VudGVyO21heC13aWR0aDoxMDAlO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpub3JtYWx9dW5pLXRvYXN0IC51bmktbWFza3twb2ludGVyLWV2ZW50czphdXRvfXVuaS10b2FzdCAudW5pLXRvYXN0e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5O3dpZHRoOjhlbTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtiYWNrZ3JvdW5kOnJnYmEoMTcsMTcsMTcsLjcpO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yYWRpdXM6NXB4O2NvbG9yOiNmZmZ9dW5pLXRvYXN0IC51bmktdG9hc3QgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9dW5pLXRvYXN0IC51bmktdG9hc3RfX2ljb257bWFyZ2luOjIwcHggMCAwO3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9dW5pLXRvYXN0IC51bmktaWNvbl90b2FzdHttYXJnaW46MTVweCAwIDB9dW5pLXRvYXN0IC51bmktaWNvbl90b2FzdC51bmktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZTpiZWZvcmV7Y29sb3I6I2ZmZjtmb250LXNpemU6NTVweH11bmktdG9hc3QgLnVuaS1pY29uX3RvYXN0LnVuaS1pY29uLWVycm9yOmJlZm9yZXtjb2xvcjojZmZmO2ZvbnQtc2l6ZTo1MHB4fXVuaS10b2FzdCAudW5pLWljb25fdG9hc3QudW5pLWxvYWRpbmd7bWFyZ2luOjIwcHggMCAwO3dpZHRoOjM4cHg7aGVpZ2h0OjM4cHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9dW5pLXRvYXN0IC51bmktdG9hc3RfX2NvbnRlbnR7bWFyZ2luOjAgMCAxNXB4fXVuaS1tb2RhbHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4Ojk5OTtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktbW9kYWwgLnVuaS1tb2RhbHtwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTt3aWR0aDo4MCU7bWF4LXdpZHRoOjMwMHB4O3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO2JhY2tncm91bmQtY29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItcmFkaXVzOjNweDtvdmVyZmxvdzpoaWRkZW59dW5pLW1vZGFsIC51bmktbW9kYWwgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9dW5pLW1vZGFsIC51bmktbW9kYWxfX2hke3BhZGRpbmc6MWVtIDEuNmVtIC4zZW19dW5pLW1vZGFsIC51bmktbW9kYWxfX3RpdGxle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MThweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztkaXNwbGF5Oi13ZWJraXQtYm94Oy13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbH11bmktbW9kYWwgLnVuaS1tb2RhbF9fYmQsdW5pLW1vZGFsIC51bmktbW9kYWxfX3RpdGxle3dvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwfXVuaS1tb2RhbCAudW5pLW1vZGFsX19iZHtwYWRkaW5nOjEuM2VtIDEuNmVtIDEuM2VtO21pbi1oZWlnaHQ6NDBweDtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6Izk5OTttYXgtaGVpZ2h0OjQwMHB4O292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0b311bmktbW9kYWwgLnVuaS1tb2RhbF9fdGV4dGFyZWF7cmVzaXplOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6OTAlO3BhZGRpbmc6MTBweDtmb250LXNpemU6MjBweDtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZWVlO3RleHQtZGVjb3JhdGlvbjppbmhlcml0fXVuaS1tb2RhbCAudW5pLW1vZGFsX19mdHtwb3NpdGlvbjpyZWxhdGl2ZTtsaW5lLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxOHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS1tb2RhbCAudW5pLW1vZGFsX19mdDphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7cmlnaHQ6MDtoZWlnaHQ6MXB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNkNWQ1ZDY7Y29sb3I6I2Q1ZDVkNjstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSguNSk7dHJhbnNmb3JtOnNjYWxlWSguNSl9dW5pLW1vZGFsIC51bmktbW9kYWxfX2J0bntkaXNwbGF5OmJsb2NrOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTtmbGV4OjE7Y29sb3I6IzNjYzUxZjt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcn11bmktbW9kYWwgLnVuaS1tb2RhbF9fYnRuOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9dW5pLW1vZGFsIC51bmktbW9kYWxfX2J0bjphZnRlcntjb250ZW50OiIgIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MXB4O2JvdHRvbTowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZDVkNWQ2O2NvbG9yOiNkNWQ1ZDY7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2Zvcm0tb3JpZ2luOjAgMDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoLjUpO3RyYW5zZm9ybTpzY2FsZVgoLjUpfXVuaS1tb2RhbCAudW5pLW1vZGFsX19idG46Zmlyc3QtY2hpbGQ6YWZ0ZXJ7ZGlzcGxheTpub25lfXVuaS1tb2RhbCAudW5pLW1vZGFsX19idG5fZGVmYXVsdHtjb2xvcjojMzUzNTM1fXVuaS1tb2RhbCAudW5pLW1vZGFsX19idG5fcHJpbWFyeXtjb2xvcjojMDA3YWZmfXVuaS1hY3Rpb25zaGVldHtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldHtwb3NpdGlvbjpmaXhlZDtsZWZ0OjZweDtyaWdodDo2cHg7Ym90dG9tOjZweDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDo5OTk7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzLC13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnZpc2liaWxpdHkgLjNzLC13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MsdmlzaWJpbGl0eSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzLHZpc2liaWxpdHkgLjNzLC13ZWJraXQtdHJhbnNmb3JtIC4zc311bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldC51bmktYWN0aW9uc2hlZXRfdG9nZ2xle3Zpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldF9fYWN0aW9uLHVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X19tZW51e2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I2ZjZmNmZH11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldF9fYWN0aW9ue21hcmdpbi10b3A6NnB4fXVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X19jZWxsLHVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X190aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjEwcHggNnB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxOHB4O3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpwb2ludGVyfXVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X190aXRsZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2xlZnQ6MDt6LWluZGV4OjE7Y29sb3I6dmFyKC0tVUktRkcpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjVweCA1cHggMCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTV9dW5pLWFjdGlvbnNoZWV0IC51bmktYWN0aW9uc2hlZXRfX2NlbGw6YmVmb3Jle2NvbnRlbnQ6IiAiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2hlaWdodDoxcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U1ZTVlNTtjb2xvcjojZTVlNWU1Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldF9fY2VsbDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZWNlY2VjfXVuaS1hY3Rpb25zaGVldCAudW5pLWFjdGlvbnNoZWV0X19jZWxsOmZpcnN0LWNoaWxkOmJlZm9yZXtkaXNwbGF5Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo1MDBweCkgYW5kIChtaW4taGVpZ2h0OjUwMHB4KXsudW5pLW1hc2sudW5pLWFjdGlvbnNoZWV0X19tYXNre2JhY2tncm91bmQ6bm9uZX11bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldHt3aWR0aDozMDBweDtsZWZ0OjUwJTtyaWdodDphdXRvO3RvcDo1MCU7Ym90dG9tOmF1dG87LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuM3MsdmlzaWJpbGl0eSAuM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyx2aXNpYmlsaXR5IC4zc311bmktYWN0aW9uc2hlZXQgLnVuaS1hY3Rpb25zaGVldC51bmktYWN0aW9uc2hlZXRfdG9nZ2xle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSl9dW5pLWFjdGlvbnNoZWV0IC51bmktYWN0aW9uc2hlZXRfX21lbnV7Ym94LXNoYWRvdzowIDAgMjBweCA1cHggcmdiYSgwLDAsMCwuMyl9dW5pLWFjdGlvbnNoZWV0IC51bmktYWN0aW9uc2hlZXRfX2FjdGlvbntkaXNwbGF5Om5vbmV9fS5pbWFnZS12aWV3LWFyZWEsLmltYWdlLXZpZXctdmlld3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0uaW1hZ2Utdmlldy1pbWd7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7bWF4LWhlaWdodDoxMDAlO21heC13aWR0aDoxMDAlfS51bmktc3lzdGVtLXByZXZpZXctaW1hZ2V7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojk5OTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpfS51bmktc3lzdGVtLXByZXZpZXctaW1hZ2Utc3dpcGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51bmktc3lzdGVtLXByZXZpZXctaW1hZ2UgLm5hdi1idG4tYmFja3twb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7dG9wOjA7cmlnaHQ6MDt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O3BhZGRpbmc6NnB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjI2cHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0qe21hcmdpbjowOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTp1bmk7c3JjOnVybCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdSMU5WUXJEK3MrMEFBQUU0QUFBQVFrOVRMekpBS0V4K0FBQUJmQUFBQUZaamJXRnc2NWNGSFFBQUFod0FBQUpRWjJ4NVp2Q1JSL0VBQUFTVUFBQUt0R2hsWVdRTEtJTjlBQUFBNEFBQUFEWm9hR1ZoQ0N3RCtnQUFBTHdBQUFBa2FHMTBlRUpvLy84QUFBSFVBQUFBU0d4dlkyRVlxaFc2QUFBRWJBQUFBQ1p0WVhod0FTRUFWUUFBQVJnQUFBQWdibUZ0WmVOY0h0Z0FBQTlJQUFBQjVuQnZjM1Q2YkxoTEFBQVJNQUFBQU9ZQUFRQUFBK2dBQUFCYUErai8vLy8vQStrQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUJJQUFRQUFBQUVBQUNrQ2ozZGZEenoxQUFzRDZBQUFBQURVRVI5WEFBQUFBTlFSSDFmLy93QUFBK2tENmdBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFBRWdCSkFBVUFBQUFBQUFJQUFBQUtBQW9BQUFEL0FBQUFBQUFBQUFFQUFBQUtBQjRBTEFBQlJFWk1WQUFJQUFRQUFBQUFBQUFBQVFBQUFBRnNhV2RoQUFnQUFBQUJBQUFBQVFBRUFBUUFBQUFCQUFnQUFRQUdBQUFBQVFBQUFBQUFBUU93QVpBQUJRQUlBbm9DdkFBQUFJd0NlZ0s4QUFBQjRBQXhBUUlBQUFJQUJRTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUdaRlpBQkE2Z0hxRVFQb0FBQUFXZ1BxQUFBQUFBQUJBQUFBQUFBQUFBQUFBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStqLy93UG9BQUFENkFBQUFBQUFCUUFBQUFNQUFBQXNBQUFBQkFBQUFYUUFBUUFBQUFBQWJnQURBQUVBQUFBc0FBTUFDZ0FBQVhRQUJBQkNBQUFBQkFBRUFBRUFBT29SLy84QUFPb0IvLzhBQUFBQkFBUUFBQUFCQUFJQUF3QUVBQVVBQmdBSEFBZ0FDUUFLQUFzQURBQU5BQTRBRHdBUUFCRUFBQUVHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBQUFOd0FBQUFBQUFBQUVRQUE2Z0VBQU9vQkFBQUFBUUFBNmdJQUFPb0NBQUFBQWdBQTZnTUFBT29EQUFBQUF3QUE2Z1FBQU9vRUFBQUFCQUFBNmdVQUFPb0ZBQUFBQlFBQTZnWUFBT29HQUFBQUJnQUE2Z2NBQU9vSEFBQUFCd0FBNmdnQUFPb0lBQUFBQ0FBQTZna0FBT29KQUFBQUNRQUE2Z29BQU9vS0FBQUFDZ0FBNmdzQUFPb0xBQUFBQ3dBQTZnd0FBT29NQUFBQURBQUE2ZzBBQU9vTkFBQUFEUUFBNmc0QUFPb09BQUFBRGdBQTZnOEFBT29QQUFBQUR3QUE2aEFBQU9vUUFBQUFFQUFBNmhFQUFPb1JBQUFBRVFBQUFBQUFSZ0NNQU5JQkpnRjRBY1FDTWdKZ0FxZ0MvQU5JQTZZRC9nUk9CS0FFOUFWYUFBQUFBZ0FBQUFBRHJ3T3RBQlFBS1FBQUFTSUhCZ2NHRkJjV0Z4WXlOelkzTmpRbkppY21BeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQWZWNFoyUTdQRHc3Wkdmd1ptUTdQRHc3WkdaNGJsNWJOamMzTmx0ZTIxNWJOamMzTmx0ZUE2MDhPMlJuOEdkak96dzhPMk5uOEdka096ejhyemMxVzE3YlhsdzFOemMxWEY3YlhsczFOd0FBQUFBQ0FBQUFBQU96QTdNQUZ3QXRBQUFCSWdjR0J3WVZGQmNXRnhZek1qYzJOelkxTkNjbUp5WVRCd1lpTHdFbU5qc0JFVFEyT3dFeUZoVVJNeklXQWU1MloyUTdQVDA3WkdkMmZHcG1PejQrTzJacElYWU9LQTUyRGcwWFhRc0hKZ2NMWFJjTkE3TStPMlpxZkhablpEczlQVHRrWjNaOWFXWTdQdjN3bWhJU21oSWFBUmNJQ3dzSS91a2FBQU1BQUFBQUErVUQ1UUFYQUNNQUxBQUFBU0lIQmdjR0ZSUVhGaGNXTXpJM05qYzJOVFFuSmljbUF4UXJBU0kxQXpRN0FUSUhKeUltTkRZeUZoUUdBZTZFY205QlJFUkJiM0tFaVhaeFFrUkVRbkYxYVFJeEF3Z0NRZ01CSXhJWkdTUVpHUVBrUkVKeGRvbUVjbTlCUkVSQmIzS0VpblZ4UWtUOUhRSUNBV0lDQWpFWkl4a1pJeGtBQUFBQUF3QUFBQUFEc1FQa0FCc0FLZ0F6QUFBQkJnY0dCd1lIQmpjUkZCY1dGeFlYTmpjMk56WTFFU1FYSmljbUJ6TXlGaFVERkFZckFTSW5BelEyRXlJbU5EWXlGaFFHQWZWQlFUZzdMRHQvSUVjK2JGNXNiRjF0UFVqKzJLaFFRVlZ2TkFRR0RBTUNKZ1VCQ3dZZUR4WVdIaFVWQStRUEVnNFNEaElwQ3Y2dGozVmtTVDRkSFQ1SlpIV1BBVk5lTlJrU0dQd0dCUDdHQWdNRkFUb0VCdjVBRlI4VkZSOFZBQUFBQWdBQUFBQURzUVBrQUJrQUxnQUFBUVlIQmdjMkJSRVVGeFlYRmhjMk56WTNOalVSSkJjbUp5WVRBUVl2QVNZL0FUWXlId0VXTmpjbE5qSWZBUllCOVZWVlFrK3YvdEZIUG14ZWJHeGRiVDFJL3RHdlQwSlZvLzdWQkFTS0F3TVNBUVVCY1FFRkFnRVNBZ1VCRVFRRDR4TVlFaGszWVA2c2puVmxTRDhjSEQ5SVpYV09BVlJnTnhrU0dQNjIvdGtEQTQ4RUJCa0NBVllDQVFIbEFRSVFCQUFBQUFBQ0FBQUFBQVBrQStRQUZ3QXRBQUFCSWdjR0J3WVZGQmNXRnhZek1qYzJOelkxTkNjbUp5WVRBUVlpTHdFbVB3RTJNaDhCRmpJM0FUWXlId0VXQWU2RWNtOUJRME5DYm5PRGlYVnhRa1JFUW5GMWtmNmdBUVVCb3dNREZnRUZBWVVDQlFFQlF3SUZBUlVFQStORVFuRjFpWU56YmtKRFEwRnZjb1NKZFhGQ1JQNmovcVVCQWFnRUJSNENBV1lCQVFFTkFnSVZCQUFBQUFRQUFBQUFBNjhEclFBVUFDa0FQd0JEQUFBQklnY0dCd1lVRnhZWEZqSTNOamMyTkNjbUp5WURJaWNtSnlZME56WTNOaklYRmhjV0ZBY0dCd1lUQlE0Qkx3RW1CZzhCQmhZZkFSWXlOd0UrQVNZaUZ6QWZBUUgxZUdka096dzhPMlJuOEdaa096dzhPMlJtZUc1ZVd6WTNOelpiWHR0ZVd6WTNOelpiWG1uKzlnWVNCbUFHRHdVREJRRUdmUVVRQmdFbEJRRUxFQlVCQVFPdFBEdGtaL0JuWXpzOFBEdGpaL0JuWkRzOC9LODNOVnRlMjE1Y05UYzNOVnhlMjE1Yk5UY0NKdDBGQVFWSkJRSUdCQWNSQm9BR0JRRWhCUThMQkFFQkFBQUJBQUFBQUFPN0F6b0FGd0FBRXk0QlB3RStBUjhCRmpZM0FUWVdGeWNXRkFjQkJpSW5QUW9HQndVSEdnekxEQ0VMQWgwTEh3c05DZ3I5dVFvZUNnR3pDeUVPQ3cwSENaTUpBUW9CdmdrQ0NnMExIUXY5c1FzS0FBQUFBQUlBQUFBQUErVUQ1Z0FYQUN3QUFBRWlCd1lIQmhVVUZ4WVhGak15TnpZM05qVTBKeVluSmhNSEJpOEJKaWNtTlJNME5qc0JNaFlWRXhjZUFRSHZoSEp2UVVORFFtNXpnNGwxY1VKRVJFSnhkVmNRQXdUNkF3SUVFQU1DS3dJRERzVUNBUVBsUkVKeGRZbURjMjVDUTBOQmIzS0VpWFZ4UWtUOVZod0VBbmNDQWdNR0FYb0NBd01DL3EyRkFnUUFBQVFBQUFBQUE2OERyUUFEQUJnQUxRQXpBQUFCTUI4QkF5SUhCZ2NHRkJjV0Z4WXlOelkzTmpRbkppY21BeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQXlNVk16VWpBdVVCQWZKNFoyUTdQRHc3Wkdmd1ptUTdQRHc3WkdaNGJsNWJOamMzTmx0ZTIxNWJOamMzTmx0ZW15VDkyUUtEQVFFQkxEdzdaR2Z3WjJNN1BEdzdZMmZ3WjJRN1BQeXZOelZiWHR0ZVhEVTNOelZjWHR0ZVd6VTNBakg5SkFBQUFBTUFBQUFBQStRRDVBQVhBQ2NBTUFBQUFTSUhCZ2NHRlJRWEZoY1dNekkzTmpjMk5UUW5KaWNtQXpNeUZoVURGQVlyQVNJbU5RTTBOaE1pSmpRMk1oWVVCZ0h1aEhKdlFVTkRRbTV6ZzRsMWNVSkVSRUp4ZFo0MkJBWU1Bd0luQXdNTUJoOFBGaFllRmhZRDQwUkNjWFdKZzNOdVFrTkRRVzl5aElsMWNVSkUvdllHQmY3QUFnTURBZ0ZBQlFiK05oWWZGaFlmRmdBQUJBQUFBQUFEd0FQQUFBZ0FFZ0FvQUQwQUFBRXlOalFtSWdZVUZoY2pGVE1SSXhVek5TTURJZ2NHQndZVkZCWVhGak15TnpZM05qVTBKeTRCQXlJbkppY21ORGMyTnpZeUZ4WVhGaFFIQmdjR0FmUVlJU0V3SVNGUmp6azV5VG9yaEc1clBUOTlhbStEZG1obFBENCtQTXlGYlY1Yk5UYzNOVnRlMmw1Yk5UYzNOVnRlQXFBaUx5SWlMeUk1SGY3RUhCd0NzVDg5YTI2RWQ4dzhQajQ4WldoMmcyOXFmZnlqTnpWYlh0cGVXelUzTnpWYlh0cGVXelUzQUFBREFBQUFBQU9vQTZnQUN3QWdBRFVBQUFFSEp3Y1hCeGMzRnpjbk53TWlCd1lIQmhRWEZoY1dNamMyTnpZMEp5WW5KZ01pSnlZbkpqUTNOamMyTWhjV0Z4WVVCd1lIQmdLT21wb2NtcG9jbXBvY21wcTJkbVppT2pzN09tSm03R1ppT2pzN09tSm1kbXRkV1RRMk5qUlpYZFpkV1RRMk5qUlpYUUtxbXBvY21wb2NtcG9jbXBvQkdUczZZbWJzWm1JNk96czZZbWJzWm1JNk8vekNOalJaWGRaZFdUUTJOalJaWGRaZFdUUTJBQU1BQUFBQUEra0Q2Z0FhQUM4QU1BQUFBUVlIQmlNaUp5WW5KalEzTmpjMk1oY1dGeFlWRkFjR0J3RUhBVEkzTmpjMk5DY21KeVlpQndZSEJoUVhGaGNXTXdLT05VQkNSMjFkV2pVM056VmFYZHBkV3pVMkdCY3JBU001L2VCWFMwZ3JLeXNyU0V1dVNra3FMQ3dxU1VwWEFTTXJGeGcyTlZ0ZDJsMWFOVGMzTlZwZGJVZENRRFgrM2prQkdTc3JTRXV1U2trcUxDd3FTVXF1UzBnckt3QUMvLzhBQUFQb0ErZ0FGQUF3QUFBQklnY0dCd1lRRnhZWEZpQTNOamMyRUNjbUp5WVRGZzRCSWk4QkJ3WXVBVFEvQVNjbVBnRVdId0UzTmg0QkJnOEJBZlNJZEhGRFJFUkRjWFFCRUhSeFEwUkVRM0YwU1FvQkZCc0tvcWdLR3hNS3FLSUtBUlFiQ3FLb0Noc1VBUXFvQStoRVEzRjAvdkIwY1VORVJFTnhkQUVRZEhGRFJQMWpDaHNUQ3FpaUNnRVVHd3FpcUFvYkZBRUtxS0lLQVJRYkNxSUFBQUlBQUFBQUErUUQ1QUFYQURRQUFBRWlCd1lIQmhVVUZ4WVhGak15TnpZM05qVTBKeVluSmhNVUJpTUZGeFlVRHdFR0x3RXVBVDhCTmg4QkZoUVBBUVV5RmgwQkFlNkVjbTlCUTBOQ2JuT0RpWFZ4UWtSRVFuRjFmd1FDL3BHREFRRVZBd1RzQWdFQzdBUUVGQUlCaEFGd0FnTUQ0MFJDY1hXSmczTnVRa05EUVc5eWhJbDFjVUpFL2ZZQ0F3dVZBZ1FDRkFRRTBBSUZBdEVFQkJRQ0JRR1ZDd01ESndBQUFBVUFBQUFBQTlRRDB3QWpBQ2NBTndCSEFFZ0FBQUVSRkFZaklTSW1OUkVqSWlZOUFUUTJNeUUxTkRZeklUSVdIUUVoTWhZZEFSUUdJeUVSSVJFSElnWVZFUlFXT3dFeU5qVVJOQ1lqSVNJR0ZSRVVGanNCTWpZMUVUUW1Ld0VEZXlZYi9YWWJKa01KRFEwSkFRWVpFZ0V2RXhrQkJna05EUW45Q1FKYzBRa05EUWt0Q1EwTkNmN3NDUTBOQ1MwSkRRMEpMUU1pL1RRYkppWWJBc3dNQ2l3SkRTNFNHUmtTTGcwSkxBb00vVXdDdEdzTkNmNU5DUTBOQ1FHekNRME5DZjVOQ1EwTkNRR3pDUTBBQUFBQUVBREdBQUVBQUFBQUFBRUFCQUFBQUFFQUFBQUFBQUlBQndBRUFBRUFBQUFBQUFNQUJBQUxBQUVBQUFBQUFBUUFCQUFQQUFFQUFBQUFBQVVBQ3dBVEFBRUFBQUFBQUFZQUJBQWVBQUVBQUFBQUFBb0FLd0FpQUFFQUFBQUFBQXNBRXdCTkFBTUFBUVFKQUFFQUNBQmdBQU1BQVFRSkFBSUFEZ0JvQUFNQUFRUUpBQU1BQ0FCMkFBTUFBUVFKQUFRQUNBQitBQU1BQVFRSkFBVUFGZ0NHQUFNQUFRUUpBQVlBQ0FDY0FBTUFBUVFKQUFvQVZnQ2tBQU1BQVFRSkFBc0FKZ0Q2ZDJWMWFWSmxaM1ZzWVhKM1pYVnBkMlYxYVZabGNuTnBiMjRnTVM0d2QyVjFhVWRsYm1WeVlYUmxaQ0JpZVNCemRtY3lkSFJtSUdaeWIyMGdSbTl1ZEdWc2JHOGdjSEp2YW1WamRDNW9kSFJ3T2k4dlptOXVkR1ZzYkc4dVkyOXRBSGNBWlFCMUFHa0FVZ0JsQUdjQWRRQnNBR0VBY2dCM0FHVUFkUUJwQUhjQVpRQjFBR2tBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd0FIY0FaUUIxQUdrQVJ3QmxBRzRBWlFCeUFHRUFkQUJsQUdRQUlBQmlBSGtBSUFCekFIWUFad0F5QUhRQWRBQm1BQ0FBWmdCeUFHOEFiUUFnQUVZQWJ3QnVBSFFBWlFCc0FHd0Fid0FnQUhBQWNnQnZBR29BWlFCakFIUUFMZ0JvQUhRQWRBQndBRG9BTHdBdkFHWUFid0J1QUhRQVpRQnNBR3dBYndBdUFHTUFid0J0QUFBQUFnQUFBQUFBQUFBS0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFTQVFJQkF3RUVBUVVCQmdFSEFRZ0JDUUVLQVFzQkRBRU5BUTRCRHdFUUFSRUJFZ0VUQUFaamFYSmpiR1VJWkc5M2JteHZZV1FFYVc1bWJ3eHpZV1psWDNOMVkyTmxjM01KYzJGbVpWOTNZWEp1QjNOMVkyTmxjM01PYzNWalkyVnpjeTFqYVhKamJHVVJjM1ZqWTJWemN5MXVieTFqYVhKamJHVUhkMkZwZEdsdVp3NTNZV2wwYVc1bkxXTnBjbU5zWlFSM1lYSnVDMmx1Wm04dFkybHlZMnhsQm1OaGJtTmxiQVp6WldGeVkyZ0ZZMnhsWVhJRVltRmphd1prWld4bGRHVUFBQUFBIikgZm9ybWF0KCJ0cnVldHlwZSIpfUBmb250LWZhY2V7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtZmFtaWx5OnVuaWJ0bjtzcmM6dXJsKCJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsQUFFQUFBQUtBSUFBQXdBZ1QxTXZNdlVUSFN3QUFBQ3NBQUFBWUdOdFlYRC8xTFNCQUFBQkRBQUFBVnBuYkhsbXowNkw5Z0FBQW1nQUFBUTBhR1ZoWkE1MDFjd0FBQWFjQUFBQU5taG9aV0VIN3dRNkFBQUcxQUFBQUNSb2JYUjRKQ29IQXdBQUJ2Z0FBQUFrYkc5allRUWVCU2dBQUFjY0FBQUFGRzFoZUhBQURRQkxBQUFITUFBQUFDQnVZVzFsNWhFUGtnQUFCMUFBQUFIYWNHOXpkQVFmQkNFQUFBa3NBQUFBUEFBRUJBVUJrQUFGQUFBQ21RTE1BQUFBandLWkFzd0FBQUhyQURNQkNRQUFBQUFBQUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVEbUFQLzlBOEQvd0FCQUE4QUFRQUFBQUFFQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFNQUFBQURBQUFBSEFBQkFBQUFBQUJVQUFNQUFRQUFBQndBQkFBNEFBQUFDZ0FJQUFJQUF1WUM1Z2JtVWYvOS8vOEFBT1lBNWdUbVVQLzkvLzhhQVJvQUdiY0FBd0FCQUFBQUFBQUFBQUFBQUFBQUFRWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBV0FBZVFMQkF1b0FGUUFBQVNZME56WXlGd0VlQVJVVUJnY0JCaUluSmpRM0FRRmdDQWdIRmdjQk5RUUVCQVQreXdjV0J3Z0lBU0lDeFFjWEJ3Z0kvdHdFQ3dVR0N3VCszQWdJQnhjSUFSTUFBQUFCQVZnQWVRSzVBdW9BRlFBQUNRSVdGQWNHSWljQkxnRTFORFkzQVRZeUZ4WVVBcm4rM2dFaUNBZ0lGUWorekFVREF3VUJOQWdWQ0FnQ3hmN3QvdTBJRndjSUNBRWtCQXNHQlFzRUFTUUlDQWNYQUFBQ0FOQUFhUU82QXcwQUd3QTBBQUFsRkFZaklTSW1OUkUwTmpzQk5TTWlCaFVSRkJZeklUSTJQUUVqRXljSEZ3Y09BdzhCTXpVK0FUYytBVDhDQnhjM0p3TlNCd1Q5d2dRR0JnU3d3QkVZR0JFQ1h4RVhMbWlrSVc1M1NvSmpQUVVCTHdVMkxTMTFRQVpxYmlHa0FhVUVCd2NFQWFnRkJqRVpFZjQwRVJrWkVxVUJLS3dqY3dFR1BGOStSd2dIUEc0ckt6SUVBUUYwSXF3Q0FBQUNBSmNBWGdOekF4c0FMd0JJQUFBQkxnRXZBaTRCSXlJR0R3SU9BUWNHRmg4QkJ3WVdGeDRCTXpJMlB3RVhIZ0V6TWpZM1BnRW5ORFVuTno0QkJUWW1Md0UzUGdFL0FSY2VBUjhCQnc0Qkh3RW5KZ1lQQVFOekFnb0c0MmNEQ2djR0NnTms0d1lLQWdFREJLVWxBUVVGQXdZRUFnVUR5c3dDQlFNR0NnTUNBUUVvb3dVRC9mb0JBd1NOd2dVSkFsWllBZ2tGdzR3RUF3RWlyZ1VMQks0Q0ZBWUlBUi9OQmdZR0JzNGpBUWdHQmd3RW4rSUdEQVFDQWdJQmJHb0JBUVlHQXdrREFRSGVvUVVNc0FZS0JJZ2RBUVlGc2JBRkJnRWJpUVFMQmNGYUF3RUNYQUFDQUw4QWRRTlFBeEVBSUFBOEFBQUJJZ1lkQVJRR0l5RWlKajBCTkNZaklnWWRBUjRCTXlFeU5qMEJOQ1luTGdFM0FTNEJJeUlHQndFR0ZCY2VBVE15TmpjQk5qSVhBUll5Tno0QkF2Y0tEZ3NIL25VSUN3NEtDUThCSmhzQmpCc25CQU1EQ1ZUKzVnb1lEUTBZQ2Y3bUJnY0RDUVVFQ0FRQkdRVVFCUUVhQnhNSEJnRUJzQTRKNGdjTEN3ZmlDUTRPQ2VJYkp5Y2I0Z1FKQXdRRE5BRWFDZ2tKQ2Y3bEJ4TUdCQU1EQXdFWkJRWCs1d1lIQmhNQUF3RGNBWFlETVFINkFBc0FGd0FqQUFBQk1qWTFOQ1lqSWdZVkZCWWhNalkxTkNZaklnWVZGQlloTWpZMU5DWWpJZ1lWRkJZQkhod25KeHdiSnljQkF4d25KeHdiSnljQkJCc25KeHNjSnljQmRpY2JHeWNuR3hzbkp4c2JKeWNiR3ljbkd4c25KeHNiSndBQUFRRHNBSjBERkFMT0FDVUFBQUUzTmpRbkppSVBBU2NtSWdjR0ZCOEJCd1lVRng0Qk16STJQd0VYSGdFek1qWTNOalFuQWlqc0NRa0lHQWpzNmdnWUNBa0o2dXdKQ1FRS0JnVUxCT3pzQkFzRkJnb0VDUWtCdStvSkZ3a0lDT3ZyQ0FnSUdBanI2d2dZQ0FRRUJBVHI3UVVFQlFRSUZ3a0FBUUJkQUl3RDBBTDRBQjRBQUFFV0ZSWUhBUVlIQmdjR0l5SXZBU1l2QVFFbUp6UTNQZ0VYQ1FFMk16WUR3d3dCRFAzL0JBVUNBZ2NHQ0FjRUF3TUQvdG9KQVFvTUhRd0JEQUhvQ3c4UEF1NExEUkFML2RzRUFnRUNBUUVDQWdNQ0FTRUxEZzhOQ1FJTC92a0NDQW9CQUFFQUFBQUJBQURMV2IyQlh3ODg5UUFMQkFBQUFBQUExWlRJcXdBQUFBRFZsTWlyQUYwQVhnUFFBeHNBQUFBSUFBSUFBQUFBQUFBQUFRQUFBOEQvd0FBQUJDb0FYUUJHQTlBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFrRUFBQUFCQUFCWUFRQUFWZ0VBQURRQkFBQWx3UUFBTDhFQUFEY0JBQUE3QVFxQUYwQUFBQUFBQ29BVkFDaUFSUUJjQUdtQWVJQ0dnQUJBQUFBQ1FCSkFBTUFBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQ3VBQUVBQUFBQUFBRUFEZ0FBQUFFQUFBQUFBQUlBQndBT0FBRUFBQUFBQUFNQURnQVZBQUVBQUFBQUFBUUFEZ0FqQUFFQUFBQUFBQVVBQ3dBeEFBRUFBQUFBQUFZQURnQThBQUVBQUFBQUFBb0FHZ0JLQUFNQUFRUUpBQUVBSEFCa0FBTUFBUVFKQUFJQURnQ0FBQU1BQVFRSkFBTUFIQUNPQUFNQUFRUUpBQVFBSEFDcUFBTUFBUVFKQUFVQUZnREdBQU1BQVFRSkFBWUFIQURjQUFNQUFRUUpBQW9BTkFENGMzUnlaV0Z0YVdOdmJtWnZiblJTWldkMWJHRnljM1J5WldGdGFXTnZibVp2Ym5SemRISmxZVzFwWTI5dVptOXVkRlpsY25OcGIyNGdNUzR3YzNSeVpXRnRhV052Ym1admJuUkdiMjUwSUdkbGJtVnlZWFJsWkNCaWVTQkpZMjlOYjI5dUxnQnpBSFFBY2dCbEFHRUFiUUJwQUdNQWJ3QnVBR1lBYndCdUFIUUFVZ0JsQUdjQWRRQnNBR0VBY2dCekFIUUFjZ0JsQUdFQWJRQnBBR01BYndCdUFHWUFid0J1QUhRQWN3QjBBSElBWlFCaEFHMEFhUUJqQUc4QWJnQm1BRzhBYmdCMEFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNQUJ6QUhRQWNnQmxBR0VBYlFCcEFHTUFid0J1QUdZQWJ3QnVBSFFBUmdCdkFHNEFkQUFnQUdjQVpRQnVBR1VBY2dCaEFIUUFaUUJrQUNBQVlnQjVBQ0FBU1FCakFHOEFUUUJ2QUc4QWJnQXVBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNRQUpBQUFCQWdFREFRUUJCUUVHQVFjQkNBRUpBQUFBQUFBQUFBQT0iKSBmb3JtYXQoInRydWV0eXBlIil9Ym9keSxodG1sey13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Ym9keXtvdmVyZmxvdy14OmhpZGRlbn1ib2R5LHVuaS1wYWdlLWJvZHl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1VSS1CRy0wKTtjb2xvcjp2YXIoLS1VSS1GRy0wKX1bY2xhc3MqPSIgdW5pLWljb24tIl0sW2NsYXNzXj11bmktaWNvbi1de2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1bmk7Zm9udC1zaXplOmluaGVyaXQ7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfVtjbGFzcyo9IiB1bmktYnRuLWljb24iXSxbY2xhc3NePXVuaS1idG4taWNvbl17ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdW5pYnRuO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtcmVuZGVyaW5nOmF1dG87LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH1bY2xhc3MqPSIgdW5pLWJ0bi1pY29uIl06YmVmb3JlLFtjbGFzc149dW5pLWJ0bi1pY29uXTpiZWZvcmV7bWFyZ2luOjA7Ym94LXNpemluZzpib3JkZXItYm94fS51bmktaWNvbi1zdWNjZXNzLW5vLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDgifS51bmktaWNvbi1lcnJvcjpiZWZvcmV7Y29udGVudDoiXEVBMEIifS51bmktbG9hZGluZyx1bmktYnV0dG9uW2xvYWRpbmddOmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCkgdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXhNakFpSUdobGFXZG9kRDBpTVRJd0lpQjJhV1YzUW05NFBTSXdJREFnTVRBd0lERXdNQ0krUEhCaGRHZ2dabWxzYkQwaWJtOXVaU0lnWkQwaVRUQWdNR2d4TURCMk1UQXdTREI2SWk4K1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTWpBaUlIZzlJalEyTGpVaUlIazlJalF3SWlCbWFXeHNQU0lqUlRsRk9VVTVJaUJ5ZUQwaU5TSWdjbms5SWpVaUlIUnlZVzV6Wm05eWJUMGlkSEpoYm5Oc1lYUmxLREFnTFRNd0tTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUl6azRPVFk1TnlJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2d6TUNBeE1EVXVPVGdnTmpVcElpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJak9VSTVPVGxCSWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpY205MFlYUmxLRFl3SURjMUxqazRJRFkxS1NJdlBqeHlaV04wSUhkcFpIUm9QU0kzSWlCb1pXbG5hSFE5SWpJd0lpQjRQU0kwTmk0MUlpQjVQU0kwTUNJZ1ptbHNiRDBpSTBFelFURkJNaUlnY25nOUlqVWlJSEo1UFNJMUlpQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpTZzVNQ0EyTlNBMk5Ta2lMejQ4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSXlNQ0lnZUQwaU5EWXVOU0lnZVQwaU5EQWlJR1pwYkd3OUlpTkJRa0U1UVVFaUlISjRQU0kxSWlCeWVUMGlOU0lnZEhKaGJuTm1iM0p0UFNKeWIzUmhkR1VvTVRJd0lEVTRMalkySURZMUtTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUkwSXlRakpDTWlJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2d4TlRBZ05UUXVNRElnTmpVcElpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJalFrRkNPRUk1SWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpY205MFlYUmxLREU0TUNBMU1DQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5ETWtNd1F6RWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb0xURTFNQ0EwTlM0NU9DQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5EUWtOQ1EwSWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb0xURXlNQ0EwTVM0ek5DQTJOU2tpTHo0OGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0l5TUNJZ2VEMGlORFl1TlNJZ2VUMGlOREFpSUdacGJHdzlJaU5FTWtReVJESWlJSEo0UFNJMUlpQnllVDBpTlNJZ2RISmhibk5tYjNKdFBTSnliM1JoZEdVb0xUa3dJRE0xSURZMUtTSXZQanh5WldOMElIZHBaSFJvUFNJM0lpQm9aV2xuYUhROUlqSXdJaUI0UFNJME5pNDFJaUI1UFNJME1DSWdabWxzYkQwaUkwUkJSRUZFUVNJZ2NuZzlJalVpSUhKNVBTSTFJaUIwY21GdWMyWnZjbTA5SW5KdmRHRjBaU2d0TmpBZ01qUXVNRElnTmpVcElpOCtQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU1qQWlJSGc5SWpRMkxqVWlJSGs5SWpRd0lpQm1hV3hzUFNJalJUSkZNa1V5SWlCeWVEMGlOU0lnY25rOUlqVWlJSFJ5WVc1elptOXliVDBpY205MFlYUmxLQzB6TUNBdE5TNDVPQ0EyTlNraUx6NDhMM04yWno0PSIpIG5vLXJlcGVhdH0udW5pLWxvYWRpbmd7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LXdlYmtpdC1hbmltYXRpb246dW5pLWxvYWRpbmcgMXMgc3RlcHMoMTIpIGluZmluaXRlO2FuaW1hdGlvbjp1bmktbG9hZGluZyAxcyBzdGVwcygxMikgaW5maW5pdGU7YmFja2dyb3VuZC1zaXplOjEwMCV9QC13ZWJraXQta2V5ZnJhbWVzIHVuaS1sb2FkaW5nezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUBrZXlmcmFtZXMgdW5pLWxvYWRpbmd7MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19LnVuaS1tYXNre3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5O3RvcDowO3JpZ2h0OjA7bGVmdDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSl9LnVuaS1mYWRlLWVudGVyLWFjdGl2ZSwudW5pLWZhZGUtbGVhdmUtYWN0aXZley13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tZHVyYXRpb246LjI1czstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHk7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2V9LnVuaS1mYWRlLWVudGVyLC51bmktZmFkZS1sZWF2ZS1hY3RpdmV7b3BhY2l0eTowfVtudnVlXSB1bmktbGFiZWwsW252dWVdIHVuaS1zY3JvbGwtdmlldyxbbnZ1ZV0gdW5pLXN3aXBlci1pdGVtLFtudnVlXSB1bmktdmlld3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtc2hyaW5rOjA7ZmxleC1zaHJpbms6MDstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4LWdyb3c6MDtmbGV4LWdyb3c6MDstd2Via2l0LWZsZXgtYmFzaXM6YXV0bztmbGV4LWJhc2lzOmF1dG87LXdlYmtpdC1ib3gtYWxpZ246c3RyZXRjaDstd2Via2l0LWFsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24taXRlbXM6c3RyZXRjaDstd2Via2l0LWFsaWduLWNvbnRlbnQ6ZmxleC1zdGFydDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnR9W252dWVdIHVuaS1idXR0b257bWFyZ2luOjB9W252dWUtZGlyLXJvd10gdW5pLWxhYmVsLFtudnVlLWRpci1yb3ddIHVuaS1zd2lwZXItaXRlbSxbbnZ1ZS1kaXItcm93XSB1bmktdmlld3std2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd31bbnZ1ZS1kaXItY29sdW1uXSB1bmktbGFiZWwsW252dWUtZGlyLWNvbHVtbl0gdW5pLXN3aXBlci1pdGVtLFtudnVlLWRpci1jb2x1bW5dIHVuaS12aWV3ey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn1bbnZ1ZS1kaXItcm93LXJldmVyc2VdIHVuaS1sYWJlbCxbbnZ1ZS1kaXItcm93LXJldmVyc2VdIHVuaS1zd2lwZXItaXRlbSxbbnZ1ZS1kaXItcm93LXJldmVyc2VdIHVuaS12aWV3ey13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpyZXZlcnNlOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2V9W252dWUtZGlyLWNvbHVtbi1yZXZlcnNlXSB1bmktbGFiZWwsW252dWUtZGlyLWNvbHVtbi1yZXZlcnNlXSB1bmktc3dpcGVyLWl0ZW0sW252dWUtZGlyLWNvbHVtbi1yZXZlcnNlXSB1bmktdmlld3std2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOnJldmVyc2U7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1bbnZ1ZV0gdW5pLWltYWdlLFtudnVlXSB1bmktaW5wdXQsW252dWVdIHVuaS1zY3JvbGwtdmlldyxbbnZ1ZV0gdW5pLXN3aXBlcixbbnZ1ZV0gdW5pLXN3aXBlci1pdGVtLFtudnVlXSB1bmktdGV4dCxbbnZ1ZV0gdW5pLXRleHRhcmVhLFtudnVlXSB1bmktdmlkZW8sW252dWVdIHVuaS12aWV3e3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjowIHNvbGlkICMwMDA7Ym94LXNpemluZzpib3JkZXItYm94fVtudnVlXSB1bmktc3dpcGVyLWl0ZW17cG9zaXRpb246YWJzb2x1dGV9aHRtbHstLVVJLUJHOiNmZmY7LS1VSS1CRy0xOiNmN2Y3Zjc7LS1VSS1CRy0yOiNmZmY7LS1VSS1CRy0zOiNmN2Y3Zjc7LS1VSS1CRy00OiM0YzRjNGM7LS1VSS1CRy01OiNmZmY7LS1VSS1GRzojMDAwOy0tVUktRkctMDpyZ2JhKDAsMCwwLDAuOSk7LS1VSS1GRy1IQUxGOnJnYmEoMCwwLDAsMC45KTstLVVJLUZHLTE6cmdiYSgwLDAsMCwwLjUpOy0tVUktRkctMjpyZ2JhKDAsMCwwLDAuMyk7LS1VSS1GRy0zOnJnYmEoMCwwLDAsMC4xKX11bmktYXBwe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9dW5pLWFwcCx1bmktcGFnZS1oZWFke2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94fXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWR7cG9zaXRpb246Zml4ZWQ7bGVmdDp2YXIoLS13aW5kb3ctbGVmdCk7cmlnaHQ6dmFyKC0td2luZG93LXJpZ2h0KTtoZWlnaHQ6NDRweDtoZWlnaHQ6Y2FsYyg0NHB4ICsgY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LXRvcCkpO2hlaWdodDpjYWxjKDQ0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpO3BhZGRpbmc6N3B4IDNweDtwYWRkaW5nLXRvcDpjYWxjKDdweCArIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApKTtwYWRkaW5nLXRvcDpjYWxjKDdweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSk7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JveC1zaXppbmc6Ym9yZGVyLWJveDt6LWluZGV4Ojk5ODtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwMDstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6YWxsO3RyYW5zaXRpb24tcHJvcGVydHk6YWxsfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtdGl0bGVQZW5ldHJhdGUsdW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC10aXRsZVBlbmV0cmF0ZSAudW5pLXBhZ2UtaGVhZC1iZCx1bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXRpdGxlUGVuZXRyYXRlIC51bmktcGFnZS1oZWFkLWJkICp7cG9pbnRlci1ldmVudHM6bm9uZX11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXRpdGxlUGVuZXRyYXRlICp7cG9pbnRlci1ldmVudHM6YXV0b311bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLnVuaS1wYWdlLWhlYWQtdHJhbnNwYXJlbnQgLnVuaS1wYWdlLWhlYWQtZnQ+ZGl2ey13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWR+LnVuaS1wbGFjZWhvbGRlcnt3aWR0aDoxMDAlO2hlaWdodDo0NHB4O2hlaWdodDpjYWxjKDQ0cHggKyBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtdG9wKSk7aGVpZ2h0OmNhbGMoNDRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSl9dW5pLXBhZ2UtaGVhZCAudW5pLXBsYWNlaG9sZGVyLXRpdGxlUGVuZXRyYXRle3BvaW50ZXItZXZlbnRzOm5vbmV9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZCAqe2JveC1zaXppbmc6Ym9yZGVyLWJveH11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLWhke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjE2cHh9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1iZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjcwcHg7cmlnaHQ6NzBweDttaW4td2lkdGg6MH0udW5pLXBhZ2UtaGVhZC1idG57cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6YXV0bzttYXJnaW46MCAycHg7d29yZC1icmVhazprZWVwLWFsbDt3aGl0ZS1zcGFjZTpwcmU7Y3Vyc29yOnBvaW50ZXJ9LnVuaS1wYWdlLWhlYWQtdHJhbnNwYXJlbnQgLnVuaS1wYWdlLWhlYWQtYnRue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpfXVuaS1wYWdlLWhlYWQgLnVuaS1idG4taWNvbntvdmVyZmxvdzpoaWRkZW47bWluLXdpZHRoOjFlbX0udW5pLXBhZ2UtaGVhZC1idG4tcmVkLWRvdDphZnRlcntjb250ZW50OmF0dHIoYmFkZ2UtdGV4dCk7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjojZmZmO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7bGluZS1oZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjE4cHg7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KSB0cmFuc2xhdGUoNDAlLC00MCUpO3RyYW5zZm9ybTpzY2FsZSguNSkgdHJhbnNsYXRlKDQwJSwtNDAlKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO3RyYW5zZm9ybS1vcmlnaW46MTAwJSAwfS51bmktcGFnZS1oZWFkLWJ0bi1yZWQtZG90W2JhZGdlLXRleHRdOmFmdGVye2ZvbnQtc2l6ZToxMnB4O3dpZHRoOmF1dG87bWluLXdpZHRoOjE4cHg7bWF4LXdpZHRoOjQycHg7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDNweDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNykgdHJhbnNsYXRlKDQwJSwtNDAlKTt0cmFuc2Zvcm06c2NhbGUoLjcpIHRyYW5zbGF0ZSg0MCUsLTQwJSl9LnVuaS1wYWdlLWhlYWQtYnRuLXNlbGVjdD4udW5pLWJ0bi1pY29uOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OnVuaWJ0bjtjb250ZW50OiJcZTYwMSI7bWFyZ2luLWxlZnQ6MnB4Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpIHNjYWxlKC44KTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZykgc2NhbGUoLjgpfS51bmktcGFnZS1oZWFkLXNlYXJjaHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO21hcmdpbjowIDJweDtsaW5lLWhlaWdodDozMHB4O2ZvbnQtc2l6ZToxNXB4fS51bmktcGFnZS1oZWFkLXNlYXJjaC1pbnB1dHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmctbGVmdDozNHB4O3RleHQtYWxpZ246bGVmdH0udW5pLXBhZ2UtaGVhZC1zZWFyY2gtcGxhY2Vob2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cGFkZGluZy1sZWZ0OjM0cHg7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtYnJlYWs6a2VlcC1hbGw7d2hpdGUtc3BhY2U6cHJlfS51bmktcGFnZS1oZWFkLXNlYXJjaC1wbGFjZWhvbGRlci1yaWdodHtyaWdodDowfS51bmktcGFnZS1oZWFkLXNlYXJjaC1wbGFjZWhvbGRlci1jZW50ZXJ7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0udW5pLXBhZ2UtaGVhZC1zZWFyY2gtcGxhY2Vob2xkZXI6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MnB4O3dpZHRoOjMwcHg7Y29udGVudDoiXGVhMGUiO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjIwcHg7Zm9udC1mYW1pbHk6dW5pO3RleHQtYWxpZ246Y2VudGVyfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtZnR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlO2ZvbnQtc2l6ZToxM3B4fXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWRfX3RpdGxle2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDozMHB4O3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc311bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkX190aXRsZSAudW5pLWxvYWRpbmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW4tdG9wOi0zcHh9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZF9fdGl0bGUgLnVuaS1wYWdlLWhlYWRfX3RpdGxlX2ltYWdle3dpZHRoOmF1dG87aGVpZ2h0OjI2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtc2hhZG93e292ZXJmbG93OnZpc2libGV9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1zaGFkb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MTAwJTtoZWlnaHQ6NXB4O2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1zaGFkb3ctZ3JleTphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JleS5wbmcpfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtc2hhZG93LWJsdWU6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jZG4uZGNsb3VkLm5ldC5jbi9pbWcvc2hhZG93LWJsdWUucG5nKX11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXNoYWRvdy1ncmVlbjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JlZW4ucG5nKX11bmktcGFnZS1oZWFkIC51bmktcGFnZS1oZWFkLXNoYWRvdy1vcmFuZ2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cHM6Ly9jZG4uZGNsb3VkLm5ldC5jbi9pbWcvc2hhZG93LW9yYW5nZS5wbmcpfXVuaS1wYWdlLWhlYWQgLnVuaS1wYWdlLWhlYWQtc2hhZG93LXJlZDphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctcmVkLnBuZyl9dW5pLXBhZ2UtaGVhZCAudW5pLXBhZ2UtaGVhZC1zaGFkb3cteWVsbG93OmFmdGVye2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2RuLmRjbG91ZC5uZXQuY24vaW1nL3NoYWRvdy15ZWxsb3cucG5nKX11bmktcGFnZS1oZWFkIC51bmktaWNvbi1jbGVhcnstd2Via2l0LWFsaWduLXNlbGY6Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyO3BhZGRpbmctcmlnaHQ6NXB4fXVuaS1wYWdlLXdyYXBwZXJ7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX11bmktcGFnZS1oZWFkW3VuaS1wYWdlLWhlYWQtdHlwZT1kZWZhdWx0XX51bmktcGFnZS13cmFwcGVye2hlaWdodDpjYWxjKDEwMCUgLSA0NHB4KTtoZWlnaHQ6Y2FsYygxMDAlIC0gNDRweCAtIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC10b3ApKTtoZWlnaHQ6Y2FsYygxMDAlIC0gNDRweCAtIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSl9dW5pLXBhZ2UtYm9keSx1bmktcGFnZS1yZWZyZXNoe2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCV9dW5pLXBhZ2UtcmVmcmVzaHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtoZWlnaHQ6NDBweH11bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDotNDVweDtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNTAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC01MCUsMCwwKTtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzowIDFweCA2cHggcmdiYSgwLDAsMCwuMTE3NjQ3KSwwIDFweCA0cHggcmdiYSgwLDAsMCwuMTE3NjQ3KTtkaXNwbGF5Om5vbmU7ei1pbmRleDo5OTd9dW5pLXBhZ2UtcmVmcmVzaCAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoLWlubmVye3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXItcmFkaXVzOjUwJX11bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoLWlubmVye2xpbmUtaGVpZ2h0OjB9dW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1hYm9ydGluZyAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoLnVuaS1wYWdlLXJlZnJlc2gtLXB1bGxpbmcgLnVuaS1wYWdlLXJlZnJlc2gsdW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1yZWFjaGVkIC51bmktcGFnZS1yZWZyZXNoLHVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tcmVmcmVzaGluZyAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoLnVuaS1wYWdlLXJlZnJlc2gtLXJlc3RvcmluZyAudW5pLXBhZ2UtcmVmcmVzaCx1bmktcGFnZS1yZWZyZXNoIC51bmktcGFnZS1yZWZyZXNoLWlubmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tYWJvcnRpbmcgLnVuaS1wYWdlLXJlZnJlc2hfX3NwaW5uZXIsdW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1wdWxsaW5nIC51bmktcGFnZS1yZWZyZXNoX19zcGlubmVyLHVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tcmVhY2hlZCAudW5pLXBhZ2UtcmVmcmVzaF9fc3Bpbm5lcix1bmktcGFnZS1yZWZyZXNoLnVuaS1wYWdlLXJlZnJlc2gtLXJlZnJlc2hpbmcgLnVuaS1wYWdlLXJlZnJlc2hfX2ljb24sdW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1yZXN0b3JpbmcgLnVuaS1wYWdlLXJlZnJlc2hfX2ljb257ZGlzcGxheTpub25lfXVuaS1wYWdlLXJlZnJlc2gudW5pLXBhZ2UtcmVmcmVzaC0tcmVmcmVzaGluZyAudW5pLXBhZ2UtcmVmcmVzaF9fc3Bpbm5lcnstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBjZW50ZXI7LXdlYmtpdC1hbmltYXRpb246dW5pLXBhZ2UtcmVmcmVzaC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp1bmktcGFnZS1yZWZyZXNoLXJvdGF0ZSAycyBsaW5lYXIgaW5maW5pdGV9dW5pLXBhZ2UtcmVmcmVzaC51bmktcGFnZS1yZWZyZXNoLS1yZWZyZXNoaW5nIC51bmktcGFnZS1yZWZyZXNoX19wYXRoe3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2UtbGluZWNhcDpyb3VuZDstd2Via2l0LWFuaW1hdGlvbjp1bmktcGFnZS1yZWZyZXNoLWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSx1bmktcGFnZS1yZWZyZXNoLWNvbG9yZnVsIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO2FuaW1hdGlvbjp1bmktcGFnZS1yZWZyZXNoLWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSx1bmktcGFnZS1yZWZyZXNoLWNvbG9yZnVsIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlfUAtd2Via2l0LWtleWZyYW1lcyB1bmktcGFnZS1yZWZyZXNoLXJvdGF0ZXt0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIHVuaS1wYWdlLXJlZnJlc2gtcm90YXRle3Rvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxdHVybik7dHJhbnNmb3JtOnJvdGF0ZSgxdHVybil9fUAtd2Via2l0LWtleWZyYW1lcyB1bmktcGFnZS1yZWZyZXNoLWRhc2h7MCV7c3Ryb2tlLWRhc2hhcnJheToxLDIwMDtzdHJva2UtZGFzaG9mZnNldDowfTUwJXtzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMzVweH10b3tzdHJva2UtZGFzaGFycmF5Ojg5LDIwMDtzdHJva2UtZGFzaG9mZnNldDotMTI0cHh9fUBrZXlmcmFtZXMgdW5pLXBhZ2UtcmVmcmVzaC1kYXNoezAle3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MH01MCV7c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTM1cHh9dG97c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTEyNHB4fX11bmktcGFnZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnVuaS1hc3luYy1lcnJvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtjb2xvcjojOTk5O3BhZGRpbmc6MTAwcHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcn0udW5pLWFzeW5jLWxvYWRpbmd7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7cGFkZGluZzo1MHB4O3RleHQtYWxpZ246Y2VudGVyfS51bmktYXN5bmMtbG9hZGluZyAudW5pLWxvYWRpbmd7d2lkdGg6MzBweDtoZWlnaHQ6MzBweH1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTp1bmltYXBidG47c3JjOnVybCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFBRUFBQUFLQUlBQUF3QWdUMU12TWtMTFhpUUFBQUNzQUFBQVlHTnRZWEFBRGUzWUFBQUJEQUFBQVVKbmJIbG16Q2VPRWdBQUFsQUFBQUQ0YUdWaFpCY0gvTmtBQUFOSUFBQUFObWhvWldFSHZnT2lBQUFEZ0FBQUFDUm9iWFI0QkFBQUFBQUFBNlFBQUFBR2JHOWpZUUI4QUFBQUFBT3NBQUFBQm0xaGVIQUJEd0JsQUFBRHRBQUFBQ0J1WVcxbGF6NXgwQUFBQTlRQUFBTFpjRzl6ZEFFUUFBSUFBQWF3QUFBQUp3QUVCQUFCa0FBRkFBZ0NpUUxNQUFBQWp3S0pBc3dBQUFIckFESUJDQUFBQWdBRkF3QUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUJRWmtWa0FFRHNNdXd5QTREL2dBQmNBNEFBZ0FBQUFBRUFBQUFBQUFBQUFBQUFBQ0FBQUFBQUFBTUFBQUFEQUFBQUhBQUJBQUFBQUFBOEFBTUFBUUFBQUJ3QUJBQWdBQUFBQkFBRUFBRUFBT3d5Ly84QUFPd3kvLzhUendBQkFBQUFBQUFBQVFZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBRC9vQVBnQTJBQUNBQXdBRmdBQUFFZUFUSTJOQ1lpQmdVakxnRW5OVFFtSWdZZEFRNEJCeU1pQmhRV093RWVBUmNWRkJZeU5qMEJQZ0UzTXpJMk5DWUJOVFFtSWdZZEFTNEJKek15TmpRbUt3RStBVGNWRkJZeU5qMEJIZ0VYSXlJR0ZCWTdBUTRCQWJBQkxVUXRMVVF0QWc4aUQ5T2NFaHdTbk5NUElnNFNFZzRpRDlPY0Vod1NuTk1QSWc0U0V2NVNFaHdTZ2E4T1BnNFNFZzQrRHErQkVod1NnYThPUGc0U0VnNCtEcThCZ0NJdExVUXRMUUtjMHc4aURoSVNEaUlQMDV3U0hCS2MwdzhpRGhJU0RpSVAwNXdTSEJMK2dqNE9FaElPUGc2dmdSSWNFb0d2RGo0T0VoSU9QZzZ2Z1JJY0VvR3ZBQUVBQUFBQkFBQm1WKzB6WHc4ODlRQUxCQUFBQUFBQTJnUmNiZ0FBQUFEYUJGeHVBQUQvb0FQZ0EyQUFBQUFJQUFJQUFBQUFBQUFBQVFBQUE0RC9nQUJjQkFBQUFBQWdBK0FBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUVFQUFBQUFBQUFBQUFBQUFBQWZBQUFBQUVBQUFBQ0FGa0FBd0FBQUFBQUFnQUFBQW9BQ2dBQUFQOEFBQUFBQUFBQUFBQVNBTjRBQVFBQUFBQUFBQUFWQUFBQUFRQUFBQUFBQVFBUkFCVUFBUUFBQUFBQUFnQUhBQ1lBQVFBQUFBQUFBd0FSQUMwQUFRQUFBQUFBQkFBUkFENEFBUUFBQUFBQUJRQUxBRThBQVFBQUFBQUFCZ0FSQUZvQUFRQUFBQUFBQ2dBckFHc0FBUUFBQUFBQUN3QVRBSllBQXdBQkJBa0FBQUFxQUtrQUF3QUJCQWtBQVFBaUFOTUFBd0FCQkFrQUFnQU9BUFVBQXdBQkJBa0FBd0FpQVFNQUF3QUJCQWtBQkFBaUFTVUFBd0FCQkFrQUJRQVdBVWNBQXdBQkJBa0FCZ0FpQVYwQUF3QUJCQWtBQ2dCV0FYOEFBd0FCQkFrQUN3QW1BZFVLUTNKbFlYUmxaQ0JpZVNCcFkyOXVabTl1ZEFwMWJtbGphRzl2YzJWc2IyTmhkR2x2YmxKbFozVnNZWEoxYm1samFHOXZjMlZzYjJOaGRHbHZiblZ1YVdOb2IyOXpaV3h2WTJGMGFXOXVWbVZ5YzJsdmJpQXhMakIxYm1samFHOXZjMlZzYjJOaGRHbHZia2RsYm1WeVlYUmxaQ0JpZVNCemRtY3lkSFJtSUdaeWIyMGdSbTl1ZEdWc2JHOGdjSEp2YW1WamRDNW9kSFJ3T2k4dlptOXVkR1ZzYkc4dVkyOXRBQW9BUXdCeUFHVUFZUUIwQUdVQVpBQWdBR0lBZVFBZ0FHa0FZd0J2QUc0QVpnQnZBRzRBZEFBS0FIVUFiZ0JwQUdNQWFBQnZBRzhBY3dCbEFHd0Fid0JqQUdFQWRBQnBBRzhBYmdCU0FHVUFad0IxQUd3QVlRQnlBSFVBYmdCcEFHTUFhQUJ2QUc4QWN3QmxBR3dBYndCakFHRUFkQUJwQUc4QWJnQjFBRzRBYVFCakFHZ0Fid0J2QUhNQVpRQnNBRzhBWXdCaEFIUUFhUUJ2QUc0QVZnQmxBSElBY3dCcEFHOEFiZ0FnQURFQUxnQXdBSFVBYmdCcEFHTUFhQUJ2QUc4QWN3QmxBR3dBYndCakFHRUFkQUJwQUc4QWJnQkhBR1VBYmdCbEFISUFZUUIwQUdVQVpBQWdBR0lBZVFBZ0FITUFkZ0JuQURJQWRBQjBBR1lBSUFCbUFISUFid0J0QUNBQVJnQnZBRzRBZEFCbEFHd0FiQUJ2QUNBQWNBQnlBRzhBYWdCbEFHTUFkQUF1QUdnQWRBQjBBSEFBT2dBdkFDOEFaZ0J2QUc0QWRBQmxBR3dBYkFCdkFDNEFZd0J2QUcwQUFBQUFBZ0FBQUFBQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQ0FBQUJBZ0FBIikgZm9ybWF0KCJ0cnVldHlwZSIpfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6I2Y4ZjhmOH0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm1hcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MzAwcHh9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5tYXAtbG9jYXRpb257cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7Ym90dG9tOjUwJTt3aWR0aDozMnB4O2hlaWdodDo1MnB4O21hcmdpbi1sZWZ0Oi0xNnB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtc2l6ZToxMDAlfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWFwLW1vdmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjUwcHg7cmlnaHQ6MTBweDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDo0MHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDVweCAxcHggcmdiYSgwLDAsMCwuMyl9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5tYXAtbW92ZT5pe2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1bmltYXBidG47bGluZS1oZWlnaHQ6aW5oZXJpdDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MjRweDt0ZXh0LXJlbmRlcmluZzphdXRvOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWR9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5uYXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjQ0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMCwwLDAsLjMpLHJnYmEoMCwwLDAsMCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDE4MGRlZyxyZ2JhKDAsMCwwLC4zKSxyZ2JhKDAsMCwwLDApKX0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm5hdi1idG57cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O3RvcDowO2xlZnQ6MDt3aWR0aDo2MHB4O2hlaWdodDo0NHB4O3BhZGRpbmc6NnB4O2xpbmUtaGVpZ2h0OjMycHg7Zm9udC1zaXplOjI2cHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cG9pbnRlcn0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm5hdi1idG4uY29uZmlybXtsZWZ0OmF1dG87cmlnaHQ6MH0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLm5hdi1idG4uZGlzYWJsZXtvcGFjaXR5Oi40fS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubmF2LWJ0bj4udW5pLWJ0bi1pY29ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsaW5lLWhlaWdodDppbmhlcml0O2JvcmRlci1yYWRpdXM6MnB4fS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubmF2LWJ0bi5jb25maXJtPi51bmktYnRuLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3YWZmfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MzAwcHg7bGVmdDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAuc2VhcmNoe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O2hlaWdodDo1MHB4O3BhZGRpbmc6OHB4O2xpbmUtaGVpZ2h0OjM0cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQtY29sb3I6I2ZmZn0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLnNlYXJjaC1pbnB1dHstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7ZmxleDoxO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NXB4O3BhZGRpbmc6MCA1cHg7YmFja2dyb3VuZDojZWJlYmVifS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAuc2VhcmNoLWJ0bnttYXJnaW4tbGVmdDo1cHg7Y29sb3I6IzAwN2FmZjtmb250LXNpemU6MTdweDt0ZXh0LWFsaWduOmNlbnRlcn0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLmxpc3R7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwcHg7bGVmdDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7cGFkZGluZy1ib3R0b206MTBweH0udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLmxpc3QtbG9hZGluZ3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6NTBweDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubGlzdC1pdGVte3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MTBweDtwYWRkaW5nLXJpZ2h0OjQwcHg7Y3Vyc29yOnBvaW50ZXJ9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5saXN0LWl0ZW0uc2VsZWN0ZWQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTBweDt3aWR0aDozMHB4O2hlaWdodDozMHB4O21hcmdpbi10b3A6LTE1cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29udGVudDoiXGU2NTEiO2ZvbnQ6bm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIHVuaWJ0bjtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozMHB4O2NvbG9yOiMwMDdhZmY7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtoZWlnaHQ6MXB4O2xlZnQ6MTBweDtib3R0b206MDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2QzZDNkM30udW5pLXN5c3RlbS1jaG9vc2UtbG9jYXRpb24gLmxpc3QtaXRlbS10aXRsZXtmb250LXNpemU6MTRweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5saXN0LWl0ZW0tZGV0YWlse2ZvbnQtc2l6ZToxMnB4O2NvbG9yOmdyZXk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ODAwcHgpey51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWFwe3RvcDowO2hlaWdodDoxMDAlfS51bmktc3lzdGVtLWNob29zZS1sb2NhdGlvbiAubWFwLW1vdmV7Ym90dG9tOjEwcHg7cmlnaHQ6MzIwcHh9LnVuaS1zeXN0ZW0tY2hvb3NlLWxvY2F0aW9uIC5tZW51e3RvcDo1NHB4O2xlZnQ6YXV0bztyaWdodDoxMHB4O3dpZHRoOjMwMHB4O2JvdHRvbToxMHB4O21heC1oZWlnaHQ6NjAwcHg7Ym94LXNoYWRvdzowIDAgMjBweCA1cHggcmdiYSgwLDAsMCwuMyl9fS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb257ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiNmOGY4Zjg7ei1pbmRleDo5OTl9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2JvdHRvbTo4MHB4O2hlaWdodDphdXRvfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmluZm97cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjgwcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6MTVweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MS41fS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmluZm8+Lm5hbWV7Zm9udC1zaXplOjE3cHg7Y29sb3I6IzExMX0udW5pLXN5c3RlbS1vcGVuLWxvY2F0aW9uIC5pbmZvPi5hZGRyZXNze2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM2NjZ9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAuaW5mbz4ubmF2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTVweDt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi10b3A6LTI1cHg7YmFja2dyb3VuZC1jb2xvcjojMDA3YWZmfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmluZm8+Lm5hdj5zdmd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3BhZGRpbmc6MTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwLW1vdmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjUwcHg7cmlnaHQ6MTBweDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDo0MHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTtwb2ludGVyLWV2ZW50czphdXRvO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDVweCAxcHggcmdiYSgwLDAsMCwuMyl9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwLW1vdmU+aXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdW5pbWFwYnRuO2xpbmUtaGVpZ2h0OmluaGVyaXQ7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjI0cHg7dGV4dC1yZW5kZXJpbmc6YXV0bzstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm5hdi1idG4tYmFja3twb3NpdGlvbjphYnNvbHV0ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7dG9wOjA7bGVmdDowO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7cGFkZGluZzo2cHg7bGluZS1oZWlnaHQ6MzJweDtmb250LXNpemU6MjZweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm5hdi1idG4tYmFjaz4udW5pLWJ0bi1pY29ue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsaW5lLWhlaWdodDppbmhlcml0O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNSl9LnVuaS1zeXN0ZW0tb3Blbi1sb2NhdGlvbiAubWFwLWNvbnRlbnR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7Ym90dG9tOjA7b3ZlcmZsb3c6aGlkZGVufS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm1hcC1jb250ZW50LmZpeC1wb3NpdGlvbnt0b3A6LTc0cHg7Ym90dG9tOi00NHB4fS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLm1hcC1jb250ZW50PmlmcmFtZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjpub25lfS51bmktc3lzdGVtLW9wZW4tbG9jYXRpb24gLmFjdFRvbmF2e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE2cHg7Ym90dG9tOjU2cHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDtib3JkZXItcmFkaXVzOjYwcHh9dW5pLWF1ZGlve2Rpc3BsYXk6bm9uZX11bmktYXVkaW9bY29udHJvbHNde2Rpc3BsYXk6aW5saW5lLWJsb2NrfXVuaS1hdWRpb1toaWRkZW5de2Rpc3BsYXk6bm9uZX0udW5pLWF1ZGlvLWRlZmF1bHR7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjMwMnB4O2hlaWdodDo2NXB4O2JhY2tncm91bmQ6I2ZjZmNmYztib3JkZXI6MXB4IHNvbGlkICNlMGUwZTA7Ym9yZGVyLXJhZGl1czoyLjVweDtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW59LnVuaS1hdWRpby1sZWZ0e3dpZHRoOjY1cHg7aGVpZ2h0OjY1cHg7ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLWNvbG9yOiNlNmU2ZTY7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCV9LnVuaS1hdWRpby1idXR0b257d2lkdGg6MjRweDtoZWlnaHQ6MjRweDttYXJnaW46MjAuNXB4O2JhY2tncm91bmQtc2l6ZTpjb3Zlcn0udW5pLWF1ZGlvLWJ1dHRvbi5wbGF5e2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFBWE5TUjBJQXJzNGM2UUFBQjRkSlJFRlVhQVhOV2cxTWxWVVl2cGNmSVJDSitNbkNhT0JsOGRPY09DRVFaOWttSTVjUUc1WWI2TWlmS2JNYUdWb2JPdGxpYlRXSERwZ3B4QlV3RjA3ODI2aUZzTWtZSmhnNTU5SmRHaVFTa1V6U0JBMFFrWjduNC91K25Yc3Z3ZjNqd3J1OTkveS8zL04rM3pudmVjOTdybGJqQUJvZkgzOEdZdGFBVjRNandEcXdIOWdIVEJvRTN3ZDNnQTNnaStCNnJWWTdoSFIyQ0tEOXdGbmdzK0JIWUd1Sll6aVdNcWlzY3dnUDh3THZCUStBSFVXVVJabGUxbXFodFhRQWhMdWk3eFp3UHZnRnNCRU5EZzcrRHJwMDY5YXQyejA5UGYwM2I5Nzh1Nm1wcVorZFZxMWFGUkFWRmVXL2FOR2lnTkRRMEpmRHdzSVNmWHg4d293RVRCVCtRcElQTHNmMEdwdW9tdnJYSWdVQVBoaGl6b0dYaStJSSt0cTFhei9vOWZwTEZSVVZkOFMyNmZKWldWa0xOMi9lbkJnVEUvUFcvUG56RjV2MGIwUDVIU2p4cDBtOVdYRmFCUUQrTll3NkMxYmYrdkR3Y0Y5RFE0TisvZnIxOWNpUG0wbTFvc0xUMDFONzZ0U3BOYUQzUFR3OEZncEQrVFhTb0VTclVHZVduVklCZ00vRWlES3dKMGVpUE5yUzBuSnN3NFlOTmQzZDNhT3NjeFNGaElTNFYxZFhweWNrSkdSQjVqeFo3akRTYlZEaVc3bHNscmlZMWNnVk12ampLRXJnUjBkSC96bDA2TkN1RlN0V2ZPZG84SHdrWlZMMndZTUhQM255NUFsTkxvblBQaTVqa1NwTWZ5YjlBaGpBYWRNSWxzQmpybmRtWjJmbm5UaHhvczlVd0V5VU16SXluajl5NUVnQjFnYjNFeEsveEJ1VFRTY3pCUUNlQy9abnNEVG5DUjZmOVlNYk4yNVFpTk1vT2pyYXM3VzF0Y2piMnp0Y2ZpalhSS3pwd2phYVFnQlBVMGxySTRIbnRPR2Jkelo0QXVZenQyL2Z2bTlzYk93ZXl5QmlPaWRqbENyNFk2UUF5clR6a3FsRXg5R1NrcEo5enBvMkJHTktmSFpSVWRGKzFEK1cyNGlOR0ZWU3B4QUFjeGVrcnlLOS9jdVhMeC9Gb3FwV2U4NWlCbFBwdmJpNHVCMHlCRTRsSGFiU3Z5eUxYMkFYeWhKNDJubVl5dFBzTUJjSSs4MFpXS1plR1FzeEVxdEVrZ0o0KzNTbTlzaDFHbTVTTTJFcUZmbldwc1JTVjFkWElZemJJMk5XdjBBcUdpWFhsKzRCZDFpaHMwWFp1M2Z2SGhnWUdOQlhWVlVsV0RUQXlrN3A2ZWtOSXlNajdmSXdZaVZtSXdXa052bzJ0cmdIQVFFQnkrQ2doVzdjdVBHTHZyNitMM2Z1M1BtU0pOQkJQOFIwOWVyVkh3VnhFd3JnVS9Bd2txUTAwREZUOGxhbXFrRUlDZ3FLS3k0dTFzTVU3bGk2ZEtuVkx2TC9QYmUwdExSRmFFc2lkaTErVWxCNW5nM2N0QllzV0xCVjZHUnhGbko0eWpJajdDWDM2dXZyUzFOVFUrdXdFTTNhcmEzQWwvZ2FUbCtFUEM2VmkvaE5SVWhIUjhkUFN0NVJxYnU3KzNOcjE2NzlyTCsvLzNCQlFZSHlZSnZGZDNWMWlUTmtOUlY0UlpGMkc2VGtIWjM2K3ZwRzV1WGxIY2FoNTlQazVHU2JqNUFZM3kxZ2k2QUNpc09rNFVsS2FKeUpyQlluc3VUYTJ0cmp6YzNONy9yNys5TjFzWW82T3pzZkNBTjBWRUI5R3p3R0NvMHpsblYxZGZWT1RFek1objNYbDVlWHgxcnpJQk9NZmxSQXN2OFVvcHhoclJGb1QxOHZMNjhRSEN1L2FtOXZ6N0ZVamdsR0h5b3c2eFFjSEJ4akt3Z3F3S0NUUkl3ZUtIbG5wWmhHRGZDN0xQNENKaGdIM1FDVXh6ZC9BbWJvQTBrUDh6Tk5jRHQrdzhaVXZIdjM3bCt0ZWRhU0pVdWVGZnJmcHdKMG9TVkx4TGlOMERnaldXeHNEeG9iRzc5SlNVbjUzaGFYUmFmVCtRckFPamlGREVvRmcwNUszdEVwZHVveGc4RndldVhLbFJsSlNVbTF0b0FucHZEd2NCNTVGVEpRQWRVRllNUk1hWEZraWwzNGw5emMzSzJSa1pFbFY2NWNlV1NQYkN6NDE0WHhGNmtBWFdmcGRNTndIeU5tUWdlN3NrTkRRM2RPbmp5NVB6QXdNTGV3c0xETExtRVlESk1iNU9ibUZpWExJZVo2Rnh6TkdPSytJRmV5azkxZjRlblRweU50YlczSElpSWlOc0hDTkNteTdVMXpjbktXQ1RJdUVEdS9BT244UktMUk1GYkpjSjlTdGpSbEJJTjk0WTQwWm1abWJvcU5qYTNpU2NyUzhkUDFJeWFFV3Q0VytrbVlhWVZJTEhBLzhHR2dsYkhLZGV2V3FWK0ZIYVlqT0dvZnc4MTFoY2ZaT1YxZlc5cHh6RTF3Y1hHSmxzY1NxNlNBK3FaaEpmYWk4bk4yd05IdERoYjBwdDdlWG9lOVFjcTFsUmczaFJ2TmtMdHl5dHVIZkFIbEtWT0krVUl3UXhZYVJvbHJhbXJTbVo4TGhMZWZKSUFuUm1LVlNGVUFIYmlxOHllcU5ScEdpV0U1WGxYS3M1V1dsWlV0aHUzL1NIaCt2b3hWcWxLbkVFdVlSdlRQZWU1Y3pqS2p4RENyMmJNVm5ZTkY5SU83ZlJSUUFva0h4SXVQZUNpZzN0NFlLY0FlVUNJWWlScmNmZmp3WVVkOGZQeUh6bzZQd3VKNFhMOSsvUUFXcmpJTE9IV21EdTVTQVdqSGE1MDBzQlNOWm9pYlVXS0d2Tm51RE9LYk53RlBMTHl0SVRZalV0ZUFXSXVPdk5iWnB0UXh4RjFaV1huWUdXdUNjNTdUUm5qemhNRmJHbUl5STdNcEpQYkFkTXBFdVF6c0tkYy9oaStqVDB0TE8rTm9FMHRUU1dzakw5aDU4dlA0NXFlOFlwcFNBUXFCRW1hWGZBeTBNbGJKY0ordFhxVU1VTU1kbHBzVUl1RTc4SllWTzg5bXpubjdMdm1VaDhnTCt4ektrblZTNmhtclpMaVBFVE5ycjFucG1ORzNvWHNnN0xDS2FGb2J4MXl6S2hLaEJFM3NGbkErbUNGdUk0SXlCdXlXellqYi9NSFFoK2xGTjA5U1BJeGdpcnhJbHhoZXBlSVdpSEw0MXZQQkZsOTBpNE10eWtPUk9mVlhBNHRBVDlZSmlzeUpQM3RNdTRnbkEyOWFCMlVZNFY0RFhnMW0vRk1IOWdNck1TZDZqd3dlOFB4dEFQTVU2SkMvMi93SHV5STJjTXNOQlJJQUFBQUFTVVZPUks1Q1lJST0pfS51bmktYXVkaW8tYnV0dG9uLnBhdXNle2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBREFBQUFBd0NBWUFBQUJYQXZtSEFBQUFBWE5TUjBJQXJzNGM2UUFBQmF0SlJFRlVhQVhWV2wxSXBGVVlubGxaR1VmM3dsejZNWEVSMUVTN3M4M1ZVREp3NktwZGFTVER3TW5ZRlNLNktOaXJvb0h1bGxLUUNOelFSalovd29tMXU5QUxRMG1UMWt0RmRFQldYTGRpYmFIMWp3bXg1em1lODNXK3oySG0rN2JabWM4WDNqbC83M3ZPODM3bi96M2o5YVNCam82TzhsQk5DN2daWEFVdUJ4ZUN6NEZKajhBUHdUSHdDbmdhUE9YMWV2Y1Jab2NBdWhBY0F0OEc3NEtkRW5Xb3l6cG9iR1lJamZuQm40RC9CcWVMV0JmcjlEdTF3bXRYQVpYblFQWTljQmo4SE5oRWUzdDdzYlcxdGZuMTlmVzdtNXViRDVhWGw3ZG5abVllVUtpcHFlbDhkWFYxVVVsSnlmbXlzcklMRlJVVjlYNi9uOFBNU3ZlUkVRWVBZSGdkV2dzVHBXMFpBUERQUTNrQy9KSmVDVUV2TGk3K05EZzQrRXNrRXZsZEwwc1ZENFZDejNaMWRiMVNXMXY3ZWdKajdrRC9Db3k0bDZxZWxBWUFmQjBxdVEwMnZubzhIcjgvT1RrWmFXdHJtem80T0RoSzFVaXljcC9QNXgwZkgyOEpCQUtoM054Y293M29zRGRhWWNSQ012MmtCZ0Q4TzFEK0J1eVRsY1RuNStjajdlM3QwWTJOalgrU1ZleTByTFMwOU96WTJGaXd2cjQrQk4xY3FYK0E4Q3FNK0U2bVR3Um5UdVRJREFuK0ZwSUMvT0hoNFYrOXZiMGZOelEwaktZYlBKdGtuYXliYmJBdENZTnQzNUpZWkpZNVNOZ0RjdGo4REZFQmZuZDNkNjI3dS92VDRlSGhQOHpxVHliVjBkSHhUSDkvLytmNStma1ZzZ1gyeEt1Smh0TUpBd0NlRS9ZM3NCaVBCRjlYVi9maDB0SVNLOGtZMWRUVStCWVdGdm8wSXpnbkxsb250bWtJQVR5WFNxNDJBank3a2w4KzArRDVsZGdtMjlhR0V6Rk5TSXdVRVdReUFEbGM1OVZTR2UvcjYvc3NVOFBtR0k3NWwyMFRBM0xqc29UWWlORWdZd2pCTXU2Q1BLdUlyNC9WcGgrVGFzeVF6R0prYm03dWJheE8xeVFFRHFWeURLVTlwdlVlK0FocEFaN3JQSmJLSHlqZ0J1S3lUVXdTQ3pFU3F5QmhBTDQrRDFQWFpaNkhtOVNUV0NwVi9VNURZaUVtVGUrNnhPd1JRd2lKRUFxL3BRQ1BCMFZGUmRmKzd3N0x1dEpKM0xHM3Q3ZHZhc2VPZHpHTUltb0lYVmFOOFd6ak52REVSa3pFcG5BaUZKalA0T3Z6TWhKUUJUeVlxYmpkRURvdjcrL3ZmNCs2cHUwd1pRY0dCaTdhclYvSldiQUZpTjJMbnpjZzhDT0Z1R2tWRkJTbzJhNzBVb1lFaEM1K09xV2dKb0F2K21kZVh0NWJXcGF0Nk03T3prMXRjN3ZNSWZTYTBseGRYZjFWeFoyRVRzR3o3c2ZSb1Y0c0Z0TXhOdE9BRjFoQXVnczZqcm4zbHhjbURWMFZEVEJ1UnJ4SmFZV3VqRm93bHRNQTQwTE5hNkFyVVd1Z0xCZ0xhWUJ5ZlhqVUhWYVRkMTNVZ3ZFY0RUalZSQVBvZEJKRTc0R0t1elcwWUh4RUErZ3hFMFRYaDRxN05iUmdmRWdEZUlRV1JMK05pcnMxdEdDTTBZQVZCWlpPSnhWM2EyakJ1RUlEcGhWWWVzeFUzRW5JWTRFVGVjbytqZzcxTEJpbmFjQVVXTnh1ZUZTbHg0eUNUbWgwZFBSTEo0QW9Pekl5OG9XVE5paExiTnB4bXBpbjFIMkFucmNyRkpxZG5mMEtNOTAxdHpGaVVvUTk0TTNHeHNZUFpIb0M5NEZXOWdCSm5FWVpvYThTQnkxaEdOTnVJV0lpTmcyUHdLd2JJUFlEZGhGOWxacWdLNkxFcEEwZll2M1BBSFFGOTRJYkNpa2RyY1hGeFdkVk90c2gvYWJFcE9HNElUR2J2Qkk5RUJBM2YzcUpvOUZvVUZQSWFwUk9YODF6VFl6RUtrZ05JUThzNHF3T0gyZDdQUFFTOS9UMHZLalMyUXFKUVhxc0ZZU3d4Q3JTcHNtSzZ5VmRpN3p4MEFQbW9WdXZzN1B6L1d4NTUramtIUm9hK2pvbkorY3A0Z0hkQVYrQ0FjYnJqY2tBU3NDSTArdmNwUUd3N2g2Q1ZyRHdSdk1DVFM4eHZ3YkxNMEZzeStLWkpoYSsxaENiaVl3NW9PZENrTTg2VjFVZWpXQlhabUpPc0EyMnBYa2VDSU92TkFtZm1rNE1JUVdhSVlaVHdpZW1ZREFZM2RyYWNzVVRVMUlEcEJHbjk1RlA5WWFjMktmem1WVXpna3NzSHhmQ1lPR0dSMmdRdlhwMGpORzNsT3loK3dLb3NyTHlrbVdNcTNxNFNZWEJ0aCs2bGFMdEVMM2hxcjhhMkFadUZZUWhydml6UjhwSmJBV2VLQTFqNk9GdUFUZURxOEQwOWhXQ2xjK0pwMGNlR0huLzVoV1d0OEMwL04zbVgxNUM0YkRuQ0l1QUFBQUFBRWxGVGtTdVFtQ0MpfS51bmktYXVkaW8tcmlnaHR7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDo2NXB4O21hcmdpbi1sZWZ0OjY1cHg7cGFkZGluZzoxMXB4IDE2LjVweCAxMy41cHggMTVweDtvdmVyZmxvdzpoaWRkZW59LnVuaS1hdWRpby10aW1le21hcmdpbi10b3A6My41cHg7aGVpZ2h0OjE2LjVweDtmb250LXNpemU6MTJweDtjb2xvcjojODg4O2Zsb2F0OnJpZ2h0fS51bmktYXVkaW8taW5mb3ttYXJnaW4tcmlnaHQ6NzBweDtvdmVyZmxvdzpoaWRkZW59LnVuaS1hdWRpby1uYW1le2hlaWdodDoyMi41cHg7bGluZS1oZWlnaHQ6MjIuNXB4O21hcmdpbi1ib3R0b206My41cHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6IzM1MzUzNX0udW5pLWF1ZGlvLWF1dGhvciwudW5pLWF1ZGlvLW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS51bmktYXVkaW8tYXV0aG9ye2hlaWdodDoxNC41cHg7bGluZS1oZWlnaHQ6MTQuNXB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiM4ODh9dW5pLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87cGFkZGluZy1sZWZ0OjE0cHg7cGFkZGluZy1yaWdodDoxNHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MThweDt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDoyLjU1NTU1NTU2O2JvcmRlci1yYWRpdXM6NXB4Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY4Zjg7Y3Vyc29yOnBvaW50ZXJ9dW5pLWJ1dHRvbltoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9dW5pLWJ1dHRvbjphZnRlcntjb250ZW50OiIgIjt3aWR0aDoyMDAlO2hlaWdodDoyMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC41KTt0cmFuc2Zvcm06c2NhbGUoLjUpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6MTBweH11bmktYnV0dG9uW25hdGl2ZV17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfXVuaS1idXR0b25bbmF0aXZlXSAudW5pLWJ1dHRvbi1jb3Zlci12aWV3LXdyYXBwZXJ7Ym9yZGVyOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH11bmktYnV0dG9uW25hdGl2ZV0gLnVuaS1idXR0b24tY292ZXItdmlldy1pbm5lcntwYWRkaW5nLWxlZnQ6MTRweDtwYWRkaW5nLXJpZ2h0OjE0cHh9dW5pLWJ1dHRvbiB1bmktY292ZXItdmlld3tsaW5lLWhlaWdodDppbmhlcml0O3doaXRlLXNwYWNlOmluaGVyaXR9dW5pLWJ1dHRvblt0eXBlPWRlZmF1bHRde2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZjhmOGY4fXVuaS1idXR0b25bdHlwZT1wcmltYXJ5XXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2FmZn11bmktYnV0dG9uW3R5cGU9d2Fybl17Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlNjQzNDB9dW5pLWJ1dHRvbltkaXNhYmxlZF17Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpO2N1cnNvcjpub3QtYWxsb3dlZH11bmktYnV0dG9uW2Rpc2FibGVkXTpub3QoW3R5cGVdKSx1bmktYnV0dG9uW2Rpc2FibGVkXVt0eXBlPWRlZmF1bHRde2NvbG9yOnJnYmEoMCwwLDAsLjMpO2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN311bmktYnV0dG9uW2Rpc2FibGVkXVt0eXBlPXByaW1hcnlde2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDEyMiwyNTUsLjYpfXVuaS1idXR0b25bZGlzYWJsZWRdW3R5cGU9d2Fybl17YmFja2dyb3VuZC1jb2xvcjojZWM4Yjg5fXVuaS1idXR0b25bdHlwZT1wcmltYXJ5XVtwbGFpbl17Y29sb3I6IzAwN2FmZjtib3JkZXI6MXB4IHNvbGlkICMwMDdhZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfXVuaS1idXR0b25bdHlwZT1wcmltYXJ5XVtwbGFpbl1bZGlzYWJsZWRde2NvbG9yOnJnYmEoMCwwLDAsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX11bmktYnV0dG9uW3R5cGU9cHJpbWFyeV1bcGxhaW5dOmFmdGVye2JvcmRlci13aWR0aDowfXVuaS1idXR0b25bdHlwZT1kZWZhdWx0XVtwbGFpbl17Y29sb3I6IzM1MzUzNTtib3JkZXI6MXB4IHNvbGlkICMzNTM1MzU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfXVuaS1idXR0b25bdHlwZT1kZWZhdWx0XVtwbGFpbl1bZGlzYWJsZWRde2NvbG9yOnJnYmEoMCwwLDAsLjIpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4yKX11bmktYnV0dG9uW3R5cGU9ZGVmYXVsdF1bcGxhaW5dOmFmdGVye2JvcmRlci13aWR0aDowfXVuaS1idXR0b25bcGxhaW5de2NvbG9yOiMzNTM1MzU7Ym9yZGVyOjFweCBzb2xpZCAjMzUzNTM1O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX11bmktYnV0dG9uW3BsYWluXVtkaXNhYmxlZF17Y29sb3I6cmdiYSgwLDAsMCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpfXVuaS1idXR0b25bcGxhaW5dOmFmdGVye2JvcmRlci13aWR0aDowfXVuaS1idXR0b25bcGxhaW5dW25hdGl2ZV0gLnVuaS1idXR0b24tY292ZXItdmlldy1pbm5lcntwYWRkaW5nOjB9dW5pLWJ1dHRvblt0eXBlPXdhcm5dW3BsYWluXXtjb2xvcjojZTY0MzQwO2JvcmRlcjoxcHggc29saWQgI2U2NDM0MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLWJ1dHRvblt0eXBlPXdhcm5dW3BsYWluXVtkaXNhYmxlZF17Y29sb3I6cmdiYSgwLDAsMCwuMik7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpfXVuaS1idXR0b25bdHlwZT13YXJuXVtwbGFpbl06YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjB9dW5pLWJ1dHRvbltzaXplPW1pbmlde2Rpc3BsYXk6aW5saW5lLWJsb2NrO2xpbmUtaGVpZ2h0OjIuMztmb250LXNpemU6MTNweDtwYWRkaW5nOjAgMS4zNGVtfXVuaS1idXR0b25bc2l6ZT1taW5pXVtuYXRpdmVde3BhZGRpbmc6MH11bmktYnV0dG9uW3NpemU9bWluaV1bbmF0aXZlXSAudW5pLWJ1dHRvbi1jb3Zlci12aWV3LWlubmVye3BhZGRpbmc6MCAxLjM0ZW19dW5pLWJ1dHRvbltsb2FkaW5nXTpub3QoW2Rpc2FibGVkXSl7Y3Vyc29yOnByb2dyZXNzfXVuaS1idXR0b25bbG9hZGluZ106YmVmb3Jle2NvbnRlbnQ6IiAiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOy13ZWJraXQtYW5pbWF0aW9uOnVuaS1sb2FkaW5nIDFzIHN0ZXBzKDEyKSBpbmZpbml0ZTthbmltYXRpb246dW5pLWxvYWRpbmcgMXMgc3RlcHMoMTIpIGluZmluaXRlO2JhY2tncm91bmQtc2l6ZToxMDAlfXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT1wcmltYXJ5XXtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNik7YmFja2dyb3VuZC1jb2xvcjojMDA2MmNjfXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT1wcmltYXJ5XVtwbGFpbl17Y29sb3I6IzAwN2FmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLWJ1dHRvbltsb2FkaW5nXVt0eXBlPWRlZmF1bHRde2NvbG9yOnJnYmEoMCwwLDAsLjYpO2JhY2tncm91bmQtY29sb3I6I2RlZGVkZX11bmktYnV0dG9uW2xvYWRpbmddW3R5cGU9ZGVmYXVsdF1bcGxhaW5de2NvbG9yOiMzNTM1MzU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApfXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT13YXJuXXtjb2xvcjpoc2xhKDAsMCUsMTAwJSwuNik7YmFja2dyb3VuZC1jb2xvcjojY2UzYzM5fXVuaS1idXR0b25bbG9hZGluZ11bdHlwZT13YXJuXVtwbGFpbl17Y29sb3I6I2U2NDM0MDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCl9dW5pLWJ1dHRvbltsb2FkaW5nXVtuYXRpdmVdOmJlZm9yZXtjb250ZW50Om5vbmV9LmJ1dHRvbi1ob3Zlcntjb2xvcjpyZ2JhKDAsMCwwLC42KTtiYWNrZ3JvdW5kLWNvbG9yOiNkZWRlZGV9LmJ1dHRvbi1ob3ZlcltwbGFpbl17Y29sb3I6cmdiYSg1Myw1Myw1MywuNik7Ym9yZGVyLWNvbG9yOnJnYmEoNTMsNTMsNTMsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYnV0dG9uLWhvdmVyW3R5cGU9cHJpbWFyeV17Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpO2JhY2tncm91bmQtY29sb3I6IzAwNjJjY30uYnV0dG9uLWhvdmVyW3R5cGU9cHJpbWFyeV1bcGxhaW5de2NvbG9yOnJnYmEoMCwxMjIsMjU1LC42KTtib3JkZXItY29sb3I6cmdiYSgwLDEyMiwyNTUsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYnV0dG9uLWhvdmVyW3R5cGU9ZGVmYXVsdF17Y29sb3I6cmdiYSgwLDAsMCwuNik7YmFja2dyb3VuZC1jb2xvcjojZGVkZWRlfS5idXR0b24taG92ZXJbdHlwZT1kZWZhdWx0XVtwbGFpbl17Y29sb3I6cmdiYSg1Myw1Myw1MywuNik7Ym9yZGVyLWNvbG9yOnJnYmEoNTMsNTMsNTMsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYnV0dG9uLWhvdmVyW3R5cGU9d2Fybl17Y29sb3I6aHNsYSgwLDAlLDEwMCUsLjYpO2JhY2tncm91bmQtY29sb3I6I2NlM2MzOX0uYnV0dG9uLWhvdmVyW3R5cGU9d2Fybl1bcGxhaW5de2NvbG9yOnJnYmEoMjMwLDY3LDY0LC42KTtib3JkZXItY29sb3I6cmdiYSgyMzAsNjcsNjQsLjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX11bmktY2FudmFze3dpZHRoOjMwMHB4O2hlaWdodDoxNTBweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlfXVuaS1jYW52YXM+Y2FudmFze3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfXVuaS1jaGVja2JveC1ncm91cFtoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktY2hlY2tib3h7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyfXVuaS1jaGVja2JveFtoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktY2hlY2tib3hbZGlzYWJsZWRde2N1cnNvcjpub3QtYWxsb3dlZH11bmktY2hlY2tib3ggLnVuaS1jaGVja2JveC13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlfXVuaS1jaGVja2JveCAudW5pLWNoZWNrYm94LWlucHV0e21hcmdpbi1yaWdodDo1cHg7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO291dGxpbmU6MDtib3JkZXI6MXB4IHNvbGlkICNkMWQxZDE7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6M3B4O3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7cG9zaXRpb246cmVsYXRpdmV9dW5pLWNoZWNrYm94Om5vdChbZGlzYWJsZWRdKSAudW5pLWNoZWNrYm94LWlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojMDA3YWZmfXVuaS1jaGVja2JveCAudW5pLWNoZWNrYm94LWlucHV0LnVuaS1jaGVja2JveC1pbnB1dC1jaGVja2Vke2NvbG9yOiMwMDdhZmZ9dW5pLWNoZWNrYm94IC51bmktY2hlY2tib3gtaW5wdXQudW5pLWNoZWNrYm94LWlucHV0LWNoZWNrZWQ6YmVmb3Jle2ZvbnQ6bm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIHVuaTtjb250ZW50OiJcRUEwOCI7Zm9udC1zaXplOjIycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ4JSkgc2NhbGUoLjczKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDglKSBzY2FsZSguNzMpfXVuaS1jaGVja2JveCAudW5pLWNoZWNrYm94LWlucHV0LnVuaS1jaGVja2JveC1pbnB1dC1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMWUxZTF9dW5pLWNoZWNrYm94IC51bmktY2hlY2tib3gtaW5wdXQudW5pLWNoZWNrYm94LWlucHV0LWRpc2FibGVkOmJlZm9yZXtjb2xvcjojYWRhZGFkfXVuaS1jaGVja2JveC1ncm91cHtkaXNwbGF5OmJsb2NrfS5xbC1jb250YWluZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC11c2VyLXNlbGVjdDp0ZXh0O3VzZXItc2VsZWN0OnRleHQ7b3V0bGluZTpub25lO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2hlaWdodDoyMDBweDttaW4taGVpZ2h0OjIwMHB4fS5xbC1jb250YWluZXJbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnFsLWNvbnRhaW5lciAucWwtZWRpdG9ye3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDttaW4taGVpZ2h0OmluaGVyaXQ7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwYWRkaW5nOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ucWwtY29udGFpbmVyIC5xbC1lZGl0b3I6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjAhaW1wb3J0YW50fS5xbC1jb250YWluZXIgLnFsLWVkaXRvci5zY3JvbGwtZGlzYWJsZWR7b3ZlcmZsb3c6aGlkZGVufS5xbC1jb250YWluZXIgLnFsLWltYWdlLW92ZXJsYXl7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggZGFzaGVkICNjY2M7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS1zaXple3Bvc2l0aW9uOmFic29sdXRlO3BhZGRpbmc6NHB4IDhweDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6Izg4ODtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6Ljg7cmlnaHQ6NHB4O3RvcDo0cHg7Zm9udC1zaXplOjEycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6YXV0b30ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS10b29sYmFye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6I2ZmZjtmb250LXNpemU6MDttaW4taGVpZ2h0OjI0cHg7ei1pbmRleDoxMDB9LnFsLWNvbnRhaW5lciAucWwtaW1hZ2Utb3ZlcmxheSAucWwtaW1hZ2UtdG9vbGJhciBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6NXB4O2ZvbnQtc2l6ZToxMnB4O2JvcmRlci1yaWdodDoxcHggc29saWQgI2ZmZn0ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS10b29sYmFyIHNwYW46bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6MH0ucWwtY29udGFpbmVyIC5xbC1pbWFnZS1vdmVybGF5IC5xbC1pbWFnZS10b29sYmFyIHNwYW4udHJpYW5nbGUtdXB7cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTJweDtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGV4KC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGV4KC01MCUpO3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXdpZHRoOjZweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMCkgcmdiYSgwLDAsMCwwKSAjMDAwIHJnYmEoMCwwLDAsMCl9LnFsLWNvbnRhaW5lciAucWwtaW1hZ2Utb3ZlcmxheSAucWwtaW1hZ2UtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMnB4O3dpZHRoOjEycHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiNmZmZ9LnFsLWNvbnRhaW5lciBpbWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjEwMCV9LnFsLWNsaXBib2FyZCBwe21hcmdpbjowO3BhZGRpbmc6MH0ucWwtZWRpdG9ye2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6MTAwJTtvdXRsaW5lOm5vbmU7b3ZlcmZsb3cteTphdXRvO3RhYi1zaXplOjQ7LW1vei10YWItc2l6ZTo0O3RleHQtYWxpZ246bGVmdDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZH0ucWwtZWRpdG9yPip7Y3Vyc29yOnRleHR9LnFsLWVkaXRvciBibG9ja3F1b3RlLC5xbC1lZGl0b3IgaDEsLnFsLWVkaXRvciBoMiwucWwtZWRpdG9yIGgzLC5xbC1lZGl0b3IgaDQsLnFsLWVkaXRvciBoNSwucWwtZWRpdG9yIGg2LC5xbC1lZGl0b3Igb2wsLnFsLWVkaXRvciBwLC5xbC1lZGl0b3IgcHJlLC5xbC1lZGl0b3IgdWx7bWFyZ2luOjA7cGFkZGluZzowO2NvdW50ZXItcmVzZXQ6bGlzdC0xIGxpc3QtMiBsaXN0LTMgbGlzdC00IGxpc3QtNSBsaXN0LTYgbGlzdC03IGxpc3QtOCBsaXN0LTl9LnFsLWVkaXRvciBvbD5saSwucWwtZWRpdG9yIHVsPmxpe2xpc3Qtc3R5bGUtdHlwZTpub25lfS5xbC1lZGl0b3IgdWw+bGk6YmVmb3Jle2NvbnRlbnQ6IlwyMDIyIn0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD1mYWxzZV0sLnFsLWVkaXRvciB1bFtkYXRhLWNoZWNrZWQ9dHJ1ZV17cG9pbnRlci1ldmVudHM6bm9uZX0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD1mYWxzZV0+bGkgKiwucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD10cnVlXT5saSAqe3BvaW50ZXItZXZlbnRzOmFsbH0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD1mYWxzZV0+bGk6YmVmb3JlLC5xbC1lZGl0b3IgdWxbZGF0YS1jaGVja2VkPXRydWVdPmxpOmJlZm9yZXtjb2xvcjojNzc3O2N1cnNvcjpwb2ludGVyO3BvaW50ZXItZXZlbnRzOmFsbH0ucWwtZWRpdG9yIHVsW2RhdGEtY2hlY2tlZD10cnVlXT5saTpiZWZvcmV7Y29udGVudDoiXDI2MTEifS5xbC1lZGl0b3IgdWxbZGF0YS1jaGVja2VkPWZhbHNlXT5saTpiZWZvcmV7Y29udGVudDoiXDI2MTAifS5xbC1lZGl0b3IgbGk6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyZW19LnFsLWVkaXRvciBvbCBsaXtjb3VudGVyLXJlc2V0Omxpc3QtMSBsaXN0LTIgbGlzdC0zIGxpc3QtNCBsaXN0LTUgbGlzdC02IGxpc3QtNyBsaXN0LTggbGlzdC05O2NvdW50ZXItaW5jcmVtZW50Omxpc3QtMH0ucWwtZWRpdG9yIG9sIGxpOmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC0wLGRlY2ltYWwpICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtMXtjb3VudGVyLWluY3JlbWVudDpsaXN0LTF9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtMTpiZWZvcmV7Y29udGVudDpjb3VudGVyKGxpc3QtMSxsb3dlci1hbHBoYSkgIi4gIn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC0xe2NvdW50ZXItcmVzZXQ6bGlzdC0yIGxpc3QtMyBsaXN0LTQgbGlzdC01IGxpc3QtNiBsaXN0LTcgbGlzdC04IGxpc3QtOX0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC0ye2NvdW50ZXItaW5jcmVtZW50Omxpc3QtMn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC0yOmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC0yLGxvd2VyLXJvbWFuKSAiLiAifS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTJ7Y291bnRlci1yZXNldDpsaXN0LTMgbGlzdC00IGxpc3QtNSBsaXN0LTYgbGlzdC03IGxpc3QtOCBsaXN0LTl9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtM3tjb3VudGVyLWluY3JlbWVudDpsaXN0LTN9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtMzpiZWZvcmV7Y29udGVudDpjb3VudGVyKGxpc3QtMyxkZWNpbWFsKSAiLiAifS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTN7Y291bnRlci1yZXNldDpsaXN0LTQgbGlzdC01IGxpc3QtNiBsaXN0LTcgbGlzdC04IGxpc3QtOX0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC00e2NvdW50ZXItaW5jcmVtZW50Omxpc3QtNH0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC00OmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC00LGxvd2VyLWFscGhhKSAiLiAifS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTR7Y291bnRlci1yZXNldDpsaXN0LTUgbGlzdC02IGxpc3QtNyBsaXN0LTggbGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTV7Y291bnRlci1pbmNyZW1lbnQ6bGlzdC01fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTU6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0LTUsbG93ZXItcm9tYW4pICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtNXtjb3VudGVyLXJlc2V0Omxpc3QtNiBsaXN0LTcgbGlzdC04IGxpc3QtOX0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC02e2NvdW50ZXItaW5jcmVtZW50Omxpc3QtNn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC02OmJlZm9yZXtjb250ZW50OmNvdW50ZXIobGlzdC02LGRlY2ltYWwpICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtNntjb3VudGVyLXJlc2V0Omxpc3QtNyBsaXN0LTggbGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTd7Y291bnRlci1pbmNyZW1lbnQ6bGlzdC03fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTc6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0LTcsbG93ZXItYWxwaGEpICIuICJ9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtN3tjb3VudGVyLXJlc2V0Omxpc3QtOCBsaXN0LTl9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtOHtjb3VudGVyLWluY3JlbWVudDpsaXN0LTh9LnFsLWVkaXRvciBvbCBsaS5xbC1pbmRlbnQtODpiZWZvcmV7Y29udGVudDpjb3VudGVyKGxpc3QtOCxsb3dlci1yb21hbikgIi4gIn0ucWwtZWRpdG9yIG9sIGxpLnFsLWluZGVudC04e2NvdW50ZXItcmVzZXQ6bGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTl7Y291bnRlci1pbmNyZW1lbnQ6bGlzdC05fS5xbC1lZGl0b3Igb2wgbGkucWwtaW5kZW50LTk6YmVmb3Jle2NvbnRlbnQ6Y291bnRlcihsaXN0LTksZGVjaW1hbCkgIi4gIn0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtMTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTE6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6MmVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC0xLnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtMS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MmVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC0yOm5vdCgucWwtZGlyZWN0aW9uLXJ0bCksLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtMjpub3QoLnFsLWRpcmVjdGlvbi1ydGwpe3BhZGRpbmctbGVmdDo0ZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTIucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCwucWwtZWRpdG9yIGxpLnFsLWluZGVudC0yLnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHR7cGFkZGluZy1yaWdodDo0ZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTM6bm90KC5xbC1kaXJlY3Rpb24tcnRsKSwucWwtZWRpdG9yIGxpLnFsLWluZGVudC0zOm5vdCgucWwtZGlyZWN0aW9uLXJ0bCl7cGFkZGluZy1sZWZ0OjZlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtMy5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0LC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTMucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodHtwYWRkaW5nLXJpZ2h0OjZlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtNDpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTQ6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6OGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC00LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtNC5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6OGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC01Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCksLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtNTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpe3BhZGRpbmctbGVmdDoxMGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC01LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtNS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MTBlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtNjpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTY6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6MTJlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtNi5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0LC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTYucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodHtwYWRkaW5nLXJpZ2h0OjEyZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTc6bm90KC5xbC1kaXJlY3Rpb24tcnRsKSwucWwtZWRpdG9yIGxpLnFsLWluZGVudC03Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCl7cGFkZGluZy1sZWZ0OjE0ZW19LnFsLWVkaXRvciAucWwtaW5kZW50LTcucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodCwucWwtZWRpdG9yIGxpLnFsLWluZGVudC03LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHR7cGFkZGluZy1yaWdodDoxNGVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC04Om5vdCgucWwtZGlyZWN0aW9uLXJ0bCksLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtODpub3QoLnFsLWRpcmVjdGlvbi1ydGwpe3BhZGRpbmctbGVmdDoxNmVtfS5xbC1lZGl0b3IgLnFsLWluZGVudC04LnFsLWRpcmVjdGlvbi1ydGwucWwtYWxpZ24tcmlnaHQsLnFsLWVkaXRvciBsaS5xbC1pbmRlbnQtOC5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0e3BhZGRpbmctcmlnaHQ6MTZlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtOTpub3QoLnFsLWRpcmVjdGlvbi1ydGwpLC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTk6bm90KC5xbC1kaXJlY3Rpb24tcnRsKXtwYWRkaW5nLWxlZnQ6MThlbX0ucWwtZWRpdG9yIC5xbC1pbmRlbnQtOS5xbC1kaXJlY3Rpb24tcnRsLnFsLWFsaWduLXJpZ2h0LC5xbC1lZGl0b3IgbGkucWwtaW5kZW50LTkucWwtZGlyZWN0aW9uLXJ0bC5xbC1hbGlnbi1yaWdodHtwYWRkaW5nLXJpZ2h0OjE4ZW19LnFsLWVkaXRvciAucWwtZGlyZWN0aW9uLXJ0bHtkaXJlY3Rpb246cnRsO3RleHQtYWxpZ246aW5oZXJpdH0ucWwtZWRpdG9yIC5xbC1hbGlnbi1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnFsLWVkaXRvciAucWwtYWxpZ24tanVzdGlmeXt0ZXh0LWFsaWduOmp1c3RpZnl9LnFsLWVkaXRvciAucWwtYWxpZ24tcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0ucWwtZWRpdG9yLnFsLWJsYW5rOmJlZm9yZXtjb2xvcjpyZ2JhKDAsMCwwLC42KTtjb250ZW50OmF0dHIoZGF0YS1wbGFjZWhvbGRlcik7Zm9udC1zdHlsZTppdGFsaWM7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZX0ucWwtY29udGFpbmVyLnFsLWRpc2FibGVkIC5xbC1lZGl0b3IgdWxbZGF0YS1jaGVja2VkXT5saTpiZWZvcmV7cG9pbnRlci1ldmVudHM6bm9uZX0ucWwtY2xpcGJvYXJke2xlZnQ6LTEwMDAwMHB4O2hlaWdodDoxcHg7b3ZlcmZsb3cteTpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJX11bmktaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9dW5pLWljb25baGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLWljb24+aXtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB3ZXVpfXVuaS1pY29uPmk6YmVmb3Jle21hcmdpbjowO2JveC1zaXppbmc6Ym9yZGVyLWJveH1AZm9udC1mYWNle2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LWZhbWlseTp3ZXVpO3NyYzp1cmwoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3UjFOVlFyRCtzKzBBQUFFNEFBQUFRazlUTHpKQUtFeDhBQUFCZkFBQUFGWmpiV0Z3NjVjRkhRQUFBaHdBQUFKUVoyeDVacCtVRUVjQUFBU1VBQUFJdkdobFlXUVVxYzd4QUFBQTRBQUFBRFpvYUdWaEIvWUQrd0FBQUx3QUFBQWthRzEwZUVKb0FBQUFBQUhVQUFBQVNHeHZZMkVVeGhKZUFBQUViQUFBQUNadFlYaHdBU0VBUXdBQUFSZ0FBQUFnYm1GdFplTmNIdGdBQUExUUFBQUI1bkJ2YzNUNk9vWkxBQUFQT0FBQUFPWUFBUUFBQStnQUFBQmFBK2dBQUFBQUE3TUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFCSUFBUUFBQUFFQUFNQ1UyS2RmRHp6MUFBc0Q2QUFBQUFEWTdFVVVBQUFBQU5qc1JSUUFBQUFBQTdNRDVBQUFBQWdBQWdBQUFBQUFBQUFCQUFBQUVnQTNBQVVBQUFBQUFBSUFBQUFLQUFvQUFBRC9BQUFBQUFBQUFBRUFBQUFLQUI0QUxBQUJSRVpNVkFBSUFBUUFBQUFBQUFBQUFRQUFBQUZzYVdkaEFBZ0FBQUFCQUFBQUFRQUVBQVFBQUFBQkFBZ0FBUUFHQUFBQUFRQUFBQUFBQVFPd0FaQUFCUUFJQW5vQ3ZBQUFBSXdDZWdLOEFBQUI0QUF4QVFJQUFBSUFCUU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVHWkZaQUJBNmdIcUVRUG9BQUFBV2dQb0FBQUFBQUFCQUFBQUFBQUFBQUFBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBK2dBQUFQb0FBQUQ2QUFBQStnQUFBUG9BQUFENkFBQUErZ0FBQVBvQUFBRDZBQUFBQUFBQlFBQUFBTUFBQUFzQUFBQUJBQUFBWFFBQVFBQUFBQUFiZ0FEQUFFQUFBQXNBQU1BQ2dBQUFYUUFCQUJDQUFBQUJBQUVBQUVBQU9vUi8vOEFBT29CLy84QUFBQUJBQVFBQUFBQkFBSUFBd0FFQUFVQUJnQUhBQWdBQ1FBS0FBc0FEQUFOQUE0QUR3QVFBQkVBQUFFR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQUFBTndBQUFBQUFBQUFFUUFBNmdFQUFPb0JBQUFBQVFBQTZnSUFBT29DQUFBQUFnQUE2Z01BQU9vREFBQUFBd0FBNmdRQUFPb0VBQUFBQkFBQTZnVUFBT29GQUFBQUJRQUE2Z1lBQU9vR0FBQUFCZ0FBNmdjQUFPb0hBQUFBQndBQTZnZ0FBT29JQUFBQUNBQUE2Z2tBQU9vSkFBQUFDUUFBNmdvQUFPb0tBQUFBQ2dBQTZnc0FBT29MQUFBQUN3QUE2Z3dBQU9vTUFBQUFEQUFBNmcwQUFPb05BQUFBRFFBQTZnNEFBT29PQUFBQURnQUE2ZzhBQU9vUEFBQUFEd0FBNmhBQUFPb1FBQUFBRUFBQTZoRUFBT29SQUFBQUVRQUFBQUFBUkFDS0FNUUJFZ0ZnQVpJQjRnSDZBaW9DZUFLMEF3d0RaQU9pQTl3RUVBUmVBQUFBQWdBQUFBQURsUU9WQUJRQUtRQUFKU0luSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHSnpJM05qYzJOQ2NtSnlZaUJ3WUhCaFFYRmhjV0FmUnhZVjgzT1RrM1gySGlZVjgzT1RrM1gyRnhaRlZUTVRJeU1WTlZ5RlZUTVRJeU1WTlZVemszWDJIaVlWODNPVGszWDJIaVlWODNPVEl5TVZOVnlGVlRNVEl5TVZOVnlGVlRNVElBQUFJQUFBQUFBN01Ec3dBWEFDMEFBQUVpQndZSEJoVVVGeFlYRmpNeU56WTNOalUwSnlZbkpoTUhCaUl2QVNZMk93RVJORFk3QVRJV0ZSRXpNaFlCN25ablpEczlQVHRrWjNaOGFtWTdQajQ3Wm1raGRnNG9EbllPRFJkZEN3Y21Cd3RkRncwRHN6NDdabXA4ZG1ka096MDlPMlJuZG4xcFpqcysvZkNhRWhLYUVob0JGd2dMQ3dqKzZSb0FBd0FBQUFBRGxRT1ZBQlFBR0FBaEFBQWxJaWNtSnlZME56WTNOaklYRmhjV0ZBY0dCd1lERVRNUkp6STJOQ1lpQmhRV0FmUnhZVjgzT1RrM1gySGlZVjgzT1RrM1gyR1FQaDhSR1JraUdSbFRPVGRmWWVKaFh6YzVPVGRmWWVKaFh6YzVBZlQrM1FFaktoZ2pHQmdqR0FBQUFBQUNBQUFBQUFPeEErUUFGd0FzQUFBQkJnY0dEd0VSRkJjV0Z4WVhOamMyTnpZMUVTY21KeVlUQVFZdkFTWS9BVFl5SHdFV05qY2xOaklmQVJZQjlXbHNQM0EzUno1c1hteHNYVzA5U0Rkd1FHdVAvdFVFQklvREF4SUJCUUZ4QVFVQ0FSSUNCUUVSQkFQakZ5QVNKQkwrckk1MVpVZy9IQncvU0dWMWpnRlVFaVFTSVA2Ni90a0RBNDhFQkJrQ0FWWUNBUUhsQVFJUUJBQUFBQUFEQUFBQUFBT3hBK1FBRndBbUFDOEFBQUVHQndZUEFSRVVGeFlYRmhjMk56WTNOalVSSnlZbkpnY3pNaFlWQXhRR0t3RWlKd00wTmhNaUpqUTJNaFlVQmdIMWFXdEFjRGRIUG14ZWJHeGRiVDFJTjNCQWE0TTBCQVlNQXdJbUJRRUxCaDRQRmhZZUZSVUQ1QmdnRWlRUy9xMlBkV1JKUGgwZFBrbGtkWThCVXhJa0VpRDRCZ1QreGdJREJRRTZCQWIrUUJVZkZSVWZGUUFBQUFBQ0FBQUFBQU9WQTVVQUZBQWFBQUFsSWljbUp5WTBOelkzTmpJWEZoY1dGQWNHQndZREp3Y1hBU2NCOUhGaFh6YzVPVGRmWWVKaFh6YzVPVGRmWWFKekxKOEJGaTFUT1RkZlllSmhYemM1T1RkZlllSmhYemM1QVVoekxKOEJGU3dBQUFBQUF3QUFBQUFEbFFPVkFCUUFLUUF2QUFBbElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WW5NamMyTnpZMEp5WW5KaUlIQmdjR0ZCY1dGeFlUTnhjQkp6Y0I5SEZoWHpjNU9UZGZZZUpoWHpjNU9UZGZZWEZrVlZNeE1qSXhVMVhJVlZNeE1qSXhVMVV6OGlUKzZwOGpVemszWDJIaVlWODNPVGszWDJIaVlWODNPVEl5TVZOVnlGVlRNVEl5TVZOVnlGVlRNVElCQlBJai91dWZKQUFBQUFFQUFBQUFBNWtER0FBSEFBQWxBVGNYQVJjQkJnR0Yvdmc3emdIWU92M3ZBY3NCQ1R2UEFkZzcvZTRCQUFBQUFBSUFBQUFBQTVVRGxRQUZBQm9BQUFFMUl4VVhOd01pSnlZbkpqUTNOamMyTWhjV0Z4WVVCd1lIQmdJVFByRXN2bkZoWHpjNU9UZGZZZUpoWHpjNU9UZGZZUUlPNFBxeExQN2tPVGRmWWVKaFh6YzVPVGRmWWVKaFh6YzVBQUFBQUFNQUFBQUFBNVVEbFFBRkFCb0FMd0FBQVJjSEp6VXpBeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHSnpJM05qYzJOQ2NtSnlZaUJ3WUhCaFFYRmhjV0FnMmlJN0V5R1hGaFh6YzVPVGRmWWVKaFh6YzVPVGRmWVhGa1ZWTXhNakl4VTFYSVZWTXhNakl4VTFVQ0NhSWtzZnI5WlRrM1gySGlZVjgzT1RrM1gySGlZVjgzT1RJeU1WTlZ5RlZUTVRJeU1WTlZ5RlZUTVRJQUFBTUFBQUFBQTVVRGxRQVVBQmdBSVFBQUpTSW5KaWNtTkRjMk56WXlGeFlYRmhRSEJnY0dBeE16RXdNeU5qUW1JZzRCRmdIMGNXRmZOems1TjE5aDRtRmZOems1TjE5aGtRVTJCU0FRRlJVZ0ZRRVdVemszWDJIaVlWODNPVGszWDJIaVlWODNPUUtWL3NRQlBQNDNGaDhWRlI4V0FBQUFBQVFBQUFBQUE1VURsUUFVQUNrQUxRQTJBQUFsSWljbUp5WTBOelkzTmpJWEZoY1dGQWNHQndZbk1qYzJOelkwSnlZbkppSUhCZ2NHRkJjV0Z4WVRNeEVqRXlJbU5EWXlGaFFHQWZSeFlWODNPVGszWDJIaVlWODNPVGszWDJGeFpGVlRNVEl5TVZOVnlGVlRNVEl5TVZOVlN6SXlHUkVaR1NJWkdWTTVOMTloNG1GZk56azVOMTloNG1GZk56a3lNakZUVmNoVlV6RXlNakZUVmNoVlV6RXlBY0wrM1FGTkdDTVlHQ01ZQUFBQUF3QUFBQUFEbFFPVkFCUUFLUUExQUFBbElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WW5NamMyTnpZMEp5WW5KaUlIQmdjR0ZCY1dGeFlURndjbkJ5YzNKemNYTnhjQjlIRmhYemM1T1RkZlllSmhYemM1T1RkZllYRmtWVk14TWpJeFUxWElWVk14TWpJeFUxV0hnaU9DZ2lPQ2dpT0NnaU5UT1RkZlllSmhYemM1T1RkZlllSmhYemM1TWpJeFUxWElWVk14TWpJeFUxWElWVk14TWdGdmdpT0NnaU9DZ2lPQ2dpTUFBQUFDQUFBQUFBTlVBMElBR0FBbEFBQUJGd2NuRGdFaklpY21KeVkwTnpZM05qSVhGaGNXRlJRR0p6UXVBU0lPQVJRZUFUSStBUUtvcXlPc0oxODBUMFJDSnljbkowSkVuMFJDSmlnbERVRnZnMjlCUVcrRGIwRUJZS3dqckNBaktDWkNSSjlFUWljbkp5ZENSRTgyWVpkQmIwRkJiNE52UVVGdkFBQUFBZ0FBQUFBRGxRT1ZBQXNBSUFBQUFUY25CeWNIRndjWE54YzNBeUluSmljbU5EYzJOell5RnhZWEZoUUhCZ2NHQWlCOUxIMTlMSDE5TEgxOUxLbHhZVjgzT1RrM1gySGlZVjgzT1RrM1gyRUI5SDBzZlgwc2ZYMHNmWDBzL3R3NU4xOWg0bUZmTnprNU4xOWg0bUZmTnprQUFBQUNBQUFBQUFPVkE1VUFGQUFjQUFBbElpY21KeVkwTnpZM05qSVhGaGNXRkFjR0J3WURKemNuQndZZkFRSDBjV0ZmTnprNU4xOWg0bUZmTnprNU4xOWhIb3FLSzdVQkFiVlRPVGRmWWVKaFh6YzVPVGRmWWVKaFh6YzVBUktQankyN0FRRzZBQUFBQUFVQUFBQUFBMWNEYkFBSkFCMEFKd0FyQUM4QUFBRVRIZ0V6SVRJMk54TXpBdzRCSXlFaUppY0RJelUwTmpNaE1oWWRBU1V5RmgwQkl6VTBOak1ITXhNakV6TURJd0VhSWdFVERRRXVEUk1CSWpJaUFqQWgvdEloTUFJaVZnd0pBcG9KRFA3eENRelFEQWtWTWhVeWlUSVZNZ0xkL2NnT0VoSU9Bamo5eFNFdUxpRUNPeDRJREF3SUhvNE1DUjBkQ1F6Ni9va0JkLzZKQUFBQUFBQUFFQURHQUFFQUFBQUFBQUVBQkFBQUFBRUFBQUFBQUFJQUJ3QUVBQUVBQUFBQUFBTUFCQUFMQUFFQUFBQUFBQVFBQkFBUEFBRUFBQUFBQUFVQUN3QVRBQUVBQUFBQUFBWUFCQUFlQUFFQUFBQUFBQW9BS3dBaUFBRUFBQUFBQUFzQUV3Qk5BQU1BQVFRSkFBRUFDQUJnQUFNQUFRUUpBQUlBRGdCb0FBTUFBUVFKQUFNQUNBQjJBQU1BQVFRSkFBUUFDQUIrQUFNQUFRUUpBQVVBRmdDR0FBTUFBUVFKQUFZQUNBQ2NBQU1BQVFRSkFBb0FWZ0NrQUFNQUFRUUpBQXNBSmdENmQyVjFhVkpsWjNWc1lYSjNaWFZwZDJWMWFWWmxjbk5wYjI0Z01TNHdkMlYxYVVkbGJtVnlZWFJsWkNCaWVTQnpkbWN5ZEhSbUlHWnliMjBnUm05dWRHVnNiRzhnY0hKdmFtVmpkQzVvZEhSd09pOHZabTl1ZEdWc2JHOHVZMjl0QUhjQVpRQjFBR2tBVWdCbEFHY0FkUUJzQUdFQWNnQjNBR1VBZFFCcEFIY0FaUUIxQUdrQVZnQmxBSElBY3dCcEFHOEFiZ0FnQURFQUxnQXdBSGNBWlFCMUFHa0FSd0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQnpBSFlBWndBeUFIUUFkQUJtQUNBQVpnQnlBRzhBYlFBZ0FFWUFid0J1QUhRQVpRQnNBR3dBYndBZ0FIQUFjZ0J2QUdvQVpRQmpBSFFBTGdCb0FIUUFkQUJ3QURvQUx3QXZBR1lBYndCdUFIUUFaUUJzQUd3QWJ3QXVBR01BYndCdEFBQUFBZ0FBQUFBQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBU0FRSUJBd0VFQVFVQkJnRUhBUWdCQ1FFS0FRc0JEQUVOQVE0QkR3RVFBUkVCRWdFVEFBWmphWEpqYkdVSVpHOTNibXh2WVdRRWFXNW1id3h6WVdabExYTjFZMk5sYzNNSmMyRm1aUzEzWVhKdUIzTjFZMk5sYzNNT2MzVmpZMlZ6Y3kxamFYSmpiR1VSYzNWalkyVnpjeTF1YnkxamFYSmpiR1VIZDJGcGRHbHVadzUzWVdsMGFXNW5MV05wY21Oc1pRUjNZWEp1QzJsdVptOHRZMmx5WTJ4bEJtTmhibU5sYkFaelpXRnlZMmdGWTJ4bFlYSUVZbUZqYXdaa1pXeGxkR1VBQUFBQSIpIGZvcm1hdCgidHJ1ZXR5cGUiKX0udW5pLWljb24tc3VjY2VzczpiZWZvcmV7Y29udGVudDoiXEVBMDYifS51bmktaWNvbi1zdWNjZXNzX2NpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDcifS51bmktaWNvbi1zdWNjZXNzX25vX2NpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDgifS51bmktaWNvbi1zYWZlX3N1Y2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxFQTA0In0udW5pLWljb24tc2FmZV93YXJuOmJlZm9yZXtjb250ZW50OiJcRUEwNSJ9LnVuaS1pY29uLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxFQTAzIn0udW5pLWljb24taW5mb19jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxFQTBDIn0udW5pLWljb24td2FybjpiZWZvcmV7Y29udGVudDoiXEVBMEIifS51bmktaWNvbi13YWl0aW5nOmJlZm9yZXtjb250ZW50OiJcRUEwOSJ9LnVuaS1pY29uLXdhaXRpbmdfY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcRUEwQSJ9LnVuaS1pY29uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXEVBMDEifS51bmktaWNvbi1jYW5jZWw6YmVmb3Jle2NvbnRlbnQ6IlxFQTBEIn0udW5pLWljb24tZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxFQTAyIn0udW5pLWljb24tc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcRUEwRSJ9LnVuaS1pY29uLWNsZWFyOmJlZm9yZXtjb250ZW50OiJcRUEwRiJ9LnVuaS1pY29uLXNhZmVfc3VjY2VzcywudW5pLWljb24tc3VjY2VzcywudW5pLWljb24tc3VjY2Vzc19jaXJjbGUsLnVuaS1pY29uLXN1Y2Nlc3Nfbm9fY2lyY2xle2NvbG9yOiMwMDdhZmZ9LnVuaS1pY29uLXNhZmVfd2Fybntjb2xvcjojZmZiZTAwfS51bmktaWNvbi1pbmZve2NvbG9yOiMxMGFlZmZ9LnVuaS1pY29uLWluZm9fY2lyY2xle2NvbG9yOiMwMDdhZmZ9LnVuaS1pY29uLXdhcm57Y29sb3I6I2Y3NjI2MH0udW5pLWljb24td2FpdGluZywudW5pLWljb24td2FpdGluZ19jaXJjbGV7Y29sb3I6IzEwYWVmZn0udW5pLWljb24tY2lyY2xle2NvbG9yOiNjOWM5Yzl9LnVuaS1pY29uLWNhbmNlbHtjb2xvcjojZjQzNTMwfS51bmktaWNvbi1kb3dubG9hZHtjb2xvcjojMDA3YWZmfS51bmktaWNvbi1jbGVhciwudW5pLWljb24tc2VhcmNoe2NvbG9yOiNiMmIyYjJ9dW5pLWltYWdle3dpZHRoOjMyMHB4O2hlaWdodDoyNDBweDtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9dW5pLWltYWdlW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1pbWFnZT5kaXYsdW5pLWltYWdlPmltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlfXVuaS1pbWFnZT5pbWd7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvcGFjaXR5OjB9dW5pLWltYWdlPi51bmktaW1hZ2Utd2lsbC1jaGFuZ2V7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfXVuaS1pbnB1dHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuNGVtO2hlaWdodDoxLjRlbTttaW4taGVpZ2h0OjEuNGVtO292ZXJmbG93OmhpZGRlbn11bmktaW5wdXRbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnVuaS1pbnB1dC1mb3JtLC51bmktaW5wdXQtaW5wdXQsLnVuaS1pbnB1dC1wbGFjZWhvbGRlciwudW5pLWlucHV0LXdyYXBwZXJ7b3V0bGluZTpub25lO2JvcmRlcjpub25lO3BhZGRpbmc6MDttYXJnaW46MDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH0udW5pLWlucHV0LWZvcm0sLnVuaS1pbnB1dC13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS51bmktaW5wdXQtaW5wdXQsLnVuaS1pbnB1dC1wbGFjZWhvbGRlcnt3aWR0aDoxMDAlfS51bmktaW5wdXQtcGxhY2Vob2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG8haW1wb3J0YW50O2xlZnQ6MDtjb2xvcjpncmV5O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmNsaXA7d2hpdGUtc3BhY2U6cHJlO3dvcmQtYnJlYWs6a2VlcC1hbGw7cG9pbnRlci1ldmVudHM6bm9uZTtsaW5lLWhlaWdodDppbmhlcml0fS51bmktaW5wdXQtaW5wdXR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjE7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1pbmRlbnQ6aW5oZXJpdDt0ZXh0LXRyYW5zZm9ybTppbmhlcml0O3RleHQtc2hhZG93OmluaGVyaXR9LnVuaS1pbnB1dC1pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sLnVuaS1pbnB1dC1pbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257ZGlzcGxheTpub25lfS51bmktaW5wdXQtaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sLnVuaS1pbnB1dC1pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0udW5pLWlucHV0LWlucHV0W3R5cGU9bnVtYmVyXXstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkfS51bmktaW5wdXQtaW5wdXQ6ZGlzYWJsZWR7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudGNvbG9yfS51bmktbGFiZWwtcG9pbnRlcntjdXJzb3I6cG9pbnRlcn11bmktbW92YWJsZS1hcmVhe2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTBweDtoZWlnaHQ6MTBweH11bmktbW92YWJsZS1hcmVhW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1tb3ZhYmxlLXZpZXd7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDt0b3A6MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7Y3Vyc29yOmdyYWJ9dW5pLW1vdmFibGUtdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktbmF2aWdhdG9ye2hlaWdodDphdXRvO3dpZHRoOmF1dG87ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcn11bmktbmF2aWdhdG9yW2hpZGRlbl17ZGlzcGxheTpub25lfS5uYXZpZ2F0b3ItaG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKTtvcGFjaXR5Oi43fXVuaS1waWNrZXItdmlldy1jb2x1bW57LXdlYmtpdC1mbGV4OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59dW5pLXBpY2tlci12aWV3LWNvbHVtbltoaWRkZW5de2Rpc3BsYXk6bm9uZX0udW5pLXBpY2tlci12aWV3LWdyb3Vwe2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udW5pLXBpY2tlci12aWV3LW1hc2t7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0udW5pLXBpY2tlci12aWV3LWluZGljYXRvciwudW5pLXBpY2tlci12aWV3LW1hc2t7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3dpZHRoOjEwMCU7ei1pbmRleDozO3BvaW50ZXItZXZlbnRzOm5vbmV9LnVuaS1waWNrZXItdmlldy1tYXNre3RvcDowO2hlaWdodDoxMDAlO21hcmdpbjowIGF1dG87YmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsaHNsYSgwLDAlLDEwMCUsLjk1KSxoc2xhKDAsMCUsMTAwJSwuNikpLC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSxoc2xhKDAsMCUsMTAwJSwuOTUpLGhzbGEoMCwwJSwxMDAlLC42KSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLGhzbGEoMCwwJSwxMDAlLC45NSksaHNsYSgwLDAlLDEwMCUsLjYpKSxsaW5lYXItZ3JhZGllbnQoMGRlZyxoc2xhKDAsMCUsMTAwJSwuOTUpLGhzbGEoMCwwJSwxMDAlLC42KSk7YmFja2dyb3VuZC1wb3NpdGlvbjp0b3AsYm90dG9tO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMnB4O2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdH0udW5pLXBpY2tlci12aWV3LWluZGljYXRvcntoZWlnaHQ6MzRweDt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LnVuaS1waWNrZXItdmlldy1jb250ZW50e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTtwYWRkaW5nOjEwMnB4IDA7Y3Vyc29yOnBvaW50ZXJ9LnVuaS1waWNrZXItdmlldy1jb250ZW50Pip7aGVpZ2h0OjM0cHg7b3ZlcmZsb3c6aGlkZGVufS51bmktcGlja2VyLXZpZXctaW5kaWNhdG9yOmJlZm9yZXt0b3A6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTVlNWU1Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX0udW5pLXBpY2tlci12aWV3LWluZGljYXRvcjphZnRlcntib3R0b206MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDEwMCU7dHJhbnNmb3JtLW9yaWdpbjowIDEwMCU7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVZKC41KTt0cmFuc2Zvcm06c2NhbGVZKC41KX0udW5pLXBpY2tlci12aWV3LWluZGljYXRvcjphZnRlciwudW5pLXBpY2tlci12aWV3LWluZGljYXRvcjpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjFweDtjb2xvcjojZTVlNWU1fXVuaS1waWNrZXItdmlld3tkaXNwbGF5OmJsb2NrfXVuaS1waWNrZXItdmlldyAudW5pLXBpY2tlci12aWV3LXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDoxMDAlfXVuaS1waWNrZXItdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktcHJvZ3Jlc3N7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn11bmktcHJvZ3Jlc3NbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnVuaS1wcm9ncmVzcy1iYXJ7LXdlYmtpdC1mbGV4OjE7LXdlYmtpdC1ib3gtZmxleDoxO2ZsZXg6MX0udW5pLXByb2dyZXNzLWlubmVyLWJhcnt3aWR0aDowO2hlaWdodDoxMDAlfS51bmktcHJvZ3Jlc3MtaW5mb3ttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO21pbi13aWR0aDoyZW07bWFyZ2luLWxlZnQ6MTVweDtmb250LXNpemU6MTZweH11bmktcmFkaW8tZ3JvdXBbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXJhZGlvey13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtkaXNwbGF5OmlubGluZS1ibG9jaztjdXJzb3I6cG9pbnRlcn11bmktcmFkaW9baGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXJhZGlvW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWR9dW5pLXJhZGlvIC51bmktcmFkaW8td3JhcHBlcntkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTotd2Via2l0LWlubGluZS1ib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX11bmktcmFkaW8gLnVuaS1yYWRpby1pbnB1dHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7bWFyZ2luLXJpZ2h0OjVweDtvdXRsaW5lOjA7Ym9yZGVyOjFweCBzb2xpZCAjZDFkMWQxO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O3Bvc2l0aW9uOnJlbGF0aXZlfXVuaS1yYWRpbzpub3QoW2Rpc2FibGVkXSkgLnVuaS1yYWRpby1pbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzAwN2FmZn11bmktcmFkaW8gLnVuaS1yYWRpby1pbnB1dC51bmktcmFkaW8taW5wdXQtY2hlY2tlZDpiZWZvcmV7Zm9udDpub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgdW5pO2NvbnRlbnQ6IlxFQTA4Ijtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxOHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00OCUpIHNjYWxlKC43Myk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ4JSkgc2NhbGUoLjczKX11bmktcmFkaW8gLnVuaS1yYWRpby1pbnB1dC51bmktcmFkaW8taW5wdXQtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZTFlMWUxO2JvcmRlci1jb2xvcjojZDFkMWQxfXVuaS1yYWRpbyAudW5pLXJhZGlvLWlucHV0LnVuaS1yYWRpby1pbnB1dC1kaXNhYmxlZDpiZWZvcmV7Y29sb3I6I2FkYWRhZH11bmktcmFkaW8tZ3JvdXB7ZGlzcGxheTpibG9ja31ALXdlYmtpdC1rZXlmcmFtZXMgb25jZS1zaG93ezAle3RvcDowfX1Aa2V5ZnJhbWVzIG9uY2Utc2hvd3swJXt0b3A6MH19dW5pLXJlc2l6ZS1zZW5zb3IsdW5pLXJlc2l6ZS1zZW5zb3I+ZGl2e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO292ZXJmbG93OmhpZGRlbn11bmktcmVzaXplLXNlbnNvcntkaXNwbGF5OmJsb2NrO3otaW5kZXg6LTE7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC1hbmltYXRpb246b25jZS1zaG93IDFtczthbmltYXRpb246b25jZS1zaG93IDFtc311bmktcmVzaXplLXNlbnNvcj5kaXY+ZGl2e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MH11bmktcmVzaXplLXNlbnNvcj5kaXY6Zmlyc3QtY2hpbGQ+ZGl2e3dpZHRoOjEwMDAwMHB4O2hlaWdodDoxMDAwMDBweH11bmktcmVzaXplLXNlbnNvcj5kaXY6bGFzdC1jaGlsZD5kaXZ7d2lkdGg6MjAwJTtoZWlnaHQ6MjAwJX11bmktc2Nyb2xsLXZpZXd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfXVuaS1zY3JvbGwtdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX0udW5pLXNjcm9sbC12aWV3e3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO21heC1oZWlnaHQ6aW5oZXJpdH0udW5pLXNjcm9sbC12aWV3LC51bmktc2Nyb2xsLXZpZXctY29udGVudHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51bmktc2Nyb2xsLXZpZXctcmVmcmVzaGVye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0udW5pLXNjcm9sbC12aWV3LXJlZnJlc2h7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9LnVuaS1zY3JvbGwtdmlldy1yZWZyZXNoLC51bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1pbm5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS51bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1pbm5lcntsaW5lLWhlaWdodDowO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxcHggNnB4IHJnYmEoMCwwLDAsLjExNzY0NyksMCAxcHggNHB4IHJnYmEoMCwwLDAsLjExNzY0Nyl9LnVuaS1zY3JvbGwtdmlldy1yZWZyZXNoX19zcGlubmVyey13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGNlbnRlcjstd2Via2l0LWFuaW1hdGlvbjp1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjp1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1yb3RhdGUgMnMgbGluZWFyIGluZmluaXRlfS51bmktc2Nyb2xsLXZpZXctcmVmcmVzaF9fc3Bpbm5lcj5jaXJjbGV7c3Ryb2tlOmN1cnJlbnRDb2xvcjtzdHJva2UtbGluZWNhcDpyb3VuZDstd2Via2l0LWFuaW1hdGlvbjp1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1kYXNoIDJzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246dW5pLXNjcm9sbC12aWV3LXJlZnJlc2gtZGFzaCAycyBsaW5lYXIgaW5maW5pdGV9QC13ZWJraXQta2V5ZnJhbWVzIHVuaS1zY3JvbGwtdmlldy1yZWZyZXNoLXJvdGF0ZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIHVuaS1zY3JvbGwtdmlldy1yZWZyZXNoLXJvdGF0ZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1ALXdlYmtpdC1rZXlmcmFtZXMgdW5pLXNjcm9sbC12aWV3LXJlZnJlc2gtZGFzaHswJXtzdHJva2UtZGFzaGFycmF5OjEsMjAwO3N0cm9rZS1kYXNob2Zmc2V0OjB9NTAle3N0cm9rZS1kYXNoYXJyYXk6ODksMjAwO3N0cm9rZS1kYXNob2Zmc2V0Oi0zNXB4fXRve3N0cm9rZS1kYXNoYXJyYXk6ODksMjAwO3N0cm9rZS1kYXNob2Zmc2V0Oi0xMjRweH19QGtleWZyYW1lcyB1bmktc2Nyb2xsLXZpZXctcmVmcmVzaC1kYXNoezAle3N0cm9rZS1kYXNoYXJyYXk6MSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6MH01MCV7c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTM1cHh9dG97c3Ryb2tlLWRhc2hhcnJheTo4OSwyMDA7c3Ryb2tlLWRhc2hvZmZzZXQ6LTEyNHB4fX11bmktc2xpZGVye21hcmdpbjoxMHB4IDE4cHg7cGFkZGluZzowO2Rpc3BsYXk6YmxvY2t9dW5pLXNsaWRlcltoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktc2xpZGVyIC51bmktc2xpZGVyLXdyYXBwZXJ7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjE2cHh9dW5pLXNsaWRlciAudW5pLXNsaWRlci10YXAtYXJlYXstd2Via2l0LWZsZXg6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleDoxO3BhZGRpbmc6OHB4IDB9dW5pLXNsaWRlciAudW5pLXNsaWRlci1oYW5kbGUtd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MnB4O2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQtY29sb3I6I2U5ZTllOTtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9dW5pLXNsaWRlciAudW5pLXNsaWRlci1oYW5kbGUtd3JhcHBlcix1bmktc2xpZGVyIC51bmktc2xpZGVyLXRyYWNrey13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZX11bmktc2xpZGVyIC51bmktc2xpZGVyLXRyYWNre2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NnB4O2JhY2tncm91bmQtY29sb3I6IzAwN2FmZn11bmktc2xpZGVyIC51bmktc2xpZGVyLWhhbmRsZSx1bmktc2xpZGVyIC51bmktc2xpZGVyLXRodW1ie3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO3RvcDo1MCU7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuM3MgZWFzZTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuM3MgZWFzZX11bmktc2xpZGVyIC51bmktc2xpZGVyLWhhbmRsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21hcmdpbi10b3A6LTE0cHg7bWFyZ2luLWxlZnQ6LTE0cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDApO3otaW5kZXg6MztjdXJzb3I6Z3JhYn11bmktc2xpZGVyIC51bmktc2xpZGVyLXRodW1ie3otaW5kZXg6Mjtib3gtc2hhZG93OjAgMCA0cHggcmdiYSgwLDAsMCwuMil9dW5pLXNsaWRlciAudW5pLXNsaWRlci1zdGVwe3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7ei1pbmRleDoxfXVuaS1zbGlkZXIgLnVuaS1zbGlkZXItdmFsdWV7d2lkdGg6M2NoO2NvbG9yOiM4ODg7Zm9udC1zaXplOjE0cHg7bWFyZ2luLWxlZnQ6MWVtfXVuaS1zbGlkZXIgLnVuaS1zbGlkZXItZGlzYWJsZWQgLnVuaS1zbGlkZXItdHJhY2t7YmFja2dyb3VuZC1jb2xvcjojY2NjfXVuaS1zbGlkZXIgLnVuaS1zbGlkZXItZGlzYWJsZWQgLnVuaS1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojY2NjfXVuaS1zd2lwZXItaXRlbXtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtjdXJzb3I6Z3JhYn11bmktc3dpcGVyLWl0ZW1baGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXN3aXBlcntkaXNwbGF5OmJsb2NrO2hlaWdodDoxNTBweH11bmktc3dpcGVyW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItd3JhcHBlcntvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItc2xpZGVze3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItc2xpZGUtZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItZG90c3twb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MH11bmktc3dpcGVyIC51bmktc3dpcGVyLWRvdHMtaG9yaXpvbnRhbHtsZWZ0OjUwJTtib3R0b206MTBweDt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLWhvcml6b250YWwgLnVuaS1zd2lwZXItZG90e21hcmdpbi1yaWdodDo4cHh9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLWhvcml6b250YWwgLnVuaS1zd2lwZXItZG90Omxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLXZlcnRpY2Fse3JpZ2h0OjEwcHg7dG9wOjUwJTt0ZXh0LWFsaWduOnJpZ2h0Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3RzLXZlcnRpY2FsIC51bmktc3dpcGVyLWRvdHtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206OXB4fXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItZG90cy12ZXJ0aWNhbCAudW5pLXN3aXBlci1kb3Q6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3R7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHg7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMyk7Ym9yZGVyLXJhZGl1czo1MCV9dW5pLXN3aXBlciAudW5pLXN3aXBlci1kb3QtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMH11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb257d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO21hcmdpbi10b3A6LTEzcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LXRyYW5zaXRpb246YWxsIC4yczt0cmFuc2l0aW9uOmFsbCAuMnM7Ym9yZGVyLXJhZGl1czo1MCU7b3BhY2l0eToxfXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItbmF2aWdhdGlvbi1kaXNhYmxlZHtvcGFjaXR5Oi4zNTtjdXJzb3I6bm90LWFsbG93ZWR9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLWhpZGV7b3BhY2l0eTowO2N1cnNvcjphdXRvO3BvaW50ZXItZXZlbnRzOm5vbmV9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLXByZXZ7bGVmdDoxMHB4fXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItbmF2aWdhdGlvbi1wcmV2IGl7bWFyZ2luLWxlZnQ6LTFweDtsZWZ0OjEwcHh9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLXByZXYudW5pLXN3aXBlci1uYXZpZ2F0aW9uLXZlcnRpY2Fse3RvcDoxOHB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xM3B4fXVuaS1zd2lwZXIgLnVuaS1zd2lwZXItbmF2aWdhdGlvbi1wcmV2LnVuaS1zd2lwZXItbmF2aWdhdGlvbi12ZXJ0aWNhbCBpey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tdG9wOi0ycHh9dW5pLXN3aXBlciAudW5pLXN3aXBlci1uYXZpZ2F0aW9uLW5leHR7cmlnaHQ6MTBweH11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dCBpey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dC51bmktc3dpcGVyLW5hdmlnYXRpb24tdmVydGljYWx7dG9wOmF1dG87Ym90dG9tOjVweDtsZWZ0OjUwJTttYXJnaW4tbGVmdDotMTNweH11bmktc3dpcGVyIC51bmktc3dpcGVyLW5hdmlnYXRpb24tbmV4dC51bmktc3dpcGVyLW5hdmlnYXRpb24tdmVydGljYWwgaXttYXJnaW4tdG9wOjJweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9dW5pLXN3aXRjaHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y3Vyc29yOnBvaW50ZXJ9dW5pLXN3aXRjaFtoaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktc3dpdGNoW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWR9dW5pLXN3aXRjaCAudW5pLXN3aXRjaC13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7dmVydGljYWwtYWxpZ246bWlkZGxlfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXR7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjUycHg7aGVpZ2h0OjMycHg7bWFyZ2luLXJpZ2h0OjVweDtib3JkZXI6MXB4IHNvbGlkICNkZmRmZGY7b3V0bGluZTowO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZC1jb2xvcjojZGZkZmRmOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xcyxib3JkZXIgLjFzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXMsYm9yZGVyIC4xc311bmktc3dpdGNoW2Rpc2FibGVkXSAudW5pLXN3aXRjaC1pbnB1dHtvcGFjaXR5Oi43fXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQ6YmVmb3Jle3dpZHRoOjUwcHg7YmFja2dyb3VuZC1jb2xvcjojZmRmZGZkfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQ6YWZ0ZXIsdW5pLXN3aXRjaCAudW5pLXN3aXRjaC1pbnB1dDpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6MTVweDt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zczstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MsLXdlYmtpdC10cmFuc2Zvcm0gLjNzfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQ6YWZ0ZXJ7d2lkdGg6MzBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLDAsMCwuNCl9dW5pLXN3aXRjaCAudW5pLXN3aXRjaC1pbnB1dC51bmktc3dpdGNoLWlucHV0LWNoZWNrZWR7Ym9yZGVyLWNvbG9yOiMwMDdhZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YWZmfXVuaS1zd2l0Y2ggLnVuaS1zd2l0Y2gtaW5wdXQudW5pLXN3aXRjaC1pbnB1dC1jaGVja2VkOmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9dW5pLXN3aXRjaCAudW5pLXN3aXRjaC1pbnB1dC51bmktc3dpdGNoLWlucHV0LWNoZWNrZWQ6YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMHB4KX11bmktc3dpdGNoIC51bmktY2hlY2tib3gtaW5wdXR7bWFyZ2luLXJpZ2h0OjVweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7b3V0bGluZTowO2JvcmRlcjoxcHggc29saWQgI2QxZDFkMTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtwb3NpdGlvbjpyZWxhdGl2ZTtjb2xvcjojMDA3YWZmfXVuaS1zd2l0Y2g6bm90KFtkaXNhYmxlZF0pIC51bmktY2hlY2tib3gtaW5wdXQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwMDdhZmZ9dW5pLXN3aXRjaCAudW5pLWNoZWNrYm94LWlucHV0LnVuaS1jaGVja2JveC1pbnB1dC1jaGVja2VkOmJlZm9yZXtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1bmk7Y29udGVudDoiXEVBMDgiO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOjIycHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ4JSkgc2NhbGUoLjczKTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDglKSBzY2FsZSguNzMpfXVuaS1zd2l0Y2ggLnVuaS1jaGVja2JveC1pbnB1dC51bmktY2hlY2tib3gtaW5wdXQtZGlzYWJsZWR7YmFja2dyb3VuZC1jb2xvcjojZTFlMWUxfXVuaS1zd2l0Y2ggLnVuaS1jaGVja2JveC1pbnB1dC51bmktY2hlY2tib3gtaW5wdXQtZGlzYWJsZWQ6YmVmb3Jle2NvbG9yOiNhZGFkYWR9dW5pLXRleHRbc2VsZWN0YWJsZV17Y3Vyc29yOmF1dG87dXNlci1zZWxlY3Q6dGV4dDstd2Via2l0LXVzZXItc2VsZWN0OnRleHR9dW5pLXRleHRhcmVhe3dpZHRoOjMwMHB4O2hlaWdodDoxNTBweDtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0Om5vcm1hbDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLWFsbH11bmktdGV4dGFyZWFbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnVuaS10ZXh0YXJlYS1jb21wdXRlLC51bmktdGV4dGFyZWEtbGluZSwudW5pLXRleHRhcmVhLXBsYWNlaG9sZGVyLC51bmktdGV4dGFyZWEtdGV4dGFyZWEsLnVuaS10ZXh0YXJlYS13cmFwcGVye291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9LnVuaS10ZXh0YXJlYS13cmFwcGVye2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OmluaGVyaXQ7b3ZlcmZsb3cteTpoaWRkZW59LnVuaS10ZXh0YXJlYS1jb21wdXRlLC51bmktdGV4dGFyZWEtbGluZSwudW5pLXRleHRhcmVhLXBsYWNlaG9sZGVyLC51bmktdGV4dGFyZWEtdGV4dGFyZWF7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtsZWZ0OjA7dG9wOjA7d2hpdGUtc3BhY2U6aW5oZXJpdDt3b3JkLWJyZWFrOmluaGVyaXR9LnVuaS10ZXh0YXJlYS1wbGFjZWhvbGRlcntjb2xvcjpncmV5O292ZXJmbG93OmhpZGRlbn0udW5pLXRleHRhcmVhLWNvbXB1dGUsLnVuaS10ZXh0YXJlYS1saW5le3Zpc2liaWxpdHk6aGlkZGVuO2hlaWdodDphdXRvfS51bmktdGV4dGFyZWEtbGluZXt3aWR0aDoxZW19LnVuaS10ZXh0YXJlYS10ZXh0YXJlYXtyZXNpemU6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Y29sb3I6aW5oZXJpdDtvcGFjaXR5OjE7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1pbmRlbnQ6aW5oZXJpdDt0ZXh0LXRyYW5zZm9ybTppbmhlcml0O3RleHQtc2hhZG93OmluaGVyaXR9LnVuaS10ZXh0YXJlYS10ZXh0YXJlYS1maXgtbWFyZ2lue3dpZHRoOmF1dG87cmlnaHQ6MDttYXJnaW46MCAtM3B4fS51bmktdGV4dGFyZWEtdGV4dGFyZWE6ZGlzYWJsZWR7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6Y3VycmVudGNvbG9yfXVuaS1hZHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbn11bmktYWRbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLWNvdmVyLWltYWdle2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4yO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czphdXRvfXVuaS1jb3Zlci1pbWFnZSx1bmktY292ZXItaW1hZ2UgaW1ne2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9dW5pLWNvdmVyLWltYWdlW2hpZGRlbl17ZGlzcGxheTpub25lfXVuaS1jb3Zlci1pbWFnZSAudW5pLWNvdmVyLWltYWdle3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dGV4dC1vdmVyZmxvdzppbmhlcml0O292ZXJmbG93OmluaGVyaXQ7d2hpdGUtc3BhY2U6bm93cmFwOy13ZWJraXQtYWxpZ24taXRlbXM6aW5oZXJpdDstd2Via2l0LWJveC1hbGlnbjppbmhlcml0O2FsaWduLWl0ZW1zOmluaGVyaXQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6aW5oZXJpdDstd2Via2l0LWJveC1wYWNrOmluaGVyaXQ7anVzdGlmeS1jb250ZW50OmluaGVyaXQ7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjppbmhlcml0Oy13ZWJraXQtYm94LW9yaWVudDppbmhlcml0Oy13ZWJraXQtYm94LWRpcmVjdGlvbjppbmhlcml0O2ZsZXgtZGlyZWN0aW9uOmluaGVyaXQ7Zm9udC1zaXplOjA7ZGlzcGxheTppbmhlcml0fXVuaS1jb3Zlci12aWV3e2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MS4yO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9pbnRlci1ldmVudHM6YXV0b311bmktY292ZXItdmlld1toaWRkZW5de2Rpc3BsYXk6bm9uZX11bmktY292ZXItdmlldyAudW5pLWNvdmVyLXZpZXd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0ZXh0LW92ZXJmbG93OmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOmluaGVyaXQ7LXdlYmtpdC1hbGlnbi1pdGVtczppbmhlcml0Oy13ZWJraXQtYm94LWFsaWduOmluaGVyaXQ7YWxpZ24taXRlbXM6aW5oZXJpdDstd2Via2l0LWp1c3RpZnktY29udGVudDppbmhlcml0Oy13ZWJraXQtYm94LXBhY2s6aW5oZXJpdDtqdXN0aWZ5LWNvbnRlbnQ6aW5oZXJpdDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmluaGVyaXQ7LXdlYmtpdC1ib3gtb3JpZW50OmluaGVyaXQ7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOmluaGVyaXQ7ZmxleC1kaXJlY3Rpb246aW5oZXJpdDstd2Via2l0LWZsZXgtd3JhcDppbmhlcml0O2ZsZXgtd3JhcDppbmhlcml0O2Rpc3BsYXk6aW5oZXJpdDtvdmVyZmxvdzppbmhlcml0fS51bmktbWFwLWNvbnRyb2x7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0OjA7ei1pbmRleDo5OTl9LnVuaS1tYXAtY29udHJvbC1pY29ue3Bvc2l0aW9uOmFic29sdXRlO21heC13aWR0aDpub25lfXVuaS1tYXB7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MzAwcHg7aGVpZ2h0OjE1MHB4O2Rpc3BsYXk6YmxvY2t9dW5pLW1hcFtoaWRkZW5de2Rpc3BsYXk6bm9uZX0uYW1hcC1tYXJrZXItbGFiZWx7cGFkZGluZzowO2JvcmRlcjpub25lO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKX0uYW1hcC1tYXJrZXI+LmFtYXAtaWNvbj5pbWd7bGVmdDowIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnR9dW5pLXBpY2tlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2N1cnNvcjpwb2ludGVyfXVuaS1waWNrZXJbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXBpY2tlcltkaXNhYmxlZF17Y3Vyc29yOm5vdC1hbGxvd2VkfS51bmktcGlja2VyLWNvbnRhaW5lcntkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7Ym94LXNpemluZzpib3JkZXItYm94O3otaW5kZXg6OTk5O2ZvbnQtc2l6ZToxNnB4fS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jdXN0b20gKntib3gtc2l6aW5nOmJvcmRlci1ib3h9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWN1c3RvbXtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7Ym90dG9tOjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6OTk5O3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbjp2aXNpYmlsaXR5IC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzLHZpc2liaWxpdHkgLjNzO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyx2aXNpYmlsaXR5IC4zcywtd2Via2l0LXRyYW5zZm9ybSAuM3N9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWN1c3RvbS51bmktcGlja2VyLXRvZ2dsZXt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCl9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoyMzhweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWl0ZW17cGFkZGluZzowO2hlaWdodDozNHB4O2xpbmUtaGVpZ2h0OjM0cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzAwMDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47Y3Vyc29yOnBvaW50ZXJ9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWhlYWRlcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCU7aGVpZ2h0OjQ1cHh9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWhlYWRlcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtyaWdodDowO2hlaWdodDoxcHg7Y2xlYXI6Ym90aDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1O2NvbG9yOiNlNWU1ZTU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVkoLjUpO3RyYW5zZm9ybTpzY2FsZVkoLjUpfS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1hY3Rpb257ZGlzcGxheTpibG9jazttYXgtd2lkdGg6NTAlO3RvcDowO2hlaWdodDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTRweDtmb250LXNpemU6MTdweDtsaW5lLWhlaWdodDo0NXB4O292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcn0udW5pLXBpY2tlci1jb250YWluZXIgLnVuaS1waWNrZXItYWN0aW9uLnVuaS1waWNrZXItYWN0aW9uLWNhbmNlbHtmbG9hdDpsZWZ0O2NvbG9yOiM4ODh9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWFjdGlvbi51bmktcGlja2VyLWFjdGlvbi1jb25maXJte2Zsb2F0OnJpZ2h0O2NvbG9yOiMwMDdhZmZ9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLXNlbGVjdHtkaXNwbGF5Om5vbmV9LnVuaS1waWNrZXItc3lzdGVte3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6bm9uZTtkaXNwbGF5OmJsb2NrO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbn0udW5pLXBpY2tlci1zeXN0ZW0+aW5wdXR7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOm5vbmU7aGVpZ2h0OjEwMCU7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyfS51bmktcGlja2VyLXN5c3RlbT5pbnB1dC5maXJlZm94e3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlfS51bmktcGlja2VyLXN5c3RlbT5pbnB1dC5jaHJvbWV7dG9wOjA7bGVmdDowO3dpZHRoOjJlbTtmb250LXNpemU6MzJweDtoZWlnaHQ6MzJweH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjUwMHB4KSBhbmQgKG1pbi1oZWlnaHQ6NTAwcHgpey51bmktbWFzay51bmktcGlja2VyLW1hc2t7YmFja2dyb3VuZDpub25lfS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jdXN0b217d2lkdGg6MzAwcHg7bGVmdDo1MCU7cmlnaHQ6YXV0bzt0b3A6NTAlO2JvdHRvbTphdXRvOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtvcGFjaXR5OjA7Ym9yZGVyLXJhZGl1czo1cHg7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzLHZpc2liaWxpdHkgLjNzO3RyYW5zaXRpb246b3BhY2l0eSAuM3MsdmlzaWJpbGl0eSAuM3M7Ym94LXNoYWRvdzowIDAgMjBweCA1cHggcmdiYSgwLDAsMCwuMyl9LnVuaS1waWNrZXItY29udGFpbmVyIC51bmktcGlja2VyLWhlYWRlcntib3JkZXItcmFkaXVzOjVweCA1cHggMCAwfS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jb250ZW50ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO292ZXJmbG93OmhpZGRlbjtib3JkZXItcmFkaXVzOjAgMCA1cHggNXB4fS51bmktcGlja2VyLWNvbnRhaW5lciAudW5pLXBpY2tlci1jdXN0b20udW5pLXBpY2tlci10b2dnbGV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0udW5pLXNlbGVjdG9yLXNlbGVjdCAudW5pLXBpY2tlci1jb250ZW50LC51bmktc2VsZWN0b3Itc2VsZWN0IC51bmktcGlja2VyLWhlYWRlcntkaXNwbGF5Om5vbmV9LnVuaS1zZWxlY3Rvci1zZWxlY3QgLnVuaS1waWNrZXItc2VsZWN0e2Rpc3BsYXk6YmxvY2s7bWF4LWhlaWdodDozMDBweDtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjVweDtwYWRkaW5nOjZweCAwfS51bmktc2VsZWN0b3Itc2VsZWN0IC51bmktcGlja2VyLWl0ZW17cGFkZGluZzowIDEwcHg7Y29sb3I6IzU1NX0udW5pLXNlbGVjdG9yLXNlbGVjdCAudW5pLXBpY2tlci1pdGVtOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y2ZjZmNn0udW5pLXNlbGVjdG9yLXNlbGVjdCAudW5pLXBpY2tlci1pdGVtLnNlbGVjdGVke2NvbG9yOiMwMDdhZmZ9fXVuaS12aWRlb3t3aWR0aDozMDBweDtoZWlnaHQ6MjI1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGluZS1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9dW5pLXZpZGVvW2hpZGRlbl17ZGlzcGxheTpub25lfS51bmktdmlkZW8tY29udGFpbmVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojMDAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47b2JqZWN0LXBvc2l0aW9uOmluaGVyaXR9LnVuaS12aWRlby1jb250YWluZXIudW5pLXZpZGVvLXR5cGUtZnVsbHNjcmVlbntwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OX0udW5pLXZpZGVvLXZpZGVve3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LXBvc2l0aW9uOmluaGVyaXR9LnVuaS12aWRlby1jb3Zlcntib3R0b206MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpO3otaW5kZXg6MX0udW5pLXZpZGVvLWNvdmVyLC51bmktdmlkZW8tc2xvdHN7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCV9LnVuaS12aWRlby1zbG90c3toZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX0udW5pLXZpZGVvLWNvdmVyLXBsYXktYnV0dG9ue3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7YmFja2dyb3VuZC1zaXplOjUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUgNTAlO2N1cnNvcjpwb2ludGVyfS51bmktdmlkZW8tY292ZXItZHVyYXRpb257Y29sb3I6I2ZmZjtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxO21hcmdpbi10b3A6MTBweH0udW5pLXZpZGVvLWJhcntoZWlnaHQ6NDRweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjUpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtyaWdodDowO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowIDEwcHg7ei1pbmRleDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LnVuaS12aWRlby1iYXIudW5pLXZpZGVvLWJhci1mdWxse2xlZnQ6MH0udW5pLXZpZGVvLWNvbnRyb2xze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxO2ZsZXgtZ3JvdzoxO21hcmdpbjowIDguNXB4fS51bmktdmlkZW8tY29udHJvbC1idXR0b257d2lkdGg6MTNweDtoZWlnaHQ6MTVweDtwYWRkaW5nOjE0LjVweCAxMi41cHggMTQuNXB4IDEyLjVweDttYXJnaW4tbGVmdDotOC41cHg7Ym94LXNpemluZzpjb250ZW50LWJveDtjdXJzb3I6cG9pbnRlcn0udW5pLXZpZGVvLWNvbnRyb2wtYnV0dG9uOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtc2l6ZToxMDAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnVuaS12aWRlby1jb250cm9sLWJ1dHRvbi51bmktdmlkZW8tY29udHJvbC1idXR0b24tcGxheTphZnRlciwudW5pLXZpZGVvLWNvdmVyLXBsYXktYnV0dG9ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJvQUFBQWVDQVlBQUFBeTJ3N1lBQUFBQVhOU1IwSUFyczRjNlFBQUFXaEpSRUZVU0ExaitQLy8vMGNnQm9IalFHekNRQ3NBdGdKQi9BTXk1d0N4R05YdFE5aUJ3dm9BNUJVQ01RdlZMRVF4SHBOekRTamtSaFhMTU0zR0tySWVLS3BFa1lWWWpjVXUrQU1vM0FMRTNHUlppTjFNdktLUGdiSVJKRnVHMTBqOGtvZUEwZ1pFVzRqZkxJS3lmNEVxcGdPeE1FRUxDUnBGbklKM1FHVTVRTXlNMDBMaXpDRmExU1dnU2tlc2xoRnRCR2tLVndHVnk2RllTSnAra2xSL0E2cXVCMkpPa0lXTUlLMG9ObE9mOHhCb1pERTlMQUk3blluNkhzQnE0bDk2V0hRRWFMVXBBeWlPYUFTZUFNMk5ndnVQQnBhQUN0ODJJRVl0ZktsczBVYWdlY3B3WHlBenFHVFJkYUE1N3NqbVlyQXB0QWpVc0NrR1lsWU1nOUVGeUxRSTFJaVpCOFRpNk9iaDVKTmgwUW1nSGxPY0J1S1NJTUdpNTBDMThVRE1pTXNzdk9KRVdQUUxxS1liaUhueEdrUklrb0JGMjREeWFvVE1JRW9laDBXM2dlSStSQmxBckNJMGl6NEQrUlZBekVhc2ZxTFZBUTE5QWNTZzVMb1lpS1dJMWtpaVFnQ01CTG5FRWNmRFNnQUFBQUJKUlU1RXJrSmdnZz09Iil9LnVuaS12aWRlby1jb250cm9sLWJ1dHRvbi51bmktdmlkZW8tY29udHJvbC1idXR0b24tcGF1c2U6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQklBQUFBZ0NBWUFBQUFmZkNqeEFBQUFBWE5TUjBJQXJzNGM2UUFBQUZsSlJFRlVTQTN0a3NFS0FDQUlRN1gvLzV6cTk4d09nUWF5dW04UWFHd2VIaE16Ry82T3VqektBeW1uKzBMTXFpdnUxWHpuV21YOC9lY2hUSXlNeUFnVHdBNzJpSXd3QWV4Z2o4Z0lFOENPM2FNUmJEUE1hRXk1QlJHYUtjWnY4WXhSQUFBQUFFbEZUa1N1UW1DQyIpfS51bmktdmlkZW8tY3VycmVudC10aW1lLC51bmktdmlkZW8tZHVyYXRpb257aGVpZ2h0OjE0LjVweDtsaW5lLWhlaWdodDoxNC41cHg7bWFyZ2luLXRvcDoxNXB4O21hcmdpbi1ib3R0b206MTQuNXB4O2ZvbnQtc2l6ZToxMnB4O2NvbG9yOiNjYmNiY2J9LnVuaS12aWRlby1wcm9ncmVzcy1jb250YWluZXJ7LXdlYmtpdC1ib3gtZmxleDoyOy13ZWJraXQtZmxleC1ncm93OjI7ZmxleC1ncm93OjI7cG9zaXRpb246cmVsYXRpdmV9LnVuaS12aWRlby1wcm9ncmVzc3toZWlnaHQ6MnB4O21hcmdpbjoyMXB4IDEycHg7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuNCk7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXJ9LnVuaS12aWRlby1wcm9ncmVzcy1idWZmZXJlZHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MDtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjFzO3RyYW5zaXRpb246d2lkdGggLjFzO2JhY2tncm91bmQtY29sb3I6aHNsYSgwLDAlLDEwMCUsLjgpfS51bmktdmlkZW8tYmFsbHt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3BhZGRpbmc6MTRweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTIxcHg7Ym94LXNpemluZzpjb250ZW50LWJveDtsZWZ0OjA7bWFyZ2luLWxlZnQ6LTIycHh9LnVuaS12aWRlby1pbm5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJX0udW5pLXZpZGVvLWRhbm11LWJ1dHRvbnt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjJweCAxMHB4O2JvcmRlcjoxcHggc29saWQgI2ZmZjtib3JkZXItcmFkaXVzOjVweDtmb250LXNpemU6MTNweDtjb2xvcjojZmZmO21hcmdpbjowIDguNXB4O2N1cnNvcjpwb2ludGVyfS51bmktdmlkZW8tZGFubXUtYnV0dG9uLnVuaS12aWRlby1kYW5tdS1idXR0b24tYWN0aXZle2JvcmRlci1jb2xvcjojNDhjMjNkO2NvbG9yOiM0OGMyM2R9LnVuaS12aWRlby1mdWxsc2NyZWVue3dpZHRoOjE3cHg7aGVpZ2h0OjE3cHg7cGFkZGluZzo4LjVweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNJQUFBQWlDQVlBQUFBNlJ3dkNBQUFBQVhOU1IwSUFyczRjNlFBQUFRUkpSRUZVV0FudDFkME53aUFRQi9DbVM3aEhYNXpGeExGMEFoMmhFL2xnN0JUNFB5TUpVajZPeXQyOTlCSWlvWlQ3QVJZRzU5d0xwVFhtb1hPTUdPL1FlY3h0d3lXVzRvNDJBdXBHQUxrRmRYMU1rSHhFM1E3akliUVBxTnRoUW9ncEpvWmtNTFJsc24vZ0ZNUUVrNE9vWTBvUVZVd05vb2JoUUZRd2dNeFVLRmt0MEM4K1p5NjFkOFNlUjVpSFdDTE93Ri9NQ2I4VHAvL2V4M1FGc0UxSGxDZktGVVgyT2lqTkZNblBLRDdrNzZZY0JvTDQwMlpoOEI3NytNamxYclZ2d2ZnbFhBMzJiME1yUmd4Q0UybkJpRUphTU9JUUxrWUZ3c0dvUVdvWVZVZ0pvdzRwWUQ0V2VxNGF5QnFmd0RZUW1uVUswMzAxa0lUdWp1YXd1NjUvbDJCNUE0ejNRZStVdDdFQkFBQUFBRWxGVGtTdVFtQ0MiKTtiYWNrZ3JvdW5kLXNpemU6NTAlO2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Y3Vyc29yOnBvaW50ZXJ9LnVuaS12aWRlby1mdWxsc2NyZWVuLnVuaS12aWRlby10eXBlLWZ1bGxzY3JlZW57YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0lBQUFBaUNBWUFBQUE2Und2Q0FBQUJCRWxFUVZSWWhjWFd3UTNDTUF3RjBPK3FPekFLUXpBQWwwcE14UVF3UWhtR0t3Y0VSeGJnYzRsRVZkSFVibTN6SlI4cUplbVRvNllCeVMzSk84a2p5UWJHa0hRcGtPejR6Y21LOFlRMEJXRENrT3hMK1VES29tYk1ZS3dmWkFrbURHTEZoRUlzbUhDSUZwTUMwV0RTSUhPWVZFZ05rdzZwWVBJaEU1ai9RQ29ZRjBnN2VFa1BZR2VqK2NYODJ4L2w2YUlBSU9iOUNjcmFqcmpGRS9JQVFHUDFJZ0lSY1lWc1ZzMzIrdngrbkM5bldxNmRBWkRoT2FQSEJFREdoNTRPNHcwcGE5b3hFWkJGbUNqSUJHYjZRaDRKTVdHaUlXcE1Ca1NGeVlMTVlqSWhOVXc3TjlHUWkyYVFpTHhKSHNwalYrcmwxaEZyUnAyNXVWMk1SR1FSQnNBZXdQVUQvSGhKVk9PdUN6d0FBQUFBU1VWT1JLNUNZSUk9Iil9LnVuaS12aWRlby1kYW5tdXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6MTAwJTttYXJnaW4tdG9wOjE0cHg7bWFyZ2luLWJvdHRvbTo0NHB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjE0cHg7b3ZlcmZsb3c6dmlzaWJsZX0udW5pLXZpZGVvLWRhbm11LWl0ZW17bGluZS1oZWlnaHQ6MTtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjojZmZmO3doaXRlLXNwYWNlOm5vd3JhcDtsZWZ0OjEwMCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRleCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRleCgwKTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6bGVmdCwtd2Via2l0LXRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnQsLXdlYmtpdC10cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTpsZWZ0LHRyYW5zZm9ybTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnQsdHJhbnNmb3JtLC13ZWJraXQtdHJhbnNmb3JtOy13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjozczt0cmFuc2l0aW9uLWR1cmF0aW9uOjNzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0udW5pLXZpZGVvLXRvYXN0e3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7Ym9yZGVyLXJhZGl1czo1cHg7YmFja2dyb3VuZC1jb2xvcjpoc2xhKDAsMCUsMTAwJSwuOCk7Y29sb3I6IzAwMDtkaXNwbGF5Om5vbmV9LnVuaS12aWRlby10b2FzdC51bmktdmlkZW8tdG9hc3Qtdm9sdW1le3dpZHRoOjEwMHB4O2hlaWdodDoxMDBweDtkaXNwbGF5OmJsb2NrfS51bmktdmlkZW8tdG9hc3Qtdm9sdW1lIC51bmktdmlkZW8tdG9hc3QtdGl0bGV7d2lkdGg6MTAwJTtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxNnB4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmJsb2NrfS51bmktdmlkZW8tdG9hc3Qtdm9sdW1lIC51bmktdmlkZW8tdG9hc3QtaWNvbntmaWxsOiMwMDA7d2lkdGg6NTAlO2hlaWdodDo1MCU7bWFyZ2luLWxlZnQ6MjUlO2Rpc3BsYXk6YmxvY2t9LnVuaS12aWRlby10b2FzdC12b2x1bWUgLnVuaS12aWRlby10b2FzdC12YWx1ZXt3aWR0aDo4MHB4O2hlaWdodDo1cHg7bWFyZ2luLXRvcDo1cHg7bWFyZ2luLWxlZnQ6MTBweH0udW5pLXZpZGVvLXRvYXN0LXZvbHVtZSAudW5pLXZpZGVvLXRvYXN0LXZhbHVlPi51bmktdmlkZW8tdG9hc3QtdmFsdWUtY29udGVudHtvdmVyZmxvdzpoaWRkZW59LnVuaS12aWRlby10b2FzdC12b2x1bWUtZ3JpZHN7d2lkdGg6ODBweDtoZWlnaHQ6NXB4fS51bmktdmlkZW8tdG9hc3Qtdm9sdW1lLWdyaWRzLWl0ZW17ZmxvYXQ6bGVmdDt3aWR0aDo3LjFweDtoZWlnaHQ6NXB4O2JhY2tncm91bmQtY29sb3I6IzAwMH0udW5pLXZpZGVvLXRvYXN0LXZvbHVtZS1ncmlkcy1pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0OjFweH0udW5pLXZpZGVvLXRvYXN0LnVuaS12aWRlby10b2FzdC1wcm9ncmVzc3tkaXNwbGF5OmJsb2NrO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOCk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxOHB4O3BhZGRpbmc6NnB4fXVuaS12aWV3e2Rpc3BsYXk6YmxvY2t9dW5pLXZpZXdbaGlkZGVuXXtkaXNwbGF5Om5vbmV9dW5pLXdlYi12aWV3e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTpmbGV4fXVuaS13ZWItdmlldy51bmktd2Vidmlldy0tZnVsbHNjcmVlbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MH1ib2R5OjphZnRlcntwb3NpdGlvbjpmaXhlZDtjb250ZW50OicnO2xlZnQ6LTEwMDBweDt0b3A6LTEwMDBweDstd2Via2l0LWFuaW1hdGlvbjpzaGFkb3ctcHJlbG9hZCAuMXM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6M3M7YW5pbWF0aW9uOnNoYWRvdy1wcmVsb2FkIC4xczthbmltYXRpb24tZGVsYXk6M3N9QC13ZWJraXQta2V5ZnJhbWVzIHNoYWRvdy1wcmVsb2FkezAle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2RuLmRjbG91ZC5uZXQuY24vaW1nL3NoYWRvdy1ncmV5LnBuZyl9MTAwJXtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JleS5wbmcpfX1Aa2V5ZnJhbWVzIHNoYWRvdy1wcmVsb2FkezAle2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vY2RuLmRjbG91ZC5uZXQuY24vaW1nL3NoYWRvdy1ncmV5LnBuZyl9MTAwJXtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2Nkbi5kY2xvdWQubmV0LmNuL2ltZy9zaGFkb3ctZ3JleS5wbmcpfX0="}},"time_used":554,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":554,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/index.04539d30.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:05.386Z","timestamp":1785143525386,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/js/index.04539d30.js HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:05 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 09 Jun 2026 09:23:16 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a27db84-1e3a3\"\r\nexpires: Mon, 03 Aug 2026 09:12:05 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":123811,"size_decoded":29728,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (62822), with no line terminators","md5":"e8af1d1ecda4ab826f7c876a8630b140","sha1":"d816b86dcf60ff2e6c52a4b28ee0bf2644c94628","sha256":"0f8f6e15a14718b04b2a8d0d988d8f3d3cd92c996d6e2213043ad0667b3f768f","sha512":"b168dfba52b0fd6639cc5e3dcc4977fc28f5bf7a41cec0b303e8956d94463c4c73abf43ed3f3b3bfdb2c4c91cf78a9380f0f3d99294d2934accf98766ab06b28","ssdeep":"1536:UCon8rxj/gXxRACUJBgM/5+w3CokhjuAvP:ToQCUJBAhZ","tlshash":"eac37183fac9605d8b4b5e82d05f33f8fab72c725246e8c3d6a17f658f58697221250c","first_seen":"2026-07-17T10:51:36.435719Z","last_seen":"2026-07-27T14:18:45.085718Z","times_seen":4,"resource_available":true,"data":"KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obil7Zm9yKHZhciBpLG8scD1uWzBdLGQ9blsxXSxnPW5bMl0sdT0wLHM9W107dTxwLmxlbmd0aDt1Kyspbz1wW3VdLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiZlW29dJiZzLnB1c2goZVtvXVswXSksZVtvXT0wO2ZvcihpIGluIGQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsaSkmJih0W2ldPWRbaV0pO20mJm0obik7d2hpbGUocy5sZW5ndGgpcy5zaGlmdCgpKCk7cmV0dXJuIHIucHVzaC5hcHBseShyLGd8fFtdKSxhKCl9ZnVuY3Rpb24gYSgpe2Zvcih2YXIgdCxuPTA7bjxyLmxlbmd0aDtuKyspe2Zvcih2YXIgYT1yW25dLGk9ITAscD0xO3A8YS5sZW5ndGg7cCsrKXt2YXIgZD1hW3BdOzAhPT1lW2RdJiYoaT0hMSl9aSYmKHIuc3BsaWNlKG4tLSwxKSx0PW8oby5zPWFbMF0pKX1yZXR1cm4gdH12YXIgaT17fSxlPXtpbmRleDowfSxyPVtdO2Z1bmN0aW9uIG8obil7aWYoaVtuXSlyZXR1cm4gaVtuXS5leHBvcnRzO3ZhciBhPWlbbl09e2k6bixsOiExLGV4cG9ydHM6e319O3JldHVybiB0W25dLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLG8pLGEubD0hMCxhLmV4cG9ydHN9by5lPWZ1bmN0aW9uKHQpe3ZhciBuPVtdLGE9ZVt0XTtpZigwIT09YSlpZihhKW4ucHVzaChhWzJdKTtlbHNle3ZhciBpPW5ldyBQcm9taXNlKChmdW5jdGlvbihuLGkpe2E9ZVt0XT1bbixpXX0pKTtuLnB1c2goYVsyXT1pKTt2YXIgcixwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO3AuY2hhcnNldD0idXRmLTgiLHAudGltZW91dD0xMjAsby5uYyYmcC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixvLm5jKSxwLnNyYz1mdW5jdGlvbih0KXtyZXR1cm4gby5wKyJzdGF0aWMvanMvIisoeyJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIjoicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIsInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCI6InBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCIsInBhZ2VzLWNoZWNrSW4tY2hlY2tJbiI6InBhZ2VzLWNoZWNrSW4tY2hlY2tJbiIsInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiOiJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIiwicGFnZXMtaW5kZXgtaW5kZXgiOiJwYWdlcy1pbmRleC1pbmRleCIsInBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXktcGF5bWVudFBhc3N3b3JkfnB+ODA2YjM5MmYiOiJwYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15LXBheW1lbnRQYXNzd29yZH5wfjgwNmIzOTJmIiwicGFnZXMtaW5kZXgtbGlzdCI6InBhZ2VzLWluZGV4LWxpc3QiLCJwYWdlcy1pbmRleC1tYWluIjoicGFnZXMtaW5kZXgtbWFpbiIsInBhZ2VzLWluZGV4LXRha2UiOiJwYWdlcy1pbmRleC10YWtlIiwicGFnZXMtbXktbG9naW5QYXNzd29yZCI6InBhZ2VzLW15LWxvZ2luUGFzc3dvcmQiLCJwYWdlcy1teS1wYXltZW50UGFzc3dvcmQiOiJwYWdlcy1teS1wYXltZW50UGFzc3dvcmQiLCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyI6InBhZ2VzLXdpdGhkcmF3LXdpdGhkcmF3IiwicGFnZXMtd2FsbGV0LUJpbmRCYW5rIjoicGFnZXMtd2FsbGV0LUJpbmRCYW5rIiwicGFnZXMtbG9naW4tbG9naW4iOiJwYWdlcy1sb2dpbi1sb2dpbiIsInBhZ2VzLW15LUFydGljbGVDb250ZW50IjoicGFnZXMtbXktQXJ0aWNsZUNvbnRlbnQiLCJwYWdlcy1teS1GdW5kaW5nRGV0YWlscyI6InBhZ2VzLW15LUZ1bmRpbmdEZXRhaWxzIiwicGFnZXMtbXktU2VydmljZX5wYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSI6InBhZ2VzLW15LVNlcnZpY2V+cGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiLCJwYWdlcy1teS1TZXJ2aWNlIjoicGFnZXMtbXktU2VydmljZSIsInBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIjoicGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiLCJwYWdlcy1teS1TdGF0aW9uTWVzc2FnZX5wYWdlcy1teS1tYWlsYm94IjoicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2V+cGFnZXMtbXktbWFpbGJveCIsInBhZ2VzLW15LVN0YXRpb25NZXNzYWdlIjoicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiLCJwYWdlcy1teS1tYWlsYm94IjoicGFnZXMtbXktbWFpbGJveCIsInBhZ2VzLW15LWFkZHJlc3MiOiJwYWdlcy1teS1hZGRyZXNzIiwicGFnZXMtbXktbWFpbGJveENvbnRlbnQiOiJwYWdlcy1teS1tYWlsYm94Q29udGVudCIsInBhZ2VzLW15LXRlYW0iOiJwYWdlcy1teS10ZWFtIiwicGFnZXMtcmVjaGFyZ2UtUmVjaGFyZ2VSZWNvcmQiOiJwYWdlcy1yZWNoYXJnZS1SZWNoYXJnZVJlY29yZCIsInBhZ2VzLXdhbGxldC1iYW5rTGlzdCI6InBhZ2VzLXdhbGxldC1iYW5rTGlzdCIsInBhZ2VzLXdhbGxldC1iaW5HY2FzaCI6InBhZ2VzLXdhbGxldC1iaW5HY2FzaCIsInBhZ2VzLXdhbGxldC1iaW5NYXlhIjoicGFnZXMtd2FsbGV0LWJpbk1heWEiLCJwYWdlcy13aXRoZHJhdy1XaXRoZHJhd2Fsc1JlY29yZCI6InBhZ2VzLXdpdGhkcmF3LVdpdGhkcmF3YWxzUmVjb3JkIn1bdF18fHQpKyIuIit7InBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiOiJhOGQ4YmVjZiIsInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCI6ImZkMTQxNmIzIiwicGFnZXMtY2hlY2tJbi1jaGVja0luIjoiOWFmOTIzMGEiLCJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIjoiODk4M2E5ZTMiLCJwYWdlcy1pbmRleC1pbmRleCI6IjU3YmI2OTNlIiwicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiI6IjJiYjhkMTljIiwicGFnZXMtaW5kZXgtbGlzdCI6ImNlYzdhNmY4IiwicGFnZXMtaW5kZXgtbWFpbiI6IjYwYzI0MDRkIiwicGFnZXMtaW5kZXgtdGFrZSI6IjhkMzQzYmI0IiwicGFnZXMtbXktbG9naW5QYXNzd29yZCI6ImQwMjAyYThiIiwicGFnZXMtbXktcGF5bWVudFBhc3N3b3JkIjoiYWVmMzYwY2UiLCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyI6Ijk4OTE1Y2M2IiwicGFnZXMtd2FsbGV0LUJpbmRCYW5rIjoiZmNkNDhkNjAiLCJwYWdlcy1sb2dpbi1sb2dpbiI6Ijk0YjY5MTU1IiwicGFnZXMtbXktQXJ0aWNsZUNvbnRlbnQiOiI1NzA0OWUxOSIsInBhZ2VzLW15LUZ1bmRpbmdEZXRhaWxzIjoiZjNiMzQwY2IiLCJwYWdlcy1teS1TZXJ2aWNlfnBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIjoiMmNkZDFiMWMiLCJwYWdlcy1teS1TZXJ2aWNlIjoiMWRhN2YwYjQiLCJwYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSI6IjFkY2VmMDRmIiwicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2V+cGFnZXMtbXktbWFpbGJveCI6IjRhZDM2OTkzIiwicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiOiJhZjZhNGZhMCIsInBhZ2VzLW15LW1haWxib3giOiIwNjQ4N2M0NiIsInBhZ2VzLW15LWFkZHJlc3MiOiI2MmMzMGQ1YyIsInBhZ2VzLW15LW1haWxib3hDb250ZW50IjoiYTE3ZmJmZDEiLCJwYWdlcy1teS10ZWFtIjoiM2IyNmFiZTEiLCJwYWdlcy1yZWNoYXJnZS1SZWNoYXJnZVJlY29yZCI6ImE5ZjEzOGM4IiwicGFnZXMtd2FsbGV0LWJhbmtMaXN0IjoiMmNhMDI4MjIiLCJwYWdlcy13YWxsZXQtYmluR2Nhc2giOiI0MWE3MTM3OSIsInBhZ2VzLXdhbGxldC1iaW5NYXlhIjoiM2Y5YzIwNWYiLCJwYWdlcy13aXRoZHJhdy1XaXRoZHJhd2Fsc1JlY29yZCI6ImM2NmFkZWZjIn1bdF0rIi5qcyJ9KHQpO3ZhciBkPW5ldyBFcnJvcjtyPWZ1bmN0aW9uKG4pe3Aub25lcnJvcj1wLm9ubG9hZD1udWxsLGNsZWFyVGltZW91dChnKTt2YXIgYT1lW3RdO2lmKDAhPT1hKXtpZihhKXt2YXIgaT1uJiYoImxvYWQiPT09bi50eXBlPyJtaXNzaW5nIjpuLnR5cGUpLHI9biYmbi50YXJnZXQmJm4udGFyZ2V0LnNyYztkLm1lc3NhZ2U9IkxvYWRpbmcgY2h1bmsgIit0KyIgZmFpbGVkLlxuKCIraSsiOiAiK3IrIikiLGQubmFtZT0iQ2h1bmtMb2FkRXJyb3IiLGQudHlwZT1pLGQucmVxdWVzdD1yLGFbMV0oZCl9ZVt0XT12b2lkIDB9fTt2YXIgZz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3Ioe3R5cGU6InRpbWVvdXQiLHRhcmdldDpwfSl9KSwxMmU0KTtwLm9uZXJyb3I9cC5vbmxvYWQ9cixkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHApfXJldHVybiBQcm9taXNlLmFsbChuKX0sby5tPXQsby5jPWksby5kPWZ1bmN0aW9uKHQsbixhKXtvLm8odCxuKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbix7ZW51bWVyYWJsZTohMCxnZXQ6YX0pfSxvLnI9ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG8udD1mdW5jdGlvbih0LG4pe2lmKDEmbiYmKHQ9byh0KSksOCZuKXJldHVybiB0O2lmKDQmbiYmIm9iamVjdCI9PT10eXBlb2YgdCYmdCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBhPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoby5yKGEpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTp0fSksMiZuJiYic3RyaW5nIiE9dHlwZW9mIHQpZm9yKHZhciBpIGluIHQpby5kKGEsaSxmdW5jdGlvbihuKXtyZXR1cm4gdFtuXX0uYmluZChudWxsLGkpKTtyZXR1cm4gYX0sby5uPWZ1bmN0aW9uKHQpe3ZhciBuPXQmJnQuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiB0WyJkZWZhdWx0Il19OmZ1bmN0aW9uKCl7cmV0dXJuIHR9O3JldHVybiBvLmQobiwiYSIsbiksbn0sby5vPWZ1bmN0aW9uKHQsbil7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pfSxvLnA9Ii9oNS8iLG8ub2U9ZnVuY3Rpb24odCl7dGhyb3cgY29uc29sZS5lcnJvcih0KSx0fTt2YXIgcD13aW5kb3dbIndlYnBhY2tKc29ucCJdPXdpbmRvd1sid2VicGFja0pzb25wIl18fFtdLGQ9cC5wdXNoLmJpbmQocCk7cC5wdXNoPW4scD1wLnNsaWNlKCk7Zm9yKHZhciBnPTA7ZzxwLmxlbmd0aDtnKyspbihwW2ddKTt2YXIgbT1kO3IucHVzaChbMCwiY2h1bmstdmVuZG9ycyJdKSxhKCl9KSh7MDpmdW5jdGlvbih0LG4sYSl7dC5leHBvcnRzPWEoIjk3MjQiKX0sIjBmNTUiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImQzYjciKSxhKCJjOTc1Iik7dmFyIGU9aShhKCJkNGVjIikpLHI9aShhKCJiZWUyIikpLG89aShhKCI4NzRiIikpLHA9aShhKCJlZDI4IikpLGQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIG49dGhpczsoMCxlLmRlZmF1bHQpKHRoaXMsdCksdGhpcy5jb25maWc9e2Jhc2VVcmw6IiIsaGVhZGVyOnt9LG1ldGhvZDoiUE9TVCIsZGF0YVR5cGU6Impzb24iLHJlc3BvbnNlVHlwZToidGV4dCIsc2hvd0xvYWRpbmc6ITAsbG9hZGluZ1RleHQ6Iuivt+axguS4rS4uLiIsbG9hZGluZ1RpbWU6ODAwLHRpbWVyOm51bGwsb3JpZ2luYWxEYXRhOiExLGxvYWRpbmdNYXNrOiEwfSx0aGlzLmludGVyY2VwdG9yPXtyZXF1ZXN0Om51bGwscmVzcG9uc2U6bnVsbH0sdGhpcy5nZXQ9ZnVuY3Rpb24odCl7dmFyIGE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9O3JldHVybiBuLnJlcXVlc3Qoe21ldGhvZDoiR0VUIix1cmw6dCxoZWFkZXI6aSxkYXRhOmF9KX0sdGhpcy5wb3N0PWZ1bmN0aW9uKHQpe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtyZXR1cm4gbi5yZXF1ZXN0KHt1cmw6dCxtZXRob2Q6IlBPU1QiLGhlYWRlcjppLGRhdGE6YX0pfSx0aGlzLnB1dD1mdW5jdGlvbih0KXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmVxdWVzdCh7dXJsOnQsbWV0aG9kOiJQVVQiLGhlYWRlcjppLGRhdGE6YX0pfSx0aGlzLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30saT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmVxdWVzdCh7dXJsOnQsbWV0aG9kOiJERUxFVEUiLGhlYWRlcjppLGRhdGE6YX0pfX1yZXR1cm4oMCxyLmRlZmF1bHQpKHQsW3trZXk6InNldENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5jb25maWc9KDAsby5kZWZhdWx0KSh0aGlzLmNvbmZpZyx0KX19LHtrZXk6InJlcXVlc3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtpZih0aGlzLmludGVyY2VwdG9yLnJlcXVlc3QmJiJmdW5jdGlvbiI9PT10eXBlb2YgdGhpcy5pbnRlcmNlcHRvci5yZXF1ZXN0KXt2YXIgYT10aGlzLmludGVyY2VwdG9yLnJlcXVlc3Qobik7aWYoITE9PT1hKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oKXt9KSk7dGhpcy5vcHRpb25zPWF9cmV0dXJuIG4uZGF0YVR5cGU9bi5kYXRhVHlwZXx8dGhpcy5jb25maWcuZGF0YVR5cGUsbi5yZXNwb25zZVR5cGU9bi5yZXNwb25zZVR5cGV8fHRoaXMuY29uZmlnLnJlc3BvbnNlVHlwZSxuLnVybD1uLnVybHx8IiIsbi5wYXJhbXM9bi5wYXJhbXN8fHt9LG4uaGVhZGVyPU9iamVjdC5hc3NpZ24oe30sdGhpcy5jb25maWcuaGVhZGVyLG4uaGVhZGVyKSxuLm1ldGhvZD1uLm1ldGhvZHx8dGhpcy5jb25maWcubWV0aG9kLG5ldyBQcm9taXNlKChmdW5jdGlvbihhLGkpe24uY29tcGxldGU9ZnVuY3Rpb24obil7aWYodW5pLmhpZGVMb2FkaW5nKCksY2xlYXJUaW1lb3V0KHQuY29uZmlnLnRpbWVyKSx0LmNvbmZpZy50aW1lcj1udWxsLHQuY29uZmlnLm9yaWdpbmFsRGF0YSlpZih0LmludGVyY2VwdG9yLnJlc3BvbnNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHQuaW50ZXJjZXB0b3IucmVzcG9uc2Upe3ZhciBlPXQuaW50ZXJjZXB0b3IucmVzcG9uc2Uobik7ITEhPT1lP2EoZSk6aShuKX1lbHNlIGEobik7ZWxzZSBpZigyMDA9PW4uc3RhdHVzQ29kZSlpZih0LmludGVyY2VwdG9yLnJlc3BvbnNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHQuaW50ZXJjZXB0b3IucmVzcG9uc2Upe3ZhciByPXQuaW50ZXJjZXB0b3IucmVzcG9uc2Uobi5kYXRhKTshMSE9PXI/YShyKTppKG4uZGF0YSl9ZWxzZSBhKG4uZGF0YSk7ZWxzZSBpKG4pfSxuLnVybD1wLmRlZmF1bHQudXJsKG4udXJsKT9uLnVybDp0LmNvbmZpZy5iYXNlVXJsKygwPT1uLnVybC5pbmRleE9mKCIvIik/bi51cmw6Ii8iK24udXJsKSx0LmNvbmZpZy5zaG93TG9hZGluZyYmIXQuY29uZmlnLnRpbWVyJiYodC5jb25maWcudGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt1bmkuc2hvd0xvYWRpbmcoe3RpdGxlOnQuY29uZmlnLmxvYWRpbmdUZXh0LG1hc2s6dC5jb25maWcubG9hZGluZ01hc2t9KSx0LmNvbmZpZy50aW1lcj1udWxsfSksdC5jb25maWcubG9hZGluZ1RpbWUpKSx1bmkucmVxdWVzdChuKX0pKX19XSksdH0oKSxnPW5ldyBkO24uZGVmYXVsdD1nfSwiMGZhMiI6ZnVuY3Rpb24odCxuLGEpe2EoImQzYjciKSxhKCJhYzFmIiksYSgiZDgxZCIpLGEoImI2NGIiKSxhKCIwMGI0IiksYSgiYTQzNCIpLHQuZXhwb3J0cz17ZGF0YTpmdW5jdGlvbigpe3JldHVybnt9fSxvbkxvYWQ6ZnVuY3Rpb24oKXt0aGlzLiR1LmdldFJlY3Q9dGhpcy4kdUdldFJlY3R9LG1ldGhvZHM6eyR1R2V0UmVjdDpmdW5jdGlvbih0LG4pe3ZhciBhPXRoaXM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihpKXt1bmkuY3JlYXRlU2VsZWN0b3JRdWVyeSgpLmluKGEpW24/InNlbGVjdEFsbCI6InNlbGVjdCJdKHQpLmJvdW5kaW5nQ2xpZW50UmVjdCgoZnVuY3Rpb24odCl7biYmQXJyYXkuaXNBcnJheSh0KSYmdC5sZW5ndGgmJmkodCksIW4mJnQmJmkodCl9KSkuZXhlYygpfSkpfSxnZXRQYXJlbnREYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjt0aGlzLnBhcmVudHx8KHRoaXMucGFyZW50PSExKSx0aGlzLnBhcmVudD10aGlzLiR1LiRwYXJlbnQuY2FsbCh0aGlzLG4pLHRoaXMucGFyZW50JiZPYmplY3Qua2V5cyh0aGlzLnBhcmVudERhdGEpLm1hcCgoZnVuY3Rpb24obil7dC5wYXJlbnREYXRhW25dPXQucGFyZW50W25dfSkpfSxwcmV2ZW50RXZlbnQ6ZnVuY3Rpb24odCl7dCYmdC5zdG9wUHJvcGFnYXRpb24mJnQuc3RvcFByb3BhZ2F0aW9uKCl9fSxvblJlYWNoQm90dG9tOmZ1bmN0aW9uKCl7dW5pLiRlbWl0KCJ1T25SZWFjaEJvdHRvbSIpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLnBhcmVudCYmdW5pLiR1LnRlc3QuYXJyYXkodGhpcy5wYXJlbnQuY2hpbGRyZW4pKXt2YXIgbj10aGlzLnBhcmVudC5jaGlsZHJlbjtuLm1hcCgoZnVuY3Rpb24oYSxpKXthPT09dCYmbi5zcGxpY2UoaSwxKX0pKX19fX0sIjEzYjAiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPWZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxNTAwO3VuaS5zaG93VG9hc3Qoe3RpdGxlOnQsaWNvbjoibm9uZSIsZHVyYXRpb246bn0pfTtuLmRlZmF1bHQ9aX0sIjE0YzUiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoIjRkZTQiKSxhKCJkM2I3Iik7dmFyIGU9aShhKCIwZmEyIikpLHI9aShhKCIwZjU1IikpLG89aShhKCI5Mzk3IikpLHA9aShhKCJiNzA3IikpLGQ9aShhKCJmODUxIikpLGc9aShhKCIzZjg3IikpLG09aShhKCI1NzYwNCIpKSx1PWkoYSgiMWUzZiIpKSxzPWkoYSgiOTFiNCIpKSxjPWkoYSgiNDNiZiIpKSxsPWkoYSgiYjVkOCIpKSxmPWkoYSgiM2RlYSIpKSxoPWkoYSgiODc0YiIpKSxiPWkoYSgiYTIyYSIpKSx5PWkoYSgiZWQyOCIpKSx3PWkoYSgiYzY1ZiIpKSxfPWkoYSgiNTA5NCIpKSx2PWkoYSgiMTNiMCIpKSx4PWkoYSgiYjdkZSIpKSxDPWkoYSgiYjk4MyIpKSxrPWEoIjQxM2QiKSxQPWkoYSgiM2Q3MiIpKSxTPWkoYSgiMjM1ZSIpKSxJPWkoYSgiODgyMSIpKSxBPWkoYSgiOTdlZSIpKTt2YXIgVD17cXVlcnlQYXJhbXM6by5kZWZhdWx0LHJvdXRlOnAuZGVmYXVsdCx0aW1lRm9ybWF0OmQuZGVmYXVsdCxkYXRlOmQuZGVmYXVsdCx0aW1lRnJvbTpnLmRlZmF1bHQsY29sb3JHcmFkaWVudDptLmRlZmF1bHQuY29sb3JHcmFkaWVudCxjb2xvclRvUmdiYTptLmRlZmF1bHQuY29sb3JUb1JnYmEsZ3VpZDp1LmRlZmF1bHQsY29sb3I6cy5kZWZhdWx0LHN5czprLnN5cyxvczprLm9zLHR5cGUyaWNvbjpjLmRlZmF1bHQscmFuZG9tQXJyYXk6bC5kZWZhdWx0LHdyYW5uaW5nOmZ1bmN0aW9uKHQpezB9LGdldDpyLmRlZmF1bHQuZ2V0LHBvc3Q6ci5kZWZhdWx0LnBvc3QscHV0OnIuZGVmYXVsdC5wdXQsZGVsZXRlOnIuZGVmYXVsdC5kZWxldGUsaGV4VG9SZ2I6bS5kZWZhdWx0LmhleFRvUmdiLHJnYlRvSGV4Om0uZGVmYXVsdC5yZ2JUb0hleCx0ZXN0OnkuZGVmYXVsdCxyYW5kb206dy5kZWZhdWx0LGRlZXBDbG9uZTpmLmRlZmF1bHQsZGVlcE1lcmdlOmguZGVmYXVsdCxnZXRQYXJlbnQ6eC5kZWZhdWx0LCRwYXJlbnQ6Qy5kZWZhdWx0LGFkZFVuaXQ6Yi5kZWZhdWx0LHRyaW06Xy5kZWZhdWx0LHR5cGU6WyJwcmltYXJ5Iiwic3VjY2VzcyIsImVycm9yIiwid2FybmluZyIsImluZm8iXSxodHRwOnIuZGVmYXVsdCx0b2FzdDp2LmRlZmF1bHQsY29uZmlnOkkuZGVmYXVsdCx6SW5kZXg6QS5kZWZhdWx0LGRlYm91bmNlOlAuZGVmYXVsdCx0aHJvdHRsZTpTLmRlZmF1bHR9O3VuaS4kdT1UO3ZhciBSPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3QubWl4aW4oZS5kZWZhdWx0KSx0LnByb3RvdHlwZS5vcGVuU2hhcmUmJnQubWl4aW4obXBTaGFyZSksdC5maWx0ZXIoInRpbWVGb3JtYXQiLChmdW5jdGlvbih0LG4pe3JldHVybigwLGQuZGVmYXVsdCkodCxuKX0pKSx0LmZpbHRlcigiZGF0ZSIsKGZ1bmN0aW9uKHQsbil7cmV0dXJuKDAsZC5kZWZhdWx0KSh0LG4pfSkpLHQuZmlsdGVyKCJ0aW1lRnJvbSIsKGZ1bmN0aW9uKHQsbil7cmV0dXJuKDAsZy5kZWZhdWx0KSh0LG4pfSkpLHQucHJvdG90eXBlLiR1PVR9fTtuLmRlZmF1bHQ9Un0sIjFlM2YiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjMyLG49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsLGk9IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ii5zcGxpdCgiIiksZT1bXTtpZihhPWF8fGkubGVuZ3RoLHQpZm9yKHZhciByPTA7cjx0O3IrKyllW3JdPWlbMHxNYXRoLnJhbmRvbSgpKmFdO2Vsc2V7dmFyIG87ZVs4XT1lWzEzXT1lWzE4XT1lWzIzXT0iLSIsZVsxNF09IjQiO2Zvcih2YXIgcD0wO3A8MzY7cCsrKWVbcF18fChvPTB8MTYqTWF0aC5yYW5kb20oKSxlW3BdPWlbMTk9PXA/MyZvfDg6b10pfXJldHVybiBuPyhlLnNoaWZ0KCksInUiK2Uuam9pbigiIikpOmUuam9pbigiIil9O24uZGVmYXVsdD1pfSwiMjM1ZSI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaTthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGU9ZnVuY3Rpb24odCl7dmFyIG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjUwMCxhPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07YT9pfHwoaT0hMCwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJnQoKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2k9ITF9KSxuKSk6aXx8KGk9ITAsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtpPSExLCJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdCgpfSksbikpfTtuLmRlZmF1bHQ9ZX0sIjNiY2IiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciBuPWEoIjRlYTQiKS5kZWZhdWx0O2EoIjEzZDUiKSxhKCJkM2I3IiksYSgiZGRiMCIpLGEoImFjMWYiKSxhKCI1MzE5Iik7dmFyIGk9bihhKCJlMTQzIikpLGU9e2tleXM6ZnVuY3Rpb24oKXtyZXR1cm5bXX19O3RbIl9fX183OTEzQjk3X19fXyJdPSEwLGRlbGV0ZSB0WyJfX19fNzkxM0I5N19fX18iXSx0Ll9fdW5pQ29uZmlnPXtlYXN5Y29tOnsiXnUtKC4qKSI6IkAvdXZpZXctdWkvY29tcG9uZW50cy91LSQxL3UtJDEudnVlIiwiXnVuaWNsb3VkLWRiJCI6IkBkY2xvdWRpby91bmktY2xpLXNoYXJlZC9jb21wb25lbnRzL3VuaWNsb3VkLWRiLnZ1ZSIsIl51bmlhZCQiOiJAZGNsb3VkaW8vdW5pLWNsaS1zaGFyZWQvY29tcG9uZW50cy91bmlhZC52dWUiLCJeYWQtcmV3YXJkZWQtdmlkZW8kIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvYWQtcmV3YXJkZWQtdmlkZW8udnVlIiwiXmFkLWZ1bGxzY3JlZW4tdmlkZW8kIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvYWQtZnVsbHNjcmVlbi12aWRlby52dWUiLCJeYWQtaW50ZXJzdGl0aWFsJCI6IkBkY2xvdWRpby91bmktY2xpLXNoYXJlZC9jb21wb25lbnRzL2FkLWludGVyc3RpdGlhbC52dWUiLCJeYWQtaW50ZXJhY3RpdmUkIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvYWQtaW50ZXJhY3RpdmUudnVlIiwiXnBhZ2UtbWV0YSQiOiJAZGNsb3VkaW8vdW5pLWNsaS1zaGFyZWQvY29tcG9uZW50cy9wYWdlLW1ldGEudnVlIiwiXm5hdmlnYXRpb24tYmFyJCI6IkBkY2xvdWRpby91bmktY2xpLXNoYXJlZC9jb21wb25lbnRzL25hdmlnYXRpb24tYmFyLnZ1ZSIsIl51bmktbWF0Y2gtbWVkaWEkIjoiQGRjbG91ZGlvL3VuaS1jbGktc2hhcmVkL2NvbXBvbmVudHMvdW5pLW1hdGNoLW1lZGlhLnZ1ZSJ9LGdsb2JhbFN0eWxlOntuYXZpZ2F0aW9uQmFyVGV4dFN0eWxlOiJibGFjayIsbmF2aWdhdGlvbkJhclRpdGxlVGV4dDoiUkVUQUlMLVNIT1BQSU5HIixuYXZpZ2F0aW9uQmFyQmFja2dyb3VuZENvbG9yOiIjRkZGRkZGIixiYWNrZ3JvdW5kQ29sb3I6IiNGOEY4RjgifSx0YWJCYXI6e2NvbG9yOiIjMDAwIixzZWxlY3RlZENvbG9yOiIjMDAwIixib3JkZXJTdHlsZToiI2ZmZmZmZiIsYmFja2dyb3VuZENvbG9yOiIjZmZmZmZmIixsaXN0Olt7cGFnZVBhdGg6InBhZ2VzL2luZGV4L2luZGV4IixpY29uUGF0aDoic3RhdGljL2ljb24vdGFiLzQ4LnBuZyIsc2VsZWN0ZWRJY29uUGF0aDoic3RhdGljL2ljb24vdGFiLzQ4LnBuZyIsdGV4dDoiSE9NRSIscmVkRG90OiExLGJhZGdlOiIifSx7cGFnZVBhdGg6InBhZ2VzL2luZGV4L3Rha2UiLGljb25QYXRoOiJzdGF0aWMvaWNvbi90YWIvNDkucG5nIixzZWxlY3RlZEljb25QYXRoOiJzdGF0aWMvaWNvbi90YWIvNDkucG5nIix0ZXh0OiJPUkRFUiIscmVkRG90OiExLGJhZGdlOiIifSx7cGFnZVBhdGg6InBhZ2VzL2luZGV4L2xpc3QiLGljb25QYXRoOiIuL3N0YXRpYy9pY29uL3RhYi81MC5wbmciLHNlbGVjdGVkSWNvblBhdGg6Ii4vc3RhdGljL2ljb24vdGFiLzUwLnBuZyIsdGV4dDoiVE8gRE8gTElTVCIscmVkRG90OiExLGJhZGdlOiIifSx7cGFnZVBhdGg6InBhZ2VzL2luZGV4L21haW4iLGljb25QYXRoOiIuL3N0YXRpYy9pY29uL3RhYi81MS5wbmciLHNlbGVjdGVkSWNvblBhdGg6Ii4vc3RhdGljL2ljb24vdGFiLzUxLnBuZyIsdGV4dDoiQUNDT1VOVCIscmVkRG90OiExLGJhZGdlOiIifV19fSx0Ll9fdW5pQ29uZmlnLmNvbXBpbGVyVmVyc2lvbj0iMy45OCIsdC5fX3VuaUNvbmZpZy5kYXJrbW9kZT0hMSx0Ll9fdW5pQ29uZmlnLnRoZW1lQ29uZmlnPXt9LHQuX191bmlDb25maWcudW5pUGxhdGZvcm09Img1Iix0Ll9fdW5pQ29uZmlnLmFwcElkPSJfX1VOSV9fNzkxM0I5NyIsdC5fX3VuaUNvbmZpZy5hcHBOYW1lPSJSRVRBSUwtU0hPUFBJTkciLHQuX191bmlDb25maWcuYXBwVmVyc2lvbj0iMS4wLjAiLHQuX191bmlDb25maWcuYXBwVmVyc2lvbkNvZGU9IjEwMCIsdC5fX3VuaUNvbmZpZy5yb3V0ZXI9e21vZGU6Imhhc2giLGJhc2U6Ii9oNS8ifSx0Ll9fdW5pQ29uZmlnLnB1YmxpY1BhdGg9Ii9oNS8iLHQuX191bmlDb25maWdbImFzeW5jIl09e2xvYWRpbmc6IkFzeW5jTG9hZGluZyIsZXJyb3I6IkFzeW5jRXJyb3IiLGRlbGF5OjIwMCx0aW1lb3V0OjZlNH0sdC5fX3VuaUNvbmZpZy5kZWJ1Zz0hMSx0Ll9fdW5pQ29uZmlnLm5ldHdvcmtUaW1lb3V0PXtyZXF1ZXN0OjZlNCxjb25uZWN0U29ja2V0OjZlNCx1cGxvYWRGaWxlOjZlNCxkb3dubG9hZEZpbGU6NmU0fSx0Ll9fdW5pQ29uZmlnLnNka0NvbmZpZ3M9e21hcHM6e319LHQuX191bmlDb25maWcucXFNYXBLZXk9dm9pZCAwLHQuX191bmlDb25maWcuZ29vZ2xlTWFwS2V5PXZvaWQgMCx0Ll9fdW5pQ29uZmlnLmFNYXBLZXk9dm9pZCAwLHQuX191bmlDb25maWcuYU1hcFNlY3VyaXR5SnNDb2RlPXZvaWQgMCx0Ll9fdW5pQ29uZmlnLmFNYXBTZXJ2aWNlSG9zdD12b2lkIDAsdC5fX3VuaUNvbmZpZy5sb2NhbGU9IiIsdC5fX3VuaUNvbmZpZy5mYWxsYmFja0xvY2FsZT12b2lkIDAsdC5fX3VuaUNvbmZpZy5sb2NhbGVzPWUua2V5cygpLnJlZHVjZSgoZnVuY3Rpb24odCxuKXt2YXIgYT1uLnJlcGxhY2UoL1wuXC8odW5pLWFwcC4pPyguKikuanNvbi8sIiQyIiksaT1lKG4pO3JldHVybiBPYmplY3QuYXNzaWduKHRbYV18fCh0W2FdPXt9KSxpLmNvbW1vbnx8aSksdH0pLHt9KSx0Ll9fdW5pQ29uZmlnLm52dWU9eyJmbGV4LWRpcmVjdGlvbiI6ImNvbHVtbiJ9LHQuX191bmlDb25maWcuX193ZWJwYWNrX2NodW5rX2xvYWRfXz1hLmUsaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbG9naW4tbG9naW4iLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWxvZ2luLWxvZ2luIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYmQ1YyIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1pbmRleC1pbmRleCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXgiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJmMmZlIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLWluZGV4LW1haW4iLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiKSxhLmUoInBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXktcGF5bWVudFBhc3N3b3JkfnB+ODA2YjM5MmYiKSxhLmUoInBhZ2VzLWluZGV4LW1haW4iKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJmNDkzIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLWluZGV4LXRha2UiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiKSxhLmUoInBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXktcGF5bWVudFBhc3N3b3JkfnB+ODA2YjM5MmYiKSxhLmUoInBhZ2VzLWluZGV4LXRha2UiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCI2ZTFhIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLWluZGV4LWxpc3QiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiKSxhLmUoInBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXktcGF5bWVudFBhc3N3b3JkfnB+ODA2YjM5MmYiKSxhLmUoInBhZ2VzLWluZGV4LWxpc3QiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCIzZTU1IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1TZXJ2aWNlfnBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIiksYS5lKCJwYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoImUwYzAiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtcmVjaGFyZ2UtUmVjaGFyZ2VSZWNvcmQiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLXJlY2hhcmdlLVJlY2hhcmdlUmVjb3JkIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYmY2OCIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiIpLGEuZSgicGFnZXMtd2l0aGRyYXctd2l0aGRyYXciKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJiMDNhIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLXdpdGhkcmF3LVdpdGhkcmF3YWxzUmVjb3JkIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy13aXRoZHJhdy1XaXRoZHJhd2Fsc1JlY29yZCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjViNzIiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktYWRkcmVzcyIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktYWRkcmVzcyIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjMwODYiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtd2FsbGV0LUJpbmRCYW5rIiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haW5+cGFnZXMtaW5kZXgtdGFrZX5wYWdlcy1teS1sb2dpblBhc3N3b3JkfnBhZ2VzLW15fjExYTJlZTJkIiksYS5lKCJwYWdlcy13YWxsZXQtQmluZEJhbmsiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCI5ZmQ0IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLW15LWxvZ2luUGFzc3dvcmQiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXl+MTFhMmVlMmQiKSxhLmUoInBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpbn5wYWdlcy1pbmRleC10YWtlfnBhZ2VzLW15LWxvZ2luUGFzc3dvcmR+cGFnZXMtbXktcGF5bWVudFBhc3N3b3JkfnB+ODA2YjM5MmYiKSxhLmUoInBhZ2VzLW15LWxvZ2luUGFzc3dvcmQiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCJjODBkIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLW15LXBheW1lbnRQYXNzd29yZCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teX4xMWEyZWUyZCIpLGEuZSgicGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWlufnBhZ2VzLWluZGV4LXRha2V+cGFnZXMtbXktbG9naW5QYXNzd29yZH5wYWdlcy1teS1wYXltZW50UGFzc3dvcmR+cH44MDZiMzkyZiIpLGEuZSgicGFnZXMtbXktcGF5bWVudFBhc3N3b3JkIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYmExZCIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS1GdW5kaW5nRGV0YWlscyIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktRnVuZGluZ0RldGFpbHMiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCIxNzhkIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLWNoZWNrSW4tY2hlY2tJbiIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtY2hlY2tJbi1jaGVja0luIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYmNlNiIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmQiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoImI5MDgiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktdGVhbSIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktdGVhbSIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjQ4ZmUiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktU2VydmljZSIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktU2VydmljZX5wYWdlcy1yZWNoYXJnZS1yZWNoYXJnZSIpLGEuZSgicGFnZXMtbXktU2VydmljZSIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjFkMDJjIikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLXdhbGxldC1iYW5rTGlzdCIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtd2FsbGV0LWJhbmtMaXN0IildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiZDA3ZiIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy13YWxsZXQtYmluR2Nhc2giLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLXdhbGxldC1iaW5HY2FzaCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjkwYmMiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtd2FsbGV0LWJpbk1heWEiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLXdhbGxldC1iaW5NYXlhIildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiODhjYSIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS1TdGF0aW9uTWVzc2FnZSIsKGZ1bmN0aW9uKHQpe3ZhciBuPXtjb21wb25lbnQ6UHJvbWlzZS5hbGwoW2EuZSgicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCIpLGEuZSgicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2V+cGFnZXMtbXktbWFpbGJveCIpLGEuZSgicGFnZXMtbXktU3RhdGlvbk1lc3NhZ2UiKV0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdChhKCIxMDk3IikpfS5iaW5kKG51bGwsYSkpLmNhdGNoKGEub2UpLGRlbGF5Ol9fdW5pQ29uZmlnWyJhc3luYyJdLmRlbGF5LHRpbWVvdXQ6X191bmlDb25maWdbImFzeW5jIl0udGltZW91dH07cmV0dXJuIF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0mJihuLmxvYWRpbmc9e25hbWU6IlN5c3RlbUFzeW5jTG9hZGluZyIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJsb2FkaW5nIl0pfX0pLF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdJiYobi5lcnJvcj17bmFtZToiU3lzdGVtQXN5bmNFcnJvciIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KF9fdW5pQ29uZmlnWyJhc3luYyJdWyJlcnJvciJdKX19KSxufSkpLGkuZGVmYXVsdC5jb21wb25lbnQoInBhZ2VzLW15LUFydGljbGVDb250ZW50IiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1BcnRpY2xlQ29udGVudCIpXSkudGhlbihmdW5jdGlvbigpe3JldHVybiB0KGEoIjAyNzUiKSl9LmJpbmQobnVsbCxhKSkuY2F0Y2goYS5vZSksZGVsYXk6X191bmlDb25maWdbImFzeW5jIl0uZGVsYXksdGltZW91dDpfX3VuaUNvbmZpZ1siYXN5bmMiXS50aW1lb3V0fTtyZXR1cm4gX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSYmKG4ubG9hZGluZz17bmFtZToiU3lzdGVtQXN5bmNMb2FkaW5nIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImxvYWRpbmciXSl9fSksX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0mJihuLmVycm9yPXtuYW1lOiJTeXN0ZW1Bc3luY0Vycm9yIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoX191bmlDb25maWdbImFzeW5jIl1bImVycm9yIl0pfX0pLG59KSksaS5kZWZhdWx0LmNvbXBvbmVudCgicGFnZXMtbXktbWFpbGJveENvbnRlbnQiLChmdW5jdGlvbih0KXt2YXIgbj17Y29tcG9uZW50OlByb21pc2UuYWxsKFthLmUoInBhZ2VzLWNoZWNrSW4tQ2hlY2tJblJlY29yZH5wYWdlcy1jaGVja0luLWNoZWNrSW5+cGFnZXMtaW5kZXgtaW5kZXh+cGFnZXMtaW5kZXgtbGlzdH5wYWdlcy1pbmRleC1tYWl+Y2JiZGU2ODAiKSxhLmUoInBhZ2VzLW15LW1haWxib3hDb250ZW50IildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYTc2NSIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSxpLmRlZmF1bHQuY29tcG9uZW50KCJwYWdlcy1teS1tYWlsYm94IiwoZnVuY3Rpb24odCl7dmFyIG49e2NvbXBvbmVudDpQcm9taXNlLmFsbChbYS5lKCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmR+cGFnZXMtY2hlY2tJbi1jaGVja0lufnBhZ2VzLWluZGV4LWluZGV4fnBhZ2VzLWluZGV4LWxpc3R+cGFnZXMtaW5kZXgtbWFpfmNiYmRlNjgwIiksYS5lKCJwYWdlcy1teS1TdGF0aW9uTWVzc2FnZX5wYWdlcy1teS1tYWlsYm94IiksYS5lKCJwYWdlcy1teS1tYWlsYm94IildKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQoYSgiYTJjZiIpKX0uYmluZChudWxsLGEpKS5jYXRjaChhLm9lKSxkZWxheTpfX3VuaUNvbmZpZ1siYXN5bmMiXS5kZWxheSx0aW1lb3V0Ol9fdW5pQ29uZmlnWyJhc3luYyJdLnRpbWVvdXR9O3JldHVybiBfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdJiYobi5sb2FkaW5nPXtuYW1lOiJTeXN0ZW1Bc3luY0xvYWRpbmciLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsibG9hZGluZyJdKX19KSxfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSYmKG4uZXJyb3I9e25hbWU6IlN5c3RlbUFzeW5jRXJyb3IiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChfX3VuaUNvbmZpZ1siYXN5bmMiXVsiZXJyb3IiXSl9fSksbn0pKSx0Ll9fdW5pUm91dGVzPVt7cGF0aDoiLyIsYWxpYXM6Ii9wYWdlcy9sb2dpbi9sb2dpbiIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHtpc1F1aXQ6ITAsaXNFbnRyeTohMH0sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbG9naW4tbG9naW4iLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntpZDoxLG5hbWU6InBhZ2VzLWxvZ2luLWxvZ2luIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbG9naW4vbG9naW4iLGlzUXVpdDohMCxpc0VudHJ5OiEwLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9pbmRleC9pbmRleCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHtpc1F1aXQ6ITAsaXNUYWJCYXI6ITAsdGFiQmFySW5kZXg6MH0sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtaW5kZXgtaW5kZXgiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntpZDoyLG5hbWU6InBhZ2VzLWluZGV4LWluZGV4Iixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvaW5kZXgvaW5kZXgiLGlzUXVpdDohMCxpc1RhYkJhcjohMCx0YWJCYXJJbmRleDowLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9pbmRleC9tYWluIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe2lzUXVpdDohMCxpc1RhYkJhcjohMCx0YWJCYXJJbmRleDozfSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1pbmRleC1tYWluIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7aWQ6MyxuYW1lOiJwYWdlcy1pbmRleC1tYWluIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvaW5kZXgvbWFpbiIsaXNRdWl0OiEwLGlzVGFiQmFyOiEwLHRhYkJhckluZGV4OjMsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL2luZGV4L3Rha2UiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7aXNRdWl0OiEwLGlzVGFiQmFyOiEwLHRhYkJhckluZGV4OjF9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLWluZGV4LXRha2UiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntpZDo0LG5hbWU6InBhZ2VzLWluZGV4LXRha2UiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9pbmRleC90YWtlIixpc1F1aXQ6ITAsaXNUYWJCYXI6ITAsdGFiQmFySW5kZXg6MSx3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvaW5kZXgvbGlzdCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHtpc1F1aXQ6ITAsaXNUYWJCYXI6ITAsdGFiQmFySW5kZXg6Mn0sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtaW5kZXgtbGlzdCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e2lkOjUsbmFtZToicGFnZXMtaW5kZXgtbGlzdCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL2luZGV4L2xpc3QiLGlzUXVpdDohMCxpc1RhYkJhcjohMCx0YWJCYXJJbmRleDoyLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9yZWNoYXJnZS9yZWNoYXJnZSIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLXJlY2hhcmdlLXJlY2hhcmdlIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtcmVjaGFyZ2UtcmVjaGFyZ2UiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9yZWNoYXJnZS9yZWNoYXJnZSIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL3JlY2hhcmdlL1JlY2hhcmdlUmVjb3JkIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtcmVjaGFyZ2UtUmVjaGFyZ2VSZWNvcmQiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1yZWNoYXJnZS1SZWNoYXJnZVJlY29yZCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL3JlY2hhcmdlL1JlY2hhcmdlUmVjb3JkIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvd2l0aGRyYXcvd2l0aGRyYXciLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy13aXRoZHJhdy13aXRoZHJhdyIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLXdpdGhkcmF3LXdpdGhkcmF3Iixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvd2l0aGRyYXcvd2l0aGRyYXciLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy93aXRoZHJhdy9XaXRoZHJhd2Fsc1JlY29yZCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLXdpdGhkcmF3LVdpdGhkcmF3YWxzUmVjb3JkIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtd2l0aGRyYXctV2l0aGRyYXdhbHNSZWNvcmQiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy93aXRoZHJhdy9XaXRoZHJhd2Fsc1JlY29yZCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L2FkZHJlc3MiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1teS1hZGRyZXNzIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtbXktYWRkcmVzcyIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L2FkZHJlc3MiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy93YWxsZXQvQmluZEJhbmsiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy13YWxsZXQtQmluZEJhbmsiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy13YWxsZXQtQmluZEJhbmsiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy93YWxsZXQvQmluZEJhbmsiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9teS9sb2dpblBhc3N3b3JkIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktbG9naW5QYXNzd29yZCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LWxvZ2luUGFzc3dvcmQiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9teS9sb2dpblBhc3N3b3JkIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvcGF5bWVudFBhc3N3b3JkIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktcGF5bWVudFBhc3N3b3JkIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtbXktcGF5bWVudFBhc3N3b3JkIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvcGF5bWVudFBhc3N3b3JkIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvRnVuZGluZ0RldGFpbHMiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1teS1GdW5kaW5nRGV0YWlscyIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LUZ1bmRpbmdEZXRhaWxzIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvRnVuZGluZ0RldGFpbHMiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9jaGVja0luL2NoZWNrSW4iLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1jaGVja0luLWNoZWNrSW4iLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1jaGVja0luLWNoZWNrSW4iLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9jaGVja0luL2NoZWNrSW4iLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9jaGVja0luL0NoZWNrSW5SZWNvcmQiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmQiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1jaGVja0luLUNoZWNrSW5SZWNvcmQiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9jaGVja0luL0NoZWNrSW5SZWNvcmQiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9teS90ZWFtIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktdGVhbSIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LXRlYW0iLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9teS90ZWFtIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvU2VydmljZSIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LVNlcnZpY2UiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS1TZXJ2aWNlIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvU2VydmljZSIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL3dhbGxldC9iYW5rTGlzdCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLXdhbGxldC1iYW5rTGlzdCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLXdhbGxldC1iYW5rTGlzdCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL3dhbGxldC9iYW5rTGlzdCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL3dhbGxldC9iaW5HY2FzaCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLXdhbGxldC1iaW5HY2FzaCIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLXdhbGxldC1iaW5HY2FzaCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL3dhbGxldC9iaW5HY2FzaCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL3dhbGxldC9iaW5NYXlhIixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtd2FsbGV0LWJpbk1heWEiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy13YWxsZXQtYmluTWF5YSIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL3dhbGxldC9iaW5NYXlhIix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvU3RhdGlvbk1lc3NhZ2UiLGNvbXBvbmVudDp7cmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KCJQYWdlIix7cHJvcHM6T2JqZWN0LmFzc2lnbih7fSxfX3VuaUNvbmZpZy5nbG9iYWxTdHlsZSx7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifSl9LFt0KCJwYWdlcy1teS1TdGF0aW9uTWVzc2FnZSIse3Nsb3Q6InBhZ2UifSldKX19LG1ldGE6e25hbWU6InBhZ2VzLW15LVN0YXRpb25NZXNzYWdlIixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvU3RhdGlvbk1lc3NhZ2UiLHdpbmRvd1RvcDowfX0se3BhdGg6Ii9wYWdlcy9teS9BcnRpY2xlQ29udGVudCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LUFydGljbGVDb250ZW50Iix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToicGFnZXMtbXktQXJ0aWNsZUNvbnRlbnQiLGlzTlZ1ZTohMSxtYXhXaWR0aDowLHBhZ2VQYXRoOiJwYWdlcy9teS9BcnRpY2xlQ29udGVudCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL3BhZ2VzL215L21haWxib3hDb250ZW50Iixjb21wb25lbnQ6e3JlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCgiUGFnZSIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sX191bmlDb25maWcuZ2xvYmFsU3R5bGUse25hdmlnYXRpb25TdHlsZToiY3VzdG9tIn0pfSxbdCgicGFnZXMtbXktbWFpbGJveENvbnRlbnQiLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS1tYWlsYm94Q29udGVudCIsaXNOVnVlOiExLG1heFdpZHRoOjAscGFnZVBhdGg6InBhZ2VzL215L21haWxib3hDb250ZW50Iix3aW5kb3dUb3A6MH19LHtwYXRoOiIvcGFnZXMvbXkvbWFpbGJveCIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LF9fdW5pQ29uZmlnLmdsb2JhbFN0eWxlLHtuYXZpZ2F0aW9uU3R5bGU6ImN1c3RvbSJ9KX0sW3QoInBhZ2VzLW15LW1haWxib3giLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJwYWdlcy1teS1tYWlsYm94Iixpc05WdWU6ITEsbWF4V2lkdGg6MCxwYWdlUGF0aDoicGFnZXMvbXkvbWFpbGJveCIsd2luZG93VG9wOjB9fSx7cGF0aDoiL2Nob29zZS1sb2NhdGlvbiIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczp7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifX0sW3QoInN5c3RlbS1jaG9vc2UtbG9jYXRpb24iLHtzbG90OiJwYWdlIn0pXSl9fSxtZXRhOntuYW1lOiJjaG9vc2UtbG9jYXRpb24iLHBhZ2VQYXRoOiIvY2hvb3NlLWxvY2F0aW9uIn19LHtwYXRoOiIvb3Blbi1sb2NhdGlvbiIsY29tcG9uZW50OntyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoIlBhZ2UiLHtwcm9wczp7bmF2aWdhdGlvblN0eWxlOiJjdXN0b20ifX0sW3QoInN5c3RlbS1vcGVuLWxvY2F0aW9uIix7c2xvdDoicGFnZSJ9KV0pfX0sbWV0YTp7bmFtZToib3Blbi1sb2NhdGlvbiIscGFnZVBhdGg6Ii9vcGVuLWxvY2F0aW9uIn19XSx0LlVuaUFwcCYmbmV3IHQuVW5pQXBwfSkuY2FsbCh0aGlzLGEoImM4YmEiKSl9LCIzZDcyIjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgaT1udWxsO3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo1MDAsYT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKG51bGwhPT1pJiZjbGVhclRpbWVvdXQoaSksYSl7dmFyIGU9IWk7aT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2k9bnVsbH0pLG4pLGUmJiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdCgpfWVsc2UgaT1zZXRUaW1lb3V0KChmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2YgdCYmdCgpfSksbil9O24uZGVmYXVsdD1lfSwiM2RlYSI6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIik7dmFyIGk9YSgiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGU9aShhKCI1M2NhIikpO2EoImQzYjciKSxhKCJjYWFkIik7dmFyIHI9ZnVuY3Rpb24gdChuKXtpZihbbnVsbCx2b2lkIDAsTmFOLCExXS5pbmNsdWRlcyhuKSlyZXR1cm4gbjtpZigib2JqZWN0IiE9PSgwLGUuZGVmYXVsdCkobikmJiJmdW5jdGlvbiIhPT10eXBlb2YgbilyZXR1cm4gbjt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfShuKT9bXTp7fTtmb3IodmFyIGkgaW4gbiluLmhhc093blByb3BlcnR5KGkpJiYoYVtpXT0ib2JqZWN0Ij09PSgwLGUuZGVmYXVsdCkobltpXSk/dChuW2ldKTpuW2ldKTtyZXR1cm4gYX07bi5kZWZhdWx0PXJ9LCIzZjg3IjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMCxhKCJhOWUzIiksYSgiZDQwMSIpLGEoImQzYjciKSxhKCIyNWYwIiksYSgiZTI1ZSIpO3ZhciBlPWkoYSgiZjg1MSIpKTt2YXIgcj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJ5eXl5LW1tLWRkIjt0fHwodD1OdW1iZXIobmV3IERhdGUpKSwxMD09dC50b1N0cmluZygpLmxlbmd0aCYmKHQqPTFlMyk7dmFyIGE9K25ldyBEYXRlKE51bWJlcih0KSksaT0oTnVtYmVyKG5ldyBEYXRlKS1hKS8xZTMscj0iIjtzd2l0Y2goITApe2Nhc2UgaTwzMDA6cj0i5Yia5YiaIjticmVhaztjYXNlIGk+PTMwMCYmaTwzNjAwOnI9cGFyc2VJbnQoaS82MCkrIuWIhumSn+WJjSI7YnJlYWs7Y2FzZSBpPj0zNjAwJiZpPDg2NDAwOnI9cGFyc2VJbnQoaS8zNjAwKSsi5bCP5pe25YmNIjticmVhaztjYXNlIGk+PTg2NDAwJiZpPDI1OTJlMzpyPXBhcnNlSW50KGkvODY0MDApKyLlpKnliY0iO2JyZWFrO2RlZmF1bHQ6cj0hMT09PW4/aT49MjU5MmUzJiZpPDMxNTM2ZTM/cGFyc2VJbnQoaS8yNTkyZTMpKyLkuKrmnIjliY0iOnBhcnNlSW50KGkvMzE1MzZlMykrIuW5tOWJjSI6KDAsZS5kZWZhdWx0KShhLG4pfXJldHVybiByfTtuLmRlZmF1bHQ9cn0sIjQxM2QiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLm9zPWZ1bmN0aW9uKCl7cmV0dXJuIHVuaS5nZXRTeXN0ZW1JbmZvU3luYygpLnBsYXRmb3JtfSxuLnN5cz1mdW5jdGlvbigpe3JldHVybiB1bmkuZ2V0U3lzdGVtSW5mb1N5bmMoKX19LCI0M2JmIjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMCxhKCJjOTc1Iik7dmFyIGk9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06InN1Y2Nlc3MiLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTstMT09WyJwcmltYXJ5IiwiaW5mbyIsImVycm9yIiwid2FybmluZyIsInN1Y2Nlc3MiXS5pbmRleE9mKHQpJiYodD0ic3VjY2VzcyIpO3ZhciBhPSIiO3N3aXRjaCh0KXtjYXNlInByaW1hcnkiOmE9ImluZm8tY2lyY2xlIjticmVhaztjYXNlImluZm8iOmE9ImluZm8tY2lyY2xlIjticmVhaztjYXNlImVycm9yIjphPSJjbG9zZS1jaXJjbGUiO2JyZWFrO2Nhc2Uid2FybmluZyI6YT0iZXJyb3ItY2lyY2xlIjticmVhaztjYXNlInN1Y2Nlc3MiOmE9ImNoZWNrbWFyay1jaXJjbGUiO2JyZWFrO2RlZmF1bHQ6YT0iY2hlY2ttYXJrLWNpcmNsZSJ9cmV0dXJuIG4mJihhKz0iLWZpbGwiKSxhfTtuLmRlZmF1bHQ9aX0sNTA5NDpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMCxhKCJhYzFmIiksYSgiNTMxOSIpO3ZhciBpPWZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiYm90aCI7cmV0dXJuImJvdGgiPT1uP3QucmVwbGFjZSgvXlxzK3xccyskL2csIiIpOiJsZWZ0Ij09bj90LnJlcGxhY2UoL15ccyovLCIiKToicmlnaHQiPT1uP3QucmVwbGFjZSgvKFxzKiQpL2csIiIpOiJhbGwiPT1uP3QucmVwbGFjZSgvXHMrL2csIiIpOnR9O24uZGVmYXVsdD1pfSw1NzYwNDpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7dmFyIG49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxhPS9eIyhbMC05YS1mQS1mXXszfXxbMC05YS1mQS1mXXs2fSkkLztpZih0PXQudG9Mb3dlckNhc2UoKSx0JiZhLnRlc3QodCkpe2lmKDQ9PT10Lmxlbmd0aCl7Zm9yKHZhciBpPSIjIixlPTE7ZTw0O2UrPTEpaSs9dC5zbGljZShlLGUrMSkuY29uY2F0KHQuc2xpY2UoZSxlKzEpKTt0PWl9Zm9yKHZhciByPVtdLG89MTtvPDc7bys9MilyLnB1c2gocGFyc2VJbnQoIjB4Iit0LnNsaWNlKG8sbysyKSkpO3JldHVybiBuPyJyZ2IoIi5jb25jYXQoclswXSwiLCIpLmNvbmNhdChyWzFdLCIsIikuY29uY2F0KHJbMl0sIikiKTpyfWlmKC9eKHJnYnxSR0IpLy50ZXN0KHQpKXt2YXIgcD10LnJlcGxhY2UoLyg/OlwofFwpfHJnYnxSR0IpKi9nLCIiKS5zcGxpdCgiLCIpO3JldHVybiBwLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE51bWJlcih0KX0pKX1yZXR1cm4gdH1mdW5jdGlvbiBlKHQpe3ZhciBuPXQ7aWYoL14ocmdifFJHQikvLnRlc3Qobikpe2Zvcih2YXIgYT1uLnJlcGxhY2UoLyg/OlwofFwpfHJnYnxSR0IpKi9nLCIiKS5zcGxpdCgiLCIpLGk9IiMiLGU9MDtlPGEubGVuZ3RoO2UrKyl7dmFyIHI9TnVtYmVyKGFbZV0pLnRvU3RyaW5nKDE2KTtyPTE9PVN0cmluZyhyKS5sZW5ndGg/IjAiK3I6ciwiMCI9PT1yJiYocis9ciksaSs9cn1yZXR1cm4gNyE9PWkubGVuZ3RoJiYoaT1uKSxpfWlmKCEvXiMoWzAtOWEtZkEtZl17M318WzAtOWEtZkEtZl17Nn0pJC8udGVzdChuKSlyZXR1cm4gbjt2YXIgbz1uLnJlcGxhY2UoLyMvLCIiKS5zcGxpdCgiIik7aWYoNj09PW8ubGVuZ3RoKXJldHVybiBuO2lmKDM9PT1vLmxlbmd0aCl7Zm9yKHZhciBwPSIjIixkPTA7ZDxvLmxlbmd0aDtkKz0xKXArPW9bZF0rb1tkXTtyZXR1cm4gcH19YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoIjE0ZDkiKSxhKCJhYzFmIiksYSgiMDBiNCIpLGEoIjk5YWYiKSxhKCJmYjZhIiksYSgiZTI1ZSIpLGEoIjUzMTkiKSxhKCJkODFkIiksYSgiYTllMyIpLGEoImQ0MDEiKSxhKCJkM2I3IiksYSgiMjVmMCIpO3ZhciByPXtjb2xvckdyYWRpZW50OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToicmdiKDAsIDAsIDApIixuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToicmdiKDI1NSwgMjU1LCAyNTUpIixhPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxMCxyPWkodCwhMSksbz1yWzBdLHA9clsxXSxkPXJbMl0sZz1pKG4sITEpLG09Z1swXSx1PWdbMV0scz1nWzJdLGM9KG0tbykvYSxsPSh1LXApL2EsZj0ocy1kKS9hLGg9W10sYj0wO2I8YTtiKyspe3ZhciB5PWUoInJnYigiK01hdGgucm91bmQoYypiK28pKyIsIitNYXRoLnJvdW5kKGwqYitwKSsiLCIrTWF0aC5yb3VuZChmKmIrZCkrIikiKTtoLnB1c2goeSl9cmV0dXJuIGh9LGhleFRvUmdiOmkscmdiVG9IZXg6ZSxjb2xvclRvUmdiYTpmdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06LjM7dD1lKHQpO3ZhciBhPS9eIyhbMC05YS1mQS1mXXszfXxbMC05YS1mQS1mXXs2fSkkLyxpPXQudG9Mb3dlckNhc2UoKTtpZihpJiZhLnRlc3QoaSkpe2lmKDQ9PT1pLmxlbmd0aCl7Zm9yKHZhciByPSIjIixvPTE7bzw0O28rPTEpcis9aS5zbGljZShvLG8rMSkuY29uY2F0KGkuc2xpY2UobyxvKzEpKTtpPXJ9Zm9yKHZhciBwPVtdLGQ9MTtkPDc7ZCs9MilwLnB1c2gocGFyc2VJbnQoIjB4IitpLnNsaWNlKGQsZCsyKSkpO3JldHVybiJyZ2JhKCIrcC5qb2luKCIsIikrIiwiK24rIikifXJldHVybiBpfX07bi5kZWZhdWx0PXJ9LCI3ZWE3IjpmdW5jdGlvbih0LG4sYSl7dmFyIGksZT1hKCI5NTIzIikuZGVmYXVsdDt0LmV4cG9ydHM9e21lc3NhZ2U6KGk9e3BsYXRmb3JtTmFtZToiUkVUQUlMLVNIT1BQSU5HIixjdXJyZW5jeUFiYnJldmlhdGlvbjoiUEhQIixjdXJyZW5jeVN5bWJvbDoi4oKxIixXaXRoZHJhd1R5cGU6IkdjYXNoIixob21lOiLpppbpobUiLGxpc3Q6IuWIl+ihqCIsdGFrZToi5Lu75YqhIixteToi5oiR5b6XIixSZWNoYXJnZToi5YWF5YC8IixXaXRoZHJhdzoi5o+Q546wIixDb25maXJtOiLnoa7orqQiLENhbmNlbDoi5Y+W5raIIixJbnZpdGF0aW9uQ29kZToi6YKA6K+356CBIixBY2NvdW50UmVjaGFyZ2U6Iui0puaIt+WFheWAvCIsUmVjb3JkOiLorrDlvZUiLGNvcHlTdWNjZXNzOiLlpI3liLbmiJDlip8iLGNvcHlFcnJvcjoi5aSN5Yi25aSx6LSlIixBZGRUbzoi5re75YqgIixwbGVhc2VDb25maXJtOiLor7fnoa7orqQiLENvbmZpcm10aGVDaGFuZ2VzOiLnoa7orqTkv67mlLkiLGVtcHR5OiLmmoLml6DmlbDmja4iLEFubm91bmNlbWVudDoi5YWs5ZGKIixjb3B5OiLlpI3liLYiLGFjY291bnRMb2dpbjoi6LSm5Y+355m76ZmGIixTaWduVXBOb3c6Iueri+WNs+azqOWGjCIsYWNjb3VudDoi6K+36L6T5YWl6LSm5Y+3IixwYXNzd29yZDoi6K+36L6T5YWl5a+G56CBIixDb25maXJtUGFzc3dvcmQ6Iuivt+WGjeasoei+k+WFpeWvhueggeehruiupCIsSW52aXRhdGlvbkNvZGVFcnJvcjoi6K+36L6T5YWl6YKA6K+356CBIixGb3JnZXRDdXN0b21lclNlcnZpY2U6IuW/mOiusOWvhueggSzogZTns7vlrqLmnI0iLFF1ZXN0aW9uQ3VzdG9tZXJTZXJ2aWNlOiLpgYfliLDpl67popgs6IGU57O75a6i5pyNIixsb2dpbkltbWVkaWF0ZWx5OiLnq4vljbPnmbvlvZUiLGxvZ2dpbmdJbjoi5q2j5Zyo55m76ZmGIixyZWdpc3Rlcjoi56uL5Y2z5rOo5YaMIixyZWdpc3RlcmluZzoi5q2j5Zyo5rOo5YaMIixyZWdpc3RyYXRpb25TdWNjZXNzOiLms6jlhozmiJDlip8iLGxvZ2luU3VjY2Vzczoi55m75b2V5oiQ5YqfIixiYWxhbmNlV2l0aGRyYXdhbDoi5L2Z6aKd5o+Q546wIixhYm91dFVzOiLlhbPkuo7miJHku6wiLG9ubGluZVNlcnZpY2U6IuWcqOe6v+WuouacjSIsQ2xpY2tUb1NpZ25Jbjoi54K55Ye7562+5YiwIixzaWduSW5SZXdhcmQ6IuetvuWIsOmihuWPlueOsOmHkeWlluWKsSIsc2lnbkluTm93OiLnrb7liLAiLENvbW1pc3Npb25EaXNwbGF5OiLkvaPph5HlsZXnpLoiLGNlbGVicmF0ZToi5bqG56WdIixVc2VyOiLnlKjmiLciLHRvRWFybjoi6LWa5Y+WIixQYXJ0bmVyOiLlkIjkvZzkvJnkvLQiLENvbXBsZXRlT3JkZXI6IuWujOaIkOiuouWNlSIsUmVtYWluaW5nVGFza3M6IuWJqeS9meS7u+WKoSIsbWVtYmVyc2hpcExldmVsOiLkvJrlkZjnrYnnuqciLENvbW1pc3Npb25TdGF0aXN0aWNzOiLkvaPph5Hnu5/orqEiLFN0YXJ0V29ya2luZzoi5byA5aeL5bel5L2cIixDYXRlZ29yaWVzOiLllYblk4HliIbnsbsiLG1hdGNoaW5nOiLmraPlnKjkuLrmgqjljLnphY3orqLljZUiLGdldGFuT3JkZXI6IuaBreWWnOaCqO+8geiOt+W+l+aWsOeahOW3peS9nO+8jOivt+mAieaLqeS4gOS4quWVhuWTgeWPiuaXtuaPkOS6pOiuouWNle+8jOWujOaIkOW3peS9nCIsb3JkZXJUaW1lOiLorqLljZXml7bpl7QiLHVuaXRQcmljZToi5Y2V5Lu3IixydWxlOiLlhbEiLE51bWJlcm9mUHJvZHVjdHM6IuS7tuWVhuWTgSIsY29tbWlzc2lvbkFtb3VudDoi5L2j6YeR6YeR6aKdIixUb3RhbE1lcmNoYW5kaXNlOiLllYblk4HlkIjorqEiLGNvcHlMaW5rOiLlpI3liLbpk77mjqUiLFN1Ym1pdE9yZGVyOiLmj5DkuqTorqLljZUiLHN1Ym1pdHRpbmc6IuaPkOS6pOS4rSIsSGludDoi5o+Q56S6Iix0b0FkZDoi5Y675re75YqgIixhZGRBZGRyZXNzRXJyb3I6Iuaaguacqua3u+WKoOaUtui0p+WcsOWdgCIsQ29uZmlybVNlcnZpY2U6IueCueWHu+ehruiupO+8jOeri+WNs+a3u+WKoO+8jOWmguaenOmBh+WIsOmXrumimO+8jOivt+WSqOivouWuouacjeOAgiIsYmFsYW5jZUVycm9yOiLmgqjnmoTotKbmiLfkvZnpop3kuI3otrPvvIzov5jlt64iLGJhbGFuY2VTZXJ2aWNlOiLngrnlh7vnoa7orqTvvIznq4vljbPlhYXlgLzvvIzlpoLmnpzpgYfliLDpl67popjvvIzor7flkqjor6LlrqLmnI3jgIIiLGFsbE9yZGVyczoi5YWo6YOoIixjb21wbGV0ZWRPcmRlcjoi5bey5a6M5oiQIixJbmNvbXBsZXRlT3JkZXJzOiLmnKrlrozmiJAiLENhbmNlbE9yZGVyczoi6K6i5Y2V5Y+W5raIIixNZW1iZXJCYWxhbmNlOiLkvJrlkZjkvZnpop0iLG15U2VydmljZToi5oiR55qE5pyN5YqhIixGdW5kaW5nRGV0YWlsczoi6LWE6YeR5piO57uGIixpbnZpdGVGcmllbmRzOiLpgoDor7flpb3lj4siLGFkZEFkZHJlc3M6Iua3u+WKoOWcsOWdgCIsTWFudWFsQ3VzdG9tZXJTZXJ2aWNlOiLkurrlt6XlrqLmnI0iLG15VG9vbHM6IuaIkeeahOW3peWFtyIsbG9naW5QYXNzd29yZDoi55m76ZmG5a+G56CBIixwYXltZW50UGFzc3dvcmQ6IuaUr+S7mOWvhueggSIsUmVjaGFyZ2VSZWNvcmQ6IuWFheWAvOiusOW9lSIsV2l0aGRyYXdhbHNSZWNvcmQ6IuaPkOeOsOiusOW9lSIsbXlUZWFtOiLmiJHnmoTlm6LpmJ8iLEJpbmRCYW5rQ2FyZDoi57uR5a6a6ZO26KGM5Y2hIixjbGVhckNhY2hlOiLmuIXpmaTnvJPlrZgiLENvbmZpcm1DbGVhcm15VGVhbToi56Gu6K6k5riF5qWaIixDb25maXJtQ2xlYXJSZW1pbmRlcjoi5riF55CG57yT5a2Y5bCG6YCA5Ye655m75b2VIixDb25maXJtQ2xlYXJpbmdJbmZvcm1hdGlvbjoi5peg6ZyA5riF55CG6K+354K55Ye754Gw6Imy5Yy65Z+f5YWz6Zet56qX5Y+jIixzaWduT3V0OiLmjqjlh7rnmbvlvZUiLGNhcmRIb2xkZXI6IuWNoeWMhSIsQ29weUxpbms6IuWkjeWItumTvuaOpSIsbWFpbGJveDoi5oiR55qE5L+h566xIixBY2NvdW50QmFsYW5jZToi6LSm5oi35L2Z6aKdIixSZWNoYXJnZUFtb3VudDoi5YWF5YC86YeR6aKdIixSZWNoYXJnZUFtb3VudEVycm9yOiLor7fovpPlhaXlhYXlgLzph5Hpop0iLHBheVR5ZToi5pSv5LuY5pa55byPIixwYXlUeWVFcnJvcjoi6K+36YCJ5oup5pSv5LuY5pa55byPIixBY2NvdW50c1JlY2VpdmFibGU6IuaUtuasvui0puaIt+S/oeaBryIscmVjaGFyZ2VNc2dUaXQ6IuWFheWAvOmhu+efpSIscmVjaGFyZ2VNc2c6Iui9rOi0puWQjuivt+Wwhui9rOi0puWbvuWPkemAgee7meWvvOW4iCIsQ2FyZGhvbGRlcjoi5oyB5Y2h5Lq6IixDYXJkaG9sZGVyRXJyb3I6Iuivt+i+k+WFpeaMgeWNoeS6uuWnk+WQjSIsQmFua0NhcmROdW1iZXI6IumTtuihjOWNoeWPtyIsQmFua0NhcmROdW1iZXJFcnJvcjoi6K+36L6T5YWl6ZO26KGM5Y2h5Y+3IixCYW5rTmFtZToi6ZO26KGM5ZCN56ewIixCYW5rTmFtZUVycm9yOiLor7fovpPlhaXpk7booYzlkI3np7AiLFNoaXBwaW5nQWRkcmVzczoi5pS26LSn5Zyw5Z2AIixjb25zaWduZWU6IuaUtui0p+S6uiIsY29uc2lnbmVlRXJyb3I6Iuivt+i+k+WFpeaUtui0p+S6uuWnk+WQjSIsY29uc2lnbmVlVGVsOiLmiYvmnLrlj7fnoIEiLGNvbnNpZ25lZVRlbEVycm9yOiLor7fovpPlhaXmlLbotKfkurrmiYvmnLrlj7fnoIEiLGFyZWE6IuWbveWutuWcsOWMuiIsYXJlYUVycm9yOiLor7fovpPlhaXlm73lrrbmiJblnLDljLoiLGRldGFpbGVkQWRkcmVzczoi6K+m57uG5Zyw5Z2AIixkZXRhaWxlZEFkZHJlc3NFcnJvcjoi6K+36L6T5YWl6K+m57uG5Zyw5Z2AIixNb2RpZnlQYXltZW50UGFzc3dvcmQ6IuS/ruaUueaUr+S7mOWvhueggSIscGF5bWVudFBhc3N3b3JkRXJyb3I6Iuivt+i+k+WFpeaUr+S7mOWvhueggSIscGF5bWVudFBhc3N3b3JkMjoi56Gu6K6k5a+G56CBIixwYXltZW50UGFzc3dvcmQyRXJyb3I6Iuivt+WGjeasoei+k+WFpeaUr+S7mOWvhueggSIsbG9naW5QYXNzd29yZEVycm9yOiLor7fovpPlhaXnmbvpmYblr4bnoIHpqozor4EiLENoYW5nZUxvZ2luUGFzc3dvcmQ6IuS/ruaUueeZu+W9leWvhueggSIsb2xkUGFzc3dvcmQ6IuWOn+WvhueggSIsb2xkUGFzc3dvcmRFcnJvcjoi6K+36L6T5YWl5Y6f55m76ZmG5a+G56CBIixuZXdQYXNzd29yZDoi5paw5a+G56CBIixuZXdQYXNzd29yZEVycm9yOiLor7fovpPlhaXmlrDnmoTnmbvpmYblr4bnoIEiLG5ld1Bhc3N3b3JkMjoi56Gu6K6k5a+G56CBIixuZXdQYXNzd29yZEVycm9yMjoi6K+35YaN5qyh6L6T5YWl5paw55qE55m76ZmG5a+G56CBIixDaGFuZ2VQYXNzd29yZFJlbWluZGVyOiLlr4bnoIHlsIbkv67mlLnkuLoiLE1vZGlmeVBhc3N3b3JkUmVtaW5kZXJDb250ZW50OiLngrnlh7vnoa7orqTvvIznq4vljbPkv67mlLnvvIzlpoLmnpzpgYfliLDpl67popjvvIzor7flkqjor6LlrqLmnI3jgIIiLFJlY2hhcmdlRGV0YWlsczoi5YWF5YC85piO57uGIixvbmxpbmVSZWNoYXJnZToi57q/5LiK5YWF5YC8IixNYW51YWxSZWNoYXJnZToi5Lq65bel5YWF5YC8IixBY2NvdW50V2l0aGRyYXdhbDoi6LSm5oi35o+Q546wIixXaXRoZHJhd2FibGVCYWxhbmNlOiLlj6/mj5DnjrDkvZnpop0iLFBheW1lbnRNZXRob2Q6IuWIsOi0puaWueW8jyIsV2l0aGRyYXdhbEFtb3VudDoi5o+Q546w6YeR6aKdIixXaXRoZHJhd2FsQW1vdW50RXJyb3I6Iuivt+i+k+WFpeaPkOeOsOmHkeminSIsUGF5bWVudE1ldGhvZEVycm9yOiLor7fpgInmi6nliLDotKbmlrnlvI8iLE9QZW5QYXltZW50TWV0aG9kOiLngrnlh7vpgInmi6nliLDotKbmlrnlvI8iLFdpdGhkcmF3YWxEZXRhaWxzOiLmj5DnjrDmmI7nu4YiLHVuZGVyUmV2aWV3OiLlrqHmoLjkuK0iLGV4YW1pbmF0aW9uUGFzc2VkOiLlrqHmoLjpgJrov4ciLEF1ZGl0UmVqZWN0ZWQ6IuWuoeaguOaLkue7nSIsYmFua1RyYW5zZmVyOiLpk7booYzmraPlnKjmiZPmrL4iLFJlbWFyazoi5aSH5rOoIixnb1RvU2V0dGluZ3M6IuWOu+iuvue9riIsUGF5bWVudFBhc3N3b3JkUmVtaW5kZXI6Iuaaguacquiuvue9ruaUr+S7mOWvhueggSIsUGF5bWVudFBhc3N3b3JkUmVtaW5kZXJNc2c6IueCueWHu+ehruiupO+8jOeri+WNs+iuvue9ruaUr+S7mOWvhuegge+8jOWmguaenOmBh+WIsOmXrumimO+8jOivt+WSqOivouWuouacjeOAgiIsVG9CaW5kOiLljrvnu5HlrpoiLEJpbmRpbmdCYW5rQ2FyZFJlbWluZGVyOiLmmoLmnKrnu5Hlrprpk7booYzljaEiLEJpbmRpbmdCYW5rQ2FyZFJlbWluZGVyTXNnOiLngrnlh7vnoa7orqTvvIznq4vljbPljrvnu5Hlrpror6Xmj5DnjrDmlrnlvI/vvIzlpoLmnpzpgYfliLDpl67popjvvIzor7flkqjor6LlrqLmnI3jgIIiLFN1Y2Nlc3NmdWxXaXRoZHJhd2FsOiLmj5DnjrDmiJDlip8iLFN1Y2Nlc3NmdWxXaXRoZHJhd2FsTXNnOiLmj5DnjrDnlLPor7flt7Lmj5DkuqToh7PlkI7lj7DlrqHmoLjvvIznoa7orqTml6Dor6/lkI7lsIbmj5DkuqToh7Ppk7booYzmiZPmrL7vvIzor6bmg4Xor7flkqjor6LlrqLmnI3jgIIiLEJpbmRpbmdHY2FzaFJlbWluZGVyOiLmmoLmnKrnu5HlrppHY2FzaCIsQmluZGluZ01heWFSZW1pbmRlcjoi5pqC5pyq57uR5a6aTWF5YSIsb3Blbkxpbms6IuaJk+W8gOmTvuaOpSIsY29weUxpbmtBZGQ6IuWkjeWItumTvuaOpeWOu1RlbGVncmFt5re75Yqg5a6i5pyNIixPcGVudGhlTGlua3RvQWRkOiLnm7TmjqXmiZPlvIDpk77mjqXmt7vliqDlpb3lj4siLEJhbGFuY2VCZWZvcmVBY2NvdW50Q2hhbmdlOiLotKblj5jliY3kvZnpop0iLEJhbGFuY2VBZnRlckFjY291bnRDaGFuZ2U6Iui0puWPmOWQjuS9meminSIsVG9wVXA6IuWFheWAvOWFpei0piIsbWFudWFsRGVkdWN0aW9uOiLkurrlt6XmiaPpmaQiLEJvbnVzR2l2ZWF3YXk6IuW9qemHkei1oOmAgSIsQ29tbWlzc2lvbmludG9BY2NvdW50OiLkvaPph5HlhaXotKYiLENhc2hXaXRoZHJhd2FsOiLmj5DnjrDmlK/lh7oiLFdpdGhkcmF3YWxSZWplY3RlZDoi5o+Q546w6amz5ZueIixQcm9tb3Rpb25SZWJhdGU6IuaOqOW5v+i/lOS9oyIsc2lnbmlucmV3YXJkOiLnrb7liLDlpZblirEiLFRlYW1TaXplOiLlm6LpmJ/kurrmlbAiLEN1bXVsYXRpdmVSZXdhcmRzOiLntK/orqHlpZblirEiLFRvZGF5VGVhbVJlY2hhcmdlOiLku4rml6Xlm6LpmJ/lhYXlgLwiLFRlYW1SZWNoYXJnZVRoaXNXZWVrOiLmnKzlkajlm6LpmJ/lhYXlgLwiLFRlYW1SZWNoYXJnZVRoaXNNb250aDoi5pys5pyI5Zui6Zif5YWF5YC8IixUZWFtV2l0aGRyYXdhbFRvZGF5OiLku4rml6Xlm6LpmJ/mj5DnjrAiLFRlYW1XaXRoZHJhd2FsVGhpc1dlZWs6IuacrOWRqOWboumYn+aPkOeOsCIsVGVhbVdpdGhkcmF3YWxUaGlzTW9udGg6IuacrOaciOWboumYn+aPkOeOsCIscGVvcGxlOiLkuroiLHRlYW1MaXN0OiLlm6LpmJ/liJfooagiLGdldENvbW1pc3Npb246IuiOt+W+l+S9o+mHkSIsY2hlY2tpbjoi562+5YiwIixTaWduaW5Ub2dldENhc2g6IuetvuWIsOmihuWPlueOsOmHkeWlluWKsSIsY29udGludW91c0NoZWNraW46IuaCqOW3sui/nue7reetvuWIsCJ9LGUoaSwiZ2V0Q29tbWlzc2lvbiIsIuiOt+W+l+S9o+mHkSIpLGUoaSwiRGF5Iiwi5aSpIiksZShpLCJTaWduZWRpblRvZGF5Iiwi5LuK5pel5bey562+5YiwIiksZShpLCJjb25zZWN1dGl2ZVJld2FyZHMiLCLov57nu63nrb7liLDlpZblirEiKSxlKGksIkNoZWNraW5SZWNvcmQiLCLnrb7liLDorrDlvZUiKSxlKGksIkdjYXNoIiwiR2Nhc2giKSxlKGksIk1heWEiLCJNYXlhIiksZShpLCJCYW5rQ2FyZCIsIumTtuihjOWNoSIpLGUoaSwiQWRkT3JNb2RpZnkiLCLmt7vliqDmiJbkv67mlLkiKSxlKGksImFkZEdjYXNoIiwi57uR5a6aR2Nhc2giKSxlKGksIkdjYXNoQWNjb3VudCIsIkdjYXNo6LSm5Y+3IiksZShpLCJHY2FzaEFjY291bnRFcnJvciIsIuivt+i+k+WFpUdjYXNo6LSm5Y+3IiksZShpLCJHY2FzaE5hbWUiLCJHY2FzaOWnk+WQjSIpLGUoaSwiR2Nhc2hOYW1lRXJyb3IiLCLor7fovpPlhaVHY2FzaOWnk+WQjSIpLGUoaSwiYWRkTWF5YSIsIue7keWumk1heWEiKSxlKGksIk1heWFBY2NvdW50IiwiTWF5Yei0puWPtyIpLGUoaSwiTWF5YUFjY291bnRFcnJvciIsIuivt+i+k+WFpU1heWHotKblj7ciKSxlKGksIk1heWFOYW1lIiwiTWF5YeWnk+WQjSIpLGUoaSwiTWF5YU5hbWVFcnJvciIsIuivt+i+k+WFpU1heWHlp5PlkI0iKSxlKGksIlN0YXRpb25NZXNzYWdlIiwi56uZ5YaF5L+hIiksZShpLCJTdGF0aW9uTWVzc2FnZUFib3V0VXMiLCLlhbPkuo7miJHku6wiKSxlKGksIlN0YXRpb25NZXNzYWdlQW5ub3VuY2VtZW50Iiwi5bmz5Y+w5YWs5ZGKIiksZShpLCJTdGF0aW9uTWVzc2FnZUhlbHAiLCLluK7liqkiKSxlKGksIlVOUkVBRCIsIuacquivuyIpLGUoaSwiUkVBRCIsIuW3suivuyIpLGkpfX0sIjg3NGIiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoIjk5YWYiKTt2YXIgZT1pKGEoIjUzY2EiKSkscj1pKGEoIjNkZWEiKSk7dmFyIG89ZnVuY3Rpb24gdCgpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxhPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZihuPSgwLHIuZGVmYXVsdCkobiksIm9iamVjdCIhPT0oMCxlLmRlZmF1bHQpKG4pfHwib2JqZWN0IiE9PSgwLGUuZGVmYXVsdCkoYSkpcmV0dXJuITE7Zm9yKHZhciBpIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShpKSYmKGkgaW4gbj8ib2JqZWN0IiE9PSgwLGUuZGVmYXVsdCkobltpXSl8fCJvYmplY3QiIT09KDAsZS5kZWZhdWx0KShhW2ldKT9uW2ldPWFbaV06bltpXS5jb25jYXQmJmFbaV0uY29uY2F0P25baV09bltpXS5jb25jYXQoYVtpXSk6bltpXT10KG5baV0sYVtpXSk6bltpXT1hW2ldKTtyZXR1cm4gbn07bi5kZWZhdWx0PW99LDg4MjE6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGk9e3Y6IjEuOC4zIix2ZXJzaW9uOiIxLjguMyIsdHlwZTpbInByaW1hcnkiLCJzdWNjZXNzIiwiaW5mbyIsImVycm9yIiwid2FybmluZyJdfTtuLmRlZmF1bHQ9aX0sODg5MzpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgZT1pKGEoIjU1MzAiKSkscj17aHR0cDpmdW5jdGlvbih0KXt2YXIgbj10LnVybCxhPXQuZGF0YSxpPXQuY2FsbGJhY2sscj10Lm1ldGhvZCxvPXQuaGVhZGVyO3VuaS5yZXF1ZXN0KHt1cmw6Imh0dHBzOi8vcmV0YWlsLXNob3BwaW5nLnNob3AvYXBpIituLGRhdGE6YSxoZWFkZXI6KDAsZS5kZWZhdWx0KSh7dG9rZW46dW5pLmdldFN0b3JhZ2VTeW5jKCJ0b2tlbiIpLCJ0aGluay1sYW5nIjoiZW4tdXMifSxvKSxtZXRob2Q6cnx8IlBPU1QiLGRhdGFUeXBlOiJqc29uIixyZXNwb25zZVR5cGU6InRleHQiLHN1Y2Nlc3M6ZnVuY3Rpb24odCl7dmFyIG49dC5kYXRhO3JldHVybiBuJiY0MDE9PW4uY29kZT8odW5pLnNob3dNb2RhbCh7Y29udGVudDpuLm1zZyxjb25maXJtVGV4dDoiT0siLHNob3dDYW5jZWw6ITEsc3VjY2VzczpmdW5jdGlvbigpe3VuaS5yZUxhdW5jaCh7dXJsOiIvcGFnZXMvbG9naW4vbG9naW4ifSl9fSksITEpOihuJiZuLmNvZGUsImZ1bmN0aW9uIj09dHlwZW9mIGkmJmkobikpfSxmYWlsOmZ1bmN0aW9uKHQpe3VuaS5zaG93VG9hc3Qoe3RpdGxlOiJOZXR3b3JrIGVycm9yLCByZWZyZXNoIGFuZCB0cnkgYWdhaW4iLGljb246ImVycm9yIn0pfX0pfX07bi5kZWZhdWx0PXJ9LCI5MWI0IjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgaT17cHJpbWFyeToiIzI5NzlmZiIscHJpbWFyeURhcms6IiMyYjg1ZTQiLHByaW1hcnlEaXNhYmxlZDoiI2EwY2ZmZiIscHJpbWFyeUxpZ2h0OiIjZWNmNWZmIixiZ0NvbG9yOiIjZjNmNGY2IixpbmZvOiIjOTA5Mzk5IixpbmZvRGFyazoiIzgyODQ4YSIsaW5mb0Rpc2FibGVkOiIjYzhjOWNjIixpbmZvTGlnaHQ6IiNmNGY0ZjUiLHdhcm5pbmc6IiNmZjk5MDAiLHdhcm5pbmdEYXJrOiIjZjI5MTAwIix3YXJuaW5nRGlzYWJsZWQ6IiNmY2JkNzEiLHdhcm5pbmdMaWdodDoiI2ZkZjZlYyIsZXJyb3I6IiNmYTM1MzQiLGVycm9yRGFyazoiI2RkNjE2MSIsZXJyb3JEaXNhYmxlZDoiI2ZhYjZiNiIsZXJyb3JMaWdodDoiI2ZlZjBmMCIsc3VjY2VzczoiIzE5YmU2YiIsc3VjY2Vzc0Rhcms6IiMxOGI1NjYiLHN1Y2Nlc3NEaXNhYmxlZDoiIzcxZDVhMSIsc3VjY2Vzc0xpZ2h0OiIjZGJmMWUxIixtYWluQ29sb3I6IiMzMDMxMzMiLGNvbnRlbnRDb2xvcjoiIzYwNjI2NiIsdGlwc0NvbG9yOiIjOTA5Mzk5IixsaWdodENvbG9yOiIjYzBjNGNjIixib3JkZXJDb2xvcjoiI2U0ZTdlZCJ9O24uZGVmYXVsdD1pfSw5Mzk3OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImM5NzUiKSxhKCIxNGQ5IiksYSgiZDNiNyIpLGEoIjE1OWIiKTt2YXIgaT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sYT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ImJyYWNrZXRzIixpPW4/Ij8iOiIiLGU9W107LTE9PVsiaW5kaWNlcyIsImJyYWNrZXRzIiwicmVwZWF0IiwiY29tbWEiXS5pbmRleE9mKGEpJiYoYT0iYnJhY2tldHMiKTt2YXIgcj1mdW5jdGlvbihuKXt2YXIgaT10W25dO2lmKFsiIix2b2lkIDAsbnVsbF0uaW5kZXhPZihpKT49MClyZXR1cm4iY29udGludWUiO2lmKGkuY29uc3RydWN0b3I9PT1BcnJheSlzd2l0Y2goYSl7Y2FzZSJpbmRpY2VzIjpmb3IodmFyIHI9MDtyPGkubGVuZ3RoO3IrKyllLnB1c2gobisiWyIrcisiXT0iK2lbcl0pO2JyZWFrO2Nhc2UiYnJhY2tldHMiOmkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKG4rIltdPSIrdCl9KSk7YnJlYWs7Y2FzZSJyZXBlYXQiOmkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKG4rIj0iK3QpfSkpO2JyZWFrO2Nhc2UiY29tbWEiOnZhciBvPSIiO2kuZm9yRWFjaCgoZnVuY3Rpb24odCl7bys9KG8/IiwiOiIiKSt0fSkpLGUucHVzaChuKyI9IitvKTticmVhaztkZWZhdWx0OmkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKG4rIltdPSIrdCl9KSl9ZWxzZSBlLnB1c2gobisiPSIraSl9O2Zvcih2YXIgbyBpbiB0KXIobyk7cmV0dXJuIGUubGVuZ3RoP2krZS5qb2luKCImIik6IiJ9O24uZGVmYXVsdD1pfSw5NzI0OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7dmFyIGk9YSgiNGVhNCIpLmRlZmF1bHQ7YSgiZDNiNyIpLGEoIjE1OWIiKSxhKCIyNmU5IiksYSgiYWMxZiIpLGEoIjUzMTkiKTt2YXIgZT1pKGEoIjU1MzAiKSk7YSgiZTI2MCIpLGEoImU2Y2YiKSxhKCJjY2E2IiksYSgiYTc5ZCIpLGEoIjNiY2IiKSxhKCIwNmI5Iik7dmFyIHI9aShhKCJlMTQzIikpLG89aShhKCJjOGY5IikpLHA9aShhKCIxNGM1IikpLGQ9aShhKCJhOTI1IikpLGc9aShhKCJlY2JlIikpLG09aShhKCI3ZWE3IikpLHU9aShhKCI4ODkzIikpO3IuZGVmYXVsdC51c2UocC5kZWZhdWx0KSxyLmRlZmF1bHQuY29uZmlnLnByb2R1Y3Rpb25UaXA9ITEsci5kZWZhdWx0LnVzZShkLmRlZmF1bHQpO3ZhciBzPW5ldyBkLmRlZmF1bHQoe2xvY2FsZToiZW4iLG1lc3NhZ2VzOntlbjpnLmRlZmF1bHQsY246bS5kZWZhdWx0fX0pO3IuZGVmYXVsdC5wcm90b3R5cGUuanVtcD1mdW5jdGlvbih0KXt1bmkubmF2aWdhdGVUbyh7dXJsOnR9KX0sci5kZWZhdWx0LnByb3RvdHlwZS5qdW1wdGFiQmFyPWZ1bmN0aW9uKHQpe3VuaS5zd2l0Y2hUYWIoe3VybDp0fSl9LHIuZGVmYXVsdC5wcm90b3R5cGUuZ2V0YmFjaz1mdW5jdGlvbigpe3VuaS5uYXZpZ2F0ZUJhY2soe2RlbHRhOjF9KX0sci5kZWZhdWx0LnByb3RvdHlwZS5jb252ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBuPSh0KyIiKS5zcGxpdCgiLiIpLGE9blswXS5zcGxpdCgiIiksaT1uWzFdfHwiIixlPSIiO3JldHVybiBhLnJldmVyc2UoKS5mb3JFYWNoKChmdW5jdGlvbih0LG4pe2U9MCE9PW4mJm4lMz09PTA/dCsiLCIrZTp0K2V9KSksZSsoaT8iLiIraToiIil9LHIuZGVmYXVsdC5wcm90b3R5cGUuaW50ZXJjZXB0PWZ1bmN0aW9uKHQpe3ZhciBuPXQucmVwbGFjZSgvPFwvP1tePl0qPi9nLCIiKSxhPW4ucmVwbGFjZSgvW3xdKlxuLywiIiksaT0oYS5yZXBsYWNlKC8mbnBzcDsvZ2ksIiIpLG4uc3Vic3RyKDAsMzApKyIuLi4iKTtyZXR1cm4gaX0sci5kZWZhdWx0LnByb3RvdHlwZS5faTE4bj1zLHIuZGVmYXVsdC5wcm90b3R5cGUuJGh0dHA9dS5kZWZhdWx0LG8uZGVmYXVsdC5tcFR5cGU9ImFwcCI7dmFyIGM9bmV3IHIuZGVmYXVsdCgoMCxlLmRlZmF1bHQpKHtpMThuOnMsaHR0cDp1LmRlZmF1bHR9LG8uZGVmYXVsdCkpO2MuJG1vdW50KCl9LCI5N2VlIjpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDtuLmRlZmF1bHQ9e3RvYXN0OjEwMDkwLG5vTmV0d29yazoxMDA4MCxwb3B1cDoxMDA3NSxtYXNrOjEwMDcwLG5hdmJhcjo5ODAsdG9wVGlwczo5NzUsc3RpY2t5Ojk3MCxpbmRleExpc3RTdGlja3k6OTY1fX0sIjk5ZWMiOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7dmFyIGk9YSgiYzhkYSIpLGU9YS5uKGkpO2UuYX0sYTIyYTpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJhdXRvIixuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToicnB4IjtyZXR1cm4gdD1TdHJpbmcodCksZS5kZWZhdWx0Lm51bWJlcih0KT8iIi5jb25jYXQodCkuY29uY2F0KG4pOnR9LGEoIjk5YWYiKTt2YXIgZT1pKGEoImVkMjgiKSl9LGFlMDQ6ZnVuY3Rpb24odCxuLGEpe3ZhciBpPWEoIjI0ZmIiKTtuPWkoITEpLG4ucHVzaChbdC5pLCdAY2hhcnNldCAiVVRGLTgiO1xyXG4vKipcclxuICog6L+Z6YeM5pivdW5pLWFwcOWGhee9rueahOW4uOeUqOagt+W8j+WPmOmHj1xyXG4gKlxyXG4gKiB1bmktYXBwIOWumOaWueaJqeWxleaPkuS7tuWPiuaPkuS7tuW4guWcuu+8iGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY27vvInkuIrlvojlpJrkuInmlrnmj5Lku7blnYfkvb/nlKjkuobov5nkupvmoLflvI/lj5jph49cclxuICog5aaC5p6c5L2g5piv5o+S5Lu25byA5Y+R6ICF77yM5bu66K6u5L2g5L2/55Soc2Nzc+mihOWkhOeQhu+8jOW5tuWcqOaPkuS7tuS7o+eggeS4reebtOaOpeS9v+eUqOi/meS6m+WPmOmHj++8iOaXoOmcgCBpbXBvcnQg6L+Z5Liq5paH5Lu277yJ77yM5pa55L6/55So5oi36YCa6L+H5pCt56ev5pyo55qE5pa55byP5byA5Y+R5pW05L2T6aOO5qC85LiA6Ie055qEQXBwXHJcbiAqXHJcbiAqL1xyXG4vKipcclxuICog5aaC5p6c5L2g5pivQXBw5byA5Y+R6ICF77yI5o+S5Lu25L2/55So6ICF77yJ77yM5L2g5Y+v5Lul6YCa6L+H5L+u5pS56L+Z5Lqb5Y+Y6YeP5p2l5a6a5Yi26Ieq5bex55qE5o+S5Lu25Li76aKY77yM5a6e546w6Ieq5a6a5LmJ5Li76aKY5Yqf6IO9XHJcbiAqXHJcbiAqIOWmguaenOS9oOeahOmhueebruWQjOagt+S9v+eUqOS6hnNjc3PpooTlpITnkIbvvIzkvaDkuZ/lj6/ku6Xnm7TmjqXlnKjkvaDnmoQgc2NzcyDku6PnoIHkuK3kvb/nlKjlpoLkuIvlj5jph4/vvIzlkIzml7bml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tlxyXG4gKi9cclxuLyog6aKc6Imy5Y+Y6YePICovXHJcbi8q5YWo5bGA5Li76aKY6Imy6LCDKi9cclxuLyog6KGM5Li655u45YWz6aKc6ImyICovXHJcbi8qIOaWh+Wtl+WfuuacrOminOiJsiAqL1xyXG4vKiDog4zmma/popzoibIgKi9cclxuLyog6L655qGG6aKc6ImyICovXHJcbi8qIOWwuuWvuOWPmOmHjyAqL1xyXG4vKiDmloflrZflsLrlr7ggKi9cclxuLyog5Zu+54mH5bC65a+4ICovXHJcbi8qIEJvcmRlciBSYWRpdXMgKi9cclxuLyog5rC05bmz6Ze06LedICovXHJcbi8qIOWeguebtOmXtOi3nSAqL1xyXG4vKiDpgI/mmI7luqYgKi9cclxuLyog5paH56ug5Zy65pmv55u45YWzICovLnUtcmVsYXRpdmUsXHJcbi51LXJlbGF7cG9zaXRpb246cmVsYXRpdmV9LnUtYWJzb2x1dGUsXHJcbi51LWFic297cG9zaXRpb246YWJzb2x1dGV9dW5pLWltYWdle2Rpc3BsYXk6aW5saW5lLWJsb2NrfXVuaS12aWV3LFxyXG51bmktdGV4dHtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnUtZm9udC14c3tmb250LXNpemU6JT8yMj8lfS51LWZvbnQtc217Zm9udC1zaXplOiU/MjY/JX0udS1mb250LW1ke2ZvbnQtc2l6ZTolPzI4PyV9LnUtZm9udC1sZ3tmb250LXNpemU6JT8zMD8lfS51LWZvbnQteGx7Zm9udC1zaXplOiU/MzQ/JX0udS1mbGV4e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyfS51LWZsZXgtd3JhcHtmbGV4LXdyYXA6d3JhcH0udS1mbGV4LW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwfS51LWNvbC1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS51LWNvbC10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0udS1jb2wtYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfS51LXJvdy1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0udS1yb3ctbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0udS1yb3ctcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS51LXJvdy1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS51LXJvdy1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0udS10ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS51LXRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS51LXRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0udS1mbGV4LWNvbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS51LWZsZXgtMHtmbGV4OjB9LnUtZmxleC0xe2ZsZXg6MX0udS1mbGV4LTJ7ZmxleDoyfS51LWZsZXgtM3tmbGV4OjN9LnUtZmxleC00e2ZsZXg6NH0udS1mbGV4LTV7ZmxleDo1fS51LWZsZXgtNntmbGV4OjZ9LnUtZmxleC03e2ZsZXg6N30udS1mbGV4LTh7ZmxleDo4fS51LWZsZXgtOXtmbGV4Ojl9LnUtZmxleC0xMHtmbGV4OjEwfS51LWZsZXgtMTF7ZmxleDoxMX0udS1mbGV4LTEye2ZsZXg6MTJ9LnUtZm9udC05e2ZvbnQtc2l6ZTo5cHh9LnUtZm9udC0xMHtmb250LXNpemU6MTBweH0udS1mb250LTExe2ZvbnQtc2l6ZToxMXB4fS51LWZvbnQtMTJ7Zm9udC1zaXplOjEycHh9LnUtZm9udC0xM3tmb250LXNpemU6MTNweH0udS1mb250LTE0e2ZvbnQtc2l6ZToxNHB4fS51LWZvbnQtMTV7Zm9udC1zaXplOjE1cHh9LnUtZm9udC0xNntmb250LXNpemU6MTZweH0udS1mb250LTE3e2ZvbnQtc2l6ZToxN3B4fS51LWZvbnQtMTh7Zm9udC1zaXplOjE4cHh9LnUtZm9udC0xOXtmb250LXNpemU6MTlweH0udS1mb250LTIwe2ZvbnQtc2l6ZTolPzIwPyV9LnUtZm9udC0yMXtmb250LXNpemU6JT8yMT8lfS51LWZvbnQtMjJ7Zm9udC1zaXplOiU/MjI/JX0udS1mb250LTIze2ZvbnQtc2l6ZTolPzIzPyV9LnUtZm9udC0yNHtmb250LXNpemU6JT8yND8lfS51LWZvbnQtMjV7Zm9udC1zaXplOiU/MjU/JX0udS1mb250LTI2e2ZvbnQtc2l6ZTolPzI2PyV9LnUtZm9udC0yN3tmb250LXNpemU6JT8yNz8lfS51LWZvbnQtMjh7Zm9udC1zaXplOiU/Mjg/JX0udS1mb250LTI5e2ZvbnQtc2l6ZTolPzI5PyV9LnUtZm9udC0zMHtmb250LXNpemU6JT8zMD8lfS51LWZvbnQtMzF7Zm9udC1zaXplOiU/MzE/JX0udS1mb250LTMye2ZvbnQtc2l6ZTolPzMyPyV9LnUtZm9udC0zM3tmb250LXNpemU6JT8zMz8lfS51LWZvbnQtMzR7Zm9udC1zaXplOiU/MzQ/JX0udS1mb250LTM1e2ZvbnQtc2l6ZTolPzM1PyV9LnUtZm9udC0zNntmb250LXNpemU6JT8zNj8lfS51LWZvbnQtMzd7Zm9udC1zaXplOiU/Mzc/JX0udS1mb250LTM4e2ZvbnQtc2l6ZTolPzM4PyV9LnUtZm9udC0zOXtmb250LXNpemU6JT8zOT8lfS51LWZvbnQtNDB7Zm9udC1zaXplOiU/NDA/JX0udS1tYXJnaW4tMCwgLnUtbS0we21hcmdpbjolPzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0wLCAudS1wLTB7cGFkZGluZzolPzA/JSFpbXBvcnRhbnR9LnUtbS1sLTB7bWFyZ2luLWxlZnQ6JT8wPyUhaW1wb3J0YW50fS51LXAtbC0we3BhZGRpbmctbGVmdDolPzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMHttYXJnaW4tbGVmdDolPzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTB7cGFkZGluZy1sZWZ0OiU/MD8lIWltcG9ydGFudH0udS1tLXQtMHttYXJnaW4tdG9wOiU/MD8lIWltcG9ydGFudH0udS1wLXQtMHtwYWRkaW5nLXRvcDolPzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0we21hcmdpbi10b3A6JT8wPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTB7cGFkZGluZy10b3A6JT8wPyUhaW1wb3J0YW50fS51LW0tci0we21hcmdpbi1yaWdodDolPzA/JSFpbXBvcnRhbnR9LnUtcC1yLTB7cGFkZGluZy1yaWdodDolPzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTB7bWFyZ2luLXJpZ2h0OiU/MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTB7cGFkZGluZy1yaWdodDolPzA/JSFpbXBvcnRhbnR9LnUtbS1iLTB7bWFyZ2luLWJvdHRvbTolPzA/JSFpbXBvcnRhbnR9LnUtcC1iLTB7cGFkZGluZy1ib3R0b206JT8wPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMHttYXJnaW4tYm90dG9tOiU/MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0we3BhZGRpbmctYm90dG9tOiU/MD8lIWltcG9ydGFudH0udS1tYXJnaW4tMiwgLnUtbS0ye21hcmdpbjolPzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0yLCAudS1wLTJ7cGFkZGluZzolPzI/JSFpbXBvcnRhbnR9LnUtbS1sLTJ7bWFyZ2luLWxlZnQ6JT8yPyUhaW1wb3J0YW50fS51LXAtbC0ye3BhZGRpbmctbGVmdDolPzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMnttYXJnaW4tbGVmdDolPzI/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTJ7cGFkZGluZy1sZWZ0OiU/Mj8lIWltcG9ydGFudH0udS1tLXQtMnttYXJnaW4tdG9wOiU/Mj8lIWltcG9ydGFudH0udS1wLXQtMntwYWRkaW5nLXRvcDolPzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0ye21hcmdpbi10b3A6JT8yPyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTJ7cGFkZGluZy10b3A6JT8yPyUhaW1wb3J0YW50fS51LW0tci0ye21hcmdpbi1yaWdodDolPzI/JSFpbXBvcnRhbnR9LnUtcC1yLTJ7cGFkZGluZy1yaWdodDolPzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTJ7bWFyZ2luLXJpZ2h0OiU/Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTJ7cGFkZGluZy1yaWdodDolPzI/JSFpbXBvcnRhbnR9LnUtbS1iLTJ7bWFyZ2luLWJvdHRvbTolPzI/JSFpbXBvcnRhbnR9LnUtcC1iLTJ7cGFkZGluZy1ib3R0b206JT8yPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMnttYXJnaW4tYm90dG9tOiU/Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0ye3BhZGRpbmctYm90dG9tOiU/Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tNCwgLnUtbS00e21hcmdpbjolPzQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy00LCAudS1wLTR7cGFkZGluZzolPzQ/JSFpbXBvcnRhbnR9LnUtbS1sLTR7bWFyZ2luLWxlZnQ6JT80PyUhaW1wb3J0YW50fS51LXAtbC00e3BhZGRpbmctbGVmdDolPzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNHttYXJnaW4tbGVmdDolPzQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTR7cGFkZGluZy1sZWZ0OiU/ND8lIWltcG9ydGFudH0udS1tLXQtNHttYXJnaW4tdG9wOiU/ND8lIWltcG9ydGFudH0udS1wLXQtNHtwYWRkaW5nLXRvcDolPzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC00e21hcmdpbi10b3A6JT80PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTR7cGFkZGluZy10b3A6JT80PyUhaW1wb3J0YW50fS51LW0tci00e21hcmdpbi1yaWdodDolPzQ/JSFpbXBvcnRhbnR9LnUtcC1yLTR7cGFkZGluZy1yaWdodDolPzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTR7bWFyZ2luLXJpZ2h0OiU/ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTR7cGFkZGluZy1yaWdodDolPzQ/JSFpbXBvcnRhbnR9LnUtbS1iLTR7bWFyZ2luLWJvdHRvbTolPzQ/JSFpbXBvcnRhbnR9LnUtcC1iLTR7cGFkZGluZy1ib3R0b206JT80PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNHttYXJnaW4tYm90dG9tOiU/ND8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS00e3BhZGRpbmctYm90dG9tOiU/ND8lIWltcG9ydGFudH0udS1tYXJnaW4tNSwgLnUtbS01e21hcmdpbjolPzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy01LCAudS1wLTV7cGFkZGluZzolPzU/JSFpbXBvcnRhbnR9LnUtbS1sLTV7bWFyZ2luLWxlZnQ6JT81PyUhaW1wb3J0YW50fS51LXAtbC01e3BhZGRpbmctbGVmdDolPzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNXttYXJnaW4tbGVmdDolPzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTV7cGFkZGluZy1sZWZ0OiU/NT8lIWltcG9ydGFudH0udS1tLXQtNXttYXJnaW4tdG9wOiU/NT8lIWltcG9ydGFudH0udS1wLXQtNXtwYWRkaW5nLXRvcDolPzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC01e21hcmdpbi10b3A6JT81PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTV7cGFkZGluZy10b3A6JT81PyUhaW1wb3J0YW50fS51LW0tci01e21hcmdpbi1yaWdodDolPzU/JSFpbXBvcnRhbnR9LnUtcC1yLTV7cGFkZGluZy1yaWdodDolPzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTV7bWFyZ2luLXJpZ2h0OiU/NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTV7cGFkZGluZy1yaWdodDolPzU/JSFpbXBvcnRhbnR9LnUtbS1iLTV7bWFyZ2luLWJvdHRvbTolPzU/JSFpbXBvcnRhbnR9LnUtcC1iLTV7cGFkZGluZy1ib3R0b206JT81PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNXttYXJnaW4tYm90dG9tOiU/NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS01e3BhZGRpbmctYm90dG9tOiU/NT8lIWltcG9ydGFudH0udS1tYXJnaW4tNiwgLnUtbS02e21hcmdpbjolPzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy02LCAudS1wLTZ7cGFkZGluZzolPzY/JSFpbXBvcnRhbnR9LnUtbS1sLTZ7bWFyZ2luLWxlZnQ6JT82PyUhaW1wb3J0YW50fS51LXAtbC02e3BhZGRpbmctbGVmdDolPzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNnttYXJnaW4tbGVmdDolPzY/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTZ7cGFkZGluZy1sZWZ0OiU/Nj8lIWltcG9ydGFudH0udS1tLXQtNnttYXJnaW4tdG9wOiU/Nj8lIWltcG9ydGFudH0udS1wLXQtNntwYWRkaW5nLXRvcDolPzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC02e21hcmdpbi10b3A6JT82PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTZ7cGFkZGluZy10b3A6JT82PyUhaW1wb3J0YW50fS51LW0tci02e21hcmdpbi1yaWdodDolPzY/JSFpbXBvcnRhbnR9LnUtcC1yLTZ7cGFkZGluZy1yaWdodDolPzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTZ7bWFyZ2luLXJpZ2h0OiU/Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTZ7cGFkZGluZy1yaWdodDolPzY/JSFpbXBvcnRhbnR9LnUtbS1iLTZ7bWFyZ2luLWJvdHRvbTolPzY/JSFpbXBvcnRhbnR9LnUtcC1iLTZ7cGFkZGluZy1ib3R0b206JT82PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNnttYXJnaW4tYm90dG9tOiU/Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS02e3BhZGRpbmctYm90dG9tOiU/Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tOCwgLnUtbS04e21hcmdpbjolPzg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy04LCAudS1wLTh7cGFkZGluZzolPzg/JSFpbXBvcnRhbnR9LnUtbS1sLTh7bWFyZ2luLWxlZnQ6JT84PyUhaW1wb3J0YW50fS51LXAtbC04e3BhZGRpbmctbGVmdDolPzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtOHttYXJnaW4tbGVmdDolPzg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTh7cGFkZGluZy1sZWZ0OiU/OD8lIWltcG9ydGFudH0udS1tLXQtOHttYXJnaW4tdG9wOiU/OD8lIWltcG9ydGFudH0udS1wLXQtOHtwYWRkaW5nLXRvcDolPzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC04e21hcmdpbi10b3A6JT84PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTh7cGFkZGluZy10b3A6JT84PyUhaW1wb3J0YW50fS51LW0tci04e21hcmdpbi1yaWdodDolPzg/JSFpbXBvcnRhbnR9LnUtcC1yLTh7cGFkZGluZy1yaWdodDolPzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTh7bWFyZ2luLXJpZ2h0OiU/OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTh7cGFkZGluZy1yaWdodDolPzg/JSFpbXBvcnRhbnR9LnUtbS1iLTh7bWFyZ2luLWJvdHRvbTolPzg/JSFpbXBvcnRhbnR9LnUtcC1iLTh7cGFkZGluZy1ib3R0b206JT84PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tOHttYXJnaW4tYm90dG9tOiU/OD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS04e3BhZGRpbmctYm90dG9tOiU/OD8lIWltcG9ydGFudH0udS1tYXJnaW4tMTAsIC51LW0tMTB7bWFyZ2luOiU/MTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0xMCwgLnUtcC0xMHtwYWRkaW5nOiU/MTA/JSFpbXBvcnRhbnR9LnUtbS1sLTEwe21hcmdpbi1sZWZ0OiU/MTA/JSFpbXBvcnRhbnR9LnUtcC1sLTEwe3BhZGRpbmctbGVmdDolPzEwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTEwe21hcmdpbi1sZWZ0OiU/MTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTEwe3BhZGRpbmctbGVmdDolPzEwPyUhaW1wb3J0YW50fS51LW0tdC0xMHttYXJnaW4tdG9wOiU/MTA/JSFpbXBvcnRhbnR9LnUtcC10LTEwe3BhZGRpbmctdG9wOiU/MTA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0xMHttYXJnaW4tdG9wOiU/MTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMTB7cGFkZGluZy10b3A6JT8xMD8lIWltcG9ydGFudH0udS1tLXItMTB7bWFyZ2luLXJpZ2h0OiU/MTA/JSFpbXBvcnRhbnR9LnUtcC1yLTEwe3BhZGRpbmctcmlnaHQ6JT8xMD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMTB7bWFyZ2luLXJpZ2h0OiU/MTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0xMHtwYWRkaW5nLXJpZ2h0OiU/MTA/JSFpbXBvcnRhbnR9LnUtbS1iLTEwe21hcmdpbi1ib3R0b206JT8xMD8lIWltcG9ydGFudH0udS1wLWItMTB7cGFkZGluZy1ib3R0b206JT8xMD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTEwe21hcmdpbi1ib3R0b206JT8xMD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0xMHtwYWRkaW5nLWJvdHRvbTolPzEwPyUhaW1wb3J0YW50fS51LW1hcmdpbi0xMiwgLnUtbS0xMnttYXJnaW46JT8xMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTEyLCAudS1wLTEye3BhZGRpbmc6JT8xMj8lIWltcG9ydGFudH0udS1tLWwtMTJ7bWFyZ2luLWxlZnQ6JT8xMj8lIWltcG9ydGFudH0udS1wLWwtMTJ7cGFkZGluZy1sZWZ0OiU/MTI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMTJ7bWFyZ2luLWxlZnQ6JT8xMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMTJ7cGFkZGluZy1sZWZ0OiU/MTI/JSFpbXBvcnRhbnR9LnUtbS10LTEye21hcmdpbi10b3A6JT8xMj8lIWltcG9ydGFudH0udS1wLXQtMTJ7cGFkZGluZy10b3A6JT8xMj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTEye21hcmdpbi10b3A6JT8xMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0xMntwYWRkaW5nLXRvcDolPzEyPyUhaW1wb3J0YW50fS51LW0tci0xMnttYXJnaW4tcmlnaHQ6JT8xMj8lIWltcG9ydGFudH0udS1wLXItMTJ7cGFkZGluZy1yaWdodDolPzEyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0xMnttYXJnaW4tcmlnaHQ6JT8xMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTEye3BhZGRpbmctcmlnaHQ6JT8xMj8lIWltcG9ydGFudH0udS1tLWItMTJ7bWFyZ2luLWJvdHRvbTolPzEyPyUhaW1wb3J0YW50fS51LXAtYi0xMntwYWRkaW5nLWJvdHRvbTolPzEyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMTJ7bWFyZ2luLWJvdHRvbTolPzEyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTEye3BhZGRpbmctYm90dG9tOiU/MTI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTE0LCAudS1tLTE0e21hcmdpbjolPzE0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMTQsIC51LXAtMTR7cGFkZGluZzolPzE0PyUhaW1wb3J0YW50fS51LW0tbC0xNHttYXJnaW4tbGVmdDolPzE0PyUhaW1wb3J0YW50fS51LXAtbC0xNHtwYWRkaW5nLWxlZnQ6JT8xND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0xNHttYXJnaW4tbGVmdDolPzE0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0xNHtwYWRkaW5nLWxlZnQ6JT8xND8lIWltcG9ydGFudH0udS1tLXQtMTR7bWFyZ2luLXRvcDolPzE0PyUhaW1wb3J0YW50fS51LXAtdC0xNHtwYWRkaW5nLXRvcDolPzE0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMTR7bWFyZ2luLXRvcDolPzE0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTE0e3BhZGRpbmctdG9wOiU/MTQ/JSFpbXBvcnRhbnR9LnUtbS1yLTE0e21hcmdpbi1yaWdodDolPzE0PyUhaW1wb3J0YW50fS51LXAtci0xNHtwYWRkaW5nLXJpZ2h0OiU/MTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTE0e21hcmdpbi1yaWdodDolPzE0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMTR7cGFkZGluZy1yaWdodDolPzE0PyUhaW1wb3J0YW50fS51LW0tYi0xNHttYXJnaW4tYm90dG9tOiU/MTQ/JSFpbXBvcnRhbnR9LnUtcC1iLTE0e3BhZGRpbmctYm90dG9tOiU/MTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0xNHttYXJnaW4tYm90dG9tOiU/MTQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMTR7cGFkZGluZy1ib3R0b206JT8xND8lIWltcG9ydGFudH0udS1tYXJnaW4tMTUsIC51LW0tMTV7bWFyZ2luOiU/MTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0xNSwgLnUtcC0xNXtwYWRkaW5nOiU/MTU/JSFpbXBvcnRhbnR9LnUtbS1sLTE1e21hcmdpbi1sZWZ0OiU/MTU/JSFpbXBvcnRhbnR9LnUtcC1sLTE1e3BhZGRpbmctbGVmdDolPzE1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTE1e21hcmdpbi1sZWZ0OiU/MTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTE1e3BhZGRpbmctbGVmdDolPzE1PyUhaW1wb3J0YW50fS51LW0tdC0xNXttYXJnaW4tdG9wOiU/MTU/JSFpbXBvcnRhbnR9LnUtcC10LTE1e3BhZGRpbmctdG9wOiU/MTU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0xNXttYXJnaW4tdG9wOiU/MTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMTV7cGFkZGluZy10b3A6JT8xNT8lIWltcG9ydGFudH0udS1tLXItMTV7bWFyZ2luLXJpZ2h0OiU/MTU/JSFpbXBvcnRhbnR9LnUtcC1yLTE1e3BhZGRpbmctcmlnaHQ6JT8xNT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMTV7bWFyZ2luLXJpZ2h0OiU/MTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0xNXtwYWRkaW5nLXJpZ2h0OiU/MTU/JSFpbXBvcnRhbnR9LnUtbS1iLTE1e21hcmdpbi1ib3R0b206JT8xNT8lIWltcG9ydGFudH0udS1wLWItMTV7cGFkZGluZy1ib3R0b206JT8xNT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTE1e21hcmdpbi1ib3R0b206JT8xNT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0xNXtwYWRkaW5nLWJvdHRvbTolPzE1PyUhaW1wb3J0YW50fS51LW1hcmdpbi0xNiwgLnUtbS0xNnttYXJnaW46JT8xNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTE2LCAudS1wLTE2e3BhZGRpbmc6JT8xNj8lIWltcG9ydGFudH0udS1tLWwtMTZ7bWFyZ2luLWxlZnQ6JT8xNj8lIWltcG9ydGFudH0udS1wLWwtMTZ7cGFkZGluZy1sZWZ0OiU/MTY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMTZ7bWFyZ2luLWxlZnQ6JT8xNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMTZ7cGFkZGluZy1sZWZ0OiU/MTY/JSFpbXBvcnRhbnR9LnUtbS10LTE2e21hcmdpbi10b3A6JT8xNj8lIWltcG9ydGFudH0udS1wLXQtMTZ7cGFkZGluZy10b3A6JT8xNj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTE2e21hcmdpbi10b3A6JT8xNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0xNntwYWRkaW5nLXRvcDolPzE2PyUhaW1wb3J0YW50fS51LW0tci0xNnttYXJnaW4tcmlnaHQ6JT8xNj8lIWltcG9ydGFudH0udS1wLXItMTZ7cGFkZGluZy1yaWdodDolPzE2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0xNnttYXJnaW4tcmlnaHQ6JT8xNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTE2e3BhZGRpbmctcmlnaHQ6JT8xNj8lIWltcG9ydGFudH0udS1tLWItMTZ7bWFyZ2luLWJvdHRvbTolPzE2PyUhaW1wb3J0YW50fS51LXAtYi0xNntwYWRkaW5nLWJvdHRvbTolPzE2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMTZ7bWFyZ2luLWJvdHRvbTolPzE2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTE2e3BhZGRpbmctYm90dG9tOiU/MTY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTE4LCAudS1tLTE4e21hcmdpbjolPzE4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMTgsIC51LXAtMTh7cGFkZGluZzolPzE4PyUhaW1wb3J0YW50fS51LW0tbC0xOHttYXJnaW4tbGVmdDolPzE4PyUhaW1wb3J0YW50fS51LXAtbC0xOHtwYWRkaW5nLWxlZnQ6JT8xOD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0xOHttYXJnaW4tbGVmdDolPzE4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0xOHtwYWRkaW5nLWxlZnQ6JT8xOD8lIWltcG9ydGFudH0udS1tLXQtMTh7bWFyZ2luLXRvcDolPzE4PyUhaW1wb3J0YW50fS51LXAtdC0xOHtwYWRkaW5nLXRvcDolPzE4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMTh7bWFyZ2luLXRvcDolPzE4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTE4e3BhZGRpbmctdG9wOiU/MTg/JSFpbXBvcnRhbnR9LnUtbS1yLTE4e21hcmdpbi1yaWdodDolPzE4PyUhaW1wb3J0YW50fS51LXAtci0xOHtwYWRkaW5nLXJpZ2h0OiU/MTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTE4e21hcmdpbi1yaWdodDolPzE4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMTh7cGFkZGluZy1yaWdodDolPzE4PyUhaW1wb3J0YW50fS51LW0tYi0xOHttYXJnaW4tYm90dG9tOiU/MTg/JSFpbXBvcnRhbnR9LnUtcC1iLTE4e3BhZGRpbmctYm90dG9tOiU/MTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0xOHttYXJnaW4tYm90dG9tOiU/MTg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMTh7cGFkZGluZy1ib3R0b206JT8xOD8lIWltcG9ydGFudH0udS1tYXJnaW4tMjAsIC51LW0tMjB7bWFyZ2luOiU/MjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0yMCwgLnUtcC0yMHtwYWRkaW5nOiU/MjA/JSFpbXBvcnRhbnR9LnUtbS1sLTIwe21hcmdpbi1sZWZ0OiU/MjA/JSFpbXBvcnRhbnR9LnUtcC1sLTIwe3BhZGRpbmctbGVmdDolPzIwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTIwe21hcmdpbi1sZWZ0OiU/MjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTIwe3BhZGRpbmctbGVmdDolPzIwPyUhaW1wb3J0YW50fS51LW0tdC0yMHttYXJnaW4tdG9wOiU/MjA/JSFpbXBvcnRhbnR9LnUtcC10LTIwe3BhZGRpbmctdG9wOiU/MjA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0yMHttYXJnaW4tdG9wOiU/MjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMjB7cGFkZGluZy10b3A6JT8yMD8lIWltcG9ydGFudH0udS1tLXItMjB7bWFyZ2luLXJpZ2h0OiU/MjA/JSFpbXBvcnRhbnR9LnUtcC1yLTIwe3BhZGRpbmctcmlnaHQ6JT8yMD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMjB7bWFyZ2luLXJpZ2h0OiU/MjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0yMHtwYWRkaW5nLXJpZ2h0OiU/MjA/JSFpbXBvcnRhbnR9LnUtbS1iLTIwe21hcmdpbi1ib3R0b206JT8yMD8lIWltcG9ydGFudH0udS1wLWItMjB7cGFkZGluZy1ib3R0b206JT8yMD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTIwe21hcmdpbi1ib3R0b206JT8yMD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0yMHtwYWRkaW5nLWJvdHRvbTolPzIwPyUhaW1wb3J0YW50fS51LW1hcmdpbi0yMiwgLnUtbS0yMnttYXJnaW46JT8yMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTIyLCAudS1wLTIye3BhZGRpbmc6JT8yMj8lIWltcG9ydGFudH0udS1tLWwtMjJ7bWFyZ2luLWxlZnQ6JT8yMj8lIWltcG9ydGFudH0udS1wLWwtMjJ7cGFkZGluZy1sZWZ0OiU/MjI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMjJ7bWFyZ2luLWxlZnQ6JT8yMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMjJ7cGFkZGluZy1sZWZ0OiU/MjI/JSFpbXBvcnRhbnR9LnUtbS10LTIye21hcmdpbi10b3A6JT8yMj8lIWltcG9ydGFudH0udS1wLXQtMjJ7cGFkZGluZy10b3A6JT8yMj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTIye21hcmdpbi10b3A6JT8yMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0yMntwYWRkaW5nLXRvcDolPzIyPyUhaW1wb3J0YW50fS51LW0tci0yMnttYXJnaW4tcmlnaHQ6JT8yMj8lIWltcG9ydGFudH0udS1wLXItMjJ7cGFkZGluZy1yaWdodDolPzIyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0yMnttYXJnaW4tcmlnaHQ6JT8yMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTIye3BhZGRpbmctcmlnaHQ6JT8yMj8lIWltcG9ydGFudH0udS1tLWItMjJ7bWFyZ2luLWJvdHRvbTolPzIyPyUhaW1wb3J0YW50fS51LXAtYi0yMntwYWRkaW5nLWJvdHRvbTolPzIyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMjJ7bWFyZ2luLWJvdHRvbTolPzIyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTIye3BhZGRpbmctYm90dG9tOiU/MjI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTI0LCAudS1tLTI0e21hcmdpbjolPzI0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMjQsIC51LXAtMjR7cGFkZGluZzolPzI0PyUhaW1wb3J0YW50fS51LW0tbC0yNHttYXJnaW4tbGVmdDolPzI0PyUhaW1wb3J0YW50fS51LXAtbC0yNHtwYWRkaW5nLWxlZnQ6JT8yND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0yNHttYXJnaW4tbGVmdDolPzI0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0yNHtwYWRkaW5nLWxlZnQ6JT8yND8lIWltcG9ydGFudH0udS1tLXQtMjR7bWFyZ2luLXRvcDolPzI0PyUhaW1wb3J0YW50fS51LXAtdC0yNHtwYWRkaW5nLXRvcDolPzI0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMjR7bWFyZ2luLXRvcDolPzI0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTI0e3BhZGRpbmctdG9wOiU/MjQ/JSFpbXBvcnRhbnR9LnUtbS1yLTI0e21hcmdpbi1yaWdodDolPzI0PyUhaW1wb3J0YW50fS51LXAtci0yNHtwYWRkaW5nLXJpZ2h0OiU/MjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTI0e21hcmdpbi1yaWdodDolPzI0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMjR7cGFkZGluZy1yaWdodDolPzI0PyUhaW1wb3J0YW50fS51LW0tYi0yNHttYXJnaW4tYm90dG9tOiU/MjQ/JSFpbXBvcnRhbnR9LnUtcC1iLTI0e3BhZGRpbmctYm90dG9tOiU/MjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0yNHttYXJnaW4tYm90dG9tOiU/MjQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMjR7cGFkZGluZy1ib3R0b206JT8yND8lIWltcG9ydGFudH0udS1tYXJnaW4tMjUsIC51LW0tMjV7bWFyZ2luOiU/MjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0yNSwgLnUtcC0yNXtwYWRkaW5nOiU/MjU/JSFpbXBvcnRhbnR9LnUtbS1sLTI1e21hcmdpbi1sZWZ0OiU/MjU/JSFpbXBvcnRhbnR9LnUtcC1sLTI1e3BhZGRpbmctbGVmdDolPzI1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTI1e21hcmdpbi1sZWZ0OiU/MjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTI1e3BhZGRpbmctbGVmdDolPzI1PyUhaW1wb3J0YW50fS51LW0tdC0yNXttYXJnaW4tdG9wOiU/MjU/JSFpbXBvcnRhbnR9LnUtcC10LTI1e3BhZGRpbmctdG9wOiU/MjU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0yNXttYXJnaW4tdG9wOiU/MjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMjV7cGFkZGluZy10b3A6JT8yNT8lIWltcG9ydGFudH0udS1tLXItMjV7bWFyZ2luLXJpZ2h0OiU/MjU/JSFpbXBvcnRhbnR9LnUtcC1yLTI1e3BhZGRpbmctcmlnaHQ6JT8yNT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMjV7bWFyZ2luLXJpZ2h0OiU/MjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0yNXtwYWRkaW5nLXJpZ2h0OiU/MjU/JSFpbXBvcnRhbnR9LnUtbS1iLTI1e21hcmdpbi1ib3R0b206JT8yNT8lIWltcG9ydGFudH0udS1wLWItMjV7cGFkZGluZy1ib3R0b206JT8yNT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTI1e21hcmdpbi1ib3R0b206JT8yNT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0yNXtwYWRkaW5nLWJvdHRvbTolPzI1PyUhaW1wb3J0YW50fS51LW1hcmdpbi0yNiwgLnUtbS0yNnttYXJnaW46JT8yNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTI2LCAudS1wLTI2e3BhZGRpbmc6JT8yNj8lIWltcG9ydGFudH0udS1tLWwtMjZ7bWFyZ2luLWxlZnQ6JT8yNj8lIWltcG9ydGFudH0udS1wLWwtMjZ7cGFkZGluZy1sZWZ0OiU/MjY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMjZ7bWFyZ2luLWxlZnQ6JT8yNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMjZ7cGFkZGluZy1sZWZ0OiU/MjY/JSFpbXBvcnRhbnR9LnUtbS10LTI2e21hcmdpbi10b3A6JT8yNj8lIWltcG9ydGFudH0udS1wLXQtMjZ7cGFkZGluZy10b3A6JT8yNj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTI2e21hcmdpbi10b3A6JT8yNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0yNntwYWRkaW5nLXRvcDolPzI2PyUhaW1wb3J0YW50fS51LW0tci0yNnttYXJnaW4tcmlnaHQ6JT8yNj8lIWltcG9ydGFudH0udS1wLXItMjZ7cGFkZGluZy1yaWdodDolPzI2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0yNnttYXJnaW4tcmlnaHQ6JT8yNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTI2e3BhZGRpbmctcmlnaHQ6JT8yNj8lIWltcG9ydGFudH0udS1tLWItMjZ7bWFyZ2luLWJvdHRvbTolPzI2PyUhaW1wb3J0YW50fS51LXAtYi0yNntwYWRkaW5nLWJvdHRvbTolPzI2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMjZ7bWFyZ2luLWJvdHRvbTolPzI2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTI2e3BhZGRpbmctYm90dG9tOiU/MjY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTI4LCAudS1tLTI4e21hcmdpbjolPzI4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMjgsIC51LXAtMjh7cGFkZGluZzolPzI4PyUhaW1wb3J0YW50fS51LW0tbC0yOHttYXJnaW4tbGVmdDolPzI4PyUhaW1wb3J0YW50fS51LXAtbC0yOHtwYWRkaW5nLWxlZnQ6JT8yOD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0yOHttYXJnaW4tbGVmdDolPzI4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0yOHtwYWRkaW5nLWxlZnQ6JT8yOD8lIWltcG9ydGFudH0udS1tLXQtMjh7bWFyZ2luLXRvcDolPzI4PyUhaW1wb3J0YW50fS51LXAtdC0yOHtwYWRkaW5nLXRvcDolPzI4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMjh7bWFyZ2luLXRvcDolPzI4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTI4e3BhZGRpbmctdG9wOiU/Mjg/JSFpbXBvcnRhbnR9LnUtbS1yLTI4e21hcmdpbi1yaWdodDolPzI4PyUhaW1wb3J0YW50fS51LXAtci0yOHtwYWRkaW5nLXJpZ2h0OiU/Mjg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTI4e21hcmdpbi1yaWdodDolPzI4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMjh7cGFkZGluZy1yaWdodDolPzI4PyUhaW1wb3J0YW50fS51LW0tYi0yOHttYXJnaW4tYm90dG9tOiU/Mjg/JSFpbXBvcnRhbnR9LnUtcC1iLTI4e3BhZGRpbmctYm90dG9tOiU/Mjg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0yOHttYXJnaW4tYm90dG9tOiU/Mjg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMjh7cGFkZGluZy1ib3R0b206JT8yOD8lIWltcG9ydGFudH0udS1tYXJnaW4tMzAsIC51LW0tMzB7bWFyZ2luOiU/MzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0zMCwgLnUtcC0zMHtwYWRkaW5nOiU/MzA/JSFpbXBvcnRhbnR9LnUtbS1sLTMwe21hcmdpbi1sZWZ0OiU/MzA/JSFpbXBvcnRhbnR9LnUtcC1sLTMwe3BhZGRpbmctbGVmdDolPzMwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTMwe21hcmdpbi1sZWZ0OiU/MzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTMwe3BhZGRpbmctbGVmdDolPzMwPyUhaW1wb3J0YW50fS51LW0tdC0zMHttYXJnaW4tdG9wOiU/MzA/JSFpbXBvcnRhbnR9LnUtcC10LTMwe3BhZGRpbmctdG9wOiU/MzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0zMHttYXJnaW4tdG9wOiU/MzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMzB7cGFkZGluZy10b3A6JT8zMD8lIWltcG9ydGFudH0udS1tLXItMzB7bWFyZ2luLXJpZ2h0OiU/MzA/JSFpbXBvcnRhbnR9LnUtcC1yLTMwe3BhZGRpbmctcmlnaHQ6JT8zMD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMzB7bWFyZ2luLXJpZ2h0OiU/MzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0zMHtwYWRkaW5nLXJpZ2h0OiU/MzA/JSFpbXBvcnRhbnR9LnUtbS1iLTMwe21hcmdpbi1ib3R0b206JT8zMD8lIWltcG9ydGFudH0udS1wLWItMzB7cGFkZGluZy1ib3R0b206JT8zMD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTMwe21hcmdpbi1ib3R0b206JT8zMD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0zMHtwYWRkaW5nLWJvdHRvbTolPzMwPyUhaW1wb3J0YW50fS51LW1hcmdpbi0zMiwgLnUtbS0zMnttYXJnaW46JT8zMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTMyLCAudS1wLTMye3BhZGRpbmc6JT8zMj8lIWltcG9ydGFudH0udS1tLWwtMzJ7bWFyZ2luLWxlZnQ6JT8zMj8lIWltcG9ydGFudH0udS1wLWwtMzJ7cGFkZGluZy1sZWZ0OiU/MzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMzJ7bWFyZ2luLWxlZnQ6JT8zMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMzJ7cGFkZGluZy1sZWZ0OiU/MzI/JSFpbXBvcnRhbnR9LnUtbS10LTMye21hcmdpbi10b3A6JT8zMj8lIWltcG9ydGFudH0udS1wLXQtMzJ7cGFkZGluZy10b3A6JT8zMj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTMye21hcmdpbi10b3A6JT8zMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0zMntwYWRkaW5nLXRvcDolPzMyPyUhaW1wb3J0YW50fS51LW0tci0zMnttYXJnaW4tcmlnaHQ6JT8zMj8lIWltcG9ydGFudH0udS1wLXItMzJ7cGFkZGluZy1yaWdodDolPzMyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0zMnttYXJnaW4tcmlnaHQ6JT8zMj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTMye3BhZGRpbmctcmlnaHQ6JT8zMj8lIWltcG9ydGFudH0udS1tLWItMzJ7bWFyZ2luLWJvdHRvbTolPzMyPyUhaW1wb3J0YW50fS51LXAtYi0zMntwYWRkaW5nLWJvdHRvbTolPzMyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMzJ7bWFyZ2luLWJvdHRvbTolPzMyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTMye3BhZGRpbmctYm90dG9tOiU/MzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTM0LCAudS1tLTM0e21hcmdpbjolPzM0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMzQsIC51LXAtMzR7cGFkZGluZzolPzM0PyUhaW1wb3J0YW50fS51LW0tbC0zNHttYXJnaW4tbGVmdDolPzM0PyUhaW1wb3J0YW50fS51LXAtbC0zNHtwYWRkaW5nLWxlZnQ6JT8zND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0zNHttYXJnaW4tbGVmdDolPzM0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0zNHtwYWRkaW5nLWxlZnQ6JT8zND8lIWltcG9ydGFudH0udS1tLXQtMzR7bWFyZ2luLXRvcDolPzM0PyUhaW1wb3J0YW50fS51LXAtdC0zNHtwYWRkaW5nLXRvcDolPzM0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMzR7bWFyZ2luLXRvcDolPzM0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTM0e3BhZGRpbmctdG9wOiU/MzQ/JSFpbXBvcnRhbnR9LnUtbS1yLTM0e21hcmdpbi1yaWdodDolPzM0PyUhaW1wb3J0YW50fS51LXAtci0zNHtwYWRkaW5nLXJpZ2h0OiU/MzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTM0e21hcmdpbi1yaWdodDolPzM0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMzR7cGFkZGluZy1yaWdodDolPzM0PyUhaW1wb3J0YW50fS51LW0tYi0zNHttYXJnaW4tYm90dG9tOiU/MzQ/JSFpbXBvcnRhbnR9LnUtcC1iLTM0e3BhZGRpbmctYm90dG9tOiU/MzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0zNHttYXJnaW4tYm90dG9tOiU/MzQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMzR7cGFkZGluZy1ib3R0b206JT8zND8lIWltcG9ydGFudH0udS1tYXJnaW4tMzUsIC51LW0tMzV7bWFyZ2luOiU/MzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy0zNSwgLnUtcC0zNXtwYWRkaW5nOiU/MzU/JSFpbXBvcnRhbnR9LnUtbS1sLTM1e21hcmdpbi1sZWZ0OiU/MzU/JSFpbXBvcnRhbnR9LnUtcC1sLTM1e3BhZGRpbmctbGVmdDolPzM1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTM1e21hcmdpbi1sZWZ0OiU/MzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTM1e3BhZGRpbmctbGVmdDolPzM1PyUhaW1wb3J0YW50fS51LW0tdC0zNXttYXJnaW4tdG9wOiU/MzU/JSFpbXBvcnRhbnR9LnUtcC10LTM1e3BhZGRpbmctdG9wOiU/MzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC0zNXttYXJnaW4tdG9wOiU/MzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtMzV7cGFkZGluZy10b3A6JT8zNT8lIWltcG9ydGFudH0udS1tLXItMzV7bWFyZ2luLXJpZ2h0OiU/MzU/JSFpbXBvcnRhbnR9LnUtcC1yLTM1e3BhZGRpbmctcmlnaHQ6JT8zNT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtMzV7bWFyZ2luLXJpZ2h0OiU/MzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC0zNXtwYWRkaW5nLXJpZ2h0OiU/MzU/JSFpbXBvcnRhbnR9LnUtbS1iLTM1e21hcmdpbi1ib3R0b206JT8zNT8lIWltcG9ydGFudH0udS1wLWItMzV7cGFkZGluZy1ib3R0b206JT8zNT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTM1e21hcmdpbi1ib3R0b206JT8zNT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS0zNXtwYWRkaW5nLWJvdHRvbTolPzM1PyUhaW1wb3J0YW50fS51LW1hcmdpbi0zNiwgLnUtbS0zNnttYXJnaW46JT8zNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTM2LCAudS1wLTM2e3BhZGRpbmc6JT8zNj8lIWltcG9ydGFudH0udS1tLWwtMzZ7bWFyZ2luLWxlZnQ6JT8zNj8lIWltcG9ydGFudH0udS1wLWwtMzZ7cGFkZGluZy1sZWZ0OiU/MzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtMzZ7bWFyZ2luLWxlZnQ6JT8zNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtMzZ7cGFkZGluZy1sZWZ0OiU/MzY/JSFpbXBvcnRhbnR9LnUtbS10LTM2e21hcmdpbi10b3A6JT8zNj8lIWltcG9ydGFudH0udS1wLXQtMzZ7cGFkZGluZy10b3A6JT8zNj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTM2e21hcmdpbi10b3A6JT8zNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC0zNntwYWRkaW5nLXRvcDolPzM2PyUhaW1wb3J0YW50fS51LW0tci0zNnttYXJnaW4tcmlnaHQ6JT8zNj8lIWltcG9ydGFudH0udS1wLXItMzZ7cGFkZGluZy1yaWdodDolPzM2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC0zNnttYXJnaW4tcmlnaHQ6JT8zNj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTM2e3BhZGRpbmctcmlnaHQ6JT8zNj8lIWltcG9ydGFudH0udS1tLWItMzZ7bWFyZ2luLWJvdHRvbTolPzM2PyUhaW1wb3J0YW50fS51LXAtYi0zNntwYWRkaW5nLWJvdHRvbTolPzM2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tMzZ7bWFyZ2luLWJvdHRvbTolPzM2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTM2e3BhZGRpbmctYm90dG9tOiU/MzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTM4LCAudS1tLTM4e21hcmdpbjolPzM4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctMzgsIC51LXAtMzh7cGFkZGluZzolPzM4PyUhaW1wb3J0YW50fS51LW0tbC0zOHttYXJnaW4tbGVmdDolPzM4PyUhaW1wb3J0YW50fS51LXAtbC0zOHtwYWRkaW5nLWxlZnQ6JT8zOD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC0zOHttYXJnaW4tbGVmdDolPzM4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC0zOHtwYWRkaW5nLWxlZnQ6JT8zOD8lIWltcG9ydGFudH0udS1tLXQtMzh7bWFyZ2luLXRvcDolPzM4PyUhaW1wb3J0YW50fS51LXAtdC0zOHtwYWRkaW5nLXRvcDolPzM4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtMzh7bWFyZ2luLXRvcDolPzM4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTM4e3BhZGRpbmctdG9wOiU/Mzg/JSFpbXBvcnRhbnR9LnUtbS1yLTM4e21hcmdpbi1yaWdodDolPzM4PyUhaW1wb3J0YW50fS51LXAtci0zOHtwYWRkaW5nLXJpZ2h0OiU/Mzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTM4e21hcmdpbi1yaWdodDolPzM4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtMzh7cGFkZGluZy1yaWdodDolPzM4PyUhaW1wb3J0YW50fS51LW0tYi0zOHttYXJnaW4tYm90dG9tOiU/Mzg/JSFpbXBvcnRhbnR9LnUtcC1iLTM4e3BhZGRpbmctYm90dG9tOiU/Mzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS0zOHttYXJnaW4tYm90dG9tOiU/Mzg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tMzh7cGFkZGluZy1ib3R0b206JT8zOD8lIWltcG9ydGFudH0udS1tYXJnaW4tNDAsIC51LW0tNDB7bWFyZ2luOiU/NDA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy00MCwgLnUtcC00MHtwYWRkaW5nOiU/NDA/JSFpbXBvcnRhbnR9LnUtbS1sLTQwe21hcmdpbi1sZWZ0OiU/NDA/JSFpbXBvcnRhbnR9LnUtcC1sLTQwe3BhZGRpbmctbGVmdDolPzQwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTQwe21hcmdpbi1sZWZ0OiU/NDA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTQwe3BhZGRpbmctbGVmdDolPzQwPyUhaW1wb3J0YW50fS51LW0tdC00MHttYXJnaW4tdG9wOiU/NDA/JSFpbXBvcnRhbnR9LnUtcC10LTQwe3BhZGRpbmctdG9wOiU/NDA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC00MHttYXJnaW4tdG9wOiU/NDA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNDB7cGFkZGluZy10b3A6JT80MD8lIWltcG9ydGFudH0udS1tLXItNDB7bWFyZ2luLXJpZ2h0OiU/NDA/JSFpbXBvcnRhbnR9LnUtcC1yLTQwe3BhZGRpbmctcmlnaHQ6JT80MD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNDB7bWFyZ2luLXJpZ2h0OiU/NDA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC00MHtwYWRkaW5nLXJpZ2h0OiU/NDA/JSFpbXBvcnRhbnR9LnUtbS1iLTQwe21hcmdpbi1ib3R0b206JT80MD8lIWltcG9ydGFudH0udS1wLWItNDB7cGFkZGluZy1ib3R0b206JT80MD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTQwe21hcmdpbi1ib3R0b206JT80MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS00MHtwYWRkaW5nLWJvdHRvbTolPzQwPyUhaW1wb3J0YW50fS51LW1hcmdpbi00MiwgLnUtbS00MnttYXJnaW46JT80Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTQyLCAudS1wLTQye3BhZGRpbmc6JT80Mj8lIWltcG9ydGFudH0udS1tLWwtNDJ7bWFyZ2luLWxlZnQ6JT80Mj8lIWltcG9ydGFudH0udS1wLWwtNDJ7cGFkZGluZy1sZWZ0OiU/NDI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNDJ7bWFyZ2luLWxlZnQ6JT80Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNDJ7cGFkZGluZy1sZWZ0OiU/NDI/JSFpbXBvcnRhbnR9LnUtbS10LTQye21hcmdpbi10b3A6JT80Mj8lIWltcG9ydGFudH0udS1wLXQtNDJ7cGFkZGluZy10b3A6JT80Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTQye21hcmdpbi10b3A6JT80Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC00MntwYWRkaW5nLXRvcDolPzQyPyUhaW1wb3J0YW50fS51LW0tci00MnttYXJnaW4tcmlnaHQ6JT80Mj8lIWltcG9ydGFudH0udS1wLXItNDJ7cGFkZGluZy1yaWdodDolPzQyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC00MnttYXJnaW4tcmlnaHQ6JT80Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTQye3BhZGRpbmctcmlnaHQ6JT80Mj8lIWltcG9ydGFudH0udS1tLWItNDJ7bWFyZ2luLWJvdHRvbTolPzQyPyUhaW1wb3J0YW50fS51LXAtYi00MntwYWRkaW5nLWJvdHRvbTolPzQyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNDJ7bWFyZ2luLWJvdHRvbTolPzQyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTQye3BhZGRpbmctYm90dG9tOiU/NDI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTQ0LCAudS1tLTQ0e21hcmdpbjolPzQ0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNDQsIC51LXAtNDR7cGFkZGluZzolPzQ0PyUhaW1wb3J0YW50fS51LW0tbC00NHttYXJnaW4tbGVmdDolPzQ0PyUhaW1wb3J0YW50fS51LXAtbC00NHtwYWRkaW5nLWxlZnQ6JT80ND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC00NHttYXJnaW4tbGVmdDolPzQ0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC00NHtwYWRkaW5nLWxlZnQ6JT80ND8lIWltcG9ydGFudH0udS1tLXQtNDR7bWFyZ2luLXRvcDolPzQ0PyUhaW1wb3J0YW50fS51LXAtdC00NHtwYWRkaW5nLXRvcDolPzQ0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNDR7bWFyZ2luLXRvcDolPzQ0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTQ0e3BhZGRpbmctdG9wOiU/NDQ/JSFpbXBvcnRhbnR9LnUtbS1yLTQ0e21hcmdpbi1yaWdodDolPzQ0PyUhaW1wb3J0YW50fS51LXAtci00NHtwYWRkaW5nLXJpZ2h0OiU/NDQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTQ0e21hcmdpbi1yaWdodDolPzQ0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNDR7cGFkZGluZy1yaWdodDolPzQ0PyUhaW1wb3J0YW50fS51LW0tYi00NHttYXJnaW4tYm90dG9tOiU/NDQ/JSFpbXBvcnRhbnR9LnUtcC1iLTQ0e3BhZGRpbmctYm90dG9tOiU/NDQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS00NHttYXJnaW4tYm90dG9tOiU/NDQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNDR7cGFkZGluZy1ib3R0b206JT80ND8lIWltcG9ydGFudH0udS1tYXJnaW4tNDUsIC51LW0tNDV7bWFyZ2luOiU/NDU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy00NSwgLnUtcC00NXtwYWRkaW5nOiU/NDU/JSFpbXBvcnRhbnR9LnUtbS1sLTQ1e21hcmdpbi1sZWZ0OiU/NDU/JSFpbXBvcnRhbnR9LnUtcC1sLTQ1e3BhZGRpbmctbGVmdDolPzQ1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTQ1e21hcmdpbi1sZWZ0OiU/NDU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTQ1e3BhZGRpbmctbGVmdDolPzQ1PyUhaW1wb3J0YW50fS51LW0tdC00NXttYXJnaW4tdG9wOiU/NDU/JSFpbXBvcnRhbnR9LnUtcC10LTQ1e3BhZGRpbmctdG9wOiU/NDU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC00NXttYXJnaW4tdG9wOiU/NDU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNDV7cGFkZGluZy10b3A6JT80NT8lIWltcG9ydGFudH0udS1tLXItNDV7bWFyZ2luLXJpZ2h0OiU/NDU/JSFpbXBvcnRhbnR9LnUtcC1yLTQ1e3BhZGRpbmctcmlnaHQ6JT80NT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNDV7bWFyZ2luLXJpZ2h0OiU/NDU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC00NXtwYWRkaW5nLXJpZ2h0OiU/NDU/JSFpbXBvcnRhbnR9LnUtbS1iLTQ1e21hcmdpbi1ib3R0b206JT80NT8lIWltcG9ydGFudH0udS1wLWItNDV7cGFkZGluZy1ib3R0b206JT80NT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTQ1e21hcmdpbi1ib3R0b206JT80NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS00NXtwYWRkaW5nLWJvdHRvbTolPzQ1PyUhaW1wb3J0YW50fS51LW1hcmdpbi00NiwgLnUtbS00NnttYXJnaW46JT80Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTQ2LCAudS1wLTQ2e3BhZGRpbmc6JT80Nj8lIWltcG9ydGFudH0udS1tLWwtNDZ7bWFyZ2luLWxlZnQ6JT80Nj8lIWltcG9ydGFudH0udS1wLWwtNDZ7cGFkZGluZy1sZWZ0OiU/NDY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNDZ7bWFyZ2luLWxlZnQ6JT80Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNDZ7cGFkZGluZy1sZWZ0OiU/NDY/JSFpbXBvcnRhbnR9LnUtbS10LTQ2e21hcmdpbi10b3A6JT80Nj8lIWltcG9ydGFudH0udS1wLXQtNDZ7cGFkZGluZy10b3A6JT80Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTQ2e21hcmdpbi10b3A6JT80Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC00NntwYWRkaW5nLXRvcDolPzQ2PyUhaW1wb3J0YW50fS51LW0tci00NnttYXJnaW4tcmlnaHQ6JT80Nj8lIWltcG9ydGFudH0udS1wLXItNDZ7cGFkZGluZy1yaWdodDolPzQ2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC00NnttYXJnaW4tcmlnaHQ6JT80Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTQ2e3BhZGRpbmctcmlnaHQ6JT80Nj8lIWltcG9ydGFudH0udS1tLWItNDZ7bWFyZ2luLWJvdHRvbTolPzQ2PyUhaW1wb3J0YW50fS51LXAtYi00NntwYWRkaW5nLWJvdHRvbTolPzQ2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNDZ7bWFyZ2luLWJvdHRvbTolPzQ2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTQ2e3BhZGRpbmctYm90dG9tOiU/NDY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTQ4LCAudS1tLTQ4e21hcmdpbjolPzQ4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNDgsIC51LXAtNDh7cGFkZGluZzolPzQ4PyUhaW1wb3J0YW50fS51LW0tbC00OHttYXJnaW4tbGVmdDolPzQ4PyUhaW1wb3J0YW50fS51LXAtbC00OHtwYWRkaW5nLWxlZnQ6JT80OD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC00OHttYXJnaW4tbGVmdDolPzQ4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC00OHtwYWRkaW5nLWxlZnQ6JT80OD8lIWltcG9ydGFudH0udS1tLXQtNDh7bWFyZ2luLXRvcDolPzQ4PyUhaW1wb3J0YW50fS51LXAtdC00OHtwYWRkaW5nLXRvcDolPzQ4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNDh7bWFyZ2luLXRvcDolPzQ4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTQ4e3BhZGRpbmctdG9wOiU/NDg/JSFpbXBvcnRhbnR9LnUtbS1yLTQ4e21hcmdpbi1yaWdodDolPzQ4PyUhaW1wb3J0YW50fS51LXAtci00OHtwYWRkaW5nLXJpZ2h0OiU/NDg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTQ4e21hcmdpbi1yaWdodDolPzQ4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNDh7cGFkZGluZy1yaWdodDolPzQ4PyUhaW1wb3J0YW50fS51LW0tYi00OHttYXJnaW4tYm90dG9tOiU/NDg/JSFpbXBvcnRhbnR9LnUtcC1iLTQ4e3BhZGRpbmctYm90dG9tOiU/NDg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS00OHttYXJnaW4tYm90dG9tOiU/NDg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNDh7cGFkZGluZy1ib3R0b206JT80OD8lIWltcG9ydGFudH0udS1tYXJnaW4tNTAsIC51LW0tNTB7bWFyZ2luOiU/NTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy01MCwgLnUtcC01MHtwYWRkaW5nOiU/NTA/JSFpbXBvcnRhbnR9LnUtbS1sLTUwe21hcmdpbi1sZWZ0OiU/NTA/JSFpbXBvcnRhbnR9LnUtcC1sLTUwe3BhZGRpbmctbGVmdDolPzUwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTUwe21hcmdpbi1sZWZ0OiU/NTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTUwe3BhZGRpbmctbGVmdDolPzUwPyUhaW1wb3J0YW50fS51LW0tdC01MHttYXJnaW4tdG9wOiU/NTA/JSFpbXBvcnRhbnR9LnUtcC10LTUwe3BhZGRpbmctdG9wOiU/NTA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC01MHttYXJnaW4tdG9wOiU/NTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNTB7cGFkZGluZy10b3A6JT81MD8lIWltcG9ydGFudH0udS1tLXItNTB7bWFyZ2luLXJpZ2h0OiU/NTA/JSFpbXBvcnRhbnR9LnUtcC1yLTUwe3BhZGRpbmctcmlnaHQ6JT81MD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNTB7bWFyZ2luLXJpZ2h0OiU/NTA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC01MHtwYWRkaW5nLXJpZ2h0OiU/NTA/JSFpbXBvcnRhbnR9LnUtbS1iLTUwe21hcmdpbi1ib3R0b206JT81MD8lIWltcG9ydGFudH0udS1wLWItNTB7cGFkZGluZy1ib3R0b206JT81MD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTUwe21hcmdpbi1ib3R0b206JT81MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS01MHtwYWRkaW5nLWJvdHRvbTolPzUwPyUhaW1wb3J0YW50fS51LW1hcmdpbi01MiwgLnUtbS01MnttYXJnaW46JT81Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTUyLCAudS1wLTUye3BhZGRpbmc6JT81Mj8lIWltcG9ydGFudH0udS1tLWwtNTJ7bWFyZ2luLWxlZnQ6JT81Mj8lIWltcG9ydGFudH0udS1wLWwtNTJ7cGFkZGluZy1sZWZ0OiU/NTI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNTJ7bWFyZ2luLWxlZnQ6JT81Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNTJ7cGFkZGluZy1sZWZ0OiU/NTI/JSFpbXBvcnRhbnR9LnUtbS10LTUye21hcmdpbi10b3A6JT81Mj8lIWltcG9ydGFudH0udS1wLXQtNTJ7cGFkZGluZy10b3A6JT81Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTUye21hcmdpbi10b3A6JT81Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC01MntwYWRkaW5nLXRvcDolPzUyPyUhaW1wb3J0YW50fS51LW0tci01MnttYXJnaW4tcmlnaHQ6JT81Mj8lIWltcG9ydGFudH0udS1wLXItNTJ7cGFkZGluZy1yaWdodDolPzUyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC01MnttYXJnaW4tcmlnaHQ6JT81Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTUye3BhZGRpbmctcmlnaHQ6JT81Mj8lIWltcG9ydGFudH0udS1tLWItNTJ7bWFyZ2luLWJvdHRvbTolPzUyPyUhaW1wb3J0YW50fS51LXAtYi01MntwYWRkaW5nLWJvdHRvbTolPzUyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNTJ7bWFyZ2luLWJvdHRvbTolPzUyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTUye3BhZGRpbmctYm90dG9tOiU/NTI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTU0LCAudS1tLTU0e21hcmdpbjolPzU0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNTQsIC51LXAtNTR7cGFkZGluZzolPzU0PyUhaW1wb3J0YW50fS51LW0tbC01NHttYXJnaW4tbGVmdDolPzU0PyUhaW1wb3J0YW50fS51LXAtbC01NHtwYWRkaW5nLWxlZnQ6JT81ND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC01NHttYXJnaW4tbGVmdDolPzU0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC01NHtwYWRkaW5nLWxlZnQ6JT81ND8lIWltcG9ydGFudH0udS1tLXQtNTR7bWFyZ2luLXRvcDolPzU0PyUhaW1wb3J0YW50fS51LXAtdC01NHtwYWRkaW5nLXRvcDolPzU0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNTR7bWFyZ2luLXRvcDolPzU0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTU0e3BhZGRpbmctdG9wOiU/NTQ/JSFpbXBvcnRhbnR9LnUtbS1yLTU0e21hcmdpbi1yaWdodDolPzU0PyUhaW1wb3J0YW50fS51LXAtci01NHtwYWRkaW5nLXJpZ2h0OiU/NTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTU0e21hcmdpbi1yaWdodDolPzU0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNTR7cGFkZGluZy1yaWdodDolPzU0PyUhaW1wb3J0YW50fS51LW0tYi01NHttYXJnaW4tYm90dG9tOiU/NTQ/JSFpbXBvcnRhbnR9LnUtcC1iLTU0e3BhZGRpbmctYm90dG9tOiU/NTQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS01NHttYXJnaW4tYm90dG9tOiU/NTQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNTR7cGFkZGluZy1ib3R0b206JT81ND8lIWltcG9ydGFudH0udS1tYXJnaW4tNTUsIC51LW0tNTV7bWFyZ2luOiU/NTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy01NSwgLnUtcC01NXtwYWRkaW5nOiU/NTU/JSFpbXBvcnRhbnR9LnUtbS1sLTU1e21hcmdpbi1sZWZ0OiU/NTU/JSFpbXBvcnRhbnR9LnUtcC1sLTU1e3BhZGRpbmctbGVmdDolPzU1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTU1e21hcmdpbi1sZWZ0OiU/NTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTU1e3BhZGRpbmctbGVmdDolPzU1PyUhaW1wb3J0YW50fS51LW0tdC01NXttYXJnaW4tdG9wOiU/NTU/JSFpbXBvcnRhbnR9LnUtcC10LTU1e3BhZGRpbmctdG9wOiU/NTU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC01NXttYXJnaW4tdG9wOiU/NTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNTV7cGFkZGluZy10b3A6JT81NT8lIWltcG9ydGFudH0udS1tLXItNTV7bWFyZ2luLXJpZ2h0OiU/NTU/JSFpbXBvcnRhbnR9LnUtcC1yLTU1e3BhZGRpbmctcmlnaHQ6JT81NT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNTV7bWFyZ2luLXJpZ2h0OiU/NTU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC01NXtwYWRkaW5nLXJpZ2h0OiU/NTU/JSFpbXBvcnRhbnR9LnUtbS1iLTU1e21hcmdpbi1ib3R0b206JT81NT8lIWltcG9ydGFudH0udS1wLWItNTV7cGFkZGluZy1ib3R0b206JT81NT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTU1e21hcmdpbi1ib3R0b206JT81NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS01NXtwYWRkaW5nLWJvdHRvbTolPzU1PyUhaW1wb3J0YW50fS51LW1hcmdpbi01NiwgLnUtbS01NnttYXJnaW46JT81Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTU2LCAudS1wLTU2e3BhZGRpbmc6JT81Nj8lIWltcG9ydGFudH0udS1tLWwtNTZ7bWFyZ2luLWxlZnQ6JT81Nj8lIWltcG9ydGFudH0udS1wLWwtNTZ7cGFkZGluZy1sZWZ0OiU/NTY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNTZ7bWFyZ2luLWxlZnQ6JT81Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNTZ7cGFkZGluZy1sZWZ0OiU/NTY/JSFpbXBvcnRhbnR9LnUtbS10LTU2e21hcmdpbi10b3A6JT81Nj8lIWltcG9ydGFudH0udS1wLXQtNTZ7cGFkZGluZy10b3A6JT81Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTU2e21hcmdpbi10b3A6JT81Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC01NntwYWRkaW5nLXRvcDolPzU2PyUhaW1wb3J0YW50fS51LW0tci01NnttYXJnaW4tcmlnaHQ6JT81Nj8lIWltcG9ydGFudH0udS1wLXItNTZ7cGFkZGluZy1yaWdodDolPzU2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC01NnttYXJnaW4tcmlnaHQ6JT81Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTU2e3BhZGRpbmctcmlnaHQ6JT81Nj8lIWltcG9ydGFudH0udS1tLWItNTZ7bWFyZ2luLWJvdHRvbTolPzU2PyUhaW1wb3J0YW50fS51LXAtYi01NntwYWRkaW5nLWJvdHRvbTolPzU2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNTZ7bWFyZ2luLWJvdHRvbTolPzU2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTU2e3BhZGRpbmctYm90dG9tOiU/NTY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTU4LCAudS1tLTU4e21hcmdpbjolPzU4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNTgsIC51LXAtNTh7cGFkZGluZzolPzU4PyUhaW1wb3J0YW50fS51LW0tbC01OHttYXJnaW4tbGVmdDolPzU4PyUhaW1wb3J0YW50fS51LXAtbC01OHtwYWRkaW5nLWxlZnQ6JT81OD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC01OHttYXJnaW4tbGVmdDolPzU4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC01OHtwYWRkaW5nLWxlZnQ6JT81OD8lIWltcG9ydGFudH0udS1tLXQtNTh7bWFyZ2luLXRvcDolPzU4PyUhaW1wb3J0YW50fS51LXAtdC01OHtwYWRkaW5nLXRvcDolPzU4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNTh7bWFyZ2luLXRvcDolPzU4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTU4e3BhZGRpbmctdG9wOiU/NTg/JSFpbXBvcnRhbnR9LnUtbS1yLTU4e21hcmdpbi1yaWdodDolPzU4PyUhaW1wb3J0YW50fS51LXAtci01OHtwYWRkaW5nLXJpZ2h0OiU/NTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTU4e21hcmdpbi1yaWdodDolPzU4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNTh7cGFkZGluZy1yaWdodDolPzU4PyUhaW1wb3J0YW50fS51LW0tYi01OHttYXJnaW4tYm90dG9tOiU/NTg/JSFpbXBvcnRhbnR9LnUtcC1iLTU4e3BhZGRpbmctYm90dG9tOiU/NTg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS01OHttYXJnaW4tYm90dG9tOiU/NTg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNTh7cGFkZGluZy1ib3R0b206JT81OD8lIWltcG9ydGFudH0udS1tYXJnaW4tNjAsIC51LW0tNjB7bWFyZ2luOiU/NjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy02MCwgLnUtcC02MHtwYWRkaW5nOiU/NjA/JSFpbXBvcnRhbnR9LnUtbS1sLTYwe21hcmdpbi1sZWZ0OiU/NjA/JSFpbXBvcnRhbnR9LnUtcC1sLTYwe3BhZGRpbmctbGVmdDolPzYwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTYwe21hcmdpbi1sZWZ0OiU/NjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTYwe3BhZGRpbmctbGVmdDolPzYwPyUhaW1wb3J0YW50fS51LW0tdC02MHttYXJnaW4tdG9wOiU/NjA/JSFpbXBvcnRhbnR9LnUtcC10LTYwe3BhZGRpbmctdG9wOiU/NjA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC02MHttYXJnaW4tdG9wOiU/NjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNjB7cGFkZGluZy10b3A6JT82MD8lIWltcG9ydGFudH0udS1tLXItNjB7bWFyZ2luLXJpZ2h0OiU/NjA/JSFpbXBvcnRhbnR9LnUtcC1yLTYwe3BhZGRpbmctcmlnaHQ6JT82MD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNjB7bWFyZ2luLXJpZ2h0OiU/NjA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC02MHtwYWRkaW5nLXJpZ2h0OiU/NjA/JSFpbXBvcnRhbnR9LnUtbS1iLTYwe21hcmdpbi1ib3R0b206JT82MD8lIWltcG9ydGFudH0udS1wLWItNjB7cGFkZGluZy1ib3R0b206JT82MD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTYwe21hcmdpbi1ib3R0b206JT82MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS02MHtwYWRkaW5nLWJvdHRvbTolPzYwPyUhaW1wb3J0YW50fS51LW1hcmdpbi02MiwgLnUtbS02MnttYXJnaW46JT82Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTYyLCAudS1wLTYye3BhZGRpbmc6JT82Mj8lIWltcG9ydGFudH0udS1tLWwtNjJ7bWFyZ2luLWxlZnQ6JT82Mj8lIWltcG9ydGFudH0udS1wLWwtNjJ7cGFkZGluZy1sZWZ0OiU/NjI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNjJ7bWFyZ2luLWxlZnQ6JT82Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNjJ7cGFkZGluZy1sZWZ0OiU/NjI/JSFpbXBvcnRhbnR9LnUtbS10LTYye21hcmdpbi10b3A6JT82Mj8lIWltcG9ydGFudH0udS1wLXQtNjJ7cGFkZGluZy10b3A6JT82Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTYye21hcmdpbi10b3A6JT82Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC02MntwYWRkaW5nLXRvcDolPzYyPyUhaW1wb3J0YW50fS51LW0tci02MnttYXJnaW4tcmlnaHQ6JT82Mj8lIWltcG9ydGFudH0udS1wLXItNjJ7cGFkZGluZy1yaWdodDolPzYyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC02MnttYXJnaW4tcmlnaHQ6JT82Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTYye3BhZGRpbmctcmlnaHQ6JT82Mj8lIWltcG9ydGFudH0udS1tLWItNjJ7bWFyZ2luLWJvdHRvbTolPzYyPyUhaW1wb3J0YW50fS51LXAtYi02MntwYWRkaW5nLWJvdHRvbTolPzYyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNjJ7bWFyZ2luLWJvdHRvbTolPzYyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTYye3BhZGRpbmctYm90dG9tOiU/NjI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTY0LCAudS1tLTY0e21hcmdpbjolPzY0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNjQsIC51LXAtNjR7cGFkZGluZzolPzY0PyUhaW1wb3J0YW50fS51LW0tbC02NHttYXJnaW4tbGVmdDolPzY0PyUhaW1wb3J0YW50fS51LXAtbC02NHtwYWRkaW5nLWxlZnQ6JT82ND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC02NHttYXJnaW4tbGVmdDolPzY0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC02NHtwYWRkaW5nLWxlZnQ6JT82ND8lIWltcG9ydGFudH0udS1tLXQtNjR7bWFyZ2luLXRvcDolPzY0PyUhaW1wb3J0YW50fS51LXAtdC02NHtwYWRkaW5nLXRvcDolPzY0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNjR7bWFyZ2luLXRvcDolPzY0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTY0e3BhZGRpbmctdG9wOiU/NjQ/JSFpbXBvcnRhbnR9LnUtbS1yLTY0e21hcmdpbi1yaWdodDolPzY0PyUhaW1wb3J0YW50fS51LXAtci02NHtwYWRkaW5nLXJpZ2h0OiU/NjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTY0e21hcmdpbi1yaWdodDolPzY0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNjR7cGFkZGluZy1yaWdodDolPzY0PyUhaW1wb3J0YW50fS51LW0tYi02NHttYXJnaW4tYm90dG9tOiU/NjQ/JSFpbXBvcnRhbnR9LnUtcC1iLTY0e3BhZGRpbmctYm90dG9tOiU/NjQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS02NHttYXJnaW4tYm90dG9tOiU/NjQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNjR7cGFkZGluZy1ib3R0b206JT82ND8lIWltcG9ydGFudH0udS1tYXJnaW4tNjUsIC51LW0tNjV7bWFyZ2luOiU/NjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy02NSwgLnUtcC02NXtwYWRkaW5nOiU/NjU/JSFpbXBvcnRhbnR9LnUtbS1sLTY1e21hcmdpbi1sZWZ0OiU/NjU/JSFpbXBvcnRhbnR9LnUtcC1sLTY1e3BhZGRpbmctbGVmdDolPzY1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTY1e21hcmdpbi1sZWZ0OiU/NjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTY1e3BhZGRpbmctbGVmdDolPzY1PyUhaW1wb3J0YW50fS51LW0tdC02NXttYXJnaW4tdG9wOiU/NjU/JSFpbXBvcnRhbnR9LnUtcC10LTY1e3BhZGRpbmctdG9wOiU/NjU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC02NXttYXJnaW4tdG9wOiU/NjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNjV7cGFkZGluZy10b3A6JT82NT8lIWltcG9ydGFudH0udS1tLXItNjV7bWFyZ2luLXJpZ2h0OiU/NjU/JSFpbXBvcnRhbnR9LnUtcC1yLTY1e3BhZGRpbmctcmlnaHQ6JT82NT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNjV7bWFyZ2luLXJpZ2h0OiU/NjU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC02NXtwYWRkaW5nLXJpZ2h0OiU/NjU/JSFpbXBvcnRhbnR9LnUtbS1iLTY1e21hcmdpbi1ib3R0b206JT82NT8lIWltcG9ydGFudH0udS1wLWItNjV7cGFkZGluZy1ib3R0b206JT82NT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTY1e21hcmdpbi1ib3R0b206JT82NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS02NXtwYWRkaW5nLWJvdHRvbTolPzY1PyUhaW1wb3J0YW50fS51LW1hcmdpbi02NiwgLnUtbS02NnttYXJnaW46JT82Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTY2LCAudS1wLTY2e3BhZGRpbmc6JT82Nj8lIWltcG9ydGFudH0udS1tLWwtNjZ7bWFyZ2luLWxlZnQ6JT82Nj8lIWltcG9ydGFudH0udS1wLWwtNjZ7cGFkZGluZy1sZWZ0OiU/NjY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNjZ7bWFyZ2luLWxlZnQ6JT82Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNjZ7cGFkZGluZy1sZWZ0OiU/NjY/JSFpbXBvcnRhbnR9LnUtbS10LTY2e21hcmdpbi10b3A6JT82Nj8lIWltcG9ydGFudH0udS1wLXQtNjZ7cGFkZGluZy10b3A6JT82Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTY2e21hcmdpbi10b3A6JT82Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC02NntwYWRkaW5nLXRvcDolPzY2PyUhaW1wb3J0YW50fS51LW0tci02NnttYXJnaW4tcmlnaHQ6JT82Nj8lIWltcG9ydGFudH0udS1wLXItNjZ7cGFkZGluZy1yaWdodDolPzY2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC02NnttYXJnaW4tcmlnaHQ6JT82Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTY2e3BhZGRpbmctcmlnaHQ6JT82Nj8lIWltcG9ydGFudH0udS1tLWItNjZ7bWFyZ2luLWJvdHRvbTolPzY2PyUhaW1wb3J0YW50fS51LXAtYi02NntwYWRkaW5nLWJvdHRvbTolPzY2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNjZ7bWFyZ2luLWJvdHRvbTolPzY2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTY2e3BhZGRpbmctYm90dG9tOiU/NjY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTY4LCAudS1tLTY4e21hcmdpbjolPzY4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNjgsIC51LXAtNjh7cGFkZGluZzolPzY4PyUhaW1wb3J0YW50fS51LW0tbC02OHttYXJnaW4tbGVmdDolPzY4PyUhaW1wb3J0YW50fS51LXAtbC02OHtwYWRkaW5nLWxlZnQ6JT82OD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC02OHttYXJnaW4tbGVmdDolPzY4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC02OHtwYWRkaW5nLWxlZnQ6JT82OD8lIWltcG9ydGFudH0udS1tLXQtNjh7bWFyZ2luLXRvcDolPzY4PyUhaW1wb3J0YW50fS51LXAtdC02OHtwYWRkaW5nLXRvcDolPzY4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNjh7bWFyZ2luLXRvcDolPzY4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTY4e3BhZGRpbmctdG9wOiU/Njg/JSFpbXBvcnRhbnR9LnUtbS1yLTY4e21hcmdpbi1yaWdodDolPzY4PyUhaW1wb3J0YW50fS51LXAtci02OHtwYWRkaW5nLXJpZ2h0OiU/Njg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTY4e21hcmdpbi1yaWdodDolPzY4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNjh7cGFkZGluZy1yaWdodDolPzY4PyUhaW1wb3J0YW50fS51LW0tYi02OHttYXJnaW4tYm90dG9tOiU/Njg/JSFpbXBvcnRhbnR9LnUtcC1iLTY4e3BhZGRpbmctYm90dG9tOiU/Njg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS02OHttYXJnaW4tYm90dG9tOiU/Njg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNjh7cGFkZGluZy1ib3R0b206JT82OD8lIWltcG9ydGFudH0udS1tYXJnaW4tNzAsIC51LW0tNzB7bWFyZ2luOiU/NzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy03MCwgLnUtcC03MHtwYWRkaW5nOiU/NzA/JSFpbXBvcnRhbnR9LnUtbS1sLTcwe21hcmdpbi1sZWZ0OiU/NzA/JSFpbXBvcnRhbnR9LnUtcC1sLTcwe3BhZGRpbmctbGVmdDolPzcwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTcwe21hcmdpbi1sZWZ0OiU/NzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTcwe3BhZGRpbmctbGVmdDolPzcwPyUhaW1wb3J0YW50fS51LW0tdC03MHttYXJnaW4tdG9wOiU/NzA/JSFpbXBvcnRhbnR9LnUtcC10LTcwe3BhZGRpbmctdG9wOiU/NzA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC03MHttYXJnaW4tdG9wOiU/NzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNzB7cGFkZGluZy10b3A6JT83MD8lIWltcG9ydGFudH0udS1tLXItNzB7bWFyZ2luLXJpZ2h0OiU/NzA/JSFpbXBvcnRhbnR9LnUtcC1yLTcwe3BhZGRpbmctcmlnaHQ6JT83MD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNzB7bWFyZ2luLXJpZ2h0OiU/NzA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC03MHtwYWRkaW5nLXJpZ2h0OiU/NzA/JSFpbXBvcnRhbnR9LnUtbS1iLTcwe21hcmdpbi1ib3R0b206JT83MD8lIWltcG9ydGFudH0udS1wLWItNzB7cGFkZGluZy1ib3R0b206JT83MD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTcwe21hcmdpbi1ib3R0b206JT83MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS03MHtwYWRkaW5nLWJvdHRvbTolPzcwPyUhaW1wb3J0YW50fS51LW1hcmdpbi03MiwgLnUtbS03MnttYXJnaW46JT83Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTcyLCAudS1wLTcye3BhZGRpbmc6JT83Mj8lIWltcG9ydGFudH0udS1tLWwtNzJ7bWFyZ2luLWxlZnQ6JT83Mj8lIWltcG9ydGFudH0udS1wLWwtNzJ7cGFkZGluZy1sZWZ0OiU/NzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNzJ7bWFyZ2luLWxlZnQ6JT83Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNzJ7cGFkZGluZy1sZWZ0OiU/NzI/JSFpbXBvcnRhbnR9LnUtbS10LTcye21hcmdpbi10b3A6JT83Mj8lIWltcG9ydGFudH0udS1wLXQtNzJ7cGFkZGluZy10b3A6JT83Mj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTcye21hcmdpbi10b3A6JT83Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC03MntwYWRkaW5nLXRvcDolPzcyPyUhaW1wb3J0YW50fS51LW0tci03MnttYXJnaW4tcmlnaHQ6JT83Mj8lIWltcG9ydGFudH0udS1wLXItNzJ7cGFkZGluZy1yaWdodDolPzcyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC03MnttYXJnaW4tcmlnaHQ6JT83Mj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTcye3BhZGRpbmctcmlnaHQ6JT83Mj8lIWltcG9ydGFudH0udS1tLWItNzJ7bWFyZ2luLWJvdHRvbTolPzcyPyUhaW1wb3J0YW50fS51LXAtYi03MntwYWRkaW5nLWJvdHRvbTolPzcyPyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNzJ7bWFyZ2luLWJvdHRvbTolPzcyPyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTcye3BhZGRpbmctYm90dG9tOiU/NzI/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTc0LCAudS1tLTc0e21hcmdpbjolPzc0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNzQsIC51LXAtNzR7cGFkZGluZzolPzc0PyUhaW1wb3J0YW50fS51LW0tbC03NHttYXJnaW4tbGVmdDolPzc0PyUhaW1wb3J0YW50fS51LXAtbC03NHtwYWRkaW5nLWxlZnQ6JT83ND8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC03NHttYXJnaW4tbGVmdDolPzc0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC03NHtwYWRkaW5nLWxlZnQ6JT83ND8lIWltcG9ydGFudH0udS1tLXQtNzR7bWFyZ2luLXRvcDolPzc0PyUhaW1wb3J0YW50fS51LXAtdC03NHtwYWRkaW5nLXRvcDolPzc0PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNzR7bWFyZ2luLXRvcDolPzc0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTc0e3BhZGRpbmctdG9wOiU/NzQ/JSFpbXBvcnRhbnR9LnUtbS1yLTc0e21hcmdpbi1yaWdodDolPzc0PyUhaW1wb3J0YW50fS51LXAtci03NHtwYWRkaW5nLXJpZ2h0OiU/NzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTc0e21hcmdpbi1yaWdodDolPzc0PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNzR7cGFkZGluZy1yaWdodDolPzc0PyUhaW1wb3J0YW50fS51LW0tYi03NHttYXJnaW4tYm90dG9tOiU/NzQ/JSFpbXBvcnRhbnR9LnUtcC1iLTc0e3BhZGRpbmctYm90dG9tOiU/NzQ/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS03NHttYXJnaW4tYm90dG9tOiU/NzQ/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNzR7cGFkZGluZy1ib3R0b206JT83ND8lIWltcG9ydGFudH0udS1tYXJnaW4tNzUsIC51LW0tNzV7bWFyZ2luOiU/NzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy03NSwgLnUtcC03NXtwYWRkaW5nOiU/NzU/JSFpbXBvcnRhbnR9LnUtbS1sLTc1e21hcmdpbi1sZWZ0OiU/NzU/JSFpbXBvcnRhbnR9LnUtcC1sLTc1e3BhZGRpbmctbGVmdDolPzc1PyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTc1e21hcmdpbi1sZWZ0OiU/NzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTc1e3BhZGRpbmctbGVmdDolPzc1PyUhaW1wb3J0YW50fS51LW0tdC03NXttYXJnaW4tdG9wOiU/NzU/JSFpbXBvcnRhbnR9LnUtcC10LTc1e3BhZGRpbmctdG9wOiU/NzU/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC03NXttYXJnaW4tdG9wOiU/NzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtNzV7cGFkZGluZy10b3A6JT83NT8lIWltcG9ydGFudH0udS1tLXItNzV7bWFyZ2luLXJpZ2h0OiU/NzU/JSFpbXBvcnRhbnR9LnUtcC1yLTc1e3BhZGRpbmctcmlnaHQ6JT83NT8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtNzV7bWFyZ2luLXJpZ2h0OiU/NzU/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC03NXtwYWRkaW5nLXJpZ2h0OiU/NzU/JSFpbXBvcnRhbnR9LnUtbS1iLTc1e21hcmdpbi1ib3R0b206JT83NT8lIWltcG9ydGFudH0udS1wLWItNzV7cGFkZGluZy1ib3R0b206JT83NT8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTc1e21hcmdpbi1ib3R0b206JT83NT8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS03NXtwYWRkaW5nLWJvdHRvbTolPzc1PyUhaW1wb3J0YW50fS51LW1hcmdpbi03NiwgLnUtbS03NnttYXJnaW46JT83Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLTc2LCAudS1wLTc2e3BhZGRpbmc6JT83Nj8lIWltcG9ydGFudH0udS1tLWwtNzZ7bWFyZ2luLWxlZnQ6JT83Nj8lIWltcG9ydGFudH0udS1wLWwtNzZ7cGFkZGluZy1sZWZ0OiU/NzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWxlZnQtNzZ7bWFyZ2luLWxlZnQ6JT83Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLWxlZnQtNzZ7cGFkZGluZy1sZWZ0OiU/NzY/JSFpbXBvcnRhbnR9LnUtbS10LTc2e21hcmdpbi10b3A6JT83Nj8lIWltcG9ydGFudH0udS1wLXQtNzZ7cGFkZGluZy10b3A6JT83Nj8lIWltcG9ydGFudH0udS1tYXJnaW4tdG9wLTc2e21hcmdpbi10b3A6JT83Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXRvcC03NntwYWRkaW5nLXRvcDolPzc2PyUhaW1wb3J0YW50fS51LW0tci03NnttYXJnaW4tcmlnaHQ6JT83Nj8lIWltcG9ydGFudH0udS1wLXItNzZ7cGFkZGluZy1yaWdodDolPzc2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1yaWdodC03NnttYXJnaW4tcmlnaHQ6JT83Nj8lIWltcG9ydGFudH0udS1wYWRkaW5nLXJpZ2h0LTc2e3BhZGRpbmctcmlnaHQ6JT83Nj8lIWltcG9ydGFudH0udS1tLWItNzZ7bWFyZ2luLWJvdHRvbTolPzc2PyUhaW1wb3J0YW50fS51LXAtYi03NntwYWRkaW5nLWJvdHRvbTolPzc2PyUhaW1wb3J0YW50fS51LW1hcmdpbi1ib3R0b20tNzZ7bWFyZ2luLWJvdHRvbTolPzc2PyUhaW1wb3J0YW50fS51LXBhZGRpbmctYm90dG9tLTc2e3BhZGRpbmctYm90dG9tOiU/NzY/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLTc4LCAudS1tLTc4e21hcmdpbjolPzc4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctNzgsIC51LXAtNzh7cGFkZGluZzolPzc4PyUhaW1wb3J0YW50fS51LW0tbC03OHttYXJnaW4tbGVmdDolPzc4PyUhaW1wb3J0YW50fS51LXAtbC03OHtwYWRkaW5nLWxlZnQ6JT83OD8lIWltcG9ydGFudH0udS1tYXJnaW4tbGVmdC03OHttYXJnaW4tbGVmdDolPzc4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctbGVmdC03OHtwYWRkaW5nLWxlZnQ6JT83OD8lIWltcG9ydGFudH0udS1tLXQtNzh7bWFyZ2luLXRvcDolPzc4PyUhaW1wb3J0YW50fS51LXAtdC03OHtwYWRkaW5nLXRvcDolPzc4PyUhaW1wb3J0YW50fS51LW1hcmdpbi10b3AtNzh7bWFyZ2luLXRvcDolPzc4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctdG9wLTc4e3BhZGRpbmctdG9wOiU/Nzg/JSFpbXBvcnRhbnR9LnUtbS1yLTc4e21hcmdpbi1yaWdodDolPzc4PyUhaW1wb3J0YW50fS51LXAtci03OHtwYWRkaW5nLXJpZ2h0OiU/Nzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXJpZ2h0LTc4e21hcmdpbi1yaWdodDolPzc4PyUhaW1wb3J0YW50fS51LXBhZGRpbmctcmlnaHQtNzh7cGFkZGluZy1yaWdodDolPzc4PyUhaW1wb3J0YW50fS51LW0tYi03OHttYXJnaW4tYm90dG9tOiU/Nzg/JSFpbXBvcnRhbnR9LnUtcC1iLTc4e3BhZGRpbmctYm90dG9tOiU/Nzg/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLWJvdHRvbS03OHttYXJnaW4tYm90dG9tOiU/Nzg/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1ib3R0b20tNzh7cGFkZGluZy1ib3R0b206JT83OD8lIWltcG9ydGFudH0udS1tYXJnaW4tODAsIC51LW0tODB7bWFyZ2luOiU/ODA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy04MCwgLnUtcC04MHtwYWRkaW5nOiU/ODA/JSFpbXBvcnRhbnR9LnUtbS1sLTgwe21hcmdpbi1sZWZ0OiU/ODA/JSFpbXBvcnRhbnR9LnUtcC1sLTgwe3BhZGRpbmctbGVmdDolPzgwPyUhaW1wb3J0YW50fS51LW1hcmdpbi1sZWZ0LTgwe21hcmdpbi1sZWZ0OiU/ODA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1sZWZ0LTgwe3BhZGRpbmctbGVmdDolPzgwPyUhaW1wb3J0YW50fS51LW0tdC04MHttYXJnaW4tdG9wOiU/ODA/JSFpbXBvcnRhbnR9LnUtcC10LTgwe3BhZGRpbmctdG9wOiU/ODA/JSFpbXBvcnRhbnR9LnUtbWFyZ2luLXRvcC04MHttYXJnaW4tdG9wOiU/ODA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy10b3AtODB7cGFkZGluZy10b3A6JT84MD8lIWltcG9ydGFudH0udS1tLXItODB7bWFyZ2luLXJpZ2h0OiU/ODA/JSFpbXBvcnRhbnR9LnUtcC1yLTgwe3BhZGRpbmctcmlnaHQ6JT84MD8lIWltcG9ydGFudH0udS1tYXJnaW4tcmlnaHQtODB7bWFyZ2luLXJpZ2h0OiU/ODA/JSFpbXBvcnRhbnR9LnUtcGFkZGluZy1yaWdodC04MHtwYWRkaW5nLXJpZ2h0OiU/ODA/JSFpbXBvcnRhbnR9LnUtbS1iLTgwe21hcmdpbi1ib3R0b206JT84MD8lIWltcG9ydGFudH0udS1wLWItODB7cGFkZGluZy1ib3R0b206JT84MD8lIWltcG9ydGFudH0udS1tYXJnaW4tYm90dG9tLTgwe21hcmdpbi1ib3R0b206JT84MD8lIWltcG9ydGFudH0udS1wYWRkaW5nLWJvdHRvbS04MHtwYWRkaW5nLWJvdHRvbTolPzgwPyUhaW1wb3J0YW50fS51LXJlc2V0LW52dWV7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcn0udS10eXBlLXByaW1hcnktbGlnaHR7Y29sb3I6I2VjZjVmZn0udS10eXBlLXdhcm5pbmctbGlnaHR7Y29sb3I6I2ZkZjZlY30udS10eXBlLXN1Y2Nlc3MtbGlnaHR7Y29sb3I6I2RiZjFlMX0udS10eXBlLWVycm9yLWxpZ2h0e2NvbG9yOiNmZWYwZjB9LnUtdHlwZS1pbmZvLWxpZ2h0e2NvbG9yOiNmNGY0ZjV9LnUtdHlwZS1wcmltYXJ5LWxpZ2h0LWJne2JhY2tncm91bmQtY29sb3I6I2VjZjVmZn0udS10eXBlLXdhcm5pbmctbGlnaHQtYmd7YmFja2dyb3VuZC1jb2xvcjojZmRmNmVjfS51LXR5cGUtc3VjY2Vzcy1saWdodC1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNkYmYxZTF9LnUtdHlwZS1lcnJvci1saWdodC1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmZWYwZjB9LnUtdHlwZS1pbmZvLWxpZ2h0LWJne2JhY2tncm91bmQtY29sb3I6I2Y0ZjRmNX0udS10eXBlLXByaW1hcnktZGFya3tjb2xvcjojMmI4NWU0fS51LXR5cGUtd2FybmluZy1kYXJre2NvbG9yOiNmMjkxMDB9LnUtdHlwZS1zdWNjZXNzLWRhcmt7Y29sb3I6IzE4YjU2Nn0udS10eXBlLWVycm9yLWRhcmt7Y29sb3I6I2RkNjE2MX0udS10eXBlLWluZm8tZGFya3tjb2xvcjojODI4NDhhfS51LXR5cGUtcHJpbWFyeS1kYXJrLWJne2JhY2tncm91bmQtY29sb3I6IzJiODVlNH0udS10eXBlLXdhcm5pbmctZGFyay1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmMjkxMDB9LnUtdHlwZS1zdWNjZXNzLWRhcmstYmd7YmFja2dyb3VuZC1jb2xvcjojMThiNTY2fS51LXR5cGUtZXJyb3ItZGFyay1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNkZDYxNjF9LnUtdHlwZS1pbmZvLWRhcmstYmd7YmFja2dyb3VuZC1jb2xvcjojODI4NDhhfS51LXR5cGUtcHJpbWFyeS1kaXNhYmxlZHtjb2xvcjojYTBjZmZmfS51LXR5cGUtd2FybmluZy1kaXNhYmxlZHtjb2xvcjojZmNiZDcxfS51LXR5cGUtc3VjY2Vzcy1kaXNhYmxlZHtjb2xvcjojNzFkNWExfS51LXR5cGUtZXJyb3ItZGlzYWJsZWR7Y29sb3I6I2ZhYjZiNn0udS10eXBlLWluZm8tZGlzYWJsZWR7Y29sb3I6I2M4YzljY30udS10eXBlLXByaW1hcnl7Y29sb3I6IzI5NzlmZn0udS10eXBlLXdhcm5pbmd7Y29sb3I6I2Y5MH0udS10eXBlLXN1Y2Nlc3N7Y29sb3I6IzE5YmU2Yn0udS10eXBlLWVycm9ye2NvbG9yOiNmYTM1MzR9LnUtdHlwZS1pbmZve2NvbG9yOiM5MDkzOTl9LnUtdHlwZS1wcmltYXJ5LWJne2JhY2tncm91bmQtY29sb3I6IzI5NzlmZn0udS10eXBlLXdhcm5pbmctYmd7YmFja2dyb3VuZC1jb2xvcjojZjkwfS51LXR5cGUtc3VjY2Vzcy1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiMxOWJlNmJ9LnUtdHlwZS1lcnJvci1iZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmYTM1MzR9LnUtdHlwZS1pbmZvLWJne2JhY2tncm91bmQtY29sb3I6IzkwOTM5OX0udS1tYWluLWNvbG9ye2NvbG9yOiMzMDMxMzN9LnUtY29udGVudC1jb2xvcntjb2xvcjojNjA2MjY2fS51LXRpcHMtY29sb3J7Y29sb3I6IzkwOTM5OX0udS1saWdodC1jb2xvcntjb2xvcjojYzBjNGNjfXVuaS1wYWdlLWJvZHl7Y29sb3I6IzMwMzEzMztmb250LXNpemU6JT8yOD8lfVxyXG4vKiBzdGFydC0t5Y676Zmkd2Via2l055qE6buY6K6k5qC35byPLS1zdGFydCAqLy51LWZpeC1pb3MtYXBwZWFyYW5jZXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1cclxuLyogZW5kLS3ljrvpmaR3ZWJraXTnmoTpu5jorqTmoLflvI8tLWVuZCAqL1xyXG4vKiBzdGFydC0taWNvbuWbvuagh+WkluWxguWll+S4gOS4qnZpZXfvvIzorqnlhbbovr7liLDmm7Tlpb3nmoTlnoLnm7TlsYXkuK3nmoTmlYjmnpwtLXN0YXJ0ICovLnUtaWNvbi13cmFwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9XHJcbi8qIGVuZC1pY29u5Zu+5qCH5aSW5bGC5aWX5LiA5Liqdmlld++8jOiuqeWFtui+vuWIsOabtOWlveeahOWeguebtOWxheS4reeahOaViOaenC0tZW5kICovXHJcbi8qIHN0YXJ0LS1pUGhvbmVY5bqV6YOo5a6J5YWo5Yy65a6a5LmJLS1zdGFydCAqLy5zYWZlLWFyZWEtaW5zZXQtYm90dG9te3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy1ib3R0b206Y29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7cGFkZGluZy1ib3R0b206ZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pfVxyXG4vKiBlbmQtaVBob25lWOW6lemDqOWuieWFqOWMuuWumuS5iS0tZW5kICovXHJcbi8qIHN0YXJ0LS3lkITnp41ob3ZlcueCueWHu+WPjemmiOebuOWFs+eahOexu+WQjS1zdGFydCAqLy51LWhvdmVyLWNsYXNze29wYWNpdHk6LjZ9LnUtY2VsbC1ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y4ZjkhaW1wb3J0YW50fVxyXG4vKiBlbmQtLeWQhOenjWhvdmVy54K55Ye75Y+N6aaI55u45YWz55qE57G75ZCNLS1lbmQgKi9cclxuLyogc3RhcnQtLeaWh+acrOihjOaVsOmZkOWIti0tc3RhcnQgKi8udS1saW5lLTF7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS51LWxpbmUtMnstd2Via2l0LWxpbmUtY2xhbXA6Mn0udS1saW5lLTN7LXdlYmtpdC1saW5lLWNsYW1wOjN9LnUtbGluZS00ey13ZWJraXQtbGluZS1jbGFtcDo0fS51LWxpbmUtNXstd2Via2l0LWxpbmUtY2xhbXA6NX0udS1saW5lLTIsIC51LWxpbmUtMywgLnUtbGluZS00LCAudS1saW5lLTV7b3ZlcmZsb3c6aGlkZGVuO3dvcmQtYnJlYWs6YnJlYWstYWxsO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWx9XHJcbi8qIGVuZC0t5paH5pys6KGM5pWw6ZmQ5Yi2LS1lbmQgKi9cclxuLyogc3RhcnQtLVJldGluYSDlsY/luZXkuIvnmoQgMXB4IOi+ueahhi0tc3RhcnQgKi8udS1ib3JkZXIsXHJcbi51LWJvcmRlci1ib3R0b20sXHJcbi51LWJvcmRlci1sZWZ0LFxyXG4udS1ib3JkZXItcmlnaHQsXHJcbi51LWJvcmRlci10b3AsXHJcbi51LWJvcmRlci10b3AtYm90dG9te3Bvc2l0aW9uOnJlbGF0aXZlfS51LWJvcmRlci1ib3R0b206YWZ0ZXIsXHJcbi51LWJvcmRlci1sZWZ0OmFmdGVyLFxyXG4udS1ib3JkZXItcmlnaHQ6YWZ0ZXIsXHJcbi51LWJvcmRlci10b3AtYm90dG9tOmFmdGVyLFxyXG4udS1ib3JkZXItdG9wOmFmdGVyLFxyXG4udS1ib3JkZXI6YWZ0ZXJ7Y29udGVudDoiICI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3BvaW50ZXItZXZlbnRzOm5vbmU7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDA7d2lkdGg6MTk5LjglO2hlaWdodDoxOTkuNyU7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO3RyYW5zZm9ybTpzY2FsZSguNSk7Ym9yZGVyOjAgc29saWQgI2U0ZTdlZDt6LWluZGV4OjJ9LnUtYm9yZGVyLXRvcDphZnRlcntib3JkZXItdG9wLXdpZHRoOjFweH0udS1ib3JkZXItbGVmdDphZnRlcntib3JkZXItbGVmdC13aWR0aDoxcHh9LnUtYm9yZGVyLXJpZ2h0OmFmdGVye2JvcmRlci1yaWdodC13aWR0aDoxcHh9LnUtYm9yZGVyLWJvdHRvbTphZnRlcntib3JkZXItYm90dG9tLXdpZHRoOjFweH0udS1ib3JkZXItdG9wLWJvdHRvbTphZnRlcntib3JkZXItd2lkdGg6MXB4IDB9LnUtYm9yZGVyOmFmdGVye2JvcmRlci13aWR0aDoxcHh9XHJcbi8qIGVuZC0tUmV0aW5hIOWxj+W5leS4i+eahCAxcHgg6L655qGGLS1lbmQgKi9cclxuLyogc3RhcnQtLWNsZWFyZml4LS1zdGFydCAqLy51LWNsZWFyZml4OmFmdGVyLFxyXG4uY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9XHJcbi8qIGVuZC0tY2xlYXJmaXgtLWVuZCAqL1xyXG4vKiBzdGFydC0t6auY5pav5qih57OKdGFiYmFy5bqV6YOo5aSE55CGLS1zdGFydCAqLy51LWJsdXItZWZmZWN0LWluc2V0e3dpZHRoOiU/NzUwPyU7aGVpZ2h0OnZhcigtLXdpbmRvdy1ib3R0b20pO2JhY2tncm91bmQtY29sb3I6I2ZmZn1cclxuLyogZW5kLS3pq5jmlq/mqKHns4p0YWJiYXLlupXpg6jlpITnkIYtLWVuZCAqL1xyXG4vKiBzdGFydC0t5o+Q5Y2HSDXnq691bmkudG9hc3QoKeeahOWxgue6p++8jOmBv+WFjeiiq3VWaWV355qEbW9kYWznrYnpga7nm5YtLXN0YXJ0ICovdW5pLXRvYXN0e3otaW5kZXg6MTAwOTB9dW5pLXRvYXN0IC51bmktdG9hc3R7ei1pbmRleDoxMDA5MH1cclxuLyogZW5kLS3mj5DljYdINeerr3VuaS50b2FzdCgp55qE5bGC57qn77yM6YG/5YWN6KKrdVZpZXfnmoRtb2RhbOetiemBruebli0tZW5kICovXHJcbi8qIHN0YXJ0LS3ljrvpmaRidXR0b27nmoTmiYDmnInpu5jorqTmoLflvI8tLXN0YXJ0ICovLnUtcmVzZXQtYnV0dG9ue3BhZGRpbmc6MDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtjb2xvcjppbmhlcml0fS51LXJlc2V0LWJ1dHRvbjo6YWZ0ZXJ7Ym9yZGVyOm5vbmV9XHJcbi8qIGVuZC0t5Y676ZmkYnV0dG9u55qE5omA5pyJ6buY6K6k5qC35byPLS1lbmQgKi9cclxuLyogSDXnmoTml7blgJnvvIzpmpDol4/mu5rliqjmnaEgKi86Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTt3aWR0aDowIWltcG9ydGFudDtoZWlnaHQ6MCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucGFnZXttYXJnaW46MDtwYWRkaW5nOjA7Zm9udC1zaXplOiU/Mjg/JX0uc3VibWl0X2J1dHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgzMTVkZWcsIzBlNTg1MSwjMGU1ODUxKTtib3JkZXItcmFkaXVzOiU/NTA/JTtib3gtc2hhZG93OiU/MD8lICU/Mj8lICU/MTY/JSAlPzA/JSByZ2JhKDIxNiw2MCwxMDAsLjYpO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6JT8zNT8lIDB9LnRpdF9ib3J7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMzE1ZGVnLCNkODNjNjQsI2Q4M2M2NCk7d2lkdGg6JT84PyU7aGVpZ2h0OiU/Mjg/JTtib3JkZXItcmFkaXVzOiU/Nj8lO21hcmdpbi1yaWdodDolPzE2PyV9Lm5hdntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6JT8yNT8lO3dpZHRoOjEwMCV9Lm5hdl9sZWZ0e2ZvbnQtc2l6ZTolPzMwPyU7d2lkdGg6MjUlfS5uYXZfdGl0e3dpZHRoOjUwJTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6JT8yOD8lO2ZvbnQtZmFtaWx5OlBpbmdGYW5nU0MtTWVkaXVtLFBpbmdGYW5nIFNDO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojMzMzfS5uYXZfcmlnaHR7Y29sb3I6IzhjOGM4Yzt3aWR0aDoyNSU7dGV4dC1hbGlnbjpyaWdodH0uaW5wdXR7d2lkdGg6OTIlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87Ym94LXNoYWRvdzolPzA/JSAlPzI/JSAlPzEyPyUgJT8wPyUgcmdiYSgwLDAsMCwuMDgpO3BhZGRpbmc6JT8xMD8lIDAgMCAwO2JvcmRlci1yYWRpdXM6JT8xNj8lO21hcmdpbi10b3A6JT8zMj8lfS5pbnB1dF90aXR7Zm9udC1zaXplOiU/MzI/JTtmb250LXdlaWdodDo1NTA7cGFkZGluZy1sZWZ0OiU/MjA/JTt3aWR0aDo5NSU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5pbnB1dF9ib3h7d2lkdGg6ODIlO21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLXRvcDolPzI0PyU7cGFkZGluZy1ib3R0b206JT81MD8lfS5pbnB1dF9ib3ggdW5pLWlucHV0e2JvcmRlcjolPzI/JSBzb2xpZCAjZDZkNmQ2O3BhZGRpbmc6JT8yNT8lO2JvcmRlci1yYWRpdXM6JT84PyU7Zm9udC1zaXplOiU/Mjg/JTtjb2xvcjojZDZkNmQ2fS5tb2RhbHt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOiU/MjA/JSAwfS5tb2RhbF90aXR7cGFkZGluZzolPzIwPyUgMDtmb250LXNpemU6JT8yOD8lO2ZvbnQtZmFtaWx5OlBpbmdGYW5nU0MtUmVndWxhcixQaW5nRmFuZyBTQztmb250LXdlaWdodDo0MDA7Y29sb3I6IzMzM30ubW9kYWxfbXNne2ZvbnQtc2l6ZTolPzI0PyU7Zm9udC1mYW1pbHk6UGluZ0ZhbmdTQy1SZWd1bGFyLFBpbmdGYW5nIFNDO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojOGM4YzhjO3BhZGRpbmctYm90dG9tOiU/MjA/JTtwYWRkaW5nOiU/MD8lICU/MTA/JX0uZW1wdHl7cGFkZGluZy10b3A6JT8xODA/JX0nLCIiXSksdC5leHBvcnRzPW59LGI1ZDg6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDAsYSgiNGU4MiIpO3ZhciBpPWZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiB0LnNvcnQoKGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucmFuZG9tKCktLjV9KSl9O24uZGVmYXVsdD1pfSxiNzA3OmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpO3ZhciBpPWEoIjRlYTQiKS5kZWZhdWx0O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9dm9pZCAwLGEoImFjMWYiKSxhKCIwMGI0IiksYSgiZDNiNyIpO3ZhciBlPWkoYSgiYzdlYiIpKSxyPWkoYSgiMWRhMSIpKSxvPWkoYSgiZDRlYyIpKSxwPWkoYSgiYmVlMiIpKSxkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeygwLG8uZGVmYXVsdCkodGhpcyx0KSx0aGlzLmNvbmZpZz17dHlwZToibmF2aWdhdGVUbyIsdXJsOiIiLGRlbHRhOjEscGFyYW1zOnt9LGFuaW1hdGlvblR5cGU6InBvcC1pbiIsYW5pbWF0aW9uRHVyYXRpb246MzAwLGludGVyY2VwdDohMX0sdGhpcy5yb3V0ZT10aGlzLnJvdXRlLmJpbmQodGhpcyl9cmV0dXJuKDAscC5kZWZhdWx0KSh0LFt7a2V5OiJhZGRSb290UGF0aCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIi8iPT09dFswXT90OiIvIi5jb25jYXQodCl9fSx7a2V5OiJtaXhpblBhcmFtIix2YWx1ZTpmdW5jdGlvbih0LG4pe3Q9dCYmdGhpcy5hZGRSb290UGF0aCh0KTt2YXIgYT0iIjtyZXR1cm4vLipcLy4qXD8uKj0uKi8udGVzdCh0KT8oYT11bmkuJHUucXVlcnlQYXJhbXMobiwhMSksdCsiJiIrYSk6KGE9dW5pLiR1LnF1ZXJ5UGFyYW1zKG4pLHQrYSl9fSx7a2V5OiJyb3V0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0oMCxyLmRlZmF1bHQpKCgwLGUuZGVmYXVsdCkoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIG4sYSxpLHIsbz1hcmd1bWVudHM7cmV0dXJuKDAsZS5kZWZhdWx0KSgpLndyYXAoKGZ1bmN0aW9uKHQpe3doaWxlKDEpc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihuPW8ubGVuZ3RoPjAmJnZvaWQgMCE9PW9bMF0/b1swXTp7fSxhPW8ubGVuZ3RoPjEmJnZvaWQgMCE9PW9bMV0/b1sxXTp7fSxpPXt9LCJzdHJpbmciPT09dHlwZW9mIG4/KGkudXJsPXRoaXMubWl4aW5QYXJhbShuLGEpLGkudHlwZT0ibmF2aWdhdGVUbyIpOihpPXVuaS4kdS5kZWVwQ2xvbmUobix0aGlzLmNvbmZpZyksaS51cmw9dGhpcy5taXhpblBhcmFtKG4udXJsLG4ucGFyYW1zKSksYS5pbnRlcmNlcHQmJih0aGlzLmNvbmZpZy5pbnRlcmNlcHQ9YS5pbnRlcmNlcHQpLGkucGFyYW1zPWEsaT11bmkuJHUuZGVlcE1lcmdlKHRoaXMuY29uZmlnLGkpLCJmdW5jdGlvbiIhPT10eXBlb2YgdW5pLiR1LnJvdXRlSW50ZXJjZXB0KXt0Lm5leHQ9MTQ7YnJlYWt9cmV0dXJuIHQubmV4dD0xMCxuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxuKXt1bmkuJHUucm91dGVJbnRlcmNlcHQoaSx0KX0pKTtjYXNlIDEwOnI9dC5zZW50LHImJnRoaXMub3BlblBhZ2UoaSksdC5uZXh0PTE1O2JyZWFrO2Nhc2UgMTQ6dGhpcy5vcGVuUGFnZShpKTtjYXNlIDE1OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX0se2tleToib3BlblBhZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBuPXQudXJsLGE9KHQudHlwZSx0LmRlbHRhKSxpPXQuYW5pbWF0aW9uVHlwZSxlPXQuYW5pbWF0aW9uRHVyYXRpb247Im5hdmlnYXRlVG8iIT10LnR5cGUmJiJ0byIhPXQudHlwZXx8dW5pLm5hdmlnYXRlVG8oe3VybDpuLGFuaW1hdGlvblR5cGU6aSxhbmltYXRpb25EdXJhdGlvbjplfSksInJlZGlyZWN0VG8iIT10LnR5cGUmJiJyZWRpcmVjdCIhPXQudHlwZXx8dW5pLnJlZGlyZWN0VG8oe3VybDpufSksInN3aXRjaFRhYiIhPXQudHlwZSYmInRhYiIhPXQudHlwZXx8dW5pLnN3aXRjaFRhYih7dXJsOm59KSwicmVMYXVuY2giIT10LnR5cGUmJiJsYXVuY2giIT10LnR5cGV8fHVuaS5yZUxhdW5jaCh7dXJsOm59KSwibmF2aWdhdGVCYWNrIiE9dC50eXBlJiYiYmFjayIhPXQudHlwZXx8dW5pLm5hdmlnYXRlQmFjayh7ZGVsdGE6YX0pfX1dKSx0fSgpLGc9KG5ldyBkKS5yb3V0ZTtuLmRlZmF1bHQ9Z30sYjdkZTpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKTt2YXIgaT1hKCI0ZWE0IikuZGVmYXVsdDtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PWZ1bmN0aW9uKHQsbil7dmFyIGE9dGhpcy4kcGFyZW50O3doaWxlKGEpaWYoYS4kb3B0aW9ucy5uYW1lIT09dClhPWEuJHBhcmVudDtlbHNle3ZhciBpPWZ1bmN0aW9uKCl7dmFyIHQ9e307aWYoQXJyYXkuaXNBcnJheShuKSluLm1hcCgoZnVuY3Rpb24obil7dFtuXT1hW25dP2Fbbl06IiJ9KSk7ZWxzZSBmb3IodmFyIGkgaW4gbilBcnJheS5pc0FycmF5KG5baV0pP25baV0ubGVuZ3RoP3RbaV09bltpXTp0W2ldPWFbaV06bltpXS5jb25zdHJ1Y3Rvcj09PU9iamVjdD9PYmplY3Qua2V5cyhuW2ldKS5sZW5ndGg/dFtpXT1uW2ldOnRbaV09YVtpXTp0W2ldPW5baV18fCExPT09bltpXT9uW2ldOmFbaV07cmV0dXJue3Y6dH19KCk7aWYoIm9iamVjdCI9PT0oMCxlLmRlZmF1bHQpKGkpKXJldHVybiBpLnZ9cmV0dXJue319O3ZhciBlPWkoYSgiNTNjYSIpKTthKCJkODFkIiksYSgiYjY0YiIpfSxiOTgzOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7YSgiN2E4MiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dm9pZCAwLG49dGhpcy4kcGFyZW50O3doaWxlKG4pe2lmKCFuLiRvcHRpb25zfHxuLiRvcHRpb25zLm5hbWU9PT10KXJldHVybiBuO249bi4kcGFyZW50fXJldHVybiExfX0sYzNlYzpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EuZChuLCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxhLmQobiwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KSksYS5kKG4sImEiLChmdW5jdGlvbigpe30pKTt2YXIgaT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuJGNyZWF0ZUVsZW1lbnQsbj10aGlzLl9zZWxmLl9jfHx0O3JldHVybiBuKCJBcHAiLHthdHRyczp7a2VlcEFsaXZlSW5jbHVkZTp0aGlzLmtlZXBBbGl2ZUluY2x1ZGV9fSl9LGU9W119LGM2NWY6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGk9ZnVuY3Rpb24odCxuKXtpZih0Pj0wJiZuPjAmJm4+PXQpe3ZhciBhPW4tdCsxO3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqYSt0KX1yZXR1cm4gMH07bi5kZWZhdWx0PWl9LGM4ZGE6ZnVuY3Rpb24odCxuLGEpe3ZhciBpPWEoImFlMDQiKTtpLl9fZXNNb2R1bGUmJihpPWkuZGVmYXVsdCksInN0cmluZyI9PT10eXBlb2YgaSYmKGk9W1t0LmksaSwiIl1dKSxpLmxvY2FscyYmKHQuZXhwb3J0cz1pLmxvY2Fscyk7dmFyIGU9YSgiNGYwNiIpLmRlZmF1bHQ7ZSgiNjQxMTllMTciLGksITAse3NvdXJjZU1hcDohMSxzaGFkb3dNb2RlOiExfSl9LGM4Zjk6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthLnIobik7dmFyIGk9YSgiYzNlYyIpLGU9YSgiZGZjNCIpO2Zvcih2YXIgciBpbiBlKVsiZGVmYXVsdCJdLmluZGV4T2Yocik8MCYmZnVuY3Rpb24odCl7YS5kKG4sdCwoZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX0pKX0ocik7YSgiOTllYyIpO3ZhciBvPWEoImYwYzUiKSxwPU9iamVjdChvWyJhIl0pKGVbImRlZmF1bHQiXSxpWyJiIl0saVsiYyJdLCExLG51bGwsbnVsbCxudWxsLCExLGlbImEiXSx2b2lkIDApO25bImRlZmF1bHQiXT1wLmV4cG9ydHN9LGRmYzQ6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthLnIobik7dmFyIGk9YSgiZWNmZSIpLGU9YS5uKGkpO2Zvcih2YXIgciBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2Yocik8MCYmZnVuY3Rpb24odCl7YS5kKG4sdCwoZnVuY3Rpb24oKXtyZXR1cm4gaVt0XX0pKX0ocik7blsiZGVmYXVsdCJdPWUuYX0sZWNiZTpmdW5jdGlvbih0LG4sYSl7dmFyIGksZT1hKCI5NTIzIikuZGVmYXVsdDt0LmV4cG9ydHM9e21lc3NhZ2U6KGk9e3BsYXRmb3JtTmFtZToiUkVUQUlMLVNIT1BQSU5HIixjdXJyZW5jeUFiYnJldmlhdGlvbjoiUEhQIixjdXJyZW5jeVN5bWJvbDoi4oKxIixXaXRoZHJhd1R5cGU6IkdjYXNoIixob21lOiJIb21lIixsaXN0OiJMaXN0Iix0YWtlOiJPcmRlciIsbXk6Ik15IixSZWNoYXJnZToiUmVjaGFyZ2UiLFdpdGhkcmF3OiJXaXRoZHJhdyIsQ29uZmlybToiQ29uZmlybSIsQ2FuY2VsOiJDYW5jZWwiLEludml0YXRpb25Db2RlOiJJbnZpdGF0aW9uIGNvZGUiLEFjY291bnRSZWNoYXJnZToiUmVjaGFyZ2UiLFJlY29yZDoiUmVjb3JkIixjb3B5U3VjY2VzczoiQ29weSBTdWNjZXNzZnVsbHkiLGNvcHlFcnJvcjoiUmVwbGljYXRpb24gRmFpbGVkIixBZGRUbzoiQWRkIHRvIixwbGVhc2VDb25maXJtOiJwbGVhc2UgY29uZmlybSIsQ29uZmlybXRoZUNoYW5nZXM6IkNvbmZpcm0gdGhlIGNoYW5nZXMiLGVtcHR5OiJObyBkYXRhIixBbm5vdW5jZW1lbnQ6IkFubm91bmNlbWVudCIsY29weToiQ29weSIsYWNjb3VudExvZ2luOiJBY2NvdW50IGxvZ2luIixTaWduVXBOb3c6IlNpZ24gdXAgbm93IixhY2NvdW50OiJQbGVhc2UgZmlsbCBpbiB5b3VyIG1vYmlsZSBudW1iZXIiLHBhc3N3b3JkOiJwbGVhc2UgZW50ZXIgcGFzc3dvcmQiLENvbmZpcm1QYXNzd29yZDoiUGxlYXNlIGVudGVyIHRoZSBwYXNzd29yZCBhZ2FpbiB0byBjb25maXJtIixJbnZpdGF0aW9uQ29kZUVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIGludml0YXRpb24gY29kZSIsRm9yZ2V0Q3VzdG9tZXJTZXJ2aWNlOiJGb3Jnb3QgcGFzc3dvcmQsIGNvbnRhY3QgY3VzdG9tZXIgc2VydmljZSIsUXVlc3Rpb25DdXN0b21lclNlcnZpY2U6IklmIHlvdSBlbmNvdW50ZXIgcHJvYmxlbXMsIGNvbnRhY3QgY3VzdG9tZXIgc2VydmljZSIsbG9naW5JbW1lZGlhdGVseToiTG9nIGluIGltbWVkaWF0ZWx5Iixsb2dnaW5nSW46IkxvZ2dpbmcgaW4iLHJlZ2lzdGVyOiJTaWduIHVwIG5vdyIscmVnaXN0ZXJpbmc6IlJlZ2lzdGVyaW5nIixyZWdpc3RyYXRpb25TdWNjZXNzOiJSZWdpc3RyYXRpb24gc3VjY2VzcyIsbG9naW5TdWNjZXNzOiJMb2dpbiBzdWNjZXNzZnVsIixiYWxhbmNlV2l0aGRyYXdhbDoiV2l0aGRyYXciLGFib3V0VXM6IkFib3V0IFVzIixvbmxpbmVTZXJ2aWNlOiJvbmxpbmUgc2VydmljZSIsQ2xpY2tUb1NpZ25JbjoiQ2xpY2sgdG8gc2lnbiBpbiIsc2lnbkluUmV3YXJkOiJTaWduIGluIHRvIHJlY2VpdmUgY2FzaCByZXdhcmRzIixzaWduSW5Ob3c6IkNoZWNrSW4iLENvbW1pc3Npb25EaXNwbGF5OiJDb21taXNzaW9uIGRpc3BsYXkiLGNlbGVicmF0ZToiQ2VsZWJyYXRlIixVc2VyOiJVc2VyIix0b0Vhcm46IlRvIGVhcm4iLFBhcnRuZXI6IlBhcnRuZXIiLENvbXBsZXRlT3JkZXI6IkNvbXBsZXRlIG9yZGVyIixSZW1haW5pbmdUYXNrczoiUmVtYWluaW5nIE9yZGVycyIsbWVtYmVyc2hpcExldmVsOiJNZW1iZXJzaGlwIGxldmVsIixDb21taXNzaW9uU3RhdGlzdGljczoiQ29tbWlzc2lvbiBzdGF0aXN0aWNzIixTdGFydFdvcmtpbmc6IkFERCBUTyBDQVJUIixDYXRlZ29yaWVzOiJDYXRlZ29yaWVzIixtYXRjaGluZzoiTWF0Y2hpbmcgb3JkZXJzIGZvciB5b3UiLGdldGFuT3JkZXI6ImNvbmdyYXR1bGF0aW9ucyEgVG8gZ2V0IGEgbmV3IGpvYiwgcGxlYXNlIHNlbGVjdCBhIHByb2R1Y3QgYW5kIHN1Ym1pdCB0aGUgb3JkZXIgaW4gdGltZSB0byBjb21wbGV0ZSB0aGUgam9iIixvcmRlclRpbWU6Ik9yZGVyIHRpbWUiLHVuaXRQcmljZToiVW5pdCBwcmljZSIscnVsZToiQ29tbW9uIixOdW1iZXJvZlByb2R1Y3RzOiJJdGVtcyIsY29tbWlzc2lvbkFtb3VudDoiQ29tbWlzc2lvbiBhbW91bnQiLFRvdGFsTWVyY2hhbmRpc2U6IlRvdGFsIG1lcmNoYW5kaXNlIixjb3B5TGluazoiQ29weSBMaW5rIixTdWJtaXRPcmRlcjoiU3VibWl0IE9yZGVyIixzdWJtaXR0aW5nOiJTdWJtaXR0aW5nIixIaW50OiJIaW50Iix0b0FkZDoiVG8gYWRkIixhZGRBZGRyZXNzRXJyb3I6Ik5vIGRlbGl2ZXJ5IGFkZHJlc3MgaGFzIGJlZW4gYWRkZWQgeWV0IixDb25maXJtU2VydmljZToiQ2xpY2sgT0sgdG8gYWRkIGl0IGltbWVkaWF0ZWx5LiBJZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtcywgcGxlYXNlIGNvbnN1bHQgY3VzdG9tZXIgc2VydmljZS4iLGJhbGFuY2VFcnJvcjoiWW91ciBhY2NvdW50IGJhbGFuY2UgaXMgaW5zdWZmaWNpZW50IixiYWxhbmNlU2VydmljZToiQ2xpY2sgQ29uZmlybSB0byByZWNoYXJnZSBpbW1lZGlhdGVseS4gSWYgeW91IGVuY291bnRlciBhbnkgcHJvYmxlbXMsIHBsZWFzZSBjb25zdWx0IGN1c3RvbWVyIHNlcnZpY2UuIixhbGxPcmRlcnM6IkFsbCIsY29tcGxldGVkT3JkZXI6IkNvbXBsZXRlZCIsSW5jb21wbGV0ZU9yZGVyczoiVW5kb25lIixDYW5jZWxPcmRlcnM6IkNhbmNlbCB0aGUgb3JkZXIiLE1lbWJlckJhbGFuY2U6Ik1lbWJlciBiYWxhbmNlIixteVNlcnZpY2U6Ik15IHNlcnZpY2UiLEZ1bmRpbmdEZXRhaWxzOiJEZXRhaWxlZCIsaW52aXRlRnJpZW5kczoiSW52aXRlIGZyaWVuZHMiLGFkZEFkZHJlc3M6IkFkZCBhZGRyZXNzIixNYW51YWxDdXN0b21lclNlcnZpY2U6Ik9ubGluZSBzZXJ2aWNlIixteVRvb2xzOiJNeSB0b29scyIsbG9naW5QYXNzd29yZDoiTG9naW4gcGFzc3dvcmQiLHBheW1lbnRQYXNzd29yZDoiUGF5bWVudCBwYXNzd29yZCIsUmVjaGFyZ2VSZWNvcmQ6IlJlY2hhcmdlIHJlY29yZCIsV2l0aGRyYXdhbHNSZWNvcmQ6IldpdGhkcmF3YWxzIHJlY29yZCIsbXlUZWFtOiJNeSB0ZWFtIixCaW5kQmFua0NhcmQ6IkJpbmQgYmFuayBjYXJkIixjbGVhckNhY2hlOiJDbGVhciBjYWNoZSIsQ29uZmlybUNsZWFybXlUZWFtOiJDb25maXJtIENsZWFyIixDb25maXJtQ2xlYXJSZW1pbmRlcjoiQ2xlYXJpbmcgdGhlIGNhY2hlIHdpbGwgbG9nIHlvdSBvdXQiLENvbmZpcm1DbGVhcmluZ0luZm9ybWF0aW9uOiJDbGVhcmluZyB0aGUgY2FjaGUgd2lsbCBsb2cgeW91IG91dCIsc2lnbk91dDoiTG9nIG91dCIsY2FyZEhvbGRlcjoiTmFtZSBob2xkZXIiLENvcHlMaW5rOiJDb3B5IExpbmsiLG1haWxib3g6Ik15IE1haWxib3giLEFjY291bnRCYWxhbmNlOiJBY2NvdW50IEJhbGFuY2UiLFJlY2hhcmdlQW1vdW50OiJSZWNoYXJnZSBhbW91bnQiLFJlY2hhcmdlQW1vdW50RXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgcmVjaGFyZ2UgYW1vdW50IixwYXlUeWU6IlBheW1lbnQgbWV0aG9kIixwYXlUeWVFcnJvcjoiUGxlYXNlIHNlbGVjdCBtb2RlIG9mIHBheW1lbnQiLEFjY291bnRzUmVjZWl2YWJsZToiQ29sbGVjdGlvbiBhY2NvdW50IGluZm9ybWF0aW9uIixyZWNoYXJnZU1zZ1RpdDoiUmVjaGFyZ2UgTm90aWNlIixyZWNoYXJnZU1zZzoiQWZ0ZXIgdGhlIHRyYW5zZmVyLCBwbGVhc2Ugc2VuZCB0aGUgdHJhbnNmZXIgZGlhZ3JhbSB0byB0aGUgaW5zdHJ1Y3RvciIsQ2FyZGhvbGRlcjoiTmFtZSBob2xkZXIiLENhcmRob2xkZXJFcnJvcjoiUGxlYXNlIGVudGVyIE5hbWUgaG9sZGVyIixCYW5rQ2FyZE51bWJlcjoiQmFuayBhY2NvdW50IG51bWJlciIsQmFua0NhcmROdW1iZXJFcnJvcjoiUGxlYXNlIGVudGVyIHRoZSBCYW5rIGFjY291bnQgbnVtYmVyIixCYW5rTmFtZToiQmFuayBuYW1lIixCYW5rTmFtZUVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIGJhbmsgbmFtZSIsU2hpcHBpbmdBZGRyZXNzOiJTaGlwcGluZyBhZGRyZXNzIixjb25zaWduZWU6IlJlY2VpdmVyIixjb25zaWduZWVFcnJvcjoiUGxlYXNlIGVudGVyIHRoZSBjb25zaWduZWUgbmFtZSIsY29uc2lnbmVlVGVsOiJQaG9uZSBudW1iZXIiLGNvbnNpZ25lZVRlbEVycm9yOiJQbGVhc2UgZW50ZXIgdGhlIGNvbnNpZ25lZSdzIG1vYmlsZSBwaG9uZSBudW1iZXIiLGFyZWE6IkNvdW50cnkgLyByZWdpb24iLGFyZWFFcnJvcjoiUGxlYXNlIGVudGVyIGEgY291bnRyeSBvciByZWdpb24iLGRldGFpbGVkQWRkcmVzczoiQWRkcmVzcyIsZGV0YWlsZWRBZGRyZXNzRXJyb3I6IlBsZWFzZSBlbnRlciBkZXRhaWxlZCBhZGRyZXNzIixNb2RpZnlQYXltZW50UGFzc3dvcmQ6Ik1vZGlmeSBwYXltZW50IHBhc3N3b3JkIixwYXltZW50UGFzc3dvcmRFcnJvcjoiUGxlYXNlIGVudGVyIHBheW1lbnQgcGFzc3dvcmQiLHBheW1lbnRQYXNzd29yZDI6IkNvbmZpcm0gUGFzc3dvcmQiLHBheW1lbnRQYXNzd29yZDJFcnJvcjoiUGxlYXNlIGVudGVyIHRoZSBwYXltZW50IHBhc3N3b3JkIGFnYWluIixsb2dpblBhc3N3b3JkRXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgbG9naW4gcGFzc3dvcmQgdG8gdmVyaWZ5IixDaGFuZ2VMb2dpblBhc3N3b3JkOiJDaGFuZ2UgbG9naW4gcGFzc3dvcmQiLG9sZFBhc3N3b3JkOiJPbGQgcGFzc3dvcmQiLG9sZFBhc3N3b3JkRXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgb3JpZ2luYWwgbG9naW4gcGFzc3dvcmQiLG5ld1Bhc3N3b3JkOiJOZXcgUGFzc3dvcmQiLG5ld1Bhc3N3b3JkRXJyb3I6IlBsZWFzZSBlbnRlciBhIG5ldyBsb2dpbiBwYXNzd29yZCIsbmV3UGFzc3dvcmQyOiJDb25maXJtIFBhc3N3b3JkIixuZXdQYXNzd29yZEVycm9yMjoiUGxlYXNlIGVudGVyIHRoZSBuZXcgbG9naW4gcGFzc3dvcmQgYWdhaW4iLENoYW5nZVBhc3N3b3JkUmVtaW5kZXI6IlRoZSBwYXNzd29yZCB3aWxsIGJlIGNoYW5nZWQgdG8iLE1vZGlmeVBhc3N3b3JkUmVtaW5kZXJDb250ZW50OiJDbGljayBPSyB0byBtb2RpZnkgaW1tZWRpYXRlbHkuIElmIHlvdSBlbmNvdW50ZXIgYW55IHByb2JsZW1zLCBwbGVhc2UgY29uc3VsdCBjdXN0b21lciBzZXJ2aWNlLiIsUmVjaGFyZ2VEZXRhaWxzOiJSZWNoYXJnZSBEZXRhaWxzIixvbmxpbmVSZWNoYXJnZToiT25saW5lIHJlY2hhcmdlIixNYW51YWxSZWNoYXJnZToiTWFudWFsIHJlY2hhcmdlIixBY2NvdW50V2l0aGRyYXdhbDoiQWNjb3VudCB3aXRoZHJhd2FsIixXaXRoZHJhd2FibGVCYWxhbmNlOiJXaXRoZHJhd2FibGUgYmFsYW5jZSIsUGF5bWVudE1ldGhvZDoiUGF5bWVudCBtZXRob2QiLFdpdGhkcmF3YWxBbW91bnQ6IldpdGhkcmF3YWwgQW1vdW50IixXaXRoZHJhd2FsQW1vdW50RXJyb3I6IlBsZWFzZSBlbnRlciB0aGUgd2l0aGRyYXdhbCBhbW91bnQiLFBheW1lbnRNZXRob2RFcnJvcjoiUGxlYXNlIGNob29zZSB0aGUgcGF5bWVudCBtZXRob2QiLE9QZW5QYXltZW50TWV0aG9kOiJDbGljayB0byBzZWxlY3QgdGhlIHBheW1lbnQgbWV0aG9kIixXaXRoZHJhd2FsRGV0YWlsczoiV2l0aGRyYXdhbCBkZXRhaWxzIix1bmRlclJldmlldzoiVW5kZXIgcmV2aWV3IixleGFtaW5hdGlvblBhc3NlZDoiRXhhbWluYXRpb24gcGFzc2VkIixBdWRpdFJlamVjdGVkOiJBdWRpdCBSZWplY3RlZCIsYmFua1RyYW5zZmVyOiJUaGUgYmFuayBpcyBzZW5kaW5nIG1vbmV5IixSZW1hcms6IlJlbWFyayIsZ29Ub1NldHRpbmdzOiJHbyB0byBzZXR0aW5ncyIsUGF5bWVudFBhc3N3b3JkUmVtaW5kZXI6Ik5vIHBheW1lbnQgcGFzc3dvcmQgaGFzIGJlZW4gc2V0IHlldCIsUGF5bWVudFBhc3N3b3JkUmVtaW5kZXJNc2c6IkNsaWNrIENvbmZpcm0gdG8gc2V0IHRoZSBwYXltZW50IHBhc3N3b3JkIGltbWVkaWF0ZWx5LiBJZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtcywgcGxlYXNlIGNvbnN1bHQgY3VzdG9tZXIgc2VydmljZS4iLFRvQmluZDoiVG8gYmluZCIsQmluZGluZ0JhbmtDYXJkUmVtaW5kZXI6Ik5vIGJhbmsgY2FyZCB5ZXQiLEJpbmRpbmdCYW5rQ2FyZFJlbWluZGVyTXNnOiJDbGljayBDb25maXJtIHRvIGJpbmQgdGhlIHdpdGhkcmF3YWwgbWV0aG9kIGltbWVkaWF0ZWx5LiBJZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtcywgcGxlYXNlIGNvbnN1bHQgY3VzdG9tZXIgc2VydmljZS4iLFN1Y2Nlc3NmdWxXaXRoZHJhd2FsOiJTdWNjZXNzZnVsIHdpdGhkcmF3YWwiLFN1Y2Nlc3NmdWxXaXRoZHJhd2FsTXNnOiJUaGUgd2l0aGRyYXdhbCBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIGJhY2tncm91bmQgZm9yIHJldmlldy4gQWZ0ZXIgY29uZmlybWF0aW9uLCBpdCB3aWxsIGJlIHN1Ym1pdHRlZCB0byB0aGUgYmFuayBmb3IgcGF5bWVudC4gRm9yIGRldGFpbHMsIHBsZWFzZSBjb25zdWx0IGN1c3RvbWVyIHNlcnZpY2UuIixvcGVuTGluazoiT3BlbiBsaW5rIixjb3B5TGlua0FkZDoiQ29weSB0aGUgbGluayB0byBhZGQgY3VzdG9tZXIgc2VydmljZSBvbiBUZWxlZ3JhbSIsT3BlbnRoZUxpbmt0b0FkZDoiT3BlbiB0aGUgbGluayBkaXJlY3RseSB0byBhZGQgZnJpZW5kcyIsQmFsYW5jZUJlZm9yZUFjY291bnRDaGFuZ2U6IkJhbGFuY2UgYmVmb3JlIGFjY291bnQgY2hhbmdlIixCYWxhbmNlQWZ0ZXJBY2NvdW50Q2hhbmdlOiJCYWxhbmNlIGFmdGVyIGFjY291bnQgY2hhbmdlIixUb3BVcDoiVG9wIHVwIixtYW51YWxEZWR1Y3Rpb246Ik1hbnVhbCBkZWR1Y3Rpb24iLEJvbnVzR2l2ZWF3YXk6IkJvbnVzIGdpdmVhd2F5IixDb21taXNzaW9uaW50b0FjY291bnQ6IkNvbW1pc3Npb24gaW50byBhY2NvdW50IixDYXNoV2l0aGRyYXdhbDoiQ2FzaCB3aXRoZHJhd2FsIixXaXRoZHJhd2FsUmVqZWN0ZWQ6IldpdGhkcmF3YWwgcmVqZWN0ZWQiLFByb21vdGlvblJlYmF0ZToiUHJvbW90aW9uIHJlYmF0ZSIsc2lnbmlucmV3YXJkOiJTaWduLWluIHJld2FyZCIsVGVhbVNpemU6IlRlYW0gc2l6ZSIsQ3VtdWxhdGl2ZVJld2FyZHM6IkN1bXVsYXRpdmUgcmV3YXJkcyIsVG9kYXlUZWFtUmVjaGFyZ2U6IlRvZGF5J3MgdGVhbSByZWNoYXJnZSIsVGVhbVJlY2hhcmdlVGhpc1dlZWs6IlRlYW0gcmVjaGFyZ2UgdGhpcyB3ZWVrIixUZWFtUmVjaGFyZ2VUaGlzTW9udGg6IlRlYW0gcmVjaGFyZ2UgdGhpcyBtb250aCIsVGVhbVdpdGhkcmF3YWxUb2RheToiVGVhbSB3aXRoZHJhd2FsIHRvZGF5IixUZWFtV2l0aGRyYXdhbFRoaXNXZWVrOiJUZWFtIHdpdGhkcmF3YWwgdGhpcyB3ZWVrIixUZWFtV2l0aGRyYXdhbFRoaXNNb250aDoiVGVhbSB3aXRoZHJhd2FsIHRoaXMgbW9udGgiLHBlb3BsZToiUGVvcGxlIix0ZWFtTGlzdDoiVGVhbSBsaXN0IixnZXRDb21taXNzaW9uOiJHZXQgY29tbWlzc2lvbiIsY2hlY2tpbjoiQ2hlY2sgaW4iLFNpZ25pblRvZ2V0Q2FzaDoiU2lnbiBpbiB0byByZWNlaXZlIGNhc2ggcmV3YXJkcyIsY29udGludW91c0NoZWNraW46IllvdSBoYXZlIHNpZ25lZCBpbiBjb25zZWN1dGl2ZWx5In0sZShpLCJnZXRDb21taXNzaW9uIiwiR2V0IGNvbW1pc3Npb24iKSxlKGksIkRheSIsIlNreSIpLGUoaSwiU2lnbmVkaW5Ub2RheSIsIlNpZ25lZCBpbiB0b2RheSIpLGUoaSwiY29uc2VjdXRpdmVSZXdhcmRzIiwiQ29udGludW91cyBzaWduLWluIHJld2FyZCIpLGUoaSwiQ2hlY2tpblJlY29yZCIsIkNoZWNrLWluIHJlY29yZCIpLGUoaSwiR2Nhc2giLCJHY2FzaCIpLGUoaSwiTWF5YSIsIk1heWEiKSxlKGksIkJhbmtDYXJkIiwiQmFuayBjYXJkIiksZShpLCJBZGRPck1vZGlmeSIsIkFkZCBvciBtb2RpZnkiKSxlKGksImFkZEdjYXNoIiwiQmluZCBHY2FzaCIpLGUoaSwiR2Nhc2hBY2NvdW50IiwiR2Nhc2ggYWNjb3VudCIpLGUoaSwiR2Nhc2hBY2NvdW50RXJyb3IiLCJQbGVhc2UgZW50ZXIgR2Nhc2ggYWNjb3VudCBudW1iZXIiKSxlKGksIkdjYXNoTmFtZSIsIkdjYXNoIG5hbWUiKSxlKGksIkdjYXNoTmFtZUVycm9yIiwiUGxlYXNlIGVudGVyIHlvdXIgR2Nhc2ggbmFtZSIpLGUoaSwiYWRkTWF5YSIsIkJpbmQgTWF5YSIpLGUoaSwiTWF5YUFjY291bnQiLCJNYXlhIGFjY291bnQiKSxlKGksIk1heWFBY2NvdW50RXJyb3IiLCJQbGVhc2UgZW50ZXIgdGhlIE1heWEgYWNjb3VudCIpLGUoaSwiTWF5YU5hbWUiLCJNYXlhIG5hbWUiKSxlKGksIk1heWFOYW1lRXJyb3IiLCJQbGVhc2UgZW50ZXIgTWF5YSBuYW1lIiksZShpLCJTdGF0aW9uTWVzc2FnZSIsIlN0YXRpb24gbWVzc2FnZSIpLGUoaSwiU3RhdGlvbk1lc3NhZ2VBYm91dFVzIiwiQWJvdXQgVXMiKSxlKGksIlN0YXRpb25NZXNzYWdlQW5ub3VuY2VtZW50IiwiUGxhdGZvcm0gYW5ub3VuY2VtZW50IiksZShpLCJTdGF0aW9uTWVzc2FnZUhlbHAiLCJIZWxwIiksZShpLCJVTlJFQUQiLCJVTlJFQUQiKSxlKGksIlJFQUQiLCJSRUFEIiksaSl9fSxlY2ZlOmZ1bmN0aW9uKHQsbixhKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMDt2YXIgaT17b25MYXVuY2g6ZnVuY3Rpb24oKXt0LmxvZygiQXBwIExhdW5jaCIpfSxvblNob3c6ZnVuY3Rpb24oKXt0LmxvZygiQXBwIFNob3ciKX0sb25IaWRlOmZ1bmN0aW9uKCl7dC5sb2coIkFwcCBIaWRlIil9fTtuLmRlZmF1bHQ9aX0pLmNhbGwodGhpcyxhKCI1YTUyIilbImRlZmF1bHQiXSl9LGVkMjg6ZnVuY3Rpb24odCxuLGEpeyJ1c2Ugc3RyaWN0IjthKCI3YTgyIik7dmFyIGk9YSgiNGVhNCIpLmRlZmF1bHQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uZGVmYXVsdD12b2lkIDA7dmFyIGU9aShhKCI1M2NhIikpO2Z1bmN0aW9uIHIodCl7c3dpdGNoKCgwLGUuZGVmYXVsdCkodCkpe2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4hMDtjYXNlInN0cmluZyI6aWYoMD09dC5yZXBsYWNlKC8oXlsgXHRcblxyXSopfChbIFx0XG5ccl0qJCkvZywiIikubGVuZ3RoKXJldHVybiEwO2JyZWFrO2Nhc2UiYm9vbGVhbiI6aWYoIXQpcmV0dXJuITA7YnJlYWs7Y2FzZSJudW1iZXIiOmlmKDA9PT10fHxpc05hTih0KSlyZXR1cm4hMDticmVhaztjYXNlIm9iamVjdCI6aWYobnVsbD09PXR8fDA9PT10Lmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIG4gaW4gdClyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX1hKCJhYzFmIiksYSgiMDBiNCIpLGEoImQ0MDEiKSxhKCJkM2I3IiksYSgiMjVmMCIpLGEoImM5NzUiKSxhKCI1MzE5IiksYSgiNGQ2MyIpLGEoImM2MDciKSxhKCIyYzNlIik7dmFyIG89e2VtYWlsOmZ1bmN0aW9uKHQpe3JldHVybi9bXHchIyQlJicqKy89P15fYHt8fX4tXSsoPzpcLltcdyEjJCUmJyorLz0/Xl9ge3x9fi1dKykqQCg/Oltcd10oPzpbXHctXSpbXHddKT9cLikrW1x3XSg/Oltcdy1dKltcd10pPy8udGVzdCh0KX0sbW9iaWxlOmZ1bmN0aW9uKHQpe3JldHVybi9eMVszLTldXGR7OX0kLy50ZXN0KHQpfSx1cmw6ZnVuY3Rpb24odCl7cmV0dXJuL2h0dHAocyk/OlwvXC8oW1x3LV0rXC4pK1tcdy1dKyhcL1tcdy0uXC8/JSY9XSopPy8udGVzdCh0KX0sZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4hL0ludmFsaWR8TmFOLy50ZXN0KG5ldyBEYXRlKHQpLnRvU3RyaW5nKCkpfSxkYXRlSVNPOmZ1bmN0aW9uKHQpe3JldHVybi9eXGR7NH1bXC9cLV0oMD9bMS05XXwxWzAxMl0pW1wvXC1dKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKSQvLnRlc3QodCl9LG51bWJlcjpmdW5jdGlvbih0KXtyZXR1cm4vXltcKy1dPyhcZCtcLj9cZCp8XC5cZCt8XGRcLlxkK2VcK1xkKykkLy50ZXN0KHQpfSxkaWdpdHM6ZnVuY3Rpb24odCl7cmV0dXJuL15cZCskLy50ZXN0KHQpfSxpZENhcmQ6ZnVuY3Rpb24odCl7cmV0dXJuL15bMS05XVxkezV9WzEtOV1cZHszfSgoMFxkKXwoMVswLTJdKSkoKFswfDF8Ml1cZCl8M1swLTFdKVxkezN9KFswLTldfFgpJC8udGVzdCh0KX0sY2FyTm86ZnVuY3Rpb24odCl7cmV0dXJuIDc9PT10Lmxlbmd0aD8vXlvkuqzmtKXmsqrmuJ3lhoDosavkupHovr3pu5HmuZjnmpbpsoHmlrDoi4/mtZnotaPphILmoYLnlJjmmYvokpnpmZXlkInpl73otLXnsqTpnZLol4/lt53lroHnkLzkvb/pooZBLVpdezF9W0EtWl17MX1bQS1ISi1OUC1aMC05XXs0fVtBLUhKLU5QLVowLTnmjILlraborabmuK/mvrNdezF9JC8udGVzdCh0KTo4PT09dC5sZW5ndGgmJi9eW+S6rOa0peayqua4neWGgOixq+S6kei+vem7kea5mOealumygeaWsOiLj+a1mei1o+mEguahgueUmOaZi+iSmemZleWQiemXvei0teeypOmdkuiXj+W3neWugeeQvOS9v+mihkEtWl17MX1bQS1aXXsxfSgoWzAtOV17NX1bREZdJCl8KFtERl1bQS1ISi1OUC1aMC05XVswLTldezR9JCkpLy50ZXN0KHQpfSxhbW91bnQ6ZnVuY3Rpb24odCl7cmV0dXJuL15bMS05XVxkKigsXGR7M30pKihcLlxkezEsMn0pPyR8XjBcLlxkezEsMn0kLy50ZXN0KHQpfSxjaGluZXNlOmZ1bmN0aW9uKHQpe3JldHVybi9eW1x1NGUwMC1cdTlmYTVdKyQvZ2kudGVzdCh0KX0sbGV0dGVyOmZ1bmN0aW9uKHQpe3JldHVybi9eW2EtekEtWl0qJC8udGVzdCh0KX0sZW5Pck51bTpmdW5jdGlvbih0KXtyZXR1cm4vXlswLTlhLXpBLVpdKiQvZy50ZXN0KHQpfSxjb250YWluczpmdW5jdGlvbih0LG4pe3JldHVybiB0LmluZGV4T2Yobik+PTB9LHJhbmdlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQ+PW5bMF0mJnQ8PW5bMV19LHJhbmdlTGVuZ3RoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQubGVuZ3RoPj1uWzBdJiZ0Lmxlbmd0aDw9blsxXX0sZW1wdHk6cixpc0VtcHR5OnIsanNvblN0cmluZzpmdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpdHJ5e3ZhciBuPUpTT04ucGFyc2UodCk7cmV0dXJuISgib2JqZWN0IiE9KDAsZS5kZWZhdWx0KShuKXx8IW4pfWNhdGNoKGEpe3JldHVybiExfXJldHVybiExfSxsYW5kbGluZTpmdW5jdGlvbih0KXtyZXR1cm4vXlxkezMsNH0tXGR7Nyw4fSgtXGR7Myw0fSk/JC8udGVzdCh0KX0sb2JqZWN0OmZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxhcnJheTpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIEFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheSh0KToiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxjb2RlOmZ1bmN0aW9uKHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo2O3JldHVybiBuZXcgUmVnRXhwKCJeXFxkeyIuY29uY2F0KG4sIn0kIikpLnRlc3QodCl9fTtuLmRlZmF1bHQ9b30sZjg1MTpmdW5jdGlvbih0LG4sYSl7InVzZSBzdHJpY3QiO2EoIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5kZWZhdWx0PXZvaWQgMCxhKCI0ZDkwIiksYSgiZDNiNyIpLGEoImQ5ZTIiKSxhKCJkNDAxIiksYSgiZmI2YSIpLGEoImE5ZTMiKSxhKCIyNWYwIiksYSgiYWMxZiIpLGEoIjRkNjMiKSxhKCJjNjA3IiksYSgiMmMzZSIpLGEoIjUzMTkiKSxTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0fHwoU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydD1mdW5jdGlvbih0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06IiAiO2lmKCJbb2JqZWN0IFN0cmluZ10iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoImZpbGxTdHJpbmcgbXVzdCBiZSBTdHJpbmciKTt2YXIgYT10aGlzO2lmKGEubGVuZ3RoPj10KXJldHVybiBTdHJpbmcoYSk7dmFyIGk9dC1hLmxlbmd0aCxlPU1hdGguY2VpbChpL24ubGVuZ3RoKTt3aGlsZShlPj49MSluKz1uLDE9PT1lJiYobis9bik7cmV0dXJuIG4uc2xpY2UoMCxpKSthfSk7dmFyIGk9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToieXl5eS1tbS1kZCI7dHx8KHQ9TnVtYmVyKG5ldyBEYXRlKSksMTA9PXQudG9TdHJpbmcoKS5sZW5ndGgmJih0Kj0xZTMpO3ZhciBhLGk9bmV3IERhdGUodCksZT17InkrIjppLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSwibSsiOihpLmdldE1vbnRoKCkrMSkudG9TdHJpbmcoKSwiZCsiOmkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksImgrIjppLmdldEhvdXJzKCkudG9TdHJpbmcoKSwiTSsiOmkuZ2V0TWludXRlcygpLnRvU3RyaW5nKCksInMrIjppLmdldFNlY29uZHMoKS50b1N0cmluZygpfTtmb3IodmFyIHIgaW4gZSlhPW5ldyBSZWdFeHAoIigiK3IrIikiKS5leGVjKG4pLGEmJihuPW4ucmVwbGFjZShhWzFdLDE9PWFbMV0ubGVuZ3RoP2Vbcl06ZVtyXS5wYWRTdGFydChhWzFdLmxlbmd0aCwiMCIpKSk7cmV0dXJuIG59O24uZGVmYXVsdD1pfX0pOw=="}},"time_used":1114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":1114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null},{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/js/pages-checkIn-CheckInRecord~pages-checkIn-checkIn~pages-index-index~pages-index-list~pages-index-mai~cbbde680.a8d8becf.js","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:06.941Z","timestamp":1785143526941,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/js/pages-checkIn-CheckInRecord~pages-checkIn-checkIn~pages-index-index~pages-index-list~pages-index-mai~cbbde680.a8d8becf.js HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: application/javascript\r\nlast-modified: Tue, 09 Jun 2026 09:23:16 GMT\r\nvary: Accept-Encoding, Accept-Encoding\r\netag: W/\"6a27db84-ed4a\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\ncontent-encoding: gzip\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":60746,"size_decoded":34890,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (59648), with no line terminators","md5":"dcc5a3963eee31b5089f9585da727c07","sha1":"e0e7df39be0162a8183ab3889ad040194f879abe","sha256":"f30d8e39fc27ad29b15fd8fa8c5c799a59038c0948f773d06ebbd12649a6ba27","sha512":"c0b00be157c0e64668a2853a81f9f5b6a9522584ba0b58e60a5bd1316bff8a778074ab39242b4988057c48a7eab6b931cd4eeb330a2904649e217e07f19795ac","ssdeep":"768:TIFZpYdqUgQnKb6QWm4AmCd0tG8e+W1MAbu7N8ChEAh8sd0Q2Z7wXubeNDtfDsS2:0FjCrsYId0FHoMqu7NdEAaM2Oce/Z2","tlshash":"f353eae6f20d1cd13bffc94b6344634e7991b726d8a42c28f167164c4ef33a621997a8","first_seen":"2026-07-17T10:51:36.446639Z","last_seen":"2026-07-27T14:18:45.088762Z","times_seen":4,"resource_available":true,"data":"KHdpbmRvd1sid2VicGFja0pzb25wIl09d2luZG93WyJ3ZWJwYWNrSnNvbnAiXXx8W10pLnB1c2goW1sicGFnZXMtY2hlY2tJbi1DaGVja0luUmVjb3JkfnBhZ2VzLWNoZWNrSW4tY2hlY2tJbn5wYWdlcy1pbmRleC1pbmRleH5wYWdlcy1pbmRleC1saXN0fnBhZ2VzLWluZGV4LW1haX5jYmJkZTY4MCJdLHsiMTNjNCI6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvKCI3YTgyIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDAsbygiYTllMyIpLG8oIjE0ZDkiKSxvKCJjYWFkIiksbygiMjUzMiIpLG8oImM5NzUiKTt2YXIgbj17bmFtZToidS1pY29uIixwcm9wczp7bmFtZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiIn0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LHNpemU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6ImluaGVyaXQifSxib2xkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saW5kZXg6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6IiJ9LGhvdmVyQ2xhc3M6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiJ9LGN1c3RvbVByZWZpeDp7dHlwZTpTdHJpbmcsZGVmYXVsdDoidWljb24ifSxsYWJlbDp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDoiIn0sbGFiZWxQb3M6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6InJpZ2h0In0sbGFiZWxTaXplOnt0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OiIyOCJ9LGxhYmVsQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6IiM2MDYyNjYifSxtYXJnaW5MZWZ0Ont0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OiI2In0sbWFyZ2luVG9wOnt0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OiI2In0sbWFyZ2luUmlnaHQ6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6IjYifSxtYXJnaW5Cb3R0b206e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6IjYifSxpbWdNb2RlOnt0eXBlOlN0cmluZyxkZWZhdWx0OiJ3aWR0aEZpeCJ9LGN1c3RvbVN0eWxlOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSx3aWR0aDp7dHlwZTpbU3RyaW5nLE51bWJlcl0sZGVmYXVsdDoiIn0saGVpZ2h0Ont0eXBlOltTdHJpbmcsTnVtYmVyXSxkZWZhdWx0OiIifSx0b3A6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6MH0sc2hvd0RlY2ltYWxJY29uOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0saW5hY3RpdmVDb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiI2VjZWNlYyJ9LHBlcmNlbnQ6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6IjUwIn19LGNvbXB1dGVkOntjdXN0b21DbGFzczpmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiBlLnB1c2godGhpcy5jdXN0b21QcmVmaXgrIi0iK3RoaXMubmFtZSksInVpY29uIj09dGhpcy5jdXN0b21QcmVmaXg/ZS5wdXNoKCJ1LWljb25mb250Iik6ZS5wdXNoKHRoaXMuY3VzdG9tUHJlZml4KSx0aGlzLnNob3dEZWNpbWFsSWNvbiYmdGhpcy5pbmFjdGl2ZUNvbG9yJiZ0aGlzLiR1LmNvbmZpZy50eXBlLmluY2x1ZGVzKHRoaXMuaW5hY3RpdmVDb2xvcik/ZS5wdXNoKCJ1LWljb25fX2ljb24tLSIrdGhpcy5pbmFjdGl2ZUNvbG9yKTp0aGlzLmNvbG9yJiZ0aGlzLiR1LmNvbmZpZy50eXBlLmluY2x1ZGVzKHRoaXMuY29sb3IpJiZlLnB1c2goInUtaWNvbl9faWNvbi0tIit0aGlzLmNvbG9yKSxlfSxpY29uU3R5bGU6ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZT17Zm9udFNpemU6ImluaGVyaXQiPT10aGlzLnNpemU/ImluaGVyaXQiOnRoaXMuJHUuYWRkVW5pdCh0aGlzLnNpemUpLGZvbnRXZWlnaHQ6dGhpcy5ib2xkPyJib2xkIjoibm9ybWFsIix0b3A6dGhpcy4kdS5hZGRVbml0KHRoaXMudG9wKX0sdGhpcy5zaG93RGVjaW1hbEljb24mJnRoaXMuaW5hY3RpdmVDb2xvciYmIXRoaXMuJHUuY29uZmlnLnR5cGUuaW5jbHVkZXModGhpcy5pbmFjdGl2ZUNvbG9yKT9lLmNvbG9yPXRoaXMuaW5hY3RpdmVDb2xvcjp0aGlzLmNvbG9yJiYhdGhpcy4kdS5jb25maWcudHlwZS5pbmNsdWRlcyh0aGlzLmNvbG9yKSYmKGUuY29sb3I9dGhpcy5jb2xvciksZX0saXNJbWc6ZnVuY3Rpb24oKXtyZXR1cm4tMSE9PXRoaXMubmFtZS5pbmRleE9mKCIvIil9LGltZ1N0eWxlOmZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGUud2lkdGg9dGhpcy53aWR0aD90aGlzLiR1LmFkZFVuaXQodGhpcy53aWR0aCk6dGhpcy4kdS5hZGRVbml0KHRoaXMuc2l6ZSksZS5oZWlnaHQ9dGhpcy5oZWlnaHQ/dGhpcy4kdS5hZGRVbml0KHRoaXMuaGVpZ2h0KTp0aGlzLiR1LmFkZFVuaXQodGhpcy5zaXplKSxlfSxkZWNpbWFsSWNvblN0eWxlOmZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGU9e2ZvbnRTaXplOiJpbmhlcml0Ij09dGhpcy5zaXplPyJpbmhlcml0Ijp0aGlzLiR1LmFkZFVuaXQodGhpcy5zaXplKSxmb250V2VpZ2h0OnRoaXMuYm9sZD8iYm9sZCI6Im5vcm1hbCIsdG9wOnRoaXMuJHUuYWRkVW5pdCh0aGlzLnRvcCksd2lkdGg6dGhpcy5wZXJjZW50KyIlIn0sdGhpcy5jb2xvciYmIXRoaXMuJHUuY29uZmlnLnR5cGUuaW5jbHVkZXModGhpcy5jb2xvcikmJihlLmNvbG9yPXRoaXMuY29sb3IpLGV9LGRlY2ltYWxJY29uQ2xhc3M6ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gZS5wdXNoKHRoaXMuY3VzdG9tUHJlZml4KyItIit0aGlzLm5hbWUpLCJ1aWNvbiI9PXRoaXMuY3VzdG9tUHJlZml4P2UucHVzaCgidS1pY29uZm9udCIpOmUucHVzaCh0aGlzLmN1c3RvbVByZWZpeCksdGhpcy5jb2xvciYmdGhpcy4kdS5jb25maWcudHlwZS5pbmNsdWRlcyh0aGlzLmNvbG9yKT9lLnB1c2goInUtaWNvbl9faWNvbi0tIit0aGlzLmNvbG9yKTplLnB1c2goInUtaWNvbl9faWNvbi0tcHJpbWFyeSIpLGV9fSxtZXRob2RzOntjbGljazpmdW5jdGlvbigpe3RoaXMuJGVtaXQoImNsaWNrIix0aGlzLmluZGV4KX0sdG91Y2hzdGFydDpmdW5jdGlvbigpe3RoaXMuJGVtaXQoInRvdWNoc3RhcnQiLHRoaXMuaW5kZXgpfX19O3QuZGVmYXVsdD1ufSwiMWU4ZCI6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSksby5kKHQsImMiLChmdW5jdGlvbigpe3JldHVybiBpfSkpLG8uZCh0LCJhIiwoZnVuY3Rpb24oKXt9KSk7dmFyIG49ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZS4kY3JlYXRlRWxlbWVudCxvPWUuX3NlbGYuX2N8fHQ7cmV0dXJuIG8oInYtdW5pLXZpZXciLHtzdGF0aWNDbGFzczoidS1pY29uIixjbGFzczpbInUtaWNvbi0tIitlLmxhYmVsUG9zXSxzdHlsZTpbZS5jdXN0b21TdHlsZV0sb246e2NsaWNrOmZ1bmN0aW9uKHQpe2FyZ3VtZW50c1swXT10PWUuJGhhbmRsZUV2ZW50KHQpLGUuY2xpY2suYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fX0sW2UuaXNJbWc/bygidi11bmktaW1hZ2UiLHtzdGF0aWNDbGFzczoidS1pY29uX19pbWciLHN0eWxlOltlLmltZ1N0eWxlXSxhdHRyczp7c3JjOmUubmFtZSxtb2RlOmUuaW1nTW9kZX19KTpvKCJ2LXVuaS10ZXh0Iix7c3RhdGljQ2xhc3M6InUtaWNvbl9faWNvbiIsY2xhc3M6ZS5jdXN0b21DbGFzcyxzdHlsZTpbZS5pY29uU3R5bGVdLGF0dHJzOnsiaG92ZXItY2xhc3MiOmUuaG92ZXJDbGFzc30sb246e3RvdWNoc3RhcnQ6ZnVuY3Rpb24odCl7YXJndW1lbnRzWzBdPXQ9ZS4kaGFuZGxlRXZlbnQodCksZS50b3VjaHN0YXJ0LmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX19LFtlLnNob3dEZWNpbWFsSWNvbj9vKCJ2LXVuaS10ZXh0Iix7c3RhdGljQ2xhc3M6InUtaWNvbl9fZGVjaW1hbCIsY2xhc3M6ZS5kZWNpbWFsSWNvbkNsYXNzLHN0eWxlOltlLmRlY2ltYWxJY29uU3R5bGVdLGF0dHJzOnsiaG92ZXItY2xhc3MiOmUuaG92ZXJDbGFzc319KTplLl9lKCldLDEpLCIiIT09ZS5sYWJlbD9vKCJ2LXVuaS10ZXh0Iix7c3RhdGljQ2xhc3M6InUtaWNvbl9fbGFiZWwiLHN0eWxlOntjb2xvcjplLmxhYmVsQ29sb3IsZm9udFNpemU6ZS4kdS5hZGRVbml0KGUubGFiZWxTaXplKSxtYXJnaW5MZWZ0OiJyaWdodCI9PWUubGFiZWxQb3M/ZS4kdS5hZGRVbml0KGUubWFyZ2luTGVmdCk6MCxtYXJnaW5Ub3A6ImJvdHRvbSI9PWUubGFiZWxQb3M/ZS4kdS5hZGRVbml0KGUubWFyZ2luVG9wKTowLG1hcmdpblJpZ2h0OiJsZWZ0Ij09ZS5sYWJlbFBvcz9lLiR1LmFkZFVuaXQoZS5tYXJnaW5SaWdodCk6MCxtYXJnaW5Cb3R0b206InRvcCI9PWUubGFiZWxQb3M/ZS4kdS5hZGRVbml0KGUubWFyZ2luQm90dG9tKTowfX0sW2UuX3YoZS5fcyhlLmxhYmVsKSldKTplLl9lKCldLDEpfSxpPVtdfSw0NzY3OmZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1vKCIyNGZiIik7dD1uKCExKSx0LnB1c2goW2UuaSwnQGNoYXJzZXQgIlVURi04IjtcclxuLyoqXHJcbiAqIOi/memHjOaYr3VuaS1hcHDlhoXnva7nmoTluLjnlKjmoLflvI/lj5jph49cclxuICpcclxuICogdW5pLWFwcCDlrpjmlrnmianlsZXmj5Lku7blj4rmj5Lku7bluILlnLrvvIhodHRwczovL2V4dC5kY2xvdWQubmV0LmNu77yJ5LiK5b6I5aSa5LiJ5pa55o+S5Lu25Z2H5L2/55So5LqG6L+Z5Lqb5qC35byP5Y+Y6YePXHJcbiAqIOWmguaenOS9oOaYr+aPkuS7tuW8gOWPkeiAhe+8jOW7uuiuruS9oOS9v+eUqHNjc3PpooTlpITnkIbvvIzlubblnKjmj5Lku7bku6PnoIHkuK3nm7TmjqXkvb/nlKjov5nkupvlj5jph4/vvIjml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tu+8ie+8jOaWueS+v+eUqOaIt+mAmui/h+aQreenr+acqOeahOaWueW8j+W8gOWPkeaVtOS9k+mjjuagvOS4gOiHtOeahEFwcFxyXG4gKlxyXG4gKi9cclxuLyoqXHJcbiAqIOWmguaenOS9oOaYr0FwcOW8gOWPkeiAhe+8iOaPkuS7tuS9v+eUqOiAhe+8ie+8jOS9oOWPr+S7pemAmui/h+S/ruaUuei/meS6m+WPmOmHj+adpeWumuWItuiHquW3seeahOaPkuS7tuS4u+mimO+8jOWunueOsOiHquWumuS5ieS4u+mimOWKn+iDvVxyXG4gKlxyXG4gKiDlpoLmnpzkvaDnmoTpobnnm67lkIzmoLfkvb/nlKjkuoZzY3Nz6aKE5aSE55CG77yM5L2g5Lmf5Y+v5Lul55u05o6l5Zyo5L2g55qEIHNjc3Mg5Luj56CB5Lit5L2/55So5aaC5LiL5Y+Y6YeP77yM5ZCM5pe25peg6ZyAIGltcG9ydCDov5nkuKrmlofku7ZcclxuICovXHJcbi8qIOminOiJsuWPmOmHjyAqL1xyXG4vKuWFqOWxgOS4u+mimOiJsuiwgyovXHJcbi8qIOihjOS4uuebuOWFs+minOiJsiAqL1xyXG4vKiDmloflrZfln7rmnKzpopzoibIgKi9cclxuLyog6IOM5pmv6aKc6ImyICovXHJcbi8qIOi+ueahhuminOiJsiAqL1xyXG4vKiDlsLrlr7jlj5jph48gKi9cclxuLyog5paH5a2X5bC65a+4ICovXHJcbi8qIOWbvueJh+WwuuWvuCAqL1xyXG4vKiBCb3JkZXIgUmFkaXVzICovXHJcbi8qIOawtOW5s+mXtOi3nSAqL1xyXG4vKiDlnoLnm7Tpl7Tot50gKi9cclxuLyog6YCP5piO5bqmICovXHJcbi8qIOaWh+eroOWcuuaZr+ebuOWFsyAqL1xyXG5cclxuXHJcbi8qIOaUr+S7mOWune+8jOeZvuW6pu+8jOWktOadoeWwj+eoi+W6j+ebruWJjeivu+WPluWkp+eahOacrOWcsOWtl+S9k+aWh+S7tu+8jOWvvOiHtOaXoOazleaYvuekuuWbvuagh++8jOaVheeUqOWcqOe6v+WKoOi9veeahOaWueW8jy0yMDIwLTA1LTEyICovXG5AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnVpY29uLWljb25mb250O3NyYzp1cmwoLy9hdC5hbGljZG4uY29tL3QvZm9udF8xNTI5NDU1X2s0czZkaTFkMS5lb3Q/dD0xNTk2OTYwMjkyMzg0KTtcclxuXHQvKiBJRTkgKi9zcmM6dXJsKC8vYXQuYWxpY2RuLmNvbS90L2ZvbnRfMTUyOTQ1NV9rNHM2ZGkxZDEuZW90P3Q9MTU5Njk2MDI5MjM4NCNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgiZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtd29mZjI7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R01nQUJBQUFBQUdRWUFBc0FBQUFBdzJnQUFHUEVBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhFSUdWZ0NkQUFxQ3YzU0IvWEFCTmdJa0E0Wm9DNE0yQUFRZ0JZUnRCNWNORytPZmRZYWN4d0VBOWVZekVxSGJBYVhDK1pGWldTOG9LVHI3LzA5TEttTnN1N0RkRUVWTDA0SmtTdGdaeU9LWi9JTFEySnpRb29ZK08ybWxEbTg4Y3dwcnRJVUpSWW9WcDhxMU1FZTFPdy9XSVVqVU5mbk5IOUhKVjVtOTJrVzhkbmovM3BFaEI4YVNnUis0a2oyNHlPZXZQemYvaXgydDVJajc5RkhKQXNkNUVGSjJFb0J5VVpQTkh0V1oxVlV3OFRDS05zUHpjK3Y5L1dWUUk4ZEdqaHBzUk1rU1JnL1lSaW1NR2lEaENCa0l5Z2dGTE1BekFBc1ZBL0JPakFKVXJCTVZGVGs5UFFVUEswRDBybzFSRU0vNGJjazBHakdMTUJLd096RXFNRHJtLytETnZ3RUFoVHNvQUFrb1lHcEI3ZTRMTUlucTRaN2QyL2xTSG1ya2lWQ293Z0ZPR0MvNEJqTGRqcVpCTUs5ZmtXbUVKcGdLZ3g4RUs5bkFQRVBPazMwcE5DTHEwQmxTS05MZXhEcnZGbkwvRUJjS2xCLzJZUHFsem05MnJNQktieFd4SVhhY0QwVGRNVFRsbFRkZmJ0V25rRXRWZ0JVYVZrVzZlNm9xTFN2Z3E4NGx1VmF1SlVHYU1RZzI0MENQbUVUZSs4ZS90WmFiVHpIWnZXdFp5Y29xSEgvL0JRQkZGSnZZZzZjU0NBUEswUC9sVmlWdmJtVFdJekRpME4wckxqZG9Wa3lPWEpJclhKTWcxaEpJcFlKcHV3TDlxMnJlbnNTT2RGcTdyZmF2MjlrUjNMRWdXRDFSMDhoMjd0anhNYXVSV3FrMXlBcVF4SUVueHdrL2s5WHZwNG1OSjV1SkxTaEFlUDllYmF0VVkwbmFDZ1cwVUlUaDU5YXpPcXFvYm9NVDM1ayt3VTVNVjZCQy9xV3FKNVVuQTl2dEhRbGZuT1lYSDBFR3FBdVdUOW8vdUNJL1I2cUg1SkZiMjFyKy8zbUtDMmozZnpseVBhUVNsQ2ttVGdoZEJ1ZUZQT0lnSXVEL3BqVjd1U1ZVdFJKSDNyMVFpNzkzeWlFUmJ2ZlBuMWttZnllNTBqK2h0K3hSYWtLZFhXcFJ5RmFFVzJwM3ZncUR4NWttVVY1Qy9jZU44ekRCQmFFL0p3K2N1MHJWK29LbU5tUnE4OFgwaS9XM3E3YitsMzczK2t6UGtCWUdJQ1VDa0dpQ1ZJSW8rd1RLZ1FCbEYwRTZCWElqcGZQbDlJb1JJQjBJMG5zRlVBNmtmQUhjS0c2VzkvSnJOMS9NejVDZTkvamMrMzI3cnlWb0tzczE0dnovYVZ0RUZHSnhLQTZ6dzlpc0FjdlFzVUxsbUNJQ01rU01yN3k4SDV2LzNIN0hLc1JJc0lFN0pOUjB2NjhPbGErTmlkUFhnWUs3ZDR5NS9rVHJ4MVlpSDNBQ0hZNzIxUHBQRXdCNTJhb3BOUCsyNzI0a3BIaFNBSVR4djFGRGpIenBnRHpaTXNDQ29DZXZ6QTRaZE51R3dXYXViMkpzT3I1LytHZlRBaGJJUUVYeHpNNGpXd3czNjNjd2NCZkQzN0NEdG9iaGRYMjQxd01pb0NheVZXNCtiWTBOaVlldWVSQis5cmtOalpQUjNTekRtUHkrRFp1QWlwRURKOTVzcnZYMSsvVkhaNzNrbS9DdC9wMnV0TlNWcHF1ODJocUNCQXVaTnErOEFUbVZmSlZXV0hlWWJ3Uy8wNHRQVE0vdXdueDUvV3JaeVZXNUs1b1RvM05WcVBtMTRtMkJNalRlbW11OXJkZHp1ekxmZTN0YjduTVB1SWVhRDR3YXVtTjM0djhkVDFsamlndDVqSUVuNENsNEJwNkQ1cmE5QUczTmNQZmVkRjFOTnN4TFVKdVh6cU5qSFhzRnhua043aC9mZW1MblZHL0EvbjExWVhqcm1xT2R0MkM4Q1hJcnRHZEhKVGZCdTJDbTk4RDdJSzg3b0kwUHdZR1RCN2QvQktib29MS0QrY1JwNzJQd0NmZ1VQSmp0TXpETjVvY1RWUkd2czZaYStCeDhBYjRFcmJTMjZ5c3d5S0ZKbWhtbGdBSjdSeGhwc0hweW5lNm11eDdPOU5STEY3MzEwVmRML2ZRM1FCbGs5bGdzclRCUElWYW9ITkRRTWRSWm9EaFRadENZTEpoRGdPa3R0RWdPaGlWWmpjdVdyMWk1cWlTaTFqV2xyRjIzZnNQR29hcnFQZEpRbVBhQXpRZWZnSzhzWjgrZEgrakN4VXVYcjF5OWR2M0d6VnUzN3pUV1JBWCtBZ1FLRWl4RUtGZGNidHg1QUlOeUdqZ1dZSFQ5dnZaZklEQ3FneWxBRUQ0V0FxT0FZSHdDaE1TblFDaDhCb1RHNTBBWWZBR0V4VmFFdzUzQzQwc2dBbllnSXM0bUV0NFRHZStMZ3JPSWlqMklodE9JamlPSmdhK0FUTEEya0NuV0FUTEQ3VExINDdMQUNjVEVFN0xFMTBCV09KR3M4UTJRRFQ2UUxaNlVIZTRRQzAvSkh2ZUlqVE9JZzIrQkhQQ2dIUEdBbkxBdWtETkdBTGxnUFNCWDNDY3V6aWMzN0VqdStBN0lBeWVSSjA0bUw0d0U0dUY0OHNaYytlQnU4YkVTa0FEZkEvbmlCeUEvbkVQKytCRW9BRDhCQldJMFVCQitCZ3JHOWhTQ1g0QkM4WkFXNFdtRjRXRUpjWmRFK0JWSWpOTkpncDFKaXBXQlpIaEc0UmdERklGZFNJNmRLQksvQVVYaGQ2Qm8vQUVVZ3c4VmkvTW9EbjhDeGVOTVV1QTJKZUFqSmVJVVNzSXFRRXJzU2lyc1Jtck1vV1JzVFNuNEN5Z1Zmd09sNFIrZ2RHeExpN0VkTGNHOXlzQy9RSm1QTncwZVVSWk9wV3hzU1RrNGxuSXhEaWdQeDVFVzl5di9uRlhncU5ENVhVdGhmYUFpSEVYRmVGWWwySk5Lc1JjdHc5Nmt3M01xd3o1VWpuMnBBcnRUSmZhajVkaWZxbkFBNmJFTlZlTkFxc0ZCdEFJSFV5MldCYXJEZUtDVldBNW9GYVlDMVdOSklBTXVvQVpjU0kyWUFOU0VwWUNhTVJGb05WWUVXb05KUUMyWUROU0toWURhY0JHdHhjVzBEZ3NEcmNjaVFCdXdLTkJHREFkcXh4SkFIVmdjcUJPTEFXM0NZS0FmTUFSb004NmxMYmlFdHVKUzJvWmhRRDI0VE50eHVYWmdLRkF2cnRBZVhLaytYS1g5dUZvSGNJME80bG9kd3RKQS9SZ0xOSURyTklqck5ZUmxnSTdpQmgzRGpUcURtM1FXTjJzWXQyZ1VSOUF2V0JYb0JSN1ZPenhtUG96TmdmbEliQUhNeDgydFBid1pKRk96dkp6TU5EbWI2Zkl5TThRM001VmdEbGVyZVY0UHpBdjYzYnlvNTNBSUN4THdrZ1Vxdkd5QmVsNVJxWGxWT3ZPYXlzM3JXbUhlVUsxNVV3M21MYTAyODlSaTNsYWJlVWRyemJ2NnljelNGVE5iLzhNS3dJQWNHd0FES213SURPVE9Sc296RzB0ck5sRysyVlFWWmpOVm10VlVZMWJYQ3JPRzFwazF0Y0VmYXdINEQyRFFkWVAvTjIwU21EMHp2dUcva3VoaFNkQi9mejBJRWhZYUhtclR5TkdIZ3BIRGFVUXlFdnlsRWlQaHB2QXNnQWRjVXFEaEJBempveERCYW1XV0hFWExSVWszelFJeEpuUnFjV2FOQzFBbWhJcEFBVnlhQTdocEhsQVBUQUVzRUFpa1BrdUY0QXJBYkU0TktFTlJWN29GQXp0YUdwa3lMaW9KZmJGM2NiUU5vNkZibEJnSCt4Z1VlMWdSRFZaakUwaCtqbUZLT0ExWkgyYUdxVW8xQ051VExkcmV3bDZnNWdUb2orZFJTMGNrWjVKeU53ejVWZ3VoMldhMHRLamova0owUGk4UTh5UGxUb2NybnE0aEVhM0ZDRG9jS1lzdWJROWpraXg2T01sS1FWU0t6WmhNZnlVUCtoaDhMcHNRUGF4TmdSaHVqSTVZcE10aW5aNDQxNGVTTmVCYncxTHM2R3AyYW1nSWpqdW5hcHhaZ1NQS0xLZVhZMUJCaXoza3hGalpMQ21HcmQyMGZhdjRsdldvQ0ZpRjBpN0gvckJQUHhjYlRYbXBmZmNFaTBlbjlhNFRyWjNiMjkyNTBteUhhWXJFYlhKMklRSWJLcDYxRllKVDhNeFNHZGVkSnNGdVZlMjE2MnFzY25aYnU5M2RIYjlkdHQvdEh4T1NtaHdVNGxpWEtCNnNUaFpkYnFaQjY4U1VHRklVSE85aEM0VjkzMVMybVc0Mm03QitTL0VFZ1lLVUphc2x1TUNLZ1dHMHN5TnEwMW1MTEltZUtYK0NRZWRoMGdFOFBRMW9hakJyZzFVcWd1SGZMQkk0Zkx2RUhUTnFRMDFyWnEvMUozOW9ubWVtNVhGRzJQbUZYRE4vZjdDOFpsL0NxNlgrQ1pKbHNob25KRHNyRS9BSXUwRU1DOXNHbFRRc0xyZ3E0dlZNTGRoNU5LZ080ckMvUUdhS1dHSWFjT3c4bDVSdU9nY2Noa01IMSs5MElPYS8yTithenJBQ2pMRXZ3TlpzaXQwVUY3QmNvUldDYks2N0ZMdDI0VjBUUGJnY3hHMzlRTmsxdVVOS0dQUlpjUzdZN0o1a3RabGp3eDRBVEx5d214cGg3aEhxdlBOZmsrR2RwUHdRTk1nUXdYUVlPNTRNWmlpd3VSUUUyeEF3T1FnT0FxR2dFL1JRbDUrRmZGN2VEWWZtMmpGSWh1dW96OVhUaGRBRGJJQ0JmR3MxclRrZmJDdENFaHhDNUZFaEZkQThJNjh4eEIzZkRGVTlKWmpScVVNTktjUGxYRDdwQ200c0lIOHEyMHBuZ0pSRXJWZlQySWFoZis4WDhMdmczQU9Cc090d3Vldkp4ZVhtMlNZdkFibWxiRGtFeFhQUU5ESVdUYWRVQUVhOThycWlvUDJSTkFzTHlsQllBTUVIcUpnQlZnYUxwZ3pNSGJqYkJBMkwzOXdFcEVYanpDWTdzMDBXMUxnVDFFd1J4U2pqeG9KL29Gb0tqSFBPTjVhRGZlZGhYbDhkbWNrTzF1SU4xMGoxSEZteXhkMlNGT25DMFZoOWtWS3dyQUdKcjBPdUdsWXBZcXVKcnhZdFEybWx6ekdWY1ZDTDhzd0tHa1RRNjRrYWdGOGoxMDBXNzE4UThWb3BDb3BqSzZDNGk2ODlVUksyMEErSUpuUXV6WE1tUjUycFdZWE05SHBpMDRiYmJ1alhYa3lJNHJOVmFBV2tLU0RYT1JESnUvN3owcGlyRnMxa0VtUXpYcFQ2Y2ZqRVVHYmE1dGhCZXU1L2NWdGIza0lOWE85M3NOZUdsWGRXRHFXOEhmZTZvc0N3Q29xcngyVytZN3VPa1ZBNWxMS2xHRkJxaUlURXcvRlZQSXpPNG9MVkc1RklOMFJOQnVWMW5HaDdKTVBaVFhWNUhvNEhqdGpLVUVyc0Z0eFU2UUF3VEZ2RnRkQ3JEeS92anRkUjF5RnlxN0w1OVhjVm5mRytSeDhmTnVnekc1bjRoU1I4ZGZWeFF0T1BMWG5WM1U3dHlweUhSeThLdlVyRWl6QUdvb0FCSmJPaElLYmZKcGpHTVZoM1V0VFA3ekdLMXJJUlpmVGIzTHN3MXIybUM0STZRdEtjNmNGeE9qMGdKaThkb0p6M2h0M1Fma0pKMXdML2tBR2hjelBFeUY0MVkyVkduMUk1cGM1MWQvNm92ZFdsL1IrK1B6amJIcTFQSDhhZ1RZV1h2REtGallsUXR4L2dpb3U5S2lqYzNENTFSeTlDWmdxWm9xMlNSaFZud1psWlJSUmdCbWt2bGdCVWw5YUlrNEVZejBMZDMxVVNidUJyQXVYMmNIUkxxTGt2YUIvRVF0L2RoQWh1U3ZJK2xXc1JTRXZVV0MxZUZOSTlWQldvOEJ5VkJiY1BoQ01weDljc2Zsb0dvSVlXZGFiejFxQzE1cEttNUdjU1lLRHlCWlBEYmRyVTZva2JXTC9HMDRjbWtxTEs3bmE0SlczbVR0U1ExbHA0S3psZE9nN1ErN0ozWUVKd3Yvd3V1cnU1Yk5rU2V2YngwWDRwanlhTHh6VElGcGIyYlRDbFRhWUFLNVZEVTRnd0lRMG9hTUpnc2NYcE10U1FQV1NKbkZscVNZSFVRakhHT0dSS1VIOE8zNmNOcjkrU29OS2pzNVh4U0o1S3krbjJGUzNqOGNlcHlJQmtTekNuSC9LMDdzNnBtWGl6YW1WLzdVVU9nRUpEQnFSQnFIT3lnWEJJSVZId1Zvb1JXQzdxQkl6UE11eGVEdVU1Yk1XdnQzVjhBcDUxUk5WTUkrZ2hPR25HaG9rN3Q3NVFEYmZYK2hsVnI3S1hBOTNzU1VVdmRWcThnNGhNa3RYOHVpWHJrZFd5am1hd2t3blJPaloveVdTT1JIVDFrWk9lT1U5MThsREVtMDhmbWs1ZlFvdk9adzQ4bjZsQjBKd2llalBDVlFITnkrWWkzblN0Uk5kUllzazMvS0NkeXpET0JQZFQzUmNTRVdUbk1oYzFLdHVBSmVOQ0V4Q3d4YnZTRWQrRVdTTHBxQW9rcEJSRHliSUx3MEdXSjVXSUNMVXhuclUzdjcwWkpGUTZzbldlSktlakJ5a1hEWFJLN3BvQlJNeEs5NnJldXZtOVNQSS91RlZHK0xleUwxd0lpRmRKRkFvYlZVNHNJVHNFalNrVnZaU3Q5aEZQRkFtQ01HZlBXbytXcmtSbTFqL0lDTHVLcmhqUE1RQ0F4UVRLUldNamNSbG9Rb0FyVVl0QTlMcnp0aWJIa05PN2tnZnQzeGduTkYxREdpeFdjT0NrL2U2RHVWZUwzN3N0dWNSVktBLzh0anNUaWFYbFp1N3NvWDhueVMvOFNtdVZSbWRyVmxsY2NMS0dFTjd2cUNydGNjenYxNGpmbVZ5UXlrQWYzaWcxR1RvMU04RnpoWHdSU096WndwbnM0TGxvRzkrU3lIUWdwVnhLNUxjR1ZlVjZwVVF1SkRWNlVxWlA1TWtvSU8wL0pBS0QvbXpnTkhsQ3ZuZ2VGV1ByWUlpR1RjVzlTRUF3UEZKR1o2VEYrZmdyVkJaanNMa0I4b1RiQVVPRFhBLzd0K2VLUWlEdGRlVnBXT0NxMDZuajlOWkVtUWlvN1VDN29ja2VBbTJKWXlRUWFhTmo4TWJNb1pxeVQ0UzQwQlVoSjV1d1F5dzNPZXBPVzFRMnJJVHQxSGczZUN1WUVEdURUbElpRW9ZU01TalNWSGp1M3JLOFVqMi9rUGZJNzJyZUVFbjVENzdUc3lSejQ2cmI0RndjNDlxZXYyTnNST1dTSGZtbUh4Mzdicml1WER0WlBXYkZhSWFMcmNkY1VKbkgxVTJHOGRrazI0dFZoalJlSGUzckN3aHNTdHh4bzZwMXFaNUxXK3Uxa3ZEK0RUc3JGZzREZGZ5UUNyVER1emRIT3o2RE5vV3lxWE9vbmNEOEtMVCtDOHBOaXFFMERkZXlUcHFkNnoyQ0puNWpCdThtenNYUUE0VTBzcHdPa3JWNlZhWUUzKzhndUlLZzBrQUQxeUpvaDYvdlJ0Q3BLSHBmRnhLbGhqSTVQbE01Tms2bER1UVVQSWtOZEVXYVhrL2k5dGRXRHBwc3lUc005dDI5eStzQTdCdFlIRVI1cTJnYk9ZdlJ0bVpqYkxnbmdoS21IZVNYS2hyS0d6bk83djFFZzdqbXZxNHN2bzFXbDAvRTIwdEg5cUd5eDVlZVZKdHIyNzVlcXJqUlBWY3BseHgxUDdDcTVXN3MwRlAvbHNVOGhNM3FSTk55bFRCVHduYlliYzBhNStsZEI1TThVeHp5VjBWUTJyMldnNHpmeFIzR0JNR29uNVQzNmRDVE1zWDRHaXFGLzJ3WGszT2hVSlI2Z3RkQjE5ekJ3T0Y1TDd6aC84cks4ZFNCOHJKR29sWXFqVG1lKzE3dVFEWTd0bC9yTE1pUittSndxRVViUzA5YTU1eW8ycjRRUkZDMjd0Z2FteHh3Q1hySFcyT2pLd3d5Wmh3SlZrUUhvak9NaENiVitPdEV4QnpxV3oxNDRiSUF3UFhKV1NEbDlWL0FUM2d0L0Z2VjlETHBhNGtrY1lQSzc1R05SQTFhRGlIak1NUEFUVFJpZlZpWEhBOTA5aW44MXExWHZYK3dmSGlONjFKWEZFQ0VxellRRWZ2L0hERllGRkl0eVVqejR6S3FtN292bG9ad1dQVFFINzFMTWQ2MXFzTkJNVGU3SmVtU3d5SHA0bGFyWFJOQ243Tk1mdTRVK05PUmxnQUpqdWc3ZVgvWEFIUlFReG9DZkRHd3pmNWdyaTMvcXZZbXU3cFBxNVlFRFZheisydHJaTWdDN3BWdFZUZDJIUmdGZlBNMmtZMjVMbDZTT2MzUTJSSUZVWmFWemNMNTRxK096bzROTTFYd0x2aTJvc1BHaVdKVW45UVNkbG5xeVpnYmNPOXlNNHlpTklNaWpHZFEyekJVSEY0VVY2b203RVdDS1M1d1MvSjN4YjhkK1NPTnk5ak9MdnUySm9QNjBWd2tNUU4wN1pRNXFxcE1jZCtDRTRRUlBuK2RYMG12dk5aa3BWZGZRZmhQZXYxVjBaMzZ3V2FjaFlZUTNlUm12dzB5NU1hc08wYjFpaWJQb2Y4d2NXaUViT1hoQjRYQVA0UytCNDlxK2dKbVh6TkdUUXFDRHhidzVXRDY2eS9mSHJQZnl1VDdZVzdsOEtkbkU0UHM0dDczenorNjFLeE9NT3VqeEZqMmFUVEZlN2ducDdrZ0FCZ1ZzRDEwQ3Z3R3FtQUVyY0NxdEhaV0crQlQ1cytJSXdoVUR1NGlKQXA0djRxTEhUd1U1dG5nVUpyeDRDNVhXQkkyM3F6TTZ6SWhsZnVVN1AxQ1BxZnJaK1FEVm1tQzROb0tOekwxT0QyYVNXQzA2czBXbjBmcVpTTWR1cGhpeU5DK29rYXRwcFNFQVBXazhxRCtvaXg4RVlpQ0pkK0xOUkFiU3RVb3MxcnExNGdvUlRnZVZoNGkwbDQrUldtTVZXUUVKRWhCdEw0SUkwV2U2VUJ4bUNIZ1lTUytMQkNRVThwUWJWM1R3VmFYK3dWQnNRK0NEMDkxdlVFZmFBTlRsNGZnekd1L2M0cmxGaGg1eTJRMDdzblNienB1NVFKZ05MU29sQUdzejZVLzBaT2hwcHBwcDBmTEF3Rk1WQmxtblZKRnB0QmdwbVZLR0VDRXpnM2FPUEptSDFoSXBHbDkxTGtzOEUrZ2NqRDY0Z1NUcmx1V1dBQVJqNlVYSGhRbkROdUI3a2VUdDBtZ1hLQ2VWVnNIQmEwdUZ5TWFLaWZTVVVDeWQwMjBnQkVwQWI2Y21WNUlxT0o2eHR3NEcyalBGYlZnZGg5NHhpczYxaE1WZ2xVQTdUVjVMZXM5eU5vaXlONDdYbkZvNW1xd3YyTGdscDV1ek1FTG5OUThrRzNqL2IzdCtJakZWOWNGSUdzSHN1dGpnNlliRk1xUFcxM1ZkSXhFRDVjd092OEVtMERBSVVjUm9vbjI2T1FQOTIzaUE0OURvYkRjdFhZS3hjUjNBS1VKc0VuZllJaUFuNE5LUFZaMjVBWjJvbEU1MG5XdExXUC9rbityU1FGODRwYkt0UkNWK2QwQkxCcmdKV3VRNFJoMTY4TGdmamN0aVJ5cVExbmorbm9HdC95VXdoZzVIa2VFeTRkd0ljN0N2bG02eXRRWjhMMEQ3L3hSanowd2hvSm5ISDVDSDN0bmRXVm9xTndtYUx6UXlzTVF2QSsyNHlHellENFp3Q2JmVCt0aEo4a2xLSTBmSmxEdzFSd3hLREtXTFVaQ05vUHNzTWYwbzJXczJQZmlERzNjdmdjSUxRMzhrQ0d1aVZBTVdOWnRmaEFvcGRkZW0rVUpRajRPbnRzWUdrSUNoR1psU0Mvby9VbmtUVjN5RURLREpCdkFxQXlaRGNnN0pQbG1CM3ovTnVReDBiRjNJZmNnOThqWmx0Q2pHREFHcFB3NFFFd1J3ZmdTSll2amF0Q3l6Rzh5MU5sTXhMNG81SGlreEtPbGgxVllsVHpqOW1ua2w5UkJjNGFoUXRJMHd5TUZYWUpNYzBQZ2UvamN3QlBkUkNMYythSlUzQ1dhcXN0QXVmQ0llb21yc0oxQUZHWTYvbXdIUGFoSFZoL3htZlgyU1poVjZnWUVKaGluSFBqcy9Ed1gyZDc3QmhXRmh2RnZWcjRqU3VoM29pbjZsalFSZnZqUCtiL1NsRWo1b2RocENDaTRlaE5oekJoTGRMbktFUDdCalIrWmhkL1kyU0ZJY1YxcmdLSnd5ZTFzclJLWjViSE94ek5HMmhnR3hDKy8wK1A4MFdLeWZZK3FRWmRicFJYdWUxUjJLeFNsMmkwMFpLQTZrSFU0M01XaXF5ZUFQd29BVmJNd0huamsrQ0kzYVBPNWpybUhKR3ArK3ZBZVdqRXFVL2FTa2tpcDRuNDJVdXJ2TE1XcVArSityaUZ1NnV4bHBRbHh4bHBRR0g5WmpwdE9LZmFHMFA5VmVBeWVHQytpcWRzMThRMzBRTTJLaENYaEhyb2thTGpQa21YOE9LbFNGVTFEODFoeFMvZDNBS2N3M0FwMFNnVDZqOWtYNkFvVzBWWkNVU25FNHcramhKU201bTVFTUZDUDRWL0k4Ukh6QzBGK0lOallDSVZrbFlsU3VVcU5jbG5VT2d0RW1jb2VXaHdnbGRqS3FoUlArcGxxTm1JQ1d5WnVmQm92MS9aQXNaUUd1WlArbmh3RHZQSk1lWDhjd3VvNm9KZlg2aFYyRkQ5OTQxczFyQlE2bjdEQWRJMTV5NitYNzR2UUh0UDV5dGIzcjhuSnRabWFDNUVjYUJTTGFBTkNYa3dES3puYXFGREtSd2RsN2IvUHU2U28xWDA5MGFrQTFvVHIwYkVFTnFabWliZVlCaHZTVXR3MmdpbEhqUXlsMlEvY3V2NlM0NjMweGxZRjh6OXJrQitaVERFdnBoRWFWS1ptTWl3YXlnNFNJSGxoQXBJeEVWWDRxMUVTb1kweGc3cG5LSGF1WVRMd1lrT0Z1bUxMdUIvSXU4RDVTSWErd1pUb054SlBHT05kWkVvTEl2MXhMaklKTm80SzB3T0hoalZqY214SFNzbk9qTzQ0eVB3ajVscExPd0pwSU5UOGtXalQ0V053ZVBPWEFEV2VVZXBPeVlQOUJ5aHdvTjdGWnNVMnZZY0FHbzNzSmpFYlQwNmRuVk9LQndBRG9jenRaNTBla0xGdTI1aVE1RXk2bHV5Z1FSVlVTeGtaUFpDZzBoZ2QwbDd4Yyt6RmppUytJNWlXRElLeEw3RUlod3JjUzVCTEdnd2lHSmNQeGo0ZTVoNDJwTWpETE04V1E1VGU5WVZmMlRPUnVLTDFvQmNrOGdZWTlrUFdmUGg1NXluVmlpK1pJNlQ4dk9uWGdVUVdKQUlOaVBqMXJrY0RMZGo3eEk4eFZTSkkvTk5kVDZiUitRWk8vcTZzUk1jN3grQ2lmUnI5a3NTYzU3V29ET2lzbGE4U20rVmljTEc5Vy9Xam4yU1NRSW54UzUyYklxN2lnRFNUcUNpUzZnNlZIdjlHU2grTGI5S0ZndDNFYmNFNWxmNnBTUld1RE5zbnpWRnJzTG9lY3RDblhlT3E0WDNXdGQzN0F4eGtPMm82UUJHQWhSMDlDa0JNcEVTU1J5TjBPc0RRQnNJV0NYV1U1cURXZXdncUl4WFFEcDdxNXVjNm9ZYWVDRjZ6cGpCQ1VaS0dTTGlrVGsxRFpOYjNmMmtoaWYwUFRRQ2VQdmdWNUFwODhFdE1jVW5Fc0JqeFJibDRWWDc4LzE4MW5iYnNBblI5cE83bDFucys0ZFkwOXZ5azZ4Tko4dU9LY3lUOFgzajM4S1EzT01nTWhCcXVkVDhOdGFkVUNhb093QWlGQW10dEpDMnVPSGtNRnRjR3psMkpGcUh0ZjdpYVI2RWUxQ0JZRmZ6NFRtam9XaDFOd2hOeFduS0FkeW96SjNESnZYRDBPNWp2QS9VYko3TzJ6UjdqL01hOHpYV2VsQjhIeHU5Vm5JRVo4SzNRcDdGVTBLMDNVb05tcHptMlY5ZXdrY3RTdmg4dHZ6dFpIUDFXY045Z1R4Sk1CQlhpaWllTjVIWDBxQVgzV2RKbU0rQ2crTFhMTEhVTU05SjROWlUwRUtEUTV5M1pTWGFLblV3SGVWR1ZjVytPNkd1V3RnV2E2OEZ1ZVhIUGRDdjFidGxkOWRlOURWczIzN1VYRlNGUHU3QzJ1WTJhNUJacHlYelB0K0hFL1BEb2pxMnNmek81VjYreml0Wm92anNwY3dHMTBMWUdMUnlEc1VYZUZLaTNNYld1djFqblYxbVR5bU5va05YajVreWVncU5GS3BLaUFIMmJ3TUFCK2pRTHhxbFJFQnhxQlU0clF1Wk83TnczSXNCVGV5SUNqU2IyeEVwekNLWE91SDlkb1RVTnNoSUJZUmdoSkdBUXByY2JTZ3d0bmxXZTFqRWlEQ1NVVzdwYkcvNGxObjZQOWE5YjJCK1JPakU2MTYwMkMzZEp1RW1SQk1BbWFmRzk2Y3VCeklwQm44YmNzNU9IZkp1bG5GSE1EcUltQ3I4RlBFMDE5RUpvbE1RTldlYmorTVpnZGFvb0pkenFtYVlVQXhqOEVWdmk0Z3RlMWMvUHYwQm1oS1NaZWlwRVRxWXMwd2dNdXRjeWFXR3pRY05vQ29VMEk0enhGb1RjbS9kbVFYZENTSU9KR1d6eFpTVjhQalNqeVVuYUM4cVdMbVNKRzRScmc1Sy92M2d6NGtIY0RrbDVlSHZHTURuY0VQZm93eGtnUXFRVDVtSi9QRTI3UXFXMWNRbFYyRmc1TDdoOFZ3cU15VUlnWkpTOW54Zk5ld0MwNnIvb3NrK0lLeUhXYnUyUUVjMGl4MnJyVVcvbTJDbE05Mnp3cjY3bFduc3VPRWpJMlJQTktnTHJLOWdJb2JEWXFWeS9yS3hNbjk4R1FURS92djZ0VG84OEN1R2dIZjBkbFRWblhtd04rdGlqdVMxcm9XejdETERrUm0zSE9aeHpNNTJWYzJuaXpydUhCNFVXcnAwWk93RGdFdTBoL3NrTmRNTkR3QXgxMkQraUlXQ2FqT01xaVFZT3dKTkpobUFuQmNPOXdLa1pRQldLUHIrMWJNNWNPWUhFTmpKMjJ2bkxzdFBhVkNVMGc3bFB1ZDd0RnBwTzV3YVFGam5JcGZzekRxVE91U1Rpdlc1WGtlcklzbmpTdmFHaklpdHpHODkySndaM2NnTzZpOGM4MUlCS1JXbmNqUlFsdUdiVTAyNE5jQ3VOVXFYZjVnV2Jza2tXMjhrQkQ5NzFCSWYyYmFBUWJBSjVTam1YSnF2TGc0OE9qZzRndzhVYmJzRE9uZlRnTXc4cnQ4Sm1yalJwYmVYeUNvQldiZS83Z0JkUGsyNDNPMW4xYk5SYVl3UTh5NUdjTU5ZdEJCTDhGTy85VDRZN25YSmViVi9OSXA0SSs1MkVqWUR1MEI2bDRnTVB2S2FxK0xoU3VNVWR4RTM1UGpjd1l1bXRGMG1LcU55SHBqUjR1Z2xLUFJ0dmV4NFdXTEdNdkprcUM2ajQ4ZHd3anlXQXhzR3RpQkxNRVczT09pV2JLcFp1VnFUeTI3dExZSzAyUFpsdWY5Wm1KbURSM0YyYzRFalFWS3dtNzVNUGJ1c0RDbVFtMytKSU44T1pxTjIzOHlHbVh4cXQyenZYK3VNZkhXUUNTWE52U0lNZzJxbmxVMmh0WlVobEQ2RHVDNFEyY1NHbDZlT2FUN1hqMGNEMlhkZ0h0NS83UEdINGo4SEZFNzNsL0paOW1pV2JDV204Ly81SG5yZDAzdWN6bUVCaEk1TzkvZjI3V2RMWU1NWEdsdlViT1RvaDExenRQRXNYN3pETFRRejdYTzBINyt5Z0FtMnh3em9tTnZaUVE1RWdQWGZibUQ3K3laT2ZqUitVVjhrV0lOc2F2aG1RMXFNdmJDbGJoNTdDUm5kVGJ5dHQvdCtJbFVNMmN4c1BQQnJ3ODNyYllVSXZldTBzaHlRRGJHMzdnRU9ndi9OVVpCN1NyZGNOT2lJei92VHg0elAvaTgrT3FpS1YwMWtLMzlNU3p4aXovNzRpNEJ5dkF3bEI0TFFNOTZIeENhMnRKMlo3UDl5NzQyVTNJS2tjM0p5SERvbG56RVNvOXBTRXFmT0FiZ01ZUEVxK3NWRDhnb0FwQlI1aVowVGgvMHJRK1FvMUtoSTlYeldRbWhHNlluWUp3QnQ0Z3R2WlgzNUUvQWJzVEpIV0Fzc21BTng0ZDVYbG04eE4xT3h4K3NMT3E4c3hsQmdvUGd2eFV6REtCNStqS0pWNG5yOExDeGFYNk43RHBKN2gxTW5JVHUrckxoNXNhczFaRFZwcFJPb0NoUTVxdC9IbTVzVzFYWEF5cElrazJUQ3lrd3FCbjl3V1lYSUdYYXU3VzlaVnd1MnNjS3IwbzdIZzFhMDlKOCtqVkpCd0ZObjJPeXVjRWo5eE1YalQ2V1plelRTd0NhZlViVFRkM2VGZ2lGbVZwKzVGQVUwNEM1QnFrakFqMmhZZnVTRzJDNFdzUUNIZFFiTnpjT05taUdEZTJ0d1JtY2JjVnpsUE96MmR2YXZYc0ZtQkJGZUJpRGhtdDdLMnFpQUt3OFJvRUpraDVmK1Y3TnBBcGNuVFl4bzdDcnMwMFZSUEl4OGk2VjBnUzUyYjFtbmU2TWR0dEJ6cHZHWnQ3MmRrb01NNmpCeUhna0RvQk1Jamo0WjVabTZic2ZPSmZXT0FiSDVoL29xejhNNTRTUVZvZWMzb0lyQlkrNHFSZkFKdFpXSXVGS1RxdU9jQVpieTNPbUtTVGFLWE9WdnE5L3lkc1FQMG5YQndwdVN1QUZ1cGJxWC9XTEhVQjBxakF5TForM3BuYkZKVFN2dEFNeXBPSjZuRUVseWVZRHdseGcrQ2pVN2ZEVlA2VXVvUGpjelA2RDFvT2tWUVZWNVorbmtlcFBTcHI2RG4yL1h0Q0UxbXNOYkpTdzNYeU5zZHFhcFlmWjR2eTlWS2djQjZ4QlhaVHFRQWl2c0o1NHd4UUpNN0FGMzdWSVBvVUc5ZVUycllRS3VpMEE5ek1hSFNodnRRM20xVFpVbWZEUFJvaTNFOTg4UDlEbXFqd1Y5OVlJZzFOQU1wSFZKU0xUZS9XcDNkeDZiYWp6aEo3M29ndjVJYkxSREI5QmhXUmhZY1JaR3YzSllKRFp5VlNRTmx0VzQzSXhoQTExZWRaeUd4N21tM2ZGZFl4bFIyOGxrZ2RSZk0rNWtyditKa1dUVVo1YlB6VCtmTXpVcHI1cFRLNVB3YXBSWFRlWS9RLzhTUFYvWlZycjRzclZBcmVUSUJiWmRPcnRLTml5RXZ2QituRHRrT2ZHbTZ6cCtFeGRmcW9jNVBJM2s4MlA4aTlWWGhxbTZWMFhITURSWFZEMUFoL01iK0ovUStxcjJzamJxRnZUcTl1YnBoM0x0N3FncHh3OHdLUFJpNjM0ZjFvYlVjTEt0bW9qS044N0JmNTBKa1RGVGFISkoyRUg4S0RQNFFsWUhXYzNvL1lVUFUydGxiTFBqeW5mcW8ydFhNeGRhazFlbEhzbHNram1Fa2NRcFJLYlJscGRzbnE5blR2Ny9NaHR0TGU5Vk5Pby8zYjN1N1hodkZZb3NXN2Y1enEvUE9NdjhsVGVMR0wxUmhyb0pvQ1l1dzhEWVhaOWE4aFd3bEg0T0dXNldIQjErMFBWS3Jnb1ovekFNakwwa0ZMMlk1bjRpemhTcjVJeW1tdDhIb3FjN3JaNVRib2IyNWswMmM3YjUyZWtiNFB1RUd2NnhMSzVicFFDcUxrbGVMWStqcUFSczVrNExaTitMU0JYc3NKMXVzUHA2UklFaElPUlViOU1kd0E5eFgyeHBvT3lnVDg1RXBTamtJQmxGVGwvczJQK2NYUG8zM2loamVyeGpEZkhSNEp5OWZ1OVdRWjN5Y3lhMXNwREt2cFo5d1JMdmVZdzF0RlR6Rk15ektZT29nZGcvdjdEd24ycDg0YUkrQ2I4Zzk5aENxZVR2bzNrNVB2REk4cjNhVElpVlhwNWYyR1VaUzIrTkJZOVBVNm54VFU5ZW90TWdFaHhsWjVQakE2M1Ftb3hpa1J6ZjQxRFNWRms5ZlNtbWVoRGxIVldiVGIyTEdQNWdSQlRUMnYwYUVBV2dTZTllaCtTTWFaK2VJc0RGN05XZFY2a3FLb3FhakI3bDRMaDBuMnRxSngyUmhYSmt0R3B3VmU3bk5GcTdhV0pHMVRBZ0VBb0NqbnJqQWJhczVCZThteXVNUm9QZUZVaHZwamM4cFQ5dXgxbHZxTWIwOTFBVXNSM1FlWk5FbEJWekErYzJab2UwRXJqSmxRcVRRK1VEVm83YU5JZElINTRSdEQrU2dwalk0eHBjSkZvNTdKbncrV0RyVVVBb05UN1g4RGpwOUptK3dDQ0hvRG91MEFKNXNqVG5jR3hwc2h0ZmVFUWhiTDdTWmVaVVlUM1pmVWt3U3hIRzVOQUVHWlFKTlNJdTdYOWVkRnA4TW95cFA2M2htUytXSzdoTWpEMkpuSytRcEtvcDlLK3ZObldWb0dOSnJadVROQk9salBqOXFqMVk4NGowakF3dVpZUmpzR2xwc2t5Zys0REZiUXJWMFlJVzBuOWg3RVFLdWNZRjFGcWpJMUVLVkRhQmM3VzIrbXhvcGRYNlFnZ2R1YUZwMTFOMmVrMHVMSW10Q3pmTi9veUtHby8vakxiNHlaM0w0R0R4c0lrYWtsWk5hd283dVBpelBpUXFadW5wb245TjlCUThRUVB2VnlRVVhLWXZTRjF0TmRkbzBiKzJzejM2Z0lJMUhha2xqd2xlZUtFU3VBcGRJWnZoN1NpK3ZUbEl5bms5aEo3czkxS3FOVEZhYWFKMFZLc05BUit4a0ZKTE1RNWJUNk9nNHJyTnAxOVJ0cmM0WjVabnVXTGJheXpkWndKM1JxcFhHN09FUDBYSmRUVUN3SE1yTXI5VFp1ajg3WHUzRmpQSmdlcVQvbm1pakVaTS9WbkhTN1c3TWkwckd2UVprTkptYWkrazhFeE83Vm5GdXd5RHBMcXRhbUlkdGlYeGxtZElpMDBrblJuYVV0RDlqYlZLZFY5cVZPdUtPMHZJdHNvZGdSNXdFN3R6OGxFUmdaWEFXdzRvdjlMd3NZZWU4aDlRbXc4YWdOV0wvSys5ZFFhWElDTHZxZVFsVUpUS0tYRk9FMjZlMzVkMm9BS2NEaHluejRaR2I4djQyQ3paL3VFRXhLalB0eU9zRGZpdERHL1JMS2NhTjAyS295RzQ0aGcvSzZoUHRoSW1EbXBaQUFaekE3WE5FNWhES3BGaXVUSzNwejFjRDUyMmJuYUMwS242Tnl0TnpPK1pucFErdGVXQ1lXd05IcTJkSmlxbFdxUnJZSlMxWFhySXF0NUZxbEU2eCtCdCt6VkFVM0VWejN4MENLQTZYZ042MG96L05UdUE2UWd1RVUzWTU1cE91bmU2aWlJTnNqMUd6NFF6Wm5NWDNpODYzOHNDdmxweUFKMCs1SFhQbjNGYTJncWltN3oxcDlhK1pXNCswSWZnZW0rOTRsUDVqTEM3TjQwY2RMSEJPTldXS2ZhNmJaM0hla2RoSVF1SGVIUlQ2SlFJZW1NYTA2Um9OS2I1TkZhVEcrUUdsdWx3STBicElkRUJLbTUxY0ZCdkFwVkZrTCt0L256dXFnVWxvK1JZa0dvU0hUVXNyNzhOK0FxSnlxcG1OWHhzVmUzc2UyejZueGpVY2xVR0x6N04wOFVSaEtPWGlQaU5admRDSXNONkl3TjN0NkhKUkorWmRkY1pjcGZ3L1o3K2UzOWg0SHJrOG0yVFA0c1UvbUZhYWRKcFVtZjZ3Q2pmTG5zU3YybTVhNVNheXMwckhRMnVYclIxZjFyaE1rTWlLMWV0aldRcjdJVU9GYmkwcmxxMDR5bzVQV2E2YXFUYXpqejhha2d6dm1wcmFDUk5sRk43VlYvSWNZSFE4aHB5YlF3WjdUQUcySXhsKzNmRE5tekRZYmdYb0l6OGcvN2RqTHVad2ZScWlMTzBvQmVTMTFSYXRLMGdacU9ZajNwU0dPRFVtZ3JTaTFhSjZMV2tmY1lXZWdEMWRVaWhZRzFVLzlNMUV1MmFvWHQwK1JEWWxEeDFjT0x1RDhweFFidDY3ZDJpcjFrUzdiUWdFbDc4d01jRWVvcTE4bDdBVkliV1ZublZjYTN2RXJHaEVNeWxtYTNmbjlEVGs1R214dHZJckwweE53UEdiTFJsWnRMcE9LQTlSdm0xYmVXTVJIU0VLNVgzZGp5eGFSZ3VqMjZtYjBkTExYSkVQUmVmbFJUY1c2bVZRTkc4SkJINStTdlo5K2h1Rm1tM250N0FHMTl0N3V0Uk4ySVk0ZlJwZVM5VFE1TmVTVmdTMlN3NXUyNHF0b2ZndHdCUXhoZkk3QUdTR3UweWE1cFJ2cU9KTzZWcjBTWXlqQTA4QVFud2VvcERRVGdpRklyZUd0WklidlBjaVVaVHJCVDZUZzFRVmxVK1N6cHJPU2tuWnpETURWY2xTVW8rQkFWWXRhd0Jjb3d3czFDNE1VTFFVV2FyNjVZS1VKYU8rcEtwWVNzcFFpOGdFSzFXWmVXemNnSjNLYmlEdW0vUmpzWEV4Q0FuYy9vQjNWejIrZEd5UVNMVG1oU2ltemF2Tlo4dytVL05wSnZuVXowTWp4R3JpeUZDb0pYRVNtcHI2Qm42Y1hUaTNjenZQMmdZOVk3YVU3SFNNTUc4MlQ2Q0orcDJobnR3YjJndTZPNkZRVkU3dXhFT0lRbEc2a3JjZEppTWF4L3JHalBrQllZSFVSMW9nV0kwRUxRZmVSTXJiSTdaSDN0cTljZHA3SStOeFh6RjM4ZDh5dWErbEh4SW1PRnlLU2RYR0hEZHVCdUpLWjlJMzNKa3pGVFVTK3pyUmt2VUk0Q2NZRXgyUElOcHFIbWJjSVRHenk1THlkcmNOaDd2ZjBBNkZxbnc3VERyaU9uQXdJMHpsMDhIb2lMbzFpSVByUXRXKzN1YnhIWGdBTXhhcHZOTk1rVmNhVTFmR1lscEpyWmp5ek1SQUtFNTZuWHo4VUpGYk5FV2FWanp3YjBBM29nVzZ6RmY5bERGSy82dE1uUUFkaitIclJycDlZNEEySDRweDQ4Z0hId0dhbGhaUHl3UFIvMjNsakhHMi9oY044bWk1Tit4aklhMFdpc1Y5d0xsOTIvdW5pd2N6NndRTEhTblBvcDUvUGZMOWgwZENsM28vNGhPekowUy9jU2ZnT3dXL2VSUG04N3lEZ0V5M29rMkNTWm9WdlFiZUZPY0o5RXo4Qm9rWUkzc1VRNXdmdGdPVFkreUxkd0VRcmJrWGdoSzZaL3YwTkx4ejJOMG9KVGRnRVQyKzJ4QmQ4RVJnZ3QwYlRtazRJbmpVT2F6MThVQUtmd2xaRTB0ZWQ0MDE3TEVNclBBc0hkYWsvR3ZzOElpQ0ZhL2FJOWZzVnBDL3hxOUtER20zMmFUbEh6VXl1bFUxMFlhK0ZpbHVPUy9XM1NHV0hpOEpUcU9rc1BoaW5HVnlqUGl4N1pmTVBadXJjLzdGUXczQXFGYjRIaTRja25yRnJRVUp5RTFQTGgrRUZTV2EwSjI2ZEhEVkprVFl3Q3RCZEZ5ZDJBV1VWOGlxM1dQTUFVVDBuOFpITFJ6bWpzRGJHSDRFd2lVZ0JNT3VyN0hQMVJ3V2Jpc3NWSGRmaGJRYWxITHN5Uk9XZDMzNUt1M3RpZU1iZVA5SlBqWEJYU2pwa1dmTEdZYmc4Wjg2M3pRdnowdDQyT2FGNWg4ZnNKM1hhNWVYL3gxcDRWeUFhRnVMMENMeTE2N05qd0NpcmMydHEwVmt5V1huV0tnZ0g4U0IySUtDV0NnT3lpK0FlcTd6ODBGNlUyM1ZHaWJIcXF1MnZNMnE3VUJuTjdacnoxYUNWcSs3ckRqTU5TVkxFSU40bWpXTmhEcEVvcE9QQ3Q4T0lCQ0RzbnBXWTJEeFpnS1YrQTBQZzhnRjJQSWJnU2FlbFFjMmRlSUNCcVV3L0I1Qlk3M2pBZmdWZk5haElyQzVJNXdBQ08rSVJ1SjE3SWRJMzB5NzkzekFnY0RKV2R3eCtEdXJqemNQSDhNdDlJdjZGM0M3NFhtZTA4WGFvNVBZQnVUMEVlc3BHdStJTGVzN3ZCdkhHcUgwazQ4MVpYaUlrdHhGcFRyaUFyR1BDSWk2VXZlMzNpYUNFYmtqMUV1bGpaSUVMQUZKNlVvQ1RFQnlWUkZMZ1lncUc4L2NFaEQ1RWZKcUM0aXBYNXhCUTRzRnphSTFRczdQWEJxZk1tcWF3RlFBQzRWLzc5cWY0QU5KZnk3dlV3RWZpWk5oVVFEMk1nbHFXR1NGdXR4MmcwT2l1ankvcU9BWUZybGdibUNmTitvaXBDWFFwazJJRWtUcHBzNFNnZzdIVUNsVXNtbFR5U0xmRkI5QmVyNGdMWVh2bXdpVmxFREJKdURGS2tMSDdFa2dLOXZhMnA3VVNIWHhyQ1hSeHFTVGsxVW1ONUxpeWxpRGdTeElrNDJaa3JRQi9MTGFBTFdVRnhtV0xRbUtjOTFLK0c3K25aQWUrTVhnYzhNWHNjQzR3ZzlYODcycm9keWNWRDJiem1XbHJHSVdSaDZrWU1tbnUrT1Z6SDJYWjZuVmRIKzJyV29TQ3NwV1JmMjdoTXVGM0lMOTkyNGhNQnVhdEZYYiswTUYxSXBQREU0RVJ1eGJubit3MWFPa3hEdDJVRi9taXhWSEZKbnVBa3NMd2hMekY2V3dOOEIrZ0U4UDhWcVBrZXJ1NndTWURveEFsODFxSGNEd3owQWRjRGZ2UHE4YnZvQlU0VHhEa0wyUVhsMDJzdXBvVVRHK0NlRi9ZaXZ3SGIzNDZEODN1QXFVdGpPNjE2dzNqQjJHS1NyQ2hObUhrYWxvbEJwVjRjNDM0dnl0RXEwVG5YUlFnd1dsSExlM2c0c1RtMHVkS0g1Ukd5dDJKV3pDVWNvdEN0djArQm1UR1h4bmJrV3grbDU1Mm5TNlF6LzI4elZpbGI1ak90RWIwcldmZ1p2dVArNS93Skx0eXJZRS8zUHh3TXFleThienU0WnRkeVFPakR4YjdYVVkvMmNHUC8xSXJwRmlFZUo0ZlF6dEgrajAwZjVSOXFOZCt4QUtPUjBwRUQ3SnAvcHZCTFcrM3BVK2FnVTBURkZQRG9QWWlHeFhiOS9sRmtMbzd0TFZFaWR2dDNDSC9XQjRVazMrdTBBVWJVanBEUlVHZ2dGS09Lc0xXRlg3aUpBUEhLUERMY3VnNGJ2Sk5nTkFJN1lCUG44NHBZbVkyMjJyQnRRa20za1J6S2ltODZHMG1oWHBFUGNCRHB5Vy9LUG94MmJUZEVSTkRaVGVRVUJaQTBxRDBtdHEwa05kcGM0dUVmR0dLdFAxazBwcEJ3bGovRGJ5WTByckxuai9sODNsV1ViMGVlY0wrQ2k0ZzlvN0hiWjkzdVZ2bDZmQjlkcC9YTzRHaHg1L3lvaTY0M1FIRncxYlVUdW1QWGNBLzZ4OW1LaTdWMEppN3I3WE9hblpXTklIa3c0RUkvcTI4OWEwWjFjV3gwek51L3pqZkRlRS9JVm5TTGtCN3dENFQ1aVZIWFowa3FEQjV1bUVCaFZXUTV6ZGt4NFdXU01KREE2VWtXZ2tJY21lN0FUYkpWdjlUcmEzb3BGblNmWmp3cmw5ZkpaTXM0S2pXWXpxVGVnWXpZcEdFa1JIZGxteURkMHg4c3ZZeGZUQnRrVkc4c252azVOQ2xwQ0JDOHNEQWxHdEpXUUJiNnFZelpKSTZDbEYraENMcHREdnJyTVdQRktvTTZaL3o2YVk4bzNHL1o5cURBZW52L0xDSTFxditlcTFDVW1ZOU40SHBvOTcwNEF3cytNalBEV1VhVWUyc1lid3JJemV1K2JmcWNsZ1B3WjJpY1htQU4vblU4Q1FQek5reU00d2cwM0h6aGdjTzM1a0hXQjY3Tm5CM05ZYjN1a3JoMm9FRnd5cGdjTkJOVDRCOG12eGwyaTFMclhVaXl4cXE3bE1rUzc4SUpSS2hEOVFwV0NBTENRWHBIWXdHNXgrTS9mUHF0ajE0R0dQbGNDcW4wWXJwWWRHNjM5bmU5NTAxMWJRU0Flbk1FUWZ5MjdGdDBtM3BRK3pLeisvemJJdEZxMExiTzJjT2tCNGlxaG9yd3o3bDJOQWhxbmVMN0tmWHQ0aUJSNzdEak5NYi9LU2hTUGNpVU4vVFBuYzdmOGJBaUdmSzMrd3FBMnZGV2RXUElPTGdRZGFuaEhkdDRaWEwzd2NZZVhiSGE3eHdWbmE0REYxMkU1dk40S1dxc1BYaEx6RTlkdjYrMkZDb29Ba0NMZklTVzdiWHlhWG94TXcybUdSOTNFSHZDODZHTkwxSzI2YUpTQkh6ZnFabjRHd21JN3RwdlJUK3luZDNCdWp5UCsvSU04aFI3OThHUVgydndjQTRaaDNrb2hnekdTSVNycEpvZzZaakFGaW54dm1rQ2E4TE1WUUZsTkdvbzR4eHNLL1FqNkdWa3gwYS9Sb3pxMFJmMGs1Vnl3Tit5b21zeC83aXFYdTBxWkF5VVFKd3NxcThzcVM1d044MmU2Nmo1amZNUjk1Um92ZkxZd2pRTWQ0WHJ5aENHeGx0Tko5NmpCR0x5T21Mcmt1elVtZEQ3VUZzYlY1eWtQc2Qxcm1KWVA5ZE0vU1RIYmF6ME5jSTB1TC9Cd1pVMmJ4UTk4dHlNeUwxMEZJemYwczhKZlFXaHJnTEtGdnF4QysrYkZ4TFJTdTZTTXpWUFpSczN4WjVwd3NuQ1V4SmZyS3F2L25BQ2xJVDRla21CbXZHWXlmUzNaTVRKYUxwcVBBclViR3pnUm1qQ0FVNXduaUR1SUpDOFdhWitYemRySWJ6aDNPUEZoVXIxQjhjZ2Z1bElRRW9jaXVMeXlJdnRrRnZLZ0hSU2hLU0tDMHZnRCtweDcrWTB2WTRmZmE5OVZtbTkySWpQTTgwUzdVQlpzamRXU1VYN0dOalp1aWhsbHBEUEtacDlMMVVEeFJXdjI3T2lnSWNYU2NwcVhSSFhYY2VPa0FrZDFZQnZPNDZJbjFXMGsvWHZxUnRQWG1PdkQ0OXhHV25qVlNYei9JMXJLSHQwMTJlNHFnSGk5aE9mV3V3Wmx0TG9DVHhtaTU3VlVGUklpUnA0Vk51SHJmWElmd25vM3g4V25XYy9LcGt2aDQwSHNoR3FVVDlnWXB0bzRZdW9GeDc0SmUrS08xeTFyUVUxNVNRa3dYQzdnSHBxblNmWXJ5b3FoZDJEVENTbnQvTGt2TjQvcXppS3RReXNhMkxlcGdaMGR1dDk2YUhldktBZDYweDlmU29SaXROa2J4Z1dkbVREcWlvcnU3QWl4Q0VZenBHamE2MkVucXhQWmZzaGpObmc1bGRETVc1NldiZExFV3M3cE1USGRiK1VybWNOOUdNWFdSOFNkdEtHWVhVMzhtdk1idUhLNEZGZ3pVa3g2TFBUelRQV2dkajNSUEVGSysyVkdxZUtpUU9nNUFIL3EyQVgrTTVRVnBnOVJZL2NRUjNBUk84ZlNOVUxDeXBnUEp3Z0pSWExKWlFlT2hBdk9DTWNnWEEvd3VMVHdzS3NRTWpoRzRXNmFGMTRtNW5qVWNMRERORjhmbG0rV3ZPNVppT29ILzhOQitsMm5Xc3Z3Wi9kK21walpxd0lKdGs2SEtTaWpZNUE2d0hUZUJqMEJ2SytIay9KQjhvR0VHNnQwMTc1UTRwWHBBRFlUNGlRSFZWY09vbElOTURSUUJ5VE16NVJCUlF2RFdJakkxZXV0L0h6Q29ETCs3cDI5aWxOZDVsWkpLRGxRZVVEUnlhaGVXSU9wcW9TVVU2dW9jRnVxRU4xKzdSRzJBcnljc0NkMGJ1bVE4b2VGUDh6MExUSE1nRWdIZmhUbHpZUThJaE95cVo2dEJIcTJEcG4yeEZYQXBuVTFpdnV2MTlqZ0o3T2Z0bGRRbHRlNVJIcVNqZVdzbnFXQWJJU0UvbzlZdDJwMjBoNlkxNkNodG5lblFid0xaTDBseXpzSzU4cVMvRk9mTEdFckFvSlRrZUR0c1FFZG43eHpGdjh5elZnZ1ZZTm1kVW9MUUI4eWVraE9JdnFNZnZUczBrUDhGekFPUHBmR2Z1TTY0Zkxmbno3a096K2M1N0k4dWN5N3ozcHp2aGljdUgrMVdoMlNHZVpTYTZaUktuV21wZTFobUNKUllYTHo4dFhBQUNiZGZ1TkNPSUVvMFcwY09DTUd5QUZvVG9iWEd1b0ZrWGVjdU1oY3lRNWFUSlo3MGFabHNtdTRwYUh1OEVqSkY1blh1MWlUcmhwcldKZ0xOK1B3NVcyUWx3MDNnU1RpdEJTWS9JL3pTOVFja0lRWUkxL1I0engvanVCa1J2SS9IK0ZaR3pIWXRqb1Nmd01tc1JPeUJRWTBHUEYrTDJwZDZOSU93eGowSk0ra3FDdmV1UjdRcFFRUy9NU2Uvd1Q4Q1dPL2IweGl3M1BtYWdjM1loNi81QlNHN0ZOemtITGpjT1NOWDdCamRFQnVObThHWkcyN2k0aUJOWnU4Q2JHWjFxY21aNGdEbnBxQ2NEQmZmSUNsdTVtNXJKTXNyL0hOT1ZMTWcrWFZjeUM5Tm1JRGxMdlZGTHRnYk9IUGNDSlp5NS9MSExOTFNZdzZZTzZObnRnVWgvWlBnSkdXeExna1pCeTNOUThmaXBqVTZmaFBuRUNrV2lzV1J5UFJZZGJXY3FUdGpwb0poRWdoT3FLb3h1Y203eEJzeEllQm04Si94TXppQzZURHYwdGcwcTdGUlNxT2k1aGhCakxteWxTb0I1bDVveUcyRWZCUEhaTVRFd1ovaWJKSWpicitISERTWmdrM05PS2VmamZUbStONkJYcnk1Tk1LN2FZS2hBZDcwM0ZiemxUcmlzWEpqbG1uZXl1cHEybHpGdDluVXhjcDQ4b0dLemRXLzlOSU90aGEzcHJtU3pUMktQVkRmK2xZaktVWDFkcGd1dGlIMC9lZkxUV1J6OGVPWms0SHh3YUJxTmMxVUlZcmJPNG9ob3JSQ0ZLdDRSbGpOb1hHQUQrd3c3QUdnQmtvVlY4Mzl6UUVkTDZsVWxiMHF2S1hKN0dWT1NaTDlrY2xJeEd5bG1jU3NlUkpHSmdkSzkzZTNvYXF2RjdLQWZXcjFEWk1hNEQrRnFMaE1NejdWUkxMZjVKUlF3anMxZnBKOWpsNE9VZjZTL1dkcDFoSWJXcjkrdVlodVB3bnEvejFNNUFHVmpBT0hqdmg4UWcwYUdWOC9SaU51cFlsRTFLWFVzS0Z0SmRMR1dEMWgzUXNrR21sTGlraGJDblNMZExRTDNXRTlTeU9oSVBuN0d0UzhZcWxpSGxYelBraWUyNzNZYktuWkJ3ajRpZDlzOUxQS2U3TVRBNkFlYjBZYUFEVTBCWDU3SHNieEs0M0tac0Y2aXlxTnQvTTR0d0ZuT1NRU1U2bGlNU1RIUGs2UGQwMlJ0aGE2VmFGYnJYeHVpakQ5TVZidVdEQVgxdks0cTlMUTBlU3NXRFRaR3RJNnVZaDZhNGRoQ0Y5eEpteUpiZlI3VjduelFHOC8zTzNjRGNzUjlNMFJ6UkdDRlVBMDB2WFVBMVM5UXhXa3FyeC91UEozY3g2eU1HTDY2WHFIZk9ncTVmdnNFcm9lNnJjd1d2U0RLZ2M5dVBycE8rVXFsRyt6clY5bk5PK0hGT3dYcnRMMER2cEhlTHFlM284MjZnN1J2NUwwS3d0cW1VQUErWmhlaGJRTFF1WXJhbzlPOFlqNmlpUTh3TzR6SlZlVFRmZERsRDdobStFdnkzN2dXZTY0aExyNmVWZnUrcXdhKzB0ekw0VlhPRmV5MndCbmRoSW94RlcrdVVOR0F4TytFM05yaVJRbWhWU2JTNVNSNjRaeStmVkQ4K0dmbmRpV25WdU5CcHFXbUpqb21CWUxxa1dyUnRNMlpNUnc4ekY0Ymc1NS9BSXVjOXdXR0J1RVlRUDhZNXkxeXpoSi9odUxIekM1VCszK2hPSkY2N241cnIvRXFaVEtqc0hHN3N6a2JSck5pQUV6SEJrZEU5T2lBZWpxckt6V2NuSFo5ZXQ5ODRnZkNVZ0NoWkJYU3dSTVFLaWZBWThrR0ltNWdsVWhRQVBnODZsU004c21KNUxaRkEyWmFUT3o1akJ0R0xLdnpBbHQwYlJEdkRsTU44YmI2K0R4OGk5b2haOUlnY1pYMUFZM2dDRER1aHpMZUxTL0NLMGdaQjgvYUJodElUVmhINFVodFBpeEhvSVFJQ0tQV0Q3ay8xMlpBQzNuZnZYNTdqOVVUbHp1RHdUbG13cXl0djFLeHRSS01WMGFjcGF5SUR1S2xxSnB4UUNmem1MbHBEMDVHc3RlU2FhVG9razBzelJNRjhZZTA0cmhhbEI3ZmFldXpCZXJQbTMrZ283ekZjYWg4VGxyQTFjRnJWcVJnMytzL1lUb3VDOTluMHFmVDdKSnpmV2dXNDNUelNUNnV3M1Fudi95citXOWZ0K2syYUNjKzU0TEVwWGYvSWF5aVhuK2dLOWJjcUpEN1MzVG5CS29mVWtMQnRQOHNhS2ZTZU5lNTU5TlBUdnZOVTY2V215NW43NGQwWE1BQ0JBdFJZVjdueTVIaTVkdUEzbHNMZTJuaFhuS1Q3UThkaDV0akthVmYxQ215UE9maEovbXlVTEsvTUlVVGMxV2dTa3lqU3drMFNhRmt6UVNJRWdvMHc3RERrK01xWjJjR3gyZFIvN0htQ2FjQmh4bjFxSEh0RFp3ZURoNjl5YmsyZjF2dUpJRFltR01YTEE0MVNJdDhkbXJjUkloR2dxM2pnaFBiZjlYK2U3ZFRVd25iUlVSa2FwUmRQZmFUWHBLR2hZcjkwMVB3d0JqbzVEQTkrUDcrN2ZGRGJ1QzFvdGp0bmtEZVhZa2E2VlNMSXlRZXF0U3pWUEQ3ajBZSlJMQ0laR2xvM21WL2hMcHFUS0pUTExlc2xVdTljbFNoWThmWDhDNFhqR3gwcXJ5OGdsMk4zczBNeXRLN3U5M2Jmd21wNVVEV0xEN0NlVENSK1JKNUltRmhSTXd1N0t3Z0R3QlZHRTkxZFU5UXBXeEFCelN1V2ljczV5dlJrWkh5WDkyem5MS2ROVWRCSVdJanJFTDFDLzBhZ2hBZWdjOW5WVk5Gd0F6N0lIek1aRW5GejZlUU9McnYzVEFZMk9JRG1PaEErYk1oYlpsUHJVYVRaMlB3SXk4UmFjeHN6UE44ditWTXBTNGZhTTBSSEtoOTRtKzFCTDFIQmdEaGlJa0g4STVsb1pwdWRFb1RJRjNWSDBwOThjazJLam1nKzN0WW12cWZlY3NVNVpwbG03cjk5V3hKQVNZVjFpZmNwU2lUcUg0aWxNYXZ0TXBaNTlweXFuTCtocjFsTWJIK1pRVFgzTkt3YzlKU0I5UlUxNzg1Q21GRC9vVVVpcWNTK3FvZDZhemoxNG9SWjVDK3p3R014QVVMaVR4dUVKTUl5Wk13L2FsNEdPYWhWbk5JYzNaVlU5QnMvdy92Y3dWREVWYTBSVE5Jb2ZOd3Zyb0ZQeStNRjNINUszanBieDBZTHpuNWtiWE83VFEzWUFidmNWQlQxOHpGUElJTkVCRklBRWtCRkFBUGJkdmtnSk1GUThHMUFOUU5VMEo2SG9JcUFHa0grM25FdllGbVFmdE05OGJiQjY4dDk1MkVLQkhCd2VxWFEwQ1B4M0QvTmIwODhTNkc5WnIvcnBSTWN4cVI2eE9XSTdVcGpLZGZ0N2RyYkc2dWJiUXd1bFh6RzlmWVZmRVAxRDNmN2YzWFE5bWdvQzlSeVorTHM5RUdtNThaYi9XNUFNbmkwSWM1Wm9UTXpXc2RNTHE1dXVQLzkzKzcvck9MdG91NEhONFkxMjJ0SUVpZDI0aXJweVNqa3hETHFiTXNRV0dJdmQrbXUwTzUyUklOOGt0dnBmOWttMkF6M0c3ckNRY3Q4aTloMDdTaCtwSkU5QXN2YWZJM1NCZ3ozblZvdEpRdFhtSFUyeFN6TUVaZCtQcEJGMkFMZ0ZWS3JQTHliV2JBK0d1N0RuYnVpV05yTE10VDBRQ2hUUExGRGVYQVpnOTk3MmswMk11NGZJTWx6cFV1RXRZOVFpNDFLSEdYc0twT2k0WjhuQ1hNSHJTaTM1RWw0aHppVnFrdzh3eENQZzhOaWRFYjBZOTdDRE9ETTc5M2NkOFF6UjFOeVdXNmI4dWxpc0daNGdkcUlkdlhLZnQ5am5pRkhFT0JGOXNZNzdaTEVUUHlaQ0tuVXJybmxoUFdUOVp0OExTOVEyQ09MY2RnbSt0Z3lBNjNzSjh3SGI0MUNtUmFaamVKZUFHZGZUV3JULy9GS0NDc0QzWTR4anB4OHRidDRjcDlITmZuVGRpNWFkUEQ5aCtQVERvbC9wNjk5ZU96dlQ4ano1VUtPZjQ4ZDkrQTE4OUNKdGYxM0R4VGpaa3RsaTdHNGRQdGlaWGUxMkVIY3ZlcGkrMlhKeGU4UWJoZUpHWG45dzJmTkxkNkw1TlEzelN1MlV3alhYQm45S3krcnlWY3JPcVg2SjlPWXEyd3dBL3U5R0J0SDNncXljYXMyWTU4T3czNlVzc2x6QU9GeFlrdHpJZXJRTVdMRzZGYi9VNk5wcHh3ckZBTEU4UkFqS2YvSmswZGN4cHlaN1NQSVNpL0g1eFhuSnBpdlNaektmMDdrdG1SKzBLdXRpa1JzSEMyNGxRMlpFSTFLNHhLSEZHTm5UZ1JQZmY2MXlkczMzL3RwZWFZem5oWnB6bTIzdUIvNTQ0SnBUczA4NzVKR1l1VXkrYW5VMWVsQ2xoZnVKNHR3TTFhK0pOa1hMVXo5MkNXYlNydmh4VUFQbGZiNHNpMkM3eDl4OUtMQXNXMlFSR1YwWEdZTWVzR1oyV25RejZxaURVMFRjZjljbFdxclpzRFlCV0lyYnRnQm9vMXJMRVFqNDJObUs4NEVidXRYamJYd0FFK0FzbXExaGR6dDJNVll4dTU2Nk9kTlFvOVkrODd1NjFrS3k3cm02YkdKenM3bGFIMFVkTjU2ZGYxdFhXcHFYVTFBUUhHcitkcmZqK3ZaVmdxQVZHb1NlaTIwblQzcW5ML1k2SGd2Vjl4bUhRWVhyejBzM1R6S09aN3dxVysvTWtzQzFzeHd6eWh2RFdrK1hlVFZYZXQ2ZFpZeVhkZ2QySHR3bHp2UzRlVzdBWE84ZnVvVDArMERYd0hoT09nMGg3dDRzd1JhVmFWdHJkTmVNdzRqRHo1T0RCY05uQXdDMm5BYWRwRDJTcStsbjZ5b0lzVm1Sa216MCtRcHMxNGJnZDVnOUZSRklzemQ4cjFlemxCR3R5U1g5azIrQVdZUkxBTEYwcVo5WkZmVW11UktyRjNPUkFKU3NxTWxEYnk4c2RaMEQ5UGJER0VlbGc3Wk9rcVF6Q01zTjhIbjk2Ylh5WDZtYTJiQTV0WmpCRHp5MHptM1JiR3FNYWV5cnJWWk1PcEUyY1NjTTAxb0NkTnJ4WjR5T1VzdGR2T1g0TUlOZ2JOWHJ2RmtPbFdEYVBOaDJreWp2YXZXRURWZStncDlKeTJ2ZENUOUNtL3k1TVdiTjdBQmlMczdEYVJHMVNYbUxlY1ZleVhFUVZFSGhSRm1DZytsQU56dnNCV0xEYnptWDFpZjg3RUZzNU9oWVFucEQ2MURuSjRIcFFCMEpodi94SE9lWG5qNXB3bjBENSs1bE51OCtZU2UrS0dmZHBkRW1sMmdHaUlvWHNLTzJtdFZtQ3lUcnRyc3B1Vy81UitaOC9yTEl5VVltc3hxMUVLaE1yUGg2WVp2ZUFRb2I5SEo3SkdGVjhPV043SnVSUlJyZTI3ODNsYXFIMXRiUFVqRE1aYXROcjFrSzFpV1dhODgzOUZ2dlJWZkNTYTRZcEs4T1lRVW1scFVrUTlhOFhCZUdCUnRrQ3cxVmlKeXNzbExFYzkzcFRsTWJBdk9WeDhWUkU0ckppMjIrejgyVFVKN0g0RTZyL2h5ejVxdnVwNmR2ZFJjNjdkemtXSC94MmE2bjdWV3Q3ZnlvOFJWdHZNS1FISVQxMThNVWJFSnl3Yi9KUWhjTXZZZ3gvQ2g2M3Z0V0ROMVhMQTFLZ2FGK204ajM3bllVeTBpL0YwRlBuZnp5cm0zRUtsZXBXMFRwN0xiODFCZjZ4ZjE1WlBQN1grTWtXMHF2dXpmekkvZ3p5cE51SDFtYXo2WGJNaEozYTBDdkxMWURGOGl1anhhdDI2N3FZdDVsZDYrd2lPSWcxdXR1Nk5RNEVQMjJvN3c4d2dIL3dsUncvd29xYkZENWx0L08yTkl0YzZHMDZ6TDJ0M0Q0UTlvcExuSFBSYU1GUHQyeHZzMWkzclkvY0ZtRFFsY1BKSkxZMW0veVdEQnFTZlk1d3hPM0hBWGNDQk9scysvcktYYXZGY04valIzMndDSThlQllHK1I0K2RpYXRkbmZ2Nlpsd21YSGlkZXhBcit2cFdJR29SalNJOEJGb0xDSXNBMU5NdWJCcEc2WmtCM2MrS0tUTnI1ZEtLenp2bU9rckt4SVBtbSsyQnY4TGN4dmx3TDhjTGNSeisrQkY1QW5sYzZIRkF1QncrRHA5dzB6TWQwSnVkTjUrYitlbGVhRks1N3F2c0s4Ky94MjhiaFlQUTFpNXNENXlrZG92dE1laGlNVTRKL0NOSkFzRE9mWjQ3M0h4UTdDRlNVNnJmU29Pei9yRmE1cEZwZ1JPSmZNNlQ3WWhDc0ZBb1pGQ1hob2NHaWNiU1dFdk1hdnh5RGh4MURIRHZjYVFLQ2dTbyt2Q0NMSDVFaVVrYURYbWNnWENjUlRFRXBVOVVhcElzTmptREZmbFFJaXJWK0loRXFSc3NVRVpwY011RHJNVjRGVE5oaVdzaWlNWFVtQ2NSb1cxREZLOTRXN1VnSmJTL01mRXFtblBJaDEvTGlvMFYzTFpxa09Cb3V3V04zRmdnMkNHNE00cDJqOTYzbHgzUGRHWkh5VUVFeGlRZmVDWjV0Q3JjWHpobWJXVnNhMXk5YzNWVFY1Tk9zN1FnSlFhdzRFWG40QzlYVnBoekVBd2d1VWR3eGJsSVloNVJzbGppYi9GRUNLS1dlREtQUVNRbExoMkVIbjMzZzVXVlNhSU9lZlNvbjBLSkpwWlcrMWI5T3ZwZUhHUldaL3RQT3c3L2QrZXpNdll3TFlyVlNFaUhraVNJQ0FUdHBzdHJRUVJLZ3hEKzBZcFZRYkdJS2lxTGZrbGdVaFlGTlFLZUc5N3F3LzJSamFBaWp3VnBZSyswdWxxMkx3M1VWVjNMQ1NHVzI0NHRBYnVrMHdsSlljOXRxMTA3WHgzYmdXRFVNSGtWaFlKa0FDQlg1SUVJWDZzakszZ2lxZ3E5bTlpMEFkM0VRSUwvaWtxaU1kWDBOdE10T1l4bEtCUUdpK1NiVlZZMHhtMUpQaW1rbVpqQlZqdks4KzM5dm1JUUVrTHZKbHFZNFE3RzN0Zlh3WlVPUkUxN0djMVZVQ1hua0YrL1RnTHAvTmZKd1h4bHp0K1JYNzhxTG4wN2RhYW5qYlNxYWJWcFdmT21weFFXOXMvenY4ZkZwYVIrVzUrNWRxQnQ3SFh6R21FcFdEWEpPbWhMZ1hYQzBlK3g4Y2xwazBzMkd0UmJZMVptK05abi81VEN3ZjU1NFdOczkwWFhaYXdiYUoxOGNBY3ZXd2ttTGFYbXpxUGZZdU5UMHNiNHRsUUhzTmw5a1NzOUExWFBpcHBjU1RrZUwxQm4yRVIvQ0hSZGxFR3ZSMFhacmJ4N25DS0l6MUJIMndSKzBIazFkbEYzTDJXdG5NVDdYOHA1NUxkdkk4S2VUd2o2K0EzdEVaR3JPYm9GaitJVFlGY0ZGYWtnS0pCVWhTdE00S1B3VzRZME9TZDk3dzd2UFk0eDNZVWd5T0J3WmZwWk84K1MwbUdaRXhiZVpZbytzWGY0a2k5WXY2Z0dsY0w5T2QzdGU4bFpPeE83Uk82c0laNjlqcjY5ZWFDYlRlSlNUQ2pYUzc0SFIvL01SYVhVdUYzM3h5UCtSVktMa1JWdDI2b1Jla1EvVlZBVnhWVGt2d2k4LzNYd2RFTm5hN0EyWWRWU0lMT201bmp0OFFVVkI0VEphcVBNRUl6U3phN2NCTTZpSHUyR1V1bWk0TVNBY3R3ZUpTNEtHYjJ4dkl4WWp0MlRSSmJraHZMVWlFbTl3d1NZZXJXNGRPcU1raGtXVGxYZkFLRm56cXdQQlc3bUs5YllKZSs1Zit4eWl2c2xNRFVlc1RnVUJQZnBvNEkyak9oL0tjNXpiOWM0cFdSM0ZIczBTVHlTU3pZTkZYczFKQ3hlMUJEVkxsMElxZnNmMjFaQnJ5bTRldmJmbEo3eC8vS3ZBZUZlaDZndG9uMnBybDYwVWZqLy81R2pSQWxCUDVML29QeHhCU3JxUzBjbTRuMHluZ2dYMVhoZUgvR3Y1a0tRSUE2RnhicmtaVDM0WWdxSmRsZVdxb0dyNzBJNDU0MzNyb2FrSFovWDVicThObDFsc0FPdUZySUc3cTRMejU2LzJvTVg5SFplVDdZVXltbXBqemVpUVNLdUlNbFBXeFdhaEU3QzVpZjVoMDhnQ0VlQWFiejlZSW0xa0IwUlpWZTl6ZzUwbVd6NnV6R1AzZzhpb2ZqQTdNMk9zZFBCSytRSllIUitYV0JVbjhhRnVkaGYwSnRaNCtzSkROaUVnTCtuNmkrSmtJbDBrb2lVRmY0akwvV3ZHTDc3UWdxaDFpU2FPV09SK05TVXZ6TnZweS9MYjQyYWczMXJiR2FsWm9nbTYvdWZlbGN2UDdZWTQrdUVXTG1mYWlnNDRYc2liOUhjdWNpZ054TzZJd2xIU3E2c2ZUbjJ1ekh6ODQ4VzZXODlJeEhPNzViWnVBUnNpa3BQTW11Z1pVRXlXdDNLdjRCWEl2cmJqVHMvTHQ3M25mWmI0aG1iczRtLzJmdVg4THJOZU9KWktnRHo2dVBPaGluZGU3ZjN2Qzl1WDhMZDEvbTdwS2dFU1NuSjN1ZG5rVUlYUjlkcmFyYmZwUXp6b2xQUTZjT0ZpNGhDd1hUWVV1cFNSNG5GUU9lUWw0YW5zZEJvR1ArZmF2UnkxZjUyaUpmR2lnTFJLS3hPN2h4TnA2YWxPT01BUUJSWFcxVHpHRDYzNW9sMHFNL2MyVXlmY2NpOUFCVm5HaG5WOGN5dlBHc2RsZGdDUXRqYlRLdkdOdS9PL0xCZGFxTnI3ZFF4S0E3RnIwQmZ5cFVxMi9nOHQvalV1MG9FSkVuSS9wYkhwQ09jMDJVWFgxYTZpTXdTZnQyNGdYNG9HSEVFTVJpelVBT2piTlR1b1VGZUl0czBBazBBYVU2SUxHTzlVZHNHZHplRG5wRTg0RUF5dUVWNGlHdmpWRmcxTXRjQlJxajRkbFNXMEVJSUxrRUw5aUpucy9zNmlHR2ZrY2pyaE1BZGtPeEpEck1Ncy9wbytiRXprR1MwSkVqN1lTb3Y3cDVtelROVlMrS2R6YVEvZWNWNlFVcERpUVpTZ1ZXcDFQQmVRaUpVcklWaW1kb09tUUwzbEVsTmdvcVhRQkZRZUhGR0VoUUhMY3RBaEtQZEpPcVR1RnYwV3pqU04vcTN0YmdaK3N4Y25EbjZIQmgwb1g0eXp6MjVzaFpxaGM1c2g2dUFXRkx5aUpWZEZuaS8wSVk2MjhGQmxQUjArS2RUbFU0cXA2dE85KzRxR0NsY2NTTGFBU1NjczN1MWJxUFFvWjdWaUJ4RWJrK3pIcUhEcmtuaG1TdE1GbVdXWkpJNFRQWVlOWkdadElmSVovb01zY2dwQXNSLytZaDhZajRwS2lZaEJKNTk1L2NPbHRXdEovVmxRZk55SGNGc1BiTGFoR2JiRUg3QzlrUWcraVNEeUlzOGEzczIvQWNJaXQ2MWxpMDk0Zk9qcE1yVVVRbXlOL0JrWTkrMzRYOENVd0V1NUllbWpyYjdYdzd6aTdlZXRVK01LYTBrTWMyM3lPMVdSOExwWUwyblY3cnphdmkzSkFRSFVWdFYrNDd6THVrYVp3dVN3U2V6NGppUDQ0OWEzMm5TbFY3TzJtRjNYeU5WcjJrUXNUdGxlMk9HeXE2SC9VOHZiNXFFaithUUcvOHN0UnZ4Q0hmcUFJV0trM1lJYUtlN05TSnRDNncram9FWlNkLzVNZGJtVVNaeEpmc3Q5b1duM0UrQXlpRTU5cUR0WGNTRkZFYnkrOENndEhnUkMxKytKOXJ4NUFjcjJja2RKMmszV2lzYjYvQ2kzN1FWWXN1bzhxaU9Db2xuOU9MUUV2TzN2NEtjY2JZcnM1SkpUSlllUWI3OUN6NUxsTE9PSVBtM25XSVNRTzROaWtWUkVWbEFtWi83V3ZkOTlVVWs5ZVNmQjNSN25Bb1F0VjFwSkJ3UWVaVCtmT0l1OHVQWnc0L2E3UnVPSURabWVTRVM0Um9WMUlTWTZvbDc5STVUY0I1RURYbVNQYjJRWGtELzhJWTlVWjVROGxLd0JMWGwzcVNmaTVuRlAxdGVoZmhWbnZITXVsckNMTGxxQ1FSd0dtK1p2OWxGTTg4WVQwKzBKK0gvOEtnSENCNW9pOFFKUnI5UFFTbDNvVEZGOUI4K0ptdFBTb1daYUowcHBwUWpPOE11RlcrMEY4ZFVmVkcrWDJEZ2NmbWRKWnFiTXk5TWlmVDV4K0ozanFiM0hMUFpHOFQyU3cvYXkwb2JuVWEyU0hmMVpoRmkvbE9KdnFia29ZNkU5MUlWc3ovdDdFWHlzU1BETVJGOTZGOXg4ZGxTb2pSTjZ0UEoyS21SY2hSMkQ5RkZjQnJZeVdLSnBlK1JURUswV1V4TlNYbENsQ09yMFBRSDd4ZnAwY1IvR0wreVJHZ1NXbzhxUnVlajhTNzJrZ2RLQ3dXeGpwWElZSmVhUlNaR0g1aFZLc2xrNTJaWm9hMXFRR1Z6cjVmdjkrTU44QnY3SnlibUFsald1cWVVL3FDU2s1SGd2WXcwSGhQenBQb2ZKOU4yQ2xLcVNaWUNRZmt2TEtTVTBtN3E5RSsxUTFYWVB4RDBUeGhsb0ZCSmIwV011M05pUlVFSnpKT3hKRTA1aUI5RFZMUHhmcWhBczBkSHZsdjFjbTRXb3NReEp6a3VZVERjU3VNYVpUY3hpTmhSb2tnQW5kNi9RSHhJWStvWDhQQ1BmSytkZnY0MTVqNlRoSHhGd2tWWStUMFJZUlVmdjlaQ2pJaTBFUjRhbE5sbzJPTlY4WW5UamdNT3QrTVRwRXVjUURBOTk4UWFYUVJURzE5R1MyZTFMTC94QXV1bTRodW9QYVNZOU0zY3pkWlB1V2xSVkU5cnZKU29EdElHNVFXcGNOWlNodTFuaDgrMmpzNTJ4azhOYTZBdWZvV1ZVMkd6bHp2b1NuamF1dyt4REZIYmFNdlJjemlEZHM2SFRHY1NEamwvR2w3a2FuSE5qWmtNYngyVkdpYjBqNVBOdW5aTkJwV1c2eVA4eHdyMjBmYmEyZ0o4TWpBSi9wWnBqdWxKYmxtTVlEbEUwZlp1S3diYkNvc0xlem5hWGdvekpxYXpVOC9FNFk0VU9ENlowUi9KNyt0NVNVYTBCUmNKWjNlL3VwdzJXZHBOTjZlYU1yb0JDNDRZUXdLQUhLTUFRTEFkbDZZWTUyM1NUajJXNzN3djRVUVI2Zms3VTJmNnQzNUduNW1GYlhYdU1pSEhKejk0a1JsKzY4ZVFQSXhjSXNPekI1NllnSHVJR2dTRU54bnAxNnpWTnZ2SjYxamJKbXBZSmwzT3JkaXNUSDNyRGw1WEJCUjBHTi9PVUUzdGRuVlV5Qjlua0tDQTB5SjlGMW1ZQUtkZjdFVk0zR0s3azhDbHQrQnUrYVFuYkVpZEViTGNWek82RVMrd2dlNkQrdjZ4NFUwWmZCYVplWnYvUUhLK1pNT2srOTA3MUF1U1Y0TGJTRm12YmpuZEdoaTRJSVlxTWUwMElKRkxZaGpBbnExMEhaamQ2bWNRTkFpd1dibTVXZGkreHVDM1pSWmFOL0pYeDJnMTBLVE5MNVBiWDhvckxSM2hPVlByNzU4SThkejB2SDlTOGFscGsybUJ4dnFKTGRVaDFiODV3Rml2aGlvcW9EYWxyaWhYSTRpU2NMTUtkWDRGVTB2TXl4ZmtxeGxUQzVUMVVFU0dKaHhTTHpJeUlYa1dWVWwyWEVMMWc5S0FqT0tZU1ZaU056OEJIMmRuUHdKOE9DZkF4MWJ0RGxCOURUVlF4RHlOcFBCVjlwbWRucHY4bTROOGFqMmRTa09RaDhEc3JFL09JZy94bEVKbjVQM0lONEVoOUhsZjhqdlExUVJITlFYMndlOEtyQUozdzVNbjREVkFPYmdiNWllUkVSaHI3aklrcXJKemIzVnJEQ2dQOHFvZ2NMUlk1SzZGdTFldUVuZVJ1NkR3VVZUL2dWUDhvcVZTVXJ2UDBvL3lZS2YxaGdjVTlJekh6Qk16MzNONmcvWE9CN2J4WEdCRTc0ZW5wK0g5UkFyQmR2eHFTQmFOd2pmZEE5Y2VTRmZXcVVocXlEckFvc0xJRTBiendIc3VrcnZmMnQ0eElRTmpsRUhZT0xmM0djTThrQnBydFZnWTh0VENCSFBCSFZtWXRlaG5BTzdKMzNmZU1FL09iandUY0kxVlNUdE9YYzY0OW14QWg2S2hhU2dkLzhOTWVOLzU4SDFQcWxXaDdRZmtoZFVLaGRaTlc5VkFxNTluSjJheUUrWVo1VVBHNWllR0x3Z3ZXZnFNZUE0aG5hWEFTMEQ2NC9WUDRBejQ2Zlh6bGdlVTdUcUtoZHFDb3R0T2ViQ1ZQT3FwVytWWk50S2lBZWF0QXNmMEFqVVZ0SnBCNWczTEpGTDVUMWNFVlc2TE9URFhUNFQxSElZd29lZWVnb0NwSTdWQmtmMnFQSEFNZnY4QmVSUSs5dUhETVdRYmRIZXI1d3AwWWxPV1U4Yk9qSXpmL2wvLy8vWE1PWDVrL1pHZFNxOUxMZjMyY1c3c3ZBOVQrQk9YcDBTQ0U2Z200Ri9lMldtdkNTUVE1Tlp5b0wybVUyaEV2b0tOd25taEVYNkZORm9GWWJEeldNd3JqTzZhYXhWUlB1eWFEbE1mMUxpTE5CNVoyZWlyUlhKdk41N1ExZHZiUmNCM2crRHNTbEZzdEpZYkdBK2tMdjg5ZXZSZnRoWVBBclhjMkdpM3ZFQy9aRHNnaUV0TmpKRXRUMHJjdmR4aytlN0UwVnFNTERWUkVBZnNrdjBDSnhEVjBXYm0vVkJTV2FrUzZsMFN1SHUzeDN1VjBQWlpDQ1daOTBlYklhdkFIMmJNWGtkT3paSnBaSkpKb3AwN2dNSG9UTU5EYTNRYWRONEFOVDFJWHVqY1FiU21xeXZPMDZBTG9aUW42VUFRSFd0aGNXdm83TlBpUU9BTnV4ZTYvZWNmQW5UZ3E5SWQxOGluQm0wbjl4WGRVTDc5NVJndGhzYTBpME5hZkZ0S1czSnJTaXN3Zm5xWVVFOGsrN2VoK3ZIbElQK2d5M2tpRjRnWmdZTzBjR08wNVY0Mk9SNDcwWW1JSWtXUzRJWUpDM0k4ZlZPTVpTTkRUY05iaEVNdTNzdnZSZmxGM2xPM3NRaG5RbXFUeGhqTFRXeFN2TVZUWm5oME9LSnp3bUt4WU8rTnRtdzBVVU00NW11dXFJMHJneFl2QmpLaUhKTkI0ZHdwQ0JMZDJkNy92dHBkN0h3d0dhaEJRNDVWM00vSjErSXh0U0ZiRFdtQVRGaTNzbmxUY0VvRG1HajBLL0pJdmUrUjRsYzgwZEFBcFhUNlp6MFU3d001bmlCd3l1dXptZG9KNUkxN0hZdmZpbDRZZGQ2eFozbmh6VWhSWGE5WDhuMWVCeENpR3E0UTZrUjlTN0FMYThDOXRaNHJwNVhMNFREaU92VjZzMmJ2dTZZVzRVc3EvbXFRdGFkNmJrSkdGMlZFZ3loUW5JR01kbFhlbGxxdzNYTGRiU2lTbnFBQ0RmaGZDNHB5Z3YzamwyRVVXVTdaNVNyN0JqVm9iWVNiNHF3ZUJjbzVHb24yRWRsK3V1UmVsRVZpUy9vODAzM3NWeFRGYUFpeExMSGNjZDFPcXdpWExCa0hGTmJiSlNWOStpUVJPM2J2OE03OGorZ0JiK05LeHZuUDY2ejNkQ1RudSs5TlBSREJjYWdGWXJqL3pzZTlWbVZQNG9pckk2NVVsZEpQSnkvcGpDdXpEc3dHeDVLRThhMTNMU01iNGdFTEZwdy8zL2NkRG0zdWU5cnM5WWNRRzVlRjlvNWovYlc4NW1lQkl2MnlyS21yZ0pGUkRtS2ovNzFGRXZ1TnlWMWtOdlUyWFZKT2h4OUplQXNiRFdJenl3c1l0RkNyTW5SZ1I0dlhnYWZRRnVUNUwxL0F5UnpXNG44OFZvZGxORk14RTdlbWo2WjJPTElDdmxUQ1hrZWlZemF5UFlVMVRGbGxkRlN2d3dvSnB4aU5DSWN0NDcvdWxxWTAyd2tEaTB6VXpkcEVSQmEzaElreHZWTnVUNHg4V2RkeG5EbnBlaHg1dzN0Wm5IZTRrOE9pSWJnYVF2UmFacFh2RmJZK2NsQXUvOUJRM2ZDaEhNaUJkNkw5TjVrczF4L0kvZDlYOGFyZWkxME9ldW11NXN6WEFaWUJqbW5BMlBwZ3l3MGJlT044UXVRWDFBMkZoWUljSnJDUUNhdTlyRUNIbGJXSlZkYWs2NlNqQnZFOE0rNHpPdmhiOEdIUng3RXJCTFhiNFF2bmtPMjAwM2l2b1J1Mk44WndYbmROWlB1RmMrMGZYcDErajYxRkZMZTNGd2VMNkFnNjdJclRIeGFSRzJ1d0ZLZFBXUUhGVnRXdnRybG4xZGdETlEwSUtPLzA5RHlncTlpRzhQUXdhWE51NVhsNHdIdHhvb2ZualVKdk1NOENVb081K1NhRmNmR0ZKdm5jNEZRTUZLdlZMaG5udFNIZ05jZU90eURXSUk0ZkQwZU1iaFlJS0J2aGNJWS9IWEpPbURGMVBtUTN1QWg2YVRNbTcyckVqeXptOVJvRk4yR1pmazdnSndBQjNxZmJyeTA4QzRvOVBzdUk1akJnY2FCSklFTEM0T0JIUjNTd3ZwQkQ3bDViYURmLzZQa1IxTWwxUkdlMmV4VVJibzUvbHUvc1padUZhNXVENzU3Znpkc1hybm51dXhkTWptYTg4Zk43a3hia0VKRHFiMllieHY5anZEYW4rRlBTb0VKNlZkOTF2eHRVdlc0RStIZnNOaWRQN2xiakJmK0tlZFdldHU2MjFZRThNZXdFZXEvK3Z1L2IweEV0NnBiN0xaUjJtSkdhamdaODgwTThkSEo2cUxmbjF5RHdtY25xWnFCN2tQZlBDWVhISWRQNFd5OU5VVDNFRXpFVyt4SHRDNXYyLy9lRnVQLytjbVFNSmg4K0FjTVJHR1RVSmYxK0VFSnJhSVd6WVpUeTI4TW5MWFRtTTBwNTlQQjJtc1hveHgrUVovYS9zZm1wcHhYM2JPN3g0L1pOMVJJb05SV0lnVVFsQ2NSN0pVQXNQUlh1YjdlaTBKamFhRUVBUFpiNnhISENhWVpDblhNYWRYcENwZDUyR2ptZlpBZk5LVlo5V3puMUxsMXFvcTBjUTlGd1l0bHhiQkF0ZFN6cWl2Q2F3OEJNQmtKVFg2K0JpRkpHYUJnUm1NSnYvT1BINTQrZzlVMWlmV0trRGtWdllHc0RwREhVWjZLSG5SY2doT3FJcHZzUmJxZUhERU9uM1NMdVgrMnI1M2JmMGtQd3pITEE4cG5Bdy9LK1cveDM3S3NJMUJtY0FYY0dGVEdnNU5KYnFBUFVGdnA5Y0x1c3dRcFM3RFk1dmJubUJSblNXL1RmSHVOL3BjY0ZqRk51WEliZW9ZWEJCVnhHaTRPZXdYVnIyQkpUZ01ZdWpXWmRTTEZkY3Z2S3Ruc2tlb3NFWEZjalRWZXE2RXUrcXdjaFBkMk4yd0lHQmllQVFPbTR1MWVWMzUxUTJDWGpCNjUzOHB0KzhyN0srRkdXMG51dk1DTGJlclZqb2Jvc25CNXRPNlhjek0rLzJkT1BWbFdOc3J2WkVnRENicG9JdU1sNjRtdUJNSnlTd2ZEbHBrT3VNUDdQSDdIa2h2bjd6NDlOcisyL0t2NlBVK3VIS0tNQzFJYnpEdkY0d0p0bWVRTmVsbmVXZ1A0QWZBZWhCd0RSdHRtZktlTVhXd2txalJhL3Y2S3ZscUEwcUw5ZTdMaE8wUWdIa00zSUFTN2RHQjRGeG5vaC92S0J6WE9VOFBIMEJjd1J5c1NONFZTekJtUytoM1JJWWdibUhOaDkyYUVoMkZnRkhNZHQ0NU5mUGMrUXpaeDQyUzd1K0h6UEhhNndVSmhYb3ZjZndMQnFwcnRxQitycmh4L2ttRWUrL1VlcVFzbjRhbXh1NmlLM2JiR1J1K2dib01MbXJnS3FVaUVrOHNCQ2M3dGhZRFRab3lpNWYzQkJpRlJ4YUFKTlFXbDZmVnF3VU1jQUVVdEUyZnE5eTJpcGFSUVZCZWRIOEN5YWx2b0QvZHpOVTdyWUp2M3hGTkNZUjlxdHp6RmdmTmUrYnI4V09hemZjWE4zZStZd3VZY09rRzNWallCZm8yNWM0bExoV3UxYTRTSVpONnk2eXhrTEs5cFJpdzZXUklJNFU5b2xNUzVHSGNSVjR3NmlKTDNndExmcUhOUXhPampWNUw1alA1elM0RWhpSzU5S2QzZ3NDd1ZSd3Fielo2Y0NyRy84NHBQM0pNd0gzK0VxWEw1ZnQ1dWZUNVZTRVFkMTlHUGYxaUdzVFREWUQ5dHFiVitEcGFDZkpXWDFnUGNZUVY5alhETmVZTkprU2FDZnU3VVplVHlYS0pNNUtqN3Y5NVJUeDdhZEZ6YUJLQW1mMk5lVnJxNmZEb3ptMlRKSVJnRnZlNlRsRkUyeHhVYXgxUzRaRTh1M1VISlVjYTVwdEFDcEYyV1NXNm5OQzllRzUya3JUMzdteUM2NzVEWlJaRDA1MGxiK0R0U1hCbW5iL3Rna3l3aytwSllEbkNEZTdzVWtCbm5JbkpVTzNzSnVGdlU3TG1PVFFoZndCMTRzajdNWDJZL2g4VVo1ZWJRc2tqVVg2eEZGVUQrNXJ1US8rVExJSFFldlpSVmhiaDIzdEpOTlE2K1k1dGFzK1ZvTmpmSk5NR3VLRE14NGNtdFhBL1lCMjQrS3UycVpkTzhCSEpEMnJ2YVN4dC8xRTZyM2M1Y25aYzg4ejBHcklGY0pKNEd5S1Y1VW5qRWs3dkZLZndzbXVmYnd0b1daeDlQT1RUS0w1TXRjU3Q0YllFckl3U1RFMTMya1R5YnhibmJrUlovM0VJNlRGTU9DOUVSMDJRaUdNWEVPUkxCaFFlQWdjNlE3UXZucG5tbk15Z0JYVzA3eVJ6RW1UQWNFbkZLYnF0YzhsZzJjaEhpdS81UGZsL3JPdXRMck9NQ1ZQUlU2NlRacHU5Q2NIbm5nWEJGYmxETFhISFdnKzBwNFhmUW1ZQ0FsQ05Mb0ZEaWVidWJFamhzdjllajBNSnhTd2lSRWhBc2VIak53Zy9pNGd3Tiswam5hemlzSVNBRzl6M0lnSEhNc0REN2NkSkl2eERmZHNSM1AxczZpd3pMWmR6Mk45akR3TU8yS0R5MFE3SFNsRlk2RUNPZkQzSmtPbG9EVU9rdWJKb2czN2c2NitNc2JNZW5xaWQzc3lYMUI0Uk5tRHRBYm12bVJWZjFqMnJrVFFxYkVEeVUrNjhzUy9SVHF6SVpUdnVnRitqbDZ1VFoyM09sVkcyM2w1TTVoSk5RMG1ZbDgyeUpNWTZpQXpwUE11Q1NxdjIyVGlBVHhiWC9SNG5NQ2JXOU5waEU2MEx6TDZCSnZQKzR5VGhBL1Irb0xDcm16WklnL1Evbis3bjA0Sk5YdU5uWFJqZnJ3a2hRNVptcEIwTVFxQVE3MHVJcG54bXlnSUEvMDlnRThjOUxHTVdiYzV4RTV4SkVpYVU2RlpKQ2UybHpQUktOTGpSSWkxa2RnS0czRC9wdlhnVWlpVXp6T3hYWDBEZEgyTnNwLytNZTJxY2U0dVkwK0lXSzBhZTVBTlkwTzk0SDZ6U0lVTDdmaittN2o0WmVrcG9meUprbXFoTmlTSHJSOU5veEJjS2tseEpzUjd5ZVIxZEZEMXlzZlZiWlJ0dUt2WVZuNmpRbDJQYTF1NC8xcUQyUWtpSGRMY1JXVjlQWHhqS1F0OCtzR1NEb21Tb21zbFNJT0dQcUlBL1I1UHRZSW1yY2FDM1kwaUdsTUgzUDFpdHNRa2EyVkNXdjJPdEJBZktCZk1EMEU4VnlFajNielk4RG9iKzZPdnBEL216QVV3RGQxSFBpS0JEeno4a2R1Q0NBMWZteWJ2WEtvaHV6L0U3WHQvTnFMUTN3d1EvR0o2TWpiRDlEbzhNaitLMGJIOHdFNG1rQm1hUC9ZQlZ5d2l3RDRtbmtmZUdZVEdVRGUzVW5BUnd4YVVOVDNiZE9VU0wyS0FFdmcyTS9Bc1BFakxBY242N3I3T1JBSS9KeXd3dnk4M0xSNmZUNE1VdzBCWlVjQnFsc3g4Q0ZVbDN3RXNncytqT285QitsKzU2T1krYzlIb3diWXgxTUhCcE5EQXFjd29scElRQXN4YkwrZ2k3VlVzWFU2YmZxRC9TZzBibGZpWi83SG1Mb212S1F5MGZXZmFCZ2liT1o3ZjEyYVFoS3I0V053YkNqRmdvdjlndGVqNlBLM3AvUVdyWTFINXZwd2dnWm9JWWJ0RnI2c3NyWDAxdGNwOXNEL1lEOEtEY1pPbHkvN0gyUHFKeDVlSHA5VCtENzVsbXFudWhqbmVYOWRVRTBoaldXcjU4Z0hxb1pTTERpOTJpOTRQUXFINm05UHV5dExhZmxIK1pINnFZR3ZmYnZjTmliTC8wTEJGR1haMm5rbWVWZTN4K3Z6QTRndytaVU1mVkdoVTFVcWJhenpRUmpGU1pybFJWblZUZHYxd3pqTnk3cnR4M25kei92OUFBakJQMWFIbi9tTHhMT05pZlN6TmxseHZDQktiMktXcDJxNjhUd3hldHR4ZjNiMEF4U0VVWnlrV1Y2VVZkMjBYVCtNMDd5czIzNmMxLzI4M3crQUVJeWdHRTZRRk0yd0hDK0lrcXk4c29lcUc4L2kzUjNiY1QwL0NLTTRTYk84S0t1NmFidCtHS2Q1K1lPdzd1NzJoK1BwZkxuZThBUWlpVXloMHVnTUpvdk40Zkw0QXFGSTdQbWwyNUxKdGJTdjd0SkIvdEJNd1J1enVkZ08xQnlPMDdIbHVwTXZTbWhSRC8xNXAvWHkzRWdLNHlTVHVPRU1Hd0Zsbm14TU1RaVdNcUVWUWNhZWFhTUprR1hMc0M3Um15VnhJN1o2TU0xZlRyUW95KytpYzhpZVNxc09TVi9kOENtWHAxMDBKbG95WkZ4cENIOGNDRkY5dFByTWVJdXRHYnB1by90a0I0SjNXbDZvWjVqbGsrWnNUTkNjR3IzOVJ1Rjl4djdoMW54bXdlWDE1Syt2SkxlZ1VPbHdydkFacHFKOWFNS05kOU9TYjBPOFV3dkNLWGhXV1RLdSs2YzRYamM3OUFPTEppYmpWQXNhTGx4d1BOdWZZdDRSZTdhM0ZGdHRrUTJHc0Z5SzZXYkdXbk1rRkVCakJGQmptN0F1ckR3bnM2aWNpQmV1Wk9ManJsV3BGdS9nUTV2TFhMeEVUSi8yTHVjbGRYK1d5ckprZWI1STQ4Tmg4K2liUXdxVGo4aW9PWDFTdzRlNnBMU2lISkpJUjdHZEdyVG5sOTNGcXF3WlN2RkNPYzZqTVI2TjVkUnp0aVpjQlhJNEVPV3U1cFRkRVRWOHI0eFlQY1lPcVowTTFJejZQQjh5RldCWmNyTjIxNmhqSUtpcjU4MzQ1VjYwd2tQdVVvRWluSEZ6d083ZURzMkpzQ2RwcWpJcFpKM3pBcjlyMVRWUldiakVFQ0RSN2lNRlN4SDFrOGJMSnhWRUhaZ3lVZ0NaQmo2SkFzdTRGYXdlZTVzNUhUNlpmRUNtZElxS2Vnc29PZ2xDLzB6SlFBQUZvMDdwUEFXb3VoYUlGbml3SDJVN0VyVnpnWXlCU0twd0UvTEdxMnQzckVRRFlsSmZYZW9rd0didFJXTWFncmQ1UzNGTW10RXZmUFYwUnR0WFZoUDAwUWd5TlpXbVVMa0tQRFZ3Z1hyTUdVYTZOcWRoMHFCQ3lqWXN0UWttdEFBakFYdlpnSVpKQmk3Yjd2MkZoQkt0RXhZSjVhNEh1K2Qxb3hScS9pSzJla2kwb1BlRWoxT1duZWgzSnJ5R0dWcmx2ZHFPcE9xT3dHejYrQ1duM3UvVC9hM0lKM0ZCZXZJMXpJQmR1a1g4Qkw0ZHMxeTdyVXRTUmJuakRQMWV0d3ZTTjFIVWRiQzVyOGRkVXF5aXdpRkJteE52OVJwbWZYdDEwYUpEQUZYNW9INUNOZEhhYnVnZGl4QjFyVXRMWWRubUtYd2NUeTN5VE9MWkdRSnpldEtpdFpncElQam9Mek1GMVRvbjBOUkx5aHU2ZE55aVFVdUc2R01sV082MFJhT1d6VFg2N3VzS2l1RkVDR041b3hYcDVyUnNaQUcxNEV5dXpzcWkwbGNzSVhiaFpYZkU2RWNOWkliUU1lMG9ZQVFnYXNOTUJ6M2I3QlVrSFRGVGcwUkhvUWhNbEZaR0dVL2VqZGVNZndwTGZsVDFIRmlFZDd6bmJWZmRhdjk0bWRQM08xTUl5UURMZnRLVGw0Y1ZSRzBxSFZNbDYyRS9BMjdEL0ZJcHJ2NkFoUE1uWnlDdGt5aVkyKzZwY1Boc0cwNG5ZSVpEUjcyNndRMnRQUHlrWS9xaTcyWFdnTEpkL1FBN0dOVzVDbER6ZjkzQXg1L3hEd0Y2TEgrT2pjYjdnMEhUZ1praERMZzFzdTJxTHQ1U2JMQjk4U3YwbjdqUzhYa1UxQklYNi93WkhpMVUrdHd2dTlWUTNOMytEd0FBQUE9PSIpIGZvcm1hdCgid29mZjIiKSx1cmwoLy9hdC5hbGljZG4uY29tL3QvZm9udF8xNTI5NDU1X2s0czZkaTFkMS53b2ZmP3Q9MTU5Njk2MDI5MjM4NCkgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vYXQuYWxpY2RuLmNvbS90L2ZvbnRfMTUyOTQ1NV9rNHM2ZGkxZDEudHRmP3Q9MTU5Njk2MDI5MjM4NCkgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2F0LmFsaWNkbi5jb20vdC9mb250XzE1Mjk0NTVfazRzNmRpMWQxLnN2Zz90PTE1OTY5NjAyOTIzODQjaWNvbmZvbnQpIGZvcm1hdCgic3ZnIil9XG4udS1pY29uZm9udFtkYXRhLXYtZTRkNmQzNjJde3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmb250Om5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSB1aWNvbi1pY29uZm9udDtmb250LXNpemU6aW5oZXJpdDt0ZXh0LXJlbmRlcmluZzphdXRvOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS51LWljb25mb250W2RhdGEtdi1lNGQ2ZDM2Ml06OmJlZm9yZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS51aWNvbi1lbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MGEifS51aWNvbi16aFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OTIifS51aWNvbi1sZXZlbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OTMifS51aWNvbi13b21hbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OWMifS51aWNvbi1tYW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjk3In0udWljb24tY29sdW1uLWxpbmVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjhlIn0udWljb24tZW1wdHktcGFnZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjcifS51aWNvbi1lbXB0eS1kYXRhW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyZiJ9LnVpY29uLWVtcHR5LWNhcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDIifS51aWNvbi1lbXB0eS1vcmRlcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzkifS51aWNvbi1lbXB0eS1hZGRyZXNzW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0NiJ9LnVpY29uLWVtcHR5LW1lc3NhZ2VbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmE5In0udWljb24tZW1wdHktc2VhcmNoW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2NCJ9LnVpY29uLWVtcHR5LWZhdm9yW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3YyJ9LnVpY29uLWVtcHR5LWNvdXBvbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODIifS51aWNvbi1lbXB0eS1oaXN0b3J5W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4NCJ9LnVpY29uLWVtcHR5LXBlcm1pc3Npb25bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjg2In0udWljb24tZW1wdHktbmV3c1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODcifS51aWNvbi1lbXB0eS13aWZpW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4OCJ9LnVpY29uLWVtcHR5LWxpc3RbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjhiIn0udWljb24tYXJyb3ctbGVmdC1kb3VibGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjhjIn0udWljb24tYXJyb3ctcmlnaHQtZG91YmxlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4ZCJ9LnVpY29uLXJlZC1wYWNrZXRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjkxIn0udWljb24tcmVkLXBhY2tldC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY5MCJ9LnVpY29uLW9yZGVyW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4ZiJ9LnVpY29uLW5hdi1iYWNrLWFycm93W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3ZiJ9LnVpY29uLW5hdi1iYWNrW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4MyJ9LnVpY29uLWNoZWNrYm94LW1hcmtbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmE4In0udWljb24tYXJyb3ctdXAtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YjAifS51aWNvbi1hcnJvdy1kb3duLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjAwIn0udWljb24tYmFja3NwYWNlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3YiJ9LnVpY29uLWFuZHJvaWQtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjdlIn0udWljb24tYW5kcm9pZC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3ZCJ9LnVpY29uLXF1ZXN0aW9uW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTcxNSJ9LnVpY29uLXBhdXNlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZThmYSJ9LnVpY29uLWNsb3NlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY4NSJ9LnVpY29uLXZvbHVtZS11cFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzMifS51aWNvbi12b2x1bWUtb2ZmW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0NCJ9LnVpY29uLWluZm9bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjUzIn0udWljb24tZXJyb3JbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmQzIn0udWljb24tbG9jay1vcGVuZWQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NzQifS51aWNvbi1sb2NrLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOTc5In0udWljb24tbG9ja1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5N2EifS51aWNvbi1waG90by1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk4YiJ9LnVpY29uLXBob3RvW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk4ZCJ9LnVpY29uLWFjY291bnQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MTQifS51aWNvbi1taW51cy1wZW9wbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MTUifS51aWNvbi1wbHVzLXBlb3BsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyNiJ9LnVpY29uLWFjY291bnRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjI4In0udWljb24tdGh1bWItZG93bi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTcyNiJ9LnVpY29uLXRodW1iLWRvd25bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNzI3In0udWljb24tdGh1bWItdXAtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MmYifS51aWNvbi10aHVtYi11cFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3MzMifS51aWNvbi1wZXJzb24tZGVsZXRlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjZhIn0udWljb24tY3V0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk0OCJ9LnVpY29uLWZpbmdlcnByaW50W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk1NSJ9LnVpY29uLWhvbWUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NjQifS51aWNvbi1ob21lW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk2NSJ9LnVpY29uLWhvdXJnbGFzcy1oYWxmLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlOTY2In0udWljb24taG91cmdsYXNzW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTk2NyJ9LnVpY29uLWxvY2stb3BlbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU5NzMifS51aWNvbi1pbnRlZ3JhbC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTcwMyJ9LnVpY29uLWludGVncmFsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTcwNCJ9LnVpY29uLWNvdXBvbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4YWUifS51aWNvbi1jb3Vwb24tZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4YzQifS51aWNvbi1rZWZ1LWVybWFpW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1NiJ9LnVpY29uLXNjYW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjYyIn0udWljb24tcm1iW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwOCJ9LnVpY29uLXJtYi1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NTcifS51aWNvbi1ybWItY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3NyJ9LnVpY29uLWdpZnRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjViIn0udWljb24tZ2lmdC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY1YyJ9LnVpY29uLWJvb2ttYXJrLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjNiIn0udWljb24temh1YW5mYVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MGIifS51aWNvbi1leWUtb2ZmLW91dGxpbmVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjJiIn0udWljb24tZXllLW9mZltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDgifS51aWNvbi1wYXVzZS1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjQzIn0udWljb24tcGxheS1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjQ3In0udWljb24tcGF1c2UtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjU0In0udWljb24tcGxheS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NTUifS51aWNvbi1ncmlkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3MyJ9LnVpY29uLXBsYXktcmlnaHRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjEwIn0udWljb24tcGxheS1sZWZ0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2ZCJ9LnVpY29uLWNhbGVuZGFyW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2ZSJ9LnVpY29uLXJld2luZC1yaWdodFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NmYifS51aWNvbi1yZXdpbmQtbGVmdFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NzEifS51aWNvbi1za2lwLWZvcndhcmQtcmlnaHRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjcyIn0udWljb24tc2tpcC1iYWNrLWxlZnRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjc0In0udWljb24tcGxheS1sZWZ0LWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjc1In0udWljb24tcGxheS1yaWdodC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3NiJ9LnVpY29uLWdyaWQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NzgifS51aWNvbi1yZXdpbmQtbGVmdC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3OSJ9LnVpY29uLXJld2luZC1yaWdodC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY3YSJ9LnVpY29uLXB1c2hwaW5bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlN2UzIn0udWljb24tc3RhcltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NWYifS51aWNvbi1zdGFyLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjY5In0udWljb24tc2VydmVyLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNzUxIn0udWljb24tc2VydmVyLW1hbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YmMifS51aWNvbi1lZGl0LXBlbltkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MTIifS51aWNvbi1lZGl0LXBlbi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2YiJ9LnVpY29uLXdpZmlbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjY3In0udWljb24td2lmaS1vZmZbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjY4In0udWljb24tZmlsZS10ZXh0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2MyJ9LnVpY29uLWZpbGUtdGV4dC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2NSJ9LnVpY29uLW1vcmUtZG90LWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjMwIn0udWljb24tbWludXNbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjE4In0udWljb24tbWludXMtY2lyY2xlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxYiJ9LnVpY29uLXBsdXNbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjJkIn0udWljb24tcGx1cy1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjJlIn0udWljb24tbWludXMtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjUyIn0udWljb24tcGx1cy1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NjEifS51aWNvbi1lbWFpbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MTEifS51aWNvbi1lbWFpbC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0MiJ9LnVpY29uLXBob25lW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyMiJ9LnVpY29uLXBob25lLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjRmIn0udWljb24tY2xvY2tbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjBmIn0udWljb24tY2FyW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwYyJ9LnVpY29uLWNhci1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzNiJ9LnVpY29uLXdhcm5pbmdbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjk0In0udWljb24td2FybmluZy1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0ZCJ9LnVpY29uLXNlYXJjaFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MmEifS51aWNvbi1iYWlkdS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODAifS51aWNvbi1iYWlkdVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODEifS51aWNvbi1mYWNlYm9va1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ODkifS51aWNvbi1mYWNlYm9vay1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OGEifS51aWNvbi1xem9uZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OTUifS51aWNvbi1xem9uZS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2OTYifS51aWNvbi1tb21lbnRzLWNpcmNlbC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY5YSJ9LnVpY29uLW1vbWVudHNbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjliIn0udWljb24tcXEtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmEwIn0udWljb24tcXEtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YTEifS51aWNvbi13ZWlib1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YTQifS51aWNvbi13ZWliby1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YTUifS51aWNvbi10YW9iYW9bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmE2In0udWljb24tdGFvYmFvLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTZhNyJ9LnVpY29uLXR3aXR0ZXJbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmFhIn0udWljb24tdHdpdHRlci1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2YWIifS51aWNvbi13ZWl4aW4tY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmIxIn0udWljb24td2VpeGluLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmIyIn0udWljb24temhpZnViYW8tY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmI4In0udWljb24temhpZnViYW9bZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmI5In0udWljb24temhpaHVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNmJhIn0udWljb24temhpaHUtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNzA5In0udWljb24tbGlzdFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NTAifS51aWNvbi1saXN0LWRvdFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MTYifS51aWNvbi1zZXR0aW5nW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxZiJ9LnVpY29uLWJlbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjA5In0udWljb24tYmVsbC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0MCJ9LnVpY29uLWF0dGFjaFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MzIifS51aWNvbi1zaG9wcGluZy1jYXJ0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyMSJ9LnVpY29uLXNob3BwaW5nLWNhcnQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NWQifS51aWNvbi10YWdzW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyOSJ9LnVpY29uLXNoYXJlW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzMSJ9LnVpY29uLXF1ZXN0aW9uLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY2NiJ9LnVpY29uLXF1ZXN0aW9uLWNpcmNsZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MjUifS51aWNvbi1lcnJvci1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjI0In0udWljb24tY2hlY2ttYXJrLWNpcmNsZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2M2QifS51aWNvbi1jbG9zZS1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjNmIn0udWljb24taW5mby1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjYwIn0udWljb24tbWQtcGVyc29uLWFkZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ZTQifS51aWNvbi1tZC1wZXJzb24tZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2ZWEifS51aWNvbi1iYWctZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MTcifS51aWNvbi1iYWdbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjE5In0udWljb24tY2hhdC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxZSJ9LnVpY29uLWNoYXRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjIwIn0udWljb24tbW9yZS1jaXJjbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjNlIn0udWljb24tbW9yZS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NDUifS51aWNvbi12b2x1bWVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjZjIn0udWljb24tdm9sdW1lLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjcwIn0udWljb24tcmVsb2FkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTc4OCJ9LnVpY29uLWNhbWVyYVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3ZDcifS51aWNvbi1oZWFydFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU3ZGYifS51aWNvbi1oZWFydC1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg1MSJ9LnVpY29uLW1pbnVzLXNxdWFyZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg1NSJ9LnVpY29uLXBsdXMtc3F1YXJlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODU2In0udWljb24tcHVzaHBpbi1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg2ZSJ9LnVpY29uLWNhbWVyYS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg3MCJ9LnVpY29uLXNldHRpbmctZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4NzIifS51aWNvbi1nb29nbGVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODdhIn0udWljb24taWVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODdiIn0udWljb24tYXBwbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4ODEifS51aWNvbi1jaHJvbWUtY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlODg1In0udWljb24tZ2l0aHViLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg4NyJ9LnVpY29uLUlFLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTg4OSJ9LnVpY29uLWdvb2dsZS1jaXJjbGUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU4OGEifS51aWNvbi1hcnJvdy1kb3duW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwZCJ9LnVpY29uLWFycm93LWxlZnRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjBlIn0udWljb24tbWFwW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxZCJ9LnVpY29uLW1hbi1hZGQtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NGMifS51aWNvbi10YWdzLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjUxIn0udWljb24tYXJyb3ctbGVmdHdhcmRbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjAxIn0udWljb24tYXJyb3ctcmlnaHR3YXJkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwMyJ9LnVpY29uLWFycm93LWRvd253YXJkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwNCJ9LnVpY29uLWFycm93LXJpZ2h0W2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwNSJ9LnVpY29uLWFycm93LXVwW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYwNiJ9LnVpY29uLWFycm93LXVwd2FyZFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MDcifS51aWNvbi1ib29rbWFya1tkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MGEifS51aWNvbi1leWVbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjEzIn0udWljb24tbWFuLWRlbGV0ZVtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2MWEifS51aWNvbi1tYW4tYWRkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYxYyJ9LnVpY29uLXRyYXNoW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyMyJ9LnVpY29uLWVycm9yLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYyYyJ9LnVpY29uLWNhbGVuZGFyLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjM0In0udWljb24tY2hlY2ttYXJrLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzNSJ9LnVpY29uLWNsb3NlLWNpcmNsZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzNyJ9LnVpY29uLWNsb2NrLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjM4In0udWljb24tY2hlY2ttYXJrW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzYSJ9LnVpY29uLWRvd25sb2FkW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTYzYyJ9LnVpY29uLWV5ZS1maWxsW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0MSJ9LnVpY29uLW1pYy1vZmZbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjQ5In0udWljb24tbWljW2RhdGEtdi1lNGQ2ZDM2Ml06YmVmb3Jle2NvbnRlbnQ6IlxcZTY0YSJ9LnVpY29uLWluZm8tY2lyY2xlLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjRiIn0udWljb24tbWFwLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjRlIn0udWljb24tdHJhc2gtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NTgifS51aWNvbi12b2x1bWUtb2ZmLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjU5In0udWljb24tdm9sdW1lLXVwLWZpbGxbZGF0YS12LWU0ZDZkMzYyXTpiZWZvcmV7Y29udGVudDoiXFxlNjVhIn0udWljb24tc2hhcmUtZmlsbFtkYXRhLXYtZTRkNmQzNjJdOmJlZm9yZXtjb250ZW50OiJcXGU2NWUifS51LWljb25bZGF0YS12LWU0ZDZkMzYyXXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0udS1pY29uLS1sZWZ0W2RhdGEtdi1lNGQ2ZDM2Ml17ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2U7YWxpZ24taXRlbXM6Y2VudGVyfS51LWljb24tLXJpZ2h0W2RhdGEtdi1lNGQ2ZDM2Ml17ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcn0udS1pY29uLS10b3BbZGF0YS12LWU0ZDZkMzYyXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS51LWljb24tLWJvdHRvbVtkYXRhLXYtZTRkNmQzNjJde2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS51LWljb25fX2ljb25bZGF0YS12LWU0ZDZkMzYyXXtwb3NpdGlvbjpyZWxhdGl2ZX0udS1pY29uX19pY29uLS1wcmltYXJ5W2RhdGEtdi1lNGQ2ZDM2Ml17Y29sb3I6IzI5NzlmZn0udS1pY29uX19pY29uLS1zdWNjZXNzW2RhdGEtdi1lNGQ2ZDM2Ml17Y29sb3I6IzE5YmU2Yn0udS1pY29uX19pY29uLS1lcnJvcltkYXRhLXYtZTRkNmQzNjJde2NvbG9yOiNmYTM1MzR9LnUtaWNvbl9faWNvbi0td2FybmluZ1tkYXRhLXYtZTRkNmQzNjJde2NvbG9yOiNmOTB9LnUtaWNvbl9faWNvbi0taW5mb1tkYXRhLXYtZTRkNmQzNjJde2NvbG9yOiM5MDkzOTl9LnUtaWNvbl9fZGVjaW1hbFtkYXRhLXYtZTRkNmQzNjJde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW59LnUtaWNvbl9faW1nW2RhdGEtdi1lNGQ2ZDM2Ml17aGVpZ2h0OmF1dG87d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS51LWljb25fX2xhYmVsW2RhdGEtdi1lNGQ2ZDM2Ml17bGluZS1oZWlnaHQ6MX0nLCIiXSksZS5leHBvcnRzPXR9LDUzMTU6ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPW8oIjI0ZmIiKTt0PW4oITEpLHQucHVzaChbZS5pLCdAY2hhcnNldCAiVVRGLTgiO1xyXG4vKipcclxuICog6L+Z6YeM5pivdW5pLWFwcOWGhee9rueahOW4uOeUqOagt+W8j+WPmOmHj1xyXG4gKlxyXG4gKiB1bmktYXBwIOWumOaWueaJqeWxleaPkuS7tuWPiuaPkuS7tuW4guWcuu+8iGh0dHBzOi8vZXh0LmRjbG91ZC5uZXQuY27vvInkuIrlvojlpJrkuInmlrnmj5Lku7blnYfkvb/nlKjkuobov5nkupvmoLflvI/lj5jph49cclxuICog5aaC5p6c5L2g5piv5o+S5Lu25byA5Y+R6ICF77yM5bu66K6u5L2g5L2/55Soc2Nzc+mihOWkhOeQhu+8jOW5tuWcqOaPkuS7tuS7o+eggeS4reebtOaOpeS9v+eUqOi/meS6m+WPmOmHj++8iOaXoOmcgCBpbXBvcnQg6L+Z5Liq5paH5Lu277yJ77yM5pa55L6/55So5oi36YCa6L+H5pCt56ev5pyo55qE5pa55byP5byA5Y+R5pW05L2T6aOO5qC85LiA6Ie055qEQXBwXHJcbiAqXHJcbiAqL1xyXG4vKipcclxuICog5aaC5p6c5L2g5pivQXBw5byA5Y+R6ICF77yI5o+S5Lu25L2/55So6ICF77yJ77yM5L2g5Y+v5Lul6YCa6L+H5L+u5pS56L+Z5Lqb5Y+Y6YeP5p2l5a6a5Yi26Ieq5bex55qE5o+S5Lu25Li76aKY77yM5a6e546w6Ieq5a6a5LmJ5Li76aKY5Yqf6IO9XHJcbiAqXHJcbiAqIOWmguaenOS9oOeahOmhueebruWQjOagt+S9v+eUqOS6hnNjc3PpooTlpITnkIbvvIzkvaDkuZ/lj6/ku6Xnm7TmjqXlnKjkvaDnmoQgc2NzcyDku6PnoIHkuK3kvb/nlKjlpoLkuIvlj5jph4/vvIzlkIzml7bml6DpnIAgaW1wb3J0IOi/meS4quaWh+S7tlxyXG4gKi9cclxuLyog6aKc6Imy5Y+Y6YePICovXHJcbi8q5YWo5bGA5Li76aKY6Imy6LCDKi9cclxuLyog6KGM5Li655u45YWz6aKc6ImyICovXHJcbi8qIOaWh+Wtl+WfuuacrOminOiJsiAqL1xyXG4vKiDog4zmma/popzoibIgKi9cclxuLyog6L655qGG6aKc6ImyICovXHJcbi8qIOWwuuWvuOWPmOmHjyAqL1xyXG4vKiDmloflrZflsLrlr7ggKi9cclxuLyog5Zu+54mH5bC65a+4ICovXHJcbi8qIEJvcmRlciBSYWRpdXMgKi9cclxuLyog5rC05bmz6Ze06LedICovXHJcbi8qIOWeguebtOmXtOi3nSAqL1xyXG4vKiDpgI/mmI7luqYgKi9cclxuLyog5paH56ug5Zy65pmv55u45YWzICovLnUtdG9hc3RbZGF0YS12LTM2MzA3Y2FmXXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4Oi0xO3RyYW5zaXRpb246b3BhY2l0eSAuM3M7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOiU/OD8lO2JhY2tncm91bmQ6IzU4NTg1ODtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTolPzI4PyU7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7cGFkZGluZzolPzE4PyUgJT80MD8lfS51LXRvYXN0LnUtc2hvd1tkYXRhLXYtMzYzMDdjYWZde29wYWNpdHk6MX0udS1pY29uW2RhdGEtdi0zNjMwN2NhZl17bWFyZ2luLXJpZ2h0OiU/MTA/JTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtsaW5lLWhlaWdodDpub3JtYWx9LnUtcG9zaXRpb24tY2VudGVyW2RhdGEtdi0zNjMwN2NhZl17bGVmdDo1MCU7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7bWF4LXdpZHRoOjcwJX0udS1wb3NpdGlvbi10b3BbZGF0YS12LTM2MzA3Y2FmXXtsZWZ0OjUwJTt0b3A6MjAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0udS1wb3NpdGlvbi1ib3R0b21bZGF0YS12LTM2MzA3Y2FmXXtsZWZ0OjUwJTtib3R0b206MjAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKX0udS10eXBlLXByaW1hcnlbZGF0YS12LTM2MzA3Y2FmXXtjb2xvcjojMjk3OWZmO2JhY2tncm91bmQtY29sb3I6I2VjZjVmZjtib3JkZXI6MXB4IHNvbGlkICNkN2VhZmV9LnUtdHlwZS1zdWNjZXNzW2RhdGEtdi0zNjMwN2NhZl17Y29sb3I6IzE5YmU2YjtiYWNrZ3JvdW5kLWNvbG9yOiNkYmYxZTE7Ym9yZGVyOjFweCBzb2xpZCAjYmVmNWM4fS51LXR5cGUtZXJyb3JbZGF0YS12LTM2MzA3Y2FmXXtjb2xvcjojZmEzNTM0O2JhY2tncm91bmQtY29sb3I6I2ZlZjBmMDtib3JkZXI6MXB4IHNvbGlkICNmZGUyZTJ9LnUtdHlwZS13YXJuaW5nW2RhdGEtdi0zNjMwN2NhZl17Y29sb3I6I2Y5MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZGY2ZWM7Ym9yZGVyOjFweCBzb2xpZCAjZmFlY2Q4fS51LXR5cGUtaW5mb1tkYXRhLXYtMzYzMDdjYWZde2NvbG9yOiM5MDkzOTk7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY1O2JvcmRlcjoxcHggc29saWQgI2ViZWVmNX0udS10eXBlLWRlZmF1bHRbZGF0YS12LTM2MzA3Y2FmXXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzU4NTg1OH0nLCIiXSksZS5leHBvcnRzPXR9LDY4Mzg6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCk7dmFyIG49bygiMTNjNCIpLGk9by5uKG4pO2Zvcih2YXIgYSBpbiBuKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24oZSl7by5kKHQsZSwoZnVuY3Rpb24oKXtyZXR1cm4gbltlXX0pKX0oYSk7dFsiZGVmYXVsdCJdPWkuYX0sIjgxM2UiOmZ1bmN0aW9uKGUsdCxvKXsidXNlIHN0cmljdCI7by5yKHQpO3ZhciBuPW8oIjkyMmYiKSxpPW8ubihuKTtmb3IodmFyIGEgaW4gbilbImRlZmF1bHQiXS5pbmRleE9mKGEpPDAmJmZ1bmN0aW9uKGUpe28uZCh0LGUsKGZ1bmN0aW9uKCl7cmV0dXJuIG5bZV19KSl9KGEpO3RbImRlZmF1bHQiXT1pLmF9LDg3Mzg6ZnVuY3Rpb24oZSx0LG8pe3ZhciBuPW8oIjUzMTUiKTtuLl9fZXNNb2R1bGUmJihuPW4uZGVmYXVsdCksInN0cmluZyI9PT10eXBlb2YgbiYmKG49W1tlLmksbiwiIl1dKSxuLmxvY2FscyYmKGUuZXhwb3J0cz1uLmxvY2Fscyk7dmFyIGk9bygiNGYwNiIpLmRlZmF1bHQ7aSgiMWZkZmVlZTMiLG4sITAse3NvdXJjZU1hcDohMSxzaGFkb3dNb2RlOiExfSl9LCI5MjJmIjpmdW5jdGlvbihlLHQsbyl7InVzZSBzdHJpY3QiO28oIjdhODIiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMCxvKCJhOWUzIiksbygiYzk3NSIpLG8oImI2NGIiKSxvKCJhYzFmIiksbygiMDBiNCIpO3ZhciBuPXtuYW1lOiJ1LXRvYXN0Iixwcm9wczp7ekluZGV4Ont0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OiIifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpc1Nob3c6ITEsdGltZXI6bnVsbCxjb25maWc6e3BhcmFtczp7fSx0aXRsZToiIix0eXBlOiIiLGR1cmF0aW9uOjJlMyxpc1RhYjohMSx1cmw6IiIsaWNvbjohMCxwb3NpdGlvbjoiY2VudGVyIixjYWxsYmFjazpudWxsLGJhY2s6ITF9LHRtcENvbmZpZzp7fX19LGNvbXB1dGVkOntpY29uTmFtZTpmdW5jdGlvbigpe2lmKFsiZXJyb3IiLCJ3YXJuaW5nIiwic3VjY2VzcyIsImluZm8iXS5pbmRleE9mKHRoaXMudG1wQ29uZmlnLnR5cGUpPj0wJiZ0aGlzLnRtcENvbmZpZy5pY29uKXt2YXIgZT10aGlzLiR1LnR5cGUyaWNvbih0aGlzLnRtcENvbmZpZy50eXBlKTtyZXR1cm4gZX19LHVaSW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1Nob3c/dGhpcy56SW5kZXg/dGhpcy56SW5kZXg6dGhpcy4kdS56SW5kZXgudG9hc3Q6Ijk5OTk5OSJ9fSxtZXRob2RzOntzaG93OmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy50bXBDb25maWc9dGhpcy4kdS5kZWVwTWVyZ2UodGhpcy5jb25maWcsZSksdGhpcy50aW1lciYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnRpbWVyPW51bGwpLHRoaXMuaXNTaG93PSEwLHRoaXMudGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LmlzU2hvdz0hMSxjbGVhclRpbWVvdXQodC50aW1lciksdC50aW1lcj1udWxsLCJmdW5jdGlvbiI9PT10eXBlb2YgdC50bXBDb25maWcuY2FsbGJhY2smJnQudG1wQ29uZmlnLmNhbGxiYWNrKCksdC50aW1lRW5kKCl9KSx0aGlzLnRtcENvbmZpZy5kdXJhdGlvbil9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLmlzU2hvdz0hMSx0aGlzLnRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9bnVsbCl9LHRpbWVFbmQ6ZnVuY3Rpb24oKXtpZih0aGlzLnRtcENvbmZpZy51cmwpe2lmKCIvIiE9dGhpcy50bXBDb25maWcudXJsWzBdJiYodGhpcy50bXBDb25maWcudXJsPSIvIit0aGlzLnRtcENvbmZpZy51cmwpLE9iamVjdC5rZXlzKHRoaXMudG1wQ29uZmlnLnBhcmFtcykubGVuZ3RoKXt2YXIgZT0iIjsvLipcLy4qXD8uKj0uKi8udGVzdCh0aGlzLnRtcENvbmZpZy51cmwpPyhlPXRoaXMuJHUucXVlcnlQYXJhbXModGhpcy50bXBDb25maWcucGFyYW1zLCExKSx0aGlzLnRtcENvbmZpZy51cmw9dGhpcy50bXBDb25maWcudXJsKyImIitlKTooZT10aGlzLiR1LnF1ZXJ5UGFyYW1zKHRoaXMudG1wQ29uZmlnLnBhcmFtcyksdGhpcy50bXBDb25maWcudXJsKz1lKX10aGlzLnRtcENvbmZpZy5pc1RhYj91bmkuc3dpdGNoVGFiKHt1cmw6dGhpcy50bXBDb25maWcudXJsfSk6dW5pLm5hdmlnYXRlVG8oe3VybDp0aGlzLnRtcENvbmZpZy51cmx9KX1lbHNlIHRoaXMudG1wQ29uZmlnLmJhY2smJnRoaXMuJHUucm91dGUoe3R5cGU6ImJhY2sifSl9fX07dC5kZWZhdWx0PW59LCI5OWFhIjpmdW5jdGlvbihlLHQsbyl7InVzZSBzdHJpY3QiO28uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxvLmQodCwiYyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSksby5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBufSkpO3ZhciBuPXt1SWNvbjpvKCJiZDhlIikuZGVmYXVsdH0saT1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLiRjcmVhdGVFbGVtZW50LG89ZS5fc2VsZi5fY3x8dDtyZXR1cm4gbygidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJ1LXRvYXN0IixjbGFzczpbZS5pc1Nob3c/InUtc2hvdyI6IiIsInUtdHlwZS0iK2UudG1wQ29uZmlnLnR5cGUsInUtcG9zaXRpb24tIitlLnRtcENvbmZpZy5wb3NpdGlvbl0sc3R5bGU6e3pJbmRleDplLnVaSW5kZXh9fSxbbygidi11bmktdmlldyIse3N0YXRpY0NsYXNzOiJ1LWljb24td3JhcCJ9LFtlLnRtcENvbmZpZy5pY29uP28oInUtaWNvbiIse3N0YXRpY0NsYXNzOiJ1LWljb24iLGF0dHJzOntuYW1lOmUuaWNvbk5hbWUsc2l6ZTozMCxjb2xvcjplLnRtcENvbmZpZy50eXBlfX0pOmUuX2UoKV0sMSksbygidi11bmktdGV4dCIse3N0YXRpY0NsYXNzOiJ1LXRleHQifSxbZS5fdihlLl9zKGUudG1wQ29uZmlnLnRpdGxlKSldKV0sMSl9LGE9W119LGJkOGU6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCk7dmFyIG49bygiMWU4ZCIpLGk9bygiNjgzOCIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24oZSl7by5kKHQsZSwoZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pKX0oYSk7bygiYzhiMSIpO3ZhciBkPW8oImYwYzUiKSxjPU9iamVjdChkWyJhIl0pKGlbImRlZmF1bHQiXSxuWyJiIl0sblsiYyJdLCExLG51bGwsImU0ZDZkMzYyIixudWxsLCExLG5bImEiXSx2b2lkIDApO3RbImRlZmF1bHQiXT1jLmV4cG9ydHN9LGMxOTg6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0IjtvLnIodCk7dmFyIG49bygiOTlhYSIpLGk9bygiODEzZSIpO2Zvcih2YXIgYSBpbiBpKVsiZGVmYXVsdCJdLmluZGV4T2YoYSk8MCYmZnVuY3Rpb24oZSl7by5kKHQsZSwoZnVuY3Rpb24oKXtyZXR1cm4gaVtlXX0pKX0oYSk7bygiYzYwN2EiKTt2YXIgZD1vKCJmMGM1IiksYz1PYmplY3QoZFsiYSJdKShpWyJkZWZhdWx0Il0sblsiYiJdLG5bImMiXSwhMSxudWxsLCIzNjMwN2NhZiIsbnVsbCwhMSxuWyJhIl0sdm9pZCAwKTt0WyJkZWZhdWx0Il09Yy5leHBvcnRzfSxjNjA3YTpmdW5jdGlvbihlLHQsbyl7InVzZSBzdHJpY3QiO3ZhciBuPW8oIjg3MzgiKSxpPW8ubihuKTtpLmF9LGM4YjE6ZnVuY3Rpb24oZSx0LG8peyJ1c2Ugc3RyaWN0Ijt2YXIgbj1vKCJkNmI1IiksaT1vLm4obik7aS5hfSxkNmI1OmZ1bmN0aW9uKGUsdCxvKXt2YXIgbj1vKCI0NzY3Iik7bi5fX2VzTW9kdWxlJiYobj1uLmRlZmF1bHQpLCJzdHJpbmciPT09dHlwZW9mIG4mJihuPVtbZS5pLG4sIiJdXSksbi5sb2NhbHMmJihlLmV4cG9ydHM9bi5sb2NhbHMpO3ZhciBpPW8oIjRmMDYiKS5kZWZhdWx0O2koImYyN2E1ZWI0IixuLCEwLHtzb3VyY2VNYXA6ITEsc2hhZG93TW9kZTohMX0pfX1dKTs="}},"time_used":279,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":279,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"retail-shopping.shop/h5/static/img/logo.c9ebaeea.png","fqdn":"retail-shopping.shop","domain":"retail-shopping.shop","tld":"shop"},"ip":{"addr":"47.82.68.115","port":443,"asn":45102,"as":"Alibaba US Technology Co., Ltd.","country":"Hong Kong","country_code":"HK"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:07.251Z","timestamp":1785143527251,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"retail-shopping.shop","organization":""},"issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validity":{"start":"Tue, 09 Jun 2026 08:28:21 GMT","end":"Mon, 07 Sep 2026 08:28:20 GMT"},"fingerprint":{"sha1":"14:AF:A5:F4:6B:0A:6C:E5:83:D1:FC:A7:C2:B0:21:0F:AF:65:0E:11","sha256":"F6:35:66:7F:84:09:77:C9:F1:7E:F9:D5:86:85:31:5A:0B:83:54:3C:81:63:02:BB:5F:B7:87:BB:FD:0F:8C:97"}}},"request":{"raw":"GET /h5/static/img/logo.c9ebaeea.png HTTP/1.1\r\nHost: retail-shopping.shop\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://retail-shopping.shop/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:07 GMT\r\ncontent-type: image/png\r\ncontent-length: 98485\r\nlast-modified: Tue, 09 Jun 2026 09:23:16 GMT\r\nvary: Accept-Encoding\r\netag: \"6a27db84-180b5\"\r\nexpires: Mon, 03 Aug 2026 09:12:07 GMT\r\ncache-control: max-age=604800\r\nstrict-transport-security: max-age=31536000\r\nalt-svc: quic=\":443\"; h3=\":443\"; h3-29=\":443\"; h3-27=\":443\";h3-25=\":443\"; h3-T050=\":443\"; h3-Q050=\":443\";h3-Q049=\":443\";h3-Q048=\":443\"; h3-Q046=\":443\"; h3-Q043=\":443\"\r\nx-cache: HIT\r\nxpage: 7d\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":98485,"size_decoded":99044,"mime_type":"image/png","magic":"PNG image data, 626 x 626, 8-bit/color RGBA, non-interlaced","md5":"c9ebaeea6b602e3d91543c1e42ff8c76","sha1":"6803d8cce497b43157a8fc360bf7c0048f53c935","sha256":"3bc76bed8d42db5ff93ef9ccdfae92a41a02ecf6500427b1fd6a0543b6468d63","sha512":"0cd713caef832941bba2e81e23a7486e70a8a0e7454570755c5e5f77ed3a5ab308e5c568ab3807411a125fe952b6b1f84d4cae817af85b7ba07793fb5ccbccdd","ssdeep":"1536:9hUL/RB8fj2KmNQkqfNO6ORiXw6npQjXNT2GgEbqJSXvFvV4Np6IOg1hzJKI:9hmkj2KGQkq40HqhC/AqwXvFY6E9","tlshash":"94a3020cc742aa5effeb18b4ac8099dc191f757ae40b0197e06dc11c26cd1dbb688279","first_seen":"2026-07-17T10:51:36.431937Z","last_seen":"2026-07-27T14:18:45.088058Z","times_seen":4,"resource_available":false,"data":"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"}},"time_used":278,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":277,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":[{"sensor_name":"dns4eu","sensor_type":"DNS","title":"DNS4EU","description":"DNS4EU","scan_date":"2026-07-27","alert":"Sinkholed","trigger":"retail-shopping.shop","verdict":"malicious","severity":"medium","comment":"","link":"https://www.joindns4.eu/","meta":null},{"sensor_name":"opendns","sensor_type":"DNS","title":"OpenDNS","description":"OpenDNS","scan_date":"2026-07-27","alert":"Phishing Block","trigger":"retail-shopping.shop","verdict":"phishing","severity":"medium","comment":"","link":"https://www.opendns.com/","meta":null}],"urlquery":null}},{"url":{"schema":"https","addr":"cdn.dcloud.net.cn/img/shadow-grey.png","fqdn":"cdn.dcloud.net.cn","domain":"dcloud.net.cn","tld":"net.cn"},"ip":{"addr":"124.174.94.22","port":443,"asn":0,"as":"","country":"China","country_code":"CN"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://retail-shopping.shop/","date":"2026-07-27T09:12:09.159Z","timestamp":1785143529159,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.dcloud.net.cn","organization":""},"issuer":{"commonName":"Certum Domain Validation CA SHA2","organization":"Unizeto Technologies S.A."},"validity":{"start":"Tue, 26 Aug 2025 11:47:17 GMT","end":"Fri, 25 Sep 2026 11:47:16 GMT"},"fingerprint":{"sha1":"47:A7:6C:09:6B:1D:CA:2D:7D:39:2E:C1:7F:15:DE:5D:F2:C4:0F:77","sha256":"EA:73:37:83:D0:38:44:D9:3C:0B:26:F0:DD:D1:22:2F:36:F7:F2:86:A1:B0:58:52:DE:4E:0A:21:D6:89:E7:3E"}}},"request":{"raw":"GET /img/shadow-grey.png HTTP/1.1\r\nHost: cdn.dcloud.net.cn\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://retail-shopping.shop/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nserver: nginx\r\ndate: Mon, 27 Jul 2026 09:12:09 GMT\r\ncontent-type: image/png\r\ncontent-length: 136\r\nlast-modified: Thu, 06 Jun 2019 06:42:07 GMT\r\netag: \"5cf8b5bf-88\"\r\nexpires: Mon, 27 Jul 2026 15:12:09 GMT\r\ncache-control: max-age=21600\r\nset-cookie: __uni__uid=rBACdmpnIOkk+0YiAydRAg==; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=dcloud.net.cn; path=/; secure; httponly; samesite=none\r\naccept-ranges: bytes\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Nginx","description":"Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.","website":"https://nginx.org/en","common_platform_enumeration":"cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*","icon":"Nginx.svg","categories":["Web servers","Reverse proxies"]}],"data":{"size":136,"size_decoded":577,"mime_type":"image/png","magic":"PNG image data, 1 x 6, 4-bit colormap, non-interlaced","md5":"5a962adf74d92ae702467b3f47976547","sha1":"36f74049375584e3fa69b5ef87e9572336ff9e7a","sha256":"ad4ebea1c3496dd2924789ee009174a2c6289d1200e9811f458fd46f172d1d6f","sha512":"4ace23fe7ec6c7271710030fd423aace13eafac68ac3e76366ce4ce9bdc702caf71c9bdc2fb6a32c8e9791546098617cc0259decd8bb8489afdbce43e1b53a73","ssdeep":"","tlshash":"47c09bf3a615dc754a0d153b42e98271f429511e07046d0e5a13c216741e3448d56793","first_seen":"2023-04-15T10:50:30Z","last_seen":"2026-08-17T05:53:14.455932Z","times_seen":20271,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGBAMAAADwPukCAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAASUExURdnZ2fT09N7e3uzs7OTk5Pr6+vVa4lkAAAAUSURBVAjXY2BgUGBwYDBgEGAIAAAEXADx8btKYQAAAABJRU5ErkJggg=="}},"time_used":799,"timings":{"blocked":0,"dns":4,"connect":194,"send":0,"wait":193,"receive":0,"ssl":407},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
