{"report_id":"dadb0080-89d5-4999-b5c1-f38aa11ca7f4","version":0,"status":"done","tags":["suspicious","telegram_bot"],"date":"2026-07-27T07:51:02Z","url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":0,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"final":{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"title":"TRON USDT Approval","dom":{"size":20642,"mime_type":"text/html; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (468)","md5":"aeef2eb109d2984fdbe6ef3658537176","sha1":"eeff151c53ff3f51155473e0afb1727f05245915","sha256":"f761320ef26a32908394711052b531d846c55231339c6e647d1074c051f6aac9","sha512":"6eefe05549d4b33491f1b8c7a32f6fbb01a0112a91037d0d8a2bbac9a12069b177bb238abbc2858c23c7003a23863e86949bea51f5071e22459f3be277052492","ssdeep":"384:vGfWEObzcG9xJogdHUxzfACNY6bP+lWPalt:vGffkLKDFTPSt","tlshash":"f6920a70b8662035b127e06c989f535f7031f002ec89d6a0b99cf5608fdda9b5a376f9","dom_hash":"domhash7c03c4a62d43a2837130ef64ecc37bfa","first_seen":"2026-07-27T04:58:21.392509Z","last_seen":"2026-07-27T07:51:47.136513Z","times_seen":3,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":0,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T07:51:02Z","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":2,"analyzer":1}},"detection":{"ids":null,"analyzer":[{"sensor_name":"infosec_yara","sensor_type":"yara","title":"YARAhub by abuse.ch","description":"YARAhub by abuse.ch","scan_date":"2026-07-27","alert":"Detects file containing Telegram Bot API","trigger":"mail.usdt-transfer.info/","verdict":"malware","severity":"medium","comment":"","link":"https://yaraify.abuse.ch/yarahub/","meta":{"author":"rectifyq","date":"2024-09-07","description":"Detects file containing Telegram Bot API","rule":"telegram_bot_api","yarahub_author_twitter":"@_rectifyq","yarahub_license":"CC0 1.0","yarahub_reference_md5":"9DA48D34DC999B4E05E0C6716A3B3B83","yarahub_rule_matching_tlp":"TLP:WHITE","yarahub_rule_sharing_tlp":"TLP:WHITE","yarahub_uuid":"58c9e4fe-d1e9-46ed-913c-dba943ac16d6"}}],"urlquery":[{"sensor_name":"urlquery","alert":"Suspicious - Suspicious Javascript code","verdict":"suspicious","severity":"medium","comment":"","tags":["suspicious"],"meta":null},{"sensor_name":"urlquery","alert":"Suspicious - Suspicious Javascript code","verdict":"suspicious","severity":"medium","comment":"","tags":["suspicious"],"meta":null}]},"summary":[{"fqdn":"mail.usdt-transfer.info","ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"domain_registered":"unknown","domain_rank":0,"first_seen":"2026-07-27T04:58:14.031951Z","last_seen":"2026-07-27T04:58:14.031951Z","alert_count":2,"request_count":2,"received_data":21532,"sent_data":1176,"comment":"","tags":null,"fingerprints":[{"name":"Apache HTTP Server","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]},{"name":"jsDelivr","description":"JSDelivr is a free public CDN for open-source projects. It can serve web files directly from the npm registry and GitHub repositories without any configuration.","website":"https://www.jsdelivr.com/","common_platform_enumeration":"","icon":"jsdelivr-icon.svg","categories":["CDN"]}]},{"fqdn":"img1.wsimg.com","ip":{"addr":"95.101.11.152","port":443,"asn":20940,"as":"Akamai International B.V.","country":"Norway","country_code":"NO"},"domain_registered":"2008-03-17","domain_rank":58983,"first_seen":"2012-06-20T14:42:31Z","last_seen":"2026-07-20T09:22:04.326187Z","alert_count":0,"request_count":2,"received_data":107447,"sent_data":974,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}]},{"fqdn":"csp.secureserver.net","ip":{"addr":"23.44.47.70","port":443,"asn":16625,"as":"AKAMAI-AS","country":"Norway","country_code":"NO"},"domain_registered":"1998-03-30","domain_rank":62352,"first_seen":"2022-12-18T21:17:09Z","last_seen":"2026-07-20T09:36:11.194311Z","alert_count":0,"request_count":2,"received_data":1016,"sent_data":1106,"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":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}]},{"fqdn":"cdn.jsdelivr.net","ip":{"addr":"151.101.1.229","port":443,"asn":54113,"as":"FASTLY","country":"United States","country_code":"US"},"domain_registered":"2012-05-16","domain_rank":1678,"first_seen":"2012-09-30T00:15:09Z","last_seen":"2026-07-26T23:00:42.445991Z","alert_count":0,"request_count":1,"received_data":1091793,"sent_data":503,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"esm.sh","ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2020-09-06","domain_rank":47501,"first_seen":"2020-09-23T23:39:41Z","last_seen":"2026-07-26T07:11:46.875467Z","alert_count":0,"request_count":179,"received_data":949665,"sent_data":93239,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":[{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"md5":"a86a26452fec69d5b8bbb59676c14bae","sha1":"d9703422f6ab7842e48d7a04e259de39348b62db","sha256":"f24c72ba565bf582e5e5d7ae330e0ef736d87f065b0ee843dc30a92e3b557c54","sha512":"2022570b0f9e75935c4d21383f97841ccfeb8103c2565e0779ef730a1a104de7ee320ded143a6117d79f6ef61bdcf831c8380da567978ac80c1d31d9472758cb","size":10893,"token":"8597080056:AAH7H0-OxLWqUyVg5lJvZeW5M744EKKwK1w","is_revoked":false,"bot":{"token":"8597080056:AAH7H0-OxLWqUyVg5lJvZeW5M744EKKwK1w","user_id":"8597080056","username":"tronnaughtactiv_bot","first_name":"tronnaughtactiv","last_name":"","chat":{"chat_id":"-1002797406465","title":"Naughty","type":"channel","bot_is":"administrator","total_users":18,"active_members":null,"admins":[{"user_id":8597080056,"username":"tronnaughtactiv_bot","first_name":"tronnaughtactiv","last_name":"","is_bot":true},{"user_id":8639681945,"username":"rexy78era","first_name":"Meta🚀💙","last_name":"","is_bot":false},{"user_id":8425528591,"username":"mishra_usdt","first_name":"Mishraji USDT","last_name":"","is_bot":false},{"user_id":7507977425,"username":"","first_name":"Ramu🐏","last_name":"","is_bot":false}]},"pending_messages":1}}],"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":[{"sensor_name":"urlquery","alert":"Suspicious - Suspicious Javascript code","verdict":"suspicious","severity":"medium","comment":"","tags":["suspicious"],"meta":null}]},"javascript":{"script":[{"url":{"schema":"https","addr":"esm.sh/@ethersproject/keccak256@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d46addd972d6377a6fbd0c4525a7c067","sha1":"b56250e577bad60bc2ba42c1609b68509560862f","sha256":"848bd4f140123d96a707fc7763e062df5b673852e08b1c55660b1e65c3fe9ebd","sha512":"7e4ecf7af2ccde6700c4dfd2ede98e37ca73e99fed3b325f1d777a284d3a685797823b51076f3e011e15df744eef9611052d94dfbc9229288610a117fd910d69","ssdeep":"","tlshash":"0cd0a7a380aa45cc72592fa9401cd57ce13a4244c14060d67116c631d1c3529a2302e6","size":213,"data":"","first_seen":"2025-07-08T23:56:54.685706Z","last_seen":"2026-07-27T07:51:47.253782Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/keccak256@5.8.0/es2022/keccak256.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9385586c0771cce6ca890f87e2d2036a","sha1":"7a8f43aeca2bd98143274f7c1f6b17b751995e4c","sha256":"1d5ee5ddba772df06634317fddfcacfdcf7958c6e3449adf41c48bd37f64945a","sha512":"bb2c4d570031281b2ffb43f9679e036949c940c324cca0f9e6ae28ee41bf9aa8a9aa710fdbc4e5e1c946ba5e1e1b217691b6059a66e4c12495c551e3c3e514b9","ssdeep":"","tlshash":"0ad02babc0f944ed71191dbf801cd6b9e03da7849345a1d5b20a8e208191929a7259e5","size":271,"data":"","first_seen":"2025-07-08T23:56:54.822247Z","last_seen":"2026-07-27T07:51:47.196343Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hmac@1.0.1/es2022/hmac.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"052aadb068acc040de2e20c009e28979","sha1":"4f79fceb1ec68cc416aedc95bbd2d7aada1e7154","sha256":"77ee1299ab6e0db306d8bf7749d4b8edb71801e56b9b07a64696b4a87fc98f5f","sha512":"43a2a5a0b011df585898e2550997974a82fc19653969fd6dbce170249dc41ec70a24068cc754e7cb94e68fa1035913c86484c5eb5bf568add4ec42a1310ce7d6","ssdeep":"","tlshash":"cf8142a92694b571ebabe5e0447e900249350068502510fcf28cd8dd40ffcb92b7efbe","size":3892,"data":"","first_seen":"2025-11-22T14:57:24.305398Z","last_seen":"2026-07-27T07:51:47.210239Z","times_seen":108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/brorand@1.1.0/es2022/brorand.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"0ecc8f7523766bf758e78130ad8652c5","sha1":"91d9094fd152ba9dbba4a9eba57c65e32f2021d4","sha256":"c98cfda785c9b9055713c838c50b9e3fad4e4c32efa886cd4f479d8960955ce2","sha512":"edb949c8d361fd8243eb06c0819e679e6ebb3859c7be57e194500894d41692262a9024d2a325c3dbd722137a0ac1f846bfe1fe6e8af9cc3d02b71caf0a3de98f","ssdeep":"","tlshash":"a93100113ae4f6a202a74ca850bf930af3374939509dda24f384e8b668f451b4413fb6","size":1744,"data":"","first_seen":"2026-01-25T00:27:36.681216Z","last_seen":"2026-07-27T07:51:47.223487Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hash@1.0.1/es2022/hash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3adfe099cb08821c0949f5fdef6d447b","sha1":"73bf0f24d8a0b0ba16227b055e49817aacaadadb","sha256":"4b9b1f01155e01a92084c284494c5fa926228302b86c233824ff4be042761ac2","sha512":"6bf941b1c37dfc540bafbe14cca4f1331e1d772fb64dce60bf8387f788d9f7c66fdb60a50c1f09a5a9108fcd95e3b35541c61b9b5958e10448ce5d0cef76b870","ssdeep":"","tlshash":"7b11dc2a24a4fab36563a5c5c82e5100f71954f9407de4e063c8e4f6944109e10e4f37","size":919,"data":"","first_seen":"2025-07-08T23:56:54.61967Z","last_seen":"2026-07-27T07:51:47.247658Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"7c8e4b9c6b0a68c3fb04fc40fdda1d28","sha1":"179d52be7d850ecedb5fcf64554e871457f69b02","sha256":"1aca3cdb59ea43dfc085e45cab65a33e6d6663bf79903d4a61c8c153062de370","sha512":"389a448a2c553f56c355abd3d932e10046a5bbd69d3df72e84bce415a0bb5589bf1df90a91fbb2c2900601c42642322bad260d128c29890aa5936397f5718a47","ssdeep":"","tlshash":"c84132287c11517486d710d24e560409f37ac939cc4ce1ace799dce02ff920e466af39","size":1891,"data":"","first_seen":"2026-07-27T04:58:21.586754Z","last_seen":"2026-07-27T07:51:47.264582Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"a86a26452fec69d5b8bbb59676c14bae","sha1":"d9703422f6ab7842e48d7a04e259de39348b62db","sha256":"f24c72ba565bf582e5e5d7ae330e0ef736d87f065b0ee843dc30a92e3b557c54","sha512":"2022570b0f9e75935c4d21383f97841ccfeb8103c2565e0779ef730a1a104de7ee320ded143a6117d79f6ef61bdcf831c8380da567978ac80c1d31d9472758cb","ssdeep":"192:tG9xJow3ypcbJAju1UxzfAglDj7qMIZNRsLBV+AMA+oyQGi+lilPQTif:tG9xJogdHUxzfACNY6bP+lWPa0","tlshash":"9a22a4b438a724217967f13d855f625e7832b0057cc8da60786cf2610fece5a67279f8","size":10893,"data":"","first_seen":"2026-07-27T04:58:21.587815Z","last_seen":"2026-07-27T07:51:47.265172Z","times_seen":3,"alerts":{"ids":null,"analyzer":[{"sensor_name":"infosec_yara","sensor_type":"yara","title":"YARAhub by abuse.ch","description":"YARAhub by abuse.ch","scan_date":"2026-07-27","alert":"Detects file containing Telegram Bot API","trigger":"mail.usdt-transfer.info/","verdict":"malware","severity":"medium","comment":"","link":"https://yaraify.abuse.ch/yarahub/","meta":{"author":"rectifyq","date":"2024-09-07","description":"Detects file containing Telegram Bot API","rule":"telegram_bot_api","yarahub_author_twitter":"@_rectifyq","yarahub_license":"CC0 1.0","yarahub_reference_md5":"9DA48D34DC999B4E05E0C6716A3B3B83","yarahub_rule_matching_tlp":"TLP:WHITE","yarahub_rule_sharing_tlp":"TLP:WHITE","yarahub_uuid":"58c9e4fe-d1e9-46ed-913c-dba943ac16d6"}}],"urlquery":null}},{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"d29a08d9b54cf86342a25df41c11508e","sha1":"ffac2eaf3e67440ddcd1ce6f78e525b83386fa55","sha256":"8dec6153b78034f11a918850d4c2778df2555f5bdbcd37a59c859e0ec1799c22","sha512":"99f8b91282fb20138734423f4cb638713c611b59f59c044cc99900ec2d954db478a7c687ffe7ea9a7d9f91f75c5c6e002c0d5f7ee9bd659f8951e595e2ec68e9","ssdeep":"","tlshash":"3fe0200dd01a8095132599447111199fb71ac7fbc7882c9dc714583955cf05bfb9e590","size":361,"data":"","first_seen":"2026-07-27T04:58:21.589231Z","last_seen":"2026-07-27T07:51:47.265761Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"e304a9b87d1c4a0df0f73920e46414e7","sha1":"1f2846364a45998f12f85a5a1978269f639350c7","sha256":"66c4e9e46b23a741080be208675def0a33e09cc063072759f4b4c72d3413d8f8","sha512":"01510362ecbad225c96e256d3694b1322588f6a8f8f41d095a224dd7c1e6c64c52ac81a90c1718cebdb589a6193ff0ce647da92fb363a6186d8dbe31719c144b","ssdeep":"","tlshash":"65e0222fb0c382b86a7948e8c15424b7922117ec93d103f2e9cf0a2813768d5c03ef29","size":396,"data":"","first_seen":"2025-07-08T23:56:54.700669Z","last_seen":"2026-07-27T07:51:47.25325Z","times_seen":105,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/tty.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"dc159c105e1b73c18cfd63a84cc154ec","sha1":"347664300100736360aeda59495f5017a852a81f","sha256":"c66ff4b406bad449bfb2ced355f15badf16f4d9e035d2d300e33b5aeee64e3be","sha512":"96f99c368bef6857a0e9006efdc8ac0585af1bca468adb103b0c626ff5cada09eefeb07b317d6be3e71915f8c1a1412d4927fb743e4ed59e54c6e82af1b9d50a","ssdeep":"","tlshash":"cf01fef930f7b57246bb047444728a07f388e8f0b49ec4a0ba6599b43c655ced131676","size":685,"data":"","first_seen":"2025-10-29T19:17:04.320253Z","last_seen":"2026-08-13T02:06:35.234475Z","times_seen":700,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/logger@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3ac6a89061cb784ca250a8621befaf03","sha1":"2ffdc3724f6aad96f0e45108f3deac84d47efb06","sha256":"bc222e6fb2766fe69400ae423fb741f841be400f06fcc4ab3c56fec130af8fd8","sha512":"5300c3794f04d88692430227cbf41c63737ab9e0fb8bf50a1ad96a5e4bde3e38ff8929f2a31d2b32bde1bbff124567c14c9a3b2920dde3224242d304b642fe48","ssdeep":"","tlshash":"6eb09216422a429c666f0b8c8278ab28b26a81948048d4da50986a5b92c312568b04aa","size":107,"data":"","first_seen":"2025-07-08T23:56:54.776707Z","last_seen":"2026-07-27T07:51:47.163223Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/alloc.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c5990b42b231093a16c7cf5c14f9c3ce","sha1":"3fe6795120ea7368ae692fc1b34b4f21d752b67f","sha256":"ec6230a68c8e12810c5edb801b35d46e9f3ad2c85ba3ea8e966c172aee1e36d8","sha512":"7661fd6e69af5472c022b986f330a572cc0702afd25911491ced9bd3469252f68797f1e4be77cc9f8e2a0d43285e352257d35d461143cc7b8090ed3a54e606d1","ssdeep":"","tlshash":"24f0a0570c36883408666ea688d79bdf53b49aaafcc55084dd1a5e2436a30f4c06289a","size":446,"data":"","first_seen":"2025-07-08T23:56:54.635768Z","last_seen":"2026-08-08T17:15:51.508151Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base16.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c105dacc920ab04c20a312577c515cb2","sha1":"e0c0906dbf481d427a6b648024d1fe782263d157","sha256":"7f0c9b5860c52b54170cbc8b058fe46eee1b81f52d0908055d38d2a63ec8b721","sha512":"2e90d31ea1aa0815443f634b96eadf87d982ef542bd9f02ec8c4c3a6181c2b3584d1633b0b0f786ebb14f48e474c63d871142a0f055f85ee56b1040388fea25b","ssdeep":"","tlshash":"85e07d3ec7752f3f2530611c8d4b04113cb8b7efd2800344b2399818d8080c9f02be69","size":329,"data":"","first_seen":"2025-07-08T23:56:54.607035Z","last_seen":"2026-08-08T17:15:51.823465Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base32.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1ee9f2ef16b9984856fe98653d135f21","sha1":"c6625f500c5d509485e391e220ffbcc7ae3ae605","sha256":"2c42d149c299e8b8934e51ccb284b01b113d3fe432177a55b7a781d10cfbe5b2","sha512":"238c22ba301c73696ed2d13fc89be911a71c22c5ad5a95598d9afb1fd9ac80329a8dedfa506e2bf44fed92fdb0544a8356fa9d26a6ddf544558d3823ae47e389","ssdeep":"","tlshash":"0421263dc8670a1edd62b65d6c8f8c117cf1c3ff815a034563b94a128498acaf013e9b","size":1159,"data":"","first_seen":"2025-07-08T23:56:54.833623Z","last_seen":"2026-08-08T17:15:51.793767Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/identity.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b705c0a2249ee81c695839fd5bcfffaa","sha1":"e84b7d2522741f67d07850e0cc35905b6e984fff","sha256":"43eaf0a3160c8344e2f70387d0a124f3f21363d82d3e246a7a7df4053c6199e4","sha512":"55cff6ba87d01ac70a9d10e052f30f08d45a43d571a70e995032a0df21a5904a8821cfd735190e34c8dfa6340c25b43b9f824ee63251a50d239ba75678503fa1","ssdeep":"","tlshash":"31d0759b8df400f0f13b400ed800c00cf639c5c2d50000d8312f060f17240ac5433870","size":270,"data":"","first_seen":"2025-07-08T23:56:54.666173Z","last_seen":"2026-08-08T17:15:51.589462Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"a4bb50905c024514adf72bad834a9555","sha1":"486ced7c635841aaba7a59cdc8d8a97679a0a7bf","sha256":"55ab329d32284d7d21e4f09a86e8fa6fcda90730494ae06e8cc60270ee556451","sha512":"3e8fa5fbc0e942b1aab44ae5694405f94516f4950cbfea1dcc41a560f0223eb3ee1544746d59ebda3fad5e2eed52a3fc9e7f63619870992ae1f481c1cbb60a28","ssdeep":"","tlshash":"fd7132cc7896bc793a1a102570af3407a27c7ee0212d6826da58a155f674cfc8b97bd8","size":3747,"data":"","first_seen":"2025-07-08T23:56:54.726794Z","last_seen":"2026-08-08T17:15:51.31584Z","times_seen":130,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/lodash@4.17.21/es2022/lodash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"7dd7abec88b86c52a5b7ee6f17710745","sha1":"548bb8c695807d7857c621e68bfe28d483abff45","sha256":"dbfb35d4fcc605aaf0544bcc4505edb828aab79b7ab447df78743552cef8ceb4","sha512":"45133d178da6898b8ebb7a5ccd1362868ceab70104507b4782763daa54f605c7f87c40e4a4545f0071bd4519ec08c9dbe7303080d84a293b7f458003d12813b3","ssdeep":"1536:EQb9fdMdZyI10ErAbyzXds/VxeJPeQerWju72d+HwY:H9qd+badsdxeJP7eSX+QY","tlshash":"868394cc79d3b02693a3246100bf058ff13d6ea4ac8d5640e156f1ec797856d92bbe2e","size":81618,"data":"","first_seen":"2026-01-25T00:27:36.638405Z","last_seen":"2026-07-27T07:51:47.186859Z","times_seen":9,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hash.js@%5E1.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9e157228e182fac4a5ab80c94bcb046b","sha1":"cc478da919f5a269364ec6bb5ef03d2a71e82337","sha256":"f22154f96e20b946b641d7fcd7436967b42717c7e8724641a3bc9601b1921329","sha512":"46aec6e2940371dda191a445a902a99db4efee89597773b8324f2b3cd0fd1c3de9d1a1f816285d15f8f39401340afa3b3a3ea067c79d40d580aaa5b707975722","ssdeep":"","tlshash":"32c012150613ba1813341adc29aa893a9bb6cb8ce80e00ba68af460ab003040e0a22b4","size":187,"data":"","first_seen":"2025-07-08T23:56:54.581436Z","last_seen":"2026-07-27T07:51:47.155296Z","times_seen":28,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/constant-time@1.0.1/es2022/constant-time.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"54073f46dc49b311e30c4f52d06aa2b5","sha1":"e3b4abf26a15085068525503930ff356a6a85a5f","sha256":"4c17d3d79c47119bde87e7e9932439b3ac581bd5f1f0958c94e85a1891a5e464","sha512":"29be147beda592cd737151bd2fd35f63d6b17997c73e6745e6baacc40b3e3f10bfd795c88004ef4cf5b32764195bc70666605e3d819f5051251bceefa19de61c","ssdeep":"","tlshash":"bd2137a532f0d5b765ae9845c82fb685f3373e78043df4405388c4e2556083390b5f53","size":1166,"data":"","first_seen":"2025-07-08T23:56:54.618512Z","last_seen":"2026-07-27T07:51:47.219887Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/logger@2.1.2/es2022/logger.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"773de17c3d9143aea9b49fb676a7a9b1","sha1":"974bab2c4616c44e720f0b85359fb1edd9de70da","sha256":"7c9732e039d4cfa6f71c09bd67c0b4b6dae2ba4858151407c17b9df011cd2e03","sha512":"fa25bd4569eb9130ed2588ad47cdf377edc9333b1efe13dea7b673ec5f67d7435b91b20ea8d51da7afa1c9cba0bf98cca0093bbc8b26be7ae25d19d92d55baaf","ssdeep":"96:qU9ITx17SDkbe/2Po77YeUphsIabpW4lcRpTf:qH2tMsJBcRpr","tlshash":"d9a1766977e37871739a106e24658362f324b8c9991cf2bdf5cd78fe60a081056f2b74","size":4763,"data":"","first_seen":"2025-07-08T23:56:54.680003Z","last_seen":"2026-07-27T07:51:47.248212Z","times_seen":109,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"7881d9340ee25886bed01aa067ae867b","sha1":"881b12f852bb7499c9a4c66595162c6e63cdd1e3","sha256":"e38ef2e5ca5d2efe9025ea413c46b3ca990b729f1d83bd9249ea0b0ba565aea0","sha512":"ba6838fdebcd448c9dda60fbe819d1c4a9f9311e127c6fda6875d3c6823d3b83042a2f8fb15a59ce05831bb89849a81dfe3544e1ef17c838f05c83e92a7bd436","ssdeep":"","tlshash":"605154def5d1f4799369e0f1c04be91b773c35d6228b4c24692586867a70060cb73fa6","size":2666,"data":"","first_seen":"2025-07-08T23:56:54.658506Z","last_seen":"2026-07-27T07:51:47.201721Z","times_seen":104,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/compare.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"40f3db5bcc35e03db94e6452bff4ee73","sha1":"68beea9fe17b1cc5da900c39e538d8ed641426da","sha256":"3ed73a16dc679e68f700c88d5977fd4d52c6b1b796537b16124fcfeaf4a38e67","sha512":"e4717220f78fc841eb6350f87ca19daf61fc7396431c768d58297e005ed5c2cf993187c4900289c935b8b93d323d0af9f6cfcac4e7ae7e3e35d64d030444cb62","ssdeep":"","tlshash":"08d0a7bab6f668bf1bb32805a11ec089f1065f12861c474cd4206815bc7daa1d5e7ee5","size":257,"data":"","first_seen":"2025-07-08T23:56:54.621625Z","last_seen":"2026-07-27T07:51:47.163808Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-crypto-utils@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b5caab1656f7a7f4552d12fc3ba8bf2d","sha1":"01606a98d944607b169e339577aca87efe6bee7b","sha256":"db333271eb083fec6e3bb727ca15a3104c628b25da72017cb634d1d024d859cf","sha512":"f5a2dc920a9804e97a93f086be680133a25ed77c9b1b1623d2e073f68fc61522be32a6e999d51e212fb477912216950968d933c5b3a162e4858897280a75a8e6","ssdeep":"","tlshash":"13d0b71a0657df2733e40a66137fad1d96a24e459881127516fdad03d2828d0d8902e5","size":231,"data":"","first_seen":"2025-07-08T23:56:54.622667Z","last_seen":"2026-07-27T07:51:47.246997Z","times_seen":24,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/binary@1.0.1/es2022/binary.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"265e1ac2a5be7d237bb3bd93a6882ece","sha1":"9ff7aa891c7d74d168c8a66be3e20d026cc8a221","sha256":"9eba949f5b743bceec8288dd60f5e2f7831a63c5ee6ad68146cafa008cf3c63b","sha512":"8910df51451f32be741dda655f71f7c76612accdb9282b85b3b86de641e0ea55ba0f8516f188ac3438ebe07d917a8a1d744e73975af32ef00200474854d28ced","ssdeep":"96:IZNw8U8/gYTSKS55aSzUmaSCYfAmEzka991waWLy4XvfWQcrhRkPBk9axCPAno4:kNdG5HJzUmJC2AmEzkm9VG5+hR0tcoo4","tlshash":"5be173c45dc8f8f67352b8b9b37e42e3f575ff9c809c8610420ed89270b85bab6006a5","size":7035,"data":"","first_seen":"2025-07-08T23:56:54.778631Z","last_seen":"2026-07-27T07:51:47.174338Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/concat.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1fa275395846c47af0688b4e88c816d5","sha1":"153ca7e1416e0532035071d6df06e7c929bdd3d6","sha256":"dd98b67a045565b7fae1941e7ca832172160069ddb266b75e590ff6d818ca08f","sha512":"97030ad6bd4d48c13fad3f6c92e13cf1d8c1483b9c986397e3272e97b35f06ef49b226ae30cfd7e6a5bca49d93c988da4ce795cf584ee87a780fd96fb81b83d2","ssdeep":"","tlshash":"94e0c0631462042940b74e6b8090111087245f78e986069c90072c693712de0c4c6d75","size":320,"data":"","first_seen":"2025-07-08T23:56:54.597617Z","last_seen":"2026-08-08T17:15:52.192089Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/keccak256@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d46addd972d6377a6fbd0c4525a7c067","sha1":"b56250e577bad60bc2ba42c1609b68509560862f","sha256":"848bd4f140123d96a707fc7763e062df5b673852e08b1c55660b1e65c3fe9ebd","sha512":"7e4ecf7af2ccde6700c4dfd2ede98e37ca73e99fed3b325f1d777a284d3a685797823b51076f3e011e15df744eef9611052d94dfbc9229288610a117fd910d69","ssdeep":"","tlshash":"0cd0a7a380aa45cc72592fa9401cd57ce13a4244c14060d67116c631d1c3529a2302e6","size":213,"data":"","first_seen":"2025-07-08T23:56:54.685706Z","last_seen":"2026-07-27T07:51:47.253782Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/split-on-first@1.1.0/es2022/split-on-first.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d8f14674ee08df4c0ee39a9d815ec3ac","sha1":"b738e5e5ef0d1bb7f7bd1b7800b5fd0be5030815","sha256":"763ae96ffcf820a86edc6b9aa99547b886c6dd81bf5eeacabf25af3abd70573d","sha512":"f30439be3c8abc1ec38c34d7879902f7beeb8752f4d502be843ae64a8cb6d593e1c95f33e27c86c0d92f9ab1354f6cbdbb281e767fc96c971ea1764865567a49","ssdeep":"","tlshash":"aa1100a224e8e6e206b75086c5be8541f11a98bc44b6f0a0e7dcc6f484e040704e3b33","size":906,"data":"","first_seen":"2025-07-08T23:56:54.580571Z","last_seen":"2026-07-27T07:51:47.177417Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/decode-uri-component@0.2.2/es2022/decode-uri-component.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ba493b447ae0068ac55f51df9f217aa8","sha1":"7860eb31c73675cbb2d4290d0d7752502ce6a153","sha256":"5e748ae5b1ff6b3dac55f20e69475525a3db2486a7652d8c76e45eefccf23379","sha512":"25f6417070a3d214dd75b3efd76e862a822929d39f178c9636621c2bd6d314daf3d950b7dac1605217732b2c1572b255b81bd79e3fb9b34cef5f8658be0c582b","ssdeep":"","tlshash":"be3144e022e5dcf6065b08d4867e2045f0fddf5888bdf490f744c6f5a090c970462fa6","size":1611,"data":"","first_seen":"2025-07-08T23:56:54.730773Z","last_seen":"2026-07-27T07:51:47.206854Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/window-getters@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"72ca71bb95584306e884168ccd646422","sha1":"2a797853b78d89650a2a5a653222dabf5543d3ff","sha256":"aed823a7227f38472b4e61581016c995088d39dd7cd57df21886588899a97c8d","sha512":"50d60131fe8df621a287feda48777c6216552115045c2099fb8e2a4e4732ccae89019019ba43398f7eba7930dd537592914ce311053fc7e82577c956e093a27b","ssdeep":"","tlshash":"f0d09eb3c123866512735940176ff36cd2520288eae3005f27b40112f0532c7d4542e6","size":221,"data":"","first_seen":"2025-07-08T23:56:54.821177Z","last_seen":"2026-08-08T17:15:51.468526Z","times_seen":124,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@%5E5.2.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"51f6e80040678d831e41cfd0f2c8e0b2","sha1":"4dfd21b17c14182c251154c10435eebc5785d5ed","sha256":"363c034b3fa84d93281ad4d2fd0b91f352b8ca999f37d9eddc795a99095e1146","sha512":"f410ca2b3c4bff4b51b6bdfbdc422b8e4d0414e8de4db40f8f41e49a886a4602969c146db7025cd3c5fd8a359d580dc18d9ca2db59b60af4024553fb7ddb4314","ssdeep":"","tlshash":"1ab0921f02678d091133cfe4222c803dd3a2a648a4d4a4ced1da2b61e380020e5319fb","size":125,"data":"","first_seen":"2026-07-27T04:58:21.54313Z","last_seen":"2026-07-27T07:51:47.20281Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/int@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b3684c3c97cbf4304a8bbb72ef7a2178","sha1":"7ac96554f380c779a225eb4e16d9b2dd58379f47","sha256":"f272e35a59b31bd9f8faf60ccbb87adbd99cad6cdbc7dd287837b29cfd9329b2","sha512":"c1732739ffd92907825def1e1af3f7ea10e512cdc04e6d22b9de7ad3639f0855cc47c231c309bb64f176088fe9b9465a18c89a6819e2c31270548f3c3180f902","ssdeep":"","tlshash":"fac08c0003cf9ab82330eed09176f222c3610ac4d0f108bc03258a0090968c191797ee","size":154,"data":"","first_seen":"2025-07-08T23:56:54.578724Z","last_seen":"2026-07-27T07:51:47.244128Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/unstorage@1.17.5/es2022/unstorage.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8835b4c0dfdcab5a6e689ed96b8ed103","sha1":"a4d1154cf5e9f49365aad79e4d2d1b5b8d7d378c","sha256":"1a35ec8ba12b8ae59bb18bec696df5cb677134f5f9127df6e69b117e8d325f7c","sha512":"ad7712df2dcf80f229a1d4e1e12b351e61cc5c3ae0188e014672dc5512ca6d60f2b4f94678157233b7099bd8ee0a66fc615c42fe3fa837729410d3467c9eb952","ssdeep":"96:my4eh490ElRUesZ41FQls1MsjHoqZSuXKWFFfXoCAljbR1gf0ZOz/rnd78808cTZ:wE0BmDs1tUqZPK1S0ZAjt887crpD","tlshash":"db0262e23b409bb3d9b4115eb1223081737a05a664ffc0249a7bd51dac4c84d97befe2","size":8512,"data":"","first_seen":"2026-04-06T13:47:42.71152Z","last_seen":"2026-08-08T17:15:51.677984Z","times_seen":99,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/destr@%5E2.0.5?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b5873211782439d0802e0c8c8b5d5f1d","sha1":"ff89fd0b901735411267e48d463d8d1f8d97fb9a","sha256":"5be990ba58733e5dd8f5ebf492b1b150008cf771f68cea16d58ee6e64b9a085e","sha512":"93939892613f86d43f764a2418b9f1c39aaaaac6fa0a3dedf319f0a0d6e0c252a8fe4fbd4e215316e1ca9244cc8ce9ba4a02452c63a4cb6b5fbf7cab2a471ee5","ssdeep":"","tlshash":"b2c04c124466d50c233009fa6175d465e3570e44959420a9146f0701a683002d7b42a5","size":131,"data":"","first_seen":"2025-07-08T23:56:54.795168Z","last_seen":"2026-08-08T17:15:51.722071Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/destr@2.0.5/es2022/destr.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ca072121ccaca3dd430215c4d624e016","sha1":"6ec0d01afcf9a620b1d2732a98914741e028ebdd","sha256":"228e13dbaf710326ff1fd6169ac9703becd7857fac1be1ddb92c1c07e0246c25","sha512":"c89e79c2f53f77b2ede2dea52ca6978c1feebc7513334082157d67fd4d2e8d62310fd51cec34f78f867b02273a09f85ca992580e438010017b5f43afcb8ae323","ssdeep":"","tlshash":"9321df7775ebe55e03ee149489352c51f57c4860ec0e28a4f0d8d066e4b6840dab3fc4","size":1379,"data":"","first_seen":"2025-07-08T23:56:54.719803Z","last_seen":"2026-08-08T17:15:51.485216Z","times_seen":121,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/logger@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3ac6a89061cb784ca250a8621befaf03","sha1":"2ffdc3724f6aad96f0e45108f3deac84d47efb06","sha256":"bc222e6fb2766fe69400ae423fb741f841be400f06fcc4ab3c56fec130af8fd8","sha512":"5300c3794f04d88692430227cbf41c63737ab9e0fb8bf50a1ad96a5e4bde3e38ff8929f2a31d2b32bde1bbff124567c14c9a3b2920dde3224242d304b642fe48","ssdeep":"","tlshash":"6eb09216422a429c666f0b8c8278ab28b26a81948048d4da50986a5b92c312568b04aa","size":107,"data":"","first_seen":"2025-07-08T23:56:54.776707Z","last_seen":"2026-07-27T07:51:47.163223Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/constant-time@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ef2821c5b3e6ed312a031ed27831474d","sha1":"54ffc9488e307a5339dda1cb569db53bb0d57660","sha256":"db8af311dcb907e733761bfa755efbacb958927201bcb2f9c220a0f7b372d9ba","sha512":"36371bcb2d4f7923d5bc4ed4a55773fc6859ec4c04b6c08f6b76df3a4a682d6a67915cf5b9c19e139c95339828b2fa3e9d9b38b6ba2d1c35d76d9ea83ca92d1f","ssdeep":"","tlshash":"dfd01203234ba6243b38dec05a64b3a073753d48f86b94dc019d0b009143c825231697","size":204,"data":"","first_seen":"2025-07-08T23:56:54.659645Z","last_seen":"2026-07-27T07:51:47.138886Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/split-on-first@%5E1.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9a8f831e7586171333c6c9f6d340ef89","sha1":"9d0d32ee907f4e1cc041df08411c6a0b3d4e58d4","sha256":"00c307aa5402f3aea6eea1d9ca73650298ba4516a78daab851583a9a89f1ee4e","sha512":"290fa8ce8233d796c012d9efa62b6f42a9476cf99abd8dbaa332dd721c63312d37cedd74bba84536a40393cc08da33e8eee19d45e53faa1bcaba56886f0d76e3","ssdeep":"","tlshash":"2bc08cc801c611d80b30c8c3af2680b243d2cec69ecb908dea0d5b0250ca0009a60cf7","size":176,"data":"","first_seen":"2025-07-08T23:56:54.610336Z","last_seen":"2026-07-27T07:51:47.217246Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/base64@5.8.0/es2022/base64.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"66c9cff3bbf71ed9a4ac685d606130a6","sha1":"61e484cdaefd8facb1804d0afdac6e06b2115fb6","sha256":"4edb6b54742a802a8a1aa7f83932b260554da76abd442255123ff8e1837f1729","sha512":"1cc82d67ec8a69a4bdb44c70c72424dd680d771e58d5c439a1775fc9639751aca623189094357dd5169fd3ba9a7d58c2a80083478dc247b0a252de5ea7a65179","ssdeep":"","tlshash":"cae02bfe526864efe3a809d659375148d07dad04164654a99d018947a110aa425eaf70","size":378,"data":"","first_seen":"2025-07-08T23:56:54.583938Z","last_seen":"2026-07-27T07:51:47.241628Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/esm/src/bases/base.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3c5046e1531f38ec2decb445bcfe1356","sha1":"55500714e04227d8967a130462bc8f6f3fa944f0","sha256":"f0057681c3f918b72d77de38d89d1f532ae4fc78b86f35db7f617c81e7ac504f","sha512":"c3e3c307844cc861314ebe825c9d35797e28de8e0684b223c6c6142b01782440c3fc7c33a7860b1f77439ae24dc415b0b0205f8327fbc38fda45ed8e9c24f25b","ssdeep":"","tlshash":"398175f523fcb0d155ad58c104da5181e26e9d76b0288869fb103edb6de07e198abf33","size":3955,"data":"","first_seen":"2025-07-08T23:56:54.675396Z","last_seen":"2026-08-08T17:15:51.931992Z","times_seen":121,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"img1.wsimg.com/traffic-assets/js/tccl.min.js","fqdn":"img1.wsimg.com","domain":"wsimg.com","tld":"com"},"ip":{"addr":"95.101.11.152","port":443,"asn":20940,"as":"Akamai International B.V.","country":"Norway","country_code":"NO"},"introduction_type":"scriptElement","is_inline":false,"md5":"8a37dab530d4cba8ef9134c279c20612","sha1":"ef687d672e515d41f8b9c6b23e8c66b117a609c3","sha256":"5c16c1b3a290dd98b67c97387769f0ba4ce1a68fc5a584f603d85eec8ecfa499","sha512":"f08cbc1d2bea4b6bef0f153e83a74edfe4abf9c6f39aaadb35a6c167efd6f667b151b7154ab6e444b75420335488d27d3a33ec6e6e2c3d953a41d0a03ce563f9","ssdeep":"1536:uzSGNmZEfRDJYW/3TV4vlJHjaBaR02YX25x6JR:kD6W/WFu","tlshash":"67a3a688f6a1f07142e76165412f010bf379a965b0aed0d4e725e8f8adf85ce8173f29","size":106502,"data":"","first_seen":"2026-05-27T17:58:47.761284Z","last_seen":"2026-08-13T11:33:58.793052Z","times_seen":19105,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/alloc.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"52b0a8211b95901155bea286eee80f8d","sha1":"1af0eb19b15aaaae94815ef943066f6c5b849990","sha256":"28759e3ed857de6c3b7ebd3b12c67fddeb87abb9683180ab9bfd431f2949e9d5","sha512":"adb7b50ac3fd9a2a6066b83b4962946b364a87d7657d3ce216039fb52c18ebeda923876a114ba89003ffea6b2b23f18b39e544b721ad828b8a5160bfe0e6c070","ssdeep":"","tlshash":"3be068035c3a987408327fe68cdb8bcf13b08a69fcc60084dc195e2431a30f4c0628c9","size":376,"data":"","first_seen":"2025-07-08T23:56:54.654367Z","last_seen":"2026-07-27T07:51:47.188459Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/constants@5.8.0/es2022/constants.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"2e08bf58527b5418f71a67e5c1117f03","sha1":"aca16db00936f64a53b487e0630cd37d29acf120","sha256":"5b369bbd5719e75e27cdc0cf2783c0db4b26d24baf60024cac34c883930a9ed6","sha512":"028a705807475a94d84c92cea52f3623f7dbb7c7b575ab4065a5a058717cf3bdcd23e3c4b5ddc8892ef817ee1bb5d814355ff755d58db484ec52b076a2cc4e62","ssdeep":"","tlshash":"4c01973d84fa207dfa7c0df82398f41981f4f2a3a0c2d186e408cafe42d28959443eb4","size":788,"data":"","first_seen":"2025-07-08T23:56:54.690847Z","last_seen":"2026-07-27T07:51:47.257247Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/idb-keyval@%5E6.2.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"37a34d89741fee82dc4f39cac0a7d971","sha1":"9f3583331aa139410044192aed160e7dc19b5c75","sha256":"06cca0a3b91578ba4a8d1e8b00f5b13280ecc8d3a26e04933d54fe008a947484","sha512":"298e0e74a0d9bd264428b10db07baeaf3f38f7c449fd474d9db9fc38d18a87c5629b3b0188eece750cd2737e242507fff6ad9e1f1218c12aa00427fe1863bdb5","ssdeep":"","tlshash":"a7b0017a46764ba812b189ca0b38c0a553910684dba545ed22dd76c151b2c60a93c1fe","size":89,"data":"","first_seen":"2026-07-08T11:28:35.830435Z","last_seen":"2026-08-08T17:15:51.437415Z","times_seen":12,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-http-connection@1.0.8/es2022/jsonrpc-http-connection.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9ce2c4fff2aa634869a58b22ae0a0ab4","sha1":"cbf6b55a7ccce530b4628c684d3ca8985d25a8e7","sha256":"a340a6c03e0679452d2d72cc4a0d6b86433564b71618bd26e125ba16145e236b","sha512":"8c1438471c6ef4389851fb5d2d55c7c3c23477fa3633783d48a00856937a83af3117ec20960b7eec818de2f638312f70a3472d5bff5f2c3aeabab91bf48a3336","ssdeep":"","tlshash":"f2519588a251e53727efabcfbc114601933324c8b529401cf315acf691aee81ed62fb1","size":3100,"data":"","first_seen":"2025-07-08T23:56:54.765166Z","last_seen":"2026-08-08T17:15:51.350191Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"efb28c6275a608532547e205e71ad25b","sha1":"0a3113ba6a30dbf8ef0a1c854a384faf1ccdcfed","sha256":"801140b6c53e82bbc81baf4a6aedc85767df476b46d5d43fdcd0e93e1f5bc51e","sha512":"10d0694d2dd87d910bfed4092af7e4d92abf19718120b736dfe0e60444ebb59f5af449924ffc39849b9eae5872a7b06ac8a64f9bb99086d220cd6b2061e0265c","ssdeep":"768:ldusNgArZvh93ehbLxhhfPubvFpN4YzFpN2v4ce:VFenmbvFpGMFpQvve","tlshash":"6df22bc9b196f07a835f45ac50bf700bf3ac68a440dd2965e8a7d8a67570198c3f3f26","size":36468,"data":"","first_seen":"2025-07-08T23:56:54.681121Z","last_seen":"2026-07-27T07:51:47.248802Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/safe-json@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c9fd678071e6d03eb4078fa7ee530c10","sha1":"2220ba8353f854791c066af13fb5343fd36c5f81","sha256":"bda99310f7f8a365bd996ccbce3853f57ea7688ee67a6ab8fb6b50f9b1d5cff3","sha512":"3c65b53cbe34fbab0ddefae6771cdd66167b07e4a7fcb09c5b7dbe33aac2e1ca285cc0344e1216fdac08529a51d76180499061ea461885d9bff9eda72fd1d38b","ssdeep":"","tlshash":"18b0927141a3031a0b3a2648029a83ac4b6b0b0cc14300acc29b0120a0932a86870ab7","size":116,"data":"","first_seen":"2025-07-08T23:56:54.647274Z","last_seen":"2026-08-08T17:15:51.472536Z","times_seen":127,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/to-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5a2a54b54b938872f40a1c7788111734","sha1":"a47c1e123f4feb8ba60936199cbd293bebb08780","sha256":"b7be4c88190c06d173962f2708a9b167510054e3bc631d886a73d88c108e4242","sha512":"db3fc51a062d5b026fa023b3da60e90d7d9001939f465393034bc7dece64fda77f924371832d8b26f82f18731d1b201cb6af977c0eea7a1e2f6de5c57bdef817","ssdeep":"","tlshash":"0cf0dc83de7020e30be328a500dbacdf42e43689e9e085d5cc49072938d40f5d433870","size":459,"data":"","first_seen":"2025-07-08T23:56:54.784823Z","last_seen":"2026-07-27T07:51:47.192119Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/address@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"a4db412158366016983c3c4622ed0951","sha1":"fc22292065dcd36d42fb614e225095056347acf3","sha256":"340d4dd5f7d923c4e98dec6a0af522ad187c9ef327660f6f5c7b9d45dc4d7e31","sha512":"a2af672ee8778b09bc79ba827620df994142246073a07877d92ce8e0b923fcd4cc455cbd63900cbc9677734ebe052d143a16d3426b00f7b43583327c857e189d","ssdeep":"","tlshash":"0de06d63c529e7dc635c1efc8068a73ca13a84d49506b0ab5d24c73393d2569aa215c9","size":382,"data":"","first_seen":"2025-07-08T23:56:54.586644Z","last_seen":"2026-07-27T07:51:47.223042Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/properties@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"62eb72ae05a6dfa1fdbbce9d357be001","sha1":"b449c92eb18513a4406a3e6f60d5a0a95125baeb","sha256":"c69923fc5e635154189d960959f7e4c0293342cc563ec183ae7a71aef1c4f3ae","sha512":"cd5e97e89ff47608fc251c618d101b3d36ce04a9d81eb6f707f7a487eea201b6e6a4e9995d882319a8991c42f3d931ba67851e3ba2e77fe79fb7f5b3c849ac44","ssdeep":"","tlshash":"ebc01212d015d5dc539a0ebc4138a63ded765498c150a0a7e595c722a1c210564106a7","size":173,"data":"","first_seen":"2025-07-08T23:56:54.576616Z","last_seen":"2026-07-27T07:51:47.141556Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/brorand@%5E1.1.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9a7aa521799948009e3a5cdff5874159","sha1":"624937b41a0bd96e83c39c563ab4c7b7faa57299","sha256":"16ce96abc5f4f61dacfd51a622c5f439c96c3e3622a6a4e55d798307c4b22c7b","sha512":"f1122843e899a69a508ddf921c7d1c1d5432a440c0c4073a69e2bb54eb9a1d9f795e4b4fa76f8f1922fba4d5401bc41a374592d0e28c41520043ed563687f700","ssdeep":"","tlshash":"48c09215221776ac317269c402eccc3593ba06c8f4cc1cfe306bea0aa04f030aca51fe","size":141,"data":"","first_seen":"2026-01-25T00:27:36.562326Z","last_seen":"2026-07-27T07:51:47.199195Z","times_seen":20,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/rlp@5.8.0/es2022/rlp.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3465a6cf247deb4bc047ac9202bc4d7a","sha1":"cce7c6de993a9677bf395fbecad278ee74b033ef","sha256":"bf5cb430c4a6f1a6e741df98ca2456db455b919faa20aa74fbba69a2767aa080","sha512":"594903f64205c3e68163a4be0f16fbd4d6f9a79c13e414ba10e566d653fcdfec47051590b7561c4221ff0ca70c0f3e32cc92371f73c3928f001a0b5174cdf94e","ssdeep":"","tlshash":"0b414041af92a13fe3ca4499943d591cf2b978f413c7b64ae4ceb02a3060a24d5edf60","size":2179,"data":"","first_seen":"2025-07-08T23:56:54.683214Z","last_seen":"2026-07-27T07:51:47.218366Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/decode-uri-component@%5E0.2.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"11095b8880dd56c53071f9be4cc60320","sha1":"4cb04ff3662954e9ffff3aac59bf0c5db7fae5c5","sha256":"8f2345c89b8ecf6ebe8b28e18265df079986b5c746f2a0cebf8aba0539f3fd23","sha512":"e82e3829a7cb8a085d71d39c0b5670461aaa0d771c39582dc3fe368382219f759fac047349645c863b69318b9a54bbe57b40f173334042d73eac7ff34ceb5656","ssdeep":"","tlshash":"d3d0c9fd001242f618badc80433cb823e2e92104d8c725992b1b03e4a78306150124de","size":206,"data":"","first_seen":"2025-07-08T23:56:54.688691Z","last_seen":"2026-07-27T07:51:47.198184Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/rlp@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"2bb7fe40d4e330dba540828008d46a58","sha1":"ca04a082e0e2267d8a246d1475a5f4fad5228939","sha256":"5c90c47f1cfac94c8ebd9a72aa78d474efd9439494b97a9888e611f5ba372f25","sha512":"c68a188d8de4f824e853eda8f7c0b56e66d76b0273f5602a621a9b3db7a103e06817cc9579132d94b8293cfa541aa485b421cf2e05fd18f2d427c204b9d77906","ssdeep":"","tlshash":"62d0a713c51982cc63ad4ffc0028a73ca17680949045a0979820da33819310925204d6","size":205,"data":"","first_seen":"2025-07-08T23:56:54.737203Z","last_seen":"2026-07-27T07:51:47.183047Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/random@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"53c9da7e36519e4ae48b098f99d24250","sha1":"9c8d2642a80682ee3f221eafa91ba7fb2e45f4ed","sha256":"d37c3dc0b9b0445dba3f8d6452dd63741f2ce763c03ae82a1fdb7afdbd7cf1d0","sha512":"78dd29a40b68a8c8a01a6e36b165eff008e4afac25418a8bf195946ab74bb6e54bac8cd93d7e99340851c1a7b450d72a612f1c7e44c252faa0765dd302416ec7","ssdeep":"","tlshash":"23d05b2152cfb7ec2390bce4d2e5f23457711144e4f20c6d3456c723702388065237d2","size":267,"data":"","first_seen":"2025-11-22T14:57:24.12302Z","last_seen":"2026-08-03T06:19:48.317181Z","times_seen":108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/to-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"6d8ccfc9340c3d537a42b73469c7c8ec","sha1":"ca4f396f6acfa61fb0ed0dd5282b103cf9a5716f","sha256":"ed836042dbddd3029afc5f5265e3c59d5f03afb429c532a41c9d262c1ba4eac2","sha512":"937b6fdc2028c49556a462a7f96eae4e472cbca64eca7ae27e1967e18758ed719d921d32a80612d5b095a5682fb2752a83210b34f6e2ae81373a0555e4c352f3","ssdeep":"","tlshash":"27f0dc83de6020d30be328a500dbacdf42e43689e9e145d5cc49072938d44f5d033870","size":459,"data":"","first_seen":"2025-07-08T23:56:54.702474Z","last_seen":"2026-08-08T17:15:52.250551Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hash.js@%5E1.0.3?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9e157228e182fac4a5ab80c94bcb046b","sha1":"cc478da919f5a269364ec6bb5ef03d2a71e82337","sha256":"f22154f96e20b946b641d7fcd7436967b42717c7e8724641a3bc9601b1921329","sha512":"46aec6e2940371dda191a445a902a99db4efee89597773b8324f2b3cd0fd1c3de9d1a1f816285d15f8f39401340afa3b3a3ea067c79d40d580aaa5b707975722","ssdeep":"","tlshash":"32c012150613ba1813341adc29aa893a9bb6cb8ce80e00ba68af460ab003040e0a22b4","size":187,"data":"","first_seen":"2025-07-08T23:56:54.581436Z","last_seen":"2026-07-27T07:51:47.155296Z","times_seen":28,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/ws@7.5.13/es2022/ws.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"47d8463ef8c20eec61e057f821d75916","sha1":"c7c93412a43c0e1985566700bdf8031eaf2b19c0","sha256":"b378caba8373e48783925b9bdcc4a1d60f5f9e9a0330b346962fb7dee8fedce9","sha512":"7fe97a32c3721b368d6c82ad59281ed75a15f74f39876e5ec14737d7d27a072441884649e2cbf5d4c69d80b43db53088d7515c62bc4117e8677738f1fbe72141","ssdeep":"","tlshash":"7101ce4a34ebefb212b65189c13dd141f254943d4079f1d4a790c9b2948041b509be77","size":818,"data":"","first_seen":"2026-07-22T19:03:01.518352Z","last_seen":"2026-08-08T17:15:51.300755Z","times_seen":7,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"db7f772a34458e512ae9abfa672b9cc1","sha1":"d28682392c827f06d8aea1345d1f29697d953313","sha256":"7f9c1f3606514476cfdf277ea35e9f1d985d4c736812b1b60897ac77a747ca3d","sha512":"a46645d3cf7b07e9dc6f445ac592e82b8576ed3424a073587dbea1abf8a603a8dd03f2d2be2c160c11758559a95482c99ea4c3dcdb64f7f57ddb1e41a5ba6e15","ssdeep":"","tlshash":"b78176113be596b1937798e0c06b7103d238ed740c66a83c9259dfd585e0e8648f6fee","size":3911,"data":"","first_seen":"2025-11-22T14:57:23.801314Z","last_seen":"2026-07-27T07:51:47.138209Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/tslib@1.14.1/es2022/tslib.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"f7aa455d8f3fa03c0aa7d5fe6a050031","sha1":"beb8d258a6a27553a5e0d3058bec98e4f620eff2","sha256":"748739307d67fbaa8ae634eed70715714dd1f54f04fe8635bcb7f72cb0aaed62","sha512":"a8748aa5d4ff056578d1a7eb56f98ece18b1940041e62e49a5d60de6c1e6c2b620f266413fc840ffb3d28ab876547629792d834dd72b4bd80f84ba236f431442","ssdeep":"192:PtK696/9+kAVVdBOUA2KzR6ydv91YbgMKMiitQ95kjP:Prw1omUAUJXin95kT","tlshash":"c0e1a4cc75d1fcb982773a70842fa8cbf6356814a91c54409268f4e1bc7e86d962be3d","size":6947,"data":"","first_seen":"2025-07-08T23:56:54.565574Z","last_seen":"2026-08-08T17:15:51.647732Z","times_seen":125,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/wipe@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c9eb9198403cc9facb19e023c0d34ea6","sha1":"7a9b448d8dfd76cef3ffef57f40f82a5e2ed902b","sha256":"0c52c62c45a9ba3f87ebd069414a22a6313f21653ab67cab6bf41565cc21136d","sha512":"7447078cf99cae1d94d9fea53592aa2dde0eee86296436a346d1a4545886ea66e0397be046a73d786469a2644a049484d02a856e91233ea7625c2420289e3c1b","ssdeep":"","tlshash":"57c04c12029bba782330ad87957ff22a9351064c94f358bd12e5ce41d1ce8e19c377f6","size":159,"data":"","first_seen":"2025-07-08T23:56:54.827998Z","last_seen":"2026-07-27T07:51:47.198716Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/ed25519@1.0.3/es2022/ed25519.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9a0708a790cda5d14b67c55a2dd9a4b8","sha1":"dfbc77dd0439cb1eed52191d0c82b8261c643f23","sha256":"9fa1e1546bb7ece2668e4e1b3e82c299921d8d04f77327e41fbcc7370ad9e364","sha512":"2502a9d62c376d494fa486b59a3ee94e963f1ee6f656dc35770f710148d405ec30a94bc1d1011d15a6663de30beadf0dc2ab46b249120d1824e2e8c3f3690b12","ssdeep":"192:lTXDhxxSs53ETFdzhACNYyx4tcjLkAVbE89XVwCnrycjLkAVbE89XVwCnrTSpi2J:HxxEhdFAjcjLkAVbE89XVwCnrycjLkAq","tlshash":"fa32b8252acab07b42a757131bdd901a231cd1f050880f7dde64d9de9a387b890efb1c","size":11769,"data":"","first_seen":"2025-07-08T23:56:54.577434Z","last_seen":"2026-07-27T07:51:47.188973Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base36.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"461f3da8a023a993053158d12174736a","sha1":"88e5138e155df52f7853926172b57acd9e5beda2","sha256":"52dfe773e2d2650ed87c7c353e909a0d710ed83cb01eb553858eae4879a6664d","sha512":"7a2bd16d31534a9415189712637117679eb72827cd7074d5aa4a1ee27413592999930c89f03b125b09b955af685e0747b91c88187cd0627f63a6676029a64e5d","ssdeep":"","tlshash":"7ce0263eda2b5e6dca21611c998b402228978b3a6240038670658b0598501c5f45beab","size":339,"data":"","first_seen":"2025-07-08T23:56:54.824153Z","last_seen":"2026-08-08T17:15:51.860633Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/process.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"f8382a3858672b98c93fd61c13d21c2c","sha1":"07e4611887908eb9326935084618e4964fb84550","sha256":"79e7646e87709989f575ea4ce02e0877bc9303081567b1c0d412527917ae9e91","sha512":"a1609e8e33a2b7369169fe7dc1f9fd187c4b431e9c7428e4c3929587bff4701d937b8df219b3dfa2bdc3f6b38f63afecc0d9025a6ec8901d91a5e123179ca5cf","ssdeep":"192:kFmwaFSK/rVyQhxkSULErvtAAQic6NR03ao8Yk33q:5wzEr8irU8Yk3a","tlshash":"a2f1d7dce29a743302c1eadaf0bb0123eaf407c855245650ea0bdcc736219e5a5b1f75","size":7861,"data":"","first_seen":"2025-10-29T19:17:04.329787Z","last_seen":"2026-08-13T02:06:35.228115Z","times_seen":707,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/events@1.0.1/es2022/events.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3c1ae80bad0d6dbca5373cb8036d1637","sha1":"fb90215b4a86f2a874a1f39941718500d3bdb53b","sha256":"597bc1385708c9b4ccc0a4897f68a66b4076101123fe30f1b1e62272f803ae45","sha512":"836f6a6d68b6e435a6c93ee2c1d5a6a1fbe92f549ff06345684fdaa33d54173805cdf5eac7b56a4fdcdf6000ffa52c3a58a2243b10c24cb1055e5c3398c107d7","ssdeep":"","tlshash":"4fb0927989b44af9223708180356a18b526aa6cbf186422912589d64482168098949e2","size":114,"data":"","first_seen":"2025-07-08T23:56:54.761902Z","last_seen":"2026-08-08T17:15:51.284193Z","times_seen":122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/strings@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9389f023d51db79321f13145be70bc00","sha1":"ef941d22d8783f94be87e41e2f1247c153969aaa","sha256":"30a2dd74b0c8a4d9bc1646b9e499a5fc5a4f306842ca24a5bf8e5847c8ad814e","sha512":"92a960ffc15fe28bbcf0d3c9a1e58dd894dca3b6dc4bb26ca6ca5ee5dafcf5fca4da1afdf9c601c49fb314279f24f5b2e40bcfe9ff4e79997cffb9e89bfd6463","ssdeep":"","tlshash":"2bd01263c11ad6cc6b4c0efc41a8bb3ca17684949406f0eba864c73392d210966315da","size":274,"data":"","first_seen":"2025-07-08T23:56:54.684717Z","last_seen":"2026-07-27T07:51:47.256153Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hmac-drbg@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"374772825e1f8b76f3dbfaf9a170b110","sha1":"a1f3adad70a9ab8347b21b89eca9b33b72bdebed","sha256":"55b6c7a2b766d26a77e1cb3711effebe3911922d29719cd65cd28b072189b321","sha512":"b4fb85a1c0d315e87ac169a82754815a2b9c03b868a625f186e5edc3742783d3a37598bb9bcd0ca5fc209e2912bc13d3f6c3bce0bd79394747e12ed90e981004","ssdeep":"","tlshash":"dae0ec6d8682ee5d171419f9256baa3d56b74ac8f84610781ab8ce23e203ce065523e4","size":301,"data":"","first_seen":"2025-07-08T23:56:54.727805Z","last_seen":"2026-07-27T07:51:47.139585Z","times_seen":25,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/environment@1.0.1/es2022/environment.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"82149850b136f02a890a7479b2c91f28","sha1":"18b8ef10b8e843788e1d9ad975d8ea9d3f618007","sha256":"d21e76544d70d6066ac607ccd0d6cb429d4963e6020b7e2297199de546dd584d","sha512":"ddc935bc6b974caad7963335fe11d9eac184413e1c293434fdd3646b60f8c50044a87bc0c2cfcf15cd20181893fd9220a4ea9bda974f6b61697cb2a72495c138","ssdeep":"","tlshash":"cb4182dc26e4f2e292f244c1d23f4449f61e91fc08bca250b799c9f1aac008e2255f96","size":2363,"data":"","first_seen":"2025-07-08T23:56:54.566814Z","last_seen":"2026-08-08T17:15:51.730644Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/ws@%5E7.5.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b871c2f0a35f7072f102a3065aa8fc4d","sha1":"66e257a1c8f5d60f1e58727f64d0566e800049ef","sha256":"0e00f6b96c49fa261bf46893803aa7089340de4a1202984a1b273b6cca7375e4","sha512":"93e78a593140af2d43fe6f6abbcc28da5e69eab42c7ce3217df5989a27da4c57be466d933dae5d67320896029a631c5620d21b7ad301849f55ebf5c88c364da5","ssdeep":"","tlshash":"8fb092d2845745380a303e86122cc03993a2864da4e050ac1471af0b80a0448e42c7a9","size":119,"data":"","first_seen":"2026-07-22T19:03:01.629444Z","last_seen":"2026-08-08T17:15:51.689741Z","times_seen":9,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/universal-provider@2.17.4/es2022/universal-provider.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d1dfecee334e4fd7ac4a73c3b4949151","sha1":"2e9460014735df5711de0f72b52aae1b45e88787","sha256":"6ad6aaec1b8497dbd50e7c1fdbf598bdc638fe6e372ba7912adc5f197712cf81","sha512":"1ce26d124b8a16df092e3e543168e91e8bf59a306dc883bb8998412917a5246e7e58b7bee07c7ace871e53cf134b7bc96bbe4a79a4b1c5b7d62a8079bd3f7e90","ssdeep":"768:S5E8Nm81/848D8S8c8A8N8D8P81e+PlCMx:VcmQhQZb5QcIw/","tlshash":"6fe264a631b9e17943aac719bc1c3ba1d324140ea004513d7db6a8fbe9c6c444e5ffb6","size":32715,"data":"","first_seen":"2025-07-08T23:56:54.74068Z","last_seen":"2026-07-27T07:51:47.16937Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/js-sha3@0.8.0/es2022/js-sha3.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"0e9ad04981cbda36892f4f971fb7d22a","sha1":"66014fe5cbe98c73511581170252d1132ad38890","sha256":"ecc2dcaa0c5f292ef3dc99b71889a2ae914af1cf4102a2c135cac8f0d1d10ded","sha512":"810cf88258e9b2f8075288ced6350d9de246a55dee79def5a1ee4f1f423b711ab69ab0beba2df372e7b595320873046f2135b83479ef7d986eab635cd7bc8566","ssdeep":"192:jS1pgzpn+SQRjQv48moUKHvtaChLOB11pn1Ran107/815Wov4bUrJ5Yt3GjeJo33:m1K9AkeI158seJMuLW","tlshash":"5b22c445a0d9d4e642e7e2e874b7528e732a797c802c162d7d80ccdb98b8dcf442773a","size":10860,"data":"","first_seen":"2025-07-08T23:56:54.757213Z","last_seen":"2026-07-27T07:51:47.255023Z","times_seen":16,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/from-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b7588070664f1f416b33bd24f7126bce","sha1":"b60ccfbd4404e3cdf5fac4bb8e14af9fd32c76d6","sha256":"eda5aaaa676b715201821ca73ee1073ab429398de280e8c8d85627510e224314","sha512":"d269415752a6076824cb1fffe5f3874f466bb5212c1d2f6067c43d6d676998fad3f7c8fb9bb04c476e9cb98d5954f44b7d2c4db76733ae73531e216ed0c4f6e7","ssdeep":"","tlshash":"abf09ea786701465179a2cd080d66d9f41e4fb99e6910190de261f2d36d24f4d4b3c39","size":493,"data":"","first_seen":"2025-07-08T23:56:54.728838Z","last_seen":"2026-08-08T17:15:51.836437Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/concat.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"62bc3b18676436754ad71a92448a68ea","sha1":"7b2a64c375a4541fe5dd8dfe67b96491f0035a42","sha256":"3ab961c11fe1ce1cf6e5cd9d23af38c3374707610c00c957fd4a8bef1e85776a","sha512":"193f7a858017492cbabff942ef06c449d6d1c1517afa82bea904e6bd0b6a59893aca842dddc144592ee28365ff0cbab927ff33ab52aecfdb52f970a49bb99a79","ssdeep":"","tlshash":"b3d02bf229a6586781b20b5b0091811087395a7ced8b4598344329ad3712ec0c4dad74","size":253,"data":"","first_seen":"2025-07-08T23:56:54.77458Z","last_seen":"2026-07-27T07:51:47.24356Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/events.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"acd05dc333042e32473eb39c7700cc9b","sha1":"a9ff738706c3e6ab2be579d296faecd67e438f47","sha256":"4c6150b88c1444aa1fe9331013e3f37eda9836206f629f7f3ae8f3743dd90fa8","sha512":"658a1eebb2727249df13bfd7f76d1bd38921ebc2dff63b8c1bf779973bd10483b7138649e7168a1ea7305c88542876be92a52b1da915331806436b0455f9a6a5","ssdeep":"96:yIJAOQoXa9RQ9bKVXQ6Z9cBBEMPg19H+MyLfLYCGZjiSl1YYS/07jfofxSXR261G:yyiZInEGaGLYCKt70WRRD7EE00WZ","tlshash":"404286ccb386b87113def3af707b4146f23459e0685c0408ba75fcf6292a98995a6f71","size":12122,"data":"","first_seen":"2025-10-29T19:17:04.387887Z","last_seen":"2026-08-13T02:06:35.231397Z","times_seen":707,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hkdf@1.0.1/es2022/hkdf.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5d8706468f2d28117781ce625f1b1084","sha1":"260c1ff71a0422fe3eb7ae7a429130b51051a0a1","sha256":"a52c448d6886bdb7ccc5546081fe8e4974647d8e2f7a090f670fca46ceb2e57b","sha512":"6ddbc60bd62e85f89d2232001415fda194fcdf215d0a691c39d6c4a027c7e852a356ad87ba90769f7fc2f85f5a846dc0832aa35c04e69e2357409f5b0369d8b1","ssdeep":"","tlshash":"d84152a52ac4f2611537d8c1e17e6607f121a5384079d02cf28cccfd96ecc363956b76","size":2317,"data":"","first_seen":"2025-11-22T14:57:23.792364Z","last_seen":"2026-07-27T07:51:47.201236Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"552bbcfe146a0e6b9392fe0c673afdaa","sha1":"34121fa2832043074146a552690508480cb32ece","sha256":"64e88d09f6ca064cfd20c16421f77834a5a850762da26d0455237db6932d2902","sha512":"9485af47cb38d019af75aef9f3646b269049133b8e0b85720fa31db08724084e001c63cb7638e324e44a94849dd4d0930a598f259c594cea9d91799834e60f59","ssdeep":"768:F5Bywj4ka8HtfWDVwzOM340puYF3QwqUrN5Ykn4NUxNOJu60DDECx:tywc/8HtGwztQwqkv4+OJP0Do+","tlshash":"c083fa51b3bb99320bcda19dfd212700736a98982568801cbfad7cef85485c4f76af70","size":82778,"data":"","first_seen":"2025-07-08T23:56:54.734668Z","last_seen":"2026-07-27T07:51:47.239441Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/keyvaluestorage@1.1.1/es2022/keyvaluestorage.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9a565ef9c0643ff77f16d62762deadb2","sha1":"9acaf344af983ff07f850bc03e21822cba8258ae","sha256":"b95e41d6667255c4460eee73a9331d4435fe525653fd3139515fcb21f241ac10","sha512":"71e2ac539f9bd6058ede1d16374be9ff95989434f0b68300bf03e99b9c5f5d10c504409bd37129b718baa5a6a4c0f2b335ed233c370a121a6c985b85ecc8e563","ssdeep":"","tlshash":"2571204b73b7977643e564ed61223015b23e48e85d0f842e7b2d2ce1389c98906b9ff6","size":3620,"data":"","first_seen":"2025-07-08T23:56:54.708145Z","last_seen":"2026-08-08T17:15:51.307546Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bytes@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"063c6f7dad93a8f2b4f3cade7d442e55","sha1":"ec3c094520ac58880fb868ef32b961d185471b9d","sha256":"11b190062f04ee619544980e6fd197df0d5cecd990069b1ff0a25422a9e2a09f","sha512":"24de4b3691d8c72b06205d561ccbe9cf606f1ddd95f2d6138ddd65fd95cda7376602f3d0401f876a1d3feb23d70573467964d08f98d13cc313313029c70cb345","ssdeep":"","tlshash":"a8c01213822e82cc629e0fac0128aa2cb276c0988088a0ab54288a22c1c211daa304f6","size":158,"data":"","first_seen":"2025-07-08T23:56:54.718681Z","last_seen":"2026-07-27T07:51:47.168239Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/poly1305@1.0.1/es2022/poly1305.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"6785af86be7eee5095abfb12d3491606","sha1":"8cdfbc029f6cf559f65243dd950b4f4933a9c7b3","sha256":"4a0c4a68f3e17a90212c07612a2666e5ccd1533272b9cc0997bd215867ebcb22","sha512":"af1bcb7a3331bcf90961fdf00ad0e8e7128b3d34ce50461dccf313b153000a59e46cc7b06626bbe05c1478e64d9f246384e3474e1c4b75030c12b2019ef6b2ab","ssdeep":"192:UFBfdxpM6KnsrZP17JzMPhFvDhnxDTjd4IaHM0vN:ePpRKsrZP17JGFRxXjd4IaHM6N","tlshash":"ede19422114d40110b728781483fad5fb139797c02769d2eb0edefde629e6d93eb46b8","size":7211,"data":"","first_seen":"2025-11-22T14:57:23.769868Z","last_seen":"2026-07-27T07:51:47.263524Z","times_seen":108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bignumber@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ce2fc4708fa23bccbddc34bfa472d008","sha1":"e09588cdf26f1443bee31c8f0e0529f1185cd076","sha256":"608a43737b84029cebb41f30bb89a7a225b1a2064ae15e7d2034c804b9dcdf7f","sha512":"e3c54f6c55e53b78397702b843dff48b1e355bfca0979d5c1e5e8a5d538f45115edd1d9b49f8b864687876cb29cd204c04828bc3e9bc0b533c28880266a2ccee","ssdeep":"","tlshash":"1fd017a7c119a6dc634e1bec90a8a73ca23b8094d686e0be5824cb73938311d26615da","size":261,"data":"","first_seen":"2025-07-08T23:56:54.682227Z","last_seen":"2026-07-27T07:51:47.172236Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/buffer.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"39e6418dc1a8a38a7baf7cbf64e6bc9b","sha1":"036b9f42abe9026454886016987cdd479ce3f33c","sha256":"64fb61aa5f48644d685f9ceabedba60ea6b5d6ce03dac1943e863d00d9e574f3","sha512":"de01074341e2a0ad5d0b74108a593811ef91c72bd775fc2ab20f98c941fc4635f541fd7983f08cd93700d7f6f582c55b95fdfaed785258eef4f0b55322df151c","ssdeep":"384:f2ROO9YwKOX7MW/I55zmhYuC2rUV5w+c7LW+M444MMazyXDNcyO9+C9YDNqWRMzI:fKewKOX7MWwGzCrfTc7LW+bcp9a60","tlshash":"d3d2b694f795b032439e65a50057980ef2b8f928640d198cf6a0f5f728b59ce88eff74","size":28845,"data":"","first_seen":"2025-10-30T08:47:32.392454Z","last_seen":"2026-08-12T06:39:49.854715Z","times_seen":548,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/safe-json@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c9fd678071e6d03eb4078fa7ee530c10","sha1":"2220ba8353f854791c066af13fb5343fd36c5f81","sha256":"bda99310f7f8a365bd996ccbce3853f57ea7688ee67a6ab8fb6b50f9b1d5cff3","sha512":"3c65b53cbe34fbab0ddefae6771cdd66167b07e4a7fcb09c5b7dbe33aac2e1ca285cc0344e1216fdac08529a51d76180499061ea461885d9bff9eda72fd1d38b","ssdeep":"","tlshash":"18b0927141a3031a0b3a2648029a83ac4b6b0b0cc14300acc29b0120a0932a86870ab7","size":116,"data":"","first_seen":"2025-07-08T23:56:54.647274Z","last_seen":"2026-08-08T17:15:51.472536Z","times_seen":127,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/properties@5.8.0/es2022/properties.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"114ebee1576a0bdcd8d454e532aca40e","sha1":"e7f8313d6983eff51bcaf942ad0a4b2cfafcbb92","sha256":"3556728d96d6b3cce6c42752d1e85b3a09ccf077ab8388a85bff1403853529a1","sha512":"c5205d05193051c2c8162fe37bf9ced319bde09a9bb5b3923fb129f9004fb46a02b3cfde58ead7b34844cfc43c7118f1dd3be99469b3707e8a34af8552cbc5fa","ssdeep":"","tlshash":"074146d9f6f7f07713db5468902bc407f13aa428d05d1504a290ecf26cb147d89a7e1a","size":2060,"data":"","first_seen":"2025-07-08T23:56:54.617494Z","last_seen":"2026-07-27T07:51:47.158135Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/wipe@1.0.1/es2022/wipe.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9d6b9a2f378cec964618b8dd660a92f4","sha1":"d22136d31b55a150600591aad6cbeac8c1cb2c2c","sha256":"173ee05f4dd8c39b53e09fcee77af39890e940ee1688e23e94a74d6ff2b5aa73","sha512":"e1c956c543dfa34799a19c4caaaab1adb56f529beffd8c7b2f62edea3a61d84d9d4b522e991bdec8dd4527a11e5231fa739d431c79d18a8d4969dd7c6d4e5df4","ssdeep":"","tlshash":"aa01ce9625e5eeb252b248cbc93e5141e21898794073f8d0e7a8ccf2d54249b14aae73","size":833,"data":"","first_seen":"2025-07-08T23:56:54.780796Z","last_seen":"2026-07-27T07:51:47.199637Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@%5E9.4.2/basics?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"cfe74f85ecdac2c1f39f00518efb2e1d","sha1":"0b82203ec555c6ba49581312e6b6a760c542c9da","sha256":"a6e485045a78eafcf021840c3bcdd31815d5a81aab04293797ff328220b57d2f","sha512":"01acf079206035092521a9ff07a9e5e7f7de816f774c38ec93b0603928e560da7acfc3ebf63a48d75c441824ddca6e7921d13b640db7dbc7624bab6b526013b5","ssdeep":"","tlshash":"5f1126134f5e6f7d332d5f88a0e4243557542998dd8015f5bc2e4e31fbb08a4f1526d6","size":911,"data":"","first_seen":"2025-07-08T23:56:54.649415Z","last_seen":"2026-08-08T17:15:51.499723Z","times_seen":119,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base2.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"04f2050ab513d0ef8322c60099ef7728","sha1":"4f2ce398715d8393525ba623ff9dddbc84d29c11","sha256":"46527ded4d9b868600b2fd8902398a31226655790bd3c5f61ffa0bd8737b0698","sha512":"689072c6c3fe674d3a4ae3182bd3e85b6df9334dd39048e908ee58d53f38ef7e46ce1564e7b83baff87af2c22ca51e07ec9ae03a5ba5d75e3bc48968d875220b","ssdeep":"","tlshash":"acd022beca7d2f7e363a504c848e4811a4608baad3800250a1261e6161184cef027f75","size":215,"data":"","first_seen":"2025-07-08T23:56:54.744275Z","last_seen":"2026-08-08T17:15:51.979375Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/time@1.0.2/es2022/time.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"56be4d8d1a9399319757b9e4f26a311f","sha1":"b8cdd0116f1472ebb99527a77c89f96e7ab0a24a","sha256":"2138f827a84076d72abda4f81bced393020c0a564c64bb11d5ca6b86eb86bcf8","sha512":"438a4a05629e75894dad75a6e1c5ac33eb91f3f0d0b662c68f72d5939a75509f11507e9883f2ce71dfb97944396db33e8b50ddc3bddfaa405e2ae7bae330ddfd","ssdeep":"96:dKWcdV//Bi+S3q8bdVplZr0OmZHCROwfXiDlBLLST+Gem86:sbvpS3BfplL/iPLQP86","tlshash":"b1b143f2b1efb57781b688e043372442e291d97a101fa458daebdbdb15808fe01fc991","size":5208,"data":"","first_seen":"2025-07-08T23:56:54.832203Z","last_seen":"2026-08-08T17:15:51.728548Z","times_seen":129,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@%5E3.0.0/to-string?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"b6ee7bd452fbe59cc4139aab60fa75ec","sha1":"f84384517386d64cbf41fd1cb1c0dd03c83b1a0b","sha256":"fb879e4fe711ec46eb17282e00a35e461bb8a4bcbb0e9ba9cd2ebd1dccc0fe07","sha512":"7ee30794c3d5ef7a273e46f9ef2eb4351bcc7c048c450a4c855257439ec9cdc6a847df56958ea658710101dcdbca930c51e01ec2170f741e996a85f49773c03a","ssdeep":"","tlshash":"39c012574313892d26e59dc444802432c3111fd8d9d700ec34ba661ef2070e8c8b19f8","size":186,"data":"","first_seen":"2025-07-08T23:56:54.838322Z","last_seen":"2026-07-27T07:51:47.195811Z","times_seen":99,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/rlp@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"2bb7fe40d4e330dba540828008d46a58","sha1":"ca04a082e0e2267d8a246d1475a5f4fad5228939","sha256":"5c90c47f1cfac94c8ebd9a72aa78d474efd9439494b97a9888e611f5ba372f25","sha512":"c68a188d8de4f824e853eda8f7c0b56e66d76b0273f5602a621a9b3db7a103e06817cc9579132d94b8293cfa541aa485b421cf2e05fd18f2d427c204b9d77906","ssdeep":"","tlshash":"62d0a713c51982cc63ad4ffc0028a73ca17680949045a0979820da33819310925204d6","size":205,"data":"","first_seen":"2025-07-08T23:56:54.737203Z","last_seen":"2026-07-27T07:51:47.183047Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hash@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d2fcf6ba4265bd7269f3b397c126eedf","sha1":"a7cac7a64f9490e04543e17d66fb4395303231bf","sha256":"e70b9cccfdd7abe13c3848c2746063d3595cdefbfa4a5a35c95c379f8fab5e26","sha512":"c39e8f8ef993e508e3e3faefc72a937521f3d4bfb350bfdad386a45946b702ac5e06030b8c81c601708fea15f0dd255067e64541e39052c75abca136490cd26d","ssdeep":"","tlshash":"4fc08c8a02cbba382730a880a3b6f2608391021490bd09ae0229830490026c09031bf7","size":159,"data":"","first_seen":"2025-07-08T23:56:54.796152Z","last_seen":"2026-07-27T07:51:47.203403Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-assert@%5E1.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8e0faac53bc45ece16c3837b588e0960","sha1":"1063472c14e3a5e61988f599a3f17f7520c597ad","sha256":"02883d571ab4809495608554744cc80c42f7f249b2002a8be09a7307238f743a","sha512":"e1d59a28b5cbc94a93b7ea3d51ff67d6e9df0caa3acdac704095466233137e1b0ea1e592502e9753f7eea17c023f3b59d98b9a60dac3518b93370a445db14897","ssdeep":"","tlshash":"a1d0e91143578f2a37b82aea11ae692e7a538fc4f84110ba15fd8913f0974c294963b5","size":201,"data":"","first_seen":"2025-07-08T23:56:54.59861Z","last_seen":"2026-07-27T07:51:47.209697Z","times_seen":30,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/cid.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5e91b2f4cffcc07d32e748e46a8f694d","sha1":"9e3f8863fbbb96378af2f993e610f2c9d3e322af","sha256":"1945384d570468b0bb5bd0f394184835038d5778d701b50b6b7eb7273748d288","sha512":"71ff2e7cc3847f8d59a9f33c97d87fae7aa7f598b777e6995065f00df6c13b756de158c241c9ea16ece2dd490000847650fbf9ca1bed7d21045c067130a406f0","ssdeep":"96:y5Lhe/kUgKP+blILy++2enbCdcn3c2h7xKfSssrjucfIKGAasXUxYaWEYRjwi:y5sgKP+bMyyI38SsQCc9XaO/","tlshash":"83a16490fbd5b1b687ee154110314011f32c54a9287c083afe9abf56bae49c8ddf63b1","size":4832,"data":"","first_seen":"2025-07-08T23:56:54.651481Z","last_seen":"2026-08-08T17:15:51.784001Z","times_seen":122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/constants@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"a2d22fa01d719193a933172d85c9bc51","sha1":"1b141d89185bde8aab44c267c6ad0fc26854fb05","sha256":"9c305e7b0cd23610c175f0f447c03010cffa3b0a00b5bae7224a8a0ae68bca57","sha512":"3aab9c88a5578e236e9fad859d08b7c6de54312e6b56af1d60922c204a279d085bd88a60f1f14ea00ecda9ce83ec311b3e25d2096e1eff055351bafb7a5ced6a","ssdeep":"","tlshash":"fcc01256c01555cc775d0fdc0228ab3c91773054e044d0ea541c8623829310665524a7","size":173,"data":"","first_seen":"2025-07-08T23:56:54.677691Z","last_seen":"2026-07-27T07:51:47.182413Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/random@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"53c9da7e36519e4ae48b098f99d24250","sha1":"9c8d2642a80682ee3f221eafa91ba7fb2e45f4ed","sha256":"d37c3dc0b9b0445dba3f8d6452dd63741f2ce763c03ae82a1fdb7afdbd7cf1d0","sha512":"78dd29a40b68a8c8a01a6e36b165eff008e4afac25418a8bf195946ab74bb6e54bac8cd93d7e99340851c1a7b450d72a612f1c7e44c252faa0765dd302416ec7","ssdeep":"","tlshash":"23d05b2152cfb7ec2390bce4d2e5f23457711144e4f20c6d3456c723702388065237d2","size":267,"data":"","first_seen":"2025-11-22T14:57:24.12302Z","last_seen":"2026-08-03T06:19:48.317181Z","times_seen":108,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/esm/src/util/bases.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"e66962e99ce86882dac884154d62780b","sha1":"7fdb1fb1a51340fadb536f8732a6d3524e830029","sha256":"4779e7e91b121a58d4d9a8ef3476cccb52db24fe0dd0fa035164764d0a139da3","sha512":"5acb7525fd93e5569d304c3c93863b11f7adf4a0e9f2d1e2e14272145a0d0f77d3c3ac1dce0af88308c21bd13105297acd2206dd03d9a9d88221e3dcffe61cbb","ssdeep":"","tlshash":"660144f92e7670e383a611d10a86900ec4587fdcbd1708e6bd844f2b13019d088d7f30","size":689,"data":"","first_seen":"2025-07-08T23:56:54.775459Z","last_seen":"2026-07-27T07:51:47.220347Z","times_seen":101,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/logger@5.8.0/es2022/logger.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d4255a85718f9f8815e3dcb28001df6b","sha1":"eb94d54ec1d80090a2e89656e601a350bfe10d21","sha256":"864fd14189791688bbd800ec9920ec4c0b131829905a62f815e0bf3e4ed70f65","sha512":"c05cd2fcd6aad301a474e82a1566aeba251c8ca4086d639735d0ccd00c39c9e4feea730d5705ae11bc9cd027e4c263657ad130ca12f8c7f9509df94d1cfaf789","ssdeep":"96:9GqjhsVgYxiubsZGVY+12cEebNGMOlXAhUpMbg+CS1S3MHyHnm+LvwsvwOqOwQE/:ktH2czUnwH51S3plg","tlshash":"1fa1b812f57317f726682aaee4240151a3f05534b7ac6d38220efe8a11f1d424dabb70","size":4829,"data":"","first_seen":"2025-07-08T23:56:54.783825Z","last_seen":"2026-07-27T07:51:47.19314Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base58.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"63ee9be255c33c8bd22c2dcf6f687d6d","sha1":"fdd1245b8dca448680fdf83a75b78a61f2c4822e","sha256":"d45f93c89f6f8a05c7ddc132c99a2bc866d1de2e8475747b6722f6322482feab","sha512":"75af4e7e0df028be8ee8b5e5cc8dfe2f09dc86208939a3c40a6f4e8fd9f967072b3e8f06fd21f222bcd6636e8d5431c2aff4fec963bc01dc8e746e7ed0eddbda","ssdeep":"","tlshash":"99e0226ec92a8e6d0a29100d3a4250911bbad7b2748a4205223b4f0ec5900c0b8ab9aa","size":391,"data":"","first_seen":"2025-07-08T23:56:54.733535Z","last_seen":"2026-08-08T17:15:51.634773Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/sha2.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"f46ee229848d7a9ca944c4569bb4c706","sha1":"62fe1915ee496d03f75e815867c5e815749144b5","sha256":"4378a9e2ce412cfb143f54471c6a7bea63e65c61df819a3516295da0d4476ceb","sha512":"8f41053d6a7955dbfc2963a39d56f066fbfa6db573285d79d0281c10d04e83b3784ba41c784b459ecebed26f4162cf732915ef2af63df8a0bf4ed4025b8cea10","ssdeep":"","tlshash":"24e07da88cfe2ef41a3b205c2c64904154e94f1a82408134b48d1f1845d05e6123af72","size":316,"data":"","first_seen":"2025-07-08T23:56:54.604914Z","last_seen":"2026-08-08T17:15:51.469075Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/universal-provider@2.17.4","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"7e7955a04d1b9dbaa7fa96e8f09a96f2","sha1":"2d8f597ae99c30e14f0b6db55fa3c2c3e442e15c","sha256":"d86711685eb948065d95bb39449e1df623c4eb79edc7dc1e40c68222d55c3eb7","sha512":"810728993217f60643eba291a4d936063cb15107203e9308dfd2303b09e7acf02197dd35d9c45159bccf1849d8c2fff426fa84af3531c8166e873c627cf58e01","ssdeep":"","tlshash":"b201dd91c6238f16537b4e982b45537dc62b5b8ad7c1206cd2d94234f5726d486e03e7","size":736,"data":"","first_seen":"2025-07-08T23:56:54.754055Z","last_seen":"2026-07-27T07:51:47.18634Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/safe-json@1.0.2/es2022/safe-json.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5bf97e5f27ad1f83529407f640bd712e","sha1":"b288bea5b2987021fd263cf1efb2bde861c1b347","sha256":"b37e432897a643d234899d13bac143d85f616ef9edb5ee7b0293a15acf8336ab","sha512":"75ba1597f660549cb71f34f65ad395987de6a026ff29b59c4a510947ad8d862f272033ab3e98ddb8ad8b76d0143a46379696d8638d4e29552baf70e331e0a70a","ssdeep":"","tlshash":"a101bd99b5d59016c7e92eb801285e7ce4fb5fecd28f0470c2b95073b42189a84b6b67","size":797,"data":"","first_seen":"2025-07-08T23:56:54.859Z","last_seen":"2026-08-08T17:15:51.681681Z","times_seen":124,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/binary@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d5e30b09f139462f84cd37c450eb8822","sha1":"ae7f21661c6afe6b75016e4741debb6216ee917e","sha256":"ce714ed16f459fc71f5ff85e7194df3f81ab3876d5ffb2e325702b2741c81228","sha512":"0aeafe3ac7340d84c3398f5fd2c0328becfb2a0d6b809096c5aa9b5058384052b3767ab74e591bf48c28cf834bcc20ca90cdb25f4402b37cada87cbcd639418a","ssdeep":"","tlshash":"d2d01311036be6f5a711ed94f377f23447710544ddf5055c1555770250476c1543a7d7","size":216,"data":"","first_seen":"2025-07-08T23:56:54.57568Z","last_seen":"2026-07-27T07:51:47.191661Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/esm/src/util/as-uint8array.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8aa9e1cf11d268f3215f1cf9b2f29dd5","sha1":"c3a625b746e66aaca29f12ffd8eac7215ab01b92","sha256":"1befda33aed90514893eeb1c44df26b090a7eda53f7e21a1993e3c9d51b12e69","sha512":"748f9eabb48aea998579a42a1866720d4dfd7a80fd3d076da6c7723f3b964de07d4fb43e119b846eb82bf40f7f52949c433dfc497ecbaa2056589245c5a0e487","ssdeep":"","tlshash":"05d02b428c32547812672c66c4c155cf623a4f38d583c18c44364d5837a70f0d8518ae","size":275,"data":"","first_seen":"2025-07-08T23:56:54.764012Z","last_seen":"2026-08-08T17:15:52.203723Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/heartbeat@1.2.2/es2022/heartbeat.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d353b2e420e0dd3f26c59f2a0b3c99c8","sha1":"71ca0dd285513dd1a04fa099af7c85da63c71fc2","sha256":"d4d8817d91ef5554722c95c5f017b0ffab4feff40d1ae8b272ee2087a44556af","sha512":"6d9e64c2a2b486dc7ec25858cfd27a098d58ae70028f27422289980bc9eab0a90d962fe0533fb5df5c7ad76edb21d360d0ffab34e66b3cbc074ffdd75244b6a4","ssdeep":"","tlshash":"a9110ba8a323cdbe05bc49eec2014253623228c5721b404cf364bcf29ab6dc485a4ff2","size":963,"data":"","first_seen":"2025-07-08T23:56:54.750285Z","last_seen":"2026-08-08T17:15:51.62012Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/signing-key@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"930b377ae5c4702edd979bf59c57437b","sha1":"ffdff520c91455215199807a366df7d2b4208f7f","sha256":"c39d853b7a773a12dcaedf246859210e432bd2ea084ce2dfb77b8df9454c54ef","sha512":"235bc7cef621e0d1cf4212f3f6b6cb5633c875f04a9ff4135829bf8197ccc236040ec32cd94456b110d871980374e9cc24fe86bdd5745e769731e0322d2cab4b","ssdeep":"","tlshash":"69e0d8a3c116e6cc134d9efc4058bb3cb235c084da86b09bad68c73362d102957316e1","size":366,"data":"","first_seen":"2025-07-08T23:56:54.634731Z","last_seen":"2026-07-27T07:51:47.244708Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/poly1305@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c44a43c4c656d42b88b004482bfb77a9","sha1":"23019c47a64b75766c78c141b2e25735ee34f596","sha256":"f1ab5abb814084745af388222281695c50bc30bd636b82693daae15de1f23ec8","sha512":"5b67b54d8aa8188614219fa1fb760e2458b14ca1515c6f6ad0d8a96c48b0ce2db443c3208f862acc385d9886be3c0dedf4aa114e30dda41992452d820713039f","ssdeep":"","tlshash":"8bd05751578ff6542310b9dcd0b4f275477d1844e47b487d1974f751d08248145727de","size":284,"data":"","first_seen":"2025-07-08T23:56:54.648411Z","last_seen":"2026-07-27T07:51:47.205842Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/ed25519@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c19d1b05bd10796c726dd07efe8a4fcf","sha1":"ef195b72680b89844ff4a5028fee52f2623a3195","sha256":"90b25af40af66c27090305b4871c0831addd3e3fa4826d0c30898391e55b4a0e","sha512":"bf868e325dd3bfbdb8ac958dcf132ba9634d99db02ee0daff7adf8528099f48b572c5ad0e7e0fffbd945c3748ce0d5fb0b2be9efb9d146b48f930e634f7ba07b","ssdeep":"","tlshash":"54e0eca256dbf7d8631cb8a4e4e4f235d7715084f8739c6d2a52c726b12388151337d6","size":322,"data":"","first_seen":"2025-07-08T23:56:54.689748Z","last_seen":"2026-07-27T07:51:47.245294Z","times_seen":99,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bytes@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"063c6f7dad93a8f2b4f3cade7d442e55","sha1":"ec3c094520ac58880fb868ef32b961d185471b9d","sha256":"11b190062f04ee619544980e6fd197df0d5cecd990069b1ff0a25422a9e2a09f","sha512":"24de4b3691d8c72b06205d561ccbe9cf606f1ddd95f2d6138ddd65fd95cda7376602f3d0401f876a1d3feb23d70573467964d08f98d13cc313313029c70cb345","ssdeep":"","tlshash":"a8c01213822e82cc629e0fac0128aa2cb276c0988088a0ab54288a22c1c211daa304f6","size":158,"data":"","first_seen":"2025-07-08T23:56:54.718681Z","last_seen":"2026-07-27T07:51:47.168239Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/codecs/raw.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"47ef0b4a4baaaaf6edecbfcea66a080c","sha1":"88eb67b9abe02eb8b90b867ddbacbc92eadc18e6","sha256":"6d6b44e3bea526dd9930d61631709f45e9f10bf2e190dc19168e9b0297fb30dd","sha512":"89f85d8dc3871b67144648ebc6b36b71d8ba84230a121079781e6e7e701e7cd60a41e8732b21633c4cc325d86ca8f67d5d83bf271c73e122a9c9b91b087f996b","ssdeep":"","tlshash":"45d0239fcd7d29741a674d141136d816b71cf9cdc31042536419cf547520475d934575","size":213,"data":"","first_seen":"2025-07-08T23:56:54.650422Z","last_seen":"2026-08-08T17:15:52.000727Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/basics.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"086d4f1c94f4c402f0679a8661ab4db7","sha1":"e609011aac5ff02c4ac240dca3f118e138948b5d","sha256":"76f64036094d354394512f977fc6fe5ff6c87762394ea5acd83492d4d93b35d9","sha512":"b44c9c54d2741a68c28989022ab7239dc43def5ae1794d82026155b3e62ea674e5b6fcc1f1fd42aab959d20ffcb3f33995ee5a2242f6b33124f9ccad50c064b3","ssdeep":"","tlshash":"c411521f875694758738cceac24ce87b5b6adba5028213d4888f0b668b34486f953c28","size":876,"data":"","first_seen":"2025-11-22T14:57:23.905796Z","last_seen":"2026-08-08T17:15:51.400058Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/esm/src/varint.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"de72667a36be3f909650a5f3c4f7af83","sha1":"0b5b1334b2f15043fcf22427fc7c0d4eda15807d","sha256":"5ea3af2ab0109f1e9f4f56fe35883f593f6b047899ada90095a5ed518d635899","sha512":"91b5e26816e140ace7714201e1c3f7855c2e6c3f6031017824dd05bc1bc349475d0d81d1498a574b8db8db08ec23ea26af9def5c3b73b57a0f5173393e94da5c","ssdeep":"","tlshash":"d21123a8a64c17d5235a0b2034df481b51ed9cb1991facf8ea15c1431463ca84d3e6b8","size":929,"data":"","first_seen":"2025-07-08T23:56:54.611517Z","last_seen":"2026-08-08T17:15:51.828803Z","times_seen":122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/x25519@1.0.3/es2022/x25519.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"df104673896a1826c97d061e2fcf031d","sha1":"886eec7b52ddbd0ebc8677257e0e7ce4c55d09be","sha256":"993bf71dfac5eea3c10de7a6b5aba15d45e30984a6fd212a7bb0deb041271ed0","sha512":"391e34977b65ecc19ac4fc4528a9260db1ae7398f66810470d15a061610ed8864711182d2b420f0f06423bca0b0fcdfb1ef7e34f37bfaf883fd7dc8de0c8b3d2","ssdeep":"192:5pv9KqMScXYnhDSuBAVYOLaHOznkHGMIn6zVtAHaHOznkHGMIn6zVtA37/CcXXbN:RKqM+nlwaHOznkHGMIn6zVtAHaHOznkY","tlshash":"cc026642398a90374137f7432bce821a215ce1f820185f3dc6a9c9c9a678b9dd06ff6d","size":8322,"data":"","first_seen":"2025-07-08T23:56:54.805447Z","last_seen":"2026-07-27T07:51:47.222479Z","times_seen":115,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/chacha@1.0.1/es2022/chacha.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d2734f758edf03ebeeaf41630512c7b4","sha1":"2b21a98ed03847278c940869e3fd724f11864710","sha256":"e339254c39ccfd8d3f2bdf3c320b55923877ca38c4d15db5bed99ac18abaaa90","sha512":"119aa8469713155fe950005f55b85e4c2063711da931da34b739529ffb308991d0f8d2a70789314b320b289d12b515447e32b87489000aaa37397c912b37427d","ssdeep":"96:cigZHdL8O/4ZKJaIOI4nGpZvZZX7nvVuz13+6taiFKbb6b:k9LMCzsGpZvZZXy5XRoKb","tlshash":"6791a6aa85ccebf3c27554a9832fced6dbb1f911569ca933c132a07150d0c0e8891f5b","size":4211,"data":"","first_seen":"2025-07-08T23:56:54.678922Z","last_seen":"2026-07-27T07:51:47.173384Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@5.2.5/es2022/bn.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3f1e29dbbb3c2cf7d754d2cfc8b05e31","sha1":"a758d4c4cc92db99a8df81ecc13f9dab772e0e0e","sha256":"b93d69e3e4d5dec64dc7895829a68811ec44547c9b0171fc0465ba40db38a952","sha512":"361f0699953fa4d97862d4aa9102864699d675717ac43addfd52ec0a13971333cf1ef8844a43713303693ae2b4b30163dbc6250c6092df65b74d65081a63f30d","ssdeep":"768:cboRMSZeQfilXRpPyzkEwe3RX/veac+qc6pg0uJiGi:yoRMSZbiJRR5i/veac+b0t","tlshash":"48133350e3b9700387ad3e540a1b909de279fa6d1847143cb178c4f6bdaaa40ae7df35","size":45433,"data":"","first_seen":"2026-07-27T04:58:21.404855Z","last_seen":"2026-07-27T07:51:47.238148Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/multiformats.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ed25b18521771e8317ffd87dfa444aa5","sha1":"45dead1ccb99032d709d7a6c752e05a7645e4950","sha256":"7449f492d80b1dcffcbbfb5599707e5f9c0e5a54694532f330b0f64defe27809","sha512":"d95df936c932b07773a2389c9523a8cadfa6bcf1a760f53207c6276773c832564c15decd9d7424b888beb1b3a0425048c6bf0c83e0bbb8367d8698b92ba3d6f3","ssdeep":"","tlshash":"d8e0466f8aaa74b1572a98aac288a8373629d7a992945290948f0f350b3405af865d34","size":325,"data":"","first_seen":"2025-07-08T23:56:54.613742Z","last_seen":"2026-08-08T17:15:52.217811Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-assert@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8e0faac53bc45ece16c3837b588e0960","sha1":"1063472c14e3a5e61988f599a3f17f7520c597ad","sha256":"02883d571ab4809495608554744cc80c42f7f249b2002a8be09a7307238f743a","sha512":"e1d59a28b5cbc94a93b7ea3d51ff67d6e9df0caa3acdac704095466233137e1b0ea1e592502e9753f7eea17c023f3b59d98b9a60dac3518b93370a445db14897","ssdeep":"","tlshash":"a1d0e91143578f2a37b82aea11ae692e7a538fc4f84110ba15fd8913f0974c294963b5","size":201,"data":"","first_seen":"2025-07-08T23:56:54.59861Z","last_seen":"2026-07-27T07:51:47.209697Z","times_seen":30,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/equals.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"12c55c335d0942feecf7e0d1271d0718","sha1":"ce96070d2cd525c945a6192d0540f3f6fadc789b","sha256":"5a1a92b743782b349542a48dc831436226cd74dd70a2c13695bb6c7bda2b63d9","sha512":"eafd73d0eef8c91fa2862908a3f157c394c6715e3ad7bd41454a7e2dcc629b38e12c952637200727fadcfcab2f6deb2659c68c22e91d098ad0624d2bcb70ffd9","ssdeep":"","tlshash":"acd0a7d571d715bf52d069dca442c245f00a4e91e20c094cf513244d5c7b6a5f4f6cfc","size":234,"data":"","first_seen":"2025-07-08T23:56:54.777807Z","last_seen":"2026-07-27T07:51:47.172735Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/from-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"e3b9dce510c3161ca7b3fe1c90147ca4","sha1":"30a0a64af16183f6bb0f5e65912c633516f69bcd","sha256":"d196a49a86bfc8ec208f4f21bcb21cfe5ab60a8ac8b9758764815761fc23745d","sha512":"497b0b8ee5a5058413be55f434995848a507686756d4bd19b0f4b99fc06d4dcaf2e5252814a1202fd126c9136379de38352183650a8dbf1575eb0cfbf7e648ab","ssdeep":"","tlshash":"41e0a3a7c67560a61bd63cd04097acdf01e4f64de8910080ed100f1d35d24f4d4b3c35","size":425,"data":"","first_seen":"2025-07-08T23:56:54.713305Z","last_seen":"2026-07-27T07:51:47.240632Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/dist/esm/env.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"49a9c8eed78fe9b636ac8919c2998a76","sha1":"f7ac0ff5ace6c2617ca3b155aefab45666fb7271","sha256":"31f1a1896956391373d663eea46423cc0f4108d099c26489f00773376f4eac61","sha512":"f757216d4128b64aa18f647861472bf6fa0f62829f01c187f923bc263395272545ed587476e6432968a1fcaf163285d9ddc782e3fc93f0c81a8f30cbbb432e34","ssdeep":"","tlshash":"71d05eadcdb186a7672a28a99a1e83bc443606c5e703827c2660a314c0346d805c47e3","size":262,"data":"","first_seen":"2025-07-08T23:56:54.768723Z","last_seen":"2026-08-08T17:15:51.935707Z","times_seen":125,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/query-string@7.1.3/es2022/query-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"59e0c3a038c29142c7a3a56d7131aac5","sha1":"79d71c73e177ab4dbd0aae976e7b0afd8692998c","sha256":"e7dba338d89ca71b8501e08677d4caf25dbf49fc41736ef588987c3af98e79af","sha512":"75407c59dcb5a538f37b4dd486a87f48b306f1f1188c7b4037f00bda85a540110e493513ae5e702ec213f34ba57d62e685eb454889a839e2072073d4c792ac6b","ssdeep":"192:Xz+Tc+EDfjdAbfVkVZ2IFdlCHuooF4LUSlJVUhz:CoRumZ2orY3omPQhz","tlshash":"2ae1c6d47cc6d5e4977dd4da823a8021f13e6d24884cb921e3949eb33289d0785f3bba","size":6901,"data":"","first_seen":"2025-07-08T23:56:54.590904Z","last_seen":"2026-07-27T07:51:47.180633Z","times_seen":115,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/time@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"e61481497ad3ba3ef6b071e9052e31e2","sha1":"7b822f588ca1815ad4d028aad2ed916b5063924f","sha256":"593c64dec39fe7fb172123d7f338e420e1a374ea14ec5433b4621b87565ea780","sha512":"0e46cd6c5fe1189cb2925eb053e1311bdd3e5d60585e9c2ad772ff12fad3d49926808e6fa4b6f025d9f79620f34145828015f32c771caee123437f4dec5e7780","ssdeep":"","tlshash":"cdd0c9939523a708ab333f861e2283fcc763028cf98210bc52e64a16e5e3184d454af7","size":212,"data":"","first_seen":"2025-07-08T23:56:54.723631Z","last_seen":"2026-08-08T17:15:51.803225Z","times_seen":121,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@%5E3.0.0/from-string?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5a0b5a028bcad2e2a9104b0c2eac30aa","sha1":"c1bf9c16ce2be56f549c8675c62cb12591bf4c6f","sha256":"2b87134947577ad2150f763152af15cd6a3203ad3d420e3497f2010f4b8bb245","sha512":"6f00bc843970b99597c3b9890d8435d776bc380af10617de1dcb1cebffd14ec1b39990ef1a8a2a88f576879c65c40b9213d169afcf07e0025da72cc80f739caf","ssdeep":"","tlshash":"07d067974216593c22a69dc845941537c2214fe8dad710ec34777a5ef3534b9c8e1db8","size":257,"data":"","first_seen":"2025-07-08T23:56:54.665225Z","last_seen":"2026-07-27T07:51:47.192645Z","times_seen":99,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/quick-format-unescaped@4.0.4/es2022/quick-format-unescaped.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"e89eb190ecce6fe654db1d51236f14cb","sha1":"27739a4093f3bc8449b1f4b17a0c81143491051c","sha256":"edd9c1a829fbc5340ea89999390831c91f6b9961c132d94a1217d18e0f946e89","sha512":"fa4de26d274b9c5a825912f5d5f96e7b37cb6fae22d8443db5490280c7946d0593962edd4033e0dfeb3e8d09309ba285f3d0a62e4e5aef59ba85cbe21ddd0b4b","ssdeep":"","tlshash":"e0314fd234a4ce0302f2e6d2854f29c1f428ad709025e8d4d394c3b18ae846b50bffb7","size":1781,"data":"","first_seen":"2025-07-08T23:56:54.751385Z","last_seen":"2026-07-27T07:51:47.2023Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/random@1.0.2/es2022/random.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"e24a9ab904ace18e4d360c0a6d11d977","sha1":"b38a83b0870bd882f8dfa673ee3e7eabccbda4fd","sha256":"bc55933bf3eef53e3cf077d3a1025dff1c3a0a649cfcf25bc3de0e3d23df5704","sha512":"97cb9633d807a705ba5d999c5f1f3da8224f439495f6ab609f472393bf7a7419b4ef3225d50fcbaad2c1c4b7842a23742270f698ba0389b5964f6b0ff58635ec","ssdeep":"96:tgZn6+/Ev/azT+IyhFpSiVIBcWPkYCjqahfa8QFK1:ane2T+1681","tlshash":"a69152d237d2f16b53d948c580bd5612e33878258018a4bcfeed8ca7b27484e3465e79","size":4539,"data":"","first_seen":"2025-11-22T14:57:23.807919Z","last_seen":"2026-07-27T07:51:47.240149Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/relay-api@1.0.11/es2022/relay-api.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ed5db617cc51c194d8a18fd8088f1485","sha1":"fac9cabb448b92886d0197e659bb42ce3fb34063","sha256":"b23a5b484bc6d55bec3834b87fdcdb82281cb93c085f3165a98a106f13e00a5f","sha512":"03c1bcd3d255ca7c223c0ad4f1a01fae331c297fd3193c40c805ce5a118e9bc671bce503f1d1f6f27b0e52d44ee8b02f6669978e49b48b2c270de085002e954d","ssdeep":"","tlshash":"606112283d61b159e2cb7a706cc7a85e62fa1c41b01e5520f5d450aa79d8f7c8d43a98","size":3307,"data":"","first_seen":"2025-07-08T23:56:54.792147Z","last_seen":"2026-08-08T17:15:51.568562Z","times_seen":49,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@%5E4.11.9?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"848affde99d6f74a28736cffb85faf34","sha1":"3cc10bcf64dea44908d4b569974e457d33fe6209","sha256":"35bcad406533aeead3e1b2b4f136d0cec68ed0d4d972eb3ebc826374bd76750a","sha512":"bf0b5c5e88ed005a1f38bd52206c7696a191111679e37cb929981195fa01223b1372c18aa784af367a3a16a1d8a8fa3201b7766df7fae8066c5a80f3205a6552","ssdeep":"","tlshash":"c1b0921f00578d0991b3c9c4222c803d97a3864ca454a4ce91d22b21a380020e531bf9","size":128,"data":"","first_seen":"2026-07-27T04:58:21.542101Z","last_seen":"2026-07-27T07:51:47.183826Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@4.12.5/es2022/bn.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5d512b4713757cfedc948be0dfe2bfbc","sha1":"a65c5f84588d7678f0c091b6fec5dcef992e8d40","sha256":"13a019eb5e5c752604a16802b35795b50646fa22d5387d729235e9d161cc49ed","sha512":"9e6e01cd6b5fb0c43b743b0b277b1d5b0157f9f6e8453c6725e33f1f30e9417aa1b79c473797a81ba81c025a3d1cdc97cb633bdd5c08aa6a222f3e4b29d61e7a","ssdeep":"768:hPpMS1EjEr7qyEApRp2RB2JYpgmUSGrbrAjbAKmBI:dpMSb7quPYpgmUSGEj/","tlshash":"1e130150e37971038bad3e941a1b909de279fa6d1847543cb178c0f6bcaa940ae3df35","size":44414,"data":"","first_seen":"2026-07-27T04:58:21.486821Z","last_seen":"2026-07-27T07:51:47.24232Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hmac-drbg@1.0.1/es2022/hmac-drbg.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9c21c3cf5b9cc3ac87c08dff8675b9aa","sha1":"f9d093f32f83b16711e38302b902a7dcb3ce4002","sha256":"63a0f1c766fdadcef6627ec6ed9c1362b0b9b1fcc85b6496b4248573544b0c84","sha512":"bb9a6cc959efaf2bdd346eeaed362a53a79a4cbe058b47f934cf4edcec4154d51539a81d32583f9f021e98f74e53768e11bba4f3eed87e8ac463c3742d277ffd","ssdeep":"","tlshash":"f251868d36e6f75117e594c51b3e59036127892d4009a27cb7ccccefa2f2c796922b39","size":3160,"data":"","first_seen":"2025-07-08T23:56:54.832987Z","last_seen":"2026-07-27T07:51:47.200136Z","times_seen":24,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base10.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"508a2d96d86ecbcc9074ef79cd993544","sha1":"29a00aa064e5bcf7929107733159b08870a5c803","sha256":"07ac037675bfbbf0621e7f8fd3cfeb242d1ab0955d7e965f4f3a2daa1c369b85","sha512":"4214078b0e58d20292d951bd7bcdd32db1abdd95cf317f252b82e41bd5baae49ab90a8e2b62030fdef35f6e77115a25607fbd6958aebea5fdbb5bee093113824","ssdeep":"","tlshash":"92d0c0bec73daf7f4331200cd44a80152618fba6e3800249d022aa29a0541c2fc3be3a","size":211,"data":"","first_seen":"2025-07-08T23:56:54.839845Z","last_seen":"2026-08-08T17:15:51.450402Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/window-getters@1.0.1/es2022/window-getters.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5105926e81079cd9835e0de83a8e8cc0","sha1":"5abe6f1848ebcac93ba85f8a18c562f4a8a588e9","sha256":"84e38cdffd84577bc7711c7d30a2c195665d00dc97ca11767ac334a3da2d5c3d","sha512":"e61c9eeb42b380a3b0f0a045d6e19ebd152ee9972206695bb342c060a2c33f13cff20f059ad2ea6f55ad32d36e2dd2b3d5f67dc5089c836e3435f6b89f833f7a","ssdeep":"","tlshash":"8741cf9b2452a16101b7132bac3b9604b13afdedf05fba406f69c45239c09ef1755eca","size":2240,"data":"","first_seen":"2025-07-08T23:56:54.756193Z","last_seen":"2026-08-08T17:15:52.269716Z","times_seen":128,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/idb-keyval@6.3.0/es2022/idb-keyval.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1cf602cfbab0665e8a803e8c1bc30958","sha1":"c302196c842046259b831efd9fba36a67ed5ff5a","sha256":"c9abe2d89b7444ae856dc15e80ab415ad8c95e4698ae9c4356ae116c25d1590d","sha512":"68fd22abbb633cdd3f67af68f8cb491849c055b67c524b2cbd664374f919f7efab98bb30ccd2a8d8e95fd44074321b4f5d7da4a020eba44dcb0bfe9b5bfb0867","ssdeep":"","tlshash":"7b41abdd77c9b02b535ad060d0aec003a22ea940411e9470f35efad13d364adea7ad78","size":2028,"data":"","first_seen":"2026-07-08T11:25:23.240152Z","last_seen":"2026-08-08T17:15:52.18775Z","times_seen":10,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/strings@5.8.0/es2022/strings.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"2c76902a16c84d9871d1d13bf97a431a","sha1":"b2ec3906084ebfdb0f3516ce261639d90db578f1","sha256":"dc08980a298346b2a0af970a59984d1214746122d2390c63f551d6b29413108a","sha512":"950e8332499e47a0bcb9ffd1d03090af046581112db32ae67ec695bf3e95886df840847e09a5b8e57b4387328b67a37518d06b95e51c4743451db2eb4efcede0","ssdeep":"192:YvrGds9drkkOVwh958z4E5Th5555d/1I/mqN7zjDGQxBXnI8Svls/D8:XSd7sI8M0Th5555d/0N7zkr","tlshash":"652295163b5e33ee73dc21b1005b300771f96b817ca95814e9a0edea25758ed48f6b23","size":10725,"data":"","first_seen":"2025-07-08T23:56:54.673334Z","last_seen":"2026-07-27T07:51:47.16577Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/unstorage@%5E1.9.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"814888d8f8ad54aff68d4ba0efb9f50a","sha1":"4e6f7a5b905ac81135c54a8528abf781d1607183","sha256":"c930cc3ea0fde19c28b5c4b6993033f4bb2e9ffa5590091c24f9ec4d98c76ba7","sha512":"da5dc5f324573223419830fb6d76ec8e36b1adf33e1949db881ab5902419ed039c17d3dfc8102b35837caa42a18b657a1380b7d190525f0fe3b5a1eb1b2c8604","ssdeep":"","tlshash":"17d01267c121b17c2a729dffb211f13867310a84f54fd1a91847c61d7aaa04043e6ee2","size":196,"data":"","first_seen":"2026-04-06T13:47:42.470546Z","last_seen":"2026-08-08T17:15:51.815948Z","times_seen":100,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/properties@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"62eb72ae05a6dfa1fdbbce9d357be001","sha1":"b449c92eb18513a4406a3e6f60d5a0a95125baeb","sha256":"c69923fc5e635154189d960959f7e4c0293342cc563ec183ae7a71aef1c4f3ae","sha512":"cd5e97e89ff47608fc251c618d101b3d36ce04a9d81eb6f707f7a487eea201b6e6a4e9995d882319a8991c42f3d931ba67851e3ba2e77fe79fb7f5b3c849ac44","ssdeep":"","tlshash":"ebc01212d015d5dc539a0ebc4138a63ded765498c150a0a7e595c722a1c210564106a7","size":173,"data":"","first_seen":"2025-07-08T23:56:54.576616Z","last_seen":"2026-07-27T07:51:47.141556Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/int@1.0.1/es2022/int.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1f7181340cbff151725e908302240574","sha1":"ddf0d3205c7d764a85380b4d30d75452f87c4355","sha256":"271d597de7ff6dddce5ff76b7f3acb102aa1e0314e1edd86d48b5db848c48d8b","sha512":"0bc80f7d6d26f58bfb71faf042598779ae9c445053dfd49204dd2d6922e7b4ea2cfa72f6f8afee1e5c60661332c55cc3643a157da7ca011f4b504be11ff823d4","ssdeep":"","tlshash":"2d31549921e1f862036708bacd3f6902f75cb9a440bea1d0c310c9f124e0c7f9064dd6","size":1454,"data":"","first_seen":"2025-07-08T23:56:54.703593Z","last_seen":"2026-07-27T07:51:47.184545Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base64.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8b13ef59012e3e52ca4a485f3730aae0","sha1":"8f9387cf905ffb6019ed6ddec2c32b1e1f6f6868","sha256":"1365d8ab96a8998be1663e7277eebc58d3207f785c9ab53533966626f153461b","sha512":"8ded60f2276e544d8cd61c2ae8a518bebb0ee5b06e41d01530153fa127008bc4e9dc5f420a3be7749104065012b87984c520caa339806aa871c012974a613e6c","ssdeep":"","tlshash":"95014c3dc4764e2e0ef1a24c258b5099adb58bbf429703d922394b16c4945dbd85be14","size":709,"data":"","first_seen":"2025-07-08T23:56:54.594216Z","last_seen":"2026-08-08T17:15:52.268805Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/digest.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c45cf843e45f3985481d8743bf426792","sha1":"6b06ead373b6441d206ea96c5ca108521c5022d4","sha256":"fc07873514b182ae0897159ebdcad3dd3ceced04740aa76caf4b2e796ff6ca25","sha512":"cd1646e3da5dc03a394eb325c2a28bb81c55621a1502b4e27d7174ba082ce237b99699c6fc60c7c6fc551f04232c256603dccbf08ea2368d03064591769589dd","ssdeep":"","tlshash":"9c01105a4f7408f437be01e5a1608404b03c1111a209447cbf2b3f95aab1aaae7b17b0","size":724,"data":"","first_seen":"2025-07-08T23:56:54.655474Z","last_seen":"2026-08-08T17:15:52.300235Z","times_seen":122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-provider@1.0.14/es2022/jsonrpc-provider.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8dbb56daeaf63eaa1f4d919a69f96eb2","sha1":"649712f526957061c724552941cf284f4913f3ac","sha256":"d7abc879ba2ac454de27e997fb116cc8b599b8fb7dc520ab9212a93b923df674","sha512":"3cb630e5878c97ea62cf8558f91c3c9052d26db63b04563712228f9223aa16e34d1b4c5ae290e4df6c5ea66ec6d0fb0fce8cdfb6c7eefa4bc94c344c1a74e038","ssdeep":"","tlshash":"6d419a58a214ad6727eb6118a906471241376cc43706c42c3b3cddf2de3aec0796bbf9","size":2158,"data":"","first_seen":"2025-07-08T23:56:54.653333Z","last_seen":"2026-08-08T17:15:51.654047Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/sign-client@2.17.4/es2022/sign-client.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"a3a532bda6ce0b4d7d56bfa6d664e0ce","sha1":"06660b97ccb7c62225a8ed53070f249022179dee","sha256":"81f8f9ab3a2f23496ffaa225be5b8a51eee0b0a4c96edf876913f6c7a26ac4a3","sha512":"0777e8629ead3e1fe801d7570022127da0970bafab7159e5b676f6fb35ce8bc30e6c0c998f0964476ea4f71f8c751e722731b7df34885832dc766bac132d2cb6","ssdeep":"768:LGfpX2pFVyDbx6N1AwwLC6fTEnDv0OkPaYp9sqpLb:45bx6EwwLC6fTEnDv0OFE","tlshash":"ab438256f37e9836418dd35ae830e351b73aa0283435943eba683fde4b489846b1cf75","size":59474,"data":"","first_seen":"2025-07-08T23:56:54.826024Z","last_seen":"2026-07-27T07:51:47.190004Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-types@%5E1.0.3?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"31cd3375e706da5faba9f781a47fe291","sha1":"ceed695b989b6383abf0514f9f1f08f4f503032a","sha256":"cee5c7db9d55562b9f22dcacf99a62118947adb640ec8fa64c32fcd5e9086fed","sha512":"05519c59cbc25d3462857fd911dcd9f836f86acb998d03aef259a834dc3adfcd7b1b167a64f0217ba959122cf4126b70085a5a7fefda5f3b4808fcea3969966a","ssdeep":"","tlshash":"c4b0929242320e68633b0650f7de56ad46c30ee9ca6b58ac639c433cc0112dc8ea13f7","size":128,"data":"","first_seen":"2025-07-08T23:56:54.608995Z","last_seen":"2026-08-08T17:15:51.882697Z","times_seen":126,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/strict-uri-encode@%5E2.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"823cbbe8ade076aa4084cea6e0817686","sha1":"15e3aaca9e892a1e73a39a198f1d20c18b9509cc","sha256":"54eea95be187006e7e54f8bd5ea25d0afe4c31e2cfddab08565580aa0ee38dc0","sha512":"1c67a2f79bea855dec9e6bec1d3899d5e6d9c6871a589718476951c8fa48804e9850b0023f28e28068c4fc496790ef0288aa6b8ab479aebbbd8f0cdd2f9b7a78","ssdeep":"","tlshash":"8fc012206032d2f69ab00c40253be17c7abf210453e830ed1ae8138065c8038d43d2bc","size":191,"data":"","first_seen":"2025-07-08T23:56:54.60195Z","last_seen":"2026-07-27T07:51:47.215009Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-ws-connection@1.0.16/es2022/jsonrpc-ws-connection.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"bbfbc11931c16588867079c4cc33ebb6","sha1":"a976b9eebd7d3869a50d16692c3645894c31fbe6","sha256":"6e0574fa99a4016e087fb2cb93a429b9678ecdd568505d9cf41b86d61566e928","sha512":"15b2a81820e7c69fb0464ef5897cd25cc52bcb0a840db29d5299eee16d4a9d9322619b6add2908040ef242e7e5463910d5ab1007a7a09138cc075895afb7cd62","ssdeep":"","tlshash":"e471364862a0d52776ff119eb902c001712765ac6b8d040cf7749df5a2ab9ceea12ff1","size":3702,"data":"","first_seen":"2025-07-08T23:56:54.661034Z","last_seen":"2026-08-08T17:15:51.899575Z","times_seen":24,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/lodash.isequal@4.5.0/es2022/lodash.isequal.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"9aa3740fff08f66734521281a549c44b","sha1":"8d21aaa2747a7998672d8164086fb567ae7c1149","sha256":"dbc04ea89edfe9685b25f41d679298032410055b5b4932e27521b91035443eb6","sha512":"bf9dc13d323686409300599cef5302dfeffcbf7bb09b5ac31a342acc620af4bff72f1c5e2851955812091d3421152cad109926012b23b0a66975d3266cd62749","ssdeep":"192:bZHxV+2YAU1LAQM4Gah+OhhsNlgpgp9JG+Ji1rOytikdaeV:bZzLUZyw4OhhGltJ1w1B5V","tlshash":"882241c475d7f07193a22869806f550bf33cac68904e9194e5d4f5e9bcbd22ad223f3a","size":10802,"data":"","first_seen":"2025-11-22T14:57:23.742276Z","last_seen":"2026-07-27T07:51:47.258963Z","times_seen":107,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/base64@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d4b9c3ebb673cbeb7577cc1b983d00a9","sha1":"efc39c5c3a3e1f86afc6c2a096c2a03aa1888498","sha256":"3505f878870af7f8c459c35039599ff6ea63cdee8bf4b8b47551ec922260d7aa","sha512":"12f59aa7ea89a471f2d2e632e3d4742e0018f51a81a84df3f0eeb0198471451f4d02116a4c3e52700d95873c470c2fbed377ca1c2a85976d2bce9c042c0b2450","ssdeep":"","tlshash":"64c00257861d52dc73dd0bd84138952ce17b8458944550ea9410c722e14314975225a5","size":160,"data":"","first_seen":"2025-07-08T23:56:54.724608Z","last_seen":"2026-07-27T07:51:47.251078Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/strict-uri-encode@2.0.0/es2022/strict-uri-encode.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"0762127f768f98b2df3e0833af5c8aa6","sha1":"f3f856e4721043b4744810d2db6487ce23fe3a6c","sha256":"3d1180e3d236cec9096b801f3d88842227674f39944934fe763aa5cbb25ab6ae","sha512":"fe3e12f520e368630b3e8c11adcd7ff062cfe9b2d6cbafdce6ded1b8cd20234a7cd53dd4817adf277f5fb1dc840bb3618774633f2922c84395e6d3fdac8954e1","ssdeep":"","tlshash":"6d01259115e6ffb619f04486ca7ed105f25cd17c41b5f0e45794cae2558006b00bbf77","size":794,"data":"","first_seen":"2025-07-08T23:56:54.755107Z","last_seen":"2026-07-27T07:51:47.254379Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/elliptic@6.6.1/es2022/elliptic.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"74ad868f9eb70500ac31652fef47f37f","sha1":"e1ecfd8fe48a30d56f94866cd8b48c1aba1bbe58","sha256":"9db8571eb72e9c758401d1e232f34a8b1587e767ee3a965f9c8d8f9481831604","sha512":"ea1a2a2ff82d36b53d4946bfc8159b49070c8df3a71858dd658d97fd047a9ddc85b84666bd209e653a30c9548ee8365f88ac3f59b8acdd95d4b89c762ee18f87","ssdeep":"1536:vbler6LgZ9KbLgDpTX/EeDnb6IfehZKGyZozlW1Clb:a6Lg+bGpLsev6nsbw","tlshash":"ed631b586394b470b71264e0242a6509ab3ffd3d4bc8915cb659fcf338b69c06b32bb5","size":73144,"data":"","first_seen":"2026-01-25T00:27:36.534632Z","last_seen":"2026-07-27T07:51:47.242961Z","times_seen":19,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@%5E3.0.0/concat?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"3bffa70b2a3f6049c8fcfe556ca7ae6d","sha1":"c17c06fbd3de21617521bcfc952e9faa7d711acc","sha256":"bc4b321a00485fe0f87fe28f3192389d9068b6fe6e7e397d8082ea99d248e5cb","sha512":"87f489b8c2b9916ef02ec418398de8f39c4772f8e1c7910aa490f4264f12ffedeb94263c76c5104e3c04f0e7e9606a8f52647b442db17c8cf438df178c4dac4a","ssdeep":"","tlshash":"9dd0c2560257193d12e58ec885905136c3555ba4e9cb05cc38376d5da2538e4c8e19f9","size":207,"data":"","first_seen":"2025-07-08T23:56:54.616552Z","last_seen":"2026-07-27T07:51:47.16513Z","times_seen":99,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/signing-key@5.8.0/es2022/signing-key.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"a950bf19dcd9e26da4e79f235f3f32b8","sha1":"b2073a66543105e55eb02d089794c403fa68ca0b","sha256":"6e8078ea42105c183141af08520d5f7b60c23e47f8675458ac62462f6ef0eafc","sha512":"03e1f1be03d3d7c6f0159c2f5051384534a29bb772b604949d089661df4d8a159905454bd738a6cfa14692e0dbdacf4c3ae4fb9ce2d032145da0a6120672eb22","ssdeep":"768:DoM7GcmX1COKzzhsSiTPd9waXcNdLv6z71lHkwKv3Z:kM7GcmRKzzh/IduaYuplEwKB","tlshash":"73f2c69963a0b071971124a0281e6406e73ffd2d4a8d925cb749fcf73cfa9902636f76","size":35656,"data":"","first_seen":"2025-11-22T14:57:23.965291Z","last_seen":"2026-07-27T07:51:47.156224Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-assert@1.0.1/es2022/minimalistic-assert.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c4efdafefe1a42c14774625d59461d4f","sha1":"41cb384110dacdd9ca376b353b47b637c1434020","sha256":"07377d761438c22ed239e538e2b641cce8e0733793f0a98f34594782a6e85829","sha512":"9ab4f69cfc93f93294f68e90909c79d0e0208485e3185885b90cdd05c90850c8a04343432831a908bcae4d03ed56e9517d21084e0d3ddb8c63a0b070903c1e71","ssdeep":"","tlshash":"ac11126525f4dff350fe2989c42d9141b2229e785037e1604bd8c5e6d9e00e74067f77","size":859,"data":"","first_seen":"2025-07-08T23:56:54.587511Z","last_seen":"2026-07-27T07:51:47.181799Z","times_seen":26,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base256emoji.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"4f816a9f132a22325b81472d46ad8fe9","sha1":"c23afe05c76154b5a5cd0858aae35334456fe4f2","sha256":"7c16b9576b295024837fe5d192f0b854951ac3a7c0be1be8a3c91d5f62505066","sha512":"59da6813a1ba074e31a9cfaf4de81573318ba86cdadc872f320a981cfb4687ad7b95a444e303531fc77ec8c4a48a4232ac3648d81bb28c440305537ad61fae25","ssdeep":"","tlshash":"6f5170ac11d8cad73e3df0e88b5561c976a11f9d6061c725ab27f47336162fce83a890","size":2789,"data":"","first_seen":"2025-07-08T23:56:54.624995Z","last_seen":"2026-08-08T17:15:52.210308Z","times_seen":117,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base8.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"c74532ee588559203794e318a1d03e6e","sha1":"98d90007bc6060aaa2a6dd564e513f553a5d3cfb","sha256":"9336d2259eb06c31fd0d1e7e5ae36e0826f39b2f73639849a403933348c7526c","sha512":"50b5dadea49e2bc9f267493b4fc179f9da744c80db98c893ddd8a00d4d8710eba74ff1760a2cf585699f0ec51f938dec60f9d44cfac49e862e9a2d9cf018f378","ssdeep":"","tlshash":"ecd0237fca785f7e3a3e500d4447451164604baed380225491270555d11c4c9f027f75","size":221,"data":"","first_seen":"2025-07-08T23:56:54.626532Z","last_seen":"2026-08-08T17:15:51.846846Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"770167233a9c29a95f194370ead6c944","sha1":"5311e61d091018d185292884df2fd9cab6420b79","sha256":"dc3e005fae50d52af9c8ab21d6edebc4d50558f71f3ffc1270e892a900fd9993","sha512":"d0c09fda113e72a847cce90ca9b63d5f1f452e753ac60ba196055b416cc6700b7e62c2f605d2653e268f7ea5f6b80904709fa02d612ea3d7c962dcbdf7457867","ssdeep":"96:YmIOzlR1JHbthcdF8XN9RzwPvlZV0eNRH429q8DGMJ45zgbTGN0NQn8:PRJ70dF8XN9uBjt429q+JszQTG2K8","tlshash":"d2d166e4b262f4f853c958ec60dbc201a0fe945093055c7cba54854b4bbccdd47a2fba","size":6638,"data":"","first_seen":"2025-07-08T23:56:54.664078Z","last_seen":"2026-07-27T07:51:47.255644Z","times_seen":14,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/sha256@1.0.1/es2022/sha256.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"388817646a4c746c2ad42938e36bf7c7","sha1":"89cf328b9b5a2555255b334367f3b5ee16c2cfdb","sha256":"558186cf433b0489ac47930a145dfea9522ca70710626dc876f2fa6ffaf48d11","sha512":"87967c74ae00db17b437bb69afa74cf9f665545ff4ea0c2404d885c571df577e2bc3044605fa7fb9a57713cd691bbdebba0e271111d7010b90c7d88cbfae77bf","ssdeep":"96:sgZnwHV//bF5m45eZReCD3GY9McIn8kjMeY9V8Oam:fnwpF5XmReCD3+8kjMeY9+OX","tlshash":"04b1d6f12fa461b44326d8e2463f596f622670381445456cf1acdafda42cc4be23a73b","size":5339,"data":"","first_seen":"2025-11-22T14:57:23.902991Z","last_seen":"2026-07-27T07:51:47.216793Z","times_seen":110,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-types@1.0.4/es2022/jsonrpc-types.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"af7e4001797c73f41412709d97cd6aef","sha1":"f6928852d7e6d0c2ca555e487bc4149b608885d2","sha256":"960643fe7141ff1a36f81d504f363eaccd17c0c791019c2ffe6396d41a00e0d5","sha512":"3efb9ea75a71d6c07b745b805174b6292b31bc6552757b92eafb5ba6b13810841f4e807856b00974cd73ae4d8ae8a6e79503c9476f90ac633e850bb1448bdf9d","ssdeep":"","tlshash":"4ce026ac94b99dfc80ab8ec32a8b8487529528d3f70fc48626fc00349c909c213aa485","size":328,"data":"","first_seen":"2025-07-08T23:56:54.829815Z","last_seen":"2026-08-08T17:15:51.603072Z","times_seen":121,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bytes@5.8.0/es2022/bytes.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"541141e847ced167f99faa1819ddef5d","sha1":"e4c763928e7cf25ea1822a2341b69cb760f8d0db","sha256":"2adc98ed005a673fce141084fb385f812a1209d62a462ef4786e4d3583efb12e","sha512":"dad21cd32e0121992b74a8f56e2877c6a05e5167d5663f2255623fbce178f73d1f6d7a747d74686a130db20d96db339d9c14e708c5015916f0a2c43be662de5a","ssdeep":"96:qEIm4/hRBTP5mkjUgfXWX3zT63qS7qvcSLaUDSSyBTuPNrxAc8:dIhbTRmkjU4YT6aS+vcSvDSSyBTGNrp8","tlshash":"5bc168687756b16f8bda009c48e6d207f1fa4fa550c81464d6852f9227bcef442b3fb4","size":5602,"data":"","first_seen":"2025-07-08T23:56:54.856053Z","last_seen":"2026-07-27T07:51:47.174998Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/esm/src/bytes.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5a573c99179841780a9c875c48c94cde","sha1":"be8606a1444cf36fc309f8522ac94b27bbad91e7","sha256":"d2fa273fd87212f525dcd3863af8a3d2ca1e3ee42aca3eaee5ddd4ad6e43ba04","sha512":"13701a64c0e8e28df4f3fe0fa66f8c6a782e764cedc50dbd7b5ec271c60c96f918c4c08dcaaf9400a7eb6c482818a9dd9d251196b5341de7cfe82ec47d0d6988","ssdeep":"","tlshash":"5c11e3cc3de742f5c6d964d515c5a907f11e8e74e18805a9f40b0c04397e9f9a5e39ac","size":875,"data":"","first_seen":"2025-07-08T23:56:54.721375Z","last_seen":"2026-08-08T17:15:51.969293Z","times_seen":121,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.jsdelivr.net/npm/tronweb@5.3.2/dist/TronWeb.js","fqdn":"cdn.jsdelivr.net","domain":"jsdelivr.net","tld":"net"},"ip":{"addr":"151.101.1.229","port":443,"asn":54113,"as":"FASTLY","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"52d2c48e0d40dab215c993e276c7b4c8","sha1":"953fa4ed22d4e68eeca22ea3d44a857027f9f460","sha256":"d9522e183a41f8bb059b8b61f5ff99c9eb831f2be6662bf6f1713771648adb59","sha512":"1a7da4e5eff61cd7738511ab84da171037f57eec3dd817f0b9425d0260d0c5addf36135cf6e48803d2abb26e22036e970bd1672710d92abf3ab8bccbce07eda3","ssdeep":"6144:y+WOYV+9x9JXV2vCRoIqbt15LAVbjsRyK2ZU13U+wZ/qpY9lgmpuLWiLyUvPDgea:rYVi9eIqbtvLAVbjsUKyqGSWYC493KYM","tlshash":"c435098876c6f166439220e0143b640eb23dbb5cd45ca554f398e4e37df9ada872bb34","size":1090996,"data":"","first_seen":"2026-02-01T05:32:39.425098Z","last_seen":"2026-07-27T07:51:47.266543Z","times_seen":13,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hash.js@1.1.7/es2022/hash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"5f53286ed369b3fa5cec36e2b6269c0a","sha1":"78110c7577f3c9483424ac4d3cbab006c00e61f2","sha256":"8679325050e89b44d1944ccd9d3286babf4193e81d2b9c68917c0bf25d235e58","sha512":"21f181e83acea249b4500f81d67a15fe3899b57a6b6bed975a7e195ae87e9cefa40ca49a3218188c030ed7f5bf2bd2e914367f5a607f935672a7b26a5dbfd664","ssdeep":"384:WbwIgUBdRlX1kIvjfT7aywS6pPutjQVfsby/U:IvbiU697VR8","tlshash":"9682b7c033e0a5d0536605e109af4c4a613b79a8640cdc6df7eaf4db28a5cee4376a76","size":18107,"data":"","first_seen":"2025-07-08T23:56:54.57968Z","last_seen":"2026-07-27T07:51:47.257888Z","times_seen":27,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/esm/src/util/bases.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"2e9c7c43dc85a0f042f01ae7faef880d","sha1":"af1433855d9c6a144a96338088ef510f0b74dfd7","sha256":"19003df097f5000febbbcacbf7849be598dc36690ffbaef8aa205ba329cb9066","sha512":"f9930bc0d99c252a3c1f038df0125eb2129ce9bbc3731ccc96ced4c6afd0bbbe748ae956050bb13a45243387915b8b21becce179c0ab0b95b4149fb63937dc8d","ssdeep":"","tlshash":"d3014efa2e7670a383a611d10a86900ec4687fdcbd1708e6bd888f2b1301ad088d7f30","size":689,"data":"","first_seen":"2025-07-08T23:56:54.714869Z","last_seen":"2026-08-08T17:15:52.213293Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/sha512@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"7976d6a18002cb78107a04d976493756","sha1":"f02ababca2b8d9faa70fc1a6db0a30363f09761e","sha256":"8ab6d8028f171958e1951b5e1b528fe2611cffecf140dea64d4a1904dbef8961","sha512":"32b892a39590ca11d2d193ab9b717258ed447ddc9b93379deb65ece18812502b76ff5cdc6ab7bf497d41fa7defba13c43125a8481ee1707e434cae5e615b810b","ssdeep":"","tlshash":"5ed05e11638be7aa2310fcf5d1f5f33a83750088e4b3086c2ee4e752e00288944227e2","size":267,"data":"","first_seen":"2025-07-08T23:56:54.828883Z","last_seen":"2026-07-27T07:51:47.245878Z","times_seen":101,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/pino@7.11.0/es2022/pino.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"0ccd72763aa4f8fae6db894434ae428c","sha1":"991bdc8e376e4a97b0dafcf9923f24cf25041773","sha256":"7f1c4c4b117a86b8f0caa25e126dba1475ba0fd4d97ef7d93856bd7bd9a8b0e6","sha512":"730cb93ea323309815afdbaa9337c12451e063ce99cbb259fc873f59ae9ea73534d6851869900a73897aa7c91aad07ecf19c37502554b85bf78d0ec3fd7538de","ssdeep":"96:eGPtAiV//TPZS35WpwM/DChNv/SpJ8b1E5gTShZOTJOY3n6dIksPLZI/P9jS8r4L:eGPvZRTZ/mb8Ccu36d2ZI/PswT9ps","tlshash":"77d187ad37e5fd6352d61094d97f0041f23841be106ca0d0f284e9fab8a54ad1b66f3e","size":6659,"data":"","first_seen":"2025-11-22T14:57:24.0552Z","last_seen":"2026-08-03T06:19:48.360035Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bignumber@5.8.0/es2022/bignumber.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"bdbf2f6d23557a34d5010916a83aecae","sha1":"d68107cdc9c80986984a815bc47952a51a8a4264","sha256":"9863d258a1cf883eb52811147a85fc4405c7554d33ad0702196576041fa34ac2","sha512":"df7120f8fe9eddb341628e465956d3c1ae132cc2ca677bc1964b80ee6878e120e3dd8b24e37e1d751f5b0cb095523df0ab981442345e2980022e726bdb3196f6","ssdeep":"192:I6hQK69LR5PhCN1KE9nLGsY/Ri2yjpkc+4RF:2jCb35vsv4RF","tlshash":"d92233b072a2f01687c544e404b98547f3a8cea0a36a04fff16d2ca53ba5c4566f7f74","size":10209,"data":"","first_seen":"2025-07-08T23:56:54.676429Z","last_seen":"2026-07-27T07:51:47.157588Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/unstorage@1.17.5/es2022/dist/shared/unstorage.zVDD2mZo.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"978c8c124179e465935105afec12c51f","sha1":"574290489524a312797ddfdeeaa3f9a42c489675","sha256":"caf97960b07d22a4e8439e89b6f75950df4726202997d22ab57175a81056df46","sha512":"52982a065f08b6d9bc86595fc731c1866d968516314ea0bc137cae50dbb1a2750d1f8ad7fb487783da95e5bb1741385963d8ded9a7663c5ae2c32aa76a95b8ef","ssdeep":"","tlshash":"df41428f3893b57683a4182990cf080ef1b87a6814df61a0e9a299d13d744bad137f2c","size":2155,"data":"","first_seen":"2026-04-06T13:47:42.502214Z","last_seen":"2026-08-08T17:15:51.851161Z","times_seen":101,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/hasher.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d6b44b1f099c51fe366b7e2675715ddb","sha1":"63f9aaf7a4682a668b83e91e3c1fa725a4c092fe","sha256":"44bfd064461927c2e8f161db65053d711e59e3df4b55b76bb3f9bf4c316492ad","sha512":"e04305684919a0a80aa8a72d8bb9b79408384ba7e64ffd74f2a827279bdd7d0793f70006c68a3dbcc282498e84b84075d9dd01d0f92180593a9bb1a43300be5e","ssdeep":"","tlshash":"88f0235c0a34a879af7d03c710a2730753ddd135e008d83ebc291fb453300d158a9a35","size":458,"data":"","first_seen":"2025-07-08T23:56:54.656577Z","last_seen":"2026-08-08T17:15:51.273299Z","times_seen":122,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/hash@5.7.0/es2022/hash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8891b31f7351e08049c174ca1fe9705a","sha1":"0490f55dbf80c151e0552c691d72e72815a1c6c0","sha256":"6f9447ac81aa5bb015d455a882f7eae41260b78bb5096ce873684eda2b76d2b8","sha512":"4b63d58e8335b1e8a64f2aab073e9272eb13f64280a1ce43718f1e417639301b837b36e6f67194b3598ceb16ae674b6b934b0345093f5e33671506a55bbc1c45","ssdeep":"384:f3Q7WQiIe9yzxcCes11xr/UjJbMuJdAYGNqifHPVIkQnnPRpnR1us/jjUK/gRjjC:Q4QFUjJI6sNq8CkQnP3R1njp","tlshash":"5dc26e95b393f4b603ed085844bbc50af1b9ec90615e4c14f428e8b73460e588bbbf5c","size":27750,"data":"","first_seen":"2025-07-08T23:56:54.847797Z","last_seen":"2026-07-27T07:51:47.216173Z","times_seen":14,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/filter-obj@1.1.0/es2022/filter-obj.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"efbab05074205110e2e477e2f0939364","sha1":"3bec86b1b4f92bd4f3f49eaf724b588b3fac3b60","sha256":"6f6d496494238cbdd01885aa82a2da3fd69ff524df8f0df53ce839c799e83c23","sha512":"21c227196f330aa4c7cff680993e87a9e9d5c68dbb1acc8d825a2cea05b8c9acfcd8d6daa9c7df04e7b7cc31faa30ad40cfccdb4ddb3f409d38c725d2053a215","ssdeep":"","tlshash":"8501f1d115f0eae30af768cad62d9585f10a153ca469f094db88caf191a44431896f37","size":835,"data":"","first_seen":"2025-07-08T23:56:54.583084Z","last_seen":"2026-07-27T07:51:47.263086Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@%5E1.0.6?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d827a1963182d8b91406a0d0e3f597de","sha1":"902f425613826b9cc4711650ef9b6997fd223266","sha256":"31eae021700841d185af1d679fbe35f816d1c0f42700ed36c086b02350e7e149","sha512":"182a8f89352a0d2ac337cd99923f8a21f2996b1f2f5365ee75fc919ca80ebc4a1d96dc8b5f08fb5e02c0648efc093cc3072e6800fa1df0a2b5fe86908e840252","ssdeep":"","tlshash":"2ad0679a85239f1a932b16947b8e577c55a31e98e643417c5ae8d228d0212d8d6902e2","size":259,"data":"","first_seen":"2025-07-08T23:56:54.585735Z","last_seen":"2026-08-08T17:15:51.351783Z","times_seen":125,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hmac@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"6bebae8130618ddd13202f502858b93c","sha1":"1f958d0c1cb0ebefb6ec6b7917c637e86580bb1e","sha256":"85bb2748c5e1062701af60d3f34e5a1e036fb660b374d97fea1c40053ef64e4e","sha512":"c8a1e3421dea7dee3c4e679f8ad6ae0b9a35d7b0c4ba87f494157c8803961c5e721330f10c983c1327e189aede038ecafd275c0e0d1f142858f28b2905cc39c9","ssdeep":"","tlshash":"24e0ec6a839af7a82328b8d8b5f5f23d53711088f4bb586c1a28c7295012df04526be2","size":312,"data":"","first_seen":"2025-07-08T23:56:54.672365Z","last_seen":"2026-07-27T07:51:47.156932Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/address@5.8.0/es2022/address.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"7febd8d7df93b59403c994cbd957f535","sha1":"a614d3ed4cd766e7c30015adb4bd3f6910668e71","sha256":"9ca946074c36be0295b930a52201602f11eb7e47b4774e1a28636d089c656eb9","sha512":"e223faf0fbcce729f8a15427837dc5348caedc3644359961c0ed40a3073beb25b696e1a96b10905e0bbb2cc21c855b676aba1f0b9a7256d8e7681a16daa612c4","ssdeep":"","tlshash":"36517214e2a3b09e57a509fcc4d9a40950f98ee0122914b8c6dde8171bf0de4aef7f89","size":2600,"data":"","first_seen":"2025-07-08T23:56:54.762843Z","last_seen":"2026-07-27T07:51:47.21778Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/events@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"10ff816b8dbf75e41a6d052ba90f9783","sha1":"572511bc9379321000315f9980b0f92fca3bfed9","sha256":"c91b5b42dd0a4abb5f10c680482856e8946d56ad80aa81631b9ed168d4ec68ec","sha512":"8925bfe66bd2eab057c73e08df1036e490f2be6cf73ea63d83eba9044100e8bf87a00cfe68d640cb61d402439cf8acaeaf43b434a7f4b20a22b3435066fa87ac","ssdeep":"","tlshash":"bcb0925442228718333a06480326426f4263038ce14203ac03a44d11d027280c8a06f7","size":107,"data":"","first_seen":"2025-07-08T23:56:54.793157Z","last_seen":"2026-08-08T17:15:52.215587Z","times_seen":120,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/sha512@1.0.1/es2022/sha512.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"8981e89dda796fc8f2b9fa08b55ec90e","sha1":"3d0dabb53d7b2a602a00a5f97c1c6b98d1142f34","sha256":"a1bbb2803ba3f8d1addefea9fefdc4274b996ed103e895b0c6d2548e7903bf83","sha512":"9521906f1935312d4a6e7542b2bea901848ae335e2eb19456ae1df7dfa846500baaa6ec56fbb475142ce79213e5ff45215e3cf6559ef7fe1c4e86e53c13d21b2","ssdeep":"96:JgZMKi/2I7hjXt7SHTIBee8YH2/njhCpNduAT5KctIvphHen+B/W4j3ZgcRoaKd3:OQhj97SzIEe8KYmkAdKcCWnGW43s","tlshash":"a412716b6b901094dfab4041453fc52f32e66970230a4b9ee18ee7fd413e326957d63b","size":9619,"data":"","first_seen":"2026-01-25T00:27:36.616668Z","last_seen":"2026-07-27T07:51:47.203877Z","times_seen":96,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/types@2.17.4/es2022/types.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"cb680b3d40f3efbd0e183cb8826ccde6","sha1":"cf9fac1018a837c69eb78708352f106df63562aa","sha256":"d3d3c06c33b1c4f40aa22711ae1372f90c13cde56d8ab017880bddf3879c4402","sha512":"75690493000d93c9004dc768bc9da9189a0242db3f01e1ed3148689b947bdc36f72a1e32c8ef3f6b7d9673e42f1eb2d6ee9cd910c34fa3b8891470e3f8f7e48b","ssdeep":"","tlshash":"0d313768227964b685f6cace885162572390b485f708c0ed3efc78f86dd4d85b3e90f8","size":1693,"data":"","first_seen":"2025-07-08T23:56:54.668383Z","last_seen":"2026-07-27T07:51:47.205292Z","times_seen":11,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@%5E1.0.8?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"d827a1963182d8b91406a0d0e3f597de","sha1":"902f425613826b9cc4711650ef9b6997fd223266","sha256":"31eae021700841d185af1d679fbe35f816d1c0f42700ed36c086b02350e7e149","sha512":"182a8f89352a0d2ac337cd99923f8a21f2996b1f2f5365ee75fc919ca80ebc4a1d96dc8b5f08fb5e02c0648efc093cc3072e6800fa1df0a2b5fe86908e840252","ssdeep":"","tlshash":"2ad0679a85239f1a932b16947b8e577c55a31e98e643417c5ae8d228d0212d8d6902e2","size":259,"data":"","first_seen":"2025-07-08T23:56:54.585735Z","last_seen":"2026-08-08T17:15:51.351783Z","times_seen":125,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/filter-obj@%5E1.1.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"0b1415217da5207d30fe52c585666391","sha1":"d1ef09e343c49c87b23b302fac361b89b822c004","sha256":"65024adf12feb4bf18c458bbb58213b2b5217edb851e7c9ef1c4ab41440beba9","sha512":"07b4eecb5975939b0a480caf3c514bcdeb93bbc720e3f1dc21adbe2e93b49a277fa9a6886cbe972f6dcaf57de97b5e1321a7b43e869ec717a0bd4b529de1d966","ssdeep":"","tlshash":"4ac04c191ad6775811333dc7f664a039935106c495882488a87d162360cb440fca51ef","size":156,"data":"","first_seen":"2025-07-08T23:56:54.773549Z","last_seen":"2026-07-27T07:51:47.249946Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/chacha@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"cf9ee817ef7d25e0b2a63258aaef0cf2","sha1":"a8061d4f808f66d19f724d9f5f16ac03561a5807","sha256":"187a005bd2043bd3c1ae675a621029923603d60f1f152a67a44b8905b5deb12a","sha512":"f345a85923bb0c653c82f0fab8201140a91fef6e46a30d7b488ef29c6853b8e5ddf1d28eb4d7bf8ab1c3ef076241c73c6f26d18e2e8ebd11269456daab91b587","ssdeep":"","tlshash":"13d05b29464fe6a8b320bcf5d3b5f33643710448a4730cac1995c7115086c854822fe2","size":267,"data":"","first_seen":"2025-07-08T23:56:54.603011Z","last_seen":"2026-07-27T07:51:47.191111Z","times_seen":112,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/identity.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1d1628c7d448ac69092f982b1fb57866","sha1":"c0b18d8afccf4554644e60cbb75c87ef45ac04f1","sha256":"28acc5f7d4dfe7d5647e1c8d250540a50ba6397ff4f375bc41dc37fc5d5de510","sha512":"3ccf6bfe2ad3981ef9109319b36b15751716d329781890068f1ce7f8e0b2cef828219dfa536b7a329440d45e99455011dc9be39708e7536cad932a9fb50188b9","ssdeep":"","tlshash":"1ed02bdb56fd2ef4163b484ce2410428f234968de76041f0c51a551771500f8557bf75","size":291,"data":"","first_seen":"2025-07-08T23:56:54.710529Z","last_seen":"2026-08-08T17:15:52.014023Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/async_hooks.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"f78e3393d375d2bd75ee22e5bf0f3635","sha1":"2b6d82e3a17d6f4596fb2f6df083fcf498edaa99","sha256":"b7862dbfba8bbbca956f19e4e08280b529e4b27468779775a9093aef8c92dc1d","sha512":"280686efdbef542165cff092b795274efb660689426f8f15523b3478d967cc6bea03a0d7a66400552278a777655231d7e9ad2cba1bb4eb0a45f249e76102258d","ssdeep":"","tlshash":"3b515489a78bf9685b9eb176413a0103e10a0ec89d1c722cf049e9ee695e10c8774fb5","size":2938,"data":"","first_seen":"2025-10-29T19:17:04.32262Z","last_seen":"2026-08-13T02:06:35.250667Z","times_seen":705,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/environment@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"7946857ff32460266f127afaf0a522c1","sha1":"11825e97f4410e27488392308e8a085b926187a2","sha256":"7cee7392f30be8743b4dd5babeac00ab85b5497fd31318d7abbdb0cce78b06b0","sha512":"566b37f64f9bcab0a75205b77737bea31547c71b2c87c66c998c347867dc604773e30c2e949a8493de880dc2fe886c88c99091f767103b6b27da3b9196201865","ssdeep":"","tlshash":"05d05e4141b3ca2533316a84862a827e5ab3834edec621ac17a30225f1ab6a584983e7","size":275,"data":"","first_seen":"2025-07-08T23:56:54.600859Z","last_seen":"2026-08-08T17:15:52.280091Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/quick-format-unescaped@%5E4.0.3?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"2ec72ca1b032faf2147cdbfe5dc6f4fe","sha1":"74a442d912145f97cb5ebd2e6d7be8ef718aaa9d","sha256":"6233cb3367153cb82fd82a46512475b67aa3ca044340dc20809d0c9f67a35a4b","sha512":"5a9b06b29c2fc02f9180019e8bc9a668173bde9e44a6c15414ee65f1dfb060c1c3a1576f93b79c325db5acfdd6de5a1054df59a3f262be4bcec98805cd8dafcd","ssdeep":"","tlshash":"7fd0c9a2b823083c27a504c0459f50377fd98b08e1754a8ae0fc2b24568883268bd3d5","size":216,"data":"","first_seen":"2025-07-08T23:56:54.842181Z","last_seen":"2026-07-27T07:51:47.262078Z","times_seen":113,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bignumber@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"ce2fc4708fa23bccbddc34bfa472d008","sha1":"e09588cdf26f1443bee31c8f0e0529f1185cd076","sha256":"608a43737b84029cebb41f30bb89a7a225b1a2064ae15e7d2034c804b9dcdf7f","sha512":"e3c54f6c55e53b78397702b843dff48b1e355bfca0979d5c1e5e8a5d538f45115edd1d9b49f8b864687876cb29cd204c04828bc3e9bc0b533c28880266a2ccee","ssdeep":"","tlshash":"1fd017a7c119a6dc634e1bec90a8a73ca23b8094d686e0be5824cb73938311d26615da","size":261,"data":"","first_seen":"2025-07-08T23:56:54.682227Z","last_seen":"2026-07-27T07:51:47.172236Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-crypto-utils@1.0.1/es2022/minimalistic-crypto-utils.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"0337c9698b92d975f135a54321aec629","sha1":"7853a11885a24d9a3de23bc64ddc68becbe1b6d0","sha256":"27bb0550844afece2a428437650d1211e626c6516b65354a9cca4e3f899b13d9","sha512":"3a0b2525c0fd946294492369f793d2fc353e439933db95769d706df5a0fe7d70b07a81ca6aa66a82d94548526feb58e4c16850392f4ccc03a69f29669b3b0c0f","ssdeep":"","tlshash":"e72106a822e6f5f2479105558d3f5886f1687e38446df1a1db90daa2b0d04d640a6f73","size":1377,"data":"","first_seen":"2025-07-08T23:56:54.662068Z","last_seen":"2026-07-27T07:51:47.178067Z","times_seen":23,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/constants@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"a2d22fa01d719193a933172d85c9bc51","sha1":"1b141d89185bde8aab44c267c6ad0fc26854fb05","sha256":"9c305e7b0cd23610c175f0f447c03010cffa3b0a00b5bae7224a8a0ae68bca57","sha512":"3aab9c88a5578e236e9fad859d08b7c6de54312e6b56af1d60922c204a279d085bd88a60f1f14ea00ecda9ce83ec311b3e25d2096e1eff055351bafb7a5ced6a","ssdeep":"","tlshash":"fcc01256c01555cc775d0fdc0228ab3c91773054e044d0ea541c8623829310665524a7","size":173,"data":"","first_seen":"2025-07-08T23:56:54.677691Z","last_seen":"2026-07-27T07:51:47.182413Z","times_seen":15,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/codecs/json.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"227aee760f744b44eed2f8fdc2aefa58","sha1":"bcb24e37045c30bd20014346b888d864536f2fde","sha256":"a31ef601f2480daa1ed34393e91f937cef522517ca7d934b86939f8d761fe077","sha512":"29a617b824766e90b60f95671a0475636f578dba1114e190f636348666f6b93348781ba381b01e782516050c68ad478f36f56604c0cfcfd3538d80b00dfa6a1e","ssdeep":"","tlshash":"04d097ac0c7867f04d7e064520aacc0b624c788091000a74fc490bd80024ce2c2272be","size":249,"data":"","first_seen":"2025-07-08T23:56:54.839119Z","last_seen":"2026-08-08T17:15:52.051779Z","times_seen":118,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/window-metadata@1.0.1/es2022/window-metadata.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"93327ec31217b762bac4f644bd6b6be0","sha1":"6dcb6f2bab7d8857748808c1e18f151f16089e40","sha256":"0cc0860fb186283c2b98d928371995eafd529cd35fdb734b9f58add1b2cf2339","sha512":"eea3fb1c0eb0b902304d5fa2bfbb477d1f2ead1fc01f6586fe5307000e0ed5977b891459841eef3659c495a4cb0bbe2759a03d622ed62b281c82f474983adcda","ssdeep":"","tlshash":"955184d5b6d1f27343ef0181457f8505f099a6a90059a808db84d873b9908cb9af2ffd","size":2579,"data":"","first_seen":"2025-07-08T23:56:54.735744Z","last_seen":"2026-08-08T17:15:51.831233Z","times_seen":128,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/detect-browser@5.3.0/es2022/detect-browser.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"1895e2a0be781d1fe0a9b01711e73688","sha1":"77ac3437c57b50b66421a188761cff9c68c16fb1","sha256":"5f9d1aca02225f52f67dc3a0d102758679c46fb0fa66d00c480f16591ca27a82","sha512":"7ca78b26f36ae6280a945f476af6b919c48a761fcfe9246838e5c678433405f7472ca24fd5d60213f0e519d67d0946673c2c21661bd5bc51694d3407643e62f4","ssdeep":"96:JjwXNLDpOsfn7cvgUWUJzHDa7kFAmP9jNvLCVlIC+USu:J8dIqn7vzU5mIFT9lQlIj4","tlshash":"0b91d70c71a36137d1be2a25aa9f1157a93c30008bce9999f541eb97fcd343a6053df8","size":4570,"data":"","first_seen":"2025-11-22T14:57:24.01646Z","last_seen":"2026-08-08T17:15:52.059434Z","times_seen":123,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/xor.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"importedModule","is_inline":false,"md5":"cf45c584ca8f2162b4f6eb39aafffee6","sha1":"8b253566d089f16e60f7be661b0af382fb4be9ca","sha256":"e5c50192414e4724c1fb720d22732d330bb9dd40b01069e8551e22980c841270","sha512":"b8f0f029f6972ea6f613823468f4d870d6c9bdd81d4b53997c18e22e7ddb29701dbbf9e0694997fd5622cf150466f8213dc568d0e5238551f27a7c4156862d54","ssdeep":"","tlshash":"41d0eb7bc3f16cbf83721a822802e410e9f06ef8eac839a4b4290c0d0343ac084cde90","size":291,"data":"","first_seen":"2025-07-08T23:56:54.769635Z","last_seen":"2026-07-27T07:51:47.164339Z","times_seen":102,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"log","text":"WC provider ready","filename":"https://mail.usdt-transfer.info/","line_number":50,"column_number":13}]},"http":[{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bytes@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.939Z","timestamp":1785138633939,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/bytes@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/keccak256@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/bytes@5.8.0/es2022/bytes.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/bytes@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce1c3c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":158,"size_decoded":664,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"063c6f7dad93a8f2b4f3cade7d442e55","sha1":"ec3c094520ac58880fb868ef32b961d185471b9d","sha256":"11b190062f04ee619544980e6fd197df0d5cecd990069b1ff0a25422a9e2a09f","sha512":"24de4b3691d8c72b06205d561ccbe9cf606f1ddd95f2d6138ddd65fd95cda7376602f3d0401f876a1d3feb23d70573467964d08f98d13cc313313029c70cb345","ssdeep":"","tlshash":"a8c01213822e82cc629e0fac0128aa2cb276c0988088a0ab54288a22c1c211daa304f6","first_seen":"2025-07-08T23:56:54.718681Z","last_seen":"2026-07-27T07:51:47.168239Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYnl0ZXNANS44LjAgKi8KaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQDUuOC4wL2VzMjAyMi9ieXRlcy5tanMiOwo="}},"time_used":127,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":127,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/dist/esm/env.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.548Z","timestamp":1785138633548,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-utils@1.0.8/es2022/dist/esm/env.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:42 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16522\r\ncf-ray: a21a0dcbabd6569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":262,"size_decoded":549,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"49a9c8eed78fe9b636ac8919c2998a76","sha1":"f7ac0ff5ace6c2617ca3b155aefab45666fb7271","sha256":"31f1a1896956391373d663eea46423cc0f4108d099c26489f00773376f4eac61","sha512":"f757216d4128b64aa18f647861472bf6fa0f62829f01c187f923bc263395272545ed587476e6432968a1fcaf163285d9ddc782e3fc93f0c81a8f30cbbb432e34","ssdeep":"","tlshash":"71d05eadcdb186a7672a28a99a1e83bc443606c5e703827c2660a314c0346d805c47e3","first_seen":"2025-07-08T23:56:54.768723Z","last_seen":"2026-08-08T17:15:51.935707Z","times_seen":125,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOC9kaXN0L2VzbS9lbnYgKi8KaW1wb3J0e2lzTm9kZSBhcyBvfWZyb20iL0B3YWxsZXRjb25uZWN0L2Vudmlyb25tZW50QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtleHBvcnQqZnJvbSIvQHdhbGxldGNvbm5lY3QvZW52aXJvbm1lbnRAXjEuMC4xP3RhcmdldD1lczIwMjIiO3ZhciBlPW87ZXhwb3J0e2UgYXMgaXNOb2RlSnN9OwovLyMgc291cmNlTWFwcGluZ1VSTD1lbnYubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/safe-json@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.555Z","timestamp":1785138633555,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/safe-json@%5E1.0.2?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/logger@2.1.2/es2022/logger.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/safe-json@1.0.2/es2022/safe-json.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/safe-json@1.0.2/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcbbbd9569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":116,"size_decoded":655,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"c9fd678071e6d03eb4078fa7ee530c10","sha1":"2220ba8353f854791c066af13fb5343fd36c5f81","sha256":"bda99310f7f8a365bd996ccbce3853f57ea7688ee67a6ab8fb6b50f9b1d5cff3","sha512":"3c65b53cbe34fbab0ddefae6771cdd66167b07e4a7fcb09c5b7dbe33aac2e1ca285cc0344e1216fdac08529a51d76180499061ea461885d9bff9eda72fd1d38b","ssdeep":"","tlshash":"18b0927141a3031a0b3a2648029a83ac4b6b0b0cc14300acc29b0120a0932a86870ab7","first_seen":"2025-07-08T23:56:54.647274Z","last_seen":"2026-08-08T17:15:51.472536Z","times_seen":127,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQDEuMC4yICovCmV4cG9ydCAqIGZyb20gIi9Ad2FsbGV0Y29ubmVjdC9zYWZlLWpzb25AMS4wLjIvZXMyMDIyL3NhZmUtanNvbi5tanMiOwo="}},"time_used":119,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":119,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/buffer.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.564Z","timestamp":1785138633564,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /node/buffer.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=86400\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\netag: W/\"v137_7\"\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbcbdc569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":28845,"size_decoded":10674,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (28468)","md5":"39e6418dc1a8a38a7baf7cbf64e6bc9b","sha1":"036b9f42abe9026454886016987cdd479ce3f33c","sha256":"64fb61aa5f48644d685f9ceabedba60ea6b5d6ce03dac1943e863d00d9e574f3","sha512":"de01074341e2a0ad5d0b74108a593811ef91c72bd775fc2ab20f98c941fc4635f541fd7983f08cd93700d7f6f582c55b95fdfaed785258eef4f0b55322df151c","ssdeep":"384:f2ROO9YwKOX7MW/I55zmhYuC2rUV5w+c7LW+M444MMazyXDNcyO9+C9YDNqWRMzI:fKewKOX7MWwGzCrfTc7LW+bcp9a60","tlshash":"d3d2b694f795b032439e65a50057980ef2b8f928640d198cf6a0f5f728b59ce88eff74","first_seen":"2025-10-30T08:47:32.392454Z","last_seen":"2026-08-12T06:39:49.854715Z","times_seen":548,"resource_available":true,"data":"ZnVuY3Rpb24gdXQodCl7cmV0dXJuIG5ldyBFcnJvcihgW3VuZW52XSAke3R9IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQhYCl9ZnVuY3Rpb24gdih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbigoKT0+e3Rocm93IHV0KHQpfSx7X191bmVudl9fOiEwfSl9dmFyIGQ9W10seT1bXSxzdD10eXBlb2YgVWludDhBcnJheT4idSI/QXJyYXk6VWludDhBcnJheSxOPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIjtmb3IobGV0IHQ9MCxlPU4ubGVuZ3RoO3Q8ZTsrK3QpZFt0XT1OW3RdLHlbTi5jaGFyQ29kZUF0KHQpXT10O3lbNDVdPTYyO3lbOTVdPTYzO2Z1bmN0aW9uIGh0KHQpe2xldCBlPXQubGVuZ3RoO2lmKGUlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO2xldCBuPXQuaW5kZXhPZigiPSIpO249PT0tMSYmKG49ZSk7bGV0IHI9bj09PWU/MDo0LW4lNDtyZXR1cm5bbixyXX1mdW5jdGlvbiBsdCh0LGUsbil7cmV0dXJuKGUrbikqMy80LW59ZnVuY3Rpb24gYXQodCl7bGV0IGUsbj1odCh0KSxyPW5bMF0sbz1uWzFdLGk9bmV3IHN0KGx0KHQscixvKSksdT0wLHM9bz4wP3ItNDpyLGw7Zm9yKGw9MDtsPHM7bCs9NCllPXlbdC5jaGFyQ29kZUF0KGwpXTw8MTh8eVt0LmNoYXJDb2RlQXQobCsxKV08PDEyfHlbdC5jaGFyQ29kZUF0KGwrMildPDw2fHlbdC5jaGFyQ29kZUF0KGwrMyldLGlbdSsrXT1lPj4xNiYyNTUsaVt1KytdPWU+PjgmMjU1LGlbdSsrXT1lJjI1NTtyZXR1cm4gbz09PTImJihlPXlbdC5jaGFyQ29kZUF0KGwpXTw8Mnx5W3QuY2hhckNvZGVBdChsKzEpXT4+NCxpW3UrK109ZSYyNTUpLG89PT0xJiYoZT15W3QuY2hhckNvZGVBdChsKV08PDEwfHlbdC5jaGFyQ29kZUF0KGwrMSldPDw0fHlbdC5jaGFyQ29kZUF0KGwrMildPj4yLGlbdSsrXT1lPj44JjI1NSxpW3UrK109ZSYyNTUpLGl9ZnVuY3Rpb24gcHQodCl7cmV0dXJuIGRbdD4+MTgmNjNdK2RbdD4+MTImNjNdK2RbdD4+NiY2M10rZFt0JjYzXX1mdW5jdGlvbiBjdCh0LGUsbil7bGV0IHIsbz1bXTtmb3IobGV0IGk9ZTtpPG47aSs9MylyPSh0W2ldPDwxNiYxNjcxMTY4MCkrKHRbaSsxXTw8OCY2NTI4MCkrKHRbaSsyXSYyNTUpLG8ucHVzaChwdChyKSk7cmV0dXJuIG8uam9pbigiIil9ZnVuY3Rpb24gayh0KXtsZXQgZSxuPXQubGVuZ3RoLHI9biUzLG89W10saT0xNjM4Mztmb3IobGV0IHU9MCxzPW4tcjt1PHM7dSs9aSlvLnB1c2goY3QodCx1LHUraT5zP3M6dStpKSk7cmV0dXJuIHI9PT0xPyhlPXRbbi0xXSxvLnB1c2goZFtlPj4yXStkW2U8PDQmNjNdKyI9PSIpKTpyPT09MiYmKGU9KHRbbi0yXTw8OCkrdFtuLTFdLG8ucHVzaChkW2U+PjEwXStkW2U+PjQmNjNdK2RbZTw8MiY2M10rIj0iKSksby5qb2luKCIiKX1mdW5jdGlvbiBfKHQsZSxuLHIsbyl7bGV0IGksdSxzPW8qOC1yLTEsbD0oMTw8cyktMSxwPWw+PjEsaD0tNyxhPW4/by0xOjAsST1uPy0xOjEsdz10W2UrYV07Zm9yKGErPUksaT13JigxPDwtaCktMSx3Pj49LWgsaCs9cztoPjA7KWk9aSoyNTYrdFtlK2FdLGErPUksaC09ODtmb3IodT1pJigxPDwtaCktMSxpPj49LWgsaCs9cjtoPjA7KXU9dSoyNTYrdFtlK2FdLGErPUksaC09ODtpZihpPT09MClpPTEtcDtlbHNle2lmKGk9PT1sKXJldHVybiB1P051bWJlci5OYU46KHc/LTE6MSkqTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO3U9dStNYXRoLnBvdygyLHIpLGk9aS1wfXJldHVybih3Py0xOjEpKnUqTWF0aC5wb3coMixpLXIpfWZ1bmN0aW9uIHoodCxlLG4scixvLGkpe2xldCB1LHMsbCxwPWkqOC1vLTEsaD0oMTw8cCktMSxhPWg+PjEsST1vPT09MjM/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLHc9cj8wOmktMSxMPXI/MTotMSxmdD1lPDB8fGU9PT0wJiYxL2U8MD8xOjA7Zm9yKGU9TWF0aC5hYnMoZSksTnVtYmVyLmlzTmFOKGUpfHxlPT09TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZPyhzPU51bWJlci5pc05hTihlKT8xOjAsdT1oKToodT1NYXRoLmZsb29yKE1hdGgubG9nMihlKSksZSoobD1NYXRoLnBvdygyLC11KSk8MSYmKHUtLSxsKj0yKSxlKz11K2E+PTE/SS9sOkkqTWF0aC5wb3coMiwxLWEpLGUqbD49MiYmKHUrKyxsLz0yKSx1K2E+PWg/KHM9MCx1PWgpOnUrYT49MT8ocz0oZSpsLTEpKk1hdGgucG93KDIsbyksdT11K2EpOihzPWUqTWF0aC5wb3coMixhLTEpKk1hdGgucG93KDIsbyksdT0wKSk7bz49ODspdFtuK3ddPXMmMjU1LHcrPUwscy89MjU2LG8tPTg7Zm9yKHU9dTw8b3xzLHArPW87cD4wOyl0W24rd109dSYyNTUsdys9TCx1Lz0yNTYscC09ODt0W24rdy1MXXw9ZnQqMTI4fXZhciBGPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2wuZm9yPT0iZnVuY3Rpb24iP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbCxHPTUwLFI9MjE0NzQ4MzY0NyxWPVI7Zi5UWVBFRF9BUlJBWV9TVVBQT1JUPWd0KCk7IWYuVFlQRURfQVJSQVlfU1VQUE9SVCYmdHlwZW9mIGNvbnNvbGU8InUiJiZ0eXBlb2YgY29uc29sZS5lcnJvcj09ImZ1bmN0aW9uIiYmY29uc29sZS5lcnJvcigiVGhpcyBlbnZpcm9ubWVudCBsYWNrcyB0eXBlZCBhcnJheSAoVWludDhBcnJheSkgc3VwcG9ydCB3aGljaCBpcyByZXF1aXJlZCBieSBgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LiIpO2Z1bmN0aW9uIGd0KCl7dHJ5e2xldCB0PW5ldyBVaW50OEFycmF5KDEpLGU9e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoZSxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSksdC5mb28oKT09PTQyfWNhdGNoe3JldHVybiExfX1PYmplY3QuZGVmaW5lUHJvcGVydHkoZi5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoZi5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGYucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGYuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnl0ZU9mZnNldH19KTtmdW5jdGlvbiBtKHQpe2lmKHQ+Uil0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO2xldCBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoZSxmLnByb3RvdHlwZSksZX1mdW5jdGlvbiBmKHQsZSxuKXtpZih0eXBlb2YgdD09Im51bWJlciIpe2lmKHR5cGVvZiBlPT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gTSh0KX1yZXR1cm4gWCh0LGUsbil9Zi5wb29sU2l6ZT04MTkyO2Z1bmN0aW9uIFgodCxlLG4pe2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gd3QodCxlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCkpcmV0dXJuIGR0KHQpO2lmKHQ9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgdCk7aWYoYih0LEFycmF5QnVmZmVyKXx8dCYmYih0LmJ1ZmZlcixBcnJheUJ1ZmZlcil8fHR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcjwidSImJihiKHQsU2hhcmVkQXJyYXlCdWZmZXIpfHx0JiZiKHQuYnVmZmVyLFNoYXJlZEFycmF5QnVmZmVyKSkpcmV0dXJuIEgodCxlLG4pO2lmKHR5cGVvZiB0PT0ibnVtYmVyIil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtsZXQgcj10LnZhbHVlT2YmJnQudmFsdWVPZigpO2lmKHIhPW51bGwmJnIhPT10KXJldHVybiBmLmZyb20ocixlLG4pO2xldCBvPWJ0KHQpO2lmKG8pcmV0dXJuIG87aWYodHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC50b1ByaW1pdGl2ZSE9bnVsbCYmdHlwZW9mIHRbU3ltYm9sLnRvUHJpbWl0aXZlXT09ImZ1bmN0aW9uIilyZXR1cm4gZi5mcm9tKHRbU3ltYm9sLnRvUHJpbWl0aXZlXSgic3RyaW5nIiksZSxuKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiB0KX1mLmZyb209ZnVuY3Rpb24odCxlLG4pe3JldHVybiBYKHQsZSxuKX07T2JqZWN0LnNldFByb3RvdHlwZU9mKGYucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKTtPYmplY3Quc2V0UHJvdG90eXBlT2YoZixVaW50OEFycmF5KTtmdW5jdGlvbiBxKHQpe2lmKHR5cGVvZiB0IT0ibnVtYmVyIil0aHJvdyBuZXcgVHlwZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlcicpO2lmKHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIHl0KHQsZSxuKXtyZXR1cm4gcSh0KSx0PD0wP20odCk6ZSE9PXZvaWQgMD90eXBlb2Ygbj09InN0cmluZyI/bSh0KS5maWxsKGUsbik6bSh0KS5maWxsKGUpOm0odCl9Zi5hbGxvYz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHl0KHQsZSxuKX07ZnVuY3Rpb24gTSh0KXtyZXR1cm4gcSh0KSxtKHQ8MD8wOiQodCl8MCl9Zi5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtyZXR1cm4gTSh0KX07Zi5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24odCl7cmV0dXJuIE0odCl9O2Z1bmN0aW9uIHd0KHQsZSl7aWYoKHR5cGVvZiBlIT0ic3RyaW5nInx8ZT09PSIiKSYmKGU9InV0ZjgiKSwhZi5pc0VuY29kaW5nKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrZSk7bGV0IG49Vyh0LGUpfDAscj1tKG4pLG89ci53cml0ZSh0LGUpO3JldHVybiBvIT09biYmKHI9ci5zbGljZSgwLG8pKSxyfWZ1bmN0aW9uIFModCl7bGV0IGU9dC5sZW5ndGg8MD8wOiQodC5sZW5ndGgpfDAsbj1tKGUpO2ZvcihsZXQgcj0wO3I8ZTtyKz0xKW5bcl09dFtyXSYyNTU7cmV0dXJuIG59ZnVuY3Rpb24gZHQodCl7aWYoYih0LFVpbnQ4QXJyYXkpKXtsZXQgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gSChlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1yZXR1cm4gUyh0KX1mdW5jdGlvbiBIKHQsZSxuKXtpZihlPDB8fHQuYnl0ZUxlbmd0aDxlKXRocm93IG5ldyBSYW5nZUVycm9yKCcib2Zmc2V0IiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtpZih0LmJ5dGVMZW5ndGg8ZSsobnx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2xldCByO3JldHVybiBlPT09dm9pZCAwJiZuPT09dm9pZCAwP3I9bmV3IFVpbnQ4QXJyYXkodCk6bj09PXZvaWQgMD9yPW5ldyBVaW50OEFycmF5KHQsZSk6cj1uZXcgVWludDhBcnJheSh0LGUsbiksT2JqZWN0LnNldFByb3RvdHlwZU9mKHIsZi5wcm90b3R5cGUpLHJ9ZnVuY3Rpb24gYnQodCl7aWYoZi5pc0J1ZmZlcih0KSl7bGV0IGU9JCh0Lmxlbmd0aCl8MCxuPW0oZSk7cmV0dXJuIG4ubGVuZ3RoPT09MHx8dC5jb3B5KG4sMCwwLGUpLG59aWYodC5sZW5ndGghPT12b2lkIDApcmV0dXJuIHR5cGVvZiB0Lmxlbmd0aCE9Im51bWJlciJ8fFAodC5sZW5ndGgpP20oMCk6Uyh0KTtpZih0LnR5cGU9PT0iQnVmZmVyIiYmQXJyYXkuaXNBcnJheSh0LmRhdGEpKXJldHVybiBTKHQuZGF0YSl9ZnVuY3Rpb24gJCh0KXtpZih0Pj1SKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitSLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIHR8MH1mdW5jdGlvbiBtdCh0KXtyZXR1cm4rdCE9dCYmKHQ9MCksZi5hbGxvYygrdCl9Zi5pc0J1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gdCE9bnVsbCYmdC5faXNCdWZmZXI9PT0hMCYmdCE9PWYucHJvdG90eXBlfTtmLmNvbXBhcmU9ZnVuY3Rpb24odCxlKXtpZihiKHQsVWludDhBcnJheSkmJih0PWYuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLGIoZSxVaW50OEFycmF5KSYmKGU9Zi5mcm9tKGUsZS5vZmZzZXQsZS5ieXRlTGVuZ3RoKSksIWYuaXNCdWZmZXIodCl8fCFmLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIiBhcmd1bWVudHMgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKHQ9PT1lKXJldHVybiAwO2xldCBuPXQubGVuZ3RoLHI9ZS5sZW5ndGg7Zm9yKGxldCBvPTAsaT1NYXRoLm1pbihuLHIpO288aTsrK28paWYodFtvXSE9PWVbb10pe249dFtvXSxyPWVbb107YnJlYWt9cmV0dXJuIG48cj8tMTpyPG4/MTowfTtmLmlzRW5jb2Rpbmc9ZnVuY3Rpb24odCl7c3dpdGNoKFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2YuY29uY2F0PWZ1bmN0aW9uKHQsZSl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gZi5hbGxvYygwKTtsZXQgbjtpZihlPT09dm9pZCAwKWZvcihlPTAsbj0wO248dC5sZW5ndGg7KytuKWUrPXRbbl0ubGVuZ3RoO2xldCByPWYuYWxsb2NVbnNhZmUoZSksbz0wO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe2xldCBpPXRbbl07aWYoYihpLFVpbnQ4QXJyYXkpKW8raS5sZW5ndGg+ci5sZW5ndGg/KGYuaXNCdWZmZXIoaSl8fChpPWYuZnJvbShpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQsaS5ieXRlTGVuZ3RoKSksaS5jb3B5KHIsbykpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHIsaSxvKTtlbHNlIGlmKGYuaXNCdWZmZXIoaSkpaS5jb3B5KHIsbyk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7bys9aS5sZW5ndGh9cmV0dXJuIHJ9O2Z1bmN0aW9uIFcodCxlKXtpZihmLmlzQnVmZmVyKHQpKXJldHVybiB0Lmxlbmd0aDtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCl8fGIodCxBcnJheUJ1ZmZlcikpcmV0dXJuIHQuYnl0ZUxlbmd0aDtpZih0eXBlb2YgdCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIG9yIEFycmF5QnVmZmVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHQpO2xldCBuPXQubGVuZ3RoLHI9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl09PT0hMDtpZighciYmbj09PTApcmV0dXJuIDA7bGV0IG89ITE7Zm9yKDs7KXN3aXRjaChlKXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBuO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHgodCkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gbioyO2Nhc2UiaGV4IjpyZXR1cm4gbj4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiBvdCh0KS5sZW5ndGg7ZGVmYXVsdDppZihvKXJldHVybiByPy0xOngodCkubGVuZ3RoO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksbz0hMH19Zi5ieXRlTGVuZ3RoPVc7ZnVuY3Rpb24gRXQodCxlLG4pe2xldCByPSExO2lmKChlPT09dm9pZCAwfHxlPDApJiYoZT0wKSxlPnRoaXMubGVuZ3RofHwoKG49PT12b2lkIDB8fG4+dGhpcy5sZW5ndGgpJiYobj10aGlzLmxlbmd0aCksbjw9MCl8fChuPj4+PTAsZT4+Pj0wLG48PWUpKXJldHVybiIiO2Zvcih0fHwodD0idXRmOCIpOzspc3dpdGNoKHQpe2Nhc2UiaGV4IjpyZXR1cm4gTHQodGhpcyxlLG4pO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIEsodGhpcyxlLG4pO2Nhc2UiYXNjaWkiOnJldHVybiBfdCh0aGlzLGUsbik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gT3QodGhpcyxlLG4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gVHQodGhpcyxlLG4pO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gTnQodGhpcyxlLG4pO2RlZmF1bHQ6aWYocil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3Q9KHQrIiIpLnRvTG93ZXJDYXNlKCkscj0hMH19Zi5wcm90b3R5cGUuX2lzQnVmZmVyPSEwO2Z1bmN0aW9uIEIodCxlLG4pe2xldCByPXRbZV07dFtlXT10W25dLHRbbl09cn1mLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXtsZXQgdD10aGlzLmxlbmd0aDtpZih0JTIhPT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2ZvcihsZXQgZT0wO2U8dDtlKz0yKUIodGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9O2YucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe2xldCB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKGxldCBlPTA7ZTx0O2UrPTQpQih0aGlzLGUsZSszKSxCKHRoaXMsZSsxLGUrMik7cmV0dXJuIHRoaXN9O2YucHJvdG90eXBlLnN3YXA2ND1mdW5jdGlvbigpe2xldCB0PXRoaXMubGVuZ3RoO2lmKHQlOCE9PTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKGxldCBlPTA7ZTx0O2UrPTgpQih0aGlzLGUsZSs3KSxCKHRoaXMsZSsxLGUrNiksQih0aGlzLGUrMixlKzUpLEIodGhpcyxlKzMsZSs0KTtyZXR1cm4gdGhpc307Zi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtsZXQgdD10aGlzLmxlbmd0aDtyZXR1cm4gdD09PTA/IiI6YXJndW1lbnRzLmxlbmd0aD09PTA/Syh0aGlzLDAsdCk6UmVmbGVjdC5hcHBseShFdCx0aGlzLGFyZ3VtZW50cyl9O2YucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPWYucHJvdG90eXBlLnRvU3RyaW5nO2YucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighZi5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10PyEwOmYuY29tcGFyZSh0aGlzLHQpPT09MH07Zi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe2xldCB0PSIiLGU9RztyZXR1cm4gdD10aGlzLnRvU3RyaW5nKCJoZXgiLDAsZSkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5lJiYodCs9IiAuLi4gIiksIjxCdWZmZXIgIit0KyI+In07RiYmKGYucHJvdG90eXBlW0ZdPWYucHJvdG90eXBlLmluc3BlY3QpO2YucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odCxlLG4scixvKXtpZihiKHQsVWludDhBcnJheSkmJih0PWYuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLCFmLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHQpO2lmKGU9PT12b2lkIDAmJihlPTApLG49PT12b2lkIDAmJihuPXQ/dC5sZW5ndGg6MCkscj09PXZvaWQgMCYmKHI9MCksbz09PXZvaWQgMCYmKG89dGhpcy5sZW5ndGgpLGU8MHx8bj50Lmxlbmd0aHx8cjwwfHxvPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihyPj1vJiZlPj1uKXJldHVybiAwO2lmKHI+PW8pcmV0dXJuLTE7aWYoZT49bilyZXR1cm4gMTtpZihlPj4+PTAsbj4+Pj0wLHI+Pj49MCxvPj4+PTAsdGhpcz09PXQpcmV0dXJuIDA7bGV0IGk9by1yLHU9bi1lLHM9TWF0aC5taW4oaSx1KSxsPXRoaXMuc2xpY2UocixvKSxwPXQuc2xpY2UoZSxuKTtmb3IobGV0IGg9MDtoPHM7KytoKWlmKGxbaF0hPT1wW2hdKXtpPWxbaF0sdT1wW2hdO2JyZWFrfXJldHVybiBpPHU/LTE6dTxpPzE6MH07ZnVuY3Rpb24gSih0LGUsbixyLG8pe2lmKHQubGVuZ3RoPT09MClyZXR1cm4tMTtpZih0eXBlb2Ygbj09InN0cmluZyI/KHI9bixuPTApOm4+MjE0NzQ4MzY0Nz9uPTIxNDc0ODM2NDc6bjwtMjE0NzQ4MzY0OCYmKG49LTIxNDc0ODM2NDgpLG49K24sUChuKSYmKG49bz8wOnQubGVuZ3RoLTEpLG48MCYmKG49dC5sZW5ndGgrbiksbj49dC5sZW5ndGgpe2lmKG8pcmV0dXJuLTE7bj10Lmxlbmd0aC0xfWVsc2UgaWYobjwwKWlmKG8pbj0wO2Vsc2UgcmV0dXJuLTE7aWYodHlwZW9mIGU9PSJzdHJpbmciJiYoZT1mLmZyb20oZSxyKSksZi5pc0J1ZmZlcihlKSlyZXR1cm4gZS5sZW5ndGg9PT0wPy0xOmoodCxlLG4scixvKTtpZih0eXBlb2YgZT09Im51bWJlciIpcmV0dXJuIGU9ZSYyNTUsdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y9PSJmdW5jdGlvbiI/bz9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLG4pOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodCxlLG4pOmoodCxbZV0sbixyLG8pO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIGoodCxlLG4scixvKXtsZXQgaT0xLHU9dC5sZW5ndGgscz1lLmxlbmd0aDtpZihyIT09dm9pZCAwJiYocj1TdHJpbmcocikudG9Mb3dlckNhc2UoKSxyPT09InVjczIifHxyPT09InVjcy0yInx8cj09PSJ1dGYxNmxlInx8cj09PSJ1dGYtMTZsZSIpKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO2k9Mix1Lz0yLHMvPTIsbi89Mn1mdW5jdGlvbiBsKGgsYSl7cmV0dXJuIGk9PT0xP2hbYV06aC5yZWFkVUludDE2QkUoYSppKX1sZXQgcDtpZihvKXtsZXQgaD0tMTtmb3IocD1uO3A8dTtwKyspaWYobCh0LHApPT09bChlLGg9PT0tMT8wOnAtaCkpe2lmKGg9PT0tMSYmKGg9cCkscC1oKzE9PT1zKXJldHVybiBoKml9ZWxzZSBoIT09LTEmJihwLT1wLWgpLGg9LTF9ZWxzZSBmb3IobitzPnUmJihuPXUtcykscD1uO3A+PTA7cC0tKXtsZXQgaD0hMDtmb3IobGV0IGE9MDthPHM7YSsrKWlmKGwodCxwK2EpIT09bChlLGEpKXtoPSExO2JyZWFrfWlmKGgpcmV0dXJuIHB9cmV0dXJuLTF9Zi5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLmluZGV4T2YodCxlLG4pIT09LTF9O2YucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBKKHRoaXMsdCxlLG4sITApfTtmLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIEoodGhpcyx0LGUsbiwhMSl9O2Z1bmN0aW9uIEJ0KHQsZSxuLHIpe249TnVtYmVyKG4pfHwwO2xldCBvPXQubGVuZ3RoLW47cj8ocj1OdW1iZXIocikscj5vJiYocj1vKSk6cj1vO2xldCBpPWUubGVuZ3RoO3I+aS8yJiYocj1pLzIpO2xldCB1O2Zvcih1PTA7dTxyOysrdSl7bGV0IHM9TnVtYmVyLnBhcnNlSW50KGUuc2xpY2UodSoyLHUqMisyKSwxNik7aWYoUChzKSlyZXR1cm4gdTt0W24rdV09c31yZXR1cm4gdX1mdW5jdGlvbiBJdCh0LGUsbixyKXtyZXR1cm4gTyh4KGUsdC5sZW5ndGgtbiksdCxuLHIpfWZ1bmN0aW9uIEF0KHQsZSxuLHIpe3JldHVybiBPKCR0KGUpLHQsbixyKX1mdW5jdGlvbiBVdCh0LGUsbixyKXtyZXR1cm4gTyhvdChlKSx0LG4scil9ZnVuY3Rpb24gdnQodCxlLG4scil7cmV0dXJuIE8oQ3QoZSx0Lmxlbmd0aC1uKSx0LG4scil9Zi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLG4scil7aWYoZT09PXZvaWQgMClyPSJ1dGY4IixuPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKG49PT12b2lkIDAmJnR5cGVvZiBlPT0ic3RyaW5nIilyPWUsbj10aGlzLmxlbmd0aCxlPTA7ZWxzZSBpZihOdW1iZXIuaXNGaW5pdGUoZSkpZT1lPj4+MCxOdW1iZXIuaXNGaW5pdGUobik/KG49bj4+PjAscj09PXZvaWQgMCYmKHI9InV0ZjgiKSk6KHI9bixuPXZvaWQgMCk7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2xldCBvPXRoaXMubGVuZ3RoLWU7aWYoKG49PT12b2lkIDB8fG4+bykmJihuPW8pLHQubGVuZ3RoPjAmJihuPDB8fGU8MCl8fGU+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7cnx8KHI9InV0ZjgiKTtsZXQgaT0hMTtmb3IoOzspc3dpdGNoKHIpe2Nhc2UiaGV4IjpyZXR1cm4gQnQodGhpcyx0LGUsbik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gSXQodGhpcyx0LGUsbik7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gQXQodGhpcyx0LGUsbik7Y2FzZSJiYXNlNjQiOnJldHVybiBVdCh0aGlzLHQsZSxuKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIHZ0KHRoaXMsdCxlLG4pO2RlZmF1bHQ6aWYoaSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3IpO3I9KCIiK3IpLnRvTG93ZXJDYXNlKCksaT0hMH19O2YucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07ZnVuY3Rpb24gVHQodCxlLG4pe3JldHVybiBlPT09MCYmbj09PXQubGVuZ3RoP2sodCk6ayh0LnNsaWNlKGUsbikpfWZ1bmN0aW9uIEsodCxlLG4pe249TWF0aC5taW4odC5sZW5ndGgsbik7bGV0IHI9W10sbz1lO2Zvcig7bzxuOyl7bGV0IGk9dFtvXSx1PW51bGwscz1pPjIzOT80Omk+MjIzPzM6aT4xOTE/MjoxO2lmKG8rczw9bil7bGV0IGwscCxoLGE7c3dpdGNoKHMpe2Nhc2UgMTppPDEyOCYmKHU9aSk7YnJlYWs7Y2FzZSAyOmw9dFtvKzFdLChsJjE5Mik9PT0xMjgmJihhPShpJjMxKTw8NnxsJjYzLGE+MTI3JiYodT1hKSk7YnJlYWs7Y2FzZSAzOmw9dFtvKzFdLHA9dFtvKzJdLChsJjE5Mik9PT0xMjgmJihwJjE5Mik9PT0xMjgmJihhPShpJjE1KTw8MTJ8KGwmNjMpPDw2fHAmNjMsYT4yMDQ3JiYoYTw1NTI5Nnx8YT41NzM0MykmJih1PWEpKTticmVhaztjYXNlIDQ6bD10W28rMV0scD10W28rMl0saD10W28rM10sKGwmMTkyKT09PTEyOCYmKHAmMTkyKT09PTEyOCYmKGgmMTkyKT09PTEyOCYmKGE9KGkmMTUpPDwxOHwobCY2Myk8PDEyfChwJjYzKTw8NnxoJjYzLGE+NjU1MzUmJmE8MTExNDExMiYmKHU9YSkpfX11PT09bnVsbD8odT02NTUzMyxzPTEpOnU+NjU1MzUmJih1LT02NTUzNixyLnB1c2godT4+PjEwJjEwMjN8NTUyOTYpLHU9NTYzMjB8dSYxMDIzKSxyLnB1c2godSksbys9c31yZXR1cm4gUnQocil9dmFyIFk9NDA5NjtmdW5jdGlvbiBSdCh0KXtsZXQgZT10Lmxlbmd0aDtpZihlPD1ZKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0KTtsZXQgbj0iIixyPTA7Zm9yKDtyPGU7KW4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQuc2xpY2UocixyKz1ZKSk7cmV0dXJuIG59ZnVuY3Rpb24gX3QodCxlLG4pe2xldCByPSIiO249TWF0aC5taW4odC5sZW5ndGgsbik7Zm9yKGxldCBvPWU7bzxuOysrbylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbb10mMTI3KTtyZXR1cm4gcn1mdW5jdGlvbiBPdCh0LGUsbil7bGV0IHI9IiI7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IobGV0IG89ZTtvPG47KytvKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUodFtvXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gTHQodCxlLG4pe2xldCByPXQubGVuZ3RoOyghZXx8ZTwwKSYmKGU9MCksKCFufHxuPDB8fG4+cikmJihuPXIpO2xldCBvPSIiO2ZvcihsZXQgaT1lO2k8bjsrK2kpbys9UHRbdFtpXV07cmV0dXJuIG99ZnVuY3Rpb24gTnQodCxlLG4pe2xldCByPXQuc2xpY2UoZSxuKSxvPSIiO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGgtMTtpKz0yKW8rPVN0cmluZy5mcm9tQ2hhckNvZGUocltpXStyW2krMV0qMjU2KTtyZXR1cm4gb31mLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe2xldCBuPXRoaXMubGVuZ3RoO3Q9TWF0aC50cnVuYyh0KSxlPWU9PT12b2lkIDA/bjpNYXRoLnRydW5jKGUpLHQ8MD8odCs9bix0PDAmJih0PTApKTp0Pm4mJih0PW4pLGU8MD8oZSs9bixlPDAmJihlPTApKTplPm4mJihlPW4pLGU8dCYmKGU9dCk7bGV0IHI9dGhpcy5zdWJhcnJheSh0LGUpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YocixmLnByb3RvdHlwZSkscn07ZnVuY3Rpb24gYyh0LGUsbil7aWYodCUxIT09MHx8dDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZih0K2U+bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWYucHJvdG90eXBlLnJlYWRVaW50TEU9Zi5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0LGUsbil7dD10Pj4+MCxlPWU+Pj4wLG58fGModCxlLHRoaXMubGVuZ3RoKTtsZXQgcj10aGlzW3RdLG89MSxpPTA7Zm9yKDsrK2k8ZSYmKG8qPTI1Nik7KXIrPXRoaXNbdCtpXSpvO3JldHVybiByfTtmLnByb3RvdHlwZS5yZWFkVWludEJFPWYucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVuY3Rpb24odCxlLG4pe3Q9dD4+PjAsZT1lPj4+MCxufHxjKHQsZSx0aGlzLmxlbmd0aCk7bGV0IHI9dGhpc1t0Ky0tZV0sbz0xO2Zvcig7ZT4wJiYobyo9MjU2KTspcis9dGhpc1t0Ky0tZV0qbztyZXR1cm4gcn07Zi5wcm90b3R5cGUucmVhZFVpbnQ4PWYucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj4wLGV8fGModCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfTtmLnByb3RvdHlwZS5yZWFkVWludDE2TEU9Zi5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9dD4+PjAsZXx8Yyh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fTtmLnByb3RvdHlwZS5yZWFkVWludDE2QkU9Zi5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9dD4+PjAsZXx8Yyh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDh8dGhpc1t0KzFdfTtmLnByb3RvdHlwZS5yZWFkVWludDMyTEU9Zi5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9dD4+PjAsZXx8Yyh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSt0aGlzW3QrM10qMTY3NzcyMTZ9O2YucHJvdG90eXBlLnJlYWRVaW50MzJCRT1mLnByb3RvdHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10Pj4+MCxlfHxjKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XSoxNjc3NzIxNisodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX07Zi5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NExFPUUoZnVuY3Rpb24odCl7dD10Pj4+MCxVKHQsIm9mZnNldCIpO2xldCBlPXRoaXNbdF0sbj10aGlzW3QrN107KGU9PT12b2lkIDB8fG49PT12b2lkIDApJiZUKHQsdGhpcy5sZW5ndGgtOCk7bGV0IHI9ZSt0aGlzWysrdF0qMioqOCt0aGlzWysrdF0qMioqMTYrdGhpc1srK3RdKjIqKjI0LG89dGhpc1srK3RdK3RoaXNbKyt0XSoyKio4K3RoaXNbKyt0XSoyKioxNituKjIqKjI0O3JldHVybiBCaWdJbnQocikrKEJpZ0ludChvKTw8QmlnSW50KDMyKSl9KTtmLnByb3RvdHlwZS5yZWFkQmlnVUludDY0QkU9RShmdW5jdGlvbih0KXt0PXQ+Pj4wLFUodCwib2Zmc2V0Iik7bGV0IGU9dGhpc1t0XSxuPXRoaXNbdCs3XTsoZT09PXZvaWQgMHx8bj09PXZvaWQgMCkmJlQodCx0aGlzLmxlbmd0aC04KTtsZXQgcj1lKjIqKjI0K3RoaXNbKyt0XSoyKioxNit0aGlzWysrdF0qMioqOCt0aGlzWysrdF0sbz10aGlzWysrdF0qMioqMjQrdGhpc1srK3RdKjIqKjE2K3RoaXNbKyt0XSoyKio4K247cmV0dXJuKEJpZ0ludChyKTw8QmlnSW50KDMyKSkrQmlnSW50KG8pfSk7Zi5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxuKXt0PXQ+Pj4wLGU9ZT4+PjAsbnx8Yyh0LGUsdGhpcy5sZW5ndGgpO2xldCByPXRoaXNbdF0sbz0xLGk9MDtmb3IoOysraTxlJiYobyo9MjU2KTspcis9dGhpc1t0K2ldKm87cmV0dXJuIG8qPTEyOCxyPj1vJiYoci09TWF0aC5wb3coMiw4KmUpKSxyfTtmLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24odCxlLG4pe3Q9dD4+PjAsZT1lPj4+MCxufHxjKHQsZSx0aGlzLmxlbmd0aCk7bGV0IHI9ZSxvPTEsaT10aGlzW3QrLS1yXTtmb3IoO3I+MCYmKG8qPTI1Nik7KWkrPXRoaXNbdCstLXJdKm87cmV0dXJuIG8qPTEyOCxpPj1vJiYoaS09TWF0aC5wb3coMiw4KmUpKSxpfTtmLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj4wLGV8fGModCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdJjEyOD8oMjU1LXRoaXNbdF0rMSkqLTE6dGhpc1t0XX07Zi5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odCxlKXt0PXQ+Pj4wLGV8fGModCwyLHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gbiYzMjc2OD9ufDQyOTQ5MDE3NjA6bn07Zi5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXt0PXQ+Pj4wLGV8fGModCwyLHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW3QrMV18dGhpc1t0XTw8ODtyZXR1cm4gbiYzMjc2OD9ufDQyOTQ5MDE3NjA6bn07Zi5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10Pj4+MCxlfHxjKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fTtmLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj4wLGV8fGModCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdPDwyNHx0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM119O2YucHJvdG90eXBlLnJlYWRCaWdJbnQ2NExFPUUoZnVuY3Rpb24odCl7dD10Pj4+MCxVKHQsIm9mZnNldCIpO2xldCBlPXRoaXNbdF0sbj10aGlzW3QrN107KGU9PT12b2lkIDB8fG49PT12b2lkIDApJiZUKHQsdGhpcy5sZW5ndGgtOCk7bGV0IHI9dGhpc1t0KzRdK3RoaXNbdCs1XSoyKio4K3RoaXNbdCs2XSoyKioxNisobjw8MjQpO3JldHVybihCaWdJbnQocik8PEJpZ0ludCgzMikpK0JpZ0ludChlK3RoaXNbKyt0XSoyKio4K3RoaXNbKyt0XSoyKioxNit0aGlzWysrdF0qMioqMjQpfSk7Zi5wcm90b3R5cGUucmVhZEJpZ0ludDY0QkU9RShmdW5jdGlvbih0KXt0PXQ+Pj4wLFUodCwib2Zmc2V0Iik7bGV0IGU9dGhpc1t0XSxuPXRoaXNbdCs3XTsoZT09PXZvaWQgMHx8bj09PXZvaWQgMCkmJlQodCx0aGlzLmxlbmd0aC04KTtsZXQgcj0oZTw8MjQpK3RoaXNbKyt0XSoyKioxNit0aGlzWysrdF0qMioqOCt0aGlzWysrdF07cmV0dXJuKEJpZ0ludChyKTw8QmlnSW50KDMyKSkrQmlnSW50KHRoaXNbKyt0XSoyKioyNCt0aGlzWysrdF0qMioqMTYrdGhpc1srK3RdKjIqKjgrbil9KTtmLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj4wLGV8fGModCw0LHRoaXMubGVuZ3RoKSxfKHRoaXMsdCwhMCwyMyw0KX07Zi5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10Pj4+MCxlfHxjKHQsNCx0aGlzLmxlbmd0aCksXyh0aGlzLHQsITEsMjMsNCl9O2YucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj4wLGV8fGModCw4LHRoaXMubGVuZ3RoKSxfKHRoaXMsdCwhMCw1Miw4KX07Zi5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9dD4+PjAsZXx8Yyh0LDgsdGhpcy5sZW5ndGgpLF8odGhpcyx0LCExLDUyLDgpfTtmdW5jdGlvbiBnKHQsZSxuLHIsbyxpKXtpZighZi5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5vfHxlPGkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKG4rcj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9Zi5wcm90b3R5cGUud3JpdGVVaW50TEU9Zi5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24odCxlLG4scil7aWYodD0rdCxlPWU+Pj4wLG49bj4+PjAsIXIpe2xldCB1PU1hdGgucG93KDIsOCpuKS0xO2codGhpcyx0LGUsbix1LDApfWxldCBvPTEsaT0wO2Zvcih0aGlzW2VdPXQmMjU1OysraTxuJiYobyo9MjU2KTspdGhpc1tlK2ldPXQvbyYyNTU7cmV0dXJuIGUrbn07Zi5wcm90b3R5cGUud3JpdGVVaW50QkU9Zi5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odCxlLG4scil7aWYodD0rdCxlPWU+Pj4wLG49bj4+PjAsIXIpe2xldCB1PU1hdGgucG93KDIsOCpuKS0xO2codGhpcyx0LGUsbix1LDApfWxldCBvPW4tMSxpPTE7Zm9yKHRoaXNbZStvXT10JjI1NTstLW8+PTAmJihpKj0yNTYpOyl0aGlzW2Urb109dC9pJjI1NTtyZXR1cm4gZStufTtmLnByb3RvdHlwZS53cml0ZVVpbnQ4PWYucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGU9ZT4+PjAsbnx8Zyh0aGlzLHQsZSwxLDI1NSwwKSx0aGlzW2VdPXQmMjU1LGUrMX07Zi5wcm90b3R5cGUud3JpdGVVaW50MTZMRT1mLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlPWU+Pj4wLG58fGcodGhpcyx0LGUsMiw2NTUzNSwwKSx0aGlzW2VdPXQmMjU1LHRoaXNbZSsxXT10Pj4+OCxlKzJ9O2YucHJvdG90eXBlLndyaXRlVWludDE2QkU9Zi5wcm90b3R5cGUud3JpdGVVSW50MTZCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZT1lPj4+MCxufHxnKHRoaXMsdCxlLDIsNjU1MzUsMCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09dCYyNTUsZSsyfTtmLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPWYucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGU9ZT4+PjAsbnx8Zyh0aGlzLHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlKzNdPXQ+Pj4yNCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2VdPXQmMjU1LGUrNH07Zi5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1mLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD0rdCxlPWU+Pj4wLG58fGcodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT10JjI1NSxlKzR9O2Z1bmN0aW9uIFEodCxlLG4scixvKXtydChlLHIsbyx0LG4sNyk7bGV0IGk9TnVtYmVyKGUmQmlnSW50KDQyOTQ5NjcyOTUpKTt0W24rK109aSxpPWk+PjgsdFtuKytdPWksaT1pPj44LHRbbisrXT1pLGk9aT4+OCx0W24rK109aTtsZXQgdT1OdW1iZXIoZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiB0W24rK109dSx1PXU+PjgsdFtuKytdPXUsdT11Pj44LHRbbisrXT11LHU9dT4+OCx0W24rK109dSxufWZ1bmN0aW9uIFoodCxlLG4scixvKXtydChlLHIsbyx0LG4sNyk7bGV0IGk9TnVtYmVyKGUmQmlnSW50KDQyOTQ5NjcyOTUpKTt0W24rN109aSxpPWk+PjgsdFtuKzZdPWksaT1pPj44LHRbbis1XT1pLGk9aT4+OCx0W24rNF09aTtsZXQgdT1OdW1iZXIoZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiB0W24rM109dSx1PXU+PjgsdFtuKzJdPXUsdT11Pj44LHRbbisxXT11LHU9dT4+OCx0W25dPXUsbis4fWYucHJvdG90eXBlLndyaXRlQmlnVUludDY0TEU9RShmdW5jdGlvbih0LGU9MCl7cmV0dXJuIFEodGhpcyx0LGUsQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSk7Zi5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRCRT1FKGZ1bmN0aW9uKHQsZT0wKXtyZXR1cm4gWih0aGlzLHQsZSxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KTtmLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxuLHIpe2lmKHQ9K3QsZT1lPj4+MCwhcil7bGV0IHM9TWF0aC5wb3coMiw4Km4tMSk7Zyh0aGlzLHQsZSxuLHMtMSwtcyl9bGV0IG89MCxpPTEsdT0wO2Zvcih0aGlzW2VdPXQmMjU1OysrbzxuJiYoaSo9MjU2KTspdDwwJiZ1PT09MCYmdGhpc1tlK28tMV0hPT0wJiYodT0xKSx0aGlzW2Urb109TWF0aC50cnVuYyh0L2kpLXUmMjU1O3JldHVybiBlK259O2YucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odCxlLG4scil7aWYodD0rdCxlPWU+Pj4wLCFyKXtsZXQgcz1NYXRoLnBvdygyLDgqbi0xKTtnKHRoaXMsdCxlLG4scy0xLC1zKX1sZXQgbz1uLTEsaT0xLHU9MDtmb3IodGhpc1tlK29dPXQmMjU1Oy0tbz49MCYmKGkqPTI1Nik7KXQ8MCYmdT09PTAmJnRoaXNbZStvKzFdIT09MCYmKHU9MSksdGhpc1tlK29dPU1hdGgudHJ1bmModC9pKS11JjI1NTtyZXR1cm4gZStufTtmLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGU9ZT4+PjAsbnx8Zyh0aGlzLHQsZSwxLDEyNywtMTI4KSx0PDAmJih0PTI1NSt0KzEpLHRoaXNbZV09dCYyNTUsZSsxfTtmLnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGU9ZT4+PjAsbnx8Zyh0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT10JjI1NSx0aGlzW2UrMV09dD4+PjgsZSsyfTtmLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGU9ZT4+PjAsbnx8Zyh0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09dCYyNTUsZSsyfTtmLnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0PSt0LGU9ZT4+PjAsbnx8Zyh0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHRoaXNbZV09dCYyNTUsdGhpc1tlKzFdPXQ+Pj44LHRoaXNbZSsyXT10Pj4+MTYsdGhpc1tlKzNdPXQ+Pj4yNCxlKzR9O2YucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9K3QsZT1lPj4+MCxufHxnKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdDwwJiYodD00Mjk0OTY3Mjk1K3QrMSksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPXQmMjU1LGUrNH07Zi5wcm90b3R5cGUud3JpdGVCaWdJbnQ2NExFPUUoZnVuY3Rpb24odCxlPTApe3JldHVybiBRKHRoaXMsdCxlLC1CaWdJbnQoIjB4ODAwMDAwMDAwMDAwMDAwMCIpLEJpZ0ludCgiMHg3ZmZmZmZmZmZmZmZmZmZmIikpfSk7Zi5wcm90b3R5cGUud3JpdGVCaWdJbnQ2NEJFPUUoZnVuY3Rpb24odCxlPTApe3JldHVybiBaKHRoaXMsdCxlLC1CaWdJbnQoIjB4ODAwMDAwMDAwMDAwMDAwMCIpLEJpZ0ludCgiMHg3ZmZmZmZmZmZmZmZmZmZmIikpfSk7ZnVuY3Rpb24gdHQodCxlLG4scixvLGkpe2lmKG4rcj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYobjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBldCh0LGUsbixyLG8pe3JldHVybiBlPStlLG49bj4+PjAsb3x8dHQodCxlLG4sNCwzNDAyODIzNDY2Mzg1Mjg4NmUyMiwtMzQwMjgyMzQ2NjM4NTI4ODZlMjIpLHoodCxlLG4sciwyMyw0KSxuKzR9Zi5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZXQodGhpcyx0LGUsITAsbil9O2YucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGV0KHRoaXMsdCxlLCExLG4pfTtmdW5jdGlvbiBudCh0LGUsbixyLG8pe3JldHVybiBlPStlLG49bj4+PjAsb3x8dHQodCxlLG4sOCwxNzk3NjkzMTM0ODYyMzE1N2UyOTIsLTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mikseih0LGUsbixyLDUyLDgpLG4rOH1mLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnQodGhpcyx0LGUsITAsbil9O2YucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBudCh0aGlzLHQsZSwhMSxuKX07Zi5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0LGUsbixyKXtpZighZi5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBCdWZmZXIiKTtpZihufHwobj0wKSwhciYmciE9PTAmJihyPXRoaXMubGVuZ3RoKSxlPj10Lmxlbmd0aCYmKGU9dC5sZW5ndGgpLGV8fChlPTApLHI+MCYmcjxuJiYocj1uKSxyPT09bnx8dC5sZW5ndGg9PT0wfHx0aGlzLmxlbmd0aD09PTApcmV0dXJuIDA7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYobjwwfHxuPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO3I+dGhpcy5sZW5ndGgmJihyPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPHItbiYmKHI9dC5sZW5ndGgtZStuKTtsZXQgbz1yLW47cmV0dXJuIHRoaXM9PT10JiZ0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj09ImZ1bmN0aW9uIj90aGlzLmNvcHlXaXRoaW4oZSxuLHIpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKHQsdGhpcy5zdWJhcnJheShuLHIpLGUpLG99O2YucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxlLG4scil7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXtpZih0eXBlb2YgZT09InN0cmluZyI/KHI9ZSxlPTAsbj10aGlzLmxlbmd0aCk6dHlwZW9mIG49PSJzdHJpbmciJiYocj1uLG49dGhpcy5sZW5ndGgpLHIhPT12b2lkIDAmJnR5cGVvZiByIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYodHlwZW9mIHI9PSJzdHJpbmciJiYhZi5pc0VuY29kaW5nKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrcik7aWYodC5sZW5ndGg9PT0xKXtsZXQgaT10LmNoYXJDb2RlQXQoMCk7KHI9PT0idXRmOCImJmk8MTI4fHxyPT09ImxhdGluMSIpJiYodD1pKX19ZWxzZSB0eXBlb2YgdD09Im51bWJlciI/dD10JjI1NTp0eXBlb2YgdD09ImJvb2xlYW4iJiYodD1OdW1iZXIodCkpO2lmKGU8MHx8dGhpcy5sZW5ndGg8ZXx8dGhpcy5sZW5ndGg8bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiT3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobjw9ZSlyZXR1cm4gdGhpcztlPWU+Pj4wLG49bj09PXZvaWQgMD90aGlzLmxlbmd0aDpuPj4+MCx0fHwodD0wKTtsZXQgbztpZih0eXBlb2YgdD09Im51bWJlciIpZm9yKG89ZTtvPG47KytvKXRoaXNbb109dDtlbHNle2xldCBpPWYuaXNCdWZmZXIodCk/dDpmLmZyb20odCxyKSx1PWkubGVuZ3RoO2lmKHU9PT0wKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3Iobz0wO288bi1lOysrbyl0aGlzW28rZV09aVtvJXVdfXJldHVybiB0aGlzfTt2YXIgQT17fTtmdW5jdGlvbiBDKHQsZSxuKXtBW3RdPWNsYXNzIGV4dGVuZHMgbntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIm1lc3NhZ2UiLHt2YWx1ZTpSZWZsZWN0LmFwcGx5KGUsdGhpcyxhcmd1bWVudHMpLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHRoaXMubmFtZT1gJHt0aGlzLm5hbWV9IFske3R9XWAsdGhpcy5zdGFjayxkZWxldGUgdGhpcy5uYW1lfWdldCBjb2RlKCl7cmV0dXJuIHR9c2V0IGNvZGUocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImNvZGUiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpyLHdyaXRhYmxlOiEwfSl9dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLm5hbWV9IFske3R9XTogJHt0aGlzLm1lc3NhZ2V9YH19fUMoIkVSUl9CVUZGRVJfT1VUX09GX0JPVU5EUyIsZnVuY3Rpb24odCl7cmV0dXJuIHQ/YCR7dH0gaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzYDoiQXR0ZW1wdCB0byBhY2Nlc3MgbWVtb3J5IG91dHNpZGUgYnVmZmVyIGJvdW5kcyJ9LFJhbmdlRXJyb3IpO0MoIkVSUl9JTlZBTElEX0FSR19UWVBFIixmdW5jdGlvbih0LGUpe3JldHVybmBUaGUgIiR7dH0iIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJHt0eXBlb2YgZX1gfSxUeXBlRXJyb3IpO0MoIkVSUl9PVVRfT0ZfUkFOR0UiLGZ1bmN0aW9uKHQsZSxuKXtsZXQgcj1gVGhlIHZhbHVlIG9mICIke3R9IiBpcyBvdXQgb2YgcmFuZ2UuYCxvPW47cmV0dXJuIE51bWJlci5pc0ludGVnZXIobikmJk1hdGguYWJzKG4pPjIqKjMyP289RChTdHJpbmcobikpOnR5cGVvZiBuPT0iYmlnaW50IiYmKG89U3RyaW5nKG4pLChuPkJpZ0ludCgyKSoqQmlnSW50KDMyKXx8bjwtKEJpZ0ludCgyKSoqQmlnSW50KDMyKSkpJiYobz1EKG8pKSxvKz0ibiIpLHIrPWAgSXQgbXVzdCBiZSAke2V9LiBSZWNlaXZlZCAke299YCxyfSxSYW5nZUVycm9yKTtmdW5jdGlvbiBEKHQpe2xldCBlPSIiLG49dC5sZW5ndGgscj10WzBdPT09Ii0iPzE6MDtmb3IoO24+PXIrNDtuLT0zKWU9YF8ke3Quc2xpY2Uobi0zLG4pfSR7ZX1gO3JldHVybmAke3Quc2xpY2UoMCxuKX0ke2V9YH1mdW5jdGlvbiBTdCh0LGUsbil7VShlLCJvZmZzZXQiKSwodFtlXT09PXZvaWQgMHx8dFtlK25dPT09dm9pZCAwKSYmVChlLHQubGVuZ3RoLShuKzEpKX1mdW5jdGlvbiBydCh0LGUsbixyLG8saSl7aWYodD5ufHx0PGUpe2xldCB1PXR5cGVvZiBlPT0iYmlnaW50Ij8ibiI6IiIsczt0aHJvdyBpPjM/cz1lPT09MHx8ZT09PUJpZ0ludCgwKT9gPj0gMCR7dX0gYW5kIDwgMiR7dX0gKiogJHsoaSsxKSo4fSR7dX1gOmA+PSAtKDIke3V9ICoqICR7KGkrMSkqOC0xfSR7dX0pIGFuZCA8IDIgKiogJHsoaSsxKSo4LTF9JHt1fWA6cz1gPj0gJHtlfSR7dX0gYW5kIDw9ICR7bn0ke3V9YCxuZXcgQS5FUlJfT1VUX09GX1JBTkdFKCJ2YWx1ZSIscyx0KX1TdChyLG8saSl9ZnVuY3Rpb24gVSh0LGUpe2lmKHR5cGVvZiB0IT0ibnVtYmVyIil0aHJvdyBuZXcgQS5FUlJfSU5WQUxJRF9BUkdfVFlQRShlLCJudW1iZXIiLHQpfWZ1bmN0aW9uIFQodCxlLG4pe3Rocm93IE1hdGguZmxvb3IodCkhPT10PyhVKHQsbiksbmV3IEEuRVJSX09VVF9PRl9SQU5HRShufHwib2Zmc2V0IiwiYW4gaW50ZWdlciIsdCkpOmU8MD9uZXcgQS5FUlJfQlVGRkVSX09VVF9PRl9CT1VORFM6bmV3IEEuRVJSX09VVF9PRl9SQU5HRShufHwib2Zmc2V0IixgPj0gJHtuPzE6MH0gYW5kIDw9ICR7ZX1gLHQpfXZhciB4dD0vW15cdysvLV0vZztmdW5jdGlvbiBNdCh0KXtpZih0PXQuc3BsaXQoIj0iKVswXSx0PXQudHJpbSgpLnJlcGxhY2UoeHQsIiIpLHQubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT09MDspdD10KyI9IjtyZXR1cm4gdH1mdW5jdGlvbiB4KHQsZSl7ZT1lfHxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IG4scj10Lmxlbmd0aCxvPW51bGwsaT1bXTtmb3IobGV0IHU9MDt1PHI7Kyt1KXtpZihuPXQuY2hhckNvZGVBdCh1KSxuPjU1Mjk1JiZuPDU3MzQ0KXtpZighbyl7aWYobj41NjMxOSl7KGUtPTMpPi0xJiZpLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWVsc2UgaWYodSsxPT09cil7KGUtPTMpPi0xJiZpLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfW89bjtjb250aW51ZX1pZihuPDU2MzIwKXsoZS09Myk+LTEmJmkucHVzaCgyMzksMTkxLDE4OSksbz1uO2NvbnRpbnVlfW49KG8tNTUyOTY8PDEwfG4tNTYzMjApKzY1NTM2fWVsc2UgbyYmKGUtPTMpPi0xJiZpLnB1c2goMjM5LDE5MSwxODkpO2lmKG89bnVsbCxuPDEyOCl7aWYoKGUtPTEpPDApYnJlYWs7aS5wdXNoKG4pfWVsc2UgaWYobjwyMDQ4KXtpZigoZS09Mik8MClicmVhaztpLnB1c2gobj4+NnwxOTIsbiY2M3wxMjgpfWVsc2UgaWYobjw2NTUzNil7aWYoKGUtPTMpPDApYnJlYWs7aS5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCxuJjYzfDEyOCl9ZWxzZSBpZihuPDExMTQxMTIpe2lmKChlLT00KTwwKWJyZWFrO2kucHVzaChuPj4xOHwyNDAsbj4+MTImNjN8MTI4LG4+PjYmNjN8MTI4LG4mNjN8MTI4KX1lbHNlIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iil9cmV0dXJuIGl9ZnVuY3Rpb24gJHQodCl7bGV0IGU9W107Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDsrK24pZS5wdXNoKHQuY2hhckNvZGVBdChuKSYyNTUpO3JldHVybiBlfWZ1bmN0aW9uIEN0KHQsZSl7bGV0IG4scixvLGk9W107Zm9yKGxldCB1PTA7dTx0Lmxlbmd0aCYmISgoZS09Mik8MCk7Kyt1KW49dC5jaGFyQ29kZUF0KHUpLHI9bj4+OCxvPW4lMjU2LGkucHVzaChvLHIpO3JldHVybiBpfWZ1bmN0aW9uIG90KHQpe3JldHVybiBhdChNdCh0KSl9ZnVuY3Rpb24gTyh0LGUsbixyKXtsZXQgbztmb3Iobz0wO288ciYmIShvK24+PWUubGVuZ3RofHxvPj10Lmxlbmd0aCk7KytvKWVbbytuXT10W29dO3JldHVybiBvfWZ1bmN0aW9uIGIodCxlKXtyZXR1cm4gdCBpbnN0YW5jZW9mIGV8fHQhPW51bGwmJnQuY29uc3RydWN0b3IhPW51bGwmJnQuY29uc3RydWN0b3IubmFtZSE9bnVsbCYmdC5jb25zdHJ1Y3Rvci5uYW1lPT09ZS5uYW1lfWZ1bmN0aW9uIFAodCl7cmV0dXJuIHQhPT10fXZhciBQdD0oZnVuY3Rpb24oKXtsZXQgdD0iMDEyMzQ1Njc4OWFiY2RlZiIsZT1BcnJheS5mcm9tKHtsZW5ndGg6MjU2fSk7Zm9yKGxldCBuPTA7bjwxNjsrK24pe2xldCByPW4qMTY7Zm9yKGxldCBvPTA7bzwxNjsrK28pZVtyK29dPXRbbl0rdFtvXX1yZXR1cm4gZX0pKCk7ZnVuY3Rpb24gRSh0KXtyZXR1cm4gdHlwZW9mIEJpZ0ludD4idSI/a3Q6dH1mdW5jdGlvbiBrdCgpe3Rocm93IG5ldyBFcnJvcigiQmlnSW50IG5vdCBzdXBwb3J0ZWQiKX12YXIgRnQ9Y2xhc3MgZXh0ZW5kcyBCbG9ie19fdW5lbnZfXz0hMDtzaXplPTA7dHlwZT0iIjtuYW1lPSIiO2xhc3RNb2RpZmllZD0wO2NvbnN0cnVjdG9yKC4uLnQpe3Rocm93IHN1cGVyKC4uLnQpLG5ldyBFcnJvcigiW3VuZW52XSBidWZmZXIuRmlsZSBpcyBub3QgaW1wbGVtZW50ZWQiKX1hcnJheUJ1ZmZlcigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9c2xpY2UoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfXRleHQoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfXN0cmVhbSgpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9Ynl0ZXMoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX0sanQ9Z2xvYmFsVGhpcy5CdWZmZXJ8fGYsWXQ9Z2xvYmFsVGhpcy5CbG9iLER0PXYoImJ1ZmZlci5yZXNvbHZlT2JqZWN0VVJMIiksenQ9digiYnVmZmVyLnRyYW5zY29kZSIpLEd0PXYoImJ1ZmZlci5pc1V0ZjgiKSxWdD12KCJidWZmZXIuaXNBc2NpaSIpLFh0PWdsb2JhbFRoaXMuYnRvYS5iaW5kKGdsb2JhbFRoaXMpLHF0PWdsb2JhbFRoaXMuYXRvYi5iaW5kKGdsb2JhbFRoaXMpLGl0PTAsSHQ9e01BWF9MRU5HVEg6VixNQVhfU1RSSU5HX0xFTkdUSDppdH0sWnQ9e0J1ZmZlcjpqdCxTbG93QnVmZmVyOm10LGtNYXhMZW5ndGg6VixJTlNQRUNUX01BWF9CWVRFUzpHLEJsb2I6WXQscmVzb2x2ZU9iamVjdFVSTDpEdCx0cmFuc2NvZGU6enQsYnRvYTpYdCxhdG9iOnF0LGtTdHJpbmdNYXhMZW5ndGg6aXQsY29uc3RhbnRzOkh0LGlzVXRmODpHdCxpc0FzY2lpOlZ0LEZpbGU6RnR9O2V4cG9ydHtZdCBhcyBCbG9iLGp0IGFzIEJ1ZmZlcixGdCBhcyBGaWxlLEcgYXMgSU5TUEVDVF9NQVhfQllURVMsbXQgYXMgU2xvd0J1ZmZlcixxdCBhcyBhdG9iLFh0IGFzIGJ0b2EsSHQgYXMgY29uc3RhbnRzLFp0IGFzIGRlZmF1bHQsVnQgYXMgaXNBc2NpaSxHdCBhcyBpc1V0ZjgsViBhcyBrTWF4TGVuZ3RoLGl0IGFzIGtTdHJpbmdNYXhMZW5ndGgsRHQgYXMgcmVzb2x2ZU9iamVjdFVSTCx6dCBhcyB0cmFuc2NvZGV9OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKdW5lbnYvZGlzdC9ydW50aW1lL25vZGUvaW50ZXJuYWwvYnVmZmVyL2llZWU3NTQubWpzOgogICgqISBpZWVlNzU0LiBCU0QtMy1DbGF1c2UgTGljZW5zZS4gRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnL29wZW5zb3VyY2U+ICopCgp1bmVudi9kaXN0L3J1bnRpbWUvbm9kZS9pbnRlcm5hbC9idWZmZXIvYnVmZmVyLm1qczoKICAoKiEKICAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogICoKICAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+CiAgKiBAbGljZW5zZSAgTUlUCiAgKikKKi8K"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@%5E5.2.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.960Z","timestamp":1785138633960,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /bn.js@%5E5.2.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/signing-key@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /bn.js@5.2.5/es2022/bn.mjs\r\nx-typescript-types: https://esm.sh/@types/bn.js@~5.2.0/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce4c48569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":125,"size_decoded":607,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"51f6e80040678d831e41cfd0f2c8e0b2","sha1":"4dfd21b17c14182c251154c10435eebc5785d5ed","sha256":"363c034b3fa84d93281ad4d2fd0b91f352b8ca999f37d9eddc795a99095e1146","sha512":"f410ca2b3c4bff4b51b6bdfbdc422b8e4d0414e8de4db40f8f41e49a886a4602969c146db7025cd3c5fd8a359d580dc18d9ca2db59b60af4024553fb7ddb4314","ssdeep":"","tlshash":"1ab0921f02678d091133cfe4222c803dd3a2a648a4d4a4ced1da2b61e380020e5319fb","first_seen":"2026-07-27T04:58:21.54313Z","last_seen":"2026-07-27T07:51:47.20281Z","times_seen":3,"resource_available":true,"data":"LyogZXNtLnNoIC0gYm4uanNANS4yLjUgKi8KZXhwb3J0ICogZnJvbSAiL2JuLmpzQDUuMi41L2VzMjAyMi9ibi5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL2JuLmpzQDUuMi41L2VzMjAyMi9ibi5tanMiOwo="}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hash.js@1.1.7/es2022/hash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.961Z","timestamp":1785138633961,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /hash.js@1.1.7/es2022/hash.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/signing-key@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:10:27 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16518\r\ncf-ray: a21a0dce4c49569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":18107,"size_decoded":8355,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (17556)","md5":"5f53286ed369b3fa5cec36e2b6269c0a","sha1":"78110c7577f3c9483424ac4d3cbab006c00e61f2","sha256":"8679325050e89b44d1944ccd9d3286babf4193e81d2b9c68917c0bf25d235e58","sha512":"21f181e83acea249b4500f81d67a15fe3899b57a6b6bed975a7e195ae87e9cefa40ca49a3218188c030ed7f5bf2bd2e914367f5a607f935672a7b26a5dbfd664","ssdeep":"384:WbwIgUBdRlX1kIvjfT7aywS6pPutjQVfsby/U:IvbiU697VR8","tlshash":"9682b7c033e0a5d0536605e109af4c4a613b79a8640cdc6df7eaf4db28a5cee4376a76","first_seen":"2025-07-08T23:56:54.57968Z","last_seen":"2026-07-27T07:51:47.257888Z","times_seen":27,"resource_available":true,"data":"LyogZXNtLnNoIC0gaGFzaC5qc0AxLjEuNyAqLwppbXBvcnQqYXMgX18wJCBmcm9tIi9taW5pbWFsaXN0aWMtYXNzZXJ0QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjt2YXIgX18xJD0oKCk9Pnt2YXIgYT0oZSx0KT0+e3QmJihlLnN1cGVyXz10LGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX07cmV0dXJue2RlZmF1bHQ6YX07fSkoKTt2YXIgcmVxdWlyZT1uPT57Y29uc3QgZT1tPT50eXBlb2YgbS5kZWZhdWx0PCJ1Ij9tLmRlZmF1bHQ6bSxjPW09Pk9iamVjdC5hc3NpZ24oe19fZXNNb2R1bGU6dHJ1ZX0sbSk7c3dpdGNoKG4pe2Nhc2UibWluaW1hbGlzdGljLWFzc2VydCI6cmV0dXJuIGUoX18wJCk7Y2FzZSJucG06aW5oZXJpdHMiOnJldHVybiBlKF9fMSQpO2RlZmF1bHQ6Y29uc29sZS5lcnJvcignbW9kdWxlICInK24rJyIgbm90IGZvdW5kJyk7cmV0dXJuIG51bGw7fX07CnZhciBycj1PYmplY3QuY3JlYXRlO3ZhciBnMD1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGVyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIHRyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBhcj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsaHI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgRT0ocj0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkocix7Z2V0OihlLGEpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbYV19KTpyKShmdW5jdGlvbihyKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrcisnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgcD0ocixlKT0+KCk9PihlfHxyKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciBpcj0ocixlLGEsaCk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgdCBvZiB0cihlKSkhaHIuY2FsbChyLHQpJiZ0IT09YSYmZzAocix0LHtnZXQ6KCk9PmVbdF0sZW51bWVyYWJsZTohKGg9ZXIoZSx0KSl8fGguZW51bWVyYWJsZX0pO3JldHVybiByfTt2YXIgbnI9KHIsZSxhKT0+KGE9ciE9bnVsbD9ycihhcihyKSk6e30saXIoZXx8IXJ8fCFyLl9fZXNNb2R1bGU/ZzAoYSwiZGVmYXVsdCIse3ZhbHVlOnIsZW51bWVyYWJsZTohMH0pOmEscikpO3ZhciBnPXAobz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgc3I9RSgibWluaW1hbGlzdGljLWFzc2VydCIpLGZyPUUoIm5wbTppbmhlcml0cyIpO28uaW5oZXJpdHM9ZnI7ZnVuY3Rpb24gY3IocixlKXtyZXR1cm4oci5jaGFyQ29kZUF0KGUpJjY0NTEyKSE9PTU1Mjk2fHxlPDB8fGUrMT49ci5sZW5ndGg/ITE6KHIuY2hhckNvZGVBdChlKzEpJjY0NTEyKT09PTU2MzIwfWZ1bmN0aW9uIHVyKHIsZSl7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gci5zbGljZSgpO2lmKCFyKXJldHVybltdO3ZhciBhPVtdO2lmKHR5cGVvZiByPT0ic3RyaW5nIilpZihlKXtpZihlPT09ImhleCIpZm9yKHI9ci5yZXBsYWNlKC9bXmEtejAtOV0rL2lnLCIiKSxyLmxlbmd0aCUyIT09MCYmKHI9IjAiK3IpLHQ9MDt0PHIubGVuZ3RoO3QrPTIpYS5wdXNoKHBhcnNlSW50KHJbdF0rclt0KzFdLDE2KSl9ZWxzZSBmb3IodmFyIGg9MCx0PTA7dDxyLmxlbmd0aDt0Kyspe3ZhciBpPXIuY2hhckNvZGVBdCh0KTtpPDEyOD9hW2grK109aTppPDIwNDg/KGFbaCsrXT1pPj42fDE5MixhW2grK109aSY2M3wxMjgpOmNyKHIsdCk/KGk9NjU1MzYrKChpJjEwMjMpPDwxMCkrKHIuY2hhckNvZGVBdCgrK3QpJjEwMjMpLGFbaCsrXT1pPj4xOHwyNDAsYVtoKytdPWk+PjEyJjYzfDEyOCxhW2grK109aT4+NiY2M3wxMjgsYVtoKytdPWkmNjN8MTI4KTooYVtoKytdPWk+PjEyfDIyNCxhW2grK109aT4+NiY2M3wxMjgsYVtoKytdPWkmNjN8MTI4KX1lbHNlIGZvcih0PTA7dDxyLmxlbmd0aDt0KyspYVt0XT1yW3RdfDA7cmV0dXJuIGF9by50b0FycmF5PXVyO2Z1bmN0aW9uIHhyKHIpe2Zvcih2YXIgZT0iIixhPTA7YTxyLmxlbmd0aDthKyspZSs9bTAoclthXS50b1N0cmluZygxNikpO3JldHVybiBlfW8udG9IZXg9eHI7ZnVuY3Rpb24gUzAocil7dmFyIGU9cj4+PjI0fHI+Pj44JjY1MjgwfHI8PDgmMTY3MTE2ODB8KHImMjU1KTw8MjQ7cmV0dXJuIGU+Pj4wfW8uaHRvbmw9UzA7ZnVuY3Rpb24gb3IocixlKXtmb3IodmFyIGE9IiIsaD0wO2g8ci5sZW5ndGg7aCsrKXt2YXIgdD1yW2hdO2U9PT0ibGl0dGxlIiYmKHQ9UzAodCkpLGErPXEwKHQudG9TdHJpbmcoMTYpKX1yZXR1cm4gYX1vLnRvSGV4MzI9b3I7ZnVuY3Rpb24gbTAocil7cmV0dXJuIHIubGVuZ3RoPT09MT8iMCIrcjpyfW8uemVybzI9bTA7ZnVuY3Rpb24gcTAocil7cmV0dXJuIHIubGVuZ3RoPT09Nz8iMCIrcjpyLmxlbmd0aD09PTY/IjAwIityOnIubGVuZ3RoPT09NT8iMDAwIityOnIubGVuZ3RoPT09ND8iMDAwMCIrcjpyLmxlbmd0aD09PTM/IjAwMDAwIityOnIubGVuZ3RoPT09Mj8iMDAwMDAwIityOnIubGVuZ3RoPT09MT8iMDAwMDAwMCIrcjpyfW8uemVybzg9cTA7ZnVuY3Rpb24gdnIocixlLGEsaCl7dmFyIHQ9YS1lO3NyKHQlND09PTApO2Zvcih2YXIgaT1uZXcgQXJyYXkodC80KSxuPTAscz1lO248aS5sZW5ndGg7bisrLHMrPTQpe3ZhciBjO2g9PT0iYmlnIj9jPXJbc108PDI0fHJbcysxXTw8MTZ8cltzKzJdPDw4fHJbcyszXTpjPXJbcyszXTw8MjR8cltzKzJdPDwxNnxyW3MrMV08PDh8cltzXSxpW25dPWM+Pj4wfXJldHVybiBpfW8uam9pbjMyPXZyO2Z1bmN0aW9uIGRyKHIsZSl7Zm9yKHZhciBhPW5ldyBBcnJheShyLmxlbmd0aCo0KSxoPTAsdD0wO2g8ci5sZW5ndGg7aCsrLHQrPTQpe3ZhciBpPXJbaF07ZT09PSJiaWciPyhhW3RdPWk+Pj4yNCxhW3QrMV09aT4+PjE2JjI1NSxhW3QrMl09aT4+PjgmMjU1LGFbdCszXT1pJjI1NSk6KGFbdCszXT1pPj4+MjQsYVt0KzJdPWk+Pj4xNiYyNTUsYVt0KzFdPWk+Pj44JjI1NSxhW3RdPWkmMjU1KX1yZXR1cm4gYX1vLnNwbGl0MzI9ZHI7ZnVuY3Rpb24gYnIocixlKXtyZXR1cm4gcj4+PmV8cjw8MzItZX1vLnJvdHIzMj1icjtmdW5jdGlvbiBscihyLGUpe3JldHVybiByPDxlfHI+Pj4zMi1lfW8ucm90bDMyPWxyO2Z1bmN0aW9uIF9yKHIsZSl7cmV0dXJuIHIrZT4+PjB9by5zdW0zMj1fcjtmdW5jdGlvbiBwcihyLGUsYSl7cmV0dXJuIHIrZSthPj4+MH1vLnN1bTMyXzM9cHI7ZnVuY3Rpb24gZ3IocixlLGEsaCl7cmV0dXJuIHIrZSthK2g+Pj4wfW8uc3VtMzJfND1ncjtmdW5jdGlvbiBTcihyLGUsYSxoLHQpe3JldHVybiByK2UrYStoK3Q+Pj4wfW8uc3VtMzJfNT1TcjtmdW5jdGlvbiBtcihyLGUsYSxoKXt2YXIgdD1yW2VdLGk9cltlKzFdLG49aCtpPj4+MCxzPShuPGg/MTowKSthK3Q7cltlXT1zPj4+MCxyW2UrMV09bn1vLnN1bTY0PW1yO2Z1bmN0aW9uIHFyKHIsZSxhLGgpe3ZhciB0PWUraD4+PjAsaT0odDxlPzE6MCkrcithO3JldHVybiBpPj4+MH1vLnN1bTY0X2hpPXFyO2Z1bmN0aW9uIEhyKHIsZSxhLGgpe3ZhciB0PWUraDtyZXR1cm4gdD4+PjB9by5zdW02NF9sbz1IcjtmdW5jdGlvbiBBcihyLGUsYSxoLHQsaSxuLHMpe3ZhciBjPTAsZj1lO2Y9ZitoPj4+MCxjKz1mPGU/MTowLGY9ZitpPj4+MCxjKz1mPGk/MTowLGY9ZitzPj4+MCxjKz1mPHM/MTowO3ZhciB4PXIrYSt0K24rYztyZXR1cm4geD4+PjB9by5zdW02NF80X2hpPUFyO2Z1bmN0aW9uIHpyKHIsZSxhLGgsdCxpLG4scyl7dmFyIGM9ZStoK2krcztyZXR1cm4gYz4+PjB9by5zdW02NF80X2xvPXpyO2Z1bmN0aW9uIEJyKHIsZSxhLGgsdCxpLG4scyxjLGYpe3ZhciB4PTAsdT1lO3U9dStoPj4+MCx4Kz11PGU/MTowLHU9dStpPj4+MCx4Kz11PGk/MTowLHU9dStzPj4+MCx4Kz11PHM/MTowLHU9dStmPj4+MCx4Kz11PGY/MTowO3ZhciB2PXIrYSt0K24rYyt4O3JldHVybiB2Pj4+MH1vLnN1bTY0XzVfaGk9QnI7ZnVuY3Rpb24geXIocixlLGEsaCx0LGksbixzLGMsZil7dmFyIHg9ZStoK2krcytmO3JldHVybiB4Pj4+MH1vLnN1bTY0XzVfbG89eXI7ZnVuY3Rpb24gQ3IocixlLGEpe3ZhciBoPWU8PDMyLWF8cj4+PmE7cmV0dXJuIGg+Pj4wfW8ucm90cjY0X2hpPUNyO2Z1bmN0aW9uIExyKHIsZSxhKXt2YXIgaD1yPDwzMi1hfGU+Pj5hO3JldHVybiBoPj4+MH1vLnJvdHI2NF9sbz1McjtmdW5jdGlvbiBXcihyLGUsYSl7cmV0dXJuIHI+Pj5hfW8uc2hyNjRfaGk9V3I7ZnVuY3Rpb24ga3IocixlLGEpe3ZhciBoPXI8PDMyLWF8ZT4+PmE7cmV0dXJuIGg+Pj4wfW8uc2hyNjRfbG89a3J9KTt2YXIgSz1wKEEwPT57InVzZSBzdHJpY3QiO3ZhciBIMD1nKCksRHI9RSgibWluaW1hbGlzdGljLWFzc2VydCIpO2Z1bmN0aW9uIHcoKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tTaXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlzLmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfUEwLkJsb2NrSGFzaD13O3cucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlLGEpe2lmKGU9SDAudG9BcnJheShlLGEpLHRoaXMucGVuZGluZz90aGlzLnBlbmRpbmc9dGhpcy5wZW5kaW5nLmNvbmNhdChlKTp0aGlzLnBlbmRpbmc9ZSx0aGlzLnBlbmRpbmdUb3RhbCs9ZS5sZW5ndGgsdGhpcy5wZW5kaW5nLmxlbmd0aD49dGhpcy5fZGVsdGE4KXtlPXRoaXMucGVuZGluZzt2YXIgaD1lLmxlbmd0aCV0aGlzLl9kZWx0YTg7dGhpcy5wZW5kaW5nPWUuc2xpY2UoZS5sZW5ndGgtaCxlLmxlbmd0aCksdGhpcy5wZW5kaW5nLmxlbmd0aD09PTAmJih0aGlzLnBlbmRpbmc9bnVsbCksZT1IMC5qb2luMzIoZSwwLGUubGVuZ3RoLWgsdGhpcy5lbmRpYW4pO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCs9dGhpcy5fZGVsdGEzMil0aGlzLl91cGRhdGUoZSx0LHQrdGhpcy5fZGVsdGEzMil9cmV0dXJuIHRoaXN9O3cucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy51cGRhdGUodGhpcy5fcGFkKCkpLERyKHRoaXMucGVuZGluZz09PW51bGwpLHRoaXMuX2RpZ2VzdChlKX07dy5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMucGVuZGluZ1RvdGFsLGE9dGhpcy5fZGVsdGE4LGg9YS0oZSt0aGlzLnBhZExlbmd0aCklYSx0PW5ldyBBcnJheShoK3RoaXMucGFkTGVuZ3RoKTt0WzBdPTEyODtmb3IodmFyIGk9MTtpPGg7aSsrKXRbaV09MDtpZihlPDw9Myx0aGlzLmVuZGlhbj09PSJiaWciKXtmb3IodmFyIG49ODtuPHRoaXMucGFkTGVuZ3RoO24rKyl0W2krK109MDt0W2krK109MCx0W2krK109MCx0W2krK109MCx0W2krK109MCx0W2krK109ZT4+PjI0JjI1NSx0W2krK109ZT4+PjE2JjI1NSx0W2krK109ZT4+PjgmMjU1LHRbaSsrXT1lJjI1NX1lbHNlIGZvcih0W2krK109ZSYyNTUsdFtpKytdPWU+Pj44JjI1NSx0W2krK109ZT4+PjE2JjI1NSx0W2krK109ZT4+PjI0JjI1NSx0W2krK109MCx0W2krK109MCx0W2krK109MCx0W2krK109MCxuPTg7bjx0aGlzLnBhZExlbmd0aDtuKyspdFtpKytdPTA7cmV0dXJuIHR9fSk7dmFyIGEwPXAoQz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgRnI9ZygpLHE9RnIucm90cjMyO2Z1bmN0aW9uIEVyKHIsZSxhLGgpe2lmKHI9PT0wKXJldHVybiB6MChlLGEsaCk7aWYocj09PTF8fHI9PT0zKXJldHVybiB5MChlLGEsaCk7aWYocj09PTIpcmV0dXJuIEIwKGUsYSxoKX1DLmZ0XzE9RXI7ZnVuY3Rpb24gejAocixlLGEpe3JldHVybiByJmVefnImYX1DLmNoMzI9ejA7ZnVuY3Rpb24gQjAocixlLGEpe3JldHVybiByJmVeciZhXmUmYX1DLm1hajMyPUIwO2Z1bmN0aW9uIHkwKHIsZSxhKXtyZXR1cm4gcl5lXmF9Qy5wMzI9eTA7ZnVuY3Rpb24gS3Iocil7cmV0dXJuIHEociwyKV5xKHIsMTMpXnEociwyMil9Qy5zMF8yNTY9S3I7ZnVuY3Rpb24gSXIocil7cmV0dXJuIHEociw2KV5xKHIsMTEpXnEociwyNSl9Qy5zMV8yNTY9SXI7ZnVuY3Rpb24gUHIocil7cmV0dXJuIHEociw3KV5xKHIsMTgpXnI+Pj4zfUMuZzBfMjU2PVByO2Z1bmN0aW9uIE1yKHIpe3JldHVybiBxKHIsMTcpXnEociwxOSlecj4+PjEwfUMuZzFfMjU2PU1yfSk7dmFyIFcwPXAoKEZlLEwwKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgST1nKCksUnI9SygpLEdyPWEwKCksaDA9SS5yb3RsMzIsWT1JLnN1bTMyLEpyPUkuc3VtMzJfNSxOcj1Hci5mdF8xLEMwPVJyLkJsb2NrSGFzaCxPcj1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLDI0MDA5NTk3MDgsMzM5NTQ2OTc4Ml07ZnVuY3Rpb24gSCgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEgpKXJldHVybiBuZXcgSDtDMC5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuVz1uZXcgQXJyYXkoODApfUkuaW5oZXJpdHMoSCxDMCk7TDAuZXhwb3J0cz1IO0guYmxvY2tTaXplPTUxMjtILm91dFNpemU9MTYwO0guaG1hY1N0cmVuZ3RoPTgwO0gucGFkTGVuZ3RoPTY0O0gucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSxhKXtmb3IodmFyIGg9dGhpcy5XLHQ9MDt0PDE2O3QrKyloW3RdPWVbYSt0XTtmb3IoO3Q8aC5sZW5ndGg7dCsrKWhbdF09aDAoaFt0LTNdXmhbdC04XV5oW3QtMTRdXmhbdC0xNl0sMSk7dmFyIGk9dGhpcy5oWzBdLG49dGhpcy5oWzFdLHM9dGhpcy5oWzJdLGM9dGhpcy5oWzNdLGY9dGhpcy5oWzRdO2Zvcih0PTA7dDxoLmxlbmd0aDt0Kyspe3ZhciB4PX5+KHQvMjApLHU9SnIoaDAoaSw1KSxOcih4LG4scyxjKSxmLGhbdF0sT3JbeF0pO2Y9YyxjPXMscz1oMChuLDMwKSxuPWksaT11fXRoaXMuaFswXT1ZKHRoaXMuaFswXSxpKSx0aGlzLmhbMV09WSh0aGlzLmhbMV0sbiksdGhpcy5oWzJdPVkodGhpcy5oWzJdLHMpLHRoaXMuaFszXT1ZKHRoaXMuaFszXSxjKSx0aGlzLmhbNF09WSh0aGlzLmhbNF0sZil9O0gucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT0iaGV4Ij9JLnRvSGV4MzIodGhpcy5oLCJiaWciKTpJLnNwbGl0MzIodGhpcy5oLCJiaWciKX19KTt2YXIgaTA9cCgoRWUsRDApPT57InVzZSBzdHJpY3QiO3ZhciBQPWcoKSxRcj1LKCksTT1hMCgpLFVyPUUoIm1pbmltYWxpc3RpYy1hc3NlcnQiKSxTPVAuc3VtMzIsVnI9UC5zdW0zMl80LFhyPVAuc3VtMzJfNSxZcj1NLmNoMzIsWnI9TS5tYWozMiwkcj1NLnMwXzI1Nixqcj1NLnMxXzI1Nix3cj1NLmcwXzI1NixUcj1NLmcxXzI1NixrMD1Rci5CbG9ja0hhc2gscmU9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07ZnVuY3Rpb24gQSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEEpKXJldHVybiBuZXcgQTtrMC5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz1yZSx0aGlzLlc9bmV3IEFycmF5KDY0KX1QLmluaGVyaXRzKEEsazApO0QwLmV4cG9ydHM9QTtBLmJsb2NrU2l6ZT01MTI7QS5vdXRTaXplPTI1NjtBLmhtYWNTdHJlbmd0aD0xOTI7QS5wYWRMZW5ndGg9NjQ7QS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLGEpe2Zvcih2YXIgaD10aGlzLlcsdD0wO3Q8MTY7dCsrKWhbdF09ZVthK3RdO2Zvcig7dDxoLmxlbmd0aDt0KyspaFt0XT1WcihUcihoW3QtMl0pLGhbdC03XSx3cihoW3QtMTVdKSxoW3QtMTZdKTt2YXIgaT10aGlzLmhbMF0sbj10aGlzLmhbMV0scz10aGlzLmhbMl0sYz10aGlzLmhbM10sZj10aGlzLmhbNF0seD10aGlzLmhbNV0sdT10aGlzLmhbNl0sdj10aGlzLmhbN107Zm9yKFVyKHRoaXMuay5sZW5ndGg9PT1oLmxlbmd0aCksdD0wO3Q8aC5sZW5ndGg7dCsrKXt2YXIgZD1Ycih2LGpyKGYpLFlyKGYseCx1KSx0aGlzLmtbdF0saFt0XSksXz1TKCRyKGkpLFpyKGksbixzKSk7dj11LHU9eCx4PWYsZj1TKGMsZCksYz1zLHM9bixuPWksaT1TKGQsXyl9dGhpcy5oWzBdPVModGhpcy5oWzBdLGkpLHRoaXMuaFsxXT1TKHRoaXMuaFsxXSxuKSx0aGlzLmhbMl09Uyh0aGlzLmhbMl0scyksdGhpcy5oWzNdPVModGhpcy5oWzNdLGMpLHRoaXMuaFs0XT1TKHRoaXMuaFs0XSxmKSx0aGlzLmhbNV09Uyh0aGlzLmhbNV0seCksdGhpcy5oWzZdPVModGhpcy5oWzZdLHUpLHRoaXMuaFs3XT1TKHRoaXMuaFs3XSx2KX07QS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihlKXtyZXR1cm4gZT09PSJoZXgiP1AudG9IZXgzMih0aGlzLmgsImJpZyIpOlAuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0pO3ZhciBLMD1wKChLZSxFMCk9PnsidXNlIHN0cmljdCI7dmFyIG4wPWcoKSxGMD1pMCgpO2Z1bmN0aW9uIEwoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBMKSlyZXR1cm4gbmV3IEw7RjAuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdfW4wLmluaGVyaXRzKEwsRjApO0UwLmV4cG9ydHM9TDtMLmJsb2NrU2l6ZT01MTI7TC5vdXRTaXplPTIyNDtMLmhtYWNTdHJlbmd0aD0xOTI7TC5wYWRMZW5ndGg9NjQ7TC5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihlKXtyZXR1cm4gZT09PSJoZXgiP24wLnRvSGV4MzIodGhpcy5oLnNsaWNlKDAsNyksImJpZyIpOm4wLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsNyksImJpZyIpfX0pO3ZhciBjMD1wKChJZSxSMCk9PnsidXNlIHN0cmljdCI7dmFyIGw9ZygpLGVlPUsoKSx0ZT1FKCJtaW5pbWFsaXN0aWMtYXNzZXJ0Iiksej1sLnJvdHI2NF9oaSxCPWwucm90cjY0X2xvLEkwPWwuc2hyNjRfaGksUDA9bC5zaHI2NF9sbyxrPWwuc3VtNjQsczA9bC5zdW02NF9oaSxmMD1sLnN1bTY0X2xvLGFlPWwuc3VtNjRfNF9oaSxoZT1sLnN1bTY0XzRfbG8saWU9bC5zdW02NF81X2hpLG5lPWwuc3VtNjRfNV9sbyxNMD1lZS5CbG9ja0hhc2gsc2U9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiBtKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgbSkpcmV0dXJuIG5ldyBtO00wLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMzMjA5XSx0aGlzLms9c2UsdGhpcy5XPW5ldyBBcnJheSgxNjApfWwuaW5oZXJpdHMobSxNMCk7UjAuZXhwb3J0cz1tO20uYmxvY2tTaXplPTEwMjQ7bS5vdXRTaXplPTUxMjttLmhtYWNTdHJlbmd0aD0xOTI7bS5wYWRMZW5ndGg9MTI4O20ucHJvdG90eXBlLl9wcmVwYXJlQmxvY2s9ZnVuY3Rpb24oZSxhKXtmb3IodmFyIGg9dGhpcy5XLHQ9MDt0PDMyO3QrKyloW3RdPWVbYSt0XTtmb3IoO3Q8aC5sZW5ndGg7dCs9Mil7dmFyIGk9cGUoaFt0LTRdLGhbdC0zXSksbj1nZShoW3QtNF0saFt0LTNdKSxzPWhbdC0xNF0sYz1oW3QtMTNdLGY9bGUoaFt0LTMwXSxoW3QtMjldKSx4PV9lKGhbdC0zMF0saFt0LTI5XSksdT1oW3QtMzJdLHY9aFt0LTMxXTtoW3RdPWFlKGksbixzLGMsZix4LHUsdiksaFt0KzFdPWhlKGksbixzLGMsZix4LHUsdil9fTttLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUsYSl7dGhpcy5fcHJlcGFyZUJsb2NrKGUsYSk7dmFyIGg9dGhpcy5XLHQ9dGhpcy5oWzBdLGk9dGhpcy5oWzFdLG49dGhpcy5oWzJdLHM9dGhpcy5oWzNdLGM9dGhpcy5oWzRdLGY9dGhpcy5oWzVdLHg9dGhpcy5oWzZdLHU9dGhpcy5oWzddLHY9dGhpcy5oWzhdLGQ9dGhpcy5oWzldLF89dGhpcy5oWzEwXSxKPXRoaXMuaFsxMV0sTj10aGlzLmhbMTJdLE89dGhpcy5oWzEzXSxlMD10aGlzLmhbMTRdLHQwPXRoaXMuaFsxNV07dGUodGhpcy5rLmxlbmd0aD09PWgubGVuZ3RoKTtmb3IodmFyIEY9MDtGPGgubGVuZ3RoO0YrPTIpe3ZhciBRPWUwLFU9dDAsVj1kZSh2LGQpLFg9YmUodixkKSx4MD1mZSh2LGQsXyxKLE4sTyksbzA9Y2UodixkLF8sSixOLE8pLHYwPXRoaXMua1tGXSxkMD10aGlzLmtbRisxXSxiMD1oW0ZdLGwwPWhbRisxXSwkPWllKFEsVSxWLFgseDAsbzAsdjAsZDAsYjAsbDApLGo9bmUoUSxVLFYsWCx4MCxvMCx2MCxkMCxiMCxsMCk7UT1vZSh0LGkpLFU9dmUodCxpKSxWPXVlKHQsaSxuLHMsYyxmKSxYPXhlKHQsaSxuLHMsYyxmKTt2YXIgXzA9czAoUSxVLFYsWCkscDA9ZjAoUSxVLFYsWCk7ZTA9Tix0MD1PLE49XyxPPUosXz12LEo9ZCx2PXMwKHgsdSwkLGopLGQ9ZjAodSx1LCQsaikseD1jLHU9ZixjPW4sZj1zLG49dCxzPWksdD1zMCgkLGosXzAscDApLGk9ZjAoJCxqLF8wLHAwKX1rKHRoaXMuaCwwLHQsaSksayh0aGlzLmgsMixuLHMpLGsodGhpcy5oLDQsYyxmKSxrKHRoaXMuaCw2LHgsdSksayh0aGlzLmgsOCx2LGQpLGsodGhpcy5oLDEwLF8sSiksayh0aGlzLmgsMTIsTixPKSxrKHRoaXMuaCwxNCxlMCx0MCl9O20ucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT0iaGV4Ij9sLnRvSGV4MzIodGhpcy5oLCJiaWciKTpsLnNwbGl0MzIodGhpcy5oLCJiaWciKX07ZnVuY3Rpb24gZmUocixlLGEsaCx0KXt2YXIgaT1yJmFefnImdDtyZXR1cm4gaTwwJiYoaSs9NDI5NDk2NzI5NiksaX1mdW5jdGlvbiBjZShyLGUsYSxoLHQsaSl7dmFyIG49ZSZoXn5lJmk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gdWUocixlLGEsaCx0KXt2YXIgaT1yJmFeciZ0XmEmdDtyZXR1cm4gaTwwJiYoaSs9NDI5NDk2NzI5NiksaX1mdW5jdGlvbiB4ZShyLGUsYSxoLHQsaSl7dmFyIG49ZSZoXmUmaV5oJmk7cmV0dXJuIG48MCYmKG4rPTQyOTQ5NjcyOTYpLG59ZnVuY3Rpb24gb2UocixlKXt2YXIgYT16KHIsZSwyOCksaD16KGUsciwyKSx0PXooZSxyLDcpLGk9YV5oXnQ7cmV0dXJuIGk8MCYmKGkrPTQyOTQ5NjcyOTYpLGl9ZnVuY3Rpb24gdmUocixlKXt2YXIgYT1CKHIsZSwyOCksaD1CKGUsciwyKSx0PUIoZSxyLDcpLGk9YV5oXnQ7cmV0dXJuIGk8MCYmKGkrPTQyOTQ5NjcyOTYpLGl9ZnVuY3Rpb24gZGUocixlKXt2YXIgYT16KHIsZSwxNCksaD16KHIsZSwxOCksdD16KGUsciw5KSxpPWFeaF50O3JldHVybiBpPDAmJihpKz00Mjk0OTY3Mjk2KSxpfWZ1bmN0aW9uIGJlKHIsZSl7dmFyIGE9QihyLGUsMTQpLGg9QihyLGUsMTgpLHQ9QihlLHIsOSksaT1hXmhedDtyZXR1cm4gaTwwJiYoaSs9NDI5NDk2NzI5NiksaX1mdW5jdGlvbiBsZShyLGUpe3ZhciBhPXoocixlLDEpLGg9eihyLGUsOCksdD1JMChyLGUsNyksaT1hXmhedDtyZXR1cm4gaTwwJiYoaSs9NDI5NDk2NzI5NiksaX1mdW5jdGlvbiBfZShyLGUpe3ZhciBhPUIocixlLDEpLGg9QihyLGUsOCksdD1QMChyLGUsNyksaT1hXmhedDtyZXR1cm4gaTwwJiYoaSs9NDI5NDk2NzI5NiksaX1mdW5jdGlvbiBwZShyLGUpe3ZhciBhPXoocixlLDE5KSxoPXooZSxyLDI5KSx0PUkwKHIsZSw2KSxpPWFeaF50O3JldHVybiBpPDAmJihpKz00Mjk0OTY3Mjk2KSxpfWZ1bmN0aW9uIGdlKHIsZSl7dmFyIGE9QihyLGUsMTkpLGg9QihlLHIsMjkpLHQ9UDAocixlLDYpLGk9YV5oXnQ7cmV0dXJuIGk8MCYmKGkrPTQyOTQ5NjcyOTYpLGl9fSk7dmFyIE4wPXAoKFBlLEowKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdTA9ZygpLEcwPWMwKCk7ZnVuY3Rpb24gVygpe2lmKCEodGhpcyBpbnN0YW5jZW9mIFcpKXJldHVybiBuZXcgVztHMC5jYWxsKHRoaXMpLHRoaXMuaD1bMzQxODA3MDM2NSwzMjM4MzcxMDMyLDE2NTQyNzAyNTAsOTE0MTUwNjYzLDI0Mzg1MjkzNzAsODEyNzAyOTk5LDM1NTQ2MjM2MCw0MTQ0OTEyNjk3LDE3MzE0MDU0MTUsNDI5MDc3NTg1NywyMzk0MTgwMjMxLDE3NTA2MDMwMjUsMzY3NTAwODUyNSwxNjk0MDc2ODM5LDEyMDMwNjI4MTMsMzIwNDA3NTQyOF19dTAuaW5oZXJpdHMoVyxHMCk7SjAuZXhwb3J0cz1XO1cuYmxvY2tTaXplPTEwMjQ7Vy5vdXRTaXplPTM4NDtXLmhtYWNTdHJlbmd0aD0xOTI7Vy5wYWRMZW5ndGg9MTI4O1cucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT0iaGV4Ij91MC50b0hleDMyKHRoaXMuaC5zbGljZSgwLDEyKSwiYmlnIik6dTAuc3BsaXQzMih0aGlzLmguc2xpY2UoMCwxMiksImJpZyIpfX0pO3ZhciBPMD1wKFI9PnsidXNlIHN0cmljdCI7Ui5zaGExPVcwKCk7Ui5zaGEyMjQ9SzAoKTtSLnNoYTI1Nj1pMCgpO1Iuc2hhMzg0PU4wKCk7Ui5zaGE1MTI9YzAoKX0pO3ZhciBaMD1wKFkwPT57InVzZSBzdHJpY3QiO3ZhciBEPWcoKSxTZT1LKCksVD1ELnJvdGwzMixRMD1ELnN1bTMyLFo9RC5zdW0zMl8zLFUwPUQuc3VtMzJfNCxYMD1TZS5CbG9ja0hhc2g7ZnVuY3Rpb24geSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHkpKXJldHVybiBuZXcgeTtYMC5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0bGUifUQuaW5oZXJpdHMoeSxYMCk7WTAucmlwZW1kMTYwPXk7eS5ibG9ja1NpemU9NTEyO3kub3V0U2l6ZT0xNjA7eS5obWFjU3RyZW5ndGg9MTkyO3kucGFkTGVuZ3RoPTY0O3kucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSxhKXtmb3IodmFyIGg9dGhpcy5oWzBdLHQ9dGhpcy5oWzFdLGk9dGhpcy5oWzJdLG49dGhpcy5oWzNdLHM9dGhpcy5oWzRdLGM9aCxmPXQseD1pLHU9bix2PXMsZD0wO2Q8ODA7ZCsrKXt2YXIgXz1RMChUKFUwKGgsVjAoZCx0LGksbiksZVtIZVtkXSthXSxtZShkKSksemVbZF0pLHMpO2g9cyxzPW4sbj1UKGksMTApLGk9dCx0PV8sXz1RMChUKFUwKGMsVjAoNzktZCxmLHgsdSksZVtBZVtkXSthXSxxZShkKSksQmVbZF0pLHYpLGM9dix2PXUsdT1UKHgsMTApLHg9ZixmPV99Xz1aKHRoaXMuaFsxXSxpLHUpLHRoaXMuaFsxXT1aKHRoaXMuaFsyXSxuLHYpLHRoaXMuaFsyXT1aKHRoaXMuaFszXSxzLGMpLHRoaXMuaFszXT1aKHRoaXMuaFs0XSxoLGYpLHRoaXMuaFs0XT1aKHRoaXMuaFswXSx0LHgpLHRoaXMuaFswXT1ffTt5LnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKGUpe3JldHVybiBlPT09ImhleCI/RC50b0hleDMyKHRoaXMuaCwibGl0dGxlIik6RC5zcGxpdDMyKHRoaXMuaCwibGl0dGxlIil9O2Z1bmN0aW9uIFYwKHIsZSxhLGgpe3JldHVybiByPD0xNT9lXmFeaDpyPD0zMT9lJmF8fmUmaDpyPD00Nz8oZXx+YSleaDpyPD02Mz9lJmh8YSZ+aDplXihhfH5oKX1mdW5jdGlvbiBtZShyKXtyZXR1cm4gcjw9MTU/MDpyPD0zMT8xNTE4NTAwMjQ5OnI8PTQ3PzE4NTk3NzUzOTM6cjw9NjM/MjQwMDk1OTcwODoyODQwODUzODM4fWZ1bmN0aW9uIHFlKHIpe3JldHVybiByPD0xNT8xMzUyODI5OTI2OnI8PTMxPzE1NDg2MDM2ODQ6cjw9NDc/MTgzNjA3MjY5MTpyPD02Mz8yMDUzOTk0MjE3OjB9dmFyIEhlPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdLEFlPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLHplPVsxMSwxNCwxNSwxMiw1LDgsNyw5LDExLDEzLDE0LDE1LDYsNyw5LDgsNyw2LDgsMTMsMTEsOSw3LDE1LDcsMTIsMTUsOSwxMSw3LDEzLDEyLDExLDEzLDYsNywxNCw5LDEzLDE1LDE0LDgsMTMsNiw1LDEyLDcsNSwxMSwxMiwxNCwxNSwxNCwxNSw5LDgsOSwxNCw1LDYsOCw2LDUsMTIsOSwxNSw1LDExLDYsOCwxMywxMiw1LDEyLDEzLDE0LDExLDgsNSw2XSxCZT1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV19KTt2YXIgajA9cCgoR2UsJDApPT57InVzZSBzdHJpY3QiO3ZhciB5ZT1nKCksQ2U9RSgibWluaW1hbGlzdGljLWFzc2VydCIpO2Z1bmN0aW9uIEcocixlLGEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEcpKXJldHVybiBuZXcgRyhyLGUsYSk7dGhpcy5IYXNoPXIsdGhpcy5ibG9ja1NpemU9ci5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9ci5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KHllLnRvQXJyYXkoZSxhKSl9JDAuZXhwb3J0cz1HO0cucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGUpe2UubGVuZ3RoPnRoaXMuYmxvY2tTaXplJiYoZT1uZXcgdGhpcy5IYXNoKCkudXBkYXRlKGUpLmRpZ2VzdCgpKSxDZShlLmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgYT1lLmxlbmd0aDthPHRoaXMuYmxvY2tTaXplO2ErKyllLnB1c2goMCk7Zm9yKGE9MDthPGUubGVuZ3RoO2ErKyllW2FdXj01NDtmb3IodGhpcy5pbm5lcj1uZXcgdGhpcy5IYXNoKCkudXBkYXRlKGUpLGE9MDthPGUubGVuZ3RoO2ErKyllW2FdXj0xMDY7dGhpcy5vdXRlcj1uZXcgdGhpcy5IYXNoKCkudXBkYXRlKGUpfTtHLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSxhKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUoZSxhKSx0aGlzfTtHLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KGUpfX0pO3ZhciBUMD1wKHcwPT57dmFyIGI9dzA7Yi51dGlscz1nKCk7Yi5jb21tb249SygpO2Iuc2hhPU8wKCk7Yi5yaXBlbWQ9WjAoKTtiLmhtYWM9ajAoKTtiLnNoYTE9Yi5zaGEuc2hhMTtiLnNoYTI1Nj1iLnNoYS5zaGEyNTY7Yi5zaGEyMjQ9Yi5zaGEuc2hhMjI0O2Iuc2hhMzg0PWIuc2hhLnNoYTM4NDtiLnNoYTUxMj1iLnNoYS5zaGE1MTI7Yi5yaXBlbWQxNjA9Yi5yaXBlbWQucmlwZW1kMTYwfSk7dmFyIHIwPW5yKFQwKCkpLHt1dGlsczpOZSxjb21tb246T2Usc2hhOlFlLHJpcGVtZDpVZSxobWFjOlZlLHNoYTE6WGUsc2hhMjU2OlllLHNoYTIyNDpaZSxzaGEzODQ6JGUsc2hhNTEyOmplLHJpcGVtZDE2MDp3ZX09cjAsVGU9cjAuZGVmYXVsdD8/cjA7ZXhwb3J0e09lIGFzIGNvbW1vbixUZSBhcyBkZWZhdWx0LFZlIGFzIGhtYWMsVWUgYXMgcmlwZW1kLHdlIGFzIHJpcGVtZDE2MCxRZSBhcyBzaGEsWGUgYXMgc2hhMSxaZSBhcyBzaGEyMjQsWWUgYXMgc2hhMjU2LCRlIGFzIHNoYTM4NCxqZSBhcyBzaGE1MTIsTmUgYXMgdXRpbHN9OwovLyMgc291cmNlTWFwcGluZ1VSTD1oYXNoLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/binary@1.0.1/es2022/binary.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.970Z","timestamp":1785138633970,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/binary@1.0.1/es2022/binary.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/binary@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16519\r\ncf-ray: a21a0dce5c4f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":7035,"size_decoded":2705,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6690)","md5":"265e1ac2a5be7d237bb3bd93a6882ece","sha1":"9ff7aa891c7d74d168c8a66be3e20d026cc8a221","sha256":"9eba949f5b743bceec8288dd60f5e2f7831a63c5ee6ad68146cafa008cf3c63b","sha512":"8910df51451f32be741dda655f71f7c76612accdb9282b85b3b86de641e0ea55ba0f8516f188ac3438ebe07d917a8a1d744e73975af32ef00200474854d28ced","ssdeep":"96:IZNw8U8/gYTSKS55aSzUmaSCYfAmEzka991waWLy4XvfWQcrhRkPBk9axCPAno4:kNdG5HJzUmJC2AmEzkm9VG5+hR0tcoo4","tlshash":"5be173c45dc8f8f67352b8b9b37e42e3f575ff9c809c8610420ed89270b85bab6006a5","first_seen":"2025-07-08T23:56:54.778631Z","last_seen":"2026-07-27T07:51:47.174338Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9iaW5hcnlAMS4wLjEgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvQHN0YWJsZWxpYi9pbnRAXjEuMC4xP3RhcmdldD1lczIwMjIiO3ZhciByZXF1aXJlPW49Pntjb25zdCBlPW09PnR5cGVvZiBtLmRlZmF1bHQ8InUiP20uZGVmYXVsdDptLGM9bT0+T2JqZWN0LmFzc2lnbih7X19lc01vZHVsZTp0cnVlfSxtKTtzd2l0Y2gobil7Y2FzZSJAc3RhYmxlbGliL2ludCI6cmV0dXJuIGMoX18wJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIHA9T2JqZWN0LmNyZWF0ZTt2YXIgYz1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHg9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgQT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgeT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsTz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBtPShuPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShuLHtnZXQ6KGkscik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTppKVtyXX0pOm4pKGZ1bmN0aW9uKG4pe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytuKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBEPShuLGkpPT4oKT0+KGl8fG4oKGk9e2V4cG9ydHM6e319KS5leHBvcnRzLGkpLGkuZXhwb3J0cyk7dmFyIFY9KG4saSxyLGUpPT57aWYoaSYmdHlwZW9mIGk9PSJvYmplY3QifHx0eXBlb2YgaT09ImZ1bmN0aW9uIilmb3IobGV0IEUgb2YgQShpKSkhTy5jYWxsKG4sRSkmJkUhPT1yJiZjKG4sRSx7Z2V0OigpPT5pW0VdLGVudW1lcmFibGU6IShlPXgoaSxFKSl8fGUuZW51bWVyYWJsZX0pO3JldHVybiBufTt2YXIgXz0obixpLHIpPT4ocj1uIT1udWxsP3AoeShuKSk6e30sVihpfHwhbnx8IW4uX19lc01vZHVsZT9jKHIsImRlZmF1bHQiLHt2YWx1ZTpuLGVudW1lcmFibGU6ITB9KTpyLG4pKTt2YXIgZz1EKHQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBiPW0oIkBzdGFibGVsaWIvaW50Iik7ZnVuY3Rpb24gaihuLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSwobltpKzBdPDw4fG5baSsxXSk8PDE2Pj4xNn10LnJlYWRJbnQxNkJFPWo7ZnVuY3Rpb24gbyhuLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSwobltpKzBdPDw4fG5baSsxXSk+Pj4wfXQucmVhZFVpbnQxNkJFPW87ZnVuY3Rpb24gTShuLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSwobltpKzFdPDw4fG5baV0pPDwxNj4+MTZ9dC5yZWFkSW50MTZMRT1NO2Z1bmN0aW9uIFMobixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksKG5baSsxXTw8OHxuW2ldKT4+PjB9dC5yZWFkVWludDE2TEU9UztmdW5jdGlvbiBGKG4saSxyKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9bmV3IFVpbnQ4QXJyYXkoMikpLHI9PT12b2lkIDAmJihyPTApLGlbciswXT1uPj4+OCxpW3IrMV09bj4+PjAsaX10LndyaXRlVWludDE2QkU9Rjt0LndyaXRlSW50MTZCRT1GO2Z1bmN0aW9uIEkobixpLHIpe3JldHVybiBpPT09dm9pZCAwJiYoaT1uZXcgVWludDhBcnJheSgyKSkscj09PXZvaWQgMCYmKHI9MCksaVtyKzBdPW4+Pj4wLGlbcisxXT1uPj4+OCxpfXQud3JpdGVVaW50MTZMRT1JO3Qud3JpdGVJbnQxNkxFPUk7ZnVuY3Rpb24gVShuLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxuW2ldPDwyNHxuW2krMV08PDE2fG5baSsyXTw8OHxuW2krM119dC5yZWFkSW50MzJCRT1VO2Z1bmN0aW9uIEwobixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksKG5baV08PDI0fG5baSsxXTw8MTZ8bltpKzJdPDw4fG5baSszXSk+Pj4wfXQucmVhZFVpbnQzMkJFPUw7ZnVuY3Rpb24gQihuLGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT0wKSxuW2krM108PDI0fG5baSsyXTw8MTZ8bltpKzFdPDw4fG5baV19dC5yZWFkSW50MzJMRT1CO2Z1bmN0aW9uIGwobixpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9MCksKG5baSszXTw8MjR8bltpKzJdPDwxNnxuW2krMV08PDh8bltpXSk+Pj4wfXQucmVhZFVpbnQzMkxFPWw7ZnVuY3Rpb24gdyhuLGkscil7cmV0dXJuIGk9PT12b2lkIDAmJihpPW5ldyBVaW50OEFycmF5KDQpKSxyPT09dm9pZCAwJiYocj0wKSxpW3IrMF09bj4+PjI0LGlbcisxXT1uPj4+MTYsaVtyKzJdPW4+Pj44LGlbciszXT1uPj4+MCxpfXQud3JpdGVVaW50MzJCRT13O3Qud3JpdGVJbnQzMkJFPXc7ZnVuY3Rpb24gYShuLGkscil7cmV0dXJuIGk9PT12b2lkIDAmJihpPW5ldyBVaW50OEFycmF5KDQpKSxyPT09dm9pZCAwJiYocj0wKSxpW3IrMF09bj4+PjAsaVtyKzFdPW4+Pj44LGlbcisyXT1uPj4+MTYsaVtyKzNdPW4+Pj4yNCxpfXQud3JpdGVVaW50MzJMRT1hO3Qud3JpdGVJbnQzMkxFPWE7ZnVuY3Rpb24gcShuLGkpe2k9PT12b2lkIDAmJihpPTApO3ZhciByPVUobixpKSxlPVUobixpKzQpO3JldHVybiByKjQyOTQ5NjcyOTYrZS0oZT4+MzEpKjQyOTQ5NjcyOTZ9dC5yZWFkSW50NjRCRT1xO2Z1bmN0aW9uIFAobixpKXtpPT09dm9pZCAwJiYoaT0wKTt2YXIgcj1MKG4saSksZT1MKG4saSs0KTtyZXR1cm4gcio0Mjk0OTY3Mjk2K2V9dC5yZWFkVWludDY0QkU9UDtmdW5jdGlvbiBrKG4saSl7aT09PXZvaWQgMCYmKGk9MCk7dmFyIHI9QihuLGkpLGU9QihuLGkrNCk7cmV0dXJuIGUqNDI5NDk2NzI5NityLShyPj4zMSkqNDI5NDk2NzI5Nn10LnJlYWRJbnQ2NExFPWs7ZnVuY3Rpb24geihuLGkpe2k9PT12b2lkIDAmJihpPTApO3ZhciByPWwobixpKSxlPWwobixpKzQpO3JldHVybiBlKjQyOTQ5NjcyOTYrcn10LnJlYWRVaW50NjRMRT16O2Z1bmN0aW9uIHUobixpLHIpe3JldHVybiBpPT09dm9pZCAwJiYoaT1uZXcgVWludDhBcnJheSg4KSkscj09PXZvaWQgMCYmKHI9MCksdyhuLzQyOTQ5NjcyOTY+Pj4wLGksciksdyhuPj4+MCxpLHIrNCksaX10LndyaXRlVWludDY0QkU9dTt0LndyaXRlSW50NjRCRT11O2Z1bmN0aW9uIGgobixpLHIpe3JldHVybiBpPT09dm9pZCAwJiYoaT1uZXcgVWludDhBcnJheSg4KSkscj09PXZvaWQgMCYmKHI9MCksYShuPj4+MCxpLHIpLGEobi80Mjk0OTY3Mjk2Pj4+MCxpLHIrNCksaX10LndyaXRlVWludDY0TEU9aDt0LndyaXRlSW50NjRMRT1oO2Z1bmN0aW9uIEMobixpLHIpe2lmKHI9PT12b2lkIDAmJihyPTApLG4lOCE9PTApdGhyb3cgbmV3IEVycm9yKCJyZWFkVWludEJFIHN1cHBvcnRzIG9ubHkgYml0TGVuZ3RocyBkaXZpc2libGUgYnkgOCIpO2lmKG4vOD5pLmxlbmd0aC1yKXRocm93IG5ldyBFcnJvcigicmVhZFVpbnRCRTogYXJyYXkgaXMgdG9vIHNob3J0IGZvciB0aGUgZ2l2ZW4gYml0TGVuZ3RoIik7Zm9yKHZhciBlPTAsRT0xLGQ9bi84K3ItMTtkPj1yO2QtLSllKz1pW2RdKkUsRSo9MjU2O3JldHVybiBlfXQucmVhZFVpbnRCRT1DO2Z1bmN0aW9uIEcobixpLHIpe2lmKHI9PT12b2lkIDAmJihyPTApLG4lOCE9PTApdGhyb3cgbmV3IEVycm9yKCJyZWFkVWludExFIHN1cHBvcnRzIG9ubHkgYml0TGVuZ3RocyBkaXZpc2libGUgYnkgOCIpO2lmKG4vOD5pLmxlbmd0aC1yKXRocm93IG5ldyBFcnJvcigicmVhZFVpbnRMRTogYXJyYXkgaXMgdG9vIHNob3J0IGZvciB0aGUgZ2l2ZW4gYml0TGVuZ3RoIik7Zm9yKHZhciBlPTAsRT0xLGQ9cjtkPHIrbi84O2QrKyllKz1pW2RdKkUsRSo9MjU2O3JldHVybiBlfXQucmVhZFVpbnRMRT1HO2Z1bmN0aW9uIEgobixpLHIsZSl7aWYocj09PXZvaWQgMCYmKHI9bmV3IFVpbnQ4QXJyYXkobi84KSksZT09PXZvaWQgMCYmKGU9MCksbiU4IT09MCl0aHJvdyBuZXcgRXJyb3IoIndyaXRlVWludEJFIHN1cHBvcnRzIG9ubHkgYml0TGVuZ3RocyBkaXZpc2libGUgYnkgOCIpO2lmKCFiLmlzU2FmZUludGVnZXIoaSkpdGhyb3cgbmV3IEVycm9yKCJ3cml0ZVVpbnRCRSB2YWx1ZSBtdXN0IGJlIGFuIGludGVnZXIiKTtmb3IodmFyIEU9MSxkPW4vOCtlLTE7ZD49ZTtkLS0pcltkXT1pL0UmMjU1LEUqPTI1NjtyZXR1cm4gcn10LndyaXRlVWludEJFPUg7ZnVuY3Rpb24gSihuLGkscixlKXtpZihyPT09dm9pZCAwJiYocj1uZXcgVWludDhBcnJheShuLzgpKSxlPT09dm9pZCAwJiYoZT0wKSxuJTghPT0wKXRocm93IG5ldyBFcnJvcigid3JpdGVVaW50TEUgc3VwcG9ydHMgb25seSBiaXRMZW5ndGhzIGRpdmlzaWJsZSBieSA4Iik7aWYoIWIuaXNTYWZlSW50ZWdlcihpKSl0aHJvdyBuZXcgRXJyb3IoIndyaXRlVWludExFIHZhbHVlIG11c3QgYmUgYW4gaW50ZWdlciIpO2Zvcih2YXIgRT0xLGQ9ZTtkPGUrbi84O2QrKylyW2RdPWkvRSYyNTUsRSo9MjU2O3JldHVybiByfXQud3JpdGVVaW50TEU9SjtmdW5jdGlvbiBLKG4saSl7aT09PXZvaWQgMCYmKGk9MCk7dmFyIHI9bmV3IERhdGFWaWV3KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpO3JldHVybiByLmdldEZsb2F0MzIoaSl9dC5yZWFkRmxvYXQzMkJFPUs7ZnVuY3Rpb24gTihuLGkpe2k9PT12b2lkIDAmJihpPTApO3ZhciByPW5ldyBEYXRhVmlldyhuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQsbi5ieXRlTGVuZ3RoKTtyZXR1cm4gci5nZXRGbG9hdDMyKGksITApfXQucmVhZEZsb2F0MzJMRT1OO2Z1bmN0aW9uIFEobixpKXtpPT09dm9pZCAwJiYoaT0wKTt2YXIgcj1uZXcgRGF0YVZpZXcobi5idWZmZXIsbi5ieXRlT2Zmc2V0LG4uYnl0ZUxlbmd0aCk7cmV0dXJuIHIuZ2V0RmxvYXQ2NChpKX10LnJlYWRGbG9hdDY0QkU9UTtmdW5jdGlvbiBSKG4saSl7aT09PXZvaWQgMCYmKGk9MCk7dmFyIHI9bmV3IERhdGFWaWV3KG4uYnVmZmVyLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpO3JldHVybiByLmdldEZsb2F0NjQoaSwhMCl9dC5yZWFkRmxvYXQ2NExFPVI7ZnVuY3Rpb24gVChuLGkscil7aT09PXZvaWQgMCYmKGk9bmV3IFVpbnQ4QXJyYXkoNCkpLHI9PT12b2lkIDAmJihyPTApO3ZhciBlPW5ldyBEYXRhVmlldyhpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQsaS5ieXRlTGVuZ3RoKTtyZXR1cm4gZS5zZXRGbG9hdDMyKHIsbiksaX10LndyaXRlRmxvYXQzMkJFPVQ7ZnVuY3Rpb24gVyhuLGkscil7aT09PXZvaWQgMCYmKGk9bmV3IFVpbnQ4QXJyYXkoNCkpLHI9PT12b2lkIDAmJihyPTApO3ZhciBlPW5ldyBEYXRhVmlldyhpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQsaS5ieXRlTGVuZ3RoKTtyZXR1cm4gZS5zZXRGbG9hdDMyKHIsbiwhMCksaX10LndyaXRlRmxvYXQzMkxFPVc7ZnVuY3Rpb24gWChuLGkscil7aT09PXZvaWQgMCYmKGk9bmV3IFVpbnQ4QXJyYXkoOCkpLHI9PT12b2lkIDAmJihyPTApO3ZhciBlPW5ldyBEYXRhVmlldyhpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQsaS5ieXRlTGVuZ3RoKTtyZXR1cm4gZS5zZXRGbG9hdDY0KHIsbiksaX10LndyaXRlRmxvYXQ2NEJFPVg7ZnVuY3Rpb24gWShuLGkscil7aT09PXZvaWQgMCYmKGk9bmV3IFVpbnQ4QXJyYXkoOCkpLHI9PT12b2lkIDAmJihyPTApO3ZhciBlPW5ldyBEYXRhVmlldyhpLmJ1ZmZlcixpLmJ5dGVPZmZzZXQsaS5ieXRlTGVuZ3RoKTtyZXR1cm4gZS5zZXRGbG9hdDY0KHIsbiwhMCksaX10LndyaXRlRmxvYXQ2NExFPVl9KTt2YXIgdj1fKGcoKSkse19fZXNNb2R1bGU6cyxyZWFkSW50MTZCRTpmLHJlYWRVaW50MTZCRTppaSxyZWFkSW50MTZMRTpuaSxyZWFkVWludDE2TEU6cmksd3JpdGVVaW50MTZCRTp0aSx3cml0ZUludDE2QkU6ZWksd3JpdGVVaW50MTZMRTpFaSx3cml0ZUludDE2TEU6ZGkscmVhZEludDMyQkU6d2kscmVhZFVpbnQzMkJFOmFpLHJlYWRJbnQzMkxFOnZpLHJlYWRVaW50MzJMRTpVaSx3cml0ZVVpbnQzMkJFOkxpLHdyaXRlSW50MzJCRTpCaSx3cml0ZVVpbnQzMkxFOmxpLHdyaXRlSW50MzJMRTpjaSxyZWFkSW50NjRCRTpiaSxyZWFkVWludDY0QkU6RmkscmVhZEludDY0TEU6SWkscmVhZFVpbnQ2NExFOnVpLHdyaXRlVWludDY0QkU6aGksd3JpdGVJbnQ2NEJFOmdpLHdyaXRlVWludDY0TEU6cGksd3JpdGVJbnQ2NExFOnhpLHJlYWRVaW50QkU6QWkscmVhZFVpbnRMRTp5aSx3cml0ZVVpbnRCRTpPaSx3cml0ZVVpbnRMRTptaSxyZWFkRmxvYXQzMkJFOkRpLHJlYWRGbG9hdDMyTEU6VmkscmVhZEZsb2F0NjRCRTpfaSxyZWFkRmxvYXQ2NExFOmppLHdyaXRlRmxvYXQzMkJFOm9pLHdyaXRlRmxvYXQzMkxFOk1pLHdyaXRlRmxvYXQ2NEJFOlNpLHdyaXRlRmxvYXQ2NExFOnFpfT12LFBpPXYuZGVmYXVsdD8/djtleHBvcnR7cyBhcyBfX2VzTW9kdWxlLFBpIGFzIGRlZmF1bHQsRGkgYXMgcmVhZEZsb2F0MzJCRSxWaSBhcyByZWFkRmxvYXQzMkxFLF9pIGFzIHJlYWRGbG9hdDY0QkUsamkgYXMgcmVhZEZsb2F0NjRMRSxmIGFzIHJlYWRJbnQxNkJFLG5pIGFzIHJlYWRJbnQxNkxFLHdpIGFzIHJlYWRJbnQzMkJFLHZpIGFzIHJlYWRJbnQzMkxFLGJpIGFzIHJlYWRJbnQ2NEJFLElpIGFzIHJlYWRJbnQ2NExFLGlpIGFzIHJlYWRVaW50MTZCRSxyaSBhcyByZWFkVWludDE2TEUsYWkgYXMgcmVhZFVpbnQzMkJFLFVpIGFzIHJlYWRVaW50MzJMRSxGaSBhcyByZWFkVWludDY0QkUsdWkgYXMgcmVhZFVpbnQ2NExFLEFpIGFzIHJlYWRVaW50QkUseWkgYXMgcmVhZFVpbnRMRSxvaSBhcyB3cml0ZUZsb2F0MzJCRSxNaSBhcyB3cml0ZUZsb2F0MzJMRSxTaSBhcyB3cml0ZUZsb2F0NjRCRSxxaSBhcyB3cml0ZUZsb2F0NjRMRSxlaSBhcyB3cml0ZUludDE2QkUsZGkgYXMgd3JpdGVJbnQxNkxFLEJpIGFzIHdyaXRlSW50MzJCRSxjaSBhcyB3cml0ZUludDMyTEUsZ2kgYXMgd3JpdGVJbnQ2NEJFLHhpIGFzIHdyaXRlSW50NjRMRSx0aSBhcyB3cml0ZVVpbnQxNkJFLEVpIGFzIHdyaXRlVWludDE2TEUsTGkgYXMgd3JpdGVVaW50MzJCRSxsaSBhcyB3cml0ZVVpbnQzMkxFLGhpIGFzIHdyaXRlVWludDY0QkUscGkgYXMgd3JpdGVVaW50NjRMRSxPaSBhcyB3cml0ZVVpbnRCRSxtaSBhcyB3cml0ZVVpbnRMRX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJpbmFyeS5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-crypto-utils@1.0.1/es2022/minimalistic-crypto-utils.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.045Z","timestamp":1785138634045,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /minimalistic-crypto-utils@1.0.1/es2022/minimalistic-crypto-utils.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/minimalistic-crypto-utils@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:10:26 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcecc66569f-OSL\r\ncontent-length: 901\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1377,"size_decoded":1353,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1275)","md5":"0337c9698b92d975f135a54321aec629","sha1":"7853a11885a24d9a3de23bc64ddc68becbe1b6d0","sha256":"27bb0550844afece2a428437650d1211e626c6516b65354a9cca4e3f899b13d9","sha512":"3a0b2525c0fd946294492369f793d2fc353e439933db95769d706df5a0fe7d70b07a81ca6aa66a82d94548526feb58e4c16850392f4ccc03a69f29669b3b0c0f","ssdeep":"","tlshash":"e72106a822e6f5f2479105558d3f5886f1687e38446df1a1db90daa2b0d04d640a6f73","first_seen":"2025-07-08T23:56:54.662068Z","last_seen":"2026-07-27T07:51:47.178067Z","times_seen":23,"resource_available":true,"data":"LyogZXNtLnNoIC0gbWluaW1hbGlzdGljLWNyeXB0by11dGlsc0AxLjAuMSAqLwp2YXIgeD1PYmplY3QuY3JlYXRlO3ZhciBsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgeT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBBPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBkPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHo9KHIsZSk9PigpPT4oZXx8cigoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKTt2YXIgSD0ocixlLHQsbik9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgbyBvZiBBKGUpKSFzLmNhbGwocixvKSYmbyE9PXQmJmwocixvLHtnZXQ6KCk9PmVbb10sZW51bWVyYWJsZTohKG49eShlLG8pKXx8bi5lbnVtZXJhYmxlfSk7cmV0dXJuIHJ9O3ZhciBqPShyLGUsdCk9Pih0PXIhPW51bGw/eChkKHIpKTp7fSxIKGV8fCFyfHwhci5fX2VzTW9kdWxlP2wodCwiZGVmYXVsdCIse3ZhbHVlOnIsZW51bWVyYWJsZTohMH0pOnQscikpO3ZhciBwPXoodj0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZj12O2Z1bmN0aW9uIEMocixlKXtpZihBcnJheS5pc0FycmF5KHIpKXJldHVybiByLnNsaWNlKCk7aWYoIXIpcmV0dXJuW107dmFyIHQ9W107aWYodHlwZW9mIHIhPSJzdHJpbmciKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0W25dPXJbbl18MDtyZXR1cm4gdH1pZihlPT09ImhleCIpe3I9ci5yZXBsYWNlKC9bXmEtejAtOV0rL2lnLCIiKSxyLmxlbmd0aCUyIT09MCYmKHI9IjAiK3IpO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bis9Mil0LnB1c2gocGFyc2VJbnQocltuXStyW24rMV0sMTYpKX1lbHNlIGZvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXt2YXIgbz1yLmNoYXJDb2RlQXQobiksdT1vPj44LGk9byYyNTU7dT90LnB1c2godSxpKTp0LnB1c2goaSl9cmV0dXJuIHR9Zi50b0FycmF5PUM7ZnVuY3Rpb24gYyhyKXtyZXR1cm4gci5sZW5ndGg9PT0xPyIwIityOnJ9Zi56ZXJvMj1jO2Z1bmN0aW9uIGgocil7Zm9yKHZhciBlPSIiLHQ9MDt0PHIubGVuZ3RoO3QrKyllKz1jKHJbdF0udG9TdHJpbmcoMTYpKTtyZXR1cm4gZX1mLnRvSGV4PWg7Zi5lbmNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD09PSJoZXgiP2goZSk6ZX19KTt2YXIgYT1qKHAoKSkse3RvQXJyYXk6Yix6ZXJvMjprLHRvSGV4OnEsZW5jb2RlOkJ9PWEsRD1hLmRlZmF1bHQ/P2E7ZXhwb3J0e0QgYXMgZGVmYXVsdCxCIGFzIGVuY29kZSxiIGFzIHRvQXJyYXkscSBhcyB0b0hleCxrIGFzIHplcm8yfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWluaW1hbGlzdGljLWNyeXB0by11dGlscy5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/time@1.0.2/es2022/time.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.567Z","timestamp":1785138633567,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/time@1.0.2/es2022/time.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:54 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbdbde569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":5208,"size_decoded":2550,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (4878)","md5":"56be4d8d1a9399319757b9e4f26a311f","sha1":"b8cdd0116f1472ebb99527a77c89f96e7ab0a24a","sha256":"2138f827a84076d72abda4f81bced393020c0a564c64bb11d5ca6b86eb86bcf8","sha512":"438a4a05629e75894dad75a6e1c5ac33eb91f3f0d0b662c68f72d5939a75509f11507e9883f2ce71dfb97944396db33e8b50ddc3bddfaa405e2ae7bae330ddfd","ssdeep":"96:dKWcdV//Bi+S3q8bdVplZr0OmZHCROwfXiDlBLLST+Gem86:sbvpS3BfplL/iPLQP86","tlshash":"b1b143f2b1efb57781b688e043372442e291d97a101fa458daebdbdb15808fe01fc991","first_seen":"2025-07-08T23:56:54.832203Z","last_seen":"2026-08-08T17:15:51.728548Z","times_seen":129,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvdGltZUAxLjAuMiAqLwppbXBvcnQqYXMgX18wJCBmcm9tIi90c2xpYkAxLjE0LjEvZXMyMDIyL3RzbGliLm1qcyI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlInRzbGliIjpyZXR1cm4gYyhfXzAkKTtkZWZhdWx0OmNvbnNvbGUuZXJyb3IoJ21vZHVsZSAiJytuKyciIG5vdCBmb3VuZCcpO3JldHVybiBudWxsO319Owp2YXIgVj1PYmplY3QuY3JlYXRlO3ZhciBIPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgSz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBxPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBiPU9iamVjdC5nZXRQcm90b3R5cGVPZixqPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFQ9KEU9PnR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnR5cGVvZiBQcm94eTwidSI/bmV3IFByb3h5KEUse2dldDoodCxfKT0+KHR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnQpW19dfSk6RSkoZnVuY3Rpb24oRSl7aWYodHlwZW9mIHJlcXVpcmU8InUiKXJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mICInK0UrJyIgaXMgbm90IHN1cHBvcnRlZCcpfSk7dmFyIHI9KEUsdCk9PigpPT4odHx8RSgodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzKTt2YXIgdz0oRSx0LF8sTik9PntpZih0JiZ0eXBlb2YgdD09Im9iamVjdCJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24iKWZvcihsZXQgbyBvZiBxKHQpKSFqLmNhbGwoRSxvKSYmbyE9PV8mJkgoRSxvLHtnZXQ6KCk9PnRbb10sZW51bWVyYWJsZTohKE49Syh0LG8pKXx8Ti5lbnVtZXJhYmxlfSk7cmV0dXJuIEV9O3ZhciB4PShFLHQsXyk9PihfPUUhPW51bGw/VihiKEUpKTp7fSx3KHR8fCFFfHwhRS5fX2VzTW9kdWxlP0goXywiZGVmYXVsdCIse3ZhbHVlOkUsZW51bWVyYWJsZTohMH0pOl8sRSkpO3ZhciBZPXIodT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dS5kZWxheT12b2lkIDA7ZnVuY3Rpb24gUChFKXtyZXR1cm4gbmV3IFByb21pc2UodD0+e3NldFRpbWVvdXQoKCk9Pnt0KCEwKX0sRSl9KX11LmRlbGF5PVB9KTt2YXIgcD1yKHM9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3MuT05FX1RIT1VTQU5EPXMuT05FX0hVTkRSRUQ9dm9pZCAwO3MuT05FX0hVTkRSRUQ9MTAwO3MuT05FX1RIT1VTQU5EPTFlM30pO3ZhciBNPXIoZT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ZS5PTkVfWUVBUj1lLkZPVVJfV0VFS1M9ZS5USFJFRV9XRUVLUz1lLlRXT19XRUVLUz1lLk9ORV9XRUVLPWUuVEhJUlRZX0RBWVM9ZS5TRVZFTl9EQVlTPWUuRklWRV9EQVlTPWUuVEhSRUVfREFZUz1lLk9ORV9EQVk9ZS5UV0VOVFlfRk9VUl9IT1VSUz1lLlRXRUxWRV9IT1VSUz1lLlNJWF9IT1VSUz1lLlRIUkVFX0hPVVJTPWUuT05FX0hPVVI9ZS5TSVhUWV9NSU5VVEVTPWUuVEhJUlRZX01JTlVURVM9ZS5URU5fTUlOVVRFUz1lLkZJVkVfTUlOVVRFUz1lLk9ORV9NSU5VVEU9ZS5TSVhUWV9TRUNPTkRTPWUuVEhJUlRZX1NFQ09ORFM9ZS5URU5fU0VDT05EUz1lLkZJVkVfU0VDT05EUz1lLk9ORV9TRUNPTkQ9dm9pZCAwO2UuT05FX1NFQ09ORD0xO2UuRklWRV9TRUNPTkRTPTU7ZS5URU5fU0VDT05EUz0xMDtlLlRISVJUWV9TRUNPTkRTPTMwO2UuU0lYVFlfU0VDT05EUz02MDtlLk9ORV9NSU5VVEU9ZS5TSVhUWV9TRUNPTkRTO2UuRklWRV9NSU5VVEVTPWUuT05FX01JTlVURSo1O2UuVEVOX01JTlVURVM9ZS5PTkVfTUlOVVRFKjEwO2UuVEhJUlRZX01JTlVURVM9ZS5PTkVfTUlOVVRFKjMwO2UuU0lYVFlfTUlOVVRFUz1lLk9ORV9NSU5VVEUqNjA7ZS5PTkVfSE9VUj1lLlNJWFRZX01JTlVURVM7ZS5USFJFRV9IT1VSUz1lLk9ORV9IT1VSKjM7ZS5TSVhfSE9VUlM9ZS5PTkVfSE9VUio2O2UuVFdFTFZFX0hPVVJTPWUuT05FX0hPVVIqMTI7ZS5UV0VOVFlfRk9VUl9IT1VSUz1lLk9ORV9IT1VSKjI0O2UuT05FX0RBWT1lLlRXRU5UWV9GT1VSX0hPVVJTO2UuVEhSRUVfREFZUz1lLk9ORV9EQVkqMztlLkZJVkVfREFZUz1lLk9ORV9EQVkqNTtlLlNFVkVOX0RBWVM9ZS5PTkVfREFZKjc7ZS5USElSVFlfREFZUz1lLk9ORV9EQVkqMzA7ZS5PTkVfV0VFSz1lLlNFVkVOX0RBWVM7ZS5UV09fV0VFS1M9ZS5PTkVfV0VFSyoyO2UuVEhSRUVfV0VFS1M9ZS5PTkVfV0VFSyozO2UuRk9VUl9XRUVLUz1lLk9ORV9XRUVLKjQ7ZS5PTkVfWUVBUj1lLk9ORV9EQVkqMzY1fSk7dmFyIEk9cihhPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZj1UKCJ0c2xpYiIpO2YuX19leHBvcnRTdGFyKHAoKSxhKTtmLl9fZXhwb3J0U3RhcihNKCksYSl9KTt2YXIgQT1yKFM9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO1MuZnJvbU1pbGlzZWNvbmRzPVMudG9NaWxpc2Vjb25kcz12b2lkIDA7dmFyIFc9SSgpO2Z1bmN0aW9uIFgoRSl7cmV0dXJuIEUqVy5PTkVfVEhPVVNBTkR9Uy50b01pbGlzZWNvbmRzPVg7ZnVuY3Rpb24gZyhFKXtyZXR1cm4gTWF0aC5mbG9vcihFL1cuT05FX1RIT1VTQU5EKX1TLmZyb21NaWxpc2Vjb25kcz1nfSk7dmFyIGg9cihkPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbT1UKCJ0c2xpYiIpO20uX19leHBvcnRTdGFyKFkoKSxkKTttLl9fZXhwb3J0U3RhcihBKCksZCl9KTt2YXIgeT1yKGk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2kuV2F0Y2g9dm9pZCAwO3ZhciBuPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy50aW1lc3RhbXBzPW5ldyBNYXB9c3RhcnQodCl7aWYodGhpcy50aW1lc3RhbXBzLmhhcyh0KSl0aHJvdyBuZXcgRXJyb3IoYFdhdGNoIGFscmVhZHkgc3RhcnRlZCBmb3IgbGFiZWw6ICR7dH1gKTt0aGlzLnRpbWVzdGFtcHMuc2V0KHQse3N0YXJ0ZWQ6RGF0ZS5ub3coKX0pfXN0b3AodCl7bGV0IF89dGhpcy5nZXQodCk7aWYodHlwZW9mIF8uZWxhcHNlZDwidSIpdGhyb3cgbmV3IEVycm9yKGBXYXRjaCBhbHJlYWR5IHN0b3BwZWQgZm9yIGxhYmVsOiAke3R9YCk7bGV0IE49RGF0ZS5ub3coKS1fLnN0YXJ0ZWQ7dGhpcy50aW1lc3RhbXBzLnNldCh0LHtzdGFydGVkOl8uc3RhcnRlZCxlbGFwc2VkOk59KX1nZXQodCl7bGV0IF89dGhpcy50aW1lc3RhbXBzLmdldCh0KTtpZih0eXBlb2YgXz4idSIpdGhyb3cgbmV3IEVycm9yKGBObyB0aW1lc3RhbXAgZm91bmQgZm9yIGxhYmVsOiAke3R9YCk7cmV0dXJuIF99ZWxhcHNlZCh0KXtsZXQgXz10aGlzLmdldCh0KTtyZXR1cm4gXy5lbGFwc2VkfHxEYXRlLm5vdygpLV8uc3RhcnRlZH19O2kuV2F0Y2g9bjtpLmRlZmF1bHQ9bn0pO3ZhciB2PXIoYz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Yy5JV2F0Y2g9dm9pZCAwO3ZhciBSPWNsYXNze307Yy5JV2F0Y2g9Un0pO3ZhciBDPXIobD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIEw9VCgidHNsaWIiKTtMLl9fZXhwb3J0U3Rhcih2KCksbCl9KTt2YXIgRj1yKE89PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBVPVQoInRzbGliIik7VS5fX2V4cG9ydFN0YXIoaCgpLE8pO1UuX19leHBvcnRTdGFyKHkoKSxPKTtVLl9fZXhwb3J0U3RhcihDKCksTyk7VS5fX2V4cG9ydFN0YXIoSSgpLE8pfSk7dmFyIEQ9eChGKCkpLHtfX2VzTW9kdWxlOl9lLE9ORV9ZRUFSOnJlLEZPVVJfV0VFS1M6c2UsVEhSRUVfV0VFS1M6U2UsVFdPX1dFRUtTOk9lLE9ORV9XRUVLOk5lLFRISVJUWV9EQVlTOm9lLFNFVkVOX0RBWVM6aWUsRklWRV9EQVlTOlRlLFRIUkVFX0RBWVM6dWUsT05FX0RBWTphZSxUV0VOVFlfRk9VUl9IT1VSUzpkZSxUV0VMVkVfSE9VUlM6bmUsU0lYX0hPVVJTOmNlLFRIUkVFX0hPVVJTOlVlLE9ORV9IT1VSOkRlLFNJWFRZX01JTlVURVM6SWUsVEhJUlRZX01JTlVURVM6UmUsVEVOX01JTlVURVM6bGUsRklWRV9NSU5VVEVTOkhlLE9ORV9NSU5VVEU6WWUsU0lYVFlfU0VDT05EUzpwZSxUSElSVFlfU0VDT05EUzpNZSxURU5fU0VDT05EUzpmZSxGSVZFX1NFQ09ORFM6V2UsT05FX1NFQ09ORDpBZSxPTkVfVEhPVVNBTkQ6bWUsT05FX0hVTkRSRUQ6aGUsSVdhdGNoOnllLFdhdGNoOnZlLGZyb21NaWxpc2Vjb25kczpDZSx0b01pbGlzZWNvbmRzOkZlLGRlbGF5OlZlfT1ELEtlPUQuZGVmYXVsdD8/RDtleHBvcnR7VGUgYXMgRklWRV9EQVlTLEhlIGFzIEZJVkVfTUlOVVRFUyxXZSBhcyBGSVZFX1NFQ09ORFMsc2UgYXMgRk9VUl9XRUVLUyx5ZSBhcyBJV2F0Y2gsYWUgYXMgT05FX0RBWSxEZSBhcyBPTkVfSE9VUixoZSBhcyBPTkVfSFVORFJFRCxZZSBhcyBPTkVfTUlOVVRFLEFlIGFzIE9ORV9TRUNPTkQsbWUgYXMgT05FX1RIT1VTQU5ELE5lIGFzIE9ORV9XRUVLLHJlIGFzIE9ORV9ZRUFSLGllIGFzIFNFVkVOX0RBWVMsSWUgYXMgU0lYVFlfTUlOVVRFUyxwZSBhcyBTSVhUWV9TRUNPTkRTLGNlIGFzIFNJWF9IT1VSUyxsZSBhcyBURU5fTUlOVVRFUyxmZSBhcyBURU5fU0VDT05EUyxvZSBhcyBUSElSVFlfREFZUyxSZSBhcyBUSElSVFlfTUlOVVRFUyxNZSBhcyBUSElSVFlfU0VDT05EUyx1ZSBhcyBUSFJFRV9EQVlTLFVlIGFzIFRIUkVFX0hPVVJTLFNlIGFzIFRIUkVFX1dFRUtTLG5lIGFzIFRXRUxWRV9IT1VSUyxkZSBhcyBUV0VOVFlfRk9VUl9IT1VSUyxPZSBhcyBUV09fV0VFS1MsdmUgYXMgV2F0Y2gsX2UgYXMgX19lc01vZHVsZSxLZSBhcyBkZWZhdWx0LFZlIGFzIGRlbGF5LENlIGFzIGZyb21NaWxpc2Vjb25kcyxGZSBhcyB0b01pbGlzZWNvbmRzfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZS5tanMubWFw"}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/lodash@4.17.21/es2022/lodash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.502Z","timestamp":1785138633502,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /lodash@4.17.21/es2022/lodash.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:56 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcb6bcf569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":81618,"size_decoded":36500,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (38616)","md5":"7dd7abec88b86c52a5b7ee6f17710745","sha1":"548bb8c695807d7857c621e68bfe28d483abff45","sha256":"dbfb35d4fcc605aaf0544bcc4505edb828aab79b7ab447df78743552cef8ceb4","sha512":"45133d178da6898b8ebb7a5ccd1362868ceab70104507b4782763daa54f605c7f87c40e4a4545f0071bd4519ec08c9dbe7303080d84a293b7f458003d12813b3","ssdeep":"1536:EQb9fdMdZyI10ErAbyzXds/VxeJPeQerWju72d+HwY:H9qd+badsdxeJP7eSX+QY","tlshash":"868394cc79d3b02693a3246100bf058ff13d6ea4ac8d5640e156f1ec797856d92bbe2e","first_seen":"2026-01-25T00:27:36.638405Z","last_seen":"2026-07-27T07:51:47.186859Z","times_seen":9,"resource_available":true,"data":"LyogZXNtLnNoIC0gbG9kYXNoQDQuMTcuMjEgKi8KdmFyIGlfPU9iamVjdC5jcmVhdGU7dmFyIGlsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgdV89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgZl89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGxfPU9iamVjdC5nZXRQcm90b3R5cGVPZixvXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBzXz0obCxRKT0+KCk9PihRfHxsKChRPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxRKSxRLmV4cG9ydHMpO3ZhciBhXz0obCxRLGJuLHJlKT0+e2lmKFEmJnR5cGVvZiBRPT0ib2JqZWN0Inx8dHlwZW9mIFE9PSJmdW5jdGlvbiIpZm9yKGxldCB6IG9mIGZfKFEpKSFvXy5jYWxsKGwseikmJnohPT1ibiYmaWwobCx6LHtnZXQ6KCk9PlFbel0sZW51bWVyYWJsZTohKHJlPXVfKFEseikpfHxyZS5lbnVtZXJhYmxlfSk7cmV0dXJuIGx9O3ZhciBjXz0obCxRLGJuKT0+KGJuPWwhPW51bGw/aV8obF8obCkpOnt9LGFfKFF8fCFsfHwhbC5fX2VzTW9kdWxlP2lsKGJuLCJkZWZhdWx0Iix7dmFsdWU6bCxlbnVtZXJhYmxlOiEwfSk6Ym4sbCkpO3ZhciB1bD1zXygoYnQsZWUpPT57KGZ1bmN0aW9uKCl7dmFyIGwsUT0iNC4xNy4yMSIsYm49MjAwLHJlPSJVbnN1cHBvcnRlZCBjb3JlLWpzIHVzZS4gVHJ5IGh0dHBzOi8vbnBtcy5pby9zZWFyY2g/cT1wb255ZmlsbC4iLHo9IkV4cGVjdGVkIGEgZnVuY3Rpb24iLGZsPSJJbnZhbGlkIGB2YXJpYWJsZWAgb3B0aW9uIHBhc3NlZCBpbnRvIGBfLnRlbXBsYXRlYCIsbnI9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLGxsPTUwMCxpZT0iX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyIsem49MSxJaT0yLGd0PTQscHQ9MSx1ZT0yLGNuPTEsZXQ9MixSaT00LEVuPTgsX3Q9MTYsTG49MzIsZHQ9NjQsQm49MTI4LEJ0PTI1Nix0cj01MTIsb2w9MzAsc2w9Ii4uLiIsYWw9ODAwLGNsPTE2LFNpPTEsaGw9MixnbD0zLHJ0PTEvMCwkbj05MDA3MTk5MjU0NzQwOTkxLHBsPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixmZT1OYU4sVG49NDI5NDk2NzI5NSxfbD1Ubi0xLGRsPVRuPj4+MSx2bD1bWyJhcnkiLEJuXSxbImJpbmQiLGNuXSxbImJpbmRLZXkiLGV0XSxbImN1cnJ5IixFbl0sWyJjdXJyeVJpZ2h0IixfdF0sWyJmbGlwIix0cl0sWyJwYXJ0aWFsIixMbl0sWyJwYXJ0aWFsUmlnaHQiLGR0XSxbInJlYXJnIixCdF1dLHZ0PSJbb2JqZWN0IEFyZ3VtZW50c10iLGxlPSJbb2JqZWN0IEFycmF5XSIsd2w9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLFB0PSJbb2JqZWN0IEJvb2xlYW5dIixNdD0iW29iamVjdCBEYXRlXSIseGw9IltvYmplY3QgRE9NRXhjZXB0aW9uXSIsb2U9IltvYmplY3QgRXJyb3JdIixzZT0iW29iamVjdCBGdW5jdGlvbl0iLEVpPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsQW49IltvYmplY3QgTWFwXSIsRnQ9IltvYmplY3QgTnVtYmVyXSIsQWw9IltvYmplY3QgTnVsbF0iLFBuPSJbb2JqZWN0IE9iamVjdF0iLExpPSJbb2JqZWN0IFByb21pc2VdIix5bD0iW29iamVjdCBQcm94eV0iLER0PSJbb2JqZWN0IFJlZ0V4cF0iLHluPSJbb2JqZWN0IFNldF0iLFV0PSJbb2JqZWN0IFN0cmluZ10iLGFlPSJbb2JqZWN0IFN5bWJvbF0iLG1sPSJbb2JqZWN0IFVuZGVmaW5lZF0iLE50PSJbb2JqZWN0IFdlYWtNYXBdIixJbD0iW29iamVjdCBXZWFrU2V0XSIsR3Q9IltvYmplY3QgQXJyYXlCdWZmZXJdIix3dD0iW29iamVjdCBEYXRhVmlld10iLGVyPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLHJyPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLGlyPSJbb2JqZWN0IEludDhBcnJheV0iLHVyPSJbb2JqZWN0IEludDE2QXJyYXldIixmcj0iW29iamVjdCBJbnQzMkFycmF5XSIsbHI9IltvYmplY3QgVWludDhBcnJheV0iLG9yPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsc3I9IltvYmplY3QgVWludDE2QXJyYXldIixhcj0iW29iamVjdCBVaW50MzJBcnJheV0iLFJsPS9cYl9fcCBcKz0gJyc7L2csU2w9L1xiKF9fcCBcKz0pICcnIFwrL2csRWw9LyhfX2VcKC4qP1wpfFxiX190XCkpIFwrXG4nJzsvZyxUaT0vJig/OmFtcHxsdHxndHxxdW90fCMzOSk7L2csQ2k9L1smPD4iJ10vZyxMbD1SZWdFeHAoVGkuc291cmNlKSxUbD1SZWdFeHAoQ2kuc291cmNlKSxDbD0vPCUtKFtcc1xTXSs/KSU+L2csT2w9LzwlKFtcc1xTXSs/KSU+L2csT2k9LzwlPShbXHNcU10rPyklPi9nLFdsPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLGJsPS9eXHcqJC8sQmw9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csY3I9L1tcXF4kLiorPygpW1xde318XS9nLFBsPVJlZ0V4cChjci5zb3VyY2UpLGhyPS9eXHMrLyxNbD0vXHMvLEZsPS9ceyg/OlxuXC9cKiBcW3dyYXBwZWQgd2l0aCAuK1xdIFwqXC8pP1xuPy8sRGw9L1x7XG5cL1wqIFxbd3JhcHBlZCB3aXRoICguKylcXSBcKi8sVWw9Lyw/ICYgLyxObD0vW15ceDAwLVx4MmZceDNhLVx4NDBceDViLVx4NjBceDdiLVx4N2ZdKy9nLEdsPS9bKCk9LHt9XFtcXVwvXHNdLyxIbD0vXFwoXFwpPy9nLHFsPS9cJFx7KFteXFx9XSooPzpcXC5bXlxcfV0qKSopXH0vZyxXaT0vXHcqJC8sS2w9L15bLStdMHhbMC05YS1mXSskL2ksemw9L14wYlswMV0rJC9pLCRsPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFpsPS9eMG9bMC03XSskL2ksWWw9L14oPzowfFsxLTldXGQqKSQvLFhsPS9bXHhjMC1ceGQ2XHhkOC1ceGY2XHhmOC1ceGZmXHUwMTAwLVx1MDE3Zl0vZyxjZT0vKCReKS8sSmw9L1snXG5cclx1MjAyOFx1MjAyOVxcXS9nLGhlPSJcXHVkODAwLVxcdWRmZmYiLFFsPSJcXHUwMzAwLVxcdTAzNmYiLFZsPSJcXHVmZTIwLVxcdWZlMmYiLGtsPSJcXHUyMGQwLVxcdTIwZmYiLGJpPVFsK1ZsK2tsLEJpPSJcXHUyNzAwLVxcdTI3YmYiLFBpPSJhLXpcXHhkZi1cXHhmNlxceGY4LVxceGZmIixqbD0iXFx4YWNcXHhiMVxceGQ3XFx4ZjciLG5vPSJcXHgwMC1cXHgyZlxceDNhLVxceDQwXFx4NWItXFx4NjBcXHg3Yi1cXHhiZiIsdG89IlxcdTIwMDAtXFx1MjA2ZiIsZW89IiBcXHRcXHgwYlxcZlxceGEwXFx1ZmVmZlxcblxcclxcdTIwMjhcXHUyMDI5XFx1MTY4MFxcdTE4MGVcXHUyMDAwXFx1MjAwMVxcdTIwMDJcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwYVxcdTIwMmZcXHUyMDVmXFx1MzAwMCIsTWk9IkEtWlxceGMwLVxceGQ2XFx4ZDgtXFx4ZGUiLEZpPSJcXHVmZTBlXFx1ZmUwZiIsRGk9amwrbm8rdG8rZW8sZ3I9IlsnXHUyMDE5XSIscm89IlsiK2hlKyJdIixVaT0iWyIrRGkrIl0iLGdlPSJbIitiaSsiXSIsTmk9IlxcZCsiLGlvPSJbIitCaSsiXSIsR2k9IlsiK1BpKyJdIixIaT0iW14iK2hlK0RpK05pK0JpK1BpK01pKyJdIixwcj0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIix1bz0iKD86IitnZSsifCIrcHIrIikiLHFpPSJbXiIraGUrIl0iLF9yPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9Iixkcj0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIseHQ9IlsiK01pKyJdIixLaT0iXFx1MjAwZCIsemk9Iig/OiIrR2krInwiK0hpKyIpIixmbz0iKD86Iit4dCsifCIrSGkrIikiLCRpPSIoPzoiK2dyKyIoPzpkfGxsfG18cmV8c3x0fHZlKSk/IixaaT0iKD86IitncisiKD86RHxMTHxNfFJFfFN8VHxWRSkpPyIsWWk9dW8rIj8iLFhpPSJbIitGaSsiXT8iLGxvPSIoPzoiK0tpKyIoPzoiK1txaSxfcixkcl0uam9pbigifCIpKyIpIitYaStZaSsiKSoiLG9vPSJcXGQqKD86MXN0fDJuZHwzcmR8KD8hWzEyM10pXFxkdGgpKD89XFxifFtBLVpfXSkiLHNvPSJcXGQqKD86MVNUfDJORHwzUkR8KD8hWzEyM10pXFxkVEgpKD89XFxifFthLXpfXSkiLEppPVhpK1lpK2xvLGFvPSIoPzoiK1tpbyxfcixkcl0uam9pbigifCIpKyIpIitKaSxjbz0iKD86IitbcWkrZ2UrIj8iLGdlLF9yLGRyLHJvXS5qb2luKCJ8IikrIikiLGhvPVJlZ0V4cChnciwiZyIpLGdvPVJlZ0V4cChnZSwiZyIpLHZyPVJlZ0V4cChwcisiKD89IitwcisiKXwiK2NvK0ppLCJnIikscG89UmVnRXhwKFt4dCsiPyIrR2krIisiKyRpKyIoPz0iK1tVaSx4dCwiJCJdLmpvaW4oInwiKSsiKSIsZm8rIisiK1ppKyIoPz0iK1tVaSx4dCt6aSwiJCJdLmpvaW4oInwiKSsiKSIseHQrIj8iK3ppKyIrIiskaSx4dCsiKyIrWmksc28sb28sTmksYW9dLmpvaW4oInwiKSwiZyIpLF9vPVJlZ0V4cCgiWyIrS2kraGUrYmkrRmkrIl0iKSx2bz0vW2Etel1bQS1aXXxbQS1aXXsyfVthLXpdfFswLTldW2EtekEtWl18W2EtekEtWl1bMC05XXxbXmEtekEtWjAtOSBdLyx3bz1bIkFycmF5IiwiQnVmZmVyIiwiRGF0YVZpZXciLCJEYXRlIiwiRXJyb3IiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJGdW5jdGlvbiIsIkludDhBcnJheSIsIkludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiTWFwIiwiTWF0aCIsIk9iamVjdCIsIlByb21pc2UiLCJSZWdFeHAiLCJTZXQiLCJTdHJpbmciLCJTeW1ib2wiLCJUeXBlRXJyb3IiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiV2Vha01hcCIsIl8iLCJjbGVhclRpbWVvdXQiLCJpc0Zpbml0ZSIsInBhcnNlSW50Iiwic2V0VGltZW91dCJdLHhvPS0xLEY9e307Rltlcl09Rltycl09Rltpcl09Rlt1cl09Rltmcl09Rltscl09Rltvcl09Rltzcl09Rlthcl09ITAsRlt2dF09RltsZV09RltHdF09RltQdF09Rlt3dF09RltNdF09RltvZV09RltzZV09RltBbl09RltGdF09RltQbl09RltEdF09Rlt5bl09RltVdF09RltOdF09ITE7dmFyIE09e307TVt2dF09TVtsZV09TVtHdF09TVt3dF09TVtQdF09TVtNdF09TVtlcl09TVtycl09TVtpcl09TVt1cl09TVtmcl09TVtBbl09TVtGdF09TVtQbl09TVtEdF09TVt5bl09TVtVdF09TVthZV09TVtscl09TVtvcl09TVtzcl09TVthcl09ITAsTVtvZV09TVtzZV09TVtOdF09ITE7dmFyIEFvPXtcdTAwQzA6IkEiLFx1MDBDMToiQSIsXHUwMEMyOiJBIixcdTAwQzM6IkEiLFx1MDBDNDoiQSIsXHUwMEM1OiJBIixcdTAwRTA6ImEiLFx1MDBFMToiYSIsXHUwMEUyOiJhIixcdTAwRTM6ImEiLFx1MDBFNDoiYSIsXHUwMEU1OiJhIixcdTAwQzc6IkMiLFx1MDBFNzoiYyIsXHUwMEQwOiJEIixcdTAwRjA6ImQiLFx1MDBDODoiRSIsXHUwMEM5OiJFIixcdTAwQ0E6IkUiLFx1MDBDQjoiRSIsXHUwMEU4OiJlIixcdTAwRTk6ImUiLFx1MDBFQToiZSIsXHUwMEVCOiJlIixcdTAwQ0M6IkkiLFx1MDBDRDoiSSIsXHUwMENFOiJJIixcdTAwQ0Y6IkkiLFx1MDBFQzoiaSIsXHUwMEVEOiJpIixcdTAwRUU6ImkiLFx1MDBFRjoiaSIsXHUwMEQxOiJOIixcdTAwRjE6Im4iLFx1MDBEMjoiTyIsXHUwMEQzOiJPIixcdTAwRDQ6Ik8iLFx1MDBENToiTyIsXHUwMEQ2OiJPIixcdTAwRDg6Ik8iLFx1MDBGMjoibyIsXHUwMEYzOiJvIixcdTAwRjQ6Im8iLFx1MDBGNToibyIsXHUwMEY2OiJvIixcdTAwRjg6Im8iLFx1MDBEOToiVSIsXHUwMERBOiJVIixcdTAwREI6IlUiLFx1MDBEQzoiVSIsXHUwMEY5OiJ1IixcdTAwRkE6InUiLFx1MDBGQjoidSIsXHUwMEZDOiJ1IixcdTAwREQ6IlkiLFx1MDBGRDoieSIsXHUwMEZGOiJ5IixcdTAwQzY6IkFlIixcdTAwRTY6ImFlIixcdTAwREU6IlRoIixcdTAwRkU6InRoIixcdTAwREY6InNzIixcdTAxMDA6IkEiLFx1MDEwMjoiQSIsXHUwMTA0OiJBIixcdTAxMDE6ImEiLFx1MDEwMzoiYSIsXHUwMTA1OiJhIixcdTAxMDY6IkMiLFx1MDEwODoiQyIsXHUwMTBBOiJDIixcdTAxMEM6IkMiLFx1MDEwNzoiYyIsXHUwMTA5OiJjIixcdTAxMEI6ImMiLFx1MDEwRDoiYyIsXHUwMTBFOiJEIixcdTAxMTA6IkQiLFx1MDEwRjoiZCIsXHUwMTExOiJkIixcdTAxMTI6IkUiLFx1MDExNDoiRSIsXHUwMTE2OiJFIixcdTAxMTg6IkUiLFx1MDExQToiRSIsXHUwMTEzOiJlIixcdTAxMTU6ImUiLFx1MDExNzoiZSIsXHUwMTE5OiJlIixcdTAxMUI6ImUiLFx1MDExQzoiRyIsXHUwMTFFOiJHIixcdTAxMjA6IkciLFx1MDEyMjoiRyIsXHUwMTFEOiJnIixcdTAxMUY6ImciLFx1MDEyMToiZyIsXHUwMTIzOiJnIixcdTAxMjQ6IkgiLFx1MDEyNjoiSCIsXHUwMTI1OiJoIixcdTAxMjc6ImgiLFx1MDEyODoiSSIsXHUwMTJBOiJJIixcdTAxMkM6IkkiLFx1MDEyRToiSSIsXHUwMTMwOiJJIixcdTAxMjk6ImkiLFx1MDEyQjoiaSIsXHUwMTJEOiJpIixcdTAxMkY6ImkiLFx1MDEzMToiaSIsXHUwMTM0OiJKIixcdTAxMzU6ImoiLFx1MDEzNjoiSyIsXHUwMTM3OiJrIixcdTAxMzg6ImsiLFx1MDEzOToiTCIsXHUwMTNCOiJMIixcdTAxM0Q6IkwiLFx1MDEzRjoiTCIsXHUwMTQxOiJMIixcdTAxM0E6ImwiLFx1MDEzQzoibCIsXHUwMTNFOiJsIixcdTAxNDA6ImwiLFx1MDE0MjoibCIsXHUwMTQzOiJOIixcdTAxNDU6Ik4iLFx1MDE0NzoiTiIsXHUwMTRBOiJOIixcdTAxNDQ6Im4iLFx1MDE0NjoibiIsXHUwMTQ4OiJuIixcdTAxNEI6Im4iLFx1MDE0QzoiTyIsXHUwMTRFOiJPIixcdTAxNTA6Ik8iLFx1MDE0RDoibyIsXHUwMTRGOiJvIixcdTAxNTE6Im8iLFx1MDE1NDoiUiIsXHUwMTU2OiJSIixcdTAxNTg6IlIiLFx1MDE1NToiciIsXHUwMTU3OiJyIixcdTAxNTk6InIiLFx1MDE1QToiUyIsXHUwMTVDOiJTIixcdTAxNUU6IlMiLFx1MDE2MDoiUyIsXHUwMTVCOiJzIixcdTAxNUQ6InMiLFx1MDE1RjoicyIsXHUwMTYxOiJzIixcdTAxNjI6IlQiLFx1MDE2NDoiVCIsXHUwMTY2OiJUIixcdTAxNjM6InQiLFx1MDE2NToidCIsXHUwMTY3OiJ0IixcdTAxNjg6IlUiLFx1MDE2QToiVSIsXHUwMTZDOiJVIixcdTAxNkU6IlUiLFx1MDE3MDoiVSIsXHUwMTcyOiJVIixcdTAxNjk6InUiLFx1MDE2QjoidSIsXHUwMTZEOiJ1IixcdTAxNkY6InUiLFx1MDE3MToidSIsXHUwMTczOiJ1IixcdTAxNzQ6IlciLFx1MDE3NToidyIsXHUwMTc2OiJZIixcdTAxNzc6InkiLFx1MDE3ODoiWSIsXHUwMTc5OiJaIixcdTAxN0I6IloiLFx1MDE3RDoiWiIsXHUwMTdBOiJ6IixcdTAxN0M6InoiLFx1MDE3RToieiIsXHUwMTMyOiJJSiIsXHUwMTMzOiJpaiIsXHUwMTUyOiJPZSIsXHUwMTUzOiJvZSIsXHUwMTQ5OiInbiIsXHUwMTdGOiJzIn0seW89eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7IiwnIic6IiZxdW90OyIsIiciOiImIzM5OyJ9LG1vPXsiJmFtcDsiOiImIiwiJmx0OyI6IjwiLCImZ3Q7IjoiPiIsIiZxdW90OyI6JyInLCImIzM5OyI6IicifSxJbz17IlxcIjoiXFwiLCInIjoiJyIsIlxuIjoibiIsIlxyIjoiciIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxSbz1wYXJzZUZsb2F0LFNvPXBhcnNlSW50LFFpPXR5cGVvZiBnbG9iYWxUaGlzPT0ib2JqZWN0IiYmZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcy5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbFRoaXMsRW89dHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZiwkPVFpfHxFb3x8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSx3cj10eXBlb2YgYnQ9PSJvYmplY3QiJiZidCYmIWJ0Lm5vZGVUeXBlJiZidCxpdD13ciYmdHlwZW9mIGVlPT0ib2JqZWN0IiYmZWUmJiFlZS5ub2RlVHlwZSYmZWUsVmk9aXQmJml0LmV4cG9ydHM9PT13cix4cj1WaSYmUWkucHJvY2Vzcyxobj0oZnVuY3Rpb24oKXt0cnl7dmFyIGE9aXQmJml0LnJlcXVpcmUmJml0LnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gYXx8eHImJnhyLmJpbmRpbmcmJnhyLmJpbmRpbmcoInV0aWwiKX1jYXRjaHt9fSkoKSxraT1obiYmaG4uaXNBcnJheUJ1ZmZlcixqaT1obiYmaG4uaXNEYXRlLG51PWhuJiZobi5pc01hcCx0dT1obiYmaG4uaXNSZWdFeHAsZXU9aG4mJmhuLmlzU2V0LHJ1PWhuJiZobi5pc1R5cGVkQXJyYXk7ZnVuY3Rpb24gdW4oYSxnLGgpe3N3aXRjaChoLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBhLmNhbGwoZyk7Y2FzZSAxOnJldHVybiBhLmNhbGwoZyxoWzBdKTtjYXNlIDI6cmV0dXJuIGEuY2FsbChnLGhbMF0saFsxXSk7Y2FzZSAzOnJldHVybiBhLmNhbGwoZyxoWzBdLGhbMV0saFsyXSl9cmV0dXJuIGEuYXBwbHkoZyxoKX1mdW5jdGlvbiBMbyhhLGcsaCx3KXtmb3IodmFyIEk9LTEsVz1hPT1udWxsPzA6YS5sZW5ndGg7KytJPFc7KXt2YXIgcT1hW0ldO2codyxxLGgocSksYSl9cmV0dXJuIHd9ZnVuY3Rpb24gZ24oYSxnKXtmb3IodmFyIGg9LTEsdz1hPT1udWxsPzA6YS5sZW5ndGg7KytoPHcmJmcoYVtoXSxoLGEpIT09ITE7KTtyZXR1cm4gYX1mdW5jdGlvbiBUbyhhLGcpe2Zvcih2YXIgaD1hPT1udWxsPzA6YS5sZW5ndGg7aC0tJiZnKGFbaF0saCxhKSE9PSExOyk7cmV0dXJuIGF9ZnVuY3Rpb24gaXUoYSxnKXtmb3IodmFyIGg9LTEsdz1hPT1udWxsPzA6YS5sZW5ndGg7KytoPHc7KWlmKCFnKGFbaF0saCxhKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBabihhLGcpe2Zvcih2YXIgaD0tMSx3PWE9PW51bGw/MDphLmxlbmd0aCxJPTAsVz1bXTsrK2g8dzspe3ZhciBxPWFbaF07ZyhxLGgsYSkmJihXW0krK109cSl9cmV0dXJuIFd9ZnVuY3Rpb24gcGUoYSxnKXt2YXIgaD1hPT1udWxsPzA6YS5sZW5ndGg7cmV0dXJuISFoJiZBdChhLGcsMCk+LTF9ZnVuY3Rpb24gQXIoYSxnLGgpe2Zvcih2YXIgdz0tMSxJPWE9PW51bGw/MDphLmxlbmd0aDsrK3c8STspaWYoaChnLGFbd10pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEQoYSxnKXtmb3IodmFyIGg9LTEsdz1hPT1udWxsPzA6YS5sZW5ndGgsST1BcnJheSh3KTsrK2g8dzspSVtoXT1nKGFbaF0saCxhKTtyZXR1cm4gSX1mdW5jdGlvbiBZbihhLGcpe2Zvcih2YXIgaD0tMSx3PWcubGVuZ3RoLEk9YS5sZW5ndGg7KytoPHc7KWFbSStoXT1nW2hdO3JldHVybiBhfWZ1bmN0aW9uIHlyKGEsZyxoLHcpe3ZhciBJPS0xLFc9YT09bnVsbD8wOmEubGVuZ3RoO2Zvcih3JiZXJiYoaD1hWysrSV0pOysrSTxXOyloPWcoaCxhW0ldLEksYSk7cmV0dXJuIGh9ZnVuY3Rpb24gQ28oYSxnLGgsdyl7dmFyIEk9YT09bnVsbD8wOmEubGVuZ3RoO2Zvcih3JiZJJiYoaD1hWy0tSV0pO0ktLTspaD1nKGgsYVtJXSxJLGEpO3JldHVybiBofWZ1bmN0aW9uIG1yKGEsZyl7Zm9yKHZhciBoPS0xLHc9YT09bnVsbD8wOmEubGVuZ3RoOysraDx3OylpZihnKGFbaF0saCxhKSlyZXR1cm4hMDtyZXR1cm4hMX12YXIgT289SXIoImxlbmd0aCIpO2Z1bmN0aW9uIFdvKGEpe3JldHVybiBhLnNwbGl0KCIiKX1mdW5jdGlvbiBibyhhKXtyZXR1cm4gYS5tYXRjaChObCl8fFtdfWZ1bmN0aW9uIHV1KGEsZyxoKXt2YXIgdztyZXR1cm4gaChhLGZ1bmN0aW9uKEksVyxxKXtpZihnKEksVyxxKSlyZXR1cm4gdz1XLCExfSksd31mdW5jdGlvbiBfZShhLGcsaCx3KXtmb3IodmFyIEk9YS5sZW5ndGgsVz1oKyh3PzE6LTEpO3c/Vy0tOisrVzxJOylpZihnKGFbV10sVyxhKSlyZXR1cm4gVztyZXR1cm4tMX1mdW5jdGlvbiBBdChhLGcsaCl7cmV0dXJuIGc9PT1nP3pvKGEsZyxoKTpfZShhLGZ1LGgpfWZ1bmN0aW9uIEJvKGEsZyxoLHcpe2Zvcih2YXIgST1oLTEsVz1hLmxlbmd0aDsrK0k8VzspaWYodyhhW0ldLGcpKXJldHVybiBJO3JldHVybi0xfWZ1bmN0aW9uIGZ1KGEpe3JldHVybiBhIT09YX1mdW5jdGlvbiBsdShhLGcpe3ZhciBoPWE9PW51bGw/MDphLmxlbmd0aDtyZXR1cm4gaD9TcihhLGcpL2g6ZmV9ZnVuY3Rpb24gSXIoYSl7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnPT1udWxsP2w6Z1thXX19ZnVuY3Rpb24gUnIoYSl7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBhPT1udWxsP2w6YVtnXX19ZnVuY3Rpb24gb3UoYSxnLGgsdyxJKXtyZXR1cm4gSShhLGZ1bmN0aW9uKFcscSxQKXtoPXc/KHc9ITEsVyk6ZyhoLFcscSxQKX0pLGh9ZnVuY3Rpb24gUG8oYSxnKXt2YXIgaD1hLmxlbmd0aDtmb3IoYS5zb3J0KGcpO2gtLTspYVtoXT1hW2hdLnZhbHVlO3JldHVybiBhfWZ1bmN0aW9uIFNyKGEsZyl7Zm9yKHZhciBoLHc9LTEsST1hLmxlbmd0aDsrK3c8STspe3ZhciBXPWcoYVt3XSk7VyE9PWwmJihoPWg9PT1sP1c6aCtXKX1yZXR1cm4gaH1mdW5jdGlvbiBFcihhLGcpe2Zvcih2YXIgaD0tMSx3PUFycmF5KGEpOysraDxhOyl3W2hdPWcoaCk7cmV0dXJuIHd9ZnVuY3Rpb24gTW8oYSxnKXtyZXR1cm4gRChnLGZ1bmN0aW9uKGgpe3JldHVybltoLGFbaF1dfSl9ZnVuY3Rpb24gc3UoYSl7cmV0dXJuIGEmJmEuc2xpY2UoMCxndShhKSsxKS5yZXBsYWNlKGhyLCIiKX1mdW5jdGlvbiBmbihhKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGEoZyl9fWZ1bmN0aW9uIExyKGEsZyl7cmV0dXJuIEQoZyxmdW5jdGlvbihoKXtyZXR1cm4gYVtoXX0pfWZ1bmN0aW9uIEh0KGEsZyl7cmV0dXJuIGEuaGFzKGcpfWZ1bmN0aW9uIGF1KGEsZyl7Zm9yKHZhciBoPS0xLHc9YS5sZW5ndGg7KytoPHcmJkF0KGcsYVtoXSwwKT4tMTspO3JldHVybiBofWZ1bmN0aW9uIGN1KGEsZyl7Zm9yKHZhciBoPWEubGVuZ3RoO2gtLSYmQXQoZyxhW2hdLDApPi0xOyk7cmV0dXJuIGh9ZnVuY3Rpb24gRm8oYSxnKXtmb3IodmFyIGg9YS5sZW5ndGgsdz0wO2gtLTspYVtoXT09PWcmJisrdztyZXR1cm4gd312YXIgRG89UnIoQW8pLFVvPVJyKHlvKTtmdW5jdGlvbiBObyhhKXtyZXR1cm4iXFwiK0lvW2FdfWZ1bmN0aW9uIEdvKGEsZyl7cmV0dXJuIGE9PW51bGw/bDphW2ddfWZ1bmN0aW9uIHl0KGEpe3JldHVybiBfby50ZXN0KGEpfWZ1bmN0aW9uIEhvKGEpe3JldHVybiB2by50ZXN0KGEpfWZ1bmN0aW9uIHFvKGEpe2Zvcih2YXIgZyxoPVtdOyEoZz1hLm5leHQoKSkuZG9uZTspaC5wdXNoKGcudmFsdWUpO3JldHVybiBofWZ1bmN0aW9uIFRyKGEpe3ZhciBnPS0xLGg9QXJyYXkoYS5zaXplKTtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKHcsSSl7aFsrK2ddPVtJLHddfSksaH1mdW5jdGlvbiBodShhLGcpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gYShnKGgpKX19ZnVuY3Rpb24gWG4oYSxnKXtmb3IodmFyIGg9LTEsdz1hLmxlbmd0aCxJPTAsVz1bXTsrK2g8dzspe3ZhciBxPWFbaF07KHE9PT1nfHxxPT09aWUpJiYoYVtoXT1pZSxXW0krK109aCl9cmV0dXJuIFd9ZnVuY3Rpb24gZGUoYSl7dmFyIGc9LTEsaD1BcnJheShhLnNpemUpO3JldHVybiBhLmZvckVhY2goZnVuY3Rpb24odyl7aFsrK2ddPXd9KSxofWZ1bmN0aW9uIEtvKGEpe3ZhciBnPS0xLGg9QXJyYXkoYS5zaXplKTtyZXR1cm4gYS5mb3JFYWNoKGZ1bmN0aW9uKHcpe2hbKytnXT1bdyx3XX0pLGh9ZnVuY3Rpb24gem8oYSxnLGgpe2Zvcih2YXIgdz1oLTEsST1hLmxlbmd0aDsrK3c8STspaWYoYVt3XT09PWcpcmV0dXJuIHc7cmV0dXJuLTF9ZnVuY3Rpb24gJG8oYSxnLGgpe2Zvcih2YXIgdz1oKzE7dy0tOylpZihhW3ddPT09ZylyZXR1cm4gdztyZXR1cm4gd31mdW5jdGlvbiBtdChhKXtyZXR1cm4geXQoYSk/WW8oYSk6T28oYSl9ZnVuY3Rpb24gbW4oYSl7cmV0dXJuIHl0KGEpP1hvKGEpOldvKGEpfWZ1bmN0aW9uIGd1KGEpe2Zvcih2YXIgZz1hLmxlbmd0aDtnLS0mJk1sLnRlc3QoYS5jaGFyQXQoZykpOyk7cmV0dXJuIGd9dmFyIFpvPVJyKG1vKTtmdW5jdGlvbiBZbyhhKXtmb3IodmFyIGc9dnIubGFzdEluZGV4PTA7dnIudGVzdChhKTspKytnO3JldHVybiBnfWZ1bmN0aW9uIFhvKGEpe3JldHVybiBhLm1hdGNoKHZyKXx8W119ZnVuY3Rpb24gSm8oYSl7cmV0dXJuIGEubWF0Y2gocG8pfHxbXX12YXIgUW89KGZ1bmN0aW9uIGEoZyl7Zz1nPT1udWxsPyQ6Sm4uZGVmYXVsdHMoJC5PYmplY3QoKSxnLEpuLnBpY2soJCx3bykpO3ZhciBoPWcuQXJyYXksdz1nLkRhdGUsST1nLkVycm9yLFc9Zy5GdW5jdGlvbixxPWcuTWF0aCxQPWcuT2JqZWN0LENyPWcuUmVnRXhwLFZvPWcuU3RyaW5nLHBuPWcuVHlwZUVycm9yLHZlPWgucHJvdG90eXBlLGtvPVcucHJvdG90eXBlLEl0PVAucHJvdG90eXBlLHdlPWdbIl9fY29yZS1qc19zaGFyZWRfXyJdLHhlPWtvLnRvU3RyaW5nLEI9SXQuaGFzT3duUHJvcGVydHksam89MCxwdT0oZnVuY3Rpb24oKXt2YXIgbj0vW14uXSskLy5leGVjKHdlJiZ3ZS5rZXlzJiZ3ZS5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIG4/IlN5bWJvbChzcmMpXzEuIituOiIifSkoKSxBZT1JdC50b1N0cmluZyxucz14ZS5jYWxsKFApLHRzPSQuXyxlcz1DcigiXiIreGUuY2FsbChCKS5yZXBsYWNlKGNyLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpLHllPVZpP2cuQnVmZmVyOmwsUW49Zy5TeW1ib2wsbWU9Zy5VaW50OEFycmF5LF91PXllP3llLmFsbG9jVW5zYWZlOmwsSWU9aHUoUC5nZXRQcm90b3R5cGVPZixQKSxkdT1QLmNyZWF0ZSx2dT1JdC5wcm9wZXJ0eUlzRW51bWVyYWJsZSxSZT12ZS5zcGxpY2Usd3U9UW4/UW4uaXNDb25jYXRTcHJlYWRhYmxlOmwscXQ9UW4/UW4uaXRlcmF0b3I6bCx1dD1Rbj9Rbi50b1N0cmluZ1RhZzpsLFNlPShmdW5jdGlvbigpe3RyeXt2YXIgbj1hdChQLCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiBuKHt9LCIiLHt9KSxufWNhdGNoe319KSgpLHJzPWcuY2xlYXJUaW1lb3V0IT09JC5jbGVhclRpbWVvdXQmJmcuY2xlYXJUaW1lb3V0LGlzPXcmJncubm93IT09JC5EYXRlLm5vdyYmdy5ub3csdXM9Zy5zZXRUaW1lb3V0IT09JC5zZXRUaW1lb3V0JiZnLnNldFRpbWVvdXQsRWU9cS5jZWlsLExlPXEuZmxvb3IsT3I9UC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsZnM9eWU/eWUuaXNCdWZmZXI6bCx4dT1nLmlzRmluaXRlLGxzPXZlLmpvaW4sb3M9aHUoUC5rZXlzLFApLEs9cS5tYXgsWD1xLm1pbixzcz13Lm5vdyxhcz1nLnBhcnNlSW50LEF1PXEucmFuZG9tLGNzPXZlLnJldmVyc2UsV3I9YXQoZywiRGF0YVZpZXciKSxLdD1hdChnLCJNYXAiKSxicj1hdChnLCJQcm9taXNlIiksUnQ9YXQoZywiU2V0IiksenQ9YXQoZywiV2Vha01hcCIpLCR0PWF0KFAsImNyZWF0ZSIpLFRlPXp0JiZuZXcgenQsU3Q9e30saHM9Y3QoV3IpLGdzPWN0KEt0KSxwcz1jdChiciksX3M9Y3QoUnQpLGRzPWN0KHp0KSxDZT1Rbj9Rbi5wcm90b3R5cGU6bCxadD1DZT9DZS52YWx1ZU9mOmwseXU9Q2U/Q2UudG9TdHJpbmc6bDtmdW5jdGlvbiB1KG4pe2lmKE4obikmJiFSKG4pJiYhKG4gaW5zdGFuY2VvZiBDKSl7aWYobiBpbnN0YW5jZW9mIF9uKXJldHVybiBuO2lmKEIuY2FsbChuLCJfX3dyYXBwZWRfXyIpKXJldHVybiBJZihuKX1yZXR1cm4gbmV3IF9uKG4pfXZhciBFdD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7fXJldHVybiBmdW5jdGlvbih0KXtpZighVSh0KSlyZXR1cm57fTtpZihkdSlyZXR1cm4gZHUodCk7bi5wcm90b3R5cGU9dDt2YXIgZT1uZXcgbjtyZXR1cm4gbi5wcm90b3R5cGU9bCxlfX0pKCk7ZnVuY3Rpb24gT2UoKXt9ZnVuY3Rpb24gX24obix0KXt0aGlzLl9fd3JhcHBlZF9fPW4sdGhpcy5fX2FjdGlvbnNfXz1bXSx0aGlzLl9fY2hhaW5fXz0hIXQsdGhpcy5fX2luZGV4X189MCx0aGlzLl9fdmFsdWVzX189bH11LnRlbXBsYXRlU2V0dGluZ3M9e2VzY2FwZTpDbCxldmFsdWF0ZTpPbCxpbnRlcnBvbGF0ZTpPaSx2YXJpYWJsZToiIixpbXBvcnRzOntfOnV9fSx1LnByb3RvdHlwZT1PZS5wcm90b3R5cGUsdS5wcm90b3R5cGUuY29uc3RydWN0b3I9dSxfbi5wcm90b3R5cGU9RXQoT2UucHJvdG90eXBlKSxfbi5wcm90b3R5cGUuY29uc3RydWN0b3I9X247ZnVuY3Rpb24gQyhuKXt0aGlzLl9fd3JhcHBlZF9fPW4sdGhpcy5fX2FjdGlvbnNfXz1bXSx0aGlzLl9fZGlyX189MSx0aGlzLl9fZmlsdGVyZWRfXz0hMSx0aGlzLl9faXRlcmF0ZWVzX189W10sdGhpcy5fX3Rha2VDb3VudF9fPVRuLHRoaXMuX192aWV3c19fPVtdfWZ1bmN0aW9uIHZzKCl7dmFyIG49bmV3IEModGhpcy5fX3dyYXBwZWRfXyk7cmV0dXJuIG4uX19hY3Rpb25zX189bm4odGhpcy5fX2FjdGlvbnNfXyksbi5fX2Rpcl9fPXRoaXMuX19kaXJfXyxuLl9fZmlsdGVyZWRfXz10aGlzLl9fZmlsdGVyZWRfXyxuLl9faXRlcmF0ZWVzX189bm4odGhpcy5fX2l0ZXJhdGVlc19fKSxuLl9fdGFrZUNvdW50X189dGhpcy5fX3Rha2VDb3VudF9fLG4uX192aWV3c19fPW5uKHRoaXMuX192aWV3c19fKSxufWZ1bmN0aW9uIHdzKCl7aWYodGhpcy5fX2ZpbHRlcmVkX18pe3ZhciBuPW5ldyBDKHRoaXMpO24uX19kaXJfXz0tMSxuLl9fZmlsdGVyZWRfXz0hMH1lbHNlIG49dGhpcy5jbG9uZSgpLG4uX19kaXJfXyo9LTE7cmV0dXJuIG59ZnVuY3Rpb24geHMoKXt2YXIgbj10aGlzLl9fd3JhcHBlZF9fLnZhbHVlKCksdD10aGlzLl9fZGlyX18sZT1SKG4pLHI9dDwwLGk9ZT9uLmxlbmd0aDowLGY9V2EoMCxpLHRoaXMuX192aWV3c19fKSxvPWYuc3RhcnQscz1mLmVuZCxjPXMtbyxwPXI/czpvLTEsXz10aGlzLl9faXRlcmF0ZWVzX18sZD1fLmxlbmd0aCx2PTAseD1YKGMsdGhpcy5fX3Rha2VDb3VudF9fKTtpZighZXx8IXImJmk9PWMmJng9PWMpcmV0dXJuICR1KG4sdGhpcy5fX2FjdGlvbnNfXyk7dmFyIHk9W107bjpmb3IoO2MtLSYmdjx4Oyl7cCs9dDtmb3IodmFyIEU9LTEsbT1uW3BdOysrRTxkOyl7dmFyIFQ9X1tFXSxPPVQuaXRlcmF0ZWUsc249VC50eXBlLGo9TyhtKTtpZihzbj09aGwpbT1qO2Vsc2UgaWYoIWope2lmKHNuPT1TaSljb250aW51ZSBuO2JyZWFrIG59fXlbdisrXT1tfXJldHVybiB5fUMucHJvdG90eXBlPUV0KE9lLnByb3RvdHlwZSksQy5wcm90b3R5cGUuY29uc3RydWN0b3I9QztmdW5jdGlvbiBmdChuKXt2YXIgdD0tMSxlPW49PW51bGw/MDpuLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrdDxlOyl7dmFyIHI9blt0XTt0aGlzLnNldChyWzBdLHJbMV0pfX1mdW5jdGlvbiBBcygpe3RoaXMuX19kYXRhX189JHQ/JHQobnVsbCk6e30sdGhpcy5zaXplPTB9ZnVuY3Rpb24geXMobil7dmFyIHQ9dGhpcy5oYXMobikmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW25dO3JldHVybiB0aGlzLnNpemUtPXQ/MTowLHR9ZnVuY3Rpb24gbXMobil7dmFyIHQ9dGhpcy5fX2RhdGFfXztpZigkdCl7dmFyIGU9dFtuXTtyZXR1cm4gZT09PW5yP2w6ZX1yZXR1cm4gQi5jYWxsKHQsbik/dFtuXTpsfWZ1bmN0aW9uIElzKG4pe3ZhciB0PXRoaXMuX19kYXRhX187cmV0dXJuICR0P3Rbbl0hPT1sOkIuY2FsbCh0LG4pfWZ1bmN0aW9uIFJzKG4sdCl7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyhuKT8wOjEsZVtuXT0kdCYmdD09PWw/bnI6dCx0aGlzfWZ0LnByb3RvdHlwZS5jbGVhcj1BcyxmdC5wcm90b3R5cGUuZGVsZXRlPXlzLGZ0LnByb3RvdHlwZS5nZXQ9bXMsZnQucHJvdG90eXBlLmhhcz1JcyxmdC5wcm90b3R5cGUuc2V0PVJzO2Z1bmN0aW9uIE1uKG4pe3ZhciB0PS0xLGU9bj09bnVsbD8wOm4ubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7Kyt0PGU7KXt2YXIgcj1uW3RdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIFNzKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH1mdW5jdGlvbiBFcyhuKXt2YXIgdD10aGlzLl9fZGF0YV9fLGU9V2UodCxuKTtpZihlPDApcmV0dXJuITE7dmFyIHI9dC5sZW5ndGgtMTtyZXR1cm4gZT09cj90LnBvcCgpOlJlLmNhbGwodCxlLDEpLC0tdGhpcy5zaXplLCEwfWZ1bmN0aW9uIExzKG4pe3ZhciB0PXRoaXMuX19kYXRhX18sZT1XZSh0LG4pO3JldHVybiBlPDA/bDp0W2VdWzFdfWZ1bmN0aW9uIFRzKG4pe3JldHVybiBXZSh0aGlzLl9fZGF0YV9fLG4pPi0xfWZ1bmN0aW9uIENzKG4sdCl7dmFyIGU9dGhpcy5fX2RhdGFfXyxyPVdlKGUsbik7cmV0dXJuIHI8MD8oKyt0aGlzLnNpemUsZS5wdXNoKFtuLHRdKSk6ZVtyXVsxXT10LHRoaXN9TW4ucHJvdG90eXBlLmNsZWFyPVNzLE1uLnByb3RvdHlwZS5kZWxldGU9RXMsTW4ucHJvdG90eXBlLmdldD1McyxNbi5wcm90b3R5cGUuaGFzPVRzLE1uLnByb3RvdHlwZS5zZXQ9Q3M7ZnVuY3Rpb24gRm4obil7dmFyIHQ9LTEsZT1uPT1udWxsPzA6bi5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3Q8ZTspe3ZhciByPW5bdF07dGhpcy5zZXQoclswXSxyWzFdKX19ZnVuY3Rpb24gT3MoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBmdCxtYXA6bmV3KEt0fHxNbiksc3RyaW5nOm5ldyBmdH19ZnVuY3Rpb24gV3Mobil7dmFyIHQ9S2UodGhpcyxuKS5kZWxldGUobik7cmV0dXJuIHRoaXMuc2l6ZS09dD8xOjAsdH1mdW5jdGlvbiBicyhuKXtyZXR1cm4gS2UodGhpcyxuKS5nZXQobil9ZnVuY3Rpb24gQnMobil7cmV0dXJuIEtlKHRoaXMsbikuaGFzKG4pfWZ1bmN0aW9uIFBzKG4sdCl7dmFyIGU9S2UodGhpcyxuKSxyPWUuc2l6ZTtyZXR1cm4gZS5zZXQobix0KSx0aGlzLnNpemUrPWUuc2l6ZT09cj8wOjEsdGhpc31Gbi5wcm90b3R5cGUuY2xlYXI9T3MsRm4ucHJvdG90eXBlLmRlbGV0ZT1XcyxGbi5wcm90b3R5cGUuZ2V0PWJzLEZuLnByb3RvdHlwZS5oYXM9QnMsRm4ucHJvdG90eXBlLnNldD1QcztmdW5jdGlvbiBsdChuKXt2YXIgdD0tMSxlPW49PW51bGw/MDpuLmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgRm47Kyt0PGU7KXRoaXMuYWRkKG5bdF0pfWZ1bmN0aW9uIE1zKG4pe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldChuLG5yKSx0aGlzfWZ1bmN0aW9uIEZzKG4pe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhuKX1sdC5wcm90b3R5cGUuYWRkPWx0LnByb3RvdHlwZS5wdXNoPU1zLGx0LnByb3RvdHlwZS5oYXM9RnM7ZnVuY3Rpb24gSW4obil7dmFyIHQ9dGhpcy5fX2RhdGFfXz1uZXcgTW4obik7dGhpcy5zaXplPXQuc2l6ZX1mdW5jdGlvbiBEcygpe3RoaXMuX19kYXRhX189bmV3IE1uLHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIFVzKG4pe3ZhciB0PXRoaXMuX19kYXRhX18sZT10LmRlbGV0ZShuKTtyZXR1cm4gdGhpcy5zaXplPXQuc2l6ZSxlfWZ1bmN0aW9uIE5zKG4pe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldChuKX1mdW5jdGlvbiBHcyhuKXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXMobil9ZnVuY3Rpb24gSHMobix0KXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGUgaW5zdGFuY2VvZiBNbil7dmFyIHI9ZS5fX2RhdGFfXztpZighS3R8fHIubGVuZ3RoPGJuLTEpcmV0dXJuIHIucHVzaChbbix0XSksdGhpcy5zaXplPSsrZS5zaXplLHRoaXM7ZT10aGlzLl9fZGF0YV9fPW5ldyBGbihyKX1yZXR1cm4gZS5zZXQobix0KSx0aGlzLnNpemU9ZS5zaXplLHRoaXN9SW4ucHJvdG90eXBlLmNsZWFyPURzLEluLnByb3RvdHlwZS5kZWxldGU9VXMsSW4ucHJvdG90eXBlLmdldD1OcyxJbi5wcm90b3R5cGUuaGFzPUdzLEluLnByb3RvdHlwZS5zZXQ9SHM7ZnVuY3Rpb24gbXUobix0KXt2YXIgZT1SKG4pLHI9IWUmJmh0KG4pLGk9IWUmJiFyJiZ0dChuKSxmPSFlJiYhciYmIWkmJk90KG4pLG89ZXx8cnx8aXx8ZixzPW8/RXIobi5sZW5ndGgsVm8pOltdLGM9cy5sZW5ndGg7Zm9yKHZhciBwIGluIG4pKHR8fEIuY2FsbChuLHApKSYmIShvJiYocD09Imxlbmd0aCJ8fGkmJihwPT0ib2Zmc2V0Inx8cD09InBhcmVudCIpfHxmJiYocD09ImJ1ZmZlciJ8fHA9PSJieXRlTGVuZ3RoInx8cD09ImJ5dGVPZmZzZXQiKXx8R24ocCxjKSkpJiZzLnB1c2gocCk7cmV0dXJuIHN9ZnVuY3Rpb24gSXUobil7dmFyIHQ9bi5sZW5ndGg7cmV0dXJuIHQ/bltLcigwLHQtMSldOmx9ZnVuY3Rpb24gcXMobix0KXtyZXR1cm4gemUobm4obiksb3QodCwwLG4ubGVuZ3RoKSl9ZnVuY3Rpb24gS3Mobil7cmV0dXJuIHplKG5uKG4pKX1mdW5jdGlvbiBCcihuLHQsZSl7KGUhPT1sJiYhUm4oblt0XSxlKXx8ZT09PWwmJiEodCBpbiBuKSkmJkRuKG4sdCxlKX1mdW5jdGlvbiBZdChuLHQsZSl7dmFyIHI9blt0XTsoIShCLmNhbGwobix0KSYmUm4ocixlKSl8fGU9PT1sJiYhKHQgaW4gbikpJiZEbihuLHQsZSl9ZnVuY3Rpb24gV2Uobix0KXtmb3IodmFyIGU9bi5sZW5ndGg7ZS0tOylpZihSbihuW2VdWzBdLHQpKXJldHVybiBlO3JldHVybi0xfWZ1bmN0aW9uIHpzKG4sdCxlLHIpe3JldHVybiBWbihuLGZ1bmN0aW9uKGksZixvKXt0KHIsaSxlKGkpLG8pfSkscn1mdW5jdGlvbiBSdShuLHQpe3JldHVybiBuJiZPbih0LFoodCksbil9ZnVuY3Rpb24gJHMobix0KXtyZXR1cm4gbiYmT24odCxlbih0KSxuKX1mdW5jdGlvbiBEbihuLHQsZSl7dD09Il9fcHJvdG9fXyImJlNlP1NlKG4sdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZSx3cml0YWJsZTohMH0pOm5bdF09ZX1mdW5jdGlvbiBQcihuLHQpe2Zvcih2YXIgZT0tMSxyPXQubGVuZ3RoLGk9aChyKSxmPW49PW51bGw7KytlPHI7KWlbZV09Zj9sOnBpKG4sdFtlXSk7cmV0dXJuIGl9ZnVuY3Rpb24gb3Qobix0LGUpe3JldHVybiBuPT09biYmKGUhPT1sJiYobj1uPD1lP246ZSksdCE9PWwmJihuPW4+PXQ/bjp0KSksbn1mdW5jdGlvbiBkbihuLHQsZSxyLGksZil7dmFyIG8scz10JnpuLGM9dCZJaSxwPXQmZ3Q7aWYoZSYmKG89aT9lKG4scixpLGYpOmUobikpLG8hPT1sKXJldHVybiBvO2lmKCFVKG4pKXJldHVybiBuO3ZhciBfPVIobik7aWYoXyl7aWYobz1CYShuKSwhcylyZXR1cm4gbm4obixvKX1lbHNle3ZhciBkPUoobiksdj1kPT1zZXx8ZD09RWk7aWYodHQobikpcmV0dXJuIFh1KG4scyk7aWYoZD09UG58fGQ9PXZ0fHx2JiYhaSl7aWYobz1jfHx2P3t9OnBmKG4pLCFzKXJldHVybiBjP21hKG4sJHMobyxuKSk6eWEobixSdShvLG4pKX1lbHNle2lmKCFNW2RdKXJldHVybiBpP246e307bz1QYShuLGQscyl9fWZ8fChmPW5ldyBJbik7dmFyIHg9Zi5nZXQobik7aWYoeClyZXR1cm4geDtmLnNldChuLG8pLEtmKG4pP24uZm9yRWFjaChmdW5jdGlvbihtKXtvLmFkZChkbihtLHQsZSxtLG4sZikpfSk6SGYobikmJm4uZm9yRWFjaChmdW5jdGlvbihtLFQpe28uc2V0KFQsZG4obSx0LGUsVCxuLGYpKX0pO3ZhciB5PXA/Yz9uaTpqcjpjP2VuOlosRT1fP2w6eShuKTtyZXR1cm4gZ24oRXx8bixmdW5jdGlvbihtLFQpe0UmJihUPW0sbT1uW1RdKSxZdChvLFQsZG4obSx0LGUsVCxuLGYpKX0pLG99ZnVuY3Rpb24gWnMobil7dmFyIHQ9WihuKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIFN1KGUsbix0KX19ZnVuY3Rpb24gU3Uobix0LGUpe3ZhciByPWUubGVuZ3RoO2lmKG49PW51bGwpcmV0dXJuIXI7Zm9yKG49UChuKTtyLS07KXt2YXIgaT1lW3JdLGY9dFtpXSxvPW5baV07aWYobz09PWwmJiEoaSBpbiBuKXx8IWYobykpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gRXUobix0LGUpe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBwbih6KTtyZXR1cm4gbmUoZnVuY3Rpb24oKXtuLmFwcGx5KGwsZSl9LHQpfWZ1bmN0aW9uIFh0KG4sdCxlLHIpe3ZhciBpPS0xLGY9cGUsbz0hMCxzPW4ubGVuZ3RoLGM9W10scD10Lmxlbmd0aDtpZighcylyZXR1cm4gYztlJiYodD1EKHQsZm4oZSkpKSxyPyhmPUFyLG89ITEpOnQubGVuZ3RoPj1ibiYmKGY9SHQsbz0hMSx0PW5ldyBsdCh0KSk7bjpmb3IoOysraTxzOyl7dmFyIF89bltpXSxkPWU9PW51bGw/XzplKF8pO2lmKF89cnx8XyE9PTA/XzowLG8mJmQ9PT1kKXtmb3IodmFyIHY9cDt2LS07KWlmKHRbdl09PT1kKWNvbnRpbnVlIG47Yy5wdXNoKF8pfWVsc2UgZih0LGQscil8fGMucHVzaChfKX1yZXR1cm4gY312YXIgVm49anUoQ24pLEx1PWp1KEZyLCEwKTtmdW5jdGlvbiBZcyhuLHQpe3ZhciBlPSEwO3JldHVybiBWbihuLGZ1bmN0aW9uKHIsaSxmKXtyZXR1cm4gZT0hIXQocixpLGYpLGV9KSxlfWZ1bmN0aW9uIGJlKG4sdCxlKXtmb3IodmFyIHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspe3ZhciBmPW5bcl0sbz10KGYpO2lmKG8hPW51bGwmJihzPT09bD9vPT09byYmIW9uKG8pOmUobyxzKSkpdmFyIHM9byxjPWZ9cmV0dXJuIGN9ZnVuY3Rpb24gWHMobix0LGUscil7dmFyIGk9bi5sZW5ndGg7Zm9yKGU9UyhlKSxlPDAmJihlPS1lPmk/MDppK2UpLHI9cj09PWx8fHI+aT9pOlMocikscjwwJiYocis9aSkscj1lPnI/MDokZihyKTtlPHI7KW5bZSsrXT10O3JldHVybiBufWZ1bmN0aW9uIFR1KG4sdCl7dmFyIGU9W107cmV0dXJuIFZuKG4sZnVuY3Rpb24ocixpLGYpe3QocixpLGYpJiZlLnB1c2gocil9KSxlfWZ1bmN0aW9uIFkobix0LGUscixpKXt2YXIgZj0tMSxvPW4ubGVuZ3RoO2ZvcihlfHwoZT1GYSksaXx8KGk9W10pOysrZjxvOyl7dmFyIHM9bltmXTt0PjAmJmUocyk/dD4xP1kocyx0LTEsZSxyLGkpOlluKGkscyk6cnx8KGlbaS5sZW5ndGhdPXMpfXJldHVybiBpfXZhciBNcj1uZigpLEN1PW5mKCEwKTtmdW5jdGlvbiBDbihuLHQpe3JldHVybiBuJiZNcihuLHQsWil9ZnVuY3Rpb24gRnIobix0KXtyZXR1cm4gbiYmQ3Uobix0LFopfWZ1bmN0aW9uIEJlKG4sdCl7cmV0dXJuIFpuKHQsZnVuY3Rpb24oZSl7cmV0dXJuIEhuKG5bZV0pfSl9ZnVuY3Rpb24gc3Qobix0KXt0PWpuKHQsbik7Zm9yKHZhciBlPTAscj10Lmxlbmd0aDtuIT1udWxsJiZlPHI7KW49bltXbih0W2UrK10pXTtyZXR1cm4gZSYmZT09cj9uOmx9ZnVuY3Rpb24gT3Uobix0LGUpe3ZhciByPXQobik7cmV0dXJuIFIobik/cjpZbihyLGUobikpfWZ1bmN0aW9uIFYobil7cmV0dXJuIG49PW51bGw/bj09PWw/bWw6QWw6dXQmJnV0IGluIFAobik/T2Eobik6S2Eobil9ZnVuY3Rpb24gRHIobix0KXtyZXR1cm4gbj50fWZ1bmN0aW9uIEpzKG4sdCl7cmV0dXJuIG4hPW51bGwmJkIuY2FsbChuLHQpfWZ1bmN0aW9uIFFzKG4sdCl7cmV0dXJuIG4hPW51bGwmJnQgaW4gUChuKX1mdW5jdGlvbiBWcyhuLHQsZSl7cmV0dXJuIG4+PVgodCxlKSYmbjxLKHQsZSl9ZnVuY3Rpb24gVXIobix0LGUpe2Zvcih2YXIgcj1lP0FyOnBlLGk9blswXS5sZW5ndGgsZj1uLmxlbmd0aCxvPWYscz1oKGYpLGM9MS8wLHA9W107by0tOyl7dmFyIF89bltvXTtvJiZ0JiYoXz1EKF8sZm4odCkpKSxjPVgoXy5sZW5ndGgsYyksc1tvXT0hZSYmKHR8fGk+PTEyMCYmXy5sZW5ndGg+PTEyMCk/bmV3IGx0KG8mJl8pOmx9Xz1uWzBdO3ZhciBkPS0xLHY9c1swXTtuOmZvcig7KytkPGkmJnAubGVuZ3RoPGM7KXt2YXIgeD1fW2RdLHk9dD90KHgpOng7aWYoeD1lfHx4IT09MD94OjAsISh2P0h0KHYseSk6cihwLHksZSkpKXtmb3Iobz1mOy0tbzspe3ZhciBFPXNbb107aWYoIShFP0h0KEUseSk6cihuW29dLHksZSkpKWNvbnRpbnVlIG59diYmdi5wdXNoKHkpLHAucHVzaCh4KX19cmV0dXJuIHB9ZnVuY3Rpb24ga3Mobix0LGUscil7cmV0dXJuIENuKG4sZnVuY3Rpb24oaSxmLG8pe3QocixlKGkpLGYsbyl9KSxyfWZ1bmN0aW9uIEp0KG4sdCxlKXt0PWpuKHQsbiksbj13ZihuLHQpO3ZhciByPW49PW51bGw/bjpuW1duKHduKHQpKV07cmV0dXJuIHI9PW51bGw/bDp1bihyLG4sZSl9ZnVuY3Rpb24gV3Uobil7cmV0dXJuIE4obikmJlYobik9PXZ0fWZ1bmN0aW9uIGpzKG4pe3JldHVybiBOKG4pJiZWKG4pPT1HdH1mdW5jdGlvbiBuYShuKXtyZXR1cm4gTihuKSYmVihuKT09TXR9ZnVuY3Rpb24gUXQobix0LGUscixpKXtyZXR1cm4gbj09PXQ/ITA6bj09bnVsbHx8dD09bnVsbHx8IU4obikmJiFOKHQpP24hPT1uJiZ0IT09dDp0YShuLHQsZSxyLFF0LGkpfWZ1bmN0aW9uIHRhKG4sdCxlLHIsaSxmKXt2YXIgbz1SKG4pLHM9Uih0KSxjPW8/bGU6SihuKSxwPXM/bGU6Sih0KTtjPWM9PXZ0P1BuOmMscD1wPT12dD9QbjpwO3ZhciBfPWM9PVBuLGQ9cD09UG4sdj1jPT1wO2lmKHYmJnR0KG4pKXtpZighdHQodCkpcmV0dXJuITE7bz0hMCxfPSExfWlmKHYmJiFfKXJldHVybiBmfHwoZj1uZXcgSW4pLG98fE90KG4pP2NmKG4sdCxlLHIsaSxmKTpUYShuLHQsYyxlLHIsaSxmKTtpZighKGUmcHQpKXt2YXIgeD1fJiZCLmNhbGwobiwiX193cmFwcGVkX18iKSx5PWQmJkIuY2FsbCh0LCJfX3dyYXBwZWRfXyIpO2lmKHh8fHkpe3ZhciBFPXg/bi52YWx1ZSgpOm4sbT15P3QudmFsdWUoKTp0O3JldHVybiBmfHwoZj1uZXcgSW4pLGkoRSxtLGUscixmKX19cmV0dXJuIHY/KGZ8fChmPW5ldyBJbiksQ2Eobix0LGUscixpLGYpKTohMX1mdW5jdGlvbiBlYShuKXtyZXR1cm4gTihuKSYmSihuKT09QW59ZnVuY3Rpb24gTnIobix0LGUscil7dmFyIGk9ZS5sZW5ndGgsZj1pLG89IXI7aWYobj09bnVsbClyZXR1cm4hZjtmb3Iobj1QKG4pO2ktLTspe3ZhciBzPWVbaV07aWYobyYmc1syXT9zWzFdIT09bltzWzBdXTohKHNbMF1pbiBuKSlyZXR1cm4hMX1mb3IoOysraTxmOyl7cz1lW2ldO3ZhciBjPXNbMF0scD1uW2NdLF89c1sxXTtpZihvJiZzWzJdKXtpZihwPT09bCYmIShjIGluIG4pKXJldHVybiExfWVsc2V7dmFyIGQ9bmV3IEluO2lmKHIpdmFyIHY9cihwLF8sYyxuLHQsZCk7aWYoISh2PT09bD9RdChfLHAscHR8dWUscixkKTp2KSlyZXR1cm4hMX19cmV0dXJuITB9ZnVuY3Rpb24gYnUobil7aWYoIVUobil8fFVhKG4pKXJldHVybiExO3ZhciB0PUhuKG4pP2VzOiRsO3JldHVybiB0LnRlc3QoY3QobikpfWZ1bmN0aW9uIHJhKG4pe3JldHVybiBOKG4pJiZWKG4pPT1EdH1mdW5jdGlvbiBpYShuKXtyZXR1cm4gTihuKSYmSihuKT09eW59ZnVuY3Rpb24gdWEobil7cmV0dXJuIE4obikmJlFlKG4ubGVuZ3RoKSYmISFGW1YobildfWZ1bmN0aW9uIEJ1KG4pe3JldHVybiB0eXBlb2Ygbj09ImZ1bmN0aW9uIj9uOm49PW51bGw/cm46dHlwZW9mIG49PSJvYmplY3QiP1Iobik/RnUoblswXSxuWzFdKTpNdShuKTplbChuKX1mdW5jdGlvbiBHcihuKXtpZighanQobikpcmV0dXJuIG9zKG4pO3ZhciB0PVtdO2Zvcih2YXIgZSBpbiBQKG4pKUIuY2FsbChuLGUpJiZlIT0iY29uc3RydWN0b3IiJiZ0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24gZmEobil7aWYoIVUobikpcmV0dXJuIHFhKG4pO3ZhciB0PWp0KG4pLGU9W107Zm9yKHZhciByIGluIG4pcj09ImNvbnN0cnVjdG9yIiYmKHR8fCFCLmNhbGwobixyKSl8fGUucHVzaChyKTtyZXR1cm4gZX1mdW5jdGlvbiBIcihuLHQpe3JldHVybiBuPHR9ZnVuY3Rpb24gUHUobix0KXt2YXIgZT0tMSxyPXRuKG4pP2gobi5sZW5ndGgpOltdO3JldHVybiBWbihuLGZ1bmN0aW9uKGksZixvKXtyWysrZV09dChpLGYsbyl9KSxyfWZ1bmN0aW9uIE11KG4pe3ZhciB0PWVpKG4pO3JldHVybiB0Lmxlbmd0aD09MSYmdFswXVsyXT9kZih0WzBdWzBdLHRbMF1bMV0pOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09bnx8TnIoZSxuLHQpfX1mdW5jdGlvbiBGdShuLHQpe3JldHVybiBpaShuKSYmX2YodCk/ZGYoV24obiksdCk6ZnVuY3Rpb24oZSl7dmFyIHI9cGkoZSxuKTtyZXR1cm4gcj09PWwmJnI9PT10P19pKGUsbik6UXQodCxyLHB0fHVlKX19ZnVuY3Rpb24gUGUobix0LGUscixpKXtuIT09dCYmTXIodCxmdW5jdGlvbihmLG8pe2lmKGl8fChpPW5ldyBJbiksVShmKSlsYShuLHQsbyxlLFBlLHIsaSk7ZWxzZXt2YXIgcz1yP3IoZmkobixvKSxmLG8rIiIsbix0LGkpOmw7cz09PWwmJihzPWYpLEJyKG4sbyxzKX19LGVuKX1mdW5jdGlvbiBsYShuLHQsZSxyLGksZixvKXt2YXIgcz1maShuLGUpLGM9ZmkodCxlKSxwPW8uZ2V0KGMpO2lmKHApe0JyKG4sZSxwKTtyZXR1cm59dmFyIF89Zj9mKHMsYyxlKyIiLG4sdCxvKTpsLGQ9Xz09PWw7aWYoZCl7dmFyIHY9UihjKSx4PSF2JiZ0dChjKSx5PSF2JiYheCYmT3QoYyk7Xz1jLHZ8fHh8fHk/UihzKT9fPXM6RyhzKT9fPW5uKHMpOng/KGQ9ITEsXz1YdShjLCEwKSk6eT8oZD0hMSxfPUp1KGMsITApKTpfPVtdOnRlKGMpfHxodChjKT8oXz1zLGh0KHMpP189WmYocyk6KCFVKHMpfHxIbihzKSkmJihfPXBmKGMpKSk6ZD0hMX1kJiYoby5zZXQoYyxfKSxpKF8sYyxyLGYsbyksby5kZWxldGUoYykpLEJyKG4sZSxfKX1mdW5jdGlvbiBEdShuLHQpe3ZhciBlPW4ubGVuZ3RoO2lmKGUpcmV0dXJuIHQrPXQ8MD9lOjAsR24odCxlKT9uW3RdOmx9ZnVuY3Rpb24gVXUobix0LGUpe3QubGVuZ3RoP3Q9RCh0LGZ1bmN0aW9uKGYpe3JldHVybiBSKGYpP2Z1bmN0aW9uKG8pe3JldHVybiBzdChvLGYubGVuZ3RoPT09MT9mWzBdOmYpfTpmfSk6dD1bcm5dO3ZhciByPS0xO3Q9RCh0LGZuKEEoKSkpO3ZhciBpPVB1KG4sZnVuY3Rpb24oZixvLHMpe3ZhciBjPUQodCxmdW5jdGlvbihwKXtyZXR1cm4gcChmKX0pO3JldHVybntjcml0ZXJpYTpjLGluZGV4Oisrcix2YWx1ZTpmfX0pO3JldHVybiBQbyhpLGZ1bmN0aW9uKGYsbyl7cmV0dXJuIEFhKGYsbyxlKX0pfWZ1bmN0aW9uIG9hKG4sdCl7cmV0dXJuIE51KG4sdCxmdW5jdGlvbihlLHIpe3JldHVybiBfaShuLHIpfSl9ZnVuY3Rpb24gTnUobix0LGUpe2Zvcih2YXIgcj0tMSxpPXQubGVuZ3RoLGY9e307KytyPGk7KXt2YXIgbz10W3JdLHM9c3QobixvKTtlKHMsbykmJlZ0KGYsam4obyxuKSxzKX1yZXR1cm4gZn1mdW5jdGlvbiBzYShuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHN0KHQsbil9fWZ1bmN0aW9uIHFyKG4sdCxlLHIpe3ZhciBpPXI/Qm86QXQsZj0tMSxvPXQubGVuZ3RoLHM9bjtmb3Iobj09PXQmJih0PW5uKHQpKSxlJiYocz1EKG4sZm4oZSkpKTsrK2Y8bzspZm9yKHZhciBjPTAscD10W2ZdLF89ZT9lKHApOnA7KGM9aShzLF8sYyxyKSk+LTE7KXMhPT1uJiZSZS5jYWxsKHMsYywxKSxSZS5jYWxsKG4sYywxKTtyZXR1cm4gbn1mdW5jdGlvbiBHdShuLHQpe2Zvcih2YXIgZT1uP3QubGVuZ3RoOjAscj1lLTE7ZS0tOyl7dmFyIGk9dFtlXTtpZihlPT1yfHxpIT09Zil7dmFyIGY9aTtHbihpKT9SZS5jYWxsKG4saSwxKTpacihuLGkpfX1yZXR1cm4gbn1mdW5jdGlvbiBLcihuLHQpe3JldHVybiBuK0xlKEF1KCkqKHQtbisxKSl9ZnVuY3Rpb24gYWEobix0LGUscil7Zm9yKHZhciBpPS0xLGY9SyhFZSgodC1uKS8oZXx8MSkpLDApLG89aChmKTtmLS07KW9bcj9mOisraV09bixuKz1lO3JldHVybiBvfWZ1bmN0aW9uIHpyKG4sdCl7dmFyIGU9IiI7aWYoIW58fHQ8MXx8dD4kbilyZXR1cm4gZTtkbyB0JTImJihlKz1uKSx0PUxlKHQvMiksdCYmKG4rPW4pO3doaWxlKHQpO3JldHVybiBlfWZ1bmN0aW9uIEwobix0KXtyZXR1cm4gbGkodmYobix0LHJuKSxuKyIiKX1mdW5jdGlvbiBjYShuKXtyZXR1cm4gSXUoV3QobikpfWZ1bmN0aW9uIGhhKG4sdCl7dmFyIGU9V3Qobik7cmV0dXJuIHplKGUsb3QodCwwLGUubGVuZ3RoKSl9ZnVuY3Rpb24gVnQobix0LGUscil7aWYoIVUobikpcmV0dXJuIG47dD1qbih0LG4pO2Zvcih2YXIgaT0tMSxmPXQubGVuZ3RoLG89Zi0xLHM9bjtzIT1udWxsJiYrK2k8Zjspe3ZhciBjPVduKHRbaV0pLHA9ZTtpZihjPT09Il9fcHJvdG9fXyJ8fGM9PT0iY29uc3RydWN0b3IifHxjPT09InByb3RvdHlwZSIpcmV0dXJuIG47aWYoaSE9byl7dmFyIF89c1tjXTtwPXI/cihfLGMscyk6bCxwPT09bCYmKHA9VShfKT9fOkduKHRbaSsxXSk/W106e30pfVl0KHMsYyxwKSxzPXNbY119cmV0dXJuIG59dmFyIEh1PVRlP2Z1bmN0aW9uKG4sdCl7cmV0dXJuIFRlLnNldChuLHQpLG59OnJuLGdhPVNlP2Z1bmN0aW9uKG4sdCl7cmV0dXJuIFNlKG4sInRvU3RyaW5nIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsdmFsdWU6dmkodCksd3JpdGFibGU6ITB9KX06cm47ZnVuY3Rpb24gcGEobil7cmV0dXJuIHplKFd0KG4pKX1mdW5jdGlvbiB2bihuLHQsZSl7dmFyIHI9LTEsaT1uLmxlbmd0aDt0PDAmJih0PS10Pmk/MDppK3QpLGU9ZT5pP2k6ZSxlPDAmJihlKz1pKSxpPXQ+ZT8wOmUtdD4+PjAsdD4+Pj0wO2Zvcih2YXIgZj1oKGkpOysrcjxpOylmW3JdPW5bcit0XTtyZXR1cm4gZn1mdW5jdGlvbiBfYShuLHQpe3ZhciBlO3JldHVybiBWbihuLGZ1bmN0aW9uKHIsaSxmKXtyZXR1cm4gZT10KHIsaSxmKSwhZX0pLCEhZX1mdW5jdGlvbiBNZShuLHQsZSl7dmFyIHI9MCxpPW49PW51bGw/cjpuLmxlbmd0aDtpZih0eXBlb2YgdD09Im51bWJlciImJnQ9PT10JiZpPD1kbCl7Zm9yKDtyPGk7KXt2YXIgZj1yK2k+Pj4xLG89bltmXTtvIT09bnVsbCYmIW9uKG8pJiYoZT9vPD10Om88dCk/cj1mKzE6aT1mfXJldHVybiBpfXJldHVybiAkcihuLHQscm4sZSl9ZnVuY3Rpb24gJHIobix0LGUscil7dmFyIGk9MCxmPW49PW51bGw/MDpuLmxlbmd0aDtpZihmPT09MClyZXR1cm4gMDt0PWUodCk7Zm9yKHZhciBvPXQhPT10LHM9dD09PW51bGwsYz1vbih0KSxwPXQ9PT1sO2k8Zjspe3ZhciBfPUxlKChpK2YpLzIpLGQ9ZShuW19dKSx2PWQhPT1sLHg9ZD09PW51bGwseT1kPT09ZCxFPW9uKGQpO2lmKG8pdmFyIG09cnx8eTtlbHNlIHA/bT15JiYocnx8dik6cz9tPXkmJnYmJihyfHwheCk6Yz9tPXkmJnYmJiF4JiYocnx8IUUpOnh8fEU/bT0hMTptPXI/ZDw9dDpkPHQ7bT9pPV8rMTpmPV99cmV0dXJuIFgoZixfbCl9ZnVuY3Rpb24gcXUobix0KXtmb3IodmFyIGU9LTEscj1uLmxlbmd0aCxpPTAsZj1bXTsrK2U8cjspe3ZhciBvPW5bZV0scz10P3Qobyk6bztpZighZXx8IVJuKHMsYykpe3ZhciBjPXM7ZltpKytdPW89PT0wPzA6b319cmV0dXJuIGZ9ZnVuY3Rpb24gS3Uobil7cmV0dXJuIHR5cGVvZiBuPT0ibnVtYmVyIj9uOm9uKG4pP2ZlOitufWZ1bmN0aW9uIGxuKG4pe2lmKHR5cGVvZiBuPT0ic3RyaW5nIilyZXR1cm4gbjtpZihSKG4pKXJldHVybiBEKG4sbG4pKyIiO2lmKG9uKG4pKXJldHVybiB5dT95dS5jYWxsKG4pOiIiO3ZhciB0PW4rIiI7cmV0dXJuIHQ9PSIwIiYmMS9uPT0tcnQ/Ii0wIjp0fWZ1bmN0aW9uIGtuKG4sdCxlKXt2YXIgcj0tMSxpPXBlLGY9bi5sZW5ndGgsbz0hMCxzPVtdLGM9cztpZihlKW89ITEsaT1BcjtlbHNlIGlmKGY+PWJuKXt2YXIgcD10P251bGw6RWEobik7aWYocClyZXR1cm4gZGUocCk7bz0hMSxpPUh0LGM9bmV3IGx0fWVsc2UgYz10P1tdOnM7bjpmb3IoOysrcjxmOyl7dmFyIF89bltyXSxkPXQ/dChfKTpfO2lmKF89ZXx8XyE9PTA/XzowLG8mJmQ9PT1kKXtmb3IodmFyIHY9Yy5sZW5ndGg7di0tOylpZihjW3ZdPT09ZCljb250aW51ZSBuO3QmJmMucHVzaChkKSxzLnB1c2goXyl9ZWxzZSBpKGMsZCxlKXx8KGMhPT1zJiZjLnB1c2goZCkscy5wdXNoKF8pKX1yZXR1cm4gc31mdW5jdGlvbiBacihuLHQpe3JldHVybiB0PWpuKHQsbiksbj13ZihuLHQpLG49PW51bGx8fGRlbGV0ZSBuW1duKHduKHQpKV19ZnVuY3Rpb24genUobix0LGUscil7cmV0dXJuIFZ0KG4sdCxlKHN0KG4sdCkpLHIpfWZ1bmN0aW9uIEZlKG4sdCxlLHIpe2Zvcih2YXIgaT1uLmxlbmd0aCxmPXI/aTotMTsocj9mLS06KytmPGkpJiZ0KG5bZl0sZixuKTspO3JldHVybiBlP3ZuKG4scj8wOmYscj9mKzE6aSk6dm4obixyP2YrMTowLHI/aTpmKX1mdW5jdGlvbiAkdShuLHQpe3ZhciBlPW47cmV0dXJuIGUgaW5zdGFuY2VvZiBDJiYoZT1lLnZhbHVlKCkpLHlyKHQsZnVuY3Rpb24ocixpKXtyZXR1cm4gaS5mdW5jLmFwcGx5KGkudGhpc0FyZyxZbihbcl0saS5hcmdzKSl9LGUpfWZ1bmN0aW9uIFlyKG4sdCxlKXt2YXIgcj1uLmxlbmd0aDtpZihyPDIpcmV0dXJuIHI/a24oblswXSk6W107Zm9yKHZhciBpPS0xLGY9aChyKTsrK2k8cjspZm9yKHZhciBvPW5baV0scz0tMTsrK3M8cjspcyE9aSYmKGZbaV09WHQoZltpXXx8byxuW3NdLHQsZSkpO3JldHVybiBrbihZKGYsMSksdCxlKX1mdW5jdGlvbiBadShuLHQsZSl7Zm9yKHZhciByPS0xLGk9bi5sZW5ndGgsZj10Lmxlbmd0aCxvPXt9OysrcjxpOyl7dmFyIHM9cjxmP3Rbcl06bDtlKG8sbltyXSxzKX1yZXR1cm4gb31mdW5jdGlvbiBYcihuKXtyZXR1cm4gRyhuKT9uOltdfWZ1bmN0aW9uIEpyKG4pe3JldHVybiB0eXBlb2Ygbj09ImZ1bmN0aW9uIj9uOnJufWZ1bmN0aW9uIGpuKG4sdCl7cmV0dXJuIFIobik/bjppaShuLHQpP1tuXTptZihiKG4pKX12YXIgZGE9TDtmdW5jdGlvbiBudChuLHQsZSl7dmFyIHI9bi5sZW5ndGg7cmV0dXJuIGU9ZT09PWw/cjplLCF0JiZlPj1yP246dm4obix0LGUpfXZhciBZdT1yc3x8ZnVuY3Rpb24obil7cmV0dXJuICQuY2xlYXJUaW1lb3V0KG4pfTtmdW5jdGlvbiBYdShuLHQpe2lmKHQpcmV0dXJuIG4uc2xpY2UoKTt2YXIgZT1uLmxlbmd0aCxyPV91P191KGUpOm5ldyBuLmNvbnN0cnVjdG9yKGUpO3JldHVybiBuLmNvcHkocikscn1mdW5jdGlvbiBRcihuKXt2YXIgdD1uZXcgbi5jb25zdHJ1Y3RvcihuLmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgbWUodCkuc2V0KG5ldyBtZShuKSksdH1mdW5jdGlvbiB2YShuLHQpe3ZhciBlPXQ/UXIobi5idWZmZXIpOm4uYnVmZmVyO3JldHVybiBuZXcgbi5jb25zdHJ1Y3RvcihlLG4uYnl0ZU9mZnNldCxuLmJ5dGVMZW5ndGgpfWZ1bmN0aW9uIHdhKG4pe3ZhciB0PW5ldyBuLmNvbnN0cnVjdG9yKG4uc291cmNlLFdpLmV4ZWMobikpO3JldHVybiB0Lmxhc3RJbmRleD1uLmxhc3RJbmRleCx0fWZ1bmN0aW9uIHhhKG4pe3JldHVybiBadD9QKFp0LmNhbGwobikpOnt9fWZ1bmN0aW9uIEp1KG4sdCl7dmFyIGU9dD9RcihuLmJ1ZmZlcik6bi5idWZmZXI7cmV0dXJuIG5ldyBuLmNvbnN0cnVjdG9yKGUsbi5ieXRlT2Zmc2V0LG4ubGVuZ3RoKX1mdW5jdGlvbiBRdShuLHQpe2lmKG4hPT10KXt2YXIgZT1uIT09bCxyPW49PT1udWxsLGk9bj09PW4sZj1vbihuKSxvPXQhPT1sLHM9dD09PW51bGwsYz10PT09dCxwPW9uKHQpO2lmKCFzJiYhcCYmIWYmJm4+dHx8ZiYmbyYmYyYmIXMmJiFwfHxyJiZvJiZjfHwhZSYmY3x8IWkpcmV0dXJuIDE7aWYoIXImJiFmJiYhcCYmbjx0fHxwJiZlJiZpJiYhciYmIWZ8fHMmJmUmJml8fCFvJiZpfHwhYylyZXR1cm4tMX1yZXR1cm4gMH1mdW5jdGlvbiBBYShuLHQsZSl7Zm9yKHZhciByPS0xLGk9bi5jcml0ZXJpYSxmPXQuY3JpdGVyaWEsbz1pLmxlbmd0aCxzPWUubGVuZ3RoOysrcjxvOyl7dmFyIGM9UXUoaVtyXSxmW3JdKTtpZihjKXtpZihyPj1zKXJldHVybiBjO3ZhciBwPWVbcl07cmV0dXJuIGMqKHA9PSJkZXNjIj8tMToxKX19cmV0dXJuIG4uaW5kZXgtdC5pbmRleH1mdW5jdGlvbiBWdShuLHQsZSxyKXtmb3IodmFyIGk9LTEsZj1uLmxlbmd0aCxvPWUubGVuZ3RoLHM9LTEsYz10Lmxlbmd0aCxwPUsoZi1vLDApLF89aChjK3ApLGQ9IXI7KytzPGM7KV9bc109dFtzXTtmb3IoOysraTxvOykoZHx8aTxmKSYmKF9bZVtpXV09bltpXSk7Zm9yKDtwLS07KV9bcysrXT1uW2krK107cmV0dXJuIF99ZnVuY3Rpb24ga3Uobix0LGUscil7Zm9yKHZhciBpPS0xLGY9bi5sZW5ndGgsbz0tMSxzPWUubGVuZ3RoLGM9LTEscD10Lmxlbmd0aCxfPUsoZi1zLDApLGQ9aChfK3ApLHY9IXI7KytpPF87KWRbaV09bltpXTtmb3IodmFyIHg9aTsrK2M8cDspZFt4K2NdPXRbY107Zm9yKDsrK288czspKHZ8fGk8ZikmJihkW3grZVtvXV09bltpKytdKTtyZXR1cm4gZH1mdW5jdGlvbiBubihuLHQpe3ZhciBlPS0xLHI9bi5sZW5ndGg7Zm9yKHR8fCh0PWgocikpOysrZTxyOyl0W2VdPW5bZV07cmV0dXJuIHR9ZnVuY3Rpb24gT24obix0LGUscil7dmFyIGk9IWU7ZXx8KGU9e30pO2Zvcih2YXIgZj0tMSxvPXQubGVuZ3RoOysrZjxvOyl7dmFyIHM9dFtmXSxjPXI/cihlW3NdLG5bc10scyxlLG4pOmw7Yz09PWwmJihjPW5bc10pLGk/RG4oZSxzLGMpOll0KGUscyxjKX1yZXR1cm4gZX1mdW5jdGlvbiB5YShuLHQpe3JldHVybiBPbihuLHJpKG4pLHQpfWZ1bmN0aW9uIG1hKG4sdCl7cmV0dXJuIE9uKG4saGYobiksdCl9ZnVuY3Rpb24gRGUobix0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgaT1SKGUpP0xvOnpzLGY9dD90KCk6e307cmV0dXJuIGkoZSxuLEEociwyKSxmKX19ZnVuY3Rpb24gTHQobil7cmV0dXJuIEwoZnVuY3Rpb24odCxlKXt2YXIgcj0tMSxpPWUubGVuZ3RoLGY9aT4xP2VbaS0xXTpsLG89aT4yP2VbMl06bDtmb3IoZj1uLmxlbmd0aD4zJiZ0eXBlb2YgZj09ImZ1bmN0aW9uIj8oaS0tLGYpOmwsbyYmayhlWzBdLGVbMV0sbykmJihmPWk8Mz9sOmYsaT0xKSx0PVAodCk7KytyPGk7KXt2YXIgcz1lW3JdO3MmJm4odCxzLHIsZil9cmV0dXJuIHR9KX1mdW5jdGlvbiBqdShuLHQpe3JldHVybiBmdW5jdGlvbihlLHIpe2lmKGU9PW51bGwpcmV0dXJuIGU7aWYoIXRuKGUpKXJldHVybiBuKGUscik7Zm9yKHZhciBpPWUubGVuZ3RoLGY9dD9pOi0xLG89UChlKTsodD9mLS06KytmPGkpJiZyKG9bZl0sZixvKSE9PSExOyk7cmV0dXJuIGV9fWZ1bmN0aW9uIG5mKG4pe3JldHVybiBmdW5jdGlvbih0LGUscil7Zm9yKHZhciBpPS0xLGY9UCh0KSxvPXIodCkscz1vLmxlbmd0aDtzLS07KXt2YXIgYz1vW24/czorK2ldO2lmKGUoZltjXSxjLGYpPT09ITEpYnJlYWt9cmV0dXJuIHR9fWZ1bmN0aW9uIElhKG4sdCxlKXt2YXIgcj10JmNuLGk9a3Qobik7ZnVuY3Rpb24gZigpe3ZhciBvPXRoaXMmJnRoaXMhPT0kJiZ0aGlzIGluc3RhbmNlb2YgZj9pOm47cmV0dXJuIG8uYXBwbHkocj9lOnRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZn1mdW5jdGlvbiB0ZihuKXtyZXR1cm4gZnVuY3Rpb24odCl7dD1iKHQpO3ZhciBlPXl0KHQpP21uKHQpOmwscj1lP2VbMF06dC5jaGFyQXQoMCksaT1lP250KGUsMSkuam9pbigiIik6dC5zbGljZSgxKTtyZXR1cm4gcltuXSgpK2l9fWZ1bmN0aW9uIFR0KG4pe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geXIobmwoamYodCkucmVwbGFjZShobywiIikpLG4sIiIpfX1mdW5jdGlvbiBrdChuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBuO2Nhc2UgMTpyZXR1cm4gbmV3IG4odFswXSk7Y2FzZSAyOnJldHVybiBuZXcgbih0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gbmV3IG4odFswXSx0WzFdLHRbMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IG4odFswXSx0WzFdLHRbMl0sdFszXSk7Y2FzZSA1OnJldHVybiBuZXcgbih0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0pO2Nhc2UgNjpyZXR1cm4gbmV3IG4odFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0pO2Nhc2UgNzpyZXR1cm4gbmV3IG4odFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sdFs2XSl9dmFyIGU9RXQobi5wcm90b3R5cGUpLHI9bi5hcHBseShlLHQpO3JldHVybiBVKHIpP3I6ZX19ZnVuY3Rpb24gUmEobix0LGUpe3ZhciByPWt0KG4pO2Z1bmN0aW9uIGkoKXtmb3IodmFyIGY9YXJndW1lbnRzLmxlbmd0aCxvPWgoZikscz1mLGM9Q3QoaSk7cy0tOylvW3NdPWFyZ3VtZW50c1tzXTt2YXIgcD1mPDMmJm9bMF0hPT1jJiZvW2YtMV0hPT1jP1tdOlhuKG8sYyk7aWYoZi09cC5sZW5ndGgsZjxlKXJldHVybiBsZihuLHQsVWUsaS5wbGFjZWhvbGRlcixsLG8scCxsLGwsZS1mKTt2YXIgXz10aGlzJiZ0aGlzIT09JCYmdGhpcyBpbnN0YW5jZW9mIGk/cjpuO3JldHVybiB1bihfLHRoaXMsbyl9cmV0dXJuIGl9ZnVuY3Rpb24gZWYobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1QKHQpO2lmKCF0bih0KSl7dmFyIGY9QShlLDMpO3Q9Wih0KSxlPWZ1bmN0aW9uKHMpe3JldHVybiBmKGlbc10scyxpKX19dmFyIG89bih0LGUscik7cmV0dXJuIG8+LTE/aVtmP3Rbb106b106bH19ZnVuY3Rpb24gcmYobil7cmV0dXJuIE5uKGZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLHI9ZSxpPV9uLnByb3RvdHlwZS50aHJ1O2ZvcihuJiZ0LnJldmVyc2UoKTtyLS07KXt2YXIgZj10W3JdO2lmKHR5cGVvZiBmIT0iZnVuY3Rpb24iKXRocm93IG5ldyBwbih6KTtpZihpJiYhbyYmcWUoZik9PSJ3cmFwcGVyIil2YXIgbz1uZXcgX24oW10sITApfWZvcihyPW8/cjplOysrcjxlOyl7Zj10W3JdO3ZhciBzPXFlKGYpLGM9cz09IndyYXBwZXIiP3RpKGYpOmw7YyYmdWkoY1swXSkmJmNbMV09PShCbnxFbnxMbnxCdCkmJiFjWzRdLmxlbmd0aCYmY1s5XT09MT9vPW9bcWUoY1swXSldLmFwcGx5KG8sY1szXSk6bz1mLmxlbmd0aD09MSYmdWkoZik/b1tzXSgpOm8udGhydShmKX1yZXR1cm4gZnVuY3Rpb24oKXt2YXIgcD1hcmd1bWVudHMsXz1wWzBdO2lmKG8mJnAubGVuZ3RoPT0xJiZSKF8pKXJldHVybiBvLnBsYW50KF8pLnZhbHVlKCk7Zm9yKHZhciBkPTAsdj1lP3RbZF0uYXBwbHkodGhpcyxwKTpfOysrZDxlOyl2PXRbZF0uY2FsbCh0aGlzLHYpO3JldHVybiB2fX0pfWZ1bmN0aW9uIFVlKG4sdCxlLHIsaSxmLG8scyxjLHApe3ZhciBfPXQmQm4sZD10JmNuLHY9dCZldCx4PXQmKEVufF90KSx5PXQmdHIsRT12P2w6a3Qobik7ZnVuY3Rpb24gbSgpe2Zvcih2YXIgVD1hcmd1bWVudHMubGVuZ3RoLE89aChUKSxzbj1UO3NuLS07KU9bc25dPWFyZ3VtZW50c1tzbl07aWYoeCl2YXIgaj1DdChtKSxhbj1GbyhPLGopO2lmKHImJihPPVZ1KE8scixpLHgpKSxmJiYoTz1rdShPLGYsbyx4KSksVC09YW4seCYmVDxwKXt2YXIgSD1YbihPLGopO3JldHVybiBsZihuLHQsVWUsbS5wbGFjZWhvbGRlcixlLE8sSCxzLGMscC1UKX12YXIgU249ZD9lOnRoaXMsS249dj9TbltuXTpuO3JldHVybiBUPU8ubGVuZ3RoLHM/Tz16YShPLHMpOnkmJlQ+MSYmTy5yZXZlcnNlKCksXyYmYzxUJiYoTy5sZW5ndGg9YyksdGhpcyYmdGhpcyE9PSQmJnRoaXMgaW5zdGFuY2VvZiBtJiYoS249RXx8a3QoS24pKSxLbi5hcHBseShTbixPKX1yZXR1cm4gbX1mdW5jdGlvbiB1ZihuLHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiBrcyhlLG4sdChyKSx7fSl9fWZ1bmN0aW9uIE5lKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIGk7aWYoZT09PWwmJnI9PT1sKXJldHVybiB0O2lmKGUhPT1sJiYoaT1lKSxyIT09bCl7aWYoaT09PWwpcmV0dXJuIHI7dHlwZW9mIGU9PSJzdHJpbmcifHx0eXBlb2Ygcj09InN0cmluZyI/KGU9bG4oZSkscj1sbihyKSk6KGU9S3UoZSkscj1LdShyKSksaT1uKGUscil9cmV0dXJuIGl9fWZ1bmN0aW9uIFZyKG4pe3JldHVybiBObihmdW5jdGlvbih0KXtyZXR1cm4gdD1EKHQsZm4oQSgpKSksTChmdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiBuKHQsZnVuY3Rpb24oaSl7cmV0dXJuIHVuKGkscixlKX0pfSl9KX1mdW5jdGlvbiBHZShuLHQpe3Q9dD09PWw/IiAiOmxuKHQpO3ZhciBlPXQubGVuZ3RoO2lmKGU8MilyZXR1cm4gZT96cih0LG4pOnQ7dmFyIHI9enIodCxFZShuL210KHQpKSk7cmV0dXJuIHl0KHQpP250KG1uKHIpLDAsbikuam9pbigiIik6ci5zbGljZSgwLG4pfWZ1bmN0aW9uIFNhKG4sdCxlLHIpe3ZhciBpPXQmY24sZj1rdChuKTtmdW5jdGlvbiBvKCl7Zm9yKHZhciBzPS0xLGM9YXJndW1lbnRzLmxlbmd0aCxwPS0xLF89ci5sZW5ndGgsZD1oKF8rYyksdj10aGlzJiZ0aGlzIT09JCYmdGhpcyBpbnN0YW5jZW9mIG8/ZjpuOysrcDxfOylkW3BdPXJbcF07Zm9yKDtjLS07KWRbcCsrXT1hcmd1bWVudHNbKytzXTtyZXR1cm4gdW4odixpP2U6dGhpcyxkKX1yZXR1cm4gb31mdW5jdGlvbiBmZihuKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3JldHVybiByJiZ0eXBlb2YgciE9Im51bWJlciImJmsodCxlLHIpJiYoZT1yPWwpLHQ9cW4odCksZT09PWw/KGU9dCx0PTApOmU9cW4oZSkscj1yPT09bD90PGU/MTotMTpxbihyKSxhYSh0LGUscixuKX19ZnVuY3Rpb24gSGUobil7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmdHlwZW9mIGU9PSJzdHJpbmcifHwodD14bih0KSxlPXhuKGUpKSxuKHQsZSl9fWZ1bmN0aW9uIGxmKG4sdCxlLHIsaSxmLG8scyxjLHApe3ZhciBfPXQmRW4sZD1fP286bCx2PV8/bDpvLHg9Xz9mOmwseT1fP2w6Zjt0fD1fP0xuOmR0LHQmPX4oXz9kdDpMbiksdCZSaXx8KHQmPX4oY258ZXQpKTt2YXIgRT1bbix0LGkseCxkLHksdixzLGMscF0sbT1lLmFwcGx5KGwsRSk7cmV0dXJuIHVpKG4pJiZ4ZihtLEUpLG0ucGxhY2Vob2xkZXI9cixBZihtLG4sdCl9ZnVuY3Rpb24ga3Iobil7dmFyIHQ9cVtuXTtyZXR1cm4gZnVuY3Rpb24oZSxyKXtpZihlPXhuKGUpLHI9cj09bnVsbD8wOlgoUyhyKSwyOTIpLHImJnh1KGUpKXt2YXIgaT0oYihlKSsiZSIpLnNwbGl0KCJlIiksZj10KGlbMF0rImUiKygraVsxXStyKSk7cmV0dXJuIGk9KGIoZikrImUiKS5zcGxpdCgiZSIpLCsoaVswXSsiZSIrKCtpWzFdLXIpKX1yZXR1cm4gdChlKX19dmFyIEVhPVJ0JiYxL2RlKG5ldyBSdChbLC0wXSkpWzFdPT1ydD9mdW5jdGlvbihuKXtyZXR1cm4gbmV3IFJ0KG4pfTpBaTtmdW5jdGlvbiBvZihuKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9Sih0KTtyZXR1cm4gZT09QW4/VHIodCk6ZT09eW4/S28odCk6TW8odCxuKHQpKX19ZnVuY3Rpb24gVW4obix0LGUscixpLGYsbyxzKXt2YXIgYz10JmV0O2lmKCFjJiZ0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgcG4oeik7dmFyIHA9cj9yLmxlbmd0aDowO2lmKHB8fCh0Jj1+KExufGR0KSxyPWk9bCksbz1vPT09bD9vOksoUyhvKSwwKSxzPXM9PT1sP3M6UyhzKSxwLT1pP2kubGVuZ3RoOjAsdCZkdCl7dmFyIF89cixkPWk7cj1pPWx9dmFyIHY9Yz9sOnRpKG4pLHg9W24sdCxlLHIsaSxfLGQsZixvLHNdO2lmKHYmJkhhKHgsdiksbj14WzBdLHQ9eFsxXSxlPXhbMl0scj14WzNdLGk9eFs0XSxzPXhbOV09eFs5XT09PWw/Yz8wOm4ubGVuZ3RoOksoeFs5XS1wLDApLCFzJiZ0JihFbnxfdCkmJih0Jj1+KEVufF90KSksIXR8fHQ9PWNuKXZhciB5PUlhKG4sdCxlKTtlbHNlIHQ9PUVufHx0PT1fdD95PVJhKG4sdCxzKToodD09TG58fHQ9PShjbnxMbikpJiYhaS5sZW5ndGg/eT1TYShuLHQsZSxyKTp5PVVlLmFwcGx5KGwseCk7dmFyIEU9dj9IdTp4ZjtyZXR1cm4gQWYoRSh5LHgpLG4sdCl9ZnVuY3Rpb24gc2Yobix0LGUscil7cmV0dXJuIG49PT1sfHxSbihuLEl0W2VdKSYmIUIuY2FsbChyLGUpP3Q6bn1mdW5jdGlvbiBhZihuLHQsZSxyLGksZil7cmV0dXJuIFUobikmJlUodCkmJihmLnNldCh0LG4pLFBlKG4sdCxsLGFmLGYpLGYuZGVsZXRlKHQpKSxufWZ1bmN0aW9uIExhKG4pe3JldHVybiB0ZShuKT9sOm59ZnVuY3Rpb24gY2Yobix0LGUscixpLGYpe3ZhciBvPWUmcHQscz1uLmxlbmd0aCxjPXQubGVuZ3RoO2lmKHMhPWMmJiEobyYmYz5zKSlyZXR1cm4hMTt2YXIgcD1mLmdldChuKSxfPWYuZ2V0KHQpO2lmKHAmJl8pcmV0dXJuIHA9PXQmJl89PW47dmFyIGQ9LTEsdj0hMCx4PWUmdWU/bmV3IGx0Omw7Zm9yKGYuc2V0KG4sdCksZi5zZXQodCxuKTsrK2Q8czspe3ZhciB5PW5bZF0sRT10W2RdO2lmKHIpdmFyIG09bz9yKEUseSxkLHQsbixmKTpyKHksRSxkLG4sdCxmKTtpZihtIT09bCl7aWYobSljb250aW51ZTt2PSExO2JyZWFrfWlmKHgpe2lmKCFtcih0LGZ1bmN0aW9uKFQsTyl7aWYoIUh0KHgsTykmJih5PT09VHx8aSh5LFQsZSxyLGYpKSlyZXR1cm4geC5wdXNoKE8pfSkpe3Y9ITE7YnJlYWt9fWVsc2UgaWYoISh5PT09RXx8aSh5LEUsZSxyLGYpKSl7dj0hMTticmVha319cmV0dXJuIGYuZGVsZXRlKG4pLGYuZGVsZXRlKHQpLHZ9ZnVuY3Rpb24gVGEobix0LGUscixpLGYsbyl7c3dpdGNoKGUpe2Nhc2Ugd3Q6aWYobi5ieXRlTGVuZ3RoIT10LmJ5dGVMZW5ndGh8fG4uYnl0ZU9mZnNldCE9dC5ieXRlT2Zmc2V0KXJldHVybiExO249bi5idWZmZXIsdD10LmJ1ZmZlcjtjYXNlIEd0OnJldHVybiEobi5ieXRlTGVuZ3RoIT10LmJ5dGVMZW5ndGh8fCFmKG5ldyBtZShuKSxuZXcgbWUodCkpKTtjYXNlIFB0OmNhc2UgTXQ6Y2FzZSBGdDpyZXR1cm4gUm4oK24sK3QpO2Nhc2Ugb2U6cmV0dXJuIG4ubmFtZT09dC5uYW1lJiZuLm1lc3NhZ2U9PXQubWVzc2FnZTtjYXNlIER0OmNhc2UgVXQ6cmV0dXJuIG49PXQrIiI7Y2FzZSBBbjp2YXIgcz1UcjtjYXNlIHluOnZhciBjPXImcHQ7aWYoc3x8KHM9ZGUpLG4uc2l6ZSE9dC5zaXplJiYhYylyZXR1cm4hMTt2YXIgcD1vLmdldChuKTtpZihwKXJldHVybiBwPT10O3J8PXVlLG8uc2V0KG4sdCk7dmFyIF89Y2YocyhuKSxzKHQpLHIsaSxmLG8pO3JldHVybiBvLmRlbGV0ZShuKSxfO2Nhc2UgYWU6aWYoWnQpcmV0dXJuIFp0LmNhbGwobik9PVp0LmNhbGwodCl9cmV0dXJuITF9ZnVuY3Rpb24gQ2Eobix0LGUscixpLGYpe3ZhciBvPWUmcHQscz1qcihuKSxjPXMubGVuZ3RoLHA9anIodCksXz1wLmxlbmd0aDtpZihjIT1fJiYhbylyZXR1cm4hMTtmb3IodmFyIGQ9YztkLS07KXt2YXIgdj1zW2RdO2lmKCEobz92IGluIHQ6Qi5jYWxsKHQsdikpKXJldHVybiExfXZhciB4PWYuZ2V0KG4pLHk9Zi5nZXQodCk7aWYoeCYmeSlyZXR1cm4geD09dCYmeT09bjt2YXIgRT0hMDtmLnNldChuLHQpLGYuc2V0KHQsbik7Zm9yKHZhciBtPW87KytkPGM7KXt2PXNbZF07dmFyIFQ9blt2XSxPPXRbdl07aWYocil2YXIgc249bz9yKE8sVCx2LHQsbixmKTpyKFQsTyx2LG4sdCxmKTtpZighKHNuPT09bD9UPT09T3x8aShULE8sZSxyLGYpOnNuKSl7RT0hMTticmVha31tfHwobT12PT0iY29uc3RydWN0b3IiKX1pZihFJiYhbSl7dmFyIGo9bi5jb25zdHJ1Y3Rvcixhbj10LmNvbnN0cnVjdG9yO2ohPWFuJiYiY29uc3RydWN0b3IiaW4gbiYmImNvbnN0cnVjdG9yImluIHQmJiEodHlwZW9mIGo9PSJmdW5jdGlvbiImJmogaW5zdGFuY2VvZiBqJiZ0eXBlb2YgYW49PSJmdW5jdGlvbiImJmFuIGluc3RhbmNlb2YgYW4pJiYoRT0hMSl9cmV0dXJuIGYuZGVsZXRlKG4pLGYuZGVsZXRlKHQpLEV9ZnVuY3Rpb24gTm4obil7cmV0dXJuIGxpKHZmKG4sbCxFZiksbisiIil9ZnVuY3Rpb24ganIobil7cmV0dXJuIE91KG4sWixyaSl9ZnVuY3Rpb24gbmkobil7cmV0dXJuIE91KG4sZW4saGYpfXZhciB0aT1UZT9mdW5jdGlvbihuKXtyZXR1cm4gVGUuZ2V0KG4pfTpBaTtmdW5jdGlvbiBxZShuKXtmb3IodmFyIHQ9bi5uYW1lKyIiLGU9U3RbdF0scj1CLmNhbGwoU3QsdCk/ZS5sZW5ndGg6MDtyLS07KXt2YXIgaT1lW3JdLGY9aS5mdW5jO2lmKGY9PW51bGx8fGY9PW4pcmV0dXJuIGkubmFtZX1yZXR1cm4gdH1mdW5jdGlvbiBDdChuKXt2YXIgdD1CLmNhbGwodSwicGxhY2Vob2xkZXIiKT91Om47cmV0dXJuIHQucGxhY2Vob2xkZXJ9ZnVuY3Rpb24gQSgpe3ZhciBuPXUuaXRlcmF0ZWV8fHdpO3JldHVybiBuPW49PT13aT9CdTpuLGFyZ3VtZW50cy5sZW5ndGg/bihhcmd1bWVudHNbMF0sYXJndW1lbnRzWzFdKTpufWZ1bmN0aW9uIEtlKG4sdCl7dmFyIGU9bi5fX2RhdGFfXztyZXR1cm4gRGEodCk/ZVt0eXBlb2YgdD09InN0cmluZyI/InN0cmluZyI6Imhhc2giXTplLm1hcH1mdW5jdGlvbiBlaShuKXtmb3IodmFyIHQ9WihuKSxlPXQubGVuZ3RoO2UtLTspe3ZhciByPXRbZV0saT1uW3JdO3RbZV09W3IsaSxfZihpKV19cmV0dXJuIHR9ZnVuY3Rpb24gYXQobix0KXt2YXIgZT1HbyhuLHQpO3JldHVybiBidShlKT9lOmx9ZnVuY3Rpb24gT2Eobil7dmFyIHQ9Qi5jYWxsKG4sdXQpLGU9blt1dF07dHJ5e25bdXRdPWw7dmFyIHI9ITB9Y2F0Y2h7fXZhciBpPUFlLmNhbGwobik7cmV0dXJuIHImJih0P25bdXRdPWU6ZGVsZXRlIG5bdXRdKSxpfXZhciByaT1Pcj9mdW5jdGlvbihuKXtyZXR1cm4gbj09bnVsbD9bXToobj1QKG4pLFpuKE9yKG4pLGZ1bmN0aW9uKHQpe3JldHVybiB2dS5jYWxsKG4sdCl9KSl9OnlpLGhmPU9yP2Z1bmN0aW9uKG4pe2Zvcih2YXIgdD1bXTtuOylZbih0LHJpKG4pKSxuPUllKG4pO3JldHVybiB0fTp5aSxKPVY7KFdyJiZKKG5ldyBXcihuZXcgQXJyYXlCdWZmZXIoMSkpKSE9d3R8fEt0JiZKKG5ldyBLdCkhPUFufHxiciYmSihici5yZXNvbHZlKCkpIT1MaXx8UnQmJkoobmV3IFJ0KSE9eW58fHp0JiZKKG5ldyB6dCkhPU50KSYmKEo9ZnVuY3Rpb24obil7dmFyIHQ9VihuKSxlPXQ9PVBuP24uY29uc3RydWN0b3I6bCxyPWU/Y3QoZSk6IiI7aWYocilzd2l0Y2gocil7Y2FzZSBoczpyZXR1cm4gd3Q7Y2FzZSBnczpyZXR1cm4gQW47Y2FzZSBwczpyZXR1cm4gTGk7Y2FzZSBfczpyZXR1cm4geW47Y2FzZSBkczpyZXR1cm4gTnR9cmV0dXJuIHR9KTtmdW5jdGlvbiBXYShuLHQsZSl7Zm9yKHZhciByPS0xLGk9ZS5sZW5ndGg7KytyPGk7KXt2YXIgZj1lW3JdLG89Zi5zaXplO3N3aXRjaChmLnR5cGUpe2Nhc2UiZHJvcCI6bis9bzticmVhaztjYXNlImRyb3BSaWdodCI6dC09bzticmVhaztjYXNlInRha2UiOnQ9WCh0LG4rbyk7YnJlYWs7Y2FzZSJ0YWtlUmlnaHQiOm49SyhuLHQtbyk7YnJlYWt9fXJldHVybntzdGFydDpuLGVuZDp0fX1mdW5jdGlvbiBiYShuKXt2YXIgdD1uLm1hdGNoKERsKTtyZXR1cm4gdD90WzFdLnNwbGl0KFVsKTpbXX1mdW5jdGlvbiBnZihuLHQsZSl7dD1qbih0LG4pO2Zvcih2YXIgcj0tMSxpPXQubGVuZ3RoLGY9ITE7KytyPGk7KXt2YXIgbz1Xbih0W3JdKTtpZighKGY9biE9bnVsbCYmZShuLG8pKSlicmVhaztuPW5bb119cmV0dXJuIGZ8fCsrciE9aT9mOihpPW49PW51bGw/MDpuLmxlbmd0aCwhIWkmJlFlKGkpJiZHbihvLGkpJiYoUihuKXx8aHQobikpKX1mdW5jdGlvbiBCYShuKXt2YXIgdD1uLmxlbmd0aCxlPW5ldyBuLmNvbnN0cnVjdG9yKHQpO3JldHVybiB0JiZ0eXBlb2YgblswXT09InN0cmluZyImJkIuY2FsbChuLCJpbmRleCIpJiYoZS5pbmRleD1uLmluZGV4LGUuaW5wdXQ9bi5pbnB1dCksZX1mdW5jdGlvbiBwZihuKXtyZXR1cm4gdHlwZW9mIG4uY29uc3RydWN0b3I9PSJmdW5jdGlvbiImJiFqdChuKT9FdChJZShuKSk6e319ZnVuY3Rpb24gUGEobix0LGUpe3ZhciByPW4uY29uc3RydWN0b3I7c3dpdGNoKHQpe2Nhc2UgR3Q6cmV0dXJuIFFyKG4pO2Nhc2UgUHQ6Y2FzZSBNdDpyZXR1cm4gbmV3IHIoK24pO2Nhc2Ugd3Q6cmV0dXJuIHZhKG4sZSk7Y2FzZSBlcjpjYXNlIHJyOmNhc2UgaXI6Y2FzZSB1cjpjYXNlIGZyOmNhc2UgbHI6Y2FzZSBvcjpjYXNlIHNyOmNhc2UgYXI6cmV0dXJuIEp1KG4sZSk7Y2FzZSBBbjpyZXR1cm4gbmV3IHI7Y2FzZSBGdDpjYXNlIFV0OnJldHVybiBuZXcgcihuKTtjYXNlIER0OnJldHVybiB3YShuKTtjYXNlIHluOnJldHVybiBuZXcgcjtjYXNlIGFlOnJldHVybiB4YShuKX19ZnVuY3Rpb24gTWEobix0KXt2YXIgZT10Lmxlbmd0aDtpZighZSlyZXR1cm4gbjt2YXIgcj1lLTE7cmV0dXJuIHRbcl09KGU+MT8iJiAiOiIiKSt0W3JdLHQ9dC5qb2luKGU+Mj8iLCAiOiIgIiksbi5yZXBsYWNlKEZsLGB7Ci8qIFt3cmFwcGVkIHdpdGggYCt0K2BdICovCmApfWZ1bmN0aW9uIEZhKG4pe3JldHVybiBSKG4pfHxodChuKXx8ISEod3UmJm4mJm5bd3VdKX1mdW5jdGlvbiBHbihuLHQpe3ZhciBlPXR5cGVvZiBuO3JldHVybiB0PXQ/PyRuLCEhdCYmKGU9PSJudW1iZXIifHxlIT0ic3ltYm9sIiYmWWwudGVzdChuKSkmJm4+LTEmJm4lMT09MCYmbjx0fWZ1bmN0aW9uIGsobix0LGUpe2lmKCFVKGUpKXJldHVybiExO3ZhciByPXR5cGVvZiB0O3JldHVybihyPT0ibnVtYmVyIj90bihlKSYmR24odCxlLmxlbmd0aCk6cj09InN0cmluZyImJnQgaW4gZSk/Um4oZVt0XSxuKTohMX1mdW5jdGlvbiBpaShuLHQpe2lmKFIobikpcmV0dXJuITE7dmFyIGU9dHlwZW9mIG47cmV0dXJuIGU9PSJudW1iZXIifHxlPT0ic3ltYm9sInx8ZT09ImJvb2xlYW4ifHxuPT1udWxsfHxvbihuKT8hMDpibC50ZXN0KG4pfHwhV2wudGVzdChuKXx8dCE9bnVsbCYmbiBpbiBQKHQpfWZ1bmN0aW9uIERhKG4pe3ZhciB0PXR5cGVvZiBuO3JldHVybiB0PT0ic3RyaW5nInx8dD09Im51bWJlciJ8fHQ9PSJzeW1ib2wifHx0PT0iYm9vbGVhbiI/biE9PSJfX3Byb3RvX18iOm49PT1udWxsfWZ1bmN0aW9uIHVpKG4pe3ZhciB0PXFlKG4pLGU9dVt0XTtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uInx8ISh0IGluIEMucHJvdG90eXBlKSlyZXR1cm4hMTtpZihuPT09ZSlyZXR1cm4hMDt2YXIgcj10aShlKTtyZXR1cm4hIXImJm49PT1yWzBdfWZ1bmN0aW9uIFVhKG4pe3JldHVybiEhcHUmJnB1IGluIG59dmFyIE5hPXdlP0huOm1pO2Z1bmN0aW9uIGp0KG4pe3ZhciB0PW4mJm4uY29uc3RydWN0b3IsZT10eXBlb2YgdD09ImZ1bmN0aW9uIiYmdC5wcm90b3R5cGV8fEl0O3JldHVybiBuPT09ZX1mdW5jdGlvbiBfZihuKXtyZXR1cm4gbj09PW4mJiFVKG4pfWZ1bmN0aW9uIGRmKG4sdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPT1udWxsPyExOmVbbl09PT10JiYodCE9PWx8fG4gaW4gUChlKSl9fWZ1bmN0aW9uIEdhKG4pe3ZhciB0PVhlKG4sZnVuY3Rpb24ocil7cmV0dXJuIGUuc2l6ZT09PWxsJiZlLmNsZWFyKCkscn0pLGU9dC5jYWNoZTtyZXR1cm4gdH1mdW5jdGlvbiBIYShuLHQpe3ZhciBlPW5bMV0scj10WzFdLGk9ZXxyLGY9aTwoY258ZXR8Qm4pLG89cj09Qm4mJmU9PUVufHxyPT1CbiYmZT09QnQmJm5bN10ubGVuZ3RoPD10WzhdfHxyPT0oQm58QnQpJiZ0WzddLmxlbmd0aDw9dFs4XSYmZT09RW47aWYoIShmfHxvKSlyZXR1cm4gbjtyJmNuJiYoblsyXT10WzJdLGl8PWUmY24/MDpSaSk7dmFyIHM9dFszXTtpZihzKXt2YXIgYz1uWzNdO25bM109Yz9WdShjLHMsdFs0XSk6cyxuWzRdPWM/WG4oblszXSxpZSk6dFs0XX1yZXR1cm4gcz10WzVdLHMmJihjPW5bNV0sbls1XT1jP2t1KGMscyx0WzZdKTpzLG5bNl09Yz9YbihuWzVdLGllKTp0WzZdKSxzPXRbN10scyYmKG5bN109cyksciZCbiYmKG5bOF09bls4XT09bnVsbD90WzhdOlgobls4XSx0WzhdKSksbls5XT09bnVsbCYmKG5bOV09dFs5XSksblswXT10WzBdLG5bMV09aSxufWZ1bmN0aW9uIHFhKG4pe3ZhciB0PVtdO2lmKG4hPW51bGwpZm9yKHZhciBlIGluIFAobikpdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIEthKG4pe3JldHVybiBBZS5jYWxsKG4pfWZ1bmN0aW9uIHZmKG4sdCxlKXtyZXR1cm4gdD1LKHQ9PT1sP24ubGVuZ3RoLTE6dCwwKSxmdW5jdGlvbigpe2Zvcih2YXIgcj1hcmd1bWVudHMsaT0tMSxmPUsoci5sZW5ndGgtdCwwKSxvPWgoZik7KytpPGY7KW9baV09clt0K2ldO2k9LTE7Zm9yKHZhciBzPWgodCsxKTsrK2k8dDspc1tpXT1yW2ldO3JldHVybiBzW3RdPWUobyksdW4obix0aGlzLHMpfX1mdW5jdGlvbiB3ZihuLHQpe3JldHVybiB0Lmxlbmd0aDwyP246c3Qobix2bih0LDAsLTEpKX1mdW5jdGlvbiB6YShuLHQpe2Zvcih2YXIgZT1uLmxlbmd0aCxyPVgodC5sZW5ndGgsZSksaT1ubihuKTtyLS07KXt2YXIgZj10W3JdO25bcl09R24oZixlKT9pW2ZdOmx9cmV0dXJuIG59ZnVuY3Rpb24gZmkobix0KXtpZighKHQ9PT0iY29uc3RydWN0b3IiJiZ0eXBlb2Ygblt0XT09ImZ1bmN0aW9uIikmJnQhPSJfX3Byb3RvX18iKXJldHVybiBuW3RdfXZhciB4Zj15ZihIdSksbmU9dXN8fGZ1bmN0aW9uKG4sdCl7cmV0dXJuICQuc2V0VGltZW91dChuLHQpfSxsaT15ZihnYSk7ZnVuY3Rpb24gQWYobix0LGUpe3ZhciByPXQrIiI7cmV0dXJuIGxpKG4sTWEociwkYShiYShyKSxlKSkpfWZ1bmN0aW9uIHlmKG4pe3ZhciB0PTAsZT0wO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXNzKCksaT1jbC0oci1lKTtpZihlPXIsaT4wKXtpZigrK3Q+PWFsKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSB0PTA7cmV0dXJuIG4uYXBwbHkobCxhcmd1bWVudHMpfX1mdW5jdGlvbiB6ZShuLHQpe3ZhciBlPS0xLHI9bi5sZW5ndGgsaT1yLTE7Zm9yKHQ9dD09PWw/cjp0OysrZTx0Oyl7dmFyIGY9S3IoZSxpKSxvPW5bZl07bltmXT1uW2VdLG5bZV09b31yZXR1cm4gbi5sZW5ndGg9dCxufXZhciBtZj1HYShmdW5jdGlvbihuKXt2YXIgdD1bXTtyZXR1cm4gbi5jaGFyQ29kZUF0KDApPT09NDYmJnQucHVzaCgiIiksbi5yZXBsYWNlKEJsLGZ1bmN0aW9uKGUscixpLGYpe3QucHVzaChpP2YucmVwbGFjZShIbCwiJDEiKTpyfHxlKX0pLHR9KTtmdW5jdGlvbiBXbihuKXtpZih0eXBlb2Ygbj09InN0cmluZyJ8fG9uKG4pKXJldHVybiBuO3ZhciB0PW4rIiI7cmV0dXJuIHQ9PSIwIiYmMS9uPT0tcnQ/Ii0wIjp0fWZ1bmN0aW9uIGN0KG4pe2lmKG4hPW51bGwpe3RyeXtyZXR1cm4geGUuY2FsbChuKX1jYXRjaHt9dHJ5e3JldHVybiBuKyIifWNhdGNoe319cmV0dXJuIiJ9ZnVuY3Rpb24gJGEobix0KXtyZXR1cm4gZ24odmwsZnVuY3Rpb24oZSl7dmFyIHI9Il8uIitlWzBdO3QmZVsxXSYmIXBlKG4scikmJm4ucHVzaChyKX0pLG4uc29ydCgpfWZ1bmN0aW9uIElmKG4pe2lmKG4gaW5zdGFuY2VvZiBDKXJldHVybiBuLmNsb25lKCk7dmFyIHQ9bmV3IF9uKG4uX193cmFwcGVkX18sbi5fX2NoYWluX18pO3JldHVybiB0Ll9fYWN0aW9uc19fPW5uKG4uX19hY3Rpb25zX18pLHQuX19pbmRleF9fPW4uX19pbmRleF9fLHQuX192YWx1ZXNfXz1uLl9fdmFsdWVzX18sdH1mdW5jdGlvbiBaYShuLHQsZSl7KGU/ayhuLHQsZSk6dD09PWwpP3Q9MTp0PUsoUyh0KSwwKTt2YXIgcj1uPT1udWxsPzA6bi5sZW5ndGg7aWYoIXJ8fHQ8MSlyZXR1cm5bXTtmb3IodmFyIGk9MCxmPTAsbz1oKEVlKHIvdCkpO2k8cjspb1tmKytdPXZuKG4saSxpKz10KTtyZXR1cm4gb31mdW5jdGlvbiBZYShuKXtmb3IodmFyIHQ9LTEsZT1uPT1udWxsPzA6bi5sZW5ndGgscj0wLGk9W107Kyt0PGU7KXt2YXIgZj1uW3RdO2YmJihpW3IrK109Zil9cmV0dXJuIGl9ZnVuY3Rpb24gWGEoKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO2lmKCFuKXJldHVybltdO2Zvcih2YXIgdD1oKG4tMSksZT1hcmd1bWVudHNbMF0scj1uO3ItLTspdFtyLTFdPWFyZ3VtZW50c1tyXTtyZXR1cm4gWW4oUihlKT9ubihlKTpbZV0sWSh0LDEpKX12YXIgSmE9TChmdW5jdGlvbihuLHQpe3JldHVybiBHKG4pP1h0KG4sWSh0LDEsRywhMCkpOltdfSksUWE9TChmdW5jdGlvbihuLHQpe3ZhciBlPXduKHQpO3JldHVybiBHKGUpJiYoZT1sKSxHKG4pP1h0KG4sWSh0LDEsRywhMCksQShlLDIpKTpbXX0pLFZhPUwoZnVuY3Rpb24obix0KXt2YXIgZT13bih0KTtyZXR1cm4gRyhlKSYmKGU9bCksRyhuKT9YdChuLFkodCwxLEcsITApLGwsZSk6W119KTtmdW5jdGlvbiBrYShuLHQsZSl7dmFyIHI9bj09bnVsbD8wOm4ubGVuZ3RoO3JldHVybiByPyh0PWV8fHQ9PT1sPzE6Uyh0KSx2bihuLHQ8MD8wOnQscikpOltdfWZ1bmN0aW9uIGphKG4sdCxlKXt2YXIgcj1uPT1udWxsPzA6bi5sZW5ndGg7cmV0dXJuIHI/KHQ9ZXx8dD09PWw/MTpTKHQpLHQ9ci10LHZuKG4sMCx0PDA/MDp0KSk6W119ZnVuY3Rpb24gbmMobix0KXtyZXR1cm4gbiYmbi5sZW5ndGg/RmUobixBKHQsMyksITAsITApOltdfWZ1bmN0aW9uIHRjKG4sdCl7cmV0dXJuIG4mJm4ubGVuZ3RoP0ZlKG4sQSh0LDMpLCEwKTpbXX1mdW5jdGlvbiBlYyhuLHQsZSxyKXt2YXIgaT1uPT1udWxsPzA6bi5sZW5ndGg7cmV0dXJuIGk/KGUmJnR5cGVvZiBlIT0ibnVtYmVyIiYmayhuLHQsZSkmJihlPTAscj1pKSxYcyhuLHQsZSxyKSk6W119ZnVuY3Rpb24gUmYobix0LGUpe3ZhciByPW49PW51bGw/MDpuLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgaT1lPT1udWxsPzA6UyhlKTtyZXR1cm4gaTwwJiYoaT1LKHIraSwwKSksX2UobixBKHQsMyksaSl9ZnVuY3Rpb24gU2Yobix0LGUpe3ZhciByPW49PW51bGw/MDpuLmxlbmd0aDtpZighcilyZXR1cm4tMTt2YXIgaT1yLTE7cmV0dXJuIGUhPT1sJiYoaT1TKGUpLGk9ZTwwP0socitpLDApOlgoaSxyLTEpKSxfZShuLEEodCwzKSxpLCEwKX1mdW5jdGlvbiBFZihuKXt2YXIgdD1uPT1udWxsPzA6bi5sZW5ndGg7cmV0dXJuIHQ/WShuLDEpOltdfWZ1bmN0aW9uIHJjKG4pe3ZhciB0PW49PW51bGw/MDpuLmxlbmd0aDtyZXR1cm4gdD9ZKG4scnQpOltdfWZ1bmN0aW9uIGljKG4sdCl7dmFyIGU9bj09bnVsbD8wOm4ubGVuZ3RoO3JldHVybiBlPyh0PXQ9PT1sPzE6Uyh0KSxZKG4sdCkpOltdfWZ1bmN0aW9uIHVjKG4pe2Zvcih2YXIgdD0tMSxlPW49PW51bGw/MDpuLmxlbmd0aCxyPXt9OysrdDxlOyl7dmFyIGk9blt0XTtyW2lbMF1dPWlbMV19cmV0dXJuIHJ9ZnVuY3Rpb24gTGYobil7cmV0dXJuIG4mJm4ubGVuZ3RoP25bMF06bH1mdW5jdGlvbiBmYyhuLHQsZSl7dmFyIHI9bj09bnVsbD8wOm4ubGVuZ3RoO2lmKCFyKXJldHVybi0xO3ZhciBpPWU9PW51bGw/MDpTKGUpO3JldHVybiBpPDAmJihpPUsocitpLDApKSxBdChuLHQsaSl9ZnVuY3Rpb24gbGMobil7dmFyIHQ9bj09bnVsbD8wOm4ubGVuZ3RoO3JldHVybiB0P3ZuKG4sMCwtMSk6W119dmFyIG9jPUwoZnVuY3Rpb24obil7dmFyIHQ9RChuLFhyKTtyZXR1cm4gdC5sZW5ndGgmJnRbMF09PT1uWzBdP1VyKHQpOltdfSksc2M9TChmdW5jdGlvbihuKXt2YXIgdD13bihuKSxlPUQobixYcik7cmV0dXJuIHQ9PT13bihlKT90PWw6ZS5wb3AoKSxlLmxlbmd0aCYmZVswXT09PW5bMF0/VXIoZSxBKHQsMikpOltdfSksYWM9TChmdW5jdGlvbihuKXt2YXIgdD13bihuKSxlPUQobixYcik7cmV0dXJuIHQ9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpsLHQmJmUucG9wKCksZS5sZW5ndGgmJmVbMF09PT1uWzBdP1VyKGUsbCx0KTpbXX0pO2Z1bmN0aW9uIGNjKG4sdCl7cmV0dXJuIG49PW51bGw/IiI6bHMuY2FsbChuLHQpfWZ1bmN0aW9uIHduKG4pe3ZhciB0PW49PW51bGw/MDpuLmxlbmd0aDtyZXR1cm4gdD9uW3QtMV06bH1mdW5jdGlvbiBoYyhuLHQsZSl7dmFyIHI9bj09bnVsbD8wOm4ubGVuZ3RoO2lmKCFyKXJldHVybi0xO3ZhciBpPXI7cmV0dXJuIGUhPT1sJiYoaT1TKGUpLGk9aTwwP0socitpLDApOlgoaSxyLTEpKSx0PT09dD8kbyhuLHQsaSk6X2UobixmdSxpLCEwKX1mdW5jdGlvbiBnYyhuLHQpe3JldHVybiBuJiZuLmxlbmd0aD9EdShuLFModCkpOmx9dmFyIHBjPUwoVGYpO2Z1bmN0aW9uIFRmKG4sdCl7cmV0dXJuIG4mJm4ubGVuZ3RoJiZ0JiZ0Lmxlbmd0aD9xcihuLHQpOm59ZnVuY3Rpb24gX2Mobix0LGUpe3JldHVybiBuJiZuLmxlbmd0aCYmdCYmdC5sZW5ndGg/cXIobix0LEEoZSwyKSk6bn1mdW5jdGlvbiBkYyhuLHQsZSl7cmV0dXJuIG4mJm4ubGVuZ3RoJiZ0JiZ0Lmxlbmd0aD9xcihuLHQsbCxlKTpufXZhciB2Yz1ObihmdW5jdGlvbihuLHQpe3ZhciBlPW49PW51bGw/MDpuLmxlbmd0aCxyPVByKG4sdCk7cmV0dXJuIEd1KG4sRCh0LGZ1bmN0aW9uKGkpe3JldHVybiBHbihpLGUpPytpOml9KS5zb3J0KFF1KSkscn0pO2Z1bmN0aW9uIHdjKG4sdCl7dmFyIGU9W107aWYoIShuJiZuLmxlbmd0aCkpcmV0dXJuIGU7dmFyIHI9LTEsaT1bXSxmPW4ubGVuZ3RoO2Zvcih0PUEodCwzKTsrK3I8Zjspe3ZhciBvPW5bcl07dChvLHIsbikmJihlLnB1c2gobyksaS5wdXNoKHIpKX1yZXR1cm4gR3UobixpKSxlfWZ1bmN0aW9uIG9pKG4pe3JldHVybiBuPT1udWxsP246Y3MuY2FsbChuKX1mdW5jdGlvbiB4YyhuLHQsZSl7dmFyIHI9bj09bnVsbD8wOm4ubGVuZ3RoO3JldHVybiByPyhlJiZ0eXBlb2YgZSE9Im51bWJlciImJmsobix0LGUpPyh0PTAsZT1yKToodD10PT1udWxsPzA6Uyh0KSxlPWU9PT1sP3I6UyhlKSksdm4obix0LGUpKTpbXX1mdW5jdGlvbiBBYyhuLHQpe3JldHVybiBNZShuLHQpfWZ1bmN0aW9uIHljKG4sdCxlKXtyZXR1cm4gJHIobix0LEEoZSwyKSl9ZnVuY3Rpb24gbWMobix0KXt2YXIgZT1uPT1udWxsPzA6bi5sZW5ndGg7aWYoZSl7dmFyIHI9TWUobix0KTtpZihyPGUmJlJuKG5bcl0sdCkpcmV0dXJuIHJ9cmV0dXJuLTF9ZnVuY3Rpb24gSWMobix0KXtyZXR1cm4gTWUobix0LCEwKX1mdW5jdGlvbiBSYyhuLHQsZSl7cmV0dXJuICRyKG4sdCxBKGUsMiksITApfWZ1bmN0aW9uIFNjKG4sdCl7dmFyIGU9bj09bnVsbD8wOm4ubGVuZ3RoO2lmKGUpe3ZhciByPU1lKG4sdCwhMCktMTtpZihSbihuW3JdLHQpKXJldHVybiByfXJldHVybi0xfWZ1bmN0aW9uIEVjKG4pe3JldHVybiBuJiZuLmxlbmd0aD9xdShuKTpbXX1mdW5jdGlvbiBMYyhuLHQpe3JldHVybiBuJiZuLmxlbmd0aD9xdShuLEEodCwyKSk6W119ZnVuY3Rpb24gVGMobil7dmFyIHQ9bj09bnVsbD8wOm4ubGVuZ3RoO3JldHVybiB0P3ZuKG4sMSx0KTpbXX1mdW5jdGlvbiBDYyhuLHQsZSl7cmV0dXJuIG4mJm4ubGVuZ3RoPyh0PWV8fHQ9PT1sPzE6Uyh0KSx2bihuLDAsdDwwPzA6dCkpOltdfWZ1bmN0aW9uIE9jKG4sdCxlKXt2YXIgcj1uPT1udWxsPzA6bi5sZW5ndGg7cmV0dXJuIHI/KHQ9ZXx8dD09PWw/MTpTKHQpLHQ9ci10LHZuKG4sdDwwPzA6dCxyKSk6W119ZnVuY3Rpb24gV2Mobix0KXtyZXR1cm4gbiYmbi5sZW5ndGg/RmUobixBKHQsMyksITEsITApOltdfWZ1bmN0aW9uIGJjKG4sdCl7cmV0dXJuIG4mJm4ubGVuZ3RoP0ZlKG4sQSh0LDMpKTpbXX12YXIgQmM9TChmdW5jdGlvbihuKXtyZXR1cm4ga24oWShuLDEsRywhMCkpfSksUGM9TChmdW5jdGlvbihuKXt2YXIgdD13bihuKTtyZXR1cm4gRyh0KSYmKHQ9bCksa24oWShuLDEsRywhMCksQSh0LDIpKX0pLE1jPUwoZnVuY3Rpb24obil7dmFyIHQ9d24obik7cmV0dXJuIHQ9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpsLGtuKFkobiwxLEcsITApLGwsdCl9KTtmdW5jdGlvbiBGYyhuKXtyZXR1cm4gbiYmbi5sZW5ndGg/a24obik6W119ZnVuY3Rpb24gRGMobix0KXtyZXR1cm4gbiYmbi5sZW5ndGg/a24obixBKHQsMikpOltdfWZ1bmN0aW9uIFVjKG4sdCl7cmV0dXJuIHQ9dHlwZW9mIHQ9PSJmdW5jdGlvbiI/dDpsLG4mJm4ubGVuZ3RoP2tuKG4sbCx0KTpbXX1mdW5jdGlvbiBzaShuKXtpZighKG4mJm4ubGVuZ3RoKSlyZXR1cm5bXTt2YXIgdD0wO3JldHVybiBuPVpuKG4sZnVuY3Rpb24oZSl7aWYoRyhlKSlyZXR1cm4gdD1LKGUubGVuZ3RoLHQpLCEwfSksRXIodCxmdW5jdGlvbihlKXtyZXR1cm4gRChuLElyKGUpKX0pfWZ1bmN0aW9uIENmKG4sdCl7aWYoIShuJiZuLmxlbmd0aCkpcmV0dXJuW107dmFyIGU9c2kobik7cmV0dXJuIHQ9PW51bGw/ZTpEKGUsZnVuY3Rpb24ocil7cmV0dXJuIHVuKHQsbCxyKX0pfXZhciBOYz1MKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIEcobik/WHQobix0KTpbXX0pLEdjPUwoZnVuY3Rpb24obil7cmV0dXJuIFlyKFpuKG4sRykpfSksSGM9TChmdW5jdGlvbihuKXt2YXIgdD13bihuKTtyZXR1cm4gRyh0KSYmKHQ9bCksWXIoWm4obixHKSxBKHQsMikpfSkscWM9TChmdW5jdGlvbihuKXt2YXIgdD13bihuKTtyZXR1cm4gdD10eXBlb2YgdD09ImZ1bmN0aW9uIj90OmwsWXIoWm4obixHKSxsLHQpfSksS2M9TChzaSk7ZnVuY3Rpb24gemMobix0KXtyZXR1cm4gWnUobnx8W10sdHx8W10sWXQpfWZ1bmN0aW9uICRjKG4sdCl7cmV0dXJuIFp1KG58fFtdLHR8fFtdLFZ0KX12YXIgWmM9TChmdW5jdGlvbihuKXt2YXIgdD1uLmxlbmd0aCxlPXQ+MT9uW3QtMV06bDtyZXR1cm4gZT10eXBlb2YgZT09ImZ1bmN0aW9uIj8obi5wb3AoKSxlKTpsLENmKG4sZSl9KTtmdW5jdGlvbiBPZihuKXt2YXIgdD11KG4pO3JldHVybiB0Ll9fY2hhaW5fXz0hMCx0fWZ1bmN0aW9uIFljKG4sdCl7cmV0dXJuIHQobiksbn1mdW5jdGlvbiAkZShuLHQpe3JldHVybiB0KG4pfXZhciBYYz1ObihmdW5jdGlvbihuKXt2YXIgdD1uLmxlbmd0aCxlPXQ/blswXTowLHI9dGhpcy5fX3dyYXBwZWRfXyxpPWZ1bmN0aW9uKGYpe3JldHVybiBQcihmLG4pfTtyZXR1cm4gdD4xfHx0aGlzLl9fYWN0aW9uc19fLmxlbmd0aHx8IShyIGluc3RhbmNlb2YgQyl8fCFHbihlKT90aGlzLnRocnUoaSk6KHI9ci5zbGljZShlLCtlKyh0PzE6MCkpLHIuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzokZSxhcmdzOltpXSx0aGlzQXJnOmx9KSxuZXcgX24ocix0aGlzLl9fY2hhaW5fXykudGhydShmdW5jdGlvbihmKXtyZXR1cm4gdCYmIWYubGVuZ3RoJiZmLnB1c2gobCksZn0pKX0pO2Z1bmN0aW9uIEpjKCl7cmV0dXJuIE9mKHRoaXMpfWZ1bmN0aW9uIFFjKCl7cmV0dXJuIG5ldyBfbih0aGlzLnZhbHVlKCksdGhpcy5fX2NoYWluX18pfWZ1bmN0aW9uIFZjKCl7dGhpcy5fX3ZhbHVlc19fPT09bCYmKHRoaXMuX192YWx1ZXNfXz16Zih0aGlzLnZhbHVlKCkpKTt2YXIgbj10aGlzLl9faW5kZXhfXz49dGhpcy5fX3ZhbHVlc19fLmxlbmd0aCx0PW4/bDp0aGlzLl9fdmFsdWVzX19bdGhpcy5fX2luZGV4X18rK107cmV0dXJue2RvbmU6bix2YWx1ZTp0fX1mdW5jdGlvbiBrYygpe3JldHVybiB0aGlzfWZ1bmN0aW9uIGpjKG4pe2Zvcih2YXIgdCxlPXRoaXM7ZSBpbnN0YW5jZW9mIE9lOyl7dmFyIHI9SWYoZSk7ci5fX2luZGV4X189MCxyLl9fdmFsdWVzX189bCx0P2kuX193cmFwcGVkX189cjp0PXI7dmFyIGk9cjtlPWUuX193cmFwcGVkX199cmV0dXJuIGkuX193cmFwcGVkX189bix0fWZ1bmN0aW9uIG5oKCl7dmFyIG49dGhpcy5fX3dyYXBwZWRfXztpZihuIGluc3RhbmNlb2YgQyl7dmFyIHQ9bjtyZXR1cm4gdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgmJih0PW5ldyBDKHRoaXMpKSx0PXQucmV2ZXJzZSgpLHQuX19hY3Rpb25zX18ucHVzaCh7ZnVuYzokZSxhcmdzOltvaV0sdGhpc0FyZzpsfSksbmV3IF9uKHQsdGhpcy5fX2NoYWluX18pfXJldHVybiB0aGlzLnRocnUob2kpfWZ1bmN0aW9uIHRoKCl7cmV0dXJuICR1KHRoaXMuX193cmFwcGVkX18sdGhpcy5fX2FjdGlvbnNfXyl9dmFyIGVoPURlKGZ1bmN0aW9uKG4sdCxlKXtCLmNhbGwobixlKT8rK25bZV06RG4obixlLDEpfSk7ZnVuY3Rpb24gcmgobix0LGUpe3ZhciByPVIobik/aXU6WXM7cmV0dXJuIGUmJmsobix0LGUpJiYodD1sKSxyKG4sQSh0LDMpKX1mdW5jdGlvbiBpaChuLHQpe3ZhciBlPVIobik/Wm46VHU7cmV0dXJuIGUobixBKHQsMykpfXZhciB1aD1lZihSZiksZmg9ZWYoU2YpO2Z1bmN0aW9uIGxoKG4sdCl7cmV0dXJuIFkoWmUobix0KSwxKX1mdW5jdGlvbiBvaChuLHQpe3JldHVybiBZKFplKG4sdCkscnQpfWZ1bmN0aW9uIHNoKG4sdCxlKXtyZXR1cm4gZT1lPT09bD8xOlMoZSksWShaZShuLHQpLGUpfWZ1bmN0aW9uIFdmKG4sdCl7dmFyIGU9UihuKT9nbjpWbjtyZXR1cm4gZShuLEEodCwzKSl9ZnVuY3Rpb24gYmYobix0KXt2YXIgZT1SKG4pP1RvOkx1O3JldHVybiBlKG4sQSh0LDMpKX12YXIgYWg9RGUoZnVuY3Rpb24obix0LGUpe0IuY2FsbChuLGUpP25bZV0ucHVzaCh0KTpEbihuLGUsW3RdKX0pO2Z1bmN0aW9uIGNoKG4sdCxlLHIpe249dG4obik/bjpXdChuKSxlPWUmJiFyP1MoZSk6MDt2YXIgaT1uLmxlbmd0aDtyZXR1cm4gZTwwJiYoZT1LKGkrZSwwKSksVmUobik/ZTw9aSYmbi5pbmRleE9mKHQsZSk+LTE6ISFpJiZBdChuLHQsZSk+LTF9dmFyIGhoPUwoZnVuY3Rpb24obix0LGUpe3ZhciByPS0xLGk9dHlwZW9mIHQ9PSJmdW5jdGlvbiIsZj10bihuKT9oKG4ubGVuZ3RoKTpbXTtyZXR1cm4gVm4obixmdW5jdGlvbihvKXtmWysrcl09aT91bih0LG8sZSk6SnQobyx0LGUpfSksZn0pLGdoPURlKGZ1bmN0aW9uKG4sdCxlKXtEbihuLGUsdCl9KTtmdW5jdGlvbiBaZShuLHQpe3ZhciBlPVIobik/RDpQdTtyZXR1cm4gZShuLEEodCwzKSl9ZnVuY3Rpb24gcGgobix0LGUscil7cmV0dXJuIG49PW51bGw/W106KFIodCl8fCh0PXQ9PW51bGw/W106W3RdKSxlPXI/bDplLFIoZSl8fChlPWU9PW51bGw/W106W2VdKSxVdShuLHQsZSkpfXZhciBfaD1EZShmdW5jdGlvbihuLHQsZSl7bltlPzA6MV0ucHVzaCh0KX0sZnVuY3Rpb24oKXtyZXR1cm5bW10sW11dfSk7ZnVuY3Rpb24gZGgobix0LGUpe3ZhciByPVIobik/eXI6b3UsaT1hcmd1bWVudHMubGVuZ3RoPDM7cmV0dXJuIHIobixBKHQsNCksZSxpLFZuKX1mdW5jdGlvbiB2aChuLHQsZSl7dmFyIHI9UihuKT9DbzpvdSxpPWFyZ3VtZW50cy5sZW5ndGg8MztyZXR1cm4gcihuLEEodCw0KSxlLGksTHUpfWZ1bmN0aW9uIHdoKG4sdCl7dmFyIGU9UihuKT9abjpUdTtyZXR1cm4gZShuLEplKEEodCwzKSkpfWZ1bmN0aW9uIHhoKG4pe3ZhciB0PVIobik/SXU6Y2E7cmV0dXJuIHQobil9ZnVuY3Rpb24gQWgobix0LGUpeyhlP2sobix0LGUpOnQ9PT1sKT90PTE6dD1TKHQpO3ZhciByPVIobik/cXM6aGE7cmV0dXJuIHIobix0KX1mdW5jdGlvbiB5aChuKXt2YXIgdD1SKG4pP0tzOnBhO3JldHVybiB0KG4pfWZ1bmN0aW9uIG1oKG4pe2lmKG49PW51bGwpcmV0dXJuIDA7aWYodG4obikpcmV0dXJuIFZlKG4pP210KG4pOm4ubGVuZ3RoO3ZhciB0PUoobik7cmV0dXJuIHQ9PUFufHx0PT15bj9uLnNpemU6R3IobikubGVuZ3RofWZ1bmN0aW9uIEloKG4sdCxlKXt2YXIgcj1SKG4pP21yOl9hO3JldHVybiBlJiZrKG4sdCxlKSYmKHQ9bCkscihuLEEodCwzKSl9dmFyIFJoPUwoZnVuY3Rpb24obix0KXtpZihuPT1udWxsKXJldHVybltdO3ZhciBlPXQubGVuZ3RoO3JldHVybiBlPjEmJmsobix0WzBdLHRbMV0pP3Q9W106ZT4yJiZrKHRbMF0sdFsxXSx0WzJdKSYmKHQ9W3RbMF1dKSxVdShuLFkodCwxKSxbXSl9KSxZZT1pc3x8ZnVuY3Rpb24oKXtyZXR1cm4gJC5EYXRlLm5vdygpfTtmdW5jdGlvbiBTaChuLHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBwbih6KTtyZXR1cm4gbj1TKG4pLGZ1bmN0aW9uKCl7aWYoLS1uPDEpcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBCZihuLHQsZSl7cmV0dXJuIHQ9ZT9sOnQsdD1uJiZ0PT1udWxsP24ubGVuZ3RoOnQsVW4obixCbixsLGwsbCxsLHQpfWZ1bmN0aW9uIFBmKG4sdCl7dmFyIGU7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IHBuKHopO3JldHVybiBuPVMobiksZnVuY3Rpb24oKXtyZXR1cm4tLW4+MCYmKGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cykpLG48PTEmJih0PWwpLGV9fXZhciBhaT1MKGZ1bmN0aW9uKG4sdCxlKXt2YXIgcj1jbjtpZihlLmxlbmd0aCl7dmFyIGk9WG4oZSxDdChhaSkpO3J8PUxufXJldHVybiBVbihuLHIsdCxlLGkpfSksTWY9TChmdW5jdGlvbihuLHQsZSl7dmFyIHI9Y258ZXQ7aWYoZS5sZW5ndGgpe3ZhciBpPVhuKGUsQ3QoTWYpKTtyfD1Mbn1yZXR1cm4gVW4odCxyLG4sZSxpKX0pO2Z1bmN0aW9uIEZmKG4sdCxlKXt0PWU/bDp0O3ZhciByPVVuKG4sRW4sbCxsLGwsbCxsLHQpO3JldHVybiByLnBsYWNlaG9sZGVyPUZmLnBsYWNlaG9sZGVyLHJ9ZnVuY3Rpb24gRGYobix0LGUpe3Q9ZT9sOnQ7dmFyIHI9VW4obixfdCxsLGwsbCxsLGwsdCk7cmV0dXJuIHIucGxhY2Vob2xkZXI9RGYucGxhY2Vob2xkZXIscn1mdW5jdGlvbiBVZihuLHQsZSl7dmFyIHIsaSxmLG8scyxjLHA9MCxfPSExLGQ9ITEsdj0hMDtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgcG4oeik7dD14bih0KXx8MCxVKGUpJiYoXz0hIWUubGVhZGluZyxkPSJtYXhXYWl0ImluIGUsZj1kP0soeG4oZS5tYXhXYWl0KXx8MCx0KTpmLHY9InRyYWlsaW5nImluIGU/ISFlLnRyYWlsaW5nOnYpO2Z1bmN0aW9uIHgoSCl7dmFyIFNuPXIsS249aTtyZXR1cm4gcj1pPWwscD1ILG89bi5hcHBseShLbixTbiksb31mdW5jdGlvbiB5KEgpe3JldHVybiBwPUgscz1uZShULHQpLF8/eChIKTpvfWZ1bmN0aW9uIEUoSCl7dmFyIFNuPUgtYyxLbj1ILXAscmw9dC1TbjtyZXR1cm4gZD9YKHJsLGYtS24pOnJsfWZ1bmN0aW9uIG0oSCl7dmFyIFNuPUgtYyxLbj1ILXA7cmV0dXJuIGM9PT1sfHxTbj49dHx8U248MHx8ZCYmS24+PWZ9ZnVuY3Rpb24gVCgpe3ZhciBIPVllKCk7aWYobShIKSlyZXR1cm4gTyhIKTtzPW5lKFQsRShIKSl9ZnVuY3Rpb24gTyhIKXtyZXR1cm4gcz1sLHYmJnI/eChIKToocj1pPWwsbyl9ZnVuY3Rpb24gc24oKXtzIT09bCYmWXUocykscD0wLHI9Yz1pPXM9bH1mdW5jdGlvbiBqKCl7cmV0dXJuIHM9PT1sP286TyhZZSgpKX1mdW5jdGlvbiBhbigpe3ZhciBIPVllKCksU249bShIKTtpZihyPWFyZ3VtZW50cyxpPXRoaXMsYz1ILFNuKXtpZihzPT09bClyZXR1cm4geShjKTtpZihkKXJldHVybiBZdShzKSxzPW5lKFQsdCkseChjKX1yZXR1cm4gcz09PWwmJihzPW5lKFQsdCkpLG99cmV0dXJuIGFuLmNhbmNlbD1zbixhbi5mbHVzaD1qLGFufXZhciBFaD1MKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIEV1KG4sMSx0KX0pLExoPUwoZnVuY3Rpb24obix0LGUpe3JldHVybiBFdShuLHhuKHQpfHwwLGUpfSk7ZnVuY3Rpb24gVGgobil7cmV0dXJuIFVuKG4sdHIpfWZ1bmN0aW9uIFhlKG4sdCl7aWYodHlwZW9mIG4hPSJmdW5jdGlvbiJ8fHQhPW51bGwmJnR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBwbih6KTt2YXIgZT1mdW5jdGlvbigpe3ZhciByPWFyZ3VtZW50cyxpPXQ/dC5hcHBseSh0aGlzLHIpOnJbMF0sZj1lLmNhY2hlO2lmKGYuaGFzKGkpKXJldHVybiBmLmdldChpKTt2YXIgbz1uLmFwcGx5KHRoaXMscik7cmV0dXJuIGUuY2FjaGU9Zi5zZXQoaSxvKXx8ZixvfTtyZXR1cm4gZS5jYWNoZT1uZXcoWGUuQ2FjaGV8fEZuKSxlfVhlLkNhY2hlPUZuO2Z1bmN0aW9uIEplKG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBwbih6KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHM7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIW4uY2FsbCh0aGlzKTtjYXNlIDE6cmV0dXJuIW4uY2FsbCh0aGlzLHRbMF0pO2Nhc2UgMjpyZXR1cm4hbi5jYWxsKHRoaXMsdFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIW4uY2FsbCh0aGlzLHRbMF0sdFsxXSx0WzJdKX1yZXR1cm4hbi5hcHBseSh0aGlzLHQpfX1mdW5jdGlvbiBDaChuKXtyZXR1cm4gUGYoMixuKX12YXIgT2g9ZGEoZnVuY3Rpb24obix0KXt0PXQubGVuZ3RoPT0xJiZSKHRbMF0pP0QodFswXSxmbihBKCkpKTpEKFkodCwxKSxmbihBKCkpKTt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gTChmdW5jdGlvbihyKXtmb3IodmFyIGk9LTEsZj1YKHIubGVuZ3RoLGUpOysraTxmOylyW2ldPXRbaV0uY2FsbCh0aGlzLHJbaV0pO3JldHVybiB1bihuLHRoaXMscil9KX0pLGNpPUwoZnVuY3Rpb24obix0KXt2YXIgZT1Ybih0LEN0KGNpKSk7cmV0dXJuIFVuKG4sTG4sbCx0LGUpfSksTmY9TChmdW5jdGlvbihuLHQpe3ZhciBlPVhuKHQsQ3QoTmYpKTtyZXR1cm4gVW4obixkdCxsLHQsZSl9KSxXaD1ObihmdW5jdGlvbihuLHQpe3JldHVybiBVbihuLEJ0LGwsbCxsLHQpfSk7ZnVuY3Rpb24gYmgobix0KXtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgcG4oeik7cmV0dXJuIHQ9dD09PWw/dDpTKHQpLEwobix0KX1mdW5jdGlvbiBCaChuLHQpe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iKXRocm93IG5ldyBwbih6KTtyZXR1cm4gdD10PT1udWxsPzA6SyhTKHQpLDApLEwoZnVuY3Rpb24oZSl7dmFyIHI9ZVt0XSxpPW50KGUsMCx0KTtyZXR1cm4gciYmWW4oaSxyKSx1bihuLHRoaXMsaSl9KX1mdW5jdGlvbiBQaChuLHQsZSl7dmFyIHI9ITAsaT0hMDtpZih0eXBlb2YgbiE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgcG4oeik7cmV0dXJuIFUoZSkmJihyPSJsZWFkaW5nImluIGU/ISFlLmxlYWRpbmc6cixpPSJ0cmFpbGluZyJpbiBlPyEhZS50cmFpbGluZzppKSxVZihuLHQse2xlYWRpbmc6cixtYXhXYWl0OnQsdHJhaWxpbmc6aX0pfWZ1bmN0aW9uIE1oKG4pe3JldHVybiBCZihuLDEpfWZ1bmN0aW9uIEZoKG4sdCl7cmV0dXJuIGNpKEpyKHQpLG4pfWZ1bmN0aW9uIERoKCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW107dmFyIG49YXJndW1lbnRzWzBdO3JldHVybiBSKG4pP246W25dfWZ1bmN0aW9uIFVoKG4pe3JldHVybiBkbihuLGd0KX1mdW5jdGlvbiBOaChuLHQpe3JldHVybiB0PXR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6bCxkbihuLGd0LHQpfWZ1bmN0aW9uIEdoKG4pe3JldHVybiBkbihuLHpufGd0KX1mdW5jdGlvbiBIaChuLHQpe3JldHVybiB0PXR5cGVvZiB0PT0iZnVuY3Rpb24iP3Q6bCxkbihuLHpufGd0LHQpfWZ1bmN0aW9uIHFoKG4sdCl7cmV0dXJuIHQ9PW51bGx8fFN1KG4sdCxaKHQpKX1mdW5jdGlvbiBSbihuLHQpe3JldHVybiBuPT09dHx8biE9PW4mJnQhPT10fXZhciBLaD1IZShEciksemg9SGUoZnVuY3Rpb24obix0KXtyZXR1cm4gbj49dH0pLGh0PVd1KChmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KSgpKT9XdTpmdW5jdGlvbihuKXtyZXR1cm4gTihuKSYmQi5jYWxsKG4sImNhbGxlZSIpJiYhdnUuY2FsbChuLCJjYWxsZWUiKX0sUj1oLmlzQXJyYXksJGg9a2k/Zm4oa2kpOmpzO2Z1bmN0aW9uIHRuKG4pe3JldHVybiBuIT1udWxsJiZRZShuLmxlbmd0aCkmJiFIbihuKX1mdW5jdGlvbiBHKG4pe3JldHVybiBOKG4pJiZ0bihuKX1mdW5jdGlvbiBaaChuKXtyZXR1cm4gbj09PSEwfHxuPT09ITF8fE4obikmJlYobik9PVB0fXZhciB0dD1mc3x8bWksWWg9amk/Zm4oamkpOm5hO2Z1bmN0aW9uIFhoKG4pe3JldHVybiBOKG4pJiZuLm5vZGVUeXBlPT09MSYmIXRlKG4pfWZ1bmN0aW9uIEpoKG4pe2lmKG49PW51bGwpcmV0dXJuITA7aWYodG4obikmJihSKG4pfHx0eXBlb2Ygbj09InN0cmluZyJ8fHR5cGVvZiBuLnNwbGljZT09ImZ1bmN0aW9uInx8dHQobil8fE90KG4pfHxodChuKSkpcmV0dXJuIW4ubGVuZ3RoO3ZhciB0PUoobik7aWYodD09QW58fHQ9PXluKXJldHVybiFuLnNpemU7aWYoanQobikpcmV0dXJuIUdyKG4pLmxlbmd0aDtmb3IodmFyIGUgaW4gbilpZihCLmNhbGwobixlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRaChuLHQpe3JldHVybiBRdChuLHQpfWZ1bmN0aW9uIFZoKG4sdCxlKXtlPXR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6bDt2YXIgcj1lP2Uobix0KTpsO3JldHVybiByPT09bD9RdChuLHQsbCxlKTohIXJ9ZnVuY3Rpb24gaGkobil7aWYoIU4obikpcmV0dXJuITE7dmFyIHQ9VihuKTtyZXR1cm4gdD09b2V8fHQ9PXhsfHx0eXBlb2Ygbi5tZXNzYWdlPT0ic3RyaW5nIiYmdHlwZW9mIG4ubmFtZT09InN0cmluZyImJiF0ZShuKX1mdW5jdGlvbiBraChuKXtyZXR1cm4gdHlwZW9mIG49PSJudW1iZXIiJiZ4dShuKX1mdW5jdGlvbiBIbihuKXtpZighVShuKSlyZXR1cm4hMTt2YXIgdD1WKG4pO3JldHVybiB0PT1zZXx8dD09RWl8fHQ9PXdsfHx0PT15bH1mdW5jdGlvbiBHZihuKXtyZXR1cm4gdHlwZW9mIG49PSJudW1iZXIiJiZuPT1TKG4pfWZ1bmN0aW9uIFFlKG4pe3JldHVybiB0eXBlb2Ygbj09Im51bWJlciImJm4+LTEmJm4lMT09MCYmbjw9JG59ZnVuY3Rpb24gVShuKXt2YXIgdD10eXBlb2YgbjtyZXR1cm4gbiE9bnVsbCYmKHQ9PSJvYmplY3QifHx0PT0iZnVuY3Rpb24iKX1mdW5jdGlvbiBOKG4pe3JldHVybiBuIT1udWxsJiZ0eXBlb2Ygbj09Im9iamVjdCJ9dmFyIEhmPW51P2ZuKG51KTplYTtmdW5jdGlvbiBqaChuLHQpe3JldHVybiBuPT09dHx8TnIobix0LGVpKHQpKX1mdW5jdGlvbiBuZyhuLHQsZSl7cmV0dXJuIGU9dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZTpsLE5yKG4sdCxlaSh0KSxlKX1mdW5jdGlvbiB0ZyhuKXtyZXR1cm4gcWYobikmJm4hPStufWZ1bmN0aW9uIGVnKG4pe2lmKE5hKG4pKXRocm93IG5ldyBJKHJlKTtyZXR1cm4gYnUobil9ZnVuY3Rpb24gcmcobil7cmV0dXJuIG49PT1udWxsfWZ1bmN0aW9uIGlnKG4pe3JldHVybiBuPT1udWxsfWZ1bmN0aW9uIHFmKG4pe3JldHVybiB0eXBlb2Ygbj09Im51bWJlciJ8fE4obikmJlYobik9PUZ0fWZ1bmN0aW9uIHRlKG4pe2lmKCFOKG4pfHxWKG4pIT1QbilyZXR1cm4hMTt2YXIgdD1JZShuKTtpZih0PT09bnVsbClyZXR1cm4hMDt2YXIgZT1CLmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4gdHlwZW9mIGU9PSJmdW5jdGlvbiImJmUgaW5zdGFuY2VvZiBlJiZ4ZS5jYWxsKGUpPT1uc312YXIgZ2k9dHU/Zm4odHUpOnJhO2Z1bmN0aW9uIHVnKG4pe3JldHVybiBHZihuKSYmbj49LSRuJiZuPD0kbn12YXIgS2Y9ZXU/Zm4oZXUpOmlhO2Z1bmN0aW9uIFZlKG4pe3JldHVybiB0eXBlb2Ygbj09InN0cmluZyJ8fCFSKG4pJiZOKG4pJiZWKG4pPT1VdH1mdW5jdGlvbiBvbihuKXtyZXR1cm4gdHlwZW9mIG49PSJzeW1ib2wifHxOKG4pJiZWKG4pPT1hZX12YXIgT3Q9cnU/Zm4ocnUpOnVhO2Z1bmN0aW9uIGZnKG4pe3JldHVybiBuPT09bH1mdW5jdGlvbiBsZyhuKXtyZXR1cm4gTihuKSYmSihuKT09TnR9ZnVuY3Rpb24gb2cobil7cmV0dXJuIE4obikmJlYobik9PUlsfXZhciBzZz1IZShIciksYWc9SGUoZnVuY3Rpb24obix0KXtyZXR1cm4gbjw9dH0pO2Z1bmN0aW9uIHpmKG4pe2lmKCFuKXJldHVybltdO2lmKHRuKG4pKXJldHVybiBWZShuKT9tbihuKTpubihuKTtpZihxdCYmbltxdF0pcmV0dXJuIHFvKG5bcXRdKCkpO3ZhciB0PUoobiksZT10PT1Bbj9Ucjp0PT15bj9kZTpXdDtyZXR1cm4gZShuKX1mdW5jdGlvbiBxbihuKXtpZighbilyZXR1cm4gbj09PTA/bjowO2lmKG49eG4obiksbj09PXJ0fHxuPT09LXJ0KXt2YXIgdD1uPDA/LTE6MTtyZXR1cm4gdCpwbH1yZXR1cm4gbj09PW4/bjowfWZ1bmN0aW9uIFMobil7dmFyIHQ9cW4obiksZT10JTE7cmV0dXJuIHQ9PT10P2U/dC1lOnQ6MH1mdW5jdGlvbiAkZihuKXtyZXR1cm4gbj9vdChTKG4pLDAsVG4pOjB9ZnVuY3Rpb24geG4obil7aWYodHlwZW9mIG49PSJudW1iZXIiKXJldHVybiBuO2lmKG9uKG4pKXJldHVybiBmZTtpZihVKG4pKXt2YXIgdD10eXBlb2Ygbi52YWx1ZU9mPT0iZnVuY3Rpb24iP24udmFsdWVPZigpOm47bj1VKHQpP3QrIiI6dH1pZih0eXBlb2YgbiE9InN0cmluZyIpcmV0dXJuIG49PT0wP246K247bj1zdShuKTt2YXIgZT16bC50ZXN0KG4pO3JldHVybiBlfHxabC50ZXN0KG4pP1NvKG4uc2xpY2UoMiksZT8yOjgpOktsLnRlc3Qobik/ZmU6K259ZnVuY3Rpb24gWmYobil7cmV0dXJuIE9uKG4sZW4obikpfWZ1bmN0aW9uIGNnKG4pe3JldHVybiBuP290KFMobiksLSRuLCRuKTpuPT09MD9uOjB9ZnVuY3Rpb24gYihuKXtyZXR1cm4gbj09bnVsbD8iIjpsbihuKX12YXIgaGc9THQoZnVuY3Rpb24obix0KXtpZihqdCh0KXx8dG4odCkpe09uKHQsWih0KSxuKTtyZXR1cm59Zm9yKHZhciBlIGluIHQpQi5jYWxsKHQsZSkmJll0KG4sZSx0W2VdKX0pLFlmPUx0KGZ1bmN0aW9uKG4sdCl7T24odCxlbih0KSxuKX0pLGtlPUx0KGZ1bmN0aW9uKG4sdCxlLHIpe09uKHQsZW4odCksbixyKX0pLGdnPUx0KGZ1bmN0aW9uKG4sdCxlLHIpe09uKHQsWih0KSxuLHIpfSkscGc9Tm4oUHIpO2Z1bmN0aW9uIF9nKG4sdCl7dmFyIGU9RXQobik7cmV0dXJuIHQ9PW51bGw/ZTpSdShlLHQpfXZhciBkZz1MKGZ1bmN0aW9uKG4sdCl7bj1QKG4pO3ZhciBlPS0xLHI9dC5sZW5ndGgsaT1yPjI/dFsyXTpsO2ZvcihpJiZrKHRbMF0sdFsxXSxpKSYmKHI9MSk7KytlPHI7KWZvcih2YXIgZj10W2VdLG89ZW4oZikscz0tMSxjPW8ubGVuZ3RoOysrczxjOyl7dmFyIHA9b1tzXSxfPW5bcF07KF89PT1sfHxSbihfLEl0W3BdKSYmIUIuY2FsbChuLHApKSYmKG5bcF09ZltwXSl9cmV0dXJuIG59KSx2Zz1MKGZ1bmN0aW9uKG4pe3JldHVybiBuLnB1c2gobCxhZiksdW4oWGYsbCxuKX0pO2Z1bmN0aW9uIHdnKG4sdCl7cmV0dXJuIHV1KG4sQSh0LDMpLENuKX1mdW5jdGlvbiB4ZyhuLHQpe3JldHVybiB1dShuLEEodCwzKSxGcil9ZnVuY3Rpb24gQWcobix0KXtyZXR1cm4gbj09bnVsbD9uOk1yKG4sQSh0LDMpLGVuKX1mdW5jdGlvbiB5ZyhuLHQpe3JldHVybiBuPT1udWxsP246Q3UobixBKHQsMyksZW4pfWZ1bmN0aW9uIG1nKG4sdCl7cmV0dXJuIG4mJkNuKG4sQSh0LDMpKX1mdW5jdGlvbiBJZyhuLHQpe3JldHVybiBuJiZGcihuLEEodCwzKSl9ZnVuY3Rpb24gUmcobil7cmV0dXJuIG49PW51bGw/W106QmUobixaKG4pKX1mdW5jdGlvbiBTZyhuKXtyZXR1cm4gbj09bnVsbD9bXTpCZShuLGVuKG4pKX1mdW5jdGlvbiBwaShuLHQsZSl7dmFyIHI9bj09bnVsbD9sOnN0KG4sdCk7cmV0dXJuIHI9PT1sP2U6cn1mdW5jdGlvbiBFZyhuLHQpe3JldHVybiBuIT1udWxsJiZnZihuLHQsSnMpfWZ1bmN0aW9uIF9pKG4sdCl7cmV0dXJuIG4hPW51bGwmJmdmKG4sdCxRcyl9dmFyIExnPXVmKGZ1bmN0aW9uKG4sdCxlKXt0IT1udWxsJiZ0eXBlb2YgdC50b1N0cmluZyE9ImZ1bmN0aW9uIiYmKHQ9QWUuY2FsbCh0KSksblt0XT1lfSx2aShybikpLFRnPXVmKGZ1bmN0aW9uKG4sdCxlKXt0IT1udWxsJiZ0eXBlb2YgdC50b1N0cmluZyE9ImZ1bmN0aW9uIiYmKHQ9QWUuY2FsbCh0KSksQi5jYWxsKG4sdCk/blt0XS5wdXNoKGUpOm5bdF09W2VdfSxBKSxDZz1MKEp0KTtmdW5jdGlvbiBaKG4pe3JldHVybiB0bihuKT9tdShuKTpHcihuKX1mdW5jdGlvbiBlbihuKXtyZXR1cm4gdG4obik/bXUobiwhMCk6ZmEobil9ZnVuY3Rpb24gT2cobix0KXt2YXIgZT17fTtyZXR1cm4gdD1BKHQsMyksQ24obixmdW5jdGlvbihyLGksZil7RG4oZSx0KHIsaSxmKSxyKX0pLGV9ZnVuY3Rpb24gV2cobix0KXt2YXIgZT17fTtyZXR1cm4gdD1BKHQsMyksQ24obixmdW5jdGlvbihyLGksZil7RG4oZSxpLHQocixpLGYpKX0pLGV9dmFyIGJnPUx0KGZ1bmN0aW9uKG4sdCxlKXtQZShuLHQsZSl9KSxYZj1MdChmdW5jdGlvbihuLHQsZSxyKXtQZShuLHQsZSxyKX0pLEJnPU5uKGZ1bmN0aW9uKG4sdCl7dmFyIGU9e307aWYobj09bnVsbClyZXR1cm4gZTt2YXIgcj0hMTt0PUQodCxmdW5jdGlvbihmKXtyZXR1cm4gZj1qbihmLG4pLHJ8fChyPWYubGVuZ3RoPjEpLGZ9KSxPbihuLG5pKG4pLGUpLHImJihlPWRuKGUsem58SWl8Z3QsTGEpKTtmb3IodmFyIGk9dC5sZW5ndGg7aS0tOylacihlLHRbaV0pO3JldHVybiBlfSk7ZnVuY3Rpb24gUGcobix0KXtyZXR1cm4gSmYobixKZShBKHQpKSl9dmFyIE1nPU5uKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG49PW51bGw/e306b2Eobix0KX0pO2Z1bmN0aW9uIEpmKG4sdCl7aWYobj09bnVsbClyZXR1cm57fTt2YXIgZT1EKG5pKG4pLGZ1bmN0aW9uKHIpe3JldHVybltyXX0pO3JldHVybiB0PUEodCksTnUobixlLGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHQocixpWzBdKX0pfWZ1bmN0aW9uIEZnKG4sdCxlKXt0PWpuKHQsbik7dmFyIHI9LTEsaT10Lmxlbmd0aDtmb3IoaXx8KGk9MSxuPWwpOysrcjxpOyl7dmFyIGY9bj09bnVsbD9sOm5bV24odFtyXSldO2Y9PT1sJiYocj1pLGY9ZSksbj1IbihmKT9mLmNhbGwobik6Zn1yZXR1cm4gbn1mdW5jdGlvbiBEZyhuLHQsZSl7cmV0dXJuIG49PW51bGw/bjpWdChuLHQsZSl9ZnVuY3Rpb24gVWcobix0LGUscil7cmV0dXJuIHI9dHlwZW9mIHI9PSJmdW5jdGlvbiI/cjpsLG49PW51bGw/bjpWdChuLHQsZSxyKX12YXIgUWY9b2YoWiksVmY9b2YoZW4pO2Z1bmN0aW9uIE5nKG4sdCxlKXt2YXIgcj1SKG4pLGk9cnx8dHQobil8fE90KG4pO2lmKHQ9QSh0LDQpLGU9PW51bGwpe3ZhciBmPW4mJm4uY29uc3RydWN0b3I7aT9lPXI/bmV3IGY6W106VShuKT9lPUhuKGYpP0V0KEllKG4pKTp7fTplPXt9fXJldHVybihpP2duOkNuKShuLGZ1bmN0aW9uKG8scyxjKXtyZXR1cm4gdChlLG8scyxjKX0pLGV9ZnVuY3Rpb24gR2cobix0KXtyZXR1cm4gbj09bnVsbD8hMDpacihuLHQpfWZ1bmN0aW9uIEhnKG4sdCxlKXtyZXR1cm4gbj09bnVsbD9uOnp1KG4sdCxKcihlKSl9ZnVuY3Rpb24gcWcobix0LGUscil7cmV0dXJuIHI9dHlwZW9mIHI9PSJmdW5jdGlvbiI/cjpsLG49PW51bGw/bjp6dShuLHQsSnIoZSkscil9ZnVuY3Rpb24gV3Qobil7cmV0dXJuIG49PW51bGw/W106THIobixaKG4pKX1mdW5jdGlvbiBLZyhuKXtyZXR1cm4gbj09bnVsbD9bXTpMcihuLGVuKG4pKX1mdW5jdGlvbiB6ZyhuLHQsZSl7cmV0dXJuIGU9PT1sJiYoZT10LHQ9bCksZSE9PWwmJihlPXhuKGUpLGU9ZT09PWU/ZTowKSx0IT09bCYmKHQ9eG4odCksdD10PT09dD90OjApLG90KHhuKG4pLHQsZSl9ZnVuY3Rpb24gJGcobix0LGUpe3JldHVybiB0PXFuKHQpLGU9PT1sPyhlPXQsdD0wKTplPXFuKGUpLG49eG4obiksVnMobix0LGUpfWZ1bmN0aW9uIFpnKG4sdCxlKXtpZihlJiZ0eXBlb2YgZSE9ImJvb2xlYW4iJiZrKG4sdCxlKSYmKHQ9ZT1sKSxlPT09bCYmKHR5cGVvZiB0PT0iYm9vbGVhbiI/KGU9dCx0PWwpOnR5cGVvZiBuPT0iYm9vbGVhbiImJihlPW4sbj1sKSksbj09PWwmJnQ9PT1sPyhuPTAsdD0xKToobj1xbihuKSx0PT09bD8odD1uLG49MCk6dD1xbih0KSksbj50KXt2YXIgcj1uO249dCx0PXJ9aWYoZXx8biUxfHx0JTEpe3ZhciBpPUF1KCk7cmV0dXJuIFgobitpKih0LW4rUm8oIjFlLSIrKChpKyIiKS5sZW5ndGgtMSkpKSx0KX1yZXR1cm4gS3Iobix0KX12YXIgWWc9VHQoZnVuY3Rpb24obix0LGUpe3JldHVybiB0PXQudG9Mb3dlckNhc2UoKSxuKyhlP2tmKHQpOnQpfSk7ZnVuY3Rpb24ga2Yobil7cmV0dXJuIGRpKGIobikudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gamYobil7cmV0dXJuIG49YihuKSxuJiZuLnJlcGxhY2UoWGwsRG8pLnJlcGxhY2UoZ28sIiIpfWZ1bmN0aW9uIFhnKG4sdCxlKXtuPWIobiksdD1sbih0KTt2YXIgcj1uLmxlbmd0aDtlPWU9PT1sP3I6b3QoUyhlKSwwLHIpO3ZhciBpPWU7cmV0dXJuIGUtPXQubGVuZ3RoLGU+PTAmJm4uc2xpY2UoZSxpKT09dH1mdW5jdGlvbiBKZyhuKXtyZXR1cm4gbj1iKG4pLG4mJlRsLnRlc3Qobik/bi5yZXBsYWNlKENpLFVvKTpufWZ1bmN0aW9uIFFnKG4pe3JldHVybiBuPWIobiksbiYmUGwudGVzdChuKT9uLnJlcGxhY2UoY3IsIlxcJCYiKTpufXZhciBWZz1UdChmdW5jdGlvbihuLHQsZSl7cmV0dXJuIG4rKGU/Ii0iOiIiKSt0LnRvTG93ZXJDYXNlKCl9KSxrZz1UdChmdW5jdGlvbihuLHQsZSl7cmV0dXJuIG4rKGU/IiAiOiIiKSt0LnRvTG93ZXJDYXNlKCl9KSxqZz10ZigidG9Mb3dlckNhc2UiKTtmdW5jdGlvbiBucChuLHQsZSl7bj1iKG4pLHQ9Uyh0KTt2YXIgcj10P210KG4pOjA7aWYoIXR8fHI+PXQpcmV0dXJuIG47dmFyIGk9KHQtcikvMjtyZXR1cm4gR2UoTGUoaSksZSkrbitHZShFZShpKSxlKX1mdW5jdGlvbiB0cChuLHQsZSl7bj1iKG4pLHQ9Uyh0KTt2YXIgcj10P210KG4pOjA7cmV0dXJuIHQmJnI8dD9uK0dlKHQtcixlKTpufWZ1bmN0aW9uIGVwKG4sdCxlKXtuPWIobiksdD1TKHQpO3ZhciByPXQ/bXQobik6MDtyZXR1cm4gdCYmcjx0P0dlKHQtcixlKStuOm59ZnVuY3Rpb24gcnAobix0LGUpe3JldHVybiBlfHx0PT1udWxsP3Q9MDp0JiYodD0rdCksYXMoYihuKS5yZXBsYWNlKGhyLCIiKSx0fHwwKX1mdW5jdGlvbiBpcChuLHQsZSl7cmV0dXJuKGU/ayhuLHQsZSk6dD09PWwpP3Q9MTp0PVModCksenIoYihuKSx0KX1mdW5jdGlvbiB1cCgpe3ZhciBuPWFyZ3VtZW50cyx0PWIoblswXSk7cmV0dXJuIG4ubGVuZ3RoPDM/dDp0LnJlcGxhY2UoblsxXSxuWzJdKX12YXIgZnA9VHQoZnVuY3Rpb24obix0LGUpe3JldHVybiBuKyhlPyJfIjoiIikrdC50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gbHAobix0LGUpe3JldHVybiBlJiZ0eXBlb2YgZSE9Im51bWJlciImJmsobix0LGUpJiYodD1lPWwpLGU9ZT09PWw/VG46ZT4+PjAsZT8obj1iKG4pLG4mJih0eXBlb2YgdD09InN0cmluZyJ8fHQhPW51bGwmJiFnaSh0KSkmJih0PWxuKHQpLCF0JiZ5dChuKSk/bnQobW4obiksMCxlKTpuLnNwbGl0KHQsZSkpOltdfXZhciBvcD1UdChmdW5jdGlvbihuLHQsZSl7cmV0dXJuIG4rKGU/IiAiOiIiKStkaSh0KX0pO2Z1bmN0aW9uIHNwKG4sdCxlKXtyZXR1cm4gbj1iKG4pLGU9ZT09bnVsbD8wOm90KFMoZSksMCxuLmxlbmd0aCksdD1sbih0KSxuLnNsaWNlKGUsZSt0Lmxlbmd0aCk9PXR9ZnVuY3Rpb24gYXAobix0LGUpe3ZhciByPXUudGVtcGxhdGVTZXR0aW5ncztlJiZrKG4sdCxlKSYmKHQ9bCksbj1iKG4pLHQ9a2Uoe30sdCxyLHNmKTt2YXIgaT1rZSh7fSx0LmltcG9ydHMsci5pbXBvcnRzLHNmKSxmPVooaSksbz1McihpLGYpLHMsYyxwPTAsXz10LmludGVycG9sYXRlfHxjZSxkPSJfX3AgKz0gJyIsdj1DcigodC5lc2NhcGV8fGNlKS5zb3VyY2UrInwiK18uc291cmNlKyJ8IisoXz09PU9pP3FsOmNlKS5zb3VyY2UrInwiKyh0LmV2YWx1YXRlfHxjZSkuc291cmNlKyJ8JCIsImciKSx4PSIvLyMgc291cmNlVVJMPSIrKEIuY2FsbCh0LCJzb3VyY2VVUkwiKT8odC5zb3VyY2VVUkwrIiIpLnJlcGxhY2UoL1xzL2csIiAiKToibG9kYXNoLnRlbXBsYXRlU291cmNlc1siKyArK3hvKyJdIikrYApgO24ucmVwbGFjZSh2LGZ1bmN0aW9uKG0sVCxPLHNuLGosYW4pe3JldHVybiBPfHwoTz1zbiksZCs9bi5zbGljZShwLGFuKS5yZXBsYWNlKEpsLE5vKSxUJiYocz0hMCxkKz1gJyArCl9fZShgK1QrYCkgKwonYCksaiYmKGM9ITAsZCs9YCc7CmAraitgOwpfX3AgKz0gJ2ApLE8mJihkKz1gJyArCigoX190ID0gKGArTytgKSkgPT0gbnVsbCA/ICcnIDogX190KSArCidgKSxwPWFuK20ubGVuZ3RoLG19KSxkKz1gJzsKYDt2YXIgeT1CLmNhbGwodCwidmFyaWFibGUiKSYmdC52YXJpYWJsZTtpZigheSlkPWB3aXRoIChvYmopIHsKYCtkK2AKfQpgO2Vsc2UgaWYoR2wudGVzdCh5KSl0aHJvdyBuZXcgSShmbCk7ZD0oYz9kLnJlcGxhY2UoUmwsIiIpOmQpLnJlcGxhY2UoU2wsIiQxIikucmVwbGFjZShFbCwiJDE7IiksZD0iZnVuY3Rpb24oIisoeXx8Im9iaiIpK2ApIHsKYCsoeT8iIjpgb2JqIHx8IChvYmogPSB7fSk7CmApKyJ2YXIgX190LCBfX3AgPSAnJyIrKHM/IiwgX19lID0gXy5lc2NhcGUiOiIiKSsoYz9gLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjsKZnVuY3Rpb24gcHJpbnQoKSB7IF9fcCArPSBfX2ouY2FsbChhcmd1bWVudHMsICcnKSB9CmA6YDsKYCkrZCtgcmV0dXJuIF9fcAp9YDt2YXIgRT10bChmdW5jdGlvbigpe3JldHVybiBXKGYseCsicmV0dXJuICIrZCkuYXBwbHkobCxvKX0pO2lmKEUuc291cmNlPWQsaGkoRSkpdGhyb3cgRTtyZXR1cm4gRX1mdW5jdGlvbiBjcChuKXtyZXR1cm4gYihuKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGhwKG4pe3JldHVybiBiKG4pLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gZ3Aobix0LGUpe2lmKG49YihuKSxuJiYoZXx8dD09PWwpKXJldHVybiBzdShuKTtpZighbnx8ISh0PWxuKHQpKSlyZXR1cm4gbjt2YXIgcj1tbihuKSxpPW1uKHQpLGY9YXUocixpKSxvPWN1KHIsaSkrMTtyZXR1cm4gbnQocixmLG8pLmpvaW4oIiIpfWZ1bmN0aW9uIHBwKG4sdCxlKXtpZihuPWIobiksbiYmKGV8fHQ9PT1sKSlyZXR1cm4gbi5zbGljZSgwLGd1KG4pKzEpO2lmKCFufHwhKHQ9bG4odCkpKXJldHVybiBuO3ZhciByPW1uKG4pLGk9Y3Uocixtbih0KSkrMTtyZXR1cm4gbnQociwwLGkpLmpvaW4oIiIpfWZ1bmN0aW9uIF9wKG4sdCxlKXtpZihuPWIobiksbiYmKGV8fHQ9PT1sKSlyZXR1cm4gbi5yZXBsYWNlKGhyLCIiKTtpZighbnx8ISh0PWxuKHQpKSlyZXR1cm4gbjt2YXIgcj1tbihuKSxpPWF1KHIsbW4odCkpO3JldHVybiBudChyLGkpLmpvaW4oIiIpfWZ1bmN0aW9uIGRwKG4sdCl7dmFyIGU9b2wscj1zbDtpZihVKHQpKXt2YXIgaT0ic2VwYXJhdG9yImluIHQ/dC5zZXBhcmF0b3I6aTtlPSJsZW5ndGgiaW4gdD9TKHQubGVuZ3RoKTplLHI9Im9taXNzaW9uImluIHQ/bG4odC5vbWlzc2lvbik6cn1uPWIobik7dmFyIGY9bi5sZW5ndGg7aWYoeXQobikpe3ZhciBvPW1uKG4pO2Y9by5sZW5ndGh9aWYoZT49ZilyZXR1cm4gbjt2YXIgcz1lLW10KHIpO2lmKHM8MSlyZXR1cm4gcjt2YXIgYz1vP250KG8sMCxzKS5qb2luKCIiKTpuLnNsaWNlKDAscyk7aWYoaT09PWwpcmV0dXJuIGMrcjtpZihvJiYocys9Yy5sZW5ndGgtcyksZ2koaSkpe2lmKG4uc2xpY2Uocykuc2VhcmNoKGkpKXt2YXIgcCxfPWM7Zm9yKGkuZ2xvYmFsfHwoaT1DcihpLnNvdXJjZSxiKFdpLmV4ZWMoaSkpKyJnIikpLGkubGFzdEluZGV4PTA7cD1pLmV4ZWMoXyk7KXZhciBkPXAuaW5kZXg7Yz1jLnNsaWNlKDAsZD09PWw/czpkKX19ZWxzZSBpZihuLmluZGV4T2YobG4oaSkscykhPXMpe3ZhciB2PWMubGFzdEluZGV4T2YoaSk7dj4tMSYmKGM9Yy5zbGljZSgwLHYpKX1yZXR1cm4gYytyfWZ1bmN0aW9uIHZwKG4pe3JldHVybiBuPWIobiksbiYmTGwudGVzdChuKT9uLnJlcGxhY2UoVGksWm8pOm59dmFyIHdwPVR0KGZ1bmN0aW9uKG4sdCxlKXtyZXR1cm4gbisoZT8iICI6IiIpK3QudG9VcHBlckNhc2UoKX0pLGRpPXRmKCJ0b1VwcGVyQ2FzZSIpO2Z1bmN0aW9uIG5sKG4sdCxlKXtyZXR1cm4gbj1iKG4pLHQ9ZT9sOnQsdD09PWw/SG8obik/Sm8obik6Ym8obik6bi5tYXRjaCh0KXx8W119dmFyIHRsPUwoZnVuY3Rpb24obix0KXt0cnl7cmV0dXJuIHVuKG4sbCx0KX1jYXRjaChlKXtyZXR1cm4gaGkoZSk/ZTpuZXcgSShlKX19KSx4cD1ObihmdW5jdGlvbihuLHQpe3JldHVybiBnbih0LGZ1bmN0aW9uKGUpe2U9V24oZSksRG4obixlLGFpKG5bZV0sbikpfSksbn0pO2Z1bmN0aW9uIEFwKG4pe3ZhciB0PW49PW51bGw/MDpuLmxlbmd0aCxlPUEoKTtyZXR1cm4gbj10P0QobixmdW5jdGlvbihyKXtpZih0eXBlb2YgclsxXSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgcG4oeik7cmV0dXJuW2UoclswXSksclsxXV19KTpbXSxMKGZ1bmN0aW9uKHIpe2Zvcih2YXIgaT0tMTsrK2k8dDspe3ZhciBmPW5baV07aWYodW4oZlswXSx0aGlzLHIpKXJldHVybiB1bihmWzFdLHRoaXMscil9fSl9ZnVuY3Rpb24geXAobil7cmV0dXJuIFpzKGRuKG4sem4pKX1mdW5jdGlvbiB2aShuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbn19ZnVuY3Rpb24gbXAobix0KXtyZXR1cm4gbj09bnVsbHx8biE9PW4/dDpufXZhciBJcD1yZigpLFJwPXJmKCEwKTtmdW5jdGlvbiBybihuKXtyZXR1cm4gbn1mdW5jdGlvbiB3aShuKXtyZXR1cm4gQnUodHlwZW9mIG49PSJmdW5jdGlvbiI/bjpkbihuLHpuKSl9ZnVuY3Rpb24gU3Aobil7cmV0dXJuIE11KGRuKG4sem4pKX1mdW5jdGlvbiBFcChuLHQpe3JldHVybiBGdShuLGRuKHQsem4pKX12YXIgTHA9TChmdW5jdGlvbihuLHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gSnQoZSxuLHQpfX0pLFRwPUwoZnVuY3Rpb24obix0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEp0KG4sZSx0KX19KTtmdW5jdGlvbiB4aShuLHQsZSl7dmFyIHI9Wih0KSxpPUJlKHQscik7ZT09bnVsbCYmIShVKHQpJiYoaS5sZW5ndGh8fCFyLmxlbmd0aCkpJiYoZT10LHQ9bixuPXRoaXMsaT1CZSh0LFoodCkpKTt2YXIgZj0hKFUoZSkmJiJjaGFpbiJpbiBlKXx8ISFlLmNoYWluLG89SG4obik7cmV0dXJuIGduKGksZnVuY3Rpb24ocyl7dmFyIGM9dFtzXTtuW3NdPWMsbyYmKG4ucHJvdG90eXBlW3NdPWZ1bmN0aW9uKCl7dmFyIHA9dGhpcy5fX2NoYWluX187aWYoZnx8cCl7dmFyIF89bih0aGlzLl9fd3JhcHBlZF9fKSxkPV8uX19hY3Rpb25zX189bm4odGhpcy5fX2FjdGlvbnNfXyk7cmV0dXJuIGQucHVzaCh7ZnVuYzpjLGFyZ3M6YXJndW1lbnRzLHRoaXNBcmc6bn0pLF8uX19jaGFpbl9fPXAsX31yZXR1cm4gYy5hcHBseShuLFluKFt0aGlzLnZhbHVlKCldLGFyZ3VtZW50cykpfSl9KSxufWZ1bmN0aW9uIENwKCl7cmV0dXJuICQuXz09PXRoaXMmJigkLl89dHMpLHRoaXN9ZnVuY3Rpb24gQWkoKXt9ZnVuY3Rpb24gT3Aobil7cmV0dXJuIG49UyhuKSxMKGZ1bmN0aW9uKHQpe3JldHVybiBEdSh0LG4pfSl9dmFyIFdwPVZyKEQpLGJwPVZyKGl1KSxCcD1Wcihtcik7ZnVuY3Rpb24gZWwobil7cmV0dXJuIGlpKG4pP0lyKFduKG4pKTpzYShuKX1mdW5jdGlvbiBQcChuKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG49PW51bGw/bDpzdChuLHQpfX12YXIgTXA9ZmYoKSxGcD1mZighMCk7ZnVuY3Rpb24geWkoKXtyZXR1cm5bXX1mdW5jdGlvbiBtaSgpe3JldHVybiExfWZ1bmN0aW9uIERwKCl7cmV0dXJue319ZnVuY3Rpb24gVXAoKXtyZXR1cm4iIn1mdW5jdGlvbiBOcCgpe3JldHVybiEwfWZ1bmN0aW9uIEdwKG4sdCl7aWYobj1TKG4pLG48MXx8bj4kbilyZXR1cm5bXTt2YXIgZT1UbixyPVgobixUbik7dD1BKHQpLG4tPVRuO2Zvcih2YXIgaT1FcihyLHQpOysrZTxuOyl0KGUpO3JldHVybiBpfWZ1bmN0aW9uIEhwKG4pe3JldHVybiBSKG4pP0QobixXbik6b24obik/W25dOm5uKG1mKGIobikpKX1mdW5jdGlvbiBxcChuKXt2YXIgdD0rK2pvO3JldHVybiBiKG4pK3R9dmFyIEtwPU5lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4rdH0sMCksenA9a3IoImNlaWwiKSwkcD1OZShmdW5jdGlvbihuLHQpe3JldHVybiBuL3R9LDEpLFpwPWtyKCJmbG9vciIpO2Z1bmN0aW9uIFlwKG4pe3JldHVybiBuJiZuLmxlbmd0aD9iZShuLHJuLERyKTpsfWZ1bmN0aW9uIFhwKG4sdCl7cmV0dXJuIG4mJm4ubGVuZ3RoP2JlKG4sQSh0LDIpLERyKTpsfWZ1bmN0aW9uIEpwKG4pe3JldHVybiBsdShuLHJuKX1mdW5jdGlvbiBRcChuLHQpe3JldHVybiBsdShuLEEodCwyKSl9ZnVuY3Rpb24gVnAobil7cmV0dXJuIG4mJm4ubGVuZ3RoP2JlKG4scm4sSHIpOmx9ZnVuY3Rpb24ga3Aobix0KXtyZXR1cm4gbiYmbi5sZW5ndGg/YmUobixBKHQsMiksSHIpOmx9dmFyIGpwPU5lKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4qdH0sMSksbl89a3IoInJvdW5kIiksdF89TmUoZnVuY3Rpb24obix0KXtyZXR1cm4gbi10fSwwKTtmdW5jdGlvbiBlXyhuKXtyZXR1cm4gbiYmbi5sZW5ndGg/U3Iobixybik6MH1mdW5jdGlvbiByXyhuLHQpe3JldHVybiBuJiZuLmxlbmd0aD9TcihuLEEodCwyKSk6MH1yZXR1cm4gdS5hZnRlcj1TaCx1LmFyeT1CZix1LmFzc2lnbj1oZyx1LmFzc2lnbkluPVlmLHUuYXNzaWduSW5XaXRoPWtlLHUuYXNzaWduV2l0aD1nZyx1LmF0PXBnLHUuYmVmb3JlPVBmLHUuYmluZD1haSx1LmJpbmRBbGw9eHAsdS5iaW5kS2V5PU1mLHUuY2FzdEFycmF5PURoLHUuY2hhaW49T2YsdS5jaHVuaz1aYSx1LmNvbXBhY3Q9WWEsdS5jb25jYXQ9WGEsdS5jb25kPUFwLHUuY29uZm9ybXM9eXAsdS5jb25zdGFudD12aSx1LmNvdW50Qnk9ZWgsdS5jcmVhdGU9X2csdS5jdXJyeT1GZix1LmN1cnJ5UmlnaHQ9RGYsdS5kZWJvdW5jZT1VZix1LmRlZmF1bHRzPWRnLHUuZGVmYXVsdHNEZWVwPXZnLHUuZGVmZXI9RWgsdS5kZWxheT1MaCx1LmRpZmZlcmVuY2U9SmEsdS5kaWZmZXJlbmNlQnk9UWEsdS5kaWZmZXJlbmNlV2l0aD1WYSx1LmRyb3A9a2EsdS5kcm9wUmlnaHQ9amEsdS5kcm9wUmlnaHRXaGlsZT1uYyx1LmRyb3BXaGlsZT10Yyx1LmZpbGw9ZWMsdS5maWx0ZXI9aWgsdS5mbGF0TWFwPWxoLHUuZmxhdE1hcERlZXA9b2gsdS5mbGF0TWFwRGVwdGg9c2gsdS5mbGF0dGVuPUVmLHUuZmxhdHRlbkRlZXA9cmMsdS5mbGF0dGVuRGVwdGg9aWMsdS5mbGlwPVRoLHUuZmxvdz1JcCx1LmZsb3dSaWdodD1ScCx1LmZyb21QYWlycz11Yyx1LmZ1bmN0aW9ucz1SZyx1LmZ1bmN0aW9uc0luPVNnLHUuZ3JvdXBCeT1haCx1LmluaXRpYWw9bGMsdS5pbnRlcnNlY3Rpb249b2MsdS5pbnRlcnNlY3Rpb25CeT1zYyx1LmludGVyc2VjdGlvbldpdGg9YWMsdS5pbnZlcnQ9TGcsdS5pbnZlcnRCeT1UZyx1Lmludm9rZU1hcD1oaCx1Lml0ZXJhdGVlPXdpLHUua2V5Qnk9Z2gsdS5rZXlzPVosdS5rZXlzSW49ZW4sdS5tYXA9WmUsdS5tYXBLZXlzPU9nLHUubWFwVmFsdWVzPVdnLHUubWF0Y2hlcz1TcCx1Lm1hdGNoZXNQcm9wZXJ0eT1FcCx1Lm1lbW9pemU9WGUsdS5tZXJnZT1iZyx1Lm1lcmdlV2l0aD1YZix1Lm1ldGhvZD1McCx1Lm1ldGhvZE9mPVRwLHUubWl4aW49eGksdS5uZWdhdGU9SmUsdS5udGhBcmc9T3AsdS5vbWl0PUJnLHUub21pdEJ5PVBnLHUub25jZT1DaCx1Lm9yZGVyQnk9cGgsdS5vdmVyPVdwLHUub3ZlckFyZ3M9T2gsdS5vdmVyRXZlcnk9YnAsdS5vdmVyU29tZT1CcCx1LnBhcnRpYWw9Y2ksdS5wYXJ0aWFsUmlnaHQ9TmYsdS5wYXJ0aXRpb249X2gsdS5waWNrPU1nLHUucGlja0J5PUpmLHUucHJvcGVydHk9ZWwsdS5wcm9wZXJ0eU9mPVBwLHUucHVsbD1wYyx1LnB1bGxBbGw9VGYsdS5wdWxsQWxsQnk9X2MsdS5wdWxsQWxsV2l0aD1kYyx1LnB1bGxBdD12Yyx1LnJhbmdlPU1wLHUucmFuZ2VSaWdodD1GcCx1LnJlYXJnPVdoLHUucmVqZWN0PXdoLHUucmVtb3ZlPXdjLHUucmVzdD1iaCx1LnJldmVyc2U9b2ksdS5zYW1wbGVTaXplPUFoLHUuc2V0PURnLHUuc2V0V2l0aD1VZyx1LnNodWZmbGU9eWgsdS5zbGljZT14Yyx1LnNvcnRCeT1SaCx1LnNvcnRlZFVuaXE9RWMsdS5zb3J0ZWRVbmlxQnk9TGMsdS5zcGxpdD1scCx1LnNwcmVhZD1CaCx1LnRhaWw9VGMsdS50YWtlPUNjLHUudGFrZVJpZ2h0PU9jLHUudGFrZVJpZ2h0V2hpbGU9V2MsdS50YWtlV2hpbGU9YmMsdS50YXA9WWMsdS50aHJvdHRsZT1QaCx1LnRocnU9JGUsdS50b0FycmF5PXpmLHUudG9QYWlycz1RZix1LnRvUGFpcnNJbj1WZix1LnRvUGF0aD1IcCx1LnRvUGxhaW5PYmplY3Q9WmYsdS50cmFuc2Zvcm09TmcsdS51bmFyeT1NaCx1LnVuaW9uPUJjLHUudW5pb25CeT1QYyx1LnVuaW9uV2l0aD1NYyx1LnVuaXE9RmMsdS51bmlxQnk9RGMsdS51bmlxV2l0aD1VYyx1LnVuc2V0PUdnLHUudW56aXA9c2ksdS51bnppcFdpdGg9Q2YsdS51cGRhdGU9SGcsdS51cGRhdGVXaXRoPXFnLHUudmFsdWVzPVd0LHUudmFsdWVzSW49S2csdS53aXRob3V0PU5jLHUud29yZHM9bmwsdS53cmFwPUZoLHUueG9yPUdjLHUueG9yQnk9SGMsdS54b3JXaXRoPXFjLHUuemlwPUtjLHUuemlwT2JqZWN0PXpjLHUuemlwT2JqZWN0RGVlcD0kYyx1LnppcFdpdGg9WmMsdS5lbnRyaWVzPVFmLHUuZW50cmllc0luPVZmLHUuZXh0ZW5kPVlmLHUuZXh0ZW5kV2l0aD1rZSx4aSh1LHUpLHUuYWRkPUtwLHUuYXR0ZW1wdD10bCx1LmNhbWVsQ2FzZT1ZZyx1LmNhcGl0YWxpemU9a2YsdS5jZWlsPXpwLHUuY2xhbXA9emcsdS5jbG9uZT1VaCx1LmNsb25lRGVlcD1HaCx1LmNsb25lRGVlcFdpdGg9SGgsdS5jbG9uZVdpdGg9TmgsdS5jb25mb3Jtc1RvPXFoLHUuZGVidXJyPWpmLHUuZGVmYXVsdFRvPW1wLHUuZGl2aWRlPSRwLHUuZW5kc1dpdGg9WGcsdS5lcT1Sbix1LmVzY2FwZT1KZyx1LmVzY2FwZVJlZ0V4cD1RZyx1LmV2ZXJ5PXJoLHUuZmluZD11aCx1LmZpbmRJbmRleD1SZix1LmZpbmRLZXk9d2csdS5maW5kTGFzdD1maCx1LmZpbmRMYXN0SW5kZXg9U2YsdS5maW5kTGFzdEtleT14Zyx1LmZsb29yPVpwLHUuZm9yRWFjaD1XZix1LmZvckVhY2hSaWdodD1iZix1LmZvckluPUFnLHUuZm9ySW5SaWdodD15Zyx1LmZvck93bj1tZyx1LmZvck93blJpZ2h0PUlnLHUuZ2V0PXBpLHUuZ3Q9S2gsdS5ndGU9emgsdS5oYXM9RWcsdS5oYXNJbj1faSx1LmhlYWQ9TGYsdS5pZGVudGl0eT1ybix1LmluY2x1ZGVzPWNoLHUuaW5kZXhPZj1mYyx1LmluUmFuZ2U9JGcsdS5pbnZva2U9Q2csdS5pc0FyZ3VtZW50cz1odCx1LmlzQXJyYXk9Uix1LmlzQXJyYXlCdWZmZXI9JGgsdS5pc0FycmF5TGlrZT10bix1LmlzQXJyYXlMaWtlT2JqZWN0PUcsdS5pc0Jvb2xlYW49WmgsdS5pc0J1ZmZlcj10dCx1LmlzRGF0ZT1ZaCx1LmlzRWxlbWVudD1YaCx1LmlzRW1wdHk9SmgsdS5pc0VxdWFsPVFoLHUuaXNFcXVhbFdpdGg9VmgsdS5pc0Vycm9yPWhpLHUuaXNGaW5pdGU9a2gsdS5pc0Z1bmN0aW9uPUhuLHUuaXNJbnRlZ2VyPUdmLHUuaXNMZW5ndGg9UWUsdS5pc01hcD1IZix1LmlzTWF0Y2g9amgsdS5pc01hdGNoV2l0aD1uZyx1LmlzTmFOPXRnLHUuaXNOYXRpdmU9ZWcsdS5pc05pbD1pZyx1LmlzTnVsbD1yZyx1LmlzTnVtYmVyPXFmLHUuaXNPYmplY3Q9VSx1LmlzT2JqZWN0TGlrZT1OLHUuaXNQbGFpbk9iamVjdD10ZSx1LmlzUmVnRXhwPWdpLHUuaXNTYWZlSW50ZWdlcj11Zyx1LmlzU2V0PUtmLHUuaXNTdHJpbmc9VmUsdS5pc1N5bWJvbD1vbix1LmlzVHlwZWRBcnJheT1PdCx1LmlzVW5kZWZpbmVkPWZnLHUuaXNXZWFrTWFwPWxnLHUuaXNXZWFrU2V0PW9nLHUuam9pbj1jYyx1LmtlYmFiQ2FzZT1WZyx1Lmxhc3Q9d24sdS5sYXN0SW5kZXhPZj1oYyx1Lmxvd2VyQ2FzZT1rZyx1Lmxvd2VyRmlyc3Q9amcsdS5sdD1zZyx1Lmx0ZT1hZyx1Lm1heD1ZcCx1Lm1heEJ5PVhwLHUubWVhbj1KcCx1Lm1lYW5CeT1RcCx1Lm1pbj1WcCx1Lm1pbkJ5PWtwLHUuc3R1YkFycmF5PXlpLHUuc3R1YkZhbHNlPW1pLHUuc3R1Yk9iamVjdD1EcCx1LnN0dWJTdHJpbmc9VXAsdS5zdHViVHJ1ZT1OcCx1Lm11bHRpcGx5PWpwLHUubnRoPWdjLHUubm9Db25mbGljdD1DcCx1Lm5vb3A9QWksdS5ub3c9WWUsdS5wYWQ9bnAsdS5wYWRFbmQ9dHAsdS5wYWRTdGFydD1lcCx1LnBhcnNlSW50PXJwLHUucmFuZG9tPVpnLHUucmVkdWNlPWRoLHUucmVkdWNlUmlnaHQ9dmgsdS5yZXBlYXQ9aXAsdS5yZXBsYWNlPXVwLHUucmVzdWx0PUZnLHUucm91bmQ9bl8sdS5ydW5JbkNvbnRleHQ9YSx1LnNhbXBsZT14aCx1LnNpemU9bWgsdS5zbmFrZUNhc2U9ZnAsdS5zb21lPUloLHUuc29ydGVkSW5kZXg9QWMsdS5zb3J0ZWRJbmRleEJ5PXljLHUuc29ydGVkSW5kZXhPZj1tYyx1LnNvcnRlZExhc3RJbmRleD1JYyx1LnNvcnRlZExhc3RJbmRleEJ5PVJjLHUuc29ydGVkTGFzdEluZGV4T2Y9U2MsdS5zdGFydENhc2U9b3AsdS5zdGFydHNXaXRoPXNwLHUuc3VidHJhY3Q9dF8sdS5zdW09ZV8sdS5zdW1CeT1yXyx1LnRlbXBsYXRlPWFwLHUudGltZXM9R3AsdS50b0Zpbml0ZT1xbix1LnRvSW50ZWdlcj1TLHUudG9MZW5ndGg9JGYsdS50b0xvd2VyPWNwLHUudG9OdW1iZXI9eG4sdS50b1NhZmVJbnRlZ2VyPWNnLHUudG9TdHJpbmc9Yix1LnRvVXBwZXI9aHAsdS50cmltPWdwLHUudHJpbUVuZD1wcCx1LnRyaW1TdGFydD1fcCx1LnRydW5jYXRlPWRwLHUudW5lc2NhcGU9dnAsdS51bmlxdWVJZD1xcCx1LnVwcGVyQ2FzZT13cCx1LnVwcGVyRmlyc3Q9ZGksdS5lYWNoPVdmLHUuZWFjaFJpZ2h0PWJmLHUuZmlyc3Q9TGYseGkodSwoZnVuY3Rpb24oKXt2YXIgbj17fTtyZXR1cm4gQ24odSxmdW5jdGlvbih0LGUpe0IuY2FsbCh1LnByb3RvdHlwZSxlKXx8KG5bZV09dCl9KSxufSkoKSx7Y2hhaW46ITF9KSx1LlZFUlNJT049USxnbihbImJpbmQiLCJiaW5kS2V5IiwiY3VycnkiLCJjdXJyeVJpZ2h0IiwicGFydGlhbCIsInBhcnRpYWxSaWdodCJdLGZ1bmN0aW9uKG4pe3Vbbl0ucGxhY2Vob2xkZXI9dX0pLGduKFsiZHJvcCIsInRha2UiXSxmdW5jdGlvbihuLHQpe0MucHJvdG90eXBlW25dPWZ1bmN0aW9uKGUpe2U9ZT09PWw/MTpLKFMoZSksMCk7dmFyIHI9dGhpcy5fX2ZpbHRlcmVkX18mJiF0P25ldyBDKHRoaXMpOnRoaXMuY2xvbmUoKTtyZXR1cm4gci5fX2ZpbHRlcmVkX18/ci5fX3Rha2VDb3VudF9fPVgoZSxyLl9fdGFrZUNvdW50X18pOnIuX192aWV3c19fLnB1c2goe3NpemU6WChlLFRuKSx0eXBlOm4rKHIuX19kaXJfXzwwPyJSaWdodCI6IiIpfSkscn0sQy5wcm90b3R5cGVbbisiUmlnaHQiXT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5yZXZlcnNlKClbbl0oZSkucmV2ZXJzZSgpfX0pLGduKFsiZmlsdGVyIiwibWFwIiwidGFrZVdoaWxlIl0sZnVuY3Rpb24obix0KXt2YXIgZT10KzEscj1lPT1TaXx8ZT09Z2w7Qy5wcm90b3R5cGVbbl09ZnVuY3Rpb24oaSl7dmFyIGY9dGhpcy5jbG9uZSgpO3JldHVybiBmLl9faXRlcmF0ZWVzX18ucHVzaCh7aXRlcmF0ZWU6QShpLDMpLHR5cGU6ZX0pLGYuX19maWx0ZXJlZF9fPWYuX19maWx0ZXJlZF9ffHxyLGZ9fSksZ24oWyJoZWFkIiwibGFzdCJdLGZ1bmN0aW9uKG4sdCl7dmFyIGU9InRha2UiKyh0PyJSaWdodCI6IiIpO0MucHJvdG90eXBlW25dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbZV0oMSkudmFsdWUoKVswXX19KSxnbihbImluaXRpYWwiLCJ0YWlsIl0sZnVuY3Rpb24obix0KXt2YXIgZT0iZHJvcCIrKHQ/IiI6IlJpZ2h0Iik7Qy5wcm90b3R5cGVbbl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2ZpbHRlcmVkX18/bmV3IEModGhpcyk6dGhpc1tlXSgxKX19KSxDLnByb3RvdHlwZS5jb21wYWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsdGVyKHJuKX0sQy5wcm90b3R5cGUuZmluZD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5maWx0ZXIobikuaGVhZCgpfSxDLnByb3RvdHlwZS5maW5kTGFzdD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5yZXZlcnNlKCkuZmluZChuKX0sQy5wcm90b3R5cGUuaW52b2tlTWFwPUwoZnVuY3Rpb24obix0KXtyZXR1cm4gdHlwZW9mIG49PSJmdW5jdGlvbiI/bmV3IEModGhpcyk6dGhpcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIEp0KGUsbix0KX0pfSksQy5wcm90b3R5cGUucmVqZWN0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmZpbHRlcihKZShBKG4pKSl9LEMucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKG4sdCl7bj1TKG4pO3ZhciBlPXRoaXM7cmV0dXJuIGUuX19maWx0ZXJlZF9fJiYobj4wfHx0PDApP25ldyBDKGUpOihuPDA/ZT1lLnRha2VSaWdodCgtbik6biYmKGU9ZS5kcm9wKG4pKSx0IT09bCYmKHQ9Uyh0KSxlPXQ8MD9lLmRyb3BSaWdodCgtdCk6ZS50YWtlKHQtbikpLGUpfSxDLnByb3RvdHlwZS50YWtlUmlnaHRXaGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5yZXZlcnNlKCkudGFrZVdoaWxlKG4pLnJldmVyc2UoKX0sQy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRha2UoVG4pfSxDbihDLnByb3RvdHlwZSxmdW5jdGlvbihuLHQpe3ZhciBlPS9eKD86ZmlsdGVyfGZpbmR8bWFwfHJlamVjdCl8V2hpbGUkLy50ZXN0KHQpLHI9L14oPzpoZWFkfGxhc3QpJC8udGVzdCh0KSxpPXVbcj8idGFrZSIrKHQ9PSJsYXN0Ij8iUmlnaHQiOiIiKTp0XSxmPXJ8fC9eZmluZC8udGVzdCh0KTtpJiYodS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXt2YXIgbz10aGlzLl9fd3JhcHBlZF9fLHM9cj9bMV06YXJndW1lbnRzLGM9byBpbnN0YW5jZW9mIEMscD1zWzBdLF89Y3x8UihvKSxkPWZ1bmN0aW9uKFQpe3ZhciBPPWkuYXBwbHkodSxZbihbVF0scykpO3JldHVybiByJiZ2P09bMF06T307XyYmZSYmdHlwZW9mIHA9PSJmdW5jdGlvbiImJnAubGVuZ3RoIT0xJiYoYz1fPSExKTt2YXIgdj10aGlzLl9fY2hhaW5fXyx4PSEhdGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgseT1mJiYhdixFPWMmJiF4O2lmKCFmJiZfKXtvPUU/bzpuZXcgQyh0aGlzKTt2YXIgbT1uLmFwcGx5KG8scyk7cmV0dXJuIG0uX19hY3Rpb25zX18ucHVzaCh7ZnVuYzokZSxhcmdzOltkXSx0aGlzQXJnOmx9KSxuZXcgX24obSx2KX1yZXR1cm4geSYmRT9uLmFwcGx5KHRoaXMscyk6KG09dGhpcy50aHJ1KGQpLHk/cj9tLnZhbHVlKClbMF06bS52YWx1ZSgpOm0pfSl9KSxnbihbInBvcCIsInB1c2giLCJzaGlmdCIsInNvcnQiLCJzcGxpY2UiLCJ1bnNoaWZ0Il0sZnVuY3Rpb24obil7dmFyIHQ9dmVbbl0sZT0vXig/OnB1c2h8c29ydHx1bnNoaWZ0KSQvLnRlc3Qobik/InRhcCI6InRocnUiLHI9L14oPzpwb3B8c2hpZnQpJC8udGVzdChuKTt1LnByb3RvdHlwZVtuXT1mdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztpZihyJiYhdGhpcy5fX2NoYWluX18pe3ZhciBmPXRoaXMudmFsdWUoKTtyZXR1cm4gdC5hcHBseShSKGYpP2Y6W10saSl9cmV0dXJuIHRoaXNbZV0oZnVuY3Rpb24obyl7cmV0dXJuIHQuYXBwbHkoUihvKT9vOltdLGkpfSl9fSksQ24oQy5wcm90b3R5cGUsZnVuY3Rpb24obix0KXt2YXIgZT11W3RdO2lmKGUpe3ZhciByPWUubmFtZSsiIjtCLmNhbGwoU3Qscil8fChTdFtyXT1bXSksU3Rbcl0ucHVzaCh7bmFtZTp0LGZ1bmM6ZX0pfX0pLFN0W1VlKGwsZXQpLm5hbWVdPVt7bmFtZToid3JhcHBlciIsZnVuYzpsfV0sQy5wcm90b3R5cGUuY2xvbmU9dnMsQy5wcm90b3R5cGUucmV2ZXJzZT13cyxDLnByb3RvdHlwZS52YWx1ZT14cyx1LnByb3RvdHlwZS5hdD1YYyx1LnByb3RvdHlwZS5jaGFpbj1KYyx1LnByb3RvdHlwZS5jb21taXQ9UWMsdS5wcm90b3R5cGUubmV4dD1WYyx1LnByb3RvdHlwZS5wbGFudD1qYyx1LnByb3RvdHlwZS5yZXZlcnNlPW5oLHUucHJvdG90eXBlLnRvSlNPTj11LnByb3RvdHlwZS52YWx1ZU9mPXUucHJvdG90eXBlLnZhbHVlPXRoLHUucHJvdG90eXBlLmZpcnN0PXUucHJvdG90eXBlLmhlYWQscXQmJih1LnByb3RvdHlwZVtxdF09a2MpLHV9KSxKbj1RbygpO3R5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJnR5cGVvZiBkZWZpbmUuYW1kPT0ib2JqZWN0IiYmZGVmaW5lLmFtZD8oJC5fPUpuLGRlZmluZShmdW5jdGlvbigpe3JldHVybiBKbn0pKTppdD8oKGl0LmV4cG9ydHM9Sm4pLl89Sm4sd3IuXz1Kbik6JC5fPUpufSkuY2FsbChidCl9KTt2YXIgamU9Y18odWwoKSkse3RlbXBsYXRlU2V0dGluZ3M6Z18sYWZ0ZXI6cF8sYXJ5Ol9fLGFzc2lnbjpkXyxhc3NpZ25Jbjp2Xyxhc3NpZ25JbldpdGg6d18sYXNzaWduV2l0aDp4XyxhdDpBXyxiZWZvcmU6eV8sYmluZDptXyxiaW5kQWxsOklfLGJpbmRLZXk6Ul8sY2FzdEFycmF5OlNfLGNoYWluOkVfLGNodW5rOkxfLGNvbXBhY3Q6VF8sY29uY2F0OkNfLGNvbmQ6T18sY29uZm9ybXM6V18sY29uc3RhbnQ6Yl8sY291bnRCeTpCXyxjcmVhdGU6UF8sY3Vycnk6TV8sY3VycnlSaWdodDpGXyxkZWJvdW5jZTpEXyxkZWZhdWx0czpVXyxkZWZhdWx0c0RlZXA6Tl8sZGVmZXI6R18sZGVsYXk6SF8sZGlmZmVyZW5jZTpxXyxkaWZmZXJlbmNlQnk6S18sZGlmZmVyZW5jZVdpdGg6el8sZHJvcDokXyxkcm9wUmlnaHQ6Wl8sZHJvcFJpZ2h0V2hpbGU6WV8sZHJvcFdoaWxlOlhfLGZpbGw6Sl8sZmlsdGVyOlFfLGZsYXRNYXA6Vl8sZmxhdE1hcERlZXA6a18sZmxhdE1hcERlcHRoOmpfLGZsYXR0ZW46bjAsZmxhdHRlbkRlZXA6dDAsZmxhdHRlbkRlcHRoOmUwLGZsaXA6cjAsZmxvdzppMCxmbG93UmlnaHQ6dTAsZnJvbVBhaXJzOmYwLGZ1bmN0aW9uczpsMCxmdW5jdGlvbnNJbjpvMCxncm91cEJ5OnMwLGluaXRpYWw6YTAsaW50ZXJzZWN0aW9uOmMwLGludGVyc2VjdGlvbkJ5OmgwLGludGVyc2VjdGlvbldpdGg6ZzAsaW52ZXJ0OnAwLGludmVydEJ5Ol8wLGludm9rZU1hcDpkMCxpdGVyYXRlZTp2MCxrZXlCeTp3MCxrZXlzOngwLGtleXNJbjpBMCxtYXA6eTAsbWFwS2V5czptMCxtYXBWYWx1ZXM6STAsbWF0Y2hlczpSMCxtYXRjaGVzUHJvcGVydHk6UzAsbWVtb2l6ZTpFMCxtZXJnZTpMMCxtZXJnZVdpdGg6VDAsbWV0aG9kOkMwLG1ldGhvZE9mOk8wLG1peGluOlcwLG5lZ2F0ZTpiMCxudGhBcmc6QjAsb21pdDpQMCxvbWl0Qnk6TTAsb25jZTpGMCxvcmRlckJ5OkQwLG92ZXI6VTAsb3ZlckFyZ3M6TjAsb3ZlckV2ZXJ5OkcwLG92ZXJTb21lOkgwLHBhcnRpYWw6cTAscGFydGlhbFJpZ2h0OkswLHBhcnRpdGlvbjp6MCxwaWNrOiQwLHBpY2tCeTpaMCxwcm9wZXJ0eTpZMCxwcm9wZXJ0eU9mOlgwLHB1bGw6SjAscHVsbEFsbDpRMCxwdWxsQWxsQnk6VjAscHVsbEFsbFdpdGg6azAscHVsbEF0OmowLHJhbmdlOm5kLHJhbmdlUmlnaHQ6dGQscmVhcmc6ZWQscmVqZWN0OnJkLHJlbW92ZTppZCxyZXN0OnVkLHJldmVyc2U6ZmQsc2FtcGxlU2l6ZTpsZCxzZXQ6b2Qsc2V0V2l0aDpzZCxzaHVmZmxlOmFkLHNsaWNlOmNkLHNvcnRCeTpoZCxzb3J0ZWRVbmlxOmdkLHNvcnRlZFVuaXFCeTpwZCxzcGxpdDpfZCxzcHJlYWQ6ZGQsdGFpbDp2ZCx0YWtlOndkLHRha2VSaWdodDp4ZCx0YWtlUmlnaHRXaGlsZTpBZCx0YWtlV2hpbGU6eWQsdGFwOm1kLHRocm90dGxlOklkLHRocnU6UmQsdG9BcnJheTpTZCx0b1BhaXJzOkVkLHRvUGFpcnNJbjpMZCx0b1BhdGg6VGQsdG9QbGFpbk9iamVjdDpDZCx0cmFuc2Zvcm06T2QsdW5hcnk6V2QsdW5pb246YmQsdW5pb25CeTpCZCx1bmlvbldpdGg6UGQsdW5pcTpNZCx1bmlxQnk6RmQsdW5pcVdpdGg6RGQsdW5zZXQ6VWQsdW56aXA6TmQsdW56aXBXaXRoOkdkLHVwZGF0ZTpIZCx1cGRhdGVXaXRoOnFkLHZhbHVlczpLZCx2YWx1ZXNJbjp6ZCx3aXRob3V0OiRkLHdvcmRzOlpkLHdyYXA6WWQseG9yOlhkLHhvckJ5OkpkLHhvcldpdGg6UWQsemlwOlZkLHppcE9iamVjdDprZCx6aXBPYmplY3REZWVwOmpkLHppcFdpdGg6bnYsZW50cmllczp0dixlbnRyaWVzSW46ZXYsZXh0ZW5kOnJ2LGV4dGVuZFdpdGg6aXYsYWRkOnV2LGF0dGVtcHQ6ZnYsY2FtZWxDYXNlOmx2LGNhcGl0YWxpemU6b3YsY2VpbDpzdixjbGFtcDphdixjbG9uZTpjdixjbG9uZURlZXA6aHYsY2xvbmVEZWVwV2l0aDpndixjbG9uZVdpdGg6cHYsY29uZm9ybXNUbzpfdixkZWJ1cnI6ZHYsZGVmYXVsdFRvOnZ2LGRpdmlkZTp3dixlbmRzV2l0aDp4dixlcTpBdixlc2NhcGU6eXYsZXNjYXBlUmVnRXhwOm12LGV2ZXJ5Okl2LGZpbmQ6UnYsZmluZEluZGV4OlN2LGZpbmRLZXk6RXYsZmluZExhc3Q6THYsZmluZExhc3RJbmRleDpUdixmaW5kTGFzdEtleTpDdixmbG9vcjpPdixmb3JFYWNoOld2LGZvckVhY2hSaWdodDpidixmb3JJbjpCdixmb3JJblJpZ2h0OlB2LGZvck93bjpNdixmb3JPd25SaWdodDpGdixnZXQ6RHYsZ3Q6VXYsZ3RlOk52LGhhczpHdixoYXNJbjpIdixoZWFkOnF2LGlkZW50aXR5Okt2LGluY2x1ZGVzOnp2LGluZGV4T2Y6JHYsaW5SYW5nZTpadixpbnZva2U6WXYsaXNBcmd1bWVudHM6WHYsaXNBcnJheTpKdixpc0FycmF5QnVmZmVyOlF2LGlzQXJyYXlMaWtlOlZ2LGlzQXJyYXlMaWtlT2JqZWN0Omt2LGlzQm9vbGVhbjpqdixpc0J1ZmZlcjpuMSxpc0RhdGU6dDEsaXNFbGVtZW50OmUxLGlzRW1wdHk6cjEsaXNFcXVhbDppMSxpc0VxdWFsV2l0aDp1MSxpc0Vycm9yOmYxLGlzRmluaXRlOmwxLGlzRnVuY3Rpb246bzEsaXNJbnRlZ2VyOnMxLGlzTGVuZ3RoOmExLGlzTWFwOmMxLGlzTWF0Y2g6aDEsaXNNYXRjaFdpdGg6ZzEsaXNOYU46cDEsaXNOYXRpdmU6XzEsaXNOaWw6ZDEsaXNOdWxsOnYxLGlzTnVtYmVyOncxLGlzT2JqZWN0OngxLGlzT2JqZWN0TGlrZTpBMSxpc1BsYWluT2JqZWN0OnkxLGlzUmVnRXhwOm0xLGlzU2FmZUludGVnZXI6STEsaXNTZXQ6UjEsaXNTdHJpbmc6UzEsaXNTeW1ib2w6RTEsaXNUeXBlZEFycmF5OkwxLGlzVW5kZWZpbmVkOlQxLGlzV2Vha01hcDpDMSxpc1dlYWtTZXQ6TzEsam9pbjpXMSxrZWJhYkNhc2U6YjEsbGFzdDpCMSxsYXN0SW5kZXhPZjpQMSxsb3dlckNhc2U6TTEsbG93ZXJGaXJzdDpGMSxsdDpEMSxsdGU6VTEsbWF4Ok4xLG1heEJ5OkcxLG1lYW46SDEsbWVhbkJ5OnExLG1pbjpLMSxtaW5CeTp6MSxzdHViQXJyYXk6JDEsc3R1YkZhbHNlOloxLHN0dWJPYmplY3Q6WTEsc3R1YlN0cmluZzpYMSxzdHViVHJ1ZTpKMSxtdWx0aXBseTpRMSxudGg6VjEsbm9Db25mbGljdDprMSxub29wOmoxLG5vdzpudyxwYWQ6dHcscGFkRW5kOmV3LHBhZFN0YXJ0OnJ3LHBhcnNlSW50Oml3LHJhbmRvbTp1dyxyZWR1Y2U6ZncscmVkdWNlUmlnaHQ6bHcscmVwZWF0Om93LHJlcGxhY2U6c3cscmVzdWx0OmF3LHJvdW5kOmN3LHJ1bkluQ29udGV4dDpodyxzYW1wbGU6Z3csc2l6ZTpwdyxzbmFrZUNhc2U6X3csc29tZTpkdyxzb3J0ZWRJbmRleDp2dyxzb3J0ZWRJbmRleEJ5Ond3LHNvcnRlZEluZGV4T2Y6eHcsc29ydGVkTGFzdEluZGV4OkF3LHNvcnRlZExhc3RJbmRleEJ5Onl3LHNvcnRlZExhc3RJbmRleE9mOm13LHN0YXJ0Q2FzZTpJdyxzdGFydHNXaXRoOlJ3LHN1YnRyYWN0OlN3LHN1bTpFdyxzdW1CeTpMdyx0ZW1wbGF0ZTpUdyx0aW1lczpDdyx0b0Zpbml0ZTpPdyx0b0ludGVnZXI6V3csdG9MZW5ndGg6YncsdG9Mb3dlcjpCdyx0b051bWJlcjpQdyx0b1NhZmVJbnRlZ2VyOk13LHRvU3RyaW5nOkZ3LHRvVXBwZXI6RHcsdHJpbTpVdyx0cmltRW5kOk53LHRyaW1TdGFydDpHdyx0cnVuY2F0ZTpIdyx1bmVzY2FwZTpxdyx1bmlxdWVJZDpLdyx1cHBlckNhc2U6encsdXBwZXJGaXJzdDokdyxlYWNoOlp3LGVhY2hSaWdodDpZdyxmaXJzdDpYdyxWRVJTSU9OOkp3LF86UXd9PWplLFZ3PWplLmRlZmF1bHQ/P2plO2V4cG9ydHtKdyBhcyBWRVJTSU9OLFF3IGFzIF8sdXYgYXMgYWRkLHBfIGFzIGFmdGVyLF9fIGFzIGFyeSxkXyBhcyBhc3NpZ24sdl8gYXMgYXNzaWduSW4sd18gYXMgYXNzaWduSW5XaXRoLHhfIGFzIGFzc2lnbldpdGgsQV8gYXMgYXQsZnYgYXMgYXR0ZW1wdCx5XyBhcyBiZWZvcmUsbV8gYXMgYmluZCxJXyBhcyBiaW5kQWxsLFJfIGFzIGJpbmRLZXksbHYgYXMgY2FtZWxDYXNlLG92IGFzIGNhcGl0YWxpemUsU18gYXMgY2FzdEFycmF5LHN2IGFzIGNlaWwsRV8gYXMgY2hhaW4sTF8gYXMgY2h1bmssYXYgYXMgY2xhbXAsY3YgYXMgY2xvbmUsaHYgYXMgY2xvbmVEZWVwLGd2IGFzIGNsb25lRGVlcFdpdGgscHYgYXMgY2xvbmVXaXRoLFRfIGFzIGNvbXBhY3QsQ18gYXMgY29uY2F0LE9fIGFzIGNvbmQsV18gYXMgY29uZm9ybXMsX3YgYXMgY29uZm9ybXNUbyxiXyBhcyBjb25zdGFudCxCXyBhcyBjb3VudEJ5LFBfIGFzIGNyZWF0ZSxNXyBhcyBjdXJyeSxGXyBhcyBjdXJyeVJpZ2h0LERfIGFzIGRlYm91bmNlLGR2IGFzIGRlYnVycixWdyBhcyBkZWZhdWx0LHZ2IGFzIGRlZmF1bHRUbyxVXyBhcyBkZWZhdWx0cyxOXyBhcyBkZWZhdWx0c0RlZXAsR18gYXMgZGVmZXIsSF8gYXMgZGVsYXkscV8gYXMgZGlmZmVyZW5jZSxLXyBhcyBkaWZmZXJlbmNlQnksel8gYXMgZGlmZmVyZW5jZVdpdGgsd3YgYXMgZGl2aWRlLCRfIGFzIGRyb3AsWl8gYXMgZHJvcFJpZ2h0LFlfIGFzIGRyb3BSaWdodFdoaWxlLFhfIGFzIGRyb3BXaGlsZSxadyBhcyBlYWNoLFl3IGFzIGVhY2hSaWdodCx4diBhcyBlbmRzV2l0aCx0diBhcyBlbnRyaWVzLGV2IGFzIGVudHJpZXNJbixBdiBhcyBlcSx5diBhcyBlc2NhcGUsbXYgYXMgZXNjYXBlUmVnRXhwLEl2IGFzIGV2ZXJ5LHJ2IGFzIGV4dGVuZCxpdiBhcyBleHRlbmRXaXRoLEpfIGFzIGZpbGwsUV8gYXMgZmlsdGVyLFJ2IGFzIGZpbmQsU3YgYXMgZmluZEluZGV4LEV2IGFzIGZpbmRLZXksTHYgYXMgZmluZExhc3QsVHYgYXMgZmluZExhc3RJbmRleCxDdiBhcyBmaW5kTGFzdEtleSxYdyBhcyBmaXJzdCxWXyBhcyBmbGF0TWFwLGtfIGFzIGZsYXRNYXBEZWVwLGpfIGFzIGZsYXRNYXBEZXB0aCxuMCBhcyBmbGF0dGVuLHQwIGFzIGZsYXR0ZW5EZWVwLGUwIGFzIGZsYXR0ZW5EZXB0aCxyMCBhcyBmbGlwLE92IGFzIGZsb29yLGkwIGFzIGZsb3csdTAgYXMgZmxvd1JpZ2h0LFd2IGFzIGZvckVhY2gsYnYgYXMgZm9yRWFjaFJpZ2h0LEJ2IGFzIGZvckluLFB2IGFzIGZvckluUmlnaHQsTXYgYXMgZm9yT3duLEZ2IGFzIGZvck93blJpZ2h0LGYwIGFzIGZyb21QYWlycyxsMCBhcyBmdW5jdGlvbnMsbzAgYXMgZnVuY3Rpb25zSW4sRHYgYXMgZ2V0LHMwIGFzIGdyb3VwQnksVXYgYXMgZ3QsTnYgYXMgZ3RlLEd2IGFzIGhhcyxIdiBhcyBoYXNJbixxdiBhcyBoZWFkLEt2IGFzIGlkZW50aXR5LFp2IGFzIGluUmFuZ2UsenYgYXMgaW5jbHVkZXMsJHYgYXMgaW5kZXhPZixhMCBhcyBpbml0aWFsLGMwIGFzIGludGVyc2VjdGlvbixoMCBhcyBpbnRlcnNlY3Rpb25CeSxnMCBhcyBpbnRlcnNlY3Rpb25XaXRoLHAwIGFzIGludmVydCxfMCBhcyBpbnZlcnRCeSxZdiBhcyBpbnZva2UsZDAgYXMgaW52b2tlTWFwLFh2IGFzIGlzQXJndW1lbnRzLEp2IGFzIGlzQXJyYXksUXYgYXMgaXNBcnJheUJ1ZmZlcixWdiBhcyBpc0FycmF5TGlrZSxrdiBhcyBpc0FycmF5TGlrZU9iamVjdCxqdiBhcyBpc0Jvb2xlYW4sbjEgYXMgaXNCdWZmZXIsdDEgYXMgaXNEYXRlLGUxIGFzIGlzRWxlbWVudCxyMSBhcyBpc0VtcHR5LGkxIGFzIGlzRXF1YWwsdTEgYXMgaXNFcXVhbFdpdGgsZjEgYXMgaXNFcnJvcixsMSBhcyBpc0Zpbml0ZSxvMSBhcyBpc0Z1bmN0aW9uLHMxIGFzIGlzSW50ZWdlcixhMSBhcyBpc0xlbmd0aCxjMSBhcyBpc01hcCxoMSBhcyBpc01hdGNoLGcxIGFzIGlzTWF0Y2hXaXRoLHAxIGFzIGlzTmFOLF8xIGFzIGlzTmF0aXZlLGQxIGFzIGlzTmlsLHYxIGFzIGlzTnVsbCx3MSBhcyBpc051bWJlcix4MSBhcyBpc09iamVjdCxBMSBhcyBpc09iamVjdExpa2UseTEgYXMgaXNQbGFpbk9iamVjdCxtMSBhcyBpc1JlZ0V4cCxJMSBhcyBpc1NhZmVJbnRlZ2VyLFIxIGFzIGlzU2V0LFMxIGFzIGlzU3RyaW5nLEUxIGFzIGlzU3ltYm9sLEwxIGFzIGlzVHlwZWRBcnJheSxUMSBhcyBpc1VuZGVmaW5lZCxDMSBhcyBpc1dlYWtNYXAsTzEgYXMgaXNXZWFrU2V0LHYwIGFzIGl0ZXJhdGVlLFcxIGFzIGpvaW4sYjEgYXMga2ViYWJDYXNlLHcwIGFzIGtleUJ5LHgwIGFzIGtleXMsQTAgYXMga2V5c0luLEIxIGFzIGxhc3QsUDEgYXMgbGFzdEluZGV4T2YsTTEgYXMgbG93ZXJDYXNlLEYxIGFzIGxvd2VyRmlyc3QsRDEgYXMgbHQsVTEgYXMgbHRlLHkwIGFzIG1hcCxtMCBhcyBtYXBLZXlzLEkwIGFzIG1hcFZhbHVlcyxSMCBhcyBtYXRjaGVzLFMwIGFzIG1hdGNoZXNQcm9wZXJ0eSxOMSBhcyBtYXgsRzEgYXMgbWF4QnksSDEgYXMgbWVhbixxMSBhcyBtZWFuQnksRTAgYXMgbWVtb2l6ZSxMMCBhcyBtZXJnZSxUMCBhcyBtZXJnZVdpdGgsQzAgYXMgbWV0aG9kLE8wIGFzIG1ldGhvZE9mLEsxIGFzIG1pbix6MSBhcyBtaW5CeSxXMCBhcyBtaXhpbixRMSBhcyBtdWx0aXBseSxiMCBhcyBuZWdhdGUsazEgYXMgbm9Db25mbGljdCxqMSBhcyBub29wLG53IGFzIG5vdyxWMSBhcyBudGgsQjAgYXMgbnRoQXJnLFAwIGFzIG9taXQsTTAgYXMgb21pdEJ5LEYwIGFzIG9uY2UsRDAgYXMgb3JkZXJCeSxVMCBhcyBvdmVyLE4wIGFzIG92ZXJBcmdzLEcwIGFzIG92ZXJFdmVyeSxIMCBhcyBvdmVyU29tZSx0dyBhcyBwYWQsZXcgYXMgcGFkRW5kLHJ3IGFzIHBhZFN0YXJ0LGl3IGFzIHBhcnNlSW50LHEwIGFzIHBhcnRpYWwsSzAgYXMgcGFydGlhbFJpZ2h0LHowIGFzIHBhcnRpdGlvbiwkMCBhcyBwaWNrLFowIGFzIHBpY2tCeSxZMCBhcyBwcm9wZXJ0eSxYMCBhcyBwcm9wZXJ0eU9mLEowIGFzIHB1bGwsUTAgYXMgcHVsbEFsbCxWMCBhcyBwdWxsQWxsQnksazAgYXMgcHVsbEFsbFdpdGgsajAgYXMgcHVsbEF0LHV3IGFzIHJhbmRvbSxuZCBhcyByYW5nZSx0ZCBhcyByYW5nZVJpZ2h0LGVkIGFzIHJlYXJnLGZ3IGFzIHJlZHVjZSxsdyBhcyByZWR1Y2VSaWdodCxyZCBhcyByZWplY3QsaWQgYXMgcmVtb3ZlLG93IGFzIHJlcGVhdCxzdyBhcyByZXBsYWNlLHVkIGFzIHJlc3QsYXcgYXMgcmVzdWx0LGZkIGFzIHJldmVyc2UsY3cgYXMgcm91bmQsaHcgYXMgcnVuSW5Db250ZXh0LGd3IGFzIHNhbXBsZSxsZCBhcyBzYW1wbGVTaXplLG9kIGFzIHNldCxzZCBhcyBzZXRXaXRoLGFkIGFzIHNodWZmbGUscHcgYXMgc2l6ZSxjZCBhcyBzbGljZSxfdyBhcyBzbmFrZUNhc2UsZHcgYXMgc29tZSxoZCBhcyBzb3J0QnksdncgYXMgc29ydGVkSW5kZXgsd3cgYXMgc29ydGVkSW5kZXhCeSx4dyBhcyBzb3J0ZWRJbmRleE9mLEF3IGFzIHNvcnRlZExhc3RJbmRleCx5dyBhcyBzb3J0ZWRMYXN0SW5kZXhCeSxtdyBhcyBzb3J0ZWRMYXN0SW5kZXhPZixnZCBhcyBzb3J0ZWRVbmlxLHBkIGFzIHNvcnRlZFVuaXFCeSxfZCBhcyBzcGxpdCxkZCBhcyBzcHJlYWQsSXcgYXMgc3RhcnRDYXNlLFJ3IGFzIHN0YXJ0c1dpdGgsJDEgYXMgc3R1YkFycmF5LFoxIGFzIHN0dWJGYWxzZSxZMSBhcyBzdHViT2JqZWN0LFgxIGFzIHN0dWJTdHJpbmcsSjEgYXMgc3R1YlRydWUsU3cgYXMgc3VidHJhY3QsRXcgYXMgc3VtLEx3IGFzIHN1bUJ5LHZkIGFzIHRhaWwsd2QgYXMgdGFrZSx4ZCBhcyB0YWtlUmlnaHQsQWQgYXMgdGFrZVJpZ2h0V2hpbGUseWQgYXMgdGFrZVdoaWxlLG1kIGFzIHRhcCxUdyBhcyB0ZW1wbGF0ZSxnXyBhcyB0ZW1wbGF0ZVNldHRpbmdzLElkIGFzIHRocm90dGxlLFJkIGFzIHRocnUsQ3cgYXMgdGltZXMsU2QgYXMgdG9BcnJheSxPdyBhcyB0b0Zpbml0ZSxXdyBhcyB0b0ludGVnZXIsYncgYXMgdG9MZW5ndGgsQncgYXMgdG9Mb3dlcixQdyBhcyB0b051bWJlcixFZCBhcyB0b1BhaXJzLExkIGFzIHRvUGFpcnNJbixUZCBhcyB0b1BhdGgsQ2QgYXMgdG9QbGFpbk9iamVjdCxNdyBhcyB0b1NhZmVJbnRlZ2VyLEZ3IGFzIHRvU3RyaW5nLER3IGFzIHRvVXBwZXIsT2QgYXMgdHJhbnNmb3JtLFV3IGFzIHRyaW0sTncgYXMgdHJpbUVuZCxHdyBhcyB0cmltU3RhcnQsSHcgYXMgdHJ1bmNhdGUsV2QgYXMgdW5hcnkscXcgYXMgdW5lc2NhcGUsYmQgYXMgdW5pb24sQmQgYXMgdW5pb25CeSxQZCBhcyB1bmlvbldpdGgsTWQgYXMgdW5pcSxGZCBhcyB1bmlxQnksRGQgYXMgdW5pcVdpdGgsS3cgYXMgdW5pcXVlSWQsVWQgYXMgdW5zZXQsTmQgYXMgdW56aXAsR2QgYXMgdW56aXBXaXRoLEhkIGFzIHVwZGF0ZSxxZCBhcyB1cGRhdGVXaXRoLHp3IGFzIHVwcGVyQ2FzZSwkdyBhcyB1cHBlckZpcnN0LEtkIGFzIHZhbHVlcyx6ZCBhcyB2YWx1ZXNJbiwkZCBhcyB3aXRob3V0LFpkIGFzIHdvcmRzLFlkIGFzIHdyYXAsWGQgYXMgeG9yLEpkIGFzIHhvckJ5LFFkIGFzIHhvcldpdGgsVmQgYXMgemlwLGtkIGFzIHppcE9iamVjdCxqZCBhcyB6aXBPYmplY3REZWVwLG52IGFzIHppcFdpdGh9OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKbG9kYXNoL2xvZGFzaC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIExvZGFzaCA8aHR0cHM6Ly9sb2Rhc2guY29tLz4KICAgKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyA8aHR0cHM6Ly9vcGVuanNmLm9yZy8+CiAgICogUmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UgPGh0dHBzOi8vbG9kYXNoLmNvbS9saWNlbnNlPgogICAqIEJhc2VkIG9uIFVuZGVyc2NvcmUuanMgMS44LjMgPGh0dHA6Ly91bmRlcnNjb3JlanMub3JnL0xJQ0VOU0U+CiAgICogQ29weXJpZ2h0IEplcmVteSBBc2hrZW5hcywgRG9jdW1lbnRDbG91ZCBhbmQgSW52ZXN0aWdhdGl2ZSBSZXBvcnRlcnMgJiBFZGl0b3JzCiAgICopCiovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvZGFzaC5tanMubWFw"}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/xor.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.744Z","timestamp":1785138633744,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/xor.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dccec16569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":291,"size_decoded":608,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"cf45c584ca8f2162b4f6eb39aafffee6","sha1":"8b253566d089f16e60f7be661b0af382fb4be9ca","sha256":"e5c50192414e4724c1fb720d22732d330bb9dd40b01069e8551e22980c841270","sha512":"b8f0f029f6972ea6f613823468f4d870d6c9bdd81d4b53997c18e22e7ddb29701dbbf9e0694997fd5622cf150466f8213dc568d0e5238551f27a7c4156862d54","ssdeep":"","tlshash":"41d0eb7bc3f16cbf83721a822802e410e9f06ef8eac839a4b4290c0d0343ac084cde90","first_seen":"2025-07-08T23:56:54.769635Z","last_seen":"2026-07-27T07:51:47.164339Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAveG9yICovCmltcG9ydHthbGxvY1Vuc2FmZSBhcyBvfWZyb20iLi9hbGxvYy5tanMiO2Z1bmN0aW9uIGgoZSxuKXtpZihlLmxlbmd0aCE9PW4ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW5wdXRzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGxlbmd0aCIpO2xldCByPW8oZS5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXJbdF09ZVt0XV5uW3RdO3JldHVybiByfWV4cG9ydHtoIGFzIHhvcn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXhvci5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/environment@1.0.1/es2022/environment.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.881Z","timestamp":1785138633881,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/environment@1.0.1/es2022/environment.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/environment@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16520\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcdcc31569f-OSL\r\ncontent-length: 1226\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2363,"size_decoded":1679,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1975)","md5":"82149850b136f02a890a7479b2c91f28","sha1":"18b8ef10b8e843788e1d9ad975d8ea9d3f618007","sha256":"d21e76544d70d6066ac607ccd0d6cb429d4963e6020b7e2297199de546dd584d","sha512":"ddc935bc6b974caad7963335fe11d9eac184413e1c293434fdd3646b60f8c50044a87bc0c2cfcf15cd20181893fd9220a4ea9bda974f6b61697cb2a72495c138","ssdeep":"","tlshash":"cb4182dc26e4f2e292f244c1d23f4449f61e91fc08bca250b799c9f1aac008e2255f96","first_seen":"2025-07-08T23:56:54.566814Z","last_seen":"2026-08-08T17:15:51.730644Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvZW52aXJvbm1lbnRAMS4wLjEgKi8KaW1wb3J0IF9fUHJvY2VzcyQgZnJvbSAiL25vZGUvcHJvY2Vzcy5tanMiOwppbXBvcnQqYXMgX18wJCBmcm9tIi90c2xpYkAxLjE0LjEvZXMyMDIyL3RzbGliLm1qcyI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlInRzbGliIjpyZXR1cm4gYyhfXzAkKTtkZWZhdWx0OmNvbnNvbGUuZXJyb3IoJ21vZHVsZSAiJytuKyciIG5vdCBmb3VuZCcpO3JldHVybiBudWxsO319Owp2YXIgQz1PYmplY3QuY3JlYXRlO3ZhciBwPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgXz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBCPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBOPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIG09KGU9PnR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnR5cGVvZiBQcm94eTwidSI/bmV3IFByb3h5KGUse2dldDoodCxpKT0+KHR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnQpW2ldfSk6ZSkoZnVuY3Rpb24oZSl7aWYodHlwZW9mIHJlcXVpcmU8InUiKXJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mICInK2UrJyIgaXMgbm90IHN1cHBvcnRlZCcpfSk7dmFyIGw9KGUsdCk9PigpPT4odHx8ZSgodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzKTt2YXIgaj0oZSx0LGksZCk9PntpZih0JiZ0eXBlb2YgdD09Im9iamVjdCJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24iKWZvcihsZXQgcyBvZiBCKHQpKSFTLmNhbGwoZSxzKSYmcyE9PWkmJnAoZSxzLHtnZXQ6KCk9PnRbc10sZW51bWVyYWJsZTohKGQ9Xyh0LHMpKXx8ZC5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9O3ZhciBSPShlLHQsaSk9PihpPWUhPW51bGw/QyhOKGUpKTp7fSxqKHR8fCFlfHwhZS5fX2VzTW9kdWxlP3AoaSwiZGVmYXVsdCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMH0pOmksZSkpO3ZhciB5PWwocj0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7ci5pc0Jyb3dzZXJDcnlwdG9BdmFpbGFibGU9ci5nZXRTdWJ0bGVDcnlwdG89ci5nZXRCcm93ZXJDcnlwdG89dm9pZCAwO2Z1bmN0aW9uIGEoKXtyZXR1cm4gZ2xvYmFsVGhpcz8uY3J5cHRvfHxnbG9iYWxUaGlzPy5tc0NyeXB0b3x8e319ci5nZXRCcm93ZXJDcnlwdG89YTtmdW5jdGlvbiBjKCl7bGV0IGU9YSgpO3JldHVybiBlLnN1YnRsZXx8ZS53ZWJraXRTdWJ0bGV9ci5nZXRTdWJ0bGVDcnlwdG89YztmdW5jdGlvbiB4KCl7cmV0dXJuISFhKCkmJiEhYygpfXIuaXNCcm93c2VyQ3J5cHRvQXZhaWxhYmxlPXh9KTt2YXIgdj1sKG89PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO28uaXNCcm93c2VyPW8uaXNOb2RlPW8uaXNSZWFjdE5hdGl2ZT12b2lkIDA7ZnVuY3Rpb24gYigpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ+InUiJiZ0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmbmF2aWdhdG9yLnByb2R1Y3Q9PT0iUmVhY3ROYXRpdmUifW8uaXNSZWFjdE5hdGl2ZT1iO2Z1bmN0aW9uIGYoKXtyZXR1cm4gdHlwZW9mIF9fUHJvY2VzcyQ8InUiJiZ0eXBlb2YgX19Qcm9jZXNzJC52ZXJzaW9uczwidSImJnR5cGVvZiBfX1Byb2Nlc3MkLnZlcnNpb25zLm5vZGU8InUifW8uaXNOb2RlPWY7ZnVuY3Rpb24gQSgpe3JldHVybiFiKCkmJiFmKCl9by5pc0Jyb3dzZXI9QX0pO3ZhciB3PWwodT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGc9bSgidHNsaWIiKTtnLl9fZXhwb3J0U3Rhcih5KCksdSk7Zy5fX2V4cG9ydFN0YXIodigpLHUpfSk7dmFyIG49Uih3KCkpLHtfX2VzTW9kdWxlOmssaXNCcm93c2VyOmgsaXNOb2RlOnosaXNSZWFjdE5hdGl2ZTpELGlzQnJvd3NlckNyeXB0b0F2YWlsYWJsZTpFLGdldFN1YnRsZUNyeXB0bzpGLGdldEJyb3dlckNyeXB0bzpHfT1uLEg9bi5kZWZhdWx0Pz9uO2V4cG9ydHtrIGFzIF9fZXNNb2R1bGUsSCBhcyBkZWZhdWx0LEcgYXMgZ2V0QnJvd2VyQ3J5cHRvLEYgYXMgZ2V0U3VidGxlQ3J5cHRvLGggYXMgaXNCcm93c2VyLEUgYXMgaXNCcm93c2VyQ3J5cHRvQXZhaWxhYmxlLHogYXMgaXNOb2RlLEQgYXMgaXNSZWFjdE5hdGl2ZX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWVudmlyb25tZW50Lm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base2.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.206Z","timestamp":1785138634206,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base2.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfcc7e569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":215,"size_decoded":557,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"04f2050ab513d0ef8322c60099ef7728","sha1":"4f2ce398715d8393525ba623ff9dddbc84d29c11","sha256":"46527ded4d9b868600b2fd8902398a31226655790bd3c5f61ffa0bd8737b0698","sha512":"689072c6c3fe674d3a4ae3182bd3e85b6df9334dd39048e908ee58d53f38ef7e46ce1564e7b83baff87af2c22ca51e07ec9ae03a5ba5d75e3bc48968d875220b","ssdeep":"","tlshash":"acd022beca7d2f7e363a504c848e4811a4608baad3800250a1261e6161184cef027f75","first_seen":"2025-07-08T23:56:54.744275Z","last_seen":"2026-08-08T17:15:51.979375Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2UyICovCmltcG9ydHtyZmM0NjQ4IGFzIGV9ZnJvbSIuLi9lc20vc3JjL2Jhc2VzL2Jhc2UubWpzIjt2YXIgYT1lKHtwcmVmaXg6IjAiLG5hbWU6ImJhc2UyIixhbHBoYWJldDoiMDEiLGJpdHNQZXJDaGFyOjF9KTtleHBvcnR7YSBhcyBiYXNlMn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2UyLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/basics.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.221Z","timestamp":1785138634221,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/basics.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfec8c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":876,"size_decoded":739,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (799)","md5":"086d4f1c94f4c402f0679a8661ab4db7","sha1":"e609011aac5ff02c4ac240dca3f118e138948b5d","sha256":"76f64036094d354394512f977fc6fe5ff6c87762394ea5acd83492d4d93b35d9","sha512":"b44c9c54d2741a68c28989022ab7239dc43def5ae1794d82026155b3e62ea674e5b6fcc1f1fd42aab959d20ffcb3f33995ee5a2242f6b33124f9ccad50c064b3","ssdeep":"","tlshash":"c411521f875694758738cceac24ce87b5b6adba5028213d4888f0b668b34486f953c28","first_seen":"2025-11-22T14:57:23.905796Z","last_seen":"2026-08-08T17:15:51.400058Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2ljcyAqLwppbXBvcnQqYXMgbyBmcm9tIi4vYmFzZXMvaWRlbnRpdHkubWpzIjtpbXBvcnQqYXMgcyBmcm9tIi4vYmFzZXMvYmFzZTIubWpzIjtpbXBvcnQqYXMgciBmcm9tIi4vYmFzZXMvYmFzZTgubWpzIjtpbXBvcnQqYXMgbSBmcm9tIi4vYmFzZXMvYmFzZTEwLm1qcyI7aW1wb3J0KmFzIGEgZnJvbSIuL2Jhc2VzL2Jhc2UxNi5tanMiO2ltcG9ydCphcyB0IGZyb20iLi9iYXNlcy9iYXNlMzIubWpzIjtpbXBvcnQqYXMgaSBmcm9tIi4vYmFzZXMvYmFzZTM2Lm1qcyI7aW1wb3J0KmFzIGUgZnJvbSIuL2Jhc2VzL2Jhc2U1OC5tanMiO2ltcG9ydCphcyBwIGZyb20iLi9iYXNlcy9iYXNlNjQubWpzIjtpbXBvcnQqYXMgZiBmcm9tIi4vYmFzZXMvYmFzZTI1NmVtb2ppLm1qcyI7aW1wb3J0KmFzIGIgZnJvbSIuL2hhc2hlcy9zaGEyLm1qcyI7aW1wb3J0KmFzIG4gZnJvbSIuL2hhc2hlcy9pZGVudGl0eS5tanMiO2ltcG9ydCphcyBjIGZyb20iLi9jb2RlY3MvcmF3Lm1qcyI7aW1wb3J0KmFzIGggZnJvbSIuL2NvZGVjcy9qc29uLm1qcyI7aW1wb3J0e0NJRCBhcyB5LGhhc2hlciBhcyBqLGRpZ2VzdCBhcyBnLHZhcmludCBhcyB2LGJ5dGVzIGFzIHd9ZnJvbSIuL211bHRpZm9ybWF0cy5tanMiO3ZhciB4PXsuLi5vLC4uLnMsLi4uciwuLi5tLC4uLmEsLi4udCwuLi5pLC4uLmUsLi4ucCwuLi5mfSxCPXsuLi5iLC4uLm59LEM9e3JhdzpjLGpzb246aH07ZXhwb3J0e3kgYXMgQ0lELHggYXMgYmFzZXMsdyBhcyBieXRlcyxDIGFzIGNvZGVjcyxnIGFzIGRpZ2VzdCxqIGFzIGhhc2hlcixCIGFzIGhhc2hlcyx2IGFzIHZhcmludH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2ljcy5tanMubWFw"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mail.usdt-transfer.info/favicon.ico","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.484Z","timestamp":1785138633484,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"usdt-transfer.info","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 28 Jun 2026 19:43:01 GMT","end":"Sat, 26 Sep 2026 19:43:00 GMT"},"fingerprint":{"sha1":"8F:86:22:F6:F7:B2:BC:2F:1B:2D:AA:DF:8E:4E:05:40:E4:A2:C8:8C","sha256":"64:15:DC:03:8C:8A:21:D8:04:75:08:EB:C1:DE:08:8A:83:FD:91:B9:1F:D5:77:77:2E:2C:69:6E:28:8E:DA:8E"}}},"request":{"raw":"GET /favicon.ico HTTP/1.1\r\nHost: mail.usdt-transfer.info\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://mail.usdt-transfer.info/\r\nCookie: _tccl_visitor=f12344d9-1122-44ec-942d-fbb6fdb4ecd7; _tccl_visit=f12344d9-1122-44ec-942d-fbb6fdb4ecd7; _scc_session=pc=1\u0026C_TOUCH=2026-07-27T07:50:33.435Z\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 404 \r\ncontent-length: 13\r\ncontent-type: text/html; charset=iso-8859-1\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver: Apache\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"Apache HTTP Server","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":13,"size_decoded":166,"mime_type":"text/html; charset=iso-8859-1","magic":"ASCII text, with no line terminators","md5":"1e6cd917ed71a1241e4bedc29264bd98","sha1":"5b65037351caeb0e5a48d963d7ffa88d0271d546","sha256":"7d04f7431bbfa41a04bcc7e6b98b9de0d919756c4c671c5785c99fff45f16402","sha512":"90e7e9f406dbb9a55b45643d6b4afce103cd565b33e40397b8422e3347ad3778220f8d1ae7befe66db61ce796d3e22d24cbef5fd3ecbbcb5f89a852d19f47e99","ssdeep":"","tlshash":"eb60000c0003c3cc0000003033c00003c000030c303300330000c000000c03c00c00cc","first_seen":"2023-03-08T15:13:39Z","last_seen":"2026-08-13T10:31:49.490375Z","times_seen":17137,"resource_available":true,"data":"NDA0IE5vdCBGb3VuZA=="}},"time_used":180,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":180,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/address@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.692Z","timestamp":1785138633692,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/address@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/address@5.8.0/es2022/address.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/address@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc9bfe569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":382,"size_decoded":698,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"a4db412158366016983c3c4622ed0951","sha1":"fc22292065dcd36d42fb614e225095056347acf3","sha256":"340d4dd5f7d923c4e98dec6a0af522ad187c9ef327660f6f5c7b9d45dc4d7e31","sha512":"a2af672ee8778b09bc79ba827620df994142246073a07877d92ce8e0b923fcd4cc455cbd63900cbc9677734ebe052d143a16d3426b00f7b43583327c857e189d","ssdeep":"","tlshash":"0de06d63c529e7dc635c1efc8068a73ca13a84d49506b0ab5d24c73393d2569aa215c9","first_seen":"2025-07-08T23:56:54.586644Z","last_seen":"2026-07-27T07:51:47.223042Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYWRkcmVzc0A1LjguMCAqLwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9iaWdudW1iZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2tlY2NhazI1NkBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2xvZ2dlckBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L3JscEBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9hZGRyZXNzQDUuOC4wL2VzMjAyMi9hZGRyZXNzLm1qcyI7Cg=="}},"time_used":125,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":125,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/keccak256@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.700Z","timestamp":1785138633700,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/keccak256@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/keccak256@5.8.0/es2022/keccak256.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/keccak256@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccac02569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":213,"size_decoded":699,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d46addd972d6377a6fbd0c4525a7c067","sha1":"b56250e577bad60bc2ba42c1609b68509560862f","sha256":"848bd4f140123d96a707fc7763e062df5b673852e08b1c55660b1e65c3fe9ebd","sha512":"7e4ecf7af2ccde6700c4dfd2ede98e37ca73e99fed3b325f1d777a284d3a685797823b51076f3e011e15df744eef9611052d94dfbc9229288610a117fd910d69","ssdeep":"","tlshash":"0cd0a7a380aa45cc72592fa9401cd57ce13a4244c14060d67116c631d1c3529a2302e6","first_seen":"2025-07-08T23:56:54.685706Z","last_seen":"2026-07-27T07:51:47.253782Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvanMtc2hhM0AwLjguMC9lczIwMjIvanMtc2hhMy5tanMiOwpleHBvcnQgKiBmcm9tICIvQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QDUuOC4wL2VzMjAyMi9rZWNjYWsyNTYubWpzIjsK"}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@%5E3.0.0/from-string?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.756Z","timestamp":1785138633756,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@%5E3.0.0/from-string?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /uint8arrays@3.1.1/es2022/from-string.mjs\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccfc1d569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":257,"size_decoded":583,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"5a0b5a028bcad2e2a9104b0c2eac30aa","sha1":"c1bf9c16ce2be56f549c8675c62cb12591bf4c6f","sha256":"2b87134947577ad2150f763152af15cd6a3203ad3d420e3497f2010f4b8bb245","sha512":"6f00bc843970b99597c3b9890d8435d776bc380af10617de1dcb1cebffd14ec1b39990ef1a8a2a88f576879c65c40b9213d169afcf07e0025da72cc80f739caf","ssdeep":"","tlshash":"07d067974216593c22a69dc845941537c2214fe8dad710ec34777a5ef3534b9c8e1db8","first_seen":"2025-07-08T23:56:54.665225Z","last_seen":"2026-07-27T07:51:47.192645Z","times_seen":99,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvZnJvbS1zdHJpbmcgKi8KaW1wb3J0ICIvbm9kZS9idWZmZXIubWpzIjsKaW1wb3J0ICIvdWludDhhcnJheXNAMy4xLjEvZXMyMDIyL2VzbS9zcmMvdXRpbC9hcy11aW50OGFycmF5Lm1qcyI7CmltcG9ydCAiL3VpbnQ4YXJyYXlzQDMuMS4xL2VzMjAyMi9lc20vc3JjL3V0aWwvYmFzZXMubWpzIjsKZXhwb3J0ICogZnJvbSAiL3VpbnQ4YXJyYXlzQDMuMS4xL2VzMjAyMi9mcm9tLXN0cmluZy5tanMiOwo="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/properties@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.959Z","timestamp":1785138633959,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/properties@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/signing-key@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/properties@5.8.0/es2022/properties.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/properties@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce3c47569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":173,"size_decoded":680,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"62eb72ae05a6dfa1fdbbce9d357be001","sha1":"b449c92eb18513a4406a3e6f60d5a0a95125baeb","sha256":"c69923fc5e635154189d960959f7e4c0293342cc563ec183ae7a71aef1c4f3ae","sha512":"cd5e97e89ff47608fc251c618d101b3d36ce04a9d81eb6f707f7a487eea201b6e6a4e9995d882319a8991c42f3d931ba67851e3ba2e77fe79fb7f5b3c849ac44","ssdeep":"","tlshash":"ebc01212d015d5dc539a0ebc4138a63ded765498c150a0a7e595c722a1c210564106a7","first_seen":"2025-07-08T23:56:54.576616Z","last_seen":"2026-07-27T07:51:47.141556Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvcHJvcGVydGllc0A1LjguMCAqLwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQGV0aGVyc3Byb2plY3QvcHJvcGVydGllc0A1LjguMC9lczIwMjIvcHJvcGVydGllcy5tanMiOwo="}},"time_used":107,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":107,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/base64@5.8.0/es2022/base64.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.993Z","timestamp":1785138633993,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/base64@5.8.0/es2022/base64.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/base64@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16520\r\ncf-ray: a21a0dce7c57569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":378,"size_decoded":628,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"66c9cff3bbf71ed9a4ac685d606130a6","sha1":"61e484cdaefd8facb1804d0afdac6e06b2115fb6","sha256":"4edb6b54742a802a8a1aa7f83932b260554da76abd442255123ff8e1837f1729","sha512":"1cc82d67ec8a69a4bdb44c70c72424dd680d771e58d5c439a1775fc9639751aca623189094357dd5169fd3ba9a7d58c2a80083478dc247b0a252de5ea7a65179","ssdeep":"","tlshash":"cae02bfe526864efe3a809d659375148d07dad04164654a99d018947a110aa425eaf70","first_seen":"2025-07-08T23:56:54.583938Z","last_seen":"2026-07-27T07:51:47.241628Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYmFzZTY0QDUuOC4wICovCmltcG9ydHthcnJheWlmeSBhcyB0fWZyb20iL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjtmdW5jdGlvbiBuKGUpe2U9YXRvYihlKTtsZXQgcj1bXTtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKylyLnB1c2goZS5jaGFyQ29kZUF0KG8pKTtyZXR1cm4gdChyKX1mdW5jdGlvbiBjKGUpe2U9dChlKTtsZXQgcj0iIjtmb3IobGV0IG89MDtvPGUubGVuZ3RoO28rKylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGVbb10pO3JldHVybiBidG9hKHIpfWV4cG9ydHtuIGFzIGRlY29kZSxjIGFzIGVuY29kZX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2U2NC5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-assert@%5E1.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.052Z","timestamp":1785138634052,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /minimalistic-assert@%5E1.0.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/hmac-drbg@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /minimalistic-assert@1.0.1/es2022/minimalistic-assert.mjs\r\nx-typescript-types: https://esm.sh/@types/minimalistic-assert@~1.0.3/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dcedc69569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":201,"size_decoded":663,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"8e0faac53bc45ece16c3837b588e0960","sha1":"1063472c14e3a5e61988f599a3f17f7520c597ad","sha256":"02883d571ab4809495608554744cc80c42f7f249b2002a8be09a7307238f743a","sha512":"e1d59a28b5cbc94a93b7ea3d51ff67d6e9df0caa3acdac704095466233137e1b0ea1e592502e9753f7eea17c023f3b59d98b9a60dac3518b93370a445db14897","ssdeep":"","tlshash":"a1d0e91143578f2a37b82aea11ae692e7a538fc4f84110ba15fd8913f0974c294963b5","first_seen":"2025-07-08T23:56:54.59861Z","last_seen":"2026-07-27T07:51:47.209697Z","times_seen":30,"resource_available":true,"data":"LyogZXNtLnNoIC0gbWluaW1hbGlzdGljLWFzc2VydEAxLjAuMSAqLwpleHBvcnQgKiBmcm9tICIvbWluaW1hbGlzdGljLWFzc2VydEAxLjAuMS9lczIwMjIvbWluaW1hbGlzdGljLWFzc2VydC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL21pbmltYWxpc3RpYy1hc3NlcnRAMS4wLjEvZXMyMDIyL21pbmltYWxpc3RpYy1hc3NlcnQubWpzIjsK"}},"time_used":127,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":127,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/sha512@1.0.1/es2022/sha512.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.180Z","timestamp":1785138634180,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/sha512@1.0.1/es2022/sha512.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/sha512@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:03:02 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-cache-status: HIT\r\nage: 16516\r\ncf-ray: a21a0dcfac7b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":9619,"size_decoded":4642,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (9172)","md5":"8981e89dda796fc8f2b9fa08b55ec90e","sha1":"3d0dabb53d7b2a602a00a5f97c1c6b98d1142f34","sha256":"a1bbb2803ba3f8d1addefea9fefdc4274b996ed103e895b0c6d2548e7903bf83","sha512":"9521906f1935312d4a6e7542b2bea901848ae335e2eb19456ae1df7dfa846500baaa6ec56fbb475142ce79213e5ff45215e3cf6559ef7fe1c4e86e53c13d21b2","ssdeep":"96:JgZMKi/2I7hjXt7SHTIBee8YH2/njhCpNduAT5KctIvphHen+B/W4j3ZgcRoaKd3:OQhj97SzIEe8KYmkAdKcCWnGW43s","tlshash":"a412716b6b901094dfab4041453fc52f32e66970230a4b9ee18ee7fd413e326957d63b","first_seen":"2026-01-25T00:27:36.616668Z","last_seen":"2026-07-27T07:51:47.203877Z","times_seen":96,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9zaGE1MTJAMS4wLjEgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIkBzdGFibGVsaWIvYmluYXJ5IjpyZXR1cm4gYyhfXzAkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18xJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIHNmPU9iamVjdC5jcmVhdGU7dmFyIE09T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciByZj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBiZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgY2Y9T2JqZWN0LmdldFByb3RvdHlwZU9mLG5mPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFA9KGI9PnR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnR5cGVvZiBQcm94eTwidSI/bmV3IFByb3h5KGIse2dldDoocyxyKT0+KHR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnMpW3JdfSk6YikoZnVuY3Rpb24oYil7aWYodHlwZW9mIHJlcXVpcmU8InUiKXJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mICInK2IrJyIgaXMgbm90IHN1cHBvcnRlZCcpfSk7dmFyIF9mPShiLHMpPT4oKT0+KHN8fGIoKHM9e2V4cG9ydHM6e319KS5leHBvcnRzLHMpLHMuZXhwb3J0cyk7dmFyIGRmPShiLHMscixjKT0+e2lmKHMmJnR5cGVvZiBzPT0ib2JqZWN0Inx8dHlwZW9mIHM9PSJmdW5jdGlvbiIpZm9yKGxldCBMIG9mIGJmKHMpKSFuZi5jYWxsKGIsTCkmJkwhPT1yJiZNKGIsTCx7Z2V0OigpPT5zW0xdLGVudW1lcmFibGU6IShjPXJmKHMsTCkpfHxjLmVudW1lcmFibGV9KTtyZXR1cm4gYn07dmFyIG9mPShiLHMscik9PihyPWIhPW51bGw/c2YoY2YoYikpOnt9LGRmKHN8fCFifHwhYi5fX2VzTW9kdWxlP00ociwiZGVmYXVsdCIse3ZhbHVlOmIsZW51bWVyYWJsZTohMH0pOnIsYikpO3ZhciBRPV9mKHY9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBnPVAoIkBzdGFibGVsaWIvYmluYXJ5IiksUz1QKCJAc3RhYmxlbGliL3dpcGUiKTt2LkRJR0VTVF9MRU5HVEg9NjQ7di5CTE9DS19TSVpFPTEyODt2YXIgSj0oZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7dGhpcy5kaWdlc3RMZW5ndGg9di5ESUdFU1RfTEVOR1RILHRoaXMuYmxvY2tTaXplPXYuQkxPQ0tfU0laRSx0aGlzLl9zdGF0ZUhpPW5ldyBJbnQzMkFycmF5KDgpLHRoaXMuX3N0YXRlTG89bmV3IEludDMyQXJyYXkoOCksdGhpcy5fdGVtcEhpPW5ldyBJbnQzMkFycmF5KDE2KSx0aGlzLl90ZW1wTG89bmV3IEludDMyQXJyYXkoMTYpLHRoaXMuX2J1ZmZlcj1uZXcgVWludDhBcnJheSgyNTYpLHRoaXMuX2J1ZmZlckxlbmd0aD0wLHRoaXMuX2J5dGVzSGFzaGVkPTAsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5yZXNldCgpfXJldHVybiBiLnByb3RvdHlwZS5faW5pdFN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5fc3RhdGVIaVswXT0xNzc5MDMzNzAzLHRoaXMuX3N0YXRlSGlbMV09MzE0NDEzNDI3Nyx0aGlzLl9zdGF0ZUhpWzJdPTEwMTM5MDQyNDIsdGhpcy5fc3RhdGVIaVszXT0yNzczNDgwNzYyLHRoaXMuX3N0YXRlSGlbNF09MTM1OTg5MzExOSx0aGlzLl9zdGF0ZUhpWzVdPTI2MDA4MjI5MjQsdGhpcy5fc3RhdGVIaVs2XT01Mjg3MzQ2MzUsdGhpcy5fc3RhdGVIaVs3XT0xNTQxNDU5MjI1LHRoaXMuX3N0YXRlTG9bMF09NDA4OTIzNTcyMCx0aGlzLl9zdGF0ZUxvWzFdPTIyMjc4NzM1OTUsdGhpcy5fc3RhdGVMb1syXT00MjcxMTc1NzIzLHRoaXMuX3N0YXRlTG9bM109MTU5NTc1MDEyOSx0aGlzLl9zdGF0ZUxvWzRdPTI5MTc1NjUxMzcsdGhpcy5fc3RhdGVMb1s1XT03MjU1MTExOTksdGhpcy5fc3RhdGVMb1s2XT00MjE1Mzg5NTQ3LHRoaXMuX3N0YXRlTG9bN109MzI3MDMzMjA5fSxiLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbml0U3RhdGUoKSx0aGlzLl9idWZmZXJMZW5ndGg9MCx0aGlzLl9ieXRlc0hhc2hlZD0wLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXN9LGIucHJvdG90eXBlLmNsZWFuPWZ1bmN0aW9uKCl7Uy53aXBlKHRoaXMuX2J1ZmZlciksUy53aXBlKHRoaXMuX3RlbXBIaSksUy53aXBlKHRoaXMuX3RlbXBMbyksdGhpcy5yZXNldCgpfSxiLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24ocyxyKXtpZihyPT09dm9pZCAwJiYocj1zLmxlbmd0aCksdGhpcy5fZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJTSEE1MTI6IGNhbid0IHVwZGF0ZSBiZWNhdXNlIGhhc2ggd2FzIGZpbmlzaGVkLiIpO3ZhciBjPTA7aWYodGhpcy5fYnl0ZXNIYXNoZWQrPXIsdGhpcy5fYnVmZmVyTGVuZ3RoPjApe2Zvcig7dGhpcy5fYnVmZmVyTGVuZ3RoPHYuQkxPQ0tfU0laRSYmcj4wOyl0aGlzLl9idWZmZXJbdGhpcy5fYnVmZmVyTGVuZ3RoKytdPXNbYysrXSxyLS07dGhpcy5fYnVmZmVyTGVuZ3RoPT09dGhpcy5ibG9ja1NpemUmJihEKHRoaXMuX3RlbXBIaSx0aGlzLl90ZW1wTG8sdGhpcy5fc3RhdGVIaSx0aGlzLl9zdGF0ZUxvLHRoaXMuX2J1ZmZlciwwLHRoaXMuYmxvY2tTaXplKSx0aGlzLl9idWZmZXJMZW5ndGg9MCl9Zm9yKHI+PXRoaXMuYmxvY2tTaXplJiYoYz1EKHRoaXMuX3RlbXBIaSx0aGlzLl90ZW1wTG8sdGhpcy5fc3RhdGVIaSx0aGlzLl9zdGF0ZUxvLHMsYyxyKSxyJT10aGlzLmJsb2NrU2l6ZSk7cj4wOyl0aGlzLl9idWZmZXJbdGhpcy5fYnVmZmVyTGVuZ3RoKytdPXNbYysrXSxyLS07cmV0dXJuIHRoaXN9LGIucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbihzKXtpZighdGhpcy5fZmluaXNoZWQpe3ZhciByPXRoaXMuX2J5dGVzSGFzaGVkLGM9dGhpcy5fYnVmZmVyTGVuZ3RoLEw9ci81MzY4NzA5MTJ8MCxtPXI8PDMseT1yJTEyODwxMTI/MTI4OjI1Njt0aGlzLl9idWZmZXJbY109MTI4O2Zvcih2YXIgbj1jKzE7bjx5LTg7bisrKXRoaXMuX2J1ZmZlcltuXT0wO2cud3JpdGVVaW50MzJCRShMLHRoaXMuX2J1ZmZlcix5LTgpLGcud3JpdGVVaW50MzJCRShtLHRoaXMuX2J1ZmZlcix5LTQpLEQodGhpcy5fdGVtcEhpLHRoaXMuX3RlbXBMbyx0aGlzLl9zdGF0ZUhpLHRoaXMuX3N0YXRlTG8sdGhpcy5fYnVmZmVyLDAseSksdGhpcy5fZmluaXNoZWQ9ITB9Zm9yKHZhciBuPTA7bjx0aGlzLmRpZ2VzdExlbmd0aC84O24rKylnLndyaXRlVWludDMyQkUodGhpcy5fc3RhdGVIaVtuXSxzLG4qOCksZy53cml0ZVVpbnQzMkJFKHRoaXMuX3N0YXRlTG9bbl0scyxuKjgrNCk7cmV0dXJuIHRoaXN9LGIucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciBzPW5ldyBVaW50OEFycmF5KHRoaXMuZGlnZXN0TGVuZ3RoKTtyZXR1cm4gdGhpcy5maW5pc2gocyksc30sYi5wcm90b3R5cGUuc2F2ZVN0YXRlPWZ1bmN0aW9uKCl7aWYodGhpcy5fZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJTSEEyNTY6IGNhbm5vdCBzYXZlIGZpbmlzaGVkIHN0YXRlIik7cmV0dXJue3N0YXRlSGk6bmV3IEludDMyQXJyYXkodGhpcy5fc3RhdGVIaSksc3RhdGVMbzpuZXcgSW50MzJBcnJheSh0aGlzLl9zdGF0ZUxvKSxidWZmZXI6dGhpcy5fYnVmZmVyTGVuZ3RoPjA/bmV3IFVpbnQ4QXJyYXkodGhpcy5fYnVmZmVyKTp2b2lkIDAsYnVmZmVyTGVuZ3RoOnRoaXMuX2J1ZmZlckxlbmd0aCxieXRlc0hhc2hlZDp0aGlzLl9ieXRlc0hhc2hlZH19LGIucHJvdG90eXBlLnJlc3RvcmVTdGF0ZT1mdW5jdGlvbihzKXtyZXR1cm4gdGhpcy5fc3RhdGVIaS5zZXQocy5zdGF0ZUhpKSx0aGlzLl9zdGF0ZUxvLnNldChzLnN0YXRlTG8pLHRoaXMuX2J1ZmZlckxlbmd0aD1zLmJ1ZmZlckxlbmd0aCxzLmJ1ZmZlciYmdGhpcy5fYnVmZmVyLnNldChzLmJ1ZmZlciksdGhpcy5fYnl0ZXNIYXNoZWQ9cy5ieXRlc0hhc2hlZCx0aGlzLl9maW5pc2hlZD0hMSx0aGlzfSxiLnByb3RvdHlwZS5jbGVhblNhdmVkU3RhdGU9ZnVuY3Rpb24ocyl7Uy53aXBlKHMuc3RhdGVIaSksUy53aXBlKHMuc3RhdGVMbykscy5idWZmZXImJlMud2lwZShzLmJ1ZmZlcikscy5idWZmZXJMZW5ndGg9MCxzLmJ5dGVzSGFzaGVkPTB9LGJ9KSgpO3YuU0hBNTEyPUo7dmFyIEY9bmV3IEludDMyQXJyYXkoWzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXSk7ZnVuY3Rpb24gRChiLHMscixjLEwsbSx5KXtmb3IodmFyIG49clswXSx3PXJbMV0sRT1yWzJdLEs9clszXSxoPXJbNF0sQj1yWzVdLFU9cls2XSxrPXJbN10sSD1jWzBdLEE9Y1sxXSxJPWNbMl0sTz1jWzNdLHA9Y1s0XSxHPWNbNV0sVD1jWzZdLHo9Y1s3XSxmLGUsXyxkLGksdCx4LGE7eT49MTI4Oyl7Zm9yKHZhciB1PTA7dTwxNjt1Kyspe3ZhciBvPTgqdSttO2JbdV09Zy5yZWFkVWludDMyQkUoTCxvKSxzW3VdPWcucmVhZFVpbnQzMkJFKEwsbys0KX1mb3IodmFyIHU9MDt1PDgwO3UrKyl7dmFyIFI9bixWPXcsVz1FLFo9SyxYPWgsWT1CLCQ9VSxOPWssbD1ILGZmPUEsZWY9SSxqPU8sdGY9cCx4Zj1HLGFmPVQscT16O2lmKGY9ayxlPXosaT1lJjY1NTM1LHQ9ZT4+PjE2LHg9ZiY2NTUzNSxhPWY+Pj4xNixmPShoPj4+MTR8cDw8MTgpXihoPj4+MTh8cDw8MTQpXihwPj4+OXxoPDwyMyksZT0ocD4+PjE0fGg8PDE4KV4ocD4+PjE4fGg8PDE0KV4oaD4+Pjl8cDw8MjMpLGkrPWUmNjU1MzUsdCs9ZT4+PjE2LHgrPWYmNjU1MzUsYSs9Zj4+PjE2LGY9aCZCXn5oJlUsZT1wJkdefnAmVCxpKz1lJjY1NTM1LHQrPWU+Pj4xNix4Kz1mJjY1NTM1LGErPWY+Pj4xNixmPUZbdSoyXSxlPUZbdSoyKzFdLGkrPWUmNjU1MzUsdCs9ZT4+PjE2LHgrPWYmNjU1MzUsYSs9Zj4+PjE2LGY9Ylt1JTE2XSxlPXNbdSUxNl0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYsXz14JjY1NTM1fGE8PDE2LGQ9aSY2NTUzNXx0PDwxNixmPV8sZT1kLGk9ZSY2NTUzNSx0PWU+Pj4xNix4PWYmNjU1MzUsYT1mPj4+MTYsZj0obj4+PjI4fEg8PDQpXihIPj4+MnxuPDwzMCleKEg+Pj43fG48PDI1KSxlPShIPj4+Mjh8bjw8NCleKG4+Pj4yfEg8PDMwKV4obj4+Pjd8SDw8MjUpLGkrPWUmNjU1MzUsdCs9ZT4+PjE2LHgrPWYmNjU1MzUsYSs9Zj4+PjE2LGY9biZ3Xm4mRV53JkUsZT1IJkFeSCZJXkEmSSxpKz1lJjY1NTM1LHQrPWU+Pj4xNix4Kz1mJjY1NTM1LGErPWY+Pj4xNix0Kz1pPj4+MTYseCs9dD4+PjE2LGErPXg+Pj4xNixOPXgmNjU1MzV8YTw8MTYscT1pJjY1NTM1fHQ8PDE2LGY9WixlPWosaT1lJjY1NTM1LHQ9ZT4+PjE2LHg9ZiY2NTUzNSxhPWY+Pj4xNixmPV8sZT1kLGkrPWUmNjU1MzUsdCs9ZT4+PjE2LHgrPWYmNjU1MzUsYSs9Zj4+PjE2LHQrPWk+Pj4xNix4Kz10Pj4+MTYsYSs9eD4+PjE2LFo9eCY2NTUzNXxhPDwxNixqPWkmNjU1MzV8dDw8MTYsdz1SLEU9VixLPVcsaD1aLEI9WCxVPVksaz0kLG49TixBPWwsST1mZixPPWVmLHA9aixHPXRmLFQ9eGYsej1hZixIPXEsdSUxNj09PTE1KWZvcih2YXIgbz0wO288MTY7bysrKWY9YltvXSxlPXNbb10saT1lJjY1NTM1LHQ9ZT4+PjE2LHg9ZiY2NTUzNSxhPWY+Pj4xNixmPWJbKG8rOSklMTZdLGU9c1sobys5KSUxNl0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsXz1iWyhvKzEpJTE2XSxkPXNbKG8rMSklMTZdLGY9KF8+Pj4xfGQ8PDMxKV4oXz4+Pjh8ZDw8MjQpXl8+Pj43LGU9KGQ+Pj4xfF88PDMxKV4oZD4+Pjh8Xzw8MjQpXihkPj4+N3xfPDwyNSksaSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsXz1iWyhvKzE0KSUxNl0sZD1zWyhvKzE0KSUxNl0sZj0oXz4+PjE5fGQ8PDEzKV4oZD4+PjI5fF88PDMpXl8+Pj42LGU9KGQ+Pj4xOXxfPDwxMyleKF8+Pj4yOXxkPDwzKV4oZD4+PjZ8Xzw8MjYpLGkrPWUmNjU1MzUsdCs9ZT4+PjE2LHgrPWYmNjU1MzUsYSs9Zj4+PjE2LHQrPWk+Pj4xNix4Kz10Pj4+MTYsYSs9eD4+PjE2LGJbb109eCY2NTUzNXxhPDwxNixzW29dPWkmNjU1MzV8dDw8MTZ9Zj1uLGU9SCxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9clswXSxlPWNbMF0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYsclswXT1uPXgmNjU1MzV8YTw8MTYsY1swXT1IPWkmNjU1MzV8dDw8MTYsZj13LGU9QSxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9clsxXSxlPWNbMV0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYsclsxXT13PXgmNjU1MzV8YTw8MTYsY1sxXT1BPWkmNjU1MzV8dDw8MTYsZj1FLGU9SSxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9clsyXSxlPWNbMl0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYsclsyXT1FPXgmNjU1MzV8YTw8MTYsY1syXT1JPWkmNjU1MzV8dDw8MTYsZj1LLGU9TyxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9clszXSxlPWNbM10saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYsclszXT1LPXgmNjU1MzV8YTw8MTYsY1szXT1PPWkmNjU1MzV8dDw8MTYsZj1oLGU9cCxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9cls0XSxlPWNbNF0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYscls0XT1oPXgmNjU1MzV8YTw8MTYsY1s0XT1wPWkmNjU1MzV8dDw8MTYsZj1CLGU9RyxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9cls1XSxlPWNbNV0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYscls1XT1CPXgmNjU1MzV8YTw8MTYsY1s1XT1HPWkmNjU1MzV8dDw8MTYsZj1VLGU9VCxpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9cls2XSxlPWNbNl0saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYscls2XT1VPXgmNjU1MzV8YTw8MTYsY1s2XT1UPWkmNjU1MzV8dDw8MTYsZj1rLGU9eixpPWUmNjU1MzUsdD1lPj4+MTYseD1mJjY1NTM1LGE9Zj4+PjE2LGY9cls3XSxlPWNbN10saSs9ZSY2NTUzNSx0Kz1lPj4+MTYseCs9ZiY2NTUzNSxhKz1mPj4+MTYsdCs9aT4+PjE2LHgrPXQ+Pj4xNixhKz14Pj4+MTYscls3XT1rPXgmNjU1MzV8YTw8MTYsY1s3XT16PWkmNjU1MzV8dDw8MTYsbSs9MTI4LHktPTEyOH1yZXR1cm4gbX1mdW5jdGlvbiB1ZihiKXt2YXIgcz1uZXcgSjtzLnVwZGF0ZShiKTt2YXIgcj1zLmRpZ2VzdCgpO3JldHVybiBzLmNsZWFuKCkscn12Lmhhc2g9dWZ9KTt2YXIgQz1vZihRKCkpLHtfX2VzTW9kdWxlOnBmLERJR0VTVF9MRU5HVEg6TGYsQkxPQ0tfU0laRTp2ZixTSEE1MTI6eWYsaGFzaDp3Zn09QyxFZj1DLmRlZmF1bHQ/P0M7ZXhwb3J0e3ZmIGFzIEJMT0NLX1NJWkUsTGYgYXMgRElHRVNUX0xFTkdUSCx5ZiBhcyBTSEE1MTIscGYgYXMgX19lc01vZHVsZSxFZiBhcyBkZWZhdWx0LHdmIGFzIGhhc2h9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zaGE1MTIubWpzLm1hcA=="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/logger@2.1.2/es2022/logger.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.495Z","timestamp":1785138633495,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/logger@2.1.2/es2022/logger.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:42 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcb5bcc569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4763,"size_decoded":2487,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (4684)","md5":"773de17c3d9143aea9b49fb676a7a9b1","sha1":"974bab2c4616c44e720f0b85359fb1edd9de70da","sha256":"7c9732e039d4cfa6f71c09bd67c0b4b6dae2ba4858151407c17b9df011cd2e03","sha512":"fa25bd4569eb9130ed2588ad47cdf377edc9333b1efe13dea7b673ec5f67d7435b91b20ea8d51da7afa1c9cba0bf98cca0093bbc8b26be7ae25d19d92d55baaf","ssdeep":"96:qU9ITx17SDkbe/2Po77YeUphsIabpW4lcRpTf:qH2tMsJBcRpr","tlshash":"d9a1766977e37871739a106e24658362f324b8c9991cf2bdf5cd78fe60a081056f2b74","first_seen":"2025-07-08T23:56:54.680003Z","last_seen":"2026-07-27T07:51:47.248212Z","times_seen":109,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvbG9nZ2VyQDIuMS4yICovCmltcG9ydCB2LHtsZXZlbHMgYXMgcn1mcm9tIi9waW5vQDcuMTEuMC9lczIwMjIvcGluby5tanMiO2ltcG9ydHtkZWZhdWx0IGFzIEF9ZnJvbSIvcGlub0A3LjExLjAvZXMyMDIyL3Bpbm8ubWpzIjtpbXBvcnR7c2FmZUpzb25TdHJpbmdpZnkgYXMgcH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9zYWZlLWpzb25AXjEuMC4yP3RhcmdldD1lczIwMjIiO3ZhciB5PXtsZXZlbDoiaW5mbyJ9LG49ImN1c3RvbV9jb250ZXh0IixMPTFlMyoxMDI0LHU9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5ub2RlVmFsdWU9ZSx0aGlzLnNpemVJbkJ5dGVzPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0aGlzLm5vZGVWYWx1ZSkubGVuZ3RoLHRoaXMubmV4dD1udWxsfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLm5vZGVWYWx1ZX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnNpemVJbkJ5dGVzfX0sbD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmhlYWQ9bnVsbCx0aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aEluTm9kZXM9MCx0aGlzLm1heFNpemVJbkJ5dGVzPWUsdGhpcy5zaXplSW5CeXRlcz0wfWFwcGVuZChlKXtsZXQgdD1uZXcgdShlKTtpZih0LnNpemU+dGhpcy5tYXhTaXplSW5CeXRlcyl0aHJvdyBuZXcgRXJyb3IoYFtMaW5rZWRMaXN0XSBWYWx1ZSB0b28gYmlnIHRvIGluc2VydCBpbnRvIGxpc3Q6ICR7ZX0gd2l0aCBzaXplICR7dC5zaXplfWApO2Zvcig7dGhpcy5zaXplK3Quc2l6ZT50aGlzLm1heFNpemVJbkJ5dGVzOyl0aGlzLnNoaWZ0KCk7dGhpcy5oZWFkPyh0aGlzLnRhaWwmJih0aGlzLnRhaWwubmV4dD10KSx0aGlzLnRhaWw9dCk6KHRoaXMuaGVhZD10LHRoaXMudGFpbD10KSx0aGlzLmxlbmd0aEluTm9kZXMrKyx0aGlzLnNpemVJbkJ5dGVzKz10LnNpemV9c2hpZnQoKXtpZighdGhpcy5oZWFkKXJldHVybjtsZXQgZT10aGlzLmhlYWQ7dGhpcy5oZWFkPXRoaXMuaGVhZC5uZXh0LHRoaXMuaGVhZHx8KHRoaXMudGFpbD1udWxsKSx0aGlzLmxlbmd0aEluTm9kZXMtLSx0aGlzLnNpemVJbkJ5dGVzLT1lLnNpemV9dG9BcnJheSgpe2xldCBlPVtdLHQ9dGhpcy5oZWFkO2Zvcig7dCE9PW51bGw7KWUucHVzaCh0LnZhbHVlKSx0PXQubmV4dDtyZXR1cm4gZX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMubGVuZ3RoSW5Ob2Rlc31nZXQgc2l6ZSgpe3JldHVybiB0aGlzLnNpemVJbkJ5dGVzfXRvT3JkZXJlZEFycmF5KCl7cmV0dXJuIEFycmF5LmZyb20odGhpcyl9W1N5bWJvbC5pdGVyYXRvcl0oKXtsZXQgZT10aGlzLmhlYWQ7cmV0dXJue25leHQ6KCk9PntpZighZSlyZXR1cm57ZG9uZTohMCx2YWx1ZTpudWxsfTtsZXQgdD1lLnZhbHVlO3JldHVybiBlPWUubmV4dCx7ZG9uZTohMSx2YWx1ZTp0fX19fX0saT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9TCl7dGhpcy5sZXZlbD1lPz8iZXJyb3IiLHRoaXMubGV2ZWxWYWx1ZT1yLnZhbHVlc1t0aGlzLmxldmVsXSx0aGlzLk1BWF9MT0dfU0laRV9JTl9CWVRFUz10LHRoaXMubG9ncz1uZXcgbCh0aGlzLk1BWF9MT0dfU0laRV9JTl9CWVRFUyl9Zm9yd2FyZFRvQ29uc29sZShlLHQpe3Q9PT1yLnZhbHVlcy5lcnJvcj9jb25zb2xlLmVycm9yKGUpOnQ9PT1yLnZhbHVlcy53YXJuP2NvbnNvbGUud2FybihlKTp0PT09ci52YWx1ZXMuZGVidWc/Y29uc29sZS5kZWJ1ZyhlKTp0PT09ci52YWx1ZXMudHJhY2U/Y29uc29sZS50cmFjZShlKTpjb25zb2xlLmxvZyhlKX1hcHBlbmRUb0xvZ3MoZSl7dGhpcy5sb2dzLmFwcGVuZChwKHt0aW1lc3RhbXA6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGxvZzplfSkpO2xldCB0PXR5cGVvZiBlPT0ic3RyaW5nIj9KU09OLnBhcnNlKGUpLmxldmVsOmUubGV2ZWw7dD49dGhpcy5sZXZlbFZhbHVlJiZ0aGlzLmZvcndhcmRUb0NvbnNvbGUoZSx0KX1nZXRMb2dzKCl7cmV0dXJuIHRoaXMubG9nc31jbGVhckxvZ3MoKXt0aGlzLmxvZ3M9bmV3IGwodGhpcy5NQVhfTE9HX1NJWkVfSU5fQllURVMpfWdldExvZ0FycmF5KCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5sb2dzKX1sb2dzVG9CbG9iKGUpe2xldCB0PXRoaXMuZ2V0TG9nQXJyYXkoKTtyZXR1cm4gdC5wdXNoKHAoe2V4dHJhTWV0YWRhdGE6ZX0pKSxuZXcgQmxvYih0LHt0eXBlOiJhcHBsaWNhdGlvbi9qc29uIn0pfX0sYz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9TCl7dGhpcy5iYXNlQ2h1bmtMb2dnZXI9bmV3IGkoZSx0KX13cml0ZShlKXt0aGlzLmJhc2VDaHVua0xvZ2dlci5hcHBlbmRUb0xvZ3MoZSl9Z2V0TG9ncygpe3JldHVybiB0aGlzLmJhc2VDaHVua0xvZ2dlci5nZXRMb2dzKCl9Y2xlYXJMb2dzKCl7dGhpcy5iYXNlQ2h1bmtMb2dnZXIuY2xlYXJMb2dzKCl9Z2V0TG9nQXJyYXkoKXtyZXR1cm4gdGhpcy5iYXNlQ2h1bmtMb2dnZXIuZ2V0TG9nQXJyYXkoKX1sb2dzVG9CbG9iKGUpe3JldHVybiB0aGlzLmJhc2VDaHVua0xvZ2dlci5sb2dzVG9CbG9iKGUpfWRvd25sb2FkTG9nc0Jsb2JJbkJyb3dzZXIoZSl7bGV0IHQ9VVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLmxvZ3NUb0Jsb2IoZSkpLHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3MuaHJlZj10LHMuZG93bmxvYWQ9YHdhbGxldGNvbm5lY3QtbG9ncy0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX0udHh0YCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpLHMuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHMpLFVSTC5yZXZva2VPYmplY3RVUkwodCl9fSxkPWNsYXNze2NvbnN0cnVjdG9yKGUsdD1MKXt0aGlzLmJhc2VDaHVua0xvZ2dlcj1uZXcgaShlLHQpfXdyaXRlKGUpe3RoaXMuYmFzZUNodW5rTG9nZ2VyLmFwcGVuZFRvTG9ncyhlKX1nZXRMb2dzKCl7cmV0dXJuIHRoaXMuYmFzZUNodW5rTG9nZ2VyLmdldExvZ3MoKX1jbGVhckxvZ3MoKXt0aGlzLmJhc2VDaHVua0xvZ2dlci5jbGVhckxvZ3MoKX1nZXRMb2dBcnJheSgpe3JldHVybiB0aGlzLmJhc2VDaHVua0xvZ2dlci5nZXRMb2dBcnJheSgpfWxvZ3NUb0Jsb2IoZSl7cmV0dXJuIHRoaXMuYmFzZUNodW5rTG9nZ2VyLmxvZ3NUb0Jsb2IoZSl9fSx3PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxJPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsYj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxPPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsZj0obyxlLHQpPT5lIGluIG8/dyhvLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpvW2VdPXQsYT0obyxlKT0+e2Zvcih2YXIgdCBpbiBlfHwoZT17fSkpbS5jYWxsKGUsdCkmJmYobyx0LGVbdF0pO2lmKGIpZm9yKHZhciB0IG9mIGIoZSkpTy5jYWxsKGUsdCkmJmYobyx0LGVbdF0pO3JldHVybiBvfSxnPShvLGUpPT5JKG8sQyhlKSk7ZnVuY3Rpb24gaihvKXtyZXR1cm4gZyhhKHt9LG8pLHtsZXZlbDpvPy5sZXZlbHx8eS5sZXZlbH0pfWZ1bmN0aW9uIEIobyxlPW4pe3JldHVybiBvW2VdfHwiIn1mdW5jdGlvbiBTKG8sZSx0PW4pe3JldHVybiBvW3RdPWUsb31mdW5jdGlvbiBfKG8sZT1uKXtsZXQgdD0iIjtyZXR1cm4gdHlwZW9mIG8uYmluZGluZ3M+InUiP3Q9QihvLGUpOnQ9by5iaW5kaW5ncygpLmNvbnRleHR8fCIiLHR9ZnVuY3Rpb24geChvLGUsdD1uKXtsZXQgcz1fKG8sdCk7cmV0dXJuIHMudHJpbSgpP2Ake3N9LyR7ZX1gOmV9ZnVuY3Rpb24gUChvLGUsdD1uKXtsZXQgcz14KG8sZSx0KSxoPW8uY2hpbGQoe2NvbnRleHQ6c30pO3JldHVybiBTKGgscyx0KX1mdW5jdGlvbiBUKG8pe3ZhciBlLHQ7bGV0IHM9bmV3IGMoKGU9by5vcHRzKT09bnVsbD92b2lkIDA6ZS5sZXZlbCxvLm1heFNpemVJbkJ5dGVzKTtyZXR1cm57bG9nZ2VyOnYoZyhhKHt9LG8ub3B0cykse2xldmVsOiJ0cmFjZSIsYnJvd3NlcjpnKGEoe30sKHQ9by5vcHRzKT09bnVsbD92b2lkIDA6dC5icm93c2VyKSx7d3JpdGU6aD0+cy53cml0ZShoKX0pfSkpLGNodW5rTG9nZ2VyQ29udHJvbGxlcjpzfX1mdW5jdGlvbiB6KG8pe3ZhciBlO2xldCB0PW5ldyBkKChlPW8ub3B0cyk9PW51bGw/dm9pZCAwOmUubGV2ZWwsby5tYXhTaXplSW5CeXRlcyk7cmV0dXJue2xvZ2dlcjp2KGcoYSh7fSxvLm9wdHMpLHtsZXZlbDoidHJhY2UifSksdCksY2h1bmtMb2dnZXJDb250cm9sbGVyOnR9fWZ1bmN0aW9uIFUobyl7cmV0dXJuIHR5cGVvZiBvLmxvZ2dlck92ZXJyaWRlPCJ1IiYmdHlwZW9mIG8ubG9nZ2VyT3ZlcnJpZGUhPSJzdHJpbmciP3tsb2dnZXI6by5sb2dnZXJPdmVycmlkZSxjaHVua0xvZ2dlckNvbnRyb2xsZXI6bnVsbH06dHlwZW9mIHdpbmRvdzwidSI/VChvKTp6KG8pfWV4cG9ydHtMIGFzIE1BWF9MT0dfU0laRV9JTl9CWVRFU19ERUZBVUxULG4gYXMgUElOT19DVVNUT01fQ09OVEVYVF9LRVkseSBhcyBQSU5PX0xPR0dFUl9ERUZBVUxUUyx4IGFzIGZvcm1hdENoaWxkTG9nZ2VyQ29udGV4dCxQIGFzIGdlbmVyYXRlQ2hpbGRMb2dnZXIsVCBhcyBnZW5lcmF0ZUNsaWVudExvZ2dlcixVIGFzIGdlbmVyYXRlUGxhdGZvcm1Mb2dnZXIseiBhcyBnZW5lcmF0ZVNlcnZlckxvZ2dlcixCIGFzIGdldEJyb3dzZXJMb2dnZXJDb250ZXh0LGogYXMgZ2V0RGVmYXVsdExvZ2dlck9wdGlvbnMsXyBhcyBnZXRMb2dnZXJDb250ZXh0LEEgYXMgcGlubyxTIGFzIHNldEJyb3dzZXJMb2dnZXJDb250ZXh0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9nZ2VyLm1qcy5tYXA="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/keccak256@5.8.0/es2022/keccak256.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.944Z","timestamp":1785138633944,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/keccak256@5.8.0/es2022/keccak256.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/keccak256@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16520\r\ncf-ray: a21a0dce2c3e569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":271,"size_decoded":572,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"9385586c0771cce6ca890f87e2d2036a","sha1":"7a8f43aeca2bd98143274f7c1f6b17b751995e4c","sha256":"1d5ee5ddba772df06634317fddfcacfdcf7958c6e3449adf41c48bd37f64945a","sha512":"bb2c4d570031281b2ffb43f9679e036949c940c324cca0f9e6ae28ee41bf9aa8a9aa710fdbc4e5e1c946ba5e1e1b217691b6059a66e4c12495c551e3c3e514b9","ssdeep":"","tlshash":"0ad02babc0f944ed71191dbf801cd6b9e03da7849345a1d5b20a8e208191929a7259e5","first_seen":"2025-07-08T23:56:54.822247Z","last_seen":"2026-07-27T07:51:47.196343Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QDUuOC4wICovCmltcG9ydCB0IGZyb20iL2pzLXNoYTNAMC44LjAvZXMyMDIyL2pzLXNoYTMubWpzIjtpbXBvcnR7YXJyYXlpZnkgYXMgY31mcm9tIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7ZnVuY3Rpb24gZShyKXtyZXR1cm4iMHgiK3Qua2VjY2FrXzI1NihjKHIpKX1leHBvcnR7ZSBhcyBrZWNjYWsyNTZ9OwovLyMgc291cmNlTWFwcGluZ1VSTD1rZWNjYWsyNTYubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/ws@7.5.13/es2022/ws.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.155Z","timestamp":1785138634155,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /ws@7.5.13/es2022/ws.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/ws@%5E7.5.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Fri, 17 Jul 2026 16:49:09 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcf7c77569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":818,"size_decoded":876,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (761)","md5":"47d8463ef8c20eec61e057f821d75916","sha1":"c7c93412a43c0e1985566700bdf8031eaf2b19c0","sha256":"b378caba8373e48783925b9bdcc4a1d60f5f9e9a0330b346962fb7dee8fedce9","sha512":"7fe97a32c3721b368d6c82ad59281ed75a15f74f39876e5ec14737d7d27a072441884649e2cbf5d4c69d80b43db53088d7515c62bc4117e8677738f1fbe72141","ssdeep":"","tlshash":"7101ce4a34ebefb212b65189c13dd141f254943d4079f1d4a790c9b2948041b509be77","first_seen":"2026-07-22T19:03:01.518352Z","last_seen":"2026-08-08T17:15:51.300755Z","times_seen":7,"resource_available":true,"data":"LyogZXNtLnNoIC0gd3NANy41LjEzICovCnZhciB3PU9iamVjdC5jcmVhdGU7dmFyIG49T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGY9T2JqZWN0LmdldFByb3RvdHlwZU9mLGI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgZD0odCxlKT0+KCk9Pnt0cnl7cmV0dXJuIGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0c31jYXRjaChvKXt0aHJvdyBlPTAsb319O3ZhciBoPSh0LGUsbyxjKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCByIG9mIGEoZSkpIWIuY2FsbCh0LHIpJiZyIT09byYmbih0LHIse2dldDooKT0+ZVtyXSxlbnVtZXJhYmxlOiEoYz1tKGUscikpfHxjLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIGo9KHQsZSxvKT0+KG89dCE9bnVsbD93KGYodCkpOnt9LGgoZXx8IXR8fCF0Ll9fZXNNb2R1bGU/bihvLCJkZWZhdWx0Iix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwfSk6byx0KSk7dmFyIHU9ZCgocCxpKT0+eyJ1c2Ugc3RyaWN0IjtpLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIndzIGRvZXMgbm90IHdvcmsgaW4gdGhlIGJyb3dzZXIuIEJyb3dzZXIgY2xpZW50cyBtdXN0IHVzZSB0aGUgbmF0aXZlIFdlYlNvY2tldCBvYmplY3QiKX19KTt2YXIgcz1qKHUoKSksaz1zLmRlZmF1bHQ/P3M7ZXhwb3J0e2sgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXdzLm1qcy5tYXA="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@5.2.5/es2022/bn.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.167Z","timestamp":1785138634167,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /bn.js@5.2.5/es2022/bn.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/bn.js@%5E5.2.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 09 Jul 2026 04:41:46 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-cache-status: HIT\r\nage: 16516\r\ncf-ray: a21a0dcf8c78569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":45433,"size_decoded":15580,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (45374)","md5":"3f1e29dbbb3c2cf7d754d2cfc8b05e31","sha1":"a758d4c4cc92db99a8df81ecc13f9dab772e0e0e","sha256":"b93d69e3e4d5dec64dc7895829a68811ec44547c9b0171fc0465ba40db38a952","sha512":"361f0699953fa4d97862d4aa9102864699d675717ac43addfd52ec0a13971333cf1ef8844a43713303693ae2b4b30163dbc6250c6092df65b74d65081a63f30d","ssdeep":"768:cboRMSZeQfilXRpPyzkEwe3RX/veac+qc6pg0uJiGi:yoRMSZbiJRR5i/veac+b0t","tlshash":"48133350e3b9700387ad3e540a1b909de279fa6d1847143cb178c4f6bdaaa40ae7df35","first_seen":"2026-07-27T04:58:21.404855Z","last_seen":"2026-07-27T07:51:47.238148Z","times_seen":3,"resource_available":true,"data":"LyogZXNtLnNoIC0gYm4uanNANS4yLjUgKi8KdmFyIHdpPU9iamVjdC5jcmVhdGU7dmFyIHV0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgeWk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgeGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIF9pPU9iamVjdC5nZXRQcm90b3R5cGVPZixiaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBBaT0oeCxfLHYpPT4oKT0+e2lmKHYpdGhyb3cgdlswXTt0cnl7cmV0dXJuIHgmJihfPXgoeD0wKSksX31jYXRjaChmdCl7dGhyb3cgdj1bZnRdLGZ0fX07dmFyIEJpPSh4LF8pPT4oKT0+e3RyeXtyZXR1cm4gX3x8eCgoXz17ZXhwb3J0czp7fX0pLmV4cG9ydHMsXyksXy5leHBvcnRzfWNhdGNoKHYpe3Rocm93IF89MCx2fX0sU2k9KHgsXyk9Pntmb3IodmFyIHYgaW4gXyl1dCh4LHYse2dldDpfW3ZdLGVudW1lcmFibGU6ITB9KX0sbGk9KHgsXyx2LGZ0KT0+e2lmKF8mJnR5cGVvZiBfPT0ib2JqZWN0Inx8dHlwZW9mIF89PSJmdW5jdGlvbiIpZm9yKGxldCBsIG9mIHhpKF8pKSFiaS5jYWxsKHgsbCkmJmwhPT12JiZ1dCh4LGwse2dldDooKT0+X1tsXSxlbnVtZXJhYmxlOiEoZnQ9eWkoXyxsKSl8fGZ0LmVudW1lcmFibGV9KTtyZXR1cm4geH07dmFyIGtpPSh4LF8sdik9Pih2PXghPW51bGw/d2koX2koeCkpOnt9LGxpKF98fCF4fHwheC5fX2VzTW9kdWxlP3V0KHYsImRlZmF1bHQiLHt2YWx1ZTp4LGVudW1lcmFibGU6ITB9KTp2LHgpKSxxaT14PT5saSh1dCh7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkseCk7dmFyIHVpPXt9O1NpKHVpLHtkZWZhdWx0OigpPT5SaX0pO3ZhciBSaSx2aT1BaSgoKT0+e1JpPXt9fSk7dmFyIG1pPUJpKChkaSx6dCk9PnsoZnVuY3Rpb24oeCxfKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdihvLHQpe2lmKCFvKXRocm93IG5ldyBFcnJvcih0fHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGZ0KG8sdCl7by5zdXBlcl89dDt2YXIgcj1mdW5jdGlvbigpe307ci5wcm90b3R5cGU9dC5wcm90b3R5cGUsby5wcm90b3R5cGU9bmV3IHIsby5wcm90b3R5cGUuY29uc3RydWN0b3I9b31mdW5jdGlvbiBsKG8sdCxyKXtpZihsLmlzQk4obykpcmV0dXJuIG87dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbyE9PW51bGwmJigodD09PSJsZSJ8fHQ9PT0iYmUiKSYmKHI9dCx0PTEwKSx0aGlzLl9pbml0KG98fDAsdHx8MTAscnx8ImJlIikpfXR5cGVvZiB4PT0ib2JqZWN0Ij94LmV4cG9ydHM9bDpfLkJOPWwsbC5CTj1sLGwud29yZFNpemU9MjY7dmFyIGF0O3RyeXt0eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIHdpbmRvdy5CdWZmZXI8InUiP2F0PXdpbmRvdy5CdWZmZXI6YXQ9KHZpKCkscWkodWkpKS5CdWZmZXJ9Y2F0Y2h7fWwuaXNCTj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGw/ITA6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PWwud29yZFNpemUmJkFycmF5LmlzQXJyYXkodC53b3Jkcyl9LGwubWF4PWZ1bmN0aW9uKHQscil7cmV0dXJuIHQuY21wKHIpPjA/dDpyfSxsLm1pbj1mdW5jdGlvbih0LHIpe3JldHVybiB0LmNtcChyKTwwP3Q6cn0sbC5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24odCxyLGUpe2lmKHR5cGVvZiB0PT0ibnVtYmVyIilyZXR1cm4gdGhpcy5faW5pdE51bWJlcih0LHIsZSk7aWYodHlwZW9mIHQ9PSJvYmplY3QiKXJldHVybiB0aGlzLl9pbml0QXJyYXkodCxyLGUpO3I9PT0iaGV4IiYmKHI9MTYpLHYocj09PShyfDApJiZyPj0yJiZyPD0zNiksdD10LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpO3ZhciBoPTA7dFswXT09PSItIiYmKGgrKyx0aGlzLm5lZ2F0aXZlPTEpLGg8dC5sZW5ndGgmJihyPT09MTY/dGhpcy5fcGFyc2VIZXgodCxoLGUpOih0aGlzLl9wYXJzZUJhc2UodCxyLGgpLGU9PT0ibGUiJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkscixlKSkpfSxsLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih0LHIsZSl7dDwwJiYodGhpcy5uZWdhdGl2ZT0xLHQ9LXQpLHQ8NjcxMDg4NjQ/KHRoaXMud29yZHM9W3QmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTEpOnQ8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bdCY2NzEwODg2Myx0LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToodih0PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9W3QmNjcxMDg4NjMsdC82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSxlPT09ImxlIiYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHIsZSl9LGwucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24odCxyLGUpe2lmKHYodHlwZW9mIHQubGVuZ3RoPT0ibnVtYmVyIiksdC5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwodC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgaD0wO2g8dGhpcy5sZW5ndGg7aCsrKXRoaXMud29yZHNbaF09MDt2YXIgbixhLHU9MDtpZihlPT09ImJlIilmb3IoaD10Lmxlbmd0aC0xLG49MDtoPj0wO2gtPTMpYT10W2hdfHRbaC0xXTw8OHx0W2gtMl08PDE2LHRoaXMud29yZHNbbl18PWE8PHUmNjcxMDg4NjMsdGhpcy53b3Jkc1tuKzFdPWE+Pj4yNi11JjY3MTA4ODYzLHUrPTI0LHU+PTI2JiYodS09MjYsbisrKTtlbHNlIGlmKGU9PT0ibGUiKWZvcihoPTAsbj0wO2g8dC5sZW5ndGg7aCs9MylhPXRbaF18dFtoKzFdPDw4fHRbaCsyXTw8MTYsdGhpcy53b3Jkc1tuXXw9YTw8dSY2NzEwODg2Myx0aGlzLndvcmRzW24rMV09YT4+PjI2LXUmNjcxMDg4NjMsdSs9MjQsdT49MjYmJih1LT0yNixuKyspO3JldHVybiB0aGlzLl9zdHJpcCgpfTtmdW5jdGlvbiBFdChvLHQpe3ZhciByPW8uY2hhckNvZGVBdCh0KTtpZihyPj00OCYmcjw9NTcpcmV0dXJuIHItNDg7aWYocj49NjUmJnI8PTcwKXJldHVybiByLTU1O2lmKHI+PTk3JiZyPD0xMDIpcmV0dXJuIHItODc7dighMSwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gIitvKX1mdW5jdGlvbiBPdChvLHQscil7dmFyIGU9RXQobyxyKTtyZXR1cm4gci0xPj10JiYoZXw9RXQobyxyLTEpPDw0KSxlfWwucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih0LHIsZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1yKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBoPTA7aDx0aGlzLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT0wO3ZhciBuPTAsYT0wLHU7aWYoZT09PSJiZSIpZm9yKGg9dC5sZW5ndGgtMTtoPj1yO2gtPTIpdT1PdCh0LHIsaCk8PG4sdGhpcy53b3Jkc1thXXw9dSY2NzEwODg2MyxuPj0xOD8obi09MTgsYSs9MSx0aGlzLndvcmRzW2FdfD11Pj4+MjYpOm4rPTg7ZWxzZXt2YXIgZj10Lmxlbmd0aC1yO2ZvcihoPWYlMj09PTA/cisxOnI7aDx0Lmxlbmd0aDtoKz0yKXU9T3QodCxyLGgpPDxuLHRoaXMud29yZHNbYV18PXUmNjcxMDg4NjMsbj49MTg/KG4tPTE4LGErPTEsdGhpcy53b3Jkc1thXXw9dT4+PjI2KTpuKz04fXRoaXMuX3N0cmlwKCl9O2Z1bmN0aW9uIEt0KG8sdCxyLGUpe2Zvcih2YXIgaD0wLG49MCxhPU1hdGgubWluKG8ubGVuZ3RoLHIpLHU9dDt1PGE7dSsrKXt2YXIgZj1vLmNoYXJDb2RlQXQodSktNDg7aCo9ZSxmPj00OT9uPWYtNDkrMTA6Zj49MTc/bj1mLTE3KzEwOm49Zix2KGY+PTAmJm48ZSwiSW52YWxpZCBjaGFyYWN0ZXIiKSxoKz1ufXJldHVybiBofWwucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24odCxyLGUpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBoPTAsbj0xO248PTY3MTA4ODYzO24qPXIpaCsrO2gtLSxuPW4vcnwwO2Zvcih2YXIgYT10Lmxlbmd0aC1lLHU9YSVoLGY9TWF0aC5taW4oYSxhLXUpK2UsaT0wLHM9ZTtzPGY7cys9aClpPUt0KHQscyxzK2gsciksdGhpcy5pbXVsbihuKSx0aGlzLndvcmRzWzBdK2k8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9aTp0aGlzLl9pYWRkbihpKTtpZih1IT09MCl7dmFyIGQ9MTtmb3IoaT1LdCh0LHMsdC5sZW5ndGgscikscz0wO3M8dTtzKyspZCo9cjt0aGlzLmltdWxuKGQpLHRoaXMud29yZHNbMF0raTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1pOnRoaXMuX2lhZGRuKGkpfXRoaXMuX3N0cmlwKCl9LGwucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24odCl7dC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgcj0wO3I8dGhpcy5sZW5ndGg7cisrKXQud29yZHNbcl09dGhpcy53b3Jkc1tyXTt0Lmxlbmd0aD10aGlzLmxlbmd0aCx0Lm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsdC5yZWQ9dGhpcy5yZWR9O2Z1bmN0aW9uIEZ0KG8sdCl7by53b3Jkcz10LndvcmRzLG8ubGVuZ3RoPXQubGVuZ3RoLG8ubmVnYXRpdmU9dC5uZWdhdGl2ZSxvLnJlZD10LnJlZH1pZihsLnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbih0KXtGdCh0LHRoaXMpfSxsLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBsKG51bGwpO3JldHVybiB0aGlzLmNvcHkodCksdH0sbC5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih0KXtmb3IoO3RoaXMubGVuZ3RoPHQ7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sbC5wcm90b3R5cGUuX3N0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiZ0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdPT09MDspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sbC5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoPT09MSYmdGhpcy53b3Jkc1swXT09PTAmJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LHR5cGVvZiBTeW1ib2w8InUiJiZ0eXBlb2YgU3ltYm9sLmZvcj09ImZ1bmN0aW9uIil0cnl7bC5wcm90b3R5cGVbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKV09ZHR9Y2F0Y2h7bC5wcm90b3R5cGUuaW5zcGVjdD1kdH1lbHNlIGwucHJvdG90eXBlLmluc3BlY3Q9ZHQ7ZnVuY3Rpb24gZHQoKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In12YXIgSHQ9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0scGk9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTWk9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07bC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24odCxyKXt0PXR8fDEwLHI9cnwwfHwxO3ZhciBlO2lmKHQ9PT0xNnx8dD09PSJoZXgiKXtlPSIiO2Zvcih2YXIgaD0wLG49MCxhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciB1PXRoaXMud29yZHNbYV0sZj0oKHU8PGh8bikmMTY3NzcyMTUpLnRvU3RyaW5nKDE2KTtuPXU+Pj4yNC1oJjE2Nzc3MjE1LGgrPTIsaD49MjYmJihoLT0yNixhLS0pLG4hPT0wfHxhIT09dGhpcy5sZW5ndGgtMT9lPUh0WzYtZi5sZW5ndGhdK2YrZTplPWYrZX1mb3IobiE9PTAmJihlPW4udG9TdHJpbmcoMTYpK2UpO2UubGVuZ3RoJXIhPT0wOyllPSIwIitlO3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MCYmKGU9Ii0iK2UpLGV9aWYodD09PSh0fDApJiZ0Pj0yJiZ0PD0zNil7dmFyIGk9cGlbdF0scz1NaVt0XTtlPSIiO3ZhciBkPXRoaXMuY2xvbmUoKTtmb3IoZC5uZWdhdGl2ZT0wOyFkLmlzWmVybygpOyl7dmFyIG09ZC5tb2RybihzKS50b1N0cmluZyh0KTtkPWQuaWRpdm4ocyksZC5pc1plcm8oKT9lPW0rZTplPUh0W2ktbS5sZW5ndGhdK20rZX1mb3IodGhpcy5pc1plcm8oKSYmKGU9IjAiK2UpO2UubGVuZ3RoJXIhPT0wOyllPSIwIitlO3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MCYmKGU9Ii0iK2UpLGV9dighMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxsLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbMF07cmV0dXJuIHRoaXMubGVuZ3RoPT09Mj90Kz10aGlzLndvcmRzWzFdKjY3MTA4ODY0OnRoaXMubGVuZ3RoPT09MyYmdGhpcy53b3Jkc1syXT09PTE/dCs9NDUwMzU5OTYyNzM3MDQ5Nit0aGlzLndvcmRzWzFdKjY3MTA4ODY0OnRoaXMubGVuZ3RoPjImJnYoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLHRoaXMubmVnYXRpdmUhPT0wPy10OnR9LGwucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2LDIpfSxhdCYmKGwucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoYXQsdCxyKX0pLGwucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSx0LHIpfTt2YXIgZ2k9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5hbGxvY1Vuc2FmZT90LmFsbG9jVW5zYWZlKHIpOm5ldyB0KHIpfTtsLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LHIsZSl7dGhpcy5fc3RyaXAoKTt2YXIgaD10aGlzLmJ5dGVMZW5ndGgoKSxuPWV8fE1hdGgubWF4KDEsaCk7dihoPD1uLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksdihuPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBhPWdpKHQsbiksdT1yPT09ImxlIj8iTEUiOiJCRSI7cmV0dXJuIHRoaXNbIl90b0FycmF5TGlrZSIrdV0oYSxoKSxhfSxsLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0wLGg9MCxuPTAsYT0wO248dGhpcy5sZW5ndGg7bisrKXt2YXIgdT10aGlzLndvcmRzW25dPDxhfGg7dFtlKytdPXUmMjU1LGU8dC5sZW5ndGgmJih0W2UrK109dT4+OCYyNTUpLGU8dC5sZW5ndGgmJih0W2UrK109dT4+MTYmMjU1KSxhPT09Nj8oZTx0Lmxlbmd0aCYmKHRbZSsrXT11Pj4yNCYyNTUpLGg9MCxhPTApOihoPXU+Pj4yNCxhKz0yKX1pZihlPHQubGVuZ3RoKWZvcih0W2UrK109aDtlPHQubGVuZ3RoOyl0W2UrK109MH0sbC5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dC5sZW5ndGgtMSxoPTAsbj0wLGE9MDtuPHRoaXMubGVuZ3RoO24rKyl7dmFyIHU9dGhpcy53b3Jkc1tuXTw8YXxoO3RbZS0tXT11JjI1NSxlPj0wJiYodFtlLS1dPXU+PjgmMjU1KSxlPj0wJiYodFtlLS1dPXU+PjE2JjI1NSksYT09PTY/KGU+PTAmJih0W2UtLV09dT4+MjQmMjU1KSxoPTAsYT0wKTooaD11Pj4+MjQsYSs9Mil9aWYoZT49MClmb3IodFtlLS1dPWg7ZT49MDspdFtlLS1dPTB9LE1hdGguY2x6MzI/bC5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbih0KXtyZXR1cm4gMzItTWF0aC5jbHozMih0KX06bC5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbih0KXt2YXIgcj10LGU9MDtyZXR1cm4gcj49NDA5NiYmKGUrPTEzLHI+Pj49MTMpLHI+PTY0JiYoZSs9NyxyPj4+PTcpLHI+PTgmJihlKz00LHI+Pj49NCkscj49MiYmKGUrPTIscj4+Pj0yKSxlK3J9LGwucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih0KXtpZih0PT09MClyZXR1cm4gMjY7dmFyIHI9dCxlPTA7cmV0dXJuKHImODE5MSk9PT0wJiYoZSs9MTMscj4+Pj0xMyksKHImMTI3KT09PTAmJihlKz03LHI+Pj49NyksKHImMTUpPT09MCYmKGUrPTQscj4+Pj00KSwociYzKT09PTAmJihlKz0yLHI+Pj49MiksKHImMSk9PT0wJiZlKyssZX0sbC5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSxyPXRoaXMuX2NvdW50Qml0cyh0KTtyZXR1cm4odGhpcy5sZW5ndGgtMSkqMjYrcn07ZnVuY3Rpb24gY2kobyl7Zm9yKHZhciB0PW5ldyBBcnJheShvLmJpdExlbmd0aCgpKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBlPXIvMjZ8MCxoPXIlMjY7dFtyXT1vLndvcmRzW2VdPj4+aCYxfXJldHVybiB0fWwucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxyPTA7cjx0aGlzLmxlbmd0aDtyKyspe3ZhciBlPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbcl0pO2lmKHQrPWUsZSE9PTI2KWJyZWFrfXJldHVybiB0fSxsLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxsLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubmVnYXRpdmUhPT0wP3RoaXMuYWJzKCkuaW5vdG4odCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxsLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50ZXN0bih0LTEpP3RoaXMubm90bih0KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxsLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MH0sbC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LGwucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LGwucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMud29yZHNbcl09dGhpcy53b3Jkc1tyXXx0LndvcmRzW3JdO3JldHVybiB0aGlzLl9zdHJpcCgpfSxsLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHYoKHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSk9PT0wKSx0aGlzLml1b3IodCl9LGwucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHQpOnQuY2xvbmUoKS5pb3IodGhpcyl9LGwucHJvdG90eXBlLnVvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IodCk6dC5jbG9uZSgpLml1b3IodGhpcyl9LGwucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHQpe3ZhciByO3RoaXMubGVuZ3RoPnQubGVuZ3RoP3I9dDpyPXRoaXM7Zm9yKHZhciBlPTA7ZTxyLmxlbmd0aDtlKyspdGhpcy53b3Jkc1tlXT10aGlzLndvcmRzW2VdJnQud29yZHNbZV07cmV0dXJuIHRoaXMubGVuZ3RoPXIubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LGwucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHYoKHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSk9PT0wKSx0aGlzLml1YW5kKHQpfSxsLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHQpOnQuY2xvbmUoKS5pYW5kKHRoaXMpfSxsLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQodCk6dC5jbG9uZSgpLml1YW5kKHRoaXMpfSxsLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih0KXt2YXIgcixlO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhyPXRoaXMsZT10KToocj10LGU9dGhpcyk7Zm9yKHZhciBoPTA7aDxlLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT1yLndvcmRzW2hdXmUud29yZHNbaF07aWYodGhpcyE9PXIpZm9yKDtoPHIubGVuZ3RoO2grKyl0aGlzLndvcmRzW2hdPXIud29yZHNbaF07cmV0dXJuIHRoaXMubGVuZ3RoPXIubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LGwucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHYoKHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSk9PT0wKSx0aGlzLml1eG9yKHQpfSxsLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaXMpfSxsLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IodCk6dC5jbG9uZSgpLml1eG9yKHRoaXMpfSxsLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih0KXt2KHR5cGVvZiB0PT0ibnVtYmVyIiYmdD49MCk7dmFyIHI9TWF0aC5jZWlsKHQvMjYpfDAsZT10JTI2O3RoaXMuX2V4cGFuZChyKSxlPjAmJnItLTtmb3IodmFyIGg9MDtoPHI7aCsrKXRoaXMud29yZHNbaF09fnRoaXMud29yZHNbaF0mNjcxMDg4NjM7Zm9yKGU+MCYmKHRoaXMud29yZHNbaF09fnRoaXMud29yZHNbaF0mNjcxMDg4NjM+PjI2LWUsaCsrKTtoPHRoaXMubGVuZ3RoO2grKyl0aGlzLndvcmRzW2hdPTA7cmV0dXJuIHRoaXMuX3N0cmlwKCl9LGwucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sbC5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LHIpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgZT10LzI2fDAsaD10JTI2O3JldHVybiB0aGlzLl9leHBhbmQoZSsxKSxyP3RoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXXwxPDxoOnRoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXSZ+KDE8PGgpLHRoaXMuX3N0cmlwKCl9LGwucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCl7dmFyIHI7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJnQubmVnYXRpdmU9PT0wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAscj10aGlzLmlzdWIodCksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKHRoaXMubmVnYXRpdmU9PT0wJiZ0Lm5lZ2F0aXZlIT09MClyZXR1cm4gdC5uZWdhdGl2ZT0wLHI9dGhpcy5pc3ViKHQpLHQubmVnYXRpdmU9MSxyLl9ub3JtU2lnbigpO3ZhciBlLGg7dGhpcy5sZW5ndGg+dC5sZW5ndGg/KGU9dGhpcyxoPXQpOihlPXQsaD10aGlzKTtmb3IodmFyIG49MCxhPTA7YTxoLmxlbmd0aDthKyspcj0oZS53b3Jkc1thXXwwKSsoaC53b3Jkc1thXXwwKStuLHRoaXMud29yZHNbYV09ciY2NzEwODg2MyxuPXI+Pj4yNjtmb3IoO24hPT0wJiZhPGUubGVuZ3RoO2ErKylyPShlLndvcmRzW2FdfDApK24sdGhpcy53b3Jkc1thXT1yJjY3MTA4ODYzLG49cj4+PjI2O2lmKHRoaXMubGVuZ3RoPWUubGVuZ3RoLG4hPT0wKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPW4sdGhpcy5sZW5ndGgrKztlbHNlIGlmKGUhPT10aGlzKWZvcig7YTxlLmxlbmd0aDthKyspdGhpcy53b3Jkc1thXT1lLndvcmRzW2FdO3JldHVybiB0aGlzfSxsLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIHI7cmV0dXJuIHQubmVnYXRpdmUhPT0wJiZ0aGlzLm5lZ2F0aXZlPT09MD8odC5uZWdhdGl2ZT0wLHI9dGhpcy5zdWIodCksdC5uZWdhdGl2ZV49MSxyKTp0Lm5lZ2F0aXZlPT09MCYmdGhpcy5uZWdhdGl2ZSE9PTA/KHRoaXMubmVnYXRpdmU9MCxyPXQuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxyKTp0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh0KTp0LmNsb25lKCkuaWFkZCh0aGlzKX0sbC5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0KXtpZih0Lm5lZ2F0aXZlIT09MCl7dC5uZWdhdGl2ZT0wO3ZhciByPXRoaXMuaWFkZCh0KTtyZXR1cm4gdC5uZWdhdGl2ZT0xLHIuX25vcm1TaWduKCl9ZWxzZSBpZih0aGlzLm5lZ2F0aXZlIT09MClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgZT10aGlzLmNtcCh0KTtpZihlPT09MClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7dmFyIGgsbjtlPjA/KGg9dGhpcyxuPXQpOihoPXQsbj10aGlzKTtmb3IodmFyIGE9MCx1PTA7dTxuLmxlbmd0aDt1Kyspcj0oaC53b3Jkc1t1XXwwKS0obi53b3Jkc1t1XXwwKSthLGE9cj4+MjYsdGhpcy53b3Jkc1t1XT1yJjY3MTA4ODYzO2Zvcig7YSE9PTAmJnU8aC5sZW5ndGg7dSsrKXI9KGgud29yZHNbdV18MCkrYSxhPXI+PjI2LHRoaXMud29yZHNbdV09ciY2NzEwODg2MztpZihhPT09MCYmdTxoLmxlbmd0aCYmaCE9PXRoaXMpZm9yKDt1PGgubGVuZ3RoO3UrKyl0aGlzLndvcmRzW3VdPWgud29yZHNbdV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHUpLGghPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLl9zdHJpcCgpfSxsLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHQpfTtmdW5jdGlvbiBQdChvLHQscil7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXm8ubmVnYXRpdmU7dmFyIGU9by5sZW5ndGgrdC5sZW5ndGh8MDtyLmxlbmd0aD1lLGU9ZS0xfDA7dmFyIGg9by53b3Jkc1swXXwwLG49dC53b3Jkc1swXXwwLGE9aCpuLHU9YSY2NzEwODg2MyxmPWEvNjcxMDg4NjR8MDtyLndvcmRzWzBdPXU7Zm9yKHZhciBpPTE7aTxlO2krKyl7Zm9yKHZhciBzPWY+Pj4yNixkPWYmNjcxMDg4NjMsbT1NYXRoLm1pbihpLHQubGVuZ3RoLTEpLHA9TWF0aC5tYXgoMCxpLW8ubGVuZ3RoKzEpO3A8PW07cCsrKXt2YXIgTT1pLXB8MDtoPW8ud29yZHNbTV18MCxuPXQud29yZHNbcF18MCxhPWgqbitkLHMrPWEvNjcxMDg4NjR8MCxkPWEmNjcxMDg4NjN9ci53b3Jkc1tpXT1kfDAsZj1zfDB9cmV0dXJuIGYhPT0wP3Iud29yZHNbaV09ZnwwOnIubGVuZ3RoLS0sci5fc3RyaXAoKX12YXIgRHQ9ZnVuY3Rpb24odCxyLGUpe3ZhciBoPXQud29yZHMsbj1yLndvcmRzLGE9ZS53b3Jkcyx1PTAsZixpLHMsZD1oWzBdfDAsbT1kJjgxOTEscD1kPj4+MTMsTT1oWzFdfDAsZz1NJjgxOTEsYz1NPj4+MTMsc3Q9aFsyXXwwLHc9c3QmODE5MSx5PXN0Pj4+MTMsR3Q9aFszXXwwLEE9R3QmODE5MSxCPUd0Pj4+MTMsUXQ9aFs0XXwwLFM9UXQmODE5MSxrPVF0Pj4+MTMsVnQ9aFs1XXwwLHE9VnQmODE5MSxSPVZ0Pj4+MTMsWHQ9aFs2XXwwLEw9WHQmODE5MSxaPVh0Pj4+MTMsWXQ9aFs3XXwwLE49WXQmODE5MSxUPVl0Pj4+MTMsJHQ9aFs4XXwwLEk9JHQmODE5MSx6PSR0Pj4+MTMsanQ9aFs5XXwwLEU9anQmODE5MSxPPWp0Pj4+MTMsdGk9blswXXwwLEs9dGkmODE5MSxGPXRpPj4+MTMsaWk9blsxXXwwLEg9aWkmODE5MSxQPWlpPj4+MTMscmk9blsyXXwwLEQ9cmkmODE5MSxVPXJpPj4+MTMsZWk9blszXXwwLEM9ZWkmODE5MSxKPWVpPj4+MTMsaGk9bls0XXwwLFc9aGkmODE5MSxHPWhpPj4+MTMsZmk9bls1XXwwLFE9ZmkmODE5MSxWPWZpPj4+MTMsbmk9bls2XXwwLFg9bmkmODE5MSxZPW5pPj4+MTMsc2k9bls3XXwwLCQ9c2kmODE5MSxqPXNpPj4+MTMsb2k9bls4XXwwLHR0PW9pJjgxOTEsaXQ9b2k+Pj4xMyxhaT1uWzldfDAscnQ9YWkmODE5MSxldD1haT4+PjEzO2UubmVnYXRpdmU9dC5uZWdhdGl2ZV5yLm5lZ2F0aXZlLGUubGVuZ3RoPTE5LGY9TWF0aC5pbXVsKG0sSyksaT1NYXRoLmltdWwobSxGKSxpPWkrTWF0aC5pbXVsKHAsSyl8MCxzPU1hdGguaW11bChwLEYpO3ZhciBNdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0ocysoaT4+PjEzKXwwKSsoTXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoZyxLKSxpPU1hdGguaW11bChnLEYpLGk9aStNYXRoLmltdWwoYyxLKXwwLHM9TWF0aC5pbXVsKGMsRiksZj1mK01hdGguaW11bChtLEgpfDAsaT1pK01hdGguaW11bChtLFApfDAsaT1pK01hdGguaW11bChwLEgpfDAscz1zK01hdGguaW11bChwLFApfDA7dmFyIGd0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyhndD4+PjI2KXwwLGd0Jj02NzEwODg2MyxmPU1hdGguaW11bCh3LEspLGk9TWF0aC5pbXVsKHcsRiksaT1pK01hdGguaW11bCh5LEspfDAscz1NYXRoLmltdWwoeSxGKSxmPWYrTWF0aC5pbXVsKGcsSCl8MCxpPWkrTWF0aC5pbXVsKGcsUCl8MCxpPWkrTWF0aC5pbXVsKGMsSCl8MCxzPXMrTWF0aC5pbXVsKGMsUCl8MCxmPWYrTWF0aC5pbXVsKG0sRCl8MCxpPWkrTWF0aC5pbXVsKG0sVSl8MCxpPWkrTWF0aC5pbXVsKHAsRCl8MCxzPXMrTWF0aC5pbXVsKHAsVSl8MDt2YXIgY3Q9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KHMrKGk+Pj4xMyl8MCkrKGN0Pj4+MjYpfDAsY3QmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEEsSyksaT1NYXRoLmltdWwoQSxGKSxpPWkrTWF0aC5pbXVsKEIsSyl8MCxzPU1hdGguaW11bChCLEYpLGY9ZitNYXRoLmltdWwodyxIKXwwLGk9aStNYXRoLmltdWwodyxQKXwwLGk9aStNYXRoLmltdWwoeSxIKXwwLHM9cytNYXRoLmltdWwoeSxQKXwwLGY9ZitNYXRoLmltdWwoZyxEKXwwLGk9aStNYXRoLmltdWwoZyxVKXwwLGk9aStNYXRoLmltdWwoYyxEKXwwLHM9cytNYXRoLmltdWwoYyxVKXwwLGY9ZitNYXRoLmltdWwobSxDKXwwLGk9aStNYXRoLmltdWwobSxKKXwwLGk9aStNYXRoLmltdWwocCxDKXwwLHM9cytNYXRoLmltdWwocCxKKXwwO3ZhciB3dD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0ocysoaT4+PjEzKXwwKSsod3Q+Pj4yNil8MCx3dCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoUyxLKSxpPU1hdGguaW11bChTLEYpLGk9aStNYXRoLmltdWwoayxLKXwwLHM9TWF0aC5pbXVsKGssRiksZj1mK01hdGguaW11bChBLEgpfDAsaT1pK01hdGguaW11bChBLFApfDAsaT1pK01hdGguaW11bChCLEgpfDAscz1zK01hdGguaW11bChCLFApfDAsZj1mK01hdGguaW11bCh3LEQpfDAsaT1pK01hdGguaW11bCh3LFUpfDAsaT1pK01hdGguaW11bCh5LEQpfDAscz1zK01hdGguaW11bCh5LFUpfDAsZj1mK01hdGguaW11bChnLEMpfDAsaT1pK01hdGguaW11bChnLEopfDAsaT1pK01hdGguaW11bChjLEMpfDAscz1zK01hdGguaW11bChjLEopfDAsZj1mK01hdGguaW11bChtLFcpfDAsaT1pK01hdGguaW11bChtLEcpfDAsaT1pK01hdGguaW11bChwLFcpfDAscz1zK01hdGguaW11bChwLEcpfDA7dmFyIHl0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyh5dD4+PjI2KXwwLHl0Jj02NzEwODg2MyxmPU1hdGguaW11bChxLEspLGk9TWF0aC5pbXVsKHEsRiksaT1pK01hdGguaW11bChSLEspfDAscz1NYXRoLmltdWwoUixGKSxmPWYrTWF0aC5pbXVsKFMsSCl8MCxpPWkrTWF0aC5pbXVsKFMsUCl8MCxpPWkrTWF0aC5pbXVsKGssSCl8MCxzPXMrTWF0aC5pbXVsKGssUCl8MCxmPWYrTWF0aC5pbXVsKEEsRCl8MCxpPWkrTWF0aC5pbXVsKEEsVSl8MCxpPWkrTWF0aC5pbXVsKEIsRCl8MCxzPXMrTWF0aC5pbXVsKEIsVSl8MCxmPWYrTWF0aC5pbXVsKHcsQyl8MCxpPWkrTWF0aC5pbXVsKHcsSil8MCxpPWkrTWF0aC5pbXVsKHksQyl8MCxzPXMrTWF0aC5pbXVsKHksSil8MCxmPWYrTWF0aC5pbXVsKGcsVyl8MCxpPWkrTWF0aC5pbXVsKGcsRyl8MCxpPWkrTWF0aC5pbXVsKGMsVyl8MCxzPXMrTWF0aC5pbXVsKGMsRyl8MCxmPWYrTWF0aC5pbXVsKG0sUSl8MCxpPWkrTWF0aC5pbXVsKG0sVil8MCxpPWkrTWF0aC5pbXVsKHAsUSl8MCxzPXMrTWF0aC5pbXVsKHAsVil8MDt2YXIgeHQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KHMrKGk+Pj4xMyl8MCkrKHh0Pj4+MjYpfDAseHQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEwsSyksaT1NYXRoLmltdWwoTCxGKSxpPWkrTWF0aC5pbXVsKFosSyl8MCxzPU1hdGguaW11bChaLEYpLGY9ZitNYXRoLmltdWwocSxIKXwwLGk9aStNYXRoLmltdWwocSxQKXwwLGk9aStNYXRoLmltdWwoUixIKXwwLHM9cytNYXRoLmltdWwoUixQKXwwLGY9ZitNYXRoLmltdWwoUyxEKXwwLGk9aStNYXRoLmltdWwoUyxVKXwwLGk9aStNYXRoLmltdWwoayxEKXwwLHM9cytNYXRoLmltdWwoayxVKXwwLGY9ZitNYXRoLmltdWwoQSxDKXwwLGk9aStNYXRoLmltdWwoQSxKKXwwLGk9aStNYXRoLmltdWwoQixDKXwwLHM9cytNYXRoLmltdWwoQixKKXwwLGY9ZitNYXRoLmltdWwodyxXKXwwLGk9aStNYXRoLmltdWwodyxHKXwwLGk9aStNYXRoLmltdWwoeSxXKXwwLHM9cytNYXRoLmltdWwoeSxHKXwwLGY9ZitNYXRoLmltdWwoZyxRKXwwLGk9aStNYXRoLmltdWwoZyxWKXwwLGk9aStNYXRoLmltdWwoYyxRKXwwLHM9cytNYXRoLmltdWwoYyxWKXwwLGY9ZitNYXRoLmltdWwobSxYKXwwLGk9aStNYXRoLmltdWwobSxZKXwwLGk9aStNYXRoLmltdWwocCxYKXwwLHM9cytNYXRoLmltdWwocCxZKXwwO3ZhciBfdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0ocysoaT4+PjEzKXwwKSsoX3Q+Pj4yNil8MCxfdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoTixLKSxpPU1hdGguaW11bChOLEYpLGk9aStNYXRoLmltdWwoVCxLKXwwLHM9TWF0aC5pbXVsKFQsRiksZj1mK01hdGguaW11bChMLEgpfDAsaT1pK01hdGguaW11bChMLFApfDAsaT1pK01hdGguaW11bChaLEgpfDAscz1zK01hdGguaW11bChaLFApfDAsZj1mK01hdGguaW11bChxLEQpfDAsaT1pK01hdGguaW11bChxLFUpfDAsaT1pK01hdGguaW11bChSLEQpfDAscz1zK01hdGguaW11bChSLFUpfDAsZj1mK01hdGguaW11bChTLEMpfDAsaT1pK01hdGguaW11bChTLEopfDAsaT1pK01hdGguaW11bChrLEMpfDAscz1zK01hdGguaW11bChrLEopfDAsZj1mK01hdGguaW11bChBLFcpfDAsaT1pK01hdGguaW11bChBLEcpfDAsaT1pK01hdGguaW11bChCLFcpfDAscz1zK01hdGguaW11bChCLEcpfDAsZj1mK01hdGguaW11bCh3LFEpfDAsaT1pK01hdGguaW11bCh3LFYpfDAsaT1pK01hdGguaW11bCh5LFEpfDAscz1zK01hdGguaW11bCh5LFYpfDAsZj1mK01hdGguaW11bChnLFgpfDAsaT1pK01hdGguaW11bChnLFkpfDAsaT1pK01hdGguaW11bChjLFgpfDAscz1zK01hdGguaW11bChjLFkpfDAsZj1mK01hdGguaW11bChtLCQpfDAsaT1pK01hdGguaW11bChtLGopfDAsaT1pK01hdGguaW11bChwLCQpfDAscz1zK01hdGguaW11bChwLGopfDA7dmFyIGJ0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxmPU1hdGguaW11bChJLEspLGk9TWF0aC5pbXVsKEksRiksaT1pK01hdGguaW11bCh6LEspfDAscz1NYXRoLmltdWwoeixGKSxmPWYrTWF0aC5pbXVsKE4sSCl8MCxpPWkrTWF0aC5pbXVsKE4sUCl8MCxpPWkrTWF0aC5pbXVsKFQsSCl8MCxzPXMrTWF0aC5pbXVsKFQsUCl8MCxmPWYrTWF0aC5pbXVsKEwsRCl8MCxpPWkrTWF0aC5pbXVsKEwsVSl8MCxpPWkrTWF0aC5pbXVsKFosRCl8MCxzPXMrTWF0aC5pbXVsKFosVSl8MCxmPWYrTWF0aC5pbXVsKHEsQyl8MCxpPWkrTWF0aC5pbXVsKHEsSil8MCxpPWkrTWF0aC5pbXVsKFIsQyl8MCxzPXMrTWF0aC5pbXVsKFIsSil8MCxmPWYrTWF0aC5pbXVsKFMsVyl8MCxpPWkrTWF0aC5pbXVsKFMsRyl8MCxpPWkrTWF0aC5pbXVsKGssVyl8MCxzPXMrTWF0aC5pbXVsKGssRyl8MCxmPWYrTWF0aC5pbXVsKEEsUSl8MCxpPWkrTWF0aC5pbXVsKEEsVil8MCxpPWkrTWF0aC5pbXVsKEIsUSl8MCxzPXMrTWF0aC5pbXVsKEIsVil8MCxmPWYrTWF0aC5pbXVsKHcsWCl8MCxpPWkrTWF0aC5pbXVsKHcsWSl8MCxpPWkrTWF0aC5pbXVsKHksWCl8MCxzPXMrTWF0aC5pbXVsKHksWSl8MCxmPWYrTWF0aC5pbXVsKGcsJCl8MCxpPWkrTWF0aC5pbXVsKGcsail8MCxpPWkrTWF0aC5pbXVsKGMsJCl8MCxzPXMrTWF0aC5pbXVsKGMsail8MCxmPWYrTWF0aC5pbXVsKG0sdHQpfDAsaT1pK01hdGguaW11bChtLGl0KXwwLGk9aStNYXRoLmltdWwocCx0dCl8MCxzPXMrTWF0aC5pbXVsKHAsaXQpfDA7dmFyIEF0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyhBdD4+PjI2KXwwLEF0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLEspLGk9TWF0aC5pbXVsKEUsRiksaT1pK01hdGguaW11bChPLEspfDAscz1NYXRoLmltdWwoTyxGKSxmPWYrTWF0aC5pbXVsKEksSCl8MCxpPWkrTWF0aC5pbXVsKEksUCl8MCxpPWkrTWF0aC5pbXVsKHosSCl8MCxzPXMrTWF0aC5pbXVsKHosUCl8MCxmPWYrTWF0aC5pbXVsKE4sRCl8MCxpPWkrTWF0aC5pbXVsKE4sVSl8MCxpPWkrTWF0aC5pbXVsKFQsRCl8MCxzPXMrTWF0aC5pbXVsKFQsVSl8MCxmPWYrTWF0aC5pbXVsKEwsQyl8MCxpPWkrTWF0aC5pbXVsKEwsSil8MCxpPWkrTWF0aC5pbXVsKFosQyl8MCxzPXMrTWF0aC5pbXVsKFosSil8MCxmPWYrTWF0aC5pbXVsKHEsVyl8MCxpPWkrTWF0aC5pbXVsKHEsRyl8MCxpPWkrTWF0aC5pbXVsKFIsVyl8MCxzPXMrTWF0aC5pbXVsKFIsRyl8MCxmPWYrTWF0aC5pbXVsKFMsUSl8MCxpPWkrTWF0aC5pbXVsKFMsVil8MCxpPWkrTWF0aC5pbXVsKGssUSl8MCxzPXMrTWF0aC5pbXVsKGssVil8MCxmPWYrTWF0aC5pbXVsKEEsWCl8MCxpPWkrTWF0aC5pbXVsKEEsWSl8MCxpPWkrTWF0aC5pbXVsKEIsWCl8MCxzPXMrTWF0aC5pbXVsKEIsWSl8MCxmPWYrTWF0aC5pbXVsKHcsJCl8MCxpPWkrTWF0aC5pbXVsKHcsail8MCxpPWkrTWF0aC5pbXVsKHksJCl8MCxzPXMrTWF0aC5pbXVsKHksail8MCxmPWYrTWF0aC5pbXVsKGcsdHQpfDAsaT1pK01hdGguaW11bChnLGl0KXwwLGk9aStNYXRoLmltdWwoYyx0dCl8MCxzPXMrTWF0aC5pbXVsKGMsaXQpfDAsZj1mK01hdGguaW11bChtLHJ0KXwwLGk9aStNYXRoLmltdWwobSxldCl8MCxpPWkrTWF0aC5pbXVsKHAscnQpfDAscz1zK01hdGguaW11bChwLGV0KXwwO3ZhciBCdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0ocysoaT4+PjEzKXwwKSsoQnQ+Pj4yNil8MCxCdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoRSxIKSxpPU1hdGguaW11bChFLFApLGk9aStNYXRoLmltdWwoTyxIKXwwLHM9TWF0aC5pbXVsKE8sUCksZj1mK01hdGguaW11bChJLEQpfDAsaT1pK01hdGguaW11bChJLFUpfDAsaT1pK01hdGguaW11bCh6LEQpfDAscz1zK01hdGguaW11bCh6LFUpfDAsZj1mK01hdGguaW11bChOLEMpfDAsaT1pK01hdGguaW11bChOLEopfDAsaT1pK01hdGguaW11bChULEMpfDAscz1zK01hdGguaW11bChULEopfDAsZj1mK01hdGguaW11bChMLFcpfDAsaT1pK01hdGguaW11bChMLEcpfDAsaT1pK01hdGguaW11bChaLFcpfDAscz1zK01hdGguaW11bChaLEcpfDAsZj1mK01hdGguaW11bChxLFEpfDAsaT1pK01hdGguaW11bChxLFYpfDAsaT1pK01hdGguaW11bChSLFEpfDAscz1zK01hdGguaW11bChSLFYpfDAsZj1mK01hdGguaW11bChTLFgpfDAsaT1pK01hdGguaW11bChTLFkpfDAsaT1pK01hdGguaW11bChrLFgpfDAscz1zK01hdGguaW11bChrLFkpfDAsZj1mK01hdGguaW11bChBLCQpfDAsaT1pK01hdGguaW11bChBLGopfDAsaT1pK01hdGguaW11bChCLCQpfDAscz1zK01hdGguaW11bChCLGopfDAsZj1mK01hdGguaW11bCh3LHR0KXwwLGk9aStNYXRoLmltdWwodyxpdCl8MCxpPWkrTWF0aC5pbXVsKHksdHQpfDAscz1zK01hdGguaW11bCh5LGl0KXwwLGY9ZitNYXRoLmltdWwoZyxydCl8MCxpPWkrTWF0aC5pbXVsKGcsZXQpfDAsaT1pK01hdGguaW11bChjLHJ0KXwwLHM9cytNYXRoLmltdWwoYyxldCl8MDt2YXIgU3Q9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KHMrKGk+Pj4xMyl8MCkrKFN0Pj4+MjYpfDAsU3QmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEUsRCksaT1NYXRoLmltdWwoRSxVKSxpPWkrTWF0aC5pbXVsKE8sRCl8MCxzPU1hdGguaW11bChPLFUpLGY9ZitNYXRoLmltdWwoSSxDKXwwLGk9aStNYXRoLmltdWwoSSxKKXwwLGk9aStNYXRoLmltdWwoeixDKXwwLHM9cytNYXRoLmltdWwoeixKKXwwLGY9ZitNYXRoLmltdWwoTixXKXwwLGk9aStNYXRoLmltdWwoTixHKXwwLGk9aStNYXRoLmltdWwoVCxXKXwwLHM9cytNYXRoLmltdWwoVCxHKXwwLGY9ZitNYXRoLmltdWwoTCxRKXwwLGk9aStNYXRoLmltdWwoTCxWKXwwLGk9aStNYXRoLmltdWwoWixRKXwwLHM9cytNYXRoLmltdWwoWixWKXwwLGY9ZitNYXRoLmltdWwocSxYKXwwLGk9aStNYXRoLmltdWwocSxZKXwwLGk9aStNYXRoLmltdWwoUixYKXwwLHM9cytNYXRoLmltdWwoUixZKXwwLGY9ZitNYXRoLmltdWwoUywkKXwwLGk9aStNYXRoLmltdWwoUyxqKXwwLGk9aStNYXRoLmltdWwoaywkKXwwLHM9cytNYXRoLmltdWwoayxqKXwwLGY9ZitNYXRoLmltdWwoQSx0dCl8MCxpPWkrTWF0aC5pbXVsKEEsaXQpfDAsaT1pK01hdGguaW11bChCLHR0KXwwLHM9cytNYXRoLmltdWwoQixpdCl8MCxmPWYrTWF0aC5pbXVsKHcscnQpfDAsaT1pK01hdGguaW11bCh3LGV0KXwwLGk9aStNYXRoLmltdWwoeSxydCl8MCxzPXMrTWF0aC5pbXVsKHksZXQpfDA7dmFyIGt0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyhrdD4+PjI2KXwwLGt0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLEMpLGk9TWF0aC5pbXVsKEUsSiksaT1pK01hdGguaW11bChPLEMpfDAscz1NYXRoLmltdWwoTyxKKSxmPWYrTWF0aC5pbXVsKEksVyl8MCxpPWkrTWF0aC5pbXVsKEksRyl8MCxpPWkrTWF0aC5pbXVsKHosVyl8MCxzPXMrTWF0aC5pbXVsKHosRyl8MCxmPWYrTWF0aC5pbXVsKE4sUSl8MCxpPWkrTWF0aC5pbXVsKE4sVil8MCxpPWkrTWF0aC5pbXVsKFQsUSl8MCxzPXMrTWF0aC5pbXVsKFQsVil8MCxmPWYrTWF0aC5pbXVsKEwsWCl8MCxpPWkrTWF0aC5pbXVsKEwsWSl8MCxpPWkrTWF0aC5pbXVsKFosWCl8MCxzPXMrTWF0aC5pbXVsKFosWSl8MCxmPWYrTWF0aC5pbXVsKHEsJCl8MCxpPWkrTWF0aC5pbXVsKHEsail8MCxpPWkrTWF0aC5pbXVsKFIsJCl8MCxzPXMrTWF0aC5pbXVsKFIsail8MCxmPWYrTWF0aC5pbXVsKFMsdHQpfDAsaT1pK01hdGguaW11bChTLGl0KXwwLGk9aStNYXRoLmltdWwoayx0dCl8MCxzPXMrTWF0aC5pbXVsKGssaXQpfDAsZj1mK01hdGguaW11bChBLHJ0KXwwLGk9aStNYXRoLmltdWwoQSxldCl8MCxpPWkrTWF0aC5pbXVsKEIscnQpfDAscz1zK01hdGguaW11bChCLGV0KXwwO3ZhciBxdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0ocysoaT4+PjEzKXwwKSsocXQ+Pj4yNil8MCxxdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoRSxXKSxpPU1hdGguaW11bChFLEcpLGk9aStNYXRoLmltdWwoTyxXKXwwLHM9TWF0aC5pbXVsKE8sRyksZj1mK01hdGguaW11bChJLFEpfDAsaT1pK01hdGguaW11bChJLFYpfDAsaT1pK01hdGguaW11bCh6LFEpfDAscz1zK01hdGguaW11bCh6LFYpfDAsZj1mK01hdGguaW11bChOLFgpfDAsaT1pK01hdGguaW11bChOLFkpfDAsaT1pK01hdGguaW11bChULFgpfDAscz1zK01hdGguaW11bChULFkpfDAsZj1mK01hdGguaW11bChMLCQpfDAsaT1pK01hdGguaW11bChMLGopfDAsaT1pK01hdGguaW11bChaLCQpfDAscz1zK01hdGguaW11bChaLGopfDAsZj1mK01hdGguaW11bChxLHR0KXwwLGk9aStNYXRoLmltdWwocSxpdCl8MCxpPWkrTWF0aC5pbXVsKFIsdHQpfDAscz1zK01hdGguaW11bChSLGl0KXwwLGY9ZitNYXRoLmltdWwoUyxydCl8MCxpPWkrTWF0aC5pbXVsKFMsZXQpfDAsaT1pK01hdGguaW11bChrLHJ0KXwwLHM9cytNYXRoLmltdWwoayxldCl8MDt2YXIgUnQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KHMrKGk+Pj4xMyl8MCkrKFJ0Pj4+MjYpfDAsUnQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEUsUSksaT1NYXRoLmltdWwoRSxWKSxpPWkrTWF0aC5pbXVsKE8sUSl8MCxzPU1hdGguaW11bChPLFYpLGY9ZitNYXRoLmltdWwoSSxYKXwwLGk9aStNYXRoLmltdWwoSSxZKXwwLGk9aStNYXRoLmltdWwoeixYKXwwLHM9cytNYXRoLmltdWwoeixZKXwwLGY9ZitNYXRoLmltdWwoTiwkKXwwLGk9aStNYXRoLmltdWwoTixqKXwwLGk9aStNYXRoLmltdWwoVCwkKXwwLHM9cytNYXRoLmltdWwoVCxqKXwwLGY9ZitNYXRoLmltdWwoTCx0dCl8MCxpPWkrTWF0aC5pbXVsKEwsaXQpfDAsaT1pK01hdGguaW11bChaLHR0KXwwLHM9cytNYXRoLmltdWwoWixpdCl8MCxmPWYrTWF0aC5pbXVsKHEscnQpfDAsaT1pK01hdGguaW11bChxLGV0KXwwLGk9aStNYXRoLmltdWwoUixydCl8MCxzPXMrTWF0aC5pbXVsKFIsZXQpfDA7dmFyIEx0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyhMdD4+PjI2KXwwLEx0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLFgpLGk9TWF0aC5pbXVsKEUsWSksaT1pK01hdGguaW11bChPLFgpfDAscz1NYXRoLmltdWwoTyxZKSxmPWYrTWF0aC5pbXVsKEksJCl8MCxpPWkrTWF0aC5pbXVsKEksail8MCxpPWkrTWF0aC5pbXVsKHosJCl8MCxzPXMrTWF0aC5pbXVsKHosail8MCxmPWYrTWF0aC5pbXVsKE4sdHQpfDAsaT1pK01hdGguaW11bChOLGl0KXwwLGk9aStNYXRoLmltdWwoVCx0dCl8MCxzPXMrTWF0aC5pbXVsKFQsaXQpfDAsZj1mK01hdGguaW11bChMLHJ0KXwwLGk9aStNYXRoLmltdWwoTCxldCl8MCxpPWkrTWF0aC5pbXVsKFoscnQpfDAscz1zK01hdGguaW11bChaLGV0KXwwO3ZhciBadD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0ocysoaT4+PjEzKXwwKSsoWnQ+Pj4yNil8MCxadCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoRSwkKSxpPU1hdGguaW11bChFLGopLGk9aStNYXRoLmltdWwoTywkKXwwLHM9TWF0aC5pbXVsKE8saiksZj1mK01hdGguaW11bChJLHR0KXwwLGk9aStNYXRoLmltdWwoSSxpdCl8MCxpPWkrTWF0aC5pbXVsKHosdHQpfDAscz1zK01hdGguaW11bCh6LGl0KXwwLGY9ZitNYXRoLmltdWwoTixydCl8MCxpPWkrTWF0aC5pbXVsKE4sZXQpfDAsaT1pK01hdGguaW11bChULHJ0KXwwLHM9cytNYXRoLmltdWwoVCxldCl8MDt2YXIgTnQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KHMrKGk+Pj4xMyl8MCkrKE50Pj4+MjYpfDAsTnQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEUsdHQpLGk9TWF0aC5pbXVsKEUsaXQpLGk9aStNYXRoLmltdWwoTyx0dCl8MCxzPU1hdGguaW11bChPLGl0KSxmPWYrTWF0aC5pbXVsKEkscnQpfDAsaT1pK01hdGguaW11bChJLGV0KXwwLGk9aStNYXRoLmltdWwoeixydCl8MCxzPXMrTWF0aC5pbXVsKHosZXQpfDA7dmFyIFR0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShzKyhpPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLHJ0KSxpPU1hdGguaW11bChFLGV0KSxpPWkrTWF0aC5pbXVsKE8scnQpfDAscz1NYXRoLmltdWwoTyxldCk7dmFyIEl0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDtyZXR1cm4gdT0ocysoaT4+PjEzKXwwKSsoSXQ+Pj4yNil8MCxJdCY9NjcxMDg4NjMsYVswXT1NdCxhWzFdPWd0LGFbMl09Y3QsYVszXT13dCxhWzRdPXl0LGFbNV09eHQsYVs2XT1fdCxhWzddPWJ0LGFbOF09QXQsYVs5XT1CdCxhWzEwXT1TdCxhWzExXT1rdCxhWzEyXT1xdCxhWzEzXT1SdCxhWzE0XT1MdCxhWzE1XT1adCxhWzE2XT1OdCxhWzE3XT1UdCxhWzE4XT1JdCx1IT09MCYmKGFbMTldPXUsZS5sZW5ndGgrKyksZX07TWF0aC5pbXVsfHwoRHQ9UHQpO2Z1bmN0aW9uIFV0KG8sdCxyKXtyLm5lZ2F0aXZlPXQubmVnYXRpdmVeby5uZWdhdGl2ZSxyLmxlbmd0aD1vLmxlbmd0aCt0Lmxlbmd0aDtmb3IodmFyIGU9MCxoPTAsbj0wO248ci5sZW5ndGgtMTtuKyspe3ZhciBhPWg7aD0wO2Zvcih2YXIgdT1lJjY3MTA4ODYzLGY9TWF0aC5taW4obix0Lmxlbmd0aC0xKSxpPU1hdGgubWF4KDAsbi1vLmxlbmd0aCsxKTtpPD1mO2krKyl7dmFyIHM9bi1pLGQ9by53b3Jkc1tzXXwwLG09dC53b3Jkc1tpXXwwLHA9ZCptLE09cCY2NzEwODg2MzthPWErKHAvNjcxMDg4NjR8MCl8MCxNPU0rdXwwLHU9TSY2NzEwODg2MyxhPWErKE0+Pj4yNil8MCxoKz1hPj4+MjYsYSY9NjcxMDg4NjN9ci53b3Jkc1tuXT11LGU9YSxhPWh9cmV0dXJuIGUhPT0wP3Iud29yZHNbbl09ZTpyLmxlbmd0aC0tLHIuX3N0cmlwKCl9ZnVuY3Rpb24gQ3Qobyx0LHIpe3JldHVybiBVdChvLHQscil9bC5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24odCxyKXt2YXIgZSxoPXRoaXMubGVuZ3RoK3QubGVuZ3RoO3JldHVybiB0aGlzLmxlbmd0aD09PTEwJiZ0Lmxlbmd0aD09PTEwP2U9RHQodGhpcyx0LHIpOmg8NjM/ZT1QdCh0aGlzLHQscik6aDwxMDI0P2U9VXQodGhpcyx0LHIpOmU9Q3QodGhpcyx0LHIpLGV9O2Z1bmN0aW9uIG50KG8sdCl7dGhpcy54PW8sdGhpcy55PXR9bnQucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odCl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxlPWwucHJvdG90eXBlLl9jb3VudEJpdHModCktMSxoPTA7aDx0O2grKylyW2hdPXRoaXMucmV2QmluKGgsZSx0KTtyZXR1cm4gcn0sbnQucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih0LHIsZSl7aWYodD09PTB8fHQ9PT1lLTEpcmV0dXJuIHQ7Zm9yKHZhciBoPTAsbj0wO248cjtuKyspaHw9KHQmMSk8PHItbi0xLHQ+Pj0xO3JldHVybiBofSxudC5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih0LHIsZSxoLG4sYSl7Zm9yKHZhciB1PTA7dTxhO3UrKyloW3VdPXJbdFt1XV0sblt1XT1lW3RbdV1dfSxudC5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQscixlLGgsbixhKXt0aGlzLnBlcm11dGUoYSx0LHIsZSxoLG4pO2Zvcih2YXIgdT0xO3U8bjt1PDw9MSlmb3IodmFyIGY9dTw8MSxpPU1hdGguY29zKDIqTWF0aC5QSS9mKSxzPU1hdGguc2luKDIqTWF0aC5QSS9mKSxkPTA7ZDxuO2QrPWYpZm9yKHZhciBtPWkscD1zLE09MDtNPHU7TSsrKXt2YXIgZz1lW2QrTV0sYz1oW2QrTV0sc3Q9ZVtkK00rdV0sdz1oW2QrTSt1XSx5PW0qc3QtcCp3O3c9bSp3K3Aqc3Qsc3Q9eSxlW2QrTV09ZytzdCxoW2QrTV09Yyt3LGVbZCtNK3VdPWctc3QsaFtkK00rdV09Yy13LE0hPT1mJiYoeT1pKm0tcypwLHA9aSpwK3MqbSxtPXkpfX0sbnQucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHQscil7dmFyIGU9TWF0aC5tYXgocix0KXwxLGg9ZSYxLG49MDtmb3IoZT1lLzJ8MDtlO2U9ZT4+PjEpbisrO3JldHVybiAxPDxuKzEraH0sbnQucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LHIsZSl7aWYoIShlPD0xKSlmb3IodmFyIGg9MDtoPGUvMjtoKyspe3ZhciBuPXRbaF07dFtoXT10W2UtaC0xXSx0W2UtaC0xXT1uLG49cltoXSxyW2hdPS1yW2UtaC0xXSxyW2UtaC0xXT0tbn19LG50LnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9MCxoPTA7aDxyLzI7aCsrKXt2YXIgbj1NYXRoLnJvdW5kKHRbMipoKzFdL3IpKjgxOTIrTWF0aC5yb3VuZCh0WzIqaF0vcikrZTt0W2hdPW4mNjcxMDg4NjMsbjw2NzEwODg2ND9lPTA6ZT1uLzY3MTA4ODY0fDB9cmV0dXJuIHR9LG50LnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKHQscixlLGgpe2Zvcih2YXIgbj0wLGE9MDthPHI7YSsrKW49bisodFthXXwwKSxlWzIqYV09biY4MTkxLG49bj4+PjEzLGVbMiphKzFdPW4mODE5MSxuPW4+Pj4xMztmb3IoYT0yKnI7YTxoOysrYSllW2FdPTA7dihuPT09MCksdigobiYtODE5Mik9PT0wKX0sbnQucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24odCl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxlPTA7ZTx0O2UrKylyW2VdPTA7cmV0dXJuIHJ9LG50LnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHQscixlKXt2YXIgaD0yKnRoaXMuZ3Vlc3NMZW4xM2IodC5sZW5ndGgsci5sZW5ndGgpLG49dGhpcy5tYWtlUkJUKGgpLGE9dGhpcy5zdHViKGgpLHU9bmV3IEFycmF5KGgpLGY9bmV3IEFycmF5KGgpLGk9bmV3IEFycmF5KGgpLHM9bmV3IEFycmF5KGgpLGQ9bmV3IEFycmF5KGgpLG09bmV3IEFycmF5KGgpLHA9ZS53b3JkcztwLmxlbmd0aD1oLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLHUsaCksdGhpcy5jb252ZXJ0MTNiKHIud29yZHMsci5sZW5ndGgscyxoKSx0aGlzLnRyYW5zZm9ybSh1LGEsZixpLGgsbiksdGhpcy50cmFuc2Zvcm0ocyxhLGQsbSxoLG4pO2Zvcih2YXIgTT0wO008aDtNKyspe3ZhciBnPWZbTV0qZFtNXS1pW01dKm1bTV07aVtNXT1mW01dKm1bTV0raVtNXSpkW01dLGZbTV09Z31yZXR1cm4gdGhpcy5jb25qdWdhdGUoZixpLGgpLHRoaXMudHJhbnNmb3JtKGYsaSxwLGEsaCxuKSx0aGlzLmNvbmp1Z2F0ZShwLGEsaCksdGhpcy5ub3JtYWxpemUxM2IocCxoKSxlLm5lZ2F0aXZlPXQubmVnYXRpdmVeci5uZWdhdGl2ZSxlLmxlbmd0aD10Lmxlbmd0aCtyLmxlbmd0aCxlLl9zdHJpcCgpfSxsLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IGwobnVsbCk7cmV0dXJuIHIud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3QubGVuZ3RoKSx0aGlzLm11bFRvKHQscil9LGwucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IGwobnVsbCk7cmV0dXJuIHIud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3QubGVuZ3RoKSxDdCh0aGlzLHQscil9LGwucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyh0LHRoaXMpfSxsLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih0KXt2YXIgcj10PDA7ciYmKHQ9LXQpLHYodHlwZW9mIHQ9PSJudW1iZXIiKSx2KHQ8NjcxMDg4NjQpO2Zvcih2YXIgZT0wLGg9MDtoPHRoaXMubGVuZ3RoO2grKyl7dmFyIG49KHRoaXMud29yZHNbaF18MCkqdCxhPShuJjY3MTA4ODYzKSsoZSY2NzEwODg2Myk7ZT4+PTI2LGUrPW4vNjcxMDg4NjR8MCxlKz1hPj4+MjYsdGhpcy53b3Jkc1toXT1hJjY3MTA4ODYzfXJldHVybiBlIT09MCYmKHRoaXMud29yZHNbaF09ZSx0aGlzLmxlbmd0aCsrKSx0PT09MCYmKHRoaXMubGVuZ3RoPTEsdGhpcy5fbm9ybVNpZ24oKSkscj90aGlzLmluZWcoKTp0aGlzfSxsLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4odCl9LGwucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sbC5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sbC5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQpe3ZhciByPWNpKHQpO2lmKHIubGVuZ3RoPT09MClyZXR1cm4gbmV3IGwoMSk7Zm9yKHZhciBlPXRoaXMsaD0wO2g8ci5sZW5ndGgmJnJbaF09PT0wO2grKyxlPWUuc3FyKCkpO2lmKCsraDxyLmxlbmd0aClmb3IodmFyIG49ZS5zcXIoKTtoPHIubGVuZ3RoO2grKyxuPW4uc3FyKCkpcltoXSE9PTAmJihlPWUubXVsKG4pKTtyZXR1cm4gZX0sbC5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgcj10JTI2LGU9KHQtcikvMjYsaD02NzEwODg2Mz4+PjI2LXI8PDI2LXIsbjtpZihyIT09MCl7dmFyIGE9MDtmb3Iobj0wO248dGhpcy5sZW5ndGg7bisrKXt2YXIgdT10aGlzLndvcmRzW25dJmgsZj0odGhpcy53b3Jkc1tuXXwwKS11PDxyO3RoaXMud29yZHNbbl09ZnxhLGE9dT4+PjI2LXJ9YSYmKHRoaXMud29yZHNbbl09YSx0aGlzLmxlbmd0aCsrKX1pZihlIT09MCl7Zm9yKG49dGhpcy5sZW5ndGgtMTtuPj0wO24tLSl0aGlzLndvcmRzW24rZV09dGhpcy53b3Jkc1tuXTtmb3Iobj0wO248ZTtuKyspdGhpcy53b3Jkc1tuXT0wO3RoaXMubGVuZ3RoKz1lfXJldHVybiB0aGlzLl9zdHJpcCgpfSxsLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLm5lZ2F0aXZlPT09MCksdGhpcy5pdXNobG4odCl9LGwucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih0LHIsZSl7dih0eXBlb2YgdD09Im51bWJlciImJnQ+PTApO3ZhciBoO3I/aD0oci1yJTI2KS8yNjpoPTA7dmFyIG49dCUyNixhPU1hdGgubWluKCh0LW4pLzI2LHRoaXMubGVuZ3RoKSx1PTY3MTA4ODYzXjY3MTA4ODYzPj4+bjw8bixmPWU7aWYoaC09YSxoPU1hdGgubWF4KDAsaCksZil7Zm9yKHZhciBpPTA7aTxhO2krKylmLndvcmRzW2ldPXRoaXMud29yZHNbaV07Zi5sZW5ndGg9YX1pZihhIT09MClpZih0aGlzLmxlbmd0aD5hKWZvcih0aGlzLmxlbmd0aC09YSxpPTA7aTx0aGlzLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT10aGlzLndvcmRzW2krYV07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgcz0wO2ZvcihpPXRoaXMubGVuZ3RoLTE7aT49MCYmKHMhPT0wfHxpPj1oKTtpLS0pe3ZhciBkPXRoaXMud29yZHNbaV18MDt0aGlzLndvcmRzW2ldPXM8PDI2LW58ZD4+Pm4scz1kJnV9cmV0dXJuIGYmJnMhPT0wJiYoZi53b3Jkc1tmLmxlbmd0aCsrXT1zKSx0aGlzLmxlbmd0aD09PTAmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sbC5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxyLGUpe3JldHVybiB2KHRoaXMubmVnYXRpdmU9PT0wKSx0aGlzLml1c2hybih0LHIsZSl9LGwucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sbC5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LGwucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sbC5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4odCl9LGwucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgcj10JTI2LGU9KHQtcikvMjYsaD0xPDxyO2lmKHRoaXMubGVuZ3RoPD1lKXJldHVybiExO3ZhciBuPXRoaXMud29yZHNbZV07cmV0dXJuISEobiZoKX0sbC5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgcj10JTI2LGU9KHQtcikvMjY7aWYodih0aGlzLm5lZ2F0aXZlPT09MCwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PWUpcmV0dXJuIHRoaXM7aWYociE9PTAmJmUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihlLHRoaXMubGVuZ3RoKSxyIT09MCl7dmFyIGg9NjcxMDg4NjNeNjcxMDg4NjM+Pj5yPDxyO3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWh9cmV0dXJuIHRoaXMubGVuZ3RoPT09MCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLl9zdHJpcCgpfSxsLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih0KX0sbC5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHYodHlwZW9mIHQ9PSJudW1iZXIiKSx2KHQ8NjcxMDg4NjQpLHQ8MD90aGlzLmlzdWJuKC10KTp0aGlzLm5lZ2F0aXZlIT09MD90aGlzLmxlbmd0aD09PTEmJih0aGlzLndvcmRzWzBdfDApPD10Pyh0aGlzLndvcmRzWzBdPXQtKHRoaXMud29yZHNbMF18MCksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3Vibih0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4odCl9LGwucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbih0KXt0aGlzLndvcmRzWzBdKz10O2Zvcih2YXIgcj0wO3I8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbcl0+PTY3MTA4ODY0O3IrKyl0aGlzLndvcmRzW3JdLT02NzEwODg2NCxyPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3IrMV09MTp0aGlzLndvcmRzW3IrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgscisxKSx0aGlzfSxsLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbih0KXtpZih2KHR5cGVvZiB0PT0ibnVtYmVyIiksdih0PDY3MTA4ODY0KSx0PDApcmV0dXJuIHRoaXMuaWFkZG4oLXQpO2lmKHRoaXMubmVnYXRpdmUhPT0wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbih0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT10LHRoaXMubGVuZ3RoPT09MSYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tyXTwwO3IrKyl0aGlzLndvcmRzW3JdKz02NzEwODg2NCx0aGlzLndvcmRzW3IrMV0tPTE7cmV0dXJuIHRoaXMuX3N0cmlwKCl9LGwucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0KX0sbC5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHQpfSxsLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxsLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sbC5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHQscixlKXt2YXIgaD10Lmxlbmd0aCtlLG47dGhpcy5fZXhwYW5kKGgpO3ZhciBhLHU9MDtmb3Iobj0wO248dC5sZW5ndGg7bisrKXthPSh0aGlzLndvcmRzW24rZV18MCkrdTt2YXIgZj0odC53b3Jkc1tuXXwwKSpyO2EtPWYmNjcxMDg4NjMsdT0oYT4+MjYpLShmLzY3MTA4ODY0fDApLHRoaXMud29yZHNbbitlXT1hJjY3MTA4ODYzfWZvcig7bjx0aGlzLmxlbmd0aC1lO24rKylhPSh0aGlzLndvcmRzW24rZV18MCkrdSx1PWE+PjI2LHRoaXMud29yZHNbbitlXT1hJjY3MTA4ODYzO2lmKHU9PT0wKXJldHVybiB0aGlzLl9zdHJpcCgpO2Zvcih2KHU9PT0tMSksdT0wLG49MDtuPHRoaXMubGVuZ3RoO24rKylhPS0odGhpcy53b3Jkc1tuXXwwKSt1LHU9YT4+MjYsdGhpcy53b3Jkc1tuXT1hJjY3MTA4ODYzO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fc3RyaXAoKX0sbC5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLmxlbmd0aC10Lmxlbmd0aCxoPXRoaXMuY2xvbmUoKSxuPXQsYT1uLndvcmRzW24ubGVuZ3RoLTFdfDAsdT10aGlzLl9jb3VudEJpdHMoYSk7ZT0yNi11LGUhPT0wJiYobj1uLnVzaGxuKGUpLGguaXVzaGxuKGUpLGE9bi53b3Jkc1tuLmxlbmd0aC0xXXwwKTt2YXIgZj1oLmxlbmd0aC1uLmxlbmd0aCxpO2lmKHIhPT0ibW9kIil7aT1uZXcgbChudWxsKSxpLmxlbmd0aD1mKzEsaS53b3Jkcz1uZXcgQXJyYXkoaS5sZW5ndGgpO2Zvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKWkud29yZHNbc109MH12YXIgZD1oLmNsb25lKCkuX2lzaGxuc3VibXVsKG4sMSxmKTtkLm5lZ2F0aXZlPT09MCYmKGg9ZCxpJiYoaS53b3Jkc1tmXT0xKSk7Zm9yKHZhciBtPWYtMTttPj0wO20tLSl7dmFyIHA9KGgud29yZHNbbi5sZW5ndGgrbV18MCkqNjcxMDg4NjQrKGgud29yZHNbbi5sZW5ndGgrbS0xXXwwKTtmb3IocD1NYXRoLm1pbihwL2F8MCw2NzEwODg2MyksaC5faXNobG5zdWJtdWwobixwLG0pO2gubmVnYXRpdmUhPT0wOylwLS0saC5uZWdhdGl2ZT0wLGguX2lzaGxuc3VibXVsKG4sMSxtKSxoLmlzWmVybygpfHwoaC5uZWdhdGl2ZV49MSk7aSYmKGkud29yZHNbbV09cCl9cmV0dXJuIGkmJmkuX3N0cmlwKCksaC5fc3RyaXAoKSxyIT09ImRpdiImJmUhPT0wJiZoLml1c2hybihlKSx7ZGl2Oml8fG51bGwsbW9kOmh9fSxsLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24odCxyLGUpe2lmKHYoIXQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCkpcmV0dXJue2RpdjpuZXcgbCgwKSxtb2Q6bmV3IGwoMCl9O3ZhciBoLG4sYTtyZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTAmJnQubmVnYXRpdmU9PT0wPyhhPXRoaXMubmVnKCkuZGl2bW9kKHQsciksciE9PSJtb2QiJiYoaD1hLmRpdi5uZWcoKSksciE9PSJkaXYiJiYobj1hLm1vZC5uZWcoKSxlJiZuLm5lZ2F0aXZlIT09MCYmbi5pYWRkKHQpKSx7ZGl2OmgsbW9kOm59KTp0aGlzLm5lZ2F0aXZlPT09MCYmdC5uZWdhdGl2ZSE9PTA/KGE9dGhpcy5kaXZtb2QodC5uZWcoKSxyKSxyIT09Im1vZCImJihoPWEuZGl2Lm5lZygpKSx7ZGl2OmgsbW9kOmEubW9kfSk6KHRoaXMubmVnYXRpdmUmdC5uZWdhdGl2ZSkhPT0wPyhhPXRoaXMubmVnKCkuZGl2bW9kKHQubmVnKCksciksciE9PSJkaXYiJiYobj1hLm1vZC5uZWcoKSxlJiZuLm5lZ2F0aXZlIT09MCYmbi5pc3ViKHQpKSx7ZGl2OmEuZGl2LG1vZDpufSk6dC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHQpPDA/e2RpdjpuZXcgbCgwKSxtb2Q6dGhpc306dC5sZW5ndGg9PT0xP3I9PT0iZGl2Ij97ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bnVsbH06cj09PSJtb2QiP3tkaXY6bnVsbCxtb2Q6bmV3IGwodGhpcy5tb2Rybih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbCh0aGlzLm1vZHJuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih0LHIpfSxsLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIsITEpLmRpdn0sbC5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCExKS5tb2R9LGwucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITApLm1vZH0sbC5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5kaXZtb2QodCk7aWYoci5tb2QuaXNaZXJvKCkpcmV0dXJuIHIuZGl2O3ZhciBlPXIubW9kLmFicygpLGg9dC5hYnMoKS5pdXNocm4oMSksbj10LndvcmRzWzBdJjEsYT1lLmNtcChoKTtpZihhPDB8fG49PT0xJiZhPT09MClyZXR1cm4gci5kaXY7dmFyIHU9bmV3IGwoMSk7cmV0dXJuIHUubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZV50Lm5lZ2F0aXZlLHIuZGl2LmlhZGQodSl9LGwucHJvdG90eXBlLm1vZHJuPWZ1bmN0aW9uKHQpe3ZhciByPXQ8MDtyJiYodD0tdCksdih0PD02NzEwODg2Myk7Zm9yKHZhciBlPSgxPDwyNikldCxoPTAsbj10aGlzLmxlbmd0aC0xO24+PTA7bi0tKWg9KGUqaCsodGhpcy53b3Jkc1tuXXwwKSkldDtyZXR1cm4gcj8taDpofSxsLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1vZHJuKHQpfSxsLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih0KXt2YXIgcj10PDA7ciYmKHQ9LXQpLHYodDw9NjcxMDg4NjMpO2Zvcih2YXIgZT0wLGg9dGhpcy5sZW5ndGgtMTtoPj0wO2gtLSl7dmFyIG49KHRoaXMud29yZHNbaF18MCkrZSo2NzEwODg2NDt0aGlzLndvcmRzW2hdPW4vdHwwLGU9biV0fXJldHVybiB0aGlzLl9zdHJpcCgpLHI/dGhpcy5pbmVnKCk6dGhpc30sbC5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHQpfSxsLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHQpe3YodC5uZWdhdGl2ZT09PTApLHYoIXQuaXNaZXJvKCkpO3ZhciByPXRoaXMsZT10LmNsb25lKCk7ci5uZWdhdGl2ZSE9PTA/cj1yLnVtb2QodCk6cj1yLmNsb25lKCk7Zm9yKHZhciBoPW5ldyBsKDEpLG49bmV3IGwoMCksYT1uZXcgbCgwKSx1PW5ldyBsKDEpLGY9MDtyLmlzRXZlbigpJiZlLmlzRXZlbigpOylyLml1c2hybigxKSxlLml1c2hybigxKSwrK2Y7Zm9yKHZhciBpPWUuY2xvbmUoKSxzPXIuY2xvbmUoKTshci5pc1plcm8oKTspe2Zvcih2YXIgZD0wLG09MTsoci53b3Jkc1swXSZtKT09PTAmJmQ8MjY7KytkLG08PD0xKTtpZihkPjApZm9yKHIuaXVzaHJuKGQpO2QtLSA+MDspKGguaXNPZGQoKXx8bi5pc09kZCgpKSYmKGguaWFkZChpKSxuLmlzdWIocykpLGguaXVzaHJuKDEpLG4uaXVzaHJuKDEpO2Zvcih2YXIgcD0wLE09MTsoZS53b3Jkc1swXSZNKT09PTAmJnA8MjY7KytwLE08PD0xKTtpZihwPjApZm9yKGUuaXVzaHJuKHApO3AtLSA+MDspKGEuaXNPZGQoKXx8dS5pc09kZCgpKSYmKGEuaWFkZChpKSx1LmlzdWIocykpLGEuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO3IuY21wKGUpPj0wPyhyLmlzdWIoZSksaC5pc3ViKGEpLG4uaXN1Yih1KSk6KGUuaXN1YihyKSxhLmlzdWIoaCksdS5pc3ViKG4pKX1yZXR1cm57YSxiOnUsZ2NkOmUuaXVzaGxuKGYpfX0sbC5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKHQpe3YodC5uZWdhdGl2ZT09PTApLHYoIXQuaXNaZXJvKCkpO3ZhciByPXRoaXMsZT10LmNsb25lKCk7ci5uZWdhdGl2ZSE9PTA/cj1yLnVtb2QodCk6cj1yLmNsb25lKCk7Zm9yKHZhciBoPW5ldyBsKDEpLG49bmV3IGwoMCksYT1lLmNsb25lKCk7ci5jbXBuKDEpPjAmJmUuY21wbigxKT4wOyl7Zm9yKHZhciB1PTAsZj0xOyhyLndvcmRzWzBdJmYpPT09MCYmdTwyNjsrK3UsZjw8PTEpO2lmKHU+MClmb3Ioci5pdXNocm4odSk7dS0tID4wOyloLmlzT2RkKCkmJmguaWFkZChhKSxoLml1c2hybigxKTtmb3IodmFyIGk9MCxzPTE7KGUud29yZHNbMF0mcyk9PT0wJiZpPDI2OysraSxzPDw9MSk7aWYoaT4wKWZvcihlLml1c2hybihpKTtpLS0gPjA7KW4uaXNPZGQoKSYmbi5pYWRkKGEpLG4uaXVzaHJuKDEpO3IuY21wKGUpPj0wPyhyLmlzdWIoZSksaC5pc3ViKG4pKTooZS5pc3ViKHIpLG4uaXN1YihoKSl9dmFyIGQ7cmV0dXJuIHIuY21wbigxKT09PTA/ZD1oOmQ9bixkLmNtcG4oMCk8MCYmZC5pYWRkKHQpLGR9LGwucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB0LmFicygpO2lmKHQuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHI9dGhpcy5jbG9uZSgpLGU9dC5jbG9uZSgpO3IubmVnYXRpdmU9MCxlLm5lZ2F0aXZlPTA7Zm9yKHZhciBoPTA7ci5pc0V2ZW4oKSYmZS5pc0V2ZW4oKTtoKyspci5pdXNocm4oMSksZS5pdXNocm4oMSk7ZG97Zm9yKDtyLmlzRXZlbigpOylyLml1c2hybigxKTtmb3IoO2UuaXNFdmVuKCk7KWUuaXVzaHJuKDEpO3ZhciBuPXIuY21wKGUpO2lmKG48MCl7dmFyIGE9cjtyPWUsZT1hfWVsc2UgaWYobj09PTB8fGUuY21wbigxKT09PTApYnJlYWs7ci5pc3ViKGUpfXdoaWxlKCEwKTtyZXR1cm4gZS5pdXNobG4oaCl9LGwucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWdjZCh0KS5hLnVtb2QodCl9LGwucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybih0aGlzLndvcmRzWzBdJjEpPT09MH0sbC5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy53b3Jkc1swXSYxKT09PTF9LGwucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndvcmRzWzBdJnR9LGwucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiKTt2YXIgcj10JTI2LGU9KHQtcikvMjYsaD0xPDxyO2lmKHRoaXMubGVuZ3RoPD1lKXJldHVybiB0aGlzLl9leHBhbmQoZSsxKSx0aGlzLndvcmRzW2VdfD1oLHRoaXM7Zm9yKHZhciBuPWgsYT1lO24hPT0wJiZhPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHU9dGhpcy53b3Jkc1thXXwwO3UrPW4sbj11Pj4+MjYsdSY9NjcxMDg4NjMsdGhpcy53b3Jkc1thXT11fXJldHVybiBuIT09MCYmKHRoaXMud29yZHNbYV09bix0aGlzLmxlbmd0aCsrKSx0aGlzfSxsLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGg9PT0xJiZ0aGlzLndvcmRzWzBdPT09MH0sbC5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih0KXt2YXIgcj10PDA7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJiFyKXJldHVybi0xO2lmKHRoaXMubmVnYXRpdmU9PT0wJiZyKXJldHVybiAxO3RoaXMuX3N0cmlwKCk7dmFyIGU7aWYodGhpcy5sZW5ndGg+MSllPTE7ZWxzZXtyJiYodD0tdCksdih0PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgaD10aGlzLndvcmRzWzBdfDA7ZT1oPT09dD8wOmg8dD8tMToxfXJldHVybiB0aGlzLm5lZ2F0aXZlIT09MD8tZXwwOmV9LGwucHJvdG90eXBlLmNtcD1mdW5jdGlvbih0KXtpZih0aGlzLm5lZ2F0aXZlIT09MCYmdC5uZWdhdGl2ZT09PTApcmV0dXJuLTE7aWYodGhpcy5uZWdhdGl2ZT09PTAmJnQubmVnYXRpdmUhPT0wKXJldHVybiAxO3ZhciByPXRoaXMudWNtcCh0KTtyZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTA/LXJ8MDpyfSxsLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHQpe2lmKHRoaXMubGVuZ3RoPnQubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHQubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgcj0wLGU9dGhpcy5sZW5ndGgtMTtlPj0wO2UtLSl7dmFyIGg9dGhpcy53b3Jkc1tlXXwwLG49dC53b3Jkc1tlXXwwO2lmKGghPT1uKXtoPG4/cj0tMTpoPm4mJihyPTEpO2JyZWFrfX1yZXR1cm4gcn0sbC5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk9PT0xfSxsLnByb3RvdHlwZS5ndD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk9PT0xfSxsLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk+PTB9LGwucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk+PTB9LGwucHJvdG90eXBlLmx0bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXBuKHQpPT09LTF9LGwucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT09PS0xfSxsLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk8PTB9LGwucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk8PTB9LGwucHJvdG90eXBlLmVxbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXBuKHQpPT09MH0sbC5wcm90b3R5cGUuZXE9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wKHQpPT09MH0sbC5yZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBiKHQpfSxsLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih0KXtyZXR1cm4gdighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx2KHRoaXMubmVnYXRpdmU9PT0wLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sbC5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiB2KHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LGwucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxsLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sbC5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiB2KHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LGwucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxsLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sbC5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LGwucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxsLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLm11bCh0aGlzLHQpfSxsLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHQpe3JldHVybiB2KHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5pbXVsKHRoaXMsdCl9LGwucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiB2KHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxsLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sbC5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiB2KHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LGwucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gdih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxsLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sbC5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHQpe3JldHVybiB2KHRoaXMucmVkJiYhdC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdCl9O3ZhciBtdD17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIGh0KG8sdCl7dGhpcy5uYW1lPW8sdGhpcy5wPW5ldyBsKHQsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBsKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1odC5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB0PW5ldyBsKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksdH0saHQucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24odCl7dmFyIHI9dCxlO2RvIHRoaXMuc3BsaXQocix0aGlzLnRtcCkscj10aGlzLmltdWxLKHIpLHI9ci5pYWRkKHRoaXMudG1wKSxlPXIuYml0TGVuZ3RoKCk7d2hpbGUoZT50aGlzLm4pO3ZhciBoPWU8dGhpcy5uPy0xOnIudWNtcCh0aGlzLnApO3JldHVybiBoPT09MD8oci53b3Jkc1swXT0wLHIubGVuZ3RoPTEpOmg+MD9yLmlzdWIodGhpcy5wKTpyLnN0cmlwIT09dm9pZCAwP3Iuc3RyaXAoKTpyLl9zdHJpcCgpLHJ9LGh0LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LHIpe3QuaXVzaHJuKHRoaXMubiwwLHIpfSxodC5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW11bCh0aGlzLmspfTtmdW5jdGlvbiBsdCgpe2h0LmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnQobHQsaHQpLGx0LnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT00MTk0MzAzLGg9TWF0aC5taW4odC5sZW5ndGgsOSksbj0wO248aDtuKyspci53b3Jkc1tuXT10LndvcmRzW25dO2lmKHIubGVuZ3RoPWgsdC5sZW5ndGg8PTkpe3Qud29yZHNbMF09MCx0Lmxlbmd0aD0xO3JldHVybn12YXIgYT10LndvcmRzWzldO2ZvcihyLndvcmRzW3IubGVuZ3RoKytdPWEmZSxuPTEwO248dC5sZW5ndGg7bisrKXt2YXIgdT10LndvcmRzW25dfDA7dC53b3Jkc1tuLTEwXT0odSZlKTw8NHxhPj4+MjIsYT11fWE+Pj49MjIsdC53b3Jkc1tuLTEwXT1hLGE9PT0wJiZ0Lmxlbmd0aD4xMD90Lmxlbmd0aC09MTA6dC5sZW5ndGgtPTl9LGx0LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXt0LndvcmRzW3QubGVuZ3RoXT0wLHQud29yZHNbdC5sZW5ndGgrMV09MCx0Lmxlbmd0aCs9Mjtmb3IodmFyIHI9MCxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBoPXQud29yZHNbZV18MDtyKz1oKjk3Nyx0LndvcmRzW2VdPXImNjcxMDg4NjMscj1oKjY0KyhyLzY3MTA4ODY0fDApfXJldHVybiB0LndvcmRzW3QubGVuZ3RoLTFdPT09MCYmKHQubGVuZ3RoLS0sdC53b3Jkc1t0Lmxlbmd0aC0xXT09PTAmJnQubGVuZ3RoLS0pLHR9O2Z1bmN0aW9uIEp0KCl7aHQuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdChKdCxodCk7ZnVuY3Rpb24gV3QoKXtodC5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ0KFd0LGh0KTtmdW5jdGlvbiBwdCgpe2h0LmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnQocHQsaHQpLHB0LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtmb3IodmFyIHI9MCxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBoPSh0LndvcmRzW2VdfDApKjE5K3Isbj1oJjY3MTA4ODYzO2g+Pj49MjYsdC53b3Jkc1tlXT1uLHI9aH1yZXR1cm4gciE9PTAmJih0LndvcmRzW3QubGVuZ3RoKytdPXIpLHR9LGwuX3ByaW1lPWZ1bmN0aW9uKHQpe2lmKG10W3RdKXJldHVybiBtdFt0XTt2YXIgcjtpZih0PT09ImsyNTYiKXI9bmV3IGx0O2Vsc2UgaWYodD09PSJwMjI0IilyPW5ldyBKdDtlbHNlIGlmKHQ9PT0icDE5MiIpcj1uZXcgV3Q7ZWxzZSBpZih0PT09InAyNTUxOSIpcj1uZXcgcHQ7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit0KTtyZXR1cm4gbXRbdF09cixyfTtmdW5jdGlvbiBiKG8pe2lmKHR5cGVvZiBvPT0ic3RyaW5nIil7dmFyIHQ9bC5fcHJpbWUobyk7dGhpcy5tPXQucCx0aGlzLnByaW1lPXR9ZWxzZSB2KG8uZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09byx0aGlzLnByaW1lPW51bGx9Yi5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24odCl7dih0Lm5lZ2F0aXZlPT09MCwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx2KHQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGIucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHQscil7digodC5uZWdhdGl2ZXxyLm5lZ2F0aXZlKT09PTAsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksdih0LnJlZCYmdC5yZWQ9PT1yLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxiLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh0KS5fZm9yY2VSZWQodGhpcyk6KEZ0KHQsdC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpKSx0KX0sYi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlzWmVybygpP3QuY2xvbmUoKTp0aGlzLm0uc3ViKHQpLl9mb3JjZVJlZCh0aGlzKX0sYi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQscil7dGhpcy5fdmVyaWZ5Mih0LHIpO3ZhciBlPXQuYWRkKHIpO3JldHVybiBlLmNtcCh0aGlzLm0pPj0wJiZlLmlzdWIodGhpcy5tKSxlLl9mb3JjZVJlZCh0aGlzKX0sYi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0LHIpe3RoaXMuX3ZlcmlmeTIodCxyKTt2YXIgZT10LmlhZGQocik7cmV0dXJuIGUuY21wKHRoaXMubSk+PTAmJmUuaXN1Yih0aGlzLm0pLGV9LGIucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0LHIpe3RoaXMuX3ZlcmlmeTIodCxyKTt2YXIgZT10LnN1YihyKTtyZXR1cm4gZS5jbXBuKDApPDAmJmUuaWFkZCh0aGlzLm0pLGUuX2ZvcmNlUmVkKHRoaXMpfSxiLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQscil7dGhpcy5fdmVyaWZ5Mih0LHIpO3ZhciBlPXQuaXN1YihyKTtyZXR1cm4gZS5jbXBuKDApPDAmJmUuaWFkZCh0aGlzLm0pLGV9LGIucHJvdG90eXBlLnNobD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLl92ZXJpZnkxKHQpLHRoaXMuaW1vZCh0LnVzaGxuKHIpKX0sYi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsciksdGhpcy5pbW9kKHQuaW11bChyKSl9LGIucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsciksdGhpcy5pbW9kKHQubXVsKHIpKX0sYi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbXVsKHQsdC5jbG9uZSgpKX0sYi5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bCh0LHQpfSxiLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHQpe2lmKHQuaXNaZXJvKCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgcj10aGlzLm0uYW5kbG4oMyk7aWYodihyJTI9PT0xKSxyPT09Myl7dmFyIGU9dGhpcy5tLmFkZChuZXcgbCgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh0LGUpfWZvcih2YXIgaD10aGlzLm0uc3VibigxKSxuPTA7IWguaXNaZXJvKCkmJmguYW5kbG4oMSk9PT0wOyluKyssaC5pdXNocm4oMSk7dighaC5pc1plcm8oKSk7dmFyIGE9bmV3IGwoMSkudG9SZWQodGhpcyksdT1hLnJlZE5lZygpLGY9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLGk9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihpPW5ldyBsKDIqaSppKS50b1JlZCh0aGlzKTt0aGlzLnBvdyhpLGYpLmNtcCh1KSE9PTA7KWkucmVkSUFkZCh1KTtmb3IodmFyIHM9dGhpcy5wb3coaSxoKSxkPXRoaXMucG93KHQsaC5hZGRuKDEpLml1c2hybigxKSksbT10aGlzLnBvdyh0LGgpLHA9bjttLmNtcChhKSE9PTA7KXtmb3IodmFyIE09bSxnPTA7TS5jbXAoYSkhPT0wO2crKylNPU0ucmVkU3FyKCk7dihnPHApO3ZhciBjPXRoaXMucG93KHMsbmV3IGwoMSkuaXVzaGxuKHAtZy0xKSk7ZD1kLnJlZE11bChjKSxzPWMucmVkU3FyKCksbT1tLnJlZE11bChzKSxwPWd9cmV0dXJuIGR9LGIucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7dmFyIHI9dC5faW52bXAodGhpcy5tKTtyZXR1cm4gci5uZWdhdGl2ZSE9PTA/KHIubmVnYXRpdmU9MCx0aGlzLmltb2QocikucmVkTmVnKCkpOnRoaXMuaW1vZChyKX0sYi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQscil7aWYoci5pc1plcm8oKSlyZXR1cm4gbmV3IGwoMSkudG9SZWQodGhpcyk7aWYoci5jbXBuKDEpPT09MClyZXR1cm4gdC5jbG9uZSgpO3ZhciBlPTQsaD1uZXcgQXJyYXkoMTw8ZSk7aFswXT1uZXcgbCgxKS50b1JlZCh0aGlzKSxoWzFdPXQ7Zm9yKHZhciBuPTI7bjxoLmxlbmd0aDtuKyspaFtuXT10aGlzLm11bChoW24tMV0sdCk7dmFyIGE9aFswXSx1PTAsZj0wLGk9ci5iaXRMZW5ndGgoKSUyNjtmb3IoaT09PTAmJihpPTI2KSxuPXIubGVuZ3RoLTE7bj49MDtuLS0pe2Zvcih2YXIgcz1yLndvcmRzW25dLGQ9aS0xO2Q+PTA7ZC0tKXt2YXIgbT1zPj5kJjE7aWYoYSE9PWhbMF0mJihhPXRoaXMuc3FyKGEpKSxtPT09MCYmdT09PTApe2Y9MDtjb250aW51ZX11PDw9MSx1fD1tLGYrKywhKGYhPT1lJiYobiE9PTB8fGQhPT0wKSkmJihhPXRoaXMubXVsKGEsaFt1XSksZj0wLHU9MCl9aT0yNn1yZXR1cm4gYX0sYi5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3ZhciByPXQudW1vZCh0aGlzLm0pO3JldHVybiByPT09dD9yLmNsb25lKCk6cn0sYi5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odCl7dmFyIHI9dC5jbG9uZSgpO3JldHVybiByLnJlZD1udWxsLHJ9LGwubW9udD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG90KHQpfTtmdW5jdGlvbiBvdChvKXtiLmNhbGwodGhpcyxvKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT09MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgbCgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1mdChvdCxiKSxvdC5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC51c2hsbih0aGlzLnNoaWZ0KSl9LG90LnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmltb2QodC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHIucmVkPW51bGwscn0sb3QucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCxyKXtpZih0LmlzWmVybygpfHxyLmlzWmVybygpKXJldHVybiB0LndvcmRzWzBdPTAsdC5sZW5ndGg9MSx0O3ZhciBlPXQuaW11bChyKSxoPWUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLG49ZS5pc3ViKGgpLml1c2hybih0aGlzLnNoaWZ0KSxhPW47cmV0dXJuIG4uY21wKHRoaXMubSk+PTA/YT1uLmlzdWIodGhpcy5tKTpuLmNtcG4oMCk8MCYmKGE9bi5pYWRkKHRoaXMubSkpLGEuX2ZvcmNlUmVkKHRoaXMpfSxvdC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQscil7aWYodC5pc1plcm8oKXx8ci5pc1plcm8oKSlyZXR1cm4gbmV3IGwoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBlPXQubXVsKHIpLGg9ZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksbj1lLmlzdWIoaCkuaXVzaHJuKHRoaXMuc2hpZnQpLGE9bjtyZXR1cm4gbi5jbXAodGhpcy5tKT49MD9hPW4uaXN1Yih0aGlzLm0pOm4uY21wbigwKTwwJiYoYT1uLmlhZGQodGhpcy5tKSksYS5fZm9yY2VSZWQodGhpcyl9LG90LnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaW1vZCh0Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSk7cmV0dXJuIHIuX2ZvcmNlUmVkKHRoaXMpfX0pKHR5cGVvZiB6dD4idSJ8fHp0LGRpKX0pO3ZhciB2dD1raShtaSgpKSx7Qk46Wml9PXZ0LE5pPXZ0LmRlZmF1bHQ/P3Z0O2V4cG9ydHtaaSBhcyBCTixOaSBhcyBkZWZhdWx0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ym4ubWpzLm1hcA=="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/hasher.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.260Z","timestamp":1785138634260,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/hashes/hasher.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@9.9.0/es2022/hashes/sha2.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Wed, 19 Nov 2025 18:21:27 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dd02c91569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":458,"size_decoded":687,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (374)","md5":"d6b44b1f099c51fe366b7e2675715ddb","sha1":"63f9aaf7a4682a668b83e91e3c1fa725a4c092fe","sha256":"44bfd064461927c2e8f161db65053d711e59e3df4b55b76bb3f9bf4c316492ad","sha512":"e04305684919a0a80aa8a72d8bb9b79408384ba7e64ffd74f2a827279bdd7d0793f70006c68a3dbcc282498e84b84075d9dd01d0f92180593a9bb1a43300be5e","ssdeep":"","tlshash":"88f0235c0a34a879af7d03c710a2730753ddd135e008d83ebc291fb453300d158a9a35","first_seen":"2025-07-08T23:56:54.656577Z","last_seen":"2026-08-08T17:15:51.273299Z","times_seen":122,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2hhc2hlcy9oYXNoZXIgKi8KaW1wb3J0KmFzIHMgZnJvbSIuL2RpZ2VzdC5tanMiO3ZhciBpPSh7bmFtZTpuLGNvZGU6ZSxlbmNvZGU6dH0pPT5uZXcgbyhuLGUsdCksbz1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5uYW1lPWUsdGhpcy5jb2RlPXQsdGhpcy5lbmNvZGU9cn1kaWdlc3QoZSl7aWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2xldCB0PXRoaXMuZW5jb2RlKGUpO3JldHVybiB0IGluc3RhbmNlb2YgVWludDhBcnJheT9zLmNyZWF0ZSh0aGlzLmNvZGUsdCk6dC50aGVuKHI9PnMuY3JlYXRlKHRoaXMuY29kZSxyKSl9ZWxzZSB0aHJvdyBFcnJvcigiVW5rbm93biB0eXBlLCBtdXN0IGJlIGJpbmFyeSB0eXBlIil9fTtleHBvcnR7byBhcyBIYXNoZXIsaSBhcyBmcm9tfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFzaGVyLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.576Z","timestamp":1785138633576,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 10:27:57 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbdbe5569f-OSL\r\ncontent-length: 1630\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3911,"size_decoded":2083,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3126)","md5":"db7f772a34458e512ae9abfa672b9cc1","sha1":"d28682392c827f06d8aea1345d1f29697d953313","sha256":"7f9c1f3606514476cfdf277ea35e9f1d985d4c736812b1b60897ac77a747ca3d","sha512":"a46645d3cf7b07e9dc6f445ac592e82b8576ed3424a073587dbea1abf8a603a8dd03f2d2be2c160c11758559a95482c99ea4c3dcdb64f7f57ddb1e41a5ba6e15","ssdeep":"","tlshash":"b78176113be596b1937798e0c06b7103d238ed740c66a83c9259dfd585e0e8648f6fee","first_seen":"2025-11-22T14:57:23.801314Z","last_seen":"2026-07-27T07:51:47.138209Z","times_seen":110,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9jaGFjaGEyMHBvbHkxMzA1QDEuMC4xICovCmltcG9ydCphcyBfXzAkIGZyb20iL0BzdGFibGVsaWIvY2hhY2hhQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX18xJCBmcm9tIi9Ac3RhYmxlbGliL3BvbHkxMzA1QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX18yJCBmcm9tIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzMkIGZyb20iL0BzdGFibGVsaWIvYmluYXJ5QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX180JCBmcm9tIi9Ac3RhYmxlbGliL2NvbnN0YW50LXRpbWVAXjEuMC4xP3RhcmdldD1lczIwMjIiO3ZhciByZXF1aXJlPW49Pntjb25zdCBlPW09PnR5cGVvZiBtLmRlZmF1bHQ8InUiP20uZGVmYXVsdDptLGM9bT0+T2JqZWN0LmFzc2lnbih7X19lc01vZHVsZTp0cnVlfSxtKTtzd2l0Y2gobil7Y2FzZSJAc3RhYmxlbGliL2NoYWNoYSI6cmV0dXJuIGMoX18wJCk7Y2FzZSJAc3RhYmxlbGliL3BvbHkxMzA1IjpyZXR1cm4gYyhfXzEkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18yJCk7Y2FzZSJAc3RhYmxlbGliL2JpbmFyeSI6cmV0dXJuIGMoX18zJCk7Y2FzZSJAc3RhYmxlbGliL2NvbnN0YW50LXRpbWUiOnJldHVybiBjKF9fNCQpO2RlZmF1bHQ6Y29uc29sZS5lcnJvcignbW9kdWxlICInK24rJyIgbm90IGZvdW5kJyk7cmV0dXJuIG51bGw7fX07CnZhciBwPU9iamVjdC5jcmVhdGU7dmFyIGY9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIE49T2JqZWN0LmdldFByb3RvdHlwZU9mLEE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgbz0oZT0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkoZSx7Z2V0Oih0LHIpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dClbcl19KTplKShmdW5jdGlvbihlKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrZSsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgVD0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpO3ZhciBHPShlLHQscixpKT0+e2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpZm9yKGxldCBuIG9mIEModCkpIUEuY2FsbChlLG4pJiZuIT09ciYmZihlLG4se2dldDooKT0+dFtuXSxlbnVtZXJhYmxlOiEoaT12KHQsbikpfHxpLmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIFU9KGUsdCxyKT0+KHI9ZSE9bnVsbD9wKE4oZSkpOnt9LEcodHx8IWV8fCFlLl9fZXNNb2R1bGU/ZihyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSk7dmFyIGM9VCh1PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgdz1vKCJAc3RhYmxlbGliL2NoYWNoYSIpLFA9bygiQHN0YWJsZWxpYi9wb2x5MTMwNSIpLHk9bygiQHN0YWJsZWxpYi93aXBlIiksTD1vKCJAc3RhYmxlbGliL2JpbmFyeSIpLGI9bygiQHN0YWJsZWxpYi9jb25zdGFudC10aW1lIik7dS5LRVlfTEVOR1RIPTMyO3UuTk9OQ0VfTEVOR1RIPTEyO3UuVEFHX0xFTkdUSD0xNjt2YXIgRT1uZXcgVWludDhBcnJheSgxNiksbT0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2lmKHRoaXMubm9uY2VMZW5ndGg9dS5OT05DRV9MRU5HVEgsdGhpcy50YWdMZW5ndGg9dS5UQUdfTEVOR1RILHQubGVuZ3RoIT09dS5LRVlfTEVOR1RIKXRocm93IG5ldyBFcnJvcigiQ2hhQ2hhMjBQb2x5MTMwNSBuZWVkcyAzMi1ieXRlIGtleSIpO3RoaXMuX2tleT1uZXcgVWludDhBcnJheSh0KX1yZXR1cm4gZS5wcm90b3R5cGUuc2VhbD1mdW5jdGlvbih0LHIsaSxuKXtpZih0Lmxlbmd0aD4xNil0aHJvdyBuZXcgRXJyb3IoIkNoYUNoYTIwUG9seTEzMDU6IGluY29ycmVjdCBub25jZSBsZW5ndGgiKTt2YXIgaD1uZXcgVWludDhBcnJheSgxNik7aC5zZXQodCxoLmxlbmd0aC10Lmxlbmd0aCk7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoMzIpO3cuc3RyZWFtKHRoaXMuX2tleSxoLGcsNCk7dmFyIGw9ci5sZW5ndGgrdGhpcy50YWdMZW5ndGgsYTtpZihuKXtpZihuLmxlbmd0aCE9PWwpdGhyb3cgbmV3IEVycm9yKCJDaGFDaGEyMFBvbHkxMzA1OiBpbmNvcnJlY3QgZGVzdGluYXRpb24gbGVuZ3RoIik7YT1ufWVsc2UgYT1uZXcgVWludDhBcnJheShsKTtyZXR1cm4gdy5zdHJlYW1YT1IodGhpcy5fa2V5LGgscixhLDQpLHRoaXMuX2F1dGhlbnRpY2F0ZShhLnN1YmFycmF5KGEubGVuZ3RoLXRoaXMudGFnTGVuZ3RoLGEubGVuZ3RoKSxnLGEuc3ViYXJyYXkoMCxhLmxlbmd0aC10aGlzLnRhZ0xlbmd0aCksaSkseS53aXBlKGgpLGF9LGUucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24odCxyLGksbil7aWYodC5sZW5ndGg+MTYpdGhyb3cgbmV3IEVycm9yKCJDaGFDaGEyMFBvbHkxMzA1OiBpbmNvcnJlY3Qgbm9uY2UgbGVuZ3RoIik7aWYoci5sZW5ndGg8dGhpcy50YWdMZW5ndGgpcmV0dXJuIG51bGw7dmFyIGg9bmV3IFVpbnQ4QXJyYXkoMTYpO2guc2V0KHQsaC5sZW5ndGgtdC5sZW5ndGgpO3ZhciBnPW5ldyBVaW50OEFycmF5KDMyKTt3LnN0cmVhbSh0aGlzLl9rZXksaCxnLDQpO3ZhciBsPW5ldyBVaW50OEFycmF5KHRoaXMudGFnTGVuZ3RoKTtpZih0aGlzLl9hdXRoZW50aWNhdGUobCxnLHIuc3ViYXJyYXkoMCxyLmxlbmd0aC10aGlzLnRhZ0xlbmd0aCksaSksIWIuZXF1YWwobCxyLnN1YmFycmF5KHIubGVuZ3RoLXRoaXMudGFnTGVuZ3RoLHIubGVuZ3RoKSkpcmV0dXJuIG51bGw7dmFyIGE9ci5sZW5ndGgtdGhpcy50YWdMZW5ndGgscztpZihuKXtpZihuLmxlbmd0aCE9PWEpdGhyb3cgbmV3IEVycm9yKCJDaGFDaGEyMFBvbHkxMzA1OiBpbmNvcnJlY3QgZGVzdGluYXRpb24gbGVuZ3RoIik7cz1ufWVsc2Ugcz1uZXcgVWludDhBcnJheShhKTtyZXR1cm4gdy5zdHJlYW1YT1IodGhpcy5fa2V5LGgsci5zdWJhcnJheSgwLHIubGVuZ3RoLXRoaXMudGFnTGVuZ3RoKSxzLDQpLHkud2lwZShoKSxzfSxlLnByb3RvdHlwZS5jbGVhbj1mdW5jdGlvbigpe3JldHVybiB5LndpcGUodGhpcy5fa2V5KSx0aGlzfSxlLnByb3RvdHlwZS5fYXV0aGVudGljYXRlPWZ1bmN0aW9uKHQscixpLG4pe3ZhciBoPW5ldyBQLlBvbHkxMzA1KHIpO24mJihoLnVwZGF0ZShuKSxuLmxlbmd0aCUxNj4wJiZoLnVwZGF0ZShFLnN1YmFycmF5KG4ubGVuZ3RoJTE2KSkpLGgudXBkYXRlKGkpLGkubGVuZ3RoJTE2PjAmJmgudXBkYXRlKEUuc3ViYXJyYXkoaS5sZW5ndGglMTYpKTt2YXIgZz1uZXcgVWludDhBcnJheSg4KTtuJiZMLndyaXRlVWludDY0TEUobi5sZW5ndGgsZyksaC51cGRhdGUoZyksTC53cml0ZVVpbnQ2NExFKGkubGVuZ3RoLGcpLGgudXBkYXRlKGcpO2Zvcih2YXIgbD1oLmRpZ2VzdCgpLGE9MDthPGwubGVuZ3RoO2ErKyl0W2FdPWxbYV07aC5jbGVhbigpLHkud2lwZShsKSx5LndpcGUoZyl9LGV9KSgpO3UuQ2hhQ2hhMjBQb2x5MTMwNT1tfSk7dmFyIF89VShjKCkpLHtfX2VzTW9kdWxlOmssS0VZX0xFTkdUSDpxLE5PTkNFX0xFTkdUSDpLLFRBR19MRU5HVEg6aixDaGFDaGEyMFBvbHkxMzA1OlJ9PV8sWT1fLmRlZmF1bHQ/P187ZXhwb3J0e1IgYXMgQ2hhQ2hhMjBQb2x5MTMwNSxxIGFzIEtFWV9MRU5HVEgsSyBhcyBOT05DRV9MRU5HVEgsaiBhcyBUQUdfTEVOR1RILGsgYXMgX19lc01vZHVsZSxZIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jaGFjaGEyMHBvbHkxMzA1Lm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/wipe@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.715Z","timestamp":1785138633715,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/wipe@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/wipe@1.0.1/es2022/wipe.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/wipe@1.0.1/lib/wipe.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccbc09569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":159,"size_decoded":632,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"c9eb9198403cc9facb19e023c0d34ea6","sha1":"7a9b448d8dfd76cef3ffef57f40f82a5e2ed902b","sha256":"0c52c62c45a9ba3f87ebd069414a22a6313f21653ab67cab6bf41565cc21136d","sha512":"7447078cf99cae1d94d9fea53592aa2dde0eee86296436a346d1a4545886ea66e0397be046a73d786469a2644a049484d02a856e91233ea7625c2420289e3c1b","ssdeep":"","tlshash":"57c04c12029bba782330ad87957ff22a9351064c94f358bd12e5ce41d1ce8e19c377f6","first_seen":"2025-07-08T23:56:54.827998Z","last_seen":"2026-07-27T07:51:47.198716Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi93aXBlQDEuMC4xICovCmV4cG9ydCAqIGZyb20gIi9Ac3RhYmxlbGliL3dpcGVAMS4wLjEvZXMyMDIyL3dpcGUubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9Ac3RhYmxlbGliL3dpcGVAMS4wLjEvZXMyMDIyL3dpcGUubWpzIjsK"}},"time_used":120,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":120,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/from-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.735Z","timestamp":1785138633735,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/from-string.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dccdc12569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":425,"size_decoded":675,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"e3b9dce510c3161ca7b3fe1c90147ca4","sha1":"30a0a64af16183f6bb0f5e65912c633516f69bcd","sha256":"d196a49a86bfc8ec208f4f21bcb21cfe5ab60a8ac8b9758764815761fc23745d","sha512":"497b0b8ee5a5058413be55f434995848a507686756d4bd19b0f4b99fc06d4dcaf2e5252814a1202fd126c9136379de38352183650a8dbf1575eb0cfbf7e648ab","ssdeep":"","tlshash":"41e0a3a7c67560a61bd63cd04097acdf01e4f64de8910080ed100f1d35d24f4d4b3c35","first_seen":"2025-07-08T23:56:54.713305Z","last_seen":"2026-07-27T07:51:47.240632Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvZnJvbS1zdHJpbmcgKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwppbXBvcnQgZSBmcm9tIi4vZXNtL3NyYy91dGlsL2Jhc2VzLm1qcyI7ZnVuY3Rpb24gdChvLHI9InV0ZjgiKXtsZXQgZj1lW3JdO2lmKCFmKXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZW5jb2RpbmcgIiR7cn0iYCk7cmV0dXJuKHI9PT0idXRmOCJ8fHI9PT0idXRmLTgiKSYmX19CdWZmZXIkIT1udWxsJiZfX0J1ZmZlciQuZnJvbSE9bnVsbD9fX0J1ZmZlciQuZnJvbShvLCJ1dGY4Iik6Zi5kZWNvZGVyLmRlY29kZShgJHtmLnByZWZpeH0ke299YCl9ZXhwb3J0e3QgYXMgZnJvbVN0cmluZ307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWZyb20tc3RyaW5nLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bignumber@5.8.0/es2022/bignumber.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.964Z","timestamp":1785138633964,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/bignumber@5.8.0/es2022/bignumber.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/bignumber@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:12:23 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16519\r\ncf-ray: a21a0dce4c4b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":10209,"size_decoded":4184,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (10124)","md5":"bdbf2f6d23557a34d5010916a83aecae","sha1":"d68107cdc9c80986984a815bc47952a51a8a4264","sha256":"9863d258a1cf883eb52811147a85fc4405c7554d33ad0702196576041fa34ac2","sha512":"df7120f8fe9eddb341628e465956d3c1ae132cc2ca677bc1964b80ee6878e120e3dd8b24e37e1d751f5b0cb095523df0ab981442345e2980022e726bdb3196f6","ssdeep":"192:I6hQK69LR5PhCN1KE9nLGsY/Ri2yjpkc+4RF:2jCb35vsv4RF","tlshash":"d92233b072a2f01687c544e404b98547f3a8cea0a36a04fff16d2ca53ba5c4566f7f74","first_seen":"2025-07-08T23:56:54.676429Z","last_seen":"2026-07-27T07:51:47.157588Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYmlnbnVtYmVyQDUuOC4wICovCmltcG9ydCBEIGZyb20iL2JuLmpzQF41LjIuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7aGV4bGlmeSBhcyBaLGlzQnl0ZXMgYXMgUixpc0hleFN0cmluZyBhcyBBfWZyb20iL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7TG9nZ2VyIGFzIGR9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjt2YXIgRj0iYmlnbnVtYmVyLzUuOC4wIjt2YXIgeD1ELkJOLGE9bmV3IGQoRiksVT17fSxPPTkwMDcxOTkyNTQ3NDA5OTE7ZnVuY3Rpb24gSChyKXtyZXR1cm4gciE9bnVsbCYmKG0uaXNCaWdOdW1iZXIocil8fHR5cGVvZiByPT0ibnVtYmVyIiYmciUxPT09MHx8dHlwZW9mIHI9PSJzdHJpbmciJiYhIXIubWF0Y2goL14tP1swLTldKyQvKXx8QShyKXx8dHlwZW9mIHI9PSJiaWdpbnQifHxSKHIpKX12YXIgUD0hMSxtPWNsYXNzIHJ7Y29uc3RydWN0b3IodCxpKXt0IT09VSYmYS50aHJvd0Vycm9yKCJjYW5ub3QgY2FsbCBjb25zdHJ1Y3RvciBkaXJlY3RseTsgdXNlIEJpZ051bWJlci5mcm9tIixkLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se29wZXJhdGlvbjoibmV3IChCaWdOdW1iZXIpIn0pLHRoaXMuX2hleD1pLHRoaXMuX2lzQmlnTnVtYmVyPSEwLE9iamVjdC5mcmVlemUodGhpcyl9ZnJvbVR3b3ModCl7cmV0dXJuIGgobih0aGlzKS5mcm9tVHdvcyh0KSl9dG9Ud29zKHQpe3JldHVybiBoKG4odGhpcykudG9Ud29zKHQpKX1hYnMoKXtyZXR1cm4gdGhpcy5faGV4WzBdPT09Ii0iP3IuZnJvbSh0aGlzLl9oZXguc3Vic3RyaW5nKDEpKTp0aGlzfWFkZCh0KXtyZXR1cm4gaChuKHRoaXMpLmFkZChuKHQpKSl9c3ViKHQpe3JldHVybiBoKG4odGhpcykuc3ViKG4odCkpKX1kaXYodCl7cmV0dXJuIHIuZnJvbSh0KS5pc1plcm8oKSYmZygiZGl2aXNpb24tYnktemVybyIsImRpdiIpLGgobih0aGlzKS5kaXYobih0KSkpfW11bCh0KXtyZXR1cm4gaChuKHRoaXMpLm11bChuKHQpKSl9bW9kKHQpe2xldCBpPW4odCk7cmV0dXJuIGkuaXNOZWcoKSYmZygiZGl2aXNpb24tYnktemVybyIsIm1vZCIpLGgobih0aGlzKS51bW9kKGkpKX1wb3codCl7bGV0IGk9bih0KTtyZXR1cm4gaS5pc05lZygpJiZnKCJuZWdhdGl2ZS1wb3dlciIsInBvdyIpLGgobih0aGlzKS5wb3coaSkpfWFuZCh0KXtsZXQgaT1uKHQpO3JldHVybih0aGlzLmlzTmVnYXRpdmUoKXx8aS5pc05lZygpKSYmZygidW5ib3VuZC1iaXR3aXNlLXJlc3VsdCIsImFuZCIpLGgobih0aGlzKS5hbmQoaSkpfW9yKHQpe2xldCBpPW4odCk7cmV0dXJuKHRoaXMuaXNOZWdhdGl2ZSgpfHxpLmlzTmVnKCkpJiZnKCJ1bmJvdW5kLWJpdHdpc2UtcmVzdWx0Iiwib3IiKSxoKG4odGhpcykub3IoaSkpfXhvcih0KXtsZXQgaT1uKHQpO3JldHVybih0aGlzLmlzTmVnYXRpdmUoKXx8aS5pc05lZygpKSYmZygidW5ib3VuZC1iaXR3aXNlLXJlc3VsdCIsInhvciIpLGgobih0aGlzKS54b3IoaSkpfW1hc2sodCl7cmV0dXJuKHRoaXMuaXNOZWdhdGl2ZSgpfHx0PDApJiZnKCJuZWdhdGl2ZS13aWR0aCIsIm1hc2siKSxoKG4odGhpcykubWFza24odCkpfXNobCh0KXtyZXR1cm4odGhpcy5pc05lZ2F0aXZlKCl8fHQ8MCkmJmcoIm5lZ2F0aXZlLXdpZHRoIiwic2hsIiksaChuKHRoaXMpLnNobG4odCkpfXNocih0KXtyZXR1cm4odGhpcy5pc05lZ2F0aXZlKCl8fHQ8MCkmJmcoIm5lZ2F0aXZlLXdpZHRoIiwic2hyIiksaChuKHRoaXMpLnNocm4odCkpfWVxKHQpe3JldHVybiBuKHRoaXMpLmVxKG4odCkpfWx0KHQpe3JldHVybiBuKHRoaXMpLmx0KG4odCkpfWx0ZSh0KXtyZXR1cm4gbih0aGlzKS5sdGUobih0KSl9Z3QodCl7cmV0dXJuIG4odGhpcykuZ3Qobih0KSl9Z3RlKHQpe3JldHVybiBuKHRoaXMpLmd0ZShuKHQpKX1pc05lZ2F0aXZlKCl7cmV0dXJuIHRoaXMuX2hleFswXT09PSItIn1pc1plcm8oKXtyZXR1cm4gbih0aGlzKS5pc1plcm8oKX10b051bWJlcigpe3RyeXtyZXR1cm4gbih0aGlzKS50b051bWJlcigpfWNhdGNoe2coIm92ZXJmbG93IiwidG9OdW1iZXIiLHRoaXMudG9TdHJpbmcoKSl9cmV0dXJuIG51bGx9dG9CaWdJbnQoKXt0cnl7cmV0dXJuIEJpZ0ludCh0aGlzLnRvU3RyaW5nKCkpfWNhdGNoe31yZXR1cm4gYS50aHJvd0Vycm9yKCJ0aGlzIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgQmlnSW50IixkLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se3ZhbHVlOnRoaXMudG9TdHJpbmcoKX0pfXRvU3RyaW5nKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MCYmKGFyZ3VtZW50c1swXT09PTEwP1B8fChQPSEwLGEud2FybigiQmlnTnVtYmVyLnRvU3RyaW5nIGRvZXMgbm90IGFjY2VwdCBhbnkgcGFyYW1ldGVyczsgYmFzZS0xMCBpcyBhc3N1bWVkIikpOmFyZ3VtZW50c1swXT09PTE2P2EudGhyb3dFcnJvcigiQmlnTnVtYmVyLnRvU3RyaW5nIGRvZXMgbm90IGFjY2VwdCBhbnkgcGFyYW1ldGVyczsgdXNlIGJpZ051bWJlci50b0hleFN0cmluZygpIixkLmVycm9ycy5VTkVYUEVDVEVEX0FSR1VNRU5ULHt9KTphLnRocm93RXJyb3IoIkJpZ051bWJlci50b1N0cmluZyBkb2VzIG5vdCBhY2NlcHQgcGFyYW1ldGVycyIsZC5lcnJvcnMuVU5FWFBFQ1RFRF9BUkdVTUVOVCx7fSkpLG4odGhpcykudG9TdHJpbmcoMTApfXRvSGV4U3RyaW5nKCl7cmV0dXJuIHRoaXMuX2hleH10b0pTT04odCl7cmV0dXJue3R5cGU6IkJpZ051bWJlciIsaGV4OnRoaXMudG9IZXhTdHJpbmcoKX19c3RhdGljIGZyb20odCl7aWYodCBpbnN0YW5jZW9mIHIpcmV0dXJuIHQ7aWYodHlwZW9mIHQ9PSJzdHJpbmciKXJldHVybiB0Lm1hdGNoKC9eLT8weFswLTlhLWZdKyQvaSk/bmV3IHIoVSxiKHQpKTp0Lm1hdGNoKC9eLT9bMC05XSskLyk/bmV3IHIoVSxiKG5ldyB4KHQpKSk6YS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgQmlnTnVtYmVyIHN0cmluZyIsInZhbHVlIix0KTtpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJuIHQlMSYmZygidW5kZXJmbG93IiwiQmlnTnVtYmVyLmZyb20iLHQpLCh0Pj1PfHx0PD0tTykmJmcoIm92ZXJmbG93IiwiQmlnTnVtYmVyLmZyb20iLHQpLHIuZnJvbShTdHJpbmcodCkpO2xldCBpPXQ7aWYodHlwZW9mIGk9PSJiaWdpbnQiKXJldHVybiByLmZyb20oaS50b1N0cmluZygpKTtpZihSKGkpKXJldHVybiByLmZyb20oWihpKSk7aWYoaSlpZihpLnRvSGV4U3RyaW5nKXtsZXQgZT1pLnRvSGV4U3RyaW5nKCk7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiByLmZyb20oZSl9ZWxzZXtsZXQgZT1pLl9oZXg7aWYoZT09bnVsbCYmaS50eXBlPT09IkJpZ051bWJlciImJihlPWkuaGV4KSx0eXBlb2YgZT09InN0cmluZyImJihBKGUpfHxlWzBdPT09Ii0iJiZBKGUuc3Vic3RyaW5nKDEpKSkpcmV0dXJuIHIuZnJvbShlKX1yZXR1cm4gYS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgQmlnTnVtYmVyIHZhbHVlIiwidmFsdWUiLHQpfXN0YXRpYyBpc0JpZ051bWJlcih0KXtyZXR1cm4hISh0JiZ0Ll9pc0JpZ051bWJlcil9fTtmdW5jdGlvbiBiKHIpe2lmKHR5cGVvZiByIT0ic3RyaW5nIilyZXR1cm4gYihyLnRvU3RyaW5nKDE2KSk7aWYoclswXT09PSItIilyZXR1cm4gcj1yLnN1YnN0cmluZygxKSxyWzBdPT09Ii0iJiZhLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBoZXgiLCJ2YWx1ZSIscikscj1iKHIpLHI9PT0iMHgwMCI/cjoiLSIrcjtpZihyLnN1YnN0cmluZygwLDIpIT09IjB4IiYmKHI9IjB4IityKSxyPT09IjB4IilyZXR1cm4iMHgwMCI7Zm9yKHIubGVuZ3RoJTImJihyPSIweDAiK3Iuc3Vic3RyaW5nKDIpKTtyLmxlbmd0aD40JiZyLnN1YnN0cmluZygwLDQpPT09IjB4MDAiOylyPSIweCIrci5zdWJzdHJpbmcoNCk7cmV0dXJuIHJ9ZnVuY3Rpb24gaChyKXtyZXR1cm4gbS5mcm9tKGIocikpfWZ1bmN0aW9uIG4ocil7bGV0IHQ9bS5mcm9tKHIpLnRvSGV4U3RyaW5nKCk7cmV0dXJuIHRbMF09PT0iLSI/bmV3IHgoIi0iK3Quc3Vic3RyaW5nKDMpLDE2KTpuZXcgeCh0LnN1YnN0cmluZygyKSwxNil9ZnVuY3Rpb24gZyhyLHQsaSl7bGV0IGU9e2ZhdWx0OnIsb3BlcmF0aW9uOnR9O3JldHVybiBpIT1udWxsJiYoZS52YWx1ZT1pKSxhLnRocm93RXJyb3IocixkLmVycm9ycy5OVU1FUklDX0ZBVUxULGUpfWZ1bmN0aW9uIGsocil7cmV0dXJuIG5ldyB4KHIsMzYpLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBHKHIpe3JldHVybiBuZXcgeChyLDE2KS50b1N0cmluZygzNil9aW1wb3J0e2FycmF5aWZ5IGFzIEwsaGV4WmVyb1BhZCBhcyBJLGlzQnl0ZXMgYXMgQ31mcm9tIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e0xvZ2dlciBhcyBOfWZyb20iL0BldGhlcnNwcm9qZWN0L2xvZ2dlckBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7dmFyIHU9bmV3IE4oRiksdz17fSxNPW0uZnJvbSgwKSwkPW0uZnJvbSgtMSk7ZnVuY3Rpb24geihyLHQsaSxlKXtsZXQgbz17ZmF1bHQ6dCxvcGVyYXRpb246aX07cmV0dXJuIGUhPT12b2lkIDAmJihvLnZhbHVlPWUpLHUudGhyb3dFcnJvcihyLE4uZXJyb3JzLk5VTUVSSUNfRkFVTFQsbyl9dmFyIHA9IjAiO2Zvcig7cC5sZW5ndGg8MjU2OylwKz1wO2Z1bmN0aW9uIF8ocil7aWYodHlwZW9mIHIhPSJudW1iZXIiKXRyeXtyPW0uZnJvbShyKS50b051bWJlcigpfWNhdGNoe31yZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiJiZyPj0wJiZyPD0yNTYmJiEociUxKT8iMSIrcC5zdWJzdHJpbmcoMCxyKTp1LnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBkZWNpbWFsIHNpemUiLCJkZWNpbWFscyIscil9ZnVuY3Rpb24geShyLHQpe3Q9PW51bGwmJih0PTApO2xldCBpPV8odCk7cj1tLmZyb20ocik7bGV0IGU9ci5sdChNKTtlJiYocj1yLm11bCgkKSk7bGV0IG89ci5tb2QoaSkudG9TdHJpbmcoKTtmb3IoO28ubGVuZ3RoPGkubGVuZ3RoLTE7KW89IjAiK287bz1vLm1hdGNoKC9eKFswLTldKlsxLTldfDApKDAqKS8pWzFdO2xldCBmPXIuZGl2KGkpLnRvU3RyaW5nKCk7cmV0dXJuIGkubGVuZ3RoPT09MT9yPWY6cj1mKyIuIitvLGUmJihyPSItIityKSxyfWZ1bmN0aW9uIGMocix0KXt0PT1udWxsJiYodD0wKTtsZXQgaT1fKHQpOyh0eXBlb2YgciE9InN0cmluZyJ8fCFyLm1hdGNoKC9eLT9bMC05Ll0rJC8pKSYmdS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgZGVjaW1hbCB2YWx1ZSIsInZhbHVlIixyKTtsZXQgZT1yLnN1YnN0cmluZygwLDEpPT09Ii0iO2UmJihyPXIuc3Vic3RyaW5nKDEpKSxyPT09Ii4iJiZ1LnRocm93QXJndW1lbnRFcnJvcigibWlzc2luZyB2YWx1ZSIsInZhbHVlIixyKTtsZXQgbz1yLnNwbGl0KCIuIik7by5sZW5ndGg+MiYmdS50aHJvd0FyZ3VtZW50RXJyb3IoInRvbyBtYW55IGRlY2ltYWwgcG9pbnRzIiwidmFsdWUiLHIpO2xldCBmPW9bMF0scz1vWzFdO2ZvcihmfHwoZj0iMCIpLHN8fChzPSIwIik7c1tzLmxlbmd0aC0xXT09PSIwIjspcz1zLnN1YnN0cmluZygwLHMubGVuZ3RoLTEpO2ZvcihzLmxlbmd0aD5pLmxlbmd0aC0xJiZ6KCJmcmFjdGlvbmFsIGNvbXBvbmVudCBleGNlZWRzIGRlY2ltYWxzIiwidW5kZXJmbG93IiwicGFyc2VGaXhlZCIpLHM9PT0iIiYmKHM9IjAiKTtzLmxlbmd0aDxpLmxlbmd0aC0xOylzKz0iMCI7bGV0IFM9bS5mcm9tKGYpLEI9bS5mcm9tKHMpLFQ9Uy5tdWwoaSkuYWRkKEIpO3JldHVybiBlJiYoVD1ULm11bCgkKSksVH12YXIgbD1jbGFzcyBye2NvbnN0cnVjdG9yKHQsaSxlLG8pe3QhPT13JiZ1LnRocm93RXJyb3IoImNhbm5vdCB1c2UgRml4ZWRGb3JtYXQgY29uc3RydWN0b3I7IHVzZSBGaXhlZEZvcm1hdC5mcm9tIixOLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se29wZXJhdGlvbjoibmV3IEZpeGVkRm9ybWF0In0pLHRoaXMuc2lnbmVkPWksdGhpcy53aWR0aD1lLHRoaXMuZGVjaW1hbHM9byx0aGlzLm5hbWU9KGk/IiI6InUiKSsiZml4ZWQiK1N0cmluZyhlKSsieCIrU3RyaW5nKG8pLHRoaXMuX211bHRpcGxpZXI9XyhvKSxPYmplY3QuZnJlZXplKHRoaXMpfXN0YXRpYyBmcm9tKHQpe2lmKHQgaW5zdGFuY2VvZiByKXJldHVybiB0O3R5cGVvZiB0PT0ibnVtYmVyIiYmKHQ9YGZpeGVkMTI4eCR7dH1gKTtsZXQgaT0hMCxlPTEyOCxvPTE4O2lmKHR5cGVvZiB0PT0ic3RyaW5nIil7aWYodCE9PSJmaXhlZCIpaWYodD09PSJ1Zml4ZWQiKWk9ITE7ZWxzZXtsZXQgZj10Lm1hdGNoKC9eKHU/KWZpeGVkKFswLTldKyl4KFswLTldKykkLyk7Znx8dS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgZml4ZWQgZm9ybWF0IiwiZm9ybWF0Iix0KSxpPWZbMV0hPT0idSIsZT1wYXJzZUludChmWzJdKSxvPXBhcnNlSW50KGZbM10pfX1lbHNlIGlmKHQpe2xldCBmPShzLFMsQik9PnRbc109PW51bGw/QjoodHlwZW9mIHRbc10hPT1TJiZ1LnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBmaXhlZCBmb3JtYXQgKCIrcysiIG5vdCAiK1MrIikiLCJmb3JtYXQuIitzLHRbc10pLHRbc10pO2k9Zigic2lnbmVkIiwiYm9vbGVhbiIsaSksZT1mKCJ3aWR0aCIsIm51bWJlciIsZSksbz1mKCJkZWNpbWFscyIsIm51bWJlciIsbyl9cmV0dXJuIGUlOCYmdS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgZml4ZWQgZm9ybWF0IHdpZHRoIChub3QgYnl0ZSBhbGlnbmVkKSIsImZvcm1hdC53aWR0aCIsZSksbz44MCYmdS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgZml4ZWQgZm9ybWF0IChkZWNpbWFscyB0b28gbGFyZ2UpIiwiZm9ybWF0LmRlY2ltYWxzIixvKSxuZXcgcih3LGksZSxvKX19LEU9Y2xhc3Mgcntjb25zdHJ1Y3Rvcih0LGksZSxvKXt0IT09dyYmdS50aHJvd0Vycm9yKCJjYW5ub3QgdXNlIEZpeGVkTnVtYmVyIGNvbnN0cnVjdG9yOyB1c2UgRml4ZWROdW1iZXIuZnJvbSIsTi5lcnJvcnMuVU5TVVBQT1JURURfT1BFUkFUSU9OLHtvcGVyYXRpb246Im5ldyBGaXhlZEZvcm1hdCJ9KSx0aGlzLmZvcm1hdD1vLHRoaXMuX2hleD1pLHRoaXMuX3ZhbHVlPWUsdGhpcy5faXNGaXhlZE51bWJlcj0hMCxPYmplY3QuZnJlZXplKHRoaXMpfV9jaGVja0Zvcm1hdCh0KXt0aGlzLmZvcm1hdC5uYW1lIT09dC5mb3JtYXQubmFtZSYmdS50aHJvd0FyZ3VtZW50RXJyb3IoImluY29tcGF0aWJsZSBmb3JtYXQ7IHVzZSBmaXhlZE51bWJlci50b0Zvcm1hdCIsIm90aGVyIix0KX1hZGRVbnNhZmUodCl7dGhpcy5fY2hlY2tGb3JtYXQodCk7bGV0IGk9Yyh0aGlzLl92YWx1ZSx0aGlzLmZvcm1hdC5kZWNpbWFscyksZT1jKHQuX3ZhbHVlLHQuZm9ybWF0LmRlY2ltYWxzKTtyZXR1cm4gci5mcm9tVmFsdWUoaS5hZGQoZSksdGhpcy5mb3JtYXQuZGVjaW1hbHMsdGhpcy5mb3JtYXQpfXN1YlVuc2FmZSh0KXt0aGlzLl9jaGVja0Zvcm1hdCh0KTtsZXQgaT1jKHRoaXMuX3ZhbHVlLHRoaXMuZm9ybWF0LmRlY2ltYWxzKSxlPWModC5fdmFsdWUsdC5mb3JtYXQuZGVjaW1hbHMpO3JldHVybiByLmZyb21WYWx1ZShpLnN1YihlKSx0aGlzLmZvcm1hdC5kZWNpbWFscyx0aGlzLmZvcm1hdCl9bXVsVW5zYWZlKHQpe3RoaXMuX2NoZWNrRm9ybWF0KHQpO2xldCBpPWModGhpcy5fdmFsdWUsdGhpcy5mb3JtYXQuZGVjaW1hbHMpLGU9Yyh0Ll92YWx1ZSx0LmZvcm1hdC5kZWNpbWFscyk7cmV0dXJuIHIuZnJvbVZhbHVlKGkubXVsKGUpLmRpdih0aGlzLmZvcm1hdC5fbXVsdGlwbGllciksdGhpcy5mb3JtYXQuZGVjaW1hbHMsdGhpcy5mb3JtYXQpfWRpdlVuc2FmZSh0KXt0aGlzLl9jaGVja0Zvcm1hdCh0KTtsZXQgaT1jKHRoaXMuX3ZhbHVlLHRoaXMuZm9ybWF0LmRlY2ltYWxzKSxlPWModC5fdmFsdWUsdC5mb3JtYXQuZGVjaW1hbHMpO3JldHVybiByLmZyb21WYWx1ZShpLm11bCh0aGlzLmZvcm1hdC5fbXVsdGlwbGllcikuZGl2KGUpLHRoaXMuZm9ybWF0LmRlY2ltYWxzLHRoaXMuZm9ybWF0KX1mbG9vcigpe2xldCB0PXRoaXMudG9TdHJpbmcoKS5zcGxpdCgiLiIpO3QubGVuZ3RoPT09MSYmdC5wdXNoKCIwIik7bGV0IGk9ci5mcm9tKHRbMF0sdGhpcy5mb3JtYXQpLGU9IXRbMV0ubWF0Y2goL14oMCopJC8pO3JldHVybiB0aGlzLmlzTmVnYXRpdmUoKSYmZSYmKGk9aS5zdWJVbnNhZmUoVi50b0Zvcm1hdChpLmZvcm1hdCkpKSxpfWNlaWxpbmcoKXtsZXQgdD10aGlzLnRvU3RyaW5nKCkuc3BsaXQoIi4iKTt0Lmxlbmd0aD09PTEmJnQucHVzaCgiMCIpO2xldCBpPXIuZnJvbSh0WzBdLHRoaXMuZm9ybWF0KSxlPSF0WzFdLm1hdGNoKC9eKDAqKSQvKTtyZXR1cm4hdGhpcy5pc05lZ2F0aXZlKCkmJmUmJihpPWkuYWRkVW5zYWZlKFYudG9Gb3JtYXQoaS5mb3JtYXQpKSksaX1yb3VuZCh0KXt0PT1udWxsJiYodD0wKTtsZXQgaT10aGlzLnRvU3RyaW5nKCkuc3BsaXQoIi4iKTtpZihpLmxlbmd0aD09PTEmJmkucHVzaCgiMCIpLCh0PDB8fHQ+ODB8fHQlMSkmJnUudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGRlY2ltYWwgY291bnQiLCJkZWNpbWFscyIsdCksaVsxXS5sZW5ndGg8PXQpcmV0dXJuIHRoaXM7bGV0IGU9ci5mcm9tKCIxIitwLnN1YnN0cmluZygwLHQpLHRoaXMuZm9ybWF0KSxvPWoudG9Gb3JtYXQodGhpcy5mb3JtYXQpO3JldHVybiB0aGlzLm11bFVuc2FmZShlKS5hZGRVbnNhZmUobykuZmxvb3IoKS5kaXZVbnNhZmUoZSl9aXNaZXJvKCl7cmV0dXJuIHRoaXMuX3ZhbHVlPT09IjAuMCJ8fHRoaXMuX3ZhbHVlPT09IjAifWlzTmVnYXRpdmUoKXtyZXR1cm4gdGhpcy5fdmFsdWVbMF09PT0iLSJ9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5fdmFsdWV9dG9IZXhTdHJpbmcodCl7aWYodD09bnVsbClyZXR1cm4gdGhpcy5faGV4O3QlOCYmdS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgYnl0ZSB3aWR0aCIsIndpZHRoIix0KTtsZXQgaT1tLmZyb20odGhpcy5faGV4KS5mcm9tVHdvcyh0aGlzLmZvcm1hdC53aWR0aCkudG9Ud29zKHQpLnRvSGV4U3RyaW5nKCk7cmV0dXJuIEkoaSx0LzgpfXRvVW5zYWZlRmxvYXQoKXtyZXR1cm4gcGFyc2VGbG9hdCh0aGlzLnRvU3RyaW5nKCkpfXRvRm9ybWF0KHQpe3JldHVybiByLmZyb21TdHJpbmcodGhpcy5fdmFsdWUsdCl9c3RhdGljIGZyb21WYWx1ZSh0LGksZSl7cmV0dXJuIGU9PW51bGwmJmkhPW51bGwmJiFIKGkpJiYoZT1pLGk9bnVsbCksaT09bnVsbCYmKGk9MCksZT09bnVsbCYmKGU9ImZpeGVkIiksci5mcm9tU3RyaW5nKHkodCxpKSxsLmZyb20oZSkpfXN0YXRpYyBmcm9tU3RyaW5nKHQsaSl7aT09bnVsbCYmKGk9ImZpeGVkIik7bGV0IGU9bC5mcm9tKGkpLG89Yyh0LGUuZGVjaW1hbHMpOyFlLnNpZ25lZCYmby5sdChNKSYmeigidW5zaWduZWQgdmFsdWUgY2Fubm90IGJlIG5lZ2F0aXZlIiwib3ZlcmZsb3ciLCJ2YWx1ZSIsdCk7bGV0IGY9bnVsbDtlLnNpZ25lZD9mPW8udG9Ud29zKGUud2lkdGgpLnRvSGV4U3RyaW5nKCk6KGY9by50b0hleFN0cmluZygpLGY9SShmLGUud2lkdGgvOCkpO2xldCBzPXkobyxlLmRlY2ltYWxzKTtyZXR1cm4gbmV3IHIodyxmLHMsZSl9c3RhdGljIGZyb21CeXRlcyh0LGkpe2k9PW51bGwmJihpPSJmaXhlZCIpO2xldCBlPWwuZnJvbShpKTtpZihMKHQpLmxlbmd0aD5lLndpZHRoLzgpdGhyb3cgbmV3IEVycm9yKCJvdmVyZmxvdyIpO2xldCBvPW0uZnJvbSh0KTtlLnNpZ25lZCYmKG89by5mcm9tVHdvcyhlLndpZHRoKSk7bGV0IGY9by50b1R3b3MoKGUuc2lnbmVkPzA6MSkrZS53aWR0aCkudG9IZXhTdHJpbmcoKSxzPXkobyxlLmRlY2ltYWxzKTtyZXR1cm4gbmV3IHIodyxmLHMsZSl9c3RhdGljIGZyb20odCxpKXtpZih0eXBlb2YgdD09InN0cmluZyIpcmV0dXJuIHIuZnJvbVN0cmluZyh0LGkpO2lmKEModCkpcmV0dXJuIHIuZnJvbUJ5dGVzKHQsaSk7dHJ5e3JldHVybiByLmZyb21WYWx1ZSh0LDAsaSl9Y2F0Y2goZSl7aWYoZS5jb2RlIT09Ti5lcnJvcnMuSU5WQUxJRF9BUkdVTUVOVCl0aHJvdyBlfXJldHVybiB1LnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBGaXhlZE51bWJlciB2YWx1ZSIsInZhbHVlIix0KX1zdGF0aWMgaXNGaXhlZE51bWJlcih0KXtyZXR1cm4hISh0JiZ0Ll9pc0ZpeGVkTnVtYmVyKX19LFY9RS5mcm9tKDEpLGo9RS5mcm9tKCIwLjUiKTtleHBvcnR7bSBhcyBCaWdOdW1iZXIsbCBhcyBGaXhlZEZvcm1hdCxFIGFzIEZpeGVkTnVtYmVyLEcgYXMgX2Jhc2UxNlRvMzYsayBhcyBfYmFzZTM2VG8xNix5IGFzIGZvcm1hdEZpeGVkLGMgYXMgcGFyc2VGaXhlZH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJpZ251bWJlci5tanMubWFw"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base8.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.213Z","timestamp":1785138634213,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base8.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc85569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":221,"size_decoded":560,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"c74532ee588559203794e318a1d03e6e","sha1":"98d90007bc6060aaa2a6dd564e513f553a5d3cfb","sha256":"9336d2259eb06c31fd0d1e7e5ae36e0826f39b2f73639849a403933348c7526c","sha512":"50b5dadea49e2bc9f267493b4fc179f9da744c80db98c893ddd8a00d4d8710eba74ff1760a2cf585699f0ec51f938dec60f9d44cfac49e862e9a2d9cf018f378","ssdeep":"","tlshash":"ecd0237fca785f7e3a3e500d4447451164604baed380225491270555d11c4c9f027f75","first_seen":"2025-07-08T23:56:54.626532Z","last_seen":"2026-08-08T17:15:51.846846Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2U4ICovCmltcG9ydHtyZmM0NjQ4IGFzIGV9ZnJvbSIuLi9lc20vc3JjL2Jhc2VzL2Jhc2UubWpzIjt2YXIgYT1lKHtwcmVmaXg6IjciLG5hbWU6ImJhc2U4IixhbHBoYWJldDoiMDEyMzQ1NjciLGJpdHNQZXJDaGFyOjN9KTtleHBvcnR7YSBhcyBiYXNlOH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2U4Lm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/esm/src/varint.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.262Z","timestamp":1785138634262,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/esm/src/varint.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@9.9.0/es2022/multiformats.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:11:16 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dd02c93569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":929,"size_decoded":947,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (844)","md5":"de72667a36be3f909650a5f3c4f7af83","sha1":"0b5b1334b2f15043fcf22427fc7c0d4eda15807d","sha256":"5ea3af2ab0109f1e9f4f56fe35883f593f6b047899ada90095a5ed518d635899","sha512":"91b5e26816e140ace7714201e1c3f7855c2e6c3f6031017824dd05bc1bc349475d0d81d1498a574b8db8db08ec23ea26af9def5c3b73b57a0f5173393e94da5c","ssdeep":"","tlshash":"d21123a8a64c17d5235a0b2034df481b51ed9cb1991facf8ea15c1431463ca84d3e6b8","first_seen":"2025-07-08T23:56:54.611517Z","last_seen":"2026-08-08T17:15:51.828803Z","times_seen":122,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2VzbS9zcmMvdmFyaW50ICovCnZhciBNPXcscD0xMjgsTj0xMjcsZz1+TixzPU1hdGgucG93KDIsMzEpO2Z1bmN0aW9uIHcocixvLGUpe289b3x8W10sZT1lfHwwO2Zvcih2YXIgdD1lO3I+PXM7KW9bZSsrXT1yJjI1NXxwLHIvPTEyODtmb3IoO3ImZzspb1tlKytdPXImMjU1fHAscj4+Pj03O3JldHVybiBvW2VdPXJ8MCx3LmJ5dGVzPWUtdCsxLG99dmFyIGI9aCxMPTEyOCxpPTEyNztmdW5jdGlvbiBoKHIsdCl7dmFyIGU9MCx0PXR8fDAsYT0wLGM9dCxkLHY9ci5sZW5ndGg7ZG97aWYoYz49dil0aHJvdyBoLmJ5dGVzPTAsbmV3IFJhbmdlRXJyb3IoIkNvdWxkIG5vdCBkZWNvZGUgdmFyaW50Iik7ZD1yW2MrK10sZSs9YTwyOD8oZCZpKTw8YTooZCZpKSpNYXRoLnBvdygyLGEpLGErPTd9d2hpbGUoZD49TCk7cmV0dXJuIGguYnl0ZXM9Yy10LGV9dmFyIFM9TWF0aC5wb3coMiw3KSx4PU1hdGgucG93KDIsMTQpLHk9TWF0aC5wb3coMiwyMSksVD1NYXRoLnBvdygyLDI4KSxCPU1hdGgucG93KDIsMzUpLEU9TWF0aC5wb3coMiw0MiksUj1NYXRoLnBvdygyLDQ5KSxfPU1hdGgucG93KDIsNTYpLCQ9TWF0aC5wb3coMiw2MyksbD1mdW5jdGlvbihyKXtyZXR1cm4gcjxTPzE6cjx4PzI6cjx5PzM6cjxUPzQ6cjxCPzU6cjxFPzY6cjxSPzc6cjxfPzg6cjwkPzk6MTB9LEE9e2VuY29kZTpNLGRlY29kZTpiLGVuY29kaW5nTGVuZ3RoOmx9LEM9QSxuPUM7dmFyIGY9KHIsbz0wKT0+W24uZGVjb2RlKHIsbyksbi5kZWNvZGUuYnl0ZXNdLGo9KHIsbyxlPTApPT4obi5lbmNvZGUocixvLGUpLG8pLGs9cj0+bi5lbmNvZGluZ0xlbmd0aChyKTtleHBvcnR7ZiBhcyBkZWNvZGUsaiBhcyBlbmNvZGVUbyxrIGFzIGVuY29kaW5nTGVuZ3RofTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmFyaW50Lm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"img1.wsimg.com/signals/js/clients/scc-c2/scc-c2.min.js","fqdn":"img1.wsimg.com","domain":"wsimg.com","tld":"com"},"ip":{"addr":"95.101.11.152","port":443,"asn":20940,"as":"Akamai International B.V.","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.149Z","timestamp":1785138633149,"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":"*.wsimg.com","organization":""},"issuer":{"commonName":"Starfield Secure Certificate Authority - G2","organization":"Starfield Technologies, Inc."},"validity":{"start":"Fri, 05 Sep 2025 18:24:05 GMT","end":"Wed, 07 Oct 2026 18:24:05 GMT"},"fingerprint":{"sha1":"0E:95:B5:3C:BC:57:5B:29:44:36:31:82:4A:13:83:C0:BB:C6:51:2D","sha256":"2E:41:DD:15:BE:3D:3A:3A:29:F0:65:E6:52:EC:88:54:C4:60:01:9E:68:96:30:F3:2A:31:D9:A1:95:CA:69:24"}}},"request":{"raw":"GET /signals/js/clients/scc-c2/scc-c2.min.js HTTP/1.1\r\nHost: img1.wsimg.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://mail.usdt-transfer.info/\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nx-amz-id-2: YIy0Vb7PsKceT/8Z6VS+0oKYZ5GTFBIWSs5UPpghGTbSTiKmkumqbtEsbkF4xkbXTnQwpRLm5no=\r\nx-amz-request-id: GTHV8R2A87XY4J95\r\nlast-modified: Wed, 27 May 2026 17:27:10 GMT\r\netag: \"8a37dab530d4cba8ef9134c279c20612\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-meta-version: 1.3.2\r\nx-amz-version-id: V1QpCm1bxgHgw4G1nDhX4YJuFGsOtoK3\r\naccept-ranges: bytes\r\ncontent-type: text/javascript\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncache-control: max-age=1800\r\nexpires: Mon, 27 Jul 2026 08:20:33 GMT\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-length: 21664\r\ntiming-allow-origin: *\r\naccess-control-allow-origin: *\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":106502,"size_decoded":22315,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"8a37dab530d4cba8ef9134c279c20612","sha1":"ef687d672e515d41f8b9c6b23e8c66b117a609c3","sha256":"5c16c1b3a290dd98b67c97387769f0ba4ce1a68fc5a584f603d85eec8ecfa499","sha512":"f08cbc1d2bea4b6bef0f153e83a74edfe4abf9c6f39aaadb35a6c167efd6f667b151b7154ab6e444b75420335488d27d3a33ec6e6e2c3d953a41d0a03ce563f9","ssdeep":"1536:uzSGNmZEfRDJYW/3TV4vlJHjaBaR02YX25x6JR:kD6W/WFu","tlshash":"67a3a688f6a1f07142e76165412f010bf379a965b0aed0d4e725e8f8adf85ce8173f29","first_seen":"2026-05-27T17:58:47.761284Z","last_seen":"2026-08-13T11:33:58.793052Z","times_seen":19105,"resource_available":true,"data":"IWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoInNjYy1jMiIsW10sZSk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHNbInNjYy1jMiJdPWUoKTp0WyJzY2MtYzIiXT1lKCl9KHNlbGYsKCgpPT4oKCk9PnsidXNlIHN0cmljdCI7dmFyIHQ9e2Q6KGUsbik9Pntmb3IodmFyIHIgaW4gbil0Lm8obixyKSYmIXQubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDpuW3JdfSl9LG86KHQsZSk9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpLHI6dD0+eyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9fSxlPXt9O3QucihlKSx0LmQoZSx7X3Jlc2V0OigpPT5SLGRlYnVnOigpPT5BLGVycm9yOigpPT5DLGluZm86KCk9PkksbG9nOigpPT5JLHNldERlYnVnOigpPT5ULHdhcm46KCk9Pnh9KTt2YXIgbj17fTt0LnIobiksdC5kKG4se2NtZExvZ0V2ZW50OigpPT5IaSxjbWRMb2dQZXJmOigpPT5XaX0pO3ZhciByLG8saSxhLHUsYyxmPShyPSIiLGk9e2RvY3VtZW50Om89T2JqZWN0LmNyZWF0ZSh7Z2V0IGNvb2tpZSgpe3JldHVybiByfSxzZXQgY29va2llKHQpe3I9dH19KX0sYT17fSwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz97d2luZG93OmksZG9jdW1lbnQ6byxuYXZpZ2F0b3I6YX06e3dpbmRvdzp3aW5kb3d8fGksZG9jdW1lbnQ6d2luZG93LmRvY3VtZW50fHxvLG5hdmlnYXRvcjpuYXZpZ2F0b3J8fGF9KSxzPWZ1bmN0aW9uKCl7cmV0dXJuIGYud2luZG93fSxsPWZ1bmN0aW9uKCl7cmV0dXJuIGYuZG9jdW1lbnR9LHA9ZnVuY3Rpb24oKXtyZXR1cm4gZi5uYXZpZ2F0b3J9LHk9ZnVuY3Rpb24oKXt2YXIgdD1zKCkubG9jYXRpb247cmV0dXJuIHQmJnQuaG9zdG5hbWU/dC5ob3N0bmFtZToiIn0sdj1mdW5jdGlvbih0KXt2YXIgZT12b2lkIDAhPT10P3Q6eSgpLG49ZS5zcGxpdCgiLiIpLHI9bi5sZW5ndGg7cmV0dXJuIHI+MiYmKGU9IiIuY29uY2F0KG5bci0yXSwiLiIpLmNvbmNhdChuW3ItMV0pLDIhPT1uW3ItMl0ubGVuZ3RoJiYzIT09bltyLTJdLmxlbmd0aHx8MiE9PW5bci0xXS5sZW5ndGh8fChlPSIiLmNvbmNhdChuW3ItM10sIi4iKS5jb25jYXQoZSkpKSxlfSxiPWZ1bmN0aW9uKHQsZSl7dmFyIG49TCgiY29uZmlnIilbdF07aWYobiYmZSlyZXR1cm4gbltlXX0sZD1be25hbWU6IkVNQUlMIixyZWdleDovW15AXj1dK0BbXkBdK1wuW15AXiZdKy99XSxoPWZ1bmN0aW9uKHQsZSl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0O2Zvcih2YXIgbj10LHI9MDtyPGQubGVuZ3RoO3IrKylmb3IodmFyIG89ZFtyXS5yZWdleCxpPW4ubWF0Y2gobyk7aSYmaVswXTspaT0obj1uLnJlcGxhY2UoaVswXSwiUkVEQUNURUQiKSkubWF0Y2gobyk7cmV0dXJuIG59LG09ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT10KXJldHVybiB0O3ZvaWQgMD09PWUmJihlPTIpO2Zvcih2YXIgbj1TdHJpbmcodCk7bi5sZW5ndGg8ZTspbj0iMCIrbjtyZXR1cm4gbn0sZz1mdW5jdGlvbih0KXtpZighKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdfHx2b2lkIDAhPT10KXJldHVybiEwPT09dHx8MT09PXR8fCJzdHJpbmciPT10eXBlb2YgdCYmKCJ0cnVlIj09PXQudG9Mb3dlckNhc2UoKXx8IjEiPT09dCl9LHc9ZnVuY3Rpb24odCl7dmFyIGU9cGFyc2VJbnQodCwxMCk7aWYoIWlzTmFOKGUpKXJldHVybiBlfSxPPWZ1bmN0aW9uKHQpe3JldHVybi9eLT9cZCskLy50ZXN0KHQpfSxqPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybih0PXR8fChudWxsPT09KGU9cygpKXx8dm9pZCAwPT09ZXx8bnVsbD09PShlPWUubG9jYXRpb24pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnNlYXJjaCkpPygiPyI9PT10LnN1YnN0cigwLDEpJiYodD10LnN1YnN0cmluZygxKSksdC5zcGxpdCgiJiIpKTpbXX0sXz1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPWoobiksbz1yLmxlbmd0aC0xO28+PTA7by0tKXt2YXIgaT1yW29dLnNwbGl0KCI9Iik7aWYoZSl7aWYoKGlbMF0rIiIpLnRvTG93ZXJDYXNlKCk9PT0odCsiIikudG9Mb3dlckNhc2UoKSlyZXR1cm4gaVsxXX1lbHNlIGlmKGlbMF09PT10KXJldHVybiBpWzFdfX0sUz0hMSxQPXt9LEU9ZnVuY3Rpb24oKXtyZXR1cm4idHJ1ZSI9PT1fKCJzY2NfZGVidWciLCEwKXx8U30saz1mdW5jdGlvbih0LGUpe3ZhciBuPSIiLmNvbmNhdCh0LCI6IikuY29uY2F0KGUpO2lmKFBbbl0pcmV0dXJuIFBbbl07dmFyIHI9cygpLmNvbnNvbGU7aWYoKEUoKXx8ZSkmJnImJnJbdF0pe3ZhciBvPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kP0Z1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmNhbGwoclt0XSxyKTpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGUpLG89MDtvPGU7bysrKW5bb109YXJndW1lbnRzW29dO0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHJbdF0scixuKX07cmV0dXJuIFBbbl09byxvfXJldHVybiBmdW5jdGlvbigpe319LFQ9ZnVuY3Rpb24odCl7Uz10LFA9e319LEk9ZnVuY3Rpb24oKXtyZXR1cm4gaygibG9nIikuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9LEM9ZnVuY3Rpb24oKXtyZXR1cm4gaygiZXJyb3IiLCEwKS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX0seD1mdW5jdGlvbigpe3JldHVybiBrKCJ3YXJuIiwhMCkuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9LEE9ZnVuY3Rpb24oKXtFKCkmJkkuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9LFI9ZnVuY3Rpb24oKXtTPSExLFA9e319LEw9ZnVuY3Rpb24odCl7aWYocygpW2NdKXJldHVybiBzKClbY11bdF19LEQ9ZnVuY3Rpb24odCxlKXtzKClbY10mJihzKClbY11bdF09ZSl9LE09ZnVuY3Rpb24odCxlKXtzKClbdF09ZSxEKHQsZSl9O2Z1bmN0aW9uIEIodCxlKXt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihyPXIuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIEYodCxlLG4pe3JldHVybihlPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1xKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1xKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PXEoZSk/ZTplKyIifShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH1mdW5jdGlvbiBxKHQpe3JldHVybiBxPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxxKHQpfXZhciBVPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuIGluIHQpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikpe3ZhciByPXRbbl07dHJ5e2lmKGUobixyKSlyZXR1cm4gdH1jYXRjaCh0KXt9fXJldHVybiB0fSxOPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXt9LGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1lPDB8fGFyZ3VtZW50cy5sZW5ndGg8PWU/dm9pZCAwOmFyZ3VtZW50c1tlXTsib2JqZWN0Ij09PXEobikmJlUobiwoZnVuY3Rpb24oZSxuKXt0W2VdPW59KSl9cmV0dXJuIHR9LFY9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9e30sZT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09T2JqZWN0LnByb3RvdHlwZX0sbj1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KG4pLG89MDtvPG47bysrKXJbb109YXJndW1lbnRzW29dO2Zvcih2YXIgaT0wLGE9cjtpPGEubGVuZ3RoO2krKyl7dmFyIHU9YVtpXTt1JiYib2JqZWN0Ij09PXEodSkmJlUodSwoZnVuY3Rpb24obixyKXtBcnJheS5pc0FycmF5KHIpP3Rbbl09ci5zbGljZSgpOmUocik/dFtuXT1lKHRbbl0pP1YodFtuXSxyKTpWKHt9LHIpOnRbbl09cn0pKX1yZXR1cm4gdH0sRz1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PT1xKHQpJiYhQXJyYXkuaXNBcnJheSh0KX0sSz1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdCl2b2lkIDA9PT10W2VdP2RlbGV0ZSB0W2VdOiJvYmplY3QiPT09cSh0W2VdKSYmKEsodFtlXSksMD09PU9iamVjdC5rZXlzKHRbZV0pLmxlbmd0aCYmZGVsZXRlIHRbZV0pO3JldHVybiB0fSxIPWZ1bmN0aW9uKHQpe2lmKDI9PT10Lmxlbmd0aClyZXR1cm4gdFsxXX0sVz1mdW5jdGlvbih0LGUsbil7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybnt9O2Zvcih2YXIgcj17fSxvPXQuc3BsaXQoZSksaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldLnNwbGl0KG4pO3JbYVswXV09SChhKX1yZXR1cm4gcn0sej1mdW5jdGlvbih0LGUsbil7dmFyIHI9W107cmV0dXJuIFUodCwoZnVuY3Rpb24odCxlKXtyLnB1c2goIiIuY29uY2F0KHQpLmNvbmNhdChuKS5jb25jYXQoZSkpfSkpLDA9PT1yLmxlbmd0aD8iIjpyLmpvaW4oZSl9LCQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSYmKHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW2VdP2FyZ3VtZW50c1tlXTp7fTtlJTI/QihPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKGUpe0YodCxlLG5bZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOkIoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSl9cmV0dXJuIHR9KHt9LHQpKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXtpZigib2JqZWN0Ij09PXEodFtuXSkpe3ZhciByPSQodFtuXSxlKTtlJiYodFtuXT1yKX19KSksT2JqZWN0LmZyZWV6ZSh0KX0sUT1mdW5jdGlvbih0KXtpZihudWxsPT10fHwib2JqZWN0IiE9PXEodCkpcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAoUSk7Zm9yKHZhciBlPXt9LG49T2JqZWN0LmtleXModCkuc29ydCgpLHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIG89bltyXTtlW29dPVEodFtvXSl9cmV0dXJuIGV9LEo9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRVVENGdWxsWWVhcigpKyItIittKHQuZ2V0VVRDTW9udGgoKSsxKTtpZihlKz0iLSIrbSh0LmdldFVUQ0RhdGUoKSkrIlQiK20odC5nZXRVVENIb3VycygpKSsiOiIsZSs9bSh0LmdldFVUQ01pbnV0ZXMoKSkrIjoiK20odC5nZXRVVENTZWNvbmRzKCkpLHQuZ2V0VVRDTWlsbGlzZWNvbmRzKXt2YXIgbj10LmdldFVUQ01pbGxpc2Vjb25kcygpO08obikmJihlKz0iLiIrU3RyaW5nKChuLzFlMykudG9GaXhlZCgzKSkuc2xpY2UoMiw1KSl9cmV0dXJuIGUrIloifShuZXcgRGF0ZSl9LFo9ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0sWD1mdW5jdGlvbih0LGUpe1oodCkmJnQucHVzaCh7dGltZXN0YW1wOkooKSxkYXRhOmV9KX07ZnVuY3Rpb24gWSh0KXtyZXR1cm4gWT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sWSh0KX1mdW5jdGlvbiB0dCh0LGUpe3ZhciBuPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZXQodCxlLG4pe3JldHVybihlPXJ0KGUpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6bixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09bix0fWZ1bmN0aW9uIG50KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxydChyLmtleSkscil9fWZ1bmN0aW9uIHJ0KHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1ZKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1ZKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PVkoZSk/ZTplKyIifWNvbnN0IG90PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyx0KSx0aGlzLnByb3BlcnRpZXM9ZT9mdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj90dChPYmplY3QobiksITApLmZvckVhY2goKGZ1bmN0aW9uKGUpe2V0KHQsZSxuW2VdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp0dChPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpKX0pKX1yZXR1cm4gdH0oe30sZSk6e319cmV0dXJuIGU9dCwobj1be2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wcm9wZXJ0aWVzPXt9fX0se2tleToiZ2V0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLnByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuIHRoaXMucHJvcGVydGllc1t0XX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLnByb3BlcnRpZXNbdF09ZX19LHtrZXk6ImlzU2V0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLnByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkodCkpcmV0dXJuITB9fSx7a2V5OiJkZWxldGUiLHZhbHVlOmZ1bmN0aW9uKHQpe2RlbGV0ZSB0aGlzLnByb3BlcnRpZXNbdF19fSx7a2V5OiJnZXRQcm9wZXJ0aWVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT17fSxuPWZ1bmN0aW9uKCl7cmV0dXJuITF9O3JldHVybiB0fHwiZnVuY3Rpb24iIT10eXBlb2YgdHx8KG49dCksVSh0aGlzLnByb3BlcnRpZXMsKGZ1bmN0aW9uKHQscil7bih0KXx8KGVbdF09cil9KSksZX19LHtrZXk6Im1lcmdlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgbj10aGlzLHI9ZTtyIGluc3RhbmNlb2YgdCYmKHI9ZS5nZXRQcm9wZXJ0aWVzKCkpLFUociwoZnVuY3Rpb24odCxlKXtuLnNldCh0LGUpfSkpfX1dKSYmbnQoZS5wcm90b3R5cGUsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZTt2YXIgZSxufSgpO3ZhciBpdCxhdD17fSx1dD17ImZpcnN0LXBhaW50IjoiZnAiLCJmaXJzdC1jb250ZW50ZnVsLXBhaW50IjoiZmNwIn0sY3Q9WyJjb25uZWN0RW5kIiwiY29ubmVjdFN0YXJ0IiwiZG9tQ29tcGxldGUiLCJkb21Db250ZW50TG9hZGVkRXZlbnRFbmQiLCJkb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCIsImRvbUludGVyYWN0aXZlIiwiZG9tTG9hZGluZyIsImRvbWFpbkxvb2t1cEVuZCIsImRvbWFpbkxvb2t1cFN0YXJ0IiwiZmV0Y2hTdGFydCIsIm5hdmlnYXRpb25TdGFydCIsInJlcXVlc3RTdGFydCIsInJlc3BvbnNlRW5kIiwicmVzcG9uc2VTdGFydCIsImxvYWRFdmVudFN0YXJ0IiwibG9hZEV2ZW50RW5kIl0sZnQ9WyJ0cmFuc2ZlclNpemUiLCJlbmNvZGVkQm9keVNpemUiLCJkZWNvZGVkQm9keVNpemUiXSxzdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj17fSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBvPWVbcl0saT10W29dO3ZvaWQgMCE9PWkmJihuW29dPU1hdGgucm91bmQoaSkpfXJldHVybiBufSxsdD1mdW5jdGlvbih0KXtyZXR1cm4gc3QodCxjdCl9LHB0PWZ1bmN0aW9uKHQpe3JldHVybiBzdCh0LGZ0KX0seXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgb3Q7InRjYyI9PT10JiZuLnNldCgidGNjaW4iLGV8fCJuYSIpO3RyeXsoaXQ9cygpLnBlcmZvcm1hbmNlKSYmaXQudGltaW5nPyhmdW5jdGlvbih0KXtpZih0Lm1lcmdlKGx0KGl0LnRpbWluZykpLGl0LmdldEVudHJpZXNCeU5hbWUpe3ZhciBlPWl0LmdldEVudHJpZXNCeU5hbWUobCgpLmxvY2F0aW9uLmhyZWYpWzBdO2lmKCFlJiZpdC5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgbj1pdC5nZXRFbnRyaWVzQnlUeXBlKCJuYXZpZ2F0aW9uIik7ZT1uW24ubGVuZ3RoLTFdfWUmJih0Lm1lcmdlKHB0KGUpKSx0LnNldCgibmF2aWdhdGlvblR5cGUiLGUudHlwZSkpfX0obiksInRjYyI9PT10JiYoZnVuY3Rpb24odCl7aWYoaXQuZ2V0RW50cmllc0J5VHlwZSl7dmFyIGU9aXQuZ2V0RW50cmllc0J5VHlwZSgibWFyayIpO2lmKFooZSkpe3Quc2V0KCJtYXJrcyIsZS5zbGljZSgwLDEwKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOnQubmFtZSxzdGFydFRpbWU6TWF0aC5yb3VuZCh0LnN0YXJ0VGltZSl9fSkpKTt2YXIgbj1pdC5nZXRFbnRyaWVzQnlUeXBlKCJtZWFzdXJlIik7WihuKSYmdC5zZXQoIm1lYXN1cmVzIixuLnNsaWNlKDAsMTApLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue25hbWU6dC5uYW1lLGR1cmF0aW9uOk1hdGgucm91bmQodC5kdXJhdGlvbil9fSkpKX19fShuKSxmdW5jdGlvbih0KXtpZihpdC5nZXRFbnRyaWVzQnlUeXBlKXt2YXIgZT1pdC5nZXRFbnRyaWVzQnlUeXBlKCJwYWludCIpO2UmJmUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5zZXQodXRbZS5uYW1lXSxNYXRoLnJvdW5kKGUuc3RhcnRUaW1lKSl9KSl9fShuKSkpOigidGNjIj09PXQmJm4uc2V0KCJ0Y2NwZXJmYXBpIiwibm90IHN1cHBvcnRlZCIpLEMoIkVycm9yIGxvYWRpbmcgcGVyZm9ybWFuY2UgbGliIikpfWNhdGNoKHQpe0MoIl9jb2xsZWN0IHVuYWJsZSB0byBnZXQgcGVyZm9ybWFuY2UgZGF0YSIsdCl9cmV0dXJuIG4uZ2V0UHJvcGVydGllcygpfSx2dD1mdW5jdGlvbih0LGUsbil7c2V0VGltZW91dCgoZnVuY3Rpb24oKXtzKCkuX2V4cERhdGFMYXllcj1zKCkuX2V4cERhdGFMYXllcnx8W10scygpLl9leHBEYXRhTGF5ZXIucHVzaCh7c2NoZW1hOiJhZGRfcGVyZiIsdmVyc2lvbjoidjEiLGRhdGE6InRjYyI9PT10P3t0eXBlOiJwYWdlcGVyZiIscHJvcGVydGllczpOKGUsYXQse25hdl90eXBlOiJoYXJkIn0pLGN1c3RvbV9wcm9wZXJ0aWVzOm59Ont0aW1pbmdfb2JqZWN0Ok4oZSxhdCksaXNfaGFyZF9uYXZpZ2F0aW9uOiEwLGN1c3RvbV9wcm9wZXJ0aWVzOm59fSl9KSwwKX0sYnQ9ZnVuY3Rpb24oKXtyZXR1cm4hKGl0PXMoKS5wZXJmb3JtYW5jZSl8fCFpdC50aW1pbmd8fGl0LnRpbWluZy5sb2FkRXZlbnRTdGFydD4wfSxkdD0hMTtmdW5jdGlvbiBodCh0KXtyZXR1cm4gaHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LGh0KHQpfWZ1bmN0aW9uIG10KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxndChyLmtleSkscil9fWZ1bmN0aW9uIGd0KHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1odCh0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9aHQobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09aHQoZSk/ZTplKyIifXZhciB3dD1mdW5jdGlvbigpe3JldHVybiB0PWZ1bmN0aW9uIHQoZSxuKXshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyx0KSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5fb25Mb2FkRm5zPVtdLGU/dGhpcy5fbG9hZGVkPSEwOm4odGhpcy5fdHJpZ2dlck9uTG9hZC5iaW5kKHRoaXMpKX0sZT1be2tleToiX2V4ZWN1dGVGbiIsdmFsdWU6ZnVuY3Rpb24odCl7dHJ5e3QoKX1jYXRjaChlKXtDKCJFeGNlcHRpb24gd2hpbGUgZXhlY3V0aW5nIG9uTG9hZCBjYWxsYmFjayIsdCxlKX19fSx7a2V5OiJfdHJpZ2dlck9uTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9sb2FkZWQ9ITA7Zm9yKHZhciB0PTA7dDx0aGlzLl9vbkxvYWRGbnMubGVuZ3RoO3QrKyl0aGlzLl9leGVjdXRlRm4odGhpcy5fb25Mb2FkRm5zW3RdKX19LHtrZXk6InJlZ2lzdGVyT25Mb2FkRm4iLHZhbHVlOmZ1bmN0aW9uKHQpeyhmdW5jdGlvbih0KXtyZXR1cm4gdCYmIltvYmplY3QgRnVuY3Rpb25dIj09PXt9LnRvU3RyaW5nLmNhbGwodCl9KSh0KSYmKHRoaXMuX2xvYWRlZD90aGlzLl9leGVjdXRlRm4odCk6dGhpcy5fb25Mb2FkRm5zLnB1c2godCkpfX1dLGUmJm10KHQucHJvdG90eXBlLGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQ7dmFyIHQsZX0oKSxPdD1zKCkuUmVxdWVzdCxqdD1PdCYmImtlZXBhbGl2ZSJpbiBuZXcgT3QoIiIpLF90PXZvaWQgMCE9PXAoKS5zZW5kQmVhY29uLFN0PWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBvPXMoKS5YTUxIdHRwUmVxdWVzdDtpZihvKXt2YXIgaT1uZXcgbztpLm9wZW4oZSx0LCEwKSxVKHIsKGZ1bmN0aW9uKHQsZSl7aS5zZXRSZXF1ZXN0SGVhZGVyKHQsZSl9KSksaS5zZW5kKG4pfX07ZnVuY3Rpb24gUHQodCl7cmV0dXJuIFB0PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxQdCh0KX1mdW5jdGlvbiBFdCh0LGUpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10sYz0hMCxmPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtjPSEwKTt9Y2F0Y2godCl7Zj0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGYpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxrdCh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24ga3QodCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIFR0KHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1R0KHQsZSk6dm9pZCAwfX1mdW5jdGlvbiBUdCh0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gSXQodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LEN0KHIua2V5KSxyKX19ZnVuY3Rpb24gQ3QodCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPVB0KHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1QdChuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1QdChlKT9lOmUrIiJ9Y29uc3QgeHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdD1mdW5jdGlvbiB0KGUpe3ZhciBuPXRoaXMscj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTA7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5fZXZlbnRRdWV1ZT1bXSx0aGlzLl9zZW5kQmF0Y2hDYWxsYmFjaz1lLHRoaXMuX21heEV2ZW50cz1yLHRoaXMuX2lzRmx1c2hpbmc9ITEsdGhpcy5fYmluZEhhbmRsZXJzKCksdGhpcy5fcHJvY2Vzc0ludGVydmFsPXNldEludGVydmFsKChmdW5jdGlvbigpe24uX3NlbmRCYXRjaCgpfSksMjUwKX0sKGU9W3trZXk6Il9iaW5kSGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuX2hpZGVQYWdlLmJpbmQodGhpcyksbj10aGlzLl9zaG93UGFnZS5iaW5kKHRoaXMpLHI9cygpLmF0dGFjaEV2ZW50LG89cygpLmFkZEV2ZW50TGlzdGVuZXI7bz8obygiYmVmb3JldW5sb2FkIixlLCExKSxvKCJwYWdlaGlkZSIsZSwhMSksbygicGFnZXNob3ciLG4sITEpKTpyJiYocigiYmVmb3JldW5sb2FkIixlKSxyKCJwYWdlaGlkZSIsZSkscigicGFnZXNob3ciLG4pKTt2YXIgaT1sKCksYT1pLmFkZEV2ZW50TGlzdGVuZXI7YSYmYSgidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXsiaGlkZGVuIj09PWkudmlzaWJpbGl0eVN0YXRlJiZ0Ll9oaWRlUGFnZSgpLCJ2aXNpYmxlIj09PWkudmlzaWJpbGl0eVN0YXRlJiZ0Ll9zaG93UGFnZSgpfS5iaW5kKHRoaXMpKX19LHtrZXk6Il9oaWRlUGFnZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodGhpcy5faXNGbHVzaGluZz0hMDt0aGlzLl9ldmVudFF1ZXVlLmxlbmd0aD4wOyl0aGlzLl9zZW5kQmF0Y2goKX19LHtrZXk6Il9zaG93UGFnZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc0ZsdXNoaW5nPSExfX0se2tleToiX3NlbmRSZXF1ZXN0cyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbj1FdCh0LDIpLHI9blswXSxvPW5bMV07dHJ5e3ZhciBpPUV0KHIuc3BsaXQoInwiKSwyKSxhPWlbMF0sdT17c2NoZW1hSWQ6aVsxXSxkYXRhOltdfTtPYmplY3QudmFsdWVzKG8pLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKHQuZXZlbnRzLmxlbmd0aD4xMClmb3IodmFyIGU9dC5ldmVudHMubGVuZ3RoLzEwLG49MDtuPGU7bisrKXUuZGF0YS5wdXNoKE4odCx7ZXZlbnRzOnQuZXZlbnRzLnNsaWNlKDEwKm4sMTAqbisxMCl9KSk7ZWxzZSB1LmRhdGEucHVzaCh0KX0pKSxlLl9zZW5kQmF0Y2hDYWxsYmFjayh1LHthcGlLZXk6YSxpc0ZsdXNoaW5nOmUuX2lzRmx1c2hpbmd9KX1jYXRjaCh0KXtDKCJGYWlsZWQgdG8gc2VuZCByZXF1ZXN0OiAiLmNvbmNhdCh0KSl9fSkpfX0se2tleToicHVzaEV2ZW50Iix2YWx1ZTpmdW5jdGlvbih0LGUpe2V8fCFqdCYmIV90fHx0aGlzLl9pc0ZsdXNoaW5nP3RoaXMuX3NlbmRCYXRjaCh0KTp0aGlzLl9ldmVudFF1ZXVlLnB1c2godCl9fSx7a2V5OiJfZ2V0UmVxdWVzdEJhdGNoIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9bi5hcGlLZXksbz1uLnNjaGVtYUlkLGk9bi5nbG9iYWwsYT1uLmNvbnRleHRWZXJzaW9uLHU9bi5idXNpbmVzc0NvbnRleHQsYz0iIi5jb25jYXQociwifCIpLmNvbmNhdChvKSxmPXRbY118fHt9O3RbY109Zjt2YXIgcz0wO3UmJihlLnB1c2godSkscz1lLmxlbmd0aCk7dmFyIGw9IiIuY29uY2F0KGEsInwiKS5jb25jYXQocyk7cmV0dXJue2JhdGNoOmZbbF18fHtnbG9iYWw6aSxidXNpbmVzc0NvbnRleHQ6dSxldmVudHM6W119LGJhdGNoS2V5OmwscmVxdWVzdDpmfX19LHtrZXk6Il9wcm9jZXNzRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixvPXRoaXMuX2dldFJlcXVlc3RCYXRjaCh0LGUsbiksaT1vLmJhdGNoLGE9by5iYXRjaEtleSx1PW8ucmVxdWVzdDtyZXR1cm4ocj1pLmV2ZW50cykucHVzaC5hcHBseShyLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBUdCh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGt0KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShuLmV2ZW50cy5zbGljZSgwLHRoaXMuX21heEV2ZW50cykpKSxuLmV2ZW50cy5sZW5ndGg+dGhpcy5fbWF4RXZlbnRzJiZ0aGlzLnB1c2hFdmVudChOKG4se2V2ZW50czpuLmV2ZW50cy5zbGljZSh0aGlzLl9tYXhFdmVudHMpfSkpLHVbYV09aSxNYXRoLm1pbihuLmV2ZW50cy5sZW5ndGgsdGhpcy5fbWF4RXZlbnRzKX19LHtrZXk6Il9zZW5kQmF0Y2giLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPTAsbj17fSxyPVtdO2Zvcih0JiYoZSs9dGhpcy5fcHJvY2Vzc0V2ZW50KG4scix0KSk7dGhpcy5fZXZlbnRRdWV1ZS5sZW5ndGg+MCYmZTx0aGlzLl9tYXhFdmVudHM7KWUrPXRoaXMuX3Byb2Nlc3NFdmVudChuLHIsdGhpcy5fZXZlbnRRdWV1ZS5zaGlmdCgpKTt0aGlzLl9zZW5kUmVxdWVzdHMobil9fV0pJiZJdCh0LnByb3RvdHlwZSxlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0O3ZhciB0LGV9KCk7dmFyIEF0LFJ0PSJfZXZlbnRCdXNTZW5kTG9nIixMdD1mdW5jdGlvbih0LGUpe3ZhciBuPWUuYXBpS2V5LHI9ZS5pc0ZsdXNoaW5nOyFmdW5jdGlvbih0LGUsbil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnt9LG89ci5xdWVyeVBhcmFtcyxpPXIucGF5bG9hZCxhPXIucmVxdWVzdEhlYWRlcnMsdT1yLmNyZWRlbnRpYWxzLGM9ci5zZW5kQXNCZWFjb24sZj12b2lkIDAhPT1jJiZjLGw9Tih7fSxhKSx5PWk/SlNPTi5zdHJpbmdpZnkoaSk6bnVsbDtpZihmJiZfdCYmIWwuQXV0aG9yaXphdGlvbiYmIlBPU1QiPT09ZSl0cnl7dmFyIHY9cygpLkJsb2I7cCgpLnNlbmRCZWFjb24odCxuZXcgdihbeV0sbCkpfWNhdGNoKG4pe1N0KHQsZSx5LGwpfWVsc2UhZnVuY3Rpb24odCxlLG4scixvKXt2YXIgaT1zKCkuZmV0Y2g7anQmJmk/aSh0LHtrZWVwYWxpdmU6ITAsbWV0aG9kOmUsaGVhZGVyczpyLGJvZHk6bixjcmVkZW50aWFsczpvfSkuY2F0Y2goKGZ1bmN0aW9uKG8pe1N0KHQsZSxuLHIpfSkpOlN0KHQsZSxuLHIpfSh0LGUseSxsLHUpOyFmdW5jdGlvbih0LGUsbixyLG8pe3ZhciBpPXtlbmRwb2ludDplLHF1ZXJ5UGFyYW1zOm4sbWV0aG9kOnIscGF5bG9hZDpvfTtYKEwodCksaSl9KG4sdCxvLGUsaSl9KCIiLmNvbmNhdChmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIjtyZXR1cm4iaHR0cHM6Ly8iLmNvbmNhdCh0P3QrIi4iOiIiKS5jb25jYXQoZnVuY3Rpb24oKXtpZih1KXJldHVybiB1O3ZhciB0PXYoKTtpZigic2VjdXJlc2VydmVyLm5ldCI9PT0odD1mdW5jdGlvbih0KXt2YXIgZT10fHx2KCk7cmV0dXJuIGUuaW5kZXhPZigiZ29kYWRkeS5jb20iKT49MHx8ZS5pbmRleE9mKCJzZWN1cmVzZXJ2ZXIubmV0Iik+PTB9KHQpP3Q6InNlY3VyZXNlcnZlci5uZXQiKSl7dmFyIGU9YigiYnVpbGQiLCJlbnYiKTt0PSJwcm9kIj09PWU/dDoiIi5jb25jYXQoZSwiLSIpLmNvbmNhdCh0KX1yZXR1cm4gdT10fSgpKX0oImNzcCIpLCIvZXZlbnRidXMvd2ViP2NsaWVudGlkPSIpLmNvbmNhdChuKSwiUE9TVCIsUnQse3BheWxvYWQ6dCxzZW5kQXNCZWFjb246cn0pfTtmdW5jdGlvbiBEdCh0KXtyZXR1cm4gRHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LER0KHQpfWZ1bmN0aW9uIE10KHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxCdChyLmtleSkscil9fWZ1bmN0aW9uIEJ0KHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1EdCh0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9RHQobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09RHQoZSk/ZTplKyIifWZ1bmN0aW9uIEZ0KCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oRnQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIHF0KHQsZSxuLHIpe3ZhciBvPVV0KE50KDEmcj90LnByb3RvdHlwZTp0KSxlLG4pO3JldHVybiAyJnImJiJmdW5jdGlvbiI9PXR5cGVvZiBvP2Z1bmN0aW9uKHQpe3JldHVybiBvLmFwcGx5KG4sdCl9Om99ZnVuY3Rpb24gVXQoKXtyZXR1cm4gVXQ9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWZ1bmN0aW9uKHQsZSl7Zm9yKDshe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZudWxsIT09KHQ9TnQodCkpOyk7cmV0dXJuIHR9KHQsZSk7aWYocil7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpO3JldHVybiBvLmdldD9vLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz90Om4pOm8udmFsdWV9fSxVdC5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTnQodCl7cmV0dXJuIE50PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxOdCh0KX1mdW5jdGlvbiBWdCh0LGUpe3JldHVybiBWdD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LFZ0KHQsZSl9dmFyIEd0PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaCh0KXtyZXR1cm57fX19O2NvbnN0IEt0PW5ldyhmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBuO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLChuPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1OdChlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09RHQoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsRnQoKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLE50KHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsW3RdKSkuX3VwZGF0ZVdpbmRvdygpLG59cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJlZ0KHQsZSl9KGUsdCksbj1lLChyPVt7a2V5OiJfdXBkYXRlV2luZG93Iix2YWx1ZTpmdW5jdGlvbigpe0QoImNvbmZpZyIsJCh0aGlzLnByb3BlcnRpZXMsITApKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24odCxuKXtxdChlLCJzZXQiLHRoaXMsMykoW3Qsbl0pLHRoaXMuX3VwZGF0ZVdpbmRvdygpfX0se2tleToibWVyZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3F0KGUsIm1lcmdlIix0aGlzLDMpKFt0XSksdGhpcy5fdXBkYXRlV2luZG93KCl9fSx7a2V5OiJkZWxldGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3F0KGUsImRlbGV0ZSIsdGhpcywzKShbdF0pLHRoaXMuX3VwZGF0ZVdpbmRvdygpfX1dKSYmTXQobi5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbjt2YXIgbixyfShvdCkpKHtidWlsZDp7ZW52OiJwcm9kIixkYXRlOiIyMDI2LTA1LTI3VDE3OjI2OjUzLjQyNloifSxjbGllbnQ6e25hbWU6InNjYy1jMiIsdmVyc2lvbjoiMS4zLjIiLGhhc2g6ImIzYzRlZGNhNTMzY2JiZmExNDY3MzVmOWFhYWNjNGVkYzFlNGZhMTMifSxjb29raWU6e3NhbWVTaXRlOiJub25lIn0sc2l0ZTp7cHJpdmF0ZUxhYmVsSWQ6IiJ9LHNHdG06e2VuYWJsZWQ6ZygiIiksd2hpdGVsaXN0Okd0KCIiKSxhY2NvdW50OiIiLGhvc3Q6IiJ9LGdhOnthY2NvdW50OiIifSx3R3RtOnthY2NvdW50OiIiLGVuYWJsZVByb3h5OmcoIiIpLGVuYWJsZWQ6ZygiIikscmVxdWlyZUdvb2dsZUNsaWVudElkOmcoIiIpLHdoaXRlbGlzdDpHdCgiIil9LGV2ZW50QnVzOntlbmFibGVkOmcoInRydWUiKSxzY2NBcGlLZXk6ImIxOGVmNGYwNDY0MzViNjRhNDY5YjMyYzNjMWMyMGEzIixyaWdvckFwaUtleToiOGRhMjIxNzQwOTg1NGJlZTgyZTEyZGM0Y2EwYjM5ZmIifSxjbGlja0xpc3RlbmVyOntlbmFibGVkOiEwLG5hdkRlbGF5TXM6NzV9LHNlc3Npb246e3JlZnJlc2hPbkludGVyYWN0aW9uOiExLHJlZnJlc2hJbnRlcnZhbE1zOjFlM30sdGltaW5nOnthdXRvOiEwfSx3ZWJWaXRhbHM6e2VuYWJsZWQ6ITAsdXJsOiIifSxjb25zZW50OntkZWxheU1zOjUwMH0sY2RlcDp7YXBwSWQ6IiJ9fSk7dmFyIEh0LFd0LHp0LCR0PWZ1bmN0aW9uKHQsZSl7dmFyIG49S3QuZ2V0KHQpO3JldHVybiBlP24/bltlXTp2b2lkIDA6bn0sUXQ9ZnVuY3Rpb24odCxlLG4pe3ZhciByPUt0LmdldCh0KSxvPXJ8fHt9O3J8fEt0LnNldCh0LG8pLG9bZV09bn07ZnVuY3Rpb24gSnQodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfXZhciBadCxYdCxZdD1bXSx0ZT17fSxlZT0wLG5lPWZ1bmN0aW9uKHQpe3ZhciBlLG49ZnVuY3Rpb24odCxlKXt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYoIW4pe2lmKEFycmF5LmlzQXJyYXkodCl8fChuPWZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBKdCh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9KdCh0LGUpOnZvaWQgMH19KHQpKXx8ZSYmdCYmIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aCl7biYmKHQ9bik7dmFyIHI9MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49dC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOnRbcisrXX19LGU6ZnVuY3Rpb24odCl7dGhyb3cgdH0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGksYT0hMCx1PSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwodCl9LG46ZnVuY3Rpb24oKXt2YXIgdD1uLm5leHQoKTtyZXR1cm4gYT10LmRvbmUsdH0sZTpmdW5jdGlvbih0KXt1PSEwLGk9dH0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHUpdGhyb3cgaX19fX0oWnQpO3RyeXtmb3Iobi5zKCk7IShlPW4ubigpKS5kb25lOyl7dmFyIHI9ZS52YWx1ZTtpZih0LnN0YXJ0c1dpdGgoIiIuY29uY2F0KHIsIi4iKSkpcmV0dXJuITF9fWNhdGNoKHQpe24uZSh0KX1maW5hbGx5e24uZigpfXJldHVybiEwfSxyZT1mdW5jdGlvbih0LGUpeyJkZWJ1ZyI9PT10JiZUKCJ0cnVlIj09PWV8fCEwPT09ZSl9LG9lPWZ1bmN0aW9uKCl7dmFyIHQsZSxuPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXt9LGU9MDtlPFd0Lmxlbmd0aDtlKyspe3ZhciBuPVd0W2VdO1UobiwoZnVuY3Rpb24oZSxuKXstMT09PVh0LmluZGV4T2YoZS50b0xvd2VyQ2FzZSgpKSYmKHJlKGUsbiksbmUoZSl8fCh0W2VdPW4pKX0pKX1yZXR1cm4gdH0oKTtlPXtpZGVudGl0eTp7cmVhbG06KHQ9bilbIiIuY29uY2F0KEh0LCIucmVhbG0iKV19LHNpdGU6e3ByaXZhdGVMYWJlbElkOnRbIiIuY29uY2F0KEh0LCIucHJpdmF0ZUxhYmVsSWQiKV19LHRpbWluZzp7YXV0bzohZyh0WyIiLmNvbmNhdChIdCwiLm1hbnVhbFBhZ2VQZXJmIildLCExKX0scGFnZTp7c3BhOnRbIiIuY29uY2F0KEh0LCIuc3BhIildLGlkOnRbIiIuY29uY2F0KEh0LCIucGFnZUlkIildLGNvbnRlbnRHcm91cDp0WyIiLmNvbmNhdChIdCwiLmdhQ29udGVudEdyb3VwIildfHx0WyIiLmNvbmNhdChIdCwiLmNvbnRlbnRHcm91cCIpXSxyZWZlcnJlckV4Y2x1c2lvbjp0WyIiLmNvbmNhdChIdCwiLnJlZmVycmVyRXhjbHVzaW9uIildfSxjb29raWU6e3NhbWVTaXRlOnRbIiIuY29uY2F0KEh0LCIuY29va2llcy5zYW1lU2l0ZSIpXX0sd0d0bTp7ZW5hYmxlZDpnKHRbIiIuY29uY2F0KEh0LCIud2ViR3RtRW5hYmxlZCIpXSwhMSl9LGNsaWNrTGlzdGVuZXI6e2VuYWJsZWQ6IWcodFsiIi5jb25jYXQoSHQsIi5saXN0ZW5lckRpc2FibGVkIildLCExKSxuYXZEZWxheU1zOnRbIiIuY29uY2F0KEh0LCIuZXZlbnREZWxheU1zIildfSxzZXNzaW9uOntyZWZyZXNoT25JbnRlcmFjdGlvbjpnKHRbIiIuY29uY2F0KEh0LCIuc2Vzc2lvblJlZnJlc2hPbkludGVyYWN0aW9uIildLCExKSxyZWZyZXNoSW50ZXJ2YWxNczp3KHRbIiIuY29uY2F0KEh0LCIuc2Vzc2lvblJlZnJlc2hPbkludGVyYWN0aW9uSW50ZXJ2YWxNcyIpXSl9fSxPYmplY3Qua2V5cyhlKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3Qua2V5cyhlW3RdKS5mb3JFYWNoKChmdW5jdGlvbihuKXt2YXIgcj1lW3RdW25dO3ZvaWQgMCE9PXImJlF0KHQsbixyKX0pKX0pKSxLdC5tZXJnZShuKSxYKFl0LG4pfTtjb25zdCBpZT17cmFuZG9tVVVJRDoidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byYmY3J5cHRvLnJhbmRvbVVVSUQmJmNyeXB0by5yYW5kb21VVUlELmJpbmQoY3J5cHRvKX07bGV0IGFlO2NvbnN0IHVlPW5ldyBVaW50OEFycmF5KDE2KTtmdW5jdGlvbiBjZSgpe2lmKCFhZSYmKGFlPSJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzJiZjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzLmJpbmQoY3J5cHRvKSwhYWUpKXRocm93IG5ldyBFcnJvcigiY3J5cHRvLmdldFJhbmRvbVZhbHVlcygpIG5vdCBzdXBwb3J0ZWQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdXVpZGpzL3V1aWQjZ2V0cmFuZG9tdmFsdWVzLW5vdC1zdXBwb3J0ZWQiKTtyZXR1cm4gYWUodWUpfWNvbnN0IGZlPVtdO2ZvcihsZXQgdD0wO3Q8MjU2OysrdClmZS5wdXNoKCh0KzI1NikudG9TdHJpbmcoMTYpLnNsaWNlKDEpKTtjb25zdCBzZT1mdW5jdGlvbih0LGUsbil7aWYoaWUucmFuZG9tVVVJRCYmIWUmJiF0KXJldHVybiBpZS5yYW5kb21VVUlEKCk7Y29uc3Qgcj0odD10fHx7fSkucmFuZG9tfHwodC5ybmd8fGNlKSgpO2lmKHJbNl09MTUmcls2XXw2NCxyWzhdPTYzJnJbOF18MTI4LGUpe249bnx8MDtmb3IobGV0IHQ9MDt0PDE2OysrdCllW24rdF09clt0XTtyZXR1cm4gZX1yZXR1cm4gZnVuY3Rpb24odCxlPTApe3JldHVybiBmZVt0W2UrMF1dK2ZlW3RbZSsxXV0rZmVbdFtlKzJdXStmZVt0W2UrM11dKyItIitmZVt0W2UrNF1dK2ZlW3RbZSs1XV0rIi0iK2ZlW3RbZSs2XV0rZmVbdFtlKzddXSsiLSIrZmVbdFtlKzhdXStmZVt0W2UrOV1dKyItIitmZVt0W2UrMTBdXStmZVt0W2UrMTFdXStmZVt0W2UrMTJdXStmZVt0W2UrMTNdXStmZVt0W2UrMTRdXStmZVt0W2UrMTVdXX0ocil9O3ZhciBsZT1mdW5jdGlvbigpe3JldHVybiBzZSgpfTtmdW5jdGlvbiBwZSh0KXtyZXR1cm4gcGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHBlKHQpfWZ1bmN0aW9uIHllKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiB2ZSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYmUoci5rZXkpLHIpfX1mdW5jdGlvbiBiZSh0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9cGUodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPXBlKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PXBlKGUpP2U6ZSsiIn12YXIgZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdD1mdW5jdGlvbiB0KGUpe3ZhciBuPXRoaXM7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5kYXRhTGF5ZXJOYW1lcz1lLHRoaXMuZGF0YUxheWVyTG9nPVtdLHRoaXMuYXN5bmNDb21tYW5kcz1bXSx0aGlzLmxvYWRlZD0hMSx0aGlzLmRhdGFMYXllcnM9W10sdGhpcy5kYXRhTGF5ZXJOYW1lcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZSxyPXMoKVt0XTtaKHIpJiYoZT1uLmFzeW5jQ29tbWFuZHMpLnB1c2guYXBwbHkoZSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4geWUodCl9KHQpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KHQpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4geWUodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/eWUodCxlKTp2b2lkIDB9fSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0ocikpLE0odCxuKSxuLmRhdGFMYXllcnMucHVzaChyKX0pKX0sKGU9W3trZXk6InN0YXJ0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubG9hZEFzeW5jQ29tbWFuZHMoKX19LHtrZXk6InB1c2hMb2ciLHZhbHVlOmZ1bmN0aW9uKHQpe1godGhpcy5kYXRhTGF5ZXJMb2csdCl9fSx7a2V5OiJwcm9jZXNzIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMubG9hZGVkP3RoaXMucHJvY2Vzcyh0KTp0aGlzLmFzeW5jQ29tbWFuZHMucHVzaCh0KX19LHtrZXk6ImxvYWRBc3luY0NvbW1hbmRzIix2YWx1ZTpmdW5jdGlvbigpe2Zvcig7dGhpcy5hc3luY0NvbW1hbmRzLmxlbmd0aD4wOyl0aGlzLnByb2Nlc3ModGhpcy5hc3luY0NvbW1hbmRzLnNoaWZ0KCkpO3RoaXMubG9hZGVkPSEwfX1dKSYmdmUodC5wcm90b3R5cGUsZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdDt2YXIgdCxlfSgpO2Z1bmN0aW9uIGhlKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheShlKTtuPGU7bisrKXJbbl09dFtuXTtyZXR1cm4gcn1mdW5jdGlvbiBtZSh0KXtyZXR1cm4gbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LG1lKHQpfWZ1bmN0aW9uIGdlKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gd2UodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGplKHIua2V5KSxyKX19ZnVuY3Rpb24gT2UodCxlLG4pe3JldHVybiBlJiZ3ZSh0LnByb3RvdHlwZSxlKSxuJiZ3ZSh0LG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHR9ZnVuY3Rpb24gamUodCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPW1lKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1tZShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1tZShlKT9lOmUrIiJ9dmFyIF9lPWZ1bmN0aW9uKCl7cmV0dXJuIE9lKChmdW5jdGlvbiB0KGUsbil7aWYoZ2UodGhpcyx0KSwhZSl0aHJvdyJNaXNzaW5nIHZlcnNpb24gZGVmaW5pdGlvbnMiO3RoaXMuX3ZlcnNpb25lZERlZmluaXRpb25zPWUsdGhpcy5faW50ZXJmYWNlVHlwZT1ufSksW3trZXk6ImdldEludGVyZmFjZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl92ZXJzaW9uZWREZWZpbml0aW9uc1tlXTtpZihuKXJldHVybiBufX1dKX0oKSxTZT1mdW5jdGlvbigpe3JldHVybiBPZSgoZnVuY3Rpb24gdChlKXtpZihnZSh0aGlzLHQpLCFlKXRocm93Ik1pc3NpbmcgdHlwZSBkZWZpbml0aW9ucyI7dGhpcy5fdHlwZVZlcnNpb25EZWZpbml0aW9uTWFwPWV9KSxbe2tleToiZ2V0SW50ZXJmYWNlIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9dGhpcy5fdHlwZVZlcnNpb25EZWZpbml0aW9uTWFwW25dO2lmKHIpcmV0dXJuIHIuZ2V0SW50ZXJmYWNlKHQsZSl9fV0pfSgpLFBlPXt9LEVlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1mdW5jdGlvbigpe3ZhciB0LGUsbz0odD1yW25dLGU9MixmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0fSh0KXx8ZnVuY3Rpb24odCxlKXt2YXIgbj1udWxsPT10P251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJnRbU3ltYm9sLml0ZXJhdG9yXXx8dFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPW4pe3ZhciByLG8saSxhLHU9W10sYz0hMCxmPSExO3RyeXtpZihpPShuPW4uY2FsbCh0KSkubmV4dCwwPT09ZSl7aWYoT2JqZWN0KG4pIT09bilyZXR1cm47Yz0hMX1lbHNlIGZvcig7IShjPShyPWkuY2FsbChuKSkuZG9uZSkmJih1LnB1c2goci52YWx1ZSksdS5sZW5ndGghPT1lKTtjPSEwKTt9Y2F0Y2godCl7Zj0hMCxvPXR9ZmluYWxseXt0cnl7aWYoIWMmJm51bGwhPW4ucmV0dXJuJiYoYT1uLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGYpdGhyb3cgb319cmV0dXJuIHV9fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gaGUodCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aGUodCxlKTp2b2lkIDB9fSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCkpLGk9b1swXSxhPW9bMV07aWYoWihhKSl7dmFyIHU9e307YS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXsidHlwZSIhPT1uJiYoZVtuXT10W25dKX0pKSx1W3QudHlwZV09bmV3IF9lKGUsdC50eXBlKX0pKSxQZVtpXT1uZXcgU2UodSl9ZWxzZSBQZVtpXT1uZXcgX2UoYSl9LG49MCxyPU9iamVjdC5lbnRyaWVzKHQpO248ci5sZW5ndGg7bisrKWUoKX0sa2U9InN0cmluZyIsVGU9L14oW1x3LV0rKSQvLEllPS9eKFtcdy8tXSspJC8sQ2U9Ik9QVElPTkFMIix4ZT0iUkVRVUlSRUQiLEFlPSJtYXAiO2Z1bmN0aW9uIFJlKHQsZSxuKXtyZXR1cm4gZT1CZShlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09S2UoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsTGUoKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLEJlKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfWZ1bmN0aW9uIExlKCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oTGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIERlKHQsZSxuLHIpe3ZhciBvPU1lKEJlKDEmcj90LnByb3RvdHlwZTp0KSxlLG4pO3JldHVybiAyJnImJiJmdW5jdGlvbiI9PXR5cGVvZiBvP2Z1bmN0aW9uKHQpe3JldHVybiBvLmFwcGx5KG4sdCl9Om99ZnVuY3Rpb24gTWUoKXtyZXR1cm4gTWU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWZ1bmN0aW9uKHQsZSl7Zm9yKDshe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZudWxsIT09KHQ9QmUodCkpOyk7cmV0dXJuIHR9KHQsZSk7aWYocil7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpO3JldHVybiBvLmdldD9vLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz90Om4pOm8udmFsdWV9fSxNZS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQmUodCl7cmV0dXJuIEJlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxCZSh0KX1mdW5jdGlvbiBGZSh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZxZSh0LGUpfWZ1bmN0aW9uIHFlKHQsZSl7cmV0dXJuIHFlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0scWUodCxlKX1mdW5jdGlvbiBVZSh0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE5lKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxHZShyLmtleSkscil9fWZ1bmN0aW9uIFZlKHQsZSxuKXtyZXR1cm4gZSYmTmUodC5wcm90b3R5cGUsZSksbiYmTmUodCxuKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0fWZ1bmN0aW9uIEdlKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1LZSh0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9S2UobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09S2UoZSk/ZTplKyIifWZ1bmN0aW9uIEtlKHQpe3JldHVybiBLZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sS2UodCl9dmFyIEhlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcjtpZigiQ0FMQ1VMQVRFRCIhPT1lLl9maWVsZFR5cGUpe3ZhciBvPXRbZS5uYW1lXTsic3ViIj09PWUuX3Jlc29sdXRpb25UeXBlJiYobz10KSxyPWUucGFyc2Uobyl9dmFyIGk9S2UoZS50cmFuc2Zvcm1Gbik7aWYoInVuZGVmaW5lZCIhPT1pKXt2YXIgYT1aKGUudHJhbnNmb3JtRm4pO2lmKCJmdW5jdGlvbiI9PT1pfHxhKWZvcih2YXIgdT1hP2UudHJhbnNmb3JtRm46W2UudHJhbnNmb3JtRm5dLGM9MDtjPHUubGVuZ3RoO2MrKylyPXVbY10ocixuKTtlbHNlIHI9ZS50cmFuc2Zvcm1Gbn1yZXR1cm4gZS5fb3V0cHV0VHlwZSYmZS5fb3V0cHV0VHlwZT09PWtlJiYocj1yLnRvU3RyaW5nKCkpLHJ9LFdlPWZ1bmN0aW9uKCl7cmV0dXJuIFZlKChmdW5jdGlvbiB0KGUpe1VlKHRoaXMsdCksdGhpcy5uYW1lPWUsdGhpcy5wcm9wZXJ0aWVzPVtdLHRoaXMuZGVmaW5pdGlvblR5cGU9IiIsdGhpcy5fb3V0cHV0VHlwZSx0aGlzLl9yZXNvbHV0aW9uVHlwZT1BZSx0aGlzLl9maWVsZFR5cGU9Q2UsdGhpcy5vdXRwdXRLZXksdGhpcy5hbGxvd2VkVmFsdWVzTGlzdD1bXX0pLFt7a2V5OiJwYXJzZSIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy52YWxpZGF0ZSh0KSx0aGlzLl9maWVsZFR5cGUhPT1DZXx8dHx8ImJvb2xlYW4iPT10eXBlb2YgdHx8MD09PXQpe2Zvcih2YXIgZT1uZXcgb3Qsbj0wO248dGhpcy5wcm9wZXJ0aWVzLmxlbmd0aDtuKyspe3ZhciByPXRoaXMucHJvcGVydGllc1tuXSxvPUhlKHQscixlLmdldFByb3BlcnRpZXMoKSk7ci5fcmVzb2x1dGlvblR5cGU9PT1BZT9lLnNldChyLm91dHB1dEtleXx8ci5uYW1lLG8pOmUubWVyZ2Uobyl9cmV0dXJuIGUuZ2V0UHJvcGVydGllcygpfX19LHtrZXk6InZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9maWVsZFR5cGU9PT14ZSYmIXQmJiJib29sZWFuIiE9dHlwZW9mIHQmJjAhPT10KXRocm93Ik1pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgJyIuY29uY2F0KHRoaXMubmFtZSwiJyIpO2lmKHRoaXMuYWxsb3dlZFZhbHVlc0xpc3QubGVuZ3RoPjAmJiF0aGlzLmFsbG93ZWRWYWx1ZXNMaXN0LmluY2x1ZGVzKHQpKXRocm93IklucHV0ICciLmNvbmNhdCh0LCInIGZvciBwcm9wZXJ0eSAnIikuY29uY2F0KHRoaXMubmFtZSwiJyBpcyBub3Qgb25lIG9mIHRoZSBhbGxvd2VkIHZhbHVlcyAoIikuY29uY2F0KHRoaXMuYWxsb3dlZFZhbHVlc0xpc3QsIikuIil9fSx7a2V5OiJvcHRpb25hbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZmllbGRUeXBlPUNlLHRoaXN9fSx7a2V5OiJyZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZmllbGRUeXBlPXhlLHRoaXN9fSx7a2V5OiJzdHJpbmdpZnkiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBvdCxlPTA7ZTx0aGlzLnByb3BlcnRpZXMubGVuZ3RoO2UrKyl7dmFyIG49dGhpcy5wcm9wZXJ0aWVzW2VdO3QubWVyZ2Uobi5zdHJpbmdpZnkoKSl9cmV0dXJuIHQuZ2V0UHJvcGVydGllcygpfX0se2tleToidHJhbnNmb3JtIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50cmFuc2Zvcm1Gbj10LHRoaXN9fSx7a2V5OiJ0cmFuc2Zvcm1LZXkiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm91dHB1dEtleT10LHRoaXN9fSx7a2V5OiJhbGxvd2VkVmFsdWVzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hbGxvd2VkVmFsdWVzTGlzdD10LHRoaXN9fSx7a2V5OiJvdXRwdXRUeXBlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fb3V0cHV0VHlwZT10LHRoaXN9fV0pfSgpLHplPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxuKXt2YXIgcjtyZXR1cm4gVWUodGhpcyxlKSwocj1SZSh0aGlzLGUsW3RdKSkuZGVmaW5pdGlvblR5cGU9IlNjaGVtYSIsci5wcm9wZXJ0aWVzPW4scn1yZXR1cm4gRmUoZSx0KSxWZShlLFt7a2V5OiJwYXJzZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIG47aWYodGhpcy5wcm9wZXJ0aWVzJiZ0aGlzLnByb3BlcnRpZXMubGVuZ3RoPjApdHJ5e249RGUoZSwicGFyc2UiLHRoaXMsMykoW3R8fHt9XSl9Y2F0Y2godCl7dGhyb3ciIn1yZXR1cm4gT2JqZWN0LmZyZWV6ZShuKX19XSl9KFdlKSwkZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIFVlKHRoaXMsZSksUmUodGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIEZlKGUsdCksVmUoZSxbe2tleToicGFyc2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnZhbGlkYXRlKHQpLHR9fSx7a2V5OiJzdHJpbmdpZnkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRbdGhpcy5uYW1lXT10aGlzLl9maWVsZFR5cGUsdH19XSl9KFdlKSxRZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIFVlKHRoaXMsZSksUmUodGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIEZlKGUsdCksVmUoZSxbe2tleToicGF0dGVybiIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhdHRlcm49dCx0aGlzfX0se2tleToidmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe0RlKGUsInZhbGlkYXRlIix0aGlzLDMpKFt0XSk7dmFyIG49S2UodCk7aWYoInN0cmluZyI9PT1uKXtpZih0aGlzLl9wYXR0ZXJuJiYhdC5tYXRjaCh0aGlzLl9wYXR0ZXJuKSl0aHJvdyJJbnB1dCAiLmNvbmNhdCh0LCIgZG9lcyBub3QgbWF0Y2ggIikuY29uY2F0KHRoaXMuX3BhdHRlcm4pfWVsc2UgaWYoInVuZGVmaW5lZCIhPT1uJiZudWxsIT10KXRocm93IklucHV0IGlzIG5vdCBhIHN0cmluZyJ9fSx7a2V5OiJzdHJpbmdpZnkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9RGUoZSwic3RyaW5naWZ5Iix0aGlzLDMpKFtdKSxuPXRoaXMuX3BhdHRlcm4/IiB8IHBhdHRlcm46ICIuY29uY2F0KHRoaXMuX3BhdHRlcm4pOiIiO3JldHVybiB0W3RoaXMubmFtZV09IiIuY29uY2F0KHRbdGhpcy5uYW1lXSwiIHwgdHlwZTogc3RyaW5nIikuY29uY2F0KG4pLHR9fV0pfSgkZSksSmU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciB0O3JldHVybiBVZSh0aGlzLGUpLCh0PVJlKHRoaXMsZSkpLmRlZmluaXRpb25UeXBlPSJPYmplY3QiLHR9cmV0dXJuIEZlKGUsdCksVmUoZSxbe2tleToic3RyaW5naWZ5Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Jlc29sdXRpb25UeXBlPT09QWUpe3ZhciB0PXt9O3JldHVybiB0WyIiLmNvbmNhdCh0aGlzLm5hbWUsIiAoIikuY29uY2F0KHRoaXMuX2ZpZWxkVHlwZSwiKSIpXT1EZShlLCJzdHJpbmdpZnkiLHRoaXMsMykoW10pLHR9cmV0dXJuIERlKGUsInN0cmluZ2lmeSIsdGhpcywzKShbXSl9fSx7a2V5OiJzdWJzdGl0dXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzPXRoaXMucHJvcGVydGllcy5jb25jYXQodCksdGhpcy5fcmVzb2x1dGlvblR5cGU9InN1YiIsdGhpc319LHtrZXk6Im1hcCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5uYW1lPXQsdGhpcy5wcm9wZXJ0aWVzPXRoaXMucHJvcGVydGllcy5jb25jYXQoZSksdGhpcy5fcmVzb2x1dGlvblR5cGU9QWUsdGhpc319LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJih0aGlzLnByb3BlcnRpZXM9dGhpcy5wcm9wZXJ0aWVzLmNvbmNhdCh0KSksdGhpc319XSl9KFdlKSxaZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dmFyIHQ7cmV0dXJuIFVlKHRoaXMsZSksKHQ9UmUodGhpcyxlKSkuZGVmaW5pdGlvblR5cGU9IkNvbGxlY3Rpb24iLHQubWluRWxlbWVudHM9MCx0fXJldHVybiBGZShlLHQpLFZlKGUsW3trZXk6InBhcnNlIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLm1pbkVsZW1lbnRzJiYoIXR8fHQubGVuZ3RoPHRoaXMubWluRWxlbWVudHMpKXRocm93IiI7aWYodm9pZCAwIT09dCl7aWYoIVoodCkpdGhyb3ciIjtyZXR1cm4gdC5tYXAoRGUoZSwicGFyc2UiLHRoaXMsMSkuYmluZCh0aGlzKSl9fX0se2tleToic3RyaW5naWZ5Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Jlc29sdXRpb25UeXBlPT09QWUpe3ZhciB0PXt9O3RbIiIuY29uY2F0KHRoaXMubWluRWxlbWVudHMsIi4uLm4iKV09RGUoZSwic3RyaW5naWZ5Iix0aGlzLDMpKFtdKVsiIi5jb25jYXQodGhpcy5uYW1lLCIgKCIpLmNvbmNhdCh0aGlzLl9maWVsZFR5cGUsIikiKV07dmFyIG49e307cmV0dXJuIG5bIiIuY29uY2F0KHRoaXMubmFtZSwiICgiKS5jb25jYXQodGhpcy5fZmllbGRUeXBlLCIpIildPXQsbn1yZXR1cm4gRGUoZSwic3RyaW5naWZ5Iix0aGlzLDMpKFtdKX19LHtrZXk6IndpdGhNaW5FbGVtZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWluRWxlbWVudHM9dCx0aGlzLl9maWVsZFR5cGU9dD4wP3hlOkNlLHRoaXN9fV0pfShKZSk7ZnVuY3Rpb24gWGUodCl7cmV0dXJuIFhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxYZSh0KX1mdW5jdGlvbiBZZSh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdG4odCl9KHQpfHxmdW5jdGlvbih0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9dFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT10WyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20odCl9KHQpfHxmdW5jdGlvbih0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdG4odCxlKTt2YXIgbj17fS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKHQpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/dG4odCxlKTp2b2lkIDB9fSh0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB0bih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gZW4odCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG5uKHIua2V5KSxyKX19ZnVuY3Rpb24gbm4odCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPVhlKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1YZShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1YZShlKT9lOmUrIiJ9ZnVuY3Rpb24gcm4oKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihybj1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gb24odCxlLG4scil7dmFyIG89YW4odW4oMSZyP3QucHJvdG90eXBlOnQpLGUsbik7cmV0dXJuIDImciYmImZ1bmN0aW9uIj09dHlwZW9mIG8/ZnVuY3Rpb24odCl7cmV0dXJuIG8uYXBwbHkobix0KX06b31mdW5jdGlvbiBhbigpe3JldHVybiBhbj0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZnVuY3Rpb24odCxlKXtmb3IoOyF7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD11bih0KSk7KTtyZXR1cm4gdH0odCxlKTtpZihyKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSk7cmV0dXJuIG8uZ2V0P28uZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP3Q6bik6by52YWx1ZX19LGFuLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiB1bih0KXtyZXR1cm4gdW49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LHVuKHQpfWZ1bmN0aW9uIGNuKHQsZSl7cmV0dXJuIGNuPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sY24odCxlKX12YXIgZm49WyJfZXhwRGF0YUxheWVyIiwiX3NpZ25hbHNEYXRhTGF5ZXIiXSxzbj1bImFkZF92aXJ0dWFsX3BhZ2VfdmlldyIsInNldF9jb25maWciLCJzdWJzY3JpYmUiXSxsbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe3ZhciBlLHI9dC5wYWdlVmlld1NjaGVtYSxvPXQuYXV0b1BhZ2VWaWV3RGlzYWJsZWQsaT10LmJlZm9yZUV2ZW50LGE9dC5pbW1lZGlhdGVTY2hlbWFzLHU9dm9pZCAwPT09YT9bXTphO3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLG4pLChlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT11bihlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09WGUoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQscm4oKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLHVuKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLG4sW2ZuXSkpLnBhZ2VWaWV3U2NoZW1hPXIsZS5hdXRvUGFnZVZpZXdEaXNhYmxlZD1vLGUuYmVmb3JlRXZlbnQ9aSxlLmltbWVkaWF0ZVNjaGVtYXM9W10uY29uY2F0KHNuLFllKHUpKSxlLl9pbml0RXZlbnRzKCksZX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmY24odCxlKX0obix0KSxyPW4sKG89W3trZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltbWVkaWF0ZVNjaGVtYXMuaW5jbHVkZXModC5zY2hlbWEpP3RoaXMucHJvY2Vzcyh0KTpvbihuLCJwdXNoIix0aGlzLDMpKFt0XSl9fSx7a2V5OiJfaW5pdEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9IXRoaXMuYXV0b1BhZ2VWaWV3RGlzYWJsZWQsZT10aGlzLmFzeW5jQ29tbWFuZHMubGVuZ3RoLTE7ZT49MDtlLS0pe3ZhciBuPXRoaXMuYXN5bmNDb21tYW5kc1tlXTtuLnNjaGVtYSE9PXRoaXMucGFnZVZpZXdTY2hlbWF8fG4uZGF0YSYmbi5kYXRhLnZpcnR1YWxfcGF0aHx8KHQ9ITEpLCJzZXRfY29uZmlnIj09PW4uc2NoZW1hJiZ0aGlzLnByb2Nlc3MuYXBwbHkodGhpcyxZZSh0aGlzLmFzeW5jQ29tbWFuZHMuc3BsaWNlKGUsMSkpKX10JiZ0aGlzLnByb2Nlc3Moe3NjaGVtYTp0aGlzLnBhZ2VWaWV3U2NoZW1hfSl9fSx7a2V5OiJkZWJ1Z1RyYWZmaWMiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMucHVzaCh7c2NoZW1hOiJzdWJzY3JpYmUiLGRhdGE6e25hbWU6ImRlYnVnVHJhZmZpYyIsY2FsbGJhY2s6dHx8ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGwhPXQmJm51bGwhPT0oZT10LmV2ZW50KSYmdm9pZCAwIT09ZSYmbnVsbCE9PShlPWUuZGF0YSkmJnZvaWQgMCE9PWUmJm51bGwhPT0oZT1lLnRyYWZmaWMpJiZ2b2lkIDAhPT1lJiZlLmVpZD9jb25zb2xlLmxvZyh0LmV2ZW50LmRhdGEudHJhZmZpYy5laWQsdC5ldmVudC5kYXRhLnRyYWZmaWMuY3VzdG9tUHJvcGVydGllcyk6e319fX0pfX0se2tleToicHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24odCl7b24obiwicHVzaExvZyIsdGhpcywzKShbdF0pO3RyeXt2YXIgcj10LmRhdGEsbz10LnNjaGVtYXx8dC5pbnRlcmZhY2UsaT10LnR5cGUsYT10LnZlcnNpb258fCJ2MSIsdT10LnRhcmdldHN8fFtdLGM9e2V2ZW50SWQ6bGUoKX07dGhpcy5iZWZvcmVFdmVudCYmdGhpcy5iZWZvcmVFdmVudCgpLGZ1bmN0aW9uKCl7Zm9yKDtlZTxXdC5sZW5ndGg7KXt2YXIgdD1XdFtlZV07VSh0LChmdW5jdGlvbih0LGUpey0xPT09WHQuaW5kZXhPZih0LnRvTG93ZXJDYXNlKCkpJiZuZSh0KSYmKHJlKHQsZSksdGVbdF09ZSl9KSksZWUrK319KCksZnVuY3Rpb24odCxlLG4scixvLGkpe3ZhciBhPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1QZVt0XTtpZihyKXJldHVybiByLmdldEludGVyZmFjZSh0LG4sZSl9KHQsZSxuKSx1PW5ldyB6ZSh0LGEucHJvcGVydGllcykucGFyc2Uocil8fHt9LGM9bmV3IGEuaGFuZGxlcih1LGUsbixvLGkpO2MucHJlUHJvY2Vzcyh1KSxjLnByb2Nlc3ModSl9KG8saSxhLHIsYyx1KX1jYXRjaChuKXt2YXIgZj1bIlVuYWJsZSB0byBwcm9jZXNzIix0LCJcblxuIl07Qy5hcHBseShlLGYuY29uY2F0KG4pKX19fV0pJiZlbihyLnByb3RvdHlwZSxvKSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyO3ZhciByLG99KGRlKTtmdW5jdGlvbiBwbih0KXtyZXR1cm4gcG49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHBuKHQpfWZ1bmN0aW9uIHluKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCx2bihyLmtleSkscil9fWZ1bmN0aW9uIHZuKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1wbih0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9cG4obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09cG4oZSk/ZTplKyIifWZ1bmN0aW9uIGJuKCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oYm49ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIGRuKCl7cmV0dXJuIGRuPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1mdW5jdGlvbih0LGUpe2Zvcig7IXt9Lmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmbnVsbCE9PSh0PWhuKHQpKTspO3JldHVybiB0fSh0LGUpO2lmKHIpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKTtyZXR1cm4gby5nZXQ/by5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/dDpuKTpvLnZhbHVlfX0sZG4uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGhuKHQpe3JldHVybiBobj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0saG4odCl9ZnVuY3Rpb24gbW4odCxlKXtyZXR1cm4gbW49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxtbih0LGUpfXZhciBnbj1bIl90cmZxIl0sd249ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSwobj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9aG4oZSksZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PXBuKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfSh0LGJuKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZSxufHxbXSxobih0KS5jb25zdHJ1Y3Rvcik6ZS5hcHBseSh0LG4pKX0odGhpcyxlLFtnbl0pKS5oYW5kbGVycz10LG4uc3RhcnQoKSxufXJldHVybiBmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZtbih0LGUpfShlLHQpLG49ZSxyPVt7a2V5OiJwcm9jZXNzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgbixyLG87KG49ZSxyPXRoaXMsImZ1bmN0aW9uIj09dHlwZW9mKG89ZG4oaG4oMSYzP24ucHJvdG90eXBlOm4pLCJwdXNoTG9nIixyKSk/ZnVuY3Rpb24odCl7cmV0dXJuIG8uYXBwbHkocix0KX06bykoW3RdKTt0cnl7dmFyIGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwxKSxhPXRbMF07dGhpcy5oYW5kbGVyc1thXT90aGlzLmhhbmRsZXJzW2FdLmFwcGx5KG51bGwsaSk6QygiSW52YWxpZCBjb21tYW5kIHNlbnQgdG8gZGF0YSBsYXllciIsdGhpcy5kYXRhTGF5ZXJOYW1lLHQpfWNhdGNoKHIpe0MoIlVuYWJsZSB0byBwcm9jZXNzIix0LHIpfX19XSxyJiZ5bihuLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxuO3ZhciBuLHJ9KGRlKTtjb25zdCBPbj1uZXcgb3Q7dmFyIGpuLF9uLFNuLFBuPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBvPWIoImNvb2tpZSIsInNhbWVTaXRlIil8fCIiLGk9bmV3IERhdGU7aS5zZXRUaW1lKGkuZ2V0VGltZSgpKzYwKm4qMWUzKSxsKCkuY29va2llPSIiLmNvbmNhdCh0LCI9IikuY29uY2F0KGVuY29kZVVSSShlKSwiOyBkb21haW49IikuY29uY2F0KHYoKSwiOyAiKSsobj8iZXhwaXJlcz0iLmNvbmNhdChpLnRvR01UU3RyaW5nKCksIjsgIik6IiIpKyhyPyJwYXRoPSIuY29uY2F0KHIsIjsgIik6IiIpKyhvPyJTYW1lU2l0ZT0iLmNvbmNhdChvLCI7ICIpOiIiKSsoIk5PTkUiPT09by50b1VwcGVyQ2FzZSgpPyIgU2VjdXJlOyI6IiIpfSxFbj1mdW5jdGlvbih0KXt2YXIgZT1sKCkuY29va2llO3JldHVybiBfbiE9PWUmJihTbj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5zcGxpdCgiOyIpLG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBvPS9eXHMqKFtePV0rKVxzKj1ccyooLiopJC8uZXhlYyhlW3JdKTtpZihvJiZvWzJdKXt2YXIgaT1vWzFdLnRyaW0oKSxhPWRlY29kZVVSSUNvbXBvbmVudChvWzJdLnRyaW0oKSk7bltpXT1hfX1yZXR1cm4gbn0oZSksX249ZSksU25bdF19LGtuPWZ1bmN0aW9uKHQpe3ZhciBlPUVuKHQpO3JldHVybiBXKGUsIiYiLCI9Iil9LFRuPWZ1bmN0aW9uKCl7dmFyIHQsZT1sKCkucXVlcnlTZWxlY3RvcigibWV0YVtuYW1lPSdnZDp0cmFjZUlkJ10iKTtyZXR1cm4gZSYmKHQ9ZS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSksdCYmIUt0LmdldCgidGNjLmRpc2FibGVQYWdlVHJhY2luZyIpP3t0cmFjZV9pZDp0LHRyYWNlZDoxfTp7dHJhY2VfaWQ6bGUoKS5yZXBsYWNlKC8tL2csIiIpfX0sSW49InVybjpzaGFyZWQ6dXNlcjpldmVudDovZGF0YS1wbGF0Zm9ybS9zaWduYWxzL2NsaWNrL3YxIixDbj0idXJuOnNoYXJlZDp1c2VyOmV2ZW50Oi9kYXRhLXBsYXRmb3JtL3NpZ25hbHMvaW1wcmVzc2lvbi92MSIseG49InVybjpzaGFyZWQ6dXNlcjpldmVudDovZGF0YS1wbGF0Zm9ybS9zaWduYWxzL2VsZW1lbnQtYWN0aW9uL3YxIixBbj0idXJuOnNoYXJlZDp1c2VyOmV2ZW50Oi9kYXRhLXBsYXRmb3JtL3NpZ25hbHMvdHJhZmZpYy1ldmVudC92MSIsUm49InVybjpzaGFyZWQ6dXNlcjpldmVudDovZGF0YS1wbGF0Zm9ybS9zaWduYWxzL2V4cGVyaW1lbnQtYXNzaWdubWVudC92MSIsTG49InVybjpzaGFyZWQ6dXNlcjpldmVudDovYXBwY29uZmlnL2lkLXBlcmNlbnRhZ2UtZXZhbHVhdGlvbi92MSIsRG49WyJsb2FkIl07ZnVuY3Rpb24gTW4odCl7cmV0dXJuIE1uPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxNbih0KX1mdW5jdGlvbiBCbih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsRm4oci5rZXkpLHIpfX1mdW5jdGlvbiBGbih0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9TW4odCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPU1uKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PU1uKGUpP2U6ZSsiIn12YXIgcW49ZnVuY3Rpb24oKXtyZXR1cm4gdD1mdW5jdGlvbiB0KGUsbixyLG8saSl7IWZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5pbnB1dD1lLHRoaXMuaW50ZXJmYWNlVHlwZT1uLHRoaXMuaW50ZXJmYWNlVmVyc2lvbj1yLHRoaXMuaW50ZXJuYWw9byx0aGlzLnRhcmdldHM9aX0sKGU9W3trZXk6InByZVByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKHQpe319LHtrZXk6InByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKHQpe319XSkmJkJuKHQucHJvdG90eXBlLGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHQ7dmFyIHQsZX0oKTtmdW5jdGlvbiBVbih0KXtyZXR1cm4gVW49ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LFVuKHQpfWZ1bmN0aW9uIE5uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciBuPW51bGw9PXQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxpLGEsdT1bXSxjPSEwLGY9ITE7dHJ5e2lmKGk9KG49bi5jYWxsKHQpKS5uZXh0LDA9PT1lKXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9aS5jYWxsKG4pKS5kb25lKSYmKHUucHVzaChyLnZhbHVlKSx1Lmxlbmd0aCE9PWUpO2M9ITApO31jYXRjaCh0KXtmPSEwLG89dH1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihhPW4ucmV0dXJuKCksT2JqZWN0KGEpIT09YSkpcmV0dXJufWZpbmFsbHl7aWYoZil0aHJvdyBvfX1yZXR1cm4gdX19KHQsZSl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBWbih0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9Wbih0LGUpOnZvaWQgMH19KHQsZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBWbih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gR24odCxlKXt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihyPXIuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIEtuKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1tlXT9hcmd1bWVudHNbZV06e307ZSUyP0duKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7SG4odCxlLG5bZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOkduKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSkpfXJldHVybiB0fWZ1bmN0aW9uIEhuKHQsZSxuKXtyZXR1cm4oZT16bihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH1mdW5jdGlvbiBXbih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsem4oci5rZXkpLHIpfX1mdW5jdGlvbiB6bih0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9VW4odCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPVVuKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PVVuKGUpP2U6ZSsiIn12YXIgJG49ZnVuY3Rpb24oKXtyZXR1cm4gdD1mdW5jdGlvbiB0KGUpe3ZhciBuPWUuY29udGV4dEZuTWFwLHI9ZS5wYXJhbXNGbk1hcCxvPXZvaWQgMD09PXI/e306cixpPWUud2luZG93TmFtZTshZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyx0KSx0aGlzLl9jb250ZXh0Rm5NYXA9bix0aGlzLl9wYXJhbXNGbk1hcD1vLHRoaXMuX3dpbmRvd05hbWU9aX0sKGU9W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29udGV4dCxuPXZvaWQgMD09PWU/e306ZSxyPXQuY29udGV4dEZuTWFwLG89dm9pZCAwPT09cj97fTpyLGk9dC5wYXJhbXNGbk1hcCxhPXZvaWQgMD09PWk/e306aTt0aGlzLnZlcnNpb249MCx0aGlzLmNvbnRleHQ9bix0aGlzLl9pbml0aWFsQ29udGV4dD1Lbih7fSxuKSx0aGlzLl9jb250ZXh0TWFwPXt9LHRoaXMuX2NvbnRleHRGbk1hcD1OKHRoaXMuX2NvbnRleHRGbk1hcCxvKSx0aGlzLl9wYXJhbXNGbk1hcD1OKHRoaXMuX3BhcmFtc0ZuTWFwLGEpfX0se2tleToiX2J1aWxkQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9S24oe30sdGhpcy5faW5pdGlhbENvbnRleHQpO3JldHVybiBPYmplY3QuZW50cmllcyh0KS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbixyPU5uKHQsMiksbz1yWzBdLGk9clsxXSxhPW8uc3BsaXQoIi4iKSx1PWU7YS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2U8YS5sZW5ndGgtMT8odVt0XT11W3RdfHx7fSx1PXVbdF0pOm49dH0pKSx1W25dPWl9KSksZX19LHtrZXk6InVwZGF0ZUNvbnRleHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLl9jb250ZXh0Rm5NYXApe3ZhciBlPSExLG49e30scj17fTtPYmplY3QuZW50cmllcyh0aGlzLl9wYXJhbXNGbk1hcCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9Tm4odCwyKSxuPWVbMF0sbz1lWzFdO3RyeXtyW25dPW8oKX1jYXRjaCh0KXtDKCJFcnJvciBleGVjdXRpbmcgcGFyYW1zRm5NYXAgZm9yIGtleTogIi5jb25jYXQobiksdCl9fSkpLE9iamVjdC5lbnRyaWVzKHRoaXMuX2NvbnRleHRGbk1hcCkuZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIGk9Tm4obywyKSxhPWlbMF0sdT0oMCxpWzFdKShyKTt0Ll9jb250ZXh0TWFwW2FdIT09dSYmKGU9ITApLHZvaWQgMCE9PXUmJihuW2FdPXUpfSkpLGUmJih0aGlzLnZlcnNpb24rKyx0aGlzLmNvbnRleHQ9JCh0aGlzLl9idWlsZENvbnRleHQobikpLHRoaXMuX2NvbnRleHRNYXA9bix0aGlzLl93aW5kb3dOYW1lJiZEKHRoaXMuX3dpbmRvd05hbWUsdGhpcy5jb250ZXh0KSl9fX1dKSYmV24odC5wcm90b3R5cGUsZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdDt2YXIgdCxlfSgpLFFuPXsiZ29kYWRkeS5jb20iOjEsIm1lZGlhdGVtcGxlLm5ldCI6NDUwMCwiYWZ0ZXJuaWMuY29tIjo0OTcwMzZ9LEpuPVtmdW5jdGlvbigpe3JldHVybiAkdCgic2l0ZSIsInByaXZhdGVMYWJlbElkIil9LGZ1bmN0aW9uKCl7cmV0dXJuIF8oInBsaWQiKX0sZnVuY3Rpb24oKXt2YXIgdD12KCkucmVwbGFjZSgiZGV2LSIsIiIpLnJlcGxhY2UoInRlc3QtIiwiIikucmVwbGFjZSgic3RnLSIsIiIpO2lmKFFuLmhhc093blByb3BlcnR5KHQpKXJldHVybiBRblt0XX1dO2Z1bmN0aW9uIFpuKHQpe3JldHVybiBabj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sWm4odCl9ZnVuY3Rpb24gWG4odCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFluKHIua2V5KSxyKX19ZnVuY3Rpb24gWW4odCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPVpuKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1abihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1abihlKT9lOmUrIiJ9ZnVuY3Rpb24gdHIoKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybih0cj1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gZXIoKXtyZXR1cm4gZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24odCxlLG4pe3ZhciByPWZ1bmN0aW9uKHQsZSl7Zm9yKDshe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZudWxsIT09KHQ9bnIodCkpOyk7cmV0dXJuIHR9KHQsZSk7aWYocil7dmFyIG89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpO3JldHVybiBvLmdldD9vLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz90Om4pOm8udmFsdWV9fSxlci5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbnIodCl7cmV0dXJuIG5yPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxucih0KX1mdW5jdGlvbiBycih0LGUpe3JldHVybiBycj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LHJyKHQsZSl9dmFyIG9yPXsiY2xpZW50LnVzZXJBZ2VudCI6ZnVuY3Rpb24oKXtyZXR1cm4gcCgpLnVzZXJBZ2VudH0sImNsaWVudC5zZGsubmFtZSI6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoImNsaWVudCIsIm5hbWUiKX0sImNsaWVudC5zZGsudmVyc2lvbiI6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoImNsaWVudCIsInZlcnNpb24iKX0sImNsaWVudC5kZXZpY2Uudmlld3BvcnRXaWR0aCI6ZnVuY3Rpb24odCl7dmFyIGU9dC53aW4sbj10LmRvYztyZXR1cm4gdyhlLmlubmVyV2lkdGg/ZS5pbm5lcldpZHRoOm4uYm9keS5vZmZzZXRXaWR0aCl9LCJjbGllbnQuZGV2aWNlLnZpZXdwb3J0SGVpZ2h0IjpmdW5jdGlvbih0KXt2YXIgZT10LndpbixuPXQuZG9jO3JldHVybiB3KGUuaW5uZXJIZWlnaHQ/ZS5pbm5lckhlaWdodDpuLmJvZHkub2Zmc2V0SGVpZ2h0KX0sImNsaWVudC5kZXZpY2Uuc2NyZWVuUmVzb2x1dGlvbldpZHRoIjpmdW5jdGlvbih0KXt2YXIgZT10LndpbjtyZXR1cm4gdyhlLnNjcmVlbi53aWR0aCl9LCJjbGllbnQuZGV2aWNlLnNjcmVlblJlc29sdXRpb25IZWlnaHQiOmZ1bmN0aW9uKHQpe3ZhciBlPXQud2luO3JldHVybiB3KGUuc2NyZWVuLmhlaWdodCl9LCJwYWdlLmlkIjpmdW5jdGlvbigpe3JldHVybiAkdCgicGFnZSIsImlkIil9LCJwYWdlLnRyYWNlSWQiOmZ1bmN0aW9uKCl7cmV0dXJuIE9uLmdldCgidHJhY2VfaWQiKX0sInBhZ2UuY29udGVudEdyb3VwIjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PSR0KCJwYWdlIiwiY29udGVudEdyb3VwIik7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB0O2Zvcih2YXIgZT10LnNwbGl0KCIvIiksbj1lLmxlbmd0aC0xO24+PTA7bi0tKWVbbl09ZVtuXS50cmltKCksZVtuXXx8ZS5zcGxpY2UobiwxKTtpZihlLmxlbmd0aD4wKWZvcig7ZS5sZW5ndGg8MzspZS5wdXNoKCJPdGhlciIpO3JldHVybiBlLmpvaW4oIiAvICIpfSgpfSwicGFnZS5ob3N0IjpmdW5jdGlvbigpe3JldHVybiB5KCl9LCJwYWdlLnBhdGgiOmZ1bmN0aW9uKHQpe3JldHVybiB0Lndpbi5sb2NhdGlvbi5wYXRobmFtZX0sInBhZ2UudmlydHVhbFBhdGgiOmZ1bmN0aW9uKCl7cmV0dXJuIE9uLmdldCgidmlydHVhbF9wYXRoIil9LCJwYWdlLmxvY2F0aW9uIjpmdW5jdGlvbigpe3JldHVybiBuPSh0PWooKSkubGVuZ3RoPyhmdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXS5zcGxpdCgiPSIpLHI9ITEsbz1uWzFdO28hPT1kZWNvZGVVUklDb21wb25lbnQoblsxXSkmJihvPWRlY29kZVVSSUNvbXBvbmVudChuWzFdKSxyPSEwKTt2YXIgaT1oKG8pO3ImJihpPWVuY29kZVVSSUNvbXBvbmVudChpKSksdFtlXT0iIi5jb25jYXQoblswXSwiPSIpLmNvbmNhdChpKX19KHQpLCI/Iit0LmpvaW4oIiYiKSk6IiIsKHI9cygpLmxvY2F0aW9uKSYmKGU9IiIuY29uY2F0KHIucHJvdG9jb2wsIi8vIikuY29uY2F0KHIuaG9zdG5hbWUpLmNvbmNhdChyLnBhdGhuYW1lKSksbiYmKGU9IiIuY29uY2F0KGUpLmNvbmNhdChuKSksZTt2YXIgdCxlLG4scn0sInBhZ2UucmVmZXJyZXIiOmZ1bmN0aW9uKHQpe3JldHVybiB0LmRvYy5yZWZlcnJlcn0sInNpdGUucHJpdmF0ZUxhYmVsSWQiOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxKbi5sZW5ndGg7dCsrKXt2YXIgZT1Kblt0XSgpO2lmKGUmJk8oZSkpcmV0dXJuIHcoZSl9fSgpfSwiYWdlbnQuYWdlbnRJZCI6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoImFnZW50IiwiYWdlbnRJZCIpfSwiYWdlbnQuYWdlbnRWZXJzaW9uIjpmdW5jdGlvbigpe3JldHVybiAkdCgiYWdlbnQiLCJhZ2VudFZlcnNpb24iKX0sImFnZW50LmFnZW50TmFtZSI6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoImFnZW50IiwiYWdlbnROYW1lIil9LCJhZ2VudC5jb252ZXJzYXRpb25JZCI6ZnVuY3Rpb24oKXtyZXR1cm4gJHQoImFnZW50IiwiY29udmVyc2F0aW9uSWQiKX19LGlyPXt3aW46cyxkb2M6bH07Y29uc3QgYXI9bmV3KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9bnIoZSksZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PVpuKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfSh0LHRyKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZSxufHxbXSxucih0KS5jb25zdHJ1Y3Rvcik6ZS5hcHBseSh0LG4pKX0odGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJnJyKHQsZSl9KGUsdCksbj1lLHI9W3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBuLHIsbyxpPXQudHJhY2VJZCxhPXQuY29udGV4dEZuTWFwLHU9dC5wYXJhbXNGbk1hcDsobj1lLHI9dGhpcywiZnVuY3Rpb24iPT10eXBlb2Yobz1lcihucigxJjM/bi5wcm90b3R5cGU6biksImluaXQiLHIpKT9mdW5jdGlvbih0KXtyZXR1cm4gby5hcHBseShyLHQpfTpvKShbe2NvbnRleHQ6e3RyYWNlSWQ6aX0sY29udGV4dEZuTWFwOmEscGFyYW1zRm5NYXA6dX1dKX19XSxyJiZYbihuLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxuO3ZhciBuLHJ9KCRuKSkoe2NvbnRleHRGbk1hcDpvcixwYXJhbXNGbk1hcDppcix3aW5kb3dOYW1lOiJnbG9iYWxDb250ZXh0In0pO3ZhciB1cj0iZXhwZXJpbWVudHMiO2NvbnN0IGNyPW5ldyBvdCxmcj1uZXcgJG4oe2NvbnRleHRGbk1hcDp7ZXhwZXJpbWVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gY3IuZ2V0KCJleHBlcmltZW50cyIpfX19KTt2YXIgc3I9WyJldmVudHMiXTtmdW5jdGlvbiBscih0LGUpeyhudWxsPT1lfHxlPnQubGVuZ3RoKSYmKGU9dC5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkoZSk7bjxlO24rKylyW25dPXRbbl07cmV0dXJuIHJ9dmFyIHByPXt9LHlyPVsicm91dGluZyIsIndlYkNvbnRleHQiXSx2cj1mdW5jdGlvbih0LGUsbil7dmFyIHI9ZS5jYWxsYmFjaztzZXRUaW1lb3V0KChmdW5jdGlvbigpe3RyeXtyKG4pfWNhdGNoKGUpe0MoIkZhaWxlZCB0byBwdXNoIGRhdGFsYXllciBldmVudCB0byBzdWJzY3JpYmVyICgiLmNvbmNhdCh0LCIpIGNhbGxiYWNrIiksZSl9fSksMCl9LGJyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1lLnNjaGVtYUlkcyxvPWZ1bmN0aW9uKHQsZSl7ZS5ldmVudHM7dmFyIG49ZnVuY3Rpb24odCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIHQpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKXtpZihlLmluY2x1ZGVzKHIpKWNvbnRpbnVlO25bcl09dFtyXX1yZXR1cm4gbn0odCxlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2ZvcihyPTA7cjxpLmxlbmd0aDtyKyspbj1pW3JdLGUuaW5jbHVkZXMobil8fHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxuKSYmKG9bbl09dFtuXSl9cmV0dXJuIG99KGUsc3IpLHI9dC5maWVsZHN8fFtdO3JldHVybiB5ci5mb3JFYWNoKChmdW5jdGlvbih0KXtyLmluY2x1ZGVzKHQpfHxkZWxldGUgblt0XX0pKSxufShlLG4pO2UuYmF0Y2g/KG8uZXZlbnRzPXI/bi5ldmVudHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gci5pbmNsdWRlcyh0LnNjaGVtYUlkKX0pKTpuLmV2ZW50cyxvLmV2ZW50cy5sZW5ndGg+MCYmdnIodCxlLG8pKTpuLmV2ZW50cy5mb3JFYWNoKChmdW5jdGlvbihuKXtyJiYhci5pbmNsdWRlcyhuLnNjaGVtYUlkKXx8dnIodCxlLE4obyx7ZXZlbnQ6bn0pKX0pKX0sZHI9ZnVuY3Rpb24odCxlKXt2YXIgbj1ncigpO24ubGVuZ3RoPj1ociYmeCgiIi5jb25jYXQodCwiIHN1YnNjcmliZWQgdG8gU0NDIGFmdGVyIHRoZSBldmVudFF1ZXVlIHdhcyBmdWxsLiBTb21lIGV2ZW50cyBtYXkgaGF2ZSBiZWVuIGxvc3QuIikpLG4uZm9yRWFjaCgoZnVuY3Rpb24obil7cmV0dXJuIGJyKHQsZSxuKX0pKSxwclt0XT1lfSxocj0yZTMsbXI9W10sZ3I9ZnVuY3Rpb24oKXtyZXR1cm5bXS5jb25jYXQobXIpfTt2YXIgd3I9ZnVuY3Rpb24odCl7dmFyIGUsbj10LnNjaGVtYUlkLHI9dC5iYXNlR2xvYmFsLG89dC5vdmVycmlkZSxpPXQuZGVmYXVsdFZlcnNpb24sYT0idXJuOnNoYXJlZDphaTpldmVudHM6L2FnZW50L3YxIj09PW4sdT1hP2Z1bmN0aW9uKHQsZSl7dmFyIG49dHx8e30scj1uLnRyYWNlSWQsbz1uLmNvbnRleHQsaT1uLmNsaWVudCxhPXZvaWQgMD09PWk/e306aSx1PWEudXNlckFnZW50LGM9YS5zZGssZj1uLmNvbnNlbnQscz1uLnBhZ2UsbD12b2lkIDA9PT1zP3t9OnMscD1sLmhvc3QseT1sLnBhdGgsdj1sLmxvY2F0aW9uLGI9bC50cmFjZUlkLGQ9bi5zaXRlLGg9bi5hZ2VudDtyZXR1cm4gJChWKHt0cmFjZUlkOnIsY29udGV4dDpvLGNsaWVudDp7dXNlckFnZW50OnUsc2RrOmN9LGNvbnNlbnQ6ZixwYWdlOntob3N0OnAscGF0aDp5LGxvY2F0aW9uOnYsdHJhY2VJZDpifSxzaXRlOmQsYWdlbnQ6aH0sZSkpfShyLG8pOnI7cmV0dXJue2dsb2JhbDp1LHZlcnNpb246YT8oZT11LGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0yMTY2MTM2MjYxLG49MDtuPHQubGVuZ3RoO24rKyllPShlXj10LmNoYXJDb2RlQXQobikpKygoZTw8MSkrKGU8PDQpKyhlPDw3KSsoZTw8OCkrKGU8PDI0KSk+Pj4wO3JldHVybiBlLnRvU3RyaW5nKCl9KEpTT04uc3RyaW5naWZ5KFEoZSkpKSk6aX19LE9yPWZ1bmN0aW9uKHQpe3ZhciBlLG4scj10Lmdsb2JhbFNjaGVtYUlkLG89dC5nbG9iYWxPdmVycmlkZSxpPXQuYnVzaW5lc3NDb250ZXh0LGE9dC5ldmVudHMsdT10LndlYkNvbnRleHQsYz10LnJvdXRpbmcsZj12b2lkIDA9PT1jP3t9OmMscz1mLmV2ZW50QnVzQXBpS2V5LGw9Zi5oYXNDb252ZXJzaW9uLHA9Zi50YXJnZXRzO2lmKFooYSkmJjAhPT1hLmxlbmd0aCl7Zm9yKHZhciB5PUooKSx2PTA7djxhLmxlbmd0aDt2KyspYVt2XS5kYXRhPU4oe2V2ZW50Q3JlYXRpb25UaW1lc3RhbXA6eX0sYVt2XS5kYXRhKTthci51cGRhdGVDb250ZXh0KCksZnIudXBkYXRlQ29udGV4dCgpO3ZhciBkLGg9d3Ioe3NjaGVtYUlkOnIsYmFzZUdsb2JhbDphci5jb250ZXh0LG92ZXJyaWRlOm8sZGVmYXVsdFZlcnNpb246YXIudmVyc2lvbn0pLG09aC5nbG9iYWwsZz1oLnZlcnNpb247bj17c2NoZW1hSWQ6cnx8KGQ9bnVsbD09PShlPWFyLmNvbnRleHQuc2l0ZSl8fHZvaWQgMD09PWU/dm9pZCAwOmUucHJpdmF0ZUxhYmVsSWQsZD8idXJuOnNoYXJlZDp1c2VyOmV2ZW50czovdjIiOiJ1cm46c2hhcmVkOnVzZXI6ZXZlbnRzOi92MSIpLGdsb2JhbDptLGJ1c2luZXNzQ29udGV4dDppLGV2ZW50czphLHdlYkNvbnRleHQ6Tihmci5jb250ZXh0LHUpLHJvdXRpbmc6e2V2ZW50QnVzQXBpS2V5OnN8fGIoImV2ZW50QnVzIiwic2NjQXBpS2V5IiksZ2xvYmFsQ29udGV4dFZlcnNpb246ZyxoYXNDb252ZXJzaW9uOmwsdGFyZ2V0czpwfX0sJChuKSxtci5wdXNoKG4pLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49T2JqZWN0LmVudHJpZXMocHIpO2U8bi5sZW5ndGg7ZSsrKXt2YXIgcj0odT0yLGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KGE9bltlXSl8fGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGksYSx1PVtdLGM9ITAsZj0hMTt0cnl7aWYoaT0obj1uLmNhbGwodCkpLm5leHQsMD09PWUpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1pLmNhbGwobikpLmRvbmUpJiYodS5wdXNoKHIudmFsdWUpLHUubGVuZ3RoIT09ZSk7Yz0hMCk7fWNhdGNoKHQpe2Y9ITAsbz10fWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGE9bi5yZXR1cm4oKSxPYmplY3QoYSkhPT1hKSlyZXR1cm59ZmluYWxseXtpZihmKXRocm93IG99fXJldHVybiB1fX0oYSx1KXx8ZnVuY3Rpb24odCxlKXtpZih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGxyKHQsZSk7dmFyIG49e30udG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP2xyKHQsZSk6dm9pZCAwfX0oYSx1KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpKSxvPXJbMF0saT1yWzFdO3RyeXticihvLGksdCl9Y2F0Y2godCl7QygiRmFpbGVkIHRvIHB1c2ggZGF0YWxheWVyIGV2ZW50IGJhdGNoIHRvIHN1YnNjcmliZXIgKCIuY29uY2F0KG8sIikiKSx0KX19dmFyIGEsdX0obiksbXIubGVuZ3RoPmhyJiZtci5zaGlmdCgpfX07ZnVuY3Rpb24ganIodCl7cmV0dXJuIGpyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxqcih0KX1mdW5jdGlvbiBfcih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsU3Ioci5rZXkpLHIpfX1mdW5jdGlvbiBTcih0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9anIodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPWpyKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PWpyKGUpP2U6ZSsiIn1mdW5jdGlvbiBQcigpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFByPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBFcih0KXtyZXR1cm4gRXI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LEVyKHQpfWZ1bmN0aW9uIGtyKHQsZSl7cmV0dXJuIGtyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sa3IodCxlKX12YXIgVHI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1FcihlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09anIoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsUHIoKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLEVyKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYma3IodCxlKX0oZSx0KSxuPWUsKHI9W3trZXk6InByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuX3B1c2hUb1F1ZXVlKHQpfX0se2tleToiX3B1c2hUb1F1ZXVlIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmludGVybmFsLmhhc0ZpcmVkfHwoT3Ioe2dsb2JhbFNjaGVtYUlkOnRoaXMuX2dldEdsb2JhbFNjaGVtYUlkKCksZ2xvYmFsT3ZlcnJpZGU6dGhpcy5fZ2V0R2xvYmFsT3ZlcnJpZGUoKSxidXNpbmVzc0NvbnRleHQ6dGhpcy5fZ2V0QnVzaW5lc3NDb250ZXh0KCksZXZlbnRzOnRoaXMuX2dldEV2ZW50cyh0KSx3ZWJDb250ZXh0OnRoaXMuX2dldFdlYkNvbnRleHQodCkscm91dGluZzp7ZXZlbnRCdXNBcGlLZXk6dGhpcy5fZ2V0QXBpS2V5KCksaGFzQ29udmVyc2lvbjp0aGlzLl9oYXNDb252ZXJzaW9uKCksdGFyZ2V0czp0aGlzLnRhcmdldHN9fSksdGhpcy5pbnRlcm5hbC5oYXNGaXJlZD0hMCl9fSx7a2V5OiJfZ2V0U2NoZW1hSWQiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiX2dldEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuW3tzY2hlbWFJZDp0aGlzLl9nZXRTY2hlbWFJZCgpLGRhdGE6dH1dfX0se2tleToiX2dldEdsb2JhbFNjaGVtYUlkIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6Il9nZXRHbG9iYWxPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJfZ2V0QnVzaW5lc3NDb250ZXh0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6Il9nZXRBcGlLZXkiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiX2hhc0NvbnZlcnNpb24iLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiX2dldFdlYkNvbnRleHQiLHZhbHVlOmZ1bmN0aW9uKHQpe319XSkmJl9yKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0ocW4pO2Z1bmN0aW9uIElyKHQpe3JldHVybiBJcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sSXIodCl9ZnVuY3Rpb24gQ3IodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHhyKHIua2V5KSxyKX19ZnVuY3Rpb24geHIodCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPUlyKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1JcihuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1JcihlKT9lOmUrIiJ9ZnVuY3Rpb24gQXIoKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihBcj1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gUnIodCl7cmV0dXJuIFJyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxScih0KX1mdW5jdGlvbiBMcih0LGUpe3JldHVybiBMcj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LExyKHQsZSl9Y29uc3QgRHI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1ScihlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09SXIoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsQXIoKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLFJyKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmTHIodCxlKX0oZSx0KSxuPWUsKHI9W3trZXk6Il9nZXRCdXNpbmVzc0NvbnRleHQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuYnVzaW5lc3NDb250ZXh0fX0se2tleToiX2dldEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5ldmVudHN9fSx7a2V5OiJfZ2V0QXBpS2V5Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LmFwaUtleX19LHtrZXk6Il9nZXRHbG9iYWxTY2hlbWFJZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5zY2hlbWFJZH19LHtrZXk6Il9nZXRHbG9iYWxPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5nbG9iYWx9fV0pJiZDcihuLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxuO3ZhciBuLHJ9KFRyKTt2YXIgTXI9L1teYS16MC05XF9cL1wuXC1dL2csQnI9L14oW2EtejAtOV9cLV0rKVwuKFthLXowLTlfXC1dKylcLigoW2EtejAtOV9cL1wtXSspXC4pPyhbYS16MC05X1wvXC1dKylcLihbYS16MC05X1wtXSspXC4oW2EtejAtOV9cLV0rKSQvZyxGcj1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxlPXQuZWlkLG49dC5jdXN0b21Qcm9wZXJ0aWVzLHI9dC5ldmVudENhdGVnb3J5O3JldHVybiBOKHtwYWdlTGV2ZWxQcm9wZXJ0aWVzOk4odGUpLGlkZW50aXR5UmVhbG06JHQoImlkZW50aXR5IiwicmVhbG0iKX0sZSYme2VpZDplfSxuJiZ7Y3VzdG9tUHJvcGVydGllczpufSxyJiZ7ZXZlbnRDYXRlZ29yeTpyfSl9LHFyPWZ1bmN0aW9uKHQsZSxuLHIpe3ZhciBvPXt0cmFmZmljOkZyKHtlaWQ6ZSxjdXN0b21Qcm9wZXJ0aWVzOnJ9KSxwcm9kdWNlckV2ZW50SWQ6dH07aWYoZSl7dmFyIGk9ZnVuY3Rpb24odCl7cmV0dXJuIHQuc3BsaXQoIi4iKX0oZSksYT1mdW5jdGlvbih0KXtyZXR1cm4gdFt0Lmxlbmd0aC0xXX0oaSk7KGZ1bmN0aW9uKHQpe3JldHVybiEhKHQubWF0Y2goQnIpJiZ0Lmxlbmd0aDw9NTAwKX0pKGUpJiZmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9PT1uJiZ0Lmxlbmd0aD49NSYmdC5sZW5ndGg8PTZ9KGksYSxuKSYmKG8uZWxlbWVudD1mdW5jdGlvbih0LGUpe3ZhciBuPTY9PT10Lmxlbmd0aD8xOjAscj17YXJlYTp0WzBdLHByb2R1Y3Q6dFsxXSxzZWN0aW9uOnRbMituXSx3aWRnZXQ6dFszK25dfTtyZXR1cm5bImltcHJlc3Npb24iLCJjbGljayJdLmluY2x1ZGVzKGUpfHwoci5hY3Rpb249ZSkscn0oaSxhKSl9cmV0dXJuIG99LFVyPWZ1bmN0aW9uKHQsZSxuLHIpe251bGwhPXImJm51bGwhPW4mJjAhPT1yJiYwIT09biYmbj5yJiYodFtlXT1NYXRoLnJvdW5kKG4tcikpfSxOcj1mdW5jdGlvbih0LGUsbixyKXt2YXIgbz1sdChlKTshZnVuY3Rpb24odCxlKXtVcih0LCJwYWdlTG9hZFRpbWUiLGUubG9hZEV2ZW50U3RhcnQsZS5uYXZpZ2F0aW9uU3RhcnQpLFVyKHQsImRvbUNvbnRlbnRMb2FkZWRUaW1lIixlLmRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0LGUubmF2aWdhdGlvblN0YXJ0KSxVcih0LCJkb21JbnRlcmFjdGl2ZVRpbWUiLGUuZG9tSW50ZXJhY3RpdmUsZS5uYXZpZ2F0aW9uU3RhcnQpLFVyKHQsInBhZ2VEb3dubG9hZFRpbWUiLGUucmVzcG9uc2VFbmQsZS5yZXNwb25zZVN0YXJ0KSxVcih0LCJkb21haW5Mb29rdXBUaW1lIixlLmRvbWFpbkxvb2t1cEVuZCxlLmRvbWFpbkxvb2t1cFN0YXJ0KSxVcih0LCJzZXJ2ZXJSZXNwb25zZVRpbWUiLGUucmVzcG9uc2VTdGFydCxlLnJlcXVlc3RTdGFydCksVXIodCwic2VydmVyQ29ubmVjdGlvblRpbWUiLGUuY29ubmVjdEVuZCxlLmNvbm5lY3RTdGFydCksVXIodCwicmVkaXJlY3Rpb25UaW1lIixlLmZldGNoU3RhcnQsZS5uYXZpZ2F0aW9uU3RhcnQpfShvLGUpO3ZhciBpPXtuYXZpZ2F0aW9uVHlwZTplLm5hdmlnYXRpb25UeXBlLHRpbWluZzp7bmF2aWdhdGlvbjpvfSx0cmFmZmljOkZyKHtjdXN0b21Qcm9wZXJ0aWVzOm59KSxwcm9kdWNlckV2ZW50SWQ6dCxjb250ZW50TG9hZFR5cGU6cn07cmV0dXJuImhhcmQiPT09ciYmKGkucmVzcG9uc2U9cHQoZSksaS50aW1pbmcubWFya3M9ZS5tYXJrcyxpLnRpbWluZy5tZWFzdXJlcz1lLm1lYXN1cmVzLGkudGltaW5nLnBhaW50PXtmaXJzdFBhaW50OmUuZnAsZmlyc3RDb250ZW50ZnVsUGFpbnQ6ZS5mY3AsbGFyZ2VzdENvbnRlbnRmdWxQYWludDplLmxjcH0pLGl9LFZyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm57dGltaW5nOntwYWludDp7bGFyZ2VzdENvbnRlbnRmdWxQYWludDplLkxDUH0sdml0YWxzOntjdW11bGF0aXZlTGF5b3V0U2hpZnQ6ZS5DTFMsZmlyc3RJbnB1dERlbGF5OmUuRklELHRpbWVUb0ludGVyYWN0aXZlOmUudGltZVRvSW50ZXJhY3RpdmUsaW50ZXJhY3Rpb25Ub05leHRQYWludDplLklOUH19LHRyYWZmaWM6RnIoe2N1c3RvbVByb3BlcnRpZXM6bn0pLHByb2R1Y2VyRXZlbnRJZDp0fX07ZnVuY3Rpb24gR3IodCl7cmV0dXJuIEdyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxHcih0KX1mdW5jdGlvbiBLcih0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsSHIoci5rZXkpLHIpfX1mdW5jdGlvbiBIcih0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9R3IodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPUdyKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PUdyKGUpP2U6ZSsiIn1mdW5jdGlvbiBXcigpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFdyPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiB6cih0KXtyZXR1cm4genI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LHpyKHQpfWZ1bmN0aW9uICRyKHQsZSl7cmV0dXJuICRyPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sJHIodCxlKX1jb25zdCBRcj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksZnVuY3Rpb24odCxlLG4pe3JldHVybiBlPXpyKGUpLGZ1bmN0aW9uKHQsZSl7aWYoZSYmKCJvYmplY3QiPT1HcihlKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fSh0KX0odCxXcigpP1JlZmxlY3QuY29uc3RydWN0KGUsbnx8W10senIodCkuY29uc3RydWN0b3IpOmUuYXBwbHkodCxuKSl9KHRoaXMsZSxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiYkcih0LGUpfShlLHQpLG49ZSxyPVt7a2V5OiJfZ2V0U2NoZW1hSWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHhufX0se2tleToiX2dldEFjdGlvblR5cGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmVsZW1lbnQuYWN0aW9ufX0se2tleToiX2dldEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10LnRyYWZmaWN8fHt9O3JldHVybiBuLmVpZD10aGlzLl9idWlsZExlZ2FjeUVpZCh0aGlzLl9nZXRBY3Rpb25UeXBlKHQpLHQuZWxlbWVudCxuLmVpZCksW3tzY2hlbWFJZDp0aGlzLl9nZXRTY2hlbWFJZCgpLGRhdGE6Tih0LHtwcm9kdWNlckV2ZW50SWQ6ZXx8dGhpcy5pbnRlcm5hbC5ldmVudElkLGVsZW1lbnQ6dC5lbGVtZW50LHRyYWZmaWM6RnIobil9KX1dfX0se2tleToiX2J1aWxkTGVnYWN5RWlkIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiIuY29uY2F0KGUuYXJlYSwiLiIpLmNvbmNhdChlLnByb2R1Y3QsIi4iKS5jb25jYXQoZS5zZWN0aW9uLCIuIikuY29uY2F0KGUud2lkZ2V0LCIuIikuY29uY2F0KHQpfX0se2tleToiX3RyYW5zZm9ybUxlZ2FjeVByb21vIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxyPW4uZWlkLG89bi5jdXN0b21Qcm9wZXJ0aWVzLGk9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnt9O3JldHVybntpZDppLmlkLG5hbWU6aS5uYW1lLGNyZWF0aXZlX25hbWU6aS5jcmVhdGl2ZSxjcmVhdGl2ZV9zbG90OmkucG9zaXRpb24sdHlwZTp0LHByb3BlcnRpZXM6byxlaWQ6dGhpcy5fYnVpbGRMZWdhY3lFaWQodCxlLHIpfX19LHtrZXk6Il9pc1Byb21vIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5wcm9tb3Rpb24mJk9iamVjdC5rZXlzKHQucHJvbW90aW9uKS5sZW5ndGg+MH19XSxyJiZLcihuLnByb3RvdHlwZSxyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxuO3ZhciBuLHJ9KFRyKTtmdW5jdGlvbiBKcih0KXtyZXR1cm4gSnI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LEpyKHQpfWZ1bmN0aW9uIFpyKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxYcihyLmtleSkscil9fWZ1bmN0aW9uIFhyKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1Kcih0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9SnIobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09SnIoZSk/ZTplKyIifWZ1bmN0aW9uIFlyKCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4oWXI9ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIHRvKHQpe3JldHVybiB0bz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sdG8odCl9ZnVuY3Rpb24gZW8odCxlKXtyZXR1cm4gZW89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxlbyh0LGUpfWNvbnN0IG5vPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9dG8oZSksZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PUpyKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfSh0LFlyKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZSxufHxbXSx0byh0KS5jb25zdHJ1Y3Rvcik6ZS5hcHBseSh0LG4pKX0odGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJmVvKHQsZSl9KGUsdCksbj1lLChyPVt7a2V5OiJfZ2V0U2NoZW1hSWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIElufX0se2tleToiX2dldEFjdGlvblR5cGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuImNsaWNrIn19XSkmJlpyKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0oUXIpO2Z1bmN0aW9uIHJvKHQpe3JldHVybiBybz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0scm8odCl9ZnVuY3Rpb24gb28odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KGUpO248ZTtuKyspcltuXT10W25dO3JldHVybiByfWZ1bmN0aW9uIGlvKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPWVbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxhbyhyLmtleSkscil9fWZ1bmN0aW9uIGFvKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1ybyh0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9cm8obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09cm8oZSk/ZTplKyIifWZ1bmN0aW9uIHVvKCl7dHJ5e3ZhciB0PSFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpfWNhdGNoKHQpe31yZXR1cm4odW89ZnVuY3Rpb24oKXtyZXR1cm4hIXR9KSgpfWZ1bmN0aW9uIGNvKCl7cmV0dXJuIGNvPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcj1mdW5jdGlvbih0LGUpe2Zvcig7IXt9Lmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmbnVsbCE9PSh0PWZvKHQpKTspO3JldHVybiB0fSh0LGUpO2lmKHIpe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKTtyZXR1cm4gby5nZXQ/by5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/dDpuKTpvLnZhbHVlfX0sY28uYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGZvKHQpe3JldHVybiBmbz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sZm8odCl9ZnVuY3Rpb24gc28odCxlKXtyZXR1cm4gc289T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fX3Byb3RvX189ZSx0fSxzbyh0LGUpfWNvbnN0IGxvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9Zm8oZSksZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PXJvKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfSh0LHVvKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZSxufHxbXSxmbyh0KS5jb25zdHJ1Y3Rvcik6ZS5hcHBseSh0LG4pKX0odGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJnNvKHQsZSl9KGUsdCksbj1lLHI9W3trZXk6Il9nZXRTY2hlbWFJZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQ259fSx7a2V5OiJfZ2V0QWN0aW9uVHlwZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iaW1wcmVzc2lvbiJ9fSx7a2V5OiJfZ2V0RXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLHI9W107cmV0dXJuIHQuaW1wcmVzc2lvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG8saSxhO3IucHVzaC5hcHBseShyLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBvbyh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGZ1bmN0aW9uKHQsZSl7aWYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBvbyh0LGUpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZ0LmNvbnN0cnVjdG9yJiYobj10LmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20odCk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9vbyh0LGUpOnZvaWQgMH19KHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSgobz1lLGk9biwiZnVuY3Rpb24iPT10eXBlb2YoYT1jbyhmbygxJjM/by5wcm90b3R5cGU6byksIl9nZXRFdmVudHMiLGkpKT9mdW5jdGlvbih0KXtyZXR1cm4gYS5hcHBseShpLHQpfTphKShbdCxsZSgpXSkpKX0pKSxyfX1dLHImJmlvKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0oUXIpO2Z1bmN0aW9uIHBvKHQpe3JldHVybiBwbz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0scG8odCl9ZnVuY3Rpb24geW8odCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHZvKHIua2V5KSxyKX19ZnVuY3Rpb24gdm8odCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPXBvKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1wbyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1wbyhlKT9lOmUrIiJ9ZnVuY3Rpb24gYm8oKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihibz1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gaG8odCl7cmV0dXJuIGhvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxobyh0KX1mdW5jdGlvbiBtbyh0LGUpe3JldHVybiBtbz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LG1vKHQsZSl9ZnVuY3Rpb24gZ28odCxlKXtmb3IodmFyIG49e30scj1lfHx7fSxvPTAsaT1PYmplY3Qua2V5cyhyKTtvPGkubGVuZ3RoO28rKyl7dmFyIGE9aVtvXTt2b2lkIDAhPT1yW2FdJiYoblthXT1yW2FdKX1yZXR1cm4gTih0LG4pfWZ1bmN0aW9uIHdvKHQsZSl7Zm9yKHZhciBuPTAscj1PYmplY3Qua2V5cyhlfHx7fSk7bjxyLmxlbmd0aDtuKyspe3ZhciBvPXJbbl07T2JqZWN0LmlzKGVbb10sbnVsbCkmJmRlbGV0ZSB0W29dfX12YXIgT289ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1obyhlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09cG8oZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsYm8oKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLGhvKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmbW8odCxlKX0oZSx0KSxuPWUsKHI9W3trZXk6InByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmT2JqZWN0Lmhhc093bih0LCJjb25maWciKT90LmNvbmZpZ3x8e306dHx8e319KHQpLG49MCxyPU9iamVjdC5rZXlzKGUpO248ci5sZW5ndGg7bisrKXt2YXIgbz1yW25dLGk9ZVtvXSxhPWk7aWYodm9pZCAwIT09YSlpZihudWxsIT1hKXt2YXIgdT1LdC5nZXQobyk7IXQub3ZlcndyaXRlJiZBcnJheS5pc0FycmF5KHUpP2E9dS5jb25jYXQoYSk6IXQub3ZlcndyaXRlJiZHKHUpJiZHKGEpJiYoYT1nbyh1LGkpKSxHKGEpJiYod28oYSxpKSwwPT09T2JqZWN0LmtleXMoYSkubGVuZ3RoKT9LdC5kZWxldGUobyk6S3Quc2V0KG8sYSl9ZWxzZSBLdC5kZWxldGUobyl9fX1dKSYmeW8obi5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbjt2YXIgbixyfShxbik7ZnVuY3Rpb24gam8odCl7cmV0dXJuIGpvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxqbyh0KX1mdW5jdGlvbiBfbyh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsU28oci5rZXkpLHIpfX1mdW5jdGlvbiBTbyh0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9am8odCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPWpvKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PWpvKGUpP2U6ZSsiIn1mdW5jdGlvbiBQbygpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKFBvPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBFbyh0KXtyZXR1cm4gRW89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LEVvKHQpfWZ1bmN0aW9uIGtvKHQsZSl7cmV0dXJuIGtvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sa28odCxlKX12YXIgVG89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1FbyhlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09am8oZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsUG8oKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLEVvKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYma28odCxlKX0oZSx0KSxuPWUsKHI9W3trZXk6InByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKHQpe2RyKHQubmFtZSx7Y2FsbGJhY2s6dC5jYWxsYmFjayxzY2hlbWFJZHM6dC5zY2hlbWFJZHMsYmF0Y2g6dC5iYXRjaCxmaWVsZHM6dC5maWVsZHN9KX19XSkmJl9vKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0ocW4pO2Z1bmN0aW9uIElvKHQpe3JldHVybiBJbz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sSW8odCl9ZnVuY3Rpb24gQ28odCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHhvKHIua2V5KSxyKX19ZnVuY3Rpb24geG8odCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPUlvKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1JbyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1JbyhlKT9lOmUrIiJ9ZnVuY3Rpb24gQW8oKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihBbz1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gUm8odCxlLG4scil7dmFyIG89TG8oRG8oMSZyP3QucHJvdG90eXBlOnQpLGUsbik7cmV0dXJuIDImciYmImZ1bmN0aW9uIj09dHlwZW9mIG8/ZnVuY3Rpb24odCl7cmV0dXJuIG8uYXBwbHkobix0KX06b31mdW5jdGlvbiBMbygpe3JldHVybiBMbz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZnVuY3Rpb24odCxlKXtmb3IoOyF7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1Ebyh0KSk7KTtyZXR1cm4gdH0odCxlKTtpZihyKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSk7cmV0dXJuIG8uZ2V0P28uZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP3Q6bik6by52YWx1ZX19LExvLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBEbyh0KXtyZXR1cm4gRG89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LERvKHQpfWZ1bmN0aW9uIE1vKHQsZSl7cmV0dXJuIE1vPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sTW8odCxlKX12YXIgQm8sRm8scW89ZnVuY3Rpb24odCl7dmFyIGU9e307aWYoWih0KSlmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtaKHIpJiYoZVtyWzBdXT1IKHIpKX1yZXR1cm4gZX0sVW89ZnVuY3Rpb24odCl7cmV0dXJuIFcodCwiXiIsIiwiKX0sTm89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1EbyhlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09SW8oZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsQW8oKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLERvKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmTW8odCxlKX0oZSx0KSxuPWUsKHI9W3trZXk6InNldFREYXRhU3RyaW5nIix2YWx1ZTpmdW5jdGlvbih0KXtSbyhlLCJtZXJnZSIsdGhpcywzKShbVW8odCldKX19LHtrZXk6InN0cmluZ2lmeSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPUsodGhpcy5nZXRQcm9wZXJ0aWVzKCkpOyh0PWUpJiZVKHQsKGZ1bmN0aW9uKGUsbil7dmFyIHI9KGUrIiIpLnNwbGl0KCIuIikuam9pbigiXyIpO2RlbGV0ZSB0W2VdLHRbcl09bn0pKTt2YXIgbj16KGUsIl4iLCIsIik7aWYobilyZXR1cm4gbn19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24odCxuKXsib2JqZWN0IiE9PUlvKG4pJiYiW29iamVjdCBGdW5jdGlvbl0iIT09e30udG9TdHJpbmcuY2FsbChuKT9SbyhlLCJzZXQiLHRoaXMsMykoW3Qsbl0pOkMoIkludmFsaWQga2V5L3ZhbHVlIHBhaXIgZm91bmQgaW4gVHJhZmZpYydzIGN1c3RvbSBwcm9wZXJ0aWVzICh0RGF0YSkuIE9iamVjdHMsIGFycmF5cywgYW5kIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cblxuS2V5OiAnIi5jb25jYXQodCwiJyBWYWx1ZTogJyIpLmNvbmNhdChuLCInIFR5cGU6ICciKS5jb25jYXQoSW8obiksIicuIikpfX1dKSYmQ28obi5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbjt2YXIgbixyfShvdCksVm89ZnVuY3Rpb24odCl7dmFyIGU9bmV3IE5vO3JldHVybiBlLm1lcmdlKHQuY3VzdG9tX3Byb3BlcnRpZXMpLHQudHJhZmZpYyYmZS5tZXJnZSh0LnRyYWZmaWMuY3VzdG9tUHJvcGVydGllcyksZX0sR289ZnVuY3Rpb24odCl7dmFyIGU9dC50cmFmZmljO3JldHVybiBlJiZmdW5jdGlvbih0LGUpe3ZhciBuPXQuZWlkfHxlJiZlKCk7aWYoIW4pdGhyb3ciIjtpZih0LmVpZD1uLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24odCl7cmV0dXJuIHQubWF0Y2goTXIpfSh0LmVpZCkpdGhyb3cgdC5laWQsIiJ9KGUpLHR9O2Z1bmN0aW9uIEtvKHQpe3JldHVybiBLbz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sS28odCl9ZnVuY3Rpb24gSG8odCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFdvKHIua2V5KSxyKX19ZnVuY3Rpb24gV28odCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPUtvKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1LbyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1LbyhlKT9lOmUrIiJ9ZnVuY3Rpb24gem8oKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybih6bz1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gJG8odCl7cmV0dXJuICRvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSwkbyh0KX1mdW5jdGlvbiBRbyh0LGUpe3JldHVybiBRbz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LFFvKHQsZSl9dmFyIEpvPTAsWm89ZnVuY3Rpb24oKXt2YXIgdD1LdC5nZXQoImNvbXBvbmVudHMiKTtpZihGbyE9PXQpcmV0dXJuIEZvPXR9LFhvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9JG8oZSksZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PUtvKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfSh0LHpvKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZSxufHxbXSwkbyh0KS5jb25zdHJ1Y3Rvcik6ZS5hcHBseSh0LG4pKX0odGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJlFvKHQsZSl9KGUsdCksbj1lLChyPVt7a2V5OiJfZ2V0V2ViQ29udGV4dCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57cGFnZVZpZXdDb3VudDpKb319fSx7a2V5OiJfZ2V0RXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1Wbyh0KTtyZXR1cm5be3NjaGVtYUlkOiJ1cm46c2hhcmVkOnVzZXI6ZXZlbnQ6L2RhdGEtcGxhdGZvcm0vc2lnbmFscy9wYWdlLXZpZXcvdjEiLGRhdGE6e2ZvcmVuc2ljczp7dHJhY2VJZEFkb3B0ZWQ6ZyhPbi5nZXQoInRyYWNlZCIpKSxjb21wb25lbnRzOlpvKCl9LHRyYWZmaWM6RnIoe2N1c3RvbVByb3BlcnRpZXM6ZS5nZXRQcm9wZXJ0aWVzKCl9KSxwcm9kdWNlckV2ZW50SWQ6dGhpcy5pbnRlcm5hbC5ldmVudElkfX1dfX0se2tleToicHJlUHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5wYXRofHx0LnZpcnR1YWxfcGF0aHx8dC52aXJ0dWFsUGF0aCxuPXZvaWQgMCE9PWU7aWYobnx8KGU9cygpLmxvY2F0aW9uLnBhdGhuYW1lKSxCbz09PWUpdGhyb3ciY21kOiBMb2dQYWdlUmVxdWVzdCBkdXBsaWNhdGUgcGFnZSByZXF1ZXN0IGRldGVjdGVkLCBpZ25vcmluZyBkdXBsaWNhdGUgcGF0aCI7Qm89ZSxPbi5zZXQoImNvcnJpZCIsTWF0aC5mbG9vcigyMTQ3NDgzNjQ3Kk1hdGgucmFuZG9tKCkpKSxuJiYob2UoKSxPbi5zZXQoInZpcnR1YWxfcGF0aCIsZSkpLGcoJHQoInNlc3Npb24iLCJyZWZyZXNoT25JbnRlcmFjdGlvbiIpLCExKXx8am4uaW5jcmVtZW50UGFnZUNvdW50KCksSm8rPTEsT24uZ2V0KCJ0cmFjZV9pZCIpfHxPbi5tZXJnZShUbigpKX19XSkmJkhvKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0oVHIpLFlvPWZ1bmN0aW9uKHQpe3JldHVyblsobmV3IEplKS5tYXAoImVsZW1lbnQiLFtuZXcgUWUoImFyZWEiKS5yZXF1aXJlZCgpLnBhdHRlcm4oVGUpLG5ldyBRZSgicHJvZHVjdCIpLnJlcXVpcmVkKCkucGF0dGVybihUZSksbmV3IFFlKCJzZWN0aW9uIikucmVxdWlyZWQoKS5wYXR0ZXJuKEllKSxuZXcgUWUoIndpZGdldCIpLnJlcXVpcmVkKCkucGF0dGVybihUZSldKS5yZXF1aXJlZCgpLmV4dGVuZCh0KV19LHRpPWZ1bmN0aW9uKHQpe3JldHVyblsobmV3IEplKS5tYXAoInRyYWZmaWMiLFtuZXcgJGUoImN1c3RvbVByb3BlcnRpZXMiKV0pLmV4dGVuZCh0KV19LGVpPWZ1bmN0aW9uKCl7cmV0dXJuWyhuZXcgSmUpLnN1YnN0aXR1dGUodGkoW25ldyAkZSgiZWlkIildKSldfSxuaT1mdW5jdGlvbigpe3JldHVyblsobmV3IEplKS5zdWJzdGl0dXRlKFlvKCkpLChuZXcgSmUpLnN1YnN0aXR1dGUoZWkoKSksKG5ldyBKZSkubWFwKCJwcm9tb3Rpb24iLFtuZXcgJGUoImlkIikucmVxdWlyZWQoKSxuZXcgJGUoIm5hbWUiKSxuZXcgJGUoImNyZWF0aXZlIiksbmV3ICRlKCJwb3NpdGlvbiIpXSksKG5ldyBKZSkubWFwKCJwcm9kdWN0IixbbmV3ICRlKCJhY3Rpb25Db2RlIikucmVxdWlyZWQoKS5hbGxvd2VkVmFsdWVzKFsiYWRkX3RvX2NhcnQiLCJwcm9kdWN0X2RldGFpbCJdKSwobmV3IEplKS5tYXAoImJhc2tldCIsW25ldyAkZSgiY291cG9uQ29kZSIpLG5ldyAkZSgiY3VycmVuY3lDb2RlIiksbmV3ICRlKCJpdGVtVHJhY2tpbmdDb2RlIildKSwobmV3IFplKS5tYXAoInByb2R1Y3RzIixbbmV3ICRlKCJwcm9kdWN0SWQiKS5yZXF1aXJlZCgpLG5ldyAkZSgicHJvZHVjdE5hbWUiKSxuZXcgJGUoInByb2R1Y3RJbnN0YW5jZUlkIiksbmV3ICRlKCJwcmljZVVzZCIpLG5ldyAkZSgicXVhbnRpdHkiKS5yZXF1aXJlZCgpLG5ldyAkZSgiY291cG9uQ29kZSIpLG5ldyAkZSgiaXRlbVRyYWNraW5nQ29kZSIpXSksKG5ldyBaZSkubWFwKCJwYWNrYWdlcyIsW25ldyAkZSgiaWQiKSxuZXcgJGUoInByaWNlVXNkIiksbmV3ICRlKCJxdWFudGl0eSIpLG5ldyAkZSgiY2F0ZWdvcnkiKV0pXSldfTtjb25zdCByaT17YWRkX2NsaWNrOnt2MTp7aGFuZGxlcjpubyxwcm9wZXJ0aWVzOlsobmV3IEplKS5zdWJzdGl0dXRlKG5pKCkpLnRyYW5zZm9ybShHbyldfX0sYWRkX2VsZW1lbnRfYWN0aW9uOnt2MTp7aGFuZGxlcjpRcixwcm9wZXJ0aWVzOlsobmV3IEplKS5zdWJzdGl0dXRlKFsobmV3IEplKS5zdWJzdGl0dXRlKFlvKFtuZXcgJGUoImFjdGlvbiIpLnJlcXVpcmVkKCkuYWxsb3dlZFZhbHVlcyhbImJsdXIiLCJkcmFnIiwiZm9jdXMiLCJob3ZlciIsImxvYWQiLCJzY3JvbGwiXSldKSksKG5ldyBKZSkuc3Vic3RpdHV0ZShlaSgpKV0pLnRyYW5zZm9ybShHbyldfX0sYWRkX2ltcHJlc3Npb25zOnt2MTp7aGFuZGxlcjpsbyxwcm9wZXJ0aWVzOlsobmV3IFplKS5tYXAoImltcHJlc3Npb25zIixbKG5ldyBKZSkuc3Vic3RpdHV0ZShuaSgpKS50cmFuc2Zvcm0oR28pXSkud2l0aE1pbkVsZW1lbnRzKDEpXX19LGFkZF92aXJ0dWFsX3BhZ2Vfdmlldzp7djE6e2hhbmRsZXI6WG8scHJvcGVydGllczpbbmV3ICRlKCJ2aXJ0dWFsUGF0aCIpLnJlcXVpcmVkKCksKG5ldyBKZSkuc3Vic3RpdHV0ZSh0aSgpKV19fSxhZGRfbWljcm9fZXZlbnRzOnt2MTp7aGFuZGxlcjpEcixwcm9wZXJ0aWVzOltuZXcgJGUoImFwaUtleSIpLnJlcXVpcmVkKCksbmV3ICRlKCJzY2hlbWFJZCIpLnJlcXVpcmVkKCksbmV3ICRlKCJnbG9iYWwiKS5vcHRpb25hbCgpLChuZXcgWmUpLm1hcCgiZXZlbnRzIixbbmV3ICRlKCJzY2hlbWFJZCIpLnJlcXVpcmVkKCksbmV3ICRlKCJkYXRhIikucmVxdWlyZWQoKV0pLndpdGhNaW5FbGVtZW50cygxKSwobmV3IEplKS5tYXAoImJ1c2luZXNzQ29udGV4dCIsW25ldyAkZSgic2NoZW1hSWQiKS5yZXF1aXJlZCgpLG5ldyAkZSgiZGF0YSIpLnJlcXVpcmVkKCldKV19fSxzdWJzY3JpYmU6e3YxOntoYW5kbGVyOlRvLHByb3BlcnRpZXM6W25ldyAkZSgibmFtZSIpLnJlcXVpcmVkKCksbmV3ICRlKCJjYWxsYmFjayIpLnJlcXVpcmVkKCksbmV3ICRlKCJzY2hlbWFJZHMiKSxuZXcgJGUoImZpZWxkcyIpLG5ldyAkZSgiYmF0Y2giKV19fSxzZXRfY29uZmlnOnt2MTp7aGFuZGxlcjpPbyxwcm9wZXJ0aWVzOlsobmV3IEplKS5tYXAoImNvbmZpZyIsWyhuZXcgWmUpLm1hcCgiY29tcG9uZW50cyIsW25ldyAkZSgibmFtZSIpLnJlcXVpcmVkKCksbmV3ICRlKCJ2ZXJzaW9uIikucmVxdWlyZWQoKS5vdXRwdXRUeXBlKGtlKV0pLChuZXcgWmUpLm1hcCgiZXhwZXJpbWVudHMiLFtuZXcgJGUoImlkIikucmVxdWlyZWQoKSxuZXcgJGUoInZhcmlhbnQiKS5yZXF1aXJlZCgpXSksKG5ldyBKZSkubWFwKCJjb29raWUiLFtuZXcgJGUoInNhbWVTaXRlIildKSwobmV3IEplKS5tYXAoInBhZ2UiLFtuZXcgJGUoInNwYSIpLG5ldyAkZSgiaWQiKSxuZXcgJGUoImNvbnRlbnRHcm91cCIpLG5ldyAkZSgicmVmZXJyZXJFeGNsdXNpb24iKV0pLChuZXcgSmUpLm1hcCgiaWRlbnRpdHkiLFtuZXcgJGUoInJlYWxtIildKSwobmV3IEplKS5tYXAoInNpdGUiLFtuZXcgJGUoInByaXZhdGVMYWJlbElkIildKSwobmV3IEplKS5tYXAoInRpbWluZyIsW25ldyAkZSgiYXV0byIpXSksKG5ldyBKZSkubWFwKCJhZ2VudCIsW25ldyAkZSgiYWdlbnRJZCIpLG5ldyAkZSgiYWdlbnROYW1lIiksbmV3ICRlKCJhZ2VudFZlcnNpb24iKSxuZXcgJGUoImNvbnZlcnNhdGlvbklkIildKV0pLnJlcXVpcmVkKCksbmV3ICRlKCJvdmVyd3JpdGUiKV19fX07ZnVuY3Rpb24gb2kodCl7cmV0dXJuIG9pPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxvaSh0KX1mdW5jdGlvbiBpaSh0LGUpe3ZhciBuPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKHI9ci5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gYWkodCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW2VdP2FyZ3VtZW50c1tlXTp7fTtlJTI/aWkoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbihlKXt1aSh0LGUsbltlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6aWkoT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixlKSl9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gdWkodCxlLG4pe3JldHVybihlPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiIT1vaSh0KXx8IXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LCJzdHJpbmciKTtpZigib2JqZWN0IiE9b2kobikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4gU3RyaW5nKHQpfSh0KTtyZXR1cm4ic3ltYm9sIj09b2koZSk/ZTplKyIifShlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH12YXIgY2k9ZnVuY3Rpb24odCl7dmFyIGU9Y3IuZ2V0KHVyKXx8e307Y3Iuc2V0KHVyLGFpKGFpKHt9LGUpLHQpKX0sZmk9ZnVuY3Rpb24odCl7dmFyIGU9dC5ldmVudCxuPWUuc2NoZW1hSWQscj1lLmRhdGEsbz1yLmV4cGVyaW1lbnRJZCxpPXIudmFyaWFudElkLGE9ci5mcUFwcElkLHU9ci5zZXR0aW5nVmFsdWUsYz1yLnNldHRpbmc7aWYobj09PVJuKWNpKHVpKHt9LG8saSkpO2Vsc2UgaWYobj09PUxuJiYiaGl2ZW1pbmQiPT09YSl7dmFyIGY9SlNPTi5wYXJzZSh1KTtjaSh1aSh7fSxjLGYuY29ob3J0SWQpKX19O2Z1bmN0aW9uIHNpKHQpe3JldHVybiBzaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sc2kodCl9ZnVuY3Rpb24gbGkodCxlKXt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihyPXIuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIHBpKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1tlXT9hcmd1bWVudHNbZV06e307ZSUyP2xpKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7eWkodCxlLG5bZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmxpKE9iamVjdChuKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sZSkpfSkpfXJldHVybiB0fWZ1bmN0aW9uIHlpKHQsZSxuKXtyZXR1cm4oZT1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9c2kodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPXNpKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PXNpKGUpP2U6ZSsiIn0oZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1uLHR9dmFyIHZpPSExLGJpPWZ1bmN0aW9uKHQpe3ZhciBlPXQudHJmcU1ldGhvZHMsbj10LmxlZ2FjeU5hbWUscj10LmRhdGFMYXllckNvbmZpZyxvPXQuZ2xvYmFsQ29udGV4dENvbmZpZyxpPXQuaG9va3MsYT1pLm9uTG9hZCx1PWkuYmVmb3JlTG9hZCxjPWkuYmVmb3JlRXZlbnQsZj1pLmdldEVudmlyb25tZW50O2lmKCF2aSl7dmk9ITAsUXQoImJ1aWxkIiwiZW52IixmJiZmKCl8fCR0KCJidWlsZCIsImVudiIpKSxPbi5tZXJnZShUbigpKSxhci5pbml0KHBpKHt0cmFjZUlkOk9uLmdldCgidHJhY2VfaWQiKX0sbykpLEVlKHJpKSxmdW5jdGlvbigpe3ZhciB0PXMoKTtpZih0LlBlcmZvcm1hbmNlT2JzZXJ2ZXIpe3ZhciBlPW5ldyB0LlBlcmZvcm1hbmNlT2JzZXJ2ZXIoKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0RW50cmllcygpLG49ZVtlLmxlbmd0aC0xXTtuLnJlbmRlclRpbWUmJihhdC5sY3A9TWF0aC5yb3VuZChuLnN0YXJ0VGltZSkpfSkpO3RyeXtlLm9ic2VydmUoe3R5cGU6Imxhcmdlc3QtY29udGVudGZ1bC1wYWludCIsYnVmZmVyZWQ6ITB9KX1jYXRjaCh0KXt9fX0oKTt2YXIgcD1uZXcgd3QoImNvbXBsZXRlIj09PWwoKS5yZWFkeVN0YXRlLChmdW5jdGlvbih0KXtzKCkuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdCl9KSkseT1qbi5nZXRTZXNzaW9uKCk7dSYmdSgpO3ZhciB2PW5ldyBsbihwaSh7YXV0b1BhZ2VWaWV3RGlzYWJsZWQ6S3QuZ2V0KCIiLmNvbmNhdChuLCIubWFudWFsUGFnZVJlcXVlc3QiKSksYmVmb3JlRXZlbnQ6Y30scikpOyhmdW5jdGlvbih0KXt2YXIgZTt0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5wdXNoJiZ0LnB1c2goe3NjaGVtYToic3Vic2NyaWJlIixkYXRhOntuYW1lOiJzY2Mtc2Vzc2lvbi1yZWZyZXNoLW9uLWludGVyYWN0aW9uIixzY2hlbWFJZHM6W0luLHhuXSxiYXRjaDohMSxjYWxsYmFjazpmdW5jdGlvbih0KXtpZihnKCR0KCJzZXNzaW9uIiwicmVmcmVzaE9uSW50ZXJhY3Rpb24iKSwhMSkpe3ZhciBuPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0LmV2ZW50fSh0KTtpZighZnVuY3Rpb24odCl7dmFyIGUsbjtpZigobnVsbD09dD92b2lkIDA6dC5zY2hlbWFJZCkhPT14bilyZXR1cm4hMTt2YXIgcj0obnVsbCE9PShlPW51bGw9PXR8fG51bGw9PT0obj10LmRhdGEpfHx2b2lkIDA9PT1ufHxudWxsPT09KG49bi5lbGVtZW50KXx8dm9pZCAwPT09bj92b2lkIDA6bi5hY3Rpb24pJiZ2b2lkIDAhPT1lP2U6IiIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIERuLmluY2x1ZGVzKHIpfShuKSl7dmFyIHIsbz0ibnVtYmVyIj09dHlwZW9mKHI9dygkdCgic2Vzc2lvbiIsInJlZnJlc2hJbnRlcnZhbE1zIikpKT9yPj0wP3I6MDoxZTMsaT1EYXRlLm5vdygpOyJudW1iZXIiPT10eXBlb2YgZSYmaS1lPG98fChlPWksam4mJiJmdW5jdGlvbiI9PXR5cGVvZiBqbi5yZWZyZXNoU2Vzc2lvbkxpZmVzcGFuJiZqbi5yZWZyZXNoU2Vzc2lvbkxpZmVzcGFuKCkpfX19fX0pfSkodikscC5yZWdpc3Rlck9uTG9hZEZuKChmdW5jdGlvbigpe3ZhciB0LHIsbzthJiZhKCksdi5zdGFydCgpLCh0PSR0KCJleHBlcmltZW50cyIpKSYmY2kodC5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZS5pZF09ZS52YXJpYW50LHR9KSx7fSkpLGRyKCJzY2MtZXhwZXJpbWVudC10cmFja2VyIix7Y2FsbGJhY2s6Zmksc2NoZW1hSWRzOltSbixMbl19KSxuZXcgd24oZSksJHQoInRpbWluZyIsImF1dG8iKSYmZnVuY3Rpb24odCxlLG4pe2lmKCFkdClpZihkdD0hMCxidCgpKXZ0KHQseXQodCxlKSxuKTtlbHNlIHZhciByPXNldEludGVydmFsKChmdW5jdGlvbigpe2J0KCkmJihjbGVhckludGVydmFsKHIpLHZ0KHQseXQodCxlKSxuKSl9KSwyNTApfShuLCJhdXRvIiksJHQoImV2ZW50QnVzIiwiZW5hYmxlZCIpJiYoRChSdCxbXSksQXQ9bmV3IHh0KEx0KSxzKCkuX3NpZ25hbHNEYXRhTGF5ZXI9cygpLl9zaWduYWxzRGF0YUxheWVyfHxbXSxzKCkuX3NpZ25hbHNEYXRhTGF5ZXIucHVzaCh7c2NoZW1hOiJzdWJzY3JpYmUiLGRhdGE6e25hbWU6InNjYy1wbHVnaW4tc2luay1ldmVudC1idXMiLGJhdGNoOiEwLGZpZWxkczpbInJvdXRpbmciXSxjYWxsYmFjazpmdW5jdGlvbih0KXt2YXIgZT10LnNjaGVtYUlkLG49dC5nbG9iYWwscj10LmJ1c2luZXNzQ29udGV4dCxvPXQuZXZlbnRzLGk9dC5yb3V0aW5nLGE9aS5ldmVudEJ1c0FwaUtleSx1PWkuaGFzQ29udmVyc2lvbixjPWkuZ2xvYmFsQ29udGV4dFZlcnNpb247QXQucHVzaEV2ZW50KHthcGlLZXk6YSxidXNpbmVzc0NvbnRleHQ6cixjb250ZXh0VmVyc2lvbjpjLHNjaGVtYUlkOmUsZ2xvYmFsOm4sZXZlbnRzOm99LHUpfX19KSkscj0kdCgiY2RlcCIsImFwcElkIiksbz15LnZpc2l0b3JHdWlkLHImJk9yKHtldmVudHM6W3tzY2hlbWFJZDoidXJuOnNoYXJlZDp1c2VyOmV2ZW50Oi9jZGVwL2FwcC1ldmFsdWF0aW9uL3YxIixkYXRhOntjZGVwQXBwSWQ6cixidWNrZXRpbmdJZDpvLGJ1Y2tldGluZ0lkVHlwZToidmlzaXRvcklkIixjb21taXRIYXNoOiR0KCJjbGllbnQiLCJoYXNoIil9fV19KX0pKSxJKCJTQ0MgU1RBUlRFRCIsS3QuZ2V0UHJvcGVydGllcygpKX19O2Z1bmN0aW9uIGRpKHQpe3JldHVybiBkaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sZGkodCl9ZnVuY3Rpb24gaGkodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG1pKHIua2V5KSxyKX19ZnVuY3Rpb24gbWkodCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPWRpKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1kaShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1kaShlKT9lOmUrIiJ9ZnVuY3Rpb24gZ2kodCl7cmV0dXJuIGdpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxnaSh0KX1mdW5jdGlvbiB3aSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsUGkoci5rZXkpLHIpfX1mdW5jdGlvbiBPaSgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKE9pPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBqaSgpe3JldHVybiBqaT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbih0LGUsbil7dmFyIHI9ZnVuY3Rpb24odCxlKXtmb3IoOyF7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkmJm51bGwhPT0odD1faSh0KSk7KTtyZXR1cm4gdH0odCxlKTtpZihyKXt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSk7cmV0dXJuIG8uZ2V0P28uZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP3Q6bik6by52YWx1ZX19LGppLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBfaSh0KXtyZXR1cm4gX2k9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LF9pKHQpfWZ1bmN0aW9uIFNpKHQsZSl7cmV0dXJuIFNpPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sU2kodCxlKX1mdW5jdGlvbiBQaSh0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9Z2kodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPWdpKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PWdpKGUpP2U6ZSsiIn12YXIgRWk9Il90Y2NsX3Zpc2l0b3IiLGtpPSJfdGNjbF92aXNpdCIsVGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3ZhciB0LG4scixvOyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpO2Zvcih2YXIgaT1hcmd1bWVudHMubGVuZ3RoLGE9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKWFbdV09YXJndW1lbnRzW3VdO3JldHVybiB0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1faShlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09Z2koZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQsT2koKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLF9pKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsW10uY29uY2F0KGEpKSxuPXQsbz0iX3NjY19zZXNzaW9uIiwocj1QaShyPSJfc2Vzc2lvbkNvb2tpZU5hbWUiKSlpbiBuP09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHIse3ZhbHVlOm8sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpuW3JdPW8sdH1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmU2kodCxlKX0oZSx0KSxuPWUscj1be2tleToicmVmcmVzaFNlc3Npb25MaWZlc3BhbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxuLHIsbz1FbihraSk7KHQ9ZSxuPXRoaXMsImZ1bmN0aW9uIj09dHlwZW9mKHI9amkoX2koMSYzP3QucHJvdG90eXBlOnQpLCJyZWZyZXNoU2Vzc2lvbkxpZmVzcGFuIixuKSk/ZnVuY3Rpb24odCl7cmV0dXJuIHIuYXBwbHkobix0KX06cikoW10pLG8mJlBuKGtpLG8sMzAsIi8iKX19LHtrZXk6ImdldFNlc3Npb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9RW4oRWkpLGU9RW4oa2kpO3R8fGU/KHR8fCh0PWxlKCkpLGV8fChlPWxlKCkpKTp0PWU9bGUoKSxQbihFaSx0LDUyNTYwMCwiLyIpLFBuKGtpLGUsMzAsIi8iKTt2YXIgbj1rbih0aGlzLl9zZXNzaW9uQ29va2llTmFtZSk7cmV0dXJue3Zpc2l0b3JHdWlkOnQsdmlzaXRHdWlkOmUscGFnZUNvdW50Oncobi5wYyl8fDB9fX1dLHImJndpKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0oZnVuY3Rpb24oKXtyZXR1cm4gdD1mdW5jdGlvbiB0KCl7dmFyIGUsbixyOyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLGU9dGhpcyxyPXZvaWQgMCwobj1taShuPSJfc2Vzc2lvbkNvb2tpZU5hbWUiKSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXJ9LChlPVt7a2V5OiJnZXRTZXNzaW9uIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6InNhdmVTZXNzaW9uQ29va2llIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT16KHQsIiYiLCI9Iik7UG4odGhpcy5fc2Vzc2lvbkNvb2tpZU5hbWUsZSwyMCwiLyIpfX0se2tleToicmVmcmVzaFNlc3Npb25MaWZlc3BhbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1rbih0aGlzLl9zZXNzaW9uQ29va2llTmFtZSk7dCYmMCE9PU9iamVjdC5rZXlzKHQpLmxlbmd0aCYmKHQuQ19UT1VDSD1KKCksdGhpcy5zYXZlU2Vzc2lvbkNvb2tpZSh0KSl9fSx7a2V5OiJpbmNyZW1lbnRQYWdlQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9a24odGhpcy5fc2Vzc2lvbkNvb2tpZU5hbWUpLGU9dyh0LnBjKXx8MDt0LnBjPWUrMSx0LkNfVE9VQ0g9SigpLHRoaXMuc2F2ZVNlc3Npb25Db29raWUodCl9fV0pJiZoaSh0LnByb3RvdHlwZSxlKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0O3ZhciB0LGV9KCkpO2Z1bmN0aW9uIElpKHQpe3JldHVybiBJaT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sSWkodCl9ZnVuY3Rpb24gQ2kodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHhpKHIua2V5KSxyKX19ZnVuY3Rpb24geGkodCl7dmFyIGU9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCIhPUlpKHQpfHwhdClyZXR1cm4gdDt2YXIgZT10W1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09ZSl7dmFyIG49ZS5jYWxsKHQsInN0cmluZyIpO2lmKCJvYmplY3QiIT1JaShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcodCl9KHQpO3JldHVybiJzeW1ib2wiPT1JaShlKT9lOmUrIiJ9ZnVuY3Rpb24gQWkoKXt0cnl7dmFyIHQ9IUJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSl9Y2F0Y2godCl7fXJldHVybihBaT1mdW5jdGlvbigpe3JldHVybiEhdH0pKCl9ZnVuY3Rpb24gUmkodCl7cmV0dXJuIFJpPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxSaSh0KX1mdW5jdGlvbiBMaSh0LGUpe3JldHVybiBMaT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LExpKHQsZSl9dmFyIERpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxlKSxmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9UmkoZSksZnVuY3Rpb24odCxlKXtpZihlJiYoIm9iamVjdCI9PUlpKGUpfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfSh0LEFpKCk/UmVmbGVjdC5jb25zdHJ1Y3QoZSxufHxbXSxSaSh0KS5jb25zdHJ1Y3Rvcik6ZS5hcHBseSh0LG4pKX0odGhpcyxlLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUmJm51bGwhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7dC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGUmJkxpKHQsZSl9KGUsdCksbj1lLChyPVt7a2V5OiJfZ2V0RXZlbnRzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmVpZCxuPXQudHlwZS50b0xvd2VyQ2FzZSgpLHI9ZnVuY3Rpb24odCl7cmV0dXJuImNsaWNrIj09PXQ/SW46ImltcHJlc3Npb24iPT09dD9DbjpbImJsdXIiLCJkcmFnIiwiZm9jdXMiLCJob3ZlciIsImxvYWQiLCJzY3JvbGwiXS5pbmNsdWRlcyh0KT94bjpBbn0obiksbz1Wbyh0KS5nZXRQcm9wZXJ0aWVzKCk7cmV0dXJuW3tzY2hlbWFJZDpyLGRhdGE6ciE9PUFuP3FyKHRoaXMuaW50ZXJuYWwuZXZlbnRJZCxlLG4sbyk6e3RyYWZmaWM6RnIoe2N1c3RvbVByb3BlcnRpZXM6byxlaWQ6ZSxldmVudENhdGVnb3J5Om59KSxwcm9kdWNlckV2ZW50SWQ6dGhpcy5pbnRlcm5hbC5ldmVudElkfX1dfX1dKSYmQ2kobi5wcm90b3R5cGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksbjt2YXIgbixyfShUcik7ZnVuY3Rpb24gTWkodCl7cmV0dXJuIE1pPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxNaSh0KX1mdW5jdGlvbiBCaSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsRmkoci5rZXkpLHIpfX1mdW5jdGlvbiBGaSh0KXt2YXIgZT1mdW5jdGlvbih0KXtpZigib2JqZWN0IiE9TWkodCl8fCF0KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCwic3RyaW5nIik7aWYoIm9iamVjdCIhPU1pKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyh0KX0odCk7cmV0dXJuInN5bWJvbCI9PU1pKGUpP2U6ZSsiIn1mdW5jdGlvbiBxaSgpe3RyeXt2YXIgdD0hQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKX1jYXRjaCh0KXt9cmV0dXJuKHFpPWZ1bmN0aW9uKCl7cmV0dXJuISF0fSkoKX1mdW5jdGlvbiBVaSh0KXtyZXR1cm4gVWk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCl9LFVpKHQpfWZ1bmN0aW9uIE5pKHQsZSl7cmV0dXJuIE5pPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sTmkodCxlKX12YXIgVmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3JldHVybiBmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLGZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1VaShlKSxmdW5jdGlvbih0LGUpe2lmKGUmJigib2JqZWN0Ij09TWkoZSl8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSlyZXR1cm4gZTtpZih2b2lkIDAhPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gdH0odCl9KHQscWkoKT9SZWZsZWN0LmNvbnN0cnVjdChlLG58fFtdLFVpKHQpLmNvbnN0cnVjdG9yKTplLmFwcGx5KHQsbikpfSh0aGlzLGUsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmTmkodCxlKX0oZSx0KSxuPWUsKHI9W3trZXk6Il9nZXRBcGlLZXkiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGIoImV2ZW50QnVzIiwicmlnb3JBcGlLZXkiKX19LHtrZXk6Il9nZXRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaXNfaGFyZF9uYXZpZ2F0aW9uPyJoYXJkIjoic29mdCIsbj10LnRpbWluZ19vYmplY3Q7aWYobil7aWYobi5uYXZpZ2F0aW9uU3RhcnQpcmV0dXJuW3tzY2hlbWFJZDoidXJuOnNoYXJlZDp1c2VyOmV2ZW50Oi9yaWdvci9wYWdlLW5hdmlnYXRpb24vdjEiLGRhdGE6TnIodGhpcy5pbnRlcm5hbC5ldmVudElkLG4sdC5jdXN0b21fcHJvcGVydGllcyxlKX1dO2lmKG4udGltZVRvSW50ZXJhY3RpdmUpcmV0dXJuW3tzY2hlbWFJZDoidXJuOnNoYXJlZDp1c2VyOmV2ZW50Oi9yaWdvci9wYWdlLW5hdmlnYXRpb24tZGVsYXllZC92MSIsZGF0YTpWcih0aGlzLmludGVybmFsLmV2ZW50SWQsbix0LmN1c3RvbV9wcm9wZXJ0aWVzKX1dfX19XSkmJkJpKG4ucHJvdG90eXBlLHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLG47dmFyIG4scn0oVHIpLEdpPWZ1bmN0aW9uKCl7cmV0dXJuW25ldyAkZSgiY3VzdG9tX3Byb3BlcnRpZXMiKS5vcHRpb25hbCgpXX07Y29uc3QgS2k9e2FkZF9ldmVudDp7djE6e2hhbmRsZXI6RGkscHJvcGVydGllczpbbmV3ICRlKCJ0eXBlIikucmVxdWlyZWQoKSwobmV3IEplKS5zdWJzdGl0dXRlKFtuZXcgJGUoImVpZCIpLm9wdGlvbmFsKCldKSwobmV3IEplKS5zdWJzdGl0dXRlKEdpKCkpXX19LGFkZF9wYWdlX3ZpZXc6e3YxOntoYW5kbGVyOlhvLHByb3BlcnRpZXM6W25ldyAkZSgicGF0aCIpLm9wdGlvbmFsKCksKG5ldyBKZSkuc3Vic3RpdHV0ZShHaSgpKV19fSxhZGRfcGVyZjp7djE6e2hhbmRsZXI6VmkscHJvcGVydGllczpbbmV3ICRlKCJ0aW1pbmdfb2JqZWN0IikucmVxdWlyZWQoKSxuZXcgJGUoImlzX2hhcmRfbmF2aWdhdGlvbiIpLm9wdGlvbmFsKCksKG5ldyBKZSkuc3Vic3RpdHV0ZShHaSgpKV19fX0sSGk9ZnVuY3Rpb24odCxlLG4pe3MoKS5fZXhwRGF0YUxheWVyLnB1c2goe3NjaGVtYToiYWRkX2V2ZW50Iix2ZXJzaW9uOiJ2MSIsZGF0YTp7dHlwZTp0LGVpZDplLGN1c3RvbV9wcm9wZXJ0aWVzOnFvKG4pfX0pfSxXaT1mdW5jdGlvbih0LGUpe3MoKS5fZXhwRGF0YUxheWVyLnB1c2goe3NjaGVtYToiYWRkX3BlcmYiLHZlcnNpb246InYxIixkYXRhOnt0aW1pbmdfb2JqZWN0OnQsY3VzdG9tX3Byb3BlcnRpZXM6cW8oZSl9fSl9O3ZhciB6aSwkaT17c2Vzc2lvbjpmdW5jdGlvbigpe3JldHVybiBqbi5nZXRTZXNzaW9uKCl9fSxRaT17cGFnZUNvcnJlbGF0aW9uSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gT24uZ2V0KCJjb3JyaWQiKX19LEppPSJ0Y2NsIjtyZXR1cm4gemk9bmV3IFRpLGpuPXppLEVlKEtpKSxmdW5jdGlvbih0KXt2YXIgZT10LmxlZ2FjeU5hbWUsbj10LmNvbmZpZ01hbmFnZXJQcm9wcyxyPXQuaG9va3MuYmVmb3JlSW5pdDshZnVuY3Rpb24oKXt0cnl7dmFyIG8saT1sKCkuY29va2llO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkb2N1bWVudCwiY29va2llIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHNldDpmdW5jdGlvbih0KXsobz1vfHxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKERvY3VtZW50LnByb3RvdHlwZSwiY29va2llIikpLnNldC5jYWxsKGRvY3VtZW50LHQpLGk9by5nZXQuY2FsbChkb2N1bWVudCl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSksZnVuY3Rpb24oKXtpZihhPXAoKS51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSwhL21zaWUgWzEtOF1cLi8udGVzdChhKSlpZihpPSJfIi5jb25jYXQoZSwiSW50ZXJuYWwiKSxjPWksdm9pZCAwIT09cygpW2NdfHwocygpW2NdPXt9LDApKUMoIlNDQyBMaWJyYXJ5IGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIG9uIHBhZ2UiKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZGF0YUxheWVyTmFtZSxuPXQuY2xpZW50Q29uZmlnUHJlZml4ZXMscj10Lmlnbm9yZWRQcm9wZXJ0aWVzLG89dC5sZWdhY3lOYW1lO0h0PW8sWHQ9cnx8W10senQ9ZSxadD1uLFd0PXMoKVt6dF18fFtdLE0oenQsV3QpLEQoIiIuY29uY2F0KHp0LCJMb2ciKSxZdCksb2UoKX0obiksciYmcigpLCJvZmYiIT09S3QuZ2V0KCIiLmNvbmNhdChlLCIuc3RhdHVzIikpKXt2YXIgbz1sKCk7InByZXJlbmRlciIhPT1vLnZpc2liaWxpdHlTdGF0ZT9iaSh0KTpvLmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLChmdW5jdGlvbigpeyJwcmVyZW5kZXIiIT09by52aXNpYmlsaXR5U3RhdGUmJiJ1bmxvYWRlZCIhPT1vLnZpc2liaWxpdHlTdGF0ZSYmYmkodCl9KSl9dmFyIGksYX0oKX1maW5hbGx5e2RlbGV0ZSBsKCkuY29va2llfX0oKX0oe2xlZ2FjeU5hbWU6SmksdHJmcU1ldGhvZHM6bixjb25maWdNYW5hZ2VyUHJvcHM6e2xlZ2FjeU5hbWU6SmksZGF0YUxheWVyTmFtZToiX3RyZmQiLGNsaWVudENvbmZpZ1ByZWZpeGVzOltKaV19LGRhdGFMYXllckNvbmZpZzp7cGFnZVZpZXdTY2hlbWE6ImFkZF9wYWdlX3ZpZXciLGF1dG9QYWdlVmlld0Rpc2FibGVkOiExLGltbWVkaWF0ZVNjaGVtYXM6WyJhZGRfcGFnZV92aWV3Il19LGdsb2JhbENvbnRleHRDb25maWc6e2NvbnRleHRGbk1hcDp7ImNvbnRleHQudXNlclR5cGUiOmZ1bmN0aW9uKCl7cmV0dXJuImMyIn0sImNvbnRleHQudmlzaXRvcklkIjpmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXNzaW9uLnZpc2l0b3JHdWlkfSwiY29udGV4dC5zZXNzaW9uSWQiOmZ1bmN0aW9uKHQpe3JldHVybiB0LnNlc3Npb24udmlzaXRHdWlkfSwicGFnZS5zZXNzaW9uUGFnZVZpZXdDb3VudCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2Vzc2lvbi5wYWdlQ291bnR9fSxwYXJhbXNGbk1hcDokaX0saG9va3M6e2dldEVudmlyb25tZW50OmZ1bmN0aW9uKCl7dmFyIHQ9S3QuZ2V0KCIiLmNvbmNhdChKaSwiLmJhc2VIb3N0IikpO2lmKHQpcmV0dXJuInNlY3VyZXNlcnZlci5uZXQiPT09dD8icHJvZCI6InRlc3Qtc2VjdXJlc2VydmVyLm5ldCI9PT10PyJ0ZXN0IjoiZGV2In0sYmVmb3JlTG9hZDpmdW5jdGlvbigpe2ZyLmluaXQoe2NvbnRleHRGbk1hcDpRaX0pfX19KSx7fX0pKCkpKTs="}},"time_used":7,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":7,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/universal-provider@2.17.4","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.440Z","timestamp":1785138633440,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/universal-provider@2.17.4 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mail.usdt-transfer.info/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nvary: User-Agent\r\nx-esm-path: /@walletconnect/universal-provider@2.17.4/es2022/universal-provider.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/universal-provider@2.17.4/dist/types/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 229527\r\nlast-modified: Mon, 27 Jul 2026 04:57:39 GMT\r\ncf-ray: a21a0dcb1bc7569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":736,"size_decoded":875,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"7e7955a04d1b9dbaa7fa96e8f09a96f2","sha1":"2d8f597ae99c30e14f0b6db55fa3c2c3e442e15c","sha256":"d86711685eb948065d95bb39449e1df623c4eb79edc7dc1e40c68222d55c3eb7","sha512":"810728993217f60643eba291a4d936063cb15107203e9308dfd2303b09e7acf02197dd35d9c45159bccf1849d8c2fff426fa84af3531c8166e873c627cf58e01","ssdeep":"","tlshash":"b201dd91c6238f16537b4e982b45537dc62b5b8ad7c1206cd2d94234f5726d486e03e7","first_seen":"2025-07-08T23:56:54.754055Z","last_seen":"2026-07-27T07:51:47.18634Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvdW5pdmVyc2FsLXByb3ZpZGVyQDIuMTcuNCAqLwppbXBvcnQgIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLWh0dHAtY29ubmVjdGlvbkAxLjAuOC9lczIwMjIvanNvbnJwYy1odHRwLWNvbm5lY3Rpb24ubWpzIjsKaW1wb3J0ICIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy1wcm92aWRlckAxLjAuMTQvZXMyMDIyL2pzb25ycGMtcHJvdmlkZXIubWpzIjsKaW1wb3J0ICIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOC9lczIwMjIvanNvbnJwYy11dGlscy5tanMiOwppbXBvcnQgIi9Ad2FsbGV0Y29ubmVjdC9sb2dnZXJAMi4xLjIvZXMyMDIyL2xvZ2dlci5tanMiOwppbXBvcnQgIi9Ad2FsbGV0Y29ubmVjdC9zaWduLWNsaWVudEAyLjE3LjQvZXMyMDIyL3NpZ24tY2xpZW50Lm1qcyI7CmltcG9ydCAiL0B3YWxsZXRjb25uZWN0L3V0aWxzQDIuMTcuNC9lczIwMjIvdXRpbHMubWpzIjsKaW1wb3J0ICIvbG9kYXNoQDQuMTcuMjEvZXMyMDIyL2xvZGFzaC5tanMiOwppbXBvcnQgIi9ub2RlL2V2ZW50cy5tanMiOwpleHBvcnQgKiBmcm9tICIvQHdhbGxldGNvbm5lY3QvdW5pdmVyc2FsLXByb3ZpZGVyQDIuMTcuNC9lczIwMjIvdW5pdmVyc2FsLXByb3ZpZGVyLm1qcyI7CmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICIvQHdhbGxldGNvbm5lY3QvdW5pdmVyc2FsLXByb3ZpZGVyQDIuMTcuNC9lczIwMjIvdW5pdmVyc2FsLXByb3ZpZGVyLm1qcyI7Cg=="}},"time_used":26,"timings":{"blocked":0,"dns":2,"connect":13,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.501Z","timestamp":1785138633501,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/utils@2.17.4/es2022/utils.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Fri, 18 Jul 2025 11:54:46 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcb6bce569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":36468,"size_decoded":14990,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (18631)","md5":"efb28c6275a608532547e205e71ad25b","sha1":"0a3113ba6a30dbf8ef0a1c854a384faf1ccdcfed","sha256":"801140b6c53e82bbc81baf4a6aedc85767df476b46d5d43fdcd0e93e1f5bc51e","sha512":"10d0694d2dd87d910bfed4092af7e4d92abf19718120b736dfe0e60444ebb59f5af449924ffc39849b9eae5872a7b06ac8a64f9bb99086d220cd6b2061e0265c","ssdeep":"768:ldusNgArZvh93ehbLxhhfPubvFpN4YzFpN2v4ce:VFenmbvFpGMFpQvve","tlshash":"6df22bc9b196f07a835f45ac50bf700bf3ac68a440dd2965e8a7d8a67570198c3f3f26","first_seen":"2025-07-08T23:56:54.681121Z","last_seen":"2026-07-27T07:51:47.248802Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvdXRpbHNAMi4xNy40ICovCmltcG9ydCBfX1Byb2Nlc3MkIGZyb20gIi9ub2RlL3Byb2Nlc3MubWpzIjsKaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwppbXBvcnR7ZGV0ZWN0IGFzIFplfWZyb20iL2RldGVjdC1icm93c2VyQDUuMy4wL2VzMjAyMi9kZXRlY3QtYnJvd3Nlci5tanMiO2ltcG9ydHt0b01pbGlzZWNvbmRzIGFzIFksRklWRV9NSU5VVEVTIGFzIGllLGZyb21NaWxpc2Vjb25kcyBhcyBYZX1mcm9tIi9Ad2FsbGV0Y29ubmVjdC90aW1lQDEuMC4yL2VzMjAyMi90aW1lLm1qcyI7aW1wb3J0e2dldERvY3VtZW50IGFzIFEsZ2V0TmF2aWdhdG9yIGFzIFNlLGdldExvY2F0aW9uIGFzIEllfWZyb20iL0B3YWxsZXRjb25uZWN0L3dpbmRvdy1nZXR0ZXJzQDEuMC4xL2VzMjAyMi93aW5kb3ctZ2V0dGVycy5tanMiO2ltcG9ydHtnZXRXaW5kb3dNZXRhZGF0YSBhcyBldH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC93aW5kb3ctbWV0YWRhdGFAMS4wLjEvZXMyMDIyL3dpbmRvdy1tZXRhZGF0YS5tanMiO2ltcG9ydCphcyBVIGZyb20iL3F1ZXJ5LXN0cmluZ0A3LjEuMy9lczIwMjIvcXVlcnktc3RyaW5nLm1qcyI7aW1wb3J0e2hhc2hNZXNzYWdlIGFzIFJlfWZyb20iL0BldGhlcnNwcm9qZWN0L2hhc2hANS43LjAvZXMyMDIyL2hhc2gubWpzIjtpbXBvcnR7cmVjb3ZlckFkZHJlc3MgYXMgdHR9ZnJvbSIvQGV0aGVyc3Byb2plY3QvdHJhbnNhY3Rpb25zQDUuNy4wL2VzMjAyMi90cmFuc2FjdGlvbnMubWpzIjtpbXBvcnR7Q2hhQ2hhMjBQb2x5MTMwNSBhcyBQZX1mcm9tIi9Ac3RhYmxlbGliL2NoYWNoYTIwcG9seTEzMDVAMS4wLjEvZXMyMDIyL2NoYWNoYTIwcG9seTEzMDUubWpzIjtpbXBvcnR7SEtERiBhcyBudH1mcm9tIi9Ac3RhYmxlbGliL2hrZGZAMS4wLjEvZXMyMDIyL2hrZGYubWpzIjtpbXBvcnR7cmFuZG9tQnl0ZXMgYXMgTH1mcm9tIi9Ac3RhYmxlbGliL3JhbmRvbUAxLjAuMi9lczIwMjIvcmFuZG9tLm1qcyI7aW1wb3J0e1NIQTI1NiBhcyBqZSxoYXNoIGFzIFRlfWZyb20iL0BzdGFibGVsaWIvc2hhMjU2QDEuMC4xL2VzMjAyMi9zaGEyNTYubWpzIjtpbXBvcnQqYXMgRiBmcm9tIi9Ac3RhYmxlbGliL3gyNTUxOUAxLjAuMy9lczIwMjIveDI1NTE5Lm1qcyI7aW1wb3J0e3RvU3RyaW5nIGFzIGIsZnJvbVN0cmluZyBhcyB2LGNvbmNhdCBhcyBKfWZyb20iL3VpbnQ4YXJyYXlzQDMuMS4wL2VzMjAyMi91aW50OGFycmF5cy5tanMiO2ltcG9ydHtlYyBhcyBydH1mcm9tIi9lbGxpcHRpY0A2LjYuMS9lczIwMjIvZWxsaXB0aWMubWpzIjtpbXBvcnR7ZGVjb2RlSldUIGFzIHN0fWZyb20iL0B3YWxsZXRjb25uZWN0L3JlbGF5LWF1dGhAMS4wLjQvZXMyMDIyL3JlbGF5LWF1dGgubWpzIjtpbXBvcnR7UkVMQVlfSlNPTlJQQyBhcyBvdH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9yZWxheS1hcGlAMS4wLjExL2VzMjAyMi9yZWxheS1hcGkubWpzIjt2YXIgcT0iOiI7ZnVuY3Rpb24gJGUoZSl7bGV0W3Qsbl09ZS5zcGxpdChxKTtyZXR1cm57bmFtZXNwYWNlOnQscmVmZXJlbmNlOm59fWZ1bmN0aW9uIGF0KGUpe2xldHtuYW1lc3BhY2U6dCxyZWZlcmVuY2U6bn09ZTtyZXR1cm5bdCxuXS5qb2luKHEpfWZ1bmN0aW9uIEFlKGUpe2xldFt0LG4scl09ZS5zcGxpdChxKTtyZXR1cm57bmFtZXNwYWNlOnQscmVmZXJlbmNlOm4sYWRkcmVzczpyfX1mdW5jdGlvbiBpdChlKXtsZXR7bmFtZXNwYWNlOnQscmVmZXJlbmNlOm4sYWRkcmVzczpyfT1lO3JldHVyblt0LG4scl0uam9pbihxKX1mdW5jdGlvbiBDZShlLHQpe2xldCBuPVtdO3JldHVybiBlLmZvckVhY2gocj0+e2xldCBzPXQocik7bi5pbmNsdWRlcyhzKXx8bi5wdXNoKHMpfSksbn1mdW5jdGlvbiBjdChlKXtsZXR7YWRkcmVzczp0fT1BZShlKTtyZXR1cm4gdH1mdW5jdGlvbiB1dChlKXtsZXR7bmFtZXNwYWNlOnQscmVmZXJlbmNlOm59PUFlKGUpO3JldHVybiBhdCh7bmFtZXNwYWNlOnQscmVmZXJlbmNlOm59KX1mdW5jdGlvbiBucihlLHQpe2xldHtuYW1lc3BhY2U6bixyZWZlcmVuY2U6cn09JGUodCk7cmV0dXJuIGl0KHtuYW1lc3BhY2U6bixyZWZlcmVuY2U6cixhZGRyZXNzOmV9KX1mdW5jdGlvbiBycihlKXtyZXR1cm4gQ2UoZSxjdCl9ZnVuY3Rpb24gbHQoZSl7cmV0dXJuIENlKGUsdXQpfWZ1bmN0aW9uIHNyKGUsdD1bXSl7bGV0IG49W107cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e2lmKHQubGVuZ3RoJiYhdC5pbmNsdWRlcyhyKSlyZXR1cm47bGV0IHM9ZVtyXTtuLnB1c2goLi4ucy5hY2NvdW50cyl9KSxufWZ1bmN0aW9uIG9yKGUsdD1bXSl7bGV0IG49W107cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocj0+e2lmKHQubGVuZ3RoJiYhdC5pbmNsdWRlcyhyKSlyZXR1cm47bGV0IHM9ZVtyXTtuLnB1c2goLi4ubHQocy5hY2NvdW50cykpfSksbn1mdW5jdGlvbiBhcihlLHQ9W10pe2xldCBuPVtdO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKHI9PntpZih0Lmxlbmd0aCYmIXQuaW5jbHVkZXMocikpcmV0dXJuO2xldCBzPWVbcl07bi5wdXNoKC4uLloocixzKSl9KSxufWZ1bmN0aW9uIFooZSx0KXtyZXR1cm4gZS5pbmNsdWRlcygiOiIpP1tlXTp0LmNoYWluc3x8W119dmFyIGR0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGZ0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscHQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx1ZT0oZSx0LG4pPT50IGluIGU/ZHQoZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpufSk6ZVt0XT1uLGxlPShlLHQpPT57Zm9yKHZhciBuIGluIHR8fCh0PXt9KSlmdC5jYWxsKHQsbikmJnVlKGUsbix0W25dKTtpZihjZSlmb3IodmFyIG4gb2YgY2UodCkpcHQuY2FsbCh0LG4pJiZ1ZShlLG4sdFtuXSk7cmV0dXJuIGV9LG10PSJSZWFjdE5hdGl2ZSIseT17cmVhY3ROYXRpdmU6InJlYWN0LW5hdGl2ZSIsbm9kZToibm9kZSIsYnJvd3NlcjoiYnJvd3NlciIsdW5rbm93bjoidW5rbm93biJ9LEc9IiAiLGlyPSI6IixodD0iLyIsVWU9Mixjcj0xZTMseXQ9ImpzIjtmdW5jdGlvbiBfZSgpe3JldHVybiB0eXBlb2YgX19Qcm9jZXNzJDwidSImJnR5cGVvZiBfX1Byb2Nlc3MkLnZlcnNpb25zPCJ1IiYmdHlwZW9mIF9fUHJvY2VzcyQudmVyc2lvbnMubm9kZTwidSJ9ZnVuY3Rpb24gJCgpe3JldHVybiFRKCkmJiEhU2UoKSYmbmF2aWdhdG9yLnByb2R1Y3Q9PT1tdH1mdW5jdGlvbiB1cigpe3JldHVybiAkKCkmJnR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmdHlwZW9mIGdsb2JhbFRoaXM/LlBsYXRmb3JtPCJ1IiYmZ2xvYmFsVGhpcz8uUGxhdGZvcm0uT1M9PT0iYW5kcm9pZCJ9ZnVuY3Rpb24gbHIoKXtyZXR1cm4gJCgpJiZ0eXBlb2YgZ2xvYmFsVGhpczwidSImJnR5cGVvZiBnbG9iYWxUaGlzPy5QbGF0Zm9ybTwidSImJmdsb2JhbFRoaXM/LlBsYXRmb3JtLk9TPT09ImlvcyJ9ZnVuY3Rpb24gQigpe3JldHVybiFfZSgpJiYhIVNlKCkmJiEhUSgpfWZ1bmN0aW9uIF8oKXtyZXR1cm4gJCgpP3kucmVhY3ROYXRpdmU6X2UoKT95Lm5vZGU6QigpP3kuYnJvd3Nlcjp5LnVua25vd259ZnVuY3Rpb24gZHIoKXt2YXIgZTt0cnl7cmV0dXJuICQoKSYmdHlwZW9mIGdsb2JhbFRoaXM8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcz8uQXBwbGljYXRpb248InUiPyhlPWdsb2JhbFRoaXMuQXBwbGljYXRpb24pPT1udWxsP3ZvaWQgMDplLmFwcGxpY2F0aW9uSWQ6dm9pZCAwfWNhdGNoe3JldHVybn19ZnVuY3Rpb24gZ3QoZSx0KXtsZXQgbj1VLnBhcnNlKGUpO3JldHVybiBuPWxlKGxlKHt9LG4pLHQpLGU9VS5zdHJpbmdpZnkobiksZX1mdW5jdGlvbiBmcigpe3JldHVybiBldCgpfHx7bmFtZToiIixkZXNjcmlwdGlvbjoiIix1cmw6IiIsaWNvbnM6WyIiXX19ZnVuY3Rpb24gcHIoZSx0KXt2YXIgbjtsZXQgcj1fKCkscz17cHJvdG9jb2w6ZSx2ZXJzaW9uOnQsZW52OnJ9O3JldHVybiByPT09ImJyb3dzZXIiJiYocy5ob3N0PSgobj1JZSgpKT09bnVsbD92b2lkIDA6bi5ob3N0KXx8InVua25vd24iKSxzfWZ1bmN0aW9uIGJ0KCl7aWYoXygpPT09eS5yZWFjdE5hdGl2ZSYmdHlwZW9mIGdsb2JhbFRoaXM8InUiJiZ0eXBlb2YgZ2xvYmFsVGhpcz8uUGxhdGZvcm08InUiKXtsZXR7T1M6bixWZXJzaW9uOnJ9PWdsb2JhbFRoaXMuUGxhdGZvcm07cmV0dXJuW24scl0uam9pbigiLSIpfWxldCBlPVplKCk7aWYoZT09PW51bGwpcmV0dXJuInVua25vd24iO2xldCB0PWUub3M/ZS5vcy5yZXBsYWNlKCIgIiwiIikudG9Mb3dlckNhc2UoKToidW5rbm93biI7cmV0dXJuIGUudHlwZT09PSJicm93c2VyIj9bdCxlLm5hbWUsZS52ZXJzaW9uXS5qb2luKCItIik6W3QsZS52ZXJzaW9uXS5qb2luKCItIil9ZnVuY3Rpb24gdnQoKXt2YXIgZTtsZXQgdD1fKCk7cmV0dXJuIHQ9PT15LmJyb3dzZXI/W3QsKChlPUllKCkpPT1udWxsP3ZvaWQgMDplLmhvc3QpfHwidW5rbm93biJdLmpvaW4oIjoiKTp0fWZ1bmN0aW9uIEV0KGUsdCxuKXtsZXQgcj1idCgpLHM9dnQoKTtyZXR1cm5bW2UsdF0uam9pbigiLSIpLFt5dCxuXS5qb2luKCItIikscixzXS5qb2luKCIvIil9ZnVuY3Rpb24gbXIoe3Byb3RvY29sOmUsdmVyc2lvbjp0LHJlbGF5VXJsOm4sc2RrVmVyc2lvbjpyLGF1dGg6cyxwcm9qZWN0SWQ6byx1c2VPbkNsb3NlRXZlbnQ6YSxidW5kbGVJZDp1LHBhY2thZ2VOYW1lOmx9KXtsZXQgaT1uLnNwbGl0KCI/IiksZD1FdChlLHQsciksYz17YXV0aDpzLHVhOmQscHJvamVjdElkOm8sdXNlT25DbG9zZUV2ZW50OmF8fHZvaWQgMCxwYWNrYWdlTmFtZTpsfHx2b2lkIDAsYnVuZGxlSWQ6dXx8dm9pZCAwfSxmPWd0KGlbMV18fCIiLGMpO3JldHVybiBpWzBdKyI/IitmfWZ1bmN0aW9uIGhyKGUpe2xldCB0PShlLm1hdGNoKC9eW146XSsoPz06XC9cLykvZ2kpfHxbXSlbMF0sbj10eXBlb2YgdDwidSI/ZS5zcGxpdCgiOi8vIilbMV06ZTtyZXR1cm4gdD10PT09IndzcyI/Imh0dHBzIjoiaHR0cCIsW3Qsbl0uam9pbigiOi8vIil9ZnVuY3Rpb24geXIoZSx0LG4pe2lmKCFlW3RdfHx0eXBlb2YgZVt0XSE9PW4pdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIG9yIGludmFsaWQgIiR7dH0iIHBhcmFtYCl9ZnVuY3Rpb24gd3QoZSx0PVVlKXtyZXR1cm4gT3QoZS5zcGxpdChodCksdCl9ZnVuY3Rpb24gZ3IoZSl7cmV0dXJuIHd0KGUpLmpvaW4oRyl9ZnVuY3Rpb24gUChlLHQpe3JldHVybiBlLmZpbHRlcihuPT50LmluY2x1ZGVzKG4pKS5sZW5ndGg9PT1lLmxlbmd0aH1mdW5jdGlvbiBPdChlLHQ9VWUpe3JldHVybiBlLnNsaWNlKE1hdGgubWF4KGUubGVuZ3RoLXQsMCkpfWZ1bmN0aW9uIGJyKGUpe3JldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZS5lbnRyaWVzKCkpfWZ1bmN0aW9uIHZyKGUpe3JldHVybiBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGUpKX1mdW5jdGlvbiBFcihlLHQpe2xldCBuPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKHI9PntuW3JdPXQoZVtyXSl9KSxufXZhciB3cj1lPT5lO2Z1bmN0aW9uIE50KGUpe3JldHVybiBlLnRyaW0oKS5yZXBsYWNlKC9eXHcvLHQ9PnQudG9VcHBlckNhc2UoKSl9ZnVuY3Rpb24gT3IoZSl7cmV0dXJuIGUuc3BsaXQoRykubWFwKHQ9Pk50KHQpKS5qb2luKEcpfWZ1bmN0aW9uIE5yKGU9aWUsdCl7bGV0IG49WShlfHxpZSkscixzLG8sYTtyZXR1cm57cmVzb2x2ZTp1PT57byYmciYmKGNsZWFyVGltZW91dChvKSxyKHUpLGE9UHJvbWlzZS5yZXNvbHZlKHUpKX0scmVqZWN0OnU9PntvJiZzJiYoY2xlYXJUaW1lb3V0KG8pLHModSkpfSxkb25lOigpPT5uZXcgUHJvbWlzZSgodSxsKT0+e2lmKGEpcmV0dXJuIHUoYSk7bz1zZXRUaW1lb3V0KCgpPT57bGV0IGk9bmV3IEVycm9yKHQpO2E9UHJvbWlzZS5yZWplY3QoaSksbChpKX0sbikscj11LHM9bH0pfX1mdW5jdGlvbiBTcihlLHQsbil7cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jKHIscyk9PntsZXQgbz1zZXRUaW1lb3V0KCgpPT5zKG5ldyBFcnJvcihuKSksdCk7dHJ5e2xldCBhPWF3YWl0IGU7cihhKX1jYXRjaChhKXtzKGEpfWNsZWFyVGltZW91dChvKX0pfWZ1bmN0aW9uIGtlKGUsdCl7aWYodHlwZW9mIHQ9PSJzdHJpbmciJiZ0LnN0YXJ0c1dpdGgoYCR7ZX06YCkpcmV0dXJuIHQ7aWYoZS50b0xvd2VyQ2FzZSgpPT09InRvcGljIil7aWYodHlwZW9mIHQhPSJzdHJpbmciKXRocm93IG5ldyBFcnJvcignVmFsdWUgbXVzdCBiZSAic3RyaW5nIiBmb3IgZXhwaXJlciB0YXJnZXQgdHlwZTogdG9waWMnKTtyZXR1cm5gdG9waWM6JHt0fWB9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iaWQiKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBtdXN0IGJlICJudW1iZXIiIGZvciBleHBpcmVyIHRhcmdldCB0eXBlOiBpZCcpO3JldHVybmBpZDoke3R9YH10aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZXhwaXJlciB0YXJnZXQgdHlwZTogJHtlfWApfWZ1bmN0aW9uIElyKGUpe3JldHVybiBrZSgidG9waWMiLGUpfWZ1bmN0aW9uIFJyKGUpe3JldHVybiBrZSgiaWQiLGUpfWZ1bmN0aW9uIFByKGUpe2xldFt0LG5dPWUuc3BsaXQoIjoiKSxyPXtpZDp2b2lkIDAsdG9waWM6dm9pZCAwfTtpZih0PT09InRvcGljIiYmdHlwZW9mIG49PSJzdHJpbmciKXIudG9waWM9bjtlbHNlIGlmKHQ9PT0iaWQiJiZOdW1iZXIuaXNJbnRlZ2VyKE51bWJlcihuKSkpci5pZD1OdW1iZXIobik7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdGFyZ2V0LCBleHBlY3RlZCBpZDpudW1iZXIgb3IgdG9waWM6c3RyaW5nLCBnb3QgJHt0fToke259YCk7cmV0dXJuIHJ9ZnVuY3Rpb24ganIoZSx0KXtyZXR1cm4gWGUoKHR8fERhdGUubm93KCkpK1koZSkpfWZ1bmN0aW9uIFRyKGUpe3JldHVybiBEYXRlLm5vdygpPj1ZKGUpfWZ1bmN0aW9uICRyKGUsdCl7cmV0dXJuYCR7ZX0ke3Q/YDoke3R9YDoiIn1gfWZ1bmN0aW9uIFMoZT1bXSx0PVtdKXtyZXR1cm5bLi4ubmV3IFNldChbLi4uZSwuLi50XSldfWFzeW5jIGZ1bmN0aW9uIEFyKHtpZDplLHRvcGljOnQsd2NEZWVwTGluazpufSl7dmFyIHI7dHJ5e2lmKCFuKXJldHVybjtsZXQgcz10eXBlb2Ygbj09InN0cmluZyI/SlNPTi5wYXJzZShuKTpuLG89cz8uaHJlZjtpZih0eXBlb2YgbyE9InN0cmluZyIpcmV0dXJuO2xldCBhPVN0KG8sZSx0KSx1PV8oKTtpZih1PT09eS5icm93c2VyKXtpZighKChyPVEoKSkhPW51bGwmJnIuaGFzRm9jdXMoKSkpe2NvbnNvbGUud2FybigiRG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBmb2N1cywgc2tpcHBpbmcgZGVlcGxpbmsuIik7cmV0dXJufWEuc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKXx8YS5zdGFydHNXaXRoKCJodHRwOi8vIik/d2luZG93Lm9wZW4oYSwiX2JsYW5rIiwibm9yZWZlcnJlciBub29wZW5lciIpOndpbmRvdy5vcGVuKGEsSXQoKT8iX2JsYW5rIjoiX3NlbGYiLCJub3JlZmVycmVyIG5vb3BlbmVyIil9ZWxzZSB1PT09eS5yZWFjdE5hdGl2ZSYmdHlwZW9mIGdsb2JhbFRoaXM/Lkxpbmtpbmc8InUiJiZhd2FpdCBnbG9iYWxUaGlzLkxpbmtpbmcub3BlblVSTChhKX1jYXRjaChzKXtjb25zb2xlLmVycm9yKHMpfX1mdW5jdGlvbiBTdChlLHQsbil7bGV0IHI9YHJlcXVlc3RJZD0ke3R9JnNlc3Npb25Ub3BpYz0ke259YDtlLmVuZHNXaXRoKCIvIikmJihlPWUuc2xpY2UoMCwtMSkpO2xldCBzPWAke2V9YDtpZihlLnN0YXJ0c1dpdGgoImh0dHBzOi8vdC5tZSIpKXtsZXQgbz1lLmluY2x1ZGVzKCI/Iik/IiZzdGFydGFwcD0iOiI/c3RhcnRhcHA9IjtzPWAke3N9JHtvfSR7UnQociwhMCl9YH1lbHNlIHM9YCR7c30vd2M/JHtyfWA7cmV0dXJuIHN9YXN5bmMgZnVuY3Rpb24gQ3IoZSx0KXtsZXQgbj0iIjt0cnl7aWYoQigpJiYobj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0KSxuKSlyZXR1cm4gbjtuPWF3YWl0IGUuZ2V0SXRlbSh0KX1jYXRjaChyKXtjb25zb2xlLmVycm9yKHIpfXJldHVybiBufWZ1bmN0aW9uIGRlKGUsdCl7cmV0dXJuIGUuZmlsdGVyKG49PnQuaW5jbHVkZXMobikpfWZ1bmN0aW9uIFVyKGUsdCl7aWYoIWUuaW5jbHVkZXModCkpcmV0dXJuIG51bGw7bGV0IG49ZS5zcGxpdCgvKFsmLD8sPV0pLykscj1uLmluZGV4T2YodCk7cmV0dXJuIG5bcisyXX1mdW5jdGlvbiBfcigpe3JldHVybiB0eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvIT1udWxsJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOiJ4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgiLnJlcGxhY2UoL1t4eV0vZ3UsZT0+e2xldCB0PU1hdGgucmFuZG9tKCkqMTZ8MDtyZXR1cm4oZT09PSJ4Ij90OnQmM3w4KS50b1N0cmluZygxNil9KX1mdW5jdGlvbiBrcigpe3JldHVybiB0eXBlb2YgX19Qcm9jZXNzJDwidSImJl9fUHJvY2VzcyQuZW52LklTX1ZJVEVTVD09PSJ0cnVlIn1mdW5jdGlvbiBJdCgpe3JldHVybiB0eXBlb2Ygd2luZG93PCJ1IiYmKCEhd2luZG93LlRlbGVncmFtV2Vidmlld1Byb3h5fHwhIXdpbmRvdy5UZWxlZ3JhbXx8ISF3aW5kb3cuVGVsZWdyYW1XZWJ2aWV3UHJveHlQcm90byl9ZnVuY3Rpb24gUnQoZSx0PSExKXtsZXQgbj1fX0J1ZmZlciQuZnJvbShlKS50b1N0cmluZygiYmFzZTY0Iik7cmV0dXJuIHQ/bi5yZXBsYWNlKC9bPV0vZywiIik6bn1mdW5jdGlvbiBEZShlKXtyZXR1cm4gX19CdWZmZXIkLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0Zi04Iil9ZnVuY3Rpb24gRHIoZSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PnNldFRpbWVvdXQodCxlKSl9dmFyIFB0PSJodHRwczovL3JwYy53YWxsZXRjb25uZWN0Lm9yZy92MSI7YXN5bmMgZnVuY3Rpb24ganQoZSx0LG4scixzLG8pe3N3aXRjaChuLnQpe2Nhc2UiZWlwMTkxIjpyZXR1cm4gVHQoZSx0LG4ucyk7Y2FzZSJlaXAxMjcxIjpyZXR1cm4gYXdhaXQgJHQoZSx0LG4ucyxyLHMsbyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYHZlcmlmeVNpZ25hdHVyZSBmYWlsZWQ6IEF0dGVtcHRlZCB0byB2ZXJpZnkgQ2FjYW9TaWduYXR1cmUgd2l0aCB1bmtub3duIHR5cGU6ICR7bi50fWApfX1mdW5jdGlvbiBUdChlLHQsbil7cmV0dXJuIHR0KFJlKHQpLG4pLnRvTG93ZXJDYXNlKCk9PT1lLnRvTG93ZXJDYXNlKCl9YXN5bmMgZnVuY3Rpb24gJHQoZSx0LG4scixzLG8pe2xldCBhPSRlKHIpO2lmKCFhLm5hbWVzcGFjZXx8IWEucmVmZXJlbmNlKXRocm93IG5ldyBFcnJvcihgaXNWYWxpZEVpcDEyNzFTaWduYXR1cmUgZmFpbGVkOiBjaGFpbklkIG11c3QgYmUgaW4gQ0FJUC0yIGZvcm1hdCwgcmVjZWl2ZWQ6ICR7cn1gKTt0cnl7bGV0IHU9IjB4MTYyNmJhN2UiLGw9IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAiLGk9IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEiLGQ9bi5zdWJzdHJpbmcoMiksYz1SZSh0KS5zdWJzdHJpbmcoMiksZj11K2MrbCtpK2QsaD1hd2FpdCBmZXRjaChgJHtvfHxQdH0vP2NoYWluSWQ9JHtyfSZwcm9qZWN0SWQ9JHtzfWAse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7aWQ6QXQoKSxqc29ucnBjOiIyLjAiLG1ldGhvZDoiZXRoX2NhbGwiLHBhcmFtczpbe3RvOmUsZGF0YTpmfSwibGF0ZXN0Il19KX0pLHtyZXN1bHQ6cH09YXdhaXQgaC5qc29uKCk7cmV0dXJuIHA/cC5zbGljZSgwLHUubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT09dS50b0xvd2VyQ2FzZSgpOiExfWNhdGNoKHUpe3JldHVybiBjb25zb2xlLmVycm9yKCJpc1ZhbGlkRWlwMTI3MVNpZ25hdHVyZTogIix1KSwhMX19ZnVuY3Rpb24gQXQoKXtyZXR1cm4gRGF0ZS5ub3coKStNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMWUzKX12YXIgQ3Q9T2JqZWN0LmRlZmluZVByb3BlcnR5LFV0PU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLF90PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLGZlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsa3Q9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxEdD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLHBlPShlLHQsbik9PnQgaW4gZT9DdChlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOm59KTplW3RdPW4sWD0oZSx0KT0+e2Zvcih2YXIgbiBpbiB0fHwodD17fSkpa3QuY2FsbCh0LG4pJiZwZShlLG4sdFtuXSk7aWYoZmUpZm9yKHZhciBuIG9mIGZlKHQpKUR0LmNhbGwodCxuKSYmcGUoZSxuLHRbbl0pO3JldHVybiBlfSx4ZT0oZSx0KT0+VXQoZSxfdCh0KSkseHQ9ImRpZDpwa2g6IixlZT1lPT5lPy5zcGxpdCgiOiIpLFZ0PWU9PntsZXQgdD1lJiZlZShlKTtpZih0KXJldHVybiBlLmluY2x1ZGVzKHh0KT90WzNdOnRbMV19LE10PWU9PntsZXQgdD1lJiZlZShlKTtpZih0KXJldHVybiB0WzJdKyI6Iit0WzNdfSxWZT1lPT57bGV0IHQ9ZSYmZWUoZSk7aWYodClyZXR1cm4gdC5wb3AoKX07YXN5bmMgZnVuY3Rpb24geHIoZSl7bGV0e2NhY2FvOnQscHJvamVjdElkOm59PWUse3M6cixwOnN9PXQsbz1LdChzLHMuaXNzKSxhPVZlKHMuaXNzKTtyZXR1cm4gYXdhaXQganQoYSxvLHIsTXQocy5pc3MpLG4pfXZhciBLdD0oZSx0KT0+e2xldCBuPWAke2UuZG9tYWlufSB3YW50cyB5b3UgdG8gc2lnbiBpbiB3aXRoIHlvdXIgRXRoZXJldW0gYWNjb3VudDpgLHI9VmUodCk7aWYoIWUuYXVkJiYhZS51cmkpdGhyb3cgbmV3IEVycm9yKCJFaXRoZXIgYGF1ZGAgb3IgYHVyaWAgaXMgcmVxdWlyZWQgdG8gY29uc3RydWN0IHRoZSBtZXNzYWdlIik7bGV0IHM9ZS5zdGF0ZW1lbnR8fHZvaWQgMCxvPWBVUkk6ICR7ZS5hdWR8fGUudXJpfWAsYT1gVmVyc2lvbjogJHtlLnZlcnNpb259YCx1PWBDaGFpbiBJRDogJHtWdCh0KX1gLGw9YE5vbmNlOiAke2Uubm9uY2V9YCxpPWBJc3N1ZWQgQXQ6ICR7ZS5pYXR9YCxkPWUuZXhwP2BFeHBpcmF0aW9uIFRpbWU6ICR7ZS5leHB9YDp2b2lkIDAsYz1lLm5iZj9gTm90IEJlZm9yZTogJHtlLm5iZn1gOnZvaWQgMCxmPWUucmVxdWVzdElkP2BSZXF1ZXN0IElEOiAke2UucmVxdWVzdElkfWA6dm9pZCAwLGg9ZS5yZXNvdXJjZXM/YFJlc291cmNlczoke2UucmVzb3VyY2VzLm1hcChtPT5gCi0gJHttfWApLmpvaW4oIiIpfWA6dm9pZCAwLHA9bmUoZS5yZXNvdXJjZXMpO2lmKHApe2xldCBtPVQocCk7cz1MZShzLG0pfXJldHVybltuLHIsIiIscywiIixvLGEsdSxsLGksZCxjLGYsaF0uZmlsdGVyKG09Pm0hPW51bGwpLmpvaW4oYApgKX07ZnVuY3Rpb24gVnIoZSx0LG4pe3JldHVybiBuLmluY2x1ZGVzKCJkaWQ6cGtoOiIpfHwobj1gZGlkOnBraDoke259YCkse2g6e3Q6ImNhaXAxMjIifSxwOntpc3M6bixkb21haW46ZS5kb21haW4sYXVkOmUuYXVkLHZlcnNpb246ZS52ZXJzaW9uLG5vbmNlOmUubm9uY2UsaWF0OmUuaWF0LHN0YXRlbWVudDplLnN0YXRlbWVudCxyZXF1ZXN0SWQ6ZS5yZXF1ZXN0SWQscmVzb3VyY2VzOmUucmVzb3VyY2VzLG5iZjplLm5iZixleHA6ZS5leHB9LHM6dH19ZnVuY3Rpb24gTXIoZSl7dmFyIHQ7bGV0e2F1dGhQYXlsb2FkOm4sY2hhaW5zOnIsbWV0aG9kczpzfT1lLG89bi5zdGF0ZW1lbnR8fCIiO2lmKCEociE9bnVsbCYmci5sZW5ndGgpKXJldHVybiBuO2xldCBhPW4uY2hhaW5zLHU9ZGUoYSxyKTtpZighKHUhPW51bGwmJnUubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoIk5vIHN1cHBvcnRlZCBjaGFpbnMiKTtsZXQgbD1MdChuLnJlc291cmNlcyk7aWYoIWwpcmV0dXJuIG47TyhsKTtsZXQgaT1GdChsLCJlaXAxNTUiKSxkPW4/LnJlc291cmNlc3x8W107aWYoaSE9bnVsbCYmaS5sZW5ndGgpe2xldCBjPXF0KGkpLGY9ZGUoYyxzKTtpZighKGYhPW51bGwmJmYubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoYFN1cHBvcnRlZCBtZXRob2RzIGRvbid0IHNhdGlzZnkgdGhlIHJlcXVlc3RlZDogJHtKU09OLnN0cmluZ2lmeShjKX0sIHN1cHBvcnRlZDogJHtKU09OLnN0cmluZ2lmeShzKX1gKTtsZXQgaD1NZSgicmVxdWVzdCIsZix7Y2hhaW5zOnV9KSxwPUp0KGwsImVpcDE1NSIsaCk7ZD0oKHQ9bj8ucmVzb3VyY2VzKT09bnVsbD92b2lkIDA6dC5zbGljZSgwLC0xKSl8fFtdLGQucHVzaCh0ZShwKSl9cmV0dXJuIHhlKFgoe30sbikse3N0YXRlbWVudDpHdChvLG5lKGQpKSxjaGFpbnM6dSxyZXNvdXJjZXM6biE9bnVsbCYmbi5yZXNvdXJjZXN8fGQubGVuZ3RoPjA/ZDp2b2lkIDB9KX1mdW5jdGlvbiBMdChlKXtsZXQgdD1uZShlKTtpZih0JiZLZSh0KSlyZXR1cm4gVCh0KX1mdW5jdGlvbiBLcihlLHQpe3ZhciBuO3JldHVybihuPWU/LmF0dCk9PW51bGw/dm9pZCAwOm4uaGFzT3duUHJvcGVydHkodCl9ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbixyO3JldHVybihuPWU/LmF0dCkhPW51bGwmJm5bdF0/T2JqZWN0LmtleXMoKHI9ZT8uYXR0KT09bnVsbD92b2lkIDA6clt0XSk6W119ZnVuY3Rpb24gTHIoZSl7cmV0dXJuIGU/Lm1hcCh0PT5PYmplY3Qua2V5cyh0KSl8fFtdfWZ1bmN0aW9uIHF0KGUpe3JldHVybiBlPy5tYXAodD0+e3ZhciBuO3JldHVybihuPXQuc3BsaXQoIi8iKSk9PW51bGw/dm9pZCAwOm5bMV19KXx8W119ZnVuY3Rpb24gQnQoZSl7cmV0dXJuIF9fQnVmZmVyJC5mcm9tKEpTT04uc3RyaW5naWZ5KGUpKS50b1N0cmluZygiYmFzZTY0Iil9ZnVuY3Rpb24gSHQoZSl7cmV0dXJuIEpTT04ucGFyc2UoX19CdWZmZXIkLmZyb20oZSwiYmFzZTY0IikudG9TdHJpbmcoInV0Zi04IikpfWZ1bmN0aW9uIE8oZSl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJObyByZWNhcCBwcm92aWRlZCwgdmFsdWUgaXMgdW5kZWZpbmVkIik7aWYoIWUuYXR0KXRocm93IG5ldyBFcnJvcigiTm8gYGF0dGAgcHJvcGVydHkgZm91bmQiKTtsZXQgdD1PYmplY3Qua2V5cyhlLmF0dCk7aWYoISh0IT1udWxsJiZ0Lmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKCJObyByZXNvdXJjZXMgZm91bmQgaW4gYGF0dGAgcHJvcGVydHkiKTt0LmZvckVhY2gobj0+e2xldCByPWUuYXR0W25dO2lmKEFycmF5LmlzQXJyYXkocikpdGhyb3cgbmV3IEVycm9yKGBSZXNvdXJjZSBtdXN0IGJlIGFuIG9iamVjdDogJHtufWApO2lmKHR5cGVvZiByIT0ib2JqZWN0Iil0aHJvdyBuZXcgRXJyb3IoYFJlc291cmNlIG11c3QgYmUgYW4gb2JqZWN0OiAke259YCk7aWYoIU9iamVjdC5rZXlzKHIpLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoYFJlc291cmNlIG9iamVjdCBpcyBlbXB0eTogJHtufWApO09iamVjdC5rZXlzKHIpLmZvckVhY2gocz0+e2xldCBvPXJbc107aWYoIUFycmF5LmlzQXJyYXkobykpdGhyb3cgbmV3IEVycm9yKGBBYmlsaXR5IGxpbWl0cyAke3N9IG11c3QgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cywgZm91bmQ6ICR7b31gKTtpZighby5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSBvZiAke3N9IGlzIGVtcHR5IGFycmF5LCBtdXN0IGJlIGFuIGFycmF5IHdpdGggb2JqZWN0c2ApO28uZm9yRWFjaChhPT57aWYodHlwZW9mIGEhPSJvYmplY3QiKXRocm93IG5ldyBFcnJvcihgQWJpbGl0eSBsaW1pdHMgKCR7c30pIG11c3QgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cywgZm91bmQ6ICR7YX1gKX0pfSl9KX1mdW5jdGlvbiBXdChlLHQsbixyPXt9KXtyZXR1cm4gbj8uc29ydCgocyxvKT0+cy5sb2NhbGVDb21wYXJlKG8pKSx7YXR0OntbZV06TWUodCxuLHIpfX19ZnVuY3Rpb24gSnQoZSx0LG4pe3ZhciByO3JldHVybiBlLmF0dFt0XT1YKHt9LG4pLCgocj1PYmplY3Qua2V5cyhlLmF0dCkpPT1udWxsP3ZvaWQgMDpyLnNvcnQoKHMsbyk9PnMubG9jYWxlQ29tcGFyZShvKSkpLnJlZHVjZSgocyxvKT0+KHMuYXR0W29dPWUuYXR0W29dLHMpLHthdHQ6e319KX1mdW5jdGlvbiBNZShlLHQsbj17fSl7dD10Py5zb3J0KChzLG8pPT5zLmxvY2FsZUNvbXBhcmUobykpO2xldCByPXQubWFwKHM9Pih7W2Ake2V9LyR7c31gXTpbbl19KSk7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sLi4ucil9ZnVuY3Rpb24gdGUoZSl7cmV0dXJuIE8oZSksYHVybjpyZWNhcDoke0J0KGUpLnJlcGxhY2UoLz0vZywiIil9YH1mdW5jdGlvbiBUKGUpe2xldCB0PUh0KGUucmVwbGFjZSgidXJuOnJlY2FwOiIsIiIpKTtyZXR1cm4gTyh0KSx0fWZ1bmN0aW9uIEZyKGUsdCxuKXtsZXQgcj1XdChlLHQsbik7cmV0dXJuIHRlKHIpfWZ1bmN0aW9uIEtlKGUpe3JldHVybiBlJiZlLmluY2x1ZGVzKCJ1cm46cmVjYXA6Iil9ZnVuY3Rpb24gcXIoZSx0KXtsZXQgbj1UKGUpLHI9VCh0KSxzPXp0KG4scik7cmV0dXJuIHRlKHMpfWZ1bmN0aW9uIHp0KGUsdCl7TyhlKSxPKHQpO2xldCBuPU9iamVjdC5rZXlzKGUuYXR0KS5jb25jYXQoT2JqZWN0LmtleXModC5hdHQpKS5zb3J0KChzLG8pPT5zLmxvY2FsZUNvbXBhcmUobykpLHI9e2F0dDp7fX07cmV0dXJuIG4uZm9yRWFjaChzPT57dmFyIG8sYTtPYmplY3Qua2V5cygoKG89ZS5hdHQpPT1udWxsP3ZvaWQgMDpvW3NdKXx8e30pLmNvbmNhdChPYmplY3Qua2V5cygoKGE9dC5hdHQpPT1udWxsP3ZvaWQgMDphW3NdKXx8e30pKS5zb3J0KCh1LGwpPT51LmxvY2FsZUNvbXBhcmUobCkpLmZvckVhY2godT0+e3ZhciBsLGk7ci5hdHRbc109eGUoWCh7fSxyLmF0dFtzXSkse1t1XTooKGw9ZS5hdHRbc10pPT1udWxsP3ZvaWQgMDpsW3VdKXx8KChpPXQuYXR0W3NdKT09bnVsbD92b2lkIDA6aVt1XSl9KX0pfSkscn1mdW5jdGlvbiBMZShlPSIiLHQpe08odCk7bGV0IG49IkkgZnVydGhlciBhdXRob3JpemUgdGhlIHN0YXRlZCBVUkkgdG8gcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnMgb24gbXkgYmVoYWxmOiAiO2lmKGUuaW5jbHVkZXMobikpcmV0dXJuIGU7bGV0IHI9W10scz0wO09iamVjdC5rZXlzKHQuYXR0KS5mb3JFYWNoKHU9PntsZXQgbD1PYmplY3Qua2V5cyh0LmF0dFt1XSkubWFwKGM9Pih7YWJpbGl0eTpjLnNwbGl0KCIvIilbMF0sYWN0aW9uOmMuc3BsaXQoIi8iKVsxXX0pKTtsLnNvcnQoKGMsZik9PmMuYWN0aW9uLmxvY2FsZUNvbXBhcmUoZi5hY3Rpb24pKTtsZXQgaT17fTtsLmZvckVhY2goYz0+e2lbYy5hYmlsaXR5XXx8KGlbYy5hYmlsaXR5XT1bXSksaVtjLmFiaWxpdHldLnB1c2goYy5hY3Rpb24pfSk7bGV0IGQ9T2JqZWN0LmtleXMoaSkubWFwKGM9PihzKyssYCgke3N9KSAnJHtjfSc6ICcke2lbY10uam9pbigiJywgJyIpfScgZm9yICcke3V9Jy5gKSk7ci5wdXNoKGQuam9pbigiLCAiKS5yZXBsYWNlKCIuLCIsIi4iKSl9KTtsZXQgbz1yLmpvaW4oIiAiKSxhPWAke259JHtvfWA7cmV0dXJuYCR7ZT9lKyIgIjoiIn0ke2F9YH1mdW5jdGlvbiBCcihlKXt2YXIgdDtsZXQgbj1UKGUpO08obik7bGV0IHI9KHQ9bi5hdHQpPT1udWxsP3ZvaWQgMDp0LmVpcDE1NTtyZXR1cm4gcj9PYmplY3Qua2V5cyhyKS5tYXAocz0+cy5zcGxpdCgiLyIpWzFdKTpbXX1mdW5jdGlvbiBIcihlKXtsZXQgdD1UKGUpO08odCk7bGV0IG49W107cmV0dXJuIE9iamVjdC52YWx1ZXModC5hdHQpLmZvckVhY2gocj0+e09iamVjdC52YWx1ZXMocikuZm9yRWFjaChzPT57dmFyIG87KG89cz8uWzBdKSE9bnVsbCYmby5jaGFpbnMmJm4ucHVzaChzWzBdLmNoYWlucyl9KX0pLFsuLi5uZXcgU2V0KG4uZmxhdCgpKV19ZnVuY3Rpb24gR3QoZSx0KXtpZighdClyZXR1cm4gZTtsZXQgbj1UKHQpO3JldHVybiBPKG4pLExlKGUsbil9ZnVuY3Rpb24gbmUoZSl7aWYoIWUpcmV0dXJuO2xldCB0PWU/LltlLmxlbmd0aC0xXTtyZXR1cm4gS2UodCk/dDp2b2lkIDB9dmFyIEZlPSJiYXNlMTAiLGc9ImJhc2UxNiIscWU9ImJhc2U2NHBhZCIsV3I9ImJhc2U2NHVybCIsVj0idXRmOCIsQmU9MCxNPTEsSD0yLFl0PTAsbWU9MSx4PTEyLHJlPTMyO2Z1bmN0aW9uIEpyKCl7bGV0IGU9Ri5nZW5lcmF0ZUtleVBhaXIoKTtyZXR1cm57cHJpdmF0ZUtleTpiKGUuc2VjcmV0S2V5LGcpLHB1YmxpY0tleTpiKGUucHVibGljS2V5LGcpfX1mdW5jdGlvbiB6cigpe2xldCBlPUwocmUpO3JldHVybiBiKGUsZyl9ZnVuY3Rpb24gR3IoZSx0KXtsZXQgbj1GLnNoYXJlZEtleSh2KGUsZyksdih0LGcpLCEwKSxyPW5ldyBudChqZSxuKS5leHBhbmQocmUpO3JldHVybiBiKHIsZyl9ZnVuY3Rpb24gWXIoZSl7bGV0IHQ9VGUodihlLGcpKTtyZXR1cm4gYih0LGcpfWZ1bmN0aW9uIFFyKGUpe2xldCB0PVRlKHYoZSxWKSk7cmV0dXJuIGIodCxnKX1mdW5jdGlvbiBIZShlKXtyZXR1cm4gdihgJHtlfWAsRmUpfWZ1bmN0aW9uIEEoZSl7cmV0dXJuIE51bWJlcihiKGUsRmUpKX1mdW5jdGlvbiBacihlKXtsZXQgdD1IZSh0eXBlb2YgZS50eXBlPCJ1Ij9lLnR5cGU6QmUpO2lmKEEodCk9PT1NJiZ0eXBlb2YgZS5zZW5kZXJQdWJsaWNLZXk+InUiKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBzZW5kZXIgcHVibGljIGtleSBmb3IgdHlwZSAxIGVudmVsb3BlIik7bGV0IG49dHlwZW9mIGUuc2VuZGVyUHVibGljS2V5PCJ1Ij92KGUuc2VuZGVyUHVibGljS2V5LGcpOnZvaWQgMCxyPXR5cGVvZiBlLml2PCJ1Ij92KGUuaXYsZyk6TCh4KSxzPW5ldyBQZSh2KGUuc3ltS2V5LGcpKS5zZWFsKHIsdihlLm1lc3NhZ2UsVikpO3JldHVybiBXZSh7dHlwZTp0LHNlYWxlZDpzLGl2OnIsc2VuZGVyUHVibGljS2V5Om4sZW5jb2Rpbmc6ZS5lbmNvZGluZ30pfWZ1bmN0aW9uIFhyKGUsdCl7bGV0IG49SGUoSCkscj1MKHgpLHM9dihlLFYpO3JldHVybiBXZSh7dHlwZTpuLHNlYWxlZDpzLGl2OnIsZW5jb2Rpbmc6dH0pfWZ1bmN0aW9uIGVzKGUpe2xldCB0PW5ldyBQZSh2KGUuc3ltS2V5LGcpKSx7c2VhbGVkOm4saXY6cn09c2Uoe2VuY29kZWQ6ZS5lbmNvZGVkLGVuY29kaW5nOmU/LmVuY29kaW5nfSkscz10Lm9wZW4ocixuKTtpZihzPT09bnVsbCl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNyeXB0Iik7cmV0dXJuIGIocyxWKX1mdW5jdGlvbiB0cyhlLHQpe2xldHtzZWFsZWQ6bn09c2Uoe2VuY29kZWQ6ZSxlbmNvZGluZzp0fSk7cmV0dXJuIGIobixWKX1mdW5jdGlvbiBXZShlKXtsZXR7ZW5jb2Rpbmc6dD1xZX09ZTtpZihBKGUudHlwZSk9PT1IKXJldHVybiBiKEooW2UudHlwZSxlLnNlYWxlZF0pLHQpO2lmKEEoZS50eXBlKT09PU0pe2lmKHR5cGVvZiBlLnNlbmRlclB1YmxpY0tleT4idSIpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHNlbmRlciBwdWJsaWMga2V5IGZvciB0eXBlIDEgZW52ZWxvcGUiKTtyZXR1cm4gYihKKFtlLnR5cGUsZS5zZW5kZXJQdWJsaWNLZXksZS5pdixlLnNlYWxlZF0pLHQpfXJldHVybiBiKEooW2UudHlwZSxlLml2LGUuc2VhbGVkXSksdCl9ZnVuY3Rpb24gc2UoZSl7bGV0e2VuY29kZWQ6dCxlbmNvZGluZzpuPXFlfT1lLHI9dih0LG4pLHM9ci5zbGljZShZdCxtZSksbz1tZTtpZihBKHMpPT09TSl7bGV0IGk9bytyZSxkPWkreCxjPXIuc2xpY2UobyxpKSxmPXIuc2xpY2UoaSxkKSxoPXIuc2xpY2UoZCk7cmV0dXJue3R5cGU6cyxzZWFsZWQ6aCxpdjpmLHNlbmRlclB1YmxpY0tleTpjfX1pZihBKHMpPT09SCl7bGV0IGk9ci5zbGljZShvKSxkPUwoeCk7cmV0dXJue3R5cGU6cyxzZWFsZWQ6aSxpdjpkfX1sZXQgYT1vK3gsdT1yLnNsaWNlKG8sYSksbD1yLnNsaWNlKGEpO3JldHVybnt0eXBlOnMsc2VhbGVkOmwsaXY6dX19ZnVuY3Rpb24gbnMoZSx0KXtsZXQgbj1zZSh7ZW5jb2RlZDplLGVuY29kaW5nOnQ/LmVuY29kaW5nfSk7cmV0dXJuIFF0KHt0eXBlOkEobi50eXBlKSxzZW5kZXJQdWJsaWNLZXk6dHlwZW9mIG4uc2VuZGVyUHVibGljS2V5PCJ1Ij9iKG4uc2VuZGVyUHVibGljS2V5LGcpOnZvaWQgMCxyZWNlaXZlclB1YmxpY0tleTp0Py5yZWNlaXZlclB1YmxpY0tleX0pfWZ1bmN0aW9uIFF0KGUpe2xldCB0PWU/LnR5cGV8fEJlO2lmKHQ9PT1NKXtpZih0eXBlb2YgZT8uc2VuZGVyUHVibGljS2V5PiJ1Iil0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmcgc2VuZGVyIHB1YmxpYyBrZXkiKTtpZih0eXBlb2YgZT8ucmVjZWl2ZXJQdWJsaWNLZXk+InUiKXRocm93IG5ldyBFcnJvcigibWlzc2luZyByZWNlaXZlciBwdWJsaWMga2V5Iil9cmV0dXJue3R5cGU6dCxzZW5kZXJQdWJsaWNLZXk6ZT8uc2VuZGVyUHVibGljS2V5LHJlY2VpdmVyUHVibGljS2V5OmU/LnJlY2VpdmVyUHVibGljS2V5fX1mdW5jdGlvbiBycyhlKXtyZXR1cm4gZS50eXBlPT09TSYmdHlwZW9mIGUuc2VuZGVyUHVibGljS2V5PT0ic3RyaW5nIiYmdHlwZW9mIGUucmVjZWl2ZXJQdWJsaWNLZXk9PSJzdHJpbmcifWZ1bmN0aW9uIHNzKGUpe3JldHVybiBlLnR5cGU9PT1IfWZ1bmN0aW9uIFp0KGUpe3JldHVybiBuZXcgcnQoInAyNTYiKS5rZXlGcm9tUHVibGljKHt4Ol9fQnVmZmVyJC5mcm9tKGUueCwiYmFzZTY0IikudG9TdHJpbmcoImhleCIpLHk6X19CdWZmZXIkLmZyb20oZS55LCJiYXNlNjQiKS50b1N0cmluZygiaGV4Iil9LCJoZXgiKX1mdW5jdGlvbiBYdChlKXtsZXQgdD1lLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpLG49dC5sZW5ndGglNDtyZXR1cm4gbj4wJiYodCs9Ij0iLnJlcGVhdCg0LW4pKSx0fWZ1bmN0aW9uIGVuKGUpe3JldHVybiBfX0J1ZmZlciQuZnJvbShYdChlKSwiYmFzZTY0Iil9ZnVuY3Rpb24gb3MoZSx0KXtsZXRbbixyLHNdPWUuc3BsaXQoIi4iKSxvPWVuKHMpO2lmKG8ubGVuZ3RoIT09NjQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNpZ25hdHVyZSBsZW5ndGgiKTtsZXQgYT1vLnNsaWNlKDAsMzIpLnRvU3RyaW5nKCJoZXgiKSx1PW8uc2xpY2UoMzIsNjQpLnRvU3RyaW5nKCJoZXgiKSxsPWAke259LiR7cn1gLGk9bmV3IGplKCkudXBkYXRlKF9fQnVmZmVyJC5mcm9tKGwpKS5kaWdlc3QoKSxkPVp0KHQpLGM9X19CdWZmZXIkLmZyb20oaSkudG9TdHJpbmcoImhleCIpO2lmKCFkLnZlcmlmeShjLHtyOmEsczp1fSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNpZ25hdHVyZSIpO3JldHVybiBzdChlKS5wYXlsb2FkfXZhciB0bj0iaXJuIjtmdW5jdGlvbiBhcyhlKXtyZXR1cm4gZT8ucmVsYXl8fHtwcm90b2NvbDp0bn19ZnVuY3Rpb24gaXMoZSl7bGV0IHQ9b3RbZV07aWYodHlwZW9mIHQ+InUiKXRocm93IG5ldyBFcnJvcihgUmVsYXkgUHJvdG9jb2wgbm90IHN1cHBvcnRlZDogJHtlfWApO3JldHVybiB0fXZhciBubj1PYmplY3QuZGVmaW5lUHJvcGVydHkscm49T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsc249T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsaGU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxvbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGFuPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUseWU9KGUsdCxuKT0+dCBpbiBlP25uKGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pOmVbdF09bixnZT0oZSx0KT0+e2Zvcih2YXIgbiBpbiB0fHwodD17fSkpb24uY2FsbCh0LG4pJiZ5ZShlLG4sdFtuXSk7aWYoaGUpZm9yKHZhciBuIG9mIGhlKHQpKWFuLmNhbGwodCxuKSYmeWUoZSxuLHRbbl0pO3JldHVybiBlfSxjbj0oZSx0KT0+cm4oZSxzbih0KSk7ZnVuY3Rpb24gdW4oZSx0PSItIil7bGV0IG49e30scj0icmVsYXkiK3Q7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gocz0+e2lmKHMuc3RhcnRzV2l0aChyKSl7bGV0IG89cy5yZXBsYWNlKHIsIiIpLGE9ZVtzXTtuW29dPWF9fSksbn1mdW5jdGlvbiBjcyhlKXtpZighZS5pbmNsdWRlcygid2M6Iikpe2xldCBsPURlKGUpO2whPW51bGwmJmwuaW5jbHVkZXMoIndjOiIpJiYoZT1sKX1lPWUuaW5jbHVkZXMoIndjOi8vIik/ZS5yZXBsYWNlKCJ3YzovLyIsIiIpOmUsZT1lLmluY2x1ZGVzKCJ3YzoiKT9lLnJlcGxhY2UoIndjOiIsIiIpOmU7bGV0IHQ9ZS5pbmRleE9mKCI6Iiksbj1lLmluZGV4T2YoIj8iKSE9PS0xP2UuaW5kZXhPZigiPyIpOnZvaWQgMCxyPWUuc3Vic3RyaW5nKDAsdCkscz1lLnN1YnN0cmluZyh0KzEsbikuc3BsaXQoIkAiKSxvPXR5cGVvZiBuPCJ1Ij9lLnN1YnN0cmluZyhuKToiIixhPVUucGFyc2UobyksdT10eXBlb2YgYS5tZXRob2RzPT0ic3RyaW5nIj9hLm1ldGhvZHMuc3BsaXQoIiwiKTp2b2lkIDA7cmV0dXJue3Byb3RvY29sOnIsdG9waWM6bG4oc1swXSksdmVyc2lvbjpwYXJzZUludChzWzFdLDEwKSxzeW1LZXk6YS5zeW1LZXkscmVsYXk6dW4oYSksbWV0aG9kczp1LGV4cGlyeVRpbWVzdGFtcDphLmV4cGlyeVRpbWVzdGFtcD9wYXJzZUludChhLmV4cGlyeVRpbWVzdGFtcCwxMCk6dm9pZCAwfX1mdW5jdGlvbiBsbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCIvLyIpP2Uuc3Vic3RyaW5nKDIpOmV9ZnVuY3Rpb24gZG4oZSx0PSItIil7bGV0IG49InJlbGF5IixyPXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKHM9PntsZXQgbz1uK3QrcztlW3NdJiYocltvXT1lW3NdKX0pLHJ9ZnVuY3Rpb24gdXMoZSl7cmV0dXJuYCR7ZS5wcm90b2NvbH06JHtlLnRvcGljfUAke2UudmVyc2lvbn0/YCtVLnN0cmluZ2lmeShnZShjbihnZSh7c3ltS2V5OmUuc3ltS2V5fSxkbihlLnJlbGF5KSkse2V4cGlyeVRpbWVzdGFtcDplLmV4cGlyeVRpbWVzdGFtcH0pLGUubWV0aG9kcz97bWV0aG9kczplLm1ldGhvZHMuam9pbigiLCIpfTp7fSkpfWZ1bmN0aW9uIGxzKGUsdCxuKXtyZXR1cm5gJHtlfT93Y19ldj0ke259JnRvcGljPSR7dH1gfXZhciBmbj1PYmplY3QuZGVmaW5lUHJvcGVydHkscG49T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsbW49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsYmU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxobj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHluPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsdmU9KGUsdCxuKT0+dCBpbiBlP2ZuKGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bn0pOmVbdF09bixnbj0oZSx0KT0+e2Zvcih2YXIgbiBpbiB0fHwodD17fSkpaG4uY2FsbCh0LG4pJiZ2ZShlLG4sdFtuXSk7aWYoYmUpZm9yKHZhciBuIG9mIGJlKHQpKXluLmNhbGwodCxuKSYmdmUoZSxuLHRbbl0pO3JldHVybiBlfSxibj0oZSx0KT0+cG4oZSxtbih0KSk7ZnVuY3Rpb24gayhlKXtsZXQgdD1bXTtyZXR1cm4gZS5mb3JFYWNoKG49PntsZXRbcixzXT1uLnNwbGl0KCI6Iik7dC5wdXNoKGAke3J9OiR7c31gKX0pLHR9ZnVuY3Rpb24gdm4oZSl7bGV0IHQ9W107cmV0dXJuIE9iamVjdC52YWx1ZXMoZSkuZm9yRWFjaChuPT57dC5wdXNoKC4uLmsobi5hY2NvdW50cykpfSksdH1mdW5jdGlvbiBFbihlLHQpe2xldCBuPVtdO3JldHVybiBPYmplY3QudmFsdWVzKGUpLmZvckVhY2gocj0+e2soci5hY2NvdW50cykuaW5jbHVkZXModCkmJm4ucHVzaCguLi5yLm1ldGhvZHMpfSksbn1mdW5jdGlvbiB3bihlLHQpe2xldCBuPVtdO3JldHVybiBPYmplY3QudmFsdWVzKGUpLmZvckVhY2gocj0+e2soci5hY2NvdW50cykuaW5jbHVkZXModCkmJm4ucHVzaCguLi5yLmV2ZW50cyl9KSxufWZ1bmN0aW9uIGRzKGUsdCl7bGV0IG49Q24oZSx0KTtpZihuKXRocm93IG5ldyBFcnJvcihuLm1lc3NhZ2UpO2xldCByPXt9O2ZvcihsZXRbcyxvXW9mIE9iamVjdC5lbnRyaWVzKGUpKXJbc109e21ldGhvZHM6by5tZXRob2RzLGV2ZW50czpvLmV2ZW50cyxjaGFpbnM6by5hY2NvdW50cy5tYXAoYT0+YCR7YS5zcGxpdCgiOiIpWzBdfToke2Euc3BsaXQoIjoiKVsxXX1gKX07cmV0dXJuIHJ9ZnVuY3Rpb24gZnMoZSl7bGV0e3Byb3Bvc2FsOntyZXF1aXJlZE5hbWVzcGFjZXM6dCxvcHRpb25hbE5hbWVzcGFjZXM6bj17fX0sc3VwcG9ydGVkTmFtZXNwYWNlczpyfT1lLHM9RWUodCksbz1FZShuKSxhPXt9O09iamVjdC5rZXlzKHIpLmZvckVhY2goaT0+e2xldCBkPXJbaV0uY2hhaW5zLGM9cltpXS5tZXRob2RzLGY9cltpXS5ldmVudHMsaD1yW2ldLmFjY291bnRzO2QuZm9yRWFjaChwPT57aWYoIWguc29tZShtPT5tLmluY2x1ZGVzKHApKSl0aHJvdyBuZXcgRXJyb3IoYE5vIGFjY291bnRzIHByb3ZpZGVkIGZvciBjaGFpbiAke3B9IGluIG5hbWVzcGFjZSAke2l9YCl9KSxhW2ldPXtjaGFpbnM6ZCxtZXRob2RzOmMsZXZlbnRzOmYsYWNjb3VudHM6aH19KTtsZXQgdT1fbih0LGEsImFwcHJvdmUoKSIpO2lmKHUpdGhyb3cgbmV3IEVycm9yKHUubWVzc2FnZSk7bGV0IGw9e307cmV0dXJuIU9iamVjdC5rZXlzKHQpLmxlbmd0aCYmIU9iamVjdC5rZXlzKG4pLmxlbmd0aD9hOihPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGk9PntsZXQgZD1yW2ldLmNoYWlucy5maWx0ZXIocD0+e3ZhciBtLHc7cmV0dXJuKHc9KG09c1tpXSk9PW51bGw/dm9pZCAwOm0uY2hhaW5zKT09bnVsbD92b2lkIDA6dy5pbmNsdWRlcyhwKX0pLGM9cltpXS5tZXRob2RzLmZpbHRlcihwPT57dmFyIG0sdztyZXR1cm4odz0obT1zW2ldKT09bnVsbD92b2lkIDA6bS5tZXRob2RzKT09bnVsbD92b2lkIDA6dy5pbmNsdWRlcyhwKX0pLGY9cltpXS5ldmVudHMuZmlsdGVyKHA9Pnt2YXIgbSx3O3JldHVybih3PShtPXNbaV0pPT1udWxsP3ZvaWQgMDptLmV2ZW50cyk9PW51bGw/dm9pZCAwOncuaW5jbHVkZXMocCl9KSxoPWQubWFwKHA9PnJbaV0uYWNjb3VudHMuZmlsdGVyKG09Pm0uaW5jbHVkZXMoYCR7cH06YCkpKS5mbGF0KCk7bFtpXT17Y2hhaW5zOmQsbWV0aG9kczpjLGV2ZW50czpmLGFjY291bnRzOmh9fSksT2JqZWN0LmtleXMobykuZm9yRWFjaChpPT57dmFyIGQsYyxmLGgscCxtO2lmKCFyW2ldKXJldHVybjtsZXQgdz0oYz0oZD1vW2ldKT09bnVsbD92b2lkIDA6ZC5jaGFpbnMpPT1udWxsP3ZvaWQgMDpjLmZpbHRlcihJPT5yW2ldLmNoYWlucy5pbmNsdWRlcyhJKSksR2U9cltpXS5tZXRob2RzLmZpbHRlcihJPT57dmFyIFIsRDtyZXR1cm4oRD0oUj1vW2ldKT09bnVsbD92b2lkIDA6Ui5tZXRob2RzKT09bnVsbD92b2lkIDA6RC5pbmNsdWRlcyhJKX0pLFllPXJbaV0uZXZlbnRzLmZpbHRlcihJPT57dmFyIFIsRDtyZXR1cm4oRD0oUj1vW2ldKT09bnVsbD92b2lkIDA6Ui5ldmVudHMpPT1udWxsP3ZvaWQgMDpELmluY2x1ZGVzKEkpfSksUWU9dz8ubWFwKEk9PnJbaV0uYWNjb3VudHMuZmlsdGVyKFI9PlIuaW5jbHVkZXMoYCR7SX06YCkpKS5mbGF0KCk7bFtpXT17Y2hhaW5zOlMoKGY9bFtpXSk9PW51bGw/dm9pZCAwOmYuY2hhaW5zLHcpLG1ldGhvZHM6UygoaD1sW2ldKT09bnVsbD92b2lkIDA6aC5tZXRob2RzLEdlKSxldmVudHM6UygocD1sW2ldKT09bnVsbD92b2lkIDA6cC5ldmVudHMsWWUpLGFjY291bnRzOlMoKG09bFtpXSk9PW51bGw/dm9pZCAwOm0uYWNjb3VudHMsUWUpfX0pLGwpfWZ1bmN0aW9uIEplKGUpe3JldHVybiBlLmluY2x1ZGVzKCI6Iil9ZnVuY3Rpb24gT24oZSl7cmV0dXJuIEplKGUpP2Uuc3BsaXQoIjoiKVswXTplfWZ1bmN0aW9uIEVlKGUpe3ZhciB0LG4scjtsZXQgcz17fTtpZighb2UoZSkpcmV0dXJuIHM7Zm9yKGxldFtvLGFdb2YgT2JqZWN0LmVudHJpZXMoZSkpe2xldCB1PUplKG8pP1tvXTphLmNoYWlucyxsPWEubWV0aG9kc3x8W10saT1hLmV2ZW50c3x8W10sZD1PbihvKTtzW2RdPWJuKGduKHt9LHNbZF0pLHtjaGFpbnM6Uyh1LCh0PXNbZF0pPT1udWxsP3ZvaWQgMDp0LmNoYWlucyksbWV0aG9kczpTKGwsKG49c1tkXSk9PW51bGw/dm9pZCAwOm4ubWV0aG9kcyksZXZlbnRzOlMoaSwocj1zW2RdKT09bnVsbD92b2lkIDA6ci5ldmVudHMpfSl9cmV0dXJuIHN9ZnVuY3Rpb24gTm4oZSl7bGV0IHQ9e307cmV0dXJuIGU/LmZvckVhY2gobj0+e2xldFtyLHNdPW4uc3BsaXQoIjoiKTt0W3JdfHwodFtyXT17YWNjb3VudHM6W10sY2hhaW5zOltdLGV2ZW50czpbXX0pLHRbcl0uYWNjb3VudHMucHVzaChuKSx0W3JdLmNoYWlucy5wdXNoKGAke3J9OiR7c31gKX0pLHR9ZnVuY3Rpb24gcHMoZSx0KXt0PXQubWFwKHI9PnIucmVwbGFjZSgiZGlkOnBraDoiLCIiKSk7bGV0IG49Tm4odCk7Zm9yKGxldFtyLHNdb2YgT2JqZWN0LmVudHJpZXMobikpcy5tZXRob2RzP3MubWV0aG9kcz1TKHMubWV0aG9kcyxlKTpzLm1ldGhvZHM9ZSxzLmV2ZW50cz1bImNoYWluQ2hhbmdlZCIsImFjY291bnRzQ2hhbmdlZCJdO3JldHVybiBufXZhciBTbj17SU5WQUxJRF9NRVRIT0Q6e21lc3NhZ2U6IkludmFsaWQgbWV0aG9kLiIsY29kZToxMDAxfSxJTlZBTElEX0VWRU5UOnttZXNzYWdlOiJJbnZhbGlkIGV2ZW50LiIsY29kZToxMDAyfSxJTlZBTElEX1VQREFURV9SRVFVRVNUOnttZXNzYWdlOiJJbnZhbGlkIHVwZGF0ZSByZXF1ZXN0LiIsY29kZToxMDAzfSxJTlZBTElEX0VYVEVORF9SRVFVRVNUOnttZXNzYWdlOiJJbnZhbGlkIGV4dGVuZCByZXF1ZXN0LiIsY29kZToxMDA0fSxJTlZBTElEX1NFU1NJT05fU0VUVExFX1JFUVVFU1Q6e21lc3NhZ2U6IkludmFsaWQgc2Vzc2lvbiBzZXR0bGUgcmVxdWVzdC4iLGNvZGU6MTAwNX0sVU5BVVRIT1JJWkVEX01FVEhPRDp7bWVzc2FnZToiVW5hdXRob3JpemVkIG1ldGhvZC4iLGNvZGU6MzAwMX0sVU5BVVRIT1JJWkVEX0VWRU5UOnttZXNzYWdlOiJVbmF1dGhvcml6ZWQgZXZlbnQuIixjb2RlOjMwMDJ9LFVOQVVUSE9SSVpFRF9VUERBVEVfUkVRVUVTVDp7bWVzc2FnZToiVW5hdXRob3JpemVkIHVwZGF0ZSByZXF1ZXN0LiIsY29kZTozMDAzfSxVTkFVVEhPUklaRURfRVhURU5EX1JFUVVFU1Q6e21lc3NhZ2U6IlVuYXV0aG9yaXplZCBleHRlbmQgcmVxdWVzdC4iLGNvZGU6MzAwNH0sVVNFUl9SRUpFQ1RFRDp7bWVzc2FnZToiVXNlciByZWplY3RlZC4iLGNvZGU6NWUzfSxVU0VSX1JFSkVDVEVEX0NIQUlOUzp7bWVzc2FnZToiVXNlciByZWplY3RlZCBjaGFpbnMuIixjb2RlOjUwMDF9LFVTRVJfUkVKRUNURURfTUVUSE9EUzp7bWVzc2FnZToiVXNlciByZWplY3RlZCBtZXRob2RzLiIsY29kZTo1MDAyfSxVU0VSX1JFSkVDVEVEX0VWRU5UUzp7bWVzc2FnZToiVXNlciByZWplY3RlZCBldmVudHMuIixjb2RlOjUwMDN9LFVOU1VQUE9SVEVEX0NIQUlOUzp7bWVzc2FnZToiVW5zdXBwb3J0ZWQgY2hhaW5zLiIsY29kZTo1MTAwfSxVTlNVUFBPUlRFRF9NRVRIT0RTOnttZXNzYWdlOiJVbnN1cHBvcnRlZCBtZXRob2RzLiIsY29kZTo1MTAxfSxVTlNVUFBPUlRFRF9FVkVOVFM6e21lc3NhZ2U6IlVuc3VwcG9ydGVkIGV2ZW50cy4iLGNvZGU6NTEwMn0sVU5TVVBQT1JURURfQUNDT1VOVFM6e21lc3NhZ2U6IlVuc3VwcG9ydGVkIGFjY291bnRzLiIsY29kZTo1MTAzfSxVTlNVUFBPUlRFRF9OQU1FU1BBQ0VfS0VZOnttZXNzYWdlOiJVbnN1cHBvcnRlZCBuYW1lc3BhY2Uga2V5LiIsY29kZTo1MTA0fSxVU0VSX0RJU0NPTk5FQ1RFRDp7bWVzc2FnZToiVXNlciBkaXNjb25uZWN0ZWQuIixjb2RlOjZlM30sU0VTU0lPTl9TRVRUTEVNRU5UX0ZBSUxFRDp7bWVzc2FnZToiU2Vzc2lvbiBzZXR0bGVtZW50IGZhaWxlZC4iLGNvZGU6N2UzfSxXQ19NRVRIT0RfVU5TVVBQT1JURUQ6e21lc3NhZ2U6IlVuc3VwcG9ydGVkIHdjXyBtZXRob2QuIixjb2RlOjEwMDAxfX0sSW49e05PVF9JTklUSUFMSVpFRDp7bWVzc2FnZToiTm90IGluaXRpYWxpemVkLiIsY29kZToxfSxOT19NQVRDSElOR19LRVk6e21lc3NhZ2U6Ik5vIG1hdGNoaW5nIGtleS4iLGNvZGU6Mn0sUkVTVE9SRV9XSUxMX09WRVJSSURFOnttZXNzYWdlOiJSZXN0b3JlIHdpbGwgb3ZlcnJpZGUuIixjb2RlOjN9LFJFU1VCU0NSSUJFRDp7bWVzc2FnZToiUmVzdWJzY3JpYmVkLiIsY29kZTo0fSxNSVNTSU5HX09SX0lOVkFMSUQ6e21lc3NhZ2U6Ik1pc3Npbmcgb3IgaW52YWxpZC4iLGNvZGU6NX0sRVhQSVJFRDp7bWVzc2FnZToiRXhwaXJlZC4iLGNvZGU6Nn0sVU5LTk9XTl9UWVBFOnttZXNzYWdlOiJVbmtub3duIHR5cGUuIixjb2RlOjd9LE1JU01BVENIRURfVE9QSUM6e21lc3NhZ2U6Ik1pc21hdGNoZWQgdG9waWMuIixjb2RlOjh9LE5PTl9DT05GT1JNSU5HX05BTUVTUEFDRVM6e21lc3NhZ2U6Ik5vbiBjb25mb3JtaW5nIG5hbWVzcGFjZXMuIixjb2RlOjl9fTtmdW5jdGlvbiBOKGUsdCl7bGV0e21lc3NhZ2U6bixjb2RlOnJ9PUluW2VdO3JldHVybnttZXNzYWdlOnQ/YCR7bn0gJHt0fWA6bixjb2RlOnJ9fWZ1bmN0aW9uIEMoZSx0KXtsZXR7bWVzc2FnZTpuLGNvZGU6cn09U25bZV07cmV0dXJue21lc3NhZ2U6dD9gJHtufSAke3R9YDpuLGNvZGU6cn19ZnVuY3Rpb24gVyhlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP3R5cGVvZiB0PCJ1IiYmZS5sZW5ndGg/ZS5ldmVyeSh0KTohMDohMX1mdW5jdGlvbiBvZShlKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09T2JqZWN0LnByb3RvdHlwZSYmT2JqZWN0LmtleXMoZSkubGVuZ3RofWZ1bmN0aW9uIGooZSl7cmV0dXJuIHR5cGVvZiBlPiJ1In1mdW5jdGlvbiBFKGUsdCl7cmV0dXJuIHQmJmooZSk/ITA6dHlwZW9mIGU9PSJzdHJpbmciJiYhIWUudHJpbSgpLmxlbmd0aH1mdW5jdGlvbiBhZShlLHQpe3JldHVybiB0JiZqKGUpPyEwOnR5cGVvZiBlPT0ibnVtYmVyIiYmIWlzTmFOKGUpfWZ1bmN0aW9uIG1zKGUsdCl7bGV0e3JlcXVpcmVkTmFtZXNwYWNlczpufT10LHI9T2JqZWN0LmtleXMoZS5uYW1lc3BhY2VzKSxzPU9iamVjdC5rZXlzKG4pLG89ITA7cmV0dXJuIFAocyxyKT8oci5mb3JFYWNoKGE9PntsZXR7YWNjb3VudHM6dSxtZXRob2RzOmwsZXZlbnRzOml9PWUubmFtZXNwYWNlc1thXSxkPWsodSksYz1uW2FdOyghUChaKGEsYyksZCl8fCFQKGMubWV0aG9kcyxsKXx8IVAoYy5ldmVudHMsaSkpJiYobz0hMSl9KSxvKTohMX1mdW5jdGlvbiBLKGUpe3JldHVybiBFKGUsITEpJiZlLmluY2x1ZGVzKCI6Iik/ZS5zcGxpdCgiOiIpLmxlbmd0aD09PTI6ITF9ZnVuY3Rpb24gUm4oZSl7aWYoRShlLCExKSYmZS5pbmNsdWRlcygiOiIpKXtsZXQgdD1lLnNwbGl0KCI6Iik7aWYodC5sZW5ndGg9PT0zKXtsZXQgbj10WzBdKyI6Iit0WzFdO3JldHVybiEhdFsyXSYmSyhuKX19cmV0dXJuITF9ZnVuY3Rpb24gaHMoZSl7ZnVuY3Rpb24gdChuKXt0cnl7cmV0dXJuIHR5cGVvZiBuZXcgVVJMKG4pPCJ1In1jYXRjaHtyZXR1cm4hMX19dHJ5e2lmKEUoZSwhMSkpe2lmKHQoZSkpcmV0dXJuITA7bGV0IG49RGUoZSk7cmV0dXJuIHQobil9fWNhdGNoe31yZXR1cm4hMX1mdW5jdGlvbiB5cyhlKXt2YXIgdDtyZXR1cm4odD1lPy5wcm9wb3Nlcik9PW51bGw/dm9pZCAwOnQucHVibGljS2V5fWZ1bmN0aW9uIGdzKGUpe3JldHVybiBlPy50b3BpY31mdW5jdGlvbiBicyhlLHQpe2xldCBuPW51bGw7cmV0dXJuIEUoZT8ucHVibGljS2V5LCExKXx8KG49TigiTUlTU0lOR19PUl9JTlZBTElEIixgJHt0fSBjb250cm9sbGVyIHB1YmxpYyBrZXkgc2hvdWxkIGJlIGEgc3RyaW5nYCkpLG59ZnVuY3Rpb24gd2UoZSl7bGV0IHQ9ITA7cmV0dXJuIFcoZSk/ZS5sZW5ndGgmJih0PWUuZXZlcnkobj0+RShuLCExKSkpOnQ9ITEsdH1mdW5jdGlvbiBQbihlLHQsbil7bGV0IHI9bnVsbDtyZXR1cm4gVyh0KSYmdC5sZW5ndGg/dC5mb3JFYWNoKHM9PntyfHxLKHMpfHwocj1DKCJVTlNVUFBPUlRFRF9DSEFJTlMiLGAke259LCBjaGFpbiAke3N9IHNob3VsZCBiZSBhIHN0cmluZyBhbmQgY29uZm9ybSB0byAibmFtZXNwYWNlOmNoYWluSWQiIGZvcm1hdGApKX0pOksoZSl8fChyPUMoIlVOU1VQUE9SVEVEX0NIQUlOUyIsYCR7bn0sIGNoYWlucyBtdXN0IGJlIGRlZmluZWQgYXMgIm5hbWVzcGFjZTpjaGFpbklkIiBlLmcuICJlaXAxNTU6MSI6IHsuLi59IGluIHRoZSBuYW1lc3BhY2Uga2V5IE9SIGFzIGFuIGFycmF5IG9mIENBSVAtMiBjaGFpbklkcyBlLmcuIGVpcDE1NTogeyBjaGFpbnM6IFsiZWlwMTU1OjEiLCAiZWlwMTU1OjUiXSB9YCkpLHJ9ZnVuY3Rpb24gam4oZSx0LG4pe2xldCByPW51bGw7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtzLG9dKT0+e2lmKHIpcmV0dXJuO2xldCBhPVBuKHMsWihzLG8pLGAke3R9ICR7bn1gKTthJiYocj1hKX0pLHJ9ZnVuY3Rpb24gVG4oZSx0KXtsZXQgbj1udWxsO3JldHVybiBXKGUpP2UuZm9yRWFjaChyPT57bnx8Um4ocil8fChuPUMoIlVOU1VQUE9SVEVEX0FDQ09VTlRTIixgJHt0fSwgYWNjb3VudCAke3J9IHNob3VsZCBiZSBhIHN0cmluZyBhbmQgY29uZm9ybSB0byAibmFtZXNwYWNlOmNoYWluSWQ6YWRkcmVzcyIgZm9ybWF0YCkpfSk6bj1DKCJVTlNVUFBPUlRFRF9BQ0NPVU5UUyIsYCR7dH0sIGFjY291bnRzIHNob3VsZCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzIGNvbmZvcm1pbmcgdG8gIm5hbWVzcGFjZTpjaGFpbklkOmFkZHJlc3MiIGZvcm1hdGApLG59ZnVuY3Rpb24gJG4oZSx0KXtsZXQgbj1udWxsO3JldHVybiBPYmplY3QudmFsdWVzKGUpLmZvckVhY2gocj0+e2lmKG4pcmV0dXJuO2xldCBzPVRuKHI/LmFjY291bnRzLGAke3R9IG5hbWVzcGFjZWApO3MmJihuPXMpfSksbn1mdW5jdGlvbiBBbihlLHQpe2xldCBuPW51bGw7cmV0dXJuIHdlKGU/Lm1ldGhvZHMpP3dlKGU/LmV2ZW50cyl8fChuPUMoIlVOU1VQUE9SVEVEX0VWRU5UUyIsYCR7dH0sIGV2ZW50cyBzaG91bGQgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncyBvciBlbXB0eSBhcnJheSBmb3Igbm8gZXZlbnRzYCkpOm49QygiVU5TVVBQT1JURURfTUVUSE9EUyIsYCR7dH0sIG1ldGhvZHMgc2hvdWxkIGJlIGFuIGFycmF5IG9mIHN0cmluZ3Mgb3IgZW1wdHkgYXJyYXkgZm9yIG5vIG1ldGhvZHNgKSxufWZ1bmN0aW9uIHplKGUsdCl7bGV0IG49bnVsbDtyZXR1cm4gT2JqZWN0LnZhbHVlcyhlKS5mb3JFYWNoKHI9PntpZihuKXJldHVybjtsZXQgcz1BbihyLGAke3R9LCBuYW1lc3BhY2VgKTtzJiYobj1zKX0pLG59ZnVuY3Rpb24gdnMoZSx0LG4pe2xldCByPW51bGw7aWYoZSYmb2UoZSkpe2xldCBzPXplKGUsdCk7cyYmKHI9cyk7bGV0IG89am4oZSx0LG4pO28mJihyPW8pfWVsc2Ugcj1OKCJNSVNTSU5HX09SX0lOVkFMSUQiLGAke3R9LCAke259IHNob3VsZCBiZSBhbiBvYmplY3Qgd2l0aCBkYXRhYCk7cmV0dXJuIHJ9ZnVuY3Rpb24gQ24oZSx0KXtsZXQgbj1udWxsO2lmKGUmJm9lKGUpKXtsZXQgcj16ZShlLHQpO3ImJihuPXIpO2xldCBzPSRuKGUsdCk7cyYmKG49cyl9ZWxzZSBuPU4oIk1JU1NJTkdfT1JfSU5WQUxJRCIsYCR7dH0sIG5hbWVzcGFjZXMgc2hvdWxkIGJlIGFuIG9iamVjdCB3aXRoIGRhdGFgKTtyZXR1cm4gbn1mdW5jdGlvbiBVbihlKXtyZXR1cm4gRShlLnByb3RvY29sLCEwKX1mdW5jdGlvbiBFcyhlLHQpe2xldCBuPSExO3JldHVybiB0JiYhZT9uPSEwOmUmJlcoZSkmJmUubGVuZ3RoJiZlLmZvckVhY2gocj0+e249VW4ocil9KSxufWZ1bmN0aW9uIHdzKGUpe3JldHVybiB0eXBlb2YgZT09Im51bWJlciJ9ZnVuY3Rpb24gT3MoZSl7cmV0dXJuIHR5cGVvZiBlPCJ1IiYmdHlwZW9mIGUhPT1udWxsfWZ1bmN0aW9uIE5zKGUpe3JldHVybiEoIWV8fHR5cGVvZiBlIT0ib2JqZWN0Inx8IWUuY29kZXx8IWFlKGUuY29kZSwhMSl8fCFlLm1lc3NhZ2V8fCFFKGUubWVzc2FnZSwhMSkpfWZ1bmN0aW9uIFNzKGUpe3JldHVybiEoaihlKXx8IUUoZS5tZXRob2QsITEpKX1mdW5jdGlvbiBJcyhlKXtyZXR1cm4hKGooZSl8fGooZS5yZXN1bHQpJiZqKGUuZXJyb3IpfHwhYWUoZS5pZCwhMSl8fCFFKGUuanNvbnJwYywhMSkpfWZ1bmN0aW9uIFJzKGUpe3JldHVybiEoaihlKXx8IUUoZS5uYW1lLCExKSl9ZnVuY3Rpb24gUHMoZSx0KXtyZXR1cm4hKCFLKHQpfHwhdm4oZSkuaW5jbHVkZXModCkpfWZ1bmN0aW9uIGpzKGUsdCxuKXtyZXR1cm4gRShuLCExKT9FbihlLHQpLmluY2x1ZGVzKG4pOiExfWZ1bmN0aW9uIFRzKGUsdCxuKXtyZXR1cm4gRShuLCExKT93bihlLHQpLmluY2x1ZGVzKG4pOiExfWZ1bmN0aW9uIF9uKGUsdCxuKXtsZXQgcj1udWxsLHM9a24oZSksbz1Ebih0KSxhPU9iamVjdC5rZXlzKHMpLHU9T2JqZWN0LmtleXMobyksbD1PZShPYmplY3Qua2V5cyhlKSksaT1PZShPYmplY3Qua2V5cyh0KSksZD1sLmZpbHRlcihjPT4haS5pbmNsdWRlcyhjKSk7cmV0dXJuIGQubGVuZ3RoJiYocj1OKCJOT05fQ09ORk9STUlOR19OQU1FU1BBQ0VTIixgJHtufSBuYW1lc3BhY2VzIGtleXMgZG9uJ3Qgc2F0aXNmeSByZXF1aXJlZE5hbWVzcGFjZXMuCiAgICAgIFJlcXVpcmVkOiAke2QudG9TdHJpbmcoKX0KICAgICAgUmVjZWl2ZWQ6ICR7T2JqZWN0LmtleXModCkudG9TdHJpbmcoKX1gKSksUChhLHUpfHwocj1OKCJOT05fQ09ORk9STUlOR19OQU1FU1BBQ0VTIixgJHtufSBuYW1lc3BhY2VzIGNoYWlucyBkb24ndCBzYXRpc2Z5IHJlcXVpcmVkIG5hbWVzcGFjZXMuCiAgICAgIFJlcXVpcmVkOiAke2EudG9TdHJpbmcoKX0KICAgICAgQXBwcm92ZWQ6ICR7dS50b1N0cmluZygpfWApKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGM9PntpZighYy5pbmNsdWRlcygiOiIpfHxyKXJldHVybjtsZXQgZj1rKHRbY10uYWNjb3VudHMpO2YuaW5jbHVkZXMoYyl8fChyPU4oIk5PTl9DT05GT1JNSU5HX05BTUVTUEFDRVMiLGAke259IG5hbWVzcGFjZXMgYWNjb3VudHMgZG9uJ3Qgc2F0aXNmeSBuYW1lc3BhY2UgYWNjb3VudHMgZm9yICR7Y30KICAgICAgICBSZXF1aXJlZDogJHtjfQogICAgICAgIEFwcHJvdmVkOiAke2YudG9TdHJpbmcoKX1gKSl9KSxhLmZvckVhY2goYz0+e3J8fChQKHNbY10ubWV0aG9kcyxvW2NdLm1ldGhvZHMpP1Aoc1tjXS5ldmVudHMsb1tjXS5ldmVudHMpfHwocj1OKCJOT05fQ09ORk9STUlOR19OQU1FU1BBQ0VTIixgJHtufSBuYW1lc3BhY2VzIGV2ZW50cyBkb24ndCBzYXRpc2Z5IG5hbWVzcGFjZSBldmVudHMgZm9yICR7Y31gKSk6cj1OKCJOT05fQ09ORk9STUlOR19OQU1FU1BBQ0VTIixgJHtufSBuYW1lc3BhY2VzIG1ldGhvZHMgZG9uJ3Qgc2F0aXNmeSBuYW1lc3BhY2UgbWV0aG9kcyBmb3IgJHtjfWApKX0pLHJ9ZnVuY3Rpb24ga24oZSl7bGV0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e3ZhciByO24uaW5jbHVkZXMoIjoiKT90W25dPWVbbl06KHI9ZVtuXS5jaGFpbnMpPT1udWxsfHxyLmZvckVhY2gocz0+e3Rbc109e21ldGhvZHM6ZVtuXS5tZXRob2RzLGV2ZW50czplW25dLmV2ZW50c319KX0pLHR9ZnVuY3Rpb24gT2UoZSl7cmV0dXJuWy4uLm5ldyBTZXQoZS5tYXAodD0+dC5pbmNsdWRlcygiOiIpP3Quc3BsaXQoIjoiKVswXTp0KSldfWZ1bmN0aW9uIERuKGUpe2xldCB0PXt9O3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKG49PntuLmluY2x1ZGVzKCI6Iik/dFtuXT1lW25dOmsoZVtuXS5hY2NvdW50cyk/LmZvckVhY2gocz0+e3Rbc109e2FjY291bnRzOmVbbl0uYWNjb3VudHMuZmlsdGVyKG89Pm8uaW5jbHVkZXMoYCR7c306YCkpLG1ldGhvZHM6ZVtuXS5tZXRob2RzLGV2ZW50czplW25dLmV2ZW50c319KX0pLHR9ZnVuY3Rpb24gJHMoZSx0KXtyZXR1cm4gYWUoZSwhMSkmJmU8PXQubWF4JiZlPj10Lm1pbn1mdW5jdGlvbiBBcygpe2xldCBlPV8oKTtyZXR1cm4gbmV3IFByb21pc2UodD0+e3N3aXRjaChlKXtjYXNlIHkuYnJvd3Nlcjp0KHhuKCkpO2JyZWFrO2Nhc2UgeS5yZWFjdE5hdGl2ZTp0KFZuKCkpO2JyZWFrO2Nhc2UgeS5ub2RlOnQoTW4oKSk7YnJlYWs7ZGVmYXVsdDp0KCEwKX19KX1mdW5jdGlvbiB4bigpe3JldHVybiBCKCkmJm5hdmlnYXRvcj8ub25MaW5lfWFzeW5jIGZ1bmN0aW9uIFZuKCl7cmV0dXJuICQoKSYmdHlwZW9mIGdsb2JhbFRoaXM8InUiJiZnbG9iYWxUaGlzIT1udWxsJiZnbG9iYWxUaGlzLk5ldEluZm8/KGF3YWl0IGdsb2JhbFRoaXM/Lk5ldEluZm8uZmV0Y2goKSk/LmlzQ29ubmVjdGVkOiEwfWZ1bmN0aW9uIE1uKCl7cmV0dXJuITB9ZnVuY3Rpb24gQ3MoZSl7c3dpdGNoKF8oKSl7Y2FzZSB5LmJyb3dzZXI6S24oZSk7YnJlYWs7Y2FzZSB5LnJlYWN0TmF0aXZlOkxuKGUpO2JyZWFrO2Nhc2UgeS5ub2RlOmJyZWFrfX1mdW5jdGlvbiBLbihlKXshJCgpJiZCKCkmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIiwoKT0+ZSghMCkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvZmZsaW5lIiwoKT0+ZSghMSkpKX1mdW5jdGlvbiBMbihlKXskKCkmJnR5cGVvZiBnbG9iYWxUaGlzPCJ1IiYmZ2xvYmFsVGhpcyE9bnVsbCYmZ2xvYmFsVGhpcy5OZXRJbmZvJiZnbG9iYWxUaGlzPy5OZXRJbmZvLmFkZEV2ZW50TGlzdGVuZXIodD0+ZSh0Py5pc0Nvbm5lY3RlZCkpfXZhciB6PXt9LE5lPWNsYXNze3N0YXRpYyBnZXQodCl7cmV0dXJuIHpbdF19c3RhdGljIHNldCh0LG4pe3pbdF09bn1zdGF0aWMgZGVsZXRlKHQpe2RlbGV0ZSB6W3RdfX07ZXhwb3J0e0ZlIGFzIEJBU0UxMCxnIGFzIEJBU0UxNixxZSBhcyBCQVNFNjQsV3IgYXMgQkFTRTY0VVJMLGlyIGFzIENPTE9OLFVlIGFzIERFRkFVTFRfREVQVEgsRyBhcyBFTVBUWV9TUEFDRSx5IGFzIEVOVl9NQVAsSW4gYXMgSU5URVJOQUxfRVJST1JTLE5lIGFzIE1lbW9yeVN0b3JlLGNyIGFzIE9ORV9USE9VU0FORCxtdCBhcyBSRUFDVF9OQVRJVkVfUFJPRFVDVCx0biBhcyBSRUxBWUVSX0RFRkFVTFRfUFJPVE9DT0wsU24gYXMgU0RLX0VSUk9SUyx5dCBhcyBTREtfVFlQRSxodCBhcyBTTEFTSCxCZSBhcyBUWVBFXzAsTSBhcyBUWVBFXzEsSCBhcyBUWVBFXzIsViBhcyBVVEY4LEp0IGFzIGFkZFJlc291cmNlVG9SZWNhcCxndCBhcyBhcHBlbmRUb1F1ZXJ5U3RyaW5nLHlyIGFzIGFzc2VydFR5cGUsTWUgYXMgYXNzaWduQWJpbGl0eVRvQWN0aW9ucyxIdCBhcyBiYXNlNjREZWNvZGUsQnQgYXMgYmFzZTY0RW5jb2RlLGZzIGFzIGJ1aWxkQXBwcm92ZWROYW1lc3BhY2VzLFZyIGFzIGJ1aWxkQXV0aE9iamVjdCxwcyBhcyBidWlsZE5hbWVzcGFjZXNGcm9tQXV0aCxHdCBhcyBidWlsZFJlY2FwU3RhdGVtZW50LGpyIGFzIGNhbGNFeHBpcnksT3IgYXMgY2FwaXRhbGl6ZSxOdCBhcyBjYXBpdGFsaXplV29yZCxOciBhcyBjcmVhdGVEZWxheWVkUHJvbWlzZSxGciBhcyBjcmVhdGVFbmNvZGVkUmVjYXAsU3IgYXMgY3JlYXRlRXhwaXJpbmdQcm9taXNlLFd0IGFzIGNyZWF0ZVJlY2FwLFQgYXMgZGVjb2RlUmVjYXAsQSBhcyBkZWNvZGVUeXBlQnl0ZSx0cyBhcyBkZWNvZGVUeXBlVHdvRW52ZWxvcGUsZXMgYXMgZGVjcnlwdCxHciBhcyBkZXJpdmVTeW1LZXksc2UgYXMgZGVzZXJpYWxpemUsdGUgYXMgZW5jb2RlUmVjYXAsSGUgYXMgZW5jb2RlVHlwZUJ5dGUsWHIgYXMgZW5jb2RlVHlwZVR3b0VudmVsb3BlLFpyIGFzIGVuY3J5cHQsJHIgYXMgZW5naW5lRXZlbnQsd3IgYXMgZW51bWlmeSxpdCBhcyBmb3JtYXRBY2NvdW50SWQsbnIgYXMgZm9ybWF0QWNjb3VudFdpdGhDaGFpbixhdCBhcyBmb3JtYXRDaGFpbklkLFN0IGFzIGZvcm1hdERlZXBsaW5rVXJsLGtlIGFzIGZvcm1hdEV4cGlyZXJUYXJnZXQsUnIgYXMgZm9ybWF0SWRUYXJnZXQsS3QgYXMgZm9ybWF0TWVzc2FnZSxnciBhcyBmb3JtYXRNZXNzYWdlQ29udGV4dCxkbiBhcyBmb3JtYXRSZWxheVBhcmFtcyxtciBhcyBmb3JtYXRSZWxheVJwY1VybCxMZSBhcyBmb3JtYXRTdGF0ZW1lbnRGcm9tUmVjYXAsSXIgYXMgZm9ybWF0VG9waWNUYXJnZXQsRXQgYXMgZm9ybWF0VUEsdXMgYXMgZm9ybWF0VXJpLERlIGFzIGZyb21CYXNlNjQsSnIgYXMgZ2VuZXJhdGVLZXlQYWlyLHpyIGFzIGdlbmVyYXRlUmFuZG9tQnl0ZXMzMixrIGFzIGdldEFjY291bnRzQ2hhaW5zLHNyIGFzIGdldEFjY291bnRzRnJvbU5hbWVzcGFjZXMsY3QgYXMgZ2V0QWRkcmVzc0Zyb21BY2NvdW50LHJyIGFzIGdldEFkZHJlc3Nlc0Zyb21BY2NvdW50cyxkciBhcyBnZXRBcHBJZCxmciBhcyBnZXRBcHBNZXRhZGF0YSx4biBhcyBnZXRCcm93c2VyT25saW5lU3RhdHVzLHV0IGFzIGdldENoYWluRnJvbUFjY291bnQsbHQgYXMgZ2V0Q2hhaW5zRnJvbUFjY291bnRzLFogYXMgZ2V0Q2hhaW5zRnJvbU5hbWVzcGFjZSxvciBhcyBnZXRDaGFpbnNGcm9tTmFtZXNwYWNlcyxIciBhcyBnZXRDaGFpbnNGcm9tUmVjYXAsYXIgYXMgZ2V0Q2hhaW5zRnJvbVJlcXVpcmVkTmFtZXNwYWNlcyxkZSBhcyBnZXRDb21tb25WYWx1ZXNJbkFycmF5cyxadCBhcyBnZXRDcnlwdG9LZXlGcm9tS2V5RGF0YSxMdCBhcyBnZXREZWNvZGVkUmVjYXBGcm9tUmVzb3VyY2VzLENyIGFzIGdldERlZXBMaW5rLFZlIGFzIGdldERpZEFkZHJlc3MsZWUgYXMgZ2V0RGlkQWRkcmVzc1NlZ21lbnRzLFZ0IGFzIGdldERpZENoYWluSWQsXyBhcyBnZXRFbnZpcm9ubWVudCxociBhcyBnZXRIdHRwVXJsLE4gYXMgZ2V0SW50ZXJuYWxFcnJvcix2dCBhcyBnZXRKYXZhc2NyaXB0SUQsYnQgYXMgZ2V0SmF2YXNjcmlwdE9TLE90IGFzIGdldExhc3RJdGVtcyxscyBhcyBnZXRMaW5rTW9kZVVSTCxCciBhcyBnZXRNZXRob2RzRnJvbVJlY2FwLE10IGFzIGdldE5hbWVzcGFjZWREaWRDaGFpbklkLHZuIGFzIGdldE5hbWVzcGFjZXNDaGFpbnMsd24gYXMgZ2V0TmFtZXNwYWNlc0V2ZW50c0ZvckNoYWluSWQsTm4gYXMgZ2V0TmFtZXNwYWNlc0Zyb21BY2NvdW50cyxFbiBhcyBnZXROYW1lc3BhY2VzTWV0aG9kc0ZvckNoYWluSWQsTW4gYXMgZ2V0Tm9kZU9ubGluZVN0YXR1cyxxdCBhcyBnZXRSZUNhcEFjdGlvbnMsVm4gYXMgZ2V0UmVhY3ROYXRpdmVPbmxpbmVTdGF0dXMsTHIgYXMgZ2V0UmVjYXBBYmlsaXRpZXNGcm9tUmVzb3VyY2UsbmUgYXMgZ2V0UmVjYXBGcm9tUmVzb3VyY2VzLEZ0IGFzIGdldFJlY2FwUmVzb3VyY2UscHIgYXMgZ2V0UmVsYXlDbGllbnRNZXRhZGF0YSxpcyBhcyBnZXRSZWxheVByb3RvY29sQXBpLGFzIGFzIGdldFJlbGF5UHJvdG9jb2xOYW1lLGRzIGFzIGdldFJlcXVpcmVkTmFtZXNwYWNlc0Zyb21OYW1lc3BhY2VzLEMgYXMgZ2V0U2RrRXJyb3IsVXIgYXMgZ2V0U2VhcmNoUGFyYW1Gcm9tVVJMLENlIGFzIGdldFVuaXF1ZVZhbHVlcyxBciBhcyBoYW5kbGVEZWVwbGlua1JlZGlyZWN0LFAgYXMgaGFzT3ZlcmxhcCxZciBhcyBoYXNoS2V5LFFyIGFzIGhhc2hNZXNzYWdlLHVyIGFzIGlzQW5kcm9pZCxCIGFzIGlzQnJvd3NlcixKZSBhcyBpc0NhaXBOYW1lc3BhY2UsX24gYXMgaXNDb25mb3JtaW5nTmFtZXNwYWNlcyxUciBhcyBpc0V4cGlyZWQsbHIgYXMgaXNJb3MsX2UgYXMgaXNOb2RlLEFzIGFzIGlzT25saW5lLHlzIGFzIGlzUHJvcG9zYWxTdHJ1Y3QsJCBhcyBpc1JlYWN0TmF0aXZlLEtlIGFzIGlzUmVjYXAsbXMgYXMgaXNTZXNzaW9uQ29tcGF0aWJsZSxncyBhcyBpc1Nlc3Npb25TdHJ1Y3QsSXQgYXMgaXNUZWxlZ3JhbSxrciBhcyBpc1Rlc3RSdW4scnMgYXMgaXNUeXBlT25lRW52ZWxvcGUsc3MgYXMgaXNUeXBlVHdvRW52ZWxvcGUsaiBhcyBpc1VuZGVmaW5lZCxSbiBhcyBpc1ZhbGlkQWNjb3VudElkLFRuIGFzIGlzVmFsaWRBY2NvdW50cyxBbiBhcyBpc1ZhbGlkQWN0aW9ucyxXIGFzIGlzVmFsaWRBcnJheSxLIGFzIGlzVmFsaWRDaGFpbklkLFBuIGFzIGlzVmFsaWRDaGFpbnMsYnMgYXMgaXNWYWxpZENvbnRyb2xsZXIsJHQgYXMgaXNWYWxpZEVpcDEyNzFTaWduYXR1cmUsVHQgYXMgaXNWYWxpZEVpcDE5MVNpZ25hdHVyZSxOcyBhcyBpc1ZhbGlkRXJyb3JSZWFzb24sUnMgYXMgaXNWYWxpZEV2ZW50LHdzIGFzIGlzVmFsaWRJZCwkbiBhcyBpc1ZhbGlkTmFtZXNwYWNlQWNjb3VudHMsemUgYXMgaXNWYWxpZE5hbWVzcGFjZUFjdGlvbnMsam4gYXMgaXNWYWxpZE5hbWVzcGFjZUNoYWlucyx3ZSBhcyBpc1ZhbGlkTmFtZXNwYWNlTWV0aG9kc09yRXZlbnRzLENuIGFzIGlzVmFsaWROYW1lc3BhY2VzLFBzIGFzIGlzVmFsaWROYW1lc3BhY2VzQ2hhaW5JZCxUcyBhcyBpc1ZhbGlkTmFtZXNwYWNlc0V2ZW50LGpzIGFzIGlzVmFsaWROYW1lc3BhY2VzUmVxdWVzdCxhZSBhcyBpc1ZhbGlkTnVtYmVyLG9lIGFzIGlzVmFsaWRPYmplY3QsT3MgYXMgaXNWYWxpZFBhcmFtcyxPIGFzIGlzVmFsaWRSZWNhcCxVbiBhcyBpc1ZhbGlkUmVsYXksRXMgYXMgaXNWYWxpZFJlbGF5cyxTcyBhcyBpc1ZhbGlkUmVxdWVzdCwkcyBhcyBpc1ZhbGlkUmVxdWVzdEV4cGlyeSx2cyBhcyBpc1ZhbGlkUmVxdWlyZWROYW1lc3BhY2VzLElzIGFzIGlzVmFsaWRSZXNwb25zZSxFIGFzIGlzVmFsaWRTdHJpbmcsaHMgYXMgaXNWYWxpZFVybCxFciBhcyBtYXBFbnRyaWVzLGJyIGFzIG1hcFRvT2JqLFMgYXMgbWVyZ2VBcnJheXMscXIgYXMgbWVyZ2VFbmNvZGVkUmVjYXBzLHp0IGFzIG1lcmdlUmVjYXBzLEVlIGFzIG5vcm1hbGl6ZU5hbWVzcGFjZXMsdnIgYXMgb2JqVG9NYXAsQWUgYXMgcGFyc2VBY2NvdW50SWQsJGUgYXMgcGFyc2VDaGFpbklkLHd0IGFzIHBhcnNlQ29udGV4dE5hbWVzLFByIGFzIHBhcnNlRXhwaXJlclRhcmdldCxPbiBhcyBwYXJzZU5hbWVzcGFjZUtleSx1biBhcyBwYXJzZVJlbGF5UGFyYW1zLGxuIGFzIHBhcnNlVG9waWMsY3MgYXMgcGFyc2VVcmksTXIgYXMgcG9wdWxhdGVBdXRoUGF5bG9hZCxLciBhcyByZWNhcEhhc1Jlc291cmNlLFdlIGFzIHNlcmlhbGl6ZSxEciBhcyBzbGVlcCxLbiBhcyBzdWJzY3JpYmVUb0Jyb3dzZXJOZXR3b3JrQ2hhbmdlLENzIGFzIHN1YnNjcmliZVRvTmV0d29ya0NoYW5nZSxMbiBhcyBzdWJzY3JpYmVUb1JlYWN0TmF0aXZlTmV0d29ya0NoYW5nZSxSdCBhcyB0b0Jhc2U2NCxfciBhcyB1dWlkdjQsbnMgYXMgdmFsaWRhdGVEZWNvZGluZyxRdCBhcyB2YWxpZGF0ZUVuY29kaW5nLHhyIGFzIHZhbGlkYXRlU2lnbmVkQ2FjYW8sb3MgYXMgdmVyaWZ5UDI1Nkp3dCxqdCBhcyB2ZXJpZnlTaWduYXR1cmV9OwovLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFw"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/pino@7.11.0/es2022/pino.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.554Z","timestamp":1785138633554,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /pino@7.11.0/es2022/pino.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/logger@2.1.2/es2022/logger.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 05:17:27 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbbbd8569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":6659,"size_decoded":3573,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6312)","md5":"0ccd72763aa4f8fae6db894434ae428c","sha1":"991bdc8e376e4a97b0dafcf9923f24cf25041773","sha256":"7f1c4c4b117a86b8f0caa25e126dba1475ba0fd4d97ef7d93856bd7bd9a8b0e6","sha512":"730cb93ea323309815afdbaa9337c12451e063ce99cbb259fc873f59ae9ea73534d6851869900a73897aa7c91aad07ecf19c37502554b85bf78d0ec3fd7538de","ssdeep":"96:eGPtAiV//TPZS35WpwM/DChNv/SpJ8b1E5gTShZOTJOY3n6dIksPLZI/P9jS8r4L:eGPvZRTZ/mb8Ccu36d2ZI/PswT9ps","tlshash":"77d187ad37e5fd6352d61094d97f0041f23841be106ca0d0f284e9fab8a54ad1b66f3e","first_seen":"2025-11-22T14:57:24.0552Z","last_seen":"2026-08-03T06:19:48.360035Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gcGlub0A3LjExLjAgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvcXVpY2stZm9ybWF0LXVuZXNjYXBlZEBeNC4wLjM/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlInF1aWNrLWZvcm1hdC11bmVzY2FwZWQiOnJldHVybiBlKF9fMCQpO2RlZmF1bHQ6Y29uc29sZS5lcnJvcignbW9kdWxlICInK24rJyIgbm90IGZvdW5kJyk7cmV0dXJuIG51bGw7fX07CnZhciBSPU9iamVjdC5jcmVhdGU7dmFyIFY9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIE09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIEc9T2JqZWN0LmdldFByb3RvdHlwZU9mLEg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgST0oZT0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkoZSx7Z2V0Oih0LHIpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dClbcl19KTplKShmdW5jdGlvbihlKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrZSsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgTj0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpO3ZhciBCPShlLHQscixzKT0+e2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpZm9yKGxldCBuIG9mIE0odCkpIUguY2FsbChlLG4pJiZuIT09ciYmVihlLG4se2dldDooKT0+dFtuXSxlbnVtZXJhYmxlOiEocz1DKHQsbikpfHxzLmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIEo9KGUsdCxyKT0+KHI9ZSE9bnVsbD9SKEcoZSkpOnt9LEIodHx8IWV8fCFlLl9fZXNNb2R1bGU/VihyLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6cixlKSk7dmFyIGc9TigoaWUsRik9PnsidXNlIHN0cmljdCI7dmFyIHg9SSgicXVpY2stZm9ybWF0LXVuZXNjYXBlZCIpO0YuZXhwb3J0cz11O3ZhciBtPXRlKCkuY29uc29sZXx8e30sSz17bWFwSHR0cFJlcXVlc3Q6TyxtYXBIdHRwUmVzcG9uc2U6Tyx3cmFwUmVxdWVzdFNlcmlhbGl6ZXI6cCx3cmFwUmVzcG9uc2VTZXJpYWxpemVyOnAsd3JhcEVycm9yU2VyaWFsaXplcjpwLHJlcTpPLHJlczpPLGVycjpZfTtmdW5jdGlvbiBRKGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5maWx0ZXIoZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT0iIXN0ZFNlcmlhbGl6ZXJzLmVyciJ9KTplPT09ITA/T2JqZWN0LmtleXModCk6ITF9ZnVuY3Rpb24gdShlKXtlPWV8fHt9LGUuYnJvd3Nlcj1lLmJyb3dzZXJ8fHt9O2xldCB0PWUuYnJvd3Nlci50cmFuc21pdDtpZih0JiZ0eXBlb2YgdC5zZW5kIT0iZnVuY3Rpb24iKXRocm93IEVycm9yKCJwaW5vOiB0cmFuc21pdCBvcHRpb24gbXVzdCBoYXZlIGEgc2VuZCBmdW5jdGlvbiIpO2xldCByPWUuYnJvd3Nlci53cml0ZXx8bTtlLmJyb3dzZXIud3JpdGUmJihlLmJyb3dzZXIuYXNPYmplY3Q9ITApO2xldCBzPWUuc2VyaWFsaXplcnN8fHt9LG49UShlLmJyb3dzZXIuc2VyaWFsaXplLHMpLGw9ZS5icm93c2VyLnNlcmlhbGl6ZTtBcnJheS5pc0FycmF5KGUuYnJvd3Nlci5zZXJpYWxpemUpJiZlLmJyb3dzZXIuc2VyaWFsaXplLmluZGV4T2YoIiFzdGRTZXJpYWxpemVycy5lcnIiKT4tMSYmKGw9ITEpO2xldCBvPVsiZXJyb3IiLCJmYXRhbCIsIndhcm4iLCJpbmZvIiwiZGVidWciLCJ0cmFjZSJdO3R5cGVvZiByPT0iZnVuY3Rpb24iJiYoci5lcnJvcj1yLmZhdGFsPXIud2Fybj1yLmluZm89ci5kZWJ1Zz1yLnRyYWNlPXIpLGUuZW5hYmxlZD09PSExJiYoZS5sZXZlbD0ic2lsZW50Iik7bGV0IGM9ZS5sZXZlbHx8ImluZm8iLGk9T2JqZWN0LmNyZWF0ZShyKTtpLmxvZ3x8KGkubG9nPWIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJsZXZlbFZhbCIse2dldDpFfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksImxldmVsIix7Z2V0Oncsc2V0OnF9KTtsZXQgZj17dHJhbnNtaXQ6dCxzZXJpYWxpemU6bixhc09iamVjdDplLmJyb3dzZXIuYXNPYmplY3QsbGV2ZWxzOm8sdGltZXN0YW1wOlooZSl9O2kubGV2ZWxzPXUubGV2ZWxzLGkubGV2ZWw9YyxpLnNldE1heExpc3RlbmVycz1pLmdldE1heExpc3RlbmVycz1pLmVtaXQ9aS5hZGRMaXN0ZW5lcj1pLm9uPWkucHJlcGVuZExpc3RlbmVyPWkub25jZT1pLnByZXBlbmRPbmNlTGlzdGVuZXI9aS5yZW1vdmVMaXN0ZW5lcj1pLnJlbW92ZUFsbExpc3RlbmVycz1pLmxpc3RlbmVycz1pLmxpc3RlbmVyQ291bnQ9aS5ldmVudE5hbWVzPWkud3JpdGU9aS5mbHVzaD1iLGkuc2VyaWFsaXplcnM9cyxpLl9zZXJpYWxpemU9bixpLl9zdGRFcnJTZXJpYWxpemU9bCxpLmNoaWxkPUQsdCYmKGkuX2xvZ0V2ZW50PUwoKSk7ZnVuY3Rpb24gRSgpe3JldHVybiB0aGlzLmxldmVsPT09InNpbGVudCI/MS8wOnRoaXMubGV2ZWxzLnZhbHVlc1t0aGlzLmxldmVsXX1mdW5jdGlvbiB3KCl7cmV0dXJuIHRoaXMuX2xldmVsfWZ1bmN0aW9uIHEoYSl7aWYoYSE9PSJzaWxlbnQiJiYhdGhpcy5sZXZlbHMudmFsdWVzW2FdKXRocm93IEVycm9yKCJ1bmtub3duIGxldmVsICIrYSk7dGhpcy5fbGV2ZWw9YSxkKGYsaSwiZXJyb3IiLCJsb2ciKSxkKGYsaSwiZmF0YWwiLCJlcnJvciIpLGQoZixpLCJ3YXJuIiwiZXJyb3IiKSxkKGYsaSwiaW5mbyIsImxvZyIpLGQoZixpLCJkZWJ1ZyIsImxvZyIpLGQoZixpLCJ0cmFjZSIsImxvZyIpfWZ1bmN0aW9uIEQoYSx6KXtpZighYSl0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgYmluZGluZ3MgZm9yIGNoaWxkIFBpbm8iKTt6PXp8fHt9LG4mJmEuc2VyaWFsaXplcnMmJih6LnNlcmlhbGl6ZXJzPWEuc2VyaWFsaXplcnMpO2xldCBTPXouc2VyaWFsaXplcnM7aWYobiYmUyl7dmFyIHk9T2JqZWN0LmFzc2lnbih7fSxzLFMpLFQ9ZS5icm93c2VyLnNlcmlhbGl6ZT09PSEwP09iamVjdC5rZXlzKHkpOm47ZGVsZXRlIGEuc2VyaWFsaXplcnMsXyhbYV0sVCx5LHRoaXMuX3N0ZEVyclNlcmlhbGl6ZSl9ZnVuY3Rpb24gayhoKXt0aGlzLl9jaGlsZExldmVsPShoLl9jaGlsZExldmVsfDApKzEsdGhpcy5lcnJvcj12KGgsYSwiZXJyb3IiKSx0aGlzLmZhdGFsPXYoaCxhLCJmYXRhbCIpLHRoaXMud2Fybj12KGgsYSwid2FybiIpLHRoaXMuaW5mbz12KGgsYSwiaW5mbyIpLHRoaXMuZGVidWc9dihoLGEsImRlYnVnIiksdGhpcy50cmFjZT12KGgsYSwidHJhY2UiKSx5JiYodGhpcy5zZXJpYWxpemVycz15LHRoaXMuX3NlcmlhbGl6ZT1UKSx0JiYodGhpcy5fbG9nRXZlbnQ9TChbXS5jb25jYXQoaC5fbG9nRXZlbnQuYmluZGluZ3MsYSkpKX1yZXR1cm4gay5wcm90b3R5cGU9dGhpcyxuZXcgayh0aGlzKX1yZXR1cm4gaX11LmxldmVscz17dmFsdWVzOntmYXRhbDo2MCxlcnJvcjo1MCx3YXJuOjQwLGluZm86MzAsZGVidWc6MjAsdHJhY2U6MTB9LGxhYmVsczp7MTA6InRyYWNlIiwyMDoiZGVidWciLDMwOiJpbmZvIiw0MDoid2FybiIsNTA6ImVycm9yIiw2MDoiZmF0YWwifX07dS5zdGRTZXJpYWxpemVycz1LO3Uuc3RkVGltZUZ1bmN0aW9ucz1PYmplY3QuYXNzaWduKHt9LHtudWxsVGltZTpBLGVwb2NoVGltZTpQLHVuaXhUaW1lOiQsaXNvVGltZTplZX0pO2Z1bmN0aW9uIGQoZSx0LHIscyl7bGV0IG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3Rbcl09dC5sZXZlbFZhbD50LmxldmVscy52YWx1ZXNbcl0/YjpuW3JdP25bcl06bVtyXXx8bVtzXXx8YixVKGUsdCxyKX1mdW5jdGlvbiBVKGUsdCxyKXshZS50cmFuc21pdCYmdFtyXT09PWJ8fCh0W3JdPShmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24oKXtsZXQgbD1lLnRpbWVzdGFtcCgpLG89bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGM9T2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk9PT1tP206dGhpcztmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krKylvW2ldPWFyZ3VtZW50c1tpXTtpZihlLnNlcmlhbGl6ZSYmIWUuYXNPYmplY3QmJl8obyx0aGlzLl9zZXJpYWxpemUsdGhpcy5zZXJpYWxpemVycyx0aGlzLl9zdGRFcnJTZXJpYWxpemUpLGUuYXNPYmplY3Q/cy5jYWxsKGMsVyh0aGlzLHIsbyxsKSk6cy5hcHBseShjLG8pLGUudHJhbnNtaXQpe2xldCBmPWUudHJhbnNtaXQubGV2ZWx8fHQubGV2ZWwsRT11LmxldmVscy52YWx1ZXNbZl0sdz11LmxldmVscy52YWx1ZXNbcl07aWYodzxFKXJldHVybjtYKHRoaXMse3RzOmwsbWV0aG9kTGV2ZWw6cixtZXRob2RWYWx1ZTp3LHRyYW5zbWl0TGV2ZWw6Zix0cmFuc21pdFZhbHVlOnUubGV2ZWxzLnZhbHVlc1tlLnRyYW5zbWl0LmxldmVsfHx0LmxldmVsXSxzZW5kOmUudHJhbnNtaXQuc2VuZCx2YWw6dC5sZXZlbFZhbH0sbyl9fX0pKHRbcl0pKX1mdW5jdGlvbiBXKGUsdCxyLHMpe2UuX3NlcmlhbGl6ZSYmXyhyLGUuX3NlcmlhbGl6ZSxlLnNlcmlhbGl6ZXJzLGUuX3N0ZEVyclNlcmlhbGl6ZSk7bGV0IG49ci5zbGljZSgpLGw9blswXSxvPXt9O3MmJihvLnRpbWU9cyksby5sZXZlbD11LmxldmVscy52YWx1ZXNbdF07bGV0IGM9KGUuX2NoaWxkTGV2ZWx8MCkrMTtpZihjPDEmJihjPTEpLGwhPT1udWxsJiZ0eXBlb2YgbD09Im9iamVjdCIpe2Zvcig7Yy0tJiZ0eXBlb2YgblswXT09Im9iamVjdCI7KU9iamVjdC5hc3NpZ24obyxuLnNoaWZ0KCkpO2w9bi5sZW5ndGg/eChuLnNoaWZ0KCksbik6dm9pZCAwfWVsc2UgdHlwZW9mIGw9PSJzdHJpbmciJiYobD14KG4uc2hpZnQoKSxuKSk7cmV0dXJuIGwhPT12b2lkIDAmJihvLm1zZz1sKSxvfWZ1bmN0aW9uIF8oZSx0LHIscyl7Zm9yKGxldCBuIGluIGUpaWYocyYmZVtuXWluc3RhbmNlb2YgRXJyb3IpZVtuXT11LnN0ZFNlcmlhbGl6ZXJzLmVycihlW25dKTtlbHNlIGlmKHR5cGVvZiBlW25dPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoZVtuXSkpZm9yKGxldCBsIGluIGVbbl0pdCYmdC5pbmRleE9mKGwpPi0xJiZsIGluIHImJihlW25dW2xdPXJbbF0oZVtuXVtsXSkpfWZ1bmN0aW9uIHYoZSx0LHIpe3JldHVybiBmdW5jdGlvbigpe2xldCBzPW5ldyBBcnJheSgxK2FyZ3VtZW50cy5sZW5ndGgpO3NbMF09dDtmb3IodmFyIG49MTtuPHMubGVuZ3RoO24rKylzW25dPWFyZ3VtZW50c1tuLTFdO3JldHVybiBlW3JdLmFwcGx5KHRoaXMscyl9fWZ1bmN0aW9uIFgoZSx0LHIpe2xldCBzPXQuc2VuZCxuPXQudHMsbD10Lm1ldGhvZExldmVsLG89dC5tZXRob2RWYWx1ZSxjPXQudmFsLGk9ZS5fbG9nRXZlbnQuYmluZGluZ3M7XyhyLGUuX3NlcmlhbGl6ZXx8T2JqZWN0LmtleXMoZS5zZXJpYWxpemVycyksZS5zZXJpYWxpemVycyxlLl9zdGRFcnJTZXJpYWxpemU9PT12b2lkIDA/ITA6ZS5fc3RkRXJyU2VyaWFsaXplKSxlLl9sb2dFdmVudC50cz1uLGUuX2xvZ0V2ZW50Lm1lc3NhZ2VzPXIuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBpLmluZGV4T2YoZik9PT0tMX0pLGUuX2xvZ0V2ZW50LmxldmVsLmxhYmVsPWwsZS5fbG9nRXZlbnQubGV2ZWwudmFsdWU9byxzKGwsZS5fbG9nRXZlbnQsYyksZS5fbG9nRXZlbnQ9TChpKX1mdW5jdGlvbiBMKGUpe3JldHVybnt0czowLG1lc3NhZ2VzOltdLGJpbmRpbmdzOmV8fFtdLGxldmVsOntsYWJlbDoiIix2YWx1ZTowfX19ZnVuY3Rpb24gWShlKXtsZXQgdD17dHlwZTplLmNvbnN0cnVjdG9yLm5hbWUsbXNnOmUubWVzc2FnZSxzdGFjazplLnN0YWNrfTtmb3IobGV0IHIgaW4gZSl0W3JdPT09dm9pZCAwJiYodFtyXT1lW3JdKTtyZXR1cm4gdH1mdW5jdGlvbiBaKGUpe3JldHVybiB0eXBlb2YgZS50aW1lc3RhbXA9PSJmdW5jdGlvbiI/ZS50aW1lc3RhbXA6ZS50aW1lc3RhbXA9PT0hMT9BOlB9ZnVuY3Rpb24gTygpe3JldHVybnt9fWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gYigpe31mdW5jdGlvbiBBKCl7cmV0dXJuITF9ZnVuY3Rpb24gUCgpe3JldHVybiBEYXRlLm5vdygpfWZ1bmN0aW9uICQoKXtyZXR1cm4gTWF0aC5yb3VuZChEYXRlLm5vdygpLzFlMyl9ZnVuY3Rpb24gZWUoKXtyZXR1cm4gbmV3IERhdGUoRGF0ZS5ub3coKSkudG9JU09TdHJpbmcoKX1mdW5jdGlvbiB0ZSgpe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHR5cGVvZiB0PCJ1IiYmdH10cnl7cmV0dXJuIHR5cGVvZiBnbG9iYWxUaGlzPCJ1Inx8T2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsImdsb2JhbFRoaXMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGVsZXRlIE9iamVjdC5wcm90b3R5cGUuZ2xvYmFsVGhpcyx0aGlzLmdsb2JhbFRoaXM9dGhpc30sY29uZmlndXJhYmxlOiEwfSksZ2xvYmFsVGhpc31jYXRjaHtyZXR1cm4gZShzZWxmKXx8ZSh3aW5kb3cpfHxlKHRoaXMpfHx7fX19fSk7dmFyIGo9SihnKCkpLHtsZXZlbHM6bmUsc3RkU2VyaWFsaXplcnM6c2Usc3RkVGltZUZ1bmN0aW9uczpsZX09aixhZT1qLmRlZmF1bHQ/P2o7ZXhwb3J0e2FlIGFzIGRlZmF1bHQsbmUgYXMgbGV2ZWxzLHNlIGFzIHN0ZFNlcmlhbGl6ZXJzLGxlIGFzIHN0ZFRpbWVGdW5jdGlvbnN9OwovLyMgc291cmNlTWFwcGluZ1VSTD1waW5vLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/types@2.17.4/es2022/types.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.591Z","timestamp":1785138633591,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/types@2.17.4/es2022/types.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/sign-client@2.17.4/es2022/sign-client.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Fri, 18 Jul 2025 11:54:47 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbfbf1569f-OSL\r\ncontent-length: 710\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1693,"size_decoded":1162,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (1615)","md5":"cb680b3d40f3efbd0e183cb8826ccde6","sha1":"cf9fac1018a837c69eb78708352f106df63562aa","sha256":"d3d3c06c33b1c4f40aa22711ae1372f90c13cde56d8ab017880bddf3879c4402","sha512":"75690493000d93c9004dc768bc9da9189a0242db3f01e1ed3148689b947bdc36f72a1e32c8ef3f6b7d9673e42f1eb2d6ee9cd910c34fa3b8891470e3f8f7e48b","ssdeep":"","tlshash":"0d313768227964b685f6cace885162572390b485f708c0ed3efc78f86dd4d85b3e90f8","first_seen":"2025-07-08T23:56:54.668383Z","last_seen":"2026-07-27T07:51:47.205292Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvdHlwZXNAMi4xNy40ICovCmltcG9ydHtJRXZlbnRzIGFzIG99ZnJvbSIvQHdhbGxldGNvbm5lY3QvZXZlbnRzQDEuMC4xL2VzMjAyMi9ldmVudHMubWpzIjtpbXBvcnQgUyx7RXZlbnRFbWl0dGVyIGFzIHd9ZnJvbSIvbm9kZS9ldmVudHMubWpzIjt2YXIgYz1jbGFzcyBleHRlbmRzIG97Y29uc3RydWN0b3Iocyl7c3VwZXIoKSx0aGlzLm9wdHM9cyx0aGlzLnByb3RvY29sPSJ3YyIsdGhpcy52ZXJzaW9uPTJ9fSxpPWNsYXNze2NvbnN0cnVjdG9yKHMsdCxlKXt0aGlzLmNvcmU9cyx0aGlzLmxvZ2dlcj10fX0sYT1jbGFzcyBleHRlbmRzIG97Y29uc3RydWN0b3Iocyx0KXtzdXBlcigpLHRoaXMuY29yZT1zLHRoaXMubG9nZ2VyPXQsdGhpcy5yZWNvcmRzPW5ldyBNYXB9fSxuPWNsYXNze2NvbnN0cnVjdG9yKHMsdCl7dGhpcy5sb2dnZXI9cyx0aGlzLmNvcmU9dH19LGw9Y2xhc3MgZXh0ZW5kcyBve2NvbnN0cnVjdG9yKHMsdCl7c3VwZXIoKSx0aGlzLnJlbGF5ZXI9cyx0aGlzLmxvZ2dlcj10fX0saD1jbGFzcyBleHRlbmRzIG97Y29uc3RydWN0b3Iocyl7c3VwZXIoKX19LGc9Y2xhc3N7Y29uc3RydWN0b3Iocyx0LGUsTSl7dGhpcy5jb3JlPXMsdGhpcy5sb2dnZXI9dCx0aGlzLm5hbWU9ZX19LHU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfX0scD1jbGFzcyBleHRlbmRzIG97Y29uc3RydWN0b3Iocyx0KXtzdXBlcigpLHRoaXMucmVsYXllcj1zLHRoaXMubG9nZ2VyPXR9fSxJPWNsYXNze2NvbnN0cnVjdG9yKHMsdCl7dGhpcy5jb3JlPXMsdGhpcy5sb2dnZXI9dH19LGQ9Y2xhc3MgZXh0ZW5kcyBve2NvbnN0cnVjdG9yKHMsdCl7c3VwZXIoKSx0aGlzLmNvcmU9cyx0aGlzLmxvZ2dlcj10fX0sRT1jbGFzc3tjb25zdHJ1Y3RvcihzLHQpe3RoaXMubG9nZ2VyPXMsdGhpcy5jb3JlPXR9fSx4PWNsYXNze2NvbnN0cnVjdG9yKHMsdCxlKXt0aGlzLmNvcmU9cyx0aGlzLmxvZ2dlcj10LHRoaXMuc3RvcmU9ZX19LG09Y2xhc3N7Y29uc3RydWN0b3Iocyx0KXt0aGlzLnByb2plY3RJZD1zLHRoaXMubG9nZ2VyPXR9fSx5PWNsYXNze2NvbnN0cnVjdG9yKHMsdCxlKXt0aGlzLmNvcmU9cyx0aGlzLmxvZ2dlcj10LHRoaXMudGVsZW1ldHJ5RW5hYmxlZD1lfX0sdj1jbGFzcyBleHRlbmRzIFN7Y29uc3RydWN0b3IoKXtzdXBlcigpfX0sQz1jbGFzc3tjb25zdHJ1Y3RvcihzKXt0aGlzLm9wdHM9cyx0aGlzLnByb3RvY29sPSJ3YyIsdGhpcy52ZXJzaW9uPTJ9fSxiPWNsYXNzIGV4dGVuZHMgd3tjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9fSxmPWNsYXNze2NvbnN0cnVjdG9yKHMpe3RoaXMuY2xpZW50PXN9fTtleHBvcnR7YyBhcyBJQ29yZSxpIGFzIElDcnlwdG8sbSBhcyBJRWNob0NsaWVudCxmIGFzIElFbmdpbmUsYiBhcyBJRW5naW5lRXZlbnRzLHkgYXMgSUV2ZW50Q2xpZW50LGQgYXMgSUV4cGlyZXIsYSBhcyBJSnNvblJwY0hpc3RvcnksSSBhcyBJS2V5Q2hhaW4sbiBhcyBJTWVzc2FnZVRyYWNrZXIsRSBhcyBJUGFpcmluZyxsIGFzIElQdWJsaXNoZXIsaCBhcyBJUmVsYXllcixDIGFzIElTaWduQ2xpZW50LHYgYXMgSVNpZ25DbGllbnRFdmVudHMsZyBhcyBJU3RvcmUscCBhcyBJU3Vic2NyaWJlcix1IGFzIElTdWJzY3JpYmVyVG9waWNNYXAseCBhcyBJVmVyaWZ5fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHlwZXMubWpzLm1hcA=="}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":15,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/decode-uri-component@0.2.2/es2022/decode-uri-component.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.921Z","timestamp":1785138633921,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /decode-uri-component@0.2.2/es2022/decode-uri-component.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/decode-uri-component@%5E0.2.2?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dce0c38569f-OSL\r\ncontent-length: 996\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1611,"size_decoded":1448,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1519)","md5":"ba493b447ae0068ac55f51df9f217aa8","sha1":"7860eb31c73675cbb2d4290d0d7752502ce6a153","sha256":"5e748ae5b1ff6b3dac55f20e69475525a3db2486a7652d8c76e45eefccf23379","sha512":"25f6417070a3d214dd75b3efd76e862a822929d39f178c9636621c2bd6d314daf3d950b7dac1605217732b2c1572b255b81bd79e3fb9b34cef5f8658be0c582b","ssdeep":"","tlshash":"be3144e022e5dcf6065b08d4867e2045f0fddf5888bdf490f744c6f5a090c970462fa6","first_seen":"2025-07-08T23:56:54.730773Z","last_seen":"2026-07-27T07:51:47.206854Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gZGVjb2RlLXVyaS1jb21wb25lbnRAMC4yLjIgKi8KdmFyIHk9T2JqZWN0LmNyZWF0ZTt2YXIgZz1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgcD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBDPShyLGUpPT4oKT0+KGV8fHIoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyk7dmFyIEU9KHIsZSx0LGMpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IGEgb2YgcChlKSkhaS5jYWxsKHIsYSkmJmEhPT10JiZnKHIsYSx7Z2V0OigpPT5lW2FdLGVudW1lcmFibGU6IShjPWQoZSxhKSl8fGMuZW51bWVyYWJsZX0pO3JldHVybiByfTt2YXIgdz0ocixlLHQpPT4odD1yIT1udWxsP3koeChyKSk6e30sRShlfHwhcnx8IXIuX19lc01vZHVsZT9nKHQsImRlZmF1bHQiLHt2YWx1ZTpyLGVudW1lcmFibGU6ITB9KTp0LHIpKTt2YXIgbT1DKChNLGwpPT57InVzZSBzdHJpY3QiO3ZhciB2PSIlW2EtZjAtOV17Mn0iLGg9bmV3IFJlZ0V4cCgiKCIrdisiKXwoW14lXSs/KSIsImdpIiksdT1uZXcgUmVnRXhwKCIoIit2KyIpKyIsImdpIik7ZnVuY3Rpb24gbihyLGUpe3RyeXtyZXR1cm5bZGVjb2RlVVJJQ29tcG9uZW50KHIuam9pbigiIikpXX1jYXRjaHt9aWYoci5sZW5ndGg9PT0xKXJldHVybiByO2U9ZXx8MTt2YXIgdD1yLnNsaWNlKDAsZSksYz1yLnNsaWNlKGUpO3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmNhbGwoW10sbih0KSxuKGMpKX1mdW5jdGlvbiBEKHIpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHIpfWNhdGNoe2Zvcih2YXIgZT1yLm1hdGNoKGgpfHxbXSx0PTE7dDxlLmxlbmd0aDt0Kyspcj1uKGUsdCkuam9pbigiIiksZT1yLm1hdGNoKGgpfHxbXTtyZXR1cm4gcn19ZnVuY3Rpb24gaihyKXtmb3IodmFyIGU9eyIlRkUlRkYiOiJcdUZGRkRcdUZGRkQiLCIlRkYlRkUiOiJcdUZGRkRcdUZGRkQifSx0PXUuZXhlYyhyKTt0Oyl7dHJ5e2VbdFswXV09ZGVjb2RlVVJJQ29tcG9uZW50KHRbMF0pfWNhdGNoe3ZhciBjPUQodFswXSk7YyE9PXRbMF0mJihlW3RbMF1dPWMpfXQ9dS5leGVjKHIpfWVbIiVDMiJdPSJcdUZGRkQiO2Zvcih2YXIgYT1PYmplY3Qua2V5cyhlKSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBmPWFbb107cj1yLnJlcGxhY2UobmV3IFJlZ0V4cChmLCJnIiksZVtmXSl9cmV0dXJuIHJ9bC5leHBvcnRzPWZ1bmN0aW9uKHIpe2lmKHR5cGVvZiByIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBgZW5jb2RlZFVSSWAgdG8gYmUgb2YgdHlwZSBgc3RyaW5nYCwgZ290IGAiK3R5cGVvZiByKyJgIik7dHJ5e3JldHVybiByPXIucmVwbGFjZSgvXCsvZywiICIpLGRlY29kZVVSSUNvbXBvbmVudChyKX1jYXRjaHtyZXR1cm4gaihyKX19fSk7dmFyIEY9dyhtKCkpLGI9Ri5kZWZhdWx0Pz9GO2V4cG9ydHtiIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1kZWNvZGUtdXJpLWNvbXBvbmVudC5tanMubWFw"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/js-sha3@0.8.0/es2022/js-sha3.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.941Z","timestamp":1785138633941,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /js-sha3@0.8.0/es2022/js-sha3.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/keccak256@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:33:34 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16520\r\ncf-ray: a21a0dce2c3d569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":10860,"size_decoded":5416,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (10493)","md5":"0e9ad04981cbda36892f4f971fb7d22a","sha1":"66014fe5cbe98c73511581170252d1132ad38890","sha256":"ecc2dcaa0c5f292ef3dc99b71889a2ae914af1cf4102a2c135cac8f0d1d10ded","sha512":"810cf88258e9b2f8075288ced6350d9de246a55dee79def5a1ee4f1f423b711ab69ab0beba2df372e7b595320873046f2135b83479ef7d986eab635cd7bc8566","ssdeep":"192:jS1pgzpn+SQRjQv48moUKHvtaChLOB11pn1Ran107/815Wov4bUrJ5Yt3GjeJo33:m1K9AkeI158seJMuLW","tlshash":"5b22c445a0d9d4e642e7e2e874b7528e732a797c802c162d7d80ccdb98b8dcf442773a","first_seen":"2025-07-08T23:56:54.757213Z","last_seen":"2026-07-27T07:51:47.255023Z","times_seen":16,"resource_available":true,"data":"LyogZXNtLnNoIC0ganMtc2hhM0AwLjguMCAqLwppbXBvcnQgX19Qcm9jZXNzJCBmcm9tICIvbm9kZS9wcm9jZXNzLm1qcyI7CnZhciBlZT1PYmplY3QuY3JlYXRlO3ZhciBWdD1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHJlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIG5lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBvZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsYWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgaWU9KHAsYik9PigpPT4oYnx8cCgoYj17ZXhwb3J0czp7fX0pLmV4cG9ydHMsYiksYi5leHBvcnRzKTt2YXIgZmU9KHAsYix4LGQpPT57aWYoYiYmdHlwZW9mIGI9PSJvYmplY3QifHx0eXBlb2YgYj09ImZ1bmN0aW9uIilmb3IobGV0IF8gb2YgbmUoYikpIWFlLmNhbGwocCxfKSYmXyE9PXgmJlZ0KHAsXyx7Z2V0OigpPT5iW19dLGVudW1lcmFibGU6IShkPXJlKGIsXykpfHxkLmVudW1lcmFibGV9KTtyZXR1cm4gcH07dmFyIHVlPShwLGIseCk9Pih4PXAhPW51bGw/ZWUob2UocCkpOnt9LGZlKGJ8fCFwfHwhcC5fX2VzTW9kdWxlP1Z0KHgsImRlZmF1bHQiLHt2YWx1ZTpwLGVudW1lcmFibGU6ITB9KTp4LHApKTt2YXIgWXQ9aWUoKGhlLE90KT0+eyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcD0iaW5wdXQgaXMgaW52YWxpZCB0eXBlIixiPSJmaW5hbGl6ZSBhbHJlYWR5IGNhbGxlZCIseD10eXBlb2Ygd2luZG93PT0ib2JqZWN0IixkPXg/d2luZG93Ont9O2QuSlNfU0hBM19OT19XSU5ET1cmJih4PSExKTt2YXIgXz0heCYmdHlwZW9mIHNlbGY9PSJvYmplY3QiLEd0PSFkLkpTX1NIQTNfTk9fTk9ERV9KUyYmdHlwZW9mIF9fUHJvY2VzcyQ9PSJvYmplY3QiJiZfX1Byb2Nlc3MkLnZlcnNpb25zJiZfX1Byb2Nlc3MkLnZlcnNpb25zLm5vZGU7R3Q/ZD1nbG9iYWxUaGlzOl8mJihkPXNlbGYpO3ZhciBMdD0hZC5KU19TSEEzX05PX0NPTU1PTl9KUyYmdHlwZW9mIE90PT0ib2JqZWN0IiYmT3QuZXhwb3J0cyxYdD10eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kLEI9IWQuSlNfU0hBM19OT19BUlJBWV9CVUZGRVImJnR5cGVvZiBBcnJheUJ1ZmZlcjwidSIseT0iMDEyMzQ1Njc4OWFiY2RlZiIuc3BsaXQoIiIpLFp0PVszMSw3OTM2LDIwMzE2MTYsNTIwMDkzNjk2XSxEdD1bNCwxMDI0LDI2MjE0NCw2NzEwODg2NF0scXQ9WzEsMjU2LDY1NTM2LDE2Nzc3MjE2XSxRdD1bNiwxNTM2LDM5MzIxNiwxMDA2NjMyOTZdLHY9WzAsOCwxNiwyNF0sSHQ9WzEsMCwzMjg5OCwwLDMyOTA2LDIxNDc0ODM2NDgsMjE0NzUxNjQxNiwyMTQ3NDgzNjQ4LDMyOTA3LDAsMjE0NzQ4MzY0OSwwLDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjc3NywyMTQ3NDgzNjQ4LDEzOCwwLDEzNiwwLDIxNDc1MTY0MjUsMCwyMTQ3NDgzNjU4LDAsMjE0NzUxNjU1NSwwLDEzOSwyMTQ3NDgzNjQ4LDMyOTA1LDIxNDc0ODM2NDgsMzI3NzEsMjE0NzQ4MzY0OCwzMjc3MCwyMTQ3NDgzNjQ4LDEyOCwyMTQ3NDgzNjQ4LDMyNzc4LDAsMjE0NzQ4MzY1OCwyMTQ3NDgzNjQ4LDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjg5NiwyMTQ3NDgzNjQ4LDIxNDc0ODM2NDksMCwyMTQ3NTE2NDI0LDIxNDc0ODM2NDhdLGd0PVsyMjQsMjU2LDM4NCw1MTJdLE10PVsxMjgsMjU2XSx6dD1bImhleCIsImJ1ZmZlciIsImFycmF5QnVmZmVyIiwiYXJyYXkiLCJkaWdlc3QiXSxLdD17MTI4OjE2OCwyNTY6MTM2fTsoZC5KU19TSEEzX05PX05PREVfSlN8fCFBcnJheS5pc0FycmF5KSYmKEFycmF5LmlzQXJyYXk9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KT09PSJbb2JqZWN0IEFycmF5XSJ9KSxCJiYoZC5KU19TSEEzX05PX0FSUkFZX0JVRkZFUl9JU19WSUVXfHwhQXJyYXlCdWZmZXIuaXNWaWV3KSYmKEFycmF5QnVmZmVyLmlzVmlldz1mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJvYmplY3QiJiZ0LmJ1ZmZlciYmdC5idWZmZXIuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcn0pO2Zvcih2YXIgSnQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbmV3IGgodCxlLHQpLnVwZGF0ZShuKVtyXSgpfX0sVXQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbihuLG8pe3JldHVybiBuZXcgaCh0LGUsbykudXBkYXRlKG4pW3JdKCl9fSxqdD1mdW5jdGlvbih0LGUscil7cmV0dXJuIGZ1bmN0aW9uKG4sbyxpLGYpe3JldHVybiBBWyJjc2hha2UiK3RdLnVwZGF0ZShuLG8saSxmKVtyXSgpfX0sUHQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbihuLG8saSxmKXtyZXR1cm4gQVsia21hYyIrdF0udXBkYXRlKG4sbyxpLGYpW3JdKCl9fSxFPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgbz0wO288enQubGVuZ3RoOysrbyl7dmFyIGk9enRbb107dFtpXT1lKHIsbixpKX1yZXR1cm4gdH0sVHQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1KdCh0LGUsImhleCIpO3JldHVybiByLmNyZWF0ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgaCh0LGUsdCl9LHIudXBkYXRlPWZ1bmN0aW9uKG4pe3JldHVybiByLmNyZWF0ZSgpLnVwZGF0ZShuKX0sRShyLEp0LHQsZSl9LCR0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9VXQodCxlLCJoZXgiKTtyZXR1cm4gci5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBoKHQsZSxuKX0sci51cGRhdGU9ZnVuY3Rpb24obixvKXtyZXR1cm4gci5jcmVhdGUobykudXBkYXRlKG4pfSxFKHIsVXQsdCxlKX0sc3Q9ZnVuY3Rpb24odCxlKXt2YXIgcj1LdFt0XSxuPWp0KHQsZSwiaGV4Iik7cmV0dXJuIG4uY3JlYXRlPWZ1bmN0aW9uKG8saSxmKXtyZXR1cm4haSYmIWY/QVsic2hha2UiK3RdLmNyZWF0ZShvKTpuZXcgaCh0LGUsbykuYnl0ZXBhZChbaSxmXSxyKX0sbi51cGRhdGU9ZnVuY3Rpb24obyxpLGYsYSl7cmV0dXJuIG4uY3JlYXRlKGksZixhKS51cGRhdGUobyl9LEUobixqdCx0LGUpfSx0ZT1mdW5jdGlvbih0LGUpe3ZhciByPUt0W3RdLG49UHQodCxlLCJoZXgiKTtyZXR1cm4gbi5jcmVhdGU9ZnVuY3Rpb24obyxpLGYpe3JldHVybiBuZXcgSXQodCxlLGkpLmJ5dGVwYWQoWyJLTUFDIixmXSxyKS5ieXRlcGFkKFtvXSxyKX0sbi51cGRhdGU9ZnVuY3Rpb24obyxpLGYsYSl7cmV0dXJuIG4uY3JlYXRlKG8sZixhKS51cGRhdGUoaSl9LEUobixQdCx0LGUpfSxXdD1be25hbWU6ImtlY2NhayIscGFkZGluZzpxdCxiaXRzOmd0LGNyZWF0ZU1ldGhvZDpUdH0se25hbWU6InNoYTMiLHBhZGRpbmc6UXQsYml0czpndCxjcmVhdGVNZXRob2Q6VHR9LHtuYW1lOiJzaGFrZSIscGFkZGluZzpadCxiaXRzOk10LGNyZWF0ZU1ldGhvZDokdH0se25hbWU6ImNzaGFrZSIscGFkZGluZzpEdCxiaXRzOk10LGNyZWF0ZU1ldGhvZDpzdH0se25hbWU6ImttYWMiLHBhZGRpbmc6RHQsYml0czpNdCxjcmVhdGVNZXRob2Q6dGV9XSxBPXt9LEY9W10saz0wO2s8V3QubGVuZ3RoOysraylmb3IodmFyIHc9V3Rba10sTz13LmJpdHMsUz0wO1M8Ty5sZW5ndGg7KytTKXt2YXIgUnQ9dy5uYW1lKyJfIitPW1NdO2lmKEYucHVzaChSdCksQVtSdF09dy5jcmVhdGVNZXRob2QoT1tTXSx3LnBhZGRpbmcpLHcubmFtZSE9PSJzaGEzIil7dmFyIG10PXcubmFtZStPW1NdO0YucHVzaChtdCksQVttdF09QVtSdF19fWZ1bmN0aW9uIGgodCxlLHIpe3RoaXMuYmxvY2tzPVtdLHRoaXMucz1bXSx0aGlzLnBhZGRpbmc9ZSx0aGlzLm91dHB1dEJpdHM9cix0aGlzLnJlc2V0PSEwLHRoaXMuZmluYWxpemVkPSExLHRoaXMuYmxvY2s9MCx0aGlzLnN0YXJ0PTAsdGhpcy5ibG9ja0NvdW50PTE2MDAtKHQ8PDEpPj41LHRoaXMuYnl0ZUNvdW50PXRoaXMuYmxvY2tDb3VudDw8Mix0aGlzLm91dHB1dEJsb2Nrcz1yPj41LHRoaXMuZXh0cmFCeXRlcz0ociYzMSk+PjM7Zm9yKHZhciBuPTA7bjw1MDsrK24pdGhpcy5zW25dPTB9aC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuZmluYWxpemVkKXRocm93IG5ldyBFcnJvcihiKTt2YXIgZSxyPXR5cGVvZiB0O2lmKHIhPT0ic3RyaW5nIil7aWYocj09PSJvYmplY3QiKXtpZih0PT09bnVsbCl0aHJvdyBuZXcgRXJyb3IocCk7aWYoQiYmdC5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyKXQ9bmV3IFVpbnQ4QXJyYXkodCk7ZWxzZSBpZighQXJyYXkuaXNBcnJheSh0KSYmKCFCfHwhQXJyYXlCdWZmZXIuaXNWaWV3KHQpKSl0aHJvdyBuZXcgRXJyb3IocCl9ZWxzZSB0aHJvdyBuZXcgRXJyb3IocCk7ZT0hMH1mb3IodmFyIG49dGhpcy5ibG9ja3Msbz10aGlzLmJ5dGVDb3VudCxpPXQubGVuZ3RoLGY9dGhpcy5ibG9ja0NvdW50LGE9MCxsPXRoaXMucyx1LGM7YTxpOyl7aWYodGhpcy5yZXNldClmb3IodGhpcy5yZXNldD0hMSxuWzBdPXRoaXMuYmxvY2ssdT0xO3U8ZisxOysrdSluW3VdPTA7aWYoZSlmb3IodT10aGlzLnN0YXJ0O2E8aSYmdTxvOysrYSluW3U+PjJdfD10W2FdPDx2W3UrKyYzXTtlbHNlIGZvcih1PXRoaXMuc3RhcnQ7YTxpJiZ1PG87KythKWM9dC5jaGFyQ29kZUF0KGEpLGM8MTI4P25bdT4+Ml18PWM8PHZbdSsrJjNdOmM8MjA0OD8oblt1Pj4yXXw9KDE5MnxjPj42KTw8dlt1KysmM10sblt1Pj4yXXw9KDEyOHxjJjYzKTw8dlt1KysmM10pOmM8NTUyOTZ8fGM+PTU3MzQ0PyhuW3U+PjJdfD0oMjI0fGM+PjEyKTw8dlt1KysmM10sblt1Pj4yXXw9KDEyOHxjPj42JjYzKTw8dlt1KysmM10sblt1Pj4yXXw9KDEyOHxjJjYzKTw8dlt1KysmM10pOihjPTY1NTM2KygoYyYxMDIzKTw8MTB8dC5jaGFyQ29kZUF0KCsrYSkmMTAyMyksblt1Pj4yXXw9KDI0MHxjPj4xOCk8PHZbdSsrJjNdLG5bdT4+Ml18PSgxMjh8Yz4+MTImNjMpPDx2W3UrKyYzXSxuW3U+PjJdfD0oMTI4fGM+PjYmNjMpPDx2W3UrKyYzXSxuW3U+PjJdfD0oMTI4fGMmNjMpPDx2W3UrKyYzXSk7aWYodGhpcy5sYXN0Qnl0ZUluZGV4PXUsdT49byl7Zm9yKHRoaXMuc3RhcnQ9dS1vLHRoaXMuYmxvY2s9bltmXSx1PTA7dTxmOysrdSlsW3VdXj1uW3VdO0MobCksdGhpcy5yZXNldD0hMH1lbHNlIHRoaXMuc3RhcnQ9dX1yZXR1cm4gdGhpc30saC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dCYyNTUsbj0xLG89W3JdO2Zvcih0PXQ+Pjgscj10JjI1NTtyPjA7KW8udW5zaGlmdChyKSx0PXQ+Pjgscj10JjI1NSwrK247cmV0dXJuIGU/by5wdXNoKG4pOm8udW5zaGlmdChuKSx0aGlzLnVwZGF0ZShvKSxvLmxlbmd0aH0saC5wcm90b3R5cGUuZW5jb2RlU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dHlwZW9mIHQ7aWYociE9PSJzdHJpbmciKXtpZihyPT09Im9iamVjdCIpe2lmKHQ9PT1udWxsKXRocm93IG5ldyBFcnJvcihwKTtpZihCJiZ0LmNvbnN0cnVjdG9yPT09QXJyYXlCdWZmZXIpdD1uZXcgVWludDhBcnJheSh0KTtlbHNlIGlmKCFBcnJheS5pc0FycmF5KHQpJiYoIUJ8fCFBcnJheUJ1ZmZlci5pc1ZpZXcodCkpKXRocm93IG5ldyBFcnJvcihwKX1lbHNlIHRocm93IG5ldyBFcnJvcihwKTtlPSEwfXZhciBuPTAsbz10Lmxlbmd0aDtpZihlKW49bztlbHNlIGZvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgZj10LmNoYXJDb2RlQXQoaSk7ZjwxMjg/bis9MTpmPDIwNDg/bis9MjpmPDU1Mjk2fHxmPj01NzM0ND9uKz0zOihmPTY1NTM2KygoZiYxMDIzKTw8MTB8dC5jaGFyQ29kZUF0KCsraSkmMTAyMyksbis9NCl9cmV0dXJuIG4rPXRoaXMuZW5jb2RlKG4qOCksdGhpcy51cGRhdGUodCksbn0saC5wcm90b3R5cGUuYnl0ZXBhZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLmVuY29kZShlKSxuPTA7bjx0Lmxlbmd0aDsrK24pcis9dGhpcy5lbmNvZGVTdHJpbmcodFtuXSk7dmFyIG89ZS1yJWUsaT1bXTtyZXR1cm4gaS5sZW5ndGg9byx0aGlzLnVwZGF0ZShpKSx0aGlzfSxoLnByb3RvdHlwZS5maW5hbGl6ZT1mdW5jdGlvbigpe2lmKCF0aGlzLmZpbmFsaXplZCl7dGhpcy5maW5hbGl6ZWQ9ITA7dmFyIHQ9dGhpcy5ibG9ja3MsZT10aGlzLmxhc3RCeXRlSW5kZXgscj10aGlzLmJsb2NrQ291bnQsbj10aGlzLnM7aWYodFtlPj4yXXw9dGhpcy5wYWRkaW5nW2UmM10sdGhpcy5sYXN0Qnl0ZUluZGV4PT09dGhpcy5ieXRlQ291bnQpZm9yKHRbMF09dFtyXSxlPTE7ZTxyKzE7KytlKXRbZV09MDtmb3IodFtyLTFdfD0yMTQ3NDgzNjQ4LGU9MDtlPHI7KytlKW5bZV1ePXRbZV07QyhuKX19LGgucHJvdG90eXBlLnRvU3RyaW5nPWgucHJvdG90eXBlLmhleD1mdW5jdGlvbigpe3RoaXMuZmluYWxpemUoKTtmb3IodmFyIHQ9dGhpcy5ibG9ja0NvdW50LGU9dGhpcy5zLHI9dGhpcy5vdXRwdXRCbG9ja3Msbj10aGlzLmV4dHJhQnl0ZXMsbz0wLGk9MCxmPSIiLGE7aTxyOyl7Zm9yKG89MDtvPHQmJmk8cjsrK28sKytpKWE9ZVtvXSxmKz15W2E+PjQmMTVdK3lbYSYxNV0reVthPj4xMiYxNV0reVthPj44JjE1XSt5W2E+PjIwJjE1XSt5W2E+PjE2JjE1XSt5W2E+PjI4JjE1XSt5W2E+PjI0JjE1XTtpJXQ9PT0wJiYoQyhlKSxvPTApfXJldHVybiBuJiYoYT1lW29dLGYrPXlbYT4+NCYxNV0reVthJjE1XSxuPjEmJihmKz15W2E+PjEyJjE1XSt5W2E+PjgmMTVdKSxuPjImJihmKz15W2E+PjIwJjE1XSt5W2E+PjE2JjE1XSkpLGZ9LGgucHJvdG90eXBlLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO3ZhciB0PXRoaXMuYmxvY2tDb3VudCxlPXRoaXMucyxyPXRoaXMub3V0cHV0QmxvY2tzLG49dGhpcy5leHRyYUJ5dGVzLG89MCxpPTAsZj10aGlzLm91dHB1dEJpdHM+PjMsYTtuP2E9bmV3IEFycmF5QnVmZmVyKHIrMTw8Mik6YT1uZXcgQXJyYXlCdWZmZXIoZik7Zm9yKHZhciBsPW5ldyBVaW50MzJBcnJheShhKTtpPHI7KXtmb3Iobz0wO288dCYmaTxyOysrbywrK2kpbFtpXT1lW29dO2kldD09PTAmJkMoZSl9cmV0dXJuIG4mJihsW29dPWVbb10sYT1hLnNsaWNlKDAsZikpLGF9LGgucHJvdG90eXBlLmJ1ZmZlcj1oLnByb3RvdHlwZS5hcnJheUJ1ZmZlcixoLnByb3RvdHlwZS5kaWdlc3Q9aC5wcm90b3R5cGUuYXJyYXk9ZnVuY3Rpb24oKXt0aGlzLmZpbmFsaXplKCk7Zm9yKHZhciB0PXRoaXMuYmxvY2tDb3VudCxlPXRoaXMucyxyPXRoaXMub3V0cHV0QmxvY2tzLG49dGhpcy5leHRyYUJ5dGVzLG89MCxpPTAsZj1bXSxhLGw7aTxyOyl7Zm9yKG89MDtvPHQmJmk8cjsrK28sKytpKWE9aTw8MixsPWVbb10sZlthXT1sJjI1NSxmW2ErMV09bD4+OCYyNTUsZlthKzJdPWw+PjE2JjI1NSxmW2ErM109bD4+MjQmMjU1O2kldD09PTAmJkMoZSl9cmV0dXJuIG4mJihhPWk8PDIsbD1lW29dLGZbYV09bCYyNTUsbj4xJiYoZlthKzFdPWw+PjgmMjU1KSxuPjImJihmW2ErMl09bD4+MTYmMjU1KSksZn07ZnVuY3Rpb24gSXQodCxlLHIpe2guY2FsbCh0aGlzLHQsZSxyKX1JdC5wcm90b3R5cGU9bmV3IGgsSXQucHJvdG90eXBlLmZpbmFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5jb2RlKHRoaXMub3V0cHV0Qml0cywhMCksaC5wcm90b3R5cGUuZmluYWxpemUuY2FsbCh0aGlzKX07dmFyIEM9ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saSxmLGEsbCx1LGMsTSxSLEksTixELEgsZyx6LEssSixVLGosUCxULFcsbSxWLFksRyxMLFgsWixxLFEsJCxzLHR0LGV0LHJ0LG50LG90LGF0LGl0LGZ0LHV0LGN0LGh0LGx0LHB0LGJ0LHl0LGR0LHZ0LHh0LEF0LGt0LF90LHd0LEJ0LEZ0LFN0LEN0LEV0O2ZvcihuPTA7bjw0ODtuKz0yKW89dFswXV50WzEwXV50WzIwXV50WzMwXV50WzQwXSxpPXRbMV1edFsxMV1edFsyMV1edFszMV1edFs0MV0sZj10WzJdXnRbMTJdXnRbMjJdXnRbMzJdXnRbNDJdLGE9dFszXV50WzEzXV50WzIzXV50WzMzXV50WzQzXSxsPXRbNF1edFsxNF1edFsyNF1edFszNF1edFs0NF0sdT10WzVdXnRbMTVdXnRbMjVdXnRbMzVdXnRbNDVdLGM9dFs2XV50WzE2XV50WzI2XV50WzM2XV50WzQ2XSxNPXRbN11edFsxN11edFsyN11edFszN11edFs0N10sUj10WzhdXnRbMThdXnRbMjhdXnRbMzhdXnRbNDhdLEk9dFs5XV50WzE5XV50WzI5XV50WzM5XV50WzQ5XSxlPVJeKGY8PDF8YT4+PjMxKSxyPUleKGE8PDF8Zj4+PjMxKSx0WzBdXj1lLHRbMV1ePXIsdFsxMF1ePWUsdFsxMV1ePXIsdFsyMF1ePWUsdFsyMV1ePXIsdFszMF1ePWUsdFszMV1ePXIsdFs0MF1ePWUsdFs0MV1ePXIsZT1vXihsPDwxfHU+Pj4zMSkscj1pXih1PDwxfGw+Pj4zMSksdFsyXV49ZSx0WzNdXj1yLHRbMTJdXj1lLHRbMTNdXj1yLHRbMjJdXj1lLHRbMjNdXj1yLHRbMzJdXj1lLHRbMzNdXj1yLHRbNDJdXj1lLHRbNDNdXj1yLGU9Zl4oYzw8MXxNPj4+MzEpLHI9YV4oTTw8MXxjPj4+MzEpLHRbNF1ePWUsdFs1XV49cix0WzE0XV49ZSx0WzE1XV49cix0WzI0XV49ZSx0WzI1XV49cix0WzM0XV49ZSx0WzM1XV49cix0WzQ0XV49ZSx0WzQ1XV49cixlPWxeKFI8PDF8ST4+PjMxKSxyPXVeKEk8PDF8Uj4+PjMxKSx0WzZdXj1lLHRbN11ePXIsdFsxNl1ePWUsdFsxN11ePXIsdFsyNl1ePWUsdFsyN11ePXIsdFszNl1ePWUsdFszN11ePXIsdFs0Nl1ePWUsdFs0N11ePXIsZT1jXihvPDwxfGk+Pj4zMSkscj1NXihpPDwxfG8+Pj4zMSksdFs4XV49ZSx0WzldXj1yLHRbMThdXj1lLHRbMTldXj1yLHRbMjhdXj1lLHRbMjldXj1yLHRbMzhdXj1lLHRbMzldXj1yLHRbNDhdXj1lLHRbNDldXj1yLE49dFswXSxEPXRbMV0sY3Q9dFsxMV08PDR8dFsxMF0+Pj4yOCxodD10WzEwXTw8NHx0WzExXT4+PjI4LFk9dFsyMF08PDN8dFsyMV0+Pj4yOSxHPXRbMjFdPDwzfHRbMjBdPj4+MjksRnQ9dFszMV08PDl8dFszMF0+Pj4yMyxTdD10WzMwXTw8OXx0WzMxXT4+PjIzLGF0PXRbNDBdPDwxOHx0WzQxXT4+PjE0LGl0PXRbNDFdPDwxOHx0WzQwXT4+PjE0LFE9dFsyXTw8MXx0WzNdPj4+MzEsJD10WzNdPDwxfHRbMl0+Pj4zMSxIPXRbMTNdPDwxMnx0WzEyXT4+PjIwLGc9dFsxMl08PDEyfHRbMTNdPj4+MjAsbHQ9dFsyMl08PDEwfHRbMjNdPj4+MjIscHQ9dFsyM108PDEwfHRbMjJdPj4+MjIsTD10WzMzXTw8MTN8dFszMl0+Pj4xOSxYPXRbMzJdPDwxM3x0WzMzXT4+PjE5LEN0PXRbNDJdPDwyfHRbNDNdPj4+MzAsRXQ9dFs0M108PDJ8dFs0Ml0+Pj4zMCx4dD10WzVdPDwzMHx0WzRdPj4+MixBdD10WzRdPDwzMHx0WzVdPj4+MixzPXRbMTRdPDw2fHRbMTVdPj4+MjYsdHQ9dFsxNV08PDZ8dFsxNF0+Pj4yNix6PXRbMjVdPDwxMXx0WzI0XT4+PjIxLEs9dFsyNF08PDExfHRbMjVdPj4+MjEsYnQ9dFszNF08PDE1fHRbMzVdPj4+MTcseXQ9dFszNV08PDE1fHRbMzRdPj4+MTcsWj10WzQ1XTw8Mjl8dFs0NF0+Pj4zLHE9dFs0NF08PDI5fHRbNDVdPj4+MyxUPXRbNl08PDI4fHRbN10+Pj40LFc9dFs3XTw8Mjh8dFs2XT4+PjQsa3Q9dFsxN108PDIzfHRbMTZdPj4+OSxfdD10WzE2XTw8MjN8dFsxN10+Pj45LGV0PXRbMjZdPDwyNXx0WzI3XT4+PjcscnQ9dFsyN108PDI1fHRbMjZdPj4+NyxKPXRbMzZdPDwyMXx0WzM3XT4+PjExLFU9dFszN108PDIxfHRbMzZdPj4+MTEsZHQ9dFs0N108PDI0fHRbNDZdPj4+OCx2dD10WzQ2XTw8MjR8dFs0N10+Pj44LGZ0PXRbOF08PDI3fHRbOV0+Pj41LHV0PXRbOV08PDI3fHRbOF0+Pj41LG09dFsxOF08PDIwfHRbMTldPj4+MTIsVj10WzE5XTw8MjB8dFsxOF0+Pj4xMix3dD10WzI5XTw8N3x0WzI4XT4+PjI1LEJ0PXRbMjhdPDw3fHRbMjldPj4+MjUsbnQ9dFszOF08PDh8dFszOV0+Pj4yNCxvdD10WzM5XTw8OHx0WzM4XT4+PjI0LGo9dFs0OF08PDE0fHRbNDldPj4+MTgsUD10WzQ5XTw8MTR8dFs0OF0+Pj4xOCx0WzBdPU5efkgmeix0WzFdPURefmcmSyx0WzEwXT1UXn5tJlksdFsxMV09V15+ViZHLHRbMjBdPVFefnMmZXQsdFsyMV09JF5+dHQmcnQsdFszMF09ZnRefmN0Jmx0LHRbMzFdPXV0Xn5odCZwdCx0WzQwXT14dF5+a3Qmd3QsdFs0MV09QXRefl90JkJ0LHRbMl09SF5+eiZKLHRbM109Z15+SyZVLHRbMTJdPW1eflkmTCx0WzEzXT1WXn5HJlgsdFsyMl09c15+ZXQmbnQsdFsyM109dHRefnJ0Jm90LHRbMzJdPWN0Xn5sdCZidCx0WzMzXT1odF5+cHQmeXQsdFs0Ml09a3Refnd0JkZ0LHRbNDNdPV90Xn5CdCZTdCx0WzRdPXpefkomaix0WzVdPUteflUmUCx0WzE0XT1ZXn5MJlosdFsxNV09R15+WCZxLHRbMjRdPWV0Xn5udCZhdCx0WzI1XT1ydF5+b3QmaXQsdFszNF09bHRefmJ0JmR0LHRbMzVdPXB0Xn55dCZ2dCx0WzQ0XT13dF5+RnQmQ3QsdFs0NV09QnReflN0JkV0LHRbNl09Sl5+aiZOLHRbN109VV5+UCZELHRbMTZdPUxeflomVCx0WzE3XT1YXn5xJlcsdFsyNl09bnRefmF0JlEsdFsyN109b3Refml0JiQsdFszNl09YnRefmR0JmZ0LHRbMzddPXl0Xn52dCZ1dCx0WzQ2XT1GdF5+Q3QmeHQsdFs0N109U3RefkV0JkF0LHRbOF09al5+TiZILHRbOV09UF5+RCZnLHRbMThdPVpeflQmbSx0WzE5XT1xXn5XJlYsdFsyOF09YXReflEmcyx0WzI5XT1pdF5+JCZ0dCx0WzM4XT1kdF5+ZnQmY3QsdFszOV09dnRefnV0Jmh0LHRbNDhdPUN0Xn54dCZrdCx0WzQ5XT1FdF5+QXQmX3QsdFswXV49SHRbbl0sdFsxXV49SHRbbisxXX07aWYoTHQpT3QuZXhwb3J0cz1BO2Vsc2V7Zm9yKGs9MDtrPEYubGVuZ3RoOysraylkW0Zba11dPUFbRltrXV07WHQmJmRlZmluZShmdW5jdGlvbigpe3JldHVybiBBfSl9fSkoKX0pO3ZhciBOdD11ZShZdCgpKSxsZT1OdC5kZWZhdWx0Pz9OdDtleHBvcnR7bGUgYXMgZGVmYXVsdH07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpqcy1zaGEzL3NyYy9zaGEzLmpzOgogICgqKgogICAqIFtqcy1zaGEzXXtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZW1uMTc4L2pzLXNoYTN9CiAgICoKICAgKiBAdmVyc2lvbiAwLjguMAogICAqIEBhdXRob3IgQ2hlbiwgWWktQ3l1YW4gW2VtbjE3OEBnbWFpbC5jb21dCiAgICogQGNvcHlyaWdodCBDaGVuLCBZaS1DeXVhbiAyMDE1LTIwMTgKICAgKiBAbGljZW5zZSBNSVQKICAgKikKKi8KLy8jIHNvdXJjZU1hcHBpbmdVUkw9anMtc2hhMy5tanMubWFw"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/logger@5.8.0/es2022/logger.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.967Z","timestamp":1785138633967,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/logger@5.8.0/es2022/logger.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/logger@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16520\r\ncf-ray: a21a0dce4c4c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4829,"size_decoded":2739,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (4750)","md5":"d4255a85718f9f8815e3dcb28001df6b","sha1":"eb94d54ec1d80090a2e89656e601a350bfe10d21","sha256":"864fd14189791688bbd800ec9920ec4c0b131829905a62f815e0bf3e4ed70f65","sha512":"c05cd2fcd6aad301a474e82a1566aeba251c8ca4086d639735d0ccd00c39c9e4feea730d5705ae11bc9cd027e4c263657ad130ca12f8c7f9509df94d1cfaf789","ssdeep":"96:9GqjhsVgYxiubsZGVY+12cEebNGMOlXAhUpMbg+CS1S3MHyHnm+LvwsvwOqOwQE/:ktH2czUnwH51S3plg","tlshash":"1fa1b812f57317f726682aaee4240151a3f05534b7ac6d38220efe8a11f1d424dabb70","first_seen":"2025-07-08T23:56:54.783825Z","last_seen":"2026-07-27T07:51:47.19314Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvbG9nZ2VyQDUuOC4wICovCnZhciBUPSJsb2dnZXIvNS44LjAiO3ZhciB1PSExLFU9ITEsZj17ZGVidWc6MSxkZWZhdWx0OjIsaW5mbzoyLHdhcm5pbmc6MyxlcnJvcjo0LG9mZjo1fSxPPWYuZGVmYXVsdCxjPW51bGw7ZnVuY3Rpb24gZygpe3RyeXtsZXQgZT1bXTtpZihbIk5GRCIsIk5GQyIsIk5GS0QiLCJORktDIl0uZm9yRWFjaChyPT57dHJ5e2lmKCJ0ZXN0Ii5ub3JtYWxpemUocikhPT0idGVzdCIpdGhyb3cgbmV3IEVycm9yKCJiYWQgbm9ybWFsaXplIil9Y2F0Y2h7ZS5wdXNoKHIpfX0pLGUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigibWlzc2luZyAiK2Uuam9pbigiLCAiKSk7aWYoIlx4RTkiLm5vcm1hbGl6ZSgiTkZEIikhPT0iZVx1MDMwMSIpdGhyb3cgbmV3IEVycm9yKCJicm9rZW4gaW1wbGVtZW50YXRpb24iKX1jYXRjaChlKXtyZXR1cm4gZS5tZXNzYWdlfXJldHVybiBudWxsfXZhciBBPWcoKSxoOyhmdW5jdGlvbihlKXtlLkRFQlVHPSJERUJVRyIsZS5JTkZPPSJJTkZPIixlLldBUk5JTkc9IldBUk5JTkciLGUuRVJST1I9IkVSUk9SIixlLk9GRj0iT0ZGIn0pKGh8fChoPXt9KSk7dmFyIHM7KGZ1bmN0aW9uKGUpe2UuVU5LTk9XTl9FUlJPUj0iVU5LTk9XTl9FUlJPUiIsZS5OT1RfSU1QTEVNRU5URUQ9Ik5PVF9JTVBMRU1FTlRFRCIsZS5VTlNVUFBPUlRFRF9PUEVSQVRJT049IlVOU1VQUE9SVEVEX09QRVJBVElPTiIsZS5ORVRXT1JLX0VSUk9SPSJORVRXT1JLX0VSUk9SIixlLlNFUlZFUl9FUlJPUj0iU0VSVkVSX0VSUk9SIixlLlRJTUVPVVQ9IlRJTUVPVVQiLGUuQlVGRkVSX09WRVJSVU49IkJVRkZFUl9PVkVSUlVOIixlLk5VTUVSSUNfRkFVTFQ9Ik5VTUVSSUNfRkFVTFQiLGUuTUlTU0lOR19ORVc9Ik1JU1NJTkdfTkVXIixlLklOVkFMSURfQVJHVU1FTlQ9IklOVkFMSURfQVJHVU1FTlQiLGUuTUlTU0lOR19BUkdVTUVOVD0iTUlTU0lOR19BUkdVTUVOVCIsZS5VTkVYUEVDVEVEX0FSR1VNRU5UPSJVTkVYUEVDVEVEX0FSR1VNRU5UIixlLkNBTExfRVhDRVBUSU9OPSJDQUxMX0VYQ0VQVElPTiIsZS5JTlNVRkZJQ0lFTlRfRlVORFM9IklOU1VGRklDSUVOVF9GVU5EUyIsZS5OT05DRV9FWFBJUkVEPSJOT05DRV9FWFBJUkVEIixlLlJFUExBQ0VNRU5UX1VOREVSUFJJQ0VEPSJSRVBMQUNFTUVOVF9VTkRFUlBSSUNFRCIsZS5VTlBSRURJQ1RBQkxFX0dBU19MSU1JVD0iVU5QUkVESUNUQUJMRV9HQVNfTElNSVQiLGUuVFJBTlNBQ1RJT05fUkVQTEFDRUQ9IlRSQU5TQUNUSU9OX1JFUExBQ0VEIixlLkFDVElPTl9SRUpFQ1RFRD0iQUNUSU9OX1JFSkVDVEVEIn0pKHN8fChzPXt9KSk7dmFyIF89IjAxMjM0NTY3ODlhYmNkZWYiLEk9Y2xhc3MgZXtjb25zdHJ1Y3RvcihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywidmVyc2lvbiIse2VudW1lcmFibGU6ITAsdmFsdWU6cix3cml0YWJsZTohMX0pfV9sb2cocix0KXtsZXQgbj1yLnRvTG93ZXJDYXNlKCk7ZltuXT09bnVsbCYmdGhpcy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgbG9nIGxldmVsIG5hbWUiLCJsb2dMZXZlbCIsciksIShPPmZbbl0pJiZjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLHQpfWRlYnVnKC4uLnIpe3RoaXMuX2xvZyhlLmxldmVscy5ERUJVRyxyKX1pbmZvKC4uLnIpe3RoaXMuX2xvZyhlLmxldmVscy5JTkZPLHIpfXdhcm4oLi4ucil7dGhpcy5fbG9nKGUubGV2ZWxzLldBUk5JTkcscil9bWFrZUVycm9yKHIsdCxuKXtpZihVKXJldHVybiB0aGlzLm1ha2VFcnJvcigiY2Vuc29yZWQgZXJyb3IiLHQse30pO3R8fCh0PWUuZXJyb3JzLlVOS05PV05fRVJST1IpLG58fChuPXt9KTtsZXQgbz1bXTtPYmplY3Qua2V5cyhuKS5mb3JFYWNoKGk9PntsZXQgTj1uW2ldO3RyeXtpZihOIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IGE9IiI7Zm9yKGxldCBSPTA7UjxOLmxlbmd0aDtSKyspYSs9X1tOW1JdPj40XSxhKz1fW05bUl0mMTVdO28ucHVzaChpKyI9VWludDhBcnJheSgweCIrYSsiKSIpfWVsc2Ugby5wdXNoKGkrIj0iK0pTT04uc3RyaW5naWZ5KE4pKX1jYXRjaHtvLnB1c2goaSsiPSIrSlNPTi5zdHJpbmdpZnkobltpXS50b1N0cmluZygpKSl9fSksby5wdXNoKGBjb2RlPSR7dH1gKSxvLnB1c2goYHZlcnNpb249JHt0aGlzLnZlcnNpb259YCk7bGV0IFM9cixFPSIiO3N3aXRjaCh0KXtjYXNlIHMuTlVNRVJJQ19GQVVMVDp7RT0iTlVNRVJJQ19GQVVMVCI7bGV0IGk9cjtzd2l0Y2goaSl7Y2FzZSJvdmVyZmxvdyI6Y2FzZSJ1bmRlcmZsb3ciOmNhc2UiZGl2aXNpb24tYnktemVybyI6RSs9Ii0iK2k7YnJlYWs7Y2FzZSJuZWdhdGl2ZS1wb3dlciI6Y2FzZSJuZWdhdGl2ZS13aWR0aCI6RSs9Ii11bnN1cHBvcnRlZCI7YnJlYWs7Y2FzZSJ1bmJvdW5kLWJpdHdpc2UtcmVzdWx0IjpFKz0iLXVuYm91bmQtcmVzdWx0IjticmVha31icmVha31jYXNlIHMuQ0FMTF9FWENFUFRJT046Y2FzZSBzLklOU1VGRklDSUVOVF9GVU5EUzpjYXNlIHMuTUlTU0lOR19ORVc6Y2FzZSBzLk5PTkNFX0VYUElSRUQ6Y2FzZSBzLlJFUExBQ0VNRU5UX1VOREVSUFJJQ0VEOmNhc2Ugcy5UUkFOU0FDVElPTl9SRVBMQUNFRDpjYXNlIHMuVU5QUkVESUNUQUJMRV9HQVNfTElNSVQ6RT10O2JyZWFrfUUmJihyKz0iIFsgU2VlOiBodHRwczovL2xpbmtzLmV0aGVycy5vcmcvdjUtZXJyb3JzLSIrRSsiIF0iKSxvLmxlbmd0aCYmKHIrPSIgKCIrby5qb2luKCIsICIpKyIpIik7bGV0IGw9bmV3IEVycm9yKHIpO3JldHVybiBsLnJlYXNvbj1TLGwuY29kZT10LE9iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24oaSl7bFtpXT1uW2ldfSksbH10aHJvd0Vycm9yKHIsdCxuKXt0aHJvdyB0aGlzLm1ha2VFcnJvcihyLHQsbil9dGhyb3dBcmd1bWVudEVycm9yKHIsdCxuKXtyZXR1cm4gdGhpcy50aHJvd0Vycm9yKHIsZS5lcnJvcnMuSU5WQUxJRF9BUkdVTUVOVCx7YXJndW1lbnQ6dCx2YWx1ZTpufSl9YXNzZXJ0KHIsdCxuLG8pe3J8fHRoaXMudGhyb3dFcnJvcih0LG4sbyl9YXNzZXJ0QXJndW1lbnQocix0LG4sbyl7cnx8dGhpcy50aHJvd0FyZ3VtZW50RXJyb3IodCxuLG8pfWNoZWNrTm9ybWFsaXplKHIpe3I9PW51bGwmJihyPSJwbGF0Zm9ybSBtaXNzaW5nIFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplIiksQSYmdGhpcy50aHJvd0Vycm9yKCJwbGF0Zm9ybSBtaXNzaW5nIFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplIixlLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se29wZXJhdGlvbjoiU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUiLGZvcm06QX0pfWNoZWNrU2FmZVVpbnQ1MyhyLHQpe3R5cGVvZiByPT0ibnVtYmVyIiYmKHQ9PW51bGwmJih0PSJ2YWx1ZSBub3Qgc2FmZSIpLChyPDB8fHI+PTkwMDcxOTkyNTQ3NDA5OTEpJiZ0aGlzLnRocm93RXJyb3IodCxlLmVycm9ycy5OVU1FUklDX0ZBVUxULHtvcGVyYXRpb246ImNoZWNrU2FmZUludGVnZXIiLGZhdWx0OiJvdXQtb2Ytc2FmZS1yYW5nZSIsdmFsdWU6cn0pLHIlMSYmdGhpcy50aHJvd0Vycm9yKHQsZS5lcnJvcnMuTlVNRVJJQ19GQVVMVCx7b3BlcmF0aW9uOiJjaGVja1NhZmVJbnRlZ2VyIixmYXVsdDoibm9uLWludGVnZXIiLHZhbHVlOnJ9KSl9Y2hlY2tBcmd1bWVudENvdW50KHIsdCxuKXtuP249IjogIituOm49IiIscjx0JiZ0aGlzLnRocm93RXJyb3IoIm1pc3NpbmcgYXJndW1lbnQiK24sZS5lcnJvcnMuTUlTU0lOR19BUkdVTUVOVCx7Y291bnQ6cixleHBlY3RlZENvdW50OnR9KSxyPnQmJnRoaXMudGhyb3dFcnJvcigidG9vIG1hbnkgYXJndW1lbnRzIituLGUuZXJyb3JzLlVORVhQRUNURURfQVJHVU1FTlQse2NvdW50OnIsZXhwZWN0ZWRDb3VudDp0fSl9Y2hlY2tOZXcocix0KXsocj09PU9iamVjdHx8cj09bnVsbCkmJnRoaXMudGhyb3dFcnJvcigibWlzc2luZyBuZXciLGUuZXJyb3JzLk1JU1NJTkdfTkVXLHtuYW1lOnQubmFtZX0pfWNoZWNrQWJzdHJhY3Qocix0KXtyPT09dD90aGlzLnRocm93RXJyb3IoImNhbm5vdCBpbnN0YW50aWF0ZSBhYnN0cmFjdCBjbGFzcyAiK0pTT04uc3RyaW5naWZ5KHQubmFtZSkrIiBkaXJlY3RseTsgdXNlIGEgc3ViLWNsYXNzIixlLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se25hbWU6ci5uYW1lLG9wZXJhdGlvbjoibmV3In0pOihyPT09T2JqZWN0fHxyPT1udWxsKSYmdGhpcy50aHJvd0Vycm9yKCJtaXNzaW5nIG5ldyIsZS5lcnJvcnMuTUlTU0lOR19ORVcse25hbWU6dC5uYW1lfSl9c3RhdGljIGdsb2JhbExvZ2dlcigpe3JldHVybiBjfHwoYz1uZXcgZShUKSksY31zdGF0aWMgc2V0Q2Vuc29yc2hpcChyLHQpe2lmKCFyJiZ0JiZ0aGlzLmdsb2JhbExvZ2dlcigpLnRocm93RXJyb3IoImNhbm5vdCBwZXJtYW5lbnRseSBkaXNhYmxlIGNlbnNvcnNoaXAiLGUuZXJyb3JzLlVOU1VQUE9SVEVEX09QRVJBVElPTix7b3BlcmF0aW9uOiJzZXRDZW5zb3JzaGlwIn0pLHUpe2lmKCFyKXJldHVybjt0aGlzLmdsb2JhbExvZ2dlcigpLnRocm93RXJyb3IoImVycm9yIGNlbnNvcnNoaXAgcGVybWFuZW50IixlLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se29wZXJhdGlvbjoic2V0Q2Vuc29yc2hpcCJ9KX1VPSEhcix1PSEhdH1zdGF0aWMgc2V0TG9nTGV2ZWwocil7bGV0IHQ9ZltyLnRvTG93ZXJDYXNlKCldO2lmKHQ9PW51bGwpe2UuZ2xvYmFsTG9nZ2VyKCkud2FybigiaW52YWxpZCBsb2cgbGV2ZWwgLSAiK3IpO3JldHVybn1PPXR9c3RhdGljIGZyb20ocil7cmV0dXJuIG5ldyBlKHIpfX07SS5lcnJvcnM9cztJLmxldmVscz1oO2V4cG9ydHtzIGFzIEVycm9yQ29kZSxoIGFzIExvZ0xldmVsLEkgYXMgTG9nZ2VyfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9nZ2VyLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/properties@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.701Z","timestamp":1785138633701,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/properties@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/properties@5.8.0/es2022/properties.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/properties@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccac03569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":173,"size_decoded":680,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"62eb72ae05a6dfa1fdbbce9d357be001","sha1":"b449c92eb18513a4406a3e6f60d5a0a95125baeb","sha256":"c69923fc5e635154189d960959f7e4c0293342cc563ec183ae7a71aef1c4f3ae","sha512":"cd5e97e89ff47608fc251c618d101b3d36ce04a9d81eb6f707f7a487eea201b6e6a4e9995d882319a8991c42f3d931ba67851e3ba2e77fe79fb7f5b3c849ac44","ssdeep":"","tlshash":"ebc01212d015d5dc539a0ebc4138a63ded765498c150a0a7e595c722a1c210564106a7","first_seen":"2025-07-08T23:56:54.576616Z","last_seen":"2026-07-27T07:51:47.141556Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvcHJvcGVydGllc0A1LjguMCAqLwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQGV0aGVyc3Byb2plY3QvcHJvcGVydGllc0A1LjguMC9lczIwMjIvcHJvcGVydGllcy5tanMiOwo="}},"time_used":119,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":119,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/random@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.750Z","timestamp":1785138633750,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/random@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/random@1.0.2/es2022/random.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/random@1.0.2/lib/random.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccfc19569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":267,"size_decoded":675,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"53c9da7e36519e4ae48b098f99d24250","sha1":"9c8d2642a80682ee3f221eafa91ba7fb2e45f4ed","sha256":"d37c3dc0b9b0445dba3f8d6452dd63741f2ce763c03ae82a1fdb7afdbd7cf1d0","sha512":"78dd29a40b68a8c8a01a6e36b165eff008e4afac25418a8bf195946ab74bb6e54bac8cd93d7e99340851c1a7b450d72a612f1c7e44c252faa0765dd302416ec7","ssdeep":"","tlshash":"23d05b2152cfb7ec2390bce4d2e5f23457711144e4f20c6d3456c723702388065237d2","first_seen":"2025-11-22T14:57:24.12302Z","last_seen":"2026-08-03T06:19:48.317181Z","times_seen":108,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9yYW5kb21AMS4wLjIgKi8KaW1wb3J0ICIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9yYW5kb21AMS4wLjIvZXMyMDIyL3JhbmRvbS5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0BzdGFibGVsaWIvcmFuZG9tQDEuMC4yL2VzMjAyMi9yYW5kb20ubWpzIjsK"}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/rlp@5.8.0/es2022/rlp.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.973Z","timestamp":1785138633973,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/rlp@5.8.0/es2022/rlp.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/rlp@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16518\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dce5c51569f-OSL\r\ncontent-length: 993\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2179,"size_decoded":1445,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2106)","md5":"3465a6cf247deb4bc047ac9202bc4d7a","sha1":"cce7c6de993a9677bf395fbecad278ee74b033ef","sha256":"bf5cb430c4a6f1a6e741df98ca2456db455b919faa20aa74fbba69a2767aa080","sha512":"594903f64205c3e68163a4be0f16fbd4d6f9a79c13e414ba10e566d653fcdfec47051590b7561c4221ff0ca70c0f3e32cc92371f73c3928f001a0b5174cdf94e","ssdeep":"","tlshash":"0b414041af92a13fe3ca4499943d591cf2b978f413c7b64ae4ceb02a3060a24d5edf60","first_seen":"2025-07-08T23:56:54.683214Z","last_seen":"2026-07-27T07:51:47.218366Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvcmxwQDUuOC4wICovCmltcG9ydHthcnJheWlmeSBhcyBSLGhleGxpZnkgYXMgYyxpc0J5dGVzTGlrZSBhcyBtfWZyb20iL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7TG9nZ2VyIGFzIGl9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjt2YXIgcz0icmxwLzUuOC4wIjt2YXIgaD1uZXcgaShzKTtmdW5jdGlvbiB1KG4pe2xldCByPVtdO2Zvcig7bjspci51bnNoaWZ0KG4mMjU1KSxuPj49ODtyZXR1cm4gcn1mdW5jdGlvbiBnKG4scix0KXtsZXQgZT0wO2ZvcihsZXQgbz0wO288dDtvKyspZT1lKjI1NituW3Irb107cmV0dXJuIGV9ZnVuY3Rpb24geChuKXtpZihBcnJheS5pc0FycmF5KG4pKXtsZXQgZT1bXTtpZihuLmZvckVhY2goZnVuY3Rpb24obCl7ZT1lLmNvbmNhdCh4KGwpKX0pLGUubGVuZ3RoPD01NSlyZXR1cm4gZS51bnNoaWZ0KDE5MitlLmxlbmd0aCksZTtsZXQgbz11KGUubGVuZ3RoKTtyZXR1cm4gby51bnNoaWZ0KDI0NytvLmxlbmd0aCksby5jb25jYXQoZSl9bShuKXx8aC50aHJvd0FyZ3VtZW50RXJyb3IoIlJMUCBvYmplY3QgbXVzdCBiZSBCeXRlc0xpa2UiLCJvYmplY3QiLG4pO2xldCByPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFIobikpO2lmKHIubGVuZ3RoPT09MSYmclswXTw9MTI3KXJldHVybiByO2lmKHIubGVuZ3RoPD01NSlyZXR1cm4gci51bnNoaWZ0KDEyOCtyLmxlbmd0aCkscjtsZXQgdD11KHIubGVuZ3RoKTtyZXR1cm4gdC51bnNoaWZ0KDE4Myt0Lmxlbmd0aCksdC5jb25jYXQocil9ZnVuY3Rpb24gXyhuKXtyZXR1cm4gYyh4KG4pKX1mdW5jdGlvbiBFKG4scix0LGUpe2xldCBvPVtdO2Zvcig7dDxyKzErZTspe2xldCBsPXkobix0KTtvLnB1c2gobC5yZXN1bHQpLHQrPWwuY29uc3VtZWQsdD5yKzErZSYmaC50aHJvd0Vycm9yKCJjaGlsZCBkYXRhIHRvbyBzaG9ydCIsaS5lcnJvcnMuQlVGRkVSX09WRVJSVU4se30pfXJldHVybntjb25zdW1lZDoxK2UscmVzdWx0Om99fWZ1bmN0aW9uIHkobixyKXtpZihuLmxlbmd0aD09PTAmJmgudGhyb3dFcnJvcigiZGF0YSB0b28gc2hvcnQiLGkuZXJyb3JzLkJVRkZFUl9PVkVSUlVOLHt9KSxuW3JdPj0yNDgpe2xldCB0PW5bcl0tMjQ3O3IrMSt0Pm4ubGVuZ3RoJiZoLnRocm93RXJyb3IoImRhdGEgc2hvcnQgc2VnbWVudCB0b28gc2hvcnQiLGkuZXJyb3JzLkJVRkZFUl9PVkVSUlVOLHt9KTtsZXQgZT1nKG4scisxLHQpO3JldHVybiByKzErdCtlPm4ubGVuZ3RoJiZoLnRocm93RXJyb3IoImRhdGEgbG9uZyBzZWdtZW50IHRvbyBzaG9ydCIsaS5lcnJvcnMuQlVGRkVSX09WRVJSVU4se30pLEUobixyLHIrMSt0LHQrZSl9ZWxzZSBpZihuW3JdPj0xOTIpe2xldCB0PW5bcl0tMTkyO3JldHVybiByKzErdD5uLmxlbmd0aCYmaC50aHJvd0Vycm9yKCJkYXRhIGFycmF5IHRvbyBzaG9ydCIsaS5lcnJvcnMuQlVGRkVSX09WRVJSVU4se30pLEUobixyLHIrMSx0KX1lbHNlIGlmKG5bcl0+PTE4NCl7bGV0IHQ9bltyXS0xODM7cisxK3Q+bi5sZW5ndGgmJmgudGhyb3dFcnJvcigiZGF0YSBhcnJheSB0b28gc2hvcnQiLGkuZXJyb3JzLkJVRkZFUl9PVkVSUlVOLHt9KTtsZXQgZT1nKG4scisxLHQpO3IrMSt0K2U+bi5sZW5ndGgmJmgudGhyb3dFcnJvcigiZGF0YSBhcnJheSB0b28gc2hvcnQiLGkuZXJyb3JzLkJVRkZFUl9PVkVSUlVOLHt9KTtsZXQgbz1jKG4uc2xpY2UocisxK3QscisxK3QrZSkpO3JldHVybntjb25zdW1lZDoxK3QrZSxyZXN1bHQ6b319ZWxzZSBpZihuW3JdPj0xMjgpe2xldCB0PW5bcl0tMTI4O3IrMSt0Pm4ubGVuZ3RoJiZoLnRocm93RXJyb3IoImRhdGEgdG9vIHNob3J0IixpLmVycm9ycy5CVUZGRVJfT1ZFUlJVTix7fSk7bGV0IGU9YyhuLnNsaWNlKHIrMSxyKzErdCkpO3JldHVybntjb25zdW1lZDoxK3QscmVzdWx0OmV9fXJldHVybntjb25zdW1lZDoxLHJlc3VsdDpjKG5bcl0pfX1mdW5jdGlvbiBkKG4pe2xldCByPVIobiksdD15KHIsMCk7cmV0dXJuIHQuY29uc3VtZWQhPT1yLmxlbmd0aCYmaC50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgcmxwIGRhdGEiLCJkYXRhIixuKSx0LnJlc3VsdH1leHBvcnR7ZCBhcyBkZWNvZGUsXyBhcyBlbmNvZGV9OwovLyMgc291cmNlTWFwcGluZ1VSTD1ybHAubWpzLm1hcA=="}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":15,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/poly1305@1.0.1/es2022/poly1305.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.979Z","timestamp":1785138633979,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/poly1305@1.0.1/es2022/poly1305.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/poly1305@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16519\r\ncf-ray: a21a0dce5c52569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":7211,"size_decoded":3838,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6746)","md5":"6785af86be7eee5095abfb12d3491606","sha1":"8cdfbc029f6cf559f65243dd950b4f4933a9c7b3","sha256":"4a0c4a68f3e17a90212c07612a2666e5ccd1533272b9cc0997bd215867ebcb22","sha512":"af1bcb7a3331bcf90961fdf00ad0e8e7128b3d34ce50461dccf313b153000a59e46cc7b06626bbe05c1478e64d9f246384e3474e1c4b75030c12b2019ef6b2ab","ssdeep":"192:UFBfdxpM6KnsrZP17JzMPhFvDhnxDTjd4IaHM0vN:ePpRKsrZP17JGFRxXjd4IaHM6N","tlshash":"ede19422114d40110b728781483fad5fb139797c02769d2eb0edefde629e6d93eb46b8","first_seen":"2025-11-22T14:57:23.769868Z","last_seen":"2026-07-27T07:51:47.263524Z","times_seen":108,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9wb2x5MTMwNUAxLjAuMSAqLwppbXBvcnQqYXMgX18wJCBmcm9tIi9Ac3RhYmxlbGliL2NvbnN0YW50LXRpbWVAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIkBzdGFibGVsaWIvY29uc3RhbnQtdGltZSI6cmV0dXJuIGMoX18wJCk7Y2FzZSJAc3RhYmxlbGliL3dpcGUiOnJldHVybiBjKF9fMSQpO2RlZmF1bHQ6Y29uc29sZS5lcnJvcignbW9kdWxlICInK24rJyIgbm90IGZvdW5kJyk7cmV0dXJuIG51bGw7fX07CnZhciBjPU9iamVjdC5jcmVhdGU7dmFyIFo9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGhoPU9iamVjdC5nZXRQcm90b3R5cGVPZixmaD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciAkPShlPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KGgsZik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTpoKVtmXX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytlKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciB0aD0oZSxoKT0+KCk9PihofHxlKChoPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxoKSxoLmV4cG9ydHMpO3ZhciBpaD0oZSxoLGYscyk9PntpZihoJiZ0eXBlb2YgaD09Im9iamVjdCJ8fHR5cGVvZiBoPT0iZnVuY3Rpb24iKWZvcihsZXQgXyBvZiBkKGgpKSFmaC5jYWxsKGUsXykmJl8hPT1mJiZaKGUsXyx7Z2V0OigpPT5oW19dLGVudW1lcmFibGU6IShzPW0oaCxfKSl8fHMuZW51bWVyYWJsZX0pO3JldHVybiBlfTt2YXIgX2g9KGUsaCxmKT0+KGY9ZSE9bnVsbD9jKGhoKGUpKTp7fSxpaChofHwhZXx8IWUuX19lc01vZHVsZT9aKGYsImRlZmF1bHQiLHt2YWx1ZTplLGVudW1lcmFibGU6ITB9KTpmLGUpKTt2YXIgaz10aChCPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShCLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcmg9JCgiQHN0YWJsZWxpYi9jb25zdGFudC10aW1lIiksQz0kKCJAc3RhYmxlbGliL3dpcGUiKTtCLkRJR0VTVF9MRU5HVEg9MTY7dmFyIHk9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShoKXt0aGlzLmRpZ2VzdExlbmd0aD1CLkRJR0VTVF9MRU5HVEgsdGhpcy5fYnVmZmVyPW5ldyBVaW50OEFycmF5KDE2KSx0aGlzLl9yPW5ldyBVaW50MTZBcnJheSgxMCksdGhpcy5faD1uZXcgVWludDE2QXJyYXkoMTApLHRoaXMuX3BhZD1uZXcgVWludDE2QXJyYXkoOCksdGhpcy5fbGVmdG92ZXI9MCx0aGlzLl9maW49MCx0aGlzLl9maW5pc2hlZD0hMTt2YXIgZj1oWzBdfGhbMV08PDg7dGhpcy5fclswXT1mJjgxOTE7dmFyIHM9aFsyXXxoWzNdPDw4O3RoaXMuX3JbMV09KGY+Pj4xM3xzPDwzKSY4MTkxO3ZhciBfPWhbNF18aFs1XTw8ODt0aGlzLl9yWzJdPShzPj4+MTB8Xzw8NikmNzkzOTt2YXIgcj1oWzZdfGhbN108PDg7dGhpcy5fclszXT0oXz4+Pjd8cjw8OSkmODE5MTt2YXIgbj1oWzhdfGhbOV08PDg7dGhpcy5fcls0XT0ocj4+PjR8bjw8MTIpJjI1NSx0aGlzLl9yWzVdPW4+Pj4xJjgxOTA7dmFyIHQ9aFsxMF18aFsxMV08PDg7dGhpcy5fcls2XT0obj4+PjE0fHQ8PDIpJjgxOTE7dmFyIHg9aFsxMl18aFsxM108PDg7dGhpcy5fcls3XT0odD4+PjExfHg8PDUpJjgwNjU7dmFyIGE9aFsxNF18aFsxNV08PDg7dGhpcy5fcls4XT0oeD4+Pjh8YTw8OCkmODE5MSx0aGlzLl9yWzldPWE+Pj41JjEyNyx0aGlzLl9wYWRbMF09aFsxNl18aFsxN108PDgsdGhpcy5fcGFkWzFdPWhbMThdfGhbMTldPDw4LHRoaXMuX3BhZFsyXT1oWzIwXXxoWzIxXTw8OCx0aGlzLl9wYWRbM109aFsyMl18aFsyM108PDgsdGhpcy5fcGFkWzRdPWhbMjRdfGhbMjVdPDw4LHRoaXMuX3BhZFs1XT1oWzI2XXxoWzI3XTw8OCx0aGlzLl9wYWRbNl09aFsyOF18aFsyOV08PDgsdGhpcy5fcGFkWzddPWhbMzBdfGhbMzFdPDw4fXJldHVybiBlLnByb3RvdHlwZS5fYmxvY2tzPWZ1bmN0aW9uKGgsZixzKXtmb3IodmFyIF89dGhpcy5fZmluPzA6MjA0OCxyPXRoaXMuX2hbMF0sbj10aGlzLl9oWzFdLHQ9dGhpcy5faFsyXSx4PXRoaXMuX2hbM10sYT10aGlzLl9oWzRdLEE9dGhpcy5faFs1XSxxPXRoaXMuX2hbNl0sTD10aGlzLl9oWzddLFA9dGhpcy5faFs4XSxVPXRoaXMuX2hbOV0sRD10aGlzLl9yWzBdLEg9dGhpcy5fclsxXSxJPXRoaXMuX3JbMl0sTj10aGlzLl9yWzNdLFM9dGhpcy5fcls0XSxqPXRoaXMuX3JbNV0sTT10aGlzLl9yWzZdLHA9dGhpcy5fcls3XSxPPXRoaXMuX3JbOF0sej10aGlzLl9yWzldO3M+PTE2Oyl7dmFyIEs9aFtmKzBdfGhbZisxXTw8ODtyKz1LJjgxOTE7dmFyIFE9aFtmKzJdfGhbZiszXTw8ODtuKz0oSz4+PjEzfFE8PDMpJjgxOTE7dmFyIFI9aFtmKzRdfGhbZis1XTw8ODt0Kz0oUT4+PjEwfFI8PDYpJjgxOTE7dmFyIFY9aFtmKzZdfGhbZis3XTw8ODt4Kz0oUj4+Pjd8Vjw8OSkmODE5MTt2YXIgSj1oW2YrOF18aFtmKzldPDw4O2ErPShWPj4+NHxKPDwxMikmODE5MSxBKz1KPj4+MSY4MTkxO3ZhciBXPWhbZisxMF18aFtmKzExXTw8ODtxKz0oSj4+PjE0fFc8PDIpJjgxOTE7dmFyIFg9aFtmKzEyXXxoW2YrMTNdPDw4O0wrPShXPj4+MTF8WDw8NSkmODE5MTt2YXIgWT1oW2YrMTRdfGhbZisxNV08PDg7UCs9KFg+Pj44fFk8PDgpJjgxOTEsVSs9WT4+PjV8Xzt2YXIgaT0wLHY9aTt2Kz1yKkQsdis9biooNSp6KSx2Kz10Kig1Kk8pLHYrPXgqKDUqcCksdis9YSooNSpNKSxpPXY+Pj4xMyx2Jj04MTkxLHYrPUEqKDUqaiksdis9cSooNSpTKSx2Kz1MKig1Kk4pLHYrPVAqKDUqSSksdis9VSooNSpIKSxpKz12Pj4+MTMsdiY9ODE5MTt2YXIgdT1pO3UrPXIqSCx1Kz1uKkQsdSs9dCooNSp6KSx1Kz14Kig1Kk8pLHUrPWEqKDUqcCksaT11Pj4+MTMsdSY9ODE5MSx1Kz1BKig1Kk0pLHUrPXEqKDUqaiksdSs9TCooNSpTKSx1Kz1QKig1Kk4pLHUrPVUqKDUqSSksaSs9dT4+PjEzLHUmPTgxOTE7dmFyIGw9aTtsKz1yKkksbCs9bipILGwrPXQqRCxsKz14Kig1KnopLGwrPWEqKDUqTyksaT1sPj4+MTMsbCY9ODE5MSxsKz1BKig1KnApLGwrPXEqKDUqTSksbCs9TCooNSpqKSxsKz1QKig1KlMpLGwrPVUqKDUqTiksaSs9bD4+PjEzLGwmPTgxOTE7dmFyIG89aTtvKz1yKk4sbys9bipJLG8rPXQqSCxvKz14KkQsbys9YSooNSp6KSxpPW8+Pj4xMyxvJj04MTkxLG8rPUEqKDUqTyksbys9cSooNSpwKSxvKz1MKig1Kk0pLG8rPVAqKDUqaiksbys9VSooNSpTKSxpKz1vPj4+MTMsbyY9ODE5MTt2YXIgdz1pO3crPXIqUyx3Kz1uKk4sdys9dCpJLHcrPXgqSCx3Kz1hKkQsaT13Pj4+MTMsdyY9ODE5MSx3Kz1BKig1KnopLHcrPXEqKDUqTyksdys9TCooNSpwKSx3Kz1QKig1Kk0pLHcrPVUqKDUqaiksaSs9dz4+PjEzLHcmPTgxOTE7dmFyIGI9aTtiKz1yKmosYis9bipTLGIrPXQqTixiKz14KkksYis9YSpILGk9Yj4+PjEzLGImPTgxOTEsYis9QSpELGIrPXEqKDUqeiksYis9TCooNSpPKSxiKz1QKig1KnApLGIrPVUqKDUqTSksaSs9Yj4+PjEzLGImPTgxOTE7dmFyIFQ9aTtUKz1yKk0sVCs9bipqLFQrPXQqUyxUKz14Kk4sVCs9YSpJLGk9VD4+PjEzLFQmPTgxOTEsVCs9QSpILFQrPXEqRCxUKz1MKig1KnopLFQrPVAqKDUqTyksVCs9VSooNSpwKSxpKz1UPj4+MTMsVCY9ODE5MTt2YXIgRT1pO0UrPXIqcCxFKz1uKk0sRSs9dCpqLEUrPXgqUyxFKz1hKk4saT1FPj4+MTMsRSY9ODE5MSxFKz1BKkksRSs9cSpILEUrPUwqRCxFKz1QKig1KnopLEUrPVUqKDUqTyksaSs9RT4+PjEzLEUmPTgxOTE7dmFyIEc9aTtHKz1yKk8sRys9bipwLEcrPXQqTSxHKz14KmosRys9YSpTLGk9Rz4+PjEzLEcmPTgxOTEsRys9QSpOLEcrPXEqSSxHKz1MKkgsRys9UCpELEcrPVUqKDUqeiksaSs9Rz4+PjEzLEcmPTgxOTE7dmFyIGc9aTtnKz1yKnosZys9bipPLGcrPXQqcCxnKz14Kk0sZys9YSpqLGk9Zz4+PjEzLGcmPTgxOTEsZys9QSpTLGcrPXEqTixnKz1MKkksZys9UCpILGcrPVUqRCxpKz1nPj4+MTMsZyY9ODE5MSxpPShpPDwyKStpfDAsaT1pK3Z8MCx2PWkmODE5MSxpPWk+Pj4xMyx1Kz1pLHI9dixuPXUsdD1sLHg9byxhPXcsQT1iLHE9VCxMPUUsUD1HLFU9ZyxmKz0xNixzLT0xNn10aGlzLl9oWzBdPXIsdGhpcy5faFsxXT1uLHRoaXMuX2hbMl09dCx0aGlzLl9oWzNdPXgsdGhpcy5faFs0XT1hLHRoaXMuX2hbNV09QSx0aGlzLl9oWzZdPXEsdGhpcy5faFs3XT1MLHRoaXMuX2hbOF09UCx0aGlzLl9oWzldPVV9LGUucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbihoLGYpe2Y9PT12b2lkIDAmJihmPTApO3ZhciBzPW5ldyBVaW50MTZBcnJheSgxMCksXyxyLG4sdDtpZih0aGlzLl9sZWZ0b3Zlcil7Zm9yKHQ9dGhpcy5fbGVmdG92ZXIsdGhpcy5fYnVmZmVyW3QrK109MTt0PDE2O3QrKyl0aGlzLl9idWZmZXJbdF09MDt0aGlzLl9maW49MSx0aGlzLl9ibG9ja3ModGhpcy5fYnVmZmVyLDAsMTYpfWZvcihfPXRoaXMuX2hbMV0+Pj4xMyx0aGlzLl9oWzFdJj04MTkxLHQ9Mjt0PDEwO3QrKyl0aGlzLl9oW3RdKz1fLF89dGhpcy5faFt0XT4+PjEzLHRoaXMuX2hbdF0mPTgxOTE7Zm9yKHRoaXMuX2hbMF0rPV8qNSxfPXRoaXMuX2hbMF0+Pj4xMyx0aGlzLl9oWzBdJj04MTkxLHRoaXMuX2hbMV0rPV8sXz10aGlzLl9oWzFdPj4+MTMsdGhpcy5faFsxXSY9ODE5MSx0aGlzLl9oWzJdKz1fLHNbMF09dGhpcy5faFswXSs1LF89c1swXT4+PjEzLHNbMF0mPTgxOTEsdD0xO3Q8MTA7dCsrKXNbdF09dGhpcy5faFt0XStfLF89c1t0XT4+PjEzLHNbdF0mPTgxOTE7Zm9yKHNbOV0tPTgxOTIscj0oX14xKS0xLHQ9MDt0PDEwO3QrKylzW3RdJj1yO2ZvcihyPX5yLHQ9MDt0PDEwO3QrKyl0aGlzLl9oW3RdPXRoaXMuX2hbdF0mcnxzW3RdO2Zvcih0aGlzLl9oWzBdPSh0aGlzLl9oWzBdfHRoaXMuX2hbMV08PDEzKSY2NTUzNSx0aGlzLl9oWzFdPSh0aGlzLl9oWzFdPj4+M3x0aGlzLl9oWzJdPDwxMCkmNjU1MzUsdGhpcy5faFsyXT0odGhpcy5faFsyXT4+PjZ8dGhpcy5faFszXTw8NykmNjU1MzUsdGhpcy5faFszXT0odGhpcy5faFszXT4+Pjl8dGhpcy5faFs0XTw8NCkmNjU1MzUsdGhpcy5faFs0XT0odGhpcy5faFs0XT4+PjEyfHRoaXMuX2hbNV08PDF8dGhpcy5faFs2XTw8MTQpJjY1NTM1LHRoaXMuX2hbNV09KHRoaXMuX2hbNl0+Pj4yfHRoaXMuX2hbN108PDExKSY2NTUzNSx0aGlzLl9oWzZdPSh0aGlzLl9oWzddPj4+NXx0aGlzLl9oWzhdPDw4KSY2NTUzNSx0aGlzLl9oWzddPSh0aGlzLl9oWzhdPj4+OHx0aGlzLl9oWzldPDw1KSY2NTUzNSxuPXRoaXMuX2hbMF0rdGhpcy5fcGFkWzBdLHRoaXMuX2hbMF09biY2NTUzNSx0PTE7dDw4O3QrKyluPSh0aGlzLl9oW3RdK3RoaXMuX3BhZFt0XXwwKSsobj4+PjE2KXwwLHRoaXMuX2hbdF09biY2NTUzNTtyZXR1cm4gaFtmKzBdPXRoaXMuX2hbMF0+Pj4wLGhbZisxXT10aGlzLl9oWzBdPj4+OCxoW2YrMl09dGhpcy5faFsxXT4+PjAsaFtmKzNdPXRoaXMuX2hbMV0+Pj44LGhbZis0XT10aGlzLl9oWzJdPj4+MCxoW2YrNV09dGhpcy5faFsyXT4+PjgsaFtmKzZdPXRoaXMuX2hbM10+Pj4wLGhbZis3XT10aGlzLl9oWzNdPj4+OCxoW2YrOF09dGhpcy5faFs0XT4+PjAsaFtmKzldPXRoaXMuX2hbNF0+Pj44LGhbZisxMF09dGhpcy5faFs1XT4+PjAsaFtmKzExXT10aGlzLl9oWzVdPj4+OCxoW2YrMTJdPXRoaXMuX2hbNl0+Pj4wLGhbZisxM109dGhpcy5faFs2XT4+PjgsaFtmKzE0XT10aGlzLl9oWzddPj4+MCxoW2YrMTVdPXRoaXMuX2hbN10+Pj44LHRoaXMuX2ZpbmlzaGVkPSEwLHRoaXN9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihoKXt2YXIgZj0wLHM9aC5sZW5ndGgsXztpZih0aGlzLl9sZWZ0b3Zlcil7Xz0xNi10aGlzLl9sZWZ0b3ZlcixfPnMmJihfPXMpO2Zvcih2YXIgcj0wO3I8XztyKyspdGhpcy5fYnVmZmVyW3RoaXMuX2xlZnRvdmVyK3JdPWhbZityXTtpZihzLT1fLGYrPV8sdGhpcy5fbGVmdG92ZXIrPV8sdGhpcy5fbGVmdG92ZXI8MTYpcmV0dXJuIHRoaXM7dGhpcy5fYmxvY2tzKHRoaXMuX2J1ZmZlciwwLDE2KSx0aGlzLl9sZWZ0b3Zlcj0wfWlmKHM+PTE2JiYoXz1zLXMlMTYsdGhpcy5fYmxvY2tzKGgsZixfKSxmKz1fLHMtPV8pLHMpe2Zvcih2YXIgcj0wO3I8cztyKyspdGhpcy5fYnVmZmVyW3RoaXMuX2xlZnRvdmVyK3JdPWhbZityXTt0aGlzLl9sZWZ0b3Zlcis9c31yZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7aWYodGhpcy5fZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJQb2x5MTMwNSB3YXMgZmluaXNoZWQiKTt2YXIgaD1uZXcgVWludDhBcnJheSgxNik7cmV0dXJuIHRoaXMuZmluaXNoKGgpLGh9LGUucHJvdG90eXBlLmNsZWFuPWZ1bmN0aW9uKCl7cmV0dXJuIEMud2lwZSh0aGlzLl9idWZmZXIpLEMud2lwZSh0aGlzLl9yKSxDLndpcGUodGhpcy5faCksQy53aXBlKHRoaXMuX3BhZCksdGhpcy5fbGVmdG92ZXI9MCx0aGlzLl9maW49MCx0aGlzLl9maW5pc2hlZD0hMCx0aGlzfSxlfSkoKTtCLlBvbHkxMzA1PXk7ZnVuY3Rpb24gc2goZSxoKXt2YXIgZj1uZXcgeShlKTtmLnVwZGF0ZShoKTt2YXIgcz1mLmRpZ2VzdCgpO3JldHVybiBmLmNsZWFuKCksc31CLm9uZVRpbWVBdXRoPXNoO2Z1bmN0aW9uIGVoKGUsaCl7cmV0dXJuIGUubGVuZ3RoIT09Qi5ESUdFU1RfTEVOR1RIfHxoLmxlbmd0aCE9PUIuRElHRVNUX0xFTkdUSD8hMTpyaC5lcXVhbChlLGgpfUIuZXF1YWw9ZWh9KTt2YXIgRj1faChrKCkpLHtfX2VzTW9kdWxlOnhoLERJR0VTVF9MRU5HVEg6YWgsUG9seTEzMDU6dWgsb25lVGltZUF1dGg6bGgsZXF1YWw6b2h9PUYsd2g9Ri5kZWZhdWx0Pz9GO2V4cG9ydHthaCBhcyBESUdFU1RfTEVOR1RILHVoIGFzIFBvbHkxMzA1LHhoIGFzIF9fZXNNb2R1bGUsd2ggYXMgZGVmYXVsdCxvaCBhcyBlcXVhbCxsaCBhcyBvbmVUaW1lQXV0aH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXBvbHkxMzA1Lm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hash@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.001Z","timestamp":1785138634001,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/hash@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/hmac@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/hash@1.0.1/es2022/hash.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/hash@1.0.1/lib/hash.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce8c58569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":159,"size_decoded":632,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d2fcf6ba4265bd7269f3b397c126eedf","sha1":"a7cac7a64f9490e04543e17d66fb4395303231bf","sha256":"e70b9cccfdd7abe13c3848c2746063d3595cdefbfa4a5a35c95c379f8fab5e26","sha512":"c39e8f8ef993e508e3e3faefc72a937521f3d4bfb350bfdad386a45946b702ac5e06030b8c81c601708fea15f0dd255067e64541e39052c75abca136490cd26d","ssdeep":"","tlshash":"4fc08c8a02cbba382730a880a3b6f2608391021490bd09ae0229830490026c09031bf7","first_seen":"2025-07-08T23:56:54.796152Z","last_seen":"2026-07-27T07:51:47.203403Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9oYXNoQDEuMC4xICovCmV4cG9ydCAqIGZyb20gIi9Ac3RhYmxlbGliL2hhc2hAMS4wLjEvZXMyMDIyL2hhc2gubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9Ac3RhYmxlbGliL2hhc2hAMS4wLjEvZXMyMDIyL2hhc2gubWpzIjsK"}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/constant-time@1.0.1/es2022/constant-time.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.005Z","timestamp":1785138634005,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/constant-time@1.0.1/es2022/constant-time.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/constant-time@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16519\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dce8c5a569f-OSL\r\ncontent-length: 755\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1166,"size_decoded":1207,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1077)","md5":"54073f46dc49b311e30c4f52d06aa2b5","sha1":"e3b4abf26a15085068525503930ff356a6a85a5f","sha256":"4c17d3d79c47119bde87e7e9932439b3ac581bd5f1f0958c94e85a1891a5e464","sha512":"29be147beda592cd737151bd2fd35f63d6b17997c73e6745e6baacc40b3e3f10bfd795c88004ef4cf5b32764195bc70666605e3d819f5051251bceefa19de61c","ssdeep":"","tlshash":"bd2137a532f0d5b765ae9845c82fb685f3373e78043df4405388c4e2556083390b5f53","first_seen":"2025-07-08T23:56:54.618512Z","last_seen":"2026-07-27T07:51:47.219887Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9jb25zdGFudC10aW1lQDEuMC4xICovCnZhciBmPU9iamVjdC5jcmVhdGU7dmFyIG89T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIHA9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGk9T2JqZWN0LmdldFByb3RvdHlwZU9mLHE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgZD0oZSxyKT0+KCk9PihyfHxlKChyPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxyKSxyLmV4cG9ydHMpO3ZhciBnPShlLHIsdCxsKT0+e2lmKHImJnR5cGVvZiByPT0ib2JqZWN0Inx8dHlwZW9mIHI9PSJmdW5jdGlvbiIpZm9yKGxldCBuIG9mIHAocikpIXEuY2FsbChlLG4pJiZuIT09dCYmbyhlLG4se2dldDooKT0+cltuXSxlbnVtZXJhYmxlOiEobD1tKHIsbikpfHxsLmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIGg9KGUscix0KT0+KHQ9ZSE9bnVsbD9mKGkoZSkpOnt9LGcocnx8IWV8fCFlLl9fZXNNb2R1bGU/byh0LCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6dCxlKSk7dmFyIGE9ZCh1PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiBPKGUscix0KXtyZXR1cm5+KGUtMSkmcnxlLTEmdH11LnNlbGVjdD1PO2Z1bmN0aW9uIF8oZSxyKXtyZXR1cm4oZXwwKS0ocnwwKS0xPj4+MzEmMX11Lmxlc3NPckVxdWFsPV87ZnVuY3Rpb24gYyhlLHIpe2lmKGUubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbD0wO2w8ZS5sZW5ndGg7bCsrKXR8PWVbbF1ecltsXTtyZXR1cm4gMSZ0LTE+Pj44fXUuY29tcGFyZT1jO2Z1bmN0aW9uIHYoZSxyKXtyZXR1cm4gZS5sZW5ndGg9PT0wfHxyLmxlbmd0aD09PTA/ITE6YyhlLHIpIT09MH11LmVxdWFsPXZ9KTt2YXIgcz1oKGEoKSkse19fZXNNb2R1bGU6eCxzZWxlY3Q6TSxsZXNzT3JFcXVhbDp5LGNvbXBhcmU6UCxlcXVhbDprfT1zLHc9cy5kZWZhdWx0Pz9zO2V4cG9ydHt4IGFzIF9fZXNNb2R1bGUsUCBhcyBjb21wYXJlLHcgYXMgZGVmYXVsdCxrIGFzIGVxdWFsLHkgYXMgbGVzc09yRXF1YWwsTSBhcyBzZWxlY3R9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudC10aW1lLm1qcy5tYXA="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/unstorage@1.17.5/es2022/dist/shared/unstorage.zVDD2mZo.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.150Z","timestamp":1785138634150,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /unstorage@1.17.5/es2022/dist/shared/unstorage.zVDD2mZo.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/unstorage@%5E1.9.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 26 Mar 2026 19:36:02 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcf7c74569f-OSL\r\ncontent-length: 1196\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2155,"size_decoded":1649,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1988)","md5":"978c8c124179e465935105afec12c51f","sha1":"574290489524a312797ddfdeeaa3f9a42c489675","sha256":"caf97960b07d22a4e8439e89b6f75950df4726202997d22ab57175a81056df46","sha512":"52982a065f08b6d9bc86595fc731c1866d968516314ea0bc137cae50dbb1a2750d1f8ad7fb487783da95e5bb1741385963d8ded9a7663c5ae2c32aa76a95b8ef","ssdeep":"","tlshash":"df41428f3893b57683a4182990cf080ef1b87a6814df61a0e9a299d13d744bad137f2c","first_seen":"2026-04-06T13:47:42.502214Z","last_seen":"2026-08-08T17:15:51.851161Z","times_seen":101,"resource_available":true,"data":"LyogZXNtLnNoIC0gdW5zdG9yYWdlQDEuMTcuNS9kaXN0L3NoYXJlZC91bnN0b3JhZ2UuelZERDJtWm8gKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwpmdW5jdGlvbiBhKHQpe3JldHVybiF0fHx0eXBlb2YgdC50aGVuIT0iZnVuY3Rpb24iP1Byb21pc2UucmVzb2x2ZSh0KTp0fWZ1bmN0aW9uIGQodCwuLi5lKXt0cnl7cmV0dXJuIGEodCguLi5lKSl9Y2F0Y2gocil7cmV0dXJuIFByb21pc2UucmVqZWN0KHIpfX1mdW5jdGlvbiB5KHQpe2xldCBlPXR5cGVvZiB0O3JldHVybiB0PT09bnVsbHx8ZSE9PSJvYmplY3QiJiZlIT09ImZ1bmN0aW9uIn1mdW5jdGlvbiBnKHQpe2xldCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtyZXR1cm4hZXx8ZS5pc1Byb3RvdHlwZU9mKE9iamVjdCl9ZnVuY3Rpb24gbCh0KXtpZih5KHQpKXJldHVybiBTdHJpbmcodCk7aWYoZyh0KXx8QXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCk7aWYodHlwZW9mIHQudG9KU09OPT0iZnVuY3Rpb24iKXJldHVybiBsKHQudG9KU09OKCkpO3Rocm93IG5ldyBFcnJvcigiW3Vuc3RvcmFnZV0gQ2Fubm90IHN0cmluZ2lmeSB2YWx1ZSEiKX12YXIgdT0iYmFzZTY0OiI7ZnVuY3Rpb24gUCh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6dSttKHQpfWZ1bmN0aW9uIEsodCl7cmV0dXJuIHR5cGVvZiB0IT0ic3RyaW5nInx8IXQuc3RhcnRzV2l0aCh1KT90OnAodC5zbGljZSh1Lmxlbmd0aCkpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIF9fQnVmZmVyJD9fX0J1ZmZlciQuZnJvbSh0LCJiYXNlNjQiKTpVaW50OEFycmF5LmZyb20oZ2xvYmFsVGhpcy5hdG9iKHQpLGU9PmUuY29kZVBvaW50QXQoMCkpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIF9fQnVmZmVyJD9fX0J1ZmZlciQuZnJvbSh0KS50b1N0cmluZygiYmFzZTY0Iik6Z2xvYmFsVGhpcy5idG9hKFN0cmluZy5mcm9tQ29kZVBvaW50KC4uLnQpKX12YXIgaD1bImhhcyIsImhhc0l0ZW0iLCJnZXQiLCJnZXRJdGVtIiwiZ2V0SXRlbVJhdyIsInNldCIsInNldEl0ZW0iLCJzZXRJdGVtUmF3IiwiZGVsIiwicmVtb3ZlIiwicmVtb3ZlSXRlbSIsImdldE1ldGEiLCJzZXRNZXRhIiwicmVtb3ZlTWV0YSIsImdldEtleXMiLCJjbGVhciIsIm1vdW50IiwidW5tb3VudCJdO2Z1bmN0aW9uIE8odCxlKXtpZihlPUkoZSksIWUpcmV0dXJuIHQ7bGV0IHI9ey4uLnR9O2ZvcihsZXQgbiBvZiBoKXJbbl09KG89IiIsLi4uaSk9PnRbbl0oZStvLC4uLmkpO3JldHVybiByLmdldEtleXM9KG49IiIsLi4ubyk9PnQuZ2V0S2V5cyhlK24sLi4ubykudGhlbihpPT5pLm1hcChmPT5mLnNsaWNlKGUubGVuZ3RoKSkpLHIua2V5cz1yLmdldEtleXMsci5nZXRJdGVtcz1hc3luYyhuLG8pPT57bGV0IGk9bi5tYXAocz0+dHlwZW9mIHM9PSJzdHJpbmciP2Urczp7Li4ucyxrZXk6ZStzLmtleX0pO3JldHVybihhd2FpdCB0LmdldEl0ZW1zKGksbykpLm1hcChzPT4oe2tleTpzLmtleS5zbGljZShlLmxlbmd0aCksdmFsdWU6cy52YWx1ZX0pKX0sci5zZXRJdGVtcz1hc3luYyhuLG8pPT57bGV0IGk9bi5tYXAoZj0+KHtrZXk6ZStmLmtleSx2YWx1ZTpmLnZhbHVlLG9wdGlvbnM6Zi5vcHRpb25zfSkpO3JldHVybiB0LnNldEl0ZW1zKGksbyl9LHJ9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdCYmdC5zcGxpdCgiPyIpWzBdPy5yZXBsYWNlKC9bL1xcXS9nLCI6IikucmVwbGFjZSgvOisvZywiOiIpLnJlcGxhY2UoL146fDokL2csIiIpfHwiIn1mdW5jdGlvbiB3KC4uLnQpe3JldHVybiBjKHQuam9pbigiOiIpKX1mdW5jdGlvbiBJKHQpe3JldHVybiB0PWModCksdD90KyI6IjoiIn1mdW5jdGlvbiBCKHQsZSl7aWYoZT09PXZvaWQgMClyZXR1cm4hMDtsZXQgcj0wLG49dC5pbmRleE9mKCI6Iik7Zm9yKDtuPi0xOylyKyssbj10LmluZGV4T2YoIjoiLG4rMSk7cmV0dXJuIHI8PWV9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiBlP3Quc3RhcnRzV2l0aChlKSYmdFt0Lmxlbmd0aC0xXSE9PSIkIjp0W3QubGVuZ3RoLTFdIT09IiQifWV4cG9ydHtjIGFzIGEsZCBhcyBiLFMgYXMgYyxsIGFzIGQsSyBhcyBlLEIgYXMgZix3IGFzIGosSSBhcyBuLE8gYXMgcCxQIGFzIHN9OwovLyMgc291cmNlTWFwcGluZ1VSTD11bnN0b3JhZ2UuelZERDJtWm8ubWpzLm1hcA=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base10.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.202Z","timestamp":1785138634202,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base10.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfcc7c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":211,"size_decoded":555,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"508a2d96d86ecbcc9074ef79cd993544","sha1":"29a00aa064e5bcf7929107733159b08870a5c803","sha256":"07ac037675bfbbf0621e7f8fd3cfeb242d1ab0955d7e965f4f3a2daa1c369b85","sha512":"4214078b0e58d20292d951bd7bcdd32db1abdd95cf317f252b82e41bd5baae49ab90a8e2b62030fdef35f6e77115a25607fbd6958aebea5fdbb5bee093113824","ssdeep":"","tlshash":"92d0c0bec73daf7f4331200cd44a80152618fba6e3800249d022aa29a0541c2fc3be3a","first_seen":"2025-07-08T23:56:54.839845Z","last_seen":"2026-08-08T17:15:51.450402Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2UxMCAqLwppbXBvcnR7YmFzZVggYXMgZX1mcm9tIi4uL2VzbS9zcmMvYmFzZXMvYmFzZS5tanMiO3ZhciBiPWUoe3ByZWZpeDoiOSIsbmFtZToiYmFzZTEwIixhbHBoYWJldDoiMDEyMzQ1Njc4OSJ9KTtleHBvcnR7YiBhcyBiYXNlMTB9OwovLyMgc291cmNlTWFwcGluZ1VSTD1iYXNlMTAubWpzLm1hcA=="}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/async_hooks.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.560Z","timestamp":1785138633560,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /node/async_hooks.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/node/events.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=86400\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\netag: W/\"v137_7\"\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbcbda569f-OSL\r\ncontent-length: 1531\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2938,"size_decoded":1942,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (2937)","md5":"f78e3393d375d2bd75ee22e5bf0f3635","sha1":"2b6d82e3a17d6f4596fb2f6df083fcf498edaa99","sha256":"b7862dbfba8bbbca956f19e4e08280b529e4b27468779775a9093aef8c92dc1d","sha512":"280686efdbef542165cff092b795274efb660689426f8f15523b3478d967cc6bea03a0d7a66400552278a777655231d7e9ad2cba1bb4eb0a45f249e76102258d","ssdeep":"","tlshash":"3b515489a78bf9685b9eb176413a0103e10a0ec89d1c722cf049e9ee695e10c8774fb5","first_seen":"2025-10-29T19:17:04.32262Z","last_seen":"2026-08-13T02:06:35.250667Z","times_seen":705,"resource_available":true,"data":"dmFyIGM9Y2xhc3N7X191bmVudl9fPSEwO19jdXJyZW50U3RvcmU7X2VudGVyU3RvcmU7X2VuYWJsZWQ9ITA7Z2V0U3RvcmUoKXtyZXR1cm4gdGhpcy5fY3VycmVudFN0b3JlPz90aGlzLl9lbnRlclN0b3JlfWRpc2FibGUoKXt0aGlzLl9lbmFibGVkPSExfWVuYWJsZSgpe3RoaXMuX2VuYWJsZWQ9ITB9ZW50ZXJXaXRoKGUpe3RoaXMuX2VudGVyU3RvcmU9ZX1ydW4oZSxyLC4uLnQpe3RoaXMuX2N1cnJlbnRTdG9yZT1lO2xldCBuPXIoLi4udCk7cmV0dXJuIHRoaXMuX2N1cnJlbnRTdG9yZT12b2lkIDAsbn1leGl0KGUsLi4ucil7bGV0IHQ9dGhpcy5fY3VycmVudFN0b3JlO3RoaXMuX2N1cnJlbnRTdG9yZT12b2lkIDA7bGV0IG49ZSguLi5yKTtyZXR1cm4gdGhpcy5fY3VycmVudFN0b3JlPXQsbn1zdGF0aWMgc25hcHNob3QoKXt0aHJvdyBuZXcgRXJyb3IoIlt1bmVudl0gYEFzeW5jTG9jYWxTdG9yYWdlLnNuYXBzaG90YCBpcyBub3QgaW1wbGVtZW50ZWQhIil9fSxTPWdsb2JhbFRoaXMuQXN5bmNMb2NhbFN0b3JhZ2V8fGMsUj1TeW1ib2woImluaXQiKSxhPVN5bWJvbCgiYmVmb3JlIiksbz1TeW1ib2woImFmdGVyIiksaT1TeW1ib2woImRlc3Ryb3kiKSxBPVN5bWJvbCgicHJvbWlzZVJlc29sdmUiKSxUPWNsYXNze19fdW5lbnZfXz0hMDtfZW5hYmxlZD0hMTtfY2FsbGJhY2tzPXt9O2NvbnN0cnVjdG9yKGU9e30pe3RoaXMuX2NhbGxiYWNrcz1lfWVuYWJsZSgpe3JldHVybiB0aGlzLl9lbmFibGVkPSEwLHRoaXN9ZGlzYWJsZSgpe3JldHVybiB0aGlzLl9lbmFibGVkPSExLHRoaXN9Z2V0W1JdKCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcy5pbml0fWdldFthXSgpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYmVmb3JlfWdldFtvXSgpe3JldHVybiB0aGlzLl9jYWxsYmFja3MuYWZ0ZXJ9Z2V0W2ldKCl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcy5kZXN0cm95fWdldFtBXSgpe3JldHVybiB0aGlzLl9jYWxsYmFja3MucHJvbWlzZVJlc29sdmV9fSxQPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVChlKX0scz1mdW5jdGlvbigpe3JldHVybiAwfSx1PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCl9LGw9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sST1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUobnVsbCkse05PTkU6MCxESVJIQU5ETEU6MSxETlNDSEFOTkVMOjIsRUxESElTVE9HUkFNOjMsRklMRUhBTkRMRTo0LEZJTEVIQU5ETEVDTE9TRVJFUTo1LEJMT0JSRUFERVI6NixGU0VWRU5UV1JBUDo3LEZTUkVRQ0FMTEJBQ0s6OCxGU1JFUVBST01JU0U6OSxHRVRBRERSSU5GT1JFUVdSQVA6MTAsR0VUTkFNRUlORk9SRVFXUkFQOjExLEhFQVBTTkFQU0hPVDoxMixIVFRQMlNFU1NJT046MTMsSFRUUDJTVFJFQU06MTQsSFRUUDJQSU5HOjE1LEhUVFAyU0VUVElOR1M6MTYsSFRUUElOQ09NSU5HTUVTU0FHRToxNyxIVFRQQ0xJRU5UUkVRVUVTVDoxOCxKU1NUUkVBTToxOSxKU1VEUFdSQVA6MjAsTUVTU0FHRVBPUlQ6MjEsUElQRUNPTk5FQ1RXUkFQOjIyLFBJUEVTRVJWRVJXUkFQOjIzLFBJUEVXUkFQOjI0LFBST0NFU1NXUkFQOjI1LFBST01JU0U6MjYsUVVFUllXUkFQOjI3LFFVSUNfRU5EUE9JTlQ6MjgsUVVJQ19MT0dTVFJFQU06MjksUVVJQ19QQUNLRVQ6MzAsUVVJQ19TRVNTSU9OOjMxLFFVSUNfU1RSRUFNOjMyLFFVSUNfVURQOjMzLFNIVVRET1dOV1JBUDozNCxTSUdOQUxXUkFQOjM1LFNUQVRXQVRDSEVSOjM2LFNUUkVBTVBJUEU6MzcsVENQQ09OTkVDVFdSQVA6MzgsVENQU0VSVkVSV1JBUDozOSxUQ1BXUkFQOjQwLFRUWVdSQVA6NDEsVURQU0VORFdSQVA6NDIsVURQV1JBUDo0MyxTSUdJTlRXQVRDSERPRzo0NCxXT1JLRVI6NDUsV09SS0VSSEVBUFNOQVBTSE9UOjQ2LFdSSVRFV1JBUDo0NyxaTElCOjQ4LENIRUNLUFJJTUVSRVFVRVNUOjQ5LFBCS0RGMlJFUVVFU1Q6NTAsS0VZUEFJUkdFTlJFUVVFU1Q6NTEsS0VZR0VOUkVRVUVTVDo1MixLRVlFWFBPUlRSRVFVRVNUOjUzLENJUEhFUlJFUVVFU1Q6NTQsREVSSVZFQklUU1JFUVVFU1Q6NTUsSEFTSFJFUVVFU1Q6NTYsUkFORE9NQllURVNSRVFVRVNUOjU3LFJBTkRPTVBSSU1FUkVRVUVTVDo1OCxTQ1JZUFRSRVFVRVNUOjU5LFNJR05SRVFVRVNUOjYwLFRMU1dSQVA6NjEsVkVSSUZZUkVRVUVTVDo2Mn0pLF89MTAwLHk9Y2xhc3N7X191bmVudl9fPSEwO3R5cGU7X2FzeW5jSWQ7X3RyaWdnZXJBc3luY0lkO2NvbnN0cnVjdG9yKGUscj1zKCkpe3RoaXMudHlwZT1lLHRoaXMuX2FzeW5jSWQ9LTEqXysrLHRoaXMuX3RyaWdnZXJBc3luY0lkPXR5cGVvZiByPT0ibnVtYmVyIj9yOnI/LnRyaWdnZXJBc3luY0lkfXN0YXRpYyBiaW5kKGUscix0KXtyZXR1cm4gbmV3IEUocj8/ImFub255bW91cyIpLmJpbmQoZSl9YmluZChlLHIpe2xldCB0PSguLi5uKT0+dGhpcy5ydW5JbkFzeW5jU2NvcGUoZSxyLC4uLm4pO3JldHVybiB0LmFzeW5jUmVzb3VyY2U9dGhpcyx0fXJ1bkluQXN5bmNTY29wZShlLHIsLi4udCl7cmV0dXJuIGUuYXBwbHkocix0KX1lbWl0RGVzdHJveSgpe3JldHVybiB0aGlzfWFzeW5jSWQoKXtyZXR1cm4gdGhpcy5fYXN5bmNJZH10cmlnZ2VyQXN5bmNJZCgpe3JldHVybiB0aGlzLl90cmlnZ2VyQXN5bmNJZH19LEU9Z2xvYmFsVGhpcy5Bc3luY1Jlc291cmNlfHx5LGI9e2FzeW5jV3JhcFByb3ZpZGVyczpJLEFzeW5jTG9jYWxTdG9yYWdlOlMsQXN5bmNSZXNvdXJjZTpFLGNyZWF0ZUhvb2s6UCxleGVjdXRpb25Bc3luY0lkOnMsZXhlY3V0aW9uQXN5bmNSZXNvdXJjZTp1LHRyaWdnZXJBc3luY0lkOmx9O2V4cG9ydHtTIGFzIEFzeW5jTG9jYWxTdG9yYWdlLEUgYXMgQXN5bmNSZXNvdXJjZSxJIGFzIGFzeW5jV3JhcFByb3ZpZGVycyxQIGFzIGNyZWF0ZUhvb2ssYiBhcyBkZWZhdWx0LHMgYXMgZXhlY3V0aW9uQXN5bmNJZCx1IGFzIGV4ZWN1dGlvbkFzeW5jUmVzb3VyY2UsbCBhcyB0cmlnZ2VyQXN5bmNJZH07Cg=="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/detect-browser@5.3.0/es2022/detect-browser.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.566Z","timestamp":1785138633566,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /detect-browser@5.3.0/es2022/detect-browser.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:17:07 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbcbdd569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4570,"size_decoded":2648,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (4446)","md5":"1895e2a0be781d1fe0a9b01711e73688","sha1":"77ac3437c57b50b66421a188761cff9c68c16fb1","sha256":"5f9d1aca02225f52f67dc3a0d102758679c46fb0fa66d00c480f16591ca27a82","sha512":"7ca78b26f36ae6280a945f476af6b919c48a761fcfe9246838e5c678433405f7472ca24fd5d60213f0e519d67d0946673c2c21661bd5bc51694d3407643e62f4","ssdeep":"96:JjwXNLDpOsfn7cvgUWUJzHDa7kFAmP9jNvLCVlIC+USu:J8dIqn7vzU5mIFT9lQlIj4","tlshash":"0b91d70c71a36137d1be2a25aa9f1157a93c30008bce9999f541eb97fcd343a6053df8","first_seen":"2025-11-22T14:57:24.01646Z","last_seen":"2026-08-08T17:15:52.059434Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gZGV0ZWN0LWJyb3dzZXJANS4zLjAgKi8KaW1wb3J0IF9fUHJvY2VzcyQgZnJvbSAiL25vZGUvcHJvY2Vzcy5tanMiOwp2YXIgZD1mdW5jdGlvbihlLHIsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciBvPTAsaT1yLmxlbmd0aCx0O288aTtvKyspKHR8fCEobyBpbiByKSkmJih0fHwodD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyLDAsbykpLHRbb109cltvXSk7cmV0dXJuIGUuY29uY2F0KHR8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIpKX0scD0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHIsbixvKXt0aGlzLm5hbWU9cix0aGlzLnZlcnNpb249bix0aGlzLm9zPW8sdGhpcy50eXBlPSJicm93c2VyIn1yZXR1cm4gZX0pKCk7dmFyIGg9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShyKXt0aGlzLnZlcnNpb249cix0aGlzLnR5cGU9Im5vZGUiLHRoaXMubmFtZT0ibm9kZSIsdGhpcy5vcz1fX1Byb2Nlc3MkLnBsYXRmb3JtfXJldHVybiBlfSkoKTt2YXIgdj0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHIsbixvLGkpe3RoaXMubmFtZT1yLHRoaXMudmVyc2lvbj1uLHRoaXMub3M9byx0aGlzLmJvdD1pLHRoaXMudHlwZT0iYm90LWRldmljZSJ9cmV0dXJuIGV9KSgpO3ZhciB3PShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLnR5cGU9ImJvdCIsdGhpcy5ib3Q9ITAsdGhpcy5uYW1lPSJib3QiLHRoaXMudmVyc2lvbj1udWxsLHRoaXMub3M9bnVsbH1yZXR1cm4gZX0pKCk7dmFyIFM9KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMudHlwZT0icmVhY3QtbmF0aXZlIix0aGlzLm5hbWU9InJlYWN0LW5hdGl2ZSIsdGhpcy52ZXJzaW9uPW51bGwsdGhpcy5vcz1udWxsfXJldHVybiBlfSkoKTt2YXIgVz0vYWxleGF8Ym90fGNyYXdsKGVyfGluZyl8ZmFjZWJvb2tleHRlcm5hbGhpdHxmZWVkYnVybmVyfGdvb2dsZSB3ZWIgcHJldmlld3xuYWdpb3N8cG9zdHJhbmt8cGluZ2RvbXxzbHVycHxzcGlkZXJ8eWFob28hfHlhbmRleC8sbT0vKG51aGt8Y3VybHxHb29nbGVib3R8WWFtbXlib3R8T3BlbmJvdHxTbHVycHxNU05Cb3R8QXNrXCBKZWV2ZXNcL1Rlb21hfGlhX2FyY2hpdmVyKS8sdT0zLGI9W1siYW9sIiwvQU9MU2hpZWxkXC8oWzAtOVwuX10rKS9dLFsiZWRnZSIsL0VkZ2VcLyhbMC05XC5fXSspL10sWyJlZGdlLWlvcyIsL0VkZ2lPU1wvKFswLTlcLl9dKykvXSxbInlhbmRleGJyb3dzZXIiLC9ZYUJyb3dzZXJcLyhbMC05XC5fXSspL10sWyJrYWthb3RhbGsiLC9LQUtBT1RBTEtccyhbMC05XC5dKykvXSxbInNhbXN1bmciLC9TYW1zdW5nQnJvd3NlclwvKFswLTlcLl0rKS9dLFsic2lsayIsL1xiU2lsa1wvKFswLTkuXy1dKylcYi9dLFsibWl1aSIsL01pdWlCcm93c2VyXC8oWzAtOVwuXSspJC9dLFsiYmVha2VyIiwvQmVha2VyQnJvd3NlclwvKFswLTlcLl0rKS9dLFsiZWRnZS1jaHJvbWl1bSIsL0VkZ0E/XC8oWzAtOVwuXSspL10sWyJjaHJvbWl1bS13ZWJ2aWV3IiwvKD8hQ2hyb20uKk9QUil3dlwpLipDaHJvbSg/OmV8aXVtKVwvKFswLTlcLl0rKSg6P1xzfCQpL10sWyJjaHJvbWUiLC8oPyFDaHJvbS4qT1BSKUNocm9tKD86ZXxpdW0pXC8oWzAtOVwuXSspKDo/XHN8JCkvXSxbInBoYW50b21qcyIsL1BoYW50b21KU1wvKFswLTlcLl0rKSg6P1xzfCQpL10sWyJjcmlvcyIsL0NyaU9TXC8oWzAtOVwuXSspKDo/XHN8JCkvXSxbImZpcmVmb3giLC9GaXJlZm94XC8oWzAtOVwuXSspKD86XHN8JCkvXSxbImZ4aW9zIiwvRnhpT1NcLyhbMC05XC5dKykvXSxbIm9wZXJhLW1pbmkiLC9PcGVyYSBNaW5pLipWZXJzaW9uXC8oWzAtOVwuXSspL10sWyJvcGVyYSIsL09wZXJhXC8oWzAtOVwuXSspKD86XHN8JCkvXSxbIm9wZXJhIiwvT1BSXC8oWzAtOVwuXSspKDo/XHN8JCkvXSxbInBpZSIsL15NaWNyb3NvZnQgUG9ja2V0IEludGVybmV0IEV4cGxvcmVyXC8oXGQrXC5cZCspJC9dLFsicGllIiwvXk1vemlsbGFcL1xkXC5cZCtcc1woY29tcGF0aWJsZTtccyg/Ok1TUD9JRXxNU0ludGVybmV0IEV4cGxvcmVyKSAoXGQrXC5cZCspOy4qV2luZG93cyBDRS4qXCkkL10sWyJuZXRmcm9udCIsL15Nb3ppbGxhXC9cZFwuXGQrLipOZXRGcm9udFwvKFxkLlxkKS9dLFsiaWUiLC9UcmlkZW50XC83XC4wLipydlw6KFswLTlcLl0rKS4qXCkuKkdlY2tvJC9dLFsiaWUiLC9NU0lFXHMoWzAtOVwuXSspOy4qVHJpZGVudFwvWzQtN10uMC9dLFsiaWUiLC9NU0lFXHMoN1wuMCkvXSxbImJiMTAiLC9CQjEwO1xzVG91Y2guKlZlcnNpb25cLyhbMC05XC5dKykvXSxbImFuZHJvaWQiLC9BbmRyb2lkXHMoWzAtOVwuXSspL10sWyJpb3MiLC9WZXJzaW9uXC8oWzAtOVwuX10rKS4qTW9iaWxlLipTYWZhcmkuKi9dLFsic2FmYXJpIiwvVmVyc2lvblwvKFswLTlcLl9dKykuKlNhZmFyaS9dLFsiZmFjZWJvb2siLC9GQltBU11WXC8oWzAtOVwuXSspL10sWyJpbnN0YWdyYW0iLC9JbnN0YWdyYW1ccyhbMC05XC5dKykvXSxbImlvcy13ZWJ2aWV3IiwvQXBwbGVXZWJLaXRcLyhbMC05XC5dKykuKk1vYmlsZS9dLFsiaW9zLXdlYnZpZXciLC9BcHBsZVdlYktpdFwvKFswLTlcLl0rKS4qR2Vja29cKSQvXSxbImN1cmwiLC9eY3VybFwvKFswLTlcLl0rKSQvXSxbInNlYXJjaGJvdCIsV11dLGM9W1siaU9TIiwvaVAoaG9uZXxvZHxhZCkvXSxbIkFuZHJvaWQgT1MiLC9BbmRyb2lkL10sWyJCbGFja0JlcnJ5IE9TIiwvQmxhY2tCZXJyeXxCQjEwL10sWyJXaW5kb3dzIE1vYmlsZSIsL0lFTW9iaWxlL10sWyJBbWF6b24gT1MiLC9LaW5kbGUvXSxbIldpbmRvd3MgMy4xMSIsL1dpbjE2L10sWyJXaW5kb3dzIDk1IiwvKFdpbmRvd3MgOTUpfChXaW45NSl8KFdpbmRvd3NfOTUpL10sWyJXaW5kb3dzIDk4IiwvKFdpbmRvd3MgOTgpfChXaW45OCkvXSxbIldpbmRvd3MgMjAwMCIsLyhXaW5kb3dzIE5UIDUuMCl8KFdpbmRvd3MgMjAwMCkvXSxbIldpbmRvd3MgWFAiLC8oV2luZG93cyBOVCA1LjEpfChXaW5kb3dzIFhQKS9dLFsiV2luZG93cyBTZXJ2ZXIgMjAwMyIsLyhXaW5kb3dzIE5UIDUuMikvXSxbIldpbmRvd3MgVmlzdGEiLC8oV2luZG93cyBOVCA2LjApL10sWyJXaW5kb3dzIDciLC8oV2luZG93cyBOVCA2LjEpL10sWyJXaW5kb3dzIDgiLC8oV2luZG93cyBOVCA2LjIpL10sWyJXaW5kb3dzIDguMSIsLyhXaW5kb3dzIE5UIDYuMykvXSxbIldpbmRvd3MgMTAiLC8oV2luZG93cyBOVCAxMC4wKS9dLFsiV2luZG93cyBNRSIsL1dpbmRvd3MgTUUvXSxbIldpbmRvd3MgQ0UiLC9XaW5kb3dzIENFfFdpbkNFfE1pY3Jvc29mdCBQb2NrZXQgSW50ZXJuZXQgRXhwbG9yZXIvXSxbIk9wZW4gQlNEIiwvT3BlbkJTRC9dLFsiU3VuIE9TIiwvU3VuT1MvXSxbIkNocm9tZSBPUyIsL0NyT1MvXSxbIkxpbnV4IiwvKExpbnV4KXwoWDExKS9dLFsiTWFjIE9TIiwvKE1hY19Qb3dlclBDKXwoTWFjaW50b3NoKS9dLFsiUU5YIiwvUU5YL10sWyJCZU9TIiwvQmVPUy9dLFsiT1MvMiIsL09TXC8yL11dO2Z1bmN0aW9uIHgoZSl7cmV0dXJuIGU/bChlKTp0eXBlb2YgZG9jdW1lbnQ+InUiJiZ0eXBlb2YgbmF2aWdhdG9yPCJ1IiYmbmF2aWdhdG9yLnByb2R1Y3Q9PT0iUmVhY3ROYXRpdmUiP25ldyBTOnR5cGVvZiBuYXZpZ2F0b3I8InUiP2wobmF2aWdhdG9yLnVzZXJBZ2VudCk6TygpfWZ1bmN0aW9uIGYoZSl7cmV0dXJuIGUhPT0iIiYmYi5yZWR1Y2UoZnVuY3Rpb24ocixuKXt2YXIgbz1uWzBdLGk9blsxXTtpZihyKXJldHVybiByO3ZhciB0PWkuZXhlYyhlKTtyZXR1cm4hIXQmJltvLHRdfSwhMSl9ZnVuY3Rpb24gRShlKXt2YXIgcj1mKGUpO3JldHVybiByP3JbMF06bnVsbH1mdW5jdGlvbiBsKGUpe3ZhciByPWYoZSk7aWYoIXIpcmV0dXJuIG51bGw7dmFyIG49clswXSxvPXJbMV07aWYobj09PSJzZWFyY2hib3QiKXJldHVybiBuZXcgdzt2YXIgaT1vWzFdJiZvWzFdLnNwbGl0KCIuIikuam9pbigiXyIpLnNwbGl0KCJfIikuc2xpY2UoMCwzKTtpP2kubGVuZ3RoPHUmJihpPWQoZChbXSxpLCEwKSxCKHUtaS5sZW5ndGgpLCEwKSk6aT1bXTt2YXIgdD1pLmpvaW4oIi4iKSxzPWcoZSksYT1tLmV4ZWMoZSk7cmV0dXJuIGEmJmFbMV0/bmV3IHYobix0LHMsYVsxXSk6bmV3IHAobix0LHMpfWZ1bmN0aW9uIGcoZSl7Zm9yKHZhciByPTAsbj1jLmxlbmd0aDtyPG47cisrKXt2YXIgbz1jW3JdLGk9b1swXSx0PW9bMV0scz10LmV4ZWMoZSk7aWYocylyZXR1cm4gaX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBPKCl7dmFyIGU9dHlwZW9mIF9fUHJvY2VzcyQ8InUiJiZfX1Byb2Nlc3MkLnZlcnNpb247cmV0dXJuIGU/bmV3IGgoX19Qcm9jZXNzJC52ZXJzaW9uLnNsaWNlKDEpKTpudWxsfWZ1bmN0aW9uIEIoZSl7Zm9yKHZhciByPVtdLG49MDtuPGU7bisrKXIucHVzaCgiMCIpO3JldHVybiByfWV4cG9ydHt3IGFzIEJvdEluZm8scCBhcyBCcm93c2VySW5mbyxoIGFzIE5vZGVJbmZvLFMgYXMgUmVhY3ROYXRpdmVJbmZvLHYgYXMgU2VhcmNoQm90RGV2aWNlSW5mbyxFIGFzIGJyb3dzZXJOYW1lLHggYXMgZGV0ZWN0LGcgYXMgZGV0ZWN0T1MsTyBhcyBnZXROb2RlVmVyc2lvbixsIGFzIHBhcnNlVXNlckFnZW50fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGV0ZWN0LWJyb3dzZXIubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/signing-key@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.708Z","timestamp":1785138633708,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/signing-key@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/signing-key@5.8.0/es2022/signing-key.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/signing-key@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccac05569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":366,"size_decoded":732,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"930b377ae5c4702edd979bf59c57437b","sha1":"ffdff520c91455215199807a366df7d2b4208f7f","sha256":"c39d853b7a773a12dcaedf246859210e432bd2ea084ce2dfb77b8df9454c54ef","sha512":"235bc7cef621e0d1cf4212f3f6b6cb5633c875f04a9ff4135829bf8197ccc236040ec32cd94456b110d871980374e9cc24fe86bdd5745e769731e0322d2cab4b","ssdeep":"","tlshash":"69e0d8a3c116e6cc134d9efc4058bb3cb235c084da86b09bad68c73362d102957316e1","first_seen":"2025-07-08T23:56:54.634731Z","last_seen":"2026-07-27T07:51:47.244708Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qvc2lnbmluZy1rZXlANS44LjAgKi8KaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvYnl0ZXNAXjUuOC4wP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9wcm9wZXJ0aWVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvYm4uanNAXjUuMi4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9oYXNoLmpzQDEuMS43L2VzMjAyMi9oYXNoLm1qcyI7CmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9zaWduaW5nLWtleUA1LjguMC9lczIwMjIvc2lnbmluZy1rZXkubWpzIjsK"}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/lodash.isequal@4.5.0/es2022/lodash.isequal.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.788Z","timestamp":1785138633788,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /lodash.isequal@4.5.0/es2022/lodash.isequal.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:22 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16520\r\ncf-ray: a21a0dcd2c2a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":10802,"size_decoded":5268,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (10722)","md5":"9aa3740fff08f66734521281a549c44b","sha1":"8d21aaa2747a7998672d8164086fb567ae7c1149","sha256":"dbc04ea89edfe9685b25f41d679298032410055b5b4932e27521b91035443eb6","sha512":"bf9dc13d323686409300599cef5302dfeffcbf7bb09b5ac31a342acc620af4bff72f1c5e2851955812091d3421152cad109926012b23b0a66975d3266cd62749","ssdeep":"192:bZHxV+2YAU1LAQM4Gah+OhhsNlgpgp9JG+Ji1rOytikdaeV:bZzLUZyw4OhhGltJ1w1B5V","tlshash":"882241c475d7f07193a22869806f550bf33cac68904e9194e5d4f5e9bcbd22ad223f3a","first_seen":"2025-11-22T14:57:23.742276Z","last_seen":"2026-07-27T07:51:47.258963Z","times_seen":107,"resource_available":true,"data":"LyogZXNtLnNoIC0gbG9kYXNoLmlzZXF1YWxANC41LjAgKi8KdmFyICR0PU9iamVjdC5jcmVhdGU7dmFyIHV0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgcXQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgSnQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIFd0PU9iamVjdC5nZXRQcm90b3R5cGVPZixYdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBZdD0odCxlKT0+KCk9PihlfHx0KChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciBadD0odCxlLG4scik9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgaSBvZiBKdChlKSkhWHQuY2FsbCh0LGkpJiZpIT09biYmdXQodCxpLHtnZXQ6KCk9PmVbaV0sZW51bWVyYWJsZTohKHI9cXQoZSxpKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiB0fTt2YXIgUXQ9KHQsZSxuKT0+KG49dCE9bnVsbD8kdChXdCh0KSk6e30sWnQoZXx8IXR8fCF0Ll9fZXNNb2R1bGU/dXQobiwiZGVmYXVsdCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOm4sdCkpO3ZhciBLdD1ZdCgoTCxFKT0+e3ZhciBWdD0yMDAsaXQ9Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iLHE9MSxUdD0yLEF0PTkwMDcxOTkyNTQ3NDA5OTEsVT0iW29iamVjdCBBcmd1bWVudHNdIixWPSJbb2JqZWN0IEFycmF5XSIsa3Q9IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLHd0PSJbb2JqZWN0IEJvb2xlYW5dIixTdD0iW29iamVjdCBEYXRlXSIsT3Q9IltvYmplY3QgRXJyb3JdIix4dD0iW29iamVjdCBGdW5jdGlvbl0iLHRlPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsQj0iW29iamVjdCBNYXBdIixtdD0iW29iamVjdCBOdW1iZXJdIixlZT0iW29iamVjdCBOdWxsXSIsST0iW29iamVjdCBPYmplY3RdIixvdD0iW29iamVjdCBQcm9taXNlXSIsbmU9IltvYmplY3QgUHJveHldIixDdD0iW29iamVjdCBSZWdFeHBdIixIPSJbb2JqZWN0IFNldF0iLEl0PSJbb2JqZWN0IFN0cmluZ10iLHJlPSJbb2JqZWN0IFN5bWJvbF0iLGFlPSJbb2JqZWN0IFVuZGVmaW5lZF0iLGs9IltvYmplY3QgV2Vha01hcF0iLEV0PSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsRj0iW29iamVjdCBEYXRhVmlld10iLGllPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLHNlPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLGZlPSJbb2JqZWN0IEludDhBcnJheV0iLHVlPSJbb2JqZWN0IEludDE2QXJyYXldIixvZT0iW29iamVjdCBJbnQzMkFycmF5XSIsbGU9IltvYmplY3QgVWludDhBcnJheV0iLGNlPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIscGU9IltvYmplY3QgVWludDE2QXJyYXldIixnZT0iW29iamVjdCBVaW50MzJBcnJheV0iLGRlPS9bXFxeJC4qKz8oKVtcXXt9fF0vZyxfZT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLyxoZT0vXig/OjB8WzEtOV1cZCopJC8scz17fTtzW2llXT1zW3NlXT1zW2ZlXT1zW3VlXT1zW29lXT1zW2xlXT1zW2NlXT1zW3BlXT1zW2dlXT0hMDtzW1VdPXNbVl09c1tFdF09c1t3dF09c1tGXT1zW1N0XT1zW090XT1zW3h0XT1zW0JdPXNbbXRdPXNbSV09c1tDdF09c1tIXT1zW0l0XT1zW2tdPSExO3ZhciBQdD10eXBlb2YgZ2xvYmFsVGhpcz09Im9iamVjdCImJmdsb2JhbFRoaXMmJmdsb2JhbFRoaXMuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWxUaGlzLHllPXR5cGVvZiBzZWxmPT0ib2JqZWN0IiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsdj1QdHx8eWV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksTHQ9dHlwZW9mIEw9PSJvYmplY3QiJiZMJiYhTC5ub2RlVHlwZSYmTCxsdD1MdCYmdHlwZW9mIEU9PSJvYmplY3QiJiZFJiYhRS5ub2RlVHlwZSYmRSxqdD1sdCYmbHQuZXhwb3J0cz09PUx0LFk9anQmJlB0LnByb2Nlc3MsY3Q9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBZJiZZLmJpbmRpbmcmJlkuYmluZGluZygidXRpbCIpfWNhdGNoe319KSgpLHB0PWN0JiZjdC5pc1R5cGVkQXJyYXk7ZnVuY3Rpb24gdmUodCxlKXtmb3IodmFyIG49LTEscj10PT1udWxsPzA6dC5sZW5ndGgsaT0wLGE9W107KytuPHI7KXt2YXIgdT10W25dO2UodSxuLHQpJiYoYVtpKytdPXUpfXJldHVybiBhfWZ1bmN0aW9uIGJlKHQsZSl7Zm9yKHZhciBuPS0xLHI9ZS5sZW5ndGgsaT10Lmxlbmd0aDsrK248cjspdFtpK25dPWVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gVGUodCxlKXtmb3IodmFyIG49LTEscj10PT1udWxsPzA6dC5sZW5ndGg7KytuPHI7KWlmKGUodFtuXSxuLHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEFlKHQsZSl7Zm9yKHZhciBuPS0xLHI9QXJyYXkodCk7KytuPHQ7KXJbbl09ZShuKTtyZXR1cm4gcn1mdW5jdGlvbiB3ZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9fWZ1bmN0aW9uIFNlKHQsZSl7cmV0dXJuIHQuaGFzKGUpfWZ1bmN0aW9uIE9lKHQsZSl7cmV0dXJuIHQ/LltlXX1mdW5jdGlvbiB4ZSh0KXt2YXIgZT0tMSxuPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihyLGkpe25bKytlXT1baSxyXX0pLG59ZnVuY3Rpb24gbWUodCxlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQoZShuKSl9fWZ1bmN0aW9uIENlKHQpe3ZhciBlPS0xLG49QXJyYXkodC5zaXplKTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHIpe25bKytlXT1yfSksbn12YXIgSWU9QXJyYXkucHJvdG90eXBlLEVlPUZ1bmN0aW9uLnByb3RvdHlwZSxKPU9iamVjdC5wcm90b3R5cGUsWj12WyJfX2NvcmUtanNfc2hhcmVkX18iXSx6dD1FZS50b1N0cmluZyxoPUouaGFzT3duUHJvcGVydHksZ3Q9KGZ1bmN0aW9uKCl7dmFyIHQ9L1teLl0rJC8uZXhlYyhaJiZaLmtleXMmJloua2V5cy5JRV9QUk9UT3x8IiIpO3JldHVybiB0PyJTeW1ib2woc3JjKV8xLiIrdDoiIn0pKCksRHQ9Si50b1N0cmluZyxQZT1SZWdFeHAoIl4iK3p0LmNhbGwoaCkucmVwbGFjZShkZSwiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSxkdD1qdD92LkJ1ZmZlcjp2b2lkIDAsTj12LlN5bWJvbCxfdD12LlVpbnQ4QXJyYXksTXQ9Si5wcm9wZXJ0eUlzRW51bWVyYWJsZSxMZT1JZS5zcGxpY2UsTz1OP04udG9TdHJpbmdUYWc6dm9pZCAwLGh0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsamU9ZHQ/ZHQuaXNCdWZmZXI6dm9pZCAwLHplPW1lKE9iamVjdC5rZXlzLE9iamVjdCksdHQ9UCh2LCJEYXRhVmlldyIpLGo9UCh2LCJNYXAiKSxldD1QKHYsIlByb21pc2UiKSxudD1QKHYsIlNldCIpLHJ0PVAodiwiV2Vha01hcCIpLHo9UChPYmplY3QsImNyZWF0ZSIpLERlPUModHQpLE1lPUMoaiksUmU9QyhldCksR2U9QyhudCksVWU9QyhydCkseXQ9Tj9OLnByb3RvdHlwZTp2b2lkIDAsUT15dD95dC52YWx1ZU9mOnZvaWQgMDtmdW5jdGlvbiB4KHQpe3ZhciBlPS0xLG49dD09bnVsbD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytlPG47KXt2YXIgcj10W2VdO3RoaXMuc2V0KHJbMF0sclsxXSl9fWZ1bmN0aW9uIEJlKCl7dGhpcy5fX2RhdGFfXz16P3oobnVsbCk6e30sdGhpcy5zaXplPTB9ZnVuY3Rpb24gSGUodCl7dmFyIGU9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9ZnVuY3Rpb24gRmUodCl7dmFyIGU9dGhpcy5fX2RhdGFfXztpZih6KXt2YXIgbj1lW3RdO3JldHVybiBuPT09aXQ/dm9pZCAwOm59cmV0dXJuIGguY2FsbChlLHQpP2VbdF06dm9pZCAwfWZ1bmN0aW9uIE5lKHQpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHo/ZVt0XSE9PXZvaWQgMDpoLmNhbGwoZSx0KX1mdW5jdGlvbiBLZSh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLG5bdF09eiYmZT09PXZvaWQgMD9pdDplLHRoaXN9eC5wcm90b3R5cGUuY2xlYXI9QmU7eC5wcm90b3R5cGUuZGVsZXRlPUhlO3gucHJvdG90eXBlLmdldD1GZTt4LnByb3RvdHlwZS5oYXM9TmU7eC5wcm90b3R5cGUuc2V0PUtlO2Z1bmN0aW9uIGIodCl7dmFyIGU9LTEsbj10PT1udWxsPzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciByPXRbZV07dGhpcy5zZXQoclswXSxyWzFdKX19ZnVuY3Rpb24gJGUoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIHFlKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1XKGUsdCk7aWYobjwwKXJldHVybiExO3ZhciByPWUubGVuZ3RoLTE7cmV0dXJuIG49PXI/ZS5wb3AoKTpMZS5jYWxsKGUsbiwxKSwtLXRoaXMuc2l6ZSwhMH1mdW5jdGlvbiBKZSh0KXt2YXIgZT10aGlzLl9fZGF0YV9fLG49VyhlLHQpO3JldHVybiBuPDA/dm9pZCAwOmVbbl1bMV19ZnVuY3Rpb24gV2UodCl7cmV0dXJuIFcodGhpcy5fX2RhdGFfXyx0KT4tMX1mdW5jdGlvbiBYZSh0LGUpe3ZhciBuPXRoaXMuX19kYXRhX18scj1XKG4sdCk7cmV0dXJuIHI8MD8oKyt0aGlzLnNpemUsbi5wdXNoKFt0LGVdKSk6bltyXVsxXT1lLHRoaXN9Yi5wcm90b3R5cGUuY2xlYXI9JGU7Yi5wcm90b3R5cGUuZGVsZXRlPXFlO2IucHJvdG90eXBlLmdldD1KZTtiLnByb3RvdHlwZS5oYXM9V2U7Yi5wcm90b3R5cGUuc2V0PVhlO2Z1bmN0aW9uIG0odCl7dmFyIGU9LTEsbj10PT1udWxsPzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2U8bjspe3ZhciByPXRbZV07dGhpcy5zZXQoclswXSxyWzFdKX19ZnVuY3Rpb24gWWUoKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyB4LG1hcDpuZXcoanx8Yiksc3RyaW5nOm5ldyB4fX1mdW5jdGlvbiBaZSh0KXt2YXIgZT1YKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPWU/MTowLGV9ZnVuY3Rpb24gUWUodCl7cmV0dXJuIFgodGhpcyx0KS5nZXQodCl9ZnVuY3Rpb24gVmUodCl7cmV0dXJuIFgodGhpcyx0KS5oYXModCl9ZnVuY3Rpb24ga2UodCxlKXt2YXIgbj1YKHRoaXMsdCkscj1uLnNpemU7cmV0dXJuIG4uc2V0KHQsZSksdGhpcy5zaXplKz1uLnNpemU9PXI/MDoxLHRoaXN9bS5wcm90b3R5cGUuY2xlYXI9WWU7bS5wcm90b3R5cGUuZGVsZXRlPVplO20ucHJvdG90eXBlLmdldD1RZTttLnByb3RvdHlwZS5oYXM9VmU7bS5wcm90b3R5cGUuc2V0PWtlO2Z1bmN0aW9uIEsodCl7dmFyIGU9LTEsbj10PT1udWxsPzA6dC5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IG07KytlPG47KXRoaXMuYWRkKHRbZV0pfWZ1bmN0aW9uIHRuKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LGl0KSx0aGlzfWZ1bmN0aW9uIGVuKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX1LLnByb3RvdHlwZS5hZGQ9Sy5wcm90b3R5cGUucHVzaD10bjtLLnByb3RvdHlwZS5oYXM9ZW47ZnVuY3Rpb24gdyh0KXt2YXIgZT10aGlzLl9fZGF0YV9fPW5ldyBiKHQpO3RoaXMuc2l6ZT1lLnNpemV9ZnVuY3Rpb24gbm4oKXt0aGlzLl9fZGF0YV9fPW5ldyBiLHRoaXMuc2l6ZT0wfWZ1bmN0aW9uIHJuKHQpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1lLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPWUuc2l6ZSxufWZ1bmN0aW9uIGFuKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX1mdW5jdGlvbiBzbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9ZnVuY3Rpb24gZm4odCxlKXt2YXIgbj10aGlzLl9fZGF0YV9fO2lmKG4gaW5zdGFuY2VvZiBiKXt2YXIgcj1uLl9fZGF0YV9fO2lmKCFqfHxyLmxlbmd0aDxWdC0xKXJldHVybiByLnB1c2goW3QsZV0pLHRoaXMuc2l6ZT0rK24uc2l6ZSx0aGlzO249dGhpcy5fX2RhdGFfXz1uZXcgbShyKX1yZXR1cm4gbi5zZXQodCxlKSx0aGlzLnNpemU9bi5zaXplLHRoaXN9dy5wcm90b3R5cGUuY2xlYXI9bm47dy5wcm90b3R5cGUuZGVsZXRlPXJuO3cucHJvdG90eXBlLmdldD1hbjt3LnByb3RvdHlwZS5oYXM9c247dy5wcm90b3R5cGUuc2V0PWZuO2Z1bmN0aW9uIHVuKHQsZSl7dmFyIG49JCh0KSxyPSFuJiZTbih0KSxpPSFuJiYhciYmYXQodCksYT0hbiYmIXImJiFpJiZOdCh0KSx1PW58fHJ8fGl8fGEsbz11P0FlKHQubGVuZ3RoLFN0cmluZyk6W10sbD1vLmxlbmd0aDtmb3IodmFyIGYgaW4gdCkoZXx8aC5jYWxsKHQsZikpJiYhKHUmJihmPT0ibGVuZ3RoInx8aSYmKGY9PSJvZmZzZXQifHxmPT0icGFyZW50Iil8fGEmJihmPT0iYnVmZmVyInx8Zj09ImJ5dGVMZW5ndGgifHxmPT0iYnl0ZU9mZnNldCIpfHx2bihmLGwpKSkmJm8ucHVzaChmKTtyZXR1cm4gb31mdW5jdGlvbiBXKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoO24tLTspaWYoVXQodFtuXVswXSxlKSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBvbih0LGUsbil7dmFyIHI9ZSh0KTtyZXR1cm4gJCh0KT9yOmJlKHIsbih0KSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdD09bnVsbD90PT09dm9pZCAwP2FlOmVlOk8mJk8gaW4gT2JqZWN0KHQpP2huKHQpOnduKHQpfWZ1bmN0aW9uIHZ0KHQpe3JldHVybiBEKHQpJiZNKHQpPT1VfWZ1bmN0aW9uIFJ0KHQsZSxuLHIsaSl7cmV0dXJuIHQ9PT1lPyEwOnQ9PW51bGx8fGU9PW51bGx8fCFEKHQpJiYhRChlKT90IT09dCYmZSE9PWU6bG4odCxlLG4scixSdCxpKX1mdW5jdGlvbiBsbih0LGUsbixyLGksYSl7dmFyIHU9JCh0KSxvPSQoZSksbD11P1Y6QSh0KSxmPW8/VjpBKGUpO2w9bD09VT9JOmwsZj1mPT1VP0k6Zjt2YXIgcD1sPT1JLF89Zj09SSxjPWw9PWY7aWYoYyYmYXQodCkpe2lmKCFhdChlKSlyZXR1cm4hMTt1PSEwLHA9ITF9aWYoYyYmIXApcmV0dXJuIGF8fChhPW5ldyB3KSx1fHxOdCh0KT9HdCh0LGUsbixyLGksYSk6ZG4odCxlLGwsbixyLGksYSk7aWYoIShuJnEpKXt2YXIgZz1wJiZoLmNhbGwodCwiX193cmFwcGVkX18iKSxkPV8mJmguY2FsbChlLCJfX3dyYXBwZWRfXyIpO2lmKGd8fGQpe3ZhciBUPWc/dC52YWx1ZSgpOnQseT1kP2UudmFsdWUoKTplO3JldHVybiBhfHwoYT1uZXcgdyksaShULHksbixyLGEpfX1yZXR1cm4gYz8oYXx8KGE9bmV3IHcpLF9uKHQsZSxuLHIsaSxhKSk6ITF9ZnVuY3Rpb24gY24odCl7aWYoIUZ0KHQpfHxUbih0KSlyZXR1cm4hMTt2YXIgZT1CdCh0KT9QZTpfZTtyZXR1cm4gZS50ZXN0KEModCkpfWZ1bmN0aW9uIHBuKHQpe3JldHVybiBEKHQpJiZIdCh0Lmxlbmd0aCkmJiEhc1tNKHQpXX1mdW5jdGlvbiBnbih0KXtpZighQW4odCkpcmV0dXJuIHplKHQpO3ZhciBlPVtdO2Zvcih2YXIgbiBpbiBPYmplY3QodCkpaC5jYWxsKHQsbikmJm4hPSJjb25zdHJ1Y3RvciImJmUucHVzaChuKTtyZXR1cm4gZX1mdW5jdGlvbiBHdCh0LGUsbixyLGksYSl7dmFyIHU9biZxLG89dC5sZW5ndGgsbD1lLmxlbmd0aDtpZihvIT1sJiYhKHUmJmw+bykpcmV0dXJuITE7dmFyIGY9YS5nZXQodCk7aWYoZiYmYS5nZXQoZSkpcmV0dXJuIGY9PWU7dmFyIHA9LTEsXz0hMCxjPW4mVHQ/bmV3IEs6dm9pZCAwO2ZvcihhLnNldCh0LGUpLGEuc2V0KGUsdCk7KytwPG87KXt2YXIgZz10W3BdLGQ9ZVtwXTtpZihyKXZhciBUPXU/cihkLGcscCxlLHQsYSk6cihnLGQscCx0LGUsYSk7aWYoVCE9PXZvaWQgMCl7aWYoVCljb250aW51ZTtfPSExO2JyZWFrfWlmKGMpe2lmKCFUZShlLGZ1bmN0aW9uKHksUyl7aWYoIVNlKGMsUykmJihnPT09eXx8aShnLHksbixyLGEpKSlyZXR1cm4gYy5wdXNoKFMpfSkpe189ITE7YnJlYWt9fWVsc2UgaWYoIShnPT09ZHx8aShnLGQsbixyLGEpKSl7Xz0hMTticmVha319cmV0dXJuIGEuZGVsZXRlKHQpLGEuZGVsZXRlKGUpLF99ZnVuY3Rpb24gZG4odCxlLG4scixpLGEsdSl7c3dpdGNoKG4pe2Nhc2UgRjppZih0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8dC5ieXRlT2Zmc2V0IT1lLmJ5dGVPZmZzZXQpcmV0dXJuITE7dD10LmJ1ZmZlcixlPWUuYnVmZmVyO2Nhc2UgRXQ6cmV0dXJuISh0LmJ5dGVMZW5ndGghPWUuYnl0ZUxlbmd0aHx8IWEobmV3IF90KHQpLG5ldyBfdChlKSkpO2Nhc2Ugd3Q6Y2FzZSBTdDpjYXNlIG10OnJldHVybiBVdCgrdCwrZSk7Y2FzZSBPdDpyZXR1cm4gdC5uYW1lPT1lLm5hbWUmJnQubWVzc2FnZT09ZS5tZXNzYWdlO2Nhc2UgQ3Q6Y2FzZSBJdDpyZXR1cm4gdD09ZSsiIjtjYXNlIEI6dmFyIG89eGU7Y2FzZSBIOnZhciBsPXImcTtpZihvfHwobz1DZSksdC5zaXplIT1lLnNpemUmJiFsKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpO2lmKGYpcmV0dXJuIGY9PWU7cnw9VHQsdS5zZXQodCxlKTt2YXIgcD1HdChvKHQpLG8oZSkscixpLGEsdSk7cmV0dXJuIHUuZGVsZXRlKHQpLHA7Y2FzZSByZTppZihRKXJldHVybiBRLmNhbGwodCk9PVEuY2FsbChlKX1yZXR1cm4hMX1mdW5jdGlvbiBfbih0LGUsbixyLGksYSl7dmFyIHU9biZxLG89YnQodCksbD1vLmxlbmd0aCxmPWJ0KGUpLHA9Zi5sZW5ndGg7aWYobCE9cCYmIXUpcmV0dXJuITE7Zm9yKHZhciBfPWw7Xy0tOyl7dmFyIGM9b1tfXTtpZighKHU/YyBpbiBlOmguY2FsbChlLGMpKSlyZXR1cm4hMX12YXIgZz1hLmdldCh0KTtpZihnJiZhLmdldChlKSlyZXR1cm4gZz09ZTt2YXIgZD0hMDthLnNldCh0LGUpLGEuc2V0KGUsdCk7Zm9yKHZhciBUPXU7KytfPGw7KXtjPW9bX107dmFyIHk9dFtjXSxTPWVbY107aWYocil2YXIgZnQ9dT9yKFMseSxjLGUsdCxhKTpyKHksUyxjLHQsZSxhKTtpZighKGZ0PT09dm9pZCAwP3k9PT1TfHxpKHksUyxuLHIsYSk6ZnQpKXtkPSExO2JyZWFrfVR8fChUPWM9PSJjb25zdHJ1Y3RvciIpfWlmKGQmJiFUKXt2YXIgUj10LmNvbnN0cnVjdG9yLEc9ZS5jb25zdHJ1Y3RvcjtSIT1HJiYiY29uc3RydWN0b3IiaW4gdCYmImNvbnN0cnVjdG9yImluIGUmJiEodHlwZW9mIFI9PSJmdW5jdGlvbiImJlIgaW5zdGFuY2VvZiBSJiZ0eXBlb2YgRz09ImZ1bmN0aW9uIiYmRyBpbnN0YW5jZW9mIEcpJiYoZD0hMSl9cmV0dXJuIGEuZGVsZXRlKHQpLGEuZGVsZXRlKGUpLGR9ZnVuY3Rpb24gYnQodCl7cmV0dXJuIG9uKHQsbW4seW4pfWZ1bmN0aW9uIFgodCxlKXt2YXIgbj10Ll9fZGF0YV9fO3JldHVybiBibihlKT9uW3R5cGVvZiBlPT0ic3RyaW5nIj8ic3RyaW5nIjoiaGFzaCJdOm4ubWFwfWZ1bmN0aW9uIFAodCxlKXt2YXIgbj1PZSh0LGUpO3JldHVybiBjbihuKT9uOnZvaWQgMH1mdW5jdGlvbiBobih0KXt2YXIgZT1oLmNhbGwodCxPKSxuPXRbT107dHJ5e3RbT109dm9pZCAwO3ZhciByPSEwfWNhdGNoe312YXIgaT1EdC5jYWxsKHQpO3JldHVybiByJiYoZT90W09dPW46ZGVsZXRlIHRbT10pLGl9dmFyIHluPWh0P2Z1bmN0aW9uKHQpe3JldHVybiB0PT1udWxsP1tdOih0PU9iamVjdCh0KSx2ZShodCh0KSxmdW5jdGlvbihlKXtyZXR1cm4gTXQuY2FsbCh0LGUpfSkpfTpDbixBPU07KHR0JiZBKG5ldyB0dChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9Rnx8aiYmQShuZXcgaikhPUJ8fGV0JiZBKGV0LnJlc29sdmUoKSkhPW90fHxudCYmQShuZXcgbnQpIT1IfHxydCYmQShuZXcgcnQpIT1rKSYmKEE9ZnVuY3Rpb24odCl7dmFyIGU9TSh0KSxuPWU9PUk/dC5jb25zdHJ1Y3Rvcjp2b2lkIDAscj1uP0Mobik6IiI7aWYocilzd2l0Y2gocil7Y2FzZSBEZTpyZXR1cm4gRjtjYXNlIE1lOnJldHVybiBCO2Nhc2UgUmU6cmV0dXJuIG90O2Nhc2UgR2U6cmV0dXJuIEg7Y2FzZSBVZTpyZXR1cm4ga31yZXR1cm4gZX0pO2Z1bmN0aW9uIHZuKHQsZSl7cmV0dXJuIGU9ZT8/QXQsISFlJiYodHlwZW9mIHQ9PSJudW1iZXIifHxoZS50ZXN0KHQpKSYmdD4tMSYmdCUxPT0wJiZ0PGV9ZnVuY3Rpb24gYm4odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIGU9PSJzdHJpbmcifHxlPT0ibnVtYmVyInx8ZT09InN5bWJvbCJ8fGU9PSJib29sZWFuIj90IT09Il9fcHJvdG9fXyI6dD09PW51bGx9ZnVuY3Rpb24gVG4odCl7cmV0dXJuISFndCYmZ3QgaW4gdH1mdW5jdGlvbiBBbih0KXt2YXIgZT10JiZ0LmNvbnN0cnVjdG9yLG49dHlwZW9mIGU9PSJmdW5jdGlvbiImJmUucHJvdG90eXBlfHxKO3JldHVybiB0PT09bn1mdW5jdGlvbiB3bih0KXtyZXR1cm4gRHQuY2FsbCh0KX1mdW5jdGlvbiBDKHQpe2lmKHQhPW51bGwpe3RyeXtyZXR1cm4genQuY2FsbCh0KX1jYXRjaHt9dHJ5e3JldHVybiB0KyIifWNhdGNoe319cmV0dXJuIiJ9ZnVuY3Rpb24gVXQodCxlKXtyZXR1cm4gdD09PWV8fHQhPT10JiZlIT09ZX12YXIgU249dnQoKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30pKCkpP3Z0OmZ1bmN0aW9uKHQpe3JldHVybiBEKHQpJiZoLmNhbGwodCwiY2FsbGVlIikmJiFNdC5jYWxsKHQsImNhbGxlZSIpfSwkPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gT24odCl7cmV0dXJuIHQhPW51bGwmJkh0KHQubGVuZ3RoKSYmIUJ0KHQpfXZhciBhdD1qZXx8SW47ZnVuY3Rpb24geG4odCxlKXtyZXR1cm4gUnQodCxlKX1mdW5jdGlvbiBCdCh0KXtpZighRnQodCkpcmV0dXJuITE7dmFyIGU9TSh0KTtyZXR1cm4gZT09eHR8fGU9PXRlfHxlPT1rdHx8ZT09bmV9ZnVuY3Rpb24gSHQodCl7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIiYmdD4tMSYmdCUxPT0wJiZ0PD1BdH1mdW5jdGlvbiBGdCh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gdCE9bnVsbCYmKGU9PSJvYmplY3QifHxlPT0iZnVuY3Rpb24iKX1mdW5jdGlvbiBEKHQpe3JldHVybiB0IT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCJ9dmFyIE50PXB0P3dlKHB0KTpwbjtmdW5jdGlvbiBtbih0KXtyZXR1cm4gT24odCk/dW4odCk6Z24odCl9ZnVuY3Rpb24gQ24oKXtyZXR1cm5bXX1mdW5jdGlvbiBJbigpe3JldHVybiExfUUuZXhwb3J0cz14bn0pO3ZhciBzdD1RdChLdCgpKSxQbj1zdC5kZWZhdWx0Pz9zdDtleHBvcnR7UG4gYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvZGFzaC5pc2VxdWFsLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/constants@5.8.0/es2022/constants.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.947Z","timestamp":1785138633947,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/constants@5.8.0/es2022/constants.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/constants@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16518\r\ncf-ray: a21a0dce2c40569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":788,"size_decoded":722,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (703)","md5":"2e08bf58527b5418f71a67e5c1117f03","sha1":"aca16db00936f64a53b487e0630cd37d29acf120","sha256":"5b369bbd5719e75e27cdc0cf2783c0db4b26d24baf60024cac34c883930a9ed6","sha512":"028a705807475a94d84c92cea52f3623f7dbb7c7b575ab4065a5a058717cf3bdcd23e3c4b5ddc8892ef817ee1bb5d814355ff755d58db484ec52b076a2cc4e62","ssdeep":"","tlshash":"4c01973d84fa207dfa7c0df82398f41981f4f2a3a0c2d186e408cafe42d28959443eb4","first_seen":"2025-07-08T23:56:54.690847Z","last_seen":"2026-07-27T07:51:47.257247Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvY29uc3RhbnRzQDUuOC4wICovCnZhciBvPSIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiO2ltcG9ydHtCaWdOdW1iZXIgYXMgZn1mcm9tIi9AZXRoZXJzcHJvamVjdC9iaWdudW1iZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiO3ZhciByPWYuZnJvbSgtMSksZT1mLmZyb20oMCksdD1mLmZyb20oMSksbj1mLmZyb20oMikscz1mLmZyb20oIjEwMDAwMDAwMDAwMDAwMDAwMDAiKSxtPWYuZnJvbSgiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIikseD1mLmZyb20oIi0weDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSxjPWYuZnJvbSgiMHg3ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIik7dmFyIGk9IjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCI7dmFyIHA9Ilx1MDM5RSI7ZXhwb3J0e28gYXMgQWRkcmVzc1plcm8scCBhcyBFdGhlclN5bWJvbCxpIGFzIEhhc2haZXJvLGMgYXMgTWF4SW50MjU2LG0gYXMgTWF4VWludDI1Nix4IGFzIE1pbkludDI1NixyIGFzIE5lZ2F0aXZlT25lLHQgYXMgT25lLG4gYXMgVHdvLHMgYXMgV2VpUGVyRXRoZXIsZSBhcyBaZXJvfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLm1qcy5tYXA="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/wipe@1.0.1/es2022/wipe.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.990Z","timestamp":1785138633990,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/wipe@1.0.1/es2022/wipe.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/wipe@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16519\r\ncf-ray: a21a0dce7c56569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":833,"size_decoded":873,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (762)","md5":"9d6b9a2f378cec964618b8dd660a92f4","sha1":"d22136d31b55a150600591aad6cbeac8c1cb2c2c","sha256":"173ee05f4dd8c39b53e09fcee77af39890e940ee1688e23e94a74d6ff2b5aa73","sha512":"e1c956c543dfa34799a19c4caaaab1adb56f529beffd8c7b2f62edea3a61d84d9d4b522e991bdec8dd4527a11e5231fa739d431c79d18a8d4969dd7c6d4e5df4","ssdeep":"","tlshash":"aa01ce9625e5eeb252b248cbc93e5141e21898794073f8d0e7a8ccf2d54249b14aae73","first_seen":"2025-07-08T23:56:54.780796Z","last_seen":"2026-07-27T07:51:47.199637Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi93aXBlQDEuMC4xICovCnZhciBsPU9iamVjdC5jcmVhdGU7dmFyIGM9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGQ9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGk9T2JqZWN0LmdldFByb3RvdHlwZU9mLG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgXz0odCxlKT0+KCk9PihlfHx0KChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciBqPSh0LGUsbyxwKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCB1IG9mIGQoZSkpIW0uY2FsbCh0LHUpJiZ1IT09byYmYyh0LHUse2dldDooKT0+ZVt1XSxlbnVtZXJhYmxlOiEocD1uKGUsdSkpfHxwLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIHc9KHQsZSxvKT0+KG89dCE9bnVsbD9sKGkodCkpOnt9LGooZXx8IXR8fCF0Ll9fZXNNb2R1bGU/YyhvLCJkZWZhdWx0Iix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwfSk6byx0KSk7dmFyIGY9XyhzPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiB2KHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV09MDtyZXR1cm4gdH1zLndpcGU9dn0pO3ZhciByPXcoZigpKSx7X19lc01vZHVsZTphLHdpcGU6Yn09cixnPXIuZGVmYXVsdD8/cjtleHBvcnR7YSBhcyBfX2VzTW9kdWxlLGcgYXMgZGVmYXVsdCxiIGFzIHdpcGV9OwovLyMgc291cmNlTWFwcGluZ1VSTD13aXBlLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/split-on-first@1.1.0/es2022/split-on-first.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.129Z","timestamp":1785138634129,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /split-on-first@1.1.0/es2022/split-on-first.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/split-on-first@%5E1.0.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcf4c6f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":906,"size_decoded":921,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (826)","md5":"d8f14674ee08df4c0ee39a9d815ec3ac","sha1":"b738e5e5ef0d1bb7f7bd1b7800b5fd0be5030815","sha256":"763ae96ffcf820a86edc6b9aa99547b886c6dd81bf5eeacabf25af3abd70573d","sha512":"f30439be3c8abc1ec38c34d7879902f7beeb8752f4d502be843ae64a8cb6d593e1c95f33e27c86c0d92f9ab1354f6cbdbb281e767fc96c971ea1764865567a49","ssdeep":"","tlshash":"aa1100a224e8e6e206b75086c5be8541f11a98bc44b6f0a0e7dcc6f484e040704e3b33","first_seen":"2025-07-08T23:56:54.580571Z","last_seen":"2026-07-27T07:51:47.177417Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gc3BsaXQtb24tZmlyc3RAMS4xLjAgKi8KdmFyIHA9T2JqZWN0LmNyZWF0ZTt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgbD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsbT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciB4PShlLHQpPT4oKT0+KHR8fGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyk7dmFyIHk9KGUsdCxmLGMpPT57aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIilmb3IobGV0IHIgb2YgZCh0KSkhbS5jYWxsKGUscikmJnIhPT1mJiZuKGUscix7Z2V0OigpPT50W3JdLGVudW1lcmFibGU6IShjPXModCxyKSl8fGMuZW51bWVyYWJsZX0pO3JldHVybiBlfTt2YXIgaD0oZSx0LGYpPT4oZj1lIT1udWxsP3AobChlKSk6e30seSh0fHwhZXx8IWUuX19lc01vZHVsZT9uKGYsImRlZmF1bHQiLHt2YWx1ZTplLGVudW1lcmFibGU6ITB9KTpmLGUpKTt2YXIgaT14KCh3LHUpPT57InVzZSBzdHJpY3QiO3UuZXhwb3J0cz0oZSx0KT0+e2lmKCEodHlwZW9mIGU9PSJzdHJpbmciJiZ0eXBlb2YgdD09InN0cmluZyIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBhcmd1bWVudHMgdG8gYmUgb2YgdHlwZSBgc3RyaW5nYCIpO2lmKHQ9PT0iIilyZXR1cm5bZV07bGV0IGY9ZS5pbmRleE9mKHQpO3JldHVybiBmPT09LTE/W2VdOltlLnNsaWNlKDAsZiksZS5zbGljZShmK3QubGVuZ3RoKV19fSk7dmFyIG89aChpKCkpLEU9by5kZWZhdWx0Pz9vO2V4cG9ydHtFIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zcGxpdC1vbi1maXJzdC5tanMubWFw"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hmac@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.725Z","timestamp":1785138633725,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/hmac@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/hkdf@1.0.1/es2022/hkdf.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/hmac@1.0.1/es2022/hmac.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/hmac@1.0.1/lib/hmac.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcccc0e569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":312,"size_decoded":674,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"6bebae8130618ddd13202f502858b93c","sha1":"1f958d0c1cb0ebefb6ec6b7917c637e86580bb1e","sha256":"85bb2748c5e1062701af60d3f34e5a1e036fb660b374d97fea1c40053ef64e4e","sha512":"c8a1e3421dea7dee3c4e679f8ad6ae0b9a35d7b0c4ba87f494157c8803961c5e721330f10c983c1327e189aede038ecafd275c0e0d1f142858f28b2905cc39c9","ssdeep":"","tlshash":"24e0ec6a839af7a82328b8d8b5f5f23d53711088f4bb586c1a28c7295012df04526be2","first_seen":"2025-07-08T23:56:54.672365Z","last_seen":"2026-07-27T07:51:47.156932Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9obWFjQDEuMC4xICovCmltcG9ydCAiL0BzdGFibGVsaWIvY29uc3RhbnQtdGltZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BzdGFibGVsaWIvaGFzaEBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7CmV4cG9ydCAqIGZyb20gIi9Ac3RhYmxlbGliL2htYWNAMS4wLjEvZXMyMDIyL2htYWMubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9Ac3RhYmxlbGliL2htYWNAMS4wLjEvZXMyMDIyL2htYWMubWpzIjsK"}},"time_used":121,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":121,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/constants@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.981Z","timestamp":1785138633981,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/constants@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/strings@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/constants@5.8.0/es2022/constants.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/constants@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce6c53569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":173,"size_decoded":679,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"a2d22fa01d719193a933172d85c9bc51","sha1":"1b141d89185bde8aab44c267c6ad0fc26854fb05","sha256":"9c305e7b0cd23610c175f0f447c03010cffa3b0a00b5bae7224a8a0ae68bca57","sha512":"3aab9c88a5578e236e9fad859d08b7c6de54312e6b56af1d60922c204a279d085bd88a60f1f14ea00ecda9ce83ec311b3e25d2096e1eff055351bafb7a5ced6a","ssdeep":"","tlshash":"fcc01256c01555cc775d0fdc0228ab3c91773054e044d0ea541c8623829310665524a7","first_seen":"2025-07-08T23:56:54.677691Z","last_seen":"2026-07-27T07:51:47.182413Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvY29uc3RhbnRzQDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2JpZ251bWJlckBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9jb25zdGFudHNANS44LjAvZXMyMDIyL2NvbnN0YW50cy5tanMiOwo="}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base32.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.208Z","timestamp":1785138634208,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base32.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Wed, 19 Nov 2025 18:21:27 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcfdc7f569f-OSL\r\ncontent-length: 502\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1159,"size_decoded":954,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (1076)","md5":"1ee9f2ef16b9984856fe98653d135f21","sha1":"c6625f500c5d509485e391e220ffbcc7ae3ae605","sha256":"2c42d149c299e8b8934e51ccb284b01b113d3fe432177a55b7a781d10cfbe5b2","sha512":"238c22ba301c73696ed2d13fc89be911a71c22c5ad5a95598d9afb1fd9ac80329a8dedfa506e2bf44fed92fdb0544a8356fa9d26a6ddf544558d3823ae47e389","ssdeep":"","tlshash":"0421263dc8670a1edd62b65d6c8f8c117cf1c3ff815a034563b94a128498acaf013e9b","first_seen":"2025-07-08T23:56:54.833623Z","last_seen":"2026-08-08T17:15:51.793767Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2UzMiAqLwppbXBvcnR7cmZjNDY0OCBhcyBlfWZyb20iLi4vZXNtL3NyYy9iYXNlcy9iYXNlLm1qcyI7dmFyIHA9ZSh7cHJlZml4OiJiIixuYW1lOiJiYXNlMzIiLGFscGhhYmV0OiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2NyIsYml0c1BlckNoYXI6NX0pLHI9ZSh7cHJlZml4OiJCIixuYW1lOiJiYXNlMzJ1cHBlciIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3IixiaXRzUGVyQ2hhcjo1fSksdD1lKHtwcmVmaXg6ImMiLG5hbWU6ImJhc2UzMnBhZCIsYWxwaGFiZXQ6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3PSIsYml0c1BlckNoYXI6NX0pLGI9ZSh7cHJlZml4OiJDIixuYW1lOiJiYXNlMzJwYWR1cHBlciIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3PSIsYml0c1BlckNoYXI6NX0pLHM9ZSh7cHJlZml4OiJ2IixuYW1lOiJiYXNlMzJoZXgiLGFscGhhYmV0OiIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1diIsYml0c1BlckNoYXI6NX0pLGg9ZSh7cHJlZml4OiJWIixuYW1lOiJiYXNlMzJoZXh1cHBlciIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWIixiaXRzUGVyQ2hhcjo1fSkseD1lKHtwcmVmaXg6InQiLG5hbWU6ImJhc2UzMmhleHBhZCIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2PSIsYml0c1BlckNoYXI6NX0pLG89ZSh7cHJlZml4OiJUIixuYW1lOiJiYXNlMzJoZXhwYWR1cHBlciIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWPSIsYml0c1BlckNoYXI6NX0pLGk9ZSh7cHJlZml4OiJoIixuYW1lOiJiYXNlMzJ6IixhbHBoYWJldDoieWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3NjkiLGJpdHNQZXJDaGFyOjV9KTtleHBvcnR7cCBhcyBiYXNlMzIscyBhcyBiYXNlMzJoZXgseCBhcyBiYXNlMzJoZXhwYWQsbyBhcyBiYXNlMzJoZXhwYWR1cHBlcixoIGFzIGJhc2UzMmhleHVwcGVyLHQgYXMgYmFzZTMycGFkLGIgYXMgYmFzZTMycGFkdXBwZXIsciBhcyBiYXNlMzJ1cHBlcixpIGFzIGJhc2UzMnp9OwovLyMgc291cmNlTWFwcGluZ1VSTD1iYXNlMzIubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/hash@5.7.0/es2022/hash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.573Z","timestamp":1785138633573,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/hash@5.7.0/es2022/hash.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 20:33:38 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbdbe2569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":27750,"size_decoded":18005,"mime_type":"application/javascript; charset=utf-8","magic":"data","md5":"8891b31f7351e08049c174ca1fe9705a","sha1":"0490f55dbf80c151e0552c691d72e72815a1c6c0","sha256":"6f9447ac81aa5bb015d455a882f7eae41260b78bb5096ce873684eda2b76d2b8","sha512":"4b63d58e8335b1e8a64f2aab073e9272eb13f64280a1ce43718f1e417639301b837b36e6f67194b3598ceb16ae674b6b934b0345093f5e33671506a55bbc1c45","ssdeep":"384:f3Q7WQiIe9yzxcCes11xr/UjJbMuJdAYGNqifHPVIkQnnPRpnR1us/jjUK/gRjjC:Q4QFUjJI6sNq8CkQnP3R1njp","tlshash":"5dc26e95b393f4b603ed085844bbc50af1b9ec90615e4c14f428e8b73460e588bbbf5c","first_seen":"2025-07-08T23:56:54.847797Z","last_seen":"2026-07-27T07:51:47.216173Z","times_seen":14,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvaGFzaEA1LjcuMCAqLwppbXBvcnR7a2VjY2FrMjU2IGFzIGRyfWZyb20iL0BldGhlcnNwcm9qZWN0L2tlY2NhazI1NkBeNS43LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e3RvVXRmOEJ5dGVzIGFzIHByfWZyb20iL0BldGhlcnNwcm9qZWN0L3N0cmluZ3NAXjUuNy4wP3RhcmdldD1lczIwMjIiO2Z1bmN0aW9uIE0odCl7cmV0dXJuIGRyKHByKHQpKX1pbXBvcnR7Y29uY2F0IGFzIEFyLGhleGxpZnkgYXMgbnJ9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYnl0ZXNAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHt0b1V0ZjhCeXRlcyBhcyBPcix0b1V0ZjhTdHJpbmcgYXMgS3J9ZnJvbSIvQGV0aGVyc3Byb2plY3Qvc3RyaW5nc0BeNS43LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e2tlY2NhazI1NiBhcyB0cn1mcm9tIi9AZXRoZXJzcHJvamVjdC9rZWNjYWsyNTZAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtMb2dnZXIgYXMgR3J9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjcuMD90YXJnZXQ9ZXMyMDIyIjt2YXIgVT0iaGFzaC81LjcuMCI7aW1wb3J0e3RvVXRmOENvZGVQb2ludHMgYXMgSHJ9ZnJvbSIvQGV0aGVyc3Byb2plY3Qvc3RyaW5nc0BeNS43LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e2RlY29kZSBhcyBVcn1mcm9tIi9AZXRoZXJzcHJvamVjdC9iYXNlNjRAXjUuNy4wP3RhcmdldD1lczIwMjIiO2Z1bmN0aW9uIEwodCxyKXtyPT1udWxsJiYocj0xKTtsZXQgZT1bXSxBPWUuZm9yRWFjaCxvPWZ1bmN0aW9uKGksYyl7QS5jYWxsKGksZnVuY3Rpb24obil7Yz4wJiZBcnJheS5pc0FycmF5KG4pP28obixjLTEpOmUucHVzaChuKX0pfTtyZXR1cm4gbyh0LHIpLGV9ZnVuY3Rpb24gQnIodCl7bGV0IHI9e307Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDtlKyspe2xldCBBPXRbZV07cltBWzBdXT1BWzFdfXJldHVybiByfWZ1bmN0aW9uIENyKHQpe2xldCByPTA7ZnVuY3Rpb24gZSgpe3JldHVybiB0W3IrK108PDh8dFtyKytdfWxldCBBPWUoKSxvPTEsaT1bMCwxXTtmb3IobGV0IGg9MTtoPEE7aCsrKWkucHVzaChvKz1lKCkpO2xldCBjPWUoKSxuPXI7cis9YztsZXQgcz0wLGE9MDtmdW5jdGlvbiBmKCl7cmV0dXJuIHM9PTAmJihhPWE8PDh8dFtyKytdLHM9OCksYT4+LS1zJjF9bGV0IHU9MzEsRT1NYXRoLnBvdygyLHUpLGw9RT4+PjEsd3I9bD4+MSxRPUUtMSxtPTA7Zm9yKGxldCBoPTA7aDx1O2grKyltPW08PDF8ZigpO2xldCBSPVtdLHk9MCxJPUU7Zm9yKDs7KXtsZXQgaD1NYXRoLmZsb29yKCgobS15KzEpKm8tMSkvSSksZD0wLEo9QTtmb3IoO0otZD4xOyl7bGV0IHY9ZCtKPj4+MTtoPGlbdl0/Sj12OmQ9dn1pZihkPT0wKWJyZWFrO1IucHVzaChkKTtsZXQgdz15K01hdGguZmxvb3IoSSppW2RdL28pLHA9eStNYXRoLmZsb29yKEkqaVtkKzFdL28pLTE7Zm9yKDshKCh3XnApJmwpOyltPW08PDEmUXxmKCksdz13PDwxJlEscD1wPDwxJlF8MTtmb3IoO3cmfnAmd3I7KW09bSZsfG08PDEmUT4+PjF8ZigpLHc9dzw8MV5sLHA9KHBebCk8PDF8bHwxO3k9dyxJPTErcC13fWxldCBZPUEtNDtyZXR1cm4gUi5tYXAoaD0+e3N3aXRjaChoLVkpe2Nhc2UgMzpyZXR1cm4gWSs2NTc5MisodFtuKytdPDwxNnx0W24rK108PDh8dFtuKytdKTtjYXNlIDI6cmV0dXJuIFkrMjU2Kyh0W24rK108PDh8dFtuKytdKTtjYXNlIDE6cmV0dXJuIFkrdFtuKytdO2RlZmF1bHQ6cmV0dXJuIGgtMX19KX1mdW5jdGlvbiBFcih0KXtsZXQgcj0wO3JldHVybigpPT50W3IrK119ZnVuY3Rpb24gUCh0KXtyZXR1cm4gRXIoQ3IodCkpfWZ1bmN0aW9uIERyKHQpe3JldHVybiB0JjE/fnQ+PjE6dD4+MX1mdW5jdGlvbiBRcih0LHIpe2xldCBlPUFycmF5KHQpO2ZvcihsZXQgQT0wO0E8dDtBKyspZVtBXT0xK3IoKTtyZXR1cm4gZX1mdW5jdGlvbiB6KHQscil7bGV0IGU9QXJyYXkodCk7Zm9yKGxldCBBPTAsbz0tMTtBPHQ7QSsrKWVbQV09bys9MStyKCk7cmV0dXJuIGV9ZnVuY3Rpb24geXIodCxyKXtsZXQgZT1BcnJheSh0KTtmb3IobGV0IEE9MCxvPTA7QTx0O0ErKyllW0FdPW8rPURyKHIoKSk7cmV0dXJuIGV9ZnVuY3Rpb24gRCh0LHIpe2xldCBlPXoodCgpLHQpLEE9dCgpLG89eihBLHQpLGk9UXIoQSx0KTtmb3IobGV0IGM9MDtjPEE7YysrKWZvcihsZXQgbj0wO248aVtjXTtuKyspZS5wdXNoKG9bY10rbik7cmV0dXJuIHI/ZS5tYXAoYz0+cltjXSk6ZX1mdW5jdGlvbiBiKHQpe2xldCByPVtdO2Zvcig7Oyl7bGV0IGU9dCgpO2lmKGU9PTApYnJlYWs7ci5wdXNoKFlyKGUsdCkpfWZvcig7Oyl7bGV0IGU9dCgpLTE7aWYoZTwwKWJyZWFrO3IucHVzaChNcihlLHQpKX1yZXR1cm4gQnIoTChyKSl9ZnVuY3Rpb24gSXIodCl7bGV0IHI9W107Zm9yKDs7KXtsZXQgZT10KCk7aWYoZT09MClicmVhaztyLnB1c2goZSl9cmV0dXJuIHJ9ZnVuY3Rpb24gWCh0LHIsZSl7bGV0IEE9QXJyYXkodCkuZmlsbCh2b2lkIDApLm1hcCgoKT0+W10pO2ZvcihsZXQgbz0wO288cjtvKyspeXIodCxlKS5mb3JFYWNoKChpLGMpPT5BW2NdLnB1c2goaSkpO3JldHVybiBBfWZ1bmN0aW9uIFlyKHQscil7bGV0IGU9MStyKCksQT1yKCksbz1JcihyKSxpPVgoby5sZW5ndGgsMSt0LHIpO3JldHVybiBMKGkubWFwKChjLG4pPT57bGV0IHM9Y1swXSxhPWMuc2xpY2UoMSk7cmV0dXJuIEFycmF5KG9bbl0pLmZpbGwodm9pZCAwKS5tYXAoKGYsdSk9PntsZXQgRT11KkE7cmV0dXJuW3MrdSplLGEubWFwKGw9PmwrRSldfSl9KSl9ZnVuY3Rpb24gTXIodCxyKXtsZXQgZT0xK3IoKTtyZXR1cm4gWChlLDErdCxyKS5tYXAobz0+W29bMF0sby5zbGljZSgxKV0pfWZ1bmN0aW9uIFcodCl7bGV0IHI9RCh0KS5zb3J0KChBLG8pPT5BLW8pO3JldHVybiBlKCk7ZnVuY3Rpb24gZSgpe2xldCBBPVtdO2Zvcig7Oyl7bGV0IGE9RCh0LHIpO2lmKGEubGVuZ3RoPT0wKWJyZWFrO0EucHVzaCh7c2V0Om5ldyBTZXQoYSksbm9kZTplKCl9KX1BLnNvcnQoKGEsZik9PmYuc2V0LnNpemUtYS5zZXQuc2l6ZSk7bGV0IG89dCgpLGk9byUzO289by8zfDA7bGV0IGM9ISEobyYxKTtvPj49MTtsZXQgbj1vPT0xLHM9bz09MjtyZXR1cm57YnJhbmNoZXM6QSx2YWxpZDppLGZlMGY6YyxzYXZlOm4sY2hlY2s6c319fWZ1bmN0aW9uIFooKXtyZXR1cm4gUChVcigiQUVRRjJBTzJERXNBMndJckFHc0JSQUJ4QU44QVp3Q2NBRXdBcWdBMEFHd0FVZ0J5QURjQVRBQVZBRllBSVFBeUFDRUFLQUFZQUZnQUd3QWpBQlFBTUFBbUFESUFGQUFmQUJRQUt3QVRBQ29BRGdBYkFBOEFIUUFZQUJvQUdRQXhBRGdBTEFBb0FEd0FFd0E5QUJNQUdnQVJBQTRBRHdBV0FCTUFGZ0FJQUE4QUhnUVhCWU1BNUJISkFTOEp0QVlvQWU0QUV4b3ppMFVBSDIxdEFhTW5CVDhDcm5JeWhyTURoUmdEeWdJQlVBRUhjb0ZIVVBlOEFYQmpBZXdDamdEUVI4SUlDSWNFY1FMd0FUWENEZ3p2SHdCbUJvSE5BcXNCZEJjVUF5a2dEaEFNU2hza01nbzhBWThqcUFRZkFVQWZIdzhCRHc4N01pb0dsQ0lQQndaQ2E0RUxhdE1BQU1zcEpWZ3NEbDhBSWhja1NnOFhBSGR2VHdCY0lRRWlEVDRPUGhVcWJ5RUNBRW9BUzM0QWVqOFlieDgzSmdUL1h3OGdIeFovN3c4UklDeFBIQTl2QncrUGZ3OFBId0FQRnYrZkFzQXZDYzh2RXI4aXZ3RC9FUThCb2w4T0VCYS9BNzhocndBUENVOHZFU052dndXZkh3TmZBVm9ESHIrWkFBRUQzNFlhQWRKUEFLN1BMd1NFZ0RMSEFHbzFQejhQdng5ZlV3TXJwYjhPLzU4VlR6QVBJQm9YSXlRSk5GOGhwd0lWQVQ4WUdBVUFERE5CYVgzUkFNb21KQ2c5RWhVZUEyOU1BQnNaQlRNTkppcGpPaGMxOWdjSURSOGJCd1FIRWdnQ1dpNkRJZ0x1QVFZQStCQUZDaGEzQTVYaUFFc3FNN1VGRmdGTGhBTWpGVE1ZRTFLbG53NzRuUlZCRy9BU0NtMEJZUk4vQnJzVTNWb1d5K1MwdlY4TFF4K3ZOOGdGMkFDMkFLNUVBV3dBcGdZREttQUFyb1EwTkRRMEFUK09DZzd3QUFJSFJBYnBOZ1ZjQlYwQVBUQTVCZmJQRmdNTHpjWUwvUXFxQTgyZUJBTEtDalFDanFZQ2h0MC9rMitPQXNYUUFvUDNBU1RLRGdEdzZBQ0tBVVlDTXBJS0pwUmFBRTRBNXdvbUFCelp2czBSRUVLaUFDSVFBZDVRZEFFQ0FqNFl3Zy93R3FZMkFWZ0FZQURZdkFvQ0dBRXViQTBndkFZMkFMQUFicGJ2cXB5RUFHQUVwZ1FBSmdBRzdnQWdBRUFDbWdoVUZ3Q3FBTXBBSU5RSXdDNER0aFJBQVBjeWNLZ0Fwb0lkQUJ3QmZDaXNBQm9BVHdCcUFTSUF2aG5TQlA4YUgvRUNlQUtYQXE0ME5qZ0RCVHdGWVFVNkFYczNvQUJnQUQ0WE5nbWNDWTFlQ2w1dElGWmVVcUdneW9OSEFCZ0FFUUFhQUJOd1dRQW1BQk1BVFBNYTNUMzRBRGxkeXBybU0xTTJYb2NpVVFnTHp2d0FYVDN4QUJnQUVRQWFBQk53SUdGQW5BREQ4QUFnQUQ0QkJKV3phQ2NJQUlFQkZNQVd3S29BQWRxOUJXQUY1d0xRcEFMRXRRQUtVU0drYWhSNEduSk0rZ3NBd0NnZUZBaVVBRUNRMEJRdUw4QUFJQUFBQURLZUloZWNsdkZxUUFBRVRyNGlBTXhJQVJNZ0FNSW9IaFFJQW4wRTBwRFFGQzRIaHpub0FBQUFJQUkyQzAvNGx2RnFRQUFFVGdCSkp3WUNBeTRBQmdZQUZBQThNQktZRUg0ZVJoVGtBalllRmNnQUNBWUFlQUJzT3F5UTVnUndEYXlxdWdFZ2FJSUF0Z29BQ2dEbUVBQm1CQVdHbWU1T0JKSkEybTRjRGVvQW1JVFdBWHdyTWdPZ0FHd0JDaDZDQlhZRjFUemcxd0tBQUZkaXVBQlJBRndBWFFCc0FHOEFkZ0JyQUhZQWJ3Q0VBSEV3ZnhRQlZFNVRFUUFEVkZoVEJ3QkRBTklMQXFjQ3pnTFRBcFFDclFMNnZBQU1BTDhBUExoTkJLa0U2Z2xHS1RBVTREcjROMkVZRXdCQ2tBQktrOHJIQWJZQm13SW9BaVU0QWpmL0FxNENvd0NBQU5JQ2h6Z2FOQnNDc1RnZU9EY0ZYcmdDbFFLZEFxUUJpUUdZQXFzQ3NqVHNOSHNmTlBBMGl4c0FXVFdpT0FNRlBEUVNOQ2syQkRaSE5vdzJUVFpVTmhrMjhKazlWekkzUWtFb0FvSUNvUUt3QXFjQVFBQXhCVjRGWGJTOUJXNDdZa0lYUDFjaVVxczA1RFMvRndBQlV3SlcxMWU2bkh1WVptU2gvUkFZQThvTUt2WjhLQVNvVUFKWVdBSjZJTEFzQVpTb3FqcGdBMG9jQklobURnRFdBQWF3UkRRb0FBY3VBajVpQUhBQlppUjJBSWdpSGdDYUFVNjhBQ3h1SEFHMHlnTThNaVpJQWxnQmRGNEdhZ0pxQVBaT0hBTXVCZ29BVGtZQXNBQmlBSGdBTUxvR0RQajBIcEtFQkFBT0pnQXVBTGdnVEFIV0FlQU1FRGJkMjBVZWdlMEFEd0FXQURrQVFnQTlPSGQrMk1VUVpCQmhCZ05ORGt4eFB4VVFBckVQcXd2cUVSb00xaXJRMDkwQU5LNEg4QU5ZQi9BRFdBTllCL0FIOEFOWUIvQURXQU5ZQTFnRFdCd1A4Qi9ZeFJCa0QwMEVjZ1dUQlpBRTJ3aUlKazRSaGdjdENOZFVFblFqSEV3RFNnRUJJeXBKSVR1WU14QWxSMHdSVFFnSUFUWkhiS3g5UFFOTU1iQlUrcENuQTlBeVZEbHhCZ01lZGhLbEFDOFBlQ0UxdWs2RGVreHhwUXBRVDdOWDl3QkZCZ0FTcXdBUzVnQkpEU2dBVUN3R1BRQkk0elRZQUJOR0FFMmJBRTNLQUV4ZEdBQkthQWJnQUZCWEFGQ09BRkJKQUJJMlNXZE9iQUxET3EwLy9Rb21DWmh2d0hkVEJrSVFIQ2VtRVBnTU5BRzJBVHdON2t2WkJQSUdQQVRLSDM0WkdnL09sWjBJcGkzZURPNG01QzZpZ0ZzajlpcUVCZTVMOVR6ZUMwNVJhUTlhQzJZSjVEcGtnVThESWdFT0lvd0szZzA2Q0c0UTlBcktiQTNtRVVZSE9nUFdTWnNBcGdjQ0N4SWROaFcySmhGaXJRc0tPWGdHL0JyM0M1QW1zQk1xZXYwRjFCb2lCazRCS2hzQUFOQXU2SVd4V2pKY0hVOWdCZ1FMSmlQSUZLbFFJUTBtUUxoNFNSb2NCeFlscWdLU1EzRktpRkUzSHBRaDl6dytEV2N1RkZGOUIvWThCaGxRQzRJOG4wYXNSUThSMHo2T1BVa2lTa3d0QkRhQUxEQW5qQW5RRDRZTXVueHpBVm9KSWdteURISVRNaEVZTjhZSU9nY2FMcGNsSnhZSUlrYVdZSnNFK0tBRDlCUFNBd3dGUUFsQ0J4UUR0aHd1RXk4VktnVU9nU1hZQXZRMjFpNjBBcEJXZ1FFWUJjd1BKaC9nRUZGSDRRN3FDSndDWmdPRUpld0FMaFVpQUJnaW5BaEVaQUJnajlsVEJpN01DTWhxYlNOMUEyZ1U2R0lSZEFlU0RsZ0hxQncwRmNBYzRuREpYZ3lHQ1Npa3NBbGNBWFlKbWdGZ0JPUUlDalZjaktFZ1FtZFVpMWtZbkNCaVFVQmQvUUl5REdZVm9FUytoM2tDakE5c0Vod0JOZ0YwQnpvTkFnSjRFZTRSYkJDV0NPeUdCVFcyTS9rNkpnUlFJWVFnRWdvb0ExQnN6d3NvSnZvTStXb0JwQkpqQXcwMFBuZnZaNnhndHlVWC9nY2FNc1pCWVNIeUM1TlB6Z3lkR3NJWVExUXZHZVVId0FQMEd2UW42MEZZQmdBRHBBUVVPazR6N3dTK0Myb0lqQWxBQUVvT3BCZ0gyQmhyQ25LTTBRRXlqQUc0bWdOWWtvUUNjSkFHT0FjTUFHZ01pQVY2NWdBZUFxZ0lwQUFHQU5BRFdBQTZBcTRIbmdBYUFJWkNBVDRES0RBQkl1WUNrQU9VQ0RMTUFaWXdBZlFxQkJ6RURCWUErRGh1U3dMRHNnS0FhMmFqQmQ1WkFvOENTallCVGlZRUJrOUlVZ093Y3VJQTNBQk1CaFRnU0FFV3JFdk1HK1JFQWVCd0xBRElBUHdBQmpZSEJrSUJ6Z0gwYmdDNEFXQUxNZ21qdExZQlR1b3FBSVFBRm13QjJBS0tBTjRBTmdDQThnRlVBRTRGV3ZvRjFBSlFTZ0VTTWhrc1dHSUJ2QU1nQVRRQkRnQjZCc3lPcHNvSUlBUnVCOVFDRUJ3VjRnTHZMd2UyQWdNaTRCUE9Rc1lDdmQ5V0FESVhVdTVlWndxb0NxZGVhQUMwWVRRSE1uTTlVUUFQSDZrK3lBZHkvQlpJaVFJbVN3QlE1Z0JRUXpTYU5URldTVFlCcHdHcUtRSzM4QUZ0cXdCSS93SzM3Z0szclFLM3NBSzYyODBDMGdLMzNBSzN6eEFBVUVJQVVEOVNrbEtEQXJla0FydzVBRVFBekFIQ08xNDdXVHRlTzFrN1hqdFpPMTQ3V1R0ZU8xa0RtQ2hZSTAzQVZVMG9KcWtLYlY5R1lld01wdzNWUk1rNlNoUGNZRkpnTXhQSkxiZ1V3aFhQSlZjWlBocTlKd1lsNVZVS0R3VXQxR1l4Q0MwMGRoZTlBRUFwYVlOQ1k0Y2VNUXBNSE9oVGtsVDVMUndBc2t1ak03QU5yUnNXUkVFRlNIWHVZaXNXRHdvakFtU0NBbUpEWEU2d1hEY2hBcUg0QW1pWkFtWUtBcCtGT0J3TUFtWThBbVluQkc4RWdBTi9GQU4ra3prSE9YZ1lPWU02SkNRQ2JCNENNamM0Q3dKdHlBSnRyL0NMQURSb1Jpd0JhQURmQU9JQVN3WUhtUXlPQVA4TXd3QU90Z0ozTUFKMm8wQUNlVXhFQW5pN0hsM2NSYTlHOUFKOFFBSjZ5UUo5Q2dKODhVZ0JTSDVrSlFBc0ZrbFpTbHdXR0VyTkF0RUNBdEROU3lnRGlGQURoK2RFeHBFekF2S2lYUVFEQTY5THowd3VKZ1RRVFUxTnNBS0xRQUtLMmNJY0NCNUVhQWE0QW80NEFvNWRRWmlDQW83YUFvNWRlVkcxVXpZTFV0VlVoZ0tUL0FLVERRRHFBQjFWSDFXd1ZkRUhMQndwbG9jeTRuaG5SVHc2QXBlZ0F1K3pXQ0twQUZvbUFwYVFBcFo5blFDcVdhMWFDb0pPQUR3Q2xyWUNsazljUlZ6U0Fwbk1BcGxsWE10ZENCb0NuSnc1d3pxZUFwd1hBcCtjQXA2NWl3QWVFRElyRUFLZDhnS2Vrd0MyUG1FMVlmQUNudFFDb0c4QnFnS2VvQ0FDbmsrbVk4bGtLQ1lzQWlld0FpWi9BcUQ4QXFCTjJBS21NQUtsendLb0FBQitBcWZ6YUgxb3NnQUVTbW9kYXRJQ3JPUUNySzhDcldnQ3JRTUNWeDRDVmQwQ3NlTFlBeDlQYkpnQ3NyNE9BckxwR0d6aGJXUnRTV0FESmM0Q3RsMDhRRzZSQXlsR0FyaGZBcmxJRmdLNUszaHdOM0RpQXIwYUF5MnpBeklTQXI2SmNnTURNM0lDdmh0ekkzTlFBc1BNQXNNRmM0TjBURFpHZE9FRFBLZ0RQSnNEUGNBQ3hYMEN4a2dDeGhHS0FzaHFVZ0xJUlFMSlVBTEpMd0prbmdMZDAzaDZZbml2ZVNaTDBRTVlwR2NEQW1IMUdmU1ZKWHNNWHBOZXZCSUN6MndDejIwd1RGVFQ5QlNnQU1ldUFzOTBBU3JyQTA0VGZrd0dBdHdvQXR1TEF0SlFBMUpkQTFOZ0FRSURWWTJBaWtBQnpCZnVZVVoyQUlMUGc0NEMyc2dDMmQrRUVZUktwejBEaHFZQU1BTmtENFp5V3ZvQVZnTGZaZ0xldVhSNEF1SXc3UlVCOHpFb0FmU2NBZkxUaUFMcjlBTHBjWG9BQXVyNkF1cmxBUHBJQWJvQzdvb0M2NTJXcTVjRUF1NUFBNFhobUhwdzRYR2lBdk1FQUdvRGpoZVpsQUwzRkFPUmJ3T1NpQUwzbVFMNTJnTDRaNW9kbXF5OE9Kc2ZBNTJFQXY3N0FSd0FPcDhkbjdRREJZNERwbXNEcHRvQTBzWURCbXVoaWFJR0NnTU1TZ0ZnQVNBQ3RnTkdBSndFZ0xwb0JnQzhCR3pBRW93Y2dnQ0VEQzZrZGpvQUpBTTBDNUlLUm9BQlpDZ2lBSXp3M0FZQkxBQ2tmbmc5b2dpZ2tnTm1XQU42QUVRQ3Zya0VWcVRHQXdDc0JSYkFBKzRpUWtNQ0hSMDcyakkyUFRiVU5zazJSalk1TnZBMjNUWktOaVUzRURjWk41SStSVHhEUlRCQ0prSzVWQllLRmhaZndRQ1d5Z1UzQUpCUkhwdStPeXRnTnhhNjFBNDBHTXNZanNuN0JWd0ZYUVZjQlYwRmFBVmRCVndGWFFWY0JWMEZYQVZkQlZ3RlhVc2FDTnlLQUs0QUFRVUhCd0tVN29JQ29XMWU3akFFemdQeEErWUR3Z0NrQkZEQXdBREFCS3pBQU94RkxoaXRBMVVGVERleVBrTStiajUxUWtSQ3V3VFFXV1E4WCswQVdCWXpzQUNOQTh4d3pBR203RVovUWlzb0NUQWJMRHM2Zm5MZmI4SDJHY2NzYmdGdzEzTTFIQVZrQlcvSnhzbTlDTlJPOEU4RkREMEZCUXc5RmtjQ2xPWUNvTUZlZ3BEZkFEZ2NNaUEyQUpRQUNCOEFzaWdLQUl6SUVBSktlQklBcFk1eVBaUUlBS1FpSGI0ZnZqNUJLU1JQUXJaQ096MG9YeXhnT3l3ZktBbkdiZ01DbFFhQ0FrSUxYZ2RlQ0Q5SUlHVWdRajVmUG9ZK2RUNTJBbzVDTTBkQVg5QlRWRzlTRHpGd1dUUUFieEJ6SkYvbE9FSVFRZ2xDQ2tLSklBbHM1QWNDbFFJQ29LUE1PREVGeGhpNktTQWJpeWZJUnJNanRDZ2RXQ0FrUGxGQklpdENzRUpSekFiTUFWL09FeVF6RGcwT0FRUUVKMzZpMzI4L01rOUF5YkRKc1FscTN0RFJBcFVLQWtGelhmMWQvajl1QUxZUDZoQ29GZ0NUR0Q4a1BzRktRaW9icm0wK3pqMEtTRDhrUG5WQ1JCd01EeUpSVEhGZ01USmE1cndYUWlRMllmSS9KRDdCTUVKRUhHSU5UdzRUT0ZsSVJ6d0pPMGljTVFweVB5USt3ekpDUkJ2NkRWZ25LQjAxTmdVS2oyYndZek1xQ29Ca3puQmdFRit6WURJb2N3UklYK05nSGo0SElDTmZoMkM0Q3dkd0ZXcFRHL2xnVWhZR0F3UmZ2MlRzOG1BYVh6VmdtbC9YWUlKZnVXQzRISTFnVUY5cFlKWmdNUjZpbFFITUFPd0xBbERSZWZDMGluNEFYQUVKQTZQakN3YzBJYW1PQU5NTUNBRUNSUURGTlJUWkJnZCtDd1FsUkErcjYrZ0xCREVGQm53VUJYZ0tBVElBcndBR1JBQUhBM2NEZEFOMkEza0Rkd045QTNvRGRRTjdBMzBEZkFONEEzb0RmUUFZRUFBbEF0WUFTd01BVUFGc0FIY0tBSGNBbWdCM0FIVUFkUUIyQUhWdThVZ0F5Z0RBQUhjQWRRQjFBSFlBZFFBTENnQjNBQXNBbWdCM0FBc0NPd0IzQUF0dThVZ0F5Z0RBQUhnS0FKb0Fkd0IzQUhVQWRRQjJBSFVBZUFCMUFIVUFkZ0IxYnZGSUFNb0F3QUFMQ2dDYUFIY0FDd0IzQUFzQ093QjNBQXR1OFVnQXlnREFBSDRBQ3dHZ0FMY0Jwd0M2QWFoZEF1MENPd0x0YnZGSUFNb0F3QUFMQ2dDYUF1MEFDd0x0QUFzQ093THRBQXR1OFVnQXlnREFBMjRBQ3dOdkFBdTBWc1FBQXpzQUFCQ2tqVUlwQUFzQVVJdXNPZ2dXY2dNZUJ4VnNHd0w2N1UvMkhsem1XT0VlT2dBTEFTdnVBQXNlQWZwS1VwbnBHZ1lKRENJWk02WXlBUlVFOVRocUFENWlYUWduQUpZSlBuT3p3MFpBRVp4RUtzSUFrQTREaEFIblRBSUR4eFVESzBseENRbFBZZ0l2SVFWWUpRQlZxRTFHYWtVQUtHWWlEVG9TQkExRXRBWUFYUUpZQUlGOEdnTUhSeUFBSUFqT2U5WW5jZWtSQUEwS0FDVXJqd0U3QXljNkFBWVdBcWFpS0c0TWNFY3FBTm9OMytNZzlUd0NCaElrdUNueStKd1VRMjlMMDA4Smx1Unh1M0srb0FkcWlIT3FGSDBBRzVTVUlmVUo1U3hDR2Z4ZGlwUnpxVG1UNFY1WmIrcjFVbzRWbStOcVNTRWwybU52UjJKaElhOFNwWU82bnRkd0ZYSENXVENLOGYyK0h4bzd1aUczZHJEeWNBdUtJTVA1YmhpMDZBQ25xQXJIMXJ6NFJxZy8vbG02U2dKR0VWYkY5eEpISVNhUjZIeHF4U25rdzZzaERuZWxIS05FZkdVWFNKUkoxR2NzbXRKdzI1eHJaTURLOWdYU20xL1lNa2RYNC82TktZT2R0ay9OUTMvTm5EQVNqVGMzZlBqSWpXLzVzVmZWT2JYMm9URFdrcjFkRjlmM2t4QnNEMy8zYVFPOGhQZlJ6K2UwdUVpSnF0MTE2MWdyaXU3Z3o4aEREd3RweStGK0JXdGVmbktIWlBBeGNab1dibnpuaEpweTBlODQyajM2YmNOekduSUV1c2dHWDBhOFp4c25qY1NzUERaMDl5WjM2ZkNRYnJpSGVRNzJKUk1JTE5sNmVQUGYySFdvVndnV0FtMWZiM1Yyc0FZMCtCNnJBWHFTd1BCZ3NlVm1vcXNCVFNybTkxK1hhc01ZWXlTSThlZVJ4SDNadkhrTXozQlE1YUozaVVWYllQTk0zLzdlbVJ0amxzTWd2LzlWeVRzeXQvbUsrOGZnV2VUNlNvRmFjbFhxbjQyZEFJc3ZBYXJGNXZOTldIektTa0tRLzhIZms1WldLN3I5eWxpT3Nvb3lCalJoZmtIUDRRMkRrV1hRaTZGRy85ci9Jd2Jta1Y1VDdKU29wSEtuMXBKd205dGI1T3Qwb3lOMVoybVBwS1hIVHh4Mm5sSzA4ZktrMWhFWUE4V2dWVldMNWxneDBpVHYrS2RvakplVTIzWkRqbWl1YlhPeFZYSktLaTJXanVoMkhMWk9GTGlTQzdUbHM1U01oNGYrUGo2eFVTck5qRnFMR2VoUk5COGxDMFFTTE5ta0pKeC93U0czTW5qRTlUMUNrUHdKSTB3SDJsZnp3RVRJaVZxVXhnMGRmdTVxMzlHdCtod2RjeGtoaE52UTRUeXJCY2VvZjNNaHMvSXhGY2kxSG1IcjRGTVpnWEVFY3pQaUdDeDBIUnd6QXFEcTJqOUFWbTFrd04wbVJWTFdMeWxndG9QTmFwRjVjWTRZMXdKaC9lMEJCd1pqNDRZZ1pyRE5xdkQvOUh2N0dGWWRVUWVESnVRM0VXSTRIYUtxYXZVMVhqQy9uNDFrVDRMNzlrcUdxMGtMaGRUWnZnUDNUQTNmUzBvelZ6KzVwaVpzb090SXZCVUZvTUtiTmNtQkw2WXh4YVVBdXNIQjM4WHJTOGRRTW5Rd0pmVVVrcFJvR3I1QVVlV2ljdkJUenlLOWc3Nyt5Q2tmNVBBeXNMN3IvSmpjWmdyYnZScE1XOWl5YXhadktPNmNlWk4yRXdJeEt3VkZQdXZGdWlFUEdDb2FnYk1vK1NweWRMclhxQnpOQ0RHRkNyTy9ya2N3YTJ4aG9rUVo1Q2RaMEFzVTNKZlNxSjZuNUkxNFlBK1AvdUFnZmhQVTg0VGx3N2NFRmZwN0FFRThleTRzUDEyUFR0NENvZHMxR1JnRE9CNXh2eWlSNW0rQng4TzVuQkNOY3RVOEJldmZWNUEwOHg2UkhkNWpjd1BUTURTWkpPZWRJWjFjR1E3MDRseGJBenFaT1AwNVp4YU9naHpTZHZGQkhZcW9tQVRBUnlBQURLNGVsUDhMeTNJclVaS2ZXaDIzWHkyMHVCVW1MUzRQZmFndTkrb3lWYTJpUGdxUlAzRjJDVFVzdko3K1JZbk44ZkZaYlUvSFZ2eHZjRkZES2tpVHFWNVVCWjNHejU0SkFLQnlpOWhrS01aSnZ1R2djU1lYRm13MDhVeW9ReVZkZlREMS9kTWtDSFhjVEdBS2VST2dBcnN2bVJyUVRMVU9YaW9PSEdLMlFrakh1b1lGZ1hjaVpvVEpkNkZzNXExUVgxRytwL2UyNmhZc0VmN1FaRDFubkl5bC9TRmtOdFlZbW1CaHBCcnhsOVdiWTBZcEhXUnV3MkxsL3RqOW1EOFA0c25WekpsNEY5SisxYXJWZVRiOUU1cjJJTEgwNHFTdGp4UU53bjNtNFlOcXhtYU5iTEFxVzJUTjZMaWR3dUpScVMrTlhidHF4b2VEWHB4ZUdXbXh6U2tXeGpreUNrWDROUVJtZTZxNVNBY0MrTTcrOUVUZkEvRXdyelFhaktha0N3WXlldW5QNlpGbHhVMm9NRW4xUHozMXplU3RXNzRHNDA2WkpGQ2wxd0FYSW9VS2tXb3RZRXBPdVhCMXVWTnhKNjNkcEpFcWZ4QmVwdHdJSE5yUHo4QmxsWm9JY0JvWHdnZkorOFZBVW5WUHZSdmV4bncwTWEvV2lHWXVKTzV5OFFUdkVZQmlnRm1oVXhZNVJxekU4T2N5d04vOG00VVlybGFuaUpPNzVYUTZLU285K3RXSGx1K2hNaTBVVmRpS1FwN05lbG5vWlV6TmFJeUJQVmVPd0s2R05wK0ZmSHVQT295aGFXdU52VFlGa3Z4c2NNUVdEaCt6ZUZDRmtnd2JYZnRpVjIzeXdKNCt1d1JxbWc5azNLendJUXB6cHB0OERCQk9NYnJxd1FNNUdiMDVzRXdkS3pNaUFxT2xvYUEvbHIwS0ErMXByMC8rSGlXb2lJakhBL3dpcjJuSXVTM1BlVS9qaTNPNlp3b3hjUjFTWjlGaHRMQzVTMEZJekZoYkJXY0dWUC9LcHhPUFNpVW9BZFdVcHFLSCsrNlNjejUwN2lDY3hZSTZyZE1CSUNQSlplYTdPY21lRnc1bU9iSlNpcXBqZzJVb1dOSXMrY0ZoeURTdDZnZVY1cWdpM0Z1bm13d0RvR1NNZ2VyRk9aR1gxbTBkTUNZbzVYT3J1eE8wNjNkd0VOSzlEYm5WTTl3WUZSRXpoNHZ5VTFXWVlKL0xSUnA2b3hnanFQL1g1YTgvNEFmNnA2TldrUWZlcnpCbVhtZTB6WS80bndNSm0vd2QxdElxU3dHeitFM3hQRUFPb1psSml0M1hkZEQ3L0JUMXBsbHpPeCs4Ym1RdEFOUS9TNmZaZXhjNnFpM1crUTJ4Y21YVFVodVM1bXBIUVJ2Y3haVU4wUzUrUEw5bFhXVUFhUlpoRUg4aFRkQWN1Tk1NQ3VWTktURUd0U1VLTmkzTzZLaFNhVHpjazhjc1oydldSWitkN21XOGM0SUt3WElZZDI1Uy96SWZ0UGt3UHp1ZmpFdk9IV1ZEMW0rRmpwRFZVVFYwREdEdUhqNlFuYUV3THUvZEVnZExRT2c5RTFTcm85WEhKOHlrTEF3dFB1K3B4cUtEdUZleHFPTjFzS1FtN3J3YkUxRTY4VUNmQS9lcm92clRDRytEQlNOZzBsNGdvRFF2Wk42dU5sYnlMcGNaQXdqMlVjbHljdkxwSVpNZ3Y0eVJscGIzWXVNZnRvem9yYmNHVkh0L1ZlRFYzK0ZkZjFUUDBpdWFDc1BpMkc0WGVHaHN5RjF1YlZEeGtvSmhtbmlRMC9qU2cvZVlNTDlLTGZuQ0ZnSVNXa3A5MWVhdVIzSVF2RUQwbkFQWEsrNmhQQ1lzK24zK2hDWmJpc2ttVk1HMmRhKzBFc1pQb25VZUlZOEViZnVzUVhqc0svZUZEYW9zYlBqRWZRUzBSS0c3eWo1R0c2OU03TWVPMUhtaVVZb2NneWdKSEw2TTFxelVERHdVU21yOTlWN1NkcjJGM0pqUUFKWStGMHlIMzNJdjMrQzlNMzhlTUw3Z1RnbU51L3IyYlVNaVB2cFliWjZ2MS9JYUVTaXJCSE5hN21QS240ZEVtWWc3di8rSFFnUE4xRzc5akJRMStzb3lkZkRDMnIraDJCbC9LSWM1S2pNSzdPSDZuYjFqTHNOZjBFSFZlMktCaUU1MW94NjM2dXlHNkxobzB0M0ozNEw1UVkvaWxFM21pa2FGNEhLWEcxbUcxckNldlQxVnY2R2F2bHR4b1FlL2JNcnBadlJnZ25CeFNFUEVlRXprRWRPeFRuUFhIVmpVWWR3OEpZdmpCL283RWVnYzNNYStOVXhMTG5zSzBrSmxpblBtVUh6SEd0cms1K0NBYlZ6Rk9CcXB5eTNRVlVuelREZkMvMFhEOTQvb2tIK09CK2k3Zzlsb2xoV0lqU25mSWIrRXE0M1pYT1dtd3ZqeVYvcXFEK3QwZSs3bVRFTTc0cVAvT3p0OG5tQzdtUnB5dTYzT0I0S25VekZjMDc0U3FveVBVQWdNKy9USkdGbzZUNDRFSG5RVTRYNHo2cWFublZxZ3cvVTd6Q3B3Y21YVjFBdWJJcnZPbWtLSGF6SkFSNTVlUGpwNXRMQnNOOHZBcXMzTkFIZGNFSE9SMnhRMGxzTkFGelNVdXhGUUNGWXZYTFpKZE9qOXA0Zk5xNnAwSEJHVWlrMll6YUk0eHlTeTkxS3poUTArcTFoanh2SW1Sd1BSZjc2dENobFJraFJDaTc0TlhaOXFVTmVJd1ArczVwKzNtNW53UGROT0hnU0xENzluN085bTFuMXVESGlNbnRxNG5rWXdWNU9aMUVOYlh4RmQ0UGdybHZhdlpzeVVPNE1xWWxxcW4xTzhXL0kxZEVacTVkWGhyYkVUTGFaSWJDMktqL0FhL1FNK2ZxVU9IZGYwdFhBUTFodVozY21XRUNXU1h5LzQzajM1K012cTl4d3M3SktzZXJpWjFwRVdLYzhxbHpOckdQVUdjVmdPYTljUEpZSUpzR25KVEFVc0VjRE9FVlVMTzV4MHJYQmlqYzFsZ1hFelFRS2hST2Y4eklWODJ3OGVzd2M3OFlYMTFLWUxXUVJjZ0hOSkVsQnhmWHI3MmxTMlJCU2wwN3FUS29yTzJ1VURacjNzRmhZc3ZuaExabjBBOTRLUnpKLzdERUdJQWhXNVpXRnBMOGdFd3UxYUxBOU11V1p6TndsOE96ZTlZK2JYK3Y5Z3l3UlZub0I1SS84a1hUWFUzMTQxeVJMWXJJT096NlNPbnlITnk0U2llcXprQlhoYXJqZmpxcTFxNnRrbGFFYkE4UWZtMkRhSVBzN09UcS9udkpCaktmTzJIOWJIMmNDTWgxKzVnc3BmeWN1OGYvY3V1Um10RGp5cVo3dUNJTXlqZFYzYStwM2ZxbVhzUng0QzhsdWpleklGSG5RaVZUWExYdUkxWHJ3TjMrc2lZWWoySEhUdkVTVXg4RGxPVFhwYWs5cUZSSytMM21nSjFXc0Q3RjRjdTFhSm9Gb1lRbnUrd0dETU9qSk0za2lCUVdIQ2N2aEovSFJkeG9kT1FwNDVZWmFPVEEyMk5iNFhLQ1Z4cWtid01ZRmh6WVFZSUFuQ1c4RlcxNHVmOThqaFVHMnpyS2hRUTBxMENFcTB0NW5YeXZVeXZSOER2RDY5TFUrZzNpK0hGV1FNUThQcVp1SEQrc05LQVYwK002RUpDMHN6cTdyRXI3QjViUThCY05IenZETWM5ZXFCNVpDUWRUZjgwT2JuNHV6andwWVU3U0lTZHRWMFFHYTlEM1dyaDJCRFF0cEJLeGFORlYrL0N5MlAvU3YrOHM3VWQwRmQ3NFg0K28vVE56dFdnRVRVYXB5K21hak5RNjhMcTNlZTBaTzQ4VkViVFpZaUgxQ280T2xmV2VmODJSV2V5VVhvN3dvTTAzUHlhcEdmaWtUblFpbm9OcTV6NXZlTHBlTVYzSENBTVRhWm1BMW9HTEFuN1hTM1hZc3orWEs3Vk1Rc2M0WEtybURYT0xVL3BTWFZOVXE4ZElxVGJhLy8vM3g2TGlMUzZ4czF4dUNBWVNmY1EzK3JRZ211N3V2ZjNUSEt0NU9vbzk3VHFjYlJxeHg3RUFTaXphUUNCUWxsRy9yWXhWYXBNTGd0TGJaUzY0dzFNREJNWFgrUFFwQktOd3FVS09mMkREUkRVWFFmOUVoT1MwUWo0blRtbEE4ZHpTTHovRzFkK1VkOE1UeS82Z2hoZGlMcGVlckdZL1VsRE9maXVxRnNNVVU1L1VZbFArQkFtZ1JMdU5wdnJVYUxsVmtycURpZXZOVkVBd0YrNENvTTFNWlRtanhqSk1zS0pxK3U4WmQ3dE5DVUZ5NkxpeVlYUkpRNFZ5dkVRRkZhQ0dLc3hJd1FrazdFelo2TFRKcTJoVXVQaHZBVytnUW5TRzZKK01zekMrN1FDUkhjbnFEZHlOUko2VDl4eVM4N0E2TUR1dGJ6S0d2R2t0cGJYcXR6V3RYYjlIc2ZLMmNCTW9tak45YTR5K1RhSkxuWHhBZVgvSFd6bWY0Y1I0dkFMdC9QNHc0cWdLWTA0bWw0WmRMT2luRllTNmN1cDNHLzFpZTQrdDFlT25wQk5scUdxczc1aWx6a1Q0K0RzWlF4TnZhU0tKLy82ekliYmsvTTdMT2hGbVJjLzFSK2tCdHo3SkZHZFptL0NPb3RJZHZRb1hwVHFQLzF1cUVVbUNiL1FXb0dMTXdPNUFOY0h6eGRZNDhJR1A1K0orektPVEJGWjRQaWQrR1RNK1dxMTJNVi9IODZ4RUpwdEJhNlQrcDNrZ3B3TGVkTWFuQkhDMkdnTnJGcG9OMnhuck16OVdGV1gvOC95Z1NCa2F2cTJVdjdGZENzTEVZTHU5TExJdkFVMGJOUkR0ellsKy92WG1qcEl2dUpGWWptSTBpbTZRRVlxbkllTXNOalhHNHZJdXRJR0hpamVBRy85RURCb3pLVjVjbGRrSGJMeEhoMjV2VCtaRXpiaFhscXZwektKd2NFZ2ZOd0xBS0ZlbzAvcHZFRTEwWERCK0VYUlRYdFN6Sm96UUtGRkFKaE14WWtWYUNXK0U5QUw3dE1lVThhY3hpZEhxemI2bFg0NjkxVXNEcHkvTExSbVQrZXBnVzU2KzVDdzh0QjRrTVV2NnM5bGgzZVJLYnlHcytILzRtUU1hWXpQVGYyT09kb2tFbit6emd2b0QzRnFOS2s4UXFHQVhWc3FjR2RYclQ2MmZTUGtSMnZST0ZpNjhBNnNlODZVeFJVazRjYWpmUHlDQzRHNXdEaEQrek5xNGpvZFE0dTRuL20zN0xyMzZuNExJQUFzVnIwMmRGaTlBaXdBODFNWXMycm00ZURsRE5tZE1SdkVLUkhmQndXNURkTU5wMGpQRlpNZUFScUYvd0w0WEJmZCtFTUxCZk16cEg1R0g2TmFXKzF2cnZNZGcrVnhEemF0azNNWGdPM3JvM1AvRHBjQzYrTW80TXlTSmhLSmhTUjAxU0dHR3A1aFBXbXJyVWdydjNsRG5QK0hoY0kzbnQzWXFCb1ZBVlRCQVFUNWl1aFRnOG52UHRkOFplWWo2dzF4NlJxR1VCclNrdTcrTjErQmFhc1p2alRrNjRSb0lEbEw4YnJwRWNKeDNPbVk3akxvWnNzd2R0bWhmQy9HMjFsbFhoSVRPd212UkREZVRUUGJ5QVNPYTE2Y0Y1L0ExZlpBaWRKcHFqdTN3WUF5OWF2UFIxeWE2ZU5wOUs4WFlycnR1eGxxaStiREt3bGZyWWRSMFJSaUtSVlRMT0g4NStaWTdYU216UnBmWkJKamFUYTgxVkRjSkhwWm5ablNRTEFTR1lXOWw1MVpWL2g3ZVZ6VGkzSHY2aFVzZ2MvNTFBcUpSVGtwYkZWTFhYc3pvQkw4bkJYMHUvMGpCTFQ4bkgrZkplUGJyd1VSVDU4T1krVWllUmpkMXZzMDR3MFZHNVZOMlU2TW9HWmtRektOL3B0ejBRMzY2ZHhvVEdtajdpMU5RR0hpOUdnbnF1WEZZZHJDZlpCbWViN3MwVDZ5cmRsWkg1Y1p1d0hGeUlKL2tBdEdzVGcweEg1dGFBQXE0NEJBazFDUGs5S1ZWYnFRenJDVWlGZEYvNmd0bFBROGJISGMxRzFXOTJNWEdaNUhFSGZ0eUxZczhtYkQvOXhZUlVXa0htbE0wekMyaWxKbG5OZ1Y0YmZBTHBRZ2h4T1VvWkw3VlRxdENISWFRU1htK1lVTW5wa1h5Ym5WK0E2eGxtMkNWeThmbjBYbG0yWFJhMCt6ek9hMjFKV1dtaXhmaVBNU0NaN3FBNHJTOTNWTjNwa3BGMXM1VG9uUWppc0hmN2lVOVpHdlVQT0FLWmNSMXBiZVZmL1VsN09oZXBHQ2FJZDl3T3RxbzdwSjd5TGNCWjBwRmtPRjI4eTR6RUkva2NVTm11dEJIYVFwQmROTTh2akNTNkhaUm9ra2VvODhUQkFqR3lHN1NSKzZ2VWdUY3lLOUltYWxqMGt1eHowd21LK2J5UVUxMUFpSkZrL3lhNWROZHVSQ2xjblU2NHlHdS9pZVdTZU9vczF0M2VwK1JQSVdRMnB5VFlWYlpsdFRic2I3Tml3U2kzQVYrOEtMV2s3THhDbmZaVWV0RU04VGhuc1NvR0gzOC9ueUF3Rmd1SnA4Rmp2bEh0Y1dadVU0aFB2YTBySGZyMFVoT09KL0Y2dlM2MkZXN0t6a21SbGwySEVjN29VcTRmeWk1VDcwVmw3WVZJZnNQSFVDZEhlc2Y5TGs3V05WV083NUpEa1liTUk4VE9XOEpLVnRMWTlkNlVKUklUTzhvS28weFMrbzk5WXkwNGluaUdIQWFHajg4a0VXZ3d2ME9ySGRZL25yNzZET0dOUzU5aFhDR1h6VEtVdkRsOWlLcExTV1lOMWx4SWV5eXdkTnBUa2hheTc0dzJqRlQ2TlM4cWtqbzVDeEExeWZTWXdwNkFKSVpOS0llRUs1UEpBVzdPUmdXZ3dwMFZnellwcW92TXJXeGJ1K0RHWjZMaGllMVJBcXB6bThWVXpLSk9IM21Deld1VE9Mc04zVlQvZHYyZWVZZTlVamJSOFlUQnNMejdxNjBWTjFzVTUxayt1bTFmOEp4RDVwUGhiaFNDOHJSYUI0NTR0bWg2WVVXckpJMytHV1kwcWVXaW9qL3Ria1lJVE9rSmFldUd0NEpySnZIQStsMEd1N2tZN1hPYWEwNWFsTW5SV1ZDWHFGZ0xJd1NZNHVGNTlVZTVTVTRRS3VjL0hhbUR4YnIweDZjc0NldFhHb1A3UW4xQmsvSjlEc3luTy9VRDZpWjFIeXJ6K2ppdDBoREN3aS9FOU9qZ0tUYkIzWlFLUS8wWk92ZXZmTkhHME5LNEFqM0NwN05wUmswN1JUMWkvUzBFTDkzQWc4R1JnS0k5Q2ZwYWpLeUs2K0pqL1BJMUtPNS84NVZBd3oyQXd6UDhGVEJiMDc1SXhDWHY2VDlSVnZXVDJ0VWFxeERTOTJ6ckdVYld6VVlrOW1TczgycEVDSCtma3FzRHQ5M1ZXKys0WXNSL2RIQ1ljUVNZVE8vS2FCTURqOUxTRC9KLyt6MjBLcThYdlpVQUlIdG05aFJQUDNJdGJ1QXUySG01bGtQczkycGQ3a0N4Z1JzMHhPVkJuWjEzY2NkQTBhdW5yd3Y5U2RxRWxKUkMzZytvQ3Urblh5Q2dtWFVzOXlNalRNQUlIZnhaVithUEtjWmVVQld0MDU3WG84NUtzMUlyNWd6RUhDV3FaRWhyTFpNdUYxMXppR3RGUVVkcy9FRVNhamhhZ3pjS3N4YW1jU1p4R3RoNFVJSSthZFBoUWtVbngyV3lOKzRZV1IrcjNmOE1ua3lHRnVSNHpqenhKUzhXc1FZUjVQVHlSYUQ5aXhhNk1oNzQxbkJIYnpmalhIc2tHRHExNzl4YVJOckNJQjF6MXhSZldmanF3MnBIYzF6azl4bFBwTDhzUVdBSXVFVFpaaGJubUw1NHJjZVhWTlJ2VWlLcnJxSWtlb2dzbDBYWGIxN3lsTmIwZjRHQTlXZDQ0dmZmRUc4RlNaR0hFTDJmYmFUR1JjU2lDZUE4UG1BL2Y2SHo4SENTNzZmWFVId2d3a3pTd2xJNzFla1o3RmFwbWxrL0tDK0hzOGhVY3czTjJMTjVMaGtWWXlpellGbC91UGVWUDVsc29KSGhoZld2dlNXcnVDVVcxWmNKT2V1VGJyRGd5d0ovcUcwN2daSnBsblR2TGNZZE5hSDBLTVlPWU1HWCtyQjROR1BGbVFzTmFJd2xXcmZDZXp4cmU4elhCcnNNVCtlZFZMYkxxTjFCcUI3NkpINEJ2WlRxVUlNZkd3UEdFbitFbm1UVjg2ZlBCYVliRkwzREZFaGpCNDVDZXdrWEVBdEp4azQvTXMycFBYbmFScWRreTBIT1lkY1VjRTJ6Y1hxNHZhSXZXMi92MG5IRkpIMlhYZTIydWVEbXEvMThYR3RFTFNxODVqOVg4cTB0Y05TU0tKSVg4RlR1SkYvUGY4ajVQaHFHMnUrb3N2c0x4WXJ2dmZlVkpMKzR0a2NYY3I5SlY3djBFUm1qL1g2Zk0zTkM0ajZkUzErOVVtcjJvUGF2cWlBeWRUWlBMTU5SR1kyM0xPOXpBVkRseTdqRCs3MEc1VFBQTGRoUklsNFd4Y1lqTG5NK1NOY0oyNkZPcmtySVNVdFBPYkl6NVpiM0FHNjEya3JucHkxNVJNVysxY1FqbG5XRkk2NTM4cWt5OWF4ZDJvSm1ISUhQMDhLeVAwdWJHTytUUU5PWXV2MnVoMTd5Q0l2UjhWY1N0dzdvMWcwTk02MHNrKzhUcTdZZklCSnJ0cDUzR2t2elhIN09BMHA4L24vdTFzYXRmL1ZKaHRSMWw4V2E2R21hdWc3aGFTcGFDYVlRYXg2dGEwbWt1dGxiK2VBT1NHMWFvYk04MUQ5QTRpUzFSUmx6QkJvVlg2dFUxUzZXRTJOOU9SWTZEZmVMUkM0bDlSdnI1aDk1WERXQjJtUjFkNFdGdWRwc2dWWXdpVHdUMzFsanNrRDhaeURPbG01RGtHaDlOL1VCLzBBSTVYdmI4WkJtYWkyaFE0QldNcUZ3WW56eHdCMjZZSFNPdjlXZ1kzSlhudm9OKzJSNHJxR1ZoL0xMRE10cEZQK1NwTUdKTld2YklsNVNPb2RiQ2N6VzJSS2xla3NQb1VlR0V6cmp0S0hWZHRaQStrZnFPK3JWeC9pY2xDcXdvb3BlcHZKcFNURGpUK2I5R1d5bEdSRjhFRGJHbHc2ZVV6bUpNOTVPdm96K2t3TFgzYzJmVGpGZVlFc0U3dlVabTNtcWRHSnVLaDJ3OS9RR1NhcVJIczk5YVNjR09kRHFrRmNBQ29xZGJCb1FxcWphbWhINlE5bmczOUpDZzNsckdKd2Q1MFFrOW92bnFCVHI4TU1FN1BzMndpVmZ5Z1VtUG9VQkpKZkpXWDVOZGEwbnVuY2JGa0E9PSIpKX12YXIgSD1aKCksTnI9bmV3IFNldChEKEgpKSxUcj1uZXcgU2V0KEQoSCkpLGtyPWIoSCksU3I9VyhIKSxWPTQ1LGo9OTU7ZnVuY3Rpb24gXyh0KXtyZXR1cm4gSHIodCl9ZnVuY3Rpb24gRnIodCl7cmV0dXJuIHQuZmlsdGVyKHI9PnIhPTY1MDM5KX1mdW5jdGlvbiAkKHQpe2ZvcihsZXQgciBvZiB0LnNwbGl0KCIuIikpe2xldCBlPV8ocik7dHJ5e2ZvcihsZXQgQT1lLmxhc3RJbmRleE9mKGopLTE7QT49MDtBLS0paWYoZVtBXSE9PWopdGhyb3cgbmV3IEVycm9yKCJ1bmRlcnNjb3JlIG9ubHkgYWxsb3dlZCBhdCBzdGFydCIpO2lmKGUubGVuZ3RoPj00JiZlLmV2ZXJ5KEE9PkE8MTI4KSYmZVsyXT09PVYmJmVbM109PT1WKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBsYWJlbCBleHRlbnNpb24iKX1jYXRjaChBKXt0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbGFiZWwgIiR7cn0iOiAke0EubWVzc2FnZX1gKX19cmV0dXJuIHR9ZnVuY3Rpb24gcnIodCl7cmV0dXJuICQoSnIodCxGcikpfWZ1bmN0aW9uIEpyKHQscil7bGV0IGU9Xyh0KS5yZXZlcnNlKCksQT1bXTtmb3IoO2UubGVuZ3RoOyl7bGV0IG89eHIoZSk7aWYobyl7QS5wdXNoKC4uLnIobykpO2NvbnRpbnVlfWxldCBpPWUucG9wKCk7aWYoTnIuaGFzKGkpKXtBLnB1c2goaSk7Y29udGludWV9aWYoVHIuaGFzKGkpKWNvbnRpbnVlO2xldCBjPWtyW2ldO2lmKGMpe0EucHVzaCguLi5jKTtjb250aW51ZX10aHJvdyBuZXcgRXJyb3IoYERpc2FsbG93ZWQgY29kZXBvaW50OiAweCR7aS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX1gKX1yZXR1cm4gJCh2cihTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5BKSkpfWZ1bmN0aW9uIHZyKHQpe3JldHVybiB0Lm5vcm1hbGl6ZSgiTkZDIil9ZnVuY3Rpb24geHIodCxyKXt2YXIgZTtsZXQgQT1TcixvLGksYz1bXSxuPXQubGVuZ3RoO2ZvcihyJiYoci5sZW5ndGg9MCk7bjspe2xldCBzPXRbLS1uXTtpZihBPShlPUEuYnJhbmNoZXMuZmluZChhPT5hLnNldC5oYXMocykpKT09PW51bGx8fGU9PT12b2lkIDA/dm9pZCAwOmUubm9kZSwhQSlicmVhaztpZihBLnNhdmUpaT1zO2Vsc2UgaWYoQS5jaGVjayYmcz09PWkpYnJlYWs7Yy5wdXNoKHMpLEEuZmUwZiYmKGMucHVzaCg2NTAzOSksbj4wJiZ0W24tMV09PTY1MDM5JiZuLS0pLEEudmFsaWQmJihvPWMuc2xpY2UoKSxBLnZhbGlkPT0yJiZvLnNwbGljZSgxLDEpLHImJnIucHVzaCguLi50LnNsaWNlKG4pLnJldmVyc2UoKSksdC5sZW5ndGg9bil9cmV0dXJuIG99dmFyIHFyPW5ldyBHcihVKSxvcj1uZXcgVWludDhBcnJheSgzMik7b3IuZmlsbCgwKTtmdW5jdGlvbiBlcih0KXtpZih0Lmxlbmd0aD09PTApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIEVOUyBuYW1lOyBlbXB0eSBjb21wb25lbnQiKTtyZXR1cm4gdH1mdW5jdGlvbiBOKHQpe2xldCByPU9yKHJyKHQpKSxlPVtdO2lmKHQubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgQT0wO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bysrKXJbb109PT00NiYmKGUucHVzaChlcihyLnNsaWNlKEEsbykpKSxBPW8rMSk7aWYoQT49ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIEVOUyBuYW1lOyBlbXB0eSBjb21wb25lbnQiKTtyZXR1cm4gZS5wdXNoKGVyKHIuc2xpY2UoQSkpKSxlfWZ1bmN0aW9uIFJyKHQpe3JldHVybiBOKHQpLm1hcChyPT5LcihyKSkuam9pbigiLiIpfWZ1bmN0aW9uIHpyKHQpe3RyeXtyZXR1cm4gTih0KS5sZW5ndGghPT0wfWNhdGNoe31yZXR1cm4hMX1mdW5jdGlvbiBMcih0KXt0eXBlb2YgdCE9InN0cmluZyImJnFyLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBFTlMgbmFtZTsgbm90IGEgc3RyaW5nIiwibmFtZSIsdCk7bGV0IHI9b3IsZT1OKHQpO2Zvcig7ZS5sZW5ndGg7KXI9dHIoQXIoW3IsdHIoZS5wb3AoKSldKSk7cmV0dXJuIG5yKHIpfWZ1bmN0aW9uIFByKHQpe3JldHVybiBucihBcihOKHQpLm1hcChyPT57aWYoci5sZW5ndGg+NjMpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIEROUyBlbmNvZGVkIGVudHJ5OyBsZW5ndGggZXhjZWVkcyA2MyBieXRlcyIpO2xldCBlPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKzEpO3JldHVybiBlLnNldChyLDEpLGVbMF09ZS5sZW5ndGgtMSxlfSkpKSsiMDAifWltcG9ydHtjb25jYXQgYXMgYnJ9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYnl0ZXNAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtrZWNjYWsyNTYgYXMgWHJ9ZnJvbSIvQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QF41LjcuMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7dG9VdGY4Qnl0ZXMgYXMgeH1mcm9tIi9AZXRoZXJzcHJvamVjdC9zdHJpbmdzQF41LjcuMD90YXJnZXQ9ZXMyMDIyIjt2YXIgaXI9YBlFdGhlcmV1bSBTaWduZWQgTWVzc2FnZToKYDtmdW5jdGlvbiBXcih0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciJiYodD14KHQpKSxYcihicihbeChpcikseChTdHJpbmcodC5sZW5ndGgpKSx0XSkpfWltcG9ydHtnZXRBZGRyZXNzIGFzIHVyfWZyb20iL0BldGhlcnNwcm9qZWN0L2FkZHJlc3NAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtCaWdOdW1iZXIgYXMgQn1mcm9tIi9AZXRoZXJzcHJvamVjdC9iaWdudW1iZXJAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHthcnJheWlmeSBhcyBGLGhleENvbmNhdCBhcyBrLGhleGxpZnkgYXMgcSxoZXhaZXJvUGFkIGFzIFMsaXNIZXhTdHJpbmcgYXMgc3J9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYnl0ZXNAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtrZWNjYWsyNTYgYXMgQ31mcm9tIi9AZXRoZXJzcHJvamVjdC9rZWNjYWsyNTZAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtkZWVwQ29weSBhcyBWcixkZWZpbmVSZWFkT25seSBhcyBULHNoYWxsb3dDb3B5IGFzIGNyfWZyb20iL0BldGhlcnNwcm9qZWN0L3Byb3BlcnRpZXNAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtMb2dnZXIgYXMganJ9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjcuMD90YXJnZXQ9ZXMyMDIyIjt2YXIgWnI9ZnVuY3Rpb24odCxyLGUsQSl7ZnVuY3Rpb24gbyhpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIGU/aTpuZXcgZShmdW5jdGlvbihjKXtjKGkpfSl9cmV0dXJuIG5ldyhlfHwoZT1Qcm9taXNlKSkoZnVuY3Rpb24oaSxjKXtmdW5jdGlvbiBuKGYpe3RyeXthKEEubmV4dChmKSl9Y2F0Y2godSl7Yyh1KX19ZnVuY3Rpb24gcyhmKXt0cnl7YShBLnRocm93KGYpKX1jYXRjaCh1KXtjKHUpfX1mdW5jdGlvbiBhKGYpe2YuZG9uZT9pKGYudmFsdWUpOm8oZi52YWx1ZSkudGhlbihuLHMpfWEoKEE9QS5hcHBseSh0LHJ8fFtdKSkubmV4dCgpKX0pfSxnPW5ldyBqcihVKSxocj1uZXcgVWludDhBcnJheSgzMik7aHIuZmlsbCgwKTt2YXIgX3I9Qi5mcm9tKC0xKSxscj1CLmZyb20oMCksbXI9Qi5mcm9tKDEpLCRyPUIuZnJvbSgiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIik7ZnVuY3Rpb24gcnQodCl7bGV0IHI9Rih0KSxlPXIubGVuZ3RoJTMyO3JldHVybiBlP2soW3IsaHIuc2xpY2UoZSldKTpxKHIpfXZhciB0dD1TKG1yLnRvSGV4U3RyaW5nKCksMzIpLGV0PVMobHIudG9IZXhTdHJpbmcoKSwzMiksYXI9e25hbWU6InN0cmluZyIsdmVyc2lvbjoic3RyaW5nIixjaGFpbklkOiJ1aW50MjU2Iix2ZXJpZnlpbmdDb250cmFjdDoiYWRkcmVzcyIsc2FsdDoiYnl0ZXMzMiJ9LE89WyJuYW1lIiwidmVyc2lvbiIsImNoYWluSWQiLCJ2ZXJpZnlpbmdDb250cmFjdCIsInNhbHQiXTtmdW5jdGlvbiBmcih0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByIT0ic3RyaW5nIiYmZy50aHJvd0FyZ3VtZW50RXJyb3IoYGludmFsaWQgZG9tYWluIHZhbHVlIGZvciAke0pTT04uc3RyaW5naWZ5KHQpfWAsYGRvbWFpbi4ke3R9YCxyKSxyfX12YXIgQXQ9e25hbWU6ZnIoIm5hbWUiKSx2ZXJzaW9uOmZyKCJ2ZXJzaW9uIiksY2hhaW5JZDpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIEIuZnJvbSh0KS50b1N0cmluZygpfWNhdGNoe31yZXR1cm4gZy50aHJvd0FyZ3VtZW50RXJyb3IoJ2ludmFsaWQgZG9tYWluIHZhbHVlIGZvciAiY2hhaW5JZCInLCJkb21haW4uY2hhaW5JZCIsdCl9LHZlcmlmeWluZ0NvbnRyYWN0OmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdXIodCkudG9Mb3dlckNhc2UoKX1jYXRjaHt9cmV0dXJuIGcudGhyb3dBcmd1bWVudEVycm9yKCdpbnZhbGlkIGRvbWFpbiB2YWx1ZSAidmVyaWZ5aW5nQ29udHJhY3QiJywiZG9tYWluLnZlcmlmeWluZ0NvbnRyYWN0Iix0KX0sc2FsdDpmdW5jdGlvbih0KXt0cnl7bGV0IHI9Rih0KTtpZihyLmxlbmd0aCE9PTMyKXRocm93IG5ldyBFcnJvcigiYmFkIGxlbmd0aCIpO3JldHVybiBxKHIpfWNhdGNoe31yZXR1cm4gZy50aHJvd0FyZ3VtZW50RXJyb3IoJ2ludmFsaWQgZG9tYWluIHZhbHVlICJzYWx0IicsImRvbWFpbi5zYWx0Iix0KX19O2Z1bmN0aW9uIEsodCl7e2xldCByPXQubWF0Y2goL14odT8paW50KFxkKikkLyk7aWYocil7bGV0IGU9clsxXT09PSIiLEE9cGFyc2VJbnQoclsyXXx8IjI1NiIpOyhBJTghPT0wfHxBPjI1Nnx8clsyXSYmclsyXSE9PVN0cmluZyhBKSkmJmcudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIG51bWVyaWMgd2lkdGgiLCJ0eXBlIix0KTtsZXQgbz0kci5tYXNrKGU/QS0xOkEpLGk9ZT9vLmFkZChtcikubXVsKF9yKTpscjtyZXR1cm4gZnVuY3Rpb24oYyl7bGV0IG49Qi5mcm9tKGMpO3JldHVybihuLmx0KGkpfHxuLmd0KG8pKSYmZy50aHJvd0FyZ3VtZW50RXJyb3IoYHZhbHVlIG91dC1vZi1ib3VuZHMgZm9yICR7dH1gLCJ2YWx1ZSIsYyksUyhuLnRvVHdvcygyNTYpLnRvSGV4U3RyaW5nKCksMzIpfX19e2xldCByPXQubWF0Y2goL15ieXRlcyhcZCspJC8pO2lmKHIpe2xldCBlPXBhcnNlSW50KHJbMV0pO3JldHVybihlPT09MHx8ZT4zMnx8clsxXSE9PVN0cmluZyhlKSkmJmcudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGJ5dGVzIHdpZHRoIiwidHlwZSIsdCksZnVuY3Rpb24oQSl7cmV0dXJuIEYoQSkubGVuZ3RoIT09ZSYmZy50aHJvd0FyZ3VtZW50RXJyb3IoYGludmFsaWQgbGVuZ3RoIGZvciAke3R9YCwidmFsdWUiLEEpLHJ0KEEpfX19c3dpdGNoKHQpe2Nhc2UiYWRkcmVzcyI6cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBTKHVyKHIpLDMyKX07Y2FzZSJib29sIjpyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHI/dHQ6ZXR9O2Nhc2UiYnl0ZXMiOnJldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gQyhyKX07Y2FzZSJzdHJpbmciOnJldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gTShyKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ3IodCxyKXtyZXR1cm5gJHt0fSgke3IubWFwKCh7bmFtZTplLHR5cGU6QX0pPT5BKyIgIitlKS5qb2luKCIsIil9KWB9dmFyIEc9Y2xhc3MgdHtjb25zdHJ1Y3RvcihyKXtUKHRoaXMsInR5cGVzIixPYmplY3QuZnJlZXplKFZyKHIpKSksVCh0aGlzLCJfZW5jb2RlckNhY2hlIix7fSksVCh0aGlzLCJfdHlwZXMiLHt9KTtsZXQgZT17fSxBPXt9LG89e307T2JqZWN0LmtleXMocikuZm9yRWFjaChuPT57ZVtuXT17fSxBW25dPVtdLG9bbl09e319KTtmb3IobGV0IG4gaW4gcil7bGV0IHM9e307cltuXS5mb3JFYWNoKGE9PntzW2EubmFtZV0mJmcudGhyb3dBcmd1bWVudEVycm9yKGBkdXBsaWNhdGUgdmFyaWFibGUgbmFtZSAke0pTT04uc3RyaW5naWZ5KGEubmFtZSl9IGluICR7SlNPTi5zdHJpbmdpZnkobil9YCwidHlwZXMiLHIpLHNbYS5uYW1lXT0hMDtsZXQgZj1hLnR5cGUubWF0Y2goL14oW15ceDViXSopKFx4NWJ8JCkvKVsxXTtmPT09biYmZy50aHJvd0FyZ3VtZW50RXJyb3IoYGNpcmN1bGFyIHR5cGUgcmVmZXJlbmNlIHRvICR7SlNPTi5zdHJpbmdpZnkoZil9YCwidHlwZXMiLHIpLCFLKGYpJiYoQVtmXXx8Zy50aHJvd0FyZ3VtZW50RXJyb3IoYHVua25vd24gdHlwZSAke0pTT04uc3RyaW5naWZ5KGYpfWAsInR5cGVzIixyKSxBW2ZdLnB1c2gobiksZVtuXVtmXT0hMCl9KX1sZXQgaT1PYmplY3Qua2V5cyhBKS5maWx0ZXIobj0+QVtuXS5sZW5ndGg9PT0wKTtpLmxlbmd0aD09PTA/Zy50aHJvd0FyZ3VtZW50RXJyb3IoIm1pc3NpbmcgcHJpbWFyeSB0eXBlIiwidHlwZXMiLHIpOmkubGVuZ3RoPjEmJmcudGhyb3dBcmd1bWVudEVycm9yKGBhbWJpZ3VvdXMgcHJpbWFyeSB0eXBlcyBvciB1bnVzZWQgdHlwZXM6ICR7aS5tYXAobj0+SlNPTi5zdHJpbmdpZnkobikpLmpvaW4oIiwgIil9YCwidHlwZXMiLHIpLFQodGhpcywicHJpbWFyeVR5cGUiLGlbMF0pO2Z1bmN0aW9uIGMobixzKXtzW25dJiZnLnRocm93QXJndW1lbnRFcnJvcihgY2lyY3VsYXIgdHlwZSByZWZlcmVuY2UgdG8gJHtKU09OLnN0cmluZ2lmeShuKX1gLCJ0eXBlcyIsciksc1tuXT0hMCxPYmplY3Qua2V5cyhlW25dKS5mb3JFYWNoKGE9PntBW2FdJiYoYyhhLHMpLE9iamVjdC5rZXlzKHMpLmZvckVhY2goZj0+e29bZl1bYV09ITB9KSl9KSxkZWxldGUgc1tuXX1jKHRoaXMucHJpbWFyeVR5cGUse30pO2ZvcihsZXQgbiBpbiBvKXtsZXQgcz1PYmplY3Qua2V5cyhvW25dKTtzLnNvcnQoKSx0aGlzLl90eXBlc1tuXT1ncihuLHJbbl0pK3MubWFwKGE9PmdyKGEsclthXSkpLmpvaW4oIiIpfX1nZXRFbmNvZGVyKHIpe2xldCBlPXRoaXMuX2VuY29kZXJDYWNoZVtyXTtyZXR1cm4gZXx8KGU9dGhpcy5fZW5jb2RlckNhY2hlW3JdPXRoaXMuX2dldEVuY29kZXIocikpLGV9X2dldEVuY29kZXIocil7e2xldCBvPUsocik7aWYobylyZXR1cm4gb31sZXQgZT1yLm1hdGNoKC9eKC4qKShceDViKFxkKilceDVkKSQvKTtpZihlKXtsZXQgbz1lWzFdLGk9dGhpcy5nZXRFbmNvZGVyKG8pLGM9cGFyc2VJbnQoZVszXSk7cmV0dXJuIG49PntjPj0wJiZuLmxlbmd0aCE9PWMmJmcudGhyb3dBcmd1bWVudEVycm9yKCJhcnJheSBsZW5ndGggbWlzbWF0Y2g7IGV4cGVjdGVkIGxlbmd0aCAkeyBhcnJheUxlbmd0aCB9IiwidmFsdWUiLG4pO2xldCBzPW4ubWFwKGkpO3JldHVybiB0aGlzLl90eXBlc1tvXSYmKHM9cy5tYXAoQykpLEMoayhzKSl9fWxldCBBPXRoaXMudHlwZXNbcl07aWYoQSl7bGV0IG89TSh0aGlzLl90eXBlc1tyXSk7cmV0dXJuIGk9PntsZXQgYz1BLm1hcCgoe25hbWU6bix0eXBlOnN9KT0+e2xldCBhPXRoaXMuZ2V0RW5jb2RlcihzKShpW25dKTtyZXR1cm4gdGhpcy5fdHlwZXNbc10/QyhhKTphfSk7cmV0dXJuIGMudW5zaGlmdChvKSxrKGMpfX1yZXR1cm4gZy50aHJvd0FyZ3VtZW50RXJyb3IoYHVua25vd24gdHlwZTogJHtyfWAsInR5cGUiLHIpfWVuY29kZVR5cGUocil7bGV0IGU9dGhpcy5fdHlwZXNbcl07cmV0dXJuIGV8fGcudGhyb3dBcmd1bWVudEVycm9yKGB1bmtub3duIHR5cGU6ICR7SlNPTi5zdHJpbmdpZnkocil9YCwibmFtZSIsciksZX1lbmNvZGVEYXRhKHIsZSl7cmV0dXJuIHRoaXMuZ2V0RW5jb2RlcihyKShlKX1oYXNoU3RydWN0KHIsZSl7cmV0dXJuIEModGhpcy5lbmNvZGVEYXRhKHIsZSkpfWVuY29kZShyKXtyZXR1cm4gdGhpcy5lbmNvZGVEYXRhKHRoaXMucHJpbWFyeVR5cGUscil9aGFzaChyKXtyZXR1cm4gdGhpcy5oYXNoU3RydWN0KHRoaXMucHJpbWFyeVR5cGUscil9X3Zpc2l0KHIsZSxBKXtpZihLKHIpKXJldHVybiBBKHIsZSk7bGV0IG89ci5tYXRjaCgvXiguKikoXHg1YihcZCopXHg1ZCkkLyk7aWYobyl7bGV0IGM9b1sxXSxuPXBhcnNlSW50KG9bM10pO3JldHVybiBuPj0wJiZlLmxlbmd0aCE9PW4mJmcudGhyb3dBcmd1bWVudEVycm9yKCJhcnJheSBsZW5ndGggbWlzbWF0Y2g7IGV4cGVjdGVkIGxlbmd0aCAkeyBhcnJheUxlbmd0aCB9IiwidmFsdWUiLGUpLGUubWFwKHM9PnRoaXMuX3Zpc2l0KGMscyxBKSl9bGV0IGk9dGhpcy50eXBlc1tyXTtyZXR1cm4gaT9pLnJlZHVjZSgoYyx7bmFtZTpuLHR5cGU6c30pPT4oY1tuXT10aGlzLl92aXNpdChzLGVbbl0sQSksYykse30pOmcudGhyb3dBcmd1bWVudEVycm9yKGB1bmtub3duIHR5cGU6ICR7cn1gLCJ0eXBlIixyKX12aXNpdChyLGUpe3JldHVybiB0aGlzLl92aXNpdCh0aGlzLnByaW1hcnlUeXBlLHIsZSl9c3RhdGljIGZyb20ocil7cmV0dXJuIG5ldyB0KHIpfXN0YXRpYyBnZXRQcmltYXJ5VHlwZShyKXtyZXR1cm4gdC5mcm9tKHIpLnByaW1hcnlUeXBlfXN0YXRpYyBoYXNoU3RydWN0KHIsZSxBKXtyZXR1cm4gdC5mcm9tKGUpLmhhc2hTdHJ1Y3QocixBKX1zdGF0aWMgaGFzaERvbWFpbihyKXtsZXQgZT1bXTtmb3IobGV0IEEgaW4gcil7bGV0IG89YXJbQV07b3x8Zy50aHJvd0FyZ3VtZW50RXJyb3IoYGludmFsaWQgdHlwZWQtZGF0YSBkb21haW4ga2V5OiAke0pTT04uc3RyaW5naWZ5KEEpfWAsImRvbWFpbiIsciksZS5wdXNoKHtuYW1lOkEsdHlwZTpvfSl9cmV0dXJuIGUuc29ydCgoQSxvKT0+Ty5pbmRleE9mKEEubmFtZSktTy5pbmRleE9mKG8ubmFtZSkpLHQuaGFzaFN0cnVjdCgiRUlQNzEyRG9tYWluIix7RUlQNzEyRG9tYWluOmV9LHIpfXN0YXRpYyBlbmNvZGUocixlLEEpe3JldHVybiBrKFsiMHgxOTAxIix0Lmhhc2hEb21haW4ociksdC5mcm9tKGUpLmhhc2goQSldKX1zdGF0aWMgaGFzaChyLGUsQSl7cmV0dXJuIEModC5lbmNvZGUocixlLEEpKX1zdGF0aWMgcmVzb2x2ZU5hbWVzKHIsZSxBLG8pe3JldHVybiBacih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cj1jcihyKTtsZXQgaT17fTtyLnZlcmlmeWluZ0NvbnRyYWN0JiYhc3Ioci52ZXJpZnlpbmdDb250cmFjdCwyMCkmJihpW3IudmVyaWZ5aW5nQ29udHJhY3RdPSIweCIpO2xldCBjPXQuZnJvbShlKTtjLnZpc2l0KEEsKG4scyk9PihuPT09ImFkZHJlc3MiJiYhc3IocywyMCkmJihpW3NdPSIweCIpLHMpKTtmb3IobGV0IG4gaW4gaSlpW25dPXlpZWxkIG8obik7cmV0dXJuIHIudmVyaWZ5aW5nQ29udHJhY3QmJmlbci52ZXJpZnlpbmdDb250cmFjdF0mJihyLnZlcmlmeWluZ0NvbnRyYWN0PWlbci52ZXJpZnlpbmdDb250cmFjdF0pLEE9Yy52aXNpdChBLChuLHMpPT5uPT09ImFkZHJlc3MiJiZpW3NdP2lbc106cykse2RvbWFpbjpyLHZhbHVlOkF9fSl9c3RhdGljIGdldFBheWxvYWQocixlLEEpe3QuaGFzaERvbWFpbihyKTtsZXQgbz17fSxpPVtdO08uZm9yRWFjaChzPT57bGV0IGE9cltzXTthIT1udWxsJiYob1tzXT1BdFtzXShhKSxpLnB1c2goe25hbWU6cyx0eXBlOmFyW3NdfSkpfSk7bGV0IGM9dC5mcm9tKGUpLG49Y3IoZSk7cmV0dXJuIG4uRUlQNzEyRG9tYWluP2cudGhyb3dBcmd1bWVudEVycm9yKCJ0eXBlcyBtdXN0IG5vdCBjb250YWluIEVJUDcxMkRvbWFpbiB0eXBlIiwidHlwZXMuRUlQNzEyRG9tYWluIixlKTpuLkVJUDcxMkRvbWFpbj1pLGMuZW5jb2RlKEEpLHt0eXBlczpuLGRvbWFpbjpvLHByaW1hcnlUeXBlOmMucHJpbWFyeVR5cGUsbWVzc2FnZTpjLnZpc2l0KEEsKHMsYSk9PntpZihzLm1hdGNoKC9eYnl0ZXMoXGQqKS8pKXJldHVybiBxKEYoYSkpO2lmKHMubWF0Y2goL151P2ludC8pKXJldHVybiBCLmZyb20oYSkudG9TdHJpbmcoKTtzd2l0Y2gocyl7Y2FzZSJhZGRyZXNzIjpyZXR1cm4gYS50b0xvd2VyQ2FzZSgpO2Nhc2UiYm9vbCI6cmV0dXJuISFhO2Nhc2Uic3RyaW5nIjpyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciJiZnLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBzdHJpbmciLCJ2YWx1ZSIsYSksYX1yZXR1cm4gZy50aHJvd0FyZ3VtZW50RXJyb3IoInVuc3VwcG9ydGVkIHR5cGUiLCJ0eXBlIixzKX0pfX19O2V4cG9ydHtHIGFzIF9UeXBlZERhdGFFbmNvZGVyLFByIGFzIGRuc0VuY29kZSxSciBhcyBlbnNOb3JtYWxpemUsV3IgYXMgaGFzaE1lc3NhZ2UsTSBhcyBpZCx6ciBhcyBpc1ZhbGlkTmFtZSxpciBhcyBtZXNzYWdlUHJlZml4LExyIGFzIG5hbWVoYXNofTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFzaC5tanMubWFw"}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/tslib@1.14.1/es2022/tslib.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.690Z","timestamp":1785138633690,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /tslib@1.14.1/es2022/tslib.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/time@1.0.2/es2022/time.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:37 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcc9bfd569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":6947,"size_decoded":3721,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (5991)","md5":"f7aa455d8f3fa03c0aa7d5fe6a050031","sha1":"beb8d258a6a27553a5e0d3058bec98e4f620eff2","sha256":"748739307d67fbaa8ae634eed70715714dd1f54f04fe8635bcb7f72cb0aaed62","sha512":"a8748aa5d4ff056578d1a7eb56f98ece18b1940041e62e49a5d60de6c1e6c2b620f266413fc840ffb3d28ab876547629792d834dd72b4bd80f84ba236f431442","ssdeep":"192:PtK696/9+kAVVdBOUA2KzR6ydv91YbgMKMiitQ95kjP:Prw1omUAUJXin95kT","tlshash":"c0e1a4cc75d1fcb982773a70842fa8cbf6356814a91c54409268f4e1bc7e86d962be3d","first_seen":"2025-07-08T23:56:54.565574Z","last_seen":"2026-08-08T17:15:51.647732Z","times_seen":125,"resource_available":true,"data":"LyogZXNtLnNoIC0gdHNsaWJAMS4xNC4xICovCnZhciBiPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsbyl7ZS5fX3Byb3RvX189b318fGZ1bmN0aW9uKGUsbyl7Zm9yKHZhciBpIGluIG8pby5oYXNPd25Qcm9wZXJ0eShpKSYmKGVbaV09b1tpXSl9LGIodCxuKX07ZnVuY3Rpb24gZCh0LG4pe2IodCxuKTtmdW5jdGlvbiBlKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KGUucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyBlKX12YXIgdz1mdW5jdGlvbigpe3JldHVybiB3PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKG4pe2Zvcih2YXIgZSxvPTEsaT1hcmd1bWVudHMubGVuZ3RoO288aTtvKyspe2U9YXJndW1lbnRzW29dO2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYobltyXT1lW3JdKX1yZXR1cm4gbn0sdy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIGcodCxuKXt2YXIgZT17fTtmb3IodmFyIG8gaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxvKSYmbi5pbmRleE9mKG8pPDAmJihlW29dPXRbb10pO2lmKHQhPW51bGwmJnR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzPT0iZnVuY3Rpb24iKWZvcih2YXIgaT0wLG89T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KTtpPG8ubGVuZ3RoO2krKyluLmluZGV4T2Yob1tpXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsb1tpXSkmJihlW29baV1dPXRbb1tpXV0pO3JldHVybiBlfWZ1bmN0aW9uIE8odCxuLGUsbyl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aCxyPWk8Mz9uOm89PT1udWxsP289T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLGUpOm8sYTtpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0LmRlY29yYXRlPT0iZnVuY3Rpb24iKXI9UmVmbGVjdC5kZWNvcmF0ZSh0LG4sZSxvKTtlbHNlIGZvcih2YXIgZj10Lmxlbmd0aC0xO2Y+PTA7Zi0tKShhPXRbZl0pJiYocj0oaTwzP2Eocik6aT4zP2EobixlLHIpOmEobixlKSl8fHIpO3JldHVybiBpPjMmJnImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUscikscn1mdW5jdGlvbiBTKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUsbyl7bihlLG8sdCl9fWZ1bmN0aW9uIGoodCxuKXtpZih0eXBlb2YgUmVmbGVjdD09Im9iamVjdCImJnR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhPT0iZnVuY3Rpb24iKXJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKHQsbil9ZnVuY3Rpb24gUCh0LG4sZSxvKXtmdW5jdGlvbiBpKHIpe3JldHVybiByIGluc3RhbmNlb2YgZT9yOm5ldyBlKGZ1bmN0aW9uKGEpe2Eocil9KX1yZXR1cm4gbmV3KGV8fChlPVByb21pc2UpKShmdW5jdGlvbihyLGEpe2Z1bmN0aW9uIGYobCl7dHJ5e3Uoby5uZXh0KGwpKX1jYXRjaCh5KXthKHkpfX1mdW5jdGlvbiBzKGwpe3RyeXt1KG8udGhyb3cobCkpfWNhdGNoKHkpe2EoeSl9fWZ1bmN0aW9uIHUobCl7bC5kb25lP3IobC52YWx1ZSk6aShsLnZhbHVlKS50aGVuKGYscyl9dSgobz1vLmFwcGx5KHQsbnx8W10pKS5uZXh0KCkpfSl9ZnVuY3Rpb24gSSh0LG4pe3ZhciBlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihyWzBdJjEpdGhyb3cgclsxXTtyZXR1cm4gclsxXX0sdHJ5czpbXSxvcHM6W119LG8saSxyLGE7cmV0dXJuIGE9e25leHQ6ZigwKSx0aHJvdzpmKDEpLHJldHVybjpmKDIpfSx0eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiYoYVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxhO2Z1bmN0aW9uIGYodSl7cmV0dXJuIGZ1bmN0aW9uKGwpe3JldHVybiBzKFt1LGxdKX19ZnVuY3Rpb24gcyh1KXtpZihvKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2U7KXRyeXtpZihvPTEsaSYmKHI9dVswXSYyP2kucmV0dXJuOnVbMF0/aS50aHJvd3x8KChyPWkucmV0dXJuKSYmci5jYWxsKGkpLDApOmkubmV4dCkmJiEocj1yLmNhbGwoaSx1WzFdKSkuZG9uZSlyZXR1cm4gcjtzd2l0Y2goaT0wLHImJih1PVt1WzBdJjIsci52YWx1ZV0pLHVbMF0pe2Nhc2UgMDpjYXNlIDE6cj11O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5sYWJlbCsrLHt2YWx1ZTp1WzFdLGRvbmU6ITF9O2Nhc2UgNTplLmxhYmVsKyssaT11WzFdLHU9WzBdO2NvbnRpbnVlO2Nhc2UgNzp1PWUub3BzLnBvcCgpLGUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKHI9ZS50cnlzLCEocj1yLmxlbmd0aD4wJiZyW3IubGVuZ3RoLTFdKSYmKHVbMF09PT02fHx1WzBdPT09Mikpe2U9MDtjb250aW51ZX1pZih1WzBdPT09MyYmKCFyfHx1WzFdPnJbMF0mJnVbMV08clszXSkpe2UubGFiZWw9dVsxXTticmVha31pZih1WzBdPT09NiYmZS5sYWJlbDxyWzFdKXtlLmxhYmVsPXJbMV0scj11O2JyZWFrfWlmKHImJmUubGFiZWw8clsyXSl7ZS5sYWJlbD1yWzJdLGUub3BzLnB1c2godSk7YnJlYWt9clsyXSYmZS5vcHMucG9wKCksZS50cnlzLnBvcCgpO2NvbnRpbnVlfXU9bi5jYWxsKHQsZSl9Y2F0Y2gobCl7dT1bNixsXSxpPTB9ZmluYWxseXtvPXI9MH1pZih1WzBdJjUpdGhyb3cgdVsxXTtyZXR1cm57dmFsdWU6dVswXT91WzFdOnZvaWQgMCxkb25lOiEwfX19ZnVuY3Rpb24gRSh0LG4sZSxvKXtvPT09dm9pZCAwJiYobz1lKSx0W29dPW5bZV19ZnVuY3Rpb24gVCh0LG4pe2Zvcih2YXIgZSBpbiB0KWUhPT0iZGVmYXVsdCImJiFuLmhhc093blByb3BlcnR5KGUpJiYobltlXT10W2VdKX1mdW5jdGlvbiB2KHQpe3ZhciBuPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJlN5bWJvbC5pdGVyYXRvcixlPW4mJnRbbl0sbz0wO2lmKGUpcmV0dXJuIGUuY2FsbCh0KTtpZih0JiZ0eXBlb2YgdC5sZW5ndGg9PSJudW1iZXIiKXJldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHQmJm8+PXQubGVuZ3RoJiYodD12b2lkIDApLHt2YWx1ZTp0JiZ0W28rK10sZG9uZTohdH19fTt0aHJvdyBuZXcgVHlwZUVycm9yKG4/Ik9iamVjdCBpcyBub3QgaXRlcmFibGUuIjoiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpfWZ1bmN0aW9uIG0odCxuKXt2YXIgZT10eXBlb2YgU3ltYm9sPT0iZnVuY3Rpb24iJiZ0W1N5bWJvbC5pdGVyYXRvcl07aWYoIWUpcmV0dXJuIHQ7dmFyIG89ZS5jYWxsKHQpLGkscj1bXSxhO3RyeXtmb3IoOyhuPT09dm9pZCAwfHxuLS0gPjApJiYhKGk9by5uZXh0KCkpLmRvbmU7KXIucHVzaChpLnZhbHVlKX1jYXRjaChmKXthPXtlcnJvcjpmfX1maW5hbGx5e3RyeXtpJiYhaS5kb25lJiYoZT1vLnJldHVybikmJmUuY2FsbChvKX1maW5hbGx5e2lmKGEpdGhyb3cgYS5lcnJvcn19cmV0dXJuIHJ9ZnVuY3Rpb24gUigpe2Zvcih2YXIgdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0PXQuY29uY2F0KG0oYXJndW1lbnRzW25dKSk7cmV0dXJuIHR9ZnVuY3Rpb24gQSgpe2Zvcih2YXIgdD0wLG49MCxlPWFyZ3VtZW50cy5sZW5ndGg7bjxlO24rKyl0Kz1hcmd1bWVudHNbbl0ubGVuZ3RoO2Zvcih2YXIgbz1BcnJheSh0KSxpPTAsbj0wO248ZTtuKyspZm9yKHZhciByPWFyZ3VtZW50c1tuXSxhPTAsZj1yLmxlbmd0aDthPGY7YSsrLGkrKylvW2ldPXJbYV07cmV0dXJuIG99ZnVuY3Rpb24gXyh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF8/KHRoaXMudj10LHRoaXMpOm5ldyBfKHQpfWZ1bmN0aW9uIEQodCxuLGUpe2lmKCFTeW1ib2wuYXN5bmNJdGVyYXRvcil0aHJvdyBuZXcgVHlwZUVycm9yKCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTt2YXIgbz1lLmFwcGx5KHQsbnx8W10pLGkscj1bXTtyZXR1cm4gaT17fSxhKCJuZXh0IiksYSgidGhyb3ciKSxhKCJyZXR1cm4iKSxpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxpO2Z1bmN0aW9uIGEoYyl7b1tjXSYmKGlbY109ZnVuY3Rpb24ocCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGgseCl7ci5wdXNoKFtjLHAsaCx4XSk+MXx8ZihjLHApfSl9KX1mdW5jdGlvbiBmKGMscCl7dHJ5e3Mob1tjXShwKSl9Y2F0Y2goaCl7eShyWzBdWzNdLGgpfX1mdW5jdGlvbiBzKGMpe2MudmFsdWUgaW5zdGFuY2VvZiBfP1Byb21pc2UucmVzb2x2ZShjLnZhbHVlLnYpLnRoZW4odSxsKTp5KHJbMF1bMl0sYyl9ZnVuY3Rpb24gdShjKXtmKCJuZXh0IixjKX1mdW5jdGlvbiBsKGMpe2YoInRocm93IixjKX1mdW5jdGlvbiB5KGMscCl7YyhwKSxyLnNoaWZ0KCksci5sZW5ndGgmJmYoclswXVswXSxyWzBdWzFdKX19ZnVuY3Rpb24gRyh0KXt2YXIgbixlO3JldHVybiBuPXt9LG8oIm5leHQiKSxvKCJ0aHJvdyIsZnVuY3Rpb24oaSl7dGhyb3cgaX0pLG8oInJldHVybiIpLG5bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxuO2Z1bmN0aW9uIG8oaSxyKXtuW2ldPXRbaV0/ZnVuY3Rpb24oYSl7cmV0dXJuKGU9IWUpP3t2YWx1ZTpfKHRbaV0oYSkpLGRvbmU6aT09PSJyZXR1cm4ifTpyP3IoYSk6YX06cn19ZnVuY3Rpb24gRih0KXtpZighU3ltYm9sLmFzeW5jSXRlcmF0b3IpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7dmFyIG49dFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0sZTtyZXR1cm4gbj9uLmNhbGwodCk6KHQ9dHlwZW9mIHY9PSJmdW5jdGlvbiI/dih0KTp0W1N5bWJvbC5pdGVyYXRvcl0oKSxlPXt9LG8oIm5leHQiKSxvKCJ0aHJvdyIpLG8oInJldHVybiIpLGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGUpO2Z1bmN0aW9uIG8ocil7ZVtyXT10W3JdJiZmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZixzKXthPXRbcl0oYSksaShmLHMsYS5kb25lLGEudmFsdWUpfSl9fWZ1bmN0aW9uIGkocixhLGYscyl7UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4oZnVuY3Rpb24odSl7cih7dmFsdWU6dSxkb25lOmZ9KX0sYSl9fWZ1bmN0aW9uIHEodCxuKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJyYXciLHt2YWx1ZTpufSk6dC5yYXc9bix0fWZ1bmN0aW9uIEIodCl7aWYodCYmdC5fX2VzTW9kdWxlKXJldHVybiB0O3ZhciBuPXt9O2lmKHQhPW51bGwpZm9yKHZhciBlIGluIHQpT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmKG5bZV09dFtlXSk7cmV0dXJuIG4uZGVmYXVsdD10LG59ZnVuY3Rpb24gVih0KXtyZXR1cm4gdCYmdC5fX2VzTW9kdWxlP3Q6e2RlZmF1bHQ6dH19ZnVuY3Rpb24geih0LG4pe2lmKCFuLmhhcyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gZ2V0IHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIG4uZ2V0KHQpfWZ1bmN0aW9uIEModCxuLGUpe2lmKCFuLmhhcyh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIG4uc2V0KHQsZSksZX1leHBvcnR7dyBhcyBfX2Fzc2lnbixHIGFzIF9fYXN5bmNEZWxlZ2F0b3IsRCBhcyBfX2FzeW5jR2VuZXJhdG9yLEYgYXMgX19hc3luY1ZhbHVlcyxfIGFzIF9fYXdhaXQsUCBhcyBfX2F3YWl0ZXIseiBhcyBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0LEMgYXMgX19jbGFzc1ByaXZhdGVGaWVsZFNldCxFIGFzIF9fY3JlYXRlQmluZGluZyxPIGFzIF9fZGVjb3JhdGUsVCBhcyBfX2V4cG9ydFN0YXIsZCBhcyBfX2V4dGVuZHMsSSBhcyBfX2dlbmVyYXRvcixWIGFzIF9faW1wb3J0RGVmYXVsdCxCIGFzIF9faW1wb3J0U3RhcixxIGFzIF9fbWFrZVRlbXBsYXRlT2JqZWN0LGogYXMgX19tZXRhZGF0YSxTIGFzIF9fcGFyYW0sbSBhcyBfX3JlYWQsZyBhcyBfX3Jlc3QsUiBhcyBfX3NwcmVhZCxBIGFzIF9fc3ByZWFkQXJyYXlzLHYgYXMgX192YWx1ZXN9OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKdHNsaWIvdHNsaWIuZXM2LmpzOgogICgqISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLgogIAogIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQogIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC4KICAKICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSAogIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWQogIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCwKICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00KICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUgogIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICopCiovCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRzbGliLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/concat.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.731Z","timestamp":1785138633731,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/concat.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dccdc10569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":253,"size_decoded":583,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"62bc3b18676436754ad71a92448a68ea","sha1":"7b2a64c375a4541fe5dd8dfe67b96491f0035a42","sha256":"3ab961c11fe1ce1cf6e5cd9d23af38c3374707610c00c957fd4a8bef1e85776a","sha512":"193f7a858017492cbabff942ef06c449d6d1c1517afa82bea904e6bd0b6a59893aca842dddc144592ee28365ff0cbab927ff33ab52aecfdb52f970a49bb99a79","ssdeep":"","tlshash":"b3d02bf229a6586781b20b5b0091811087395a7ced8b4598344329ad3712ec0c4dad74","first_seen":"2025-07-08T23:56:54.77458Z","last_seen":"2026-07-27T07:51:47.24356Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvY29uY2F0ICovCmltcG9ydHthbGxvY1Vuc2FmZSBhcyByfWZyb20iLi9hbGxvYy5tanMiO2Z1bmN0aW9uIHMoZSx0KXt0fHwodD1lLnJlZHVjZSgobyxuKT0+bytuLmxlbmd0aCwwKSk7bGV0IGY9cih0KSxjPTA7Zm9yKGxldCBvIG9mIGUpZi5zZXQobyxjKSxjKz1vLmxlbmd0aDtyZXR1cm4gZn1leHBvcnR7cyBhcyBjb25jYXR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jb25jYXQubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/properties@5.8.0/es2022/properties.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.968Z","timestamp":1785138633968,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/properties@5.8.0/es2022/properties.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/properties@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16519\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dce4c4d569f-OSL\r\ncontent-length: 1138\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2060,"size_decoded":1591,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1973)","md5":"114ebee1576a0bdcd8d454e532aca40e","sha1":"e7f8313d6983eff51bcaf942ad0a4b2cfafcbb92","sha256":"3556728d96d6b3cce6c42752d1e85b3a09ccf077ab8388a85bff1403853529a1","sha512":"c5205d05193051c2c8162fe37bf9ced319bde09a9bb5b3923fb129f9004fb46a02b3cfde58ead7b34844cfc43c7118f1dd3be99469b3707e8a34af8552cbc5fa","ssdeep":"","tlshash":"074146d9f6f7f07713db5468902bc407f13aa428d05d1504a290ecf26cb147d89a7e1a","first_seen":"2025-07-08T23:56:54.617494Z","last_seen":"2026-07-27T07:51:47.158135Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvcHJvcGVydGllc0A1LjguMCAqLwppbXBvcnR7TG9nZ2VyIGFzIHd9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjt2YXIgYz0icHJvcGVydGllcy81LjguMCI7dmFyIHY9ZnVuY3Rpb24oZSx0LHIsbil7ZnVuY3Rpb24gbyhpKXtyZXR1cm4gaSBpbnN0YW5jZW9mIHI/aTpuZXcgcihmdW5jdGlvbihmKXtmKGkpfSl9cmV0dXJuIG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24oaSxmKXtmdW5jdGlvbiBoKHUpe3RyeXtwKG4ubmV4dCh1KSl9Y2F0Y2goYSl7ZihhKX19ZnVuY3Rpb24gbSh1KXt0cnl7cChuLnRocm93KHUpKX1jYXRjaChhKXtmKGEpfX1mdW5jdGlvbiBwKHUpe3UuZG9uZT9pKHUudmFsdWUpOm8odS52YWx1ZSkudGhlbihoLG0pfXAoKG49bi5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfSxzPW5ldyB3KGMpO2Z1bmN0aW9uIGcoZSx0LHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsdmFsdWU6cix3cml0YWJsZTohMX0pfWZ1bmN0aW9uIF8oZSx0KXtmb3IobGV0IHI9MDtyPDMyO3IrKyl7aWYoZVt0XSlyZXR1cm4gZVt0XTtpZighZS5wcm90b3R5cGV8fHR5cGVvZiBlLnByb3RvdHlwZSE9Im9iamVjdCIpYnJlYWs7ZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZS5wcm90b3R5cGUpLmNvbnN0cnVjdG9yfXJldHVybiBudWxsfWZ1bmN0aW9uIEUoZSl7cmV0dXJuIHYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB0PU9iamVjdC5rZXlzKGUpLm1hcChuPT57bGV0IG89ZVtuXTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG8pLnRoZW4oaT0+KHtrZXk6bix2YWx1ZTppfSkpfSk7cmV0dXJuKHlpZWxkIFByb21pc2UuYWxsKHQpKS5yZWR1Y2UoKG4sbyk9PihuW28ua2V5XT1vLnZhbHVlLG4pLHt9KX0pfWZ1bmN0aW9uIFAoZSx0KXsoIWV8fHR5cGVvZiBlIT0ib2JqZWN0IikmJnMudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIG9iamVjdCIsIm9iamVjdCIsZSksT2JqZWN0LmtleXMoZSkuZm9yRWFjaChyPT57dFtyXXx8cy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgb2JqZWN0IGtleSAtICIrciwidHJhbnNhY3Rpb246IityLGUpfSl9ZnVuY3Rpb24geihlKXtsZXQgdD17fTtmb3IobGV0IHIgaW4gZSl0W3JdPWVbcl07cmV0dXJuIHR9dmFyIHg9e2JpZ2ludDohMCxib29sZWFuOiEwLGZ1bmN0aW9uOiEwLG51bWJlcjohMCxzdHJpbmc6ITB9O2Z1bmN0aW9uIGQoZSl7aWYoZT09bnVsbHx8eFt0eXBlb2YgZV0pcmV0dXJuITA7aWYoQXJyYXkuaXNBcnJheShlKXx8dHlwZW9mIGU9PSJvYmplY3QiKXtpZighT2JqZWN0LmlzRnJvemVuKGUpKXJldHVybiExO2xldCB0PU9iamVjdC5rZXlzKGUpO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbj1udWxsO3RyeXtuPWVbdFtyXV19Y2F0Y2h7Y29udGludWV9aWYoIWQobikpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIHMudGhyb3dBcmd1bWVudEVycm9yKGBDYW5ub3QgZGVlcENvcHkgJHt0eXBlb2YgZX1gLCJvYmplY3QiLGUpfWZ1bmN0aW9uIE8oZSl7aWYoZChlKSlyZXR1cm4gZTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBPYmplY3QuZnJlZXplKGUubWFwKHQ9PmwodCkpKTtpZih0eXBlb2YgZT09Im9iamVjdCIpe2xldCB0PXt9O2ZvcihsZXQgciBpbiBlKXtsZXQgbj1lW3JdO24hPT12b2lkIDAmJmcodCxyLGwobikpfXJldHVybiB0fXJldHVybiBzLnRocm93QXJndW1lbnRFcnJvcihgQ2Fubm90IGRlZXBDb3B5ICR7dHlwZW9mIGV9YCwib2JqZWN0IixlKX1mdW5jdGlvbiBsKGUpe3JldHVybiBPKGUpfXZhciB5PWNsYXNze2NvbnN0cnVjdG9yKHQpe2ZvcihsZXQgciBpbiB0KXRoaXNbcl09bCh0W3JdKX19O2V4cG9ydHt5IGFzIERlc2NyaXB0aW9uLFAgYXMgY2hlY2tQcm9wZXJ0aWVzLGwgYXMgZGVlcENvcHksZyBhcyBkZWZpbmVSZWFkT25seSxfIGFzIGdldFN0YXRpYyxFIGFzIHJlc29sdmVQcm9wZXJ0aWVzLHogYXMgc2hhbGxvd0NvcHl9OwovLyMgc291cmNlTWFwcGluZ1VSTD1wcm9wZXJ0aWVzLm1qcy5tYXA="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base64.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.212Z","timestamp":1785138634212,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base64.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 09:26:09 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc82569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":709,"size_decoded":678,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (626)","md5":"8b13ef59012e3e52ca4a485f3730aae0","sha1":"8f9387cf905ffb6019ed6ddec2c32b1e1f6f6868","sha256":"1365d8ab96a8998be1663e7277eebc58d3207f785c9ab53533966626f153461b","sha512":"8ded60f2276e544d8cd61c2ae8a518bebb0ee5b06e41d01530153fa127008bc4e9dc5f420a3be7749104065012b87984c520caa339806aa871c012974a613e6c","ssdeep":"","tlshash":"95014c3dc4764e2e0ef1a24c258b5099adb58bbf429703d922394b16c4945dbd85be14","first_seen":"2025-07-08T23:56:54.594216Z","last_seen":"2026-08-08T17:15:52.268805Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2U2NCAqLwppbXBvcnR7cmZjNDY0OCBhcyBhfWZyb20iLi4vZXNtL3NyYy9iYXNlcy9iYXNlLm1qcyI7dmFyIHI9YSh7cHJlZml4OiJtIixuYW1lOiJiYXNlNjQiLGFscGhhYmV0OiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixiaXRzUGVyQ2hhcjo2fSkscD1hKHtwcmVmaXg6Ik0iLG5hbWU6ImJhc2U2NHBhZCIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89IixiaXRzUGVyQ2hhcjo2fSksdD1hKHtwcmVmaXg6InUiLG5hbWU6ImJhc2U2NHVybCIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLGJpdHNQZXJDaGFyOjZ9KSxiPWEoe3ByZWZpeDoiVSIsbmFtZToiYmFzZTY0dXJscGFkIixhbHBoYWJldDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXz0iLGJpdHNQZXJDaGFyOjZ9KTtleHBvcnR7ciBhcyBiYXNlNjQscCBhcyBiYXNlNjRwYWQsdCBhcyBiYXNlNjR1cmwsYiBhcyBiYXNlNjR1cmxwYWR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1iYXNlNjQubWpzLm1hcA=="}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"csp.secureserver.net/eventbus/web?clientid=8da2217409854bee82e12dc4ca0b39fb","fqdn":"csp.secureserver.net","domain":"secureserver.net","tld":"net"},"ip":{"addr":"23.44.47.70","port":443,"asn":16625,"as":"AKAMAI-AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.542Z","timestamp":1785138634542,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","key_group_name":"P256","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"*.secureserver.net","organization":""},"issuer":{"commonName":"Starfield Secure Certificate Authority - G2","organization":"Starfield Technologies, Inc."},"validity":{"start":"Thu, 23 Oct 2025 00:07:48 GMT","end":"Tue, 24 Nov 2026 00:07:48 GMT"},"fingerprint":{"sha1":"0C:85:75:97:2A:6F:2B:92:48:28:1A:FB:30:8A:C4:98:A7:9E:26:CE","sha256":"2F:4B:65:33:11:10:9D:A1:94:4B:5A:5D:40:E6:63:70:B6:7E:1A:7F:E7:90:E4:E8:F4:4A:37:2E:94:17:64:AB"}}},"request":{"raw":"POST /eventbus/web?clientid=8da2217409854bee82e12dc4ca0b39fb HTTP/1.1\r\nHost: csp.secureserver.net\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\nContent-Type: text/plain;charset=UTF-8\r\nReferer: https://mail.usdt-transfer.info/\r\nContent-Length: 1872\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":1872,"data":"{\"schemaId\":\"urn:shared:user:events:/v1\",\"data\":[{\"global\":{\"traceId\":\"9b47ff5e226a472e867f7eaec201f58d\",\"client\":{\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\",\"sdk\":{\"name\":\"scc-c2\",\"version\":\"1.3.2\"},\"device\":{\"viewportWidth\":1280,\"viewportHeight\":1024,\"screenResolutionWidth\":1280,\"screenResolutionHeight\":1024}},\"page\":{\"traceId\":\"9b47ff5e226a472e867f7eaec201f58d\",\"host\":\"mail.usdt-transfer.info\",\"path\":\"/\",\"location\":\"https://mail.usdt-transfer.info/\",\"referrer\":\"\",\"sessionPageViewCount\":1},\"context\":{\"userType\":\"c2\",\"visitorId\":\"f12344d9-1122-44ec-942d-fbb6fdb4ecd7\",\"sessionId\":\"f12344d9-1122-44ec-942d-fbb6fdb4ecd7\"}},\"events\":[{\"schemaId\":\"urn:shared:user:event:/rigor/page-navigation/v1\",\"data\":{\"eventCreationTimestamp\":\"2026-07-27T07:50:34.353Z\",\"navigationType\":\"navigate\",\"timing\":{\"navigation\":{\"connectEnd\":1785138632344,\"connectStart\":1785138631652,\"domComplete\":1785138634285,\"domContentLoadedEventEnd\":1785138633467,\"domContentLoadedEventStart\":1785138633459,\"domInteractive\":1785138633436,\"domLoading\":1785138632679,\"domainLookupEnd\":1785138631652,\"domainLookupStart\":1785138631567,\"fetchStart\":1785138631538,\"navigationStart\":1785138631536,\"requestStart\":1785138632344,\"responseEnd\":1785138632528,\"responseStart\":1785138632527,\"loadEventStart\":1785138634285,\"loadEventEnd\":0,\"pageLoadTime\":2749,\"domContentLoadedTime\":1923,\"domInteractiveTime\":1900,\"pageDownloadTime\":1,\"domainLookupTime\":85,\"serverResponseTime\":183,\"serverConnectionTime\":692,\"redirectionTime\":2},\"paint\":{\"largestContentfulPaint\":1936}},\"traffic\":{\"pageLevelProperties\":{\"ap\":\"cpbh-mt\",\"server\":\"p3plmcpnl494349\",\"dcenter\":\"p3\",\"cp_id\":\"10956719\",\"cp_cl\":\"8\"}},\"producerEventId\":\"68067fdc-39c7-409a-9810-48de9df66c45\",\"contentLoadType\":\"hard\",\"response\":{\"transferSize\":7444,\"encodedBodySize\":7144,\"decodedBodySize\":21075}}}]}]}"}},"response":{"raw":"HTTP/1.1 202 Accepted\r\nContent-Type: application/json\r\nContent-Length: 2\r\nAccess-Control-Allow-Origin: *\r\nx-bus-trace-id: 193923008554986157951362785430373743356\r\nx-envoy-upstream-service-time: 84\r\nx-error-info: 0\r\nx-request-id: db3922f0-6d3e-4597-94f9-42d6f202ca94\r\nExpires: Mon, 27 Jul 2026 07:50:34 GMT\r\nCache-Control: max-age=0, no-cache, no-store\r\nPragma: no-cache\r\nDate: Mon, 27 Jul 2026 07:50:34 GMT\r\nConnection: keep-alive\r\nStrict-Transport-Security: max-age=86400 ; includeSubDomains ; preload\r\n\r\n","headers":null,"cookies":null,"status_code":"202","status_text":"Accepted","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":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}],"data":{"size":2,"size_decoded":508,"mime_type":"application/json","magic":"JSON text data","md5":"99914b932bd37a50b983c5e7c90ae93b","sha1":"bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f","sha256":"44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","sha512":"27c74670adb75075fad058d5ceaf7b20c4e7786c83bae8a32f626f9782af34c9a33c2046ef60fd2a7878d378e29fec851806bbd9a67878f3a9f1cda4830763fd","ssdeep":"","tlshash":"c7100000000000c00000000c00000000000000000c0000000000000000000000000000","first_seen":"2023-03-07T01:15:26Z","last_seen":"2026-08-13T11:47:53.470947Z","times_seen":759845,"resource_available":true,"data":"e30="}},"time_used":388,"timings":{"blocked":0,"dns":1,"connect":1,"send":0,"wait":173,"receive":0,"ssl":212},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/ed25519@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.749Z","timestamp":1785138633749,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/ed25519@%5E1.0.2?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/ed25519@1.0.3/es2022/ed25519.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/ed25519@1.0.3/lib/ed25519.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccec18569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":322,"size_decoded":687,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"c19d1b05bd10796c726dd07efe8a4fcf","sha1":"ef195b72680b89844ff4a5028fee52f2623a3195","sha256":"90b25af40af66c27090305b4871c0831addd3e3fa4826d0c30898391e55b4a0e","sha512":"bf868e325dd3bfbdb8ac958dcf132ba9634d99db02ee0daff7adf8528099f48b572c5ad0e7e0fffbd945c3748ce0d5fb0b2be9efb9d146b48f930e634f7ba07b","ssdeep":"","tlshash":"54e0eca256dbf7d8631cb8a4e4e4f235d7715084f8739c6d2a52c726b12388151337d6","first_seen":"2025-07-08T23:56:54.689748Z","last_seen":"2026-07-27T07:51:47.245294Z","times_seen":99,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9lZDI1NTE5QDEuMC4zICovCmltcG9ydCAiL0BzdGFibGVsaWIvcmFuZG9tQF4xLjAuMj90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQHN0YWJsZWxpYi9zaGE1MTJAXjEuMC4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9lZDI1NTE5QDEuMC4zL2VzMjAyMi9lZDI1NTE5Lm1qcyI7CmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICIvQHN0YWJsZWxpYi9lZDI1NTE5QDEuMC4zL2VzMjAyMi9lZDI1NTE5Lm1qcyI7Cg=="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/keyvaluestorage@1.1.1/es2022/keyvaluestorage.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.782Z","timestamp":1785138633782,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/keyvaluestorage@1.1.1/es2022/keyvaluestorage.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:54 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16520\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcd2c27569f-OSL\r\ncontent-length: 1571\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3620,"size_decoded":2024,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3523)","md5":"9a565ef9c0643ff77f16d62762deadb2","sha1":"9acaf344af983ff07f850bc03e21822cba8258ae","sha256":"b95e41d6667255c4460eee73a9331d4435fe525653fd3139515fcb21f241ac10","sha512":"71e2ac539f9bd6058ede1d16374be9ff95989434f0b68300bf03e99b9c5f5d10c504409bd37129b718baa5a6a4c0f2b335ed233c370a121a6c985b85ecc8e563","ssdeep":"","tlshash":"2571204b73b7977643e564ed61223015b23e48e85d0f842e7b2d2ce1389c98906b9ff6","first_seen":"2025-07-08T23:56:54.708145Z","last_seen":"2026-08-08T17:15:51.307546Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qva2V5dmFsdWVzdG9yYWdlQDEuMS4xICovCmltcG9ydHtjcmVhdGVTdG9yYWdlIGFzIHB9ZnJvbSIvdW5zdG9yYWdlQF4xLjkuMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7Y3JlYXRlU3RvcmUgYXMgYixnZXQgYXMgeSxzZXQgYXMgdixkZWwgYXMgUyxrZXlzIGFzIHgsY2xlYXIgYXMgen1mcm9tIi9pZGIta2V5dmFsQF42LjIuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7c2FmZUpzb25TdHJpbmdpZnkgYXMgdyxzYWZlSnNvblBhcnNlIGFzIGZ9ZnJvbSIvQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjt2YXIgRD0iaWRiLWtleXZhbCIsRT0ocz17fSk9PntsZXQgdD1zLmJhc2UmJnMuYmFzZS5sZW5ndGg+MD9gJHtzLmJhc2V9OmA6IiIsZT1pPT50K2ksYTtyZXR1cm4gcy5kYk5hbWUmJnMuc3RvcmVOYW1lJiYoYT1iKHMuZGJOYW1lLHMuc3RvcmVOYW1lKSkse25hbWU6RCxvcHRpb25zOnMsYXN5bmMgaGFzSXRlbShpKXtyZXR1cm4hKHR5cGVvZiBhd2FpdCB5KGUoaSksYSk+InUiKX0sYXN5bmMgZ2V0SXRlbShpKXtyZXR1cm4gYXdhaXQgeShlKGkpLGEpPz9udWxsfSxzZXRJdGVtKGksbil7cmV0dXJuIHYoZShpKSxuLGEpfSxyZW1vdmVJdGVtKGkpe3JldHVybiBTKGUoaSksYSl9LGdldEtleXMoKXtyZXR1cm4geChhKX0sY2xlYXIoKXtyZXR1cm4geihhKX19fSxfPSJXQUxMRVRfQ09OTkVDVF9WMl9JTkRFWEVEX0RCIixrPSJrZXl2YWx1ZXN0b3JhZ2UiLHU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmluZGV4ZWREYj1wKHtkcml2ZXI6RSh7ZGJOYW1lOl8sc3RvcmVOYW1lOmt9KX0pfWFzeW5jIGdldEtleXMoKXtyZXR1cm4gdGhpcy5pbmRleGVkRGIuZ2V0S2V5cygpfWFzeW5jIGdldEVudHJpZXMoKXtyZXR1cm4oYXdhaXQgdGhpcy5pbmRleGVkRGIuZ2V0SXRlbXMoYXdhaXQgdGhpcy5pbmRleGVkRGIuZ2V0S2V5cygpKSkubWFwKHQ9Plt0LmtleSx0LnZhbHVlXSl9YXN5bmMgZ2V0SXRlbSh0KXtsZXQgZT1hd2FpdCB0aGlzLmluZGV4ZWREYi5nZXRJdGVtKHQpO2lmKGUhPT1udWxsKXJldHVybiBlfWFzeW5jIHNldEl0ZW0odCxlKXthd2FpdCB0aGlzLmluZGV4ZWREYi5zZXRJdGVtKHQsdyhlKSl9YXN5bmMgcmVtb3ZlSXRlbSh0KXthd2FpdCB0aGlzLmluZGV4ZWREYi5yZW1vdmVJdGVtKHQpfX0sbD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6e30sYz17ZXhwb3J0czp7fX07KGZ1bmN0aW9uKCl7bGV0IHM7ZnVuY3Rpb24gdCgpe31zPXQscy5wcm90b3R5cGUuZ2V0SXRlbT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eShlKT9TdHJpbmcodGhpc1tlXSk6bnVsbH0scy5wcm90b3R5cGUuc2V0SXRlbT1mdW5jdGlvbihlLGEpe3RoaXNbZV09U3RyaW5nKGEpfSxzLnByb3RvdHlwZS5yZW1vdmVJdGVtPWZ1bmN0aW9uKGUpe2RlbGV0ZSB0aGlzW2VdfSxzLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe2xldCBlPXRoaXM7T2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbihhKXtlW2FdPXZvaWQgMCxkZWxldGUgZVthXX0pfSxzLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9ZXx8MCxPYmplY3Qua2V5cyh0aGlzKVtlXX0scy5wcm90b3R5cGUuX19kZWZpbmVHZXR0ZXJfXygibGVuZ3RoIixmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzKS5sZW5ndGh9KSx0eXBlb2YgbDwidSImJmwubG9jYWxTdG9yYWdlP2MuZXhwb3J0cz1sLmxvY2FsU3RvcmFnZTp0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmxvY2FsU3RvcmFnZT9jLmV4cG9ydHM9d2luZG93LmxvY2FsU3RvcmFnZTpjLmV4cG9ydHM9bmV3IHR9KSgpO2Z1bmN0aW9uIE4ocyl7dmFyIHQ7cmV0dXJuW3NbMF0sZigodD1zWzFdKSE9bnVsbD90OiIiKV19dmFyIGc9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmxvY2FsU3RvcmFnZT1jLmV4cG9ydHN9YXN5bmMgZ2V0S2V5cygpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmxvY2FsU3RvcmFnZSl9YXN5bmMgZ2V0RW50cmllcygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLmxvY2FsU3RvcmFnZSkubWFwKE4pfWFzeW5jIGdldEl0ZW0odCl7bGV0IGU9dGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0KTtpZihlIT09bnVsbClyZXR1cm4gZihlKX1hc3luYyBzZXRJdGVtKHQsZSl7dGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LHcoZSkpfWFzeW5jIHJlbW92ZUl0ZW0odCl7dGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0KX19LEs9IndjX3N0b3JhZ2VfdmVyc2lvbiIsaD0xLE89YXN5bmMocyx0LGUpPT57bGV0IGE9SyxpPWF3YWl0IHQuZ2V0SXRlbShhKTtpZihpJiZpPj1oKXtlKHQpO3JldHVybn1sZXQgbj1hd2FpdCBzLmdldEtleXMoKTtpZighbi5sZW5ndGgpe2UodCk7cmV0dXJufWxldCBtPVtdO2Zvcig7bi5sZW5ndGg7KXtsZXQgcj1uLnNoaWZ0KCk7aWYoIXIpY29udGludWU7bGV0IG89ci50b0xvd2VyQ2FzZSgpO2lmKG8uaW5jbHVkZXMoIndjQCIpfHxvLmluY2x1ZGVzKCJ3YWxsZXRjb25uZWN0Iil8fG8uaW5jbHVkZXMoIndjXyIpfHxvLmluY2x1ZGVzKCJ3YWxsZXRfY29ubmVjdCIpKXtsZXQgST1hd2FpdCBzLmdldEl0ZW0ocik7YXdhaXQgdC5zZXRJdGVtKHIsSSksbS5wdXNoKHIpfX1hd2FpdCB0LnNldEl0ZW0oYSxoKSxlKHQpLGoocyxtKX0saj1hc3luYyhzLHQpPT57dC5sZW5ndGgmJnQuZm9yRWFjaChhc3luYyBlPT57YXdhaXQgcy5yZW1vdmVJdGVtKGUpfSl9LGQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc2V0SW5pdGlhbGl6ZWQ9ZT0+e3RoaXMuc3RvcmFnZT1lLHRoaXMuaW5pdGlhbGl6ZWQ9ITB9O2xldCB0PW5ldyBnO3RoaXMuc3RvcmFnZT10O3RyeXtsZXQgZT1uZXcgdTtPKHQsZSx0aGlzLnNldEluaXRpYWxpemVkKX1jYXRjaHt0aGlzLmluaXRpYWxpemVkPSEwfX1hc3luYyBnZXRLZXlzKCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpLHRoaXMuc3RvcmFnZS5nZXRLZXlzKCl9YXN5bmMgZ2V0RW50cmllcygpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSx0aGlzLnN0b3JhZ2UuZ2V0RW50cmllcygpfWFzeW5jIGdldEl0ZW0odCl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpLHRoaXMuc3RvcmFnZS5nZXRJdGVtKHQpfWFzeW5jIHNldEl0ZW0odCxlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplKCksdGhpcy5zdG9yYWdlLnNldEl0ZW0odCxlKX1hc3luYyByZW1vdmVJdGVtKHQpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemUoKSx0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbSh0KX1hc3luYyBpbml0aWFsaXplKCl7dGhpcy5pbml0aWFsaXplZHx8YXdhaXQgbmV3IFByb21pc2UodD0+e2xldCBlPXNldEludGVydmFsKCgpPT57dGhpcy5pbml0aWFsaXplZCYmKGNsZWFySW50ZXJ2YWwoZSksdCgpKX0sMjApfSl9fTtleHBvcnR7ZCBhcyBLZXlWYWx1ZVN0b3JhZ2UsZCBhcyBkZWZhdWx0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5dmFsdWVzdG9yYWdlLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/events@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.893Z","timestamp":1785138633893,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/events@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/heartbeat@1.2.2/es2022/heartbeat.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/events@1.0.1/es2022/events.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/events@1.0.1/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dcddc33569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":107,"size_decoded":644,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"10ff816b8dbf75e41a6d052ba90f9783","sha1":"572511bc9379321000315f9980b0f92fca3bfed9","sha256":"c91b5b42dd0a4abb5f10c680482856e8946d56ad80aa81631b9ed168d4ec68ec","sha512":"8925bfe66bd2eab057c73e08df1036e490f2be6cf73ea63d83eba9044100e8bf87a00cfe68d640cb61d402439cf8acaeaf43b434a7f4b20a22b3435066fa87ac","ssdeep":"","tlshash":"bcb0925442228718333a06480326426f4263038ce14203ac03a44d11d027280c8a06f7","first_seen":"2025-07-08T23:56:54.793157Z","last_seen":"2026-08-08T17:15:52.215587Z","times_seen":120,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvZXZlbnRzQDEuMC4xICovCmV4cG9ydCAqIGZyb20gIi9Ad2FsbGV0Y29ubmVjdC9ldmVudHNAMS4wLjEvZXMyMDIyL2V2ZW50cy5tanMiOwo="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/strict-uri-encode@2.0.0/es2022/strict-uri-encode.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.899Z","timestamp":1785138633899,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /strict-uri-encode@2.0.0/es2022/strict-uri-encode.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/strict-uri-encode@%5E2.0.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcddc34569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":794,"size_decoded":867,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (708)","md5":"0762127f768f98b2df3e0833af5c8aa6","sha1":"f3f856e4721043b4744810d2db6487ce23fe3a6c","sha256":"3d1180e3d236cec9096b801f3d88842227674f39944934fe763aa5cbb25ab6ae","sha512":"fe3e12f520e368630b3e8c11adcd7ff062cfe9b2d6cbafdce6ded1b8cd20234a7cd53dd4817adf277f5fb1dc840bb3618774633f2922c84395e6d3fdac8954e1","ssdeep":"","tlshash":"6d01259115e6ffb619f04486ca7ed105f25cd17c41b5f0e45794cae2558006b00bbf77","first_seen":"2025-07-08T23:56:54.755107Z","last_seen":"2026-07-27T07:51:47.254379Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gc3RyaWN0LXVyaS1lbmNvZGVAMi4wLjAgKi8KdmFyIGQ9T2JqZWN0LmNyZWF0ZTt2YXIgYT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgaT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciB1PSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyk7dmFyIEM9KHQsZSxvLHMpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHIgb2YgZihlKSkhbC5jYWxsKHQscikmJnIhPT1vJiZhKHQscix7Z2V0OigpPT5lW3JdLGVudW1lcmFibGU6IShzPW4oZSxyKSl8fHMuZW51bWVyYWJsZX0pO3JldHVybiB0fTt2YXIgZz0odCxlLG8pPT4obz10IT1udWxsP2QoaSh0KSk6e30sQyhlfHwhdHx8IXQuX19lc01vZHVsZT9hKG8sImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpvLHQpKTt2YXIgbT11KCh4LGMpPT57InVzZSBzdHJpY3QiO2MuZXhwb3J0cz10PT5lbmNvZGVVUklDb21wb25lbnQodCkucmVwbGFjZSgvWyEnKCkqXS9nLGU9PmAlJHtlLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YCl9KTt2YXIgcD1nKG0oKSksVT1wLmRlZmF1bHQ/P3A7ZXhwb3J0e1UgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0cmljdC11cmktZW5jb2RlLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/alloc.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.038Z","timestamp":1785138634038,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.1/es2022/alloc.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@%5E3.0.0/concat?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dcebc63569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":446,"size_decoded":622,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (316)","md5":"c5990b42b231093a16c7cf5c14f9c3ce","sha1":"3fe6795120ea7368ae692fc1b34b4f21d752b67f","sha256":"ec6230a68c8e12810c5edb801b35d46e9f3ad2c85ba3ea8e966c172aee1e36d8","sha512":"7661fd6e69af5472c022b986f330a572cc0702afd25911491ced9bd3469252f68797f1e4be77cc9f8e2a0d43285e352257d35d461143cc7b8090ed3a54e606d1","ssdeep":"","tlshash":"24f0a0570c36883408666ea688d79bdf53b49aaafcc55084dd1a5e2436a30f4c06289a","first_seen":"2025-07-08T23:56:54.635768Z","last_seen":"2026-08-08T17:15:51.508151Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvYWxsb2MgKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwppbXBvcnR7YXNVaW50OEFycmF5IGFzIHJ9ZnJvbSIuL2VzbS9zcmMvdXRpbC9hcy11aW50OGFycmF5Lm1qcyI7ZnVuY3Rpb24gbihsPTApe3JldHVybiBfX0J1ZmZlciQhPW51bGwmJl9fQnVmZmVyJC5hbGxvYyE9bnVsbD9yKF9fQnVmZmVyJC5hbGxvYyhsKSk6bmV3IFVpbnQ4QXJyYXkobCl9ZnVuY3Rpb24gYShsPTApe3JldHVybiBfX0J1ZmZlciQhPW51bGwmJl9fQnVmZmVyJC5hbGxvY1Vuc2FmZSE9bnVsbD9yKF9fQnVmZmVyJC5hbGxvY1Vuc2FmZShsKSk6bmV3IFVpbnQ4QXJyYXkobCl9ZXhwb3J0e24gYXMgYWxsb2MsYSBhcyBhbGxvY1Vuc2FmZX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWFsbG9jLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/multiformats.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.220Z","timestamp":1785138634220,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/multiformats.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Wed, 19 Nov 2025 18:21:26 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfec8b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":325,"size_decoded":574,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"ed25b18521771e8317ffd87dfa444aa5","sha1":"45dead1ccb99032d709d7a6c752e05a7645e4950","sha256":"7449f492d80b1dcffcbbfb5599707e5f9c0e5a54694532f330b0f64defe27809","sha512":"d95df936c932b07773a2389c9523a8cadfa6bcf1a760f53207c6276773c832564c15decd9d7424b888beb1b3a0425048c6bf0c83e0bbb8367d8698b92ba3d6f3","ssdeep":"","tlshash":"d8e0466f8aaa74b1572a98aac288a8373629d7a992945290948f0f350b3405af865d34","first_seen":"2025-07-08T23:56:54.613742Z","last_seen":"2026-08-08T17:15:52.217811Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wICovCmltcG9ydHtDSUQgYXMgb31mcm9tIi4vY2lkLm1qcyI7aW1wb3J0KmFzIG0gZnJvbSIuL2VzbS9zcmMvdmFyaW50Lm1qcyI7aW1wb3J0KmFzIHQgZnJvbSIuL2VzbS9zcmMvYnl0ZXMubWpzIjtpbXBvcnQqYXMgaSBmcm9tIi4vaGFzaGVzL2hhc2hlci5tanMiO2ltcG9ydCphcyBzIGZyb20iLi9oYXNoZXMvZGlnZXN0Lm1qcyI7ZXhwb3J0e28gYXMgQ0lELHQgYXMgYnl0ZXMscyBhcyBkaWdlc3QsaSBhcyBoYXNoZXIsbSBhcyB2YXJpbnR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1tdWx0aWZvcm1hdHMubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@%5E1.0.6?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.540Z","timestamp":1785138633540,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-utils@%5E1.0.6?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-http-connection@1.0.8/es2022/jsonrpc-http-connection.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/jsonrpc-utils@1.0.8/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcbabd4569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":259,"size_decoded":718,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d827a1963182d8b91406a0d0e3f597de","sha1":"902f425613826b9cc4711650ef9b6997fd223266","sha256":"31eae021700841d185af1d679fbe35f816d1c0f42700ed36c086b02350e7e149","sha512":"182a8f89352a0d2ac337cd99923f8a21f2996b1f2f5365ee75fc919ca80ebc4a1d96dc8b5f08fb5e02c0648efc093cc3072e6800fa1df0a2b5fe86908e840252","ssdeep":"","tlshash":"2ad0679a85239f1a932b16947b8e577c55a31e98e643417c5ae8d228d0212d8d6902e2","first_seen":"2025-07-08T23:56:54.585735Z","last_seen":"2026-08-08T17:15:51.351783Z","times_seen":125,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOCAqLwppbXBvcnQgIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXR5cGVzQF4xLjAuMz90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOC9lczIwMjIvZGlzdC9lc20vZW52Lm1qcyI7CmV4cG9ydCAqIGZyb20gIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXV0aWxzQDEuMC44L2VzMjAyMi9qc29ucnBjLXV0aWxzLm1qcyI7Cg=="}},"time_used":122,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":122,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/unstorage@%5E1.9.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.907Z","timestamp":1785138633907,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /unstorage@%5E1.9.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/keyvaluestorage@1.1.1/es2022/keyvaluestorage.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /unstorage@1.17.5/es2022/unstorage.mjs\r\nx-typescript-types: https://esm.sh/unstorage@1.17.5/dist/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dcdec35569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":196,"size_decoded":673,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"814888d8f8ad54aff68d4ba0efb9f50a","sha1":"4e6f7a5b905ac81135c54a8528abf781d1607183","sha256":"c930cc3ea0fde19c28b5c4b6993033f4bb2e9ffa5590091c24f9ec4d98c76ba7","sha512":"da5dc5f324573223419830fb6d76ec8e36b1adf33e1949db881ab5902419ed039c17d3dfc8102b35837caa42a18b657a1380b7d190525f0fe3b5a1eb1b2c8604","ssdeep":"","tlshash":"17d01267c121b17c2a729dffb211f13867310a84f54fd1a91847c61d7aaa04043e6ee2","first_seen":"2026-04-06T13:47:42.470546Z","last_seen":"2026-08-08T17:15:51.815948Z","times_seen":100,"resource_available":true,"data":"LyogZXNtLnNoIC0gdW5zdG9yYWdlQDEuMTcuNSAqLwppbXBvcnQgIi9kZXN0ckBeMi4wLjU/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL3Vuc3RvcmFnZUAxLjE3LjUvZXMyMDIyL2Rpc3Qvc2hhcmVkL3Vuc3RvcmFnZS56VkREMm1aby5tanMiOwpleHBvcnQgKiBmcm9tICIvdW5zdG9yYWdlQDEuMTcuNS9lczIwMjIvdW5zdG9yYWdlLm1qcyI7Cg=="}},"time_used":122,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":122,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/logger@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.936Z","timestamp":1785138633936,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/logger@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/bytes@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/logger@5.8.0/es2022/logger.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/logger@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce1c3a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":107,"size_decoded":639,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"3ac6a89061cb784ca250a8621befaf03","sha1":"2ffdc3724f6aad96f0e45108f3deac84d47efb06","sha256":"bc222e6fb2766fe69400ae423fb741f841be400f06fcc4ab3c56fec130af8fd8","sha512":"5300c3794f04d88692430227cbf41c63737ab9e0fb8bf50a1ad96a5e4bde3e38ff8929f2a31d2b32bde1bbff124567c14c9a3b2920dde3224242d304b642fe48","ssdeep":"","tlshash":"6eb09216422a429c666f0b8c8278ab28b26a81948048d4da50986a5b92c312568b04aa","first_seen":"2025-07-08T23:56:54.776707Z","last_seen":"2026-07-27T07:51:47.163223Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvbG9nZ2VyQDUuOC4wICovCmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJANS44LjAvZXMyMDIyL2xvZ2dlci5tanMiOwo="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/to-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.030Z","timestamp":1785138634030,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.1/es2022/to-string.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@%5E3.0.0/to-string?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:03:00 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dcebc61569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":459,"size_decoded":685,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (321)","md5":"6d8ccfc9340c3d537a42b73469c7c8ec","sha1":"ca4f396f6acfa61fb0ed0dd5282b103cf9a5716f","sha256":"ed836042dbddd3029afc5f5265e3c59d5f03afb429c532a41c9d262c1ba4eac2","sha512":"937b6fdc2028c49556a462a7f96eae4e472cbca64eca7ae27e1967e18758ed719d921d32a80612d5b095a5682fb2752a83210b34f6e2ae81373a0555e4c352f3","ssdeep":"","tlshash":"27f0dc83de6020d30be328a500dbacdf42e43689e9e145d5cc49072938d44f5d033870","first_seen":"2025-07-08T23:56:54.702474Z","last_seen":"2026-08-08T17:15:52.250551Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvdG8tc3RyaW5nICovCmltcG9ydCB7IEJ1ZmZlciBhcyBfX0J1ZmZlciQgfSBmcm9tICIvbm9kZS9idWZmZXIubWpzIjsKaW1wb3J0IHIgZnJvbSIuL2VzbS9zcmMvdXRpbC9iYXNlcy5tanMiO2Z1bmN0aW9uIHUodCxmPSJ1dGY4Iil7bGV0IGU9cltmXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGVuY29kaW5nICIke2Z9ImApO3JldHVybihmPT09InV0ZjgifHxmPT09InV0Zi04IikmJl9fQnVmZmVyJCE9bnVsbCYmX19CdWZmZXIkLmZyb20hPW51bGw/X19CdWZmZXIkLmZyb20odC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkudG9TdHJpbmcoInV0ZjgiKTplLmVuY29kZXIuZW5jb2RlKHQpLnN1YnN0cmluZygxKX1leHBvcnR7dSBhcyB0b1N0cmluZ307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXRvLXN0cmluZy5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/codecs/json.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.215Z","timestamp":1785138634215,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/codecs/json.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc87569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":249,"size_decoded":582,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text","md5":"227aee760f744b44eed2f8fdc2aefa58","sha1":"bcb24e37045c30bd20014346b888d864536f2fde","sha256":"a31ef601f2480daa1ed34393e91f937cef522517ca7d934b86939f8d761fe077","sha512":"29a617b824766e90b60f95671a0475636f578dba1114e190f636348666f6b93348781ba381b01e782516050c68ad478f36f56604c0cfcfd3538d80b00dfa6a1e","ssdeep":"","tlshash":"04d097ac0c7867f04d7e064520aacc0b624c788091000a74fc490bd80024ce2c2272be","first_seen":"2025-07-08T23:56:54.839119Z","last_seen":"2026-08-08T17:15:52.051779Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2NvZGVjcy9qc29uICovCnZhciBvPW5ldyBUZXh0RW5jb2Rlcix0PW5ldyBUZXh0RGVjb2RlcixjPSJqc29uIixuPTUxMixkPWU9Pm8uZW5jb2RlKEpTT04uc3RyaW5naWZ5KGUpKSxyPWU9PkpTT04ucGFyc2UodC5kZWNvZGUoZSkpO2V4cG9ydHtuIGFzIGNvZGUsciBhcyBkZWNvZGUsZCBhcyBlbmNvZGUsYyBhcyBuYW1lfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9anNvbi5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/query-string@7.1.3/es2022/query-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.571Z","timestamp":1785138633571,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /query-string@7.1.3/es2022/query-string.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:15:31 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbdbe1569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":6901,"size_decoded":3313,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6263)","md5":"59e0c3a038c29142c7a3a56d7131aac5","sha1":"79d71c73e177ab4dbd0aae976e7b0afd8692998c","sha256":"e7dba338d89ca71b8501e08677d4caf25dbf49fc41736ef588987c3af98e79af","sha512":"75407c59dcb5a538f37b4dd486a87f48b306f1f1188c7b4037f00bda85a540110e493513ae5e702ec213f34ba57d62e685eb454889a839e2072073d4c792ac6b","ssdeep":"192:Xz+Tc+EDfjdAbfVkVZ2IFdlCHuooF4LUSlJVUhz:CoRumZ2orY3omPQhz","tlshash":"2ae1c6d47cc6d5e4977dd4da823a8021f13e6d24884cb921e3949eb33289d0785f3bba","first_seen":"2025-07-08T23:56:54.590904Z","last_seen":"2026-07-27T07:51:47.180633Z","times_seen":115,"resource_available":true,"data":"LyogZXNtLnNoIC0gcXVlcnktc3RyaW5nQDcuMS4zICovCmltcG9ydCphcyBfXzAkIGZyb20iL3N0cmljdC11cmktZW5jb2RlQF4yLjAuMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX18xJCBmcm9tIi9kZWNvZGUtdXJpLWNvbXBvbmVudEBeMC4yLjI/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0KmFzIF9fMiQgZnJvbSIvc3BsaXQtb24tZmlyc3RAXjEuMC4wP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzMkIGZyb20iL2ZpbHRlci1vYmpAXjEuMS4wP3RhcmdldD1lczIwMjIiO3ZhciByZXF1aXJlPW49Pntjb25zdCBlPW09PnR5cGVvZiBtLmRlZmF1bHQ8InUiP20uZGVmYXVsdDptLGM9bT0+T2JqZWN0LmFzc2lnbih7X19lc01vZHVsZTp0cnVlfSxtKTtzd2l0Y2gobil7Y2FzZSJzdHJpY3QtdXJpLWVuY29kZSI6cmV0dXJuIGUoX18wJCk7Y2FzZSJkZWNvZGUtdXJpLWNvbXBvbmVudCI6cmV0dXJuIGUoX18xJCk7Y2FzZSJzcGxpdC1vbi1maXJzdCI6cmV0dXJuIGUoX18yJCk7Y2FzZSJmaWx0ZXItb2JqIjpyZXR1cm4gZShfXzMkKTtkZWZhdWx0OmNvbnNvbGUuZXJyb3IoJ21vZHVsZSAiJytuKyciIG5vdCBmb3VuZCcpO3JldHVybiBudWxsO319Owp2YXIgQT1PYmplY3QuY3JlYXRlO3ZhciB5PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgJD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBVPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBJPU9iamVjdC5nZXRQcm90b3R5cGVPZixFPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIG09KHI9PnR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOnR5cGVvZiBQcm94eTwidSI/bmV3IFByb3h5KHIse2dldDooZSx0KT0+KHR5cGVvZiByZXF1aXJlPCJ1Ij9yZXF1aXJlOmUpW3RdfSk6cikoZnVuY3Rpb24ocil7aWYodHlwZW9mIHJlcXVpcmU8InUiKXJldHVybiByZXF1aXJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aHJvdyBFcnJvcignRHluYW1pYyByZXF1aXJlIG9mICInK3IrJyIgaXMgbm90IHN1cHBvcnRlZCcpfSk7dmFyIHE9KHIsZSk9PigpPT4oZXx8cigoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKTt2YXIgdz0ocixlLHQsbik9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgYSBvZiBVKGUpKSFFLmNhbGwocixhKSYmYSE9PXQmJnkocixhLHtnZXQ6KCk9PmVbYV0sZW51bWVyYWJsZTohKG49JChlLGEpKXx8bi5lbnVtZXJhYmxlfSk7cmV0dXJuIHJ9O3ZhciBDPShyLGUsdCk9Pih0PXIhPW51bGw/QShJKHIpKTp7fSx3KGV8fCFyfHwhci5fX2VzTW9kdWxlP3kodCwiZGVmYXVsdCIse3ZhbHVlOnIsZW51bWVyYWJsZTohMH0pOnQscikpO3ZhciBOPXEoYz0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcD1tKCJzdHJpY3QtdXJpLWVuY29kZSIpLFY9bSgiZGVjb2RlLXVyaS1jb21wb25lbnQiKSxiPW0oInNwbGl0LW9uLWZpcnN0IiksQj1tKCJmaWx0ZXItb2JqIiksTD1yPT5yPT1udWxsLGc9U3ltYm9sKCJlbmNvZGVGcmFnbWVudElkZW50aWZpZXIiKTtmdW5jdGlvbiBIKHIpe3N3aXRjaChyLmFycmF5Rm9ybWF0KXtjYXNlImluZGV4IjpyZXR1cm4gZT0+KHQsbik9PntsZXQgYT10Lmxlbmd0aDtyZXR1cm4gbj09PXZvaWQgMHx8ci5za2lwTnVsbCYmbj09PW51bGx8fHIuc2tpcEVtcHR5U3RyaW5nJiZuPT09IiI/dDpuPT09bnVsbD9bLi4udCxbaShlLHIpLCJbIixhLCJdIl0uam9pbigiIildOlsuLi50LFtpKGUsciksIlsiLGkoYSxyKSwiXT0iLGkobixyKV0uam9pbigiIildfTtjYXNlImJyYWNrZXQiOnJldHVybiBlPT4odCxuKT0+bj09PXZvaWQgMHx8ci5za2lwTnVsbCYmbj09PW51bGx8fHIuc2tpcEVtcHR5U3RyaW5nJiZuPT09IiI/dDpuPT09bnVsbD9bLi4udCxbaShlLHIpLCJbXSJdLmpvaW4oIiIpXTpbLi4udCxbaShlLHIpLCJbXT0iLGkobixyKV0uam9pbigiIildO2Nhc2UiY29sb24tbGlzdC1zZXBhcmF0b3IiOnJldHVybiBlPT4odCxuKT0+bj09PXZvaWQgMHx8ci5za2lwTnVsbCYmbj09PW51bGx8fHIuc2tpcEVtcHR5U3RyaW5nJiZuPT09IiI/dDpuPT09bnVsbD9bLi4udCxbaShlLHIpLCI6bGlzdD0iXS5qb2luKCIiKV06Wy4uLnQsW2koZSxyKSwiOmxpc3Q9IixpKG4scildLmpvaW4oIiIpXTtjYXNlImNvbW1hIjpjYXNlInNlcGFyYXRvciI6Y2FzZSJicmFja2V0LXNlcGFyYXRvciI6e2xldCBlPXIuYXJyYXlGb3JtYXQ9PT0iYnJhY2tldC1zZXBhcmF0b3IiPyJbXT0iOiI9IjtyZXR1cm4gdD0+KG4sYSk9PmE9PT12b2lkIDB8fHIuc2tpcE51bGwmJmE9PT1udWxsfHxyLnNraXBFbXB0eVN0cmluZyYmYT09PSIiP246KGE9YT09PW51bGw/IiI6YSxuLmxlbmd0aD09PTA/W1tpKHQsciksZSxpKGEscildLmpvaW4oIiIpXTpbW24saShhLHIpXS5qb2luKHIuYXJyYXlGb3JtYXRTZXBhcmF0b3IpXSl9ZGVmYXVsdDpyZXR1cm4gZT0+KHQsbik9Pm49PT12b2lkIDB8fHIuc2tpcE51bGwmJm49PT1udWxsfHxyLnNraXBFbXB0eVN0cmluZyYmbj09PSIiP3Q6bj09PW51bGw/Wy4uLnQsaShlLHIpXTpbLi4udCxbaShlLHIpLCI9IixpKG4scildLmpvaW4oIiIpXX19ZnVuY3Rpb24gUShyKXtsZXQgZTtzd2l0Y2goci5hcnJheUZvcm1hdCl7Y2FzZSJpbmRleCI6cmV0dXJuKHQsbixhKT0+e2lmKGU9L1xbKFxkKilcXSQvLmV4ZWModCksdD10LnJlcGxhY2UoL1xbXGQqXF0kLywiIiksIWUpe2FbdF09bjtyZXR1cm59YVt0XT09PXZvaWQgMCYmKGFbdF09e30pLGFbdF1bZVsxXV09bn07Y2FzZSJicmFja2V0IjpyZXR1cm4odCxuLGEpPT57aWYoZT0vKFxbXF0pJC8uZXhlYyh0KSx0PXQucmVwbGFjZSgvXFtcXSQvLCIiKSwhZSl7YVt0XT1uO3JldHVybn1pZihhW3RdPT09dm9pZCAwKXthW3RdPVtuXTtyZXR1cm59YVt0XT1bXS5jb25jYXQoYVt0XSxuKX07Y2FzZSJjb2xvbi1saXN0LXNlcGFyYXRvciI6cmV0dXJuKHQsbixhKT0+e2lmKGU9Lyg6bGlzdCkkLy5leGVjKHQpLHQ9dC5yZXBsYWNlKC86bGlzdCQvLCIiKSwhZSl7YVt0XT1uO3JldHVybn1pZihhW3RdPT09dm9pZCAwKXthW3RdPVtuXTtyZXR1cm59YVt0XT1bXS5jb25jYXQoYVt0XSxuKX07Y2FzZSJjb21tYSI6Y2FzZSJzZXBhcmF0b3IiOnJldHVybih0LG4sYSk9PntsZXQgcz10eXBlb2Ygbj09InN0cmluZyImJm4uaW5jbHVkZXMoci5hcnJheUZvcm1hdFNlcGFyYXRvciksZj10eXBlb2Ygbj09InN0cmluZyImJiFzJiZ1KG4scikuaW5jbHVkZXMoci5hcnJheUZvcm1hdFNlcGFyYXRvcik7bj1mP3UobixyKTpuO2xldCBkPXN8fGY/bi5zcGxpdChyLmFycmF5Rm9ybWF0U2VwYXJhdG9yKS5tYXAobz0+dShvLHIpKTpuPT09bnVsbD9uOnUobixyKTthW3RdPWR9O2Nhc2UiYnJhY2tldC1zZXBhcmF0b3IiOnJldHVybih0LG4sYSk9PntsZXQgcz0vKFxbXF0pJC8udGVzdCh0KTtpZih0PXQucmVwbGFjZSgvXFtcXSQvLCIiKSwhcyl7YVt0XT1uJiZ1KG4scik7cmV0dXJufWxldCBmPW49PT1udWxsP1tdOm4uc3BsaXQoci5hcnJheUZvcm1hdFNlcGFyYXRvcikubWFwKGQ9PnUoZCxyKSk7aWYoYVt0XT09PXZvaWQgMCl7YVt0XT1mO3JldHVybn1hW3RdPVtdLmNvbmNhdChhW3RdLGYpfTtkZWZhdWx0OnJldHVybih0LG4sYSk9PntpZihhW3RdPT09dm9pZCAwKXthW3RdPW47cmV0dXJufWFbdF09W10uY29uY2F0KGFbdF0sbil9fX1mdW5jdGlvbiBTKHIpe2lmKHR5cGVvZiByIT0ic3RyaW5nInx8ci5sZW5ndGghPT0xKXRocm93IG5ldyBUeXBlRXJyb3IoImFycmF5Rm9ybWF0U2VwYXJhdG9yIG11c3QgYmUgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmciKX1mdW5jdGlvbiBpKHIsZSl7cmV0dXJuIGUuZW5jb2RlP2Uuc3RyaWN0P3Aocik6ZW5jb2RlVVJJQ29tcG9uZW50KHIpOnJ9ZnVuY3Rpb24gdShyLGUpe3JldHVybiBlLmRlY29kZT9WKHIpOnJ9ZnVuY3Rpb24gaihyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9yLnNvcnQoKTp0eXBlb2Ygcj09Im9iamVjdCI/aihPYmplY3Qua2V5cyhyKSkuc29ydCgoZSx0KT0+TnVtYmVyKGUpLU51bWJlcih0KSkubWFwKGU9PnJbZV0pOnJ9ZnVuY3Rpb24gaChyKXtsZXQgZT1yLmluZGV4T2YoIiMiKTtyZXR1cm4gZSE9PS0xJiYocj1yLnNsaWNlKDAsZSkpLHJ9ZnVuY3Rpb24gUihyKXtsZXQgZT0iIix0PXIuaW5kZXhPZigiIyIpO3JldHVybiB0IT09LTEmJihlPXIuc2xpY2UodCkpLGV9ZnVuY3Rpb24gTyhyKXtyPWgocik7bGV0IGU9ci5pbmRleE9mKCI/Iik7cmV0dXJuIGU9PT0tMT8iIjpyLnNsaWNlKGUrMSl9ZnVuY3Rpb24gRihyLGUpe3JldHVybiBlLnBhcnNlTnVtYmVycyYmIU51bWJlci5pc05hTihOdW1iZXIocikpJiZ0eXBlb2Ygcj09InN0cmluZyImJnIudHJpbSgpIT09IiI/cj1OdW1iZXIocik6ZS5wYXJzZUJvb2xlYW5zJiZyIT09bnVsbCYmKHIudG9Mb3dlckNhc2UoKT09PSJ0cnVlInx8ci50b0xvd2VyQ2FzZSgpPT09ImZhbHNlIikmJihyPXIudG9Mb3dlckNhc2UoKT09PSJ0cnVlIikscn1mdW5jdGlvbiB4KHIsZSl7ZT1PYmplY3QuYXNzaWduKHtkZWNvZGU6ITAsc29ydDohMCxhcnJheUZvcm1hdDoibm9uZSIsYXJyYXlGb3JtYXRTZXBhcmF0b3I6IiwiLHBhcnNlTnVtYmVyczohMSxwYXJzZUJvb2xlYW5zOiExfSxlKSxTKGUuYXJyYXlGb3JtYXRTZXBhcmF0b3IpO2xldCB0PVEoZSksbj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKHR5cGVvZiByIT0ic3RyaW5nInx8KHI9ci50cmltKCkucmVwbGFjZSgvXls/IyZdLywiIiksIXIpKXJldHVybiBuO2ZvcihsZXQgYSBvZiByLnNwbGl0KCImIikpe2lmKGE9PT0iIiljb250aW51ZTtsZXRbcyxmXT1iKGUuZGVjb2RlP2EucmVwbGFjZSgvXCsvZywiICIpOmEsIj0iKTtmPWY9PT12b2lkIDA/bnVsbDpbImNvbW1hIiwic2VwYXJhdG9yIiwiYnJhY2tldC1zZXBhcmF0b3IiXS5pbmNsdWRlcyhlLmFycmF5Rm9ybWF0KT9mOnUoZixlKSx0KHUocyxlKSxmLG4pfWZvcihsZXQgYSBvZiBPYmplY3Qua2V5cyhuKSl7bGV0IHM9blthXTtpZih0eXBlb2Ygcz09Im9iamVjdCImJnMhPT1udWxsKWZvcihsZXQgZiBvZiBPYmplY3Qua2V5cyhzKSlzW2ZdPUYoc1tmXSxlKTtlbHNlIG5bYV09RihzLGUpfXJldHVybiBlLnNvcnQ9PT0hMT9uOihlLnNvcnQ9PT0hMD9PYmplY3Qua2V5cyhuKS5zb3J0KCk6T2JqZWN0LmtleXMobikuc29ydChlLnNvcnQpKS5yZWR1Y2UoKGEscyk9PntsZXQgZj1uW3NdO3JldHVybiBmJiZ0eXBlb2YgZj09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KGYpP2Fbc109aihmKTphW3NdPWYsYX0sT2JqZWN0LmNyZWF0ZShudWxsKSl9Yy5leHRyYWN0PU87Yy5wYXJzZT14O2Muc3RyaW5naWZ5PShyLGUpPT57aWYoIXIpcmV0dXJuIiI7ZT1PYmplY3QuYXNzaWduKHtlbmNvZGU6ITAsc3RyaWN0OiEwLGFycmF5Rm9ybWF0OiJub25lIixhcnJheUZvcm1hdFNlcGFyYXRvcjoiLCJ9LGUpLFMoZS5hcnJheUZvcm1hdFNlcGFyYXRvcik7bGV0IHQ9Zj0+ZS5za2lwTnVsbCYmTChyW2ZdKXx8ZS5za2lwRW1wdHlTdHJpbmcmJnJbZl09PT0iIixuPUgoZSksYT17fTtmb3IobGV0IGYgb2YgT2JqZWN0LmtleXMocikpdChmKXx8KGFbZl09cltmXSk7bGV0IHM9T2JqZWN0LmtleXMoYSk7cmV0dXJuIGUuc29ydCE9PSExJiZzLnNvcnQoZS5zb3J0KSxzLm1hcChmPT57bGV0IGQ9cltmXTtyZXR1cm4gZD09PXZvaWQgMD8iIjpkPT09bnVsbD9pKGYsZSk6QXJyYXkuaXNBcnJheShkKT9kLmxlbmd0aD09PTAmJmUuYXJyYXlGb3JtYXQ9PT0iYnJhY2tldC1zZXBhcmF0b3IiP2koZixlKSsiW10iOmQucmVkdWNlKG4oZiksW10pLmpvaW4oIiYiKTppKGYsZSkrIj0iK2koZCxlKX0pLmZpbHRlcihmPT5mLmxlbmd0aD4wKS5qb2luKCImIil9O2MucGFyc2VVcmw9KHIsZSk9PntlPU9iamVjdC5hc3NpZ24oe2RlY29kZTohMH0sZSk7bGV0W3Qsbl09YihyLCIjIik7cmV0dXJuIE9iamVjdC5hc3NpZ24oe3VybDp0LnNwbGl0KCI/IilbMF18fCIiLHF1ZXJ5OngoTyhyKSxlKX0sZSYmZS5wYXJzZUZyYWdtZW50SWRlbnRpZmllciYmbj97ZnJhZ21lbnRJZGVudGlmaWVyOnUobixlKX06e30pfTtjLnN0cmluZ2lmeVVybD0ocixlKT0+e2U9T2JqZWN0LmFzc2lnbih7ZW5jb2RlOiEwLHN0cmljdDohMCxbZ106ITB9LGUpO2xldCB0PWgoci51cmwpLnNwbGl0KCI/IilbMF18fCIiLG49Yy5leHRyYWN0KHIudXJsKSxhPWMucGFyc2Uobix7c29ydDohMX0pLHM9T2JqZWN0LmFzc2lnbihhLHIucXVlcnkpLGY9Yy5zdHJpbmdpZnkocyxlKTtmJiYoZj1gPyR7Zn1gKTtsZXQgZD1SKHIudXJsKTtyZXR1cm4gci5mcmFnbWVudElkZW50aWZpZXImJihkPWAjJHtlW2ddP2koci5mcmFnbWVudElkZW50aWZpZXIsZSk6ci5mcmFnbWVudElkZW50aWZpZXJ9YCksYCR7dH0ke2Z9JHtkfWB9O2MucGljaz0ocixlLHQpPT57dD1PYmplY3QuYXNzaWduKHtwYXJzZUZyYWdtZW50SWRlbnRpZmllcjohMCxbZ106ITF9LHQpO2xldHt1cmw6bixxdWVyeTphLGZyYWdtZW50SWRlbnRpZmllcjpzfT1jLnBhcnNlVXJsKHIsdCk7cmV0dXJuIGMuc3RyaW5naWZ5VXJsKHt1cmw6bixxdWVyeTpCKGEsZSksZnJhZ21lbnRJZGVudGlmaWVyOnN9LHQpfTtjLmV4Y2x1ZGU9KHIsZSx0KT0+e2xldCBuPUFycmF5LmlzQXJyYXkoZSk/YT0+IWUuaW5jbHVkZXMoYSk6KGEscyk9PiFlKGEscyk7cmV0dXJuIGMucGljayhyLG4sdCl9fSk7dmFyIGw9QyhOKCkpLHtleHRyYWN0OnoscGFyc2U6RCxzdHJpbmdpZnk6RyxwYXJzZVVybDpKLHN0cmluZ2lmeVVybDpLLHBpY2s6TSxleGNsdWRlOlB9PWwsVz1sLmRlZmF1bHQ/P2w7ZXhwb3J0e1cgYXMgZGVmYXVsdCxQIGFzIGV4Y2x1ZGUseiBhcyBleHRyYWN0LEQgYXMgcGFyc2UsSiBhcyBwYXJzZVVybCxNIGFzIHBpY2ssRyBhcyBzdHJpbmdpZnksSyBhcyBzdHJpbmdpZnlVcmx9OwovLyMgc291cmNlTWFwcGluZ1VSTD1xdWVyeS1zdHJpbmcubWpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.583Z","timestamp":1785138633583,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/uint8arrays.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16522\r\ncf-ray: a21a0dcbebeb569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":396,"size_decoded":608,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (322)","md5":"e304a9b87d1c4a0df0f73920e46414e7","sha1":"1f2846364a45998f12f85a5a1978269f639350c7","sha256":"66c4e9e46b23a741080be208675def0a33e09cc063072759f4b4c72d3413d8f8","sha512":"01510362ecbad225c96e256d3694b1322588f6a8f8f41d095a224dd7c1e6c64c52ac81a90c1718cebdb589a6193ff0ce647da92fb363a6186d8dbe31719c144b","ssdeep":"","tlshash":"65e0222fb0c382b86a7948e8c15424b7922117ec93d103f2e9cf0a2813768d5c03ef29","first_seen":"2025-07-08T23:56:54.700669Z","last_seen":"2026-07-27T07:51:47.25325Z","times_seen":105,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAgKi8KaW1wb3J0e2NvbXBhcmUgYXMgcn1mcm9tIi4vY29tcGFyZS5tanMiO2ltcG9ydHtjb25jYXQgYXMgdH1mcm9tIi4vY29uY2F0Lm1qcyI7aW1wb3J0e2VxdWFscyBhcyBwfWZyb20iLi9lcXVhbHMubWpzIjtpbXBvcnR7ZnJvbVN0cmluZyBhcyBhfWZyb20iLi9mcm9tLXN0cmluZy5tanMiO2ltcG9ydHt0b1N0cmluZyBhcyBlfWZyb20iLi90by1zdHJpbmcubWpzIjtpbXBvcnR7eG9yIGFzIGd9ZnJvbSIuL3hvci5tanMiO2V4cG9ydHtyIGFzIGNvbXBhcmUsdCBhcyBjb25jYXQscCBhcyBlcXVhbHMsYSBhcyBmcm9tU3RyaW5nLGUgYXMgdG9TdHJpbmcsZyBhcyB4b3J9OwovLyMgc291cmNlTWFwcGluZ1VSTD11aW50OGFycmF5cy5tanMubWFw"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/relay-api@1.0.11/es2022/relay-api.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.588Z","timestamp":1785138633588,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/relay-api@1.0.11/es2022/relay-api.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:54 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbfbee569f-OSL\r\ncontent-length: 1081\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3307,"size_decoded":1534,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3221)","md5":"ed5db617cc51c194d8a18fd8088f1485","sha1":"fac9cabb448b92886d0197e659bb42ce3fb34063","sha256":"b23a5b484bc6d55bec3834b87fdcdb82281cb93c085f3165a98a106f13e00a5f","sha512":"03c1bcd3d255ca7c223c0ad4f1a01fae331c297fd3193c40c805ce5a118e9bc671bce503f1d1f6f27b0e52d44ee8b02f6669978e49b48b2c270de085002e954d","ssdeep":"","tlshash":"606112283d61b159e2cb7a706cc7a85e62fa1c41b01e5520f5d450aa79d8f7c8d43a98","first_seen":"2025-07-08T23:56:54.792147Z","last_seen":"2026-08-08T17:15:51.568562Z","times_seen":49,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvcmVsYXktYXBpQDEuMC4xMSAqLwpmdW5jdGlvbiB0KHMsaSxyPSJzdHJpbmciKXtpZighc1tpXXx8dHlwZW9mIHNbaV0hPT1yKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyBvciBpbnZhbGlkICIke2l9IiBwYXJhbWApfWZ1bmN0aW9uIGwocyxpKXtsZXQgcj0hMDtyZXR1cm4gaS5mb3JFYWNoKGU9PntlIGluIHN8fChyPSExKX0pLHJ9ZnVuY3Rpb24gZihzLGkpe3JldHVybiBBcnJheS5pc0FycmF5KHMpP3MubGVuZ3RoPT09aTpPYmplY3Qua2V5cyhzKS5sZW5ndGg9PT1pfWZ1bmN0aW9uIHcocyxpKXtyZXR1cm4gQXJyYXkuaXNBcnJheShzKT9zLmxlbmd0aD49aTpPYmplY3Qua2V5cyhzKS5sZW5ndGg+PWl9ZnVuY3Rpb24gdShzLGkscil7cmV0dXJuKHIubGVuZ3RoP3cocyxpLmxlbmd0aCk6ZihzLGkubGVuZ3RoKSk/bChzLGkpOiExfWZ1bmN0aW9uIG4ocyxpLHI9Il8iKXtsZXQgZT1zLnNwbGl0KHIpO3JldHVybiBlW2UubGVuZ3RoLTFdLnRyaW0oKS50b0xvd2VyQ2FzZSgpPT09aS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBSKHMpe3JldHVybiBiKHMubWV0aG9kKSYmYShzLnBhcmFtcyl9ZnVuY3Rpb24gYihzKXtyZXR1cm4gbihzLCJzdWJzY3JpYmUiKX1mdW5jdGlvbiBhKHMpe3JldHVybiB1KHMsWyJ0b3BpYyJdLFtdKX1mdW5jdGlvbiBfKHMpe3JldHVybiBjKHMubWV0aG9kKSYmaChzLnBhcmFtcyl9ZnVuY3Rpb24gYyhzKXtyZXR1cm4gbihzLCJwdWJsaXNoIil9ZnVuY3Rpb24gaChzKXtyZXR1cm4gdShzLFsibWVzc2FnZSIsInRvcGljIiwidHRsIl0sWyJwcm9tcHQiLCJ0YWciXSl9ZnVuY3Rpb24gUChzKXtyZXR1cm4gbyhzLm1ldGhvZCkmJnAocy5wYXJhbXMpfWZ1bmN0aW9uIG8ocyl7cmV0dXJuIG4ocywidW5zdWJzY3JpYmUiKX1mdW5jdGlvbiBwKHMpe3JldHVybiB1KHMsWyJpZCIsInRvcGljIl0sW10pfWZ1bmN0aW9uIFMocyl7cmV0dXJuIG0ocy5tZXRob2QpJiZkKHMucGFyYW1zKX1mdW5jdGlvbiBtKHMpe3JldHVybiBuKHMsInN1YnNjcmlwdGlvbiIpfWZ1bmN0aW9uIGQocyl7cmV0dXJuIHUocyxbImlkIiwiZGF0YSJdLFtdKX1mdW5jdGlvbiBnKHMpe2lmKCFiKHMubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoIkpTT04tUlBDIFJlcXVlc3QgaGFzIGludmFsaWQgc3Vic2NyaWJlIG1ldGhvZCIpO2lmKCFhKHMucGFyYW1zKSl0aHJvdyBuZXcgRXJyb3IoIkpTT04tUlBDIFJlcXVlc3QgaGFzIGludmFsaWQgc3Vic2NyaWJlIHBhcmFtcyIpO2xldCBpPXMucGFyYW1zO3JldHVybiB0KGksInRvcGljIiksaX1mdW5jdGlvbiBxKHMpe2lmKCFjKHMubWV0aG9kKSl0aHJvdyBuZXcgRXJyb3IoIkpTT04tUlBDIFJlcXVlc3QgaGFzIGludmFsaWQgcHVibGlzaCBtZXRob2QiKTtpZighaChzLnBhcmFtcykpdGhyb3cgbmV3IEVycm9yKCJKU09OLVJQQyBSZXF1ZXN0IGhhcyBpbnZhbGlkIHB1Ymxpc2ggcGFyYW1zIik7bGV0IGk9cy5wYXJhbXM7cmV0dXJuIHQoaSwidG9waWMiKSx0KGksIm1lc3NhZ2UiKSx0KGksInR0bCIsIm51bWJlciIpLGl9ZnVuY3Rpb24gayhzKXtpZighbyhzLm1ldGhvZCkpdGhyb3cgbmV3IEVycm9yKCJKU09OLVJQQyBSZXF1ZXN0IGhhcyBpbnZhbGlkIHVuc3Vic2NyaWJlIG1ldGhvZCIpO2lmKCFwKHMucGFyYW1zKSl0aHJvdyBuZXcgRXJyb3IoIkpTT04tUlBDIFJlcXVlc3QgaGFzIGludmFsaWQgdW5zdWJzY3JpYmUgcGFyYW1zIik7bGV0IGk9cy5wYXJhbXM7cmV0dXJuIHQoaSwiaWQiKSxpfWZ1bmN0aW9uIEMocyl7aWYoIW0ocy5tZXRob2QpKXRocm93IG5ldyBFcnJvcigiSlNPTi1SUEMgUmVxdWVzdCBoYXMgaW52YWxpZCBzdWJzY3JpcHRpb24gbWV0aG9kIik7aWYoIWQocy5wYXJhbXMpKXRocm93IG5ldyBFcnJvcigiSlNPTi1SUEMgUmVxdWVzdCBoYXMgaW52YWxpZCBzdWJzY3JpcHRpb24gcGFyYW1zIik7bGV0IGk9cy5wYXJhbXM7cmV0dXJuIHQoaSwiaWQiKSx0KGksImRhdGEiKSxpfXZhciBFPXt3YWt1OntwdWJsaXNoOiJ3YWt1X3B1Ymxpc2giLGJhdGNoUHVibGlzaDoid2FrdV9iYXRjaFB1Ymxpc2giLHN1YnNjcmliZToid2FrdV9zdWJzY3JpYmUiLGJhdGNoU3Vic2NyaWJlOiJ3YWt1X2JhdGNoU3Vic2NyaWJlIixzdWJzY3JpcHRpb246Indha3Vfc3Vic2NyaXB0aW9uIix1bnN1YnNjcmliZToid2FrdV91bnN1YnNjcmliZSIsYmF0Y2hVbnN1YnNjcmliZToid2FrdV9iYXRjaFVuc3Vic2NyaWJlIixiYXRjaEZldGNoTWVzc2FnZXM6Indha3VfYmF0Y2hGZXRjaE1lc3NhZ2VzIn0saXJuOntwdWJsaXNoOiJpcm5fcHVibGlzaCIsYmF0Y2hQdWJsaXNoOiJpcm5fYmF0Y2hQdWJsaXNoIixzdWJzY3JpYmU6Imlybl9zdWJzY3JpYmUiLGJhdGNoU3Vic2NyaWJlOiJpcm5fYmF0Y2hTdWJzY3JpYmUiLHN1YnNjcmlwdGlvbjoiaXJuX3N1YnNjcmlwdGlvbiIsdW5zdWJzY3JpYmU6Imlybl91bnN1YnNjcmliZSIsYmF0Y2hVbnN1YnNjcmliZToiaXJuX2JhdGNoVW5zdWJzY3JpYmUiLGJhdGNoRmV0Y2hNZXNzYWdlczoiaXJuX2JhdGNoRmV0Y2hNZXNzYWdlcyJ9LGlyaWRpdW06e3B1Ymxpc2g6ImlyaWRpdW1fcHVibGlzaCIsYmF0Y2hQdWJsaXNoOiJpcmlkaXVtX2JhdGNoUHVibGlzaCIsc3Vic2NyaWJlOiJpcmlkaXVtX3N1YnNjcmliZSIsYmF0Y2hTdWJzY3JpYmU6ImlyaWRpdW1fYmF0Y2hTdWJzY3JpYmUiLHN1YnNjcmlwdGlvbjoiaXJpZGl1bV9zdWJzY3JpcHRpb24iLHVuc3Vic2NyaWJlOiJpcmlkaXVtX3Vuc3Vic2NyaWJlIixiYXRjaFVuc3Vic2NyaWJlOiJpcmlkaXVtX2JhdGNoVW5zdWJzY3JpYmUiLGJhdGNoRmV0Y2hNZXNzYWdlczoiaXJpZGl1bV9iYXRjaEZldGNoTWVzc2FnZXMifX07ZXhwb3J0e0UgYXMgUkVMQVlfSlNPTlJQQyxjIGFzIGlzUHVibGlzaE1ldGhvZCxoIGFzIGlzUHVibGlzaFBhcmFtcyxfIGFzIGlzUHVibGlzaFJlcXVlc3QsYiBhcyBpc1N1YnNjcmliZU1ldGhvZCxhIGFzIGlzU3Vic2NyaWJlUGFyYW1zLFIgYXMgaXNTdWJzY3JpYmVSZXF1ZXN0LG0gYXMgaXNTdWJzY3JpcHRpb25NZXRob2QsZCBhcyBpc1N1YnNjcmlwdGlvblBhcmFtcyxTIGFzIGlzU3Vic2NyaXB0aW9uUmVxdWVzdCxvIGFzIGlzVW5zdWJzY3JpYmVNZXRob2QscCBhcyBpc1Vuc3Vic2NyaWJlUGFyYW1zLFAgYXMgaXNVbnN1YnNjcmliZVJlcXVlc3QscSBhcyBwYXJzZVB1Ymxpc2hSZXF1ZXN0LGcgYXMgcGFyc2VTdWJzY3JpYmVSZXF1ZXN0LEMgYXMgcGFyc2VTdWJzY3JpcHRpb25SZXF1ZXN0LGsgYXMgcGFyc2VVbnN1YnNjcmliZVJlcXVlc3R9OwovLyMgc291cmNlTWFwcGluZ1VSTD1yZWxheS1hcGkubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/logger@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.709Z","timestamp":1785138633709,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/logger@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: EXPIRED\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/logger@5.8.0/es2022/logger.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/logger@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccac06569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":107,"size_decoded":643,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"3ac6a89061cb784ca250a8621befaf03","sha1":"2ffdc3724f6aad96f0e45108f3deac84d47efb06","sha256":"bc222e6fb2766fe69400ae423fb741f841be400f06fcc4ab3c56fec130af8fd8","sha512":"5300c3794f04d88692430227cbf41c63737ab9e0fb8bf50a1ad96a5e4bde3e38ff8929f2a31d2b32bde1bbff124567c14c9a3b2920dde3224242d304b642fe48","ssdeep":"","tlshash":"6eb09216422a429c666f0b8c8278ab28b26a81948048d4da50986a5b92c312568b04aa","first_seen":"2025-07-08T23:56:54.776707Z","last_seen":"2026-07-27T07:51:47.163223Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvbG9nZ2VyQDUuOC4wICovCmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJANS44LjAvZXMyMDIyL2xvZ2dlci5tanMiOwo="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hash.js@%5E1.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.761Z","timestamp":1785138633761,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /hash.js@%5E1.0.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/elliptic@6.6.1/es2022/elliptic.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /hash.js@1.1.7/es2022/hash.mjs\r\nx-typescript-types: https://esm.sh/hash.js@1.1.7/lib/hash.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcd0c1f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":187,"size_decoded":643,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"9e157228e182fac4a5ab80c94bcb046b","sha1":"cc478da919f5a269364ec6bb5ef03d2a71e82337","sha256":"f22154f96e20b946b641d7fcd7436967b42717c7e8724641a3bc9601b1921329","sha512":"46aec6e2940371dda191a445a902a99db4efee89597773b8324f2b3cd0fd1c3de9d1a1f816285d15f8f39401340afa3b3a3ea067c79d40d580aaa5b707975722","ssdeep":"","tlshash":"32c012150613ba1813341adc29aa893a9bb6cb8ce80e00ba68af460ab003040e0a22b4","first_seen":"2025-07-08T23:56:54.581436Z","last_seen":"2026-07-27T07:51:47.155296Z","times_seen":28,"resource_available":true,"data":"LyogZXNtLnNoIC0gaGFzaC5qc0AxLjEuNyAqLwppbXBvcnQgIi9taW5pbWFsaXN0aWMtYXNzZXJ0QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL2hhc2guanNAMS4xLjcvZXMyMDIyL2hhc2gubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9oYXNoLmpzQDEuMS43L2VzMjAyMi9oYXNoLm1qcyI7Cg=="}},"time_used":117,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/events@1.0.1/es2022/events.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.767Z","timestamp":1785138633767,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/events@1.0.1/es2022/events.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/types@2.17.4/es2022/types.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:54 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dcd0c25569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":114,"size_decoded":492,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text","md5":"3c1ae80bad0d6dbca5373cb8036d1637","sha1":"fb90215b4a86f2a874a1f39941718500d3bdb53b","sha256":"597bc1385708c9b4ccc0a4897f68a66b4076101123fe30f1b1e62272f803ae45","sha512":"836f6a6d68b6e435a6c93ee2c1d5a6a1fbe92f549ff06345684fdaa33d54173805cdf5eac7b56a4fdcdf6000ffa52c3a58a2243b10c24cb1055e5c3398c107d7","ssdeep":"","tlshash":"4fb0927989b44af9223708180356a18b526aa6cbf186422912589d64482168098949e2","first_seen":"2025-07-08T23:56:54.761902Z","last_seen":"2026-08-08T17:15:51.284193Z","times_seen":122,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvZXZlbnRzQDEuMC4xICovCnZhciBvPWNsYXNze307ZXhwb3J0e28gYXMgSUV2ZW50c307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWV2ZW50cy5tanMubWFw"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/codecs/raw.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.217Z","timestamp":1785138634217,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/codecs/raw.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Wed, 19 Nov 2025 18:21:26 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc88569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":213,"size_decoded":554,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"47ef0b4a4baaaaf6edecbfcea66a080c","sha1":"88eb67b9abe02eb8b90b867ddbacbc92eadc18e6","sha256":"6d6b44e3bea526dd9930d61631709f45e9f10bf2e190dc19168e9b0297fb30dd","sha512":"89f85d8dc3871b67144648ebc6b36b71d8ba84230a121079781e6e7e701e7cd60a41e8732b21633c4cc325d86ca8f67d5d83bf271c73e122a9c9b91b087f996b","ssdeep":"","tlshash":"45d0239fcd7d29741a674d141136d816b71cf9cdc31042536419cf547520475d934575","first_seen":"2025-07-08T23:56:54.650422Z","last_seen":"2026-08-08T17:15:52.000727Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2NvZGVjcy9yYXcgKi8KaW1wb3J0e2NvZXJjZSBhcyBlfWZyb20iLi4vZXNtL3NyYy9ieXRlcy5tanMiO3ZhciB0PSJyYXciLHI9ODUsbj1vPT5lKG8pLHA9bz0+ZShvKTtleHBvcnR7ciBhcyBjb2RlLHAgYXMgZGVjb2RlLG4gYXMgZW5jb2RlLHQgYXMgbmFtZX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXJhdy5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@%5E4.11.9?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.762Z","timestamp":1785138633762,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /bn.js@%5E4.11.9?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/elliptic@6.6.1/es2022/elliptic.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /bn.js@4.12.5/es2022/bn.mjs\r\nx-typescript-types: https://esm.sh/@types/bn.js@~4.11.6/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcd0c21569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":128,"size_decoded":607,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"848affde99d6f74a28736cffb85faf34","sha1":"3cc10bcf64dea44908d4b569974e457d33fe6209","sha256":"35bcad406533aeead3e1b2b4f136d0cec68ed0d4d972eb3ebc826374bd76750a","sha512":"bf0b5c5e88ed005a1f38bd52206c7696a191111679e37cb929981195fa01223b1372c18aa784af367a3a16a1d8a8fa3201b7766df7fae8066c5a80f3205a6552","ssdeep":"","tlshash":"c1b0921f00578d0991b3c9c4222c803d97a3864ca454a4ce91d22b21a380020e531bf9","first_seen":"2026-07-27T04:58:21.542101Z","last_seen":"2026-07-27T07:51:47.183826Z","times_seen":3,"resource_available":true,"data":"LyogZXNtLnNoIC0gYm4uanNANC4xMi41ICovCmV4cG9ydCAqIGZyb20gIi9ibi5qc0A0LjEyLjUvZXMyMDIyL2JuLm1qcyI7CmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICIvYm4uanNANC4xMi41L2VzMjAyMi9ibi5tanMiOwo="}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hmac-drbg@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.766Z","timestamp":1785138633766,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /hmac-drbg@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/elliptic@6.6.1/es2022/elliptic.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /hmac-drbg@1.0.1/es2022/hmac-drbg.mjs\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcd0c24569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":301,"size_decoded":590,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"374772825e1f8b76f3dbfaf9a170b110","sha1":"a1f3adad70a9ab8347b21b89eca9b33b72bdebed","sha256":"55b6c7a2b766d26a77e1cb3711effebe3911922d29719cd65cd28b072189b321","sha512":"b4fb85a1c0d315e87ac169a82754815a2b9c03b868a625f186e5edc3742783d3a37598bb9bcd0ca5fc209e2912bc13d3f6c3bce0bd79394747e12ed90e981004","ssdeep":"","tlshash":"dae0ec6d8682ee5d171419f9256baa3d56b74ac8f84610781ab8ce23e203ce065523e4","first_seen":"2025-07-08T23:56:54.727805Z","last_seen":"2026-07-27T07:51:47.139585Z","times_seen":25,"resource_available":true,"data":"LyogZXNtLnNoIC0gaG1hYy1kcmJnQDEuMC4xICovCmltcG9ydCAiL2hhc2guanNAXjEuMC4zP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9taW5pbWFsaXN0aWMtYXNzZXJ0QF4xLjAuMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvbWluaW1hbGlzdGljLWNyeXB0by11dGlsc0BeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7CmV4cG9ydCAqIGZyb20gIi9obWFjLWRyYmdAMS4wLjEvZXMyMDIyL2htYWMtZHJiZy5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL2htYWMtZHJiZ0AxLjAuMS9lczIwMjIvaG1hYy1kcmJnLm1qcyI7Cg=="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-types@1.0.4/es2022/jsonrpc-types.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.817Z","timestamp":1785138633817,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-types@1.0.4/es2022/jsonrpc-types.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-types@%5E1.0.3?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16522\r\ncf-ray: a21a0dcd5c2c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":328,"size_decoded":575,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text","md5":"af7e4001797c73f41412709d97cd6aef","sha1":"f6928852d7e6d0c2ca555e487bc4149b608885d2","sha256":"960643fe7141ff1a36f81d504f363eaccd17c0c791019c2ffe6396d41a00e0d5","sha512":"3efb9ea75a71d6c07b745b805174b6292b31bc6552757b92eafb5ba6b13810841f4e807856b00974cd73ae4d8ae8a6e79503c9476f90ac633e850bb1448bdf9d","ssdeep":"","tlshash":"4ce026ac94b99dfc80ab8ec32a8b8487529528d3f70fc48626fc00349c909c213aa485","first_seen":"2025-07-08T23:56:54.829815Z","last_seen":"2026-08-08T17:15:51.603072Z","times_seen":121,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy10eXBlc0AxLjAuNCAqLwp2YXIgcz1jbGFzc3t9LG89Y2xhc3MgZXh0ZW5kcyBze2NvbnN0cnVjdG9yKG4pe3N1cGVyKCl9fSxlPWNsYXNzIGV4dGVuZHMgc3tjb25zdHJ1Y3Rvcigpe3N1cGVyKCl9fSxyPWNsYXNzIGV4dGVuZHMgZXtjb25zdHJ1Y3RvcihuKXtzdXBlcigpfX07ZXhwb3J0e2UgYXMgSUJhc2VKc29uUnBjUHJvdmlkZXIscyBhcyBJRXZlbnRzLG8gYXMgSUpzb25ScGNDb25uZWN0aW9uLHIgYXMgSUpzb25ScGNQcm92aWRlcn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWpzb25ycGMtdHlwZXMubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/filter-obj@%5E1.1.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.686Z","timestamp":1785138633686,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /filter-obj@%5E1.1.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/query-string@7.1.3/es2022/query-string.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /filter-obj@1.1.0/es2022/filter-obj.mjs\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc8bfb569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":156,"size_decoded":537,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"0b1415217da5207d30fe52c585666391","sha1":"d1ef09e343c49c87b23b302fac361b89b822c004","sha256":"65024adf12feb4bf18c458bbb58213b2b5217edb851e7c9ef1c4ab41440beba9","sha512":"07b4eecb5975939b0a480caf3c514bcdeb93bbc720e3f1dc21adbe2e93b49a277fa9a6886cbe972f6dcaf57de97b5e1321a7b43e869ec717a0bd4b529de1d966","ssdeep":"","tlshash":"4ac04c191ad6775811333dc7f664a039935106c495882488a87d162360cb440fca51ef","first_seen":"2025-07-08T23:56:54.773549Z","last_seen":"2026-07-27T07:51:47.249946Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gZmlsdGVyLW9iakAxLjEuMCAqLwpleHBvcnQgKiBmcm9tICIvZmlsdGVyLW9iakAxLjEuMC9lczIwMjIvZmlsdGVyLW9iai5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL2ZpbHRlci1vYmpAMS4xLjAvZXMyMDIyL2ZpbHRlci1vYmoubWpzIjsK"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/universal-provider@2.17.4/es2022/universal-provider.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.508Z","timestamp":1785138633508,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/universal-provider@2.17.4/es2022/universal-provider.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 09:49:58 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcb6bd1569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":32715,"size_decoded":7198,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (32611)","md5":"d1dfecee334e4fd7ac4a73c3b4949151","sha1":"2e9460014735df5711de0f72b52aae1b45e88787","sha256":"6ad6aaec1b8497dbd50e7c1fdbf598bdc638fe6e372ba7912adc5f197712cf81","sha512":"1ce26d124b8a16df092e3e543168e91e8bf59a306dc883bb8998412917a5246e7e58b7bee07c7ace871e53cf134b7bc96bbe4a79a4b1c5b7d62a8079bd3f7e90","ssdeep":"768:S5E8Nm81/848D8S8c8A8N8D8P81e+PlCMx:VcmQhQZb5QcIw/","tlshash":"6fe264a631b9e17943aac719bc1c3ba1d324140ea004513d7db6a8fbe9c6c444e5ffb6","first_seen":"2025-07-08T23:56:54.74068Z","last_seen":"2026-07-27T07:51:47.16937Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvdW5pdmVyc2FsLXByb3ZpZGVyQDIuMTcuNCAqLwppbXBvcnQgbmUse1BST1BPU0FMX0VYUElSWV9NRVNTQUdFIGFzIGFlfWZyb20iL0B3YWxsZXRjb25uZWN0L3NpZ24tY2xpZW50QDIuMTcuNC9lczIwMjIvc2lnbi1jbGllbnQubWpzIjtpbXBvcnR7aXNWYWxpZE9iamVjdCBhcyBvZSxpc0NhaXBOYW1lc3BhY2UgYXMgUSxwYXJzZU5hbWVzcGFjZUtleSBhcyBQLG1lcmdlQXJyYXlzIGFzIEkscGFyc2VDaGFpbklkIGFzIFosZ2V0U2RrRXJyb3IgYXMgRixpc1ZhbGlkQXJyYXkgYXMgVH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC91dGlsc0AyLjE3LjQvZXMyMDIyL3V0aWxzLm1qcyI7aW1wb3J0e3Bpbm8gYXMgY2UsZ2V0RGVmYXVsdExvZ2dlck9wdGlvbnMgYXMgaGV9ZnJvbSIvQHdhbGxldGNvbm5lY3QvbG9nZ2VyQDIuMS4yL2VzMjAyMi9sb2dnZXIubWpzIjtpbXBvcnR7bWVyZ2UgYXMgcGV9ZnJvbSIvbG9kYXNoQDQuMTcuMjEvZXMyMDIyL2xvZGFzaC5tanMiO2ltcG9ydCB1LHtIdHRwQ29ubmVjdGlvbiBhcyBkZX1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLWh0dHAtY29ubmVjdGlvbkAxLjAuOC9lczIwMjIvanNvbnJwYy1odHRwLWNvbm5lY3Rpb24ubWpzIjtpbXBvcnR7SnNvblJwY1Byb3ZpZGVyIGFzIGR9ZnJvbSIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy1wcm92aWRlckAxLjAuMTQvZXMyMDIyL2pzb25ycGMtcHJvdmlkZXIubWpzIjtpbXBvcnR7Zm9ybWF0SnNvblJwY1JlcXVlc3QgYXMgdWUsZm9ybWF0SnNvblJwY1Jlc3VsdCBhcyBsZX1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXV0aWxzQDEuMC44L2VzMjAyMi9qc29ucnBjLXV0aWxzLm1qcyI7aW1wb3J0IG1lIGZyb20iL25vZGUvZXZlbnRzLm1qcyI7dmFyIEw9ImVycm9yIix2ZT0id3NzOi8vcmVsYXkud2FsbGV0Y29ubmVjdC5vcmciLGZlPSJ3YyIsUGU9InVuaXZlcnNhbF9wcm92aWRlciIsTT1gJHtmZX1AMjoke1BlfTpgLGVlPSJodHRwczovL3JwYy53YWxsZXRjb25uZWN0Lm9yZy92MS8iLGY9ImdlbmVyaWMiLGdlPWAke2VlfWJ1bmRsZXJgLHA9e0RFRkFVTFRfQ0hBSU5fQ0hBTkdFRDoiZGVmYXVsdF9jaGFpbl9jaGFuZ2VkIn0sd2U9T2JqZWN0LmRlZmluZVByb3BlcnR5LENlPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLEllPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLEo9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxIZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGJlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUseD0ocixlLHQpPT5lIGluIHI/d2UocixlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6cltlXT10LGc9KHIsZSk9Pntmb3IodmFyIHQgaW4gZXx8KGU9e30pKUhlLmNhbGwoZSx0KSYmeChyLHQsZVt0XSk7aWYoSilmb3IodmFyIHQgb2YgSihlKSliZS5jYWxsKGUsdCkmJngocix0LGVbdF0pO3JldHVybiByfSwkZT0ocixlKT0+Q2UocixJZShlKSk7ZnVuY3Rpb24gaChyLGUsdCl7dmFyIHM7bGV0IGk9WihyKTtyZXR1cm4oKHM9ZS5ycGNNYXApPT1udWxsP3ZvaWQgMDpzW2kucmVmZXJlbmNlXSl8fGAke2VlfT9jaGFpbklkPSR7aS5uYW1lc3BhY2V9OiR7aS5yZWZlcmVuY2V9JnByb2plY3RJZD0ke3R9YH1mdW5jdGlvbiBsKHIpe3JldHVybiByLmluY2x1ZGVzKCI6Iik/ci5zcGxpdCgiOiIpWzFdOnJ9ZnVuY3Rpb24gdGUocil7cmV0dXJuIHIubWFwKGU9PmAke2Uuc3BsaXQoIjoiKVswXX06JHtlLnNwbGl0KCI6IilbMV19YCl9ZnVuY3Rpb24gRWUocixlKXtsZXQgdD1PYmplY3Qua2V5cyhlLm5hbWVzcGFjZXMpLmZpbHRlcihpPT5pLmluY2x1ZGVzKHIpKTtpZighdC5sZW5ndGgpcmV0dXJuW107bGV0IHM9W107cmV0dXJuIHQuZm9yRWFjaChpPT57bGV0IG49ZS5uYW1lc3BhY2VzW2ldLmFjY291bnRzO3MucHVzaCguLi5uKX0pLHN9ZnVuY3Rpb24gSChyPXt9LGU9e30pe2xldCB0PUcocikscz1HKGUpO3JldHVybiBwZSh0LHMpfWZ1bmN0aW9uIEcocil7dmFyIGUsdCxzLGk7bGV0IG49e307aWYoIW9lKHIpKXJldHVybiBuO2ZvcihsZXRbYSxjXW9mIE9iamVjdC5lbnRyaWVzKHIpKXtsZXQgbT1RKGEpP1thXTpjLmNoYWlucyxDPWMubWV0aG9kc3x8W10saWU9Yy5ldmVudHN8fFtdLHJlPWMucnBjTWFwfHx7fSx2PVAoYSk7blt2XT0kZShnKGcoe30sblt2XSksYykse2NoYWluczpJKG0sKGU9blt2XSk9PW51bGw/dm9pZCAwOmUuY2hhaW5zKSxtZXRob2RzOkkoQywodD1uW3ZdKT09bnVsbD92b2lkIDA6dC5tZXRob2RzKSxldmVudHM6SShpZSwocz1uW3ZdKT09bnVsbD92b2lkIDA6cy5ldmVudHMpLHJwY01hcDpnKGcoe30scmUpLChpPW5bdl0pPT1udWxsP3ZvaWQgMDppLnJwY01hcCl9KX1yZXR1cm4gbn1mdW5jdGlvbiBBZShyKXtyZXR1cm4gci5pbmNsdWRlcygiOiIpP3Iuc3BsaXQoIjoiKVsyXTpyfWZ1bmN0aW9uIHoocil7bGV0IGU9e307Zm9yKGxldFt0LHNdb2YgT2JqZWN0LmVudHJpZXMocikpe2xldCBpPXMubWV0aG9kc3x8W10sbj1zLmV2ZW50c3x8W10sYT1zLmFjY291bnRzfHxbXSxjPVEodCk/W3RdOnMuY2hhaW5zP3MuY2hhaW5zOnRlKHMuYWNjb3VudHMpO2VbdF09e2NoYWluczpjLG1ldGhvZHM6aSxldmVudHM6bixhY2NvdW50czphfX1yZXR1cm4gZX1mdW5jdGlvbiBiKHIpe3JldHVybiB0eXBlb2Ygcj09Im51bWJlciI/cjpyLmluY2x1ZGVzKCIweCIpP3BhcnNlSW50KHIsMTYpOihyPXIuaW5jbHVkZXMoIjoiKT9yLnNwbGl0KCI6IilbMV06cixpc05hTihOdW1iZXIocikpP3I6TnVtYmVyKHIpKX12YXIgc2U9e30sbz1yPT5zZVtyXSwkPShyLGUpPT57c2Vbcl09ZX0sQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9InBvbGthZG90Iix0aGlzLm5hbWVzcGFjZT1lLm5hbWVzcGFjZSx0aGlzLmV2ZW50cz1vKCJldmVudHMiKSx0aGlzLmNsaWVudD1vKCJjbGllbnQiKSx0aGlzLmNoYWluSWQ9dGhpcy5nZXREZWZhdWx0Q2hhaW4oKSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCl9dXBkYXRlTmFtZXNwYWNlKGUpe3RoaXMubmFtZXNwYWNlPU9iamVjdC5hc3NpZ24odGhpcy5uYW1lc3BhY2UsZSl9cmVxdWVzdEFjY291bnRzKCl7cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKX1nZXREZWZhdWx0Q2hhaW4oKXtpZih0aGlzLmNoYWluSWQpcmV0dXJuIHRoaXMuY2hhaW5JZDtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19cmVxdWVzdChlKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2UubWV0aG9kcy5pbmNsdWRlcyhlLnJlcXVlc3QubWV0aG9kKT90aGlzLmNsaWVudC5yZXF1ZXN0KGUpOnRoaXMuZ2V0SHR0cFByb3ZpZGVyKCkucmVxdWVzdChlLnJlcXVlc3QpfXNldERlZmF1bHRDaGFpbihlLHQpe3RoaXMuaHR0cFByb3ZpZGVyc1tlXXx8dGhpcy5zZXRIdHRwUHJvdmlkZXIoZSx0KSx0aGlzLmNoYWluSWQ9ZSx0aGlzLmV2ZW50cy5lbWl0KHAuREVGQVVMVF9DSEFJTl9DSEFOR0VELGAke3RoaXMubmFtZX06JHtlfWApfWdldEFjY291bnRzKCl7bGV0IGU9dGhpcy5uYW1lc3BhY2UuYWNjb3VudHM7cmV0dXJuIGU/ZS5maWx0ZXIodD0+dC5zcGxpdCgiOiIpWzFdPT09dGhpcy5jaGFpbklkLnRvU3RyaW5nKCkpLm1hcCh0PT50LnNwbGl0KCI6IilbMl0pfHxbXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9Pnt2YXIgcztsZXQgaT1sKHQpO2VbaV09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSwocz10aGlzLm5hbWVzcGFjZS5ycGNNYXApPT1udWxsP3ZvaWQgMDpzW3RdKX0pLGV9Z2V0SHR0cFByb3ZpZGVyKCl7bGV0IGU9YCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gLHQ9dGhpcy5odHRwUHJvdmlkZXJzW2VdO2lmKHR5cGVvZiB0PiJ1Iil0aHJvdyBuZXcgRXJyb3IoYEpTT04tUlBDIHByb3ZpZGVyIGZvciAke2V9IG5vdCBmb3VuZGApO3JldHVybiB0fXNldEh0dHBQcm92aWRlcihlLHQpe2xldCBzPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVyKGUsdCk7cyYmKHRoaXMuaHR0cFByb3ZpZGVyc1tlXT1zKX1jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KXtsZXQgcz10fHxoKGUsdGhpcy5uYW1lc3BhY2UsdGhpcy5jbGllbnQuY29yZS5wcm9qZWN0SWQpO2lmKCFzKXRocm93IG5ldyBFcnJvcihgTm8gUlBDIHVybCBwcm92aWRlZCBmb3IgY2hhaW5JZDogJHtlfWApO3JldHVybiBuZXcgZChuZXcgdShzLG8oImRpc2FibGVQcm92aWRlclBpbmciKSkpfX0seWU9T2JqZWN0LmRlZmluZVByb3BlcnR5LHFlPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLE5lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLEI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxPZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LERlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsVj0ocixlLHQpPT5lIGluIHI/eWUocixlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6cltlXT10LFc9KHIsZSk9Pntmb3IodmFyIHQgaW4gZXx8KGU9e30pKU9lLmNhbGwoZSx0KSYmVihyLHQsZVt0XSk7aWYoQilmb3IodmFyIHQgb2YgQihlKSlEZS5jYWxsKGUsdCkmJlYocix0LGVbdF0pO3JldHVybiByfSxLPShyLGUpPT5xZShyLE5lKGUpKSx5PWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMubmFtZT0iZWlwMTU1Iix0aGlzLm5hbWVzcGFjZT1lLm5hbWVzcGFjZSx0aGlzLmV2ZW50cz1vKCJldmVudHMiKSx0aGlzLmNsaWVudD1vKCJjbGllbnQiKSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCksdGhpcy5jaGFpbklkPXBhcnNlSW50KHRoaXMuZ2V0RGVmYXVsdENoYWluKCkpfWFzeW5jIHJlcXVlc3QoZSl7c3dpdGNoKGUucmVxdWVzdC5tZXRob2Qpe2Nhc2UiZXRoX3JlcXVlc3RBY2NvdW50cyI6cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKTtjYXNlImV0aF9hY2NvdW50cyI6cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKTtjYXNlIndhbGxldF9zd2l0Y2hFdGhlcmV1bUNoYWluIjpyZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTd2l0Y2hDaGFpbihlKTtjYXNlImV0aF9jaGFpbklkIjpyZXR1cm4gcGFyc2VJbnQodGhpcy5nZXREZWZhdWx0Q2hhaW4oKSk7Y2FzZSJ3YWxsZXRfZ2V0Q2FwYWJpbGl0aWVzIjpyZXR1cm4gYXdhaXQgdGhpcy5nZXRDYXBhYmlsaXRpZXMoZSk7Y2FzZSJ3YWxsZXRfZ2V0Q2FsbHNTdGF0dXMiOnJldHVybiBhd2FpdCB0aGlzLmdldENhbGxTdGF0dXMoZSl9cmV0dXJuIHRoaXMubmFtZXNwYWNlLm1ldGhvZHMuaW5jbHVkZXMoZS5yZXF1ZXN0Lm1ldGhvZCk/YXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdChlKTp0aGlzLmdldEh0dHBQcm92aWRlcigpLnJlcXVlc3QoZS5yZXF1ZXN0KX11cGRhdGVOYW1lc3BhY2UoZSl7dGhpcy5uYW1lc3BhY2U9T2JqZWN0LmFzc2lnbih0aGlzLm5hbWVzcGFjZSxlKX1zZXREZWZhdWx0Q2hhaW4oZSx0KXt0aGlzLmh0dHBQcm92aWRlcnNbZV18fHRoaXMuc2V0SHR0cFByb3ZpZGVyKHBhcnNlSW50KGUpLHQpLHRoaXMuY2hhaW5JZD1wYXJzZUludChlKSx0aGlzLmV2ZW50cy5lbWl0KHAuREVGQVVMVF9DSEFJTl9DSEFOR0VELGAke3RoaXMubmFtZX06JHtlfWApfXJlcXVlc3RBY2NvdW50cygpe3JldHVybiB0aGlzLmdldEFjY291bnRzKCl9Z2V0RGVmYXVsdENoYWluKCl7aWYodGhpcy5jaGFpbklkKXJldHVybiB0aGlzLmNoYWluSWQudG9TdHJpbmcoKTtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19Y3JlYXRlSHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dHx8aChgJHt0aGlzLm5hbWV9OiR7ZX1gLHRoaXMubmFtZXNwYWNlLHRoaXMuY2xpZW50LmNvcmUucHJvamVjdElkKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoYE5vIFJQQyB1cmwgcHJvdmlkZWQgZm9yIGNoYWluSWQ6ICR7ZX1gKTtyZXR1cm4gbmV3IGQobmV3IGRlKHMsbygiZGlzYWJsZVByb3ZpZGVyUGluZyIpKSl9c2V0SHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KTtzJiYodGhpcy5odHRwUHJvdmlkZXJzW2VdPXMpfWNyZWF0ZUh0dHBQcm92aWRlcnMoKXtsZXQgZT17fTtyZXR1cm4gdGhpcy5uYW1lc3BhY2UuY2hhaW5zLmZvckVhY2godD0+e3ZhciBzO2xldCBpPXBhcnNlSW50KGwodCkpO2VbaV09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSwocz10aGlzLm5hbWVzcGFjZS5ycGNNYXApPT1udWxsP3ZvaWQgMDpzW3RdKX0pLGV9Z2V0QWNjb3VudHMoKXtsZXQgZT10aGlzLm5hbWVzcGFjZS5hY2NvdW50cztyZXR1cm4gZT9bLi4ubmV3IFNldChlLmZpbHRlcih0PT50LnNwbGl0KCI6IilbMV09PT10aGlzLmNoYWluSWQudG9TdHJpbmcoKSkubWFwKHQ9PnQuc3BsaXQoIjoiKVsyXSkpXTpbXX1nZXRIdHRwUHJvdmlkZXIoKXtsZXQgZT10aGlzLmNoYWluSWQsdD10aGlzLmh0dHBQcm92aWRlcnNbZV07aWYodHlwZW9mIHQ+InUiKXRocm93IG5ldyBFcnJvcihgSlNPTi1SUEMgcHJvdmlkZXIgZm9yICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHR9YXN5bmMgaGFuZGxlU3dpdGNoQ2hhaW4oZSl7dmFyIHQscztsZXQgaT1lLnJlcXVlc3QucGFyYW1zPyh0PWUucmVxdWVzdC5wYXJhbXNbMF0pPT1udWxsP3ZvaWQgMDp0LmNoYWluSWQ6IjB4MCI7aT1pLnN0YXJ0c1dpdGgoIjB4Iik/aTpgMHgke2l9YDtsZXQgbj1wYXJzZUludChpLDE2KTtpZih0aGlzLmlzQ2hhaW5BcHByb3ZlZChuKSl0aGlzLnNldERlZmF1bHRDaGFpbihgJHtufWApO2Vsc2UgaWYodGhpcy5uYW1lc3BhY2UubWV0aG9kcy5pbmNsdWRlcygid2FsbGV0X3N3aXRjaEV0aGVyZXVtQ2hhaW4iKSlhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KHt0b3BpYzplLnRvcGljLHJlcXVlc3Q6e21ldGhvZDplLnJlcXVlc3QubWV0aG9kLHBhcmFtczpbe2NoYWluSWQ6aX1dfSxjaGFpbklkOihzPXRoaXMubmFtZXNwYWNlLmNoYWlucyk9PW51bGw/dm9pZCAwOnNbMF19KSx0aGlzLnNldERlZmF1bHRDaGFpbihgJHtufWApO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gc3dpdGNoIHRvIGNoYWluICdlaXAxNTU6JHtufScuIFRoZSBjaGFpbiBpcyBub3QgYXBwcm92ZWQgb3IgdGhlIHdhbGxldCBkb2VzIG5vdCBzdXBwb3J0ICd3YWxsZXRfc3dpdGNoRXRoZXJldW1DaGFpbicgbWV0aG9kLmApO3JldHVybiBudWxsfWlzQ2hhaW5BcHByb3ZlZChlKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2UuY2hhaW5zLmluY2x1ZGVzKGAke3RoaXMubmFtZX06JHtlfWApfWFzeW5jIGdldENhcGFiaWxpdGllcyhlKXt2YXIgdCxzLGk7bGV0IG49KHM9KHQ9ZS5yZXF1ZXN0KT09bnVsbD92b2lkIDA6dC5wYXJhbXMpPT1udWxsP3ZvaWQgMDpzWzBdO2lmKCFuKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBhZGRyZXNzIHBhcmFtZXRlciBpbiBgd2FsbGV0X2dldENhcGFiaWxpdGllc2AgcmVxdWVzdCIpO2xldCBhPXRoaXMuY2xpZW50LnNlc3Npb24uZ2V0KGUudG9waWMpLGM9KChpPWE/LnNlc3Npb25Qcm9wZXJ0aWVzKT09bnVsbD92b2lkIDA6aS5jYXBhYmlsaXRpZXMpfHx7fTtpZihjIT1udWxsJiZjW25dKXJldHVybiBjPy5bbl07bGV0IG09YXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdChlKTt0cnl7YXdhaXQgdGhpcy5jbGllbnQuc2Vzc2lvbi51cGRhdGUoZS50b3BpYyx7c2Vzc2lvblByb3BlcnRpZXM6SyhXKHt9LGEuc2Vzc2lvblByb3BlcnRpZXN8fHt9KSx7Y2FwYWJpbGl0aWVzOksoVyh7fSxjfHx7fSkse1tuXTptfSl9KX0pfWNhdGNoKEMpe2NvbnNvbGUud2FybigiRmFpbGVkIHRvIHVwZGF0ZSBzZXNzaW9uIHdpdGggY2FwYWJpbGl0aWVzIixDKX1yZXR1cm4gbX1hc3luYyBnZXRDYWxsU3RhdHVzKGUpe3ZhciB0LHM7bGV0IGk9dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoZS50b3BpYyksbj0odD1pLnNlc3Npb25Qcm9wZXJ0aWVzKT09bnVsbD92b2lkIDA6dC5idW5kbGVyX25hbWU7aWYobil7bGV0IGM9dGhpcy5nZXRCdW5kbGVyVXJsKGUuY2hhaW5JZCxuKTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuZ2V0VXNlck9wZXJhdGlvblJlY2VpcHQoYyxlKX1jYXRjaChtKXtjb25zb2xlLndhcm4oIkZhaWxlZCB0byBmZXRjaCBjYWxsIHN0YXR1cyBmcm9tIGJ1bmRsZXIiLG0sYyl9fWxldCBhPShzPWkuc2Vzc2lvblByb3BlcnRpZXMpPT1udWxsP3ZvaWQgMDpzLmJ1bmRsZXJfdXJsO2lmKGEpdHJ5e3JldHVybiBhd2FpdCB0aGlzLmdldFVzZXJPcGVyYXRpb25SZWNlaXB0KGEsZSl9Y2F0Y2goYyl7Y29uc29sZS53YXJuKCJGYWlsZWQgdG8gZmV0Y2ggY2FsbCBzdGF0dXMgZnJvbSBjdXN0b20gYnVuZGxlciIsYyxhKX1pZih0aGlzLm5hbWVzcGFjZS5tZXRob2RzLmluY2x1ZGVzKGUucmVxdWVzdC5tZXRob2QpKXJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5yZXF1ZXN0KGUpO3Rocm93IG5ldyBFcnJvcigiRmV0Y2hpbmcgY2FsbCBzdGF0dXMgbm90IGFwcHJvdmVkIGJ5IHRoZSB3YWxsZXQuIil9YXN5bmMgZ2V0VXNlck9wZXJhdGlvblJlY2VpcHQoZSx0KXt2YXIgcztsZXQgaT1uZXcgVVJMKGUpLG49YXdhaXQgZmV0Y2goaSx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkodWUoImV0aF9nZXRVc2VyT3BlcmF0aW9uUmVjZWlwdCIsWyhzPXQucmVxdWVzdC5wYXJhbXMpPT1udWxsP3ZvaWQgMDpzWzBdXSkpfSk7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggdXNlciBvcGVyYXRpb24gcmVjZWlwdCAtICR7bi5zdGF0dXN9YCk7cmV0dXJuIGF3YWl0IG4uanNvbigpfWdldEJ1bmRsZXJVcmwoZSx0KXtyZXR1cm5gJHtnZX0/cHJvamVjdElkPSR7dGhpcy5jbGllbnQuY29yZS5wcm9qZWN0SWR9JmNoYWluSWQ9JHtlfSZidW5kbGVyPSR7dH1gfX0scT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9InNvbGFuYSIsdGhpcy5uYW1lc3BhY2U9ZS5uYW1lc3BhY2UsdGhpcy5ldmVudHM9bygiZXZlbnRzIiksdGhpcy5jbGllbnQ9bygiY2xpZW50IiksdGhpcy5jaGFpbklkPXRoaXMuZ2V0RGVmYXVsdENoYWluKCksdGhpcy5odHRwUHJvdmlkZXJzPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVycygpfXVwZGF0ZU5hbWVzcGFjZShlKXt0aGlzLm5hbWVzcGFjZT1PYmplY3QuYXNzaWduKHRoaXMubmFtZXNwYWNlLGUpfXJlcXVlc3RBY2NvdW50cygpe3JldHVybiB0aGlzLmdldEFjY291bnRzKCl9cmVxdWVzdChlKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2UubWV0aG9kcy5pbmNsdWRlcyhlLnJlcXVlc3QubWV0aG9kKT90aGlzLmNsaWVudC5yZXF1ZXN0KGUpOnRoaXMuZ2V0SHR0cFByb3ZpZGVyKCkucmVxdWVzdChlLnJlcXVlc3QpfXNldERlZmF1bHRDaGFpbihlLHQpe3RoaXMuaHR0cFByb3ZpZGVyc1tlXXx8dGhpcy5zZXRIdHRwUHJvdmlkZXIoZSx0KSx0aGlzLmNoYWluSWQ9ZSx0aGlzLmV2ZW50cy5lbWl0KHAuREVGQVVMVF9DSEFJTl9DSEFOR0VELGAke3RoaXMubmFtZX06JHtlfWApfWdldERlZmF1bHRDaGFpbigpe2lmKHRoaXMuY2hhaW5JZClyZXR1cm4gdGhpcy5jaGFpbklkO2lmKHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbilyZXR1cm4gdGhpcy5uYW1lc3BhY2UuZGVmYXVsdENoYWluO2xldCBlPXRoaXMubmFtZXNwYWNlLmNoYWluc1swXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkNoYWluSWQgbm90IGZvdW5kIik7cmV0dXJuIGUuc3BsaXQoIjoiKVsxXX1nZXRBY2NvdW50cygpe2xldCBlPXRoaXMubmFtZXNwYWNlLmFjY291bnRzO3JldHVybiBlP1suLi5uZXcgU2V0KGUuZmlsdGVyKHQ9PnQuc3BsaXQoIjoiKVsxXT09PXRoaXMuY2hhaW5JZC50b1N0cmluZygpKS5tYXAodD0+dC5zcGxpdCgiOiIpWzJdKSldOltdfWNyZWF0ZUh0dHBQcm92aWRlcnMoKXtsZXQgZT17fTtyZXR1cm4gdGhpcy5uYW1lc3BhY2UuY2hhaW5zLmZvckVhY2godD0+e3ZhciBzO2xldCBpPWwodCk7ZVtpXT10aGlzLmNyZWF0ZUh0dHBQcm92aWRlcihpLChzPXRoaXMubmFtZXNwYWNlLnJwY01hcCk9PW51bGw/dm9pZCAwOnNbdF0pfSksZX1nZXRIdHRwUHJvdmlkZXIoKXtsZXQgZT1gJHt0aGlzLm5hbWV9OiR7dGhpcy5jaGFpbklkfWAsdD10aGlzLmh0dHBQcm92aWRlcnNbZV07aWYodHlwZW9mIHQ+InUiKXRocm93IG5ldyBFcnJvcihgSlNPTi1SUEMgcHJvdmlkZXIgZm9yICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHR9c2V0SHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KTtzJiYodGhpcy5odHRwUHJvdmlkZXJzW2VdPXMpfWNyZWF0ZUh0dHBQcm92aWRlcihlLHQpe2xldCBzPXR8fGgoZSx0aGlzLm5hbWVzcGFjZSx0aGlzLmNsaWVudC5jb3JlLnByb2plY3RJZCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKGBObyBSUEMgdXJsIHByb3ZpZGVkIGZvciBjaGFpbklkOiAke2V9YCk7cmV0dXJuIG5ldyBkKG5ldyB1KHMsbygiZGlzYWJsZVByb3ZpZGVyUGluZyIpKSl9fSxOPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMubmFtZT0iY29zbW9zIix0aGlzLm5hbWVzcGFjZT1lLm5hbWVzcGFjZSx0aGlzLmV2ZW50cz1vKCJldmVudHMiKSx0aGlzLmNsaWVudD1vKCJjbGllbnQiKSx0aGlzLmNoYWluSWQ9dGhpcy5nZXREZWZhdWx0Q2hhaW4oKSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCl9dXBkYXRlTmFtZXNwYWNlKGUpe3RoaXMubmFtZXNwYWNlPU9iamVjdC5hc3NpZ24odGhpcy5uYW1lc3BhY2UsZSl9cmVxdWVzdEFjY291bnRzKCl7cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKX1nZXREZWZhdWx0Q2hhaW4oKXtpZih0aGlzLmNoYWluSWQpcmV0dXJuIHRoaXMuY2hhaW5JZDtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19cmVxdWVzdChlKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2UubWV0aG9kcy5pbmNsdWRlcyhlLnJlcXVlc3QubWV0aG9kKT90aGlzLmNsaWVudC5yZXF1ZXN0KGUpOnRoaXMuZ2V0SHR0cFByb3ZpZGVyKCkucmVxdWVzdChlLnJlcXVlc3QpfXNldERlZmF1bHRDaGFpbihlLHQpe3RoaXMuaHR0cFByb3ZpZGVyc1tlXXx8dGhpcy5zZXRIdHRwUHJvdmlkZXIoZSx0KSx0aGlzLmNoYWluSWQ9ZSx0aGlzLmV2ZW50cy5lbWl0KHAuREVGQVVMVF9DSEFJTl9DSEFOR0VELGAke3RoaXMubmFtZX06JHt0aGlzLmNoYWluSWR9YCl9Z2V0QWNjb3VudHMoKXtsZXQgZT10aGlzLm5hbWVzcGFjZS5hY2NvdW50cztyZXR1cm4gZT9bLi4ubmV3IFNldChlLmZpbHRlcih0PT50LnNwbGl0KCI6IilbMV09PT10aGlzLmNoYWluSWQudG9TdHJpbmcoKSkubWFwKHQ9PnQuc3BsaXQoIjoiKVsyXSkpXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9Pnt2YXIgcztsZXQgaT1sKHQpO2VbaV09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSwocz10aGlzLm5hbWVzcGFjZS5ycGNNYXApPT1udWxsP3ZvaWQgMDpzW3RdKX0pLGV9Z2V0SHR0cFByb3ZpZGVyKCl7bGV0IGU9YCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gLHQ9dGhpcy5odHRwUHJvdmlkZXJzW2VdO2lmKHR5cGVvZiB0PiJ1Iil0aHJvdyBuZXcgRXJyb3IoYEpTT04tUlBDIHByb3ZpZGVyIGZvciAke2V9IG5vdCBmb3VuZGApO3JldHVybiB0fXNldEh0dHBQcm92aWRlcihlLHQpe2xldCBzPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVyKGUsdCk7cyYmKHRoaXMuaHR0cFByb3ZpZGVyc1tlXT1zKX1jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KXtsZXQgcz10fHxoKGUsdGhpcy5uYW1lc3BhY2UsdGhpcy5jbGllbnQuY29yZS5wcm9qZWN0SWQpO2lmKCFzKXRocm93IG5ldyBFcnJvcihgTm8gUlBDIHVybCBwcm92aWRlZCBmb3IgY2hhaW5JZDogJHtlfWApO3JldHVybiBuZXcgZChuZXcgdShzLG8oImRpc2FibGVQcm92aWRlclBpbmciKSkpfX0sTz1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ImFsZ29yYW5kIix0aGlzLm5hbWVzcGFjZT1lLm5hbWVzcGFjZSx0aGlzLmV2ZW50cz1vKCJldmVudHMiKSx0aGlzLmNsaWVudD1vKCJjbGllbnQiKSx0aGlzLmNoYWluSWQ9dGhpcy5nZXREZWZhdWx0Q2hhaW4oKSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCl9dXBkYXRlTmFtZXNwYWNlKGUpe3RoaXMubmFtZXNwYWNlPU9iamVjdC5hc3NpZ24odGhpcy5uYW1lc3BhY2UsZSl9cmVxdWVzdEFjY291bnRzKCl7cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKX1yZXF1ZXN0KGUpe3JldHVybiB0aGlzLm5hbWVzcGFjZS5tZXRob2RzLmluY2x1ZGVzKGUucmVxdWVzdC5tZXRob2QpP3RoaXMuY2xpZW50LnJlcXVlc3QoZSk6dGhpcy5nZXRIdHRwUHJvdmlkZXIoKS5yZXF1ZXN0KGUucmVxdWVzdCl9c2V0RGVmYXVsdENoYWluKGUsdCl7aWYoIXRoaXMuaHR0cFByb3ZpZGVyc1tlXSl7bGV0IHM9dHx8aChgJHt0aGlzLm5hbWV9OiR7ZX1gLHRoaXMubmFtZXNwYWNlLHRoaXMuY2xpZW50LmNvcmUucHJvamVjdElkKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoYE5vIFJQQyB1cmwgcHJvdmlkZWQgZm9yIGNoYWluSWQ6ICR7ZX1gKTt0aGlzLnNldEh0dHBQcm92aWRlcihlLHMpfXRoaXMuY2hhaW5JZD1lLHRoaXMuZXZlbnRzLmVtaXQocC5ERUZBVUxUX0NIQUlOX0NIQU5HRUQsYCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gKX1nZXREZWZhdWx0Q2hhaW4oKXtpZih0aGlzLmNoYWluSWQpcmV0dXJuIHRoaXMuY2hhaW5JZDtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19Z2V0QWNjb3VudHMoKXtsZXQgZT10aGlzLm5hbWVzcGFjZS5hY2NvdW50cztyZXR1cm4gZT9bLi4ubmV3IFNldChlLmZpbHRlcih0PT50LnNwbGl0KCI6IilbMV09PT10aGlzLmNoYWluSWQudG9TdHJpbmcoKSkubWFwKHQ9PnQuc3BsaXQoIjoiKVsyXSkpXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9Pnt2YXIgcztlW3RdPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVyKHQsKHM9dGhpcy5uYW1lc3BhY2UucnBjTWFwKT09bnVsbD92b2lkIDA6c1t0XSl9KSxlfWdldEh0dHBQcm92aWRlcigpe2xldCBlPWAke3RoaXMubmFtZX06JHt0aGlzLmNoYWluSWR9YCx0PXRoaXMuaHR0cFByb3ZpZGVyc1tlXTtpZih0eXBlb2YgdD4idSIpdGhyb3cgbmV3IEVycm9yKGBKU09OLVJQQyBwcm92aWRlciBmb3IgJHtlfSBub3QgZm91bmRgKTtyZXR1cm4gdH1zZXRIdHRwUHJvdmlkZXIoZSx0KXtsZXQgcz10aGlzLmNyZWF0ZUh0dHBQcm92aWRlcihlLHQpO3MmJih0aGlzLmh0dHBQcm92aWRlcnNbZV09cyl9Y3JlYXRlSHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dHx8aChlLHRoaXMubmFtZXNwYWNlLHRoaXMuY2xpZW50LmNvcmUucHJvamVjdElkKTtyZXR1cm4gdHlwZW9mIHM+InUiP3ZvaWQgMDpuZXcgZChuZXcgdShzLG8oImRpc2FibGVQcm92aWRlclBpbmciKSkpfX0sRD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ImNpcDM0Iix0aGlzLm5hbWVzcGFjZT1lLm5hbWVzcGFjZSx0aGlzLmV2ZW50cz1vKCJldmVudHMiKSx0aGlzLmNsaWVudD1vKCJjbGllbnQiKSx0aGlzLmNoYWluSWQ9dGhpcy5nZXREZWZhdWx0Q2hhaW4oKSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCl9dXBkYXRlTmFtZXNwYWNlKGUpe3RoaXMubmFtZXNwYWNlPU9iamVjdC5hc3NpZ24odGhpcy5uYW1lc3BhY2UsZSl9cmVxdWVzdEFjY291bnRzKCl7cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKX1nZXREZWZhdWx0Q2hhaW4oKXtpZih0aGlzLmNoYWluSWQpcmV0dXJuIHRoaXMuY2hhaW5JZDtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19cmVxdWVzdChlKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2UubWV0aG9kcy5pbmNsdWRlcyhlLnJlcXVlc3QubWV0aG9kKT90aGlzLmNsaWVudC5yZXF1ZXN0KGUpOnRoaXMuZ2V0SHR0cFByb3ZpZGVyKCkucmVxdWVzdChlLnJlcXVlc3QpfXNldERlZmF1bHRDaGFpbihlLHQpe3RoaXMuaHR0cFByb3ZpZGVyc1tlXXx8dGhpcy5zZXRIdHRwUHJvdmlkZXIoZSx0KSx0aGlzLmNoYWluSWQ9ZSx0aGlzLmV2ZW50cy5lbWl0KHAuREVGQVVMVF9DSEFJTl9DSEFOR0VELGAke3RoaXMubmFtZX06JHt0aGlzLmNoYWluSWR9YCl9Z2V0QWNjb3VudHMoKXtsZXQgZT10aGlzLm5hbWVzcGFjZS5hY2NvdW50cztyZXR1cm4gZT9bLi4ubmV3IFNldChlLmZpbHRlcih0PT50LnNwbGl0KCI6IilbMV09PT10aGlzLmNoYWluSWQudG9TdHJpbmcoKSkubWFwKHQ9PnQuc3BsaXQoIjoiKVsyXSkpXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9PntsZXQgcz10aGlzLmdldENhcmRhbm9SUENVcmwodCksaT1sKHQpO2VbaV09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSxzKX0pLGV9Z2V0SHR0cFByb3ZpZGVyKCl7bGV0IGU9YCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gLHQ9dGhpcy5odHRwUHJvdmlkZXJzW2VdO2lmKHR5cGVvZiB0PiJ1Iil0aHJvdyBuZXcgRXJyb3IoYEpTT04tUlBDIHByb3ZpZGVyIGZvciAke2V9IG5vdCBmb3VuZGApO3JldHVybiB0fWdldENhcmRhbm9SUENVcmwoZSl7bGV0IHQ9dGhpcy5uYW1lc3BhY2UucnBjTWFwO2lmKHQpcmV0dXJuIHRbZV19c2V0SHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KTtzJiYodGhpcy5odHRwUHJvdmlkZXJzW2VdPXMpfWNyZWF0ZUh0dHBQcm92aWRlcihlLHQpe2xldCBzPXR8fHRoaXMuZ2V0Q2FyZGFub1JQQ1VybChlKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoYE5vIFJQQyB1cmwgcHJvdmlkZWQgZm9yIGNoYWluSWQ6ICR7ZX1gKTtyZXR1cm4gbmV3IGQobmV3IHUocyxvKCJkaXNhYmxlUHJvdmlkZXJQaW5nIikpKX19LFM9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5uYW1lPSJlbHJvbmQiLHRoaXMubmFtZXNwYWNlPWUubmFtZXNwYWNlLHRoaXMuZXZlbnRzPW8oImV2ZW50cyIpLHRoaXMuY2xpZW50PW8oImNsaWVudCIpLHRoaXMuY2hhaW5JZD10aGlzLmdldERlZmF1bHRDaGFpbigpLHRoaXMuaHR0cFByb3ZpZGVycz10aGlzLmNyZWF0ZUh0dHBQcm92aWRlcnMoKX11cGRhdGVOYW1lc3BhY2UoZSl7dGhpcy5uYW1lc3BhY2U9T2JqZWN0LmFzc2lnbih0aGlzLm5hbWVzcGFjZSxlKX1yZXF1ZXN0QWNjb3VudHMoKXtyZXR1cm4gdGhpcy5nZXRBY2NvdW50cygpfXJlcXVlc3QoZSl7cmV0dXJuIHRoaXMubmFtZXNwYWNlLm1ldGhvZHMuaW5jbHVkZXMoZS5yZXF1ZXN0Lm1ldGhvZCk/dGhpcy5jbGllbnQucmVxdWVzdChlKTp0aGlzLmdldEh0dHBQcm92aWRlcigpLnJlcXVlc3QoZS5yZXF1ZXN0KX1zZXREZWZhdWx0Q2hhaW4oZSx0KXt0aGlzLmh0dHBQcm92aWRlcnNbZV18fHRoaXMuc2V0SHR0cFByb3ZpZGVyKGUsdCksdGhpcy5jaGFpbklkPWUsdGhpcy5ldmVudHMuZW1pdChwLkRFRkFVTFRfQ0hBSU5fQ0hBTkdFRCxgJHt0aGlzLm5hbWV9OiR7ZX1gKX1nZXREZWZhdWx0Q2hhaW4oKXtpZih0aGlzLmNoYWluSWQpcmV0dXJuIHRoaXMuY2hhaW5JZDtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19Z2V0QWNjb3VudHMoKXtsZXQgZT10aGlzLm5hbWVzcGFjZS5hY2NvdW50cztyZXR1cm4gZT9bLi4ubmV3IFNldChlLmZpbHRlcih0PT50LnNwbGl0KCI6IilbMV09PT10aGlzLmNoYWluSWQudG9TdHJpbmcoKSkubWFwKHQ9PnQuc3BsaXQoIjoiKVsyXSkpXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9Pnt2YXIgcztsZXQgaT1sKHQpO2VbaV09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSwocz10aGlzLm5hbWVzcGFjZS5ycGNNYXApPT1udWxsP3ZvaWQgMDpzW3RdKX0pLGV9Z2V0SHR0cFByb3ZpZGVyKCl7bGV0IGU9YCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gLHQ9dGhpcy5odHRwUHJvdmlkZXJzW2VdO2lmKHR5cGVvZiB0PiJ1Iil0aHJvdyBuZXcgRXJyb3IoYEpTT04tUlBDIHByb3ZpZGVyIGZvciAke2V9IG5vdCBmb3VuZGApO3JldHVybiB0fXNldEh0dHBQcm92aWRlcihlLHQpe2xldCBzPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVyKGUsdCk7cyYmKHRoaXMuaHR0cFByb3ZpZGVyc1tlXT1zKX1jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KXtsZXQgcz10fHxoKGUsdGhpcy5uYW1lc3BhY2UsdGhpcy5jbGllbnQuY29yZS5wcm9qZWN0SWQpO2lmKCFzKXRocm93IG5ldyBFcnJvcihgTm8gUlBDIHVybCBwcm92aWRlZCBmb3IgY2hhaW5JZDogJHtlfWApO3JldHVybiBuZXcgZChuZXcgdShzLG8oImRpc2FibGVQcm92aWRlclBpbmciKSkpfX0saj1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9Im11bHRpdmVyc3giLHRoaXMubmFtZXNwYWNlPWUubmFtZXNwYWNlLHRoaXMuZXZlbnRzPW8oImV2ZW50cyIpLHRoaXMuY2xpZW50PW8oImNsaWVudCIpLHRoaXMuY2hhaW5JZD10aGlzLmdldERlZmF1bHRDaGFpbigpLHRoaXMuaHR0cFByb3ZpZGVycz10aGlzLmNyZWF0ZUh0dHBQcm92aWRlcnMoKX11cGRhdGVOYW1lc3BhY2UoZSl7dGhpcy5uYW1lc3BhY2U9T2JqZWN0LmFzc2lnbih0aGlzLm5hbWVzcGFjZSxlKX1yZXF1ZXN0QWNjb3VudHMoKXtyZXR1cm4gdGhpcy5nZXRBY2NvdW50cygpfXJlcXVlc3QoZSl7cmV0dXJuIHRoaXMubmFtZXNwYWNlLm1ldGhvZHMuaW5jbHVkZXMoZS5yZXF1ZXN0Lm1ldGhvZCk/dGhpcy5jbGllbnQucmVxdWVzdChlKTp0aGlzLmdldEh0dHBQcm92aWRlcigpLnJlcXVlc3QoZS5yZXF1ZXN0KX1zZXREZWZhdWx0Q2hhaW4oZSx0KXt0aGlzLmh0dHBQcm92aWRlcnNbZV18fHRoaXMuc2V0SHR0cFByb3ZpZGVyKGUsdCksdGhpcy5jaGFpbklkPWUsdGhpcy5ldmVudHMuZW1pdChwLkRFRkFVTFRfQ0hBSU5fQ0hBTkdFRCxgJHt0aGlzLm5hbWV9OiR7ZX1gKX1nZXREZWZhdWx0Q2hhaW4oKXtpZih0aGlzLmNoYWluSWQpcmV0dXJuIHRoaXMuY2hhaW5JZDtpZih0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW4pcmV0dXJuIHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbjtsZXQgZT10aGlzLm5hbWVzcGFjZS5jaGFpbnNbMF07aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJDaGFpbklkIG5vdCBmb3VuZCIpO3JldHVybiBlLnNwbGl0KCI6IilbMV19Z2V0QWNjb3VudHMoKXtsZXQgZT10aGlzLm5hbWVzcGFjZS5hY2NvdW50cztyZXR1cm4gZT9bLi4ubmV3IFNldChlLmZpbHRlcih0PT50LnNwbGl0KCI6IilbMV09PT10aGlzLmNoYWluSWQudG9TdHJpbmcoKSkubWFwKHQ9PnQuc3BsaXQoIjoiKVsyXSkpXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9Pnt2YXIgcztsZXQgaT1sKHQpO2VbaV09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSwocz10aGlzLm5hbWVzcGFjZS5ycGNNYXApPT1udWxsP3ZvaWQgMDpzW3RdKX0pLGV9Z2V0SHR0cFByb3ZpZGVyKCl7bGV0IGU9YCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gLHQ9dGhpcy5odHRwUHJvdmlkZXJzW2VdO2lmKHR5cGVvZiB0PiJ1Iil0aHJvdyBuZXcgRXJyb3IoYEpTT04tUlBDIHByb3ZpZGVyIGZvciAke2V9IG5vdCBmb3VuZGApO3JldHVybiB0fXNldEh0dHBQcm92aWRlcihlLHQpe2xldCBzPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVyKGUsdCk7cyYmKHRoaXMuaHR0cFByb3ZpZGVyc1tlXT1zKX1jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KXtsZXQgcz10fHxoKGUsdGhpcy5uYW1lc3BhY2UsdGhpcy5jbGllbnQuY29yZS5wcm9qZWN0SWQpO2lmKCFzKXRocm93IG5ldyBFcnJvcihgTm8gUlBDIHVybCBwcm92aWRlZCBmb3IgY2hhaW5JZDogJHtlfWApO3JldHVybiBuZXcgZChuZXcgdShzLG8oImRpc2FibGVQcm92aWRlclBpbmciKSkpfX0sXz1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9Im5lYXIiLHRoaXMubmFtZXNwYWNlPWUubmFtZXNwYWNlLHRoaXMuZXZlbnRzPW8oImV2ZW50cyIpLHRoaXMuY2xpZW50PW8oImNsaWVudCIpLHRoaXMuY2hhaW5JZD10aGlzLmdldERlZmF1bHRDaGFpbigpLHRoaXMuaHR0cFByb3ZpZGVycz10aGlzLmNyZWF0ZUh0dHBQcm92aWRlcnMoKX11cGRhdGVOYW1lc3BhY2UoZSl7dGhpcy5uYW1lc3BhY2U9T2JqZWN0LmFzc2lnbih0aGlzLm5hbWVzcGFjZSxlKX1yZXF1ZXN0QWNjb3VudHMoKXtyZXR1cm4gdGhpcy5nZXRBY2NvdW50cygpfWdldERlZmF1bHRDaGFpbigpe2lmKHRoaXMuY2hhaW5JZClyZXR1cm4gdGhpcy5jaGFpbklkO2lmKHRoaXMubmFtZXNwYWNlLmRlZmF1bHRDaGFpbilyZXR1cm4gdGhpcy5uYW1lc3BhY2UuZGVmYXVsdENoYWluO2xldCBlPXRoaXMubmFtZXNwYWNlLmNoYWluc1swXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoIkNoYWluSWQgbm90IGZvdW5kIik7cmV0dXJuIGUuc3BsaXQoIjoiKVsxXX1yZXF1ZXN0KGUpe3JldHVybiB0aGlzLm5hbWVzcGFjZS5tZXRob2RzLmluY2x1ZGVzKGUucmVxdWVzdC5tZXRob2QpP3RoaXMuY2xpZW50LnJlcXVlc3QoZSk6dGhpcy5nZXRIdHRwUHJvdmlkZXIoKS5yZXF1ZXN0KGUucmVxdWVzdCl9c2V0RGVmYXVsdENoYWluKGUsdCl7aWYodGhpcy5jaGFpbklkPWUsIXRoaXMuaHR0cFByb3ZpZGVyc1tlXSl7bGV0IHM9dHx8aChgJHt0aGlzLm5hbWV9OiR7ZX1gLHRoaXMubmFtZXNwYWNlKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoYE5vIFJQQyB1cmwgcHJvdmlkZWQgZm9yIGNoYWluSWQ6ICR7ZX1gKTt0aGlzLnNldEh0dHBQcm92aWRlcihlLHMpfXRoaXMuZXZlbnRzLmVtaXQocC5ERUZBVUxUX0NIQUlOX0NIQU5HRUQsYCR7dGhpcy5uYW1lfToke3RoaXMuY2hhaW5JZH1gKX1nZXRBY2NvdW50cygpe2xldCBlPXRoaXMubmFtZXNwYWNlLmFjY291bnRzO3JldHVybiBlP2UuZmlsdGVyKHQ9PnQuc3BsaXQoIjoiKVsxXT09PXRoaXMuY2hhaW5JZC50b1N0cmluZygpKS5tYXAodD0+dC5zcGxpdCgiOiIpWzJdKXx8W106W119Y3JlYXRlSHR0cFByb3ZpZGVycygpe2xldCBlPXt9O3JldHVybiB0aGlzLm5hbWVzcGFjZS5jaGFpbnMuZm9yRWFjaCh0PT57dmFyIHM7ZVt0XT10aGlzLmNyZWF0ZUh0dHBQcm92aWRlcih0LChzPXRoaXMubmFtZXNwYWNlLnJwY01hcCk9PW51bGw/dm9pZCAwOnNbdF0pfSksZX1nZXRIdHRwUHJvdmlkZXIoKXtsZXQgZT1gJHt0aGlzLm5hbWV9OiR7dGhpcy5jaGFpbklkfWAsdD10aGlzLmh0dHBQcm92aWRlcnNbZV07aWYodHlwZW9mIHQ+InUiKXRocm93IG5ldyBFcnJvcihgSlNPTi1SUEMgcHJvdmlkZXIgZm9yICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHR9c2V0SHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KTtzJiYodGhpcy5odHRwUHJvdmlkZXJzW2VdPXMpfWNyZWF0ZUh0dHBQcm92aWRlcihlLHQpe2xldCBzPXR8fGgoZSx0aGlzLm5hbWVzcGFjZSk7cmV0dXJuIHR5cGVvZiBzPiJ1Ij92b2lkIDA6bmV3IGQobmV3IHUocyxvKCJkaXNhYmxlUHJvdmlkZXJQaW5nIikpKX19LFI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5uYW1lPSJ0ZXpvcyIsdGhpcy5uYW1lc3BhY2U9ZS5uYW1lc3BhY2UsdGhpcy5ldmVudHM9bygiZXZlbnRzIiksdGhpcy5jbGllbnQ9bygiY2xpZW50IiksdGhpcy5jaGFpbklkPXRoaXMuZ2V0RGVmYXVsdENoYWluKCksdGhpcy5odHRwUHJvdmlkZXJzPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVycygpfXVwZGF0ZU5hbWVzcGFjZShlKXt0aGlzLm5hbWVzcGFjZT1PYmplY3QuYXNzaWduKHRoaXMubmFtZXNwYWNlLGUpfXJlcXVlc3RBY2NvdW50cygpe3JldHVybiB0aGlzLmdldEFjY291bnRzKCl9Z2V0RGVmYXVsdENoYWluKCl7aWYodGhpcy5jaGFpbklkKXJldHVybiB0aGlzLmNoYWluSWQ7aWYodGhpcy5uYW1lc3BhY2UuZGVmYXVsdENoYWluKXJldHVybiB0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW47bGV0IGU9dGhpcy5uYW1lc3BhY2UuY2hhaW5zWzBdO2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ2hhaW5JZCBub3QgZm91bmQiKTtyZXR1cm4gZS5zcGxpdCgiOiIpWzFdfXJlcXVlc3QoZSl7cmV0dXJuIHRoaXMubmFtZXNwYWNlLm1ldGhvZHMuaW5jbHVkZXMoZS5yZXF1ZXN0Lm1ldGhvZCk/dGhpcy5jbGllbnQucmVxdWVzdChlKTp0aGlzLmdldEh0dHBQcm92aWRlcigpLnJlcXVlc3QoZS5yZXF1ZXN0KX1zZXREZWZhdWx0Q2hhaW4oZSx0KXtpZih0aGlzLmNoYWluSWQ9ZSwhdGhpcy5odHRwUHJvdmlkZXJzW2VdKXtsZXQgcz10fHxoKGAke3RoaXMubmFtZX06JHtlfWAsdGhpcy5uYW1lc3BhY2UpO2lmKCFzKXRocm93IG5ldyBFcnJvcihgTm8gUlBDIHVybCBwcm92aWRlZCBmb3IgY2hhaW5JZDogJHtlfWApO3RoaXMuc2V0SHR0cFByb3ZpZGVyKGUscyl9dGhpcy5ldmVudHMuZW1pdChwLkRFRkFVTFRfQ0hBSU5fQ0hBTkdFRCxgJHt0aGlzLm5hbWV9OiR7dGhpcy5jaGFpbklkfWApfWdldEFjY291bnRzKCl7bGV0IGU9dGhpcy5uYW1lc3BhY2UuYWNjb3VudHM7cmV0dXJuIGU/ZS5maWx0ZXIodD0+dC5zcGxpdCgiOiIpWzFdPT09dGhpcy5jaGFpbklkLnRvU3RyaW5nKCkpLm1hcCh0PT50LnNwbGl0KCI6IilbMl0pfHxbXTpbXX1jcmVhdGVIdHRwUHJvdmlkZXJzKCl7bGV0IGU9e307cmV0dXJuIHRoaXMubmFtZXNwYWNlLmNoYWlucy5mb3JFYWNoKHQ9PntlW3RdPXRoaXMuY3JlYXRlSHR0cFByb3ZpZGVyKHQpfSksZX1nZXRIdHRwUHJvdmlkZXIoKXtsZXQgZT1gJHt0aGlzLm5hbWV9OiR7dGhpcy5jaGFpbklkfWAsdD10aGlzLmh0dHBQcm92aWRlcnNbZV07aWYodHlwZW9mIHQ+InUiKXRocm93IG5ldyBFcnJvcihgSlNPTi1SUEMgcHJvdmlkZXIgZm9yICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHR9c2V0SHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KTtzJiYodGhpcy5odHRwUHJvdmlkZXJzW2VdPXMpfWNyZWF0ZUh0dHBQcm92aWRlcihlLHQpe2xldCBzPXR8fGgoZSx0aGlzLm5hbWVzcGFjZSk7cmV0dXJuIHR5cGVvZiBzPiJ1Ij92b2lkIDA6bmV3IGQobmV3IHUocykpfX0sVT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9Zix0aGlzLm5hbWVzcGFjZT1lLm5hbWVzcGFjZSx0aGlzLmV2ZW50cz1vKCJldmVudHMiKSx0aGlzLmNsaWVudD1vKCJjbGllbnQiKSx0aGlzLmNoYWluSWQ9dGhpcy5nZXREZWZhdWx0Q2hhaW4oKSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCl9dXBkYXRlTmFtZXNwYWNlKGUpe3RoaXMubmFtZXNwYWNlLmNoYWlucz1bLi4ubmV3IFNldCgodGhpcy5uYW1lc3BhY2UuY2hhaW5zfHxbXSkuY29uY2F0KGUuY2hhaW5zfHxbXSkpXSx0aGlzLm5hbWVzcGFjZS5hY2NvdW50cz1bLi4ubmV3IFNldCgodGhpcy5uYW1lc3BhY2UuYWNjb3VudHN8fFtdKS5jb25jYXQoZS5hY2NvdW50c3x8W10pKV0sdGhpcy5uYW1lc3BhY2UubWV0aG9kcz1bLi4ubmV3IFNldCgodGhpcy5uYW1lc3BhY2UubWV0aG9kc3x8W10pLmNvbmNhdChlLm1ldGhvZHN8fFtdKSldLHRoaXMubmFtZXNwYWNlLmV2ZW50cz1bLi4ubmV3IFNldCgodGhpcy5uYW1lc3BhY2UuZXZlbnRzfHxbXSkuY29uY2F0KGUuZXZlbnRzfHxbXSkpXSx0aGlzLmh0dHBQcm92aWRlcnM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXJzKCl9cmVxdWVzdEFjY291bnRzKCl7cmV0dXJuIHRoaXMuZ2V0QWNjb3VudHMoKX1yZXF1ZXN0KGUpe3JldHVybiB0aGlzLm5hbWVzcGFjZS5tZXRob2RzLmluY2x1ZGVzKGUucmVxdWVzdC5tZXRob2QpP3RoaXMuY2xpZW50LnJlcXVlc3QoZSk6dGhpcy5nZXRIdHRwUHJvdmlkZXIoZS5jaGFpbklkKS5yZXF1ZXN0KGUucmVxdWVzdCl9c2V0RGVmYXVsdENoYWluKGUsdCl7dGhpcy5odHRwUHJvdmlkZXJzW2VdfHx0aGlzLnNldEh0dHBQcm92aWRlcihlLHQpLHRoaXMuY2hhaW5JZD1lLHRoaXMuZXZlbnRzLmVtaXQocC5ERUZBVUxUX0NIQUlOX0NIQU5HRUQsYCR7dGhpcy5uYW1lfToke2V9YCl9Z2V0RGVmYXVsdENoYWluKCl7aWYodGhpcy5jaGFpbklkKXJldHVybiB0aGlzLmNoYWluSWQ7aWYodGhpcy5uYW1lc3BhY2UuZGVmYXVsdENoYWluKXJldHVybiB0aGlzLm5hbWVzcGFjZS5kZWZhdWx0Q2hhaW47bGV0IGU9dGhpcy5uYW1lc3BhY2UuY2hhaW5zWzBdO2lmKCFlKXRocm93IG5ldyBFcnJvcigiQ2hhaW5JZCBub3QgZm91bmQiKTtyZXR1cm4gZS5zcGxpdCgiOiIpWzFdfWdldEFjY291bnRzKCl7bGV0IGU9dGhpcy5uYW1lc3BhY2UuYWNjb3VudHM7cmV0dXJuIGU/Wy4uLm5ldyBTZXQoZS5maWx0ZXIodD0+dC5zcGxpdCgiOiIpWzFdPT09dGhpcy5jaGFpbklkLnRvU3RyaW5nKCkpLm1hcCh0PT50LnNwbGl0KCI6IilbMl0pKV06W119Y3JlYXRlSHR0cFByb3ZpZGVycygpe3ZhciBlLHQ7bGV0IHM9e307cmV0dXJuKHQ9KGU9dGhpcy5uYW1lc3BhY2UpPT1udWxsP3ZvaWQgMDplLmFjY291bnRzKT09bnVsbHx8dC5mb3JFYWNoKGk9PntsZXQgbj1aKGkpO3NbYCR7bi5uYW1lc3BhY2V9OiR7bi5yZWZlcmVuY2V9YF09dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoaSl9KSxzfWdldEh0dHBQcm92aWRlcihlKXtsZXQgdD10aGlzLmh0dHBQcm92aWRlcnNbZV07aWYodHlwZW9mIHQ+InUiKXRocm93IG5ldyBFcnJvcihgSlNPTi1SUEMgcHJvdmlkZXIgZm9yICR7ZX0gbm90IGZvdW5kYCk7cmV0dXJuIHR9c2V0SHR0cFByb3ZpZGVyKGUsdCl7bGV0IHM9dGhpcy5jcmVhdGVIdHRwUHJvdmlkZXIoZSx0KTtzJiYodGhpcy5odHRwUHJvdmlkZXJzW2VdPXMpfWNyZWF0ZUh0dHBQcm92aWRlcihlLHQpe2xldCBzPXR8fGgoZSx0aGlzLm5hbWVzcGFjZSx0aGlzLmNsaWVudC5jb3JlLnByb2plY3RJZCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKGBObyBSUEMgdXJsIHByb3ZpZGVkIGZvciBjaGFpbklkOiAke2V9YCk7cmV0dXJuIG5ldyBkKG5ldyB1KHMsbygiZGlzYWJsZVByb3ZpZGVyUGluZyIpKSl9fSxTZT1PYmplY3QuZGVmaW5lUHJvcGVydHksamU9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsX2U9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsWD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLFJlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksVWU9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxZPShyLGUsdCk9PmUgaW4gcj9TZShyLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpyW2VdPXQsdz0ocixlKT0+e2Zvcih2YXIgdCBpbiBlfHwoZT17fSkpUmUuY2FsbChlLHQpJiZZKHIsdCxlW3RdKTtpZihYKWZvcih2YXIgdCBvZiBYKGUpKVVlLmNhbGwoZSx0KSYmWShyLHQsZVt0XSk7cmV0dXJuIHJ9LEU9KHIsZSk9PmplKHIsX2UoZSkpLGs9Y2xhc3Mgcntjb25zdHJ1Y3RvcihlKXt0aGlzLmV2ZW50cz1uZXcgbWUsdGhpcy5ycGNQcm92aWRlcnM9e30sdGhpcy5zaG91bGRBYm9ydFBhaXJpbmdBdHRlbXB0PSExLHRoaXMubWF4UGFpcmluZ0F0dGVtcHRzPTEwLHRoaXMuZGlzYWJsZVByb3ZpZGVyUGluZz0hMSx0aGlzLnByb3ZpZGVyT3B0cz1lLHRoaXMubG9nZ2VyPXR5cGVvZiBlPy5sb2dnZXI8InUiJiZ0eXBlb2YgZT8ubG9nZ2VyIT0ic3RyaW5nIj9lLmxvZ2dlcjpjZShoZSh7bGV2ZWw6ZT8ubG9nZ2VyfHxMfSkpLHRoaXMuZGlzYWJsZVByb3ZpZGVyUGluZz1lPy5kaXNhYmxlUHJvdmlkZXJQaW5nfHwhMX1zdGF0aWMgYXN5bmMgaW5pdChlKXtsZXQgdD1uZXcgcihlKTtyZXR1cm4gYXdhaXQgdC5pbml0aWFsaXplKCksdH1hc3luYyByZXF1ZXN0KGUsdCxzKXtsZXRbaSxuXT10aGlzLnZhbGlkYXRlQ2hhaW4odCk7aWYoIXRoaXMuc2Vzc2lvbil0aHJvdyBuZXcgRXJyb3IoIlBsZWFzZSBjYWxsIGNvbm5lY3QoKSBiZWZvcmUgcmVxdWVzdCgpIik7cmV0dXJuIGF3YWl0IHRoaXMuZ2V0UHJvdmlkZXIoaSkucmVxdWVzdCh7cmVxdWVzdDp3KHt9LGUpLGNoYWluSWQ6YCR7aX06JHtufWAsdG9waWM6dGhpcy5zZXNzaW9uLnRvcGljLGV4cGlyeTpzfSl9c2VuZEFzeW5jKGUsdCxzLGkpe2xldCBuPW5ldyBEYXRlKCkuZ2V0VGltZSgpO3RoaXMucmVxdWVzdChlLHMsaSkudGhlbihhPT50KG51bGwsbGUobixhKSkpLmNhdGNoKGE9PnQoYSx2b2lkIDApKX1hc3luYyBlbmFibGUoKXtpZighdGhpcy5jbGllbnQpdGhyb3cgbmV3IEVycm9yKCJTaWduIENsaWVudCBub3QgaW5pdGlhbGl6ZWQiKTtyZXR1cm4gdGhpcy5zZXNzaW9ufHxhd2FpdCB0aGlzLmNvbm5lY3Qoe25hbWVzcGFjZXM6dGhpcy5uYW1lc3BhY2VzLG9wdGlvbmFsTmFtZXNwYWNlczp0aGlzLm9wdGlvbmFsTmFtZXNwYWNlcyxzZXNzaW9uUHJvcGVydGllczp0aGlzLnNlc3Npb25Qcm9wZXJ0aWVzfSksYXdhaXQgdGhpcy5yZXF1ZXN0QWNjb3VudHMoKX1hc3luYyBkaXNjb25uZWN0KCl7dmFyIGU7aWYoIXRoaXMuc2Vzc2lvbil0aHJvdyBuZXcgRXJyb3IoIlBsZWFzZSBjYWxsIGNvbm5lY3QoKSBiZWZvcmUgZW5hYmxlKCkiKTthd2FpdCB0aGlzLmNsaWVudC5kaXNjb25uZWN0KHt0b3BpYzooZT10aGlzLnNlc3Npb24pPT1udWxsP3ZvaWQgMDplLnRvcGljLHJlYXNvbjpGKCJVU0VSX0RJU0NPTk5FQ1RFRCIpfSksYXdhaXQgdGhpcy5jbGVhbnVwKCl9YXN5bmMgY29ubmVjdChlKXtpZighdGhpcy5jbGllbnQpdGhyb3cgbmV3IEVycm9yKCJTaWduIENsaWVudCBub3QgaW5pdGlhbGl6ZWQiKTtpZih0aGlzLnNldE5hbWVzcGFjZXMoZSksYXdhaXQgdGhpcy5jbGVhbnVwUGVuZGluZ1BhaXJpbmdzKCksIWUuc2tpcFBhaXJpbmcpcmV0dXJuIGF3YWl0IHRoaXMucGFpcihlLnBhaXJpbmdUb3BpYyl9YXN5bmMgYXV0aGVudGljYXRlKGUsdCl7aWYoIXRoaXMuY2xpZW50KXRocm93IG5ldyBFcnJvcigiU2lnbiBDbGllbnQgbm90IGluaXRpYWxpemVkIik7dGhpcy5zZXROYW1lc3BhY2VzKGUpLGF3YWl0IHRoaXMuY2xlYW51cFBlbmRpbmdQYWlyaW5ncygpO2xldHt1cmk6cyxyZXNwb25zZTppfT1hd2FpdCB0aGlzLmNsaWVudC5hdXRoZW50aWNhdGUoZSx0KTtzJiYodGhpcy51cmk9cyx0aGlzLmV2ZW50cy5lbWl0KCJkaXNwbGF5X3VyaSIscykpO2xldCBuPWF3YWl0IGkoKTtpZih0aGlzLnNlc3Npb249bi5zZXNzaW9uLHRoaXMuc2Vzc2lvbil7bGV0IGE9eih0aGlzLnNlc3Npb24ubmFtZXNwYWNlcyk7dGhpcy5uYW1lc3BhY2VzPUgodGhpcy5uYW1lc3BhY2VzLGEpLHRoaXMucGVyc2lzdCgibmFtZXNwYWNlcyIsdGhpcy5uYW1lc3BhY2VzKSx0aGlzLm9uQ29ubmVjdCgpfXJldHVybiBufW9uKGUsdCl7dGhpcy5ldmVudHMub24oZSx0KX1vbmNlKGUsdCl7dGhpcy5ldmVudHMub25jZShlLHQpfXJlbW92ZUxpc3RlbmVyKGUsdCl7dGhpcy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoZSx0KX1vZmYoZSx0KXt0aGlzLmV2ZW50cy5vZmYoZSx0KX1nZXQgaXNXYWxsZXRDb25uZWN0KCl7cmV0dXJuITB9YXN5bmMgcGFpcihlKXt0aGlzLnNob3VsZEFib3J0UGFpcmluZ0F0dGVtcHQ9ITE7bGV0IHQ9MDtkb3tpZih0aGlzLnNob3VsZEFib3J0UGFpcmluZ0F0dGVtcHQpdGhyb3cgbmV3IEVycm9yKCJQYWlyaW5nIGFib3J0ZWQiKTtpZih0Pj10aGlzLm1heFBhaXJpbmdBdHRlbXB0cyl0aHJvdyBuZXcgRXJyb3IoIk1heCBhdXRvIHBhaXJpbmcgYXR0ZW1wdHMgcmVhY2hlZCIpO2xldHt1cmk6cyxhcHByb3ZhbDppfT1hd2FpdCB0aGlzLmNsaWVudC5jb25uZWN0KHtwYWlyaW5nVG9waWM6ZSxyZXF1aXJlZE5hbWVzcGFjZXM6dGhpcy5uYW1lc3BhY2VzLG9wdGlvbmFsTmFtZXNwYWNlczp0aGlzLm9wdGlvbmFsTmFtZXNwYWNlcyxzZXNzaW9uUHJvcGVydGllczp0aGlzLnNlc3Npb25Qcm9wZXJ0aWVzfSk7cyYmKHRoaXMudXJpPXMsdGhpcy5ldmVudHMuZW1pdCgiZGlzcGxheV91cmkiLHMpKSxhd2FpdCBpKCkudGhlbihuPT57dGhpcy5zZXNzaW9uPW47bGV0IGE9eihuLm5hbWVzcGFjZXMpO3RoaXMubmFtZXNwYWNlcz1IKHRoaXMubmFtZXNwYWNlcyxhKSx0aGlzLnBlcnNpc3QoIm5hbWVzcGFjZXMiLHRoaXMubmFtZXNwYWNlcyl9KS5jYXRjaChuPT57aWYobi5tZXNzYWdlIT09YWUpdGhyb3cgbjt0Kyt9KX13aGlsZSghdGhpcy5zZXNzaW9uKTtyZXR1cm4gdGhpcy5vbkNvbm5lY3QoKSx0aGlzLnNlc3Npb259c2V0RGVmYXVsdENoYWluKGUsdCl7dHJ5e2lmKCF0aGlzLnNlc3Npb24pcmV0dXJuO2xldFtzLGldPXRoaXMudmFsaWRhdGVDaGFpbihlKSxuPXRoaXMuZ2V0UHJvdmlkZXIocyk7bi5uYW1lPT09Zj9uLnNldERlZmF1bHRDaGFpbihgJHtzfToke2l9YCx0KTpuLnNldERlZmF1bHRDaGFpbihpLHQpfWNhdGNoKHMpe2lmKCEvUGxlYXNlIGNhbGwgY29ubmVjdC8udGVzdChzLm1lc3NhZ2UpKXRocm93IHN9fWFzeW5jIGNsZWFudXBQZW5kaW5nUGFpcmluZ3MoZT17fSl7dGhpcy5sb2dnZXIuaW5mbygiQ2xlYW5pbmcgdXAgaW5hY3RpdmUgcGFpcmluZ3MuLi4iKTtsZXQgdD10aGlzLmNsaWVudC5wYWlyaW5nLmdldEFsbCgpO2lmKFQodCkpe2ZvcihsZXQgcyBvZiB0KWUuZGVsZXRlUGFpcmluZ3M/dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLnNldChzLnRvcGljLDApOmF3YWl0IHRoaXMuY2xpZW50LmNvcmUucmVsYXllci5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKHMudG9waWMpO3RoaXMubG9nZ2VyLmluZm8oYEluYWN0aXZlIHBhaXJpbmdzIGNsZWFyZWQ6ICR7dC5sZW5ndGh9YCl9fWFib3J0UGFpcmluZ0F0dGVtcHQoKXt0aGlzLnNob3VsZEFib3J0UGFpcmluZ0F0dGVtcHQ9ITB9YXN5bmMgY2hlY2tTdG9yYWdlKCl7aWYodGhpcy5uYW1lc3BhY2VzPWF3YWl0IHRoaXMuZ2V0RnJvbVN0b3JlKCJuYW1lc3BhY2VzIiksdGhpcy5vcHRpb25hbE5hbWVzcGFjZXM9YXdhaXQgdGhpcy5nZXRGcm9tU3RvcmUoIm9wdGlvbmFsTmFtZXNwYWNlcyIpfHx7fSx0aGlzLmNsaWVudC5zZXNzaW9uLmxlbmd0aCl7bGV0IGU9dGhpcy5jbGllbnQuc2Vzc2lvbi5rZXlzLmxlbmd0aC0xO3RoaXMuc2Vzc2lvbj10aGlzLmNsaWVudC5zZXNzaW9uLmdldCh0aGlzLmNsaWVudC5zZXNzaW9uLmtleXNbZV0pLHRoaXMuY3JlYXRlUHJvdmlkZXJzKCl9fWFzeW5jIGluaXRpYWxpemUoKXt0aGlzLmxvZ2dlci50cmFjZSgiSW5pdGlhbGl6ZWQiKSxhd2FpdCB0aGlzLmNyZWF0ZUNsaWVudCgpLGF3YWl0IHRoaXMuY2hlY2tTdG9yYWdlKCksdGhpcy5yZWdpc3RlckV2ZW50TGlzdGVuZXJzKCl9YXN5bmMgY3JlYXRlQ2xpZW50KCl7dGhpcy5jbGllbnQ9dGhpcy5wcm92aWRlck9wdHMuY2xpZW50fHxhd2FpdCBuZS5pbml0KHtjb3JlOnRoaXMucHJvdmlkZXJPcHRzLmNvcmUsbG9nZ2VyOnRoaXMucHJvdmlkZXJPcHRzLmxvZ2dlcnx8TCxyZWxheVVybDp0aGlzLnByb3ZpZGVyT3B0cy5yZWxheVVybHx8dmUscHJvamVjdElkOnRoaXMucHJvdmlkZXJPcHRzLnByb2plY3RJZCxtZXRhZGF0YTp0aGlzLnByb3ZpZGVyT3B0cy5tZXRhZGF0YSxzdG9yYWdlT3B0aW9uczp0aGlzLnByb3ZpZGVyT3B0cy5zdG9yYWdlT3B0aW9ucyxzdG9yYWdlOnRoaXMucHJvdmlkZXJPcHRzLnN0b3JhZ2UsbmFtZTp0aGlzLnByb3ZpZGVyT3B0cy5uYW1lLGN1c3RvbVN0b3JhZ2VQcmVmaXg6dGhpcy5wcm92aWRlck9wdHMuY3VzdG9tU3RvcmFnZVByZWZpeCx0ZWxlbWV0cnlFbmFibGVkOnRoaXMucHJvdmlkZXJPcHRzLnRlbGVtZXRyeUVuYWJsZWR9KSx0aGlzLmxvZ2dlci50cmFjZSgiU2lnbkNsaWVudCBJbml0aWFsaXplZCIpfWNyZWF0ZVByb3ZpZGVycygpe2lmKCF0aGlzLmNsaWVudCl0aHJvdyBuZXcgRXJyb3IoIlNpZ24gQ2xpZW50IG5vdCBpbml0aWFsaXplZCIpO2lmKCF0aGlzLnNlc3Npb24pdGhyb3cgbmV3IEVycm9yKCJTZXNzaW9uIG5vdCBpbml0aWFsaXplZC4gUGxlYXNlIGNhbGwgY29ubmVjdCgpIGJlZm9yZSBlbmFibGUoKSIpO2xldCBlPVsuLi5uZXcgU2V0KE9iamVjdC5rZXlzKHRoaXMuc2Vzc2lvbi5uYW1lc3BhY2VzKS5tYXAodD0+UCh0KSkpXTskKCJjbGllbnQiLHRoaXMuY2xpZW50KSwkKCJldmVudHMiLHRoaXMuZXZlbnRzKSwkKCJkaXNhYmxlUHJvdmlkZXJQaW5nIix0aGlzLmRpc2FibGVQcm92aWRlclBpbmcpLGUuZm9yRWFjaCh0PT57aWYoIXRoaXMuc2Vzc2lvbilyZXR1cm47bGV0IHM9RWUodCx0aGlzLnNlc3Npb24pLGk9dGUocyksbj1IKHRoaXMubmFtZXNwYWNlcyx0aGlzLm9wdGlvbmFsTmFtZXNwYWNlcyksYT1FKHcoe30sblt0XSkse2FjY291bnRzOnMsY2hhaW5zOml9KTtzd2l0Y2godCl7Y2FzZSJlaXAxNTUiOnRoaXMucnBjUHJvdmlkZXJzW3RdPW5ldyB5KHtuYW1lc3BhY2U6YX0pO2JyZWFrO2Nhc2UiYWxnb3JhbmQiOnRoaXMucnBjUHJvdmlkZXJzW3RdPW5ldyBPKHtuYW1lc3BhY2U6YX0pO2JyZWFrO2Nhc2Uic29sYW5hIjp0aGlzLnJwY1Byb3ZpZGVyc1t0XT1uZXcgcSh7bmFtZXNwYWNlOmF9KTticmVhaztjYXNlImNvc21vcyI6dGhpcy5ycGNQcm92aWRlcnNbdF09bmV3IE4oe25hbWVzcGFjZTphfSk7YnJlYWs7Y2FzZSJwb2xrYWRvdCI6dGhpcy5ycGNQcm92aWRlcnNbdF09bmV3IEEoe25hbWVzcGFjZTphfSk7YnJlYWs7Y2FzZSJjaXAzNCI6dGhpcy5ycGNQcm92aWRlcnNbdF09bmV3IEQoe25hbWVzcGFjZTphfSk7YnJlYWs7Y2FzZSJlbHJvbmQiOnRoaXMucnBjUHJvdmlkZXJzW3RdPW5ldyBTKHtuYW1lc3BhY2U6YX0pO2JyZWFrO2Nhc2UibXVsdGl2ZXJzeCI6dGhpcy5ycGNQcm92aWRlcnNbdF09bmV3IGooe25hbWVzcGFjZTphfSk7YnJlYWs7Y2FzZSJuZWFyIjp0aGlzLnJwY1Byb3ZpZGVyc1t0XT1uZXcgXyh7bmFtZXNwYWNlOmF9KTticmVhaztjYXNlInRlem9zIjp0aGlzLnJwY1Byb3ZpZGVyc1t0XT1uZXcgUih7bmFtZXNwYWNlOmF9KTticmVhaztkZWZhdWx0OnRoaXMucnBjUHJvdmlkZXJzW2ZdP3RoaXMucnBjUHJvdmlkZXJzW2ZdLnVwZGF0ZU5hbWVzcGFjZShhKTp0aGlzLnJwY1Byb3ZpZGVyc1tmXT1uZXcgVSh7bmFtZXNwYWNlOmF9KX19KX1yZWdpc3RlckV2ZW50TGlzdGVuZXJzKCl7aWYodHlwZW9mIHRoaXMuY2xpZW50PiJ1Iil0aHJvdyBuZXcgRXJyb3IoIlNpZ24gQ2xpZW50IGlzIG5vdCBpbml0aWFsaXplZCIpO3RoaXMuY2xpZW50Lm9uKCJzZXNzaW9uX3BpbmciLGU9Pnt0aGlzLmV2ZW50cy5lbWl0KCJzZXNzaW9uX3BpbmciLGUpfSksdGhpcy5jbGllbnQub24oInNlc3Npb25fZXZlbnQiLGU9PntsZXR7cGFyYW1zOnR9PWUse2V2ZW50OnN9PXQ7aWYocy5uYW1lPT09ImFjY291bnRzQ2hhbmdlZCIpe2xldCBpPXMuZGF0YTtpJiZUKGkpJiZ0aGlzLmV2ZW50cy5lbWl0KCJhY2NvdW50c0NoYW5nZWQiLGkubWFwKEFlKSl9ZWxzZSBpZihzLm5hbWU9PT0iY2hhaW5DaGFuZ2VkIil7bGV0IGk9dC5jaGFpbklkLG49dC5ldmVudC5kYXRhLGE9UChpKSxjPWIoaSkhPT1iKG4pP2Ake2F9OiR7YihuKX1gOmk7dGhpcy5vbkNoYWluQ2hhbmdlZChjKX1lbHNlIHRoaXMuZXZlbnRzLmVtaXQocy5uYW1lLHMuZGF0YSk7dGhpcy5ldmVudHMuZW1pdCgic2Vzc2lvbl9ldmVudCIsZSl9KSx0aGlzLmNsaWVudC5vbigic2Vzc2lvbl91cGRhdGUiLCh7dG9waWM6ZSxwYXJhbXM6dH0pPT57dmFyIHM7bGV0e25hbWVzcGFjZXM6aX09dCxuPShzPXRoaXMuY2xpZW50KT09bnVsbD92b2lkIDA6cy5zZXNzaW9uLmdldChlKTt0aGlzLnNlc3Npb249RSh3KHt9LG4pLHtuYW1lc3BhY2VzOml9KSx0aGlzLm9uU2Vzc2lvblVwZGF0ZSgpLHRoaXMuZXZlbnRzLmVtaXQoInNlc3Npb25fdXBkYXRlIix7dG9waWM6ZSxwYXJhbXM6dH0pfSksdGhpcy5jbGllbnQub24oInNlc3Npb25fZGVsZXRlIixhc3luYyBlPT57YXdhaXQgdGhpcy5jbGVhbnVwKCksdGhpcy5ldmVudHMuZW1pdCgic2Vzc2lvbl9kZWxldGUiLGUpLHRoaXMuZXZlbnRzLmVtaXQoImRpc2Nvbm5lY3QiLEUodyh7fSxGKCJVU0VSX0RJU0NPTk5FQ1RFRCIpKSx7ZGF0YTplLnRvcGljfSkpfSksdGhpcy5vbihwLkRFRkFVTFRfQ0hBSU5fQ0hBTkdFRCxlPT57dGhpcy5vbkNoYWluQ2hhbmdlZChlLCEwKX0pfWdldFByb3ZpZGVyKGUpe3JldHVybiB0aGlzLnJwY1Byb3ZpZGVyc1tlXXx8dGhpcy5ycGNQcm92aWRlcnNbZl19b25TZXNzaW9uVXBkYXRlKCl7T2JqZWN0LmtleXModGhpcy5ycGNQcm92aWRlcnMpLmZvckVhY2goZT0+e3ZhciB0O3RoaXMuZ2V0UHJvdmlkZXIoZSkudXBkYXRlTmFtZXNwYWNlKCh0PXRoaXMuc2Vzc2lvbik9PW51bGw/dm9pZCAwOnQubmFtZXNwYWNlc1tlXSl9KX1zZXROYW1lc3BhY2VzKGUpe2xldHtuYW1lc3BhY2VzOnQsb3B0aW9uYWxOYW1lc3BhY2VzOnMsc2Vzc2lvblByb3BlcnRpZXM6aX09ZTt0JiZPYmplY3Qua2V5cyh0KS5sZW5ndGgmJih0aGlzLm5hbWVzcGFjZXM9dCkscyYmT2JqZWN0LmtleXMocykubGVuZ3RoJiYodGhpcy5vcHRpb25hbE5hbWVzcGFjZXM9cyksdGhpcy5zZXNzaW9uUHJvcGVydGllcz1pLHRoaXMucGVyc2lzdCgibmFtZXNwYWNlcyIsdCksdGhpcy5wZXJzaXN0KCJvcHRpb25hbE5hbWVzcGFjZXMiLHMpfXZhbGlkYXRlQ2hhaW4oZSl7bGV0W3Qsc109ZT8uc3BsaXQoIjoiKXx8WyIiLCIiXTtpZighdGhpcy5uYW1lc3BhY2VzfHwhT2JqZWN0LmtleXModGhpcy5uYW1lc3BhY2VzKS5sZW5ndGgpcmV0dXJuW3Qsc107aWYodCYmIU9iamVjdC5rZXlzKHRoaXMubmFtZXNwYWNlc3x8e30pLm1hcChhPT5QKGEpKS5pbmNsdWRlcyh0KSl0aHJvdyBuZXcgRXJyb3IoYE5hbWVzcGFjZSAnJHt0fScgaXMgbm90IGNvbmZpZ3VyZWQuIFBsZWFzZSBjYWxsIGNvbm5lY3QoKSBmaXJzdCB3aXRoIG5hbWVzcGFjZSBjb25maWcuYCk7aWYodCYmcylyZXR1cm5bdCxzXTtsZXQgaT1QKE9iamVjdC5rZXlzKHRoaXMubmFtZXNwYWNlcylbMF0pLG49dGhpcy5ycGNQcm92aWRlcnNbaV0uZ2V0RGVmYXVsdENoYWluKCk7cmV0dXJuW2ksbl19YXN5bmMgcmVxdWVzdEFjY291bnRzKCl7bGV0W2VdPXRoaXMudmFsaWRhdGVDaGFpbigpO3JldHVybiBhd2FpdCB0aGlzLmdldFByb3ZpZGVyKGUpLnJlcXVlc3RBY2NvdW50cygpfW9uQ2hhaW5DaGFuZ2VkKGUsdD0hMSl7aWYoIXRoaXMubmFtZXNwYWNlcylyZXR1cm47bGV0W3MsaV09dGhpcy52YWxpZGF0ZUNoYWluKGUpO2kmJih0fHx0aGlzLmdldFByb3ZpZGVyKHMpLnNldERlZmF1bHRDaGFpbihpKSx0aGlzLm5hbWVzcGFjZXNbc10/dGhpcy5uYW1lc3BhY2VzW3NdLmRlZmF1bHRDaGFpbj1pOnRoaXMubmFtZXNwYWNlc1tgJHtzfToke2l9YF0/dGhpcy5uYW1lc3BhY2VzW2Ake3N9OiR7aX1gXS5kZWZhdWx0Q2hhaW49aTp0aGlzLm5hbWVzcGFjZXNbYCR7c306JHtpfWBdPXtkZWZhdWx0Q2hhaW46aX0sdGhpcy5wZXJzaXN0KCJuYW1lc3BhY2VzIix0aGlzLm5hbWVzcGFjZXMpLHRoaXMuZXZlbnRzLmVtaXQoImNoYWluQ2hhbmdlZCIsaSkpfW9uQ29ubmVjdCgpe3RoaXMuY3JlYXRlUHJvdmlkZXJzKCksdGhpcy5ldmVudHMuZW1pdCgiY29ubmVjdCIse3Nlc3Npb246dGhpcy5zZXNzaW9ufSl9YXN5bmMgY2xlYW51cCgpe3RoaXMuc2Vzc2lvbj12b2lkIDAsdGhpcy5uYW1lc3BhY2VzPXZvaWQgMCx0aGlzLm9wdGlvbmFsTmFtZXNwYWNlcz12b2lkIDAsdGhpcy5zZXNzaW9uUHJvcGVydGllcz12b2lkIDAsdGhpcy5wZXJzaXN0KCJuYW1lc3BhY2VzIix2b2lkIDApLHRoaXMucGVyc2lzdCgib3B0aW9uYWxOYW1lc3BhY2VzIix2b2lkIDApLHRoaXMucGVyc2lzdCgic2Vzc2lvblByb3BlcnRpZXMiLHZvaWQgMCksYXdhaXQgdGhpcy5jbGVhbnVwUGVuZGluZ1BhaXJpbmdzKHtkZWxldGVQYWlyaW5nczohMH0pfXBlcnNpc3QoZSx0KXt0aGlzLmNsaWVudC5jb3JlLnN0b3JhZ2Uuc2V0SXRlbShgJHtNfS8ke2V9YCx0KX1hc3luYyBnZXRGcm9tU3RvcmUoZSl7cmV0dXJuIGF3YWl0IHRoaXMuY2xpZW50LmNvcmUuc3RvcmFnZS5nZXRJdGVtKGAke019LyR7ZX1gKX19LHplPWs7ZXhwb3J0e3plIGFzIFVuaXZlcnNhbFByb3ZpZGVyLGsgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaXZlcnNhbC1wcm92aWRlci5tanMubWFw"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/signing-key@5.8.0/es2022/signing-key.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.962Z","timestamp":1785138633962,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/signing-key@5.8.0/es2022/signing-key.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/signing-key@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16518\r\ncf-ray: a21a0dce4c4a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":35656,"size_decoded":14955,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (35567)","md5":"a950bf19dcd9e26da4e79f235f3f32b8","sha1":"b2073a66543105e55eb02d089794c403fa68ca0b","sha256":"6e8078ea42105c183141af08520d5f7b60c23e47f8675458ac62462f6ef0eafc","sha512":"03e1f1be03d3d7c6f0159c2f5051384534a29bb772b604949d089661df4d8a159905454bd738a6cfa14692e0dbdacf4c3ae4fb9ce2d032145da0a6120672eb22","ssdeep":"768:DoM7GcmX1COKzzhsSiTPd9waXcNdLv6z71lHkwKv3Z:kM7GcmRKzzh/IduaYuplEwKB","tlshash":"73f2c69963a0b071971124a0281e6406e73ffd2d4a8d925cb749fcf73cfa9902636f76","first_seen":"2025-11-22T14:57:23.965291Z","last_seen":"2026-07-27T07:51:47.156224Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qvc2lnbmluZy1rZXlANS44LjAgKi8KaW1wb3J0IGIgZnJvbSIvYm4uanNAXjUuMi4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCB6IGZyb20iL2hhc2guanNAMS4xLjcvZXMyMDIyL2hhc2gubWpzIjtmdW5jdGlvbiBLKGksZSxyKXtyZXR1cm4gcj17cGF0aDplLGV4cG9ydHM6e30scmVxdWlyZTpmdW5jdGlvbih0LGYpe3JldHVybiBsZSh0LGY/P3IucGF0aCl9fSxpKHIsci5leHBvcnRzKSxyLmV4cG9ydHN9ZnVuY3Rpb24gbGUoKXt0aHJvdyBuZXcgRXJyb3IoIkR5bmFtaWMgcmVxdWlyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IEByb2xsdXAvcGx1Z2luLWNvbW1vbmpzIil9dmFyIFE9c2U7ZnVuY3Rpb24gc2UoaSxlKXtpZighaSl0aHJvdyBuZXcgRXJyb3IoZXx8IkFzc2VydGlvbiBmYWlsZWQiKX1zZS5lcXVhbD1mdW5jdGlvbihlLHIsdCl7aWYoZSE9cil0aHJvdyBuZXcgRXJyb3IodHx8IkFzc2VydGlvbiBmYWlsZWQ6ICIrZSsiICE9ICIrcil9O3ZhciBNPUsoZnVuY3Rpb24oaSxlKXsidXNlIHN0cmljdCI7dmFyIHI9ZTtmdW5jdGlvbiB0KG4sdSl7aWYoQXJyYXkuaXNBcnJheShuKSlyZXR1cm4gbi5zbGljZSgpO2lmKCFuKXJldHVybltdO3ZhciBzPVtdO2lmKHR5cGVvZiBuIT0ic3RyaW5nIil7Zm9yKHZhciBvPTA7bzxuLmxlbmd0aDtvKyspc1tvXT1uW29dfDA7cmV0dXJuIHN9aWYodT09PSJoZXgiKXtuPW4ucmVwbGFjZSgvW15hLXowLTldKy9pZywiIiksbi5sZW5ndGglMiE9PTAmJihuPSIwIituKTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rPTIpcy5wdXNoKHBhcnNlSW50KG5bb10rbltvKzFdLDE2KSl9ZWxzZSBmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIGg9bi5jaGFyQ29kZUF0KG8pLGE9aD4+OCxjPWgmMjU1O2E/cy5wdXNoKGEsYyk6cy5wdXNoKGMpfXJldHVybiBzfXIudG9BcnJheT10O2Z1bmN0aW9uIGYobil7cmV0dXJuIG4ubGVuZ3RoPT09MT8iMCIrbjpufXIuemVybzI9ZjtmdW5jdGlvbiBkKG4pe2Zvcih2YXIgdT0iIixzPTA7czxuLmxlbmd0aDtzKyspdSs9ZihuW3NdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIHV9ci50b0hleD1kLHIuZW5jb2RlPWZ1bmN0aW9uKHUscyl7cmV0dXJuIHM9PT0iaGV4Ij9kKHUpOnV9fSksdz1LKGZ1bmN0aW9uKGksZSl7InVzZSBzdHJpY3QiO3ZhciByPWU7ci5hc3NlcnQ9USxyLnRvQXJyYXk9TS50b0FycmF5LHIuemVybzI9TS56ZXJvMixyLnRvSGV4PU0udG9IZXgsci5lbmNvZGU9TS5lbmNvZGU7ZnVuY3Rpb24gdChzLG8saCl7dmFyIGE9bmV3IEFycmF5KE1hdGgubWF4KHMuYml0TGVuZ3RoKCksaCkrMSksYztmb3IoYz0wO2M8YS5sZW5ndGg7Yys9MSlhW2NdPTA7dmFyIHY9MTw8bysxLGw9cy5jbG9uZSgpO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBwLG09bC5hbmRsbih2LTEpO2wuaXNPZGQoKT8obT4odj4+MSktMT9wPSh2Pj4xKS1tOnA9bSxsLmlzdWJuKHApKTpwPTAsYVtjXT1wLGwuaXVzaHJuKDEpfXJldHVybiBhfXIuZ2V0TkFGPXQ7ZnVuY3Rpb24gZihzLG8pe3ZhciBoPVtbXSxbXV07cz1zLmNsb25lKCksbz1vLmNsb25lKCk7Zm9yKHZhciBhPTAsYz0wLHY7cy5jbXBuKC1hKT4wfHxvLmNtcG4oLWMpPjA7KXt2YXIgbD1zLmFuZGxuKDMpK2EmMyxwPW8uYW5kbG4oMykrYyYzO2w9PT0zJiYobD0tMSkscD09PTMmJihwPS0xKTt2YXIgbTsobCYxKT09PTA/bT0wOih2PXMuYW5kbG4oNykrYSY3LCh2PT09M3x8dj09PTUpJiZwPT09Mj9tPS1sOm09bCksaFswXS5wdXNoKG0pO3ZhciB5OyhwJjEpPT09MD95PTA6KHY9by5hbmRsbig3KStjJjcsKHY9PT0zfHx2PT09NSkmJmw9PT0yP3k9LXA6eT1wKSxoWzFdLnB1c2goeSksMiphPT09bSsxJiYoYT0xLWEpLDIqYz09PXkrMSYmKGM9MS1jKSxzLml1c2hybigxKSxvLml1c2hybigxKX1yZXR1cm4gaH1yLmdldEpTRj1mO2Z1bmN0aW9uIGQocyxvLGgpe3ZhciBhPSJfIitvO3MucHJvdG90eXBlW29dPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbYV0hPT12b2lkIDA/dGhpc1thXTp0aGlzW2FdPWguY2FsbCh0aGlzKX19ci5jYWNoZWRQcm9wZXJ0eT1kO2Z1bmN0aW9uIG4ocyl7cmV0dXJuIHR5cGVvZiBzPT0ic3RyaW5nIj9yLnRvQXJyYXkocywiaGV4Iik6c31yLnBhcnNlQnl0ZXM9bjtmdW5jdGlvbiB1KHMpe3JldHVybiBuZXcgYihzLCJoZXgiLCJsZSIpfXIuaW50RnJvbUxFPXV9KSxrPXcuZ2V0TkFGLHZlPXcuZ2V0SlNGLFY9dy5hc3NlcnQ7ZnVuY3Rpb24gRihpLGUpe3RoaXMudHlwZT1pLHRoaXMucD1uZXcgYihlLnAsMTYpLHRoaXMucmVkPWUucHJpbWU/Yi5yZWQoZS5wcmltZSk6Yi5tb250KHRoaXMucCksdGhpcy56ZXJvPW5ldyBiKDApLnRvUmVkKHRoaXMucmVkKSx0aGlzLm9uZT1uZXcgYigxKS50b1JlZCh0aGlzLnJlZCksdGhpcy50d289bmV3IGIoMikudG9SZWQodGhpcy5yZWQpLHRoaXMubj1lLm4mJm5ldyBiKGUubiwxNiksdGhpcy5nPWUuZyYmdGhpcy5wb2ludEZyb21KU09OKGUuZyxlLmdSZWQpLHRoaXMuX3duYWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQyPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDM9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUND1uZXcgQXJyYXkoNCksdGhpcy5fYml0TGVuZ3RoPXRoaXMubj90aGlzLm4uYml0TGVuZ3RoKCk6MDt2YXIgcj10aGlzLm4mJnRoaXMucC5kaXYodGhpcy5uKTshcnx8ci5jbXBuKDEwMCk+MD90aGlzLnJlZE49bnVsbDoodGhpcy5fbWF4d2VsbFRyaWNrPSEwLHRoaXMucmVkTj10aGlzLm4udG9SZWQodGhpcy5yZWQpKX12YXIgRD1GO0YucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX07Ri5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfTtGLnByb3RvdHlwZS5fZml4ZWROYWZNdWw9ZnVuY3Rpb24oZSxyKXtWKGUucHJlY29tcHV0ZWQpO3ZhciB0PWUuX2dldERvdWJsZXMoKSxmPWsociwxLHRoaXMuX2JpdExlbmd0aCksZD0oMTw8dC5zdGVwKzEpLSh0LnN0ZXAlMj09PTA/MjoxKTtkLz0zO3ZhciBuPVtdLHUscztmb3IodT0wO3U8Zi5sZW5ndGg7dSs9dC5zdGVwKXtzPTA7Zm9yKHZhciBvPXUrdC5zdGVwLTE7bz49dTtvLS0pcz0oczw8MSkrZltvXTtuLnB1c2gocyl9Zm9yKHZhciBoPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxhPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxjPWQ7Yz4wO2MtLSl7Zm9yKHU9MDt1PG4ubGVuZ3RoO3UrKylzPW5bdV0scz09PWM/YT1hLm1peGVkQWRkKHQucG9pbnRzW3VdKTpzPT09LWMmJihhPWEubWl4ZWRBZGQodC5wb2ludHNbdV0ubmVnKCkpKTtoPWguYWRkKGEpfXJldHVybiBoLnRvUCgpfTtGLnByb3RvdHlwZS5fd25hZk11bD1mdW5jdGlvbihlLHIpe3ZhciB0PTQsZj1lLl9nZXROQUZQb2ludHModCk7dD1mLnduZDtmb3IodmFyIGQ9Zi5wb2ludHMsbj1rKHIsdCx0aGlzLl9iaXRMZW5ndGgpLHU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHM9bi5sZW5ndGgtMTtzPj0wO3MtLSl7Zm9yKHZhciBvPTA7cz49MCYmbltzXT09PTA7cy0tKW8rKztpZihzPj0wJiZvKyssdT11LmRibHAobyksczwwKWJyZWFrO3ZhciBoPW5bc107VihoIT09MCksZS50eXBlPT09ImFmZmluZSI/aD4wP3U9dS5taXhlZEFkZChkW2gtMT4+MV0pOnU9dS5taXhlZEFkZChkWy1oLTE+PjFdLm5lZygpKTpoPjA/dT11LmFkZChkW2gtMT4+MV0pOnU9dS5hZGQoZFstaC0xPj4xXS5uZWcoKSl9cmV0dXJuIGUudHlwZT09PSJhZmZpbmUiP3UudG9QKCk6dX07Ri5wcm90b3R5cGUuX3duYWZNdWxBZGQ9ZnVuY3Rpb24oZSxyLHQsZixkKXt2YXIgbj10aGlzLl93bmFmVDEsdT10aGlzLl93bmFmVDIscz10aGlzLl93bmFmVDMsbz0wLGgsYSxjO2ZvcihoPTA7aDxmO2grKyl7Yz1yW2hdO3ZhciB2PWMuX2dldE5BRlBvaW50cyhlKTtuW2hdPXYud25kLHVbaF09di5wb2ludHN9Zm9yKGg9Zi0xO2g+PTE7aC09Mil7dmFyIGw9aC0xLHA9aDtpZihuW2xdIT09MXx8bltwXSE9PTEpe3NbbF09ayh0W2xdLG5bbF0sdGhpcy5fYml0TGVuZ3RoKSxzW3BdPWsodFtwXSxuW3BdLHRoaXMuX2JpdExlbmd0aCksbz1NYXRoLm1heChzW2xdLmxlbmd0aCxvKSxvPU1hdGgubWF4KHNbcF0ubGVuZ3RoLG8pO2NvbnRpbnVlfXZhciBtPVtyW2xdLG51bGwsbnVsbCxyW3BdXTtyW2xdLnkuY21wKHJbcF0ueSk9PT0wPyhtWzFdPXJbbF0uYWRkKHJbcF0pLG1bMl09cltsXS50b0ooKS5taXhlZEFkZChyW3BdLm5lZygpKSk6cltsXS55LmNtcChyW3BdLnkucmVkTmVnKCkpPT09MD8obVsxXT1yW2xdLnRvSigpLm1peGVkQWRkKHJbcF0pLG1bMl09cltsXS5hZGQocltwXS5uZWcoKSkpOihtWzFdPXJbbF0udG9KKCkubWl4ZWRBZGQocltwXSksbVsyXT1yW2xdLnRvSigpLm1peGVkQWRkKHJbcF0ubmVnKCkpKTt2YXIgeT1bLTMsLTEsLTUsLTcsMCw3LDUsMSwzXSxTPXZlKHRbbF0sdFtwXSk7Zm9yKG89TWF0aC5tYXgoU1swXS5sZW5ndGgsbyksc1tsXT1uZXcgQXJyYXkobyksc1twXT1uZXcgQXJyYXkobyksYT0wO2E8bzthKyspe3ZhciBqPVNbMF1bYV18MCxIPVNbMV1bYV18MDtzW2xdW2FdPXlbKGorMSkqMysoSCsxKV0sc1twXVthXT0wLHVbbF09bX19dmFyIEU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLEw9dGhpcy5fd25hZlQ0O2ZvcihoPW87aD49MDtoLS0pe2Zvcih2YXIgWT0wO2g+PTA7KXt2YXIgZGU9ITA7Zm9yKGE9MDthPGY7YSsrKUxbYV09c1thXVtoXXwwLExbYV0hPT0wJiYoZGU9ITEpO2lmKCFkZSlicmVhaztZKyssaC0tfWlmKGg+PTAmJlkrKyxFPUUuZGJscChZKSxoPDApYnJlYWs7Zm9yKGE9MDthPGY7YSsrKXt2YXIgQj1MW2FdO0IhPT0wJiYoQj4wP2M9dVthXVtCLTE+PjFdOkI8MCYmKGM9dVthXVstQi0xPj4xXS5uZWcoKSksYy50eXBlPT09ImFmZmluZSI/RT1FLm1peGVkQWRkKGMpOkU9RS5hZGQoYykpfX1mb3IoaD0wO2g8ZjtoKyspdVtoXT1udWxsO3JldHVybiBkP0U6RS50b1AoKX07ZnVuY3Rpb24gXyhpLGUpe3RoaXMuY3VydmU9aSx0aGlzLnR5cGU9ZSx0aGlzLnByZWNvbXB1dGVkPW51bGx9Ri5CYXNlUG9pbnQ9XztfLnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9O18ucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9O0YucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKGUscil7ZT13LnRvQXJyYXkoZSxyKTt2YXIgdD10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKChlWzBdPT09NHx8ZVswXT09PTZ8fGVbMF09PT03KSYmZS5sZW5ndGgtMT09PTIqdCl7ZVswXT09PTY/VihlW2UubGVuZ3RoLTFdJTI9PT0wKTplWzBdPT09NyYmVihlW2UubGVuZ3RoLTFdJTI9PT0xKTt2YXIgZj10aGlzLnBvaW50KGUuc2xpY2UoMSwxK3QpLGUuc2xpY2UoMSt0LDErMip0KSk7cmV0dXJuIGZ9ZWxzZSBpZigoZVswXT09PTJ8fGVbMF09PT0zKSYmZS5sZW5ndGgtMT09PXQpcmV0dXJuIHRoaXMucG9pbnRGcm9tWChlLnNsaWNlKDEsMSt0KSxlWzBdPT09Myk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHBvaW50IGZvcm1hdCIpfTtfLnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVuY29kZShlLCEwKX07Xy5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpLHQ9dGhpcy5nZXRYKCkudG9BcnJheSgiYmUiLHIpO3JldHVybiBlP1t0aGlzLmdldFkoKS5pc0V2ZW4oKT8yOjNdLmNvbmNhdCh0KTpbNF0uY29uY2F0KHQsdGhpcy5nZXRZKCkudG9BcnJheSgiYmUiLHIpKX07Xy5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKGUscil7cmV0dXJuIHcuZW5jb2RlKHRoaXMuX2VuY29kZShyKSxlKX07Xy5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbihlKXtpZih0aGlzLnByZWNvbXB1dGVkKXJldHVybiB0aGlzO3ZhciByPXtkb3VibGVzOm51bGwsbmFmOm51bGwsYmV0YTpudWxsfTtyZXR1cm4gci5uYWY9dGhpcy5fZ2V0TkFGUG9pbnRzKDgpLHIuZG91Ymxlcz10aGlzLl9nZXREb3VibGVzKDQsZSksci5iZXRhPXRoaXMuX2dldEJldGEoKSx0aGlzLnByZWNvbXB1dGVkPXIsdGhpc307Xy5wcm90b3R5cGUuX2hhc0RvdWJsZXM9ZnVuY3Rpb24oZSl7aWYoIXRoaXMucHJlY29tcHV0ZWQpcmV0dXJuITE7dmFyIHI9dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO3JldHVybiByP3IucG9pbnRzLmxlbmd0aD49TWF0aC5jZWlsKChlLmJpdExlbmd0aCgpKzEpL3Iuc3RlcCk6ITF9O18ucHJvdG90eXBlLl9nZXREb3VibGVzPWZ1bmN0aW9uKGUscil7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXM7Zm9yKHZhciB0PVt0aGlzXSxmPXRoaXMsZD0wO2Q8cjtkKz1lKXtmb3IodmFyIG49MDtuPGU7bisrKWY9Zi5kYmwoKTt0LnB1c2goZil9cmV0dXJue3N0ZXA6ZSxwb2ludHM6dH19O18ucHJvdG90eXBlLl9nZXROQUZQb2ludHM9ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5uYWYpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQubmFmO2Zvcih2YXIgcj1bdGhpc10sdD0oMTw8ZSktMSxmPXQ9PT0xP251bGw6dGhpcy5kYmwoKSxkPTE7ZDx0O2QrKylyW2RdPXJbZC0xXS5hZGQoZik7cmV0dXJue3duZDplLHBvaW50czpyfX07Xy5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07Xy5wcm90b3R5cGUuZGJscD1mdW5jdGlvbihlKXtmb3IodmFyIHI9dGhpcyx0PTA7dDxlO3QrKylyPXIuZGJsKCk7cmV0dXJuIHJ9O3ZhciAkPUsoZnVuY3Rpb24oaSl7dHlwZW9mIE9iamVjdC5jcmVhdGU9PSJmdW5jdGlvbiI/aS5leHBvcnRzPWZ1bmN0aW9uKHIsdCl7dCYmKHIuc3VwZXJfPXQsci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnIsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSkpfTppLmV4cG9ydHM9ZnVuY3Rpb24ocix0KXtpZih0KXtyLnN1cGVyXz10O3ZhciBmPWZ1bmN0aW9uKCl7fTtmLnByb3RvdHlwZT10LnByb3RvdHlwZSxyLnByb3RvdHlwZT1uZXcgZixyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yfX19KSxwZT13LmFzc2VydDtmdW5jdGlvbiBQKGkpe0QuY2FsbCh0aGlzLCJzaG9ydCIsaSksdGhpcy5hPW5ldyBiKGkuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgYihpLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9dGhpcy5hLmZyb21SZWQoKS5jbXBuKDApPT09MCx0aGlzLnRocmVlQT10aGlzLmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpPT09MCx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKGkpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfSQoUCxEKTt2YXIgYmU9UDtQLnByb3RvdHlwZS5fZ2V0RW5kb21vcnBoaXNtPWZ1bmN0aW9uKGUpe2lmKCEoIXRoaXMuemVyb0F8fCF0aGlzLmd8fCF0aGlzLm58fHRoaXMucC5tb2RuKDMpIT09MSkpe3ZhciByLHQ7aWYoZS5iZXRhKXI9bmV3IGIoZS5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgZj10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5wKTtyPWZbMF0uY21wKGZbMV0pPDA/ZlswXTpmWzFdLHI9ci50b1JlZCh0aGlzLnJlZCl9aWYoZS5sYW1iZGEpdD1uZXcgYihlLmxhbWJkYSwxNik7ZWxzZXt2YXIgZD10aGlzLl9nZXRFbmRvUm9vdHModGhpcy5uKTt0aGlzLmcubXVsKGRbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChyKSk9PT0wP3Q9ZFswXToodD1kWzFdLHBlKHRoaXMuZy5tdWwodCkueC5jbXAodGhpcy5nLngucmVkTXVsKHIpKT09PTApKX12YXIgbjtyZXR1cm4gZS5iYXNpcz9uPWUuYmFzaXMubWFwKGZ1bmN0aW9uKHUpe3JldHVybnthOm5ldyBiKHUuYSwxNiksYjpuZXcgYih1LmIsMTYpfX0pOm49dGhpcy5fZ2V0RW5kb0Jhc2lzKHQpLHtiZXRhOnIsbGFtYmRhOnQsYmFzaXM6bn19fTtQLnByb3RvdHlwZS5fZ2V0RW5kb1Jvb3RzPWZ1bmN0aW9uKGUpe3ZhciByPWU9PT10aGlzLnA/dGhpcy5yZWQ6Yi5tb250KGUpLHQ9bmV3IGIoMikudG9SZWQocikucmVkSW52bSgpLGY9dC5yZWROZWcoKSxkPW5ldyBiKDMpLnRvUmVkKHIpLnJlZE5lZygpLnJlZFNxcnQoKS5yZWRNdWwodCksbj1mLnJlZEFkZChkKS5mcm9tUmVkKCksdT1mLnJlZFN1YihkKS5mcm9tUmVkKCk7cmV0dXJuW24sdV19O1AucHJvdG90eXBlLl9nZXRFbmRvQmFzaXM9ZnVuY3Rpb24oZSl7Zm9yKHZhciByPXRoaXMubi51c2hybihNYXRoLmZsb29yKHRoaXMubi5iaXRMZW5ndGgoKS8yKSksdD1lLGY9dGhpcy5uLmNsb25lKCksZD1uZXcgYigxKSxuPW5ldyBiKDApLHU9bmV3IGIoMCkscz1uZXcgYigxKSxvLGgsYSxjLHYsbCxwLG09MCx5LFM7dC5jbXBuKDApIT09MDspe3ZhciBqPWYuZGl2KHQpO3k9Zi5zdWIoai5tdWwodCkpLFM9dS5zdWIoai5tdWwoZCkpO3ZhciBIPXMuc3ViKGoubXVsKG4pKTtpZighYSYmeS5jbXAocik8MClvPXAubmVnKCksaD1kLGE9eS5uZWcoKSxjPVM7ZWxzZSBpZihhJiYrK209PT0yKWJyZWFrO3A9eSxmPXQsdD15LHU9ZCxkPVMscz1uLG49SH12PXkubmVnKCksbD1TO3ZhciBFPWEuc3FyKCkuYWRkKGMuc3FyKCkpLEw9di5zcXIoKS5hZGQobC5zcXIoKSk7cmV0dXJuIEwuY21wKEUpPj0wJiYodj1vLGw9aCksYS5uZWdhdGl2ZSYmKGE9YS5uZWcoKSxjPWMubmVnKCkpLHYubmVnYXRpdmUmJih2PXYubmVnKCksbD1sLm5lZygpKSxbe2EsYjpjfSx7YTp2LGI6bH1dfTtQLnByb3RvdHlwZS5fZW5kb1NwbGl0PWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuZW5kby5iYXNpcyx0PXJbMF0sZj1yWzFdLGQ9Zi5iLm11bChlKS5kaXZSb3VuZCh0aGlzLm4pLG49dC5iLm5lZygpLm11bChlKS5kaXZSb3VuZCh0aGlzLm4pLHU9ZC5tdWwodC5hKSxzPW4ubXVsKGYuYSksbz1kLm11bCh0LmIpLGg9bi5tdWwoZi5iKSxhPWUuc3ViKHUpLnN1YihzKSxjPW8uYWRkKGgpLm5lZygpO3JldHVybntrMTphLGsyOmN9fTtQLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKGUscil7ZT1uZXcgYihlLDE2KSxlLnJlZHx8KGU9ZS50b1JlZCh0aGlzLnJlZCkpO3ZhciB0PWUucmVkU3FyKCkucmVkTXVsKGUpLnJlZElBZGQoZS5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpLGY9dC5yZWRTcXJ0KCk7aWYoZi5yZWRTcXIoKS5yZWRTdWIodCkuY21wKHRoaXMuemVybykhPT0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBkPWYuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKHImJiFkfHwhciYmZCkmJihmPWYucmVkTmVnKCkpLHRoaXMucG9pbnQoZSxmKX07UC5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oZSl7aWYoZS5pbmYpcmV0dXJuITA7dmFyIHI9ZS54LHQ9ZS55LGY9dGhpcy5hLnJlZE11bChyKSxkPXIucmVkU3FyKCkucmVkTXVsKHIpLnJlZElBZGQoZikucmVkSUFkZCh0aGlzLmIpO3JldHVybiB0LnJlZFNxcigpLnJlZElTdWIoZCkuY21wbigwKT09PTB9O1AucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbihlLHIsdCl7Zm9yKHZhciBmPXRoaXMuX2VuZG9XbmFmVDEsZD10aGlzLl9lbmRvV25hZlQyLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHU9dGhpcy5fZW5kb1NwbGl0KHJbbl0pLHM9ZVtuXSxvPXMuX2dldEJldGEoKTt1LmsxLm5lZ2F0aXZlJiYodS5rMS5pbmVnKCkscz1zLm5lZyghMCkpLHUuazIubmVnYXRpdmUmJih1LmsyLmluZWcoKSxvPW8ubmVnKCEwKSksZltuKjJdPXMsZltuKjIrMV09byxkW24qMl09dS5rMSxkW24qMisxXT11LmsyfWZvcih2YXIgaD10aGlzLl93bmFmTXVsQWRkKDEsZixkLG4qMix0KSxhPTA7YTxuKjI7YSsrKWZbYV09bnVsbCxkW2FdPW51bGw7cmV0dXJuIGh9O2Z1bmN0aW9uIGcoaSxlLHIsdCl7RC5CYXNlUG9pbnQuY2FsbCh0aGlzLGksImFmZmluZSIpLGU9PT1udWxsJiZyPT09bnVsbD8odGhpcy54PW51bGwsdGhpcy55PW51bGwsdGhpcy5pbmY9ITApOih0aGlzLng9bmV3IGIoZSwxNiksdGhpcy55PW5ldyBiKHIsMTYpLHQmJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9JChnLEQuQmFzZVBvaW50KTtQLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihlLHIsdCl7cmV0dXJuIG5ldyBnKHRoaXMsZSxyLHQpfTtQLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKGUscil7cmV0dXJuIGcuZnJvbUpTT04odGhpcyxlLHIpfTtnLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe2lmKHRoaXMuY3VydmUuZW5kbyl7dmFyIGU9dGhpcy5wcmVjb21wdXRlZDtpZihlJiZlLmJldGEpcmV0dXJuIGUuYmV0YTt2YXIgcj10aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWRNdWwodGhpcy5jdXJ2ZS5lbmRvLmJldGEpLHRoaXMueSk7aWYoZSl7dmFyIHQ9dGhpcy5jdXJ2ZSxmPWZ1bmN0aW9uKGQpe3JldHVybiB0LnBvaW50KGQueC5yZWRNdWwodC5lbmRvLmJldGEpLGQueSl9O2UuYmV0YT1yLHIucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6ZS5uYWYmJnt3bmQ6ZS5uYWYud25kLHBvaW50czplLm5hZi5wb2ludHMubWFwKGYpfSxkb3VibGVzOmUuZG91YmxlcyYme3N0ZXA6ZS5kb3VibGVzLnN0ZXAscG9pbnRzOmUuZG91Ymxlcy5wb2ludHMubWFwKGYpfX19cmV0dXJuIHJ9fTtnLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfTtnLmZyb21KU09OPWZ1bmN0aW9uKGUscix0KXt0eXBlb2Ygcj09InN0cmluZyImJihyPUpTT04ucGFyc2UocikpO3ZhciBmPWUucG9pbnQoclswXSxyWzFdLHQpO2lmKCFyWzJdKXJldHVybiBmO2Z1bmN0aW9uIGQodSl7cmV0dXJuIGUucG9pbnQodVswXSx1WzFdLHQpfXZhciBuPXJbMl07cmV0dXJuIGYucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxkb3VibGVzOm4uZG91YmxlcyYme3N0ZXA6bi5kb3VibGVzLnN0ZXAscG9pbnRzOltmXS5jb25jYXQobi5kb3VibGVzLnBvaW50cy5tYXAoZCkpfSxuYWY6bi5uYWYmJnt3bmQ6bi5uYWYud25kLHBvaW50czpbZl0uY29uY2F0KG4ubmFmLnBvaW50cy5tYXAoZCkpfX0sZn07Zy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifTtnLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfTtnLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5pbmYpcmV0dXJuIGU7aWYoZS5pbmYpcmV0dXJuIHRoaXM7aWYodGhpcy5lcShlKSlyZXR1cm4gdGhpcy5kYmwoKTtpZih0aGlzLm5lZygpLmVxKGUpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7aWYodGhpcy54LmNtcChlLngpPT09MClyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciByPXRoaXMueS5yZWRTdWIoZS55KTtyLmNtcG4oMCkhPT0wJiYocj1yLnJlZE11bCh0aGlzLngucmVkU3ViKGUueCkucmVkSW52bSgpKSk7dmFyIHQ9ci5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueCkucmVkSVN1YihlLngpLGY9ci5yZWRNdWwodGhpcy54LnJlZFN1Yih0KSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHQsZil9O2cucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciBlPXRoaXMueS5yZWRBZGQodGhpcy55KTtpZihlLmNtcG4oMCk9PT0wKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIHI9dGhpcy5jdXJ2ZS5hLHQ9dGhpcy54LnJlZFNxcigpLGY9ZS5yZWRJbnZtKCksZD10LnJlZEFkZCh0KS5yZWRJQWRkKHQpLnJlZElBZGQocikucmVkTXVsKGYpLG49ZC5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksdT1kLnJlZE11bCh0aGlzLngucmVkU3ViKG4pKS5yZWRJU3ViKHRoaXMueSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQobix1KX07Zy5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfTtnLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9tUmVkKCl9O2cucHJvdG90eXBlLm11bD1mdW5jdGlvbihlKXtyZXR1cm4gZT1uZXcgYihlLDE2KSx0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuX2hhc0RvdWJsZXMoZSk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxlKTp0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoW3RoaXNdLFtlXSk6dGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLGUpfTtnLnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oZSxyLHQpe3ZhciBmPVt0aGlzLHJdLGQ9W2UsdF07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChmLGQpOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxmLGQsMil9O2cucHJvdG90eXBlLmptdWxBZGQ9ZnVuY3Rpb24oZSxyLHQpe3ZhciBmPVt0aGlzLHJdLGQ9W2UsdF07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChmLGQsITApOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxmLGQsMiwhMCl9O2cucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzPT09ZXx8dGhpcy5pbmY9PT1lLmluZiYmKHRoaXMuaW5mfHx0aGlzLnguY21wKGUueCk9PT0wJiZ0aGlzLnkuY21wKGUueSk9PT0wKX07Zy5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzO3ZhciByPXRoaXMuY3VydmUucG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSk7aWYoZSYmdGhpcy5wcmVjb21wdXRlZCl7dmFyIHQ9dGhpcy5wcmVjb21wdXRlZCxmPWZ1bmN0aW9uKGQpe3JldHVybiBkLm5lZygpfTtyLnByZWNvbXB1dGVkPXtuYWY6dC5uYWYmJnt3bmQ6dC5uYWYud25kLHBvaW50czp0Lm5hZi5wb2ludHMubWFwKGYpfSxkb3VibGVzOnQuZG91YmxlcyYme3N0ZXA6dC5kb3VibGVzLnN0ZXAscG9pbnRzOnQuZG91Ymxlcy5wb2ludHMubWFwKGYpfX19cmV0dXJuIHJ9O2cucHJvdG90eXBlLnRvSj1mdW5jdGlvbigpe2lmKHRoaXMuaW5mKXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk7dmFyIGU9dGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueSx0aGlzLmN1cnZlLm9uZSk7cmV0dXJuIGV9O2Z1bmN0aW9uIHgoaSxlLHIsdCl7RC5CYXNlUG9pbnQuY2FsbCh0aGlzLGksImphY29iaWFuIiksZT09PW51bGwmJnI9PT1udWxsJiZ0PT09bnVsbD8odGhpcy54PXRoaXMuY3VydmUub25lLHRoaXMueT10aGlzLmN1cnZlLm9uZSx0aGlzLno9bmV3IGIoMCkpOih0aGlzLng9bmV3IGIoZSwxNiksdGhpcy55PW5ldyBiKHIsMTYpLHRoaXMuej1uZXcgYih0LDE2KSksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56T25lPXRoaXMuej09PXRoaXMuY3VydmUub25lfSQoeCxELkJhc2VQb2ludCk7UC5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uKGUscix0KXtyZXR1cm4gbmV3IHgodGhpcyxlLHIsdCl9O3gucHJvdG90eXBlLnRvUD1mdW5jdGlvbigpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIGU9dGhpcy56LnJlZEludm0oKSxyPWUucmVkU3FyKCksdD10aGlzLngucmVkTXVsKHIpLGY9dGhpcy55LnJlZE11bChyKS5yZWRNdWwoZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQodCxmKX07eC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCksdGhpcy56KX07eC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiBlO2lmKGUuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO3ZhciByPWUuei5yZWRTcXIoKSx0PXRoaXMuei5yZWRTcXIoKSxmPXRoaXMueC5yZWRNdWwociksZD1lLngucmVkTXVsKHQpLG49dGhpcy55LnJlZE11bChyLnJlZE11bChlLnopKSx1PWUueS5yZWRNdWwodC5yZWRNdWwodGhpcy56KSkscz1mLnJlZFN1YihkKSxvPW4ucmVkU3ViKHUpO2lmKHMuY21wbigwKT09PTApcmV0dXJuIG8uY21wbigwKSE9PTA/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIGg9cy5yZWRTcXIoKSxhPWgucmVkTXVsKHMpLGM9Zi5yZWRNdWwoaCksdj1vLnJlZFNxcigpLnJlZElBZGQoYSkucmVkSVN1YihjKS5yZWRJU3ViKGMpLGw9by5yZWRNdWwoYy5yZWRJU3ViKHYpKS5yZWRJU3ViKG4ucmVkTXVsKGEpKSxwPXRoaXMuei5yZWRNdWwoZS56KS5yZWRNdWwocyk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHYsbCxwKX07eC5wcm90b3R5cGUubWl4ZWRBZGQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIGUudG9KKCk7aWYoZS5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIHI9dGhpcy56LnJlZFNxcigpLHQ9dGhpcy54LGY9ZS54LnJlZE11bChyKSxkPXRoaXMueSxuPWUueS5yZWRNdWwocikucmVkTXVsKHRoaXMueiksdT10LnJlZFN1YihmKSxzPWQucmVkU3ViKG4pO2lmKHUuY21wbigwKT09PTApcmV0dXJuIHMuY21wbigwKSE9PTA/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIG89dS5yZWRTcXIoKSxoPW8ucmVkTXVsKHUpLGE9dC5yZWRNdWwobyksYz1zLnJlZFNxcigpLnJlZElBZGQoaCkucmVkSVN1YihhKS5yZWRJU3ViKGEpLHY9cy5yZWRNdWwoYS5yZWRJU3ViKGMpKS5yZWRJU3ViKGQucmVkTXVsKGgpKSxsPXRoaXMuei5yZWRNdWwodSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGMsdixsKX07eC5wcm90b3R5cGUuZGJscD1mdW5jdGlvbihlKXtpZihlPT09MClyZXR1cm4gdGhpcztpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcztpZighZSlyZXR1cm4gdGhpcy5kYmwoKTt2YXIgcjtpZih0aGlzLmN1cnZlLnplcm9BfHx0aGlzLmN1cnZlLnRocmVlQSl7dmFyIHQ9dGhpcztmb3Iocj0wO3I8ZTtyKyspdD10LmRibCgpO3JldHVybiB0fXZhciBmPXRoaXMuY3VydmUuYSxkPXRoaXMuY3VydmUudGludixuPXRoaXMueCx1PXRoaXMueSxzPXRoaXMueixvPXMucmVkU3FyKCkucmVkU3FyKCksaD11LnJlZEFkZCh1KTtmb3Iocj0wO3I8ZTtyKyspe3ZhciBhPW4ucmVkU3FyKCksYz1oLnJlZFNxcigpLHY9Yy5yZWRTcXIoKSxsPWEucmVkQWRkKGEpLnJlZElBZGQoYSkucmVkSUFkZChmLnJlZE11bChvKSkscD1uLnJlZE11bChjKSxtPWwucmVkU3FyKCkucmVkSVN1YihwLnJlZEFkZChwKSkseT1wLnJlZElTdWIobSksUz1sLnJlZE11bCh5KTtTPVMucmVkSUFkZChTKS5yZWRJU3ViKHYpO3ZhciBqPWgucmVkTXVsKHMpO3IrMTxlJiYobz1vLnJlZE11bCh2KSksbj1tLHM9aixoPVN9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KG4saC5yZWRNdWwoZCkscyl9O3gucHJvdG90eXBlLmRibD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuemVyb0E/dGhpcy5femVyb0RibCgpOnRoaXMuY3VydmUudGhyZWVBP3RoaXMuX3RocmVlRGJsKCk6dGhpcy5fZGJsKCl9O3gucHJvdG90eXBlLl96ZXJvRGJsPWZ1bmN0aW9uKCl7dmFyIGUscix0O2lmKHRoaXMuek9uZSl7dmFyIGY9dGhpcy54LnJlZFNxcigpLGQ9dGhpcy55LnJlZFNxcigpLG49ZC5yZWRTcXIoKSx1PXRoaXMueC5yZWRBZGQoZCkucmVkU3FyKCkucmVkSVN1YihmKS5yZWRJU3ViKG4pO3U9dS5yZWRJQWRkKHUpO3ZhciBzPWYucmVkQWRkKGYpLnJlZElBZGQoZiksbz1zLnJlZFNxcigpLnJlZElTdWIodSkucmVkSVN1Yih1KSxoPW4ucmVkSUFkZChuKTtoPWgucmVkSUFkZChoKSxoPWgucmVkSUFkZChoKSxlPW8scj1zLnJlZE11bCh1LnJlZElTdWIobykpLnJlZElTdWIoaCksdD10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgYT10aGlzLngucmVkU3FyKCksYz10aGlzLnkucmVkU3FyKCksdj1jLnJlZFNxcigpLGw9dGhpcy54LnJlZEFkZChjKS5yZWRTcXIoKS5yZWRJU3ViKGEpLnJlZElTdWIodik7bD1sLnJlZElBZGQobCk7dmFyIHA9YS5yZWRBZGQoYSkucmVkSUFkZChhKSxtPXAucmVkU3FyKCkseT12LnJlZElBZGQodik7eT15LnJlZElBZGQoeSkseT15LnJlZElBZGQoeSksZT1tLnJlZElTdWIobCkucmVkSVN1YihsKSxyPXAucmVkTXVsKGwucmVkSVN1YihlKSkucmVkSVN1Yih5KSx0PXRoaXMueS5yZWRNdWwodGhpcy56KSx0PXQucmVkSUFkZCh0KX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoZSxyLHQpfTt4LnByb3RvdHlwZS5fdGhyZWVEYmw9ZnVuY3Rpb24oKXt2YXIgZSxyLHQ7aWYodGhpcy56T25lKXt2YXIgZj10aGlzLngucmVkU3FyKCksZD10aGlzLnkucmVkU3FyKCksbj1kLnJlZFNxcigpLHU9dGhpcy54LnJlZEFkZChkKS5yZWRTcXIoKS5yZWRJU3ViKGYpLnJlZElTdWIobik7dT11LnJlZElBZGQodSk7dmFyIHM9Zi5yZWRBZGQoZikucmVkSUFkZChmKS5yZWRJQWRkKHRoaXMuY3VydmUuYSksbz1zLnJlZFNxcigpLnJlZElTdWIodSkucmVkSVN1Yih1KTtlPW87dmFyIGg9bi5yZWRJQWRkKG4pO2g9aC5yZWRJQWRkKGgpLGg9aC5yZWRJQWRkKGgpLHI9cy5yZWRNdWwodS5yZWRJU3ViKG8pKS5yZWRJU3ViKGgpLHQ9dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIGE9dGhpcy56LnJlZFNxcigpLGM9dGhpcy55LnJlZFNxcigpLHY9dGhpcy54LnJlZE11bChjKSxsPXRoaXMueC5yZWRTdWIoYSkucmVkTXVsKHRoaXMueC5yZWRBZGQoYSkpO2w9bC5yZWRBZGQobCkucmVkSUFkZChsKTt2YXIgcD12LnJlZElBZGQodik7cD1wLnJlZElBZGQocCk7dmFyIG09cC5yZWRBZGQocCk7ZT1sLnJlZFNxcigpLnJlZElTdWIobSksdD10aGlzLnkucmVkQWRkKHRoaXMueikucmVkU3FyKCkucmVkSVN1YihjKS5yZWRJU3ViKGEpO3ZhciB5PWMucmVkU3FyKCk7eT15LnJlZElBZGQoeSkseT15LnJlZElBZGQoeSkseT15LnJlZElBZGQoeSkscj1sLnJlZE11bChwLnJlZElTdWIoZSkpLnJlZElTdWIoeSl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGUscix0KX07eC5wcm90b3R5cGUuX2RibD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuY3VydmUuYSxyPXRoaXMueCx0PXRoaXMueSxmPXRoaXMueixkPWYucmVkU3FyKCkucmVkU3FyKCksbj1yLnJlZFNxcigpLHU9dC5yZWRTcXIoKSxzPW4ucmVkQWRkKG4pLnJlZElBZGQobikucmVkSUFkZChlLnJlZE11bChkKSksbz1yLnJlZEFkZChyKTtvPW8ucmVkSUFkZChvKTt2YXIgaD1vLnJlZE11bCh1KSxhPXMucmVkU3FyKCkucmVkSVN1YihoLnJlZEFkZChoKSksYz1oLnJlZElTdWIoYSksdj11LnJlZFNxcigpO3Y9di5yZWRJQWRkKHYpLHY9di5yZWRJQWRkKHYpLHY9di5yZWRJQWRkKHYpO3ZhciBsPXMucmVkTXVsKGMpLnJlZElTdWIodikscD10LnJlZEFkZCh0KS5yZWRNdWwoZik7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGEsbCxwKX07eC5wcm90b3R5cGUudHJwbD1mdW5jdGlvbigpe2lmKCF0aGlzLmN1cnZlLnplcm9BKXJldHVybiB0aGlzLmRibCgpLmFkZCh0aGlzKTt2YXIgZT10aGlzLngucmVkU3FyKCkscj10aGlzLnkucmVkU3FyKCksdD10aGlzLnoucmVkU3FyKCksZj1yLnJlZFNxcigpLGQ9ZS5yZWRBZGQoZSkucmVkSUFkZChlKSxuPWQucmVkU3FyKCksdT10aGlzLngucmVkQWRkKHIpLnJlZFNxcigpLnJlZElTdWIoZSkucmVkSVN1YihmKTt1PXUucmVkSUFkZCh1KSx1PXUucmVkQWRkKHUpLnJlZElBZGQodSksdT11LnJlZElTdWIobik7dmFyIHM9dS5yZWRTcXIoKSxvPWYucmVkSUFkZChmKTtvPW8ucmVkSUFkZChvKSxvPW8ucmVkSUFkZChvKSxvPW8ucmVkSUFkZChvKTt2YXIgaD1kLnJlZElBZGQodSkucmVkU3FyKCkucmVkSVN1YihuKS5yZWRJU3ViKHMpLnJlZElTdWIobyksYT1yLnJlZE11bChoKTthPWEucmVkSUFkZChhKSxhPWEucmVkSUFkZChhKTt2YXIgYz10aGlzLngucmVkTXVsKHMpLnJlZElTdWIoYSk7Yz1jLnJlZElBZGQoYyksYz1jLnJlZElBZGQoYyk7dmFyIHY9dGhpcy55LnJlZE11bChoLnJlZE11bChvLnJlZElTdWIoaCkpLnJlZElTdWIodS5yZWRNdWwocykpKTt2PXYucmVkSUFkZCh2KSx2PXYucmVkSUFkZCh2KSx2PXYucmVkSUFkZCh2KTt2YXIgbD10aGlzLnoucmVkQWRkKHUpLnJlZFNxcigpLnJlZElTdWIodCkucmVkSVN1YihzKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoYyx2LGwpfTt4LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZT1uZXcgYihlLHIpLHRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxlKX07eC5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZSl7aWYoZS50eXBlPT09ImFmZmluZSIpcmV0dXJuIHRoaXMuZXEoZS50b0ooKSk7aWYodGhpcz09PWUpcmV0dXJuITA7dmFyIHI9dGhpcy56LnJlZFNxcigpLHQ9ZS56LnJlZFNxcigpO2lmKHRoaXMueC5yZWRNdWwodCkucmVkSVN1YihlLngucmVkTXVsKHIpKS5jbXBuKDApIT09MClyZXR1cm4hMTt2YXIgZj1yLnJlZE11bCh0aGlzLnopLGQ9dC5yZWRNdWwoZS56KTtyZXR1cm4gdGhpcy55LnJlZE11bChkKS5yZWRJU3ViKGUueS5yZWRNdWwoZikpLmNtcG4oMCk9PT0wfTt4LnByb3RvdHlwZS5lcVhUb1A9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy56LnJlZFNxcigpLHQ9ZS50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKHIpO2lmKHRoaXMueC5jbXAodCk9PT0wKXJldHVybiEwO2Zvcih2YXIgZj1lLmNsb25lKCksZD10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHIpOzspe2lmKGYuaWFkZCh0aGlzLmN1cnZlLm4pLGYuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuITE7aWYodC5yZWRJQWRkKGQpLHRoaXMueC5jbXAodCk9PT0wKXJldHVybiEwfX07eC5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIEpQb2ludCBJbmZpbml0eT4iOiI8RUMgSlBvaW50IHg6ICIrdGhpcy54LnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei50b1N0cmluZygxNiwyKSsiPiJ9O3gucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy56LmNtcG4oMCk9PT0wfTt2YXIgSj1LKGZ1bmN0aW9uKGksZSl7InVzZSBzdHJpY3QiO3ZhciByPWU7ci5iYXNlPUQsci5zaG9ydD1iZSxyLm1vbnQ9bnVsbCxyLmVkd2FyZHM9bnVsbH0pLEM9SyhmdW5jdGlvbihpLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lLHQ9dy5hc3NlcnQ7ZnVuY3Rpb24gZih1KXt1LnR5cGU9PT0ic2hvcnQiP3RoaXMuY3VydmU9bmV3IEouc2hvcnQodSk6dS50eXBlPT09ImVkd2FyZHMiP3RoaXMuY3VydmU9bmV3IEouZWR3YXJkcyh1KTp0aGlzLmN1cnZlPW5ldyBKLm1vbnQodSksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMuaGFzaD11Lmhhc2gsdCh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLHQodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBjdXJ2ZSwgRypOICE9IE8iKX1yLlByZXNldEN1cnZlPWY7ZnVuY3Rpb24gZCh1LHMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHUse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBvPW5ldyBmKHMpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocix1LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpvfSksb319KX1kKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDp6LnNoYTI1NixnUmVkOiExLGc6WyIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxkKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDp6LnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAxMTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxkKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6ei5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksZCgicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOnouc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0pLGQoInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOSIsaGFzaDp6LnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwIl19KSxkKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6ei5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksZCgiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOnouc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjU4Il19KTt2YXIgbjt0cnl7bj1udWxsLmNyYXNoKCl9Y2F0Y2h7bj12b2lkIDB9ZCgic2VjcDI1NmsxIix7dHlwZToic2hvcnQiLHByaW1lOiJrMjU2IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIsYToiMCIsYjoiNyIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgYmFhZWRjZTYgYWY0OGEwM2IgYmZkMjVlOGMgZDAzNjQxNDEiLGg6IjEiLGhhc2g6ei5zaGEyNTYsYmV0YToiN2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIsbGFtYmRhOiI1MzYzYWQ0Y2MwNWMzMGUwYTUyNjFjMDI4ODEyNjQ1YTEyMmUyMmVhMjA4MTY2NzhkZjAyOTY3YzFiMjNiZDcyIixiYXNpczpbe2E6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1IixiOiItZTQ0MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMifSx7YToiMTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IixiOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSJ9XSxnUmVkOiExLGc6WyI3OWJlNjY3ZWY5ZGNiYmFjNTVhMDYyOTVjZTg3MGIwNzAyOWJmY2RiMmRjZTI4ZDk1OWYyODE1YjE2ZjgxNzk4IiwiNDgzYWRhNzcyNmEzYzQ2NTVkYTRmYmZjMGUxMTA4YThmZDE3YjQ0OGE2ODU1NDE5OWM0N2QwOGZmYjEwZDRiOCIsbl19KX0pO2Z1bmN0aW9uIE4oaSl7aWYoISh0aGlzIGluc3RhbmNlb2YgTikpcmV0dXJuIG5ldyBOKGkpO3RoaXMuaGFzaD1pLmhhc2gsdGhpcy5wcmVkUmVzaXN0PSEhaS5wcmVkUmVzaXN0LHRoaXMub3V0TGVuPXRoaXMuaGFzaC5vdXRTaXplLHRoaXMubWluRW50cm9weT1pLm1pbkVudHJvcHl8fHRoaXMuaGFzaC5obWFjU3RyZW5ndGgsdGhpcy5fcmVzZWVkPW51bGwsdGhpcy5yZXNlZWRJbnRlcnZhbD1udWxsLHRoaXMuSz1udWxsLHRoaXMuVj1udWxsO3ZhciBlPU0udG9BcnJheShpLmVudHJvcHksaS5lbnRyb3B5RW5jfHwiaGV4Iikscj1NLnRvQXJyYXkoaS5ub25jZSxpLm5vbmNlRW5jfHwiaGV4IiksdD1NLnRvQXJyYXkoaS5wZXJzLGkucGVyc0VuY3x8ImhleCIpO1EoZS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX2luaXQoZSxyLHQpfXZhciBhZT1OO04ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGUscix0KXt2YXIgZj1lLmNvbmNhdChyKS5jb25jYXQodCk7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0aGlzLlY9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpO2Zvcih2YXIgZD0wO2Q8dGhpcy5WLmxlbmd0aDtkKyspdGhpcy5LW2RdPTAsdGhpcy5WW2RdPTE7dGhpcy5fdXBkYXRlKGYpLHRoaXMuX3Jlc2VlZD0xLHRoaXMucmVzZWVkSW50ZXJ2YWw9MjgxNDc0OTc2NzEwNjU2fTtOLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbigpe3JldHVybiBuZXcgei5obWFjKHRoaXMuaGFzaCx0aGlzLkspfTtOLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS51cGRhdGUoWzBdKTtlJiYocj1yLnVwZGF0ZShlKSksdGhpcy5LPXIuZGlnZXN0KCksdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxlJiYodGhpcy5LPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS51cGRhdGUoWzFdKS51cGRhdGUoZSkuZGlnZXN0KCksdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSl9O04ucHJvdG90eXBlLnJlc2VlZD1mdW5jdGlvbihlLHIsdCxmKXt0eXBlb2YgciE9InN0cmluZyImJihmPXQsdD1yLHI9bnVsbCksZT1NLnRvQXJyYXkoZSxyKSx0PU0udG9BcnJheSh0LGYpLFEoZS5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX3VwZGF0ZShlLmNvbmNhdCh0fHxbXSkpLHRoaXMuX3Jlc2VlZD0xfTtOLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihlLHIsdCxmKXtpZih0aGlzLl9yZXNlZWQ+dGhpcy5yZXNlZWRJbnRlcnZhbCl0aHJvdyBuZXcgRXJyb3IoIlJlc2VlZCBpcyByZXF1aXJlZCIpO3R5cGVvZiByIT0ic3RyaW5nIiYmKGY9dCx0PXIscj1udWxsKSx0JiYodD1NLnRvQXJyYXkodCxmfHwiaGV4IiksdGhpcy5fdXBkYXRlKHQpKTtmb3IodmFyIGQ9W107ZC5sZW5ndGg8ZTspdGhpcy5WPXRoaXMuX2htYWMoKS51cGRhdGUodGhpcy5WKS5kaWdlc3QoKSxkPWQuY29uY2F0KHRoaXMuVik7dmFyIG49ZC5zbGljZSgwLGUpO3JldHVybiB0aGlzLl91cGRhdGUodCksdGhpcy5fcmVzZWVkKyssTS5lbmNvZGUobixyKX07dmFyIFo9dy5hc3NlcnQ7ZnVuY3Rpb24gQShpLGUpe3RoaXMuZWM9aSx0aGlzLnByaXY9bnVsbCx0aGlzLnB1Yj1udWxsLGUucHJpdiYmdGhpcy5faW1wb3J0UHJpdmF0ZShlLnByaXYsZS5wcml2RW5jKSxlLnB1YiYmdGhpcy5faW1wb3J0UHVibGljKGUucHViLGUucHViRW5jKX12YXIgZWU9QTtBLmZyb21QdWJsaWM9ZnVuY3Rpb24oZSxyLHQpe3JldHVybiByIGluc3RhbmNlb2YgQT9yOm5ldyBBKGUse3B1YjpyLHB1YkVuYzp0fSl9O0EuZnJvbVByaXZhdGU9ZnVuY3Rpb24oZSxyLHQpe3JldHVybiByIGluc3RhbmNlb2YgQT9yOm5ldyBBKGUse3ByaXY6cixwcml2RW5jOnR9KX07QS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmdldFB1YmxpYygpO3JldHVybiBlLmlzSW5maW5pdHkoKT97cmVzdWx0OiExLHJlYXNvbjoiSW52YWxpZCBwdWJsaWMga2V5In06ZS52YWxpZGF0ZSgpP2UubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITAscmVhc29uOm51bGx9OntyZXN1bHQ6ITEscmVhc29uOiJQdWJsaWMga2V5ICogTiAhPSBPIn06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgaXMgbm90IGEgcG9pbnQifX07QS5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKGUscil7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmKHI9ZSxlPW51bGwpLHRoaXMucHVifHwodGhpcy5wdWI9dGhpcy5lYy5nLm11bCh0aGlzLnByaXYpKSxyP3RoaXMucHViLmVuY29kZShyLGUpOnRoaXMucHVifTtBLnByb3RvdHlwZS5nZXRQcml2YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09ImhleCI/dGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpOnRoaXMucHJpdn07QS5wcm90b3R5cGUuX2ltcG9ydFByaXZhdGU9ZnVuY3Rpb24oZSxyKXt0aGlzLnByaXY9bmV3IGIoZSxyfHwxNiksdGhpcy5wcml2PXRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubil9O0EucHJvdG90eXBlLl9pbXBvcnRQdWJsaWM9ZnVuY3Rpb24oZSxyKXtpZihlLnh8fGUueSl7dGhpcy5lYy5jdXJ2ZS50eXBlPT09Im1vbnQiP1ooZS54LCJOZWVkIHggY29vcmRpbmF0ZSIpOih0aGlzLmVjLmN1cnZlLnR5cGU9PT0ic2hvcnQifHx0aGlzLmVjLmN1cnZlLnR5cGU9PT0iZWR3YXJkcyIpJiZaKGUueCYmZS55LCJOZWVkIGJvdGggeCBhbmQgeSBjb29yZGluYXRlIiksdGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5wb2ludChlLngsZS55KTtyZXR1cm59dGhpcy5wdWI9dGhpcy5lYy5jdXJ2ZS5kZWNvZGVQb2ludChlLHIpfTtBLnByb3RvdHlwZS5kZXJpdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsaWRhdGUoKXx8WihlLnZhbGlkYXRlKCksInB1YmxpYyBwb2ludCBub3QgdmFsaWRhdGVkIiksZS5tdWwodGhpcy5wcml2KS5nZXRYKCl9O0EucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZSxyLHQpe3JldHVybiB0aGlzLmVjLnNpZ24oZSx0aGlzLHIsdCl9O0EucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihlLHIsdCl7cmV0dXJuIHRoaXMuZWMudmVyaWZ5KGUscix0aGlzLHZvaWQgMCx0KX07QS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiI8S2V5IHByaXY6ICIrKHRoaXMucHJpdiYmdGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpKSsiIHB1YjogIisodGhpcy5wdWImJnRoaXMucHViLmluc3BlY3QoKSkrIiA+In07dmFyIHllPXcuYXNzZXJ0O2Z1bmN0aW9uIFgoaSxlKXtpZihpIGluc3RhbmNlb2YgWClyZXR1cm4gaTt0aGlzLl9pbXBvcnRERVIoaSxlKXx8KHllKGkuciYmaS5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3IGIoaS5yLDE2KSx0aGlzLnM9bmV3IGIoaS5zLDE2KSxpLnJlY292ZXJ5UGFyYW09PT12b2lkIDA/dGhpcy5yZWNvdmVyeVBhcmFtPW51bGw6dGhpcy5yZWNvdmVyeVBhcmFtPWkucmVjb3ZlcnlQYXJhbSl9dmFyIFc9WDtmdW5jdGlvbiBtZSgpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiBVKGksZSl7dmFyIHI9aVtlLnBsYWNlKytdO2lmKCEociYxMjgpKXJldHVybiByO3ZhciB0PXImMTU7aWYodD09PTB8fHQ+NHx8aVtlLnBsYWNlXT09PTApcmV0dXJuITE7Zm9yKHZhciBmPTAsZD0wLG49ZS5wbGFjZTtkPHQ7ZCsrLG4rKylmPDw9OCxmfD1pW25dLGY+Pj49MDtyZXR1cm4gZjw9MTI3PyExOihlLnBsYWNlPW4sZil9ZnVuY3Rpb24gdWUoaSl7Zm9yKHZhciBlPTAscj1pLmxlbmd0aC0xOyFpW2VdJiYhKGlbZSsxXSYxMjgpJiZlPHI7KWUrKztyZXR1cm4gZT09PTA/aTppLnNsaWNlKGUpfVgucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24oZSxyKXtlPXcudG9BcnJheShlLHIpO3ZhciB0PW5ldyBtZTtpZihlW3QucGxhY2UrK10hPT00OClyZXR1cm4hMTt2YXIgZj1VKGUsdCk7aWYoZj09PSExfHxmK3QucGxhY2UhPT1lLmxlbmd0aHx8ZVt0LnBsYWNlKytdIT09MilyZXR1cm4hMTt2YXIgZD1VKGUsdCk7aWYoZD09PSExfHwoZVt0LnBsYWNlXSYxMjgpIT09MClyZXR1cm4hMTt2YXIgbj1lLnNsaWNlKHQucGxhY2UsZCt0LnBsYWNlKTtpZih0LnBsYWNlKz1kLGVbdC5wbGFjZSsrXSE9PTIpcmV0dXJuITE7dmFyIHU9VShlLHQpO2lmKHU9PT0hMXx8ZS5sZW5ndGghPT11K3QucGxhY2V8fChlW3QucGxhY2VdJjEyOCkhPT0wKXJldHVybiExO3ZhciBzPWUuc2xpY2UodC5wbGFjZSx1K3QucGxhY2UpO2lmKG5bMF09PT0wKWlmKG5bMV0mMTI4KW49bi5zbGljZSgxKTtlbHNlIHJldHVybiExO2lmKHNbMF09PT0wKWlmKHNbMV0mMTI4KXM9cy5zbGljZSgxKTtlbHNlIHJldHVybiExO3JldHVybiB0aGlzLnI9bmV3IGIobiksdGhpcy5zPW5ldyBiKHMpLHRoaXMucmVjb3ZlcnlQYXJhbT1udWxsLCEwfTtmdW5jdGlvbiBHKGksZSl7aWYoZTwxMjgpe2kucHVzaChlKTtyZXR1cm59dmFyIHI9MSsoTWF0aC5sb2coZSkvTWF0aC5MTjI+Pj4zKTtmb3IoaS5wdXNoKHJ8MTI4KTstLXI7KWkucHVzaChlPj4+KHI8PDMpJjI1NSk7aS5wdXNoKGUpfVgucHJvdG90eXBlLnRvREVSPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuci50b0FycmF5KCksdD10aGlzLnMudG9BcnJheSgpO2ZvcihyWzBdJjEyOCYmKHI9WzBdLmNvbmNhdChyKSksdFswXSYxMjgmJih0PVswXS5jb25jYXQodCkpLHI9dWUociksdD11ZSh0KTshdFswXSYmISh0WzFdJjEyOCk7KXQ9dC5zbGljZSgxKTt2YXIgZj1bMl07RyhmLHIubGVuZ3RoKSxmPWYuY29uY2F0KHIpLGYucHVzaCgyKSxHKGYsdC5sZW5ndGgpO3ZhciBkPWYuY29uY2F0KHQpLG49WzQ4XTtyZXR1cm4gRyhuLGQubGVuZ3RoKSxuPW4uY29uY2F0KGQpLHcuZW5jb2RlKG4sZSl9O3ZhciBnZT0oZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIil9KSxPPXcuYXNzZXJ0O2Z1bmN0aW9uIEkoaSl7aWYoISh0aGlzIGluc3RhbmNlb2YgSSkpcmV0dXJuIG5ldyBJKGkpO3R5cGVvZiBpPT0ic3RyaW5nIiYmKE8oT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEMsaSksIlVua25vd24gY3VydmUgIitpKSxpPUNbaV0pLGkgaW5zdGFuY2VvZiBDLlByZXNldEN1cnZlJiYoaT17Y3VydmU6aX0pLHRoaXMuY3VydmU9aS5jdXJ2ZS5jdXJ2ZSx0aGlzLm49dGhpcy5jdXJ2ZS5uLHRoaXMubmg9dGhpcy5uLnVzaHJuKDEpLHRoaXMuZz10aGlzLmN1cnZlLmcsdGhpcy5nPWkuY3VydmUuZyx0aGlzLmcucHJlY29tcHV0ZShpLmN1cnZlLm4uYml0TGVuZ3RoKCkrMSksdGhpcy5oYXNoPWkuaGFzaHx8aS5jdXJ2ZS5oYXNofXZhciB4ZT1JO0kucHJvdG90eXBlLmtleVBhaXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBlZSh0aGlzLGUpfTtJLnByb3RvdHlwZS5rZXlGcm9tUHJpdmF0ZT1mdW5jdGlvbihlLHIpe3JldHVybiBlZS5mcm9tUHJpdmF0ZSh0aGlzLGUscil9O0kucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZWUuZnJvbVB1YmxpYyh0aGlzLGUscil9O0kucHJvdG90eXBlLmdlbktleVBhaXI9ZnVuY3Rpb24oZSl7ZXx8KGU9e30pO2Zvcih2YXIgcj1uZXcgYWUoe2hhc2g6dGhpcy5oYXNoLHBlcnM6ZS5wZXJzLHBlcnNFbmM6ZS5wZXJzRW5jfHwidXRmOCIsZW50cm9weTplLmVudHJvcHl8fGdlKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlFbmM6ZS5lbnRyb3B5JiZlLmVudHJvcHlFbmN8fCJ1dGY4Iixub25jZTp0aGlzLm4udG9BcnJheSgpfSksdD10aGlzLm4uYnl0ZUxlbmd0aCgpLGY9dGhpcy5uLnN1YihuZXcgYigyKSk7Oyl7dmFyIGQ9bmV3IGIoci5nZW5lcmF0ZSh0KSk7aWYoIShkLmNtcChmKT4wKSlyZXR1cm4gZC5pYWRkbigxKSx0aGlzLmtleUZyb21Qcml2YXRlKGQpfX07SS5wcm90b3R5cGUuX3RydW5jYXRlVG9OPWZ1bmN0aW9uKGUscix0KXt2YXIgZjtpZihiLmlzQk4oZSl8fHR5cGVvZiBlPT0ibnVtYmVyIillPW5ldyBiKGUsMTYpLGY9ZS5ieXRlTGVuZ3RoKCk7ZWxzZSBpZih0eXBlb2YgZT09Im9iamVjdCIpZj1lLmxlbmd0aCxlPW5ldyBiKGUsMTYpO2Vsc2V7dmFyIGQ9ZS50b1N0cmluZygpO2Y9ZC5sZW5ndGgrMT4+PjEsZT1uZXcgYihkLDE2KX10eXBlb2YgdCE9Im51bWJlciImJih0PWYqOCk7dmFyIG49dC10aGlzLm4uYml0TGVuZ3RoKCk7cmV0dXJuIG4+MCYmKGU9ZS51c2hybihuKSksIXImJmUuY21wKHRoaXMubik+PTA/ZS5zdWIodGhpcy5uKTplfTtJLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKGUscix0LGYpe2lmKHR5cGVvZiB0PT0ib2JqZWN0IiYmKGY9dCx0PW51bGwpLGZ8fChmPXt9KSx0eXBlb2YgZSE9InN0cmluZyImJnR5cGVvZiBlIT0ibnVtYmVyIiYmIWIuaXNCTihlKSl7Tyh0eXBlb2YgZT09Im9iamVjdCImJmUmJnR5cGVvZiBlLmxlbmd0aD09Im51bWJlciIsIkV4cGVjdGVkIG1lc3NhZ2UgdG8gYmUgYW4gYXJyYXktbGlrZSwgYSBoZXggc3RyaW5nLCBvciBhIEJOIGluc3RhbmNlIiksTyhlLmxlbmd0aD4+PjA9PT1lLmxlbmd0aCk7Zm9yKHZhciBkPTA7ZDxlLmxlbmd0aDtkKyspTygoZVtkXSYyNTUpPT09ZVtkXSl9cj10aGlzLmtleUZyb21Qcml2YXRlKHIsdCksZT10aGlzLl90cnVuY2F0ZVRvTihlLCExLGYubXNnQml0TGVuZ3RoKSxPKCFlLmlzTmVnKCksIkNhbiBub3Qgc2lnbiBhIG5lZ2F0aXZlIG1lc3NhZ2UiKTt2YXIgbj10aGlzLm4uYnl0ZUxlbmd0aCgpLHU9ci5nZXRQcml2YXRlKCkudG9BcnJheSgiYmUiLG4pLHM9ZS50b0FycmF5KCJiZSIsbik7TyhuZXcgYihzKS5lcShlKSwiQ2FuIG5vdCBzaWduIG1lc3NhZ2UiKTtmb3IodmFyIG89bmV3IGFlKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OnUsbm9uY2U6cyxwZXJzOmYucGVycyxwZXJzRW5jOmYucGVyc0VuY3x8InV0ZjgifSksaD10aGlzLm4uc3ViKG5ldyBiKDEpKSxhPTA7O2ErKyl7dmFyIGM9Zi5rP2YuayhhKTpuZXcgYihvLmdlbmVyYXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZihjPXRoaXMuX3RydW5jYXRlVG9OKGMsITApLCEoYy5jbXBuKDEpPD0wfHxjLmNtcChoKT49MCkpe3ZhciB2PXRoaXMuZy5tdWwoYyk7aWYoIXYuaXNJbmZpbml0eSgpKXt2YXIgbD12LmdldFgoKSxwPWwudW1vZCh0aGlzLm4pO2lmKHAuY21wbigwKSE9PTApe3ZhciBtPWMuaW52bSh0aGlzLm4pLm11bChwLm11bChyLmdldFByaXZhdGUoKSkuaWFkZChlKSk7aWYobT1tLnVtb2QodGhpcy5uKSxtLmNtcG4oMCkhPT0wKXt2YXIgeT0odi5nZXRZKCkuaXNPZGQoKT8xOjApfChsLmNtcChwKSE9PTA/MjowKTtyZXR1cm4gZi5jYW5vbmljYWwmJm0uY21wKHRoaXMubmgpPjAmJihtPXRoaXMubi5zdWIobSkseV49MSksbmV3IFcoe3I6cCxzOm0scmVjb3ZlcnlQYXJhbTp5fSl9fX19fX07SS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKGUscix0LGYsZCl7ZHx8KGQ9e30pLGU9dGhpcy5fdHJ1bmNhdGVUb04oZSwhMSxkLm1zZ0JpdExlbmd0aCksdD10aGlzLmtleUZyb21QdWJsaWModCxmKSxyPW5ldyBXKHIsImhleCIpO3ZhciBuPXIucix1PXIucztpZihuLmNtcG4oMSk8MHx8bi5jbXAodGhpcy5uKT49MHx8dS5jbXBuKDEpPDB8fHUuY21wKHRoaXMubik+PTApcmV0dXJuITE7dmFyIHM9dS5pbnZtKHRoaXMubiksbz1zLm11bChlKS51bW9kKHRoaXMubiksaD1zLm11bChuKS51bW9kKHRoaXMubiksYTtyZXR1cm4gdGhpcy5jdXJ2ZS5fbWF4d2VsbFRyaWNrPyhhPXRoaXMuZy5qbXVsQWRkKG8sdC5nZXRQdWJsaWMoKSxoKSxhLmlzSW5maW5pdHkoKT8hMTphLmVxWFRvUChuKSk6KGE9dGhpcy5nLm11bEFkZChvLHQuZ2V0UHVibGljKCksaCksYS5pc0luZmluaXR5KCk/ITE6YS5nZXRYKCkudW1vZCh0aGlzLm4pLmNtcChuKT09PTApfTtJLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKGksZSxyLHQpe08oKDMmcik9PT1yLCJUaGUgcmVjb3ZlcnkgcGFyYW0gaXMgbW9yZSB0aGFuIHR3byBiaXRzIiksZT1uZXcgVyhlLHQpO3ZhciBmPXRoaXMubixkPW5ldyBiKGkpLG49ZS5yLHU9ZS5zLHM9ciYxLG89cj4+MTtpZihuLmNtcCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKT49MCYmbyl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZSIpO28/bj10aGlzLmN1cnZlLnBvaW50RnJvbVgobi5hZGQodGhpcy5jdXJ2ZS5uKSxzKTpuPXRoaXMuY3VydmUucG9pbnRGcm9tWChuLHMpO3ZhciBoPWUuci5pbnZtKGYpLGE9Zi5zdWIoZCkubXVsKGgpLnVtb2QoZiksYz11Lm11bChoKS51bW9kKGYpO3JldHVybiB0aGlzLmcubXVsQWRkKGEsbixjKX07SS5wcm90b3R5cGUuZ2V0S2V5UmVjb3ZlcnlQYXJhbT1mdW5jdGlvbihpLGUscix0KXtpZihlPW5ldyBXKGUsdCksZS5yZWNvdmVyeVBhcmFtIT09bnVsbClyZXR1cm4gZS5yZWNvdmVyeVBhcmFtO2Zvcih2YXIgZj0wO2Y8NDtmKyspe3ZhciBkO3RyeXtkPXRoaXMucmVjb3ZlclB1YktleShpLGUsZil9Y2F0Y2h7Y29udGludWV9aWYoZC5lcShyKSlyZXR1cm4gZn10aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZhY3RvciIpfTt2YXIgQWU9SyhmdW5jdGlvbihpLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lO3IudmVyc2lvbj0iNi42LjEiLHIudXRpbHM9dyxyLnJhbmQ9KGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCIpfSksci5jdXJ2ZT1KLHIuY3VydmVzPUMsci5lYz14ZSxyLmVkZHNhPW51bGx9KSxvZT1BZS5lYztpbXBvcnR7YXJyYXlpZnkgYXMgcSxoZXhEYXRhTGVuZ3RoIGFzIFNlLGhleGxpZnkgYXMgZmUsaGV4WmVyb1BhZCBhcyByZSxzcGxpdFNpZ25hdHVyZSBhcyBjZX1mcm9tIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e2RlZmluZVJlYWRPbmx5IGFzIFR9ZnJvbSIvQGV0aGVyc3Byb2plY3QvcHJvcGVydGllc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e0xvZ2dlciBhcyB3ZX1mcm9tIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiO3ZhciBoZT0ic2lnbmluZy1rZXkvNS44LjAiO3ZhciBpZT1uZXcgd2UoaGUpLHRlPW51bGw7ZnVuY3Rpb24gUigpe3JldHVybiB0ZXx8KHRlPW5ldyBvZSgic2VjcDI1NmsxIikpLHRlfXZhciBuZT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtUKHRoaXMsImN1cnZlIiwic2VjcDI1NmsxIiksVCh0aGlzLCJwcml2YXRlS2V5IixmZShlKSksU2UodGhpcy5wcml2YXRlS2V5KSE9PTMyJiZpZS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgcHJpdmF0ZSBrZXkiLCJwcml2YXRlS2V5IiwiW1sgUkVEQUNURUQgXV0iKTtsZXQgcj1SKCkua2V5RnJvbVByaXZhdGUocSh0aGlzLnByaXZhdGVLZXkpKTtUKHRoaXMsInB1YmxpY0tleSIsIjB4IityLmdldFB1YmxpYyghMSwiaGV4IikpLFQodGhpcywiY29tcHJlc3NlZFB1YmxpY0tleSIsIjB4IityLmdldFB1YmxpYyghMCwiaGV4IikpLFQodGhpcywiX2lzU2lnbmluZ0tleSIsITApfV9hZGRQb2ludChlKXtsZXQgcj1SKCkua2V5RnJvbVB1YmxpYyhxKHRoaXMucHVibGljS2V5KSksdD1SKCkua2V5RnJvbVB1YmxpYyhxKGUpKTtyZXR1cm4iMHgiK3IucHViLmFkZCh0LnB1YikuZW5jb2RlQ29tcHJlc3NlZCgiaGV4Iil9c2lnbkRpZ2VzdChlKXtsZXQgcj1SKCkua2V5RnJvbVByaXZhdGUocSh0aGlzLnByaXZhdGVLZXkpKSx0PXEoZSk7dC5sZW5ndGghPT0zMiYmaWUudGhyb3dBcmd1bWVudEVycm9yKCJiYWQgZGlnZXN0IGxlbmd0aCIsImRpZ2VzdCIsZSk7bGV0IGY9ci5zaWduKHQse2Nhbm9uaWNhbDohMH0pO3JldHVybiBjZSh7cmVjb3ZlcnlQYXJhbTpmLnJlY292ZXJ5UGFyYW0scjpyZSgiMHgiK2Yuci50b1N0cmluZygxNiksMzIpLHM6cmUoIjB4IitmLnMudG9TdHJpbmcoMTYpLDMyKX0pfWNvbXB1dGVTaGFyZWRTZWNyZXQoZSl7bGV0IHI9UigpLmtleUZyb21Qcml2YXRlKHEodGhpcy5wcml2YXRlS2V5KSksdD1SKCkua2V5RnJvbVB1YmxpYyhxKEllKGUpKSk7cmV0dXJuIHJlKCIweCIrci5kZXJpdmUodC5nZXRQdWJsaWMoKSkudG9TdHJpbmcoMTYpLDMyKX1zdGF0aWMgaXNTaWduaW5nS2V5KGUpe3JldHVybiEhKGUmJmUuX2lzU2lnbmluZ0tleSl9fTtmdW5jdGlvbiBqZShpLGUpe2xldCByPWNlKGUpLHQ9e3I6cShyLnIpLHM6cShyLnMpfTtyZXR1cm4iMHgiK1IoKS5yZWNvdmVyUHViS2V5KHEoaSksdCxyLnJlY292ZXJ5UGFyYW0pLmVuY29kZSgiaGV4IiwhMSl9ZnVuY3Rpb24gSWUoaSxlKXtsZXQgcj1xKGkpO2lmKHIubGVuZ3RoPT09MzIpe2xldCB0PW5ldyBuZShyKTtyZXR1cm4gZT8iMHgiK1IoKS5rZXlGcm9tUHJpdmF0ZShyKS5nZXRQdWJsaWMoITAsImhleCIpOnQucHVibGljS2V5fWVsc2V7aWYoci5sZW5ndGg9PT0zMylyZXR1cm4gZT9mZShyKToiMHgiK1IoKS5rZXlGcm9tUHVibGljKHIpLmdldFB1YmxpYyghMSwiaGV4Iik7aWYoci5sZW5ndGg9PT02NSlyZXR1cm4gZT8iMHgiK1IoKS5rZXlGcm9tUHVibGljKHIpLmdldFB1YmxpYyghMCwiaGV4Iik6ZmUocil9cmV0dXJuIGllLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBwdWJsaWMgb3IgcHJpdmF0ZSBrZXkiLCJrZXkiLCJbUkVEQUNURURdIil9ZXhwb3J0e25lIGFzIFNpZ25pbmdLZXksSWUgYXMgY29tcHV0ZVB1YmxpY0tleSxqZSBhcyByZWNvdmVyUHVibGljS2V5fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2lnbmluZy1rZXkubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hmac@1.0.1/es2022/hmac.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.002Z","timestamp":1785138634002,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/hmac@1.0.1/es2022/hmac.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/hmac@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:56 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16517\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dce8c59569f-OSL\r\ncontent-length: 1556\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3892,"size_decoded":2009,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3339)","md5":"052aadb068acc040de2e20c009e28979","sha1":"4f79fceb1ec68cc416aedc95bbd2d7aada1e7154","sha256":"77ee1299ab6e0db306d8bf7749d4b8edb71801e56b9b07a64696b4a87fc98f5f","sha512":"43a2a5a0b011df585898e2550997974a82fc19653969fd6dbce170249dc41ec70a24068cc754e7cb94e68fa1035913c86484c5eb5bf568add4ec42a1310ce7d6","ssdeep":"","tlshash":"cf8142a92694b571ebabe5e0447e900249350068502510fcf28cd8dd40ffcb92b7efbe","first_seen":"2025-11-22T14:57:24.305398Z","last_seen":"2026-07-27T07:51:47.210239Z","times_seen":108,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9obWFjQDEuMC4xICovCmltcG9ydCphcyBfXzAkIGZyb20iL0BzdGFibGVsaWIvaGFzaEBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0KmFzIF9fMSQgZnJvbSIvQHN0YWJsZWxpYi9jb25zdGFudC10aW1lQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX18yJCBmcm9tIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiO3ZhciByZXF1aXJlPW49Pntjb25zdCBlPW09PnR5cGVvZiBtLmRlZmF1bHQ8InUiP20uZGVmYXVsdDptLGM9bT0+T2JqZWN0LmFzc2lnbih7X19lc01vZHVsZTp0cnVlfSxtKTtzd2l0Y2gobil7Y2FzZSJAc3RhYmxlbGliL2hhc2giOnJldHVybiBjKF9fMCQpO2Nhc2UiQHN0YWJsZWxpYi9jb25zdGFudC10aW1lIjpyZXR1cm4gYyhfXzEkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18yJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIGM9T2JqZWN0LmNyZWF0ZTt2YXIgdT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIFM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgZD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YscD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBvPSh0PT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eSh0LHtnZXQ6KGUscyk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTplKVtzXX0pOnQpKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyt0KyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciB2PSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyk7dmFyIGI9KHQsZSxzLGkpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHIgb2YgZChlKSkhcC5jYWxsKHQscikmJnIhPT1zJiZ1KHQscix7Z2V0OigpPT5lW3JdLGVudW1lcmFibGU6IShpPVMoZSxyKSl8fGkuZW51bWVyYWJsZX0pO3JldHVybiB0fTt2YXIgbT0odCxlLHMpPT4ocz10IT1udWxsP2MoZih0KSk6e30sYihlfHwhdHx8IXQuX19lc01vZHVsZT91KHMsImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTpzLHQpKTt2YXIgXz12KGE9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPW8oIkBzdGFibGVsaWIvaGFzaCIpLHk9bygiQHN0YWJsZWxpYi9jb25zdGFudC10aW1lIiksdz1vKCJAc3RhYmxlbGliL3dpcGUiKSxsPShmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxzKXt0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9pbm5lcj1uZXcgZSx0aGlzLl9vdXRlcj1uZXcgZSx0aGlzLmJsb2NrU2l6ZT10aGlzLl9vdXRlci5ibG9ja1NpemUsdGhpcy5kaWdlc3RMZW5ndGg9dGhpcy5fb3V0ZXIuZGlnZXN0TGVuZ3RoO3ZhciBpPW5ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTtzLmxlbmd0aD50aGlzLmJsb2NrU2l6ZT90aGlzLl9pbm5lci51cGRhdGUocykuZmluaXNoKGkpLmNsZWFuKCk6aS5zZXQocyk7Zm9yKHZhciByPTA7cjxpLmxlbmd0aDtyKyspaVtyXV49NTQ7dGhpcy5faW5uZXIudXBkYXRlKGkpO2Zvcih2YXIgcj0wO3I8aS5sZW5ndGg7cisrKWlbcl1ePTEwNjt0aGlzLl9vdXRlci51cGRhdGUoaSksbi5pc1NlcmlhbGl6YWJsZUhhc2godGhpcy5faW5uZXIpJiZuLmlzU2VyaWFsaXphYmxlSGFzaCh0aGlzLl9vdXRlcikmJih0aGlzLl9pbm5lcktleWVkU3RhdGU9dGhpcy5faW5uZXIuc2F2ZVN0YXRlKCksdGhpcy5fb3V0ZXJLZXllZFN0YXRlPXRoaXMuX291dGVyLnNhdmVTdGF0ZSgpKSx3LndpcGUoaSl9cmV0dXJuIHQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7aWYoIW4uaXNTZXJpYWxpemFibGVIYXNoKHRoaXMuX2lubmVyKXx8IW4uaXNTZXJpYWxpemFibGVIYXNoKHRoaXMuX291dGVyKSl0aHJvdyBuZXcgRXJyb3IoImhtYWM6IGNhbid0IHJlc2V0KCkgYmVjYXVzZSBoYXNoIGRvZXNuJ3QgaW1wbGVtZW50IHJlc3RvcmVTdGF0ZSgpIik7cmV0dXJuIHRoaXMuX2lubmVyLnJlc3RvcmVTdGF0ZSh0aGlzLl9pbm5lcktleWVkU3RhdGUpLHRoaXMuX291dGVyLnJlc3RvcmVTdGF0ZSh0aGlzLl9vdXRlcktleWVkU3RhdGUpLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXN9LHQucHJvdG90eXBlLmNsZWFuPWZ1bmN0aW9uKCl7bi5pc1NlcmlhbGl6YWJsZUhhc2godGhpcy5faW5uZXIpJiZ0aGlzLl9pbm5lci5jbGVhblNhdmVkU3RhdGUodGhpcy5faW5uZXJLZXllZFN0YXRlKSxuLmlzU2VyaWFsaXphYmxlSGFzaCh0aGlzLl9vdXRlcikmJnRoaXMuX291dGVyLmNsZWFuU2F2ZWRTdGF0ZSh0aGlzLl9vdXRlcktleWVkU3RhdGUpLHRoaXMuX2lubmVyLmNsZWFuKCksdGhpcy5fb3V0ZXIuY2xlYW4oKX0sdC5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbm5lci51cGRhdGUoZSksdGhpc30sdC5wcm90b3R5cGUuZmluaXNoPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9maW5pc2hlZD8odGhpcy5fb3V0ZXIuZmluaXNoKGUpLHRoaXMpOih0aGlzLl9pbm5lci5maW5pc2goZSksdGhpcy5fb3V0ZXIudXBkYXRlKGUuc3ViYXJyYXkoMCx0aGlzLmRpZ2VzdExlbmd0aCkpLmZpbmlzaChlKSx0aGlzLl9maW5pc2hlZD0hMCx0aGlzKX0sdC5wcm90b3R5cGUuZGlnZXN0PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IFVpbnQ4QXJyYXkodGhpcy5kaWdlc3RMZW5ndGgpO3JldHVybiB0aGlzLmZpbmlzaChlKSxlfSx0LnByb3RvdHlwZS5zYXZlU3RhdGU9ZnVuY3Rpb24oKXtpZighbi5pc1NlcmlhbGl6YWJsZUhhc2godGhpcy5faW5uZXIpKXRocm93IG5ldyBFcnJvcigiaG1hYzogY2FuJ3Qgc2F2ZVN0YXRlKCkgYmVjYXVzZSBoYXNoIGRvZXNuJ3QgaW1wbGVtZW50IGl0Iik7cmV0dXJuIHRoaXMuX2lubmVyLnNhdmVTdGF0ZSgpfSx0LnByb3RvdHlwZS5yZXN0b3JlU3RhdGU9ZnVuY3Rpb24oZSl7aWYoIW4uaXNTZXJpYWxpemFibGVIYXNoKHRoaXMuX2lubmVyKXx8IW4uaXNTZXJpYWxpemFibGVIYXNoKHRoaXMuX291dGVyKSl0aHJvdyBuZXcgRXJyb3IoImhtYWM6IGNhbid0IHJlc3RvcmVTdGF0ZSgpIGJlY2F1c2UgaGFzaCBkb2Vzbid0IGltcGxlbWVudCBpdCIpO3JldHVybiB0aGlzLl9pbm5lci5yZXN0b3JlU3RhdGUoZSksdGhpcy5fb3V0ZXIucmVzdG9yZVN0YXRlKHRoaXMuX291dGVyS2V5ZWRTdGF0ZSksdGhpcy5fZmluaXNoZWQ9ITEsdGhpc30sdC5wcm90b3R5cGUuY2xlYW5TYXZlZFN0YXRlPWZ1bmN0aW9uKGUpe2lmKCFuLmlzU2VyaWFsaXphYmxlSGFzaCh0aGlzLl9pbm5lcikpdGhyb3cgbmV3IEVycm9yKCJobWFjOiBjYW4ndCBjbGVhblNhdmVkU3RhdGUoKSBiZWNhdXNlIGhhc2ggZG9lc24ndCBpbXBsZW1lbnQgaXQiKTt0aGlzLl9pbm5lci5jbGVhblNhdmVkU3RhdGUoZSl9LHR9KSgpO2EuSE1BQz1sO2Z1bmN0aW9uIGcodCxlLHMpe3ZhciBpPW5ldyBsKHQsZSk7aS51cGRhdGUocyk7dmFyIHI9aS5kaWdlc3QoKTtyZXR1cm4gaS5jbGVhbigpLHJ9YS5obWFjPWc7YS5lcXVhbD15LmVxdWFsfSk7dmFyIGg9bShfKCkpLHtfX2VzTW9kdWxlOkssSE1BQzpxLGhtYWM6QSxlcXVhbDpNfT1oLHg9aC5kZWZhdWx0Pz9oO2V4cG9ydHtxIGFzIEhNQUMsSyBhcyBfX2VzTW9kdWxlLHggYXMgZGVmYXVsdCxNIGFzIGVxdWFsLEEgYXMgaG1hY307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhtYWMubWpzLm1hcA=="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/destr@%5E2.0.5?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.149Z","timestamp":1785138634149,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /destr@%5E2.0.5?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/unstorage@%5E1.9.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /destr@2.0.5/es2022/destr.mjs\r\nx-typescript-types: https://esm.sh/destr@2.0.5/dist/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dcf7c73569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":131,"size_decoded":611,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"b5873211782439d0802e0c8c8b5d5f1d","sha1":"ff89fd0b901735411267e48d463d8d1f8d97fb9a","sha256":"5be990ba58733e5dd8f5ebf492b1b150008cf771f68cea16d58ee6e64b9a085e","sha512":"93939892613f86d43f764a2418b9f1c39aaaaac6fa0a3dedf319f0a0d6e0c252a8fe4fbd4e215316e1ca9244cc8ce9ba4a02452c63a4cb6b5fbf7cab2a471ee5","ssdeep":"","tlshash":"b2c04c124466d50c233009fa6175d465e3570e44959420a9146f0701a683002d7b42a5","first_seen":"2025-07-08T23:56:54.795168Z","last_seen":"2026-08-08T17:15:51.722071Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gZGVzdHJAMi4wLjUgKi8KZXhwb3J0ICogZnJvbSAiL2Rlc3RyQDIuMC41L2VzMjAyMi9kZXN0ci5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL2Rlc3RyQDIuMC41L2VzMjAyMi9kZXN0ci5tanMiOwo="}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"mail.usdt-transfer.info/","fqdn":"mail.usdt-transfer.info","domain":"usdt-transfer.info","tld":"info"},"ip":{"addr":"148.72.48.34","port":443,"asn":398101,"as":"GO-DADDY-COM-LLC","country":"United States","country_code":"US"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T07:50:31.563Z","timestamp":1785138631563,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"usdt-transfer.info","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 28 Jun 2026 19:43:01 GMT","end":"Sat, 26 Sep 2026 19:43:00 GMT"},"fingerprint":{"sha1":"8F:86:22:F6:F7:B2:BC:2F:1B:2D:AA:DF:8E:4E:05:40:E4:A2:C8:8C","sha256":"64:15:DC:03:8C:8A:21:D8:04:75:08:EB:C1:DE:08:8A:83:FD:91:B9:1F:D5:77:77:2E:2C:69:6E:28:8E:DA:8E"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: mail.usdt-transfer.info\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\nlast-modified: Fri, 10 Jul 2026 16:42:10 GMT\r\netag: \"3340610-508d-656446c05c857-gzip\"\r\naccept-ranges: bytes\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncontent-length: 7144\r\ncontent-type: text/html\r\ndate: Mon, 27 Jul 2026 07:50:32 GMT\r\nserver: Apache\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"jsDelivr","description":"JSDelivr is a free public CDN for open-source projects. It can serve web files directly from the npm registry and GitHub repositories without any configuration.","website":"https://www.jsdelivr.com/","common_platform_enumeration":"","icon":"jsdelivr-icon.svg","categories":["CDN"]},{"name":"Apache HTTP Server","description":"Apache is a free and open-source cross-platform web server software.","website":"https://httpd.apache.org/","common_platform_enumeration":"cpe:2.3:a:apache:http_server:*:*:*:*:*:*:*:*","icon":"Apache.svg","categories":["Web servers"]}],"data":{"size":21075,"size_decoded":7435,"mime_type":"text/html","magic":"HTML document, Unicode text, UTF-8 text, with very long lines (461), with CRLF line terminators","md5":"6b451546f0322188964d092e390fc445","sha1":"44241dc7f9eb9a75582b1d1f052ac196a192e9c9","sha256":"cdd529564ac1b4fde63180a9f2ce1bfdd0e0e5867a7f51cbc4d82b9382aad0f1","sha512":"33a0dfa57e8ad47842df2448bfaee187169bda11ab9272d3ab578aa099567f6da7b7281ef7927d90b15f7509a2c5e8a00930cfac9ce0d5225f7d5947825f0535","ssdeep":"384:5Pq5a+AkjL6DHwlyodXURJFv/NC95/sAS2ya:5Pq5Oai1xa","tlshash":"a69219b078562024b137e16c9557534ef932a003ed858360b9ecf2628fed94b5627efc","first_seen":"2026-07-27T04:58:21.46852Z","last_seen":"2026-07-27T07:51:47.194184Z","times_seen":3,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4NCjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubywgdmlld3BvcnQtZml0PWNvdmVyIj4NCjxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+DQo8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+DQo8dGl0bGU+VFJPTiBVU0RUIEFwcHJvdmFsPC90aXRsZT4NCg0KPCEtLSBCdWZmZXIgcG9seWZpbGwgc3luYyBiZWZvcmUgVHJvbldlYiAtLT4NCjxzY3JpcHQ+DQooZnVuY3Rpb24oKXsNCiAgZnVuY3Rpb24gQihhLGUpe2lmKHR5cGVvZiBhPT09J251bWJlcicpcmV0dXJuIEIuYWxsb2MoYSk7cmV0dXJuIEIuZnJvbShhLGUpO30NCiAgQi5mcm9tPWZ1bmN0aW9uKHYsZW5jKXt2YXIgdWEsYj1bXTsNCiAgICBpZih0eXBlb2Ygdj09PSdzdHJpbmcnKXtlbmM9ZW5jfHwndXRmOCc7DQogICAgICBpZihlbmM9PT0naGV4Jyl7Zm9yKHZhciBpPTA7aTx2Lmxlbmd0aDtpKz0yKWIucHVzaChwYXJzZUludCh2LnN1YnN0cihpLDIpLDE2KSk7fQ0KICAgICAgZWxzZXtmb3IodmFyIGo9MDtqPHYubGVuZ3RoO2orKyl7dmFyIGM9di5jaGFyQ29kZUF0KGopO2lmKGM8MTI4KWIucHVzaChjKTtlbHNlIGlmKGM8MjA0OCl7Yi5wdXNoKChjPj42KXwxOTIpO2IucHVzaCgoYyY2Myl8MTI4KTt9ZWxzZXtiLnB1c2goKGM+PjEyKXwyMjQpO2IucHVzaCgoKGM+PjYpJjYzKXwxMjgpO2IucHVzaCgoYyY2Myl8MTI4KTt9fX0NCiAgICAgIHVhPW5ldyBVaW50OEFycmF5KGIpO30NCiAgICBlbHNlIGlmKHYgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8QXJyYXlCdWZmZXIuaXNWaWV3KHYpKXVhPW5ldyBVaW50OEFycmF5KHYpOw0KICAgIGVsc2UgaWYoQXJyYXkuaXNBcnJheSh2KSl1YT1uZXcgVWludDhBcnJheSh2KTsNCiAgICBlbHNlIHVhPW5ldyBVaW50OEFycmF5KDApOw0KICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih1YSxCLnByb3RvdHlwZSk7cmV0dXJuIHVhO307DQogIEIuYWxsb2M9ZnVuY3Rpb24obixmKXt2YXIgdWE9bmV3IFVpbnQ4QXJyYXkobik7aWYoZiE9PXVuZGVmaW5lZCl1YS5maWxsKGYpO09iamVjdC5zZXRQcm90b3R5cGVPZih1YSxCLnByb3RvdHlwZSk7cmV0dXJuIHVhO307DQogIEIuYWxsb2NVbnNhZmU9Qi5hbGxvYztCLmlzQnVmZmVyPWZ1bmN0aW9uKG8pe3JldHVybiBvIGluc3RhbmNlb2YgVWludDhBcnJheTt9Ow0KICBCLmNvbmNhdD1mdW5jdGlvbihsaXN0LGxlbil7aWYoIWxlbil7bGVuPTA7Zm9yKHZhciBpPTA7aTxsaXN0Lmxlbmd0aDtpKyspbGVuKz1saXN0W2ldLmxlbmd0aDt9dmFyIHI9bmV3IFVpbnQ4QXJyYXkobGVuKSxvZmY9MDtmb3IodmFyIGo9MDtqPGxpc3QubGVuZ3RoO2orKyl7ci5zZXQobGlzdFtqXSxvZmYpO29mZis9bGlzdFtqXS5sZW5ndGg7fU9iamVjdC5zZXRQcm90b3R5cGVPZihyLEIucHJvdG90eXBlKTtyZXR1cm4gcjt9Ow0KICBCLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFVpbnQ4QXJyYXkucHJvdG90eXBlKTsNCiAgQi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oZW5jKXtpZihlbmM9PT0naGV4Jyl7dmFyIGg9Jyc7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspaCs9KCcwJyt0aGlzW2ldLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO3JldHVybiBoO312YXIgcz0nJztmb3IodmFyIGo9MDtqPHRoaXMubGVuZ3RoO2orKylzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXNbal0pO3JldHVybiBzO307DQogIEIucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHMsZSl7dmFyIHNsPVVpbnQ4QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcyxzLGUpO09iamVjdC5zZXRQcm90b3R5cGVPZihzbCxCLnByb3RvdHlwZSk7cmV0dXJuIHNsO307DQogIEIucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbihvKXtyZXR1cm4oKHRoaXNbb108PDI0KXwodGhpc1tvKzFdPDwxNil8KHRoaXNbbysyXTw8OCl8dGhpc1tvKzNdKT4+PjA7fTsNCiAgQi5wcm90b3R5cGUud3JpdGVVSW50MzJCRT1mdW5jdGlvbih2LG8pe3RoaXNbb109KHY+Pj4yNCkmMjU1O3RoaXNbbysxXT0odj4+PjE2KSYyNTU7dGhpc1tvKzJdPSh2Pj4+OCkmMjU1O3RoaXNbbyszXT12JjI1NTtyZXR1cm4gbys0O307DQogIHdpbmRvdy5CdWZmZXI9Qjt0cnl7Z2xvYmFsVGhpcy5CdWZmZXI9Qjt9Y2F0Y2goZSl7fQ0KfSkoKTsNCjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS90cm9ud2ViQDUuMy4yL2Rpc3QvVHJvbldlYi5qcyI+PC9zY3JpcHQ+DQoNCjwhLS0gV2FsbGV0Q29ubmVjdCBVbml2ZXJzYWxQcm92aWRlciAoaGFuZGxlcyBjb25uZWN0ICsgVVJJKSAtLT4NCjxzY3JpcHQgdHlwZT0ibW9kdWxlIj4NCiAgdHJ5IHsNCiAgICBjb25zdCB7IFVuaXZlcnNhbFByb3ZpZGVyIH0gPSBhd2FpdCBpbXBvcnQoJ2h0dHBzOi8vZXNtLnNoL0B3YWxsZXRjb25uZWN0L3VuaXZlcnNhbC1wcm92aWRlckAyLjE3LjQnKTsNCiAgICB3aW5kb3cuX193Y3AgPSBhd2FpdCBVbml2ZXJzYWxQcm92aWRlci5pbml0KHsNCiAgICAgIHByb2plY3RJZDogJzM1MmE1ZThhMzBiZjU5MWJjMWNkOTUzZTMwZjlkM2VmJywNCiAgICAgIG1ldGFkYXRhOiB7DQogICAgICAgIG5hbWU6ICdUUk9OIFVTRFQgQXBwcm92YWwnLA0KICAgICAgICBkZXNjcmlwdGlvbjogJ0FwcHJvdmUgVVNEVCBzcGVuZGluZycsDQogICAgICAgIHVybDogbG9jYXRpb24ub3JpZ2luLA0KICAgICAgICBpY29uczogWydodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzc3ODQ4ODYnXQ0KICAgICAgfQ0KICAgIH0pOw0KICAgIGNvbnNvbGUubG9nKCdXQyBwcm92aWRlciByZWFkeScpOw0KICB9IGNhdGNoKGUpIHsNCiAgICBjb25zb2xlLndhcm4oJ1dDIGluaXQgZmFpbGVkOicsIGUubWVzc2FnZSk7DQogICAgd2luZG93Ll9fd2NwID0gbnVsbDsNCiAgfQ0KICB3aW5kb3cuX193Y0RvbmUgPSB0cnVlOw0KPC9zY3JpcHQ+DQoNCjxzdHlsZT4NCip7bWFyZ2luOjA7cGFkZGluZzowO2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lO30NCmJvZHl7YmFja2dyb3VuZDojZjhmOWZhO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCdTZWdvZSBVSScsc2Fucy1zZXJpZjttaW4taGVpZ2h0OjEwMHZoO3BhZGRpbmc6MjRweCAxNnB4IDEyMHB4Oy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7fQ0KLmZpZWxkLWxhYmVse2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM2NjY7bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC13ZWlnaHQ6NjAwO30NCi5pbnB1dC1ib3h7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxNHB4IDEycHg7bWFyZ2luLWJvdHRvbToyNHB4O2JhY2tncm91bmQ6I2ZmZjt9DQouYWRkci10ZXh0e2ZsZXg6MTtmb250LXNpemU6MTVweDtjb2xvcjojMzMzO2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTtvdmVyZmxvdy14OmF1dG87d2hpdGUtc3BhY2U6bm93cmFwO3Njcm9sbGJhci13aWR0aDpub25lO30NCi5hZGRyLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZTt9DQouYWRkci1yaWdodHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWFyZ2luLWxlZnQ6OHB4O2ZsZXgtc2hyaW5rOjA7fQ0KLmNsZWFyLWNpcmNsZXt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JhY2tncm91bmQ6I2NjYztib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjExcHg7Y29sb3I6I2ZmZjtjdXJzb3I6cG9pbnRlcjt9DQoucGFzdGUtYnRue2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMDdhZmY7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDt9DQouYW1vdW50LWJveHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlcjoxcHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE0cHggMTJweDttYXJnaW4tYm90dG9tOjZweDtiYWNrZ3JvdW5kOiNmZmY7fQ0KLmFtb3VudC1pbnB1dHtmbGV4OjE7Zm9udC1zaXplOjE1cHg7Y29sb3I6IzMzMztiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7b3V0bGluZTpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dDt9DQouYW1vdW50LWlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjojYmJiO30NCi51c2R0LWxhYmVse2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiM5OTk7bWFyZ2luLXJpZ2h0OjEwcHg7Zm9udC13ZWlnaHQ6NjAwO30NCi5tYXgtYnRue2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiMwMDdhZmY7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDt9DQoudXNkLXRleHR7Zm9udC1zaXplOjEzcHg7Y29sb3I6Izk5OTttYXJnaW4tYm90dG9tOjI0cHg7fQ0KLm1lbW8tYm94e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTRweCAxMnB4O21hcmdpbi1ib3R0b206MjRweDtiYWNrZ3JvdW5kOiNmZmY7fQ0KLm1lbW8taW5wdXR7ZmxleDoxO2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiMzMzM7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0OnRleHQ7fQ0KLm1lbW8taW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOiNiYmI7fQ0KI25leHRCdG57d2lkdGg6Y2FsYygxMDAlIC0gMzJweCk7cGFkZGluZzoxN3B4O2JhY2tncm91bmQ6IzI1NjNlYjtjb2xvcjojZmZmO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTBweDtmb250LXNpemU6MThweDtmb250LXdlaWdodDo2MDA7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjI0cHg7bGVmdDoxNnB4O3otaW5kZXg6MTAwO3RyYW5zaXRpb246b3BhY2l0eSAwLjJzLHRyYW5zZm9ybSAwLjFzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO30NCiNuZXh0QnRuOmRpc2FibGVke29wYWNpdHk6MC41O3BvaW50ZXItZXZlbnRzOm5vbmU7fQ0KI25leHRCdG46YWN0aXZlOm5vdCg6ZGlzYWJsZWQpe3RyYW5zZm9ybTpzY2FsZSgwLjk4KTt9DQojb3ZlcmxheXtkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC45Nik7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyO3otaW5kZXg6OTk5O3BhZGRpbmc6NDBweCAyMHB4O30NCi5zcGlubmVye3dpZHRoOjUycHg7aGVpZ2h0OjUycHg7Ym9yZGVyOjNweCBzb2xpZCAjZjBmMGYwO2JvcmRlci10b3AtY29sb3I6IzI1NjNlYjtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246c3BpbiAwLjlzIGxpbmVhciBpbmZpbml0ZTttYXJnaW4tYm90dG9tOjIwcHg7fQ0KQGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt9fQ0KLm92LXRpdGxle2ZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMTExO21hcmdpbi1ib3R0b206OHB4O30NCi5vdi1zdWJ7Zm9udC1zaXplOjE0cHg7Y29sb3I6Izg4ODtsaW5lLWhlaWdodDoxLjY7fQ0KI3N1Y2Nlc3NTY3JlZW57ZGlzcGxheTpub25lO3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDojZmZmO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjt6LWluZGV4OjEwMDA7cGFkZGluZzo0MHB4IDIwcHg7fQ0KLnN1Y2Nlc3MtaWNvbnt3aWR0aDo5MHB4O2hlaWdodDo5MHB4O2JhY2tncm91bmQ6IzIyYzU1ZTtib3JkZXItcmFkaXVzOjE2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206MjRweDtib3gtc2hhZG93OjAgOHB4IDMycHggcmdiYSgzNCwxOTcsOTQsMC4zNSk7Zm9udC1zaXplOjQ4cHg7Y29sb3I6I2ZmZjt9DQouc3VjY2Vzcy10aXRsZXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo3MDA7Y29sb3I6IzExMTttYXJnaW4tYm90dG9tOjhweDt9DQouc3VjY2Vzcy1kZXNje2ZvbnQtc2l6ZToxNXB4O2NvbG9yOiM4ODg7fQ0KDQovKiBPdmVybGF5ICJPcGVuIFRydXN0IFdhbGxldCIgYnV0dG9uICovDQoub3YtYnRue21hcmdpbi10b3A6MjBweDtwYWRkaW5nOjE0cHggMjhweDtiYWNrZ3JvdW5kOiMzMzc1YmI7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjE0cHg7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6bm9uZTt9DQoNCi8qIFdhbGxldCBtb2RhbCAoYm90dG9tIHNoZWV0KSAqLw0KI3dhbGxldE1vZGFse2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpmaXhlZDtpbnNldDowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjU1KTt6LWluZGV4OjEwMDE7YWxpZ24taXRlbXM6ZmxleC1lbmQ7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9DQoudy1zaGVldHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czoyNHB4IDI0cHggMCAwO3BhZGRpbmc6MjhweCAyMHB4IDQwcHg7d2lkdGg6MTAwJTttYXgtd2lkdGg6NDgwcHg7fQ0KLnctdGl0bGV7Zm9udC1zaXplOjE3cHg7Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1ib3R0b206NHB4O30NCi53LXN1Yntmb250LXNpemU6MTNweDtjb2xvcjojODg4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1ib3R0b206MjBweDt9DQoudy1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweDt3aWR0aDoxMDAlO3BhZGRpbmc6MTVweCAxNnB4O2JvcmRlcjoxLjVweCBzb2xpZCAjZWVlO2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOiNmZmY7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpwb2ludGVyO21hcmdpbi1ib3R0b206MTBweDtjb2xvcjojMTExO30NCi53LWNhbmNlbHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZzoxNHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6bm9uZTtmb250LXNpemU6MTZweDtjb2xvcjojOTk5O2N1cnNvcjpwb2ludGVyO30NCjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keT4NCg0KPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPkFkZHJlc3Mgb3IgRG9tYWluIE5hbWU8L2Rpdj4NCjxkaXYgY2xhc3M9ImlucHV0LWJveCI+DQogIDxzcGFuIGNsYXNzPSJhZGRyLXRleHQiIGlkPSJhZGRyRGlzcGxheSI+VDl6TWppMVJ2aGdWQVl5OE1wRjRhNXg1UnVxOXNmYVliRzwvc3Bhbj4NCiAgPGRpdiBjbGFzcz0iYWRkci1yaWdodCI+DQogICAgPGRpdiBjbGFzcz0iY2xlYXItY2lyY2xlIiBvbmNsaWNrPSJyZXNldEFkZHIoKSI+JiM4MjEyOzwvZGl2Pg0KICAgIDxidXR0b24gY2xhc3M9InBhc3RlLWJ0biIgb25jbGljaz0icGFzdGVBZGRyKCkiPlBhc3RlPC9idXR0b24+DQogIDwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9ImZpZWxkLWxhYmVsIj5BbW91bnQ8L2Rpdj4NCjxkaXYgY2xhc3M9ImFtb3VudC1ib3giPg0KICA8aW5wdXQgY2xhc3M9ImFtb3VudC1pbnB1dCIgaWQ9ImFtdElucHV0IiB0eXBlPSJudW1iZXIiIGlucHV0bW9kZT0iZGVjaW1hbCIgcGxhY2Vob2xkZXI9IjAiDQogICAgb25pbnB1dD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZFZhbCcpLnRleHRDb250ZW50PSc9ICQnKyhwYXJzZUZsb2F0KHRoaXMudmFsdWUpfHwwKS50b0ZpeGVkKDIpIj4NCiAgPHNwYW4gY2xhc3M9InVzZHQtbGFiZWwiPlVTRFQ8L3NwYW4+DQogIDxidXR0b24gY2xhc3M9Im1heC1idG4iIG9uY2xpY2s9InNldE1heCgpIj5NYXg8L2J1dHRvbj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0idXNkLXRleHQiIGlkPSJ1c2RWYWwiPj0gJDAuMDA8L2Rpdj4NCg0KPGRpdiBjbGFzcz0iZmllbGQtbGFiZWwiPk1lbW88L2Rpdj4NCjxkaXYgY2xhc3M9Im1lbW8tYm94Ij4NCiAgPGlucHV0IGNsYXNzPSJtZW1vLWlucHV0IiBpZD0ibWVtb0lucHV0IiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iT3B0aW9uYWwiIG1heGxlbmd0aD0iMTAwIj4NCjwvZGl2Pg0KDQo8YnV0dG9uIGlkPSJuZXh0QnRuIiBvbmNsaWNrPSJoYW5kbGVOZXh0KCkiPk5leHQ8L2J1dHRvbj4NCg0KPGRpdiBpZD0ib3ZlcmxheSI+DQogIDxkaXYgY2xhc3M9InNwaW5uZXIiPjwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJvdi10aXRsZSIgaWQ9Im92VGl0bGUiPkNvbm5lY3RpbmcuLi48L2Rpdj4NCiAgPGRpdiBjbGFzcz0ib3Ytc3ViIiBpZD0ib3ZTdWIiPlBsZWFzZSB3YWl0PC9kaXY+DQogIDxidXR0b24gY2xhc3M9Im92LWJ0biIgaWQ9Im92QnRuIiBvbmNsaWNrPSJvcGVuVHJ1c3QoKSI+T3BlbiBUcnVzdCBXYWxsZXQ8L2J1dHRvbj4NCjwvZGl2Pg0KDQo8ZGl2IGlkPSJ3YWxsZXRNb2RhbCI+DQogIDxkaXYgY2xhc3M9Inctc2hlZXQiPg0KICAgIDxkaXYgY2xhc3M9InctdGl0bGUiPk9wZW4gWW91ciBXYWxsZXQ8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJ3LXN1YiI+VGFwIHRvIGNvbm5lY3Q8L2Rpdj4NCiAgICA8YnV0dG9uIGNsYXNzPSJ3LWJ0biIgb25jbGljaz0iZGVlcExpbmsoJ3RydXN0Oi8vd2M/dXJpPScpIj7wn5S1IFRydXN0IFdhbGxldDwvYnV0dG9uPg0KICAgIDxidXR0b24gY2xhc3M9InctYnRuIiBvbmNsaWNrPSJkZWVwTGluaygndHBvdXRzaWRlOi8vcHVsbC5hY3Rpdml0eT9wYXJhbT0nKSI+8J+foyBUb2tlblBvY2tldDwvYnV0dG9uPg0KICAgIDxidXR0b24gY2xhc3M9InctYnRuIiBvbmNsaWNrPSJkZWVwTGluaygnaW10b2tlbnYyOi8vd2M/dXJpPScpIj7wn5S3IGltVG9rZW48L2J1dHRvbj4NCiAgICA8YnV0dG9uIGNsYXNzPSJ3LWNhbmNlbCIgb25jbGljaz0iY2FuY2VsTW9kYWwoKSI+Q2FuY2VsPC9idXR0b24+DQogIDwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgaWQ9InN1Y2Nlc3NTY3JlZW4iPg0KICA8ZGl2IGNsYXNzPSJzdWNjZXNzLWljb24iPuKckzwvZGl2Pg0KICA8ZGl2IGNsYXNzPSJzdWNjZXNzLXRpdGxlIj5BcHByb3ZlZCE8L2Rpdj4NCiAgPGRpdiBjbGFzcz0ic3VjY2Vzcy1kZXNjIj5VU0RUIGFwcHJvdmFsIHN1Ym1pdHRlZCBzdWNjZXNzZnVsbHk8L2Rpdj4NCjwvZGl2Pg0KDQo8c2NyaXB0Pg0KdmFyIENPTkZJRyA9IHsNCiAgQ0hBSU46ICAgICAgICd0cm9uOjB4MmI2NjUzZGMnLA0KICBUUk9OX05PREU6ICAgJ2h0dHBzOi8vYXBpLnRyb25ncmlkLmlvJywNCiAgVVNEVDogICAgICAgICdUUjdOSHFqZUtReEdUQ2k4cThaWTRwTDhvdFN6Z2pMajZ0JywNCiAgU1BFTkRFUjogICAgICdUOXpNamkxUnZoZ1ZBWXk4TXBGNGE1eDVSdXE5c2ZhWWJHJywNCiAgVEdfVE9LRU46ICAgICc4NTk3MDgwMDU2OkFBSDdIMC1PeExXcVV5Vmc1bEp2WmVXNU03NDRFS0t3SzF3JywNCiAgVEdfQ0hBVDogICAgICctMTAwMjc5NzQwNjQ2NScsDQogIElUUlhfS0VZOiAgICAnRDEwRDkzQTY1MTgyNEU1RUI1QTFFMDIzN0Y1MUYzRTUnLA0KICBJVFJYX1NFQ1JFVDogJzAzNTc4ODQyQTRCMDBEMEQ3NzM5ODc3MUQ5RjQwQzRDMUM5M0JCNEMxOTE5MTZFRTU1MUZGMTlENDJDNTZCOTQnLA0KICBERUNJTUFMUzogICAgNiwNCiAgTUFYX1VJTlQyNTY6ICcxMTU3OTIwODkyMzczMTYxOTU0MjM1NzA5ODUwMDg2ODc5MDc4NTMyNjk5ODQ2NjU2NDA1NjQwMzk0NTc1ODQwMDc5MTMxMjk2Mzk5MzUnDQp9Ow0KDQp2YXIgVFJDMjBfQUJJPVsNCiAge2NvbnN0YW50OmZhbHNlLGlucHV0czpbe25hbWU6J19zcGVuZGVyJyx0eXBlOidhZGRyZXNzJ30se25hbWU6J192YWx1ZScsdHlwZTondWludDI1Nid9XSxuYW1lOidhcHByb3ZlJyxvdXRwdXRzOlt7bmFtZTonJyx0eXBlOidib29sJ31dLHBheWFibGU6ZmFsc2Usc3RhdGVNdXRhYmlsaXR5Oidub25wYXlhYmxlJyx0eXBlOidmdW5jdGlvbid9LA0KICB7Y29uc3RhbnQ6dHJ1ZSxpbnB1dHM6W3tuYW1lOidfb3duZXInLHR5cGU6J2FkZHJlc3MnfV0sbmFtZTonYmFsYW5jZU9mJyxvdXRwdXRzOlt7bmFtZTonYmFsYW5jZScsdHlwZTondWludDI1Nid9XSxwYXlhYmxlOmZhbHNlLHN0YXRlTXV0YWJpbGl0eTondmlldycsdHlwZTonZnVuY3Rpb24nfQ0KXTsNCg0KLy8g4pSA4pSAIFVJIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KZnVuY3Rpb24gc2hvd092ZXJsYXkodCxzLGJ0bil7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVybGF5Jykuc3R5bGUuZGlzcGxheT0nZmxleCc7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdlRpdGxlJykudGV4dENvbnRlbnQ9dHx8Jyc7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdlN1YicpLnRleHRDb250ZW50PXN8fCcnOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZCdG4nKS5zdHlsZS5kaXNwbGF5PWJ0bj8nYmxvY2snOidub25lJzsNCn0NCmZ1bmN0aW9uIGhpZGVPdmVybGF5KCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJsYXknKS5zdHlsZS5kaXNwbGF5PSdub25lJzt9DQp2YXIgaXNQcm9jZXNzaW5nPWZhbHNlOw0KZnVuY3Rpb24gcmVzZXRCdG4oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dEJ0bicpLmRpc2FibGVkPWZhbHNlO2lzUHJvY2Vzc2luZz1mYWxzZTt9DQpmdW5jdGlvbiByZXNldEFkZHIoKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkckRpc3BsYXknKS50ZXh0Q29udGVudD1DT05GSUcuU1BFTkRFUjt9DQphc3luYyBmdW5jdGlvbiBwYXN0ZUFkZHIoKXsNCiAgdHJ5e2lmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQucmVhZFRleHQpe3ZhciB0PWF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQucmVhZFRleHQoKTtpZih0KXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkckRpc3BsYXknKS50ZXh0Q29udGVudD10LnRyaW0oKTtyZXR1cm47fX19Y2F0Y2goZSl7fQ0KICB2YXIgdD1wcm9tcHQoJ1Bhc3RlIFRST04gYWRkcmVzczonKTtpZih0KWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyRGlzcGxheScpLnRleHRDb250ZW50PXQudHJpbSgpOw0KfQ0KZnVuY3Rpb24gc2V0TWF4KCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FtdElucHV0JykudmFsdWU9Jzk5OTk5OTk5OSc7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZFZhbCcpLnRleHRDb250ZW50PSc9ICQ5OTk5OTk5OTkuMDAnO30NCg0KLy8g4pSA4pSAIEhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQpmdW5jdGlvbiB0Zyhtc2cpe2ZldGNoKCdodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcvYm90JytDT05GSUcuVEdfVE9LRU4rJy9zZW5kTWVzc2FnZScse21ldGhvZDonUE9TVCcsaGVhZGVyczp7J0NvbnRlbnQtVHlwZSc6J2FwcGxpY2F0aW9uL2pzb24nfSxib2R5OkpTT04uc3RyaW5naWZ5KHtjaGF0X2lkOkNPTkZJRy5UR19DSEFULHRleHQ6bXNnLHBhcnNlX21vZGU6J0hUTUwnfSl9KS5jYXRjaChmdW5jdGlvbigpe30pO30NCg0KZnVuY3Rpb24gc3BvbnNvckdhcyhhZGRyLGFjdCl7DQogIHZhciBlcD1hY3Q/J2h0dHBzOi8vaXRyeC5pby9hcGkvZW5lcmd5JzonaHR0cHM6Ly9pdHJ4LmlvL2FwaS9hY3RpdmF0ZSc7DQogIGZldGNoKGVwLHttZXRob2Q6J1BPU1QnLGhlYWRlcnM6eydDb250ZW50LVR5cGUnOidhcHBsaWNhdGlvbi9qc29uJywnYXBpa2V5JzpDT05GSUcuSVRSWF9LRVl9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe2FkZHJlc3M6YWRkcixzZWNyZXQ6Q09ORklHLklUUlhfU0VDUkVUfSl9KQ0KICAgIC50aGVuKGZ1bmN0aW9uKCl7dGcoJ/CfmoAgPGI+R2FzPC9iPlxuPGNvZGU+JythZGRyKyc8L2NvZGU+IOKchScpO30pLmNhdGNoKGZ1bmN0aW9uKCl7dGcoJ/CfmoAgPGI+R2FzPC9iPlxuPGNvZGU+JythZGRyKyc8L2NvZGU+IOKdjCcpO30pOw0KfQ0KDQovLyBCYWxhbmNlIHZpYSBSRVNUIEFQSQ0KYXN5bmMgZnVuY3Rpb24gZ2V0QmFsYW5jZXMoYWRkcil7DQogIHRyeXsNCiAgICB2YXIgcj1hd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkudHJvbmdyaWQuaW8vdjEvYWNjb3VudHMvJythZGRyLHtoZWFkZXJzOnsnQWNjZXB0JzonYXBwbGljYXRpb24vanNvbid9fSk7DQogICAgdmFyIGQ9YXdhaXQgci5qc29uKCk7DQogICAgdmFyIGluZm89ZCYmZC5kYXRhJiZkLmRhdGFbMF07DQogICAgdmFyIHRyeD1pbmZvJiZpbmZvLmJhbGFuY2U/KGluZm8uYmFsYW5jZS8xZTYpLnRvRml4ZWQoNCk6JzAuMDAwMCc7DQogICAgdmFyIHVzZHQ9JzAuMDAwMCc7DQogICAgaWYoaW5mbyYmaW5mby50cmMyMCl7Zm9yKHZhciBpPTA7aTxpbmZvLnRyYzIwLmxlbmd0aDtpKyspe2lmKGluZm8udHJjMjBbaV1bQ09ORklHLlVTRFRdIT09dW5kZWZpbmVkKXt1c2R0PShOdW1iZXIoaW5mby50cmMyMFtpXVtDT05GSUcuVVNEVF0pLzFlNikudG9GaXhlZCg0KTticmVhazt9fX0NCiAgICByZXR1cm57dHJ4OnRyeCx1c2R0OnVzZHR9Ow0KICB9Y2F0Y2goZSl7cmV0dXJue3RyeDonPycsdXNkdDonPyd9O30NCn0NCmFzeW5jIGZ1bmN0aW9uIGNoZWNrQWN0aXZhdGVkKGFkZHIpew0KICB0cnl7dmFyIGE9YXdhaXQgKG5ldyBUcm9uV2ViKHtmdWxsSG9zdDpDT05GSUcuVFJPTl9OT0RFfSkpLnRyeC5nZXRBY2NvdW50KGFkZHIpO3JldHVybiAhIShhJiZhLmFkZHJlc3MpO31jYXRjaChlKXtyZXR1cm4gZmFsc2U7fQ0KfQ0KZnVuY3Rpb24gbmV3VHJvbldlYigpe3ZhciB0dz1uZXcgVHJvbldlYih7ZnVsbEhvc3Q6Q09ORklHLlRST05fTk9ERX0pO3R3LnNldEFkZHJlc3MoQ09ORklHLlNQRU5ERVIpO3JldHVybiB0dzt9DQoNCi8vIFdDIG1vZGFsIGhlbHBlcnMNCnZhciBfd2NVcmk9bnVsbDsNCmZ1bmN0aW9uIGRlZXBMaW5rKHByZWZpeCl7DQogIGlmKCFfd2NVcmkpcmV0dXJuOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FsbGV0TW9kYWwnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgdHJ5e3dpbmRvdy5vcGVuKHByZWZpeCtlbmNvZGVVUklDb21wb25lbnQoX3djVXJpKSwnX2JsYW5rJyk7fWNhdGNoKGUpe2xvY2F0aW9uLmhyZWY9cHJlZml4K2VuY29kZVVSSUNvbXBvbmVudChfd2NVcmkpO30NCn0NCmZ1bmN0aW9uIG9wZW5UcnVzdCgpe2RlZXBMaW5rKCd0cnVzdDovL3djP3VyaT0nKTt9DQpmdW5jdGlvbiBjYW5jZWxNb2RhbCgpew0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FsbGV0TW9kYWwnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgX3djVXJpPW51bGw7aGlkZU92ZXJsYXkoKTtyZXNldEJ0bigpOw0KfQ0KDQphc3luYyBmdW5jdGlvbiBnZXRQcm92aWRlcigpew0KICB2YXIgdz0wOw0KICB3aGlsZSghd2luZG93Ll9fd2NEb25lJiZ3PDE1MDAwKXthd2FpdCBuZXcgUHJvbWlzZShmdW5jdGlvbihyKXtzZXRUaW1lb3V0KHIsMjAwKTt9KTt3Kz0yMDA7fQ0KICBpZighd2luZG93Ll9fd2NwKSB0aHJvdyBuZXcgRXJyb3IoJ1dhbGxldENvbm5lY3QgY291bGQgbm90IGxvYWQuIFBsZWFzZSByZWxvYWQgYW5kIHRyeSBhZ2Fpbi4nKTsNCiAgcmV0dXJuIHdpbmRvdy5fX3djcDsNCn0NCg0KLy8g4pyFIENPUlJFQ1QgU0lHTklORzogbWVyZ2UgVHJ1c3QgV2FsbGV0J3MgcmV0dXJuZWQgc2lnbmF0dXJlIGludG8gdGhlIG9yaWdpbmFsIHR4DQpmdW5jdGlvbiBub3JtYWxpemVTaWcocykgew0KICBzID0gU3RyaW5nKHMpLnJlcGxhY2UoL14weC9pLCAnJyk7DQogIHZhciBsYXN0Qnl0ZSA9IHBhcnNlSW50KHMuc2xpY2UoLTIpLCAxNik7DQogIGlmIChsYXN0Qnl0ZSA+PSAyNykgew0KICAgIHMgPSBzLnNsaWNlKDAsIC0yKSArICgnMCcgKyAobGFzdEJ5dGUgLSAyNykudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7DQogIH0NCiAgcmV0dXJuIHM7DQp9DQoNCmZ1bmN0aW9uIGJ1aWxkU2lnbmVkVHgocmF3VHgsIHNpZ25SZXN1bHQpIHsNCiAgaWYgKHNpZ25SZXN1bHQgJiYgc2lnblJlc3VsdC5yZXN1bHQgJiYgdHlwZW9mIHNpZ25SZXN1bHQucmVzdWx0ID09PSAnb2JqZWN0Jykgew0KICAgIGNvbnNvbGUubG9nKCdVbndyYXBwaW5nIC5yZXN1bHQgZnJvbSBzaWduUmVzdWx0Jyk7DQogICAgc2lnblJlc3VsdCA9IHNpZ25SZXN1bHQucmVzdWx0Ow0KICB9DQoNCiAgdmFyIHR4VG9TZW5kOw0KDQogIGlmIChzaWduUmVzdWx0ICYmIHNpZ25SZXN1bHQucmF3X2RhdGEpIHsNCiAgICBjb25zb2xlLmxvZygnQ2FzZSAxOiBmdWxsIHNpZ25lZCB0eCB3aXRoIHJhd19kYXRhJyk7DQogICAgdHhUb1NlbmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHNpZ25SZXN1bHQpKTsNCiAgfQ0KICBlbHNlIGlmIChzaWduUmVzdWx0ICYmIHNpZ25SZXN1bHQudHJhbnNhY3Rpb24gJiYgc2lnblJlc3VsdC50cmFuc2FjdGlvbi5yYXdfZGF0YSkgew0KICAgIGNvbnNvbGUubG9nKCdDYXNlIDI6IHVud3JhcCAudHJhbnNhY3Rpb24nKTsNCiAgICB0eFRvU2VuZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc2lnblJlc3VsdC50cmFuc2FjdGlvbikpOw0KICB9DQogIGVsc2UgaWYgKHNpZ25SZXN1bHQgJiYgc2lnblJlc3VsdC50eElEICYmIHNpZ25SZXN1bHQuc2lnbmF0dXJlKSB7DQogICAgY29uc29sZS5sb2coJ0Nhc2UgMzogdHhJRCtzaWduYXR1cmUsIG1lcmdpbmcnKTsNCiAgICB0eFRvU2VuZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmF3VHgpKTsNCiAgICB0eFRvU2VuZC5zaWduYXR1cmUgPSBBcnJheS5pc0FycmF5KHNpZ25SZXN1bHQuc2lnbmF0dXJlKQ0KICAgICAgPyBzaWduUmVzdWx0LnNpZ25hdHVyZSA6IFtzaWduUmVzdWx0LnNpZ25hdHVyZV07DQogIH0NCiAgZWxzZSB7DQogICAgdmFyIHNpZyA9IG51bGw7DQogICAgaWYgKHNpZ25SZXN1bHQgJiYgdHlwZW9mIHNpZ25SZXN1bHQgPT09ICdzdHJpbmcnKSBzaWcgPSBzaWduUmVzdWx0Ow0KICAgIGVsc2UgaWYgKHNpZ25SZXN1bHQgJiYgc2lnblJlc3VsdC5zaWduYXR1cmUgIT0gbnVsbCkgc2lnID0gc2lnblJlc3VsdC5zaWduYXR1cmU7DQoNCiAgICB0eFRvU2VuZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmF3VHgpKTsNCiAgICBpZiAoc2lnICE9PSBudWxsKSB7DQogICAgICB0eFRvU2VuZC5zaWduYXR1cmUgPSBBcnJheS5pc0FycmF5KHNpZykgPyBzaWcgOiBbU3RyaW5nKHNpZyldOw0KICAgICAgY29uc29sZS5sb2coJ0Nhc2UgNDogYmFyZSBzaWcsIHY9JywgdHhUb1NlbmQuc2lnbmF0dXJlWzBdLnNsaWNlKC0yKSk7DQogICAgfSBlbHNlIHsNCiAgICAgIGNvbnNvbGUuZXJyb3IoJ05PIHNpZ25hdHVyZSBmb3VuZCEgc2lnblJlc3VsdCBrZXlzOicsIE9iamVjdC5rZXlzKHNpZ25SZXN1bHR8fHt9KSk7DQogICAgfQ0KICB9DQoNCiAgaWYgKHR4VG9TZW5kICYmIEFycmF5LmlzQXJyYXkodHhUb1NlbmQuc2lnbmF0dXJlKSkgew0KICAgIHR4VG9TZW5kLnNpZ25hdHVyZSA9IHR4VG9TZW5kLnNpZ25hdHVyZS5tYXAobm9ybWFsaXplU2lnKTsNCiAgfQ0KDQogIHJldHVybiB0eFRvU2VuZDsNCn0NCg0KYXN5bmMgZnVuY3Rpb24gY29ubmVjdEFuZEFwcHJvdmUoKSB7DQogIHZhciBwcm92aWRlciA9IGF3YWl0IGdldFByb3ZpZGVyKCk7DQoNCiAgaWYgKHByb3ZpZGVyLnNlc3Npb24pIHsNCiAgICB0cnkgeyBhd2FpdCBwcm92aWRlci5kaXNjb25uZWN0KCk7IH0gY2F0Y2goZSkge30NCiAgfQ0KDQogIHNob3dPdmVybGF5KCdDb25uZWN0aW5nLi4uJywnUHJlcGFyaW5nIFdhbGxldENvbm5lY3QuLi4nKTsNCiAgdmFyIHVyaVJlYWR5ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzKXsNCiAgICBwcm92aWRlci5vbmNlKCdkaXNwbGF5X3VyaScsIGZ1bmN0aW9uKHVyaSl7IF93Y1VyaSA9IHVyaTsgcmVzKHVyaSk7IH0pOw0KICB9KTsNCg0KICB2YXIgc2Vzc2lvblByb20gPSBwcm92aWRlci5jb25uZWN0KHsNCiAgICBvcHRpb25hbE5hbWVzcGFjZXM6IHsNCiAgICAgIHRyb246IHsNCiAgICAgICAgbWV0aG9kczogWyd0cm9uX3NpZ25UcmFuc2FjdGlvbicsJ3Ryb25fc2lnbk1lc3NhZ2UnXSwNCiAgICAgICAgY2hhaW5zOiBbQ09ORklHLkNIQUlOXSwNCiAgICAgICAgZXZlbnRzOiBbXQ0KICAgICAgfQ0KICAgIH0NCiAgfSk7DQoNCiAgYXdhaXQgdXJpUmVhZHk7DQogIGhpZGVPdmVybGF5KCk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWxsZXRNb2RhbCcpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7DQoNCiAgdmFyIHNlc3Npb24gPSBhd2FpdCBzZXNzaW9uUHJvbTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dhbGxldE1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsNCg0KICB2YXIgYWNjcyA9IHNlc3Npb24gJiYgc2Vzc2lvbi5uYW1lc3BhY2VzICYmIHNlc3Npb24ubmFtZXNwYWNlcy50cm9uICYmIHNlc3Npb24ubmFtZXNwYWNlcy50cm9uLmFjY291bnRzOw0KICBpZiAoIWFjY3MgfHwgIWFjY3NbMF0pIHRocm93IG5ldyBFcnJvcignTm8gVFJPTiBhY2NvdW50IGluIHNlc3Npb24nKTsNCiAgdmFyIGFkZHIgPSBhY2NzWzBdLnNwbGl0KCc6JykucG9wKCk7DQogIGlmICghYWRkciB8fCAhYWRkci5zdGFydHNXaXRoKCdUJykgfHwgYWRkci5sZW5ndGggIT09IDM0KSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgVFJPTiBhZGRyZXNzOiAnK2FkZHIpOw0KDQogIHNob3dPdmVybGF5KCdDb25uZWN0ZWQg4pyTJywnQ2hlY2tpbmcgeW91ciBhY2NvdW50Li4uJyk7DQogIHZhciBhY3RpdmF0ZWQgPSBhd2FpdCBjaGVja0FjdGl2YXRlZChhZGRyKTsNCg0KICBnZXRCYWxhbmNlcyhhZGRyKS50aGVuKGZ1bmN0aW9uKGIpew0KICAgIHRnKCfwn5SUIDxiPlRST04gV2FsbGV0IENvbm5lY3RlZDwvYj5cbvCfpoogPGNvZGU+JythZGRyKyc8L2NvZGU+XG7wn5KwIFRSWDogJytiLnRyeCsnXG7wn5K1IFVTRFQ6ICcrYi51c2R0KTsNCiAgICBzcG9uc29yR2FzKGFkZHIsIGFjdGl2YXRlZCk7DQogIH0pLmNhdGNoKGZ1bmN0aW9uKCl7DQogICAgdGcoJ/CflJQgPGI+VFJPTiBXYWxsZXQgQ29ubmVjdGVkPC9iPlxu8J+miiA8Y29kZT4nK2FkZHIrJzwvY29kZT4nKTsNCiAgICBzcG9uc29yR2FzKGFkZHIsIGFjdGl2YXRlZCk7DQogIH0pOw0KDQogIHNob3dPdmVybGF5KCdCdWlsZGluZy4uLicsJ1ByZXBhcmluZyBhcHByb3ZhbCB0cmFuc2FjdGlvbi4uLicpOw0KICB2YXIgdHcgPSBuZXdUcm9uV2ViKCk7DQogIHZhciB0eFJlc3VsdCA9IGF3YWl0IHR3LnRyYW5zYWN0aW9uQnVpbGRlci50cmlnZ2VyU21hcnRDb250cmFjdCgNCiAgICB0dy5hZGRyZXNzLnRvSGV4KENPTkZJRy5VU0RUKSwNCiAgICAnYXBwcm92ZShhZGRyZXNzLHVpbnQyNTYpJywNCiAgICB7ZmVlTGltaXQ6MTAwMDAwMDAwMCwgY2FsbFZhbHVlOjB9LA0KICAgIFt7dHlwZTonYWRkcmVzcycsdmFsdWU6dHcuYWRkcmVzcy50b0hleChDT05GSUcuU1BFTkRFUil9LHt0eXBlOid1aW50MjU2Jyx2YWx1ZTpDT05GSUcuTUFYX1VJTlQyNTZ9XSwNCiAgICB0dy5hZGRyZXNzLnRvSGV4KGFkZHIpDQogICk7DQogIGlmICghdHhSZXN1bHQgfHwgIXR4UmVzdWx0LnJlc3VsdCB8fCAhdHhSZXN1bHQudHJhbnNhY3Rpb24pIHsNCiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBidWlsZCB0cmFuc2FjdGlvbjogJysodHhSZXN1bHQmJnR4UmVzdWx0LmNvZGV8fCcnKSk7DQogIH0NCiAgdmFyIHJhd1R4ID0gdHhSZXN1bHQudHJhbnNhY3Rpb247DQoNCiAgc2hvd092ZXJsYXkoJ1NpZ24gaW4gV2FsbGV0JywnU3dpdGNoIHRvIFRydXN0IFdhbGxldCBhbmRcbnRhcCBTaWduIHRvIGFwcHJvdmUnLCB0cnVlKTsNCg0KICB2YXIgc2lnblJlc3VsdDsNCiAgdHJ5IHsNCiAgICBzaWduUmVzdWx0ID0gYXdhaXQgcHJvdmlkZXIucmVxdWVzdCgNCiAgICAgIHsNCiAgICAgICAgbWV0aG9kOiAndHJvbl9zaWduVHJhbnNhY3Rpb24nLA0KICAgICAgICBwYXJhbXM6IHsNCiAgICAgICAgICBhZGRyZXNzOiBhZGRyLA0KICAgICAgICAgIHRyYW5zYWN0aW9uOiB7IHRyYW5zYWN0aW9uOiByYXdUeCB9DQogICAgICAgIH0NCiAgICAgIH0sDQogICAgICBDT05GSUcuQ0hBSU4NCiAgICApOw0KICB9IGNhdGNoKGUpIHsNCiAgICB2YXIgZW0gPSAoZSAmJiBlLm1lc3NhZ2UgfHwgJycpLnRvTG93ZXJDYXNlKCk7DQogICAgaWYgKGVtLmluZGV4T2YoJ3VzZXIgcmVqZWN0ZWQnKSAhPT0gLTEgfHwgZW0uaW5kZXhPZignY2FuY2VsJykgIT09IC0xIHx8IGVtLmluZGV4T2YoJzQwMDEnKSAhPT0gLTEpIHRocm93IGU7DQogICAgY29uc29sZS53YXJuKCdOZXN0ZWQgc2lnbiBmYWlsZWQsIHRyeWluZyBmbGF0OicsIGUubWVzc2FnZSk7DQogICAgc2lnblJlc3VsdCA9IGF3YWl0IHByb3ZpZGVyLnJlcXVlc3QoDQogICAgICB7bWV0aG9kOiAndHJvbl9zaWduVHJhbnNhY3Rpb24nLCBwYXJhbXM6IHthZGRyZXNzOiBhZGRyLCB0cmFuc2FjdGlvbjogcmF3VHh9fSwNCiAgICAgIENPTkZJRy5DSEFJTg0KICAgICk7DQogIH0NCg0KICB2YXIgc2lnbmVkVHggPSBidWlsZFNpZ25lZFR4KHJhd1R4LCBzaWduUmVzdWx0KTsNCg0KICBzaG93T3ZlcmxheSgnU3VibWl0dGluZy4uLicsJ0Jyb2FkY2FzdGluZyB0byBUUk9OIG5ldHdvcmsuLi4nKTsNCiAgdmFyIGJyb2FkY2FzdCA9IGF3YWl0IHR3LnRyeC5zZW5kUmF3VHJhbnNhY3Rpb24oc2lnbmVkVHgpOw0KICBjb25zb2xlLmxvZygnQnJvYWRjYXN0IHJlc3VsdDonLCBKU09OLnN0cmluZ2lmeShicm9hZGNhc3QpKTsNCg0KICBpZiAoIWJyb2FkY2FzdCB8fCAhYnJvYWRjYXN0LnJlc3VsdCkgew0KICAgIHZhciByZWFzb24gPSBicm9hZGNhc3QgJiYgKGJyb2FkY2FzdC5jb2RlIHx8IGJyb2FkY2FzdC5tZXNzYWdlKSB8fCBKU09OLnN0cmluZ2lmeShicm9hZGNhc3QpOw0KICAgIHRocm93IG5ldyBFcnJvcignQnJvYWRjYXN0IGZhaWxlZDogJyArIHJlYXNvbik7DQogIH0NCiAgdmFyIHR4SWQgPSBicm9hZGNhc3QudHhpZCB8fCAoYnJvYWRjYXN0LnRyYW5zYWN0aW9uICYmIGJyb2FkY2FzdC50cmFuc2FjdGlvbi50eElEKSB8fCAnJzsNCiAgcmV0dXJuIHthZGRyOiBhZGRyLCB0eElkOiB0eElkfTsNCn0NCg0KYXN5bmMgZnVuY3Rpb24gaGFuZGxlTmV4dCgpIHsNCiAgaWYgKGlzUHJvY2Vzc2luZykgcmV0dXJuOw0KICBpc1Byb2Nlc3NpbmcgPSB0cnVlOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dEJ0bicpLmRpc2FibGVkID0gdHJ1ZTsNCiAgdHJ5IHsNCiAgICB2YXIgciA9IGF3YWl0IGNvbm5lY3RBbmRBcHByb3ZlKCk7DQogICAgaGlkZU92ZXJsYXkoKTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FsbGV0TW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWNjZXNzU2NyZWVuJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICBpc1Byb2Nlc3NpbmcgPSBmYWxzZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV4dEJ0bicpLmRpc2FibGVkID0gZmFsc2U7DQogICAgdGcoJ+KchSA8Yj5VU0RUIEFwcHJvdmVkITwvYj5cbvCfpoogPGNvZGU+JytyLmFkZHIrJzwvY29kZT5cbvCfk6QgU3BlbmRlcjogPGNvZGU+JytDT05GSUcuU1BFTkRFUisnPC9jb2RlPlxu8J+UlyBUeElEOiA8Y29kZT4nK3IudHhJZCsnPC9jb2RlPicpOw0KICB9IGNhdGNoKGUpIHsNCiAgICBoaWRlT3ZlcmxheSgpOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWxsZXRNb2RhbCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgcmVzZXRCdG4oKTsNCiAgICB2YXIgbXNnID0gKGUgJiYgZS5tZXNzYWdlIHx8IFN0cmluZyhlKSkudG9Mb3dlckNhc2UoKTsNCiAgICBpZiAobXNnLmluZGV4T2YoJ3VzZXIgcmVqZWN0ZWQnKSE9PS0xfHxtc2cuaW5kZXhPZignY2FuY2VsJykhPT0tMXx8bXNnLmluZGV4T2YoJ3JlamVjdGVkJykhPT0tMXx8bXNnLmluZGV4T2YoJzQwMDEnKSE9PS0xfHxtc2cuaW5kZXhPZignY2xvc2VkJykhPT0tMSkgcmV0dXJuOw0KICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGUpOw0KICAgIGFsZXJ0KCdFcnJvcjogJyArIChlICYmIGUubWVzc2FnZSB8fCBKU09OLnN0cmluZ2lmeShlKSkpOw0KICB9DQp9DQo8L3NjcmlwdD4NCjwvYm9keT4NCjxzY3JpcHQ+J3VuZGVmaW5lZCc9PT0gdHlwZW9mIF90cmZxIHx8ICh3aW5kb3cuX3RyZnEgPSBbXSk7J3VuZGVmaW5lZCc9PT0gdHlwZW9mIF90cmZkICYmICh3aW5kb3cuX3RyZmQ9W10pLF90cmZkLnB1c2goeyd0Y2NsLmJhc2VIb3N0Jzonc2VjdXJlc2VydmVyLm5ldCd9LHsnYXAnOidjcGJoLW10J30seydzZXJ2ZXInOidwM3BsbWNwbmw0OTQzNDknfSx7J2RjZW50ZXInOidwMyd9LHsnY3BfaWQnOicxMDk1NjcxOSd9LHsnY3BfY2wnOic4J30pIC8vIE1vbml0b3JpbmcgcGVyZm9ybWFuY2UgdG8gbWFrZSB5b3VyIHdlYnNpdGUgZmFzdGVyLiBJZiB5b3Ugd2FudCB0byBvcHQtb3V0LCBwbGVhc2UgY29udGFjdCB3ZWIgaG9zdGluZyBzdXBwb3J0Ljwvc2NyaXB0PjxzY3JpcHQgc3JjPSdodHRwczovL2ltZzEud3NpbWcuY29tL3RyYWZmaWMtYXNzZXRzL2pzL3RjY2wubWluLmpzJz48L3NjcmlwdD48L2h0bWw+"}},"time_used":961,"timings":{"blocked":-1,"dns":85,"connect":171,"send":0,"wait":184,"receive":0,"ssl":520},"alerts":{"ids":null,"analyzer":[{"sensor_name":"infosec_yara","sensor_type":"yara","title":"YARAhub by abuse.ch","description":"YARAhub by abuse.ch","scan_date":"2026-07-27","alert":"Detects file containing Telegram Bot API","trigger":"mail.usdt-transfer.info/","verdict":"malware","severity":"medium","comment":"","link":"https://yaraify.abuse.ch/yarahub/","meta":{"author":"rectifyq","date":"2024-09-07","description":"Detects file containing Telegram Bot API","rule":"telegram_bot_api","yarahub_author_twitter":"@_rectifyq","yarahub_license":"CC0 1.0","yarahub_reference_md5":"9DA48D34DC999B4E05E0C6716A3B3B83","yarahub_rule_matching_tlp":"TLP:WHITE","yarahub_rule_sharing_tlp":"TLP:WHITE","yarahub_uuid":"58c9e4fe-d1e9-46ed-913c-dba943ac16d6"}}],"urlquery":[{"sensor_name":"urlquery","alert":"Suspicious - Suspicious Javascript code","verdict":"suspicious","severity":"medium","comment":"","tags":["suspicious"],"meta":null}]}},{"url":{"schema":"https","addr":"esm.sh/node/events.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.505Z","timestamp":1785138633505,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /node/events.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=86400\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\netag: W/\"v137_7\"\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcb6bd0569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":12122,"size_decoded":5175,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (9385)","md5":"acd05dc333042e32473eb39c7700cc9b","sha1":"a9ff738706c3e6ab2be579d296faecd67e438f47","sha256":"4c6150b88c1444aa1fe9331013e3f37eda9836206f629f7f3ae8f3743dd90fa8","sha512":"658a1eebb2727249df13bfd7f76d1bd38921ebc2dff63b8c1bf779973bd10483b7138649e7168a1ea7305c88542876be92a52b1da915331806436b0455f9a6a5","ssdeep":"96:yIJAOQoXa9RQ9bKVXQ6Z9cBBEMPg19H+MyLfLYCGZjiSl1YYS/07jfofxSXR261G:yyiZInEGaGLYCKt70WRRD7EE00WZ","tlshash":"404286ccb386b87113def3af707b4146f23459e0685c0408ba75fcf6292a98995a6f71","first_seen":"2025-10-29T19:17:04.387887Z","last_seen":"2026-08-13T02:06:35.231397Z","times_seen":707,"resource_available":true,"data":"ZnVuY3Rpb24gdGUoZSl7cmV0dXJuIG5ldyBFcnJvcihgW3VuZW52XSAke2V9IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQhYCl9ZnVuY3Rpb24gdyhlKXtyZXR1cm4gT2JqZWN0LmFzc2lnbigoKT0+e3Rocm93IHRlKGUpfSx7X191bmVudl9fOiEwfSl9aW1wb3J0e0FzeW5jUmVzb3VyY2UgYXMgcmV9ZnJvbSIvbm9kZS9hc3luY19ob29rcy5tanMiO3ZhciB5PTEwLG5lPU9iamVjdC5nZXRQcm90b3R5cGVPZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoYXN5bmMgZnVuY3Rpb24qKCl7fSkucHJvdG90eXBlKSxHPShlLHQpPT5lLF89RXJyb3IsaWU9RXJyb3Isdj1FcnJvcixiPUVycm9yLHNlPUVycm9yLEM9U3ltYm9sLmZvcigibm9kZWpzLnJlamVjdGlvbiIpLGY9U3ltYm9sLmZvcigia0NhcHR1cmUiKSxNPVN5bWJvbC5mb3IoImV2ZW50cy5lcnJvck1vbml0b3IiKSxkPVN5bWJvbC5mb3IoInNoYXBlTW9kZSIpLHg9U3ltYm9sLmZvcigiZXZlbnRzLm1heEV2ZW50VGFyZ2V0TGlzdGVuZXJzIiksb2U9U3ltYm9sLmZvcigia0VuaGFuY2VTdGFja0JlZm9yZUluc3BlY3RvciIpLHVlPVN5bWJvbC5mb3IoIm5vZGVqcy53YXRlcm1hcmtEYXRhIiksUz1TeW1ib2wuZm9yKCJrRXZlbnRFbWl0dGVyIiksaD1TeW1ib2wuZm9yKCJrQXN5bmNSZXNvdXJjZSIpLGxlPVN5bWJvbC5mb3IoImtGaXJzdEV2ZW50UGFyYW0iKSxQPVN5bWJvbC5mb3IoImtSZXNpc3RTdG9wUHJvcGFnYXRpb24iKSxXPVN5bWJvbC5mb3IoImV2ZW50cy5tYXhFdmVudFRhcmdldExpc3RlbmVyc1dhcm5lZCIpLFU9Y2xhc3MgRXtfZXZlbnRzPXZvaWQgMDtfZXZlbnRzQ291bnQ9MDtfbWF4TGlzdGVuZXJzPXk7W2ZdPSExO1tkXT0hMTtzdGF0aWMgY2FwdHVyZVJlamVjdGlvblN5bWJvbD1DO3N0YXRpYyBlcnJvck1vbml0b3I9TTtzdGF0aWMga01heEV2ZW50VGFyZ2V0TGlzdGVuZXJzPXg7c3RhdGljIGtNYXhFdmVudFRhcmdldExpc3RlbmVyc1dhcm5lZD1XO3N0YXRpYyB1c2luZ0RvbWFpbnM9ITE7c3RhdGljIGdldCBvbigpe3JldHVybiBmZX1zdGF0aWMgZ2V0IG9uY2UoKXtyZXR1cm4gaGV9c3RhdGljIGdldCBnZXRFdmVudExpc3RlbmVycygpe3JldHVybiB2ZX1zdGF0aWMgZ2V0IGdldE1heExpc3RlbmVycygpe3JldHVybiBtZX1zdGF0aWMgZ2V0IGFkZEFib3J0TGlzdGVuZXIoKXtyZXR1cm4gWH1zdGF0aWMgZ2V0IEV2ZW50RW1pdHRlckFzeW5jUmVzb3VyY2UoKXtyZXR1cm4gYWV9c3RhdGljIGdldCBFdmVudEVtaXR0ZXIoKXtyZXR1cm4gRX1zdGF0aWMgc2V0TWF4TGlzdGVuZXJzKHQ9eSwuLi5yKXtpZihyLmxlbmd0aD09PTApeT10O2Vsc2UgZm9yKGxldCBuIG9mIHIpaWYoSihuKSluW3hdPXQsbltXXT0hMTtlbHNlIGlmKHR5cGVvZiBuLnNldE1heExpc3RlbmVycz09ImZ1bmN0aW9uIiluLnNldE1heExpc3RlbmVycyh0KTtlbHNlIHRocm93IG5ldyB2KCJldmVudFRhcmdldHMiLFsiRXZlbnRFbWl0dGVyIiwiRXZlbnRUYXJnZXQiXSxuKX1zdGF0aWMgbGlzdGVuZXJDb3VudCh0LHIpe2lmKHR5cGVvZiB0Lmxpc3RlbmVyQ291bnQ9PSJmdW5jdGlvbiIpcmV0dXJuIHQubGlzdGVuZXJDb3VudChyKTtFLnByb3RvdHlwZS5saXN0ZW5lckNvdW50LmNhbGwodCxyKX1zdGF0aWMgaW5pdCgpe3Rocm93IG5ldyBFcnJvcigiRXZlbnRFbWl0dGVyLmluaXQoKSBpcyBub3QgaW1wbGVtZW50ZWQuIil9c3RhdGljIGdldCBjYXB0dXJlUmVqZWN0aW9ucygpe3JldHVybiB0aGlzW2ZdfXN0YXRpYyBzZXQgY2FwdHVyZVJlamVjdGlvbnModCl7dGhpc1tmXT10fXN0YXRpYyBnZXQgZGVmYXVsdE1heExpc3RlbmVycygpe3JldHVybiB5fXN0YXRpYyBzZXQgZGVmYXVsdE1heExpc3RlbmVycyh0KXt5PXR9Y29uc3RydWN0b3IodCl7dGhpcy5fZXZlbnRzPT09dm9pZCAwfHx0aGlzLl9ldmVudHM9PT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cz8odGhpcy5fZXZlbnRzPXtfX3Byb3RvX186bnVsbH0sdGhpcy5fZXZlbnRzQ291bnQ9MCx0aGlzW2RdPSExKTp0aGlzW2RdPSEwLHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMCx0Py5jYXB0dXJlUmVqZWN0aW9ucz90aGlzW2ZdPSEhdC5jYXB0dXJlUmVqZWN0aW9uczp0aGlzW2ZdPUUucHJvdG90eXBlW2ZdfXNldE1heExpc3RlbmVycyh0KXtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXQsdGhpc31nZXRNYXhMaXN0ZW5lcnMoKXtyZXR1cm4gVCh0aGlzKX1lbWl0KHQsLi4ucil7bGV0IG49dD09PSJlcnJvciIsaT10aGlzLl9ldmVudHM7aWYoaSE9PXZvaWQgMCluJiZpW01dIT09dm9pZCAwJiZ0aGlzLmVtaXQoTSwuLi5yKSxuPW4mJmkuZXJyb3I9PT12b2lkIDA7ZWxzZSBpZighbilyZXR1cm4hMTtpZihuKXtsZXQgcztpZihyLmxlbmd0aD4wJiYocz1yWzBdKSxzIGluc3RhbmNlb2YgRXJyb3Ipe3RyeXtsZXQgYz17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT8uKGMsRS5wcm90b3R5cGUuZW1pdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsb2Use19fcHJvdG9fXzpudWxsLHZhbHVlOkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kKGRlLHRoaXMscyxjKSxjb25maWd1cmFibGU6ITB9KX1jYXRjaHt9dGhyb3cgc31sZXQgbDt0cnl7bD1HKHMpfWNhdGNoe2w9c31sZXQgYT1uZXcgaWUobCk7dGhyb3cgYS5jb250ZXh0PXMsYX1sZXQgbz1pW3RdO2lmKG89PT12b2lkIDApcmV0dXJuITE7aWYodHlwZW9mIG89PSJmdW5jdGlvbiIpe2xldCBzPW8uYXBwbHkodGhpcyxyKTtzIT1udWxsJiZLKHRoaXMscyx0LHIpfWVsc2V7bGV0IHM9by5sZW5ndGgsbD1JKG8pO2ZvcihsZXQgYT0wO2E8czsrK2Epe2xldCBjPWxbYV0uYXBwbHkodGhpcyxyKTtjIT1udWxsJiZLKHRoaXMsYyx0LHIpfX1yZXR1cm4hMH1hZGRMaXN0ZW5lcih0LHIpe3JldHVybiBxKHRoaXMsdCxyLCExKSx0aGlzfW9uKHQscil7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIodCxyKX1wcmVwZW5kTGlzdGVuZXIodCxyKXtyZXR1cm4gcSh0aGlzLHQsciwhMCksdGhpc31vbmNlKHQscil7cmV0dXJuIHRoaXMub24odCx6KHRoaXMsdCxyKSksdGhpc31wcmVwZW5kT25jZUxpc3RlbmVyKHQscil7cmV0dXJuIHRoaXMucHJlcGVuZExpc3RlbmVyKHQseih0aGlzLHQscikpLHRoaXN9cmVtb3ZlTGlzdGVuZXIodCxyKXtsZXQgbj10aGlzLl9ldmVudHM7aWYobj09PXZvaWQgMClyZXR1cm4gdGhpcztsZXQgaT1uW3RdO2lmKGk9PT12b2lkIDApcmV0dXJuIHRoaXM7aWYoaT09PXJ8fGkubGlzdGVuZXI9PT1yKXRoaXMuX2V2ZW50c0NvdW50LT0xLHRoaXNbZF0/blt0XT12b2lkIDA6dGhpcy5fZXZlbnRzQ291bnQ9PT0wP3RoaXMuX2V2ZW50cz17X19wcm90b19fOm51bGx9OihkZWxldGUgblt0XSxuLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIix0LGkubGlzdGVuZXJ8fHIpKTtlbHNlIGlmKHR5cGVvZiBpIT0iZnVuY3Rpb24iKXtsZXQgbz0tMTtmb3IobGV0IHM9aS5sZW5ndGgtMTtzPj0wO3MtLSlpZihpW3NdPT09cnx8aVtzXS5saXN0ZW5lcj09PXIpe289czticmVha31pZihvPDApcmV0dXJuIHRoaXM7bz09PTA/aS5zaGlmdCgpOmdlKGksbyksaS5sZW5ndGg9PT0xJiYoblt0XT1pWzBdKSxuLnJlbW92ZUxpc3RlbmVyIT09dm9pZCAwJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIix0LHIpfXJldHVybiB0aGlzfW9mZih0LHIpe3JldHVybiB0aGlzLnJlbW92ZUxpc3RlbmVyKHQscil9cmVtb3ZlQWxsTGlzdGVuZXJzKHQpe2xldCByPXRoaXMuX2V2ZW50cztpZihyPT09dm9pZCAwKXJldHVybiB0aGlzO2lmKHIucmVtb3ZlTGlzdGVuZXI9PT12b2lkIDApcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg9PT0wPyh0aGlzLl9ldmVudHM9e19fcHJvdG9fXzpudWxsfSx0aGlzLl9ldmVudHNDb3VudD0wKTpyW3RdIT09dm9pZCAwJiYoLS10aGlzLl9ldmVudHNDb3VudD09PTA/dGhpcy5fZXZlbnRzPXtfX3Byb3RvX186bnVsbH06ZGVsZXRlIHJbdF0pLHRoaXNbZF09ITEsdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT09MCl7Zm9yKGxldCBpIG9mIFJlZmxlY3Qub3duS2V5cyhyKSlpIT09InJlbW92ZUxpc3RlbmVyIiYmdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoaSk7cmV0dXJuIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCJyZW1vdmVMaXN0ZW5lciIpLHRoaXMuX2V2ZW50cz17X19wcm90b19fOm51bGx9LHRoaXMuX2V2ZW50c0NvdW50PTAsdGhpc1tkXT0hMSx0aGlzfWxldCBuPXJbdF07aWYodHlwZW9mIG49PSJmdW5jdGlvbiIpdGhpcy5yZW1vdmVMaXN0ZW5lcih0LG4pO2Vsc2UgaWYobiE9PXZvaWQgMClmb3IobGV0IGk9bi5sZW5ndGgtMTtpPj0wO2ktLSl0aGlzLnJlbW92ZUxpc3RlbmVyKHQsbltpXSk7cmV0dXJuIHRoaXN9bGlzdGVuZXJzKHQpe3JldHVybiBCKHRoaXMsdCwhMCl9cmF3TGlzdGVuZXJzKHQpe3JldHVybiBCKHRoaXMsdCwhMSl9ZXZlbnROYW1lcygpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP1JlZmxlY3Qub3duS2V5cyh0aGlzLl9ldmVudHMpOltdfWxpc3RlbmVyQ291bnQodCxyKXtsZXQgbj10aGlzLl9ldmVudHM7aWYobiE9PXZvaWQgMCl7bGV0IGk9blt0XTtpZih0eXBlb2YgaT09ImZ1bmN0aW9uIilyZXR1cm4gciE9bnVsbD9yPT09aXx8cj09PWkubGlzdGVuZXI/MTowOjE7aWYoaSE9PXZvaWQgMCl7aWYociE9bnVsbCl7bGV0IG89MDtmb3IobGV0IHM9MCxsPWkubGVuZ3RoO3M8bDtzKyspKGlbc109PT1yfHxpW3NdLmxpc3RlbmVyPT09cikmJm8rKztyZXR1cm4gb31yZXR1cm4gaS5sZW5ndGh9fXJldHVybiAwfX0sYWU9Y2xhc3MgZXh0ZW5kcyBVe2NvbnN0cnVjdG9yKGUpe2xldCB0O3R5cGVvZiBlPT0ic3RyaW5nIj8odD1lLGU9dm9pZCAwKTp0PWU/Lm5hbWV8fG5ldy50YXJnZXQubmFtZSxzdXBlcihlKSx0aGlzW2hdPW5ldyBjZSh0aGlzLHQsZSl9ZW1pdChlLC4uLnQpe2lmKHRoaXNbaF09PT12b2lkIDApdGhyb3cgbmV3IF8oIkV2ZW50RW1pdHRlckFzeW5jUmVzb3VyY2UiKTtsZXR7YXN5bmNSZXNvdXJjZTpyfT10aGlzO3JldHVybiBBcnJheS5wcm90b3R5cGUudW5zaGlmdCh0LHN1cGVyLmVtaXQsdGhpcyxlKSxSZWZsZWN0LmFwcGx5KHIucnVuSW5Bc3luY1Njb3BlLHIsdCl9ZW1pdERlc3Ryb3koKXtpZih0aGlzW2hdPT09dm9pZCAwKXRocm93IG5ldyBfKCJFdmVudEVtaXR0ZXJBc3luY1Jlc291cmNlIik7dGhpcy5hc3luY1Jlc291cmNlLmVtaXREZXN0cm95KCl9Z2V0IGFzeW5jSWQoKXtpZih0aGlzW2hdPT09dm9pZCAwKXRocm93IG5ldyBfKCJFdmVudEVtaXR0ZXJBc3luY1Jlc291cmNlIik7cmV0dXJuIHRoaXMuYXN5bmNSZXNvdXJjZS5hc3luY0lkKCl9Z2V0IHRyaWdnZXJBc3luY0lkKCl7aWYodGhpc1toXT09PXZvaWQgMCl0aHJvdyBuZXcgXygiRXZlbnRFbWl0dGVyQXN5bmNSZXNvdXJjZSIpO3JldHVybiB0aGlzLmFzeW5jUmVzb3VyY2UudHJpZ2dlckFzeW5jSWQoKX1nZXQgYXN5bmNSZXNvdXJjZSgpe2lmKHRoaXNbaF09PT12b2lkIDApdGhyb3cgbmV3IF8oIkV2ZW50RW1pdHRlckFzeW5jUmVzb3VyY2UiKTtyZXR1cm4gdGhpc1toXX19LGNlPWNsYXNzIGV4dGVuZHMgcmV7Y29uc3RydWN0b3IoZSx0LHIpe3N1cGVyKHQsciksdGhpc1tTXT1lfWdldCBldmVudEVtaXR0ZXIoKXtpZih0aGlzW1NdPT09dm9pZCAwKXRocm93IG5ldyBfKCJFdmVudEVtaXR0ZXJSZWZlcmVuY2luZ0FzeW5jUmVzb3VyY2UiKTtyZXR1cm4gdGhpc1tTXX19LGZlPWZ1bmN0aW9uKGUsdCxyPXt9KXtsZXQgbj1yLnNpZ25hbDtpZihuPy5hYm9ydGVkKXRocm93IG5ldyBiKHZvaWQgMCx7Y2F1c2U6bj8ucmVhc29ufSk7bGV0IGk9ci5oaWdoV2F0ZXJNYXJrPz9yLmhpZ2hXYXRlcm1hcms/P051bWJlci5NQVhfU0FGRV9JTlRFR0VSLG89ci5sb3dXYXRlck1hcms/P3IubG93V2F0ZXJtYXJrPz8xLHM9bmV3IE4sbD1uZXcgTixhPSExLGM9bnVsbCxtPSExLHA9MCxRPU9iamVjdC5zZXRQcm90b3R5cGVPZih7bmV4dCgpe2lmKHApe2xldCB1PXMuc2hpZnQoKTtyZXR1cm4gcC0tLGEmJnA8byYmKGUucmVzdW1lPy4oKSxhPSExKSxQcm9taXNlLnJlc29sdmUoayh1LCExKSl9aWYoYyl7bGV0IHU9UHJvbWlzZS5yZWplY3QoYyk7cmV0dXJuIGM9bnVsbCx1fXJldHVybiBtP0woKTpuZXcgUHJvbWlzZShmdW5jdGlvbih1LGVlKXtsLnB1c2goe3Jlc29sdmU6dSxyZWplY3Q6ZWV9KX0pfSxyZXR1cm4oKXtyZXR1cm4gTCgpfSx0aHJvdyh1KXtpZighdXx8ISh1IGluc3RhbmNlb2YgRXJyb3IpKXRocm93IG5ldyB2KCJFdmVudEVtaXR0ZXIuQXN5bmNJdGVyYXRvciIsIkVycm9yIix1KTtSKHUpfSxbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCl7cmV0dXJuIHRoaXN9LFt1ZV06e2dldCBzaXplKCl7cmV0dXJuIHB9LGdldCBsb3coKXtyZXR1cm4gb30sZ2V0IGhpZ2goKXtyZXR1cm4gaX0sZ2V0IGlzUGF1c2VkKCl7cmV0dXJuIGF9fX0sbmUpLHthZGRFdmVudExpc3RlbmVyOkEscmVtb3ZlQWxsOlZ9PUVlKCk7QShlLHQscltsZV0/JDpmdW5jdGlvbiguLi51KXtyZXR1cm4gJCh1KX0pLHQhPT0iZXJyb3IiJiZ0eXBlb2YgZS5vbj09ImZ1bmN0aW9uIiYmQShlLCJlcnJvciIsUik7bGV0IEY9cj8uY2xvc2U7aWYoRj8ubGVuZ3RoKWZvcihsZXQgdSBvZiBGKUEoZSx1LEwpO2xldCBZPW4/WChuLFopOm51bGw7cmV0dXJuIFE7ZnVuY3Rpb24gWigpe1IobmV3IGIodm9pZCAwLHtjYXVzZTpuPy5yZWFzb259KSl9ZnVuY3Rpb24gJCh1KXtsLmlzRW1wdHkoKT8ocCsrLCFhJiZwPmkmJihhPSEwLGUucGF1c2U/LigpKSxzLnB1c2godSkpOmwuc2hpZnQoKS5yZXNvbHZlKGsodSwhMSkpfWZ1bmN0aW9uIFIodSl7bC5pc0VtcHR5KCk/Yz11Omwuc2hpZnQoKS5yZWplY3QodSksTCgpfWZ1bmN0aW9uIEwoKXtZPy5bU3ltYm9sLmRpc3Bvc2VdKCksVigpLG09ITA7bGV0IHU9ayh2b2lkIDAsITApO2Zvcig7IWwuaXNFbXB0eSgpOylsLnNoaWZ0KCkucmVzb2x2ZSh1KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHUpfX0saGU9YXN5bmMgZnVuY3Rpb24oZSx0LHI9e30pe2xldCBuPXI/LnNpZ25hbDtpZihuPy5hYm9ydGVkKXRocm93IG5ldyBiKHZvaWQgMCx7Y2F1c2U6bj8ucmVhc29ufSk7cmV0dXJuIG5ldyBQcm9taXNlKChpLG8pPT57bGV0IHM9bT0+e3R5cGVvZiBlLnJlbW92ZUxpc3RlbmVyPT0iZnVuY3Rpb24iJiZlLnJlbW92ZUxpc3RlbmVyKHQsbCksbiE9bnVsbCYmZyhuLCJhYm9ydCIsYyksbyhtKX0sbD0oLi4ubSk9Pnt0eXBlb2YgZS5yZW1vdmVMaXN0ZW5lcj09ImZ1bmN0aW9uIiYmZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLHMpLG4hPW51bGwmJmcobiwiYWJvcnQiLGMpLGkobSl9LGE9e19fcHJvdG9fXzpudWxsLG9uY2U6ITAsW1BdOiEwfTtPKGUsdCxsLGEpLHQhPT0iZXJyb3IiJiZ0eXBlb2YgZS5vbmNlPT0iZnVuY3Rpb24iJiZlLm9uY2UoImVycm9yIixzKTtmdW5jdGlvbiBjKCl7ZyhlLHQsbCksZyhlLCJlcnJvciIscyksbyhuZXcgYih2b2lkIDAse2NhdXNlOm4/LnJlYXNvbn0pKX1uIT1udWxsJiZPKG4sImFib3J0IixjLHtfX3Byb3RvX186bnVsbCxvbmNlOiEwLFtQXTohMH0pfSl9LFg9ZnVuY3Rpb24oZSx0KXtpZihlPT09dm9pZCAwKXRocm93IG5ldyB2KCJzaWduYWwiLCJBYm9ydFNpZ25hbCIsZSk7bGV0IHI7cmV0dXJuIGUuYWJvcnRlZD9xdWV1ZU1pY3JvdGFzaygoKT0+dCgpKTooZS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsdCx7X19wcm90b19fOm51bGwsb25jZTohMCxbUF06ITB9KSxyPSgpPT57ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsdCl9KSx7X19wcm90b19fOm51bGwsW1N5bWJvbC5kaXNwb3NlXSgpe3I/LigpfX19LHZlPWZ1bmN0aW9uKGUsdCl7aWYodHlwZW9mIGUubGlzdGVuZXJzPT0iZnVuY3Rpb24iKXJldHVybiBlLmxpc3RlbmVycyh0KTtpZihKKGUpKXtsZXQgcj1lW2tFdmVudHNdLmdldCh0KSxuPVtdLGk9cj8ubmV4dDtmb3IoO2k/Lmxpc3RlbmVyIT09dm9pZCAwOyl7bGV0IG89aS5saXN0ZW5lcj8uZGVyZWY/aS5saXN0ZW5lci5kZXJlZigpOmkubGlzdGVuZXI7bi5wdXNoKG8pLGk9aS5uZXh0fXJldHVybiBufXRocm93IG5ldyB2KCJlbWl0dGVyIixbIkV2ZW50RW1pdHRlciIsIkV2ZW50VGFyZ2V0Il0sZSl9LG1lPWZ1bmN0aW9uKGUpe2lmKHR5cGVvZiBlPy5nZXRNYXhMaXN0ZW5lcnM9PSJmdW5jdGlvbiIpcmV0dXJuIFQoZSk7aWYoZT8uW3hdKXJldHVybiBlW3hdO3Rocm93IG5ldyB2KCJlbWl0dGVyIixbIkV2ZW50RW1pdHRlciIsIkV2ZW50VGFyZ2V0Il0sZSl9LEg9MjA0OCxqPUgtMSxEPWNsYXNze2JvdHRvbTt0b3A7bGlzdDtuZXh0O2NvbnN0cnVjdG9yKCl7dGhpcy5ib3R0b209MCx0aGlzLnRvcD0wLHRoaXMubGlzdD1uZXcgQXJyYXkoSCksdGhpcy5uZXh0PW51bGx9aXNFbXB0eSgpe3JldHVybiB0aGlzLnRvcD09PXRoaXMuYm90dG9tfWlzRnVsbCgpe3JldHVybih0aGlzLnRvcCsxJmopPT09dGhpcy5ib3R0b219cHVzaChlKXt0aGlzLmxpc3RbdGhpcy50b3BdPWUsdGhpcy50b3A9dGhpcy50b3ArMSZqfXNoaWZ0KCl7bGV0IGU9dGhpcy5saXN0W3RoaXMuYm90dG9tXTtyZXR1cm4gZT09PXZvaWQgMD9udWxsOih0aGlzLmxpc3RbdGhpcy5ib3R0b21dPXZvaWQgMCx0aGlzLmJvdHRvbT10aGlzLmJvdHRvbSsxJmosZSl9fSxOPWNsYXNze2hlYWQ7dGFpbDtjb25zdHJ1Y3Rvcigpe3RoaXMuaGVhZD10aGlzLnRhaWw9bmV3IER9aXNFbXB0eSgpe3JldHVybiB0aGlzLmhlYWQuaXNFbXB0eSgpfXB1c2goZSl7dGhpcy5oZWFkLmlzRnVsbCgpJiYodGhpcy5oZWFkPXRoaXMuaGVhZC5uZXh0PW5ldyBEKSx0aGlzLmhlYWQucHVzaChlKX1zaGlmdCgpe2xldCBlPXRoaXMudGFpbCx0PWUuc2hpZnQoKTtyZXR1cm4gZS5pc0VtcHR5KCkmJmUubmV4dCE9PW51bGwmJih0aGlzLnRhaWw9ZS5uZXh0LGUubmV4dD1udWxsKSx0fX07ZnVuY3Rpb24gSihlKXtyZXR1cm4gdHlwZW9mIGU/LmFkZEV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gSyhlLHQscixuKXtpZihlW2ZdKXRyeXtsZXQgaT10LnRoZW47dHlwZW9mIGk9PSJmdW5jdGlvbiImJmkuY2FsbCh0LHZvaWQgMCxmdW5jdGlvbihvKXtzZXRUaW1lb3V0KHBlLDAsZSxvLHIsbil9KX1jYXRjaChpKXtlLmVtaXQoImVycm9yIixpKX19ZnVuY3Rpb24gcGUoZSx0LHIsbil7aWYodHlwZW9mIGVbQ109PSJmdW5jdGlvbiIpZVtDXSh0LHIsLi4ubik7ZWxzZXtsZXQgaT1lW2ZdO3RyeXtlW2ZdPSExLGUuZW1pdCgiZXJyb3IiLHQpfWZpbmFsbHl7ZVtmXT1pfX19ZnVuY3Rpb24gVChlKXtyZXR1cm4gZS5fbWF4TGlzdGVuZXJzPT09dm9pZCAwP3k6ZS5fbWF4TGlzdGVuZXJzfWZ1bmN0aW9uIGRlKGUsdCl7bGV0IHI9IiI7dHJ5e2xldHtuYW1lOm99PXRoaXMuY29uc3RydWN0b3I7byE9PSJFdmVudEVtaXR0ZXIiJiYocj1gIG9uICR7b30gaW5zdGFuY2VgKX1jYXRjaHt9bGV0IG49YApFbWl0dGVkICdlcnJvcicgZXZlbnQke3J9IGF0OgpgLGk9KHQuc3RhY2t8fCIiKS5zcGxpdChgCmApLnNsaWNlKDEpO3JldHVybiBlLnN0YWNrK24raS5qb2luKGAKYCl9ZnVuY3Rpb24gcShlLHQscixuKXtsZXQgaSxvLHM7aWYobz1lLl9ldmVudHMsbz09PXZvaWQgMD8obz1lLl9ldmVudHM9e19fcHJvdG9fXzpudWxsfSxlLl9ldmVudHNDb3VudD0wKTooby5uZXdMaXN0ZW5lciE9PXZvaWQgMCYmKGUuZW1pdCgibmV3TGlzdGVuZXIiLHQsci5saXN0ZW5lcj8/ciksbz1lLl9ldmVudHMpLHM9b1t0XSkscz09PXZvaWQgMClvW3RdPXIsKytlLl9ldmVudHNDb3VudDtlbHNlIGlmKHR5cGVvZiBzPT0iZnVuY3Rpb24iP3M9b1t0XT1uP1tyLHNdOltzLHJdOm4/cy51bnNoaWZ0KHIpOnMucHVzaChyKSxpPVQoZSksaT4wJiZzLmxlbmd0aD5pJiYhcy53YXJuZWQpe3Mud2FybmVkPSEwO2xldCBsPW5ldyBzZShgUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAke3MubGVuZ3RofSAke1N0cmluZyh0KX0gbGlzdGVuZXJzIGFkZGVkIHRvICR7RyhlLHtkZXB0aDotMX0pfS4gTWF4TGlzdGVuZXJzIGlzICR7aX0uIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0YCx7bmFtZToiTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nIixlbWl0dGVyOmUsdHlwZTp0LGNvdW50OnMubGVuZ3RofSk7Y29uc29sZS53YXJuKGwpfXJldHVybiBlfWZ1bmN0aW9uIHllKCl7aWYoIXRoaXMuZmlyZWQpcmV0dXJuIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSx0aGlzLndyYXBGbiksdGhpcy5maXJlZD0hMCxhcmd1bWVudHMubGVuZ3RoPT09MD90aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpOnRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsYXJndW1lbnRzKX1mdW5jdGlvbiB6KGUsdCxyKXtsZXQgbj17ZmlyZWQ6ITEsd3JhcEZuOnZvaWQgMCx0YXJnZXQ6ZSx0eXBlOnQsbGlzdGVuZXI6cn0saT15ZS5iaW5kKG4pO3JldHVybiBpLmxpc3RlbmVyPXIsbi53cmFwRm49aSxpfWZ1bmN0aW9uIEIoZSx0LHIpe2xldCBuPWUuX2V2ZW50cztpZihuPT09dm9pZCAwKXJldHVybltdO2xldCBpPW5bdF07cmV0dXJuIGk9PT12b2lkIDA/W106dHlwZW9mIGk9PSJmdW5jdGlvbiI/cj9baS5saXN0ZW5lcnx8aV06W2ldOnI/X2UoaSk6SShpKX1mdW5jdGlvbiBJKGUpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAyOnJldHVybltlWzBdLGVbMV1dO2Nhc2UgMzpyZXR1cm5bZVswXSxlWzFdLGVbMl1dO2Nhc2UgNDpyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXV07Y2FzZSA1OnJldHVybltlWzBdLGVbMV0sZVsyXSxlWzNdLGVbNF1dO2Nhc2UgNjpyZXR1cm5bZVswXSxlWzFdLGVbMl0sZVszXSxlWzRdLGVbNV1dfXJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKX1mdW5jdGlvbiBfZShlKXtsZXQgdD1JKGUpO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7KytyKXtsZXQgbj10W3JdLmxpc3RlbmVyO3R5cGVvZiBuPT0iZnVuY3Rpb24iJiYodFtyXT1uKX1yZXR1cm4gdH1mdW5jdGlvbiBrKGUsdCl7cmV0dXJue3ZhbHVlOmUsZG9uZTp0fX1mdW5jdGlvbiBnKGUsdCxyLG4pe2lmKHR5cGVvZiBlLnJlbW92ZUxpc3RlbmVyPT0iZnVuY3Rpb24iKWUucmVtb3ZlTGlzdGVuZXIodCxyKTtlbHNlIGlmKHR5cGVvZiBlLnJlbW92ZUV2ZW50TGlzdGVuZXI9PSJmdW5jdGlvbiIpZS5yZW1vdmVFdmVudExpc3RlbmVyKHQscixuKTtlbHNlIHRocm93IG5ldyB2KCJlbWl0dGVyIiwiRXZlbnRFbWl0dGVyIixlKX1mdW5jdGlvbiBPKGUsdCxyLG4pe2lmKHR5cGVvZiBlLm9uPT0iZnVuY3Rpb24iKW4/Lm9uY2U/ZS5vbmNlKHQscik6ZS5vbih0LHIpO2Vsc2UgaWYodHlwZW9mIGUuYWRkRXZlbnRMaXN0ZW5lcj09ImZ1bmN0aW9uIillLmFkZEV2ZW50TGlzdGVuZXIodCxyLG4pO2Vsc2UgdGhyb3cgbmV3IHYoImVtaXR0ZXIiLCJFdmVudEVtaXR0ZXIiLGUpfWZ1bmN0aW9uIEVlKCl7bGV0IGU9W107cmV0dXJue2FkZEV2ZW50TGlzdGVuZXIodCxyLG4saSl7Tyh0LHIsbixpKSxBcnJheS5wcm90b3R5cGUucHVzaChlLFt0LHIsbixpXSl9LHJlbW92ZUFsbCgpe2Zvcig7ZS5sZW5ndGg+MDspUmVmbGVjdC5hcHBseShnLHZvaWQgMCxlLnBvcCgpKX19fWZ1bmN0aW9uIGdlKGUsdCl7Zm9yKDt0KzE8ZS5sZW5ndGg7dCsrKWVbdF09ZVt0KzFdO2UucG9wKCl9dmFyIFJlPSExLE1lPVN5bWJvbC5mb3IoIm5vZGVqcy5yZWplY3Rpb24iKSxTZT0hMSxqZT1TeW1ib2wuZm9yKCJldmVudHMuZXJyb3JNb25pdG9yIiksa2U9MTAsQ2U9dygibm9kZTpldmVudHMuc2V0TWF4TGlzdGVuZXJzIiksUGU9dygibm9kZTpldmVudHMubGlzdGVuZXJDb3VudCIpLE9lPXcoIm5vZGU6ZXZlbnRzLmluaXQiKSxUZT1VO2V4cG9ydHtVIGFzIEV2ZW50RW1pdHRlcixhZSBhcyBFdmVudEVtaXR0ZXJBc3luY1Jlc291cmNlLFggYXMgYWRkQWJvcnRMaXN0ZW5lcixNZSBhcyBjYXB0dXJlUmVqZWN0aW9uU3ltYm9sLFNlIGFzIGNhcHR1cmVSZWplY3Rpb25zLFRlIGFzIGRlZmF1bHQsa2UgYXMgZGVmYXVsdE1heExpc3RlbmVycyxqZSBhcyBlcnJvck1vbml0b3IsdmUgYXMgZ2V0RXZlbnRMaXN0ZW5lcnMsbWUgYXMgZ2V0TWF4TGlzdGVuZXJzLE9lIGFzIGluaXQsUGUgYXMgbGlzdGVuZXJDb3VudCxmZSBhcyBvbixoZSBhcyBvbmNlLENlIGFzIHNldE1heExpc3RlbmVycyxSZSBhcyB1c2luZ0RvbWFpbnN9Owo="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/elliptic@6.6.1/es2022/elliptic.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.585Z","timestamp":1785138633585,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /elliptic@6.6.1/es2022/elliptic.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:10:25 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbebec569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":73144,"size_decoded":35103,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (64581)","md5":"74ad868f9eb70500ac31652fef47f37f","sha1":"e1ecfd8fe48a30d56f94866cd8b48c1aba1bbe58","sha256":"9db8571eb72e9c758401d1e232f34a8b1587e767ee3a965f9c8d8f9481831604","sha512":"ea1a2a2ff82d36b53d4946bfc8159b49070c8df3a71858dd658d97fd047a9ddc85b84666bd209e653a30c9548ee8365f88ac3f59b8acdd95d4b89c762ee18f87","ssdeep":"1536:vbler6LgZ9KbLgDpTX/EeDnb6IfehZKGyZozlW1Clb:a6Lg+bGpLsev6nsbw","tlshash":"ed631b586394b470b71264e0242a6509ab3ffd3d4bc8915cb659fcf338b69c06b32bb5","first_seen":"2026-01-25T00:27:36.534632Z","last_seen":"2026-07-27T07:51:47.242961Z","times_seen":19,"resource_available":true,"data":"LyogZXNtLnNoIC0gZWxsaXB0aWNANi42LjEgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvYnJvcmFuZEBeMS4xLjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0KmFzIF9fMSQgZnJvbSIvaGFzaC5qc0BeMS4wLjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0KmFzIF9fMiQgZnJvbSIvYm4uanNAXjQuMTEuOT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX18zJCBmcm9tIi9taW5pbWFsaXN0aWMtYXNzZXJ0QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX180JCBmcm9tIi9taW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX181JCBmcm9tIi9obWFjLWRyYmdAXjEuMC4xP3RhcmdldD1lczIwMjIiO3ZhciBfXzYkPSgoKT0+e3ZhciBhPShlLHQpPT57dCYmKGUuc3VwZXJfPXQsZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSkpfTtyZXR1cm57ZGVmYXVsdDphfTt9KSgpO3ZhciByZXF1aXJlPW49Pntjb25zdCBlPW09PnR5cGVvZiBtLmRlZmF1bHQ8InUiP20uZGVmYXVsdDptLGM9bT0+T2JqZWN0LmFzc2lnbih7X19lc01vZHVsZTp0cnVlfSxtKTtzd2l0Y2gobil7Y2FzZSJicm9yYW5kIjpyZXR1cm4gZShfXzAkKTtjYXNlImhhc2guanMiOnJldHVybiBlKF9fMSQpO2Nhc2UiYm4uanMiOnJldHVybiBlKF9fMiQpO2Nhc2UibWluaW1hbGlzdGljLWFzc2VydCI6cmV0dXJuIGUoX18zJCk7Y2FzZSJtaW5pbWFsaXN0aWMtY3J5cHRvLXV0aWxzIjpyZXR1cm4gZShfXzQkKTtjYXNlImhtYWMtZHJiZyI6cmV0dXJuIGUoX181JCk7Y2FzZSJucG06aW5oZXJpdHMiOnJldHVybiBlKF9fNiQpO2RlZmF1bHQ6Y29uc29sZS5lcnJvcignbW9kdWxlICInK24rJyIgbm90IGZvdW5kJyk7cmV0dXJuIG51bGw7fX07CnZhciBwZj1PYmplY3QuY3JlYXRlO3ZhciB6ZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHlmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIG1mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBTZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsZ2Y9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgZz0oZD0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkoZCx7Z2V0OihlLGYpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbZl19KTpkKShmdW5jdGlvbihkKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrZCsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgTT0oZCxlKT0+KCk9PihlfHxkKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciB4Zj0oZCxlLGYscik9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgYSBvZiBtZihlKSkhZ2YuY2FsbChkLGEpJiZhIT09ZiYmemUoZCxhLHtnZXQ6KCk9PmVbYV0sZW51bWVyYWJsZTohKHI9eWYoZSxhKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBkfTt2YXIgQWY9KGQsZSxmKT0+KGY9ZCE9bnVsbD9wZihTZihkKSk6e30seGYoZXx8IWR8fCFkLl9fZXNNb2R1bGU/emUoZiwiZGVmYXVsdCIse3ZhbHVlOmQsZW51bWVyYWJsZTohMH0pOmYsZCkpO3ZhciBSZT1NKChWZixJZik9PntJZi5leHBvcnRzPXtuYW1lOiJlbGxpcHRpYyIsdmVyc2lvbjoiNi42LjEiLGRlc2NyaXB0aW9uOiJFQyBjcnlwdG9ncmFwaHkiLG1haW46ImxpYi9lbGxpcHRpYy5qcyIsZmlsZXM6WyJsaWIiXSxzY3JpcHRzOntsaW50OiJlc2xpbnQgbGliIHRlc3QiLCJsaW50OmZpeCI6Im5wbSBydW4gbGludCAtLSAtLWZpeCIsdW5pdDoiaXN0YW5idWwgdGVzdCBfbW9jaGEgLS1yZXBvcnRlcj1zcGVjIHRlc3QvaW5kZXguanMiLHRlc3Q6Im5wbSBydW4gbGludCAmJiBucG0gcnVuIHVuaXQiLHZlcnNpb246ImdydW50IGRpc3QgJiYgZ2l0IGFkZCBkaXN0LyJ9LHJlcG9zaXRvcnk6e3R5cGU6ImdpdCIsdXJsOiJnaXRAZ2l0aHViLmNvbTppbmR1dG55L2VsbGlwdGljIn0sa2V5d29yZHM6WyJFQyIsIkVsbGlwdGljIiwiY3VydmUiLCJDcnlwdG9ncmFwaHkiXSxhdXRob3I6IkZlZG9yIEluZHV0bnkgPGZlZG9yQGluZHV0bnkuY29tPiIsbGljZW5zZToiTUlUIixidWdzOnt1cmw6Imh0dHBzOi8vZ2l0aHViLmNvbS9pbmR1dG55L2VsbGlwdGljL2lzc3VlcyJ9LGhvbWVwYWdlOiJodHRwczovL2dpdGh1Yi5jb20vaW5kdXRueS9lbGxpcHRpYyIsZGV2RGVwZW5kZW5jaWVzOnticmZzOiJeMi4wLjIiLGNvdmVyYWxsczoiXjMuMS4wIixlc2xpbnQ6Il43LjYuMCIsZ3J1bnQ6Il4xLjIuMSIsImdydW50LWJyb3dzZXJpZnkiOiJeNS4zLjAiLCJncnVudC1jbGkiOiJeMS4zLjIiLCJncnVudC1jb250cmliLWNvbm5lY3QiOiJeMy4wLjAiLCJncnVudC1jb250cmliLWNvcHkiOiJeMS4wLjAiLCJncnVudC1jb250cmliLXVnbGlmeSI6Il41LjAuMCIsImdydW50LW1vY2hhLWlzdGFuYnVsIjoiXjUuMC4yIiwiZ3J1bnQtc2F1Y2VsYWJzIjoiXjkuMC4xIixpc3RhbmJ1bDoiXjAuNC41Iixtb2NoYToiXjguMC4xIn0sZGVwZW5kZW5jaWVzOnsiYm4uanMiOiJeNC4xMS45Iixicm9yYW5kOiJeMS4xLjAiLCJoYXNoLmpzIjoiXjEuMC4wIiwiaG1hYy1kcmJnIjoiXjEuMC4xIixpbmhlcml0czoiXjIuMC40IiwibWluaW1hbGlzdGljLWFzc2VydCI6Il4xLjAuMSIsIm1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMiOiJeMS4wLjEifX19KTt2YXIgej1NKE5lPT57InVzZSBzdHJpY3QiO3ZhciBFPU5lLHdmPWcoImJuLmpzIiksTWY9ZygibWluaW1hbGlzdGljLWFzc2VydCIpLGRlPWcoIm1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMiKTtFLmFzc2VydD1NZjtFLnRvQXJyYXk9ZGUudG9BcnJheTtFLnplcm8yPWRlLnplcm8yO0UudG9IZXg9ZGUudG9IZXg7RS5lbmNvZGU9ZGUuZW5jb2RlO2Z1bmN0aW9uIHFmKGQsZSxmKXt2YXIgcj1uZXcgQXJyYXkoTWF0aC5tYXgoZC5iaXRMZW5ndGgoKSxmKSsxKSxhO2ZvcihhPTA7YTxyLmxlbmd0aDthKz0xKXJbYV09MDt2YXIgYz0xPDxlKzEsaT1kLmNsb25lKCk7Zm9yKGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIHQsYj1pLmFuZGxuKGMtMSk7aS5pc09kZCgpPyhiPihjPj4xKS0xP3Q9KGM+PjEpLWI6dD1iLGkuaXN1Ym4odCkpOnQ9MCxyW2FdPXQsaS5pdXNocm4oMSl9cmV0dXJuIHJ9RS5nZXROQUY9cWY7ZnVuY3Rpb24gX2YoZCxlKXt2YXIgZj1bW10sW11dO2Q9ZC5jbG9uZSgpLGU9ZS5jbG9uZSgpO2Zvcih2YXIgcj0wLGE9MCxjO2QuY21wbigtcik+MHx8ZS5jbXBuKC1hKT4wOyl7dmFyIGk9ZC5hbmRsbigzKStyJjMsdD1lLmFuZGxuKDMpK2EmMztpPT09MyYmKGk9LTEpLHQ9PT0zJiYodD0tMSk7dmFyIGI7KGkmMSk9PT0wP2I9MDooYz1kLmFuZGxuKDcpK3ImNywoYz09PTN8fGM9PT01KSYmdD09PTI/Yj0taTpiPWkpLGZbMF0ucHVzaChiKTt2YXIgdTsodCYxKT09PTA/dT0wOihjPWUuYW5kbG4oNykrYSY3LChjPT09M3x8Yz09PTUpJiZpPT09Mj91PS10OnU9dCksZlsxXS5wdXNoKHUpLDIqcj09PWIrMSYmKHI9MS1yKSwyKmE9PT11KzEmJihhPTEtYSksZC5pdXNocm4oMSksZS5pdXNocm4oMSl9cmV0dXJuIGZ9RS5nZXRKU0Y9X2Y7ZnVuY3Rpb24gUGYoZCxlLGYpe3ZhciByPSJfIitlO2QucHJvdG90eXBlW2VdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbcl0hPT12b2lkIDA/dGhpc1tyXTp0aGlzW3JdPWYuY2FsbCh0aGlzKX19RS5jYWNoZWRQcm9wZXJ0eT1QZjtmdW5jdGlvbiB6ZihkKXtyZXR1cm4gdHlwZW9mIGQ9PSJzdHJpbmciP0UudG9BcnJheShkLCJoZXgiKTpkfUUucGFyc2VCeXRlcz16ZjtmdW5jdGlvbiBSZihkKXtyZXR1cm4gbmV3IHdmKGQsImhleCIsImxlIil9RS5pbnRGcm9tTEU9UmZ9KTt2YXIgZWU9TSgoJGYsQmUpPT57InVzZSBzdHJpY3QiO3ZhciBUPWcoImJuLmpzIiksUT16KCkscmU9US5nZXROQUYsTmY9US5nZXRKU0YsYWU9US5hc3NlcnQ7ZnVuY3Rpb24gQyhkLGUpe3RoaXMudHlwZT1kLHRoaXMucD1uZXcgVChlLnAsMTYpLHRoaXMucmVkPWUucHJpbWU/VC5yZWQoZS5wcmltZSk6VC5tb250KHRoaXMucCksdGhpcy56ZXJvPW5ldyBUKDApLnRvUmVkKHRoaXMucmVkKSx0aGlzLm9uZT1uZXcgVCgxKS50b1JlZCh0aGlzLnJlZCksdGhpcy50d289bmV3IFQoMikudG9SZWQodGhpcy5yZWQpLHRoaXMubj1lLm4mJm5ldyBUKGUubiwxNiksdGhpcy5nPWUuZyYmdGhpcy5wb2ludEZyb21KU09OKGUuZyxlLmdSZWQpLHRoaXMuX3duYWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQyPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDM9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUND1uZXcgQXJyYXkoNCksdGhpcy5fYml0TGVuZ3RoPXRoaXMubj90aGlzLm4uYml0TGVuZ3RoKCk6MDt2YXIgZj10aGlzLm4mJnRoaXMucC5kaXYodGhpcy5uKTshZnx8Zi5jbXBuKDEwMCk+MD90aGlzLnJlZE49bnVsbDoodGhpcy5fbWF4d2VsbFRyaWNrPSEwLHRoaXMucmVkTj10aGlzLm4udG9SZWQodGhpcy5yZWQpKX1CZS5leHBvcnRzPUM7Qy5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfTtDLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9O0MucHJvdG90eXBlLl9maXhlZE5hZk11bD1mdW5jdGlvbihlLGYpe2FlKGUucHJlY29tcHV0ZWQpO3ZhciByPWUuX2dldERvdWJsZXMoKSxhPXJlKGYsMSx0aGlzLl9iaXRMZW5ndGgpLGM9KDE8PHIuc3RlcCsxKS0oci5zdGVwJTI9PT0wPzI6MSk7Yy89Mzt2YXIgaT1bXSx0LGI7Zm9yKHQ9MDt0PGEubGVuZ3RoO3QrPXIuc3RlcCl7Yj0wO2Zvcih2YXIgdT10K3Iuc3RlcC0xO3U+PXQ7dS0tKWI9KGI8PDEpK2FbdV07aS5wdXNoKGIpfWZvcih2YXIgbj10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCkscz10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksbz1jO28+MDtvLS0pe2Zvcih0PTA7dDxpLmxlbmd0aDt0KyspYj1pW3RdLGI9PT1vP3M9cy5taXhlZEFkZChyLnBvaW50c1t0XSk6Yj09PS1vJiYocz1zLm1peGVkQWRkKHIucG9pbnRzW3RdLm5lZygpKSk7bj1uLmFkZChzKX1yZXR1cm4gbi50b1AoKX07Qy5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24oZSxmKXt2YXIgcj00LGE9ZS5fZ2V0TkFGUG9pbnRzKHIpO3I9YS53bmQ7Zm9yKHZhciBjPWEucG9pbnRzLGk9cmUoZixyLHRoaXMuX2JpdExlbmd0aCksdD10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksYj1pLmxlbmd0aC0xO2I+PTA7Yi0tKXtmb3IodmFyIHU9MDtiPj0wJiZpW2JdPT09MDtiLS0pdSsrO2lmKGI+PTAmJnUrKyx0PXQuZGJscCh1KSxiPDApYnJlYWs7dmFyIG49aVtiXTthZShuIT09MCksZS50eXBlPT09ImFmZmluZSI/bj4wP3Q9dC5taXhlZEFkZChjW24tMT4+MV0pOnQ9dC5taXhlZEFkZChjWy1uLTE+PjFdLm5lZygpKTpuPjA/dD10LmFkZChjW24tMT4+MV0pOnQ9dC5hZGQoY1stbi0xPj4xXS5uZWcoKSl9cmV0dXJuIGUudHlwZT09PSJhZmZpbmUiP3QudG9QKCk6dH07Qy5wcm90b3R5cGUuX3duYWZNdWxBZGQ9ZnVuY3Rpb24oZSxmLHIsYSxjKXt2YXIgaT10aGlzLl93bmFmVDEsdD10aGlzLl93bmFmVDIsYj10aGlzLl93bmFmVDMsdT0wLG4scyxvO2ZvcihuPTA7bjxhO24rKyl7bz1mW25dO3ZhciBoPW8uX2dldE5BRlBvaW50cyhlKTtpW25dPWgud25kLHRbbl09aC5wb2ludHN9Zm9yKG49YS0xO24+PTE7bi09Mil7dmFyIHY9bi0xLGw9bjtpZihpW3ZdIT09MXx8aVtsXSE9PTEpe2Jbdl09cmUoclt2XSxpW3ZdLHRoaXMuX2JpdExlbmd0aCksYltsXT1yZShyW2xdLGlbbF0sdGhpcy5fYml0TGVuZ3RoKSx1PU1hdGgubWF4KGJbdl0ubGVuZ3RoLHUpLHU9TWF0aC5tYXgoYltsXS5sZW5ndGgsdSk7Y29udGludWV9dmFyIG09W2Zbdl0sbnVsbCxudWxsLGZbbF1dO2Zbdl0ueS5jbXAoZltsXS55KT09PTA/KG1bMV09Zlt2XS5hZGQoZltsXSksbVsyXT1mW3ZdLnRvSigpLm1peGVkQWRkKGZbbF0ubmVnKCkpKTpmW3ZdLnkuY21wKGZbbF0ueS5yZWROZWcoKSk9PT0wPyhtWzFdPWZbdl0udG9KKCkubWl4ZWRBZGQoZltsXSksbVsyXT1mW3ZdLmFkZChmW2xdLm5lZygpKSk6KG1bMV09Zlt2XS50b0ooKS5taXhlZEFkZChmW2xdKSxtWzJdPWZbdl0udG9KKCkubWl4ZWRBZGQoZltsXS5uZWcoKSkpO3ZhciBwPVstMywtMSwtNSwtNywwLDcsNSwxLDNdLFA9TmYoclt2XSxyW2xdKTtmb3IodT1NYXRoLm1heChQWzBdLmxlbmd0aCx1KSxiW3ZdPW5ldyBBcnJheSh1KSxiW2xdPW5ldyBBcnJheSh1KSxzPTA7czx1O3MrKyl7dmFyIFg9UFswXVtzXXwwLGxlPVBbMV1bc118MDtiW3ZdW3NdPXBbKFgrMSkqMysobGUrMSldLGJbbF1bc109MCx0W3ZdPW19fXZhciBPPXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxaPXRoaXMuX3duYWZUNDtmb3Iobj11O24+PTA7bi0tKXtmb3IodmFyIHBlPTA7bj49MDspe3ZhciBQZT0hMDtmb3Iocz0wO3M8YTtzKyspWltzXT1iW3NdW25dfDAsWltzXSE9PTAmJihQZT0hMSk7aWYoIVBlKWJyZWFrO3BlKyssbi0tfWlmKG4+PTAmJnBlKyssTz1PLmRibHAocGUpLG48MClicmVhaztmb3Iocz0wO3M8YTtzKyspe3ZhciAkPVpbc107JCE9PTAmJigkPjA/bz10W3NdWyQtMT4+MV06JDwwJiYobz10W3NdWy0kLTE+PjFdLm5lZygpKSxvLnR5cGU9PT0iYWZmaW5lIj9PPU8ubWl4ZWRBZGQobyk6Tz1PLmFkZChvKSl9fWZvcihuPTA7bjxhO24rKyl0W25dPW51bGw7cmV0dXJuIGM/TzpPLnRvUCgpfTtmdW5jdGlvbiBSKGQsZSl7dGhpcy5jdXJ2ZT1kLHRoaXMudHlwZT1lLHRoaXMucHJlY29tcHV0ZWQ9bnVsbH1DLkJhc2VQb2ludD1SO1IucHJvdG90eXBlLmVxPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3QgaW1wbGVtZW50ZWQiKX07Ui5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJ2ZS52YWxpZGF0ZSh0aGlzKX07Qy5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oZSxmKXtlPVEudG9BcnJheShlLGYpO3ZhciByPXRoaXMucC5ieXRlTGVuZ3RoKCk7aWYoKGVbMF09PT00fHxlWzBdPT09Nnx8ZVswXT09PTcpJiZlLmxlbmd0aC0xPT09MipyKXtlWzBdPT09Nj9hZShlW2UubGVuZ3RoLTFdJTI9PT0wKTplWzBdPT09NyYmYWUoZVtlLmxlbmd0aC0xXSUyPT09MSk7dmFyIGE9dGhpcy5wb2ludChlLnNsaWNlKDEsMStyKSxlLnNsaWNlKDErciwxKzIqcikpO3JldHVybiBhfWVsc2UgaWYoKGVbMF09PT0yfHxlWzBdPT09MykmJmUubGVuZ3RoLTE9PT1yKXJldHVybiB0aGlzLnBvaW50RnJvbVgoZS5zbGljZSgxLDErciksZVswXT09PTMpO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBwb2ludCBmb3JtYXQiKX07Ui5wcm90b3R5cGUuZW5jb2RlQ29tcHJlc3NlZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbmNvZGUoZSwhMCl9O1IucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oZSl7dmFyIGY9dGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSxyPXRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIixmKTtyZXR1cm4gZT9bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5jb25jYXQocik6WzRdLmNvbmNhdChyLHRoaXMuZ2V0WSgpLnRvQXJyYXkoImJlIixmKSl9O1IucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihlLGYpe3JldHVybiBRLmVuY29kZSh0aGlzLl9lbmNvZGUoZiksZSl9O1IucHJvdG90eXBlLnByZWNvbXB1dGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5wcmVjb21wdXRlZClyZXR1cm4gdGhpczt2YXIgZj17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07cmV0dXJuIGYubmFmPXRoaXMuX2dldE5BRlBvaW50cyg4KSxmLmRvdWJsZXM9dGhpcy5fZ2V0RG91Ymxlcyg0LGUpLGYuYmV0YT10aGlzLl9nZXRCZXRhKCksdGhpcy5wcmVjb21wdXRlZD1mLHRoaXN9O1IucHJvdG90eXBlLl9oYXNEb3VibGVzPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLnByZWNvbXB1dGVkKXJldHVybiExO3ZhciBmPXRoaXMucHJlY29tcHV0ZWQuZG91YmxlcztyZXR1cm4gZj9mLnBvaW50cy5sZW5ndGg+PU1hdGguY2VpbCgoZS5iaXRMZW5ndGgoKSsxKS9mLnN0ZXApOiExfTtSLnByb3RvdHlwZS5fZ2V0RG91Ymxlcz1mdW5jdGlvbihlLGYpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgcj1bdGhpc10sYT10aGlzLGM9MDtjPGY7Yys9ZSl7Zm9yKHZhciBpPTA7aTxlO2krKylhPWEuZGJsKCk7ci5wdXNoKGEpfXJldHVybntzdGVwOmUscG9pbnRzOnJ9fTtSLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKGUpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQubmFmKXJldHVybiB0aGlzLnByZWNvbXB1dGVkLm5hZjtmb3IodmFyIGY9W3RoaXNdLHI9KDE8PGUpLTEsYT1yPT09MT9udWxsOnRoaXMuZGJsKCksYz0xO2M8cjtjKyspZltjXT1mW2MtMV0uYWRkKGEpO3JldHVybnt3bmQ6ZSxwb2ludHM6Zn19O1IucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O1IucHJvdG90eXBlLmRibHA9ZnVuY3Rpb24oZSl7Zm9yKHZhciBmPXRoaXMscj0wO3I8ZTtyKyspZj1mLmRibCgpO3JldHVybiBmfX0pO3ZhciBGZT1NKChRZixFZSk9PnsidXNlIHN0cmljdCI7dmFyIEJmPXooKSxTPWcoImJuLmpzIikseWU9ZygibnBtOmluaGVyaXRzIiksaz1lZSgpLEVmPUJmLmFzc2VydDtmdW5jdGlvbiBOKGQpe2suY2FsbCh0aGlzLCJzaG9ydCIsZCksdGhpcy5hPW5ldyBTKGQuYSwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYj1uZXcgUyhkLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9dGhpcy5hLmZyb21SZWQoKS5jbXBuKDApPT09MCx0aGlzLnRocmVlQT10aGlzLmEuZnJvbVJlZCgpLnN1Yih0aGlzLnApLmNtcG4oLTMpPT09MCx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKGQpLHRoaXMuX2VuZG9XbmFmVDE9bmV3IEFycmF5KDQpLHRoaXMuX2VuZG9XbmFmVDI9bmV3IEFycmF5KDQpfXllKE4sayk7RWUuZXhwb3J0cz1OO04ucHJvdG90eXBlLl9nZXRFbmRvbW9ycGhpc209ZnVuY3Rpb24oZSl7aWYoISghdGhpcy56ZXJvQXx8IXRoaXMuZ3x8IXRoaXMubnx8dGhpcy5wLm1vZG4oMykhPT0xKSl7dmFyIGYscjtpZihlLmJldGEpZj1uZXcgUyhlLmJldGEsMTYpLnRvUmVkKHRoaXMucmVkKTtlbHNle3ZhciBhPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO2Y9YVswXS5jbXAoYVsxXSk8MD9hWzBdOmFbMV0sZj1mLnRvUmVkKHRoaXMucmVkKX1pZihlLmxhbWJkYSlyPW5ldyBTKGUubGFtYmRhLDE2KTtlbHNle3ZhciBjPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pO3RoaXMuZy5tdWwoY1swXSkueC5jbXAodGhpcy5nLngucmVkTXVsKGYpKT09PTA/cj1jWzBdOihyPWNbMV0sRWYodGhpcy5nLm11bChyKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoZikpPT09MCkpfXZhciBpO3JldHVybiBlLmJhc2lzP2k9ZS5iYXNpcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJue2E6bmV3IFModC5hLDE2KSxiOm5ldyBTKHQuYiwxNil9fSk6aT10aGlzLl9nZXRFbmRvQmFzaXMocikse2JldGE6ZixsYW1iZGE6cixiYXNpczppfX19O04ucHJvdG90eXBlLl9nZXRFbmRvUm9vdHM9ZnVuY3Rpb24oZSl7dmFyIGY9ZT09PXRoaXMucD90aGlzLnJlZDpTLm1vbnQoZSkscj1uZXcgUygyKS50b1JlZChmKS5yZWRJbnZtKCksYT1yLnJlZE5lZygpLGM9bmV3IFMoMykudG9SZWQoZikucmVkTmVnKCkucmVkU3FydCgpLnJlZE11bChyKSxpPWEucmVkQWRkKGMpLmZyb21SZWQoKSx0PWEucmVkU3ViKGMpLmZyb21SZWQoKTtyZXR1cm5baSx0XX07Ti5wcm90b3R5cGUuX2dldEVuZG9CYXNpcz1mdW5jdGlvbihlKXtmb3IodmFyIGY9dGhpcy5uLnVzaHJuKE1hdGguZmxvb3IodGhpcy5uLmJpdExlbmd0aCgpLzIpKSxyPWUsYT10aGlzLm4uY2xvbmUoKSxjPW5ldyBTKDEpLGk9bmV3IFMoMCksdD1uZXcgUygwKSxiPW5ldyBTKDEpLHUsbixzLG8saCx2LGwsbT0wLHAsUDtyLmNtcG4oMCkhPT0wOyl7dmFyIFg9YS5kaXYocik7cD1hLnN1YihYLm11bChyKSksUD10LnN1YihYLm11bChjKSk7dmFyIGxlPWIuc3ViKFgubXVsKGkpKTtpZighcyYmcC5jbXAoZik8MCl1PWwubmVnKCksbj1jLHM9cC5uZWcoKSxvPVA7ZWxzZSBpZihzJiYrK209PT0yKWJyZWFrO2w9cCxhPXIscj1wLHQ9YyxjPVAsYj1pLGk9bGV9aD1wLm5lZygpLHY9UDt2YXIgTz1zLnNxcigpLmFkZChvLnNxcigpKSxaPWguc3FyKCkuYWRkKHYuc3FyKCkpO3JldHVybiBaLmNtcChPKT49MCYmKGg9dSx2PW4pLHMubmVnYXRpdmUmJihzPXMubmVnKCksbz1vLm5lZygpKSxoLm5lZ2F0aXZlJiYoaD1oLm5lZygpLHY9di5uZWcoKSksW3thOnMsYjpvfSx7YTpoLGI6dn1dfTtOLnByb3RvdHlwZS5fZW5kb1NwbGl0PWZ1bmN0aW9uKGUpe3ZhciBmPXRoaXMuZW5kby5iYXNpcyxyPWZbMF0sYT1mWzFdLGM9YS5iLm11bChlKS5kaXZSb3VuZCh0aGlzLm4pLGk9ci5iLm5lZygpLm11bChlKS5kaXZSb3VuZCh0aGlzLm4pLHQ9Yy5tdWwoci5hKSxiPWkubXVsKGEuYSksdT1jLm11bChyLmIpLG49aS5tdWwoYS5iKSxzPWUuc3ViKHQpLnN1YihiKSxvPXUuYWRkKG4pLm5lZygpO3JldHVybntrMTpzLGsyOm99fTtOLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKGUsZil7ZT1uZXcgUyhlLDE2KSxlLnJlZHx8KGU9ZS50b1JlZCh0aGlzLnJlZCkpO3ZhciByPWUucmVkU3FyKCkucmVkTXVsKGUpLnJlZElBZGQoZS5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpLGE9ci5yZWRTcXJ0KCk7aWYoYS5yZWRTcXIoKS5yZWRTdWIocikuY21wKHRoaXMuemVybykhPT0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBjPWEuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKGYmJiFjfHwhZiYmYykmJihhPWEucmVkTmVnKCkpLHRoaXMucG9pbnQoZSxhKX07Ti5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oZSl7aWYoZS5pbmYpcmV0dXJuITA7dmFyIGY9ZS54LHI9ZS55LGE9dGhpcy5hLnJlZE11bChmKSxjPWYucmVkU3FyKCkucmVkTXVsKGYpLnJlZElBZGQoYSkucmVkSUFkZCh0aGlzLmIpO3JldHVybiByLnJlZFNxcigpLnJlZElTdWIoYykuY21wbigwKT09PTB9O04ucHJvdG90eXBlLl9lbmRvV25hZk11bEFkZD1mdW5jdGlvbihlLGYscil7Zm9yKHZhciBhPXRoaXMuX2VuZG9XbmFmVDEsYz10aGlzLl9lbmRvV25hZlQyLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIHQ9dGhpcy5fZW5kb1NwbGl0KGZbaV0pLGI9ZVtpXSx1PWIuX2dldEJldGEoKTt0LmsxLm5lZ2F0aXZlJiYodC5rMS5pbmVnKCksYj1iLm5lZyghMCkpLHQuazIubmVnYXRpdmUmJih0LmsyLmluZWcoKSx1PXUubmVnKCEwKSksYVtpKjJdPWIsYVtpKjIrMV09dSxjW2kqMl09dC5rMSxjW2kqMisxXT10LmsyfWZvcih2YXIgbj10aGlzLl93bmFmTXVsQWRkKDEsYSxjLGkqMixyKSxzPTA7czxpKjI7cysrKWFbc109bnVsbCxjW3NdPW51bGw7cmV0dXJuIG59O2Z1bmN0aW9uIHgoZCxlLGYscil7ay5CYXNlUG9pbnQuY2FsbCh0aGlzLGQsImFmZmluZSIpLGU9PT1udWxsJiZmPT09bnVsbD8odGhpcy54PW51bGwsdGhpcy55PW51bGwsdGhpcy5pbmY9ITApOih0aGlzLng9bmV3IFMoZSwxNiksdGhpcy55PW5ldyBTKGYsMTYpLHImJih0aGlzLnguZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpLHRoaXMueS5mb3JjZVJlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLmluZj0hMSl9eWUoeCxrLkJhc2VQb2ludCk7Ti5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oZSxmLHIpe3JldHVybiBuZXcgeCh0aGlzLGUsZixyKX07Ti5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihlLGYpe3JldHVybiB4LmZyb21KU09OKHRoaXMsZSxmKX07eC5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24oKXtpZih0aGlzLmN1cnZlLmVuZG8pe3ZhciBlPXRoaXMucHJlY29tcHV0ZWQ7aWYoZSYmZS5iZXRhKXJldHVybiBlLmJldGE7dmFyIGY9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngucmVkTXVsKHRoaXMuY3VydmUuZW5kby5iZXRhKSx0aGlzLnkpO2lmKGUpe3ZhciByPXRoaXMuY3VydmUsYT1mdW5jdGlvbihjKXtyZXR1cm4gci5wb2ludChjLngucmVkTXVsKHIuZW5kby5iZXRhKSxjLnkpfTtlLmJldGE9ZixmLnByZWNvbXB1dGVkPXtiZXRhOm51bGwsbmFmOmUubmFmJiZ7d25kOmUubmFmLnduZCxwb2ludHM6ZS5uYWYucG9pbnRzLm1hcChhKX0sZG91YmxlczplLmRvdWJsZXMmJntzdGVwOmUuZG91Ymxlcy5zdGVwLHBvaW50czplLmRvdWJsZXMucG9pbnRzLm1hcChhKX19fXJldHVybiBmfX07eC5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJlY29tcHV0ZWQ/W3RoaXMueCx0aGlzLnksdGhpcy5wcmVjb21wdXRlZCYme2RvdWJsZXM6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzJiZ7c3RlcDp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMuc3RlcCxwb2ludHM6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnBvaW50cy5zbGljZSgxKX0sbmFmOnRoaXMucHJlY29tcHV0ZWQubmFmJiZ7d25kOnRoaXMucHJlY29tcHV0ZWQubmFmLnduZCxwb2ludHM6dGhpcy5wcmVjb21wdXRlZC5uYWYucG9pbnRzLnNsaWNlKDEpfX1dOlt0aGlzLngsdGhpcy55XX07eC5mcm9tSlNPTj1mdW5jdGlvbihlLGYscil7dHlwZW9mIGY9PSJzdHJpbmciJiYoZj1KU09OLnBhcnNlKGYpKTt2YXIgYT1lLnBvaW50KGZbMF0sZlsxXSxyKTtpZighZlsyXSlyZXR1cm4gYTtmdW5jdGlvbiBjKHQpe3JldHVybiBlLnBvaW50KHRbMF0sdFsxXSxyKX12YXIgaT1mWzJdO3JldHVybiBhLnByZWNvbXB1dGVkPXtiZXRhOm51bGwsZG91YmxlczppLmRvdWJsZXMmJntzdGVwOmkuZG91Ymxlcy5zdGVwLHBvaW50czpbYV0uY29uY2F0KGkuZG91Ymxlcy5wb2ludHMubWFwKGMpKX0sbmFmOmkubmFmJiZ7d25kOmkubmFmLnduZCxwb2ludHM6W2FdLmNvbmNhdChpLm5hZi5wb2ludHMubWFwKGMpKX19LGF9O3gucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBQb2ludCBJbmZpbml0eT4iOiI8RUMgUG9pbnQgeDogIit0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnkuZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyI+In07eC5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZn07eC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe2lmKHRoaXMuaW5mKXJldHVybiBlO2lmKGUuaW5mKXJldHVybiB0aGlzO2lmKHRoaXMuZXEoZSkpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5uZWcoKS5lcShlKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO2lmKHRoaXMueC5jbXAoZS54KT09PTApcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgZj10aGlzLnkucmVkU3ViKGUueSk7Zi5jbXBuKDApIT09MCYmKGY9Zi5yZWRNdWwodGhpcy54LnJlZFN1YihlLngpLnJlZEludm0oKSkpO3ZhciByPWYucmVkU3FyKCkucmVkSVN1Yih0aGlzLngpLnJlZElTdWIoZS54KSxhPWYucmVkTXVsKHRoaXMueC5yZWRTdWIocikpLnJlZElTdWIodGhpcy55KTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChyLGEpfTt4LnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgZT10aGlzLnkucmVkQWRkKHRoaXMueSk7aWYoZS5jbXBuKDApPT09MClyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBmPXRoaXMuY3VydmUuYSxyPXRoaXMueC5yZWRTcXIoKSxhPWUucmVkSW52bSgpLGM9ci5yZWRBZGQocikucmVkSUFkZChyKS5yZWRJQWRkKGYpLnJlZE11bChhKSxpPWMucmVkU3FyKCkucmVkSVN1Yih0aGlzLngucmVkQWRkKHRoaXMueCkpLHQ9Yy5yZWRNdWwodGhpcy54LnJlZFN1YihpKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KGksdCl9O3gucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54LmZyb21SZWQoKX07eC5wcm90b3R5cGUuZ2V0WT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnkuZnJvbVJlZCgpfTt4LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9bmV3IFMoZSwxNiksdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLl9oYXNEb3VibGVzKGUpP3RoaXMuY3VydmUuX2ZpeGVkTmFmTXVsKHRoaXMsZSk6dGhpcy5jdXJ2ZS5lbmRvP3RoaXMuY3VydmUuX2VuZG9XbmFmTXVsQWRkKFt0aGlzXSxbZV0pOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxlKX07eC5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKGUsZixyKXt2YXIgYT1bdGhpcyxmXSxjPVtlLHJdO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoYSxjKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsYSxjLDIpfTt4LnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9uKGUsZixyKXt2YXIgYT1bdGhpcyxmXSxjPVtlLHJdO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxBZGQoYSxjLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsYSxjLDIsITApfTt4LnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcz09PWV8fHRoaXMuaW5mPT09ZS5pbmYmJih0aGlzLmluZnx8dGhpcy54LmNtcChlLngpPT09MCYmdGhpcy55LmNtcChlLnkpPT09MCl9O3gucHJvdG90eXBlLm5lZz1mdW5jdGlvbihlKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgZj10aGlzLmN1cnZlLnBvaW50KHRoaXMueCx0aGlzLnkucmVkTmVnKCkpO2lmKGUmJnRoaXMucHJlY29tcHV0ZWQpe3ZhciByPXRoaXMucHJlY29tcHV0ZWQsYT1mdW5jdGlvbihjKXtyZXR1cm4gYy5uZWcoKX07Zi5wcmVjb21wdXRlZD17bmFmOnIubmFmJiZ7d25kOnIubmFmLnduZCxwb2ludHM6ci5uYWYucG9pbnRzLm1hcChhKX0sZG91YmxlczpyLmRvdWJsZXMmJntzdGVwOnIuZG91Ymxlcy5zdGVwLHBvaW50czpyLmRvdWJsZXMucG9pbnRzLm1hcChhKX19fXJldHVybiBmfTt4LnByb3RvdHlwZS50b0o9ZnVuY3Rpb24oKXtpZih0aGlzLmluZilyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpO3ZhciBlPXRoaXMuY3VydmUuanBvaW50KHRoaXMueCx0aGlzLnksdGhpcy5jdXJ2ZS5vbmUpO3JldHVybiBlfTtmdW5jdGlvbiB3KGQsZSxmLHIpe2suQmFzZVBvaW50LmNhbGwodGhpcyxkLCJqYWNvYmlhbiIpLGU9PT1udWxsJiZmPT09bnVsbCYmcj09PW51bGw/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PW5ldyBTKDApKToodGhpcy54PW5ldyBTKGUsMTYpLHRoaXMueT1uZXcgUyhmLDE2KSx0aGlzLno9bmV3IFMociwxNikpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX15ZSh3LGsuQmFzZVBvaW50KTtOLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24oZSxmLHIpe3JldHVybiBuZXcgdyh0aGlzLGUsZixyKX07dy5wcm90b3R5cGUudG9QPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTt2YXIgZT10aGlzLnoucmVkSW52bSgpLGY9ZS5yZWRTcXIoKSxyPXRoaXMueC5yZWRNdWwoZiksYT10aGlzLnkucmVkTXVsKGYpLnJlZE11bChlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChyLGEpfTt3LnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSx0aGlzLnopfTt3LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJuIGU7aWYoZS5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIGY9ZS56LnJlZFNxcigpLHI9dGhpcy56LnJlZFNxcigpLGE9dGhpcy54LnJlZE11bChmKSxjPWUueC5yZWRNdWwociksaT10aGlzLnkucmVkTXVsKGYucmVkTXVsKGUueikpLHQ9ZS55LnJlZE11bChyLnJlZE11bCh0aGlzLnopKSxiPWEucmVkU3ViKGMpLHU9aS5yZWRTdWIodCk7aWYoYi5jbXBuKDApPT09MClyZXR1cm4gdS5jbXBuKDApIT09MD90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgbj1iLnJlZFNxcigpLHM9bi5yZWRNdWwoYiksbz1hLnJlZE11bChuKSxoPXUucmVkU3FyKCkucmVkSUFkZChzKS5yZWRJU3ViKG8pLnJlZElTdWIobyksdj11LnJlZE11bChvLnJlZElTdWIoaCkpLnJlZElTdWIoaS5yZWRNdWwocykpLGw9dGhpcy56LnJlZE11bChlLnopLnJlZE11bChiKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaCx2LGwpfTt3LnByb3RvdHlwZS5taXhlZEFkZD1mdW5jdGlvbihlKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gZS50b0ooKTtpZihlLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgZj10aGlzLnoucmVkU3FyKCkscj10aGlzLngsYT1lLngucmVkTXVsKGYpLGM9dGhpcy55LGk9ZS55LnJlZE11bChmKS5yZWRNdWwodGhpcy56KSx0PXIucmVkU3ViKGEpLGI9Yy5yZWRTdWIoaSk7aWYodC5jbXBuKDApPT09MClyZXR1cm4gYi5jbXBuKDApIT09MD90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5kYmwoKTt2YXIgdT10LnJlZFNxcigpLG49dS5yZWRNdWwodCkscz1yLnJlZE11bCh1KSxvPWIucmVkU3FyKCkucmVkSUFkZChuKS5yZWRJU3ViKHMpLnJlZElTdWIocyksaD1iLnJlZE11bChzLnJlZElTdWIobykpLnJlZElTdWIoYy5yZWRNdWwobikpLHY9dGhpcy56LnJlZE11bCh0KTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQobyxoLHYpfTt3LnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKGUpe2lmKGU9PT0wKXJldHVybiB0aGlzO2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO2lmKCFlKXJldHVybiB0aGlzLmRibCgpO3ZhciBmO2lmKHRoaXMuY3VydmUuemVyb0F8fHRoaXMuY3VydmUudGhyZWVBKXt2YXIgcj10aGlzO2ZvcihmPTA7ZjxlO2YrKylyPXIuZGJsKCk7cmV0dXJuIHJ9dmFyIGE9dGhpcy5jdXJ2ZS5hLGM9dGhpcy5jdXJ2ZS50aW52LGk9dGhpcy54LHQ9dGhpcy55LGI9dGhpcy56LHU9Yi5yZWRTcXIoKS5yZWRTcXIoKSxuPXQucmVkQWRkKHQpO2ZvcihmPTA7ZjxlO2YrKyl7dmFyIHM9aS5yZWRTcXIoKSxvPW4ucmVkU3FyKCksaD1vLnJlZFNxcigpLHY9cy5yZWRBZGQocykucmVkSUFkZChzKS5yZWRJQWRkKGEucmVkTXVsKHUpKSxsPWkucmVkTXVsKG8pLG09di5yZWRTcXIoKS5yZWRJU3ViKGwucmVkQWRkKGwpKSxwPWwucmVkSVN1YihtKSxQPXYucmVkTXVsKHApO1A9UC5yZWRJQWRkKFApLnJlZElTdWIoaCk7dmFyIFg9bi5yZWRNdWwoYik7ZisxPGUmJih1PXUucmVkTXVsKGgpKSxpPW0sYj1YLG49UH1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaSxuLnJlZE11bChjKSxiKX07dy5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5jdXJ2ZS56ZXJvQT90aGlzLl96ZXJvRGJsKCk6dGhpcy5jdXJ2ZS50aHJlZUE/dGhpcy5fdGhyZWVEYmwoKTp0aGlzLl9kYmwoKX07dy5wcm90b3R5cGUuX3plcm9EYmw9ZnVuY3Rpb24oKXt2YXIgZSxmLHI7aWYodGhpcy56T25lKXt2YXIgYT10aGlzLngucmVkU3FyKCksYz10aGlzLnkucmVkU3FyKCksaT1jLnJlZFNxcigpLHQ9dGhpcy54LnJlZEFkZChjKS5yZWRTcXIoKS5yZWRJU3ViKGEpLnJlZElTdWIoaSk7dD10LnJlZElBZGQodCk7dmFyIGI9YS5yZWRBZGQoYSkucmVkSUFkZChhKSx1PWIucmVkU3FyKCkucmVkSVN1Yih0KS5yZWRJU3ViKHQpLG49aS5yZWRJQWRkKGkpO249bi5yZWRJQWRkKG4pLG49bi5yZWRJQWRkKG4pLGU9dSxmPWIucmVkTXVsKHQucmVkSVN1Yih1KSkucmVkSVN1YihuKSxyPXRoaXMueS5yZWRBZGQodGhpcy55KX1lbHNle3ZhciBzPXRoaXMueC5yZWRTcXIoKSxvPXRoaXMueS5yZWRTcXIoKSxoPW8ucmVkU3FyKCksdj10aGlzLngucmVkQWRkKG8pLnJlZFNxcigpLnJlZElTdWIocykucmVkSVN1YihoKTt2PXYucmVkSUFkZCh2KTt2YXIgbD1zLnJlZEFkZChzKS5yZWRJQWRkKHMpLG09bC5yZWRTcXIoKSxwPWgucmVkSUFkZChoKTtwPXAucmVkSUFkZChwKSxwPXAucmVkSUFkZChwKSxlPW0ucmVkSVN1Yih2KS5yZWRJU3ViKHYpLGY9bC5yZWRNdWwodi5yZWRJU3ViKGUpKS5yZWRJU3ViKHApLHI9dGhpcy55LnJlZE11bCh0aGlzLnopLHI9ci5yZWRJQWRkKHIpfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChlLGYscil9O3cucHJvdG90eXBlLl90aHJlZURibD1mdW5jdGlvbigpe3ZhciBlLGYscjtpZih0aGlzLnpPbmUpe3ZhciBhPXRoaXMueC5yZWRTcXIoKSxjPXRoaXMueS5yZWRTcXIoKSxpPWMucmVkU3FyKCksdD10aGlzLngucmVkQWRkKGMpLnJlZFNxcigpLnJlZElTdWIoYSkucmVkSVN1YihpKTt0PXQucmVkSUFkZCh0KTt2YXIgYj1hLnJlZEFkZChhKS5yZWRJQWRkKGEpLnJlZElBZGQodGhpcy5jdXJ2ZS5hKSx1PWIucmVkU3FyKCkucmVkSVN1Yih0KS5yZWRJU3ViKHQpO2U9dTt2YXIgbj1pLnJlZElBZGQoaSk7bj1uLnJlZElBZGQobiksbj1uLnJlZElBZGQobiksZj1iLnJlZE11bCh0LnJlZElTdWIodSkpLnJlZElTdWIobikscj10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgcz10aGlzLnoucmVkU3FyKCksbz10aGlzLnkucmVkU3FyKCksaD10aGlzLngucmVkTXVsKG8pLHY9dGhpcy54LnJlZFN1YihzKS5yZWRNdWwodGhpcy54LnJlZEFkZChzKSk7dj12LnJlZEFkZCh2KS5yZWRJQWRkKHYpO3ZhciBsPWgucmVkSUFkZChoKTtsPWwucmVkSUFkZChsKTt2YXIgbT1sLnJlZEFkZChsKTtlPXYucmVkU3FyKCkucmVkSVN1YihtKSxyPXRoaXMueS5yZWRBZGQodGhpcy56KS5yZWRTcXIoKS5yZWRJU3ViKG8pLnJlZElTdWIocyk7dmFyIHA9by5yZWRTcXIoKTtwPXAucmVkSUFkZChwKSxwPXAucmVkSUFkZChwKSxwPXAucmVkSUFkZChwKSxmPXYucmVkTXVsKGwucmVkSVN1YihlKSkucmVkSVN1YihwKX1yZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoZSxmLHIpfTt3LnByb3RvdHlwZS5fZGJsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jdXJ2ZS5hLGY9dGhpcy54LHI9dGhpcy55LGE9dGhpcy56LGM9YS5yZWRTcXIoKS5yZWRTcXIoKSxpPWYucmVkU3FyKCksdD1yLnJlZFNxcigpLGI9aS5yZWRBZGQoaSkucmVkSUFkZChpKS5yZWRJQWRkKGUucmVkTXVsKGMpKSx1PWYucmVkQWRkKGYpO3U9dS5yZWRJQWRkKHUpO3ZhciBuPXUucmVkTXVsKHQpLHM9Yi5yZWRTcXIoKS5yZWRJU3ViKG4ucmVkQWRkKG4pKSxvPW4ucmVkSVN1YihzKSxoPXQucmVkU3FyKCk7aD1oLnJlZElBZGQoaCksaD1oLnJlZElBZGQoaCksaD1oLnJlZElBZGQoaCk7dmFyIHY9Yi5yZWRNdWwobykucmVkSVN1YihoKSxsPXIucmVkQWRkKHIpLnJlZE11bChhKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQocyx2LGwpfTt3LnByb3RvdHlwZS50cnBsPWZ1bmN0aW9uKCl7aWYoIXRoaXMuY3VydmUuemVyb0EpcmV0dXJuIHRoaXMuZGJsKCkuYWRkKHRoaXMpO3ZhciBlPXRoaXMueC5yZWRTcXIoKSxmPXRoaXMueS5yZWRTcXIoKSxyPXRoaXMuei5yZWRTcXIoKSxhPWYucmVkU3FyKCksYz1lLnJlZEFkZChlKS5yZWRJQWRkKGUpLGk9Yy5yZWRTcXIoKSx0PXRoaXMueC5yZWRBZGQoZikucmVkU3FyKCkucmVkSVN1YihlKS5yZWRJU3ViKGEpO3Q9dC5yZWRJQWRkKHQpLHQ9dC5yZWRBZGQodCkucmVkSUFkZCh0KSx0PXQucmVkSVN1YihpKTt2YXIgYj10LnJlZFNxcigpLHU9YS5yZWRJQWRkKGEpO3U9dS5yZWRJQWRkKHUpLHU9dS5yZWRJQWRkKHUpLHU9dS5yZWRJQWRkKHUpO3ZhciBuPWMucmVkSUFkZCh0KS5yZWRTcXIoKS5yZWRJU3ViKGkpLnJlZElTdWIoYikucmVkSVN1Yih1KSxzPWYucmVkTXVsKG4pO3M9cy5yZWRJQWRkKHMpLHM9cy5yZWRJQWRkKHMpO3ZhciBvPXRoaXMueC5yZWRNdWwoYikucmVkSVN1YihzKTtvPW8ucmVkSUFkZChvKSxvPW8ucmVkSUFkZChvKTt2YXIgaD10aGlzLnkucmVkTXVsKG4ucmVkTXVsKHUucmVkSVN1YihuKSkucmVkSVN1Yih0LnJlZE11bChiKSkpO2g9aC5yZWRJQWRkKGgpLGg9aC5yZWRJQWRkKGgpLGg9aC5yZWRJQWRkKGgpO3ZhciB2PXRoaXMuei5yZWRBZGQodCkucmVkU3FyKCkucmVkSVN1YihyKS5yZWRJU3ViKGIpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChvLGgsdil9O3cucHJvdG90eXBlLm11bD1mdW5jdGlvbihlLGYpe3JldHVybiBlPW5ldyBTKGUsZiksdGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLGUpfTt3LnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtpZihlLnR5cGU9PT0iYWZmaW5lIilyZXR1cm4gdGhpcy5lcShlLnRvSigpKTtpZih0aGlzPT09ZSlyZXR1cm4hMDt2YXIgZj10aGlzLnoucmVkU3FyKCkscj1lLnoucmVkU3FyKCk7aWYodGhpcy54LnJlZE11bChyKS5yZWRJU3ViKGUueC5yZWRNdWwoZikpLmNtcG4oMCkhPT0wKXJldHVybiExO3ZhciBhPWYucmVkTXVsKHRoaXMueiksYz1yLnJlZE11bChlLnopO3JldHVybiB0aGlzLnkucmVkTXVsKGMpLnJlZElTdWIoZS55LnJlZE11bChhKSkuY21wbigwKT09PTB9O3cucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihlKXt2YXIgZj10aGlzLnoucmVkU3FyKCkscj1lLnRvUmVkKHRoaXMuY3VydmUucmVkKS5yZWRNdWwoZik7aWYodGhpcy54LmNtcChyKT09PTApcmV0dXJuITA7Zm9yKHZhciBhPWUuY2xvbmUoKSxjPXRoaXMuY3VydmUucmVkTi5yZWRNdWwoZik7Oyl7aWYoYS5pYWRkKHRoaXMuY3VydmUubiksYS5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihyLnJlZElBZGQoYyksdGhpcy54LmNtcChyKT09PTApcmV0dXJuITB9fTt3LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgSlBvaW50IEluZmluaXR5PiI6IjxFQyBKUG9pbnQgeDogIit0aGlzLngudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LnRvU3RyaW5nKDE2LDIpKyI+In07dy5wcm90b3R5cGUuaXNJbmZpbml0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnouY21wbigwKT09PTB9fSk7dmFyIExlPU0oKGVkLGplKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgSD1nKCJibi5qcyIpLE9lPWcoIm5wbTppbmhlcml0cyIpLHRlPWVlKCksRmY9eigpO2Z1bmN0aW9uIFUoZCl7dGUuY2FsbCh0aGlzLCJtb250IixkKSx0aGlzLmE9bmV3IEgoZC5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBIKGQuYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuaTQ9bmV3IEgoNCkudG9SZWQodGhpcy5yZWQpLnJlZEludm0oKSx0aGlzLnR3bz1uZXcgSCgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5hMjQ9dGhpcy5pNC5yZWRNdWwodGhpcy5hLnJlZEFkZCh0aGlzLnR3bykpfU9lKFUsdGUpO2plLmV4cG9ydHM9VTtVLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihlKXt2YXIgZj1lLm5vcm1hbGl6ZSgpLngscj1mLnJlZFNxcigpLGE9ci5yZWRNdWwoZikucmVkQWRkKHIucmVkTXVsKHRoaXMuYSkpLnJlZEFkZChmKSxjPWEucmVkU3FydCgpO3JldHVybiBjLnJlZFNxcigpLmNtcChhKT09PTB9O2Z1bmN0aW9uIEEoZCxlLGYpe3RlLkJhc2VQb2ludC5jYWxsKHRoaXMsZCwicHJvamVjdGl2ZSIpLGU9PT1udWxsJiZmPT09bnVsbD8odGhpcy54PXRoaXMuY3VydmUub25lLHRoaXMuej10aGlzLmN1cnZlLnplcm8pOih0aGlzLng9bmV3IEgoZSwxNiksdGhpcy56PW5ldyBIKGYsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSl9T2UoQSx0ZS5CYXNlUG9pbnQpO1UucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKGUsZil7cmV0dXJuIHRoaXMucG9pbnQoRmYudG9BcnJheShlLGYpLDEpfTtVLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihlLGYpe3JldHVybiBuZXcgQSh0aGlzLGUsZil9O1UucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oZSl7cmV0dXJuIEEuZnJvbUpTT04odGhpcyxlKX07QS5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe307QS5wcm90b3R5cGUuX2VuY29kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFgoKS50b0FycmF5KCJiZSIsdGhpcy5jdXJ2ZS5wLmJ5dGVMZW5ndGgoKSl9O0EuZnJvbUpTT049ZnVuY3Rpb24oZSxmKXtyZXR1cm4gbmV3IEEoZSxmWzBdLGZbMV18fGUub25lKX07QS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifTtBLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuei5jbXBuKDApPT09MH07QS5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy54LnJlZEFkZCh0aGlzLnopLGY9ZS5yZWRTcXIoKSxyPXRoaXMueC5yZWRTdWIodGhpcy56KSxhPXIucmVkU3FyKCksYz1mLnJlZFN1YihhKSxpPWYucmVkTXVsKGEpLHQ9Yy5yZWRNdWwoYS5yZWRBZGQodGhpcy5jdXJ2ZS5hMjQucmVkTXVsKGMpKSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoaSx0KX07QS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX07QS5wcm90b3R5cGUuZGlmZkFkZD1mdW5jdGlvbihlLGYpe3ZhciByPXRoaXMueC5yZWRBZGQodGhpcy56KSxhPXRoaXMueC5yZWRTdWIodGhpcy56KSxjPWUueC5yZWRBZGQoZS56KSxpPWUueC5yZWRTdWIoZS56KSx0PWkucmVkTXVsKHIpLGI9Yy5yZWRNdWwoYSksdT1mLnoucmVkTXVsKHQucmVkQWRkKGIpLnJlZFNxcigpKSxuPWYueC5yZWRNdWwodC5yZWRJU3ViKGIpLnJlZFNxcigpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludCh1LG4pfTtBLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZSl7Zm9yKHZhciBmPWUuY2xvbmUoKSxyPXRoaXMsYT10aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCksYz10aGlzLGk9W107Zi5jbXBuKDApIT09MDtmLml1c2hybigxKSlpLnB1c2goZi5hbmRsbigxKSk7Zm9yKHZhciB0PWkubGVuZ3RoLTE7dD49MDt0LS0paVt0XT09PTA/KHI9ci5kaWZmQWRkKGEsYyksYT1hLmRibCgpKTooYT1yLmRpZmZBZGQoYSxjKSxyPXIuZGJsKCkpO3JldHVybiBhfTtBLnByb3RvdHlwZS5tdWxBZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfTtBLnByb3RvdHlwZS5qdW1sQWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX07QS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZ2V0WCgpLmNtcChlLmdldFgoKSk9PT0wfTtBLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54PXRoaXMueC5yZWRNdWwodGhpcy56LnJlZEludm0oKSksdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXN9O0EucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnguZnJvbVJlZCgpfX0pO3ZhciBEZT1NKChmZCxKZSk9PnsidXNlIHN0cmljdCI7dmFyIE9mPXooKSxMPWcoImJuLmpzIiksQ2U9ZygibnBtOmluaGVyaXRzIiksY2U9ZWUoKSxqZj1PZi5hc3NlcnQ7ZnVuY3Rpb24gaihkKXt0aGlzLnR3aXN0ZWQ9KGQuYXwwKSE9PTEsdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJihkLmF8MCk9PT0tMSx0aGlzLmV4dGVuZGVkPXRoaXMubU9uZUEsY2UuY2FsbCh0aGlzLCJlZHdhcmRzIixkKSx0aGlzLmE9bmV3IEwoZC5hLDE2KS51bW9kKHRoaXMucmVkLm0pLHRoaXMuYT10aGlzLmEudG9SZWQodGhpcy5yZWQpLHRoaXMuYz1uZXcgTChkLmMsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmMyPXRoaXMuYy5yZWRTcXIoKSx0aGlzLmQ9bmV3IEwoZC5kLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5kZD10aGlzLmQucmVkQWRkKHRoaXMuZCksamYoIXRoaXMudHdpc3RlZHx8dGhpcy5jLmZyb21SZWQoKS5jbXBuKDEpPT09MCksdGhpcy5vbmVDPShkLmN8MCk9PT0xfUNlKGosY2UpO0plLmV4cG9ydHM9ajtqLnByb3RvdHlwZS5fbXVsQT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5tT25lQT9lLnJlZE5lZygpOnRoaXMuYS5yZWRNdWwoZSl9O2oucHJvdG90eXBlLl9tdWxDPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9uZUM/ZTp0aGlzLmMucmVkTXVsKGUpfTtqLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24oZSxmLHIsYSl7cmV0dXJuIHRoaXMucG9pbnQoZSxmLHIsYSl9O2oucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oZSxmKXtlPW5ldyBMKGUsMTYpLGUucmVkfHwoZT1lLnRvUmVkKHRoaXMucmVkKSk7dmFyIHI9ZS5yZWRTcXIoKSxhPXRoaXMuYzIucmVkU3ViKHRoaXMuYS5yZWRNdWwocikpLGM9dGhpcy5vbmUucmVkU3ViKHRoaXMuYzIucmVkTXVsKHRoaXMuZCkucmVkTXVsKHIpKSxpPWEucmVkTXVsKGMucmVkSW52bSgpKSx0PWkucmVkU3FydCgpO2lmKHQucmVkU3FyKCkucmVkU3ViKGkpLmNtcCh0aGlzLnplcm8pIT09MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIgYj10LmZyb21SZWQoKS5pc09kZCgpO3JldHVybihmJiYhYnx8IWYmJmIpJiYodD10LnJlZE5lZygpKSx0aGlzLnBvaW50KGUsdCl9O2oucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oZSxmKXtlPW5ldyBMKGUsMTYpLGUucmVkfHwoZT1lLnRvUmVkKHRoaXMucmVkKSk7dmFyIHI9ZS5yZWRTcXIoKSxhPXIucmVkU3ViKHRoaXMuYzIpLGM9ci5yZWRNdWwodGhpcy5kKS5yZWRNdWwodGhpcy5jMikucmVkU3ViKHRoaXMuYSksaT1hLnJlZE11bChjLnJlZEludm0oKSk7aWYoaS5jbXAodGhpcy56ZXJvKT09PTApe2lmKGYpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7cmV0dXJuIHRoaXMucG9pbnQodGhpcy56ZXJvLGUpfXZhciB0PWkucmVkU3FydCgpO2lmKHQucmVkU3FyKCkucmVkU3ViKGkpLmNtcCh0aGlzLnplcm8pIT09MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdC5mcm9tUmVkKCkuaXNPZGQoKSE9PWYmJih0PXQucmVkTmVnKCkpLHRoaXMucG9pbnQodCxlKX07ai5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oZSl7aWYoZS5pc0luZmluaXR5KCkpcmV0dXJuITA7ZS5ub3JtYWxpemUoKTt2YXIgZj1lLngucmVkU3FyKCkscj1lLnkucmVkU3FyKCksYT1mLnJlZE11bCh0aGlzLmEpLnJlZEFkZChyKSxjPXRoaXMuYzIucmVkTXVsKHRoaXMub25lLnJlZEFkZCh0aGlzLmQucmVkTXVsKGYpLnJlZE11bChyKSkpO3JldHVybiBhLmNtcChjKT09PTB9O2Z1bmN0aW9uIHkoZCxlLGYscixhKXtjZS5CYXNlUG9pbnQuY2FsbCh0aGlzLGQsInByb2plY3RpdmUiKSxlPT09bnVsbCYmZj09PW51bGwmJnI9PT1udWxsPyh0aGlzLng9dGhpcy5jdXJ2ZS56ZXJvLHRoaXMueT10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PXRoaXMuY3VydmUuemVybyx0aGlzLnpPbmU9ITApOih0aGlzLng9bmV3IEwoZSwxNiksdGhpcy55PW5ldyBMKGYsMTYpLHRoaXMuej1yP25ldyBMKHIsMTYpOnRoaXMuY3VydmUub25lLHRoaXMudD1hJiZuZXcgTChhLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnQmJiF0aGlzLnQucmVkJiYodGhpcy50PXRoaXMudC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZSx0aGlzLmN1cnZlLmV4dGVuZGVkJiYhdGhpcy50JiYodGhpcy50PXRoaXMueC5yZWRNdWwodGhpcy55KSx0aGlzLnpPbmV8fCh0aGlzLnQ9dGhpcy50LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSkpKX1DZSh5LGNlLkJhc2VQb2ludCk7ai5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihlKXtyZXR1cm4geS5mcm9tSlNPTih0aGlzLGUpfTtqLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihlLGYscixhKXtyZXR1cm4gbmV3IHkodGhpcyxlLGYscixhKX07eS5mcm9tSlNPTj1mdW5jdGlvbihlLGYpe3JldHVybiBuZXcgeShlLGZbMF0sZlsxXSxmWzJdKX07eS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifTt5LnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueC5jbXBuKDApPT09MCYmKHRoaXMueS5jbXAodGhpcy56KT09PTB8fHRoaXMuek9uZSYmdGhpcy55LmNtcCh0aGlzLmN1cnZlLmMpPT09MCl9O3kucHJvdG90eXBlLl9leHREYmw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLngucmVkU3FyKCksZj10aGlzLnkucmVkU3FyKCkscj10aGlzLnoucmVkU3FyKCk7cj1yLnJlZElBZGQocik7dmFyIGE9dGhpcy5jdXJ2ZS5fbXVsQShlKSxjPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKS5yZWRJU3ViKGUpLnJlZElTdWIoZiksaT1hLnJlZEFkZChmKSx0PWkucmVkU3ViKHIpLGI9YS5yZWRTdWIoZiksdT1jLnJlZE11bCh0KSxuPWkucmVkTXVsKGIpLHM9Yy5yZWRNdWwoYiksbz10LnJlZE11bChpKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludCh1LG4sbyxzKX07eS5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCksZj10aGlzLngucmVkU3FyKCkscj10aGlzLnkucmVkU3FyKCksYSxjLGksdCxiLHU7aWYodGhpcy5jdXJ2ZS50d2lzdGVkKXt0PXRoaXMuY3VydmUuX211bEEoZik7dmFyIG49dC5yZWRBZGQocik7dGhpcy56T25lPyhhPWUucmVkU3ViKGYpLnJlZFN1YihyKS5yZWRNdWwobi5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSxjPW4ucmVkTXVsKHQucmVkU3ViKHIpKSxpPW4ucmVkU3FyKCkucmVkU3ViKG4pLnJlZFN1YihuKSk6KGI9dGhpcy56LnJlZFNxcigpLHU9bi5yZWRTdWIoYikucmVkSVN1YihiKSxhPWUucmVkU3ViKGYpLnJlZElTdWIocikucmVkTXVsKHUpLGM9bi5yZWRNdWwodC5yZWRTdWIocikpLGk9bi5yZWRNdWwodSkpfWVsc2UgdD1mLnJlZEFkZChyKSxiPXRoaXMuY3VydmUuX211bEModGhpcy56KS5yZWRTcXIoKSx1PXQucmVkU3ViKGIpLnJlZFN1YihiKSxhPXRoaXMuY3VydmUuX211bEMoZS5yZWRJU3ViKHQpKS5yZWRNdWwodSksYz10aGlzLmN1cnZlLl9tdWxDKHQpLnJlZE11bChmLnJlZElTdWIocikpLGk9dC5yZWRNdWwodSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoYSxjLGkpfTt5LnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX07eS5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbihlKXt2YXIgZj10aGlzLnkucmVkU3ViKHRoaXMueCkucmVkTXVsKGUueS5yZWRTdWIoZS54KSkscj10aGlzLnkucmVkQWRkKHRoaXMueCkucmVkTXVsKGUueS5yZWRBZGQoZS54KSksYT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bChlLnQpLGM9dGhpcy56LnJlZE11bChlLnoucmVkQWRkKGUueikpLGk9ci5yZWRTdWIoZiksdD1jLnJlZFN1YihhKSxiPWMucmVkQWRkKGEpLHU9ci5yZWRBZGQoZiksbj1pLnJlZE11bCh0KSxzPWIucmVkTXVsKHUpLG89aS5yZWRNdWwodSksaD10LnJlZE11bChiKTtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChuLHMsaCxvKX07eS5wcm90b3R5cGUuX3Byb2pBZGQ9ZnVuY3Rpb24oZSl7dmFyIGY9dGhpcy56LnJlZE11bChlLnopLHI9Zi5yZWRTcXIoKSxhPXRoaXMueC5yZWRNdWwoZS54KSxjPXRoaXMueS5yZWRNdWwoZS55KSxpPXRoaXMuY3VydmUuZC5yZWRNdWwoYSkucmVkTXVsKGMpLHQ9ci5yZWRTdWIoaSksYj1yLnJlZEFkZChpKSx1PXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRNdWwoZS54LnJlZEFkZChlLnkpKS5yZWRJU3ViKGEpLnJlZElTdWIoYyksbj1mLnJlZE11bCh0KS5yZWRNdWwodSkscyxvO3JldHVybiB0aGlzLmN1cnZlLnR3aXN0ZWQ/KHM9Zi5yZWRNdWwoYikucmVkTXVsKGMucmVkU3ViKHRoaXMuY3VydmUuX211bEEoYSkpKSxvPXQucmVkTXVsKGIpKToocz1mLnJlZE11bChiKS5yZWRNdWwoYy5yZWRTdWIoYSkpLG89dGhpcy5jdXJ2ZS5fbXVsQyh0KS5yZWRNdWwoYikpLHRoaXMuY3VydmUucG9pbnQobixzLG8pfTt5LnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpP2U6ZS5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZChlKTp0aGlzLl9wcm9qQWRkKGUpfTt5LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXMoZSk/dGhpcy5jdXJ2ZS5fZml4ZWROYWZNdWwodGhpcyxlKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsZSl9O3kucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihlLGYscil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxmXSxbZSxyXSwyLCExKX07eS5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihlLGYscil7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxmXSxbZSxyXSwyLCEwKX07eS5wcm90b3R5cGUubm9ybWFsaXplPWZ1bmN0aW9uKCl7aWYodGhpcy56T25lKXJldHVybiB0aGlzO3ZhciBlPXRoaXMuei5yZWRJbnZtKCk7cmV0dXJuIHRoaXMueD10aGlzLngucmVkTXVsKGUpLHRoaXMueT10aGlzLnkucmVkTXVsKGUpLHRoaXMudCYmKHRoaXMudD10aGlzLnQucmVkTXVsKGUpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56T25lPSEwLHRoaXN9O3kucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRoaXMueC5yZWROZWcoKSx0aGlzLnksdGhpcy56LHRoaXMudCYmdGhpcy50LnJlZE5lZygpKX07eS5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vcm1hbGl6ZSgpLHRoaXMueC5mcm9tUmVkKCl9O3kucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnkuZnJvbVJlZCgpfTt5LnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcz09PWV8fHRoaXMuZ2V0WCgpLmNtcChlLmdldFgoKSk9PT0wJiZ0aGlzLmdldFkoKS5jbXAoZS5nZXRZKCkpPT09MH07eS5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKGUpe3ZhciBmPWUudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bCh0aGlzLnopO2lmKHRoaXMueC5jbXAoZik9PT0wKXJldHVybiEwO2Zvcih2YXIgcj1lLmNsb25lKCksYT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYoci5pYWRkKHRoaXMuY3VydmUubiksci5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihmLnJlZElBZGQoYSksdGhpcy54LmNtcChmKT09PTApcmV0dXJuITB9fTt5LnByb3RvdHlwZS50b1A9eS5wcm90b3R5cGUubm9ybWFsaXplO3kucHJvdG90eXBlLm1peGVkQWRkPXkucHJvdG90eXBlLmFkZH0pO3ZhciBtZT1NKFhlPT57InVzZSBzdHJpY3QiO3ZhciBpZT1YZTtpZS5iYXNlPWVlKCk7aWUuc2hvcnQ9RmUoKTtpZS5tb250PUxlKCk7aWUuZWR3YXJkcz1EZSgpfSk7dmFyIFllPU0oKHJkLFRlKT0+e1RlLmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMyY2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdmODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRhZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWExZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNhMzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUzMjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgiXSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJlMjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJjZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcwZjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJdLFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIsIjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJdLFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwIiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJdLFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2IiwiZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19KTt2YXIgYmU9TShrZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZ2U9a2UsSj1nKCJoYXNoLmpzIiksU2U9bWUoKSxMZj16KCksS2U9TGYuYXNzZXJ0O2Z1bmN0aW9uIFdlKGQpe2QudHlwZT09PSJzaG9ydCI/dGhpcy5jdXJ2ZT1uZXcgU2Uuc2hvcnQoZCk6ZC50eXBlPT09ImVkd2FyZHMiP3RoaXMuY3VydmU9bmV3IFNlLmVkd2FyZHMoZCk6dGhpcy5jdXJ2ZT1uZXcgU2UubW9udChkKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5oYXNoPWQuaGFzaCxLZSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLEtlKHRoaXMuZy5tdWwodGhpcy5uKS5pc0luZmluaXR5KCksIkludmFsaWQgY3VydmUsIEcqTiAhPSBPIil9Z2UuUHJlc2V0Q3VydmU9V2U7ZnVuY3Rpb24gRChkLGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShnZSxkLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgZj1uZXcgV2UoZSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShnZSxkLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpmfSksZn19KX1EKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDpKLnNoYTI1NixnUmVkOiExLGc6WyIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KTtEKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJwMjI0IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEzMjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDpKLnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAzYzFkMyA1NmMyMTEyMiAzNDMyODBkNiAxMTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KTtEKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFkMDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6Si5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNhNDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSk7RCgicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOkouc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBhZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgxOWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0pO0QoInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOSIsaGFzaDpKLnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZmYThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwIl19KTtEKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6Si5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSk7RCgiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOkouc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjU4Il19KTt2YXIgeGU7dHJ5e3hlPVllKCl9Y2F0Y2h7eGU9dm9pZCAwfUQoInNlY3AyNTZrMSIse3R5cGU6InNob3J0IixwcmltZToiazI1NiIscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiLGE6IjAiLGI6IjciLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGJhYWVkY2U2IGFmNDhhMDNiIGJmZDI1ZThjIGQwMzY0MTQxIixoOiIxIixoYXNoOkouc2hhMjU2LGJldGE6IjdhZTk2YTJiNjU3YzA3MTA2ZTY0NDc5ZWFjMzQzNGU5OWNmMDQ5NzUxMmY1ODk5NWMxMzk2YzI4NzE5NTAxZWUiLGxhbWJkYToiNTM2M2FkNGNjMDVjMzBlMGE1MjYxYzAyODgxMjY0NWExMjJlMjJlYTIwODE2Njc4ZGYwMjk2N2MxYjIzYmQ3MiIsYmFzaXM6W3thOiIzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSIsYjoiLWU0NDM3ZWQ2MDEwZTg4Mjg2ZjU0N2ZhOTBhYmZlNGMzIn0se2E6IjExNGNhNTBmN2E4ZTJmM2Y2NTdjMTEwOGQ5ZDQ0Y2ZkOCIsYjoiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUifV0sZ1JlZDohMSxnOlsiNzliZTY2N2VmOWRjYmJhYzU1YTA2Mjk1Y2U4NzBiMDcwMjliZmNkYjJkY2UyOGQ5NTlmMjgxNWIxNmY4MTc5OCIsIjQ4M2FkYTc3MjZhM2M0NjU1ZGE0ZmJmYzBlMTEwOGE4ZmQxN2I0NDhhNjg1NTQxOTljNDdkMDhmZmIxMGQ0YjgiLHhlXX0pfSk7dmFyIFVlPU0oKHRkLEhlKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQ2Y9ZygiYm4uanMiKSxKZj16KCksQWU9SmYuYXNzZXJ0O2Z1bmN0aW9uIHEoZCxlKXt0aGlzLmVjPWQsdGhpcy5wcml2PW51bGwsdGhpcy5wdWI9bnVsbCxlLnByaXYmJnRoaXMuX2ltcG9ydFByaXZhdGUoZS5wcml2LGUucHJpdkVuYyksZS5wdWImJnRoaXMuX2ltcG9ydFB1YmxpYyhlLnB1YixlLnB1YkVuYyl9SGUuZXhwb3J0cz1xO3EuZnJvbVB1YmxpYz1mdW5jdGlvbihlLGYscil7cmV0dXJuIGYgaW5zdGFuY2VvZiBxP2Y6bmV3IHEoZSx7cHViOmYscHViRW5jOnJ9KX07cS5mcm9tUHJpdmF0ZT1mdW5jdGlvbihlLGYscil7cmV0dXJuIGYgaW5zdGFuY2VvZiBxP2Y6bmV3IHEoZSx7cHJpdjpmLHByaXZFbmM6cn0pfTtxLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0UHVibGljKCk7cmV0dXJuIGUuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITEscmVhc29uOiJJbnZhbGlkIHB1YmxpYyBrZXkifTplLnZhbGlkYXRlKCk/ZS5tdWwodGhpcy5lYy5jdXJ2ZS5uKS5pc0luZmluaXR5KCk/e3Jlc3VsdDohMCxyZWFzb246bnVsbH06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgKiBOICE9IE8ifTp7cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSBpcyBub3QgYSBwb2ludCJ9fTtxLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oZSxmKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciJiYoZj1lLGU9bnVsbCksdGhpcy5wdWJ8fCh0aGlzLnB1Yj10aGlzLmVjLmcubXVsKHRoaXMucHJpdikpLGY/dGhpcy5wdWIuZW5jb2RlKGYsZSk6dGhpcy5wdWJ9O3EucHJvdG90eXBlLmdldFByaXZhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT0iaGV4Ij90aGlzLnByaXYudG9TdHJpbmcoMTYsMik6dGhpcy5wcml2fTtxLnByb3RvdHlwZS5faW1wb3J0UHJpdmF0ZT1mdW5jdGlvbihlLGYpe3RoaXMucHJpdj1uZXcgQ2YoZSxmfHwxNiksdGhpcy5wcml2PXRoaXMucHJpdi51bW9kKHRoaXMuZWMuY3VydmUubil9O3EucHJvdG90eXBlLl9pbXBvcnRQdWJsaWM9ZnVuY3Rpb24oZSxmKXtpZihlLnh8fGUueSl7dGhpcy5lYy5jdXJ2ZS50eXBlPT09Im1vbnQiP0FlKGUueCwiTmVlZCB4IGNvb3JkaW5hdGUiKToodGhpcy5lYy5jdXJ2ZS50eXBlPT09InNob3J0Inx8dGhpcy5lYy5jdXJ2ZS50eXBlPT09ImVkd2FyZHMiKSYmQWUoZS54JiZlLnksIk5lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUiKSx0aGlzLnB1Yj10aGlzLmVjLmN1cnZlLnBvaW50KGUueCxlLnkpO3JldHVybn10aGlzLnB1Yj10aGlzLmVjLmN1cnZlLmRlY29kZVBvaW50KGUsZil9O3EucHJvdG90eXBlLmRlcml2ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS52YWxpZGF0ZSgpfHxBZShlLnZhbGlkYXRlKCksInB1YmxpYyBwb2ludCBub3QgdmFsaWRhdGVkIiksZS5tdWwodGhpcy5wcml2KS5nZXRYKCl9O3EucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZSxmLHIpe3JldHVybiB0aGlzLmVjLnNpZ24oZSx0aGlzLGYscil9O3EucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihlLGYscil7cmV0dXJuIHRoaXMuZWMudmVyaWZ5KGUsZix0aGlzLHZvaWQgMCxyKX07cS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiI8S2V5IHByaXY6ICIrKHRoaXMucHJpdiYmdGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpKSsiIHB1YjogIisodGhpcy5wdWImJnRoaXMucHViLmluc3BlY3QoKSkrIiA+In19KTt2YXIgWmU9TSgoY2QsVmUpPT57InVzZSBzdHJpY3QiO3ZhciBuZT1nKCJibi5qcyIpLE1lPXooKSxEZj1NZS5hc3NlcnQ7ZnVuY3Rpb24gc2UoZCxlKXtpZihkIGluc3RhbmNlb2Ygc2UpcmV0dXJuIGQ7dGhpcy5faW1wb3J0REVSKGQsZSl8fChEZihkLnImJmQucywiU2lnbmF0dXJlIHdpdGhvdXQgciBvciBzIiksdGhpcy5yPW5ldyBuZShkLnIsMTYpLHRoaXMucz1uZXcgbmUoZC5zLDE2KSxkLnJlY292ZXJ5UGFyYW09PT12b2lkIDA/dGhpcy5yZWNvdmVyeVBhcmFtPW51bGw6dGhpcy5yZWNvdmVyeVBhcmFtPWQucmVjb3ZlcnlQYXJhbSl9VmUuZXhwb3J0cz1zZTtmdW5jdGlvbiBYZigpe3RoaXMucGxhY2U9MH1mdW5jdGlvbiBJZShkLGUpe3ZhciBmPWRbZS5wbGFjZSsrXTtpZighKGYmMTI4KSlyZXR1cm4gZjt2YXIgcj1mJjE1O2lmKHI9PT0wfHxyPjR8fGRbZS5wbGFjZV09PT0wKXJldHVybiExO2Zvcih2YXIgYT0wLGM9MCxpPWUucGxhY2U7YzxyO2MrKyxpKyspYTw8PTgsYXw9ZFtpXSxhPj4+PTA7cmV0dXJuIGE8PTEyNz8hMTooZS5wbGFjZT1pLGEpfWZ1bmN0aW9uIEdlKGQpe2Zvcih2YXIgZT0wLGY9ZC5sZW5ndGgtMTshZFtlXSYmIShkW2UrMV0mMTI4KSYmZTxmOyllKys7cmV0dXJuIGU9PT0wP2Q6ZC5zbGljZShlKX1zZS5wcm90b3R5cGUuX2ltcG9ydERFUj1mdW5jdGlvbihlLGYpe2U9TWUudG9BcnJheShlLGYpO3ZhciByPW5ldyBYZjtpZihlW3IucGxhY2UrK10hPT00OClyZXR1cm4hMTt2YXIgYT1JZShlLHIpO2lmKGE9PT0hMXx8YStyLnBsYWNlIT09ZS5sZW5ndGh8fGVbci5wbGFjZSsrXSE9PTIpcmV0dXJuITE7dmFyIGM9SWUoZSxyKTtpZihjPT09ITF8fChlW3IucGxhY2VdJjEyOCkhPT0wKXJldHVybiExO3ZhciBpPWUuc2xpY2Uoci5wbGFjZSxjK3IucGxhY2UpO2lmKHIucGxhY2UrPWMsZVtyLnBsYWNlKytdIT09MilyZXR1cm4hMTt2YXIgdD1JZShlLHIpO2lmKHQ9PT0hMXx8ZS5sZW5ndGghPT10K3IucGxhY2V8fChlW3IucGxhY2VdJjEyOCkhPT0wKXJldHVybiExO3ZhciBiPWUuc2xpY2Uoci5wbGFjZSx0K3IucGxhY2UpO2lmKGlbMF09PT0wKWlmKGlbMV0mMTI4KWk9aS5zbGljZSgxKTtlbHNlIHJldHVybiExO2lmKGJbMF09PT0wKWlmKGJbMV0mMTI4KWI9Yi5zbGljZSgxKTtlbHNlIHJldHVybiExO3JldHVybiB0aGlzLnI9bmV3IG5lKGkpLHRoaXMucz1uZXcgbmUoYiksdGhpcy5yZWNvdmVyeVBhcmFtPW51bGwsITB9O2Z1bmN0aW9uIHdlKGQsZSl7aWYoZTwxMjgpe2QucHVzaChlKTtyZXR1cm59dmFyIGY9MSsoTWF0aC5sb2coZSkvTWF0aC5MTjI+Pj4zKTtmb3IoZC5wdXNoKGZ8MTI4KTstLWY7KWQucHVzaChlPj4+KGY8PDMpJjI1NSk7ZC5wdXNoKGUpfXNlLnByb3RvdHlwZS50b0RFUj1mdW5jdGlvbihlKXt2YXIgZj10aGlzLnIudG9BcnJheSgpLHI9dGhpcy5zLnRvQXJyYXkoKTtmb3IoZlswXSYxMjgmJihmPVswXS5jb25jYXQoZikpLHJbMF0mMTI4JiYocj1bMF0uY29uY2F0KHIpKSxmPUdlKGYpLHI9R2Uocik7IXJbMF0mJiEoclsxXSYxMjgpOylyPXIuc2xpY2UoMSk7dmFyIGE9WzJdO3dlKGEsZi5sZW5ndGgpLGE9YS5jb25jYXQoZiksYS5wdXNoKDIpLHdlKGEsci5sZW5ndGgpO3ZhciBjPWEuY29uY2F0KHIpLGk9WzQ4XTtyZXR1cm4gd2UoaSxjLmxlbmd0aCksaT1pLmNvbmNhdChjKSxNZS5lbmNvZGUoaSxlKX19KTt2YXIgZWY9TSgoaWQsUWUpPT57InVzZSBzdHJpY3QiO3ZhciBGPWcoImJuLmpzIiksJGU9ZygiaG1hYy1kcmJnIiksVGY9eigpLHFlPWJlKCksWWY9ZygiYnJvcmFuZCIpLFk9VGYuYXNzZXJ0LF9lPVVlKCksdWU9WmUoKTtmdW5jdGlvbiBCKGQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEIpKXJldHVybiBuZXcgQihkKTt0eXBlb2YgZD09InN0cmluZyImJihZKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChxZSxkKSwiVW5rbm93biBjdXJ2ZSAiK2QpLGQ9cWVbZF0pLGQgaW5zdGFuY2VvZiBxZS5QcmVzZXRDdXJ2ZSYmKGQ9e2N1cnZlOmR9KSx0aGlzLmN1cnZlPWQuY3VydmUuY3VydmUsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLm5oPXRoaXMubi51c2hybigxKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMuZz1kLmN1cnZlLmcsdGhpcy5nLnByZWNvbXB1dGUoZC5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD1kLmhhc2h8fGQuY3VydmUuaGFzaH1RZS5leHBvcnRzPUI7Qi5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IF9lKHRoaXMsZSl9O0IucHJvdG90eXBlLmtleUZyb21Qcml2YXRlPWZ1bmN0aW9uKGUsZil7cmV0dXJuIF9lLmZyb21Qcml2YXRlKHRoaXMsZSxmKX07Qi5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbihlLGYpe3JldHVybiBfZS5mcm9tUHVibGljKHRoaXMsZSxmKX07Qi5wcm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5jdGlvbihlKXtlfHwoZT17fSk7Zm9yKHZhciBmPW5ldyAkZSh7aGFzaDp0aGlzLmhhc2gscGVyczplLnBlcnMscGVyc0VuYzplLnBlcnNFbmN8fCJ1dGY4IixlbnRyb3B5OmUuZW50cm9weXx8WWYodGhpcy5oYXNoLmhtYWNTdHJlbmd0aCksZW50cm9weUVuYzplLmVudHJvcHkmJmUuZW50cm9weUVuY3x8InV0ZjgiLG5vbmNlOnRoaXMubi50b0FycmF5KCl9KSxyPXRoaXMubi5ieXRlTGVuZ3RoKCksYT10aGlzLm4uc3ViKG5ldyBGKDIpKTs7KXt2YXIgYz1uZXcgRihmLmdlbmVyYXRlKHIpKTtpZighKGMuY21wKGEpPjApKXJldHVybiBjLmlhZGRuKDEpLHRoaXMua2V5RnJvbVByaXZhdGUoYyl9fTtCLnByb3RvdHlwZS5fdHJ1bmNhdGVUb049ZnVuY3Rpb24oZSxmLHIpe3ZhciBhO2lmKEYuaXNCTihlKXx8dHlwZW9mIGU9PSJudW1iZXIiKWU9bmV3IEYoZSwxNiksYT1lLmJ5dGVMZW5ndGgoKTtlbHNlIGlmKHR5cGVvZiBlPT0ib2JqZWN0IilhPWUubGVuZ3RoLGU9bmV3IEYoZSwxNik7ZWxzZXt2YXIgYz1lLnRvU3RyaW5nKCk7YT1jLmxlbmd0aCsxPj4+MSxlPW5ldyBGKGMsMTYpfXR5cGVvZiByIT0ibnVtYmVyIiYmKHI9YSo4KTt2YXIgaT1yLXRoaXMubi5iaXRMZW5ndGgoKTtyZXR1cm4gaT4wJiYoZT1lLnVzaHJuKGkpKSwhZiYmZS5jbXAodGhpcy5uKT49MD9lLnN1Yih0aGlzLm4pOmV9O0IucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZSxmLHIsYSl7aWYodHlwZW9mIHI9PSJvYmplY3QiJiYoYT1yLHI9bnVsbCksYXx8KGE9e30pLHR5cGVvZiBlIT0ic3RyaW5nIiYmdHlwZW9mIGUhPSJudW1iZXIiJiYhRi5pc0JOKGUpKXtZKHR5cGVvZiBlPT0ib2JqZWN0IiYmZSYmdHlwZW9mIGUubGVuZ3RoPT0ibnVtYmVyIiwiRXhwZWN0ZWQgbWVzc2FnZSB0byBiZSBhbiBhcnJheS1saWtlLCBhIGhleCBzdHJpbmcsIG9yIGEgQk4gaW5zdGFuY2UiKSxZKGUubGVuZ3RoPj4+MD09PWUubGVuZ3RoKTtmb3IodmFyIGM9MDtjPGUubGVuZ3RoO2MrKylZKChlW2NdJjI1NSk9PT1lW2NdKX1mPXRoaXMua2V5RnJvbVByaXZhdGUoZixyKSxlPXRoaXMuX3RydW5jYXRlVG9OKGUsITEsYS5tc2dCaXRMZW5ndGgpLFkoIWUuaXNOZWcoKSwiQ2FuIG5vdCBzaWduIGEgbmVnYXRpdmUgbWVzc2FnZSIpO3ZhciBpPXRoaXMubi5ieXRlTGVuZ3RoKCksdD1mLmdldFByaXZhdGUoKS50b0FycmF5KCJiZSIsaSksYj1lLnRvQXJyYXkoImJlIixpKTtZKG5ldyBGKGIpLmVxKGUpLCJDYW4gbm90IHNpZ24gbWVzc2FnZSIpO2Zvcih2YXIgdT1uZXcgJGUoe2hhc2g6dGhpcy5oYXNoLGVudHJvcHk6dCxub25jZTpiLHBlcnM6YS5wZXJzLHBlcnNFbmM6YS5wZXJzRW5jfHwidXRmOCJ9KSxuPXRoaXMubi5zdWIobmV3IEYoMSkpLHM9MDs7cysrKXt2YXIgbz1hLms/YS5rKHMpOm5ldyBGKHUuZ2VuZXJhdGUodGhpcy5uLmJ5dGVMZW5ndGgoKSkpO2lmKG89dGhpcy5fdHJ1bmNhdGVUb04obywhMCksIShvLmNtcG4oMSk8PTB8fG8uY21wKG4pPj0wKSl7dmFyIGg9dGhpcy5nLm11bChvKTtpZighaC5pc0luZmluaXR5KCkpe3ZhciB2PWguZ2V0WCgpLGw9di51bW9kKHRoaXMubik7aWYobC5jbXBuKDApIT09MCl7dmFyIG09by5pbnZtKHRoaXMubikubXVsKGwubXVsKGYuZ2V0UHJpdmF0ZSgpKS5pYWRkKGUpKTtpZihtPW0udW1vZCh0aGlzLm4pLG0uY21wbigwKSE9PTApe3ZhciBwPShoLmdldFkoKS5pc09kZCgpPzE6MCl8KHYuY21wKGwpIT09MD8yOjApO3JldHVybiBhLmNhbm9uaWNhbCYmbS5jbXAodGhpcy5uaCk+MCYmKG09dGhpcy5uLnN1YihtKSxwXj0xKSxuZXcgdWUoe3I6bCxzOm0scmVjb3ZlcnlQYXJhbTpwfSl9fX19fX07Qi5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKGUsZixyLGEsYyl7Y3x8KGM9e30pLGU9dGhpcy5fdHJ1bmNhdGVUb04oZSwhMSxjLm1zZ0JpdExlbmd0aCkscj10aGlzLmtleUZyb21QdWJsaWMocixhKSxmPW5ldyB1ZShmLCJoZXgiKTt2YXIgaT1mLnIsdD1mLnM7aWYoaS5jbXBuKDEpPDB8fGkuY21wKHRoaXMubik+PTB8fHQuY21wbigxKTwwfHx0LmNtcCh0aGlzLm4pPj0wKXJldHVybiExO3ZhciBiPXQuaW52bSh0aGlzLm4pLHU9Yi5tdWwoZSkudW1vZCh0aGlzLm4pLG49Yi5tdWwoaSkudW1vZCh0aGlzLm4pLHM7cmV0dXJuIHRoaXMuY3VydmUuX21heHdlbGxUcmljaz8ocz10aGlzLmcuam11bEFkZCh1LHIuZ2V0UHVibGljKCksbikscy5pc0luZmluaXR5KCk/ITE6cy5lcVhUb1AoaSkpOihzPXRoaXMuZy5tdWxBZGQodSxyLmdldFB1YmxpYygpLG4pLHMuaXNJbmZpbml0eSgpPyExOnMuZ2V0WCgpLnVtb2QodGhpcy5uKS5jbXAoaSk9PT0wKX07Qi5wcm90b3R5cGUucmVjb3ZlclB1YktleT1mdW5jdGlvbihkLGUsZixyKXtZKCgzJmYpPT09ZiwiVGhlIHJlY292ZXJ5IHBhcmFtIGlzIG1vcmUgdGhhbiB0d28gYml0cyIpLGU9bmV3IHVlKGUscik7dmFyIGE9dGhpcy5uLGM9bmV3IEYoZCksaT1lLnIsdD1lLnMsYj1mJjEsdT1mPj4xO2lmKGkuY21wKHRoaXMuY3VydmUucC51bW9kKHRoaXMuY3VydmUubikpPj0wJiZ1KXRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgc2VuY29uZCBrZXkgY2FuZGluYXRlIik7dT9pPXRoaXMuY3VydmUucG9pbnRGcm9tWChpLmFkZCh0aGlzLmN1cnZlLm4pLGIpOmk9dGhpcy5jdXJ2ZS5wb2ludEZyb21YKGksYik7dmFyIG49ZS5yLmludm0oYSkscz1hLnN1YihjKS5tdWwobikudW1vZChhKSxvPXQubXVsKG4pLnVtb2QoYSk7cmV0dXJuIHRoaXMuZy5tdWxBZGQocyxpLG8pfTtCLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtPWZ1bmN0aW9uKGQsZSxmLHIpe2lmKGU9bmV3IHVlKGUsciksZS5yZWNvdmVyeVBhcmFtIT09bnVsbClyZXR1cm4gZS5yZWNvdmVyeVBhcmFtO2Zvcih2YXIgYT0wO2E8NDthKyspe3ZhciBjO3RyeXtjPXRoaXMucmVjb3ZlclB1YktleShkLGUsYSl9Y2F0Y2h7Y29udGludWV9aWYoYy5lcShmKSlyZXR1cm4gYX10aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZhbGlkIHJlY292ZXJ5IGZhY3RvciIpfX0pO3ZhciBhZj1NKChiZCxyZik9PnsidXNlIHN0cmljdCI7dmFyIGZlPXooKSxkZj1mZS5hc3NlcnQsZmY9ZmUucGFyc2VCeXRlcyxHPWZlLmNhY2hlZFByb3BlcnR5O2Z1bmN0aW9uIEkoZCxlKXt0aGlzLmVkZHNhPWQsdGhpcy5fc2VjcmV0PWZmKGUuc2VjcmV0KSxkLmlzUG9pbnQoZS5wdWIpP3RoaXMuX3B1Yj1lLnB1Yjp0aGlzLl9wdWJCeXRlcz1mZihlLnB1Yil9SS5mcm9tUHVibGljPWZ1bmN0aW9uKGUsZil7cmV0dXJuIGYgaW5zdGFuY2VvZiBJP2Y6bmV3IEkoZSx7cHViOmZ9KX07SS5mcm9tU2VjcmV0PWZ1bmN0aW9uKGUsZil7cmV0dXJuIGYgaW5zdGFuY2VvZiBJP2Y6bmV3IEkoZSx7c2VjcmV0OmZ9KX07SS5wcm90b3R5cGUuc2VjcmV0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlY3JldH07RyhJLCJwdWJCeXRlcyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLnB1YigpKX0pO0coSSwicHViIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wdWJCeXRlcz90aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTp0aGlzLmVkZHNhLmcubXVsKHRoaXMucHJpdigpKX0pO0coSSwicHJpdkJ5dGVzIixmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWRkc2EsZj10aGlzLmhhc2goKSxyPWUuZW5jb2RpbmdMZW5ndGgtMSxhPWYuc2xpY2UoMCxlLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gYVswXSY9MjQ4LGFbcl0mPTEyNyxhW3JdfD02NCxhfSk7RyhJLCJwcml2IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLnByaXZCeXRlcygpKX0pO0coSSwiaGFzaCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5oYXNoKCkudXBkYXRlKHRoaXMuc2VjcmV0KCkpLmRpZ2VzdCgpfSk7RyhJLCJtZXNzYWdlUHJlZml4IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc2goKS5zbGljZSh0aGlzLmVkZHNhLmVuY29kaW5nTGVuZ3RoKX0pO0kucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZSl7cmV0dXJuIGRmKHRoaXMuX3NlY3JldCwiS2V5UGFpciBjYW4gb25seSB2ZXJpZnkiKSx0aGlzLmVkZHNhLnNpZ24oZSx0aGlzKX07SS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKGUsZil7cmV0dXJuIHRoaXMuZWRkc2EudmVyaWZ5KGUsZix0aGlzKX07SS5wcm90b3R5cGUuZ2V0U2VjcmV0PWZ1bmN0aW9uKGUpe3JldHVybiBkZih0aGlzLl9zZWNyZXQsIktleVBhaXIgaXMgcHVibGljIG9ubHkiKSxmZS5lbmNvZGUodGhpcy5zZWNyZXQoKSxlKX07SS5wcm90b3R5cGUuZ2V0UHVibGljPWZ1bmN0aW9uKGUpe3JldHVybiBmZS5lbmNvZGUodGhpcy5wdWJCeXRlcygpLGUpfTtyZi5leHBvcnRzPUl9KTt2YXIgYmY9TSgobmQsY2YpPT57InVzZSBzdHJpY3QiO3ZhciBLZj1nKCJibi5qcyIpLG9lPXooKSx0Zj1vZS5hc3NlcnQsaGU9b2UuY2FjaGVkUHJvcGVydHksV2Y9b2UucGFyc2VCeXRlcztmdW5jdGlvbiBLKGQsZSl7dGhpcy5lZGRzYT1kLHR5cGVvZiBlIT0ib2JqZWN0IiYmKGU9V2YoZSkpLEFycmF5LmlzQXJyYXkoZSkmJih0ZihlLmxlbmd0aD09PWQuZW5jb2RpbmdMZW5ndGgqMiwiU2lnbmF0dXJlIGhhcyBpbnZhbGlkIHNpemUiKSxlPXtSOmUuc2xpY2UoMCxkLmVuY29kaW5nTGVuZ3RoKSxTOmUuc2xpY2UoZC5lbmNvZGluZ0xlbmd0aCl9KSx0ZihlLlImJmUuUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksZC5pc1BvaW50KGUuUikmJih0aGlzLl9SPWUuUiksZS5TIGluc3RhbmNlb2YgS2YmJih0aGlzLl9TPWUuUyksdGhpcy5fUmVuY29kZWQ9QXJyYXkuaXNBcnJheShlLlIpP2UuUjplLlJlbmNvZGVkLHRoaXMuX1NlbmNvZGVkPUFycmF5LmlzQXJyYXkoZS5TKT9lLlM6ZS5TZW5jb2RlZH1oZShLLCJTIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLlNlbmNvZGVkKCkpfSk7aGUoSywiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlzLlJlbmNvZGVkKCkpfSk7aGUoSywiUmVuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSk7aGUoSywiU2VuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlSW50KHRoaXMuUygpKX0pO0sucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZW5jb2RlZCgpLmNvbmNhdCh0aGlzLlNlbmNvZGVkKCkpfTtLLnByb3RvdHlwZS50b0hleD1mdW5jdGlvbigpe3JldHVybiBvZS5lbmNvZGUodGhpcy50b0J5dGVzKCksImhleCIpLnRvVXBwZXJDYXNlKCl9O2NmLmV4cG9ydHM9S30pO3ZhciBoZj1NKChzZCxvZik9PnsidXNlIHN0cmljdCI7dmFyIGtmPWcoImhhc2guanMiKSxIZj1iZSgpLFY9eigpLFVmPVYuYXNzZXJ0LHNmPVYucGFyc2VCeXRlcyx1Zj1hZigpLG5mPWJmKCk7ZnVuY3Rpb24gXyhkKXtpZihVZihkPT09ImVkMjU1MTkiLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2YgXykpcmV0dXJuIG5ldyBfKGQpO2Q9SGZbZF0uY3VydmUsdGhpcy5jdXJ2ZT1kLHRoaXMuZz1kLmcsdGhpcy5nLnByZWNvbXB1dGUoZC5uLmJpdExlbmd0aCgpKzEpLHRoaXMucG9pbnRDbGFzcz1kLnBvaW50KCkuY29uc3RydWN0b3IsdGhpcy5lbmNvZGluZ0xlbmd0aD1NYXRoLmNlaWwoZC5uLmJpdExlbmd0aCgpLzgpLHRoaXMuaGFzaD1rZi5zaGE1MTJ9b2YuZXhwb3J0cz1fO18ucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oZSxmKXtlPXNmKGUpO3ZhciByPXRoaXMua2V5RnJvbVNlY3JldChmKSxhPXRoaXMuaGFzaEludChyLm1lc3NhZ2VQcmVmaXgoKSxlKSxjPXRoaXMuZy5tdWwoYSksaT10aGlzLmVuY29kZVBvaW50KGMpLHQ9dGhpcy5oYXNoSW50KGksci5wdWJCeXRlcygpLGUpLm11bChyLnByaXYoKSksYj1hLmFkZCh0KS51bW9kKHRoaXMuY3VydmUubik7cmV0dXJuIHRoaXMubWFrZVNpZ25hdHVyZSh7UjpjLFM6YixSZW5jb2RlZDppfSl9O18ucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihlLGYscil7aWYoZT1zZihlKSxmPXRoaXMubWFrZVNpZ25hdHVyZShmKSxmLlMoKS5ndGUoZi5lZGRzYS5jdXJ2ZS5uKXx8Zi5TKCkuaXNOZWcoKSlyZXR1cm4hMTt2YXIgYT10aGlzLmtleUZyb21QdWJsaWMociksYz10aGlzLmhhc2hJbnQoZi5SZW5jb2RlZCgpLGEucHViQnl0ZXMoKSxlKSxpPXRoaXMuZy5tdWwoZi5TKCkpLHQ9Zi5SKCkuYWRkKGEucHViKCkubXVsKGMpKTtyZXR1cm4gdC5lcShpKX07Xy5wcm90b3R5cGUuaGFzaEludD1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmhhc2goKSxmPTA7Zjxhcmd1bWVudHMubGVuZ3RoO2YrKyllLnVwZGF0ZShhcmd1bWVudHNbZl0pO3JldHVybiBWLmludEZyb21MRShlLmRpZ2VzdCgpKS51bW9kKHRoaXMuY3VydmUubil9O18ucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oZSl7cmV0dXJuIHVmLmZyb21QdWJsaWModGhpcyxlKX07Xy5wcm90b3R5cGUua2V5RnJvbVNlY3JldD1mdW5jdGlvbihlKXtyZXR1cm4gdWYuZnJvbVNlY3JldCh0aGlzLGUpfTtfLnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgbmY/ZTpuZXcgbmYodGhpcyxlKX07Xy5wcm90b3R5cGUuZW5jb2RlUG9pbnQ9ZnVuY3Rpb24oZSl7dmFyIGY9ZS5nZXRZKCkudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpO3JldHVybiBmW3RoaXMuZW5jb2RpbmdMZW5ndGgtMV18PWUuZ2V0WCgpLmlzT2RkKCk/MTI4OjAsZn07Xy5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oZSl7ZT1WLnBhcnNlQnl0ZXMoZSk7dmFyIGY9ZS5sZW5ndGgtMSxyPWUuc2xpY2UoMCxmKS5jb25jYXQoZVtmXSYtMTI5KSxhPShlW2ZdJjEyOCkhPT0wLGM9Vi5pbnRGcm9tTEUocik7cmV0dXJuIHRoaXMuY3VydmUucG9pbnRGcm9tWShjLGEpfTtfLnByb3RvdHlwZS5lbmNvZGVJbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfTtfLnByb3RvdHlwZS5kZWNvZGVJbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFYuaW50RnJvbUxFKGUpfTtfLnByb3RvdHlwZS5pc1BvaW50PWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdGhpcy5wb2ludENsYXNzfX0pO3ZhciBsZj1NKHZmPT57InVzZSBzdHJpY3QiO3ZhciBXPXZmO1cudmVyc2lvbj1SZSgpLnZlcnNpb247Vy51dGlscz16KCk7Vy5yYW5kPWcoImJyb3JhbmQiKTtXLmN1cnZlPW1lKCk7Vy5jdXJ2ZXM9YmUoKTtXLmVjPWVmKCk7Vy5lZGRzYT1oZigpfSk7dmFyIHZlPUFmKGxmKCkpLHt2ZXJzaW9uOm9kLHV0aWxzOmhkLHJhbmQ6dmQsY3VydmU6bGQsY3VydmVzOnBkLGVjOnlkLGVkZHNhOm1kfT12ZSxTZD12ZS5kZWZhdWx0Pz92ZTtleHBvcnR7bGQgYXMgY3VydmUscGQgYXMgY3VydmVzLFNkIGFzIGRlZmF1bHQseWQgYXMgZWMsbWQgYXMgZWRkc2EsdmQgYXMgcmFuZCxoZCBhcyB1dGlscyxvZCBhcyB2ZXJzaW9ufTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZWxsaXB0aWMubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.589Z","timestamp":1785138633589,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/core@2.17.4/es2022/core.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/sign-client@2.17.4/es2022/sign-client.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 19:46:59 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbfbef569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":82778,"size_decoded":28958,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65438)","md5":"552bbcfe146a0e6b9392fe0c673afdaa","sha1":"34121fa2832043074146a552690508480cb32ece","sha256":"64e88d09f6ca064cfd20c16421f77834a5a850762da26d0455237db6932d2902","sha512":"9485af47cb38d019af75aef9f3646b269049133b8e0b85720fa31db08724084e001c63cb7638e324e44a94849dd4d0930a598f259c594cea9d91799834e60f59","ssdeep":"768:F5Bywj4ka8HtfWDVwzOM340puYF3QwqUrN5Ykn4NUxNOJu60DDECx:tywc/8HtGwztQwqkv4+OJP0Do+","tlshash":"c083fa51b3bb99320bcda19dfd212700736a98982568801cbfad7cef85485c4f76af70","first_seen":"2025-07-08T23:56:54.734668Z","last_seen":"2026-07-27T07:51:47.239441Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvY29yZUAyLjE3LjQgKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwppbXBvcnQgWHQse0V2ZW50RW1pdHRlciBhcyBWfWZyb20iL25vZGUvZXZlbnRzLm1qcyI7aW1wb3J0e0hFQVJUQkVBVF9FVkVOVFMgYXMgVyxIZWFydEJlYXQgYXMgV3R9ZnJvbSIvQHdhbGxldGNvbm5lY3QvaGVhcnRiZWF0QDEuMi4yL2VzMjAyMi9oZWFydGJlYXQubWpzIjtpbXBvcnQgWnQgZnJvbSIvQHdhbGxldGNvbm5lY3Qva2V5dmFsdWVzdG9yYWdlQDEuMS4xL2VzMjAyMi9rZXl2YWx1ZXN0b3JhZ2UubWpzIjtpbXBvcnR7Z2VuZXJhdGVDaGlsZExvZ2dlciBhcyBULGdldExvZ2dlckNvbnRleHQgYXMgUixwaW5vIGFzIFF0LGdldERlZmF1bHRMb2dnZXJPcHRpb25zIGFzIFB0LGdlbmVyYXRlUGxhdGZvcm1Mb2dnZXIgYXMgZWl9ZnJvbSIvQHdhbGxldGNvbm5lY3QvbG9nZ2VyQDIuMS4yL2VzMjAyMi9sb2dnZXIubWpzIjtpbXBvcnR7SU1lc3NhZ2VUcmFja2VyIGFzIHRpLElQdWJsaXNoZXIgYXMgaWksSVN1YnNjcmliZXIgYXMgc2ksSVJlbGF5ZXIgYXMgcmksSVN0b3JlIGFzIGFpLElKc29uUnBjSGlzdG9yeSBhcyBuaSxJRXhwaXJlciBhcyBvaSxJVmVyaWZ5IGFzIGNpLElFY2hvQ2xpZW50IGFzIGhpLElFdmVudENsaWVudCBhcyBsaSxJQ29yZSBhcyBwaX1mcm9tIi9Ad2FsbGV0Y29ubmVjdC90eXBlc0AyLjE3LjQvZXMyMDIyL3R5cGVzLm1qcyI7aW1wb3J0e09ORV9EQVkgYXMgJCxTSVhfSE9VUlMgYXMgZ2ksVEhJUlRZX0RBWVMgYXMgc2UsRklWRV9TRUNPTkRTIGFzIGtlLFRISVJUWV9TRUNPTkRTIGFzIGhlLHRvTWlsaXNlY29uZHMgYXMgRSxPTkVfTUlOVVRFIGFzIEZ0LE9ORV9TRUNPTkQgYXMgSyxXYXRjaCBhcyBkaSxGSVZFX01JTlVURVMgYXMgbGUsZnJvbU1pbGlzZWNvbmRzIGFzIEtlfWZyb20iL0B3YWxsZXRjb25uZWN0L3RpbWVAMS4wLjIvZXMyMDIyL3RpbWUubWpzIjtpbXBvcnR7c2FmZUpzb25TdHJpbmdpZnkgYXMgdWksc2FmZUpzb25QYXJzZSBhcyBNZX1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9zYWZlLWpzb25AMS4wLjIvZXMyMDIyL3NhZmUtanNvbi5tanMiO2ltcG9ydCphcyBNIGZyb20iL0B3YWxsZXRjb25uZWN0L3JlbGF5LWF1dGhAMS4wLjQvZXMyMDIyL3JlbGF5LWF1dGgubWpzIjtpbXBvcnR7ZGVjb2RlSldUIGFzICRlfWZyb20iL0B3YWxsZXRjb25uZWN0L3JlbGF5LWF1dGhAMS4wLjQvZXMyMDIyL3JlbGF5LWF1dGgubWpzIjtpbXBvcnR7Z2V0SW50ZXJuYWxFcnJvciBhcyBkLG1hcFRvT2JqIGFzIFN0LG9ialRvTWFwIGFzIFJ0LGdlbmVyYXRlUmFuZG9tQnl0ZXMzMiBhcyBwZSxnZW5lcmF0ZUtleVBhaXIgYXMgeWksZGVyaXZlU3ltS2V5IGFzIG1pLGhhc2hLZXkgYXMgYmksdmFsaWRhdGVFbmNvZGluZyBhcyBfaSxpc1R5cGVUd29FbnZlbG9wZSBhcyBCZSxlbmNvZGVUeXBlVHdvRW52ZWxvcGUgYXMgZmksaXNUeXBlT25lRW52ZWxvcGUgYXMgVmUsZW5jcnlwdCBhcyB3aSx2YWxpZGF0ZURlY29kaW5nIGFzIHZpLGRlY29kZVR5cGVUd29FbnZlbG9wZSBhcyBFaSxkZWNyeXB0IGFzIElpLGRlc2VyaWFsaXplIGFzIGplLGRlY29kZVR5cGVCeXRlIGFzIFRpLEJBU0U2NCBhcyBxZSxCQVNFMTYgYXMgUGksaGFzaE1lc3NhZ2UgYXMgZ2UsZ2V0UmVsYXlQcm90b2NvbE5hbWUgYXMgdGUsY3JlYXRlRXhwaXJpbmdQcm9taXNlIGFzIGssZ2V0UmVsYXlQcm90b2NvbEFwaSBhcyBZLGlzVW5kZWZpbmVkIGFzIGRlLGdldFNka0Vycm9yIGFzIEosc2xlZXAgYXMgRmksaXNOb2RlIGFzIEdlLGlzQW5kcm9pZCBhcyBTaSxnZXRBcHBJZCBhcyBIZSxpc0lvcyBhcyBSaSxpc09ubGluZSBhcyBZZSxjYWxjRXhwaXJ5IGFzIFgsZm9ybWF0UmVsYXlScGNVcmwgYXMgeGksc3Vic2NyaWJlVG9OZXR3b3JrQ2hhbmdlIGFzIEFpLGlzUHJvcG9zYWxTdHJ1Y3QgYXMgT2ksaXNTZXNzaW9uU3RydWN0IGFzIENpLFRZUEVfMSBhcyBOaSxmb3JtYXRVcmkgYXMgSmUscGFyc2VVcmkgYXMgWGUsY3JlYXRlRGVsYXllZFByb21pc2UgYXMgRGksZW5naW5lRXZlbnQgYXMgYWUsaXNFeHBpcmVkIGFzIFdlLGlzVmFsaWRQYXJhbXMgYXMgbmUsaXNWYWxpZFVybCBhcyB6aSxpc1ZhbGlkU3RyaW5nIGFzIExpLHBhcnNlRXhwaXJlclRhcmdldCBhcyBVaSxmb3JtYXRUb3BpY1RhcmdldCBhcyBraSxmb3JtYXRJZFRhcmdldCBhcyBLaSxpc0Jyb3dzZXIgYXMgTWksdmVyaWZ5UDI1Nkp3dCBhcyAkaSxpc1Rlc3RSdW4gYXMgeHQsdXVpZHY0IGFzIFplLGZvcm1hdFVBIGFzIEJpLGdldEFwcE1ldGFkYXRhIGFzIFZpfWZyb20iL0B3YWxsZXRjb25uZWN0L3V0aWxzQDIuMTcuNC9lczIwMjIvdXRpbHMubWpzIjtpbXBvcnR7dG9TdHJpbmcgYXMgaml9ZnJvbSIvdWludDhhcnJheXNAMy4xLjAvZXMyMDIyL3VpbnQ4YXJyYXlzLm1qcyI7aW1wb3J0e0pzb25ScGNQcm92aWRlciBhcyBxaX1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXByb3ZpZGVyQDEuMC4xNC9lczIwMjIvanNvbnJwYy1wcm92aWRlci5tanMiO2ltcG9ydHtnZXRCaWdJbnRScGNJZCBhcyBBdCxpc0pzb25ScGNSZXF1ZXN0IGFzIE90LGlzSnNvblJwY1Jlc3BvbnNlIGFzIEN0LGZvcm1hdEpzb25ScGNSZXN1bHQgYXMgTnQsZm9ybWF0SnNvblJwY1JlcXVlc3QgYXMgRHQsZm9ybWF0SnNvblJwY0Vycm9yIGFzIEdpLGlzSnNvblJwY1Jlc3VsdCBhcyBIaSxpc0pzb25ScGNFcnJvciBhcyB6dH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXV0aWxzQDEuMC44L2VzMjAyMi9qc29ucnBjLXV0aWxzLm1qcyI7aW1wb3J0IFlpIGZyb20iL0B3YWxsZXRjb25uZWN0L2pzb25ycGMtd3MtY29ubmVjdGlvbkAxLjAuMTYvZXMyMDIyL2pzb25ycGMtd3MtY29ubmVjdGlvbi5tanMiO2ltcG9ydCBKaSBmcm9tIi9sb2Rhc2guaXNlcXVhbEA0LjUuMC9lczIwMjIvbG9kYXNoLmlzZXF1YWwubWpzIjtpbXBvcnR7Z2V0RG9jdW1lbnQgYXMgWGl9ZnJvbSIvQHdhbGxldGNvbm5lY3Qvd2luZG93LWdldHRlcnNAMS4wLjEvZXMyMDIyL3dpbmRvdy1nZXR0ZXJzLm1qcyI7dmFyIEx0PSJ3YyIsVXQ9MixpZT0iY29yZSIsTj1gJHtMdH1AMjoke2llfTpgLFdpPXtuYW1lOmllLGxvZ2dlcjoiZXJyb3IifSxaaT17ZGF0YWJhc2U6IjptZW1vcnk6In0sUWk9ImNyeXB0byIsUWU9ImNsaWVudF9lZDI1NTE5X3NlZWQiLGVzPSQsdHM9ImtleWNoYWluIixpcz0iMC4zIixzcz0ibWVzc2FnZXMiLHJzPSIwLjMiLGV0PWdpLGFzPSJwdWJsaXNoZXIiLG5zPSJpcm4iLG9zPSJlcnJvciIsa3Q9IndzczovL3JlbGF5LndhbGxldGNvbm5lY3Qub3JnIixjcz0icmVsYXllciIsdj17bWVzc2FnZToicmVsYXllcl9tZXNzYWdlIixtZXNzYWdlX2FjazoicmVsYXllcl9tZXNzYWdlX2FjayIsY29ubmVjdDoicmVsYXllcl9jb25uZWN0IixkaXNjb25uZWN0OiJyZWxheWVyX2Rpc2Nvbm5lY3QiLGVycm9yOiJyZWxheWVyX2Vycm9yIixjb25uZWN0aW9uX3N0YWxsZWQ6InJlbGF5ZXJfY29ubmVjdGlvbl9zdGFsbGVkIix0cmFuc3BvcnRfY2xvc2VkOiJyZWxheWVyX3RyYW5zcG9ydF9jbG9zZWQiLHB1Ymxpc2g6InJlbGF5ZXJfcHVibGlzaCJ9LGhzPSJfc3Vic2NyaXB0aW9uIixTPXtwYXlsb2FkOiJwYXlsb2FkIixjb25uZWN0OiJjb25uZWN0IixkaXNjb25uZWN0OiJkaXNjb25uZWN0IixlcnJvcjoiZXJyb3IifSxscz0uMSxOYT17ZGF0YWJhc2U6IjptZW1vcnk6In0sdWU9IjIuMTcuNCIsRGE9MWU0LEI9e2xpbmtfbW9kZToibGlua19tb2RlIixyZWxheToicmVsYXkifSxwcz0iMC4zIixncz0iV0FMTEVUQ09OTkVDVF9DTElFTlRfSUQiLHR0PSJXQUxMRVRDT05ORUNUX0xJTktfTU9ERV9BUFBTIixQPXtjcmVhdGVkOiJzdWJzY3JpcHRpb25fY3JlYXRlZCIsZGVsZXRlZDoic3Vic2NyaXB0aW9uX2RlbGV0ZWQiLGV4cGlyZWQ6InN1YnNjcmlwdGlvbl9leHBpcmVkIixkaXNhYmxlZDoic3Vic2NyaXB0aW9uX2Rpc2FibGVkIixzeW5jOiJzdWJzY3JpcHRpb25fc3luYyIscmVzdWJzY3JpYmVkOiJzdWJzY3JpcHRpb25fcmVzdWJzY3JpYmVkIn0semE9c2UsZHM9InN1YnNjcmlwdGlvbiIsdXM9IjAuMyIseXM9a2UqMWUzLG1zPSJwYWlyaW5nIixicz0iMC4zIixMYT1zZSxqPXt3Y19wYWlyaW5nRGVsZXRlOntyZXE6e3R0bDokLHByb21wdDohMSx0YWc6MWUzfSxyZXM6e3R0bDokLHByb21wdDohMSx0YWc6MTAwMX19LHdjX3BhaXJpbmdQaW5nOntyZXE6e3R0bDpoZSxwcm9tcHQ6ITEsdGFnOjEwMDJ9LHJlczp7dHRsOmhlLHByb21wdDohMSx0YWc6MTAwM319LHVucmVnaXN0ZXJlZF9tZXRob2Q6e3JlcTp7dHRsOiQscHJvbXB0OiExLHRhZzowfSxyZXM6e3R0bDokLHByb21wdDohMSx0YWc6MH19fSxxPXtjcmVhdGU6InBhaXJpbmdfY3JlYXRlIixleHBpcmU6InBhaXJpbmdfZXhwaXJlIixkZWxldGU6InBhaXJpbmdfZGVsZXRlIixwaW5nOiJwYWlyaW5nX3BpbmcifSxBPXtjcmVhdGVkOiJoaXN0b3J5X2NyZWF0ZWQiLHVwZGF0ZWQ6Imhpc3RvcnlfdXBkYXRlZCIsZGVsZXRlZDoiaGlzdG9yeV9kZWxldGVkIixzeW5jOiJoaXN0b3J5X3N5bmMifSxfcz0iaGlzdG9yeSIsZnM9IjAuMyIsd3M9ImV4cGlyZXIiLE89e2NyZWF0ZWQ6ImV4cGlyZXJfY3JlYXRlZCIsZGVsZXRlZDoiZXhwaXJlcl9kZWxldGVkIixleHBpcmVkOiJleHBpcmVyX2V4cGlyZWQiLHN5bmM6ImV4cGlyZXJfc3luYyJ9LHZzPSIwLjMiLFVhPSQsRXM9InZlcmlmeS1hcGkiLElzPSJodHRwczovL3ZlcmlmeS53YWxsZXRjb25uZWN0LmNvbSIsS3Q9Imh0dHBzOi8vdmVyaWZ5LndhbGxldGNvbm5lY3Qub3JnIixlZT1LdCxUcz1gJHtlZX0vdjNgLFBzPVtJcyxLdF0sRnM9ImVjaG8iLFNzPSJodHRwczovL2VjaG8ud2FsbGV0Y29ubmVjdC5jb20iLGthPSJldmVudC1jbGllbnQiLHo9e3BhaXJpbmdfc3RhcnRlZDoicGFpcmluZ19zdGFydGVkIixwYWlyaW5nX3VyaV92YWxpZGF0aW9uX3N1Y2Nlc3M6InBhaXJpbmdfdXJpX3ZhbGlkYXRpb25fc3VjY2VzcyIscGFpcmluZ191cmlfbm90X2V4cGlyZWQ6InBhaXJpbmdfdXJpX25vdF9leHBpcmVkIixzdG9yZV9uZXdfcGFpcmluZzoic3RvcmVfbmV3X3BhaXJpbmciLHN1YnNjcmliaW5nX3BhaXJpbmdfdG9waWM6InN1YnNjcmliaW5nX3BhaXJpbmdfdG9waWMiLHN1YnNjcmliZV9wYWlyaW5nX3RvcGljX3N1Y2Nlc3M6InN1YnNjcmliZV9wYWlyaW5nX3RvcGljX3N1Y2Nlc3MiLGV4aXN0aW5nX3BhaXJpbmc6ImV4aXN0aW5nX3BhaXJpbmciLHBhaXJpbmdfbm90X2V4cGlyZWQ6InBhaXJpbmdfbm90X2V4cGlyZWQiLGVtaXRfaW5hY3RpdmVfcGFpcmluZzoiZW1pdF9pbmFjdGl2ZV9wYWlyaW5nIixlbWl0X3Nlc3Npb25fcHJvcG9zYWw6ImVtaXRfc2Vzc2lvbl9wcm9wb3NhbCIsc3Vic2NyaWJpbmdfdG9fcGFpcmluZ190b3BpYzoic3Vic2NyaWJpbmdfdG9fcGFpcmluZ190b3BpYyJ9LFU9e25vX3dzc19jb25uZWN0aW9uOiJub193c3NfY29ubmVjdGlvbiIsbm9faW50ZXJuZXRfY29ubmVjdGlvbjoibm9faW50ZXJuZXRfY29ubmVjdGlvbiIsbWFsZm9ybWVkX3BhaXJpbmdfdXJpOiJtYWxmb3JtZWRfcGFpcmluZ191cmkiLGFjdGl2ZV9wYWlyaW5nX2FscmVhZHlfZXhpc3RzOiJhY3RpdmVfcGFpcmluZ19hbHJlYWR5X2V4aXN0cyIsc3Vic2NyaWJlX3BhaXJpbmdfdG9waWNfZmFpbHVyZToic3Vic2NyaWJlX3BhaXJpbmdfdG9waWNfZmFpbHVyZSIscGFpcmluZ19leHBpcmVkOiJwYWlyaW5nX2V4cGlyZWQiLHByb3Bvc2FsX2V4cGlyZWQ6InByb3Bvc2FsX2V4cGlyZWQiLHByb3Bvc2FsX2xpc3RlbmVyX25vdF9mb3VuZDoicHJvcG9zYWxfbGlzdGVuZXJfbm90X2ZvdW5kIn0sS2E9e3Nlc3Npb25fYXBwcm92ZV9zdGFydGVkOiJzZXNzaW9uX2FwcHJvdmVfc3RhcnRlZCIscHJvcG9zYWxfbm90X2V4cGlyZWQ6InByb3Bvc2FsX25vdF9leHBpcmVkIixzZXNzaW9uX25hbWVzcGFjZXNfdmFsaWRhdGlvbl9zdWNjZXNzOiJzZXNzaW9uX25hbWVzcGFjZXNfdmFsaWRhdGlvbl9zdWNjZXNzIixjcmVhdGVfc2Vzc2lvbl90b3BpYzoiY3JlYXRlX3Nlc3Npb25fdG9waWMiLHN1YnNjcmliaW5nX3Nlc3Npb25fdG9waWM6InN1YnNjcmliaW5nX3Nlc3Npb25fdG9waWMiLHN1YnNjcmliZV9zZXNzaW9uX3RvcGljX3N1Y2Nlc3M6InN1YnNjcmliZV9zZXNzaW9uX3RvcGljX3N1Y2Nlc3MiLHB1Ymxpc2hpbmdfc2Vzc2lvbl9hcHByb3ZlOiJwdWJsaXNoaW5nX3Nlc3Npb25fYXBwcm92ZSIsc2Vzc2lvbl9hcHByb3ZlX3B1Ymxpc2hfc3VjY2Vzczoic2Vzc2lvbl9hcHByb3ZlX3B1Ymxpc2hfc3VjY2VzcyIsc3RvcmVfc2Vzc2lvbjoic3RvcmVfc2Vzc2lvbiIscHVibGlzaGluZ19zZXNzaW9uX3NldHRsZToicHVibGlzaGluZ19zZXNzaW9uX3NldHRsZSIsc2Vzc2lvbl9zZXR0bGVfcHVibGlzaF9zdWNjZXNzOiJzZXNzaW9uX3NldHRsZV9wdWJsaXNoX3N1Y2Nlc3MifSxNYT17bm9faW50ZXJuZXRfY29ubmVjdGlvbjoibm9faW50ZXJuZXRfY29ubmVjdGlvbiIsbm9fd3NzX2Nvbm5lY3Rpb246Im5vX3dzc19jb25uZWN0aW9uIixwcm9wb3NhbF9leHBpcmVkOiJwcm9wb3NhbF9leHBpcmVkIixzdWJzY3JpYmVfc2Vzc2lvbl90b3BpY19mYWlsdXJlOiJzdWJzY3JpYmVfc2Vzc2lvbl90b3BpY19mYWlsdXJlIixzZXNzaW9uX2FwcHJvdmVfcHVibGlzaF9mYWlsdXJlOiJzZXNzaW9uX2FwcHJvdmVfcHVibGlzaF9mYWlsdXJlIixzZXNzaW9uX3NldHRsZV9wdWJsaXNoX2ZhaWx1cmU6InNlc3Npb25fc2V0dGxlX3B1Ymxpc2hfZmFpbHVyZSIsc2Vzc2lvbl9hcHByb3ZlX25hbWVzcGFjZV92YWxpZGF0aW9uX2ZhaWx1cmU6InNlc3Npb25fYXBwcm92ZV9uYW1lc3BhY2VfdmFsaWRhdGlvbl9mYWlsdXJlIixwcm9wb3NhbF9ub3RfZm91bmQ6InByb3Bvc2FsX25vdF9mb3VuZCJ9LCRhPXthdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZV9zdGFydGVkOiJhdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZV9zdGFydGVkIixhdXRoZW50aWNhdGVkX3Nlc3Npb25fbm90X2V4cGlyZWQ6ImF1dGhlbnRpY2F0ZWRfc2Vzc2lvbl9ub3RfZXhwaXJlZCIsY2hhaW5zX2NhaXAyX2NvbXBsaWFudDoiY2hhaW5zX2NhaXAyX2NvbXBsaWFudCIsY2hhaW5zX2V2bV9jb21wbGlhbnQ6ImNoYWluc19ldm1fY29tcGxpYW50IixjcmVhdGVfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljOiJjcmVhdGVfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljIixjYWNhb3NfdmVyaWZpZWQ6ImNhY2Fvc192ZXJpZmllZCIsc3RvcmVfYXV0aGVudGljYXRlZF9zZXNzaW9uOiJzdG9yZV9hdXRoZW50aWNhdGVkX3Nlc3Npb24iLHN1YnNjcmliaW5nX2F1dGhlbnRpY2F0ZWRfc2Vzc2lvbl90b3BpYzoic3Vic2NyaWJpbmdfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljIixzdWJzY3JpYmVfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljX3N1Y2Nlc3M6InN1YnNjcmliZV9hdXRoZW50aWNhdGVkX3Nlc3Npb25fdG9waWNfc3VjY2VzcyIscHVibGlzaGluZ19hdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZToicHVibGlzaGluZ19hdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZSIsYXV0aGVudGljYXRlZF9zZXNzaW9uX2FwcHJvdmVfcHVibGlzaF9zdWNjZXNzOiJhdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZV9wdWJsaXNoX3N1Y2Nlc3MifSxCYT17bm9faW50ZXJuZXRfY29ubmVjdGlvbjoibm9faW50ZXJuZXRfY29ubmVjdGlvbiIsbm9fd3NzX2Nvbm5lY3Rpb246Im5vX3dzc19jb25uZWN0aW9uIixtaXNzaW5nX3Nlc3Npb25fYXV0aGVudGljYXRlX3JlcXVlc3Q6Im1pc3Npbmdfc2Vzc2lvbl9hdXRoZW50aWNhdGVfcmVxdWVzdCIsc2Vzc2lvbl9hdXRoZW50aWNhdGVfcmVxdWVzdF9leHBpcmVkOiJzZXNzaW9uX2F1dGhlbnRpY2F0ZV9yZXF1ZXN0X2V4cGlyZWQiLGNoYWluc19jYWlwMl9jb21wbGlhbnRfZmFpbHVyZToiY2hhaW5zX2NhaXAyX2NvbXBsaWFudF9mYWlsdXJlIixjaGFpbnNfZXZtX2NvbXBsaWFudF9mYWlsdXJlOiJjaGFpbnNfZXZtX2NvbXBsaWFudF9mYWlsdXJlIixpbnZhbGlkX2NhY2FvOiJpbnZhbGlkX2NhY2FvIixzdWJzY3JpYmVfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljX2ZhaWx1cmU6InN1YnNjcmliZV9hdXRoZW50aWNhdGVkX3Nlc3Npb25fdG9waWNfZmFpbHVyZSIsYXV0aGVudGljYXRlZF9zZXNzaW9uX2FwcHJvdmVfcHVibGlzaF9mYWlsdXJlOiJhdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZV9wdWJsaXNoX2ZhaWx1cmUiLGF1dGhlbnRpY2F0ZWRfc2Vzc2lvbl9wZW5kaW5nX3JlcXVlc3Rfbm90X2ZvdW5kOiJhdXRoZW50aWNhdGVkX3Nlc3Npb25fcGVuZGluZ19yZXF1ZXN0X25vdF9mb3VuZCJ9LFJzPS4xLHhzPSJldmVudC1jbGllbnQiLEFzPTg2NDAwLE9zPSJodHRwczovL3B1bHNlLndhbGxldGNvbm5lY3Qub3JnL2JhdGNoIjtmdW5jdGlvbiBDcyhuLGUpe2lmKG4ubGVuZ3RoPj0yNTUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQWxwaGFiZXQgdG9vIGxvbmciKTtmb3IodmFyIHQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxzPTA7czx0Lmxlbmd0aDtzKyspdFtzXT0yNTU7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciByPW4uY2hhckF0KGkpLGE9ci5jaGFyQ29kZUF0KDApO2lmKHRbYV0hPT0yNTUpdGhyb3cgbmV3IFR5cGVFcnJvcihyKyIgaXMgYW1iaWd1b3VzIik7dFthXT1pfXZhciBvPW4ubGVuZ3RoLGM9bi5jaGFyQXQoMCksaD1NYXRoLmxvZyhvKS9NYXRoLmxvZygyNTYpLHA9TWF0aC5sb2coMjU2KS9NYXRoLmxvZyhvKTtmdW5jdGlvbiBnKGwpe2lmKGwgaW5zdGFuY2VvZiBVaW50OEFycmF5fHwoQXJyYXlCdWZmZXIuaXNWaWV3KGwpP2w9bmV3IFVpbnQ4QXJyYXkobC5idWZmZXIsbC5ieXRlT2Zmc2V0LGwuYnl0ZUxlbmd0aCk6QXJyYXkuaXNBcnJheShsKSYmKGw9VWludDhBcnJheS5mcm9tKGwpKSksIShsIGluc3RhbmNlb2YgVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgVWludDhBcnJheSIpO2lmKGwubGVuZ3RoPT09MClyZXR1cm4iIjtmb3IodmFyIHU9MCxJPTAsXz0wLG09bC5sZW5ndGg7XyE9PW0mJmxbX109PT0wOylfKyssdSsrO2Zvcih2YXIgRj0obS1fKSpwKzE+Pj4wLHc9bmV3IFVpbnQ4QXJyYXkoRik7XyE9PW07KXtmb3IodmFyIEM9bFtfXSxMPTAseD1GLTE7KEMhPT0wfHxMPEkpJiZ4IT09LTE7eC0tLEwrKylDKz0yNTYqd1t4XT4+PjAsd1t4XT1DJW8+Pj4wLEM9Qy9vPj4+MDtpZihDIT09MCl0aHJvdyBuZXcgRXJyb3IoIk5vbi16ZXJvIGNhcnJ5Iik7ST1MLF8rK31mb3IodmFyIEQ9Ri1JO0QhPT1GJiZ3W0RdPT09MDspRCsrO2Zvcih2YXIgUT1jLnJlcGVhdCh1KTtEPEY7KytEKVErPW4uY2hhckF0KHdbRF0pO3JldHVybiBRfWZ1bmN0aW9uIHkobCl7aWYodHlwZW9mIGwhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIFN0cmluZyIpO2lmKGwubGVuZ3RoPT09MClyZXR1cm4gbmV3IFVpbnQ4QXJyYXk7dmFyIHU9MDtpZihsW3VdIT09IiAiKXtmb3IodmFyIEk9MCxfPTA7bFt1XT09PWM7KUkrKyx1Kys7Zm9yKHZhciBtPShsLmxlbmd0aC11KSpoKzE+Pj4wLEY9bmV3IFVpbnQ4QXJyYXkobSk7bFt1XTspe3ZhciB3PXRbbC5jaGFyQ29kZUF0KHUpXTtpZih3PT09MjU1KXJldHVybjtmb3IodmFyIEM9MCxMPW0tMTsodyE9PTB8fEM8XykmJkwhPT0tMTtMLS0sQysrKXcrPW8qRltMXT4+PjAsRltMXT13JTI1Nj4+PjAsdz13LzI1Nj4+PjA7aWYodyE9PTApdGhyb3cgbmV3IEVycm9yKCJOb24temVybyBjYXJyeSIpO189Qyx1Kyt9aWYobFt1XSE9PSIgIil7Zm9yKHZhciB4PW0tXzt4IT09bSYmRlt4XT09PTA7KXgrKztmb3IodmFyIEQ9bmV3IFVpbnQ4QXJyYXkoSSsobS14KSksUT1JO3ghPT1tOylEW1ErK109Rlt4KytdO3JldHVybiBEfX19ZnVuY3Rpb24gYihsKXt2YXIgdT15KGwpO2lmKHUpcmV0dXJuIHU7dGhyb3cgbmV3IEVycm9yKGBOb24tJHtlfSBjaGFyYWN0ZXJgKX1yZXR1cm57ZW5jb2RlOmcsZGVjb2RlVW5zYWZlOnksZGVjb2RlOmJ9fXZhciBOcz1DcyxEcz1OcyxNdD1uPT57aWYobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkmJm4uY29uc3RydWN0b3IubmFtZT09PSJVaW50OEFycmF5IilyZXR1cm4gbjtpZihuIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIG5ldyBVaW50OEFycmF5KG4pO2lmKEFycmF5QnVmZmVyLmlzVmlldyhuKSlyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobi5idWZmZXIsbi5ieXRlT2Zmc2V0LG4uYnl0ZUxlbmd0aCk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHR5cGUsIG11c3QgYmUgYmluYXJ5IHR5cGUiKX0senM9bj0+bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG4pLExzPW49Pm5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShuKSx5ZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9dCx0aGlzLmJhc2VFbmNvZGU9c31lbmNvZGUoZSl7aWYoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuYCR7dGhpcy5wcmVmaXh9JHt0aGlzLmJhc2VFbmNvZGUoZSl9YDt0aHJvdyBFcnJvcigiVW5rbm93biB0eXBlLCBtdXN0IGJlIGJpbmFyeSB0eXBlIil9fSxtZT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQscyl7aWYodGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9dCx0LmNvZGVQb2ludEF0KDApPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwcmVmaXggY2hhcmFjdGVyIik7dGhpcy5wcmVmaXhDb2RlUG9pbnQ9dC5jb2RlUG9pbnRBdCgwKSx0aGlzLmJhc2VEZWNvZGU9c31kZWNvZGUoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZihlLmNvZGVQb2ludEF0KDApIT09dGhpcy5wcmVmaXhDb2RlUG9pbnQpdGhyb3cgRXJyb3IoYFVuYWJsZSB0byBkZWNvZGUgbXVsdGliYXNlIHN0cmluZyAke0pTT04uc3RyaW5naWZ5KGUpfSwgJHt0aGlzLm5hbWV9IGRlY29kZXIgb25seSBzdXBwb3J0cyBpbnB1dHMgcHJlZml4ZWQgd2l0aCAke3RoaXMucHJlZml4fWApO3JldHVybiB0aGlzLmJhc2VEZWNvZGUoZS5zbGljZSh0aGlzLnByZWZpeC5sZW5ndGgpKX1lbHNlIHRocm93IEVycm9yKCJDYW4gb25seSBtdWx0aWJhc2UgZGVjb2RlIHN0cmluZ3MiKX1vcihlKXtyZXR1cm4gJHQodGhpcyxlKX19LGJlPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVjb2RlcnM9ZX1vcihlKXtyZXR1cm4gJHQodGhpcyxlKX1kZWNvZGUoZSl7bGV0IHQ9ZVswXSxzPXRoaXMuZGVjb2RlcnNbdF07aWYocylyZXR1cm4gcy5kZWNvZGUoZSk7dGhyb3cgUmFuZ2VFcnJvcihgVW5hYmxlIHRvIGRlY29kZSBtdWx0aWJhc2Ugc3RyaW5nICR7SlNPTi5zdHJpbmdpZnkoZSl9LCBvbmx5IGlucHV0cyBwcmVmaXhlZCB3aXRoICR7T2JqZWN0LmtleXModGhpcy5kZWNvZGVycyl9IGFyZSBzdXBwb3J0ZWRgKX19LCR0PShuLGUpPT5uZXcgYmUoey4uLm4uZGVjb2RlcnN8fHtbbi5wcmVmaXhdOm59LC4uLmUuZGVjb2RlcnN8fHtbZS5wcmVmaXhdOmV9fSksX2U9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHMsaSl7dGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9dCx0aGlzLmJhc2VFbmNvZGU9cyx0aGlzLmJhc2VEZWNvZGU9aSx0aGlzLmVuY29kZXI9bmV3IHllKGUsdCxzKSx0aGlzLmRlY29kZXI9bmV3IG1lKGUsdCxpKX1lbmNvZGUoZSl7cmV0dXJuIHRoaXMuZW5jb2Rlci5lbmNvZGUoZSl9ZGVjb2RlKGUpe3JldHVybiB0aGlzLmRlY29kZXIuZGVjb2RlKGUpfX0scmU9KHtuYW1lOm4scHJlZml4OmUsZW5jb2RlOnQsZGVjb2RlOnN9KT0+bmV3IF9lKG4sZSx0LHMpLFo9KHtwcmVmaXg6bixuYW1lOmUsYWxwaGFiZXQ6dH0pPT57bGV0e2VuY29kZTpzLGRlY29kZTppfT1Ecyh0LGUpO3JldHVybiByZSh7cHJlZml4Om4sbmFtZTplLGVuY29kZTpzLGRlY29kZTpyPT5NdChpKHIpKX0pfSxVcz0obixlLHQscyk9PntsZXQgaT17fTtmb3IobGV0IHA9MDtwPGUubGVuZ3RoOysrcClpW2VbcF1dPXA7bGV0IHI9bi5sZW5ndGg7Zm9yKDtuW3ItMV09PT0iPSI7KS0tcjtsZXQgYT1uZXcgVWludDhBcnJheShyKnQvOHwwKSxvPTAsYz0wLGg9MDtmb3IobGV0IHA9MDtwPHI7KytwKXtsZXQgZz1pW25bcF1dO2lmKGc9PT12b2lkIDApdGhyb3cgbmV3IFN5bnRheEVycm9yKGBOb24tJHtzfSBjaGFyYWN0ZXJgKTtjPWM8PHR8ZyxvKz10LG8+PTgmJihvLT04LGFbaCsrXT0yNTUmYz4+byl9aWYobz49dHx8MjU1JmM8PDgtbyl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlVuZXhwZWN0ZWQgZW5kIG9mIGRhdGEiKTtyZXR1cm4gYX0sa3M9KG4sZSx0KT0+e2xldCBzPWVbZS5sZW5ndGgtMV09PT0iPSIsaT0oMTw8dCktMSxyPSIiLGE9MCxvPTA7Zm9yKGxldCBjPTA7YzxuLmxlbmd0aDsrK2MpZm9yKG89bzw8OHxuW2NdLGErPTg7YT50OylhLT10LHIrPWVbaSZvPj5hXTtpZihhJiYocis9ZVtpJm88PHQtYV0pLHMpZm9yKDtyLmxlbmd0aCp0Jjc7KXIrPSI9IjtyZXR1cm4gcn0sZj0oe25hbWU6bixwcmVmaXg6ZSxiaXRzUGVyQ2hhcjp0LGFscGhhYmV0OnN9KT0+cmUoe3ByZWZpeDplLG5hbWU6bixlbmNvZGUoaSl7cmV0dXJuIGtzKGkscyx0KX0sZGVjb2RlKGkpe3JldHVybiBVcyhpLHMsdCxuKX19KSxLcz1yZSh7cHJlZml4OiJcMCIsbmFtZToiaWRlbnRpdHkiLGVuY29kZTpuPT5McyhuKSxkZWNvZGU6bj0+enMobil9KSxNcz1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxpZGVudGl0eTpLc30pLCRzPWYoe3ByZWZpeDoiMCIsbmFtZToiYmFzZTIiLGFscGhhYmV0OiIwMSIsYml0c1BlckNoYXI6MX0pLEJzPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGJhc2UyOiRzfSksVnM9Zih7cHJlZml4OiI3IixuYW1lOiJiYXNlOCIsYWxwaGFiZXQ6IjAxMjM0NTY3IixiaXRzUGVyQ2hhcjozfSksanM9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsYmFzZTg6VnN9KSxxcz1aKHtwcmVmaXg6IjkiLG5hbWU6ImJhc2UxMCIsYWxwaGFiZXQ6IjAxMjM0NTY3ODkifSksR3M9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsYmFzZTEwOnFzfSksSHM9Zih7cHJlZml4OiJmIixuYW1lOiJiYXNlMTYiLGFscGhhYmV0OiIwMTIzNDU2Nzg5YWJjZGVmIixiaXRzUGVyQ2hhcjo0fSksWXM9Zih7cHJlZml4OiJGIixuYW1lOiJiYXNlMTZ1cHBlciIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlBQkNERUYiLGJpdHNQZXJDaGFyOjR9KSxKcz1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxiYXNlMTY6SHMsYmFzZTE2dXBwZXI6WXN9KSxYcz1mKHtwcmVmaXg6ImIiLG5hbWU6ImJhc2UzMiIsYWxwaGFiZXQ6ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3IixiaXRzUGVyQ2hhcjo1fSksV3M9Zih7cHJlZml4OiJCIixuYW1lOiJiYXNlMzJ1cHBlciIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3IixiaXRzUGVyQ2hhcjo1fSksWnM9Zih7cHJlZml4OiJjIixuYW1lOiJiYXNlMzJwYWQiLGFscGhhYmV0OiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2Nz0iLGJpdHNQZXJDaGFyOjV9KSxRcz1mKHtwcmVmaXg6IkMiLG5hbWU6ImJhc2UzMnBhZHVwcGVyIixhbHBoYWJldDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1Njc9IixiaXRzUGVyQ2hhcjo1fSksZXI9Zih7cHJlZml4OiJ2IixuYW1lOiJiYXNlMzJoZXgiLGFscGhhYmV0OiIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1diIsYml0c1BlckNoYXI6NX0pLHRyPWYoe3ByZWZpeDoiViIsbmFtZToiYmFzZTMyaGV4dXBwZXIiLGFscGhhYmV0OiIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVViIsYml0c1BlckNoYXI6NX0pLGlyPWYoe3ByZWZpeDoidCIsbmFtZToiYmFzZTMyaGV4cGFkIixhbHBoYWJldDoiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXY9IixiaXRzUGVyQ2hhcjo1fSksc3I9Zih7cHJlZml4OiJUIixuYW1lOiJiYXNlMzJoZXhwYWR1cHBlciIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWPSIsYml0c1BlckNoYXI6NX0pLHJyPWYoe3ByZWZpeDoiaCIsbmFtZToiYmFzZTMyeiIsYWxwaGFiZXQ6InlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5IixiaXRzUGVyQ2hhcjo1fSksYXI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsYmFzZTMyOlhzLGJhc2UzMnVwcGVyOldzLGJhc2UzMnBhZDpacyxiYXNlMzJwYWR1cHBlcjpRcyxiYXNlMzJoZXg6ZXIsYmFzZTMyaGV4dXBwZXI6dHIsYmFzZTMyaGV4cGFkOmlyLGJhc2UzMmhleHBhZHVwcGVyOnNyLGJhc2UzMno6cnJ9KSxucj1aKHtwcmVmaXg6ImsiLG5hbWU6ImJhc2UzNiIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiJ9KSxvcj1aKHtwcmVmaXg6IksiLG5hbWU6ImJhc2UzNnVwcGVyIixhbHBoYWJldDoiMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIn0pLGNyPU9iamVjdC5mcmVlemUoe19fcHJvdG9fXzpudWxsLGJhc2UzNjpucixiYXNlMzZ1cHBlcjpvcn0pLGhyPVooe25hbWU6ImJhc2U1OGJ0YyIscHJlZml4OiJ6IixhbHBoYWJldDoiMTIzNDU2Nzg5QUJDREVGR0hKS0xNTlBRUlNUVVZXWFlaYWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5eiJ9KSxscj1aKHtuYW1lOiJiYXNlNThmbGlja3IiLHByZWZpeDoiWiIsYWxwaGFiZXQ6IjEyMzQ1Njc4OWFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXpBQkNERUZHSEpLTE1OUFFSU1RVVldYWVoifSkscHI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsYmFzZTU4YnRjOmhyLGJhc2U1OGZsaWNrcjpscn0pLGdyPWYoe3ByZWZpeDoibSIsbmFtZToiYmFzZTY0IixhbHBoYWJldDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYml0c1BlckNoYXI6Nn0pLGRyPWYoe3ByZWZpeDoiTSIsbmFtZToiYmFzZTY0cGFkIixhbHBoYWJldDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLGJpdHNQZXJDaGFyOjZ9KSx1cj1mKHtwcmVmaXg6InUiLG5hbWU6ImJhc2U2NHVybCIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLGJpdHNQZXJDaGFyOjZ9KSx5cj1mKHtwcmVmaXg6IlUiLG5hbWU6ImJhc2U2NHVybHBhZCIsYWxwaGFiZXQ6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV89IixiaXRzUGVyQ2hhcjo2fSksbXI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsYmFzZTY0OmdyLGJhc2U2NHBhZDpkcixiYXNlNjR1cmw6dXIsYmFzZTY0dXJscGFkOnlyfSksQnQ9QXJyYXkuZnJvbSgiXHV7MUY2ODB9XHV7MUZBOTB9XHUyNjA0XHV7MUY2RjB9XHV7MUYzMEN9XHV7MUYzMTF9XHV7MUYzMTJ9XHV7MUYzMTN9XHV7MUYzMTR9XHV7MUYzMTV9XHV7MUYzMTZ9XHV7MUYzMTd9XHV7MUYzMTh9XHV7MUYzMER9XHV7MUYzMEZ9XHV7MUYzMEV9XHV7MUY0MDl9XHUyNjAwXHV7MUY0QkJ9XHV7MUY1QTV9XHV7MUY0QkV9XHV7MUY0QkZ9XHV7MUY2MDJ9XHUyNzY0XHV7MUY2MER9XHV7MUY5MjN9XHV7MUY2MEF9XHV7MUY2NEZ9XHV7MUY0OTV9XHV7MUY2MkR9XHV7MUY2MTh9XHV7MUY0NER9XHV7MUY2MDV9XHV7MUY0NEZ9XHV7MUY2MDF9XHV7MUY1MjV9XHV7MUY5NzB9XHV7MUY0OTR9XHV7MUY0OTZ9XHV7MUY0OTl9XHV7MUY2MjJ9XHV7MUY5MTR9XHV7MUY2MDZ9XHV7MUY2NDR9XHV7MUY0QUF9XHV7MUY2MDl9XHUyNjNBXHV7MUY0NEN9XHV7MUY5MTd9XHV7MUY0OUN9XHV7MUY2MTR9XHV7MUY2MEV9XHV7MUY2MDd9XHV7MUYzMzl9XHV7MUY5MjZ9XHV7MUYzODl9XHV7MUY0OUV9XHUyNzBDXHUyNzI4XHV7MUY5Mzd9XHV7MUY2MzF9XHV7MUY2MEN9XHV7MUYzMzh9XHV7MUY2NEN9XHV7MUY2MEJ9XHV7MUY0OTd9XHV7MUY0OUF9XHV7MUY2MEZ9XHV7MUY0OUJ9XHV7MUY2NDJ9XHV7MUY0OTN9XHV7MUY5Mjl9XHV7MUY2MDR9XHV7MUY2MDB9XHV7MUY1QTR9XHV7MUY2MDN9XHV7MUY0QUZ9XHV7MUY2NDh9XHV7MUY0NDd9XHV7MUYzQjZ9XHV7MUY2MTJ9XHV7MUY5MkR9XHUyNzYzXHV7MUY2MUN9XHV7MUY0OEJ9XHV7MUY0NDB9XHV7MUY2MkF9XHV7MUY2MTF9XHV7MUY0QTV9XHV7MUY2NEJ9XHV7MUY2MUV9XHV7MUY2Mjl9XHV7MUY2MjF9XHV7MUY5MkF9XHV7MUY0NEF9XHV7MUY5NzN9XHV7MUY2MjV9XHV7MUY5MjR9XHV7MUY0NDl9XHV7MUY0ODN9XHV7MUY2MzN9XHUyNzBCXHV7MUY2MUF9XHV7MUY2MUR9XHV7MUY2MzR9XHV7MUYzMUZ9XHV7MUY2MkN9XHV7MUY2NDN9XHV7MUYzNDB9XHV7MUYzMzd9XHV7MUY2M0J9XHV7MUY2MTN9XHUyQjUwXHUyNzA1XHV7MUY5N0F9XHV7MUYzMDh9XHV7MUY2MDh9XHV7MUY5MTh9XHV7MUY0QTZ9XHUyNzE0XHV7MUY2MjN9XHV7MUYzQzN9XHV7MUY0OTB9XHUyNjM5XHV7MUYzOEF9XHV7MUY0OTh9XHV7MUY2MjB9XHUyNjFEXHV7MUY2MTV9XHV7MUYzM0F9XHV7MUYzODJ9XHV7MUYzM0J9XHV7MUY2MTB9XHV7MUY1OTV9XHV7MUY0OUR9XHV7MUY2NEF9XHV7MUY2Mzl9XHV7MUY1RTN9XHV7MUY0QUJ9XHV7MUY0ODB9XHV7MUY0NTF9XHV7MUYzQjV9XHV7MUY5MUV9XHV7MUY2MUJ9XHV7MUY1MzR9XHV7MUY2MjR9XHV7MUYzM0N9XHV7MUY2MkJ9XHUyNkJEXHV7MUY5MTl9XHUyNjE1XHV7MUYzQzZ9XHV7MUY5MkJ9XHV7MUY0NDh9XHV7MUY2MkV9XHV7MUY2NDZ9XHV7MUYzN0J9XHV7MUYzNDN9XHV7MUY0MzZ9XHV7MUY0ODF9XHV7MUY2MzJ9XHV7MUYzM0Z9XHV7MUY5RTF9XHV7MUYzODF9XHUyNkExXHV7MUYzMUV9XHV7MUYzODh9XHUyNzRDXHUyNzBBXHV7MUY0NEJ9XHV7MUY2MzB9XHV7MUY5Mjh9XHV7MUY2MzZ9XHV7MUY5MUR9XHV7MUY2QjZ9XHV7MUY0QjB9XHV7MUYzNTN9XHV7MUY0QTJ9XHV7MUY5MUZ9XHV7MUY2NDF9XHV7MUY2QTh9XHV7MUY0QTh9XHV7MUY5MkN9XHUyNzA4XHV7MUYzODB9XHV7MUYzN0F9XHV7MUY5MTN9XHV7MUY2MTl9XHV7MUY0OUZ9XHV7MUYzMzF9XHV7MUY2MTZ9XHV7MUY0NzZ9XHV7MUY5NzR9XHUyNUI2XHUyN0ExXHUyNzUzXHV7MUY0OEV9XHV7MUY0Qjh9XHUyQjA3XHV7MUY2Mjh9XHV7MUYzMUF9XHV7MUY5OEJ9XHV7MUY2Mzd9XHV7MUY1N0F9XHUyNkEwXHV7MUY2NDV9XHV7MUY2MUZ9XHV7MUY2MzV9XHV7MUY0NEV9XHV7MUY5MzJ9XHV7MUY5MjB9XHV7MUY5Mjd9XHV7MUY0Q0N9XHV7MUY1MzV9XHV7MUY0ODV9XHV7MUY5RDB9XHV7MUY0M0V9XHV7MUYzNTJ9XHV7MUY2MTd9XHV7MUY5MTF9XHV7MUYzMEF9XHV7MUY5MkZ9XHV7MUY0Mzd9XHUyNjBFXHV7MUY0QTd9XHV7MUY2MkZ9XHV7MUY0ODZ9XHV7MUY0NDZ9XHV7MUYzQTR9XHV7MUY2NDd9XHV7MUYzNTF9XHUyNzQ0XHV7MUYzMzR9XHV7MUY0QTN9XHV7MUY0Mzh9XHV7MUY0OEN9XHV7MUY0Q0R9XHV7MUY5NDB9XHV7MUY5MjJ9XHV7MUY0NDV9XHV7MUY0QTF9XHV7MUY0QTl9XHV7MUY0NTB9XHV7MUY0Rjh9XHV7MUY0N0J9XHV7MUY5MTB9XHV7MUY5MkV9XHV7MUYzQkN9XHV7MUY5NzV9XHV7MUY2QTl9XHV7MUYzNEV9XHV7MUYzNEF9XHV7MUY0N0N9XHV7MUY0OER9XHV7MUY0RTN9XHV7MUY5NDJ9IiksYnI9QnQucmVkdWNlKChuLGUsdCk9PihuW3RdPWUsbiksW10pLF9yPUJ0LnJlZHVjZSgobixlLHQpPT4obltlLmNvZGVQb2ludEF0KDApXT10LG4pLFtdKTtmdW5jdGlvbiBmcihuKXtyZXR1cm4gbi5yZWR1Y2UoKGUsdCk9PihlKz1iclt0XSxlKSwiIil9ZnVuY3Rpb24gd3Iobil7bGV0IGU9W107Zm9yKGxldCB0IG9mIG4pe2xldCBzPV9yW3QuY29kZVBvaW50QXQoMCldO2lmKHM9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBOb24tYmFzZTI1NmVtb2ppIGNoYXJhY3RlcjogJHt0fWApO2UucHVzaChzKX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSl9dmFyIHZyPXJlKHtwcmVmaXg6Ilx1ezFGNjgwfSIsbmFtZToiYmFzZTI1NmVtb2ppIixlbmNvZGU6ZnIsZGVjb2RlOndyfSksRXI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsYmFzZTI1NmVtb2ppOnZyfSksSXI9VnQsaXQ9MTI4LFRyPTEyNyxQcj1+VHIsRnI9TWF0aC5wb3coMiwzMSk7ZnVuY3Rpb24gVnQobixlLHQpe2U9ZXx8W10sdD10fHwwO2Zvcih2YXIgcz10O24+PUZyOyllW3QrK109biYyNTV8aXQsbi89MTI4O2Zvcig7biZQcjspZVt0KytdPW4mMjU1fGl0LG4+Pj49NztyZXR1cm4gZVt0XT1ufDAsVnQuYnl0ZXM9dC1zKzEsZX12YXIgU3I9ZmUsUnI9MTI4LHN0PTEyNztmdW5jdGlvbiBmZShuLHMpe3ZhciB0PTAscz1zfHwwLGk9MCxyPXMsYSxvPW4ubGVuZ3RoO2Rve2lmKHI+PW8pdGhyb3cgZmUuYnl0ZXM9MCxuZXcgUmFuZ2VFcnJvcigiQ291bGQgbm90IGRlY29kZSB2YXJpbnQiKTthPW5bcisrXSx0Kz1pPDI4PyhhJnN0KTw8aTooYSZzdCkqTWF0aC5wb3coMixpKSxpKz03fXdoaWxlKGE+PVJyKTtyZXR1cm4gZmUuYnl0ZXM9ci1zLHR9dmFyIHhyPU1hdGgucG93KDIsNyksQXI9TWF0aC5wb3coMiwxNCksT3I9TWF0aC5wb3coMiwyMSksQ3I9TWF0aC5wb3coMiwyOCksTnI9TWF0aC5wb3coMiwzNSksRHI9TWF0aC5wb3coMiw0MiksenI9TWF0aC5wb3coMiw0OSksTHI9TWF0aC5wb3coMiw1NiksVXI9TWF0aC5wb3coMiw2Myksa3I9ZnVuY3Rpb24obil7cmV0dXJuIG48eHI/MTpuPEFyPzI6bjxPcj8zOm48Q3I/NDpuPE5yPzU6bjxEcj82Om48enI/NzpuPExyPzg6bjxVcj85OjEwfSxLcj17ZW5jb2RlOklyLGRlY29kZTpTcixlbmNvZGluZ0xlbmd0aDprcn0sanQ9S3IscnQ9KG4sZSx0PTApPT4oanQuZW5jb2RlKG4sZSx0KSxlKSxhdD1uPT5qdC5lbmNvZGluZ0xlbmd0aChuKSx3ZT0obixlKT0+e2xldCB0PWUuYnl0ZUxlbmd0aCxzPWF0KG4pLGk9cythdCh0KSxyPW5ldyBVaW50OEFycmF5KGkrdCk7cmV0dXJuIHJ0KG4sciwwKSxydCh0LHIscyksci5zZXQoZSxpKSxuZXcgdmUobix0LGUscil9LHZlPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxzLGkpe3RoaXMuY29kZT1lLHRoaXMuc2l6ZT10LHRoaXMuZGlnZXN0PXMsdGhpcy5ieXRlcz1pfX0scXQ9KHtuYW1lOm4sY29kZTplLGVuY29kZTp0fSk9Pm5ldyBFZShuLGUsdCksRWU9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LHMpe3RoaXMubmFtZT1lLHRoaXMuY29kZT10LHRoaXMuZW5jb2RlPXN9ZGlnZXN0KGUpe2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgdD10aGlzLmVuY29kZShlKTtyZXR1cm4gdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/d2UodGhpcy5jb2RlLHQpOnQudGhlbihzPT53ZSh0aGlzLmNvZGUscykpfWVsc2UgdGhyb3cgRXJyb3IoIlVua25vd24gdHlwZSwgbXVzdCBiZSBiaW5hcnkgdHlwZSIpfX0sR3Q9bj0+YXN5bmMgZT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgY3J5cHRvLnN1YnRsZS5kaWdlc3QobixlKSksTXI9cXQoe25hbWU6InNoYTItMjU2Iixjb2RlOjE4LGVuY29kZTpHdCgiU0hBLTI1NiIpfSksJHI9cXQoe25hbWU6InNoYTItNTEyIixjb2RlOjE5LGVuY29kZTpHdCgiU0hBLTUxMiIpfSksQnI9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsc2hhMjU2Ok1yLHNoYTUxMjokcn0pLEh0PTAsVnI9ImlkZW50aXR5IixZdD1NdCxqcj1uPT53ZShIdCxZdChuKSkscXI9e2NvZGU6SHQsbmFtZTpWcixlbmNvZGU6WXQsZGlnZXN0OmpyfSxHcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxpZGVudGl0eTpxcn0pO25ldyBUZXh0RW5jb2RlcixuZXcgVGV4dERlY29kZXI7dmFyIG50PXsuLi5NcywuLi5CcywuLi5qcywuLi5HcywuLi5KcywuLi5hciwuLi5jciwuLi5wciwuLi5tciwuLi5Fcn07KHsuLi5CciwuLi5Hcn0pO2Z1bmN0aW9uIEhyKG49MCl7cmV0dXJuIF9fQnVmZmVyJCE9bnVsbCYmX19CdWZmZXIkLmFsbG9jVW5zYWZlIT1udWxsP19fQnVmZmVyJC5hbGxvY1Vuc2FmZShuKTpuZXcgVWludDhBcnJheShuKX1mdW5jdGlvbiBKdChuLGUsdCxzKXtyZXR1cm57bmFtZTpuLHByZWZpeDplLGVuY29kZXI6e25hbWU6bixwcmVmaXg6ZSxlbmNvZGU6dH0sZGVjb2Rlcjp7ZGVjb2RlOnN9fX12YXIgb3Q9SnQoInV0ZjgiLCJ1IixuPT4idSIrbmV3IFRleHREZWNvZGVyKCJ1dGY4IikuZGVjb2RlKG4pLG49Pm5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShuLnN1YnN0cmluZygxKSkpLG9lPUp0KCJhc2NpaSIsImEiLG49PntsZXQgZT0iYSI7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0KyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW3RdKTtyZXR1cm4gZX0sbj0+e249bi5zdWJzdHJpbmcoMSk7bGV0IGU9SHIobi5sZW5ndGgpO2ZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCsrKWVbdF09bi5jaGFyQ29kZUF0KHQpO3JldHVybiBlfSksWXI9e3V0Zjg6b3QsInV0Zi04IjpvdCxoZXg6bnQuYmFzZTE2LGxhdGluMTpvZSxhc2NpaTpvZSxiaW5hcnk6b2UsLi4ubnR9O2Z1bmN0aW9uIEpyKG4sZT0idXRmOCIpe2xldCB0PVlyW2VdO2lmKCF0KXRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZW5jb2RpbmcgIiR7ZX0iYCk7cmV0dXJuKGU9PT0idXRmOCJ8fGU9PT0idXRmLTgiKSYmX19CdWZmZXIkIT1udWxsJiZfX0J1ZmZlciQuZnJvbSE9bnVsbD9fX0J1ZmZlciQuZnJvbShuLCJ1dGY4Iik6dC5kZWNvZGVyLmRlY29kZShgJHt0LnByZWZpeH0ke259YCl9dmFyIEllPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5jb3JlPWUsdGhpcy5sb2dnZXI9dCx0aGlzLmtleWNoYWluPW5ldyBNYXAsdGhpcy5uYW1lPXRzLHRoaXMudmVyc2lvbj1pcyx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RvcmFnZVByZWZpeD1OLHRoaXMuaW5pdD1hc3luYygpPT57aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe2xldCBzPWF3YWl0IHRoaXMuZ2V0S2V5Q2hhaW4oKTt0eXBlb2YgczwidSImJih0aGlzLmtleWNoYWluPXMpLHRoaXMuaW5pdGlhbGl6ZWQ9ITB9fSx0aGlzLmhhcz1zPT4odGhpcy5pc0luaXRpYWxpemVkKCksdGhpcy5rZXljaGFpbi5oYXMocykpLHRoaXMuc2V0PWFzeW5jKHMsaSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLmtleWNoYWluLnNldChzLGkpLGF3YWl0IHRoaXMucGVyc2lzdCgpfSx0aGlzLmdldD1zPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0IGk9dGhpcy5rZXljaGFpbi5nZXQocyk7aWYodHlwZW9mIGk+InUiKXtsZXR7bWVzc2FnZTpyfT1kKCJOT19NQVRDSElOR19LRVkiLGAke3RoaXMubmFtZX06ICR7c31gKTt0aHJvdyBuZXcgRXJyb3Iocil9cmV0dXJuIGl9LHRoaXMuZGVsPWFzeW5jIHM9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLmtleWNoYWluLmRlbGV0ZShzKSxhd2FpdCB0aGlzLnBlcnNpc3QoKX0sdGhpcy5jb3JlPWUsdGhpcy5sb2dnZXI9VCh0LHRoaXMubmFtZSl9Z2V0IGNvbnRleHQoKXtyZXR1cm4gUih0aGlzLmxvZ2dlcil9Z2V0IHN0b3JhZ2VLZXkoKXtyZXR1cm4gdGhpcy5zdG9yYWdlUHJlZml4K3RoaXMudmVyc2lvbit0aGlzLmNvcmUuY3VzdG9tU3RvcmFnZVByZWZpeCsiLy8iK3RoaXMubmFtZX1hc3luYyBzZXRLZXlDaGFpbihlKXthd2FpdCB0aGlzLmNvcmUuc3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSxTdChlKSl9YXN5bmMgZ2V0S2V5Q2hhaW4oKXtsZXQgZT1hd2FpdCB0aGlzLmNvcmUuc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7cmV0dXJuIHR5cGVvZiBlPCJ1Ij9SdChlKTp2b2lkIDB9YXN5bmMgcGVyc2lzdCgpe2F3YWl0IHRoaXMuc2V0S2V5Q2hhaW4odGhpcy5rZXljaGFpbil9aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX19LFRlPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxzKXt0aGlzLmNvcmU9ZSx0aGlzLmxvZ2dlcj10LHRoaXMubmFtZT1RaSx0aGlzLnJhbmRvbVNlc3Npb25JZGVudGlmaWVyPXBlKCksdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLmluaXQ9YXN5bmMoKT0+e3RoaXMuaW5pdGlhbGl6ZWR8fChhd2FpdCB0aGlzLmtleWNoYWluLmluaXQoKSx0aGlzLmluaXRpYWxpemVkPSEwKX0sdGhpcy5oYXNLZXlzPWk9Pih0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLmtleWNoYWluLmhhcyhpKSksdGhpcy5nZXRDbGllbnRJZD1hc3luYygpPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0IGk9YXdhaXQgdGhpcy5nZXRDbGllbnRTZWVkKCkscj1NLmdlbmVyYXRlS2V5UGFpcihpKTtyZXR1cm4gTS5lbmNvZGVJc3Moci5wdWJsaWNLZXkpfSx0aGlzLmdlbmVyYXRlS2V5UGFpcj0oKT0+e3RoaXMuaXNJbml0aWFsaXplZCgpO2xldCBpPXlpKCk7cmV0dXJuIHRoaXMuc2V0UHJpdmF0ZUtleShpLnB1YmxpY0tleSxpLnByaXZhdGVLZXkpfSx0aGlzLnNpZ25KV1Q9YXN5bmMgaT0+e3RoaXMuaXNJbml0aWFsaXplZCgpO2xldCByPWF3YWl0IHRoaXMuZ2V0Q2xpZW50U2VlZCgpLGE9TS5nZW5lcmF0ZUtleVBhaXIociksbz10aGlzLnJhbmRvbVNlc3Npb25JZGVudGlmaWVyO3JldHVybiBhd2FpdCBNLnNpZ25KV1QobyxpLGVzLGEpfSx0aGlzLmdlbmVyYXRlU2hhcmVkS2V5PShpLHIsYSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgbz10aGlzLmdldFByaXZhdGVLZXkoaSksYz1taShvLHIpO3JldHVybiB0aGlzLnNldFN5bUtleShjLGEpfSx0aGlzLnNldFN5bUtleT1hc3luYyhpLHIpPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0IGE9cnx8YmkoaSk7cmV0dXJuIGF3YWl0IHRoaXMua2V5Y2hhaW4uc2V0KGEsaSksYX0sdGhpcy5kZWxldGVLZXlQYWlyPWFzeW5jIGk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSxhd2FpdCB0aGlzLmtleWNoYWluLmRlbChpKX0sdGhpcy5kZWxldGVTeW1LZXk9YXN5bmMgaT0+e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMua2V5Y2hhaW4uZGVsKGkpfSx0aGlzLmVuY29kZT1hc3luYyhpLHIsYSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgbz1faShhKSxjPXVpKHIpO2lmKEJlKG8pKXJldHVybiBmaShjLGE/LmVuY29kaW5nKTtpZihWZShvKSl7bGV0IHk9by5zZW5kZXJQdWJsaWNLZXksYj1vLnJlY2VpdmVyUHVibGljS2V5O2k9YXdhaXQgdGhpcy5nZW5lcmF0ZVNoYXJlZEtleSh5LGIpfWxldCBoPXRoaXMuZ2V0U3ltS2V5KGkpLHt0eXBlOnAsc2VuZGVyUHVibGljS2V5Omd9PW87cmV0dXJuIHdpKHt0eXBlOnAsc3ltS2V5OmgsbWVzc2FnZTpjLHNlbmRlclB1YmxpY0tleTpnLGVuY29kaW5nOmE/LmVuY29kaW5nfSl9LHRoaXMuZGVjb2RlPWFzeW5jKGkscixhKT0+e3RoaXMuaXNJbml0aWFsaXplZCgpO2xldCBvPXZpKHIsYSk7aWYoQmUobykpe2xldCBjPUVpKHIsYT8uZW5jb2RpbmcpO3JldHVybiBNZShjKX1pZihWZShvKSl7bGV0IGM9by5yZWNlaXZlclB1YmxpY0tleSxoPW8uc2VuZGVyUHVibGljS2V5O2k9YXdhaXQgdGhpcy5nZW5lcmF0ZVNoYXJlZEtleShjLGgpfXRyeXtsZXQgYz10aGlzLmdldFN5bUtleShpKSxoPUlpKHtzeW1LZXk6YyxlbmNvZGVkOnIsZW5jb2Rpbmc6YT8uZW5jb2Rpbmd9KTtyZXR1cm4gTWUoaCl9Y2F0Y2goYyl7dGhpcy5sb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBkZWNvZGUgbWVzc2FnZSBmcm9tIHRvcGljOiAnJHtpfScsIGNsaWVudElkOiAnJHthd2FpdCB0aGlzLmdldENsaWVudElkKCl9J2ApLHRoaXMubG9nZ2VyLmVycm9yKGMpfX0sdGhpcy5nZXRQYXlsb2FkVHlwZT0oaSxyPXFlKT0+e2xldCBhPWplKHtlbmNvZGVkOmksZW5jb2Rpbmc6cn0pO3JldHVybiBUaShhLnR5cGUpfSx0aGlzLmdldFBheWxvYWRTZW5kZXJQdWJsaWNLZXk9KGkscj1xZSk9PntsZXQgYT1qZSh7ZW5jb2RlZDppLGVuY29kaW5nOnJ9KTtyZXR1cm4gYS5zZW5kZXJQdWJsaWNLZXk/amkoYS5zZW5kZXJQdWJsaWNLZXksUGkpOnZvaWQgMH0sdGhpcy5jb3JlPWUsdGhpcy5sb2dnZXI9VCh0LHRoaXMubmFtZSksdGhpcy5rZXljaGFpbj1zfHxuZXcgSWUodGhpcy5jb3JlLHRoaXMubG9nZ2VyKX1nZXQgY29udGV4dCgpe3JldHVybiBSKHRoaXMubG9nZ2VyKX1hc3luYyBzZXRQcml2YXRlS2V5KGUsdCl7cmV0dXJuIGF3YWl0IHRoaXMua2V5Y2hhaW4uc2V0KGUsdCksZX1nZXRQcml2YXRlS2V5KGUpe3JldHVybiB0aGlzLmtleWNoYWluLmdldChlKX1hc3luYyBnZXRDbGllbnRTZWVkKCl7bGV0IGU9IiI7dHJ5e2U9dGhpcy5rZXljaGFpbi5nZXQoUWUpfWNhdGNoe2U9cGUoKSxhd2FpdCB0aGlzLmtleWNoYWluLnNldChRZSxlKX1yZXR1cm4gSnIoZSwiYmFzZTE2Iil9Z2V0U3ltS2V5KGUpe3JldHVybiB0aGlzLmtleWNoYWluLmdldChlKX1pc0luaXRpYWxpemVkKCl7aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe2xldHttZXNzYWdlOmV9PWQoIk5PVF9JTklUSUFMSVpFRCIsdGhpcy5uYW1lKTt0aHJvdyBuZXcgRXJyb3IoZSl9fX0sUGU9Y2xhc3MgZXh0ZW5kcyB0aXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5sb2dnZXI9ZSx0aGlzLmNvcmU9dCx0aGlzLm1lc3NhZ2VzPW5ldyBNYXAsdGhpcy5uYW1lPXNzLHRoaXMudmVyc2lvbj1ycyx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RvcmFnZVByZWZpeD1OLHRoaXMuaW5pdD1hc3luYygpPT57aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe3RoaXMubG9nZ2VyLnRyYWNlKCJJbml0aWFsaXplZCIpO3RyeXtsZXQgcz1hd2FpdCB0aGlzLmdldFJlbGF5ZXJNZXNzYWdlcygpO3R5cGVvZiBzPCJ1IiYmKHRoaXMubWVzc2FnZXM9cyksdGhpcy5sb2dnZXIuZGVidWcoYFN1Y2Nlc3NmdWxseSBSZXN0b3JlZCByZWNvcmRzIGZvciAke3RoaXMubmFtZX1gKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6InJlc3RvcmUiLHNpemU6dGhpcy5tZXNzYWdlcy5zaXplfSl9Y2F0Y2gocyl7dGhpcy5sb2dnZXIuZGVidWcoYEZhaWxlZCB0byBSZXN0b3JlIHJlY29yZHMgZm9yICR7dGhpcy5uYW1lfWApLHRoaXMubG9nZ2VyLmVycm9yKHMpfWZpbmFsbHl7dGhpcy5pbml0aWFsaXplZD0hMH19fSx0aGlzLnNldD1hc3luYyhzLGkpPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0IHI9Z2UoaSksYT10aGlzLm1lc3NhZ2VzLmdldChzKTtyZXR1cm4gdHlwZW9mIGE+InUiJiYoYT17fSksdHlwZW9mIGFbcl08InUifHwoYVtyXT1pLHRoaXMubWVzc2FnZXMuc2V0KHMsYSksYXdhaXQgdGhpcy5wZXJzaXN0KCkpLHJ9LHRoaXMuZ2V0PXM9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgaT10aGlzLm1lc3NhZ2VzLmdldChzKTtyZXR1cm4gdHlwZW9mIGk+InUiJiYoaT17fSksaX0sdGhpcy5oYXM9KHMsaSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgcj10aGlzLmdldChzKSxhPWdlKGkpO3JldHVybiB0eXBlb2YgclthXTwidSJ9LHRoaXMuZGVsPWFzeW5jIHM9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLm1lc3NhZ2VzLmRlbGV0ZShzKSxhd2FpdCB0aGlzLnBlcnNpc3QoKX0sdGhpcy5sb2dnZXI9VChlLHRoaXMubmFtZSksdGhpcy5jb3JlPXR9Z2V0IGNvbnRleHQoKXtyZXR1cm4gUih0aGlzLmxvZ2dlcil9Z2V0IHN0b3JhZ2VLZXkoKXtyZXR1cm4gdGhpcy5zdG9yYWdlUHJlZml4K3RoaXMudmVyc2lvbit0aGlzLmNvcmUuY3VzdG9tU3RvcmFnZVByZWZpeCsiLy8iK3RoaXMubmFtZX1hc3luYyBzZXRSZWxheWVyTWVzc2FnZXMoZSl7YXdhaXQgdGhpcy5jb3JlLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksU3QoZSkpfWFzeW5jIGdldFJlbGF5ZXJNZXNzYWdlcygpe2xldCBlPWF3YWl0IHRoaXMuY29yZS5zdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtyZXR1cm4gdHlwZW9mIGU8InUiP1J0KGUpOnZvaWQgMH1hc3luYyBwZXJzaXN0KCl7YXdhaXQgdGhpcy5zZXRSZWxheWVyTWVzc2FnZXModGhpcy5tZXNzYWdlcyl9aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX19LFhyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxXcj1PYmplY3QuZGVmaW5lUHJvcGVydGllcyxacj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxjdD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLFFyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksZWE9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxodD0obixlLHQpPT5lIGluIG4/WHIobixlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6bltlXT10LGx0PShuLGUpPT57Zm9yKHZhciB0IGluIGV8fChlPXt9KSlRci5jYWxsKGUsdCkmJmh0KG4sdCxlW3RdKTtpZihjdClmb3IodmFyIHQgb2YgY3QoZSkpZWEuY2FsbChlLHQpJiZodChuLHQsZVt0XSk7cmV0dXJuIG59LHB0PShuLGUpPT5XcihuLFpyKGUpKSxGZT1jbGFzcyBleHRlbmRzIGlpe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnJlbGF5ZXI9ZSx0aGlzLmxvZ2dlcj10LHRoaXMuZXZlbnRzPW5ldyBWLHRoaXMubmFtZT1hcyx0aGlzLnF1ZXVlPW5ldyBNYXAsdGhpcy5wdWJsaXNoVGltZW91dD1FKEZ0KSx0aGlzLmluaXRpYWxQdWJsaXNoVGltZW91dD1FKEsqMTUpLHRoaXMubmVlZHNUcmFuc3BvcnRSZXN0YXJ0PSExLHRoaXMucHVibGlzaD1hc3luYyhzLGkscik9Pnt2YXIgYTt0aGlzLmxvZ2dlci5kZWJ1ZygiUHVibGlzaGluZyBQYXlsb2FkIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJwdWJsaXNoIixwYXJhbXM6e3RvcGljOnMsbWVzc2FnZTppLG9wdHM6cn19KTtsZXQgbz1yPy50dGx8fGV0LGM9dGUociksaD1yPy5wcm9tcHR8fCExLHA9cj8udGFnfHwwLGc9cj8uaWR8fEF0KCkudG9TdHJpbmcoKSx5PXt0b3BpYzpzLG1lc3NhZ2U6aSxvcHRzOnt0dGw6byxyZWxheTpjLHByb21wdDpoLHRhZzpwLGlkOmcsYXR0ZXN0YXRpb246cj8uYXR0ZXN0YXRpb259fSxiPWBGYWlsZWQgdG8gcHVibGlzaCBwYXlsb2FkLCBwbGVhc2UgdHJ5IGFnYWluLiBpZDoke2d9IHRhZzoke3B9YDt0cnl7bGV0IGw9bmV3IFByb21pc2UoYXN5bmMgdT0+e2xldCBJPSh7aWQ6bX0pPT57eS5vcHRzLmlkPT09bSYmKHRoaXMucmVtb3ZlUmVxdWVzdEZyb21RdWV1ZShtKSx0aGlzLnJlbGF5ZXIuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKHYucHVibGlzaCxJKSx1KHkpKX07dGhpcy5yZWxheWVyLmV2ZW50cy5vbih2LnB1Ymxpc2gsSSk7bGV0IF89ayhuZXcgUHJvbWlzZSgobSxGKT0+e3RoaXMucnBjUHVibGlzaCh7dG9waWM6cyxtZXNzYWdlOmksdHRsOm8scHJvbXB0OmgsdGFnOnAsaWQ6ZyxhdHRlc3RhdGlvbjpyPy5hdHRlc3RhdGlvbn0pLnRoZW4obSkuY2F0Y2godz0+e3RoaXMubG9nZ2VyLndhcm4odyx3Py5tZXNzYWdlKSxGKHcpfSl9KSx0aGlzLmluaXRpYWxQdWJsaXNoVGltZW91dCxgRmFpbGVkIGluaXRpYWwgcHVibGlzaCwgcmV0cnlpbmcuLi4uIGlkOiR7Z30gdGFnOiR7cH1gKTt0cnl7YXdhaXQgXyx0aGlzLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcih2LnB1Ymxpc2gsSSl9Y2F0Y2gobSl7dGhpcy5xdWV1ZS5zZXQoZyxwdChsdCh7fSx5KSx7YXR0ZW1wdDoxfSkpLHRoaXMubG9nZ2VyLndhcm4obSxtPy5tZXNzYWdlKX19KTt0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6InB1Ymxpc2giLHBhcmFtczp7aWQ6Zyx0b3BpYzpzLG1lc3NhZ2U6aSxvcHRzOnJ9fSksYXdhaXQgayhsLHRoaXMucHVibGlzaFRpbWVvdXQsYil9Y2F0Y2gobCl7aWYodGhpcy5sb2dnZXIuZGVidWcoIkZhaWxlZCB0byBQdWJsaXNoIFBheWxvYWQiKSx0aGlzLmxvZ2dlci5lcnJvcihsKSwoYT1yPy5pbnRlcm5hbCkhPW51bGwmJmEudGhyb3dPbkZhaWxlZFB1Ymxpc2gpdGhyb3cgbH1maW5hbGx5e3RoaXMucXVldWUuZGVsZXRlKGcpfX0sdGhpcy5vbj0ocyxpKT0+e3RoaXMuZXZlbnRzLm9uKHMsaSl9LHRoaXMub25jZT0ocyxpKT0+e3RoaXMuZXZlbnRzLm9uY2UocyxpKX0sdGhpcy5vZmY9KHMsaSk9Pnt0aGlzLmV2ZW50cy5vZmYocyxpKX0sdGhpcy5yZW1vdmVMaXN0ZW5lcj0ocyxpKT0+e3RoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKHMsaSl9LHRoaXMucmVsYXllcj1lLHRoaXMubG9nZ2VyPVQodCx0aGlzLm5hbWUpLHRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVycygpfWdldCBjb250ZXh0KCl7cmV0dXJuIFIodGhpcy5sb2dnZXIpfWFzeW5jIHJwY1B1Ymxpc2goZSl7dmFyIHQscyxpLHI7bGV0e3RvcGljOmEsbWVzc2FnZTpvLHR0bDpjPWV0LHByb21wdDpoLHRhZzpwLGlkOmcsYXR0ZXN0YXRpb246eX09ZSxiPXttZXRob2Q6WSh0ZSgpLnByb3RvY29sKS5wdWJsaXNoLHBhcmFtczp7dG9waWM6YSxtZXNzYWdlOm8sdHRsOmMscHJvbXB0OmgsdGFnOnAsYXR0ZXN0YXRpb246eX0saWQ6Z307ZGUoKHQ9Yi5wYXJhbXMpPT1udWxsP3ZvaWQgMDp0LnByb21wdCkmJigocz1iLnBhcmFtcyk9PW51bGx8fGRlbGV0ZSBzLnByb21wdCksZGUoKGk9Yi5wYXJhbXMpPT1udWxsP3ZvaWQgMDppLnRhZykmJigocj1iLnBhcmFtcyk9PW51bGx8fGRlbGV0ZSByLnRhZyksdGhpcy5sb2dnZXIuZGVidWcoIk91dGdvaW5nIFJlbGF5IFBheWxvYWQiKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWVzc2FnZSIsZGlyZWN0aW9uOiJvdXRnb2luZyIscmVxdWVzdDpifSk7bGV0IGw9YXdhaXQgdGhpcy5yZWxheWVyLnJlcXVlc3QoYik7cmV0dXJuIHRoaXMucmVsYXllci5ldmVudHMuZW1pdCh2LnB1Ymxpc2gsZSksdGhpcy5sb2dnZXIuZGVidWcoIlN1Y2Nlc3NmdWxseSBQdWJsaXNoZWQgUGF5bG9hZCIpLGx9cmVtb3ZlUmVxdWVzdEZyb21RdWV1ZShlKXt0aGlzLnF1ZXVlLmRlbGV0ZShlKX1jaGVja1F1ZXVlKCl7dGhpcy5xdWV1ZS5mb3JFYWNoKGFzeW5jKGUsdCk9PntsZXQgcz1lLmF0dGVtcHQrMTt0aGlzLnF1ZXVlLnNldCh0LHB0KGx0KHt9LGUpLHthdHRlbXB0OnN9KSk7bGV0e3RvcGljOmksbWVzc2FnZTpyLG9wdHM6YSxhdHRlc3RhdGlvbjpvfT1lO3RoaXMubG9nZ2VyLndhcm4oe30sYFB1Ymxpc2hlcjogcXVldWUtPnB1Ymxpc2hpbmc6ICR7ZS5vcHRzLmlkfSwgdGFnOiAke2Uub3B0cy50YWd9LCBhdHRlbXB0OiAke3N9YCksYXdhaXQgdGhpcy5ycGNQdWJsaXNoKHt0b3BpYzppLG1lc3NhZ2U6cix0dGw6YS50dGwscHJvbXB0OmEucHJvbXB0LHRhZzphLnRhZyxpZDphLmlkLGF0dGVzdGF0aW9uOm99KSx0aGlzLmxvZ2dlci53YXJuKHt9LGBQdWJsaXNoZXI6IHF1ZXVlLT5wdWJsaXNoZWQ6ICR7ZS5vcHRzLmlkfWApfSl9cmVnaXN0ZXJFdmVudExpc3RlbmVycygpe3RoaXMucmVsYXllci5jb3JlLmhlYXJ0YmVhdC5vbihXLnB1bHNlLCgpPT57aWYodGhpcy5uZWVkc1RyYW5zcG9ydFJlc3RhcnQpe3RoaXMubmVlZHNUcmFuc3BvcnRSZXN0YXJ0PSExLHRoaXMucmVsYXllci5ldmVudHMuZW1pdCh2LmNvbm5lY3Rpb25fc3RhbGxlZCk7cmV0dXJufXRoaXMuY2hlY2tRdWV1ZSgpfSksdGhpcy5yZWxheWVyLm9uKHYubWVzc2FnZV9hY2ssZT0+e3RoaXMucmVtb3ZlUmVxdWVzdEZyb21RdWV1ZShlLmlkLnRvU3RyaW5nKCkpfSl9fSxTZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXAsdGhpcy5zZXQ9KGUsdCk9PntsZXQgcz10aGlzLmdldChlKTt0aGlzLmV4aXN0cyhlLHQpfHx0aGlzLm1hcC5zZXQoZSxbLi4ucyx0XSl9LHRoaXMuZ2V0PWU9PnRoaXMubWFwLmdldChlKXx8W10sdGhpcy5leGlzdHM9KGUsdCk9PnRoaXMuZ2V0KGUpLmluY2x1ZGVzKHQpLHRoaXMuZGVsZXRlPShlLHQpPT57aWYodHlwZW9mIHQ+InUiKXt0aGlzLm1hcC5kZWxldGUoZSk7cmV0dXJufWlmKCF0aGlzLm1hcC5oYXMoZSkpcmV0dXJuO2xldCBzPXRoaXMuZ2V0KGUpO2lmKCF0aGlzLmV4aXN0cyhlLHQpKXJldHVybjtsZXQgaT1zLmZpbHRlcihyPT5yIT09dCk7aWYoIWkubGVuZ3RoKXt0aGlzLm1hcC5kZWxldGUoZSk7cmV0dXJufXRoaXMubWFwLnNldChlLGkpfSx0aGlzLmNsZWFyPSgpPT57dGhpcy5tYXAuY2xlYXIoKX19Z2V0IHRvcGljcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwLmtleXMoKSl9fSx0YT1PYmplY3QuZGVmaW5lUHJvcGVydHksaWE9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsc2E9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsZ3Q9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxyYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGFhPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsZHQ9KG4sZSx0KT0+ZSBpbiBuP3RhKG4sZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dH0pOm5bZV09dCxHPShuLGUpPT57Zm9yKHZhciB0IGluIGV8fChlPXt9KSlyYS5jYWxsKGUsdCkmJmR0KG4sdCxlW3RdKTtpZihndClmb3IodmFyIHQgb2YgZ3QoZSkpYWEuY2FsbChlLHQpJiZkdChuLHQsZVt0XSk7cmV0dXJuIG59LGNlPShuLGUpPT5pYShuLHNhKGUpKSxSZT1jbGFzcyBleHRlbmRzIHNpe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KSx0aGlzLnJlbGF5ZXI9ZSx0aGlzLmxvZ2dlcj10LHRoaXMuc3Vic2NyaXB0aW9ucz1uZXcgTWFwLHRoaXMudG9waWNNYXA9bmV3IFNlLHRoaXMuZXZlbnRzPW5ldyBWLHRoaXMubmFtZT1kcyx0aGlzLnZlcnNpb249dXMsdGhpcy5wZW5kaW5nPW5ldyBNYXAsdGhpcy5jYWNoZWQ9W10sdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLnBlbmRpbmdTdWJzY3JpcHRpb25XYXRjaExhYmVsPSJwZW5kaW5nX3N1Yl93YXRjaF9sYWJlbCIsdGhpcy5wb2xsaW5nSW50ZXJ2YWw9MjAsdGhpcy5zdG9yYWdlUHJlZml4PU4sdGhpcy5zdWJzY3JpYmVUaW1lb3V0PUUoRnQpLHRoaXMuaW5pdGlhbFN1YnNjcmliZVRpbWVvdXQ9RShLKjE1KSx0aGlzLmJhdGNoU3Vic2NyaWJlVG9waWNzTGltaXQ9NTAwLHRoaXMuaW5pdD1hc3luYygpPT57dGhpcy5pbml0aWFsaXplZHx8KHRoaXMubG9nZ2VyLnRyYWNlKCJJbml0aWFsaXplZCIpLHRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVycygpLHRoaXMuY2xpZW50SWQ9YXdhaXQgdGhpcy5yZWxheWVyLmNvcmUuY3J5cHRvLmdldENsaWVudElkKCksYXdhaXQgdGhpcy5yZXN0b3JlKCkpLHRoaXMuaW5pdGlhbGl6ZWQ9ITB9LHRoaXMuc3Vic2NyaWJlPWFzeW5jKHMsaSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLmxvZ2dlci5kZWJ1ZygiU3Vic2NyaWJpbmcgVG9waWMiKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6InN1YnNjcmliZSIscGFyYW1zOnt0b3BpYzpzLG9wdHM6aX19KTt0cnl7bGV0IHI9dGUoaSksYT17dG9waWM6cyxyZWxheTpyLHRyYW5zcG9ydFR5cGU6aT8udHJhbnNwb3J0VHlwZX07dGhpcy5wZW5kaW5nLnNldChzLGEpO2xldCBvPWF3YWl0IHRoaXMucnBjU3Vic2NyaWJlKHMscixpKTtyZXR1cm4gdHlwZW9mIG89PSJzdHJpbmciJiYodGhpcy5vblN1YnNjcmliZShvLGEpLHRoaXMubG9nZ2VyLmRlYnVnKCJTdWNjZXNzZnVsbHkgU3Vic2NyaWJlZCBUb3BpYyIpLHRoaXMubG9nZ2VyLnRyYWNlKHt0eXBlOiJtZXRob2QiLG1ldGhvZDoic3Vic2NyaWJlIixwYXJhbXM6e3RvcGljOnMsb3B0czppfX0pKSxvfWNhdGNoKHIpe3Rocm93IHRoaXMubG9nZ2VyLmRlYnVnKCJGYWlsZWQgdG8gU3Vic2NyaWJlIFRvcGljIiksdGhpcy5sb2dnZXIuZXJyb3Iocikscn19LHRoaXMudW5zdWJzY3JpYmU9YXN5bmMocyxpKT0+e2F3YWl0IHRoaXMucmVzdGFydFRvQ29tcGxldGUoKSx0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0eXBlb2YgaT8uaWQ8InUiP2F3YWl0IHRoaXMudW5zdWJzY3JpYmVCeUlkKHMsaS5pZCxpKTphd2FpdCB0aGlzLnVuc3Vic2NyaWJlQnlUb3BpYyhzLGkpfSx0aGlzLmlzU3Vic2NyaWJlZD1hc3luYyBzPT57aWYodGhpcy50b3BpY3MuaW5jbHVkZXMocykpcmV0dXJuITA7bGV0IGk9YCR7dGhpcy5wZW5kaW5nU3Vic2NyaXB0aW9uV2F0Y2hMYWJlbH1fJHtzfWA7cmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyLGEpPT57bGV0IG89bmV3IGRpO28uc3RhcnQoaSk7bGV0IGM9c2V0SW50ZXJ2YWwoKCk9PnsoIXRoaXMucGVuZGluZy5oYXMocykmJnRoaXMudG9waWNzLmluY2x1ZGVzKHMpfHx0aGlzLmNhY2hlZC5zb21lKGg9PmgudG9waWM9PT1zKSkmJihjbGVhckludGVydmFsKGMpLG8uc3RvcChpKSxyKCEwKSksby5lbGFwc2VkKGkpPj15cyYmKGNsZWFySW50ZXJ2YWwoYyksby5zdG9wKGkpLGEobmV3IEVycm9yKCJTdWJzY3JpcHRpb24gcmVzb2x1dGlvbiB0aW1lb3V0IikpKX0sdGhpcy5wb2xsaW5nSW50ZXJ2YWwpfSkuY2F0Y2goKCk9PiExKX0sdGhpcy5vbj0ocyxpKT0+e3RoaXMuZXZlbnRzLm9uKHMsaSl9LHRoaXMub25jZT0ocyxpKT0+e3RoaXMuZXZlbnRzLm9uY2UocyxpKX0sdGhpcy5vZmY9KHMsaSk9Pnt0aGlzLmV2ZW50cy5vZmYocyxpKX0sdGhpcy5yZW1vdmVMaXN0ZW5lcj0ocyxpKT0+e3RoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKHMsaSl9LHRoaXMuc3RhcnQ9YXN5bmMoKT0+e2F3YWl0IHRoaXMub25Db25uZWN0KCl9LHRoaXMuc3RvcD1hc3luYygpPT57YXdhaXQgdGhpcy5vbkRpc2Nvbm5lY3QoKX0sdGhpcy5yZXN0YXJ0PWFzeW5jKCk9Pnthd2FpdCB0aGlzLnJlc3RvcmUoKSxhd2FpdCB0aGlzLm9uUmVzdGFydCgpfSx0aGlzLmNoZWNrUGVuZGluZz1hc3luYygpPT57aWYodGhpcy5wZW5kaW5nLnNpemU9PT0wJiYoIXRoaXMuaW5pdGlhbGl6ZWR8fCF0aGlzLnJlbGF5ZXIuY29ubmVjdGVkKSlyZXR1cm47bGV0IHM9W107dGhpcy5wZW5kaW5nLmZvckVhY2goaT0+e3MucHVzaChpKX0pLGF3YWl0IHRoaXMuYmF0Y2hTdWJzY3JpYmUocyl9LHRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVycz0oKT0+e3RoaXMucmVsYXllci5jb3JlLmhlYXJ0YmVhdC5vbihXLnB1bHNlLGFzeW5jKCk9Pnthd2FpdCB0aGlzLmNoZWNrUGVuZGluZygpfSksdGhpcy5ldmVudHMub24oUC5jcmVhdGVkLGFzeW5jIHM9PntsZXQgaT1QLmNyZWF0ZWQ7dGhpcy5sb2dnZXIuaW5mbyhgRW1pdHRpbmcgJHtpfWApLHRoaXMubG9nZ2VyLmRlYnVnKHt0eXBlOiJldmVudCIsZXZlbnQ6aSxkYXRhOnN9KSxhd2FpdCB0aGlzLnBlcnNpc3QoKX0pLHRoaXMuZXZlbnRzLm9uKFAuZGVsZXRlZCxhc3luYyBzPT57bGV0IGk9UC5kZWxldGVkO3RoaXMubG9nZ2VyLmluZm8oYEVtaXR0aW5nICR7aX1gKSx0aGlzLmxvZ2dlci5kZWJ1Zyh7dHlwZToiZXZlbnQiLGV2ZW50OmksZGF0YTpzfSksYXdhaXQgdGhpcy5wZXJzaXN0KCl9KX0sdGhpcy5yZWxheWVyPWUsdGhpcy5sb2dnZXI9VCh0LHRoaXMubmFtZSksdGhpcy5jbGllbnRJZD0iIn1nZXQgY29udGV4dCgpe3JldHVybiBSKHRoaXMubG9nZ2VyKX1nZXQgc3RvcmFnZUtleSgpe3JldHVybiB0aGlzLnN0b3JhZ2VQcmVmaXgrdGhpcy52ZXJzaW9uK3RoaXMucmVsYXllci5jb3JlLmN1c3RvbVN0b3JhZ2VQcmVmaXgrIi8vIit0aGlzLm5hbWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnN1YnNjcmlwdGlvbnMuc2l6ZX1nZXQgaWRzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5zdWJzY3JpcHRpb25zLmtleXMoKSl9Z2V0IHZhbHVlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuc3Vic2NyaXB0aW9ucy52YWx1ZXMoKSl9Z2V0IHRvcGljcygpe3JldHVybiB0aGlzLnRvcGljTWFwLnRvcGljc31oYXNTdWJzY3JpcHRpb24oZSx0KXtsZXQgcz0hMTt0cnl7cz10aGlzLmdldFN1YnNjcmlwdGlvbihlKS50b3BpYz09PXR9Y2F0Y2h7fXJldHVybiBzfXJlc2V0KCl7dGhpcy5jYWNoZWQ9W10sdGhpcy5pbml0aWFsaXplZD0hMH1vbkRpc2FibGUoKXt0aGlzLmNhY2hlZD10aGlzLnZhbHVlcyx0aGlzLnN1YnNjcmlwdGlvbnMuY2xlYXIoKSx0aGlzLnRvcGljTWFwLmNsZWFyKCl9YXN5bmMgdW5zdWJzY3JpYmVCeVRvcGljKGUsdCl7bGV0IHM9dGhpcy50b3BpY01hcC5nZXQoZSk7YXdhaXQgUHJvbWlzZS5hbGwocy5tYXAoYXN5bmMgaT0+YXdhaXQgdGhpcy51bnN1YnNjcmliZUJ5SWQoZSxpLHQpKSl9YXN5bmMgdW5zdWJzY3JpYmVCeUlkKGUsdCxzKXt0aGlzLmxvZ2dlci5kZWJ1ZygiVW5zdWJzY3JpYmluZyBUb3BpYyIpLHRoaXMubG9nZ2VyLnRyYWNlKHt0eXBlOiJtZXRob2QiLG1ldGhvZDoidW5zdWJzY3JpYmUiLHBhcmFtczp7dG9waWM6ZSxpZDp0LG9wdHM6c319KTt0cnl7bGV0IGk9dGUocyk7YXdhaXQgdGhpcy5ycGNVbnN1YnNjcmliZShlLHQsaSk7bGV0IHI9SigiVVNFUl9ESVNDT05ORUNURUQiLGAke3RoaXMubmFtZX0sICR7ZX1gKTthd2FpdCB0aGlzLm9uVW5zdWJzY3JpYmUoZSx0LHIpLHRoaXMubG9nZ2VyLmRlYnVnKCJTdWNjZXNzZnVsbHkgVW5zdWJzY3JpYmVkIFRvcGljIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJ1bnN1YnNjcmliZSIscGFyYW1zOnt0b3BpYzplLGlkOnQsb3B0czpzfX0pfWNhdGNoKGkpe3Rocm93IHRoaXMubG9nZ2VyLmRlYnVnKCJGYWlsZWQgdG8gVW5zdWJzY3JpYmUgVG9waWMiKSx0aGlzLmxvZ2dlci5lcnJvcihpKSxpfX1hc3luYyBycGNTdWJzY3JpYmUoZSx0LHMpe3ZhciBpO3M/LnRyYW5zcG9ydFR5cGU9PT1CLnJlbGF5JiZhd2FpdCB0aGlzLnJlc3RhcnRUb0NvbXBsZXRlKCk7bGV0IHI9e21ldGhvZDpZKHQucHJvdG9jb2wpLnN1YnNjcmliZSxwYXJhbXM6e3RvcGljOmV9fTt0aGlzLmxvZ2dlci5kZWJ1ZygiT3V0Z29pbmcgUmVsYXkgUGF5bG9hZCIpLHRoaXMubG9nZ2VyLnRyYWNlKHt0eXBlOiJwYXlsb2FkIixkaXJlY3Rpb246Im91dGdvaW5nIixyZXF1ZXN0OnJ9KTtsZXQgYT0oaT1zPy5pbnRlcm5hbCk9PW51bGw/dm9pZCAwOmkudGhyb3dPbkZhaWxlZFB1Ymxpc2g7dHJ5e2xldCBvPXRoaXMuZ2V0U3Vic2NyaXB0aW9uSWQoZSk7aWYocz8udHJhbnNwb3J0VHlwZT09PUIubGlua19tb2RlKXJldHVybiBzZXRUaW1lb3V0KCgpPT57KHRoaXMucmVsYXllci5jb25uZWN0ZWR8fHRoaXMucmVsYXllci5jb25uZWN0aW5nKSYmdGhpcy5yZWxheWVyLnJlcXVlc3QocikuY2F0Y2gocD0+dGhpcy5sb2dnZXIud2FybihwKSl9LEUoSykpLG87bGV0IGM9bmV3IFByb21pc2UoYXN5bmMgcD0+e2xldCBnPXk9Pnt5LnRvcGljPT09ZSYmKHRoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKFAuY3JlYXRlZCxnKSxwKHkuaWQpKX07dGhpcy5ldmVudHMub24oUC5jcmVhdGVkLGcpO3RyeXtsZXQgeT1hd2FpdCBrKG5ldyBQcm9taXNlKChiLGwpPT57dGhpcy5yZWxheWVyLnJlcXVlc3QocikuY2F0Y2godT0+e3RoaXMubG9nZ2VyLndhcm4odSx1Py5tZXNzYWdlKSxsKHUpfSkudGhlbihiKX0pLHRoaXMuaW5pdGlhbFN1YnNjcmliZVRpbWVvdXQsYFN1YnNjcmliaW5nIHRvICR7ZX0gZmFpbGVkLCBwbGVhc2UgdHJ5IGFnYWluYCk7dGhpcy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoUC5jcmVhdGVkLGcpLHAoeSl9Y2F0Y2h7fX0pLGg9YXdhaXQgayhjLHRoaXMuc3Vic2NyaWJlVGltZW91dCxgU3Vic2NyaWJpbmcgdG8gJHtlfSBmYWlsZWQsIHBsZWFzZSB0cnkgYWdhaW5gKTtpZighaCYmYSl0aHJvdyBuZXcgRXJyb3IoYFN1YnNjcmliaW5nIHRvICR7ZX0gZmFpbGVkLCBwbGVhc2UgdHJ5IGFnYWluYCk7cmV0dXJuIGg/bzpudWxsfWNhdGNoKG8pe2lmKHRoaXMubG9nZ2VyLmRlYnVnKCJPdXRnb2luZyBSZWxheSBTdWJzY3JpYmUgUGF5bG9hZCBzdGFsbGVkIiksdGhpcy5yZWxheWVyLmV2ZW50cy5lbWl0KHYuY29ubmVjdGlvbl9zdGFsbGVkKSxhKXRocm93IG99cmV0dXJuIG51bGx9YXN5bmMgcnBjQmF0Y2hTdWJzY3JpYmUoZSl7aWYoIWUubGVuZ3RoKXJldHVybjtsZXQgdD1lWzBdLnJlbGF5LHM9e21ldGhvZDpZKHQucHJvdG9jb2wpLmJhdGNoU3Vic2NyaWJlLHBhcmFtczp7dG9waWNzOmUubWFwKGk9PmkudG9waWMpfX07dGhpcy5sb2dnZXIuZGVidWcoIk91dGdvaW5nIFJlbGF5IFBheWxvYWQiKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToicGF5bG9hZCIsZGlyZWN0aW9uOiJvdXRnb2luZyIscmVxdWVzdDpzfSk7dHJ5e2F3YWl0IGF3YWl0IGsobmV3IFByb21pc2UoaT0+e3RoaXMucmVsYXllci5yZXF1ZXN0KHMpLmNhdGNoKHI9PnRoaXMubG9nZ2VyLndhcm4ocikpLnRoZW4oaSl9KSx0aGlzLnN1YnNjcmliZVRpbWVvdXQsInJwY0JhdGNoU3Vic2NyaWJlIGZhaWxlZCwgcGxlYXNlIHRyeSBhZ2FpbiIpfWNhdGNoe3RoaXMucmVsYXllci5ldmVudHMuZW1pdCh2LmNvbm5lY3Rpb25fc3RhbGxlZCl9fWFzeW5jIHJwY0JhdGNoRmV0Y2hNZXNzYWdlcyhlKXtpZighZS5sZW5ndGgpcmV0dXJuO2xldCB0PWVbMF0ucmVsYXkscz17bWV0aG9kOlkodC5wcm90b2NvbCkuYmF0Y2hGZXRjaE1lc3NhZ2VzLHBhcmFtczp7dG9waWNzOmUubWFwKHI9PnIudG9waWMpfX07dGhpcy5sb2dnZXIuZGVidWcoIk91dGdvaW5nIFJlbGF5IFBheWxvYWQiKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToicGF5bG9hZCIsZGlyZWN0aW9uOiJvdXRnb2luZyIscmVxdWVzdDpzfSk7bGV0IGk7dHJ5e2k9YXdhaXQgYXdhaXQgayhuZXcgUHJvbWlzZSgocixhKT0+e3RoaXMucmVsYXllci5yZXF1ZXN0KHMpLmNhdGNoKG89Pnt0aGlzLmxvZ2dlci53YXJuKG8pLGEobyl9KS50aGVuKHIpfSksdGhpcy5zdWJzY3JpYmVUaW1lb3V0LCJycGNCYXRjaEZldGNoTWVzc2FnZXMgZmFpbGVkLCBwbGVhc2UgdHJ5IGFnYWluIil9Y2F0Y2h7dGhpcy5yZWxheWVyLmV2ZW50cy5lbWl0KHYuY29ubmVjdGlvbl9zdGFsbGVkKX1yZXR1cm4gaX1ycGNVbnN1YnNjcmliZShlLHQscyl7bGV0IGk9e21ldGhvZDpZKHMucHJvdG9jb2wpLnVuc3Vic2NyaWJlLHBhcmFtczp7dG9waWM6ZSxpZDp0fX07cmV0dXJuIHRoaXMubG9nZ2VyLmRlYnVnKCJPdXRnb2luZyBSZWxheSBQYXlsb2FkIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6InBheWxvYWQiLGRpcmVjdGlvbjoib3V0Z29pbmciLHJlcXVlc3Q6aX0pLHRoaXMucmVsYXllci5yZXF1ZXN0KGkpfW9uU3Vic2NyaWJlKGUsdCl7dGhpcy5zZXRTdWJzY3JpcHRpb24oZSxjZShHKHt9LHQpLHtpZDplfSkpLHRoaXMucGVuZGluZy5kZWxldGUodC50b3BpYyl9b25CYXRjaFN1YnNjcmliZShlKXtlLmxlbmd0aCYmZS5mb3JFYWNoKHQ9Pnt0aGlzLnNldFN1YnNjcmlwdGlvbih0LmlkLEcoe30sdCkpLHRoaXMucGVuZGluZy5kZWxldGUodC50b3BpYyl9KX1hc3luYyBvblVuc3Vic2NyaWJlKGUsdCxzKXt0aGlzLmV2ZW50cy5yZW1vdmVBbGxMaXN0ZW5lcnModCksdGhpcy5oYXNTdWJzY3JpcHRpb24odCxlKSYmdGhpcy5kZWxldGVTdWJzY3JpcHRpb24odCxzKSxhd2FpdCB0aGlzLnJlbGF5ZXIubWVzc2FnZXMuZGVsKGUpfWFzeW5jIHNldFJlbGF5ZXJTdWJzY3JpcHRpb25zKGUpe2F3YWl0IHRoaXMucmVsYXllci5jb3JlLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksZSl9YXN5bmMgZ2V0UmVsYXllclN1YnNjcmlwdGlvbnMoKXtyZXR1cm4gYXdhaXQgdGhpcy5yZWxheWVyLmNvcmUuc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSl9c2V0U3Vic2NyaXB0aW9uKGUsdCl7dGhpcy5sb2dnZXIuZGVidWcoIlNldHRpbmcgc3Vic2NyaXB0aW9uIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJzZXRTdWJzY3JpcHRpb24iLGlkOmUsc3Vic2NyaXB0aW9uOnR9KSx0aGlzLmFkZFN1YnNjcmlwdGlvbihlLHQpfWFkZFN1YnNjcmlwdGlvbihlLHQpe3RoaXMuc3Vic2NyaXB0aW9ucy5zZXQoZSxHKHt9LHQpKSx0aGlzLnRvcGljTWFwLnNldCh0LnRvcGljLGUpLHRoaXMuZXZlbnRzLmVtaXQoUC5jcmVhdGVkLHQpfWdldFN1YnNjcmlwdGlvbihlKXt0aGlzLmxvZ2dlci5kZWJ1ZygiR2V0dGluZyBzdWJzY3JpcHRpb24iKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6ImdldFN1YnNjcmlwdGlvbiIsaWQ6ZX0pO2xldCB0PXRoaXMuc3Vic2NyaXB0aW9ucy5nZXQoZSk7aWYoIXQpe2xldHttZXNzYWdlOnN9PWQoIk5PX01BVENISU5HX0tFWSIsYCR7dGhpcy5uYW1lfTogJHtlfWApO3Rocm93IG5ldyBFcnJvcihzKX1yZXR1cm4gdH1kZWxldGVTdWJzY3JpcHRpb24oZSx0KXt0aGlzLmxvZ2dlci5kZWJ1ZygiRGVsZXRpbmcgc3Vic2NyaXB0aW9uIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJkZWxldGVTdWJzY3JpcHRpb24iLGlkOmUscmVhc29uOnR9KTtsZXQgcz10aGlzLmdldFN1YnNjcmlwdGlvbihlKTt0aGlzLnN1YnNjcmlwdGlvbnMuZGVsZXRlKGUpLHRoaXMudG9waWNNYXAuZGVsZXRlKHMudG9waWMsZSksdGhpcy5ldmVudHMuZW1pdChQLmRlbGV0ZWQsY2UoRyh7fSxzKSx7cmVhc29uOnR9KSl9YXN5bmMgcGVyc2lzdCgpe2F3YWl0IHRoaXMuc2V0UmVsYXllclN1YnNjcmlwdGlvbnModGhpcy52YWx1ZXMpLHRoaXMuZXZlbnRzLmVtaXQoUC5zeW5jKX1hc3luYyBvblJlc3RhcnQoKXtpZih0aGlzLmNhY2hlZC5sZW5ndGgpe2xldCBlPVsuLi50aGlzLmNhY2hlZF0sdD1NYXRoLmNlaWwodGhpcy5jYWNoZWQubGVuZ3RoL3RoaXMuYmF0Y2hTdWJzY3JpYmVUb3BpY3NMaW1pdCk7Zm9yKGxldCBzPTA7czx0O3MrKyl7bGV0IGk9ZS5zcGxpY2UoMCx0aGlzLmJhdGNoU3Vic2NyaWJlVG9waWNzTGltaXQpO2F3YWl0IHRoaXMuYmF0Y2hTdWJzY3JpYmUoaSl9fXRoaXMuZXZlbnRzLmVtaXQoUC5yZXN1YnNjcmliZWQpfWFzeW5jIHJlc3RvcmUoKXt0cnl7bGV0IGU9YXdhaXQgdGhpcy5nZXRSZWxheWVyU3Vic2NyaXB0aW9ucygpO2lmKHR5cGVvZiBlPiJ1Inx8IWUubGVuZ3RoKXJldHVybjtpZih0aGlzLnN1YnNjcmlwdGlvbnMuc2l6ZSl7bGV0e21lc3NhZ2U6dH09ZCgiUkVTVE9SRV9XSUxMX09WRVJSSURFIix0aGlzLm5hbWUpO3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHQpLHRoaXMubG9nZ2VyLmVycm9yKGAke3RoaXMubmFtZX06ICR7SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZXMpfWApLG5ldyBFcnJvcih0KX10aGlzLmNhY2hlZD1lLHRoaXMubG9nZ2VyLmRlYnVnKGBTdWNjZXNzZnVsbHkgUmVzdG9yZWQgc3Vic2NyaXB0aW9ucyBmb3IgJHt0aGlzLm5hbWV9YCksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJyZXN0b3JlIixzdWJzY3JpcHRpb25zOnRoaXMudmFsdWVzfSl9Y2F0Y2goZSl7dGhpcy5sb2dnZXIuZGVidWcoYEZhaWxlZCB0byBSZXN0b3JlIHN1YnNjcmlwdGlvbnMgZm9yICR7dGhpcy5uYW1lfWApLHRoaXMubG9nZ2VyLmVycm9yKGUpfX1hc3luYyBiYXRjaFN1YnNjcmliZShlKXtlLmxlbmd0aCYmKGF3YWl0IHRoaXMucnBjQmF0Y2hTdWJzY3JpYmUoZSksdGhpcy5vbkJhdGNoU3Vic2NyaWJlKGUubWFwKHQ9PmNlKEcoe30sdCkse2lkOnRoaXMuZ2V0U3Vic2NyaXB0aW9uSWQodC50b3BpYyl9KSkpKX1hc3luYyBiYXRjaEZldGNoTWVzc2FnZXMoZSl7aWYoIWUubGVuZ3RoKXJldHVybjt0aGlzLmxvZ2dlci50cmFjZShgRmV0Y2hpbmcgYmF0Y2ggbWVzc2FnZXMgZm9yICR7ZS5sZW5ndGh9IHN1YnNjcmlwdGlvbnNgKTtsZXQgdD1hd2FpdCB0aGlzLnJwY0JhdGNoRmV0Y2hNZXNzYWdlcyhlKTt0JiZ0Lm1lc3NhZ2VzJiYoYXdhaXQgRmkoRShLKSksYXdhaXQgdGhpcy5yZWxheWVyLmhhbmRsZUJhdGNoTWVzc2FnZUV2ZW50cyh0Lm1lc3NhZ2VzKSl9YXN5bmMgb25Db25uZWN0KCl7YXdhaXQgdGhpcy5yZXN0YXJ0KCksdGhpcy5yZXNldCgpfW9uRGlzY29ubmVjdCgpe3RoaXMub25EaXNhYmxlKCl9aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX1hc3luYyByZXN0YXJ0VG9Db21wbGV0ZSgpeyF0aGlzLnJlbGF5ZXIuY29ubmVjdGVkJiYhdGhpcy5yZWxheWVyLmNvbm5lY3RpbmcmJmF3YWl0IHRoaXMucmVsYXllci50cmFuc3BvcnRPcGVuKCl9Z2V0U3Vic2NyaXB0aW9uSWQoZSl7cmV0dXJuIGdlKGUrdGhpcy5jbGllbnRJZCl9fSxuYT1PYmplY3QuZGVmaW5lUHJvcGVydHksdXQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxvYT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGNhPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUseXQ9KG4sZSx0KT0+ZSBpbiBuP25hKG4sZSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dH0pOm5bZV09dCxtdD0obixlKT0+e2Zvcih2YXIgdCBpbiBlfHwoZT17fSkpb2EuY2FsbChlLHQpJiZ5dChuLHQsZVt0XSk7aWYodXQpZm9yKHZhciB0IG9mIHV0KGUpKWNhLmNhbGwoZSx0KSYmeXQobix0LGVbdF0pO3JldHVybiBufSx4ZT1jbGFzcyBleHRlbmRzIHJpe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMucHJvdG9jb2w9IndjIix0aGlzLnZlcnNpb249Mix0aGlzLmV2ZW50cz1uZXcgVix0aGlzLm5hbWU9Y3MsdGhpcy50cmFuc3BvcnRFeHBsaWNpdGx5Q2xvc2VkPSExLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5jb25uZWN0aW9uQXR0ZW1wdEluUHJvZ3Jlc3M9ITEsdGhpcy5oYXNFeHBlcmllbmNlZE5ldHdvcmtEaXNydXB0aW9uPSExLHRoaXMuaGVhcnRCZWF0VGltZW91dD1FKGhlK2tlKSx0aGlzLnJlcXVlc3RzSW5GbGlnaHQ9W10sdGhpcy5jb25uZWN0VGltZW91dD1FKEsqMTUpLHRoaXMucmVxdWVzdD1hc3luYyB0PT57dmFyIHMsaTt0aGlzLmxvZ2dlci5kZWJ1ZygiUHVibGlzaGluZyBSZXF1ZXN0IFBheWxvYWQiKTtsZXQgcj10LmlkfHxBdCgpLnRvU3RyaW5nKCk7YXdhaXQgdGhpcy50b0VzdGFibGlzaENvbm5lY3Rpb24oKTt0cnl7dGhpcy5sb2dnZXIudHJhY2Uoe2lkOnIsbWV0aG9kOnQubWV0aG9kLHRvcGljOihzPXQucGFyYW1zKT09bnVsbD92b2lkIDA6cy50b3BpY30sInJlbGF5ZXIucmVxdWVzdCAtIHB1Ymxpc2hpbmcuLi4iKTtsZXQgYT1gJHtyfTokeygoaT10LnBhcmFtcyk9PW51bGw/dm9pZCAwOmkudGFnKXx8IiJ9YDt0aGlzLnJlcXVlc3RzSW5GbGlnaHQucHVzaChhKTtsZXQgbz1hd2FpdCB0aGlzLnByb3ZpZGVyLnJlcXVlc3QodCk7cmV0dXJuIHRoaXMucmVxdWVzdHNJbkZsaWdodD10aGlzLnJlcXVlc3RzSW5GbGlnaHQuZmlsdGVyKGM9PmMhPT1hKSxvfWNhdGNoKGEpe3Rocm93IHRoaXMubG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gUHVibGlzaCBSZXF1ZXN0OiAke3J9YCksYX19LHRoaXMucmVzZXRQaW5nVGltZW91dD0oKT0+e2lmKEdlKCkpdHJ5e2NsZWFyVGltZW91dCh0aGlzLnBpbmdUaW1lb3V0KSx0aGlzLnBpbmdUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt2YXIgdCxzLGk7dGhpcy5sb2dnZXIuZGVidWcoe30sInBpbmdUaW1lb3V0OiBDb25uZWN0aW9uIHN0YWxsZWQsIHRlcm1pbmF0aW5nLi4uIiksKGk9KHM9KHQ9dGhpcy5wcm92aWRlcik9PW51bGw/dm9pZCAwOnQuY29ubmVjdGlvbik9PW51bGw/dm9pZCAwOnMuc29ja2V0KT09bnVsbHx8aS50ZXJtaW5hdGUoKX0sdGhpcy5oZWFydEJlYXRUaW1lb3V0KX1jYXRjaCh0KXt0aGlzLmxvZ2dlci53YXJuKHQsdD8ubWVzc2FnZSl9fSx0aGlzLm9uUGF5bG9hZEhhbmRsZXI9dD0+e3RoaXMub25Qcm92aWRlclBheWxvYWQodCksdGhpcy5yZXNldFBpbmdUaW1lb3V0KCl9LHRoaXMub25Db25uZWN0SGFuZGxlcj0oKT0+e3RoaXMubG9nZ2VyLndhcm4oe30sIlJlbGF5ZXIgY29ubmVjdGVkIFx1ezFGNkRDfSIpLHRoaXMuc3RhcnRQaW5nVGltZW91dCgpLHRoaXMuZXZlbnRzLmVtaXQodi5jb25uZWN0KX0sdGhpcy5vbkRpc2Nvbm5lY3RIYW5kbGVyPSgpPT57dGhpcy5sb2dnZXIud2Fybih7fSwiUmVsYXllciBkaXNjb25uZWN0ZWQgXHV7MUY2RDF9IiksdGhpcy5yZXF1ZXN0c0luRmxpZ2h0PVtdLHRoaXMub25Qcm92aWRlckRpc2Nvbm5lY3QoKX0sdGhpcy5vblByb3ZpZGVyRXJyb3JIYW5kbGVyPXQ9Pnt0aGlzLmxvZ2dlci5mYXRhbCh0LGBGYXRhbCBzb2NrZXQgZXJyb3I6ICR7dD8ubWVzc2FnZX1gKSx0aGlzLmV2ZW50cy5lbWl0KHYuZXJyb3IsdCksdGhpcy5sb2dnZXIuZmF0YWwoIkZhdGFsIHNvY2tldCBlcnJvciByZWNlaXZlZCwgY2xvc2luZyB0cmFuc3BvcnQiKSx0aGlzLnRyYW5zcG9ydENsb3NlKCl9LHRoaXMucmVnaXN0ZXJQcm92aWRlckxpc3RlbmVycz0oKT0+e3RoaXMucHJvdmlkZXIub24oUy5wYXlsb2FkLHRoaXMub25QYXlsb2FkSGFuZGxlciksdGhpcy5wcm92aWRlci5vbihTLmNvbm5lY3QsdGhpcy5vbkNvbm5lY3RIYW5kbGVyKSx0aGlzLnByb3ZpZGVyLm9uKFMuZGlzY29ubmVjdCx0aGlzLm9uRGlzY29ubmVjdEhhbmRsZXIpLHRoaXMucHJvdmlkZXIub24oUy5lcnJvcix0aGlzLm9uUHJvdmlkZXJFcnJvckhhbmRsZXIpfSx0aGlzLmNvcmU9ZS5jb3JlLHRoaXMubG9nZ2VyPXR5cGVvZiBlLmxvZ2dlcjwidSImJnR5cGVvZiBlLmxvZ2dlciE9InN0cmluZyI/VChlLmxvZ2dlcix0aGlzLm5hbWUpOlF0KFB0KHtsZXZlbDplLmxvZ2dlcnx8b3N9KSksdGhpcy5tZXNzYWdlcz1uZXcgUGUodGhpcy5sb2dnZXIsZS5jb3JlKSx0aGlzLnN1YnNjcmliZXI9bmV3IFJlKHRoaXMsdGhpcy5sb2dnZXIpLHRoaXMucHVibGlzaGVyPW5ldyBGZSh0aGlzLHRoaXMubG9nZ2VyKSx0aGlzLnJlbGF5VXJsPWU/LnJlbGF5VXJsfHxrdCx0aGlzLnByb2plY3RJZD1lLnByb2plY3RJZCxTaSgpP3RoaXMucGFja2FnZU5hbWU9SGUoKTpSaSgpJiYodGhpcy5idW5kbGVJZD1IZSgpKSx0aGlzLnByb3ZpZGVyPXt9fWFzeW5jIGluaXQoKXtpZih0aGlzLmxvZ2dlci50cmFjZSgiSW5pdGlhbGl6ZWQiKSx0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMoKSxhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5tZXNzYWdlcy5pbml0KCksdGhpcy5zdWJzY3JpYmVyLmluaXQoKV0pLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5zdWJzY3JpYmVyLmNhY2hlZC5sZW5ndGg+MCl0cnl7YXdhaXQgdGhpcy50cmFuc3BvcnRPcGVuKCl9Y2F0Y2goZSl7dGhpcy5sb2dnZXIud2FybihlLGU/Lm1lc3NhZ2UpfX1nZXQgY29udGV4dCgpe3JldHVybiBSKHRoaXMubG9nZ2VyKX1nZXQgY29ubmVjdGVkKCl7dmFyIGUsdCxzO3JldHVybigocz0odD0oZT10aGlzLnByb3ZpZGVyKT09bnVsbD92b2lkIDA6ZS5jb25uZWN0aW9uKT09bnVsbD92b2lkIDA6dC5zb2NrZXQpPT1udWxsP3ZvaWQgMDpzLnJlYWR5U3RhdGUpPT09MX1nZXQgY29ubmVjdGluZygpe3ZhciBlLHQscztyZXR1cm4oKHM9KHQ9KGU9dGhpcy5wcm92aWRlcik9PW51bGw/dm9pZCAwOmUuY29ubmVjdGlvbik9PW51bGw/dm9pZCAwOnQuc29ja2V0KT09bnVsbD92b2lkIDA6cy5yZWFkeVN0YXRlKT09PTB9YXN5bmMgcHVibGlzaChlLHQscyl7dGhpcy5pc0luaXRpYWxpemVkKCksYXdhaXQgdGhpcy5wdWJsaXNoZXIucHVibGlzaChlLHQscyksYXdhaXQgdGhpcy5yZWNvcmRNZXNzYWdlRXZlbnQoe3RvcGljOmUsbWVzc2FnZTp0LHB1Ymxpc2hlZEF0OkRhdGUubm93KCksdHJhbnNwb3J0VHlwZTpCLnJlbGF5fSl9YXN5bmMgc3Vic2NyaWJlKGUsdCl7dmFyIHMsaSxyO3RoaXMuaXNJbml0aWFsaXplZCgpLCghKHQhPW51bGwmJnQudHJhbnNwb3J0VHlwZSl8fHQ/LnRyYW5zcG9ydFR5cGU9PT0icmVsYXkiKSYmYXdhaXQgdGhpcy50b0VzdGFibGlzaENvbm5lY3Rpb24oKTtsZXQgYT10eXBlb2YoKHM9dD8uaW50ZXJuYWwpPT1udWxsP3ZvaWQgMDpzLnRocm93T25GYWlsZWRQdWJsaXNoKT4idSI/ITA6KGk9dD8uaW50ZXJuYWwpPT1udWxsP3ZvaWQgMDppLnRocm93T25GYWlsZWRQdWJsaXNoLG89KChyPXRoaXMuc3Vic2NyaWJlci50b3BpY01hcC5nZXQoZSkpPT1udWxsP3ZvaWQgMDpyWzBdKXx8IiIsYyxoPXA9PntwLnRvcGljPT09ZSYmKHRoaXMuc3Vic2NyaWJlci5vZmYoUC5jcmVhdGVkLGgpLGMoKSl9O3JldHVybiBhd2FpdCBQcm9taXNlLmFsbChbbmV3IFByb21pc2UocD0+e2M9cCx0aGlzLnN1YnNjcmliZXIub24oUC5jcmVhdGVkLGgpfSksbmV3IFByb21pc2UoYXN5bmMocCxnKT0+e289YXdhaXQgdGhpcy5zdWJzY3JpYmVyLnN1YnNjcmliZShlLG10KHtpbnRlcm5hbDp7dGhyb3dPbkZhaWxlZFB1Ymxpc2g6YX19LHQpKS5jYXRjaCh5PT57YSYmZyh5KX0pfHxvLHAoKX0pXSksb31hc3luYyB1bnN1YnNjcmliZShlLHQpe3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMuc3Vic2NyaWJlci51bnN1YnNjcmliZShlLHQpfW9uKGUsdCl7dGhpcy5ldmVudHMub24oZSx0KX1vbmNlKGUsdCl7dGhpcy5ldmVudHMub25jZShlLHQpfW9mZihlLHQpe3RoaXMuZXZlbnRzLm9mZihlLHQpfXJlbW92ZUxpc3RlbmVyKGUsdCl7dGhpcy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoZSx0KX1hc3luYyB0cmFuc3BvcnREaXNjb25uZWN0KCl7dGhpcy5wcm92aWRlci5kaXNjb25uZWN0JiYodGhpcy5oYXNFeHBlcmllbmNlZE5ldHdvcmtEaXNydXB0aW9ufHx0aGlzLmNvbm5lY3RlZCk/YXdhaXQgayh0aGlzLnByb3ZpZGVyLmRpc2Nvbm5lY3QoKSwyZTMsInByb3ZpZGVyLmRpc2Nvbm5lY3QoKSIpLmNhdGNoKCgpPT50aGlzLm9uUHJvdmlkZXJEaXNjb25uZWN0KCkpOnRoaXMub25Qcm92aWRlckRpc2Nvbm5lY3QoKX1hc3luYyB0cmFuc3BvcnRDbG9zZSgpe3RoaXMudHJhbnNwb3J0RXhwbGljaXRseUNsb3NlZD0hMCxhd2FpdCB0aGlzLnRyYW5zcG9ydERpc2Nvbm5lY3QoKX1hc3luYyB0cmFuc3BvcnRPcGVuKGUpe2lmKHRoaXMuY29ubmVjdFByb21pc2U/KHRoaXMubG9nZ2VyLmRlYnVnKHt9LCJXYWl0aW5nIGZvciBleGlzdGluZyBjb25uZWN0aW9uIGF0dGVtcHQgdG8gcmVzb2x2ZS4uLiIpLGF3YWl0IHRoaXMuY29ubmVjdFByb21pc2UsdGhpcy5sb2dnZXIuZGVidWcoe30sIkV4aXN0aW5nIGNvbm5lY3Rpb24gYXR0ZW1wdCByZXNvbHZlZCIpKToodGhpcy5jb25uZWN0UHJvbWlzZT1uZXcgUHJvbWlzZShhc3luYyh0LHMpPT57YXdhaXQgdGhpcy5jb25uZWN0KGUpLnRoZW4odCkuY2F0Y2gocykuZmluYWxseSgoKT0+e3RoaXMuY29ubmVjdFByb21pc2U9dm9pZCAwfSl9KSxhd2FpdCB0aGlzLmNvbm5lY3RQcm9taXNlKSwhdGhpcy5jb25uZWN0ZWQpdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBlc3RhYmxpc2ggc29ja2V0IGNvbm5lY3Rpb24gdG8gdGhlIHJlbGF5IHNlcnZlcjogJHt0aGlzLnJlbGF5VXJsfWApfWFzeW5jIHJlc3RhcnRUcmFuc3BvcnQoZSl7dGhpcy5sb2dnZXIuZGVidWcoe30sIlJlc3RhcnRpbmcgdHJhbnNwb3J0Li4uIiksIXRoaXMuY29ubmVjdGlvbkF0dGVtcHRJblByb2dyZXNzJiYodGhpcy5yZWxheVVybD1lfHx0aGlzLnJlbGF5VXJsLGF3YWl0IHRoaXMuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpLGF3YWl0IHRoaXMudHJhbnNwb3J0Q2xvc2UoKSxhd2FpdCB0aGlzLnRyYW5zcG9ydE9wZW4oKSl9YXN5bmMgY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpe2lmKCFhd2FpdCBZZSgpKXRocm93IG5ldyBFcnJvcigiTm8gaW50ZXJuZXQgY29ubmVjdGlvbiBkZXRlY3RlZC4gUGxlYXNlIHJlc3RhcnQgeW91ciBuZXR3b3JrIGFuZCB0cnkgYWdhaW4uIil9YXN5bmMgaGFuZGxlQmF0Y2hNZXNzYWdlRXZlbnRzKGUpe2lmKGU/Lmxlbmd0aD09PTApe3RoaXMubG9nZ2VyLnRyYWNlKCJCYXRjaCBtZXNzYWdlIGV2ZW50cyBpcyBlbXB0eS4gSWdub3JpbmcuLi4iKTtyZXR1cm59bGV0IHQ9ZS5zb3J0KChzLGkpPT5zLnB1Ymxpc2hlZEF0LWkucHVibGlzaGVkQXQpO3RoaXMubG9nZ2VyLmRlYnVnKGBCYXRjaCBvZiAke3QubGVuZ3RofSBtZXNzYWdlIGV2ZW50cyBzb3J0ZWRgKTtmb3IobGV0IHMgb2YgdCl0cnl7YXdhaXQgdGhpcy5vbk1lc3NhZ2VFdmVudChzKX1jYXRjaChpKXt0aGlzLmxvZ2dlci53YXJuKGksIkVycm9yIHdoaWxlIHByb2Nlc3NpbmcgYmF0Y2ggbWVzc2FnZSBldmVudDogIitpPy5tZXNzYWdlKX10aGlzLmxvZ2dlci50cmFjZShgQmF0Y2ggb2YgJHt0Lmxlbmd0aH0gbWVzc2FnZSBldmVudHMgcHJvY2Vzc2VkYCl9YXN5bmMgb25MaW5rTWVzc2FnZUV2ZW50KGUsdCl7bGV0e3RvcGljOnN9PWU7aWYoIXQuc2Vzc2lvbkV4aXN0cyl7bGV0IGk9WChsZSkscj17dG9waWM6cyxleHBpcnk6aSxyZWxheTp7cHJvdG9jb2w6ImlybiJ9LGFjdGl2ZTohMX07YXdhaXQgdGhpcy5jb3JlLnBhaXJpbmcucGFpcmluZ3Muc2V0KHMscil9dGhpcy5ldmVudHMuZW1pdCh2Lm1lc3NhZ2UsZSksYXdhaXQgdGhpcy5yZWNvcmRNZXNzYWdlRXZlbnQoZSl9YXN5bmMgY29ubmVjdChlKXthd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKSxlJiZlIT09dGhpcy5yZWxheVVybCYmKHRoaXMucmVsYXlVcmw9ZSxhd2FpdCB0aGlzLnRyYW5zcG9ydERpc2Nvbm5lY3QoKSksdGhpcy5jb25uZWN0aW9uQXR0ZW1wdEluUHJvZ3Jlc3M9ITAsdGhpcy50cmFuc3BvcnRFeHBsaWNpdGx5Q2xvc2VkPSExO2xldCB0PTE7Zm9yKDt0PDY7KXt0cnl7dGhpcy5sb2dnZXIuZGVidWcoe30sYENvbm5lY3RpbmcgdG8gJHt0aGlzLnJlbGF5VXJsfSwgYXR0ZW1wdDogJHt0fS4uLmApLGF3YWl0IHRoaXMuY3JlYXRlUHJvdmlkZXIoKSxhd2FpdCBuZXcgUHJvbWlzZShhc3luYyhzLGkpPT57bGV0IHI9KCk9PntpKG5ldyBFcnJvcigiQ29ubmVjdGlvbiBpbnRlcnJ1cHRlZCB3aGlsZSB0cnlpbmcgdG8gc3Vic2NyaWJlIikpfTt0aGlzLnByb3ZpZGVyLm9uY2UoUy5kaXNjb25uZWN0LHIpLGF3YWl0IGsobmV3IFByb21pc2UoKGEsbyk9Pnt0aGlzLnByb3ZpZGVyLmNvbm5lY3QoKS50aGVuKGEpLmNhdGNoKG8pfSksdGhpcy5jb25uZWN0VGltZW91dCxgU29ja2V0IHN0YWxsZWQgd2hlbiB0cnlpbmcgdG8gY29ubmVjdCB0byAke3RoaXMucmVsYXlVcmx9YCkuY2F0Y2goYT0+e2koYSl9KS5maW5hbGx5KCgpPT57dGhpcy5wcm92aWRlci5vZmYoUy5kaXNjb25uZWN0LHIpLGNsZWFyVGltZW91dCh0aGlzLnJlY29ubmVjdFRpbWVvdXQpLHRoaXMucmVjb25uZWN0VGltZW91dD12b2lkIDB9KSxhd2FpdCBuZXcgUHJvbWlzZShhc3luYyhhLG8pPT57bGV0IGM9KCk9PntvKG5ldyBFcnJvcigiQ29ubmVjdGlvbiBpbnRlcnJ1cHRlZCB3aGlsZSB0cnlpbmcgdG8gc3Vic2NyaWJlIikpfTt0aGlzLnByb3ZpZGVyLm9uY2UoUy5kaXNjb25uZWN0LGMpLGF3YWl0IHRoaXMuc3Vic2NyaWJlci5zdGFydCgpLnRoZW4oYSkuY2F0Y2gobykuZmluYWxseSgoKT0+e3RoaXMucHJvdmlkZXIub2ZmKFMuZGlzY29ubmVjdCxjKX0pfSksdGhpcy5oYXNFeHBlcmllbmNlZE5ldHdvcmtEaXNydXB0aW9uPSExLHMoKX0pfWNhdGNoKHMpe2F3YWl0IHRoaXMuc3Vic2NyaWJlci5zdG9wKCk7bGV0IGk9czt0aGlzLmxvZ2dlci53YXJuKHt9LGkubWVzc2FnZSksdGhpcy5oYXNFeHBlcmllbmNlZE5ldHdvcmtEaXNydXB0aW9uPSEwfWZpbmFsbHl7dGhpcy5jb25uZWN0aW9uQXR0ZW1wdEluUHJvZ3Jlc3M9ITF9aWYodGhpcy5jb25uZWN0ZWQpe3RoaXMubG9nZ2VyLmRlYnVnKHt9LGBDb25uZWN0ZWQgdG8gJHt0aGlzLnJlbGF5VXJsfSBzdWNjZXNzZnVsbHkgb24gYXR0ZW1wdDogJHt0fWApO2JyZWFrfWF3YWl0IG5ldyBQcm9taXNlKHM9PnNldFRpbWVvdXQocyxFKHQqMSkpKSx0Kyt9fXN0YXJ0UGluZ1RpbWVvdXQoKXt2YXIgZSx0LHMsaSxyO2lmKEdlKCkpdHJ5eyh0PShlPXRoaXMucHJvdmlkZXIpPT1udWxsP3ZvaWQgMDplLmNvbm5lY3Rpb24pIT1udWxsJiZ0LnNvY2tldCYmKChyPShpPShzPXRoaXMucHJvdmlkZXIpPT1udWxsP3ZvaWQgMDpzLmNvbm5lY3Rpb24pPT1udWxsP3ZvaWQgMDppLnNvY2tldCk9PW51bGx8fHIub24oInBpbmciLCgpPT57dGhpcy5yZXNldFBpbmdUaW1lb3V0KCl9KSksdGhpcy5yZXNldFBpbmdUaW1lb3V0KCl9Y2F0Y2goYSl7dGhpcy5sb2dnZXIud2FybihhLGE/Lm1lc3NhZ2UpfX1hc3luYyBjcmVhdGVQcm92aWRlcigpe3RoaXMucHJvdmlkZXIuY29ubmVjdGlvbiYmdGhpcy51bnJlZ2lzdGVyUHJvdmlkZXJMaXN0ZW5lcnMoKTtsZXQgZT1hd2FpdCB0aGlzLmNvcmUuY3J5cHRvLnNpZ25KV1QodGhpcy5yZWxheVVybCk7dGhpcy5wcm92aWRlcj1uZXcgcWkobmV3IFlpKHhpKHtzZGtWZXJzaW9uOnVlLHByb3RvY29sOnRoaXMucHJvdG9jb2wsdmVyc2lvbjp0aGlzLnZlcnNpb24scmVsYXlVcmw6dGhpcy5yZWxheVVybCxwcm9qZWN0SWQ6dGhpcy5wcm9qZWN0SWQsYXV0aDplLHVzZU9uQ2xvc2VFdmVudDohMCxidW5kbGVJZDp0aGlzLmJ1bmRsZUlkLHBhY2thZ2VOYW1lOnRoaXMucGFja2FnZU5hbWV9KSkpLHRoaXMucmVnaXN0ZXJQcm92aWRlckxpc3RlbmVycygpfWFzeW5jIHJlY29yZE1lc3NhZ2VFdmVudChlKXtsZXR7dG9waWM6dCxtZXNzYWdlOnN9PWU7YXdhaXQgdGhpcy5tZXNzYWdlcy5zZXQodCxzKX1hc3luYyBzaG91bGRJZ25vcmVNZXNzYWdlRXZlbnQoZSl7bGV0e3RvcGljOnQsbWVzc2FnZTpzfT1lO2lmKCFzfHxzLmxlbmd0aD09PTApcmV0dXJuIHRoaXMubG9nZ2VyLndhcm4oYElnbm9yaW5nIGludmFsaWQvZW1wdHkgbWVzc2FnZTogJHtzfWApLCEwO2lmKCFhd2FpdCB0aGlzLnN1YnNjcmliZXIuaXNTdWJzY3JpYmVkKHQpKXJldHVybiB0aGlzLmxvZ2dlci53YXJuKGBJZ25vcmluZyBtZXNzYWdlIGZvciBub24tc3Vic2NyaWJlZCB0b3BpYyAke3R9YCksITA7bGV0IGk9dGhpcy5tZXNzYWdlcy5oYXModCxzKTtyZXR1cm4gaSYmdGhpcy5sb2dnZXIud2FybihgSWdub3JpbmcgZHVwbGljYXRlIG1lc3NhZ2U6ICR7c31gKSxpfWFzeW5jIG9uUHJvdmlkZXJQYXlsb2FkKGUpe2lmKHRoaXMubG9nZ2VyLmRlYnVnKCJJbmNvbWluZyBSZWxheSBQYXlsb2FkIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6InBheWxvYWQiLGRpcmVjdGlvbjoiaW5jb21pbmciLHBheWxvYWQ6ZX0pLE90KGUpKXtpZighZS5tZXRob2QuZW5kc1dpdGgoaHMpKXJldHVybjtsZXQgdD1lLnBhcmFtcyx7dG9waWM6cyxtZXNzYWdlOmkscHVibGlzaGVkQXQ6cixhdHRlc3RhdGlvbjphfT10LmRhdGEsbz17dG9waWM6cyxtZXNzYWdlOmkscHVibGlzaGVkQXQ6cix0cmFuc3BvcnRUeXBlOkIucmVsYXksYXR0ZXN0YXRpb246YX07dGhpcy5sb2dnZXIuZGVidWcoIkVtaXR0aW5nIFJlbGF5ZXIgUGF5bG9hZCIpLHRoaXMubG9nZ2VyLnRyYWNlKG10KHt0eXBlOiJldmVudCIsZXZlbnQ6dC5pZH0sbykpLHRoaXMuZXZlbnRzLmVtaXQodC5pZCxvKSxhd2FpdCB0aGlzLmFja25vd2xlZGdlUGF5bG9hZChlKSxhd2FpdCB0aGlzLm9uTWVzc2FnZUV2ZW50KG8pfWVsc2UgQ3QoZSkmJnRoaXMuZXZlbnRzLmVtaXQodi5tZXNzYWdlX2FjayxlKX1hc3luYyBvbk1lc3NhZ2VFdmVudChlKXthd2FpdCB0aGlzLnNob3VsZElnbm9yZU1lc3NhZ2VFdmVudChlKXx8KHRoaXMuZXZlbnRzLmVtaXQodi5tZXNzYWdlLGUpLGF3YWl0IHRoaXMucmVjb3JkTWVzc2FnZUV2ZW50KGUpKX1hc3luYyBhY2tub3dsZWRnZVBheWxvYWQoZSl7bGV0IHQ9TnQoZS5pZCwhMCk7YXdhaXQgdGhpcy5wcm92aWRlci5jb25uZWN0aW9uLnNlbmQodCl9dW5yZWdpc3RlclByb3ZpZGVyTGlzdGVuZXJzKCl7dGhpcy5wcm92aWRlci5vZmYoUy5wYXlsb2FkLHRoaXMub25QYXlsb2FkSGFuZGxlciksdGhpcy5wcm92aWRlci5vZmYoUy5jb25uZWN0LHRoaXMub25Db25uZWN0SGFuZGxlciksdGhpcy5wcm92aWRlci5vZmYoUy5kaXNjb25uZWN0LHRoaXMub25EaXNjb25uZWN0SGFuZGxlciksdGhpcy5wcm92aWRlci5vZmYoUy5lcnJvcix0aGlzLm9uUHJvdmlkZXJFcnJvckhhbmRsZXIpLGNsZWFyVGltZW91dCh0aGlzLnBpbmdUaW1lb3V0KX1hc3luYyByZWdpc3RlckV2ZW50TGlzdGVuZXJzKCl7bGV0IGU9YXdhaXQgWWUoKTtBaShhc3luYyB0PT57ZSE9PXQmJihlPXQsdD9hd2FpdCB0aGlzLnRyYW5zcG9ydE9wZW4oKS5jYXRjaChzPT50aGlzLmxvZ2dlci5lcnJvcihzLHM/Lm1lc3NhZ2UpKToodGhpcy5oYXNFeHBlcmllbmNlZE5ldHdvcmtEaXNydXB0aW9uPSEwLGF3YWl0IHRoaXMudHJhbnNwb3J0RGlzY29ubmVjdCgpLHRoaXMudHJhbnNwb3J0RXhwbGljaXRseUNsb3NlZD0hMSkpfSl9YXN5bmMgb25Qcm92aWRlckRpc2Nvbm5lY3QoKXthd2FpdCB0aGlzLnN1YnNjcmliZXIuc3RvcCgpLGNsZWFyVGltZW91dCh0aGlzLnBpbmdUaW1lb3V0KSx0aGlzLmV2ZW50cy5lbWl0KHYuZGlzY29ubmVjdCksdGhpcy5jb25uZWN0aW9uQXR0ZW1wdEluUHJvZ3Jlc3M9ITEsIXRoaXMudHJhbnNwb3J0RXhwbGljaXRseUNsb3NlZCYmKHRoaXMucmVjb25uZWN0VGltZW91dHx8dGhpcy5jb25uZWN0UHJvbWlzZXx8KHRoaXMucmVjb25uZWN0VGltZW91dD1zZXRUaW1lb3V0KGFzeW5jKCk9PntjbGVhclRpbWVvdXQodGhpcy5yZWNvbm5lY3RUaW1lb3V0KSxhd2FpdCB0aGlzLnRyYW5zcG9ydE9wZW4oKS5jYXRjaChlPT50aGlzLmxvZ2dlci5lcnJvcihlLGU/Lm1lc3NhZ2UpKX0sRShscykpKSl9aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX1hc3luYyB0b0VzdGFibGlzaENvbm5lY3Rpb24oKXthd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKSwhdGhpcy5jb25uZWN0ZWQmJmF3YWl0IHRoaXMudHJhbnNwb3J0T3BlbigpfX0saGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LGJ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsbGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxwYT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLF90PShuLGUsdCk9PmUgaW4gbj9oYShuLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpuW2VdPXQsZnQ9KG4sZSk9Pntmb3IodmFyIHQgaW4gZXx8KGU9e30pKWxhLmNhbGwoZSx0KSYmX3Qobix0LGVbdF0pO2lmKGJ0KWZvcih2YXIgdCBvZiBidChlKSlwYS5jYWxsKGUsdCkmJl90KG4sdCxlW3RdKTtyZXR1cm4gbn0sQWU9Y2xhc3MgZXh0ZW5kcyBhaXtjb25zdHJ1Y3RvcihlLHQscyxpPU4scj12b2lkIDApe3N1cGVyKGUsdCxzLGkpLHRoaXMuY29yZT1lLHRoaXMubG9nZ2VyPXQsdGhpcy5uYW1lPXMsdGhpcy5tYXA9bmV3IE1hcCx0aGlzLnZlcnNpb249cHMsdGhpcy5jYWNoZWQ9W10sdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLnN0b3JhZ2VQcmVmaXg9Tix0aGlzLnJlY2VudGx5RGVsZXRlZD1bXSx0aGlzLnJlY2VudGx5RGVsZXRlZExpbWl0PTIwMCx0aGlzLmluaXQ9YXN5bmMoKT0+e3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLmxvZ2dlci50cmFjZSgiSW5pdGlhbGl6ZWQiKSxhd2FpdCB0aGlzLnJlc3RvcmUoKSx0aGlzLmNhY2hlZC5mb3JFYWNoKGE9Pnt0aGlzLmdldEtleSYmYSE9PW51bGwmJiFkZShhKT90aGlzLm1hcC5zZXQodGhpcy5nZXRLZXkoYSksYSk6T2koYSk/dGhpcy5tYXAuc2V0KGEuaWQsYSk6Q2koYSkmJnRoaXMubWFwLnNldChhLnRvcGljLGEpfSksdGhpcy5jYWNoZWQ9W10sdGhpcy5pbml0aWFsaXplZD0hMCl9LHRoaXMuc2V0PWFzeW5jKGEsbyk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLm1hcC5oYXMoYSk/YXdhaXQgdGhpcy51cGRhdGUoYSxvKToodGhpcy5sb2dnZXIuZGVidWcoIlNldHRpbmcgdmFsdWUiKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6InNldCIsa2V5OmEsdmFsdWU6b30pLHRoaXMubWFwLnNldChhLG8pLGF3YWl0IHRoaXMucGVyc2lzdCgpKX0sdGhpcy5nZXQ9YT0+KHRoaXMuaXNJbml0aWFsaXplZCgpLHRoaXMubG9nZ2VyLmRlYnVnKCJHZXR0aW5nIHZhbHVlIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJnZXQiLGtleTphfSksdGhpcy5nZXREYXRhKGEpKSx0aGlzLmdldEFsbD1hPT4odGhpcy5pc0luaXRpYWxpemVkKCksYT90aGlzLnZhbHVlcy5maWx0ZXIobz0+T2JqZWN0LmtleXMoYSkuZXZlcnkoYz0+Smkob1tjXSxhW2NdKSkpOnRoaXMudmFsdWVzKSx0aGlzLnVwZGF0ZT1hc3luYyhhLG8pPT57dGhpcy5pc0luaXRpYWxpemVkKCksdGhpcy5sb2dnZXIuZGVidWcoIlVwZGF0aW5nIHZhbHVlIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJ1cGRhdGUiLGtleTphLHVwZGF0ZTpvfSk7bGV0IGM9ZnQoZnQoe30sdGhpcy5nZXREYXRhKGEpKSxvKTt0aGlzLm1hcC5zZXQoYSxjKSxhd2FpdCB0aGlzLnBlcnNpc3QoKX0sdGhpcy5kZWxldGU9YXN5bmMoYSxvKT0+e3RoaXMuaXNJbml0aWFsaXplZCgpLHRoaXMubWFwLmhhcyhhKSYmKHRoaXMubG9nZ2VyLmRlYnVnKCJEZWxldGluZyB2YWx1ZSIpLHRoaXMubG9nZ2VyLnRyYWNlKHt0eXBlOiJtZXRob2QiLG1ldGhvZDoiZGVsZXRlIixrZXk6YSxyZWFzb246b30pLHRoaXMubWFwLmRlbGV0ZShhKSx0aGlzLmFkZFRvUmVjZW50bHlEZWxldGVkKGEpLGF3YWl0IHRoaXMucGVyc2lzdCgpKX0sdGhpcy5sb2dnZXI9VCh0LHRoaXMubmFtZSksdGhpcy5zdG9yYWdlUHJlZml4PWksdGhpcy5nZXRLZXk9cn1nZXQgY29udGV4dCgpe3JldHVybiBSKHRoaXMubG9nZ2VyKX1nZXQgc3RvcmFnZUtleSgpe3JldHVybiB0aGlzLnN0b3JhZ2VQcmVmaXgrdGhpcy52ZXJzaW9uK3RoaXMuY29yZS5jdXN0b21TdG9yYWdlUHJlZml4KyIvLyIrdGhpcy5uYW1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5tYXAuc2l6ZX1nZXQga2V5cygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwLmtleXMoKSl9Z2V0IHZhbHVlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMubWFwLnZhbHVlcygpKX1hZGRUb1JlY2VudGx5RGVsZXRlZChlKXt0aGlzLnJlY2VudGx5RGVsZXRlZC5wdXNoKGUpLHRoaXMucmVjZW50bHlEZWxldGVkLmxlbmd0aD49dGhpcy5yZWNlbnRseURlbGV0ZWRMaW1pdCYmdGhpcy5yZWNlbnRseURlbGV0ZWQuc3BsaWNlKDAsdGhpcy5yZWNlbnRseURlbGV0ZWRMaW1pdC8yKX1hc3luYyBzZXREYXRhU3RvcmUoZSl7YXdhaXQgdGhpcy5jb3JlLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksZSl9YXN5bmMgZ2V0RGF0YVN0b3JlKCl7cmV0dXJuIGF3YWl0IHRoaXMuY29yZS5zdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KX1nZXREYXRhKGUpe2xldCB0PXRoaXMubWFwLmdldChlKTtpZighdCl7aWYodGhpcy5yZWNlbnRseURlbGV0ZWQuaW5jbHVkZXMoZSkpe2xldHttZXNzYWdlOml9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYFJlY29yZCB3YXMgcmVjZW50bHkgZGVsZXRlZCAtICR7dGhpcy5uYW1lfTogJHtlfWApO3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKGkpLG5ldyBFcnJvcihpKX1sZXR7bWVzc2FnZTpzfT1kKCJOT19NQVRDSElOR19LRVkiLGAke3RoaXMubmFtZX06ICR7ZX1gKTt0aHJvdyB0aGlzLmxvZ2dlci5lcnJvcihzKSxuZXcgRXJyb3Iocyl9cmV0dXJuIHR9YXN5bmMgcGVyc2lzdCgpe2F3YWl0IHRoaXMuc2V0RGF0YVN0b3JlKHRoaXMudmFsdWVzKX1hc3luYyByZXN0b3JlKCl7dHJ5e2xldCBlPWF3YWl0IHRoaXMuZ2V0RGF0YVN0b3JlKCk7aWYodHlwZW9mIGU+InUifHwhZS5sZW5ndGgpcmV0dXJuO2lmKHRoaXMubWFwLnNpemUpe2xldHttZXNzYWdlOnR9PWQoIlJFU1RPUkVfV0lMTF9PVkVSUklERSIsdGhpcy5uYW1lKTt0aHJvdyB0aGlzLmxvZ2dlci5lcnJvcih0KSxuZXcgRXJyb3IodCl9dGhpcy5jYWNoZWQ9ZSx0aGlzLmxvZ2dlci5kZWJ1ZyhgU3VjY2Vzc2Z1bGx5IFJlc3RvcmVkIHZhbHVlIGZvciAke3RoaXMubmFtZX1gKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6InJlc3RvcmUiLHZhbHVlOnRoaXMudmFsdWVzfSl9Y2F0Y2goZSl7dGhpcy5sb2dnZXIuZGVidWcoYEZhaWxlZCB0byBSZXN0b3JlIHZhbHVlIGZvciAke3RoaXMubmFtZX1gKSx0aGlzLmxvZ2dlci5lcnJvcihlKX19aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX19LE9lPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5jb3JlPWUsdGhpcy5sb2dnZXI9dCx0aGlzLm5hbWU9bXMsdGhpcy52ZXJzaW9uPWJzLHRoaXMuZXZlbnRzPW5ldyBYdCx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RvcmFnZVByZWZpeD1OLHRoaXMuaWdub3JlZFBheWxvYWRUeXBlcz1bTmldLHRoaXMucmVnaXN0ZXJlZE1ldGhvZHM9W10sdGhpcy5pbml0PWFzeW5jKCk9Pnt0aGlzLmluaXRpYWxpemVkfHwoYXdhaXQgdGhpcy5wYWlyaW5ncy5pbml0KCksYXdhaXQgdGhpcy5jbGVhbnVwKCksdGhpcy5yZWdpc3RlclJlbGF5ZXJFdmVudHMoKSx0aGlzLnJlZ2lzdGVyRXhwaXJlckV2ZW50cygpLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5sb2dnZXIudHJhY2UoIkluaXRpYWxpemVkIikpfSx0aGlzLnJlZ2lzdGVyPSh7bWV0aG9kczpzfSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLnJlZ2lzdGVyZWRNZXRob2RzPVsuLi5uZXcgU2V0KFsuLi50aGlzLnJlZ2lzdGVyZWRNZXRob2RzLC4uLnNdKV19LHRoaXMuY3JlYXRlPWFzeW5jIHM9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgaT1wZSgpLHI9YXdhaXQgdGhpcy5jb3JlLmNyeXB0by5zZXRTeW1LZXkoaSksYT1YKGxlKSxvPXtwcm90b2NvbDpuc30sYz17dG9waWM6cixleHBpcnk6YSxyZWxheTpvLGFjdGl2ZTohMSxtZXRob2RzOnM/Lm1ldGhvZHN9LGg9SmUoe3Byb3RvY29sOnRoaXMuY29yZS5wcm90b2NvbCx2ZXJzaW9uOnRoaXMuY29yZS52ZXJzaW9uLHRvcGljOnIsc3ltS2V5OmkscmVsYXk6byxleHBpcnlUaW1lc3RhbXA6YSxtZXRob2RzOnM/Lm1ldGhvZHN9KTtyZXR1cm4gdGhpcy5ldmVudHMuZW1pdChxLmNyZWF0ZSxjKSx0aGlzLmNvcmUuZXhwaXJlci5zZXQocixhKSxhd2FpdCB0aGlzLnBhaXJpbmdzLnNldChyLGMpLGF3YWl0IHRoaXMuY29yZS5yZWxheWVyLnN1YnNjcmliZShyLHt0cmFuc3BvcnRUeXBlOnM/LnRyYW5zcG9ydFR5cGV9KSx7dG9waWM6cix1cmk6aH19LHRoaXMucGFpcj1hc3luYyBzPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0IGk9dGhpcy5jb3JlLmV2ZW50Q2xpZW50LmNyZWF0ZUV2ZW50KHtwcm9wZXJ0aWVzOnt0b3BpYzpzPy51cmksdHJhY2U6W3oucGFpcmluZ19zdGFydGVkXX19KTt0aGlzLmlzVmFsaWRQYWlyKHMsaSk7bGV0e3RvcGljOnIsc3ltS2V5OmEscmVsYXk6byxleHBpcnlUaW1lc3RhbXA6YyxtZXRob2RzOmh9PVhlKHMudXJpKTtpLnByb3BzLnByb3BlcnRpZXMudG9waWM9cixpLmFkZFRyYWNlKHoucGFpcmluZ191cmlfdmFsaWRhdGlvbl9zdWNjZXNzKSxpLmFkZFRyYWNlKHoucGFpcmluZ191cmlfbm90X2V4cGlyZWQpO2xldCBwO2lmKHRoaXMucGFpcmluZ3Mua2V5cy5pbmNsdWRlcyhyKSl7aWYocD10aGlzLnBhaXJpbmdzLmdldChyKSxpLmFkZFRyYWNlKHouZXhpc3RpbmdfcGFpcmluZykscC5hY3RpdmUpdGhyb3cgaS5zZXRFcnJvcihVLmFjdGl2ZV9wYWlyaW5nX2FscmVhZHlfZXhpc3RzKSxuZXcgRXJyb3IoYFBhaXJpbmcgYWxyZWFkeSBleGlzdHM6ICR7cn0uIFBsZWFzZSB0cnkgYWdhaW4gd2l0aCBhIG5ldyBjb25uZWN0aW9uIFVSSS5gKTtpLmFkZFRyYWNlKHoucGFpcmluZ19ub3RfZXhwaXJlZCl9bGV0IGc9Y3x8WChsZSkseT17dG9waWM6cixyZWxheTpvLGV4cGlyeTpnLGFjdGl2ZTohMSxtZXRob2RzOmh9O3RoaXMuY29yZS5leHBpcmVyLnNldChyLGcpLGF3YWl0IHRoaXMucGFpcmluZ3Muc2V0KHIseSksaS5hZGRUcmFjZSh6LnN0b3JlX25ld19wYWlyaW5nKSxzLmFjdGl2YXRlUGFpcmluZyYmYXdhaXQgdGhpcy5hY3RpdmF0ZSh7dG9waWM6cn0pLHRoaXMuZXZlbnRzLmVtaXQocS5jcmVhdGUseSksaS5hZGRUcmFjZSh6LmVtaXRfaW5hY3RpdmVfcGFpcmluZyksdGhpcy5jb3JlLmNyeXB0by5rZXljaGFpbi5oYXMocil8fGF3YWl0IHRoaXMuY29yZS5jcnlwdG8uc2V0U3ltS2V5KGEsciksaS5hZGRUcmFjZSh6LnN1YnNjcmliaW5nX3BhaXJpbmdfdG9waWMpO3RyeXthd2FpdCB0aGlzLmNvcmUucmVsYXllci5jb25maXJtT25saW5lU3RhdGVPclRocm93KCl9Y2F0Y2h7aS5zZXRFcnJvcihVLm5vX2ludGVybmV0X2Nvbm5lY3Rpb24pfXRyeXthd2FpdCB0aGlzLmNvcmUucmVsYXllci5zdWJzY3JpYmUocix7cmVsYXk6b30pfWNhdGNoKGIpe3Rocm93IGkuc2V0RXJyb3IoVS5zdWJzY3JpYmVfcGFpcmluZ190b3BpY19mYWlsdXJlKSxifXJldHVybiBpLmFkZFRyYWNlKHouc3Vic2NyaWJlX3BhaXJpbmdfdG9waWNfc3VjY2VzcykseX0sdGhpcy5hY3RpdmF0ZT1hc3luYyh7dG9waWM6c30pPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0IGk9WChzZSk7dGhpcy5jb3JlLmV4cGlyZXIuc2V0KHMsaSksYXdhaXQgdGhpcy5wYWlyaW5ncy51cGRhdGUocyx7YWN0aXZlOiEwLGV4cGlyeTppfSl9LHRoaXMucGluZz1hc3luYyBzPT57dGhpcy5pc0luaXRpYWxpemVkKCksYXdhaXQgdGhpcy5pc1ZhbGlkUGluZyhzKTtsZXR7dG9waWM6aX09cztpZih0aGlzLnBhaXJpbmdzLmtleXMuaW5jbHVkZXMoaSkpe2xldCByPWF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoaSwid2NfcGFpcmluZ1BpbmciLHt9KSx7ZG9uZTphLHJlc29sdmU6byxyZWplY3Q6Y309RGkoKTt0aGlzLmV2ZW50cy5vbmNlKGFlKCJwYWlyaW5nX3BpbmciLHIpLCh7ZXJyb3I6aH0pPT57aD9jKGgpOm8oKX0pLGF3YWl0IGEoKX19LHRoaXMudXBkYXRlRXhwaXJ5PWFzeW5jKHt0b3BpYzpzLGV4cGlyeTppfSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSxhd2FpdCB0aGlzLnBhaXJpbmdzLnVwZGF0ZShzLHtleHBpcnk6aX0pfSx0aGlzLnVwZGF0ZU1ldGFkYXRhPWFzeW5jKHt0b3BpYzpzLG1ldGFkYXRhOml9KT0+e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMucGFpcmluZ3MudXBkYXRlKHMse3BlZXJNZXRhZGF0YTppfSl9LHRoaXMuZ2V0UGFpcmluZ3M9KCk9Pih0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLnBhaXJpbmdzLnZhbHVlcyksdGhpcy5kaXNjb25uZWN0PWFzeW5jIHM9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSxhd2FpdCB0aGlzLmlzVmFsaWREaXNjb25uZWN0KHMpO2xldHt0b3BpYzppfT1zO3RoaXMucGFpcmluZ3Mua2V5cy5pbmNsdWRlcyhpKSYmKGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoaSwid2NfcGFpcmluZ0RlbGV0ZSIsSigiVVNFUl9ESVNDT05ORUNURUQiKSksYXdhaXQgdGhpcy5kZWxldGVQYWlyaW5nKGkpKX0sdGhpcy5mb3JtYXRVcmlGcm9tUGFpcmluZz1zPT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0e3RvcGljOmkscmVsYXk6cixleHBpcnk6YSxtZXRob2RzOm99PXMsYz10aGlzLmNvcmUuY3J5cHRvLmtleWNoYWluLmdldChpKTtyZXR1cm4gSmUoe3Byb3RvY29sOnRoaXMuY29yZS5wcm90b2NvbCx2ZXJzaW9uOnRoaXMuY29yZS52ZXJzaW9uLHRvcGljOmksc3ltS2V5OmMscmVsYXk6cixleHBpcnlUaW1lc3RhbXA6YSxtZXRob2RzOm99KX0sdGhpcy5zZW5kUmVxdWVzdD1hc3luYyhzLGkscik9PntsZXQgYT1EdChpLHIpLG89YXdhaXQgdGhpcy5jb3JlLmNyeXB0by5lbmNvZGUocyxhKSxjPWpbaV0ucmVxO3JldHVybiB0aGlzLmNvcmUuaGlzdG9yeS5zZXQocyxhKSx0aGlzLmNvcmUucmVsYXllci5wdWJsaXNoKHMsbyxjKSxhLmlkfSx0aGlzLnNlbmRSZXN1bHQ9YXN5bmMocyxpLHIpPT57bGV0IGE9TnQocyxyKSxvPWF3YWl0IHRoaXMuY29yZS5jcnlwdG8uZW5jb2RlKGksYSksYz1hd2FpdCB0aGlzLmNvcmUuaGlzdG9yeS5nZXQoaSxzKSxoPWpbYy5yZXF1ZXN0Lm1ldGhvZF0ucmVzO2F3YWl0IHRoaXMuY29yZS5yZWxheWVyLnB1Ymxpc2goaSxvLGgpLGF3YWl0IHRoaXMuY29yZS5oaXN0b3J5LnJlc29sdmUoYSl9LHRoaXMuc2VuZEVycm9yPWFzeW5jKHMsaSxyKT0+e2xldCBhPUdpKHMsciksbz1hd2FpdCB0aGlzLmNvcmUuY3J5cHRvLmVuY29kZShpLGEpLGM9YXdhaXQgdGhpcy5jb3JlLmhpc3RvcnkuZ2V0KGkscyksaD1qW2MucmVxdWVzdC5tZXRob2RdP2pbYy5yZXF1ZXN0Lm1ldGhvZF0ucmVzOmoudW5yZWdpc3RlcmVkX21ldGhvZC5yZXM7YXdhaXQgdGhpcy5jb3JlLnJlbGF5ZXIucHVibGlzaChpLG8saCksYXdhaXQgdGhpcy5jb3JlLmhpc3RvcnkucmVzb2x2ZShhKX0sdGhpcy5kZWxldGVQYWlyaW5nPWFzeW5jKHMsaSk9Pnthd2FpdCB0aGlzLmNvcmUucmVsYXllci51bnN1YnNjcmliZShzKSxhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5wYWlyaW5ncy5kZWxldGUocyxKKCJVU0VSX0RJU0NPTk5FQ1RFRCIpKSx0aGlzLmNvcmUuY3J5cHRvLmRlbGV0ZVN5bUtleShzKSxpP1Byb21pc2UucmVzb2x2ZSgpOnRoaXMuY29yZS5leHBpcmVyLmRlbChzKV0pfSx0aGlzLmNsZWFudXA9YXN5bmMoKT0+e2xldCBzPXRoaXMucGFpcmluZ3MuZ2V0QWxsKCkuZmlsdGVyKGk9PldlKGkuZXhwaXJ5KSk7YXdhaXQgUHJvbWlzZS5hbGwocy5tYXAoaT0+dGhpcy5kZWxldGVQYWlyaW5nKGkudG9waWMpKSl9LHRoaXMub25SZWxheUV2ZW50UmVxdWVzdD1zPT57bGV0e3RvcGljOmkscGF5bG9hZDpyfT1zO3N3aXRjaChyLm1ldGhvZCl7Y2FzZSJ3Y19wYWlyaW5nUGluZyI6cmV0dXJuIHRoaXMub25QYWlyaW5nUGluZ1JlcXVlc3QoaSxyKTtjYXNlIndjX3BhaXJpbmdEZWxldGUiOnJldHVybiB0aGlzLm9uUGFpcmluZ0RlbGV0ZVJlcXVlc3QoaSxyKTtkZWZhdWx0OnJldHVybiB0aGlzLm9uVW5rbm93blJwY01ldGhvZFJlcXVlc3QoaSxyKX19LHRoaXMub25SZWxheUV2ZW50UmVzcG9uc2U9YXN5bmMgcz0+e2xldHt0b3BpYzppLHBheWxvYWQ6cn09cyxhPShhd2FpdCB0aGlzLmNvcmUuaGlzdG9yeS5nZXQoaSxyLmlkKSkucmVxdWVzdC5tZXRob2Q7c3dpdGNoKGEpe2Nhc2Uid2NfcGFpcmluZ1BpbmciOnJldHVybiB0aGlzLm9uUGFpcmluZ1BpbmdSZXNwb25zZShpLHIpO2RlZmF1bHQ6cmV0dXJuIHRoaXMub25Vbmtub3duUnBjTWV0aG9kUmVzcG9uc2UoYSl9fSx0aGlzLm9uUGFpcmluZ1BpbmdSZXF1ZXN0PWFzeW5jKHMsaSk9PntsZXR7aWQ6cn09aTt0cnl7dGhpcy5pc1ZhbGlkUGluZyh7dG9waWM6c30pLGF3YWl0IHRoaXMuc2VuZFJlc3VsdChyLHMsITApLHRoaXMuZXZlbnRzLmVtaXQocS5waW5nLHtpZDpyLHRvcGljOnN9KX1jYXRjaChhKXthd2FpdCB0aGlzLnNlbmRFcnJvcihyLHMsYSksdGhpcy5sb2dnZXIuZXJyb3IoYSl9fSx0aGlzLm9uUGFpcmluZ1BpbmdSZXNwb25zZT0ocyxpKT0+e2xldHtpZDpyfT1pO3NldFRpbWVvdXQoKCk9PntIaShpKT90aGlzLmV2ZW50cy5lbWl0KGFlKCJwYWlyaW5nX3BpbmciLHIpLHt9KTp6dChpKSYmdGhpcy5ldmVudHMuZW1pdChhZSgicGFpcmluZ19waW5nIixyKSx7ZXJyb3I6aS5lcnJvcn0pfSw1MDApfSx0aGlzLm9uUGFpcmluZ0RlbGV0ZVJlcXVlc3Q9YXN5bmMocyxpKT0+e2xldHtpZDpyfT1pO3RyeXt0aGlzLmlzVmFsaWREaXNjb25uZWN0KHt0b3BpYzpzfSksYXdhaXQgdGhpcy5kZWxldGVQYWlyaW5nKHMpLHRoaXMuZXZlbnRzLmVtaXQocS5kZWxldGUse2lkOnIsdG9waWM6c30pfWNhdGNoKGEpe2F3YWl0IHRoaXMuc2VuZEVycm9yKHIscyxhKSx0aGlzLmxvZ2dlci5lcnJvcihhKX19LHRoaXMub25Vbmtub3duUnBjTWV0aG9kUmVxdWVzdD1hc3luYyhzLGkpPT57bGV0e2lkOnIsbWV0aG9kOmF9PWk7dHJ5e2lmKHRoaXMucmVnaXN0ZXJlZE1ldGhvZHMuaW5jbHVkZXMoYSkpcmV0dXJuO2xldCBvPUooIldDX01FVEhPRF9VTlNVUFBPUlRFRCIsYSk7YXdhaXQgdGhpcy5zZW5kRXJyb3IocixzLG8pLHRoaXMubG9nZ2VyLmVycm9yKG8pfWNhdGNoKG8pe2F3YWl0IHRoaXMuc2VuZEVycm9yKHIscyxvKSx0aGlzLmxvZ2dlci5lcnJvcihvKX19LHRoaXMub25Vbmtub3duUnBjTWV0aG9kUmVzcG9uc2U9cz0+e3RoaXMucmVnaXN0ZXJlZE1ldGhvZHMuaW5jbHVkZXMocyl8fHRoaXMubG9nZ2VyLmVycm9yKEooIldDX01FVEhPRF9VTlNVUFBPUlRFRCIscykpfSx0aGlzLmlzVmFsaWRQYWlyPShzLGkpPT57dmFyIHI7aWYoIW5lKHMpKXtsZXR7bWVzc2FnZTpvfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBwYWlyKCkgcGFyYW1zOiAke3N9YCk7dGhyb3cgaS5zZXRFcnJvcihVLm1hbGZvcm1lZF9wYWlyaW5nX3VyaSksbmV3IEVycm9yKG8pfWlmKCF6aShzLnVyaSkpe2xldHttZXNzYWdlOm99PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHBhaXIoKSB1cmk6ICR7cy51cml9YCk7dGhyb3cgaS5zZXRFcnJvcihVLm1hbGZvcm1lZF9wYWlyaW5nX3VyaSksbmV3IEVycm9yKG8pfWxldCBhPVhlKHM/LnVyaSk7aWYoISgocj1hPy5yZWxheSkhPW51bGwmJnIucHJvdG9jb2wpKXtsZXR7bWVzc2FnZTpvfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLCJwYWlyKCkgdXJpI3JlbGF5LXByb3RvY29sIik7dGhyb3cgaS5zZXRFcnJvcihVLm1hbGZvcm1lZF9wYWlyaW5nX3VyaSksbmV3IEVycm9yKG8pfWlmKCEoYSE9bnVsbCYmYS5zeW1LZXkpKXtsZXR7bWVzc2FnZTpvfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLCJwYWlyKCkgdXJpI3N5bUtleSIpO3Rocm93IGkuc2V0RXJyb3IoVS5tYWxmb3JtZWRfcGFpcmluZ191cmkpLG5ldyBFcnJvcihvKX1pZihhIT1udWxsJiZhLmV4cGlyeVRpbWVzdGFtcCYmRShhPy5leHBpcnlUaW1lc3RhbXApPERhdGUubm93KCkpe2kuc2V0RXJyb3IoVS5wYWlyaW5nX2V4cGlyZWQpO2xldHttZXNzYWdlOm99PWQoIkVYUElSRUQiLCJwYWlyKCkgVVJJIGhhcyBleHBpcmVkLiBQbGVhc2UgdHJ5IGFnYWluIHdpdGggYSBuZXcgY29ubmVjdGlvbiBVUkkuIik7dGhyb3cgbmV3IEVycm9yKG8pfX0sdGhpcy5pc1ZhbGlkUGluZz1hc3luYyBzPT57aWYoIW5lKHMpKXtsZXR7bWVzc2FnZTpyfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBwaW5nKCkgcGFyYW1zOiAke3N9YCk7dGhyb3cgbmV3IEVycm9yKHIpfWxldHt0b3BpYzppfT1zO2F3YWl0IHRoaXMuaXNWYWxpZFBhaXJpbmdUb3BpYyhpKX0sdGhpcy5pc1ZhbGlkRGlzY29ubmVjdD1hc3luYyBzPT57aWYoIW5lKHMpKXtsZXR7bWVzc2FnZTpyfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBkaXNjb25uZWN0KCkgcGFyYW1zOiAke3N9YCk7dGhyb3cgbmV3IEVycm9yKHIpfWxldHt0b3BpYzppfT1zO2F3YWl0IHRoaXMuaXNWYWxpZFBhaXJpbmdUb3BpYyhpKX0sdGhpcy5pc1ZhbGlkUGFpcmluZ1RvcGljPWFzeW5jIHM9PntpZighTGkocywhMSkpe2xldHttZXNzYWdlOml9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHBhaXJpbmcgdG9waWMgc2hvdWxkIGJlIGEgc3RyaW5nOiAke3N9YCk7dGhyb3cgbmV3IEVycm9yKGkpfWlmKCF0aGlzLnBhaXJpbmdzLmtleXMuaW5jbHVkZXMocykpe2xldHttZXNzYWdlOml9PWQoIk5PX01BVENISU5HX0tFWSIsYHBhaXJpbmcgdG9waWMgZG9lc24ndCBleGlzdDogJHtzfWApO3Rocm93IG5ldyBFcnJvcihpKX1pZihXZSh0aGlzLnBhaXJpbmdzLmdldChzKS5leHBpcnkpKXthd2FpdCB0aGlzLmRlbGV0ZVBhaXJpbmcocyk7bGV0e21lc3NhZ2U6aX09ZCgiRVhQSVJFRCIsYHBhaXJpbmcgdG9waWM6ICR7c31gKTt0aHJvdyBuZXcgRXJyb3IoaSl9fSx0aGlzLmNvcmU9ZSx0aGlzLmxvZ2dlcj1UKHQsdGhpcy5uYW1lKSx0aGlzLnBhaXJpbmdzPW5ldyBBZSh0aGlzLmNvcmUsdGhpcy5sb2dnZXIsdGhpcy5uYW1lLHRoaXMuc3RvcmFnZVByZWZpeCl9Z2V0IGNvbnRleHQoKXtyZXR1cm4gUih0aGlzLmxvZ2dlcil9aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX1yZWdpc3RlclJlbGF5ZXJFdmVudHMoKXt0aGlzLmNvcmUucmVsYXllci5vbih2Lm1lc3NhZ2UsYXN5bmMgZT0+e2xldHt0b3BpYzp0LG1lc3NhZ2U6cyx0cmFuc3BvcnRUeXBlOml9PWU7aWYoIXRoaXMucGFpcmluZ3Mua2V5cy5pbmNsdWRlcyh0KXx8aT09PUIubGlua19tb2RlfHx0aGlzLmlnbm9yZWRQYXlsb2FkVHlwZXMuaW5jbHVkZXModGhpcy5jb3JlLmNyeXB0by5nZXRQYXlsb2FkVHlwZShzKSkpcmV0dXJuO2xldCByPWF3YWl0IHRoaXMuY29yZS5jcnlwdG8uZGVjb2RlKHQscyk7dHJ5e090KHIpPyh0aGlzLmNvcmUuaGlzdG9yeS5zZXQodCxyKSx0aGlzLm9uUmVsYXlFdmVudFJlcXVlc3Qoe3RvcGljOnQscGF5bG9hZDpyfSkpOkN0KHIpJiYoYXdhaXQgdGhpcy5jb3JlLmhpc3RvcnkucmVzb2x2ZShyKSxhd2FpdCB0aGlzLm9uUmVsYXlFdmVudFJlc3BvbnNlKHt0b3BpYzp0LHBheWxvYWQ6cn0pLHRoaXMuY29yZS5oaXN0b3J5LmRlbGV0ZSh0LHIuaWQpKX1jYXRjaChhKXt0aGlzLmxvZ2dlci5lcnJvcihhKX19KX1yZWdpc3RlckV4cGlyZXJFdmVudHMoKXt0aGlzLmNvcmUuZXhwaXJlci5vbihPLmV4cGlyZWQsYXN5bmMgZT0+e2xldHt0b3BpYzp0fT1VaShlLnRhcmdldCk7dCYmdGhpcy5wYWlyaW5ncy5rZXlzLmluY2x1ZGVzKHQpJiYoYXdhaXQgdGhpcy5kZWxldGVQYWlyaW5nKHQsITApLHRoaXMuZXZlbnRzLmVtaXQocS5leHBpcmUse3RvcGljOnR9KSl9KX19LENlPWNsYXNzIGV4dGVuZHMgbml7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuY29yZT1lLHRoaXMubG9nZ2VyPXQsdGhpcy5yZWNvcmRzPW5ldyBNYXAsdGhpcy5ldmVudHM9bmV3IFYsdGhpcy5uYW1lPV9zLHRoaXMudmVyc2lvbj1mcyx0aGlzLmNhY2hlZD1bXSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuc3RvcmFnZVByZWZpeD1OLHRoaXMuaW5pdD1hc3luYygpPT57dGhpcy5pbml0aWFsaXplZHx8KHRoaXMubG9nZ2VyLnRyYWNlKCJJbml0aWFsaXplZCIpLGF3YWl0IHRoaXMucmVzdG9yZSgpLHRoaXMuY2FjaGVkLmZvckVhY2gocz0+dGhpcy5yZWNvcmRzLnNldChzLmlkLHMpKSx0aGlzLmNhY2hlZD1bXSx0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLmluaXRpYWxpemVkPSEwKX0sdGhpcy5zZXQ9KHMsaSxyKT0+e2lmKHRoaXMuaXNJbml0aWFsaXplZCgpLHRoaXMubG9nZ2VyLmRlYnVnKCJTZXR0aW5nIEpTT04tUlBDIHJlcXVlc3QgaGlzdG9yeSByZWNvcmQiKSx0aGlzLmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6InNldCIsdG9waWM6cyxyZXF1ZXN0OmksY2hhaW5JZDpyfSksdGhpcy5yZWNvcmRzLmhhcyhpLmlkKSlyZXR1cm47bGV0IGE9e2lkOmkuaWQsdG9waWM6cyxyZXF1ZXN0OnttZXRob2Q6aS5tZXRob2QscGFyYW1zOmkucGFyYW1zfHxudWxsfSxjaGFpbklkOnIsZXhwaXJ5Olgoc2UpfTt0aGlzLnJlY29yZHMuc2V0KGEuaWQsYSksdGhpcy5wZXJzaXN0KCksdGhpcy5ldmVudHMuZW1pdChBLmNyZWF0ZWQsYSl9LHRoaXMucmVzb2x2ZT1hc3luYyBzPT57aWYodGhpcy5pc0luaXRpYWxpemVkKCksdGhpcy5sb2dnZXIuZGVidWcoIlVwZGF0aW5nIEpTT04tUlBDIHJlc3BvbnNlIGhpc3RvcnkgcmVjb3JkIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJ1cGRhdGUiLHJlc3BvbnNlOnN9KSwhdGhpcy5yZWNvcmRzLmhhcyhzLmlkKSlyZXR1cm47bGV0IGk9YXdhaXQgdGhpcy5nZXRSZWNvcmQocy5pZCk7dHlwZW9mIGkucmVzcG9uc2U+InUiJiYoaS5yZXNwb25zZT16dChzKT97ZXJyb3I6cy5lcnJvcn06e3Jlc3VsdDpzLnJlc3VsdH0sdGhpcy5yZWNvcmRzLnNldChpLmlkLGkpLHRoaXMucGVyc2lzdCgpLHRoaXMuZXZlbnRzLmVtaXQoQS51cGRhdGVkLGkpKX0sdGhpcy5nZXQ9YXN5bmMocyxpKT0+KHRoaXMuaXNJbml0aWFsaXplZCgpLHRoaXMubG9nZ2VyLmRlYnVnKCJHZXR0aW5nIHJlY29yZCIpLHRoaXMubG9nZ2VyLnRyYWNlKHt0eXBlOiJtZXRob2QiLG1ldGhvZDoiZ2V0Iix0b3BpYzpzLGlkOml9KSxhd2FpdCB0aGlzLmdldFJlY29yZChpKSksdGhpcy5kZWxldGU9KHMsaSk9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLmxvZ2dlci5kZWJ1ZygiRGVsZXRpbmcgcmVjb3JkIiksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJkZWxldGUiLGlkOml9KSx0aGlzLnZhbHVlcy5mb3JFYWNoKHI9PntpZihyLnRvcGljPT09cyl7aWYodHlwZW9mIGk8InUiJiZyLmlkIT09aSlyZXR1cm47dGhpcy5yZWNvcmRzLmRlbGV0ZShyLmlkKSx0aGlzLmV2ZW50cy5lbWl0KEEuZGVsZXRlZCxyKX19KSx0aGlzLnBlcnNpc3QoKX0sdGhpcy5leGlzdHM9YXN5bmMocyxpKT0+KHRoaXMuaXNJbml0aWFsaXplZCgpLHRoaXMucmVjb3Jkcy5oYXMoaSk/KGF3YWl0IHRoaXMuZ2V0UmVjb3JkKGkpKS50b3BpYz09PXM6ITEpLHRoaXMub249KHMsaSk9Pnt0aGlzLmV2ZW50cy5vbihzLGkpfSx0aGlzLm9uY2U9KHMsaSk9Pnt0aGlzLmV2ZW50cy5vbmNlKHMsaSl9LHRoaXMub2ZmPShzLGkpPT57dGhpcy5ldmVudHMub2ZmKHMsaSl9LHRoaXMucmVtb3ZlTGlzdGVuZXI9KHMsaSk9Pnt0aGlzLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihzLGkpfSx0aGlzLmxvZ2dlcj1UKHQsdGhpcy5uYW1lKX1nZXQgY29udGV4dCgpe3JldHVybiBSKHRoaXMubG9nZ2VyKX1nZXQgc3RvcmFnZUtleSgpe3JldHVybiB0aGlzLnN0b3JhZ2VQcmVmaXgrdGhpcy52ZXJzaW9uK3RoaXMuY29yZS5jdXN0b21TdG9yYWdlUHJlZml4KyIvLyIrdGhpcy5uYW1lfWdldCBzaXplKCl7cmV0dXJuIHRoaXMucmVjb3Jkcy5zaXplfWdldCBrZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5yZWNvcmRzLmtleXMoKSl9Z2V0IHZhbHVlcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMucmVjb3Jkcy52YWx1ZXMoKSl9Z2V0IHBlbmRpbmcoKXtsZXQgZT1bXTtyZXR1cm4gdGhpcy52YWx1ZXMuZm9yRWFjaCh0PT57aWYodHlwZW9mIHQucmVzcG9uc2U8InUiKXJldHVybjtsZXQgcz17dG9waWM6dC50b3BpYyxyZXF1ZXN0OkR0KHQucmVxdWVzdC5tZXRob2QsdC5yZXF1ZXN0LnBhcmFtcyx0LmlkKSxjaGFpbklkOnQuY2hhaW5JZH07cmV0dXJuIGUucHVzaChzKX0pLGV9YXN5bmMgc2V0SnNvblJwY1JlY29yZHMoZSl7YXdhaXQgdGhpcy5jb3JlLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksZSl9YXN5bmMgZ2V0SnNvblJwY1JlY29yZHMoKXtyZXR1cm4gYXdhaXQgdGhpcy5jb3JlLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpfWdldFJlY29yZChlKXt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgdD10aGlzLnJlY29yZHMuZ2V0KGUpO2lmKCF0KXtsZXR7bWVzc2FnZTpzfT1kKCJOT19NQVRDSElOR19LRVkiLGAke3RoaXMubmFtZX06ICR7ZX1gKTt0aHJvdyBuZXcgRXJyb3Iocyl9cmV0dXJuIHR9YXN5bmMgcGVyc2lzdCgpe2F3YWl0IHRoaXMuc2V0SnNvblJwY1JlY29yZHModGhpcy52YWx1ZXMpLHRoaXMuZXZlbnRzLmVtaXQoQS5zeW5jKX1hc3luYyByZXN0b3JlKCl7dHJ5e2xldCBlPWF3YWl0IHRoaXMuZ2V0SnNvblJwY1JlY29yZHMoKTtpZih0eXBlb2YgZT4idSJ8fCFlLmxlbmd0aClyZXR1cm47aWYodGhpcy5yZWNvcmRzLnNpemUpe2xldHttZXNzYWdlOnR9PWQoIlJFU1RPUkVfV0lMTF9PVkVSUklERSIsdGhpcy5uYW1lKTt0aHJvdyB0aGlzLmxvZ2dlci5lcnJvcih0KSxuZXcgRXJyb3IodCl9dGhpcy5jYWNoZWQ9ZSx0aGlzLmxvZ2dlci5kZWJ1ZyhgU3VjY2Vzc2Z1bGx5IFJlc3RvcmVkIHJlY29yZHMgZm9yICR7dGhpcy5uYW1lfWApLHRoaXMubG9nZ2VyLnRyYWNlKHt0eXBlOiJtZXRob2QiLG1ldGhvZDoicmVzdG9yZSIscmVjb3Jkczp0aGlzLnZhbHVlc30pfWNhdGNoKGUpe3RoaXMubG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gUmVzdG9yZSByZWNvcmRzIGZvciAke3RoaXMubmFtZX1gKSx0aGlzLmxvZ2dlci5lcnJvcihlKX19cmVnaXN0ZXJFdmVudExpc3RlbmVycygpe3RoaXMuZXZlbnRzLm9uKEEuY3JlYXRlZCxlPT57bGV0IHQ9QS5jcmVhdGVkO3RoaXMubG9nZ2VyLmluZm8oYEVtaXR0aW5nICR7dH1gKSx0aGlzLmxvZ2dlci5kZWJ1Zyh7dHlwZToiZXZlbnQiLGV2ZW50OnQscmVjb3JkOmV9KX0pLHRoaXMuZXZlbnRzLm9uKEEudXBkYXRlZCxlPT57bGV0IHQ9QS51cGRhdGVkO3RoaXMubG9nZ2VyLmluZm8oYEVtaXR0aW5nICR7dH1gKSx0aGlzLmxvZ2dlci5kZWJ1Zyh7dHlwZToiZXZlbnQiLGV2ZW50OnQscmVjb3JkOmV9KX0pLHRoaXMuZXZlbnRzLm9uKEEuZGVsZXRlZCxlPT57bGV0IHQ9QS5kZWxldGVkO3RoaXMubG9nZ2VyLmluZm8oYEVtaXR0aW5nICR7dH1gKSx0aGlzLmxvZ2dlci5kZWJ1Zyh7dHlwZToiZXZlbnQiLGV2ZW50OnQscmVjb3JkOmV9KX0pLHRoaXMuY29yZS5oZWFydGJlYXQub24oVy5wdWxzZSwoKT0+e3RoaXMuY2xlYW51cCgpfSl9Y2xlYW51cCgpe3RyeXt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgZT0hMTt0aGlzLnJlY29yZHMuZm9yRWFjaCh0PT57RSh0LmV4cGlyeXx8MCktRGF0ZS5ub3coKTw9MCYmKHRoaXMubG9nZ2VyLmluZm8oYERlbGV0aW5nIGV4cGlyZWQgaGlzdG9yeSBsb2c6ICR7dC5pZH1gKSx0aGlzLnJlY29yZHMuZGVsZXRlKHQuaWQpLHRoaXMuZXZlbnRzLmVtaXQoQS5kZWxldGVkLHQsITEpLGU9ITApfSksZSYmdGhpcy5wZXJzaXN0KCl9Y2F0Y2goZSl7dGhpcy5sb2dnZXIud2FybihlKX19aXNJbml0aWFsaXplZCgpe2lmKCF0aGlzLmluaXRpYWxpemVkKXtsZXR7bWVzc2FnZTplfT1kKCJOT1RfSU5JVElBTElaRUQiLHRoaXMubmFtZSk7dGhyb3cgbmV3IEVycm9yKGUpfX19LE5lPWNsYXNzIGV4dGVuZHMgb2l7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQpLHRoaXMuY29yZT1lLHRoaXMubG9nZ2VyPXQsdGhpcy5leHBpcmF0aW9ucz1uZXcgTWFwLHRoaXMuZXZlbnRzPW5ldyBWLHRoaXMubmFtZT13cyx0aGlzLnZlcnNpb249dnMsdGhpcy5jYWNoZWQ9W10sdGhpcy5pbml0aWFsaXplZD0hMSx0aGlzLnN0b3JhZ2VQcmVmaXg9Tix0aGlzLmluaXQ9YXN5bmMoKT0+e3RoaXMuaW5pdGlhbGl6ZWR8fCh0aGlzLmxvZ2dlci50cmFjZSgiSW5pdGlhbGl6ZWQiKSxhd2FpdCB0aGlzLnJlc3RvcmUoKSx0aGlzLmNhY2hlZC5mb3JFYWNoKHM9PnRoaXMuZXhwaXJhdGlvbnMuc2V0KHMudGFyZ2V0LHMpKSx0aGlzLmNhY2hlZD1bXSx0aGlzLnJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLmluaXRpYWxpemVkPSEwKX0sdGhpcy5oYXM9cz0+e3RyeXtsZXQgaT10aGlzLmZvcm1hdFRhcmdldChzKTtyZXR1cm4gdHlwZW9mIHRoaXMuZ2V0RXhwaXJhdGlvbihpKTwidSJ9Y2F0Y2h7cmV0dXJuITF9fSx0aGlzLnNldD0ocyxpKT0+e3RoaXMuaXNJbml0aWFsaXplZCgpO2xldCByPXRoaXMuZm9ybWF0VGFyZ2V0KHMpLGE9e3RhcmdldDpyLGV4cGlyeTppfTt0aGlzLmV4cGlyYXRpb25zLnNldChyLGEpLHRoaXMuY2hlY2tFeHBpcnkocixhKSx0aGlzLmV2ZW50cy5lbWl0KE8uY3JlYXRlZCx7dGFyZ2V0OnIsZXhwaXJhdGlvbjphfSl9LHRoaXMuZ2V0PXM9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTtsZXQgaT10aGlzLmZvcm1hdFRhcmdldChzKTtyZXR1cm4gdGhpcy5nZXRFeHBpcmF0aW9uKGkpfSx0aGlzLmRlbD1zPT57aWYodGhpcy5pc0luaXRpYWxpemVkKCksdGhpcy5oYXMocykpe2xldCBpPXRoaXMuZm9ybWF0VGFyZ2V0KHMpLHI9dGhpcy5nZXRFeHBpcmF0aW9uKGkpO3RoaXMuZXhwaXJhdGlvbnMuZGVsZXRlKGkpLHRoaXMuZXZlbnRzLmVtaXQoTy5kZWxldGVkLHt0YXJnZXQ6aSxleHBpcmF0aW9uOnJ9KX19LHRoaXMub249KHMsaSk9Pnt0aGlzLmV2ZW50cy5vbihzLGkpfSx0aGlzLm9uY2U9KHMsaSk9Pnt0aGlzLmV2ZW50cy5vbmNlKHMsaSl9LHRoaXMub2ZmPShzLGkpPT57dGhpcy5ldmVudHMub2ZmKHMsaSl9LHRoaXMucmVtb3ZlTGlzdGVuZXI9KHMsaSk9Pnt0aGlzLmV2ZW50cy5yZW1vdmVMaXN0ZW5lcihzLGkpfSx0aGlzLmxvZ2dlcj1UKHQsdGhpcy5uYW1lKX1nZXQgY29udGV4dCgpe3JldHVybiBSKHRoaXMubG9nZ2VyKX1nZXQgc3RvcmFnZUtleSgpe3JldHVybiB0aGlzLnN0b3JhZ2VQcmVmaXgrdGhpcy52ZXJzaW9uK3RoaXMuY29yZS5jdXN0b21TdG9yYWdlUHJlZml4KyIvLyIrdGhpcy5uYW1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5leHBpcmF0aW9ucy5zaXplfWdldCBrZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5leHBpcmF0aW9ucy5rZXlzKCkpfWdldCB2YWx1ZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmV4cGlyYXRpb25zLnZhbHVlcygpKX1mb3JtYXRUYXJnZXQoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBraShlKTtpZih0eXBlb2YgZT09Im51bWJlciIpcmV0dXJuIEtpKGUpO2xldHttZXNzYWdlOnR9PWQoIlVOS05PV05fVFlQRSIsYFRhcmdldCB0eXBlOiAke3R5cGVvZiBlfWApO3Rocm93IG5ldyBFcnJvcih0KX1hc3luYyBzZXRFeHBpcmF0aW9ucyhlKXthd2FpdCB0aGlzLmNvcmUuc3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSxlKX1hc3luYyBnZXRFeHBpcmF0aW9ucygpe3JldHVybiBhd2FpdCB0aGlzLmNvcmUuc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSl9YXN5bmMgcGVyc2lzdCgpe2F3YWl0IHRoaXMuc2V0RXhwaXJhdGlvbnModGhpcy52YWx1ZXMpLHRoaXMuZXZlbnRzLmVtaXQoTy5zeW5jKX1hc3luYyByZXN0b3JlKCl7dHJ5e2xldCBlPWF3YWl0IHRoaXMuZ2V0RXhwaXJhdGlvbnMoKTtpZih0eXBlb2YgZT4idSJ8fCFlLmxlbmd0aClyZXR1cm47aWYodGhpcy5leHBpcmF0aW9ucy5zaXplKXtsZXR7bWVzc2FnZTp0fT1kKCJSRVNUT1JFX1dJTExfT1ZFUlJJREUiLHRoaXMubmFtZSk7dGhyb3cgdGhpcy5sb2dnZXIuZXJyb3IodCksbmV3IEVycm9yKHQpfXRoaXMuY2FjaGVkPWUsdGhpcy5sb2dnZXIuZGVidWcoYFN1Y2Nlc3NmdWxseSBSZXN0b3JlZCBleHBpcmF0aW9ucyBmb3IgJHt0aGlzLm5hbWV9YCksdGhpcy5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJyZXN0b3JlIixleHBpcmF0aW9uczp0aGlzLnZhbHVlc30pfWNhdGNoKGUpe3RoaXMubG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gUmVzdG9yZSBleHBpcmF0aW9ucyBmb3IgJHt0aGlzLm5hbWV9YCksdGhpcy5sb2dnZXIuZXJyb3IoZSl9fWdldEV4cGlyYXRpb24oZSl7bGV0IHQ9dGhpcy5leHBpcmF0aW9ucy5nZXQoZSk7aWYoIXQpe2xldHttZXNzYWdlOnN9PWQoIk5PX01BVENISU5HX0tFWSIsYCR7dGhpcy5uYW1lfTogJHtlfWApO3Rocm93IHRoaXMubG9nZ2VyLndhcm4ocyksbmV3IEVycm9yKHMpfXJldHVybiB0fWNoZWNrRXhwaXJ5KGUsdCl7bGV0e2V4cGlyeTpzfT10O0UocyktRGF0ZS5ub3coKTw9MCYmdGhpcy5leHBpcmUoZSx0KX1leHBpcmUoZSx0KXt0aGlzLmV4cGlyYXRpb25zLmRlbGV0ZShlKSx0aGlzLmV2ZW50cy5lbWl0KE8uZXhwaXJlZCx7dGFyZ2V0OmUsZXhwaXJhdGlvbjp0fSl9Y2hlY2tFeHBpcmF0aW9ucygpe3RoaXMuY29yZS5yZWxheWVyLmNvbm5lY3RlZCYmdGhpcy5leHBpcmF0aW9ucy5mb3JFYWNoKChlLHQpPT50aGlzLmNoZWNrRXhwaXJ5KHQsZSkpfXJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLmNvcmUuaGVhcnRiZWF0Lm9uKFcucHVsc2UsKCk9PnRoaXMuY2hlY2tFeHBpcmF0aW9ucygpKSx0aGlzLmV2ZW50cy5vbihPLmNyZWF0ZWQsZT0+e2xldCB0PU8uY3JlYXRlZDt0aGlzLmxvZ2dlci5pbmZvKGBFbWl0dGluZyAke3R9YCksdGhpcy5sb2dnZXIuZGVidWcoe3R5cGU6ImV2ZW50IixldmVudDp0LGRhdGE6ZX0pLHRoaXMucGVyc2lzdCgpfSksdGhpcy5ldmVudHMub24oTy5leHBpcmVkLGU9PntsZXQgdD1PLmV4cGlyZWQ7dGhpcy5sb2dnZXIuaW5mbyhgRW1pdHRpbmcgJHt0fWApLHRoaXMubG9nZ2VyLmRlYnVnKHt0eXBlOiJldmVudCIsZXZlbnQ6dCxkYXRhOmV9KSx0aGlzLnBlcnNpc3QoKX0pLHRoaXMuZXZlbnRzLm9uKE8uZGVsZXRlZCxlPT57bGV0IHQ9Ty5kZWxldGVkO3RoaXMubG9nZ2VyLmluZm8oYEVtaXR0aW5nICR7dH1gKSx0aGlzLmxvZ2dlci5kZWJ1Zyh7dHlwZToiZXZlbnQiLGV2ZW50OnQsZGF0YTplfSksdGhpcy5wZXJzaXN0KCl9KX1pc0luaXRpYWxpemVkKCl7aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe2xldHttZXNzYWdlOmV9PWQoIk5PVF9JTklUSUFMSVpFRCIsdGhpcy5uYW1lKTt0aHJvdyBuZXcgRXJyb3IoZSl9fX0sRGU9Y2xhc3MgZXh0ZW5kcyBjaXtjb25zdHJ1Y3RvcihlLHQscyl7c3VwZXIoZSx0LHMpLHRoaXMuY29yZT1lLHRoaXMubG9nZ2VyPXQsdGhpcy5zdG9yZT1zLHRoaXMubmFtZT1Fcyx0aGlzLnZlcmlmeVVybFYzPVRzLHRoaXMuc3RvcmFnZVByZWZpeD1OLHRoaXMudmVyc2lvbj1VdCx0aGlzLmluaXQ9YXN5bmMoKT0+e3ZhciBpO3RoaXMuaXNEZXZFbnZ8fCh0aGlzLnB1YmxpY0tleT1hd2FpdCB0aGlzLnN0b3JlLmdldEl0ZW0odGhpcy5zdG9yZUtleSksdGhpcy5wdWJsaWNLZXkmJkUoKGk9dGhpcy5wdWJsaWNLZXkpPT1udWxsP3ZvaWQgMDppLmV4cGlyZXNBdCk8RGF0ZS5ub3coKSYmKHRoaXMubG9nZ2VyLmRlYnVnKCJ2ZXJpZnkgdjIgcHVibGljIGtleSBleHBpcmVkIiksYXdhaXQgdGhpcy5yZW1vdmVQdWJsaWNLZXkoKSkpfSx0aGlzLnJlZ2lzdGVyPWFzeW5jIGk9PntpZighTWkoKXx8dGhpcy5pc0RldkVudilyZXR1cm47bGV0IHI9d2luZG93LmxvY2F0aW9uLm9yaWdpbix7aWQ6YSxkZWNyeXB0ZWRJZDpvfT1pLGM9YCR7dGhpcy52ZXJpZnlVcmxWM30vYXR0ZXN0YXRpb24/cHJvamVjdElkPSR7dGhpcy5jb3JlLnByb2plY3RJZH0mb3JpZ2luPSR7cn0maWQ9JHthfSZkZWNyeXB0ZWRJZD0ke299YDt0cnl7bGV0IGg9WGkoKSxwPXRoaXMuc3RhcnRBYm9ydFRpbWVyKEsqNSksZz1hd2FpdCBuZXcgUHJvbWlzZSgoeSxiKT0+e2xldCBsPSgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGguYm9keS5yZW1vdmVDaGlsZCh1KSxiKCJhdHRlc3RhdGlvbiBhYm9ydGVkIil9O3RoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbCk7bGV0IHU9aC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTt1LnNyYz1jLHUuc3R5bGUuZGlzcGxheT0ibm9uZSIsdS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsbCx7c2lnbmFsOnRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbH0pO2xldCBJPV89PntpZihfLmRhdGEmJnR5cGVvZiBfLmRhdGE9PSJzdHJpbmciKXRyeXtsZXQgbT1KU09OLnBhcnNlKF8uZGF0YSk7aWYobS50eXBlPT09InZlcmlmeV9hdHRlc3RhdGlvbiIpe2lmKCRlKG0uYXR0ZXN0YXRpb24pLnBheWxvYWQuaWQhPT1hKXJldHVybjtjbGVhckludGVydmFsKHApLGguYm9keS5yZW1vdmVDaGlsZCh1KSx0aGlzLmFib3J0Q29udHJvbGxlci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGwpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSx5KG0uYXR0ZXN0YXRpb249PT1udWxsPyIiOm0uYXR0ZXN0YXRpb24pfX1jYXRjaChtKXt0aGlzLmxvZ2dlci53YXJuKG0pfX07aC5ib2R5LmFwcGVuZENoaWxkKHUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJLHtzaWduYWw6dGhpcy5hYm9ydENvbnRyb2xsZXIuc2lnbmFsfSl9KTtyZXR1cm4gdGhpcy5sb2dnZXIuZGVidWcoImp3dCBhdHRlc3RhdGlvbiIsZyksZ31jYXRjaChoKXt0aGlzLmxvZ2dlci53YXJuKGgpfXJldHVybiIifSx0aGlzLnJlc29sdmU9YXN5bmMgaT0+e2lmKHRoaXMuaXNEZXZFbnYpcmV0dXJuIiI7bGV0e2F0dGVzdGF0aW9uSWQ6cixoYXNoOmEsZW5jcnlwdGVkSWQ6b309aTtpZihyPT09IiIpe3RoaXMubG9nZ2VyLmRlYnVnKCJyZXNvbHZlOiBhdHRlc3RhdGlvbklkIGlzIGVtcHR5LCBza2lwcGluZyIpO3JldHVybn1pZihyKXtpZigkZShyKS5wYXlsb2FkLmlkIT09bylyZXR1cm47bGV0IGg9YXdhaXQgdGhpcy5pc1ZhbGlkSnd0QXR0ZXN0YXRpb24ocik7aWYoaCl7aWYoIWguaXNWZXJpZmllZCl7dGhpcy5sb2dnZXIud2FybigicmVzb2x2ZTogand0IGF0dGVzdGF0aW9uOiBvcmlnaW4gdXJsIG5vdCB2ZXJpZmllZCIpO3JldHVybn1yZXR1cm4gaH19aWYoIWEpcmV0dXJuO2xldCBjPXRoaXMuZ2V0VmVyaWZ5VXJsKGk/LnZlcmlmeVVybCk7cmV0dXJuIHRoaXMuZmV0Y2hBdHRlc3RhdGlvbihhLGMpfSx0aGlzLmZldGNoQXR0ZXN0YXRpb249YXN5bmMoaSxyKT0+e3RoaXMubG9nZ2VyLmRlYnVnKGByZXNvbHZpbmcgYXR0ZXN0YXRpb246ICR7aX0gZnJvbSB1cmw6ICR7cn1gKTtsZXQgYT10aGlzLnN0YXJ0QWJvcnRUaW1lcihLKjUpLG89YXdhaXQgZmV0Y2goYCR7cn0vYXR0ZXN0YXRpb24vJHtpfT92MlN1cHBvcnRlZD10cnVlYCx7c2lnbmFsOnRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbH0pO3JldHVybiBjbGVhclRpbWVvdXQoYSksby5zdGF0dXM9PT0yMDA/YXdhaXQgby5qc29uKCk6dm9pZCAwfSx0aGlzLmdldFZlcmlmeVVybD1pPT57bGV0IHI9aXx8ZWU7cmV0dXJuIFBzLmluY2x1ZGVzKHIpfHwodGhpcy5sb2dnZXIuaW5mbyhgdmVyaWZ5IHVybDogJHtyfSwgbm90IGluY2x1ZGVkIGluIHRydXN0ZWQgbGlzdCwgYXNzaWduaW5nIGRlZmF1bHQ6ICR7ZWV9YCkscj1lZSkscn0sdGhpcy5mZXRjaFB1YmxpY0tleT1hc3luYygpPT57dHJ5e3RoaXMubG9nZ2VyLmRlYnVnKGBmZXRjaGluZyBwdWJsaWMga2V5IGZyb206ICR7dGhpcy52ZXJpZnlVcmxWM31gKTtsZXQgaT10aGlzLnN0YXJ0QWJvcnRUaW1lcihrZSkscj1hd2FpdCBmZXRjaChgJHt0aGlzLnZlcmlmeVVybFYzfS9wdWJsaWMta2V5YCx7c2lnbmFsOnRoaXMuYWJvcnRDb250cm9sbGVyLnNpZ25hbH0pO3JldHVybiBjbGVhclRpbWVvdXQoaSksYXdhaXQgci5qc29uKCl9Y2F0Y2goaSl7dGhpcy5sb2dnZXIud2FybihpKX19LHRoaXMucGVyc2lzdFB1YmxpY0tleT1hc3luYyBpPT57dGhpcy5sb2dnZXIuZGVidWcoInBlcnNpc3RpbmcgcHVibGljIGtleSB0byBsb2NhbCBzdG9yYWdlIixpKSxhd2FpdCB0aGlzLnN0b3JlLnNldEl0ZW0odGhpcy5zdG9yZUtleSxpKSx0aGlzLnB1YmxpY0tleT1pfSx0aGlzLnJlbW92ZVB1YmxpY0tleT1hc3luYygpPT57dGhpcy5sb2dnZXIuZGVidWcoInJlbW92aW5nIHZlcmlmeSB2MiBwdWJsaWMga2V5IGZyb20gc3RvcmFnZSIpLGF3YWl0IHRoaXMuc3RvcmUucmVtb3ZlSXRlbSh0aGlzLnN0b3JlS2V5KSx0aGlzLnB1YmxpY0tleT12b2lkIDB9LHRoaXMuaXNWYWxpZEp3dEF0dGVzdGF0aW9uPWFzeW5jIGk9PntsZXQgcj1hd2FpdCB0aGlzLmdldFB1YmxpY0tleSgpO3RyeXtpZihyKXJldHVybiB0aGlzLnZhbGlkYXRlQXR0ZXN0YXRpb24oaSxyKX1jYXRjaChvKXt0aGlzLmxvZ2dlci5lcnJvcihvKSx0aGlzLmxvZ2dlci53YXJuKCJlcnJvciB2YWxpZGF0aW5nIGF0dGVzdGF0aW9uIil9bGV0IGE9YXdhaXQgdGhpcy5mZXRjaEFuZFBlcnNpc3RQdWJsaWNLZXkoKTt0cnl7aWYoYSlyZXR1cm4gdGhpcy52YWxpZGF0ZUF0dGVzdGF0aW9uKGksYSl9Y2F0Y2gobyl7dGhpcy5sb2dnZXIuZXJyb3IobyksdGhpcy5sb2dnZXIud2FybigiZXJyb3IgdmFsaWRhdGluZyBhdHRlc3RhdGlvbiIpfX0sdGhpcy5nZXRQdWJsaWNLZXk9YXN5bmMoKT0+dGhpcy5wdWJsaWNLZXk/dGhpcy5wdWJsaWNLZXk6YXdhaXQgdGhpcy5mZXRjaEFuZFBlcnNpc3RQdWJsaWNLZXkoKSx0aGlzLmZldGNoQW5kUGVyc2lzdFB1YmxpY0tleT1hc3luYygpPT57aWYodGhpcy5mZXRjaFByb21pc2UpcmV0dXJuIGF3YWl0IHRoaXMuZmV0Y2hQcm9taXNlLHRoaXMucHVibGljS2V5O3RoaXMuZmV0Y2hQcm9taXNlPW5ldyBQcm9taXNlKGFzeW5jIHI9PntsZXQgYT1hd2FpdCB0aGlzLmZldGNoUHVibGljS2V5KCk7YSYmKGF3YWl0IHRoaXMucGVyc2lzdFB1YmxpY0tleShhKSxyKGEpKX0pO2xldCBpPWF3YWl0IHRoaXMuZmV0Y2hQcm9taXNlO3JldHVybiB0aGlzLmZldGNoUHJvbWlzZT12b2lkIDAsaX0sdGhpcy52YWxpZGF0ZUF0dGVzdGF0aW9uPShpLHIpPT57bGV0IGE9JGkoaSxyLnB1YmxpY0tleSksbz17aGFzRXhwaXJlZDpFKGEuZXhwKTxEYXRlLm5vdygpLHBheWxvYWQ6YX07aWYoby5oYXNFeHBpcmVkKXRocm93IHRoaXMubG9nZ2VyLndhcm4oInJlc29sdmU6IGp3dCBhdHRlc3RhdGlvbiBleHBpcmVkIiksbmV3IEVycm9yKCJKV1QgYXR0ZXN0YXRpb24gZXhwaXJlZCIpO3JldHVybntvcmlnaW46by5wYXlsb2FkLm9yaWdpbixpc1NjYW06by5wYXlsb2FkLmlzU2NhbSxpc1ZlcmlmaWVkOm8ucGF5bG9hZC5pc1ZlcmlmaWVkfX0sdGhpcy5sb2dnZXI9VCh0LHRoaXMubmFtZSksdGhpcy5hYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcix0aGlzLmlzRGV2RW52PXh0KCksdGhpcy5pbml0KCl9Z2V0IHN0b3JlS2V5KCl7cmV0dXJuIHRoaXMuc3RvcmFnZVByZWZpeCt0aGlzLnZlcnNpb24rdGhpcy5jb3JlLmN1c3RvbVN0b3JhZ2VQcmVmaXgrIi8vdmVyaWZ5OnB1YmxpYzprZXkifWdldCBjb250ZXh0KCl7cmV0dXJuIFIodGhpcy5sb2dnZXIpfXN0YXJ0QWJvcnRUaW1lcihlKXtyZXR1cm4gdGhpcy5hYm9ydENvbnRyb2xsZXI9bmV3IEFib3J0Q29udHJvbGxlcixzZXRUaW1lb3V0KCgpPT50aGlzLmFib3J0Q29udHJvbGxlci5hYm9ydCgpLEUoZSkpfX0semU9Y2xhc3MgZXh0ZW5kcyBoaXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCksdGhpcy5wcm9qZWN0SWQ9ZSx0aGlzLmxvZ2dlcj10LHRoaXMuY29udGV4dD1Gcyx0aGlzLnJlZ2lzdGVyRGV2aWNlVG9rZW49YXN5bmMgcz0+e2xldHtjbGllbnRJZDppLHRva2VuOnIsbm90aWZpY2F0aW9uVHlwZTphLGVuYWJsZUVuY3J5cHRlZDpvPSExfT1zLGM9YCR7U3N9LyR7dGhpcy5wcm9qZWN0SWR9L2NsaWVudHNgO2F3YWl0IGZldGNoKGMse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtjbGllbnRfaWQ6aSx0eXBlOmEsdG9rZW46cixhbHdheXNfcmF3Om99KX0pfSx0aGlzLmxvZ2dlcj1UKHQsdGhpcy5jb250ZXh0KX19LGdhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx3dD1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGRhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksdWE9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx2dD0obixlLHQpPT5lIGluIG4/Z2EobixlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6bltlXT10LEg9KG4sZSk9Pntmb3IodmFyIHQgaW4gZXx8KGU9e30pKWRhLmNhbGwoZSx0KSYmdnQobix0LGVbdF0pO2lmKHd0KWZvcih2YXIgdCBvZiB3dChlKSl1YS5jYWxsKGUsdCkmJnZ0KG4sdCxlW3RdKTtyZXR1cm4gbn0sTGU9Y2xhc3MgZXh0ZW5kcyBsaXtjb25zdHJ1Y3RvcihlLHQscz0hMCl7c3VwZXIoZSx0LHMpLHRoaXMuY29yZT1lLHRoaXMubG9nZ2VyPXQsdGhpcy5jb250ZXh0PXhzLHRoaXMuc3RvcmFnZVByZWZpeD1OLHRoaXMuc3RvcmFnZVZlcnNpb249UnMsdGhpcy5ldmVudHM9bmV3IE1hcCx0aGlzLnNob3VsZFBlcnNpc3Q9ITEsdGhpcy5pbml0PWFzeW5jKCk9PntpZigheHQoKSl0cnl7bGV0IGk9e2V2ZW50SWQ6WmUoKSx0aW1lc3RhbXA6RGF0ZS5ub3coKSxkb21haW46dGhpcy5nZXRBcHBEb21haW4oKSxwcm9wczp7ZXZlbnQ6IklOSVQiLHR5cGU6IiIscHJvcGVydGllczp7Y2xpZW50X2lkOmF3YWl0IHRoaXMuY29yZS5jcnlwdG8uZ2V0Q2xpZW50SWQoKSx1c2VyX2FnZW50OkJpKHRoaXMuY29yZS5yZWxheWVyLnByb3RvY29sLHRoaXMuY29yZS5yZWxheWVyLnZlcnNpb24sdWUpfX19O2F3YWl0IHRoaXMuc2VuZEV2ZW50KFtpXSl9Y2F0Y2goaSl7dGhpcy5sb2dnZXIud2FybihpKX19LHRoaXMuY3JlYXRlRXZlbnQ9aT0+e2xldHtldmVudDpyPSJFUlJPUiIsdHlwZTphPSIiLHByb3BlcnRpZXM6e3RvcGljOm8sdHJhY2U6Y319PWksaD1aZSgpLHA9dGhpcy5jb3JlLnByb2plY3RJZHx8IiIsZz1EYXRlLm5vdygpLHk9SCh7ZXZlbnRJZDpoLHRpbWVzdGFtcDpnLHByb3BzOntldmVudDpyLHR5cGU6YSxwcm9wZXJ0aWVzOnt0b3BpYzpvLHRyYWNlOmN9fSxidW5kbGVJZDpwLGRvbWFpbjp0aGlzLmdldEFwcERvbWFpbigpfSx0aGlzLnNldE1ldGhvZHMoaCkpO3JldHVybiB0aGlzLnRlbGVtZXRyeUVuYWJsZWQmJih0aGlzLmV2ZW50cy5zZXQoaCx5KSx0aGlzLnNob3VsZFBlcnNpc3Q9ITApLHl9LHRoaXMuZ2V0RXZlbnQ9aT0+e2xldHtldmVudElkOnIsdG9waWM6YX09aTtpZihyKXJldHVybiB0aGlzLmV2ZW50cy5nZXQocik7bGV0IG89QXJyYXkuZnJvbSh0aGlzLmV2ZW50cy52YWx1ZXMoKSkuZmluZChjPT5jLnByb3BzLnByb3BlcnRpZXMudG9waWM9PT1hKTtpZihvKXJldHVybiBIKEgoe30sbyksdGhpcy5zZXRNZXRob2RzKG8uZXZlbnRJZCkpfSx0aGlzLmRlbGV0ZUV2ZW50PWk9PntsZXR7ZXZlbnRJZDpyfT1pO3RoaXMuZXZlbnRzLmRlbGV0ZShyKSx0aGlzLnNob3VsZFBlcnNpc3Q9ITB9LHRoaXMuc2V0RXZlbnRMaXN0ZW5lcnM9KCk9Pnt0aGlzLmNvcmUuaGVhcnRiZWF0Lm9uKFcucHVsc2UsYXN5bmMoKT0+e3RoaXMuc2hvdWxkUGVyc2lzdCYmYXdhaXQgdGhpcy5wZXJzaXN0KCksdGhpcy5ldmVudHMuZm9yRWFjaChpPT57S2UoRGF0ZS5ub3coKSktS2UoaS50aW1lc3RhbXApPkFzJiYodGhpcy5ldmVudHMuZGVsZXRlKGkuZXZlbnRJZCksdGhpcy5zaG91bGRQZXJzaXN0PSEwKX0pfSl9LHRoaXMuc2V0TWV0aG9kcz1pPT4oe2FkZFRyYWNlOnI9PnRoaXMuYWRkVHJhY2UoaSxyKSxzZXRFcnJvcjpyPT50aGlzLnNldEVycm9yKGkscil9KSx0aGlzLmFkZFRyYWNlPShpLHIpPT57bGV0IGE9dGhpcy5ldmVudHMuZ2V0KGkpO2EmJihhLnByb3BzLnByb3BlcnRpZXMudHJhY2UucHVzaChyKSx0aGlzLmV2ZW50cy5zZXQoaSxhKSx0aGlzLnNob3VsZFBlcnNpc3Q9ITApfSx0aGlzLnNldEVycm9yPShpLHIpPT57bGV0IGE9dGhpcy5ldmVudHMuZ2V0KGkpO2EmJihhLnByb3BzLnR5cGU9cixhLnRpbWVzdGFtcD1EYXRlLm5vdygpLHRoaXMuZXZlbnRzLnNldChpLGEpLHRoaXMuc2hvdWxkUGVyc2lzdD0hMCl9LHRoaXMucGVyc2lzdD1hc3luYygpPT57YXdhaXQgdGhpcy5jb3JlLnN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksQXJyYXkuZnJvbSh0aGlzLmV2ZW50cy52YWx1ZXMoKSkpLHRoaXMuc2hvdWxkUGVyc2lzdD0hMX0sdGhpcy5yZXN0b3JlPWFzeW5jKCk9Pnt0cnl7bGV0IGk9YXdhaXQgdGhpcy5jb3JlLnN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpfHxbXTtpZighaS5sZW5ndGgpcmV0dXJuO2kuZm9yRWFjaChyPT57dGhpcy5ldmVudHMuc2V0KHIuZXZlbnRJZCxIKEgoe30sciksdGhpcy5zZXRNZXRob2RzKHIuZXZlbnRJZCkpKX0pfWNhdGNoKGkpe3RoaXMubG9nZ2VyLndhcm4oaSl9fSx0aGlzLnN1Ym1pdD1hc3luYygpPT57aWYoIXRoaXMudGVsZW1ldHJ5RW5hYmxlZHx8dGhpcy5ldmVudHMuc2l6ZT09PTApcmV0dXJuO2xldCBpPVtdO2ZvcihsZXRbcixhXW9mIHRoaXMuZXZlbnRzKWEucHJvcHMudHlwZSYmaS5wdXNoKGEpO2lmKGkubGVuZ3RoIT09MCl0cnl7aWYoKGF3YWl0IHRoaXMuc2VuZEV2ZW50KGkpKS5vaylmb3IobGV0IHIgb2YgaSl0aGlzLmV2ZW50cy5kZWxldGUoci5ldmVudElkKSx0aGlzLnNob3VsZFBlcnNpc3Q9ITB9Y2F0Y2gocil7dGhpcy5sb2dnZXIud2FybihyKX19LHRoaXMuc2VuZEV2ZW50PWFzeW5jIGk9PntsZXQgcj10aGlzLmdldEFwcERvbWFpbigpPyIiOiImc3A9ZGVza3RvcCI7cmV0dXJuIGF3YWl0IGZldGNoKGAke09zfT9wcm9qZWN0SWQ9JHt0aGlzLmNvcmUucHJvamVjdElkfSZzdD1ldmVudHNfc2RrJnN2PWpzLSR7dWV9JHtyfWAse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0pfSx0aGlzLmdldEFwcERvbWFpbj0oKT0+VmkoKS51cmwsdGhpcy5sb2dnZXI9VCh0LHRoaXMuY29udGV4dCksdGhpcy50ZWxlbWV0cnlFbmFibGVkPXMscz90aGlzLnJlc3RvcmUoKS50aGVuKGFzeW5jKCk9Pnthd2FpdCB0aGlzLnN1Ym1pdCgpLHRoaXMuc2V0RXZlbnRMaXN0ZW5lcnMoKX0pOnRoaXMucGVyc2lzdCgpfWdldCBzdG9yYWdlS2V5KCl7cmV0dXJuIHRoaXMuc3RvcmFnZVByZWZpeCt0aGlzLnN0b3JhZ2VWZXJzaW9uK3RoaXMuY29yZS5jdXN0b21TdG9yYWdlUHJlZml4KyIvLyIrdGhpcy5jb250ZXh0fX0seWE9T2JqZWN0LmRlZmluZVByb3BlcnR5LEV0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsbWE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxiYT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLEl0PShuLGUsdCk9PmUgaW4gbj95YShuLGUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnR9KTpuW2VdPXQsVHQ9KG4sZSk9Pntmb3IodmFyIHQgaW4gZXx8KGU9e30pKW1hLmNhbGwoZSx0KSYmSXQobix0LGVbdF0pO2lmKEV0KWZvcih2YXIgdCBvZiBFdChlKSliYS5jYWxsKGUsdCkmJkl0KG4sdCxlW3RdKTtyZXR1cm4gbn0sVWU9Y2xhc3MgbiBleHRlbmRzIHBpe2NvbnN0cnVjdG9yKGUpe3ZhciB0O3N1cGVyKGUpLHRoaXMucHJvdG9jb2w9THQsdGhpcy52ZXJzaW9uPVV0LHRoaXMubmFtZT1pZSx0aGlzLmV2ZW50cz1uZXcgVix0aGlzLmluaXRpYWxpemVkPSExLHRoaXMub249KGEsbyk9PnRoaXMuZXZlbnRzLm9uKGEsbyksdGhpcy5vbmNlPShhLG8pPT50aGlzLmV2ZW50cy5vbmNlKGEsbyksdGhpcy5vZmY9KGEsbyk9PnRoaXMuZXZlbnRzLm9mZihhLG8pLHRoaXMucmVtb3ZlTGlzdGVuZXI9KGEsbyk9PnRoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKGEsbyksdGhpcy5kaXNwYXRjaEVudmVsb3BlPSh7dG9waWM6YSxtZXNzYWdlOm8sc2Vzc2lvbkV4aXN0czpjfSk9PntpZighYXx8IW8pcmV0dXJuO2xldCBoPXt0b3BpYzphLG1lc3NhZ2U6byxwdWJsaXNoZWRBdDpEYXRlLm5vdygpLHRyYW5zcG9ydFR5cGU6Qi5saW5rX21vZGV9O3RoaXMucmVsYXllci5vbkxpbmtNZXNzYWdlRXZlbnQoaCx7c2Vzc2lvbkV4aXN0czpjfSl9LHRoaXMucHJvamVjdElkPWU/LnByb2plY3RJZCx0aGlzLnJlbGF5VXJsPWU/LnJlbGF5VXJsfHxrdCx0aGlzLmN1c3RvbVN0b3JhZ2VQcmVmaXg9ZSE9bnVsbCYmZS5jdXN0b21TdG9yYWdlUHJlZml4P2A6JHtlLmN1c3RvbVN0b3JhZ2VQcmVmaXh9YDoiIjtsZXQgcz1QdCh7bGV2ZWw6dHlwZW9mIGU/LmxvZ2dlcj09InN0cmluZyImJmUubG9nZ2VyP2UubG9nZ2VyOldpLmxvZ2dlcixuYW1lOmllfSkse2xvZ2dlcjppLGNodW5rTG9nZ2VyQ29udHJvbGxlcjpyfT1laSh7b3B0czpzLG1heFNpemVJbkJ5dGVzOmU/Lm1heExvZ0Jsb2JTaXplSW5CeXRlcyxsb2dnZXJPdmVycmlkZTplPy5sb2dnZXJ9KTt0aGlzLmxvZ0NodW5rQ29udHJvbGxlcj1yLCh0PXRoaXMubG9nQ2h1bmtDb250cm9sbGVyKSE9bnVsbCYmdC5kb3dubG9hZExvZ3NCbG9iSW5Ccm93c2VyJiYod2luZG93LmRvd25sb2FkTG9nc0Jsb2JJbkJyb3dzZXI9YXN5bmMoKT0+e3ZhciBhLG87KGE9dGhpcy5sb2dDaHVua0NvbnRyb2xsZXIpIT1udWxsJiZhLmRvd25sb2FkTG9nc0Jsb2JJbkJyb3dzZXImJigobz10aGlzLmxvZ0NodW5rQ29udHJvbGxlcik9PW51bGx8fG8uZG93bmxvYWRMb2dzQmxvYkluQnJvd3Nlcih7Y2xpZW50SWQ6YXdhaXQgdGhpcy5jcnlwdG8uZ2V0Q2xpZW50SWQoKX0pKX0pLHRoaXMubG9nZ2VyPVQoaSx0aGlzLm5hbWUpLHRoaXMuaGVhcnRiZWF0PW5ldyBXdCx0aGlzLmNyeXB0bz1uZXcgVGUodGhpcyx0aGlzLmxvZ2dlcixlPy5rZXljaGFpbiksdGhpcy5oaXN0b3J5PW5ldyBDZSh0aGlzLHRoaXMubG9nZ2VyKSx0aGlzLmV4cGlyZXI9bmV3IE5lKHRoaXMsdGhpcy5sb2dnZXIpLHRoaXMuc3RvcmFnZT1lIT1udWxsJiZlLnN0b3JhZ2U/ZS5zdG9yYWdlOm5ldyBadChUdChUdCh7fSxaaSksZT8uc3RvcmFnZU9wdGlvbnMpKSx0aGlzLnJlbGF5ZXI9bmV3IHhlKHtjb3JlOnRoaXMsbG9nZ2VyOnRoaXMubG9nZ2VyLHJlbGF5VXJsOnRoaXMucmVsYXlVcmwscHJvamVjdElkOnRoaXMucHJvamVjdElkfSksdGhpcy5wYWlyaW5nPW5ldyBPZSh0aGlzLHRoaXMubG9nZ2VyKSx0aGlzLnZlcmlmeT1uZXcgRGUodGhpcyx0aGlzLmxvZ2dlcix0aGlzLnN0b3JhZ2UpLHRoaXMuZWNob0NsaWVudD1uZXcgemUodGhpcy5wcm9qZWN0SWR8fCIiLHRoaXMubG9nZ2VyKSx0aGlzLmxpbmtNb2RlU3VwcG9ydGVkQXBwcz1bXSx0aGlzLmV2ZW50Q2xpZW50PW5ldyBMZSh0aGlzLHRoaXMubG9nZ2VyLGU/LnRlbGVtZXRyeUVuYWJsZWQpfXN0YXRpYyBhc3luYyBpbml0KGUpe2xldCB0PW5ldyBuKGUpO2F3YWl0IHQuaW5pdGlhbGl6ZSgpO2xldCBzPWF3YWl0IHQuY3J5cHRvLmdldENsaWVudElkKCk7cmV0dXJuIGF3YWl0IHQuc3RvcmFnZS5zZXRJdGVtKGdzLHMpLHR9Z2V0IGNvbnRleHQoKXtyZXR1cm4gUih0aGlzLmxvZ2dlcil9YXN5bmMgc3RhcnQoKXt0aGlzLmluaXRpYWxpemVkfHxhd2FpdCB0aGlzLmluaXRpYWxpemUoKX1hc3luYyBnZXRMb2dzQmxvYigpe3ZhciBlO3JldHVybihlPXRoaXMubG9nQ2h1bmtDb250cm9sbGVyKT09bnVsbD92b2lkIDA6ZS5sb2dzVG9CbG9iKHtjbGllbnRJZDphd2FpdCB0aGlzLmNyeXB0by5nZXRDbGllbnRJZCgpfSl9YXN5bmMgYWRkTGlua01vZGVTdXBwb3J0ZWRBcHAoZSl7dGhpcy5saW5rTW9kZVN1cHBvcnRlZEFwcHMuaW5jbHVkZXMoZSl8fCh0aGlzLmxpbmtNb2RlU3VwcG9ydGVkQXBwcy5wdXNoKGUpLGF3YWl0IHRoaXMuc3RvcmFnZS5zZXRJdGVtKHR0LHRoaXMubGlua01vZGVTdXBwb3J0ZWRBcHBzKSl9YXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMubG9nZ2VyLnRyYWNlKCJJbml0aWFsaXplZCIpO3RyeXthd2FpdCB0aGlzLmNyeXB0by5pbml0KCksYXdhaXQgdGhpcy5oaXN0b3J5LmluaXQoKSxhd2FpdCB0aGlzLmV4cGlyZXIuaW5pdCgpLGF3YWl0IHRoaXMucmVsYXllci5pbml0KCksYXdhaXQgdGhpcy5oZWFydGJlYXQuaW5pdCgpLGF3YWl0IHRoaXMucGFpcmluZy5pbml0KCksdGhpcy5saW5rTW9kZVN1cHBvcnRlZEFwcHM9YXdhaXQgdGhpcy5zdG9yYWdlLmdldEl0ZW0odHQpfHxbXSx0aGlzLmluaXRpYWxpemVkPSEwLHRoaXMubG9nZ2VyLmluZm8oIkNvcmUgSW5pdGlhbGl6YXRpb24gU3VjY2VzcyIpfWNhdGNoKGUpe3Rocm93IHRoaXMubG9nZ2VyLndhcm4oYENvcmUgSW5pdGlhbGl6YXRpb24gRmFpbHVyZSBhdCBlcG9jaCAke0RhdGUubm93KCl9YCxlKSx0aGlzLmxvZ2dlci5lcnJvcihlLm1lc3NhZ2UpLGV9fX0sVmE9VWU7ZXhwb3J0e2llIGFzIENPUkVfQ09OVEVYVCxXaSBhcyBDT1JFX0RFRkFVTFQsTHQgYXMgQ09SRV9QUk9UT0NPTCxaaSBhcyBDT1JFX1NUT1JBR0VfT1BUSU9OUyxOIGFzIENPUkVfU1RPUkFHRV9QUkVGSVgsVXQgYXMgQ09SRV9WRVJTSU9OLFFlIGFzIENSWVBUT19DTElFTlRfU0VFRCxRaSBhcyBDUllQVE9fQ09OVEVYVCxlcyBhcyBDUllQVE9fSldUX1RUTCxWYSBhcyBDb3JlLFRlIGFzIENyeXB0byxGcyBhcyBFQ0hPX0NPTlRFWFQsU3MgYXMgRUNIT19VUkwsT3MgYXMgRVZFTlRTX0NMSUVOVF9BUElfVVJMLEFzIGFzIEVWRU5UU19TVE9SQUdFX0NMRUFOVVBfSU5URVJWQUwseHMgYXMgRVZFTlRTX1NUT1JBR0VfQ09OVEVYVCxScyBhcyBFVkVOVFNfU1RPUkFHRV9WRVJTSU9OLEJhIGFzIEVWRU5UX0NMSUVOVF9BVVRIRU5USUNBVEVfRVJST1JTLCRhIGFzIEVWRU5UX0NMSUVOVF9BVVRIRU5USUNBVEVfVFJBQ0VTLGthIGFzIEVWRU5UX0NMSUVOVF9DT05URVhULFUgYXMgRVZFTlRfQ0xJRU5UX1BBSVJJTkdfRVJST1JTLHogYXMgRVZFTlRfQ0xJRU5UX1BBSVJJTkdfVFJBQ0VTLE1hIGFzIEVWRU5UX0NMSUVOVF9TRVNTSU9OX0VSUk9SUyxLYSBhcyBFVkVOVF9DTElFTlRfU0VTU0lPTl9UUkFDRVMsd3MgYXMgRVhQSVJFUl9DT05URVhULFVhIGFzIEVYUElSRVJfREVGQVVMVF9UVEwsTyBhcyBFWFBJUkVSX0VWRU5UUyx2cyBhcyBFWFBJUkVSX1NUT1JBR0VfVkVSU0lPTix6ZSBhcyBFY2hvQ2xpZW50LExlIGFzIEV2ZW50Q2xpZW50LE5lIGFzIEV4cGlyZXIsX3MgYXMgSElTVE9SWV9DT05URVhULEEgYXMgSElTVE9SWV9FVkVOVFMsZnMgYXMgSElTVE9SWV9TVE9SQUdFX1ZFUlNJT04sQ2UgYXMgSnNvblJwY0hpc3RvcnksdHMgYXMgS0VZQ0hBSU5fQ09OVEVYVCxpcyBhcyBLRVlDSEFJTl9TVE9SQUdFX1ZFUlNJT04sSWUgYXMgS2V5Q2hhaW4sc3MgYXMgTUVTU0FHRVNfQ09OVEVYVCxycyBhcyBNRVNTQUdFU19TVE9SQUdFX1ZFUlNJT04sUGUgYXMgTWVzc2FnZVRyYWNrZXIsbXMgYXMgUEFJUklOR19DT05URVhULExhIGFzIFBBSVJJTkdfREVGQVVMVF9UVEwscSBhcyBQQUlSSU5HX0VWRU5UUyxqIGFzIFBBSVJJTkdfUlBDX09QVFMsYnMgYXMgUEFJUklOR19TVE9SQUdFX1ZFUlNJT04seXMgYXMgUEVORElOR19TVUJfUkVTT0xVVElPTl9USU1FT1VULGFzIGFzIFBVQkxJU0hFUl9DT05URVhULGV0IGFzIFBVQkxJU0hFUl9ERUZBVUxUX1RUTCxPZSBhcyBQYWlyaW5nLGNzIGFzIFJFTEFZRVJfQ09OVEVYVCxvcyBhcyBSRUxBWUVSX0RFRkFVTFRfTE9HR0VSLG5zIGFzIFJFTEFZRVJfREVGQVVMVF9QUk9UT0NPTCxrdCBhcyBSRUxBWUVSX0RFRkFVTFRfUkVMQVlfVVJMLHYgYXMgUkVMQVlFUl9FVkVOVFMsUyBhcyBSRUxBWUVSX1BST1ZJREVSX0VWRU5UUyxscyBhcyBSRUxBWUVSX1JFQ09OTkVDVF9USU1FT1VULHVlIGFzIFJFTEFZRVJfU0RLX1ZFUlNJT04sTmEgYXMgUkVMQVlFUl9TVE9SQUdFX09QVElPTlMsaHMgYXMgUkVMQVlFUl9TVUJTQ1JJQkVSX1NVRkZJWCxEYSBhcyBSRUxBWUVSX1RSQU5TUE9SVF9DVVRPRkYseGUgYXMgUmVsYXllcixwcyBhcyBTVE9SRV9TVE9SQUdFX1ZFUlNJT04sZHMgYXMgU1VCU0NSSUJFUl9DT05URVhULHphIGFzIFNVQlNDUklCRVJfREVGQVVMVF9UVEwsUCBhcyBTVUJTQ1JJQkVSX0VWRU5UUyx1cyBhcyBTVUJTQ1JJQkVSX1NUT1JBR0VfVkVSU0lPTixBZSBhcyBTdG9yZSxSZSBhcyBTdWJzY3JpYmVyLEIgYXMgVFJBTlNQT1JUX1RZUEVTLFBzIGFzIFRSVVNURURfVkVSSUZZX1VSTFMsRXMgYXMgVkVSSUZZX0NPTlRFWFQsZWUgYXMgVkVSSUZZX1NFUlZFUixUcyBhcyBWRVJJRllfU0VSVkVSX1YzLERlIGFzIFZlcmlmeSxncyBhcyBXQUxMRVRDT05ORUNUX0NMSUVOVF9JRCx0dCBhcyBXQUxMRVRDT05ORUNUX0xJTktfTU9ERV9BUFBTLFVlIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jb3JlLm1qcy5tYXA="}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/window-getters@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.688Z","timestamp":1785138633688,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/window-getters@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/window-metadata@1.0.1/es2022/window-metadata.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/window-getters@1.0.1/es2022/window-getters.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/window-getters@1.0.1/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc8bfc569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":221,"size_decoded":685,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"72ca71bb95584306e884168ccd646422","sha1":"2a797853b78d89650a2a5a653222dabf5543d3ff","sha256":"aed823a7227f38472b4e61581016c995088d39dd7cd57df21886588899a97c8d","sha512":"50d60131fe8df621a287feda48777c6216552115045c2099fb8e2a4e4732ccae89019019ba43398f7eba7930dd537592914ce311053fc7e82577c956e093a27b","ssdeep":"","tlshash":"f0d09eb3c123866512735940176ff36cd2520288eae3005f27b40112f0532c7d4542e6","first_seen":"2025-07-08T23:56:54.821177Z","last_seen":"2026-08-08T17:15:51.468526Z","times_seen":124,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvd2luZG93LWdldHRlcnNAMS4wLjEgKi8KZXhwb3J0ICogZnJvbSAiL0B3YWxsZXRjb25uZWN0L3dpbmRvdy1nZXR0ZXJzQDEuMC4xL2VzMjAyMi93aW5kb3ctZ2V0dGVycy5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0B3YWxsZXRjb25uZWN0L3dpbmRvdy1nZXR0ZXJzQDEuMC4xL2VzMjAyMi93aW5kb3ctZ2V0dGVycy5tanMiOwo="}},"time_used":124,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":124,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/brorand@%5E1.1.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.759Z","timestamp":1785138633759,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /brorand@%5E1.1.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/elliptic@6.6.1/es2022/elliptic.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /brorand@1.1.0/es2022/brorand.mjs\r\nx-typescript-types: https://esm.sh/@types/brorand@~1.0.33/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcd0c1e569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":141,"size_decoded":618,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"9a7aa521799948009e3a5cdff5874159","sha1":"624937b41a0bd96e83c39c563ab4c7b7faa57299","sha256":"16ce96abc5f4f61dacfd51a622c5f439c96c3e3622a6a4e55d798307c4b22c7b","sha512":"f1122843e899a69a508ddf921c7d1c1d5432a440c0c4073a69e2bb54eb9a1d9f795e4b4fa76f8f1922fba4d5401bc41a374592d0e28c41520043ed563687f700","ssdeep":"","tlshash":"48c09215221776ac317269c402eccc3593ba06c8f4cc1cfe306bea0aa04f030aca51fe","first_seen":"2026-01-25T00:27:36.562326Z","last_seen":"2026-07-27T07:51:47.199195Z","times_seen":20,"resource_available":true,"data":"LyogZXNtLnNoIC0gYnJvcmFuZEAxLjEuMCAqLwpleHBvcnQgKiBmcm9tICIvYnJvcmFuZEAxLjEuMC9lczIwMjIvYnJvcmFuZC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL2Jyb3JhbmRAMS4xLjAvZXMyMDIyL2Jyb3JhbmQubWpzIjsK"}},"time_used":126,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":126,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/from-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.027Z","timestamp":1785138634027,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.1/es2022/from-string.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@%5E3.0.0/from-string?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:03:00 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dceac60569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":493,"size_decoded":700,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (351)","md5":"b7588070664f1f416b33bd24f7126bce","sha1":"b60ccfbd4404e3cdf5fac4bb8e14af9fd32c76d6","sha256":"eda5aaaa676b715201821ca73ee1073ab429398de280e8c8d85627510e224314","sha512":"d269415752a6076824cb1fffe5f3874f466bb5212c1d2f6067c43d6d676998fad3f7c8fb9bb04c476e9cb98d5954f44b7d2c4db76733ae73531e216ed0c4f6e7","ssdeep":"","tlshash":"abf09ea786701465179a2cd080d66d9f41e4fb99e6910190de261f2d36d24f4d4b3c39","first_seen":"2025-07-08T23:56:54.728838Z","last_seen":"2026-08-08T17:15:51.836437Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvZnJvbS1zdHJpbmcgKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwppbXBvcnQgdCBmcm9tIi4vZXNtL3NyYy91dGlsL2Jhc2VzLm1qcyI7aW1wb3J0e2FzVWludDhBcnJheSBhcyBlfWZyb20iLi9lc20vc3JjL3V0aWwvYXMtdWludDhhcnJheS5tanMiO2Z1bmN0aW9uIGkobyxyPSJ1dGY4Iil7bGV0IGY9dFtyXTtpZighZil0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGVuY29kaW5nICIke3J9ImApO3JldHVybihyPT09InV0ZjgifHxyPT09InV0Zi04IikmJl9fQnVmZmVyJCE9bnVsbCYmX19CdWZmZXIkLmZyb20hPW51bGw/ZShfX0J1ZmZlciQuZnJvbShvLCJ1dGYtOCIpKTpmLmRlY29kZXIuZGVjb2RlKGAke2YucHJlZml4fSR7b31gKX1leHBvcnR7aSBhcyBmcm9tU3RyaW5nfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZnJvbS1zdHJpbmcubWpzLm1hcA=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/unstorage@1.17.5/es2022/unstorage.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.152Z","timestamp":1785138634152,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /unstorage@1.17.5/es2022/unstorage.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/unstorage@%5E1.9.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 26 Mar 2026 19:35:19 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-cache-status: HIT\r\nage: 16516\r\ncf-ray: a21a0dcf7c75569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":8512,"size_decoded":3626,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (8441)","md5":"8835b4c0dfdcab5a6e689ed96b8ed103","sha1":"a4d1154cf5e9f49365aad79e4d2d1b5b8d7d378c","sha256":"1a35ec8ba12b8ae59bb18bec696df5cb677134f5f9127df6e69b117e8d325f7c","sha512":"ad7712df2dcf80f229a1d4e1e12b351e61cc5c3ae0188e014672dc5512ca6d60f2b4f94678157233b7099bd8ee0a66fc615c42fe3fa837729410d3467c9eb952","ssdeep":"96:my4eh490ElRUesZ41FQls1MsjHoqZSuXKWFFfXoCAljbR1gf0ZOz/rnd78808cTZ:wE0BmDs1tUqZPK1S0ZAjt887crpD","tlshash":"db0262e23b409bb3d9b4115eb1223081737a05a664ffc0249a7bd51dac4c84d97befe2","first_seen":"2026-04-06T13:47:42.71152Z","last_seen":"2026-08-08T17:15:51.677984Z","times_seen":99,"resource_available":true,"data":"LyogZXNtLnNoIC0gdW5zdG9yYWdlQDEuMTcuNSAqLwppbXBvcnQgeSBmcm9tIi9kZXN0ckBeMi4wLjU/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e24gYXMgaCxhIGFzIGQsYiBhcyBsLGYgYXMgeCxjIGFzIFAscyBhcyBqLGQgYXMgSyxlIGFzIEwsaiBhcyBTfWZyb20iLi9kaXN0L3NoYXJlZC91bnN0b3JhZ2UuelZERDJtWm8ubWpzIjtpbXBvcnR7cCBhcyBUfWZyb20iLi9kaXN0L3NoYXJlZC91bnN0b3JhZ2UuelZERDJtWm8ubWpzIjtmdW5jdGlvbiBrKG8pe3JldHVybiBvfXZhciBWPSJtZW1vcnkiLFc9KCk9PntsZXQgbz1uZXcgTWFwO3JldHVybntuYW1lOlYsZ2V0SW5zdGFuY2U6KCk9Pm8saGFzSXRlbShzKXtyZXR1cm4gby5oYXMocyl9LGdldEl0ZW0ocyl7cmV0dXJuIG8uZ2V0KHMpPz9udWxsfSxnZXRJdGVtUmF3KHMpe3JldHVybiBvLmdldChzKT8/bnVsbH0sc2V0SXRlbShzLHUpe28uc2V0KHMsdSl9LHNldEl0ZW1SYXcocyx1KXtvLnNldChzLHUpfSxyZW1vdmVJdGVtKHMpe28uZGVsZXRlKHMpfSxnZXRLZXlzKCl7cmV0dXJuWy4uLm8ua2V5cygpXX0sY2xlYXIoKXtvLmNsZWFyKCl9LGRpc3Bvc2UoKXtvLmNsZWFyKCl9fX07ZnVuY3Rpb24gTyhvPXt9KXtsZXQgcz17bW91bnRzOnsiIjpvLmRyaXZlcnx8VygpfSxtb3VudHBvaW50czpbIiJdLHdhdGNoaW5nOiExLHdhdGNoTGlzdGVuZXJzOltdLHVud2F0Y2g6e319LHU9ZT0+e2ZvcihsZXQgdCBvZiBzLm1vdW50cG9pbnRzKWlmKGUuc3RhcnRzV2l0aCh0KSlyZXR1cm57YmFzZTp0LHJlbGF0aXZlS2V5OmUuc2xpY2UodC5sZW5ndGgpLGRyaXZlcjpzLm1vdW50c1t0XX07cmV0dXJue2Jhc2U6IiIscmVsYXRpdmVLZXk6ZSxkcml2ZXI6cy5tb3VudHNbIiJdfX0sZz0oZSx0KT0+cy5tb3VudHBvaW50cy5maWx0ZXIocj0+ci5zdGFydHNXaXRoKGUpfHx0JiZlLnN0YXJ0c1dpdGgocikpLm1hcChyPT4oe3JlbGF0aXZlQmFzZTplLmxlbmd0aD5yLmxlbmd0aD9lLnNsaWNlKHIubGVuZ3RoKTp2b2lkIDAsbW91bnRwb2ludDpyLGRyaXZlcjpzLm1vdW50c1tyXX0pKSxtPShlLHQpPT57aWYocy53YXRjaGluZyl7dD1kKHQpO2ZvcihsZXQgciBvZiBzLndhdGNoTGlzdGVuZXJzKXIoZSx0KX19LFI9YXN5bmMoKT0+e2lmKCFzLndhdGNoaW5nKXtzLndhdGNoaW5nPSEwO2ZvcihsZXQgZSBpbiBzLm1vdW50cylzLnVud2F0Y2hbZV09YXdhaXQgYihzLm1vdW50c1tlXSxtLGUpfX0sej1hc3luYygpPT57aWYocy53YXRjaGluZyl7Zm9yKGxldCBlIGluIHMudW53YXRjaClhd2FpdCBzLnVud2F0Y2hbZV0oKTtzLnVud2F0Y2g9e30scy53YXRjaGluZz0hMX19LE09KGUsdCxyKT0+e2xldCBhPW5ldyBNYXAsbj1pPT57bGV0IGM9YS5nZXQoaS5iYXNlKTtyZXR1cm4gY3x8KGM9e2RyaXZlcjppLmRyaXZlcixiYXNlOmkuYmFzZSxpdGVtczpbXX0sYS5zZXQoaS5iYXNlLGMpKSxjfTtmb3IobGV0IGkgb2YgZSl7bGV0IGM9dHlwZW9mIGk9PSJzdHJpbmciLHY9ZChjP2k6aS5rZXkpLEk9Yz92b2lkIDA6aS52YWx1ZSxwPWN8fCFpLm9wdGlvbnM/dDp7Li4udCwuLi5pLm9wdGlvbnN9LHc9dSh2KTtuKHcpLml0ZW1zLnB1c2goe2tleTp2LHZhbHVlOkkscmVsYXRpdmVLZXk6dy5yZWxhdGl2ZUtleSxvcHRpb25zOnB9KX1yZXR1cm4gUHJvbWlzZS5hbGwoWy4uLmEudmFsdWVzKCldLm1hcChpPT5yKGkpKSkudGhlbihpPT5pLmZsYXQoKSl9LGY9e2hhc0l0ZW0oZSx0PXt9KXtlPWQoZSk7bGV0e3JlbGF0aXZlS2V5OnIsZHJpdmVyOmF9PXUoZSk7cmV0dXJuIGwoYS5oYXNJdGVtLHIsdCl9LGdldEl0ZW0oZSx0PXt9KXtlPWQoZSk7bGV0e3JlbGF0aXZlS2V5OnIsZHJpdmVyOmF9PXUoZSk7cmV0dXJuIGwoYS5nZXRJdGVtLHIsdCkudGhlbihuPT55KG4pKX0sZ2V0SXRlbXMoZSx0PXt9KXtyZXR1cm4gTShlLHQscj0+ci5kcml2ZXIuZ2V0SXRlbXM/bChyLmRyaXZlci5nZXRJdGVtcyxyLml0ZW1zLm1hcChhPT4oe2tleTphLnJlbGF0aXZlS2V5LG9wdGlvbnM6YS5vcHRpb25zfSkpLHQpLnRoZW4oYT0+YS5tYXAobj0+KHtrZXk6UyhyLmJhc2Usbi5rZXkpLHZhbHVlOnkobi52YWx1ZSl9KSkpOlByb21pc2UuYWxsKHIuaXRlbXMubWFwKGE9Pmwoci5kcml2ZXIuZ2V0SXRlbSxhLnJlbGF0aXZlS2V5LGEub3B0aW9ucykudGhlbihuPT4oe2tleTphLmtleSx2YWx1ZTp5KG4pfSkpKSkpfSxnZXRJdGVtUmF3KGUsdD17fSl7ZT1kKGUpO2xldHtyZWxhdGl2ZUtleTpyLGRyaXZlcjphfT11KGUpO3JldHVybiBhLmdldEl0ZW1SYXc/bChhLmdldEl0ZW1SYXcscix0KTpsKGEuZ2V0SXRlbSxyLHQpLnRoZW4obj0+TChuKSl9LGFzeW5jIHNldEl0ZW0oZSx0LHI9e30pe2lmKHQ9PT12b2lkIDApcmV0dXJuIGYucmVtb3ZlSXRlbShlKTtlPWQoZSk7bGV0e3JlbGF0aXZlS2V5OmEsZHJpdmVyOm59PXUoZSk7bi5zZXRJdGVtJiYoYXdhaXQgbChuLnNldEl0ZW0sYSxLKHQpLHIpLG4ud2F0Y2h8fG0oInVwZGF0ZSIsZSkpfSxhc3luYyBzZXRJdGVtcyhlLHQpe2F3YWl0IE0oZSx0LGFzeW5jIHI9PntpZihyLmRyaXZlci5zZXRJdGVtcylyZXR1cm4gbChyLmRyaXZlci5zZXRJdGVtcyxyLml0ZW1zLm1hcChhPT4oe2tleTphLnJlbGF0aXZlS2V5LHZhbHVlOksoYS52YWx1ZSksb3B0aW9uczphLm9wdGlvbnN9KSksdCk7ci5kcml2ZXIuc2V0SXRlbSYmYXdhaXQgUHJvbWlzZS5hbGwoci5pdGVtcy5tYXAoYT0+bChyLmRyaXZlci5zZXRJdGVtLGEucmVsYXRpdmVLZXksSyhhLnZhbHVlKSxhLm9wdGlvbnMpKSl9KX0sYXN5bmMgc2V0SXRlbVJhdyhlLHQscj17fSl7aWYodD09PXZvaWQgMClyZXR1cm4gZi5yZW1vdmVJdGVtKGUscik7ZT1kKGUpO2xldHtyZWxhdGl2ZUtleTphLGRyaXZlcjpufT11KGUpO2lmKG4uc2V0SXRlbVJhdylhd2FpdCBsKG4uc2V0SXRlbVJhdyxhLHQscik7ZWxzZSBpZihuLnNldEl0ZW0pYXdhaXQgbChuLnNldEl0ZW0sYSxqKHQpLHIpO2Vsc2UgcmV0dXJuO24ud2F0Y2h8fG0oInVwZGF0ZSIsZSl9LGFzeW5jIHJlbW92ZUl0ZW0oZSx0PXt9KXt0eXBlb2YgdD09ImJvb2xlYW4iJiYodD17cmVtb3ZlTWV0YTp0fSksZT1kKGUpO2xldHtyZWxhdGl2ZUtleTpyLGRyaXZlcjphfT11KGUpO2EucmVtb3ZlSXRlbSYmKGF3YWl0IGwoYS5yZW1vdmVJdGVtLHIsdCksKHQucmVtb3ZlTWV0YXx8dC5yZW1vdmVNYXRhKSYmYXdhaXQgbChhLnJlbW92ZUl0ZW0scisiJCIsdCksYS53YXRjaHx8bSgicmVtb3ZlIixlKSl9LGFzeW5jIGdldE1ldGEoZSx0PXt9KXt0eXBlb2YgdD09ImJvb2xlYW4iJiYodD17bmF0aXZlT25seTp0fSksZT1kKGUpO2xldHtyZWxhdGl2ZUtleTpyLGRyaXZlcjphfT11KGUpLG49T2JqZWN0LmNyZWF0ZShudWxsKTtpZihhLmdldE1ldGEmJk9iamVjdC5hc3NpZ24obixhd2FpdCBsKGEuZ2V0TWV0YSxyLHQpKSwhdC5uYXRpdmVPbmx5KXtsZXQgaT1hd2FpdCBsKGEuZ2V0SXRlbSxyKyIkIix0KS50aGVuKGM9PnkoYykpO2kmJnR5cGVvZiBpPT0ib2JqZWN0IiYmKHR5cGVvZiBpLmF0aW1lPT0ic3RyaW5nIiYmKGkuYXRpbWU9bmV3IERhdGUoaS5hdGltZSkpLHR5cGVvZiBpLm10aW1lPT0ic3RyaW5nIiYmKGkubXRpbWU9bmV3IERhdGUoaS5tdGltZSkpLE9iamVjdC5hc3NpZ24obixpKSl9cmV0dXJuIG59LHNldE1ldGEoZSx0LHI9e30pe3JldHVybiB0aGlzLnNldEl0ZW0oZSsiJCIsdCxyKX0scmVtb3ZlTWV0YShlLHQ9e30pe3JldHVybiB0aGlzLnJlbW92ZUl0ZW0oZSsiJCIsdCl9LGFzeW5jIGdldEtleXMoZSx0PXt9KXtlPWgoZSk7bGV0IHI9ZyhlLCEwKSxhPVtdLG49W10saT0hMDtmb3IobGV0IHYgb2Ygcil7di5kcml2ZXIuZmxhZ3M/Lm1heERlcHRofHwoaT0hMSk7bGV0IEk9YXdhaXQgbCh2LmRyaXZlci5nZXRLZXlzLHYucmVsYXRpdmVCYXNlLHQpO2ZvcihsZXQgcCBvZiBJKXtsZXQgdz12Lm1vdW50cG9pbnQrZChwKTthLnNvbWUoRD0+dy5zdGFydHNXaXRoKEQpKXx8bi5wdXNoKHcpfWE9W3YubW91bnRwb2ludCwuLi5hLmZpbHRlcihwPT4hcC5zdGFydHNXaXRoKHYubW91bnRwb2ludCkpXX1sZXQgYz10Lm1heERlcHRoIT09dm9pZCAwJiYhaTtyZXR1cm4gbi5maWx0ZXIodj0+KCFjfHx4KHYsdC5tYXhEZXB0aCkpJiZQKHYsZSkpfSxhc3luYyBjbGVhcihlLHQ9e30pe2U9aChlKSxhd2FpdCBQcm9taXNlLmFsbChnKGUsITEpLm1hcChhc3luYyByPT57aWYoci5kcml2ZXIuY2xlYXIpcmV0dXJuIGwoci5kcml2ZXIuY2xlYXIsci5yZWxhdGl2ZUJhc2UsdCk7aWYoci5kcml2ZXIucmVtb3ZlSXRlbSl7bGV0IGE9YXdhaXQgci5kcml2ZXIuZ2V0S2V5cyhyLnJlbGF0aXZlQmFzZXx8IiIsdCk7cmV0dXJuIFByb21pc2UuYWxsKGEubWFwKG49PnIuZHJpdmVyLnJlbW92ZUl0ZW0obix0KSkpfX0pKX0sYXN5bmMgZGlzcG9zZSgpe2F3YWl0IFByb21pc2UuYWxsKE9iamVjdC52YWx1ZXMocy5tb3VudHMpLm1hcChlPT5CKGUpKSl9LGFzeW5jIHdhdGNoKGUpe3JldHVybiBhd2FpdCBSKCkscy53YXRjaExpc3RlbmVycy5wdXNoKGUpLGFzeW5jKCk9PntzLndhdGNoTGlzdGVuZXJzPXMud2F0Y2hMaXN0ZW5lcnMuZmlsdGVyKHQ9PnQhPT1lKSxzLndhdGNoTGlzdGVuZXJzLmxlbmd0aD09PTAmJmF3YWl0IHooKX19LGFzeW5jIHVud2F0Y2goKXtzLndhdGNoTGlzdGVuZXJzPVtdLGF3YWl0IHooKX0sbW91bnQoZSx0KXtpZihlPWgoZSksZSYmcy5tb3VudHNbZV0pdGhyb3cgbmV3IEVycm9yKGBhbHJlYWR5IG1vdW50ZWQgYXQgJHtlfWApO3JldHVybiBlJiYocy5tb3VudHBvaW50cy5wdXNoKGUpLHMubW91bnRwb2ludHMuc29ydCgocixhKT0+YS5sZW5ndGgtci5sZW5ndGgpKSxzLm1vdW50c1tlXT10LHMud2F0Y2hpbmcmJlByb21pc2UucmVzb2x2ZShiKHQsbSxlKSkudGhlbihyPT57cy51bndhdGNoW2VdPXJ9KS5jYXRjaChjb25zb2xlLmVycm9yKSxmfSxhc3luYyB1bm1vdW50KGUsdD0hMCl7ZT1oKGUpLCEoIWV8fCFzLm1vdW50c1tlXSkmJihzLndhdGNoaW5nJiZlIGluIHMudW53YXRjaCYmKHMudW53YXRjaFtlXT8uKCksZGVsZXRlIHMudW53YXRjaFtlXSksdCYmYXdhaXQgQihzLm1vdW50c1tlXSkscy5tb3VudHBvaW50cz1zLm1vdW50cG9pbnRzLmZpbHRlcihyPT5yIT09ZSksZGVsZXRlIHMubW91bnRzW2VdKX0sZ2V0TW91bnQoZT0iIil7ZT1kKGUpKyI6IjtsZXQgdD11KGUpO3JldHVybntkcml2ZXI6dC5kcml2ZXIsYmFzZTp0LmJhc2V9fSxnZXRNb3VudHMoZT0iIix0PXt9KXtyZXR1cm4gZT1kKGUpLGcoZSx0LnBhcmVudHMpLm1hcChhPT4oe2RyaXZlcjphLmRyaXZlcixiYXNlOmEubW91bnRwb2ludH0pKX0sa2V5czooZSx0PXt9KT0+Zi5nZXRLZXlzKGUsdCksZ2V0OihlLHQ9e30pPT5mLmdldEl0ZW0oZSx0KSxzZXQ6KGUsdCxyPXt9KT0+Zi5zZXRJdGVtKGUsdCxyKSxoYXM6KGUsdD17fSk9PmYuaGFzSXRlbShlLHQpLGRlbDooZSx0PXt9KT0+Zi5yZW1vdmVJdGVtKGUsdCkscmVtb3ZlOihlLHQ9e30pPT5mLnJlbW92ZUl0ZW0oZSx0KX07cmV0dXJuIGZ9YXN5bmMgZnVuY3Rpb24gRShvLHMpe3M9aChzKTtsZXQgdT1hd2FpdCBvLmdldEtleXMocyksZz17fTtyZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwodS5tYXAoYXN5bmMgbT0+e2dbbS5zbGljZShzLmxlbmd0aCldPWF3YWl0IG8uZ2V0SXRlbShtKX0pKSxnfWFzeW5jIGZ1bmN0aW9uIEEobyxzLHU9IiIpe3U9aCh1KSxhd2FpdCBQcm9taXNlLmFsbChPYmplY3QuZW50cmllcyhzKS5tYXAoZz0+by5zZXRJdGVtKHUrZ1swXSxnWzFdKSkpfWZ1bmN0aW9uIGIobyxzLHUpe3JldHVybiBvLndhdGNoP28ud2F0Y2goKGcsbSk9PnMoZyx1K20pKTooKT0+e319YXN5bmMgZnVuY3Rpb24gQihvKXt0eXBlb2Ygby5kaXNwb3NlPT0iZnVuY3Rpb24iJiZhd2FpdCBsKG8uZGlzcG9zZSl9dmFyIE49eyJhenVyZS1hcHAtY29uZmlndXJhdGlvbiI6InVuc3RvcmFnZS9kcml2ZXJzL2F6dXJlLWFwcC1jb25maWd1cmF0aW9uIixhenVyZUFwcENvbmZpZ3VyYXRpb246InVuc3RvcmFnZS9kcml2ZXJzL2F6dXJlLWFwcC1jb25maWd1cmF0aW9uIiwiYXp1cmUtY29zbW9zIjoidW5zdG9yYWdlL2RyaXZlcnMvYXp1cmUtY29zbW9zIixhenVyZUNvc21vczoidW5zdG9yYWdlL2RyaXZlcnMvYXp1cmUtY29zbW9zIiwiYXp1cmUta2V5LXZhdWx0IjoidW5zdG9yYWdlL2RyaXZlcnMvYXp1cmUta2V5LXZhdWx0IixhenVyZUtleVZhdWx0OiJ1bnN0b3JhZ2UvZHJpdmVycy9henVyZS1rZXktdmF1bHQiLCJhenVyZS1zdG9yYWdlLWJsb2IiOiJ1bnN0b3JhZ2UvZHJpdmVycy9henVyZS1zdG9yYWdlLWJsb2IiLGF6dXJlU3RvcmFnZUJsb2I6InVuc3RvcmFnZS9kcml2ZXJzL2F6dXJlLXN0b3JhZ2UtYmxvYiIsImF6dXJlLXN0b3JhZ2UtdGFibGUiOiJ1bnN0b3JhZ2UvZHJpdmVycy9henVyZS1zdG9yYWdlLXRhYmxlIixhenVyZVN0b3JhZ2VUYWJsZToidW5zdG9yYWdlL2RyaXZlcnMvYXp1cmUtc3RvcmFnZS10YWJsZSIsImNhcGFjaXRvci1wcmVmZXJlbmNlcyI6InVuc3RvcmFnZS9kcml2ZXJzL2NhcGFjaXRvci1wcmVmZXJlbmNlcyIsY2FwYWNpdG9yUHJlZmVyZW5jZXM6InVuc3RvcmFnZS9kcml2ZXJzL2NhcGFjaXRvci1wcmVmZXJlbmNlcyIsImNsb3VkZmxhcmUta3YtYmluZGluZyI6InVuc3RvcmFnZS9kcml2ZXJzL2Nsb3VkZmxhcmUta3YtYmluZGluZyIsY2xvdWRmbGFyZUtWQmluZGluZzoidW5zdG9yYWdlL2RyaXZlcnMvY2xvdWRmbGFyZS1rdi1iaW5kaW5nIiwiY2xvdWRmbGFyZS1rdi1odHRwIjoidW5zdG9yYWdlL2RyaXZlcnMvY2xvdWRmbGFyZS1rdi1odHRwIixjbG91ZGZsYXJlS1ZIdHRwOiJ1bnN0b3JhZ2UvZHJpdmVycy9jbG91ZGZsYXJlLWt2LWh0dHAiLCJjbG91ZGZsYXJlLXIyLWJpbmRpbmciOiJ1bnN0b3JhZ2UvZHJpdmVycy9jbG91ZGZsYXJlLXIyLWJpbmRpbmciLGNsb3VkZmxhcmVSMkJpbmRpbmc6InVuc3RvcmFnZS9kcml2ZXJzL2Nsb3VkZmxhcmUtcjItYmluZGluZyIsZGIwOiJ1bnN0b3JhZ2UvZHJpdmVycy9kYjAiLCJkZW5vLWt2LW5vZGUiOiJ1bnN0b3JhZ2UvZHJpdmVycy9kZW5vLWt2LW5vZGUiLGRlbm9LVk5vZGU6InVuc3RvcmFnZS9kcml2ZXJzL2Rlbm8ta3Ytbm9kZSIsImRlbm8ta3YiOiJ1bnN0b3JhZ2UvZHJpdmVycy9kZW5vLWt2IixkZW5vS1Y6InVuc3RvcmFnZS9kcml2ZXJzL2Rlbm8ta3YiLCJmcy1saXRlIjoidW5zdG9yYWdlL2RyaXZlcnMvZnMtbGl0ZSIsZnNMaXRlOiJ1bnN0b3JhZ2UvZHJpdmVycy9mcy1saXRlIixmczoidW5zdG9yYWdlL2RyaXZlcnMvZnMiLGdpdGh1YjoidW5zdG9yYWdlL2RyaXZlcnMvZ2l0aHViIixodHRwOiJ1bnN0b3JhZ2UvZHJpdmVycy9odHRwIixpbmRleGVkYjoidW5zdG9yYWdlL2RyaXZlcnMvaW5kZXhlZGIiLGxvY2Fsc3RvcmFnZToidW5zdG9yYWdlL2RyaXZlcnMvbG9jYWxzdG9yYWdlIiwibHJ1LWNhY2hlIjoidW5zdG9yYWdlL2RyaXZlcnMvbHJ1LWNhY2hlIixscnVDYWNoZToidW5zdG9yYWdlL2RyaXZlcnMvbHJ1LWNhY2hlIixtZW1vcnk6InVuc3RvcmFnZS9kcml2ZXJzL21lbW9yeSIsbW9uZ29kYjoidW5zdG9yYWdlL2RyaXZlcnMvbW9uZ29kYiIsIm5ldGxpZnktYmxvYnMiOiJ1bnN0b3JhZ2UvZHJpdmVycy9uZXRsaWZ5LWJsb2JzIixuZXRsaWZ5QmxvYnM6InVuc3RvcmFnZS9kcml2ZXJzL25ldGxpZnktYmxvYnMiLG51bGw6InVuc3RvcmFnZS9kcml2ZXJzL251bGwiLG92ZXJsYXk6InVuc3RvcmFnZS9kcml2ZXJzL292ZXJsYXkiLHBsYW5ldHNjYWxlOiJ1bnN0b3JhZ2UvZHJpdmVycy9wbGFuZXRzY2FsZSIscmVkaXM6InVuc3RvcmFnZS9kcml2ZXJzL3JlZGlzIixzMzoidW5zdG9yYWdlL2RyaXZlcnMvczMiLCJzZXNzaW9uLXN0b3JhZ2UiOiJ1bnN0b3JhZ2UvZHJpdmVycy9zZXNzaW9uLXN0b3JhZ2UiLHNlc3Npb25TdG9yYWdlOiJ1bnN0b3JhZ2UvZHJpdmVycy9zZXNzaW9uLXN0b3JhZ2UiLHVwbG9hZHRoaW5nOiJ1bnN0b3JhZ2UvZHJpdmVycy91cGxvYWR0aGluZyIsdXBzdGFzaDoidW5zdG9yYWdlL2RyaXZlcnMvdXBzdGFzaCIsInZlcmNlbC1ibG9iIjoidW5zdG9yYWdlL2RyaXZlcnMvdmVyY2VsLWJsb2IiLHZlcmNlbEJsb2I6InVuc3RvcmFnZS9kcml2ZXJzL3ZlcmNlbC1ibG9iIiwidmVyY2VsLWt2IjoidW5zdG9yYWdlL2RyaXZlcnMvdmVyY2VsLWt2Iix2ZXJjZWxLVjoidW5zdG9yYWdlL2RyaXZlcnMvdmVyY2VsLWt2IiwidmVyY2VsLXJ1bnRpbWUtY2FjaGUiOiJ1bnN0b3JhZ2UvZHJpdmVycy92ZXJjZWwtcnVudGltZS1jYWNoZSIsdmVyY2VsUnVudGltZUNhY2hlOiJ1bnN0b3JhZ2UvZHJpdmVycy92ZXJjZWwtcnVudGltZS1jYWNoZSJ9O2V4cG9ydHtOIGFzIGJ1aWx0aW5Ecml2ZXJzLE8gYXMgY3JlYXRlU3RvcmFnZSxrIGFzIGRlZmluZURyaXZlcixQIGFzIGZpbHRlcktleUJ5QmFzZSx4IGFzIGZpbHRlcktleUJ5RGVwdGgsUyBhcyBqb2luS2V5cyxoIGFzIG5vcm1hbGl6ZUJhc2VLZXksZCBhcyBub3JtYWxpemVLZXksVCBhcyBwcmVmaXhTdG9yYWdlLEEgYXMgcmVzdG9yZVNuYXBzaG90LEUgYXMgc25hcHNob3R9OwovLyMgc291cmNlTWFwcGluZ1VSTD11bnN0b3JhZ2UubWpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/strict-uri-encode@%5E2.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.680Z","timestamp":1785138633680,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /strict-uri-encode@%5E2.0.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/query-string@7.1.3/es2022/query-string.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /strict-uri-encode@2.0.0/es2022/strict-uri-encode.mjs\r\nx-typescript-types: https://esm.sh/@types/strict-uri-encode@~2.0.2/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc8bf6569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":191,"size_decoded":653,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"823cbbe8ade076aa4084cea6e0817686","sha1":"15e3aaca9e892a1e73a39a198f1d20c18b9509cc","sha256":"54eea95be187006e7e54f8bd5ea25d0afe4c31e2cfddab08565580aa0ee38dc0","sha512":"1c67a2f79bea855dec9e6bec1d3899d5e6d9c6871a589718476951c8fa48804e9850b0023f28e28068c4fc496790ef0288aa6b8ab479aebbbd8f0cdd2f9b7a78","ssdeep":"","tlshash":"8fc012206032d2f69ab00c40253be17c7abf210453e830ed1ae8138065c8038d43d2bc","first_seen":"2025-07-08T23:56:54.60195Z","last_seen":"2026-07-27T07:51:47.215009Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gc3RyaWN0LXVyaS1lbmNvZGVAMi4wLjAgKi8KZXhwb3J0ICogZnJvbSAiL3N0cmljdC11cmktZW5jb2RlQDIuMC4wL2VzMjAyMi9zdHJpY3QtdXJpLWVuY29kZS5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL3N0cmljdC11cmktZW5jb2RlQDIuMC4wL2VzMjAyMi9zdHJpY3QtdXJpLWVuY29kZS5tanMiOwo="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/rlp@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.953Z","timestamp":1785138633953,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/rlp@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/address@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/rlp@5.8.0/es2022/rlp.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/rlp@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce3c42569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":205,"size_decoded":667,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"2bb7fe40d4e330dba540828008d46a58","sha1":"ca04a082e0e2267d8a246d1475a5f4fad5228939","sha256":"5c90c47f1cfac94c8ebd9a72aa78d474efd9439494b97a9888e611f5ba372f25","sha512":"c68a188d8de4f824e853eda8f7c0b56e66d76b0273f5602a621a9b3db7a103e06817cc9579132d94b8293cfa541aa485b421cf2e05fd18f2d427c204b9d77906","ssdeep":"","tlshash":"62d0a713c51982cc63ad4ffc0028a73ca17680949045a0979820da33819310925204d6","first_seen":"2025-07-08T23:56:54.737203Z","last_seen":"2026-07-27T07:51:47.183047Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvcmxwQDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL0BldGhlcnNwcm9qZWN0L3JscEA1LjguMC9lczIwMjIvcmxwLm1qcyI7Cg=="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/idb-keyval@6.3.0/es2022/idb-keyval.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.146Z","timestamp":1785138634146,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /idb-keyval@6.3.0/es2022/idb-keyval.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/idb-keyval@%5E6.2.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Wed, 08 Jul 2026 10:45:58 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcf6c72569f-OSL\r\ncontent-length: 921\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2028,"size_decoded":1373,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (1956)","md5":"1cf602cfbab0665e8a803e8c1bc30958","sha1":"c302196c842046259b831efd9fba36a67ed5ff5a","sha256":"c9abe2d89b7444ae856dc15e80ab415ad8c95e4698ae9c4356ae116c25d1590d","sha512":"68fd22abbb633cdd3f67af68f8cb491849c055b67c524b2cbd664374f919f7efab98bb30ccd2a8d8e95fd44074321b4f5d7da4a020eba44dcb0bfe9b5bfb0867","ssdeep":"","tlshash":"7b41abdd77c9b02b535ad060d0aec003a22ea940411e9470f35efad13d364adea7ad78","first_seen":"2026-07-08T11:25:23.240152Z","last_seen":"2026-08-08T17:15:52.18775Z","times_seen":10,"resource_available":true,"data":"LyogZXNtLnNoIC0gaWRiLWtleXZhbEA2LjMuMCAqLwpmdW5jdGlvbiB1KHQpe3JldHVybiBuZXcgUHJvbWlzZSgoZSxuKT0+e3Qub25jb21wbGV0ZT10Lm9uc3VjY2Vzcz0oKT0+ZSh0LnJlc3VsdCksdC5vbmFib3J0PXQub25lcnJvcj0oKT0+bih0LmVycm9yKX0pfWZ1bmN0aW9uIGQodCxlKXtsZXQgbixyPSgpPT57aWYobilyZXR1cm4gbjtsZXQgbz1pbmRleGVkREIub3Blbih0KTtyZXR1cm4gby5vbnVwZ3JhZGVuZWVkZWQ9KCk9Pm8ucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKGUpLG49dShvKSxuLnRoZW4oYT0+e2Eub25jbG9zZT0oKT0+bj12b2lkIDB9LCgpPT57bj12b2lkIDB9KSxufTtyZXR1cm4obyxhKT0+cigpLnRoZW4oYz0+YShjLnRyYW5zYWN0aW9uKGUsbykub2JqZWN0U3RvcmUoZSkpKX12YXIgbDtmdW5jdGlvbiBpKCl7cmV0dXJuIGx8fChsPWQoImtleXZhbC1zdG9yZSIsImtleXZhbCIpKSxsfWZ1bmN0aW9uIHkodCxlPWkoKSl7cmV0dXJuIGUoInJlYWRvbmx5IixuPT51KG4uZ2V0KHQpKSl9ZnVuY3Rpb24gaCh0LGUsbj1pKCkpe3JldHVybiBuKCJyZWFkd3JpdGUiLHI9PihyLnB1dChlLHQpLHUoci50cmFuc2FjdGlvbikpKX1mdW5jdGlvbiBwKHQsZT1pKCkpe3JldHVybiBlKCJyZWFkd3JpdGUiLG49Pih0LmZvckVhY2gocj0+bi5wdXQoclsxXSxyWzBdKSksdShuLnRyYW5zYWN0aW9uKSkpfWZ1bmN0aW9uIGcodCxlPWkoKSl7cmV0dXJuIGUoInJlYWRvbmx5IixuPT5Qcm9taXNlLmFsbCh0Lm1hcChyPT51KG4uZ2V0KHIpKSkpKX1mdW5jdGlvbiBtKHQsZSxuPWkoKSl7cmV0dXJuIG4oInJlYWR3cml0ZSIscj0+bmV3IFByb21pc2UoKG8sYSk9PntsZXQgYz1yLmdldCh0KTtjLm9uc3VjY2Vzcz1mdW5jdGlvbigpe3RyeXtyLnB1dChlKGMucmVzdWx0KSx0KSxvKHUoci50cmFuc2FjdGlvbikpfWNhdGNoKGYpe2EoZil9fSxjLm9uZXJyb3I9KCk9PmEoYy5lcnJvcil9KSl9ZnVuY3Rpb24gdyh0LGU9aSgpKXtyZXR1cm4gZSgicmVhZHdyaXRlIixuPT4obi5kZWxldGUodCksdShuLnRyYW5zYWN0aW9uKSkpfWZ1bmN0aW9uIEEodCxlPWkoKSl7cmV0dXJuIGUoInJlYWR3cml0ZSIsbj0+KHQuZm9yRWFjaChyPT5uLmRlbGV0ZShyKSksdShuLnRyYW5zYWN0aW9uKSkpfWZ1bmN0aW9uIHYodD1pKCkpe3JldHVybiB0KCJyZWFkd3JpdGUiLGU9PihlLmNsZWFyKCksdShlLnRyYW5zYWN0aW9uKSkpfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gdC5vcGVuQ3Vyc29yKCkub25zdWNjZXNzPWZ1bmN0aW9uKCl7dGhpcy5yZXN1bHQmJihlKHRoaXMucmVzdWx0KSx0aGlzLnJlc3VsdC5jb250aW51ZSgpKX0sdSh0LnRyYW5zYWN0aW9uKX1mdW5jdGlvbiBTKHQ9aSgpKXtyZXR1cm4gdCgicmVhZG9ubHkiLGU9PntpZihlLmdldEFsbEtleXMpcmV0dXJuIHUoZS5nZXRBbGxLZXlzKCkpO2xldCBuPVtdO3JldHVybiBzKGUscj0+bi5wdXNoKHIua2V5KSkudGhlbigoKT0+bil9KX1mdW5jdGlvbiBiKHQ9aSgpKXtyZXR1cm4gdCgicmVhZG9ubHkiLGU9PntpZihlLmdldEFsbClyZXR1cm4gdShlLmdldEFsbCgpKTtsZXQgbj1bXTtyZXR1cm4gcyhlLHI9Pm4ucHVzaChyLnZhbHVlKSkudGhlbigoKT0+bil9KX1mdW5jdGlvbiBrKHQ9aSgpKXtyZXR1cm4gdCgicmVhZG9ubHkiLGU9PntpZihlLmdldEFsbCYmZS5nZXRBbGxLZXlzKXJldHVybiBQcm9taXNlLmFsbChbdShlLmdldEFsbEtleXMoKSksdShlLmdldEFsbCgpKV0pLnRoZW4oKFtyLG9dKT0+ci5tYXAoKGEsYyk9PlthLG9bY11dKSk7bGV0IG49W107cmV0dXJuIHMoZSxyPT5uLnB1c2goW3Iua2V5LHIudmFsdWVdKSkudGhlbigoKT0+bil9KX1leHBvcnR7diBhcyBjbGVhcixkIGFzIGNyZWF0ZVN0b3JlLHcgYXMgZGVsLEEgYXMgZGVsTWFueSxrIGFzIGVudHJpZXMseSBhcyBnZXQsZyBhcyBnZXRNYW55LFMgYXMga2V5cyx1IGFzIHByb21pc2lmeVJlcXVlc3QsaCBhcyBzZXQscCBhcyBzZXRNYW55LG0gYXMgdXBkYXRlLGIgYXMgdmFsdWVzfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aWRiLWtleXZhbC5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base16.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.204Z","timestamp":1785138634204,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base16.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfcc7d569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":329,"size_decoded":599,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"c105dacc920ab04c20a312577c515cb2","sha1":"e0c0906dbf481d427a6b648024d1fe782263d157","sha256":"7f0c9b5860c52b54170cbc8b058fe46eee1b81f52d0908055d38d2a63ec8b721","sha512":"2e90d31ea1aa0815443f634b96eadf87d982ef542bd9f02ec8c4c3a6181c2b3584d1633b0b0f786ebb14f48e474c63d871142a0f055f85ee56b1040388fea25b","ssdeep":"","tlshash":"85e07d3ec7752f3f2530611c8d4b04113cb8b7efd2800344b2399818d8080c9f02be69","first_seen":"2025-07-08T23:56:54.607035Z","last_seen":"2026-08-08T17:15:51.823465Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2UxNiAqLwppbXBvcnR7cmZjNDY0OCBhcyBlfWZyb20iLi4vZXNtL3NyYy9iYXNlcy9iYXNlLm1qcyI7dmFyIHI9ZSh7cHJlZml4OiJmIixuYW1lOiJiYXNlMTYiLGFscGhhYmV0OiIwMTIzNDU2Nzg5YWJjZGVmIixiaXRzUGVyQ2hhcjo0fSkscD1lKHtwcmVmaXg6IkYiLG5hbWU6ImJhc2UxNnVwcGVyIixhbHBoYWJldDoiMDEyMzQ1Njc4OUFCQ0RFRiIsYml0c1BlckNoYXI6NH0pO2V4cG9ydHtyIGFzIGJhc2UxNixwIGFzIGJhc2UxNnVwcGVyfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFzZTE2Lm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/sign-client@2.17.4/es2022/sign-client.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.498Z","timestamp":1785138633498,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/sign-client@2.17.4/es2022/sign-client.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Fri, 18 Jul 2025 01:42:52 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcb5bcd569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":59474,"size_decoded":18680,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (59384)","md5":"a3a532bda6ce0b4d7d56bfa6d664e0ce","sha1":"06660b97ccb7c62225a8ed53070f249022179dee","sha256":"81f8f9ab3a2f23496ffaa225be5b8a51eee0b0a4c96edf876913f6c7a26ac4a3","sha512":"0777e8629ead3e1fe801d7570022127da0970bafab7159e5b676f6fb35ce8bc30e6c0c998f0964476ea4f71f8c751e722731b7df34885832dc766bac132d2cb6","ssdeep":"768:LGfpX2pFVyDbx6N1AwwLC6fTEnDv0OkPaYp9sqpLb:45bx6EwwLC6fTEnDv0OFE","tlshash":"ab438256f37e9836418dd35ae830e351b73aa0283435943eba683fde4b489846b1cf75","first_seen":"2025-07-08T23:56:54.826024Z","last_seen":"2026-07-27T07:51:47.190004Z","times_seen":11,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvc2lnbi1jbGllbnRAMi4xNy40ICovCmltcG9ydHtSRUxBWUVSX0RFRkFVTFRfUFJPVE9DT0wgYXMgd3QsVFJBTlNQT1JUX1RZUEVTIGFzIGYsRVZFTlRfQ0xJRU5UX1NFU1NJT05fVFJBQ0VTIGFzIEMsRVZFTlRfQ0xJRU5UX1NFU1NJT05fRVJST1JTIGFzIEYsRVZFTlRfQ0xJRU5UX0FVVEhFTlRJQ0FURV9UUkFDRVMgYXMgUSxFVkVOVF9DTElFTlRfQVVUSEVOVElDQVRFX0VSUk9SUyBhcyBzZSxFVkVOVF9DTElFTlRfUEFJUklOR19FUlJPUlMgYXMgbXQsRVZFTlRfQ0xJRU5UX1BBSVJJTkdfVFJBQ0VTIGFzIF90LFJFTEFZRVJfRVZFTlRTIGFzIHplLFZFUklGWV9TRVJWRVIgYXMgRXQsRVhQSVJFUl9FVkVOVFMgYXMgUnQsUEFJUklOR19FVkVOVFMgYXMgSGUsU3RvcmUgYXMgQixDb3JlIGFzIFN0fWZyb20iL0B3YWxsZXRjb25uZWN0L2NvcmVAMi4xNy40L2VzMjAyMi9jb3JlLm1qcyI7aW1wb3J0e3Bpbm8gYXMgSXQsZ2V0RGVmYXVsdExvZ2dlck9wdGlvbnMgYXMgZnQsZ2VuZXJhdGVDaGlsZExvZ2dlciBhcyB2dCxnZXRMb2dnZXJDb250ZXh0IGFzIHF0fWZyb20iL0B3YWxsZXRjb25uZWN0L2xvZ2dlckAyLjEuMi9lczIwMjIvbG9nZ2VyLm1qcyI7aW1wb3J0e0lFbmdpbmUgYXMgVHQsSVNpZ25DbGllbnQgYXMgTnR9ZnJvbSIvQHdhbGxldGNvbm5lY3QvdHlwZXNAMi4xNy40L2VzMjAyMi90eXBlcy5tanMiO2ltcG9ydHtUSElSVFlfREFZUyBhcyBQdCxTRVZFTl9EQVlTIGFzIGN0LEZJVkVfTUlOVVRFUyBhcyBBLE9ORV9EQVkgYXMgayxPTkVfSE9VUiBhcyBZZSxPTkVfU0VDT05EIGFzIGx0LHRvTWlsaXNlY29uZHMgYXMgT2V9ZnJvbSIvQHdhbGxldGNvbm5lY3QvdGltZUAxLjAuMi9lczIwMjIvdGltZS5tanMiO2ltcG9ydHtnZXRJbnRlcm5hbEVycm9yIGFzIGQsY2FsY0V4cGlyeSBhcyBiLGNyZWF0ZURlbGF5ZWRQcm9taXNlIGFzIEgsZW5naW5lRXZlbnQgYXMgZyxnZXRTZGtFcnJvciBhcyBQLGdldERlZXBMaW5rIGFzIE90LGhhbmRsZURlZXBsaW5rUmVkaXJlY3QgYXMgYnQsaXNTZXNzaW9uQ29tcGF0aWJsZSBhcyBBdCxoYXNoS2V5IGFzIEllLHBhcnNlQ2hhaW5JZCBhcyBmZSxjcmVhdGVFbmNvZGVkUmVjYXAgYXMgQ3QsZ2V0UmVjYXBGcm9tUmVzb3VyY2VzIGFzIHZlLG1lcmdlRW5jb2RlZFJlY2FwcyBhcyB4dCxUWVBFXzIgYXMgVnQsQkFTRTY0VVJMIGFzIGllLGdldExpbmtNb2RlVVJMIGFzIGxlLHZhbGlkYXRlU2lnbmVkQ2FjYW8gYXMgWGUsZ2V0TmFtZXNwYWNlZERpZENoYWluSWQgYXMgSmUsZ2V0RGlkQWRkcmVzcyBhcyBCZSxnZXRNZXRob2RzRnJvbVJlY2FwIGFzIFdlLGdldENoYWluc0Zyb21SZWNhcCBhcyBaZSxidWlsZE5hbWVzcGFjZXNGcm9tQXV0aCBhcyBldCxmb3JtYXRNZXNzYWdlIGFzIER0LEJBU0U2NCBhcyBwZSxoYXNoTWVzc2FnZSBhcyBZLGlzRXhwaXJlZCBhcyBYLE1lbW9yeVN0b3JlIGFzIHJlLGlzVmFsaWRQYXJhbXMgYXMgeCxpc1VuZGVmaW5lZCBhcyBuZSxpc1ZhbGlkUmVsYXlzIGFzIEx0LGlzVmFsaWRPYmplY3QgYXMgdHQsaXNWYWxpZFJlcXVpcmVkTmFtZXNwYWNlcyBhcyBNdCxpc1ZhbGlkTmFtZXNwYWNlcyBhcyBxZSxpc0NvbmZvcm1pbmdOYW1lc3BhY2VzIGFzIHN0LGlzVmFsaWRTdHJpbmcgYXMgJCxpc1ZhbGlkRXJyb3JSZWFzb24gYXMga3QsaXNWYWxpZFJlbGF5IGFzICR0LGlzVmFsaWRDb250cm9sbGVyIGFzIFV0LGlzVmFsaWROYW1lc3BhY2VzQ2hhaW5JZCBhcyBpdCxpc1ZhbGlkUmVxdWVzdCBhcyBLdCxpc1ZhbGlkTmFtZXNwYWNlc1JlcXVlc3QgYXMgR3QsaXNWYWxpZFJlcXVlc3RFeHBpcnkgYXMganQsaXNWYWxpZFJlc3BvbnNlIGFzIEZ0LGlzVmFsaWRFdmVudCBhcyBRdCxpc1ZhbGlkTmFtZXNwYWNlc0V2ZW50IGFzIHp0LGdldFNlYXJjaFBhcmFtRnJvbVVSTCBhcyBydCxpc1Rlc3RSdW4gYXMgSHQsaXNSZWFjdE5hdGl2ZSBhcyBZdCxwYXJzZUV4cGlyZXJUYXJnZXQgYXMgWHQsaXNWYWxpZElkIGFzIEp0LFRZUEVfMSBhcyBUZSxnZXRBcHBNZXRhZGF0YSBhcyBCdH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC91dGlsc0AyLjE3LjQvZXMyMDIyL3V0aWxzLm1qcyI7aW1wb3J0IFd0LHtFdmVudEVtaXR0ZXIgYXMgWnR9ZnJvbSIvbm9kZS9ldmVudHMubWpzIjtpbXBvcnR7cGF5bG9hZElkIGFzIHosZ2V0QmlnSW50UnBjSWQgYXMgaGUsaXNKc29uUnBjUmVzdWx0IGFzIFUsaXNKc29uUnBjRXJyb3IgYXMgSyxmb3JtYXRKc29uUnBjUmVxdWVzdCBhcyBkZSxmb3JtYXRKc29uUnBjUmVzdWx0IGFzIGVzLGZvcm1hdEpzb25ScGNFcnJvciBhcyB0cyxpc0pzb25ScGNSZXF1ZXN0IGFzIHNzLGlzSnNvblJwY1Jlc3BvbnNlIGFzIGlzfWZyb20iL0B3YWxsZXRjb25uZWN0L2pzb25ycGMtdXRpbHNAMS4wLjgvZXMyMDIyL2pzb25ycGMtdXRpbHMubWpzIjt2YXIgcHQ9IndjIixodD0yLGR0PSJjbGllbnQiLGtlPWAke3B0fUAke2h0fToke2R0fTpgLE5lPXtuYW1lOmR0LGxvZ2dlcjoiZXJyb3IiLGNvbnRyb2xsZXI6ITEscmVsYXlVcmw6IndzczovL3JlbGF5LndhbGxldGNvbm5lY3Qub3JnIn0sTnM9e3Nlc3Npb25fcHJvcG9zYWw6InNlc3Npb25fcHJvcG9zYWwiLHNlc3Npb25fdXBkYXRlOiJzZXNzaW9uX3VwZGF0ZSIsc2Vzc2lvbl9leHRlbmQ6InNlc3Npb25fZXh0ZW5kIixzZXNzaW9uX3Bpbmc6InNlc3Npb25fcGluZyIsc2Vzc2lvbl9kZWxldGU6InNlc3Npb25fZGVsZXRlIixzZXNzaW9uX2V4cGlyZToic2Vzc2lvbl9leHBpcmUiLHNlc3Npb25fcmVxdWVzdDoic2Vzc2lvbl9yZXF1ZXN0IixzZXNzaW9uX3JlcXVlc3Rfc2VudDoic2Vzc2lvbl9yZXF1ZXN0X3NlbnQiLHNlc3Npb25fZXZlbnQ6InNlc3Npb25fZXZlbnQiLHByb3Bvc2FsX2V4cGlyZToicHJvcG9zYWxfZXhwaXJlIixzZXNzaW9uX2F1dGhlbnRpY2F0ZToic2Vzc2lvbl9hdXRoZW50aWNhdGUiLHNlc3Npb25fcmVxdWVzdF9leHBpcmU6InNlc3Npb25fcmVxdWVzdF9leHBpcmUifSxQcz17ZGF0YWJhc2U6IjptZW1vcnk6In0sbnQ9IldBTExFVENPTk5FQ1RfREVFUExJTktfQ0hPSUNFIixPcz17Y3JlYXRlZDoiaGlzdG9yeV9jcmVhdGVkIix1cGRhdGVkOiJoaXN0b3J5X3VwZGF0ZWQiLGRlbGV0ZWQ6Imhpc3RvcnlfZGVsZXRlZCIsc3luYzoiaGlzdG9yeV9zeW5jIn0sYnM9Imhpc3RvcnkiLEFzPSIwLjMiLHJzPSJwcm9wb3NhbCIsQ3M9UHQsbnM9IlByb3Bvc2FsIGV4cGlyZWQiLGFzPSJzZXNzaW9uIixKPWN0LG9zPSJlbmdpbmUiLHE9e3djX3Nlc3Npb25Qcm9wb3NlOntyZXE6e3R0bDpBLHByb21wdDohMCx0YWc6MTEwMH0scmVzOnt0dGw6QSxwcm9tcHQ6ITEsdGFnOjExMDF9LHJlamVjdDp7dHRsOkEscHJvbXB0OiExLHRhZzoxMTIwfSxhdXRvUmVqZWN0Ont0dGw6QSxwcm9tcHQ6ITEsdGFnOjExMjF9fSx3Y19zZXNzaW9uU2V0dGxlOntyZXE6e3R0bDpBLHByb21wdDohMSx0YWc6MTEwMn0scmVzOnt0dGw6QSxwcm9tcHQ6ITEsdGFnOjExMDN9fSx3Y19zZXNzaW9uVXBkYXRlOntyZXE6e3R0bDprLHByb21wdDohMSx0YWc6MTEwNH0scmVzOnt0dGw6ayxwcm9tcHQ6ITEsdGFnOjExMDV9fSx3Y19zZXNzaW9uRXh0ZW5kOntyZXE6e3R0bDprLHByb21wdDohMSx0YWc6MTEwNn0scmVzOnt0dGw6ayxwcm9tcHQ6ITEsdGFnOjExMDd9fSx3Y19zZXNzaW9uUmVxdWVzdDp7cmVxOnt0dGw6QSxwcm9tcHQ6ITAsdGFnOjExMDh9LHJlczp7dHRsOkEscHJvbXB0OiExLHRhZzoxMTA5fX0sd2Nfc2Vzc2lvbkV2ZW50OntyZXE6e3R0bDpBLHByb21wdDohMCx0YWc6MTExMH0scmVzOnt0dGw6QSxwcm9tcHQ6ITEsdGFnOjExMTF9fSx3Y19zZXNzaW9uRGVsZXRlOntyZXE6e3R0bDprLHByb21wdDohMSx0YWc6MTExMn0scmVzOnt0dGw6ayxwcm9tcHQ6ITEsdGFnOjExMTN9fSx3Y19zZXNzaW9uUGluZzp7cmVxOnt0dGw6ayxwcm9tcHQ6ITEsdGFnOjExMTR9LHJlczp7dHRsOmsscHJvbXB0OiExLHRhZzoxMTE1fX0sd2Nfc2Vzc2lvbkF1dGhlbnRpY2F0ZTp7cmVxOnt0dGw6WWUscHJvbXB0OiEwLHRhZzoxMTE2fSxyZXM6e3R0bDpZZSxwcm9tcHQ6ITEsdGFnOjExMTd9LHJlamVjdDp7dHRsOkEscHJvbXB0OiExLHRhZzoxMTE4fSxhdXRvUmVqZWN0Ont0dGw6QSxwcm9tcHQ6ITEsdGFnOjExMTl9fX0sUGU9e21pbjpBLG1heDpjdH0sTT17aWRsZToiSURMRSIsYWN0aXZlOiJBQ1RJVkUifSxjcz0icmVxdWVzdCIsbHM9WyJ3Y19zZXNzaW9uUHJvcG9zZSIsIndjX3Nlc3Npb25SZXF1ZXN0Iiwid2NfYXV0aFJlcXVlc3QiLCJ3Y19zZXNzaW9uQXV0aGVudGljYXRlIl0scHM9IndjIix4cz0xLjUsaHM9ImF1dGgiLGRzPSJhdXRoS2V5cyIsdXM9InBhaXJpbmdUb3BpY3MiLGdzPSJyZXF1ZXN0cyIseWU9YCR7cHN9QCR7MS41fToke2hzfTpgLHVlPWAke3llfTpQVUJfS0VZYCx5cz1PYmplY3QuZGVmaW5lUHJvcGVydHksd3M9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMsbXM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsYXQ9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxfcz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LEVzPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsb3Q9KHYsbyx0KT0+byBpbiB2P3lzKHYsbyx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dH0pOnZbb109dCxJPSh2LG8pPT57Zm9yKHZhciB0IGluIG98fChvPXt9KSlfcy5jYWxsKG8sdCkmJm90KHYsdCxvW3RdKTtpZihhdClmb3IodmFyIHQgb2YgYXQobykpRXMuY2FsbChvLHQpJiZvdCh2LHQsb1t0XSk7cmV0dXJuIHZ9LFY9KHYsbyk9PndzKHYsbXMobykpLGJlPWNsYXNzIGV4dGVuZHMgVHR7Y29uc3RydWN0b3Iobyl7c3VwZXIobyksdGhpcy5uYW1lPW9zLHRoaXMuZXZlbnRzPW5ldyBXdCx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMucmVxdWVzdFF1ZXVlPXtzdGF0ZTpNLmlkbGUscXVldWU6W119LHRoaXMuc2Vzc2lvblJlcXVlc3RRdWV1ZT17c3RhdGU6TS5pZGxlLHF1ZXVlOltdfSx0aGlzLnJlcXVlc3RRdWV1ZURlbGF5PWx0LHRoaXMuZXhwZWN0ZWRQYWlyaW5nTWV0aG9kTWFwPW5ldyBNYXAsdGhpcy5yZWNlbnRseURlbGV0ZWRNYXA9bmV3IE1hcCx0aGlzLnJlY2VudGx5RGVsZXRlZExpbWl0PTIwMCx0aGlzLnJlbGF5TWVzc2FnZUNhY2hlPVtdLHRoaXMuaW5pdD1hc3luYygpPT57dGhpcy5pbml0aWFsaXplZHx8KGF3YWl0IHRoaXMuY2xlYW51cCgpLHRoaXMucmVnaXN0ZXJSZWxheWVyRXZlbnRzKCksdGhpcy5yZWdpc3RlckV4cGlyZXJFdmVudHMoKSx0aGlzLnJlZ2lzdGVyUGFpcmluZ0V2ZW50cygpLGF3YWl0IHRoaXMucmVnaXN0ZXJMaW5rTW9kZUxpc3RlbmVycygpLHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5yZWdpc3Rlcih7bWV0aG9kczpPYmplY3Qua2V5cyhxKX0pLHRoaXMuaW5pdGlhbGl6ZWQ9ITAsc2V0VGltZW91dCgoKT0+e3RoaXMuc2Vzc2lvblJlcXVlc3RRdWV1ZS5xdWV1ZT10aGlzLmdldFBlbmRpbmdTZXNzaW9uUmVxdWVzdHMoKSx0aGlzLnByb2Nlc3NTZXNzaW9uUmVxdWVzdFF1ZXVlKCl9LE9lKHRoaXMucmVxdWVzdFF1ZXVlRGVsYXkpKSl9LHRoaXMuY29ubmVjdD1hc3luYyB0PT57dGhpcy5pc0luaXRpYWxpemVkKCksYXdhaXQgdGhpcy5jb25maXJtT25saW5lU3RhdGVPclRocm93KCk7bGV0IGU9VihJKHt9LHQpLHtyZXF1aXJlZE5hbWVzcGFjZXM6dC5yZXF1aXJlZE5hbWVzcGFjZXN8fHt9LG9wdGlvbmFsTmFtZXNwYWNlczp0Lm9wdGlvbmFsTmFtZXNwYWNlc3x8e319KTthd2FpdCB0aGlzLmlzVmFsaWRDb25uZWN0KGUpO2xldHtwYWlyaW5nVG9waWM6cyxyZXF1aXJlZE5hbWVzcGFjZXM6aSxvcHRpb25hbE5hbWVzcGFjZXM6cixzZXNzaW9uUHJvcGVydGllczpuLHJlbGF5czphfT1lLGM9cyxoLHA9ITE7dHJ5e2MmJihwPXRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5wYWlyaW5ncy5nZXQoYykuYWN0aXZlKX1jYXRjaChFKXt0aHJvdyB0aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IoYGNvbm5lY3QoKSAtPiBwYWlyaW5nLmdldCgke2N9KSBmYWlsZWRgKSxFfWlmKCFjfHwhcCl7bGV0e3RvcGljOkUsdXJpOlN9PWF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5jcmVhdGUoKTtjPUUsaD1TfWlmKCFjKXtsZXR7bWVzc2FnZTpFfT1kKCJOT19NQVRDSElOR19LRVkiLGBjb25uZWN0KCkgcGFpcmluZyB0b3BpYzogJHtjfWApO3Rocm93IG5ldyBFcnJvcihFKX1sZXQgdT1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZUtleVBhaXIoKSxsPXEud2Nfc2Vzc2lvblByb3Bvc2UucmVxLnR0bHx8QSx3PWIobCksbT1JKHtyZXF1aXJlZE5hbWVzcGFjZXM6aSxvcHRpb25hbE5hbWVzcGFjZXM6cixyZWxheXM6YT8/W3twcm90b2NvbDp3dH1dLHByb3Bvc2VyOntwdWJsaWNLZXk6dSxtZXRhZGF0YTp0aGlzLmNsaWVudC5tZXRhZGF0YX0sZXhwaXJ5VGltZXN0YW1wOncscGFpcmluZ1RvcGljOmN9LG4mJntzZXNzaW9uUHJvcGVydGllczpufSkse3JlamVjdDp5LHJlc29sdmU6Xyxkb25lOlJ9PUgobCxucyk7dGhpcy5ldmVudHMub25jZShnKCJzZXNzaW9uX2Nvbm5lY3QiKSxhc3luYyh7ZXJyb3I6RSxzZXNzaW9uOlN9KT0+e2lmKEUpeShFKTtlbHNlIGlmKFMpe1Muc2VsZi5wdWJsaWNLZXk9dTtsZXQgTD1WKEkoe30sUykse3BhaXJpbmdUb3BpYzptLnBhaXJpbmdUb3BpYyxyZXF1aXJlZE5hbWVzcGFjZXM6bS5yZXF1aXJlZE5hbWVzcGFjZXMsb3B0aW9uYWxOYW1lc3BhY2VzOm0ub3B0aW9uYWxOYW1lc3BhY2VzLHRyYW5zcG9ydFR5cGU6Zi5yZWxheX0pO2F3YWl0IHRoaXMuY2xpZW50LnNlc3Npb24uc2V0KFMudG9waWMsTCksYXdhaXQgdGhpcy5zZXRFeHBpcnkoUy50b3BpYyxTLmV4cGlyeSksYyYmYXdhaXQgdGhpcy5jbGllbnQuY29yZS5wYWlyaW5nLnVwZGF0ZU1ldGFkYXRhKHt0b3BpYzpjLG1ldGFkYXRhOlMucGVlci5tZXRhZGF0YX0pLHRoaXMuY2xlYW51cER1cGxpY2F0ZVBhaXJpbmdzKEwpLF8oTCl9fSk7bGV0IEQ9YXdhaXQgdGhpcy5zZW5kUmVxdWVzdCh7dG9waWM6YyxtZXRob2Q6IndjX3Nlc3Npb25Qcm9wb3NlIixwYXJhbXM6bSx0aHJvd09uRmFpbGVkUHVibGlzaDohMH0pO3JldHVybiBhd2FpdCB0aGlzLnNldFByb3Bvc2FsKEQsSSh7aWQ6RH0sbSkpLHt1cmk6aCxhcHByb3ZhbDpSfX0sdGhpcy5wYWlyPWFzeW5jIHQ9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSxhd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKTt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5wYWlyKHQpfWNhdGNoKGUpe3Rocm93IHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcigicGFpcigpIGZhaWxlZCIpLGV9fSx0aGlzLmFwcHJvdmU9YXN5bmMgdD0+e3ZhciBlLHMsaTtsZXQgcj10aGlzLmNsaWVudC5jb3JlLmV2ZW50Q2xpZW50LmNyZWF0ZUV2ZW50KHtwcm9wZXJ0aWVzOnt0b3BpYzooZT10Py5pZCk9PW51bGw/dm9pZCAwOmUudG9TdHJpbmcoKSx0cmFjZTpbQy5zZXNzaW9uX2FwcHJvdmVfc3RhcnRlZF19fSk7dHJ5e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpfWNhdGNoKE4pe3Rocm93IHIuc2V0RXJyb3IoRi5ub19pbnRlcm5ldF9jb25uZWN0aW9uKSxOfXRyeXthd2FpdCB0aGlzLmlzVmFsaWRQcm9wb3NhbElkKHQ/LmlkKX1jYXRjaChOKXt0aHJvdyB0aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IoYGFwcHJvdmUoKSAtPiBwcm9wb3NhbC5nZXQoJHt0Py5pZH0pIGZhaWxlZGApLHIuc2V0RXJyb3IoRi5wcm9wb3NhbF9ub3RfZm91bmQpLE59dHJ5e2F3YWl0IHRoaXMuaXNWYWxpZEFwcHJvdmUodCl9Y2F0Y2goTil7dGhyb3cgdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKCJhcHByb3ZlKCkgLT4gaXNWYWxpZEFwcHJvdmUoKSBmYWlsZWQiKSxyLnNldEVycm9yKEYuc2Vzc2lvbl9hcHByb3ZlX25hbWVzcGFjZV92YWxpZGF0aW9uX2ZhaWx1cmUpLE59bGV0e2lkOm4scmVsYXlQcm90b2NvbDphLG5hbWVzcGFjZXM6YyxzZXNzaW9uUHJvcGVydGllczpoLHNlc3Npb25Db25maWc6cH09dCx1PXRoaXMuY2xpZW50LnByb3Bvc2FsLmdldChuKTt0aGlzLmNsaWVudC5jb3JlLmV2ZW50Q2xpZW50LmRlbGV0ZUV2ZW50KHtldmVudElkOnIuZXZlbnRJZH0pO2xldHtwYWlyaW5nVG9waWM6bCxwcm9wb3Nlcjp3LHJlcXVpcmVkTmFtZXNwYWNlczptLG9wdGlvbmFsTmFtZXNwYWNlczp5fT11LF89KHM9dGhpcy5jbGllbnQuY29yZS5ldmVudENsaWVudCk9PW51bGw/dm9pZCAwOnMuZ2V0RXZlbnQoe3RvcGljOmx9KTtffHwoXz0oaT10aGlzLmNsaWVudC5jb3JlLmV2ZW50Q2xpZW50KT09bnVsbD92b2lkIDA6aS5jcmVhdGVFdmVudCh7dHlwZTpDLnNlc3Npb25fYXBwcm92ZV9zdGFydGVkLHByb3BlcnRpZXM6e3RvcGljOmwsdHJhY2U6W0Muc2Vzc2lvbl9hcHByb3ZlX3N0YXJ0ZWQsQy5zZXNzaW9uX25hbWVzcGFjZXNfdmFsaWRhdGlvbl9zdWNjZXNzXX19KSk7bGV0IFI9YXdhaXQgdGhpcy5jbGllbnQuY29yZS5jcnlwdG8uZ2VuZXJhdGVLZXlQYWlyKCksRD13LnB1YmxpY0tleSxFPWF3YWl0IHRoaXMuY2xpZW50LmNvcmUuY3J5cHRvLmdlbmVyYXRlU2hhcmVkS2V5KFIsRCksUz1JKEkoe3JlbGF5Ontwcm90b2NvbDphPz8iaXJuIn0sbmFtZXNwYWNlczpjLGNvbnRyb2xsZXI6e3B1YmxpY0tleTpSLG1ldGFkYXRhOnRoaXMuY2xpZW50Lm1ldGFkYXRhfSxleHBpcnk6YihKKX0saCYme3Nlc3Npb25Qcm9wZXJ0aWVzOmh9KSxwJiZ7c2Vzc2lvbkNvbmZpZzpwfSksTD1mLnJlbGF5O18uYWRkVHJhY2UoQy5zdWJzY3JpYmluZ19zZXNzaW9uX3RvcGljKTt0cnl7YXdhaXQgdGhpcy5jbGllbnQuY29yZS5yZWxheWVyLnN1YnNjcmliZShFLHt0cmFuc3BvcnRUeXBlOkx9KX1jYXRjaChOKXt0aHJvdyBfLnNldEVycm9yKEYuc3Vic2NyaWJlX3Nlc3Npb25fdG9waWNfZmFpbHVyZSksTn1fLmFkZFRyYWNlKEMuc3Vic2NyaWJlX3Nlc3Npb25fdG9waWNfc3VjY2Vzcyk7bGV0IFc9VihJKHt9LFMpLHt0b3BpYzpFLHJlcXVpcmVkTmFtZXNwYWNlczptLG9wdGlvbmFsTmFtZXNwYWNlczp5LHBhaXJpbmdUb3BpYzpsLGFja25vd2xlZGdlZDohMSxzZWxmOlMuY29udHJvbGxlcixwZWVyOntwdWJsaWNLZXk6dy5wdWJsaWNLZXksbWV0YWRhdGE6dy5tZXRhZGF0YX0sY29udHJvbGxlcjpSLHRyYW5zcG9ydFR5cGU6Zi5yZWxheX0pO2F3YWl0IHRoaXMuY2xpZW50LnNlc3Npb24uc2V0KEUsVyksXy5hZGRUcmFjZShDLnN0b3JlX3Nlc3Npb24pO3RyeXtfLmFkZFRyYWNlKEMucHVibGlzaGluZ19zZXNzaW9uX3NldHRsZSksYXdhaXQgdGhpcy5zZW5kUmVxdWVzdCh7dG9waWM6RSxtZXRob2Q6IndjX3Nlc3Npb25TZXR0bGUiLHBhcmFtczpTLHRocm93T25GYWlsZWRQdWJsaXNoOiEwfSkuY2F0Y2goTj0+e3Rocm93IF8/LnNldEVycm9yKEYuc2Vzc2lvbl9zZXR0bGVfcHVibGlzaF9mYWlsdXJlKSxOfSksXy5hZGRUcmFjZShDLnNlc3Npb25fc2V0dGxlX3B1Ymxpc2hfc3VjY2VzcyksXy5hZGRUcmFjZShDLnB1Ymxpc2hpbmdfc2Vzc2lvbl9hcHByb3ZlKSxhd2FpdCB0aGlzLnNlbmRSZXN1bHQoe2lkOm4sdG9waWM6bCxyZXN1bHQ6e3JlbGF5Ontwcm90b2NvbDphPz8iaXJuIn0scmVzcG9uZGVyUHVibGljS2V5OlJ9LHRocm93T25GYWlsZWRQdWJsaXNoOiEwfSkuY2F0Y2goTj0+e3Rocm93IF8/LnNldEVycm9yKEYuc2Vzc2lvbl9hcHByb3ZlX3B1Ymxpc2hfZmFpbHVyZSksTn0pLF8uYWRkVHJhY2UoQy5zZXNzaW9uX2FwcHJvdmVfcHVibGlzaF9zdWNjZXNzKX1jYXRjaChOKXt0aHJvdyB0aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IoTiksdGhpcy5jbGllbnQuc2Vzc2lvbi5kZWxldGUoRSxQKCJVU0VSX0RJU0NPTk5FQ1RFRCIpKSxhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIudW5zdWJzY3JpYmUoRSksTn1yZXR1cm4gdGhpcy5jbGllbnQuY29yZS5ldmVudENsaWVudC5kZWxldGVFdmVudCh7ZXZlbnRJZDpfLmV2ZW50SWR9KSxhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcudXBkYXRlTWV0YWRhdGEoe3RvcGljOmwsbWV0YWRhdGE6dy5tZXRhZGF0YX0pLGF3YWl0IHRoaXMuY2xpZW50LnByb3Bvc2FsLmRlbGV0ZShuLFAoIlVTRVJfRElTQ09OTkVDVEVEIikpLGF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5hY3RpdmF0ZSh7dG9waWM6bH0pLGF3YWl0IHRoaXMuc2V0RXhwaXJ5KEUsYihKKSkse3RvcGljOkUsYWNrbm93bGVkZ2VkOigpPT5Qcm9taXNlLnJlc29sdmUodGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoRSkpfX0sdGhpcy5yZWplY3Q9YXN5bmMgdD0+e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpO3RyeXthd2FpdCB0aGlzLmlzVmFsaWRSZWplY3QodCl9Y2F0Y2gocil7dGhyb3cgdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKCJyZWplY3QoKSAtPiBpc1ZhbGlkUmVqZWN0KCkgZmFpbGVkIikscn1sZXR7aWQ6ZSxyZWFzb246c309dCxpO3RyeXtpPXRoaXMuY2xpZW50LnByb3Bvc2FsLmdldChlKS5wYWlyaW5nVG9waWN9Y2F0Y2gocil7dGhyb3cgdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGByZWplY3QoKSAtPiBwcm9wb3NhbC5nZXQoJHtlfSkgZmFpbGVkYCkscn1pJiYoYXdhaXQgdGhpcy5zZW5kRXJyb3Ioe2lkOmUsdG9waWM6aSxlcnJvcjpzLHJwY09wdHM6cS53Y19zZXNzaW9uUHJvcG9zZS5yZWplY3R9KSxhd2FpdCB0aGlzLmNsaWVudC5wcm9wb3NhbC5kZWxldGUoZSxQKCJVU0VSX0RJU0NPTk5FQ1RFRCIpKSl9LHRoaXMudXBkYXRlPWFzeW5jIHQ9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSxhd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKTt0cnl7YXdhaXQgdGhpcy5pc1ZhbGlkVXBkYXRlKHQpfWNhdGNoKHApe3Rocm93IHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcigidXBkYXRlKCkgLT4gaXNWYWxpZFVwZGF0ZSgpIGZhaWxlZCIpLHB9bGV0e3RvcGljOmUsbmFtZXNwYWNlczpzfT10LHtkb25lOmkscmVzb2x2ZTpyLHJlamVjdDpufT1IKCksYT16KCksYz1oZSgpLnRvU3RyaW5nKCksaD10aGlzLmNsaWVudC5zZXNzaW9uLmdldChlKS5uYW1lc3BhY2VzO3JldHVybiB0aGlzLmV2ZW50cy5vbmNlKGcoInNlc3Npb25fdXBkYXRlIixhKSwoe2Vycm9yOnB9KT0+e3A/bihwKTpyKCl9KSxhd2FpdCB0aGlzLmNsaWVudC5zZXNzaW9uLnVwZGF0ZShlLHtuYW1lc3BhY2VzOnN9KSxhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KHt0b3BpYzplLG1ldGhvZDoid2Nfc2Vzc2lvblVwZGF0ZSIscGFyYW1zOntuYW1lc3BhY2VzOnN9LHRocm93T25GYWlsZWRQdWJsaXNoOiEwLGNsaWVudFJwY0lkOmEscmVsYXlScGNJZDpjfSkuY2F0Y2gocD0+e3RoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihwKSx0aGlzLmNsaWVudC5zZXNzaW9uLnVwZGF0ZShlLHtuYW1lc3BhY2VzOmh9KSxuKHApfSkse2Fja25vd2xlZGdlZDppfX0sdGhpcy5leHRlbmQ9YXN5bmMgdD0+e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpO3RyeXthd2FpdCB0aGlzLmlzVmFsaWRFeHRlbmQodCl9Y2F0Y2goYSl7dGhyb3cgdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKCJleHRlbmQoKSAtPiBpc1ZhbGlkRXh0ZW5kKCkgZmFpbGVkIiksYX1sZXR7dG9waWM6ZX09dCxzPXooKSx7ZG9uZTppLHJlc29sdmU6cixyZWplY3Q6bn09SCgpO3JldHVybiB0aGlzLmV2ZW50cy5vbmNlKGcoInNlc3Npb25fZXh0ZW5kIixzKSwoe2Vycm9yOmF9KT0+e2E/bihhKTpyKCl9KSxhd2FpdCB0aGlzLnNldEV4cGlyeShlLGIoSikpLHRoaXMuc2VuZFJlcXVlc3Qoe3RvcGljOmUsbWV0aG9kOiJ3Y19zZXNzaW9uRXh0ZW5kIixwYXJhbXM6e30sY2xpZW50UnBjSWQ6cyx0aHJvd09uRmFpbGVkUHVibGlzaDohMH0pLmNhdGNoKGE9PntuKGEpfSkse2Fja25vd2xlZGdlZDppfX0sdGhpcy5yZXF1ZXN0PWFzeW5jIHQ9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKTt0cnl7YXdhaXQgdGhpcy5pc1ZhbGlkUmVxdWVzdCh0KX1jYXRjaCh3KXt0aHJvdyB0aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IoInJlcXVlc3QoKSAtPiBpc1ZhbGlkUmVxdWVzdCgpIGZhaWxlZCIpLHd9bGV0e2NoYWluSWQ6ZSxyZXF1ZXN0OnMsdG9waWM6aSxleHBpcnk6cj1xLndjX3Nlc3Npb25SZXF1ZXN0LnJlcS50dGx9PXQsbj10aGlzLmNsaWVudC5zZXNzaW9uLmdldChpKTtuPy50cmFuc3BvcnRUeXBlPT09Zi5yZWxheSYmYXdhaXQgdGhpcy5jb25maXJtT25saW5lU3RhdGVPclRocm93KCk7bGV0IGE9eigpLGM9aGUoKS50b1N0cmluZygpLHtkb25lOmgscmVzb2x2ZTpwLHJlamVjdDp1fT1IKHIsIlJlcXVlc3QgZXhwaXJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4iKTt0aGlzLmV2ZW50cy5vbmNlKGcoInNlc3Npb25fcmVxdWVzdCIsYSksKHtlcnJvcjp3LHJlc3VsdDptfSk9Pnt3P3Uodyk6cChtKX0pO2xldCBsPXRoaXMuZ2V0QXBwTGlua0lmRW5hYmxlZChuLnBlZXIubWV0YWRhdGEsbi50cmFuc3BvcnRUeXBlKTtyZXR1cm4gbD8oYXdhaXQgdGhpcy5zZW5kUmVxdWVzdCh7Y2xpZW50UnBjSWQ6YSxyZWxheVJwY0lkOmMsdG9waWM6aSxtZXRob2Q6IndjX3Nlc3Npb25SZXF1ZXN0IixwYXJhbXM6e3JlcXVlc3Q6VihJKHt9LHMpLHtleHBpcnlUaW1lc3RhbXA6YihyKX0pLGNoYWluSWQ6ZX0sZXhwaXJ5OnIsdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITAsYXBwTGluazpsfSkuY2F0Y2godz0+dSh3KSksdGhpcy5jbGllbnQuZXZlbnRzLmVtaXQoInNlc3Npb25fcmVxdWVzdF9zZW50Iix7dG9waWM6aSxyZXF1ZXN0OnMsY2hhaW5JZDplLGlkOmF9KSxhd2FpdCBoKCkpOmF3YWl0IFByb21pc2UuYWxsKFtuZXcgUHJvbWlzZShhc3luYyB3PT57YXdhaXQgdGhpcy5zZW5kUmVxdWVzdCh7Y2xpZW50UnBjSWQ6YSxyZWxheVJwY0lkOmMsdG9waWM6aSxtZXRob2Q6IndjX3Nlc3Npb25SZXF1ZXN0IixwYXJhbXM6e3JlcXVlc3Q6VihJKHt9LHMpLHtleHBpcnlUaW1lc3RhbXA6YihyKX0pLGNoYWluSWQ6ZX0sZXhwaXJ5OnIsdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KS5jYXRjaChtPT51KG0pKSx0aGlzLmNsaWVudC5ldmVudHMuZW1pdCgic2Vzc2lvbl9yZXF1ZXN0X3NlbnQiLHt0b3BpYzppLHJlcXVlc3Q6cyxjaGFpbklkOmUsaWQ6YX0pLHcoKX0pLG5ldyBQcm9taXNlKGFzeW5jIHc9Pnt2YXIgbTtpZighKChtPW4uc2Vzc2lvbkNvbmZpZykhPW51bGwmJm0uZGlzYWJsZURlZXBMaW5rKSl7bGV0IHk9YXdhaXQgT3QodGhpcy5jbGllbnQuY29yZS5zdG9yYWdlLG50KTthd2FpdCBidCh7aWQ6YSx0b3BpYzppLHdjRGVlcExpbms6eX0pfXcoKX0pLGgoKV0pLnRoZW4odz0+d1syXSl9LHRoaXMucmVzcG9uZD1hc3luYyB0PT57dGhpcy5pc0luaXRpYWxpemVkKCksYXdhaXQgdGhpcy5pc1ZhbGlkUmVzcG9uZCh0KTtsZXR7dG9waWM6ZSxyZXNwb25zZTpzfT10LHtpZDppfT1zLHI9dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoZSk7ci50cmFuc3BvcnRUeXBlPT09Zi5yZWxheSYmYXdhaXQgdGhpcy5jb25maXJtT25saW5lU3RhdGVPclRocm93KCk7bGV0IG49dGhpcy5nZXRBcHBMaW5rSWZFbmFibGVkKHIucGVlci5tZXRhZGF0YSxyLnRyYW5zcG9ydFR5cGUpO1Uocyk/YXdhaXQgdGhpcy5zZW5kUmVzdWx0KHtpZDppLHRvcGljOmUscmVzdWx0OnMucmVzdWx0LHRocm93T25GYWlsZWRQdWJsaXNoOiEwLGFwcExpbms6bn0pOksocykmJmF3YWl0IHRoaXMuc2VuZEVycm9yKHtpZDppLHRvcGljOmUsZXJyb3I6cy5lcnJvcixhcHBMaW5rOm59KSx0aGlzLmNsZWFudXBBZnRlclJlc3BvbnNlKHQpfSx0aGlzLnBpbmc9YXN5bmMgdD0+e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpO3RyeXthd2FpdCB0aGlzLmlzVmFsaWRQaW5nKHQpfWNhdGNoKHMpe3Rocm93IHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcigicGluZygpIC0+IGlzVmFsaWRQaW5nKCkgZmFpbGVkIiksc31sZXR7dG9waWM6ZX09dDtpZih0aGlzLmNsaWVudC5zZXNzaW9uLmtleXMuaW5jbHVkZXMoZSkpe2xldCBzPXooKSxpPWhlKCkudG9TdHJpbmcoKSx7ZG9uZTpyLHJlc29sdmU6bixyZWplY3Q6YX09SCgpO3RoaXMuZXZlbnRzLm9uY2UoZygic2Vzc2lvbl9waW5nIixzKSwoe2Vycm9yOmN9KT0+e2M/YShjKTpuKCl9KSxhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5zZW5kUmVxdWVzdCh7dG9waWM6ZSxtZXRob2Q6IndjX3Nlc3Npb25QaW5nIixwYXJhbXM6e30sdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITAsY2xpZW50UnBjSWQ6cyxyZWxheVJwY0lkOml9KSxyKCldKX1lbHNlIHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5wYWlyaW5ncy5rZXlzLmluY2x1ZGVzKGUpJiZhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcucGluZyh7dG9waWM6ZX0pfSx0aGlzLmVtaXQ9YXN5bmMgdD0+e3RoaXMuaXNJbml0aWFsaXplZCgpLGF3YWl0IHRoaXMuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpLGF3YWl0IHRoaXMuaXNWYWxpZEVtaXQodCk7bGV0e3RvcGljOmUsZXZlbnQ6cyxjaGFpbklkOml9PXQscj1oZSgpLnRvU3RyaW5nKCksbj16KCk7YXdhaXQgdGhpcy5zZW5kUmVxdWVzdCh7dG9waWM6ZSxtZXRob2Q6IndjX3Nlc3Npb25FdmVudCIscGFyYW1zOntldmVudDpzLGNoYWluSWQ6aX0sdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITAscmVsYXlScGNJZDpyLGNsaWVudFJwY0lkOm59KX0sdGhpcy5kaXNjb25uZWN0PWFzeW5jIHQ9Pnt0aGlzLmlzSW5pdGlhbGl6ZWQoKSxhd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKSxhd2FpdCB0aGlzLmlzVmFsaWREaXNjb25uZWN0KHQpO2xldHt0b3BpYzplfT10O2lmKHRoaXMuY2xpZW50LnNlc3Npb24ua2V5cy5pbmNsdWRlcyhlKSlhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KHt0b3BpYzplLG1ldGhvZDoid2Nfc2Vzc2lvbkRlbGV0ZSIscGFyYW1zOlAoIlVTRVJfRElTQ09OTkVDVEVEIiksdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KSxhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24oe3RvcGljOmUsZW1pdEV2ZW50OiExfSk7ZWxzZSBpZih0aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcucGFpcmluZ3Mua2V5cy5pbmNsdWRlcyhlKSlhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcuZGlzY29ubmVjdCh7dG9waWM6ZX0pO2Vsc2V7bGV0e21lc3NhZ2U6c309ZCgiTUlTTUFUQ0hFRF9UT1BJQyIsYFNlc3Npb24gb3IgcGFpcmluZyB0b3BpYyBub3QgZm91bmQ6ICR7ZX1gKTt0aHJvdyBuZXcgRXJyb3Iocyl9fSx0aGlzLmZpbmQ9dD0+KHRoaXMuaXNJbml0aWFsaXplZCgpLHRoaXMuY2xpZW50LnNlc3Npb24uZ2V0QWxsKCkuZmlsdGVyKGU9PkF0KGUsdCkpKSx0aGlzLmdldFBlbmRpbmdTZXNzaW9uUmVxdWVzdHM9KCk9PnRoaXMuY2xpZW50LnBlbmRpbmdSZXF1ZXN0LmdldEFsbCgpLHRoaXMuYXV0aGVudGljYXRlPWFzeW5jKHQsZSk9Pnt2YXIgczt0aGlzLmlzSW5pdGlhbGl6ZWQoKSx0aGlzLmlzVmFsaWRBdXRoZW50aWNhdGUodCk7bGV0IGk9ZSYmdGhpcy5jbGllbnQuY29yZS5saW5rTW9kZVN1cHBvcnRlZEFwcHMuaW5jbHVkZXMoZSkmJigocz10aGlzLmNsaWVudC5tZXRhZGF0YS5yZWRpcmVjdCk9PW51bGw/dm9pZCAwOnMubGlua01vZGUpLHI9aT9mLmxpbmtfbW9kZTpmLnJlbGF5O3I9PT1mLnJlbGF5JiZhd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKTtsZXR7Y2hhaW5zOm4sc3RhdGVtZW50OmE9IiIsdXJpOmMsZG9tYWluOmgsbm9uY2U6cCx0eXBlOnUsZXhwOmwsbmJmOncsbWV0aG9kczptPVtdLGV4cGlyeTp5fT10LF89Wy4uLnQucmVzb3VyY2VzfHxbXV0se3RvcGljOlIsdXJpOkR9PWF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5jcmVhdGUoe21ldGhvZHM6WyJ3Y19zZXNzaW9uQXV0aGVudGljYXRlIl0sdHJhbnNwb3J0VHlwZTpyfSk7dGhpcy5jbGllbnQubG9nZ2VyLmluZm8oe21lc3NhZ2U6IkdlbmVyYXRlZCBuZXcgcGFpcmluZyIscGFpcmluZzp7dG9waWM6Uix1cmk6RH19KTtsZXQgRT1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZUtleVBhaXIoKSxTPUllKEUpO2lmKGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLmNsaWVudC5hdXRoLmF1dGhLZXlzLnNldCh1ZSx7cmVzcG9uc2VUb3BpYzpTLHB1YmxpY0tleTpFfSksdGhpcy5jbGllbnQuYXV0aC5wYWlyaW5nVG9waWNzLnNldChTLHt0b3BpYzpTLHBhaXJpbmdUb3BpYzpSfSldKSxhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIuc3Vic2NyaWJlKFMse3RyYW5zcG9ydFR5cGU6cn0pLHRoaXMuY2xpZW50LmxvZ2dlci5pbmZvKGBzZW5kaW5nIHJlcXVlc3QgdG8gbmV3IHBhaXJpbmcgdG9waWM6ICR7Un1gKSxtLmxlbmd0aD4wKXtsZXR7bmFtZXNwYWNlOk99PWZlKG5bMF0pLFQ9Q3QoTywicmVxdWVzdCIsbSk7dmUoXykmJihUPXh0KFQsXy5wb3AoKSkpLF8ucHVzaChUKX1sZXQgTD15JiZ5PnEud2Nfc2Vzc2lvbkF1dGhlbnRpY2F0ZS5yZXEudHRsP3k6cS53Y19zZXNzaW9uQXV0aGVudGljYXRlLnJlcS50dGwsVz17YXV0aFBheWxvYWQ6e3R5cGU6dT8/ImNhaXAxMjIiLGNoYWluczpuLHN0YXRlbWVudDphLGF1ZDpjLGRvbWFpbjpoLHZlcnNpb246IjEiLG5vbmNlOnAsaWF0Om5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxleHA6bCxuYmY6dyxyZXNvdXJjZXM6X30scmVxdWVzdGVyOntwdWJsaWNLZXk6RSxtZXRhZGF0YTp0aGlzLmNsaWVudC5tZXRhZGF0YX0sZXhwaXJ5VGltZXN0YW1wOmIoTCl9LE49e2VpcDE1NTp7Y2hhaW5zOm4sbWV0aG9kczpbLi4ubmV3IFNldChbInBlcnNvbmFsX3NpZ24iLC4uLm1dKV0sZXZlbnRzOlsiY2hhaW5DaGFuZ2VkIiwiYWNjb3VudHNDaGFuZ2VkIl19fSwkZT17cmVxdWlyZWROYW1lc3BhY2VzOnt9LG9wdGlvbmFsTmFtZXNwYWNlczpOLHJlbGF5czpbe3Byb3RvY29sOiJpcm4ifV0scGFpcmluZ1RvcGljOlIscHJvcG9zZXI6e3B1YmxpY0tleTpFLG1ldGFkYXRhOnRoaXMuY2xpZW50Lm1ldGFkYXRhfSxleHBpcnlUaW1lc3RhbXA6YihxLndjX3Nlc3Npb25Qcm9wb3NlLnJlcS50dGwpfSx7ZG9uZTp1dCxyZXNvbHZlOlVlLHJlamVjdDp3ZX09SChMLCJSZXF1ZXN0IGV4cGlyZWQiKSxhZT1hc3luYyh7ZXJyb3I6TyxzZXNzaW9uOlR9KT0+e2lmKHRoaXMuZXZlbnRzLm9mZihnKCJzZXNzaW9uX3JlcXVlc3QiLEcpLG1lKSxPKXdlKE8pO2Vsc2UgaWYoVCl7VC5zZWxmLnB1YmxpY0tleT1FLGF3YWl0IHRoaXMuY2xpZW50LnNlc3Npb24uc2V0KFQudG9waWMsVCksYXdhaXQgdGhpcy5zZXRFeHBpcnkoVC50b3BpYyxULmV4cGlyeSksUiYmYXdhaXQgdGhpcy5jbGllbnQuY29yZS5wYWlyaW5nLnVwZGF0ZU1ldGFkYXRhKHt0b3BpYzpSLG1ldGFkYXRhOlQucGVlci5tZXRhZGF0YX0pO2xldCBvZT10aGlzLmNsaWVudC5zZXNzaW9uLmdldChULnRvcGljKTthd2FpdCB0aGlzLmRlbGV0ZVByb3Bvc2FsKFopLFVlKHtzZXNzaW9uOm9lfSl9fSxtZT1hc3luYyBPPT57dmFyIFQsb2UsR2U7aWYoYXdhaXQgdGhpcy5kZWxldGVQZW5kaW5nQXV0aFJlcXVlc3QoRyx7bWVzc2FnZToiZnVsZmlsbGVkIixjb2RlOjB9KSxPLmVycm9yKXtsZXQgdGU9UCgiV0NfTUVUSE9EX1VOU1VQUE9SVEVEIiwid2Nfc2Vzc2lvbkF1dGhlbnRpY2F0ZSIpO3JldHVybiBPLmVycm9yLmNvZGU9PT10ZS5jb2RlP3ZvaWQgMDoodGhpcy5ldmVudHMub2ZmKGcoInNlc3Npb25fY29ubmVjdCIpLGFlKSx3ZShPLmVycm9yLm1lc3NhZ2UpKX1hd2FpdCB0aGlzLmRlbGV0ZVByb3Bvc2FsKFopLHRoaXMuZXZlbnRzLm9mZihnKCJzZXNzaW9uX2Nvbm5lY3QiKSxhZSk7bGV0e2NhY2FvczpqZSxyZXNwb25kZXI6an09Ty5yZXN1bHQsX2U9W10sRmU9W107Zm9yKGxldCB0ZSBvZiBqZSl7YXdhaXQgWGUoe2NhY2FvOnRlLHByb2plY3RJZDp0aGlzLmNsaWVudC5jb3JlLnByb2plY3RJZH0pfHwodGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKHRlLCJTaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxlZCIpLHdlKFAoIlNFU1NJT05fU0VUVExFTUVOVF9GQUlMRUQiLCJTaWduYXR1cmUgdmVyaWZpY2F0aW9uIGZhaWxlZCIpKSk7bGV0e3A6RWV9PXRlLFJlPXZlKEVlLnJlc291cmNlcyksUWU9W0plKEVlLmlzcyldLGd0PUJlKEVlLmlzcyk7aWYoUmUpe2xldCBTZT1XZShSZSkseXQ9WmUoUmUpO19lLnB1c2goLi4uU2UpLFFlLnB1c2goLi4ueXQpfWZvcihsZXQgU2Ugb2YgUWUpRmUucHVzaChgJHtTZX06JHtndH1gKX1sZXQgZWU9YXdhaXQgdGhpcy5jbGllbnQuY29yZS5jcnlwdG8uZ2VuZXJhdGVTaGFyZWRLZXkoRSxqLnB1YmxpY0tleSksY2U7X2UubGVuZ3RoPjAmJihjZT17dG9waWM6ZWUsYWNrbm93bGVkZ2VkOiEwLHNlbGY6e3B1YmxpY0tleTpFLG1ldGFkYXRhOnRoaXMuY2xpZW50Lm1ldGFkYXRhfSxwZWVyOmosY29udHJvbGxlcjpqLnB1YmxpY0tleSxleHBpcnk6YihKKSxyZXF1aXJlZE5hbWVzcGFjZXM6e30sb3B0aW9uYWxOYW1lc3BhY2VzOnt9LHJlbGF5Ontwcm90b2NvbDoiaXJuIn0scGFpcmluZ1RvcGljOlIsbmFtZXNwYWNlczpldChbLi4ubmV3IFNldChfZSldLFsuLi5uZXcgU2V0KEZlKV0pLHRyYW5zcG9ydFR5cGU6cn0sYXdhaXQgdGhpcy5jbGllbnQuY29yZS5yZWxheWVyLnN1YnNjcmliZShlZSx7dHJhbnNwb3J0VHlwZTpyfSksYXdhaXQgdGhpcy5jbGllbnQuc2Vzc2lvbi5zZXQoZWUsY2UpLFImJmF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy51cGRhdGVNZXRhZGF0YSh7dG9waWM6UixtZXRhZGF0YTpqLm1ldGFkYXRhfSksY2U9dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoZWUpKSwoVD10aGlzLmNsaWVudC5tZXRhZGF0YS5yZWRpcmVjdCkhPW51bGwmJlQubGlua01vZGUmJihvZT1qLm1ldGFkYXRhLnJlZGlyZWN0KSE9bnVsbCYmb2UubGlua01vZGUmJihHZT1qLm1ldGFkYXRhLnJlZGlyZWN0KSE9bnVsbCYmR2UudW5pdmVyc2FsJiZlJiYodGhpcy5jbGllbnQuY29yZS5hZGRMaW5rTW9kZVN1cHBvcnRlZEFwcChqLm1ldGFkYXRhLnJlZGlyZWN0LnVuaXZlcnNhbCksdGhpcy5jbGllbnQuc2Vzc2lvbi51cGRhdGUoZWUse3RyYW5zcG9ydFR5cGU6Zi5saW5rX21vZGV9KSksVWUoe2F1dGhzOmplLHNlc3Npb246Y2V9KX0sRz16KCksWj16KCk7dGhpcy5ldmVudHMub25jZShnKCJzZXNzaW9uX2Nvbm5lY3QiKSxhZSksdGhpcy5ldmVudHMub25jZShnKCJzZXNzaW9uX3JlcXVlc3QiLEcpLG1lKTtsZXQgS2U7dHJ5e2lmKGkpe2xldCBPPWRlKCJ3Y19zZXNzaW9uQXV0aGVudGljYXRlIixXLEcpO3RoaXMuY2xpZW50LmNvcmUuaGlzdG9yeS5zZXQoUixPKTtsZXQgVD1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5lbmNvZGUoIiIsTyx7dHlwZTpWdCxlbmNvZGluZzppZX0pO0tlPWxlKGUsUixUKX1lbHNlIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLnNlbmRSZXF1ZXN0KHt0b3BpYzpSLG1ldGhvZDoid2Nfc2Vzc2lvbkF1dGhlbnRpY2F0ZSIscGFyYW1zOlcsZXhwaXJ5OnQuZXhwaXJ5LHRocm93T25GYWlsZWRQdWJsaXNoOiEwLGNsaWVudFJwY0lkOkd9KSx0aGlzLnNlbmRSZXF1ZXN0KHt0b3BpYzpSLG1ldGhvZDoid2Nfc2Vzc2lvblByb3Bvc2UiLHBhcmFtczokZSxleHBpcnk6cS53Y19zZXNzaW9uUHJvcG9zZS5yZXEudHRsLHRocm93T25GYWlsZWRQdWJsaXNoOiEwLGNsaWVudFJwY0lkOlp9KV0pfWNhdGNoKE8pe3Rocm93IHRoaXMuZXZlbnRzLm9mZihnKCJzZXNzaW9uX2Nvbm5lY3QiKSxhZSksdGhpcy5ldmVudHMub2ZmKGcoInNlc3Npb25fcmVxdWVzdCIsRyksbWUpLE99cmV0dXJuIGF3YWl0IHRoaXMuc2V0UHJvcG9zYWwoWixJKHtpZDpafSwkZSkpLGF3YWl0IHRoaXMuc2V0QXV0aFJlcXVlc3QoRyx7cmVxdWVzdDpWKEkoe30sVykse3ZlcmlmeUNvbnRleHQ6e319KSxwYWlyaW5nVG9waWM6Uix0cmFuc3BvcnRUeXBlOnJ9KSx7dXJpOktlPz9ELHJlc3BvbnNlOnV0fX0sdGhpcy5hcHByb3ZlU2Vzc2lvbkF1dGhlbnRpY2F0ZT1hc3luYyB0PT57bGV0e2lkOmUsYXV0aHM6c309dCxpPXRoaXMuY2xpZW50LmNvcmUuZXZlbnRDbGllbnQuY3JlYXRlRXZlbnQoe3Byb3BlcnRpZXM6e3RvcGljOmUudG9TdHJpbmcoKSx0cmFjZTpbUS5hdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZV9zdGFydGVkXX19KTt0cnl7dGhpcy5pc0luaXRpYWxpemVkKCl9Y2F0Y2goeSl7dGhyb3cgaS5zZXRFcnJvcihzZS5ub19pbnRlcm5ldF9jb25uZWN0aW9uKSx5fWxldCByPXRoaXMuZ2V0UGVuZGluZ0F1dGhSZXF1ZXN0KGUpO2lmKCFyKXRocm93IGkuc2V0RXJyb3Ioc2UuYXV0aGVudGljYXRlZF9zZXNzaW9uX3BlbmRpbmdfcmVxdWVzdF9ub3RfZm91bmQpLG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgcGVuZGluZyBhdXRoIHJlcXVlc3Qgd2l0aCBpZCAke2V9YCk7bGV0IG49ci50cmFuc3BvcnRUeXBlfHxmLnJlbGF5O249PT1mLnJlbGF5JiZhd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKTtsZXQgYT1yLnJlcXVlc3Rlci5wdWJsaWNLZXksYz1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZUtleVBhaXIoKSxoPUllKGEpLHA9e3R5cGU6VGUscmVjZWl2ZXJQdWJsaWNLZXk6YSxzZW5kZXJQdWJsaWNLZXk6Y30sdT1bXSxsPVtdO2ZvcihsZXQgeSBvZiBzKXtpZighYXdhaXQgWGUoe2NhY2FvOnkscHJvamVjdElkOnRoaXMuY2xpZW50LmNvcmUucHJvamVjdElkfSkpe2kuc2V0RXJyb3Ioc2UuaW52YWxpZF9jYWNhbyk7bGV0IFM9UCgiU0VTU0lPTl9TRVRUTEVNRU5UX0ZBSUxFRCIsIlNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkIik7dGhyb3cgYXdhaXQgdGhpcy5zZW5kRXJyb3Ioe2lkOmUsdG9waWM6aCxlcnJvcjpTLGVuY29kZU9wdHM6cH0pLG5ldyBFcnJvcihTLm1lc3NhZ2UpfWkuYWRkVHJhY2UoUS5jYWNhb3NfdmVyaWZpZWQpO2xldHtwOl99PXksUj12ZShfLnJlc291cmNlcyksRD1bSmUoXy5pc3MpXSxFPUJlKF8uaXNzKTtpZihSKXtsZXQgUz1XZShSKSxMPVplKFIpO3UucHVzaCguLi5TKSxELnB1c2goLi4uTCl9Zm9yKGxldCBTIG9mIEQpbC5wdXNoKGAke1N9OiR7RX1gKX1sZXQgdz1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZVNoYXJlZEtleShjLGEpO2kuYWRkVHJhY2UoUS5jcmVhdGVfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljKTtsZXQgbTtpZih1Py5sZW5ndGg+MCl7bT17dG9waWM6dyxhY2tub3dsZWRnZWQ6ITAsc2VsZjp7cHVibGljS2V5OmMsbWV0YWRhdGE6dGhpcy5jbGllbnQubWV0YWRhdGF9LHBlZXI6e3B1YmxpY0tleTphLG1ldGFkYXRhOnIucmVxdWVzdGVyLm1ldGFkYXRhfSxjb250cm9sbGVyOmEsZXhwaXJ5OmIoSiksYXV0aGVudGljYXRpb246cyxyZXF1aXJlZE5hbWVzcGFjZXM6e30sb3B0aW9uYWxOYW1lc3BhY2VzOnt9LHJlbGF5Ontwcm90b2NvbDoiaXJuIn0scGFpcmluZ1RvcGljOnIucGFpcmluZ1RvcGljLG5hbWVzcGFjZXM6ZXQoWy4uLm5ldyBTZXQodSldLFsuLi5uZXcgU2V0KGwpXSksdHJhbnNwb3J0VHlwZTpufSxpLmFkZFRyYWNlKFEuc3Vic2NyaWJpbmdfYXV0aGVudGljYXRlZF9zZXNzaW9uX3RvcGljKTt0cnl7YXdhaXQgdGhpcy5jbGllbnQuY29yZS5yZWxheWVyLnN1YnNjcmliZSh3LHt0cmFuc3BvcnRUeXBlOm59KX1jYXRjaCh5KXt0aHJvdyBpLnNldEVycm9yKHNlLnN1YnNjcmliZV9hdXRoZW50aWNhdGVkX3Nlc3Npb25fdG9waWNfZmFpbHVyZSkseX1pLmFkZFRyYWNlKFEuc3Vic2NyaWJlX2F1dGhlbnRpY2F0ZWRfc2Vzc2lvbl90b3BpY19zdWNjZXNzKSxhd2FpdCB0aGlzLmNsaWVudC5zZXNzaW9uLnNldCh3LG0pLGkuYWRkVHJhY2UoUS5zdG9yZV9hdXRoZW50aWNhdGVkX3Nlc3Npb24pLGF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy51cGRhdGVNZXRhZGF0YSh7dG9waWM6ci5wYWlyaW5nVG9waWMsbWV0YWRhdGE6ci5yZXF1ZXN0ZXIubWV0YWRhdGF9KX1pLmFkZFRyYWNlKFEucHVibGlzaGluZ19hdXRoZW50aWNhdGVkX3Nlc3Npb25fYXBwcm92ZSk7dHJ5e2F3YWl0IHRoaXMuc2VuZFJlc3VsdCh7dG9waWM6aCxpZDplLHJlc3VsdDp7Y2FjYW9zOnMscmVzcG9uZGVyOntwdWJsaWNLZXk6YyxtZXRhZGF0YTp0aGlzLmNsaWVudC5tZXRhZGF0YX19LGVuY29kZU9wdHM6cCx0aHJvd09uRmFpbGVkUHVibGlzaDohMCxhcHBMaW5rOnRoaXMuZ2V0QXBwTGlua0lmRW5hYmxlZChyLnJlcXVlc3Rlci5tZXRhZGF0YSxuKX0pfWNhdGNoKHkpe3Rocm93IGkuc2V0RXJyb3Ioc2UuYXV0aGVudGljYXRlZF9zZXNzaW9uX2FwcHJvdmVfcHVibGlzaF9mYWlsdXJlKSx5fXJldHVybiBhd2FpdCB0aGlzLmNsaWVudC5hdXRoLnJlcXVlc3RzLmRlbGV0ZShlLHttZXNzYWdlOiJmdWxmaWxsZWQiLGNvZGU6MH0pLGF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5hY3RpdmF0ZSh7dG9waWM6ci5wYWlyaW5nVG9waWN9KSx0aGlzLmNsaWVudC5jb3JlLmV2ZW50Q2xpZW50LmRlbGV0ZUV2ZW50KHtldmVudElkOmkuZXZlbnRJZH0pLHtzZXNzaW9uOm19fSx0aGlzLnJlamVjdFNlc3Npb25BdXRoZW50aWNhdGU9YXN5bmMgdD0+e3RoaXMuaXNJbml0aWFsaXplZCgpO2xldHtpZDplLHJlYXNvbjpzfT10LGk9dGhpcy5nZXRQZW5kaW5nQXV0aFJlcXVlc3QoZSk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBwZW5kaW5nIGF1dGggcmVxdWVzdCB3aXRoIGlkICR7ZX1gKTtpLnRyYW5zcG9ydFR5cGU9PT1mLnJlbGF5JiZhd2FpdCB0aGlzLmNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKTtsZXQgcj1pLnJlcXVlc3Rlci5wdWJsaWNLZXksbj1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZUtleVBhaXIoKSxhPUllKHIpLGM9e3R5cGU6VGUscmVjZWl2ZXJQdWJsaWNLZXk6cixzZW5kZXJQdWJsaWNLZXk6bn07YXdhaXQgdGhpcy5zZW5kRXJyb3Ioe2lkOmUsdG9waWM6YSxlcnJvcjpzLGVuY29kZU9wdHM6YyxycGNPcHRzOnEud2Nfc2Vzc2lvbkF1dGhlbnRpY2F0ZS5yZWplY3QsYXBwTGluazp0aGlzLmdldEFwcExpbmtJZkVuYWJsZWQoaS5yZXF1ZXN0ZXIubWV0YWRhdGEsaS50cmFuc3BvcnRUeXBlKX0pLGF3YWl0IHRoaXMuY2xpZW50LmF1dGgucmVxdWVzdHMuZGVsZXRlKGUse21lc3NhZ2U6InJlamVjdGVkIixjb2RlOjB9KSxhd2FpdCB0aGlzLmNsaWVudC5wcm9wb3NhbC5kZWxldGUoZSxQKCJVU0VSX0RJU0NPTk5FQ1RFRCIpKX0sdGhpcy5mb3JtYXRBdXRoTWVzc2FnZT10PT57dGhpcy5pc0luaXRpYWxpemVkKCk7bGV0e3JlcXVlc3Q6ZSxpc3M6c309dDtyZXR1cm4gRHQoZSxzKX0sdGhpcy5wcm9jZXNzUmVsYXlNZXNzYWdlQ2FjaGU9KCk9PntzZXRUaW1lb3V0KGFzeW5jKCk9PntpZih0aGlzLnJlbGF5TWVzc2FnZUNhY2hlLmxlbmd0aCE9PTApZm9yKDt0aGlzLnJlbGF5TWVzc2FnZUNhY2hlLmxlbmd0aD4wOyl0cnl7bGV0IHQ9dGhpcy5yZWxheU1lc3NhZ2VDYWNoZS5zaGlmdCgpO3QmJmF3YWl0IHRoaXMub25SZWxheU1lc3NhZ2UodCl9Y2F0Y2godCl7dGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKHQpfX0sNTApfSx0aGlzLmNsZWFudXBEdXBsaWNhdGVQYWlyaW5ncz1hc3luYyB0PT57aWYodC5wYWlyaW5nVG9waWMpdHJ5e2xldCBlPXRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5wYWlyaW5ncy5nZXQodC5wYWlyaW5nVG9waWMpLHM9dGhpcy5jbGllbnQuY29yZS5wYWlyaW5nLnBhaXJpbmdzLmdldEFsbCgpLmZpbHRlcihpPT57dmFyIHIsbjtyZXR1cm4oKHI9aS5wZWVyTWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpyLnVybCkmJigobj1pLnBlZXJNZXRhZGF0YSk9PW51bGw/dm9pZCAwOm4udXJsKT09PXQucGVlci5tZXRhZGF0YS51cmwmJmkudG9waWMmJmkudG9waWMhPT1lLnRvcGljfSk7aWYocy5sZW5ndGg9PT0wKXJldHVybjt0aGlzLmNsaWVudC5sb2dnZXIuaW5mbyhgQ2xlYW5pbmcgdXAgJHtzLmxlbmd0aH0gZHVwbGljYXRlIHBhaXJpbmcocylgKSxhd2FpdCBQcm9taXNlLmFsbChzLm1hcChpPT50aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcuZGlzY29ubmVjdCh7dG9waWM6aS50b3BpY30pKSksdGhpcy5jbGllbnQubG9nZ2VyLmluZm8oIkR1cGxpY2F0ZSBwYWlyaW5ncyBjbGVhbiB1cCBmaW5pc2hlZCIpfWNhdGNoKGUpe3RoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihlKX19LHRoaXMuZGVsZXRlU2Vzc2lvbj1hc3luYyB0PT57dmFyIGU7bGV0e3RvcGljOnMsZXhwaXJlckhhc0RlbGV0ZWQ6aT0hMSxlbWl0RXZlbnQ6cj0hMCxpZDpuPTB9PXQse3NlbGY6YX09dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQocyk7YXdhaXQgdGhpcy5jbGllbnQuY29yZS5yZWxheWVyLnVuc3Vic2NyaWJlKHMpLGF3YWl0IHRoaXMuY2xpZW50LnNlc3Npb24uZGVsZXRlKHMsUCgiVVNFUl9ESVNDT05ORUNURUQiKSksdGhpcy5hZGRUb1JlY2VudGx5RGVsZXRlZChzLCJzZXNzaW9uIiksdGhpcy5jbGllbnQuY29yZS5jcnlwdG8ua2V5Y2hhaW4uaGFzKGEucHVibGljS2V5KSYmYXdhaXQgdGhpcy5jbGllbnQuY29yZS5jcnlwdG8uZGVsZXRlS2V5UGFpcihhLnB1YmxpY0tleSksdGhpcy5jbGllbnQuY29yZS5jcnlwdG8ua2V5Y2hhaW4uaGFzKHMpJiZhd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5kZWxldGVTeW1LZXkocyksaXx8dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLmRlbChzKSx0aGlzLmNsaWVudC5jb3JlLnN0b3JhZ2UucmVtb3ZlSXRlbShudCkuY2F0Y2goYz0+dGhpcy5jbGllbnQubG9nZ2VyLndhcm4oYykpLHRoaXMuZ2V0UGVuZGluZ1Nlc3Npb25SZXF1ZXN0cygpLmZvckVhY2goYz0+e2MudG9waWM9PT1zJiZ0aGlzLmRlbGV0ZVBlbmRpbmdTZXNzaW9uUmVxdWVzdChjLmlkLFAoIlVTRVJfRElTQ09OTkVDVEVEIikpfSkscz09PSgoZT10aGlzLnNlc3Npb25SZXF1ZXN0UXVldWUucXVldWVbMF0pPT1udWxsP3ZvaWQgMDplLnRvcGljKSYmKHRoaXMuc2Vzc2lvblJlcXVlc3RRdWV1ZS5zdGF0ZT1NLmlkbGUpLHImJnRoaXMuY2xpZW50LmV2ZW50cy5lbWl0KCJzZXNzaW9uX2RlbGV0ZSIse2lkOm4sdG9waWM6c30pfSx0aGlzLmRlbGV0ZVByb3Bvc2FsPWFzeW5jKHQsZSk9PntpZihlKXRyeXtsZXQgcz10aGlzLmNsaWVudC5wcm9wb3NhbC5nZXQodCk7dGhpcy5jbGllbnQuY29yZS5ldmVudENsaWVudC5nZXRFdmVudCh7dG9waWM6cy5wYWlyaW5nVG9waWN9KT8uc2V0RXJyb3IoRi5wcm9wb3NhbF9leHBpcmVkKX1jYXRjaHt9YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuY2xpZW50LnByb3Bvc2FsLmRlbGV0ZSh0LFAoIlVTRVJfRElTQ09OTkVDVEVEIikpLGU/UHJvbWlzZS5yZXNvbHZlKCk6dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLmRlbCh0KV0pLHRoaXMuYWRkVG9SZWNlbnRseURlbGV0ZWQodCwicHJvcG9zYWwiKX0sdGhpcy5kZWxldGVQZW5kaW5nU2Vzc2lvblJlcXVlc3Q9YXN5bmModCxlLHM9ITEpPT57YXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuY2xpZW50LnBlbmRpbmdSZXF1ZXN0LmRlbGV0ZSh0LGUpLHM/UHJvbWlzZS5yZXNvbHZlKCk6dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLmRlbCh0KV0pLHRoaXMuYWRkVG9SZWNlbnRseURlbGV0ZWQodCwicmVxdWVzdCIpLHRoaXMuc2Vzc2lvblJlcXVlc3RRdWV1ZS5xdWV1ZT10aGlzLnNlc3Npb25SZXF1ZXN0UXVldWUucXVldWUuZmlsdGVyKGk9PmkuaWQhPT10KSxzJiYodGhpcy5zZXNzaW9uUmVxdWVzdFF1ZXVlLnN0YXRlPU0uaWRsZSx0aGlzLmNsaWVudC5ldmVudHMuZW1pdCgic2Vzc2lvbl9yZXF1ZXN0X2V4cGlyZSIse2lkOnR9KSl9LHRoaXMuZGVsZXRlUGVuZGluZ0F1dGhSZXF1ZXN0PWFzeW5jKHQsZSxzPSExKT0+e2F3YWl0IFByb21pc2UuYWxsKFt0aGlzLmNsaWVudC5hdXRoLnJlcXVlc3RzLmRlbGV0ZSh0LGUpLHM/UHJvbWlzZS5yZXNvbHZlKCk6dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLmRlbCh0KV0pfSx0aGlzLnNldEV4cGlyeT1hc3luYyh0LGUpPT57dGhpcy5jbGllbnQuc2Vzc2lvbi5rZXlzLmluY2x1ZGVzKHQpJiYodGhpcy5jbGllbnQuY29yZS5leHBpcmVyLnNldCh0LGUpLGF3YWl0IHRoaXMuY2xpZW50LnNlc3Npb24udXBkYXRlKHQse2V4cGlyeTplfSkpfSx0aGlzLnNldFByb3Bvc2FsPWFzeW5jKHQsZSk9Pnt0aGlzLmNsaWVudC5jb3JlLmV4cGlyZXIuc2V0KHQsYihxLndjX3Nlc3Npb25Qcm9wb3NlLnJlcS50dGwpKSxhd2FpdCB0aGlzLmNsaWVudC5wcm9wb3NhbC5zZXQodCxlKX0sdGhpcy5zZXRBdXRoUmVxdWVzdD1hc3luYyh0LGUpPT57bGV0e3JlcXVlc3Q6cyxwYWlyaW5nVG9waWM6aSx0cmFuc3BvcnRUeXBlOnI9Zi5yZWxheX09ZTt0aGlzLmNsaWVudC5jb3JlLmV4cGlyZXIuc2V0KHQscy5leHBpcnlUaW1lc3RhbXApLGF3YWl0IHRoaXMuY2xpZW50LmF1dGgucmVxdWVzdHMuc2V0KHQse2F1dGhQYXlsb2FkOnMuYXV0aFBheWxvYWQscmVxdWVzdGVyOnMucmVxdWVzdGVyLGV4cGlyeVRpbWVzdGFtcDpzLmV4cGlyeVRpbWVzdGFtcCxpZDp0LHBhaXJpbmdUb3BpYzppLHZlcmlmeUNvbnRleHQ6cy52ZXJpZnlDb250ZXh0LHRyYW5zcG9ydFR5cGU6cn0pfSx0aGlzLnNldFBlbmRpbmdTZXNzaW9uUmVxdWVzdD1hc3luYyB0PT57bGV0e2lkOmUsdG9waWM6cyxwYXJhbXM6aSx2ZXJpZnlDb250ZXh0OnJ9PXQsbj1pLnJlcXVlc3QuZXhwaXJ5VGltZXN0YW1wfHxiKHEud2Nfc2Vzc2lvblJlcXVlc3QucmVxLnR0bCk7dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLnNldChlLG4pLGF3YWl0IHRoaXMuY2xpZW50LnBlbmRpbmdSZXF1ZXN0LnNldChlLHtpZDplLHRvcGljOnMscGFyYW1zOmksdmVyaWZ5Q29udGV4dDpyfSl9LHRoaXMuc2VuZFJlcXVlc3Q9YXN5bmMgdD0+e2xldHt0b3BpYzplLG1ldGhvZDpzLHBhcmFtczppLGV4cGlyeTpyLHJlbGF5UnBjSWQ6bixjbGllbnRScGNJZDphLHRocm93T25GYWlsZWRQdWJsaXNoOmMsYXBwTGluazpofT10LHA9ZGUocyxpLGEpLHUsbD0hIWg7dHJ5e2xldCB5PWw/aWU6cGU7dT1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5lbmNvZGUoZSxwLHtlbmNvZGluZzp5fSl9Y2F0Y2goeSl7dGhyb3cgYXdhaXQgdGhpcy5jbGVhbnVwKCksdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGBzZW5kUmVxdWVzdCgpIC0+IGNvcmUuY3J5cHRvLmVuY29kZSgpIGZvciB0b3BpYyAke2V9IGZhaWxlZGApLHl9bGV0IHc7aWYobHMuaW5jbHVkZXMocykpe2xldCB5PVkoSlNPTi5zdHJpbmdpZnkocCkpLF89WSh1KTt3PWF3YWl0IHRoaXMuY2xpZW50LmNvcmUudmVyaWZ5LnJlZ2lzdGVyKHtpZDpfLGRlY3J5cHRlZElkOnl9KX1sZXQgbT1xW3NdLnJlcTtpZihtLmF0dGVzdGF0aW9uPXcsciYmKG0udHRsPXIpLG4mJihtLmlkPW4pLHRoaXMuY2xpZW50LmNvcmUuaGlzdG9yeS5zZXQoZSxwKSxsKXtsZXQgeT1sZShoLGUsdSk7YXdhaXQgZ2xvYmFsVGhpcy5MaW5raW5nLm9wZW5VUkwoeSx0aGlzLmNsaWVudC5uYW1lKX1lbHNle2xldCB5PXFbc10ucmVxO3ImJih5LnR0bD1yKSxuJiYoeS5pZD1uKSxjPyh5LmludGVybmFsPVYoSSh7fSx5LmludGVybmFsKSx7dGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KSxhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIucHVibGlzaChlLHUseSkpOnRoaXMuY2xpZW50LmNvcmUucmVsYXllci5wdWJsaXNoKGUsdSx5KS5jYXRjaChfPT50aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IoXykpfXJldHVybiBwLmlkfSx0aGlzLnNlbmRSZXN1bHQ9YXN5bmMgdD0+e2xldHtpZDplLHRvcGljOnMscmVzdWx0OmksdGhyb3dPbkZhaWxlZFB1Ymxpc2g6cixlbmNvZGVPcHRzOm4sYXBwTGluazphfT10LGM9ZXMoZSxpKSxoLHA9YSYmdHlwZW9mIGdsb2JhbFRoaXM/Lkxpbmtpbmc8InUiO3RyeXtsZXQgbD1wP2llOnBlO2g9YXdhaXQgdGhpcy5jbGllbnQuY29yZS5jcnlwdG8uZW5jb2RlKHMsYyxWKEkoe30sbnx8e30pLHtlbmNvZGluZzpsfSkpfWNhdGNoKGwpe3Rocm93IGF3YWl0IHRoaXMuY2xlYW51cCgpLHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihgc2VuZFJlc3VsdCgpIC0+IGNvcmUuY3J5cHRvLmVuY29kZSgpIGZvciB0b3BpYyAke3N9IGZhaWxlZGApLGx9bGV0IHU7dHJ5e3U9YXdhaXQgdGhpcy5jbGllbnQuY29yZS5oaXN0b3J5LmdldChzLGUpfWNhdGNoKGwpe3Rocm93IHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihgc2VuZFJlc3VsdCgpIC0+IGhpc3RvcnkuZ2V0KCR7c30sICR7ZX0pIGZhaWxlZGApLGx9aWYocCl7bGV0IGw9bGUoYSxzLGgpO2F3YWl0IGdsb2JhbFRoaXMuTGlua2luZy5vcGVuVVJMKGwsdGhpcy5jbGllbnQubmFtZSl9ZWxzZXtsZXQgbD1xW3UucmVxdWVzdC5tZXRob2RdLnJlcztyPyhsLmludGVybmFsPVYoSSh7fSxsLmludGVybmFsKSx7dGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KSxhd2FpdCB0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIucHVibGlzaChzLGgsbCkpOnRoaXMuY2xpZW50LmNvcmUucmVsYXllci5wdWJsaXNoKHMsaCxsKS5jYXRjaCh3PT50aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IodykpfWF3YWl0IHRoaXMuY2xpZW50LmNvcmUuaGlzdG9yeS5yZXNvbHZlKGMpfSx0aGlzLnNlbmRFcnJvcj1hc3luYyB0PT57bGV0e2lkOmUsdG9waWM6cyxlcnJvcjppLGVuY29kZU9wdHM6cixycGNPcHRzOm4sYXBwTGluazphfT10LGM9dHMoZSxpKSxoLHA9YSYmdHlwZW9mIGdsb2JhbFRoaXM/Lkxpbmtpbmc8InUiO3RyeXtsZXQgbD1wP2llOnBlO2g9YXdhaXQgdGhpcy5jbGllbnQuY29yZS5jcnlwdG8uZW5jb2RlKHMsYyxWKEkoe30scnx8e30pLHtlbmNvZGluZzpsfSkpfWNhdGNoKGwpe3Rocm93IGF3YWl0IHRoaXMuY2xlYW51cCgpLHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihgc2VuZEVycm9yKCkgLT4gY29yZS5jcnlwdG8uZW5jb2RlKCkgZm9yIHRvcGljICR7c30gZmFpbGVkYCksbH1sZXQgdTt0cnl7dT1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmhpc3RvcnkuZ2V0KHMsZSl9Y2F0Y2gobCl7dGhyb3cgdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGBzZW5kRXJyb3IoKSAtPiBoaXN0b3J5LmdldCgke3N9LCAke2V9KSBmYWlsZWRgKSxsfWlmKHApe2xldCBsPWxlKGEscyxoKTthd2FpdCBnbG9iYWxUaGlzLkxpbmtpbmcub3BlblVSTChsLHRoaXMuY2xpZW50Lm5hbWUpfWVsc2V7bGV0IGw9bnx8cVt1LnJlcXVlc3QubWV0aG9kXS5yZXM7dGhpcy5jbGllbnQuY29yZS5yZWxheWVyLnB1Ymxpc2gocyxoLGwpfWF3YWl0IHRoaXMuY2xpZW50LmNvcmUuaGlzdG9yeS5yZXNvbHZlKGMpfSx0aGlzLmNsZWFudXA9YXN5bmMoKT0+e2xldCB0PVtdLGU9W107dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXRBbGwoKS5mb3JFYWNoKHM9PntsZXQgaT0hMTtYKHMuZXhwaXJ5KSYmKGk9ITApLHRoaXMuY2xpZW50LmNvcmUuY3J5cHRvLmtleWNoYWluLmhhcyhzLnRvcGljKXx8KGk9ITApLGkmJnQucHVzaChzLnRvcGljKX0pLHRoaXMuY2xpZW50LnByb3Bvc2FsLmdldEFsbCgpLmZvckVhY2gocz0+e1gocy5leHBpcnlUaW1lc3RhbXApJiZlLnB1c2gocy5pZCl9KSxhd2FpdCBQcm9taXNlLmFsbChbLi4udC5tYXAocz0+dGhpcy5kZWxldGVTZXNzaW9uKHt0b3BpYzpzfSkpLC4uLmUubWFwKHM9PnRoaXMuZGVsZXRlUHJvcG9zYWwocykpXSl9LHRoaXMub25SZWxheUV2ZW50UmVxdWVzdD1hc3luYyB0PT57dGhpcy5yZXF1ZXN0UXVldWUucXVldWUucHVzaCh0KSxhd2FpdCB0aGlzLnByb2Nlc3NSZXF1ZXN0c1F1ZXVlKCl9LHRoaXMucHJvY2Vzc1JlcXVlc3RzUXVldWU9YXN5bmMoKT0+e2lmKHRoaXMucmVxdWVzdFF1ZXVlLnN0YXRlPT09TS5hY3RpdmUpe3RoaXMuY2xpZW50LmxvZ2dlci5pbmZvKCJSZXF1ZXN0IHF1ZXVlIGFscmVhZHkgYWN0aXZlLCBza2lwcGluZy4uLiIpO3JldHVybn1mb3IodGhpcy5jbGllbnQubG9nZ2VyLmluZm8oYFJlcXVlc3QgcXVldWUgc3RhcnRpbmcgd2l0aCAke3RoaXMucmVxdWVzdFF1ZXVlLnF1ZXVlLmxlbmd0aH0gcmVxdWVzdHNgKTt0aGlzLnJlcXVlc3RRdWV1ZS5xdWV1ZS5sZW5ndGg+MDspe3RoaXMucmVxdWVzdFF1ZXVlLnN0YXRlPU0uYWN0aXZlO2xldCB0PXRoaXMucmVxdWVzdFF1ZXVlLnF1ZXVlLnNoaWZ0KCk7aWYodCl0cnl7YXdhaXQgdGhpcy5wcm9jZXNzUmVxdWVzdCh0KX1jYXRjaChlKXt0aGlzLmNsaWVudC5sb2dnZXIud2FybihlKX19dGhpcy5yZXF1ZXN0UXVldWUuc3RhdGU9TS5pZGxlfSx0aGlzLnByb2Nlc3NSZXF1ZXN0PWFzeW5jIHQ9PntsZXR7dG9waWM6ZSxwYXlsb2FkOnMsYXR0ZXN0YXRpb246aSx0cmFuc3BvcnRUeXBlOnIsZW5jcnlwdGVkSWQ6bn09dCxhPXMubWV0aG9kO2lmKCF0aGlzLnNob3VsZElnbm9yZVBhaXJpbmdSZXF1ZXN0KHt0b3BpYzplLHJlcXVlc3RNZXRob2Q6YX0pKXN3aXRjaChhKXtjYXNlIndjX3Nlc3Npb25Qcm9wb3NlIjpyZXR1cm4gYXdhaXQgdGhpcy5vblNlc3Npb25Qcm9wb3NlUmVxdWVzdCh7dG9waWM6ZSxwYXlsb2FkOnMsYXR0ZXN0YXRpb246aSxlbmNyeXB0ZWRJZDpufSk7Y2FzZSJ3Y19zZXNzaW9uU2V0dGxlIjpyZXR1cm4gYXdhaXQgdGhpcy5vblNlc3Npb25TZXR0bGVSZXF1ZXN0KGUscyk7Y2FzZSJ3Y19zZXNzaW9uVXBkYXRlIjpyZXR1cm4gYXdhaXQgdGhpcy5vblNlc3Npb25VcGRhdGVSZXF1ZXN0KGUscyk7Y2FzZSJ3Y19zZXNzaW9uRXh0ZW5kIjpyZXR1cm4gYXdhaXQgdGhpcy5vblNlc3Npb25FeHRlbmRSZXF1ZXN0KGUscyk7Y2FzZSJ3Y19zZXNzaW9uUGluZyI6cmV0dXJuIGF3YWl0IHRoaXMub25TZXNzaW9uUGluZ1JlcXVlc3QoZSxzKTtjYXNlIndjX3Nlc3Npb25EZWxldGUiOnJldHVybiBhd2FpdCB0aGlzLm9uU2Vzc2lvbkRlbGV0ZVJlcXVlc3QoZSxzKTtjYXNlIndjX3Nlc3Npb25SZXF1ZXN0IjpyZXR1cm4gYXdhaXQgdGhpcy5vblNlc3Npb25SZXF1ZXN0KHt0b3BpYzplLHBheWxvYWQ6cyxhdHRlc3RhdGlvbjppLGVuY3J5cHRlZElkOm4sdHJhbnNwb3J0VHlwZTpyfSk7Y2FzZSJ3Y19zZXNzaW9uRXZlbnQiOnJldHVybiBhd2FpdCB0aGlzLm9uU2Vzc2lvbkV2ZW50UmVxdWVzdChlLHMpO2Nhc2Uid2Nfc2Vzc2lvbkF1dGhlbnRpY2F0ZSI6cmV0dXJuIGF3YWl0IHRoaXMub25TZXNzaW9uQXV0aGVudGljYXRlUmVxdWVzdCh7dG9waWM6ZSxwYXlsb2FkOnMsYXR0ZXN0YXRpb246aSxlbmNyeXB0ZWRJZDpuLHRyYW5zcG9ydFR5cGU6cn0pO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2xpZW50LmxvZ2dlci5pbmZvKGBVbnN1cHBvcnRlZCByZXF1ZXN0IG1ldGhvZCAke2F9YCl9fSx0aGlzLm9uUmVsYXlFdmVudFJlc3BvbnNlPWFzeW5jIHQ9PntsZXR7dG9waWM6ZSxwYXlsb2FkOnMsdHJhbnNwb3J0VHlwZTppfT10LHI9KGF3YWl0IHRoaXMuY2xpZW50LmNvcmUuaGlzdG9yeS5nZXQoZSxzLmlkKSkucmVxdWVzdC5tZXRob2Q7c3dpdGNoKHIpe2Nhc2Uid2Nfc2Vzc2lvblByb3Bvc2UiOnJldHVybiB0aGlzLm9uU2Vzc2lvblByb3Bvc2VSZXNwb25zZShlLHMsaSk7Y2FzZSJ3Y19zZXNzaW9uU2V0dGxlIjpyZXR1cm4gdGhpcy5vblNlc3Npb25TZXR0bGVSZXNwb25zZShlLHMpO2Nhc2Uid2Nfc2Vzc2lvblVwZGF0ZSI6cmV0dXJuIHRoaXMub25TZXNzaW9uVXBkYXRlUmVzcG9uc2UoZSxzKTtjYXNlIndjX3Nlc3Npb25FeHRlbmQiOnJldHVybiB0aGlzLm9uU2Vzc2lvbkV4dGVuZFJlc3BvbnNlKGUscyk7Y2FzZSJ3Y19zZXNzaW9uUGluZyI6cmV0dXJuIHRoaXMub25TZXNzaW9uUGluZ1Jlc3BvbnNlKGUscyk7Y2FzZSJ3Y19zZXNzaW9uUmVxdWVzdCI6cmV0dXJuIHRoaXMub25TZXNzaW9uUmVxdWVzdFJlc3BvbnNlKGUscyk7Y2FzZSJ3Y19zZXNzaW9uQXV0aGVudGljYXRlIjpyZXR1cm4gdGhpcy5vblNlc3Npb25BdXRoZW50aWNhdGVSZXNwb25zZShlLHMpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuY2xpZW50LmxvZ2dlci5pbmZvKGBVbnN1cHBvcnRlZCByZXNwb25zZSBtZXRob2QgJHtyfWApfX0sdGhpcy5vblJlbGF5RXZlbnRVbmtub3duUGF5bG9hZD10PT57bGV0e3RvcGljOmV9PXQse21lc3NhZ2U6c309ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgRGVjb2RlZCBwYXlsb2FkIG9uIHRvcGljICR7ZX0gaXMgbm90IGlkZW50aWZpYWJsZSBhcyBhIEpTT04tUlBDIHJlcXVlc3Qgb3IgYSByZXNwb25zZS5gKTt0aHJvdyBuZXcgRXJyb3Iocyl9LHRoaXMuc2hvdWxkSWdub3JlUGFpcmluZ1JlcXVlc3Q9dD0+e2xldHt0b3BpYzplLHJlcXVlc3RNZXRob2Q6c309dCxpPXRoaXMuZXhwZWN0ZWRQYWlyaW5nTWV0aG9kTWFwLmdldChlKTtyZXR1cm4haXx8aS5pbmNsdWRlcyhzKT8hMTohIShpLmluY2x1ZGVzKCJ3Y19zZXNzaW9uQXV0aGVudGljYXRlIikmJnRoaXMuY2xpZW50LmV2ZW50cy5saXN0ZW5lckNvdW50KCJzZXNzaW9uX2F1dGhlbnRpY2F0ZSIpPjApfSx0aGlzLm9uU2Vzc2lvblByb3Bvc2VSZXF1ZXN0PWFzeW5jIHQ9PntsZXR7dG9waWM6ZSxwYXlsb2FkOnMsYXR0ZXN0YXRpb246aSxlbmNyeXB0ZWRJZDpyfT10LHtwYXJhbXM6bixpZDphfT1zO3RyeXtsZXQgYz10aGlzLmNsaWVudC5jb3JlLmV2ZW50Q2xpZW50LmdldEV2ZW50KHt0b3BpYzplfSk7dGhpcy5jbGllbnQuZXZlbnRzLmxpc3RlbmVyQ291bnQoInNlc3Npb25fcHJvcG9zYWwiKT09PTAmJihjb25zb2xlLndhcm4oIk5vIGxpc3RlbmVyIGZvciBzZXNzaW9uX3Byb3Bvc2FsIGV2ZW50IiksYz8uc2V0RXJyb3IobXQucHJvcG9zYWxfbGlzdGVuZXJfbm90X2ZvdW5kKSksdGhpcy5pc1ZhbGlkQ29ubmVjdChJKHt9LHMucGFyYW1zKSk7bGV0IGg9bi5leHBpcnlUaW1lc3RhbXB8fGIocS53Y19zZXNzaW9uUHJvcG9zZS5yZXEudHRsKSxwPUkoe2lkOmEscGFpcmluZ1RvcGljOmUsZXhwaXJ5VGltZXN0YW1wOmh9LG4pO2F3YWl0IHRoaXMuc2V0UHJvcG9zYWwoYSxwKTtsZXQgdT1hd2FpdCB0aGlzLmdldFZlcmlmeUNvbnRleHQoe2F0dGVzdGF0aW9uSWQ6aSxoYXNoOlkoSlNPTi5zdHJpbmdpZnkocykpLGVuY3J5cHRlZElkOnIsbWV0YWRhdGE6cC5wcm9wb3Nlci5tZXRhZGF0YX0pO2M/LmFkZFRyYWNlKF90LmVtaXRfc2Vzc2lvbl9wcm9wb3NhbCksdGhpcy5jbGllbnQuZXZlbnRzLmVtaXQoInNlc3Npb25fcHJvcG9zYWwiLHtpZDphLHBhcmFtczpwLHZlcmlmeUNvbnRleHQ6dX0pfWNhdGNoKGMpe2F3YWl0IHRoaXMuc2VuZEVycm9yKHtpZDphLHRvcGljOmUsZXJyb3I6YyxycGNPcHRzOnEud2Nfc2Vzc2lvblByb3Bvc2UuYXV0b1JlamVjdH0pLHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihjKX19LHRoaXMub25TZXNzaW9uUHJvcG9zZVJlc3BvbnNlPWFzeW5jKHQsZSxzKT0+e2xldHtpZDppfT1lO2lmKFUoZSkpe2xldHtyZXN1bHQ6cn09ZTt0aGlzLmNsaWVudC5sb2dnZXIudHJhY2Uoe3R5cGU6Im1ldGhvZCIsbWV0aG9kOiJvblNlc3Npb25Qcm9wb3NlUmVzcG9uc2UiLHJlc3VsdDpyfSk7bGV0IG49dGhpcy5jbGllbnQucHJvcG9zYWwuZ2V0KGkpO3RoaXMuY2xpZW50LmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6Im9uU2Vzc2lvblByb3Bvc2VSZXNwb25zZSIscHJvcG9zYWw6bn0pO2xldCBhPW4ucHJvcG9zZXIucHVibGljS2V5O3RoaXMuY2xpZW50LmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6Im9uU2Vzc2lvblByb3Bvc2VSZXNwb25zZSIsc2VsZlB1YmxpY0tleTphfSk7bGV0IGM9ci5yZXNwb25kZXJQdWJsaWNLZXk7dGhpcy5jbGllbnQubG9nZ2VyLnRyYWNlKHt0eXBlOiJtZXRob2QiLG1ldGhvZDoib25TZXNzaW9uUHJvcG9zZVJlc3BvbnNlIixwZWVyUHVibGljS2V5OmN9KTtsZXQgaD1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZVNoYXJlZEtleShhLGMpO3RoaXMuY2xpZW50LmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6Im9uU2Vzc2lvblByb3Bvc2VSZXNwb25zZSIsc2Vzc2lvblRvcGljOmh9KTtsZXQgcD1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIuc3Vic2NyaWJlKGgse3RyYW5zcG9ydFR5cGU6c30pO3RoaXMuY2xpZW50LmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6Im9uU2Vzc2lvblByb3Bvc2VSZXNwb25zZSIsc3Vic2NyaXB0aW9uSWQ6cH0pLGF3YWl0IHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5hY3RpdmF0ZSh7dG9waWM6dH0pfWVsc2UgaWYoSyhlKSl7YXdhaXQgdGhpcy5jbGllbnQucHJvcG9zYWwuZGVsZXRlKGksUCgiVVNFUl9ESVNDT05ORUNURUQiKSk7bGV0IHI9Zygic2Vzc2lvbl9jb25uZWN0Iik7aWYodGhpcy5ldmVudHMubGlzdGVuZXJDb3VudChyKT09PTApdGhyb3cgbmV3IEVycm9yKGBlbWl0dGluZyAke3J9IHdpdGhvdXQgYW55IGxpc3RlbmVycywgOTU0YCk7dGhpcy5ldmVudHMuZW1pdChnKCJzZXNzaW9uX2Nvbm5lY3QiKSx7ZXJyb3I6ZS5lcnJvcn0pfX0sdGhpcy5vblNlc3Npb25TZXR0bGVSZXF1ZXN0PWFzeW5jKHQsZSk9PntsZXR7aWQ6cyxwYXJhbXM6aX09ZTt0cnl7dGhpcy5pc1ZhbGlkU2Vzc2lvblNldHRsZVJlcXVlc3QoaSk7bGV0e3JlbGF5OnIsY29udHJvbGxlcjpuLGV4cGlyeTphLG5hbWVzcGFjZXM6YyxzZXNzaW9uUHJvcGVydGllczpoLHNlc3Npb25Db25maWc6cH09ZS5wYXJhbXMsdT1WKEkoSSh7dG9waWM6dCxyZWxheTpyLGV4cGlyeTphLG5hbWVzcGFjZXM6YyxhY2tub3dsZWRnZWQ6ITAscGFpcmluZ1RvcGljOiIiLHJlcXVpcmVkTmFtZXNwYWNlczp7fSxvcHRpb25hbE5hbWVzcGFjZXM6e30sY29udHJvbGxlcjpuLnB1YmxpY0tleSxzZWxmOntwdWJsaWNLZXk6IiIsbWV0YWRhdGE6dGhpcy5jbGllbnQubWV0YWRhdGF9LHBlZXI6e3B1YmxpY0tleTpuLnB1YmxpY0tleSxtZXRhZGF0YTpuLm1ldGFkYXRhfX0saCYme3Nlc3Npb25Qcm9wZXJ0aWVzOmh9KSxwJiZ7c2Vzc2lvbkNvbmZpZzpwfSkse3RyYW5zcG9ydFR5cGU6Zi5yZWxheX0pLGw9Zygic2Vzc2lvbl9jb25uZWN0Iik7aWYodGhpcy5ldmVudHMubGlzdGVuZXJDb3VudChsKT09PTApdGhyb3cgbmV3IEVycm9yKGBlbWl0dGluZyAke2x9IHdpdGhvdXQgYW55IGxpc3RlbmVycyA5OTdgKTt0aGlzLmV2ZW50cy5lbWl0KGcoInNlc3Npb25fY29ubmVjdCIpLHtzZXNzaW9uOnV9KSxhd2FpdCB0aGlzLnNlbmRSZXN1bHQoe2lkOmUuaWQsdG9waWM6dCxyZXN1bHQ6ITAsdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KX1jYXRjaChyKXthd2FpdCB0aGlzLnNlbmRFcnJvcih7aWQ6cyx0b3BpYzp0LGVycm9yOnJ9KSx0aGlzLmNsaWVudC5sb2dnZXIuZXJyb3Iocil9fSx0aGlzLm9uU2Vzc2lvblNldHRsZVJlc3BvbnNlPWFzeW5jKHQsZSk9PntsZXR7aWQ6c309ZTtVKGUpPyhhd2FpdCB0aGlzLmNsaWVudC5zZXNzaW9uLnVwZGF0ZSh0LHthY2tub3dsZWRnZWQ6ITB9KSx0aGlzLmV2ZW50cy5lbWl0KGcoInNlc3Npb25fYXBwcm92ZSIscykse30pKTpLKGUpJiYoYXdhaXQgdGhpcy5jbGllbnQuc2Vzc2lvbi5kZWxldGUodCxQKCJVU0VSX0RJU0NPTk5FQ1RFRCIpKSx0aGlzLmV2ZW50cy5lbWl0KGcoInNlc3Npb25fYXBwcm92ZSIscykse2Vycm9yOmUuZXJyb3J9KSl9LHRoaXMub25TZXNzaW9uVXBkYXRlUmVxdWVzdD1hc3luYyh0LGUpPT57bGV0e3BhcmFtczpzLGlkOml9PWU7dHJ5e2xldCByPWAke3R9X3Nlc3Npb25fdXBkYXRlYCxuPXJlLmdldChyKTtpZihuJiZ0aGlzLmlzUmVxdWVzdE91dE9mU3luYyhuLGkpKXt0aGlzLmNsaWVudC5sb2dnZXIud2FybihgRGlzY2FyZGluZyBvdXQgb2Ygc3luYyByZXF1ZXN0IC0gJHtpfWApLHRoaXMuc2VuZEVycm9yKHtpZDppLHRvcGljOnQsZXJyb3I6UCgiSU5WQUxJRF9VUERBVEVfUkVRVUVTVCIpfSk7cmV0dXJufXRoaXMuaXNWYWxpZFVwZGF0ZShJKHt0b3BpYzp0fSxzKSk7dHJ5e3JlLnNldChyLGkpLGF3YWl0IHRoaXMuY2xpZW50LnNlc3Npb24udXBkYXRlKHQse25hbWVzcGFjZXM6cy5uYW1lc3BhY2VzfSksYXdhaXQgdGhpcy5zZW5kUmVzdWx0KHtpZDppLHRvcGljOnQscmVzdWx0OiEwLHRocm93T25GYWlsZWRQdWJsaXNoOiEwfSl9Y2F0Y2goYSl7dGhyb3cgcmUuZGVsZXRlKHIpLGF9dGhpcy5jbGllbnQuZXZlbnRzLmVtaXQoInNlc3Npb25fdXBkYXRlIix7aWQ6aSx0b3BpYzp0LHBhcmFtczpzfSl9Y2F0Y2gocil7YXdhaXQgdGhpcy5zZW5kRXJyb3Ioe2lkOmksdG9waWM6dCxlcnJvcjpyfSksdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKHIpfX0sdGhpcy5pc1JlcXVlc3RPdXRPZlN5bmM9KHQsZSk9PmUudG9TdHJpbmcoKS5zbGljZSgwLC0zKTx0LnRvU3RyaW5nKCkuc2xpY2UoMCwtMyksdGhpcy5vblNlc3Npb25VcGRhdGVSZXNwb25zZT0odCxlKT0+e2xldHtpZDpzfT1lLGk9Zygic2Vzc2lvbl91cGRhdGUiLHMpO2lmKHRoaXMuZXZlbnRzLmxpc3RlbmVyQ291bnQoaSk9PT0wKXRocm93IG5ldyBFcnJvcihgZW1pdHRpbmcgJHtpfSB3aXRob3V0IGFueSBsaXN0ZW5lcnNgKTtVKGUpP3RoaXMuZXZlbnRzLmVtaXQoZygic2Vzc2lvbl91cGRhdGUiLHMpLHt9KTpLKGUpJiZ0aGlzLmV2ZW50cy5lbWl0KGcoInNlc3Npb25fdXBkYXRlIixzKSx7ZXJyb3I6ZS5lcnJvcn0pfSx0aGlzLm9uU2Vzc2lvbkV4dGVuZFJlcXVlc3Q9YXN5bmModCxlKT0+e2xldHtpZDpzfT1lO3RyeXt0aGlzLmlzVmFsaWRFeHRlbmQoe3RvcGljOnR9KSxhd2FpdCB0aGlzLnNldEV4cGlyeSh0LGIoSikpLGF3YWl0IHRoaXMuc2VuZFJlc3VsdCh7aWQ6cyx0b3BpYzp0LHJlc3VsdDohMCx0aHJvd09uRmFpbGVkUHVibGlzaDohMH0pLHRoaXMuY2xpZW50LmV2ZW50cy5lbWl0KCJzZXNzaW9uX2V4dGVuZCIse2lkOnMsdG9waWM6dH0pfWNhdGNoKGkpe2F3YWl0IHRoaXMuc2VuZEVycm9yKHtpZDpzLHRvcGljOnQsZXJyb3I6aX0pLHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihpKX19LHRoaXMub25TZXNzaW9uRXh0ZW5kUmVzcG9uc2U9KHQsZSk9PntsZXR7aWQ6c309ZSxpPWcoInNlc3Npb25fZXh0ZW5kIixzKTtpZih0aGlzLmV2ZW50cy5saXN0ZW5lckNvdW50KGkpPT09MCl0aHJvdyBuZXcgRXJyb3IoYGVtaXR0aW5nICR7aX0gd2l0aG91dCBhbnkgbGlzdGVuZXJzYCk7VShlKT90aGlzLmV2ZW50cy5lbWl0KGcoInNlc3Npb25fZXh0ZW5kIixzKSx7fSk6SyhlKSYmdGhpcy5ldmVudHMuZW1pdChnKCJzZXNzaW9uX2V4dGVuZCIscykse2Vycm9yOmUuZXJyb3J9KX0sdGhpcy5vblNlc3Npb25QaW5nUmVxdWVzdD1hc3luYyh0LGUpPT57bGV0e2lkOnN9PWU7dHJ5e3RoaXMuaXNWYWxpZFBpbmcoe3RvcGljOnR9KSxhd2FpdCB0aGlzLnNlbmRSZXN1bHQoe2lkOnMsdG9waWM6dCxyZXN1bHQ6ITAsdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KSx0aGlzLmNsaWVudC5ldmVudHMuZW1pdCgic2Vzc2lvbl9waW5nIix7aWQ6cyx0b3BpYzp0fSl9Y2F0Y2goaSl7YXdhaXQgdGhpcy5zZW5kRXJyb3Ioe2lkOnMsdG9waWM6dCxlcnJvcjppfSksdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGkpfX0sdGhpcy5vblNlc3Npb25QaW5nUmVzcG9uc2U9KHQsZSk9PntsZXR7aWQ6c309ZSxpPWcoInNlc3Npb25fcGluZyIscyk7aWYodGhpcy5ldmVudHMubGlzdGVuZXJDb3VudChpKT09PTApdGhyb3cgbmV3IEVycm9yKGBlbWl0dGluZyAke2l9IHdpdGhvdXQgYW55IGxpc3RlbmVyc2ApO3NldFRpbWVvdXQoKCk9PntVKGUpP3RoaXMuZXZlbnRzLmVtaXQoZygic2Vzc2lvbl9waW5nIixzKSx7fSk6SyhlKSYmdGhpcy5ldmVudHMuZW1pdChnKCJzZXNzaW9uX3BpbmciLHMpLHtlcnJvcjplLmVycm9yfSl9LDUwMCl9LHRoaXMub25TZXNzaW9uRGVsZXRlUmVxdWVzdD1hc3luYyh0LGUpPT57bGV0e2lkOnN9PWU7dHJ5e3RoaXMuaXNWYWxpZERpc2Nvbm5lY3Qoe3RvcGljOnQscmVhc29uOmUucGFyYW1zfSksUHJvbWlzZS5hbGwoW25ldyBQcm9taXNlKGk9Pnt0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIub25jZSh6ZS5wdWJsaXNoLGFzeW5jKCk9PntpKGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbih7dG9waWM6dCxpZDpzfSkpfSl9KSx0aGlzLnNlbmRSZXN1bHQoe2lkOnMsdG9waWM6dCxyZXN1bHQ6ITAsdGhyb3dPbkZhaWxlZFB1Ymxpc2g6ITB9KSx0aGlzLmNsZWFudXBQZW5kaW5nU2VudFJlcXVlc3RzRm9yVG9waWMoe3RvcGljOnQsZXJyb3I6UCgiVVNFUl9ESVNDT05ORUNURUQiKX0pXSkuY2F0Y2goaT0+dGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGkpKX1jYXRjaChpKXt0aGlzLmNsaWVudC5sb2dnZXIuZXJyb3IoaSl9fSx0aGlzLm9uU2Vzc2lvblJlcXVlc3Q9YXN5bmMgdD0+e3ZhciBlLHMsaTtsZXR7dG9waWM6cixwYXlsb2FkOm4sYXR0ZXN0YXRpb246YSxlbmNyeXB0ZWRJZDpjLHRyYW5zcG9ydFR5cGU6aH09dCx7aWQ6cCxwYXJhbXM6dX09bjt0cnl7YXdhaXQgdGhpcy5pc1ZhbGlkUmVxdWVzdChJKHt0b3BpYzpyfSx1KSk7bGV0IGw9dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQociksdz1hd2FpdCB0aGlzLmdldFZlcmlmeUNvbnRleHQoe2F0dGVzdGF0aW9uSWQ6YSxoYXNoOlkoSlNPTi5zdHJpbmdpZnkoZGUoIndjX3Nlc3Npb25SZXF1ZXN0Iix1LHApKSksZW5jcnlwdGVkSWQ6YyxtZXRhZGF0YTpsLnBlZXIubWV0YWRhdGEsdHJhbnNwb3J0VHlwZTpofSksbT17aWQ6cCx0b3BpYzpyLHBhcmFtczp1LHZlcmlmeUNvbnRleHQ6d307YXdhaXQgdGhpcy5zZXRQZW5kaW5nU2Vzc2lvblJlcXVlc3QobSksaD09PWYubGlua19tb2RlJiYoZT1sLnBlZXIubWV0YWRhdGEucmVkaXJlY3QpIT1udWxsJiZlLnVuaXZlcnNhbCYmdGhpcy5jbGllbnQuY29yZS5hZGRMaW5rTW9kZVN1cHBvcnRlZEFwcCgocz1sLnBlZXIubWV0YWRhdGEucmVkaXJlY3QpPT1udWxsP3ZvaWQgMDpzLnVuaXZlcnNhbCksKGk9dGhpcy5jbGllbnQuc2lnbkNvbmZpZykhPW51bGwmJmkuZGlzYWJsZVJlcXVlc3RRdWV1ZT90aGlzLmVtaXRTZXNzaW9uUmVxdWVzdChtKToodGhpcy5hZGRTZXNzaW9uUmVxdWVzdFRvU2Vzc2lvblJlcXVlc3RRdWV1ZShtKSx0aGlzLnByb2Nlc3NTZXNzaW9uUmVxdWVzdFF1ZXVlKCkpfWNhdGNoKGwpe2F3YWl0IHRoaXMuc2VuZEVycm9yKHtpZDpwLHRvcGljOnIsZXJyb3I6bH0pLHRoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihsKX19LHRoaXMub25TZXNzaW9uUmVxdWVzdFJlc3BvbnNlPSh0LGUpPT57bGV0e2lkOnN9PWUsaT1nKCJzZXNzaW9uX3JlcXVlc3QiLHMpO2lmKHRoaXMuZXZlbnRzLmxpc3RlbmVyQ291bnQoaSk9PT0wKXRocm93IG5ldyBFcnJvcihgZW1pdHRpbmcgJHtpfSB3aXRob3V0IGFueSBsaXN0ZW5lcnNgKTtVKGUpP3RoaXMuZXZlbnRzLmVtaXQoZygic2Vzc2lvbl9yZXF1ZXN0IixzKSx7cmVzdWx0OmUucmVzdWx0fSk6SyhlKSYmdGhpcy5ldmVudHMuZW1pdChnKCJzZXNzaW9uX3JlcXVlc3QiLHMpLHtlcnJvcjplLmVycm9yfSl9LHRoaXMub25TZXNzaW9uRXZlbnRSZXF1ZXN0PWFzeW5jKHQsZSk9PntsZXR7aWQ6cyxwYXJhbXM6aX09ZTt0cnl7bGV0IHI9YCR7dH1fc2Vzc2lvbl9ldmVudF8ke2kuZXZlbnQubmFtZX1gLG49cmUuZ2V0KHIpO2lmKG4mJnRoaXMuaXNSZXF1ZXN0T3V0T2ZTeW5jKG4scykpe3RoaXMuY2xpZW50LmxvZ2dlci5pbmZvKGBEaXNjYXJkaW5nIG91dCBvZiBzeW5jIHJlcXVlc3QgLSAke3N9YCk7cmV0dXJufXRoaXMuaXNWYWxpZEVtaXQoSSh7dG9waWM6dH0saSkpLHRoaXMuY2xpZW50LmV2ZW50cy5lbWl0KCJzZXNzaW9uX2V2ZW50Iix7aWQ6cyx0b3BpYzp0LHBhcmFtczppfSkscmUuc2V0KHIscyl9Y2F0Y2gocil7YXdhaXQgdGhpcy5zZW5kRXJyb3Ioe2lkOnMsdG9waWM6dCxlcnJvcjpyfSksdGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKHIpfX0sdGhpcy5vblNlc3Npb25BdXRoZW50aWNhdGVSZXNwb25zZT0odCxlKT0+e2xldHtpZDpzfT1lO3RoaXMuY2xpZW50LmxvZ2dlci50cmFjZSh7dHlwZToibWV0aG9kIixtZXRob2Q6Im9uU2Vzc2lvbkF1dGhlbnRpY2F0ZVJlc3BvbnNlIix0b3BpYzp0LHBheWxvYWQ6ZX0pLFUoZSk/dGhpcy5ldmVudHMuZW1pdChnKCJzZXNzaW9uX3JlcXVlc3QiLHMpLHtyZXN1bHQ6ZS5yZXN1bHR9KTpLKGUpJiZ0aGlzLmV2ZW50cy5lbWl0KGcoInNlc3Npb25fcmVxdWVzdCIscykse2Vycm9yOmUuZXJyb3J9KX0sdGhpcy5vblNlc3Npb25BdXRoZW50aWNhdGVSZXF1ZXN0PWFzeW5jIHQ9Pnt2YXIgZTtsZXR7dG9waWM6cyxwYXlsb2FkOmksYXR0ZXN0YXRpb246cixlbmNyeXB0ZWRJZDpuLHRyYW5zcG9ydFR5cGU6YX09dDt0cnl7bGV0e3JlcXVlc3RlcjpjLGF1dGhQYXlsb2FkOmgsZXhwaXJ5VGltZXN0YW1wOnB9PWkucGFyYW1zLHU9YXdhaXQgdGhpcy5nZXRWZXJpZnlDb250ZXh0KHthdHRlc3RhdGlvbklkOnIsaGFzaDpZKEpTT04uc3RyaW5naWZ5KGkpKSxlbmNyeXB0ZWRJZDpuLG1ldGFkYXRhOmMubWV0YWRhdGEsdHJhbnNwb3J0VHlwZTphfSksbD17cmVxdWVzdGVyOmMscGFpcmluZ1RvcGljOnMsaWQ6aS5pZCxhdXRoUGF5bG9hZDpoLHZlcmlmeUNvbnRleHQ6dSxleHBpcnlUaW1lc3RhbXA6cH07YXdhaXQgdGhpcy5zZXRBdXRoUmVxdWVzdChpLmlkLHtyZXF1ZXN0OmwscGFpcmluZ1RvcGljOnMsdHJhbnNwb3J0VHlwZTphfSksYT09PWYubGlua19tb2RlJiYoZT1jLm1ldGFkYXRhLnJlZGlyZWN0KSE9bnVsbCYmZS51bml2ZXJzYWwmJnRoaXMuY2xpZW50LmNvcmUuYWRkTGlua01vZGVTdXBwb3J0ZWRBcHAoYy5tZXRhZGF0YS5yZWRpcmVjdC51bml2ZXJzYWwpLHRoaXMuY2xpZW50LmV2ZW50cy5lbWl0KCJzZXNzaW9uX2F1dGhlbnRpY2F0ZSIse3RvcGljOnMscGFyYW1zOmkucGFyYW1zLGlkOmkuaWQsdmVyaWZ5Q29udGV4dDp1fSl9Y2F0Y2goYyl7dGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGMpO2xldCBoPWkucGFyYW1zLnJlcXVlc3Rlci5wdWJsaWNLZXkscD1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLmNyeXB0by5nZW5lcmF0ZUtleVBhaXIoKSx1PXRoaXMuZ2V0QXBwTGlua0lmRW5hYmxlZChpLnBhcmFtcy5yZXF1ZXN0ZXIubWV0YWRhdGEsYSksbD17dHlwZTpUZSxyZWNlaXZlclB1YmxpY0tleTpoLHNlbmRlclB1YmxpY0tleTpwfTthd2FpdCB0aGlzLnNlbmRFcnJvcih7aWQ6aS5pZCx0b3BpYzpzLGVycm9yOmMsZW5jb2RlT3B0czpsLHJwY09wdHM6cS53Y19zZXNzaW9uQXV0aGVudGljYXRlLmF1dG9SZWplY3QsYXBwTGluazp1fSl9fSx0aGlzLmFkZFNlc3Npb25SZXF1ZXN0VG9TZXNzaW9uUmVxdWVzdFF1ZXVlPXQ9Pnt0aGlzLnNlc3Npb25SZXF1ZXN0UXVldWUucXVldWUucHVzaCh0KX0sdGhpcy5jbGVhbnVwQWZ0ZXJSZXNwb25zZT10PT57dGhpcy5kZWxldGVQZW5kaW5nU2Vzc2lvblJlcXVlc3QodC5yZXNwb25zZS5pZCx7bWVzc2FnZToiZnVsZmlsbGVkIixjb2RlOjB9KSxzZXRUaW1lb3V0KCgpPT57dGhpcy5zZXNzaW9uUmVxdWVzdFF1ZXVlLnN0YXRlPU0uaWRsZSx0aGlzLnByb2Nlc3NTZXNzaW9uUmVxdWVzdFF1ZXVlKCl9LE9lKHRoaXMucmVxdWVzdFF1ZXVlRGVsYXkpKX0sdGhpcy5jbGVhbnVwUGVuZGluZ1NlbnRSZXF1ZXN0c0ZvclRvcGljPSh7dG9waWM6dCxlcnJvcjplfSk9PntsZXQgcz10aGlzLmNsaWVudC5jb3JlLmhpc3RvcnkucGVuZGluZztzLmxlbmd0aD4wJiZzLmZpbHRlcihpPT5pLnRvcGljPT09dCYmaS5yZXF1ZXN0Lm1ldGhvZD09PSJ3Y19zZXNzaW9uUmVxdWVzdCIpLmZvckVhY2goaT0+e2xldCByPWkucmVxdWVzdC5pZCxuPWcoInNlc3Npb25fcmVxdWVzdCIscik7aWYodGhpcy5ldmVudHMubGlzdGVuZXJDb3VudChuKT09PTApdGhyb3cgbmV3IEVycm9yKGBlbWl0dGluZyAke259IHdpdGhvdXQgYW55IGxpc3RlbmVyc2ApO3RoaXMuZXZlbnRzLmVtaXQoZygic2Vzc2lvbl9yZXF1ZXN0IixpLnJlcXVlc3QuaWQpLHtlcnJvcjplfSl9KX0sdGhpcy5wcm9jZXNzU2Vzc2lvblJlcXVlc3RRdWV1ZT0oKT0+e2lmKHRoaXMuc2Vzc2lvblJlcXVlc3RRdWV1ZS5zdGF0ZT09PU0uYWN0aXZlKXt0aGlzLmNsaWVudC5sb2dnZXIuaW5mbygic2Vzc2lvbiByZXF1ZXN0IHF1ZXVlIGlzIGFscmVhZHkgYWN0aXZlLiIpO3JldHVybn1sZXQgdD10aGlzLnNlc3Npb25SZXF1ZXN0UXVldWUucXVldWVbMF07aWYoIXQpe3RoaXMuY2xpZW50LmxvZ2dlci5pbmZvKCJzZXNzaW9uIHJlcXVlc3QgcXVldWUgaXMgZW1wdHkuIik7cmV0dXJufXRyeXt0aGlzLnNlc3Npb25SZXF1ZXN0UXVldWUuc3RhdGU9TS5hY3RpdmUsdGhpcy5lbWl0U2Vzc2lvblJlcXVlc3QodCl9Y2F0Y2goZSl7dGhpcy5jbGllbnQubG9nZ2VyLmVycm9yKGUpfX0sdGhpcy5lbWl0U2Vzc2lvblJlcXVlc3Q9dD0+e3RoaXMuY2xpZW50LmV2ZW50cy5lbWl0KCJzZXNzaW9uX3JlcXVlc3QiLHQpfSx0aGlzLm9uUGFpcmluZ0NyZWF0ZWQ9dD0+e2lmKHQubWV0aG9kcyYmdGhpcy5leHBlY3RlZFBhaXJpbmdNZXRob2RNYXAuc2V0KHQudG9waWMsdC5tZXRob2RzKSx0LmFjdGl2ZSlyZXR1cm47bGV0IGU9dGhpcy5jbGllbnQucHJvcG9zYWwuZ2V0QWxsKCkuZmluZChzPT5zLnBhaXJpbmdUb3BpYz09PXQudG9waWMpO2UmJnRoaXMub25TZXNzaW9uUHJvcG9zZVJlcXVlc3Qoe3RvcGljOnQudG9waWMscGF5bG9hZDpkZSgid2Nfc2Vzc2lvblByb3Bvc2UiLHtyZXF1aXJlZE5hbWVzcGFjZXM6ZS5yZXF1aXJlZE5hbWVzcGFjZXMsb3B0aW9uYWxOYW1lc3BhY2VzOmUub3B0aW9uYWxOYW1lc3BhY2VzLHJlbGF5czplLnJlbGF5cyxwcm9wb3NlcjplLnByb3Bvc2VyLHNlc3Npb25Qcm9wZXJ0aWVzOmUuc2Vzc2lvblByb3BlcnRpZXN9LGUuaWQpfSl9LHRoaXMuaXNWYWxpZENvbm5lY3Q9YXN5bmMgdD0+e2lmKCF4KHQpKXtsZXR7bWVzc2FnZTphfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBjb25uZWN0KCkgcGFyYW1zOiAke0pTT04uc3RyaW5naWZ5KHQpfWApO3Rocm93IG5ldyBFcnJvcihhKX1sZXR7cGFpcmluZ1RvcGljOmUscmVxdWlyZWROYW1lc3BhY2VzOnMsb3B0aW9uYWxOYW1lc3BhY2VzOmksc2Vzc2lvblByb3BlcnRpZXM6cixyZWxheXM6bn09dDtpZihuZShlKXx8YXdhaXQgdGhpcy5pc1ZhbGlkUGFpcmluZ1RvcGljKGUpLCFMdChuLCEwKSl7bGV0e21lc3NhZ2U6YX09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgY29ubmVjdCgpIHJlbGF5czogJHtufWApO3Rocm93IG5ldyBFcnJvcihhKX0hbmUocykmJnR0KHMpIT09MCYmdGhpcy52YWxpZGF0ZU5hbWVzcGFjZXMocywicmVxdWlyZWROYW1lc3BhY2VzIiksIW5lKGkpJiZ0dChpKSE9PTAmJnRoaXMudmFsaWRhdGVOYW1lc3BhY2VzKGksIm9wdGlvbmFsTmFtZXNwYWNlcyIpLG5lKHIpfHx0aGlzLnZhbGlkYXRlU2Vzc2lvblByb3BzKHIsInNlc3Npb25Qcm9wZXJ0aWVzIil9LHRoaXMudmFsaWRhdGVOYW1lc3BhY2VzPSh0LGUpPT57bGV0IHM9TXQodCwiY29ubmVjdCgpIixlKTtpZihzKXRocm93IG5ldyBFcnJvcihzLm1lc3NhZ2UpfSx0aGlzLmlzVmFsaWRBcHByb3ZlPWFzeW5jIHQ9PntpZigheCh0KSl0aHJvdyBuZXcgRXJyb3IoZCgiTUlTU0lOR19PUl9JTlZBTElEIixgYXBwcm92ZSgpIHBhcmFtczogJHt0fWApLm1lc3NhZ2UpO2xldHtpZDplLG5hbWVzcGFjZXM6cyxyZWxheVByb3RvY29sOmksc2Vzc2lvblByb3BlcnRpZXM6cn09dDt0aGlzLmNoZWNrUmVjZW50bHlEZWxldGVkKGUpLGF3YWl0IHRoaXMuaXNWYWxpZFByb3Bvc2FsSWQoZSk7bGV0IG49dGhpcy5jbGllbnQucHJvcG9zYWwuZ2V0KGUpLGE9cWUocywiYXBwcm92ZSgpIik7aWYoYSl0aHJvdyBuZXcgRXJyb3IoYS5tZXNzYWdlKTtsZXQgYz1zdChuLnJlcXVpcmVkTmFtZXNwYWNlcyxzLCJhcHByb3ZlKCkiKTtpZihjKXRocm93IG5ldyBFcnJvcihjLm1lc3NhZ2UpO2lmKCEkKGksITApKXtsZXR7bWVzc2FnZTpofT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBhcHByb3ZlKCkgcmVsYXlQcm90b2NvbDogJHtpfWApO3Rocm93IG5ldyBFcnJvcihoKX1uZShyKXx8dGhpcy52YWxpZGF0ZVNlc3Npb25Qcm9wcyhyLCJzZXNzaW9uUHJvcGVydGllcyIpfSx0aGlzLmlzVmFsaWRSZWplY3Q9YXN5bmMgdD0+e2lmKCF4KHQpKXtsZXR7bWVzc2FnZTppfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGByZWplY3QoKSBwYXJhbXM6ICR7dH1gKTt0aHJvdyBuZXcgRXJyb3IoaSl9bGV0e2lkOmUscmVhc29uOnN9PXQ7aWYodGhpcy5jaGVja1JlY2VudGx5RGVsZXRlZChlKSxhd2FpdCB0aGlzLmlzVmFsaWRQcm9wb3NhbElkKGUpLCFrdChzKSl7bGV0e21lc3NhZ2U6aX09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgcmVqZWN0KCkgcmVhc29uOiAke0pTT04uc3RyaW5naWZ5KHMpfWApO3Rocm93IG5ldyBFcnJvcihpKX19LHRoaXMuaXNWYWxpZFNlc3Npb25TZXR0bGVSZXF1ZXN0PXQ9PntpZigheCh0KSl7bGV0e21lc3NhZ2U6Y309ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgb25TZXNzaW9uU2V0dGxlUmVxdWVzdCgpIHBhcmFtczogJHt0fWApO3Rocm93IG5ldyBFcnJvcihjKX1sZXR7cmVsYXk6ZSxjb250cm9sbGVyOnMsbmFtZXNwYWNlczppLGV4cGlyeTpyfT10O2lmKCEkdChlKSl7bGV0e21lc3NhZ2U6Y309ZCgiTUlTU0lOR19PUl9JTlZBTElEIiwib25TZXNzaW9uU2V0dGxlUmVxdWVzdCgpIHJlbGF5IHByb3RvY29sIHNob3VsZCBiZSBhIHN0cmluZyIpO3Rocm93IG5ldyBFcnJvcihjKX1sZXQgbj1VdChzLCJvblNlc3Npb25TZXR0bGVSZXF1ZXN0KCkiKTtpZihuKXRocm93IG5ldyBFcnJvcihuLm1lc3NhZ2UpO2xldCBhPXFlKGksIm9uU2Vzc2lvblNldHRsZVJlcXVlc3QoKSIpO2lmKGEpdGhyb3cgbmV3IEVycm9yKGEubWVzc2FnZSk7aWYoWChyKSl7bGV0e21lc3NhZ2U6Y309ZCgiRVhQSVJFRCIsIm9uU2Vzc2lvblNldHRsZVJlcXVlc3QoKSIpO3Rocm93IG5ldyBFcnJvcihjKX19LHRoaXMuaXNWYWxpZFVwZGF0ZT1hc3luYyB0PT57aWYoIXgodCkpe2xldHttZXNzYWdlOmF9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHVwZGF0ZSgpIHBhcmFtczogJHt0fWApO3Rocm93IG5ldyBFcnJvcihhKX1sZXR7dG9waWM6ZSxuYW1lc3BhY2VzOnN9PXQ7dGhpcy5jaGVja1JlY2VudGx5RGVsZXRlZChlKSxhd2FpdCB0aGlzLmlzVmFsaWRTZXNzaW9uVG9waWMoZSk7bGV0IGk9dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoZSkscj1xZShzLCJ1cGRhdGUoKSIpO2lmKHIpdGhyb3cgbmV3IEVycm9yKHIubWVzc2FnZSk7bGV0IG49c3QoaS5yZXF1aXJlZE5hbWVzcGFjZXMscywidXBkYXRlKCkiKTtpZihuKXRocm93IG5ldyBFcnJvcihuLm1lc3NhZ2UpfSx0aGlzLmlzVmFsaWRFeHRlbmQ9YXN5bmMgdD0+e2lmKCF4KHQpKXtsZXR7bWVzc2FnZTpzfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBleHRlbmQoKSBwYXJhbXM6ICR7dH1gKTt0aHJvdyBuZXcgRXJyb3Iocyl9bGV0e3RvcGljOmV9PXQ7dGhpcy5jaGVja1JlY2VudGx5RGVsZXRlZChlKSxhd2FpdCB0aGlzLmlzVmFsaWRTZXNzaW9uVG9waWMoZSl9LHRoaXMuaXNWYWxpZFJlcXVlc3Q9YXN5bmMgdD0+e2lmKCF4KHQpKXtsZXR7bWVzc2FnZTphfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGByZXF1ZXN0KCkgcGFyYW1zOiAke3R9YCk7dGhyb3cgbmV3IEVycm9yKGEpfWxldHt0b3BpYzplLHJlcXVlc3Q6cyxjaGFpbklkOmksZXhwaXJ5OnJ9PXQ7dGhpcy5jaGVja1JlY2VudGx5RGVsZXRlZChlKSxhd2FpdCB0aGlzLmlzVmFsaWRTZXNzaW9uVG9waWMoZSk7bGV0e25hbWVzcGFjZXM6bn09dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoZSk7aWYoIWl0KG4saSkpe2xldHttZXNzYWdlOmF9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHJlcXVlc3QoKSBjaGFpbklkOiAke2l9YCk7dGhyb3cgbmV3IEVycm9yKGEpfWlmKCFLdChzKSl7bGV0e21lc3NhZ2U6YX09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgcmVxdWVzdCgpICR7SlNPTi5zdHJpbmdpZnkocyl9YCk7dGhyb3cgbmV3IEVycm9yKGEpfWlmKCFHdChuLGkscy5tZXRob2QpKXtsZXR7bWVzc2FnZTphfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGByZXF1ZXN0KCkgbWV0aG9kOiAke3MubWV0aG9kfWApO3Rocm93IG5ldyBFcnJvcihhKX1pZihyJiYhanQocixQZSkpe2xldHttZXNzYWdlOmF9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHJlcXVlc3QoKSBleHBpcnk6ICR7cn0uIEV4cGlyeSBtdXN0IGJlIGEgbnVtYmVyIChpbiBzZWNvbmRzKSBiZXR3ZWVuICR7UGUubWlufSBhbmQgJHtQZS5tYXh9YCk7dGhyb3cgbmV3IEVycm9yKGEpfX0sdGhpcy5pc1ZhbGlkUmVzcG9uZD1hc3luYyB0PT57dmFyIGU7aWYoIXgodCkpe2xldHttZXNzYWdlOnJ9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHJlc3BvbmQoKSBwYXJhbXM6ICR7dH1gKTt0aHJvdyBuZXcgRXJyb3Iocil9bGV0e3RvcGljOnMscmVzcG9uc2U6aX09dDt0cnl7YXdhaXQgdGhpcy5pc1ZhbGlkU2Vzc2lvblRvcGljKHMpfWNhdGNoKHIpe3Rocm93KGU9dD8ucmVzcG9uc2UpIT1udWxsJiZlLmlkJiZ0aGlzLmNsZWFudXBBZnRlclJlc3BvbnNlKHQpLHJ9aWYoIUZ0KGkpKXtsZXR7bWVzc2FnZTpyfT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGByZXNwb25kKCkgcmVzcG9uc2U6ICR7SlNPTi5zdHJpbmdpZnkoaSl9YCk7dGhyb3cgbmV3IEVycm9yKHIpfX0sdGhpcy5pc1ZhbGlkUGluZz1hc3luYyB0PT57aWYoIXgodCkpe2xldHttZXNzYWdlOnN9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHBpbmcoKSBwYXJhbXM6ICR7dH1gKTt0aHJvdyBuZXcgRXJyb3Iocyl9bGV0e3RvcGljOmV9PXQ7YXdhaXQgdGhpcy5pc1ZhbGlkU2Vzc2lvbk9yUGFpcmluZ1RvcGljKGUpfSx0aGlzLmlzVmFsaWRFbWl0PWFzeW5jIHQ9PntpZigheCh0KSl7bGV0e21lc3NhZ2U6bn09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgZW1pdCgpIHBhcmFtczogJHt0fWApO3Rocm93IG5ldyBFcnJvcihuKX1sZXR7dG9waWM6ZSxldmVudDpzLGNoYWluSWQ6aX09dDthd2FpdCB0aGlzLmlzVmFsaWRTZXNzaW9uVG9waWMoZSk7bGV0e25hbWVzcGFjZXM6cn09dGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQoZSk7aWYoIWl0KHIsaSkpe2xldHttZXNzYWdlOm59PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYGVtaXQoKSBjaGFpbklkOiAke2l9YCk7dGhyb3cgbmV3IEVycm9yKG4pfWlmKCFRdChzKSl7bGV0e21lc3NhZ2U6bn09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgZW1pdCgpIGV2ZW50OiAke0pTT04uc3RyaW5naWZ5KHMpfWApO3Rocm93IG5ldyBFcnJvcihuKX1pZighenQocixpLHMubmFtZSkpe2xldHttZXNzYWdlOm59PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYGVtaXQoKSBldmVudDogJHtKU09OLnN0cmluZ2lmeShzKX1gKTt0aHJvdyBuZXcgRXJyb3Iobil9fSx0aGlzLmlzVmFsaWREaXNjb25uZWN0PWFzeW5jIHQ9PntpZigheCh0KSl7bGV0e21lc3NhZ2U6c309ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgZGlzY29ubmVjdCgpIHBhcmFtczogJHt0fWApO3Rocm93IG5ldyBFcnJvcihzKX1sZXR7dG9waWM6ZX09dDthd2FpdCB0aGlzLmlzVmFsaWRTZXNzaW9uT3JQYWlyaW5nVG9waWMoZSl9LHRoaXMuaXNWYWxpZEF1dGhlbnRpY2F0ZT10PT57bGV0e2NoYWluczplLHVyaTpzLGRvbWFpbjppLG5vbmNlOnJ9PXQ7aWYoIUFycmF5LmlzQXJyYXkoZSl8fGUubGVuZ3RoPT09MCl0aHJvdyBuZXcgRXJyb3IoImNoYWlucyBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIG5vbi1lbXB0eSBhcnJheSIpO2lmKCEkKHMsITEpKXRocm93IG5ldyBFcnJvcigidXJpIGlzIHJlcXVpcmVkIHBhcmFtZXRlciIpO2lmKCEkKGksITEpKXRocm93IG5ldyBFcnJvcigiZG9tYWluIGlzIHJlcXVpcmVkIHBhcmFtZXRlciIpO2lmKCEkKHIsITEpKXRocm93IG5ldyBFcnJvcigibm9uY2UgaXMgcmVxdWlyZWQgcGFyYW1ldGVyIik7aWYoWy4uLm5ldyBTZXQoZS5tYXAoYT0+ZmUoYSkubmFtZXNwYWNlKSldLmxlbmd0aD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktbmFtZXNwYWNlIHJlcXVlc3RzIGFyZSBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgcmVxdWVzdCBzaW5nbGUgbmFtZXNwYWNlIG9ubHkuIik7bGV0e25hbWVzcGFjZTpufT1mZShlWzBdKTtpZihuIT09ImVpcDE1NSIpdGhyb3cgbmV3IEVycm9yKCJPbmx5IGVpcDE1NSBuYW1lc3BhY2UgaXMgc3VwcG9ydGVkIGZvciBhdXRoZW50aWNhdGVkIHNlc3Npb25zLiBQbGVhc2UgdXNlIC5jb25uZWN0KCkgZm9yIG5vbi1laXAxNTUgY2hhaW5zLiIpfSx0aGlzLmdldFZlcmlmeUNvbnRleHQ9YXN5bmMgdD0+e2xldHthdHRlc3RhdGlvbklkOmUsaGFzaDpzLGVuY3J5cHRlZElkOmksbWV0YWRhdGE6cix0cmFuc3BvcnRUeXBlOm59PXQsYT17dmVyaWZpZWQ6e3ZlcmlmeVVybDpyLnZlcmlmeVVybHx8RXQsdmFsaWRhdGlvbjoiVU5LTk9XTiIsb3JpZ2luOnIudXJsfHwiIn19O3RyeXtpZihuPT09Zi5saW5rX21vZGUpe2xldCBoPXRoaXMuZ2V0QXBwTGlua0lmRW5hYmxlZChyLG4pO3JldHVybiBhLnZlcmlmaWVkLnZhbGlkYXRpb249aCYmbmV3IFVSTChoKS5vcmlnaW49PT1uZXcgVVJMKHIudXJsKS5vcmlnaW4/IlZBTElEIjoiSU5WQUxJRCIsYX1sZXQgYz1hd2FpdCB0aGlzLmNsaWVudC5jb3JlLnZlcmlmeS5yZXNvbHZlKHthdHRlc3RhdGlvbklkOmUsaGFzaDpzLGVuY3J5cHRlZElkOmksdmVyaWZ5VXJsOnIudmVyaWZ5VXJsfSk7YyYmKGEudmVyaWZpZWQub3JpZ2luPWMub3JpZ2luLGEudmVyaWZpZWQuaXNTY2FtPWMuaXNTY2FtLGEudmVyaWZpZWQudmFsaWRhdGlvbj1jLm9yaWdpbj09PW5ldyBVUkwoci51cmwpLm9yaWdpbj8iVkFMSUQiOiJJTlZBTElEIil9Y2F0Y2goYyl7dGhpcy5jbGllbnQubG9nZ2VyLndhcm4oYyl9cmV0dXJuIHRoaXMuY2xpZW50LmxvZ2dlci5kZWJ1ZyhgVmVyaWZ5IGNvbnRleHQ6ICR7SlNPTi5zdHJpbmdpZnkoYSl9YCksYX0sdGhpcy52YWxpZGF0ZVNlc3Npb25Qcm9wcz0odCxlKT0+e09iamVjdC52YWx1ZXModCkuZm9yRWFjaChzPT57aWYoISQocywhMSkpe2xldHttZXNzYWdlOml9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYCR7ZX0gbXVzdCBiZSBpbiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IGZvcm1hdC4gUmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkocyl9YCk7dGhyb3cgbmV3IEVycm9yKGkpfX0pfSx0aGlzLmdldFBlbmRpbmdBdXRoUmVxdWVzdD10PT57bGV0IGU9dGhpcy5jbGllbnQuYXV0aC5yZXF1ZXN0cy5nZXQodCk7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0Ij9lOnZvaWQgMH0sdGhpcy5hZGRUb1JlY2VudGx5RGVsZXRlZD0odCxlKT0+e2lmKHRoaXMucmVjZW50bHlEZWxldGVkTWFwLnNldCh0LGUpLHRoaXMucmVjZW50bHlEZWxldGVkTWFwLnNpemU+PXRoaXMucmVjZW50bHlEZWxldGVkTGltaXQpe2xldCBzPTAsaT10aGlzLnJlY2VudGx5RGVsZXRlZExpbWl0LzI7Zm9yKGxldCByIG9mIHRoaXMucmVjZW50bHlEZWxldGVkTWFwLmtleXMoKSl7aWYocysrPj1pKWJyZWFrO3RoaXMucmVjZW50bHlEZWxldGVkTWFwLmRlbGV0ZShyKX19fSx0aGlzLmNoZWNrUmVjZW50bHlEZWxldGVkPXQ9PntsZXQgZT10aGlzLnJlY2VudGx5RGVsZXRlZE1hcC5nZXQodCk7aWYoZSl7bGV0e21lc3NhZ2U6c309ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgUmVjb3JkIHdhcyByZWNlbnRseSBkZWxldGVkIC0gJHtlfTogJHt0fWApO3Rocm93IG5ldyBFcnJvcihzKX19LHRoaXMuaXNMaW5rTW9kZUVuYWJsZWQ9KHQsZSk9Pnt2YXIgcyxpLHIsbixhLGMsaCxwLHU7cmV0dXJuIXR8fGUhPT1mLmxpbmtfbW9kZT8hMTooKGk9KHM9dGhpcy5jbGllbnQubWV0YWRhdGEpPT1udWxsP3ZvaWQgMDpzLnJlZGlyZWN0KT09bnVsbD92b2lkIDA6aS5saW5rTW9kZSk9PT0hMCYmKChuPShyPXRoaXMuY2xpZW50Lm1ldGFkYXRhKT09bnVsbD92b2lkIDA6ci5yZWRpcmVjdCk9PW51bGw/dm9pZCAwOm4udW5pdmVyc2FsKSE9PXZvaWQgMCYmKChjPShhPXRoaXMuY2xpZW50Lm1ldGFkYXRhKT09bnVsbD92b2lkIDA6YS5yZWRpcmVjdCk9PW51bGw/dm9pZCAwOmMudW5pdmVyc2FsKSE9PSIiJiYoKGg9dD8ucmVkaXJlY3QpPT1udWxsP3ZvaWQgMDpoLnVuaXZlcnNhbCkhPT12b2lkIDAmJigocD10Py5yZWRpcmVjdCk9PW51bGw/dm9pZCAwOnAudW5pdmVyc2FsKSE9PSIiJiYoKHU9dD8ucmVkaXJlY3QpPT1udWxsP3ZvaWQgMDp1LmxpbmtNb2RlKT09PSEwJiZ0aGlzLmNsaWVudC5jb3JlLmxpbmtNb2RlU3VwcG9ydGVkQXBwcy5pbmNsdWRlcyh0LnJlZGlyZWN0LnVuaXZlcnNhbCkmJnR5cGVvZiBnbG9iYWxUaGlzPy5MaW5raW5nPCJ1In0sdGhpcy5nZXRBcHBMaW5rSWZFbmFibGVkPSh0LGUpPT57dmFyIHM7cmV0dXJuIHRoaXMuaXNMaW5rTW9kZUVuYWJsZWQodCxlKT8ocz10Py5yZWRpcmVjdCk9PW51bGw/dm9pZCAwOnMudW5pdmVyc2FsOnZvaWQgMH0sdGhpcy5oYW5kbGVMaW5rTW9kZU1lc3NhZ2U9KHt1cmw6dH0pPT57aWYoIXR8fCF0LmluY2x1ZGVzKCJ3Y19ldiIpfHwhdC5pbmNsdWRlcygidG9waWMiKSlyZXR1cm47bGV0IGU9cnQodCwidG9waWMiKXx8IiIscz1kZWNvZGVVUklDb21wb25lbnQocnQodCwid2NfZXYiKXx8IiIpLGk9dGhpcy5jbGllbnQuc2Vzc2lvbi5rZXlzLmluY2x1ZGVzKGUpO2kmJnRoaXMuY2xpZW50LnNlc3Npb24udXBkYXRlKGUse3RyYW5zcG9ydFR5cGU6Zi5saW5rX21vZGV9KSx0aGlzLmNsaWVudC5jb3JlLmRpc3BhdGNoRW52ZWxvcGUoe3RvcGljOmUsbWVzc2FnZTpzLHNlc3Npb25FeGlzdHM6aX0pfSx0aGlzLnJlZ2lzdGVyTGlua01vZGVMaXN0ZW5lcnM9YXN5bmMoKT0+e3ZhciB0O2lmKEh0KCl8fFl0KCkmJih0PXRoaXMuY2xpZW50Lm1ldGFkYXRhLnJlZGlyZWN0KSE9bnVsbCYmdC5saW5rTW9kZSl7bGV0IGU9Z2xvYmFsVGhpcz8uTGlua2luZztpZih0eXBlb2YgZTwidSIpe2UuYWRkRXZlbnRMaXN0ZW5lcigidXJsIix0aGlzLmhhbmRsZUxpbmtNb2RlTWVzc2FnZSx0aGlzLmNsaWVudC5uYW1lKTtsZXQgcz1hd2FpdCBlLmdldEluaXRpYWxVUkwoKTtzJiZzZXRUaW1lb3V0KCgpPT57dGhpcy5oYW5kbGVMaW5rTW9kZU1lc3NhZ2Uoe3VybDpzfSl9LDUwKX19fX1pc0luaXRpYWxpemVkKCl7aWYoIXRoaXMuaW5pdGlhbGl6ZWQpe2xldHttZXNzYWdlOm99PWQoIk5PVF9JTklUSUFMSVpFRCIsdGhpcy5uYW1lKTt0aHJvdyBuZXcgRXJyb3Iobyl9fWFzeW5jIGNvbmZpcm1PbmxpbmVTdGF0ZU9yVGhyb3coKXthd2FpdCB0aGlzLmNsaWVudC5jb3JlLnJlbGF5ZXIuY29uZmlybU9ubGluZVN0YXRlT3JUaHJvdygpfXJlZ2lzdGVyUmVsYXllckV2ZW50cygpe3RoaXMuY2xpZW50LmNvcmUucmVsYXllci5vbih6ZS5tZXNzYWdlLG89PnshdGhpcy5pbml0aWFsaXplZHx8dGhpcy5yZWxheU1lc3NhZ2VDYWNoZS5sZW5ndGg+MD90aGlzLnJlbGF5TWVzc2FnZUNhY2hlLnB1c2gobyk6dGhpcy5vblJlbGF5TWVzc2FnZShvKX0pfWFzeW5jIG9uUmVsYXlNZXNzYWdlKG8pe2xldHt0b3BpYzp0LG1lc3NhZ2U6ZSxhdHRlc3RhdGlvbjpzLHRyYW5zcG9ydFR5cGU6aX09byx7cHVibGljS2V5OnJ9PXRoaXMuY2xpZW50LmF1dGguYXV0aEtleXMua2V5cy5pbmNsdWRlcyh1ZSk/dGhpcy5jbGllbnQuYXV0aC5hdXRoS2V5cy5nZXQodWUpOntyZXNwb25zZVRvcGljOnZvaWQgMCxwdWJsaWNLZXk6dm9pZCAwfSxuPWF3YWl0IHRoaXMuY2xpZW50LmNvcmUuY3J5cHRvLmRlY29kZSh0LGUse3JlY2VpdmVyUHVibGljS2V5OnIsZW5jb2Rpbmc6aT09PWYubGlua19tb2RlP2llOnBlfSk7dHJ5e3NzKG4pPyh0aGlzLmNsaWVudC5jb3JlLmhpc3Rvcnkuc2V0KHQsbiksdGhpcy5vblJlbGF5RXZlbnRSZXF1ZXN0KHt0b3BpYzp0LHBheWxvYWQ6bixhdHRlc3RhdGlvbjpzLHRyYW5zcG9ydFR5cGU6aSxlbmNyeXB0ZWRJZDpZKGUpfSkpOmlzKG4pPyhhd2FpdCB0aGlzLmNsaWVudC5jb3JlLmhpc3RvcnkucmVzb2x2ZShuKSxhd2FpdCB0aGlzLm9uUmVsYXlFdmVudFJlc3BvbnNlKHt0b3BpYzp0LHBheWxvYWQ6bix0cmFuc3BvcnRUeXBlOml9KSx0aGlzLmNsaWVudC5jb3JlLmhpc3RvcnkuZGVsZXRlKHQsbi5pZCkpOnRoaXMub25SZWxheUV2ZW50VW5rbm93blBheWxvYWQoe3RvcGljOnQscGF5bG9hZDpuLHRyYW5zcG9ydFR5cGU6aX0pfWNhdGNoKGEpe3RoaXMuY2xpZW50LmxvZ2dlci5lcnJvcihhKX19cmVnaXN0ZXJFeHBpcmVyRXZlbnRzKCl7dGhpcy5jbGllbnQuY29yZS5leHBpcmVyLm9uKFJ0LmV4cGlyZWQsYXN5bmMgbz0+e2xldHt0b3BpYzp0LGlkOmV9PVh0KG8udGFyZ2V0KTtpZihlJiZ0aGlzLmNsaWVudC5wZW5kaW5nUmVxdWVzdC5rZXlzLmluY2x1ZGVzKGUpKXJldHVybiBhd2FpdCB0aGlzLmRlbGV0ZVBlbmRpbmdTZXNzaW9uUmVxdWVzdChlLGQoIkVYUElSRUQiKSwhMCk7aWYoZSYmdGhpcy5jbGllbnQuYXV0aC5yZXF1ZXN0cy5rZXlzLmluY2x1ZGVzKGUpKXJldHVybiBhd2FpdCB0aGlzLmRlbGV0ZVBlbmRpbmdBdXRoUmVxdWVzdChlLGQoIkVYUElSRUQiKSwhMCk7dD90aGlzLmNsaWVudC5zZXNzaW9uLmtleXMuaW5jbHVkZXModCkmJihhd2FpdCB0aGlzLmRlbGV0ZVNlc3Npb24oe3RvcGljOnQsZXhwaXJlckhhc0RlbGV0ZWQ6ITB9KSx0aGlzLmNsaWVudC5ldmVudHMuZW1pdCgic2Vzc2lvbl9leHBpcmUiLHt0b3BpYzp0fSkpOmUmJihhd2FpdCB0aGlzLmRlbGV0ZVByb3Bvc2FsKGUsITApLHRoaXMuY2xpZW50LmV2ZW50cy5lbWl0KCJwcm9wb3NhbF9leHBpcmUiLHtpZDplfSkpfSl9cmVnaXN0ZXJQYWlyaW5nRXZlbnRzKCl7dGhpcy5jbGllbnQuY29yZS5wYWlyaW5nLmV2ZW50cy5vbihIZS5jcmVhdGUsbz0+dGhpcy5vblBhaXJpbmdDcmVhdGVkKG8pKSx0aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcuZXZlbnRzLm9uKEhlLmRlbGV0ZSxvPT57dGhpcy5hZGRUb1JlY2VudGx5RGVsZXRlZChvLnRvcGljLCJwYWlyaW5nIil9KX1pc1ZhbGlkUGFpcmluZ1RvcGljKG8pe2lmKCEkKG8sITEpKXtsZXR7bWVzc2FnZTp0fT1kKCJNSVNTSU5HX09SX0lOVkFMSUQiLGBwYWlyaW5nIHRvcGljIHNob3VsZCBiZSBhIHN0cmluZzogJHtvfWApO3Rocm93IG5ldyBFcnJvcih0KX1pZighdGhpcy5jbGllbnQuY29yZS5wYWlyaW5nLnBhaXJpbmdzLmtleXMuaW5jbHVkZXMobykpe2xldHttZXNzYWdlOnR9PWQoIk5PX01BVENISU5HX0tFWSIsYHBhaXJpbmcgdG9waWMgZG9lc24ndCBleGlzdDogJHtvfWApO3Rocm93IG5ldyBFcnJvcih0KX1pZihYKHRoaXMuY2xpZW50LmNvcmUucGFpcmluZy5wYWlyaW5ncy5nZXQobykuZXhwaXJ5KSl7bGV0e21lc3NhZ2U6dH09ZCgiRVhQSVJFRCIsYHBhaXJpbmcgdG9waWM6ICR7b31gKTt0aHJvdyBuZXcgRXJyb3IodCl9fWFzeW5jIGlzVmFsaWRTZXNzaW9uVG9waWMobyl7aWYoISQobywhMSkpe2xldHttZXNzYWdlOnR9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHNlc3Npb24gdG9waWMgc2hvdWxkIGJlIGEgc3RyaW5nOiAke299YCk7dGhyb3cgbmV3IEVycm9yKHQpfWlmKHRoaXMuY2hlY2tSZWNlbnRseURlbGV0ZWQobyksIXRoaXMuY2xpZW50LnNlc3Npb24ua2V5cy5pbmNsdWRlcyhvKSl7bGV0e21lc3NhZ2U6dH09ZCgiTk9fTUFUQ0hJTkdfS0VZIixgc2Vzc2lvbiB0b3BpYyBkb2Vzbid0IGV4aXN0OiAke299YCk7dGhyb3cgbmV3IEVycm9yKHQpfWlmKFgodGhpcy5jbGllbnQuc2Vzc2lvbi5nZXQobykuZXhwaXJ5KSl7YXdhaXQgdGhpcy5kZWxldGVTZXNzaW9uKHt0b3BpYzpvfSk7bGV0e21lc3NhZ2U6dH09ZCgiRVhQSVJFRCIsYHNlc3Npb24gdG9waWM6ICR7b31gKTt0aHJvdyBuZXcgRXJyb3IodCl9aWYoIXRoaXMuY2xpZW50LmNvcmUuY3J5cHRvLmtleWNoYWluLmhhcyhvKSl7bGV0e21lc3NhZ2U6dH09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgc2Vzc2lvbiB0b3BpYyBkb2VzIG5vdCBleGlzdCBpbiBrZXljaGFpbjogJHtvfWApO3Rocm93IGF3YWl0IHRoaXMuZGVsZXRlU2Vzc2lvbih7dG9waWM6b30pLG5ldyBFcnJvcih0KX19YXN5bmMgaXNWYWxpZFNlc3Npb25PclBhaXJpbmdUb3BpYyhvKXtpZih0aGlzLmNoZWNrUmVjZW50bHlEZWxldGVkKG8pLHRoaXMuY2xpZW50LnNlc3Npb24ua2V5cy5pbmNsdWRlcyhvKSlhd2FpdCB0aGlzLmlzVmFsaWRTZXNzaW9uVG9waWMobyk7ZWxzZSBpZih0aGlzLmNsaWVudC5jb3JlLnBhaXJpbmcucGFpcmluZ3Mua2V5cy5pbmNsdWRlcyhvKSl0aGlzLmlzVmFsaWRQYWlyaW5nVG9waWMobyk7ZWxzZSBpZigkKG8sITEpKXtsZXR7bWVzc2FnZTp0fT1kKCJOT19NQVRDSElOR19LRVkiLGBzZXNzaW9uIG9yIHBhaXJpbmcgdG9waWMgZG9lc24ndCBleGlzdDogJHtvfWApO3Rocm93IG5ldyBFcnJvcih0KX1lbHNle2xldHttZXNzYWdlOnR9PWQoIk1JU1NJTkdfT1JfSU5WQUxJRCIsYHNlc3Npb24gb3IgcGFpcmluZyB0b3BpYyBzaG91bGQgYmUgYSBzdHJpbmc6ICR7b31gKTt0aHJvdyBuZXcgRXJyb3IodCl9fWFzeW5jIGlzVmFsaWRQcm9wb3NhbElkKG8pe2lmKCFKdChvKSl7bGV0e21lc3NhZ2U6dH09ZCgiTUlTU0lOR19PUl9JTlZBTElEIixgcHJvcG9zYWwgaWQgc2hvdWxkIGJlIGEgbnVtYmVyOiAke299YCk7dGhyb3cgbmV3IEVycm9yKHQpfWlmKCF0aGlzLmNsaWVudC5wcm9wb3NhbC5rZXlzLmluY2x1ZGVzKG8pKXtsZXR7bWVzc2FnZTp0fT1kKCJOT19NQVRDSElOR19LRVkiLGBwcm9wb3NhbCBpZCBkb2Vzbid0IGV4aXN0OiAke299YCk7dGhyb3cgbmV3IEVycm9yKHQpfWlmKFgodGhpcy5jbGllbnQucHJvcG9zYWwuZ2V0KG8pLmV4cGlyeVRpbWVzdGFtcCkpe2F3YWl0IHRoaXMuZGVsZXRlUHJvcG9zYWwobyk7bGV0e21lc3NhZ2U6dH09ZCgiRVhQSVJFRCIsYHByb3Bvc2FsIGlkOiAke299YCk7dGhyb3cgbmV3IEVycm9yKHQpfX19LEFlPWNsYXNzIGV4dGVuZHMgQntjb25zdHJ1Y3RvcihvLHQpe3N1cGVyKG8sdCxycyxrZSksdGhpcy5jb3JlPW8sdGhpcy5sb2dnZXI9dH19LGdlPWNsYXNzIGV4dGVuZHMgQntjb25zdHJ1Y3RvcihvLHQpe3N1cGVyKG8sdCxhcyxrZSksdGhpcy5jb3JlPW8sdGhpcy5sb2dnZXI9dH19LENlPWNsYXNzIGV4dGVuZHMgQntjb25zdHJ1Y3RvcihvLHQpe3N1cGVyKG8sdCxjcyxrZSxlPT5lLmlkKSx0aGlzLmNvcmU9byx0aGlzLmxvZ2dlcj10fX0seGU9Y2xhc3MgZXh0ZW5kcyBCe2NvbnN0cnVjdG9yKG8sdCl7c3VwZXIobyx0LGRzLHllLCgpPT51ZSksdGhpcy5jb3JlPW8sdGhpcy5sb2dnZXI9dH19LFZlPWNsYXNzIGV4dGVuZHMgQntjb25zdHJ1Y3RvcihvLHQpe3N1cGVyKG8sdCx1cyx5ZSksdGhpcy5jb3JlPW8sdGhpcy5sb2dnZXI9dH19LERlPWNsYXNzIGV4dGVuZHMgQntjb25zdHJ1Y3RvcihvLHQpe3N1cGVyKG8sdCxncyx5ZSxlPT5lLmlkKSx0aGlzLmNvcmU9byx0aGlzLmxvZ2dlcj10fX0sTGU9Y2xhc3N7Y29uc3RydWN0b3Iobyx0KXt0aGlzLmNvcmU9byx0aGlzLmxvZ2dlcj10LHRoaXMuYXV0aEtleXM9bmV3IHhlKHRoaXMuY29yZSx0aGlzLmxvZ2dlciksdGhpcy5wYWlyaW5nVG9waWNzPW5ldyBWZSh0aGlzLmNvcmUsdGhpcy5sb2dnZXIpLHRoaXMucmVxdWVzdHM9bmV3IERlKHRoaXMuY29yZSx0aGlzLmxvZ2dlcil9YXN5bmMgaW5pdCgpe2F3YWl0IHRoaXMuYXV0aEtleXMuaW5pdCgpLGF3YWl0IHRoaXMucGFpcmluZ1RvcGljcy5pbml0KCksYXdhaXQgdGhpcy5yZXF1ZXN0cy5pbml0KCl9fSxNZT1jbGFzcyB2IGV4dGVuZHMgTnR7Y29uc3RydWN0b3Iobyl7c3VwZXIobyksdGhpcy5wcm90b2NvbD1wdCx0aGlzLnZlcnNpb249aHQsdGhpcy5uYW1lPU5lLm5hbWUsdGhpcy5ldmVudHM9bmV3IFp0LHRoaXMub249KGUscyk9PnRoaXMuZXZlbnRzLm9uKGUscyksdGhpcy5vbmNlPShlLHMpPT50aGlzLmV2ZW50cy5vbmNlKGUscyksdGhpcy5vZmY9KGUscyk9PnRoaXMuZXZlbnRzLm9mZihlLHMpLHRoaXMucmVtb3ZlTGlzdGVuZXI9KGUscyk9PnRoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKGUscyksdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnM9ZT0+dGhpcy5ldmVudHMucmVtb3ZlQWxsTGlzdGVuZXJzKGUpLHRoaXMuY29ubmVjdD1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5jb25uZWN0KGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMucGFpcj1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5wYWlyKGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMuYXBwcm92ZT1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5hcHByb3ZlKGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMucmVqZWN0PWFzeW5jIGU9Pnt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuZW5naW5lLnJlamVjdChlKX1jYXRjaChzKXt0aHJvdyB0aGlzLmxvZ2dlci5lcnJvcihzLm1lc3NhZ2UpLHN9fSx0aGlzLnVwZGF0ZT1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS51cGRhdGUoZSl9Y2F0Y2gocyl7dGhyb3cgdGhpcy5sb2dnZXIuZXJyb3Iocy5tZXNzYWdlKSxzfX0sdGhpcy5leHRlbmQ9YXN5bmMgZT0+e3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5lbmdpbmUuZXh0ZW5kKGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMucmVxdWVzdD1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5yZXF1ZXN0KGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMucmVzcG9uZD1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5yZXNwb25kKGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMucGluZz1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5waW5nKGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMuZW1pdD1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5lbWl0KGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMuZGlzY29ubmVjdD1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5kaXNjb25uZWN0KGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMuZmluZD1lPT57dHJ5e3JldHVybiB0aGlzLmVuZ2luZS5maW5kKGUpfWNhdGNoKHMpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKHMubWVzc2FnZSksc319LHRoaXMuZ2V0UGVuZGluZ1Nlc3Npb25SZXF1ZXN0cz0oKT0+e3RyeXtyZXR1cm4gdGhpcy5lbmdpbmUuZ2V0UGVuZGluZ1Nlc3Npb25SZXF1ZXN0cygpfWNhdGNoKGUpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKGUubWVzc2FnZSksZX19LHRoaXMuYXV0aGVudGljYXRlPWFzeW5jKGUscyk9Pnt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuZW5naW5lLmF1dGhlbnRpY2F0ZShlLHMpfWNhdGNoKGkpe3Rocm93IHRoaXMubG9nZ2VyLmVycm9yKGkubWVzc2FnZSksaX19LHRoaXMuZm9ybWF0QXV0aE1lc3NhZ2U9ZT0+e3RyeXtyZXR1cm4gdGhpcy5lbmdpbmUuZm9ybWF0QXV0aE1lc3NhZ2UoZSl9Y2F0Y2gocyl7dGhyb3cgdGhpcy5sb2dnZXIuZXJyb3Iocy5tZXNzYWdlKSxzfX0sdGhpcy5hcHByb3ZlU2Vzc2lvbkF1dGhlbnRpY2F0ZT1hc3luYyBlPT57dHJ5e3JldHVybiBhd2FpdCB0aGlzLmVuZ2luZS5hcHByb3ZlU2Vzc2lvbkF1dGhlbnRpY2F0ZShlKX1jYXRjaChzKXt0aHJvdyB0aGlzLmxvZ2dlci5lcnJvcihzLm1lc3NhZ2UpLHN9fSx0aGlzLnJlamVjdFNlc3Npb25BdXRoZW50aWNhdGU9YXN5bmMgZT0+e3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5lbmdpbmUucmVqZWN0U2Vzc2lvbkF1dGhlbnRpY2F0ZShlKX1jYXRjaChzKXt0aHJvdyB0aGlzLmxvZ2dlci5lcnJvcihzLm1lc3NhZ2UpLHN9fSx0aGlzLm5hbWU9bz8ubmFtZXx8TmUubmFtZSx0aGlzLm1ldGFkYXRhPW8/Lm1ldGFkYXRhfHxCdCgpLHRoaXMuc2lnbkNvbmZpZz1vPy5zaWduQ29uZmlnO2xldCB0PXR5cGVvZiBvPy5sb2dnZXI8InUiJiZ0eXBlb2Ygbz8ubG9nZ2VyIT0ic3RyaW5nIj9vLmxvZ2dlcjpJdChmdCh7bGV2ZWw6bz8ubG9nZ2VyfHxOZS5sb2dnZXJ9KSk7dGhpcy5jb3JlPW8/LmNvcmV8fG5ldyBTdChvKSx0aGlzLmxvZ2dlcj12dCh0LHRoaXMubmFtZSksdGhpcy5zZXNzaW9uPW5ldyBnZSh0aGlzLmNvcmUsdGhpcy5sb2dnZXIpLHRoaXMucHJvcG9zYWw9bmV3IEFlKHRoaXMuY29yZSx0aGlzLmxvZ2dlciksdGhpcy5wZW5kaW5nUmVxdWVzdD1uZXcgQ2UodGhpcy5jb3JlLHRoaXMubG9nZ2VyKSx0aGlzLmVuZ2luZT1uZXcgYmUodGhpcyksdGhpcy5hdXRoPW5ldyBMZSh0aGlzLmNvcmUsdGhpcy5sb2dnZXIpfXN0YXRpYyBhc3luYyBpbml0KG8pe2xldCB0PW5ldyB2KG8pO3JldHVybiBhd2FpdCB0LmluaXRpYWxpemUoKSx0fWdldCBjb250ZXh0KCl7cmV0dXJuIHF0KHRoaXMubG9nZ2VyKX1nZXQgcGFpcmluZygpe3JldHVybiB0aGlzLmNvcmUucGFpcmluZy5wYWlyaW5nc31hc3luYyBpbml0aWFsaXplKCl7dGhpcy5sb2dnZXIudHJhY2UoIkluaXRpYWxpemVkIik7dHJ5e2F3YWl0IHRoaXMuY29yZS5zdGFydCgpLGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0KCksYXdhaXQgdGhpcy5wcm9wb3NhbC5pbml0KCksYXdhaXQgdGhpcy5wZW5kaW5nUmVxdWVzdC5pbml0KCksYXdhaXQgdGhpcy5hdXRoLmluaXQoKSxhd2FpdCB0aGlzLmVuZ2luZS5pbml0KCksdGhpcy5sb2dnZXIuaW5mbygiU2lnbkNsaWVudCBJbml0aWFsaXphdGlvbiBTdWNjZXNzIiksc2V0VGltZW91dCgoKT0+e3RoaXMuZW5naW5lLnByb2Nlc3NSZWxheU1lc3NhZ2VDYWNoZSgpfSxPZShsdCkpfWNhdGNoKG8pe3Rocm93IHRoaXMubG9nZ2VyLmluZm8oIlNpZ25DbGllbnQgSW5pdGlhbGl6YXRpb24gRmFpbHVyZSIpLHRoaXMubG9nZ2VyLmVycm9yKG8ubWVzc2FnZSksb319fSxWcz1nZSxEcz1NZTtleHBvcnR7aHMgYXMgQVVUSF9DT05URVhULGRzIGFzIEFVVEhfS0VZU19DT05URVhULHVzIGFzIEFVVEhfUEFJUklOR19UT1BJQ19DT05URVhULHBzIGFzIEFVVEhfUFJPVE9DT0wsdWUgYXMgQVVUSF9QVUJMSUNfS0VZX05BTUUsZ3MgYXMgQVVUSF9SRVFVRVNUX0NPTlRFWFQseWUgYXMgQVVUSF9TVE9SQUdFX1BSRUZJWCx4cyBhcyBBVVRIX1ZFUlNJT04sb3MgYXMgRU5HSU5FX0NPTlRFWFQsTSBhcyBFTkdJTkVfUVVFVUVfU1RBVEVTLHEgYXMgRU5HSU5FX1JQQ19PUFRTLGJzIGFzIEhJU1RPUllfQ09OVEVYVCxPcyBhcyBISVNUT1JZX0VWRU5UUyxBcyBhcyBISVNUT1JZX1NUT1JBR0VfVkVSU0lPTixscyBhcyBNRVRIT0RTX1RPX1ZFUklGWSxycyBhcyBQUk9QT1NBTF9DT05URVhULENzIGFzIFBST1BPU0FMX0VYUElSWSxucyBhcyBQUk9QT1NBTF9FWFBJUllfTUVTU0FHRSxjcyBhcyBSRVFVRVNUX0NPTlRFWFQsYXMgYXMgU0VTU0lPTl9DT05URVhULEogYXMgU0VTU0lPTl9FWFBJUlksUGUgYXMgU0VTU0lPTl9SRVFVRVNUX0VYUElSWV9CT1VOREFSSUVTLGR0IGFzIFNJR05fQ0xJRU5UX0NPTlRFWFQsTmUgYXMgU0lHTl9DTElFTlRfREVGQVVMVCxOcyBhcyBTSUdOX0NMSUVOVF9FVkVOVFMscHQgYXMgU0lHTl9DTElFTlRfUFJPVE9DT0wsUHMgYXMgU0lHTl9DTElFTlRfU1RPUkFHRV9PUFRJT05TLGtlIGFzIFNJR05fQ0xJRU5UX1NUT1JBR0VfUFJFRklYLGh0IGFzIFNJR05fQ0xJRU5UX1ZFUlNJT04sVnMgYXMgU2Vzc2lvblN0b3JlLERzIGFzIFNpZ25DbGllbnQsbnQgYXMgV0FMTEVUQ09OTkVDVF9ERUVQTElOS19DSE9JQ0UsTWUgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXNpZ24tY2xpZW50Lm1qcy5tYXA="}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-types@%5E1.0.3?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.549Z","timestamp":1785138633549,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-types@%5E1.0.3?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: EXPIRED\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/jsonrpc-types@1.0.4/es2022/jsonrpc-types.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/jsonrpc-types@1.0.4/dist/types/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcbbbd7569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":128,"size_decoded":675,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"31cd3375e706da5faba9f781a47fe291","sha1":"ceed695b989b6383abf0514f9f1f08f4f503032a","sha256":"cee5c7db9d55562b9f22dcacf99a62118947adb640ec8fa64c32fcd5e9086fed","sha512":"05519c59cbc25d3462857fd911dcd9f836f86acb998d03aef259a834dc3adfcd7b1b167a64f0217ba959122cf4126b70085a5a7fefda5f3b4808fcea3969966a","ssdeep":"","tlshash":"c4b0929242320e68633b0650f7de56ad46c30ee9ca6b58ac639c433cc0112dc8ea13f7","first_seen":"2025-07-08T23:56:54.608995Z","last_seen":"2026-08-08T17:15:51.882697Z","times_seen":126,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy10eXBlc0AxLjAuNCAqLwpleHBvcnQgKiBmcm9tICIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy10eXBlc0AxLjAuNC9lczIwMjIvanNvbnJwYy10eXBlcy5tanMiOwo="}},"time_used":113,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":113,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/rlp@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.703Z","timestamp":1785138633703,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/rlp@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/rlp@5.8.0/es2022/rlp.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/rlp@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccac04569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":205,"size_decoded":667,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"2bb7fe40d4e330dba540828008d46a58","sha1":"ca04a082e0e2267d8a246d1475a5f4fad5228939","sha256":"5c90c47f1cfac94c8ebd9a72aa78d474efd9439494b97a9888e611f5ba372f25","sha512":"c68a188d8de4f824e853eda8f7c0b56e66d76b0273f5602a621a9b3db7a103e06817cc9579132d94b8293cfa541aa485b421cf2e05fd18f2d427c204b9d77906","ssdeep":"","tlshash":"62d0a713c51982cc63ad4ffc0028a73ca17680949045a0979820da33819310925204d6","first_seen":"2025-07-08T23:56:54.737203Z","last_seen":"2026-07-27T07:51:47.183047Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvcmxwQDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL0BldGhlcnNwcm9qZWN0L3JscEA1LjguMC9lczIwMjIvcmxwLm1qcyI7Cg=="}},"time_used":122,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":122,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/esm/src/util/bases.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.026Z","timestamp":1785138634026,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.1/es2022/esm/src/util/bases.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@%5E3.0.0/from-string?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dceac5f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":689,"size_decoded":810,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (602)","md5":"2e9c7c43dc85a0f042f01ae7faef880d","sha1":"af1433855d9c6a144a96338088ef510f0b74dfd7","sha256":"19003df097f5000febbbcacbf7849be598dc36690ffbaef8aa205ba329cb9066","sha512":"f9930bc0d99c252a3c1f038df0125eb2129ce9bbc3731ccc96ced4c6afd0bbbe748ae956050bb13a45243387915b8b21becce179c0ab0b95b4149fb63937dc8d","ssdeep":"","tlshash":"d3014efa2e7670a383a611d10a86900ec4687fdcbd1708e6bd888f2b1301ad088d7f30","first_seen":"2025-07-08T23:56:54.714869Z","last_seen":"2026-08-08T17:15:52.213293Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvZXNtL3NyYy91dGlsL2Jhc2VzICovCmltcG9ydHtiYXNlcyBhcyBvfWZyb20iL211bHRpZm9ybWF0c0BeOS40LjIvYmFzaWNzP3RhcmdldD1lczIwMjIiO2ltcG9ydHthbGxvY1Vuc2FmZSBhcyBzfWZyb20iLi4vLi4vLi4vYWxsb2MubWpzIjtmdW5jdGlvbiBkKGUsdCxuLGkpe3JldHVybntuYW1lOmUscHJlZml4OnQsZW5jb2Rlcjp7bmFtZTplLHByZWZpeDp0LGVuY29kZTpufSxkZWNvZGVyOntkZWNvZGU6aX19fXZhciBjPWQoInV0ZjgiLCJ1IixlPT4idSIrbmV3IFRleHREZWNvZGVyKCJ1dGY4IikuZGVjb2RlKGUpLGU9Pm5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlLnN1YnN0cmluZygxKSkpLHI9ZCgiYXNjaWkiLCJhIixlPT57bGV0IHQ9ImEiO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtuXSk7cmV0dXJuIHR9LGU9PntlPWUuc3Vic3RyaW5nKDEpO2xldCB0PXMoZS5sZW5ndGgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXRbbl09ZS5jaGFyQ29kZUF0KG4pO3JldHVybiB0fSksdT17dXRmODpjLCJ1dGYtOCI6YyxoZXg6by5iYXNlMTYsbGF0aW4xOnIsYXNjaWk6cixiaW5hcnk6ciwuLi5vfSxsPXU7ZXhwb3J0e2wgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2VzLm1qcy5tYXA="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/process.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.563Z","timestamp":1785138633563,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /node/process.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=86400\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\netag: W/\"v137_7\"\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbcbdb569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":7861,"size_decoded":3892,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (7860)","md5":"f8382a3858672b98c93fd61c13d21c2c","sha1":"07e4611887908eb9326935084618e4964fb84550","sha256":"79e7646e87709989f575ea4ce02e0877bc9303081567b1c0d412527917ae9e91","sha512":"a1609e8e33a2b7369169fe7dc1f9fd187c4b431e9c7428e4c3929587bff4701d937b8df219b3dfa2bdc3f6b38f63afecc0d9025a6ec8901d91a5e123179ca5cf","ssdeep":"192:kFmwaFSK/rVyQhxkSULErvtAAQic6NR03ao8Yk33q:5wzEr8irU8Yk3a","tlshash":"a2f1d7dce29a743302c1eadaf0bb0123eaf407c855245650ea0bdcc736219e5a5b1f75","first_seen":"2025-10-29T19:17:04.329787Z","last_seen":"2026-08-13T02:06:35.228115Z","times_seen":707,"resource_available":true,"data":"ZnVuY3Rpb24gcih0KXtyZXR1cm4gbmV3IEVycm9yKGBbdW5lbnZdICR7dH0gaXMgbm90IGltcGxlbWVudGVkIHlldCFgKX1mdW5jdGlvbiBhKHQpe3JldHVybiBPYmplY3QuYXNzaWduKCgpPT57dGhyb3cgcih0KX0se19fdW5lbnZfXzohMH0pfWltcG9ydHtFdmVudEVtaXR0ZXIgYXMgZ31mcm9tIi9ub2RlL2V2ZW50cy5tanMiO2ltcG9ydHtSZWFkU3RyZWFtIGFzIGYsV3JpdGVTdHJlYW0gYXMgcH1mcm9tIi9ub2RlL3R0eS5tanMiO3ZhciB2PSIyMi4xNC4wIixfPWNsYXNzIG0gZXh0ZW5kcyBne2VudjtocnRpbWU7bmV4dFRpY2s7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLmVudj1lLmVudix0aGlzLmhydGltZT1lLmhydGltZSx0aGlzLm5leHRUaWNrPWUubmV4dFRpY2s7Zm9yKGxldCBzIG9mWy4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG0ucHJvdG90eXBlKSwuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhnLnByb3RvdHlwZSldKXtsZXQgaT10aGlzW3NdO3R5cGVvZiBpPT0iZnVuY3Rpb24iJiYodGhpc1tzXT1pLmJpbmQodGhpcykpfX1lbWl0V2FybmluZyhlLHMsaSl7Y29uc29sZS53YXJuKGAke2k/YFske2l9XSBgOiIifSR7cz9gJHtzfTogYDoiIn0ke2V9YCl9ZW1pdCguLi5lKXtyZXR1cm4gc3VwZXIuZW1pdCguLi5lKX1saXN0ZW5lcnMoZSl7cmV0dXJuIHN1cGVyLmxpc3RlbmVycyhlKX0jdDsjczsjcjtnZXQgc3RkaW4oKXtyZXR1cm4gdGhpcy4jdD8/PW5ldyBmKDApfWdldCBzdGRvdXQoKXtyZXR1cm4gdGhpcy4jcz8/PW5ldyBwKDEpfWdldCBzdGRlcnIoKXtyZXR1cm4gdGhpcy4jcj8/PW5ldyBwKDIpfSNlPSIvIjtjaGRpcihlKXt0aGlzLiNlPWV9Y3dkKCl7cmV0dXJuIHRoaXMuI2V9YXJjaD0iIjtwbGF0Zm9ybT0iIjthcmd2PVtdO2FyZ3YwPSIiO2V4ZWNBcmd2PVtdO2V4ZWNQYXRoPSIiO3RpdGxlPSIiO3BpZD0yMDA7cHBpZD0xMDA7Z2V0IHZlcnNpb24oKXtyZXR1cm5gdiR7dn1gfWdldCB2ZXJzaW9ucygpe3JldHVybntub2RlOnZ9fWdldCBhbGxvd2VkTm9kZUVudmlyb25tZW50RmxhZ3MoKXtyZXR1cm4gbmV3IFNldH1nZXQgc291cmNlTWFwc0VuYWJsZWQoKXtyZXR1cm4hMX1nZXQgZGVidWdQb3J0KCl7cmV0dXJuIDB9Z2V0IHRocm93RGVwcmVjYXRpb24oKXtyZXR1cm4hMX1nZXQgdHJhY2VEZXByZWNhdGlvbigpe3JldHVybiExfWdldCBmZWF0dXJlcygpe3JldHVybnt9fWdldCByZWxlYXNlKCl7cmV0dXJue319Z2V0IGNvbm5lY3RlZCgpe3JldHVybiExfWdldCBjb25maWcoKXtyZXR1cm57fX1nZXQgbW9kdWxlTG9hZExpc3QoKXtyZXR1cm5bXX1jb25zdHJhaW5lZE1lbW9yeSgpe3JldHVybiAwfWF2YWlsYWJsZU1lbW9yeSgpe3JldHVybiAwfXVwdGltZSgpe3JldHVybiAwfXJlc291cmNlVXNhZ2UoKXtyZXR1cm57fX1yZWYoKXt9dW5yZWYoKXt9dW1hc2soKXt0aHJvdyByKCJwcm9jZXNzLnVtYXNrIil9Z2V0QnVpbHRpbk1vZHVsZSgpe31nZXRBY3RpdmVSZXNvdXJjZXNJbmZvKCl7dGhyb3cgcigicHJvY2Vzcy5nZXRBY3RpdmVSZXNvdXJjZXNJbmZvIil9ZXhpdCgpe3Rocm93IHIoInByb2Nlc3MuZXhpdCIpfXJlYWxseUV4aXQoKXt0aHJvdyByKCJwcm9jZXNzLnJlYWxseUV4aXQiKX1raWxsKCl7dGhyb3cgcigicHJvY2Vzcy5raWxsIil9YWJvcnQoKXt0aHJvdyByKCJwcm9jZXNzLmFib3J0Iil9ZGxvcGVuKCl7dGhyb3cgcigicHJvY2Vzcy5kbG9wZW4iKX1zZXRTb3VyY2VNYXBzRW5hYmxlZCgpe3Rocm93IHIoInByb2Nlc3Muc2V0U291cmNlTWFwc0VuYWJsZWQiKX1sb2FkRW52RmlsZSgpe3Rocm93IHIoInByb2Nlc3MubG9hZEVudkZpbGUiKX1kaXNjb25uZWN0KCl7dGhyb3cgcigicHJvY2Vzcy5kaXNjb25uZWN0Iil9Y3B1VXNhZ2UoKXt0aHJvdyByKCJwcm9jZXNzLmNwdVVzYWdlIil9c2V0VW5jYXVnaHRFeGNlcHRpb25DYXB0dXJlQ2FsbGJhY2soKXt0aHJvdyByKCJwcm9jZXNzLnNldFVuY2F1Z2h0RXhjZXB0aW9uQ2FwdHVyZUNhbGxiYWNrIil9aGFzVW5jYXVnaHRFeGNlcHRpb25DYXB0dXJlQ2FsbGJhY2soKXt0aHJvdyByKCJwcm9jZXNzLmhhc1VuY2F1Z2h0RXhjZXB0aW9uQ2FwdHVyZUNhbGxiYWNrIil9aW5pdGdyb3Vwcygpe3Rocm93IHIoInByb2Nlc3MuaW5pdGdyb3VwcyIpfW9wZW5TdGRpbigpe3Rocm93IHIoInByb2Nlc3Mub3BlblN0ZGluIil9YXNzZXJ0KCl7dGhyb3cgcigicHJvY2Vzcy5hc3NlcnQiKX1iaW5kaW5nKCl7dGhyb3cgcigicHJvY2Vzcy5iaW5kaW5nIil9cGVybWlzc2lvbj17aGFzOmEoInByb2Nlc3MucGVybWlzc2lvbi5oYXMiKX07cmVwb3J0PXtkaXJlY3Rvcnk6IiIsZmlsZW5hbWU6IiIsc2lnbmFsOiJTSUdVU1IyIixjb21wYWN0OiExLHJlcG9ydE9uRmF0YWxFcnJvcjohMSxyZXBvcnRPblNpZ25hbDohMSxyZXBvcnRPblVuY2F1Z2h0RXhjZXB0aW9uOiExLGdldFJlcG9ydDphKCJwcm9jZXNzLnJlcG9ydC5nZXRSZXBvcnQiKSx3cml0ZVJlcG9ydDphKCJwcm9jZXNzLnJlcG9ydC53cml0ZVJlcG9ydCIpfTtmaW5hbGl6YXRpb249e3JlZ2lzdGVyOmEoInByb2Nlc3MuZmluYWxpemF0aW9uLnJlZ2lzdGVyIiksdW5yZWdpc3RlcjphKCJwcm9jZXNzLmZpbmFsaXphdGlvbi51bnJlZ2lzdGVyIikscmVnaXN0ZXJCZWZvcmVFeGl0OmEoInByb2Nlc3MuZmluYWxpemF0aW9uLnJlZ2lzdGVyQmVmb3JlRXhpdCIpfTttZW1vcnlVc2FnZT1PYmplY3QuYXNzaWduKCgpPT4oe2FycmF5QnVmZmVyczowLHJzczowLGV4dGVybmFsOjAsaGVhcFRvdGFsOjAsaGVhcFVzZWQ6MH0pLHtyc3M6KCk9PjB9KTttYWluTW9kdWxlPXZvaWQgMDtkb21haW49dm9pZCAwO3NlbmQ9dm9pZCAwO2V4aXRDb2RlPXZvaWQgMDtjaGFubmVsPXZvaWQgMDtnZXRlZ2lkPXZvaWQgMDtnZXRldWlkPXZvaWQgMDtnZXRnaWQ9dm9pZCAwO2dldGdyb3Vwcz12b2lkIDA7Z2V0dWlkPXZvaWQgMDtzZXRlZ2lkPXZvaWQgMDtzZXRldWlkPXZvaWQgMDtzZXRnaWQ9dm9pZCAwO3NldGdyb3Vwcz12b2lkIDA7c2V0dWlkPXZvaWQgMDtfZXZlbnRzPXZvaWQgMDtfZXZlbnRzQ291bnQ9dm9pZCAwO19leGl0aW5nPXZvaWQgMDtfbWF4TGlzdGVuZXJzPXZvaWQgMDtfZGVidWdFbmQ9dm9pZCAwO19kZWJ1Z1Byb2Nlc3M9dm9pZCAwO19mYXRhbEV4Y2VwdGlvbj12b2lkIDA7X2dldEFjdGl2ZUhhbmRsZXM9dm9pZCAwO19nZXRBY3RpdmVSZXF1ZXN0cz12b2lkIDA7X2tpbGw9dm9pZCAwO19wcmVsb2FkX21vZHVsZXM9dm9pZCAwO19yYXdEZWJ1Zz12b2lkIDA7X3N0YXJ0UHJvZmlsZXJJZGxlTm90aWZpZXI9dm9pZCAwO19zdG9wUHJvZmlsZXJJZGxlTm90aWZpZXI9dm9pZCAwO190aWNrQ2FsbGJhY2s9dm9pZCAwO19kaXNjb25uZWN0PXZvaWQgMDtfaGFuZGxlUXVldWU9dm9pZCAwO19wZW5kaW5nTWVzc2FnZT12b2lkIDA7X2NoYW5uZWw9dm9pZCAwO19zZW5kPXZvaWQgMDtfbGlua2VkQmluZGluZz12b2lkIDB9LHU9T2JqZWN0LmNyZWF0ZShudWxsKSxiPWdsb2JhbFRoaXMucHJvY2VzcyxvPXQ9Pmdsb2JhbFRoaXMuX19lbnZfX3x8Yj8uZW52fHwodD91Omdsb2JhbFRoaXMpLHg9bmV3IFByb3h5KHUse2dldCh0LGUpe3JldHVybiBvKClbZV0/P3VbZV19LGhhcyh0LGUpe2xldCBzPW8oKTtyZXR1cm4gZSBpbiBzfHxlIGluIHV9LHNldCh0LGUscyl7bGV0IGk9byghMCk7cmV0dXJuIGlbZV09cywhMH0sZGVsZXRlUHJvcGVydHkodCxlKXtsZXQgcz1vKCEwKTtyZXR1cm4gZGVsZXRlIHNbZV0sITB9LG93bktleXMoKXtsZXQgdD1vKCk7cmV0dXJuIE9iamVjdC5rZXlzKHQpfSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKXtsZXQgcz1vKCk7aWYoZSBpbiBzKXJldHVybnt2YWx1ZTpzW2VdLHdyaXRhYmxlOiEwLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfX19KSx3PU9iamVjdC5hc3NpZ24oZnVuY3Rpb24odCl7bGV0IGU9RGF0ZS5ub3coKSxzPU1hdGgudHJ1bmMoZS8xZTMpLGk9ZSUxZTMqMWU2O2lmKHQpe2xldCBkPXMtdFswXSxuPWktdFswXTtyZXR1cm4gbjwwJiYoZD1kLTEsbj0xZTkrbiksW2Qsbl19cmV0dXJuW3MsaV19LHtiaWdpbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gQmlnSW50KERhdGUubm93KCkqMWU2KX19KSxFPWdsb2JhbFRoaXMucXVldWVNaWNyb3Rhc2s/KHQsLi4uZSk9PntnbG9iYWxUaGlzLnF1ZXVlTWljcm90YXNrKHQuYmluZCh2b2lkIDAsLi4uZSkpfTprKCk7ZnVuY3Rpb24gaygpe2xldCB0PVtdLGU9ITEscyxpPS0xO2Z1bmN0aW9uIGQoKXshZXx8IXN8fChlPSExLHMubGVuZ3RoPjA/dD1bLi4ucywuLi50XTppPS0xLHQubGVuZ3RoPjAmJm4oKSl9ZnVuY3Rpb24gbigpe2lmKGUpcmV0dXJuO2xldCBjPXNldFRpbWVvdXQoZCk7ZT0hMDtsZXQgbD10Lmxlbmd0aDtmb3IoO2w7KXtmb3Iocz10LHQ9W107KytpPGw7KXMmJnNbaV0oKTtpPS0xLGw9dC5sZW5ndGh9cz12b2lkIDAsZT0hMSxjbGVhclRpbWVvdXQoYyl9cmV0dXJuKGMsLi4ubCk9Pnt0LnB1c2goYy5iaW5kKHZvaWQgMCwuLi5sKSksdC5sZW5ndGg9PT0xJiYhZSYmc2V0VGltZW91dChuKX19dmFyIGg9bmV3IF8oe2Vudjp4LGhydGltZTp3LG5leHRUaWNrOkV9KSxBPWgse2Fib3J0Ok8sYWRkTGlzdGVuZXI6VCxhbGxvd2VkTm9kZUVudmlyb25tZW50RmxhZ3M6UyxoYXNVbmNhdWdodEV4Y2VwdGlvbkNhcHR1cmVDYWxsYmFjazpOLHNldFVuY2F1Z2h0RXhjZXB0aW9uQ2FwdHVyZUNhbGxiYWNrOlIsbG9hZEVudkZpbGU6SSxzb3VyY2VNYXBzRW5hYmxlZDpCLGFyY2g6aixhcmd2OkQsYXJndjA6RixjaGRpcjokLGNvbmZpZzp6LGNvbm5lY3RlZDpxLGNvbnN0cmFpbmVkTWVtb3J5OlcsYXZhaWxhYmxlTWVtb3J5OkgsY3B1VXNhZ2U6USxjd2Q6RyxkZWJ1Z1BvcnQ6SyxkbG9wZW46SixkaXNjb25uZWN0OlYsZW1pdDpYLGVtaXRXYXJuaW5nOlksZW52OlosZXZlbnROYW1lczplZSxleGVjQXJndjp0ZSxleGVjUGF0aDpzZSxleGl0OnJlLGZpbmFsaXphdGlvbjppZSxmZWF0dXJlczpuZSxnZXRCdWlsdGluTW9kdWxlOmFlLGdldEFjdGl2ZVJlc291cmNlc0luZm86b2UsZ2V0TWF4TGlzdGVuZXJzOmRlLGhydGltZTpsZSxraWxsOnVlLGxpc3RlbmVyczpjZSxsaXN0ZW5lckNvdW50OmdlLG1lbW9yeVVzYWdlOnBlLG5leHRUaWNrOnZlLG9uOm1lLG9mZjpoZSxvbmNlOmZlLHBpZDpfZSxwbGF0Zm9ybTpiZSxwcGlkOnhlLHByZXBlbmRMaXN0ZW5lcjp3ZSxwcmVwZW5kT25jZUxpc3RlbmVyOkVlLHJhd0xpc3RlbmVyczprZSxyZWxlYXNlOnllLHJlbW92ZUFsbExpc3RlbmVyczpNZSxyZW1vdmVMaXN0ZW5lcjpDZSxyZXBvcnQ6TGUscmVzb3VyY2VVc2FnZTpQZSxzZXRNYXhMaXN0ZW5lcnM6VWUsc2V0U291cmNlTWFwc0VuYWJsZWQ6QWUsc3RkZXJyOk9lLHN0ZGluOlRlLHN0ZG91dDpTZSx0aXRsZTpOZSx1bWFzazpSZSx1cHRpbWU6SWUsdmVyc2lvbjpCZSx2ZXJzaW9uczpqZSxkb21haW46RGUsaW5pdGdyb3VwczpGZSxtb2R1bGVMb2FkTGlzdDokZSxyZWFsbHlFeGl0OnplLG9wZW5TdGRpbjpxZSxhc3NlcnQ6V2UsYmluZGluZzpIZSxzZW5kOlFlLGV4aXRDb2RlOkdlLGNoYW5uZWw6S2UsZ2V0ZWdpZDpKZSxnZXRldWlkOlZlLGdldGdpZDpYZSxnZXRncm91cHM6WWUsZ2V0dWlkOlplLHNldGVnaWQ6ZXQsc2V0ZXVpZDp0dCxzZXRnaWQ6c3Qsc2V0Z3JvdXBzOnJ0LHNldHVpZDppdCxwZXJtaXNzaW9uOm50LG1haW5Nb2R1bGU6YXQscmVmOm90LHVucmVmOmR0LF9ldmVudHM6bHQsX2V2ZW50c0NvdW50OnV0LF9leGl0aW5nOmN0LF9tYXhMaXN0ZW5lcnM6Z3QsX2RlYnVnRW5kOnB0LF9kZWJ1Z1Byb2Nlc3M6dnQsX2ZhdGFsRXhjZXB0aW9uOm10LF9nZXRBY3RpdmVIYW5kbGVzOmh0LF9nZXRBY3RpdmVSZXF1ZXN0czpmdCxfa2lsbDpfdCxfcHJlbG9hZF9tb2R1bGVzOmJ0LF9yYXdEZWJ1Zzp4dCxfc3RhcnRQcm9maWxlcklkbGVOb3RpZmllcjp3dCxfc3RvcFByb2ZpbGVySWRsZU5vdGlmaWVyOkV0LF90aWNrQ2FsbGJhY2s6a3QsX2Rpc2Nvbm5lY3Q6eXQsX2hhbmRsZVF1ZXVlOk10LF9wZW5kaW5nTWVzc2FnZTpDdCxfY2hhbm5lbDpMdCxfc2VuZDpQdCxfbGlua2VkQmluZGluZzpVdH09aDtleHBvcnR7THQgYXMgX2NoYW5uZWwscHQgYXMgX2RlYnVnRW5kLHZ0IGFzIF9kZWJ1Z1Byb2Nlc3MseXQgYXMgX2Rpc2Nvbm5lY3QsbHQgYXMgX2V2ZW50cyx1dCBhcyBfZXZlbnRzQ291bnQsY3QgYXMgX2V4aXRpbmcsbXQgYXMgX2ZhdGFsRXhjZXB0aW9uLGh0IGFzIF9nZXRBY3RpdmVIYW5kbGVzLGZ0IGFzIF9nZXRBY3RpdmVSZXF1ZXN0cyxNdCBhcyBfaGFuZGxlUXVldWUsX3QgYXMgX2tpbGwsVXQgYXMgX2xpbmtlZEJpbmRpbmcsZ3QgYXMgX21heExpc3RlbmVycyxDdCBhcyBfcGVuZGluZ01lc3NhZ2UsYnQgYXMgX3ByZWxvYWRfbW9kdWxlcyx4dCBhcyBfcmF3RGVidWcsUHQgYXMgX3NlbmQsd3QgYXMgX3N0YXJ0UHJvZmlsZXJJZGxlTm90aWZpZXIsRXQgYXMgX3N0b3BQcm9maWxlcklkbGVOb3RpZmllcixrdCBhcyBfdGlja0NhbGxiYWNrLE8gYXMgYWJvcnQsVCBhcyBhZGRMaXN0ZW5lcixTIGFzIGFsbG93ZWROb2RlRW52aXJvbm1lbnRGbGFncyxqIGFzIGFyY2gsRCBhcyBhcmd2LEYgYXMgYXJndjAsV2UgYXMgYXNzZXJ0LEggYXMgYXZhaWxhYmxlTWVtb3J5LEhlIGFzIGJpbmRpbmcsS2UgYXMgY2hhbm5lbCwkIGFzIGNoZGlyLHogYXMgY29uZmlnLHEgYXMgY29ubmVjdGVkLFcgYXMgY29uc3RyYWluZWRNZW1vcnksUSBhcyBjcHVVc2FnZSxHIGFzIGN3ZCxLIGFzIGRlYnVnUG9ydCxBIGFzIGRlZmF1bHQsViBhcyBkaXNjb25uZWN0LEogYXMgZGxvcGVuLERlIGFzIGRvbWFpbixYIGFzIGVtaXQsWSBhcyBlbWl0V2FybmluZyxaIGFzIGVudixlZSBhcyBldmVudE5hbWVzLHRlIGFzIGV4ZWNBcmd2LHNlIGFzIGV4ZWNQYXRoLHJlIGFzIGV4aXQsR2UgYXMgZXhpdENvZGUsbmUgYXMgZmVhdHVyZXMsaWUgYXMgZmluYWxpemF0aW9uLG9lIGFzIGdldEFjdGl2ZVJlc291cmNlc0luZm8sYWUgYXMgZ2V0QnVpbHRpbk1vZHVsZSxkZSBhcyBnZXRNYXhMaXN0ZW5lcnMsSmUgYXMgZ2V0ZWdpZCxWZSBhcyBnZXRldWlkLFhlIGFzIGdldGdpZCxZZSBhcyBnZXRncm91cHMsWmUgYXMgZ2V0dWlkLE4gYXMgaGFzVW5jYXVnaHRFeGNlcHRpb25DYXB0dXJlQ2FsbGJhY2ssbGUgYXMgaHJ0aW1lLEZlIGFzIGluaXRncm91cHMsdWUgYXMga2lsbCxnZSBhcyBsaXN0ZW5lckNvdW50LGNlIGFzIGxpc3RlbmVycyxJIGFzIGxvYWRFbnZGaWxlLGF0IGFzIG1haW5Nb2R1bGUscGUgYXMgbWVtb3J5VXNhZ2UsJGUgYXMgbW9kdWxlTG9hZExpc3QsdmUgYXMgbmV4dFRpY2ssaGUgYXMgb2ZmLG1lIGFzIG9uLGZlIGFzIG9uY2UscWUgYXMgb3BlblN0ZGluLG50IGFzIHBlcm1pc3Npb24sX2UgYXMgcGlkLGJlIGFzIHBsYXRmb3JtLHhlIGFzIHBwaWQsd2UgYXMgcHJlcGVuZExpc3RlbmVyLEVlIGFzIHByZXBlbmRPbmNlTGlzdGVuZXIsa2UgYXMgcmF3TGlzdGVuZXJzLHplIGFzIHJlYWxseUV4aXQsb3QgYXMgcmVmLHllIGFzIHJlbGVhc2UsTWUgYXMgcmVtb3ZlQWxsTGlzdGVuZXJzLENlIGFzIHJlbW92ZUxpc3RlbmVyLExlIGFzIHJlcG9ydCxQZSBhcyByZXNvdXJjZVVzYWdlLFFlIGFzIHNlbmQsVWUgYXMgc2V0TWF4TGlzdGVuZXJzLEFlIGFzIHNldFNvdXJjZU1hcHNFbmFibGVkLFIgYXMgc2V0VW5jYXVnaHRFeGNlcHRpb25DYXB0dXJlQ2FsbGJhY2ssZXQgYXMgc2V0ZWdpZCx0dCBhcyBzZXRldWlkLHN0IGFzIHNldGdpZCxydCBhcyBzZXRncm91cHMsaXQgYXMgc2V0dWlkLEIgYXMgc291cmNlTWFwc0VuYWJsZWQsT2UgYXMgc3RkZXJyLFRlIGFzIHN0ZGluLFNlIGFzIHN0ZG91dCxOZSBhcyB0aXRsZSxSZSBhcyB1bWFzayxkdCBhcyB1bnJlZixJZSBhcyB1cHRpbWUsQmUgYXMgdmVyc2lvbixqZSBhcyB2ZXJzaW9uc307Cg=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/constant-time@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.719Z","timestamp":1785138633719,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/constant-time@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/constant-time@1.0.1/es2022/constant-time.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/constant-time@1.0.1/lib/constant-time.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccbc0b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":204,"size_decoded":674,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"ef2821c5b3e6ed312a031ed27831474d","sha1":"54ffc9488e307a5339dda1cb569db53bb0d57660","sha256":"db8af311dcb907e733761bfa755efbacb958927201bcb2f9c220a0f7b372d9ba","sha512":"36371bcb2d4f7923d5bc4ed4a55773fc6859ec4c04b6c08f6b76df3a4a682d6a67915cf5b9c19e139c95339828b2fa3e9d9b38b6ba2d1c35d76d9ea83ca92d1f","ssdeep":"","tlshash":"dfd01203234ba6243b38dec05a64b3a073753d48f86b94dc019d0b009143c825231697","first_seen":"2025-07-08T23:56:54.659645Z","last_seen":"2026-07-27T07:51:47.138886Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9jb25zdGFudC10aW1lQDEuMC4xICovCmV4cG9ydCAqIGZyb20gIi9Ac3RhYmxlbGliL2NvbnN0YW50LXRpbWVAMS4wLjEvZXMyMDIyL2NvbnN0YW50LXRpbWUubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9Ac3RhYmxlbGliL2NvbnN0YW50LXRpbWVAMS4wLjEvZXMyMDIyL2NvbnN0YW50LXRpbWUubWpzIjsK"}},"time_used":127,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":127,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/random@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.746Z","timestamp":1785138633746,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/random@%5E1.0.2?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/x25519@1.0.3/es2022/x25519.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/random@1.0.2/es2022/random.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/random@1.0.2/lib/random.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccec17569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":267,"size_decoded":675,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"53c9da7e36519e4ae48b098f99d24250","sha1":"9c8d2642a80682ee3f221eafa91ba7fb2e45f4ed","sha256":"d37c3dc0b9b0445dba3f8d6452dd63741f2ce763c03ae82a1fdb7afdbd7cf1d0","sha512":"78dd29a40b68a8c8a01a6e36b165eff008e4afac25418a8bf195946ab74bb6e54bac8cd93d7e99340851c1a7b450d72a612f1c7e44c252faa0765dd302416ec7","ssdeep":"","tlshash":"23d05b2152cfb7ec2390bce4d2e5f23457711144e4f20c6d3456c723702388065237d2","first_seen":"2025-11-22T14:57:24.12302Z","last_seen":"2026-08-03T06:19:48.317181Z","times_seen":108,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9yYW5kb21AMS4wLjIgKi8KaW1wb3J0ICIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9yYW5kb21AMS4wLjIvZXMyMDIyL3JhbmRvbS5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0BzdGFibGVsaWIvcmFuZG9tQDEuMC4yL2VzMjAyMi9yYW5kb20ubWpzIjsK"}},"time_used":130,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":130,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@%5E3.0.0/concat?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.753Z","timestamp":1785138633753,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@%5E3.0.0/concat?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /uint8arrays@3.1.1/es2022/concat.mjs\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccfc1b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":207,"size_decoded":565,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"3bffa70b2a3f6049c8fcfe556ca7ae6d","sha1":"c17c06fbd3de21617521bcfc952e9faa7d711acc","sha256":"bc4b321a00485fe0f87fe28f3192389d9068b6fe6e7e397d8082ea99d248e5cb","sha512":"87f489b8c2b9916ef02ec418398de8f39c4772f8e1c7910aa490f4264f12ffedeb94263c76c5104e3c04f0e7e9606a8f52647b442db17c8cf438df178c4dac4a","ssdeep":"","tlshash":"9dd0c2560257193d12e58ec885905136c3555ba4e9cb05cc38376d5da2538e4c8e19f9","first_seen":"2025-07-08T23:56:54.616552Z","last_seen":"2026-07-27T07:51:47.16513Z","times_seen":99,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvY29uY2F0ICovCmltcG9ydCAiL3VpbnQ4YXJyYXlzQDMuMS4xL2VzMjAyMi9hbGxvYy5tanMiOwppbXBvcnQgIi91aW50OGFycmF5c0AzLjEuMS9lczIwMjIvZXNtL3NyYy91dGlsL2FzLXVpbnQ4YXJyYXkubWpzIjsKZXhwb3J0ICogZnJvbSAiL3VpbnQ4YXJyYXlzQDMuMS4xL2VzMjAyMi9jb25jYXQubWpzIjsK"}},"time_used":120,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":120,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/sha512@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.015Z","timestamp":1785138634015,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/sha512@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/ed25519@%5E1.0.2?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/sha512@1.0.1/es2022/sha512.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/sha512@1.0.1/lib/sha512.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce9c5c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":267,"size_decoded":674,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"7976d6a18002cb78107a04d976493756","sha1":"f02ababca2b8d9faa70fc1a6db0a30363f09761e","sha256":"8ab6d8028f171958e1951b5e1b528fe2611cffecf140dea64d4a1904dbef8961","sha512":"32b892a39590ca11d2d193ab9b717258ed447ddc9b93379deb65ece18812502b76ff5cdc6ab7bf497d41fa7defba13c43125a8481ee1707e434cae5e615b810b","ssdeep":"","tlshash":"5ed05e11638be7aa2310fcf5d1f5f33a83750088e4b3086c2ee4e752e00288944227e2","first_seen":"2025-07-08T23:56:54.828883Z","last_seen":"2026-07-27T07:51:47.245878Z","times_seen":101,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9zaGE1MTJAMS4wLjEgKi8KaW1wb3J0ICIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9zaGE1MTJAMS4wLjEvZXMyMDIyL3NoYTUxMi5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0BzdGFibGVsaWIvc2hhNTEyQDEuMC4xL2VzMjAyMi9zaGE1MTIubWpzIjsK"}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/concat.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.040Z","timestamp":1785138634040,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.1/es2022/concat.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@%5E3.0.0/concat?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:03:00 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dcecc65569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":320,"size_decoded":615,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"1fa275395846c47af0688b4e88c816d5","sha1":"153ca7e1416e0532035071d6df06e7c929bdd3d6","sha256":"dd98b67a045565b7fae1941e7ca832172160069ddb266b75e590ff6d818ca08f","sha512":"97030ad6bd4d48c13fad3f6c92e13cf1d8c1483b9c986397e3272e97b35f06ef49b226ae30cfd7e6a5bca49d93c988da4ce795cf584ee87a780fd96fb81b83d2","ssdeep":"","tlshash":"94e0c0631462042940b74e6b8090111087245f78e986069c90072c693712de0c4c6d75","first_seen":"2025-07-08T23:56:54.597617Z","last_seen":"2026-08-08T17:15:52.192089Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvY29uY2F0ICovCmltcG9ydHthbGxvY1Vuc2FmZSBhcyBjfWZyb20iLi9hbGxvYy5tanMiO2ltcG9ydHthc1VpbnQ4QXJyYXkgYXMgaX1mcm9tIi4vZXNtL3NyYy91dGlsL2FzLXVpbnQ4YXJyYXkubWpzIjtmdW5jdGlvbiBhKHIsdCl7dHx8KHQ9ci5yZWR1Y2UoKG8sbik9Pm8rbi5sZW5ndGgsMCkpO2xldCBmPWModCksZT0wO2ZvcihsZXQgbyBvZiByKWYuc2V0KG8sZSksZSs9by5sZW5ndGg7cmV0dXJuIGkoZil9ZXhwb3J0e2EgYXMgY29uY2F0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uY2F0Lm1qcy5tYXA="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hash.js@%5E1.0.3?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.050Z","timestamp":1785138634050,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /hash.js@%5E1.0.3?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/hmac-drbg@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /hash.js@1.1.7/es2022/hash.mjs\r\nx-typescript-types: https://esm.sh/hash.js@1.1.7/lib/hash.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dcedc68569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":187,"size_decoded":643,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"9e157228e182fac4a5ab80c94bcb046b","sha1":"cc478da919f5a269364ec6bb5ef03d2a71e82337","sha256":"f22154f96e20b946b641d7fcd7436967b42717c7e8724641a3bc9601b1921329","sha512":"46aec6e2940371dda191a445a902a99db4efee89597773b8324f2b3cd0fd1c3de9d1a1f816285d15f8f39401340afa3b3a3ea067c79d40d580aaa5b707975722","ssdeep":"","tlshash":"32c012150613ba1813341adc29aa893a9bb6cb8ce80e00ba68af460ab003040e0a22b4","first_seen":"2025-07-08T23:56:54.581436Z","last_seen":"2026-07-27T07:51:47.155296Z","times_seen":28,"resource_available":true,"data":"LyogZXNtLnNoIC0gaGFzaC5qc0AxLjEuNyAqLwppbXBvcnQgIi9taW5pbWFsaXN0aWMtYXNzZXJ0QF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL2hhc2guanNAMS4xLjcvZXMyMDIyL2hhc2gubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9oYXNoLmpzQDEuMS43L2VzMjAyMi9oYXNoLm1qcyI7Cg=="}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/cid.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.261Z","timestamp":1785138634261,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/cid.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@9.9.0/es2022/multiformats.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:32:39 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-cache-status: HIT\r\nage: 16516\r\ncf-ray: a21a0dd02c92569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4832,"size_decoded":2714,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (4531)","md5":"5e91b2f4cffcc07d32e748e46a8f694d","sha1":"9e3f8863fbbb96378af2f993e610f2c9d3e322af","sha256":"1945384d570468b0bb5bd0f394184835038d5778d701b50b6b7eb7273748d288","sha512":"71ff2e7cc3847f8d59a9f33c97d87fae7aa7f598b777e6995065f00df6c13b756de158c241c9ea16ece2dd490000847650fbf9ca1bed7d21045c067130a406f0","ssdeep":"96:y5Lhe/kUgKP+blILy++2enbCdcn3c2h7xKfSssrjucfIKGAasXUxYaWEYRjwi:y5sgKP+bMyyI38SsQCc9XaO/","tlshash":"83a16490fbd5b1b687ee154110314011f32c54a9287c083afe9abf56bae49c8ddf63b1","first_seen":"2025-07-08T23:56:54.651481Z","last_seen":"2026-08-08T17:15:51.784001Z","times_seen":122,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2NpZCAqLwppbXBvcnQqYXMgYyBmcm9tIi4vZXNtL3NyYy92YXJpbnQubWpzIjtpbXBvcnQqYXMgYSBmcm9tIi4vaGFzaGVzL2RpZ2VzdC5tanMiO2ltcG9ydHtiYXNlNThidGMgYXMgaX1mcm9tIi4vYmFzZXMvYmFzZTU4Lm1qcyI7aW1wb3J0e2Jhc2UzMiBhcyBmfWZyb20iLi9iYXNlcy9iYXNlMzIubWpzIjtpbXBvcnR7Y29lcmNlIGFzIFN9ZnJvbSIuL2VzbS9zcmMvYnl0ZXMubWpzIjt2YXIgdz1jbGFzcyBue2NvbnN0cnVjdG9yKGUsdCxyLHMpe3RoaXMuY29kZT10LHRoaXMudmVyc2lvbj1lLHRoaXMubXVsdGloYXNoPXIsdGhpcy5ieXRlcz1zLHRoaXMuYnl0ZU9mZnNldD1zLmJ5dGVPZmZzZXQsdGhpcy5ieXRlTGVuZ3RoPXMuYnl0ZUxlbmd0aCx0aGlzLmFzQ0lEPXRoaXMsdGhpcy5fYmFzZUNhY2hlPW5ldyBNYXAsT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcyx7Ynl0ZU9mZnNldDp1LGJ5dGVMZW5ndGg6dSxjb2RlOmwsdmVyc2lvbjpsLG11bHRpaGFzaDpsLGJ5dGVzOmwsX2Jhc2VDYWNoZTp1LGFzQ0lEOnV9KX10b1YwKCl7c3dpdGNoKHRoaXMudmVyc2lvbil7Y2FzZSAwOnJldHVybiB0aGlzO2RlZmF1bHQ6e2xldHtjb2RlOmUsbXVsdGloYXNoOnR9PXRoaXM7aWYoZSE9PWQpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY29udmVydCBhIG5vbiBkYWctcGIgQ0lEIHRvIENJRHYwIik7aWYodC5jb2RlIT09eil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjb252ZXJ0IG5vbiBzaGEyLTI1NiBtdWx0aWhhc2ggQ0lEIHRvIENJRHYwIik7cmV0dXJuIG4uY3JlYXRlVjAodCl9fX10b1YxKCl7c3dpdGNoKHRoaXMudmVyc2lvbil7Y2FzZSAwOntsZXR7Y29kZTplLGRpZ2VzdDp0fT10aGlzLm11bHRpaGFzaCxyPWEuY3JlYXRlKGUsdCk7cmV0dXJuIG4uY3JlYXRlVjEodGhpcy5jb2RlLHIpfWNhc2UgMTpyZXR1cm4gdGhpcztkZWZhdWx0OnRocm93IEVycm9yKGBDYW4gbm90IGNvbnZlcnQgQ0lEIHZlcnNpb24gJHt0aGlzLnZlcnNpb259IHRvIHZlcnNpb24gMC4gVGhpcyBpcyBhIGJ1ZyBwbGVhc2UgcmVwb3J0YCl9fWVxdWFscyhlKXtyZXR1cm4gZSYmdGhpcy5jb2RlPT09ZS5jb2RlJiZ0aGlzLnZlcnNpb249PT1lLnZlcnNpb24mJmEuZXF1YWxzKHRoaXMubXVsdGloYXNoLGUubXVsdGloYXNoKX10b1N0cmluZyhlKXtsZXR7Ynl0ZXM6dCx2ZXJzaW9uOnIsX2Jhc2VDYWNoZTpzfT10aGlzO3N3aXRjaChyKXtjYXNlIDA6cmV0dXJuIEUodCxzLGV8fGkuZW5jb2Rlcik7ZGVmYXVsdDpyZXR1cm4geCh0LHMsZXx8Zi5lbmNvZGVyKX19dG9KU09OKCl7cmV0dXJue2NvZGU6dGhpcy5jb2RlLHZlcnNpb246dGhpcy52ZXJzaW9uLGhhc2g6dGhpcy5tdWx0aWhhc2guYnl0ZXN9fWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkNJRCJ9W1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildKCl7cmV0dXJuIkNJRCgiK3RoaXMudG9TdHJpbmcoKSsiKSJ9c3RhdGljIGlzQ0lEKGUpe3JldHVybiBPKC9eMFwuMC8sQiksISEoZSYmKGVbQ118fGUuYXNDSUQ9PT1lKSl9Z2V0IHRvQmFzZUVuY29kZWRTdHJpbmcoKXt0aHJvdyBuZXcgRXJyb3IoIkRlcHJlY2F0ZWQsIHVzZSAudG9TdHJpbmcoKSIpfWdldCBjb2RlYygpe3Rocm93IG5ldyBFcnJvcignImNvZGVjIiBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLCB1c2UgaW50ZWdlciAiY29kZSIgcHJvcGVydHkgaW5zdGVhZCcpfWdldCBidWZmZXIoKXt0aHJvdyBuZXcgRXJyb3IoIkRlcHJlY2F0ZWQgLmJ1ZmZlciBwcm9wZXJ0eSwgdXNlIC5ieXRlcyB0byBnZXQgVWludDhBcnJheSBpbnN0ZWFkIil9Z2V0IG11bHRpYmFzZU5hbWUoKXt0aHJvdyBuZXcgRXJyb3IoJyJtdWx0aWJhc2VOYW1lIiBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkJyl9Z2V0IHByZWZpeCgpe3Rocm93IG5ldyBFcnJvcignInByZWZpeCIgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCcpfXN0YXRpYyBhc0NJRChlKXtpZihlIGluc3RhbmNlb2YgbilyZXR1cm4gZTtpZihlIT1udWxsJiZlLmFzQ0lEPT09ZSl7bGV0e3ZlcnNpb246dCxjb2RlOnIsbXVsdGloYXNoOnMsYnl0ZXM6b309ZTtyZXR1cm4gbmV3IG4odCxyLHMsb3x8Yih0LHIscy5ieXRlcykpfWVsc2UgaWYoZSE9bnVsbCYmZVtDXT09PSEwKXtsZXR7dmVyc2lvbjp0LG11bHRpaGFzaDpyLGNvZGU6c309ZSxvPWEuZGVjb2RlKHIpO3JldHVybiBuLmNyZWF0ZSh0LHMsbyl9ZWxzZSByZXR1cm4gbnVsbH1zdGF0aWMgY3JlYXRlKGUsdCxyKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCJTdHJpbmcgY29kZWNzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIik7c3dpdGNoKGUpe2Nhc2UgMDp7aWYodCE9PWQpdGhyb3cgbmV3IEVycm9yKGBWZXJzaW9uIDAgQ0lEIG11c3QgdXNlIGRhZy1wYiAoY29kZTogJHtkfSkgYmxvY2sgZW5jb2RpbmdgKTtyZXR1cm4gbmV3IG4oZSx0LHIsci5ieXRlcyl9Y2FzZSAxOntsZXQgcz1iKGUsdCxyLmJ5dGVzKTtyZXR1cm4gbmV3IG4oZSx0LHIscyl9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmVyc2lvbiIpfX1zdGF0aWMgY3JlYXRlVjAoZSl7cmV0dXJuIG4uY3JlYXRlKDAsZCxlKX1zdGF0aWMgY3JlYXRlVjEoZSx0KXtyZXR1cm4gbi5jcmVhdGUoMSxlLHQpfXN0YXRpYyBkZWNvZGUoZSl7bGV0W3Qscl09bi5kZWNvZGVGaXJzdChlKTtpZihyLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBsZW5ndGgiKTtyZXR1cm4gdH1zdGF0aWMgZGVjb2RlRmlyc3QoZSl7bGV0IHQ9bi5pbnNwZWN0Qnl0ZXMoZSkscj10LnNpemUtdC5tdWx0aWhhc2hTaXplLHM9UyhlLnN1YmFycmF5KHIscit0Lm11bHRpaGFzaFNpemUpKTtpZihzLmJ5dGVMZW5ndGghPT10Lm11bHRpaGFzaFNpemUpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgbGVuZ3RoIik7bGV0IG89cy5zdWJhcnJheSh0Lm11bHRpaGFzaFNpemUtdC5kaWdlc3RTaXplKSxoPW5ldyBhLkRpZ2VzdCh0Lm11bHRpaGFzaENvZGUsdC5kaWdlc3RTaXplLG8scyk7cmV0dXJuW3QudmVyc2lvbj09PTA/bi5jcmVhdGVWMChoKTpuLmNyZWF0ZVYxKHQuY29kZWMsaCksZS5zdWJhcnJheSh0LnNpemUpXX1zdGF0aWMgaW5zcGVjdEJ5dGVzKGUpe2xldCB0PTAscj0oKT0+e2xldFt5LEldPWMuZGVjb2RlKGUuc3ViYXJyYXkodCkpO3JldHVybiB0Kz1JLHl9LHM9cigpLG89ZDtpZihzPT09MTg/KHM9MCx0PTApOnM9PT0xJiYobz1yKCkpLHMhPT0wJiZzIT09MSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihgSW52YWxpZCBDSUQgdmVyc2lvbiAke3N9YCk7bGV0IGg9dCxwPXIoKSxnPXIoKSxtPXQrZyxEPW0taDtyZXR1cm57dmVyc2lvbjpzLGNvZGVjOm8sbXVsdGloYXNoQ29kZTpwLGRpZ2VzdFNpemU6ZyxtdWx0aWhhc2hTaXplOkQsc2l6ZTptfX1zdGF0aWMgcGFyc2UoZSx0KXtsZXRbcixzXT12KGUsdCksbz1uLmRlY29kZShzKTtyZXR1cm4gby5fYmFzZUNhY2hlLnNldChyLGUpLG99fSx2PShuLGUpPT57c3dpdGNoKG5bMF0pe2Nhc2UiUSI6e2xldCB0PWV8fGk7cmV0dXJuW2kucHJlZml4LHQuZGVjb2RlKGAke2kucHJlZml4fSR7bn1gKV19Y2FzZSBpLnByZWZpeDp7bGV0IHQ9ZXx8aTtyZXR1cm5baS5wcmVmaXgsdC5kZWNvZGUobildfWNhc2UgZi5wcmVmaXg6e2xldCB0PWV8fGY7cmV0dXJuW2YucHJlZml4LHQuZGVjb2RlKG4pXX1kZWZhdWx0OntpZihlPT1udWxsKXRocm93IEVycm9yKCJUbyBwYXJzZSBub24gYmFzZTMyIG9yIGJhc2U1OGJ0YyBlbmNvZGVkIENJRCBtdWx0aWJhc2UgZGVjb2RlciBtdXN0IGJlIHByb3ZpZGVkIik7cmV0dXJuW25bMF0sZS5kZWNvZGUobildfX19LEU9KG4sZSx0KT0+e2xldHtwcmVmaXg6cn09dDtpZihyIT09aS5wcmVmaXgpdGhyb3cgRXJyb3IoYENhbm5vdCBzdHJpbmcgZW5jb2RlIFYwIGluICR7dC5uYW1lfSBlbmNvZGluZ2ApO2xldCBzPWUuZ2V0KHIpO2lmKHM9PW51bGwpe2xldCBvPXQuZW5jb2RlKG4pLnNsaWNlKDEpO3JldHVybiBlLnNldChyLG8pLG99ZWxzZSByZXR1cm4gc30seD0obixlLHQpPT57bGV0e3ByZWZpeDpyfT10LHM9ZS5nZXQocik7aWYocz09bnVsbCl7bGV0IG89dC5lbmNvZGUobik7cmV0dXJuIGUuc2V0KHIsbyksb31lbHNlIHJldHVybiBzfSxkPTExMix6PTE4LGI9KG4sZSx0KT0+e2xldCByPWMuZW5jb2RpbmdMZW5ndGgobikscz1yK2MuZW5jb2RpbmdMZW5ndGgoZSksbz1uZXcgVWludDhBcnJheShzK3QuYnl0ZUxlbmd0aCk7cmV0dXJuIGMuZW5jb2RlVG8obixvLDApLGMuZW5jb2RlVG8oZSxvLHIpLG8uc2V0KHQscyksb30sQz1TeW1ib2wuZm9yKCJAaXBsZC9qcy1jaWQvQ0lEIiksbD17d3JpdGFibGU6ITEsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITB9LHU9e3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExfSxWPSIwLjAuMC1kZXYiLE89KG4sZSk9PntpZihuLnRlc3QoVikpY29uc29sZS53YXJuKGUpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGUpfSxCPWBDSUQuaXNDSUQodikgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuCkZvbGxvd2luZyBjb2RlIHBhdHRlcm46CgppZiAoQ0lELmlzQ0lEKHZhbHVlKSkgewogIGRvU29tZXRoaW5nV2l0aENJRCh2YWx1ZSkKfQoKSXMgcmVwbGFjZWQgd2l0aDoKCmNvbnN0IGNpZCA9IENJRC5hc0NJRCh2YWx1ZSkKaWYgKGNpZCkgewogIC8vIE1ha2Ugc3VyZSB0byB1c2UgY2lkIGluc3RlYWQgb2YgdmFsdWUKICBkb1NvbWV0aGluZ1dpdGhDSUQoY2lkKQp9CmA7ZXhwb3J0e3cgYXMgQ0lEfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2lkLm1qcy5tYXA="}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@%5E1.0.8?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.545Z","timestamp":1785138633545,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-utils@%5E1.0.8?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-provider@1.0.14/es2022/jsonrpc-provider.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/jsonrpc-utils@1.0.8/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcbabd5569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":259,"size_decoded":718,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d827a1963182d8b91406a0d0e3f597de","sha1":"902f425613826b9cc4711650ef9b6997fd223266","sha256":"31eae021700841d185af1d679fbe35f816d1c0f42700ed36c086b02350e7e149","sha512":"182a8f89352a0d2ac337cd99923f8a21f2996b1f2f5365ee75fc919ca80ebc4a1d96dc8b5f08fb5e02c0648efc093cc3072e6800fa1df0a2b5fe86908e840252","ssdeep":"","tlshash":"2ad0679a85239f1a932b16947b8e577c55a31e98e643417c5ae8d228d0212d8d6902e2","first_seen":"2025-07-08T23:56:54.585735Z","last_seen":"2026-08-08T17:15:51.351783Z","times_seen":125,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOCAqLwppbXBvcnQgIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXR5cGVzQF4xLjAuMz90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOC9lczIwMjIvZGlzdC9lc20vZW52Lm1qcyI7CmV4cG9ydCAqIGZyb20gIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXV0aWxzQDEuMC44L2VzMjAyMi9qc29ucnBjLXV0aWxzLm1qcyI7Cg=="}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/split-on-first@%5E1.0.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.684Z","timestamp":1785138633684,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /split-on-first@%5E1.0.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/query-string@7.1.3/es2022/query-string.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /split-on-first@1.1.0/es2022/split-on-first.mjs\r\nx-typescript-types: https://esm.sh/split-on-first@1.1.0/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc8bf9569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":176,"size_decoded":637,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"9a8f831e7586171333c6c9f6d340ef89","sha1":"9d0d32ee907f4e1cc041df08411c6a0b3d4e58d4","sha256":"00c307aa5402f3aea6eea1d9ca73650298ba4516a78daab851583a9a89f1ee4e","sha512":"290fa8ce8233d796c012d9efa62b6f42a9476cf99abd8dbaa332dd721c63312d37cedd74bba84536a40393cc08da33e8eee19d45e53faa1bcaba56886f0d76e3","ssdeep":"","tlshash":"2bc08cc801c611d80b30c8c3af2680b243d2cec69ecb908dea0d5b0250ca0009a60cf7","first_seen":"2025-07-08T23:56:54.610336Z","last_seen":"2026-07-27T07:51:47.217246Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gc3BsaXQtb24tZmlyc3RAMS4xLjAgKi8KZXhwb3J0ICogZnJvbSAiL3NwbGl0LW9uLWZpcnN0QDEuMS4wL2VzMjAyMi9zcGxpdC1vbi1maXJzdC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL3NwbGl0LW9uLWZpcnN0QDEuMS4wL2VzMjAyMi9zcGxpdC1vbi1maXJzdC5tanMiOwo="}},"time_used":292,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":292,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bytes@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.696Z","timestamp":1785138633696,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/bytes@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/bytes@5.8.0/es2022/bytes.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/bytes@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc9c00569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":158,"size_decoded":664,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"063c6f7dad93a8f2b4f3cade7d442e55","sha1":"ec3c094520ac58880fb868ef32b961d185471b9d","sha256":"11b190062f04ee619544980e6fd197df0d5cecd990069b1ff0a25422a9e2a09f","sha512":"24de4b3691d8c72b06205d561ccbe9cf606f1ddd95f2d6138ddd65fd95cda7376602f3d0401f876a1d3feb23d70573467964d08f98d13cc313313029c70cb345","ssdeep":"","tlshash":"a8c01213822e82cc629e0fac0128aa2cb276c0988088a0ab54288a22c1c211daa304f6","first_seen":"2025-07-08T23:56:54.718681Z","last_seen":"2026-07-27T07:51:47.168239Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYnl0ZXNANS44LjAgKi8KaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQDUuOC4wL2VzMjAyMi9ieXRlcy5tanMiOwo="}},"time_used":108,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":108,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/to-string.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.739Z","timestamp":1785138633739,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/to-string.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dccdc14569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":459,"size_decoded":685,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (321)","md5":"5a2a54b54b938872f40a1c7788111734","sha1":"a47c1e123f4feb8ba60936199cbd293bebb08780","sha256":"b7be4c88190c06d173962f2708a9b167510054e3bc631d886a73d88c108e4242","sha512":"db3fc51a062d5b026fa023b3da60e90d7d9001939f465393034bc7dece64fda77f924371832d8b26f82f18731d1b201cb6af977c0eea7a1e2f6de5c57bdef817","ssdeep":"","tlshash":"0cf0dc83de7020e30be328a500dbacdf42e43689e9e085d5cc49072938d40f5d433870","first_seen":"2025-07-08T23:56:54.784823Z","last_seen":"2026-07-27T07:51:47.192119Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvdG8tc3RyaW5nICovCmltcG9ydCB7IEJ1ZmZlciBhcyBfX0J1ZmZlciQgfSBmcm9tICIvbm9kZS9idWZmZXIubWpzIjsKaW1wb3J0IHIgZnJvbSIuL2VzbS9zcmMvdXRpbC9iYXNlcy5tanMiO2Z1bmN0aW9uIHUodCxmPSJ1dGY4Iil7bGV0IGU9cltmXTtpZighZSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGVuY29kaW5nICIke2Z9ImApO3JldHVybihmPT09InV0ZjgifHxmPT09InV0Zi04IikmJl9fQnVmZmVyJCE9bnVsbCYmX19CdWZmZXIkLmZyb20hPW51bGw/X19CdWZmZXIkLmZyb20odC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCkudG9TdHJpbmcoInV0ZjgiKTplLmVuY29kZXIuZW5jb2RlKHQpLnN1YnN0cmluZygxKX1leHBvcnR7dSBhcyB0b1N0cmluZ307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXRvLXN0cmluZy5tanMubWFw"}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/int@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.969Z","timestamp":1785138633969,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/int@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/binary@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/int@1.0.1/es2022/int.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/int@1.0.1/lib/int.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce5c4e569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":154,"size_decoded":628,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"b3684c3c97cbf4304a8bbb72ef7a2178","sha1":"7ac96554f380c779a225eb4e16d9b2dd58379f47","sha256":"f272e35a59b31bd9f8faf60ccbb87adbd99cad6cdbc7dd287837b29cfd9329b2","sha512":"c1732739ffd92907825def1e1af3f7ea10e512cdc04e6d22b9de7ad3639f0855cc47c231c309bb64f176088fe9b9465a18c89a6819e2c31270548f3c3180f902","ssdeep":"","tlshash":"fac08c0003cf9ab82330eed09176f222c3610ac4d0f108bc03258a0090968c191797ee","first_seen":"2025-07-08T23:56:54.578724Z","last_seen":"2026-07-27T07:51:47.244128Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9pbnRAMS4wLjEgKi8KZXhwb3J0ICogZnJvbSAiL0BzdGFibGVsaWIvaW50QDEuMC4xL2VzMjAyMi9pbnQubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9Ac3RhYmxlbGliL2ludEAxLjAuMS9lczIwMjIvaW50Lm1qcyI7Cg=="}},"time_used":124,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":124,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/brorand@1.1.0/es2022/brorand.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.068Z","timestamp":1785138634068,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /brorand@1.1.0/es2022/brorand.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/brorand@%5E1.1.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:10:26 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16517\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dceec6d569f-OSL\r\ncontent-length: 931\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1744,"size_decoded":1383,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1678)","md5":"0ecc8f7523766bf758e78130ad8652c5","sha1":"91d9094fd152ba9dbba4a9eba57c65e32f2021d4","sha256":"c98cfda785c9b9055713c838c50b9e3fad4e4c32efa886cd4f479d8960955ce2","sha512":"edb949c8d361fd8243eb06c0819e679e6ebb3859c7be57e194500894d41692262a9024d2a325c3dbd722137a0ac1f846bfe1fe6e8af9cc3d02b71caf0a3de98f","ssdeep":"","tlshash":"a93100113ae4f6a202a74ca850bf930af3374939509dda24f384e8b668f451b4413fb6","first_seen":"2026-01-25T00:27:36.681216Z","last_seen":"2026-07-27T07:51:47.223487Z","times_seen":19,"resource_available":true,"data":"LyogZXNtLnNoIC0gYnJvcmFuZEAxLjEuMCAqLwp2YXIgbT1PYmplY3QuY3JlYXRlO3ZhciBzPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciB3PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBfPU9iamVjdC5nZXRQcm90b3R5cGVPZixoPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFI9KGUscik9PigpPT4oZSYmKHI9ZShlPTApKSxyKTt2YXIgdj0oZSxyKT0+KCk9PihyfHxlKChyPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxyKSxyLmV4cG9ydHMpLHg9KGUscik9Pntmb3IodmFyIHQgaW4gcilzKGUsdCx7Z2V0OnJbdF0sZW51bWVyYWJsZTohMH0pfSx1PShlLHIsdCxvKT0+e2lmKHImJnR5cGVvZiByPT0ib2JqZWN0Inx8dHlwZW9mIHI9PSJmdW5jdGlvbiIpZm9yKGxldCBhIG9mIHcocikpIWguY2FsbChlLGEpJiZhIT09dCYmcyhlLGEse2dldDooKT0+clthXSxlbnVtZXJhYmxlOiEobz1nKHIsYSkpfHxvLmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIEI9KGUscix0KT0+KHQ9ZSE9bnVsbD9tKF8oZSkpOnt9LHUocnx8IWV8fCFlLl9fZXNNb2R1bGU/cyh0LCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6dCxlKSksaj1lPT51KHMoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUpO3ZhciB5PXt9O3goeSx7ZGVmYXVsdDooKT0+Vn0pO3ZhciBWLGw9UigoKT0+e1Y9e319KTt2YXIgYz12KChDLGkpPT57dmFyIGQ7aS5leHBvcnRzPWZ1bmN0aW9uKHIpe3JldHVybiBkfHwoZD1uZXcgbihudWxsKSksZC5nZW5lcmF0ZShyKX07ZnVuY3Rpb24gbihlKXt0aGlzLnJhbmQ9ZX1pLmV4cG9ydHMuUmFuZD1uO24ucHJvdG90eXBlLmdlbmVyYXRlPWZ1bmN0aW9uKHIpe3JldHVybiB0aGlzLl9yYW5kKHIpfTtuLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihyKXtpZih0aGlzLnJhbmQuZ2V0Qnl0ZXMpcmV0dXJuIHRoaXMucmFuZC5nZXRCeXRlcyhyKTtmb3IodmFyIHQ9bmV3IFVpbnQ4QXJyYXkociksbz0wO288dC5sZW5ndGg7bysrKXRbb109dGhpcy5yYW5kLmdldEJ5dGUoKTtyZXR1cm4gdH07aWYodHlwZW9mIHNlbGY9PSJvYmplY3QiKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/bi5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24ocil7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkocik7cmV0dXJuIHNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KSx0fTpzZWxmLm1zQ3J5cHRvJiZzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz9uLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihyKXt2YXIgdD1uZXcgVWludDhBcnJheShyKTtyZXR1cm4gc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXModCksdH06dHlwZW9mIHdpbmRvdz09Im9iamVjdCImJihuLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIHlldCIpfSk7ZWxzZSB0cnl7aWYocD0obCgpLGooeSkpLHR5cGVvZiBwLnJhbmRvbUJ5dGVzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCIpO24ucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKHIpe3JldHVybiBwLnJhbmRvbUJ5dGVzKHIpfX1jYXRjaHt9dmFyIHB9KTt2YXIgZj1CKGMoKSkse1JhbmQ6VX09ZixiPWYuZGVmYXVsdD8/ZjtleHBvcnR7VSBhcyBSYW5kLGIgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJyb3JhbmQubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/identity.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.214Z","timestamp":1785138634214,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/identity.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc86569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":291,"size_decoded":584,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"1d1628c7d448ac69092f982b1fb57866","sha1":"c0b18d8afccf4554644e60cbb75c87ef45ac04f1","sha256":"28acc5f7d4dfe7d5647e1c8d250540a50ba6397ff4f375bc41dc37fc5d5de510","sha512":"3ccf6bfe2ad3981ef9109319b36b15751716d329781890068f1ce7f8e0b2cef828219dfa536b7a329440d45e99455011dc9be39708e7536cad932a9fb50188b9","ssdeep":"","tlshash":"1ed02bdb56fd2ef4163b484ce2410428f234968de76041f0c51a551771500f8557bf75","first_seen":"2025-07-08T23:56:54.710529Z","last_seen":"2026-08-08T17:15:52.014023Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2lkZW50aXR5ICovCmltcG9ydHtmcm9tIGFzIHR9ZnJvbSIuLi9lc20vc3JjL2Jhc2VzL2Jhc2UubWpzIjtpbXBvcnR7ZnJvbVN0cmluZyBhcyByLHRvU3RyaW5nIGFzIGV9ZnJvbSIuLi9lc20vc3JjL2J5dGVzLm1qcyI7dmFyIG49dCh7cHJlZml4OiJcMCIsbmFtZToiaWRlbnRpdHkiLGVuY29kZTpvPT5lKG8pLGRlY29kZTpvPT5yKG8pfSk7ZXhwb3J0e24gYXMgaWRlbnRpdHl9OwovLyMgc291cmNlTWFwcGluZ1VSTD1pZGVudGl0eS5tanMubWFw"}},"time_used":14,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/destr@2.0.5/es2022/destr.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.268Z","timestamp":1785138634268,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /destr@2.0.5/es2022/destr.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/destr@%5E2.0.5?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dd03c94569f-OSL\r\ncontent-length: 853\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1379,"size_decoded":1305,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1317)","md5":"ca072121ccaca3dd430215c4d624e016","sha1":"6ec0d01afcf9a620b1d2732a98914741e028ebdd","sha256":"228e13dbaf710326ff1fd6169ac9703becd7857fac1be1ddb92c1c07e0246c25","sha512":"c89e79c2f53f77b2ede2dea52ca6978c1feebc7513334082157d67fd4d2e8d62310fd51cec34f78f867b02273a09f85ca992580e438010017b5f43afcb8ae323","ssdeep":"","tlshash":"9321df7775ebe55e03ee149489352c51f57c4860ec0e28a4f0d8d066e4b6840dab3fc4","first_seen":"2025-07-08T23:56:54.719803Z","last_seen":"2026-08-08T17:15:51.485216Z","times_seen":121,"resource_available":true,"data":"LyogZXNtLnNoIC0gZGVzdHJAMi4wLjUgKi8KdmFyIHM9LyIoPzpffFxcdTB7Mn01W0ZmXSl7Mn0oPzpwfFxcdTB7Mn03MCkoPzpyfFxcdTB7Mn03MikoPzpvfFxcdTB7Mn02W0ZmXSkoPzp0fFxcdTB7Mn03NCkoPzpvfFxcdTB7Mn02W0ZmXSkoPzpffFxcdTB7Mn01W0ZmXSl7Mn0iXHMqOi8sbz0vIig/OmN8XFx1MDA2MykoPzpvfFxcdTAwNltGZl0pKD86bnxcXHUwMDZbRWVdKSg/OnN8XFx1MDA3MykoPzp0fFxcdTAwNzQpKD86cnxcXHUwMDcyKSg/OnV8XFx1MDA3NSkoPzpjfFxcdTAwNjMpKD86dHxcXHUwMDc0KSg/Om98XFx1MDA2W0ZmXSkoPzpyfFxcdTAwNzIpIlxzKjovLHU9L15ccypbIlt7XXxeXHMqLT9cZHsxLDE2fShcLlxkezEsMTd9KT8oW0VlXVsrLV0/XGQrKT9ccyokLztmdW5jdGlvbiBpKHIsdCl7aWYocj09PSJfX3Byb3RvX18ifHxyPT09ImNvbnN0cnVjdG9yIiYmdCYmdHlwZW9mIHQ9PSJvYmplY3QiJiYicHJvdG90eXBlImluIHQpe2Mocik7cmV0dXJufXJldHVybiB0fWZ1bmN0aW9uIGMocil7Y29uc29sZS53YXJuKGBbZGVzdHJdIERyb3BwaW5nICIke3J9IiBrZXkgdG8gcHJldmVudCBwcm90b3R5cGUgcG9sbHV0aW9uLmApfWZ1bmN0aW9uIGYocix0PXt9KXtpZih0eXBlb2YgciE9InN0cmluZyIpcmV0dXJuIHI7aWYoclswXT09PSciJyYmcltyLmxlbmd0aC0xXT09PSciJyYmci5pbmRleE9mKCJcXCIpPT09LTEpcmV0dXJuIHIuc2xpY2UoMSwtMSk7bGV0IG49ci50cmltKCk7aWYobi5sZW5ndGg8PTkpc3dpdGNoKG4udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cnVlIjpyZXR1cm4hMDtjYXNlImZhbHNlIjpyZXR1cm4hMTtjYXNlInVuZGVmaW5lZCI6cmV0dXJuO2Nhc2UibnVsbCI6cmV0dXJuIG51bGw7Y2FzZSJuYW4iOnJldHVybiBOdW1iZXIuTmFOO2Nhc2UiaW5maW5pdHkiOnJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7Y2FzZSItaW5maW5pdHkiOnJldHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFl9aWYoIXUudGVzdChyKSl7aWYodC5zdHJpY3QpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJbZGVzdHJdIEludmFsaWQgSlNPTiIpO3JldHVybiByfXRyeXtpZihzLnRlc3Qocil8fG8udGVzdChyKSl7aWYodC5zdHJpY3QpdGhyb3cgbmV3IEVycm9yKCJbZGVzdHJdIFBvc3NpYmxlIHByb3RvdHlwZSBwb2xsdXRpb24iKTtyZXR1cm4gSlNPTi5wYXJzZShyLGkpfXJldHVybiBKU09OLnBhcnNlKHIpfWNhdGNoKGUpe2lmKHQuc3RyaWN0KXRocm93IGU7cmV0dXJuIHJ9fWZ1bmN0aW9uIHAocix0PXt9KXtyZXR1cm4gZihyLHsuLi50LHN0cmljdDohMH0pfWV4cG9ydHtmIGFzIGRlZmF1bHQsZiBhcyBkZXN0cixwIGFzIHNhZmVEZXN0cn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlc3RyLm1qcy5tYXA="}},"time_used":14,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":14,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/quick-format-unescaped@%5E4.0.3?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.667Z","timestamp":1785138633667,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /quick-format-unescaped@%5E4.0.3?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/pino@7.11.0/es2022/pino.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /quick-format-unescaped@4.0.4/es2022/quick-format-unescaped.mjs\r\nx-typescript-types: https://esm.sh/@types/quick-format-unescaped@~4.0.3/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc6bf4569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":216,"size_decoded":676,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"2ec72ca1b032faf2147cdbfe5dc6f4fe","sha1":"74a442d912145f97cb5ebd2e6d7be8ef718aaa9d","sha256":"6233cb3367153cb82fd82a46512475b67aa3ca044340dc20809d0c9f67a35a4b","sha512":"5a9b06b29c2fc02f9180019e8bc9a668173bde9e44a6c15414ee65f1dfb060c1c3a1576f93b79c325db5acfdd6de5a1054df59a3f262be4bcec98805cd8dafcd","ssdeep":"","tlshash":"7fd0c9a2b823083c27a504c0459f50377fd98b08e1754a8ae0fc2b24568883268bd3d5","first_seen":"2025-07-08T23:56:54.842181Z","last_seen":"2026-07-27T07:51:47.262078Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gcXVpY2stZm9ybWF0LXVuZXNjYXBlZEA0LjAuNCAqLwpleHBvcnQgKiBmcm9tICIvcXVpY2stZm9ybWF0LXVuZXNjYXBlZEA0LjAuNC9lczIwMjIvcXVpY2stZm9ybWF0LXVuZXNjYXBlZC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL3F1aWNrLWZvcm1hdC11bmVzY2FwZWRANC4wLjQvZXMyMDIyL3F1aWNrLWZvcm1hdC11bmVzY2FwZWQubWpzIjsK"}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/bn.js@4.12.5/es2022/bn.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.035Z","timestamp":1785138634035,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /bn.js@4.12.5/es2022/bn.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/bn.js@%5E4.11.9?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 09 Jul 2026 04:36:42 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-cache-status: HIT\r\nage: 16517\r\ncf-ray: a21a0dcebc62569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":44414,"size_decoded":15326,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (44354)","md5":"5d512b4713757cfedc948be0dfe2bfbc","sha1":"a65c5f84588d7678f0c091b6fec5dcef992e8d40","sha256":"13a019eb5e5c752604a16802b35795b50646fa22d5387d729235e9d161cc49ed","sha512":"9e6e01cd6b5fb0c43b743b0b277b1d5b0157f9f6e8453c6725e33f1f30e9417aa1b79c473797a81ba81c025a3d1cdc97cb633bdd5c08aa6a222f3e4b29d61e7a","ssdeep":"768:hPpMS1EjEr7qyEApRp2RB2JYpgmUSGrbrAjbAKmBI:dpMSb7quPYpgmUSGEj/","tlshash":"1e130150e37971038bad3e941a1b909de279fa6d1847543cb178c0f6bcaa940ae3df35","first_seen":"2026-07-27T04:58:21.486821Z","last_seen":"2026-07-27T07:51:47.24232Z","times_seen":3,"resource_available":true,"data":"LyogZXNtLnNoIC0gYm4uanNANC4xMi41ICovCnZhciBNaT1PYmplY3QuY3JlYXRlO3ZhciB1dD1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGdpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGNpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciB3aT1PYmplY3QuZ2V0UHJvdG90eXBlT2YseWk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgeGk9KHgsYix2KT0+KCk9PntpZih2KXRocm93IHZbMF07dHJ5e3JldHVybiB4JiYoYj14KHg9MCkpLGJ9Y2F0Y2goZnQpe3Rocm93IHY9W2Z0XSxmdH19O3ZhciBiaT0oeCxiKT0+KCk9Pnt0cnl7cmV0dXJuIGJ8fHgoKGI9e2V4cG9ydHM6e319KS5leHBvcnRzLGIpLGIuZXhwb3J0c31jYXRjaCh2KXt0aHJvdyBiPTAsdn19LF9pPSh4LGIpPT57Zm9yKHZhciB2IGluIGIpdXQoeCx2LHtnZXQ6Ylt2XSxlbnVtZXJhYmxlOiEwfSl9LHNpPSh4LGIsdixmdCk9PntpZihiJiZ0eXBlb2YgYj09Im9iamVjdCJ8fHR5cGVvZiBiPT0iZnVuY3Rpb24iKWZvcihsZXQgbCBvZiBjaShiKSkheWkuY2FsbCh4LGwpJiZsIT09diYmdXQoeCxsLHtnZXQ6KCk9PmJbbF0sZW51bWVyYWJsZTohKGZ0PWdpKGIsbCkpfHxmdC5lbnVtZXJhYmxlfSk7cmV0dXJuIHh9O3ZhciBBaT0oeCxiLHYpPT4odj14IT1udWxsP01pKHdpKHgpKTp7fSxzaShifHwheHx8IXguX19lc01vZHVsZT91dCh2LCJkZWZhdWx0Iix7dmFsdWU6eCxlbnVtZXJhYmxlOiEwfSk6dix4KSksQmk9eD0+c2kodXQoe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHgpO3ZhciBvaT17fTtfaShvaSx7ZGVmYXVsdDooKT0+U2l9KTt2YXIgU2ksYWk9eGkoKCk9PntTaT17fX0pO3ZhciB1aT1iaSgobGksSXQpPT57KGZ1bmN0aW9uKHgsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHYobyx0KXtpZighbyl0aHJvdyBuZXcgRXJyb3IodHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBmdChvLHQpe28uc3VwZXJfPXQ7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPXQucHJvdG90eXBlLG8ucHJvdG90eXBlPW5ldyByLG8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW99ZnVuY3Rpb24gbChvLHQscil7aWYobC5pc0JOKG8pKXJldHVybiBvO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG8hPT1udWxsJiYoKHQ9PT0ibGUifHx0PT09ImJlIikmJihyPXQsdD0xMCksdGhpcy5faW5pdChvfHwwLHR8fDEwLHJ8fCJiZSIpKX10eXBlb2YgeD09Im9iamVjdCI/eC5leHBvcnRzPWw6Yi5CTj1sLGwuQk49bCxsLndvcmRTaXplPTI2O3ZhciBhdDt0cnl7dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuQnVmZmVyPCJ1Ij9hdD13aW5kb3cuQnVmZmVyOmF0PShhaSgpLEJpKG9pKSkuQnVmZmVyfWNhdGNoe31sLmlzQk49ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBsPyEwOnQhPT1udWxsJiZ0eXBlb2YgdD09Im9iamVjdCImJnQuY29uc3RydWN0b3Iud29yZFNpemU9PT1sLndvcmRTaXplJiZBcnJheS5pc0FycmF5KHQud29yZHMpfSxsLm1heD1mdW5jdGlvbih0LHIpe3JldHVybiB0LmNtcChyKT4wP3Q6cn0sbC5taW49ZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5jbXAocik8MD90OnJ9LGwucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQscixlKXtpZih0eXBlb2YgdD09Im51bWJlciIpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIodCxyLGUpO2lmKHR5cGVvZiB0PT0ib2JqZWN0IilyZXR1cm4gdGhpcy5faW5pdEFycmF5KHQscixlKTtyPT09ImhleCImJihyPTE2KSx2KHI9PT0ocnwwKSYmcj49MiYmcjw9MzYpLHQ9dC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKTt2YXIgaD0wO3RbMF09PT0iLSImJihoKyssdGhpcy5uZWdhdGl2ZT0xKSxoPHQubGVuZ3RoJiYocj09PTE2P3RoaXMuX3BhcnNlSGV4KHQsaCxlKToodGhpcy5fcGFyc2VCYXNlKHQscixoKSxlPT09ImxlIiYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHIsZSkpKX0sbC5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24odCxyLGUpe3Q8MCYmKHRoaXMubmVnYXRpdmU9MSx0PS10KSx0PDY3MTA4ODY0Pyh0aGlzLndvcmRzPVt0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0xKTp0PDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9W3QmNjcxMDg4NjMsdC82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KHYodDw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVt0JjY3MTA4ODYzLHQvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksZT09PSJsZSImJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxyLGUpfSxsLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKHQscixlKXtpZih2KHR5cGVvZiB0Lmxlbmd0aD09Im51bWJlciIpLHQubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKHQubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIGg9MDtoPHRoaXMubGVuZ3RoO2grKyl0aGlzLndvcmRzW2hdPTA7dmFyIHMsYSx1PTA7aWYoZT09PSJiZSIpZm9yKGg9dC5sZW5ndGgtMSxzPTA7aD49MDtoLT0zKWE9dFtoXXx0W2gtMV08PDh8dFtoLTJdPDwxNix0aGlzLndvcmRzW3NdfD1hPDx1JjY3MTA4ODYzLHRoaXMud29yZHNbcysxXT1hPj4+MjYtdSY2NzEwODg2Myx1Kz0yNCx1Pj0yNiYmKHUtPTI2LHMrKyk7ZWxzZSBpZihlPT09ImxlIilmb3IoaD0wLHM9MDtoPHQubGVuZ3RoO2grPTMpYT10W2hdfHRbaCsxXTw8OHx0W2grMl08PDE2LHRoaXMud29yZHNbc118PWE8PHUmNjcxMDg4NjMsdGhpcy53b3Jkc1tzKzFdPWE+Pj4yNi11JjY3MTA4ODYzLHUrPTI0LHU+PTI2JiYodS09MjYscysrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfTtmdW5jdGlvbiBOdChvLHQpe3ZhciByPW8uY2hhckNvZGVBdCh0KTtyZXR1cm4gcj49NjUmJnI8PTcwP3ItNTU6cj49OTcmJnI8PTEwMj9yLTg3OnItNDgmMTV9ZnVuY3Rpb24gRXQobyx0LHIpe3ZhciBlPU50KG8scik7cmV0dXJuIHItMT49dCYmKGV8PU50KG8sci0xKTw8NCksZX1sLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24odCxyLGUpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgodC5sZW5ndGgtcikvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgaD0wO2g8dGhpcy5sZW5ndGg7aCsrKXRoaXMud29yZHNbaF09MDt2YXIgcz0wLGE9MCx1O2lmKGU9PT0iYmUiKWZvcihoPXQubGVuZ3RoLTE7aD49cjtoLT0yKXU9RXQodCxyLGgpPDxzLHRoaXMud29yZHNbYV18PXUmNjcxMDg4NjMscz49MTg/KHMtPTE4LGErPTEsdGhpcy53b3Jkc1thXXw9dT4+PjI2KTpzKz04O2Vsc2V7dmFyIGY9dC5sZW5ndGgtcjtmb3IoaD1mJTI9PT0wP3IrMTpyO2g8dC5sZW5ndGg7aCs9Mil1PUV0KHQscixoKTw8cyx0aGlzLndvcmRzW2FdfD11JjY3MTA4ODYzLHM+PTE4PyhzLT0xOCxhKz0xLHRoaXMud29yZHNbYV18PXU+Pj4yNik6cys9OH10aGlzLnN0cmlwKCl9O2Z1bmN0aW9uIE90KG8sdCxyLGUpe2Zvcih2YXIgaD0wLHM9TWF0aC5taW4oby5sZW5ndGgsciksYT10O2E8czthKyspe3ZhciB1PW8uY2hhckNvZGVBdChhKS00ODtoKj1lLHU+PTQ5P2grPXUtNDkrMTA6dT49MTc/aCs9dS0xNysxMDpoKz11fXJldHVybiBofWwucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24odCxyLGUpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBoPTAscz0xO3M8PTY3MTA4ODYzO3MqPXIpaCsrO2gtLSxzPXMvcnwwO2Zvcih2YXIgYT10Lmxlbmd0aC1lLHU9YSVoLGY9TWF0aC5taW4oYSxhLXUpK2UsaT0wLG49ZTtuPGY7bis9aClpPU90KHQsbixuK2gsciksdGhpcy5pbXVsbihzKSx0aGlzLndvcmRzWzBdK2k8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9aTp0aGlzLl9pYWRkbihpKTtpZih1IT09MCl7dmFyIGQ9MTtmb3IoaT1PdCh0LG4sdC5sZW5ndGgsciksbj0wO248dTtuKyspZCo9cjt0aGlzLmltdWxuKGQpLHRoaXMud29yZHNbMF0raTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1pOnRoaXMuX2lhZGRuKGkpfXRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdC53b3Jkc1tyXT10aGlzLndvcmRzW3JdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx0LnJlZD10aGlzLnJlZH0sbC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbChudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHQpLHR9LGwucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LGwucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiZ0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdPT09MDspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sbC5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoPT09MSYmdGhpcy53b3Jkc1swXT09PTAmJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LGwucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIEt0PVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLHZpPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGRpPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2wucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQscil7dD10fHwxMCxyPXJ8MHx8MTt2YXIgZTtpZih0PT09MTZ8fHQ9PT0iaGV4Iil7ZT0iIjtmb3IodmFyIGg9MCxzPTAsYT0wO2E8dGhpcy5sZW5ndGg7YSsrKXt2YXIgdT10aGlzLndvcmRzW2FdLGY9KCh1PDxofHMpJjE2Nzc3MjE1KS50b1N0cmluZygxNik7cz11Pj4+MjQtaCYxNjc3NzIxNSxoKz0yLGg+PTI2JiYoaC09MjYsYS0tKSxzIT09MHx8YSE9PXRoaXMubGVuZ3RoLTE/ZT1LdFs2LWYubGVuZ3RoXStmK2U6ZT1mK2V9Zm9yKHMhPT0wJiYoZT1zLnRvU3RyaW5nKDE2KStlKTtlLmxlbmd0aCVyIT09MDspZT0iMCIrZTtyZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTAmJihlPSItIitlKSxlfWlmKHQ9PT0odHwwKSYmdD49MiYmdDw9MzYpe3ZhciBpPXZpW3RdLG49ZGlbdF07ZT0iIjt2YXIgZD10aGlzLmNsb25lKCk7Zm9yKGQubmVnYXRpdmU9MDshZC5pc1plcm8oKTspe3ZhciBtPWQubW9kbihuKS50b1N0cmluZyh0KTtkPWQuaWRpdm4obiksZC5pc1plcm8oKT9lPW0rZTplPUt0W2ktbS5sZW5ndGhdK20rZX1mb3IodGhpcy5pc1plcm8oKSYmKGU9IjAiK2UpO2UubGVuZ3RoJXIhPT0wOyllPSIwIitlO3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MCYmKGU9Ii0iK2UpLGV9dighMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxsLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMud29yZHNbMF07cmV0dXJuIHRoaXMubGVuZ3RoPT09Mj90Kz10aGlzLndvcmRzWzFdKjY3MTA4ODY0OnRoaXMubGVuZ3RoPT09MyYmdGhpcy53b3Jkc1syXT09PTE/dCs9NDUwMzU5OTYyNzM3MDQ5Nit0aGlzLndvcmRzWzFdKjY3MTA4ODY0OnRoaXMubGVuZ3RoPjImJnYoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLHRoaXMubmVnYXRpdmUhPT0wPy10OnR9LGwucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sbC5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdih0eXBlb2YgYXQ8InUiKSx0aGlzLnRvQXJyYXlMaWtlKGF0LHQscil9LGwucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSx0LHIpfSxsLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LHIsZSl7dmFyIGg9dGhpcy5ieXRlTGVuZ3RoKCkscz1lfHxNYXRoLm1heCgxLGgpO3YoaDw9cywiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLHYocz4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIGE9cj09PSJsZSIsdT1uZXcgdChzKSxmLGksbj10aGlzLmNsb25lKCk7aWYoYSl7Zm9yKGk9MDshbi5pc1plcm8oKTtpKyspZj1uLmFuZGxuKDI1NSksbi5pdXNocm4oOCksdVtpXT1mO2Zvcig7aTxzO2krKyl1W2ldPTB9ZWxzZXtmb3IoaT0wO2k8cy1oO2krKyl1W2ldPTA7Zm9yKGk9MDshbi5pc1plcm8oKTtpKyspZj1uLmFuZGxuKDI1NSksbi5pdXNocm4oOCksdVtzLWktMV09Zn1yZXR1cm4gdX0sTWF0aC5jbHozMj9sLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKHQpe3JldHVybiAzMi1NYXRoLmNsejMyKHQpfTpsLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKHQpe3ZhciByPXQsZT0wO3JldHVybiByPj00MDk2JiYoZSs9MTMscj4+Pj0xMykscj49NjQmJihlKz03LHI+Pj49Nykscj49OCYmKGUrPTQscj4+Pj00KSxyPj0yJiYoZSs9MixyPj4+PTIpLGUrcn0sbC5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKHQpe2lmKHQ9PT0wKXJldHVybiAyNjt2YXIgcj10LGU9MDtyZXR1cm4ociY4MTkxKT09PTAmJihlKz0xMyxyPj4+PTEzKSwociYxMjcpPT09MCYmKGUrPTcscj4+Pj03KSwociYxNSk9PT0wJiYoZSs9NCxyPj4+PTQpLChyJjMpPT09MCYmKGUrPTIscj4+Pj0yKSwociYxKT09PTAmJmUrKyxlfSxsLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdLHI9dGhpcy5fY291bnRCaXRzKHQpO3JldHVybih0aGlzLmxlbmd0aC0xKSoyNityfTtmdW5jdGlvbiBtaShvKXtmb3IodmFyIHQ9bmV3IEFycmF5KG8uYml0TGVuZ3RoKCkpLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGU9ci8yNnwwLGg9ciUyNjt0W3JdPShvLndvcmRzW2VdJjE8PGgpPj4+aH1yZXR1cm4gdH1sLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB0PTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3JdKTtpZih0Kz1lLGUhPT0yNilicmVha31yZXR1cm4gdH0sbC5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sbC5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MD90aGlzLmFicygpLmlub3RuKHQpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sbC5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGVzdG4odC0xKT90aGlzLm5vdG4odCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sbC5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZSE9PTB9LGwucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxsLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxsLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHQpe2Zvcig7dGhpcy5sZW5ndGg8dC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl18dC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxsLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24odCl7cmV0dXJuIHYoKHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSk9PT0wKSx0aGlzLml1b3IodCl9LGwucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHQpOnQuY2xvbmUoKS5pb3IodGhpcyl9LGwucHJvdG90eXBlLnVvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IodCk6dC5jbG9uZSgpLml1b3IodGhpcyl9LGwucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHQpe3ZhciByO3RoaXMubGVuZ3RoPnQubGVuZ3RoP3I9dDpyPXRoaXM7Zm9yKHZhciBlPTA7ZTxyLmxlbmd0aDtlKyspdGhpcy53b3Jkc1tlXT10aGlzLndvcmRzW2VdJnQud29yZHNbZV07cmV0dXJuIHRoaXMubGVuZ3RoPXIubGVuZ3RoLHRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdigodGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKT09PTApLHRoaXMuaXVhbmQodCl9LGwucHJvdG90eXBlLmFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQodCk6dC5jbG9uZSgpLmlhbmQodGhpcyl9LGwucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh0KTp0LmNsb25lKCkuaXVhbmQodGhpcyl9LGwucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHQpe3ZhciByLGU7dGhpcy5sZW5ndGg+dC5sZW5ndGg/KHI9dGhpcyxlPXQpOihyPXQsZT10aGlzKTtmb3IodmFyIGg9MDtoPGUubGVuZ3RoO2grKyl0aGlzLndvcmRzW2hdPXIud29yZHNbaF1eZS53b3Jkc1toXTtpZih0aGlzIT09cilmb3IoO2g8ci5sZW5ndGg7aCsrKXRoaXMud29yZHNbaF09ci53b3Jkc1toXTtyZXR1cm4gdGhpcy5sZW5ndGg9ci5sZW5ndGgsdGhpcy5zdHJpcCgpfSxsLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiB2KCh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpPT09MCksdGhpcy5pdXhvcih0KX0sbC5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0KTp0LmNsb25lKCkuaXhvcih0aGlzKX0sbC5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHQpOnQuY2xvbmUoKS5pdXhvcih0aGlzKX0sbC5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24odCl7dih0eXBlb2YgdD09Im51bWJlciImJnQ+PTApO3ZhciByPU1hdGguY2VpbCh0LzI2KXwwLGU9dCUyNjt0aGlzLl9leHBhbmQociksZT4wJiZyLS07Zm9yKHZhciBoPTA7aDxyO2grKyl0aGlzLndvcmRzW2hdPX50aGlzLndvcmRzW2hdJjY3MTA4ODYzO2ZvcihlPjAmJih0aGlzLndvcmRzW2hdPX50aGlzLndvcmRzW2hdJjY3MTA4ODYzPj4yNi1lLGgrKyk7aDx0aGlzLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT0wO3JldHVybiB0aGlzLnN0cmlwKCl9LGwucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sbC5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LHIpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgZT10LzI2fDAsaD10JTI2O3JldHVybiB0aGlzLl9leHBhbmQoZSsxKSxyP3RoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXXwxPDxoOnRoaXMud29yZHNbZV09dGhpcy53b3Jkc1tlXSZ+KDE8PGgpLHRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0KXt2YXIgcjtpZih0aGlzLm5lZ2F0aXZlIT09MCYmdC5uZWdhdGl2ZT09PTApcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxyPXRoaXMuaXN1Yih0KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYodGhpcy5uZWdhdGl2ZT09PTAmJnQubmVnYXRpdmUhPT0wKXJldHVybiB0Lm5lZ2F0aXZlPTAscj10aGlzLmlzdWIodCksdC5uZWdhdGl2ZT0xLHIuX25vcm1TaWduKCk7dmFyIGUsaDt0aGlzLmxlbmd0aD50Lmxlbmd0aD8oZT10aGlzLGg9dCk6KGU9dCxoPXRoaXMpO2Zvcih2YXIgcz0wLGE9MDthPGgubGVuZ3RoO2ErKylyPShlLndvcmRzW2FdfDApKyhoLndvcmRzW2FdfDApK3MsdGhpcy53b3Jkc1thXT1yJjY3MTA4ODYzLHM9cj4+PjI2O2Zvcig7cyE9PTAmJmE8ZS5sZW5ndGg7YSsrKXI9KGUud29yZHNbYV18MCkrcyx0aGlzLndvcmRzW2FdPXImNjcxMDg4NjMscz1yPj4+MjY7aWYodGhpcy5sZW5ndGg9ZS5sZW5ndGgscyE9PTApdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09cyx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoZSE9PXRoaXMpZm9yKDthPGUubGVuZ3RoO2ErKyl0aGlzLndvcmRzW2FdPWUud29yZHNbYV07cmV0dXJuIHRoaXN9LGwucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgcjtyZXR1cm4gdC5uZWdhdGl2ZSE9PTAmJnRoaXMubmVnYXRpdmU9PT0wPyh0Lm5lZ2F0aXZlPTAscj10aGlzLnN1Yih0KSx0Lm5lZ2F0aXZlXj0xLHIpOnQubmVnYXRpdmU9PT0wJiZ0aGlzLm5lZ2F0aXZlIT09MD8odGhpcy5uZWdhdGl2ZT0wLHI9dC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHIpOnRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHQpOnQuY2xvbmUoKS5pYWRkKHRoaXMpfSxsLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQpe2lmKHQubmVnYXRpdmUhPT0wKXt0Lm5lZ2F0aXZlPTA7dmFyIHI9dGhpcy5pYWRkKHQpO3JldHVybiB0Lm5lZ2F0aXZlPTEsci5fbm9ybVNpZ24oKX1lbHNlIGlmKHRoaXMubmVnYXRpdmUhPT0wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHQpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBlPXRoaXMuY21wKHQpO2lmKGU9PT0wKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpczt2YXIgaCxzO2U+MD8oaD10aGlzLHM9dCk6KGg9dCxzPXRoaXMpO2Zvcih2YXIgYT0wLHU9MDt1PHMubGVuZ3RoO3UrKylyPShoLndvcmRzW3VdfDApLShzLndvcmRzW3VdfDApK2EsYT1yPj4yNix0aGlzLndvcmRzW3VdPXImNjcxMDg4NjM7Zm9yKDthIT09MCYmdTxoLmxlbmd0aDt1Kyspcj0oaC53b3Jkc1t1XXwwKSthLGE9cj4+MjYsdGhpcy53b3Jkc1t1XT1yJjY3MTA4ODYzO2lmKGE9PT0wJiZ1PGgubGVuZ3RoJiZoIT09dGhpcylmb3IoO3U8aC5sZW5ndGg7dSsrKXRoaXMud29yZHNbdV09aC53b3Jkc1t1XTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsdSksaCE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih0KX07ZnVuY3Rpb24gRnQobyx0LHIpe3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5vLm5lZ2F0aXZlO3ZhciBlPW8ubGVuZ3RoK3QubGVuZ3RofDA7ci5sZW5ndGg9ZSxlPWUtMXwwO3ZhciBoPW8ud29yZHNbMF18MCxzPXQud29yZHNbMF18MCxhPWgqcyx1PWEmNjcxMDg4NjMsZj1hLzY3MTA4ODY0fDA7ci53b3Jkc1swXT11O2Zvcih2YXIgaT0xO2k8ZTtpKyspe2Zvcih2YXIgbj1mPj4+MjYsZD1mJjY3MTA4ODYzLG09TWF0aC5taW4oaSx0Lmxlbmd0aC0xKSxwPU1hdGgubWF4KDAsaS1vLmxlbmd0aCsxKTtwPD1tO3ArKyl7dmFyIE09aS1wfDA7aD1vLndvcmRzW01dfDAscz10LndvcmRzW3BdfDAsYT1oKnMrZCxuKz1hLzY3MTA4ODY0fDAsZD1hJjY3MTA4ODYzfXIud29yZHNbaV09ZHwwLGY9bnwwfXJldHVybiBmIT09MD9yLndvcmRzW2ldPWZ8MDpyLmxlbmd0aC0tLHIuc3RyaXAoKX12YXIgSHQ9ZnVuY3Rpb24odCxyLGUpe3ZhciBoPXQud29yZHMscz1yLndvcmRzLGE9ZS53b3Jkcyx1PTAsZixpLG4sZD1oWzBdfDAsbT1kJjgxOTEscD1kPj4+MTMsTT1oWzFdfDAsZz1NJjgxOTEsYz1NPj4+MTMsc3Q9aFsyXXwwLHc9c3QmODE5MSx5PXN0Pj4+MTMsSnQ9aFszXXwwLEE9SnQmODE5MSxCPUp0Pj4+MTMsVXQ9aFs0XXwwLFM9VXQmODE5MSxrPVV0Pj4+MTMsV3Q9aFs1XXwwLHE9V3QmODE5MSxSPVd0Pj4+MTMsR3Q9aFs2XXwwLFo9R3QmODE5MSxUPUd0Pj4+MTMsUXQ9aFs3XXwwLEw9UXQmODE5MSx6PVF0Pj4+MTMsVnQ9aFs4XXwwLEk9VnQmODE5MSxOPVZ0Pj4+MTMsWHQ9aFs5XXwwLEU9WHQmODE5MSxPPVh0Pj4+MTMsWXQ9c1swXXwwLEs9WXQmODE5MSxGPVl0Pj4+MTMsJHQ9c1sxXXwwLEg9JHQmODE5MSxQPSR0Pj4+MTMsanQ9c1syXXwwLEQ9anQmODE5MSxDPWp0Pj4+MTMsdGk9c1szXXwwLEo9dGkmODE5MSxVPXRpPj4+MTMsaWk9c1s0XXwwLFc9aWkmODE5MSxHPWlpPj4+MTMscmk9c1s1XXwwLFE9cmkmODE5MSxWPXJpPj4+MTMsZWk9c1s2XXwwLFg9ZWkmODE5MSxZPWVpPj4+MTMsaGk9c1s3XXwwLCQ9aGkmODE5MSxqPWhpPj4+MTMsZmk9c1s4XXwwLHR0PWZpJjgxOTEsaXQ9Zmk+Pj4xMyxuaT1zWzldfDAscnQ9bmkmODE5MSxldD1uaT4+PjEzO2UubmVnYXRpdmU9dC5uZWdhdGl2ZV5yLm5lZ2F0aXZlLGUubGVuZ3RoPTE5LGY9TWF0aC5pbXVsKG0sSyksaT1NYXRoLmltdWwobSxGKSxpPWkrTWF0aC5pbXVsKHAsSyl8MCxuPU1hdGguaW11bChwLEYpO3ZhciBwdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0obisoaT4+PjEzKXwwKSsocHQ+Pj4yNil8MCxwdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoZyxLKSxpPU1hdGguaW11bChnLEYpLGk9aStNYXRoLmltdWwoYyxLKXwwLG49TWF0aC5pbXVsKGMsRiksZj1mK01hdGguaW11bChtLEgpfDAsaT1pK01hdGguaW11bChtLFApfDAsaT1pK01hdGguaW11bChwLEgpfDAsbj1uK01hdGguaW11bChwLFApfDA7dmFyIE10PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyhNdD4+PjI2KXwwLE10Jj02NzEwODg2MyxmPU1hdGguaW11bCh3LEspLGk9TWF0aC5pbXVsKHcsRiksaT1pK01hdGguaW11bCh5LEspfDAsbj1NYXRoLmltdWwoeSxGKSxmPWYrTWF0aC5pbXVsKGcsSCl8MCxpPWkrTWF0aC5pbXVsKGcsUCl8MCxpPWkrTWF0aC5pbXVsKGMsSCl8MCxuPW4rTWF0aC5pbXVsKGMsUCl8MCxmPWYrTWF0aC5pbXVsKG0sRCl8MCxpPWkrTWF0aC5pbXVsKG0sQyl8MCxpPWkrTWF0aC5pbXVsKHAsRCl8MCxuPW4rTWF0aC5pbXVsKHAsQyl8MDt2YXIgZ3Q9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KG4rKGk+Pj4xMyl8MCkrKGd0Pj4+MjYpfDAsZ3QmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEEsSyksaT1NYXRoLmltdWwoQSxGKSxpPWkrTWF0aC5pbXVsKEIsSyl8MCxuPU1hdGguaW11bChCLEYpLGY9ZitNYXRoLmltdWwodyxIKXwwLGk9aStNYXRoLmltdWwodyxQKXwwLGk9aStNYXRoLmltdWwoeSxIKXwwLG49bitNYXRoLmltdWwoeSxQKXwwLGY9ZitNYXRoLmltdWwoZyxEKXwwLGk9aStNYXRoLmltdWwoZyxDKXwwLGk9aStNYXRoLmltdWwoYyxEKXwwLG49bitNYXRoLmltdWwoYyxDKXwwLGY9ZitNYXRoLmltdWwobSxKKXwwLGk9aStNYXRoLmltdWwobSxVKXwwLGk9aStNYXRoLmltdWwocCxKKXwwLG49bitNYXRoLmltdWwocCxVKXwwO3ZhciBjdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0obisoaT4+PjEzKXwwKSsoY3Q+Pj4yNil8MCxjdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoUyxLKSxpPU1hdGguaW11bChTLEYpLGk9aStNYXRoLmltdWwoayxLKXwwLG49TWF0aC5pbXVsKGssRiksZj1mK01hdGguaW11bChBLEgpfDAsaT1pK01hdGguaW11bChBLFApfDAsaT1pK01hdGguaW11bChCLEgpfDAsbj1uK01hdGguaW11bChCLFApfDAsZj1mK01hdGguaW11bCh3LEQpfDAsaT1pK01hdGguaW11bCh3LEMpfDAsaT1pK01hdGguaW11bCh5LEQpfDAsbj1uK01hdGguaW11bCh5LEMpfDAsZj1mK01hdGguaW11bChnLEopfDAsaT1pK01hdGguaW11bChnLFUpfDAsaT1pK01hdGguaW11bChjLEopfDAsbj1uK01hdGguaW11bChjLFUpfDAsZj1mK01hdGguaW11bChtLFcpfDAsaT1pK01hdGguaW11bChtLEcpfDAsaT1pK01hdGguaW11bChwLFcpfDAsbj1uK01hdGguaW11bChwLEcpfDA7dmFyIHd0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyh3dD4+PjI2KXwwLHd0Jj02NzEwODg2MyxmPU1hdGguaW11bChxLEspLGk9TWF0aC5pbXVsKHEsRiksaT1pK01hdGguaW11bChSLEspfDAsbj1NYXRoLmltdWwoUixGKSxmPWYrTWF0aC5pbXVsKFMsSCl8MCxpPWkrTWF0aC5pbXVsKFMsUCl8MCxpPWkrTWF0aC5pbXVsKGssSCl8MCxuPW4rTWF0aC5pbXVsKGssUCl8MCxmPWYrTWF0aC5pbXVsKEEsRCl8MCxpPWkrTWF0aC5pbXVsKEEsQyl8MCxpPWkrTWF0aC5pbXVsKEIsRCl8MCxuPW4rTWF0aC5pbXVsKEIsQyl8MCxmPWYrTWF0aC5pbXVsKHcsSil8MCxpPWkrTWF0aC5pbXVsKHcsVSl8MCxpPWkrTWF0aC5pbXVsKHksSil8MCxuPW4rTWF0aC5pbXVsKHksVSl8MCxmPWYrTWF0aC5pbXVsKGcsVyl8MCxpPWkrTWF0aC5pbXVsKGcsRyl8MCxpPWkrTWF0aC5pbXVsKGMsVyl8MCxuPW4rTWF0aC5pbXVsKGMsRyl8MCxmPWYrTWF0aC5pbXVsKG0sUSl8MCxpPWkrTWF0aC5pbXVsKG0sVil8MCxpPWkrTWF0aC5pbXVsKHAsUSl8MCxuPW4rTWF0aC5pbXVsKHAsVil8MDt2YXIgeXQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KG4rKGk+Pj4xMyl8MCkrKHl0Pj4+MjYpfDAseXQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKFosSyksaT1NYXRoLmltdWwoWixGKSxpPWkrTWF0aC5pbXVsKFQsSyl8MCxuPU1hdGguaW11bChULEYpLGY9ZitNYXRoLmltdWwocSxIKXwwLGk9aStNYXRoLmltdWwocSxQKXwwLGk9aStNYXRoLmltdWwoUixIKXwwLG49bitNYXRoLmltdWwoUixQKXwwLGY9ZitNYXRoLmltdWwoUyxEKXwwLGk9aStNYXRoLmltdWwoUyxDKXwwLGk9aStNYXRoLmltdWwoayxEKXwwLG49bitNYXRoLmltdWwoayxDKXwwLGY9ZitNYXRoLmltdWwoQSxKKXwwLGk9aStNYXRoLmltdWwoQSxVKXwwLGk9aStNYXRoLmltdWwoQixKKXwwLG49bitNYXRoLmltdWwoQixVKXwwLGY9ZitNYXRoLmltdWwodyxXKXwwLGk9aStNYXRoLmltdWwodyxHKXwwLGk9aStNYXRoLmltdWwoeSxXKXwwLG49bitNYXRoLmltdWwoeSxHKXwwLGY9ZitNYXRoLmltdWwoZyxRKXwwLGk9aStNYXRoLmltdWwoZyxWKXwwLGk9aStNYXRoLmltdWwoYyxRKXwwLG49bitNYXRoLmltdWwoYyxWKXwwLGY9ZitNYXRoLmltdWwobSxYKXwwLGk9aStNYXRoLmltdWwobSxZKXwwLGk9aStNYXRoLmltdWwocCxYKXwwLG49bitNYXRoLmltdWwocCxZKXwwO3ZhciB4dD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0obisoaT4+PjEzKXwwKSsoeHQ+Pj4yNil8MCx4dCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoTCxLKSxpPU1hdGguaW11bChMLEYpLGk9aStNYXRoLmltdWwoeixLKXwwLG49TWF0aC5pbXVsKHosRiksZj1mK01hdGguaW11bChaLEgpfDAsaT1pK01hdGguaW11bChaLFApfDAsaT1pK01hdGguaW11bChULEgpfDAsbj1uK01hdGguaW11bChULFApfDAsZj1mK01hdGguaW11bChxLEQpfDAsaT1pK01hdGguaW11bChxLEMpfDAsaT1pK01hdGguaW11bChSLEQpfDAsbj1uK01hdGguaW11bChSLEMpfDAsZj1mK01hdGguaW11bChTLEopfDAsaT1pK01hdGguaW11bChTLFUpfDAsaT1pK01hdGguaW11bChrLEopfDAsbj1uK01hdGguaW11bChrLFUpfDAsZj1mK01hdGguaW11bChBLFcpfDAsaT1pK01hdGguaW11bChBLEcpfDAsaT1pK01hdGguaW11bChCLFcpfDAsbj1uK01hdGguaW11bChCLEcpfDAsZj1mK01hdGguaW11bCh3LFEpfDAsaT1pK01hdGguaW11bCh3LFYpfDAsaT1pK01hdGguaW11bCh5LFEpfDAsbj1uK01hdGguaW11bCh5LFYpfDAsZj1mK01hdGguaW11bChnLFgpfDAsaT1pK01hdGguaW11bChnLFkpfDAsaT1pK01hdGguaW11bChjLFgpfDAsbj1uK01hdGguaW11bChjLFkpfDAsZj1mK01hdGguaW11bChtLCQpfDAsaT1pK01hdGguaW11bChtLGopfDAsaT1pK01hdGguaW11bChwLCQpfDAsbj1uK01hdGguaW11bChwLGopfDA7dmFyIGJ0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxmPU1hdGguaW11bChJLEspLGk9TWF0aC5pbXVsKEksRiksaT1pK01hdGguaW11bChOLEspfDAsbj1NYXRoLmltdWwoTixGKSxmPWYrTWF0aC5pbXVsKEwsSCl8MCxpPWkrTWF0aC5pbXVsKEwsUCl8MCxpPWkrTWF0aC5pbXVsKHosSCl8MCxuPW4rTWF0aC5pbXVsKHosUCl8MCxmPWYrTWF0aC5pbXVsKFosRCl8MCxpPWkrTWF0aC5pbXVsKFosQyl8MCxpPWkrTWF0aC5pbXVsKFQsRCl8MCxuPW4rTWF0aC5pbXVsKFQsQyl8MCxmPWYrTWF0aC5pbXVsKHEsSil8MCxpPWkrTWF0aC5pbXVsKHEsVSl8MCxpPWkrTWF0aC5pbXVsKFIsSil8MCxuPW4rTWF0aC5pbXVsKFIsVSl8MCxmPWYrTWF0aC5pbXVsKFMsVyl8MCxpPWkrTWF0aC5pbXVsKFMsRyl8MCxpPWkrTWF0aC5pbXVsKGssVyl8MCxuPW4rTWF0aC5pbXVsKGssRyl8MCxmPWYrTWF0aC5pbXVsKEEsUSl8MCxpPWkrTWF0aC5pbXVsKEEsVil8MCxpPWkrTWF0aC5pbXVsKEIsUSl8MCxuPW4rTWF0aC5pbXVsKEIsVil8MCxmPWYrTWF0aC5pbXVsKHcsWCl8MCxpPWkrTWF0aC5pbXVsKHcsWSl8MCxpPWkrTWF0aC5pbXVsKHksWCl8MCxuPW4rTWF0aC5pbXVsKHksWSl8MCxmPWYrTWF0aC5pbXVsKGcsJCl8MCxpPWkrTWF0aC5pbXVsKGcsail8MCxpPWkrTWF0aC5pbXVsKGMsJCl8MCxuPW4rTWF0aC5pbXVsKGMsail8MCxmPWYrTWF0aC5pbXVsKG0sdHQpfDAsaT1pK01hdGguaW11bChtLGl0KXwwLGk9aStNYXRoLmltdWwocCx0dCl8MCxuPW4rTWF0aC5pbXVsKHAsaXQpfDA7dmFyIF90PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyhfdD4+PjI2KXwwLF90Jj02NzEwODg2MyxmPU1hdGguaW11bChFLEspLGk9TWF0aC5pbXVsKEUsRiksaT1pK01hdGguaW11bChPLEspfDAsbj1NYXRoLmltdWwoTyxGKSxmPWYrTWF0aC5pbXVsKEksSCl8MCxpPWkrTWF0aC5pbXVsKEksUCl8MCxpPWkrTWF0aC5pbXVsKE4sSCl8MCxuPW4rTWF0aC5pbXVsKE4sUCl8MCxmPWYrTWF0aC5pbXVsKEwsRCl8MCxpPWkrTWF0aC5pbXVsKEwsQyl8MCxpPWkrTWF0aC5pbXVsKHosRCl8MCxuPW4rTWF0aC5pbXVsKHosQyl8MCxmPWYrTWF0aC5pbXVsKFosSil8MCxpPWkrTWF0aC5pbXVsKFosVSl8MCxpPWkrTWF0aC5pbXVsKFQsSil8MCxuPW4rTWF0aC5pbXVsKFQsVSl8MCxmPWYrTWF0aC5pbXVsKHEsVyl8MCxpPWkrTWF0aC5pbXVsKHEsRyl8MCxpPWkrTWF0aC5pbXVsKFIsVyl8MCxuPW4rTWF0aC5pbXVsKFIsRyl8MCxmPWYrTWF0aC5pbXVsKFMsUSl8MCxpPWkrTWF0aC5pbXVsKFMsVil8MCxpPWkrTWF0aC5pbXVsKGssUSl8MCxuPW4rTWF0aC5pbXVsKGssVil8MCxmPWYrTWF0aC5pbXVsKEEsWCl8MCxpPWkrTWF0aC5pbXVsKEEsWSl8MCxpPWkrTWF0aC5pbXVsKEIsWCl8MCxuPW4rTWF0aC5pbXVsKEIsWSl8MCxmPWYrTWF0aC5pbXVsKHcsJCl8MCxpPWkrTWF0aC5pbXVsKHcsail8MCxpPWkrTWF0aC5pbXVsKHksJCl8MCxuPW4rTWF0aC5pbXVsKHksail8MCxmPWYrTWF0aC5pbXVsKGcsdHQpfDAsaT1pK01hdGguaW11bChnLGl0KXwwLGk9aStNYXRoLmltdWwoYyx0dCl8MCxuPW4rTWF0aC5pbXVsKGMsaXQpfDAsZj1mK01hdGguaW11bChtLHJ0KXwwLGk9aStNYXRoLmltdWwobSxldCl8MCxpPWkrTWF0aC5pbXVsKHAscnQpfDAsbj1uK01hdGguaW11bChwLGV0KXwwO3ZhciBBdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0obisoaT4+PjEzKXwwKSsoQXQ+Pj4yNil8MCxBdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoRSxIKSxpPU1hdGguaW11bChFLFApLGk9aStNYXRoLmltdWwoTyxIKXwwLG49TWF0aC5pbXVsKE8sUCksZj1mK01hdGguaW11bChJLEQpfDAsaT1pK01hdGguaW11bChJLEMpfDAsaT1pK01hdGguaW11bChOLEQpfDAsbj1uK01hdGguaW11bChOLEMpfDAsZj1mK01hdGguaW11bChMLEopfDAsaT1pK01hdGguaW11bChMLFUpfDAsaT1pK01hdGguaW11bCh6LEopfDAsbj1uK01hdGguaW11bCh6LFUpfDAsZj1mK01hdGguaW11bChaLFcpfDAsaT1pK01hdGguaW11bChaLEcpfDAsaT1pK01hdGguaW11bChULFcpfDAsbj1uK01hdGguaW11bChULEcpfDAsZj1mK01hdGguaW11bChxLFEpfDAsaT1pK01hdGguaW11bChxLFYpfDAsaT1pK01hdGguaW11bChSLFEpfDAsbj1uK01hdGguaW11bChSLFYpfDAsZj1mK01hdGguaW11bChTLFgpfDAsaT1pK01hdGguaW11bChTLFkpfDAsaT1pK01hdGguaW11bChrLFgpfDAsbj1uK01hdGguaW11bChrLFkpfDAsZj1mK01hdGguaW11bChBLCQpfDAsaT1pK01hdGguaW11bChBLGopfDAsaT1pK01hdGguaW11bChCLCQpfDAsbj1uK01hdGguaW11bChCLGopfDAsZj1mK01hdGguaW11bCh3LHR0KXwwLGk9aStNYXRoLmltdWwodyxpdCl8MCxpPWkrTWF0aC5pbXVsKHksdHQpfDAsbj1uK01hdGguaW11bCh5LGl0KXwwLGY9ZitNYXRoLmltdWwoZyxydCl8MCxpPWkrTWF0aC5pbXVsKGcsZXQpfDAsaT1pK01hdGguaW11bChjLHJ0KXwwLG49bitNYXRoLmltdWwoYyxldCl8MDt2YXIgQnQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KG4rKGk+Pj4xMyl8MCkrKEJ0Pj4+MjYpfDAsQnQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEUsRCksaT1NYXRoLmltdWwoRSxDKSxpPWkrTWF0aC5pbXVsKE8sRCl8MCxuPU1hdGguaW11bChPLEMpLGY9ZitNYXRoLmltdWwoSSxKKXwwLGk9aStNYXRoLmltdWwoSSxVKXwwLGk9aStNYXRoLmltdWwoTixKKXwwLG49bitNYXRoLmltdWwoTixVKXwwLGY9ZitNYXRoLmltdWwoTCxXKXwwLGk9aStNYXRoLmltdWwoTCxHKXwwLGk9aStNYXRoLmltdWwoeixXKXwwLG49bitNYXRoLmltdWwoeixHKXwwLGY9ZitNYXRoLmltdWwoWixRKXwwLGk9aStNYXRoLmltdWwoWixWKXwwLGk9aStNYXRoLmltdWwoVCxRKXwwLG49bitNYXRoLmltdWwoVCxWKXwwLGY9ZitNYXRoLmltdWwocSxYKXwwLGk9aStNYXRoLmltdWwocSxZKXwwLGk9aStNYXRoLmltdWwoUixYKXwwLG49bitNYXRoLmltdWwoUixZKXwwLGY9ZitNYXRoLmltdWwoUywkKXwwLGk9aStNYXRoLmltdWwoUyxqKXwwLGk9aStNYXRoLmltdWwoaywkKXwwLG49bitNYXRoLmltdWwoayxqKXwwLGY9ZitNYXRoLmltdWwoQSx0dCl8MCxpPWkrTWF0aC5pbXVsKEEsaXQpfDAsaT1pK01hdGguaW11bChCLHR0KXwwLG49bitNYXRoLmltdWwoQixpdCl8MCxmPWYrTWF0aC5pbXVsKHcscnQpfDAsaT1pK01hdGguaW11bCh3LGV0KXwwLGk9aStNYXRoLmltdWwoeSxydCl8MCxuPW4rTWF0aC5pbXVsKHksZXQpfDA7dmFyIFN0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyhTdD4+PjI2KXwwLFN0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLEopLGk9TWF0aC5pbXVsKEUsVSksaT1pK01hdGguaW11bChPLEopfDAsbj1NYXRoLmltdWwoTyxVKSxmPWYrTWF0aC5pbXVsKEksVyl8MCxpPWkrTWF0aC5pbXVsKEksRyl8MCxpPWkrTWF0aC5pbXVsKE4sVyl8MCxuPW4rTWF0aC5pbXVsKE4sRyl8MCxmPWYrTWF0aC5pbXVsKEwsUSl8MCxpPWkrTWF0aC5pbXVsKEwsVil8MCxpPWkrTWF0aC5pbXVsKHosUSl8MCxuPW4rTWF0aC5pbXVsKHosVil8MCxmPWYrTWF0aC5pbXVsKFosWCl8MCxpPWkrTWF0aC5pbXVsKFosWSl8MCxpPWkrTWF0aC5pbXVsKFQsWCl8MCxuPW4rTWF0aC5pbXVsKFQsWSl8MCxmPWYrTWF0aC5pbXVsKHEsJCl8MCxpPWkrTWF0aC5pbXVsKHEsail8MCxpPWkrTWF0aC5pbXVsKFIsJCl8MCxuPW4rTWF0aC5pbXVsKFIsail8MCxmPWYrTWF0aC5pbXVsKFMsdHQpfDAsaT1pK01hdGguaW11bChTLGl0KXwwLGk9aStNYXRoLmltdWwoayx0dCl8MCxuPW4rTWF0aC5pbXVsKGssaXQpfDAsZj1mK01hdGguaW11bChBLHJ0KXwwLGk9aStNYXRoLmltdWwoQSxldCl8MCxpPWkrTWF0aC5pbXVsKEIscnQpfDAsbj1uK01hdGguaW11bChCLGV0KXwwO3ZhciBrdD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0obisoaT4+PjEzKXwwKSsoa3Q+Pj4yNil8MCxrdCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoRSxXKSxpPU1hdGguaW11bChFLEcpLGk9aStNYXRoLmltdWwoTyxXKXwwLG49TWF0aC5pbXVsKE8sRyksZj1mK01hdGguaW11bChJLFEpfDAsaT1pK01hdGguaW11bChJLFYpfDAsaT1pK01hdGguaW11bChOLFEpfDAsbj1uK01hdGguaW11bChOLFYpfDAsZj1mK01hdGguaW11bChMLFgpfDAsaT1pK01hdGguaW11bChMLFkpfDAsaT1pK01hdGguaW11bCh6LFgpfDAsbj1uK01hdGguaW11bCh6LFkpfDAsZj1mK01hdGguaW11bChaLCQpfDAsaT1pK01hdGguaW11bChaLGopfDAsaT1pK01hdGguaW11bChULCQpfDAsbj1uK01hdGguaW11bChULGopfDAsZj1mK01hdGguaW11bChxLHR0KXwwLGk9aStNYXRoLmltdWwocSxpdCl8MCxpPWkrTWF0aC5pbXVsKFIsdHQpfDAsbj1uK01hdGguaW11bChSLGl0KXwwLGY9ZitNYXRoLmltdWwoUyxydCl8MCxpPWkrTWF0aC5pbXVsKFMsZXQpfDAsaT1pK01hdGguaW11bChrLHJ0KXwwLG49bitNYXRoLmltdWwoayxldCl8MDt2YXIgcXQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KG4rKGk+Pj4xMyl8MCkrKHF0Pj4+MjYpfDAscXQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEUsUSksaT1NYXRoLmltdWwoRSxWKSxpPWkrTWF0aC5pbXVsKE8sUSl8MCxuPU1hdGguaW11bChPLFYpLGY9ZitNYXRoLmltdWwoSSxYKXwwLGk9aStNYXRoLmltdWwoSSxZKXwwLGk9aStNYXRoLmltdWwoTixYKXwwLG49bitNYXRoLmltdWwoTixZKXwwLGY9ZitNYXRoLmltdWwoTCwkKXwwLGk9aStNYXRoLmltdWwoTCxqKXwwLGk9aStNYXRoLmltdWwoeiwkKXwwLG49bitNYXRoLmltdWwoeixqKXwwLGY9ZitNYXRoLmltdWwoWix0dCl8MCxpPWkrTWF0aC5pbXVsKFosaXQpfDAsaT1pK01hdGguaW11bChULHR0KXwwLG49bitNYXRoLmltdWwoVCxpdCl8MCxmPWYrTWF0aC5pbXVsKHEscnQpfDAsaT1pK01hdGguaW11bChxLGV0KXwwLGk9aStNYXRoLmltdWwoUixydCl8MCxuPW4rTWF0aC5pbXVsKFIsZXQpfDA7dmFyIFJ0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyhSdD4+PjI2KXwwLFJ0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLFgpLGk9TWF0aC5pbXVsKEUsWSksaT1pK01hdGguaW11bChPLFgpfDAsbj1NYXRoLmltdWwoTyxZKSxmPWYrTWF0aC5pbXVsKEksJCl8MCxpPWkrTWF0aC5pbXVsKEksail8MCxpPWkrTWF0aC5pbXVsKE4sJCl8MCxuPW4rTWF0aC5pbXVsKE4sail8MCxmPWYrTWF0aC5pbXVsKEwsdHQpfDAsaT1pK01hdGguaW11bChMLGl0KXwwLGk9aStNYXRoLmltdWwoeix0dCl8MCxuPW4rTWF0aC5pbXVsKHosaXQpfDAsZj1mK01hdGguaW11bChaLHJ0KXwwLGk9aStNYXRoLmltdWwoWixldCl8MCxpPWkrTWF0aC5pbXVsKFQscnQpfDAsbj1uK01hdGguaW11bChULGV0KXwwO3ZhciBadD0odStmfDApKygoaSY4MTkxKTw8MTMpfDA7dT0obisoaT4+PjEzKXwwKSsoWnQ+Pj4yNil8MCxadCY9NjcxMDg4NjMsZj1NYXRoLmltdWwoRSwkKSxpPU1hdGguaW11bChFLGopLGk9aStNYXRoLmltdWwoTywkKXwwLG49TWF0aC5pbXVsKE8saiksZj1mK01hdGguaW11bChJLHR0KXwwLGk9aStNYXRoLmltdWwoSSxpdCl8MCxpPWkrTWF0aC5pbXVsKE4sdHQpfDAsbj1uK01hdGguaW11bChOLGl0KXwwLGY9ZitNYXRoLmltdWwoTCxydCl8MCxpPWkrTWF0aC5pbXVsKEwsZXQpfDAsaT1pK01hdGguaW11bCh6LHJ0KXwwLG49bitNYXRoLmltdWwoeixldCl8MDt2YXIgVHQ9KHUrZnwwKSsoKGkmODE5MSk8PDEzKXwwO3U9KG4rKGk+Pj4xMyl8MCkrKFR0Pj4+MjYpfDAsVHQmPTY3MTA4ODYzLGY9TWF0aC5pbXVsKEUsdHQpLGk9TWF0aC5pbXVsKEUsaXQpLGk9aStNYXRoLmltdWwoTyx0dCl8MCxuPU1hdGguaW11bChPLGl0KSxmPWYrTWF0aC5pbXVsKEkscnQpfDAsaT1pK01hdGguaW11bChJLGV0KXwwLGk9aStNYXRoLmltdWwoTixydCl8MCxuPW4rTWF0aC5pbXVsKE4sZXQpfDA7dmFyIEx0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDt1PShuKyhpPj4+MTMpfDApKyhMdD4+PjI2KXwwLEx0Jj02NzEwODg2MyxmPU1hdGguaW11bChFLHJ0KSxpPU1hdGguaW11bChFLGV0KSxpPWkrTWF0aC5pbXVsKE8scnQpfDAsbj1NYXRoLmltdWwoTyxldCk7dmFyIHp0PSh1K2Z8MCkrKChpJjgxOTEpPDwxMyl8MDtyZXR1cm4gdT0obisoaT4+PjEzKXwwKSsoenQ+Pj4yNil8MCx6dCY9NjcxMDg4NjMsYVswXT1wdCxhWzFdPU10LGFbMl09Z3QsYVszXT1jdCxhWzRdPXd0LGFbNV09eXQsYVs2XT14dCxhWzddPWJ0LGFbOF09X3QsYVs5XT1BdCxhWzEwXT1CdCxhWzExXT1TdCxhWzEyXT1rdCxhWzEzXT1xdCxhWzE0XT1SdCxhWzE1XT1adCxhWzE2XT1UdCxhWzE3XT1MdCxhWzE4XT16dCx1IT09MCYmKGFbMTldPXUsZS5sZW5ndGgrKyksZX07TWF0aC5pbXVsfHwoSHQ9RnQpO2Z1bmN0aW9uIHBpKG8sdCxyKXtyLm5lZ2F0aXZlPXQubmVnYXRpdmVeby5uZWdhdGl2ZSxyLmxlbmd0aD1vLmxlbmd0aCt0Lmxlbmd0aDtmb3IodmFyIGU9MCxoPTAscz0wO3M8ci5sZW5ndGgtMTtzKyspe3ZhciBhPWg7aD0wO2Zvcih2YXIgdT1lJjY3MTA4ODYzLGY9TWF0aC5taW4ocyx0Lmxlbmd0aC0xKSxpPU1hdGgubWF4KDAscy1vLmxlbmd0aCsxKTtpPD1mO2krKyl7dmFyIG49cy1pLGQ9by53b3Jkc1tuXXwwLG09dC53b3Jkc1tpXXwwLHA9ZCptLE09cCY2NzEwODg2MzthPWErKHAvNjcxMDg4NjR8MCl8MCxNPU0rdXwwLHU9TSY2NzEwODg2MyxhPWErKE0+Pj4yNil8MCxoKz1hPj4+MjYsYSY9NjcxMDg4NjN9ci53b3Jkc1tzXT11LGU9YSxhPWh9cmV0dXJuIGUhPT0wP3Iud29yZHNbc109ZTpyLmxlbmd0aC0tLHIuc3RyaXAoKX1mdW5jdGlvbiBQdChvLHQscil7dmFyIGU9bmV3IG50O3JldHVybiBlLm11bHAobyx0LHIpfWwucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHQscil7dmFyIGUsaD10aGlzLmxlbmd0aCt0Lmxlbmd0aDtyZXR1cm4gdGhpcy5sZW5ndGg9PT0xMCYmdC5sZW5ndGg9PT0xMD9lPUh0KHRoaXMsdCxyKTpoPDYzP2U9RnQodGhpcyx0LHIpOmg8MTAyND9lPXBpKHRoaXMsdCxyKTplPVB0KHRoaXMsdCxyKSxlfTtmdW5jdGlvbiBudChvLHQpe3RoaXMueD1vLHRoaXMueT10fW50LnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1uZXcgQXJyYXkodCksZT1sLnByb3RvdHlwZS5fY291bnRCaXRzKHQpLTEsaD0wO2g8dDtoKyspcltoXT10aGlzLnJldkJpbihoLGUsdCk7cmV0dXJuIHJ9LG50LnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24odCxyLGUpe2lmKHQ9PT0wfHx0PT09ZS0xKXJldHVybiB0O2Zvcih2YXIgaD0wLHM9MDtzPHI7cysrKWh8PSh0JjEpPDxyLXMtMSx0Pj49MTtyZXR1cm4gaH0sbnQucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odCxyLGUsaCxzLGEpe2Zvcih2YXIgdT0wO3U8YTt1KyspaFt1XT1yW3RbdV1dLHNbdV09ZVt0W3VdXX0sbnQucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih0LHIsZSxoLHMsYSl7dGhpcy5wZXJtdXRlKGEsdCxyLGUsaCxzKTtmb3IodmFyIHU9MTt1PHM7dTw8PTEpZm9yKHZhciBmPXU8PDEsaT1NYXRoLmNvcygyKk1hdGguUEkvZiksbj1NYXRoLnNpbigyKk1hdGguUEkvZiksZD0wO2Q8cztkKz1mKWZvcih2YXIgbT1pLHA9bixNPTA7TTx1O00rKyl7dmFyIGc9ZVtkK01dLGM9aFtkK01dLHN0PWVbZCtNK3VdLHc9aFtkK00rdV0seT1tKnN0LXAqdzt3PW0qdytwKnN0LHN0PXksZVtkK01dPWcrc3QsaFtkK01dPWMrdyxlW2QrTSt1XT1nLXN0LGhbZCtNK3VdPWMtdyxNIT09ZiYmKHk9aSptLW4qcCxwPWkqcCtuKm0sbT15KX19LG50LnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih0LHIpe3ZhciBlPU1hdGgubWF4KHIsdCl8MSxoPWUmMSxzPTA7Zm9yKGU9ZS8yfDA7ZTtlPWU+Pj4xKXMrKztyZXR1cm4gMTw8cysxK2h9LG50LnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24odCxyLGUpe2lmKCEoZTw9MSkpZm9yKHZhciBoPTA7aDxlLzI7aCsrKXt2YXIgcz10W2hdO3RbaF09dFtlLWgtMV0sdFtlLWgtMV09cyxzPXJbaF0scltoXT0tcltlLWgtMV0scltlLWgtMV09LXN9fSxudC5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTAsaD0wO2g8ci8yO2grKyl7dmFyIHM9TWF0aC5yb3VuZCh0WzIqaCsxXS9yKSo4MTkyK01hdGgucm91bmQodFsyKmhdL3IpK2U7dFtoXT1zJjY3MTA4ODYzLHM8NjcxMDg4NjQ/ZT0wOmU9cy82NzEwODg2NHwwfXJldHVybiB0fSxudC5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbih0LHIsZSxoKXtmb3IodmFyIHM9MCxhPTA7YTxyO2ErKylzPXMrKHRbYV18MCksZVsyKmFdPXMmODE5MSxzPXM+Pj4xMyxlWzIqYSsxXT1zJjgxOTEscz1zPj4+MTM7Zm9yKGE9MipyO2E8aDsrK2EpZVthXT0wO3Yocz09PTApLHYoKHMmLTgxOTIpPT09MCl9LG50LnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1uZXcgQXJyYXkodCksZT0wO2U8dDtlKyspcltlXT0wO3JldHVybiByfSxudC5wcm90b3R5cGUubXVscD1mdW5jdGlvbih0LHIsZSl7dmFyIGg9Mip0aGlzLmd1ZXNzTGVuMTNiKHQubGVuZ3RoLHIubGVuZ3RoKSxzPXRoaXMubWFrZVJCVChoKSxhPXRoaXMuc3R1YihoKSx1PW5ldyBBcnJheShoKSxmPW5ldyBBcnJheShoKSxpPW5ldyBBcnJheShoKSxuPW5ldyBBcnJheShoKSxkPW5ldyBBcnJheShoKSxtPW5ldyBBcnJheShoKSxwPWUud29yZHM7cC5sZW5ndGg9aCx0aGlzLmNvbnZlcnQxM2IodC53b3Jkcyx0Lmxlbmd0aCx1LGgpLHRoaXMuY29udmVydDEzYihyLndvcmRzLHIubGVuZ3RoLG4saCksdGhpcy50cmFuc2Zvcm0odSxhLGYsaSxoLHMpLHRoaXMudHJhbnNmb3JtKG4sYSxkLG0saCxzKTtmb3IodmFyIE09MDtNPGg7TSsrKXt2YXIgZz1mW01dKmRbTV0taVtNXSptW01dO2lbTV09ZltNXSptW01dK2lbTV0qZFtNXSxmW01dPWd9cmV0dXJuIHRoaXMuY29uanVnYXRlKGYsaSxoKSx0aGlzLnRyYW5zZm9ybShmLGkscCxhLGgscyksdGhpcy5jb25qdWdhdGUocCxhLGgpLHRoaXMubm9ybWFsaXplMTNiKHAsaCksZS5uZWdhdGl2ZT10Lm5lZ2F0aXZlXnIubmVnYXRpdmUsZS5sZW5ndGg9dC5sZW5ndGgrci5sZW5ndGgsZS5zdHJpcCgpfSxsLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IGwobnVsbCk7cmV0dXJuIHIud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3QubGVuZ3RoKSx0aGlzLm11bFRvKHQscil9LGwucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24odCl7dmFyIHI9bmV3IGwobnVsbCk7cmV0dXJuIHIud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3QubGVuZ3RoKSxQdCh0aGlzLHQscil9LGwucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyh0LHRoaXMpfSxsLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih0KXt2KHR5cGVvZiB0PT0ibnVtYmVyIiksdih0PDY3MTA4ODY0KTtmb3IodmFyIHI9MCxlPTA7ZTx0aGlzLmxlbmd0aDtlKyspe3ZhciBoPSh0aGlzLndvcmRzW2VdfDApKnQscz0oaCY2NzEwODg2MykrKHImNjcxMDg4NjMpO3I+Pj0yNixyKz1oLzY3MTA4ODY0fDAscis9cz4+PjI2LHRoaXMud29yZHNbZV09cyY2NzEwODg2M31yZXR1cm4gciE9PTAmJih0aGlzLndvcmRzW2VdPXIsdGhpcy5sZW5ndGgrKyksdD09PTAmJih0aGlzLmxlbmd0aD0xLHRoaXMuX25vcm1TaWduKCkpLHRoaXN9LGwucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0sbC5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxsLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxsLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCl7dmFyIHI9bWkodCk7aWYoci5sZW5ndGg9PT0wKXJldHVybiBuZXcgbCgxKTtmb3IodmFyIGU9dGhpcyxoPTA7aDxyLmxlbmd0aCYmcltoXT09PTA7aCsrLGU9ZS5zcXIoKSk7aWYoKytoPHIubGVuZ3RoKWZvcih2YXIgcz1lLnNxcigpO2g8ci5sZW5ndGg7aCsrLHM9cy5zcXIoKSlyW2hdIT09MCYmKGU9ZS5tdWwocykpO3JldHVybiBlfSxsLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24odCl7dih0eXBlb2YgdD09Im51bWJlciImJnQ+PTApO3ZhciByPXQlMjYsZT0odC1yKS8yNixoPTY3MTA4ODYzPj4+MjYtcjw8MjYtcixzO2lmKHIhPT0wKXt2YXIgYT0wO2ZvcihzPTA7czx0aGlzLmxlbmd0aDtzKyspe3ZhciB1PXRoaXMud29yZHNbc10maCxmPSh0aGlzLndvcmRzW3NdfDApLXU8PHI7dGhpcy53b3Jkc1tzXT1mfGEsYT11Pj4+MjYtcn1hJiYodGhpcy53b3Jkc1tzXT1hLHRoaXMubGVuZ3RoKyspfWlmKGUhPT0wKXtmb3Iocz10aGlzLmxlbmd0aC0xO3M+PTA7cy0tKXRoaXMud29yZHNbcytlXT10aGlzLndvcmRzW3NdO2ZvcihzPTA7czxlO3MrKyl0aGlzLndvcmRzW3NdPTA7dGhpcy5sZW5ndGgrPWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5uZWdhdGl2ZT09PTApLHRoaXMuaXVzaGxuKHQpfSxsLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24odCxyLGUpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgaDtyP2g9KHItciUyNikvMjY6aD0wO3ZhciBzPXQlMjYsYT1NYXRoLm1pbigodC1zKS8yNix0aGlzLmxlbmd0aCksdT02NzEwODg2M142NzEwODg2Mz4+PnM8PHMsZj1lO2lmKGgtPWEsaD1NYXRoLm1heCgwLGgpLGYpe2Zvcih2YXIgaT0wO2k8YTtpKyspZi53b3Jkc1tpXT10aGlzLndvcmRzW2ldO2YubGVuZ3RoPWF9aWYoYSE9PTApaWYodGhpcy5sZW5ndGg+YSlmb3IodGhpcy5sZW5ndGgtPWEsaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXRoaXMud29yZHNbaV09dGhpcy53b3Jkc1tpK2FdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIG49MDtmb3IoaT10aGlzLmxlbmd0aC0xO2k+PTAmJihuIT09MHx8aT49aCk7aS0tKXt2YXIgZD10aGlzLndvcmRzW2ldfDA7dGhpcy53b3Jkc1tpXT1uPDwyNi1zfGQ+Pj5zLG49ZCZ1fXJldHVybiBmJiZuIT09MCYmKGYud29yZHNbZi5sZW5ndGgrK109biksdGhpcy5sZW5ndGg9PT0wJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxyLGUpe3JldHVybiB2KHRoaXMubmVnYXRpdmU9PT0wKSx0aGlzLml1c2hybih0LHIsZSl9LGwucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sbC5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LGwucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sbC5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4odCl9LGwucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgcj10JTI2LGU9KHQtcikvMjYsaD0xPDxyO2lmKHRoaXMubGVuZ3RoPD1lKXJldHVybiExO3ZhciBzPXRoaXMud29yZHNbZV07cmV0dXJuISEocyZoKX0sbC5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiJiZ0Pj0wKTt2YXIgcj10JTI2LGU9KHQtcikvMjY7aWYodih0aGlzLm5lZ2F0aXZlPT09MCwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PWUpcmV0dXJuIHRoaXM7aWYociE9PTAmJmUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihlLHRoaXMubGVuZ3RoKSxyIT09MCl7dmFyIGg9NjcxMDg4NjNeNjcxMDg4NjM+Pj5yPDxyO3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWh9cmV0dXJuIHRoaXMubGVuZ3RoPT09MCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LGwucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHQpfSxsLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gdih0eXBlb2YgdD09Im51bWJlciIpLHYodDw2NzEwODg2NCksdDwwP3RoaXMuaXN1Ym4oLXQpOnRoaXMubmVnYXRpdmUhPT0wP3RoaXMubGVuZ3RoPT09MSYmKHRoaXMud29yZHNbMF18MCk8dD8odGhpcy53b3Jkc1swXT10LSh0aGlzLndvcmRzWzBdfDApLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHQpfSxsLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24odCl7dGhpcy53b3Jkc1swXSs9dDtmb3IodmFyIHI9MDtyPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3JdPj02NzEwODg2NDtyKyspdGhpcy53b3Jkc1tyXS09NjcxMDg4NjQscj09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tyKzFdPTE6dGhpcy53b3Jkc1tyKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHIrMSksdGhpc30sbC5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24odCl7aWYodih0eXBlb2YgdD09Im51bWJlciIpLHYodDw2NzEwODg2NCksdDwwKXJldHVybiB0aGlzLmlhZGRuKC10KTtpZih0aGlzLm5lZ2F0aXZlIT09MClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4odCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09dCx0aGlzLmxlbmd0aD09PTEmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgcj0wO3I8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbcl08MDtyKyspdGhpcy53b3Jkc1tyXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tyKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LGwucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbih0KX0sbC5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHQpfSxsLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxsLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sbC5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHQscixlKXt2YXIgaD10Lmxlbmd0aCtlLHM7dGhpcy5fZXhwYW5kKGgpO3ZhciBhLHU9MDtmb3Iocz0wO3M8dC5sZW5ndGg7cysrKXthPSh0aGlzLndvcmRzW3MrZV18MCkrdTt2YXIgZj0odC53b3Jkc1tzXXwwKSpyO2EtPWYmNjcxMDg4NjMsdT0oYT4+MjYpLShmLzY3MTA4ODY0fDApLHRoaXMud29yZHNbcytlXT1hJjY3MTA4ODYzfWZvcig7czx0aGlzLmxlbmd0aC1lO3MrKylhPSh0aGlzLndvcmRzW3MrZV18MCkrdSx1PWE+PjI2LHRoaXMud29yZHNbcytlXT1hJjY3MTA4ODYzO2lmKHU9PT0wKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKHYodT09PS0xKSx1PTAscz0wO3M8dGhpcy5sZW5ndGg7cysrKWE9LSh0aGlzLndvcmRzW3NdfDApK3UsdT1hPj4yNix0aGlzLndvcmRzW3NdPWEmNjcxMDg4NjM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LGwucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5sZW5ndGgtdC5sZW5ndGgsaD10aGlzLmNsb25lKCkscz10LGE9cy53b3Jkc1tzLmxlbmd0aC0xXXwwLHU9dGhpcy5fY291bnRCaXRzKGEpO2U9MjYtdSxlIT09MCYmKHM9cy51c2hsbihlKSxoLml1c2hsbihlKSxhPXMud29yZHNbcy5sZW5ndGgtMV18MCk7dmFyIGY9aC5sZW5ndGgtcy5sZW5ndGgsaTtpZihyIT09Im1vZCIpe2k9bmV3IGwobnVsbCksaS5sZW5ndGg9ZisxLGkud29yZHM9bmV3IEFycmF5KGkubGVuZ3RoKTtmb3IodmFyIG49MDtuPGkubGVuZ3RoO24rKylpLndvcmRzW25dPTB9dmFyIGQ9aC5jbG9uZSgpLl9pc2hsbnN1Ym11bChzLDEsZik7ZC5uZWdhdGl2ZT09PTAmJihoPWQsaSYmKGkud29yZHNbZl09MSkpO2Zvcih2YXIgbT1mLTE7bT49MDttLS0pe3ZhciBwPShoLndvcmRzW3MubGVuZ3RoK21dfDApKjY3MTA4ODY0KyhoLndvcmRzW3MubGVuZ3RoK20tMV18MCk7Zm9yKHA9TWF0aC5taW4ocC9hfDAsNjcxMDg4NjMpLGguX2lzaGxuc3VibXVsKHMscCxtKTtoLm5lZ2F0aXZlIT09MDspcC0tLGgubmVnYXRpdmU9MCxoLl9pc2hsbnN1Ym11bChzLDEsbSksaC5pc1plcm8oKXx8KGgubmVnYXRpdmVePTEpO2kmJihpLndvcmRzW21dPXApfXJldHVybiBpJiZpLnN0cmlwKCksaC5zdHJpcCgpLHIhPT0iZGl2IiYmZSE9PTAmJmguaXVzaHJuKGUpLHtkaXY6aXx8bnVsbCxtb2Q6aH19LGwucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LHIsZSl7aWYodighdC5pc1plcm8oKSksdGhpcy5pc1plcm8oKSlyZXR1cm57ZGl2Om5ldyBsKDApLG1vZDpuZXcgbCgwKX07dmFyIGgscyxhO3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MCYmdC5uZWdhdGl2ZT09PTA/KGE9dGhpcy5uZWcoKS5kaXZtb2QodCxyKSxyIT09Im1vZCImJihoPWEuZGl2Lm5lZygpKSxyIT09ImRpdiImJihzPWEubW9kLm5lZygpLGUmJnMubmVnYXRpdmUhPT0wJiZzLmlhZGQodCkpLHtkaXY6aCxtb2Q6c30pOnRoaXMubmVnYXRpdmU9PT0wJiZ0Lm5lZ2F0aXZlIT09MD8oYT10aGlzLmRpdm1vZCh0Lm5lZygpLHIpLHIhPT0ibW9kIiYmKGg9YS5kaXYubmVnKCkpLHtkaXY6aCxtb2Q6YS5tb2R9KToodGhpcy5uZWdhdGl2ZSZ0Lm5lZ2F0aXZlKSE9PTA/KGE9dGhpcy5uZWcoKS5kaXZtb2QodC5uZWcoKSxyKSxyIT09ImRpdiImJihzPWEubW9kLm5lZygpLGUmJnMubmVnYXRpdmUhPT0wJiZzLmlzdWIodCkpLHtkaXY6YS5kaXYsbW9kOnN9KTp0Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAodCk8MD97ZGl2Om5ldyBsKDApLG1vZDp0aGlzfTp0Lmxlbmd0aD09PTE/cj09PSJkaXYiP3tkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpudWxsfTpyPT09Im1vZCI/e2RpdjpudWxsLG1vZDpuZXcgbCh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bmV3IGwodGhpcy5tb2RuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih0LHIpfSxsLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIsITEpLmRpdn0sbC5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiLCExKS5tb2R9LGwucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITApLm1vZH0sbC5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5kaXZtb2QodCk7aWYoci5tb2QuaXNaZXJvKCkpcmV0dXJuIHIuZGl2O3ZhciBlPXIubW9kLmFicygpLGg9dC5hYnMoKS5pdXNocm4oMSkscz10LndvcmRzWzBdJjEsYT1lLmNtcChoKTtpZihhPDB8fHM9PT0xJiZhPT09MClyZXR1cm4gci5kaXY7dmFyIHU9bmV3IGwoMSk7cmV0dXJuIHUubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZV50Lm5lZ2F0aXZlLHIuZGl2LmlhZGQodSl9LGwucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24odCl7dih0PD02NzEwODg2Myk7Zm9yKHZhciByPSgxPDwyNikldCxlPTAsaD10aGlzLmxlbmd0aC0xO2g+PTA7aC0tKWU9KHIqZSsodGhpcy53b3Jkc1toXXwwKSkldDtyZXR1cm4gZX0sbC5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24odCl7dih0PD02NzEwODg2Myk7Zm9yKHZhciByPTAsZT10aGlzLmxlbmd0aC0xO2U+PTA7ZS0tKXt2YXIgaD0odGhpcy53b3Jkc1tlXXwwKStyKjY3MTA4ODY0O3RoaXMud29yZHNbZV09aC90fDAscj1oJXR9cmV0dXJuIHRoaXMuc3RyaXAoKX0sbC5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHQpfSxsLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHQpe3YodC5uZWdhdGl2ZT09PTApLHYoIXQuaXNaZXJvKCkpO3ZhciByPXRoaXMsZT10LmNsb25lKCk7ci5uZWdhdGl2ZSE9PTA/cj1yLnVtb2QodCk6cj1yLmNsb25lKCk7Zm9yKHZhciBoPW5ldyBsKDEpLHM9bmV3IGwoMCksYT1uZXcgbCgwKSx1PW5ldyBsKDEpLGY9MDtyLmlzRXZlbigpJiZlLmlzRXZlbigpOylyLml1c2hybigxKSxlLml1c2hybigxKSwrK2Y7Zm9yKHZhciBpPWUuY2xvbmUoKSxuPXIuY2xvbmUoKTshci5pc1plcm8oKTspe2Zvcih2YXIgZD0wLG09MTsoci53b3Jkc1swXSZtKT09PTAmJmQ8MjY7KytkLG08PD0xKTtpZihkPjApZm9yKHIuaXVzaHJuKGQpO2QtLSA+MDspKGguaXNPZGQoKXx8cy5pc09kZCgpKSYmKGguaWFkZChpKSxzLmlzdWIobikpLGguaXVzaHJuKDEpLHMuaXVzaHJuKDEpO2Zvcih2YXIgcD0wLE09MTsoZS53b3Jkc1swXSZNKT09PTAmJnA8MjY7KytwLE08PD0xKTtpZihwPjApZm9yKGUuaXVzaHJuKHApO3AtLSA+MDspKGEuaXNPZGQoKXx8dS5pc09kZCgpKSYmKGEuaWFkZChpKSx1LmlzdWIobikpLGEuaXVzaHJuKDEpLHUuaXVzaHJuKDEpO3IuY21wKGUpPj0wPyhyLmlzdWIoZSksaC5pc3ViKGEpLHMuaXN1Yih1KSk6KGUuaXN1YihyKSxhLmlzdWIoaCksdS5pc3ViKHMpKX1yZXR1cm57YSxiOnUsZ2NkOmUuaXVzaGxuKGYpfX0sbC5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKHQpe3YodC5uZWdhdGl2ZT09PTApLHYoIXQuaXNaZXJvKCkpO3ZhciByPXRoaXMsZT10LmNsb25lKCk7ci5uZWdhdGl2ZSE9PTA/cj1yLnVtb2QodCk6cj1yLmNsb25lKCk7Zm9yKHZhciBoPW5ldyBsKDEpLHM9bmV3IGwoMCksYT1lLmNsb25lKCk7ci5jbXBuKDEpPjAmJmUuY21wbigxKT4wOyl7Zm9yKHZhciB1PTAsZj0xOyhyLndvcmRzWzBdJmYpPT09MCYmdTwyNjsrK3UsZjw8PTEpO2lmKHU+MClmb3Ioci5pdXNocm4odSk7dS0tID4wOyloLmlzT2RkKCkmJmguaWFkZChhKSxoLml1c2hybigxKTtmb3IodmFyIGk9MCxuPTE7KGUud29yZHNbMF0mbik9PT0wJiZpPDI2OysraSxuPDw9MSk7aWYoaT4wKWZvcihlLml1c2hybihpKTtpLS0gPjA7KXMuaXNPZGQoKSYmcy5pYWRkKGEpLHMuaXVzaHJuKDEpO3IuY21wKGUpPj0wPyhyLmlzdWIoZSksaC5pc3ViKHMpKTooZS5pc3ViKHIpLHMuaXN1YihoKSl9dmFyIGQ7cmV0dXJuIHIuY21wbigxKT09PTA/ZD1oOmQ9cyxkLmNtcG4oMCk8MCYmZC5pYWRkKHQpLGR9LGwucHJvdG90eXBlLmdjZD1mdW5jdGlvbih0KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB0LmFicygpO2lmKHQuaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHI9dGhpcy5jbG9uZSgpLGU9dC5jbG9uZSgpO3IubmVnYXRpdmU9MCxlLm5lZ2F0aXZlPTA7Zm9yKHZhciBoPTA7ci5pc0V2ZW4oKSYmZS5pc0V2ZW4oKTtoKyspci5pdXNocm4oMSksZS5pdXNocm4oMSk7ZG97Zm9yKDtyLmlzRXZlbigpOylyLml1c2hybigxKTtmb3IoO2UuaXNFdmVuKCk7KWUuaXVzaHJuKDEpO3ZhciBzPXIuY21wKGUpO2lmKHM8MCl7dmFyIGE9cjtyPWUsZT1hfWVsc2UgaWYocz09PTB8fGUuY21wbigxKT09PTApYnJlYWs7ci5pc3ViKGUpfXdoaWxlKCEwKTtyZXR1cm4gZS5pdXNobG4oaCl9LGwucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWdjZCh0KS5hLnVtb2QodCl9LGwucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybih0aGlzLndvcmRzWzBdJjEpPT09MH0sbC5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy53b3Jkc1swXSYxKT09PTF9LGwucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndvcmRzWzBdJnR9LGwucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHQpe3YodHlwZW9mIHQ9PSJudW1iZXIiKTt2YXIgcj10JTI2LGU9KHQtcikvMjYsaD0xPDxyO2lmKHRoaXMubGVuZ3RoPD1lKXJldHVybiB0aGlzLl9leHBhbmQoZSsxKSx0aGlzLndvcmRzW2VdfD1oLHRoaXM7Zm9yKHZhciBzPWgsYT1lO3MhPT0wJiZhPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHU9dGhpcy53b3Jkc1thXXwwO3UrPXMscz11Pj4+MjYsdSY9NjcxMDg4NjMsdGhpcy53b3Jkc1thXT11fXJldHVybiBzIT09MCYmKHRoaXMud29yZHNbYV09cyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxsLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGg9PT0xJiZ0aGlzLndvcmRzWzBdPT09MH0sbC5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih0KXt2YXIgcj10PDA7aWYodGhpcy5uZWdhdGl2ZSE9PTAmJiFyKXJldHVybi0xO2lmKHRoaXMubmVnYXRpdmU9PT0wJiZyKXJldHVybiAxO3RoaXMuc3RyaXAoKTt2YXIgZTtpZih0aGlzLmxlbmd0aD4xKWU9MTtlbHNle3ImJih0PS10KSx2KHQ8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBoPXRoaXMud29yZHNbMF18MDtlPWg9PT10PzA6aDx0Py0xOjF9cmV0dXJuIHRoaXMubmVnYXRpdmUhPT0wPy1lfDA6ZX0sbC5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHQpe2lmKHRoaXMubmVnYXRpdmUhPT0wJiZ0Lm5lZ2F0aXZlPT09MClyZXR1cm4tMTtpZih0aGlzLm5lZ2F0aXZlPT09MCYmdC5uZWdhdGl2ZSE9PTApcmV0dXJuIDE7dmFyIHI9dGhpcy51Y21wKHQpO3JldHVybiB0aGlzLm5lZ2F0aXZlIT09MD8tcnwwOnJ9LGwucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24odCl7aWYodGhpcy5sZW5ndGg+dC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8dC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciByPTAsZT10aGlzLmxlbmd0aC0xO2U+PTA7ZS0tKXt2YXIgaD10aGlzLndvcmRzW2VdfDAscz10LndvcmRzW2VdfDA7aWYoaCE9PXMpe2g8cz9yPS0xOmg+cyYmKHI9MSk7YnJlYWt9fXJldHVybiByfSxsLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KT09PTF9LGwucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT09PTF9LGwucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KT49MH0sbC5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KT49MH0sbC5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk9PT0tMX0sbC5wcm90b3R5cGUubHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wKHQpPT09LTF9LGwucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KTw9MH0sbC5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KTw9MH0sbC5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcG4odCk9PT0wfSxsLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXAodCk9PT0wfSxsLnJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IF8odCl9LGwucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHQpe3JldHVybiB2KCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHYodGhpcy5uZWdhdGl2ZT09PTAsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksdC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHQpfSxsLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHYodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sbC5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlZD10LHRoaXN9LGwucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiB2KCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHQpfSxsLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx0KX0sbC5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsdCl9LGwucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHQpfSxsLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHQpe3JldHVybiB2KHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx0KX0sbC5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHQpe3JldHVybiB2KHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsdCl9LGwucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih0KXtyZXR1cm4gdih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdCksdGhpcy5yZWQubXVsKHRoaXMsdCl9LGwucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLmltdWwodGhpcyx0KX0sbC5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LGwucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxsLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHYodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sbC5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiB2KHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LGwucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiB2KHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxsLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHYodGhpcy5yZWQmJiF0LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx0KX07dmFyIGR0PXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gaHQobyx0KXt0aGlzLm5hbWU9byx0aGlzLnA9bmV3IGwodCwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IGwoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWh0LnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGwobnVsbCk7cmV0dXJuIHQud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx0fSxodC5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih0KXt2YXIgcj10LGU7ZG8gdGhpcy5zcGxpdChyLHRoaXMudG1wKSxyPXRoaXMuaW11bEsocikscj1yLmlhZGQodGhpcy50bXApLGU9ci5iaXRMZW5ndGgoKTt3aGlsZShlPnRoaXMubik7dmFyIGg9ZTx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIGg9PT0wPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6aD4wP3IuaXN1Yih0aGlzLnApOnIuc3RyaXAhPT12b2lkIDA/ci5zdHJpcCgpOnIuX3N0cmlwKCkscn0saHQucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQscil7dC5pdXNocm4odGhpcy5uLDAscil9LGh0LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtyZXR1cm4gdC5pbXVsKHRoaXMuayl9O2Z1bmN0aW9uIGx0KCl7aHQuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdChsdCxodCksbHQucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTQxOTQzMDMsaD1NYXRoLm1pbih0Lmxlbmd0aCw5KSxzPTA7czxoO3MrKylyLndvcmRzW3NdPXQud29yZHNbc107aWYoci5sZW5ndGg9aCx0Lmxlbmd0aDw9OSl7dC53b3Jkc1swXT0wLHQubGVuZ3RoPTE7cmV0dXJufXZhciBhPXQud29yZHNbOV07Zm9yKHIud29yZHNbci5sZW5ndGgrK109YSZlLHM9MTA7czx0Lmxlbmd0aDtzKyspe3ZhciB1PXQud29yZHNbc118MDt0LndvcmRzW3MtMTBdPSh1JmUpPDw0fGE+Pj4yMixhPXV9YT4+Pj0yMix0LndvcmRzW3MtMTBdPWEsYT09PTAmJnQubGVuZ3RoPjEwP3QubGVuZ3RoLT0xMDp0Lmxlbmd0aC09OX0sbHQucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3Qud29yZHNbdC5sZW5ndGhdPTAsdC53b3Jkc1t0Lmxlbmd0aCsxXT0wLHQubGVuZ3RoKz0yO2Zvcih2YXIgcj0wLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIGg9dC53b3Jkc1tlXXwwO3IrPWgqOTc3LHQud29yZHNbZV09ciY2NzEwODg2MyxyPWgqNjQrKHIvNjcxMDg4NjR8MCl9cmV0dXJuIHQud29yZHNbdC5sZW5ndGgtMV09PT0wJiYodC5sZW5ndGgtLSx0LndvcmRzW3QubGVuZ3RoLTFdPT09MCYmdC5sZW5ndGgtLSksdH07ZnVuY3Rpb24gRHQoKXtodC5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ0KER0LGh0KTtmdW5jdGlvbiBDdCgpe2h0LmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnQoQ3QsaHQpO2Z1bmN0aW9uIG10KCl7aHQuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdChtdCxodCksbXQucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0wLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIGg9KHQud29yZHNbZV18MCkqMTkrcixzPWgmNjcxMDg4NjM7aD4+Pj0yNix0LndvcmRzW2VdPXMscj1ofXJldHVybiByIT09MCYmKHQud29yZHNbdC5sZW5ndGgrK109ciksdH0sbC5fcHJpbWU9ZnVuY3Rpb24odCl7aWYoZHRbdF0pcmV0dXJuIGR0W3RdO3ZhciByO2lmKHQ9PT0iazI1NiIpcj1uZXcgbHQ7ZWxzZSBpZih0PT09InAyMjQiKXI9bmV3IER0O2Vsc2UgaWYodD09PSJwMTkyIilyPW5ldyBDdDtlbHNlIGlmKHQ9PT0icDI1NTE5IilyPW5ldyBtdDtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3QpO3JldHVybiBkdFt0XT1yLHJ9O2Z1bmN0aW9uIF8obyl7aWYodHlwZW9mIG89PSJzdHJpbmciKXt2YXIgdD1sLl9wcmltZShvKTt0aGlzLm09dC5wLHRoaXMucHJpbWU9dH1lbHNlIHYoby5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1vLHRoaXMucHJpbWU9bnVsbH1fLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih0KXt2KHQubmVnYXRpdmU9PT0wLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHYodC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sXy5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odCxyKXt2KCh0Lm5lZ2F0aXZlfHIubmVnYXRpdmUpPT09MCwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx2KHQucmVkJiZ0LnJlZD09PXIucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LF8ucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHQpLl9mb3JjZVJlZCh0aGlzKTp0LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LF8ucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtyZXR1cm4gdC5pc1plcm8oKT90LmNsb25lKCk6dGhpcy5tLnN1Yih0KS5fZm9yY2VSZWQodGhpcyl9LF8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LHIpe3RoaXMuX3ZlcmlmeTIodCxyKTt2YXIgZT10LmFkZChyKTtyZXR1cm4gZS5jbXAodGhpcy5tKT49MCYmZS5pc3ViKHRoaXMubSksZS5fZm9yY2VSZWQodGhpcyl9LF8ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCxyKXt0aGlzLl92ZXJpZnkyKHQscik7dmFyIGU9dC5pYWRkKHIpO3JldHVybiBlLmNtcCh0aGlzLm0pPj0wJiZlLmlzdWIodGhpcy5tKSxlfSxfLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCxyKXt0aGlzLl92ZXJpZnkyKHQscik7dmFyIGU9dC5zdWIocik7cmV0dXJuIGUuY21wbigwKTwwJiZlLmlhZGQodGhpcy5tKSxlLl9mb3JjZVJlZCh0aGlzKX0sXy5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0LHIpe3RoaXMuX3ZlcmlmeTIodCxyKTt2YXIgZT10LmlzdWIocik7cmV0dXJuIGUuY21wbigwKTwwJiZlLmlhZGQodGhpcy5tKSxlfSxfLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh0KSx0aGlzLmltb2QodC51c2hsbihyKSl9LF8ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LHIpLHRoaXMuaW1vZCh0LmltdWwocikpfSxfLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LHIpLHRoaXMuaW1vZCh0Lm11bChyKSl9LF8ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW11bCh0LHQuY2xvbmUoKSl9LF8ucHJvdG90eXBlLnNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tdWwodCx0KX0sXy5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih0KXtpZih0LmlzWmVybygpKXJldHVybiB0LmNsb25lKCk7dmFyIHI9dGhpcy5tLmFuZGxuKDMpO2lmKHYociUyPT09MSkscj09PTMpe3ZhciBlPXRoaXMubS5hZGQobmV3IGwoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3codCxlKX1mb3IodmFyIGg9dGhpcy5tLnN1Ym4oMSkscz0wOyFoLmlzWmVybygpJiZoLmFuZGxuKDEpPT09MDspcysrLGguaXVzaHJuKDEpO3YoIWguaXNaZXJvKCkpO3ZhciBhPW5ldyBsKDEpLnRvUmVkKHRoaXMpLHU9YS5yZWROZWcoKSxmPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxpPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoaT1uZXcgbCgyKmkqaSkudG9SZWQodGhpcyk7dGhpcy5wb3coaSxmKS5jbXAodSkhPT0wOylpLnJlZElBZGQodSk7Zm9yKHZhciBuPXRoaXMucG93KGksaCksZD10aGlzLnBvdyh0LGguYWRkbigxKS5pdXNocm4oMSkpLG09dGhpcy5wb3codCxoKSxwPXM7bS5jbXAoYSkhPT0wOyl7Zm9yKHZhciBNPW0sZz0wO00uY21wKGEpIT09MDtnKyspTT1NLnJlZFNxcigpO3YoZzxwKTt2YXIgYz10aGlzLnBvdyhuLG5ldyBsKDEpLml1c2hsbihwLWctMSkpO2Q9ZC5yZWRNdWwoYyksbj1jLnJlZFNxcigpLG09bS5yZWRNdWwobikscD1nfXJldHVybiBkfSxfLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3ZhciByPXQuX2ludm1wKHRoaXMubSk7cmV0dXJuIHIubmVnYXRpdmUhPT0wPyhyLm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHIpLnJlZE5lZygpKTp0aGlzLmltb2Qocil9LF8ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih0LHIpe2lmKHIuaXNaZXJvKCkpcmV0dXJuIG5ldyBsKDEpLnRvUmVkKHRoaXMpO2lmKHIuY21wbigxKT09PTApcmV0dXJuIHQuY2xvbmUoKTt2YXIgZT00LGg9bmV3IEFycmF5KDE8PGUpO2hbMF09bmV3IGwoMSkudG9SZWQodGhpcyksaFsxXT10O2Zvcih2YXIgcz0yO3M8aC5sZW5ndGg7cysrKWhbc109dGhpcy5tdWwoaFtzLTFdLHQpO3ZhciBhPWhbMF0sdT0wLGY9MCxpPXIuYml0TGVuZ3RoKCklMjY7Zm9yKGk9PT0wJiYoaT0yNikscz1yLmxlbmd0aC0xO3M+PTA7cy0tKXtmb3IodmFyIG49ci53b3Jkc1tzXSxkPWktMTtkPj0wO2QtLSl7dmFyIG09bj4+ZCYxO2lmKGEhPT1oWzBdJiYoYT10aGlzLnNxcihhKSksbT09PTAmJnU9PT0wKXtmPTA7Y29udGludWV9dTw8PTEsdXw9bSxmKyssIShmIT09ZSYmKHMhPT0wfHxkIT09MCkpJiYoYT10aGlzLm11bChhLGhbdV0pLGY9MCx1PTApfWk9MjZ9cmV0dXJuIGF9LF8ucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXt2YXIgcj10LnVtb2QodGhpcy5tKTtyZXR1cm4gcj09PXQ/ci5jbG9uZSgpOnJ9LF8ucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciByPXQuY2xvbmUoKTtyZXR1cm4gci5yZWQ9bnVsbCxyfSxsLm1vbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvdCh0KX07ZnVuY3Rpb24gb3Qobyl7Xy5jYWxsKHRoaXMsbyksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9PTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IGwoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9ZnQob3QsXyksb3QucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbW9kKHQudXNobG4odGhpcy5zaGlmdCkpfSxvdC5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5pbW9kKHQubXVsKHRoaXMucmludikpO3JldHVybiByLnJlZD1udWxsLHJ9LG90LnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQscil7aWYodC5pc1plcm8oKXx8ci5pc1plcm8oKSlyZXR1cm4gdC53b3Jkc1swXT0wLHQubGVuZ3RoPTEsdDt2YXIgZT10LmltdWwociksaD1lLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxzPWUuaXN1YihoKS5pdXNocm4odGhpcy5zaGlmdCksYT1zO3JldHVybiBzLmNtcCh0aGlzLm0pPj0wP2E9cy5pc3ViKHRoaXMubSk6cy5jbXBuKDApPDAmJihhPXMuaWFkZCh0aGlzLm0pKSxhLl9mb3JjZVJlZCh0aGlzKX0sb3QucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LHIpe2lmKHQuaXNaZXJvKCl8fHIuaXNaZXJvKCkpcmV0dXJuIG5ldyBsKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgZT10Lm11bChyKSxoPWUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHM9ZS5pc3ViKGgpLml1c2hybih0aGlzLnNoaWZ0KSxhPXM7cmV0dXJuIHMuY21wKHRoaXMubSk+PTA/YT1zLmlzdWIodGhpcy5tKTpzLmNtcG4oMCk8MCYmKGE9cy5pYWRkKHRoaXMubSkpLGEuX2ZvcmNlUmVkKHRoaXMpfSxvdC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmltb2QodC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpO3JldHVybiByLl9mb3JjZVJlZCh0aGlzKX19KSh0eXBlb2YgSXQ+InUifHxJdCxsaSl9KTt2YXIgdnQ9QWkodWkoKSkse0JOOnFpfT12dCxSaT12dC5kZWZhdWx0Pz92dDtleHBvcnR7cWkgYXMgQk4sUmkgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJuLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/hmac-drbg@1.0.1/es2022/hmac-drbg.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.053Z","timestamp":1785138634053,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /hmac-drbg@1.0.1/es2022/hmac-drbg.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/hmac-drbg@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:10:26 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcedc6a569f-OSL\r\ncontent-length: 1508\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3160,"size_decoded":1961,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2614)","md5":"9c21c3cf5b9cc3ac87c08dff8675b9aa","sha1":"f9d093f32f83b16711e38302b902a7dcb3ce4002","sha256":"63a0f1c766fdadcef6627ec6ed9c1362b0b9b1fcc85b6496b4248573544b0c84","sha512":"bb9a6cc959efaf2bdd346eeaed362a53a79a4cbe058b47f934cf4edcec4154d51539a81d32583f9f021e98f74e53768e11bba4f3eed87e8ac463c3742d277ffd","ssdeep":"","tlshash":"f251868d36e6f75117e594c51b3e59036127892d4009a27cb7ccccefa2f2c796922b39","first_seen":"2025-07-08T23:56:54.832987Z","last_seen":"2026-07-27T07:51:47.200136Z","times_seen":24,"resource_available":true,"data":"LyogZXNtLnNoIC0gaG1hYy1kcmJnQDEuMC4xICovCmltcG9ydCphcyBfXzAkIGZyb20iL2hhc2guanNAXjEuMC4zP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL21pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHNAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzIkIGZyb20iL21pbmltYWxpc3RpYy1hc3NlcnRAXjEuMC4wP3RhcmdldD1lczIwMjIiO3ZhciByZXF1aXJlPW49Pntjb25zdCBlPW09PnR5cGVvZiBtLmRlZmF1bHQ8InUiP20uZGVmYXVsdDptLGM9bT0+T2JqZWN0LmFzc2lnbih7X19lc01vZHVsZTp0cnVlfSxtKTtzd2l0Y2gobil7Y2FzZSJoYXNoLmpzIjpyZXR1cm4gZShfXzAkKTtjYXNlIm1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMiOnJldHVybiBlKF9fMSQpO2Nhc2UibWluaW1hbGlzdGljLWFzc2VydCI6cmV0dXJuIGUoX18yJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIHk9T2JqZWN0LmNyZWF0ZTt2YXIgcD1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgZz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgdj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsVj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciB1PSh0PT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eSh0LHtnZXQ6KGUsaSk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTplKVtpXX0pOnQpKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyt0KyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBkPSh0LGUpPT4oKT0+KGV8fHQoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyk7dmFyIHg9KHQsZSxpLHIpPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHMgb2YgZyhlKSkhVi5jYWxsKHQscykmJnMhPT1pJiZwKHQscyx7Z2V0OigpPT5lW3NdLGVudW1lcmFibGU6IShyPV8oZSxzKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiB0fTt2YXIgQT0odCxlLGkpPT4oaT10IT1udWxsP3kodih0KSk6e30seChlfHwhdHx8IXQuX19lc01vZHVsZT9wKGksImRlZmF1bHQiLHt2YWx1ZTp0LGVudW1lcmFibGU6ITB9KTppLHQpKTt2YXIgbD1kKChFLG0pPT57InVzZSBzdHJpY3QiO3ZhciB3PXUoImhhc2guanMiKSxhPXUoIm1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMiKSxjPXUoIm1pbmltYWxpc3RpYy1hc3NlcnQiKTtmdW5jdGlvbiBuKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXJldHVybiBuZXcgbih0KTt0aGlzLmhhc2g9dC5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIXQucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1pbkVudHJvcHk9dC5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgZT1hLnRvQXJyYXkodC5lbnRyb3B5LHQuZW50cm9weUVuY3x8ImhleCIpLGk9YS50b0FycmF5KHQubm9uY2UsdC5ub25jZUVuY3x8ImhleCIpLHI9YS50b0FycmF5KHQucGVycyx0LnBlcnNFbmN8fCJoZXgiKTtjKGUubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl9pbml0KGUsaSxyKX1tLmV4cG9ydHM9bjtuLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihlLGkscil7dmFyIHM9ZS5jb25jYXQoaSkuY29uY2F0KHIpO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCksdGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIGg9MDtoPHRoaXMuVi5sZW5ndGg7aCsrKXRoaXMuS1toXT0wLHRoaXMuVltoXT0xO3RoaXMuX3VwZGF0ZShzKSx0aGlzLl9yZXNlZWQ9MSx0aGlzLnJlc2VlZEludGVydmFsPTI4MTQ3NDk3NjcxMDY1Nn07bi5wcm90b3R5cGUuX2htYWM9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHcuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX07bi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlKXt2YXIgaT10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7ZSYmKGk9aS51cGRhdGUoZSkpLHRoaXMuSz1pLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksZSYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKGUpLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfTtuLnByb3RvdHlwZS5yZXNlZWQ9ZnVuY3Rpb24oZSxpLHIscyl7dHlwZW9mIGkhPSJzdHJpbmciJiYocz1yLHI9aSxpPW51bGwpLGU9YS50b0FycmF5KGUsaSkscj1hLnRvQXJyYXkocixzKSxjKGUubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl91cGRhdGUoZS5jb25jYXQocnx8W10pKSx0aGlzLl9yZXNlZWQ9MX07bi5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oZSxpLHIscyl7aWYodGhpcy5fcmVzZWVkPnRoaXMucmVzZWVkSW50ZXJ2YWwpdGhyb3cgbmV3IEVycm9yKCJSZXNlZWQgaXMgcmVxdWlyZWQiKTt0eXBlb2YgaSE9InN0cmluZyImJihzPXIscj1pLGk9bnVsbCksciYmKHI9YS50b0FycmF5KHIsc3x8ImhleCIpLHRoaXMuX3VwZGF0ZShyKSk7Zm9yKHZhciBoPVtdO2gubGVuZ3RoPGU7KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksaD1oLmNvbmNhdCh0aGlzLlYpO3ZhciBmPWguc2xpY2UoMCxlKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHIpLHRoaXMuX3Jlc2VlZCsrLGEuZW5jb2RlKGYsaSl9fSk7dmFyIG89QShsKCkpLHE9by5kZWZhdWx0Pz9vO2V4cG9ydHtxIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1obWFjLWRyYmcubWpzLm1hcA=="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base256emoji.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.207Z","timestamp":1785138634207,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base256emoji.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcfdc80569f-OSL\r\ncontent-length: 1360\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2789,"size_decoded":1813,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (2694)","md5":"4f816a9f132a22325b81472d46ad8fe9","sha1":"c23afe05c76154b5a5cd0858aae35334456fe4f2","sha256":"7c16b9576b295024837fe5d192f0b854951ac3a7c0be1be8a3c91d5f62505066","sha512":"59da6813a1ba074e31a9cfaf4de81573318ba86cdadc872f320a981cfb4687ad7b95a444e303531fc77ec8c4a48a4232ac3648d81bb28c440305537ad61fae25","ssdeep":"","tlshash":"6f5170ac11d8cad73e3df0e88b5561c976a11f9d6061c725ab27f47336162fce83a890","first_seen":"2025-07-08T23:56:54.624995Z","last_seen":"2026-08-08T17:15:52.210308Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2UyNTZlbW9qaSAqLwppbXBvcnR7ZnJvbSBhcyBBfWZyb20iLi4vZXNtL3NyYy9iYXNlcy9iYXNlLm1qcyI7dmFyIEY9QXJyYXkuZnJvbSgiXHV7MUY2ODB9XHV7MUZBOTB9XHUyNjA0XHV7MUY2RjB9XHV7MUYzMEN9XHV7MUYzMTF9XHV7MUYzMTJ9XHV7MUYzMTN9XHV7MUYzMTR9XHV7MUYzMTV9XHV7MUYzMTZ9XHV7MUYzMTd9XHV7MUYzMTh9XHV7MUYzMER9XHV7MUYzMEZ9XHV7MUYzMEV9XHV7MUY0MDl9XHUyNjAwXHV7MUY0QkJ9XHV7MUY1QTV9XHV7MUY0QkV9XHV7MUY0QkZ9XHV7MUY2MDJ9XHUyNzY0XHV7MUY2MER9XHV7MUY5MjN9XHV7MUY2MEF9XHV7MUY2NEZ9XHV7MUY0OTV9XHV7MUY2MkR9XHV7MUY2MTh9XHV7MUY0NER9XHV7MUY2MDV9XHV7MUY0NEZ9XHV7MUY2MDF9XHV7MUY1MjV9XHV7MUY5NzB9XHV7MUY0OTR9XHV7MUY0OTZ9XHV7MUY0OTl9XHV7MUY2MjJ9XHV7MUY5MTR9XHV7MUY2MDZ9XHV7MUY2NDR9XHV7MUY0QUF9XHV7MUY2MDl9XHUyNjNBXHV7MUY0NEN9XHV7MUY5MTd9XHV7MUY0OUN9XHV7MUY2MTR9XHV7MUY2MEV9XHV7MUY2MDd9XHV7MUYzMzl9XHV7MUY5MjZ9XHV7MUYzODl9XHV7MUY0OUV9XHUyNzBDXHUyNzI4XHV7MUY5Mzd9XHV7MUY2MzF9XHV7MUY2MEN9XHV7MUYzMzh9XHV7MUY2NEN9XHV7MUY2MEJ9XHV7MUY0OTd9XHV7MUY0OUF9XHV7MUY2MEZ9XHV7MUY0OUJ9XHV7MUY2NDJ9XHV7MUY0OTN9XHV7MUY5Mjl9XHV7MUY2MDR9XHV7MUY2MDB9XHV7MUY1QTR9XHV7MUY2MDN9XHV7MUY0QUZ9XHV7MUY2NDh9XHV7MUY0NDd9XHV7MUYzQjZ9XHV7MUY2MTJ9XHV7MUY5MkR9XHUyNzYzXHV7MUY2MUN9XHV7MUY0OEJ9XHV7MUY0NDB9XHV7MUY2MkF9XHV7MUY2MTF9XHV7MUY0QTV9XHV7MUY2NEJ9XHV7MUY2MUV9XHV7MUY2Mjl9XHV7MUY2MjF9XHV7MUY5MkF9XHV7MUY0NEF9XHV7MUY5NzN9XHV7MUY2MjV9XHV7MUY5MjR9XHV7MUY0NDl9XHV7MUY0ODN9XHV7MUY2MzN9XHUyNzBCXHV7MUY2MUF9XHV7MUY2MUR9XHV7MUY2MzR9XHV7MUYzMUZ9XHV7MUY2MkN9XHV7MUY2NDN9XHV7MUYzNDB9XHV7MUYzMzd9XHV7MUY2M0J9XHV7MUY2MTN9XHUyQjUwXHUyNzA1XHV7MUY5N0F9XHV7MUYzMDh9XHV7MUY2MDh9XHV7MUY5MTh9XHV7MUY0QTZ9XHUyNzE0XHV7MUY2MjN9XHV7MUYzQzN9XHV7MUY0OTB9XHUyNjM5XHV7MUYzOEF9XHV7MUY0OTh9XHV7MUY2MjB9XHUyNjFEXHV7MUY2MTV9XHV7MUYzM0F9XHV7MUYzODJ9XHV7MUYzM0J9XHV7MUY2MTB9XHV7MUY1OTV9XHV7MUY0OUR9XHV7MUY2NEF9XHV7MUY2Mzl9XHV7MUY1RTN9XHV7MUY0QUJ9XHV7MUY0ODB9XHV7MUY0NTF9XHV7MUYzQjV9XHV7MUY5MUV9XHV7MUY2MUJ9XHV7MUY1MzR9XHV7MUY2MjR9XHV7MUYzM0N9XHV7MUY2MkJ9XHUyNkJEXHV7MUY5MTl9XHUyNjE1XHV7MUYzQzZ9XHV7MUY5MkJ9XHV7MUY0NDh9XHV7MUY2MkV9XHV7MUY2NDZ9XHV7MUYzN0J9XHV7MUYzNDN9XHV7MUY0MzZ9XHV7MUY0ODF9XHV7MUY2MzJ9XHV7MUYzM0Z9XHV7MUY5RTF9XHV7MUYzODF9XHUyNkExXHV7MUYzMUV9XHV7MUYzODh9XHUyNzRDXHUyNzBBXHV7MUY0NEJ9XHV7MUY2MzB9XHV7MUY5Mjh9XHV7MUY2MzZ9XHV7MUY5MUR9XHV7MUY2QjZ9XHV7MUY0QjB9XHV7MUYzNTN9XHV7MUY0QTJ9XHV7MUY5MUZ9XHV7MUY2NDF9XHV7MUY2QTh9XHV7MUY0QTh9XHV7MUY5MkN9XHUyNzA4XHV7MUYzODB9XHV7MUYzN0F9XHV7MUY5MTN9XHV7MUY2MTl9XHV7MUY0OUZ9XHV7MUYzMzF9XHV7MUY2MTZ9XHV7MUY0NzZ9XHV7MUY5NzR9XHUyNUI2XHUyN0ExXHUyNzUzXHV7MUY0OEV9XHV7MUY0Qjh9XHUyQjA3XHV7MUY2Mjh9XHV7MUYzMUF9XHV7MUY5OEJ9XHV7MUY2Mzd9XHV7MUY1N0F9XHUyNkEwXHV7MUY2NDV9XHV7MUY2MUZ9XHV7MUY2MzV9XHV7MUY0NEV9XHV7MUY5MzJ9XHV7MUY5MjB9XHV7MUY5Mjd9XHV7MUY0Q0N9XHV7MUY1MzV9XHV7MUY0ODV9XHV7MUY5RDB9XHV7MUY0M0V9XHV7MUYzNTJ9XHV7MUY2MTd9XHV7MUY5MTF9XHV7MUYzMEF9XHV7MUY5MkZ9XHV7MUY0Mzd9XHUyNjBFXHV7MUY0QTd9XHV7MUY2MkZ9XHV7MUY0ODZ9XHV7MUY0NDZ9XHV7MUYzQTR9XHV7MUY2NDd9XHV7MUYzNTF9XHUyNzQ0XHV7MUYzMzR9XHV7MUY0QTN9XHV7MUY0Mzh9XHV7MUY0OEN9XHV7MUY0Q0R9XHV7MUY5NDB9XHV7MUY5MjJ9XHV7MUY0NDV9XHV7MUY0QTF9XHV7MUY0QTl9XHV7MUY0NTB9XHV7MUY0Rjh9XHV7MUY0N0J9XHV7MUY5MTB9XHV7MUY5MkV9XHV7MUYzQkN9XHV7MUY5NzV9XHV7MUY2QTl9XHV7MUYzNEV9XHV7MUYzNEF9XHV7MUY0N0N9XHV7MUY0OER9XHV7MUY0RTN9XHV7MUY5NDJ9IiksZT1GLnJlZHVjZSgoRCx1LEMpPT4oRFtDXT11LEQpLFtdKSxyPUYucmVkdWNlKChELHUsQyk9PihEW3UuY29kZVBvaW50QXQoMCldPUMsRCksW10pO2Z1bmN0aW9uIEIoRCl7cmV0dXJuIEQucmVkdWNlKCh1LEMpPT4odSs9ZVtDXSx1KSwiIil9ZnVuY3Rpb24gbyhEKXtsZXQgdT1bXTtmb3IobGV0IEMgb2YgRCl7bGV0IEU9cltDLmNvZGVQb2ludEF0KDApXTtpZihFPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgTm9uLWJhc2UyNTZlbW9qaSBjaGFyYWN0ZXI6ICR7Q31gKTt1LnB1c2goRSl9cmV0dXJuIG5ldyBVaW50OEFycmF5KHUpfXZhciBuPUEoe3ByZWZpeDoiXHV7MUY2ODB9IixuYW1lOiJiYXNlMjU2ZW1vamkiLGVuY29kZTpCLGRlY29kZTpvfSk7ZXhwb3J0e24gYXMgYmFzZTI1NmVtb2ppfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFzZTI1NmVtb2ppLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.1/es2022/esm/src/util/as-uint8array.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.024Z","timestamp":1785138634024,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.1/es2022/esm/src/util/as-uint8array.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@%5E3.0.0/from-string?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dceac5e569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":275,"size_decoded":578,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"8aa9e1cf11d268f3215f1cf9b2f29dd5","sha1":"c3a625b746e66aaca29f12ffd8eac7215ab01b92","sha256":"1befda33aed90514893eeb1c44df26b090a7eda53f7e21a1993e3c9d51b12e69","sha512":"748f9eabb48aea998579a42a1866720d4dfd7a80fd3d076da6c7723f3b964de07d4fb43e119b846eb82bf40f7f52949c433dfc497ecbaa2056589245c5a0e487","ssdeep":"","tlshash":"05d02b428c32547812672c66c4c155cf623a4f38d583c18c44364d5837a70f0d8518ae","first_seen":"2025-07-08T23:56:54.764012Z","last_seen":"2026-08-08T17:15:52.203723Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvZXNtL3NyYy91dGlsL2FzLXVpbnQ4YXJyYXkgKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwpmdW5jdGlvbiBlKHIpe3JldHVybiBfX0J1ZmZlciQhPW51bGw/bmV3IFVpbnQ4QXJyYXkoci5idWZmZXIsci5ieXRlT2Zmc2V0LHIuYnl0ZUxlbmd0aCk6cn1leHBvcnR7ZSBhcyBhc1VpbnQ4QXJyYXl9OwovLyMgc291cmNlTWFwcGluZ1VSTD1hcy11aW50OGFycmF5Lm1qcy5tYXA="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@%5E9.4.2/basics?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.060Z","timestamp":1785138634060,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@%5E9.4.2/basics?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/esm/src/util/bases.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /multiformats@9.9.0/es2022/basics.mjs\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dceec6b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":911,"size_decoded":626,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"cfe74f85ecdac2c1f39f00518efb2e1d","sha1":"0b82203ec555c6ba49581312e6b6a760c542c9da","sha256":"a6e485045a78eafcf021840c3bcdd31815d5a81aab04293797ff328220b57d2f","sha512":"01acf079206035092521a9ff07a9e5e7f7de816f774c38ec93b0603928e560da7acfc3ebf63a48d75c441824ddca6e7921d13b640db7dbc7624bab6b526013b5","ssdeep":"","tlshash":"5f1126134f5e6f7d332d5f88a0e4243557542998dd8015f5bc2e4e31fbb08a4f1526d6","first_seen":"2025-07-08T23:56:54.649415Z","last_seen":"2026-08-08T17:15:51.499723Z","times_seen":119,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2ljcyAqLwppbXBvcnQgIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2Jhc2VzL2Jhc2UxMC5tanMiOwppbXBvcnQgIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2Jhc2VzL2Jhc2UxNi5tanMiOwppbXBvcnQgIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2Jhc2VzL2Jhc2UyLm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvYmFzZXMvYmFzZTI1NmVtb2ppLm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvYmFzZXMvYmFzZTMyLm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvYmFzZXMvYmFzZTM2Lm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvYmFzZXMvYmFzZTU4Lm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvYmFzZXMvYmFzZTY0Lm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvYmFzZXMvYmFzZTgubWpzIjsKaW1wb3J0ICIvbXVsdGlmb3JtYXRzQDkuOS4wL2VzMjAyMi9iYXNlcy9pZGVudGl0eS5tanMiOwppbXBvcnQgIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2NvZGVjcy9qc29uLm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvY29kZWNzL3Jhdy5tanMiOwppbXBvcnQgIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2hhc2hlcy9pZGVudGl0eS5tanMiOwppbXBvcnQgIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2hhc2hlcy9zaGEyLm1qcyI7CmltcG9ydCAiL211bHRpZm9ybWF0c0A5LjkuMC9lczIwMjIvbXVsdGlmb3JtYXRzLm1qcyI7CmV4cG9ydCAqIGZyb20gIi9tdWx0aWZvcm1hdHNAOS45LjAvZXMyMDIyL2Jhc2ljcy5tanMiOwo="}},"time_used":123,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":123,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-assert@1.0.1/es2022/minimalistic-assert.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.062Z","timestamp":1785138634062,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /minimalistic-assert@1.0.1/es2022/minimalistic-assert.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/minimalistic-assert@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dceec6c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":859,"size_decoded":883,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (769)","md5":"c4efdafefe1a42c14774625d59461d4f","sha1":"41cb384110dacdd9ca376b353b47b637c1434020","sha256":"07377d761438c22ed239e538e2b641cce8e0733793f0a98f34594782a6e85829","sha512":"9ab4f69cfc93f93294f68e90909c79d0e0208485e3185885b90cdd05c90850c8a04343432831a908bcae4d03ed56e9517d21084e0d3ddb8c63a0b070903c1e71","ssdeep":"","tlshash":"ac11126525f4dff350fe2989c42d9141b2229e785037e1604bd8c5e6d9e00e74067f77","first_seen":"2025-07-08T23:56:54.587511Z","last_seen":"2026-07-27T07:51:47.181799Z","times_seen":26,"resource_available":true,"data":"LyogZXNtLnNoIC0gbWluaW1hbGlzdGljLWFzc2VydEAxLjAuMSAqLwp2YXIgbD1PYmplY3QuY3JlYXRlO3ZhciBmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgYz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBkPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBtPU9iamVjdC5nZXRQcm90b3R5cGVPZixwPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIHc9KGUscik9PigpPT4ocnx8ZSgocj17ZXhwb3J0czp7fX0pLmV4cG9ydHMsciksci5leHBvcnRzKTt2YXIgcT0oZSxyLHQscyk9PntpZihyJiZ0eXBlb2Ygcj09Im9iamVjdCJ8fHR5cGVvZiByPT0iZnVuY3Rpb24iKWZvcihsZXQgbyBvZiBkKHIpKSFwLmNhbGwoZSxvKSYmbyE9PXQmJmYoZSxvLHtnZXQ6KCk9PnJbb10sZW51bWVyYWJsZTohKHM9YyhyLG8pKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9O3ZhciB4PShlLHIsdCk9Pih0PWUhPW51bGw/bChtKGUpKTp7fSxxKHJ8fCFlfHwhZS5fX2VzTW9kdWxlP2YodCwiZGVmYXVsdCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMH0pOnQsZSkpO3ZhciB1PXcoKGgsbik9PntuLmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUscil7aWYoIWUpdGhyb3cgbmV3IEVycm9yKHJ8fCJBc3NlcnRpb24gZmFpbGVkIil9aS5lcXVhbD1mdW5jdGlvbihyLHQscyl7aWYociE9dCl0aHJvdyBuZXcgRXJyb3Ioc3x8IkFzc2VydGlvbiBmYWlsZWQ6ICIrcisiICE9ICIrdCl9fSk7dmFyIGE9eCh1KCkpLHtlcXVhbDpqfT1hLEE9YS5kZWZhdWx0Pz9hO2V4cG9ydHtBIGFzIGRlZmF1bHQsaiBhcyBlcXVhbH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW1pbmltYWxpc3RpYy1hc3NlcnQubWpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/int@1.0.1/es2022/int.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.170Z","timestamp":1785138634170,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/int@1.0.1/es2022/int.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/int@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcf9c79569f-OSL\r\ncontent-length: 896\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1454,"size_decoded":1348,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1385)","md5":"1f7181340cbff151725e908302240574","sha1":"ddf0d3205c7d764a85380b4d30d75452f87c4355","sha256":"271d597de7ff6dddce5ff76b7f3acb102aa1e0314e1edd86d48b5db848c48d8b","sha512":"0bc80f7d6d26f58bfb71faf042598779ae9c445053dfd49204dd2d6922e7b4ea2cfa72f6f8afee1e5c60661332c55cc3643a157da7ca011f4b504be11ff823d4","ssdeep":"","tlshash":"2d31549921e1f862036708bacd3f6902f75cb9a440bea1d0c310c9f124e0c7f9064dd6","first_seen":"2025-07-08T23:56:54.703593Z","last_seen":"2026-07-27T07:51:47.184545Z","times_seen":110,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9pbnRAMS4wLjEgKi8KdmFyIGE9T2JqZWN0LmNyZWF0ZTt2YXIgcz1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgbT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgRT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsXz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBkPShyLGUpPT4oKT0+KGV8fHIoKGU9e2V4cG9ydHM6e319KS5leHBvcnRzLGUpLGUuZXhwb3J0cyk7dmFyIEk9KHIsZSxmLG4pPT57aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QifHx0eXBlb2YgZT09ImZ1bmN0aW9uIilmb3IobGV0IHUgb2YgbShlKSkhXy5jYWxsKHIsdSkmJnUhPT1mJiZzKHIsdSx7Z2V0OigpPT5lW3VdLGVudW1lcmFibGU6IShuPWMoZSx1KSl8fG4uZW51bWVyYWJsZX0pO3JldHVybiByfTt2YXIgQT0ocixlLGYpPT4oZj1yIT1udWxsP2EoRShyKSk6e30sSShlfHwhcnx8IXIuX19lc01vZHVsZT9zKGYsImRlZmF1bHQiLHt2YWx1ZTpyLGVudW1lcmFibGU6ITB9KTpmLHIpKTt2YXIgbD1kKHQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2Z1bmN0aW9uIE0ocixlKXt2YXIgZj1yPj4+MTYmNjU1MzUsbj1yJjY1NTM1LHU9ZT4+PjE2JjY1NTM1LG89ZSY2NTUzNTtyZXR1cm4gbipvKyhmKm8rbip1PDwxNj4+PjApfDB9dC5tdWw9TWF0aC5pbXVsfHxNO2Z1bmN0aW9uIFMocixlKXtyZXR1cm4gcitlfDB9dC5hZGQ9UztmdW5jdGlvbiBiKHIsZSl7cmV0dXJuIHItZXwwfXQuc3ViPWI7ZnVuY3Rpb24gZyhyLGUpe3JldHVybiByPDxlfHI+Pj4zMi1lfXQucm90bD1nO2Z1bmN0aW9uIGgocixlKXtyZXR1cm4gcjw8MzItZXxyPj4+ZX10LnJvdHI9aDtmdW5jdGlvbiBwKHIpe3JldHVybiB0eXBlb2Ygcj09Im51bWJlciImJmlzRmluaXRlKHIpJiZNYXRoLmZsb29yKHIpPT09cn10LmlzSW50ZWdlcj1OdW1iZXIuaXNJbnRlZ2VyfHxwO3QuTUFYX1NBRkVfSU5URUdFUj05MDA3MTk5MjU0NzQwOTkxO3QuaXNTYWZlSW50ZWdlcj1mdW5jdGlvbihyKXtyZXR1cm4gdC5pc0ludGVnZXIocikmJnI+PS10Lk1BWF9TQUZFX0lOVEVHRVImJnI8PXQuTUFYX1NBRkVfSU5URUdFUn19KTt2YXIgaT1BKGwoKSkse19fZXNNb2R1bGU6eCxtdWw6RyxhZGQ6UixzdWI6VCxyb3RsOlgscm90cjpqLGlzSW50ZWdlcjp2LE1BWF9TQUZFX0lOVEVHRVI6eSxpc1NhZmVJbnRlZ2VyOk99PWksUD1pLmRlZmF1bHQ/P2k7ZXhwb3J0e3kgYXMgTUFYX1NBRkVfSU5URUdFUix4IGFzIF9fZXNNb2R1bGUsUiBhcyBhZGQsUCBhcyBkZWZhdWx0LHYgYXMgaXNJbnRlZ2VyLE8gYXMgaXNTYWZlSW50ZWdlcixHIGFzIG11bCxYIGFzIHJvdGwsaiBhcyByb3RyLFQgYXMgc3VifTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50Lm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-provider@1.0.14/es2022/jsonrpc-provider.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.490Z","timestamp":1785138633490,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-provider@1.0.14/es2022/jsonrpc-provider.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 21:05:32 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcb5bc9569f-OSL\r\ncontent-length: 985\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2158,"size_decoded":1437,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (2058)","md5":"8dbb56daeaf63eaa1f4d919a69f96eb2","sha1":"649712f526957061c724552941cf284f4913f3ac","sha256":"d7abc879ba2ac454de27e997fb116cc8b599b8fb7dc520ab9212a93b923df674","sha512":"3cb630e5878c97ea62cf8558f91c3c9052d26db63b04563712228f9223aa16e34d1b4c5ae290e4df6c5ea66ec6d0fb0fce8cdfb6c7eefa4bc94c344c1a74e038","ssdeep":"","tlshash":"6d419a58a214ad6727eb6118a906471241376cc43706c42c3b3cddf2de3aec0796bbf9","first_seen":"2025-07-08T23:56:54.653333Z","last_seen":"2026-08-08T17:15:51.654047Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy1wcm92aWRlckAxLjAuMTQgKi8KaW1wb3J0e0V2ZW50RW1pdHRlciBhcyBjfWZyb20iL25vZGUvZXZlbnRzLm1qcyI7aW1wb3J0e0lKc29uUnBjUHJvdmlkZXIgYXMgcixmb3JtYXRKc29uUnBjUmVxdWVzdCBhcyBhLGdldEJpZ0ludFJwY0lkIGFzIGgsaXNKc29uUnBjRXJyb3IgYXMgZCxpc0pzb25ScGNSZXNwb25zZSBhcyB2fWZyb20iL0B3YWxsZXRjb25uZWN0L2pzb25ycGMtdXRpbHNAXjEuMC44P3RhcmdldD1lczIwMjIiO3ZhciBvPWNsYXNzIGV4dGVuZHMgcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLmV2ZW50cz1uZXcgYyx0aGlzLmhhc1JlZ2lzdGVyZWRFdmVudExpc3RlbmVycz0hMSx0aGlzLmNvbm5lY3Rpb249dGhpcy5zZXRDb25uZWN0aW9uKGUpLHRoaXMuY29ubmVjdGlvbi5jb25uZWN0ZWQmJnRoaXMucmVnaXN0ZXJFdmVudExpc3RlbmVycygpfWFzeW5jIGNvbm5lY3QoZT10aGlzLmNvbm5lY3Rpb24pe2F3YWl0IHRoaXMub3BlbihlKX1hc3luYyBkaXNjb25uZWN0KCl7YXdhaXQgdGhpcy5jbG9zZSgpfW9uKGUsbil7dGhpcy5ldmVudHMub24oZSxuKX1vbmNlKGUsbil7dGhpcy5ldmVudHMub25jZShlLG4pfW9mZihlLG4pe3RoaXMuZXZlbnRzLm9mZihlLG4pfXJlbW92ZUxpc3RlbmVyKGUsbil7dGhpcy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoZSxuKX1hc3luYyByZXF1ZXN0KGUsbil7cmV0dXJuIHRoaXMucmVxdWVzdFN0cmljdChhKGUubWV0aG9kLGUucGFyYW1zfHxbXSxlLmlkfHxoKCkudG9TdHJpbmcoKSksbil9YXN5bmMgcmVxdWVzdFN0cmljdChlLG4pe3JldHVybiBuZXcgUHJvbWlzZShhc3luYyhpLHMpPT57aWYoIXRoaXMuY29ubmVjdGlvbi5jb25uZWN0ZWQpdHJ5e2F3YWl0IHRoaXMub3BlbigpfWNhdGNoKHQpe3ModCl9dGhpcy5ldmVudHMub24oYCR7ZS5pZH1gLHQ9PntkKHQpP3ModC5lcnJvcik6aSh0LnJlc3VsdCl9KTt0cnl7YXdhaXQgdGhpcy5jb25uZWN0aW9uLnNlbmQoZSxuKX1jYXRjaCh0KXtzKHQpfX0pfXNldENvbm5lY3Rpb24oZT10aGlzLmNvbm5lY3Rpb24pe3JldHVybiBlfW9uUGF5bG9hZChlKXt0aGlzLmV2ZW50cy5lbWl0KCJwYXlsb2FkIixlKSx2KGUpP3RoaXMuZXZlbnRzLmVtaXQoYCR7ZS5pZH1gLGUpOnRoaXMuZXZlbnRzLmVtaXQoIm1lc3NhZ2UiLHt0eXBlOmUubWV0aG9kLGRhdGE6ZS5wYXJhbXN9KX1vbkNsb3NlKGUpe2UmJmUuY29kZT09PTNlMyYmdGhpcy5ldmVudHMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcihgV2ViU29ja2V0IGNvbm5lY3Rpb24gY2xvc2VkIGFibm9ybWFsbHkgd2l0aCBjb2RlOiAke2UuY29kZX0gJHtlLnJlYXNvbj9gKCR7ZS5yZWFzb259KWA6IiJ9YCkpLHRoaXMuZXZlbnRzLmVtaXQoImRpc2Nvbm5lY3QiKX1hc3luYyBvcGVuKGU9dGhpcy5jb25uZWN0aW9uKXt0aGlzLmNvbm5lY3Rpb249PT1lJiZ0aGlzLmNvbm5lY3Rpb24uY29ubmVjdGVkfHwodGhpcy5jb25uZWN0aW9uLmNvbm5lY3RlZCYmdGhpcy5jbG9zZSgpLHR5cGVvZiBlPT0ic3RyaW5nIiYmKGF3YWl0IHRoaXMuY29ubmVjdGlvbi5vcGVuKGUpLGU9dGhpcy5jb25uZWN0aW9uKSx0aGlzLmNvbm5lY3Rpb249dGhpcy5zZXRDb25uZWN0aW9uKGUpLGF3YWl0IHRoaXMuY29ubmVjdGlvbi5vcGVuKCksdGhpcy5yZWdpc3RlckV2ZW50TGlzdGVuZXJzKCksdGhpcy5ldmVudHMuZW1pdCgiY29ubmVjdCIpKX1hc3luYyBjbG9zZSgpe2F3YWl0IHRoaXMuY29ubmVjdGlvbi5jbG9zZSgpfXJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLmhhc1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyc3x8KHRoaXMuY29ubmVjdGlvbi5vbigicGF5bG9hZCIsZT0+dGhpcy5vblBheWxvYWQoZSkpLHRoaXMuY29ubmVjdGlvbi5vbigiY2xvc2UiLGU9PnRoaXMub25DbG9zZShlKSksdGhpcy5jb25uZWN0aW9uLm9uKCJlcnJvciIsZT0+dGhpcy5ldmVudHMuZW1pdCgiZXJyb3IiLGUpKSx0aGlzLmNvbm5lY3Rpb24ub24oInJlZ2lzdGVyX2Vycm9yIixlPT50aGlzLm9uQ2xvc2UoKSksdGhpcy5oYXNSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lcnM9ITApfX07ZXhwb3J0e28gYXMgSnNvblJwY1Byb3ZpZGVyLG8gYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWpzb25ycGMtcHJvdmlkZXIubWpzLm1hcA=="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.586Z","timestamp":1785138633586,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 18:07:51 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbebed569f-OSL\r\ncontent-length: 1394\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2666,"size_decoded":1847,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (2579)","md5":"7881d9340ee25886bed01aa067ae867b","sha1":"881b12f852bb7499c9a4c66595162c6e63cdd1e3","sha256":"e38ef2e5ca5d2efe9025ea413c46b3ca990b729f1d83bd9249ea0b0ba565aea0","sha512":"ba6838fdebcd448c9dda60fbe819d1c4a9f9311e127c6fda6875d3c6823d3b83042a2f8fb15a59ce05831bb89849a81dfe3544e1ef17c838f05c83e92a7bd436","ssdeep":"","tlshash":"605154def5d1f4799369e0f1c04be91b773c35d6228b4c24692586867a70060cb73fa6","first_seen":"2025-07-08T23:56:54.658506Z","last_seen":"2026-07-27T07:51:47.201721Z","times_seen":104,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvcmVsYXktYXV0aEAxLjAuNCAqLwppbXBvcnQqYXMgRCBmcm9tIi9Ac3RhYmxlbGliL2VkMjU1MTlAXjEuMC4yP3RhcmdldD1lczIwMjIiO2ltcG9ydHtyYW5kb21CeXRlcyBhcyBQfWZyb20iL0BzdGFibGVsaWIvcmFuZG9tQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7ZnJvbU1pbGlzZWNvbmRzIGFzIGp9ZnJvbSIvQHdhbGxldGNvbm5lY3QvdGltZUBeMS4wLjI/dGFyZ2V0PWVzMjAyMiI7dmFyIGY9IkVkRFNBIixtPSJKV1QiLGk9Ii4iLEU9ImJhc2U2NHVybCIsVD0idXRmOCIsST0idXRmOCIseD0iOiIsbD0iZGlkIix5PSJrZXkiLGE9ImJhc2U1OGJ0YyIsQz0ieiIsTj0iSzM2IixoPTMyLE09MzI7aW1wb3J0e2NvbmNhdCBhcyBHfWZyb20iL3VpbnQ4YXJyYXlzQF4zLjAuMC9jb25jYXQ/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e3RvU3RyaW5nIGFzIHB9ZnJvbSIvdWludDhhcnJheXNAXjMuMC4wL3RvLXN0cmluZz90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7ZnJvbVN0cmluZyBhcyBjfWZyb20iL3VpbnQ4YXJyYXlzQF4zLjAuMC9mcm9tLXN0cmluZz90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7c2FmZUpzb25QYXJzZSBhcyBSLHNhZmVKc29uU3RyaW5naWZ5IGFzIFV9ZnJvbSIvQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtmdW5jdGlvbiB1KGUpe3JldHVybiBSKHAoYyhlLEUpLFQpKX1mdW5jdGlvbiBfKGUpe3JldHVybiBwKGMoVShlKSxUKSxFKX1mdW5jdGlvbiBnKGUpe2xldCBvPWMoTixhKSx0PUMrcChHKFtvLGVdKSxhKTtyZXR1cm5bbCx5LHRdLmpvaW4oeCl9ZnVuY3Rpb24gTChlKXtsZXRbbyx0LHJdPWUuc3BsaXQoeCk7aWYobyE9PWx8fHQhPT15KXRocm93IG5ldyBFcnJvcignSXNzdWVyIG11c3QgYmUgYSBESUQgd2l0aCBtZXRob2QgImtleSInKTtpZihyLnNsaWNlKDAsMSkhPT1DKXRocm93IG5ldyBFcnJvcigiSXNzdWVyIG11c3QgYmUgYSBrZXkgaW4gbXVsaWNvZGVjIGZvcm1hdCIpO2xldCBuPWMoci5zbGljZSgxKSxhKTtpZihwKG4uc2xpY2UoMCwyKSxhKSE9PU4pdGhyb3cgbmV3IEVycm9yKCdJc3N1ZXIgbXVzdCBiZSBhIHB1YmxpYyBrZXkgd2l0aCB0eXBlICJFZDI1NTE5IicpO2xldCBkPW4uc2xpY2UoMik7aWYoZC5sZW5ndGghPT0zMil0aHJvdyBuZXcgRXJyb3IoIklzc3VlciBtdXN0IGJlIGEgcHVibGljIGtleSB3aXRoIGxlbmd0aCAzMiBieXRlcyIpO3JldHVybiBkfWZ1bmN0aW9uIEsoZSl7cmV0dXJuIHAoZSxFKX1mdW5jdGlvbiBIKGUpe3JldHVybiBjKGUsRSl9ZnVuY3Rpb24gYihlKXtyZXR1cm4gYyhbXyhlLmhlYWRlciksXyhlLnBheWxvYWQpXS5qb2luKGkpLEkpfWZ1bmN0aW9uIHooZSl7bGV0IG89cChlLEkpLnNwbGl0KGkpLHQ9dShvWzBdKSxyPXUob1sxXSk7cmV0dXJue2hlYWRlcjp0LHBheWxvYWQ6cn19ZnVuY3Rpb24gUyhlKXtyZXR1cm5bXyhlLmhlYWRlciksXyhlLnBheWxvYWQpLEsoZS5zaWduYXR1cmUpXS5qb2luKGkpfWZ1bmN0aW9uIFcoZSl7bGV0IG89ZS5zcGxpdChpKSx0PXUob1swXSkscj11KG9bMV0pLHM9SChvWzJdKSxuPWMoby5zbGljZSgwLDIpLmpvaW4oaSksSSk7cmV0dXJue2hlYWRlcjp0LHBheWxvYWQ6cixzaWduYXR1cmU6cyxkYXRhOm59fWZ1bmN0aW9uIGVlKGU9UCgzMikpe3JldHVybiBELmdlbmVyYXRlS2V5UGFpckZyb21TZWVkKGUpfWFzeW5jIGZ1bmN0aW9uIG9lKGUsbyx0LHIscz1qKERhdGUubm93KCkpKXtsZXQgbj17YWxnOmYsdHlwOm19LEo9ZyhyLnB1YmxpY0tleSksZD1zK3QsTz17aXNzOkosc3ViOmUsYXVkOm8saWF0OnMsZXhwOmR9LHc9Yih7aGVhZGVyOm4scGF5bG9hZDpPfSksQT1ELnNpZ24oci5zZWNyZXRLZXksdyk7cmV0dXJuIFMoe2hlYWRlcjpuLHBheWxvYWQ6TyxzaWduYXR1cmU6QX0pfWFzeW5jIGZ1bmN0aW9uIHRlKGUpe2xldHtoZWFkZXI6byxwYXlsb2FkOnQsZGF0YTpyLHNpZ25hdHVyZTpzfT1XKGUpO2lmKG8uYWxnIT09Znx8by50eXAhPT1tKXRocm93IG5ldyBFcnJvcigiSldUIG11c3QgdXNlIEVkRFNBIGFsZ29yaXRobSIpO2xldCBuPUwodC5pc3MpO3JldHVybiBELnZlcmlmeShuLHIscyl9ZXhwb3J0e0kgYXMgREFUQV9FTkNPRElORyx4IGFzIERJRF9ERUxJTUlURVIseSBhcyBESURfTUVUSE9ELGwgYXMgRElEX1BSRUZJWCxUIGFzIEpTT05fRU5DT0RJTkcsaSBhcyBKV1RfREVMSU1JVEVSLEUgYXMgSldUX0VOQ09ESU5HLGYgYXMgSldUX0lSSURJVU1fQUxHLG0gYXMgSldUX0lSSURJVU1fVFlQLE0gYXMgS0VZX1BBSVJfU0VFRF9MRU5HVEgsQyBhcyBNVUxUSUNPREVDX0VEMjU1MTlfQkFTRSxhIGFzIE1VTFRJQ09ERUNfRUQyNTUxOV9FTkNPRElORyxOIGFzIE1VTFRJQ09ERUNfRUQyNTUxOV9IRUFERVIsaCBhcyBNVUxUSUNPREVDX0VEMjU1MTlfTEVOR1RILHogYXMgZGVjb2RlRGF0YSxMIGFzIGRlY29kZUlzcyx1IGFzIGRlY29kZUpTT04sVyBhcyBkZWNvZGVKV1QsSCBhcyBkZWNvZGVTaWcsYiBhcyBlbmNvZGVEYXRhLGcgYXMgZW5jb2RlSXNzLF8gYXMgZW5jb2RlSlNPTixTIGFzIGVuY29kZUpXVCxLIGFzIGVuY29kZVNpZyxlZSBhcyBnZW5lcmF0ZUtleVBhaXIsb2UgYXMgc2lnbkpXVCx0ZSBhcyB2ZXJpZnlKV1R9OwovLyMgc291cmNlTWFwcGluZ1VSTD1yZWxheS1hdXRoLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/environment@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.660Z","timestamp":1785138633660,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/environment@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/dist/esm/env.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/environment@1.0.1/es2022/environment.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/environment@1.0.1/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc6bf3569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":275,"size_decoded":697,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"7946857ff32460266f127afaf0a522c1","sha1":"11825e97f4410e27488392308e8a085b926187a2","sha256":"7cee7392f30be8743b4dd5babeac00ab85b5497fd31318d7abbdb0cce78b06b0","sha512":"566b37f64f9bcab0a75205b77737bea31547c71b2c87c66c998c347867dc604773e30c2e949a8493de880dc2fe886c88c99091f767103b6b27da3b9196201865","ssdeep":"","tlshash":"05d05e4141b3ca2533316a84862a827e5ab3834edec621ac17a30225f1ab6a584983e7","first_seen":"2025-07-08T23:56:54.600859Z","last_seen":"2026-08-08T17:15:52.280091Z","times_seen":123,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvZW52aXJvbm1lbnRAMS4wLjEgKi8KaW1wb3J0ICIvbm9kZS9wcm9jZXNzLm1qcyI7CmltcG9ydCAiL3RzbGliQDEuMTQuMS9lczIwMjIvdHNsaWIubWpzIjsKZXhwb3J0ICogZnJvbSAiL0B3YWxsZXRjb25uZWN0L2Vudmlyb25tZW50QDEuMC4xL2VzMjAyMi9lbnZpcm9ubWVudC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0B3YWxsZXRjb25uZWN0L2Vudmlyb25tZW50QDEuMC4xL2VzMjAyMi9lbnZpcm9ubWVudC5tanMiOwo="}},"time_used":118,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":118,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/node/tty.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.674Z","timestamp":1785138633674,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /node/tty.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/node/process.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=86400\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\netag: W/\"v137_7\"\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16522\r\ncf-ray: a21a0dcc7bf5569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":685,"size_decoded":712,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (684)","md5":"dc159c105e1b73c18cfd63a84cc154ec","sha1":"347664300100736360aeda59495f5017a852a81f","sha256":"c66ff4b406bad449bfb2ced355f15badf16f4d9e035d2d300e33b5aeee64e3be","sha512":"96f99c368bef6857a0e9006efdc8ac0585af1bca468adb103b0c626ff5cada09eefeb07b317d6be3e71915f8c1a1412d4927fb743e4ed59e54c6e82af1b9d50a","ssdeep":"","tlshash":"cf01fef930f7b57246bb047444728a07f388e8f0b49ec4a0ba6599b43c655ced131676","first_seen":"2025-10-29T19:17:04.320253Z","last_seen":"2026-08-13T02:06:35.234475Z","times_seen":700,"resource_available":true,"data":"dmFyIG89Y2xhc3N7ZmQ7aXNSYXc9ITE7aXNUVFk9ITE7Y29uc3RydWN0b3IodCl7dGhpcy5mZD10fXNldFJhd01vZGUodCl7cmV0dXJuIHRoaXMuaXNSYXc9dCx0aGlzfX0scz1jbGFzc3tmZDtjb2x1bW5zPTgwO3Jvd3M9MjQ7aXNUVFk9ITE7Y29uc3RydWN0b3IodCl7dGhpcy5mZD10fWNsZWFyTGluZSh0LHIpe3JldHVybiByJiZyKCksITF9Y2xlYXJTY3JlZW5Eb3duKHQpe3JldHVybiB0JiZ0KCksITF9Y3Vyc29yVG8odCxyLGUpe3JldHVybiBlJiZ0eXBlb2YgZT09ImZ1bmN0aW9uIiYmZSgpLCExfW1vdmVDdXJzb3IodCxyLGUpe3JldHVybiBlJiZlKCksITF9Z2V0Q29sb3JEZXB0aCh0KXtyZXR1cm4gMX1oYXNDb2xvcnModCxyKXtyZXR1cm4hMX1nZXRXaW5kb3dTaXplKCl7cmV0dXJuW3RoaXMuY29sdW1ucyx0aGlzLnJvd3NdfXdyaXRlKHQscixlKXt0IGluc3RhbmNlb2YgVWludDhBcnJheSYmKHQ9bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHQpKTt0cnl7Y29uc29sZS5sb2codCl9Y2F0Y2h7fXJldHVybiBlJiZ0eXBlb2YgZT09ImZ1bmN0aW9uIiYmZSgpLCExfX0sYT1mdW5jdGlvbigpe3JldHVybiExfSxjPXtSZWFkU3RyZWFtOm8sV3JpdGVTdHJlYW06cyxpc2F0dHk6YX07ZXhwb3J0e28gYXMgUmVhZFN0cmVhbSxzIGFzIFdyaXRlU3RyZWFtLGMgYXMgZGVmYXVsdCxhIGFzIGlzYXR0eX07Cg=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/chacha@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.712Z","timestamp":1785138633712,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/chacha@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/chacha@1.0.1/es2022/chacha.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/chacha@1.0.1/lib/chacha.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccbc07569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":267,"size_decoded":673,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"cf9ee817ef7d25e0b2a63258aaef0cf2","sha1":"a8061d4f808f66d19f724d9f5f16ac03561a5807","sha256":"187a005bd2043bd3c1ae675a621029923603d60f1f152a67a44b8905b5deb12a","sha512":"f345a85923bb0c653c82f0fab8201140a91fef6e46a30d7b488ef29c6853b8e5ddf1d28eb4d7bf8ab1c3ef076241c73c6f26d18e2e8ebd11269456daab91b587","ssdeep":"","tlshash":"13d05b29464fe6a8b320bcf5d3b5f33643710448a4730cac1995c7115086c854822fe2","first_seen":"2025-07-08T23:56:54.603011Z","last_seen":"2026-07-27T07:51:47.191111Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9jaGFjaGFAMS4wLjEgKi8KaW1wb3J0ICIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9jaGFjaGFAMS4wLjEvZXMyMDIyL2NoYWNoYS5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0BzdGFibGVsaWIvY2hhY2hhQDEuMC4xL2VzMjAyMi9jaGFjaGEubWpzIjsK"}},"time_used":123,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":123,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/esm/src/util/bases.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.866Z","timestamp":1785138633866,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/esm/src/util/bases.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/from-string.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:44 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dcdac30569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":689,"size_decoded":810,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (602)","md5":"e66962e99ce86882dac884154d62780b","sha1":"7fdb1fb1a51340fadb536f8732a6d3524e830029","sha256":"4779e7e91b121a58d4d9a8ef3476cccb52db24fe0dd0fa035164764d0a139da3","sha512":"5acb7525fd93e5569d304c3c93863b11f7adf4a0e9f2d1e2e14272145a0d0f77d3c3ac1dce0af88308c21bd13105297acd2206dd03d9a9d88221e3dcffe61cbb","ssdeep":"","tlshash":"660144f92e7670e383a611d10a86900ec4587fdcbd1708e6bd844f2b13019d088d7f30","first_seen":"2025-07-08T23:56:54.775459Z","last_seen":"2026-07-27T07:51:47.220347Z","times_seen":101,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvZXNtL3NyYy91dGlsL2Jhc2VzICovCmltcG9ydHtiYXNlcyBhcyBvfWZyb20iL211bHRpZm9ybWF0c0BeOS40LjIvYmFzaWNzP3RhcmdldD1lczIwMjIiO2ltcG9ydHthbGxvY1Vuc2FmZSBhcyBzfWZyb20iLi4vLi4vLi4vYWxsb2MubWpzIjtmdW5jdGlvbiBkKGUsdCxuLGkpe3JldHVybntuYW1lOmUscHJlZml4OnQsZW5jb2Rlcjp7bmFtZTplLHByZWZpeDp0LGVuY29kZTpufSxkZWNvZGVyOntkZWNvZGU6aX19fXZhciBjPWQoInV0ZjgiLCJ1IixlPT4idSIrbmV3IFRleHREZWNvZGVyKCJ1dGY4IikuZGVjb2RlKGUpLGU9Pm5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShlLnN1YnN0cmluZygxKSkpLHI9ZCgiYXNjaWkiLCJhIixlPT57bGV0IHQ9ImEiO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZVtuXSk7cmV0dXJuIHR9LGU9PntlPWUuc3Vic3RyaW5nKDEpO2xldCB0PXMoZS5sZW5ndGgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXRbbl09ZS5jaGFyQ29kZUF0KG4pO3JldHVybiB0fSksdT17dXRmODpjLCJ1dGYtOCI6YyxoZXg6by5iYXNlMTYsbGF0aW4xOnIsYXNjaWk6cixiaW5hcnk6ciwuLi5vfSxsPXU7ZXhwb3J0e2wgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2VzLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/equals.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.734Z","timestamp":1785138633734,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/equals.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dccdc11569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":234,"size_decoded":559,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text","md5":"12c55c335d0942feecf7e0d1271d0718","sha1":"ce96070d2cd525c945a6192d0540f3f6fadc789b","sha256":"5a1a92b743782b349542a48dc831436226cd74dd70a2c13695bb6c7bda2b63d9","sha512":"eafd73d0eef8c91fa2862908a3f157c394c6715e3ad7bd41454a7e2dcc629b38e12c952637200727fadcfcab2f6deb2659c68c22e91d098ad0624d2bcb70ffd9","ssdeep":"","tlshash":"acd0a7d571d715bf52d069dca442c245f00a4e91e20c094cf513244d5c7b6a5f4f6cfc","first_seen":"2025-07-08T23:56:54.777807Z","last_seen":"2026-07-27T07:51:47.172735Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvZXF1YWxzICovCmZ1bmN0aW9uIG4oZSxyKXtpZihlPT09cilyZXR1cm4hMDtpZihlLmJ5dGVMZW5ndGghPT1yLmJ5dGVMZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB0PTA7dDxlLmJ5dGVMZW5ndGg7dCsrKWlmKGVbdF0hPT1yW3RdKXJldHVybiExO3JldHVybiEwfWV4cG9ydHtuIGFzIGVxdWFsc307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWVxdWFscy5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/heartbeat@1.2.2/es2022/heartbeat.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.781Z","timestamp":1785138633781,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/heartbeat@1.2.2/es2022/heartbeat.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16520\r\ncf-ray: a21a0dcd2c26569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":963,"size_decoded":868,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (878)","md5":"d353b2e420e0dd3f26c59f2a0b3c99c8","sha1":"71ca0dd285513dd1a04fa099af7c85da63c71fc2","sha256":"d4d8817d91ef5554722c95c5f017b0ffab4feff40d1ae8b272ee2087a44556af","sha512":"6d9e64c2a2b486dc7ec25858cfd27a098d58ae70028f27422289980bc9eab0a90d962fe0533fb5df5c7ad76edb21d360d0ffab34e66b3cbc074ffdd75244b6a4","ssdeep":"","tlshash":"a9110ba8a323cdbe05bc49eec2014253623228c5721b404cf364bcf29ab6dc485a4ff2","first_seen":"2025-07-08T23:56:54.750285Z","last_seen":"2026-08-08T17:15:51.62012Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvaGVhcnRiZWF0QDEuMi4yICovCmltcG9ydHtFdmVudEVtaXR0ZXIgYXMgcn1mcm9tIi9ub2RlL2V2ZW50cy5tanMiO2ltcG9ydHtGSVZFX1NFQ09ORFMgYXMgbyx0b01pbGlzZWNvbmRzIGFzIGx9ZnJvbSIvQHdhbGxldGNvbm5lY3QvdGltZUBeMS4wLjI/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e0lFdmVudHMgYXMgdn1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9ldmVudHNAXjEuMC4xP3RhcmdldD1lczIwMjIiO3ZhciBzPWNsYXNzIGV4dGVuZHMgdntjb25zdHJ1Y3Rvcih0KXtzdXBlcigpfX0sbj1vLGM9e3B1bHNlOiJoZWFydGJlYXRfcHVsc2UifSxhPWNsYXNzIGkgZXh0ZW5kcyBze2NvbnN0cnVjdG9yKHQpe3N1cGVyKHQpLHRoaXMuZXZlbnRzPW5ldyByLHRoaXMuaW50ZXJ2YWw9bix0aGlzLmludGVydmFsPXQ/LmludGVydmFsfHxufXN0YXRpYyBhc3luYyBpbml0KHQpe2xldCBlPW5ldyBpKHQpO3JldHVybiBhd2FpdCBlLmluaXQoKSxlfWFzeW5jIGluaXQoKXthd2FpdCB0aGlzLmluaXRpYWxpemUoKX1zdG9wKCl7Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsUmVmKX1vbih0LGUpe3RoaXMuZXZlbnRzLm9uKHQsZSl9b25jZSh0LGUpe3RoaXMuZXZlbnRzLm9uY2UodCxlKX1vZmYodCxlKXt0aGlzLmV2ZW50cy5vZmYodCxlKX1yZW1vdmVMaXN0ZW5lcih0LGUpe3RoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKHQsZSl9YXN5bmMgaW5pdGlhbGl6ZSgpe3RoaXMuaW50ZXJ2YWxSZWY9c2V0SW50ZXJ2YWwoKCk9PnRoaXMucHVsc2UoKSxsKHRoaXMuaW50ZXJ2YWwpKX1wdWxzZSgpe3RoaXMuZXZlbnRzLmVtaXQoYy5wdWxzZSl9fTtleHBvcnR7YyBhcyBIRUFSVEJFQVRfRVZFTlRTLG4gYXMgSEVBUlRCRUFUX0lOVEVSVkFMLGEgYXMgSGVhcnRCZWF0LHMgYXMgSUhlYXJ0QmVhdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYXJ0YmVhdC5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bignumber@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.946Z","timestamp":1785138633946,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/bignumber@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/constants@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/bignumber@5.8.0/es2022/bignumber.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/bignumber@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce2c3f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":261,"size_decoded":695,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"ce2fc4708fa23bccbddc34bfa472d008","sha1":"e09588cdf26f1443bee31c8f0e0529f1185cd076","sha256":"608a43737b84029cebb41f30bb89a7a225b1a2064ae15e7d2034c804b9dcdf7f","sha512":"e3c54f6c55e53b78397702b843dff48b1e355bfca0979d5c1e5e8a5d538f45115edd1d9b49f8b864687876cb29cd204c04828bc3e9bc0b533c28880266a2ccee","ssdeep":"","tlshash":"1fd017a7c119a6dc634e1bec90a8a73ca23b8094d686e0be5824cb73938311d26615da","first_seen":"2025-07-08T23:56:54.682227Z","last_seen":"2026-07-27T07:51:47.172236Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYmlnbnVtYmVyQDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvYm4uanNAXjUuMi4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQGV0aGVyc3Byb2plY3QvYmlnbnVtYmVyQDUuOC4wL2VzMjAyMi9iaWdudW1iZXIubWpzIjsK"}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"csp.secureserver.net/eventbus/web?clientid=b18ef4f046435b64a469b32c3c1c20a3","fqdn":"csp.secureserver.net","domain":"secureserver.net","tld":"net"},"ip":{"addr":"23.44.47.70","port":443,"asn":16625,"as":"AKAMAI-AS","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.540Z","timestamp":1785138634540,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","key_group_name":"P256","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.2","cert":{"subject":{"commonName":"*.secureserver.net","organization":""},"issuer":{"commonName":"Starfield Secure Certificate Authority - G2","organization":"Starfield Technologies, Inc."},"validity":{"start":"Thu, 23 Oct 2025 00:07:48 GMT","end":"Tue, 24 Nov 2026 00:07:48 GMT"},"fingerprint":{"sha1":"0C:85:75:97:2A:6F:2B:92:48:28:1A:FB:30:8A:C4:98:A7:9E:26:CE","sha256":"2F:4B:65:33:11:10:9D:A1:94:4B:5A:5D:40:E6:63:70:B6:7E:1A:7F:E7:90:E4:E8:F4:4A:37:2E:94:17:64:AB"}}},"request":{"raw":"POST /eventbus/web?clientid=b18ef4f046435b64a469b32c3c1c20a3 HTTP/1.1\r\nHost: csp.secureserver.net\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\nContent-Type: text/plain;charset=UTF-8\r\nReferer: https://mail.usdt-transfer.info/\r\nContent-Length: 1067\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":1067,"data":"{\"schemaId\":\"urn:shared:user:events:/v1\",\"data\":[{\"global\":{\"traceId\":\"9b47ff5e226a472e867f7eaec201f58d\",\"client\":{\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\",\"sdk\":{\"name\":\"scc-c2\",\"version\":\"1.3.2\"},\"device\":{\"viewportWidth\":1280,\"viewportHeight\":1024,\"screenResolutionWidth\":1280,\"screenResolutionHeight\":1024}},\"page\":{\"traceId\":\"9b47ff5e226a472e867f7eaec201f58d\",\"host\":\"mail.usdt-transfer.info\",\"path\":\"/\",\"location\":\"https://mail.usdt-transfer.info/\",\"referrer\":\"\",\"sessionPageViewCount\":1},\"context\":{\"userType\":\"c2\",\"visitorId\":\"f12344d9-1122-44ec-942d-fbb6fdb4ecd7\",\"sessionId\":\"f12344d9-1122-44ec-942d-fbb6fdb4ecd7\"}},\"events\":[{\"schemaId\":\"urn:shared:user:event:/data-platform/signals/page-view/v1\",\"data\":{\"eventCreationTimestamp\":\"2026-07-27T07:50:33.435Z\",\"forensics\":{\"traceIdAdopted\":false},\"traffic\":{\"pageLevelProperties\":{\"ap\":\"cpbh-mt\",\"server\":\"p3plmcpnl494349\",\"dcenter\":\"p3\",\"cp_id\":\"10956719\",\"cp_cl\":\"8\"},\"customProperties\":{}},\"producerEventId\":\"b3e0a0e9-f1bb-4574-9fba-c8b929ff1af7\"}}]}]}"}},"response":{"raw":"HTTP/1.1 202 Accepted\r\nContent-Type: application/json\r\nContent-Length: 2\r\nAccess-Control-Allow-Origin: *\r\nx-bus-trace-id: 108106726430475502082415914231212556471\r\nx-envoy-upstream-service-time: 82\r\nx-error-info: 0\r\nx-request-id: a4a19eef-3ce8-4ab6-8ecf-ac7baa3926a4\r\nExpires: Mon, 27 Jul 2026 07:50:34 GMT\r\nCache-Control: max-age=0, no-cache, no-store\r\nPragma: no-cache\r\nDate: Mon, 27 Jul 2026 07:50:34 GMT\r\nConnection: keep-alive\r\nStrict-Transport-Security: max-age=86400 ; includeSubDomains ; preload\r\n\r\n","headers":null,"cookies":null,"status_code":"202","status_text":"Accepted","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":"Envoy","description":"Envoy is an open-source edge and service proxy, designed for cloud-native applications.","website":"https://www.envoyproxy.io/","common_platform_enumeration":"cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:*","icon":"Envoy.png","categories":["Reverse proxies"]}],"data":{"size":2,"size_decoded":508,"mime_type":"application/json","magic":"JSON text data","md5":"99914b932bd37a50b983c5e7c90ae93b","sha1":"bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f","sha256":"44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","sha512":"27c74670adb75075fad058d5ceaf7b20c4e7786c83bae8a32f626f9782af34c9a33c2046ef60fd2a7878d378e29fec851806bbd9a67878f3a9f1cda4830763fd","ssdeep":"","tlshash":"c7100000000000c00000000c00000000000000000c0000000000000000000000000000","first_seen":"2023-03-07T01:15:26Z","last_seen":"2026-08-13T11:47:53.470947Z","times_seen":759845,"resource_available":true,"data":"e30="}},"time_used":181,"timings":{"blocked":-1,"dns":2,"connect":1,"send":0,"wait":170,"receive":0,"ssl":8},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bignumber@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.694Z","timestamp":1785138633694,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/bignumber@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/bignumber@5.8.0/es2022/bignumber.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/bignumber@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc9bff569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":261,"size_decoded":695,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"ce2fc4708fa23bccbddc34bfa472d008","sha1":"e09588cdf26f1443bee31c8f0e0529f1185cd076","sha256":"608a43737b84029cebb41f30bb89a7a225b1a2064ae15e7d2034c804b9dcdf7f","sha512":"e3c54f6c55e53b78397702b843dff48b1e355bfca0979d5c1e5e8a5d538f45115edd1d9b49f8b864687876cb29cd204c04828bc3e9bc0b533c28880266a2ccee","ssdeep":"","tlshash":"1fd017a7c119a6dc634e1bec90a8a73ca23b8094d686e0be5824cb73938311d26615da","first_seen":"2025-07-08T23:56:54.682227Z","last_seen":"2026-07-27T07:51:47.172236Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYmlnbnVtYmVyQDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvYm4uanNAXjUuMi4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQGV0aGVyc3Byb2plY3QvYmlnbnVtYmVyQDUuOC4wL2VzMjAyMi9iaWdudW1iZXIubWpzIjsK"}},"time_used":126,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":126,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/keccak256@%5E5.8.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.952Z","timestamp":1785138633952,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/keccak256@%5E5.8.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/address@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/keccak256@5.8.0/es2022/keccak256.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/keccak256@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce3c41569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":213,"size_decoded":699,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d46addd972d6377a6fbd0c4525a7c067","sha1":"b56250e577bad60bc2ba42c1609b68509560862f","sha256":"848bd4f140123d96a707fc7763e062df5b673852e08b1c55660b1e65c3fe9ebd","sha512":"7e4ecf7af2ccde6700c4dfd2ede98e37ca73e99fed3b325f1d777a284d3a685797823b51076f3e011e15df744eef9611052d94dfbc9229288610a117fd910d69","ssdeep":"","tlshash":"0cd0a7a380aa45cc72592fa9401cd57ce13a4244c14060d67116c631d1c3529a2302e6","first_seen":"2025-07-08T23:56:54.685706Z","last_seen":"2026-07-27T07:51:47.253782Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKaW1wb3J0ICIvanMtc2hhM0AwLjguMC9lczIwMjIvanMtc2hhMy5tanMiOwpleHBvcnQgKiBmcm9tICIvQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QDUuOC4wL2VzMjAyMi9rZWNjYWsyNTYubWpzIjsK"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.jsdelivr.net/npm/tronweb@5.3.2/dist/TronWeb.js","fqdn":"cdn.jsdelivr.net","domain":"jsdelivr.net","tld":"net"},"ip":{"addr":"151.101.1.229","port":443,"asn":54113,"as":"FASTLY","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.119Z","timestamp":1785138633119,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"jsdelivr.net","organization":""},"issuer":{"commonName":"GlobalSign Atlas R3 DV TLS CA 2026 Q2","organization":"GlobalSign nv-sa"},"validity":{"start":"Wed, 20 May 2026 15:48:47 GMT","end":"Sat, 05 Dec 2026 14:48:47 GMT"},"fingerprint":{"sha1":"D4:05:C2:EC:C7:EE:2B:D0:08:68:0D:3D:33:77:48:78:43:E7:D1:E1","sha256":"ED:84:90:EE:71:BC:6B:5E:B3:D2:50:B0:23:3A:06:0D:E0:50:C6:B6:A9:09:36:E6:CE:FE:E8:66:89:EB:4E:C5"}}},"request":{"raw":"GET /npm/tronweb@5.3.2/dist/TronWeb.js HTTP/1.1\r\nHost: cdn.jsdelivr.net\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mail.usdt-transfer.info/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: *\r\ntiming-allow-origin: *\r\ncache-control: public, max-age=31536000, s-maxage=31536000, immutable\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\ncontent-type: application/javascript; charset=utf-8\r\nx-jsd-version: 5.3.2\r\nx-jsd-version-type: version\r\netag: W/\"10a5b4-lT+k7SLU5o7soi6j1EqFcCf59GA\"\r\ncontent-encoding: br\r\naccept-ranges: bytes\r\nage: 2058175\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nx-served-by: cache-fra-eddf8230055-FRA, cache-bma-essb1270066-BMA\r\nx-cache: HIT, HIT\r\nvary: Accept-Encoding\r\nalt-svc: h3=\":443\";ma=86400,h3-29=\":443\";ma=86400,h3-27=\":443\";ma=86400\r\ncontent-length: 250648\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":1090996,"size_decoded":251445,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65471)","md5":"61815c53518e149c598d8d4e8c540f1e","sha1":"056b4b1e8ac8e4b1bee20a121b5bb13eebf70dbe","sha256":"2750da4ca28f2302169db18f17c1dc671ec9d0d8eb3e93a8a9a4bb93778f6209","sha512":"1eb3371d59a1c018c0ebc9c9c10bf708720e85d5355ed42ed941459a43a81abba537767a20cf0782905da678e9be6961099f465b5aa4dba03766819b394f423c","ssdeep":"6144:y+WOYV+9x9JXV2vCRoIqbt15LAVbjsRyK2ZU13U+wZ/qpY9lgmpuLWiLyUvPDgeE:rYVi9eIqbtvLAVbjsUKyqGSWYC493KYS","tlshash":"4725098876c6f166439220e0053b640eb23dbb5cd45ca554f398e4e37df9ada872bb34","first_seen":"2026-02-01T05:32:39.423634Z","last_seen":"2026-07-27T07:51:47.175632Z","times_seen":13,"resource_available":false,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgVHJvbldlYi5qcy5MSUNFTlNFLnR4dCAqLwohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiVHJvbldlYiIsW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuVHJvbldlYj10KCk6ZS5Ucm9uV2ViPXQoKX0oc2VsZiwoKCk9PigoKT0+e3ZhciBlLHQscj17OTA4MjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmNyZWF0ZUN1cnZlPXQuZ2V0SGFzaD12b2lkIDA7Y29uc3Qgbj1yKDExMjgpLG89cigxNzE3KSxpPXIoNjU1MSk7ZnVuY3Rpb24gYShlKXtyZXR1cm57aGFzaDplLGhtYWM6KHQsLi4ucik9PigwLG4uaG1hYykoZSx0LCgwLG8uY29uY2F0Qnl0ZXMpKC4uLnIpKSxyYW5kb21CeXRlczpvLnJhbmRvbUJ5dGVzfX10LmdldEhhc2g9YSx0LmNyZWF0ZUN1cnZlPWZ1bmN0aW9uKGUsdCl7Y29uc3Qgcj10PT4oMCxpLndlaWVyc3RyYXNzKSh7Li4uZSwuLi5hKHQpfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLnIodCksY3JlYXRlOnJ9KX19LDE1MjU6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC52YWxpZGF0ZUJhc2ljPXQud05BRj12b2lkIDA7Y29uc3Qgbj1yKDQ2MzIpLG89cigyMTkpLGk9QmlnSW50KDApLGE9QmlnSW50KDEpO3Qud05BRj1mdW5jdGlvbihlLHQpe2NvbnN0IHI9KGUsdCk9Pntjb25zdCByPXQubmVnYXRlKCk7cmV0dXJuIGU/cjp0fSxuPWU9Pih7d2luZG93czpNYXRoLmNlaWwodC9lKSsxLHdpbmRvd1NpemU6MioqKGUtMSl9KTtyZXR1cm57Y29uc3RUaW1lTmVnYXRlOnIsdW5zYWZlTGFkZGVyKHQscil7bGV0IG49ZS5aRVJPLG89dDtmb3IoO3I+aTspciZhJiYobj1uLmFkZChvKSksbz1vLmRvdWJsZSgpLHI+Pj1hO3JldHVybiBufSxwcmVjb21wdXRlV2luZG93KGUsdCl7Y29uc3R7d2luZG93czpyLHdpbmRvd1NpemU6b309bih0KSxpPVtdO2xldCBhPWUscz1hO2ZvcihsZXQgZT0wO2U8cjtlKyspe3M9YSxpLnB1c2gocyk7Zm9yKGxldCBlPTE7ZTxvO2UrKylzPXMuYWRkKGEpLGkucHVzaChzKTthPXMuZG91YmxlKCl9cmV0dXJuIGl9LHdOQUYodCxvLGkpe2NvbnN0e3dpbmRvd3M6cyx3aW5kb3dTaXplOnV9PW4odCk7bGV0IGM9ZS5aRVJPLGw9ZS5CQVNFO2NvbnN0IGQ9QmlnSW50KDIqKnQtMSksZj0yKip0LHA9QmlnSW50KHQpO2ZvcihsZXQgZT0wO2U8cztlKyspe2NvbnN0IHQ9ZSp1O2xldCBuPU51bWJlcihpJmQpO2k+Pj1wLG4+dSYmKG4tPWYsaSs9YSk7Y29uc3Qgcz10LGg9dCtNYXRoLmFicyhuKS0xLGc9ZSUyIT0wLHk9bjwwOzA9PT1uP2w9bC5hZGQocihnLG9bc10pKTpjPWMuYWRkKHIoeSxvW2hdKSl9cmV0dXJue3A6YyxmOmx9fSx3TkFGQ2FjaGVkKGUsdCxyLG4pe2NvbnN0IG89ZS5fV0lORE9XX1NJWkV8fDE7bGV0IGk9dC5nZXQoZSk7cmV0dXJuIGl8fChpPXRoaXMucHJlY29tcHV0ZVdpbmRvdyhlLG8pLDEhPT1vJiZ0LnNldChlLG4oaSkpKSx0aGlzLndOQUYobyxpLHIpfX19LHQudmFsaWRhdGVCYXNpYz1mdW5jdGlvbihlKXtyZXR1cm4oMCxuLnZhbGlkYXRlRmllbGQpKGUuRnApLCgwLG8udmFsaWRhdGVPYmplY3QpKGUse246ImJpZ2ludCIsaDoiYmlnaW50IixHeDoiZmllbGQiLEd5OiJmaWVsZCJ9LHtuQml0TGVuZ3RoOiJpc1NhZmVJbnRlZ2VyIixuQnl0ZUxlbmd0aDoiaXNTYWZlSW50ZWdlciJ9KSxPYmplY3QuZnJlZXplKHsuLi4oMCxuLm5MZW5ndGgpKGUubixlLm5CaXRMZW5ndGgpLC4uLmUscDplLkZwLk9SREVSfSl9fSw1MTM0OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuY3JlYXRlSGFzaGVyPXQuaXNvZ2VueU1hcD10Lmhhc2hfdG9fZmllbGQ9dC5leHBhbmRfbWVzc2FnZV94b2Y9dC5leHBhbmRfbWVzc2FnZV94bWQ9dm9pZCAwO2NvbnN0IG49cig0NjMyKSxvPXIoMjE5KSxpPW8uYnl0ZXNUb051bWJlckJFO2Z1bmN0aW9uIGEoZSx0KXtpZihlPDB8fGU+PTE8PDgqdCl0aHJvdyBuZXcgRXJyb3IoYGJhZCBJMk9TUCBjYWxsOiB2YWx1ZT0ke2V9IGxlbmd0aD0ke3R9YCk7Y29uc3Qgcj1BcnJheS5mcm9tKHtsZW5ndGg6dH0pLmZpbGwoMCk7Zm9yKGxldCBuPXQtMTtuPj0wO24tLSlyW25dPTI1NSZlLGU+Pj49ODtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocil9ZnVuY3Rpb24gcyhlLHQpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXJbbl09ZVtuXV50W25dO3JldHVybiByfWZ1bmN0aW9uIHUoZSl7aWYoIShlIGluc3RhbmNlb2YgVWludDhBcnJheSkpdGhyb3cgbmV3IEVycm9yKCJVaW50OEFycmF5IGV4cGVjdGVkIil9ZnVuY3Rpb24gYyhlKXtpZighTnVtYmVyLmlzU2FmZUludGVnZXIoZSkpdGhyb3cgbmV3IEVycm9yKCJudW1iZXIgZXhwZWN0ZWQiKX1mdW5jdGlvbiBsKGUsdCxyLG4pe3UoZSksdSh0KSxjKHIpLHQubGVuZ3RoPjI1NSYmKHQ9bigoMCxvLmNvbmNhdEJ5dGVzKSgoMCxvLnV0ZjhUb0J5dGVzKSgiSDJDLU9WRVJTSVpFLURTVC0iKSx0KSkpO2NvbnN0e291dHB1dExlbjppLGJsb2NrTGVuOmx9PW4sZD1NYXRoLmNlaWwoci9pKTtpZihkPjI1NSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgeG1kIGxlbmd0aCIpO2NvbnN0IGY9KDAsby5jb25jYXRCeXRlcykodCxhKHQubGVuZ3RoLDEpKSxwPWEoMCxsKSxoPWEociwyKSxnPW5ldyBBcnJheShkKSx5PW4oKDAsby5jb25jYXRCeXRlcykocCxlLGgsYSgwLDEpLGYpKTtnWzBdPW4oKDAsby5jb25jYXRCeXRlcykoeSxhKDEsMSksZikpO2ZvcihsZXQgZT0xO2U8PWQ7ZSsrKXtjb25zdCB0PVtzKHksZ1tlLTFdKSxhKGUrMSwxKSxmXTtnW2VdPW4oKDAsby5jb25jYXRCeXRlcykoLi4udCkpfXJldHVybigwLG8uY29uY2F0Qnl0ZXMpKC4uLmcpLnNsaWNlKDAscil9ZnVuY3Rpb24gZChlLHQscixuLGkpe2lmKHUoZSksdSh0KSxjKHIpLHQubGVuZ3RoPjI1NSl7Y29uc3QgZT1NYXRoLmNlaWwoMipuLzgpO3Q9aS5jcmVhdGUoe2RrTGVuOmV9KS51cGRhdGUoKDAsby51dGY4VG9CeXRlcykoIkgyQy1PVkVSU0laRS1EU1QtIikpLnVwZGF0ZSh0KS5kaWdlc3QoKX1pZihyPjY1NTM1fHx0Lmxlbmd0aD4yNTUpdGhyb3cgbmV3IEVycm9yKCJleHBhbmRfbWVzc2FnZV94b2Y6IGludmFsaWQgbGVuSW5CeXRlcyIpO3JldHVybiBpLmNyZWF0ZSh7ZGtMZW46cn0pLnVwZGF0ZShlKS51cGRhdGUoYShyLDIpKS51cGRhdGUodCkudXBkYXRlKGEodC5sZW5ndGgsMSkpLmRpZ2VzdCgpfWZ1bmN0aW9uIGYoZSx0LHIpeygwLG8udmFsaWRhdGVPYmplY3QpKHIse0RTVDoic3RyaW5nIixwOiJiaWdpbnQiLG06ImlzU2FmZUludGVnZXIiLGs6ImlzU2FmZUludGVnZXIiLGhhc2g6Imhhc2gifSk7Y29uc3R7cDphLGs6cyxtOmYsaGFzaDpwLGV4cGFuZDpoLERTVDpnfT1yO3UoZSksYyh0KTtjb25zdCB5PWZ1bmN0aW9uKGUpe2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBlO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4oMCxvLnV0ZjhUb0J5dGVzKShlKTt0aHJvdyBuZXcgRXJyb3IoIkRTVCBtdXN0IGJlIFVpbnQ4QXJyYXkgb3Igc3RyaW5nIil9KGcpLGI9YS50b1N0cmluZygyKS5sZW5ndGgsdj1NYXRoLmNlaWwoKGIrcykvOCksbT10KmYqdjtsZXQgVDtpZigieG1kIj09PWgpVD1sKGUseSxtLHApO2Vsc2UgaWYoInhvZiI9PT1oKVQ9ZChlLHksbSxzLHApO2Vsc2V7aWYoIl9pbnRlcm5hbF9wYXNzIiE9PWgpdGhyb3cgbmV3IEVycm9yKCdleHBhbmQgbXVzdCBiZSAieG1kIiBvciAieG9mIicpO1Q9ZX1jb25zdCB3PW5ldyBBcnJheSh0KTtmb3IobGV0IGU9MDtlPHQ7ZSsrKXtjb25zdCB0PW5ldyBBcnJheShmKTtmb3IobGV0IHI9MDtyPGY7cisrKXtjb25zdCBvPXYqKHIrZSpmKSxzPVQuc3ViYXJyYXkobyxvK3YpO3Rbcl09KDAsbi5tb2QpKGkocyksYSl9d1tlXT10fXJldHVybiB3fXQuZXhwYW5kX21lc3NhZ2VfeG1kPWwsdC5leHBhbmRfbWVzc2FnZV94b2Y9ZCx0Lmhhc2hfdG9fZmllbGQ9Zix0Lmlzb2dlbnlNYXA9ZnVuY3Rpb24oZSx0KXtjb25zdCByPXQubWFwKChlPT5BcnJheS5mcm9tKGUpLnJldmVyc2UoKSkpO3JldHVybih0LG4pPT57Y29uc3RbbyxpLGEsc109ci5tYXAoKHI9PnIucmVkdWNlKCgocixuKT0+ZS5hZGQoZS5tdWwocix0KSxuKSkpKSk7cmV0dXJuIHQ9ZS5kaXYobyxpKSxuPWUubXVsKG4sZS5kaXYoYSxzKSkse3g6dCx5Om59fX0sdC5jcmVhdGVIYXNoZXI9ZnVuY3Rpb24oZSx0LHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigibWFwVG9DdXJ2ZSgpIG11c3QgYmUgZGVmaW5lZCIpO3JldHVybntoYXNoVG9DdXJ2ZShuLG8pe2NvbnN0IGk9ZihuLDIsey4uLnIsRFNUOnIuRFNULC4uLm99KSxhPWUuZnJvbUFmZmluZSh0KGlbMF0pKSxzPWUuZnJvbUFmZmluZSh0KGlbMV0pKSx1PWEuYWRkKHMpLmNsZWFyQ29mYWN0b3IoKTtyZXR1cm4gdS5hc3NlcnRWYWxpZGl0eSgpLHV9LGVuY29kZVRvQ3VydmUobixvKXtjb25zdCBpPWYobiwxLHsuLi5yLERTVDpyLmVuY29kZURTVCwuLi5vfSksYT1lLmZyb21BZmZpbmUodChpWzBdKSkuY2xlYXJDb2ZhY3RvcigpO3JldHVybiBhLmFzc2VydFZhbGlkaXR5KCksYX19fX0sNDYzMjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0Lmhhc2hUb1ByaXZhdGVTY2FsYXI9dC5GcFNxcnRFdmVuPXQuRnBTcXJ0T2RkPXQuRmllbGQ9dC5uTGVuZ3RoPXQuRnBJc1NxdWFyZT10LkZwRGl2PXQuRnBJbnZlcnRCYXRjaD10LkZwUG93PXQudmFsaWRhdGVGaWVsZD10LmlzTmVnYXRpdmVMRT10LkZwU3FydD10LnRvbmVsbGlTaGFua3M9dC5pbnZlcnQ9dC5wb3cyPXQucG93PXQubW9kPXZvaWQgMDtjb25zdCBuPXIoMjE5KSxvPUJpZ0ludCgwKSxpPUJpZ0ludCgxKSxhPUJpZ0ludCgyKSxzPUJpZ0ludCgzKSx1PUJpZ0ludCg0KSxjPUJpZ0ludCg1KSxsPUJpZ0ludCg4KTtmdW5jdGlvbiBkKGUsdCl7Y29uc3Qgcj1lJXQ7cmV0dXJuIHI+PW8/cjp0K3J9ZnVuY3Rpb24gZihlLHQscil7aWYocjw9b3x8dDxvKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcG93ZXIvbW9kdWxvID4gMCIpO2lmKHI9PT1pKXJldHVybiBvO2xldCBuPWk7Zm9yKDt0Pm87KXQmaSYmKG49biplJXIpLGU9ZSplJXIsdD4+PWk7cmV0dXJuIG59ZnVuY3Rpb24gcChlLHQpe2lmKGU9PT1vfHx0PD1vKXRocm93IG5ldyBFcnJvcihgaW52ZXJ0OiBleHBlY3RlZCBwb3NpdGl2ZSBpbnRlZ2VycywgZ290IG49JHtlfSBtb2Q9JHt0fWApO2xldCByPWQoZSx0KSxuPXQsYT1vLHM9aSx1PWksYz1vO2Zvcig7ciE9PW87KXtjb25zdCBlPW4vcix0PW4lcixvPWEtdSplLGk9cy1jKmU7bj1yLHI9dCxhPXUscz1jLHU9byxjPWl9aWYobiE9PWkpdGhyb3cgbmV3IEVycm9yKCJpbnZlcnQ6IGRvZXMgbm90IGV4aXN0Iik7cmV0dXJuIGQoYSx0KX1mdW5jdGlvbiBoKGUpe2NvbnN0IHQ9KGUtaSkvYTtsZXQgcixuLHM7Zm9yKHI9ZS1pLG49MDtyJWE9PT1vO3IvPWEsbisrKTtmb3Iocz1hO3M8ZSYmZihzLHQsZSkhPT1lLWk7cysrKTtpZigxPT09bil7Y29uc3QgdD0oZStpKS91O3JldHVybiBmdW5jdGlvbihlLHIpe2NvbnN0IG49ZS5wb3cocix0KTtpZighZS5lcWwoZS5zcXIobikscikpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBzcXVhcmUgcm9vdCIpO3JldHVybiBufX1jb25zdCBjPShyK2kpL2E7cmV0dXJuIGZ1bmN0aW9uKGUsbyl7aWYoZS5wb3cobyx0KT09PWUubmVnKGUuT05FKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNxdWFyZSByb290Iik7bGV0IGE9bix1PWUucG93KGUubXVsKGUuT05FLHMpLHIpLGw9ZS5wb3cobyxjKSxkPWUucG93KG8scik7Zm9yKDshZS5lcWwoZCxlLk9ORSk7KXtpZihlLmVxbChkLGUuWkVSTykpcmV0dXJuIGUuWkVSTztsZXQgdD0xO2ZvcihsZXQgcj1lLnNxcihkKTt0PGEmJiFlLmVxbChyLGUuT05FKTt0Kyspcj1lLnNxcihyKTtjb25zdCByPWUucG93KHUsaTw8QmlnSW50KGEtdC0xKSk7dT1lLnNxcihyKSxsPWUubXVsKGwsciksZD1lLm11bChkLHUpLGE9dH1yZXR1cm4gbH19ZnVuY3Rpb24gZyhlKXtpZihlJXU9PT1zKXtjb25zdCB0PShlK2kpL3U7cmV0dXJuIGZ1bmN0aW9uKGUscil7Y29uc3Qgbj1lLnBvdyhyLHQpO2lmKCFlLmVxbChlLnNxcihuKSxyKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNxdWFyZSByb290Iik7cmV0dXJuIG59fWlmKGUlbD09PWMpe2NvbnN0IHQ9KGUtYykvbDtyZXR1cm4gZnVuY3Rpb24oZSxyKXtjb25zdCBuPWUubXVsKHIsYSksbz1lLnBvdyhuLHQpLGk9ZS5tdWwocixvKSxzPWUubXVsKGUubXVsKGksYSksbyksdT1lLm11bChpLGUuc3ViKHMsZS5PTkUpKTtpZighZS5lcWwoZS5zcXIodSkscikpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBzcXVhcmUgcm9vdCIpO3JldHVybiB1fX1yZXR1cm4gaChlKX1CaWdJbnQoOSksQmlnSW50KDE2KSx0Lm1vZD1kLHQucG93PWYsdC5wb3cyPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbj1lO2Zvcig7dC0tID5vOyluKj1uLG4lPXI7cmV0dXJuIG59LHQuaW52ZXJ0PXAsdC50b25lbGxpU2hhbmtzPWgsdC5GcFNxcnQ9Zyx0LmlzTmVnYXRpdmVMRT0oZSx0KT0+KGQoZSx0KSZpKT09PWk7Y29uc3QgeT1bImNyZWF0ZSIsImlzVmFsaWQiLCJpczAiLCJuZWciLCJpbnYiLCJzcXJ0Iiwic3FyIiwiZXFsIiwiYWRkIiwic3ViIiwibXVsIiwicG93IiwiZGl2IiwiYWRkTiIsInN1Yk4iLCJtdWxOIiwic3FyTiJdO2Z1bmN0aW9uIGIoZSx0LHIpe2lmKHI8byl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHBvd2VyID4gMCIpO2lmKHI9PT1vKXJldHVybiBlLk9ORTtpZihyPT09aSlyZXR1cm4gdDtsZXQgbj1lLk9ORSxhPXQ7Zm9yKDtyPm87KXImaSYmKG49ZS5tdWwobixhKSksYT1lLnNxcihhKSxyPj49aTtyZXR1cm4gbn1mdW5jdGlvbiB2KGUsdCl7Y29uc3Qgcj1uZXcgQXJyYXkodC5sZW5ndGgpLG49dC5yZWR1Y2UoKCh0LG4sbyk9PmUuaXMwKG4pP3Q6KHJbb109dCxlLm11bCh0LG4pKSksZS5PTkUpLG89ZS5pbnYobik7cmV0dXJuIHQucmVkdWNlUmlnaHQoKCh0LG4sbyk9PmUuaXMwKG4pP3Q6KHJbb109ZS5tdWwodCxyW29dKSxlLm11bCh0LG4pKSksbykscn1mdW5jdGlvbiBtKGUsdCl7Y29uc3Qgcj12b2lkIDAhPT10P3Q6ZS50b1N0cmluZygyKS5sZW5ndGg7cmV0dXJue25CaXRMZW5ndGg6cixuQnl0ZUxlbmd0aDpNYXRoLmNlaWwoci84KX19dC52YWxpZGF0ZUZpZWxkPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9eS5yZWR1Y2UoKChlLHQpPT4oZVt0XT0iZnVuY3Rpb24iLGUpKSx7T1JERVI6ImJpZ2ludCIsTUFTSzoiYmlnaW50IixCWVRFUzoiaXNTYWZlSW50ZWdlciIsQklUUzoiaXNTYWZlSW50ZWdlciJ9KTtyZXR1cm4oMCxuLnZhbGlkYXRlT2JqZWN0KShlLHQpfSx0LkZwUG93PWIsdC5GcEludmVydEJhdGNoPXYsdC5GcERpdj1mdW5jdGlvbihlLHQscil7cmV0dXJuIGUubXVsKHQsImJpZ2ludCI9PXR5cGVvZiByP3AocixlLk9SREVSKTplLmludihyKSl9LHQuRnBJc1NxdWFyZT1mdW5jdGlvbihlKXtjb25zdCB0PShlLk9SREVSLWkpL2E7cmV0dXJuIHI9Pntjb25zdCBuPWUucG93KHIsdCk7cmV0dXJuIGUuZXFsKG4sZS5aRVJPKXx8ZS5lcWwobixlLk9ORSl9fSx0Lm5MZW5ndGg9bSx0LkZpZWxkPWZ1bmN0aW9uKGUsdCxyPSExLGE9e30pe2lmKGU8PW8pdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBGcCBPUkRFUiA+IDAsIGdvdCAke2V9YCk7Y29uc3R7bkJpdExlbmd0aDpzLG5CeXRlTGVuZ3RoOnV9PW0oZSx0KTtpZih1PjIwNDgpdGhyb3cgbmV3IEVycm9yKCJGaWVsZCBsZW5ndGhzIG92ZXIgMjA0OCBieXRlcyBhcmUgbm90IHN1cHBvcnRlZCIpO2NvbnN0IGM9ZyhlKSxsPU9iamVjdC5mcmVlemUoe09SREVSOmUsQklUUzpzLEJZVEVTOnUsTUFTSzooMCxuLmJpdE1hc2spKHMpLFpFUk86byxPTkU6aSxjcmVhdGU6dD0+ZCh0LGUpLGlzVmFsaWQ6dD0+e2lmKCJiaWdpbnQiIT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZmllbGQgZWxlbWVudDogZXhwZWN0ZWQgYmlnaW50LCBnb3QgIit0eXBlb2YgdCk7cmV0dXJuIG88PXQmJnQ8ZX0saXMwOmU9PmU9PT1vLGlzT2RkOmU9PihlJmkpPT09aSxuZWc6dD0+ZCgtdCxlKSxlcWw6KGUsdCk9PmU9PT10LHNxcjp0PT5kKHQqdCxlKSxhZGQ6KHQscik9PmQodCtyLGUpLHN1YjoodCxyKT0+ZCh0LXIsZSksbXVsOih0LHIpPT5kKHQqcixlKSxwb3c6KGUsdCk9PmIobCxlLHQpLGRpdjoodCxyKT0+ZCh0KnAocixlKSxlKSxzcXJOOmU9PmUqZSxhZGROOihlLHQpPT5lK3Qsc3ViTjooZSx0KT0+ZS10LG11bE46KGUsdCk9PmUqdCxpbnY6dD0+cCh0LGUpLHNxcnQ6YS5zcXJ0fHwoZT0+YyhsLGUpKSxpbnZlcnRCYXRjaDplPT52KGwsZSksY21vdjooZSx0LHIpPT5yP3Q6ZSx0b0J5dGVzOmU9PnI/KDAsbi5udW1iZXJUb0J5dGVzTEUpKGUsdSk6KDAsbi5udW1iZXJUb0J5dGVzQkUpKGUsdSksZnJvbUJ5dGVzOmU9PntpZihlLmxlbmd0aCE9PXUpdGhyb3cgbmV3IEVycm9yKGBGcC5mcm9tQnl0ZXM6IGV4cGVjdGVkICR7dX0sIGdvdCAke2UubGVuZ3RofWApO3JldHVybiByPygwLG4uYnl0ZXNUb051bWJlckxFKShlKTooMCxuLmJ5dGVzVG9OdW1iZXJCRSkoZSl9fSk7cmV0dXJuIE9iamVjdC5mcmVlemUobCl9LHQuRnBTcXJ0T2RkPWZ1bmN0aW9uKGUsdCl7aWYoIWUuaXNPZGQpdGhyb3cgbmV3IEVycm9yKCJGaWVsZCBkb2Vzbid0IGhhdmUgaXNPZGQiKTtjb25zdCByPWUuc3FydCh0KTtyZXR1cm4gZS5pc09kZChyKT9yOmUubmVnKHIpfSx0LkZwU3FydEV2ZW49ZnVuY3Rpb24oZSx0KXtpZighZS5pc09kZCl0aHJvdyBuZXcgRXJyb3IoIkZpZWxkIGRvZXNuJ3QgaGF2ZSBpc09kZCIpO2NvbnN0IHI9ZS5zcXJ0KHQpO3JldHVybiBlLmlzT2RkKHIpP2UubmVnKHIpOnJ9LHQuaGFzaFRvUHJpdmF0ZVNjYWxhcj1mdW5jdGlvbihlLHQscj0hMSl7Y29uc3Qgbz0oZT0oMCxuLmVuc3VyZUJ5dGVzKSgicHJpdmF0ZUhhc2giLGUpKS5sZW5ndGgsYT1tKHQpLm5CeXRlTGVuZ3RoKzg7aWYoYTwyNHx8bzxhfHxvPjEwMjQpdGhyb3cgbmV3IEVycm9yKGBoYXNoVG9Qcml2YXRlU2NhbGFyOiBleHBlY3RlZCAke2F9LTEwMjQgYnl0ZXMgb2YgaW5wdXQsIGdvdCAke299YCk7cmV0dXJuIGQocj8oMCxuLmJ5dGVzVG9OdW1iZXJMRSkoZSk6KDAsbi5ieXRlc1RvTnVtYmVyQkUpKGUpLHQtaSkraX19LDIxOTooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC52YWxpZGF0ZU9iamVjdD10LmNyZWF0ZUhtYWNEcmJnPXQuYml0TWFzaz10LmJpdFNldD10LmJpdEdldD10LmJpdExlbj10LnV0ZjhUb0J5dGVzPXQuZXF1YWxCeXRlcz10LmNvbmNhdEJ5dGVzPXQuZW5zdXJlQnl0ZXM9dC5udW1iZXJUb1ZhckJ5dGVzQkU9dC5udW1iZXJUb0J5dGVzTEU9dC5udW1iZXJUb0J5dGVzQkU9dC5ieXRlc1RvTnVtYmVyTEU9dC5ieXRlc1RvTnVtYmVyQkU9dC5oZXhUb0J5dGVzPXQuaGV4VG9OdW1iZXI9dC5udW1iZXJUb0hleFVucGFkZGVkPXQuYnl0ZXNUb0hleD12b2lkIDA7Y29uc3Qgcj1CaWdJbnQoMCksbj1CaWdJbnQoMSksbz1CaWdJbnQoMiksaT1lPT5lIGluc3RhbmNlb2YgVWludDhBcnJheSxhPUFycmF5LmZyb20oe2xlbmd0aDoyNTZ9LCgoZSx0KT0+dC50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKSk7ZnVuY3Rpb24gcyhlKXtpZighaShlKSl0aHJvdyBuZXcgRXJyb3IoIlVpbnQ4QXJyYXkgZXhwZWN0ZWQiKTtsZXQgdD0iIjtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0Kz1hW2Vbcl1dO3JldHVybiB0fWZ1bmN0aW9uIHUoZSl7Y29uc3QgdD1lLnRvU3RyaW5nKDE2KTtyZXR1cm4gMSZ0Lmxlbmd0aD9gMCR7dH1gOnR9ZnVuY3Rpb24gYyhlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJoZXggc3RyaW5nIGV4cGVjdGVkLCBnb3QgIit0eXBlb2YgZSk7cmV0dXJuIEJpZ0ludCgiIj09PWU/IjAiOmAweCR7ZX1gKX1mdW5jdGlvbiBsKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImhleCBzdHJpbmcgZXhwZWN0ZWQsIGdvdCAiK3R5cGVvZiBlKTtpZihlLmxlbmd0aCUyKXRocm93IG5ldyBFcnJvcigiaGV4IHN0cmluZyBpcyBpbnZhbGlkOiB1bnBhZGRlZCAiK2UubGVuZ3RoKTtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoLzIpO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtjb25zdCBuPTIqcixvPWUuc2xpY2UobixuKzIpLGk9TnVtYmVyLnBhcnNlSW50KG8sMTYpO2lmKE51bWJlci5pc05hTihpKXx8aTwwKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBieXRlIHNlcXVlbmNlIik7dFtyXT1pfXJldHVybiB0fWZ1bmN0aW9uIGQoLi4uZSl7Y29uc3QgdD1uZXcgVWludDhBcnJheShlLnJlZHVjZSgoKGUsdCk9PmUrdC5sZW5ndGgpLDApKTtsZXQgcj0wO3JldHVybiBlLmZvckVhY2goKGU9PntpZighaShlKSl0aHJvdyBuZXcgRXJyb3IoIlVpbnQ4QXJyYXkgZXhwZWN0ZWQiKTt0LnNldChlLHIpLHIrPWUubGVuZ3RofSkpLHR9dC5ieXRlc1RvSGV4PXMsdC5udW1iZXJUb0hleFVucGFkZGVkPXUsdC5oZXhUb051bWJlcj1jLHQuaGV4VG9CeXRlcz1sLHQuYnl0ZXNUb051bWJlckJFPWZ1bmN0aW9uKGUpe3JldHVybiBjKHMoZSkpfSx0LmJ5dGVzVG9OdW1iZXJMRT1mdW5jdGlvbihlKXtpZighaShlKSl0aHJvdyBuZXcgRXJyb3IoIlVpbnQ4QXJyYXkgZXhwZWN0ZWQiKTtyZXR1cm4gYyhzKFVpbnQ4QXJyYXkuZnJvbShlKS5yZXZlcnNlKCkpKX0sdC5udW1iZXJUb0J5dGVzQkU9KGUsdCk9PmwoZS50b1N0cmluZygxNikucGFkU3RhcnQoMip0LCIwIikpLHQubnVtYmVyVG9CeXRlc0xFPShlLHIpPT4oMCx0Lm51bWJlclRvQnl0ZXNCRSkoZSxyKS5yZXZlcnNlKCksdC5udW1iZXJUb1ZhckJ5dGVzQkU9ZT0+bCh1KGUpKSx0LmVuc3VyZUJ5dGVzPWZ1bmN0aW9uKGUsdCxyKXtsZXQgbjtpZigic3RyaW5nIj09dHlwZW9mIHQpdHJ5e249bCh0KX1jYXRjaChyKXt0aHJvdyBuZXcgRXJyb3IoYCR7ZX0gbXVzdCBiZSB2YWxpZCBoZXggc3RyaW5nLCBnb3QgIiR7dH0iLiBDYXVzZTogJHtyfWApfWVsc2V7aWYoIWkodCkpdGhyb3cgbmV3IEVycm9yKGAke2V9IG11c3QgYmUgaGV4IHN0cmluZyBvciBVaW50OEFycmF5YCk7bj1VaW50OEFycmF5LmZyb20odCl9Y29uc3Qgbz1uLmxlbmd0aDtpZigibnVtYmVyIj09dHlwZW9mIHImJm8hPT1yKXRocm93IG5ldyBFcnJvcihgJHtlfSBleHBlY3RlZCAke3J9IGJ5dGVzLCBnb3QgJHtvfWApO3JldHVybiBufSx0LmNvbmNhdEJ5dGVzPWQsdC5lcXVhbEJ5dGVzPWZ1bmN0aW9uKGUsdCl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKylpZihlW3JdIT09dFtyXSlyZXR1cm4hMTtyZXR1cm4hMH0sdC51dGY4VG9CeXRlcz1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJ1dGY4VG9CeXRlcyBleHBlY3RlZCBzdHJpbmcsIGdvdCAiK3R5cGVvZiBlKTtyZXR1cm4obmV3IFRleHRFbmNvZGVyKS5lbmNvZGUoZSl9LHQuYml0TGVuPWZ1bmN0aW9uKGUpe2xldCB0O2Zvcih0PTA7ZT5yO2U+Pj1uLHQrPTEpO3JldHVybiB0fSx0LmJpdEdldD0oZSx0KT0+ZT4+QmlnSW50KHQpJm4sdC5iaXRTZXQ9KGUsdCxvKT0+ZXwobz9uOnIpPDxCaWdJbnQodCksdC5iaXRNYXNrPWU9PihvPDxCaWdJbnQoZS0xKSktbjtjb25zdCBmPWU9Pm5ldyBVaW50OEFycmF5KGUpLHA9ZT0+VWludDhBcnJheS5mcm9tKGUpO3QuY3JlYXRlSG1hY0RyYmc9ZnVuY3Rpb24oZSx0LHIpe2lmKCJudW1iZXIiIT10eXBlb2YgZXx8ZTwyKXRocm93IG5ldyBFcnJvcigiaGFzaExlbiBtdXN0IGJlIGEgbnVtYmVyIik7aWYoIm51bWJlciIhPXR5cGVvZiB0fHx0PDIpdGhyb3cgbmV3IEVycm9yKCJxQnl0ZUxlbiBtdXN0IGJlIGEgbnVtYmVyIik7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IEVycm9yKCJobWFjRm4gbXVzdCBiZSBhIGZ1bmN0aW9uIik7bGV0IG49ZihlKSxvPWYoZSksaT0wO2NvbnN0IGE9KCk9PntuLmZpbGwoMSksby5maWxsKDApLGk9MH0scz0oLi4uZSk9PnIobyxuLC4uLmUpLHU9KGU9ZigpKT0+e289cyhwKFswXSksZSksbj1zKCksMCE9PWUubGVuZ3RoJiYobz1zKHAoWzFdKSxlKSxuPXMoKSl9LGM9KCk9PntpZihpKys+PTFlMyl0aHJvdyBuZXcgRXJyb3IoImRyYmc6IHRyaWVkIDEwMDAgdmFsdWVzIik7bGV0IGU9MDtjb25zdCByPVtdO2Zvcig7ZTx0Oyl7bj1zKCk7Y29uc3QgdD1uLnNsaWNlKCk7ci5wdXNoKHQpLGUrPW4ubGVuZ3RofXJldHVybiBkKC4uLnIpfTtyZXR1cm4oZSx0KT0+e2xldCByO2ZvcihhKCksdShlKTshKHI9dChjKCkpKTspdSgpO3JldHVybiBhKCkscn19O2NvbnN0IGg9e2JpZ2ludDplPT4iYmlnaW50Ij09dHlwZW9mIGUsZnVuY3Rpb246ZT0+ImZ1bmN0aW9uIj09dHlwZW9mIGUsYm9vbGVhbjplPT4iYm9vbGVhbiI9PXR5cGVvZiBlLHN0cmluZzplPT4ic3RyaW5nIj09dHlwZW9mIGUsaXNTYWZlSW50ZWdlcjplPT5OdW1iZXIuaXNTYWZlSW50ZWdlcihlKSxhcnJheTplPT5BcnJheS5pc0FycmF5KGUpLGZpZWxkOihlLHQpPT50LkZwLmlzVmFsaWQoZSksaGFzaDplPT4iZnVuY3Rpb24iPT10eXBlb2YgZSYmTnVtYmVyLmlzU2FmZUludGVnZXIoZS5vdXRwdXRMZW4pfTt0LnZhbGlkYXRlT2JqZWN0PWZ1bmN0aW9uKGUsdCxyPXt9KXtjb25zdCBuPSh0LHIsbik9Pntjb25zdCBvPWhbcl07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8pdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbGlkYXRvciAiJHtyfSIsIGV4cGVjdGVkIGZ1bmN0aW9uYCk7Y29uc3QgaT1lW3RdO2lmKCEobiYmdm9pZCAwPT09aXx8byhpLGUpKSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFyYW0gJHtTdHJpbmcodCl9PSR7aX0gKCR7dHlwZW9mIGl9KSwgZXhwZWN0ZWQgJHtyfWApfTtmb3IoY29uc3RbZSxyXW9mIE9iamVjdC5lbnRyaWVzKHQpKW4oZSxyLCExKTtmb3IoY29uc3RbZSx0XW9mIE9iamVjdC5lbnRyaWVzKHIpKW4oZSx0LCEwKTtyZXR1cm4gZX19LDY1NTE6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5tYXBUb0N1cnZlU2ltcGxlU1dVPXQuU1dVRnBTcXJ0UmF0aW89dC53ZWllcnN0cmFzcz10LndlaWVyc3RyYXNzUG9pbnRzPXQuREVSPXZvaWQgMDtjb25zdCBuPXIoNDYzMiksbz1yKDIxOSksaT1yKDIxOSksYT1yKDE1MjUpLHtieXRlc1RvTnVtYmVyQkU6cyxoZXhUb0J5dGVzOnV9PW87dC5ERVI9e0VycjpjbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGU9IiIpe3N1cGVyKGUpfX0sX3BhcnNlSW50KGUpe2NvbnN0e0VycjpyfT10LkRFUjtpZihlLmxlbmd0aDwyfHwyIT09ZVswXSl0aHJvdyBuZXcgcigiSW52YWxpZCBzaWduYXR1cmUgaW50ZWdlciB0YWciKTtjb25zdCBuPWVbMV0sbz1lLnN1YmFycmF5KDIsbisyKTtpZighbnx8by5sZW5ndGghPT1uKXRocm93IG5ldyByKCJJbnZhbGlkIHNpZ25hdHVyZSBpbnRlZ2VyOiB3cm9uZyBsZW5ndGgiKTtpZigxMjgmb1swXSl0aHJvdyBuZXcgcigiSW52YWxpZCBzaWduYXR1cmUgaW50ZWdlcjogbmVnYXRpdmUiKTtpZigwPT09b1swXSYmISgxMjgmb1sxXSkpdGhyb3cgbmV3IHIoIkludmFsaWQgc2lnbmF0dXJlIGludGVnZXI6IHVubmVjZXNzYXJ5IGxlYWRpbmcgemVybyIpO3JldHVybntkOnMobyksbDplLnN1YmFycmF5KG4rMil9fSx0b1NpZyhlKXtjb25zdHtFcnI6cn09dC5ERVIsbj0ic3RyaW5nIj09dHlwZW9mIGU/dShlKTplO2lmKCEobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBFcnJvcigidWk4YSBleHBlY3RlZCIpO2xldCBvPW4ubGVuZ3RoO2lmKG88Mnx8NDghPW5bMF0pdGhyb3cgbmV3IHIoIkludmFsaWQgc2lnbmF0dXJlIHRhZyIpO2lmKG5bMV0hPT1vLTIpdGhyb3cgbmV3IHIoIkludmFsaWQgc2lnbmF0dXJlOiBpbmNvcnJlY3QgbGVuZ3RoIik7Y29uc3R7ZDppLGw6YX09dC5ERVIuX3BhcnNlSW50KG4uc3ViYXJyYXkoMikpLHtkOnMsbDpjfT10LkRFUi5fcGFyc2VJbnQoYSk7aWYoYy5sZW5ndGgpdGhyb3cgbmV3IHIoIkludmFsaWQgc2lnbmF0dXJlOiBsZWZ0IGJ5dGVzIGFmdGVyIHBhcnNpbmciKTtyZXR1cm57cjppLHN9fSxoZXhGcm9tU2lnKGUpe2NvbnN0IHQ9ZT0+OCZOdW1iZXIucGFyc2VJbnQoZVswXSwxNik/IjAwIitlOmUscj1lPT57Y29uc3QgdD1lLnRvU3RyaW5nKDE2KTtyZXR1cm4gMSZ0Lmxlbmd0aD9gMCR7dH1gOnR9LG49dChyKGUucykpLG89dChyKGUucikpLGk9bi5sZW5ndGgvMixhPW8ubGVuZ3RoLzIscz1yKGkpLHU9cihhKTtyZXR1cm5gMzAke3IoYStpKzQpfTAyJHt1fSR7b30wMiR7c30ke259YH19O2NvbnN0IGM9QmlnSW50KDApLGw9QmlnSW50KDEpLGQ9QmlnSW50KDIpLGY9QmlnSW50KDMpLHA9QmlnSW50KDQpO2Z1bmN0aW9uIGgoZSl7Y29uc3QgdD1mdW5jdGlvbihlKXtjb25zdCB0PSgwLGEudmFsaWRhdGVCYXNpYykoZSk7by52YWxpZGF0ZU9iamVjdCh0LHthOiJmaWVsZCIsYjoiZmllbGQifSx7YWxsb3dlZFByaXZhdGVLZXlMZW5ndGhzOiJhcnJheSIsd3JhcFByaXZhdGVLZXk6ImJvb2xlYW4iLGlzVG9yc2lvbkZyZWU6ImZ1bmN0aW9uIixjbGVhckNvZmFjdG9yOiJmdW5jdGlvbiIsYWxsb3dJbmZpbml0eVBvaW50OiJib29sZWFuIixmcm9tQnl0ZXM6ImZ1bmN0aW9uIix0b0J5dGVzOiJmdW5jdGlvbiJ9KTtjb25zdHtlbmRvOnIsRnA6bixhOml9PXQ7aWYocil7aWYoIW4uZXFsKGksbi5aRVJPKSl0aHJvdyBuZXcgRXJyb3IoIkVuZG9tb3JwaGlzbSBjYW4gb25seSBiZSBkZWZpbmVkIGZvciBLb2JsaXR6IGN1cnZlcyB0aGF0IGhhdmUgYT0wIik7aWYoIm9iamVjdCIhPXR5cGVvZiByfHwiYmlnaW50IiE9dHlwZW9mIHIuYmV0YXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHIuc3BsaXRTY2FsYXIpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBlbmRvbW9ycGhpc20gd2l0aCBiZXRhOiBiaWdpbnQgYW5kIHNwbGl0U2NhbGFyOiBmdW5jdGlvbiIpfXJldHVybiBPYmplY3QuZnJlZXplKHsuLi50fSl9KGUpLHtGcDpyfT10LHM9dC50b0J5dGVzfHwoKGUsdCxuKT0+e2NvbnN0IGk9dC50b0FmZmluZSgpO3JldHVybiBvLmNvbmNhdEJ5dGVzKFVpbnQ4QXJyYXkuZnJvbShbNF0pLHIudG9CeXRlcyhpLngpLHIudG9CeXRlcyhpLnkpKX0pLHU9dC5mcm9tQnl0ZXN8fChlPT57Y29uc3QgdD1lLnN1YmFycmF5KDEpO3JldHVybnt4OnIuZnJvbUJ5dGVzKHQuc3ViYXJyYXkoMCxyLkJZVEVTKSkseTpyLmZyb21CeXRlcyh0LnN1YmFycmF5KHIuQllURVMsMipyLkJZVEVTKSl9fSk7ZnVuY3Rpb24gZChlKXtjb25zdHthOm4sYjpvfT10LGk9ci5zcXIoZSksYT1yLm11bChpLGUpO3JldHVybiByLmFkZChyLmFkZChhLHIubXVsKGUsbikpLG8pfWlmKCFyLmVxbChyLnNxcih0Lkd5KSxkKHQuR3gpKSl0aHJvdyBuZXcgRXJyb3IoImJhZCBnZW5lcmF0b3IgcG9pbnQ6IGVxdWF0aW9uIGxlZnQgIT0gcmlnaHQiKTtmdW5jdGlvbiBwKGUpe3JldHVybiJiaWdpbnQiPT10eXBlb2YgZSYmYzxlJiZlPHQubn1mdW5jdGlvbiBoKGUpe2lmKCFwKGUpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdmFsaWQgYmlnaW50OiAwIDwgYmlnaW50IDwgY3VydmUubiIpfWZ1bmN0aW9uIGcoZSl7Y29uc3R7YWxsb3dlZFByaXZhdGVLZXlMZW5ndGhzOnIsbkJ5dGVMZW5ndGg6YSx3cmFwUHJpdmF0ZUtleTpzLG46dX09dDtpZihyJiYiYmlnaW50IiE9dHlwZW9mIGUpe2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5JiYoZT1vLmJ5dGVzVG9IZXgoZSkpLCJzdHJpbmciIT10eXBlb2YgZXx8IXIuaW5jbHVkZXMoZS5sZW5ndGgpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBrZXkiKTtlPWUucGFkU3RhcnQoMiphLCIwIil9bGV0IGM7dHJ5e2M9ImJpZ2ludCI9PXR5cGVvZiBlP2U6by5ieXRlc1RvTnVtYmVyQkUoKDAsaS5lbnN1cmVCeXRlcykoInByaXZhdGUga2V5IixlLGEpKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoYHByaXZhdGUga2V5IG11c3QgYmUgJHthfSBieXRlcywgaGV4IG9yIGJpZ2ludCwgbm90ICR7dHlwZW9mIGV9YCl9cmV0dXJuIHMmJihjPW4ubW9kKGMsdSkpLGgoYyksY31jb25zdCB5PW5ldyBNYXA7ZnVuY3Rpb24gYihlKXtpZighKGUgaW5zdGFuY2VvZiB2KSl0aHJvdyBuZXcgRXJyb3IoIlByb2plY3RpdmVQb2ludCBleHBlY3RlZCIpfWNsYXNzIHZ7Y29uc3RydWN0b3IoZSx0LG4pe2lmKHRoaXMucHg9ZSx0aGlzLnB5PXQsdGhpcy5wej1uLG51bGw9PWV8fCFyLmlzVmFsaWQoZSkpdGhyb3cgbmV3IEVycm9yKCJ4IHJlcXVpcmVkIik7aWYobnVsbD09dHx8IXIuaXNWYWxpZCh0KSl0aHJvdyBuZXcgRXJyb3IoInkgcmVxdWlyZWQiKTtpZihudWxsPT1ufHwhci5pc1ZhbGlkKG4pKXRocm93IG5ldyBFcnJvcigieiByZXF1aXJlZCIpfXN0YXRpYyBmcm9tQWZmaW5lKGUpe2NvbnN0e3g6dCx5Om59PWV8fHt9O2lmKCFlfHwhci5pc1ZhbGlkKHQpfHwhci5pc1ZhbGlkKG4pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBhZmZpbmUgcG9pbnQiKTtpZihlIGluc3RhbmNlb2Ygdil0aHJvdyBuZXcgRXJyb3IoInByb2plY3RpdmUgcG9pbnQgbm90IGFsbG93ZWQiKTtjb25zdCBvPWU9PnIuZXFsKGUsci5aRVJPKTtyZXR1cm4gbyh0KSYmbyhuKT92LlpFUk86bmV3IHYodCxuLHIuT05FKX1nZXQgeCgpe3JldHVybiB0aGlzLnRvQWZmaW5lKCkueH1nZXQgeSgpe3JldHVybiB0aGlzLnRvQWZmaW5lKCkueX1zdGF0aWMgbm9ybWFsaXplWihlKXtjb25zdCB0PXIuaW52ZXJ0QmF0Y2goZS5tYXAoKGU9PmUucHopKSk7cmV0dXJuIGUubWFwKCgoZSxyKT0+ZS50b0FmZmluZSh0W3JdKSkpLm1hcCh2LmZyb21BZmZpbmUpfXN0YXRpYyBmcm9tSGV4KGUpe2NvbnN0IHQ9di5mcm9tQWZmaW5lKHUoKDAsaS5lbnN1cmVCeXRlcykoInBvaW50SGV4IixlKSkpO3JldHVybiB0LmFzc2VydFZhbGlkaXR5KCksdH1zdGF0aWMgZnJvbVByaXZhdGVLZXkoZSl7cmV0dXJuIHYuQkFTRS5tdWx0aXBseShnKGUpKX1fc2V0V2luZG93U2l6ZShlKXt0aGlzLl9XSU5ET1dfU0laRT1lLHkuZGVsZXRlKHRoaXMpfWFzc2VydFZhbGlkaXR5KCl7aWYodGhpcy5pczAoKSl7aWYodC5hbGxvd0luZmluaXR5UG9pbnQpcmV0dXJuO3Rocm93IG5ldyBFcnJvcigiYmFkIHBvaW50OiBaRVJPIil9Y29uc3R7eDplLHk6bn09dGhpcy50b0FmZmluZSgpO2lmKCFyLmlzVmFsaWQoZSl8fCFyLmlzVmFsaWQobikpdGhyb3cgbmV3IEVycm9yKCJiYWQgcG9pbnQ6IHggb3IgeSBub3QgRkUiKTtjb25zdCBvPXIuc3FyKG4pLGk9ZChlKTtpZighci5lcWwobyxpKSl0aHJvdyBuZXcgRXJyb3IoImJhZCBwb2ludDogZXF1YXRpb24gbGVmdCAhPSByaWdodCIpO2lmKCF0aGlzLmlzVG9yc2lvbkZyZWUoKSl0aHJvdyBuZXcgRXJyb3IoImJhZCBwb2ludDogbm90IGluIHByaW1lLW9yZGVyIHN1Ymdyb3VwIil9aGFzRXZlblkoKXtjb25zdHt5OmV9PXRoaXMudG9BZmZpbmUoKTtpZihyLmlzT2RkKXJldHVybiFyLmlzT2RkKGUpO3Rocm93IG5ldyBFcnJvcigiRmllbGQgZG9lc24ndCBzdXBwb3J0IGlzT2RkIil9ZXF1YWxzKGUpe2IoZSk7Y29uc3R7cHg6dCxweTpuLHB6Om99PXRoaXMse3B4OmkscHk6YSxwejpzfT1lLHU9ci5lcWwoci5tdWwodCxzKSxyLm11bChpLG8pKSxjPXIuZXFsKHIubXVsKG4scyksci5tdWwoYSxvKSk7cmV0dXJuIHUmJmN9bmVnYXRlKCl7cmV0dXJuIG5ldyB2KHRoaXMucHgsci5uZWcodGhpcy5weSksdGhpcy5weil9ZG91YmxlKCl7Y29uc3R7YTplLGI6bn09dCxvPXIubXVsKG4sZikse3B4OmkscHk6YSxwejpzfT10aGlzO2xldCB1PXIuWkVSTyxjPXIuWkVSTyxsPXIuWkVSTyxkPXIubXVsKGksaSkscD1yLm11bChhLGEpLGg9ci5tdWwocyxzKSxnPXIubXVsKGksYSk7cmV0dXJuIGc9ci5hZGQoZyxnKSxsPXIubXVsKGkscyksbD1yLmFkZChsLGwpLHU9ci5tdWwoZSxsKSxjPXIubXVsKG8saCksYz1yLmFkZCh1LGMpLHU9ci5zdWIocCxjKSxjPXIuYWRkKHAsYyksYz1yLm11bCh1LGMpLHU9ci5tdWwoZyx1KSxsPXIubXVsKG8sbCksaD1yLm11bChlLGgpLGc9ci5zdWIoZCxoKSxnPXIubXVsKGUsZyksZz1yLmFkZChnLGwpLGw9ci5hZGQoZCxkKSxkPXIuYWRkKGwsZCksZD1yLmFkZChkLGgpLGQ9ci5tdWwoZCxnKSxjPXIuYWRkKGMsZCksaD1yLm11bChhLHMpLGg9ci5hZGQoaCxoKSxkPXIubXVsKGgsZyksdT1yLnN1Yih1LGQpLGw9ci5tdWwoaCxwKSxsPXIuYWRkKGwsbCksbD1yLmFkZChsLGwpLG5ldyB2KHUsYyxsKX1hZGQoZSl7YihlKTtjb25zdHtweDpuLHB5Om8scHo6aX09dGhpcyx7cHg6YSxweTpzLHB6OnV9PWU7bGV0IGM9ci5aRVJPLGw9ci5aRVJPLGQ9ci5aRVJPO2NvbnN0IHA9dC5hLGg9ci5tdWwodC5iLGYpO2xldCBnPXIubXVsKG4sYSkseT1yLm11bChvLHMpLG09ci5tdWwoaSx1KSxUPXIuYWRkKG4sbyksdz1yLmFkZChhLHMpO1Q9ci5tdWwoVCx3KSx3PXIuYWRkKGcseSksVD1yLnN1YihULHcpLHc9ci5hZGQobixpKTtsZXQgQT1yLmFkZChhLHUpO3JldHVybiB3PXIubXVsKHcsQSksQT1yLmFkZChnLG0pLHc9ci5zdWIodyxBKSxBPXIuYWRkKG8saSksYz1yLmFkZChzLHUpLEE9ci5tdWwoQSxjKSxjPXIuYWRkKHksbSksQT1yLnN1YihBLGMpLGQ9ci5tdWwocCx3KSxjPXIubXVsKGgsbSksZD1yLmFkZChjLGQpLGM9ci5zdWIoeSxkKSxkPXIuYWRkKHksZCksbD1yLm11bChjLGQpLHk9ci5hZGQoZyxnKSx5PXIuYWRkKHksZyksbT1yLm11bChwLG0pLHc9ci5tdWwoaCx3KSx5PXIuYWRkKHksbSksbT1yLnN1YihnLG0pLG09ci5tdWwocCxtKSx3PXIuYWRkKHcsbSksZz1yLm11bCh5LHcpLGw9ci5hZGQobCxnKSxnPXIubXVsKEEsdyksYz1yLm11bChULGMpLGM9ci5zdWIoYyxnKSxnPXIubXVsKFQseSksZD1yLm11bChBLGQpLGQ9ci5hZGQoZCxnKSxuZXcgdihjLGwsZCl9c3VidHJhY3QoZSl7cmV0dXJuIHRoaXMuYWRkKGUubmVnYXRlKCkpfWlzMCgpe3JldHVybiB0aGlzLmVxdWFscyh2LlpFUk8pfXdOQUYoZSl7cmV0dXJuIFQud05BRkNhY2hlZCh0aGlzLHksZSwoZT0+e2NvbnN0IHQ9ci5pbnZlcnRCYXRjaChlLm1hcCgoZT0+ZS5weikpKTtyZXR1cm4gZS5tYXAoKChlLHIpPT5lLnRvQWZmaW5lKHRbcl0pKSkubWFwKHYuZnJvbUFmZmluZSl9KSl9bXVsdGlwbHlVbnNhZmUoZSl7Y29uc3Qgbj12LlpFUk87aWYoZT09PWMpcmV0dXJuIG47aWYoaChlKSxlPT09bClyZXR1cm4gdGhpcztjb25zdHtlbmRvOm99PXQ7aWYoIW8pcmV0dXJuIFQudW5zYWZlTGFkZGVyKHRoaXMsZSk7bGV0e2sxbmVnOmksazE6YSxrMm5lZzpzLGsyOnV9PW8uc3BsaXRTY2FsYXIoZSksZD1uLGY9bixwPXRoaXM7Zm9yKDthPmN8fHU+YzspYSZsJiYoZD1kLmFkZChwKSksdSZsJiYoZj1mLmFkZChwKSkscD1wLmRvdWJsZSgpLGE+Pj1sLHU+Pj1sO3JldHVybiBpJiYoZD1kLm5lZ2F0ZSgpKSxzJiYoZj1mLm5lZ2F0ZSgpKSxmPW5ldyB2KHIubXVsKGYucHgsby5iZXRhKSxmLnB5LGYucHopLGQuYWRkKGYpfW11bHRpcGx5KGUpe2goZSk7bGV0IG4sbyxpPWU7Y29uc3R7ZW5kbzphfT10O2lmKGEpe2NvbnN0e2sxbmVnOmUsazE6dCxrMm5lZzpzLGsyOnV9PWEuc3BsaXRTY2FsYXIoaSk7bGV0e3A6YyxmOmx9PXRoaXMud05BRih0KSx7cDpkLGZ9PXRoaXMud05BRih1KTtjPVQuY29uc3RUaW1lTmVnYXRlKGUsYyksZD1ULmNvbnN0VGltZU5lZ2F0ZShzLGQpLGQ9bmV3IHYoci5tdWwoZC5weCxhLmJldGEpLGQucHksZC5weiksbj1jLmFkZChkKSxvPWwuYWRkKGYpfWVsc2V7Y29uc3R7cDplLGY6dH09dGhpcy53TkFGKGkpO249ZSxvPXR9cmV0dXJuIHYubm9ybWFsaXplWihbbixvXSlbMF19bXVsdGlwbHlBbmRBZGRVbnNhZmUoZSx0LHIpe2NvbnN0IG49di5CQVNFLG89KGUsdCk9PnQhPT1jJiZ0IT09bCYmZS5lcXVhbHMobik/ZS5tdWx0aXBseSh0KTplLm11bHRpcGx5VW5zYWZlKHQpLGk9byh0aGlzLHQpLmFkZChvKGUscikpO3JldHVybiBpLmlzMCgpP3ZvaWQgMDppfXRvQWZmaW5lKGUpe2NvbnN0e3B4OnQscHk6bixwejpvfT10aGlzLGk9dGhpcy5pczAoKTtudWxsPT1lJiYoZT1pP3IuT05FOnIuaW52KG8pKTtjb25zdCBhPXIubXVsKHQsZSkscz1yLm11bChuLGUpLHU9ci5tdWwobyxlKTtpZihpKXJldHVybnt4OnIuWkVSTyx5OnIuWkVST307aWYoIXIuZXFsKHUsci5PTkUpKXRocm93IG5ldyBFcnJvcigiaW52WiB3YXMgaW52YWxpZCIpO3JldHVybnt4OmEseTpzfX1pc1RvcnNpb25GcmVlKCl7Y29uc3R7aDplLGlzVG9yc2lvbkZyZWU6cn09dDtpZihlPT09bClyZXR1cm4hMDtpZihyKXJldHVybiByKHYsdGhpcyk7dGhyb3cgbmV3IEVycm9yKCJpc1RvcnNpb25GcmVlKCkgaGFzIG5vdCBiZWVuIGRlY2xhcmVkIGZvciB0aGUgZWxsaXB0aWMgY3VydmUiKX1jbGVhckNvZmFjdG9yKCl7Y29uc3R7aDplLGNsZWFyQ29mYWN0b3I6cn09dDtyZXR1cm4gZT09PWw/dGhpczpyP3Iodix0aGlzKTp0aGlzLm11bHRpcGx5VW5zYWZlKHQuaCl9dG9SYXdCeXRlcyhlPSEwKXtyZXR1cm4gdGhpcy5hc3NlcnRWYWxpZGl0eSgpLHModix0aGlzLGUpfXRvSGV4KGU9ITApe3JldHVybiBvLmJ5dGVzVG9IZXgodGhpcy50b1Jhd0J5dGVzKGUpKX19di5CQVNFPW5ldyB2KHQuR3gsdC5HeSxyLk9ORSksdi5aRVJPPW5ldyB2KHIuWkVSTyxyLk9ORSxyLlpFUk8pO2NvbnN0IG09dC5uQml0TGVuZ3RoLFQ9KDAsYS53TkFGKSh2LHQuZW5kbz9NYXRoLmNlaWwobS8yKTptKTtyZXR1cm57Q1VSVkU6dCxQcm9qZWN0aXZlUG9pbnQ6dixub3JtUHJpdmF0ZUtleVRvU2NhbGFyOmcsd2VpZXJzdHJhc3NFcXVhdGlvbjpkLGlzV2l0aGluQ3VydmVPcmRlcjpwfX1mdW5jdGlvbiBnKGUsdCl7Y29uc3Qgcj1lLk9SREVSO2xldCBuPWM7Zm9yKGxldCBlPXItbDtlJWQ9PT1jO2UvPWQpbis9bDtjb25zdCBvPW4saT0oci1sKS9kKipvLGE9KGktbCkvZCxzPWQqKm8tbCx1PWQqKihvLWwpLGg9ZS5wb3codCxpKSxnPWUucG93KHQsKGkrbCkvZCk7bGV0IHk9KHQscik9PntsZXQgbj1oLGk9ZS5wb3cocixzKSxjPWUuc3FyKGkpO2M9ZS5tdWwoYyxyKTtsZXQgZj1lLm11bCh0LGMpO2Y9ZS5wb3coZixhKSxmPWUubXVsKGYsaSksaT1lLm11bChmLHIpLGM9ZS5tdWwoZix0KTtsZXQgcD1lLm11bChjLGkpO2Y9ZS5wb3cocCx1KTtsZXQgeT1lLmVxbChmLGUuT05FKTtpPWUubXVsKGMsZyksZj1lLm11bChwLG4pLGM9ZS5jbW92KGksYyx5KSxwPWUuY21vdihmLHAseSk7Zm9yKGxldCB0PW87dD5sO3QtLSl7bGV0IHI9ZCoqKHQtZCksbz1lLnBvdyhwLHIpO2NvbnN0IGE9ZS5lcWwobyxlLk9ORSk7aT1lLm11bChjLG4pLG49ZS5tdWwobixuKSxvPWUubXVsKHAsbiksYz1lLmNtb3YoaSxjLGEpLHA9ZS5jbW92KG8scCxhKX1yZXR1cm57aXNWYWxpZDp5LHZhbHVlOmN9fTtpZihlLk9SREVSJXA9PT1mKXtjb25zdCByPShlLk9SREVSLWYpL3Asbj1lLnNxcnQoZS5uZWcodCkpO3k9KHQsbyk9PntsZXQgaT1lLnNxcihvKTtjb25zdCBhPWUubXVsKHQsbyk7aT1lLm11bChpLGEpO2xldCBzPWUucG93KGkscik7cz1lLm11bChzLGEpO2NvbnN0IHU9ZS5tdWwocyxuKSxjPWUubXVsKGUuc3FyKHMpLG8pLGw9ZS5lcWwoYyx0KTtyZXR1cm57aXNWYWxpZDpsLHZhbHVlOmUuY21vdih1LHMsbCl9fX1yZXR1cm4geX10LndlaWVyc3RyYXNzUG9pbnRzPWgsdC53ZWllcnN0cmFzcz1mdW5jdGlvbihlKXtjb25zdCByPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9KDAsYS52YWxpZGF0ZUJhc2ljKShlKTtyZXR1cm4gby52YWxpZGF0ZU9iamVjdCh0LHtoYXNoOiJoYXNoIixobWFjOiJmdW5jdGlvbiIscmFuZG9tQnl0ZXM6ImZ1bmN0aW9uIn0se2JpdHMyaW50OiJmdW5jdGlvbiIsYml0czJpbnRfbW9kTjoiZnVuY3Rpb24iLGxvd1M6ImJvb2xlYW4ifSksT2JqZWN0LmZyZWV6ZSh7bG93UzohMCwuLi50fSl9KGUpLHtGcDpzLG46dX09cixkPXMuQllURVMrMSxmPTIqcy5CWVRFUysxO2Z1bmN0aW9uIHAoZSl7cmV0dXJuIG4ubW9kKGUsdSl9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gbi5pbnZlcnQoZSx1KX1jb25zdHtQcm9qZWN0aXZlUG9pbnQ6eSxub3JtUHJpdmF0ZUtleVRvU2NhbGFyOmIsd2VpZXJzdHJhc3NFcXVhdGlvbjp2LGlzV2l0aGluQ3VydmVPcmRlcjptfT1oKHsuLi5yLHRvQnl0ZXMoZSx0LHIpe2NvbnN0IG49dC50b0FmZmluZSgpLGk9cy50b0J5dGVzKG4ueCksYT1vLmNvbmNhdEJ5dGVzO3JldHVybiByP2EoVWludDhBcnJheS5mcm9tKFt0Lmhhc0V2ZW5ZKCk/MjozXSksaSk6YShVaW50OEFycmF5LmZyb20oWzRdKSxpLHMudG9CeXRlcyhuLnkpKX0sZnJvbUJ5dGVzKGUpe2NvbnN0IHQ9ZS5sZW5ndGgscj1lWzBdLG49ZS5zdWJhcnJheSgxKTtpZih0IT09ZHx8MiE9PXImJjMhPT1yKXtpZih0PT09ZiYmND09PXIpcmV0dXJue3g6cy5mcm9tQnl0ZXMobi5zdWJhcnJheSgwLHMuQllURVMpKSx5OnMuZnJvbUJ5dGVzKG4uc3ViYXJyYXkocy5CWVRFUywyKnMuQllURVMpKX07dGhyb3cgbmV3IEVycm9yKGBQb2ludCBvZiBsZW5ndGggJHt0fSB3YXMgaW52YWxpZC4gRXhwZWN0ZWQgJHtkfSBjb21wcmVzc2VkIGJ5dGVzIG9yICR7Zn0gdW5jb21wcmVzc2VkIGJ5dGVzYCl9e2NvbnN0IGU9by5ieXRlc1RvTnVtYmVyQkUobik7aWYoIShjPChpPWUpJiZpPHMuT1JERVIpKXRocm93IG5ldyBFcnJvcigiUG9pbnQgaXMgbm90IG9uIGN1cnZlIik7Y29uc3QgdD12KGUpO2xldCBhPXMuc3FydCh0KTtyZXR1cm4gMT09KDEmcikhPSgoYSZsKT09PWwpJiYoYT1zLm5lZyhhKSkse3g6ZSx5OmF9fXZhciBpfX0pLFQ9ZT0+by5ieXRlc1RvSGV4KG8ubnVtYmVyVG9CeXRlc0JFKGUsci5uQnl0ZUxlbmd0aCkpO2Z1bmN0aW9uIHcoZSl7cmV0dXJuIGU+dT4+bH1jb25zdCBBPShlLHQscik9Pm8uYnl0ZXNUb051bWJlckJFKGUuc2xpY2UodCxyKSk7Y2xhc3MgUHtjb25zdHJ1Y3RvcihlLHQscil7dGhpcy5yPWUsdGhpcy5zPXQsdGhpcy5yZWNvdmVyeT1yLHRoaXMuYXNzZXJ0VmFsaWRpdHkoKX1zdGF0aWMgZnJvbUNvbXBhY3QoZSl7Y29uc3QgdD1yLm5CeXRlTGVuZ3RoO3JldHVybiBlPSgwLGkuZW5zdXJlQnl0ZXMpKCJjb21wYWN0U2lnbmF0dXJlIixlLDIqdCksbmV3IFAoQShlLDAsdCksQShlLHQsMip0KSl9c3RhdGljIGZyb21ERVIoZSl7Y29uc3R7cixzOm59PXQuREVSLnRvU2lnKCgwLGkuZW5zdXJlQnl0ZXMpKCJERVIiLGUpKTtyZXR1cm4gbmV3IFAocixuKX1hc3NlcnRWYWxpZGl0eSgpe2lmKCFtKHRoaXMucikpdGhyb3cgbmV3IEVycm9yKCJyIG11c3QgYmUgMCA8IHIgPCBDVVJWRS5uIik7aWYoIW0odGhpcy5zKSl0aHJvdyBuZXcgRXJyb3IoInMgbXVzdCBiZSAwIDwgcyA8IENVUlZFLm4iKX1hZGRSZWNvdmVyeUJpdChlKXtyZXR1cm4gbmV3IFAodGhpcy5yLHRoaXMucyxlKX1yZWNvdmVyUHVibGljS2V5KGUpe2NvbnN0e3I6dCxzOm4scmVjb3Zlcnk6b309dGhpcyxhPUUoKDAsaS5lbnN1cmVCeXRlcykoIm1zZ0hhc2giLGUpKTtpZihudWxsPT1vfHwhWzAsMSwyLDNdLmluY2x1ZGVzKG8pKXRocm93IG5ldyBFcnJvcigicmVjb3ZlcnkgaWQgaW52YWxpZCIpO2NvbnN0IHU9Mj09PW98fDM9PT1vP3Qrci5uOnQ7aWYodT49cy5PUkRFUil0aHJvdyBuZXcgRXJyb3IoInJlY292ZXJ5IGlkIDIgb3IgMyBpbnZhbGlkIik7Y29uc3QgYz0wPT0oMSZvKT8iMDIiOiIwMyIsbD15LmZyb21IZXgoYytUKHUpKSxkPWcodSksZj1wKC1hKmQpLGg9cChuKmQpLGI9eS5CQVNFLm11bHRpcGx5QW5kQWRkVW5zYWZlKGwsZixoKTtpZighYil0aHJvdyBuZXcgRXJyb3IoInBvaW50IGF0IGluZmluaWZ5Iik7cmV0dXJuIGIuYXNzZXJ0VmFsaWRpdHkoKSxifWhhc0hpZ2hTKCl7cmV0dXJuIHcodGhpcy5zKX1ub3JtYWxpemVTKCl7cmV0dXJuIHRoaXMuaGFzSGlnaFMoKT9uZXcgUCh0aGlzLnIscCgtdGhpcy5zKSx0aGlzLnJlY292ZXJ5KTp0aGlzfXRvREVSUmF3Qnl0ZXMoKXtyZXR1cm4gby5oZXhUb0J5dGVzKHRoaXMudG9ERVJIZXgoKSl9dG9ERVJIZXgoKXtyZXR1cm4gdC5ERVIuaGV4RnJvbVNpZyh7cjp0aGlzLnIsczp0aGlzLnN9KX10b0NvbXBhY3RSYXdCeXRlcygpe3JldHVybiBvLmhleFRvQnl0ZXModGhpcy50b0NvbXBhY3RIZXgoKSl9dG9Db21wYWN0SGV4KCl7cmV0dXJuIFQodGhpcy5yKStUKHRoaXMucyl9fWNvbnN0IFc9e2lzVmFsaWRQcml2YXRlS2V5KGUpe3RyeXtyZXR1cm4gYihlKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19LG5vcm1Qcml2YXRlS2V5VG9TY2FsYXI6YixyYW5kb21Qcml2YXRlS2V5OigpPT57Y29uc3QgZT1yLnJhbmRvbUJ5dGVzKHMuQllURVMrOCksdD1uLmhhc2hUb1ByaXZhdGVTY2FsYXIoZSx1KTtyZXR1cm4gby5udW1iZXJUb0J5dGVzQkUodCxyLm5CeXRlTGVuZ3RoKX0scHJlY29tcHV0ZTooZT04LHQ9eS5CQVNFKT0+KHQuX3NldFdpbmRvd1NpemUoZSksdC5tdWx0aXBseShCaWdJbnQoMykpLHQpfTtmdW5jdGlvbiBCKGUpe2NvbnN0IHQ9ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkscj0ic3RyaW5nIj09dHlwZW9mIGUsbj0odHx8cikmJmUubGVuZ3RoO3JldHVybiB0P249PT1kfHxuPT09ZjpyP249PT0yKmR8fG49PT0yKmY6ZSBpbnN0YW5jZW9mIHl9Y29uc3QgQz1yLmJpdHMyaW50fHxmdW5jdGlvbihlKXtjb25zdCB0PW8uYnl0ZXNUb051bWJlckJFKGUpLG49OCplLmxlbmd0aC1yLm5CaXRMZW5ndGg7cmV0dXJuIG4+MD90Pj5CaWdJbnQobik6dH0sRT1yLmJpdHMyaW50X21vZE58fGZ1bmN0aW9uKGUpe3JldHVybiBwKEMoZSkpfSxNPW8uYml0TWFzayhyLm5CaXRMZW5ndGgpO2Z1bmN0aW9uIGsoZSl7aWYoImJpZ2ludCIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiYmlnaW50IGV4cGVjdGVkIik7aWYoIShjPD1lJiZlPE0pKXRocm93IG5ldyBFcnJvcihgYmlnaW50IGV4cGVjdGVkIDwgMl4ke3IubkJpdExlbmd0aH1gKTtyZXR1cm4gby5udW1iZXJUb0J5dGVzQkUoZSxyLm5CeXRlTGVuZ3RoKX1jb25zdCBJPXtsb3dTOnIubG93UyxwcmVoYXNoOiExfSxPPXtsb3dTOnIubG93UyxwcmVoYXNoOiExfTtyZXR1cm4geS5CQVNFLl9zZXRXaW5kb3dTaXplKDgpLHtDVVJWRTpyLGdldFB1YmxpY0tleTpmdW5jdGlvbihlLHQ9ITApe3JldHVybiB5LmZyb21Qcml2YXRlS2V5KGUpLnRvUmF3Qnl0ZXModCl9LGdldFNoYXJlZFNlY3JldDpmdW5jdGlvbihlLHQscj0hMCl7aWYoQihlKSl0aHJvdyBuZXcgRXJyb3IoImZpcnN0IGFyZyBtdXN0IGJlIHByaXZhdGUga2V5Iik7aWYoIUIodCkpdGhyb3cgbmV3IEVycm9yKCJzZWNvbmQgYXJnIG11c3QgYmUgcHVibGljIGtleSIpO3JldHVybiB5LmZyb21IZXgodCkubXVsdGlwbHkoYihlKSkudG9SYXdCeXRlcyhyKX0sc2lnbjpmdW5jdGlvbihlLHQsbj1JKXtjb25zdHtzZWVkOmEsazJzaWc6dX09ZnVuY3Rpb24oZSx0LG49SSl7aWYoWyJyZWNvdmVyZWQiLCJjYW5vbmljYWwiXS5zb21lKChlPT5lIGluIG4pKSl0aHJvdyBuZXcgRXJyb3IoInNpZ24oKSBsZWdhY3kgb3B0aW9ucyBub3Qgc3VwcG9ydGVkIik7Y29uc3R7aGFzaDphLHJhbmRvbUJ5dGVzOnV9PXI7bGV0e2xvd1M6ZCxwcmVoYXNoOmYsZXh0cmFFbnRyb3B5Omh9PW47bnVsbD09ZCYmKGQ9ITApLGU9KDAsaS5lbnN1cmVCeXRlcykoIm1zZ0hhc2giLGUpLGYmJihlPSgwLGkuZW5zdXJlQnl0ZXMpKCJwcmVoYXNoZWQgbXNnSGFzaCIsYShlKSkpO2NvbnN0IHY9RShlKSxUPWIodCksQT1bayhUKSxrKHYpXTtpZihudWxsIT1oKXtjb25zdCBlPSEwPT09aD91KHMuQllURVMpOmg7QS5wdXNoKCgwLGkuZW5zdXJlQnl0ZXMpKCJleHRyYUVudHJvcHkiLGUscy5CWVRFUykpfWNvbnN0IFc9by5jb25jYXRCeXRlcyguLi5BKSxCPXY7cmV0dXJue3NlZWQ6VyxrMnNpZzpmdW5jdGlvbihlKXtjb25zdCB0PUMoZSk7aWYoIW0odCkpcmV0dXJuO2NvbnN0IHI9Zyh0KSxuPXkuQkFTRS5tdWx0aXBseSh0KS50b0FmZmluZSgpLG89cChuLngpO2lmKG89PT1jKXJldHVybjtjb25zdCBpPXAocipwKEIrbypUKSk7aWYoaT09PWMpcmV0dXJuO2xldCBhPShuLng9PT1vPzA6Mil8TnVtYmVyKG4ueSZsKSxzPWk7cmV0dXJuIGQmJncoaSkmJihzPWZ1bmN0aW9uKGUpe3JldHVybiB3KGUpP3AoLWUpOmV9KGkpLGFePTEpLG5ldyBQKG8scyxhKX19fShlLHQsbik7cmV0dXJuIG8uY3JlYXRlSG1hY0RyYmcoci5oYXNoLm91dHB1dExlbixyLm5CeXRlTGVuZ3RoLHIuaG1hYykoYSx1KX0sdmVyaWZ5OmZ1bmN0aW9uKGUsbixvLGE9Tyl7Y29uc3Qgcz1lO2lmKG49KDAsaS5lbnN1cmVCeXRlcykoIm1zZ0hhc2giLG4pLG89KDAsaS5lbnN1cmVCeXRlcykoInB1YmxpY0tleSIsbyksInN0cmljdCJpbiBhKXRocm93IG5ldyBFcnJvcigib3B0aW9ucy5zdHJpY3Qgd2FzIHJlbmFtZWQgdG8gbG93UyIpO2NvbnN0e2xvd1M6dSxwcmVoYXNoOmN9PWE7bGV0IGwsZDt0cnl7aWYoInN0cmluZyI9PXR5cGVvZiBzfHxzIGluc3RhbmNlb2YgVWludDhBcnJheSl0cnl7bD1QLmZyb21ERVIocyl9Y2F0Y2goZSl7aWYoIShlIGluc3RhbmNlb2YgdC5ERVIuRXJyKSl0aHJvdyBlO2w9UC5mcm9tQ29tcGFjdChzKX1lbHNle2lmKCJvYmplY3QiIT10eXBlb2Ygc3x8ImJpZ2ludCIhPXR5cGVvZiBzLnJ8fCJiaWdpbnQiIT10eXBlb2Ygcy5zKXRocm93IG5ldyBFcnJvcigiUEFSU0UiKTt7Y29uc3R7cjplLHM6dH09cztsPW5ldyBQKGUsdCl9fWQ9eS5mcm9tSGV4KG8pfWNhdGNoKGUpe2lmKCJQQVJTRSI9PT1lLm1lc3NhZ2UpdGhyb3cgbmV3IEVycm9yKCJzaWduYXR1cmUgbXVzdCBiZSBTaWduYXR1cmUgaW5zdGFuY2UsIFVpbnQ4QXJyYXkgb3IgaGV4IHN0cmluZyIpO3JldHVybiExfWlmKHUmJmwuaGFzSGlnaFMoKSlyZXR1cm4hMTtjJiYobj1yLmhhc2gobikpO2NvbnN0e3I6ZixzOmh9PWwsYj1FKG4pLHY9ZyhoKSxtPXAoYip2KSxUPXAoZip2KSx3PXkuQkFTRS5tdWx0aXBseUFuZEFkZFVuc2FmZShkLG0sVCk/LnRvQWZmaW5lKCk7cmV0dXJuISF3JiZwKHcueCk9PT1mfSxQcm9qZWN0aXZlUG9pbnQ6eSxTaWduYXR1cmU6UCx1dGlsczpXfX0sdC5TV1VGcFNxcnRSYXRpbz1nLHQubWFwVG9DdXJ2ZVNpbXBsZVNXVT1mdW5jdGlvbihlLHQpe2lmKG4udmFsaWRhdGVGaWVsZChlKSwhZS5pc1ZhbGlkKHQuQSl8fCFlLmlzVmFsaWQodC5CKXx8IWUuaXNWYWxpZCh0LlopKXRocm93IG5ldyBFcnJvcigibWFwVG9DdXJ2ZVNpbXBsZVNXVTogaW52YWxpZCBvcHRzIik7Y29uc3Qgcj1nKGUsdC5aKTtpZighZS5pc09kZCl0aHJvdyBuZXcgRXJyb3IoIkZwLmlzT2RkIGlzIG5vdCBpbXBsZW1lbnRlZCEiKTtyZXR1cm4gbj0+e2xldCBvLGksYSxzLHUsYyxsLGQ7bz1lLnNxcihuKSxvPWUubXVsKG8sdC5aKSxpPWUuc3FyKG8pLGk9ZS5hZGQoaSxvKSxhPWUuYWRkKGksZS5PTkUpLGE9ZS5tdWwoYSx0LkIpLHM9ZS5jbW92KHQuWixlLm5lZyhpKSwhZS5lcWwoaSxlLlpFUk8pKSxzPWUubXVsKHMsdC5BKSxpPWUuc3FyKGEpLGM9ZS5zcXIocyksdT1lLm11bChjLHQuQSksaT1lLmFkZChpLHUpLGk9ZS5tdWwoaSxhKSxjPWUubXVsKGMscyksdT1lLm11bChjLHQuQiksaT1lLmFkZChpLHUpLGw9ZS5tdWwobyxhKTtjb25zdHtpc1ZhbGlkOmYsdmFsdWU6cH09cihpLGMpO2Q9ZS5tdWwobyxuKSxkPWUubXVsKGQscCksbD1lLmNtb3YobCxhLGYpLGQ9ZS5jbW92KGQscCxmKTtjb25zdCBoPWUuaXNPZGQobik9PT1lLmlzT2RkKGQpO3JldHVybiBkPWUuY21vdihlLm5lZyhkKSxkLGgpLGw9ZS5kaXYobCxzKSx7eDpsLHk6ZH19fX0sMzE1MDooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe2lmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihlKXx8ZTwwKXRocm93IG5ldyBFcnJvcihgV3JvbmcgcG9zaXRpdmUgaW50ZWdlcjogJHtlfWApfWZ1bmN0aW9uIG4oZSl7aWYoImJvb2xlYW4iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGJvb2xlYW4sIG5vdCAke2V9YCl9ZnVuY3Rpb24gbyhlLC4uLnQpe2lmKCEoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIFVpbnQ4QXJyYXkiKTtpZih0Lmxlbmd0aD4wJiYhdC5pbmNsdWRlcyhlLmxlbmd0aCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgVWludDhBcnJheSBvZiBsZW5ndGggJHt0fSwgbm90IG9mIGxlbmd0aD0ke2UubGVuZ3RofWApfWZ1bmN0aW9uIGkoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBlLmNyZWF0ZSl0aHJvdyBuZXcgRXJyb3IoIkhhc2ggc2hvdWxkIGJlIHdyYXBwZWQgYnkgdXRpbHMud3JhcENvbnN0cnVjdG9yIik7cihlLm91dHB1dExlbikscihlLmJsb2NrTGVuKX1mdW5jdGlvbiBhKGUsdD0hMCl7aWYoZS5kZXN0cm95ZWQpdGhyb3cgbmV3IEVycm9yKCJIYXNoIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZCIpO2lmKHQmJmUuZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJIYXNoI2RpZ2VzdCgpIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIil9ZnVuY3Rpb24gcyhlLHQpe28oZSk7Y29uc3Qgcj10Lm91dHB1dExlbjtpZihlLmxlbmd0aDxyKXRocm93IG5ldyBFcnJvcihgZGlnZXN0SW50bygpIGV4cGVjdHMgb3V0cHV0IGJ1ZmZlciBvZiBsZW5ndGggYXQgbGVhc3QgJHtyfWApfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0Lm91dHB1dD10LmV4aXN0cz10Lmhhc2g9dC5ieXRlcz10LmJvb2w9dC5udW1iZXI9dm9pZCAwLHQubnVtYmVyPXIsdC5ib29sPW4sdC5ieXRlcz1vLHQuaGFzaD1pLHQuZXhpc3RzPWEsdC5vdXRwdXQ9cztjb25zdCB1PXtudW1iZXI6cixib29sOm4sYnl0ZXM6byxoYXNoOmksZXhpc3RzOmEsb3V0cHV0OnN9O3QuZGVmYXVsdD11fSw4NzgzOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuU0hBMj12b2lkIDA7Y29uc3Qgbj1yKDMxNTApLG89cigxNzE3KTtjbGFzcyBpIGV4dGVuZHMgby5IYXNoe2NvbnN0cnVjdG9yKGUsdCxyLG4pe3N1cGVyKCksdGhpcy5ibG9ja0xlbj1lLHRoaXMub3V0cHV0TGVuPXQsdGhpcy5wYWRPZmZzZXQ9cix0aGlzLmlzTEU9bix0aGlzLmZpbmlzaGVkPSExLHRoaXMubGVuZ3RoPTAsdGhpcy5wb3M9MCx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheShlKSx0aGlzLnZpZXc9KDAsby5jcmVhdGVWaWV3KSh0aGlzLmJ1ZmZlcil9dXBkYXRlKGUpe24uZGVmYXVsdC5leGlzdHModGhpcyk7Y29uc3R7dmlldzp0LGJ1ZmZlcjpyLGJsb2NrTGVuOml9PXRoaXMsYT0oZT0oMCxvLnRvQnl0ZXMpKGUpKS5sZW5ndGg7Zm9yKGxldCBuPTA7bjxhOyl7Y29uc3Qgcz1NYXRoLm1pbihpLXRoaXMucG9zLGEtbik7aWYocyE9PWkpci5zZXQoZS5zdWJhcnJheShuLG4rcyksdGhpcy5wb3MpLHRoaXMucG9zKz1zLG4rPXMsdGhpcy5wb3M9PT1pJiYodGhpcy5wcm9jZXNzKHQsMCksdGhpcy5wb3M9MCk7ZWxzZXtjb25zdCB0PSgwLG8uY3JlYXRlVmlldykoZSk7Zm9yKDtpPD1hLW47bis9aSl0aGlzLnByb2Nlc3ModCxuKX19cmV0dXJuIHRoaXMubGVuZ3RoKz1lLmxlbmd0aCx0aGlzLnJvdW5kQ2xlYW4oKSx0aGlzfWRpZ2VzdEludG8oZSl7bi5kZWZhdWx0LmV4aXN0cyh0aGlzKSxuLmRlZmF1bHQub3V0cHV0KGUsdGhpcyksdGhpcy5maW5pc2hlZD0hMDtjb25zdHtidWZmZXI6dCx2aWV3OnIsYmxvY2tMZW46aSxpc0xFOmF9PXRoaXM7bGV0e3BvczpzfT10aGlzO3RbcysrXT0xMjgsdGhpcy5idWZmZXIuc3ViYXJyYXkocykuZmlsbCgwKSx0aGlzLnBhZE9mZnNldD5pLXMmJih0aGlzLnByb2Nlc3MociwwKSxzPTApO2ZvcihsZXQgZT1zO2U8aTtlKyspdFtlXT0wOyFmdW5jdGlvbihlLHQscixuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5zZXRCaWdVaW50NjQpcmV0dXJuIGUuc2V0QmlnVWludDY0KHQscixuKTtjb25zdCBvPUJpZ0ludCgzMiksaT1CaWdJbnQoNDI5NDk2NzI5NSksYT1OdW1iZXIocj4+byZpKSxzPU51bWJlcihyJmkpLHU9bj80OjAsYz1uPzA6NDtlLnNldFVpbnQzMih0K3UsYSxuKSxlLnNldFVpbnQzMih0K2MscyxuKX0ocixpLTgsQmlnSW50KDgqdGhpcy5sZW5ndGgpLGEpLHRoaXMucHJvY2VzcyhyLDApO2NvbnN0IHU9KDAsby5jcmVhdGVWaWV3KShlKSxjPXRoaXMub3V0cHV0TGVuO2lmKGMlNCl0aHJvdyBuZXcgRXJyb3IoIl9zaGEyOiBvdXRwdXRMZW4gc2hvdWxkIGJlIGFsaWduZWQgdG8gMzJiaXQiKTtjb25zdCBsPWMvNCxkPXRoaXMuZ2V0KCk7aWYobD5kLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIl9zaGEyOiBvdXRwdXRMZW4gYmlnZ2VyIHRoYW4gc3RhdGUiKTtmb3IobGV0IGU9MDtlPGw7ZSsrKXUuc2V0VWludDMyKDQqZSxkW2VdLGEpfWRpZ2VzdCgpe2NvbnN0e2J1ZmZlcjplLG91dHB1dExlbjp0fT10aGlzO3RoaXMuZGlnZXN0SW50byhlKTtjb25zdCByPWUuc2xpY2UoMCx0KTtyZXR1cm4gdGhpcy5kZXN0cm95KCkscn1fY2xvbmVJbnRvKGUpe2V8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKSxlLnNldCguLi50aGlzLmdldCgpKTtjb25zdHtibG9ja0xlbjp0LGJ1ZmZlcjpyLGxlbmd0aDpuLGZpbmlzaGVkOm8sZGVzdHJveWVkOmkscG9zOmF9PXRoaXM7cmV0dXJuIGUubGVuZ3RoPW4sZS5wb3M9YSxlLmZpbmlzaGVkPW8sZS5kZXN0cm95ZWQ9aSxuJXQmJmUuYnVmZmVyLnNldChyKSxlfX10LlNIQTI9aX0sNzU2NDooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5jcnlwdG89dm9pZCAwLHQuY3J5cHRvPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmImNyeXB0byJpbiBnbG9iYWxUaGlzP2dsb2JhbFRoaXMuY3J5cHRvOnZvaWQgMH0sMTEyODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmhtYWM9dm9pZCAwO2NvbnN0IG49cigzMTUwKSxvPXIoMTcxNyk7Y2xhc3MgaSBleHRlbmRzIG8uSGFzaHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCksdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMSxuLmRlZmF1bHQuaGFzaChlKTtjb25zdCByPSgwLG8udG9CeXRlcykodCk7aWYodGhpcy5pSGFzaD1lLmNyZWF0ZSgpLCJmdW5jdGlvbiIhPXR5cGVvZiB0aGlzLmlIYXNoLnVwZGF0ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBpbnN0YW5jZSBvZiBjbGFzcyB3aGljaCBleHRlbmRzIHV0aWxzLkhhc2giKTt0aGlzLmJsb2NrTGVuPXRoaXMuaUhhc2guYmxvY2tMZW4sdGhpcy5vdXRwdXRMZW49dGhpcy5pSGFzaC5vdXRwdXRMZW47Y29uc3QgaT10aGlzLmJsb2NrTGVuLGE9bmV3IFVpbnQ4QXJyYXkoaSk7YS5zZXQoci5sZW5ndGg+aT9lLmNyZWF0ZSgpLnVwZGF0ZShyKS5kaWdlc3QoKTpyKTtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKylhW2VdXj01NDt0aGlzLmlIYXNoLnVwZGF0ZShhKSx0aGlzLm9IYXNoPWUuY3JlYXRlKCk7Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKyspYVtlXV49MTA2O3RoaXMub0hhc2gudXBkYXRlKGEpLGEuZmlsbCgwKX11cGRhdGUoZSl7cmV0dXJuIG4uZGVmYXVsdC5leGlzdHModGhpcyksdGhpcy5pSGFzaC51cGRhdGUoZSksdGhpc31kaWdlc3RJbnRvKGUpe24uZGVmYXVsdC5leGlzdHModGhpcyksbi5kZWZhdWx0LmJ5dGVzKGUsdGhpcy5vdXRwdXRMZW4pLHRoaXMuZmluaXNoZWQ9ITAsdGhpcy5pSGFzaC5kaWdlc3RJbnRvKGUpLHRoaXMub0hhc2gudXBkYXRlKGUpLHRoaXMub0hhc2guZGlnZXN0SW50byhlKSx0aGlzLmRlc3Ryb3koKX1kaWdlc3QoKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KHRoaXMub0hhc2gub3V0cHV0TGVuKTtyZXR1cm4gdGhpcy5kaWdlc3RJbnRvKGUpLGV9X2Nsb25lSW50byhlKXtlfHwoZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSx7fSkpO2NvbnN0e29IYXNoOnQsaUhhc2g6cixmaW5pc2hlZDpuLGRlc3Ryb3llZDpvLGJsb2NrTGVuOmksb3V0cHV0TGVuOmF9PXRoaXM7cmV0dXJuIGUuZmluaXNoZWQ9bixlLmRlc3Ryb3llZD1vLGUuYmxvY2tMZW49aSxlLm91dHB1dExlbj1hLGUub0hhc2g9dC5fY2xvbmVJbnRvKGUub0hhc2gpLGUuaUhhc2g9ci5fY2xvbmVJbnRvKGUuaUhhc2gpLGV9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMub0hhc2guZGVzdHJveSgpLHRoaXMuaUhhc2guZGVzdHJveSgpfX10LmhtYWM9KGUsdCxyKT0+bmV3IGkoZSx0KS51cGRhdGUocikuZGlnZXN0KCksdC5obWFjLmNyZWF0ZT0oZSx0KT0+bmV3IGkoZSx0KX0sNzk2ODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LnNoYTIyND10LnNoYTI1Nj12b2lkIDA7Y29uc3Qgbj1yKDg3ODMpLG89cigxNzE3KSxpPShlLHQscik9PmUmdF5lJnJedCZyLGE9bmV3IFVpbnQzMkFycmF5KFsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdKSxzPW5ldyBVaW50MzJBcnJheShbMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdKSx1PW5ldyBVaW50MzJBcnJheSg2NCk7Y2xhc3MgYyBleHRlbmRzIG4uU0hBMntjb25zdHJ1Y3Rvcigpe3N1cGVyKDY0LDMyLDgsITEpLHRoaXMuQT0wfHNbMF0sdGhpcy5CPTB8c1sxXSx0aGlzLkM9MHxzWzJdLHRoaXMuRD0wfHNbM10sdGhpcy5FPTB8c1s0XSx0aGlzLkY9MHxzWzVdLHRoaXMuRz0wfHNbNl0sdGhpcy5IPTB8c1s3XX1nZXQoKXtjb25zdHtBOmUsQjp0LEM6cixEOm4sRTpvLEY6aSxHOmEsSDpzfT10aGlzO3JldHVybltlLHQscixuLG8saSxhLHNdfXNldChlLHQscixuLG8saSxhLHMpe3RoaXMuQT0wfGUsdGhpcy5CPTB8dCx0aGlzLkM9MHxyLHRoaXMuRD0wfG4sdGhpcy5FPTB8byx0aGlzLkY9MHxpLHRoaXMuRz0wfGEsdGhpcy5IPTB8c31wcm9jZXNzKGUsdCl7Zm9yKGxldCByPTA7cjwxNjtyKyssdCs9NCl1W3JdPWUuZ2V0VWludDMyKHQsITEpO2ZvcihsZXQgZT0xNjtlPDY0O2UrKyl7Y29uc3QgdD11W2UtMTVdLHI9dVtlLTJdLG49KDAsby5yb3RyKSh0LDcpXigwLG8ucm90cikodCwxOCledD4+PjMsaT0oMCxvLnJvdHIpKHIsMTcpXigwLG8ucm90cikociwxOSlecj4+PjEwO3VbZV09aSt1W2UtN10rbit1W2UtMTZdfDB9bGV0e0E6cixCOm4sQzpzLEQ6YyxFOmwsRjpkLEc6ZixIOnB9PXRoaXM7Zm9yKGxldCBlPTA7ZTw2NDtlKyspe2NvbnN0IHQ9cCsoKDAsby5yb3RyKShsLDYpXigwLG8ucm90cikobCwxMSleKDAsby5yb3RyKShsLDI1KSkrKChoPWwpJmRefmgmZikrYVtlXSt1W2VdfDAsZz0oKDAsby5yb3RyKShyLDIpXigwLG8ucm90cikociwxMyleKDAsby5yb3RyKShyLDIyKSkraShyLG4scyl8MDtwPWYsZj1kLGQ9bCxsPWMrdHwwLGM9cyxzPW4sbj1yLHI9dCtnfDB9dmFyIGg7cj1yK3RoaXMuQXwwLG49bit0aGlzLkJ8MCxzPXMrdGhpcy5DfDAsYz1jK3RoaXMuRHwwLGw9bCt0aGlzLkV8MCxkPWQrdGhpcy5GfDAsZj1mK3RoaXMuR3wwLHA9cCt0aGlzLkh8MCx0aGlzLnNldChyLG4scyxjLGwsZCxmLHApfXJvdW5kQ2xlYW4oKXt1LmZpbGwoMCl9ZGVzdHJveSgpe3RoaXMuc2V0KDAsMCwwLDAsMCwwLDAsMCksdGhpcy5idWZmZXIuZmlsbCgwKX19Y2xhc3MgbCBleHRlbmRzIGN7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuQT0tMTA1NjU5NjI2NCx0aGlzLkI9OTE0MTUwNjYzLHRoaXMuQz04MTI3MDI5OTksdGhpcy5EPS0xNTAwNTQ1OTksdGhpcy5FPS00MTkxNDM5LHRoaXMuRj0xNzUwNjAzMDI1LHRoaXMuRz0xNjk0MDc2ODM5LHRoaXMuSD0tMTA5MDg5MTg2OCx0aGlzLm91dHB1dExlbj0yOH19dC5zaGEyNTY9KDAsby53cmFwQ29uc3RydWN0b3IpKCgoKT0+bmV3IGMpKSx0LnNoYTIyND0oMCxvLndyYXBDb25zdHJ1Y3RvcikoKCgpPT5uZXcgbCkpfSwxNzE3OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQucmFuZG9tQnl0ZXM9dC53cmFwQ29uc3RydWN0b3JXaXRoT3B0cz10LndyYXBDb25zdHJ1Y3Rvcj10LmNoZWNrT3B0cz10Lkhhc2g9dC5jb25jYXRCeXRlcz10LnRvQnl0ZXM9dC51dGY4VG9CeXRlcz10LmFzeW5jTG9vcD10Lm5leHRUaWNrPXQuaGV4VG9CeXRlcz10LmJ5dGVzVG9IZXg9dC5pc0xFPXQucm90cj10LmNyZWF0ZVZpZXc9dC51MzI9dC51OD12b2lkIDA7Y29uc3Qgbj1yKDc1NjQpO2lmKHQudTg9ZT0+bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCksdC51MzI9ZT0+bmV3IFVpbnQzMkFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxNYXRoLmZsb29yKGUuYnl0ZUxlbmd0aC80KSksdC5jcmVhdGVWaWV3PWU9Pm5ldyBEYXRhVmlldyhlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKSx0LnJvdHI9KGUsdCk9PmU8PDMyLXR8ZT4+PnQsdC5pc0xFPTY4PT09bmV3IFVpbnQ4QXJyYXkobmV3IFVpbnQzMkFycmF5KFsyODc0NTQwMjBdKS5idWZmZXIpWzBdLCF0LmlzTEUpdGhyb3cgbmV3IEVycm9yKCJOb24gbGl0dGxlLWVuZGlhbiBoYXJkd2FyZSBpcyBub3Qgc3VwcG9ydGVkIik7Y29uc3Qgbz1BcnJheS5mcm9tKHtsZW5ndGg6MjU2fSwoKGUsdCk9PnQudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkpO2Z1bmN0aW9uIGkoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoInV0ZjhUb0J5dGVzIGV4cGVjdGVkIHN0cmluZywgZ290ICIrdHlwZW9mIGUpO3JldHVybihuZXcgVGV4dEVuY29kZXIpLmVuY29kZShlKX1mdW5jdGlvbiBhKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9aShlKSksIShlIGluc3RhbmNlb2YgVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgaW5wdXQgdHlwZSBpcyBVaW50OEFycmF5IChnb3QgJHt0eXBlb2YgZX0pYCk7cmV0dXJuIGV9dC5ieXRlc1RvSGV4PWZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBFcnJvcigiVWludDhBcnJheSBleHBlY3RlZCIpO2xldCB0PSIiO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cisrKXQrPW9bZVtyXV07cmV0dXJuIHR9LHQuaGV4VG9CeXRlcz1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiaGV4VG9CeXRlczogZXhwZWN0ZWQgc3RyaW5nLCBnb3QgIit0eXBlb2YgZSk7aWYoZS5sZW5ndGglMil0aHJvdyBuZXcgRXJyb3IoImhleFRvQnl0ZXM6IHJlY2VpdmVkIGludmFsaWQgdW5wYWRkZWQgaGV4Iik7Y29uc3QgdD1uZXcgVWludDhBcnJheShlLmxlbmd0aC8yKTtmb3IobGV0IHI9MDtyPHQubGVuZ3RoO3IrKyl7Y29uc3Qgbj0yKnIsbz1lLnNsaWNlKG4sbisyKSxpPU51bWJlci5wYXJzZUludChvLDE2KTtpZihOdW1iZXIuaXNOYU4oaSl8fGk8MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYnl0ZSBzZXF1ZW5jZSIpO3Rbcl09aX1yZXR1cm4gdH0sdC5uZXh0VGljaz1hc3luYygpPT57fSx0LmFzeW5jTG9vcD1hc3luYyBmdW5jdGlvbihlLHIsbil7bGV0IG89RGF0ZS5ub3coKTtmb3IobGV0IGk9MDtpPGU7aSsrKXtuKGkpO2NvbnN0IGU9RGF0ZS5ub3coKS1vO2U+PTAmJmU8cnx8KGF3YWl0KDAsdC5uZXh0VGljaykoKSxvKz1lKX19LHQudXRmOFRvQnl0ZXM9aSx0LnRvQnl0ZXM9YSx0LmNvbmNhdEJ5dGVzPWZ1bmN0aW9uKC4uLmUpe2lmKCFlLmV2ZXJ5KChlPT5lIGluc3RhbmNlb2YgVWludDhBcnJheSkpKXRocm93IG5ldyBFcnJvcigiVWludDhBcnJheSBsaXN0IGV4cGVjdGVkIik7aWYoMT09PWUubGVuZ3RoKXJldHVybiBlWzBdO2NvbnN0IHQ9ZS5yZWR1Y2UoKChlLHQpPT5lK3QubGVuZ3RoKSwwKSxyPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgdD0wLG49MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbz1lW3RdO3Iuc2V0KG8sbiksbis9by5sZW5ndGh9cmV0dXJuIHJ9LHQuSGFzaD1jbGFzc3tjbG9uZSgpe3JldHVybiB0aGlzLl9jbG9uZUludG8oKX19O3QuY2hlY2tPcHRzPWZ1bmN0aW9uKGUsdCl7aWYodm9pZCAwIT09dCYmKCJvYmplY3QiIT10eXBlb2YgdHx8KHI9dCwiW29iamVjdCBPYmplY3RdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKXx8ci5jb25zdHJ1Y3RvciE9PU9iamVjdCkpKXRocm93IG5ldyBUeXBlRXJyb3IoIk9wdGlvbnMgc2hvdWxkIGJlIG9iamVjdCBvciB1bmRlZmluZWQiKTt2YXIgcjtyZXR1cm4gT2JqZWN0LmFzc2lnbihlLHQpfSx0LndyYXBDb25zdHJ1Y3Rvcj1mdW5jdGlvbihlKXtjb25zdCB0PXQ9PmUoKS51cGRhdGUoYSh0KSkuZGlnZXN0KCkscj1lKCk7cmV0dXJuIHQub3V0cHV0TGVuPXIub3V0cHV0TGVuLHQuYmxvY2tMZW49ci5ibG9ja0xlbix0LmNyZWF0ZT0oKT0+ZSgpLHR9LHQud3JhcENvbnN0cnVjdG9yV2l0aE9wdHM9ZnVuY3Rpb24oZSl7Y29uc3QgdD0odCxyKT0+ZShyKS51cGRhdGUoYSh0KSkuZGlnZXN0KCkscj1lKHt9KTtyZXR1cm4gdC5vdXRwdXRMZW49ci5vdXRwdXRMZW4sdC5ibG9ja0xlbj1yLmJsb2NrTGVuLHQuY3JlYXRlPXQ9PmUodCksdH0sdC5yYW5kb21CeXRlcz1mdW5jdGlvbihlPTMyKXtpZihuLmNyeXB0byYmImZ1bmN0aW9uIj09dHlwZW9mIG4uY3J5cHRvLmdldFJhbmRvbVZhbHVlcylyZXR1cm4gbi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KGUpKTt0aHJvdyBuZXcgRXJyb3IoImNyeXB0by5nZXRSYW5kb21WYWx1ZXMgbXVzdCBiZSBkZWZpbmVkIil9fSwzNDk3OihlLHQscik9PnsidXNlIHN0cmljdCI7dmFyIG47T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZW5jb2RlVG9DdXJ2ZT10Lmhhc2hUb0N1cnZlPXQuc2Nobm9ycj10LnNlY3AyNTZrMT12b2lkIDA7Y29uc3Qgbz1yKDc5NjgpLGk9cigxNzE3KSxhPXIoNDYzMikscz1yKDY1NTEpLHU9cigyMTkpLGM9cig1MTM0KSxsPXIoOTA4MiksZD1CaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmVmZmZmZmMyZiIpLGY9QmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZlYmFhZWRjZTZhZjQ4YTAzYmJmZDI1ZThjZDAzNjQxNDEiKSxwPUJpZ0ludCgxKSxoPUJpZ0ludCgyKSxnPShlLHQpPT4oZSt0L2gpL3Q7ZnVuY3Rpb24geShlKXtjb25zdCB0PWQscj1CaWdJbnQoMyksbj1CaWdJbnQoNiksbz1CaWdJbnQoMTEpLGk9QmlnSW50KDIyKSxzPUJpZ0ludCgyMyksdT1CaWdJbnQoNDQpLGM9QmlnSW50KDg4KSxsPWUqZSplJXQsZj1sKmwqZSV0LHA9KDAsYS5wb3cyKShmLHIsdCkqZiV0LGc9KDAsYS5wb3cyKShwLHIsdCkqZiV0LHk9KDAsYS5wb3cyKShnLGgsdCkqbCV0LHY9KDAsYS5wb3cyKSh5LG8sdCkqeSV0LG09KDAsYS5wb3cyKSh2LGksdCkqdiV0LFQ9KDAsYS5wb3cyKShtLHUsdCkqbSV0LHc9KDAsYS5wb3cyKShULGMsdCkqVCV0LEE9KDAsYS5wb3cyKSh3LHUsdCkqbSV0LFA9KDAsYS5wb3cyKShBLHIsdCkqZiV0LFc9KDAsYS5wb3cyKShQLHMsdCkqdiV0LEI9KDAsYS5wb3cyKShXLG4sdCkqbCV0LEM9KDAsYS5wb3cyKShCLGgsdCk7aWYoIWIuZXFsKGIuc3FyKEMpLGUpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc3F1YXJlIHJvb3QiKTtyZXR1cm4gQ31jb25zdCBiPSgwLGEuRmllbGQpKGQsdm9pZCAwLHZvaWQgMCx7c3FydDp5fSk7dC5zZWNwMjU2azE9KDAsbC5jcmVhdGVDdXJ2ZSkoe2E6QmlnSW50KDApLGI6QmlnSW50KDcpLEZwOmIsbjpmLEd4OkJpZ0ludCgiNTUwNjYyNjMwMjIyNzczNDM2Njk1Nzg3MTg4OTUxNjg1MzQzMjYyNTA2MDM0NTM3Nzc1OTQxNzU1MDAxODczNjAzODkxMTY3MjkyNDAiKSxHeTpCaWdJbnQoIjMyNjcwNTEwMDIwNzU4ODE2OTc4MDgzMDg1MTMwNTA3MDQzMTg0NDcxMjczMzgwNjU5MjQzMjc1OTM4OTA0MzM1NzU3MzM3NDgyNDI0IiksaDpCaWdJbnQoMSksbG93UzohMCxlbmRvOntiZXRhOkJpZ0ludCgiMHg3YWU5NmEyYjY1N2MwNzEwNmU2NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJmNTg5OTVjMTM5NmMyODcxOTUwMWVlIiksc3BsaXRTY2FsYXI6ZT0+e2NvbnN0IHQ9ZixyPUJpZ0ludCgiMHgzMDg2ZDIyMWE3ZDQ2YmNkZTg2YzkwZTQ5Mjg0ZWIxNSIpLG49LXAqQmlnSW50KCIweGU0NDM3ZWQ2MDEwZTg4Mjg2ZjU0N2ZhOTBhYmZlNGMzIiksbz1CaWdJbnQoIjB4MTE0Y2E1MGY3YThlMmYzZjY1N2MxMTA4ZDlkNDRjZmQ4IiksaT1yLHM9QmlnSW50KCIweDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpLHU9ZyhpKmUsdCksYz1nKC1uKmUsdCk7bGV0IGw9KDAsYS5tb2QpKGUtdSpyLWMqbyx0KSxkPSgwLGEubW9kKSgtdSpuLWMqaSx0KTtjb25zdCBoPWw+cyx5PWQ+cztpZihoJiYobD10LWwpLHkmJihkPXQtZCksbD5zfHxkPnMpdGhyb3cgbmV3IEVycm9yKCJzcGxpdFNjYWxhcjogRW5kb21vcnBoaXNtIGZhaWxlZCwgaz0iK2UpO3JldHVybntrMW5lZzpoLGsxOmwsazJuZWc6eSxrMjpkfX19fSxvLnNoYTI1Nik7Y29uc3Qgdj1CaWdJbnQoMCksbT1lPT4iYmlnaW50Ij09dHlwZW9mIGUmJnY8ZSYmZTxkLFQ9ZT0+ImJpZ2ludCI9PXR5cGVvZiBlJiZ2PGUmJmU8Zix3PXt9O2Z1bmN0aW9uIEEoZSwuLi50KXtsZXQgcj13W2VdO2lmKHZvaWQgMD09PXIpe2NvbnN0IHQ9KDAsby5zaGEyNTYpKFVpbnQ4QXJyYXkuZnJvbShlLChlPT5lLmNoYXJDb2RlQXQoMCkpKSk7cj0oMCx1LmNvbmNhdEJ5dGVzKSh0LHQpLHdbZV09cn1yZXR1cm4oMCxvLnNoYTI1NikoKDAsdS5jb25jYXRCeXRlcykociwuLi50KSl9Y29uc3QgUD1lPT5lLnRvUmF3Qnl0ZXMoITApLnNsaWNlKDEpLFc9ZT0+KDAsdS5udW1iZXJUb0J5dGVzQkUpKGUsMzIpLEI9ZT0+KDAsYS5tb2QpKGUsZCksQz1lPT4oMCxhLm1vZCkoZSxmKSxFPXQuc2VjcDI1NmsxLlByb2plY3RpdmVQb2ludCxNPShlLHQscik9PkUuQkFTRS5tdWx0aXBseUFuZEFkZFVuc2FmZShlLHQscik7ZnVuY3Rpb24gayhlKXtsZXQgcj10LnNlY3AyNTZrMS51dGlscy5ub3JtUHJpdmF0ZUtleVRvU2NhbGFyKGUpLG49RS5mcm9tUHJpdmF0ZUtleShyKTtyZXR1cm57c2NhbGFyOm4uaGFzRXZlblkoKT9yOkMoLXIpLGJ5dGVzOlAobil9fWZ1bmN0aW9uIEkoZSl7aWYoIW0oZSkpdGhyb3cgbmV3IEVycm9yKCJiYWQgeDogbmVlZCAwIDwgeCA8IHAiKTtjb25zdCB0PUIoZSplKTtsZXQgcj15KEIodCplK0JpZ0ludCg3KSkpO3IlaCE9PXYmJihyPUIoLXIpKTtjb25zdCBuPW5ldyBFKGUscixwKTtyZXR1cm4gbi5hc3NlcnRWYWxpZGl0eSgpLG59ZnVuY3Rpb24gTyguLi5lKXtyZXR1cm4gQygoMCx1LmJ5dGVzVG9OdW1iZXJCRSkoQSgiQklQMDM0MC9jaGFsbGVuZ2UiLC4uLmUpKSl9ZnVuY3Rpb24geChlLHQscil7Y29uc3Qgbj0oMCx1LmVuc3VyZUJ5dGVzKSgic2lnbmF0dXJlIixlLDY0KSxvPSgwLHUuZW5zdXJlQnl0ZXMpKCJtZXNzYWdlIix0KSxpPSgwLHUuZW5zdXJlQnl0ZXMpKCJwdWJsaWNLZXkiLHIsMzIpO3RyeXtjb25zdCBlPUkoKDAsdS5ieXRlc1RvTnVtYmVyQkUpKGkpKSx0PSgwLHUuYnl0ZXNUb051bWJlckJFKShuLnN1YmFycmF5KDAsMzIpKTtpZighbSh0KSlyZXR1cm4hMTtjb25zdCByPSgwLHUuYnl0ZXNUb051bWJlckJFKShuLnN1YmFycmF5KDMyLDY0KSk7aWYoIVQocikpcmV0dXJuITE7Y29uc3QgYT1PKFcodCksUChlKSxvKSxzPU0oZSxyLEMoLWEpKTtyZXR1cm4hKCFzfHwhcy5oYXNFdmVuWSgpfHxzLnRvQWZmaW5lKCkueCE9PXQpfWNhdGNoKGUpe3JldHVybiExfX10LnNjaG5vcnI9e2dldFB1YmxpY0tleTpmdW5jdGlvbihlKXtyZXR1cm4gayhlKS5ieXRlc30sc2lnbjpmdW5jdGlvbihlLHQscj0oMCxpLnJhbmRvbUJ5dGVzKSgzMikpe2NvbnN0IG49KDAsdS5lbnN1cmVCeXRlcykoIm1lc3NhZ2UiLGUpLHtieXRlczpvLHNjYWxhcjphfT1rKHQpLHM9KDAsdS5lbnN1cmVCeXRlcykoImF1eFJhbmQiLHIsMzIpLGM9VyhhXigwLHUuYnl0ZXNUb051bWJlckJFKShBKCJCSVAwMzQwL2F1eCIscykpKSxsPUEoIkJJUDAzNDAvbm9uY2UiLGMsbyxuKSxkPUMoKDAsdS5ieXRlc1RvTnVtYmVyQkUpKGwpKTtpZihkPT09dil0aHJvdyBuZXcgRXJyb3IoInNpZ24gZmFpbGVkOiBrIGlzIHplcm8iKTtjb25zdHtieXRlczpmLHNjYWxhcjpwfT1rKGQpLGg9TyhmLG8sbiksZz1uZXcgVWludDhBcnJheSg2NCk7aWYoZy5zZXQoZiwwKSxnLnNldChXKEMocCtoKmEpKSwzMiksIXgoZyxuLG8pKXRocm93IG5ldyBFcnJvcigic2lnbjogSW52YWxpZCBzaWduYXR1cmUgcHJvZHVjZWQiKTtyZXR1cm4gZ30sdmVyaWZ5OngsdXRpbHM6e3JhbmRvbVByaXZhdGVLZXk6dC5zZWNwMjU2azEudXRpbHMucmFuZG9tUHJpdmF0ZUtleSxsaWZ0X3g6SSxwb2ludFRvQnl0ZXM6UCxudW1iZXJUb0J5dGVzQkU6dS5udW1iZXJUb0J5dGVzQkUsYnl0ZXNUb051bWJlckJFOnUuYnl0ZXNUb051bWJlckJFLHRhZ2dlZEhhc2g6QSxtb2Q6YS5tb2R9fTtjb25zdCBTPWMuaXNvZ2VueU1hcChiLFtbIjB4OGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGUzOGRhYWFhYThjNyIsIjB4N2QzZDRjODBiYzMyMWQ1YjlmMzE1Y2VhN2ZkNDRjNWQ1OTVkMmZjMGJmNjNiOTJkZmZmMTA0NGYxN2M2NTgxIiwiMHg1MzRjMzI4ZDIzZjIzNGU2ZTJhNDEzZGVjYTI1Y2FlY2U0NTA2MTQ0MDM3YzQwMzE0ZWNiZDBiNTNkOWRkMjYyIiwiMHg4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZTM4ZGFhYWFhODhjIl0sWyIweGQzNTc3MTE5M2Q5NDkxOGE5Y2EzNGNjYmI3YjY0MGRkODZjZDQwOTU0MmY4NDg3ZDlmZTZiNzQ1NzgxZWI0OWIiLCIweGVkYWRjNmY2NDM4M2RjMWRmN2M0YjJkNTFiNTQyMjU0MDZkMzZiNjQxZjVlNDFiYmM1MmE1NjYxMmE4YzZkMTQiLCIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiXSxbIjB4NGJkYTEyZjY4NGJkYTEyZjY4NGJkYTEyZjY4NGJkYTEyZjY4NGJkYTEyZjY4NGJkYTEyZjY4NGI4ZTM4ZTIzYyIsIjB4Yzc1ZTBjMzJkNWNiN2MwZmE5ZDBhNTRiMTJhMGE2ZDU2NDdhYjA0NmQ2ODZkYTZmZGZmYzkwZmMyMDFkNzFhMyIsIjB4MjlhNjE5NDY5MWY5MWE3MzcxNTIwOWVmNjUxMmU1NzY3MjI4MzBhMjAxYmUyMDE4YTc2NWU4NWE5ZWNlZTkzMSIsIjB4MmY2ODRiZGExMmY2ODRiZGExMmY2ODRiZGExMmY2ODRiZGExMmY2ODRiZGExMmY2ODRiZGExMmYzOGUzOGQ4NCJdLFsiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmOTNiIiwiMHg3YTA2NTM0YmI4YmRiNDlmZDVlOWU2NjMyNzIyYzI5ODk0NjdjMWJmYzhlOGQ5NzhkZmI0MjVkMjY4NWMyNTczIiwiMHg2NDg0YWE3MTY1NDVjYTJjZjNhNzBjM2ZhOGZlMzM3ZTBhM2QyMTE2MmYwZDYyOTlhN2JmODE5MmJmZDJhNzZmIiwiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIl1dLm1hcCgoZT0+ZS5tYXAoKGU9PkJpZ0ludChlKSkpKSkpLEY9KDAscy5tYXBUb0N1cnZlU2ltcGxlU1dVKShiLHtBOkJpZ0ludCgiMHgzZjg3MzFhYmRkNjYxYWRjYTA4YTU1NThmMGY1ZDI3MmU5NTNkMzYzY2I2ZjBlNWQ0MDU0NDdjMDFhNDQ0NTMzIiksQjpCaWdJbnQoIjE3NzEiKSxaOmIuY3JlYXRlKEJpZ0ludCgiLTExIikpfSk7bj1jLmNyZWF0ZUhhc2hlcih0LnNlY3AyNTZrMS5Qcm9qZWN0aXZlUG9pbnQsKGU9Pntjb25zdHt4OnQseTpyfT1GKGIuY3JlYXRlKGVbMF0pKTtyZXR1cm4gUyh0LHIpfSkse0RTVDoic2VjcDI1NmsxX1hNRDpTSEEtMjU2X1NTV1VfUk9fIixlbmNvZGVEU1Q6InNlY3AyNTZrMV9YTUQ6U0hBLTI1Nl9TU1dVX05VXyIscDpiLk9SREVSLG06MSxrOjEyOCxleHBhbmQ6InhtZCIsaGFzaDpvLnNoYTI1Nn0pLHQuaGFzaFRvQ3VydmU9bi5oYXNoVG9DdXJ2ZSx0LmVuY29kZVRvQ3VydmU9bi5lbmNvZGVUb0N1cnZlfSw1NTk1OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCxyKXtlIT1BcnJheS5wcm90b3R5cGUmJmUhPU9iamVjdC5wcm90b3R5cGUmJihlW3RdPXIudmFsdWUpfSxvPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3c9PT10aGlzP3RoaXM6dm9pZCAwIT09ci5nJiZudWxsIT1yLmc/ci5nOnRoaXM7ZnVuY3Rpb24gaSgpe2k9ZnVuY3Rpb24oKXt9LG8uU3ltYm9sfHwoby5TeW1ib2w9dSl9ZnVuY3Rpb24gYShlLHQpe3RoaXMuYT1lLG4odGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6dH0pfWEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYX07dmFyIHMsdT0ocz0wLGZ1bmN0aW9uIGUodCl7aWYodGhpcyBpbnN0YW5jZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7cmV0dXJuIG5ldyBhKCJqc2NvbXBfc3ltYm9sXyIrKHR8fCIiKSsiXyIrcysrLHQpfSk7ZnVuY3Rpb24gYygpe2koKTt2YXIgZT1vLlN5bWJvbC5pdGVyYXRvcjtlfHwoZT1vLlN5bWJvbC5pdGVyYXRvcj1vLlN5bWJvbCgiU3ltYm9sLml0ZXJhdG9yIikpLCJmdW5jdGlvbiIhPXR5cGVvZiBBcnJheS5wcm90b3R5cGVbZV0mJm4oQXJyYXkucHJvdG90eXBlLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gYygpLChlPXtuZXh0OmV9KVtvLlN5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZX0oZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdDxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW3QrK119Ontkb25lOiEwfX19KHRoaXMpKX19KSxjPWZ1bmN0aW9uKCl7fX0hZnVuY3Rpb24oZSx0KXtpZih0KXt2YXIgcj1vO2U9ZS5zcGxpdCgiLiIpO2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGgtMTtpKyspe3ZhciBhPWVbaV07YSBpbiByfHwoclthXT17fSkscj1yW2FdfSh0PXQoaT1yW2U9ZVtlLmxlbmd0aC0xXV0pKSE9aSYmbnVsbCE9dCYmbihyLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSl9fSgiQXJyYXkucHJvdG90eXBlLmVudHJpZXMiLChmdW5jdGlvbihlKXtyZXR1cm4gZXx8ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtjKCksZSBpbnN0YW5jZW9mIFN0cmluZyYmKGUrPSIiKTt2YXIgcj0wLG49e25leHQ6ZnVuY3Rpb24oKXtpZihyPGUubGVuZ3RoKXt2YXIgbz1yKys7cmV0dXJue3ZhbHVlOnQobyxlW29dKSxkb25lOiExfX1yZXR1cm4gbi5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ITAsdmFsdWU6dm9pZCAwfX0sbi5uZXh0KCl9fTtyZXR1cm4gbltTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIG59LG59KHRoaXMsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuW2UsdF19KSl9fSkpO3ZhciBsPXRoaXN8fHNlbGY7ZnVuY3Rpb24gZChlLHQscil7ZT1lLnNwbGl0KCIuIikscj1yfHxsLGVbMF1pbiByfHx2b2lkIDA9PT1yLmV4ZWNTY3JpcHR8fHIuZXhlY1NjcmlwdCgidmFyICIrZVswXSk7Zm9yKHZhciBuO2UubGVuZ3RoJiYobj1lLnNoaWZ0KCkpOyllLmxlbmd0aHx8dm9pZCAwPT09dD9yPXJbbl0mJnJbbl0hPT1PYmplY3QucHJvdG90eXBlW25dP3Jbbl06cltuXT17fTpyW25dPXR9ZnVuY3Rpb24gZihlKXt2YXIgdD10eXBlb2YgZTtpZigib2JqZWN0Ij09dCl7aWYoIWUpcmV0dXJuIm51bGwiO2lmKGUgaW5zdGFuY2VvZiBBcnJheSlyZXR1cm4iYXJyYXkiO2lmKGUgaW5zdGFuY2VvZiBPYmplY3QpcmV0dXJuIHQ7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpO2lmKCJbb2JqZWN0IFdpbmRvd10iPT1yKXJldHVybiJvYmplY3QiO2lmKCJbb2JqZWN0IEFycmF5XSI9PXJ8fCJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgmJnZvaWQgMCE9PWUuc3BsaWNlJiZ2b2lkIDAhPT1lLnByb3BlcnR5SXNFbnVtZXJhYmxlJiYhZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgic3BsaWNlIikpcmV0dXJuImFycmF5IjtpZigiW29iamVjdCBGdW5jdGlvbl0iPT1yfHx2b2lkIDAhPT1lLmNhbGwmJnZvaWQgMCE9PWUucHJvcGVydHlJc0VudW1lcmFibGUmJiFlLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpcmV0dXJuImZ1bmN0aW9uIn1lbHNlIGlmKCJmdW5jdGlvbiI9PXQmJnZvaWQgMD09PWUuY2FsbClyZXR1cm4ib2JqZWN0IjtyZXR1cm4gdH1mdW5jdGlvbiBwKGUpe3ZhciB0PXR5cGVvZiBlO3JldHVybiJvYmplY3QiPT10JiZudWxsIT1lfHwiZnVuY3Rpb24iPT10fXZhciBoPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIiksZz1BcnJheS5wcm90b3R5cGUuZm9yRWFjaD9mdW5jdGlvbihlLHQpe0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZSx0LHZvaWQgMCl9OmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWUubGVuZ3RoLG49InN0cmluZyI9PXR5cGVvZiBlP2Uuc3BsaXQoIiIpOmUsbz0wO288cjtvKyspbyBpbiBuJiZ0LmNhbGwodm9pZCAwLG5bb10sbyxlKX0seT1BcnJheS5wcm90b3R5cGUubWFwP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAuY2FsbChlLHQsdm9pZCAwKX06ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9ZS5sZW5ndGgsbj1BcnJheShyKSxvPSJzdHJpbmciPT10eXBlb2YgZT9lLnNwbGl0KCIiKTplLGk9MDtpPHI7aSsrKWkgaW4gbyYmKG5baV09dC5jYWxsKHZvaWQgMCxvW2ldLGksZSkpO3JldHVybiBufTtmdW5jdGlvbiBiKGUsdCxyKXtyZXR1cm4gMj49YXJndW1lbnRzLmxlbmd0aD9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlLHQpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsdCxyKX1mdW5jdGlvbiB2KGUsdCxyLG4pe3ZhciBvPSJBc3NlcnRpb24gZmFpbGVkIjtpZihyKXtvKz0iOiAiK3I7dmFyIGk9bn1lbHNlIGUmJihvKz0iOiAiK2UsaT10KTt0aHJvdyBFcnJvcihvLGl8fFtdKX1mdW5jdGlvbiBtKGUsdCxyKXtmb3IodmFyIG49W10sbz0yO288YXJndW1lbnRzLmxlbmd0aDsrK28pbltvLTJdPWFyZ3VtZW50c1tvXTtyZXR1cm4gZXx8digiIixudWxsLHQsbiksZX1mdW5jdGlvbiBUKGUsdCl7Zm9yKHZhciByPVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKXJbbi0xXT1hcmd1bWVudHNbbl07dGhyb3cgRXJyb3IoIkZhaWx1cmUiKyhlPyI6ICIrZToiIikscil9ZnVuY3Rpb24gdyhlLHQscixuKXtmb3IodmFyIG89W10saT0zO2k8YXJndW1lbnRzLmxlbmd0aDsrK2kpb1tpLTNdPWFyZ3VtZW50c1tpXTtlIGluc3RhbmNlb2YgdHx8digiRXhwZWN0ZWQgaW5zdGFuY2VvZiAlcyBidXQgZ290ICVzLiIsW0EodCksQShlKV0scixvKX1mdW5jdGlvbiBBKGUpe3JldHVybiBlIGluc3RhbmNlb2YgRnVuY3Rpb24/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHwidW5rbm93biB0eXBlIG5hbWUiOmUgaW5zdGFuY2VvZiBPYmplY3Q/ZS5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZXx8ZS5jb25zdHJ1Y3Rvci5uYW1lfHxPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSk6bnVsbD09PWU/Im51bGwiOnR5cGVvZiBlfWZ1bmN0aW9uIFAoZSx0KXtpZih0aGlzLmM9ZSx0aGlzLmI9dCx0aGlzLmE9e30sdGhpcy5hcnJDbGVhbj0hMCwwPHRoaXMuYy5sZW5ndGgpe2ZvcihlPTA7ZTx0aGlzLmMubGVuZ3RoO2UrKyl7dmFyIHI9KHQ9dGhpcy5jW2VdKVswXTt0aGlzLmFbci50b1N0cmluZygpXT1uZXcgRShyLHRbMV0pfXRoaXMuYXJyQ2xlYW49ITB9fWZ1bmN0aW9uIFcoZSl7dGhpcy5hPTAsdGhpcy5iPWV9ZnVuY3Rpb24gQihlLHQpe3JldHVybiBlLmI/KHQuYXx8KHQuYT1uZXcgZS5iKHQudmFsdWUpKSx0LmEpOnQudmFsdWV9ZnVuY3Rpb24gQyhlKXtlPWUuYTt2YXIgdCxyPVtdO2Zvcih0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJnIucHVzaCh0KTtyZXR1cm4gcn1mdW5jdGlvbiBFKGUsdCl7dGhpcy5rZXk9ZSx0aGlzLnZhbHVlPXQsdGhpcy5hPXZvaWQgMH1mdW5jdGlvbiBNKGUpe2lmKDgxOTI+PWUubGVuZ3RoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZSk7Zm9yKHZhciB0PSIiLHI9MDtyPGUubGVuZ3RoO3IrPTgxOTIpdCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGIoZSxyLHIrODE5MikpO3JldHVybiB0fWQoImpzcGIuTWFwIixQLHZvaWQgMCksUC5wcm90b3R5cGUuZz1mdW5jdGlvbigpe2lmKHRoaXMuYXJyQ2xlYW4pe2lmKHRoaXMuYil7dmFyIGUsdD10aGlzLmE7Zm9yKGUgaW4gdClpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSl7dmFyIHI9dFtlXS5hO3ImJnIuZygpfX19ZWxzZXtmb3IodGhpcy5jLmxlbmd0aD0wLCh0PUModGhpcykpLnNvcnQoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciBuPXRoaXMuYVt0W2VdXTsocj1uLmEpJiZyLmcoKSx0aGlzLmMucHVzaChbbi5rZXksbi52YWx1ZV0pfXRoaXMuYXJyQ2xlYW49ITB9cmV0dXJuIHRoaXMuY30sUC5wcm90b3R5cGUudG9BcnJheT1QLnByb3RvdHlwZS5nLFAucHJvdG90eXBlLk1jPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPXRoaXMuZygpLG49W10sbz0wO288ci5sZW5ndGg7bysrKXt2YXIgaT10aGlzLmFbcltvXVswXS50b1N0cmluZygpXTtCKHRoaXMsaSk7dmFyIGE9aS5hO2E/KG0odCksbi5wdXNoKFtpLmtleSx0KGUsYSldKSk6bi5wdXNoKFtpLmtleSxpLnZhbHVlXSl9cmV0dXJuIG59LFAucHJvdG90eXBlLnRvT2JqZWN0PVAucHJvdG90eXBlLk1jLFAuZnJvbU9iamVjdD1mdW5jdGlvbihlLHQscil7dD1uZXcgUChbXSx0KTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIG89ZVtuXVswXSxpPXIoZVtuXVsxXSk7dC5zZXQobyxpKX1yZXR1cm4gdH0sVy5wcm90b3R5cGUubmV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmE8dGhpcy5iLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTp0aGlzLmJbdGhpcy5hKytdfTp7ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmKFcucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFAucHJvdG90eXBlLkpiPWZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcykubGVuZ3RofSxQLnByb3RvdHlwZS5nZXRMZW5ndGg9UC5wcm90b3R5cGUuSmIsUC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLmE9e30sdGhpcy5hcnJDbGVhbj0hMX0sUC5wcm90b3R5cGUuY2xlYXI9UC5wcm90b3R5cGUuY2xlYXIsUC5wcm90b3R5cGUuQ2I9ZnVuY3Rpb24oZSl7ZT1lLnRvU3RyaW5nKCk7dmFyIHQ9dGhpcy5hLmhhc093blByb3BlcnR5KGUpO3JldHVybiBkZWxldGUgdGhpcy5hW2VdLHRoaXMuYXJyQ2xlYW49ITEsdH0sUC5wcm90b3R5cGUuZGVsPVAucHJvdG90eXBlLkNiLFAucHJvdG90eXBlLkViPWZ1bmN0aW9uKCl7dmFyIGU9W10sdD1DKHRoaXMpO3Quc29ydCgpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10aGlzLmFbdFtyXV07ZS5wdXNoKFtuLmtleSxuLnZhbHVlXSl9cmV0dXJuIGV9LFAucHJvdG90eXBlLmdldEVudHJ5TGlzdD1QLnByb3RvdHlwZS5FYixQLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIGU9W10sdD1DKHRoaXMpO3Quc29ydCgpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10aGlzLmFbdFtyXV07ZS5wdXNoKFtuLmtleSxCKHRoaXMsbildKX1yZXR1cm4gbmV3IFcoZSl9LFAucHJvdG90eXBlLmVudHJpZXM9UC5wcm90b3R5cGUuZW50cmllcyxQLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGU9W10sdD1DKHRoaXMpO3Quc29ydCgpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUucHVzaCh0aGlzLmFbdFtyXV0ua2V5KTtyZXR1cm4gbmV3IFcoZSl9LFAucHJvdG90eXBlLmtleXM9UC5wcm90b3R5cGUua2V5cyxQLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0PUModGhpcyk7dC5zb3J0KCk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS5wdXNoKEIodGhpcyx0aGlzLmFbdFtyXV0pKTtyZXR1cm4gbmV3IFcoZSl9LFAucHJvdG90eXBlLnZhbHVlcz1QLnByb3RvdHlwZS52YWx1ZXMsUC5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlLHQpe3ZhciByPUModGhpcyk7ci5zb3J0KCk7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBvPXRoaXMuYVtyW25dXTtlLmNhbGwodCxCKHRoaXMsbyksby5rZXksdGhpcyl9fSxQLnByb3RvdHlwZS5mb3JFYWNoPVAucHJvdG90eXBlLmZvckVhY2gsUC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IEUoZSk7cmV0dXJuIHRoaXMuYj8oci5hPXQsci52YWx1ZT10LmcoKSk6ci52YWx1ZT10LHRoaXMuYVtlLnRvU3RyaW5nKCldPXIsdGhpcy5hcnJDbGVhbj0hMSx0aGlzfSxQLnByb3RvdHlwZS5zZXQ9UC5wcm90b3R5cGUuc2V0LFAucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXtpZihlPXRoaXMuYVtlLnRvU3RyaW5nKCldKXJldHVybiBCKHRoaXMsZSl9LFAucHJvdG90eXBlLmdldD1QLnByb3RvdHlwZS5nZXQsUC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRvU3RyaW5nKClpbiB0aGlzLmF9LFAucHJvdG90eXBlLmhhcz1QLnByb3RvdHlwZS5oYXMsUC5wcm90b3R5cGUuSmM9ZnVuY3Rpb24oZSx0LHIsbixvKXt2YXIgaT1DKHRoaXMpO2kuc29ydCgpO2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz10aGlzLmFbaVthXV07dC5WYShlKSxyLmNhbGwodCwxLHMua2V5KSx0aGlzLmI/bi5jYWxsKHQsMixCKHRoaXMscyksbyk6bi5jYWxsKHQsMixzLnZhbHVlKSx0LllhKCl9fSxQLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9UC5wcm90b3R5cGUuSmMsUC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlLHQscixuLG8saSxhKXtmb3IoO3Qub2EoKSYmIXQuYmIoKTspe3ZhciBzPXQuYzsxPT1zP2k9ci5jYWxsKHQpOjI9PXMmJihlLmI/KG0obyksYXx8KGE9bmV3IGUuYiksbi5jYWxsKHQsYSxvKSk6YT1uLmNhbGwodCkpfW0obnVsbCE9aSksbShudWxsIT1hKSxlLnNldChpLGEpfTt2YXIgaz17IlwwIjoiXFwwIiwiXGIiOiJcXGIiLCJcZiI6IlxcZiIsIlxuIjoiXFxuIiwiXHIiOiJcXHIiLCJcdCI6IlxcdCIsIlx2IjoiXFx4MEIiLCciJzonXFwiJywiXFwiOiJcXFxcIiwiPCI6IlxcdTAwM0MifSxJPXsiJyI6IlxcJyJ9LE89e30seD1udWxsO2Z1bmN0aW9uIFMoZSx0KXt2b2lkIDA9PT10JiYodD0wKSxfKCksdD1PW3RdO2Zvcih2YXIgcj1bXSxuPTA7bjxlLmxlbmd0aDtuKz0zKXt2YXIgbz1lW25dLGk9bisxPGUubGVuZ3RoLGE9aT9lW24rMV06MCxzPW4rMjxlLmxlbmd0aCx1PXM/ZVtuKzJdOjAsYz1vPj4yO289KDMmbyk8PDR8YT4+NCxhPSgxNSZhKTw8Mnx1Pj42LHUmPTYzLHN8fCh1PTY0LGl8fChhPTY0KSksci5wdXNoKHRbY10sdFtvXSx0W2FdfHwiIix0W3VdfHwiIil9cmV0dXJuIHIuam9pbigiIil9ZnVuY3Rpb24gRihlKXt2YXIgdD1lLmxlbmd0aCxyPTMqdC80O3IlMz9yPU1hdGguZmxvb3Iocik6LTEhPSI9LiIuaW5kZXhPZihlW3QtMV0pJiYocj0tMSE9Ij0uIi5pbmRleE9mKGVbdC0yXSk/ci0yOnItMSk7dmFyIG49bmV3IFVpbnQ4QXJyYXkociksbz0wO3JldHVybiBmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIodCl7Zm9yKDtuPGUubGVuZ3RoOyl7dmFyIHI9ZS5jaGFyQXQobisrKSxvPXhbcl07aWYobnVsbCE9bylyZXR1cm4gbztpZighL15bXHNceGEwXSokLy50ZXN0KHIpKXRocm93IEVycm9yKCJVbmtub3duIGJhc2U2NCBlbmNvZGluZyBhdCBjaGFyOiAiK3IpfXJldHVybiB0fV8oKTtmb3IodmFyIG49MDs7KXt2YXIgbz1yKC0xKSxpPXIoMCksYT1yKDY0KSxzPXIoNjQpO2lmKDY0PT09cyYmLTE9PT1vKWJyZWFrO3Qobzw8MnxpPj40KSw2NCE9YSYmKHQoaTw8NCYyNDB8YT4+MiksNjQhPXMmJnQoYTw8NiYxOTJ8cykpfX0oZSwoZnVuY3Rpb24oZSl7bltvKytdPWV9KSksbi5zdWJhcnJheSgwLG8pfWZ1bmN0aW9uIF8oKXtpZigheCl7eD17fTtmb3IodmFyIGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ii5zcGxpdCgiIiksdD1bIisvPSIsIisvIiwiLV89IiwiLV8uIiwiLV8iXSxyPTA7NT5yO3IrKyl7dmFyIG49ZS5jb25jYXQodFtyXS5zcGxpdCgiIikpO09bcl09bjtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIGk9bltvXTt2b2lkIDA9PT14W2ldJiYoeFtpXT1vKX19fX1kKCJqc3BiLkNvbnN0QmluYXJ5TWVzc2FnZSIsKGZ1bmN0aW9uKCl7fSksdm9pZCAwKSxkKCJqc3BiLkJpbmFyeU1lc3NhZ2UiLChmdW5jdGlvbigpe30pLHZvaWQgMCksZCgianNwYi5CaW5hcnlDb25zdGFudHMuRmllbGRUeXBlIix7eWI6LTEsZWU6MSxGTE9BVDoyLGtlOjMsdGU6NCxqZTo1LHhiOjYsd2I6NyxCT09MOjgscmU6OSxpZToxMCxsZToxMSxjZToxMixzZToxMyxnZToxNCxtZToxNSxuZToxNixvZToxNyxwZToxOCxoZTozMCx2ZTozMX0sdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5XaXJlVHlwZSIse3liOi0xLHVlOjAseGI6MSxkZToyLHFlOjMsZmU6NCx3Yjo1fSx2b2lkIDApLGQoImpzcGIuQmluYXJ5Q29uc3RhbnRzLkZpZWxkVHlwZVRvV2lyZVR5cGUiLChmdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSA1OmNhc2UgMzpjYXNlIDEzOmNhc2UgNDpjYXNlIDE3OmNhc2UgMTg6Y2FzZSA4OmNhc2UgMTQ6Y2FzZSAzMTpyZXR1cm4gMDtjYXNlIDE6Y2FzZSA2OmNhc2UgMTY6Y2FzZSAzMDpyZXR1cm4gMTtjYXNlIDk6Y2FzZSAxMTpjYXNlIDEyOnJldHVybiAyO2Nhc2UgMjpjYXNlIDc6Y2FzZSAxNTpyZXR1cm4gNTtkZWZhdWx0OnJldHVybi0xfX0pLHZvaWQgMCksZCgianNwYi5CaW5hcnlDb25zdGFudHMuSU5WQUxJRF9GSUVMRF9OVU1CRVIiLC0xLHZvaWQgMCksZCgianNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQzMl9FUFMiLDE0MDEyOTg0NjQzMjQ4MTdlLTYwLHZvaWQgMCksZCgianNwYi5CaW5hcnlDb25zdGFudHMuRkxPQVQzMl9NSU4iLDExNzU0OTQzNTA4MjIyODc1ZS01NCx2b2lkIDApLGQoImpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUMzJfTUFYIiwzNDAyODIzNDY2Mzg1Mjg4NmUyMix2b2lkIDApLGQoImpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfRVBTIiw1ZS0zMjQsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5GTE9BVDY0X01JTiIsMjIyNTA3Mzg1ODUwNzIwMTRlLTMyNCx2b2lkIDApLGQoImpzcGIuQmluYXJ5Q29uc3RhbnRzLkZMT0FUNjRfTUFYIiwxNzk3NjkzMTM0ODYyMzE1N2UyOTIsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMjAiLDEwNDg1NzYsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMjMiLDgzODg2MDgsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzEiLDIxNDc0ODM2NDgsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fMzIiLDQyOTQ5NjcyOTYsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNTIiLDQ1MDM1OTk2MjczNzA0OTYsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeUNvbnN0YW50cy5UV09fVE9fNjMiLDB4ODAwMDAwMDAwMDAwMDAwMCx2b2lkIDApLGQoImpzcGIuQmluYXJ5Q29uc3RhbnRzLlRXT19UT182NCIsMHgxMDAwMDAwMDAwMDAwMDAwMCx2b2lkIDApLGQoImpzcGIuQmluYXJ5Q29uc3RhbnRzLlpFUk9fSEFTSCIsIlwwXDBcMFwwXDBcMFwwXDAiLHZvaWQgMCk7dmFyIFI9MCxOPTA7ZnVuY3Rpb24gVShlKXt2YXIgdD1lPj4+MDtlPU1hdGguZmxvb3IoKGUtdCkvNDI5NDk2NzI5Nik+Pj4wLFI9dCxOPWV9ZnVuY3Rpb24gRChlKXt2YXIgdD0wPmUscj0oZT1NYXRoLmFicyhlKSk+Pj4wO2U9TWF0aC5mbG9vcigoZS1yKS80Mjk0OTY3Mjk2KSxlPj4+PTAsdCYmKGU9fmU+Pj4wLDQyOTQ5NjcyOTU8KHI9MSsofnI+Pj4wKSkmJihyPTAsNDI5NDk2NzI5NTwrK2UmJihlPTApKSksUj1yLE49ZX1mdW5jdGlvbiBMKGUpe3ZhciB0PTA+ZTtVKGU9MipNYXRoLmFicyhlKSksZT1SO3ZhciByPU47dCYmKDA9PWU/MD09cj9yPWU9NDI5NDk2NzI5NTooci0tLGU9NDI5NDk2NzI5NSk6ZS0tKSxSPWUsTj1yfWZ1bmN0aW9uIGooZSl7dmFyIHQ9MD5lPzE6MDtpZigwPT09KGU9dD8tZTplKSkwPDEvZT9SPU49MDooTj0wLFI9MjE0NzQ4MzY0OCk7ZWxzZSBpZihpc05hTihlKSlOPTAsUj0yMTQ3NDgzNjQ3O2Vsc2UgaWYoMzQwMjgyMzQ2NjM4NTI4ODZlMjI8ZSlOPTAsUj0odDw8MzF8MjEzOTA5NTA0MCk+Pj4wO2Vsc2UgaWYoMTE3NTQ5NDM1MDgyMjI4NzVlLTU0PmUpZT1NYXRoLnJvdW5kKGUvTWF0aC5wb3coMiwtMTQ5KSksTj0wLFI9KHQ8PDMxfGUpPj4+MDtlbHNle3ZhciByPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpO2UqPU1hdGgucG93KDIsLXIpLDE2Nzc3MjE2PD0oZT1NYXRoLnJvdW5kKDgzODg2MDgqZSkpJiYrK3IsTj0wLFI9KHQ8PDMxfHIrMTI3PDwyM3w4Mzg4NjA3JmUpPj4+MH19ZnVuY3Rpb24geihlKXt2YXIgdD0wPmU/MTowO2lmKDA9PT0oZT10Py1lOmUpKU49MDwxL2U/MDoyMTQ3NDgzNjQ4LFI9MDtlbHNlIGlmKGlzTmFOKGUpKU49MjE0NzQ4MzY0NyxSPTQyOTQ5NjcyOTU7ZWxzZSBpZigxNzk3NjkzMTM0ODYyMzE1N2UyOTI8ZSlOPSh0PDwzMXwyMTQ2NDM1MDcyKT4+PjAsUj0wO2Vsc2UgaWYoMjIyNTA3Mzg1ODUwNzIwMTRlLTMyND5lKWUvPU1hdGgucG93KDIsLTEwNzQpLE49KHQ8PDMxfGUvNDI5NDk2NzI5Nik+Pj4wLFI9ZT4+PjA7ZWxzZXt2YXIgcj1lLG49MDtpZigyPD1yKWZvcig7Mjw9ciYmMTAyMz5uOyluKyssci89MjtlbHNlIGZvcig7MT5yJiYtMTAyMjxuOylyKj0yLG4tLTtlKj1NYXRoLnBvdygyLC1uKSxOPSh0PDwzMXxuKzEwMjM8PDIwfDEwNDg1NzYqZSYxMDQ4NTc1KT4+PjAsUj00NTAzNTk5NjI3MzcwNDk2KmU+Pj4wfX1mdW5jdGlvbiAkKGUpe3ZhciB0PWUuY2hhckNvZGVBdCg0KSxyPWUuY2hhckNvZGVBdCg1KSxuPWUuY2hhckNvZGVBdCg2KSxvPWUuY2hhckNvZGVBdCg3KTtSPWUuY2hhckNvZGVBdCgwKSsoZS5jaGFyQ29kZUF0KDEpPDw4KSsoZS5jaGFyQ29kZUF0KDIpPDwxNikrKGUuY2hhckNvZGVBdCgzKTw8MjQpPj4+MCxOPXQrKHI8PDgpKyhuPDwxNikrKG88PDI0KT4+PjB9ZnVuY3Rpb24gVihlLHQpe3JldHVybiA0Mjk0OTY3Mjk2KnQrKGU+Pj4wKX1mdW5jdGlvbiBHKGUsdCl7dmFyIHI9MjE0NzQ4MzY0OCZ0O3JldHVybiByJiYodD1+dD4+PjAsMD09KGU9MSt+ZT4+PjApJiYodD10KzE+Pj4wKSksZT1WKGUsdCkscj8tZTplfWZ1bmN0aW9uIEgoZSx0LHIpe3ZhciBuPXQ+PjMxO3JldHVybiByKGU8PDFebiwodDw8MXxlPj4+MzEpXm4pfWZ1bmN0aW9uIEsoZSx0KXtyZXR1cm4gWihlLHQsRyl9ZnVuY3Rpb24gWihlLHQscil7dmFyIG49LSgxJmUpO3JldHVybiByKChlPj4+MXx0PDwzMSlebix0Pj4+MV5uKX1mdW5jdGlvbiBxKGUpe3ZhciB0PTIqKGU+PjMxKSsxLHI9ZT4+PjIzJjI1NTtyZXR1cm4gZSY9ODM4ODYwNywyNTU9PXI/ZT9OYU46MS8wKnQ6MD09cj90Kk1hdGgucG93KDIsLTE0OSkqZTp0Kk1hdGgucG93KDIsci0xNTApKihlK01hdGgucG93KDIsMjMpKX1mdW5jdGlvbiBKKGUsdCl7dmFyIHI9MioodD4+MzEpKzEsbj10Pj4+MjAmMjA0NztyZXR1cm4gZT00Mjk0OTY3Mjk2KigxMDQ4NTc1JnQpK2UsMjA0Nz09bj9lP05hTjoxLzAqcjowPT1uP3IqTWF0aC5wb3coMiwtMTA3NCkqZTpyKk1hdGgucG93KDIsbi0xMDc1KSooZSs0NTAzNTk5NjI3MzcwNDk2KX1mdW5jdGlvbiBZKGUsdCl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZT4+PjAmMjU1LGU+Pj44JjI1NSxlPj4+MTYmMjU1LGU+Pj4yNCYyNTUsdD4+PjAmMjU1LHQ+Pj44JjI1NSx0Pj4+MTYmMjU1LHQ+Pj4yNCYyNTUpfWZ1bmN0aW9uIFgoZSx0KXtmdW5jdGlvbiByKGUsdCl7cmV0dXJuIGU9ZT9TdHJpbmcoZSk6IiIsdD8iMDAwMDAwMCIuc2xpY2UoZS5sZW5ndGgpK2U6ZX1pZigyMDk3MTUxPj10KXJldHVybiIiK1YoZSx0KTt2YXIgbj0oZT4+PjI0fHQ8PDgpPj4+MCYxNjc3NzIxNTtyZXR1cm4gZT0oMTY3NzcyMTUmZSkrNjc3NzIxNipuKzY3MTA2NTYqKHQ9dD4+MTYmNjU1MzUpLG4rPTgxNDc0OTcqdCx0Kj0yLDFlNzw9ZSYmKG4rPU1hdGguZmxvb3IoZS8xZTcpLGUlPTFlNyksMWU3PD1uJiYodCs9TWF0aC5mbG9vcihuLzFlNyksbiU9MWU3KSxyKHQsMCkrcihuLHQpK3IoZSwxKX1mdW5jdGlvbiBRKGUsdCl7dmFyIHI9MjE0NzQ4MzY0OCZ0O3JldHVybiByJiYodD1+dCsoMD09KGU9MSt+ZT4+PjApPzE6MCk+Pj4wKSxlPVgoZSx0KSxyPyItIitlOmV9ZnVuY3Rpb24gZWUoZSx0KXskKGUpLGU9Ujt2YXIgcj1OO3JldHVybiB0P1EoZSxyKTpYKGUscil9ZnVuY3Rpb24gdGUoZSl7ZnVuY3Rpb24gdChlLHQpe2Zvcih2YXIgcj0wOzg+ciYmKDEhPT1lfHwwPHQpO3IrKyl0PWUqbltyXSt0LG5bcl09MjU1JnQsdD4+Pj04fW0oMDxlLmxlbmd0aCk7dmFyIHI9ITE7Ii0iPT09ZVswXSYmKHI9ITAsZT1lLnNsaWNlKDEpKTtmb3IodmFyIG49WzAsMCwwLDAsMCwwLDAsMF0sbz0wO288ZS5sZW5ndGg7bysrKXQoMTAsZS5jaGFyQ29kZUF0KG8pLTQ4KTtyZXR1cm4gciYmKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7OD5lO2UrKyluW2VdPTI1NSZ+bltlXX0oKSx0KDEsMSkpLE0obil9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoMTA+ZT80OCtlOjg3K2UpfWZ1bmN0aW9uIG5lKGUpe3JldHVybiA5Nzw9ZT9lLTk3KzEwOmUtNDh9ZnVuY3Rpb24gb2UoZSx0LHIsbixvKXt2YXIgaT0wO2lmKDEyOD5uKWZvcig7dDxyJiZlW3QrK109PW47KWkrKyx0Kz1vO2Vsc2UgZm9yKDt0PHI7KXtmb3IodmFyIGE9bjsxMjg8YTspe2lmKGVbdCsrXSE9KDEyNyZhfDEyOCkpcmV0dXJuIGk7YT4+PTd9aWYoZVt0KytdIT1hKWJyZWFrO2krKyx0Kz1vfXJldHVybiBpfWZ1bmN0aW9uIGllKGUpe3JldHVybiBlLmNvbnN0cnVjdG9yPT09VWludDhBcnJheT9lOmUuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcnx8ZS5jb25zdHJ1Y3Rvcj09PUFycmF5P25ldyBVaW50OEFycmF5KGUpOmUuY29uc3RydWN0b3I9PT1TdHJpbmc/RihlKTplIGluc3RhbmNlb2YgVWludDhBcnJheT9uZXcgVWludDhBcnJheShlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKTooVCgiVHlwZSBub3QgY29udmVydGlibGUgdG8gVWludDhBcnJheS4iKSxuZXcgVWludDhBcnJheSgwKSl9ZnVuY3Rpb24gYWUoZSx0LHIpe3RoaXMuYj1udWxsLHRoaXMuYT10aGlzLmM9dGhpcy5oPTAsdGhpcy52PSExLGUmJnRoaXMuSChlLHQscil9ZCgianNwYi51dGlscy5nZXRTcGxpdDY0TG93IiwoZnVuY3Rpb24oKXtyZXR1cm4gUn0pLHZvaWQgMCksZCgianNwYi51dGlscy5nZXRTcGxpdDY0SGlnaCIsKGZ1bmN0aW9uKCl7cmV0dXJuIE59KSx2b2lkIDApLGQoImpzcGIudXRpbHMuc3BsaXRVaW50NjQiLFUsdm9pZCAwKSxkKCJqc3BiLnV0aWxzLnNwbGl0SW50NjQiLEQsdm9pZCAwKSxkKCJqc3BiLnV0aWxzLnNwbGl0WmlnemFnNjQiLEwsdm9pZCAwKSxkKCJqc3BiLnV0aWxzLnNwbGl0RmxvYXQzMiIsaix2b2lkIDApLGQoImpzcGIudXRpbHMuc3BsaXRGbG9hdDY0Iix6LHZvaWQgMCksZCgianNwYi51dGlscy5zcGxpdEhhc2g2NCIsJCx2b2lkIDApLGQoImpzcGIudXRpbHMuam9pblVpbnQ2NCIsVix2b2lkIDApLGQoImpzcGIudXRpbHMuam9pbkludDY0IixHLHZvaWQgMCksZCgianNwYi51dGlscy50b1ppZ3phZzY0IixILHZvaWQgMCksZCgianNwYi51dGlscy5qb2luWmlnemFnNjQiLEssdm9pZCAwKSxkKCJqc3BiLnV0aWxzLmZyb21aaWd6YWc2NCIsWix2b2lkIDApLGQoImpzcGIudXRpbHMuam9pbkZsb2F0MzIiLHEsdm9pZCAwKSxkKCJqc3BiLnV0aWxzLmpvaW5GbG9hdDY0IixKLHZvaWQgMCksZCgianNwYi51dGlscy5qb2luSGFzaDY0IixZLHZvaWQgMCksZCgianNwYi51dGlscy5ESUdJVFMiLCIwMTIzNDU2Nzg5YWJjZGVmIi5zcGxpdCgiIiksdm9pZCAwKSxkKCJqc3BiLnV0aWxzLmpvaW5VbnNpZ25lZERlY2ltYWxTdHJpbmciLFgsdm9pZCAwKSxkKCJqc3BiLnV0aWxzLmpvaW5TaWduZWREZWNpbWFsU3RyaW5nIixRLHZvaWQgMCksZCgianNwYi51dGlscy5oYXNoNjRUb0RlY2ltYWxTdHJpbmciLGVlLHZvaWQgMCksZCgianNwYi51dGlscy5oYXNoNjRBcnJheVRvRGVjaW1hbFN0cmluZ3MiLChmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1BcnJheShlLmxlbmd0aCksbj0wO248ZS5sZW5ndGg7bisrKXJbbl09ZWUoZVtuXSx0KTtyZXR1cm4gcn0pLHZvaWQgMCksZCgianNwYi51dGlscy5kZWNpbWFsU3RyaW5nVG9IYXNoNjQiLHRlLHZvaWQgMCksZCgianNwYi51dGlscy5zcGxpdERlY2ltYWxTdHJpbmciLChmdW5jdGlvbihlKXskKHRlKGUpKX0pLHZvaWQgMCksZCgianNwYi51dGlscy5oYXNoNjRUb0hleFN0cmluZyIsKGZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5KDE4KTt0WzBdPSIwIix0WzFdPSJ4Ijtmb3IodmFyIHI9MDs4PnI7cisrKXt2YXIgbj1lLmNoYXJDb2RlQXQoNy1yKTt0WzIqcisyXT1yZShuPj40KSx0WzIqciszXT1yZSgxNSZuKX1yZXR1cm4gdC5qb2luKCIiKX0pLHZvaWQgMCksZCgianNwYi51dGlscy5oZXhTdHJpbmdUb0hhc2g2NCIsKGZ1bmN0aW9uKGUpe20oMTg9PShlPWUudG9Mb3dlckNhc2UoKSkubGVuZ3RoKSxtKCIwIj09ZVswXSksbSgieCI9PWVbMV0pO2Zvcih2YXIgdD0iIixyPTA7OD5yO3IrKyl0PVN0cmluZy5mcm9tQ2hhckNvZGUoMTYqbmUoZS5jaGFyQ29kZUF0KDIqcisyKSkrbmUoZS5jaGFyQ29kZUF0KDIqciszKSkpK3Q7cmV0dXJuIHR9KSx2b2lkIDApLGQoImpzcGIudXRpbHMuaGFzaDY0VG9OdW1iZXIiLChmdW5jdGlvbihlLHQpeyQoZSksZT1SO3ZhciByPU47cmV0dXJuIHQ/RyhlLHIpOlYoZSxyKX0pLHZvaWQgMCksZCgianNwYi51dGlscy5udW1iZXJUb0hhc2g2NCIsKGZ1bmN0aW9uKGUpe3JldHVybiBEKGUpLFkoUixOKX0pLHZvaWQgMCksZCgianNwYi51dGlscy5jb3VudFZhcmludHMiLChmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTAsbz10O288cjtvKyspbis9ZVtvXT4+NztyZXR1cm4gci10LW59KSx2b2lkIDApLGQoImpzcGIudXRpbHMuY291bnRWYXJpbnRGaWVsZHMiLChmdW5jdGlvbihlLHQscixuKXt2YXIgbz0wO2lmKDEyOD4obio9OCkpZm9yKDt0PHImJmVbdCsrXT09bjspZm9yKG8rKzs7KXt2YXIgaT1lW3QrK107aWYoMD09KDEyOCZpKSlicmVha31lbHNlIGZvcig7dDxyOyl7Zm9yKGk9bjsxMjg8aTspe2lmKGVbdF0hPSgxMjcmaXwxMjgpKXJldHVybiBvO3QrKyxpPj49N31pZihlW3QrK10hPWkpYnJlYWs7Zm9yKG8rKzswIT0oMTI4JihpPWVbdCsrXSkpOyk7fXJldHVybiBvfSksdm9pZCAwKSxkKCJqc3BiLnV0aWxzLmNvdW50Rml4ZWQzMkZpZWxkcyIsKGZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBvZShlLHQsciw4Km4rNSw0KX0pLHZvaWQgMCksZCgianNwYi51dGlscy5jb3VudEZpeGVkNjRGaWVsZHMiLChmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gb2UoZSx0LHIsOCpuKzEsOCl9KSx2b2lkIDApLGQoImpzcGIudXRpbHMuY291bnREZWxpbWl0ZWRGaWVsZHMiLChmdW5jdGlvbihlLHQscixuKXt2YXIgbz0wO2ZvcihuPTgqbisyO3Q8cjspe2Zvcih2YXIgaT1uOzEyODxpOyl7aWYoZVt0KytdIT0oMTI3Jml8MTI4KSlyZXR1cm4gbztpPj49N31pZihlW3QrK10hPWkpYnJlYWs7bysrO2Zvcih2YXIgYT0wLHM9MTthKz0oMTI3JihpPWVbdCsrXSkpKnMscyo9MTI4LDAhPSgxMjgmaSk7KTt0Kz1hfXJldHVybiBvfSksdm9pZCAwKSxkKCJqc3BiLnV0aWxzLmRlYnVnQnl0ZXNUb1RleHRGb3JtYXQiLChmdW5jdGlvbihlKXt2YXIgdD0nIic7aWYoZSl7ZT1pZShlKTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0Kz0iXFx4IiwxNj5lW3JdJiYodCs9IjAiKSx0Kz1lW3JdLnRvU3RyaW5nKDE2KX1yZXR1cm4gdCsnIid9KSx2b2lkIDApLGQoImpzcGIudXRpbHMuZGVidWdTY2FsYXJUb1RleHRGb3JtYXQiLChmdW5jdGlvbihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe2U9U3RyaW5nKGUpO2Zvcih2YXIgdD1bJyInXSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuLG89ZS5jaGFyQXQociksaT1vLmNoYXJDb2RlQXQoMCksYT1yKzE7KG49a1tvXSl8fCgzMTxpJiYxMjc+aXx8KChpPW8paW4gST9vPUlbaV06aSBpbiBrP289SVtpXT1rW2ldOigzMTwobj1pLmNoYXJDb2RlQXQoMCkpJiYxMjc+bj9vPWk6KDI1Nj5uPyhvPSJcXHgiLCgxNj5ufHwyNTY8bikmJihvKz0iMCIpKToobz0iXFx1Iiw0MDk2Pm4mJihvKz0iMCIpKSxvKz1uLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKSxvPUlbaV09bykpLG49byksdFthXT1ufXQucHVzaCgnIicpLGU9dC5qb2luKCIiKX1lbHNlIGU9ZS50b1N0cmluZygpO3JldHVybiBlfSksdm9pZCAwKSxkKCJqc3BiLnV0aWxzLnN0cmluZ1RvQnl0ZUFycmF5IiwoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWUuY2hhckNvZGVBdChyKTtpZigyNTU8bil0aHJvdyBFcnJvcigiQ29udmVyc2lvbiBlcnJvcjogc3RyaW5nIGNvbnRhaW5zIGNvZGVwb2ludCBvdXRzaWRlIG9mIGJ5dGUgcmFuZ2UiKTt0W3JdPW59cmV0dXJuIHR9KSx2b2lkIDApLGQoImpzcGIudXRpbHMuYnl0ZVNvdXJjZVRvVWludDhBcnJheSIsaWUsdm9pZCAwKSxkKCJqc3BiLkJpbmFyeURlY29kZXIiLGFlLHZvaWQgMCk7dmFyIHNlPVtdO2Z1bmN0aW9uIHVlKGUsdCxyKXtpZihzZS5sZW5ndGgpe3ZhciBuPXNlLnBvcCgpO3JldHVybiBlJiZuLkgoZSx0LHIpLG59cmV0dXJuIG5ldyBhZShlLHQscil9ZnVuY3Rpb24gY2UoZSx0LHIpe3RoaXMuYT11ZShlLHQsciksdGhpcy5PPXRoaXMuYS5CKCksdGhpcy5iPXRoaXMuYz0tMSx0aGlzLmg9ITEsdGhpcy52PW51bGx9YWUuZ2V0SW5zdGFuY2VDYWNoZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBzZS5sZW5ndGh9LGFlLmFsbG9jPXVlLGFlLnByb3RvdHlwZS5DYT1mdW5jdGlvbigpe3RoaXMuY2xlYXIoKSwxMDA+c2UubGVuZ3RoJiZzZS5wdXNoKHRoaXMpfSxhZS5wcm90b3R5cGUuZnJlZT1hZS5wcm90b3R5cGUuQ2EsYWUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIHVlKHRoaXMuYix0aGlzLmgsdGhpcy5jLXRoaXMuaCl9LGFlLnByb3RvdHlwZS5jbG9uZT1hZS5wcm90b3R5cGUuY2xvbmUsYWUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5iPW51bGwsdGhpcy5hPXRoaXMuYz10aGlzLmg9MCx0aGlzLnY9ITF9LGFlLnByb3RvdHlwZS5jbGVhcj1hZS5wcm90b3R5cGUuY2xlYXIsYWUucHJvdG90eXBlLlk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ifSxhZS5wcm90b3R5cGUuZ2V0QnVmZmVyPWFlLnByb3RvdHlwZS5ZLGFlLnByb3RvdHlwZS5IPWZ1bmN0aW9uKGUsdCxyKXt0aGlzLmI9aWUoZSksdGhpcy5oPXZvaWQgMCE9PXQ/dDowLHRoaXMuYz12b2lkIDAhPT1yP3RoaXMuaCtyOnRoaXMuYi5sZW5ndGgsdGhpcy5hPXRoaXMuaH0sYWUucHJvdG90eXBlLnNldEJsb2NrPWFlLnByb3RvdHlwZS5ILGFlLnByb3RvdHlwZS5EYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN9LGFlLnByb3RvdHlwZS5nZXRFbmQ9YWUucHJvdG90eXBlLkRiLGFlLnByb3RvdHlwZS5zZXRFbmQ9ZnVuY3Rpb24oZSl7dGhpcy5jPWV9LGFlLnByb3RvdHlwZS5zZXRFbmQ9YWUucHJvdG90eXBlLnNldEVuZCxhZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmE9dGhpcy5ofSxhZS5wcm90b3R5cGUucmVzZXQ9YWUucHJvdG90eXBlLnJlc2V0LGFlLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYX0sYWUucHJvdG90eXBlLmdldEN1cnNvcj1hZS5wcm90b3R5cGUuQixhZS5wcm90b3R5cGUuTWE9ZnVuY3Rpb24oZSl7dGhpcy5hPWV9LGFlLnByb3RvdHlwZS5zZXRDdXJzb3I9YWUucHJvdG90eXBlLk1hLGFlLnByb3RvdHlwZS5hZHZhbmNlPWZ1bmN0aW9uKGUpe3RoaXMuYSs9ZSxtKHRoaXMuYTw9dGhpcy5jKX0sYWUucHJvdG90eXBlLmFkdmFuY2U9YWUucHJvdG90eXBlLmFkdmFuY2UsYWUucHJvdG90eXBlLnlhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYT09dGhpcy5jfSxhZS5wcm90b3R5cGUuYXRFbmQ9YWUucHJvdG90eXBlLnlhLGFlLnByb3RvdHlwZS5RYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmE+dGhpcy5jfSxhZS5wcm90b3R5cGUucGFzdEVuZD1hZS5wcm90b3R5cGUuUWIsYWUucHJvdG90eXBlLmdldEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudnx8MD50aGlzLmF8fHRoaXMuYT50aGlzLmN9LGFlLnByb3RvdHlwZS5nZXRFcnJvcj1hZS5wcm90b3R5cGUuZ2V0RXJyb3IsYWUucHJvdG90eXBlLnc9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTEyOCxyPTAsbj0wLG89MDs0Pm8mJjEyODw9dDtvKyspcnw9KDEyNyYodD10aGlzLmJbdGhpcy5hKytdKSk8PDcqbztpZigxMjg8PXQmJihyfD0oMTI3Jih0PXRoaXMuYlt0aGlzLmErK10pKTw8Mjgsbnw9KDEyNyZ0KT4+NCksMTI4PD10KWZvcihvPTA7NT5vJiYxMjg8PXQ7bysrKW58PSgxMjcmKHQ9dGhpcy5iW3RoaXMuYSsrXSkpPDw3Km8rMztpZigxMjg+dClyZXR1cm4gZShyPj4+MCxuPj4+MCk7VCgiRmFpbGVkIHRvIHJlYWQgdmFyaW50LCBlbmNvZGluZyBpcyBpbnZhbGlkLiIpLHRoaXMudj0hMH0sYWUucHJvdG90eXBlLnJlYWRTcGxpdFZhcmludDY0PWFlLnByb3RvdHlwZS53LGFlLnByb3RvdHlwZS5lYT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy53KChmdW5jdGlvbih0LHIpe3JldHVybiBaKHQscixlKX0pKX0sYWUucHJvdG90eXBlLnJlYWRTcGxpdFppZ3phZ1ZhcmludDY0PWFlLnByb3RvdHlwZS5lYSxhZS5wcm90b3R5cGUudGE9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5iLHI9dGhpcy5hO3RoaXMuYSs9ODtmb3IodmFyIG49MCxvPTAsaT1yKzc7aT49cjtpLS0pbj1uPDw4fHRbaV0sbz1vPDw4fHRbaSs0XTtyZXR1cm4gZShuLG8pfSxhZS5wcm90b3R5cGUucmVhZFNwbGl0Rml4ZWQ2ND1hZS5wcm90b3R5cGUudGEsYWUucHJvdG90eXBlLmtiPWZ1bmN0aW9uKCl7Zm9yKDsxMjgmdGhpcy5iW3RoaXMuYV07KXRoaXMuYSsrO3RoaXMuYSsrfSxhZS5wcm90b3R5cGUuc2tpcFZhcmludD1hZS5wcm90b3R5cGUua2IsYWUucHJvdG90eXBlLm1iPWZ1bmN0aW9uKGUpe2Zvcig7MTI4PGU7KXRoaXMuYS0tLGU+Pj49Nzt0aGlzLmEtLX0sYWUucHJvdG90eXBlLnVuc2tpcFZhcmludD1hZS5wcm90b3R5cGUubWIsYWUucHJvdG90eXBlLm89ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmIsdD1lW3RoaXMuYV0scj0xMjcmdDtyZXR1cm4gMTI4PnQ/KHRoaXMuYSs9MSxtKHRoaXMuYTw9dGhpcy5jKSxyKToocnw9KDEyNyYodD1lW3RoaXMuYSsxXSkpPDw3LDEyOD50Pyh0aGlzLmErPTIsbSh0aGlzLmE8PXRoaXMuYykscik6KHJ8PSgxMjcmKHQ9ZVt0aGlzLmErMl0pKTw8MTQsMTI4PnQ/KHRoaXMuYSs9MyxtKHRoaXMuYTw9dGhpcy5jKSxyKToocnw9KDEyNyYodD1lW3RoaXMuYSszXSkpPDwyMSwxMjg+dD8odGhpcy5hKz00LG0odGhpcy5hPD10aGlzLmMpLHIpOihyfD0oMTUmKHQ9ZVt0aGlzLmErNF0pKTw8MjgsMTI4PnQ/KHRoaXMuYSs9NSxtKHRoaXMuYTw9dGhpcy5jKSxyPj4+MCk6KHRoaXMuYSs9NSwxMjg8PWVbdGhpcy5hKytdJiYxMjg8PWVbdGhpcy5hKytdJiYxMjg8PWVbdGhpcy5hKytdJiYxMjg8PWVbdGhpcy5hKytdJiYxMjg8PWVbdGhpcy5hKytdJiZtKCExKSxtKHRoaXMuYTw9dGhpcy5jKSxyKSkpKSl9LGFlLnByb3RvdHlwZS5yZWFkVW5zaWduZWRWYXJpbnQzMj1hZS5wcm90b3R5cGUubyxhZS5wcm90b3R5cGUuZGE9ZnVuY3Rpb24oKXtyZXR1cm5+fnRoaXMubygpfSxhZS5wcm90b3R5cGUucmVhZFNpZ25lZFZhcmludDMyPWFlLnByb3RvdHlwZS5kYSxhZS5wcm90b3R5cGUuTz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm8oKS50b1N0cmluZygpfSxhZS5wcm90b3R5cGUuRWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYSgpLnRvU3RyaW5nKCl9LGFlLnByb3RvdHlwZS5yZWFkU2lnbmVkVmFyaW50MzJTdHJpbmc9YWUucHJvdG90eXBlLkVhLGFlLnByb3RvdHlwZS5JYT1mdW5jdGlvbigpe3ZhciBlPXRoaXMubygpO3JldHVybiBlPj4+MV4tKDEmZSl9LGFlLnByb3RvdHlwZS5yZWFkWmlnemFnVmFyaW50MzI9YWUucHJvdG90eXBlLklhLGFlLnByb3RvdHlwZS5HYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLncoVil9LGFlLnByb3RvdHlwZS5yZWFkVW5zaWduZWRWYXJpbnQ2ND1hZS5wcm90b3R5cGUuR2EsYWUucHJvdG90eXBlLkhhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudyhYKX0sYWUucHJvdG90eXBlLnJlYWRVbnNpZ25lZFZhcmludDY0U3RyaW5nPWFlLnByb3RvdHlwZS5IYSxhZS5wcm90b3R5cGUuc2E9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53KEcpfSxhZS5wcm90b3R5cGUucmVhZFNpZ25lZFZhcmludDY0PWFlLnByb3RvdHlwZS5zYSxhZS5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53KFEpfSxhZS5wcm90b3R5cGUucmVhZFNpZ25lZFZhcmludDY0U3RyaW5nPWFlLnByb3RvdHlwZS5GYSxhZS5wcm90b3R5cGUuSmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53KEspfSxhZS5wcm90b3R5cGUucmVhZFppZ3phZ1ZhcmludDY0PWFlLnByb3RvdHlwZS5KYSxhZS5wcm90b3R5cGUuZmI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYShZKX0sYWUucHJvdG90eXBlLnJlYWRaaWd6YWdWYXJpbnRIYXNoNjQ9YWUucHJvdG90eXBlLmZiLGFlLnByb3RvdHlwZS5LYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhKFEpfSxhZS5wcm90b3R5cGUucmVhZFppZ3phZ1ZhcmludDY0U3RyaW5nPWFlLnByb3RvdHlwZS5LYSxhZS5wcm90b3R5cGUuR2M9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJbdGhpcy5hXTtyZXR1cm4gdGhpcy5hKz0xLG0odGhpcy5hPD10aGlzLmMpLGV9LGFlLnByb3RvdHlwZS5yZWFkVWludDg9YWUucHJvdG90eXBlLkdjLGFlLnByb3RvdHlwZS5FYz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYlt0aGlzLmFdLHQ9dGhpcy5iW3RoaXMuYSsxXTtyZXR1cm4gdGhpcy5hKz0yLG0odGhpcy5hPD10aGlzLmMpLGU8PDB8dDw8OH0sYWUucHJvdG90eXBlLnJlYWRVaW50MTY9YWUucHJvdG90eXBlLkVjLGFlLnByb3RvdHlwZS5tPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iW3RoaXMuYV0sdD10aGlzLmJbdGhpcy5hKzFdLHI9dGhpcy5iW3RoaXMuYSsyXSxuPXRoaXMuYlt0aGlzLmErM107cmV0dXJuIHRoaXMuYSs9NCxtKHRoaXMuYTw9dGhpcy5jKSwoZTw8MHx0PDw4fHI8PDE2fG48PDI0KT4+PjB9LGFlLnByb3RvdHlwZS5yZWFkVWludDMyPWFlLnByb3RvdHlwZS5tLGFlLnByb3RvdHlwZS5nYT1mdW5jdGlvbigpe3JldHVybiBWKHRoaXMubSgpLHRoaXMubSgpKX0sYWUucHJvdG90eXBlLnJlYWRVaW50NjQ9YWUucHJvdG90eXBlLmdhLGFlLnByb3RvdHlwZS5oYT1mdW5jdGlvbigpe3JldHVybiBYKHRoaXMubSgpLHRoaXMubSgpKX0sYWUucHJvdG90eXBlLnJlYWRVaW50NjRTdHJpbmc9YWUucHJvdG90eXBlLmhhLGFlLnByb3RvdHlwZS5YYj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYlt0aGlzLmFdO3JldHVybiB0aGlzLmErPTEsbSh0aGlzLmE8PXRoaXMuYyksZTw8MjQ+PjI0fSxhZS5wcm90b3R5cGUucmVhZEludDg9YWUucHJvdG90eXBlLlhiLGFlLnByb3RvdHlwZS5WYj1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYlt0aGlzLmFdLHQ9dGhpcy5iW3RoaXMuYSsxXTtyZXR1cm4gdGhpcy5hKz0yLG0odGhpcy5hPD10aGlzLmMpLChlPDwwfHQ8PDgpPDwxNj4+MTZ9LGFlLnByb3RvdHlwZS5yZWFkSW50MTY9YWUucHJvdG90eXBlLlZiLGFlLnByb3RvdHlwZS5QPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iW3RoaXMuYV0sdD10aGlzLmJbdGhpcy5hKzFdLHI9dGhpcy5iW3RoaXMuYSsyXSxuPXRoaXMuYlt0aGlzLmErM107cmV0dXJuIHRoaXMuYSs9NCxtKHRoaXMuYTw9dGhpcy5jKSxlPDwwfHQ8PDh8cjw8MTZ8bjw8MjR9LGFlLnByb3RvdHlwZS5yZWFkSW50MzI9YWUucHJvdG90eXBlLlAsYWUucHJvdG90eXBlLmJhPWZ1bmN0aW9uKCl7cmV0dXJuIEcodGhpcy5tKCksdGhpcy5tKCkpfSxhZS5wcm90b3R5cGUucmVhZEludDY0PWFlLnByb3RvdHlwZS5iYSxhZS5wcm90b3R5cGUuY2E9ZnVuY3Rpb24oKXtyZXR1cm4gUSh0aGlzLm0oKSx0aGlzLm0oKSl9LGFlLnByb3RvdHlwZS5yZWFkSW50NjRTdHJpbmc9YWUucHJvdG90eXBlLmNhLGFlLnByb3RvdHlwZS5hYT1mdW5jdGlvbigpe3JldHVybiBxKHRoaXMubSgpKX0sYWUucHJvdG90eXBlLnJlYWRGbG9hdD1hZS5wcm90b3R5cGUuYWEsYWUucHJvdG90eXBlLlo9ZnVuY3Rpb24oKXtyZXR1cm4gSih0aGlzLm0oKSx0aGlzLm0oKSl9LGFlLnByb3RvdHlwZS5yZWFkRG91YmxlPWFlLnByb3RvdHlwZS5aLGFlLnByb3RvdHlwZS5wYT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5iW3RoaXMuYSsrXX0sYWUucHJvdG90eXBlLnJlYWRCb29sPWFlLnByb3RvdHlwZS5wYSxhZS5wcm90b3R5cGUucmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYSgpfSxhZS5wcm90b3R5cGUucmVhZEVudW09YWUucHJvdG90eXBlLnJhLGFlLnByb3RvdHlwZS5mYT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmIscj10aGlzLmE7ZT1yK2U7Zm9yKHZhciBuPVtdLG89IiI7cjxlOyl7dmFyIGk9dFtyKytdO2lmKDEyOD5pKW4ucHVzaChpKTtlbHNle2lmKDE5Mj5pKWNvbnRpbnVlO2lmKDIyND5pKXt2YXIgYT10W3IrK107bi5wdXNoKCgzMSZpKTw8Nnw2MyZhKX1lbHNlIGlmKDI0MD5pKXthPXRbcisrXTt2YXIgcz10W3IrK107bi5wdXNoKCgxNSZpKTw8MTJ8KDYzJmEpPDw2fDYzJnMpfWVsc2UgMjQ4PmkmJihpPSg3JmkpPDwxOHwoNjMmKGE9dFtyKytdKSk8PDEyfCg2MyYocz10W3IrK10pKTw8Nnw2MyZ0W3IrK10saS09NjU1MzYsbi5wdXNoKDU1Mjk2KyhpPj4xMCYxMDIzKSw1NjMyMCsoMTAyMyZpKSkpfTgxOTI8PW4ubGVuZ3RoJiYobys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG4pLG4ubGVuZ3RoPTApfXJldHVybiBvKz1NKG4pLHRoaXMuYT1yLG99LGFlLnByb3RvdHlwZS5yZWFkU3RyaW5nPWFlLnByb3RvdHlwZS5mYSxhZS5wcm90b3R5cGUuRGM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm8oKTtyZXR1cm4gdGhpcy5mYShlKX0sYWUucHJvdG90eXBlLnJlYWRTdHJpbmdXaXRoTGVuZ3RoPWFlLnByb3RvdHlwZS5EYyxhZS5wcm90b3R5cGUucWE9ZnVuY3Rpb24oZSl7aWYoMD5lfHx0aGlzLmErZT50aGlzLmIubGVuZ3RoKXJldHVybiB0aGlzLnY9ITAsVCgiSW52YWxpZCBieXRlIGxlbmd0aCEiKSxuZXcgVWludDhBcnJheSgwKTt2YXIgdD10aGlzLmIuc3ViYXJyYXkodGhpcy5hLHRoaXMuYStlKTtyZXR1cm4gdGhpcy5hKz1lLG0odGhpcy5hPD10aGlzLmMpLHR9LGFlLnByb3RvdHlwZS5yZWFkQnl0ZXM9YWUucHJvdG90eXBlLnFhLGFlLnByb3RvdHlwZS5pYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLncoWSl9LGFlLnByb3RvdHlwZS5yZWFkVmFyaW50SGFzaDY0PWFlLnByb3RvdHlwZS5pYSxhZS5wcm90b3R5cGUuJD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYix0PXRoaXMuYSxyPWVbdF0sbj1lW3QrMV0sbz1lW3QrMl0saT1lW3QrM10sYT1lW3QrNF0scz1lW3QrNV0sdT1lW3QrNl07cmV0dXJuIGU9ZVt0KzddLHRoaXMuYSs9OCxTdHJpbmcuZnJvbUNoYXJDb2RlKHIsbixvLGksYSxzLHUsZSl9LGFlLnByb3RvdHlwZS5yZWFkRml4ZWRIYXNoNjQ9YWUucHJvdG90eXBlLiQsZCgianNwYi5CaW5hcnlSZWFkZXIiLGNlLHZvaWQgMCk7dmFyIGxlPVtdO2Z1bmN0aW9uIGRlKGUsdCxyKXtpZihsZS5sZW5ndGgpe3ZhciBuPWxlLnBvcCgpO3JldHVybiBlJiZuLmEuSChlLHQsciksbn1yZXR1cm4gbmV3IGNlKGUsdCxyKX1mdW5jdGlvbiBmZShlLHQpe20oMj09ZS5iKTt2YXIgcj1lLmEubygpO3I9ZS5hLkIoKStyO2Zvcih2YXIgbj1bXTtlLmEuQigpPHI7KW4ucHVzaCh0LmNhbGwoZS5hKSk7cmV0dXJuIG59ZnVuY3Rpb24gcGUoZSx0LHIsbixvKXt0aGlzLm1hPWUsdGhpcy5CYT10LHRoaXMubGE9cix0aGlzLk5hPW4sdGhpcy5uYT1vfWZ1bmN0aW9uIGhlKGUsdCxyLG4sbyxpKXt0aGlzLlphPWUsdGhpcy56YT10LHRoaXMuQWE9cix0aGlzLldhPW4sdGhpcy5BYj1vLHRoaXMuTmI9aX1mdW5jdGlvbiBnZSgpe31jZS5jbGVhckluc3RhbmNlQ2FjaGU9ZnVuY3Rpb24oKXtsZT1bXX0sY2UuZ2V0SW5zdGFuY2VDYWNoZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBsZS5sZW5ndGh9LGNlLmFsbG9jPWRlLGNlLnByb3RvdHlwZS56Yj1kZSxjZS5wcm90b3R5cGUuYWxsb2M9Y2UucHJvdG90eXBlLnpiLGNlLnByb3RvdHlwZS5DYT1mdW5jdGlvbigpe3RoaXMuYS5jbGVhcigpLHRoaXMuYj10aGlzLmM9LTEsdGhpcy5oPSExLHRoaXMudj1udWxsLDEwMD5sZS5sZW5ndGgmJmxlLnB1c2godGhpcyl9LGNlLnByb3RvdHlwZS5mcmVlPWNlLnByb3RvdHlwZS5DYSxjZS5wcm90b3R5cGUuRmI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5PfSxjZS5wcm90b3R5cGUuZ2V0RmllbGRDdXJzb3I9Y2UucHJvdG90eXBlLkZiLGNlLnByb3RvdHlwZS5CPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYS5CKCl9LGNlLnByb3RvdHlwZS5nZXRDdXJzb3I9Y2UucHJvdG90eXBlLkIsY2UucHJvdG90eXBlLlk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hLlkoKX0sY2UucHJvdG90eXBlLmdldEJ1ZmZlcj1jZS5wcm90b3R5cGUuWSxjZS5wcm90b3R5cGUuSGI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jfSxjZS5wcm90b3R5cGUuZ2V0RmllbGROdW1iZXI9Y2UucHJvdG90eXBlLkhiLGNlLnByb3RvdHlwZS5MYj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ9LGNlLnByb3RvdHlwZS5nZXRXaXJlVHlwZT1jZS5wcm90b3R5cGUuTGIsY2UucHJvdG90eXBlLk1iPWZ1bmN0aW9uKCl7cmV0dXJuIDI9PXRoaXMuYn0sY2UucHJvdG90eXBlLmlzRGVsaW1pdGVkPWNlLnByb3RvdHlwZS5NYixjZS5wcm90b3R5cGUuYmI9ZnVuY3Rpb24oKXtyZXR1cm4gND09dGhpcy5ifSxjZS5wcm90b3R5cGUuaXNFbmRHcm91cD1jZS5wcm90b3R5cGUuYmIsY2UucHJvdG90eXBlLmdldEVycm9yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaHx8dGhpcy5hLmdldEVycm9yKCl9LGNlLnByb3RvdHlwZS5nZXRFcnJvcj1jZS5wcm90b3R5cGUuZ2V0RXJyb3IsY2UucHJvdG90eXBlLkg9ZnVuY3Rpb24oZSx0LHIpe3RoaXMuYS5IKGUsdCxyKSx0aGlzLmI9dGhpcy5jPS0xfSxjZS5wcm90b3R5cGUuc2V0QmxvY2s9Y2UucHJvdG90eXBlLkgsY2UucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hLnJlc2V0KCksdGhpcy5iPXRoaXMuYz0tMX0sY2UucHJvdG90eXBlLnJlc2V0PWNlLnByb3RvdHlwZS5yZXNldCxjZS5wcm90b3R5cGUuYWR2YW5jZT1mdW5jdGlvbihlKXt0aGlzLmEuYWR2YW5jZShlKX0sY2UucHJvdG90eXBlLmFkdmFuY2U9Y2UucHJvdG90eXBlLmFkdmFuY2UsY2UucHJvdG90eXBlLm9hPWZ1bmN0aW9uKCl7aWYodGhpcy5hLnlhKCkpcmV0dXJuITE7aWYodGhpcy5nZXRFcnJvcigpKXJldHVybiBUKCJEZWNvZGVyIGhpdCBhbiBlcnJvciIpLCExO3RoaXMuTz10aGlzLmEuQigpO3ZhciBlPXRoaXMuYS5vKCksdD1lPj4+MztyZXR1cm4gMCE9KGUmPTcpJiY1IT1lJiYxIT1lJiYyIT1lJiYzIT1lJiY0IT1lPyhUKCJJbnZhbGlkIHdpcmUgdHlwZTogJXMgKGF0IHBvc2l0aW9uICVzKSIsZSx0aGlzLk8pLHRoaXMuaD0hMCwhMSk6KHRoaXMuYz10LHRoaXMuYj1lLCEwKX0sY2UucHJvdG90eXBlLm5leHRGaWVsZD1jZS5wcm90b3R5cGUub2EsY2UucHJvdG90eXBlLk9hPWZ1bmN0aW9uKCl7dGhpcy5hLm1iKHRoaXMuYzw8M3x0aGlzLmIpfSxjZS5wcm90b3R5cGUudW5za2lwSGVhZGVyPWNlLnByb3RvdHlwZS5PYSxjZS5wcm90b3R5cGUuTGM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmM7Zm9yKHRoaXMuT2EoKTt0aGlzLm9hKCkmJnRoaXMuYz09ZTspdGhpcy5DKCk7dGhpcy5hLnlhKCl8fHRoaXMuT2EoKX0sY2UucHJvdG90eXBlLnNraXBNYXRjaGluZ0ZpZWxkcz1jZS5wcm90b3R5cGUuTGMsY2UucHJvdG90eXBlLmxiPWZ1bmN0aW9uKCl7MCE9dGhpcy5iPyhUKCJJbnZhbGlkIHdpcmUgdHlwZSBmb3Igc2tpcFZhcmludEZpZWxkIiksdGhpcy5DKCkpOnRoaXMuYS5rYigpfSxjZS5wcm90b3R5cGUuc2tpcFZhcmludEZpZWxkPWNlLnByb3RvdHlwZS5sYixjZS5wcm90b3R5cGUuZ2I9ZnVuY3Rpb24oKXtpZigyIT10aGlzLmIpVCgiSW52YWxpZCB3aXJlIHR5cGUgZm9yIHNraXBEZWxpbWl0ZWRGaWVsZCIpLHRoaXMuQygpO2Vsc2V7dmFyIGU9dGhpcy5hLm8oKTt0aGlzLmEuYWR2YW5jZShlKX19LGNlLnByb3RvdHlwZS5za2lwRGVsaW1pdGVkRmllbGQ9Y2UucHJvdG90eXBlLmdiLGNlLnByb3RvdHlwZS5oYj1mdW5jdGlvbigpezUhPXRoaXMuYj8oVCgiSW52YWxpZCB3aXJlIHR5cGUgZm9yIHNraXBGaXhlZDMyRmllbGQiKSx0aGlzLkMoKSk6dGhpcy5hLmFkdmFuY2UoNCl9LGNlLnByb3RvdHlwZS5za2lwRml4ZWQzMkZpZWxkPWNlLnByb3RvdHlwZS5oYixjZS5wcm90b3R5cGUuaWI9ZnVuY3Rpb24oKXsxIT10aGlzLmI/KFQoIkludmFsaWQgd2lyZSB0eXBlIGZvciBza2lwRml4ZWQ2NEZpZWxkIiksdGhpcy5DKCkpOnRoaXMuYS5hZHZhbmNlKDgpfSxjZS5wcm90b3R5cGUuc2tpcEZpeGVkNjRGaWVsZD1jZS5wcm90b3R5cGUuaWIsY2UucHJvdG90eXBlLmpiPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuYzs7KXtpZighdGhpcy5vYSgpKXtUKCJVbm1hdGNoZWQgc3RhcnQtZ3JvdXAgdGFnOiBzdHJlYW0gRU9GIiksdGhpcy5oPSEwO2JyZWFrfWlmKDQ9PXRoaXMuYil7dGhpcy5jIT1lJiYoVCgiVW5tYXRjaGVkIGVuZC1ncm91cCB0YWciKSx0aGlzLmg9ITApO2JyZWFrfXRoaXMuQygpfX0sY2UucHJvdG90eXBlLnNraXBHcm91cD1jZS5wcm90b3R5cGUuamIsY2UucHJvdG90eXBlLkM9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5iKXtjYXNlIDA6dGhpcy5sYigpO2JyZWFrO2Nhc2UgMTp0aGlzLmliKCk7YnJlYWs7Y2FzZSAyOnRoaXMuZ2IoKTticmVhaztjYXNlIDU6dGhpcy5oYigpO2JyZWFrO2Nhc2UgMzp0aGlzLmpiKCk7YnJlYWs7ZGVmYXVsdDpUKCJJbnZhbGlkIHdpcmUgZW5jb2RpbmcgZm9yIGZpZWxkLiIpfX0sY2UucHJvdG90eXBlLnNraXBGaWVsZD1jZS5wcm90b3R5cGUuQyxjZS5wcm90b3R5cGUuSGM9ZnVuY3Rpb24oZSx0KXtudWxsPT09dGhpcy52JiYodGhpcy52PXt9KSxtKCF0aGlzLnZbZV0pLHRoaXMudltlXT10fSxjZS5wcm90b3R5cGUucmVnaXN0ZXJSZWFkQ2FsbGJhY2s9Y2UucHJvdG90eXBlLkhjLGNlLnByb3RvdHlwZS5JYz1mdW5jdGlvbihlKXtyZXR1cm4gbShudWxsIT09dGhpcy52KSxtKGU9dGhpcy52W2VdKSxlKHRoaXMpfSxjZS5wcm90b3R5cGUucnVuUmVhZENhbGxiYWNrPWNlLnByb3RvdHlwZS5JYyxjZS5wcm90b3R5cGUuWWI9ZnVuY3Rpb24oZSx0KXttKDI9PXRoaXMuYik7dmFyIHI9dGhpcy5hLmMsbj10aGlzLmEubygpO249dGhpcy5hLkIoKStuLHRoaXMuYS5zZXRFbmQobiksdChlLHRoaXMpLHRoaXMuYS5NYShuKSx0aGlzLmEuc2V0RW5kKHIpfSxjZS5wcm90b3R5cGUucmVhZE1lc3NhZ2U9Y2UucHJvdG90eXBlLlliLGNlLnByb3RvdHlwZS5VYj1mdW5jdGlvbihlLHQscil7bSgzPT10aGlzLmIpLG0odGhpcy5jPT1lKSxyKHQsdGhpcyksdGhpcy5ofHw0PT10aGlzLmJ8fChUKCJHcm91cCBzdWJtZXNzYWdlIGRpZCBub3QgZW5kIHdpdGggYW4gRU5EX0dST1VQIHRhZyIpLHRoaXMuaD0hMCl9LGNlLnByb3RvdHlwZS5yZWFkR3JvdXA9Y2UucHJvdG90eXBlLlViLGNlLnByb3RvdHlwZS5HYj1mdW5jdGlvbigpe20oMj09dGhpcy5iKTt2YXIgZT10aGlzLmEubygpLHQ9dGhpcy5hLkIoKSxyPXQrZTtyZXR1cm4gZT11ZSh0aGlzLmEuWSgpLHQsZSksdGhpcy5hLk1hKHIpLGV9LGNlLnByb3RvdHlwZS5nZXRGaWVsZERlY29kZXI9Y2UucHJvdG90eXBlLkdiLGNlLnByb3RvdHlwZS5QPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMD09dGhpcy5iKSx0aGlzLmEuZGEoKX0sY2UucHJvdG90eXBlLnJlYWRJbnQzMj1jZS5wcm90b3R5cGUuUCxjZS5wcm90b3R5cGUuV2I9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS5FYSgpfSxjZS5wcm90b3R5cGUucmVhZEludDMyU3RyaW5nPWNlLnByb3RvdHlwZS5XYixjZS5wcm90b3R5cGUuYmE9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS5zYSgpfSxjZS5wcm90b3R5cGUucmVhZEludDY0PWNlLnByb3RvdHlwZS5iYSxjZS5wcm90b3R5cGUuY2E9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS5GYSgpfSxjZS5wcm90b3R5cGUucmVhZEludDY0U3RyaW5nPWNlLnByb3RvdHlwZS5jYSxjZS5wcm90b3R5cGUubT1mdW5jdGlvbigpe3JldHVybiBtKDA9PXRoaXMuYiksdGhpcy5hLm8oKX0sY2UucHJvdG90eXBlLnJlYWRVaW50MzI9Y2UucHJvdG90eXBlLm0sY2UucHJvdG90eXBlLkZjPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMD09dGhpcy5iKSx0aGlzLmEuTygpfSxjZS5wcm90b3R5cGUucmVhZFVpbnQzMlN0cmluZz1jZS5wcm90b3R5cGUuRmMsY2UucHJvdG90eXBlLmdhPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMD09dGhpcy5iKSx0aGlzLmEuR2EoKX0sY2UucHJvdG90eXBlLnJlYWRVaW50NjQ9Y2UucHJvdG90eXBlLmdhLGNlLnByb3RvdHlwZS5oYT1mdW5jdGlvbigpe3JldHVybiBtKDA9PXRoaXMuYiksdGhpcy5hLkhhKCl9LGNlLnByb3RvdHlwZS5yZWFkVWludDY0U3RyaW5nPWNlLnByb3RvdHlwZS5oYSxjZS5wcm90b3R5cGUuemM9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS5JYSgpfSxjZS5wcm90b3R5cGUucmVhZFNpbnQzMj1jZS5wcm90b3R5cGUuemMsY2UucHJvdG90eXBlLkFjPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMD09dGhpcy5iKSx0aGlzLmEuSmEoKX0sY2UucHJvdG90eXBlLnJlYWRTaW50NjQ9Y2UucHJvdG90eXBlLkFjLGNlLnByb3RvdHlwZS5CYz1mdW5jdGlvbigpe3JldHVybiBtKDA9PXRoaXMuYiksdGhpcy5hLkthKCl9LGNlLnByb3RvdHlwZS5yZWFkU2ludDY0U3RyaW5nPWNlLnByb3RvdHlwZS5CYyxjZS5wcm90b3R5cGUuUmI9ZnVuY3Rpb24oKXtyZXR1cm4gbSg1PT10aGlzLmIpLHRoaXMuYS5tKCl9LGNlLnByb3RvdHlwZS5yZWFkRml4ZWQzMj1jZS5wcm90b3R5cGUuUmIsY2UucHJvdG90eXBlLlNiPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMT09dGhpcy5iKSx0aGlzLmEuZ2EoKX0sY2UucHJvdG90eXBlLnJlYWRGaXhlZDY0PWNlLnByb3RvdHlwZS5TYixjZS5wcm90b3R5cGUuVGI9ZnVuY3Rpb24oKXtyZXR1cm4gbSgxPT10aGlzLmIpLHRoaXMuYS5oYSgpfSxjZS5wcm90b3R5cGUucmVhZEZpeGVkNjRTdHJpbmc9Y2UucHJvdG90eXBlLlRiLGNlLnByb3RvdHlwZS52Yz1mdW5jdGlvbigpe3JldHVybiBtKDU9PXRoaXMuYiksdGhpcy5hLlAoKX0sY2UucHJvdG90eXBlLnJlYWRTZml4ZWQzMj1jZS5wcm90b3R5cGUudmMsY2UucHJvdG90eXBlLndjPWZ1bmN0aW9uKCl7cmV0dXJuIG0oNT09dGhpcy5iKSx0aGlzLmEuUCgpLnRvU3RyaW5nKCl9LGNlLnByb3RvdHlwZS5yZWFkU2ZpeGVkMzJTdHJpbmc9Y2UucHJvdG90eXBlLndjLGNlLnByb3RvdHlwZS54Yz1mdW5jdGlvbigpe3JldHVybiBtKDE9PXRoaXMuYiksdGhpcy5hLmJhKCl9LGNlLnByb3RvdHlwZS5yZWFkU2ZpeGVkNjQ9Y2UucHJvdG90eXBlLnhjLGNlLnByb3RvdHlwZS55Yz1mdW5jdGlvbigpe3JldHVybiBtKDE9PXRoaXMuYiksdGhpcy5hLmNhKCl9LGNlLnByb3RvdHlwZS5yZWFkU2ZpeGVkNjRTdHJpbmc9Y2UucHJvdG90eXBlLnljLGNlLnByb3RvdHlwZS5hYT1mdW5jdGlvbigpe3JldHVybiBtKDU9PXRoaXMuYiksdGhpcy5hLmFhKCl9LGNlLnByb3RvdHlwZS5yZWFkRmxvYXQ9Y2UucHJvdG90eXBlLmFhLGNlLnByb3RvdHlwZS5aPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMT09dGhpcy5iKSx0aGlzLmEuWigpfSxjZS5wcm90b3R5cGUucmVhZERvdWJsZT1jZS5wcm90b3R5cGUuWixjZS5wcm90b3R5cGUucGE9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLCEhdGhpcy5hLm8oKX0sY2UucHJvdG90eXBlLnJlYWRCb29sPWNlLnByb3RvdHlwZS5wYSxjZS5wcm90b3R5cGUucmE9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS5zYSgpfSxjZS5wcm90b3R5cGUucmVhZEVudW09Y2UucHJvdG90eXBlLnJhLGNlLnByb3RvdHlwZS5mYT1mdW5jdGlvbigpe20oMj09dGhpcy5iKTt2YXIgZT10aGlzLmEubygpO3JldHVybiB0aGlzLmEuZmEoZSl9LGNlLnByb3RvdHlwZS5yZWFkU3RyaW5nPWNlLnByb3RvdHlwZS5mYSxjZS5wcm90b3R5cGUucWE9ZnVuY3Rpb24oKXttKDI9PXRoaXMuYik7dmFyIGU9dGhpcy5hLm8oKTtyZXR1cm4gdGhpcy5hLnFhKGUpfSxjZS5wcm90b3R5cGUucmVhZEJ5dGVzPWNlLnByb3RvdHlwZS5xYSxjZS5wcm90b3R5cGUuaWE9ZnVuY3Rpb24oKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS5pYSgpfSxjZS5wcm90b3R5cGUucmVhZFZhcmludEhhc2g2ND1jZS5wcm90b3R5cGUuaWEsY2UucHJvdG90eXBlLkNjPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMD09dGhpcy5iKSx0aGlzLmEuZmIoKX0sY2UucHJvdG90eXBlLnJlYWRTaW50SGFzaDY0PWNlLnByb3RvdHlwZS5DYyxjZS5wcm90b3R5cGUudz1mdW5jdGlvbihlKXtyZXR1cm4gbSgwPT10aGlzLmIpLHRoaXMuYS53KGUpfSxjZS5wcm90b3R5cGUucmVhZFNwbGl0VmFyaW50NjQ9Y2UucHJvdG90eXBlLncsY2UucHJvdG90eXBlLmVhPWZ1bmN0aW9uKGUpe3JldHVybiBtKDA9PXRoaXMuYiksdGhpcy5hLncoKGZ1bmN0aW9uKHQscil7cmV0dXJuIFoodCxyLGUpfSkpfSxjZS5wcm90b3R5cGUucmVhZFNwbGl0WmlnemFnVmFyaW50NjQ9Y2UucHJvdG90eXBlLmVhLGNlLnByb3RvdHlwZS4kPWZ1bmN0aW9uKCl7cmV0dXJuIG0oMT09dGhpcy5iKSx0aGlzLmEuJCgpfSxjZS5wcm90b3R5cGUucmVhZEZpeGVkSGFzaDY0PWNlLnByb3RvdHlwZS4kLGNlLnByb3RvdHlwZS50YT1mdW5jdGlvbihlKXtyZXR1cm4gbSgxPT10aGlzLmIpLHRoaXMuYS50YShlKX0sY2UucHJvdG90eXBlLnJlYWRTcGxpdEZpeGVkNjQ9Y2UucHJvdG90eXBlLnRhLGNlLnByb3RvdHlwZS5nYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5kYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkSW50MzI9Y2UucHJvdG90eXBlLmdjLGNlLnByb3RvdHlwZS5oYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5FYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkSW50MzJTdHJpbmc9Y2UucHJvdG90eXBlLmhjLGNlLnByb3RvdHlwZS5pYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5zYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkSW50NjQ9Y2UucHJvdG90eXBlLmljLGNlLnByb3RvdHlwZS5qYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5GYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkSW50NjRTdHJpbmc9Y2UucHJvdG90eXBlLmpjLGNlLnByb3RvdHlwZS5xYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5vKX0sY2UucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50MzI9Y2UucHJvdG90eXBlLnFjLGNlLnByb3RvdHlwZS5yYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5PKX0sY2UucHJvdG90eXBlLnJlYWRQYWNrZWRVaW50MzJTdHJpbmc9Y2UucHJvdG90eXBlLnJjLGNlLnByb3RvdHlwZS5zYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5HYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkVWludDY0PWNlLnByb3RvdHlwZS5zYyxjZS5wcm90b3R5cGUudGM9ZnVuY3Rpb24oKXtyZXR1cm4gZmUodGhpcyx0aGlzLmEuSGEpfSxjZS5wcm90b3R5cGUucmVhZFBhY2tlZFVpbnQ2NFN0cmluZz1jZS5wcm90b3R5cGUudGMsY2UucHJvdG90eXBlLm5jPWZ1bmN0aW9uKCl7cmV0dXJuIGZlKHRoaXMsdGhpcy5hLklhKX0sY2UucHJvdG90eXBlLnJlYWRQYWNrZWRTaW50MzI9Y2UucHJvdG90eXBlLm5jLGNlLnByb3RvdHlwZS5vYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5KYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkU2ludDY0PWNlLnByb3RvdHlwZS5vYyxjZS5wcm90b3R5cGUucGM9ZnVuY3Rpb24oKXtyZXR1cm4gZmUodGhpcyx0aGlzLmEuS2EpfSxjZS5wcm90b3R5cGUucmVhZFBhY2tlZFNpbnQ2NFN0cmluZz1jZS5wcm90b3R5cGUucGMsY2UucHJvdG90eXBlLmJjPWZ1bmN0aW9uKCl7cmV0dXJuIGZlKHRoaXMsdGhpcy5hLm0pfSxjZS5wcm90b3R5cGUucmVhZFBhY2tlZEZpeGVkMzI9Y2UucHJvdG90eXBlLmJjLGNlLnByb3RvdHlwZS5jYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5nYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkRml4ZWQ2ND1jZS5wcm90b3R5cGUuY2MsY2UucHJvdG90eXBlLmRjPWZ1bmN0aW9uKCl7cmV0dXJuIGZlKHRoaXMsdGhpcy5hLmhhKX0sY2UucHJvdG90eXBlLnJlYWRQYWNrZWRGaXhlZDY0U3RyaW5nPWNlLnByb3RvdHlwZS5kYyxjZS5wcm90b3R5cGUua2M9ZnVuY3Rpb24oKXtyZXR1cm4gZmUodGhpcyx0aGlzLmEuUCl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkU2ZpeGVkMzI9Y2UucHJvdG90eXBlLmtjLGNlLnByb3RvdHlwZS5sYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5iYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkU2ZpeGVkNjQ9Y2UucHJvdG90eXBlLmxjLGNlLnByb3RvdHlwZS5tYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5jYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkU2ZpeGVkNjRTdHJpbmc9Y2UucHJvdG90eXBlLm1jLGNlLnByb3RvdHlwZS5mYz1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5hYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkRmxvYXQ9Y2UucHJvdG90eXBlLmZjLGNlLnByb3RvdHlwZS4kYj1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5aKX0sY2UucHJvdG90eXBlLnJlYWRQYWNrZWREb3VibGU9Y2UucHJvdG90eXBlLiRiLGNlLnByb3RvdHlwZS5aYj1mdW5jdGlvbigpe3JldHVybiBmZSh0aGlzLHRoaXMuYS5wYSl9LGNlLnByb3RvdHlwZS5yZWFkUGFja2VkQm9vbD1jZS5wcm90b3R5cGUuWmIsY2UucHJvdG90eXBlLmFjPWZ1bmN0aW9uKCl7cmV0dXJuIGZlKHRoaXMsdGhpcy5hLnJhKX0sY2UucHJvdG90eXBlLnJlYWRQYWNrZWRFbnVtPWNlLnByb3RvdHlwZS5hYyxjZS5wcm90b3R5cGUudWM9ZnVuY3Rpb24oKXtyZXR1cm4gZmUodGhpcyx0aGlzLmEuaWEpfSxjZS5wcm90b3R5cGUucmVhZFBhY2tlZFZhcmludEhhc2g2ND1jZS5wcm90b3R5cGUudWMsY2UucHJvdG90eXBlLmVjPWZ1bmN0aW9uKCl7cmV0dXJuIGZlKHRoaXMsdGhpcy5hLiQpfSxjZS5wcm90b3R5cGUucmVhZFBhY2tlZEZpeGVkSGFzaDY0PWNlLnByb3RvdHlwZS5lYyxkKCJqc3BiLkV4dGVuc2lvbkZpZWxkSW5mbyIscGUsdm9pZCAwKSxkKCJqc3BiLkV4dGVuc2lvbkZpZWxkQmluYXJ5SW5mbyIsaGUsdm9pZCAwKSxwZS5wcm90b3R5cGUuRj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5sYX0scGUucHJvdG90eXBlLmlzTWVzc2FnZVR5cGU9cGUucHJvdG90eXBlLkYsZCgianNwYi5NZXNzYWdlIixnZSx2b2lkIDApLGdlLkdFTkVSQVRFX1RPX09CSkVDVD0hMCxnZS5HRU5FUkFURV9GUk9NX09CSkVDVD0hMDt2YXIgeWU9ImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXk7Z2UucHJvdG90eXBlLkliPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYn0sZ2UucHJvdG90eXBlLmdldEpzUGJNZXNzYWdlSWQ9Z2UucHJvdG90eXBlLkliLGdlLmluaXRpYWxpemU9ZnVuY3Rpb24oZSx0LHIsbixvLGkpe2lmKGUuZj1udWxsLHR8fCh0PXI/W3JdOltdKSxlLmI9cj9TdHJpbmcocik6dm9pZCAwLGUuRD0wPT09cj8tMTowLGUudT10LHQ9LTEsIShyPWUudS5sZW5ndGgpfHwodD1yLTEsbnVsbD09PShyPWUudVt0XSl8fCJvYmplY3QiIT10eXBlb2Ygcnx8QXJyYXkuaXNBcnJheShyKXx8eWUmJnIgaW5zdGFuY2VvZiBVaW50OEFycmF5KT8tMTxuPyhlLkc9TWF0aC5tYXgobix0KzEtZS5EKSxlLmk9bnVsbCk6ZS5HPU51bWJlci5NQVhfVkFMVUU6KGUuRz10LWUuRCxlLmk9ciksZS5hPXt9LG8pZm9yKG49MDtuPG8ubGVuZ3RoO24rKykodD1vW25dKTxlLkc/KHQrPWUuRCxlLnVbdF09ZS51W3RdfHxiZSk6KHZlKGUpLGUuaVt0XT1lLmlbdF18fGJlKTtpZihpJiZpLmxlbmd0aClmb3Iobj0wO248aS5sZW5ndGg7bisrKUllKGUsaVtuXSl9O3ZhciBiZT1PYmplY3QuZnJlZXplP09iamVjdC5mcmVlemUoW10pOltdO2Z1bmN0aW9uIHZlKGUpe3ZhciB0PWUuRytlLkQ7ZS51W3RdfHwoZS5pPWUudVt0XT17fSl9ZnVuY3Rpb24gbWUoZSx0LHIpe2Zvcih2YXIgbj1bXSxvPTA7bzxlLmxlbmd0aDtvKyspbltvXT10LmNhbGwoZVtvXSxyLGVbb10pO3JldHVybiBufWZ1bmN0aW9uIFRlKGUsdCl7aWYodDxlLkcpe3QrPWUuRDt2YXIgcj1lLnVbdF07cmV0dXJuIHI9PT1iZT9lLnVbdF09W106cn1pZihlLmkpcmV0dXJuKHI9ZS5pW3RdKT09PWJlP2UuaVt0XT1bXTpyfWZ1bmN0aW9uIHdlKGUsdCl7cmV0dXJuIG51bGw9PShlPVRlKGUsdCkpP2U6K2V9ZnVuY3Rpb24gQWUoZSx0KXtyZXR1cm4gbnVsbD09KGU9VGUoZSx0KSk/ZTohIWV9ZnVuY3Rpb24gUGUoZSl7cmV0dXJuIG51bGw9PWV8fCJzdHJpbmciPT10eXBlb2YgZT9lOnllJiZlIGluc3RhbmNlb2YgVWludDhBcnJheT9TKGUpOihUKCJDYW5ub3QgY29lcmNlIHRvIGI2NCBzdHJpbmc6ICIrZihlKSksbnVsbCl9ZnVuY3Rpb24gV2UoZSl7cmV0dXJuIG51bGw9PWV8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6InN0cmluZyI9PXR5cGVvZiBlP0YoZSk6KFQoIkNhbm5vdCBjb2VyY2UgdG8gVWludDhBcnJheTogIitmKGUpKSxudWxsKX1mdW5jdGlvbiBCZShlKXtpZihlJiYxPGUubGVuZ3RoKXt2YXIgdD1mKGVbMF0pO2coZSwoZnVuY3Rpb24oZSl7ZihlKSE9dCYmVCgiSW5jb25zaXN0ZW50IHR5cGUgaW4gSlNQQiByZXBlYXRlZCBmaWVsZCBhcnJheS4gR290ICIrZihlKSsiIGV4cGVjdGVkICIrdCl9KSl9fWZ1bmN0aW9uIENlKGUsdCxyKXtyZXR1cm4gbnVsbD09KGU9VGUoZSx0KSk/cjplfWZ1bmN0aW9uIEVlKGUsdCxyKXtyZXR1cm4gdyhlLGdlKSx0PGUuRz9lLnVbdCtlLkRdPXI6KHZlKGUpLGUuaVt0XT1yKSxlfWZ1bmN0aW9uIE1lKGUsdCxyLG4pe3JldHVybiB3KGUsZ2UpLHIhPT1uP0VlKGUsdCxyKTp0PGUuRz9lLnVbdCtlLkRdPW51bGw6KHZlKGUpLGRlbGV0ZSBlLmlbdF0pLGV9ZnVuY3Rpb24ga2UoZSx0LHIsbil7cmV0dXJuIHcoZSxnZSksKHI9SWUoZSxyKSkmJnIhPT10JiZ2b2lkIDAhPT1uJiYoZS5mJiZyIGluIGUuZiYmKGUuZltyXT12b2lkIDApLEVlKGUscix2b2lkIDApKSxFZShlLHQsbil9ZnVuY3Rpb24gSWUoZSx0KXtmb3IodmFyIHIsbixvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBpPXRbb10sYT1UZShlLGkpO251bGwhPWEmJihyPWksbj1hLEVlKGUsaSx2b2lkIDApKX1yZXR1cm4gcj8oRWUoZSxyLG4pLHIpOjB9ZnVuY3Rpb24gT2UoZSx0LHIpe2lmKGUuZnx8KGUuZj17fSksIWUuZltyXSl7Zm9yKHZhciBuPVRlKGUsciksbz1bXSxpPTA7aTxuLmxlbmd0aDtpKyspb1tpXT1uZXcgdChuW2ldKTtlLmZbcl09b319ZnVuY3Rpb24geGUoZSl7aWYoZS5mKWZvcih2YXIgdCBpbiBlLmYpe3ZhciByPWUuZlt0XTtpZihBcnJheS5pc0FycmF5KHIpKWZvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXJbbl0mJnJbbl0uZygpO2Vsc2UgciYmci5nKCl9fWZ1bmN0aW9uIFNlKGUsdCl7ZT1lfHx7fSx0PXR8fHt9O3ZhciByLG49e307Zm9yKHIgaW4gZSluW3JdPTA7Zm9yKHIgaW4gdCluW3JdPTA7Zm9yKHIgaW4gbilpZighRmUoZVtyXSx0W3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBGZShlLHQpe2lmKGU9PXQpcmV0dXJuITA7aWYoIXAoZSl8fCFwKHQpKXJldHVybiEhKCJudW1iZXIiPT10eXBlb2YgZSYmaXNOYU4oZSl8fCJudW1iZXIiPT10eXBlb2YgdCYmaXNOYU4odCkpJiZTdHJpbmcoZSk9PVN0cmluZyh0KTtpZihlLmNvbnN0cnVjdG9yIT10LmNvbnN0cnVjdG9yKXJldHVybiExO2lmKHllJiZlLmNvbnN0cnVjdG9yPT09VWludDhBcnJheSl7aWYoZS5sZW5ndGghPXQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0hPXRbcl0pcmV0dXJuITE7cmV0dXJuITB9aWYoZS5jb25zdHJ1Y3Rvcj09PUFycmF5KXt2YXIgbj12b2lkIDAsbz12b2lkIDAsaT1NYXRoLm1heChlLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKHI9MDtyPGk7cisrKXt2YXIgYT1lW3JdLHM9dFtyXTtpZihhJiZhLmNvbnN0cnVjdG9yPT1PYmplY3QmJihtKHZvaWQgMD09PW4pLG0ocj09PWUubGVuZ3RoLTEpLG49YSxhPXZvaWQgMCkscyYmcy5jb25zdHJ1Y3Rvcj09T2JqZWN0JiYobSh2b2lkIDA9PT1vKSxtKHI9PT10Lmxlbmd0aC0xKSxvPXMscz12b2lkIDApLCFGZShhLHMpKXJldHVybiExfXJldHVybiFuJiYhb3x8U2Uobj1ufHx7fSxvPW98fHt9KX1pZihlLmNvbnN0cnVjdG9yPT09T2JqZWN0KXJldHVybiBTZShlLHQpO3Rocm93IEVycm9yKCJJbnZhbGlkIHR5cGUgaW4gSlNQQiBhcnJheSIpfWZ1bmN0aW9uIF9lKGUpe3JldHVybiBuZXcgZS5jb25zdHJ1Y3RvcihSZShlLmcoKSkpfWZ1bmN0aW9uIFJlKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD1BcnJheShlLmxlbmd0aCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO251bGwhPW4mJih0W3JdPSJvYmplY3QiPT10eXBlb2Ygbj9SZShtKG4pKTpuKX1yZXR1cm4gdH1pZih5ZSYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUpO2ZvcihyIGluIHQ9e30sZSludWxsIT0obj1lW3JdKSYmKHRbcl09Im9iamVjdCI9PXR5cGVvZiBuP1JlKG0obikpOm4pO3JldHVybiB0fWdlLnRvT2JqZWN0TGlzdD1tZSxnZS50b09iamVjdEV4dGVuc2lvbj1mdW5jdGlvbihlLHQscixuLG8pe2Zvcih2YXIgaSBpbiByKXt2YXIgYT1yW2ldLHM9bi5jYWxsKGUsYSk7aWYobnVsbCE9cyl7Zm9yKHZhciB1IGluIGEuQmEpaWYoYS5CYS5oYXNPd25Qcm9wZXJ0eSh1KSlicmVhazt0W3VdPWEuTmE/YS5uYT9tZShzLGEuTmEsbyk6YS5OYShvLHMpOnN9fX0sZ2Uuc2VyaWFsaXplQmluYXJ5RXh0ZW5zaW9ucz1mdW5jdGlvbihlLHQscixuKXtmb3IodmFyIG8gaW4gcil7dmFyIGk9cltvXSxhPWkuWmE7aWYoIWkuQWEpdGhyb3cgRXJyb3IoIk1lc3NhZ2UgZXh0ZW5zaW9uIHByZXNlbnQgdGhhdCB3YXMgZ2VuZXJhdGVkIHdpdGhvdXQgYmluYXJ5IHNlcmlhbGl6YXRpb24gc3VwcG9ydCIpO3ZhciBzPW4uY2FsbChlLGEpO2lmKG51bGwhPXMpaWYoYS5GKCkpe2lmKCFpLldhKXRocm93IEVycm9yKCJNZXNzYWdlIGV4dGVuc2lvbiBwcmVzZW50IGhvbGRpbmcgc3VibWVzc2FnZSB3aXRob3V0IGJpbmFyeSBzdXBwb3J0IGVuYWJsZWQsIGFuZCBtZXNzYWdlIGlzIGJlaW5nIHNlcmlhbGl6ZWQgdG8gYmluYXJ5IGZvcm1hdCIpO2kuQWEuY2FsbCh0LGEubWEscyxpLldhKX1lbHNlIGkuQWEuY2FsbCh0LGEubWEscyl9fSxnZS5yZWFkQmluYXJ5RXh0ZW5zaW9uPWZ1bmN0aW9uKGUsdCxyLG4sbyl7dmFyIGk9clt0LmNdO2lmKGkpe2lmKHI9aS5aYSwhaS56YSl0aHJvdyBFcnJvcigiRGVzZXJpYWxpemluZyBleHRlbnNpb24gd2hvc2UgZ2VuZXJhdGVkIGNvZGUgZG9lcyBub3Qgc3VwcG9ydCBiaW5hcnkgZm9ybWF0Iik7aWYoci5GKCkpe3ZhciBhPW5ldyByLmxhO2kuemEuY2FsbCh0LGEsaS5BYil9ZWxzZSBhPWkuemEuY2FsbCh0KTtyLm5hJiYhaS5OYj8odD1uLmNhbGwoZSxyKSk/dC5wdXNoKGEpOm8uY2FsbChlLHIsW2FdKTpvLmNhbGwoZSxyLGEpfWVsc2UgdC5DKCl9LGdlLmdldEZpZWxkPVRlLGdlLmdldFJlcGVhdGVkRmllbGQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVGUoZSx0KX0sZ2UuZ2V0T3B0aW9uYWxGbG9hdGluZ1BvaW50RmllbGQ9d2UsZ2UuZ2V0Qm9vbGVhbkZpZWxkPUFlLGdlLmdldFJlcGVhdGVkRmxvYXRpbmdQb2ludEZpZWxkPWZ1bmN0aW9uKGUsdCl7dmFyIHI9VGUoZSx0KTtpZihlLmF8fChlLmE9e30pLCFlLmFbdF0pe2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXJbbl09K3Jbbl07ZS5hW3RdPSEwfXJldHVybiByfSxnZS5nZXRSZXBlYXRlZEJvb2xlYW5GaWVsZD1mdW5jdGlvbihlLHQpe3ZhciByPVRlKGUsdCk7aWYoZS5hfHwoZS5hPXt9KSwhZS5hW3RdKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKylyW25dPSEhcltuXTtlLmFbdF09ITB9cmV0dXJuIHJ9LGdlLmJ5dGVzQXNCNjQ9UGUsZ2UuYnl0ZXNBc1U4PVdlLGdlLmJ5dGVzTGlzdEFzQjY0PWZ1bmN0aW9uKGUpe3JldHVybiBCZShlKSxlLmxlbmd0aCYmInN0cmluZyIhPXR5cGVvZiBlWzBdP3koZSxQZSk6ZX0sZ2UuYnl0ZXNMaXN0QXNVOD1mdW5jdGlvbihlKXtyZXR1cm4gQmUoZSksIWUubGVuZ3RofHxlWzBdaW5zdGFuY2VvZiBVaW50OEFycmF5P2U6eShlLFdlKX0sZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdD1DZSxnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdD1mdW5jdGlvbihlLHQscil7cmV0dXJuIG51bGw9PShlPUFlKGUsdCkpP3I6ZX0sZ2UuZ2V0RmxvYXRpbmdQb2ludEZpZWxkV2l0aERlZmF1bHQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBudWxsPT0oZT13ZShlLHQpKT9yOmV9LGdlLmdldEZpZWxkUHJvdG8zPUNlLGdlLmdldE1hcEZpZWxkPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKGUuZnx8KGUuZj17fSksdCBpbiBlLmYpcmV0dXJuIGUuZlt0XTt2YXIgbz1UZShlLHQpO2lmKCFvKXtpZihyKXJldHVybjtFZShlLHQsbz1bXSl9cmV0dXJuIGUuZlt0XT1uZXcgUChvLG4pfSxnZS5zZXRGaWVsZD1FZSxnZS5zZXRQcm90bzNJbnRGaWVsZD1mdW5jdGlvbihlLHQscil7cmV0dXJuIE1lKGUsdCxyLDApfSxnZS5zZXRQcm90bzNGbG9hdEZpZWxkPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gTWUoZSx0LHIsMCl9LGdlLnNldFByb3RvM0Jvb2xlYW5GaWVsZD1mdW5jdGlvbihlLHQscil7cmV0dXJuIE1lKGUsdCxyLCExKX0sZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBNZShlLHQsciwiIil9LGdlLnNldFByb3RvM0J5dGVzRmllbGQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBNZShlLHQsciwiIil9LGdlLnNldFByb3RvM0VudW1GaWVsZD1mdW5jdGlvbihlLHQscil7cmV0dXJuIE1lKGUsdCxyLDApfSxnZS5zZXRQcm90bzNTdHJpbmdJbnRGaWVsZD1mdW5jdGlvbihlLHQscil7cmV0dXJuIE1lKGUsdCxyLCIwIil9LGdlLmFkZFRvUmVwZWF0ZWRGaWVsZD1mdW5jdGlvbihlLHQscixuKXtyZXR1cm4gdyhlLGdlKSx0PVRlKGUsdCksbnVsbCE9bj90LnNwbGljZShuLDAscik6dC5wdXNoKHIpLGV9LGdlLnNldE9uZW9mRmllbGQ9a2UsZ2UuY29tcHV0ZU9uZW9mQ2FzZT1JZSxnZS5nZXRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LHIsbil7aWYoZS5mfHwoZS5mPXt9KSwhZS5mW3JdKXt2YXIgbz1UZShlLHIpOyhufHxvKSYmKGUuZltyXT1uZXcgdChvKSl9cmV0dXJuIGUuZltyXX0sZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBPZShlLHQsciksKHQ9ZS5mW3JdKT09YmUmJih0PWUuZltyXT1bXSksdH0sZ2Uuc2V0V3JhcHBlckZpZWxkPWZ1bmN0aW9uKGUsdCxyKXt3KGUsZ2UpLGUuZnx8KGUuZj17fSk7dmFyIG49cj9yLmcoKTpyO3JldHVybiBlLmZbdF09cixFZShlLHQsbil9LGdlLnNldE9uZW9mV3JhcHBlckZpZWxkPWZ1bmN0aW9uKGUsdCxyLG4pe3coZSxnZSksZS5mfHwoZS5mPXt9KTt2YXIgbz1uP24uZygpOm47cmV0dXJuIGUuZlt0XT1uLGtlKGUsdCxyLG8pfSxnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZD1mdW5jdGlvbihlLHQscil7dyhlLGdlKSxlLmZ8fChlLmY9e30pLHI9cnx8W107Zm9yKHZhciBuPVtdLG89MDtvPHIubGVuZ3RoO28rKyluW29dPXJbb10uZygpO3JldHVybiBlLmZbdF09cixFZShlLHQsbil9LGdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQ9ZnVuY3Rpb24oZSx0LHIsbixvKXtPZShlLG4sdCk7dmFyIGk9ZS5mW3RdO3JldHVybiBpfHwoaT1lLmZbdF09W10pLHI9cnx8bmV3IG4sZT1UZShlLHQpLG51bGwhPW8/KGkuc3BsaWNlKG8sMCxyKSxlLnNwbGljZShvLDAsci5nKCkpKTooaS5wdXNoKHIpLGUucHVzaChyLmcoKSkpLHJ9LGdlLnRvTWFwPWZ1bmN0aW9uKGUsdCxyLG4pe2Zvcih2YXIgbz17fSxpPTA7aTxlLmxlbmd0aDtpKyspb1t0LmNhbGwoZVtpXSldPXI/ci5jYWxsKGVbaV0sbixlW2ldKTplW2ldO3JldHVybiBvfSxnZS5wcm90b3R5cGUuZz1mdW5jdGlvbigpe3JldHVybiB4ZSh0aGlzKSx0aGlzLnV9LGdlLnByb3RvdHlwZS50b0FycmF5PWdlLnByb3RvdHlwZS5nLGdlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB4ZSh0aGlzKSx0aGlzLnUudG9TdHJpbmcoKX0sZ2UucHJvdG90eXBlLmdldEV4dGVuc2lvbj1mdW5jdGlvbihlKXtpZih0aGlzLmkpe3RoaXMuZnx8KHRoaXMuZj17fSk7dmFyIHQ9ZS5tYTtpZihlLm5hKXtpZihlLkYoKSlyZXR1cm4gdGhpcy5mW3RdfHwodGhpcy5mW3RdPXkodGhpcy5pW3RdfHxbXSwoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlLmxhKHQpfSkpKSx0aGlzLmZbdF19ZWxzZSBpZihlLkYoKSlyZXR1cm4hdGhpcy5mW3RdJiZ0aGlzLmlbdF0mJih0aGlzLmZbdF09bmV3IGUubGEodGhpcy5pW3RdKSksdGhpcy5mW3RdO3JldHVybiB0aGlzLmlbdF19fSxnZS5wcm90b3R5cGUuZ2V0RXh0ZW5zaW9uPWdlLnByb3RvdHlwZS5nZXRFeHRlbnNpb24sZ2UucHJvdG90eXBlLktjPWZ1bmN0aW9uKGUsdCl7dGhpcy5mfHwodGhpcy5mPXt9KSx2ZSh0aGlzKTt2YXIgcj1lLm1hO3JldHVybiBlLm5hPyh0PXR8fFtdLGUuRigpPyh0aGlzLmZbcl09dCx0aGlzLmlbcl09eSh0LChmdW5jdGlvbihlKXtyZXR1cm4gZS5nKCl9KSkpOnRoaXMuaVtyXT10KTplLkYoKT8odGhpcy5mW3JdPXQsdGhpcy5pW3JdPXQ/dC5nKCk6dCk6dGhpcy5pW3JdPXQsdGhpc30sZ2UucHJvdG90eXBlLnNldEV4dGVuc2lvbj1nZS5wcm90b3R5cGUuS2MsZ2UuZGlmZmVyZW5jZT1mdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQuY29uc3RydWN0b3IpKXRocm93IEVycm9yKCJNZXNzYWdlcyBoYXZlIGRpZmZlcmVudCB0eXBlcy4iKTt2YXIgcj1lLmcoKTt0PXQuZygpO3ZhciBuPVtdLG89MCxpPXIubGVuZ3RoPnQubGVuZ3RoP3IubGVuZ3RoOnQubGVuZ3RoO2ZvcihlLmImJihuWzBdPWUuYixvPTEpO288aTtvKyspRmUocltvXSx0W29dKXx8KG5bb109dFtvXSk7cmV0dXJuIG5ldyBlLmNvbnN0cnVjdG9yKG4pfSxnZS5lcXVhbHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09dHx8ISghZXx8IXQpJiZlIGluc3RhbmNlb2YgdC5jb25zdHJ1Y3RvciYmRmUoZS5nKCksdC5nKCkpfSxnZS5jb21wYXJlRXh0ZW5zaW9ucz1TZSxnZS5jb21wYXJlRmllbGRzPUZlLGdlLnByb3RvdHlwZS5CYj1mdW5jdGlvbigpe3JldHVybiBfZSh0aGlzKX0sZ2UucHJvdG90eXBlLmNsb25lTWVzc2FnZT1nZS5wcm90b3R5cGUuQmIsZ2UucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIF9lKHRoaXMpfSxnZS5wcm90b3R5cGUuY2xvbmU9Z2UucHJvdG90eXBlLmNsb25lLGdlLmNsb25lPWZ1bmN0aW9uKGUpe3JldHVybiBfZShlKX0sZ2UuY29weUludG89ZnVuY3Rpb24oZSx0KXt3KGUsZ2UpLHcodCxnZSksbShlLmNvbnN0cnVjdG9yPT10LmNvbnN0cnVjdG9yLCJDb3B5IHNvdXJjZSBhbmQgdGFyZ2V0IG1lc3NhZ2Ugc2hvdWxkIGhhdmUgdGhlIHNhbWUgdHlwZS4iKSxlPV9lKGUpO2Zvcih2YXIgcj10LmcoKSxuPWUuZygpLG89ci5sZW5ndGg9MDtvPG4ubGVuZ3RoO28rKylyW29dPW5bb107dC5mPWUuZix0Lmk9ZS5pfSxnZS5yZWdpc3Rlck1lc3NhZ2VUeXBlPWZ1bmN0aW9uKGUsdCl7dC53ZT1lfTt2YXIgTmU9e2R1bXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHcoZSxnZSwianNwYi5NZXNzYWdlIGluc3RhbmNlIGV4cGVjdGVkIiksbShlLmdldEV4dGVuc2lvbiwiT25seSB1bm9iZnVzY2F0ZWQgYW5kIHVub3B0aW1pemVkIGNvbXBpbGF0aW9uIG1vZGVzIHN1cHBvcnRlZC4iKSxOZS5YKGUpfX07ZnVuY3Rpb24gVWUoKXt0aGlzLmE9W119ZnVuY3Rpb24gRGUoZSx0KXt0aGlzLmxvPWUsdGhpcy5oaT10fWZ1bmN0aW9uIExlKGUsdCl7dmFyIHI9NjU1MzUmZSxuPTY1NTM1JnQsbz10Pj4+MTY7Zm9yKHQ9cipuKzY1NTM2KihyKm8mNjU1MzUpKzY1NTM2KigoZT4+Pj0xNikqbiY2NTUzNSkscj1lKm8rKHIqbz4+PjE2KSsoZSpuPj4+MTYpOzQyOTQ5NjcyOTY8PXQ7KXQtPTQyOTQ5NjcyOTYscis9MTtyZXR1cm4gbmV3IERlKHQ+Pj4wLHI+Pj4wKX1mdW5jdGlvbiBqZShlKXtmb3IodmFyIHQ9bmV3IERlKDAsMCkscj1uZXcgRGUoMCwwKSxuPTA7bjxlLmxlbmd0aDtuKyspe2lmKCIwIj5lW25dfHwiOSI8ZVtuXSlyZXR1cm4gbnVsbDtyLmxvPXBhcnNlSW50KGVbbl0sMTApLHQ9dC5lYigxMCkuYWRkKHIpfXJldHVybiB0fWZ1bmN0aW9uIHplKGUsdCl7dGhpcy5sbz1lLHRoaXMuaGk9dH1mdW5jdGlvbiAkZShlKXt2YXIgdD0wPGUubGVuZ3RoJiYiLSI9PWVbMF07cmV0dXJuIHQmJihlPWUuc3Vic3RyaW5nKDEpKSxudWxsPT09KGU9amUoZSkpP251bGw6KHQmJihlPW5ldyBEZSgwLDApLnN1YihlKSksbmV3IHplKGUubG8sZS5oaSkpfWZ1bmN0aW9uIFZlKCl7dGhpcy5jPVtdLHRoaXMuYj0wLHRoaXMuYT1uZXcgVWUsdGhpcy5oPVtdfWZ1bmN0aW9uIEdlKGUsdCl7dmFyIHI9ZS5hLmVuZCgpO2UuYy5wdXNoKHIpLGUuYy5wdXNoKHQpLGUuYis9ci5sZW5ndGgrdC5sZW5ndGh9ZnVuY3Rpb24gSGUoZSx0KXtyZXR1cm4gWmUoZSx0LDIpLHQ9ZS5hLmVuZCgpLGUuYy5wdXNoKHQpLGUuYis9dC5sZW5ndGgsdC5wdXNoKGUuYiksdH1mdW5jdGlvbiBLZShlLHQpe3ZhciByPXQucG9wKCk7Zm9yKG0oMDw9KHI9ZS5iK2UuYS5sZW5ndGgoKS1yKSk7MTI3PHI7KXQucHVzaCgxMjcmcnwxMjgpLHI+Pj49NyxlLmIrKzt0LnB1c2gociksZS5iKyt9ZnVuY3Rpb24gWmUoZSx0LHIpe20oMTw9dCYmdD09TWF0aC5mbG9vcih0KSksZS5hLmooOCp0K3IpfWZ1bmN0aW9uIHFlKGUsdCxyKXtudWxsIT1yJiYoWmUoZSx0LDApLGUuYS5qKHIpKX1mdW5jdGlvbiBKZShlLHQscil7bnVsbCE9ciYmKFplKGUsdCwwKSxlLmEuTShyKSl9ZCgianNwYi5kZWJ1Zy5kdW1wIixOZS5kdW1wLHZvaWQgMCksTmUuWD1mdW5jdGlvbihlKXt2YXIgdD1mKGUpO2lmKCJudW1iZXIiPT10fHwic3RyaW5nIj09dHx8ImJvb2xlYW4iPT10fHwibnVsbCI9PXR8fCJ1bmRlZmluZWQiPT10fHwidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJmUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBlO2lmKCJhcnJheSI9PXQpcmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49W10sbz0yO288YXJndW1lbnRzLmxlbmd0aDsrK28pbltvLTJdPWFyZ3VtZW50c1tvXTtBcnJheS5pc0FycmF5KGUpfHx2KCJFeHBlY3RlZCBhcnJheSBidXQgZ290ICVzOiAlcy4iLFtmKGUpLGVdLHQsbil9KGUpLHkoZSxOZS5YKTtpZihlIGluc3RhbmNlb2YgUCl7Zm9yKHZhciByPXt9LG49KGU9ZS5lbnRyaWVzKCkpLm5leHQoKTshbi5kb25lO249ZS5uZXh0KCkpcltuLnZhbHVlWzBdXT1OZS5YKG4udmFsdWVbMV0pO3JldHVybiByfXcoZSxnZSwiT25seSBtZXNzYWdlcyBleHBlY3RlZDogIitlKTt2YXIgbz17JG5hbWU6KHQ9ZS5jb25zdHJ1Y3RvcikubmFtZXx8dC5kaXNwbGF5TmFtZX07Zm9yKHMgaW4gdC5wcm90b3R5cGUpe3ZhciBpPS9eZ2V0KFtBLVpdXHcqKS8uZXhlYyhzKTtpZihpJiYiZ2V0RXh0ZW5zaW9uIiE9cyYmImdldEpzUGJNZXNzYWdlSWQiIT1zKXt2YXIgYT0iaGFzIitpWzFdO2VbYV0mJiFlW2FdKCl8fChhPWVbc10oKSxvW05lLiRhKGlbMV0pXT1OZS5YKGEpKX19aWYoZS5leHRlbnNpb25PYmplY3RfKXJldHVybiBvLiRleHRlbnNpb25zPSJSZWN1cnNpdmUgZHVtcGluZyBvZiBleHRlbnNpb25zIG5vdCBzdXBwb3J0ZWQgaW4gY29tcGlsZWQgY29kZS4gU3dpdGNoIHRvIHVuY29tcGlsZWQgb3IgZHVtcCBleHRlbnNpb24gb2JqZWN0IGRpcmVjdGx5IixvO2ZvcihuIGluIHQuZXh0ZW5zaW9ucylpZigvXlxkKyQvLnRlc3Qobikpe2E9dC5leHRlbnNpb25zW25dO3ZhciBzPWUuZ2V0RXh0ZW5zaW9uKGEpO2k9dm9pZCAwLGE9YS5CYTt2YXIgdT1bXSxjPTA7Zm9yKGkgaW4gYSl1W2MrK109aTtpPXVbMF0sbnVsbCE9cyYmKHJ8fChyPW8uJGV4dGVuc2lvbnM9e30pLHJbTmUuJGEoaSldPU5lLlgocykpfXJldHVybiBvfSxOZS4kYT1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9eW0EtWl0vLChmdW5jdGlvbihlKXtyZXR1cm4gZS50b0xvd2VyQ2FzZSgpfSkpfSxkKCJqc3BiLkJpbmFyeUVuY29kZXIiLFVlLHZvaWQgMCksVWUucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmEubGVuZ3RofSxVZS5wcm90b3R5cGUubGVuZ3RoPVVlLnByb3RvdHlwZS5sZW5ndGgsVWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuYTtyZXR1cm4gdGhpcy5hPVtdLGV9LFVlLnByb3RvdHlwZS5lbmQ9VWUucHJvdG90eXBlLmVuZCxVZS5wcm90b3R5cGUubD1mdW5jdGlvbihlLHQpe2ZvcihtKGU9PU1hdGguZmxvb3IoZSkpLG0odD09TWF0aC5mbG9vcih0KSksbSgwPD1lJiY0Mjk0OTY3Mjk2PmUpLG0oMDw9dCYmNDI5NDk2NzI5Nj50KTswPHR8fDEyNzxlOyl0aGlzLmEucHVzaCgxMjcmZXwxMjgpLGU9KGU+Pj43fHQ8PDI1KT4+PjAsdD4+Pj03O3RoaXMuYS5wdXNoKGUpfSxVZS5wcm90b3R5cGUud3JpdGVTcGxpdFZhcmludDY0PVVlLnByb3RvdHlwZS5sLFVlLnByb3RvdHlwZS5BPWZ1bmN0aW9uKGUsdCl7bShlPT1NYXRoLmZsb29yKGUpKSxtKHQ9PU1hdGguZmxvb3IodCkpLG0oMDw9ZSYmNDI5NDk2NzI5Nj5lKSxtKDA8PXQmJjQyOTQ5NjcyOTY+dCksdGhpcy5zKGUpLHRoaXMucyh0KX0sVWUucHJvdG90eXBlLndyaXRlU3BsaXRGaXhlZDY0PVVlLnByb3RvdHlwZS5BLFVlLnByb3RvdHlwZS5qPWZ1bmN0aW9uKGUpe2ZvcihtKGU9PU1hdGguZmxvb3IoZSkpLG0oMDw9ZSYmNDI5NDk2NzI5Nj5lKTsxMjc8ZTspdGhpcy5hLnB1c2goMTI3JmV8MTI4KSxlPj4+PTc7dGhpcy5hLnB1c2goZSl9LFVlLnByb3RvdHlwZS53cml0ZVVuc2lnbmVkVmFyaW50MzI9VWUucHJvdG90eXBlLmosVWUucHJvdG90eXBlLk09ZnVuY3Rpb24oZSl7aWYobShlPT1NYXRoLmZsb29yKGUpKSxtKC0yMTQ3NDgzNjQ4PD1lJiYyMTQ3NDgzNjQ4PmUpLDA8PWUpdGhpcy5qKGUpO2Vsc2V7Zm9yKHZhciB0PTA7OT50O3QrKyl0aGlzLmEucHVzaCgxMjcmZXwxMjgpLGU+Pj03O3RoaXMuYS5wdXNoKDEpfX0sVWUucHJvdG90eXBlLndyaXRlU2lnbmVkVmFyaW50MzI9VWUucHJvdG90eXBlLk0sVWUucHJvdG90eXBlLnZhPWZ1bmN0aW9uKGUpe20oZT09TWF0aC5mbG9vcihlKSksbSgwPD1lJiYweDEwMDAwMDAwMDAwMDAwMDAwPmUpLEQoZSksdGhpcy5sKFIsTil9LFVlLnByb3RvdHlwZS53cml0ZVVuc2lnbmVkVmFyaW50NjQ9VWUucHJvdG90eXBlLnZhLFVlLnByb3RvdHlwZS51YT1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTB4ODAwMDAwMDAwMDAwMDAwMDw9ZSYmMHg4MDAwMDAwMDAwMDAwMDAwPmUpLEQoZSksdGhpcy5sKFIsTil9LFVlLnByb3RvdHlwZS53cml0ZVNpZ25lZFZhcmludDY0PVVlLnByb3RvdHlwZS51YSxVZS5wcm90b3R5cGUud2E9ZnVuY3Rpb24oZSl7bShlPT1NYXRoLmZsb29yKGUpKSxtKC0yMTQ3NDgzNjQ4PD1lJiYyMTQ3NDgzNjQ4PmUpLHRoaXMuaigoZTw8MV5lPj4zMSk+Pj4wKX0sVWUucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50MzI9VWUucHJvdG90eXBlLndhLFVlLnByb3RvdHlwZS54YT1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTB4ODAwMDAwMDAwMDAwMDAwMDw9ZSYmMHg4MDAwMDAwMDAwMDAwMDAwPmUpLEwoZSksdGhpcy5sKFIsTil9LFVlLnByb3RvdHlwZS53cml0ZVppZ3phZ1ZhcmludDY0PVVlLnByb3RvdHlwZS54YSxVZS5wcm90b3R5cGUuVGE9ZnVuY3Rpb24oZSl7dGhpcy5XKHRlKGUpKX0sVWUucHJvdG90eXBlLndyaXRlWmlnemFnVmFyaW50NjRTdHJpbmc9VWUucHJvdG90eXBlLlRhLFVlLnByb3RvdHlwZS5XPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7JChlKSxIKFIsTiwoZnVuY3Rpb24oZSxyKXt0LmwoZT4+PjAscj4+PjApfSkpfSxVZS5wcm90b3R5cGUud3JpdGVaaWd6YWdWYXJpbnRIYXNoNjQ9VWUucHJvdG90eXBlLlcsVWUucHJvdG90eXBlLmJlPWZ1bmN0aW9uKGUpe20oZT09TWF0aC5mbG9vcihlKSksbSgwPD1lJiYyNTY+ZSksdGhpcy5hLnB1c2goZT4+PjAmMjU1KX0sVWUucHJvdG90eXBlLndyaXRlVWludDg9VWUucHJvdG90eXBlLmJlLFVlLnByb3RvdHlwZS5hZT1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oMDw9ZSYmNjU1MzY+ZSksdGhpcy5hLnB1c2goZT4+PjAmMjU1KSx0aGlzLmEucHVzaChlPj4+OCYyNTUpfSxVZS5wcm90b3R5cGUud3JpdGVVaW50MTY9VWUucHJvdG90eXBlLmFlLFVlLnByb3RvdHlwZS5zPWZ1bmN0aW9uKGUpe20oZT09TWF0aC5mbG9vcihlKSksbSgwPD1lJiY0Mjk0OTY3Mjk2PmUpLHRoaXMuYS5wdXNoKGU+Pj4wJjI1NSksdGhpcy5hLnB1c2goZT4+PjgmMjU1KSx0aGlzLmEucHVzaChlPj4+MTYmMjU1KSx0aGlzLmEucHVzaChlPj4+MjQmMjU1KX0sVWUucHJvdG90eXBlLndyaXRlVWludDMyPVVlLnByb3RvdHlwZS5zLFVlLnByb3RvdHlwZS5WPWZ1bmN0aW9uKGUpe20oZT09TWF0aC5mbG9vcihlKSksbSgwPD1lJiYweDEwMDAwMDAwMDAwMDAwMDAwPmUpLFUoZSksdGhpcy5zKFIpLHRoaXMucyhOKX0sVWUucHJvdG90eXBlLndyaXRlVWludDY0PVVlLnByb3RvdHlwZS5WLFVlLnByb3RvdHlwZS5RYz1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTEyODw9ZSYmMTI4PmUpLHRoaXMuYS5wdXNoKGU+Pj4wJjI1NSl9LFVlLnByb3RvdHlwZS53cml0ZUludDg9VWUucHJvdG90eXBlLlFjLFVlLnByb3RvdHlwZS5QYz1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTMyNzY4PD1lJiYzMjc2OD5lKSx0aGlzLmEucHVzaChlPj4+MCYyNTUpLHRoaXMuYS5wdXNoKGU+Pj44JjI1NSl9LFVlLnByb3RvdHlwZS53cml0ZUludDE2PVVlLnByb3RvdHlwZS5QYyxVZS5wcm90b3R5cGUuUz1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTIxNDc0ODM2NDg8PWUmJjIxNDc0ODM2NDg+ZSksdGhpcy5hLnB1c2goZT4+PjAmMjU1KSx0aGlzLmEucHVzaChlPj4+OCYyNTUpLHRoaXMuYS5wdXNoKGU+Pj4xNiYyNTUpLHRoaXMuYS5wdXNoKGU+Pj4yNCYyNTUpfSxVZS5wcm90b3R5cGUud3JpdGVJbnQzMj1VZS5wcm90b3R5cGUuUyxVZS5wcm90b3R5cGUuVD1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTB4ODAwMDAwMDAwMDAwMDAwMDw9ZSYmMHg4MDAwMDAwMDAwMDAwMDAwPmUpLEQoZSksdGhpcy5BKFIsTil9LFVlLnByb3RvdHlwZS53cml0ZUludDY0PVVlLnByb3RvdHlwZS5ULFVlLnByb3RvdHlwZS5rYT1mdW5jdGlvbihlKXttKGU9PU1hdGguZmxvb3IoZSkpLG0oLTB4ODAwMDAwMDAwMDAwMDAwMDw9K2UmJjB4ODAwMDAwMDAwMDAwMDAwMD4rZSksJCh0ZShlKSksdGhpcy5BKFIsTil9LFVlLnByb3RvdHlwZS53cml0ZUludDY0U3RyaW5nPVVlLnByb3RvdHlwZS5rYSxVZS5wcm90b3R5cGUuTD1mdW5jdGlvbihlKXttKDEvMD09PWV8fC0xLzA9PT1lfHxpc05hTihlKXx8LTM0MDI4MjM0NjYzODUyODg2ZTIyPD1lJiYzNDAyODIzNDY2Mzg1Mjg4NmUyMj49ZSksaihlKSx0aGlzLnMoUil9LFVlLnByb3RvdHlwZS53cml0ZUZsb2F0PVVlLnByb3RvdHlwZS5MLFVlLnByb3RvdHlwZS5KPWZ1bmN0aW9uKGUpe20oMS8wPT09ZXx8LTEvMD09PWV8fGlzTmFOKGUpfHwtMTc5NzY5MzEzNDg2MjMxNTdlMjkyPD1lJiYxNzk3NjkzMTM0ODYyMzE1N2UyOTI+PWUpLHooZSksdGhpcy5zKFIpLHRoaXMucyhOKX0sVWUucHJvdG90eXBlLndyaXRlRG91YmxlPVVlLnByb3RvdHlwZS5KLFVlLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGUpe20oImJvb2xlYW4iPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlKSx0aGlzLmEucHVzaChlPzE6MCl9LFVlLnByb3RvdHlwZS53cml0ZUJvb2w9VWUucHJvdG90eXBlLkksVWUucHJvdG90eXBlLlI9ZnVuY3Rpb24oZSl7bShlPT1NYXRoLmZsb29yKGUpKSxtKC0yMTQ3NDgzNjQ4PD1lJiYyMTQ3NDgzNjQ4PmUpLHRoaXMuTShlKX0sVWUucHJvdG90eXBlLndyaXRlRW51bT1VZS5wcm90b3R5cGUuUixVZS5wcm90b3R5cGUuamE9ZnVuY3Rpb24oZSl7dGhpcy5hLnB1c2guYXBwbHkodGhpcy5hLGUpfSxVZS5wcm90b3R5cGUud3JpdGVCeXRlcz1VZS5wcm90b3R5cGUuamEsVWUucHJvdG90eXBlLk49ZnVuY3Rpb24oZSl7JChlKSx0aGlzLmwoUixOKX0sVWUucHJvdG90eXBlLndyaXRlVmFyaW50SGFzaDY0PVVlLnByb3RvdHlwZS5OLFVlLnByb3RvdHlwZS5LPWZ1bmN0aW9uKGUpeyQoZSksdGhpcy5zKFIpLHRoaXMucyhOKX0sVWUucHJvdG90eXBlLndyaXRlRml4ZWRIYXNoNjQ9VWUucHJvdG90eXBlLkssVWUucHJvdG90eXBlLlU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5hLmxlbmd0aDshZnVuY3Rpb24oZSx0LHIpe2Zvcih2YXIgbj1bXSxvPTI7bzxhcmd1bWVudHMubGVuZ3RoOysrbyluW28tMl09YXJndW1lbnRzW29dOyJzdHJpbmciIT10eXBlb2YgZSYmdigiRXhwZWN0ZWQgc3RyaW5nIGJ1dCBnb3QgJXM6ICVzLiIsW2YoZSksZV0sdCxuKX0oZSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWUuY2hhckNvZGVBdChyKTtpZigxMjg+bil0aGlzLmEucHVzaChuKTtlbHNlIGlmKDIwNDg+bil0aGlzLmEucHVzaChuPj42fDE5MiksdGhpcy5hLnB1c2goNjMmbnwxMjgpO2Vsc2UgaWYoNjU1MzY+bilpZig1NTI5Njw9biYmNTYzMTk+PW4mJnIrMTxlLmxlbmd0aCl7dmFyIG89ZS5jaGFyQ29kZUF0KHIrMSk7NTYzMjA8PW8mJjU3MzQzPj1vJiYobj0xMDI0KihuLTU1Mjk2KStvLTU2MzIwKzY1NTM2LHRoaXMuYS5wdXNoKG4+PjE4fDI0MCksdGhpcy5hLnB1c2gobj4+MTImNjN8MTI4KSx0aGlzLmEucHVzaChuPj42JjYzfDEyOCksdGhpcy5hLnB1c2goNjMmbnwxMjgpLHIrKyl9ZWxzZSB0aGlzLmEucHVzaChuPj4xMnwyMjQpLHRoaXMuYS5wdXNoKG4+PjYmNjN8MTI4KSx0aGlzLmEucHVzaCg2MyZufDEyOCl9cmV0dXJuIHRoaXMuYS5sZW5ndGgtdH0sVWUucHJvdG90eXBlLndyaXRlU3RyaW5nPVVlLnByb3RvdHlwZS5VLGQoImpzcGIuYXJpdGguVUludDY0IixEZSx2b2lkIDApLERlLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGk8ZS5oaXx8dGhpcy5oaT09ZS5oaSYmdGhpcy5sbzxlLmxvPy0xOnRoaXMuaGk9PWUuaGkmJnRoaXMubG89PWUubG8/MDoxfSxEZS5wcm90b3R5cGUuY21wPURlLnByb3RvdHlwZS5jbXAsRGUucHJvdG90eXBlLkxhPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEZSgodGhpcy5sbz4+PjF8KDEmdGhpcy5oaSk8PDMxKT4+PjAsdGhpcy5oaT4+PjE+Pj4wKX0sRGUucHJvdG90eXBlLnJpZ2h0U2hpZnQ9RGUucHJvdG90eXBlLkxhLERlLnByb3RvdHlwZS5EYT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGUodGhpcy5sbzw8MT4+PjAsKHRoaXMuaGk8PDF8dGhpcy5sbz4+PjMxKT4+PjApfSxEZS5wcm90b3R5cGUubGVmdFNoaWZ0PURlLnByb3RvdHlwZS5EYSxEZS5wcm90b3R5cGUuY2I9ZnVuY3Rpb24oKXtyZXR1cm4hISgyMTQ3NDgzNjQ4JnRoaXMuaGkpfSxEZS5wcm90b3R5cGUubXNiPURlLnByb3RvdHlwZS5jYixEZS5wcm90b3R5cGUuT2I9ZnVuY3Rpb24oKXtyZXR1cm4hISgxJnRoaXMubG8pfSxEZS5wcm90b3R5cGUubHNiPURlLnByb3RvdHlwZS5PYixEZS5wcm90b3R5cGUuVWE9ZnVuY3Rpb24oKXtyZXR1cm4gMD09dGhpcy5sbyYmMD09dGhpcy5oaX0sRGUucHJvdG90eXBlLnplcm89RGUucHJvdG90eXBlLlVhLERlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEZSgodGhpcy5sbytlLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpK2UuaGkmNDI5NDk2NzI5NSk+Pj4wKSsoNDI5NDk2NzI5Njw9dGhpcy5sbytlLmxvPzE6MCk+Pj4wKX0sRGUucHJvdG90eXBlLmFkZD1EZS5wcm90b3R5cGUuYWRkLERlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEZSgodGhpcy5sby1lLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpLWUuaGkmNDI5NDk2NzI5NSk+Pj4wKS0oMD50aGlzLmxvLWUubG8/MTowKT4+PjApfSxEZS5wcm90b3R5cGUuc3ViPURlLnByb3RvdHlwZS5zdWIsRGUubXVsMzJ4MzI9TGUsRGUucHJvdG90eXBlLmViPWZ1bmN0aW9uKGUpe3ZhciB0PUxlKHRoaXMubG8sZSk7cmV0dXJuKGU9TGUodGhpcy5oaSxlKSkuaGk9ZS5sbyxlLmxvPTAsdC5hZGQoZSl9LERlLnByb3RvdHlwZS5tdWw9RGUucHJvdG90eXBlLmViLERlLnByb3RvdHlwZS5YYT1mdW5jdGlvbihlKXtpZigwPT1lKXJldHVybltdO3ZhciB0PW5ldyBEZSgwLDApLHI9bmV3IERlKHRoaXMubG8sdGhpcy5oaSk7ZT1uZXcgRGUoZSwwKTtmb3IodmFyIG49bmV3IERlKDEsMCk7IWUuY2IoKTspZT1lLkRhKCksbj1uLkRhKCk7Zm9yKDshbi5VYSgpOykwPj1lLmNtcChyKSYmKHQ9dC5hZGQobikscj1yLnN1YihlKSksZT1lLkxhKCksbj1uLkxhKCk7cmV0dXJuW3Qscl19LERlLnByb3RvdHlwZS5kaXY9RGUucHJvdG90eXBlLlhhLERlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2Zvcih2YXIgZT0iIix0PXRoaXM7IXQuVWEoKTspe3ZhciByPSh0PXQuWGEoMTApKVswXTtlPXRbMV0ubG8rZSx0PXJ9cmV0dXJuIiI9PWUmJihlPSIwIiksZX0sRGUucHJvdG90eXBlLnRvU3RyaW5nPURlLnByb3RvdHlwZS50b1N0cmluZyxEZS5mcm9tU3RyaW5nPWplLERlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgRGUodGhpcy5sbyx0aGlzLmhpKX0sRGUucHJvdG90eXBlLmNsb25lPURlLnByb3RvdHlwZS5jbG9uZSxkKCJqc3BiLmFyaXRoLkludDY0Iix6ZSx2b2lkIDApLHplLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB6ZSgodGhpcy5sbytlLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpK2UuaGkmNDI5NDk2NzI5NSk+Pj4wKSsoNDI5NDk2NzI5Njw9dGhpcy5sbytlLmxvPzE6MCk+Pj4wKX0semUucHJvdG90eXBlLmFkZD16ZS5wcm90b3R5cGUuYWRkLHplLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB6ZSgodGhpcy5sby1lLmxvJjQyOTQ5NjcyOTUpPj4+MD4+PjAsKCh0aGlzLmhpLWUuaGkmNDI5NDk2NzI5NSk+Pj4wKS0oMD50aGlzLmxvLWUubG8/MTowKT4+PjApfSx6ZS5wcm90b3R5cGUuc3ViPXplLnByb3RvdHlwZS5zdWIsemUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB6ZSh0aGlzLmxvLHRoaXMuaGkpfSx6ZS5wcm90b3R5cGUuY2xvbmU9emUucHJvdG90eXBlLmNsb25lLHplLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBlPTAhPSgyMTQ3NDgzNjQ4JnRoaXMuaGkpLHQ9bmV3IERlKHRoaXMubG8sdGhpcy5oaSk7cmV0dXJuIGUmJih0PW5ldyBEZSgwLDApLnN1Yih0KSksKGU/Ii0iOiIiKSt0LnRvU3RyaW5nKCl9LHplLnByb3RvdHlwZS50b1N0cmluZz16ZS5wcm90b3R5cGUudG9TdHJpbmcsemUuZnJvbVN0cmluZz0kZSxkKCJqc3BiLkJpbmFyeVdyaXRlciIsVmUsdm9pZCAwKSxWZS5wcm90b3R5cGUucGI9ZnVuY3Rpb24oZSx0LHIpe0dlKHRoaXMsZS5zdWJhcnJheSh0LHIpKX0sVmUucHJvdG90eXBlLndyaXRlU2VyaWFsaXplZE1lc3NhZ2U9VmUucHJvdG90eXBlLnBiLFZlLnByb3RvdHlwZS5QYj1mdW5jdGlvbihlLHQscil7bnVsbCE9ZSYmbnVsbCE9dCYmbnVsbCE9ciYmdGhpcy5wYihlLHQscil9LFZlLnByb3RvdHlwZS5tYXliZVdyaXRlU2VyaWFsaXplZE1lc3NhZ2U9VmUucHJvdG90eXBlLlBiLFZlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuYz1bXSx0aGlzLmEuZW5kKCksdGhpcy5iPTAsdGhpcy5oPVtdfSxWZS5wcm90b3R5cGUucmVzZXQ9VmUucHJvdG90eXBlLnJlc2V0LFZlLnByb3RvdHlwZS5hYj1mdW5jdGlvbigpe20oMD09dGhpcy5oLmxlbmd0aCk7Zm9yKHZhciBlPW5ldyBVaW50OEFycmF5KHRoaXMuYit0aGlzLmEubGVuZ3RoKCkpLHQ9dGhpcy5jLHI9dC5sZW5ndGgsbj0wLG89MDtvPHI7bysrKXt2YXIgaT10W29dO2Uuc2V0KGksbiksbis9aS5sZW5ndGh9cmV0dXJuIHQ9dGhpcy5hLmVuZCgpLGUuc2V0KHQsbiksbSgobis9dC5sZW5ndGgpPT1lLmxlbmd0aCksdGhpcy5jPVtlXSxlfSxWZS5wcm90b3R5cGUuZ2V0UmVzdWx0QnVmZmVyPVZlLnByb3RvdHlwZS5hYixWZS5wcm90b3R5cGUuS2I9ZnVuY3Rpb24oZSl7cmV0dXJuIFModGhpcy5hYigpLGUpfSxWZS5wcm90b3R5cGUuZ2V0UmVzdWx0QmFzZTY0U3RyaW5nPVZlLnByb3RvdHlwZS5LYixWZS5wcm90b3R5cGUuVmE9ZnVuY3Rpb24oZSl7dGhpcy5oLnB1c2goSGUodGhpcyxlKSl9LFZlLnByb3RvdHlwZS5iZWdpblN1Yk1lc3NhZ2U9VmUucHJvdG90eXBlLlZhLFZlLnByb3RvdHlwZS5ZYT1mdW5jdGlvbigpe20oMDw9dGhpcy5oLmxlbmd0aCksS2UodGhpcyx0aGlzLmgucG9wKCkpfSxWZS5wcm90b3R5cGUuZW5kU3ViTWVzc2FnZT1WZS5wcm90b3R5cGUuWWEsVmUucHJvdG90eXBlLk5jPWZ1bmN0aW9uKGUsdCxyKXtzd2l0Y2goZSl7Y2FzZSAxOnRoaXMuSih0LHIpO2JyZWFrO2Nhc2UgMjp0aGlzLkwodCxyKTticmVhaztjYXNlIDM6dGhpcy5UKHQscik7YnJlYWs7Y2FzZSA0OnRoaXMuVih0LHIpO2JyZWFrO2Nhc2UgNTp0aGlzLlModCxyKTticmVhaztjYXNlIDY6dGhpcy5RYSh0LHIpO2JyZWFrO2Nhc2UgNzp0aGlzLlBhKHQscik7YnJlYWs7Y2FzZSA4OnRoaXMuSSh0LHIpO2JyZWFrO2Nhc2UgOTp0aGlzLlUodCxyKTticmVhaztjYXNlIDEwOlQoIkdyb3VwIGZpZWxkIHR5cGUgbm90IHN1cHBvcnRlZCBpbiB3cml0ZUFueSgpIik7YnJlYWs7Y2FzZSAxMTpUKCJNZXNzYWdlIGZpZWxkIHR5cGUgbm90IHN1cHBvcnRlZCBpbiB3cml0ZUFueSgpIik7YnJlYWs7Y2FzZSAxMjp0aGlzLmphKHQscik7YnJlYWs7Y2FzZSAxMzp0aGlzLnModCxyKTticmVhaztjYXNlIDE0OnRoaXMuUih0LHIpO2JyZWFrO2Nhc2UgMTU6dGhpcy5SYSh0LHIpO2JyZWFrO2Nhc2UgMTY6dGhpcy5TYSh0LHIpO2JyZWFrO2Nhc2UgMTc6dGhpcy5yYih0LHIpO2JyZWFrO2Nhc2UgMTg6dGhpcy5zYih0LHIpO2JyZWFrO2Nhc2UgMzA6dGhpcy5LKHQscik7YnJlYWs7Y2FzZSAzMTp0aGlzLk4odCxyKTticmVhaztkZWZhdWx0OlQoIkludmFsaWQgZmllbGQgdHlwZSBpbiB3cml0ZUFueSgpIil9fSxWZS5wcm90b3R5cGUud3JpdGVBbnk9VmUucHJvdG90eXBlLk5jLFZlLnByb3RvdHlwZS5TPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKG0oLTIxNDc0ODM2NDg8PXQmJjIxNDc0ODM2NDg+dCksSmUodGhpcyxlLHQpKX0sVmUucHJvdG90eXBlLndyaXRlSW50MzI9VmUucHJvdG90eXBlLlMsVmUucHJvdG90eXBlLm9iPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKG0oLTIxNDc0ODM2NDg8PSh0PXBhcnNlSW50KHQsMTApKSYmMjE0NzQ4MzY0OD50KSxKZSh0aGlzLGUsdCkpfSxWZS5wcm90b3R5cGUud3JpdGVJbnQzMlN0cmluZz1WZS5wcm90b3R5cGUub2IsVmUucHJvdG90eXBlLlQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSgtMHg4MDAwMDAwMDAwMDAwMDAwPD10JiYweDgwMDAwMDAwMDAwMDAwMDA+dCksbnVsbCE9dCYmKFplKHRoaXMsZSwwKSx0aGlzLmEudWEodCkpKX0sVmUucHJvdG90eXBlLndyaXRlSW50NjQ9VmUucHJvdG90eXBlLlQsVmUucHJvdG90eXBlLmthPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHQ9JGUodCksWmUodGhpcyxlLDApLHRoaXMuYS5sKHQubG8sdC5oaSkpfSxWZS5wcm90b3R5cGUud3JpdGVJbnQ2NFN0cmluZz1WZS5wcm90b3R5cGUua2EsVmUucHJvdG90eXBlLnM9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSgwPD10JiY0Mjk0OTY3Mjk2PnQpLHFlKHRoaXMsZSx0KSl9LFZlLnByb3RvdHlwZS53cml0ZVVpbnQzMj1WZS5wcm90b3R5cGUucyxWZS5wcm90b3R5cGUudWI9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSgwPD0odD1wYXJzZUludCh0LDEwKSkmJjQyOTQ5NjcyOTY+dCkscWUodGhpcyxlLHQpKX0sVmUucHJvdG90eXBlLndyaXRlVWludDMyU3RyaW5nPVZlLnByb3RvdHlwZS51YixWZS5wcm90b3R5cGUuVj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihtKDA8PXQmJjB4MTAwMDAwMDAwMDAwMDAwMDA+dCksbnVsbCE9dCYmKFplKHRoaXMsZSwwKSx0aGlzLmEudmEodCkpKX0sVmUucHJvdG90eXBlLndyaXRlVWludDY0PVZlLnByb3RvdHlwZS5WLFZlLnByb3RvdHlwZS52Yj1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWplKHQpLFplKHRoaXMsZSwwKSx0aGlzLmEubCh0LmxvLHQuaGkpKX0sVmUucHJvdG90eXBlLndyaXRlVWludDY0U3RyaW5nPVZlLnByb3RvdHlwZS52YixWZS5wcm90b3R5cGUucmI9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSgtMjE0NzQ4MzY0ODw9dCYmMjE0NzQ4MzY0OD50KSxudWxsIT10JiYoWmUodGhpcyxlLDApLHRoaXMuYS53YSh0KSkpfSxWZS5wcm90b3R5cGUud3JpdGVTaW50MzI9VmUucHJvdG90eXBlLnJiLFZlLnByb3RvdHlwZS5zYj1mdW5jdGlvbihlLHQpe251bGwhPXQmJihtKC0weDgwMDAwMDAwMDAwMDAwMDA8PXQmJjB4ODAwMDAwMDAwMDAwMDAwMD50KSxudWxsIT10JiYoWmUodGhpcyxlLDApLHRoaXMuYS54YSh0KSkpfSxWZS5wcm90b3R5cGUud3JpdGVTaW50NjQ9VmUucHJvdG90eXBlLnNiLFZlLnByb3RvdHlwZS4kZD1mdW5jdGlvbihlLHQpe251bGwhPXQmJm51bGwhPXQmJihaZSh0aGlzLGUsMCksdGhpcy5hLlcodCkpfSxWZS5wcm90b3R5cGUud3JpdGVTaW50SGFzaDY0PVZlLnByb3RvdHlwZS4kZCxWZS5wcm90b3R5cGUuWmQ9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiZudWxsIT10JiYoWmUodGhpcyxlLDApLHRoaXMuYS5UYSh0KSl9LFZlLnByb3RvdHlwZS53cml0ZVNpbnQ2NFN0cmluZz1WZS5wcm90b3R5cGUuWmQsVmUucHJvdG90eXBlLlBhPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKG0oMDw9dCYmNDI5NDk2NzI5Nj50KSxaZSh0aGlzLGUsNSksdGhpcy5hLnModCkpfSxWZS5wcm90b3R5cGUud3JpdGVGaXhlZDMyPVZlLnByb3RvdHlwZS5QYSxWZS5wcm90b3R5cGUuUWE9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSgwPD10JiYweDEwMDAwMDAwMDAwMDAwMDAwPnQpLFplKHRoaXMsZSwxKSx0aGlzLmEuVih0KSl9LFZlLnByb3RvdHlwZS53cml0ZUZpeGVkNjQ9VmUucHJvdG90eXBlLlFhLFZlLnByb3RvdHlwZS5uYj1mdW5jdGlvbihlLHQpe251bGwhPXQmJih0PWplKHQpLFplKHRoaXMsZSwxKSx0aGlzLmEuQSh0LmxvLHQuaGkpKX0sVmUucHJvdG90eXBlLndyaXRlRml4ZWQ2NFN0cmluZz1WZS5wcm90b3R5cGUubmIsVmUucHJvdG90eXBlLlJhPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKG0oLTIxNDc0ODM2NDg8PXQmJjIxNDc0ODM2NDg+dCksWmUodGhpcyxlLDUpLHRoaXMuYS5TKHQpKX0sVmUucHJvdG90eXBlLndyaXRlU2ZpeGVkMzI9VmUucHJvdG90eXBlLlJhLFZlLnByb3RvdHlwZS5TYT1mdW5jdGlvbihlLHQpe251bGwhPXQmJihtKC0weDgwMDAwMDAwMDAwMDAwMDA8PXQmJjB4ODAwMDAwMDAwMDAwMDAwMD50KSxaZSh0aGlzLGUsMSksdGhpcy5hLlQodCkpfSxWZS5wcm90b3R5cGUud3JpdGVTZml4ZWQ2ND1WZS5wcm90b3R5cGUuU2EsVmUucHJvdG90eXBlLnFiPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKHQ9JGUodCksWmUodGhpcyxlLDEpLHRoaXMuYS5BKHQubG8sdC5oaSkpfSxWZS5wcm90b3R5cGUud3JpdGVTZml4ZWQ2NFN0cmluZz1WZS5wcm90b3R5cGUucWIsVmUucHJvdG90eXBlLkw9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoWmUodGhpcyxlLDUpLHRoaXMuYS5MKHQpKX0sVmUucHJvdG90eXBlLndyaXRlRmxvYXQ9VmUucHJvdG90eXBlLkwsVmUucHJvdG90eXBlLko9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYoWmUodGhpcyxlLDEpLHRoaXMuYS5KKHQpKX0sVmUucHJvdG90eXBlLndyaXRlRG91YmxlPVZlLnByb3RvdHlwZS5KLFZlLnByb3RvdHlwZS5JPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKG0oImJvb2xlYW4iPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0KSxaZSh0aGlzLGUsMCksdGhpcy5hLkkodCkpfSxWZS5wcm90b3R5cGUud3JpdGVCb29sPVZlLnByb3RvdHlwZS5JLFZlLnByb3RvdHlwZS5SPWZ1bmN0aW9uKGUsdCl7bnVsbCE9dCYmKG0oLTIxNDc0ODM2NDg8PXQmJjIxNDc0ODM2NDg+dCksWmUodGhpcyxlLDApLHRoaXMuYS5NKHQpKX0sVmUucHJvdG90eXBlLndyaXRlRW51bT1WZS5wcm90b3R5cGUuUixWZS5wcm90b3R5cGUuVT1mdW5jdGlvbihlLHQpe251bGwhPXQmJihlPUhlKHRoaXMsZSksdGhpcy5hLlUodCksS2UodGhpcyxlKSl9LFZlLnByb3RvdHlwZS53cml0ZVN0cmluZz1WZS5wcm90b3R5cGUuVSxWZS5wcm90b3R5cGUuamE9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYodD1pZSh0KSxaZSh0aGlzLGUsMiksdGhpcy5hLmoodC5sZW5ndGgpLEdlKHRoaXMsdCkpfSxWZS5wcm90b3R5cGUud3JpdGVCeXRlcz1WZS5wcm90b3R5cGUuamEsVmUucHJvdG90eXBlLlJjPWZ1bmN0aW9uKGUsdCxyKXtudWxsIT10JiYoZT1IZSh0aGlzLGUpLHIodCx0aGlzKSxLZSh0aGlzLGUpKX0sVmUucHJvdG90eXBlLndyaXRlTWVzc2FnZT1WZS5wcm90b3R5cGUuUmMsVmUucHJvdG90eXBlLlNjPWZ1bmN0aW9uKGUsdCxyKXtudWxsIT10JiYoWmUodGhpcywxLDMpLFplKHRoaXMsMiwwKSx0aGlzLmEuTShlKSxlPUhlKHRoaXMsMykscih0LHRoaXMpLEtlKHRoaXMsZSksWmUodGhpcywxLDQpKX0sVmUucHJvdG90eXBlLndyaXRlTWVzc2FnZVNldD1WZS5wcm90b3R5cGUuU2MsVmUucHJvdG90eXBlLk9jPWZ1bmN0aW9uKGUsdCxyKXtudWxsIT10JiYoWmUodGhpcyxlLDMpLHIodCx0aGlzKSxaZSh0aGlzLGUsNCkpfSxWZS5wcm90b3R5cGUud3JpdGVHcm91cD1WZS5wcm90b3R5cGUuT2MsVmUucHJvdG90eXBlLks9ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSg4PT10Lmxlbmd0aCksWmUodGhpcyxlLDEpLHRoaXMuYS5LKHQpKX0sVmUucHJvdG90eXBlLndyaXRlRml4ZWRIYXNoNjQ9VmUucHJvdG90eXBlLkssVmUucHJvdG90eXBlLk49ZnVuY3Rpb24oZSx0KXtudWxsIT10JiYobSg4PT10Lmxlbmd0aCksWmUodGhpcyxlLDApLHRoaXMuYS5OKHQpKX0sVmUucHJvdG90eXBlLndyaXRlVmFyaW50SGFzaDY0PVZlLnByb3RvdHlwZS5OLFZlLnByb3RvdHlwZS5BPWZ1bmN0aW9uKGUsdCxyKXtaZSh0aGlzLGUsMSksdGhpcy5hLkEodCxyKX0sVmUucHJvdG90eXBlLndyaXRlU3BsaXRGaXhlZDY0PVZlLnByb3RvdHlwZS5BLFZlLnByb3RvdHlwZS5sPWZ1bmN0aW9uKGUsdCxyKXtaZSh0aGlzLGUsMCksdGhpcy5hLmwodCxyKX0sVmUucHJvdG90eXBlLndyaXRlU3BsaXRWYXJpbnQ2ND1WZS5wcm90b3R5cGUubCxWZS5wcm90b3R5cGUudGI9ZnVuY3Rpb24oZSx0LHIpe1plKHRoaXMsZSwwKTt2YXIgbj10aGlzLmE7SCh0LHIsKGZ1bmN0aW9uKGUsdCl7bi5sKGU+Pj4wLHQ+Pj4wKX0pKX0sVmUucHJvdG90eXBlLndyaXRlU3BsaXRaaWd6YWdWYXJpbnQ2ND1WZS5wcm90b3R5cGUudGIsVmUucHJvdG90eXBlLkVkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKylKZSh0aGlzLGUsdFtyXSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkSW50MzI9VmUucHJvdG90eXBlLkVkLFZlLnByb3RvdHlwZS5GZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5vYihlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEludDMyU3RyaW5nPVZlLnByb3RvdHlwZS5GZCxWZS5wcm90b3R5cGUuR2Q9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO251bGwhPW4mJihaZSh0aGlzLGUsMCksdGhpcy5hLnVhKG4pKX19LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkSW50NjQ9VmUucHJvdG90eXBlLkdkLFZlLnByb3RvdHlwZS5RZD1mdW5jdGlvbihlLHQscixuKXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuQShlLHIodFtvXSksbih0W29dKSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU3BsaXRGaXhlZDY0PVZlLnByb3RvdHlwZS5RZCxWZS5wcm90b3R5cGUuUmQ9ZnVuY3Rpb24oZSx0LHIsbil7aWYobnVsbCE9dClmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl0aGlzLmwoZSxyKHRbb10pLG4odFtvXSkpfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNwbGl0VmFyaW50NjQ9VmUucHJvdG90eXBlLlJkLFZlLnByb3RvdHlwZS5TZD1mdW5jdGlvbihlLHQscixuKXtpZihudWxsIT10KWZvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMudGIoZSxyKHRbb10pLG4odFtvXSkpfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNwbGl0WmlnemFnVmFyaW50NjQ9VmUucHJvdG90eXBlLlNkLFZlLnByb3RvdHlwZS5IZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5rYShlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEludDY0U3RyaW5nPVZlLnByb3RvdHlwZS5IZCxWZS5wcm90b3R5cGUuVWQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXFlKHRoaXMsZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRVaW50MzI9VmUucHJvdG90eXBlLlVkLFZlLnByb3RvdHlwZS5WZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy51YihlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFVpbnQzMlN0cmluZz1WZS5wcm90b3R5cGUuVmQsVmUucHJvdG90eXBlLldkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtudWxsIT1uJiYoWmUodGhpcyxlLDApLHRoaXMuYS52YShuKSl9fSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFVpbnQ2ND1WZS5wcm90b3R5cGUuV2QsVmUucHJvdG90eXBlLlhkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLnZiKGUsdFtyXSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVWludDY0U3RyaW5nPVZlLnByb3RvdHlwZS5YZCxWZS5wcm90b3R5cGUuTWQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO251bGwhPW4mJihaZSh0aGlzLGUsMCksdGhpcy5hLndhKG4pKX19LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ludDMyPVZlLnByb3RvdHlwZS5NZCxWZS5wcm90b3R5cGUuTmQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO251bGwhPW4mJihaZSh0aGlzLGUsMCksdGhpcy5hLnhhKG4pKX19LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ludDY0PVZlLnByb3RvdHlwZS5OZCxWZS5wcm90b3R5cGUuT2Q9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO251bGwhPW4mJihaZSh0aGlzLGUsMCksdGhpcy5hLlRhKG4pKX19LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ludDY0U3RyaW5nPVZlLnByb3RvdHlwZS5PZCxWZS5wcm90b3R5cGUuUGQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdO251bGwhPW4mJihaZSh0aGlzLGUsMCksdGhpcy5hLlcobikpfX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRTaW50SGFzaDY0PVZlLnByb3RvdHlwZS5QZCxWZS5wcm90b3R5cGUueWQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuUGEoZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGaXhlZDMyPVZlLnByb3RvdHlwZS55ZCxWZS5wcm90b3R5cGUuemQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuUWEoZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGaXhlZDY0PVZlLnByb3RvdHlwZS56ZCxWZS5wcm90b3R5cGUuQWQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMubmIoZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRGaXhlZDY0U3RyaW5nPVZlLnByb3RvdHlwZS5BZCxWZS5wcm90b3R5cGUuSmQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuUmEoZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRTZml4ZWQzMj1WZS5wcm90b3R5cGUuSmQsVmUucHJvdG90eXBlLktkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLlNhKGUsdFtyXSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU2ZpeGVkNjQ9VmUucHJvdG90eXBlLktkLFZlLnByb3RvdHlwZS5MZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5xYihlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZFNmaXhlZDY0U3RyaW5nPVZlLnByb3RvdHlwZS5MZCxWZS5wcm90b3R5cGUuQ2Q9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuTChlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEZsb2F0PVZlLnByb3RvdHlwZS5DZCxWZS5wcm90b3R5cGUud2Q9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuSihlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZERvdWJsZT1WZS5wcm90b3R5cGUud2QsVmUucHJvdG90eXBlLnVkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dClmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLkkoZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRCb29sPVZlLnByb3RvdHlwZS51ZCxWZS5wcm90b3R5cGUueGQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuUihlLHRbcl0pfSxWZS5wcm90b3R5cGUud3JpdGVSZXBlYXRlZEVudW09VmUucHJvdG90eXBlLnhkLFZlLnByb3RvdHlwZS5UZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5VKGUsdFtyXSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkU3RyaW5nPVZlLnByb3RvdHlwZS5UZCxWZS5wcm90b3R5cGUudmQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10KWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuamEoZSx0W3JdKX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRCeXRlcz1WZS5wcm90b3R5cGUudmQsVmUucHJvdG90eXBlLklkPWZ1bmN0aW9uKGUsdCxyKXtpZihudWxsIT10KWZvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgbz1IZSh0aGlzLGUpO3IodFtuXSx0aGlzKSxLZSh0aGlzLG8pfX0sVmUucHJvdG90eXBlLndyaXRlUmVwZWF0ZWRNZXNzYWdlPVZlLnByb3RvdHlwZS5JZCxWZS5wcm90b3R5cGUuRGQ9ZnVuY3Rpb24oZSx0LHIpe2lmKG51bGwhPXQpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspWmUodGhpcyxlLDMpLHIodFtuXSx0aGlzKSxaZSh0aGlzLGUsNCl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkR3JvdXA9VmUucHJvdG90eXBlLkRkLFZlLnByb3RvdHlwZS5CZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5LKGUsdFtyXSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkRml4ZWRIYXNoNjQ9VmUucHJvdG90eXBlLkJkLFZlLnByb3RvdHlwZS5ZZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5OKGUsdFtyXSl9LFZlLnByb3RvdHlwZS53cml0ZVJlcGVhdGVkVmFyaW50SGFzaDY0PVZlLnByb3RvdHlwZS5ZZCxWZS5wcm90b3R5cGUuYWQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS5NKHRbcl0pO0tlKHRoaXMsZSl9fSxWZS5wcm90b3R5cGUud3JpdGVQYWNrZWRJbnQzMj1WZS5wcm90b3R5cGUuYWQsVmUucHJvdG90eXBlLmJkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9SGUodGhpcyxlKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLmEuTShwYXJzZUludCh0W3JdLDEwKSk7S2UodGhpcyxlKX19LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZEludDMyU3RyaW5nPVZlLnByb3RvdHlwZS5iZCxWZS5wcm90b3R5cGUuY2Q9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS51YSh0W3JdKTtLZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkSW50NjQ9VmUucHJvdG90eXBlLmNkLFZlLnByb3RvdHlwZS5tZD1mdW5jdGlvbihlLHQscixuKXtpZihudWxsIT10KXtlPUhlKHRoaXMsZSk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDtvKyspdGhpcy5hLkEocih0W29dKSxuKHRbb10pKTtLZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU3BsaXRGaXhlZDY0PVZlLnByb3RvdHlwZS5tZCxWZS5wcm90b3R5cGUubmQ9ZnVuY3Rpb24oZSx0LHIsbil7aWYobnVsbCE9dCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRoaXMuYS5sKHIodFtvXSksbih0W29dKSk7S2UodGhpcyxlKX19LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZFNwbGl0VmFyaW50NjQ9VmUucHJvdG90eXBlLm5kLFZlLnByb3RvdHlwZS5vZD1mdW5jdGlvbihlLHQscixuKXtpZihudWxsIT10KXtlPUhlKHRoaXMsZSk7Zm9yKHZhciBvPXRoaXMuYSxpPTA7aTx0Lmxlbmd0aDtpKyspSChyKHRbaV0pLG4odFtpXSksKGZ1bmN0aW9uKGUsdCl7by5sKGU+Pj4wLHQ+Pj4wKX0pKTtLZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU3BsaXRaaWd6YWdWYXJpbnQ2ND1WZS5wcm90b3R5cGUub2QsVmUucHJvdG90eXBlLmRkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9SGUodGhpcyxlKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49JGUodFtyXSk7dGhpcy5hLmwobi5sbyxuLmhpKX1LZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkSW50NjRTdHJpbmc9VmUucHJvdG90eXBlLmRkLFZlLnByb3RvdHlwZS5wZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPUhlKHRoaXMsZSk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5hLmoodFtyXSk7S2UodGhpcyxlKX19LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQzMj1WZS5wcm90b3R5cGUucGQsVmUucHJvdG90eXBlLnFkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9SGUodGhpcyxlKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLmEuaihwYXJzZUludCh0W3JdLDEwKSk7S2UodGhpcyxlKX19LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQzMlN0cmluZz1WZS5wcm90b3R5cGUucWQsVmUucHJvdG90eXBlLnJkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9SGUodGhpcyxlKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0aGlzLmEudmEodFtyXSk7S2UodGhpcyxlKX19LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZFVpbnQ2ND1WZS5wcm90b3R5cGUucmQsVmUucHJvdG90eXBlLnNkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpe2U9SGUodGhpcyxlKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49amUodFtyXSk7dGhpcy5hLmwobi5sbyxuLmhpKX1LZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkVWludDY0U3RyaW5nPVZlLnByb3RvdHlwZS5zZCxWZS5wcm90b3R5cGUuaGQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS53YSh0W3JdKTtLZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU2ludDMyPVZlLnByb3RvdHlwZS5oZCxWZS5wcm90b3R5cGUuamQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS54YSh0W3JdKTtLZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU2ludDY0PVZlLnByb3RvdHlwZS5qZCxWZS5wcm90b3R5cGUua2Q9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS5XKHRlKHRbcl0pKTtLZSh0aGlzLGUpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU2ludDY0U3RyaW5nPVZlLnByb3RvdHlwZS5rZCxWZS5wcm90b3R5cGUubGQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS5XKHRbcl0pO0tlKHRoaXMsZSl9fSxWZS5wcm90b3R5cGUud3JpdGVQYWNrZWRTaW50SGFzaDY0PVZlLnByb3RvdHlwZS5sZCxWZS5wcm90b3R5cGUuV2M9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IoWmUodGhpcyxlLDIpLHRoaXMuYS5qKDQqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmEucyh0W2VdKX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkRml4ZWQzMj1WZS5wcm90b3R5cGUuV2MsVmUucHJvdG90eXBlLlhjPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKFplKHRoaXMsZSwyKSx0aGlzLmEuaig4KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5hLlYodFtlXSl9LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZEZpeGVkNjQ9VmUucHJvdG90eXBlLlhjLFZlLnByb3RvdHlwZS5ZYz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcihaZSh0aGlzLGUsMiksdGhpcy5hLmooOCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj1qZSh0W2VdKTt0aGlzLmEuQShyLmxvLHIuaGkpfX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkRml4ZWQ2NFN0cmluZz1WZS5wcm90b3R5cGUuWWMsVmUucHJvdG90eXBlLmVkPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKFplKHRoaXMsZSwyKSx0aGlzLmEuaig0KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5hLlModFtlXSl9LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZFNmaXhlZDMyPVZlLnByb3RvdHlwZS5lZCxWZS5wcm90b3R5cGUuZmQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IoWmUodGhpcyxlLDIpLHRoaXMuYS5qKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmEuVCh0W2VdKX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU2ZpeGVkNjQ9VmUucHJvdG90eXBlLmZkLFZlLnByb3RvdHlwZS5nZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcihaZSh0aGlzLGUsMiksdGhpcy5hLmooOCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuYS5rYSh0W2VdKX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkU2ZpeGVkNjRTdHJpbmc9VmUucHJvdG90eXBlLmdkLFZlLnByb3RvdHlwZS4kYz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKWZvcihaZSh0aGlzLGUsMiksdGhpcy5hLmooNCp0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuYS5MKHRbZV0pfSxWZS5wcm90b3R5cGUud3JpdGVQYWNrZWRGbG9hdD1WZS5wcm90b3R5cGUuJGMsVmUucHJvdG90eXBlLlVjPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKFplKHRoaXMsZSwyKSx0aGlzLmEuaig4KnQubGVuZ3RoKSxlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy5hLkoodFtlXSl9LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZERvdWJsZT1WZS5wcm90b3R5cGUuVWMsVmUucHJvdG90eXBlLlRjPWZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9dCYmdC5sZW5ndGgpZm9yKFplKHRoaXMsZSwyKSx0aGlzLmEuaih0Lmxlbmd0aCksZT0wO2U8dC5sZW5ndGg7ZSsrKXRoaXMuYS5JKHRbZV0pfSxWZS5wcm90b3R5cGUud3JpdGVQYWNrZWRCb29sPVZlLnByb3RvdHlwZS5UYyxWZS5wcm90b3R5cGUuVmM9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aCl7ZT1IZSh0aGlzLGUpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMuYS5SKHRbcl0pO0tlKHRoaXMsZSl9fSxWZS5wcm90b3R5cGUud3JpdGVQYWNrZWRFbnVtPVZlLnByb3RvdHlwZS5WYyxWZS5wcm90b3R5cGUuWmM9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT10JiZ0Lmxlbmd0aClmb3IoWmUodGhpcyxlLDIpLHRoaXMuYS5qKDgqdC5sZW5ndGgpLGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLmEuSyh0W2VdKX0sVmUucHJvdG90eXBlLndyaXRlUGFja2VkRml4ZWRIYXNoNjQ9VmUucHJvdG90eXBlLlpjLFZlLnByb3RvdHlwZS50ZD1mdW5jdGlvbihlLHQpe2lmKG51bGwhPXQmJnQubGVuZ3RoKXtlPUhlKHRoaXMsZSk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5hLk4odFtyXSk7S2UodGhpcyxlKX19LFZlLnByb3RvdHlwZS53cml0ZVBhY2tlZFZhcmludEhhc2g2ND1WZS5wcm90b3R5cGUudGQsdC5kZWJ1Zz1OZSx0Lk1hcD1QLHQuTWVzc2FnZT1nZSx0LkJpbmFyeVJlYWRlcj1jZSx0LkJpbmFyeVdyaXRlcj1WZSx0LkV4dGVuc2lvbkZpZWxkSW5mbz1wZSx0LkV4dGVuc2lvbkZpZWxkQmluYXJ5SW5mbz1oZSx0LmV4cG9ydFN5bWJvbD1mdW5jdGlvbihlLHQscil7ZChlLHQscil9LHQuaW5oZXJpdHM9ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiByKCl7fXIucHJvdG90eXBlPXQucHJvdG90eXBlLGUucHJvdG90eXBlPW5ldyByLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWV9LHQub2JqZWN0PXtleHRlbmQ6ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIsbixvPTE7bzxhcmd1bWVudHMubGVuZ3RoO28rKyl7Zm9yKHIgaW4gbj1hcmd1bWVudHNbb10pZVtyXT1uW3JdO2Zvcih2YXIgaT0wO2k8aC5sZW5ndGg7aSsrKXI9aFtpXSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKSYmKGVbcl09bltyXSl9fX0sdC50eXBlT2Y9Zn0sNjE3NzooZSx0LHIpPT57dmFyIG49cig1NTk1KSxvPW4saT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXN8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fHZvaWQgMCE9PWkmJml8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30uY2FsbChudWxsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTtvLmV4cG9ydFN5bWJvbCgicHJvdG8uZ29vZ2xlLnByb3RvYnVmLkFueSIsbnVsbCxpKSxwcm90by5nb29nbGUucHJvdG9idWYuQW55PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMocHJvdG8uZ29vZ2xlLnByb3RvYnVmLkFueSxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkuZGlzcGxheU5hbWU9InByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkiKSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYocHJvdG8uZ29vZ2xlLnByb3RvYnVmLkFueS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkudG9PYmplY3QoZSx0aGlzKX0scHJvdG8uZ29vZ2xlLnByb3RvYnVmLkFueS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXt0eXBlVXJsOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSwiIiksdmFsdWU6dC5nZXRWYWx1ZV9hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IHByb3RvLmdvb2dsZS5wcm90b2J1Zi5Bbnk7cmV0dXJuIHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRTdHJpbmcoKTtlLnNldFR5cGVVcmwocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFZhbHVlKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0scHJvdG8uZ29vZ2xlLnByb3RvYnVmLkFueS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBwcm90by5nb29nbGUucHJvdG9idWYuQW55LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0scHJvdG8uZ29vZ2xlLnByb3RvYnVmLkFueS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldFR5cGVVcmwoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoMSxyKSwocj1lLmdldFZhbHVlX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpfSxwcm90by5nb29nbGUucHJvdG9idWYuQW55LnByb3RvdHlwZS5nZXRUeXBlVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkucHJvdG90eXBlLnNldFR5cGVVcmw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLDEsZSl9LHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkucHJvdG90eXBlLmdldFZhbHVlX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0VmFsdWUoKSl9LHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkucHJvdG90eXBlLmdldFZhbHVlX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFZhbHVlKCkpfSxwcm90by5nb29nbGUucHJvdG9idWYuQW55LnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxvLm9iamVjdC5leHRlbmQodCxwcm90by5nb29nbGUucHJvdG9idWYpLHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkucHJvdG90eXBlLmdldFR5cGVOYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHlwZVVybCgpLnNwbGl0KCIvIikucG9wKCl9LHByb3RvLmdvb2dsZS5wcm90b2J1Zi5BbnkucHJvdG90eXBlLnBhY2s9ZnVuY3Rpb24oZSx0LHIpe3J8fChyPSJ0eXBlLmdvb2dsZWFwaXMuY29tLyIpLCIvIiE9ci5zdWJzdHIoLTEpP3RoaXMuc2V0VHlwZVVybChyKyIvIit0KTp0aGlzLnNldFR5cGVVcmwocit0KSx0aGlzLnNldFZhbHVlKGUpfSxwcm90by5nb29nbGUucHJvdG9idWYuQW55LnByb3RvdHlwZS51bnBhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5nZXRUeXBlTmFtZSgpPT10P2UodGhpcy5nZXRWYWx1ZV9hc1U4KCkpOm51bGx9fSw4MDIwOihlLHQscik9Pnt2YXIgbj1yKDU1OTUpLG89bixpPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpc3x8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8dm9pZCAwIT09aSYmaXx8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfS5jYWxsKG51bGwpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGE9cig2MTc3KTtvLm9iamVjdC5leHRlbmQocHJvdG8sYSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5BY2NvdW50IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbiIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRJZCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRUeXBlIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5FeGNoYW5nZSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLktleSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uUGVybWlzc2lvbiIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlBlcm1pc3Npb24uUGVybWlzc2lvblR5cGUiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5Qcm9wb3NhbCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlByb3Bvc2FsLlN0YXRlIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24iLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LkNvbnRyYWN0VHlwZSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5jb2RlIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LmNvbnRyYWN0UmVzdWx0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVm90ZSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlZvdGVzIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uV2l0bmVzcyIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLmF1dGhvcml0eSIsbnVsbCxpKSxUcm9uV2ViUHJvdG8uQWNjb3VudElkPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkFjY291bnRJZCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50SWQuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5BY2NvdW50SWQiKSxUcm9uV2ViUHJvdG8uVm90ZT1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5Wb3RlLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlZvdGUuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5Wb3RlIiksVHJvbldlYlByb3RvLlByb3Bvc2FsPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5Qcm9wb3NhbC5yZXBlYXRlZEZpZWxkc18sbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlByb3Bvc2FsLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlByb3Bvc2FsLmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uUHJvcG9zYWwiKSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2U9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uRXhjaGFuZ2Usbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uRXhjaGFuZ2UuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5FeGNoYW5nZSIpLFRyb25XZWJQcm90by5BY2NvdW50PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5BY2NvdW50LnJlcGVhdGVkRmllbGRzXyxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQWNjb3VudCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQWNjb3VudCIpLFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbj1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbixuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuIiksVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UiKSxUcm9uV2ViUHJvdG8uS2V5PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLktleSxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5LZXkuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5LZXkiKSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2U9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2Usbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZSIpLFRyb25XZWJQcm90by5hdXRob3JpdHk9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uYXV0aG9yaXR5LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLmF1dGhvcml0eS5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLmF1dGhvcml0eSIpLFRyb25XZWJQcm90by5QZXJtaXNzaW9uPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnJlcGVhdGVkRmllbGRzXyxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uUGVybWlzc2lvbixuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5QZXJtaXNzaW9uLmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uUGVybWlzc2lvbiIpLFRyb25XZWJQcm90by5XaXRuZXNzPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLldpdG5lc3Msbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uV2l0bmVzcy5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLldpdG5lc3MiKSxUcm9uV2ViUHJvdG8uVm90ZXM9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsVHJvbldlYlByb3RvLlZvdGVzLnJlcGVhdGVkRmllbGRzXyxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uVm90ZXMsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uVm90ZXMuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5Wb3RlcyIpLFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsIiksVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yZXBlYXRlZEZpZWxkc18sbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24iKSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdCIpLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQ9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5yZXBlYXRlZEZpZWxkc18sbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQiKSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucmVwZWF0ZWRGaWVsZHNfLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3Iiksbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5BY2NvdW50SWQucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudElkLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5BY2NvdW50SWQudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17bmFtZTp0LmdldE5hbWVfYXNCNjQoKSxhZGRyZXNzOnQuZ2V0QWRkcmVzc19hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5BY2NvdW50SWQuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5BY2NvdW50SWQ7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50SWQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50SWQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0TmFtZShyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0QWRkcmVzcyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5BY2NvdW50SWQucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRJZC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5BY2NvdW50SWQuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXROYW1lX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKX0sVHJvbldlYlByb3RvLkFjY291bnRJZC5wcm90b3R5cGUuZ2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudElkLnByb3RvdHlwZS5nZXROYW1lX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0TmFtZSgpKX0sVHJvbldlYlByb3RvLkFjY291bnRJZC5wcm90b3R5cGUuZ2V0TmFtZV9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXROYW1lKCkpfSxUcm9uV2ViUHJvdG8uQWNjb3VudElkLnByb3RvdHlwZS5zZXROYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5BY2NvdW50SWQucHJvdG90eXBlLmdldEFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnRJZC5wcm90b3R5cGUuZ2V0QWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50SWQucHJvdG90eXBlLmdldEFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkFjY291bnRJZC5wcm90b3R5cGUuc2V0QWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlZvdGUucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVm90ZS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVm90ZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXt2b3RlQWRkcmVzczp0LmdldFZvdGVBZGRyZXNzX2FzQjY0KCksdm90ZUNvdW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVm90ZS5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlZvdGU7cmV0dXJuIFRyb25XZWJQcm90by5Wb3RlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVm90ZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRWb3RlQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0Vm90ZUNvdW50KHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlZvdGUucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlZvdGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVm90ZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldFZvdGVBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldFZvdGVDb3VudCgpKSYmdC53cml0ZUludDY0KDIscil9LFRyb25XZWJQcm90by5Wb3RlLnByb3RvdHlwZS5nZXRWb3RlQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uVm90ZS5wcm90b3R5cGUuZ2V0Vm90ZUFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRWb3RlQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlZvdGUucHJvdG90eXBlLmdldFZvdGVBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFZvdGVBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVm90ZS5wcm90b3R5cGUuc2V0Vm90ZUFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlZvdGUucHJvdG90eXBlLmdldFZvdGVDb3VudD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5Wb3RlLnByb3RvdHlwZS5zZXRWb3RlQ291bnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5yZXBlYXRlZEZpZWxkc189WzZdLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uUHJvcG9zYWwucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uUHJvcG9zYWwudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsbz17cHJvcG9zYWxJZDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCkscHJvcG9zZXJBZGRyZXNzOnQuZ2V0UHJvcG9zZXJBZGRyZXNzX2FzQjY0KCkscGFyYW1ldGVyc01hcDoocj10LmdldFBhcmFtZXRlcnNNYXAoKSk/ci50b09iamVjdChlLHZvaWQgMCk6W10sZXhwaXJhdGlvblRpbWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0LDApLGNyZWF0ZVRpbWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw1LDApLGFwcHJvdmFsc0xpc3Q6dC5nZXRBcHByb3ZhbHNMaXN0X2FzQjY0KCksc3RhdGU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw3LDApfTtyZXR1cm4gZSYmKG8uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksb30pLFRyb25XZWJQcm90by5Qcm9wb3NhbC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlByb3Bvc2FsO3JldHVybiBUcm9uV2ViUHJvdG8uUHJvcG9zYWwuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEludDY0KCk7ZS5zZXRQcm9wb3NhbElkKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEJ5dGVzKCksZS5zZXRQcm9wb3NlckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAzOnI9ZS5nZXRQYXJhbWV0ZXJzTWFwKCksdC5yZWFkTWVzc2FnZShyLChmdW5jdGlvbihlLHQpe24uTWFwLmRlc2VyaWFsaXplQmluYXJ5KGUsdCxuLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDY0LG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjQsbnVsbCwwLDApfSkpO2JyZWFrO2Nhc2UgNDpyPXQucmVhZEludDY0KCksZS5zZXRFeHBpcmF0aW9uVGltZShyKTticmVhaztjYXNlIDU6cj10LnJlYWRJbnQ2NCgpLGUuc2V0Q3JlYXRlVGltZShyKTticmVhaztjYXNlIDY6cj10LnJlYWRCeXRlcygpLGUuYWRkQXBwcm92YWxzKHIpO2JyZWFrO2Nhc2UgNzpyPXQucmVhZEVudW0oKSxlLnNldFN0YXRlKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5Qcm9wb3NhbC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDswIT09KHI9ZS5nZXRQcm9wb3NhbElkKCkpJiZ0LndyaXRlSW50NjQoMSxyKSwocj1lLmdldFByb3Bvc2VyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKSwocj1lLmdldFBhcmFtZXRlcnNNYXAoITApKSYmci5nZXRMZW5ndGgoKT4wJiZyLnNlcmlhbGl6ZUJpbmFyeSgzLHQsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50NjQsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50NjQpLDAhPT0ocj1lLmdldEV4cGlyYXRpb25UaW1lKCkpJiZ0LndyaXRlSW50NjQoNCxyKSwwIT09KHI9ZS5nZXRDcmVhdGVUaW1lKCkpJiZ0LndyaXRlSW50NjQoNSxyKSwocj1lLmdldEFwcHJvdmFsc0xpc3RfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkQnl0ZXMoNixyKSwwIT09KHI9ZS5nZXRTdGF0ZSgpKSYmdC53cml0ZUVudW0oNyxyKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLlN0YXRlPXtQRU5ESU5HOjAsRElTQVBQUk9WRUQ6MSxBUFBST1ZFRDoyLENBTkNFTEVEOjN9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuZ2V0UHJvcG9zYWxJZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsMCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuc2V0UHJvcG9zYWxJZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5nZXRQcm9wb3NlckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5nZXRQcm9wb3NlckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRQcm9wb3NlckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuZ2V0UHJvcG9zZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFByb3Bvc2VyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5zZXRQcm9wb3NlckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzTWFwPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2UuZ2V0TWFwRmllbGQodGhpcywzLGUsbnVsbCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuY2xlYXJQYXJhbWV0ZXJzTWFwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UGFyYW1ldGVyc01hcCgpLmNsZWFyKCksdGhpc30sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5nZXRFeHBpcmF0aW9uVGltZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsMCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuc2V0RXhwaXJhdGlvblRpbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuZ2V0Q3JlYXRlVGltZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDUsMCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuc2V0Q3JlYXRlVGltZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNSxlKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsLnByb3RvdHlwZS5nZXRBcHByb3ZhbHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRSZXBlYXRlZEZpZWxkKHRoaXMsNil9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuZ2V0QXBwcm92YWxzTGlzdF9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNMaXN0QXNCNjQodGhpcy5nZXRBcHByb3ZhbHNMaXN0KCkpfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWwucHJvdG90eXBlLmdldEFwcHJvdmFsc0xpc3RfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNMaXN0QXNVOCh0aGlzLmdldEFwcHJvdmFsc0xpc3QoKSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuc2V0QXBwcm92YWxzTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldEZpZWxkKHRoaXMsNixlfHxbXSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuYWRkQXBwcm92YWxzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkRmllbGQodGhpcyw2LGUsdCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuY2xlYXJBcHByb3ZhbHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0QXBwcm92YWxzTGlzdChbXSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbC5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw3LDApfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWwucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zRW51bUZpZWxkKHRoaXMsNyxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17ZXhjaGFuZ2VJZDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCksY3JlYXRvckFkZHJlc3M6dC5nZXRDcmVhdG9yQWRkcmVzc19hc0I2NCgpLGNyZWF0ZVRpbWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApLGZpcnN0VG9rZW5JZDp0LmdldEZpcnN0VG9rZW5JZF9hc0I2NCgpLGZpcnN0VG9rZW5CYWxhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNywwKSxzZWNvbmRUb2tlbklkOnQuZ2V0U2Vjb25kVG9rZW5JZF9hc0I2NCgpLHNlY29uZFRva2VuQmFsYW5jZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDksMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLkV4Y2hhbmdlLmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uRXhjaGFuZ2U7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkSW50NjQoKTtlLnNldEV4Y2hhbmdlSWQocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldENyZWF0b3JBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEludDY0KCksZS5zZXRDcmVhdGVUaW1lKHIpO2JyZWFrO2Nhc2UgNjpyPXQucmVhZEJ5dGVzKCksZS5zZXRGaXJzdFRva2VuSWQocik7YnJlYWs7Y2FzZSA3OnI9dC5yZWFkSW50NjQoKSxlLnNldEZpcnN0VG9rZW5CYWxhbmNlKHIpO2JyZWFrO2Nhc2UgODpyPXQucmVhZEJ5dGVzKCksZS5zZXRTZWNvbmRUb2tlbklkKHIpO2JyZWFrO2Nhc2UgOTpyPXQucmVhZEludDY0KCksZS5zZXRTZWNvbmRUb2tlbkJhbGFuY2Uocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkV4Y2hhbmdlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOzAhPT0ocj1lLmdldEV4Y2hhbmdlSWQoKSkmJnQud3JpdGVJbnQ2NCgxLHIpLChyPWUuZ2V0Q3JlYXRvckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDIsciksMCE9PShyPWUuZ2V0Q3JlYXRlVGltZSgpKSYmdC53cml0ZUludDY0KDMsciksKHI9ZS5nZXRGaXJzdFRva2VuSWRfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDYsciksMCE9PShyPWUuZ2V0Rmlyc3RUb2tlbkJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCg3LHIpLChyPWUuZ2V0U2Vjb25kVG9rZW5JZF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoOCxyKSwwIT09KHI9ZS5nZXRTZWNvbmRUb2tlbkJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCg5LHIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLmdldEV4Y2hhbmdlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLDApfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLnNldEV4Y2hhbmdlSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuZ2V0Q3JlYXRvckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5nZXRDcmVhdG9yQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldENyZWF0b3JBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLmdldENyZWF0b3JBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldENyZWF0b3JBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLnNldENyZWF0b3JBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuZ2V0Q3JlYXRlVGltZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsMCl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuc2V0Q3JlYXRlVGltZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5nZXRGaXJzdFRva2VuSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw2LCIiKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5nZXRGaXJzdFRva2VuSWRfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRGaXJzdFRva2VuSWQoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuZ2V0Rmlyc3RUb2tlbklkX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEZpcnN0VG9rZW5JZCgpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5zZXRGaXJzdFRva2VuSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsNixlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5nZXRGaXJzdFRva2VuQmFsYW5jZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDcsMCl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuc2V0Rmlyc3RUb2tlbkJhbGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDcsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuZ2V0U2Vjb25kVG9rZW5JZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDgsIiIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLmdldFNlY29uZFRva2VuSWRfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRTZWNvbmRUb2tlbklkKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2UucHJvdG90eXBlLmdldFNlY29uZFRva2VuSWRfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0U2Vjb25kVG9rZW5JZCgpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5zZXRTZWNvbmRUb2tlbklkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDgsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZS5wcm90b3R5cGUuZ2V0U2Vjb25kVG9rZW5CYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsOSwwKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlLnByb3RvdHlwZS5zZXRTZWNvbmRUb2tlbkJhbGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDksZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnJlcGVhdGVkRmllbGRzXz1bNSw3LDE2LDMzXSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByLG89e2FjY291bnROYW1lOnQuZ2V0QWNjb3VudE5hbWVfYXNCNjQoKSx0eXBlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSxhZGRyZXNzOnQuZ2V0QWRkcmVzc19hc0I2NCgpLGJhbGFuY2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0LDApLHZvdGVzTGlzdDpuLk1lc3NhZ2UudG9PYmplY3RMaXN0KHQuZ2V0Vm90ZXNMaXN0KCksVHJvbldlYlByb3RvLlZvdGUudG9PYmplY3QsZSksYXNzZXRNYXA6KHI9dC5nZXRBc3NldE1hcCgpKT9yLnRvT2JqZWN0KGUsdm9pZCAwKTpbXSxhc3NldHYyTWFwOihyPXQuZ2V0QXNzZXR2Mk1hcCgpKT9yLnRvT2JqZWN0KGUsdm9pZCAwKTpbXSxmcm96ZW5MaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXRGcm96ZW5MaXN0KCksVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnRvT2JqZWN0LGUpLG5ldFVzYWdlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsOCwwKSxhY3F1aXJlZERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGg6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0MSwwKSxkZWxlZ2F0ZWRGcm96ZW5CYWxhbmNlRm9yQmFuZHdpZHRoOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNDIsMCksb2xkVHJvblBvd2VyOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNDYsMCksdHJvblBvd2VyOihyPXQuZ2V0VHJvblBvd2VyKCkpJiZUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4udG9PYmplY3QoZSxyKSxhc3NldE9wdGltaXplZDpuLk1lc3NhZ2UuZ2V0Qm9vbGVhbkZpZWxkV2l0aERlZmF1bHQodCw2MCwhMSksY3JlYXRlVGltZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDksMCksbGF0ZXN0T3ByYXRpb25UaW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTAsMCksYWxsb3dhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTEsMCksbGF0ZXN0V2l0aGRyYXdUaW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTIsMCksY29kZTp0LmdldENvZGVfYXNCNjQoKSxpc1dpdG5lc3M6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsMTQsITEpLGlzQ29tbWl0dGVlOm4uTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdCh0LDE1LCExKSxmcm96ZW5TdXBwbHlMaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXRGcm96ZW5TdXBwbHlMaXN0KCksVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnRvT2JqZWN0LGUpLGFzc2V0SXNzdWVkTmFtZTp0LmdldEFzc2V0SXNzdWVkTmFtZV9hc0I2NCgpLGFzc2V0SXNzdWVkSWQ6dC5nZXRBc3NldElzc3VlZElkX2FzQjY0KCksbGF0ZXN0QXNzZXRPcGVyYXRpb25UaW1lTWFwOihyPXQuZ2V0TGF0ZXN0QXNzZXRPcGVyYXRpb25UaW1lTWFwKCkpP3IudG9PYmplY3QoZSx2b2lkIDApOltdLGxhdGVzdEFzc2V0T3BlcmF0aW9uVGltZXYyTWFwOihyPXQuZ2V0TGF0ZXN0QXNzZXRPcGVyYXRpb25UaW1ldjJNYXAoKSk/ci50b09iamVjdChlLHZvaWQgMCk6W10sZnJlZU5ldFVzYWdlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTksMCksZnJlZUFzc2V0TmV0VXNhZ2VNYXA6KHI9dC5nZXRGcmVlQXNzZXROZXRVc2FnZU1hcCgpKT9yLnRvT2JqZWN0KGUsdm9pZCAwKTpbXSxmcmVlQXNzZXROZXRVc2FnZXYyTWFwOihyPXQuZ2V0RnJlZUFzc2V0TmV0VXNhZ2V2Mk1hcCgpKT9yLnRvT2JqZWN0KGUsdm9pZCAwKTpbXSxsYXRlc3RDb25zdW1lVGltZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIxLDApLGxhdGVzdENvbnN1bWVGcmVlVGltZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIyLDApLGFjY291bnRJZDp0LmdldEFjY291bnRJZF9hc0I2NCgpLGFjY291bnRSZXNvdXJjZToocj10LmdldEFjY291bnRSZXNvdXJjZSgpKSYmVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnRvT2JqZWN0KGUsciksY29kZWhhc2g6dC5nZXRDb2RlaGFzaF9hc0I2NCgpLG93bmVyUGVybWlzc2lvbjoocj10LmdldE93bmVyUGVybWlzc2lvbigpKSYmVHJvbldlYlByb3RvLlBlcm1pc3Npb24udG9PYmplY3QoZSxyKSx3aXRuZXNzUGVybWlzc2lvbjoocj10LmdldFdpdG5lc3NQZXJtaXNzaW9uKCkpJiZUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi50b09iamVjdChlLHIpLGFjdGl2ZVBlcm1pc3Npb25MaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXRBY3RpdmVQZXJtaXNzaW9uTGlzdCgpLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnRvT2JqZWN0LGUpfTtyZXR1cm4gZSYmKG8uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksb30pLFRyb25XZWJQcm90by5BY2NvdW50LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQWNjb3VudDtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldEFjY291bnROYW1lKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEVudW0oKSxlLnNldFR5cGUocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkQnl0ZXMoKSxlLnNldEFkZHJlc3Mocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkSW50NjQoKSxlLnNldEJhbGFuY2Uocik7YnJlYWs7Y2FzZSA1OnI9bmV3IFRyb25XZWJQcm90by5Wb3RlLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uVm90ZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkVm90ZXMocik7YnJlYWs7Y2FzZSA2OnI9ZS5nZXRBc3NldE1hcCgpLHQucmVhZE1lc3NhZ2UociwoZnVuY3Rpb24oZSx0KXtuLk1hcC5kZXNlcmlhbGl6ZUJpbmFyeShlLHQsbi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTdHJpbmcsbi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRJbnQ2NCxudWxsLCIiLDApfSkpO2JyZWFrO2Nhc2UgNTY6cj1lLmdldEFzc2V0djJNYXAoKSx0LnJlYWRNZXNzYWdlKHIsKGZ1bmN0aW9uKGUsdCl7bi5NYXAuZGVzZXJpYWxpemVCaW5hcnkoZSx0LG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3RyaW5nLG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjQsbnVsbCwiIiwwKX0pKTticmVhaztjYXNlIDc6cj1uZXcgVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLmFkZEZyb3plbihyKTticmVhaztjYXNlIDg6cj10LnJlYWRJbnQ2NCgpLGUuc2V0TmV0VXNhZ2Uocik7YnJlYWs7Y2FzZSA0MTpyPXQucmVhZEludDY0KCksZS5zZXRBY3F1aXJlZERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGgocik7YnJlYWs7Y2FzZSA0MjpyPXQucmVhZEludDY0KCksZS5zZXREZWxlZ2F0ZWRGcm96ZW5CYWxhbmNlRm9yQmFuZHdpZHRoKHIpO2JyZWFrO2Nhc2UgNDY6cj10LnJlYWRJbnQ2NCgpLGUuc2V0T2xkVHJvblBvd2VyKHIpO2JyZWFrO2Nhc2UgNDc6cj1uZXcgVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldFRyb25Qb3dlcihyKTticmVhaztjYXNlIDYwOnI9dC5yZWFkQm9vbCgpLGUuc2V0QXNzZXRPcHRpbWl6ZWQocik7YnJlYWs7Y2FzZSA5OnI9dC5yZWFkSW50NjQoKSxlLnNldENyZWF0ZVRpbWUocik7YnJlYWs7Y2FzZSAxMDpyPXQucmVhZEludDY0KCksZS5zZXRMYXRlc3RPcHJhdGlvblRpbWUocik7YnJlYWs7Y2FzZSAxMTpyPXQucmVhZEludDY0KCksZS5zZXRBbGxvd2FuY2Uocik7YnJlYWs7Y2FzZSAxMjpyPXQucmVhZEludDY0KCksZS5zZXRMYXRlc3RXaXRoZHJhd1RpbWUocik7YnJlYWs7Y2FzZSAxMzpyPXQucmVhZEJ5dGVzKCksZS5zZXRDb2RlKHIpO2JyZWFrO2Nhc2UgMTQ6cj10LnJlYWRCb29sKCksZS5zZXRJc1dpdG5lc3Mocik7YnJlYWs7Y2FzZSAxNTpyPXQucmVhZEJvb2woKSxlLnNldElzQ29tbWl0dGVlKHIpO2JyZWFrO2Nhc2UgMTY6cj1uZXcgVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLmFkZEZyb3plblN1cHBseShyKTticmVhaztjYXNlIDE3OnI9dC5yZWFkQnl0ZXMoKSxlLnNldEFzc2V0SXNzdWVkTmFtZShyKTticmVhaztjYXNlIDU3OnI9dC5yZWFkQnl0ZXMoKSxlLnNldEFzc2V0SXNzdWVkSWQocik7YnJlYWs7Y2FzZSAxODpyPWUuZ2V0TGF0ZXN0QXNzZXRPcGVyYXRpb25UaW1lTWFwKCksdC5yZWFkTWVzc2FnZShyLChmdW5jdGlvbihlLHQpe24uTWFwLmRlc2VyaWFsaXplQmluYXJ5KGUsdCxuLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZFN0cmluZyxuLkJpbmFyeVJlYWRlci5wcm90b3R5cGUucmVhZEludDY0LG51bGwsIiIsMCl9KSk7YnJlYWs7Y2FzZSA1ODpyPWUuZ2V0TGF0ZXN0QXNzZXRPcGVyYXRpb25UaW1ldjJNYXAoKSx0LnJlYWRNZXNzYWdlKHIsKGZ1bmN0aW9uKGUsdCl7bi5NYXAuZGVzZXJpYWxpemVCaW5hcnkoZSx0LG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3RyaW5nLG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjQsbnVsbCwiIiwwKX0pKTticmVhaztjYXNlIDE5OnI9dC5yZWFkSW50NjQoKSxlLnNldEZyZWVOZXRVc2FnZShyKTticmVhaztjYXNlIDIwOnI9ZS5nZXRGcmVlQXNzZXROZXRVc2FnZU1hcCgpLHQucmVhZE1lc3NhZ2UociwoZnVuY3Rpb24oZSx0KXtuLk1hcC5kZXNlcmlhbGl6ZUJpbmFyeShlLHQsbi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRTdHJpbmcsbi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRJbnQ2NCxudWxsLCIiLDApfSkpO2JyZWFrO2Nhc2UgNTk6cj1lLmdldEZyZWVBc3NldE5ldFVzYWdldjJNYXAoKSx0LnJlYWRNZXNzYWdlKHIsKGZ1bmN0aW9uKGUsdCl7bi5NYXAuZGVzZXJpYWxpemVCaW5hcnkoZSx0LG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkU3RyaW5nLG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjQsbnVsbCwiIiwwKX0pKTticmVhaztjYXNlIDIxOnI9dC5yZWFkSW50NjQoKSxlLnNldExhdGVzdENvbnN1bWVUaW1lKHIpO2JyZWFrO2Nhc2UgMjI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0TGF0ZXN0Q29uc3VtZUZyZWVUaW1lKHIpO2JyZWFrO2Nhc2UgMjM6cj10LnJlYWRCeXRlcygpLGUuc2V0QWNjb3VudElkKHIpO2JyZWFrO2Nhc2UgMjY6cj1uZXcgVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldEFjY291bnRSZXNvdXJjZShyKTticmVhaztjYXNlIDMwOnI9dC5yZWFkQnl0ZXMoKSxlLnNldENvZGVoYXNoKHIpO2JyZWFrO2Nhc2UgMzE6cj1uZXcgVHJvbldlYlByb3RvLlBlcm1pc3Npb24sdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRPd25lclBlcm1pc3Npb24ocik7YnJlYWs7Y2FzZSAzMjpyPW5ldyBUcm9uV2ViUHJvdG8uUGVybWlzc2lvbix0LnJlYWRNZXNzYWdlKHIsVHJvbldlYlByb3RvLlBlcm1pc3Npb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldFdpdG5lc3NQZXJtaXNzaW9uKHIpO2JyZWFrO2Nhc2UgMzM6cj1uZXcgVHJvbldlYlByb3RvLlBlcm1pc3Npb24sdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5hZGRBY3RpdmVQZXJtaXNzaW9uKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnQuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldEFjY291bnROYW1lX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldFR5cGUoKSkmJnQud3JpdGVFbnVtKDIsciksKHI9ZS5nZXRBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygzLHIpLDAhPT0ocj1lLmdldEJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCg0LHIpLChyPWUuZ2V0Vm90ZXNMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDUscixUcm9uV2ViUHJvdG8uVm90ZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXRBc3NldE1hcCghMCkpJiZyLmdldExlbmd0aCgpPjAmJnIuc2VyaWFsaXplQmluYXJ5KDYsdCxuLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTdHJpbmcsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50NjQpLChyPWUuZ2V0QXNzZXR2Mk1hcCghMCkpJiZyLmdldExlbmd0aCgpPjAmJnIuc2VyaWFsaXplQmluYXJ5KDU2LHQsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3RyaW5nLG4uQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDY0KSwocj1lLmdldEZyb3plbkxpc3QoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZE1lc3NhZ2UoNyxyLFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksMCE9PShyPWUuZ2V0TmV0VXNhZ2UoKSkmJnQud3JpdGVJbnQ2NCg4LHIpLDAhPT0ocj1lLmdldEFjcXVpcmVkRGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckJhbmR3aWR0aCgpKSYmdC53cml0ZUludDY0KDQxLHIpLDAhPT0ocj1lLmdldERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGgoKSkmJnQud3JpdGVJbnQ2NCg0MixyKSwwIT09KHI9ZS5nZXRPbGRUcm9uUG93ZXIoKSkmJnQud3JpdGVJbnQ2NCg0NixyKSxudWxsIT0ocj1lLmdldFRyb25Qb3dlcigpKSYmdC53cml0ZU1lc3NhZ2UoNDcscixUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLChyPWUuZ2V0QXNzZXRPcHRpbWl6ZWQoKSkmJnQud3JpdGVCb29sKDYwLHIpLDAhPT0ocj1lLmdldENyZWF0ZVRpbWUoKSkmJnQud3JpdGVJbnQ2NCg5LHIpLDAhPT0ocj1lLmdldExhdGVzdE9wcmF0aW9uVGltZSgpKSYmdC53cml0ZUludDY0KDEwLHIpLDAhPT0ocj1lLmdldEFsbG93YW5jZSgpKSYmdC53cml0ZUludDY0KDExLHIpLDAhPT0ocj1lLmdldExhdGVzdFdpdGhkcmF3VGltZSgpKSYmdC53cml0ZUludDY0KDEyLHIpLChyPWUuZ2V0Q29kZV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMTMsciksKHI9ZS5nZXRJc1dpdG5lc3MoKSkmJnQud3JpdGVCb29sKDE0LHIpLChyPWUuZ2V0SXNDb21taXR0ZWUoKSkmJnQud3JpdGVCb29sKDE1LHIpLChyPWUuZ2V0RnJvemVuU3VwcGx5TGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkTWVzc2FnZSgxNixyLFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXRBc3NldElzc3VlZE5hbWVfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDE3LHIpLChyPWUuZ2V0QXNzZXRJc3N1ZWRJZF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoNTcsciksKHI9ZS5nZXRMYXRlc3RBc3NldE9wZXJhdGlvblRpbWVNYXAoITApKSYmci5nZXRMZW5ndGgoKT4wJiZyLnNlcmlhbGl6ZUJpbmFyeSgxOCx0LG4uQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZVN0cmluZyxuLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVJbnQ2NCksKHI9ZS5nZXRMYXRlc3RBc3NldE9wZXJhdGlvblRpbWV2Mk1hcCghMCkpJiZyLmdldExlbmd0aCgpPjAmJnIuc2VyaWFsaXplQmluYXJ5KDU4LHQsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3RyaW5nLG4uQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDY0KSwwIT09KHI9ZS5nZXRGcmVlTmV0VXNhZ2UoKSkmJnQud3JpdGVJbnQ2NCgxOSxyKSwocj1lLmdldEZyZWVBc3NldE5ldFVzYWdlTWFwKCEwKSkmJnIuZ2V0TGVuZ3RoKCk+MCYmci5zZXJpYWxpemVCaW5hcnkoMjAsdCxuLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVTdHJpbmcsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlSW50NjQpLChyPWUuZ2V0RnJlZUFzc2V0TmV0VXNhZ2V2Mk1hcCghMCkpJiZyLmdldExlbmd0aCgpPjAmJnIuc2VyaWFsaXplQmluYXJ5KDU5LHQsbi5CaW5hcnlXcml0ZXIucHJvdG90eXBlLndyaXRlU3RyaW5nLG4uQmluYXJ5V3JpdGVyLnByb3RvdHlwZS53cml0ZUludDY0KSwwIT09KHI9ZS5nZXRMYXRlc3RDb25zdW1lVGltZSgpKSYmdC53cml0ZUludDY0KDIxLHIpLDAhPT0ocj1lLmdldExhdGVzdENvbnN1bWVGcmVlVGltZSgpKSYmdC53cml0ZUludDY0KDIyLHIpLChyPWUuZ2V0QWNjb3VudElkX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyMyxyKSxudWxsIT0ocj1lLmdldEFjY291bnRSZXNvdXJjZSgpKSYmdC53cml0ZU1lc3NhZ2UoMjYscixUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2Uuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLChyPWUuZ2V0Q29kZWhhc2hfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDMwLHIpLG51bGwhPShyPWUuZ2V0T3duZXJQZXJtaXNzaW9uKCkpJiZ0LndyaXRlTWVzc2FnZSgzMSxyLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSxudWxsIT0ocj1lLmdldFdpdG5lc3NQZXJtaXNzaW9uKCkpJiZ0LndyaXRlTWVzc2FnZSgzMixyLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSwocj1lLmdldEFjdGl2ZVBlcm1pc3Npb25MaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDMzLHIsVHJvbldlYlByb3RvLlBlcm1pc3Npb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtmcm96ZW5CYWxhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSwwKSxleHBpcmVUaW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRJbnQ2NCgpO2Uuc2V0RnJvemVuQmFsYW5jZShyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0RXhwaXJlVGltZShyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7MCE9PShyPWUuZ2V0RnJvemVuQmFsYW5jZSgpKSYmdC53cml0ZUludDY0KDEsciksMCE9PShyPWUuZ2V0RXhwaXJlVGltZSgpKSYmdC53cml0ZUludDY0KDIscil9LFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi5wcm90b3R5cGUuZ2V0RnJvemVuQmFsYW5jZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsMCl9LFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbi5wcm90b3R5cGUuc2V0RnJvemVuQmFsYW5jZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnByb3RvdHlwZS5nZXRFeHBpcmVUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnByb3RvdHlwZS5zZXRFeHBpcmVUaW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByLG89e2VuZXJneVVzYWdlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSwwKSxmcm96ZW5CYWxhbmNlRm9yRW5lcmd5OihyPXQuZ2V0RnJvemVuQmFsYW5jZUZvckVuZXJneSgpKSYmVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnRvT2JqZWN0KGUsciksbGF0ZXN0Q29uc3VtZVRpbWVGb3JFbmVyZ3k6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApLGFjcXVpcmVkRGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckVuZXJneTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDQsMCksZGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckVuZXJneTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDUsMCksc3RvcmFnZUxpbWl0Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNiwwKSxzdG9yYWdlVXNhZ2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw3LDApLGxhdGVzdEV4Y2hhbmdlU3RvcmFnZVRpbWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw4LDApfTtyZXR1cm4gZSYmKG8uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksb30pLFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlO3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEludDY0KCk7ZS5zZXRFbmVyZ3lVc2FnZShyKTticmVhaztjYXNlIDI6cj1uZXcgVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldEZyb3plbkJhbGFuY2VGb3JFbmVyZ3kocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkSW50NjQoKSxlLnNldExhdGVzdENvbnN1bWVUaW1lRm9yRW5lcmd5KHIpO2JyZWFrO2Nhc2UgNDpyPXQucmVhZEludDY0KCksZS5zZXRBY3F1aXJlZERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JFbmVyZ3kocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JFbmVyZ3kocik7YnJlYWs7Y2FzZSA2OnI9dC5yZWFkSW50NjQoKSxlLnNldFN0b3JhZ2VMaW1pdChyKTticmVhaztjYXNlIDc6cj10LnJlYWRJbnQ2NCgpLGUuc2V0U3RvcmFnZVVzYWdlKHIpO2JyZWFrO2Nhc2UgODpyPXQucmVhZEludDY0KCksZS5zZXRMYXRlc3RFeGNoYW5nZVN0b3JhZ2VUaW1lKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDswIT09KHI9ZS5nZXRFbmVyZ3lVc2FnZSgpKSYmdC53cml0ZUludDY0KDEsciksbnVsbCE9KHI9ZS5nZXRGcm96ZW5CYWxhbmNlRm9yRW5lcmd5KCkpJiZ0LndyaXRlTWVzc2FnZSgyLHIsVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSwwIT09KHI9ZS5nZXRMYXRlc3RDb25zdW1lVGltZUZvckVuZXJneSgpKSYmdC53cml0ZUludDY0KDMsciksMCE9PShyPWUuZ2V0QWNxdWlyZWREZWxlZ2F0ZWRGcm96ZW5CYWxhbmNlRm9yRW5lcmd5KCkpJiZ0LndyaXRlSW50NjQoNCxyKSwwIT09KHI9ZS5nZXREZWxlZ2F0ZWRGcm96ZW5CYWxhbmNlRm9yRW5lcmd5KCkpJiZ0LndyaXRlSW50NjQoNSxyKSwwIT09KHI9ZS5nZXRTdG9yYWdlTGltaXQoKSkmJnQud3JpdGVJbnQ2NCg2LHIpLDAhPT0ocj1lLmdldFN0b3JhZ2VVc2FnZSgpKSYmdC53cml0ZUludDY0KDcsciksMCE9PShyPWUuZ2V0TGF0ZXN0RXhjaGFuZ2VTdG9yYWdlVGltZSgpKSYmdC53cml0ZUludDY0KDgscil9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5wcm90b3R5cGUuZ2V0RW5lcmd5VXNhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UucHJvdG90eXBlLnNldEVuZXJneVVzYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UucHJvdG90eXBlLmdldEZyb3plbkJhbGFuY2VGb3JFbmVyZ3k9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbiwyKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5zZXRGcm96ZW5CYWxhbmNlRm9yRW5lcmd5PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5jbGVhckZyb3plbkJhbGFuY2VGb3JFbmVyZ3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRGcm96ZW5CYWxhbmNlRm9yRW5lcmd5KHZvaWQgMCl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5wcm90b3R5cGUuaGFzRnJvemVuQmFsYW5jZUZvckVuZXJneT1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywyKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5nZXRMYXRlc3RDb25zdW1lVGltZUZvckVuZXJneT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsMCl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5wcm90b3R5cGUuc2V0TGF0ZXN0Q29uc3VtZVRpbWVGb3JFbmVyZ3k9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5wcm90b3R5cGUuZ2V0QWNxdWlyZWREZWxlZ2F0ZWRGcm96ZW5CYWxhbmNlRm9yRW5lcmd5PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5zZXRBY3F1aXJlZERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JFbmVyZ3k9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5wcm90b3R5cGUuZ2V0RGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckVuZXJneT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDUsMCl9LFRyb25XZWJQcm90by5BY2NvdW50LkFjY291bnRSZXNvdXJjZS5wcm90b3R5cGUuc2V0RGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckVuZXJneT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNSxlKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5nZXRTdG9yYWdlTGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw2LDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UucHJvdG90eXBlLnNldFN0b3JhZ2VMaW1pdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNixlKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5nZXRTdG9yYWdlVXNhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw3LDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UucHJvdG90eXBlLnNldFN0b3JhZ2VVc2FnZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNyxlKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5nZXRMYXRlc3RFeGNoYW5nZVN0b3JhZ2VUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsOCwwKX0sVHJvbldlYlByb3RvLkFjY291bnQuQWNjb3VudFJlc291cmNlLnByb3RvdHlwZS5zZXRMYXRlc3RFeGNoYW5nZVN0b3JhZ2VUaW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw4LGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QWNjb3VudE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldEFjY291bnROYW1lX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0QWNjb3VudE5hbWUoKSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBY2NvdW50TmFtZV9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRBY2NvdW50TmFtZSgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldEFjY291bnROYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldFR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsIiIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRCYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldEJhbGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRWb3Rlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlZvdGUsNSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRWb3Rlc0xpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDUsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5hZGRWb3Rlcz1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDUsZSxUcm9uV2ViUHJvdG8uVm90ZSx0KX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmNsZWFyVm90ZXNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0Vm90ZXNMaXN0KFtdKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldEFzc2V0TWFwPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2UuZ2V0TWFwRmllbGQodGhpcyw2LGUsbnVsbCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5jbGVhckFzc2V0TWFwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXNzZXRNYXAoKS5jbGVhcigpLHRoaXN9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBc3NldHYyTWFwPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2UuZ2V0TWFwRmllbGQodGhpcyw1NixlLG51bGwpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuY2xlYXJBc3NldHYyTWFwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXNzZXR2Mk1hcCgpLmNsZWFyKCksdGhpc30sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldEZyb3plbkxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLkFjY291bnQuRnJvemVuLDcpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0RnJvemVuTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsNyxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmFkZEZyb3plbj1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDcsZSxUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4sdCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5jbGVhckZyb3plbkxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRGcm96ZW5MaXN0KFtdKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldE5ldFVzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsOCwwKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldE5ldFVzYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw4LGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QWNxdWlyZWREZWxlZ2F0ZWRGcm96ZW5CYWxhbmNlRm9yQmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNDEsMCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRBY3F1aXJlZERlbGVnYXRlZEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQxLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0RGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQyLDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0RGVsZWdhdGVkRnJvemVuQmFsYW5jZUZvckJhbmR3aWR0aD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNDIsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRPbGRUcm9uUG93ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw0NiwwKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldE9sZFRyb25Qb3dlcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNDYsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRUcm9uUG93ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbiw0Nyl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRUcm9uUG93ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcyw0NyxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmNsZWFyVHJvblBvd2VyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0VHJvblBvd2VyKHZvaWQgMCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5oYXNUcm9uUG93ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9bi5NZXNzYWdlLmdldEZpZWxkKHRoaXMsNDcpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QXNzZXRPcHRpbWl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHRoaXMsNjAsITEpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0QXNzZXRPcHRpbWl6ZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCb29sZWFuRmllbGQodGhpcyw2MCxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldENyZWF0ZVRpbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw5LDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0Q3JlYXRlVGltZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsOSxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldExhdGVzdE9wcmF0aW9uVGltZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEwLDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0TGF0ZXN0T3ByYXRpb25UaW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxMCxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldEFsbG93YW5jZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDExLDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0QWxsb3dhbmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxMSxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldExhdGVzdFdpdGhkcmF3VGltZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEyLDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0TGF0ZXN0V2l0aGRyYXdUaW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxMixlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldENvZGU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxMywiIil9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRDb2RlX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0Q29kZSgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldENvZGVfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0Q29kZSgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldENvZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMTMsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRJc1dpdG5lc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTQsITEpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0SXNXaXRuZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQm9vbGVhbkZpZWxkKHRoaXMsMTQsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRJc0NvbW1pdHRlZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0Qm9vbGVhbkZpZWxkV2l0aERlZmF1bHQodGhpcywxNSwhMSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRJc0NvbW1pdHRlZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0Jvb2xlYW5GaWVsZCh0aGlzLDE1LGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0RnJvemVuU3VwcGx5TGlzdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uQWNjb3VudC5Gcm96ZW4sMTYpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0RnJvemVuU3VwcGx5TGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMTYsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5hZGRGcm96ZW5TdXBwbHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywxNixlLFRyb25XZWJQcm90by5BY2NvdW50LkZyb3plbix0KX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmNsZWFyRnJvemVuU3VwcGx5TGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEZyb3plblN1cHBseUxpc3QoW10pfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QXNzZXRJc3N1ZWROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTcsIiIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QXNzZXRJc3N1ZWROYW1lX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0QXNzZXRJc3N1ZWROYW1lKCkpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QXNzZXRJc3N1ZWROYW1lX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEFzc2V0SXNzdWVkTmFtZSgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldEFzc2V0SXNzdWVkTmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxNyxlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldEFzc2V0SXNzdWVkSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw1NywiIil9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBc3NldElzc3VlZElkX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0QXNzZXRJc3N1ZWRJZCgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldEFzc2V0SXNzdWVkSWRfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QXNzZXRJc3N1ZWRJZCgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldEFzc2V0SXNzdWVkSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsNTcsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRMYXRlc3RBc3NldE9wZXJhdGlvblRpbWVNYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5nZXRNYXBGaWVsZCh0aGlzLDE4LGUsbnVsbCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5jbGVhckxhdGVzdEFzc2V0T3BlcmF0aW9uVGltZU1hcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldExhdGVzdEFzc2V0T3BlcmF0aW9uVGltZU1hcCgpLmNsZWFyKCksdGhpc30sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldExhdGVzdEFzc2V0T3BlcmF0aW9uVGltZXYyTWFwPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2UuZ2V0TWFwRmllbGQodGhpcyw1OCxlLG51bGwpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuY2xlYXJMYXRlc3RBc3NldE9wZXJhdGlvblRpbWV2Mk1hcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldExhdGVzdEFzc2V0T3BlcmF0aW9uVGltZXYyTWFwKCkuY2xlYXIoKSx0aGlzfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0RnJlZU5ldFVzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTksMCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRGcmVlTmV0VXNhZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDE5LGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0RnJlZUFzc2V0TmV0VXNhZ2VNYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5nZXRNYXBGaWVsZCh0aGlzLDIwLGUsbnVsbCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5jbGVhckZyZWVBc3NldE5ldFVzYWdlTWFwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RnJlZUFzc2V0TmV0VXNhZ2VNYXAoKS5jbGVhcigpLHRoaXN9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRGcmVlQXNzZXROZXRVc2FnZXYyTWFwPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2UuZ2V0TWFwRmllbGQodGhpcyw1OSxlLG51bGwpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuY2xlYXJGcmVlQXNzZXROZXRVc2FnZXYyTWFwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0RnJlZUFzc2V0TmV0VXNhZ2V2Mk1hcCgpLmNsZWFyKCksdGhpc30sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldExhdGVzdENvbnN1bWVUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMjEsMCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5zZXRMYXRlc3RDb25zdW1lVGltZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMjEsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRMYXRlc3RDb25zdW1lRnJlZVRpbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyMiwwKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldExhdGVzdENvbnN1bWVGcmVlVGltZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMjIsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBY2NvdW50SWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyMywiIil9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBY2NvdW50SWRfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBY2NvdW50SWQoKSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRBY2NvdW50SWRfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QWNjb3VudElkKCkpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0QWNjb3VudElkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIzLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QWNjb3VudFJlc291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uQWNjb3VudC5BY2NvdW50UmVzb3VyY2UsMjYpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0QWNjb3VudFJlc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsMjYsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5jbGVhckFjY291bnRSZXNvdXJjZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEFjY291bnRSZXNvdXJjZSh2b2lkIDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuaGFzQWNjb3VudFJlc291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPW4uTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDI2KX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldENvZGVoYXNoPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMzAsIiIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0Q29kZWhhc2hfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRDb2RlaGFzaCgpKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmdldENvZGVoYXNoX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldENvZGVoYXNoKCkpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0Q29kZWhhc2g9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMzAsZSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRPd25lclBlcm1pc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLDMxKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLnNldE93bmVyUGVybWlzc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDMxLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuY2xlYXJPd25lclBlcm1pc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRPd25lclBlcm1pc3Npb24odm9pZCAwKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmhhc093bmVyUGVybWlzc2lvbj1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywzMSl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5nZXRXaXRuZXNzUGVybWlzc2lvbj1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlBlcm1pc3Npb24sMzIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0V2l0bmVzc1Blcm1pc3Npb249ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywzMixlKX0sVHJvbldlYlByb3RvLkFjY291bnQucHJvdG90eXBlLmNsZWFyV2l0bmVzc1Blcm1pc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRXaXRuZXNzUGVybWlzc2lvbih2b2lkIDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuaGFzV2l0bmVzc1Blcm1pc3Npb249ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9bi5NZXNzYWdlLmdldEZpZWxkKHRoaXMsMzIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuZ2V0QWN0aXZlUGVybWlzc2lvbkxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlBlcm1pc3Npb24sMzMpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuc2V0QWN0aXZlUGVybWlzc2lvbkxpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDMzLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudC5wcm90b3R5cGUuYWRkQWN0aXZlUGVybWlzc2lvbj1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDMzLGUsVHJvbldlYlByb3RvLlBlcm1pc3Npb24sdCl9LFRyb25XZWJQcm90by5BY2NvdW50LnByb3RvdHlwZS5jbGVhckFjdGl2ZVBlcm1pc3Npb25MaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0QWN0aXZlUGVybWlzc2lvbkxpc3QoW10pfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLktleS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5LZXkudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLktleS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXthZGRyZXNzOnQuZ2V0QWRkcmVzc19hc0I2NCgpLHdlaWdodDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLktleS5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLktleTtyZXR1cm4gVHJvbldlYlByb3RvLktleS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLktleS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEludDY0KCksZS5zZXRXZWlnaHQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uS2V5LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5LZXkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uS2V5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRXZWlnaHQoKSkmJnQud3JpdGVJbnQ2NCgyLHIpfSxUcm9uV2ViUHJvdG8uS2V5LnByb3RvdHlwZS5nZXRBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5LZXkucHJvdG90eXBlLmdldEFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uS2V5LnByb3RvdHlwZS5nZXRBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5LZXkucHJvdG90eXBlLnNldEFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLktleS5wcm90b3R5cGUuZ2V0V2VpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLktleS5wcm90b3R5cGUuc2V0V2VpZ2h0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtmcm9tOnQuZ2V0RnJvbV9hc0I2NCgpLHRvOnQuZ2V0VG9fYXNCNjQoKSxmcm96ZW5CYWxhbmNlRm9yQmFuZHdpZHRoOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMywwKSxmcm96ZW5CYWxhbmNlRm9yRW5lcmd5Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwwKSxleHBpcmVUaW1lRm9yQmFuZHdpZHRoOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNSwwKSxleHBpcmVUaW1lRm9yRW5lcmd5Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNiwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZTtyZXR1cm4gVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0RnJvbShyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0VG8ocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkSW50NjQoKSxlLnNldEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGgocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkSW50NjQoKSxlLnNldEZyb3plbkJhbGFuY2VGb3JFbmVyZ3kocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldEV4cGlyZVRpbWVGb3JCYW5kd2lkdGgocik7YnJlYWs7Y2FzZSA2OnI9dC5yZWFkSW50NjQoKSxlLnNldEV4cGlyZVRpbWVGb3JFbmVyZ3kocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0RnJvbV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldFRvX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLDAhPT0ocj1lLmdldEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGgoKSkmJnQud3JpdGVJbnQ2NCgzLHIpLDAhPT0ocj1lLmdldEZyb3plbkJhbGFuY2VGb3JFbmVyZ3koKSkmJnQud3JpdGVJbnQ2NCg0LHIpLDAhPT0ocj1lLmdldEV4cGlyZVRpbWVGb3JCYW5kd2lkdGgoKSkmJnQud3JpdGVJbnQ2NCg1LHIpLDAhPT0ocj1lLmdldEV4cGlyZVRpbWVGb3JFbmVyZ3koKSkmJnQud3JpdGVJbnQ2NCg2LHIpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLmdldEZyb209ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS5nZXRGcm9tX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0RnJvbSgpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS5nZXRGcm9tX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEZyb20oKSl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZS5wcm90b3R5cGUuc2V0RnJvbT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLmdldFRvPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZS5wcm90b3R5cGUuZ2V0VG9fYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRUbygpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS5nZXRUb19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRUbygpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS5zZXRUbz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLmdldEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLDApfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLnNldEZyb3plbkJhbGFuY2VGb3JCYW5kd2lkdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZS5wcm90b3R5cGUuZ2V0RnJvemVuQmFsYW5jZUZvckVuZXJneT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsMCl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZWRSZXNvdXJjZS5wcm90b3R5cGUuc2V0RnJvemVuQmFsYW5jZUZvckVuZXJneT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS5nZXRFeHBpcmVUaW1lRm9yQmFuZHdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNSwwKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlZFJlc291cmNlLnByb3RvdHlwZS5zZXRFeHBpcmVUaW1lRm9yQmFuZHdpZHRoPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLmdldEV4cGlyZVRpbWVGb3JFbmVyZ3k9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw2LDApfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVkUmVzb3VyY2UucHJvdG90eXBlLnNldEV4cGlyZVRpbWVGb3JFbmVyZ3k9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDYsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uYXV0aG9yaXR5LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLmF1dGhvcml0eS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uYXV0aG9yaXR5LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsbj17YWNjb3VudDoocj10LmdldEFjY291bnQoKSkmJlRyb25XZWJQcm90by5BY2NvdW50SWQudG9PYmplY3QoZSxyKSxwZXJtaXNzaW9uTmFtZTp0LmdldFBlcm1pc3Npb25OYW1lX2FzQjY0KCl9O3JldHVybiBlJiYobi4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxufSksVHJvbldlYlByb3RvLmF1dGhvcml0eS5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLmF1dGhvcml0eTtyZXR1cm4gVHJvbldlYlByb3RvLmF1dGhvcml0eS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPW5ldyBUcm9uV2ViUHJvdG8uQWNjb3VudElkO3QucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudElkLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRBY2NvdW50KHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEJ5dGVzKCksZS5zZXRQZXJtaXNzaW9uTmFtZShyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5hdXRob3JpdHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLmF1dGhvcml0eS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5hdXRob3JpdHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7bnVsbCE9KHI9ZS5nZXRBY2NvdW50KCkpJiZ0LndyaXRlTWVzc2FnZSgxLHIsVHJvbldlYlByb3RvLkFjY291bnRJZC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXRQZXJtaXNzaW9uTmFtZV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5wcm90b3R5cGUuZ2V0QWNjb3VudD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLkFjY291bnRJZCwxKX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5wcm90b3R5cGUuc2V0QWNjb3VudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5hdXRob3JpdHkucHJvdG90eXBlLmNsZWFyQWNjb3VudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEFjY291bnQodm9pZCAwKX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5wcm90b3R5cGUuaGFzQWNjb3VudD1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywxKX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5wcm90b3R5cGUuZ2V0UGVybWlzc2lvbk5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5wcm90b3R5cGUuZ2V0UGVybWlzc2lvbk5hbWVfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRQZXJtaXNzaW9uTmFtZSgpKX0sVHJvbldlYlByb3RvLmF1dGhvcml0eS5wcm90b3R5cGUuZ2V0UGVybWlzc2lvbk5hbWVfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0UGVybWlzc2lvbk5hbWUoKSl9LFRyb25XZWJQcm90by5hdXRob3JpdHkucHJvdG90eXBlLnNldFBlcm1pc3Npb25OYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnJlcGVhdGVkRmllbGRzXz1bN10sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlBlcm1pc3Npb24udG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24udG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17dHlwZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCksaWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApLHBlcm1pc3Npb25OYW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMywiIiksdGhyZXNob2xkOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwwKSxwYXJlbnRJZDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDUsMCksb3BlcmF0aW9uczp0LmdldE9wZXJhdGlvbnNfYXNCNjQoKSxrZXlzTGlzdDpuLk1lc3NhZ2UudG9PYmplY3RMaXN0KHQuZ2V0S2V5c0xpc3QoKSxUcm9uV2ViUHJvdG8uS2V5LnRvT2JqZWN0LGUpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uUGVybWlzc2lvbjtyZXR1cm4gVHJvbldlYlByb3RvLlBlcm1pc3Npb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkRW51bSgpO2Uuc2V0VHlwZShyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQzMigpLGUuc2V0SWQocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkU3RyaW5nKCksZS5zZXRQZXJtaXNzaW9uTmFtZShyKTticmVhaztjYXNlIDQ6cj10LnJlYWRJbnQ2NCgpLGUuc2V0VGhyZXNob2xkKHIpO2JyZWFrO2Nhc2UgNTpyPXQucmVhZEludDMyKCksZS5zZXRQYXJlbnRJZChyKTticmVhaztjYXNlIDY6cj10LnJlYWRCeXRlcygpLGUuc2V0T3BlcmF0aW9ucyhyKTticmVhaztjYXNlIDc6cj1uZXcgVHJvbldlYlByb3RvLktleSx0LnJlYWRNZXNzYWdlKHIsVHJvbldlYlByb3RvLktleS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkS2V5cyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7MCE9PShyPWUuZ2V0VHlwZSgpKSYmdC53cml0ZUVudW0oMSxyKSwwIT09KHI9ZS5nZXRJZCgpKSYmdC53cml0ZUludDMyKDIsciksKHI9ZS5nZXRQZXJtaXNzaW9uTmFtZSgpKS5sZW5ndGg+MCYmdC53cml0ZVN0cmluZygzLHIpLDAhPT0ocj1lLmdldFRocmVzaG9sZCgpKSYmdC53cml0ZUludDY0KDQsciksMCE9PShyPWUuZ2V0UGFyZW50SWQoKSkmJnQud3JpdGVJbnQzMig1LHIpLChyPWUuZ2V0T3BlcmF0aW9uc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoNixyKSwocj1lLmdldEtleXNMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDcscixUcm9uV2ViUHJvdG8uS2V5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24uUGVybWlzc2lvblR5cGU9e09XTkVSOjAsV0lUTkVTUzoxLEFDVElWRToyfSxUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsMCl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5zZXRUeXBlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zRW51bUZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24ucHJvdG90eXBlLmdldElkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24ucHJvdG90eXBlLnNldElkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi5wcm90b3R5cGUuZ2V0UGVybWlzc2lvbk5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLCIiKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24ucHJvdG90eXBlLnNldFBlcm1pc3Npb25OYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi5wcm90b3R5cGUuZ2V0VGhyZXNob2xkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24ucHJvdG90eXBlLnNldFRocmVzaG9sZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24ucHJvdG90eXBlLmdldFBhcmVudElkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNSwwKX0sVHJvbldlYlByb3RvLlBlcm1pc3Npb24ucHJvdG90eXBlLnNldFBhcmVudElkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi5wcm90b3R5cGUuZ2V0T3BlcmF0aW9ucz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDYsIiIpfSxUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi5wcm90b3R5cGUuZ2V0T3BlcmF0aW9uc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE9wZXJhdGlvbnMoKSl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5nZXRPcGVyYXRpb25zX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE9wZXJhdGlvbnMoKSl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5zZXRPcGVyYXRpb25zPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDYsZSl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5nZXRLZXlzTGlzdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uS2V5LDcpfSxUcm9uV2ViUHJvdG8uUGVybWlzc2lvbi5wcm90b3R5cGUuc2V0S2V5c0xpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDcsZSl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5hZGRLZXlzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsNyxlLFRyb25XZWJQcm90by5LZXksdCl9LFRyb25XZWJQcm90by5QZXJtaXNzaW9uLnByb3RvdHlwZS5jbGVhcktleXNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0S2V5c0xpc3QoW10pfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uV2l0bmVzcy50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXthZGRyZXNzOnQuZ2V0QWRkcmVzc19hc0I2NCgpLHZvdGVjb3VudDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCkscHVia2V5OnQuZ2V0UHVia2V5X2FzQjY0KCksdXJsOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwiIiksdG90YWxwcm9kdWNlZDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDUsMCksdG90YWxtaXNzZWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw2LDApLGxhdGVzdGJsb2NrbnVtOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNywwKSxsYXRlc3RzbG90bnVtOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsOCwwKSxpc2pvYnM6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsOSwhMSl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLldpdG5lc3MuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5XaXRuZXNzO3JldHVybiBUcm9uV2ViUHJvdG8uV2l0bmVzcy5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLldpdG5lc3MuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0QWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0Vm90ZWNvdW50KHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEJ5dGVzKCksZS5zZXRQdWJrZXkocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkU3RyaW5nKCksZS5zZXRVcmwocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldFRvdGFscHJvZHVjZWQocik7YnJlYWs7Y2FzZSA2OnI9dC5yZWFkSW50NjQoKSxlLnNldFRvdGFsbWlzc2VkKHIpO2JyZWFrO2Nhc2UgNzpyPXQucmVhZEludDY0KCksZS5zZXRMYXRlc3RibG9ja251bShyKTticmVhaztjYXNlIDg6cj10LnJlYWRJbnQ2NCgpLGUuc2V0TGF0ZXN0c2xvdG51bShyKTticmVhaztjYXNlIDk6cj10LnJlYWRCb29sKCksZS5zZXRJc2pvYnMocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uV2l0bmVzcy5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5XaXRuZXNzLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRWb3RlY291bnQoKSkmJnQud3JpdGVJbnQ2NCgyLHIpLChyPWUuZ2V0UHVia2V5X2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygzLHIpLChyPWUuZ2V0VXJsKCkpLmxlbmd0aD4wJiZ0LndyaXRlU3RyaW5nKDQsciksMCE9PShyPWUuZ2V0VG90YWxwcm9kdWNlZCgpKSYmdC53cml0ZUludDY0KDUsciksMCE9PShyPWUuZ2V0VG90YWxtaXNzZWQoKSkmJnQud3JpdGVJbnQ2NCg2LHIpLDAhPT0ocj1lLmdldExhdGVzdGJsb2NrbnVtKCkpJiZ0LndyaXRlSW50NjQoNyxyKSwwIT09KHI9ZS5nZXRMYXRlc3RzbG90bnVtKCkpJiZ0LndyaXRlSW50NjQoOCxyKSwocj1lLmdldElzam9icygpKSYmdC53cml0ZUJvb2woOSxyKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLmdldEFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLmdldEFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0QWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuc2V0QWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0Vm90ZWNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLnNldFZvdGVjb3VudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLmdldFB1YmtleT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsIiIpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0UHVia2V5X2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0UHVia2V5KCkpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0UHVia2V5X2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFB1YmtleSgpKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLnNldFB1YmtleT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0VXJsPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwiIil9LFRyb25XZWJQcm90by5XaXRuZXNzLnByb3RvdHlwZS5zZXRVcmw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5XaXRuZXNzLnByb3RvdHlwZS5nZXRUb3RhbHByb2R1Y2VkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNSwwKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLnNldFRvdGFscHJvZHVjZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDUsZSl9LFRyb25XZWJQcm90by5XaXRuZXNzLnByb3RvdHlwZS5nZXRUb3RhbG1pc3NlZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDYsMCl9LFRyb25XZWJQcm90by5XaXRuZXNzLnByb3RvdHlwZS5zZXRUb3RhbG1pc3NlZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNixlKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLmdldExhdGVzdGJsb2NrbnVtPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNywwKX0sVHJvbldlYlByb3RvLldpdG5lc3MucHJvdG90eXBlLnNldExhdGVzdGJsb2NrbnVtPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw3LGUpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0TGF0ZXN0c2xvdG51bT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDgsMCl9LFRyb25XZWJQcm90by5XaXRuZXNzLnByb3RvdHlwZS5zZXRMYXRlc3RzbG90bnVtPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw4LGUpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuZ2V0SXNqb2JzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdCh0aGlzLDksITEpfSxUcm9uV2ViUHJvdG8uV2l0bmVzcy5wcm90b3R5cGUuc2V0SXNqb2JzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQm9vbGVhbkZpZWxkKHRoaXMsOSxlKX0sVHJvbldlYlByb3RvLlZvdGVzLnJlcGVhdGVkRmllbGRzXz1bMiwzXSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlZvdGVzLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlZvdGVzLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5Wb3Rlcy50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXthZGRyZXNzOnQuZ2V0QWRkcmVzc19hc0I2NCgpLG9sZFZvdGVzTGlzdDpuLk1lc3NhZ2UudG9PYmplY3RMaXN0KHQuZ2V0T2xkVm90ZXNMaXN0KCksVHJvbldlYlByb3RvLlZvdGUudG9PYmplY3QsZSksbmV3Vm90ZXNMaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXROZXdWb3Rlc0xpc3QoKSxUcm9uV2ViUHJvdG8uVm90ZS50b09iamVjdCxlKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVm90ZXMuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5Wb3RlcztyZXR1cm4gVHJvbldlYlByb3RvLlZvdGVzLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVm90ZXMuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0QWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj1uZXcgVHJvbldlYlByb3RvLlZvdGUsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5Wb3RlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5hZGRPbGRWb3RlcyhyKTticmVhaztjYXNlIDM6cj1uZXcgVHJvbldlYlByb3RvLlZvdGUsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5Wb3RlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5hZGROZXdWb3RlcyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5Wb3Rlcy5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVm90ZXMuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVm90ZXMuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0T2xkVm90ZXNMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDIscixUcm9uV2ViUHJvdG8uVm90ZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXROZXdWb3Rlc0xpc3QoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZE1lc3NhZ2UoMyxyLFRyb25XZWJQcm90by5Wb3RlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sVHJvbldlYlByb3RvLlZvdGVzLnByb3RvdHlwZS5nZXRBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5Wb3Rlcy5wcm90b3R5cGUuZ2V0QWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5Wb3Rlcy5wcm90b3R5cGUuZ2V0QWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVm90ZXMucHJvdG90eXBlLnNldEFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlZvdGVzLnByb3RvdHlwZS5nZXRPbGRWb3Rlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlZvdGUsMil9LFRyb25XZWJQcm90by5Wb3Rlcy5wcm90b3R5cGUuc2V0T2xkVm90ZXNMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uVm90ZXMucHJvdG90eXBlLmFkZE9sZFZvdGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMixlLFRyb25XZWJQcm90by5Wb3RlLHQpfSxUcm9uV2ViUHJvdG8uVm90ZXMucHJvdG90eXBlLmNsZWFyT2xkVm90ZXNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0T2xkVm90ZXNMaXN0KFtdKX0sVHJvbldlYlByb3RvLlZvdGVzLnByb3RvdHlwZS5nZXROZXdWb3Rlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlZvdGUsMyl9LFRyb25XZWJQcm90by5Wb3Rlcy5wcm90b3R5cGUuc2V0TmV3Vm90ZXNMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uVm90ZXMucHJvdG90eXBlLmFkZE5ld1ZvdGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMyxlLFRyb25XZWJQcm90by5Wb3RlLHQpfSxUcm9uV2ViUHJvdG8uVm90ZXMucHJvdG90eXBlLmNsZWFyTmV3Vm90ZXNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0TmV3Vm90ZXNMaXN0KFtdKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uTWFya2V0T3JkZXJEZXRhaWwudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17bWFrZXJvcmRlcmlkOnQuZ2V0TWFrZXJvcmRlcmlkX2FzQjY0KCksdGFrZXJvcmRlcmlkOnQuZ2V0VGFrZXJvcmRlcmlkX2FzQjY0KCksZmlsbHNlbGxxdWFudGl0eTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCksZmlsbGJ1eXF1YW50aXR5Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uTWFya2V0T3JkZXJEZXRhaWwuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbDtyZXR1cm4gVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uTWFya2V0T3JkZXJEZXRhaWwuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0TWFrZXJvcmRlcmlkKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEJ5dGVzKCksZS5zZXRUYWtlcm9yZGVyaWQocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkSW50NjQoKSxlLnNldEZpbGxzZWxscXVhbnRpdHkocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkSW50NjQoKSxlLnNldEZpbGxidXlxdWFudGl0eShyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uTWFya2V0T3JkZXJEZXRhaWwuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uTWFya2V0T3JkZXJEZXRhaWwuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRNYWtlcm9yZGVyaWRfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksKHI9ZS5nZXRUYWtlcm9yZGVyaWRfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDIsciksMCE9PShyPWUuZ2V0RmlsbHNlbGxxdWFudGl0eSgpKSYmdC53cml0ZUludDY0KDMsciksMCE9PShyPWUuZ2V0RmlsbGJ1eXF1YW50aXR5KCkpJiZ0LndyaXRlSW50NjQoNCxyKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5nZXRNYWtlcm9yZGVyaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5nZXRNYWtlcm9yZGVyaWRfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRNYWtlcm9yZGVyaWQoKSl9LFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC5wcm90b3R5cGUuZ2V0TWFrZXJvcmRlcmlkX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE1ha2Vyb3JkZXJpZCgpKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5zZXRNYWtlcm9yZGVyaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5nZXRUYWtlcm9yZGVyaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5nZXRUYWtlcm9yZGVyaWRfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRUYWtlcm9yZGVyaWQoKSl9LFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC5wcm90b3R5cGUuZ2V0VGFrZXJvcmRlcmlkX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFRha2Vyb3JkZXJpZCgpKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5zZXRUYWtlcm9yZGVyaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5nZXRGaWxsc2VsbHF1YW50aXR5PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnByb3RvdHlwZS5zZXRGaWxsc2VsbHF1YW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uTWFya2V0T3JkZXJEZXRhaWwucHJvdG90eXBlLmdldEZpbGxidXlxdWFudGl0eT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsMCl9LFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC5wcm90b3R5cGUuc2V0RmlsbGJ1eXF1YW50aXR5PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw0LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmVwZWF0ZWRGaWVsZHNfPVsyLDVdLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24udG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsbz17cmF3RGF0YToocj10LmdldFJhd0RhdGEoKSkmJlRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcudG9PYmplY3QoZSxyKSxzaWduYXR1cmVMaXN0OnQuZ2V0U2lnbmF0dXJlTGlzdF9hc0I2NCgpLHJldExpc3Q6bi5NZXNzYWdlLnRvT2JqZWN0TGlzdCh0LmdldFJldExpc3QoKSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnRvT2JqZWN0LGUpfTtyZXR1cm4gZSYmKG8uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksb30pLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uO3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPW5ldyBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3O3QucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRSYXdEYXRhKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEJ5dGVzKCksZS5hZGRTaWduYXR1cmUocik7YnJlYWs7Y2FzZSA1OnI9bmV3IFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLmFkZFJldChyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7bnVsbCE9KHI9ZS5nZXRSYXdEYXRhKCkpJiZ0LndyaXRlTWVzc2FnZSgxLHIsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXRTaWduYXR1cmVMaXN0X2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZEJ5dGVzKDIsciksKHI9ZS5nZXRSZXRMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDUscixUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcixvPXt0eXBlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSwwKSxwYXJhbWV0ZXI6KHI9dC5nZXRQYXJhbWV0ZXIoKSkmJmEuQW55LnRvT2JqZWN0KGUscikscHJvdmlkZXI6dC5nZXRQcm92aWRlcl9hc0I2NCgpLGNvbnRyYWN0bmFtZTp0LmdldENvbnRyYWN0bmFtZV9hc0I2NCgpLHBlcm1pc3Npb25JZDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDUsMCl9O3JldHVybiBlJiYoby4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxvfSksVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkRW51bSgpO2Uuc2V0VHlwZShyKTticmVhaztjYXNlIDI6cj1uZXcgYS5BbnksdC5yZWFkTWVzc2FnZShyLGEuQW55LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRQYXJhbWV0ZXIocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFByb3ZpZGVyKHIpO2JyZWFrO2Nhc2UgNDpyPXQucmVhZEJ5dGVzKCksZS5zZXRDb250cmFjdG5hbWUocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50MzIoKSxlLnNldFBlcm1pc3Npb25JZChyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7MCE9PShyPWUuZ2V0VHlwZSgpKSYmdC53cml0ZUVudW0oMSxyKSxudWxsIT0ocj1lLmdldFBhcmFtZXRlcigpKSYmdC53cml0ZU1lc3NhZ2UoMixyLGEuQW55LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSwocj1lLmdldFByb3ZpZGVyX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygzLHIpLChyPWUuZ2V0Q29udHJhY3RuYW1lX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcyg0LHIpLDAhPT0ocj1lLmdldFBlcm1pc3Npb25JZCgpKSYmdC53cml0ZUludDMyKDUscil9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5Db250cmFjdFR5cGU9e0FDQ09VTlRDUkVBVEVDT05UUkFDVDowLFRSQU5TRkVSQ09OVFJBQ1Q6MSxUUkFOU0ZFUkFTU0VUQ09OVFJBQ1Q6MixWT1RFQVNTRVRDT05UUkFDVDozLFZPVEVXSVRORVNTQ09OVFJBQ1Q6NCxXSVRORVNTQ1JFQVRFQ09OVFJBQ1Q6NSxBU1NFVElTU1VFQ09OVFJBQ1Q6NixXSVRORVNTVVBEQVRFQ09OVFJBQ1Q6OCxQQVJUSUNJUEFURUFTU0VUSVNTVUVDT05UUkFDVDo5LEFDQ09VTlRVUERBVEVDT05UUkFDVDoxMCxGUkVFWkVCQUxBTkNFQ09OVFJBQ1Q6MTEsVU5GUkVFWkVCQUxBTkNFQ09OVFJBQ1Q6MTIsV0lUSERSQVdCQUxBTkNFQ09OVFJBQ1Q6MTMsVU5GUkVFWkVBU1NFVENPTlRSQUNUOjE0LFVQREFURUFTU0VUQ09OVFJBQ1Q6MTUsUFJPUE9TQUxDUkVBVEVDT05UUkFDVDoxNixQUk9QT1NBTEFQUFJPVkVDT05UUkFDVDoxNyxQUk9QT1NBTERFTEVURUNPTlRSQUNUOjE4LFNFVEFDQ09VTlRJRENPTlRSQUNUOjE5LENVU1RPTUNPTlRSQUNUOjIwLENSRUFURVNNQVJUQ09OVFJBQ1Q6MzAsVFJJR0dFUlNNQVJUQ09OVFJBQ1Q6MzEsR0VUQ09OVFJBQ1Q6MzIsVVBEQVRFU0VUVElOR0NPTlRSQUNUOjMzLEVYQ0hBTkdFQ1JFQVRFQ09OVFJBQ1Q6NDEsRVhDSEFOR0VJTkpFQ1RDT05UUkFDVDo0MixFWENIQU5HRVdJVEhEUkFXQ09OVFJBQ1Q6NDMsRVhDSEFOR0VUUkFOU0FDVElPTkNPTlRSQUNUOjQ0LFVQREFURUVORVJHWUxJTUlUQ09OVFJBQ1Q6NDUsQUNDT1VOVFBFUk1JU1NJT05VUERBVEVDT05UUkFDVDo0NixDTEVBUkFCSUNPTlRSQUNUOjQ4LFVQREFURUJST0tFUkFHRUNPTlRSQUNUOjQ5LFNISUVMREVEVFJBTlNGRVJDT05UUkFDVDo1MSxNQVJLRVRTRUxMQVNTRVRDT05UUkFDVDo1MixNQVJLRVRDQU5DRUxPUkRFUkNPTlRSQUNUOjUzLEZSRUVaRUJBTEFOQ0VWMkNPTlRSQUNUOjU0LFVORlJFRVpFQkFMQU5DRVYyQ09OVFJBQ1Q6NTUsV0lUSERSQVdFWFBJUkVVTkZSRUVaRUNPTlRSQUNUOjU2LERFTEVHQVRFUkVTT1VSQ0VDT05UUkFDVDo1NyxVTkRFTEVHQVRFUkVTT1VSQ0VDT05UUkFDVDo1OCxDQU5DRUxBTExVTkZSRUVaRVYyQ09OVFJBQ1Q6NTl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuc2V0VHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0VudW1GaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuZ2V0UGFyYW1ldGVyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcyxhLkFueSwyKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LnByb3RvdHlwZS5zZXRQYXJhbWV0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QucHJvdG90eXBlLmNsZWFyUGFyYW1ldGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0UGFyYW1ldGVyKHZvaWQgMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuaGFzUGFyYW1ldGVyPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPW4uTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QucHJvdG90eXBlLmdldFByb3ZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuZ2V0UHJvdmlkZXJfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRQcm92aWRlcigpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LnByb3RvdHlwZS5nZXRQcm92aWRlcl9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRQcm92aWRlcigpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LnByb3RvdHlwZS5zZXRQcm92aWRlcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QucHJvdG90eXBlLmdldENvbnRyYWN0bmFtZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QucHJvdG90eXBlLmdldENvbnRyYWN0bmFtZV9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldENvbnRyYWN0bmFtZSgpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LnByb3RvdHlwZS5nZXRDb250cmFjdG5hbWVfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0Q29udHJhY3RuYW1lKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QucHJvdG90eXBlLnNldENvbnRyYWN0bmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcyw0LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QucHJvdG90eXBlLmdldFBlcm1pc3Npb25JZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDUsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5wcm90b3R5cGUuc2V0UGVybWlzc2lvbklkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnJlcGVhdGVkRmllbGRzXz1bMjZdLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e2ZlZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCkscmV0Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSxjb250cmFjdHJldDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCksYXNzZXRpc3N1ZWlkOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTQsIiIpLHdpdGhkcmF3QW1vdW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTUsMCksdW5mcmVlemVBbW91bnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxNiwwKSxleGNoYW5nZVJlY2VpdmVkQW1vdW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTgsMCksZXhjaGFuZ2VJbmplY3RBbm90aGVyQW1vdW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTksMCksZXhjaGFuZ2VXaXRoZHJhd0Fub3RoZXJBbW91bnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyMCwwKSxleGNoYW5nZUlkOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMjEsMCksc2hpZWxkZWRUcmFuc2FjdGlvbkZlZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIyLDApLG9yZGVyaWQ6dC5nZXRPcmRlcmlkX2FzQjY0KCksb3JkZXJkZXRhaWxzTGlzdDpuLk1lc3NhZ2UudG9PYmplY3RMaXN0KHQuZ2V0T3JkZXJkZXRhaWxzTGlzdCgpLFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbC50b09iamVjdCxlKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0O3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkSW50NjQoKTtlLnNldEZlZShyKTticmVhaztjYXNlIDI6cj10LnJlYWRFbnVtKCksZS5zZXRSZXQocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkRW51bSgpLGUuc2V0Q29udHJhY3RyZXQocik7YnJlYWs7Y2FzZSAxNDpyPXQucmVhZFN0cmluZygpLGUuc2V0QXNzZXRpc3N1ZWlkKHIpO2JyZWFrO2Nhc2UgMTU6cj10LnJlYWRJbnQ2NCgpLGUuc2V0V2l0aGRyYXdBbW91bnQocik7YnJlYWs7Y2FzZSAxNjpyPXQucmVhZEludDY0KCksZS5zZXRVbmZyZWV6ZUFtb3VudChyKTticmVhaztjYXNlIDE4OnI9dC5yZWFkSW50NjQoKSxlLnNldEV4Y2hhbmdlUmVjZWl2ZWRBbW91bnQocik7YnJlYWs7Y2FzZSAxOTpyPXQucmVhZEludDY0KCksZS5zZXRFeGNoYW5nZUluamVjdEFub3RoZXJBbW91bnQocik7YnJlYWs7Y2FzZSAyMDpyPXQucmVhZEludDY0KCksZS5zZXRFeGNoYW5nZVdpdGhkcmF3QW5vdGhlckFtb3VudChyKTticmVhaztjYXNlIDIxOnI9dC5yZWFkSW50NjQoKSxlLnNldEV4Y2hhbmdlSWQocik7YnJlYWs7Y2FzZSAyMjpyPXQucmVhZEludDY0KCksZS5zZXRTaGllbGRlZFRyYW5zYWN0aW9uRmVlKHIpO2JyZWFrO2Nhc2UgMjU6cj10LnJlYWRCeXRlcygpLGUuc2V0T3JkZXJpZChyKTticmVhaztjYXNlIDI2OnI9bmV3IFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbCx0LnJlYWRNZXNzYWdlKHIsVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5hZGRPcmRlcmRldGFpbHMocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOzAhPT0ocj1lLmdldEZlZSgpKSYmdC53cml0ZUludDY0KDEsciksMCE9PShyPWUuZ2V0UmV0KCkpJiZ0LndyaXRlRW51bSgyLHIpLDAhPT0ocj1lLmdldENvbnRyYWN0cmV0KCkpJiZ0LndyaXRlRW51bSgzLHIpLChyPWUuZ2V0QXNzZXRpc3N1ZWlkKCkpLmxlbmd0aD4wJiZ0LndyaXRlU3RyaW5nKDE0LHIpLDAhPT0ocj1lLmdldFdpdGhkcmF3QW1vdW50KCkpJiZ0LndyaXRlSW50NjQoMTUsciksMCE9PShyPWUuZ2V0VW5mcmVlemVBbW91bnQoKSkmJnQud3JpdGVJbnQ2NCgxNixyKSwwIT09KHI9ZS5nZXRFeGNoYW5nZVJlY2VpdmVkQW1vdW50KCkpJiZ0LndyaXRlSW50NjQoMTgsciksMCE9PShyPWUuZ2V0RXhjaGFuZ2VJbmplY3RBbm90aGVyQW1vdW50KCkpJiZ0LndyaXRlSW50NjQoMTksciksMCE9PShyPWUuZ2V0RXhjaGFuZ2VXaXRoZHJhd0Fub3RoZXJBbW91bnQoKSkmJnQud3JpdGVJbnQ2NCgyMCxyKSwwIT09KHI9ZS5nZXRFeGNoYW5nZUlkKCkpJiZ0LndyaXRlSW50NjQoMjEsciksMCE9PShyPWUuZ2V0U2hpZWxkZWRUcmFuc2FjdGlvbkZlZSgpKSYmdC53cml0ZUludDY0KDIyLHIpLChyPWUuZ2V0T3JkZXJpZF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMjUsciksKHI9ZS5nZXRPcmRlcmRldGFpbHNMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDI2LHIsVHJvbldlYlByb3RvLk1hcmtldE9yZGVyRGV0YWlsLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5jb2RlPXtTVUNFU1M6MCxGQUlMRUQ6MX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5jb250cmFjdFJlc3VsdD17REVGQVVMVDowLFNVQ0NFU1M6MSxSRVZFUlQ6MixCQURfSlVNUF9ERVNUSU5BVElPTjozLE9VVF9PRl9NRU1PUlk6NCxQUkVDT01QSUxFRF9DT05UUkFDVDo1LFNUQUNLX1RPT19TTUFMTDo2LFNUQUNLX1RPT19MQVJHRTo3LElMTEVHQUxfT1BFUkFUSU9OOjgsU1RBQ0tfT1ZFUkZMT1c6OSxPVVRfT0ZfRU5FUkdZOjEwLE9VVF9PRl9USU1FOjExLEpWTV9TVEFDS19PVkVSX0ZMT1c6MTIsVU5LTk9XTjoxMyxUUkFOU0ZFUl9GQUlMRUQ6MTQsSU5WQUxJRF9DT0RFOjE1fSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRGZWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLDApfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5zZXRGZWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLmdldFJldD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldFJldD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0VudW1GaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLmdldENvbnRyYWN0cmV0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuc2V0Q29udHJhY3RyZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRBc3NldGlzc3VlaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxNCwiIil9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldEFzc2V0aXNzdWVpZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsMTQsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLmdldFdpdGhkcmF3QW1vdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTUsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldFdpdGhkcmF3QW1vdW50PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxNSxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuZ2V0VW5mcmVlemVBbW91bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxNiwwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuc2V0VW5mcmVlemVBbW91bnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDE2LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRFeGNoYW5nZVJlY2VpdmVkQW1vdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTgsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldEV4Y2hhbmdlUmVjZWl2ZWRBbW91bnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDE4LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRFeGNoYW5nZUluamVjdEFub3RoZXJBbW91bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxOSwwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuc2V0RXhjaGFuZ2VJbmplY3RBbm90aGVyQW1vdW50PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxOSxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuZ2V0RXhjaGFuZ2VXaXRoZHJhd0Fub3RoZXJBbW91bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyMCwwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuc2V0RXhjaGFuZ2VXaXRoZHJhd0Fub3RoZXJBbW91bnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIwLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRFeGNoYW5nZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMjEsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldEV4Y2hhbmdlSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIxLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRTaGllbGRlZFRyYW5zYWN0aW9uRmVlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMjIsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldFNoaWVsZGVkVHJhbnNhY3Rpb25GZWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIyLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRPcmRlcmlkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMjUsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRPcmRlcmlkX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3JkZXJpZCgpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuZ2V0T3JkZXJpZF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPcmRlcmlkKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5zZXRPcmRlcmlkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDI1LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5nZXRPcmRlcmRldGFpbHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbCwyNil9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5SZXN1bHQucHJvdG90eXBlLnNldE9yZGVyZGV0YWlsc0xpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDI2LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LnByb3RvdHlwZS5hZGRPcmRlcmRldGFpbHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywyNixlLFRyb25XZWJQcm90by5NYXJrZXRPcmRlckRldGFpbCx0KX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdC5wcm90b3R5cGUuY2xlYXJPcmRlcmRldGFpbHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0T3JkZXJkZXRhaWxzTGlzdChbXSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucmVwZWF0ZWRGaWVsZHNfPVs5LDExXSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtyZWZCbG9ja0J5dGVzOnQuZ2V0UmVmQmxvY2tCeXRlc19hc0I2NCgpLHJlZkJsb2NrTnVtOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMywwKSxyZWZCbG9ja0hhc2g6dC5nZXRSZWZCbG9ja0hhc2hfYXNCNjQoKSxleHBpcmF0aW9uOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsOCwwKSxhdXRoc0xpc3Q6bi5NZXNzYWdlLnRvT2JqZWN0TGlzdCh0LmdldEF1dGhzTGlzdCgpLFRyb25XZWJQcm90by5hdXRob3JpdHkudG9PYmplY3QsZSksZGF0YTp0LmdldERhdGFfYXNCNjQoKSxjb250cmFjdExpc3Q6bi5NZXNzYWdlLnRvT2JqZWN0TGlzdCh0LmdldENvbnRyYWN0TGlzdCgpLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC50b09iamVjdCxlKSxzY3JpcHRzOnQuZ2V0U2NyaXB0c19hc0I2NCgpLHRpbWVzdGFtcDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDE0LDApLGZlZUxpbWl0Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTgsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdztyZXR1cm4gVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRSZWZCbG9ja0J5dGVzKHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEludDY0KCksZS5zZXRSZWZCbG9ja051bShyKTticmVhaztjYXNlIDQ6cj10LnJlYWRCeXRlcygpLGUuc2V0UmVmQmxvY2tIYXNoKHIpO2JyZWFrO2Nhc2UgODpyPXQucmVhZEludDY0KCksZS5zZXRFeHBpcmF0aW9uKHIpO2JyZWFrO2Nhc2UgOTpyPW5ldyBUcm9uV2ViUHJvdG8uYXV0aG9yaXR5LHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uYXV0aG9yaXR5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5hZGRBdXRocyhyKTticmVhaztjYXNlIDEwOnI9dC5yZWFkQnl0ZXMoKSxlLnNldERhdGEocik7YnJlYWs7Y2FzZSAxMTpyPW5ldyBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3QsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkQ29udHJhY3Qocik7YnJlYWs7Y2FzZSAxMjpyPXQucmVhZEJ5dGVzKCksZS5zZXRTY3JpcHRzKHIpO2JyZWFrO2Nhc2UgMTQ6cj10LnJlYWRJbnQ2NCgpLGUuc2V0VGltZXN0YW1wKHIpO2JyZWFrO2Nhc2UgMTg6cj10LnJlYWRJbnQ2NCgpLGUuc2V0RmVlTGltaXQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0UmVmQmxvY2tCeXRlc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRSZWZCbG9ja051bSgpKSYmdC53cml0ZUludDY0KDMsciksKHI9ZS5nZXRSZWZCbG9ja0hhc2hfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDQsciksMCE9PShyPWUuZ2V0RXhwaXJhdGlvbigpKSYmdC53cml0ZUludDY0KDgsciksKHI9ZS5nZXRBdXRoc0xpc3QoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZE1lc3NhZ2UoOSxyLFRyb25XZWJQcm90by5hdXRob3JpdHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLChyPWUuZ2V0RGF0YV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMTAsciksKHI9ZS5nZXRDb250cmFjdExpc3QoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZE1lc3NhZ2UoMTEscixUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLChyPWUuZ2V0U2NyaXB0c19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMTIsciksMCE9PShyPWUuZ2V0VGltZXN0YW1wKCkpJiZ0LndyaXRlSW50NjQoMTQsciksMCE9PShyPWUuZ2V0RmVlTGltaXQoKSkmJnQud3JpdGVJbnQ2NCgxOCxyKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuZ2V0UmVmQmxvY2tCeXRlcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRSZWZCbG9ja0J5dGVzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0UmVmQmxvY2tCeXRlcygpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuZ2V0UmVmQmxvY2tCeXRlc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRSZWZCbG9ja0J5dGVzKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5zZXRSZWZCbG9ja0J5dGVzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucHJvdG90eXBlLmdldFJlZkJsb2NrTnVtPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuc2V0UmVmQmxvY2tOdW09ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucHJvdG90eXBlLmdldFJlZkJsb2NrSGFzaD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRSZWZCbG9ja0hhc2hfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRSZWZCbG9ja0hhc2goKSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucHJvdG90eXBlLmdldFJlZkJsb2NrSGFzaF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRSZWZCbG9ja0hhc2goKSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucHJvdG90eXBlLnNldFJlZkJsb2NrSGFzaD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcyw0LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRFeHBpcmF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsOCwwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuc2V0RXhwaXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsOCxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuZ2V0QXV0aHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5hdXRob3JpdHksOSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcucHJvdG90eXBlLnNldEF1dGhzTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsOSxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuYWRkQXV0aHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyw5LGUsVHJvbldlYlByb3RvLmF1dGhvcml0eSx0KX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuY2xlYXJBdXRoc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRBdXRoc0xpc3QoW10pfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXREYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTAsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXREYXRhX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0RGF0YSgpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuZ2V0RGF0YV9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXREYXRhKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5zZXREYXRhPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEwLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRDb250cmFjdExpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLkNvbnRyYWN0LDExKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuc2V0Q29udHJhY3RMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywxMSxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuYWRkQ29udHJhY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywxMSxlLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5Db250cmFjdCx0KX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuY2xlYXJDb250cmFjdExpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRDb250cmFjdExpc3QoW10pfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRTY3JpcHRzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTIsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRTY3JpcHRzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0U2NyaXB0cygpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuZ2V0U2NyaXB0c19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRTY3JpcHRzKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5zZXRTY3JpcHRzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEyLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucmF3LnByb3RvdHlwZS5nZXRUaW1lc3RhbXA9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxNCwwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuc2V0VGltZXN0YW1wPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxNCxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuZ2V0RmVlTGltaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxOCwwKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnJhdy5wcm90b3R5cGUuc2V0RmVlTGltaXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDE4LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmdldFJhd0RhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5yYXcsMSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5wcm90b3R5cGUuc2V0UmF3RGF0YT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5wcm90b3R5cGUuY2xlYXJSYXdEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0UmF3RGF0YSh2b2lkIDApfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmhhc1Jhd0RhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9bi5NZXNzYWdlLmdldEZpZWxkKHRoaXMsMSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbi5wcm90b3R5cGUuZ2V0U2lnbmF0dXJlTGlzdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRGaWVsZCh0aGlzLDIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmdldFNpZ25hdHVyZUxpc3RfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzTGlzdEFzQjY0KHRoaXMuZ2V0U2lnbmF0dXJlTGlzdCgpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnByb3RvdHlwZS5nZXRTaWduYXR1cmVMaXN0X2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzTGlzdEFzVTgodGhpcy5nZXRTaWduYXR1cmVMaXN0KCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLnNldFNpZ25hdHVyZUxpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRGaWVsZCh0aGlzLDIsZXx8W10pfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmFkZFNpZ25hdHVyZT1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZEZpZWxkKHRoaXMsMixlLHQpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmNsZWFyU2lnbmF0dXJlTGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldFNpZ25hdHVyZUxpc3QoW10pfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmdldFJldExpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLlJlc3VsdCw1KX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uLnByb3RvdHlwZS5zZXRSZXRMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmFkZFJldD1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDUsZSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24uUmVzdWx0LHQpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb24ucHJvdG90eXBlLmNsZWFyUmV0TGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldFJldExpc3QoW10pfSxUcm9uV2ViUHJvdG8uQWNjb3VudFR5cGU9e05PUk1BTDowLEFTU0VUSVNTVUU6MSxDT05UUkFDVDoyfSxvLm9iamVjdC5leHRlbmQodCxUcm9uV2ViUHJvdG8pfSw5NTY6KGUsdCxyKT0+e3ZhciBuPXIoNTU5NSksbz1uLGk9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzfHwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHx2b2lkIDAhPT1pJiZpfHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LmNhbGwobnVsbCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksYT1yKDgwMjApO28ub2JqZWN0LmV4dGVuZChwcm90byxhKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5TZXRBY2NvdW50SWRDb250cmFjdCIsbnVsbCxpKSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50Q3JlYXRlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5BY2NvdW50Q3JlYXRlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uQWNjb3VudFVwZGF0ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkFjY291bnRVcGRhdGVDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5TZXRBY2NvdW50SWRDb250cmFjdCIpLFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnJlcGVhdGVkRmllbGRzXyxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdCIpLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGFjY291bnRBZGRyZXNzOnQuZ2V0QWNjb3VudEFkZHJlc3NfYXNCNjQoKSx0eXBlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMywwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0QWNjb3VudEFkZHJlc3Mocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkRW51bSgpLGUuc2V0VHlwZShyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5BY2NvdW50Q3JlYXRlQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5BY2NvdW50Q3JlYXRlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksKHI9ZS5nZXRBY2NvdW50QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKSwwIT09KHI9ZS5nZXRUeXBlKCkpJiZ0LndyaXRlRW51bSgzLHIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWNjb3VudEFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWNjb3VudEFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBY2NvdW50QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkFjY291bnRDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWNjb3VudEFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QWNjb3VudEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50Q3JlYXRlQ29udHJhY3QucHJvdG90eXBlLnNldEFjY291bnRBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5BY2NvdW50Q3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLDApfSxUcm9uV2ViUHJvdG8uQWNjb3VudENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRUeXBlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zRW51bUZpZWxkKHRoaXMsMyxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudFVwZGF0ZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17YWNjb3VudE5hbWU6dC5nZXRBY2NvdW50TmFtZV9hc0I2NCgpLG93bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0QWNjb3VudE5hbWUocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRVcGRhdGVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRBY2NvdW50TmFtZV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKX0sVHJvbldlYlByb3RvLkFjY291bnRVcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWNjb3VudE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnRVcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWNjb3VudE5hbWVfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBY2NvdW50TmFtZSgpKX0sVHJvbldlYlByb3RvLkFjY291bnRVcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWNjb3VudE5hbWVfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QWNjb3VudE5hbWUoKSl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnNldEFjY291bnROYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsIiIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50VXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5TZXRBY2NvdW50SWRDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXthY2NvdW50SWQ6dC5nZXRBY2NvdW50SWRfYXNCNjQoKSxvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5TZXRBY2NvdW50SWRDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0QWNjb3VudElkKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEJ5dGVzKCksZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0QWNjb3VudElkX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLmdldEFjY291bnRJZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLmdldEFjY291bnRJZF9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldEFjY291bnRJZCgpKX0sVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LnByb3RvdHlwZS5nZXRBY2NvdW50SWRfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QWNjb3VudElkKCkpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLnNldEFjY291bnRJZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsIiIpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlNldEFjY291bnRJZENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uU2V0QWNjb3VudElkQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5yZXBlYXRlZEZpZWxkc189WzRdLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsbz17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCksb3duZXI6KHI9dC5nZXRPd25lcigpKSYmYS5QZXJtaXNzaW9uLnRvT2JqZWN0KGUsciksd2l0bmVzczoocj10LmdldFdpdG5lc3MoKSkmJmEuUGVybWlzc2lvbi50b09iamVjdChlLHIpLGFjdGl2ZXNMaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXRBY3RpdmVzTGlzdCgpLGEuUGVybWlzc2lvbi50b09iamVjdCxlKX07cmV0dXJuIGUmJihvLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLG99KSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9bmV3IGEuUGVybWlzc2lvbix0LnJlYWRNZXNzYWdlKHIsYS5QZXJtaXNzaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRPd25lcihyKTticmVhaztjYXNlIDM6cj1uZXcgYS5QZXJtaXNzaW9uLHQucmVhZE1lc3NhZ2UocixhLlBlcm1pc3Npb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldFdpdG5lc3Mocik7YnJlYWs7Y2FzZSA0OnI9bmV3IGEuUGVybWlzc2lvbix0LnJlYWRNZXNzYWdlKHIsYS5QZXJtaXNzaW9uLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5hZGRBY3RpdmVzKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSxudWxsIT0ocj1lLmdldE93bmVyKCkpJiZ0LndyaXRlTWVzc2FnZSgyLHIsYS5QZXJtaXNzaW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSxudWxsIT0ocj1lLmdldFdpdG5lc3MoKSkmJnQud3JpdGVNZXNzYWdlKDMscixhLlBlcm1pc3Npb24uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLChyPWUuZ2V0QWN0aXZlc0xpc3QoKSkubGVuZ3RoPjAmJnQud3JpdGVSZXBlYXRlZE1lc3NhZ2UoNCxyLGEuUGVybWlzc2lvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcil9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcyxhLlBlcm1pc3Npb24sMil9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5jbGVhck93bmVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0T3duZXIodm9pZCAwKX0sVHJvbldlYlByb3RvLkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmhhc093bmVyPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPW4uTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0V2l0bmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsYS5QZXJtaXNzaW9uLDMpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5wcm90b3R5cGUuc2V0V2l0bmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5jbGVhcldpdG5lc3M9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRXaXRuZXNzKHZvaWQgMCl9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5oYXNXaXRuZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPW4uTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDMpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0QWN0aXZlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsYS5QZXJtaXNzaW9uLDQpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5wcm90b3R5cGUuc2V0QWN0aXZlc0xpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5BY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5hZGRBY3RpdmVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsNCxlLFRyb25XZWJQcm90by5QZXJtaXNzaW9uLHQpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdC5wcm90b3R5cGUuY2xlYXJBY3RpdmVzTGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEFjdGl2ZXNMaXN0KFtdKX0sby5vYmplY3QuZXh0ZW5kKHQsVHJvbldlYlByb3RvKX0sNjQzOTooZSx0LHIpPT57dmFyIG49cig1NTk1KSxvPW4saT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXN8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fHZvaWQgMCE9PWkmJml8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30uY2FsbChudWxsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTtvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QiLG51bGwsaSksVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnJlcGVhdGVkRmllbGRzXyxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdCIpLFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QuRnJvemVuU3VwcGx5PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHksbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkiKSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QiKSxUcm9uV2ViUHJvdG8uVW5mcmVlemVBc3NldENvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3QiKSxUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0IiksVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnJlcGVhdGVkRmllbGRzXz1bNV0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17aWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0MSwiIiksb3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCksbmFtZTp0LmdldE5hbWVfYXNCNjQoKSxhYmJyOnQuZ2V0QWJicl9hc0I2NCgpLHRvdGFsU3VwcGx5Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwwKSxmcm96ZW5TdXBwbHlMaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXRGcm96ZW5TdXBwbHlMaXN0KCksVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkudG9PYmplY3QsZSksdHJ4TnVtOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNiwwKSxwcmVjaXNpb246bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw3LDApLG51bTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDgsMCksc3RhcnRUaW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsOSwwKSxlbmRUaW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTAsMCksb3JkZXI6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxMSwwKSx2b3RlU2NvcmU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxNiwwKSxkZXNjcmlwdGlvbjp0LmdldERlc2NyaXB0aW9uX2FzQjY0KCksdXJsOnQuZ2V0VXJsX2FzQjY0KCksZnJlZUFzc2V0TmV0TGltaXQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyMiwwKSxwdWJsaWNGcmVlQXNzZXROZXRMaW1pdDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIzLDApLHB1YmxpY0ZyZWVBc3NldE5ldFVzYWdlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMjQsMCkscHVibGljTGF0ZXN0RnJlZU5ldFRpbWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyNSwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDQxOnZhciByPXQucmVhZFN0cmluZygpO2Uuc2V0SWQocik7YnJlYWs7Y2FzZSAxOnI9dC5yZWFkQnl0ZXMoKSxlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0TmFtZShyKTticmVhaztjYXNlIDM6cj10LnJlYWRCeXRlcygpLGUuc2V0QWJicihyKTticmVhaztjYXNlIDQ6cj10LnJlYWRJbnQ2NCgpLGUuc2V0VG90YWxTdXBwbHkocik7YnJlYWs7Y2FzZSA1OnI9bmV3IFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QuRnJvemVuU3VwcGx5LHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkRnJvemVuU3VwcGx5KHIpO2JyZWFrO2Nhc2UgNjpyPXQucmVhZEludDMyKCksZS5zZXRUcnhOdW0ocik7YnJlYWs7Y2FzZSA3OnI9dC5yZWFkSW50MzIoKSxlLnNldFByZWNpc2lvbihyKTticmVhaztjYXNlIDg6cj10LnJlYWRJbnQzMigpLGUuc2V0TnVtKHIpO2JyZWFrO2Nhc2UgOTpyPXQucmVhZEludDY0KCksZS5zZXRTdGFydFRpbWUocik7YnJlYWs7Y2FzZSAxMDpyPXQucmVhZEludDY0KCksZS5zZXRFbmRUaW1lKHIpO2JyZWFrO2Nhc2UgMTE6cj10LnJlYWRJbnQ2NCgpLGUuc2V0T3JkZXIocik7YnJlYWs7Y2FzZSAxNjpyPXQucmVhZEludDMyKCksZS5zZXRWb3RlU2NvcmUocik7YnJlYWs7Y2FzZSAyMDpyPXQucmVhZEJ5dGVzKCksZS5zZXREZXNjcmlwdGlvbihyKTticmVhaztjYXNlIDIxOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFVybChyKTticmVhaztjYXNlIDIyOnI9dC5yZWFkSW50NjQoKSxlLnNldEZyZWVBc3NldE5ldExpbWl0KHIpO2JyZWFrO2Nhc2UgMjM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0UHVibGljRnJlZUFzc2V0TmV0TGltaXQocik7YnJlYWs7Y2FzZSAyNDpyPXQucmVhZEludDY0KCksZS5zZXRQdWJsaWNGcmVlQXNzZXROZXRVc2FnZShyKTticmVhaztjYXNlIDI1OnI9dC5yZWFkSW50NjQoKSxlLnNldFB1YmxpY0xhdGVzdEZyZWVOZXRUaW1lKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldElkKCkpLmxlbmd0aD4wJiZ0LndyaXRlU3RyaW5nKDQxLHIpLChyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0TmFtZV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKSwocj1lLmdldEFiYnJfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDMsciksMCE9PShyPWUuZ2V0VG90YWxTdXBwbHkoKSkmJnQud3JpdGVJbnQ2NCg0LHIpLChyPWUuZ2V0RnJvemVuU3VwcGx5TGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkTWVzc2FnZSg1LHIsVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLDAhPT0ocj1lLmdldFRyeE51bSgpKSYmdC53cml0ZUludDMyKDYsciksMCE9PShyPWUuZ2V0UHJlY2lzaW9uKCkpJiZ0LndyaXRlSW50MzIoNyxyKSwwIT09KHI9ZS5nZXROdW0oKSkmJnQud3JpdGVJbnQzMig4LHIpLDAhPT0ocj1lLmdldFN0YXJ0VGltZSgpKSYmdC53cml0ZUludDY0KDksciksMCE9PShyPWUuZ2V0RW5kVGltZSgpKSYmdC53cml0ZUludDY0KDEwLHIpLDAhPT0ocj1lLmdldE9yZGVyKCkpJiZ0LndyaXRlSW50NjQoMTEsciksMCE9PShyPWUuZ2V0Vm90ZVNjb3JlKCkpJiZ0LndyaXRlSW50MzIoMTYsciksKHI9ZS5nZXREZXNjcmlwdGlvbl9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMjAsciksKHI9ZS5nZXRVcmxfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDIxLHIpLDAhPT0ocj1lLmdldEZyZWVBc3NldE5ldExpbWl0KCkpJiZ0LndyaXRlSW50NjQoMjIsciksMCE9PShyPWUuZ2V0UHVibGljRnJlZUFzc2V0TmV0TGltaXQoKSkmJnQud3JpdGVJbnQ2NCgyMyxyKSwwIT09KHI9ZS5nZXRQdWJsaWNGcmVlQXNzZXROZXRVc2FnZSgpKSYmdC53cml0ZUludDY0KDI0LHIpLDAhPT0ocj1lLmdldFB1YmxpY0xhdGVzdEZyZWVOZXRUaW1lKCkpJiZ0LndyaXRlSW50NjQoMjUscil9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QuRnJvemVuU3VwcGx5LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QuRnJvemVuU3VwcGx5LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e2Zyb3plbkFtb3VudDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCksZnJvemVuRGF5czpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QuRnJvemVuU3VwcGx5O3JldHVybiBUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRJbnQ2NCgpO2Uuc2V0RnJvemVuQW1vdW50KHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEludDY0KCksZS5zZXRGcm96ZW5EYXlzKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDswIT09KHI9ZS5nZXRGcm96ZW5BbW91bnQoKSkmJnQud3JpdGVJbnQ2NCgxLHIpLDAhPT0ocj1lLmdldEZyb3plbkRheXMoKSkmJnQud3JpdGVJbnQ2NCgyLHIpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5wcm90b3R5cGUuZ2V0RnJvemVuQW1vdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwwKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkucHJvdG90eXBlLnNldEZyb3plbkFtb3VudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5Gcm96ZW5TdXBwbHkucHJvdG90eXBlLmdldEZyb3plbkRheXM9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseS5wcm90b3R5cGUuc2V0RnJvemVuRGF5cz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0SWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw0MSwiIil9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNldElkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcyw0MSxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0TmFtZV9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE5hbWUoKSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldE5hbWVfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0TmFtZSgpKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0TmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRBYmJyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldEFiYnJfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBYmJyKCkpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRBYmJyX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEFiYnIoKSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNldEFiYnI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0VG90YWxTdXBwbHk9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw0LDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRUb3RhbFN1cHBseT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0RnJvemVuU3VwcGx5TGlzdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LkZyb3plblN1cHBseSw1KX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0RnJvemVuU3VwcGx5TGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsNSxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuYWRkRnJvemVuU3VwcGx5PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsNSxlLFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QuRnJvemVuU3VwcGx5LHQpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5jbGVhckZyb3plblN1cHBseUxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRGcm96ZW5TdXBwbHlMaXN0KFtdKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0VHJ4TnVtPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNiwwKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0VHJ4TnVtPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw2LGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRQcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw3LDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRQcmVjaXNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDcsZSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldE51bT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDgsMCl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNldE51bT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsOCxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0U3RhcnRUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsOSwwKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0U3RhcnRUaW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw5LGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRFbmRUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTAsMCl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNldEVuZFRpbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDEwLGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPcmRlcj1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDExLDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPcmRlcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMTEsZSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldFZvdGVTY29yZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDE2LDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRWb3RlU2NvcmU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDE2LGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXREZXNjcmlwdGlvbj1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIwLCIiKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0RGVzY3JpcHRpb25fYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXREZXNjcmlwdGlvbigpKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0RGVzY3JpcHRpb25fYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0RGVzY3JpcHRpb24oKSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNldERlc2NyaXB0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIwLGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyMSwiIil9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldFVybF9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFVybCgpKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0VXJsX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFVybCgpKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0VXJsPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIxLGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRGcmVlQXNzZXROZXRMaW1pdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIyLDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRGcmVlQXNzZXROZXRMaW1pdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMjIsZSl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldFB1YmxpY0ZyZWVBc3NldE5ldExpbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMjMsMCl9LFRyb25XZWJQcm90by5Bc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNldFB1YmxpY0ZyZWVBc3NldE5ldExpbWl0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyMyxlKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0UHVibGljRnJlZUFzc2V0TmV0VXNhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyNCwwKX0sVHJvbldlYlByb3RvLkFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0UHVibGljRnJlZUFzc2V0TmV0VXNhZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDI0LGUpfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRQdWJsaWNMYXRlc3RGcmVlTmV0VGltZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDI1LDApfSxUcm9uV2ViUHJvdG8uQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRQdWJsaWNMYXRlc3RGcmVlTmV0VGltZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMjUsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e2Fzc2V0TmFtZTp0LmdldEFzc2V0TmFtZV9hc0I2NCgpLG93bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLHRvQWRkcmVzczp0LmdldFRvQWRkcmVzc19hc0I2NCgpLGFtb3VudDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDQsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRBc3NldE5hbWUocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDM6cj10LnJlYWRCeXRlcygpLGUuc2V0VG9BZGRyZXNzKHIpO2JyZWFrO2Nhc2UgNDpyPXQucmVhZEludDY0KCksZS5zZXRBbW91bnQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0QXNzZXROYW1lX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLChyPWUuZ2V0VG9BZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygzLHIpLDAhPT0ocj1lLmdldEFtb3VudCgpKSYmdC53cml0ZUludDY0KDQscil9LFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldEFzc2V0TmFtZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXRBc3NldE5hbWVfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRBc3NldE5hbWUoKSl9LFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldEFzc2V0TmFtZV9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRBc3NldE5hbWUoKSl9LFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QucHJvdG90eXBlLnNldEFzc2V0TmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJBc3NldENvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9BZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldFRvQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFRvQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9BZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFRvQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQXNzZXRDb250cmFjdC5wcm90b3R5cGUuc2V0VG9BZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldEFtb3VudD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsMCl9LFRyb25XZWJQcm90by5UcmFuc2ZlckFzc2V0Q29udHJhY3QucHJvdG90eXBlLnNldEFtb3VudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVW5mcmVlemVBc3NldENvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspaWYoMT09PXQuZ2V0RmllbGROdW1iZXIoKSl7dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKX1lbHNlIHQuc2tpcEZpZWxkKCk7cmV0dXJuIGV9LFRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcjsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5VbmZyZWV6ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQXNzZXRDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGRlc2NyaXB0aW9uOnQuZ2V0RGVzY3JpcHRpb25fYXNCNjQoKSx1cmw6dC5nZXRVcmxfYXNCNjQoKSxuZXdMaW1pdDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDQsMCksbmV3UHVibGljTGltaXQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw1LDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0RGVzY3JpcHRpb24ocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFVybChyKTticmVhaztjYXNlIDQ6cj10LnJlYWRJbnQ2NCgpLGUuc2V0TmV3TGltaXQocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldE5ld1B1YmxpY0xpbWl0KHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldERlc2NyaXB0aW9uX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLChyPWUuZ2V0VXJsX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygzLHIpLDAhPT0ocj1lLmdldE5ld0xpbWl0KCkpJiZ0LndyaXRlSW50NjQoNCxyKSwwIT09KHI9ZS5nZXROZXdQdWJsaWNMaW1pdCgpKSYmdC53cml0ZUludDY0KDUscil9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldERlc2NyaXB0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXREZXNjcmlwdGlvbl9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldERlc2NyaXB0aW9uKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0RGVzY3JpcHRpb25fYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0RGVzY3JpcHRpb24oKSl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5zZXREZXNjcmlwdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdC5wcm90b3R5cGUuZ2V0VXJsPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXRVcmxfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRVcmwoKSl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXRVcmxfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0VXJsKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQXNzZXRDb250cmFjdC5wcm90b3R5cGUuc2V0VXJsPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5nZXROZXdMaW1pdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsMCl9LFRyb25XZWJQcm90by5VcGRhdGVBc3NldENvbnRyYWN0LnByb3RvdHlwZS5zZXROZXdMaW1pdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0sVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLmdldE5ld1B1YmxpY0xpbWl0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNSwwKX0sVHJvbldlYlByb3RvLlVwZGF0ZUFzc2V0Q29udHJhY3QucHJvdG90eXBlLnNldE5ld1B1YmxpY0xpbWl0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw1LGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSx0b0FkZHJlc3M6dC5nZXRUb0FkZHJlc3NfYXNCNjQoKSxhc3NldE5hbWU6dC5nZXRBc3NldE5hbWVfYXNCNjQoKSxhbW91bnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0LDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFRvQWRkcmVzcyhyKTticmVhaztjYXNlIDM6cj10LnJlYWRCeXRlcygpLGUuc2V0QXNzZXROYW1lKHIpO2JyZWFrO2Nhc2UgNDpyPXQucmVhZEludDY0KCksZS5zZXRBbW91bnQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0VG9BZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLChyPWUuZ2V0QXNzZXROYW1lX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygzLHIpLDAhPT0ocj1lLmdldEFtb3VudCgpKSYmdC53cml0ZUludDY0KDQscil9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9BZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9BZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0VG9BZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldFRvQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRUb0FkZHJlc3MoKSl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0VG9BZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0QXNzZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0QXNzZXROYW1lX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0QXNzZXROYW1lKCkpfSxUcm9uV2ViUHJvdG8uUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QucHJvdG90eXBlLmdldEFzc2V0TmFtZV9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRBc3NldE5hbWUoKSl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuc2V0QXNzZXROYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5QYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdC5wcm90b3R5cGUuZ2V0QW1vdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRBbW91bnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQsZSl9LG8ub2JqZWN0LmV4dGVuZCh0LFRyb25XZWJQcm90byl9LDE3OTE6KGUsdCxyKT0+e3ZhciBuPXIoNTU5NSksbz1uLGk9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzfHwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHx2b2lkIDAhPT1pJiZpfHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LmNhbGwobnVsbCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksYT1yKDc3NjQpO28ub2JqZWN0LmV4dGVuZChwcm90byxhKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVxdWVzdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2UiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllciIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkFjY291bnRUcmFjZSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbiIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0IixudWxsLGkpLFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdCIpLFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0IiksVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0IiksVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5yZXBlYXRlZEZpZWxkc18sbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UiKSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuT3BlcmF0aW9uPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbixuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24uZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24iKSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2U9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnJlcGVhdGVkRmllbGRzXyxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2Usbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZSIpLFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXI9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllciIpLFRyb25XZWJQcm90by5BY2NvdW50VHJhY2U9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQWNjb3VudFRyYWNlLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkFjY291bnRUcmFjZSIpLFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllcj1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllcixuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllci5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyIiksVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVxdWVzdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXF1ZXN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXF1ZXN0IiksVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2U9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZSxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZSIpLFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0IiksVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCIpLFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLldpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLldpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdCIpLFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCIpLFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0IiksVHJvbldlYlByb3RvLkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5DYW5jZWxBbGxVbmZyZWV6ZVYyQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0Iiksbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCksZnJvemVuQmFsYW5jZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCksZnJvemVuRHVyYXRpb246bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApLHJlc291cmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMTAsMCkscmVjZWl2ZXJBZGRyZXNzOnQuZ2V0UmVjZWl2ZXJBZGRyZXNzX2FzQjY0KCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkSW50NjQoKSxlLnNldEZyb3plbkJhbGFuY2Uocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkSW50NjQoKSxlLnNldEZyb3plbkR1cmF0aW9uKHIpO2JyZWFrO2Nhc2UgMTA6cj10LnJlYWRFbnVtKCksZS5zZXRSZXNvdXJjZShyKTticmVhaztjYXNlIDE1OnI9dC5yZWFkQnl0ZXMoKSxlLnNldFJlY2VpdmVyQWRkcmVzcyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksMCE9PShyPWUuZ2V0RnJvemVuQmFsYW5jZSgpKSYmdC53cml0ZUludDY0KDIsciksMCE9PShyPWUuZ2V0RnJvemVuRHVyYXRpb24oKSkmJnQud3JpdGVJbnQ2NCgzLHIpLDAhPT0ocj1lLmdldFJlc291cmNlKCkpJiZ0LndyaXRlRW51bSgxMCxyKSwocj1lLmdldFJlY2VpdmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMTUscil9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRGcm96ZW5CYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuc2V0RnJvemVuQmFsYW5jZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0RnJvemVuRHVyYXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLDApfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRGcm96ZW5EdXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVzb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxMCwwKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuc2V0UmVzb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQodGhpcywxMCxlKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVjZWl2ZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTUsIiIpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRSZWNlaXZlckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRSZWNlaXZlckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLmdldFJlY2VpdmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRSZWNlaXZlckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnNldFJlY2VpdmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxNSxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCkscmVzb3VyY2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxMCwwKSxyZWNlaXZlckFkZHJlc3M6dC5nZXRSZWNlaXZlckFkZHJlc3NfYXNCNjQoKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0T3duZXJBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMTA6cj10LnJlYWRFbnVtKCksZS5zZXRSZXNvdXJjZShyKTticmVhaztjYXNlIDE1OnI9dC5yZWFkQnl0ZXMoKSxlLnNldFJlY2VpdmVyQWRkcmVzcyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksMCE9PShyPWUuZ2V0UmVzb3VyY2UoKSkmJnQud3JpdGVFbnVtKDEwLHIpLChyPWUuZ2V0UmVjZWl2ZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxNSxyKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRSZXNvdXJjZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEwLDApfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnNldFJlc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zRW51bUZpZWxkKHRoaXMsMTAsZSl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVjZWl2ZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTUsIiIpfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLmdldFJlY2VpdmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFJlY2VpdmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRSZWNlaXZlckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0UmVjZWl2ZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnNldFJlY2VpdmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxNSxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5XaXRoZHJhd0JhbGFuY2VDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5XaXRoZHJhd0JhbGFuY2VDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uV2l0aGRyYXdCYWxhbmNlQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5XaXRoZHJhd0JhbGFuY2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylpZigxPT09dC5nZXRGaWVsZE51bWJlcigpKXt2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0T3duZXJBZGRyZXNzKHIpfWVsc2UgdC5za2lwRmllbGQoKTtyZXR1cm4gZX0sVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5XaXRoZHJhd0JhbGFuY2VDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5XaXRoZHJhd0JhbGFuY2VDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSx0b0FkZHJlc3M6dC5nZXRUb0FkZHJlc3NfYXNCNjQoKSxhbW91bnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0VG9BZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEludDY0KCksZS5zZXRBbW91bnQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0VG9BZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLDAhPT0ocj1lLmdldEFtb3VudCgpKSYmdC53cml0ZUludDY0KDMscil9LFRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5UcmFuc2ZlckNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QucHJvdG90eXBlLmdldFRvQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9BZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0VG9BZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9BZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFRvQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QucHJvdG90eXBlLnNldFRvQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNmZXJDb250cmFjdC5wcm90b3R5cGUuZ2V0QW1vdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLlRyYW5zZmVyQ29udHJhY3QucHJvdG90eXBlLnNldEFtb3VudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLnJlcGVhdGVkRmllbGRzXz1bMl0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17dHJhbnNhY3Rpb25JZGVudGlmaWVyOnQuZ2V0VHJhbnNhY3Rpb25JZGVudGlmaWVyX2FzQjY0KCksb3BlcmF0aW9uTGlzdDpuLk1lc3NhZ2UudG9PYmplY3RMaXN0KHQuZ2V0T3BlcmF0aW9uTGlzdCgpLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24udG9PYmplY3QsZSksdHlwZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsIiIpLHN0YXR1czpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDQsIiIpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlO3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRUcmFuc2FjdGlvbklkZW50aWZpZXIocik7YnJlYWs7Y2FzZSAyOnI9bmV3IFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24sdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLmFkZE9wZXJhdGlvbihyKTticmVhaztjYXNlIDM6cj10LnJlYWRTdHJpbmcoKSxlLnNldFR5cGUocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkU3RyaW5nKCksZS5zZXRTdGF0dXMocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0VHJhbnNhY3Rpb25JZGVudGlmaWVyX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0T3BlcmF0aW9uTGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkTWVzc2FnZSgyLHIsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXRUeXBlKCkpLmxlbmd0aD4wJiZ0LndyaXRlU3RyaW5nKDMsciksKHI9ZS5nZXRTdGF0dXMoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoNCxyKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24ucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuT3BlcmF0aW9uLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24udG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3BlcmF0aW9uSWRlbnRpZmllcjpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCksYWRkcmVzczp0LmdldEFkZHJlc3NfYXNCNjQoKSxhbW91bnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24uZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb247cmV0dXJuIFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRJbnQ2NCgpO2Uuc2V0T3BlcmF0aW9uSWRlbnRpZmllcihyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0QWRkcmVzcyhyKTticmVhaztjYXNlIDM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0QW1vdW50KHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbi5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuT3BlcmF0aW9uLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbi5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDswIT09KHI9ZS5nZXRPcGVyYXRpb25JZGVudGlmaWVyKCkpJiZ0LndyaXRlSW50NjQoMSxyKSwocj1lLmdldEFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDIsciksMCE9PShyPWUuZ2V0QW1vdW50KCkpJiZ0LndyaXRlSW50NjQoMyxyKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbi5wcm90b3R5cGUuZ2V0T3BlcmF0aW9uSWRlbnRpZmllcj1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsMCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24ucHJvdG90eXBlLnNldE9wZXJhdGlvbklkZW50aWZpZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24ucHJvdG90eXBlLmdldEFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbi5wcm90b3R5cGUuZ2V0QWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24ucHJvdG90eXBlLmdldEFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLk9wZXJhdGlvbi5wcm90b3R5cGUuc2V0QWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRBbW91bnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLDApfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuT3BlcmF0aW9uLnByb3RvdHlwZS5zZXRBbW91bnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuZ2V0VHJhbnNhY3Rpb25JZGVudGlmaWVyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuZ2V0VHJhbnNhY3Rpb25JZGVudGlmaWVyX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0VHJhbnNhY3Rpb25JZGVudGlmaWVyKCkpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UucHJvdG90eXBlLmdldFRyYW5zYWN0aW9uSWRlbnRpZmllcl9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRUcmFuc2FjdGlvbklkZW50aWZpZXIoKSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuc2V0VHJhbnNhY3Rpb25JZGVudGlmaWVyPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuZ2V0T3BlcmF0aW9uTGlzdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UuT3BlcmF0aW9uLDIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UucHJvdG90eXBlLnNldE9wZXJhdGlvbkxpc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuYWRkT3BlcmF0aW9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMixlLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5PcGVyYXRpb24sdCl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuY2xlYXJPcGVyYXRpb25MaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0T3BlcmF0aW9uTGlzdChbXSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsIiIpfSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UucHJvdG90eXBlLnNldFR5cGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuZ2V0U3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwiIil9LFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5wcm90b3R5cGUuc2V0U3RhdHVzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcyw0LGUpfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UucmVwZWF0ZWRGaWVsZHNfPVszXSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByLG89e2Jsb2NrSWRlbnRpZmllcjoocj10LmdldEJsb2NrSWRlbnRpZmllcigpKSYmVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci50b09iamVjdChlLHIpLHRpbWVzdGFtcDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCksdHJhbnNhY3Rpb25CYWxhbmNlVHJhY2VMaXN0Om4uTWVzc2FnZS50b09iamVjdExpc3QodC5nZXRUcmFuc2FjdGlvbkJhbGFuY2VUcmFjZUxpc3QoKSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UudG9PYmplY3QsZSl9O3JldHVybiBlJiYoby4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxvfSksVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2U7cmV0dXJuIFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9bmV3IFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXI7dC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldEJsb2NrSWRlbnRpZmllcihyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0VGltZXN0YW1wKHIpO2JyZWFrO2Nhc2UgMzpyPW5ldyBUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5UcmFuc2FjdGlvbkJhbGFuY2VUcmFjZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2Uocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwO251bGwhPShyPWUuZ2V0QmxvY2tJZGVudGlmaWVyKCkpJiZ0LndyaXRlTWVzc2FnZSgxLHIsVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksMCE9PShyPWUuZ2V0VGltZXN0YW1wKCkpJiZ0LndyaXRlSW50NjQoMixyKSwocj1lLmdldFRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlTGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkTWVzc2FnZSgzLHIsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17aGFzaDp0LmdldEhhc2hfYXNCNjQoKSxudW1iZXI6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXI7cmV0dXJuIFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0SGFzaChyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0TnVtYmVyKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldEhhc2hfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksMCE9PShyPWUuZ2V0TnVtYmVyKCkpJiZ0LndyaXRlSW50NjQoMixyKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5wcm90b3R5cGUuZ2V0SGFzaD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLnByb3RvdHlwZS5nZXRIYXNoX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0SGFzaCgpKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5wcm90b3R5cGUuZ2V0SGFzaF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRIYXNoKCkpfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLnByb3RvdHlwZS5zZXRIYXNoPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIucHJvdG90eXBlLmdldE51bWJlcj1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIucHJvdG90eXBlLnNldE51bWJlcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnByb3RvdHlwZS5nZXRCbG9ja0lkZW50aWZpZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIsMSl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5wcm90b3R5cGUuc2V0QmxvY2tJZGVudGlmaWVyPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnByb3RvdHlwZS5jbGVhckJsb2NrSWRlbnRpZmllcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEJsb2NrSWRlbnRpZmllcih2b2lkIDApfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UucHJvdG90eXBlLmhhc0Jsb2NrSWRlbnRpZmllcj1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywxKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnByb3RvdHlwZS5nZXRUaW1lc3RhbXA9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UucHJvdG90eXBlLnNldFRpbWVzdGFtcD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnByb3RvdHlwZS5nZXRUcmFuc2FjdGlvbkJhbGFuY2VUcmFjZUxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlLDMpfSxUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UucHJvdG90eXBlLnNldFRyYW5zYWN0aW9uQmFsYW5jZVRyYWNlTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLnByb3RvdHlwZS5hZGRUcmFuc2FjdGlvbkJhbGFuY2VUcmFjZT1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDMsZSxUcm9uV2ViUHJvdG8uVHJhbnNhY3Rpb25CYWxhbmNlVHJhY2UsdCl9LFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5wcm90b3R5cGUuY2xlYXJUcmFuc2FjdGlvbkJhbGFuY2VUcmFjZUxpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRUcmFuc2FjdGlvbkJhbGFuY2VUcmFjZUxpc3QoW10pfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50VHJhY2UudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtiYWxhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSwwKSxwbGFjZWhvbGRlcjpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDk5LDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5BY2NvdW50VHJhY2UuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5BY2NvdW50VHJhY2U7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50VHJhY2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50VHJhY2UuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRJbnQ2NCgpO2Uuc2V0QmFsYW5jZShyKTticmVhaztjYXNlIDk5OnI9dC5yZWFkSW50NjQoKSxlLnNldFBsYWNlaG9sZGVyKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudFRyYWNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDswIT09KHI9ZS5nZXRCYWxhbmNlKCkpJiZ0LndyaXRlSW50NjQoMSxyKSwwIT09KHI9ZS5nZXRQbGFjZWhvbGRlcigpKSYmdC53cml0ZUludDY0KDk5LHIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudFRyYWNlLnByb3RvdHlwZS5nZXRCYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwwKX0sVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5wcm90b3R5cGUuc2V0QmFsYW5jZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5wcm90b3R5cGUuZ2V0UGxhY2Vob2xkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw5OSwwKX0sVHJvbldlYlByb3RvLkFjY291bnRUcmFjZS5wcm90b3R5cGUuc2V0UGxhY2Vob2xkZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDk5LGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllci50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXthZGRyZXNzOnQuZ2V0QWRkcmVzc19hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllci5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyO3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudElkZW50aWZpZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllci5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspaWYoMT09PXQuZ2V0RmllbGROdW1iZXIoKSl7dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldEFkZHJlc3Mocil9ZWxzZSB0LnNraXBGaWVsZCgpO3JldHVybiBlfSxUcm9uV2ViUHJvdG8uQWNjb3VudElkZW50aWZpZXIucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI7KHI9ZS5nZXRBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpfSxUcm9uV2ViUHJvdG8uQWNjb3VudElkZW50aWZpZXIucHJvdG90eXBlLmdldEFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyLnByb3RvdHlwZS5nZXRBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyLnByb3RvdHlwZS5nZXRBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllci5wcm90b3R5cGUuc2V0QWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVxdWVzdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVxdWVzdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByLG49e2FjY291bnRJZGVudGlmaWVyOihyPXQuZ2V0QWNjb3VudElkZW50aWZpZXIoKSkmJlRyb25XZWJQcm90by5BY2NvdW50SWRlbnRpZmllci50b09iamVjdChlLHIpLGJsb2NrSWRlbnRpZmllcjoocj10LmdldEJsb2NrSWRlbnRpZmllcigpKSYmVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci50b09iamVjdChlLHIpfTtyZXR1cm4gZSYmKG4uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksbn0pLFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3Q7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj1uZXcgVHJvbldlYlByb3RvLkFjY291bnRJZGVudGlmaWVyO3QucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQWNjb3VudElkZW50aWZpZXIuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldEFjY291bnRJZGVudGlmaWVyKHIpO2JyZWFrO2Nhc2UgMjpyPW5ldyBUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRCbG9ja0lkZW50aWZpZXIocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXF1ZXN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXF1ZXN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwO251bGwhPShyPWUuZ2V0QWNjb3VudElkZW50aWZpZXIoKSkmJnQud3JpdGVNZXNzYWdlKDEscixUcm9uV2ViUHJvdG8uQWNjb3VudElkZW50aWZpZXIuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLG51bGwhPShyPWUuZ2V0QmxvY2tJZGVudGlmaWVyKCkpJiZ0LndyaXRlTWVzc2FnZSgyLHIsVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcil9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QucHJvdG90eXBlLmdldEFjY291bnRJZGVudGlmaWVyPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uQWNjb3VudElkZW50aWZpZXIsMSl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QucHJvdG90eXBlLnNldEFjY291bnRJZGVudGlmaWVyPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVxdWVzdC5wcm90b3R5cGUuY2xlYXJBY2NvdW50SWRlbnRpZmllcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEFjY291bnRJZGVudGlmaWVyKHZvaWQgMCl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QucHJvdG90eXBlLmhhc0FjY291bnRJZGVudGlmaWVyPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPW4uTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDEpfSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXF1ZXN0LnByb3RvdHlwZS5nZXRCbG9ja0lkZW50aWZpZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIsMil9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QucHJvdG90eXBlLnNldEJsb2NrSWRlbnRpZmllcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QucHJvdG90eXBlLmNsZWFyQmxvY2tJZGVudGlmaWVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0QmxvY2tJZGVudGlmaWVyKHZvaWQgMCl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlcXVlc3QucHJvdG90eXBlLmhhc0Jsb2NrSWRlbnRpZmllcj1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywyKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2UudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2UudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcixvPXtiYWxhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMSwwKSxibG9ja0lkZW50aWZpZXI6KHI9dC5nZXRCbG9ja0lkZW50aWZpZXIoKSkmJlRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIudG9PYmplY3QoZSxyKX07cmV0dXJuIGUmJihvLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLG99KSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZS5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2U7cmV0dXJuIFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEludDY0KCk7ZS5zZXRCYWxhbmNlKHIpO2JyZWFrO2Nhc2UgMjpyPW5ldyBUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLHQucmVhZE1lc3NhZ2UocixUcm9uV2ViUHJvdG8uQmxvY2tCYWxhbmNlVHJhY2UuQmxvY2tJZGVudGlmaWVyLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRCbG9ja0lkZW50aWZpZXIocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOzAhPT0ocj1lLmdldEJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCgxLHIpLG51bGwhPShyPWUuZ2V0QmxvY2tJZGVudGlmaWVyKCkpJiZ0LndyaXRlTWVzc2FnZSgyLHIsVHJvbldlYlByb3RvLkJsb2NrQmFsYW5jZVRyYWNlLkJsb2NrSWRlbnRpZmllci5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcil9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLnByb3RvdHlwZS5nZXRCYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwwKX0sVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2UucHJvdG90eXBlLnNldEJhbGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLnByb3RvdHlwZS5nZXRCbG9ja0lkZW50aWZpZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5CbG9ja0JhbGFuY2VUcmFjZS5CbG9ja0lkZW50aWZpZXIsMil9LFRyb25XZWJQcm90by5BY2NvdW50QmFsYW5jZVJlc3BvbnNlLnByb3RvdHlwZS5zZXRCbG9ja0lkZW50aWZpZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uQWNjb3VudEJhbGFuY2VSZXNwb25zZS5wcm90b3R5cGUuY2xlYXJCbG9ja0lkZW50aWZpZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRCbG9ja0lkZW50aWZpZXIodm9pZCAwKX0sVHJvbldlYlByb3RvLkFjY291bnRCYWxhbmNlUmVzcG9uc2UucHJvdG90eXBlLmhhc0Jsb2NrSWRlbnRpZmllcj1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywyKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCksZnJvemVuQmFsYW5jZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCkscmVzb3VyY2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkSW50NjQoKSxlLnNldEZyb3plbkJhbGFuY2Uocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkRW51bSgpLGUuc2V0UmVzb3VyY2Uocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldEZyb3plbkJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCgyLHIpLDAhPT0ocj1lLmdldFJlc291cmNlKCkpJiZ0LndyaXRlRW51bSgzLHIpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLmdldEZyb3plbkJhbGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLnNldEZyb3plbkJhbGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5GcmVlemVCYWxhbmNlVjJDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVzb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLDApfSxUcm9uV2ViUHJvdG8uRnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLnNldFJlc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zRW51bUZpZWxkKHRoaXMsMyxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCksdW5mcmVlemVCYWxhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSxyZXNvdXJjZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0T3duZXJBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEludDY0KCksZS5zZXRVbmZyZWV6ZUJhbGFuY2Uocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkRW51bSgpLGUuc2V0UmVzb3VyY2Uocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldFVuZnJlZXplQmFsYW5jZSgpKSYmdC53cml0ZUludDY0KDIsciksMCE9PShyPWUuZ2V0UmVzb3VyY2UoKSkmJnQud3JpdGVFbnVtKDMscil9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlVuZnJlZXplQmFsYW5jZVYyQ29udHJhY3QucHJvdG90eXBlLmdldFVuZnJlZXplQmFsYW5jZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS5zZXRVbmZyZWV6ZUJhbGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS5nZXRSZXNvdXJjZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsMCl9LFRyb25XZWJQcm90by5VbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0LnByb3RvdHlwZS5zZXRSZXNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0VudW1GaWVsZCh0aGlzLDMsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLldpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KWlmKDE9PT10LmdldEZpZWxkTnVtYmVyKCkpe3ZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocil9ZWxzZSB0LnNraXBGaWVsZCgpO3JldHVybiBlfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEscil9LFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSxyZXNvdXJjZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCksYmFsYW5jZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCkscmVjZWl2ZXJBZGRyZXNzOnQuZ2V0UmVjZWl2ZXJBZGRyZXNzX2FzQjY0KCksbG9jazpuLk1lc3NhZ2UuZ2V0Qm9vbGVhbkZpZWxkV2l0aERlZmF1bHQodCw1LCExKSxsb2NrUGVyaW9kOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNiwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRFbnVtKCksZS5zZXRSZXNvdXJjZShyKTticmVhaztjYXNlIDM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0QmFsYW5jZShyKTticmVhaztjYXNlIDQ6cj10LnJlYWRCeXRlcygpLGUuc2V0UmVjZWl2ZXJBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgNTpyPXQucmVhZEJvb2woKSxlLnNldExvY2socik7YnJlYWs7Y2FzZSA2OnI9dC5yZWFkSW50NjQoKSxlLnNldExvY2tQZXJpb2Qocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldFJlc291cmNlKCkpJiZ0LndyaXRlRW51bSgyLHIpLDAhPT0ocj1lLmdldEJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCgzLHIpLChyPWUuZ2V0UmVjZWl2ZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcyg0LHIpLChyPWUuZ2V0TG9jaygpKSYmdC53cml0ZUJvb2woNSxyKSwwIT09KHI9ZS5nZXRMb2NrUGVyaW9kKCkpJiZ0LndyaXRlSW50NjQoNixyKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldFJlc291cmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2V0UmVzb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNFbnVtRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRCYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2V0QmFsYW5jZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVjZWl2ZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwiIil9LFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldFJlY2VpdmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFJlY2VpdmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVjZWl2ZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFJlY2VpdmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2V0UmVjZWl2ZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldExvY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHRoaXMsNSwhMSl9LFRyb25XZWJQcm90by5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLnNldExvY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCb29sZWFuRmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRMb2NrUGVyaW9kPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNiwwKX0sVHJvbldlYlByb3RvLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2V0TG9ja1BlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNixlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCkscmVzb3VyY2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApLGJhbGFuY2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApLHJlY2VpdmVyQWRkcmVzczp0LmdldFJlY2VpdmVyQWRkcmVzc19hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkRW51bSgpLGUuc2V0UmVzb3VyY2Uocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkSW50NjQoKSxlLnNldEJhbGFuY2Uocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkQnl0ZXMoKSxlLnNldFJlY2VpdmVyQWRkcmVzcyhyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksMCE9PShyPWUuZ2V0UmVzb3VyY2UoKSkmJnQud3JpdGVFbnVtKDIsciksMCE9PShyPWUuZ2V0QmFsYW5jZSgpKSYmdC53cml0ZUludDY0KDMsciksKHI9ZS5nZXRSZWNlaXZlckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDQscil9LFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5VbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5wcm90b3R5cGUuZ2V0UmVzb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLnNldFJlc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zRW51bUZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRCYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRCYWxhbmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldFJlY2VpdmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsIiIpfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLmdldFJlY2VpdmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFJlY2VpdmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRSZWNlaXZlckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0UmVjZWl2ZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QucHJvdG90eXBlLnNldFJlY2VpdmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcyw0LGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5DYW5jZWxBbGxVbmZyZWV6ZVYyQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylpZigxPT09dC5nZXRGaWVsZE51bWJlcigpKXt2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0T3duZXJBZGRyZXNzKHIpfWVsc2UgdC5za2lwRmllbGQoKTtyZXR1cm4gZX0sVHJvbldlYlByb3RvLkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpfSxUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQ2FuY2VsQWxsVW5mcmVlemVWMkNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sby5vYmplY3QuZXh0ZW5kKHQsVHJvbldlYlByb3RvKX0sNzc2NDooZSx0LHIpPT57dmFyIG49cig1NTk1KSxvPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpc3x8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8dm9pZCAwIT09byYmb3x8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfS5jYWxsKG51bGwpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO24uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uUmVzb3VyY2VDb2RlIixudWxsLG8pLFRyb25XZWJQcm90by5SZXNvdXJjZUNvZGU9e0JBTkRXSURUSDowLEVORVJHWToxLFRST05fUE9XRVI6Mn0sbi5vYmplY3QuZXh0ZW5kKHQsVHJvbldlYlByb3RvKX0sOTUyMDooZSx0LHIpPT57dmFyIG49cig1NTk1KSxvPW4saT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXN8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fHZvaWQgMCE9PWkmJml8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30uY2FsbChudWxsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTtvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0IixudWxsLGkpLFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0IiksVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0IiksVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5FeGNoYW5nZVRyYW5zYWN0aW9uQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0Iiksbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17b3duZXJBZGRyZXNzOnQuZ2V0T3duZXJBZGRyZXNzX2FzQjY0KCksZmlyc3RUb2tlbklkOnQuZ2V0Rmlyc3RUb2tlbklkX2FzQjY0KCksZmlyc3RUb2tlbkJhbGFuY2U6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApLHNlY29uZFRva2VuSWQ6dC5nZXRTZWNvbmRUb2tlbklkX2FzQjY0KCksc2Vjb25kVG9rZW5CYWxhbmNlOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNSwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldEZpcnN0VG9rZW5JZChyKTticmVhaztjYXNlIDM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0Rmlyc3RUb2tlbkJhbGFuY2Uocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkQnl0ZXMoKSxlLnNldFNlY29uZFRva2VuSWQocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldFNlY29uZFRva2VuQmFsYW5jZShyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksKHI9ZS5nZXRGaXJzdFRva2VuSWRfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDIsciksMCE9PShyPWUuZ2V0Rmlyc3RUb2tlbkJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCgzLHIpLChyPWUuZ2V0U2Vjb25kVG9rZW5JZF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoNCxyKSwwIT09KHI9ZS5nZXRTZWNvbmRUb2tlbkJhbGFuY2UoKSkmJnQud3JpdGVJbnQ2NCg1LHIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRGaXJzdFRva2VuSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldEZpcnN0VG9rZW5JZF9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldEZpcnN0VG9rZW5JZCgpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldEZpcnN0VG9rZW5JZF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRGaXJzdFRva2VuSWQoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRGaXJzdFRva2VuSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldEZpcnN0VG9rZW5CYWxhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLnNldEZpcnN0VG9rZW5CYWxhbmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0U2Vjb25kVG9rZW5JZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsIiIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0U2Vjb25kVG9rZW5JZF9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFNlY29uZFRva2VuSWQoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRTZWNvbmRUb2tlbklkX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFNlY29uZFRva2VuSWQoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRTZWNvbmRUb2tlbklkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUNyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRTZWNvbmRUb2tlbkJhbGFuY2U9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw1LDApfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuc2V0U2Vjb25kVG9rZW5CYWxhbmNlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw1LGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSxleGNoYW5nZUlkOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSx0b2tlbklkOnQuZ2V0VG9rZW5JZF9hc0I2NCgpLHF1YW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkSW50NjQoKSxlLnNldEV4Y2hhbmdlSWQocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFRva2VuSWQocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkSW50NjQoKSxlLnNldFF1YW50KHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRFeGNoYW5nZUlkKCkpJiZ0LndyaXRlSW50NjQoMixyKSwocj1lLmdldFRva2VuSWRfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDMsciksMCE9PShyPWUuZ2V0UXVhbnQoKSkmJnQud3JpdGVJbnQ2NCg0LHIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VJbmplY3RDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LnByb3RvdHlwZS5nZXRFeGNoYW5nZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLnNldEV4Y2hhbmdlSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LnByb3RvdHlwZS5nZXRUb2tlbklkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5FeGNoYW5nZUluamVjdENvbnRyYWN0LnByb3RvdHlwZS5nZXRUb2tlbklkX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0VG9rZW5JZCgpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLmdldFRva2VuSWRfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0VG9rZW5JZCgpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLnNldFRva2VuSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLmdldFF1YW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QucHJvdG90eXBlLnNldFF1YW50PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw0LGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSxleGNoYW5nZUlkOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSx0b2tlbklkOnQuZ2V0VG9rZW5JZF9hc0I2NCgpLHF1YW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNCwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0RXhjaGFuZ2VJZChyKTticmVhaztjYXNlIDM6cj10LnJlYWRCeXRlcygpLGUuc2V0VG9rZW5JZChyKTticmVhaztjYXNlIDQ6cj10LnJlYWRJbnQ2NCgpLGUuc2V0UXVhbnQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldEV4Y2hhbmdlSWQoKSkmJnQud3JpdGVJbnQ2NCgyLHIpLChyPWUuZ2V0VG9rZW5JZF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMyxyKSwwIT09KHI9ZS5nZXRRdWFudCgpKSYmdC53cml0ZUludDY0KDQscil9LFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LnByb3RvdHlwZS5nZXRFeGNoYW5nZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdC5wcm90b3R5cGUuc2V0RXhjaGFuZ2VJZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9rZW5JZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsIiIpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LnByb3RvdHlwZS5nZXRUb2tlbklkX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0VG9rZW5JZCgpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdC5wcm90b3R5cGUuZ2V0VG9rZW5JZF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRUb2tlbklkKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0LnByb3RvdHlwZS5zZXRUb2tlbklkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3QucHJvdG90eXBlLmdldFF1YW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdC5wcm90b3R5cGUuc2V0UXVhbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGV4Y2hhbmdlSWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApLHRva2VuSWQ6dC5nZXRUb2tlbklkX2FzQjY0KCkscXVhbnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0LDApLGV4cGVjdGVkOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNSwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0RXhjaGFuZ2VJZChyKTticmVhaztjYXNlIDM6cj10LnJlYWRCeXRlcygpLGUuc2V0VG9rZW5JZChyKTticmVhaztjYXNlIDQ6cj10LnJlYWRJbnQ2NCgpLGUuc2V0UXVhbnQocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldEV4cGVjdGVkKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRFeGNoYW5nZUlkKCkpJiZ0LndyaXRlSW50NjQoMixyKSwocj1lLmdldFRva2VuSWRfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDMsciksMCE9PShyPWUuZ2V0UXVhbnQoKSkmJnQud3JpdGVJbnQ2NCg0LHIpLDAhPT0ocj1lLmdldEV4cGVjdGVkKCkpJiZ0LndyaXRlSW50NjQoNSxyKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5FeGNoYW5nZVRyYW5zYWN0aW9uQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5FeGNoYW5nZVRyYW5zYWN0aW9uQ29udHJhY3QucHJvdG90eXBlLmdldEV4Y2hhbmdlSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnByb3RvdHlwZS5zZXRFeGNoYW5nZUlkPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnByb3RvdHlwZS5nZXRUb2tlbklkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5FeGNoYW5nZVRyYW5zYWN0aW9uQ29udHJhY3QucHJvdG90eXBlLmdldFRva2VuSWRfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRUb2tlbklkKCkpfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnByb3RvdHlwZS5nZXRUb2tlbklkX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFRva2VuSWQoKSl9LFRyb25XZWJQcm90by5FeGNoYW5nZVRyYW5zYWN0aW9uQ29udHJhY3QucHJvdG90eXBlLnNldFRva2VuSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5wcm90b3R5cGUuZ2V0UXVhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw0LDApfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnByb3RvdHlwZS5zZXRRdWFudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNCxlKX0sVHJvbldlYlByb3RvLkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdC5wcm90b3R5cGUuZ2V0RXhwZWN0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw1LDApfSxUcm9uV2ViUHJvdG8uRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LnByb3RvdHlwZS5zZXRFeHBlY3RlZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNSxlKX0sby5vYmplY3QuZXh0ZW5kKHQsVHJvbldlYlByb3RvKX0sMzU0NDooZSx0LHIpPT57dmFyIG49cig1NTk1KSxvPW4saT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXN8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fHZvaWQgMCE9PWkmJml8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30uY2FsbChudWxsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTtvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3QiLG51bGwsaSksVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uUHJvcG9zYWxBcHByb3ZlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0IiksVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uUHJvcG9zYWxEZWxldGVDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uUHJvcG9zYWxEZWxldGVDb250cmFjdCIpLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uUHJvcG9zYWxBcHByb3ZlQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uUHJvcG9zYWxBcHByb3ZlQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLHByb3Bvc2FsSWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApLGlzQWRkQXBwcm92YWw6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsMywhMSl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uUHJvcG9zYWxBcHByb3ZlQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0UHJvcG9zYWxJZChyKTticmVhaztjYXNlIDM6cj10LnJlYWRCb29sKCksZS5zZXRJc0FkZEFwcHJvdmFsKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRQcm9wb3NhbElkKCkpJiZ0LndyaXRlSW50NjQoMixyKSwocj1lLmdldElzQWRkQXBwcm92YWwoKSkmJnQud3JpdGVCb29sKDMscil9LFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWxBcHByb3ZlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5wcm90b3R5cGUuZ2V0UHJvcG9zYWxJZD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdC5wcm90b3R5cGUuc2V0UHJvcG9zYWxJZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRJc0FkZEFwcHJvdmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsITEpfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWxBcHByb3ZlQ29udHJhY3QucHJvdG90eXBlLnNldElzQWRkQXBwcm92YWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCb29sZWFuRmllbGQodGhpcywzLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByLG49e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLHBhcmFtZXRlcnNNYXA6KHI9dC5nZXRQYXJhbWV0ZXJzTWFwKCkpP3IudG9PYmplY3QoZSx2b2lkIDApOltdfTtyZXR1cm4gZSYmKG4uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksbn0pLFRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj1lLmdldFBhcmFtZXRlcnNNYXAoKSx0LnJlYWRNZXNzYWdlKHIsKGZ1bmN0aW9uKGUsdCl7bi5NYXAuZGVzZXJpYWxpemVCaW5hcnkoZSx0LG4uQmluYXJ5UmVhZGVyLnByb3RvdHlwZS5yZWFkSW50NjQsbi5CaW5hcnlSZWFkZXIucHJvdG90eXBlLnJlYWRJbnQ2NCxudWxsLDAsMCl9KSk7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uUHJvcG9zYWxDcmVhdGVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0UGFyYW1ldGVyc01hcCghMCkpJiZyLmdldExlbmd0aCgpPjAmJnIuc2VyaWFsaXplQmluYXJ5KDIsdCxuLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVJbnQ2NCxuLkJpbmFyeVdyaXRlci5wcm90b3R5cGUud3JpdGVJbnQ2NCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbENyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldFBhcmFtZXRlcnNNYXA9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5nZXRNYXBGaWVsZCh0aGlzLDIsZSxudWxsKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmNsZWFyUGFyYW1ldGVyc01hcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFBhcmFtZXRlcnNNYXAoKS5jbGVhcigpLHRoaXN9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uUHJvcG9zYWxEZWxldGVDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLHByb3Bvc2FsSWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uUHJvcG9zYWxEZWxldGVDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0UHJvcG9zYWxJZChyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksMCE9PShyPWUuZ2V0UHJvcG9zYWxJZCgpKSYmdC53cml0ZUludDY0KDIscil9LFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5Qcm9wb3NhbERlbGV0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlByb3Bvc2FsRGVsZXRlQ29udHJhY3QucHJvdG90eXBlLmdldFByb3Bvc2FsSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLDApfSxUcm9uV2ViUHJvdG8uUHJvcG9zYWxEZWxldGVDb250cmFjdC5wcm90b3R5cGUuc2V0UHJvcG9zYWxJZD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sby5vYmplY3QuZXh0ZW5kKHQsVHJvbldlYlByb3RvKX0sNTE3MTooZSx0LHIpPT57dmFyIG49cig1NTk1KSxvPW4saT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXN8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fHZvaWQgMCE9PWkmJml8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30uY2FsbChudWxsKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXIoODAyMCk7by5vYmplY3QuZXh0ZW5kKHByb3RvLGEpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJIixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5FbnRyeVR5cGUiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5QYXJhbSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlN0YXRlTXV0YWJpbGl0eVR5cGUiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlVwZGF0ZUVuZXJneUxpbWl0Q29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5VcGRhdGVTZXR0aW5nQ29udHJhY3QiLG51bGwsaSksVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdCIpLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCST1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkucmVwZWF0ZWRGaWVsZHNfLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSSxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJIiksVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5yZXBlYXRlZEZpZWxkc18sbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkiKSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW09ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0sbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0uZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5QYXJhbSIpLFRyb25XZWJQcm90by5Db250cmFjdFN0YXRlPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUiKSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkNyZWF0ZVNtYXJ0Q29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0IiksVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QiKSxUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkNsZWFyQUJJQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0IiksVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5VcGRhdGVTZXR0aW5nQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0IiksVHJvbldlYlByb3RvLlVwZGF0ZUVuZXJneUxpbWl0Q29udHJhY3Q9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdCIpLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXI9ZnVuY3Rpb24oZSl7bi5NZXNzYWdlLmluaXRpYWxpemUodGhpcyxlLDAsLTEsbnVsbCxudWxsKX0sby5pbmhlcml0cyhUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlciIpLG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsbz17b3JpZ2luQWRkcmVzczp0LmdldE9yaWdpbkFkZHJlc3NfYXNCNjQoKSxjb250cmFjdEFkZHJlc3M6dC5nZXRDb250cmFjdEFkZHJlc3NfYXNCNjQoKSxhYmk6KHI9dC5nZXRBYmkoKSkmJlRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS50b09iamVjdChlLHIpLGJ5dGVjb2RlOnQuZ2V0Qnl0ZWNvZGVfYXNCNjQoKSxjYWxsVmFsdWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw1LDApLGNvbnN1bWVVc2VyUmVzb3VyY2VQZXJjZW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNiwwKSxuYW1lOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsNywiIiksb3JpZ2luRW5lcmd5TGltaXQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw4LDApLGNvZGVIYXNoOnQuZ2V0Q29kZUhhc2hfYXNCNjQoKSx0cnhIYXNoOnQuZ2V0VHJ4SGFzaF9hc0I2NCgpLHZlcnNpb246bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwxMSwwKX07cmV0dXJuIGUmJihvLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLG99KSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPcmlnaW5BZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEJ5dGVzKCksZS5zZXRDb250cmFjdEFkZHJlc3Mocik7YnJlYWs7Y2FzZSAzOnI9bmV3IFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSSx0LnJlYWRNZXNzYWdlKHIsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXRBYmkocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkQnl0ZXMoKSxlLnNldEJ5dGVjb2RlKHIpO2JyZWFrO2Nhc2UgNTpyPXQucmVhZEludDY0KCksZS5zZXRDYWxsVmFsdWUocik7YnJlYWs7Y2FzZSA2OnI9dC5yZWFkSW50NjQoKSxlLnNldENvbnN1bWVVc2VyUmVzb3VyY2VQZXJjZW50KHIpO2JyZWFrO2Nhc2UgNzpyPXQucmVhZFN0cmluZygpLGUuc2V0TmFtZShyKTticmVhaztjYXNlIDg6cj10LnJlYWRJbnQ2NCgpLGUuc2V0T3JpZ2luRW5lcmd5TGltaXQocik7YnJlYWs7Y2FzZSA5OnI9dC5yZWFkQnl0ZXMoKSxlLnNldENvZGVIYXNoKHIpO2JyZWFrO2Nhc2UgMTA6cj10LnJlYWRCeXRlcygpLGUuc2V0VHJ4SGFzaChyKTticmVhaztjYXNlIDExOnI9dC5yZWFkSW50MzIoKSxlLnNldFZlcnNpb24ocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3JpZ2luQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldENvbnRyYWN0QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKSxudWxsIT0ocj1lLmdldEFiaSgpKSYmdC53cml0ZU1lc3NhZ2UoMyxyLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksKHI9ZS5nZXRCeXRlY29kZV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoNCxyKSwwIT09KHI9ZS5nZXRDYWxsVmFsdWUoKSkmJnQud3JpdGVJbnQ2NCg1LHIpLDAhPT0ocj1lLmdldENvbnN1bWVVc2VyUmVzb3VyY2VQZXJjZW50KCkpJiZ0LndyaXRlSW50NjQoNixyKSwocj1lLmdldE5hbWUoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoNyxyKSwwIT09KHI9ZS5nZXRPcmlnaW5FbmVyZ3lMaW1pdCgpKSYmdC53cml0ZUludDY0KDgsciksKHI9ZS5nZXRDb2RlSGFzaF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoOSxyKSwocj1lLmdldFRyeEhhc2hfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEwLHIpLDAhPT0ocj1lLmdldFZlcnNpb24oKSkmJnQud3JpdGVJbnQzMigxMSxyKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLnJlcGVhdGVkRmllbGRzXz1bMV0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcj17ZW50cnlzTGlzdDpuLk1lc3NhZ2UudG9PYmplY3RMaXN0KHQuZ2V0RW50cnlzTGlzdCgpLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS50b09iamVjdCxlKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSTtyZXR1cm4gVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KWlmKDE9PT10LmdldEZpZWxkTnVtYmVyKCkpe3ZhciByPW5ldyBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnk7dC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkRW50cnlzKHIpfWVsc2UgdC5za2lwRmllbGQoKTtyZXR1cm4gZX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByOyhyPWUuZ2V0RW50cnlzTGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkTWVzc2FnZSgxLHIsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnJlcGVhdGVkRmllbGRzXz1bNCw1XSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXthbm9ueW1vdXM6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsMSwhMSksY29uc3RhbnQ6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsMiwhMSksbmFtZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsIiIpLGlucHV0c0xpc3Q6bi5NZXNzYWdlLnRvT2JqZWN0TGlzdCh0LmdldElucHV0c0xpc3QoKSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0udG9PYmplY3QsZSksb3V0cHV0c0xpc3Q6bi5NZXNzYWdlLnRvT2JqZWN0TGlzdCh0LmdldE91dHB1dHNMaXN0KCksVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnRvT2JqZWN0LGUpLHR5cGU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw2LDApLHBheWFibGU6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsNywhMSksc3RhdGVtdXRhYmlsaXR5Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsOCwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeTtyZXR1cm4gVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCb29sKCk7ZS5zZXRBbm9ueW1vdXMocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQm9vbCgpLGUuc2V0Q29uc3RhbnQocik7YnJlYWs7Y2FzZSAzOnI9dC5yZWFkU3RyaW5nKCksZS5zZXROYW1lKHIpO2JyZWFrO2Nhc2UgNDpyPW5ldyBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0sdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5QYXJhbS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkSW5wdXRzKHIpO2JyZWFrO2Nhc2UgNTpyPW5ldyBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0sdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5QYXJhbS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIpLGUuYWRkT3V0cHV0cyhyKTticmVhaztjYXNlIDY6cj10LnJlYWRFbnVtKCksZS5zZXRUeXBlKHIpO2JyZWFrO2Nhc2UgNzpyPXQucmVhZEJvb2woKSxlLnNldFBheWFibGUocik7YnJlYWs7Y2FzZSA4OnI9dC5yZWFkRW51bSgpLGUuc2V0U3RhdGVtdXRhYmlsaXR5KHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldEFub255bW91cygpKSYmdC53cml0ZUJvb2woMSxyKSwocj1lLmdldENvbnN0YW50KCkpJiZ0LndyaXRlQm9vbCgyLHIpLChyPWUuZ2V0TmFtZSgpKS5sZW5ndGg+MCYmdC53cml0ZVN0cmluZygzLHIpLChyPWUuZ2V0SW5wdXRzTGlzdCgpKS5sZW5ndGg+MCYmdC53cml0ZVJlcGVhdGVkTWVzc2FnZSg0LHIsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSwocj1lLmdldE91dHB1dHNMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDUscixUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0uc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIpLDAhPT0ocj1lLmdldFR5cGUoKSkmJnQud3JpdGVFbnVtKDYsciksKHI9ZS5nZXRQYXlhYmxlKCkpJiZ0LndyaXRlQm9vbCg3LHIpLDAhPT0ocj1lLmdldFN0YXRlbXV0YWJpbGl0eSgpKSYmdC53cml0ZUVudW0oOCxyKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LkVudHJ5VHlwZT17VU5LTk9XTkVOVFJZVFlQRTowLENPTlNUUlVDVE9SOjEsRlVOQ1RJT046MixFVkVOVDozLEZBTExCQUNLOjQsUkVDRUlWRTo1LEVSUk9SOjZ9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5TdGF0ZU11dGFiaWxpdHlUeXBlPXtVTktOT1dOTVVUQUJJTElUWVRZUEU6MCxQVVJFOjEsVklFVzoyLE5PTlBBWUFCTEU6MyxQQVlBQkxFOjR9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0ucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0udG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e2luZGV4ZWQ6bi5NZXNzYWdlLmdldEJvb2xlYW5GaWVsZFdpdGhEZWZhdWx0KHQsMSwhMSksbmFtZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsIiIpLHR5cGU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLCIiKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0uZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5QYXJhbTtyZXR1cm4gVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0uZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCb29sKCk7ZS5zZXRJbmRleGVkKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZFN0cmluZygpLGUuc2V0TmFtZShyKTticmVhaztjYXNlIDM6cj10LnJlYWRTdHJpbmcoKSxlLnNldFR5cGUocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0ucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0SW5kZXhlZCgpKSYmdC53cml0ZUJvb2woMSxyKSwocj1lLmdldE5hbWUoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoMixyKSwocj1lLmdldFR5cGUoKSkubGVuZ3RoPjAmJnQud3JpdGVTdHJpbmcoMyxyKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnByb3RvdHlwZS5nZXRJbmRleGVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsITEpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0ucHJvdG90eXBlLnNldEluZGV4ZWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCb29sZWFuRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0ucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnByb3RvdHlwZS5zZXROYW1lPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0ucHJvdG90eXBlLmdldFR5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLCIiKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLnByb3RvdHlwZS5zZXRUeXBlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zU3RyaW5nRmllbGQodGhpcywzLGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLmdldEFub255bW91cz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0Qm9vbGVhbkZpZWxkV2l0aERlZmF1bHQodGhpcywxLCExKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5zZXRBbm9ueW1vdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCb29sZWFuRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLmdldENvbnN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsITEpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLnNldENvbnN0YW50PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQm9vbGVhbkZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5nZXROYW1lPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywiIil9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5wcm90b3R5cGUuc2V0TmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM1N0cmluZ0ZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5nZXRJbnB1dHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRSZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5QYXJhbSw0KX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5zZXRJbnB1dHNMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyw0LGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLmFkZElucHV0cz1mdW5jdGlvbihlLHQpe3JldHVybiBuLk1lc3NhZ2UuYWRkVG9SZXBlYXRlZFdyYXBwZXJGaWVsZCh0aGlzLDQsZSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkuUGFyYW0sdCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5wcm90b3R5cGUuY2xlYXJJbnB1dHNMaXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0SW5wdXRzTGlzdChbXSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5wcm90b3R5cGUuZ2V0T3V0cHV0c0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLDUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLnNldE91dHB1dHNMaXN0PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLmFkZE91dHB1dHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyw1LGUsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LlBhcmFtLHQpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLmNsZWFyT3V0cHV0c0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRPdXRwdXRzTGlzdChbXSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5wcm90b3R5cGUuZ2V0VHlwZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDYsMCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5wcm90b3R5cGUuc2V0VHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0VudW1GaWVsZCh0aGlzLDYsZSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5FbnRyeS5wcm90b3R5cGUuZ2V0UGF5YWJsZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0Qm9vbGVhbkZpZWxkV2l0aERlZmF1bHQodGhpcyw3LCExKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5zZXRQYXlhYmxlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQm9vbGVhbkZpZWxkKHRoaXMsNyxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LnByb3RvdHlwZS5nZXRTdGF0ZW11dGFiaWxpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw4LDApfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnkucHJvdG90eXBlLnNldFN0YXRlbXV0YWJpbGl0eT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0VudW1GaWVsZCh0aGlzLDgsZSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5wcm90b3R5cGUuZ2V0RW50cnlzTGlzdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0UmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkuRW50cnksMSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LkFCSS5wcm90b3R5cGUuc2V0RW50cnlzTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLnByb3RvdHlwZS5hZGRFbnRyeXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5NZXNzYWdlLmFkZFRvUmVwZWF0ZWRXcmFwcGVyRmllbGQodGhpcywxLGUsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLkVudHJ5LHQpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5BQkkucHJvdG90eXBlLmNsZWFyRW50cnlzTGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldEVudHJ5c0xpc3QoW10pfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3JpZ2luQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3JpZ2luQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE9yaWdpbkFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRPcmlnaW5BZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE9yaWdpbkFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRPcmlnaW5BZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRDb250cmFjdEFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywyLCIiKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldENvbnRyYWN0QWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldENvbnRyYWN0QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldENvbnRyYWN0QWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRDb250cmFjdEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRDb250cmFjdEFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldEFiaT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuQUJJLDMpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0QWJpPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0V3JhcHBlckZpZWxkKHRoaXMsMyxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmNsZWFyQWJpPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0QWJpKHZvaWQgMCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5oYXNBYmk9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9bi5NZXNzYWdlLmdldEZpZWxkKHRoaXMsMyl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRCeXRlY29kZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsIiIpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Qnl0ZWNvZGVfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRCeXRlY29kZSgpKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldEJ5dGVjb2RlX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldEJ5dGVjb2RlKCkpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0Qnl0ZWNvZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsNCxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldENhbGxWYWx1ZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDUsMCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRDYWxsVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDUsZSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRDb25zdW1lVXNlclJlc291cmNlUGVyY2VudD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDYsMCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRDb25zdW1lVXNlclJlc291cmNlUGVyY2VudD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsNixlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldE5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw3LCIiKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnNldE5hbWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNTdHJpbmdGaWVsZCh0aGlzLDcsZSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRPcmlnaW5FbmVyZ3lMaW1pdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDgsMCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRPcmlnaW5FbmVyZ3lMaW1pdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsOCxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldENvZGVIYXNoPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsOSwiIil9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRDb2RlSGFzaF9hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldENvZGVIYXNoKCkpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29kZUhhc2hfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0Q29kZUhhc2goKSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRDb2RlSGFzaD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcyw5LGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0VHJ4SGFzaD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEwLCIiKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldFRyeEhhc2hfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRUcnhIYXNoKCkpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0VHJ4SGFzaF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRUcnhIYXNoKCkpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0VHJ4SGFzaD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxMCxlKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldFZlcnNpb249ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxMSwwKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnNldFZlcnNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDExLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtlbmVyZ3lVc2FnZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDEsMCksZW5lcmd5RmFjdG9yOm4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKSx1cGRhdGVDeWNsZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5Db250cmFjdFN0YXRlO3JldHVybiBUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRJbnQ2NCgpO2Uuc2V0RW5lcmd5VXNhZ2Uocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkSW50NjQoKSxlLnNldEVuZXJneUZhY3RvcihyKTticmVhaztjYXNlIDM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0VXBkYXRlQ3ljbGUocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5Db250cmFjdFN0YXRlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOzAhPT0ocj1lLmdldEVuZXJneVVzYWdlKCkpJiZ0LndyaXRlSW50NjQoMSxyKSwwIT09KHI9ZS5nZXRFbmVyZ3lGYWN0b3IoKSkmJnQud3JpdGVJbnQ2NCgyLHIpLDAhPT0ocj1lLmdldFVwZGF0ZUN5Y2xlKCkpJiZ0LndyaXRlSW50NjQoMyxyKX0sVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUucHJvdG90eXBlLmdldEVuZXJneVVzYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwwKX0sVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUucHJvdG90eXBlLnNldEVuZXJneVVzYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZS5wcm90b3R5cGUuZ2V0RW5lcmd5RmFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUucHJvdG90eXBlLnNldEVuZXJneUZhY3Rvcj1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUucHJvdG90eXBlLmdldFVwZGF0ZUN5Y2xlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUucHJvdG90eXBlLnNldFVwZGF0ZUN5Y2xlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywzLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkNyZWF0ZVNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByLG89e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLG5ld0NvbnRyYWN0OihyPXQuZ2V0TmV3Q29udHJhY3QoKSkmJlRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnRvT2JqZWN0KGUsciksY2FsbFRva2VuVmFsdWU6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwzLDApLHRva2VuSWQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCw0LDApfTtyZXR1cm4gZSYmKG8uJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCksb30pLFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLkNyZWF0ZVNtYXJ0Q29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj1uZXcgVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlciksZS5zZXROZXdDb250cmFjdChyKTticmVhaztjYXNlIDM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0Q2FsbFRva2VuVmFsdWUocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkSW50NjQoKSxlLnNldFRva2VuSWQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLG51bGwhPShyPWUuZ2V0TmV3Q29udHJhY3QoKSkmJnQud3JpdGVNZXNzYWdlKDIscixUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlciksMCE9PShyPWUuZ2V0Q2FsbFRva2VuVmFsdWUoKSkmJnQud3JpdGVJbnQ2NCgzLHIpLDAhPT0ocj1lLmdldFRva2VuSWQoKSkmJnQud3JpdGVJbnQ2NCg0LHIpfSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXROZXdDb250cmFjdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QsMil9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXROZXdDb250cmFjdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnByb3RvdHlwZS5jbGVhck5ld0NvbnRyYWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2V0TmV3Q29udHJhY3Qodm9pZCAwKX0sVHJvbldlYlByb3RvLkNyZWF0ZVNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmhhc05ld0NvbnRyYWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPW4uTWVzc2FnZS5nZXRGaWVsZCh0aGlzLDIpfSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q2FsbFRva2VuVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywzLDApfSxUcm9uV2ViUHJvdG8uQ3JlYXRlU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0Q2FsbFRva2VuVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5DcmVhdGVTbWFydENvbnRyYWN0LnByb3RvdHlwZS5nZXRUb2tlbklkPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsNCwwKX0sVHJvbldlYlByb3RvLkNyZWF0ZVNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnNldFRva2VuSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDQsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGNvbnRyYWN0QWRkcmVzczp0LmdldENvbnRyYWN0QWRkcmVzc19hc0I2NCgpLGNhbGxWYWx1ZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDMsMCksZGF0YTp0LmdldERhdGFfYXNCNjQoKSxjYWxsVG9rZW5WYWx1ZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDUsMCksdG9rZW5JZDpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDYsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0Q29udHJhY3RBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEludDY0KCksZS5zZXRDYWxsVmFsdWUocik7YnJlYWs7Y2FzZSA0OnI9dC5yZWFkQnl0ZXMoKSxlLnNldERhdGEocik7YnJlYWs7Y2FzZSA1OnI9dC5yZWFkSW50NjQoKSxlLnNldENhbGxUb2tlblZhbHVlKHIpO2JyZWFrO2Nhc2UgNjpyPXQucmVhZEludDY0KCksZS5zZXRUb2tlbklkKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldENvbnRyYWN0QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKSwwIT09KHI9ZS5nZXRDYWxsVmFsdWUoKSkmJnQud3JpdGVJbnQ2NCgzLHIpLChyPWUuZ2V0RGF0YV9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoNCxyKSwwIT09KHI9ZS5nZXRDYWxsVG9rZW5WYWx1ZSgpKSYmdC53cml0ZUludDY0KDUsciksMCE9PShyPWUuZ2V0VG9rZW5JZCgpKSYmdC53cml0ZUludDY0KDYscil9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29udHJhY3RBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0Q29udHJhY3RBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldENvbnRyYWN0QWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRDb250cmFjdEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuc2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q2FsbFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXRDYWxsVmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0RGF0YT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDQsIiIpfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldERhdGFfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXREYXRhKCkpfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldERhdGFfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0RGF0YSgpKX0sVHJvbldlYlByb3RvLlRyaWdnZXJTbWFydENvbnRyYWN0LnByb3RvdHlwZS5zZXREYXRhPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDQsZSl9LFRyb25XZWJQcm90by5UcmlnZ2VyU21hcnRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q2FsbFRva2VuVmFsdWU9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw1LDApfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnNldENhbGxUb2tlblZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcyw1LGUpfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLmdldFRva2VuSWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcyw2LDApfSxUcm9uV2ViUHJvdG8uVHJpZ2dlclNtYXJ0Q29udHJhY3QucHJvdG90eXBlLnNldFRva2VuSWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDYsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGNvbnRyYWN0QWRkcmVzczp0LmdldENvbnRyYWN0QWRkcmVzc19hc0I2NCgpfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdDtyZXR1cm4gVHJvbldlYlByb3RvLkNsZWFyQUJJQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0Q29udHJhY3RBZGRyZXNzKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLkNsZWFyQUJJQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkNsZWFyQUJJQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldENvbnRyYWN0QWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKX0sVHJvbldlYlByb3RvLkNsZWFyQUJJQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkNsZWFyQUJJQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LnByb3RvdHlwZS5nZXRDb250cmFjdEFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRDb250cmFjdEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5DbGVhckFCSUNvbnRyYWN0LnByb3RvdHlwZS5nZXRDb250cmFjdEFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0Q29udHJhY3RBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uQ2xlYXJBQklDb250cmFjdC5wcm90b3R5cGUuc2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGNvbnRyYWN0QWRkcmVzczp0LmdldENvbnRyYWN0QWRkcmVzc19hc0I2NCgpLGNvbnN1bWVVc2VyUmVzb3VyY2VQZXJjZW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMywwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0Q29udHJhY3RBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEludDY0KCksZS5zZXRDb25zdW1lVXNlclJlc291cmNlUGVyY2VudChyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5VcGRhdGVTZXR0aW5nQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5VcGRhdGVTZXR0aW5nQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksKHI9ZS5nZXRDb250cmFjdEFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDIsciksMCE9PShyPWUuZ2V0Q29uc3VtZVVzZXJSZXNvdXJjZVBlcmNlbnQoKSkmJnQud3JpdGVJbnQ2NCgzLHIpfSxUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlU2V0dGluZ0NvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5VcGRhdGVTZXR0aW5nQ29udHJhY3QucHJvdG90eXBlLmdldENvbnRyYWN0QWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldENvbnRyYWN0QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29udHJhY3RBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldENvbnRyYWN0QWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC5wcm90b3R5cGUuc2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5VcGRhdGVTZXR0aW5nQ29udHJhY3QucHJvdG90eXBlLmdldENvbnN1bWVVc2VyUmVzb3VyY2VQZXJjZW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMywwKX0sVHJvbldlYlByb3RvLlVwZGF0ZVNldHRpbmdDb250cmFjdC5wcm90b3R5cGUuc2V0Q29uc3VtZVVzZXJSZXNvdXJjZVBlcmNlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDMsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGNvbnRyYWN0QWRkcmVzczp0LmdldENvbnRyYWN0QWRkcmVzc19hc0I2NCgpLG9yaWdpbkVuZXJneUxpbWl0Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMywwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlVwZGF0ZUVuZXJneUxpbWl0Q29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldENvbnRyYWN0QWRkcmVzcyhyKTticmVhaztjYXNlIDM6cj10LnJlYWRJbnQ2NCgpLGUuc2V0T3JpZ2luRW5lcmd5TGltaXQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0Q29udHJhY3RBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLDAhPT0ocj1lLmdldE9yaWdpbkVuZXJneUxpbWl0KCkpJiZ0LndyaXRlSW50NjQoMyxyKX0sVHJvbldlYlByb3RvLlVwZGF0ZUVuZXJneUxpbWl0Q29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVwZGF0ZUVuZXJneUxpbWl0Q29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5wcm90b3R5cGUuZ2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnByb3RvdHlwZS5nZXRDb250cmFjdEFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRDb250cmFjdEFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnByb3RvdHlwZS5nZXRDb250cmFjdEFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0Q29udHJhY3RBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdC5wcm90b3R5cGUuc2V0Q29udHJhY3RBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDIsZSl9LFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnByb3RvdHlwZS5nZXRPcmlnaW5FbmVyZ3lMaW1pdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsMCl9LFRyb25XZWJQcm90by5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LnByb3RvdHlwZS5zZXRPcmlnaW5FbmVyZ3lMaW1pdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0ludEZpZWxkKHRoaXMsMyxlKX0sbi5NZXNzYWdlLkdFTkVSQVRFX1RPX09CSkVDVCYmKFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIudG9PYmplY3Q9ZnVuY3Rpb24oZSx0KXt2YXIgcixuPXtzbWFydENvbnRyYWN0OihyPXQuZ2V0U21hcnRDb250cmFjdCgpKSYmVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QudG9PYmplY3QoZSxyKSxydW50aW1lY29kZTp0LmdldFJ1bnRpbWVjb2RlX2FzQjY0KCksY29udHJhY3RTdGF0ZToocj10LmdldENvbnRyYWN0U3RhdGUoKSkmJlRyb25XZWJQcm90by5Db250cmFjdFN0YXRlLnRvT2JqZWN0KGUscil9O3JldHVybiBlJiYobi4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxufSksVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlcjtyZXR1cm4gVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPW5ldyBUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdDt0LnJlYWRNZXNzYWdlKHIsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldFNtYXJ0Q29udHJhY3Qocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFJ1bnRpbWVjb2RlKHIpO2JyZWFrO2Nhc2UgMzpyPW5ldyBUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZSx0LnJlYWRNZXNzYWdlKHIsVHJvbldlYlByb3RvLkNvbnRyYWN0U3RhdGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLnNldENvbnRyYWN0U3RhdGUocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwO251bGwhPShyPWUuZ2V0U21hcnRDb250cmFjdCgpKSYmdC53cml0ZU1lc3NhZ2UoMSxyLFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSwocj1lLmdldFJ1bnRpbWVjb2RlX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygyLHIpLG51bGwhPShyPWUuZ2V0Q29udHJhY3RTdGF0ZSgpKSYmdC53cml0ZU1lc3NhZ2UoMyxyLFRyb25XZWJQcm90by5Db250cmFjdFN0YXRlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5wcm90b3R5cGUuZ2V0U21hcnRDb250cmFjdD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0V3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3QsMSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLnNldFNtYXJ0Q29udHJhY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRXcmFwcGVyRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLnByb3RvdHlwZS5jbGVhclNtYXJ0Q29udHJhY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXRTbWFydENvbnRyYWN0KHZvaWQgMCl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLmhhc1NtYXJ0Q29udHJhY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9bi5NZXNzYWdlLmdldEZpZWxkKHRoaXMsMSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLmdldFJ1bnRpbWVjb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwiIil9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLmdldFJ1bnRpbWVjb2RlX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0UnVudGltZWNvZGUoKSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLmdldFJ1bnRpbWVjb2RlX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldFJ1bnRpbWVjb2RlKCkpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLnByb3RvdHlwZS5zZXRSdW50aW1lY29kZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uU21hcnRDb250cmFjdERhdGFXcmFwcGVyLnByb3RvdHlwZS5nZXRDb250cmFjdFN0YXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRXcmFwcGVyRmllbGQodGhpcyxUcm9uV2ViUHJvdG8uQ29udHJhY3RTdGF0ZSwzKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5wcm90b3R5cGUuc2V0Q29udHJhY3RTdGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFdyYXBwZXJGaWVsZCh0aGlzLDMsZSl9LFRyb25XZWJQcm90by5TbWFydENvbnRyYWN0RGF0YVdyYXBwZXIucHJvdG90eXBlLmNsZWFyQ29udHJhY3RTdGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldENvbnRyYWN0U3RhdGUodm9pZCAwKX0sVHJvbldlYlByb3RvLlNtYXJ0Q29udHJhY3REYXRhV3JhcHBlci5wcm90b3R5cGUuaGFzQ29udHJhY3RTdGF0ZT1mdW5jdGlvbigpe3JldHVybiBudWxsIT1uLk1lc3NhZ2UuZ2V0RmllbGQodGhpcywzKX0sby5vYmplY3QuZXh0ZW5kKHQsVHJvbldlYlByb3RvKX0sNjcyOihlLHQscik9Pnt2YXIgbj1yKDU1OTUpLG89bixpPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpc3x8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8dm9pZCAwIT09aSYmaXx8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfS5jYWxsKG51bGwpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO28uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUJ5dGVzQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5CdXlTdG9yYWdlQ29udHJhY3QiLG51bGwsaSksby5leHBvcnRTeW1ib2woIlRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0IixudWxsLGkpLG8uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QiLG51bGwsaSksVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUJ5dGVzQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5CdXlTdG9yYWdlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5CdXlTdG9yYWdlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uU2VsbFN0b3JhZ2VDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxudWxsLG51bGwpfSxvLmluaGVyaXRzKFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlNlbGxTdG9yYWdlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0IiksVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LG4uTWVzc2FnZSksby5ERUJVRyYmIUNPTVBJTEVEJiYoVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LmRpc3BsYXlOYW1lPSJUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QiKSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5CdXlTdG9yYWdlQnl0ZXNDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSxieXRlczpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUJ5dGVzQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5CdXlTdG9yYWdlQnl0ZXNDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0Qnl0ZXMocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUJ5dGVzQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldEJ5dGVzKCkpJiZ0LndyaXRlSW50NjQoMixyKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5CdXlTdG9yYWdlQnl0ZXNDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VCeXRlc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRCeXRlcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5CdXlTdG9yYWdlQnl0ZXNDb250cmFjdC5wcm90b3R5cGUuc2V0Qnl0ZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLHF1YW50Om4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHQsMiwwKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQ2NCgpLGUuc2V0UXVhbnQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5CdXlTdG9yYWdlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXIodGhpcyxlKSxlLmdldFJlc3VsdEJ1ZmZlcigpfSxUcm9uV2ViUHJvdG8uQnV5U3RvcmFnZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldFF1YW50KCkpJiZ0LndyaXRlSW50NjQoMixyKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5CdXlTdG9yYWdlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5CdXlTdG9yYWdlQ29udHJhY3QucHJvdG90eXBlLmdldFF1YW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLkJ1eVN0b3JhZ2VDb250cmFjdC5wcm90b3R5cGUuc2V0UXVhbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uU2VsbFN0b3JhZ2VDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LnRvT2JqZWN0KGUsdGhpcyl9LFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLHN0b3JhZ2VCeXRlczpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlNlbGxTdG9yYWdlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uU2VsbFN0b3JhZ2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlNlbGxTdG9yYWdlQ29udHJhY3QuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0T3duZXJBZGRyZXNzKHIpO2JyZWFrO2Nhc2UgMjpyPXQucmVhZEludDY0KCksZS5zZXRTdG9yYWdlQnl0ZXMocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uU2VsbFN0b3JhZ2VDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uU2VsbFN0b3JhZ2VDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLDAhPT0ocj1lLmdldFN0b3JhZ2VCeXRlcygpKSYmdC53cml0ZUludDY0KDIscil9LFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLlNlbGxTdG9yYWdlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlNlbGxTdG9yYWdlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlNlbGxTdG9yYWdlQ29udHJhY3QucHJvdG90eXBlLmdldFN0b3JhZ2VCeXRlcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5TZWxsU3RvcmFnZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRTdG9yYWdlQnl0ZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNJbnRGaWVsZCh0aGlzLDIsZSl9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e293bmVyQWRkcmVzczp0LmdldE93bmVyQWRkcmVzc19hc0I2NCgpLGJyb2tlcmFnZTpuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0LDIsMCl9O3JldHVybiBlJiYoci4kanNwYk1lc3NhZ2VJbnN0YW5jZT10KSxyfSksVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5VcGRhdGVCcm9rZXJhZ2VDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXIocix0KX0sVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRJbnQzMigpLGUuc2V0QnJva2VyYWdlKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LnByb3RvdHlwZS5zZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgbi5CaW5hcnlXcml0ZXI7cmV0dXJuIFRyb25XZWJQcm90by5VcGRhdGVCcm9rZXJhZ2VDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5VcGRhdGVCcm9rZXJhZ2VDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRCcm9rZXJhZ2UoKSkmJnQud3JpdGVJbnQzMigyLHIpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QucHJvdG90eXBlLnNldE93bmVyQWRkcmVzcz1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxLGUpfSxUcm9uV2ViUHJvdG8uVXBkYXRlQnJva2VyYWdlQ29udHJhY3QucHJvdG90eXBlLmdldEJyb2tlcmFnZT1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsMCl9LFRyb25XZWJQcm90by5VcGRhdGVCcm9rZXJhZ2VDb250cmFjdC5wcm90b3R5cGUuc2V0QnJva2VyYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyLGUpfSxvLm9iamVjdC5leHRlbmQodCxUcm9uV2ViUHJvdG8pfSw3MDg0OihlLHQscik9Pnt2YXIgbj1yKDU1OTUpLG89bixpPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpc3x8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8dm9pZCAwIT09aSYmaXx8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiZzZWxmfHxmdW5jdGlvbigpe3JldHVybiB0aGlzfS5jYWxsKG51bGwpfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpO28uZXhwb3J0U3ltYm9sKCJUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZSIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdCIsbnVsbCxpKSxvLmV4cG9ydFN5bWJvbCgiVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdCIsbnVsbCxpKSxUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0PWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdCxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3QuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdD1mdW5jdGlvbihlKXtuLk1lc3NhZ2UuaW5pdGlhbGl6ZSh0aGlzLGUsMCwtMSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5yZXBlYXRlZEZpZWxkc18sbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3Qsbi5NZXNzYWdlKSxvLkRFQlVHJiYhQ09NUElMRUQmJihUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5kaXNwbGF5TmFtZT0iVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QiKSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlPWZ1bmN0aW9uKGUpe24uTWVzc2FnZS5pbml0aWFsaXplKHRoaXMsZSwwLC0xLG51bGwsbnVsbCl9LG8uaW5oZXJpdHMoVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZSxuLk1lc3NhZ2UpLG8uREVCVUcmJiFDT01QSUxFRCYmKFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUuZGlzcGxheU5hbWU9IlRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUiKSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSx1cmw6dC5nZXRVcmxfYXNCNjQoKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDI6cj10LnJlYWRCeXRlcygpLGUuc2V0VXJsKHIpO2JyZWFrO2RlZmF1bHQ6dC5za2lwRmllbGQoKX1yZXR1cm4gZX0sVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKHRoaXMsZSksZS5nZXRSZXN1bHRCdWZmZXIoKX0sVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcj1mdW5jdGlvbihlLHQpe3ZhciByPXZvaWQgMDsocj1lLmdldE93bmVyQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwocj1lLmdldFVybF9hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMixyKX0sVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldE93bmVyQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzVTg9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNVOCh0aGlzLmdldE93bmVyQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLldpdG5lc3NDcmVhdGVDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldFVybD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDIsIiIpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc0NyZWF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRVcmxfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRVcmwoKSl9LFRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLmdldFVybF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRVcmwoKSl9LFRyb25XZWJQcm90by5XaXRuZXNzQ3JlYXRlQ29udHJhY3QucHJvdG90eXBlLnNldFVybD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywyLGUpfSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdC5wcm90b3R5cGUudG9PYmplY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIFRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3QudG9PYmplY3QoZSx0aGlzKX0sVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSx1cGRhdGVVcmw6dC5nZXRVcGRhdGVVcmxfYXNCNjQoKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBuLkJpbmFyeVJlYWRlcihlKSxyPW5ldyBUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0O3JldHVybiBUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcj1mdW5jdGlvbihlLHQpe2Zvcig7dC5uZXh0RmllbGQoKSYmIXQuaXNFbmRHcm91cCgpOylzd2l0Y2godC5nZXRGaWVsZE51bWJlcigpKXtjYXNlIDE6dmFyIHI9dC5yZWFkQnl0ZXMoKTtlLnNldE93bmVyQWRkcmVzcyhyKTticmVhaztjYXNlIDEyOnI9dC5yZWFkQnl0ZXMoKSxlLnNldFVwZGF0ZVVybChyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3Quc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRPd25lckFkZHJlc3NfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEsciksKHI9ZS5nZXRVcGRhdGVVcmxfYXNVOCgpKS5sZW5ndGg+MCYmdC53cml0ZUJ5dGVzKDEyLHIpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodGhpcywxLCIiKX0sVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzX2FzQjY0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzQjY0KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5zZXRPd25lckFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLldpdG5lc3NVcGRhdGVDb250cmFjdC5wcm90b3R5cGUuZ2V0VXBkYXRlVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMTIsIiIpfSxUcm9uV2ViUHJvdG8uV2l0bmVzc1VwZGF0ZUNvbnRyYWN0LnByb3RvdHlwZS5nZXRVcGRhdGVVcmxfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRVcGRhdGVVcmwoKSl9LFRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLmdldFVwZGF0ZVVybF9hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRVcGRhdGVVcmwoKSl9LFRyb25XZWJQcm90by5XaXRuZXNzVXBkYXRlQ29udHJhY3QucHJvdG90eXBlLnNldFVwZGF0ZVVybD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0J5dGVzRmllbGQodGhpcywxMixlKX0sVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QucmVwZWF0ZWRGaWVsZHNfPVsyXSxuLk1lc3NhZ2UuR0VORVJBVEVfVE9fT0JKRUNUJiYoVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QucHJvdG90eXBlLnRvT2JqZWN0PWZ1bmN0aW9uKGUpe3JldHVybiBUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC50b09iamVjdD1mdW5jdGlvbihlLHQpe3ZhciByPXtvd25lckFkZHJlc3M6dC5nZXRPd25lckFkZHJlc3NfYXNCNjQoKSx2b3Rlc0xpc3Q6bi5NZXNzYWdlLnRvT2JqZWN0TGlzdCh0LmdldFZvdGVzTGlzdCgpLFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUudG9PYmplY3QsZSksc3VwcG9ydDpuLk1lc3NhZ2UuZ2V0Qm9vbGVhbkZpZWxkV2l0aERlZmF1bHQodCwzLCExKX07cmV0dXJuIGUmJihyLiRqc3BiTWVzc2FnZUluc3RhbmNlPXQpLHJ9KSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgbi5CaW5hcnlSZWFkZXIoZSkscj1uZXcgVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3Q7cmV0dXJuIFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LmRlc2VyaWFsaXplQmluYXJ5RnJvbVJlYWRlcihyLHQpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5kZXNlcmlhbGl6ZUJpbmFyeUZyb21SZWFkZXI9ZnVuY3Rpb24oZSx0KXtmb3IoO3QubmV4dEZpZWxkKCkmJiF0LmlzRW5kR3JvdXAoKTspc3dpdGNoKHQuZ2V0RmllbGROdW1iZXIoKSl7Y2FzZSAxOnZhciByPXQucmVhZEJ5dGVzKCk7ZS5zZXRPd25lckFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9bmV3IFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUsdC5yZWFkTWVzc2FnZShyLFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKSxlLmFkZFZvdGVzKHIpO2JyZWFrO2Nhc2UgMzpyPXQucmVhZEJvb2woKSxlLnNldFN1cHBvcnQocik7YnJlYWs7ZGVmYXVsdDp0LnNraXBGaWVsZCgpfXJldHVybiBlfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5wcm90b3R5cGUuc2VyaWFsaXplQmluYXJ5PWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG4uQmluYXJ5V3JpdGVyO3JldHVybiBUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dm9pZCAwOyhyPWUuZ2V0T3duZXJBZGRyZXNzX2FzVTgoKSkubGVuZ3RoPjAmJnQud3JpdGVCeXRlcygxLHIpLChyPWUuZ2V0Vm90ZXNMaXN0KCkpLmxlbmd0aD4wJiZ0LndyaXRlUmVwZWF0ZWRNZXNzYWdlKDIscixUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlLnNlcmlhbGl6ZUJpbmFyeVRvV3JpdGVyKSwocj1lLmdldFN1cHBvcnQoKSkmJnQud3JpdGVCb29sKDMscil9LG4uTWVzc2FnZS5HRU5FUkFURV9UT19PQkpFQ1QmJihUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlLnByb3RvdHlwZS50b09iamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZS50b09iamVjdChlLHRoaXMpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlLnRvT2JqZWN0PWZ1bmN0aW9uKGUsdCl7dmFyIHI9e3ZvdGVBZGRyZXNzOnQuZ2V0Vm90ZUFkZHJlc3NfYXNCNjQoKSx2b3RlQ291bnQ6bi5NZXNzYWdlLmdldEZpZWxkV2l0aERlZmF1bHQodCwyLDApfTtyZXR1cm4gZSYmKHIuJGpzcGJNZXNzYWdlSW5zdGFuY2U9dCkscn0pLFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUuZGVzZXJpYWxpemVCaW5hcnk9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IG4uQmluYXJ5UmVhZGVyKGUpLHI9bmV3IFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGU7cmV0dXJuIFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyKHIsdCl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUuZGVzZXJpYWxpemVCaW5hcnlGcm9tUmVhZGVyPWZ1bmN0aW9uKGUsdCl7Zm9yKDt0Lm5leHRGaWVsZCgpJiYhdC5pc0VuZEdyb3VwKCk7KXN3aXRjaCh0LmdldEZpZWxkTnVtYmVyKCkpe2Nhc2UgMTp2YXIgcj10LnJlYWRCeXRlcygpO2Uuc2V0Vm90ZUFkZHJlc3Mocik7YnJlYWs7Y2FzZSAyOnI9dC5yZWFkSW50NjQoKSxlLnNldFZvdGVDb3VudChyKTticmVhaztkZWZhdWx0OnQuc2tpcEZpZWxkKCl9cmV0dXJuIGV9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUucHJvdG90eXBlLnNlcmlhbGl6ZUJpbmFyeT1mdW5jdGlvbigpe3ZhciBlPW5ldyBuLkJpbmFyeVdyaXRlcjtyZXR1cm4gVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZS5zZXJpYWxpemVCaW5hcnlUb1dyaXRlcih0aGlzLGUpLGUuZ2V0UmVzdWx0QnVmZmVyKCl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUuc2VyaWFsaXplQmluYXJ5VG9Xcml0ZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcj12b2lkIDA7KHI9ZS5nZXRWb3RlQWRkcmVzc19hc1U4KCkpLmxlbmd0aD4wJiZ0LndyaXRlQnl0ZXMoMSxyKSwwIT09KHI9ZS5nZXRWb3RlQ291bnQoKSkmJnQud3JpdGVJbnQ2NCgyLHIpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlLnByb3RvdHlwZS5nZXRWb3RlQWRkcmVzcz1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuZ2V0RmllbGRXaXRoRGVmYXVsdCh0aGlzLDEsIiIpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlLnByb3RvdHlwZS5nZXRWb3RlQWRkcmVzc19hc0I2ND1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc0I2NCh0aGlzLmdldFZvdGVBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5Wb3RlLnByb3RvdHlwZS5nZXRWb3RlQWRkcmVzc19hc1U4PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5ieXRlc0FzVTgodGhpcy5nZXRWb3RlQWRkcmVzcygpKX0sVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZS5wcm90b3R5cGUuc2V0Vm90ZUFkZHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIG4uTWVzc2FnZS5zZXRQcm90bzNCeXRlc0ZpZWxkKHRoaXMsMSxlKX0sVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZS5wcm90b3R5cGUuZ2V0Vm90ZUNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMiwwKX0sVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZS5wcm90b3R5cGUuc2V0Vm90ZUNvdW50PWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zSW50RmllbGQodGhpcywyLGUpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5wcm90b3R5cGUuZ2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRGaWVsZFdpdGhEZWZhdWx0KHRoaXMsMSwiIil9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNCNjQ9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmJ5dGVzQXNCNjQodGhpcy5nZXRPd25lckFkZHJlc3MoKSl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRPd25lckFkZHJlc3NfYXNVOD1mdW5jdGlvbigpe3JldHVybiBuLk1lc3NhZ2UuYnl0ZXNBc1U4KHRoaXMuZ2V0T3duZXJBZGRyZXNzKCkpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5wcm90b3R5cGUuc2V0T3duZXJBZGRyZXNzPWZ1bmN0aW9uKGUpe3JldHVybiBuLk1lc3NhZ2Uuc2V0UHJvdG8zQnl0ZXNGaWVsZCh0aGlzLDEsZSl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRWb3Rlc0xpc3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbi5NZXNzYWdlLmdldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QuVm90ZSwyKX0sVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QucHJvdG90eXBlLnNldFZvdGVzTGlzdD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFJlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMixlKX0sVHJvbldlYlByb3RvLlZvdGVXaXRuZXNzQ29udHJhY3QucHJvdG90eXBlLmFkZFZvdGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uTWVzc2FnZS5hZGRUb1JlcGVhdGVkV3JhcHBlckZpZWxkKHRoaXMsMixlLFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LlZvdGUsdCl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LnByb3RvdHlwZS5jbGVhclZvdGVzTGlzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNldFZvdGVzTGlzdChbXSl9LFRyb25XZWJQcm90by5Wb3RlV2l0bmVzc0NvbnRyYWN0LnByb3RvdHlwZS5nZXRTdXBwb3J0PWZ1bmN0aW9uKCl7cmV0dXJuIG4uTWVzc2FnZS5nZXRCb29sZWFuRmllbGRXaXRoRGVmYXVsdCh0aGlzLDMsITEpfSxUcm9uV2ViUHJvdG8uVm90ZVdpdG5lc3NDb250cmFjdC5wcm90b3R5cGUuc2V0U3VwcG9ydD1mdW5jdGlvbihlKXtyZXR1cm4gbi5NZXNzYWdlLnNldFByb3RvM0Jvb2xlYW5GaWVsZCh0aGlzLDMsZSl9LG8ub2JqZWN0LmV4dGVuZCh0LFRyb25XZWJQcm90byl9LDM1NTA6ZnVuY3Rpb24oZSx0LHIpeyFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7aWYoIWUpdGhyb3cgbmV3IEVycm9yKHR8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gbyhlLHQpe2Uuc3VwZXJfPXQ7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPXQucHJvdG90eXBlLGUucHJvdG90eXBlPW5ldyByLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWV9ZnVuY3Rpb24gaShlLHQscil7aWYoaS5pc0JOKGUpKXJldHVybiBlO3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT1lJiYoImxlIiE9PXQmJiJiZSIhPT10fHwocj10LHQ9MTApLHRoaXMuX2luaXQoZXx8MCx0fHwxMCxyfHwiYmUiKSl9dmFyIGE7Im9iamVjdCI9PXR5cGVvZiBlP2UuZXhwb3J0cz1pOnQuQk49aSxpLkJOPWksaS53b3JkU2l6ZT0yNjt0cnl7YT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOnIoNjYwMSkuQnVmZmVyfWNhdGNoKGUpe31mdW5jdGlvbiBzKGUsdCl7dmFyIHI9ZS5jaGFyQ29kZUF0KHQpO3JldHVybiByPj00OCYmcjw9NTc/ci00ODpyPj02NSYmcjw9NzA/ci01NTpyPj05NyYmcjw9MTAyP3ItODc6dm9pZCBuKCExLCJJbnZhbGlkIGNoYXJhY3RlciBpbiAiK2UpfWZ1bmN0aW9uIHUoZSx0LHIpe3ZhciBuPXMoZSxyKTtyZXR1cm4gci0xPj10JiYobnw9cyhlLHItMSk8PDQpLG59ZnVuY3Rpb24gYyhlLHQscixvKXtmb3IodmFyIGk9MCxhPTAscz1NYXRoLm1pbihlLmxlbmd0aCxyKSx1PXQ7dTxzO3UrKyl7dmFyIGM9ZS5jaGFyQ29kZUF0KHUpLTQ4O2kqPW8sYT1jPj00OT9jLTQ5KzEwOmM+PTE3P2MtMTcrMTA6YyxuKGM+PTAmJmE8bywiSW52YWxpZCBjaGFyYWN0ZXIiKSxpKz1hfXJldHVybiBpfWZ1bmN0aW9uIGwoZSx0KXtlLndvcmRzPXQud29yZHMsZS5sZW5ndGg9dC5sZW5ndGgsZS5uZWdhdGl2ZT10Lm5lZ2F0aXZlLGUucmVkPXQucmVkfWlmKGkuaXNCTj1mdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGl8fG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJmUuY29uc3RydWN0b3Iud29yZFNpemU9PT1pLndvcmRTaXplJiZBcnJheS5pc0FycmF5KGUud29yZHMpfSxpLm1heD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmNtcCh0KT4wP2U6dH0saS5taW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jbXAodCk8MD9lOnR9LGkucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKGUsdCxyKXtpZigibnVtYmVyIj09dHlwZW9mIGUpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoZSx0LHIpO2lmKCJvYmplY3QiPT10eXBlb2YgZSlyZXR1cm4gdGhpcy5faW5pdEFycmF5KGUsdCxyKTsiaGV4Ij09PXQmJih0PTE2KSxuKHQ9PT0oMHx0KSYmdD49MiYmdDw9MzYpO3ZhciBvPTA7Ii0iPT09KGU9ZS50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJihvKyssdGhpcy5uZWdhdGl2ZT0xKSxvPGUubGVuZ3RoJiYoMTY9PT10P3RoaXMuX3BhcnNlSGV4KGUsbyxyKToodGhpcy5fcGFyc2VCYXNlKGUsdCxvKSwibGUiPT09ciYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHQscikpKX0saS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oZSx0LHIpe2U8MCYmKHRoaXMubmVnYXRpdmU9MSxlPS1lKSxlPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZlXSx0aGlzLmxlbmd0aD0xKTplPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJmUsZS82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KG4oZTw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZlLGUvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PXImJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx0LHIpfSxpLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKGUsdCxyKXtpZihuKCJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpLGUubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKGUubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG89MDtvPHRoaXMubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPTA7dmFyIGksYSxzPTA7aWYoImJlIj09PXIpZm9yKG89ZS5sZW5ndGgtMSxpPTA7bz49MDtvLT0zKWE9ZVtvXXxlW28tMV08PDh8ZVtvLTJdPDwxNix0aGlzLndvcmRzW2ldfD1hPDxzJjY3MTA4ODYzLHRoaXMud29yZHNbaSsxXT1hPj4+MjYtcyY2NzEwODg2Mywocys9MjQpPj0yNiYmKHMtPTI2LGkrKyk7ZWxzZSBpZigibGUiPT09cilmb3Iobz0wLGk9MDtvPGUubGVuZ3RoO28rPTMpYT1lW29dfGVbbysxXTw8OHxlW28rMl08PDE2LHRoaXMud29yZHNbaV18PWE8PHMmNjcxMDg4NjMsdGhpcy53b3Jkc1tpKzFdPWE+Pj4yNi1zJjY3MTA4ODYzLChzKz0yNCk+PTI2JiYocy09MjYsaSsrKTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0saS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKGUsdCxyKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKGUubGVuZ3RoLXQpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG49MDtuPHRoaXMubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPTA7dmFyIG8saT0wLGE9MDtpZigiYmUiPT09cilmb3Iobj1lLmxlbmd0aC0xO24+PXQ7bi09MilvPXUoZSx0LG4pPDxpLHRoaXMud29yZHNbYV18PTY3MTA4ODYzJm8saT49MTg/KGktPTE4LGErPTEsdGhpcy53b3Jkc1thXXw9bz4+PjI2KTppKz04O2Vsc2UgZm9yKG49KGUubGVuZ3RoLXQpJTI9PTA/dCsxOnQ7bjxlLmxlbmd0aDtuKz0yKW89dShlLHQsbik8PGksdGhpcy53b3Jkc1thXXw9NjcxMDg4NjMmbyxpPj0xOD8oaS09MTgsYSs9MSx0aGlzLndvcmRzW2FdfD1vPj4+MjYpOmkrPTg7dGhpcy5fc3RyaXAoKX0saS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihlLHQscil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIG49MCxvPTE7bzw9NjcxMDg4NjM7byo9dCluKys7bi0tLG89by90fDA7Zm9yKHZhciBpPWUubGVuZ3RoLXIsYT1pJW4scz1NYXRoLm1pbihpLGktYSkrcix1PTAsbD1yO2w8cztsKz1uKXU9YyhlLGwsbCtuLHQpLHRoaXMuaW11bG4obyksdGhpcy53b3Jkc1swXSt1PDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXU6dGhpcy5faWFkZG4odSk7aWYoMCE9PWEpe3ZhciBkPTE7Zm9yKHU9YyhlLGwsZS5sZW5ndGgsdCksbD0wO2w8YTtsKyspZCo9dDt0aGlzLmltdWxuKGQpLHRoaXMud29yZHNbMF0rdTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz11OnRoaXMuX2lhZGRuKHUpfXRoaXMuX3N0cmlwKCl9LGkucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oZSl7ZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgdD0wO3Q8dGhpcy5sZW5ndGg7dCsrKWUud29yZHNbdF09dGhpcy53b3Jkc1t0XTtlLmxlbmd0aD10aGlzLmxlbmd0aCxlLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsZS5yZWQ9dGhpcy5yZWR9LGkucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKGUpe2woZSx0aGlzKX0saS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgaShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KGUpLGV9LGkucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oZSl7Zm9yKDt0aGlzLmxlbmd0aDxlOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLl9zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LGkucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbC5mb3IpdHJ5e2kucHJvdG90eXBlW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWR9Y2F0Y2goZSl7aS5wcm90b3R5cGUuaW5zcGVjdD1kfWVsc2UgaS5wcm90b3R5cGUuaW5zcGVjdD1kO2Z1bmN0aW9uIGQoKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In12YXIgZj1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxwPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGg9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gZyhlLHQscil7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmU7dmFyIG49ZS5sZW5ndGgrdC5sZW5ndGh8MDtyLmxlbmd0aD1uLG49bi0xfDA7dmFyIG89MHxlLndvcmRzWzBdLGk9MHx0LndvcmRzWzBdLGE9byppLHM9NjcxMDg4NjMmYSx1PWEvNjcxMDg4NjR8MDtyLndvcmRzWzBdPXM7Zm9yKHZhciBjPTE7YzxuO2MrKyl7Zm9yKHZhciBsPXU+Pj4yNixkPTY3MTA4ODYzJnUsZj1NYXRoLm1pbihjLHQubGVuZ3RoLTEpLHA9TWF0aC5tYXgoMCxjLWUubGVuZ3RoKzEpO3A8PWY7cCsrKXt2YXIgaD1jLXB8MDtsKz0oYT0obz0wfGUud29yZHNbaF0pKihpPTB8dC53b3Jkc1twXSkrZCkvNjcxMDg4NjR8MCxkPTY3MTA4ODYzJmF9ci53b3Jkc1tjXT0wfGQsdT0wfGx9cmV0dXJuIDAhPT11P3Iud29yZHNbY109MHx1OnIubGVuZ3RoLS0sci5fc3RyaXAoKX1pLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihlLHQpe3ZhciByO2lmKHQ9MHx0fHwxLDE2PT09KGU9ZXx8MTApfHwiaGV4Ij09PWUpe3I9IiI7Zm9yKHZhciBvPTAsaT0wLGE9MDthPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHM9dGhpcy53b3Jkc1thXSx1PSgxNjc3NzIxNSYoczw8b3xpKSkudG9TdHJpbmcoMTYpO2k9cz4+PjI0LW8mMTY3NzcyMTUsKG8rPTIpPj0yNiYmKG8tPTI2LGEtLSkscj0wIT09aXx8YSE9PXRoaXMubGVuZ3RoLTE/Zls2LXUubGVuZ3RoXSt1K3I6dStyfWZvcigwIT09aSYmKHI9aS50b1N0cmluZygxNikrcik7ci5sZW5ndGgldCE9MDspcj0iMCIrcjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihyPSItIityKSxyfWlmKGU9PT0oMHxlKSYmZT49MiYmZTw9MzYpe3ZhciBjPXBbZV0sbD1oW2VdO3I9IiI7dmFyIGQ9dGhpcy5jbG9uZSgpO2ZvcihkLm5lZ2F0aXZlPTA7IWQuaXNaZXJvKCk7KXt2YXIgZz1kLm1vZHJuKGwpLnRvU3RyaW5nKGUpO3I9KGQ9ZC5pZGl2bihsKSkuaXNaZXJvKCk/ZytyOmZbYy1nLmxlbmd0aF0rZytyfWZvcih0aGlzLmlzWmVybygpJiYocj0iMCIrcik7ci5sZW5ndGgldCE9MDspcj0iMCIrcjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihyPSItIityKSxyfW4oITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0saS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/ZSs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP2UrPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZuKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tZTplfSxpLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNiwyKX0sYSYmKGkucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoYSxlLHQpfSksaS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LGUsdCl9LGkucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKGUsdCxyKXt0aGlzLl9zdHJpcCgpO3ZhciBvPXRoaXMuYnl0ZUxlbmd0aCgpLGk9cnx8TWF0aC5tYXgoMSxvKTtuKG88PWksImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxuKGk+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIik7dmFyIGE9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hbGxvY1Vuc2FmZT9lLmFsbG9jVW5zYWZlKHQpOm5ldyBlKHQpfShlLGkpO3JldHVybiB0aGlzWyJfdG9BcnJheUxpa2UiKygibGUiPT09dD8iTEUiOiJCRSIpXShhLG8pLGF9LGkucHJvdG90eXBlLl90b0FycmF5TGlrZUxFPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTAsbj0wLG89MCxpPTA7bzx0aGlzLmxlbmd0aDtvKyspe3ZhciBhPXRoaXMud29yZHNbb108PGl8bjtlW3IrK109MjU1JmEscjxlLmxlbmd0aCYmKGVbcisrXT1hPj44JjI1NSkscjxlLmxlbmd0aCYmKGVbcisrXT1hPj4xNiYyNTUpLDY9PT1pPyhyPGUubGVuZ3RoJiYoZVtyKytdPWE+PjI0JjI1NSksbj0wLGk9MCk6KG49YT4+PjI0LGkrPTIpfWlmKHI8ZS5sZW5ndGgpZm9yKGVbcisrXT1uO3I8ZS5sZW5ndGg7KWVbcisrXT0wfSxpLnByb3RvdHlwZS5fdG9BcnJheUxpa2VCRT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1lLmxlbmd0aC0xLG49MCxvPTAsaT0wO288dGhpcy5sZW5ndGg7bysrKXt2YXIgYT10aGlzLndvcmRzW29dPDxpfG47ZVtyLS1dPTI1NSZhLHI+PTAmJihlW3ItLV09YT4+OCYyNTUpLHI+PTAmJihlW3ItLV09YT4+MTYmMjU1KSw2PT09aT8ocj49MCYmKGVbci0tXT1hPj4yNCYyNTUpLG49MCxpPTApOihuPWE+Pj4yNCxpKz0yKX1pZihyPj0wKWZvcihlW3ItLV09bjtyPj0wOyllW3ItLV09MH0sTWF0aC5jbHozMj9pLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKGUpe3JldHVybiAzMi1NYXRoLmNsejMyKGUpfTppLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUscj0wO3JldHVybiB0Pj00MDk2JiYocis9MTMsdD4+Pj0xMyksdD49NjQmJihyKz03LHQ+Pj49NyksdD49OCYmKHIrPTQsdD4+Pj00KSx0Pj0yJiYocis9Mix0Pj4+PTIpLHIrdH0saS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKGUpe2lmKDA9PT1lKXJldHVybiAyNjt2YXIgdD1lLHI9MDtyZXR1cm4gMD09KDgxOTEmdCkmJihyKz0xMyx0Pj4+PTEzKSwwPT0oMTI3JnQpJiYocis9Nyx0Pj4+PTcpLDA9PSgxNSZ0KSYmKHIrPTQsdD4+Pj00KSwwPT0oMyZ0KSYmKHIrPTIsdD4+Pj0yKSwwPT0oMSZ0KSYmcisrLHJ9LGkucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBlPXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0sdD10aGlzLl9jb3VudEJpdHMoZSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt0fSxpLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBlPTAsdD0wO3Q8dGhpcy5sZW5ndGg7dCsrKXt2YXIgcj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3RdKTtpZihlKz1yLDI2IT09cilicmVha31yZXR1cm4gZX0saS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0saS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKGUpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKGUpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0saS5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGVzdG4oZS0xKT90aGlzLm5vdG4oZSkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0saS5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LGkucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaW5lZygpfSxpLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxpLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKGUpe2Zvcig7dGhpcy5sZW5ndGg8ZS5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl0aGlzLndvcmRzW3RdPXRoaXMud29yZHNbdF18ZS53b3Jkc1t0XTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0saS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKGUpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfGUubmVnYXRpdmUpKSx0aGlzLml1b3IoZSl9LGkucHJvdG90eXBlLm9yPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxlbmd0aD5lLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKGUpOmUuY2xvbmUoKS5pb3IodGhpcyl9LGkucHJvdG90eXBlLnVvcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5sZW5ndGg+ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoZSk6ZS5jbG9uZSgpLml1b3IodGhpcyl9LGkucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKGUpe3ZhciB0O3Q9dGhpcy5sZW5ndGg+ZS5sZW5ndGg/ZTp0aGlzO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRoaXMud29yZHNbcl09dGhpcy53b3Jkc1tyXSZlLndvcmRzW3JdO3JldHVybiB0aGlzLmxlbmd0aD10Lmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxpLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKGUpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfGUubmVnYXRpdmUpKSx0aGlzLml1YW5kKGUpfSxpLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubGVuZ3RoPmUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKGUpOmUuY2xvbmUoKS5pYW5kKHRoaXMpfSxpLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxlbmd0aD5lLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoZSk6ZS5jbG9uZSgpLml1YW5kKHRoaXMpfSxpLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihlKXt2YXIgdCxyO3RoaXMubGVuZ3RoPmUubGVuZ3RoPyh0PXRoaXMscj1lKToodD1lLHI9dGhpcyk7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT10LndvcmRzW25dXnIud29yZHNbbl07aWYodGhpcyE9PXQpZm9yKDtuPHQubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPXQud29yZHNbbl07cmV0dXJuIHRoaXMubGVuZ3RoPXQubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LGkucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG4oMD09KHRoaXMubmVnYXRpdmV8ZS5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoZSl9LGkucHJvdG90eXBlLnhvcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5sZW5ndGg+ZS5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoZSk6ZS5jbG9uZSgpLml4b3IodGhpcyl9LGkucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubGVuZ3RoPmUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihlKTplLmNsb25lKCkuaXV4b3IodGhpcyl9LGkucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD0wfE1hdGguY2VpbChlLzI2KSxyPWUlMjY7dGhpcy5fZXhwYW5kKHQpLHI+MCYmdC0tO2Zvcih2YXIgbz0wO288dDtvKyspdGhpcy53b3Jkc1tvXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tvXTtyZXR1cm4gcj4wJiYodGhpcy53b3Jkc1tvXT1+dGhpcy53b3Jkc1tvXSY2NzEwODg2Mz4+MjYtciksdGhpcy5fc3RyaXAoKX0saS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKGUpfSxpLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKGUsdCl7bigibnVtYmVyIj09dHlwZW9mIGUmJmU+PTApO3ZhciByPWUvMjZ8MCxvPWUlMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChyKzEpLHRoaXMud29yZHNbcl09dD90aGlzLndvcmRzW3JdfDE8PG86dGhpcy53b3Jkc1tyXSZ+KDE8PG8pLHRoaXMuX3N0cmlwKCl9LGkucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZSl7dmFyIHQscixuO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09ZS5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHQ9dGhpcy5pc3ViKGUpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PWUubmVnYXRpdmUpcmV0dXJuIGUubmVnYXRpdmU9MCx0PXRoaXMuaXN1YihlKSxlLm5lZ2F0aXZlPTEsdC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5lLmxlbmd0aD8ocj10aGlzLG49ZSk6KHI9ZSxuPXRoaXMpO2Zvcih2YXIgbz0wLGk9MDtpPG4ubGVuZ3RoO2krKyl0PSgwfHIud29yZHNbaV0pKygwfG4ud29yZHNbaV0pK28sdGhpcy53b3Jkc1tpXT02NzEwODg2MyZ0LG89dD4+PjI2O2Zvcig7MCE9PW8mJmk8ci5sZW5ndGg7aSsrKXQ9KDB8ci53b3Jkc1tpXSkrbyx0aGlzLndvcmRzW2ldPTY3MTA4ODYzJnQsbz10Pj4+MjY7aWYodGhpcy5sZW5ndGg9ci5sZW5ndGgsMCE9PW8pdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09byx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYociE9PXRoaXMpZm9yKDtpPHIubGVuZ3RoO2krKyl0aGlzLndvcmRzW2ldPXIud29yZHNbaV07cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gMCE9PWUubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhlLm5lZ2F0aXZlPTAsdD10aGlzLnN1YihlKSxlLm5lZ2F0aXZlXj0xLHQpOjA9PT1lLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHQ9ZS5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHQpOnRoaXMubGVuZ3RoPmUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKGUpOmUuY2xvbmUoKS5pYWRkKHRoaXMpfSxpLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKGUpe2lmKDAhPT1lLm5lZ2F0aXZlKXtlLm5lZ2F0aXZlPTA7dmFyIHQ9dGhpcy5pYWRkKGUpO3JldHVybiBlLm5lZ2F0aXZlPTEsdC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChlKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgcixuLG89dGhpcy5jbXAoZSk7aWYoMD09PW8pcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO28+MD8ocj10aGlzLG49ZSk6KHI9ZSxuPXRoaXMpO2Zvcih2YXIgaT0wLGE9MDthPG4ubGVuZ3RoO2ErKylpPSh0PSgwfHIud29yZHNbYV0pLSgwfG4ud29yZHNbYV0pK2kpPj4yNix0aGlzLndvcmRzW2FdPTY3MTA4ODYzJnQ7Zm9yKDswIT09aSYmYTxyLmxlbmd0aDthKyspaT0odD0oMHxyLndvcmRzW2FdKStpKT4+MjYsdGhpcy53b3Jkc1thXT02NzEwODg2MyZ0O2lmKDA9PT1pJiZhPHIubGVuZ3RoJiZyIT09dGhpcylmb3IoO2E8ci5sZW5ndGg7YSsrKXRoaXMud29yZHNbYV09ci53b3Jkc1thXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsYSksciE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuX3N0cmlwKCl9LGkucHJvdG90eXBlLnN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoZSl9O3ZhciB5PWZ1bmN0aW9uKGUsdCxyKXt2YXIgbixvLGksYT1lLndvcmRzLHM9dC53b3Jkcyx1PXIud29yZHMsYz0wLGw9MHxhWzBdLGQ9ODE5MSZsLGY9bD4+PjEzLHA9MHxhWzFdLGg9ODE5MSZwLGc9cD4+PjEzLHk9MHxhWzJdLGI9ODE5MSZ5LHY9eT4+PjEzLG09MHxhWzNdLFQ9ODE5MSZtLHc9bT4+PjEzLEE9MHxhWzRdLFA9ODE5MSZBLFc9QT4+PjEzLEI9MHxhWzVdLEM9ODE5MSZCLEU9Qj4+PjEzLE09MHxhWzZdLGs9ODE5MSZNLEk9TT4+PjEzLE89MHxhWzddLHg9ODE5MSZPLFM9Tz4+PjEzLEY9MHxhWzhdLF89ODE5MSZGLFI9Rj4+PjEzLE49MHxhWzldLFU9ODE5MSZOLEQ9Tj4+PjEzLEw9MHxzWzBdLGo9ODE5MSZMLHo9TD4+PjEzLCQ9MHxzWzFdLFY9ODE5MSYkLEc9JD4+PjEzLEg9MHxzWzJdLEs9ODE5MSZILFo9SD4+PjEzLHE9MHxzWzNdLEo9ODE5MSZxLFk9cT4+PjEzLFg9MHxzWzRdLFE9ODE5MSZYLGVlPVg+Pj4xMyx0ZT0wfHNbNV0scmU9ODE5MSZ0ZSxuZT10ZT4+PjEzLG9lPTB8c1s2XSxpZT04MTkxJm9lLGFlPW9lPj4+MTMsc2U9MHxzWzddLHVlPTgxOTEmc2UsY2U9c2U+Pj4xMyxsZT0wfHNbOF0sZGU9ODE5MSZsZSxmZT1sZT4+PjEzLHBlPTB8c1s5XSxoZT04MTkxJnBlLGdlPXBlPj4+MTM7ci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmUsci5sZW5ndGg9MTk7dmFyIHllPShjKyhuPU1hdGguaW11bChkLGopKXwwKSsoKDgxOTEmKG89KG89TWF0aC5pbXVsKGQseikpK01hdGguaW11bChmLGopfDApKTw8MTMpfDA7Yz0oKGk9TWF0aC5pbXVsKGYseikpKyhvPj4+MTMpfDApKyh5ZT4+PjI2KXwwLHllJj02NzEwODg2MyxuPU1hdGguaW11bChoLGopLG89KG89TWF0aC5pbXVsKGgseikpK01hdGguaW11bChnLGopfDAsaT1NYXRoLmltdWwoZyx6KTt2YXIgYmU9KGMrKG49bitNYXRoLmltdWwoZCxWKXwwKXwwKSsoKDgxOTEmKG89KG89bytNYXRoLmltdWwoZCxHKXwwKStNYXRoLmltdWwoZixWKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsRyl8MCkrKG8+Pj4xMyl8MCkrKGJlPj4+MjYpfDAsYmUmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGIsaiksbz0obz1NYXRoLmltdWwoYix6KSkrTWF0aC5pbXVsKHYsail8MCxpPU1hdGguaW11bCh2LHopLG49bitNYXRoLmltdWwoaCxWKXwwLG89KG89bytNYXRoLmltdWwoaCxHKXwwKStNYXRoLmltdWwoZyxWKXwwLGk9aStNYXRoLmltdWwoZyxHKXwwO3ZhciB2ZT0oYysobj1uK01hdGguaW11bChkLEspfDApfDApKygoODE5MSYobz0obz1vK01hdGguaW11bChkLFopfDApK01hdGguaW11bChmLEspfDApKTw8MTMpfDA7Yz0oKGk9aStNYXRoLmltdWwoZixaKXwwKSsobz4+PjEzKXwwKSsodmU+Pj4yNil8MCx2ZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoVCxqKSxvPShvPU1hdGguaW11bChULHopKStNYXRoLmltdWwodyxqKXwwLGk9TWF0aC5pbXVsKHcseiksbj1uK01hdGguaW11bChiLFYpfDAsbz0obz1vK01hdGguaW11bChiLEcpfDApK01hdGguaW11bCh2LFYpfDAsaT1pK01hdGguaW11bCh2LEcpfDAsbj1uK01hdGguaW11bChoLEspfDAsbz0obz1vK01hdGguaW11bChoLFopfDApK01hdGguaW11bChnLEspfDAsaT1pK01hdGguaW11bChnLFopfDA7dmFyIG1lPShjKyhuPW4rTWF0aC5pbXVsKGQsSil8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGQsWSl8MCkrTWF0aC5pbXVsKGYsSil8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChmLFkpfDApKyhvPj4+MTMpfDApKyhtZT4+PjI2KXwwLG1lJj02NzEwODg2MyxuPU1hdGguaW11bChQLGopLG89KG89TWF0aC5pbXVsKFAseikpK01hdGguaW11bChXLGopfDAsaT1NYXRoLmltdWwoVyx6KSxuPW4rTWF0aC5pbXVsKFQsVil8MCxvPShvPW8rTWF0aC5pbXVsKFQsRyl8MCkrTWF0aC5pbXVsKHcsVil8MCxpPWkrTWF0aC5pbXVsKHcsRyl8MCxuPW4rTWF0aC5pbXVsKGIsSyl8MCxvPShvPW8rTWF0aC5pbXVsKGIsWil8MCkrTWF0aC5pbXVsKHYsSyl8MCxpPWkrTWF0aC5pbXVsKHYsWil8MCxuPW4rTWF0aC5pbXVsKGgsSil8MCxvPShvPW8rTWF0aC5pbXVsKGgsWSl8MCkrTWF0aC5pbXVsKGcsSil8MCxpPWkrTWF0aC5pbXVsKGcsWSl8MDt2YXIgVGU9KGMrKG49bitNYXRoLmltdWwoZCxRKXwwKXwwKSsoKDgxOTEmKG89KG89bytNYXRoLmltdWwoZCxlZSl8MCkrTWF0aC5pbXVsKGYsUSl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChmLGVlKXwwKSsobz4+PjEzKXwwKSsoVGU+Pj4yNil8MCxUZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQyxqKSxvPShvPU1hdGguaW11bChDLHopKStNYXRoLmltdWwoRSxqKXwwLGk9TWF0aC5pbXVsKEUseiksbj1uK01hdGguaW11bChQLFYpfDAsbz0obz1vK01hdGguaW11bChQLEcpfDApK01hdGguaW11bChXLFYpfDAsaT1pK01hdGguaW11bChXLEcpfDAsbj1uK01hdGguaW11bChULEspfDAsbz0obz1vK01hdGguaW11bChULFopfDApK01hdGguaW11bCh3LEspfDAsaT1pK01hdGguaW11bCh3LFopfDAsbj1uK01hdGguaW11bChiLEopfDAsbz0obz1vK01hdGguaW11bChiLFkpfDApK01hdGguaW11bCh2LEopfDAsaT1pK01hdGguaW11bCh2LFkpfDAsbj1uK01hdGguaW11bChoLFEpfDAsbz0obz1vK01hdGguaW11bChoLGVlKXwwKStNYXRoLmltdWwoZyxRKXwwLGk9aStNYXRoLmltdWwoZyxlZSl8MDt2YXIgd2U9KGMrKG49bitNYXRoLmltdWwoZCxyZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGQsbmUpfDApK01hdGguaW11bChmLHJlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsbmUpfDApKyhvPj4+MTMpfDApKyh3ZT4+PjI2KXwwLHdlJj02NzEwODg2MyxuPU1hdGguaW11bChrLGopLG89KG89TWF0aC5pbXVsKGsseikpK01hdGguaW11bChJLGopfDAsaT1NYXRoLmltdWwoSSx6KSxuPW4rTWF0aC5pbXVsKEMsVil8MCxvPShvPW8rTWF0aC5pbXVsKEMsRyl8MCkrTWF0aC5pbXVsKEUsVil8MCxpPWkrTWF0aC5pbXVsKEUsRyl8MCxuPW4rTWF0aC5pbXVsKFAsSyl8MCxvPShvPW8rTWF0aC5pbXVsKFAsWil8MCkrTWF0aC5pbXVsKFcsSyl8MCxpPWkrTWF0aC5pbXVsKFcsWil8MCxuPW4rTWF0aC5pbXVsKFQsSil8MCxvPShvPW8rTWF0aC5pbXVsKFQsWSl8MCkrTWF0aC5pbXVsKHcsSil8MCxpPWkrTWF0aC5pbXVsKHcsWSl8MCxuPW4rTWF0aC5pbXVsKGIsUSl8MCxvPShvPW8rTWF0aC5pbXVsKGIsZWUpfDApK01hdGguaW11bCh2LFEpfDAsaT1pK01hdGguaW11bCh2LGVlKXwwLG49bitNYXRoLmltdWwoaCxyZSl8MCxvPShvPW8rTWF0aC5pbXVsKGgsbmUpfDApK01hdGguaW11bChnLHJlKXwwLGk9aStNYXRoLmltdWwoZyxuZSl8MDt2YXIgQWU9KGMrKG49bitNYXRoLmltdWwoZCxpZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGQsYWUpfDApK01hdGguaW11bChmLGllKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsYWUpfDApKyhvPj4+MTMpfDApKyhBZT4+PjI2KXwwLEFlJj02NzEwODg2MyxuPU1hdGguaW11bCh4LGopLG89KG89TWF0aC5pbXVsKHgseikpK01hdGguaW11bChTLGopfDAsaT1NYXRoLmltdWwoUyx6KSxuPW4rTWF0aC5pbXVsKGssVil8MCxvPShvPW8rTWF0aC5pbXVsKGssRyl8MCkrTWF0aC5pbXVsKEksVil8MCxpPWkrTWF0aC5pbXVsKEksRyl8MCxuPW4rTWF0aC5pbXVsKEMsSyl8MCxvPShvPW8rTWF0aC5pbXVsKEMsWil8MCkrTWF0aC5pbXVsKEUsSyl8MCxpPWkrTWF0aC5pbXVsKEUsWil8MCxuPW4rTWF0aC5pbXVsKFAsSil8MCxvPShvPW8rTWF0aC5pbXVsKFAsWSl8MCkrTWF0aC5pbXVsKFcsSil8MCxpPWkrTWF0aC5pbXVsKFcsWSl8MCxuPW4rTWF0aC5pbXVsKFQsUSl8MCxvPShvPW8rTWF0aC5pbXVsKFQsZWUpfDApK01hdGguaW11bCh3LFEpfDAsaT1pK01hdGguaW11bCh3LGVlKXwwLG49bitNYXRoLmltdWwoYixyZSl8MCxvPShvPW8rTWF0aC5pbXVsKGIsbmUpfDApK01hdGguaW11bCh2LHJlKXwwLGk9aStNYXRoLmltdWwodixuZSl8MCxuPW4rTWF0aC5pbXVsKGgsaWUpfDAsbz0obz1vK01hdGguaW11bChoLGFlKXwwKStNYXRoLmltdWwoZyxpZSl8MCxpPWkrTWF0aC5pbXVsKGcsYWUpfDA7dmFyIFBlPShjKyhuPW4rTWF0aC5pbXVsKGQsdWUpfDApfDApKygoODE5MSYobz0obz1vK01hdGguaW11bChkLGNlKXwwKStNYXRoLmltdWwoZix1ZSl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChmLGNlKXwwKSsobz4+PjEzKXwwKSsoUGU+Pj4yNil8MCxQZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoXyxqKSxvPShvPU1hdGguaW11bChfLHopKStNYXRoLmltdWwoUixqKXwwLGk9TWF0aC5pbXVsKFIseiksbj1uK01hdGguaW11bCh4LFYpfDAsbz0obz1vK01hdGguaW11bCh4LEcpfDApK01hdGguaW11bChTLFYpfDAsaT1pK01hdGguaW11bChTLEcpfDAsbj1uK01hdGguaW11bChrLEspfDAsbz0obz1vK01hdGguaW11bChrLFopfDApK01hdGguaW11bChJLEspfDAsaT1pK01hdGguaW11bChJLFopfDAsbj1uK01hdGguaW11bChDLEopfDAsbz0obz1vK01hdGguaW11bChDLFkpfDApK01hdGguaW11bChFLEopfDAsaT1pK01hdGguaW11bChFLFkpfDAsbj1uK01hdGguaW11bChQLFEpfDAsbz0obz1vK01hdGguaW11bChQLGVlKXwwKStNYXRoLmltdWwoVyxRKXwwLGk9aStNYXRoLmltdWwoVyxlZSl8MCxuPW4rTWF0aC5pbXVsKFQscmUpfDAsbz0obz1vK01hdGguaW11bChULG5lKXwwKStNYXRoLmltdWwodyxyZSl8MCxpPWkrTWF0aC5pbXVsKHcsbmUpfDAsbj1uK01hdGguaW11bChiLGllKXwwLG89KG89bytNYXRoLmltdWwoYixhZSl8MCkrTWF0aC5pbXVsKHYsaWUpfDAsaT1pK01hdGguaW11bCh2LGFlKXwwLG49bitNYXRoLmltdWwoaCx1ZSl8MCxvPShvPW8rTWF0aC5pbXVsKGgsY2UpfDApK01hdGguaW11bChnLHVlKXwwLGk9aStNYXRoLmltdWwoZyxjZSl8MDt2YXIgV2U9KGMrKG49bitNYXRoLmltdWwoZCxkZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGQsZmUpfDApK01hdGguaW11bChmLGRlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsZmUpfDApKyhvPj4+MTMpfDApKyhXZT4+PjI2KXwwLFdlJj02NzEwODg2MyxuPU1hdGguaW11bChVLGopLG89KG89TWF0aC5pbXVsKFUseikpK01hdGguaW11bChELGopfDAsaT1NYXRoLmltdWwoRCx6KSxuPW4rTWF0aC5pbXVsKF8sVil8MCxvPShvPW8rTWF0aC5pbXVsKF8sRyl8MCkrTWF0aC5pbXVsKFIsVil8MCxpPWkrTWF0aC5pbXVsKFIsRyl8MCxuPW4rTWF0aC5pbXVsKHgsSyl8MCxvPShvPW8rTWF0aC5pbXVsKHgsWil8MCkrTWF0aC5pbXVsKFMsSyl8MCxpPWkrTWF0aC5pbXVsKFMsWil8MCxuPW4rTWF0aC5pbXVsKGssSil8MCxvPShvPW8rTWF0aC5pbXVsKGssWSl8MCkrTWF0aC5pbXVsKEksSil8MCxpPWkrTWF0aC5pbXVsKEksWSl8MCxuPW4rTWF0aC5pbXVsKEMsUSl8MCxvPShvPW8rTWF0aC5pbXVsKEMsZWUpfDApK01hdGguaW11bChFLFEpfDAsaT1pK01hdGguaW11bChFLGVlKXwwLG49bitNYXRoLmltdWwoUCxyZSl8MCxvPShvPW8rTWF0aC5pbXVsKFAsbmUpfDApK01hdGguaW11bChXLHJlKXwwLGk9aStNYXRoLmltdWwoVyxuZSl8MCxuPW4rTWF0aC5pbXVsKFQsaWUpfDAsbz0obz1vK01hdGguaW11bChULGFlKXwwKStNYXRoLmltdWwodyxpZSl8MCxpPWkrTWF0aC5pbXVsKHcsYWUpfDAsbj1uK01hdGguaW11bChiLHVlKXwwLG89KG89bytNYXRoLmltdWwoYixjZSl8MCkrTWF0aC5pbXVsKHYsdWUpfDAsaT1pK01hdGguaW11bCh2LGNlKXwwLG49bitNYXRoLmltdWwoaCxkZSl8MCxvPShvPW8rTWF0aC5pbXVsKGgsZmUpfDApK01hdGguaW11bChnLGRlKXwwLGk9aStNYXRoLmltdWwoZyxmZSl8MDt2YXIgQmU9KGMrKG49bitNYXRoLmltdWwoZCxoZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGQsZ2UpfDApK01hdGguaW11bChmLGhlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGYsZ2UpfDApKyhvPj4+MTMpfDApKyhCZT4+PjI2KXwwLEJlJj02NzEwODg2MyxuPU1hdGguaW11bChVLFYpLG89KG89TWF0aC5pbXVsKFUsRykpK01hdGguaW11bChELFYpfDAsaT1NYXRoLmltdWwoRCxHKSxuPW4rTWF0aC5pbXVsKF8sSyl8MCxvPShvPW8rTWF0aC5pbXVsKF8sWil8MCkrTWF0aC5pbXVsKFIsSyl8MCxpPWkrTWF0aC5pbXVsKFIsWil8MCxuPW4rTWF0aC5pbXVsKHgsSil8MCxvPShvPW8rTWF0aC5pbXVsKHgsWSl8MCkrTWF0aC5pbXVsKFMsSil8MCxpPWkrTWF0aC5pbXVsKFMsWSl8MCxuPW4rTWF0aC5pbXVsKGssUSl8MCxvPShvPW8rTWF0aC5pbXVsKGssZWUpfDApK01hdGguaW11bChJLFEpfDAsaT1pK01hdGguaW11bChJLGVlKXwwLG49bitNYXRoLmltdWwoQyxyZSl8MCxvPShvPW8rTWF0aC5pbXVsKEMsbmUpfDApK01hdGguaW11bChFLHJlKXwwLGk9aStNYXRoLmltdWwoRSxuZSl8MCxuPW4rTWF0aC5pbXVsKFAsaWUpfDAsbz0obz1vK01hdGguaW11bChQLGFlKXwwKStNYXRoLmltdWwoVyxpZSl8MCxpPWkrTWF0aC5pbXVsKFcsYWUpfDAsbj1uK01hdGguaW11bChULHVlKXwwLG89KG89bytNYXRoLmltdWwoVCxjZSl8MCkrTWF0aC5pbXVsKHcsdWUpfDAsaT1pK01hdGguaW11bCh3LGNlKXwwLG49bitNYXRoLmltdWwoYixkZSl8MCxvPShvPW8rTWF0aC5pbXVsKGIsZmUpfDApK01hdGguaW11bCh2LGRlKXwwLGk9aStNYXRoLmltdWwodixmZSl8MDt2YXIgQ2U9KGMrKG49bitNYXRoLmltdWwoaCxoZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGgsZ2UpfDApK01hdGguaW11bChnLGhlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKGcsZ2UpfDApKyhvPj4+MTMpfDApKyhDZT4+PjI2KXwwLENlJj02NzEwODg2MyxuPU1hdGguaW11bChVLEspLG89KG89TWF0aC5pbXVsKFUsWikpK01hdGguaW11bChELEspfDAsaT1NYXRoLmltdWwoRCxaKSxuPW4rTWF0aC5pbXVsKF8sSil8MCxvPShvPW8rTWF0aC5pbXVsKF8sWSl8MCkrTWF0aC5pbXVsKFIsSil8MCxpPWkrTWF0aC5pbXVsKFIsWSl8MCxuPW4rTWF0aC5pbXVsKHgsUSl8MCxvPShvPW8rTWF0aC5pbXVsKHgsZWUpfDApK01hdGguaW11bChTLFEpfDAsaT1pK01hdGguaW11bChTLGVlKXwwLG49bitNYXRoLmltdWwoayxyZSl8MCxvPShvPW8rTWF0aC5pbXVsKGssbmUpfDApK01hdGguaW11bChJLHJlKXwwLGk9aStNYXRoLmltdWwoSSxuZSl8MCxuPW4rTWF0aC5pbXVsKEMsaWUpfDAsbz0obz1vK01hdGguaW11bChDLGFlKXwwKStNYXRoLmltdWwoRSxpZSl8MCxpPWkrTWF0aC5pbXVsKEUsYWUpfDAsbj1uK01hdGguaW11bChQLHVlKXwwLG89KG89bytNYXRoLmltdWwoUCxjZSl8MCkrTWF0aC5pbXVsKFcsdWUpfDAsaT1pK01hdGguaW11bChXLGNlKXwwLG49bitNYXRoLmltdWwoVCxkZSl8MCxvPShvPW8rTWF0aC5pbXVsKFQsZmUpfDApK01hdGguaW11bCh3LGRlKXwwLGk9aStNYXRoLmltdWwodyxmZSl8MDt2YXIgRWU9KGMrKG49bitNYXRoLmltdWwoYixoZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKGIsZ2UpfDApK01hdGguaW11bCh2LGhlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKHYsZ2UpfDApKyhvPj4+MTMpfDApKyhFZT4+PjI2KXwwLEVlJj02NzEwODg2MyxuPU1hdGguaW11bChVLEopLG89KG89TWF0aC5pbXVsKFUsWSkpK01hdGguaW11bChELEopfDAsaT1NYXRoLmltdWwoRCxZKSxuPW4rTWF0aC5pbXVsKF8sUSl8MCxvPShvPW8rTWF0aC5pbXVsKF8sZWUpfDApK01hdGguaW11bChSLFEpfDAsaT1pK01hdGguaW11bChSLGVlKXwwLG49bitNYXRoLmltdWwoeCxyZSl8MCxvPShvPW8rTWF0aC5pbXVsKHgsbmUpfDApK01hdGguaW11bChTLHJlKXwwLGk9aStNYXRoLmltdWwoUyxuZSl8MCxuPW4rTWF0aC5pbXVsKGssaWUpfDAsbz0obz1vK01hdGguaW11bChrLGFlKXwwKStNYXRoLmltdWwoSSxpZSl8MCxpPWkrTWF0aC5pbXVsKEksYWUpfDAsbj1uK01hdGguaW11bChDLHVlKXwwLG89KG89bytNYXRoLmltdWwoQyxjZSl8MCkrTWF0aC5pbXVsKEUsdWUpfDAsaT1pK01hdGguaW11bChFLGNlKXwwLG49bitNYXRoLmltdWwoUCxkZSl8MCxvPShvPW8rTWF0aC5pbXVsKFAsZmUpfDApK01hdGguaW11bChXLGRlKXwwLGk9aStNYXRoLmltdWwoVyxmZSl8MDt2YXIgTWU9KGMrKG49bitNYXRoLmltdWwoVCxoZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKFQsZ2UpfDApK01hdGguaW11bCh3LGhlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKHcsZ2UpfDApKyhvPj4+MTMpfDApKyhNZT4+PjI2KXwwLE1lJj02NzEwODg2MyxuPU1hdGguaW11bChVLFEpLG89KG89TWF0aC5pbXVsKFUsZWUpKStNYXRoLmltdWwoRCxRKXwwLGk9TWF0aC5pbXVsKEQsZWUpLG49bitNYXRoLmltdWwoXyxyZSl8MCxvPShvPW8rTWF0aC5pbXVsKF8sbmUpfDApK01hdGguaW11bChSLHJlKXwwLGk9aStNYXRoLmltdWwoUixuZSl8MCxuPW4rTWF0aC5pbXVsKHgsaWUpfDAsbz0obz1vK01hdGguaW11bCh4LGFlKXwwKStNYXRoLmltdWwoUyxpZSl8MCxpPWkrTWF0aC5pbXVsKFMsYWUpfDAsbj1uK01hdGguaW11bChrLHVlKXwwLG89KG89bytNYXRoLmltdWwoayxjZSl8MCkrTWF0aC5pbXVsKEksdWUpfDAsaT1pK01hdGguaW11bChJLGNlKXwwLG49bitNYXRoLmltdWwoQyxkZSl8MCxvPShvPW8rTWF0aC5pbXVsKEMsZmUpfDApK01hdGguaW11bChFLGRlKXwwLGk9aStNYXRoLmltdWwoRSxmZSl8MDt2YXIga2U9KGMrKG49bitNYXRoLmltdWwoUCxoZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKFAsZ2UpfDApK01hdGguaW11bChXLGhlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKFcsZ2UpfDApKyhvPj4+MTMpfDApKyhrZT4+PjI2KXwwLGtlJj02NzEwODg2MyxuPU1hdGguaW11bChVLHJlKSxvPShvPU1hdGguaW11bChVLG5lKSkrTWF0aC5pbXVsKEQscmUpfDAsaT1NYXRoLmltdWwoRCxuZSksbj1uK01hdGguaW11bChfLGllKXwwLG89KG89bytNYXRoLmltdWwoXyxhZSl8MCkrTWF0aC5pbXVsKFIsaWUpfDAsaT1pK01hdGguaW11bChSLGFlKXwwLG49bitNYXRoLmltdWwoeCx1ZSl8MCxvPShvPW8rTWF0aC5pbXVsKHgsY2UpfDApK01hdGguaW11bChTLHVlKXwwLGk9aStNYXRoLmltdWwoUyxjZSl8MCxuPW4rTWF0aC5pbXVsKGssZGUpfDAsbz0obz1vK01hdGguaW11bChrLGZlKXwwKStNYXRoLmltdWwoSSxkZSl8MCxpPWkrTWF0aC5pbXVsKEksZmUpfDA7dmFyIEllPShjKyhuPW4rTWF0aC5pbXVsKEMsaGUpfDApfDApKygoODE5MSYobz0obz1vK01hdGguaW11bChDLGdlKXwwKStNYXRoLmltdWwoRSxoZSl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChFLGdlKXwwKSsobz4+PjEzKXwwKSsoSWU+Pj4yNil8MCxJZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoVSxpZSksbz0obz1NYXRoLmltdWwoVSxhZSkpK01hdGguaW11bChELGllKXwwLGk9TWF0aC5pbXVsKEQsYWUpLG49bitNYXRoLmltdWwoXyx1ZSl8MCxvPShvPW8rTWF0aC5pbXVsKF8sY2UpfDApK01hdGguaW11bChSLHVlKXwwLGk9aStNYXRoLmltdWwoUixjZSl8MCxuPW4rTWF0aC5pbXVsKHgsZGUpfDAsbz0obz1vK01hdGguaW11bCh4LGZlKXwwKStNYXRoLmltdWwoUyxkZSl8MCxpPWkrTWF0aC5pbXVsKFMsZmUpfDA7dmFyIE9lPShjKyhuPW4rTWF0aC5pbXVsKGssaGUpfDApfDApKygoODE5MSYobz0obz1vK01hdGguaW11bChrLGdlKXwwKStNYXRoLmltdWwoSSxoZSl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChJLGdlKXwwKSsobz4+PjEzKXwwKSsoT2U+Pj4yNil8MCxPZSY9NjcxMDg4NjMsbj1NYXRoLmltdWwoVSx1ZSksbz0obz1NYXRoLmltdWwoVSxjZSkpK01hdGguaW11bChELHVlKXwwLGk9TWF0aC5pbXVsKEQsY2UpLG49bitNYXRoLmltdWwoXyxkZSl8MCxvPShvPW8rTWF0aC5pbXVsKF8sZmUpfDApK01hdGguaW11bChSLGRlKXwwLGk9aStNYXRoLmltdWwoUixmZSl8MDt2YXIgeGU9KGMrKG49bitNYXRoLmltdWwoeCxoZSl8MCl8MCkrKCg4MTkxJihvPShvPW8rTWF0aC5pbXVsKHgsZ2UpfDApK01hdGguaW11bChTLGhlKXwwKSk8PDEzKXwwO2M9KChpPWkrTWF0aC5pbXVsKFMsZ2UpfDApKyhvPj4+MTMpfDApKyh4ZT4+PjI2KXwwLHhlJj02NzEwODg2MyxuPU1hdGguaW11bChVLGRlKSxvPShvPU1hdGguaW11bChVLGZlKSkrTWF0aC5pbXVsKEQsZGUpfDAsaT1NYXRoLmltdWwoRCxmZSk7dmFyIFNlPShjKyhuPW4rTWF0aC5pbXVsKF8saGUpfDApfDApKygoODE5MSYobz0obz1vK01hdGguaW11bChfLGdlKXwwKStNYXRoLmltdWwoUixoZSl8MCkpPDwxMyl8MDtjPSgoaT1pK01hdGguaW11bChSLGdlKXwwKSsobz4+PjEzKXwwKSsoU2U+Pj4yNil8MCxTZSY9NjcxMDg4NjM7dmFyIEZlPShjKyhuPU1hdGguaW11bChVLGhlKSl8MCkrKCg4MTkxJihvPShvPU1hdGguaW11bChVLGdlKSkrTWF0aC5pbXVsKEQsaGUpfDApKTw8MTMpfDA7cmV0dXJuIGM9KChpPU1hdGguaW11bChELGdlKSkrKG8+Pj4xMyl8MCkrKEZlPj4+MjYpfDAsRmUmPTY3MTA4ODYzLHVbMF09eWUsdVsxXT1iZSx1WzJdPXZlLHVbM109bWUsdVs0XT1UZSx1WzVdPXdlLHVbNl09QWUsdVs3XT1QZSx1WzhdPVdlLHVbOV09QmUsdVsxMF09Q2UsdVsxMV09RWUsdVsxMl09TWUsdVsxM109a2UsdVsxNF09SWUsdVsxNV09T2UsdVsxNl09eGUsdVsxN109U2UsdVsxOF09RmUsMCE9PWMmJih1WzE5XT1jLHIubGVuZ3RoKyspLHJ9O2Z1bmN0aW9uIGIoZSx0LHIpe3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlLHIubGVuZ3RoPWUubGVuZ3RoK3QubGVuZ3RoO2Zvcih2YXIgbj0wLG89MCxpPTA7aTxyLmxlbmd0aC0xO2krKyl7dmFyIGE9bztvPTA7Zm9yKHZhciBzPTY3MTA4ODYzJm4sdT1NYXRoLm1pbihpLHQubGVuZ3RoLTEpLGM9TWF0aC5tYXgoMCxpLWUubGVuZ3RoKzEpO2M8PXU7YysrKXt2YXIgbD1pLWMsZD0oMHxlLndvcmRzW2xdKSooMHx0LndvcmRzW2NdKSxmPTY3MTA4ODYzJmQ7cz02NzEwODg2MyYoZj1mK3N8MCksbys9KGE9KGE9YSsoZC82NzEwODg2NHwwKXwwKSsoZj4+PjI2KXwwKT4+PjI2LGEmPTY3MTA4ODYzfXIud29yZHNbaV09cyxuPWEsYT1vfXJldHVybiAwIT09bj9yLndvcmRzW2ldPW46ci5sZW5ndGgtLSxyLl9zdHJpcCgpfWZ1bmN0aW9uIHYoZSx0LHIpe3JldHVybiBiKGUsdCxyKX1mdW5jdGlvbiBtKGUsdCl7dGhpcy54PWUsdGhpcy55PXR9TWF0aC5pbXVsfHwoeT1nKSxpLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMubGVuZ3RoK2UubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PWUubGVuZ3RoP3kodGhpcyxlLHQpOnI8NjM/Zyh0aGlzLGUsdCk6cjwxMDI0P2IodGhpcyxlLHQpOnYodGhpcyxlLHQpfSxtLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1uZXcgQXJyYXkoZSkscj1pLnByb3RvdHlwZS5fY291bnRCaXRzKGUpLTEsbj0wO248ZTtuKyspdFtuXT10aGlzLnJldkJpbihuLHIsZSk7cmV0dXJuIHR9LG0ucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihlLHQscil7aWYoMD09PWV8fGU9PT1yLTEpcmV0dXJuIGU7Zm9yKHZhciBuPTAsbz0wO288dDtvKyspbnw9KDEmZSk8PHQtby0xLGU+Pj0xO3JldHVybiBufSxtLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKGUsdCxyLG4sbyxpKXtmb3IodmFyIGE9MDthPGk7YSsrKW5bYV09dFtlW2FdXSxvW2FdPXJbZVthXV19LG0ucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihlLHQscixuLG8saSl7dGhpcy5wZXJtdXRlKGksZSx0LHIsbixvKTtmb3IodmFyIGE9MTthPG87YTw8PTEpZm9yKHZhciBzPWE8PDEsdT1NYXRoLmNvcygyKk1hdGguUEkvcyksYz1NYXRoLnNpbigyKk1hdGguUEkvcyksbD0wO2w8bztsKz1zKWZvcih2YXIgZD11LGY9YyxwPTA7cDxhO3ArKyl7dmFyIGg9cltsK3BdLGc9bltsK3BdLHk9cltsK3ArYV0sYj1uW2wrcCthXSx2PWQqeS1mKmI7Yj1kKmIrZip5LHk9dixyW2wrcF09aCt5LG5bbCtwXT1nK2IscltsK3ArYV09aC15LG5bbCtwK2FdPWctYixwIT09cyYmKHY9dSpkLWMqZixmPXUqZitjKmQsZD12KX19LG0ucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKGUsdCl7dmFyIHI9MXxNYXRoLm1heCh0LGUpLG49MSZyLG89MDtmb3Iocj1yLzJ8MDtyO3I+Pj49MSlvKys7cmV0dXJuIDE8PG8rMStufSxtLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oZSx0LHIpe2lmKCEocjw9MSkpZm9yKHZhciBuPTA7bjxyLzI7bisrKXt2YXIgbz1lW25dO2Vbbl09ZVtyLW4tMV0sZVtyLW4tMV09byxvPXRbbl0sdFtuXT0tdFtyLW4tMV0sdFtyLW4tMV09LW99fSxtLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9MCxuPTA7bjx0LzI7bisrKXt2YXIgbz04MTkyKk1hdGgucm91bmQoZVsyKm4rMV0vdCkrTWF0aC5yb3VuZChlWzIqbl0vdCkrcjtlW25dPTY3MTA4ODYzJm8scj1vPDY3MTA4ODY0PzA6by82NzEwODg2NHwwfXJldHVybiBlfSxtLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKGUsdCxyLG8pe2Zvcih2YXIgaT0wLGE9MDthPHQ7YSsrKWkrPTB8ZVthXSxyWzIqYV09ODE5MSZpLGk+Pj49MTMsclsyKmErMV09ODE5MSZpLGk+Pj49MTM7Zm9yKGE9Mip0O2E8bzsrK2EpclthXT0wO24oMD09PWkpLG4oMD09KC04MTkyJmkpKX0sbS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09MDtyZXR1cm4gdH0sbS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihlLHQscil7dmFyIG49Mip0aGlzLmd1ZXNzTGVuMTNiKGUubGVuZ3RoLHQubGVuZ3RoKSxvPXRoaXMubWFrZVJCVChuKSxpPXRoaXMuc3R1YihuKSxhPW5ldyBBcnJheShuKSxzPW5ldyBBcnJheShuKSx1PW5ldyBBcnJheShuKSxjPW5ldyBBcnJheShuKSxsPW5ldyBBcnJheShuKSxkPW5ldyBBcnJheShuKSxmPXIud29yZHM7Zi5sZW5ndGg9bix0aGlzLmNvbnZlcnQxM2IoZS53b3JkcyxlLmxlbmd0aCxhLG4pLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLGMsbiksdGhpcy50cmFuc2Zvcm0oYSxpLHMsdSxuLG8pLHRoaXMudHJhbnNmb3JtKGMsaSxsLGQsbixvKTtmb3IodmFyIHA9MDtwPG47cCsrKXt2YXIgaD1zW3BdKmxbcF0tdVtwXSpkW3BdO3VbcF09c1twXSpkW3BdK3VbcF0qbFtwXSxzW3BdPWh9cmV0dXJuIHRoaXMuY29uanVnYXRlKHMsdSxuKSx0aGlzLnRyYW5zZm9ybShzLHUsZixpLG4sbyksdGhpcy5jb25qdWdhdGUoZixpLG4pLHRoaXMubm9ybWFsaXplMTNiKGYsbiksci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmUsci5sZW5ndGg9ZS5sZW5ndGgrdC5sZW5ndGgsci5fc3RyaXAoKX0saS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBpKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksdGhpcy5tdWxUbyhlLHQpfSxpLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBpKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtlLmxlbmd0aCksdih0aGlzLGUsdCl9LGkucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhlLHRoaXMpfSxpLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbihlKXt2YXIgdD1lPDA7dCYmKGU9LWUpLG4oIm51bWJlciI9PXR5cGVvZiBlKSxuKGU8NjcxMDg4NjQpO2Zvcih2YXIgcj0wLG89MDtvPHRoaXMubGVuZ3RoO28rKyl7dmFyIGk9KDB8dGhpcy53b3Jkc1tvXSkqZSxhPSg2NzEwODg2MyZpKSsoNjcxMDg4NjMmcik7cj4+PTI2LHIrPWkvNjcxMDg4NjR8MCxyKz1hPj4+MjYsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZhfXJldHVybiAwIT09ciYmKHRoaXMud29yZHNbb109cix0aGlzLmxlbmd0aCsrKSx0P3RoaXMuaW5lZygpOnRoaXN9LGkucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihlKX0saS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxpLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxpLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlLmJpdExlbmd0aCgpKSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXIvMjZ8MCxvPXIlMjY7dFtyXT1lLndvcmRzW25dPj4+byYxfXJldHVybiB0fShlKTtpZigwPT09dC5sZW5ndGgpcmV0dXJuIG5ldyBpKDEpO2Zvcih2YXIgcj10aGlzLG49MDtuPHQubGVuZ3RoJiYwPT09dFtuXTtuKysscj1yLnNxcigpKTtpZigrK248dC5sZW5ndGgpZm9yKHZhciBvPXIuc3FyKCk7bjx0Lmxlbmd0aDtuKyssbz1vLnNxcigpKTAhPT10W25dJiYocj1yLm11bChvKSk7cmV0dXJuIHJ9LGkucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihlKXtuKCJudW1iZXIiPT10eXBlb2YgZSYmZT49MCk7dmFyIHQscj1lJTI2LG89KGUtcikvMjYsaT02NzEwODg2Mz4+PjI2LXI8PDI2LXI7aWYoMCE9PXIpe3ZhciBhPTA7Zm9yKHQ9MDt0PHRoaXMubGVuZ3RoO3QrKyl7dmFyIHM9dGhpcy53b3Jkc1t0XSZpLHU9KDB8dGhpcy53b3Jkc1t0XSktczw8cjt0aGlzLndvcmRzW3RdPXV8YSxhPXM+Pj4yNi1yfWEmJih0aGlzLndvcmRzW3RdPWEsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PW8pe2Zvcih0PXRoaXMubGVuZ3RoLTE7dD49MDt0LS0pdGhpcy53b3Jkc1t0K29dPXRoaXMud29yZHNbdF07Zm9yKHQ9MDt0PG87dCsrKXRoaXMud29yZHNbdF09MDt0aGlzLmxlbmd0aCs9b31yZXR1cm4gdGhpcy5fc3RyaXAoKX0saS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oZSl7cmV0dXJuIG4oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKGUpfSxpLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oZSx0LHIpe3ZhciBvO24oIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wKSxvPXQ/KHQtdCUyNikvMjY6MDt2YXIgaT1lJTI2LGE9TWF0aC5taW4oKGUtaSkvMjYsdGhpcy5sZW5ndGgpLHM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5pPDxpLHU9cjtpZihvLT1hLG89TWF0aC5tYXgoMCxvKSx1KXtmb3IodmFyIGM9MDtjPGE7YysrKXUud29yZHNbY109dGhpcy53b3Jkc1tjXTt1Lmxlbmd0aD1hfWlmKDA9PT1hKTtlbHNlIGlmKHRoaXMubGVuZ3RoPmEpZm9yKHRoaXMubGVuZ3RoLT1hLGM9MDtjPHRoaXMubGVuZ3RoO2MrKyl0aGlzLndvcmRzW2NdPXRoaXMud29yZHNbYythXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBsPTA7Zm9yKGM9dGhpcy5sZW5ndGgtMTtjPj0wJiYoMCE9PWx8fGM+PW8pO2MtLSl7dmFyIGQ9MHx0aGlzLndvcmRzW2NdO3RoaXMud29yZHNbY109bDw8MjYtaXxkPj4+aSxsPWQmc31yZXR1cm4gdSYmMCE9PWwmJih1LndvcmRzW3UubGVuZ3RoKytdPWwpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLl9zdHJpcCgpfSxpLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihlLHQscil7cmV0dXJuIG4oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKGUsdCxyKX0saS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKGUpfSxpLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihlKX0saS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGUpfSxpLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihlKX0saS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09dHlwZW9mIGUmJmU+PTApO3ZhciB0PWUlMjYscj0oZS10KS8yNixvPTE8PHQ7cmV0dXJuISh0aGlzLmxlbmd0aDw9cnx8ISh0aGlzLndvcmRzW3JdJm8pKX0saS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKGUpe24oIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wKTt2YXIgdD1lJTI2LHI9KGUtdCkvMjY7aWYobigwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXM7aWYoMCE9PXQmJnIrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihyLHRoaXMubGVuZ3RoKSwwIT09dCl7dmFyIG89NjcxMDg4NjNeNjcxMDg4NjM+Pj50PDx0O3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPW99cmV0dXJuIHRoaXMuX3N0cmlwKCl9LGkucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKGUpfSxpLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihlKXtyZXR1cm4gbigibnVtYmVyIj09dHlwZW9mIGUpLG4oZTw2NzEwODg2NCksZTwwP3RoaXMuaXN1Ym4oLWUpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8PWU/KHRoaXMud29yZHNbMF09ZS0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKGUpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihlKX0saS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKGUpe3RoaXMud29yZHNbMF0rPWU7Zm9yKHZhciB0PTA7dDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t0XT49NjcxMDg4NjQ7dCsrKXRoaXMud29yZHNbdF0tPTY3MTA4ODY0LHQ9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbdCsxXT0xOnRoaXMud29yZHNbdCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx0KzEpLHRoaXN9LGkucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKGUpe2lmKG4oIm51bWJlciI9PXR5cGVvZiBlKSxuKGU8NjcxMDg4NjQpLGU8MClyZXR1cm4gdGhpcy5pYWRkbigtZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKGUpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPWUsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHQ9MDt0PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3RdPDA7dCsrKXRoaXMud29yZHNbdF0rPTY3MTA4ODY0LHRoaXMud29yZHNbdCsxXS09MTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0saS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKGUpfSxpLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oZSl9LGkucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LGkucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxpLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oZSx0LHIpe3ZhciBvLGksYT1lLmxlbmd0aCtyO3RoaXMuX2V4cGFuZChhKTt2YXIgcz0wO2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspe2k9KDB8dGhpcy53b3Jkc1tvK3JdKStzO3ZhciB1PSgwfGUud29yZHNbb10pKnQ7cz0oKGktPTY3MTA4ODYzJnUpPj4yNiktKHUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tvK3JdPTY3MTA4ODYzJml9Zm9yKDtvPHRoaXMubGVuZ3RoLXI7bysrKXM9KGk9KDB8dGhpcy53b3Jkc1tvK3JdKStzKT4+MjYsdGhpcy53b3Jkc1tvK3JdPTY3MTA4ODYzJmk7aWYoMD09PXMpcmV0dXJuIHRoaXMuX3N0cmlwKCk7Zm9yKG4oLTE9PT1zKSxzPTAsbz0wO288dGhpcy5sZW5ndGg7bysrKXM9KGk9LSgwfHRoaXMud29yZHNbb10pK3MpPj4yNix0aGlzLndvcmRzW29dPTY3MTA4ODYzJmk7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLl9zdHJpcCgpfSxpLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihlLHQpe3ZhciByPSh0aGlzLmxlbmd0aCxlLmxlbmd0aCksbj10aGlzLmNsb25lKCksbz1lLGE9MHxvLndvcmRzW28ubGVuZ3RoLTFdOzAhPShyPTI2LXRoaXMuX2NvdW50Qml0cyhhKSkmJihvPW8udXNobG4ociksbi5pdXNobG4ociksYT0wfG8ud29yZHNbby5sZW5ndGgtMV0pO3ZhciBzLHU9bi5sZW5ndGgtby5sZW5ndGg7aWYoIm1vZCIhPT10KXsocz1uZXcgaShudWxsKSkubGVuZ3RoPXUrMSxzLndvcmRzPW5ldyBBcnJheShzLmxlbmd0aCk7Zm9yKHZhciBjPTA7YzxzLmxlbmd0aDtjKyspcy53b3Jkc1tjXT0wfXZhciBsPW4uY2xvbmUoKS5faXNobG5zdWJtdWwobywxLHUpOzA9PT1sLm5lZ2F0aXZlJiYobj1sLHMmJihzLndvcmRzW3VdPTEpKTtmb3IodmFyIGQ9dS0xO2Q+PTA7ZC0tKXt2YXIgZj02NzEwODg2NCooMHxuLndvcmRzW28ubGVuZ3RoK2RdKSsoMHxuLndvcmRzW28ubGVuZ3RoK2QtMV0pO2ZvcihmPU1hdGgubWluKGYvYXwwLDY3MTA4ODYzKSxuLl9pc2hsbnN1Ym11bChvLGYsZCk7MCE9PW4ubmVnYXRpdmU7KWYtLSxuLm5lZ2F0aXZlPTAsbi5faXNobG5zdWJtdWwobywxLGQpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTtzJiYocy53b3Jkc1tkXT1mKX1yZXR1cm4gcyYmcy5fc3RyaXAoKSxuLl9zdHJpcCgpLCJkaXYiIT09dCYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6c3x8bnVsbCxtb2Q6bn19LGkucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihlLHQscil7cmV0dXJuIG4oIWUuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgaSgwKSxtb2Q6bmV3IGkoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09ZS5uZWdhdGl2ZT8ocz10aGlzLm5lZygpLmRpdm1vZChlLHQpLCJtb2QiIT09dCYmKG89cy5kaXYubmVnKCkpLCJkaXYiIT09dCYmKGE9cy5tb2QubmVnKCksciYmMCE9PWEubmVnYXRpdmUmJmEuaWFkZChlKSkse2RpdjpvLG1vZDphfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1lLm5lZ2F0aXZlPyhzPXRoaXMuZGl2bW9kKGUubmVnKCksdCksIm1vZCIhPT10JiYobz1zLmRpdi5uZWcoKSkse2RpdjpvLG1vZDpzLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJmUubmVnYXRpdmUpPyhzPXRoaXMubmVnKCkuZGl2bW9kKGUubmVnKCksdCksImRpdiIhPT10JiYoYT1zLm1vZC5uZWcoKSxyJiYwIT09YS5uZWdhdGl2ZSYmYS5pc3ViKGUpKSx7ZGl2OnMuZGl2LG1vZDphfSk6ZS5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKGUpPDA/e2RpdjpuZXcgaSgwKSxtb2Q6dGhpc306MT09PWUubGVuZ3RoPyJkaXYiPT09dD97ZGl2OnRoaXMuZGl2bihlLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT10P3tkaXY6bnVsbCxtb2Q6bmV3IGkodGhpcy5tb2RybihlLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKGUud29yZHNbMF0pLG1vZDpuZXcgaSh0aGlzLm1vZHJuKGUud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihlLHQpO3ZhciBvLGEsc30saS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJkaXYiLCExKS5kaXZ9LGkucHJvdG90eXBlLm1vZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kaXZtb2QoZSwibW9kIiwhMSkubW9kfSxpLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmRpdm1vZChlLCJtb2QiLCEwKS5tb2R9LGkucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZGl2bW9kKGUpO2lmKHQubW9kLmlzWmVybygpKXJldHVybiB0LmRpdjt2YXIgcj0wIT09dC5kaXYubmVnYXRpdmU/dC5tb2QuaXN1YihlKTp0Lm1vZCxuPWUudXNocm4oMSksbz1lLmFuZGxuKDEpLGk9ci5jbXAobik7cmV0dXJuIGk8MHx8MT09PW8mJjA9PT1pP3QuZGl2OjAhPT10LmRpdi5uZWdhdGl2ZT90LmRpdi5pc3VibigxKTp0LmRpdi5pYWRkbigxKX0saS5wcm90b3R5cGUubW9kcm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZTwwO3QmJihlPS1lKSxuKGU8PTY3MTA4ODYzKTtmb3IodmFyIHI9KDE8PDI2KSVlLG89MCxpPXRoaXMubGVuZ3RoLTE7aT49MDtpLS0pbz0ocipvKygwfHRoaXMud29yZHNbaV0pKSVlO3JldHVybiB0Py1vOm99LGkucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMubW9kcm4oZSl9LGkucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKGUpe3ZhciB0PWU8MDt0JiYoZT0tZSksbihlPD02NzEwODg2Myk7Zm9yKHZhciByPTAsbz10aGlzLmxlbmd0aC0xO28+PTA7by0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW29dKSs2NzEwODg2NCpyO3RoaXMud29yZHNbb109aS9lfDAscj1pJWV9cmV0dXJuIHRoaXMuX3N0cmlwKCksdD90aGlzLmluZWcoKTp0aGlzfSxpLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oZSl9LGkucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSksbighZS5pc1plcm8oKSk7dmFyIHQ9dGhpcyxyPWUuY2xvbmUoKTt0PTAhPT10Lm5lZ2F0aXZlP3QudW1vZChlKTp0LmNsb25lKCk7Zm9yKHZhciBvPW5ldyBpKDEpLGE9bmV3IGkoMCkscz1uZXcgaSgwKSx1PW5ldyBpKDEpLGM9MDt0LmlzRXZlbigpJiZyLmlzRXZlbigpOyl0Lml1c2hybigxKSxyLml1c2hybigxKSwrK2M7Zm9yKHZhciBsPXIuY2xvbmUoKSxkPXQuY2xvbmUoKTshdC5pc1plcm8oKTspe2Zvcih2YXIgZj0wLHA9MTswPT0odC53b3Jkc1swXSZwKSYmZjwyNjsrK2YscDw8PTEpO2lmKGY+MClmb3IodC5pdXNocm4oZik7Zi0tID4wOykoby5pc09kZCgpfHxhLmlzT2RkKCkpJiYoby5pYWRkKGwpLGEuaXN1YihkKSksby5pdXNocm4oMSksYS5pdXNocm4oMSk7Zm9yKHZhciBoPTAsZz0xOzA9PShyLndvcmRzWzBdJmcpJiZoPDI2OysraCxnPDw9MSk7aWYoaD4wKWZvcihyLml1c2hybihoKTtoLS0gPjA7KShzLmlzT2RkKCl8fHUuaXNPZGQoKSkmJihzLmlhZGQobCksdS5pc3ViKGQpKSxzLml1c2hybigxKSx1Lml1c2hybigxKTt0LmNtcChyKT49MD8odC5pc3ViKHIpLG8uaXN1YihzKSxhLmlzdWIodSkpOihyLmlzdWIodCkscy5pc3ViKG8pLHUuaXN1YihhKSl9cmV0dXJue2E6cyxiOnUsZ2NkOnIuaXVzaGxuKGMpfX0saS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKGUpe24oMD09PWUubmVnYXRpdmUpLG4oIWUuaXNaZXJvKCkpO3ZhciB0PXRoaXMscj1lLmNsb25lKCk7dD0wIT09dC5uZWdhdGl2ZT90LnVtb2QoZSk6dC5jbG9uZSgpO2Zvcih2YXIgbyxhPW5ldyBpKDEpLHM9bmV3IGkoMCksdT1yLmNsb25lKCk7dC5jbXBuKDEpPjAmJnIuY21wbigxKT4wOyl7Zm9yKHZhciBjPTAsbD0xOzA9PSh0LndvcmRzWzBdJmwpJiZjPDI2OysrYyxsPDw9MSk7aWYoYz4wKWZvcih0Lml1c2hybihjKTtjLS0gPjA7KWEuaXNPZGQoKSYmYS5pYWRkKHUpLGEuaXVzaHJuKDEpO2Zvcih2YXIgZD0wLGY9MTswPT0oci53b3Jkc1swXSZmKSYmZDwyNjsrK2QsZjw8PTEpO2lmKGQ+MClmb3Ioci5pdXNocm4oZCk7ZC0tID4wOylzLmlzT2RkKCkmJnMuaWFkZCh1KSxzLml1c2hybigxKTt0LmNtcChyKT49MD8odC5pc3ViKHIpLGEuaXN1YihzKSk6KHIuaXN1Yih0KSxzLmlzdWIoYSkpfXJldHVybihvPTA9PT10LmNtcG4oMSk/YTpzKS5jbXBuKDApPDAmJm8uaWFkZChlKSxvfSxpLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oZSl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gZS5hYnMoKTtpZihlLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB0PXRoaXMuY2xvbmUoKSxyPWUuY2xvbmUoKTt0Lm5lZ2F0aXZlPTAsci5uZWdhdGl2ZT0wO2Zvcih2YXIgbj0wO3QuaXNFdmVuKCkmJnIuaXNFdmVuKCk7bisrKXQuaXVzaHJuKDEpLHIuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt0LmlzRXZlbigpOyl0Lml1c2hybigxKTtmb3IoO3IuaXNFdmVuKCk7KXIuaXVzaHJuKDEpO3ZhciBvPXQuY21wKHIpO2lmKG88MCl7dmFyIGk9dDt0PXIscj1pfWVsc2UgaWYoMD09PW98fDA9PT1yLmNtcG4oMSkpYnJlYWs7dC5pc3ViKHIpfXJldHVybiByLml1c2hsbihuKX0saS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lZ2NkKGUpLmEudW1vZChlKX0saS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxpLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0saS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMud29yZHNbMF0mZX0saS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oZSl7bigibnVtYmVyIj09dHlwZW9mIGUpO3ZhciB0PWUlMjYscj0oZS10KS8yNixvPTE8PHQ7aWYodGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXMuX2V4cGFuZChyKzEpLHRoaXMud29yZHNbcl18PW8sdGhpcztmb3IodmFyIGk9byxhPXI7MCE9PWkmJmE8dGhpcy5sZW5ndGg7YSsrKXt2YXIgcz0wfHRoaXMud29yZHNbYV07aT0ocys9aSk+Pj4yNixzJj02NzEwODg2Myx0aGlzLndvcmRzW2FdPXN9cmV0dXJuIDAhPT1pJiYodGhpcy53b3Jkc1thXT1pLHRoaXMubGVuZ3RoKyspLHRoaXN9LGkucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxpLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKGUpe3ZhciB0LHI9ZTwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhcilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmcilyZXR1cm4gMTtpZih0aGlzLl9zdHJpcCgpLHRoaXMubGVuZ3RoPjEpdD0xO2Vsc2V7ciYmKGU9LWUpLG4oZTw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIG89MHx0aGlzLndvcmRzWzBdO3Q9bz09PWU/MDpvPGU/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtdDp0fSxpLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oZSl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1lLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09ZS5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgdD10aGlzLnVjbXAoZSk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXQ6dH0saS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aD5lLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxlLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHQ9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPTB8dGhpcy53b3Jkc1tyXSxvPTB8ZS53b3Jkc1tyXTtpZihuIT09byl7bjxvP3Q9LTE6bj5vJiYodD0xKTticmVha319cmV0dXJuIHR9LGkucHJvdG90eXBlLmd0bj1mdW5jdGlvbihlKXtyZXR1cm4gMT09PXRoaXMuY21wbihlKX0saS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT10aGlzLmNtcChlKX0saS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5jbXBuKGUpPj0wfSxpLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wKGUpPj0wfSxpLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oZSl7cmV0dXJuLTE9PT10aGlzLmNtcG4oZSl9LGkucHJvdG90eXBlLmx0PWZ1bmN0aW9uKGUpe3JldHVybi0xPT09dGhpcy5jbXAoZSl9LGkucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY21wbihlKTw9MH0saS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNtcChlKTw9MH0saS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKGUpe3JldHVybiAwPT09dGhpcy5jbXBuKGUpfSxpLnByb3RvdHlwZS5lcT1mdW5jdGlvbihlKXtyZXR1cm4gMD09PXRoaXMuY21wKGUpfSxpLnJlZD1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEMoZSl9LGkucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG4oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksZS5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKGUpfSxpLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0saS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlZD1lLHRoaXN9LGkucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKGUpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKGUpfSxpLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyxlKX0saS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsZSl9LGkucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLGUpfSxpLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyxlKX0saS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKGUpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsZSl9LGkucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihlKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsZSksdGhpcy5yZWQubXVsKHRoaXMsZSl9LGkucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLGUpLHRoaXMucmVkLmltdWwodGhpcyxlKX0saS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LGkucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxpLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0saS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LGkucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxpLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oZSl7cmV0dXJuIG4odGhpcy5yZWQmJiFlLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxlKX07dmFyIFQ9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB3KGUsdCl7dGhpcy5uYW1lPWUsdGhpcy5wPW5ldyBpKHQsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBpKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBKCl7dy5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIFAoKXt3LmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gVygpe3cuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBCKCl7dy5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIEMoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgdD1pLl9wcmltZShlKTt0aGlzLm09dC5wLHRoaXMucHJpbWU9dH1lbHNlIG4oZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1lLHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBFKGUpe0MuY2FsbCh0aGlzLGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IGkoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dy5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBlPW5ldyBpKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksZX0sdy5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihlKXt2YXIgdCxyPWU7ZG97dGhpcy5zcGxpdChyLHRoaXMudG1wKSx0PShyPShyPXRoaXMuaW11bEsocikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZSh0PnRoaXMubik7dmFyIG49dDx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6bj4wP3IuaXN1Yih0aGlzLnApOnZvaWQgMCE9PXIuc3RyaXA/ci5zdHJpcCgpOnIuX3N0cmlwKCkscn0sdy5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZSx0KXtlLml1c2hybih0aGlzLm4sMCx0KX0sdy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW11bCh0aGlzLmspfSxvKEEsdyksQS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9NDE5NDMwMyxuPU1hdGgubWluKGUubGVuZ3RoLDkpLG89MDtvPG47bysrKXQud29yZHNbb109ZS53b3Jkc1tvXTtpZih0Lmxlbmd0aD1uLGUubGVuZ3RoPD05KXJldHVybiBlLndvcmRzWzBdPTAsdm9pZChlLmxlbmd0aD0xKTt2YXIgaT1lLndvcmRzWzldO2Zvcih0LndvcmRzW3QubGVuZ3RoKytdPWkmcixvPTEwO288ZS5sZW5ndGg7bysrKXt2YXIgYT0wfGUud29yZHNbb107ZS53b3Jkc1tvLTEwXT0oYSZyKTw8NHxpPj4+MjIsaT1hfWk+Pj49MjIsZS53b3Jkc1tvLTEwXT1pLDA9PT1pJiZlLmxlbmd0aD4xMD9lLmxlbmd0aC09MTA6ZS5sZW5ndGgtPTl9LEEucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKGUpe2Uud29yZHNbZS5sZW5ndGhdPTAsZS53b3Jkc1tlLmxlbmd0aCsxXT0wLGUubGVuZ3RoKz0yO2Zvcih2YXIgdD0wLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49MHxlLndvcmRzW3JdO3QrPTk3NypuLGUud29yZHNbcl09NjcxMDg4NjMmdCx0PTY0Km4rKHQvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT1lLndvcmRzW2UubGVuZ3RoLTFdJiYoZS5sZW5ndGgtLSwwPT09ZS53b3Jkc1tlLmxlbmd0aC0xXSYmZS5sZW5ndGgtLSksZX0sbyhQLHcpLG8oVyx3KSxvKEIsdyksQi5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj0xOSooMHxlLndvcmRzW3JdKSt0LG89NjcxMDg4NjMmbjtuPj4+PTI2LGUud29yZHNbcl09byx0PW59cmV0dXJuIDAhPT10JiYoZS53b3Jkc1tlLmxlbmd0aCsrXT10KSxlfSxpLl9wcmltZT1mdW5jdGlvbihlKXtpZihUW2VdKXJldHVybiBUW2VdO3ZhciB0O2lmKCJrMjU2Ij09PWUpdD1uZXcgQTtlbHNlIGlmKCJwMjI0Ij09PWUpdD1uZXcgUDtlbHNlIGlmKCJwMTkyIj09PWUpdD1uZXcgVztlbHNle2lmKCJwMjU1MTkiIT09ZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIitlKTt0PW5ldyBCfXJldHVybiBUW2VdPXQsdH0sQy5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24oZSl7bigwPT09ZS5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKGUucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LEMucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKGUsdCl7bigwPT0oZS5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKGUucmVkJiZlLnJlZD09PXQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LEMucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKGUpLl9mb3JjZVJlZCh0aGlzKToobChlLGUudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKSksZSl9LEMucHJvdG90eXBlLm5lZz1mdW5jdGlvbihlKXtyZXR1cm4gZS5pc1plcm8oKT9lLmNsb25lKCk6dGhpcy5tLnN1YihlKS5fZm9yY2VSZWQodGhpcyl9LEMucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlLHQpe3RoaXMuX3ZlcmlmeTIoZSx0KTt2YXIgcj1lLmFkZCh0KTtyZXR1cm4gci5jbXAodGhpcy5tKT49MCYmci5pc3ViKHRoaXMubSksci5fZm9yY2VSZWQodGhpcyl9LEMucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl92ZXJpZnkyKGUsdCk7dmFyIHI9ZS5pYWRkKHQpO3JldHVybiByLmNtcCh0aGlzLm0pPj0wJiZyLmlzdWIodGhpcy5tKSxyfSxDLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oZSx0KXt0aGlzLl92ZXJpZnkyKGUsdCk7dmFyIHI9ZS5zdWIodCk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyLl9mb3JjZVJlZCh0aGlzKX0sQy5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihlLHQpe3RoaXMuX3ZlcmlmeTIoZSx0KTt2YXIgcj1lLmlzdWIodCk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyfSxDLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MShlKSx0aGlzLmltb2QoZS51c2hsbih0KSl9LEMucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihlLHQpLHRoaXMuaW1vZChlLmltdWwodCkpfSxDLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihlLHQpLHRoaXMuaW1vZChlLm11bCh0KSl9LEMucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaW11bChlLGUuY2xvbmUoKSl9LEMucHJvdG90eXBlLnNxcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5tdWwoZSxlKX0sQy5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihlKXtpZihlLmlzWmVybygpKXJldHVybiBlLmNsb25lKCk7dmFyIHQ9dGhpcy5tLmFuZGxuKDMpO2lmKG4odCUyPT0xKSwzPT09dCl7dmFyIHI9dGhpcy5tLmFkZChuZXcgaSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyhlLHIpfWZvcih2YXIgbz10aGlzLm0uc3VibigxKSxhPTA7IW8uaXNaZXJvKCkmJjA9PT1vLmFuZGxuKDEpOylhKyssby5pdXNocm4oMSk7bighby5pc1plcm8oKSk7dmFyIHM9bmV3IGkoMSkudG9SZWQodGhpcyksdT1zLnJlZE5lZygpLGM9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLGw9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihsPW5ldyBpKDIqbCpsKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3cobCxjKS5jbXAodSk7KWwucmVkSUFkZCh1KTtmb3IodmFyIGQ9dGhpcy5wb3cobCxvKSxmPXRoaXMucG93KGUsby5hZGRuKDEpLml1c2hybigxKSkscD10aGlzLnBvdyhlLG8pLGg9YTswIT09cC5jbXAocyk7KXtmb3IodmFyIGc9cCx5PTA7MCE9PWcuY21wKHMpO3krKylnPWcucmVkU3FyKCk7bih5PGgpO3ZhciBiPXRoaXMucG93KGQsbmV3IGkoMSkuaXVzaGxuKGgteS0xKSk7Zj1mLnJlZE11bChiKSxkPWIucmVkU3FyKCkscD1wLnJlZE11bChkKSxoPXl9cmV0dXJuIGZ9LEMucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXQubmVnYXRpdmU/KHQubmVnYXRpdmU9MCx0aGlzLmltb2QodCkucmVkTmVnKCkpOnRoaXMuaW1vZCh0KX0sQy5wcm90b3R5cGUucG93PWZ1bmN0aW9uKGUsdCl7aWYodC5pc1plcm8oKSlyZXR1cm4gbmV3IGkoMSkudG9SZWQodGhpcyk7aWYoMD09PXQuY21wbigxKSlyZXR1cm4gZS5jbG9uZSgpO3ZhciByPW5ldyBBcnJheSgxNik7clswXT1uZXcgaSgxKS50b1JlZCh0aGlzKSxyWzFdPWU7Zm9yKHZhciBuPTI7bjxyLmxlbmd0aDtuKyspcltuXT10aGlzLm11bChyW24tMV0sZSk7dmFyIG89clswXSxhPTAscz0wLHU9dC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PXUmJih1PTI2KSxuPXQubGVuZ3RoLTE7bj49MDtuLS0pe2Zvcih2YXIgYz10LndvcmRzW25dLGw9dS0xO2w+PTA7bC0tKXt2YXIgZD1jPj5sJjE7byE9PXJbMF0mJihvPXRoaXMuc3FyKG8pKSwwIT09ZHx8MCE9PWE/KGE8PD0xLGF8PWQsKDQ9PSsrc3x8MD09PW4mJjA9PT1sKSYmKG89dGhpcy5tdWwobyxyW2FdKSxzPTAsYT0wKSk6cz0wfXU9MjZ9cmV0dXJuIG99LEMucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihlKXt2YXIgdD1lLnVtb2QodGhpcy5tKTtyZXR1cm4gdD09PWU/dC5jbG9uZSgpOnR9LEMucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xvbmUoKTtyZXR1cm4gdC5yZWQ9bnVsbCx0fSxpLm1vbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBFKGUpfSxvKEUsQyksRS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmltb2QoZS51c2hsbih0aGlzLnNoaWZ0KSl9LEUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuaW1vZChlLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gdC5yZWQ9bnVsbCx0fSxFLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKGUsdCl7aWYoZS5pc1plcm8oKXx8dC5pc1plcm8oKSlyZXR1cm4gZS53b3Jkc1swXT0wLGUubGVuZ3RoPTEsZTt2YXIgcj1lLmltdWwodCksbj1yLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxvPXIuaXN1YihuKS5pdXNocm4odGhpcy5zaGlmdCksaT1vO3JldHVybiBvLmNtcCh0aGlzLm0pPj0wP2k9by5pc3ViKHRoaXMubSk6by5jbXBuKDApPDAmJihpPW8uaWFkZCh0aGlzLm0pKSxpLl9mb3JjZVJlZCh0aGlzKX0sRS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKGUsdCl7aWYoZS5pc1plcm8oKXx8dC5pc1plcm8oKSlyZXR1cm4gbmV3IGkoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciByPWUubXVsKHQpLG49ci5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksbz1yLmlzdWIobikuaXVzaHJuKHRoaXMuc2hpZnQpLGE9bztyZXR1cm4gby5jbXAodGhpcy5tKT49MD9hPW8uaXN1Yih0aGlzLm0pOm8uY21wbigwKTwwJiYoYT1vLmlhZGQodGhpcy5tKSksYS5fZm9yY2VSZWQodGhpcyl9LEUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaW1vZChlLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oZT1yLm5tZChlKSx0aGlzKX0sNTA1MzooZSx0LHIpPT57InVzZSBzdHJpY3QiO3Quaz12b2lkIDA7dmFyIG49cigzNDk3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uc2VjcDI1NmsxfX0pfSw2NzI5OmU9PnsidXNlIHN0cmljdCI7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxyPSJ+IjtmdW5jdGlvbiBuKCl7fWZ1bmN0aW9uIG8oZSx0LHIpe3RoaXMuZm49ZSx0aGlzLmNvbnRleHQ9dCx0aGlzLm9uY2U9cnx8ITF9ZnVuY3Rpb24gaShlLHQsbixpLGEpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgcz1uZXcgbyhuLGl8fGUsYSksdT1yP3IrdDp0O3JldHVybiBlLl9ldmVudHNbdV0/ZS5fZXZlbnRzW3VdLmZuP2UuX2V2ZW50c1t1XT1bZS5fZXZlbnRzW3VdLHNdOmUuX2V2ZW50c1t1XS5wdXNoKHMpOihlLl9ldmVudHNbdV09cyxlLl9ldmVudHNDb3VudCsrKSxlfWZ1bmN0aW9uIGEoZSx0KXswPT0tLWUuX2V2ZW50c0NvdW50P2UuX2V2ZW50cz1uZXcgbjpkZWxldGUgZS5fZXZlbnRzW3RdfWZ1bmN0aW9uIHMoKXt0aGlzLl9ldmVudHM9bmV3IG4sdGhpcy5fZXZlbnRzQ291bnQ9MH1PYmplY3QuY3JlYXRlJiYobi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShudWxsKSwobmV3IG4pLl9fcHJvdG9fX3x8KHI9ITEpKSxzLnByb3RvdHlwZS5ldmVudE5hbWVzPWZ1bmN0aW9uKCl7dmFyIGUsbixvPVtdO2lmKDA9PT10aGlzLl9ldmVudHNDb3VudClyZXR1cm4gbztmb3IobiBpbiBlPXRoaXMuX2V2ZW50cyl0LmNhbGwoZSxuKSYmby5wdXNoKHI/bi5zbGljZSgxKTpuKTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9vLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpKTpvfSxzLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7dmFyIHQ9cj9yK2U6ZSxuPXRoaXMuX2V2ZW50c1t0XTtpZighbilyZXR1cm5bXTtpZihuLmZuKXJldHVybltuLmZuXTtmb3IodmFyIG89MCxpPW4ubGVuZ3RoLGE9bmV3IEFycmF5KGkpO288aTtvKyspYVtvXT1uW29dLmZuO3JldHVybiBhfSxzLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKGUpe3ZhciB0PXI/citlOmUsbj10aGlzLl9ldmVudHNbdF07cmV0dXJuIG4/bi5mbj8xOm4ubGVuZ3RoOjB9LHMucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24oZSx0LG4sbyxpLGEpe3ZhciBzPXI/citlOmU7aWYoIXRoaXMuX2V2ZW50c1tzXSlyZXR1cm4hMTt2YXIgdSxjLGw9dGhpcy5fZXZlbnRzW3NdLGQ9YXJndW1lbnRzLmxlbmd0aDtpZihsLmZuKXtzd2l0Y2gobC5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsbC5mbix2b2lkIDAsITApLGQpe2Nhc2UgMTpyZXR1cm4gbC5mbi5jYWxsKGwuY29udGV4dCksITA7Y2FzZSAyOnJldHVybiBsLmZuLmNhbGwobC5jb250ZXh0LHQpLCEwO2Nhc2UgMzpyZXR1cm4gbC5mbi5jYWxsKGwuY29udGV4dCx0LG4pLCEwO2Nhc2UgNDpyZXR1cm4gbC5mbi5jYWxsKGwuY29udGV4dCx0LG4sbyksITA7Y2FzZSA1OnJldHVybiBsLmZuLmNhbGwobC5jb250ZXh0LHQsbixvLGkpLCEwO2Nhc2UgNjpyZXR1cm4gbC5mbi5jYWxsKGwuY29udGV4dCx0LG4sbyxpLGEpLCEwfWZvcihjPTEsdT1uZXcgQXJyYXkoZC0xKTtjPGQ7YysrKXVbYy0xXT1hcmd1bWVudHNbY107bC5mbi5hcHBseShsLmNvbnRleHQsdSl9ZWxzZXt2YXIgZixwPWwubGVuZ3RoO2ZvcihjPTA7YzxwO2MrKylzd2l0Y2gobFtjXS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsbFtjXS5mbix2b2lkIDAsITApLGQpe2Nhc2UgMTpsW2NdLmZuLmNhbGwobFtjXS5jb250ZXh0KTticmVhaztjYXNlIDI6bFtjXS5mbi5jYWxsKGxbY10uY29udGV4dCx0KTticmVhaztjYXNlIDM6bFtjXS5mbi5jYWxsKGxbY10uY29udGV4dCx0LG4pO2JyZWFrO2Nhc2UgNDpsW2NdLmZuLmNhbGwobFtjXS5jb250ZXh0LHQsbixvKTticmVhaztkZWZhdWx0OmlmKCF1KWZvcihmPTEsdT1uZXcgQXJyYXkoZC0xKTtmPGQ7ZisrKXVbZi0xXT1hcmd1bWVudHNbZl07bFtjXS5mbi5hcHBseShsW2NdLmNvbnRleHQsdSl9fXJldHVybiEwfSxzLnByb3RvdHlwZS5vbj1mdW5jdGlvbihlLHQscil7cmV0dXJuIGkodGhpcyxlLHQsciwhMSl9LHMucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBpKHRoaXMsZSx0LHIsITApfSxzLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbihlLHQsbixvKXt2YXIgaT1yP3IrZTplO2lmKCF0aGlzLl9ldmVudHNbaV0pcmV0dXJuIHRoaXM7aWYoIXQpcmV0dXJuIGEodGhpcyxpKSx0aGlzO3ZhciBzPXRoaXMuX2V2ZW50c1tpXTtpZihzLmZuKXMuZm4hPT10fHxvJiYhcy5vbmNlfHxuJiZzLmNvbnRleHQhPT1ufHxhKHRoaXMsaSk7ZWxzZXtmb3IodmFyIHU9MCxjPVtdLGw9cy5sZW5ndGg7dTxsO3UrKykoc1t1XS5mbiE9PXR8fG8mJiFzW3VdLm9uY2V8fG4mJnNbdV0uY29udGV4dCE9PW4pJiZjLnB1c2goc1t1XSk7Yy5sZW5ndGg/dGhpcy5fZXZlbnRzW2ldPTE9PT1jLmxlbmd0aD9jWzBdOmM6YSh0aGlzLGkpfXJldHVybiB0aGlzfSxzLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuIGU/KHQ9cj9yK2U6ZSx0aGlzLl9ldmVudHNbdF0mJmEodGhpcyx0KSk6KHRoaXMuX2V2ZW50cz1uZXcgbix0aGlzLl9ldmVudHNDb3VudD0wKSx0aGlzfSxzLnByb3RvdHlwZS5vZmY9cy5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIscy5wcm90b3R5cGUuYWRkTGlzdGVuZXI9cy5wcm90b3R5cGUub24scy5wcmVmaXhlZD1yLHMuRXZlbnRFbWl0dGVyPXMsZS5leHBvcnRzPXN9LDc4MzI6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4odCwuLi5yKT0+ZnVuY3Rpb24oZSwuLi50KXtyZXR1cm4gbmV3IFByb21pc2UoKChyLG4pPT57ZSguLi50LCgoZSx0KT0+e2U/bihlKTpyKHQpfSkpfSkpfSh0LmJpbmQoZSksLi4ucil9fSwxMDk0OihlLHQscik9Pnt2YXIgbjshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG89ImlucHV0IGlzIGludmFsaWQgdHlwZSIsaT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyxhPWk/d2luZG93Ont9O2EuSlNfU0hBM19OT19XSU5ET1cmJihpPSExKTt2YXIgcz0haSYmIm9iamVjdCI9PXR5cGVvZiBzZWxmOyFhLkpTX1NIQTNfTk9fTk9ERV9KUyYmIm9iamVjdCI9PXR5cGVvZiBwcm9jZXNzJiZwcm9jZXNzLnZlcnNpb25zJiZwcm9jZXNzLnZlcnNpb25zLm5vZGU/YT1yLmc6cyYmKGE9c2VsZik7dmFyIHU9IWEuSlNfU0hBM19OT19DT01NT05fSlMmJmUuZXhwb3J0cyxjPXIuYW1kTyxsPSFhLkpTX1NIQTNfTk9fQVJSQVlfQlVGRkVSJiYidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyLGQ9IjAxMjM0NTY3ODlhYmNkZWYiLnNwbGl0KCIiKSxmPVs0LDEwMjQsMjYyMTQ0LDY3MTA4ODY0XSxwPVswLDgsMTYsMjRdLGg9WzEsMCwzMjg5OCwwLDMyOTA2LDIxNDc0ODM2NDgsMjE0NzUxNjQxNiwyMTQ3NDgzNjQ4LDMyOTA3LDAsMjE0NzQ4MzY0OSwwLDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjc3NywyMTQ3NDgzNjQ4LDEzOCwwLDEzNiwwLDIxNDc1MTY0MjUsMCwyMTQ3NDgzNjU4LDAsMjE0NzUxNjU1NSwwLDEzOSwyMTQ3NDgzNjQ4LDMyOTA1LDIxNDc0ODM2NDgsMzI3NzEsMjE0NzQ4MzY0OCwzMjc3MCwyMTQ3NDgzNjQ4LDEyOCwyMTQ3NDgzNjQ4LDMyNzc4LDAsMjE0NzQ4MzY1OCwyMTQ3NDgzNjQ4LDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjg5NiwyMTQ3NDgzNjQ4LDIxNDc0ODM2NDksMCwyMTQ3NTE2NDI0LDIxNDc0ODM2NDhdLGc9WzIyNCwyNTYsMzg0LDUxMl0seT1bMTI4LDI1Nl0sYj1bImhleCIsImJ1ZmZlciIsImFycmF5QnVmZmVyIiwiYXJyYXkiLCJkaWdlc3QiXSx2PXsxMjg6MTY4LDI1NjoxMzZ9OyFhLkpTX1NIQTNfTk9fTk9ERV9KUyYmQXJyYXkuaXNBcnJheXx8KEFycmF5LmlzQXJyYXk9ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX0pLCFsfHwhYS5KU19TSEEzX05PX0FSUkFZX0JVRkZFUl9JU19WSUVXJiZBcnJheUJ1ZmZlci5pc1ZpZXd8fChBcnJheUJ1ZmZlci5pc1ZpZXc9ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZlLmJ1ZmZlciYmZS5idWZmZXIuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcn0pO2Zvcih2YXIgbT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuZXcgRihlLHQsZSkudXBkYXRlKG4pW3JdKCl9fSxUPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obixvKXtyZXR1cm4gbmV3IEYoZSx0LG8pLnVwZGF0ZShuKVtyXSgpfX0sdz1mdW5jdGlvbihlLHQscil7cmV0dXJuIGZ1bmN0aW9uKHQsbixvLGkpe3JldHVybiBDWyJjc2hha2UiK2VdLnVwZGF0ZSh0LG4sbyxpKVtyXSgpfX0sQT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGZ1bmN0aW9uKHQsbixvLGkpe3JldHVybiBDWyJrbWFjIitlXS51cGRhdGUodCxuLG8saSlbcl0oKX19LFA9ZnVuY3Rpb24oZSx0LHIsbil7Zm9yKHZhciBvPTA7bzxiLmxlbmd0aDsrK28pe3ZhciBpPWJbb107ZVtpXT10KHIsbixpKX1yZXR1cm4gZX0sVz1mdW5jdGlvbihlLHQpe3ZhciByPW0oZSx0LCJoZXgiKTtyZXR1cm4gci5jcmVhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEYoZSx0LGUpfSxyLnVwZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gci5jcmVhdGUoKS51cGRhdGUoZSl9LFAocixtLGUsdCl9LEI9W3tuYW1lOiJrZWNjYWsiLHBhZGRpbmc6WzEsMjU2LDY1NTM2LDE2Nzc3MjE2XSxiaXRzOmcsY3JlYXRlTWV0aG9kOld9LHtuYW1lOiJzaGEzIixwYWRkaW5nOls2LDE1MzYsMzkzMjE2LDEwMDY2MzI5Nl0sYml0czpnLGNyZWF0ZU1ldGhvZDpXfSx7bmFtZToic2hha2UiLHBhZGRpbmc6WzMxLDc5MzYsMjAzMTYxNiw1MjAwOTM2OTZdLGJpdHM6eSxjcmVhdGVNZXRob2Q6ZnVuY3Rpb24oZSx0KXt2YXIgcj1UKGUsdCwiaGV4Iik7cmV0dXJuIHIuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBuZXcgRihlLHQscil9LHIudXBkYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIuY3JlYXRlKHQpLnVwZGF0ZShlKX0sUChyLFQsZSx0KX19LHtuYW1lOiJjc2hha2UiLHBhZGRpbmc6ZixiaXRzOnksY3JlYXRlTWV0aG9kOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dltlXSxuPXcoZSwwLCJoZXgiKTtyZXR1cm4gbi5jcmVhdGU9ZnVuY3Rpb24obixvLGkpe3JldHVybiBvfHxpP25ldyBGKGUsdCxuKS5ieXRlcGFkKFtvLGldLHIpOkNbInNoYWtlIitlXS5jcmVhdGUobil9LG4udXBkYXRlPWZ1bmN0aW9uKGUsdCxyLG8pe3JldHVybiBuLmNyZWF0ZSh0LHIsbykudXBkYXRlKGUpfSxQKG4sdyxlLHQpfX0se25hbWU6ImttYWMiLHBhZGRpbmc6ZixiaXRzOnksY3JlYXRlTWV0aG9kOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dltlXSxuPUEoZSwwLCJoZXgiKTtyZXR1cm4gbi5jcmVhdGU9ZnVuY3Rpb24obixvLGkpe3JldHVybiBuZXcgXyhlLHQsbykuYnl0ZXBhZChbIktNQUMiLGldLHIpLmJ5dGVwYWQoW25dLHIpfSxuLnVwZGF0ZT1mdW5jdGlvbihlLHQscixvKXtyZXR1cm4gbi5jcmVhdGUoZSxyLG8pLnVwZGF0ZSh0KX0sUChuLEEsZSx0KX19XSxDPXt9LEU9W10sTT0wO008Qi5sZW5ndGg7KytNKWZvcih2YXIgaz1CW01dLEk9ay5iaXRzLE89MDtPPEkubGVuZ3RoOysrTyl7dmFyIHg9ay5uYW1lKyJfIitJW09dO2lmKEUucHVzaCh4KSxDW3hdPWsuY3JlYXRlTWV0aG9kKElbT10say5wYWRkaW5nKSwic2hhMyIhPT1rLm5hbWUpe3ZhciBTPWsubmFtZStJW09dO0UucHVzaChTKSxDW1NdPUNbeF19fWZ1bmN0aW9uIEYoZSx0LHIpe3RoaXMuYmxvY2tzPVtdLHRoaXMucz1bXSx0aGlzLnBhZGRpbmc9dCx0aGlzLm91dHB1dEJpdHM9cix0aGlzLnJlc2V0PSEwLHRoaXMuZmluYWxpemVkPSExLHRoaXMuYmxvY2s9MCx0aGlzLnN0YXJ0PTAsdGhpcy5ibG9ja0NvdW50PTE2MDAtKGU8PDEpPj41LHRoaXMuYnl0ZUNvdW50PXRoaXMuYmxvY2tDb3VudDw8Mix0aGlzLm91dHB1dEJsb2Nrcz1yPj41LHRoaXMuZXh0cmFCeXRlcz0oMzEmcik+PjM7Zm9yKHZhciBuPTA7bjw1MDsrK24pdGhpcy5zW25dPTB9ZnVuY3Rpb24gXyhlLHQscil7Ri5jYWxsKHRoaXMsZSx0LHIpfUYucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXtpZih0aGlzLmZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoImZpbmFsaXplIGFscmVhZHkgY2FsbGVkIik7dmFyIHQscj10eXBlb2YgZTtpZigic3RyaW5nIiE9PXIpe2lmKCJvYmplY3QiIT09cil0aHJvdyBuZXcgRXJyb3Iobyk7aWYobnVsbD09PWUpdGhyb3cgbmV3IEVycm9yKG8pO2lmKGwmJmUuY29uc3RydWN0b3I9PT1BcnJheUJ1ZmZlcillPW5ldyBVaW50OEFycmF5KGUpO2Vsc2UgaWYoIShBcnJheS5pc0FycmF5KGUpfHxsJiZBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpKXRocm93IG5ldyBFcnJvcihvKTt0PSEwfWZvcih2YXIgbixpLGE9dGhpcy5ibG9ja3Mscz10aGlzLmJ5dGVDb3VudCx1PWUubGVuZ3RoLGM9dGhpcy5ibG9ja0NvdW50LGQ9MCxmPXRoaXMucztkPHU7KXtpZih0aGlzLnJlc2V0KWZvcih0aGlzLnJlc2V0PSExLGFbMF09dGhpcy5ibG9jayxuPTE7bjxjKzE7KytuKWFbbl09MDtpZih0KWZvcihuPXRoaXMuc3RhcnQ7ZDx1JiZuPHM7KytkKWFbbj4+Ml18PWVbZF08PHBbMyZuKytdO2Vsc2UgZm9yKG49dGhpcy5zdGFydDtkPHUmJm48czsrK2QpKGk9ZS5jaGFyQ29kZUF0KGQpKTwxMjg/YVtuPj4yXXw9aTw8cFszJm4rK106aTwyMDQ4PyhhW24+PjJdfD0oMTkyfGk+PjYpPDxwWzMmbisrXSxhW24+PjJdfD0oMTI4fDYzJmkpPDxwWzMmbisrXSk6aTw1NTI5Nnx8aT49NTczNDQ/KGFbbj4+Ml18PSgyMjR8aT4+MTIpPDxwWzMmbisrXSxhW24+PjJdfD0oMTI4fGk+PjYmNjMpPDxwWzMmbisrXSxhW24+PjJdfD0oMTI4fDYzJmkpPDxwWzMmbisrXSk6KGk9NjU1MzYrKCgxMDIzJmkpPDwxMHwxMDIzJmUuY2hhckNvZGVBdCgrK2QpKSxhW24+PjJdfD0oMjQwfGk+PjE4KTw8cFszJm4rK10sYVtuPj4yXXw9KDEyOHxpPj4xMiY2Myk8PHBbMyZuKytdLGFbbj4+Ml18PSgxMjh8aT4+NiY2Myk8PHBbMyZuKytdLGFbbj4+Ml18PSgxMjh8NjMmaSk8PHBbMyZuKytdKTtpZih0aGlzLmxhc3RCeXRlSW5kZXg9bixuPj1zKXtmb3IodGhpcy5zdGFydD1uLXMsdGhpcy5ibG9jaz1hW2NdLG49MDtuPGM7KytuKWZbbl1ePWFbbl07UihmKSx0aGlzLnJlc2V0PSEwfWVsc2UgdGhpcy5zdGFydD1ufXJldHVybiB0aGlzfSxGLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oZSx0KXt2YXIgcj0yNTUmZSxuPTEsbz1bcl07Zm9yKHI9MjU1JihlPj49OCk7cj4wOylvLnVuc2hpZnQocikscj0yNTUmKGU+Pj04KSwrK247cmV0dXJuIHQ/by5wdXNoKG4pOm8udW5zaGlmdChuKSx0aGlzLnVwZGF0ZShvKSxvLmxlbmd0aH0sRi5wcm90b3R5cGUuZW5jb2RlU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0LHI9dHlwZW9mIGU7aWYoInN0cmluZyIhPT1yKXtpZigib2JqZWN0IiE9PXIpdGhyb3cgbmV3IEVycm9yKG8pO2lmKG51bGw9PT1lKXRocm93IG5ldyBFcnJvcihvKTtpZihsJiZlLmNvbnN0cnVjdG9yPT09QXJyYXlCdWZmZXIpZT1uZXcgVWludDhBcnJheShlKTtlbHNlIGlmKCEoQXJyYXkuaXNBcnJheShlKXx8bCYmQXJyYXlCdWZmZXIuaXNWaWV3KGUpKSl0aHJvdyBuZXcgRXJyb3Iobyk7dD0hMH12YXIgbj0wLGk9ZS5sZW5ndGg7aWYodCluPWk7ZWxzZSBmb3IodmFyIGE9MDthPGUubGVuZ3RoOysrYSl7dmFyIHM9ZS5jaGFyQ29kZUF0KGEpO3M8MTI4P24rPTE6czwyMDQ4P24rPTI6czw1NTI5Nnx8cz49NTczNDQ/bis9Mzoocz02NTUzNisoKDEwMjMmcyk8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KCsrYSkpLG4rPTQpfXJldHVybiBuKz10aGlzLmVuY29kZSg4Km4pLHRoaXMudXBkYXRlKGUpLG59LEYucHJvdG90eXBlLmJ5dGVwYWQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI9dGhpcy5lbmNvZGUodCksbj0wO248ZS5sZW5ndGg7KytuKXIrPXRoaXMuZW5jb2RlU3RyaW5nKGVbbl0pO3ZhciBvPXQtciV0LGk9W107cmV0dXJuIGkubGVuZ3RoPW8sdGhpcy51cGRhdGUoaSksdGhpc30sRi5wcm90b3R5cGUuZmluYWxpemU9ZnVuY3Rpb24oKXtpZighdGhpcy5maW5hbGl6ZWQpe3RoaXMuZmluYWxpemVkPSEwO3ZhciBlPXRoaXMuYmxvY2tzLHQ9dGhpcy5sYXN0Qnl0ZUluZGV4LHI9dGhpcy5ibG9ja0NvdW50LG49dGhpcy5zO2lmKGVbdD4+Ml18PXRoaXMucGFkZGluZ1szJnRdLHRoaXMubGFzdEJ5dGVJbmRleD09PXRoaXMuYnl0ZUNvdW50KWZvcihlWzBdPWVbcl0sdD0xO3Q8cisxOysrdCllW3RdPTA7Zm9yKGVbci0xXXw9MjE0NzQ4MzY0OCx0PTA7dDxyOysrdCluW3RdXj1lW3RdO1Iobil9fSxGLnByb3RvdHlwZS50b1N0cmluZz1GLnByb3RvdHlwZS5oZXg9ZnVuY3Rpb24oKXt0aGlzLmZpbmFsaXplKCk7Zm9yKHZhciBlLHQ9dGhpcy5ibG9ja0NvdW50LHI9dGhpcy5zLG49dGhpcy5vdXRwdXRCbG9ja3Msbz10aGlzLmV4dHJhQnl0ZXMsaT0wLGE9MCxzPSIiO2E8bjspe2ZvcihpPTA7aTx0JiZhPG47KytpLCsrYSllPXJbaV0scys9ZFtlPj40JjE1XStkWzE1JmVdK2RbZT4+MTImMTVdK2RbZT4+OCYxNV0rZFtlPj4yMCYxNV0rZFtlPj4xNiYxNV0rZFtlPj4yOCYxNV0rZFtlPj4yNCYxNV07YSV0PT0wJiYoUihyKSxpPTApfXJldHVybiBvJiYoZT1yW2ldLHMrPWRbZT4+NCYxNV0rZFsxNSZlXSxvPjEmJihzKz1kW2U+PjEyJjE1XStkW2U+PjgmMTVdKSxvPjImJihzKz1kW2U+PjIwJjE1XStkW2U+PjE2JjE1XSkpLHN9LEYucHJvdG90eXBlLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO3ZhciBlLHQ9dGhpcy5ibG9ja0NvdW50LHI9dGhpcy5zLG49dGhpcy5vdXRwdXRCbG9ja3Msbz10aGlzLmV4dHJhQnl0ZXMsaT0wLGE9MCxzPXRoaXMub3V0cHV0Qml0cz4+MztlPW8/bmV3IEFycmF5QnVmZmVyKG4rMTw8Mik6bmV3IEFycmF5QnVmZmVyKHMpO2Zvcih2YXIgdT1uZXcgVWludDMyQXJyYXkoZSk7YTxuOyl7Zm9yKGk9MDtpPHQmJmE8bjsrK2ksKythKXVbYV09cltpXTthJXQ9PTAmJlIocil9cmV0dXJuIG8mJih1W2ldPXJbaV0sZT1lLnNsaWNlKDAscykpLGV9LEYucHJvdG90eXBlLmJ1ZmZlcj1GLnByb3RvdHlwZS5hcnJheUJ1ZmZlcixGLnByb3RvdHlwZS5kaWdlc3Q9Ri5wcm90b3R5cGUuYXJyYXk9ZnVuY3Rpb24oKXt0aGlzLmZpbmFsaXplKCk7Zm9yKHZhciBlLHQscj10aGlzLmJsb2NrQ291bnQsbj10aGlzLnMsbz10aGlzLm91dHB1dEJsb2NrcyxpPXRoaXMuZXh0cmFCeXRlcyxhPTAscz0wLHU9W107czxvOyl7Zm9yKGE9MDthPHImJnM8bzsrK2EsKytzKWU9czw8Mix0PW5bYV0sdVtlXT0yNTUmdCx1W2UrMV09dD4+OCYyNTUsdVtlKzJdPXQ+PjE2JjI1NSx1W2UrM109dD4+MjQmMjU1O3Mlcj09MCYmUihuKX1yZXR1cm4gaSYmKGU9czw8Mix0PW5bYV0sdVtlXT0yNTUmdCxpPjEmJih1W2UrMV09dD4+OCYyNTUpLGk+MiYmKHVbZSsyXT10Pj4xNiYyNTUpKSx1fSxfLnByb3RvdHlwZT1uZXcgRixfLnByb3RvdHlwZS5maW5hbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVuY29kZSh0aGlzLm91dHB1dEJpdHMsITApLEYucHJvdG90eXBlLmZpbmFsaXplLmNhbGwodGhpcyl9O3ZhciBSPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbixvLGksYSxzLHUsYyxsLGQsZixwLGcseSxiLHYsbSxULHcsQSxQLFcsQixDLEUsTSxrLEksTyx4LFMsRixfLFIsTixVLEQsTCxqLHosJCxWLEcsSCxLLFoscSxKLFksWCxRLGVlLHRlLHJlLG5lLG9lLGllLGFlLHNlLHVlLGNlLGxlO2ZvcihuPTA7bjw0ODtuKz0yKW89ZVswXV5lWzEwXV5lWzIwXV5lWzMwXV5lWzQwXSxpPWVbMV1eZVsxMV1eZVsyMV1eZVszMV1eZVs0MV0sYT1lWzJdXmVbMTJdXmVbMjJdXmVbMzJdXmVbNDJdLHM9ZVszXV5lWzEzXV5lWzIzXV5lWzMzXV5lWzQzXSx1PWVbNF1eZVsxNF1eZVsyNF1eZVszNF1eZVs0NF0sYz1lWzVdXmVbMTVdXmVbMjVdXmVbMzVdXmVbNDVdLGw9ZVs2XV5lWzE2XV5lWzI2XV5lWzM2XV5lWzQ2XSxkPWVbN11eZVsxN11eZVsyN11eZVszN11eZVs0N10sdD0oZj1lWzhdXmVbMThdXmVbMjhdXmVbMzhdXmVbNDhdKV4oYTw8MXxzPj4+MzEpLHI9KHA9ZVs5XV5lWzE5XV5lWzI5XV5lWzM5XV5lWzQ5XSleKHM8PDF8YT4+PjMxKSxlWzBdXj10LGVbMV1ePXIsZVsxMF1ePXQsZVsxMV1ePXIsZVsyMF1ePXQsZVsyMV1ePXIsZVszMF1ePXQsZVszMV1ePXIsZVs0MF1ePXQsZVs0MV1ePXIsdD1vXih1PDwxfGM+Pj4zMSkscj1pXihjPDwxfHU+Pj4zMSksZVsyXV49dCxlWzNdXj1yLGVbMTJdXj10LGVbMTNdXj1yLGVbMjJdXj10LGVbMjNdXj1yLGVbMzJdXj10LGVbMzNdXj1yLGVbNDJdXj10LGVbNDNdXj1yLHQ9YV4obDw8MXxkPj4+MzEpLHI9c14oZDw8MXxsPj4+MzEpLGVbNF1ePXQsZVs1XV49cixlWzE0XV49dCxlWzE1XV49cixlWzI0XV49dCxlWzI1XV49cixlWzM0XV49dCxlWzM1XV49cixlWzQ0XV49dCxlWzQ1XV49cix0PXVeKGY8PDF8cD4+PjMxKSxyPWNeKHA8PDF8Zj4+PjMxKSxlWzZdXj10LGVbN11ePXIsZVsxNl1ePXQsZVsxN11ePXIsZVsyNl1ePXQsZVsyN11ePXIsZVszNl1ePXQsZVszN11ePXIsZVs0Nl1ePXQsZVs0N11ePXIsdD1sXihvPDwxfGk+Pj4zMSkscj1kXihpPDwxfG8+Pj4zMSksZVs4XV49dCxlWzldXj1yLGVbMThdXj10LGVbMTldXj1yLGVbMjhdXj10LGVbMjldXj1yLGVbMzhdXj10LGVbMzldXj1yLGVbNDhdXj10LGVbNDldXj1yLGc9ZVswXSx5PWVbMV0sSz1lWzExXTw8NHxlWzEwXT4+PjI4LFo9ZVsxMF08PDR8ZVsxMV0+Pj4yOCxrPWVbMjBdPDwzfGVbMjFdPj4+MjksST1lWzIxXTw8M3xlWzIwXT4+PjI5LHNlPWVbMzFdPDw5fGVbMzBdPj4+MjMsdWU9ZVszMF08PDl8ZVszMV0+Pj4yMywkPWVbNDBdPDwxOHxlWzQxXT4+PjE0LFY9ZVs0MV08PDE4fGVbNDBdPj4+MTQsXz1lWzJdPDwxfGVbM10+Pj4zMSxSPWVbM108PDF8ZVsyXT4+PjMxLGI9ZVsxM108PDEyfGVbMTJdPj4+MjAsdj1lWzEyXTw8MTJ8ZVsxM10+Pj4yMCxxPWVbMjJdPDwxMHxlWzIzXT4+PjIyLEo9ZVsyM108PDEwfGVbMjJdPj4+MjIsTz1lWzMzXTw8MTN8ZVszMl0+Pj4xOSx4PWVbMzJdPDwxM3xlWzMzXT4+PjE5LGNlPWVbNDJdPDwyfGVbNDNdPj4+MzAsbGU9ZVs0M108PDJ8ZVs0Ml0+Pj4zMCx0ZT1lWzVdPDwzMHxlWzRdPj4+MixyZT1lWzRdPDwzMHxlWzVdPj4+MixOPWVbMTRdPDw2fGVbMTVdPj4+MjYsVT1lWzE1XTw8NnxlWzE0XT4+PjI2LG09ZVsyNV08PDExfGVbMjRdPj4+MjEsVD1lWzI0XTw8MTF8ZVsyNV0+Pj4yMSxZPWVbMzRdPDwxNXxlWzM1XT4+PjE3LFg9ZVszNV08PDE1fGVbMzRdPj4+MTcsUz1lWzQ1XTw8Mjl8ZVs0NF0+Pj4zLEY9ZVs0NF08PDI5fGVbNDVdPj4+MyxCPWVbNl08PDI4fGVbN10+Pj40LEM9ZVs3XTw8Mjh8ZVs2XT4+PjQsbmU9ZVsxN108PDIzfGVbMTZdPj4+OSxvZT1lWzE2XTw8MjN8ZVsxN10+Pj45LEQ9ZVsyNl08PDI1fGVbMjddPj4+NyxMPWVbMjddPDwyNXxlWzI2XT4+Pjcsdz1lWzM2XTw8MjF8ZVszN10+Pj4xMSxBPWVbMzddPDwyMXxlWzM2XT4+PjExLFE9ZVs0N108PDI0fGVbNDZdPj4+OCxlZT1lWzQ2XTw8MjR8ZVs0N10+Pj44LEc9ZVs4XTw8Mjd8ZVs5XT4+PjUsSD1lWzldPDwyN3xlWzhdPj4+NSxFPWVbMThdPDwyMHxlWzE5XT4+PjEyLE09ZVsxOV08PDIwfGVbMThdPj4+MTIsaWU9ZVsyOV08PDd8ZVsyOF0+Pj4yNSxhZT1lWzI4XTw8N3xlWzI5XT4+PjI1LGo9ZVszOF08PDh8ZVszOV0+Pj4yNCx6PWVbMzldPDw4fGVbMzhdPj4+MjQsUD1lWzQ4XTw8MTR8ZVs0OV0+Pj4xOCxXPWVbNDldPDwxNHxlWzQ4XT4+PjE4LGVbMF09Z15+YiZtLGVbMV09eV5+diZULGVbMTBdPUJefkUmayxlWzExXT1DXn5NJkksZVsyMF09X15+TiZELGVbMjFdPVJeflUmTCxlWzMwXT1HXn5LJnEsZVszMV09SF5+WiZKLGVbNDBdPXRlXn5uZSZpZSxlWzQxXT1yZV5+b2UmYWUsZVsyXT1iXn5tJncsZVszXT12Xn5UJkEsZVsxMl09RV5+ayZPLGVbMTNdPU1efkkmeCxlWzIyXT1OXn5EJmosZVsyM109VV5+TCZ6LGVbMzJdPUtefnEmWSxlWzMzXT1aXn5KJlgsZVs0Ml09bmVefmllJnNlLGVbNDNdPW9lXn5hZSZ1ZSxlWzRdPW1efncmUCxlWzVdPVRefkEmVyxlWzE0XT1rXn5PJlMsZVsxNV09SV5+eCZGLGVbMjRdPURefmomJCxlWzI1XT1MXn56JlYsZVszNF09cV5+WSZRLGVbMzVdPUpeflgmZWUsZVs0NF09aWVefnNlJmNlLGVbNDVdPWFlXn51ZSZsZSxlWzZdPXdeflAmZyxlWzddPUFeflcmeSxlWzE2XT1PXn5TJkIsZVsxN109eF5+RiZDLGVbMjZdPWpefiQmXyxlWzI3XT16Xn5WJlIsZVszNl09WV5+USZHLGVbMzddPVhefmVlJkgsZVs0Nl09c2VefmNlJnRlLGVbNDddPXVlXn5sZSZyZSxlWzhdPVBefmcmYixlWzldPVdefnkmdixlWzE4XT1TXn5CJkUsZVsxOV09Rl5+QyZNLGVbMjhdPSRefl8mTixlWzI5XT1WXn5SJlUsZVszOF09UV5+RyZLLGVbMzldPWVlXn5IJlosZVs0OF09Y2VefnRlJm5lLGVbNDldPWxlXn5yZSZvZSxlWzBdXj1oW25dLGVbMV1ePWhbbisxXX07aWYodSllLmV4cG9ydHM9QztlbHNle2ZvcihNPTA7TTxFLmxlbmd0aDsrK00pYVtFW01dXT1DW0VbTV1dO2MmJih2b2lkIDA9PT0obj1mdW5jdGlvbigpe3JldHVybiBDfS5jYWxsKHQscix0LGUpKXx8KGUuZXhwb3J0cz1uKSl9fSgpfSw5MzM1OmU9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gdChlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX1lLmV4cG9ydHM9ZnVuY3Rpb24oZSxuLG8saSl7bj1ufHwiJiIsbz1vfHwiPSI7dmFyIGE9e307aWYoInN0cmluZyIhPXR5cGVvZiBlfHwwPT09ZS5sZW5ndGgpcmV0dXJuIGE7dmFyIHM9L1wrL2c7ZT1lLnNwbGl0KG4pO3ZhciB1PTFlMztpJiYibnVtYmVyIj09dHlwZW9mIGkubWF4S2V5cyYmKHU9aS5tYXhLZXlzKTt2YXIgYz1lLmxlbmd0aDt1PjAmJmM+dSYmKGM9dSk7Zm9yKHZhciBsPTA7bDxjOysrbCl7dmFyIGQsZixwLGgsZz1lW2xdLnJlcGxhY2UocywiJTIwIikseT1nLmluZGV4T2Yobyk7eT49MD8oZD1nLnN1YnN0cigwLHkpLGY9Zy5zdWJzdHIoeSsxKSk6KGQ9ZyxmPSIiKSxwPWRlY29kZVVSSUNvbXBvbmVudChkKSxoPWRlY29kZVVSSUNvbXBvbmVudChmKSx0KGEscCk/cihhW3BdKT9hW3BdLnB1c2goaCk6YVtwXT1bYVtwXSxoXTphW3BdPWh9cmV0dXJuIGF9O3ZhciByPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSl9fSw4Nzk1OmU9PnsidXNlIHN0cmljdCI7dmFyIHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKHR5cGVvZiBlKXtjYXNlInN0cmluZyI6cmV0dXJuIGU7Y2FzZSJib29sZWFuIjpyZXR1cm4gZT8idHJ1ZSI6ImZhbHNlIjtjYXNlIm51bWJlciI6cmV0dXJuIGlzRmluaXRlKGUpP2U6IiI7ZGVmYXVsdDpyZXR1cm4iIn19O2UuZXhwb3J0cz1mdW5jdGlvbihlLGksYSxzKXtyZXR1cm4gaT1pfHwiJiIsYT1hfHwiPSIsbnVsbD09PWUmJihlPXZvaWQgMCksIm9iamVjdCI9PXR5cGVvZiBlP24obyhlKSwoZnVuY3Rpb24obyl7dmFyIHM9ZW5jb2RlVVJJQ29tcG9uZW50KHQobykpK2E7cmV0dXJuIHIoZVtvXSk/bihlW29dLChmdW5jdGlvbihlKXtyZXR1cm4gcytlbmNvZGVVUklDb21wb25lbnQodChlKSl9KSkuam9pbihpKTpzK2VuY29kZVVSSUNvbXBvbmVudCh0KGVbb10pKX0pKS5qb2luKGkpOnM/ZW5jb2RlVVJJQ29tcG9uZW50KHQocykpK2ErZW5jb2RlVVJJQ29tcG9uZW50KHQoZSkpOiIifTt2YXIgcj1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpfTtmdW5jdGlvbiBuKGUsdCl7aWYoZS5tYXApcmV0dXJuIGUubWFwKHQpO2Zvcih2YXIgcj1bXSxuPTA7bjxlLmxlbmd0aDtuKyspci5wdXNoKHQoZVtuXSxuKSk7cmV0dXJuIHJ9dmFyIG89T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3ZhciB0PVtdO2Zvcih2YXIgciBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiZ0LnB1c2gocik7cmV0dXJuIHR9fSw3NzM1OihlLHQscik9PnsidXNlIHN0cmljdCI7dC5kZWNvZGU9dC5wYXJzZT1yKDkzMzUpLHQuZW5jb2RlPXQuc3RyaW5naWZ5PXIoODc5NSl9LDY2MjU6KGUsdCk9Pnt2YXIgcjt0PWUuZXhwb3J0cz1YLHI9Im9iamVjdCI9PXR5cGVvZiBwcm9jZXNzJiZwcm9jZXNzLmVudiYmcHJvY2Vzcy5lbnYuTk9ERV9ERUJVRyYmL1xic2VtdmVyXGIvaS50ZXN0KHByb2Nlc3MuZW52Lk5PREVfREVCVUcpP2Z1bmN0aW9uKCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO2UudW5zaGlmdCgiU0VNVkVSIiksY29uc29sZS5sb2cuYXBwbHkoY29uc29sZSxlKX06ZnVuY3Rpb24oKXt9LHQuU0VNVkVSX1NQRUNfVkVSU0lPTj0iMi4wLjAiO3ZhciBuPTI1NixvPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSfHw5MDA3MTk5MjU0NzQwOTkxLGk9bi02LGE9dC5yZT1bXSxzPXQuc2FmZVJlPVtdLHU9dC5zcmM9W10sYz0wLGw9IlthLXpBLVowLTktXSIsZD1bWyJcXHMiLDFdLFsiXFxkIixuXSxbbCxpXV07ZnVuY3Rpb24gZihlKXtmb3IodmFyIHQ9MDt0PGQubGVuZ3RoO3QrKyl7dmFyIHI9ZFt0XVswXSxuPWRbdF1bMV07ZT1lLnNwbGl0KHIrIioiKS5qb2luKHIrInswLCIrbisifSIpLnNwbGl0KHIrIisiKS5qb2luKHIrInsxLCIrbisifSIpfXJldHVybiBlfXZhciBwPWMrKzt1W3BdPSIwfFsxLTldXFxkKiI7dmFyIGg9YysrO3VbaF09IlxcZCsiO3ZhciBnPWMrKzt1W2ddPSJcXGQqW2EtekEtWi1dIitsKyIqIjt2YXIgeT1jKys7dVt5XT0iKCIrdVtwXSsiKVxcLigiK3VbcF0rIilcXC4oIit1W3BdKyIpIjt2YXIgYj1jKys7dVtiXT0iKCIrdVtoXSsiKVxcLigiK3VbaF0rIilcXC4oIit1W2hdKyIpIjt2YXIgdj1jKys7dVt2XT0iKD86Iit1W3BdKyJ8Iit1W2ddKyIpIjt2YXIgbT1jKys7dVttXT0iKD86Iit1W2hdKyJ8Iit1W2ddKyIpIjt2YXIgVD1jKys7dVtUXT0iKD86LSgiK3Vbdl0rIig/OlxcLiIrdVt2XSsiKSopKSI7dmFyIHc9YysrO3Vbd109Iig/Oi0/KCIrdVttXSsiKD86XFwuIit1W21dKyIpKikpIjt2YXIgQT1jKys7dVtBXT1sKyIrIjt2YXIgUD1jKys7dVtQXT0iKD86XFwrKCIrdVtBXSsiKD86XFwuIit1W0FdKyIpKikpIjt2YXIgVz1jKyssQj0idj8iK3VbeV0rdVtUXSsiPyIrdVtQXSsiPyI7dVtXXT0iXiIrQisiJCI7dmFyIEM9Ilt2PVxcc10qIit1W2JdK3Vbd10rIj8iK3VbUF0rIj8iLEU9YysrO3VbRV09Il4iK0MrIiQiO3ZhciBNPWMrKzt1W01dPSIoKD86PHw+KT89PykiO3ZhciBrPWMrKzt1W2tdPXVbaF0rInx4fFh8XFwqIjt2YXIgST1jKys7dVtJXT11W3BdKyJ8eHxYfFxcKiI7dmFyIE89YysrO3VbT109Ilt2PVxcc10qKCIrdVtJXSsiKSg/OlxcLigiK3VbSV0rIikoPzpcXC4oIit1W0ldKyIpKD86Iit1W1RdKyIpPyIrdVtQXSsiPyk/KT8iO3ZhciB4PWMrKzt1W3hdPSJbdj1cXHNdKigiK3Vba10rIikoPzpcXC4oIit1W2tdKyIpKD86XFwuKCIrdVtrXSsiKSg/OiIrdVt3XSsiKT8iK3VbUF0rIj8pPyk/Ijt2YXIgUz1jKys7dVtTXT0iXiIrdVtNXSsiXFxzKiIrdVtPXSsiJCI7dmFyIEY9YysrO3VbRl09Il4iK3VbTV0rIlxccyoiK3VbeF0rIiQiO3ZhciBfPWMrKzt1W19dPSIoPzpefFteXFxkXSkoXFxkezEsMTZ9KSg/OlxcLihcXGR7MSwxNn0pKT8oPzpcXC4oXFxkezEsMTZ9KSk/KD86JHxbXlxcZF0pIjt2YXIgUj1jKys7dVtSXT0iKD86fj4/KSI7dmFyIE49YysrO3VbTl09IihcXHMqKSIrdVtSXSsiXFxzKyIsYVtOXT1uZXcgUmVnRXhwKHVbTl0sImciKSxzW05dPW5ldyBSZWdFeHAoZih1W05dKSwiZyIpO3ZhciBVPWMrKzt1W1VdPSJeIit1W1JdK3VbT10rIiQiO3ZhciBEPWMrKzt1W0RdPSJeIit1W1JdK3VbeF0rIiQiO3ZhciBMPWMrKzt1W0xdPSIoPzpcXF4pIjt2YXIgaj1jKys7dVtqXT0iKFxccyopIit1W0xdKyJcXHMrIixhW2pdPW5ldyBSZWdFeHAodVtqXSwiZyIpLHNbal09bmV3IFJlZ0V4cChmKHVbal0pLCJnIik7dmFyIHo9YysrO3Vbel09Il4iK3VbTF0rdVtPXSsiJCI7dmFyICQ9YysrO3VbJF09Il4iK3VbTF0rdVt4XSsiJCI7dmFyIFY9YysrO3VbVl09Il4iK3VbTV0rIlxccyooIitDKyIpJHxeJCI7dmFyIEc9YysrO3VbR109Il4iK3VbTV0rIlxccyooIitCKyIpJHxeJCI7dmFyIEg9YysrO3VbSF09IihcXHMqKSIrdVtNXSsiXFxzKigiK0MrInwiK3VbT10rIikiLGFbSF09bmV3IFJlZ0V4cCh1W0hdLCJnIiksc1tIXT1uZXcgUmVnRXhwKGYodVtIXSksImciKTt2YXIgSz1jKys7dVtLXT0iXlxccyooIit1W09dKyIpXFxzKy1cXHMrKCIrdVtPXSsiKVxccyokIjt2YXIgWj1jKys7dVtaXT0iXlxccyooIit1W3hdKyIpXFxzKy1cXHMrKCIrdVt4XSsiKVxccyokIjt2YXIgcT1jKys7dVtxXT0iKDx8Pik/PT9cXHMqXFwqIjtmb3IodmFyIEo9MDtKPDM1O0orKylyKEosdVtKXSksYVtKXXx8KGFbSl09bmV3IFJlZ0V4cCh1W0pdKSxzW0pdPW5ldyBSZWdFeHAoZih1W0pdKSkpO2Z1bmN0aW9uIFkoZSx0KXtpZih0JiYib2JqZWN0Ij09dHlwZW9mIHR8fCh0PXtsb29zZTohIXQsaW5jbHVkZVByZXJlbGVhc2U6ITF9KSxlIGluc3RhbmNlb2YgWClyZXR1cm4gZTtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7aWYoZS5sZW5ndGg+bilyZXR1cm4gbnVsbDtpZighKHQubG9vc2U/c1tFXTpzW1ddKS50ZXN0KGUpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gbmV3IFgoZSx0KX1jYXRjaChlKXtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gWChlLHQpe2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e2xvb3NlOiEhdCxpbmNsdWRlUHJlcmVsZWFzZTohMX0pLGUgaW5zdGFuY2VvZiBYKXtpZihlLmxvb3NlPT09dC5sb29zZSlyZXR1cm4gZTtlPWUudmVyc2lvbn1lbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIFZlcnNpb246ICIrZSk7aWYoZS5sZW5ndGg+bil0aHJvdyBuZXcgVHlwZUVycm9yKCJ2ZXJzaW9uIGlzIGxvbmdlciB0aGFuICIrbisiIGNoYXJhY3RlcnMiKTtpZighKHRoaXMgaW5zdGFuY2VvZiBYKSlyZXR1cm4gbmV3IFgoZSx0KTtyKCJTZW1WZXIiLGUsdCksdGhpcy5vcHRpb25zPXQsdGhpcy5sb29zZT0hIXQubG9vc2U7dmFyIGk9ZS50cmltKCkubWF0Y2godC5sb29zZT9zW0VdOnNbV10pO2lmKCFpKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgVmVyc2lvbjogIitlKTtpZih0aGlzLnJhdz1lLHRoaXMubWFqb3I9K2lbMV0sdGhpcy5taW5vcj0raVsyXSx0aGlzLnBhdGNoPStpWzNdLHRoaXMubWFqb3I+b3x8dGhpcy5tYWpvcjwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgbWFqb3IgdmVyc2lvbiIpO2lmKHRoaXMubWlub3I+b3x8dGhpcy5taW5vcjwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgbWlub3IgdmVyc2lvbiIpO2lmKHRoaXMucGF0Y2g+b3x8dGhpcy5wYXRjaDwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgcGF0Y2ggdmVyc2lvbiIpO2lbNF0/dGhpcy5wcmVyZWxlYXNlPWlbNF0uc3BsaXQoIi4iKS5tYXAoKGZ1bmN0aW9uKGUpe2lmKC9eWzAtOV0rJC8udGVzdChlKSl7dmFyIHQ9K2U7aWYodD49MCYmdDxvKXJldHVybiB0fXJldHVybiBlfSkpOnRoaXMucHJlcmVsZWFzZT1bXSx0aGlzLmJ1aWxkPWlbNV0/aVs1XS5zcGxpdCgiLiIpOltdLHRoaXMuZm9ybWF0KCl9dC5wYXJzZT1ZLHQudmFsaWQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1ZKGUsdCk7cmV0dXJuIHI/ci52ZXJzaW9uOm51bGx9LHQuY2xlYW49ZnVuY3Rpb24oZSx0KXt2YXIgcj1ZKGUudHJpbSgpLnJlcGxhY2UoL15bPXZdKy8sIiIpLHQpO3JldHVybiByP3IudmVyc2lvbjpudWxsfSx0LlNlbVZlcj1YLFgucHJvdG90eXBlLmZvcm1hdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZlcnNpb249dGhpcy5tYWpvcisiLiIrdGhpcy5taW5vcisiLiIrdGhpcy5wYXRjaCx0aGlzLnByZXJlbGVhc2UubGVuZ3RoJiYodGhpcy52ZXJzaW9uKz0iLSIrdGhpcy5wcmVyZWxlYXNlLmpvaW4oIi4iKSksdGhpcy52ZXJzaW9ufSxYLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZlcnNpb259LFgucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoIlNlbVZlci5jb21wYXJlIix0aGlzLnZlcnNpb24sdGhpcy5vcHRpb25zLGUpLGUgaW5zdGFuY2VvZiBYfHwoZT1uZXcgWChlLHRoaXMub3B0aW9ucykpLHRoaXMuY29tcGFyZU1haW4oZSl8fHRoaXMuY29tcGFyZVByZShlKX0sWC5wcm90b3R5cGUuY29tcGFyZU1haW49ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBYfHwoZT1uZXcgWChlLHRoaXMub3B0aW9ucykpLGVlKHRoaXMubWFqb3IsZS5tYWpvcil8fGVlKHRoaXMubWlub3IsZS5taW5vcil8fGVlKHRoaXMucGF0Y2gsZS5wYXRjaCl9LFgucHJvdG90eXBlLmNvbXBhcmVQcmU9ZnVuY3Rpb24oZSl7aWYoZSBpbnN0YW5jZW9mIFh8fChlPW5ldyBYKGUsdGhpcy5vcHRpb25zKSksdGhpcy5wcmVyZWxlYXNlLmxlbmd0aCYmIWUucHJlcmVsZWFzZS5sZW5ndGgpcmV0dXJuLTE7aWYoIXRoaXMucHJlcmVsZWFzZS5sZW5ndGgmJmUucHJlcmVsZWFzZS5sZW5ndGgpcmV0dXJuIDE7aWYoIXRoaXMucHJlcmVsZWFzZS5sZW5ndGgmJiFlLnByZXJlbGVhc2UubGVuZ3RoKXJldHVybiAwO3ZhciB0PTA7ZG97dmFyIG49dGhpcy5wcmVyZWxlYXNlW3RdLG89ZS5wcmVyZWxlYXNlW3RdO2lmKHIoInByZXJlbGVhc2UgY29tcGFyZSIsdCxuLG8pLHZvaWQgMD09PW4mJnZvaWQgMD09PW8pcmV0dXJuIDA7aWYodm9pZCAwPT09bylyZXR1cm4gMTtpZih2b2lkIDA9PT1uKXJldHVybi0xO2lmKG4hPT1vKXJldHVybiBlZShuLG8pfXdoaWxlKCsrdCl9LFgucHJvdG90eXBlLmluYz1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlInByZW1ham9yIjp0aGlzLnByZXJlbGVhc2UubGVuZ3RoPTAsdGhpcy5wYXRjaD0wLHRoaXMubWlub3I9MCx0aGlzLm1ham9yKyssdGhpcy5pbmMoInByZSIsdCk7YnJlYWs7Y2FzZSJwcmVtaW5vciI6dGhpcy5wcmVyZWxlYXNlLmxlbmd0aD0wLHRoaXMucGF0Y2g9MCx0aGlzLm1pbm9yKyssdGhpcy5pbmMoInByZSIsdCk7YnJlYWs7Y2FzZSJwcmVwYXRjaCI6dGhpcy5wcmVyZWxlYXNlLmxlbmd0aD0wLHRoaXMuaW5jKCJwYXRjaCIsdCksdGhpcy5pbmMoInByZSIsdCk7YnJlYWs7Y2FzZSJwcmVyZWxlYXNlIjowPT09dGhpcy5wcmVyZWxlYXNlLmxlbmd0aCYmdGhpcy5pbmMoInBhdGNoIix0KSx0aGlzLmluYygicHJlIix0KTticmVhaztjYXNlIm1ham9yIjowPT09dGhpcy5taW5vciYmMD09PXRoaXMucGF0Y2gmJjAhPT10aGlzLnByZXJlbGVhc2UubGVuZ3RofHx0aGlzLm1ham9yKyssdGhpcy5taW5vcj0wLHRoaXMucGF0Y2g9MCx0aGlzLnByZXJlbGVhc2U9W107YnJlYWs7Y2FzZSJtaW5vciI6MD09PXRoaXMucGF0Y2gmJjAhPT10aGlzLnByZXJlbGVhc2UubGVuZ3RofHx0aGlzLm1pbm9yKyssdGhpcy5wYXRjaD0wLHRoaXMucHJlcmVsZWFzZT1bXTticmVhaztjYXNlInBhdGNoIjowPT09dGhpcy5wcmVyZWxlYXNlLmxlbmd0aCYmdGhpcy5wYXRjaCsrLHRoaXMucHJlcmVsZWFzZT1bXTticmVhaztjYXNlInByZSI6aWYoMD09PXRoaXMucHJlcmVsZWFzZS5sZW5ndGgpdGhpcy5wcmVyZWxlYXNlPVswXTtlbHNle2Zvcih2YXIgcj10aGlzLnByZXJlbGVhc2UubGVuZ3RoOy0tcj49MDspIm51bWJlciI9PXR5cGVvZiB0aGlzLnByZXJlbGVhc2Vbcl0mJih0aGlzLnByZXJlbGVhc2Vbcl0rKyxyPS0yKTstMT09PXImJnRoaXMucHJlcmVsZWFzZS5wdXNoKDApfXQmJih0aGlzLnByZXJlbGVhc2VbMF09PT10P2lzTmFOKHRoaXMucHJlcmVsZWFzZVsxXSkmJih0aGlzLnByZXJlbGVhc2U9W3QsMF0pOnRoaXMucHJlcmVsZWFzZT1bdCwwXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgaW5jcmVtZW50IGFyZ3VtZW50OiAiK2UpfXJldHVybiB0aGlzLmZvcm1hdCgpLHRoaXMucmF3PXRoaXMudmVyc2lvbix0aGlzfSx0LmluYz1mdW5jdGlvbihlLHQscixuKXsic3RyaW5nIj09dHlwZW9mIHImJihuPXIscj12b2lkIDApO3RyeXtyZXR1cm4gbmV3IFgoZSxyKS5pbmModCxuKS52ZXJzaW9ufWNhdGNoKGUpe3JldHVybiBudWxsfX0sdC5kaWZmPWZ1bmN0aW9uKGUsdCl7aWYob2UoZSx0KSlyZXR1cm4gbnVsbDt2YXIgcj1ZKGUpLG49WSh0KSxvPSIiO2lmKHIucHJlcmVsZWFzZS5sZW5ndGh8fG4ucHJlcmVsZWFzZS5sZW5ndGgpe289InByZSI7dmFyIGk9InByZXJlbGVhc2UifWZvcih2YXIgYSBpbiByKWlmKCgibWFqb3IiPT09YXx8Im1pbm9yIj09PWF8fCJwYXRjaCI9PT1hKSYmclthXSE9PW5bYV0pcmV0dXJuIG8rYTtyZXR1cm4gaX0sdC5jb21wYXJlSWRlbnRpZmllcnM9ZWU7dmFyIFE9L15bMC05XSskLztmdW5jdGlvbiBlZShlLHQpe3ZhciByPVEudGVzdChlKSxuPVEudGVzdCh0KTtyZXR1cm4gciYmbiYmKGU9K2UsdD0rdCksZT09PXQ/MDpyJiYhbj8tMTpuJiYhcj8xOmU8dD8tMToxfWZ1bmN0aW9uIHRlKGUsdCxyKXtyZXR1cm4gbmV3IFgoZSxyKS5jb21wYXJlKG5ldyBYKHQscikpfWZ1bmN0aW9uIHJlKGUsdCxyKXtyZXR1cm4gdGUoZSx0LHIpPjB9ZnVuY3Rpb24gbmUoZSx0LHIpe3JldHVybiB0ZShlLHQscik8MH1mdW5jdGlvbiBvZShlLHQscil7cmV0dXJuIDA9PT10ZShlLHQscil9ZnVuY3Rpb24gaWUoZSx0LHIpe3JldHVybiAwIT09dGUoZSx0LHIpfWZ1bmN0aW9uIGFlKGUsdCxyKXtyZXR1cm4gdGUoZSx0LHIpPj0wfWZ1bmN0aW9uIHNlKGUsdCxyKXtyZXR1cm4gdGUoZSx0LHIpPD0wfWZ1bmN0aW9uIHVlKGUsdCxyLG4pe3N3aXRjaCh0KXtjYXNlIj09PSI6cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiYoZT1lLnZlcnNpb24pLCJvYmplY3QiPT10eXBlb2YgciYmKHI9ci52ZXJzaW9uKSxlPT09cjtjYXNlIiE9PSI6cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiYoZT1lLnZlcnNpb24pLCJvYmplY3QiPT10eXBlb2YgciYmKHI9ci52ZXJzaW9uKSxlIT09cjtjYXNlIiI6Y2FzZSI9IjpjYXNlIj09IjpyZXR1cm4gb2UoZSxyLG4pO2Nhc2UiIT0iOnJldHVybiBpZShlLHIsbik7Y2FzZSI+IjpyZXR1cm4gcmUoZSxyLG4pO2Nhc2UiPj0iOnJldHVybiBhZShlLHIsbik7Y2FzZSI8IjpyZXR1cm4gbmUoZSxyLG4pO2Nhc2UiPD0iOnJldHVybiBzZShlLHIsbik7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIG9wZXJhdG9yOiAiK3QpfX1mdW5jdGlvbiBjZShlLHQpe2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e2xvb3NlOiEhdCxpbmNsdWRlUHJlcmVsZWFzZTohMX0pLGUgaW5zdGFuY2VvZiBjZSl7aWYoZS5sb29zZT09PSEhdC5sb29zZSlyZXR1cm4gZTtlPWUudmFsdWV9aWYoISh0aGlzIGluc3RhbmNlb2YgY2UpKXJldHVybiBuZXcgY2UoZSx0KTtlPWUudHJpbSgpLnNwbGl0KC9ccysvKS5qb2luKCIgIikscigiY29tcGFyYXRvciIsZSx0KSx0aGlzLm9wdGlvbnM9dCx0aGlzLmxvb3NlPSEhdC5sb29zZSx0aGlzLnBhcnNlKGUpLHRoaXMuc2VtdmVyPT09bGU/dGhpcy52YWx1ZT0iIjp0aGlzLnZhbHVlPXRoaXMub3BlcmF0b3IrdGhpcy5zZW12ZXIudmVyc2lvbixyKCJjb21wIix0aGlzKX10LnJjb21wYXJlSWRlbnRpZmllcnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZWUodCxlKX0sdC5tYWpvcj1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgWChlLHQpLm1ham9yfSx0Lm1pbm9yPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBYKGUsdCkubWlub3J9LHQucGF0Y2g9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFgoZSx0KS5wYXRjaH0sdC5jb21wYXJlPXRlLHQuY29tcGFyZUxvb3NlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRlKGUsdCwhMCl9LHQucmNvbXBhcmU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0ZSh0LGUscil9LHQuc29ydD1mdW5jdGlvbihlLHIpe3JldHVybiBlLnNvcnQoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIHQuY29tcGFyZShlLG4scil9KSl9LHQucnNvcnQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZS5zb3J0KChmdW5jdGlvbihlLG4pe3JldHVybiB0LnJjb21wYXJlKGUsbixyKX0pKX0sdC5ndD1yZSx0Lmx0PW5lLHQuZXE9b2UsdC5uZXE9aWUsdC5ndGU9YWUsdC5sdGU9c2UsdC5jbXA9dWUsdC5Db21wYXJhdG9yPWNlO3ZhciBsZT17fTtmdW5jdGlvbiBkZShlLHQpe2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8KHQ9e2xvb3NlOiEhdCxpbmNsdWRlUHJlcmVsZWFzZTohMX0pLGUgaW5zdGFuY2VvZiBkZSlyZXR1cm4gZS5sb29zZT09PSEhdC5sb29zZSYmZS5pbmNsdWRlUHJlcmVsZWFzZT09PSEhdC5pbmNsdWRlUHJlcmVsZWFzZT9lOm5ldyBkZShlLnJhdyx0KTtpZihlIGluc3RhbmNlb2YgY2UpcmV0dXJuIG5ldyBkZShlLnZhbHVlLHQpO2lmKCEodGhpcyBpbnN0YW5jZW9mIGRlKSlyZXR1cm4gbmV3IGRlKGUsdCk7aWYodGhpcy5vcHRpb25zPXQsdGhpcy5sb29zZT0hIXQubG9vc2UsdGhpcy5pbmNsdWRlUHJlcmVsZWFzZT0hIXQuaW5jbHVkZVByZXJlbGVhc2UsdGhpcy5yYXc9ZS50cmltKCkuc3BsaXQoL1xzKy8pLmpvaW4oIiAiKSx0aGlzLnNldD10aGlzLnJhdy5zcGxpdCgifHwiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnBhcnNlUmFuZ2UoZS50cmltKCkpfSksdGhpcykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGh9KSksIXRoaXMuc2V0Lmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIFNlbVZlciBSYW5nZTogIit0aGlzLnJhdyk7dGhpcy5mb3JtYXQoKX1mdW5jdGlvbiBmZShlKXtyZXR1cm4hZXx8IngiPT09ZS50b0xvd2VyQ2FzZSgpfHwiKiI9PT1lfWZ1bmN0aW9uIHBlKGUsdCxyLG4sbyxpLGEscyx1LGMsbCxkLGYpe3JldHVybigodD1mZShyKT8iIjpmZShuKT8iPj0iK3IrIi4wLjAiOmZlKG8pPyI+PSIrcisiLiIrbisiLjAiOiI+PSIrdCkrIiAiKyhzPWZlKHUpPyIiOmZlKGMpPyI8IisoK3UrMSkrIi4wLjAiOmZlKGwpPyI8Iit1KyIuIisoK2MrMSkrIi4wIjpkPyI8PSIrdSsiLiIrYysiLiIrbCsiLSIrZDoiPD0iK3MpKS50cmltKCl9ZnVuY3Rpb24gaGUoZSx0LG4pe2Zvcih2YXIgbz0wO288ZS5sZW5ndGg7bysrKWlmKCFlW29dLnRlc3QodCkpcmV0dXJuITE7aWYodC5wcmVyZWxlYXNlLmxlbmd0aCYmIW4uaW5jbHVkZVByZXJlbGVhc2Upe2ZvcihvPTA7bzxlLmxlbmd0aDtvKyspaWYocihlW29dLnNlbXZlciksZVtvXS5zZW12ZXIhPT1sZSYmZVtvXS5zZW12ZXIucHJlcmVsZWFzZS5sZW5ndGg+MCl7dmFyIGk9ZVtvXS5zZW12ZXI7aWYoaS5tYWpvcj09PXQubWFqb3ImJmkubWlub3I9PT10Lm1pbm9yJiZpLnBhdGNoPT09dC5wYXRjaClyZXR1cm4hMH1yZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBnZShlLHQscil7dHJ5e3Q9bmV3IGRlKHQscil9Y2F0Y2goZSl7cmV0dXJuITF9cmV0dXJuIHQudGVzdChlKX1mdW5jdGlvbiB5ZShlLHQscixuKXt2YXIgbyxpLGEscyx1O3N3aXRjaChlPW5ldyBYKGUsbiksdD1uZXcgZGUodCxuKSxyKXtjYXNlIj4iOm89cmUsaT1zZSxhPW5lLHM9Ij4iLHU9Ij49IjticmVhaztjYXNlIjwiOm89bmUsaT1hZSxhPXJlLHM9IjwiLHU9Ijw9IjticmVhaztkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoJ011c3QgcHJvdmlkZSBhIGhpbG8gdmFsIG9mICI8IiBvciAiPiInKX1pZihnZShlLHQsbikpcmV0dXJuITE7Zm9yKHZhciBjPTA7Yzx0LnNldC5sZW5ndGg7KytjKXt2YXIgbD10LnNldFtjXSxkPW51bGwsZj1udWxsO2lmKGwuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5zZW12ZXI9PT1sZSYmKGU9bmV3IGNlKCI+PTAuMC4wIikpLGQ9ZHx8ZSxmPWZ8fGUsbyhlLnNlbXZlcixkLnNlbXZlcixuKT9kPWU6YShlLnNlbXZlcixmLnNlbXZlcixuKSYmKGY9ZSl9KSksZC5vcGVyYXRvcj09PXN8fGQub3BlcmF0b3I9PT11KXJldHVybiExO2lmKCghZi5vcGVyYXRvcnx8Zi5vcGVyYXRvcj09PXMpJiZpKGUsZi5zZW12ZXIpKXJldHVybiExO2lmKGYub3BlcmF0b3I9PT11JiZhKGUsZi5zZW12ZXIpKXJldHVybiExfXJldHVybiEwfWNlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLm9wdGlvbnMubG9vc2U/c1tWXTpzW0ddLHI9ZS5tYXRjaCh0KTtpZighcil0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGNvbXBhcmF0b3I6ICIrZSk7dGhpcy5vcGVyYXRvcj1yWzFdLCI9Ij09PXRoaXMub3BlcmF0b3ImJih0aGlzLm9wZXJhdG9yPSIiKSxyWzJdP3RoaXMuc2VtdmVyPW5ldyBYKHJbMl0sdGhpcy5vcHRpb25zLmxvb3NlKTp0aGlzLnNlbXZlcj1sZX0sY2UucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LGNlLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiByKCJDb21wYXJhdG9yLnRlc3QiLGUsdGhpcy5vcHRpb25zLmxvb3NlKSx0aGlzLnNlbXZlcj09PWxlfHwoInN0cmluZyI9PXR5cGVvZiBlJiYoZT1uZXcgWChlLHRoaXMub3B0aW9ucykpLHVlKGUsdGhpcy5vcGVyYXRvcix0aGlzLnNlbXZlcix0aGlzLm9wdGlvbnMpKX0sY2UucHJvdG90eXBlLmludGVyc2VjdHM9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiBjZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYSBDb21wYXJhdG9yIGlzIHJlcXVpcmVkIik7dmFyIHI7aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0fHwodD17bG9vc2U6ISF0LGluY2x1ZGVQcmVyZWxlYXNlOiExfSksIiI9PT10aGlzLm9wZXJhdG9yKXJldHVybiByPW5ldyBkZShlLnZhbHVlLHQpLGdlKHRoaXMudmFsdWUscix0KTtpZigiIj09PWUub3BlcmF0b3IpcmV0dXJuIHI9bmV3IGRlKHRoaXMudmFsdWUsdCksZ2UoZS5zZW12ZXIscix0KTt2YXIgbj0hKCI+PSIhPT10aGlzLm9wZXJhdG9yJiYiPiIhPT10aGlzLm9wZXJhdG9yfHwiPj0iIT09ZS5vcGVyYXRvciYmIj4iIT09ZS5vcGVyYXRvciksbz0hKCI8PSIhPT10aGlzLm9wZXJhdG9yJiYiPCIhPT10aGlzLm9wZXJhdG9yfHwiPD0iIT09ZS5vcGVyYXRvciYmIjwiIT09ZS5vcGVyYXRvciksaT10aGlzLnNlbXZlci52ZXJzaW9uPT09ZS5zZW12ZXIudmVyc2lvbixhPSEoIj49IiE9PXRoaXMub3BlcmF0b3ImJiI8PSIhPT10aGlzLm9wZXJhdG9yfHwiPj0iIT09ZS5vcGVyYXRvciYmIjw9IiE9PWUub3BlcmF0b3IpLHM9dWUodGhpcy5zZW12ZXIsIjwiLGUuc2VtdmVyLHQpJiYoIj49Ij09PXRoaXMub3BlcmF0b3J8fCI+Ij09PXRoaXMub3BlcmF0b3IpJiYoIjw9Ij09PWUub3BlcmF0b3J8fCI8Ij09PWUub3BlcmF0b3IpLHU9dWUodGhpcy5zZW12ZXIsIj4iLGUuc2VtdmVyLHQpJiYoIjw9Ij09PXRoaXMub3BlcmF0b3J8fCI8Ij09PXRoaXMub3BlcmF0b3IpJiYoIj49Ij09PWUub3BlcmF0b3J8fCI+Ij09PWUub3BlcmF0b3IpO3JldHVybiBufHxvfHxpJiZhfHxzfHx1fSx0LlJhbmdlPWRlLGRlLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yYW5nZT10aGlzLnNldC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpvaW4oIiAiKS50cmltKCl9KSkuam9pbigifHwiKS50cmltKCksdGhpcy5yYW5nZX0sZGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2V9LGRlLnByb3RvdHlwZS5wYXJzZVJhbmdlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMub3B0aW9ucy5sb29zZSxuPXQ/c1taXTpzW0tdO2U9ZS5yZXBsYWNlKG4scGUpLHIoImh5cGhlbiByZXBsYWNlIixlKSxlPWUucmVwbGFjZShzW0hdLCIkMSQyJDMiKSxyKCJjb21wYXJhdG9yIHRyaW0iLGUsc1tIXSksZT0oZT1lLnJlcGxhY2Uoc1tOXSwiJDF+IikpLnJlcGxhY2Uoc1tqXSwiJDFeIik7dmFyIG89dD9zW1ZdOnNbR10saT1lLnNwbGl0KCIgIikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtyZXR1cm4gcigiY29tcCIsZSx0KSxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlLHQpe3IoImNhcmV0IixlLHQpO3ZhciBuPXQubG9vc2U/c1skXTpzW3pdO3JldHVybiBlLnJlcGxhY2UobiwoZnVuY3Rpb24odCxuLG8saSxhKXt2YXIgcztyZXR1cm4gcigiY2FyZXQiLGUsdCxuLG8saSxhKSxmZShuKT9zPSIiOmZlKG8pP3M9Ij49IituKyIuMC4wIDwiKygrbisxKSsiLjAuMCI6ZmUoaSk/cz0iMCI9PT1uPyI+PSIrbisiLiIrbysiLjAgPCIrbisiLiIrKCtvKzEpKyIuMCI6Ij49IituKyIuIitvKyIuMCA8IisoK24rMSkrIi4wLjAiOmE/KHIoInJlcGxhY2VDYXJldCBwciIsYSkscz0iMCI9PT1uPyIwIj09PW8/Ij49IituKyIuIitvKyIuIitpKyItIithKyIgPCIrbisiLiIrbysiLiIrKCtpKzEpOiI+PSIrbisiLiIrbysiLiIraSsiLSIrYSsiIDwiK24rIi4iKygrbysxKSsiLjAiOiI+PSIrbisiLiIrbysiLiIraSsiLSIrYSsiIDwiKygrbisxKSsiLjAuMCIpOihyKCJubyBwciIpLHM9IjAiPT09bj8iMCI9PT1vPyI+PSIrbisiLiIrbysiLiIraSsiIDwiK24rIi4iK28rIi4iKygraSsxKToiPj0iK24rIi4iK28rIi4iK2krIiA8IituKyIuIisoK28rMSkrIi4wIjoiPj0iK24rIi4iK28rIi4iK2krIiA8IisoK24rMSkrIi4wLjAiKSxyKCJjYXJldCByZXR1cm4iLHMpLHN9KSl9KGUsdCl9KSkuam9pbigiICIpfShlLHQpLHIoImNhcmV0IixlKSxlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlLHQpe3ZhciBuPXQubG9vc2U/c1tEXTpzW1VdO3JldHVybiBlLnJlcGxhY2UobiwoZnVuY3Rpb24odCxuLG8saSxhKXt2YXIgcztyZXR1cm4gcigidGlsZGUiLGUsdCxuLG8saSxhKSxmZShuKT9zPSIiOmZlKG8pP3M9Ij49IituKyIuMC4wIDwiKygrbisxKSsiLjAuMCI6ZmUoaSk/cz0iPj0iK24rIi4iK28rIi4wIDwiK24rIi4iKygrbysxKSsiLjAiOmE/KHIoInJlcGxhY2VUaWxkZSBwciIsYSkscz0iPj0iK24rIi4iK28rIi4iK2krIi0iK2ErIiA8IituKyIuIisoK28rMSkrIi4wIik6cz0iPj0iK24rIi4iK28rIi4iK2krIiA8IituKyIuIisoK28rMSkrIi4wIixyKCJ0aWxkZSByZXR1cm4iLHMpLHN9KSl9KGUsdCl9KSkuam9pbigiICIpfShlLHQpLHIoInRpbGRlcyIsZSksZT1mdW5jdGlvbihlLHQpe3JldHVybiByKCJyZXBsYWNlWFJhbmdlcyIsZSx0KSxlLnNwbGl0KC9ccysvKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlLHQpe2U9ZS50cmltKCk7dmFyIG49dC5sb29zZT9zW0ZdOnNbU107cmV0dXJuIGUucmVwbGFjZShuLChmdW5jdGlvbih0LG4sbyxpLGEscyl7cigieFJhbmdlIixlLHQsbixvLGksYSxzKTt2YXIgdT1mZShvKSxjPXV8fGZlKGkpLGw9Y3x8ZmUoYSk7cmV0dXJuIj0iPT09biYmbCYmKG49IiIpLHU/dD0iPiI9PT1ufHwiPCI9PT1uPyI8MC4wLjAiOiIqIjpuJiZsPyhjJiYoaT0wKSxhPTAsIj4iPT09bj8obj0iPj0iLGM/KG89K28rMSxpPTAsYT0wKTooaT0raSsxLGE9MCkpOiI8PSI9PT1uJiYobj0iPCIsYz9vPStvKzE6aT0raSsxKSx0PW4rbysiLiIraSsiLiIrYSk6Yz90PSI+PSIrbysiLjAuMCA8IisoK28rMSkrIi4wLjAiOmwmJih0PSI+PSIrbysiLiIraSsiLjAgPCIrbysiLiIrKCtpKzEpKyIuMCIpLHIoInhSYW5nZSByZXR1cm4iLHQpLHR9KSl9KGUsdCl9KSkuam9pbigiICIpfShlLHQpLHIoInhyYW5nZSIsZSksZT1mdW5jdGlvbihlLHQpe3JldHVybiByKCJyZXBsYWNlU3RhcnMiLGUsdCksZS50cmltKCkucmVwbGFjZShzW3FdLCIiKX0oZSx0KSxyKCJzdGFycyIsZSksZX0oZSx0aGlzLm9wdGlvbnMpfSksdGhpcykuam9pbigiICIpLnNwbGl0KC9ccysvKTtyZXR1cm4gdGhpcy5vcHRpb25zLmxvb3NlJiYoaT1pLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuISFlLm1hdGNoKG8pfSkpKSxpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBjZShlLHRoaXMub3B0aW9ucyl9KSx0aGlzKX0sZGUucHJvdG90eXBlLmludGVyc2VjdHM9ZnVuY3Rpb24oZSx0KXtpZighKGUgaW5zdGFuY2VvZiBkZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYSBSYW5nZSBpcyByZXF1aXJlZCIpO3JldHVybiB0aGlzLnNldC5zb21lKChmdW5jdGlvbihyKXtyZXR1cm4gci5ldmVyeSgoZnVuY3Rpb24ocil7cmV0dXJuIGUuc2V0LnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmV2ZXJ5KChmdW5jdGlvbihlKXtyZXR1cm4gci5pbnRlcnNlY3RzKGUsdCl9KSl9KSl9KSl9KSl9LHQudG9Db21wYXJhdG9ycz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgZGUoZSx0KS5zZXQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlfSkpLmpvaW4oIiAiKS50cmltKCkuc3BsaXQoIiAiKX0pKX0sZGUucHJvdG90eXBlLnRlc3Q9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuITE7InN0cmluZyI9PXR5cGVvZiBlJiYoZT1uZXcgWChlLHRoaXMub3B0aW9ucykpO2Zvcih2YXIgdD0wO3Q8dGhpcy5zZXQubGVuZ3RoO3QrKylpZihoZSh0aGlzLnNldFt0XSxlLHRoaXMub3B0aW9ucykpcmV0dXJuITA7cmV0dXJuITF9LHQuc2F0aXNmaWVzPWdlLHQubWF4U2F0aXNmeWluZz1mdW5jdGlvbihlLHQscil7dmFyIG49bnVsbCxvPW51bGw7dHJ5e3ZhciBpPW5ldyBkZSh0LHIpfWNhdGNoKGUpe3JldHVybiBudWxsfXJldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGUpe2kudGVzdChlKSYmKG4mJi0xIT09by5jb21wYXJlKGUpfHwobz1uZXcgWChuPWUscikpKX0pKSxufSx0Lm1pblNhdGlzZnlpbmc9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPW51bGwsbz1udWxsO3RyeXt2YXIgaT1uZXcgZGUodCxyKX1jYXRjaChlKXtyZXR1cm4gbnVsbH1yZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtpLnRlc3QoZSkmJihuJiYxIT09by5jb21wYXJlKGUpfHwobz1uZXcgWChuPWUscikpKX0pKSxufSx0Lm1pblZlcnNpb249ZnVuY3Rpb24oZSx0KXtlPW5ldyBkZShlLHQpO3ZhciByPW5ldyBYKCIwLjAuMCIpO2lmKGUudGVzdChyKSlyZXR1cm4gcjtpZihyPW5ldyBYKCIwLjAuMC0wIiksZS50ZXN0KHIpKXJldHVybiByO3I9bnVsbDtmb3IodmFyIG49MDtuPGUuc2V0Lmxlbmd0aDsrK24pZS5zZXRbbl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFgoZS5zZW12ZXIudmVyc2lvbik7c3dpdGNoKGUub3BlcmF0b3Ipe2Nhc2UiPiI6MD09PXQucHJlcmVsZWFzZS5sZW5ndGg/dC5wYXRjaCsrOnQucHJlcmVsZWFzZS5wdXNoKDApLHQucmF3PXQuZm9ybWF0KCk7Y2FzZSIiOmNhc2UiPj0iOnImJiFyZShyLHQpfHwocj10KTticmVhaztjYXNlIjwiOmNhc2UiPD0iOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIG9wZXJhdGlvbjogIitlLm9wZXJhdG9yKX19KSk7cmV0dXJuIHImJmUudGVzdChyKT9yOm51bGx9LHQudmFsaWRSYW5nZT1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm4gbmV3IGRlKGUsdCkucmFuZ2V8fCIqIn1jYXRjaChlKXtyZXR1cm4gbnVsbH19LHQubHRyPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4geWUoZSx0LCI8IixyKX0sdC5ndHI9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB5ZShlLHQsIj4iLHIpfSx0Lm91dHNpZGU9eWUsdC5wcmVyZWxlYXNlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9WShlLHQpO3JldHVybiByJiZyLnByZXJlbGVhc2UubGVuZ3RoP3IucHJlcmVsZWFzZTpudWxsfSx0LmludGVyc2VjdHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlPW5ldyBkZShlLHIpLHQ9bmV3IGRlKHQsciksZS5pbnRlcnNlY3RzKHQpfSx0LmNvZXJjZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgWClyZXR1cm4gZTtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuIG51bGw7dmFyIHQ9ZS5tYXRjaChzW19dKTtyZXR1cm4gbnVsbD09dD9udWxsOlkodFsxXSsiLiIrKHRbMl18fCIwIikrIi4iKyh0WzNdfHwiMCIpKX19LDg5NjY6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxuKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9dm9pZCAwO3ZhciBvPVplKHIoODQ2OSkpLGk9WmUocig3NTM2KSksYT1aZShyKDEzNTkpKSxzPVplKHIoNTU3KSksdT1aZShyKDIzMTUpKSxjPVplKHIoOTQ2NikpLGw9WmUocig2NjEpKSxkPVplKHIoMzg2OCkpLGY9WmUocigyNDkyKSkscD1aZShyKDg5OTkpKSxoPVplKHIoMTAyOCkpLGc9WmUocig3Nzk1KSkseT1aZShyKDIyMSkpLGI9WmUocigyNTQ5KSksdj1aZShyKDM0OTQpKSxtPVplKHIoOTQ5MykpLFQ9WmUocig3MzgwKSksdz1LZShyKDkyMzQpKSxBPUtlKHIoNDU4MykpLFA9WmUocig0OTg2KSksVz1aZShyKDE1MTMpKSxCPVplKHIoNDU5NSkpLEM9WmUocigzOTI4KSksRT1aZShyKDcyNDUpKSxNPVplKHIoNTU2NikpLGs9WmUocig0MDk0KSksST1aZShyKDcxNDYpKSxPPVplKHIoMjk0MSkpLHg9WmUocig5MDE5KSksUz1aZShyKDM1OTApKSxGPVplKHIoNjgyNikpLF89WmUocigyODI4KSksUj1aZShyKDkzNykpLE49S2Uocig5MTQ2KSksVT1aZShyKDUyMTgpKSxEPVplKHIoNzExNykpLEw9WmUocig2MDkwKSksaj1aZShyKDgzMzUpKSx6PVplKHIoNjI5OCkpLCQ9WmUocig2NDU0KSksVj1aZShyKDY2NDgpKSxHPVplKHIoNDMzOSkpLEg9S2Uocig4MTc3KSksSz1aZShyKDI0MzgpKSxaPVplKHIoMzY4KSkscT1aZShyKDg4NzQpKSxKPVplKHIoNDk3OSkpLFk9WmUocigxMDA4KSksWD1aZShyKDQwNjkpKSxRPVplKHIoNDk1OCkpLGVlPVplKHIoMzIzNSkpLHRlPVplKHIoNzI3OCkpLHJlPVplKHIoOTEzMSkpLG5lPVplKHIoMzMxNSkpLG9lPVplKHIoMTQ2NCkpLGllPVplKHIoNzIyOCkpLGFlPVplKHIoMTU5MikpLHNlPVplKHIoNjgyKSksdWU9WmUocig5Mzk2KSksY2U9WmUocig1ODA3KSksbGU9WmUocig3MTQ4KSksZGU9WmUocig3NjEyKSksZmU9WmUocig5ODg3KSkscGU9WmUocigzMDU4KSksaGU9S2Uocig4MzU1KSksZ2U9WmUocigyMTI5KSkseWU9WmUocig5NCkpLGJlPVplKHIoODAyMSkpLHZlPVplKHIoOTIxMSkpLG1lPVplKHIoNTA2MSkpLFRlPVplKHIoNDYxMSkpLHdlPVplKHIoMTcyNykpLEFlPVplKHIoNjc3NikpLFBlPVplKHIoOTk2MykpLFdlPVplKHIoMjc4MikpLEJlPVplKHIoNTAwOCkpLENlPVplKHIoMjY4OSkpLEVlPVplKHIoODk4MykpLE1lPVplKHIoMjc3NikpLGtlPVplKHIoNDU1NCkpLEllPVplKHIoNDc4KSksT2U9S2Uocig4MTQwKSkseGU9WmUocig0OTU5KSksU2U9WmUocig5Nzc4KSksRmU9WmUocig0NzkwKSksX2U9WmUocig1MTUyKSksUmU9WmUocig0ODE2KSksTmU9WmUocig4MDM1KSksVWU9WmUocig0NzE0KSksRGU9WmUocig0OTI4KSksTGU9WmUocig4MzQ2KSksamU9WmUocigyOTAwKSksemU9WmUocig4MjIwKSksJGU9WmUocigyNzg2KSksVmU9WmUocig3NjMzKSksR2U9WmUocig1OTc3KSk7ZnVuY3Rpb24gSGUoKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gSGU9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sZX1mdW5jdGlvbiBLZShlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fCJvYmplY3QiIT09bihlKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIHQ9SGUoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30sbz1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBpIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkpe3ZhciBhPW8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaSxhKTpyW2ldPWVbaV19cmV0dXJuIHIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscikscn1mdW5jdGlvbiBaZShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIHFlPXt2ZXJzaW9uOiIxMy45LjAiLHRvRGF0ZTpvLmRlZmF1bHQsdG9GbG9hdDppLmRlZmF1bHQsdG9JbnQ6YS5kZWZhdWx0LHRvQm9vbGVhbjpzLmRlZmF1bHQsZXF1YWxzOnUuZGVmYXVsdCxjb250YWluczpjLmRlZmF1bHQsbWF0Y2hlczpsLmRlZmF1bHQsaXNFbWFpbDpkLmRlZmF1bHQsaXNVUkw6Zi5kZWZhdWx0LGlzTUFDQWRkcmVzczpwLmRlZmF1bHQsaXNJUDpoLmRlZmF1bHQsaXNJUFJhbmdlOmcuZGVmYXVsdCxpc0ZRRE46eS5kZWZhdWx0LGlzQm9vbGVhbjptLmRlZmF1bHQsaXNJQkFOOkguZGVmYXVsdCxpc0JJQzpLLmRlZmF1bHQsaXNBbHBoYTp3LmRlZmF1bHQsaXNBbHBoYUxvY2FsZXM6dy5sb2NhbGVzLGlzQWxwaGFudW1lcmljOkEuZGVmYXVsdCxpc0FscGhhbnVtZXJpY0xvY2FsZXM6QS5sb2NhbGVzLGlzTnVtZXJpYzpQLmRlZmF1bHQsaXNQYXNzcG9ydE51bWJlcjpXLmRlZmF1bHQsaXNQb3J0OkIuZGVmYXVsdCxpc0xvd2VyY2FzZTpDLmRlZmF1bHQsaXNVcHBlcmNhc2U6RS5kZWZhdWx0LGlzQXNjaWk6ay5kZWZhdWx0LGlzRnVsbFdpZHRoOkkuZGVmYXVsdCxpc0hhbGZXaWR0aDpPLmRlZmF1bHQsaXNWYXJpYWJsZVdpZHRoOnguZGVmYXVsdCxpc011bHRpYnl0ZTpTLmRlZmF1bHQsaXNTZW1WZXI6Ri5kZWZhdWx0LGlzU3Vycm9nYXRlUGFpcjpfLmRlZmF1bHQsaXNJbnQ6Ui5kZWZhdWx0LGlzSU1FSTpNLmRlZmF1bHQsaXNGbG9hdDpOLmRlZmF1bHQsaXNGbG9hdExvY2FsZXM6Ti5sb2NhbGVzLGlzRGVjaW1hbDpVLmRlZmF1bHQsaXNIZXhhZGVjaW1hbDpELmRlZmF1bHQsaXNPY3RhbDpMLmRlZmF1bHQsaXNEaXZpc2libGVCeTpqLmRlZmF1bHQsaXNIZXhDb2xvcjp6LmRlZmF1bHQsaXNSZ2JDb2xvcjokLmRlZmF1bHQsaXNIU0w6Vi5kZWZhdWx0LGlzSVNSQzpHLmRlZmF1bHQsaXNNRDU6Wi5kZWZhdWx0LGlzSGFzaDpxLmRlZmF1bHQsaXNKV1Q6Si5kZWZhdWx0LGlzSlNPTjpZLmRlZmF1bHQsaXNFbXB0eTpYLmRlZmF1bHQsaXNMZW5ndGg6US5kZWZhdWx0LGlzTG9jYWxlOlQuZGVmYXVsdCxpc0J5dGVMZW5ndGg6ZWUuZGVmYXVsdCxpc1VVSUQ6dGUuZGVmYXVsdCxpc01vbmdvSWQ6cmUuZGVmYXVsdCxpc0FmdGVyOm5lLmRlZmF1bHQsaXNCZWZvcmU6b2UuZGVmYXVsdCxpc0luOmllLmRlZmF1bHQsaXNMdWhuTnVtYmVyOmFlLmRlZmF1bHQsaXNDcmVkaXRDYXJkOnNlLmRlZmF1bHQsaXNJZGVudGl0eUNhcmQ6dWUuZGVmYXVsdCxpc0VBTjpjZS5kZWZhdWx0LGlzSVNJTjpsZS5kZWZhdWx0LGlzSVNCTjpkZS5kZWZhdWx0LGlzSVNTTjpmZS5kZWZhdWx0LGlzTW9iaWxlUGhvbmU6aGUuZGVmYXVsdCxpc01vYmlsZVBob25lTG9jYWxlczpoZS5sb2NhbGVzLGlzUG9zdGFsQ29kZTpPZS5kZWZhdWx0LGlzUG9zdGFsQ29kZUxvY2FsZXM6T2UubG9jYWxlcyxpc0V0aGVyZXVtQWRkcmVzczpnZS5kZWZhdWx0LGlzQ3VycmVuY3k6eWUuZGVmYXVsdCxpc0J0Y0FkZHJlc3M6YmUuZGVmYXVsdCxpc0lTTzYzOTE6dmUuZGVmYXVsdCxpc0lTTzg2MDE6bWUuZGVmYXVsdCxpc1JGQzMzMzk6VGUuZGVmYXVsdCxpc0lTTzMxNjYxQWxwaGEyOndlLmRlZmF1bHQsaXNJU08zMTY2MUFscGhhMzpBZS5kZWZhdWx0LGlzSVNPNDIxNzpQZS5kZWZhdWx0LGlzQmFzZTMyOldlLmRlZmF1bHQsaXNCYXNlNTg6QmUuZGVmYXVsdCxpc0Jhc2U2NDpDZS5kZWZhdWx0LGlzRGF0YVVSSTpFZS5kZWZhdWx0LGlzTWFnbmV0VVJJOk1lLmRlZmF1bHQsaXNNaW1lVHlwZTprZS5kZWZhdWx0LGlzTGF0TG9uZzpJZS5kZWZhdWx0LGx0cmltOnhlLmRlZmF1bHQscnRyaW06U2UuZGVmYXVsdCx0cmltOkZlLmRlZmF1bHQsZXNjYXBlOl9lLmRlZmF1bHQsdW5lc2NhcGU6UmUuZGVmYXVsdCxzdHJpcExvdzpOZS5kZWZhdWx0LHdoaXRlbGlzdDpVZS5kZWZhdWx0LGJsYWNrbGlzdDpEZS5kZWZhdWx0LGlzV2hpdGVsaXN0ZWQ6TGUuZGVmYXVsdCxub3JtYWxpemVFbWFpbDpqZS5kZWZhdWx0LHRvU3RyaW5nLGlzU2x1Zzp6ZS5kZWZhdWx0LGlzU3Ryb25nUGFzc3dvcmQ6VmUuZGVmYXVsdCxpc1RheElEOnBlLmRlZmF1bHQsaXNEYXRlOmIuZGVmYXVsdCxpc1RpbWU6di5kZWZhdWx0LGlzTGljZW5zZVBsYXRlOiRlLmRlZmF1bHQsaXNWQVQ6R2UuZGVmYXVsdCxpYmFuTG9jYWxlczpILmxvY2FsZXN9O3QuZGVmYXVsdD1xZSxlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNzk6KGUsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuY29tbWFEZWNpbWFsPXQuZG90RGVjaW1hbD10LmJlbmdhbGlMb2NhbGVzPXQuZmFyc2lMb2NhbGVzPXQuYXJhYmljTG9jYWxlcz10LmVuZ2xpc2hMb2NhbGVzPXQuZGVjaW1hbD10LmFscGhhbnVtZXJpYz10LmFscGhhPXZvaWQgMDt2YXIgcj17ImVuLVVTIjovXltBLVpdKyQvaSwiYXotQVoiOi9eW0EtVlhZWsOHxo/EnsSwxLHDlsWew5xdKyQvaSwiYmctQkciOi9eW9CQLdCvXSskL2ksImNzLUNaIjovXltBLVrDgcSMxI7DicSaw43Fh8OTxZjFoMWkw5rFrsOdxb1dKyQvaSwiZGEtREsiOi9eW0EtWsOGw5jDhV0rJC9pLCJkZS1ERSI6L15bQS1aw4TDlsOcw59dKyQvaSwiZWwtR1IiOi9eW86RLc+OXSskL2ksImVzLUVTIjovXltBLVrDgcOJw43DkcOTw5rDnF0rJC9pLCJmYS1JUiI6L15b2KfYqNm+2KrYq9is2obYrdiu2K/YsNix2LLamNiz2LTYtdi22LfYuNi52LrZgdmC2qnar9mE2YXZhtmI2YfbjF0rJC9pLCJmaS1GSSI6L15bQS1aw4XDhMOWXSskL2ksImZyLUZSIjovXltBLVrDgMOCw4bDh8OJw4jDisOLw4/DjsOUxZLDmcObw5zFuF0rJC9pLCJpdC1JVCI6L15bQS1aw4DDicOIw4zDjsOTw5LDmV0rJC9pLCJqYS1KUCI6L15b44GBLeOCk+OCoS3jg7bvvaYt776f5LiALem+oOODvOODu+OAguOAgV0rJC9pLCJuYi1OTyI6L15bQS1aw4bDmMOFXSskL2ksIm5sLU5MIjovXltBLVrDgcOJw4vDj8OTw5bDnMOaXSskL2ksIm5uLU5PIjovXltBLVrDhsOYw4VdKyQvaSwiaHUtSFUiOi9eW0EtWsOBw4nDjcOTw5bFkMOaw5zFsF0rJC9pLCJwbC1QTCI6L15bQS1axITEhsSYxZrFgcWDw5PFu8W5XSskL2ksInB0LVBUIjovXltBLVrDg8OBw4DDgsOEw4fDicOKw4vDjcOPw5XDk8OUw5bDmsOcXSskL2ksInJ1LVJVIjovXlvQkC3Qr9CBXSskL2ksInNsLVNJIjovXltBLVrEjMSGxJDFoMW9XSskL2ksInNrLVNLIjovXltBLVrDgcSMxI7DicONxYfDk8WgxaTDmsOdxb3EucWUxL3DhMOUXSskL2ksInNyLVJTQGxhdGluIjovXltBLVrEjMSGxb3FoMSQXSskL2ksInNyLVJTIjovXlvQkC3Qr9CC0IjQidCK0IvQj10rJC9pLCJzdi1TRSI6L15bQS1aw4XDhMOWXSskL2ksInRoLVRIIjovXlvguIEt4LmQXHNdKyQvaSwidHItVFIiOi9eW0EtWsOHxJ7EsMSxw5bFnsOcXSskL2ksInVrLVVBIjovXlvQkC3QqdCs0K7Qr9CESdCH0pDRll0rJC9pLCJ2aS1WTiI6L15bQS1aw4DDgeG6oOG6osODw4LhuqbhuqThuqzhuqjhuqrEguG6sOG6ruG6tuG6suG6tMSQw4jDieG6uOG6uuG6vMOK4buA4bq+4buG4buC4buEw4zDjeG7iuG7iMSow5LDk+G7jOG7jsOVw5Thu5Lhu5Dhu5jhu5Thu5bGoOG7nOG7muG7ouG7nuG7oMOZw5rhu6Thu6bFqMav4buq4buo4buw4bus4buu4buyw53hu7Thu7bhu7hdKyQvaSwia28tS1IiOi9eW+OEsS3jhY7jhY8t44Wj6rCALe2eo10qJC8sImt1LUlRIjovXlvYptin2KjZvtiq2Kzahtit2K7Yr9ix2pXYstqY2LPYtNi52LrZgdqk2YLaqdqv2YTatdmF2YbZiNuG2r7blduM247Ziti32KTYq9ii2KXYo9mD2LbYtdip2LjYsF0rJC9pLGFyOi9eW9ih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22LfYuNi52LrZgdmC2YPZhNmF2YbZh9mI2YnZitmL2YzZjdmO2Y/ZkNmR2ZLZsF0rJC8saGU6L15b15At16pdKyQvLGZhOi9eWyfYotin2KHYo9ik2KbYqNm+2KrYq9is2obYrdiu2K/YsNix2LLamNiz2LTYtdi22LfYuNi52LrZgdmC2qnar9mE2YXZhtmI2YfYqduMJ10rJC9pLGJuOi9eWyfgpoDgpoHgpoLgpoPgpoXgpobgpofgpojgpongporgpovgpozgpo/gppDgppPgppTgppXgppbgppfgppjgppngpprgppvgppzgpp3gpp7gpp/gpqDgpqHgpqLgpqPgpqTgpqXgpqbgpqfgpqjgpqrgpqvgpqzgpq3gpq7gpq/gprDgprLgprbgprfgprjgprngprzgpr3gpr7gpr/gp4Dgp4Hgp4Lgp4Pgp4Tgp4fgp4jgp4vgp4zgp43gp47gp5fgp5zgp53gp5/gp6Dgp6Hgp6Lgp6Pgp7Dgp7Hgp7Lgp7Pgp7Tgp7Xgp7bgp7fgp7jgp7ngp7rgp7snXSskLywiaGktSU4iOi9eW1x1MDkwMC1cdTA5NjFdK1tcdTA5NzItXHUwOTdGXSokL2ksInNpLUxLIjovXltcdTBEODAtXHUwREZGXSskL307dC5hbHBoYT1yO3ZhciBuPXsiZW4tVVMiOi9eWzAtOUEtWl0rJC9pLCJhei1BWiI6L15bMC05QS1WWFlaw4fGj8SexLDEscOWxZ7DnF0rJC9pLCJiZy1CRyI6L15bMC050JAt0K9dKyQvaSwiY3MtQ1oiOi9eWzAtOUEtWsOBxIzEjsOJxJrDjcWHw5PFmMWgxaTDmsWuw53FvV0rJC9pLCJkYS1ESyI6L15bMC05QS1aw4bDmMOFXSskL2ksImRlLURFIjovXlswLTlBLVrDhMOWw5zDn10rJC9pLCJlbC1HUiI6L15bMC05zpEtz4ldKyQvaSwiZXMtRVMiOi9eWzAtOUEtWsOBw4nDjcORw5PDmsOcXSskL2ksImZpLUZJIjovXlswLTlBLVrDhcOEw5ZdKyQvaSwiZnItRlIiOi9eWzAtOUEtWsOAw4LDhsOHw4nDiMOKw4vDj8OOw5TFksOZw5vDnMW4XSskL2ksIml0LUlUIjovXlswLTlBLVrDgMOJw4jDjMOOw5PDksOZXSskL2ksImphLUpQIjovXlswLTnvvJAt77yZ44GBLeOCk+OCoS3jg7bvvaYt776f5LiALem+oOODvOODu+OAguOAgV0rJC9pLCJodS1IVSI6L15bMC05QS1aw4HDicONw5PDlsWQw5rDnMWwXSskL2ksIm5iLU5PIjovXlswLTlBLVrDhsOYw4VdKyQvaSwibmwtTkwiOi9eWzAtOUEtWsOBw4nDi8OPw5PDlsOcw5pdKyQvaSwibm4tTk8iOi9eWzAtOUEtWsOGw5jDhV0rJC9pLCJwbC1QTCI6L15bMC05QS1axITEhsSYxZrFgcWDw5PFu8W5XSskL2ksInB0LVBUIjovXlswLTlBLVrDg8OBw4DDgsOEw4fDicOKw4vDjcOPw5XDk8OUw5bDmsOcXSskL2ksInJ1LVJVIjovXlswLTnQkC3Qr9CBXSskL2ksInNsLVNJIjovXlswLTlBLVrEjMSGxJDFoMW9XSskL2ksInNrLVNLIjovXlswLTlBLVrDgcSMxI7DicONxYfDk8WgxaTDmsOdxb3EucWUxL3DhMOUXSskL2ksInNyLVJTQGxhdGluIjovXlswLTlBLVrEjMSGxb3FoMSQXSskL2ksInNyLVJTIjovXlswLTnQkC3Qr9CC0IjQidCK0IvQj10rJC9pLCJzdi1TRSI6L15bMC05QS1aw4XDhMOWXSskL2ksInRoLVRIIjovXlvguIEt4LmZXHNdKyQvaSwidHItVFIiOi9eWzAtOUEtWsOHxJ7EsMSxw5bFnsOcXSskL2ksInVrLVVBIjovXlswLTnQkC3QqdCs0K7Qr9CESdCH0pDRll0rJC9pLCJrby1LUiI6L15bMC0544SxLeOFjuOFjy3jhaPqsIAt7Z6jXSokLywia3UtSVEiOi9eW9mg2aHZotmj2aTZpdmm2afZqNmpMC052KbYp9io2b7Yqtis2obYrdiu2K/YsdqV2LLamNiz2LTYudi62YHapNmC2qnar9mE2rXZhdmG2Yjbhtq+25XbjNuO2YrYt9ik2KvYotil2KPZg9i22LXYqdi42LBdKyQvaSwidmktVk4iOi9eWzAtOUEtWsOAw4HhuqDhuqLDg8OC4bqm4bqk4bqs4bqo4bqqxILhurDhuq7hurbhurLhurTEkMOIw4nhurjhurrhurzDiuG7gOG6vuG7huG7guG7hMOMw43hu4rhu4jEqMOSw5Phu4zhu47DlcOU4buS4buQ4buY4buU4buWxqDhu5zhu5rhu6Lhu57hu6DDmcOa4buk4bumxajGr+G7quG7qOG7sOG7rOG7ruG7ssOd4bu04bu24bu4XSskL2ksYXI6L15b2aDZodmi2aPZpNml2abZp9mo2akwLTnYodii2KPYpNil2KbYp9io2KnYqtir2KzYrdiu2K/YsNix2LLYs9i02LXYtti32LjYudi62YHZgtmD2YTZhdmG2YfZiNmJ2YrZi9mM2Y3ZjtmP2ZDZkdmS2bBdKyQvLGhlOi9eWzAtOdeQLdeqXSskLyxmYTovXlsnMC052KLYp9ih2KPYpNim2KjZvtiq2KvYrNqG2K3Yrtiv2LDYsdiy2pjYs9i02LXYtti32LjYudi62YHZgtqp2q/ZhNmF2YbZiNmH2KnbjNux27Lbs9u027Xbttu327jbuduwJ10rJC9pLGJuOi9eWyfgpoDgpoHgpoLgpoPgpoXgpobgpofgpojgpongporgpovgpozgpo/gppDgppPgppTgppXgppbgppfgppjgppngpprgppvgppzgpp3gpp7gpp/gpqDgpqHgpqLgpqPgpqTgpqXgpqbgpqfgpqjgpqrgpqvgpqzgpq3gpq7gpq/gprDgprLgprbgprfgprjgprngprzgpr3gpr7gpr/gp4Dgp4Hgp4Lgp4Pgp4Tgp4fgp4jgp4vgp4zgp43gp47gp5fgp5zgp53gp5/gp6Dgp6Hgp6Lgp6Pgp6bgp6fgp6jgp6ngp6rgp6vgp6zgp63gp67gp6/gp7Dgp7Hgp7Lgp7Pgp7Tgp7Xgp7bgp7fgp7jgp7ngp7rgp7snXSskLywiaGktSU4iOi9eW1x1MDkwMC1cdTA5NjNdK1tcdTA5NjYtXHUwOTdGXSokL2ksInNpLUxLIjovXlswLTlcdTBEODAtXHUwREZGXSskL307dC5hbHBoYW51bWVyaWM9bjt2YXIgbz17ImVuLVVTIjoiLiIsYXI6ItmrIn07dC5kZWNpbWFsPW87dmFyIGk9WyJBVSIsIkdCIiwiSEsiLCJJTiIsIk5aIiwiWkEiLCJaTSJdO3QuZW5nbGlzaExvY2FsZXM9aTtmb3IodmFyIGEscz0wO3M8aS5sZW5ndGg7cysrKXJbYT0iZW4tIi5jb25jYXQoaVtzXSldPXJbImVuLVVTIl0sblthXT1uWyJlbi1VUyJdLG9bYV09b1siZW4tVVMiXTt2YXIgdT1bIkFFIiwiQkgiLCJEWiIsIkVHIiwiSVEiLCJKTyIsIktXIiwiTEIiLCJMWSIsIk1BIiwiUU0iLCJRQSIsIlNBIiwiU0QiLCJTWSIsIlROIiwiWUUiXTt0LmFyYWJpY0xvY2FsZXM9dTtmb3IodmFyIGMsbD0wO2w8dS5sZW5ndGg7bCsrKXJbYz0iYXItIi5jb25jYXQodVtsXSldPXIuYXIsbltjXT1uLmFyLG9bY109by5hcjt2YXIgZD1bIklSIiwiQUYiXTt0LmZhcnNpTG9jYWxlcz1kO2Zvcih2YXIgZixwPTA7cDxkLmxlbmd0aDtwKyspbltmPSJmYS0iLmNvbmNhdChkW3BdKV09bi5mYSxvW2ZdPW8uYXI7dmFyIGg9WyJCRCIsIklOIl07dC5iZW5nYWxpTG9jYWxlcz1oO2Zvcih2YXIgZyx5PTA7eTxoLmxlbmd0aDt5KyspcltnPSJibi0iLmNvbmNhdChoW3ldKV09ci5ibixuW2ddPW4uYm4sb1tnXT1vWyJlbi1VUyJdO3ZhciBiPVsiYXItRUciLCJhci1MQiIsImFyLUxZIl07dC5kb3REZWNpbWFsPWI7dmFyIHY9WyJiZy1CRyIsImNzLUNaIiwiZGEtREsiLCJkZS1ERSIsImVsLUdSIiwiZW4tWk0iLCJlcy1FUyIsImZyLUNBIiwiZnItRlIiLCJpZC1JRCIsIml0LUlUIiwia3UtSVEiLCJoaS1JTiIsImh1LUhVIiwibmItTk8iLCJubi1OTyIsIm5sLU5MIiwicGwtUEwiLCJwdC1QVCIsInJ1LVJVIiwic2ktTEsiLCJzbC1TSSIsInNyLVJTQGxhdGluIiwic3ItUlMiLCJzdi1TRSIsInRyLVRSIiwidWstVUEiLCJ2aS1WTiJdO3QuY29tbWFEZWNpbWFsPXY7Zm9yKHZhciBtPTA7bTxiLmxlbmd0aDttKyspb1tiW21dXT1vWyJlbi1VUyJdO2Zvcih2YXIgVD0wO1Q8di5sZW5ndGg7VCsrKW9bdltUXV09IiwiO3JbImZyLUNBIl09clsiZnItRlIiXSxuWyJmci1DQSJdPW5bImZyLUZSIl0sclsicHQtQlIiXT1yWyJwdC1QVCJdLG5bInB0LUJSIl09blsicHQtUFQiXSxvWyJwdC1CUiJdPW9bInB0LVBUIl0sclsicGwtUGwiXT1yWyJwbC1QTCJdLG5bInBsLVBsIl09blsicGwtUEwiXSxvWyJwbC1QbCJdPW9bInBsLVBMIl0sclsiZmEtQUYiXT1yLmZhfSw0OTI4OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3JldHVybigwLG8uZGVmYXVsdCkoZSksZS5yZXBsYWNlKG5ldyBSZWdFeHAoIlsiLmNvbmNhdCh0LCJdKyIpLCJnIiksIiIpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sOTQ2NjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0LHIpe3JldHVybigwLG4uZGVmYXVsdCkoZSksKHI9KDAsaS5kZWZhdWx0KShyLHMpKS5pZ25vcmVDYXNlP2UudG9Mb3dlckNhc2UoKS5zcGxpdCgoMCxvLmRlZmF1bHQpKHQpLnRvTG93ZXJDYXNlKCkpLmxlbmd0aD5yLm1pbk9jY3VycmVuY2VzOmUuc3BsaXQoKDAsby5kZWZhdWx0KSh0KSkubGVuZ3RoPnIubWluT2NjdXJyZW5jZXN9O3ZhciBuPWEocig1NTcxKSksbz1hKHIoMTkxMykpLGk9YShyKDQ4MDgpKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgcz17aWdub3JlQ2FzZTohMSxtaW5PY2N1cnJlbmNlczoxfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjMxNTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGU9PT10fTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNTE1MjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxlLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiN4Mjc7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvXC8vZywiJiN4MkY7IikucmVwbGFjZSgvXFwvZywiJiN4NUM7IikucmVwbGFjZSgvYC9nLCImIzk2OyIpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMzMxNTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj0obnVsbD09dD92b2lkIDA6dC5jb21wYXJpc29uRGF0ZSl8fHR8fERhdGUoKS50b1N0cmluZygpLG49KDAsby5kZWZhdWx0KShyKSxpPSgwLG8uZGVmYXVsdCkoZSk7cmV0dXJuISEoaSYmbiYmaT5uKX07dmFyIG4sbz0obj1yKDg0NjkpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDkyMzQ6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiZW4tVVMiLHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9OygwLG8uZGVmYXVsdCkoZSk7dmFyIG49ZSxhPXIuaWdub3JlO2lmKGEpaWYoYSBpbnN0YW5jZW9mIFJlZ0V4cCluPW4ucmVwbGFjZShhLCIiKTtlbHNle2lmKCJzdHJpbmciIT10eXBlb2YgYSl0aHJvdyBuZXcgRXJyb3IoImlnbm9yZSBzaG91bGQgYmUgaW5zdGFuY2Ugb2YgYSBTdHJpbmcgb3IgUmVnRXhwIik7bj1uLnJlcGxhY2UobmV3IFJlZ0V4cCgiWyIuY29uY2F0KGEucmVwbGFjZSgvWy1bXF17fSgpKis/LixcXF4kfCNcXHNdL2csIlxcJCYiKSwiXSIpLCJnIiksIiIpfWlmKHQgaW4gaS5hbHBoYSlyZXR1cm4gaS5hbHBoYVt0XS50ZXN0KG4pO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBsb2NhbGUgJyIuY29uY2F0KHQsIiciKSl9LHQubG9jYWxlcz12b2lkIDA7dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT1yKDc5KSxhPU9iamVjdC5rZXlzKGkuYWxwaGEpO3QubG9jYWxlcz1hfSw0NTgzOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ImVuLVVTIixyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTsoMCxvLmRlZmF1bHQpKGUpO3ZhciBuPWUsYT1yLmlnbm9yZTtpZihhKWlmKGEgaW5zdGFuY2VvZiBSZWdFeHApbj1uLnJlcGxhY2UoYSwiIik7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKCJpZ25vcmUgc2hvdWxkIGJlIGluc3RhbmNlIG9mIGEgU3RyaW5nIG9yIFJlZ0V4cCIpO249bi5yZXBsYWNlKG5ldyBSZWdFeHAoIlsiLmNvbmNhdChhLnJlcGxhY2UoL1stW1xde30oKSorPy4sXFxeJHwjXFxzXS9nLCJcXCQmIiksIl0iKSwiZyIpLCIiKX1pZih0IGluIGkuYWxwaGFudW1lcmljKXJldHVybiBpLmFscGhhbnVtZXJpY1t0XS50ZXN0KG4pO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBsb2NhbGUgJyIuY29uY2F0KHQsIiciKSl9LHQubG9jYWxlcz12b2lkIDA7dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT1yKDc5KSxhPU9iamVjdC5rZXlzKGkuYWxwaGFudW1lcmljKTt0LmxvY2FsZXM9YX0sNDA5NDooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bXHgwMC1ceDdGXSskLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjQzODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7KDAsby5kZWZhdWx0KShlKTt2YXIgdD1lLnNsaWNlKDQsNikudG9VcHBlckNhc2UoKTtyZXR1cm4hKCFpLkNvdW50cnlDb2Rlcy5oYXModCkmJiJYSyIhPT10KSYmYS50ZXN0KGUpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPXIoMTcyNyksYT0vXltBLVphLXpdezZ9W0EtWmEtejAtOV17Mn0oW0EtWmEtejAtOV17M30pPyQvO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwyNzgyOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3JldHVybigwLG4uZGVmYXVsdCkoZSksKHQ9KDAsby5kZWZhdWx0KSh0LHUpKS5jcm9ja2ZvcmQ/cy50ZXN0KGUpOiEoZS5sZW5ndGglOCE9MHx8IWEudGVzdChlKSl9O3ZhciBuPWkocig1NTcxKSksbz1pKHIoNDgwOCkpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBhPS9eW0EtWjItN10rPSokLyxzPS9eW0EtSEpLTU5QLVRWLVowLTldKyQvLHU9e2Nyb2NrZm9yZDohMX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDUwMDg6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksISFpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bQS1ISi1OUC1aYS1rbS16MS05XSokLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjY4OTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxuLmRlZmF1bHQpKGUpLHQ9KDAsby5kZWZhdWx0KSh0LHUpO3ZhciByPWUubGVuZ3RoO2lmKHQudXJsU2FmZSlyZXR1cm4gcy50ZXN0KGUpO2lmKHIlNCE9MHx8YS50ZXN0KGUpKXJldHVybiExO3ZhciBpPWUuaW5kZXhPZigiPSIpO3JldHVybi0xPT09aXx8aT09PXItMXx8aT09PXItMiYmIj0iPT09ZVtyLTFdfTt2YXIgbj1pKHIoNTU3MSkpLG89aShyKDQ4MDgpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgYT0vW15BLVowLTkrXC89XS9pLHM9L15bQS1aMC05X1wtXSokL2ksdT17dXJsU2FmZTohMX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDE0NjQ6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpTdHJpbmcobmV3IERhdGUpOygwLG4uZGVmYXVsdCkoZSk7dmFyIHI9KDAsby5kZWZhdWx0KSh0KSxpPSgwLG8uZGVmYXVsdCkoZSk7cmV0dXJuISEoaSYmciYmaTxyKX07dmFyIG49aShyKDU1NzEpKSxvPWkocig4NDY5KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDk0OTM6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTppO3JldHVybigwLG8uZGVmYXVsdCkoZSksdC5sb29zZT9zLmluY2x1ZGVzKGUudG9Mb3dlckNhc2UoKSk6YS5pbmNsdWRlcyhlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT17bG9vc2U6ITF9LGE9WyJ0cnVlIiwiZmFsc2UiLCIxIiwiMCJdLHM9W10uY29uY2F0KGEsWyJ5ZXMiLCJubyJdKTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODAyMTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl8fGEudGVzdChlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vXihiYzEpW2EtejAtOV17MjUsMzl9JC8sYT0vXigxfDMpW0EtSEotTlAtWmEta20tejEtOV17MjUsMzl9JC87ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDMyMzU6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dmFyIHIsbjsoMCxvLmRlZmF1bHQpKGUpLCJvYmplY3QiPT09aSh0KT8ocj10Lm1pbnx8MCxuPXQubWF4KToocj1hcmd1bWVudHNbMV0sbj1hcmd1bWVudHNbMl0pO3ZhciBhPWVuY29kZVVSSShlKS5zcGxpdCgvJS4ufC4vKS5sZW5ndGgtMTtyZXR1cm4gYT49ciYmKHZvaWQgMD09PW58fGE8PW4pfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtmdW5jdGlvbiBpKGUpe3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxpKGUpfWUuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw2ODI6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTsoMCxuLmRlZmF1bHQpKGUpO3ZhciByPXQucHJvdmlkZXIsaT1lLnJlcGxhY2UoL1stIF0rL2csIiIpO2lmKHImJnIudG9Mb3dlckNhc2UoKWluIGEpe2lmKCFhW3IudG9Mb3dlckNhc2UoKV0udGVzdChpKSlyZXR1cm4hMX1lbHNle2lmKHImJiEoci50b0xvd2VyQ2FzZSgpaW4gYSkpdGhyb3cgbmV3IEVycm9yKCIiLmNvbmNhdChyLCIgaXMgbm90IGEgdmFsaWQgY3JlZGl0IGNhcmQgcHJvdmlkZXIuIikpO2lmKCFzLnRlc3QoaSkpcmV0dXJuITF9cmV0dXJuKDAsby5kZWZhdWx0KShlKX07dmFyIG49aShyKDU1NzEpKSxvPWkocigxNTkyKSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIGE9e2FtZXg6L14zWzQ3XVswLTldezEzfSQvLGRpbmVyc2NsdWI6L14zKD86MFswLTVdfFs2OF1bMC05XSlbMC05XXsxMX0kLyxkaXNjb3ZlcjovXjYoPzowMTF8NVswLTldWzAtOV0pWzAtOV17MTIsMTV9JC8samNiOi9eKD86MjEzMXwxODAwfDM1XGR7M30pXGR7MTF9JC8sbWFzdGVyY2FyZDovXjVbMS01XVswLTldezJ9fCgyMjJbMS05XXwyMlszLTldWzAtOV18MlszLTZdWzAtOV17Mn18MjdbMDFdWzAtOV18MjcyMClbMC05XXsxMn0kLyx1bmlvbnBheTovXig2WzI3XVswLTldezE0fXxeKDgxWzAtOV17MTQsMTd9KSkkLyx2aXNhOi9eKD86NFswLTldezEyfSkoPzpbMC05XXszLDZ9KT8kL30scz0vXig/OjRbMC05XXsxMn0oPzpbMC05XXszLDZ9KT98NVsxLTVdWzAtOV17MTR9fCgyMjJbMS05XXwyMlszLTldWzAtOV18MlszLTZdWzAtOV17Mn18MjdbMDFdWzAtOV18MjcyMClbMC05XXsxMn18Nig/OjAxMXw1WzAtOV1bMC05XSlbMC05XXsxMiwxNX18M1s0N11bMC05XXsxM318Myg/OjBbMC01XXxbNjhdWzAtOV0pWzAtOV17MTF9fCg/OjIxMzF8MTgwMHwzNVxkezN9KVxkezExfXw2WzI3XVswLTldezE0fXxeKDgxWzAtOV17MTQsMTd9KSkkLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sOTQ6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxmdW5jdGlvbihlKXt2YXIgdD0iXFxkeyIuY29uY2F0KGUuZGlnaXRzX2FmdGVyX2RlY2ltYWxbMF0sIn0iKTtlLmRpZ2l0c19hZnRlcl9kZWNpbWFsLmZvckVhY2goKGZ1bmN0aW9uKGUscil7MCE9PXImJih0PSIiLmNvbmNhdCh0LCJ8XFxkeyIpLmNvbmNhdChlLCJ9IikpfSkpO3ZhciByPSIoIi5jb25jYXQoZS5zeW1ib2wucmVwbGFjZSgvXFcvLChmdW5jdGlvbihlKXtyZXR1cm4iXFwiLmNvbmNhdChlKX0pKSwiKSIpLmNvbmNhdChlLnJlcXVpcmVfc3ltYm9sPyIiOiI/Iiksbj0iLT8iLG89IlsxLTldXFxkezAsMn0oXFwiLmNvbmNhdChlLnRob3VzYW5kc19zZXBhcmF0b3IsIlxcZHszfSkqIiksaT0iKCIuY29uY2F0KFsiMCIsIlsxLTldXFxkKiIsb10uam9pbigifCIpLCIpPyIpLGE9IihcXCIuY29uY2F0KGUuZGVjaW1hbF9zZXBhcmF0b3IsIigiKS5jb25jYXQodCwiKSkiKS5jb25jYXQoZS5yZXF1aXJlX2RlY2ltYWw/IiI6Ij8iKSxzPWkrKGUuYWxsb3dfZGVjaW1hbHx8ZS5yZXF1aXJlX2RlY2ltYWw/YToiIik7cmV0dXJuIGUuYWxsb3dfbmVnYXRpdmVzJiYhZS5wYXJlbnNfZm9yX25lZ2F0aXZlcyYmKGUubmVnYXRpdmVfc2lnbl9hZnRlcl9kaWdpdHM/cys9bjplLm5lZ2F0aXZlX3NpZ25fYmVmb3JlX2RpZ2l0cyYmKHM9bitzKSksZS5hbGxvd19uZWdhdGl2ZV9zaWduX3BsYWNlaG9sZGVyP3M9IiggKD8hXFwtKSk/Ii5jb25jYXQocyk6ZS5hbGxvd19zcGFjZV9hZnRlcl9zeW1ib2w/cz0iID8iLmNvbmNhdChzKTplLmFsbG93X3NwYWNlX2FmdGVyX2RpZ2l0cyYmKHMrPSIoICg/ISQpKT8iKSxlLnN5bWJvbF9hZnRlcl9kaWdpdHM/cys9cjpzPXIrcyxlLmFsbG93X25lZ2F0aXZlcyYmKGUucGFyZW5zX2Zvcl9uZWdhdGl2ZXM/cz0iKFxcKCIuY29uY2F0KHMsIlxcKXwiKS5jb25jYXQocywiKSIpOmUubmVnYXRpdmVfc2lnbl9iZWZvcmVfZGlnaXRzfHxlLm5lZ2F0aXZlX3NpZ25fYWZ0ZXJfZGlnaXRzfHwocz1uK3MpKSxuZXcgUmVnRXhwKCJeKD8hLT8gKSg/PS4qXFxkKSIuY29uY2F0KHMsIiQiKSl9KHQ9KDAsbi5kZWZhdWx0KSh0LGEpKS50ZXN0KGUpfTt2YXIgbj1pKHIoNDgwOCkpLG89aShyKDU1NzEpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgYT17c3ltYm9sOiIkIixyZXF1aXJlX3N5bWJvbDohMSxhbGxvd19zcGFjZV9hZnRlcl9zeW1ib2w6ITEsc3ltYm9sX2FmdGVyX2RpZ2l0czohMSxhbGxvd19uZWdhdGl2ZXM6ITAscGFyZW5zX2Zvcl9uZWdhdGl2ZXM6ITEsbmVnYXRpdmVfc2lnbl9iZWZvcmVfZGlnaXRzOiExLG5lZ2F0aXZlX3NpZ25fYWZ0ZXJfZGlnaXRzOiExLGFsbG93X25lZ2F0aXZlX3NpZ25fcGxhY2Vob2xkZXI6ITEsdGhvdXNhbmRzX3NlcGFyYXRvcjoiLCIsZGVjaW1hbF9zZXBhcmF0b3I6Ii4iLGFsbG93X2RlY2ltYWw6ITAscmVxdWlyZV9kZWNpbWFsOiExLGRpZ2l0c19hZnRlcl9kZWNpbWFsOlsyXSxhbGxvd19zcGFjZV9hZnRlcl9kaWdpdHM6ITF9O2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw4OTgzOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXsoMCxvLmRlZmF1bHQpKGUpO3ZhciB0PWUuc3BsaXQoIiwiKTtpZih0Lmxlbmd0aDwyKXJldHVybiExO3ZhciByPXQuc2hpZnQoKS50cmltKCkuc3BsaXQoIjsiKSxuPXIuc2hpZnQoKTtpZigiZGF0YToiIT09bi5zbGljZSgwLDUpKXJldHVybiExO3ZhciB1PW4uc2xpY2UoNSk7aWYoIiIhPT11JiYhaS50ZXN0KHUpKXJldHVybiExO2Zvcih2YXIgYz0wO2M8ci5sZW5ndGg7YysrKWlmKChjIT09ci5sZW5ndGgtMXx8ImJhc2U2NCIhPT1yW2NdLnRvTG93ZXJDYXNlKCkpJiYhYS50ZXN0KHJbY10pKXJldHVybiExO2Zvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCsrKWlmKCFzLnRlc3QodFtsXSkpcmV0dXJuITE7cmV0dXJuITB9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bYS16XStcL1thLXowLTlcLVwrXC5fXSskL2ksYT0vXlthLXpcLV0rPVthLXowLTlcLV0rJC9pLHM9L15bYS16MC05IVwkJidcKFwpXCpcKyw7PVwtXC5ffjpAXC9cPyVcc10qJC9pO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwyNTQ5OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKHQ9InN0cmluZyI9PXR5cGVvZiB0PygwLG8uZGVmYXVsdCkoe2Zvcm1hdDp0fSxzKTooMCxvLmRlZmF1bHQpKHQscyksInN0cmluZyI9PXR5cGVvZiBlJiYoZz10LmZvcm1hdCwvKF4oeXs0fXx5ezJ9KVsuXC8tXShtezEsMn0pWy5cLy1dKGR7MSwyfSkkKXwoXihtezEsMn0pWy5cLy1dKGR7MSwyfSlbLlwvLV0oKHl7NH18eXsyfSkkKSl8KF4oZHsxLDJ9KVsuXC8tXShtezEsMn0pWy5cLy1dKCh5ezR9fHl7Mn0pJCkpL2dpLnRlc3QoZykpKXt2YXIgcixuPXQuZGVsaW1pdGVycy5maW5kKChmdW5jdGlvbihlKXtyZXR1cm4tMSE9PXQuZm9ybWF0LmluZGV4T2YoZSl9KSksYT10LnN0cmljdE1vZGU/bjp0LmRlbGltaXRlcnMuZmluZCgoZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1lLmluZGV4T2YodCl9KSksdT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxuPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKSxvPTA7bzxuO28rKylyLnB1c2goW2Vbb10sdFtvXV0pO3JldHVybiByfShlLnNwbGl0KGEpLHQuZm9ybWF0LnRvTG93ZXJDYXNlKCkuc3BsaXQobikpLGM9e30sbD1mdW5jdGlvbihlLHQpe3ZhciByO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgU3ltYm9sfHxudWxsPT1lW1N5bWJvbC5pdGVyYXRvcl0pe2lmKEFycmF5LmlzQXJyYXkoZSl8fChyPWkoZSkpKXtyJiYoZT1yKTt2YXIgbj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiBuPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtuKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgYSxzPSEwLHU9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPWVbU3ltYm9sLml0ZXJhdG9yXSgpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIHM9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7dT0hMCxhPWV9LGY6ZnVuY3Rpb24oKXt0cnl7c3x8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZih1KXRocm93IGF9fX19KHUpO3RyeXtmb3IobC5zKCk7IShyPWwubigpKS5kb25lOyl7dmFyIGQ9KGg9ci52YWx1ZSwyLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGgpfHxmdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXt2YXIgcj1bXSxuPSEwLG89ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgYSxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oYT1zLm5leHQoKSkuZG9uZSkmJihyLnB1c2goYS52YWx1ZSksMiE9PXIubGVuZ3RoKTtuPSEwKTt9Y2F0Y2goZSl7bz0hMCxpPWV9ZmluYWxseXt0cnl7bnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGl9fXJldHVybiByfX0oaCl8fGkoaCwyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpKSxmPWRbMF0scD1kWzFdO2lmKGYubGVuZ3RoIT09cC5sZW5ndGgpcmV0dXJuITE7Y1twLmNoYXJBdCgwKV09Zn19Y2F0Y2goZSl7bC5lKGUpfWZpbmFsbHl7bC5mKCl9cmV0dXJuIG5ldyBEYXRlKCIiLmNvbmNhdChjLm0sIi8iKS5jb25jYXQoYy5kLCIvIikuY29uY2F0KGMueSkpLmdldERhdGUoKT09PStjLmR9dmFyIGgsZztyZXR1cm4hdC5zdHJpY3RNb2RlJiYoIltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpJiZpc0Zpbml0ZShlKSl9O3ZhciBuLG89KG49cig0ODA4KSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59O2Z1bmN0aW9uIGkoZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGEoZSx0KTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1yJiZlLmNvbnN0cnVjdG9yJiYocj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09cnx8IlNldCI9PT1yP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKT9hKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBhKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkodCk7cjx0O3IrKyluW3JdPWVbcl07cmV0dXJuIG59dmFyIHM9e2Zvcm1hdDoiWVlZWS9NTS9ERCIsZGVsaW1pdGVyczpbIi8iLCItIl0sc3RyaWN0TW9kZTohMX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDUyMTg6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7aWYoKDAsby5kZWZhdWx0KShlKSwodD0oMCxuLmRlZmF1bHQpKHQsdSkpLmxvY2FsZSBpbiBhLmRlY2ltYWwpcmV0dXJuISgwLGkuZGVmYXVsdCkoYyxlLnJlcGxhY2UoLyAvZywiIikpJiZmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFJlZ0V4cCgiXlstK10/KFswLTldKyk/KFxcIi5jb25jYXQoYS5kZWNpbWFsW2UubG9jYWxlXSwiWzAtOV17IikuY29uY2F0KGUuZGVjaW1hbF9kaWdpdHMsIn0pIikuY29uY2F0KGUuZm9yY2VfZGVjaW1hbD8iIjoiPyIsIiQiKSl9KHQpLnRlc3QoZSk7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxvY2FsZSAnIi5jb25jYXQodC5sb2NhbGUsIiciKSl9O3ZhciBuPXMocig0ODA4KSksbz1zKHIoNTU3MSkpLGk9cyhyKDgzNDMpKSxhPXIoNzkpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciB1PXtmb3JjZV9kZWNpbWFsOiExLGRlY2ltYWxfZGlnaXRzOiIxLCIsbG9jYWxlOiJlbi1VUyJ9LGM9WyIiLCItIiwiKyJdO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw4MzM1OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3JldHVybigwLG4uZGVmYXVsdCkoZSksKDAsby5kZWZhdWx0KShlKSVwYXJzZUludCh0LDEwKT09MH07dmFyIG49aShyKDU1NzEpKSxvPWkocig3NTM2KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDU4MDc6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpeygwLG8uZGVmYXVsdCkoZSk7dmFyIHQscixuPU51bWJlcihlLnNsaWNlKC0xKSk7cmV0dXJuIHMudGVzdChlKSYmbj09PSgocj0xMC0odD1lKS5zbGljZSgwLC0xKS5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlLHIpe3JldHVybiBOdW1iZXIoZSkqZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PWl8fGU9PT1hP3QlMj09MD8zOjE6dCUyPT0wPzE6M30odC5sZW5ndGgscil9KSkucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBlK3R9KSwwKSUxMCk8MTA/cjowKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT04LGE9MTQscz0vXihcZHs4fXxcZHsxM318XGR7MTR9KSQvO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwzODY4OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKCgwLG4uZGVmYXVsdCkoZSksKHQ9KDAsby5kZWZhdWx0KSh0LGMpKS5yZXF1aXJlX2Rpc3BsYXlfbmFtZXx8dC5hbGxvd19kaXNwbGF5X25hbWUpe3ZhciByPWUubWF0Y2gobCk7aWYocil7dmFyIHU9clsxXTtpZihlPWUucmVwbGFjZSh1LCIiKS5yZXBsYWNlKC8oXjx8PiQpL2csIiIpLHUuZW5kc1dpdGgoIiAiKSYmKHU9dS5zbGljZSgwLC0xKSksIWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSgvXiIoLispIiQvLCIkMSIpO2lmKCF0LnRyaW0oKSlyZXR1cm4hMTtpZigvW1wuIjs8Pl0vLnRlc3QodCkpe2lmKHQ9PT1lKXJldHVybiExO2lmKHQuc3BsaXQoJyInKS5sZW5ndGghPT10LnNwbGl0KCdcXCInKS5sZW5ndGgpcmV0dXJuITF9cmV0dXJuITB9KHUpKXJldHVybiExfWVsc2UgaWYodC5yZXF1aXJlX2Rpc3BsYXlfbmFtZSlyZXR1cm4hMX1pZighdC5pZ25vcmVfbWF4X2xlbmd0aCYmZS5sZW5ndGg+eSlyZXR1cm4hMTt2YXIgYj1lLnNwbGl0KCJAIiksdj1iLnBvcCgpLG09di50b0xvd2VyQ2FzZSgpO2lmKHQuaG9zdF9ibGFja2xpc3QuaW5jbHVkZXMobSkpcmV0dXJuITE7aWYodC5ob3N0X3doaXRlbGlzdC5sZW5ndGg+MCYmIXQuaG9zdF93aGl0ZWxpc3QuaW5jbHVkZXMobSkpcmV0dXJuITE7dmFyIFQ9Yi5qb2luKCJAIik7aWYodC5kb21haW5fc3BlY2lmaWNfdmFsaWRhdGlvbiYmKCJnbWFpbC5jb20iPT09bXx8Imdvb2dsZW1haWwuY29tIj09PW0pKXt2YXIgdz0oVD1ULnRvTG93ZXJDYXNlKCkpLnNwbGl0KCIrIilbMF07aWYoISgwLGkuZGVmYXVsdCkody5yZXBsYWNlKC9cLi9nLCIiKSx7bWluOjYsbWF4OjMwfSkpcmV0dXJuITE7Zm9yKHZhciBBPXcuc3BsaXQoIi4iKSxQPTA7UDxBLmxlbmd0aDtQKyspaWYoIWYudGVzdChBW1BdKSlyZXR1cm4hMX1pZighKCExIT09dC5pZ25vcmVfbWF4X2xlbmd0aHx8KDAsaS5kZWZhdWx0KShULHttYXg6NjR9KSYmKDAsaS5kZWZhdWx0KSh2LHttYXg6MjU0fSkpKXJldHVybiExO2lmKCEoMCxhLmRlZmF1bHQpKHYse3JlcXVpcmVfdGxkOnQucmVxdWlyZV90bGQsaWdub3JlX21heF9sZW5ndGg6dC5pZ25vcmVfbWF4X2xlbmd0aH0pKXtpZighdC5hbGxvd19pcF9kb21haW4pcmV0dXJuITE7aWYoISgwLHMuZGVmYXVsdCkodikpe2lmKCF2LnN0YXJ0c1dpdGgoIlsiKXx8IXYuZW5kc1dpdGgoIl0iKSlyZXR1cm4hMTt2YXIgVz12LnNsaWNlKDEsLTEpO2lmKDA9PT1XLmxlbmd0aHx8ISgwLHMuZGVmYXVsdCkoVykpcmV0dXJuITF9fWlmKCciJz09PVRbMF0pcmV0dXJuIFQ9VC5zbGljZSgxLFQubGVuZ3RoLTEpLHQuYWxsb3dfdXRmOF9sb2NhbF9wYXJ0P2cudGVzdChUKTpwLnRlc3QoVCk7Zm9yKHZhciBCPXQuYWxsb3dfdXRmOF9sb2NhbF9wYXJ0P2g6ZCxDPVQuc3BsaXQoIi4iKSxFPTA7RTxDLmxlbmd0aDtFKyspaWYoIUIudGVzdChDW0VdKSlyZXR1cm4hMTtyZXR1cm4hdC5ibGFja2xpc3RlZF9jaGFyc3x8LTE9PT1ULnNlYXJjaChuZXcgUmVnRXhwKCJbIi5jb25jYXQodC5ibGFja2xpc3RlZF9jaGFycywiXSsiKSwiZyIpKX07dmFyIG49dShyKDU1NzEpKSxvPXUocig0ODA4KSksaT11KHIoMzIzNSkpLGE9dShyKDIyMSkpLHM9dShyKDEwMjgpKTtmdW5jdGlvbiB1KGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgYz17YWxsb3dfZGlzcGxheV9uYW1lOiExLHJlcXVpcmVfZGlzcGxheV9uYW1lOiExLGFsbG93X3V0ZjhfbG9jYWxfcGFydDohMCxyZXF1aXJlX3RsZDohMCxibGFja2xpc3RlZF9jaGFyczoiIixpZ25vcmVfbWF4X2xlbmd0aDohMSxob3N0X2JsYWNrbGlzdDpbXSxob3N0X3doaXRlbGlzdDpbXX0sbD0vXihbXlx4MDAtXHgxRlx4N0YtXHg5RlxjWF0rKTwvaSxkPS9eW2EtelxkISNcJCUmJ1wqXCtcLVwvPVw/XF5fYHtcfH1+XSskL2ksZj0vXlthLXpcZF0rJC8scD0vXihbXHNceDAxLVx4MDhceDBiXHgwY1x4MGUtXHgxZlx4N2ZceDIxXHgyMy1ceDViXHg1ZC1ceDdlXXwoXFxbXHgwMS1ceDA5XHgwYlx4MGNceDBkLVx4N2ZdKSkqJC9pLGg9L15bYS16XGQhI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5cdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKyQvaSxnPS9eKFtcc1x4MDEtXHgwOFx4MGJceDBjXHgwZS1ceDFmXHg3Zlx4MjFceDIzLVx4NWJceDVkLVx4N2VcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdfChcXFtceDAxLVx4MDlceDBiXHgwY1x4MGQtXHg3Zlx1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSokL2kseT0yNTQ7ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDQwNjk6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5kZWZhdWx0KShlKSwwPT09KCh0PSgwLG8uZGVmYXVsdCkodCxhKSkuaWdub3JlX3doaXRlc3BhY2U/ZS50cmltKCkubGVuZ3RoOmUubGVuZ3RoKX07dmFyIG49aShyKDU1NzEpKSxvPWkocig0ODA4KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIGE9e2lnbm9yZV93aGl0ZXNwYWNlOiExfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjEyOTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L14oMHgpWzAtOWEtZl17NDB9JC9pO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwyMjE6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsbi5kZWZhdWx0KShlKSwodD0oMCxvLmRlZmF1bHQpKHQsYSkpLmFsbG93X3RyYWlsaW5nX2RvdCYmIi4iPT09ZVtlLmxlbmd0aC0xXSYmKGU9ZS5zdWJzdHJpbmcoMCxlLmxlbmd0aC0xKSksITA9PT10LmFsbG93X3dpbGRjYXJkJiYwPT09ZS5pbmRleE9mKCIqLiIpJiYoZT1lLnN1YnN0cmluZygyKSk7dmFyIHI9ZS5zcGxpdCgiLiIpLGk9cltyLmxlbmd0aC0xXTtpZih0LnJlcXVpcmVfdGxkKXtpZihyLmxlbmd0aDwyKXJldHVybiExO2lmKCF0LmFsbG93X251bWVyaWNfdGxkJiYhL14oW2Etelx1MDBBMS1cdTAwQThcdTAwQUEtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdezIsfXx4blthLXowLTktXXsyLH0pJC9pLnRlc3QoaSkpcmV0dXJuITE7aWYoL1xzLy50ZXN0KGkpKXJldHVybiExfXJldHVybiEoIXQuYWxsb3dfbnVtZXJpY190bGQmJi9eXGQrJC8udGVzdChpKSkmJnIuZXZlcnkoKGZ1bmN0aW9uKGUpe3JldHVybiEoZS5sZW5ndGg+NjMmJiF0Lmlnbm9yZV9tYXhfbGVuZ3RofHwhL15bYS16X1x1MDBhMS1cdWZmZmYwLTktXSskL2kudGVzdChlKXx8L1tcdWZmMDEtXHVmZjVlXS8udGVzdChlKXx8L14tfC0kLy50ZXN0KGUpfHwhdC5hbGxvd191bmRlcnNjb3JlcyYmL18vLnRlc3QoZSkpfSkpfTt2YXIgbj1pKHIoNTU3MSkpLG89aShyKDQ4MDgpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgYT17cmVxdWlyZV90bGQ6ITAsYWxsb3dfdW5kZXJzY29yZXM6ITEsYWxsb3dfdHJhaWxpbmdfZG90OiExLGFsbG93X251bWVyaWNfdGxkOiExLGFsbG93X3dpbGRjYXJkOiExLGlnbm9yZV9tYXhfbGVuZ3RoOiExfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sOTE0NjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxvLmRlZmF1bHQpKGUpLHQ9dHx8e307dmFyIHI9bmV3IFJlZ0V4cCgiXig/OlstK10pPyg/OlswLTldKyk/KD86XFwiLmNvbmNhdCh0LmxvY2FsZT9pLmRlY2ltYWxbdC5sb2NhbGVdOiIuIiwiWzAtOV0qKT8oPzpbZUVdW1xcK1xcLV0/KD86WzAtOV0rKSk/JCIpKTtpZigiIj09PWV8fCIuIj09PWV8fCIsIj09PWV8fCItIj09PWV8fCIrIj09PWUpcmV0dXJuITE7dmFyIG49cGFyc2VGbG9hdChlLnJlcGxhY2UoIiwiLCIuIikpO3JldHVybiByLnRlc3QoZSkmJighdC5oYXNPd25Qcm9wZXJ0eSgibWluIil8fG4+PXQubWluKSYmKCF0Lmhhc093blByb3BlcnR5KCJtYXgiKXx8bjw9dC5tYXgpJiYoIXQuaGFzT3duUHJvcGVydHkoImx0Iil8fG48dC5sdCkmJighdC5oYXNPd25Qcm9wZXJ0eSgiZ3QiKXx8bj50Lmd0KX0sdC5sb2NhbGVzPXZvaWQgMDt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPXIoNzkpLGE9T2JqZWN0LmtleXMoaS5kZWNpbWFsKTt0LmxvY2FsZXM9YX0sNzE0NjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9LHQuZnVsbFdpZHRoPXZvaWQgMDt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPS9bXlx1MDAyMC1cdTAwN0VcdUZGNjEtXHVGRjlGXHVGRkEwLVx1RkZEQ1x1RkZFOC1cdUZGRUUwLTlhLXpBLVpdLzt0LmZ1bGxXaWR0aD1pfSw2NjQ4OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXsoMCxvLmRlZmF1bHQpKGUpO3ZhciB0PWUucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9ccz8oaHNsYT9cKHxcKXwsKVxzPy9naSwiJDEiKTtyZXR1cm4tMSE9PXQuaW5kZXhPZigiLCIpP2kudGVzdCh0KTphLnRlc3QodCl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15oc2xhP1woKChcK3xcLSk/KFswLTldKyhcLlswLTldKyk/KGUoXCt8XC0pP1swLTldKyk/fFwuWzAtOV0rKGUoXCt8XC0pP1swLTldKyk/KSkoZGVnfGdyYWR8cmFkfHR1cm4pPygsKFwrfFwtKT8oWzAtOV0rKFwuWzAtOV0rKT8oZShcK3xcLSk/WzAtOV0rKT98XC5bMC05XSsoZShcK3xcLSk/WzAtOV0rKT8pJSl7Mn0oLCgoXCt8XC0pPyhbMC05XSsoXC5bMC05XSspPyhlKFwrfFwtKT9bMC05XSspP3xcLlswLTldKyhlKFwrfFwtKT9bMC05XSspPyklPykpP1wpJC9pLGE9L15oc2xhP1woKChcK3xcLSk/KFswLTldKyhcLlswLTldKyk/KGUoXCt8XC0pP1swLTldKyk/fFwuWzAtOV0rKGUoXCt8XC0pP1swLTldKyk/KSkoZGVnfGdyYWR8cmFkfHR1cm4pPyhccyhcK3xcLSk/KFswLTldKyhcLlswLTldKyk/KGUoXCt8XC0pP1swLTldKyk/fFwuWzAtOV0rKGUoXCt8XC0pP1swLTldKyk/KSUpezJ9XHM/KFwvXHMoKFwrfFwtKT8oWzAtOV0rKFwuWzAtOV0rKT8oZShcK3xcLSk/WzAtOV0rKT98XC5bMC05XSsoZShcK3xcLSk/WzAtOV0rKT8pJT8pXHM/KT9cKSQvaTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjk0MTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9LHQuaGFsZldpZHRoPXZvaWQgMDt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPS9bXHUwMDIwLVx1MDA3RVx1RkY2MS1cdUZGOUZcdUZGQTAtXHVGRkRDXHVGRkU4LVx1RkZFRTAtOWEtekEtWl0vO3QuaGFsZldpZHRoPWl9LDg4NzQ6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxuZXcgUmVnRXhwKCJeW2EtZkEtRjAtOV17Ii5jb25jYXQoaVt0XSwifSQiKSkudGVzdChlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT17bWQ1OjMyLG1kNDozMixzaGExOjQwLHNoYTI1Njo2NCxzaGEzODQ6OTYsc2hhNTEyOjEyOCxyaXBlbWQxMjg6MzIscmlwZW1kMTYwOjQwLHRpZ2VyMTI4OjMyLHRpZ2VyMTYwOjQwLHRpZ2VyMTkyOjQ4LGNyYzMyOjgsY3JjMzJiOjh9O2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw2Mjk4OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGkudGVzdChlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vXiM/KFswLTlBLUZdezN9fFswLTlBLUZdezR9fFswLTlBLUZdezZ9fFswLTlBLUZdezh9KSQvaTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNzExNzooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L14oMHh8MGgpP1swLTlBLUZdKyQvaTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODE3NzooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoL1tcc1wtXSsvZ2ksIiIpLnRvVXBwZXJDYXNlKCkscj10LnNsaWNlKDAsMikudG9VcHBlckNhc2UoKTtyZXR1cm4gciBpbiBpJiZpW3JdLnRlc3QodCl9KGUpJiZmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UoL1teQS1aMC05XSsvZ2ksIiIpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIDE9PT0odC5zbGljZSg0KSt0LnNsaWNlKDAsNCkpLnJlcGxhY2UoL1tBLVpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCktNTV9KSkubWF0Y2goL1xkezEsN30vZykucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBOdW1iZXIoZSt0KSU5N30pLCIiKX0oZSl9LHQubG9jYWxlcz12b2lkIDA7dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT17QUQ6L14oQURbMC05XXsyfSlcZHs4fVtBLVowLTldezEyfSQvLEFFOi9eKEFFWzAtOV17Mn0pXGR7M31cZHsxNn0kLyxBTDovXihBTFswLTldezJ9KVxkezh9W0EtWjAtOV17MTZ9JC8sQVQ6L14oQVRbMC05XXsyfSlcZHsxNn0kLyxBWjovXihBWlswLTldezJ9KVtBLVowLTldezR9XGR7MjB9JC8sQkE6L14oQkFbMC05XXsyfSlcZHsxNn0kLyxCRTovXihCRVswLTldezJ9KVxkezEyfSQvLEJHOi9eKEJHWzAtOV17Mn0pW0EtWl17NH1cZHs2fVtBLVowLTldezh9JC8sQkg6L14oQkhbMC05XXsyfSlbQS1aXXs0fVtBLVowLTldezE0fSQvLEJSOi9eKEJSWzAtOV17Mn0pXGR7MjN9W0EtWl17MX1bQS1aMC05XXsxfSQvLEJZOi9eKEJZWzAtOV17Mn0pW0EtWjAtOV17NH1cZHsyMH0kLyxDSDovXihDSFswLTldezJ9KVxkezV9W0EtWjAtOV17MTJ9JC8sQ1I6L14oQ1JbMC05XXsyfSlcZHsxOH0kLyxDWTovXihDWVswLTldezJ9KVxkezh9W0EtWjAtOV17MTZ9JC8sQ1o6L14oQ1pbMC05XXsyfSlcZHsyMH0kLyxERTovXihERVswLTldezJ9KVxkezE4fSQvLERLOi9eKERLWzAtOV17Mn0pXGR7MTR9JC8sRE86L14oRE9bMC05XXsyfSlbQS1aXXs0fVxkezIwfSQvLEVFOi9eKEVFWzAtOV17Mn0pXGR7MTZ9JC8sRUc6L14oRUdbMC05XXsyfSlcZHsyNX0kLyxFUzovXihFU1swLTldezJ9KVxkezIwfSQvLEZJOi9eKEZJWzAtOV17Mn0pXGR7MTR9JC8sRk86L14oRk9bMC05XXsyfSlcZHsxNH0kLyxGUjovXihGUlswLTldezJ9KVxkezEwfVtBLVowLTldezExfVxkezJ9JC8sR0I6L14oR0JbMC05XXsyfSlbQS1aXXs0fVxkezE0fSQvLEdFOi9eKEdFWzAtOV17Mn0pW0EtWjAtOV17Mn1cZHsxNn0kLyxHSTovXihHSVswLTldezJ9KVtBLVpdezR9W0EtWjAtOV17MTV9JC8sR0w6L14oR0xbMC05XXsyfSlcZHsxNH0kLyxHUjovXihHUlswLTldezJ9KVxkezd9W0EtWjAtOV17MTZ9JC8sR1Q6L14oR1RbMC05XXsyfSlbQS1aMC05XXs0fVtBLVowLTldezIwfSQvLEhSOi9eKEhSWzAtOV17Mn0pXGR7MTd9JC8sSFU6L14oSFVbMC05XXsyfSlcZHsyNH0kLyxJRTovXihJRVswLTldezJ9KVtBLVowLTldezR9XGR7MTR9JC8sSUw6L14oSUxbMC05XXsyfSlcZHsxOX0kLyxJUTovXihJUVswLTldezJ9KVtBLVpdezR9XGR7MTV9JC8sSVI6L14oSVJbMC05XXsyfSkwXGR7Mn0wXGR7MTh9JC8sSVM6L14oSVNbMC05XXsyfSlcZHsyMn0kLyxJVDovXihJVFswLTldezJ9KVtBLVpdezF9XGR7MTB9W0EtWjAtOV17MTJ9JC8sSk86L14oSk9bMC05XXsyfSlbQS1aXXs0fVxkezIyfSQvLEtXOi9eKEtXWzAtOV17Mn0pW0EtWl17NH1bQS1aMC05XXsyMn0kLyxLWjovXihLWlswLTldezJ9KVxkezN9W0EtWjAtOV17MTN9JC8sTEI6L14oTEJbMC05XXsyfSlcZHs0fVtBLVowLTldezIwfSQvLExDOi9eKExDWzAtOV17Mn0pW0EtWl17NH1bQS1aMC05XXsyNH0kLyxMSTovXihMSVswLTldezJ9KVxkezV9W0EtWjAtOV17MTJ9JC8sTFQ6L14oTFRbMC05XXsyfSlcZHsxNn0kLyxMVTovXihMVVswLTldezJ9KVxkezN9W0EtWjAtOV17MTN9JC8sTFY6L14oTFZbMC05XXsyfSlbQS1aXXs0fVtBLVowLTldezEzfSQvLE1DOi9eKE1DWzAtOV17Mn0pXGR7MTB9W0EtWjAtOV17MTF9XGR7Mn0kLyxNRDovXihNRFswLTldezJ9KVtBLVowLTldezIwfSQvLE1FOi9eKE1FWzAtOV17Mn0pXGR7MTh9JC8sTUs6L14oTUtbMC05XXsyfSlcZHszfVtBLVowLTldezEwfVxkezJ9JC8sTVI6L14oTVJbMC05XXsyfSlcZHsyM30kLyxNVDovXihNVFswLTldezJ9KVtBLVpdezR9XGR7NX1bQS1aMC05XXsxOH0kLyxNVTovXihNVVswLTldezJ9KVtBLVpdezR9XGR7MTl9W0EtWl17M30kLyxNWjovXihNWlswLTldezJ9KVxkezIxfSQvLE5MOi9eKE5MWzAtOV17Mn0pW0EtWl17NH1cZHsxMH0kLyxOTzovXihOT1swLTldezJ9KVxkezExfSQvLFBLOi9eKFBLWzAtOV17Mn0pW0EtWjAtOV17NH1cZHsxNn0kLyxQTDovXihQTFswLTldezJ9KVxkezI0fSQvLFBTOi9eKFBTWzAtOV17Mn0pW0EtWjAtOV17NH1cZHsyMX0kLyxQVDovXihQVFswLTldezJ9KVxkezIxfSQvLFFBOi9eKFFBWzAtOV17Mn0pW0EtWl17NH1bQS1aMC05XXsyMX0kLyxSTzovXihST1swLTldezJ9KVtBLVpdezR9W0EtWjAtOV17MTZ9JC8sUlM6L14oUlNbMC05XXsyfSlcZHsxOH0kLyxTQTovXihTQVswLTldezJ9KVxkezJ9W0EtWjAtOV17MTh9JC8sU0M6L14oU0NbMC05XXsyfSlbQS1aXXs0fVxkezIwfVtBLVpdezN9JC8sU0U6L14oU0VbMC05XXsyfSlcZHsyMH0kLyxTSTovXihTSVswLTldezJ9KVxkezE1fSQvLFNLOi9eKFNLWzAtOV17Mn0pXGR7MjB9JC8sU006L14oU01bMC05XXsyfSlbQS1aXXsxfVxkezEwfVtBLVowLTldezEyfSQvLFNWOi9eKFNWWzAtOV17Mn0pW0EtWjAtOV17NH1cZHsyMH0kLyxUTDovXihUTFswLTldezJ9KVxkezE5fSQvLFROOi9eKFROWzAtOV17Mn0pXGR7MjB9JC8sVFI6L14oVFJbMC05XXsyfSlcZHs1fVtBLVowLTldezE3fSQvLFVBOi9eKFVBWzAtOV17Mn0pXGR7Nn1bQS1aMC05XXsxOX0kLyxWQTovXihWQVswLTldezJ9KVxkezE4fSQvLFZHOi9eKFZHWzAtOV17Mn0pW0EtWjAtOV17NH1cZHsxNn0kLyxYSzovXihYS1swLTldezJ9KVxkezE2fSQvfSxhPU9iamVjdC5rZXlzKGkpO3QubG9jYWxlcz1hfSw1NTY2OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpeygwLG8uZGVmYXVsdCkoZSk7dmFyIHI9aTtpZigodD10fHx7fSkuYWxsb3dfaHlwaGVucyYmKHI9YSksIXIudGVzdChlKSlyZXR1cm4hMTtlPWUucmVwbGFjZSgvLS9nLCIiKTtmb3IodmFyIG49MCxzPTIsdT0wO3U8MTQ7dSsrKXt2YXIgYz1lLnN1YnN0cmluZygxNC11LTEsMTQtdSksbD1wYXJzZUludChjLDEwKSpzO24rPWw+PTEwP2wlMTArMTpsLDE9PT1zP3MrPTE6cy09MX1yZXR1cm4oMTAtbiUxMCklMTA9PT1wYXJzZUludChlLnN1YnN0cmluZygxNCwxNSksMTApfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPS9eWzAtOV17MTV9JC8sYT0vXlxkezJ9LVxkezZ9LVxkezZ9LVxkezF9JC87ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDEwMjg6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uIGUodCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiIiO3JldHVybigwLG8uZGVmYXVsdCkodCksKHI9U3RyaW5nKHIpKT8iNCI9PT1yP3MudGVzdCh0KToiNiI9PT1yJiZjLnRlc3QodCk6ZSh0LDQpfHxlKHQsNil9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9Iig/OlswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSkiLGE9IigiLmNvbmNhdChpLCJbLl0pezN9IikuY29uY2F0KGkpLHM9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KGEsIiQiKSksdT0iKD86WzAtOWEtZkEtRl17MSw0fSkiLGM9bmV3IFJlZ0V4cCgiXigiKyIoPzoiLmNvbmNhdCh1LCI6KXs3fSg/OiIpLmNvbmNhdCh1LCJ8Oil8IikrIig/OiIuY29uY2F0KHUsIjopezZ9KD86IikuY29uY2F0KGEsInw6IikuY29uY2F0KHUsInw6KXwiKSsiKD86Ii5jb25jYXQodSwiOil7NX0oPzo6IikuY29uY2F0KGEsInwoOiIpLmNvbmNhdCh1LCIpezEsMn18Oil8IikrIig/OiIuY29uY2F0KHUsIjopezR9KD86KDoiKS5jb25jYXQodSwiKXswLDF9OiIpLmNvbmNhdChhLCJ8KDoiKS5jb25jYXQodSwiKXsxLDN9fDopfCIpKyIoPzoiLmNvbmNhdCh1LCI6KXszfSg/Oig6IikuY29uY2F0KHUsIil7MCwyfToiKS5jb25jYXQoYSwifCg6IikuY29uY2F0KHUsIil7MSw0fXw6KXwiKSsiKD86Ii5jb25jYXQodSwiOil7Mn0oPzooOiIpLmNvbmNhdCh1LCIpezAsM306IikuY29uY2F0KGEsInwoOiIpLmNvbmNhdCh1LCIpezEsNX18Oil8IikrIig/OiIuY29uY2F0KHUsIjopezF9KD86KDoiKS5jb25jYXQodSwiKXswLDR9OiIpLmNvbmNhdChhLCJ8KDoiKS5jb25jYXQodSwiKXsxLDZ9fDopfCIpKyIoPzo6KCg/OjoiLmNvbmNhdCh1LCIpezAsNX06IikuY29uY2F0KGEsInwoPzo6IikuY29uY2F0KHUsIil7MSw3fXw6KSkiKSsiKSglWzAtOWEtekEtWi0uOl17MSx9KT8kIik7ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDc3OTU6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiIjsoMCxuLmRlZmF1bHQpKGUpO3ZhciByPWUuc3BsaXQoIi8iKTtpZigyIT09ci5sZW5ndGgpcmV0dXJuITE7aWYoIWEudGVzdChyWzFdKSlyZXR1cm4hMTtpZihyWzFdLmxlbmd0aD4xJiZyWzFdLnN0YXJ0c1dpdGgoIjAiKSlyZXR1cm4hMTtpZighKDAsby5kZWZhdWx0KShyWzBdLHQpKXJldHVybiExO3ZhciBpPW51bGw7c3dpdGNoKFN0cmluZyh0KSl7Y2FzZSI0IjppPXM7YnJlYWs7Y2FzZSI2IjppPXU7YnJlYWs7ZGVmYXVsdDppPSgwLG8uZGVmYXVsdCkoclswXSwiNiIpP3U6c31yZXR1cm4gclsxXTw9aSYmclsxXT49MH07dmFyIG49aShyKDU1NzEpKSxvPWkocigxMDI4KSk7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIGE9L15cZHsxLDN9JC8scz0zMix1PTEyODtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNzYxMjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24gZSh0LHIpeygwLG8uZGVmYXVsdCkodCk7dmFyIG49U3RyaW5nKChudWxsPT1yP3ZvaWQgMDpyLnZlcnNpb24pfHxyKTtpZighKG51bGwhPXImJnIudmVyc2lvbnx8cikpcmV0dXJuIGUodCx7dmVyc2lvbjoxMH0pfHxlKHQse3ZlcnNpb246MTN9KTt2YXIgdT10LnJlcGxhY2UoL1tccy1dKy9nLCIiKSxjPTA7aWYoIjEwIj09PW4pe2lmKCFpLnRlc3QodSkpcmV0dXJuITE7Zm9yKHZhciBsPTA7bDxuLTE7bCsrKWMrPShsKzEpKnUuY2hhckF0KGwpO2lmKCJYIj09PXUuY2hhckF0KDkpP2MrPTEwMDpjKz0xMCp1LmNoYXJBdCg5KSxjJTExPT0wKXJldHVybiEwfWVsc2UgaWYoIjEzIj09PW4pe2lmKCFhLnRlc3QodSkpcmV0dXJuITE7Zm9yKHZhciBkPTA7ZDwxMjtkKyspYys9c1tkJTJdKnUuY2hhckF0KGQpO2lmKHUuY2hhckF0KDEyKS0oMTAtYyUxMCklMTA9PTApcmV0dXJuITB9cmV0dXJuITF9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L14oPzpbMC05XXs5fVh8WzAtOV17MTB9KSQvLGE9L14oPzpbMC05XXsxM30pJC8scz1bMSwzXTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNzE0ODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYoKDAsby5kZWZhdWx0KShlKSwhaS50ZXN0KGUpKXJldHVybiExO2Zvcih2YXIgdD0hMCxyPTAsbj1lLmxlbmd0aC0yO24+PTA7bi0tKWlmKGVbbl0+PSJBIiYmZVtuXTw9IloiKWZvcih2YXIgYT1lW25dLmNoYXJDb2RlQXQoMCktNTUscz0wLHU9W2ElMTAsTWF0aC50cnVuYyhhLzEwKV07czx1Lmxlbmd0aDtzKyspe3ZhciBjPXVbc107cis9dD9jPj01PzErMiooYy01KToyKmM6Yyx0PSF0fWVsc2V7dmFyIGw9ZVtuXS5jaGFyQ29kZUF0KDApLSIwIi5jaGFyQ29kZUF0KDApO3IrPXQ/bD49NT8xKzIqKGwtNSk6MipsOmwsdD0hdH12YXIgZD0xMCpNYXRoLnRydW5jKChyKzkpLzEwKS1yO3JldHVybitlW2UubGVuZ3RoLTFdPT09ZH07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vXltBLVpdezJ9WzAtOUEtWl17OX1bMC05XSQvO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwxNzI3OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGkuaGFzKGUudG9VcHBlckNhc2UoKSl9LHQuQ291bnRyeUNvZGVzPXZvaWQgMDt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPW5ldyBTZXQoWyJBRCIsIkFFIiwiQUYiLCJBRyIsIkFJIiwiQUwiLCJBTSIsIkFPIiwiQVEiLCJBUiIsIkFTIiwiQVQiLCJBVSIsIkFXIiwiQVgiLCJBWiIsIkJBIiwiQkIiLCJCRCIsIkJFIiwiQkYiLCJCRyIsIkJIIiwiQkkiLCJCSiIsIkJMIiwiQk0iLCJCTiIsIkJPIiwiQlEiLCJCUiIsIkJTIiwiQlQiLCJCViIsIkJXIiwiQlkiLCJCWiIsIkNBIiwiQ0MiLCJDRCIsIkNGIiwiQ0ciLCJDSCIsIkNJIiwiQ0siLCJDTCIsIkNNIiwiQ04iLCJDTyIsIkNSIiwiQ1UiLCJDViIsIkNXIiwiQ1giLCJDWSIsIkNaIiwiREUiLCJESiIsIkRLIiwiRE0iLCJETyIsIkRaIiwiRUMiLCJFRSIsIkVHIiwiRUgiLCJFUiIsIkVTIiwiRVQiLCJGSSIsIkZKIiwiRksiLCJGTSIsIkZPIiwiRlIiLCJHQSIsIkdCIiwiR0QiLCJHRSIsIkdGIiwiR0ciLCJHSCIsIkdJIiwiR0wiLCJHTSIsIkdOIiwiR1AiLCJHUSIsIkdSIiwiR1MiLCJHVCIsIkdVIiwiR1ciLCJHWSIsIkhLIiwiSE0iLCJITiIsIkhSIiwiSFQiLCJIVSIsIklEIiwiSUUiLCJJTCIsIklNIiwiSU4iLCJJTyIsIklRIiwiSVIiLCJJUyIsIklUIiwiSkUiLCJKTSIsIkpPIiwiSlAiLCJLRSIsIktHIiwiS0giLCJLSSIsIktNIiwiS04iLCJLUCIsIktSIiwiS1ciLCJLWSIsIktaIiwiTEEiLCJMQiIsIkxDIiwiTEkiLCJMSyIsIkxSIiwiTFMiLCJMVCIsIkxVIiwiTFYiLCJMWSIsIk1BIiwiTUMiLCJNRCIsIk1FIiwiTUYiLCJNRyIsIk1IIiwiTUsiLCJNTCIsIk1NIiwiTU4iLCJNTyIsIk1QIiwiTVEiLCJNUiIsIk1TIiwiTVQiLCJNVSIsIk1WIiwiTVciLCJNWCIsIk1ZIiwiTVoiLCJOQSIsIk5DIiwiTkUiLCJORiIsIk5HIiwiTkkiLCJOTCIsIk5PIiwiTlAiLCJOUiIsIk5VIiwiTloiLCJPTSIsIlBBIiwiUEUiLCJQRiIsIlBHIiwiUEgiLCJQSyIsIlBMIiwiUE0iLCJQTiIsIlBSIiwiUFMiLCJQVCIsIlBXIiwiUFkiLCJRQSIsIlJFIiwiUk8iLCJSUyIsIlJVIiwiUlciLCJTQSIsIlNCIiwiU0MiLCJTRCIsIlNFIiwiU0ciLCJTSCIsIlNJIiwiU0oiLCJTSyIsIlNMIiwiU00iLCJTTiIsIlNPIiwiU1IiLCJTUyIsIlNUIiwiU1YiLCJTWCIsIlNZIiwiU1oiLCJUQyIsIlREIiwiVEYiLCJURyIsIlRIIiwiVEoiLCJUSyIsIlRMIiwiVE0iLCJUTiIsIlRPIiwiVFIiLCJUVCIsIlRWIiwiVFciLCJUWiIsIlVBIiwiVUciLCJVTSIsIlVTIiwiVVkiLCJVWiIsIlZBIiwiVkMiLCJWRSIsIlZHIiwiVkkiLCJWTiIsIlZVIiwiV0YiLCJXUyIsIllFIiwiWVQiLCJaQSIsIlpNIiwiWlciXSksYT1pO3QuQ291bnRyeUNvZGVzPWF9LDY3NzY6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksaS5oYXMoZS50b1VwcGVyQ2FzZSgpKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT1uZXcgU2V0KFsiQUZHIiwiQUxBIiwiQUxCIiwiRFpBIiwiQVNNIiwiQU5EIiwiQUdPIiwiQUlBIiwiQVRBIiwiQVRHIiwiQVJHIiwiQVJNIiwiQUJXIiwiQVVTIiwiQVVUIiwiQVpFIiwiQkhTIiwiQkhSIiwiQkdEIiwiQlJCIiwiQkxSIiwiQkVMIiwiQkxaIiwiQkVOIiwiQk1VIiwiQlROIiwiQk9MIiwiQkVTIiwiQklIIiwiQldBIiwiQlZUIiwiQlJBIiwiSU9UIiwiQlJOIiwiQkdSIiwiQkZBIiwiQkRJIiwiS0hNIiwiQ01SIiwiQ0FOIiwiQ1BWIiwiQ1lNIiwiQ0FGIiwiVENEIiwiQ0hMIiwiQ0hOIiwiQ1hSIiwiQ0NLIiwiQ09MIiwiQ09NIiwiQ09HIiwiQ09EIiwiQ09LIiwiQ1JJIiwiQ0lWIiwiSFJWIiwiQ1VCIiwiQ1VXIiwiQ1lQIiwiQ1pFIiwiRE5LIiwiREpJIiwiRE1BIiwiRE9NIiwiRUNVIiwiRUdZIiwiU0xWIiwiR05RIiwiRVJJIiwiRVNUIiwiRVRIIiwiRkxLIiwiRlJPIiwiRkpJIiwiRklOIiwiRlJBIiwiR1VGIiwiUFlGIiwiQVRGIiwiR0FCIiwiR01CIiwiR0VPIiwiREVVIiwiR0hBIiwiR0lCIiwiR1JDIiwiR1JMIiwiR1JEIiwiR0xQIiwiR1VNIiwiR1RNIiwiR0dZIiwiR0lOIiwiR05CIiwiR1VZIiwiSFRJIiwiSE1EIiwiVkFUIiwiSE5EIiwiSEtHIiwiSFVOIiwiSVNMIiwiSU5EIiwiSUROIiwiSVJOIiwiSVJRIiwiSVJMIiwiSU1OIiwiSVNSIiwiSVRBIiwiSkFNIiwiSlBOIiwiSkVZIiwiSk9SIiwiS0FaIiwiS0VOIiwiS0lSIiwiUFJLIiwiS09SIiwiS1dUIiwiS0daIiwiTEFPIiwiTFZBIiwiTEJOIiwiTFNPIiwiTEJSIiwiTEJZIiwiTElFIiwiTFRVIiwiTFVYIiwiTUFDIiwiTUtEIiwiTURHIiwiTVdJIiwiTVlTIiwiTURWIiwiTUxJIiwiTUxUIiwiTUhMIiwiTVRRIiwiTVJUIiwiTVVTIiwiTVlUIiwiTUVYIiwiRlNNIiwiTURBIiwiTUNPIiwiTU5HIiwiTU5FIiwiTVNSIiwiTUFSIiwiTU9aIiwiTU1SIiwiTkFNIiwiTlJVIiwiTlBMIiwiTkxEIiwiTkNMIiwiTlpMIiwiTklDIiwiTkVSIiwiTkdBIiwiTklVIiwiTkZLIiwiTU5QIiwiTk9SIiwiT01OIiwiUEFLIiwiUExXIiwiUFNFIiwiUEFOIiwiUE5HIiwiUFJZIiwiUEVSIiwiUEhMIiwiUENOIiwiUE9MIiwiUFJUIiwiUFJJIiwiUUFUIiwiUkVVIiwiUk9VIiwiUlVTIiwiUldBIiwiQkxNIiwiU0hOIiwiS05BIiwiTENBIiwiTUFGIiwiU1BNIiwiVkNUIiwiV1NNIiwiU01SIiwiU1RQIiwiU0FVIiwiU0VOIiwiU1JCIiwiU1lDIiwiU0xFIiwiU0dQIiwiU1hNIiwiU1ZLIiwiU1ZOIiwiU0xCIiwiU09NIiwiWkFGIiwiU0dTIiwiU1NEIiwiRVNQIiwiTEtBIiwiU0ROIiwiU1VSIiwiU0pNIiwiU1daIiwiU1dFIiwiQ0hFIiwiU1lSIiwiVFdOIiwiVEpLIiwiVFpBIiwiVEhBIiwiVExTIiwiVEdPIiwiVEtMIiwiVE9OIiwiVFRPIiwiVFVOIiwiVFVSIiwiVEtNIiwiVENBIiwiVFVWIiwiVUdBIiwiVUtSIiwiQVJFIiwiR0JSIiwiVVNBIiwiVU1JIiwiVVJZIiwiVVpCIiwiVlVUIiwiVkVOIiwiVk5NIiwiVkdCIiwiVklSIiwiV0xGIiwiRVNIIiwiWUVNIiwiWk1CIiwiWldFIl0pO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw5OTYzOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGkuaGFzKGUudG9VcHBlckNhc2UoKSl9LHQuQ3VycmVuY3lDb2Rlcz12b2lkIDA7dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT1uZXcgU2V0KFsiQUVEIiwiQUZOIiwiQUxMIiwiQU1EIiwiQU5HIiwiQU9BIiwiQVJTIiwiQVVEIiwiQVdHIiwiQVpOIiwiQkFNIiwiQkJEIiwiQkRUIiwiQkdOIiwiQkhEIiwiQklGIiwiQk1EIiwiQk5EIiwiQk9CIiwiQk9WIiwiQlJMIiwiQlNEIiwiQlROIiwiQldQIiwiQllOIiwiQlpEIiwiQ0FEIiwiQ0RGIiwiQ0hFIiwiQ0hGIiwiQ0hXIiwiQ0xGIiwiQ0xQIiwiQ05ZIiwiQ09QIiwiQ09VIiwiQ1JDIiwiQ1VDIiwiQ1VQIiwiQ1ZFIiwiQ1pLIiwiREpGIiwiREtLIiwiRE9QIiwiRFpEIiwiRUdQIiwiRVJOIiwiRVRCIiwiRVVSIiwiRkpEIiwiRktQIiwiR0JQIiwiR0VMIiwiR0hTIiwiR0lQIiwiR01EIiwiR05GIiwiR1RRIiwiR1lEIiwiSEtEIiwiSE5MIiwiSFJLIiwiSFRHIiwiSFVGIiwiSURSIiwiSUxTIiwiSU5SIiwiSVFEIiwiSVJSIiwiSVNLIiwiSk1EIiwiSk9EIiwiSlBZIiwiS0VTIiwiS0dTIiwiS0hSIiwiS01GIiwiS1BXIiwiS1JXIiwiS1dEIiwiS1lEIiwiS1pUIiwiTEFLIiwiTEJQIiwiTEtSIiwiTFJEIiwiTFNMIiwiTFlEIiwiTUFEIiwiTURMIiwiTUdBIiwiTUtEIiwiTU1LIiwiTU5UIiwiTU9QIiwiTVJVIiwiTVVSIiwiTVZSIiwiTVdLIiwiTVhOIiwiTVhWIiwiTVlSIiwiTVpOIiwiTkFEIiwiTkdOIiwiTklPIiwiTk9LIiwiTlBSIiwiTlpEIiwiT01SIiwiUEFCIiwiUEVOIiwiUEdLIiwiUEhQIiwiUEtSIiwiUExOIiwiUFlHIiwiUUFSIiwiUk9OIiwiUlNEIiwiUlVCIiwiUldGIiwiU0FSIiwiU0JEIiwiU0NSIiwiU0RHIiwiU0VLIiwiU0dEIiwiU0hQIiwiU0xMIiwiU09TIiwiU1JEIiwiU1NQIiwiU1ROIiwiU1ZDIiwiU1lQIiwiU1pMIiwiVEhCIiwiVEpTIiwiVE1UIiwiVE5EIiwiVE9QIiwiVFJZIiwiVFREIiwiVFdEIiwiVFpTIiwiVUFIIiwiVUdYIiwiVVNEIiwiVVNOIiwiVVlJIiwiVVlVIiwiVVlXIiwiVVpTIiwiVkVTIiwiVk5EIiwiVlVWIiwiV1NUIiwiWEFGIiwiWEFHIiwiWEFVIiwiWEJBIiwiWEJCIiwiWEJDIiwiWEJEIiwiWENEIiwiWERSIiwiWE9GIiwiWFBEIiwiWFBGIiwiWFBUIiwiWFNVIiwiWFRTIiwiWFVBIiwiWFhYIiwiWUVSIiwiWkFSIiwiWk1XIiwiWldMIl0pLGE9aTt0LkN1cnJlbmN5Q29kZXM9YX0sOTIxMTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLmhhcyhlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT1uZXcgU2V0KFsiYWEiLCJhYiIsImFlIiwiYWYiLCJhayIsImFtIiwiYW4iLCJhciIsImFzIiwiYXYiLCJheSIsImF6IiwiYXoiLCJiYSIsImJlIiwiYmciLCJiaCIsImJpIiwiYm0iLCJibiIsImJvIiwiYnIiLCJicyIsImNhIiwiY2UiLCJjaCIsImNvIiwiY3IiLCJjcyIsImN1IiwiY3YiLCJjeSIsImRhIiwiZGUiLCJkdiIsImR6IiwiZWUiLCJlbCIsImVuIiwiZW8iLCJlcyIsImV0IiwiZXUiLCJmYSIsImZmIiwiZmkiLCJmaiIsImZvIiwiZnIiLCJmeSIsImdhIiwiZ2QiLCJnbCIsImduIiwiZ3UiLCJndiIsImhhIiwiaGUiLCJoaSIsImhvIiwiaHIiLCJodCIsImh1IiwiaHkiLCJoeiIsImlhIiwiaWQiLCJpZSIsImlnIiwiaWkiLCJpayIsImlvIiwiaXMiLCJpdCIsIml1IiwiamEiLCJqdiIsImthIiwia2ciLCJraSIsImtqIiwia2siLCJrbCIsImttIiwia24iLCJrbyIsImtyIiwia3MiLCJrdSIsImt2Iiwia3ciLCJreSIsImxhIiwibGIiLCJsZyIsImxpIiwibG4iLCJsbyIsImx0IiwibHUiLCJsdiIsIm1nIiwibWgiLCJtaSIsIm1rIiwibWwiLCJtbiIsIm1yIiwibXMiLCJtdCIsIm15IiwibmEiLCJuYiIsIm5kIiwibmUiLCJuZyIsIm5sIiwibm4iLCJubyIsIm5yIiwibnYiLCJueSIsIm9jIiwib2oiLCJvbSIsIm9yIiwib3MiLCJwYSIsInBpIiwicGwiLCJwcyIsInB0IiwicXUiLCJybSIsInJuIiwicm8iLCJydSIsInJ3Iiwic2EiLCJzYyIsInNkIiwic2UiLCJzZyIsInNpIiwic2siLCJzbCIsInNtIiwic24iLCJzbyIsInNxIiwic3IiLCJzcyIsInN0Iiwic3UiLCJzdiIsInN3IiwidGEiLCJ0ZSIsInRnIiwidGgiLCJ0aSIsInRrIiwidGwiLCJ0biIsInRvIiwidHIiLCJ0cyIsInR0IiwidHciLCJ0eSIsInVnIiwidWsiLCJ1ciIsInV6IiwidmUiLCJ2aSIsInZvIiwid2EiLCJ3byIsInhoIiwieWkiLCJ5byIsInphIiwiemgiLCJ6dSJdKTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNTA2MTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9OygwLG8uZGVmYXVsdCkoZSk7dmFyIHI9dC5zdHJpY3RTZXBhcmF0b3I/YS50ZXN0KGUpOmkudGVzdChlKTtyZXR1cm4gciYmdC5zdHJpY3Q/cyhlKTpyfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPS9eKFtcKy1dP1xkezR9KD8hXGR7Mn1cYikpKCgtPykoKDBbMS05XXwxWzAtMl0pKFwzKFsxMl1cZHwwWzEtOV18M1swMV0pKT98VyhbMC00XVxkfDVbMC0zXSkoLT9bMS03XSk/fCgwMFsxLTldfDBbMS05XVxkfFsxMl1cZHsyfXwzKFswLTVdXGR8NlsxLTZdKSkpKFtUXHNdKCgoWzAxXVxkfDJbMC0zXSkoKDo/KVswLTVdXGQpP3wyNDo/MDApKFtcLixdXGQrKD8hOikpPyk/KFwxN1swLTVdXGQoW1wuLF1cZCspPyk/KFt6Wl18KFtcKy1dKShbMDFdXGR8MlswLTNdKTo/KFswLTVdXGQpPyk/KT8pPyQvLGE9L14oW1wrLV0/XGR7NH0oPyFcZHsyfVxiKSkoKC0/KSgoMFsxLTldfDFbMC0yXSkoXDMoWzEyXVxkfDBbMS05XXwzWzAxXSkpP3xXKFswLTRdXGR8NVswLTNdKSgtP1sxLTddKT98KDAwWzEtOV18MFsxLTldXGR8WzEyXVxkezJ9fDMoWzAtNV1cZHw2WzEtNl0pKSkoW1RdKCgoWzAxXVxkfDJbMC0zXSkoKDo/KVswLTVdXGQpP3wyNDo/MDApKFtcLixdXGQrKD8hOikpPyk/KFwxN1swLTVdXGQoW1wuLF1cZCspPyk/KFt6Wl18KFtcKy1dKShbMDFdXGR8MlswLTNdKTo/KFswLTVdXGQpPyk/KT8pPyQvLHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaCgvXihcZHs0fSktPyhcZHszfSkoWyBUXXsxfVwuKnwkKS8pO2lmKHQpe3ZhciByPU51bWJlcih0WzFdKSxuPU51bWJlcih0WzJdKTtyZXR1cm4gciU0PT0wJiZyJTEwMCE9MHx8ciU0MDA9PTA/bjw9MzY2Om48PTM2NX12YXIgbz1lLm1hdGNoKC8oXGR7NH0pLT8oXGR7MCwyfSktPyhcZCopLykubWFwKE51bWJlciksaT1vWzFdLGE9b1syXSxzPW9bM10sdT1hPyIwIi5jb25jYXQoYSkuc2xpY2UoLTIpOmEsYz1zPyIwIi5jb25jYXQocykuc2xpY2UoLTIpOnMsbD1uZXcgRGF0ZSgiIi5jb25jYXQoaSwiLSIpLmNvbmNhdCh1fHwiMDEiLCItIikuY29uY2F0KGN8fCIwMSIpKTtyZXR1cm4hYXx8IXN8fGwuZ2V0VVRDRnVsbFllYXIoKT09PWkmJmwuZ2V0VVRDTW9udGgoKSsxPT09YSYmbC5nZXRVVENEYXRlKCk9PT1zfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDMzOTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bQS1aXXsyfVswLTlBLVpdezN9XGR7Mn1cZHs1fSQvO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw5ODg3OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307KDAsby5kZWZhdWx0KShlKTt2YXIgcj1pO2lmKHI9dC5yZXF1aXJlX2h5cGhlbj9yLnJlcGxhY2UoIj8iLCIiKTpyLCEocj10LmNhc2Vfc2Vuc2l0aXZlP25ldyBSZWdFeHAocik6bmV3IFJlZ0V4cChyLCJpIikpLnRlc3QoZSkpcmV0dXJuITE7Zm9yKHZhciBuPWUucmVwbGFjZSgiLSIsIiIpLnRvVXBwZXJDYXNlKCksYT0wLHM9MDtzPG4ubGVuZ3RoO3MrKyl7dmFyIHU9bltzXTthKz0oIlgiPT09dT8xMDordSkqKDgtcyl9cmV0dXJuIGElMTE9PTB9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9Il5cXGR7NH0tP1xcZHszfVtcXGRYXSQiO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw5Mzk2OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKCgwLG4uZGVmYXVsdCkoZSksdCBpbiBhKXJldHVybiBhW3RdKGUpO2lmKCJhbnkiPT09dCl7Zm9yKHZhciByIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShyKSYmKDAsYVtyXSkoZSkpcmV0dXJuITA7cmV0dXJuITF9dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxvY2FsZSAnIi5jb25jYXQodCwiJyIpKX07dmFyIG49aShyKDU1NzEpKSxvPWkocig5MzcpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgYT17UEw6ZnVuY3Rpb24oZSl7KDAsbi5kZWZhdWx0KShlKTt2YXIgdD17MToxLDI6MywzOjcsNDo5LDU6MSw2OjMsNzo3LDg6OSw5OjEsMTA6MywxMTowfTtpZihudWxsIT1lJiYxMT09PWUubGVuZ3RoJiYoMCxvLmRlZmF1bHQpKGUse2FsbG93X2xlYWRpbmdfemVyb2VzOiEwfSkpe3ZhciByPWUuc3BsaXQoIiIpLnNsaWNlKDAsLTEpLnJlZHVjZSgoZnVuY3Rpb24oZSxyLG4pe3JldHVybiBlK051bWJlcihyKSp0W24rMV19KSwwKSUxMCxpPU51bWJlcihlLmNoYXJBdChlLmxlbmd0aC0xKSk7aWYoMD09PXImJjA9PT1pfHxpPT09MTAtcilyZXR1cm4hMH1yZXR1cm4hMX0sRVM6ZnVuY3Rpb24oZSl7KDAsbi5kZWZhdWx0KShlKTt2YXIgdD17WDowLFk6MSxaOjJ9LHI9ZS50cmltKCkudG9VcHBlckNhc2UoKTtpZighL15bMC05WC1aXVswLTldezd9W1RSV0FHTVlGUERYQk5KWlNRVkhMQ0tFXSQvLnRlc3QocikpcmV0dXJuITE7dmFyIG89ci5zbGljZSgwLC0xKS5yZXBsYWNlKC9bWCxZLFpdL2csKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSkpO3JldHVybiByLmVuZHNXaXRoKFsiVCIsIlIiLCJXIiwiQSIsIkciLCJNIiwiWSIsIkYiLCJQIiwiRCIsIlgiLCJCIiwiTiIsIkoiLCJaIiwiUyIsIlEiLCJWIiwiSCIsIkwiLCJDIiwiSyIsIkUiXVtvJTIzXSl9LEZJOmZ1bmN0aW9uKGUpe3JldHVybigwLG4uZGVmYXVsdCkoZSksMTE9PT1lLmxlbmd0aCYmKCEhZS5tYXRjaCgvXlxkezZ9W1wtQVwrXVxkezN9WzAtOUFCQ0RFRkhKS0xNTlBSU1RVVldYWV17MX0kLykmJiIwMTIzNDU2Nzg5QUJDREVGSEpLTE1OUFJTVFVWV1hZIlsoMWUzKnBhcnNlSW50KGUuc2xpY2UoMCw2KSwxMCkrcGFyc2VJbnQoZS5zbGljZSg3LDEwKSwxMCkpJTMxXT09PWUuc2xpY2UoMTAsMTEpKX0sSU46ZnVuY3Rpb24oZSl7dmFyIHQ9W1swLDEsMiwzLDQsNSw2LDcsOCw5XSxbMSwyLDMsNCwwLDYsNyw4LDksNV0sWzIsMyw0LDAsMSw3LDgsOSw1LDZdLFszLDQsMCwxLDIsOCw5LDUsNiw3XSxbNCwwLDEsMiwzLDksNSw2LDcsOF0sWzUsOSw4LDcsNiwwLDQsMywyLDFdLFs2LDUsOSw4LDcsMSwwLDQsMywyXSxbNyw2LDUsOSw4LDIsMSwwLDQsM10sWzgsNyw2LDUsOSwzLDIsMSwwLDRdLFs5LDgsNyw2LDUsNCwzLDIsMSwwXV0scj1bWzAsMSwyLDMsNCw1LDYsNyw4LDldLFsxLDUsNyw2LDIsOCwzLDAsOSw0XSxbNSw4LDAsMyw3LDksNiwxLDQsMl0sWzgsOSwxLDYsMCw0LDMsNSwyLDddLFs5LDQsNSwzLDEsMiw2LDgsNywwXSxbNCwyLDgsNiw1LDcsMyw5LDAsMV0sWzIsNyw5LDMsOCwwLDYsNCwxLDVdLFs3LDAsNCw2LDksMSwzLDIsNSw4XV0sbj1lLnRyaW0oKTtpZighL15bMS05XVxkezN9XHM/XGR7NH1ccz9cZHs0fSQvLnRlc3QobikpcmV0dXJuITE7dmFyIG89MDtyZXR1cm4gbi5yZXBsYWNlKC9ccy9nLCIiKS5zcGxpdCgiIikubWFwKE51bWJlcikucmV2ZXJzZSgpLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7bz10W29dW3JbbiU4XVtlXV19KSksMD09PW99LElSOmZ1bmN0aW9uKGUpe2lmKCFlLm1hdGNoKC9eXGR7MTB9JC8pKXJldHVybiExO2lmKGU9IjAwMDAiLmNvbmNhdChlKS5zbGljZShlLmxlbmd0aC02KSwwPT09cGFyc2VJbnQoZS5zbGljZSgzLDkpLDEwKSlyZXR1cm4hMTtmb3IodmFyIHQ9cGFyc2VJbnQoZS5zbGljZSg5LDEwKSwxMCkscj0wLG49MDtuPDk7bisrKXIrPXBhcnNlSW50KGUuc2xpY2UobixuKzEpLDEwKSooMTAtbik7cmV0dXJuKHIlPTExKTwyJiZ0PT09cnx8cj49MiYmdD09PTExLXJ9LElUOmZ1bmN0aW9uKGUpe3JldHVybiA5PT09ZS5sZW5ndGgmJiJDQTAwMDAwQUEiIT09ZSYmZS5zZWFyY2goL0NbQS1aXVswLTldezV9W0EtWl17Mn0vaSk+LTF9LE5POmZ1bmN0aW9uKGUpe3ZhciB0PWUudHJpbSgpO2lmKGlzTmFOKE51bWJlcih0KSkpcmV0dXJuITE7aWYoMTEhPT10Lmxlbmd0aClyZXR1cm4hMTtpZigiMDAwMDAwMDAwMDAiPT09dClyZXR1cm4hMTt2YXIgcj10LnNwbGl0KCIiKS5tYXAoTnVtYmVyKSxuPSgxMS0oMypyWzBdKzcqclsxXSs2KnJbMl0rMSpyWzNdKzgqcls0XSs5KnJbNV0rNCpyWzZdKzUqcls3XSsyKnJbOF0pJTExKSUxMSxvPSgxMS0oNSpyWzBdKzQqclsxXSszKnJbMl0rMipyWzNdKzcqcls0XSs2KnJbNV0rNSpyWzZdKzQqcls3XSszKnJbOF0rMipuKSUxMSklMTE7cmV0dXJuIG49PT1yWzldJiZvPT09clsxMF19LFRIOmZ1bmN0aW9uKGUpe2lmKCFlLm1hdGNoKC9eWzEtOF1cZHsxMn0kLykpcmV0dXJuITE7Zm9yKHZhciB0PTAscj0wO3I8MTI7cisrKXQrPXBhcnNlSW50KGVbcl0sMTApKigxMy1yKTtyZXR1cm4gZVsxMl09PT0oKDExLXQlMTEpJTEwKS50b1N0cmluZygpfSxMSzpmdW5jdGlvbihlKXtyZXR1cm4hKDEwIT09ZS5sZW5ndGh8fCEvXlsxLTldXGR7OH1bdnhdJC9pLnRlc3QoZSkpfHwhKDEyIT09ZS5sZW5ndGh8fCEvXlsxLTldXGR7MTF9JC9pLnRlc3QoZSkpfSwiaGUtSUwiOmZ1bmN0aW9uKGUpe3ZhciB0PWUudHJpbSgpO2lmKCEvXlxkezl9JC8udGVzdCh0KSlyZXR1cm4hMTtmb3IodmFyIHIsbj10LG89MCxpPTA7aTxuLmxlbmd0aDtpKyspbys9KHI9TnVtYmVyKG5baV0pKihpJTIrMSkpPjk/ci05OnI7cmV0dXJuIG8lMTA9PTB9LCJhci1MWSI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50cmltKCk7cmV0dXJuISEvXigxfDIpXGR7MTF9JC8udGVzdCh0KX0sImFyLVROIjpmdW5jdGlvbihlKXt2YXIgdD1lLnRyaW0oKTtyZXR1cm4hIS9eXGR7OH0kLy50ZXN0KHQpfSwiemgtQ04iOmZ1bmN0aW9uKGUpe3ZhciB0LHI9WyIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMjEiLCIyMiIsIjIzIiwiMzEiLCIzMiIsIjMzIiwiMzQiLCIzNSIsIjM2IiwiMzciLCI0MSIsIjQyIiwiNDMiLCI0NCIsIjQ1IiwiNDYiLCI1MCIsIjUxIiwiNTIiLCI1MyIsIjU0IiwiNjEiLCI2MiIsIjYzIiwiNjQiLCI2NSIsIjcxIiwiODEiLCI4MiIsIjkxIl0sbj1bIjciLCI5IiwiMTAiLCI1IiwiOCIsIjQiLCIyIiwiMSIsIjYiLCIzIiwiNyIsIjkiLCIxMCIsIjUiLCI4IiwiNCIsIjIiXSxvPVsiMSIsIjAiLCJYIiwiOSIsIjgiLCI3IiwiNiIsIjUiLCI0IiwiMyIsIjIiXSxpPWZ1bmN0aW9uKGUpe3JldHVybiByLmluY2x1ZGVzKGUpfSxhPWZ1bmN0aW9uKGUpe3ZhciB0PXBhcnNlSW50KGUuc3Vic3RyaW5nKDAsNCksMTApLHI9cGFyc2VJbnQoZS5zdWJzdHJpbmcoNCw2KSwxMCksbj1wYXJzZUludChlLnN1YnN0cmluZyg2KSwxMCksbz1uZXcgRGF0ZSh0LHItMSxuKTtyZXR1cm4hKG8+bmV3IERhdGUpJiZvLmdldEZ1bGxZZWFyKCk9PT10JiZvLmdldE1vbnRoKCk9PT1yLTEmJm8uZ2V0RGF0ZSgpPT09bn07cmV0dXJuISEvXlxkezE1fXwoXGR7MTd9KFxkfHh8WCkpJC8udGVzdCh0PWUpJiYoMTU9PT10Lmxlbmd0aD9mdW5jdGlvbihlKXt2YXIgdD0vXlsxLTldXGR7N30oKDBbMS05XSl8KDFbMC0yXSkpKCgwWzEtOV0pfChbMS0yXVswLTldKXwoM1swLTFdKSlcZHszfSQvLnRlc3QoZSk7aWYoIXQpcmV0dXJuITE7dmFyIHI9ZS5zdWJzdHJpbmcoMCwyKTtpZighKHQ9aShyKSkpcmV0dXJuITE7dmFyIG49IjE5Ii5jb25jYXQoZS5zdWJzdHJpbmcoNiwxMikpO3JldHVybiEhKHQ9YShuKSl9KHQpOmZ1bmN0aW9uKGUpe3ZhciB0PS9eWzEtOV1cZHs1fVsxLTldXGR7M30oKDBbMS05XSl8KDFbMC0yXSkpKCgwWzEtOV0pfChbMS0yXVswLTldKXwoM1swLTFdKSlcZHszfShcZHx4fFgpJC8udGVzdChlKTtpZighdClyZXR1cm4hMTt2YXIgcj1lLnN1YnN0cmluZygwLDIpO2lmKCEodD1pKHIpKSlyZXR1cm4hMTt2YXIgcz1lLnN1YnN0cmluZyg2LDE0KTtyZXR1cm4hISh0PWEocykpJiZmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc3Vic3RyaW5nKDAsMTcpLHI9MCxpPTA7aTwxNztpKyspcis9cGFyc2VJbnQodC5jaGFyQXQoaSksMTApKnBhcnNlSW50KG5baV0sMTApO3JldHVybiBvW3IlMTFdfShlKT09PWUuY2hhckF0KDE3KS50b1VwcGVyQ2FzZSgpfShlKX0odCkpfSwiemgtSEsiOmZ1bmN0aW9uKGUpe3ZhciB0PS9eWzAtOV0kLztpZihlPShlPWUudHJpbSgpKS50b1VwcGVyQ2FzZSgpLCEvXltBLVpdezEsMn1bMC05XXs2fSgoXChbMC05QV1cKSl8KFxbWzAtOUFdXF0pfChbMC05QV0pKSQvLnRlc3QoZSkpcmV0dXJuITE7OD09PShlPWUucmVwbGFjZSgvXFt8XF18XCh8XCkvZywiIikpLmxlbmd0aCYmKGU9IjMiLmNvbmNhdChlKSk7Zm9yKHZhciByPTAsbj0wO248PTc7bisrKXIrPSh0LnRlc3QoZVtuXSk/ZVtuXTooZVtuXS5jaGFyQ29kZUF0KDApLTU1KSUxMSkqKDktbik7cmV0dXJuKDA9PShyJT0xMSk/IjAiOjE9PT1yPyJBIjpTdHJpbmcoMTEtcikpPT09ZVtlLmxlbmd0aC0xXX0sInpoLVRXIjpmdW5jdGlvbihlKXt2YXIgdD17QToxMCxCOjExLEM6MTIsRDoxMyxFOjE0LEY6MTUsRzoxNixIOjE3LEk6MzQsSjoxOCxLOjE5LEw6MjAsTToyMSxOOjIyLE86MzUsUDoyMyxROjI0LFI6MjUsUzoyNixUOjI3LFU6MjgsVjoyOSxXOjMyLFg6MzAsWTozMSxaOjMzfSxyPWUudHJpbSgpLnRvVXBwZXJDYXNlKCk7cmV0dXJuISEvXltBLVpdWzAtOV17OX0kLy50ZXN0KHIpJiZBcnJheS5mcm9tKHIpLnJlZHVjZSgoZnVuY3Rpb24oZSxyLG4pe2lmKDA9PT1uKXt2YXIgbz10W3JdO3JldHVybiBvJTEwKjkrTWF0aC5mbG9vcihvLzEwKX1yZXR1cm4gOT09PW4/KDEwLWUlMTAtTnVtYmVyKHIpKSUxMD09MDplK051bWJlcihyKSooOS1uKX0pLDApfX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDcyMjg6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dmFyIHI7aWYoKDAsbi5kZWZhdWx0KShlKSwiW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXt2YXIgaT1bXTtmb3IociBpbiB0KSh7fSkuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYoaVtyXT0oMCxvLmRlZmF1bHQpKHRbcl0pKTtyZXR1cm4gaS5pbmRleE9mKGUpPj0wfXJldHVybiJvYmplY3QiPT09YSh0KT90Lmhhc093blByb3BlcnR5KGUpOiEoIXR8fCJmdW5jdGlvbiIhPXR5cGVvZiB0LmluZGV4T2YpJiZ0LmluZGV4T2YoZSk+PTB9O3ZhciBuPWkocig1NTcxKSksbz1pKHIoMTkxMykpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGE9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGEoZSl9ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDkzNzooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxvLmRlZmF1bHQpKGUpO3ZhciByPSh0PXR8fHt9KS5oYXNPd25Qcm9wZXJ0eSgiYWxsb3dfbGVhZGluZ196ZXJvZXMiKSYmIXQuYWxsb3dfbGVhZGluZ196ZXJvZXM/aTphLG49IXQuaGFzT3duUHJvcGVydHkoIm1pbiIpfHxlPj10Lm1pbixzPSF0Lmhhc093blByb3BlcnR5KCJtYXgiKXx8ZTw9dC5tYXgsdT0hdC5oYXNPd25Qcm9wZXJ0eSgibHQiKXx8ZTx0Lmx0LGM9IXQuaGFzT3duUHJvcGVydHkoImd0Iil8fGU+dC5ndDtyZXR1cm4gci50ZXN0KGUpJiZuJiZzJiZ1JiZjfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPS9eKD86Wy0rXT8oPzowfFsxLTldWzAtOV0qKSkkLyxhPS9eWy0rXT9bMC05XSskLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMTAwODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxuLmRlZmF1bHQpKGUpO3RyeXt0PSgwLG8uZGVmYXVsdCkodCxzKTt2YXIgcj1bXTt0LmFsbG93X3ByaW1pdGl2ZXMmJihyPVtudWxsLCExLCEwXSk7dmFyIGk9SlNPTi5wYXJzZShlKTtyZXR1cm4gci5pbmNsdWRlcyhpKXx8ISFpJiYib2JqZWN0Ij09PWEoaSl9Y2F0Y2goZSl7fXJldHVybiExfTt2YXIgbj1pKHIoNTU3MSkpLG89aShyKDQ4MDgpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiBhKGUpe3JldHVybiBhPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxhKGUpfXZhciBzPXthbGxvd19wcmltaXRpdmVzOiExfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDk3OTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7KDAsbi5kZWZhdWx0KShlKTt2YXIgdD1lLnNwbGl0KCIuIikscj10Lmxlbmd0aDtyZXR1cm4hKHI+M3x8cjwyKSYmdC5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJigwLG8uZGVmYXVsdCkodCx7dXJsU2FmZTohMH0pfSksITApfTt2YXIgbj1pKHIoNTU3MSkpLG89aShyKDI2ODkpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDc4OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKCgwLG4uZGVmYXVsdCkoZSksdD0oMCxvLmRlZmF1bHQpKHQsbCksIWUuaW5jbHVkZXMoIiwiKSlyZXR1cm4hMTt2YXIgcj1lLnNwbGl0KCIsIik7cmV0dXJuIShyWzBdLnN0YXJ0c1dpdGgoIigiKSYmIXJbMV0uZW5kc1dpdGgoIikiKXx8clsxXS5lbmRzV2l0aCgiKSIpJiYhclswXS5zdGFydHNXaXRoKCIoIikpJiYodC5jaGVja0RNUz91LnRlc3QoclswXSkmJmMudGVzdChyWzFdKTphLnRlc3QoclswXSkmJnMudGVzdChyWzFdKSl9O3ZhciBuPWkocig1NTcxKSksbz1pKHIoNDgwOCkpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBhPS9eXCg/WystXT8oOTAoXC4wKyk/fFsxLThdP1xkKFwuXGQrKT8pJC8scz0vXlxzP1srLV0/KDE4MChcLjArKT98MVswLTddXGQoXC5cZCspP3xcZHsxLDJ9KFwuXGQrKT8pXCk/JC8sdT0vXigoWzEtOF0/XGQpXEQrKFsxLTVdP1xkfDYwKVxEKyhbMS01XT9cZHw2MCkoXC5cZCspP3w5MFxEKzBcRCswKVxEK1tOU25zXT8kL2ksYz0vXlxzKihbMS03XT9cZHsxLDJ9XEQrKFsxLTVdP1xkfDYwKVxEKyhbMS01XT9cZHw2MCkoXC5cZCspP3wxODBcRCswXEQrMClcRCtbRVdld10/JC9pLGw9e2NoZWNrRE1TOiExfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDk1ODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcixuOygwLG8uZGVmYXVsdCkoZSksIm9iamVjdCI9PT1pKHQpPyhyPXQubWlufHwwLG49dC5tYXgpOihyPWFyZ3VtZW50c1sxXXx8MCxuPWFyZ3VtZW50c1syXSk7dmFyIGE9ZS5tYXRjaCgvKFx1RkUwRnxcdUZFMEUpL2cpfHxbXSxzPWUubWF0Y2goL1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS9nKXx8W10sdT1lLmxlbmd0aC1hLmxlbmd0aC1zLmxlbmd0aDtyZXR1cm4gdT49ciYmKHZvaWQgMD09PW58fHU8PW4pfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtmdW5jdGlvbiBpKGUpe3JldHVybiBpPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxpKGUpfWUuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwyNzg2OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe2lmKCgwLG8uZGVmYXVsdCkoZSksdCBpbiBpKXJldHVybiBpW3RdKGUpO2lmKCJhbnkiPT09dCl7Zm9yKHZhciByIGluIGkpaWYoKDAsaVtyXSkoZSkpcmV0dXJuITA7cmV0dXJuITF9dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGxvY2FsZSAnIi5jb25jYXQodCwiJyIpKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT17ImNzLUNaIjpmdW5jdGlvbihlKXtyZXR1cm4vXigoW0FCQ0RFRkhJSktMTU5QUlNUVVZYWVpdfFswLTldKS0/KXs1LDh9JC8udGVzdChlKX0sImRlLURFIjpmdW5jdGlvbihlKXtyZXR1cm4vXigoQXxBQXxBQnxBQ3xBRXxBSHxBS3xBTXxBTnxBw5Z8QVB8QVN8QVR8QVV8QVd8QVp8QnxCQXxCQnxCQ3xCRXxCRnxCSHxCSXxCS3xCTHxCTXxCTnxCT3xCw5Z8QlN8QlR8Qlp8Q3xDQXxDQnxDRXxDT3xDUnxDV3xEfERBfEREfERFfERIfERJfERMfERNfEROfERPfERVfERXfERafEV8RUF8RUJ8RUR8RUV8RUZ8RUd8RUh8RUl8RUx8RU18RU58RVJ8RVN8RVV8RVd8RnxGQnxGRHxGRnxGR3xGSXxGTHxGTnxGT3xGUnxGU3xGVHxGw5x8Rld8Rlp8R3xHQXxHQ3xHRHxHRXxHRnxHR3xHSXxHS3xHTHxHTXxHTnxHw5Z8R1B8R1J8R1N8R1R8R8OcfEdWfEdXfEdafEh8SEF8SEJ8SEN8SER8SEV8SEZ8SEd8SEh8SEl8SEt8SEx8SE18SE58SE98SFB8SFJ8SFN8SFV8SFZ8SFh8SFl8SFp8SUt8SUx8SU58SVp8SnxKRXxKTHxLfEtBfEtCfEtDfEtFfEtGfEtHfEtIfEtJfEtLfEtMfEtNfEtOfEtPfEtSfEtTfEtUfEtVfEtXfEtZfEx8TEF8TEJ8TEN8TER8TEZ8TEd8TEh8TEl8TEx8TE18TE58TMOWfExQfExSfExVfE18TUF8TUJ8TUN8TUR8TUV8TUd8TUh8TUl8TUt8TUx8TU18TU58TU98TVF8TVJ8TVN8TcOcfE1XfE1ZfE1afE58TkJ8TkR8TkV8TkZ8Tkh8Tkl8Tkt8Tk18TsOWfE5QfE5SfE5UfE5VfE5XfE5ZfE5afE9BfE9CfE9DfE9EfE9FfE9GfE9HfE9IfE9LfE9MfE9QfE9TfE9afFB8UEF8UEJ8UEV8UEZ8UEl8UEx8UE18UE58UFJ8UFN8UFd8UFp8UnxSQXxSQ3xSRHxSRXxSR3xSSHxSSXxSTHxSTXxSTnxST3xSUHxSU3xSVHxSVXxSVnxSV3xSWnxTfFNCfFNDfFNFfFNHfFNJfFNLfFNMfFNNfFNOfFNPfFNQfFNSfFNUfFNVfFNXfFNZfFNafFRFfFRGfFRHfFRPfFRQfFRSfFRTfFRUfFTDnHzDnEJ8VUV8VUh8VUx8VU18VU58VnxWQnxWR3xWS3xWUnxWU3xXfFdBfFdCfFdFfFdGfFdJfFdLfFdMfFdNfFdOfFdPfFdSfFdTfFdUfFfDnHxXV3xXWnxafFpFfFpJfFpQfFpSfFpXfFpaKVstIF0/W0EtWl17MSwyfVstIF0/XGR7MSw0fXwoQUJHfEFCSXxBSUJ8QUlDfEFMRnxBTFp8QU5BfEFOR3xBTkt8QVBEfEFSTnxBUlR8QVNMfEFTWnxBVVJ8QVpFfEJBRHxCQVJ8QkJHfEJDSHxCRUR8QkVSfEJHRHxCR0x8QklEfEJJTnxCSVJ8QklUfEJJV3xCS1N8QkxCfEJMS3xCTkF8Qk9HfEJPSHxCT1J8Qk9UfEJSQXxCUkJ8QlJHfEJSS3xCUkx8QlJWfEJTQnxCU0t8QlRGfELDnER8QlVMfELDnFJ8QsOcU3xCw5xafENBU3xDSEF8Q0xQfENMWnxDT0N8Q09FfENVWHxEQUh8REFOfERBVXxEQlJ8REVHfERFTHxER0Z8RElMfERJTnxESVp8REtCfERMR3xET058RFVEfETDnFd8RUJFfEVCTnxFQlN8RUNLfEVJQ3xFSUx8RUlOfEVJU3xFTUR8RU1TfEVSQnxFUkh8RVJLfEVSWnxFU0J8RVNXfEZEQnxGRFN8RkVVfEZGQnxGS0J8RkzDlnxGT1J8RlJHfEZSSXxGUld8RlRMfEbDnFN8R0FOfEdBUHxHREJ8R0VMfEdFT3xHRVJ8R0hBfEdIQ3xHTEF8R01OfEdOVHxHT0F8R09IfEdSQXxHUkh8R1JJfEdSTXxHUlp8R1RIfEdVQnxHVU58R1ZNfEhBQnxIQUx8SEFNfEhBU3xIQk58SEJTfEhDSHxIREh8SERMfEhFQnxIRUZ8SEVJfEhFUnxIRVR8SEdOfEhHV3xISE18SElHfEhJUHxITcOcfEhPR3xIT0h8SE9MfEhPTXxIT1J8SMOWU3xIT1R8SFJPfEhTS3xIU1R8SFZMfEhXSXxJR0J8SUxMfErDnEx8S0VIfEtFTHxLRU18S0lCfEtMRXxLTFp8S8OWTnxLw5ZUfEvDllp8S1JVfEvDnE58S1VTfEtZRnxMQU58TEFVfExCU3xMQlp8TERLfExEU3xMRU98TEVSfExFVnxMSUJ8TElGfExJUHxMw5ZCfExPU3xMUk98TFNafEzDnE58TFVQfExXTHxNQUJ8TUFJfE1BS3xNQUx8TUVEfE1FR3xNRUl8TUVLfE1FTHxNRVJ8TUVUfE1HSHxNR058TUhMfE1JTHxNS0t8TU9EfE1PTHxNT058TU9TfE1TRXxNU0h8TVNQfE1TVHxNVEt8TVRMfE3DnEJ8TcOcUnxNWUt8TVpHfE5BQnxOQUl8TkFVfE5ESHxORUF8TkVCfE5FQ3xORU58TkVTfE5FV3xOTUJ8Tk1TfE5PSHxOT0x8Tk9NfE5PUnxOVlB8TldNfE9BTHxPQkJ8T0JHfE9DSHxPSEF8w5ZIUnxPSFZ8T0hafE9QUnxPU0x8T1ZJfE9WTHxPVlB8UEFGfFBBTnxQQVJ8UENIfFBFR3xQSVJ8UEzDlnxQUsOcfFFGVHxRTEJ8UkRHfFJFR3xSRUh8UkVJfFJJRHxSSUV8Uk9EfFJPRnxST0t8Uk9MfFJPU3xST1R8Uk9XfFJTTHxSw5xEfFLDnEd8U0FCfFNBRHxTQU58U0FXfFNCR3xTQkt8U0NafFNESHxTREx8U0RUfFNFQnxTRUV8U0VGfFNFTHxTRkJ8U0ZUfFNHSHxTSEF8U0hHfFNIS3xTSEx8U0lHfFNJTXxTTEV8U0xGfFNMS3xTTE58U0xTfFNMw5x8U0xafFNNw5x8U09CfFNPR3xTT0t8U8OWTXxTT058U1BCfFNQTnxTUkJ8U1JPfFNUQXxTVEJ8U1REfFNURXxTVEx8U1VMfFPDnFd8U1dBfFNaQnxUQkJ8VERPfFRFVHxUSVJ8VMOWTHxUVVR8VUVNfFVFUnxVRkZ8VVNJfFZBSXxWRUN8VkVSfFZJQnxWSUV8VklUfFZPSHxXQUZ8V0FLfFdBTnxXQVJ8V0FUfFdCU3xXREF8V0VMfFdFTnxXRVJ8V0VTfFdIVnxXSUx8V0lTfFdJVHxXSVp8V0xHfFdNU3xXTkR8V09CfFdPSHxXT0x8V09SfFdPU3xXUk58V1NGfFdTVHxXU1d8V1RMfFdUTXxXVUd8V8OcTXxXVU58V1VSfFdaTHxaRUx8WklHKVstIF0/KChbQS1aXVstIF0/XGR7MSw0fSl8KFtBLVpdezJ9Wy0gXT9cZHsxLDN9KSkpWy0gXT8oRXxIKT8kLy50ZXN0KGUpfSwiZGUtTEkiOmZ1bmN0aW9uKGUpe3JldHVybi9eRkxbLSBdP1xkezEsNX1bVVpdPyQvLnRlc3QoZSl9LCJlbi1JTiI6ZnVuY3Rpb24oZSl7cmV0dXJuL15bQS1aXXsyfVsgLV0/WzAtOV17MSwyfSg/OlsgLV0/W0EtWl0pKD86WyAtXT9bQS1aXSopP1sgLV0/WzAtOV17NH0kLy50ZXN0KGUpfSwiZXMtQVIiOmZ1bmN0aW9uKGUpe3JldHVybi9eKChbQS1aXXsyfSA/WzAtOV17M30gP1tBLVpdezJ9KXwoW0EtWl17M30gP1swLTldezN9KSkkLy50ZXN0KGUpfSwiZmktRkkiOmZ1bmN0aW9uKGUpe3JldHVybi9eKD89Lns0LDd9KSgoW0EtWl17MSwzfXxbMC05XXsxLDN9KVtccy1dPyhbQS1aXXsxLDN9fFswLTldezEsNX0pKSQvLnRlc3QoZSl9LCJodS1IVSI6ZnVuY3Rpb24oZSl7cmV0dXJuL14oKCgoPyFBQUEpKChbQS1OUFJTVFZaV1hZXXsxfSkoW0EtUFItWl17MX0pKFtBLUhKLU5QUi1aXSkpfChBW0FCQ11JKXxBW0FCQ11PfEFbQS1XXVF8QlBJfEJQT3xVQ098VURPfFhBTyktKD8hMDAwKVxkezN9KXwoTVxkezZ9KXwoKENLfERUfENEfEhDfEhbQUJFRklLTE1OUFJTVFZYXXxNQXxPVHxSW0EtWl0pIFxkezJ9LVxkezJ9KXwoQ0QgXGR7M30tXGR7M30pfChDLShDfFgpIFxkezR9KXwoWC0oQXxCfEMpIFxkezR9KXwoKFtFUFZaXS1cZHs1fSkpfChTIEFbQS1aXXsyfSBcZHsyfSl8KFNQIFxkezJ9LVxkezJ9KSkkLy50ZXN0KGUpfSwicHQtQlIiOmZ1bmN0aW9uKGUpe3JldHVybi9eW0EtWl17M31bIC1dP1swLTldW0EtWl1bMC05XXsyfXxbQS1aXXszfVsgLV0/WzAtOV17NH0kLy50ZXN0KGUpfSwicHQtUFQiOmZ1bmN0aW9uKGUpe3JldHVybi9eKFtBLVpdezJ9fFswLTldezJ9KVsgLcK3XT8oW0EtWl17Mn18WzAtOV17Mn0pWyAtwrddPyhbQS1aXXsyfXxbMC05XXsyfSkkLy50ZXN0KGUpfSwic3EtQUwiOmZ1bmN0aW9uKGUpe3JldHVybi9eW0EtWl17Mn1bLSBdPygoXGR7M31bLSBdPygoW0EtWl17Mn0pfFQpKXwoUlstIF0/XGR7M30pKSQvLnRlc3QoZSl9LCJzdi1TRSI6ZnVuY3Rpb24oZSl7cmV0dXJuL15bQS1ISi1QUi1VVy1aXXszfSA/W1xkXXsyfVtBLUhKLVBSLVVXLVoxLTldJHwoXltBLVrDhcOEw5YgXXsyLDd9JCkvLnRlc3QoZS50cmltKCkpfX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDczODA6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksImVuX1VTX1BPU0lYIj09PWV8fCJjYV9FU19WQUxFTkNJQSI9PT1lfHxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bQS1aYS16XXsyLDR9KFtfLV0oW0EtWmEtel17NH18W1xkXXszfSkpPyhbXy1dKFtBLVphLXpdezJ9fFtcZF17M30pKT8kLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMzkyODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxlPT09ZS50b0xvd2VyQ2FzZSgpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMTU5MjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7KDAsby5kZWZhdWx0KShlKTtmb3IodmFyIHQscixuLGk9ZS5yZXBsYWNlKC9bLSBdKy9nLCIiKSxhPTAscz1pLmxlbmd0aC0xO3M+PTA7cy0tKXQ9aS5zdWJzdHJpbmcocyxzKzEpLHI9cGFyc2VJbnQodCwxMCksYSs9biYmKHIqPTIpPj0xMD9yJTEwKzE6cixuPSFuO3JldHVybiEoYSUxMCE9MHx8IWkpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODk5OTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24gZSh0LHIpe3JldHVybigwLG8uZGVmYXVsdCkodCksbnVsbCE9ciYmci5ldWkmJihyLmV1aT1TdHJpbmcoci5ldWkpKSxudWxsIT1yJiZyLm5vX2NvbG9uc3x8bnVsbCE9ciYmci5ub19zZXBhcmF0b3JzPyI0OCI9PT1yLmV1aT9hLnRlc3QodCk6IjY0Ij09PXIuZXVpP2MudGVzdCh0KTphLnRlc3QodCl8fGMudGVzdCh0KToiNDgiPT09KG51bGw9PXI/dm9pZCAwOnIuZXVpKT9pLnRlc3QodCl8fHMudGVzdCh0KToiNjQiPT09KG51bGw9PXI/dm9pZCAwOnIuZXVpKT91LnRlc3QodCl8fGwudGVzdCh0KTplKHQse2V1aToiNDgifSl8fGUodCx7ZXVpOiI2NCJ9KX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vXig/OlswLTlhLWZBLUZdezJ9KFstOlxzXSkpKFswLTlhLWZBLUZdezJ9XDEpezR9KFswLTlhLWZBLUZdezJ9KSQvLGE9L14oWzAtOWEtZkEtRl0pezEyfSQvLHM9L14oWzAtOWEtZkEtRl17NH1cLil7Mn0oWzAtOWEtZkEtRl17NH0pJC8sdT0vXig/OlswLTlhLWZBLUZdezJ9KFstOlxzXSkpKFswLTlhLWZBLUZdezJ9XDEpezZ9KFswLTlhLWZBLUZdezJ9KSQvLGM9L14oWzAtOWEtZkEtRl0pezE2fSQvLGw9L14oWzAtOWEtZkEtRl17NH1cLil7M30oWzAtOWEtZkEtRl17NH0pJC87ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDM2ODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bYS1mMC05XXszMn0kLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjc3NjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSwwPT09ZS5pbmRleE9mKCJtYWduZXQ6PyIpJiZpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9Lyg/Ol5tYWduZXQ6XD98W14/Jl0mKXh0KD86XC4xKT89dXJuOig/Oig/OmFpY2h8Yml0cHJpbnR8YnRpaHxlZDJrfGVkMmtoYXNofGt6aGFzaHxtZDV8c2hhMXx0cmVlOnRpZ2VyKTpbYS16MC05XXszMn0oPzpbYS16MC05XXs4fSk/fGJ0bWg6MTIyMFthLXowLTldezY0fSkoPzokfCYpL2k7ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDQ1NTQ6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksaS50ZXN0KGUpfHxhLnRlc3QoZSl8fHMudGVzdChlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vXihhcHBsaWNhdGlvbnxhdWRpb3xmb250fGltYWdlfG1lc3NhZ2V8bW9kZWx8bXVsdGlwYXJ0fHRleHR8dmlkZW8pXC9bYS16QS1aMC05XC5cLVwrX117MSwxMDB9JC9pLGE9L150ZXh0XC9bYS16QS1aMC05XC5cLVwrXXsxLDEwMH07XHM/Y2hhcnNldD0oIlthLXpBLVowLTlcLlwtXCtcc117MCw3MH0ifFthLXpBLVowLTlcLlwtXCtdezAsNzB9KShccz9cKFthLXpBLVowLTlcLlwtXCtcc117MSwyMH1cKSk/JC9pLHM9L15tdWx0aXBhcnRcL1thLXpBLVowLTlcLlwtXCtdezEsMTAwfSg7XHM/KGJvdW5kYXJ5fGNoYXJzZXQpPSgiW2EtekEtWjAtOVwuXC1cK1xzXXswLDcwfSJ8W2EtekEtWjAtOVwuXC1cK117MCw3MH0pKFxzP1woW2EtekEtWjAtOVwuXC1cK1xzXXsxLDIwfVwpKT8pezAsMn0kL2k7ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDgzNTU6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCxyKXtpZigoMCxvLmRlZmF1bHQpKGUpLHImJnIuc3RyaWN0TW9kZSYmIWUuc3RhcnRzV2l0aCgiKyIpKXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuISghaS5oYXNPd25Qcm9wZXJ0eSh0KXx8IWlbdF0udGVzdChlKSl9KSk7aWYodCBpbiBpKXJldHVybiBpW3RdLnRlc3QoZSk7aWYoIXR8fCJhbnkiPT09dCl7Zm9yKHZhciBuIGluIGkpaWYoaS5oYXNPd25Qcm9wZXJ0eShuKSYmaVtuXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsb2NhbGUgJyIuY29uY2F0KHQsIiciKSl9LHQubG9jYWxlcz12b2lkIDA7dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT17ImFtLUFNIjovXihcKz8zNzR8MCkoKDEwfFs5fDddWzAtOV0pXGR7Nn0kfFsyLTRdXGR7N30kKS8sImFyLUFFIjovXigoXCs/OTcxKXwwKT81WzAyNDU2OF1cZHs3fSQvLCJhci1CSCI6L14oXCs/OTczKT8oM3w2KVxkezd9JC8sImFyLURaIjovXihcKz8yMTN8MCkoNXw2fDcpXGR7OH0kLywiYXItTEIiOi9eKFwrPzk2MSk/KCgzfDgxKVxkezZ9fDdcZHs3fSkkLywiYXItRUciOi9eKChcKz8yMCl8MCk/MVswMTI1XVxkezh9JC8sImFyLUlRIjovXihcKz85NjR8MCk/N1swLTldXGR7OH0kLywiYXItSk8iOi9eKFwrPzk2MnwwKT83Wzc4OV1cZHs3fSQvLCJhci1LVyI6L14oXCs/OTY1KShbNTY5XVxkezd9fDQxXGR7Nn0pJC8sImFyLUxZIjovXigoXCs/MjE4KXwwKT8oOVsxLTZdXGR7N318WzEtOF1cZHs3LDl9KSQvLCJhci1NQSI6L14oPzooPzpcK3wwMCkyMTJ8MClbNS03XVxkezh9JC8sImFyLU9NIjovXigoXCt8MDApOTY4KT8oOVsxLTldKVxkezZ9JC8sImFyLVBTIjovXihcKz85NzB8MCk1WzZ8OV0oXGR7N30pJC8sImFyLVNBIjovXighPyhcKz85NjYpfDApPzVcZHs4fSQvLCJhci1TWSI6L14oIT8oXCs/OTYzKXwwKT85XGR7OH0kLywiYXItVE4iOi9eKFwrPzIxNik/WzI0NTldXGR7N30kLywiYXotQVoiOi9eKFwrOTk0fDApKDEwfDVbMDE1XXw3WzA3XXw5OSlcZHs3fSQvLCJicy1CQSI6L14oKCgoXCt8MDApMzg3Nil8MDYpKSgoKFswLTNdfFs1LTZdKVxkezZ9KXwoNFxkezd9KSkkLywiYmUtQlkiOi9eKFwrPzM3NSk/KDI0fDI1fDI5fDMzfDQ0KVxkezd9JC8sImJnLUJHIjovXihcKz8zNTl8MCk/OFs3ODldXGR7N30kLywiYm4tQkQiOi9eKFwrPzg4MHwwKTFbMTM0NTY3ODldWzAtOV17OH0kLywiY2EtQUQiOi9eKFwrMzc2KT9bMzQ2XVxkezV9JC8sImNzLUNaIjovXihcKz80MjApPyA/WzEtOV1bMC05XXsyfSA/WzAtOV17M30gP1swLTldezN9JC8sImRhLURLIjovXihcKz80NSk/XHM/XGR7Mn1ccz9cZHsyfVxzP1xkezJ9XHM/XGR7Mn0kLywiZGUtREUiOi9eKChcKzQ5fDApMSkoNVswLTI1LTldXGR8NihbMjNdfDBcZD8pfDcoWzAtNTctOV18NlxkKSlcZHs3LDl9JC8sImRlLUFUIjovXihcKzQzfDApXGR7MSw0fVxkezMsMTJ9JC8sImRlLUNIIjovXihcKzQxfDApKFsxLTldKVxkezEsOX0kLywiZGUtTFUiOi9eKFwrMzUyKT8oKDZcZDEpXGR7Nn0pJC8sImR2LU1WIjovXihcKz85NjApPyg3WzItOV18OVsxLTldKVxkezV9JC8sImVsLUdSIjovXihcKz8zMHwwKT82KDhbNS05XXw5KD8hWzI2XSlbMC05XSlcZHs3fSQvLCJlbC1DWSI6L14oXCs/MzU3Pyk/KDkoOXw2KVxkezZ9KSQvLCJlbi1BSSI6L14oXCs/MXwwKTI2NCg/OjIoMzV8OTIpfDQoPzo2WzEtMl18NzZ8OTcpfDUoPzozWzYtOV18OFsxLTRdKXw3KD86Mig0fDkpfDcyKSlcZHs0fSQvLCJlbi1BVSI6L14oXCs/NjF8MCk0XGR7OH0kLywiZW4tQUciOi9eKD86XCsxfDEpMjY4KD86NDY0fDcoPzoxWzMtOV18WzI4XVxkfDNbMDI0Nl18NjR8N1swLTY4OV0pKVxkezR9JC8sImVuLUJNIjovXihcKz8xKT80NDEoKCgzfDcpXGR7Nn0kKXwoNVswLTNdWzAtOV1cZHs0fSQpfCg1OVxkezV9JCkpLywiZW4tQlMiOi9eKFwrPzFbLVxzXT98MCk/XCg/MjQyXCk/Wy1cc10/XGR7M31bLVxzXT9cZHs0fSQvLCJlbi1HQiI6L14oXCs/NDR8MCk3XGR7OX0kLywiZW4tR0ciOi9eKFwrPzQ0fDApMTQ4MVxkezZ9JC8sImVuLUdIIjovXihcKzIzM3wwKSgyMHw1MHwyNHw1NHwyN3w1N3wyNnw1NnwyM3wyOHw1NXw1OSlcZHs3fSQvLCJlbi1HWSI6L14oXCs1OTJ8MCk2XGR7Nn0kLywiZW4tSEsiOi9eKFwrPzg1MlstXHNdPyk/WzQ1Njc4OV1cZHszfVstXHNdP1xkezR9JC8sImVuLU1PIjovXihcKz84NTNbLVxzXT8pP1s2XVxkezN9Wy1cc10/XGR7NH0kLywiZW4tSUUiOi9eKFwrPzM1M3wwKThbMzU2Nzg5XVxkezd9JC8sImVuLUlOIjovXihcKz85MXwwKT9bNjc4OV1cZHs5fSQvLCJlbi1KTSI6L14oXCs/ODc2KT9cZHs3fSQvLCJlbi1LRSI6L14oXCs/MjU0fDApKDd8MSlcZHs4fSQvLCJlbi1TUyI6L14oXCs/MjExfDApKDlbMTI1N10pXGR7N30kLywiZW4tS0kiOi9eKChcKzY4Nnw2ODYpPyk/KCApPygoNnw3KSgyfDN8OClbMC05XXs2fSkkLywiZW4tS04iOi9eKD86XCsxfDEpODY5KD86NDZcZHw0OFs4OV18NTVbNi04XXw2NlxkfDc2WzAyLTddKVxkezR9JC8sImVuLUxTIjovXihcKz8yNjYpKDIyfDI4fDU3fDU4fDU5fDI3fDUyKVxkezZ9JC8sImVuLU1UIjovXihcKz8zNTZ8MCk/KDk5fDc5fDc3fDIxfDI3fDIyfDI1KVswLTldezZ9JC8sImVuLU1VIjovXihcKz8yMzB8MCk/XGR7OH0kLywiZW4tTkEiOi9eKFwrPzI2NHwwKSg2fDgpXGR7N30kLywiZW4tTkciOi9eKFwrPzIzNHwwKT9bNzg5XVxkezl9JC8sImVuLU5aIjovXihcKz82NHwwKVsyOF1cZHs3LDl9JC8sImVuLVBHIjovXihcKz82NzV8MCk/KDdcZHw4WzE4XSlcZHs2fSQvLCJlbi1QSyI6L14oKDAwfFwrKT85MnwwKTNbMC02XVxkezh9JC8sImVuLVBIIjovXigwOXxcKzYzOSlcZHs5fSQvLCJlbi1SVyI6L14oXCs/MjUwfDApP1s3XVxkezh9JC8sImVuLVNHIjovXihcKzY1KT9bMzY4OV1cZHs3fSQvLCJlbi1TTCI6L14oXCs/MjMyfDApXGR7OH0kLywiZW4tVFoiOi9eKFwrPzI1NXwwKT9bNjddXGR7OH0kLywiZW4tVUciOi9eKFwrPzI1NnwwKT9bN11cZHs4fSQvLCJlbi1VUyI6L14oKFwrMXwxKT8oIHwtKT8pPyhcKFsyLTldWzAtOV17Mn1cKXxbMi05XVswLTldezJ9KSggfC0pPyhbMi05XVswLTldezJ9KCB8LSk/WzAtOV17NH0pJC8sImVuLVpBIjovXihcKz8yN3wwKVxkezl9JC8sImVuLVpNIjovXihcKz8yNik/MDlbNTY3XVxkezd9JC8sImVuLVpXIjovXihcKzI2MylbMC05XXs5fSQvLCJlbi1CVyI6L14oXCs/MjY3KT8oN1sxLThdezF9KVxkezZ9JC8sImVzLUFSIjovXlwrPzU0OSgxMXxbMjM2OF1cZClcZHs4fSQvLCJlcy1CTyI6L14oXCs/NTkxKT8oNnw3KVxkezd9JC8sImVzLUNPIjovXihcKz81Nyk/MygwKDB8MXwyfDR8NSl8MVxkfDJbMC00XXw1KDB8MSkpXGR7N30kLywiZXMtQ0wiOi9eKFwrPzU2fDApWzItOV1cZHsxfVxkezd9JC8sImVzLUNSIjovXihcKzUwNik/WzItOF1cZHs3fSQvLCJlcy1DVSI6L14oXCs1M3wwMDUzKT81XGR7N30vLCJlcy1ETyI6L14oXCs/MSk/OFswMjRdOVxkezd9JC8sImVzLUhOIjovXihcKz81MDQpP1s5fDh8M3wyXVxkezd9JC8sImVzLUVDIjovXihcKz81OTN8MCkoWzItN118OVsyLTldKVxkezd9JC8sImVzLUVTIjovXihcKz8zNCk/WzZ8N11cZHs4fSQvLCJlcy1QRSI6L14oXCs/NTEpPzlcZHs4fSQvLCJlcy1NWCI6L14oXCs/NTIpPygxfDAxKT9cZHsxMCwxMX0kLywiZXMtTkkiOi9eKFwrPzUwNSlcZHs3LDh9JC8sImVzLVBBIjovXihcKz81MDcpXGR7Nyw4fSQvLCJlcy1QWSI6L14oXCs/NTk1fDApOVs5ODc2XVxkezd9JC8sImVzLVNWIjovXihcKz81MDMpP1s2N11cZHs3fSQvLCJlcy1VWSI6L14oXCs1OTh8MCk5WzEtOV1bXGRdezZ9JC8sImVzLVZFIjovXihcKz81OCk/KDJ8NClcZHs5fSQvLCJldC1FRSI6L14oXCs/MzcyKT9ccz8oNXw4WzEtNF0pXHM/KFswLTldXHM/KXs2LDd9JC8sImZhLUlSIjovXihcKz85OFtcLVxzXT98MCk5WzAtMzldXGRbXC1cc10/XGR7M31bXC1cc10/XGR7NH0kLywiZmktRkkiOi9eKFwrPzM1OHwwKVxzPyg0WzAtNl18NTApXHM/KFxkXHM/KXs0LDh9JC8sImZqLUZKIjovXihcKz82NzkpP1xzP1xkezN9XHM/XGR7NH0kLywiZm8tRk8iOi9eKFwrPzI5OCk/XHM/XGR7Mn1ccz9cZHsyfVxzP1xkezJ9JC8sImZyLUJGIjovXihcKzIyNnwwKVs2N11cZHs3fSQvLCJmci1CSiI6L14oXCsyMjkpXGR7OH0kLywiZnItQ0QiOi9eKFwrPzI0M3wwKT8oOHw5KVxkezh9JC8sImZyLUNNIjovXihcKz8yMzcpNlswLTldezh9JC8sImZyLUZSIjovXihcKz8zM3wwKVs2N11cZHs4fSQvLCJmci1HRiI6L14oXCs/NTk0fDB8MDA1OTQpWzY3XVxkezh9JC8sImZyLUdQIjovXihcKz81OTB8MHwwMDU5MClbNjddXGR7OH0kLywiZnItTVEiOi9eKFwrPzU5NnwwfDAwNTk2KVs2N11cZHs4fSQvLCJmci1QRiI6L14oXCs/Njg5KT84Wzc4OV1cZHs2fSQvLCJmci1SRSI6L14oXCs/MjYyfDB8MDAyNjIpWzY3XVxkezh9JC8sImhlLUlMIjovXihcKzk3MnwwKShbMjM0ODldfDVbMDEyMzQ1Njg5XXw3NylbMS05XVxkezZ9JC8sImh1LUhVIjovXihcKz8zNnwwNikoMjB8MzB8MzF8NTB8NzApXGR7N30kLywiaWQtSUQiOi9eKFwrPzYyfDApOCgxWzEyMzQ1Njc4OV18MlsxMjM4XXwzWzEyMzhdfDVbMTIzNTY3ODldfDdbNzhdfDlbNTY3ODldfDhbMTIzNDU2Nzg5XSkoW1xzP3xcZF17NSwxMX0pJC8sImlyLUlSIjovXihcKzk4fDApPzlcZHs5fSQvLCJpdC1JVCI6L14oXCs/MzkpP1xzPzNcZHsyfSA/XGR7Niw3fSQvLCJpdC1TTSI6L14oKFwrMzc4KXwoMDU0OSl8KFwrMzkwNTQ5KXwoXCszNzgwNTQ5KSk/NlxkezUsOX0kLywiamEtSlAiOi9eKFwrODFbIFwtXT8oXCgwXCkpP3wwKVs2Nzg5XTBbIFwtXT9cZHs0fVsgXC1dP1xkezR9JC8sImthLUdFIjovXihcKz85OTUpPyg3OVxkezd9fDVcZHs4fSkkLywia2stS1oiOi9eKFwrPzd8OCk/N1xkezl9JC8sImtsLUdMIjovXihcKz8yOTkpP1xzP1xkezJ9XHM/XGR7Mn1ccz9cZHsyfSQvLCJrby1LUiI6L14oKFwrPzgyKVsgXC1dPyk/MD8xKFswfDF8Nnw3fDh8OV17MX0pWyBcLV0/XGR7Myw0fVsgXC1dP1xkezR9JC8sImt5LUtHIjovXihcKz83XHM/XCs/N3wwKVxzP1xkezJ9XHM/XGR7M31ccz9cZHs0fSQvLCJsdC1MVCI6L14oXCszNzB8OClcZHs4fSQvLCJsdi1MViI6L14oXCs/MzcxKTJcZHs3fSQvLCJtZy1NRyI6L14oKFwrPzI2MXwwKSgyfDMpXGQpP1xkezd9JC8sIm1uLU1OIjovXihcK3wwMHwwMTEpPzk3Nig3N3w4MXw4OHw5MXw5NHw5NXw5Nnw5OSlcZHs2fSQvLCJteS1NTSI6L14oXCs/OTU5fDA5fDkpKDJbNS03XXwzWzEtMl18NFswLTVdfDZbNi05XXw3WzUtOV18OVs2LTldKVswLTldezd9JC8sIm1zLU1ZIjovXihcKz82MHwwKTEoKFswMTQ1XSgtfFxzKT9cZHs3LDh9KXwoWzIzNi05XSgtfFxzKT9cZHs3fSkpJC8sIm16LU1aIjovXihcKz8yNTgpPzhbMjM0NTY3XVxkezd9JC8sIm5iLU5PIjovXihcKz80Nyk/WzQ5XVxkezd9JC8sIm5lLU5QIjovXihcKz85NzcpPzlbNzhdXGR7OH0kLywibmwtQkUiOi9eKFwrPzMyfDApNFxkezh9JC8sIm5sLU5MIjovXigoKFwrfDAwKT8zMVwoMFwpKXwoKFwrfDAwKT8zMSl8MCk2ezF9XGR7OH0kLywibmwtQVciOi9eKFwrKT8yOTcoNTZ8NTl8NjR8NzN8NzR8OTkpXGR7NX0kLywibm4tTk8iOi9eKFwrPzQ3KT9bNDldXGR7N30kLywicGwtUEwiOi9eKFwrPzQ4KT8gP1s1LThdXGQgP1xkezN9ID9cZHsyfSA/XGR7Mn0kLywicHQtQlIiOi9eKChcKz81NVwgP1sxLTldezJ9XCA/KXwoXCs/NTVcID9cKFsxLTldezJ9XClcID8pfCgwWzEtOV17Mn1cID8pfChcKFsxLTldezJ9XClcID8pfChbMS05XXsyfVwgPykpKChcZHs0fVwtP1xkezR9KXwoOVsxLTldezF9XGR7M31cLT9cZHs0fSkpJC8sInB0LVBUIjovXihcKz8zNTEpPzlbMTIzNl1cZHs3fSQvLCJwdC1BTyI6L14oXCsyNDQpXGR7OX0kLywicm8tTUQiOi9eKFwrPzM3M3wwKSgoNigwfDF8Mnw2fDd8OHw5KSl8KDcoNnw3fDh8OSkpKVxkezZ9JC8sInJvLVJPIjovXihcKz80MHwwKVxzPzdcZHsyfShcL3xcc3xcLnwtKT9cZHszfShcc3xcLnwtKT9cZHszfSQvLCJydS1SVSI6L14oXCs/N3w4KT85XGR7OX0kLywic2ktTEsiOi9eKD86MHw5NHxcKzk0KT8oNygwfDF8Mnw0fDV8Nnw3fDgpKCB8LSk/KVxkezd9JC8sInNsLVNJIjovXihcKzM4NlxzP3wwKShcZHsxfVxzP1xkezN9XHM/XGR7Mn1ccz9cZHsyfXxcZHsyfVxzP1xkezN9XHM/XGR7M30pJC8sInNrLVNLIjovXihcKz80MjEpPyA/WzEtOV1bMC05XXsyfSA/WzAtOV17M30gP1swLTldezN9JC8sInNxLUFMIjovXihcKzM1NXwwKTZbNzg5XVxkezZ9JC8sInNyLVJTIjovXihcKzM4MTZ8MDYpWy0gXGRdezUsOX0kLywic3YtU0UiOi9eKFwrPzQ2fDApW1xzXC1dPzdbXHNcLV0/WzAyMzY5XShbXHNcLV0/XGQpezd9JC8sInRnLVRKIjovXihcKz85OTIpP1s1XVs1XVxkezd9JC8sInRoLVRIIjovXihcKzY2fDY2fDApXGR7OX0kLywidHItVFIiOi9eKFwrPzkwfDApPzVcZHs5fSQvLCJ0ay1UTSI6L14oXCs5OTN8OTkzfDgpXGR7OH0kLywidWstVUEiOi9eKFwrPzM4fDgpPzBcZHs5fSQvLCJ1ei1VWiI6L14oXCs/OTk4KT8oNlsxMjUtNzldfDdbMS02OV18ODh8OVxkKVxkezd9JC8sInZpLVZOIjovXigoXCs/ODQpfDApKCgzKFsyLTldKSl8KDUoWzI1Njg5XSkpfCg3KFswfDYtOV0pKXwoOChbMS05XSkpfCg5KFswLTldKSkpKFswLTldezd9KSQvLCJ6aC1DTiI6L14oKFwrfDAwKTg2KT8oMVszLTldfDlbMjhdKVxkezl9JC8sInpoLVRXIjovXihcKz84ODZcLT98MCk/OVxkezh9JC8sImR6LUJUIjovXihcKz85NzV8MCk/KDE3fDE2fDc3fDAyKVxkezZ9JC8sImFyLVlFIjovXigoKFwrfDAwKTk2Nzd8MD83KVswMTM3XVxkezd9fCgoXCt8MDApOTY3fDApWzEtN11cZHs2fSkkLywiYXItRUgiOi9eKFwrPzIxMnwwKVtcc1wtXT8oNTI4OHw1Mjg5KVtcc1wtXT9cZHs1fSQvLCJmYS1BRiI6L14oXCs5M3wwKT8oMnsxfVswLThdezF9fFszLTVdezF9WzAtNF17MX0pKFxkezd9KSQvfTtpWyJlbi1DQSJdPWlbImVuLVVTIl0saVsiZnItQ0EiXT1pWyJlbi1DQSJdLGlbImZyLUJFIl09aVsibmwtQkUiXSxpWyJ6aC1ISyJdPWlbImVuLUhLIl0saVsiemgtTU8iXT1pWyJlbi1NTyJdLGlbImdhLUlFIl09aVsiZW4tSUUiXSxpWyJmci1DSCJdPWlbImRlLUNIIl0saVsiaXQtQ0giXT1pWyJmci1DSCJdO3ZhciBhPU9iamVjdC5rZXlzKGkpO3QubG9jYWxlcz1hfSw5MTMxOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxuLmRlZmF1bHQpKGUpLCgwLG8uZGVmYXVsdCkoZSkmJjI0PT09ZS5sZW5ndGh9O3ZhciBuPWkocig1NTcxKSksbz1pKHIoNzExNykpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSwzNTkwOihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGkudGVzdChlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vW15ceDAwLVx4N0ZdLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDk4NjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLHQmJnQubm9fc3ltYm9scz9hLnRlc3QoZSk6bmV3IFJlZ0V4cCgiXlsrLV0/KFswLTldKlsiLmNvbmNhdCgodHx8e30pLmxvY2FsZT9pLmRlY2ltYWxbdC5sb2NhbGVdOiIuIiwiXSk/WzAtOV0rJCIpKS50ZXN0KGUpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPXIoNzkpLGE9L15bMC05XSskLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNjA5MDooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L14oMG8pP1swLTddKyQvaTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMTUxMzooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxvLmRlZmF1bHQpKGUpO3ZhciByPWUucmVwbGFjZSgvXHMvZywiIikudG9VcHBlckNhc2UoKTtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpaW4gaSYmaVt0XS50ZXN0KHIpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPXtBTTovXltBLVpdezJ9XGR7N30kLyxBUjovXltBLVpdezN9XGR7Nn0kLyxBVDovXltBLVpdXGR7N30kLyxBVTovXltBLVpdXGR7N30kLyxBWjovXltBLVpdezIsM31cZHs3LDh9JC8sQkU6L15bQS1aXXsyfVxkezZ9JC8sQkc6L15cZHs5fSQvLEJSOi9eW0EtWl17Mn1cZHs2fSQvLEJZOi9eW0EtWl17Mn1cZHs3fSQvLENBOi9eW0EtWl17Mn1cZHs2fSQvLENIOi9eW0EtWl1cZHs3fSQvLENOOi9eR1xkezh9JHxeRSg/IVtJT10pW0EtWjAtOV1cZHs3fSQvLENZOi9eW0EtWl0oXGR7Nn18XGR7OH0pJC8sQ1o6L15cZHs4fSQvLERFOi9eW0NGR0hKS0xNTlBSVFZXWFlaMC05XXs5fSQvLERLOi9eXGR7OX0kLyxEWjovXlxkezl9JC8sRUU6L14oW0EtWl1cZHs3fXxbQS1aXXsyfVxkezd9KSQvLEVTOi9eW0EtWjAtOV17Mn0oW0EtWjAtOV0/KVxkezZ9JC8sRkk6L15bQS1aXXsyfVxkezd9JC8sRlI6L15cZHsyfVtBLVpdezJ9XGR7NX0kLyxHQjovXlxkezl9JC8sR1I6L15bQS1aXXsyfVxkezd9JC8sSFI6L15cZHs5fSQvLEhVOi9eW0EtWl17Mn0oXGR7Nn18XGR7N30pJC8sSUU6L15bQS1aMC05XXsyfVxkezd9JC8sSU46L15bQS1aXXsxfS0/XGR7N30kLyxJRDovXltBLUNdXGR7N30kLyxJUjovXltBLVpdXGR7OH0kLyxJUzovXihBKVxkezd9JC8sSVQ6L15bQS1aMC05XXsyfVxkezd9JC8sSk06L15bQWFdXGR7N30kLyxKUDovXltBLVpdezJ9XGR7N30kLyxLUjovXltNU11cZHs4fSQvLEtaOi9eW2EtekEtWl1cZHs3fSQvLExJOi9eW2EtekEtWl1cZHs1fSQvLExUOi9eW0EtWjAtOV17OH0kLyxMVTovXltBLVowLTldezh9JC8sTFY6L15bQS1aMC05XXsyfVxkezd9JC8sTFk6L15bQS1aMC05XXs4fSQvLE1UOi9eXGR7N30kLyxNWjovXihbQS1aXXsyfVxkezd9KXwoXGR7Mn1bQS1aXXsyfVxkezV9KSQvLE1ZOi9eW0FIS11cZHs4fSQvLE1YOi9eXGR7MTAsMTF9JC8sTkw6L15bQS1aXXsyfVtBLVowLTldezZ9XGQkLyxOWjovXihbTGxdKFtBYV18W0RkXXxbRmZdfFtIaF0pfFtFZV0oW0FhXXxbUHBdKXxbTm5dKVxkezZ9JC8sUEg6L14oW0EtWl0oXGR7Nn18XGR7N31bQS1aXSkpfChbQS1aXXsyfShcZHs2fXxcZHs3fSkpJC8sUEs6L15bQS1aXXsyfVxkezd9JC8sUEw6L15bQS1aXXsyfVxkezd9JC8sUFQ6L15bQS1aXVxkezZ9JC8sUk86L15cZHs4LDl9JC8sUlU6L15cZHs5fSQvLFNFOi9eXGR7OH0kLyxTTDovXihQKVtBLVpdXGR7N30kLyxTSzovXlswLTlBLVpdXGR7N30kLyxUSDovXltBLVpdezEsMn1cZHs2LDd9JC8sVFI6L15bQS1aXVxkezh9JC8sVUE6L15bQS1aXXsyfVxkezZ9JC8sVVM6L15cZHs5fSQvfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDU5NTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlLHttaW46MCxtYXg6NjU1MzV9KX07dmFyIG4sbz0obj1yKDkzNykpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODE0MDooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtpZigoMCxvLmRlZmF1bHQpKGUpLHQgaW4gYylyZXR1cm4gY1t0XS50ZXN0KGUpO2lmKCJhbnkiPT09dCl7Zm9yKHZhciByIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShyKSYmY1tyXS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsb2NhbGUgJyIuY29uY2F0KHQsIiciKSl9LHQubG9jYWxlcz12b2lkIDA7dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT0vXlxkezN9JC8sYT0vXlxkezR9JC8scz0vXlxkezV9JC8sdT0vXlxkezZ9JC8sYz17QUQ6L15BRFxkezN9JC8sQVQ6YSxBVTphLEFaOi9eQVpcZHs0fSQvLEJBOi9eKFs3LThdXGR7NH0kKS8sQkU6YSxCRzphLEJSOi9eXGR7NX0tXGR7M30kLyxCWTovXjJbMS00XVxkezR9JC8sQ0E6L15bQUJDRUdISktMTU5QUlNUVlhZXVxkW0FCQ0VHSEotTlBSU1RWLVpdW1xzXC1dP1xkW0FCQ0VHSEotTlBSU1RWLVpdXGQkL2ksQ0g6YSxDTjovXigwWzEtN118MVswMTIzNTZdfDJbMC03XXwzWzAtNl18NFswLTddfDVbMS03XXw2WzEtN118N1sxLTVdfDhbMTM0NV18OVswOV0pXGR7NH0kLyxDWjovXlxkezN9XHM/XGR7Mn0kLyxERTpzLERLOmEsRE86cyxEWjpzLEVFOnMsRVM6L14oNVswLTJdezF9fFswLTRdezF9XGR7MX0pXGR7M30kLyxGSTpzLEZSOi9eXGR7Mn1ccz9cZHszfSQvLEdCOi9eKGdpclxzPzBhYXxbYS16XXsxLDJ9XGRbXGRhLXpdP1xzPyhcZFthLXpdezJ9KT8pJC9pLEdSOi9eXGR7M31ccz9cZHsyfSQvLEhSOi9eKFsxLTVdXGR7NH0kKS8sSFQ6L15IVFxkezR9JC8sSFU6YSxJRDpzLElFOi9eKD8hLiooPzpvKSlbQS1aYS16XVxkW1xkd11cc1x3ezR9JC9pLElMOi9eKFxkezV9fFxkezd9KSQvLElOOi9eKCg/ITEwfDI5fDM1fDU0fDU1fDY1fDY2fDg2fDg3fDg4fDg5KVsxLTldWzAtOV17NX0pJC8sSVI6L14oPyEoXGQpXDF7M30pWzEzLTldezR9WzEzNDYtOV1bMDEzLTldezV9JC8sSVM6aSxJVDpzLEpQOi9eXGR7M31cLVxkezR9JC8sS0U6cyxLUjovXihcZHs1fXxcZHs2fSkkLyxMSTovXig5NDhbNS05XXw5NDlbMC03XSkkLyxMVDovXkxUXC1cZHs1fSQvLExVOmEsTFY6L15MVlwtXGR7NH0kLyxMSzpzLE1HOmksTVg6cyxNVDovXltBLVphLXpdezN9XHN7MCwxfVxkezR9JC8sTVk6cyxOTDovXlxkezR9XHM/W2Etel17Mn0kL2ksTk86YSxOUDovXigxMHwyMXwyMnwzMnwzM3wzNHw0NHw0NXw1Nnw1NylcZHszfSR8Xig5NzcpJC9pLE5aOmEsUEw6L15cZHsyfVwtXGR7M30kLyxQUjovXjAwWzY3OV1cZHsyfShbIC1dXGR7NH0pPyQvLFBUOi9eXGR7NH1cLVxkezN9PyQvLFJPOnUsUlU6dSxTQTpzLFNFOi9eWzEtOV1cZHsyfVxzP1xkezJ9JC8sU0c6dSxTSTphLFNLOi9eXGR7M31ccz9cZHsyfSQvLFRIOnMsVE46YSxUVzovXlxkezN9KFxkezJ9KT8kLyxVQTpzLFVTOi9eXGR7NX0oLVxkezR9KT8kLyxaQTphLFpNOnN9LGw9T2JqZWN0LmtleXMoYyk7dC5sb2NhbGVzPWx9LDQ2MTE6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksZi50ZXN0KGUpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPS8oWzAxXVswLTldfDJbMC0zXSkvLGE9L1swLTVdWzAtOV0vLHM9bmV3IFJlZ0V4cCgiWy0rXSIuY29uY2F0KGkuc291cmNlLCI6IikuY29uY2F0KGEuc291cmNlKSksdT1uZXcgUmVnRXhwKCIoW3paXXwiLmNvbmNhdChzLnNvdXJjZSwiKSIpKSxjPW5ldyBSZWdFeHAoIiIuY29uY2F0KGkuc291cmNlLCI6IikuY29uY2F0KGEuc291cmNlLCI6IikuY29uY2F0KC8oWzAtNV1bMC05XXw2MCkvLnNvdXJjZSkuY29uY2F0KC8oXC5bMC05XSspPy8uc291cmNlKSksbD1uZXcgUmVnRXhwKCIiLmNvbmNhdCgvWzAtOV17NH0vLnNvdXJjZSwiLSIpLmNvbmNhdCgvKDBbMS05XXwxWzAtMl0pLy5zb3VyY2UsIi0iKS5jb25jYXQoLyhbMTJdXGR8MFsxLTldfDNbMDFdKS8uc291cmNlKSksZD1uZXcgUmVnRXhwKCIiLmNvbmNhdChjLnNvdXJjZSkuY29uY2F0KHUuc291cmNlKSksZj1uZXcgUmVnRXhwKCJeIi5jb25jYXQobC5zb3VyY2UsIlsgdFRdIikuY29uY2F0KGQuc291cmNlLCIkIikpO2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw2NDU0OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXt2YXIgdD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3JldHVybigwLG8uZGVmYXVsdCkoZSksdD9pLnRlc3QoZSl8fGEudGVzdChlKXx8cy50ZXN0KGUpfHx1LnRlc3QoZSk6aS50ZXN0KGUpfHxhLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15yZ2JcKCgoWzAtOV18WzEtOV1bMC05XXwxWzAtOV1bMC05XXwyWzAtNF1bMC05XXwyNVswLTVdKSwpezJ9KFswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSlcKSQvLGE9L15yZ2JhXCgoKFswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSksKXszfSgwP1wuXGR8MShcLjApP3wwKFwuMCk/KVwpJC8scz0vXnJnYlwoKChbMC05XSV8WzEtOV1bMC05XSV8MTAwJSksKXsyfShbMC05XSV8WzEtOV1bMC05XSV8MTAwJSlcKSQvLHU9L15yZ2JhXCgoKFswLTldJXxbMS05XVswLTldJXwxMDAlKSwpezN9KDA/XC5cZHwxKFwuMCk/fDAoXC4wKT8pXCkkLztlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNjgyNjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsbi5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuPW8ocig1NTcxKSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19dmFyIGk9KDAsbyhyKDQ3MzEpKS5kZWZhdWx0KShbIl4oMHxbMS05XVxcZCopXFwuKDB8WzEtOV1cXGQqKVxcLigwfFsxLTldXFxkKikiLCIoPzotKCg/OjB8WzEtOV1cXGQqfFxcZCpbYS16LV1bMC05YS16LV0qKSg/OlxcLig/OjB8WzEtOV1cXGQqfFxcZCpbYS16LV1bMC05YS16LV0qKSkqKSkiLCI/KD86XFwrKFswLTlhLXotXSsoPzpcXC5bMC05YS16LV0rKSopKT8kIl0sImkiKTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODIyMDooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L15bXlxzLV9dKD8hLio/Wy1fXXsyLH0pW2EtejAtOS1cXF1bXlxzXSpbXi1fXHNdJC87ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDc2MzM6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsOygwLG8uZGVmYXVsdCkoZSk7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIEFycmF5LmZyb20oZSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dFtlXT90W2VdKz0xOnRbZV09MX0pKSx0fShlKSxyPXtsZW5ndGg6ZS5sZW5ndGgsdW5pcXVlQ2hhcnM6T2JqZWN0LmtleXModCkubGVuZ3RoLHVwcGVyY2FzZUNvdW50OjAsbG93ZXJjYXNlQ291bnQ6MCxudW1iZXJDb3VudDowLHN5bWJvbENvdW50OjB9O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihlKXthLnRlc3QoZSk/ci51cHBlcmNhc2VDb3VudCs9dFtlXTpzLnRlc3QoZSk/ci5sb3dlcmNhc2VDb3VudCs9dFtlXTp1LnRlc3QoZSk/ci5udW1iZXJDb3VudCs9dFtlXTpjLnRlc3QoZSkmJihyLnN5bWJvbENvdW50Kz10W2VdKX0pKSxyfShlKTtyZXR1cm4odD0oMCxuLmRlZmF1bHQpKHR8fHt9LGwpKS5yZXR1cm5TY29yZT9mdW5jdGlvbihlLHQpe3ZhciByPTA7cmV0dXJuIHIrPWUudW5pcXVlQ2hhcnMqdC5wb2ludHNQZXJVbmlxdWUscis9KGUubGVuZ3RoLWUudW5pcXVlQ2hhcnMpKnQucG9pbnRzUGVyUmVwZWF0LGUubG93ZXJjYXNlQ291bnQ+MCYmKHIrPXQucG9pbnRzRm9yQ29udGFpbmluZ0xvd2VyKSxlLnVwcGVyY2FzZUNvdW50PjAmJihyKz10LnBvaW50c0ZvckNvbnRhaW5pbmdVcHBlciksZS5udW1iZXJDb3VudD4wJiYocis9dC5wb2ludHNGb3JDb250YWluaW5nTnVtYmVyKSxlLnN5bWJvbENvdW50PjAmJihyKz10LnBvaW50c0ZvckNvbnRhaW5pbmdTeW1ib2wpLHJ9KHIsdCk6ci5sZW5ndGg+PXQubWluTGVuZ3RoJiZyLmxvd2VyY2FzZUNvdW50Pj10Lm1pbkxvd2VyY2FzZSYmci51cHBlcmNhc2VDb3VudD49dC5taW5VcHBlcmNhc2UmJnIubnVtYmVyQ291bnQ+PXQubWluTnVtYmVycyYmci5zeW1ib2xDb3VudD49dC5taW5TeW1ib2xzfTt2YXIgbj1pKHIoNDgwOCkpLG89aShyKDU1NzEpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgYT0vXltBLVpdJC8scz0vXlthLXpdJC8sdT0vXlswLTldJC8sYz0vXlstIyEkQMKjJV4mKigpXyt8fj1ge31cW1xdOiI7Jzw+PywuXC8gXSQvLGw9e21pbkxlbmd0aDo4LG1pbkxvd2VyY2FzZToxLG1pblVwcGVyY2FzZToxLG1pbk51bWJlcnM6MSxtaW5TeW1ib2xzOjEscmV0dXJuU2NvcmU6ITEscG9pbnRzUGVyVW5pcXVlOjEscG9pbnRzUGVyUmVwZWF0Oi41LHBvaW50c0ZvckNvbnRhaW5pbmdMb3dlcjoxMCxwb2ludHNGb3JDb250YWluaW5nVXBwZXI6MTAscG9pbnRzRm9yQ29udGFpbmluZ051bWJlcjoxMCxwb2ludHNGb3JDb250YWluaW5nU3ltYm9sOjEwfTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMjgyODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxpLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9L1tcdUQ4MDAtXHVEQkZGXVtcdURDMDAtXHVERkZGXS87ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDMwNTg6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxuKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOiJlbi1VUyI7KDAsby5kZWZhdWx0KShlKTt2YXIgcj1lLnNsaWNlKDApO2lmKHQgaW4gZilyZXR1cm4gdCBpbiBnJiYocj1yLnJlcGxhY2UoZ1t0XSwiIikpLCEhZlt0XS50ZXN0KHIpJiYoISh0IGluIHApfHxwW3RdKHIpKTt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbG9jYWxlICciLmNvbmNhdCh0LCInIikpfTt2YXIgbz11KHIoNTU3MSkpLGk9ZnVuY3Rpb24oZSl7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO2lmKG51bGw9PT1lfHwib2JqZWN0IiE9PW4oZSkmJiJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybntkZWZhdWx0OmV9O3ZhciB0PXMoKTtpZih0JiZ0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7dmFyIHI9e30sbz1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBpIGluIGUpaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsaSkpe3ZhciBhPW8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaSxhKTpyW2ldPWVbaV19cmV0dXJuIHIuZGVmYXVsdD1lLHQmJnQuc2V0KGUscikscn0ocigzNjcyKSksYT11KHIoMjU0OSkpO2Z1bmN0aW9uIHMoKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIGMoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn12YXIgbD17YW5kb3ZlcjpbIjEwIiwiMTIiXSxhdGxhbnRhOlsiNjAiLCI2NyJdLGF1c3RpbjpbIjUwIiwiNTMiXSxicm9va2hhdmVuOlsiMDEiLCIwMiIsIjAzIiwiMDQiLCIwNSIsIjA2IiwiMTEiLCIxMyIsIjE0IiwiMTYiLCIyMSIsIjIyIiwiMjMiLCIyNSIsIjM0IiwiNTEiLCI1MiIsIjU0IiwiNTUiLCI1NiIsIjU3IiwiNTgiLCI1OSIsIjY1Il0sY2luY2lubmF0aTpbIjMwIiwiMzIiLCIzNSIsIjM2IiwiMzciLCIzOCIsIjYxIl0sZnJlc25vOlsiMTUiLCIyNCJdLGludGVybmV0OlsiMjAiLCIyNiIsIjI3IiwiNDUiLCI0NiIsIjQ3Il0sa2Fuc2FzOlsiNDAiLCI0NCJdLG1lbXBoaXM6WyI5NCIsIjk1Il0sb2dkZW46WyI4MCIsIjkwIl0scGhpbGFkZWxwaGlhOlsiMzMiLCIzOSIsIjQxIiwiNDIiLCI0MyIsIjQ2IiwiNDgiLCI2MiIsIjYzIiwiNjQiLCI2NiIsIjY4IiwiNzEiLCI3MiIsIjczIiwiNzQiLCI3NSIsIjc2IiwiNzciLCI4MSIsIjgyIiwiODMiLCI4NCIsIjg1IiwiODYiLCI4NyIsIjg4IiwiOTEiLCI5MiIsIjkzIiwiOTgiLCI5OSJdLHNiYTpbIjMxIl19O2Z1bmN0aW9uIGQoZSl7Zm9yKHZhciB0PSExLHI9ITEsbj0wO248MztuKyspaWYoIXQmJi9bQUVJT1VdLy50ZXN0KGVbbl0pKXQ9ITA7ZWxzZSBpZighciYmdCYmIlgiPT09ZVtuXSlyPSEwO2Vsc2UgaWYobj4wKXtpZih0JiYhciYmIS9bQUVJT1VdLy50ZXN0KGVbbl0pKXJldHVybiExO2lmKHImJiEvWC8udGVzdChlW25dKSlyZXR1cm4hMX1yZXR1cm4hMH12YXIgZj17ImJnLUJHIjovXlxkezEwfSQvLCJjcy1DWiI6L15cZHs2fVwvezAsMX1cZHszLDR9JC8sImRlLUFUIjovXlxkezl9JC8sImRlLURFIjovXlsxLTldXGR7MTB9JC8sImRrLURLIjovXlxkezZ9LXswLDF9XGR7NH0kLywiZWwtQ1kiOi9eWzA5XVxkezd9W0EtWl0kLywiZWwtR1IiOi9eKFswLTRdfFs3LTldKVxkezh9JC8sImVuLUNBIjovXlxkezl9JC8sImVuLUdCIjovXlxkezEwfSR8Xig/IUdCfE5LfFROfFpaKSg/IVtERklRVVZdKVtBLVpdKD8hW0RGSVFVVk9dKVtBLVpdXGR7Nn1bQUJDRCBdJC9pLCJlbi1JRSI6L15cZHs3fVtBLVddW0EtSVddezAsMX0kL2ksImVuLVVTIjovXlxkezJ9Wy0gXXswLDF9XGR7N30kLywiZXMtRVMiOi9eKFxkezAsOH18W1hZWktMTV1cZHs3fSlbQS1ISi1OUC1UVi1aXSQvaSwiZXQtRUUiOi9eWzEtNl1cZHs2fSgwMFsxLTldfDBbMS05XVswLTldfFsxLTZdWzAtOV17Mn18NzBbMC05XXw3MTApXGQkLywiZmktRkkiOi9eXGR7Nn1bLStBXVxkezN9WzAtOUEtRkhKLU5QUi1ZXSQvaSwiZnItQkUiOi9eXGR7MTF9JC8sImZyLUZSIjovXlswLTNdXGR7MTJ9JHxeWzAtM11cZFxzXGR7Mn0oXHNcZHszfSl7M30kLywiZnItTFUiOi9eXGR7MTN9JC8sImhyLUhSIjovXlxkezExfSQvLCJodS1IVSI6L144XGR7OX0kLywiaXQtSVQiOi9eW0EtWl17Nn1bTC1OUC1WMC05XXsyfVtBLUVITE1QUlNUXVtMLU5QLVYwLTldezJ9W0EtSUxNWl1bTC1OUC1WMC05XXszfVtBLVpdJC9pLCJsdi1MViI6L15cZHs2fS17MCwxfVxkezV9JC8sIm10LU1UIjovXlxkezMsN31bQVBNR0xIQlpdJHxeKFsxLThdKVwxXGR7N30kL2ksIm5sLU5MIjovXlxkezl9JC8sInBsLVBMIjovXlxkezEwLDExfSQvLCJwdC1CUiI6Lyg/Ol5cZHsxMX0kKXwoPzpeXGR7MTR9JCkvLCJwdC1QVCI6L15cZHs5fSQvLCJyby1STyI6L15cZHsxM30kLywic2stU0siOi9eXGR7Nn1cL3swLDF9XGR7Myw0fSQvLCJzbC1TSSI6L15bMS05XVxkezd9JC8sInN2LVNFIjovXihcZHs2fVstK117MCwxfVxkezR9fCgxOHwxOXwyMClcZHs2fVstK117MCwxfVxkezR9KSQvfTtmWyJsYi1MVSJdPWZbImZyLUxVIl0sZlsibHQtTFQiXT1mWyJldC1FRSJdLGZbIm5sLUJFIl09ZlsiZnItQkUiXSxmWyJmci1DQSJdPWZbImVuLUNBIl07dmFyIHA9eyJiZy1CRyI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zbGljZSgwLDIpLHI9cGFyc2VJbnQoZS5zbGljZSgyLDQpLDEwKTtyPjQwPyhyLT00MCx0PSIyMCIuY29uY2F0KHQpKTpyPjIwPyhyLT0yMCx0PSIxOCIuY29uY2F0KHQpKTp0PSIxOSIuY29uY2F0KHQpLHI8MTAmJihyPSIwIi5jb25jYXQocikpO3ZhciBuPSIiLmNvbmNhdCh0LCIvIikuY29uY2F0KHIsIi8iKS5jb25jYXQoZS5zbGljZSg0LDYpKTtpZighKDAsYS5kZWZhdWx0KShuLCJZWVlZL01NL0REIikpcmV0dXJuITE7Zm9yKHZhciBvPWUuc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkpLGk9WzIsNCw4LDUsMTAsOSw3LDMsNl0scz0wLHU9MDt1PGkubGVuZ3RoO3UrKylzKz1vW3VdKmlbdV07cmV0dXJuKHM9cyUxMT09MTA/MDpzJTExKT09PW9bOV19LCJjcy1DWiI6ZnVuY3Rpb24oZSl7ZT1lLnJlcGxhY2UoL1xXLywiIik7dmFyIHQ9cGFyc2VJbnQoZS5zbGljZSgwLDIpLDEwKTtpZigxMD09PWUubGVuZ3RoKXQ9dDw1ND8iMjAiLmNvbmNhdCh0KToiMTkiLmNvbmNhdCh0KTtlbHNle2lmKCIwMDAiPT09ZS5zbGljZSg2KSlyZXR1cm4hMTtpZighKHQ8NTQpKXJldHVybiExO3Q9IjE5Ii5jb25jYXQodCl9Mz09PXQubGVuZ3RoJiYodD1bdC5zbGljZSgwLDIpLCIwIix0LnNsaWNlKDIpXS5qb2luKCIiKSk7dmFyIHI9cGFyc2VJbnQoZS5zbGljZSgyLDQpLDEwKTtpZihyPjUwJiYoci09NTApLHI+MjApe2lmKHBhcnNlSW50KHQsMTApPDIwMDQpcmV0dXJuITE7ci09MjB9cjwxMCYmKHI9IjAiLmNvbmNhdChyKSk7dmFyIG49IiIuY29uY2F0KHQsIi8iKS5jb25jYXQociwiLyIpLmNvbmNhdChlLnNsaWNlKDQsNikpO2lmKCEoMCxhLmRlZmF1bHQpKG4sIllZWVkvTU0vREQiKSlyZXR1cm4hMTtpZigxMD09PWUubGVuZ3RoJiZwYXJzZUludChlLDEwKSUxMSE9MCl7dmFyIG89cGFyc2VJbnQoZS5zbGljZSgwLDkpLDEwKSUxMTtpZighKHBhcnNlSW50KHQsMTApPDE5ODYmJjEwPT09bykpcmV0dXJuITE7aWYoMCE9PXBhcnNlSW50KGUuc2xpY2UoOSksMTApKXJldHVybiExfXJldHVybiEwfSwiZGUtQVQiOmZ1bmN0aW9uKGUpe3JldHVybiBpLmx1aG5DaGVjayhlKX0sImRlLURFIjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSkscj1bXSxuPTA7bjx0Lmxlbmd0aC0xO24rKyl7ci5wdXNoKCIiKTtmb3IodmFyIG89MDtvPHQubGVuZ3RoLTE7bysrKXRbbl09PT10W29dJiYocltuXSs9byl9aWYoMiE9PShyPXIuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZS5sZW5ndGg+MX0pKSkubGVuZ3RoJiYzIT09ci5sZW5ndGgpcmV0dXJuITE7aWYoMz09PXJbMF0ubGVuZ3RoKXtmb3IodmFyIGE9clswXS5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSkscz0wLHU9MDt1PGEubGVuZ3RoLTE7dSsrKWFbdV0rMT09PWFbdSsxXSYmKHMrPTEpO2lmKDI9PT1zKXJldHVybiExfXJldHVybiBpLmlzbzcwNjRDaGVjayhlKX0sImRrLURLIjpmdW5jdGlvbihlKXtlPWUucmVwbGFjZSgvXFcvLCIiKTt2YXIgdD1wYXJzZUludChlLnNsaWNlKDQsNiksMTApO3N3aXRjaChlLnNsaWNlKDYsNykpe2Nhc2UiMCI6Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6dD0iMTkiLmNvbmNhdCh0KTticmVhaztjYXNlIjQiOmNhc2UiOSI6dD10PDM3PyIyMCIuY29uY2F0KHQpOiIxOSIuY29uY2F0KHQpO2JyZWFrO2RlZmF1bHQ6aWYodDwzNyl0PSIyMCIuY29uY2F0KHQpO2Vsc2V7aWYoISh0PjU4KSlyZXR1cm4hMTt0PSIxOCIuY29uY2F0KHQpfX0zPT09dC5sZW5ndGgmJih0PVt0LnNsaWNlKDAsMiksIjAiLHQuc2xpY2UoMildLmpvaW4oIiIpKTt2YXIgcj0iIi5jb25jYXQodCwiLyIpLmNvbmNhdChlLnNsaWNlKDIsNCksIi8iKS5jb25jYXQoZS5zbGljZSgwLDIpKTtpZighKDAsYS5kZWZhdWx0KShyLCJZWVlZL01NL0REIikpcmV0dXJuITE7Zm9yKHZhciBuPWUuc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkpLG89MCxpPTQscz0wO3M8OTtzKyspbys9bltzXSppLDE9PShpLT0xKSYmKGk9Nyk7cmV0dXJuIDEhPShvJT0xMSkmJigwPT09bz8wPT09bls5XTpuWzldPT09MTEtbyl9LCJlbC1DWSI6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc2xpY2UoMCw4KS5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSkscj0wLG49MTtuPHQubGVuZ3RoO24rPTIpcis9dFtuXTtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rPTIpdFtvXTwyP3IrPTEtdFtvXToocis9MioodFtvXS0yKSs1LHRbb10+NCYmKHIrPTIpKTtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShyJTI2KzY1KT09PWUuY2hhckF0KDgpfSwiZWwtR1IiOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnNwbGl0KCIiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pKSxyPTAsbj0wO248ODtuKyspcis9dFtuXSpNYXRoLnBvdygyLDgtbik7cmV0dXJuIHIlMTElMTA9PT10WzhdfSwiZW4tQ0EiOmZ1bmN0aW9uKGUpe3ZhciB0PWUuc3BsaXQoIiIpLHI9dC5maWx0ZXIoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiAyKk51bWJlcihlKX0pKS5qb2luKCIiKS5zcGxpdCgiIik7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlLHQpe3JldHVybiEodCUyKX0pKS5jb25jYXQocikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gTnVtYmVyKGUpfSkpLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSkpJTEwPT0wfSwiZW4tSUUiOmZ1bmN0aW9uKGUpe3ZhciB0PWkucmV2ZXJzZU11bHRpcGx5QW5kU3VtKGUuc3BsaXQoIiIpLnNsaWNlKDAsNykubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSksOCk7cmV0dXJuIDk9PT1lLmxlbmd0aCYmIlciIT09ZVs4XSYmKHQrPTkqKGVbOF0uY2hhckNvZGVBdCgwKS02NCkpLDA9PSh0JT0yMyk/IlciPT09ZVs3XS50b1VwcGVyQ2FzZSgpOmVbN10udG9VcHBlckNhc2UoKT09PVN0cmluZy5mcm9tQ2hhckNvZGUoNjQrdCl9LCJlbi1VUyI6ZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1mdW5jdGlvbigpe3ZhciBlLHQ9W107Zm9yKHZhciByIGluIGwpbC5oYXNPd25Qcm9wZXJ0eShyKSYmdC5wdXNoLmFwcGx5KHQsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gYyhlKX0oZT1sW3JdKXx8ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHxmdW5jdGlvbihlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gYyhlLHQpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1yfHwiU2V0Ij09PXI/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP2MoZSx0KTp2b2lkIDB9fShlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKSk7cmV0dXJuIHR9KCkuaW5kZXhPZihlLnNsaWNlKDAsMikpfSwiZXMtRVMiOmZ1bmN0aW9uKGUpe3ZhciB0PWUudG9VcHBlckNhc2UoKS5zcGxpdCgiIik7aWYoaXNOYU4ocGFyc2VJbnQodFswXSwxMCkpJiZ0Lmxlbmd0aD4xKXt2YXIgcj0wO3N3aXRjaCh0WzBdKXtjYXNlIlkiOnI9MTticmVhaztjYXNlIloiOnI9Mn10LnNwbGljZSgwLDEscil9ZWxzZSBmb3IoO3QubGVuZ3RoPDk7KXQudW5zaGlmdCgwKTt0PXQuam9pbigiIik7dmFyIG49cGFyc2VJbnQodC5zbGljZSgwLDgpLDEwKSUyMztyZXR1cm4gdFs4XT09PVsiVCIsIlIiLCJXIiwiQSIsIkciLCJNIiwiWSIsIkYiLCJQIiwiRCIsIlgiLCJCIiwiTiIsIkoiLCJaIiwiUyIsIlEiLCJWIiwiSCIsIkwiLCJDIiwiSyIsIkUiXVtuXX0sImV0LUVFIjpmdW5jdGlvbihlKXt2YXIgdD1lLnNsaWNlKDEsMyk7c3dpdGNoKGUuc2xpY2UoMCwxKSl7Y2FzZSIxIjpjYXNlIjIiOnQ9IjE4Ii5jb25jYXQodCk7YnJlYWs7Y2FzZSIzIjpjYXNlIjQiOnQ9IjE5Ii5jb25jYXQodCk7YnJlYWs7ZGVmYXVsdDp0PSIyMCIuY29uY2F0KHQpfXZhciByPSIiLmNvbmNhdCh0LCIvIikuY29uY2F0KGUuc2xpY2UoMyw1KSwiLyIpLmNvbmNhdChlLnNsaWNlKDUsNykpO2lmKCEoMCxhLmRlZmF1bHQpKHIsIllZWVkvTU0vREQiKSlyZXR1cm4hMTtmb3IodmFyIG49ZS5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSksbz0wLGk9MSxzPTA7czwxMDtzKyspbys9bltzXSppLDEwPT09KGkrPTEpJiYoaT0xKTtpZihvJTExPT0xMCl7bz0wLGk9Mztmb3IodmFyIHU9MDt1PDEwO3UrKylvKz1uW3VdKmksMTA9PT0oaSs9MSkmJihpPTEpO2lmKG8lMTE9PTEwKXJldHVybiAwPT09blsxMF19cmV0dXJuIG8lMTE9PT1uWzEwXX0sImZpLUZJIjpmdW5jdGlvbihlKXt2YXIgdD1lLnNsaWNlKDQsNik7c3dpdGNoKGUuc2xpY2UoNiw3KSl7Y2FzZSIrIjp0PSIxOCIuY29uY2F0KHQpO2JyZWFrO2Nhc2UiLSI6dD0iMTkiLmNvbmNhdCh0KTticmVhaztkZWZhdWx0OnQ9IjIwIi5jb25jYXQodCl9dmFyIHI9IiIuY29uY2F0KHQsIi8iKS5jb25jYXQoZS5zbGljZSgyLDQpLCIvIikuY29uY2F0KGUuc2xpY2UoMCwyKSk7aWYoISgwLGEuZGVmYXVsdCkociwiWVlZWS9NTS9ERCIpKXJldHVybiExO3ZhciBuPXBhcnNlSW50KGUuc2xpY2UoMCw2KStlLnNsaWNlKDcsMTApLDEwKSUzMTtyZXR1cm4gbjwxMD9uPT09cGFyc2VJbnQoZS5zbGljZSgxMCksMTApOlsiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiSCIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiUCIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIl1bbi09MTBdPT09ZS5zbGljZSgxMCl9LCJmci1CRSI6ZnVuY3Rpb24oZSl7aWYoIjAwIiE9PWUuc2xpY2UoMiw0KXx8IjAwIiE9PWUuc2xpY2UoNCw2KSl7dmFyIHQ9IiIuY29uY2F0KGUuc2xpY2UoMCwyKSwiLyIpLmNvbmNhdChlLnNsaWNlKDIsNCksIi8iKS5jb25jYXQoZS5zbGljZSg0LDYpKTtpZighKDAsYS5kZWZhdWx0KSh0LCJZWS9NTS9ERCIpKXJldHVybiExfXZhciByPTk3LXBhcnNlSW50KGUuc2xpY2UoMCw5KSwxMCklOTcsbj1wYXJzZUludChlLnNsaWNlKDksMTEpLDEwKTtyZXR1cm4gcj09PW58fChyPTk3LXBhcnNlSW50KCIyIi5jb25jYXQoZS5zbGljZSgwLDkpKSwxMCklOTcpPT09bn0sImZyLUZSIjpmdW5jdGlvbihlKXtyZXR1cm4gZT1lLnJlcGxhY2UoL1xzL2csIiIpLHBhcnNlSW50KGUuc2xpY2UoMCwxMCksMTApJTUxMT09PXBhcnNlSW50KGUuc2xpY2UoMTAsMTMpLDEwKX0sImZyLUxVIjpmdW5jdGlvbihlKXt2YXIgdD0iIi5jb25jYXQoZS5zbGljZSgwLDQpLCIvIikuY29uY2F0KGUuc2xpY2UoNCw2KSwiLyIpLmNvbmNhdChlLnNsaWNlKDYsOCkpO3JldHVybiEhKDAsYS5kZWZhdWx0KSh0LCJZWVlZL01NL0REIikmJiEhaS5sdWhuQ2hlY2soZS5zbGljZSgwLDEyKSkmJmkudmVyaG9lZmZDaGVjaygiIi5jb25jYXQoZS5zbGljZSgwLDExKSkuY29uY2F0KGVbMTJdKSl9LCJoci1IUiI6ZnVuY3Rpb24oZSl7cmV0dXJuIGkuaXNvNzA2NENoZWNrKGUpfSwiaHUtSFUiOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnNwbGl0KCIiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBwYXJzZUludChlLDEwKX0pKSxyPTgsbj0xO248OTtuKyspcis9dFtuXSoobisxKTtyZXR1cm4gciUxMT09PXRbOV19LCJpdC1JVCI6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b1VwcGVyQ2FzZSgpLnNwbGl0KCIiKTtpZighZCh0LnNsaWNlKDAsMykpKXJldHVybiExO2lmKCFkKHQuc2xpY2UoMyw2KSkpcmV0dXJuITE7Zm9yKHZhciByPXtMOiIwIixNOiIxIixOOiIyIixQOiIzIixROiI0IixSOiI1IixTOiI2IixUOiI3IixVOiI4IixWOiI5In0sbj0wLG89WzYsNyw5LDEwLDEyLDEzLDE0XTtuPG8ubGVuZ3RoO24rKyl7dmFyIGk9b1tuXTt0W2ldaW4gciYmdC5zcGxpY2UoaSwxLHJbdFtpXV0pfXZhciBzPXtBOiIwMSIsQjoiMDIiLEM6IjAzIixEOiIwNCIsRToiMDUiLEg6IjA2IixMOiIwNyIsTToiMDgiLFA6IjA5IixSOiIxMCIsUzoiMTEiLFQ6IjEyIn1bdFs4XV0sdT1wYXJzZUludCh0WzldK3RbMTBdLDEwKTt1PjQwJiYodS09NDApLHU8MTAmJih1PSIwIi5jb25jYXQodSkpO3ZhciBjPSIiLmNvbmNhdCh0WzZdKS5jb25jYXQodFs3XSwiLyIpLmNvbmNhdChzLCIvIikuY29uY2F0KHUpO2lmKCEoMCxhLmRlZmF1bHQpKGMsIllZL01NL0REIikpcmV0dXJuITE7Zm9yKHZhciBsPTAsZj0xO2Y8dC5sZW5ndGgtMTtmKz0yKXt2YXIgcD1wYXJzZUludCh0W2ZdLDEwKTtpc05hTihwKSYmKHA9dFtmXS5jaGFyQ29kZUF0KDApLTY1KSxsKz1wfWZvcih2YXIgaD17QToxLEI6MCxDOjUsRDo3LEU6OSxGOjEzLEc6MTUsSDoxNyxJOjE5LEo6MjEsSzoyLEw6NCxNOjE4LE46MjAsTzoxMSxQOjMsUTo2LFI6OCxTOjEyLFQ6MTQsVToxNixWOjEwLFc6MjIsWDoyNSxZOjI0LFo6MjMsMDoxLDE6MH0sZz0wO2c8dC5sZW5ndGgtMTtnKz0yKXt2YXIgeT0wO2lmKHRbZ11pbiBoKXk9aFt0W2ddXTtlbHNle3ZhciBiPXBhcnNlSW50KHRbZ10sMTApO3k9MipiKzEsYj40JiYoeSs9Mil9bCs9eX1yZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg2NStsJTI2KT09PXRbMTVdfSwibHYtTFYiOmZ1bmN0aW9uKGUpe3ZhciB0PShlPWUucmVwbGFjZSgvXFcvLCIiKSkuc2xpY2UoMCwyKTtpZigiMzIiIT09dCl7aWYoIjAwIiE9PWUuc2xpY2UoMiw0KSl7dmFyIHI9ZS5zbGljZSg0LDYpO3N3aXRjaChlWzZdKXtjYXNlIjAiOnI9IjE4Ii5jb25jYXQocik7YnJlYWs7Y2FzZSIxIjpyPSIxOSIuY29uY2F0KHIpO2JyZWFrO2RlZmF1bHQ6cj0iMjAiLmNvbmNhdChyKX12YXIgbj0iIi5jb25jYXQociwiLyIpLmNvbmNhdChlLnNsaWNlKDIsNCksIi8iKS5jb25jYXQodCk7aWYoISgwLGEuZGVmYXVsdCkobiwiWVlZWS9NTS9ERCIpKXJldHVybiExfWZvcih2YXIgbz0xMTAxLGk9WzEsNiwzLDcsOSwxMCw1LDgsNCwyXSxzPTA7czxlLmxlbmd0aC0xO3MrKylvLT1wYXJzZUludChlW3NdLDEwKSppW3NdO3JldHVybiBwYXJzZUludChlWzEwXSwxMCk9PT1vJTExfXJldHVybiEwfSwibXQtTVQiOmZ1bmN0aW9uKGUpe2lmKDkhPT1lLmxlbmd0aCl7Zm9yKHZhciB0PWUudG9VcHBlckNhc2UoKS5zcGxpdCgiIik7dC5sZW5ndGg8ODspdC51bnNoaWZ0KDApO3N3aXRjaChlWzddKXtjYXNlIkEiOmNhc2UiUCI6aWYoMD09PXBhcnNlSW50KHRbNl0sMTApKXJldHVybiExO2JyZWFrO2RlZmF1bHQ6dmFyIHI9cGFyc2VJbnQodC5qb2luKCIiKS5zbGljZSgwLDUpLDEwKTtpZihyPjMyZTMpcmV0dXJuITE7aWYocj09PXBhcnNlSW50KHQuam9pbigiIikuc2xpY2UoNSw3KSwxMCkpcmV0dXJuITF9fXJldHVybiEwfSwibmwtTkwiOmZ1bmN0aW9uKGUpe3JldHVybiBpLnJldmVyc2VNdWx0aXBseUFuZFN1bShlLnNwbGl0KCIiKS5zbGljZSgwLDgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkpLDkpJTExPT09cGFyc2VJbnQoZVs4XSwxMCl9LCJwbC1QTCI6ZnVuY3Rpb24oZSl7aWYoMTA9PT1lLmxlbmd0aCl7Zm9yKHZhciB0PVs2LDUsNywyLDMsNCw1LDYsN10scj0wLG49MDtuPHQubGVuZ3RoO24rKylyKz1wYXJzZUludChlW25dLDEwKSp0W25dO3JldHVybiAxMCE9KHIlPTExKSYmcj09PXBhcnNlSW50KGVbOV0sMTApfXZhciBvPWUuc2xpY2UoMCwyKSxpPXBhcnNlSW50KGUuc2xpY2UoMiw0KSwxMCk7aT44MD8obz0iMTgiLmNvbmNhdChvKSxpLT04MCk6aT42MD8obz0iMjIiLmNvbmNhdChvKSxpLT02MCk6aT40MD8obz0iMjEiLmNvbmNhdChvKSxpLT00MCk6aT4yMD8obz0iMjAiLmNvbmNhdChvKSxpLT0yMCk6bz0iMTkiLmNvbmNhdChvKSxpPDEwJiYoaT0iMCIuY29uY2F0KGkpKTt2YXIgcz0iIi5jb25jYXQobywiLyIpLmNvbmNhdChpLCIvIikuY29uY2F0KGUuc2xpY2UoNCw2KSk7aWYoISgwLGEuZGVmYXVsdCkocywiWVlZWS9NTS9ERCIpKXJldHVybiExO2Zvcih2YXIgdT0wLGM9MSxsPTA7bDxlLmxlbmd0aC0xO2wrKyl1Kz1wYXJzZUludChlW2xdLDEwKSpjJTEwLChjKz0yKT4xMD9jPTE6NT09PWMmJihjKz0yKTtyZXR1cm4odT0xMC11JTEwKT09PXBhcnNlSW50KGVbMTBdLDEwKX0sInB0LUJSIjpmdW5jdGlvbihlKXtpZigxMT09PWUubGVuZ3RoKXt2YXIgdCxyO2lmKHQ9MCwiMTExMTExMTExMTEiPT09ZXx8IjIyMjIyMjIyMjIyIj09PWV8fCIzMzMzMzMzMzMzMyI9PT1lfHwiNDQ0NDQ0NDQ0NDQiPT09ZXx8IjU1NTU1NTU1NTU1Ij09PWV8fCI2NjY2NjY2NjY2NiI9PT1lfHwiNzc3Nzc3Nzc3NzciPT09ZXx8Ijg4ODg4ODg4ODg4Ij09PWV8fCI5OTk5OTk5OTk5OSI9PT1lfHwiMDAwMDAwMDAwMDAiPT09ZSlyZXR1cm4hMTtmb3IodmFyIG49MTtuPD05O24rKyl0Kz1wYXJzZUludChlLnN1YnN0cmluZyhuLTEsbiksMTApKigxMS1uKTtpZigxMD09KHI9MTAqdCUxMSkmJihyPTApLHIhPT1wYXJzZUludChlLnN1YnN0cmluZyg5LDEwKSwxMCkpcmV0dXJuITE7dD0wO2Zvcih2YXIgbz0xO288PTEwO28rKyl0Kz1wYXJzZUludChlLnN1YnN0cmluZyhvLTEsbyksMTApKigxMi1vKTtyZXR1cm4gMTA9PShyPTEwKnQlMTEpJiYocj0wKSxyPT09cGFyc2VJbnQoZS5zdWJzdHJpbmcoMTAsMTEpLDEwKX1pZigiMDAwMDAwMDAwMDAwMDAiPT09ZXx8IjExMTExMTExMTExMTExIj09PWV8fCIyMjIyMjIyMjIyMjIyMiI9PT1lfHwiMzMzMzMzMzMzMzMzMzMiPT09ZXx8IjQ0NDQ0NDQ0NDQ0NDQ0Ij09PWV8fCI1NTU1NTU1NTU1NTU1NSI9PT1lfHwiNjY2NjY2NjY2NjY2NjYiPT09ZXx8Ijc3Nzc3Nzc3Nzc3Nzc3Ij09PWV8fCI4ODg4ODg4ODg4ODg4OCI9PT1lfHwiOTk5OTk5OTk5OTk5OTkiPT09ZSlyZXR1cm4hMTtmb3IodmFyIGk9ZS5sZW5ndGgtMixhPWUuc3Vic3RyaW5nKDAsaSkscz1lLnN1YnN0cmluZyhpKSx1PTAsYz1pLTcsbD1pO2w+PTE7bC0tKXUrPWEuY2hhckF0KGktbCkqYywoYy09MSk8MiYmKGM9OSk7dmFyIGQ9dSUxMTwyPzA6MTEtdSUxMTtpZihkIT09cGFyc2VJbnQocy5jaGFyQXQoMCksMTApKXJldHVybiExO2krPTEsYT1lLnN1YnN0cmluZygwLGkpLHU9MCxjPWktNztmb3IodmFyIGY9aTtmPj0xO2YtLSl1Kz1hLmNoYXJBdChpLWYpKmMsKGMtPTEpPDImJihjPTkpO3JldHVybihkPXUlMTE8Mj8wOjExLXUlMTEpPT09cGFyc2VJbnQocy5jaGFyQXQoMSksMTApfSwicHQtUFQiOmZ1bmN0aW9uKGUpe3ZhciB0PTExLWkucmV2ZXJzZU11bHRpcGx5QW5kU3VtKGUuc3BsaXQoIiIpLnNsaWNlKDAsOCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSksOSklMTE7cmV0dXJuIHQ+OT8wPT09cGFyc2VJbnQoZVs4XSwxMCk6dD09PXBhcnNlSW50KGVbOF0sMTApfSwicm8tUk8iOmZ1bmN0aW9uKGUpe2lmKCI5MDAwIiE9PWUuc2xpY2UoMCw0KSl7dmFyIHQ9ZS5zbGljZSgxLDMpO3N3aXRjaChlWzBdKXtjYXNlIjEiOmNhc2UiMiI6dD0iMTkiLmNvbmNhdCh0KTticmVhaztjYXNlIjMiOmNhc2UiNCI6dD0iMTgiLmNvbmNhdCh0KTticmVhaztjYXNlIjUiOmNhc2UiNiI6dD0iMjAiLmNvbmNhdCh0KX12YXIgcj0iIi5jb25jYXQodCwiLyIpLmNvbmNhdChlLnNsaWNlKDMsNSksIi8iKS5jb25jYXQoZS5zbGljZSg1LDcpKTtpZig4PT09ci5sZW5ndGgpe2lmKCEoMCxhLmRlZmF1bHQpKHIsIllZL01NL0REIikpcmV0dXJuITF9ZWxzZSBpZighKDAsYS5kZWZhdWx0KShyLCJZWVlZL01NL0REIikpcmV0dXJuITE7Zm9yKHZhciBuPWUuc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkpLG89WzIsNyw5LDEsNCw2LDMsNSw4LDIsNyw5XSxpPTAscz0wO3M8by5sZW5ndGg7cysrKWkrPW5bc10qb1tzXTtyZXR1cm4gaSUxMT09MTA/MT09PW5bMTJdOm5bMTJdPT09aSUxMX1yZXR1cm4hMH0sInNrLVNLIjpmdW5jdGlvbihlKXtpZig5PT09ZS5sZW5ndGgpe2lmKCIwMDAiPT09KGU9ZS5yZXBsYWNlKC9cVy8sIiIpKS5zbGljZSg2KSlyZXR1cm4hMTt2YXIgdD1wYXJzZUludChlLnNsaWNlKDAsMiksMTApO2lmKHQ+NTMpcmV0dXJuITE7dD10PDEwPyIxOTAiLmNvbmNhdCh0KToiMTkiLmNvbmNhdCh0KTt2YXIgcj1wYXJzZUludChlLnNsaWNlKDIsNCksMTApO3I+NTAmJihyLT01MCkscjwxMCYmKHI9IjAiLmNvbmNhdChyKSk7dmFyIG49IiIuY29uY2F0KHQsIi8iKS5jb25jYXQociwiLyIpLmNvbmNhdChlLnNsaWNlKDQsNikpO2lmKCEoMCxhLmRlZmF1bHQpKG4sIllZWVkvTU0vREQiKSlyZXR1cm4hMX1yZXR1cm4hMH0sInNsLVNJIjpmdW5jdGlvbihlKXt2YXIgdD0xMS1pLnJldmVyc2VNdWx0aXBseUFuZFN1bShlLnNwbGl0KCIiKS5zbGljZSgwLDcpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkpLDgpJTExO3JldHVybiAxMD09PXQ/MD09PXBhcnNlSW50KGVbN10sMTApOnQ9PT1wYXJzZUludChlWzddLDEwKX0sInN2LVNFIjpmdW5jdGlvbihlKXt2YXIgdD1lLnNsaWNlKDApO2UubGVuZ3RoPjExJiYodD10LnNsaWNlKDIpKTt2YXIgcj0iIixuPXQuc2xpY2UoMiw0KSxvPXBhcnNlSW50KHQuc2xpY2UoNCw2KSwxMCk7aWYoZS5sZW5ndGg+MTEpcj1lLnNsaWNlKDAsNCk7ZWxzZSBpZihyPWUuc2xpY2UoMCwyKSwxMT09PWUubGVuZ3RoJiZvPDYwKXt2YXIgcz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSx1PXBhcnNlSW50KHMuc2xpY2UoMCwyKSwxMCk7aWYocz1wYXJzZUludChzLDEwKSwiLSI9PT1lWzZdKXI9cGFyc2VJbnQoIiIuY29uY2F0KHUpLmNvbmNhdChyKSwxMCk+cz8iIi5jb25jYXQodS0xKS5jb25jYXQocik6IiIuY29uY2F0KHUpLmNvbmNhdChyKTtlbHNlIGlmKHI9IiIuY29uY2F0KHUtMSkuY29uY2F0KHIpLHMtcGFyc2VJbnQociwxMCk8MTAwKXJldHVybiExfW8+NjAmJihvLT02MCksbzwxMCYmKG89IjAiLmNvbmNhdChvKSk7dmFyIGM9IiIuY29uY2F0KHIsIi8iKS5jb25jYXQobiwiLyIpLmNvbmNhdChvKTtpZig4PT09Yy5sZW5ndGgpe2lmKCEoMCxhLmRlZmF1bHQpKGMsIllZL01NL0REIikpcmV0dXJuITF9ZWxzZSBpZighKDAsYS5kZWZhdWx0KShjLCJZWVlZL01NL0REIikpcmV0dXJuITE7cmV0dXJuIGkubHVobkNoZWNrKGUucmVwbGFjZSgvXFcvLCIiKSl9fTtwWyJsYi1MVSJdPXBbImZyLUxVIl0scFsibHQtTFQiXT1wWyJldC1FRSJdLHBbIm5sLUJFIl09cFsiZnItQkUiXSxwWyJmci1DQSJdPXBbImVuLUNBIl07dmFyIGg9L1stXFxcLyFAIyQlXF4mXCpcKFwpXCtcPVxbXF1dKy9nLGc9eyJkZS1BVCI6aCwiZGUtREUiOi9bXC9cXF0vZywiZnItQkUiOmh9O2dbIm5sLUJFIl09Z1siZnItQkUiXSxlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sMzQ5NDooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD0oMCxvLmRlZmF1bHQpKHQsaSksInN0cmluZyI9PXR5cGVvZiBlJiZhW3QuaG91ckZvcm1hdF1bdC5tb2RlXS50ZXN0KGUpfTt2YXIgbixvPShuPXIoNDgwOCkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxpPXtob3VyRm9ybWF0OiJob3VyMjQiLG1vZGU6ImRlZmF1bHQifSxhPXtob3VyMjQ6e2RlZmF1bHQ6L14oWzAxXT9bMC05XXwyWzAtM10pOihbMC01XVswLTldKSQvLHdpdGhTZWNvbmRzOi9eKFswMV0/WzAtOV18MlswLTNdKTooWzAtNV1bMC05XSk6KFswLTVdWzAtOV0pJC99LGhvdXIxMjp7ZGVmYXVsdDovXigwP1sxLTldfDFbMC0yXSk6KFswLTVdWzAtOV0pIChBfFApTSQvLHdpdGhTZWNvbmRzOi9eKDA/WzEtOV18MVswLTJdKTooWzAtNV1bMC05XSk6KFswLTVdWzAtOV0pIChBfFApTSQvfX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDI0OTI6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7aWYoKDAsbi5kZWZhdWx0KShlKSwhZXx8L1tcczw+XS8udGVzdChlKSlyZXR1cm4hMTtpZigwPT09ZS5pbmRleE9mKCJtYWlsdG86IikpcmV0dXJuITE7aWYoKHQ9KDAsYS5kZWZhdWx0KSh0LGMpKS52YWxpZGF0ZV9sZW5ndGgmJmUubGVuZ3RoPj0yMDgzKXJldHVybiExO2lmKCF0LmFsbG93X2ZyYWdtZW50cyYmZS5pbmNsdWRlcygiIyIpKXJldHVybiExO2lmKCF0LmFsbG93X3F1ZXJ5X2NvbXBvbmVudHMmJihlLmluY2x1ZGVzKCI/Iil8fGUuaW5jbHVkZXMoIiYiKSkpcmV0dXJuITE7dmFyIHIscyxmLHAsaCxnLHksYix2O2lmKHk9ZS5zcGxpdCgiIyIpLGU9eS5zaGlmdCgpLHk9ZS5zcGxpdCgiPyIpLGU9eS5zaGlmdCgpLCh5PWUuc3BsaXQoIjovLyIpKS5sZW5ndGg+MSl7aWYocj15LnNoaWZ0KCkudG9Mb3dlckNhc2UoKSx0LnJlcXVpcmVfdmFsaWRfcHJvdG9jb2wmJi0xPT09dC5wcm90b2NvbHMuaW5kZXhPZihyKSlyZXR1cm4hMX1lbHNle2lmKHQucmVxdWlyZV9wcm90b2NvbClyZXR1cm4hMTtpZigiLy8iPT09ZS5zbGljZSgwLDIpKXtpZighdC5hbGxvd19wcm90b2NvbF9yZWxhdGl2ZV91cmxzKXJldHVybiExO3lbMF09ZS5zbGljZSgyKX19aWYoIiI9PT0oZT15LmpvaW4oIjovLyIpKSlyZXR1cm4hMTtpZih5PWUuc3BsaXQoIi8iKSwiIj09PShlPXkuc2hpZnQoKSkmJiF0LnJlcXVpcmVfaG9zdClyZXR1cm4hMDtpZigoeT1lLnNwbGl0KCJAIikpLmxlbmd0aD4xKXtpZih0LmRpc2FsbG93X2F1dGgpcmV0dXJuITE7aWYoIiI9PT15WzBdKXJldHVybiExO2lmKChzPXkuc2hpZnQoKSkuaW5kZXhPZigiOiIpPj0wJiZzLnNwbGl0KCI6IikubGVuZ3RoPjIpcmV0dXJuITE7dmFyIG09KDIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0odj1zLnNwbGl0KCI6IikpfHxmdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKXt2YXIgcj1bXSxuPSEwLG89ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgYSxzPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oYT1zLm5leHQoKSkuZG9uZSkmJihyLnB1c2goYS52YWx1ZSksMiE9PXIubGVuZ3RoKTtuPSEwKTt9Y2F0Y2goZSl7bz0hMCxpPWV9ZmluYWxseXt0cnl7bnx8bnVsbD09cy5yZXR1cm58fHMucmV0dXJuKCl9ZmluYWxseXtpZihvKXRocm93IGl9fXJldHVybiByfX0odil8fGZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiB1KGUsMik7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09ciYmZS5jb25zdHJ1Y3RvciYmKHI9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXJ8fCJTZXQiPT09cj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/dShlLDIpOnZvaWQgMH19KHYpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCkpLFQ9bVswXSx3PW1bMV07aWYoIiI9PT1UJiYiIj09PXcpcmV0dXJuITF9Zz1udWxsLGI9bnVsbDt2YXIgQT0ocD15LmpvaW4oIkAiKSkubWF0Y2gobCk7aWYoQT8oZj0iIixiPUFbMV0sZz1BWzJdfHxudWxsKTooZj0oeT1wLnNwbGl0KCI6IikpLnNoaWZ0KCkseS5sZW5ndGgmJihnPXkuam9pbigiOiIpKSksbnVsbCE9PWcmJmcubGVuZ3RoPjApe2lmKGg9cGFyc2VJbnQoZywxMCksIS9eWzAtOV0rJC8udGVzdChnKXx8aDw9MHx8aD42NTUzNSlyZXR1cm4hMX1lbHNlIGlmKHQucmVxdWlyZV9wb3J0KXJldHVybiExO3JldHVybiB0Lmhvc3Rfd2hpdGVsaXN0P2QoZix0Lmhvc3Rfd2hpdGVsaXN0KToiIj09PWYmJiF0LnJlcXVpcmVfaG9zdHx8ISEoKDAsaS5kZWZhdWx0KShmKXx8KDAsby5kZWZhdWx0KShmLHQpfHxiJiYoMCxpLmRlZmF1bHQpKGIsNikpJiYoZj1mfHxiLCF0Lmhvc3RfYmxhY2tsaXN0fHwhZChmLHQuaG9zdF9ibGFja2xpc3QpKX07dmFyIG49cyhyKDU1NzEpKSxvPXMocigyMjEpKSxpPXMocigxMDI4KSksYT1zKHIoNDgwOCkpO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWZ1bmN0aW9uIHUoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn12YXIgYz17cHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZnRwIl0scmVxdWlyZV90bGQ6ITAscmVxdWlyZV9wcm90b2NvbDohMSxyZXF1aXJlX2hvc3Q6ITAscmVxdWlyZV9wb3J0OiExLHJlcXVpcmVfdmFsaWRfcHJvdG9jb2w6ITAsYWxsb3dfdW5kZXJzY29yZXM6ITEsYWxsb3dfdHJhaWxpbmdfZG90OiExLGFsbG93X3Byb3RvY29sX3JlbGF0aXZlX3VybHM6ITEsYWxsb3dfZnJhZ21lbnRzOiEwLGFsbG93X3F1ZXJ5X2NvbXBvbmVudHM6ITAsdmFsaWRhdGVfbGVuZ3RoOiEwfSxsPS9eXFsoW15cXV0rKVxdKD86OihbMC05XSspKT8kLztmdW5jdGlvbiBkKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07aWYoZT09PW58fChvPW4sIltvYmplY3QgUmVnRXhwXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykmJm4udGVzdChlKSkpcmV0dXJuITB9dmFyIG87cmV0dXJuITF9ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDcyNzg6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsby5kZWZhdWx0KShlKTt2YXIgcj1pW1t2b2lkIDAsbnVsbF0uaW5jbHVkZXModCk/ImFsbCI6dF07cmV0dXJuISFyJiZyLnRlc3QoZSl9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGk9ezE6L15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS0xWzAtOUEtRl17M30tWzAtOUEtRl17NH0tWzAtOUEtRl17MTJ9JC9pLDI6L15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS0yWzAtOUEtRl17M30tWzAtOUEtRl17NH0tWzAtOUEtRl17MTJ9JC9pLDM6L15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS0zWzAtOUEtRl17M30tWzAtOUEtRl17NH0tWzAtOUEtRl17MTJ9JC9pLDQ6L15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS00WzAtOUEtRl17M30tWzg5QUJdWzAtOUEtRl17M30tWzAtOUEtRl17MTJ9JC9pLDU6L15bMC05QS1GXXs4fS1bMC05QS1GXXs0fS01WzAtOUEtRl17M30tWzg5QUJdWzAtOUEtRl17M30tWzAtOUEtRl17MTJ9JC9pLGFsbDovXlswLTlBLUZdezh9LVswLTlBLUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezR9LVswLTlBLUZdezEyfSQvaX07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDcyNDU6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksZT09PWUudG9VcHBlckNhc2UoKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDU5Nzc6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3JldHVybiBuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxuKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtpZigoMCxpLmRlZmF1bHQpKGUpLCgwLGkuZGVmYXVsdCkodCksdCBpbiB1KXJldHVybiB1W3RdKGUpO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb3VudHJ5IGNvZGU6ICciLmNvbmNhdCh0LCInIikpfSx0LnZhdE1hdGNoZXJzPXZvaWQgMDt2YXIgbyxpPShvPXIoNTU3MSkpJiZvLl9fZXNNb2R1bGU/bzp7ZGVmYXVsdDpvfSxhPWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8Im9iamVjdCIhPT1uKGUpJiYiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1zKCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciByPXt9LG89T2JqZWN0LmRlZmluZVByb3BlcnR5JiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2Zvcih2YXIgaSBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGkpKXt2YXIgYT1vP09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKTpudWxsO2EmJihhLmdldHx8YS5zZXQpP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGksYSk6cltpXT1lW2ldfXJldHVybiByLmRlZmF1bHQ9ZSx0JiZ0LnNldChlLHIpLHJ9KHIoMzY3MikpO2Z1bmN0aW9uIHMoKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgZT1uZXcgV2Vha01hcDtyZXR1cm4gcz1mdW5jdGlvbigpe3JldHVybiBlfSxlfXZhciB1PXtBVDpmdW5jdGlvbihlKXtyZXR1cm4vXihBVCk/VVxkezh9JC8udGVzdChlKX0sQkU6ZnVuY3Rpb24oZSl7cmV0dXJuL14oQkUpP1xkezEwfSQvLnRlc3QoZSl9LEJHOmZ1bmN0aW9uKGUpe3JldHVybi9eKEJHKT9cZHs5LDEwfSQvLnRlc3QoZSl9LEhSOmZ1bmN0aW9uKGUpe3JldHVybi9eKEhSKT9cZHsxMX0kLy50ZXN0KGUpfSxDWTpmdW5jdGlvbihlKXtyZXR1cm4vXihDWSk/XHd7OX0kLy50ZXN0KGUpfSxDWjpmdW5jdGlvbihlKXtyZXR1cm4vXihDWik/XGR7OCwxMH0kLy50ZXN0KGUpfSxESzpmdW5jdGlvbihlKXtyZXR1cm4vXihESyk/XGR7OH0kLy50ZXN0KGUpfSxFRTpmdW5jdGlvbihlKXtyZXR1cm4vXihFRSk/XGR7OX0kLy50ZXN0KGUpfSxGSTpmdW5jdGlvbihlKXtyZXR1cm4vXihGSSk/XGR7OH0kLy50ZXN0KGUpfSxGUjpmdW5jdGlvbihlKXtyZXR1cm4vXihGUik/XHd7Mn1cZHs5fSQvLnRlc3QoZSl9LERFOmZ1bmN0aW9uKGUpe3JldHVybi9eKERFKT9cZHs5fSQvLnRlc3QoZSl9LEVMOmZ1bmN0aW9uKGUpe3JldHVybi9eKEVMKT9cZHs5fSQvLnRlc3QoZSl9LEhVOmZ1bmN0aW9uKGUpe3JldHVybi9eKEhVKT9cZHs4fSQvLnRlc3QoZSl9LElFOmZ1bmN0aW9uKGUpe3JldHVybi9eKElFKT9cZHs3fVx3ezF9KFcpPyQvLnRlc3QoZSl9LElUOmZ1bmN0aW9uKGUpe3JldHVybi9eKElUKT9cZHsxMX0kLy50ZXN0KGUpfSxMVjpmdW5jdGlvbihlKXtyZXR1cm4vXihMVik/XGR7MTF9JC8udGVzdChlKX0sTFQ6ZnVuY3Rpb24oZSl7cmV0dXJuL14oTFQpP1xkezksMTJ9JC8udGVzdChlKX0sTFU6ZnVuY3Rpb24oZSl7cmV0dXJuL14oTFUpP1xkezh9JC8udGVzdChlKX0sTVQ6ZnVuY3Rpb24oZSl7cmV0dXJuL14oTVQpP1xkezh9JC8udGVzdChlKX0sTkw6ZnVuY3Rpb24oZSl7cmV0dXJuL14oTkwpP1xkezl9QlxkezJ9JC8udGVzdChlKX0sUEw6ZnVuY3Rpb24oZSl7cmV0dXJuL14oUEwpPyhcZHsxMH18KFxkezN9LVxkezN9LVxkezJ9LVxkezJ9KXwoXGR7M30tXGR7Mn0tXGR7Mn0tXGR7M30pKSQvLnRlc3QoZSl9LFBUOmZ1bmN0aW9uKGUpe3ZhciB0PWUubWF0Y2goL14oUFQpPyhcZHs5fSkkLyk7aWYoIXQpcmV0dXJuITE7dmFyIHI9dFsyXSxuPTExLWEucmV2ZXJzZU11bHRpcGx5QW5kU3VtKHIuc3BsaXQoIiIpLnNsaWNlKDAsOCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gcGFyc2VJbnQoZSwxMCl9KSksOSklMTE7cmV0dXJuIG4+OT8wPT09cGFyc2VJbnQocls4XSwxMCk6bj09PXBhcnNlSW50KHJbOF0sMTApfSxSTzpmdW5jdGlvbihlKXtyZXR1cm4vXihSTyk/XGR7MiwxMH0kLy50ZXN0KGUpfSxTSzpmdW5jdGlvbihlKXtyZXR1cm4vXihTSyk/XGR7MTB9JC8udGVzdChlKX0sU0k6ZnVuY3Rpb24oZSl7cmV0dXJuL14oU0kpP1xkezh9JC8udGVzdChlKX0sRVM6ZnVuY3Rpb24oZSl7cmV0dXJuL14oRVMpP1x3XGR7N31bQS1aXSQvLnRlc3QoZSl9LFNFOmZ1bmN0aW9uKGUpe3JldHVybi9eKFNFKT9cZHsxMn0kLy50ZXN0KGUpfSxBTDpmdW5jdGlvbihlKXtyZXR1cm4vXihBTCk/XHd7OX1bQS1aXSQvLnRlc3QoZSl9LE1LOmZ1bmN0aW9uKGUpe3JldHVybi9eKE1LKT9cZHsxM30kLy50ZXN0KGUpfSxBVTpmdW5jdGlvbihlKXtyZXR1cm4vXihBVSk/XGR7MTF9JC8udGVzdChlKX0sQlk6ZnVuY3Rpb24oZSl7cmV0dXJuL14o0KPQndCfICk/XGR7OX0kLy50ZXN0KGUpfSxDQTpmdW5jdGlvbihlKXtyZXR1cm4vXihDQSk/XGR7OX0kLy50ZXN0KGUpfSxJUzpmdW5jdGlvbihlKXtyZXR1cm4vXihJUyk/XGR7NSw2fSQvLnRlc3QoZSl9LElOOmZ1bmN0aW9uKGUpe3JldHVybi9eKElOKT9cZHsxNX0kLy50ZXN0KGUpfSxJRDpmdW5jdGlvbihlKXtyZXR1cm4vXihJRCk/KFxkezE1fXwoXGR7Mn0uXGR7M30uXGR7M30uXGR7MX0tXGR7M30uXGR7M30pKSQvLnRlc3QoZSl9LElMOmZ1bmN0aW9uKGUpe3JldHVybi9eKElMKT9cZHs5fSQvLnRlc3QoZSl9LEtaOmZ1bmN0aW9uKGUpe3JldHVybi9eKEtaKT9cZHs5fSQvLnRlc3QoZSl9LE5aOmZ1bmN0aW9uKGUpe3JldHVybi9eKE5aKT9cZHs5fSQvLnRlc3QoZSl9LE5HOmZ1bmN0aW9uKGUpe3JldHVybi9eKE5HKT8oXGR7MTJ9fChcZHs4fS1cZHs0fSkpJC8udGVzdChlKX0sTk86ZnVuY3Rpb24oZSl7cmV0dXJuL14oTk8pP1xkezl9TVZBJC8udGVzdChlKX0sUEg6ZnVuY3Rpb24oZSl7cmV0dXJuL14oUEgpPyhcZHsxMn18XGR7M30gXGR7M30gXGR7M30gXGR7M30pJC8udGVzdChlKX0sUlU6ZnVuY3Rpb24oZSl7cmV0dXJuL14oUlUpPyhcZHsxMH18XGR7MTJ9KSQvLnRlc3QoZSl9LFNNOmZ1bmN0aW9uKGUpe3JldHVybi9eKFNNKT9cZHs1fSQvLnRlc3QoZSl9LFNBOmZ1bmN0aW9uKGUpe3JldHVybi9eKFNBKT9cZHsxNX0kLy50ZXN0KGUpfSxSUzpmdW5jdGlvbihlKXtyZXR1cm4vXihSUyk/XGR7OX0kLy50ZXN0KGUpfSxDSDpmdW5jdGlvbihlKXtyZXR1cm4vXihDSCk/KFxkezZ9fFxkezl9fChcZHszfS5cZHszfSl8KFxkezN9LlxkezN9LlxkezN9KSkoVFZBfE1XU1R8SVZBKSQvLnRlc3QoZSl9LFRSOmZ1bmN0aW9uKGUpe3JldHVybi9eKFRSKT9cZHsxMH0kLy50ZXN0KGUpfSxVQTpmdW5jdGlvbihlKXtyZXR1cm4vXihVQSk/XGR7MTJ9JC8udGVzdChlKX0sR0I6ZnVuY3Rpb24oZSl7cmV0dXJuL15HQigoXGR7M30gXGR7NH0gKFswLThdWzAtOV18OVswLTZdKSl8KFxkezl9IFxkezN9KXwoKChHRFswLTRdKXwoSEFbNS05XSkpWzAtOV17Mn0pKSQvLnRlc3QoZSl9LFVaOmZ1bmN0aW9uKGUpe3JldHVybi9eKFVaKT9cZHs5fSQvLnRlc3QoZSl9LEFSOmZ1bmN0aW9uKGUpe3JldHVybi9eKEFSKT9cZHsxMX0kLy50ZXN0KGUpfSxCTzpmdW5jdGlvbihlKXtyZXR1cm4vXihCTyk/XGR7N30kLy50ZXN0KGUpfSxCUjpmdW5jdGlvbihlKXtyZXR1cm4vXihCUik/KChcZHsyfS5cZHszfS5cZHszfVwvXGR7NH0tXGR7Mn0pfChcZHszfS5cZHszfS5cZHszfS1cZHsyfSkpJC8udGVzdChlKX0sQ0w6ZnVuY3Rpb24oZSl7cmV0dXJuL14oQ0wpP1xkezh9LVxkezF9JC8udGVzdChlKX0sQ086ZnVuY3Rpb24oZSl7cmV0dXJuL14oQ08pP1xkezEwfSQvLnRlc3QoZSl9LENSOmZ1bmN0aW9uKGUpe3JldHVybi9eKENSKT9cZHs5LDEyfSQvLnRlc3QoZSl9LEVDOmZ1bmN0aW9uKGUpe3JldHVybi9eKEVDKT9cZHsxM30kLy50ZXN0KGUpfSxTVjpmdW5jdGlvbihlKXtyZXR1cm4vXihTVik/XGR7NH0tXGR7Nn0tXGR7M30tXGR7MX0kLy50ZXN0KGUpfSxHVDpmdW5jdGlvbihlKXtyZXR1cm4vXihHVCk/XGR7N30tXGR7MX0kLy50ZXN0KGUpfSxITjpmdW5jdGlvbihlKXtyZXR1cm4vXihITik/JC8udGVzdChlKX0sTVg6ZnVuY3Rpb24oZSl7cmV0dXJuL14oTVgpP1x3ezMsNH1cZHs2fVx3ezN9JC8udGVzdChlKX0sTkk6ZnVuY3Rpb24oZSl7cmV0dXJuL14oTkkpP1xkezN9LVxkezZ9LVxkezR9XHd7MX0kLy50ZXN0KGUpfSxQQTpmdW5jdGlvbihlKXtyZXR1cm4vXihQQSk/JC8udGVzdChlKX0sUFk6ZnVuY3Rpb24oZSl7cmV0dXJuL14oUFkpP1xkezYsOH0tXGR7MX0kLy50ZXN0KGUpfSxQRTpmdW5jdGlvbihlKXtyZXR1cm4vXihQRSk/XGR7MTF9JC8udGVzdChlKX0sRE86ZnVuY3Rpb24oZSl7cmV0dXJuL14oRE8pPyhcZHsxMX18KFxkezN9LVxkezd9LVxkezF9KXxbMSw0LDVdezF9XGR7OH18KFsxLDQsNV17MX0pLVxkezJ9LVxkezV9LVxkezF9KSQvLnRlc3QoZSl9LFVZOmZ1bmN0aW9uKGUpe3JldHVybi9eKFVZKT9cZHsxMn0kLy50ZXN0KGUpfSxWRTpmdW5jdGlvbihlKXtyZXR1cm4vXihWRSk/W0osRyxWLEVdezF9LShcZHs5fXwoXGR7OH0tXGR7MX0pKSQvLnRlc3QoZSl9fTt0LnZhdE1hdGNoZXJzPXV9LDkwMTk6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybigwLG8uZGVmYXVsdCkoZSksaS5mdWxsV2lkdGgudGVzdChlKSYmYS5oYWxmV2lkdGgudGVzdChlKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT1yKDcxNDYpLGE9cigyOTQxKTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODM0NjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxvLmRlZmF1bHQpKGUpO2Zvcih2YXIgcj1lLmxlbmd0aC0xO3I+PTA7ci0tKWlmKC0xPT09dC5pbmRleE9mKGVbcl0pKXJldHVybiExO3JldHVybiEwfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDk1OTooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXsoMCxvLmRlZmF1bHQpKGUpO3ZhciByPXQ/bmV3IFJlZ0V4cCgiXlsiLmNvbmNhdCh0LnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksIl0rIiksImciKTovXlxzKy9nO3JldHVybiBlLnJlcGxhY2UociwiIil9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59O2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw2NjE6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLCJbb2JqZWN0IFJlZ0V4cF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiYodD1uZXcgUmVnRXhwKHQscikpLCEhZS5tYXRjaCh0KX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDI5MDA6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7dD0oMCxvLmRlZmF1bHQpKHQsaSk7dmFyIHI9ZS5zcGxpdCgiQCIpLG49ci5wb3AoKSxkPVtyLmpvaW4oIkAiKSxuXTtpZihkWzFdPWRbMV0udG9Mb3dlckNhc2UoKSwiZ21haWwuY29tIj09PWRbMV18fCJnb29nbGVtYWlsLmNvbSI9PT1kWzFdKXtpZih0LmdtYWlsX3JlbW92ZV9zdWJhZGRyZXNzJiYoZFswXT1kWzBdLnNwbGl0KCIrIilbMF0pLHQuZ21haWxfcmVtb3ZlX2RvdHMmJihkWzBdPWRbMF0ucmVwbGFjZSgvXC4rL2csbCkpLCFkWzBdLmxlbmd0aClyZXR1cm4hMTsodC5hbGxfbG93ZXJjYXNlfHx0LmdtYWlsX2xvd2VyY2FzZSkmJihkWzBdPWRbMF0udG9Mb3dlckNhc2UoKSksZFsxXT10LmdtYWlsX2NvbnZlcnRfZ29vZ2xlbWFpbGRvdGNvbT8iZ21haWwuY29tIjpkWzFdfWVsc2UgaWYoYS5pbmRleE9mKGRbMV0pPj0wKXtpZih0LmljbG91ZF9yZW1vdmVfc3ViYWRkcmVzcyYmKGRbMF09ZFswXS5zcGxpdCgiKyIpWzBdKSwhZFswXS5sZW5ndGgpcmV0dXJuITE7KHQuYWxsX2xvd2VyY2FzZXx8dC5pY2xvdWRfbG93ZXJjYXNlKSYmKGRbMF09ZFswXS50b0xvd2VyQ2FzZSgpKX1lbHNlIGlmKHMuaW5kZXhPZihkWzFdKT49MCl7aWYodC5vdXRsb29rZG90Y29tX3JlbW92ZV9zdWJhZGRyZXNzJiYoZFswXT1kWzBdLnNwbGl0KCIrIilbMF0pLCFkWzBdLmxlbmd0aClyZXR1cm4hMTsodC5hbGxfbG93ZXJjYXNlfHx0Lm91dGxvb2tkb3Rjb21fbG93ZXJjYXNlKSYmKGRbMF09ZFswXS50b0xvd2VyQ2FzZSgpKX1lbHNlIGlmKHUuaW5kZXhPZihkWzFdKT49MCl7aWYodC55YWhvb19yZW1vdmVfc3ViYWRkcmVzcyl7dmFyIGY9ZFswXS5zcGxpdCgiLSIpO2RbMF09Zi5sZW5ndGg+MT9mLnNsaWNlKDAsLTEpLmpvaW4oIi0iKTpmWzBdfWlmKCFkWzBdLmxlbmd0aClyZXR1cm4hMTsodC5hbGxfbG93ZXJjYXNlfHx0LnlhaG9vX2xvd2VyY2FzZSkmJihkWzBdPWRbMF0udG9Mb3dlckNhc2UoKSl9ZWxzZSBjLmluZGV4T2YoZFsxXSk+PTA/KCh0LmFsbF9sb3dlcmNhc2V8fHQueWFuZGV4X2xvd2VyY2FzZSkmJihkWzBdPWRbMF0udG9Mb3dlckNhc2UoKSksZFsxXT0ieWFuZGV4LnJ1Iik6dC5hbGxfbG93ZXJjYXNlJiYoZFswXT1kWzBdLnRvTG93ZXJDYXNlKCkpO3JldHVybiBkLmpvaW4oIkAiKX07dmFyIG4sbz0obj1yKDQ4MDgpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn0saT17YWxsX2xvd2VyY2FzZTohMCxnbWFpbF9sb3dlcmNhc2U6ITAsZ21haWxfcmVtb3ZlX2RvdHM6ITAsZ21haWxfcmVtb3ZlX3N1YmFkZHJlc3M6ITAsZ21haWxfY29udmVydF9nb29nbGVtYWlsZG90Y29tOiEwLG91dGxvb2tkb3Rjb21fbG93ZXJjYXNlOiEwLG91dGxvb2tkb3Rjb21fcmVtb3ZlX3N1YmFkZHJlc3M6ITAseWFob29fbG93ZXJjYXNlOiEwLHlhaG9vX3JlbW92ZV9zdWJhZGRyZXNzOiEwLHlhbmRleF9sb3dlcmNhc2U6ITAsaWNsb3VkX2xvd2VyY2FzZTohMCxpY2xvdWRfcmVtb3ZlX3N1YmFkZHJlc3M6ITB9LGE9WyJpY2xvdWQuY29tIiwibWUuY29tIl0scz1bImhvdG1haWwuYXQiLCJob3RtYWlsLmJlIiwiaG90bWFpbC5jYSIsImhvdG1haWwuY2wiLCJob3RtYWlsLmNvLmlsIiwiaG90bWFpbC5jby5ueiIsImhvdG1haWwuY28udGgiLCJob3RtYWlsLmNvLnVrIiwiaG90bWFpbC5jb20iLCJob3RtYWlsLmNvbS5hciIsImhvdG1haWwuY29tLmF1IiwiaG90bWFpbC5jb20uYnIiLCJob3RtYWlsLmNvbS5nciIsImhvdG1haWwuY29tLm14IiwiaG90bWFpbC5jb20ucGUiLCJob3RtYWlsLmNvbS50ciIsImhvdG1haWwuY29tLnZuIiwiaG90bWFpbC5jeiIsImhvdG1haWwuZGUiLCJob3RtYWlsLmRrIiwiaG90bWFpbC5lcyIsImhvdG1haWwuZnIiLCJob3RtYWlsLmh1IiwiaG90bWFpbC5pZCIsImhvdG1haWwuaWUiLCJob3RtYWlsLmluIiwiaG90bWFpbC5pdCIsImhvdG1haWwuanAiLCJob3RtYWlsLmtyIiwiaG90bWFpbC5sdiIsImhvdG1haWwubXkiLCJob3RtYWlsLnBoIiwiaG90bWFpbC5wdCIsImhvdG1haWwuc2EiLCJob3RtYWlsLnNnIiwiaG90bWFpbC5zayIsImxpdmUuYmUiLCJsaXZlLmNvLnVrIiwibGl2ZS5jb20iLCJsaXZlLmNvbS5hciIsImxpdmUuY29tLm14IiwibGl2ZS5kZSIsImxpdmUuZXMiLCJsaXZlLmV1IiwibGl2ZS5mciIsImxpdmUuaXQiLCJsaXZlLm5sIiwibXNuLmNvbSIsIm91dGxvb2suYXQiLCJvdXRsb29rLmJlIiwib3V0bG9vay5jbCIsIm91dGxvb2suY28uaWwiLCJvdXRsb29rLmNvLm56Iiwib3V0bG9vay5jby50aCIsIm91dGxvb2suY29tIiwib3V0bG9vay5jb20uYXIiLCJvdXRsb29rLmNvbS5hdSIsIm91dGxvb2suY29tLmJyIiwib3V0bG9vay5jb20uZ3IiLCJvdXRsb29rLmNvbS5wZSIsIm91dGxvb2suY29tLnRyIiwib3V0bG9vay5jb20udm4iLCJvdXRsb29rLmN6Iiwib3V0bG9vay5kZSIsIm91dGxvb2suZGsiLCJvdXRsb29rLmVzIiwib3V0bG9vay5mciIsIm91dGxvb2suaHUiLCJvdXRsb29rLmlkIiwib3V0bG9vay5pZSIsIm91dGxvb2suaW4iLCJvdXRsb29rLml0Iiwib3V0bG9vay5qcCIsIm91dGxvb2sua3IiLCJvdXRsb29rLmx2Iiwib3V0bG9vay5teSIsIm91dGxvb2sucGgiLCJvdXRsb29rLnB0Iiwib3V0bG9vay5zYSIsIm91dGxvb2suc2ciLCJvdXRsb29rLnNrIiwicGFzc3BvcnQuY29tIl0sdT1bInJvY2tldG1haWwuY29tIiwieWFob28uY2EiLCJ5YWhvby5jby51ayIsInlhaG9vLmNvbSIsInlhaG9vLmRlIiwieWFob28uZnIiLCJ5YWhvby5pbiIsInlhaG9vLml0IiwieW1haWwuY29tIl0sYz1bInlhbmRleC5ydSIsInlhbmRleC51YSIsInlhbmRleC5reiIsInlhbmRleC5jb20iLCJ5YW5kZXguYnkiLCJ5YS5ydSJdO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUubGVuZ3RoPjE/ZToiIn1lLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sOTc3ODooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtpZigoMCxvLmRlZmF1bHQpKGUpLHQpe3ZhciByPW5ldyBSZWdFeHAoIlsiLmNvbmNhdCh0LnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIiksIl0rJCIpLCJnIik7cmV0dXJuIGUucmVwbGFjZShyLCIiKX1mb3IodmFyIG49ZS5sZW5ndGgtMTsvXHMvLnRlc3QoZS5jaGFyQXQobikpOyluLT0xO3JldHVybiBlLnNsaWNlKDAsbisxKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDgwMzU6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7KDAsbi5kZWZhdWx0KShlKTt2YXIgcj10PyJcXHgwMC1cXHgwOVxceDBCXFx4MENcXHgwRS1cXHgxRlxceDdGIjoiXFx4MDAtXFx4MUZcXHg3RiI7cmV0dXJuKDAsby5kZWZhdWx0KShlLHIpfTt2YXIgbj1pKHIoNTU3MSkpLG89aShyKDQ5MjgpKTtmdW5jdGlvbiBpKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1lLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNTU3OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3JldHVybigwLG8uZGVmYXVsdCkoZSksdD8iMSI9PT1lfHwvXnRydWUkL2kudGVzdChlKToiMCIhPT1lJiYhL15mYWxzZSQvaS50ZXN0KGUpJiYiIiE9PWV9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59O2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw4NDY5OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGU9RGF0ZS5wYXJzZShlKSxpc05hTihlKT9udWxsOm5ldyBEYXRlKGUpfTt2YXIgbixvPShuPXIoNTU3MSkpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufTtlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNzUzNjooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7cmV0dXJuKDAsby5kZWZhdWx0KShlKT9wYXJzZUZsb2F0KGUpOk5hTn07dmFyIG4sbz0obj1yKDkxNDYpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDEzNTk6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsby5kZWZhdWx0KShlKSxwYXJzZUludChlLHR8fDEwKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDQ3OTA6KGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKDAsbi5kZWZhdWx0KSgoMCxvLmRlZmF1bHQpKGUsdCksdCl9O3ZhciBuPWkocig5Nzc4KSksbz1pKHIoNDk1OSkpO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fWUuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw0ODE2OihlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlKXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGUucmVwbGFjZSgvJnF1b3Q7L2csJyInKS5yZXBsYWNlKC8mI3gyNzsvZywiJyIpLnJlcGxhY2UoLyZsdDsvZywiPCIpLnJlcGxhY2UoLyZndDsvZywiPiIpLnJlcGxhY2UoLyYjeDJGOy9nLCIvIikucmVwbGFjZSgvJiN4NUM7L2csIlxcIikucmVwbGFjZSgvJiM5NjsvZywiYCIpLnJlcGxhY2UoLyZhbXA7L2csIiYiKX07dmFyIG4sbz0obj1yKDU1NzEpKSYmbi5fX2VzTW9kdWxlP246e2RlZmF1bHQ6bn07ZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDM2NzI6KGUsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuaXNvNzA2NENoZWNrPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0xMCxyPTA7cjxlLmxlbmd0aC0xO3IrKyl0PShwYXJzZUludChlW3JdLDEwKSt0KSUxMD09MD85OihwYXJzZUludChlW3JdLDEwKSt0KSUxMCoyJTExO3JldHVybih0PTE9PT10PzA6MTEtdCk9PT1wYXJzZUludChlWzEwXSwxMCl9LHQubHVobkNoZWNrPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLHI9ITEsbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtpZihyKXt2YXIgbz0yKnBhcnNlSW50KGVbbl0sMTApO3QrPW8+OT9vLnRvU3RyaW5nKCkuc3BsaXQoIiIpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfSkpLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSt0fSksMCk6b31lbHNlIHQrPXBhcnNlSW50KGVbbl0sMTApO3I9IXJ9cmV0dXJuIHQlMTA9PTB9LHQucmV2ZXJzZU11bHRpcGx5QW5kU3VtPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTAsbj0wO248ZS5sZW5ndGg7bisrKXIrPWVbbl0qKHQtbik7cmV0dXJuIHJ9LHQudmVyaG9lZmZDaGVjaz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W1swLDEsMiwzLDQsNSw2LDcsOCw5XSxbMSwyLDMsNCwwLDYsNyw4LDksNV0sWzIsMyw0LDAsMSw3LDgsOSw1LDZdLFszLDQsMCwxLDIsOCw5LDUsNiw3XSxbNCwwLDEsMiwzLDksNSw2LDcsOF0sWzUsOSw4LDcsNiwwLDQsMywyLDFdLFs2LDUsOSw4LDcsMSwwLDQsMywyXSxbNyw2LDUsOSw4LDIsMSwwLDQsM10sWzgsNyw2LDUsOSwzLDIsMSwwLDRdLFs5LDgsNyw2LDUsNCwzLDIsMSwwXV0scj1bWzAsMSwyLDMsNCw1LDYsNyw4LDldLFsxLDUsNyw2LDIsOCwzLDAsOSw0XSxbNSw4LDAsMyw3LDksNiwxLDQsMl0sWzgsOSwxLDYsMCw0LDMsNSwyLDddLFs5LDQsNSwzLDEsMiw2LDgsNywwXSxbNCwyLDgsNiw1LDcsMyw5LDAsMV0sWzIsNyw5LDMsOCwwLDYsNCwxLDVdLFs3LDAsNCw2LDksMSwzLDIsNSw4XV0sbj1lLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIiksbz0wLGk9MDtpPG4ubGVuZ3RoO2krKylvPXRbb11bcltpJThdW3BhcnNlSW50KG5baV0sMTApXV07cmV0dXJuIDA9PT1vfX0sNTU3MTooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxyKGUpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSl7aWYoISgic3RyaW5nIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBTdHJpbmcpKXt2YXIgdD1yKGUpO3Rocm93IG51bGw9PT1lP3Q9Im51bGwiOiJvYmplY3QiPT09dCYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBhIHN0cmluZyBidXQgcmVjZWl2ZWQgYSAiLmNvbmNhdCh0KSl9fSxlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sODM0MzooZSx0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PXZvaWQgMDt0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gdD09PWV9KSl9LGUuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw0ODA4OihlLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdD1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDtmb3IodmFyIHIgaW4gdCl2b2lkIDA9PT1lW3JdJiYoZVtyXT10W3JdKTtyZXR1cm4gZX0sZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDQ3MzE6KGUsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD1mdW5jdGlvbihlLHQpe3ZhciByPWUuam9pbigiIik7cmV0dXJuIG5ldyBSZWdFeHAocix0KX0sZS5leHBvcnRzPXQuZGVmYXVsdCxlLmV4cG9ydHMuZGVmYXVsdD10LmRlZmF1bHR9LDE5MTM6KGUsdCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0scihlKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksdC5kZWZhdWx0PWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT09cihlKSYmbnVsbCE9PWU/ZT0iZnVuY3Rpb24iPT10eXBlb2YgZS50b1N0cmluZz9lLnRvU3RyaW5nKCk6IltvYmplY3QgT2JqZWN0XSI6KG51bGw9PWV8fGlzTmFOKGUpJiYhZS5sZW5ndGgpJiYoZT0iIiksU3RyaW5nKGUpfSxlLmV4cG9ydHM9dC5kZWZhdWx0LGUuZXhwb3J0cy5kZWZhdWx0PXQuZGVmYXVsdH0sNDcxNDooZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oMCxvLmRlZmF1bHQpKGUpLGUucmVwbGFjZShuZXcgUmVnRXhwKCJbXiIuY29uY2F0KHQsIl0rIiksImciKSwiIil9O3ZhciBuLG89KG49cig1NTcxKSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59O2UuZXhwb3J0cz10LmRlZmF1bHQsZS5leHBvcnRzLmRlZmF1bHQ9dC5kZWZhdWx0fSw1ODU2OigpPT57fSw2NjAxOigpPT57fSw3MDYxOihlLHQscik9Pnt2YXIgbj1yKDg2OTgpLmRlZmF1bHQ7ZnVuY3Rpb24gbygpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9bz1mdW5jdGlvbigpe3JldHVybiB0fSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHM7dmFyIHQ9e30scj1PYmplY3QucHJvdG90eXBlLGk9ci5oYXNPd25Qcm9wZXJ0eSxhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8ZnVuY3Rpb24oZSx0LHIpe2VbdF09ci52YWx1ZX0scz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSx1PXMuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixjPXMuYXN5bmNJdGVyYXRvcnx8IkBAYXN5bmNJdGVyYXRvciIsbD1zLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gZChlLHQscil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KSxlW3RdfXRyeXtkKHt9LCIiKX1jYXRjaChlKXtkPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZVt0XT1yfX1mdW5jdGlvbiBmKGUsdCxyLG4pe3ZhciBvPXQmJnQucHJvdG90eXBlIGluc3RhbmNlb2YgZz90OmcsaT1PYmplY3QuY3JlYXRlKG8ucHJvdG90eXBlKSxzPW5ldyBNKG58fFtdKTtyZXR1cm4gYShpLCJfaW52b2tlIix7dmFsdWU6VyhlLHIscyl9KSxpfWZ1bmN0aW9uIHAoZSx0LHIpe3RyeXtyZXR1cm57dHlwZToibm9ybWFsIixhcmc6ZS5jYWxsKHQscil9fWNhdGNoKGUpe3JldHVybnt0eXBlOiJ0aHJvdyIsYXJnOmV9fX10LndyYXA9Zjt2YXIgaD17fTtmdW5jdGlvbiBnKCl7fWZ1bmN0aW9uIHkoKXt9ZnVuY3Rpb24gYigpe312YXIgdj17fTtkKHYsdSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKTt2YXIgbT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsVD1tJiZtKG0oayhbXSkpKTtUJiZUIT09ciYmaS5jYWxsKFQsdSkmJih2PVQpO3ZhciB3PWIucHJvdG90eXBlPWcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodik7ZnVuY3Rpb24gQShlKXtbIm5leHQiLCJ0aHJvdyIsInJldHVybiJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2QoZSx0LChmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5faW52b2tlKHQsZSl9KSl9KSl9ZnVuY3Rpb24gUChlLHQpe2Z1bmN0aW9uIHIobyxhLHMsdSl7dmFyIGM9cChlW29dLGUsYSk7aWYoInRocm93IiE9PWMudHlwZSl7dmFyIGw9Yy5hcmcsZD1sLnZhbHVlO3JldHVybiBkJiYib2JqZWN0Ij09bihkKSYmaS5jYWxsKGQsIl9fYXdhaXQiKT90LnJlc29sdmUoZC5fX2F3YWl0KS50aGVuKChmdW5jdGlvbihlKXtyKCJuZXh0IixlLHMsdSl9KSwoZnVuY3Rpb24oZSl7cigidGhyb3ciLGUscyx1KX0pKTp0LnJlc29sdmUoZCkudGhlbigoZnVuY3Rpb24oZSl7bC52YWx1ZT1lLHMobCl9KSwoZnVuY3Rpb24oZSl7cmV0dXJuIHIoInRocm93IixlLHMsdSl9KSl9dShjLmFyZyl9dmFyIG87YSh0aGlzLCJfaW52b2tlIix7dmFsdWU6ZnVuY3Rpb24oZSxuKXtmdW5jdGlvbiBpKCl7cmV0dXJuIG5ldyB0KChmdW5jdGlvbih0LG8pe3IoZSxuLHQsbyl9KSl9cmV0dXJuIG89bz9vLnRoZW4oaSxpKTppKCl9fSl9ZnVuY3Rpb24gVyhlLHQscil7dmFyIG49InN1c3BlbmRlZFN0YXJ0IjtyZXR1cm4gZnVuY3Rpb24obyxpKXtpZigiZXhlY3V0aW5nIj09PW4pdGhyb3cgbmV3IEVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7aWYoImNvbXBsZXRlZCI9PT1uKXtpZigidGhyb3ciPT09byl0aHJvdyBpO3JldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19Zm9yKHIubWV0aG9kPW8sci5hcmc9aTs7KXt2YXIgYT1yLmRlbGVnYXRlO2lmKGEpe3ZhciBzPUIoYSxyKTtpZihzKXtpZihzPT09aCljb250aW51ZTtyZXR1cm4gc319aWYoIm5leHQiPT09ci5tZXRob2Qpci5zZW50PXIuX3NlbnQ9ci5hcmc7ZWxzZSBpZigidGhyb3ciPT09ci5tZXRob2Qpe2lmKCJzdXNwZW5kZWRTdGFydCI9PT1uKXRocm93IG49ImNvbXBsZXRlZCIsci5hcmc7ci5kaXNwYXRjaEV4Y2VwdGlvbihyLmFyZyl9ZWxzZSJyZXR1cm4iPT09ci5tZXRob2QmJnIuYWJydXB0KCJyZXR1cm4iLHIuYXJnKTtuPSJleGVjdXRpbmciO3ZhciB1PXAoZSx0LHIpO2lmKCJub3JtYWwiPT09dS50eXBlKXtpZihuPXIuZG9uZT8iY29tcGxldGVkIjoic3VzcGVuZGVkWWllbGQiLHUuYXJnPT09aCljb250aW51ZTtyZXR1cm57dmFsdWU6dS5hcmcsZG9uZTpyLmRvbmV9fSJ0aHJvdyI9PT11LnR5cGUmJihuPSJjb21wbGV0ZWQiLHIubWV0aG9kPSJ0aHJvdyIsci5hcmc9dS5hcmcpfX19ZnVuY3Rpb24gQihlLHQpe3ZhciByPXQubWV0aG9kLG49ZS5pdGVyYXRvcltyXTtpZih2b2lkIDA9PT1uKXJldHVybiB0LmRlbGVnYXRlPW51bGwsInRocm93Ij09PXImJmUuaXRlcmF0b3IucmV0dXJuJiYodC5tZXRob2Q9InJldHVybiIsdC5hcmc9dm9pZCAwLEIoZSx0KSwidGhyb3ciPT09dC5tZXRob2QpfHwicmV0dXJuIiE9PXImJih0Lm1ldGhvZD0idGhyb3ciLHQuYXJnPW5ldyBUeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrcisiJyBtZXRob2QiKSksaDt2YXIgbz1wKG4sZS5pdGVyYXRvcix0LmFyZyk7aWYoInRocm93Ij09PW8udHlwZSlyZXR1cm4gdC5tZXRob2Q9InRocm93Iix0LmFyZz1vLmFyZyx0LmRlbGVnYXRlPW51bGwsaDt2YXIgaT1vLmFyZztyZXR1cm4gaT9pLmRvbmU/KHRbZS5yZXN1bHROYW1lXT1pLnZhbHVlLHQubmV4dD1lLm5leHRMb2MsInJldHVybiIhPT10Lm1ldGhvZCYmKHQubWV0aG9kPSJuZXh0Iix0LmFyZz12b2lkIDApLHQuZGVsZWdhdGU9bnVsbCxoKTppOih0Lm1ldGhvZD0idGhyb3ciLHQuYXJnPW5ldyBUeXBlRXJyb3IoIml0ZXJhdG9yIHJlc3VsdCBpcyBub3QgYW4gb2JqZWN0IiksdC5kZWxlZ2F0ZT1udWxsLGgpfWZ1bmN0aW9uIEMoZSl7dmFyIHQ9e3RyeUxvYzplWzBdfTsxIGluIGUmJih0LmNhdGNoTG9jPWVbMV0pLDIgaW4gZSYmKHQuZmluYWxseUxvYz1lWzJdLHQuYWZ0ZXJMb2M9ZVszXSksdGhpcy50cnlFbnRyaWVzLnB1c2godCl9ZnVuY3Rpb24gRShlKXt2YXIgdD1lLmNvbXBsZXRpb258fHt9O3QudHlwZT0ibm9ybWFsIixkZWxldGUgdC5hcmcsZS5jb21wbGV0aW9uPXR9ZnVuY3Rpb24gTShlKXt0aGlzLnRyeUVudHJpZXM9W3t0cnlMb2M6InJvb3QifV0sZS5mb3JFYWNoKEMsdGhpcyksdGhpcy5yZXNldCghMCl9ZnVuY3Rpb24gayhlKXtpZihlKXt2YXIgdD1lW3VdO2lmKHQpcmV0dXJuIHQuY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpe3ZhciByPS0xLG49ZnVuY3Rpb24gdCgpe2Zvcig7KytyPGUubGVuZ3RoOylpZihpLmNhbGwoZSxyKSlyZXR1cm4gdC52YWx1ZT1lW3JdLHQuZG9uZT0hMSx0O3JldHVybiB0LnZhbHVlPXZvaWQgMCx0LmRvbmU9ITAsdH07cmV0dXJuIG4ubmV4dD1ufX1yZXR1cm57bmV4dDpJfX1mdW5jdGlvbiBJKCl7cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX1yZXR1cm4geS5wcm90b3R5cGU9YixhKHcsImNvbnN0cnVjdG9yIix7dmFsdWU6Yixjb25maWd1cmFibGU6ITB9KSxhKGIsImNvbnN0cnVjdG9yIix7dmFsdWU6eSxjb25maWd1cmFibGU6ITB9KSx5LmRpc3BsYXlOYW1lPWQoYixsLCJHZW5lcmF0b3JGdW5jdGlvbiIpLHQuaXNHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihlKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4hIXQmJih0PT09eXx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpKX0sdC5tYXJrPWZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsYik6KGUuX19wcm90b19fPWIsZChlLGwsIkdlbmVyYXRvckZ1bmN0aW9uIikpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodyksZX0sdC5hd3JhcD1mdW5jdGlvbihlKXtyZXR1cm57X19hd2FpdDplfX0sQShQLnByb3RvdHlwZSksZChQLnByb3RvdHlwZSxjLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLHQuQXN5bmNJdGVyYXRvcj1QLHQuYXN5bmM9ZnVuY3Rpb24oZSxyLG4sbyxpKXt2b2lkIDA9PT1pJiYoaT1Qcm9taXNlKTt2YXIgYT1uZXcgUChmKGUscixuLG8pLGkpO3JldHVybiB0LmlzR2VuZXJhdG9yRnVuY3Rpb24ocik/YTphLm5leHQoKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5kb25lP2UudmFsdWU6YS5uZXh0KCl9KSl9LEEodyksZCh3LGwsIkdlbmVyYXRvciIpLGQodyx1LChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGQodywidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSkpLHQua2V5cz1mdW5jdGlvbihlKXt2YXIgdD1PYmplY3QoZSkscj1bXTtmb3IodmFyIG4gaW4gdClyLnB1c2gobik7cmV0dXJuIHIucmV2ZXJzZSgpLGZ1bmN0aW9uIGUoKXtmb3IoO3IubGVuZ3RoOyl7dmFyIG49ci5wb3AoKTtpZihuIGluIHQpcmV0dXJuIGUudmFsdWU9bixlLmRvbmU9ITEsZX1yZXR1cm4gZS5kb25lPSEwLGV9fSx0LnZhbHVlcz1rLE0ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpNLHJlc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMucHJldj0wLHRoaXMubmV4dD0wLHRoaXMuc2VudD10aGlzLl9zZW50PXZvaWQgMCx0aGlzLmRvbmU9ITEsdGhpcy5kZWxlZ2F0ZT1udWxsLHRoaXMubWV0aG9kPSJuZXh0Iix0aGlzLmFyZz12b2lkIDAsdGhpcy50cnlFbnRyaWVzLmZvckVhY2goRSksIWUpZm9yKHZhciB0IGluIHRoaXMpInQiPT09dC5jaGFyQXQoMCkmJmkuY2FsbCh0aGlzLHQpJiYhaXNOYU4oK3Quc2xpY2UoMSkpJiYodGhpc1t0XT12b2lkIDApfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5kb25lPSEwO3ZhciBlPXRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uO2lmKCJ0aHJvdyI9PT1lLnR5cGUpdGhyb3cgZS5hcmc7cmV0dXJuIHRoaXMucnZhbH0sZGlzcGF0Y2hFeGNlcHRpb246ZnVuY3Rpb24oZSl7aWYodGhpcy5kb25lKXRocm93IGU7dmFyIHQ9dGhpcztmdW5jdGlvbiByKHIsbil7cmV0dXJuIGEudHlwZT0idGhyb3ciLGEuYXJnPWUsdC5uZXh0PXIsbiYmKHQubWV0aG9kPSJuZXh0Iix0LmFyZz12b2lkIDApLCEhbn1mb3IodmFyIG49dGhpcy50cnlFbnRyaWVzLmxlbmd0aC0xO24+PTA7LS1uKXt2YXIgbz10aGlzLnRyeUVudHJpZXNbbl0sYT1vLmNvbXBsZXRpb247aWYoInJvb3QiPT09by50cnlMb2MpcmV0dXJuIHIoImVuZCIpO2lmKG8udHJ5TG9jPD10aGlzLnByZXYpe3ZhciBzPWkuY2FsbChvLCJjYXRjaExvYyIpLHU9aS5jYWxsKG8sImZpbmFsbHlMb2MiKTtpZihzJiZ1KXtpZih0aGlzLnByZXY8by5jYXRjaExvYylyZXR1cm4gcihvLmNhdGNoTG9jLCEwKTtpZih0aGlzLnByZXY8by5maW5hbGx5TG9jKXJldHVybiByKG8uZmluYWxseUxvYyl9ZWxzZSBpZihzKXtpZih0aGlzLnByZXY8by5jYXRjaExvYylyZXR1cm4gcihvLmNhdGNoTG9jLCEwKX1lbHNle2lmKCF1KXRocm93IG5ldyBFcnJvcigidHJ5IHN0YXRlbWVudCB3aXRob3V0IGNhdGNoIG9yIGZpbmFsbHkiKTtpZih0aGlzLnByZXY8by5maW5hbGx5TG9jKXJldHVybiByKG8uZmluYWxseUxvYyl9fX19LGFicnVwdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7cj49MDstLXIpe3ZhciBuPXRoaXMudHJ5RW50cmllc1tyXTtpZihuLnRyeUxvYzw9dGhpcy5wcmV2JiZpLmNhbGwobiwiZmluYWxseUxvYyIpJiZ0aGlzLnByZXY8bi5maW5hbGx5TG9jKXt2YXIgbz1uO2JyZWFrfX1vJiYoImJyZWFrIj09PWV8fCJjb250aW51ZSI9PT1lKSYmby50cnlMb2M8PXQmJnQ8PW8uZmluYWxseUxvYyYmKG89bnVsbCk7dmFyIGE9bz9vLmNvbXBsZXRpb246e307cmV0dXJuIGEudHlwZT1lLGEuYXJnPXQsbz8odGhpcy5tZXRob2Q9Im5leHQiLHRoaXMubmV4dD1vLmZpbmFsbHlMb2MsaCk6dGhpcy5jb21wbGV0ZShhKX0sY29tcGxldGU6ZnVuY3Rpb24oZSx0KXtpZigidGhyb3ciPT09ZS50eXBlKXRocm93IGUuYXJnO3JldHVybiJicmVhayI9PT1lLnR5cGV8fCJjb250aW51ZSI9PT1lLnR5cGU/dGhpcy5uZXh0PWUuYXJnOiJyZXR1cm4iPT09ZS50eXBlPyh0aGlzLnJ2YWw9dGhpcy5hcmc9ZS5hcmcsdGhpcy5tZXRob2Q9InJldHVybiIsdGhpcy5uZXh0PSJlbmQiKToibm9ybWFsIj09PWUudHlwZSYmdCYmKHRoaXMubmV4dD10KSxofSxmaW5pc2g6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudHJ5RW50cmllcy5sZW5ndGgtMTt0Pj0wOy0tdCl7dmFyIHI9dGhpcy50cnlFbnRyaWVzW3RdO2lmKHIuZmluYWxseUxvYz09PWUpcmV0dXJuIHRoaXMuY29tcGxldGUoci5jb21wbGV0aW9uLHIuYWZ0ZXJMb2MpLEUociksaH19LGNhdGNoOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnRyeUVudHJpZXMubGVuZ3RoLTE7dD49MDstLXQpe3ZhciByPXRoaXMudHJ5RW50cmllc1t0XTtpZihyLnRyeUxvYz09PWUpe3ZhciBuPXIuY29tcGxldGlvbjtpZigidGhyb3ciPT09bi50eXBlKXt2YXIgbz1uLmFyZztFKHIpfXJldHVybiBvfX10aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZT17aXRlcmF0b3I6ayhlKSxyZXN1bHROYW1lOnQsbmV4dExvYzpyfSwibmV4dCI9PT10aGlzLm1ldGhvZCYmKHRoaXMuYXJnPXZvaWQgMCksaH19LHR9ZS5leHBvcnRzPW8sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSw4Njk4OmU9PntmdW5jdGlvbiB0KHIpe3JldHVybiBlLmV4cG9ydHM9dD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX0sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzLHQocil9ZS5leHBvcnRzPXQsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSw0Njg3OihlLHQscik9Pnt2YXIgbj1yKDcwNjEpKCk7ZS5leHBvcnRzPW47dHJ5e3JlZ2VuZXJhdG9yUnVudGltZT1ufWNhdGNoKGUpeyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzLnJlZ2VuZXJhdG9yUnVudGltZT1uOkZ1bmN0aW9uKCJyIiwicmVnZW5lcmF0b3JSdW50aW1lID0gciIpKG4pfX19LG49e307ZnVuY3Rpb24gbyhlKXt2YXIgdD1uW2VdO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQuZXhwb3J0czt2YXIgaT1uW2VdPXtpZDplLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gcltlXS5jYWxsKGkuZXhwb3J0cyxpLGkuZXhwb3J0cyxvKSxpLmxvYWRlZD0hMCxpLmV4cG9ydHN9by5hbWRPPXt9LG8ubj1lPT57dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIG8uZCh0LHthOnR9KSx0fSx0PU9iamVjdC5nZXRQcm90b3R5cGVPZj9lPT5PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk6ZT0+ZS5fX3Byb3RvX18sby50PWZ1bmN0aW9uKHIsbil7aWYoMSZuJiYocj10aGlzKHIpKSw4Jm4pcmV0dXJuIHI7aWYoIm9iamVjdCI9PXR5cGVvZiByJiZyKXtpZig0Jm4mJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZigxNiZuJiYiZnVuY3Rpb24iPT10eXBlb2Ygci50aGVuKXJldHVybiByfXZhciBpPU9iamVjdC5jcmVhdGUobnVsbCk7by5yKGkpO3ZhciBhPXt9O2U9ZXx8W251bGwsdCh7fSksdChbXSksdCh0KV07Zm9yKHZhciBzPTImbiYmcjsib2JqZWN0Ij09dHlwZW9mIHMmJiF+ZS5pbmRleE9mKHMpO3M9dChzKSlPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzKS5mb3JFYWNoKChlPT5hW2VdPSgpPT5yW2VdKSk7cmV0dXJuIGEuZGVmYXVsdD0oKT0+cixvLmQoaSxhKSxpfSxvLmQ9KGUsdCk9Pntmb3IodmFyIHIgaW4gdClvLm8odCxyKSYmIW8ubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDp0W3JdfSl9LG8uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKGUpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLG8ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksby5yPWU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxvLm5tZD1lPT4oZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksZSk7dmFyIGk9e307cmV0dXJuKCgpPT57InVzZSBzdHJpY3QiO28uZChpLHtkZWZhdWx0OigpPT5zdn0pO3ZhciBlPXt9O28ucihlKSxvLmQoZSx7aGFzQnJvd3NlckVudjooKT0+Q2UsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5FZSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PmtlfSk7dmFyIHQ9e307by5yKHQpLG8uZCh0LHtiYXNlNjREZWNvZGVGcm9tU3RyaW5nOigpPT5BdCxiYXNlNjRFbmNvZGVUb1N0cmluZzooKT0+UHQsYnl0ZTJoZXhTdHI6KCk9PnZ0LGJ5dGVBcnJheTJoZXhTdHI6KCk9Pnd0LGJ5dGVzVG9TdHJpbmc6KCk9Pm10LGhleHRvU3RyaW5nOigpPT5UdH0pO3ZhciByPXt9O28ucihyKSxvLmQocix7YXJyYXlFcXVhbHM6KCk9PlN0LGJhc2U2NERlY29kZUZyb21TdHJpbmc6KCk9PkF0LGJhc2U2NEVuY29kZVRvU3RyaW5nOigpPT5QdCxiaW4yU3RyaW5nOigpPT54dCxieXRlMmhleFN0cjooKT0+dnQsYnl0ZUFycmF5MmhleFN0cjooKT0+d3QsYnl0ZXNUb1N0cmluZzooKT0+bXQsZ2V0U3RyaW5nVHlwZTooKT0+THQsaGV4Q2hhcjJieXRlOigpPT5fdCxoZXhTdHIyYnl0ZUFycmF5OigpPT5OdCxoZXh0b1N0cmluZzooKT0+VHQsaXNIZXhDaGFyOigpPT5SdCxpc051bWJlcjooKT0+RHQsc3RyVG9EYXRlOigpPT5VdCxzdHJpbmdUb0J5dGVzOigpPT5GdH0pO3ZhciBuPXt9O28ucihuKSxvLmQobix7ZGVjb2RlNTg6KCk9Pkh0LGVuY29kZTU4OigpPT5HdH0pO3ZhciBhPXt9O28ucihhKSxvLmQoYSx7QWJpQ29kZXI6KCk9PnpzLEZvcm1hdFR5cGVzOigpPT5ucCxJbnRlcmZhY2U6KCk9PllmLE1uZW1vbmljOigpPT5WbyxTaWduYXR1cmU6KCk9PnFyLFNpZ25pbmdLZXk6KCk9PnNhLFdvcmRsaXN0OigpPT5DbyxhcnJheWlmeTooKT0+cnAsY29uY2F0OigpPT52cixldGhlcnNIRE5vZGVXYWxsZXQ6KCk9PlRkLGV0aGVyc1dhbGxldDooKT0+TWQsaWQ6KCk9PkFvLGlzVmFsaWRNbmVtb25pYzooKT0+b3Asam9pblNpZ25hdHVyZTooKT0+dHAsa2VjY2FrMjU2OigpPT53byxyZWNvdmVyQWRkcmVzczooKT0+Y2Esc2hhMjU2OigpPT5WbixzcGxpdFNpZ25hdHVyZTooKT0+ZXAsdG9VdGY4Qnl0ZXM6KCk9PlhuLHRvVXRmOFN0cmluZzooKT0+UW4sd29yZGxpc3RzOigpPT5JZH0pO3ZhciBzPXt9O28ucihzKSxvLmQocyx7RUNLZXlTaWduOigpPT5IcCxTSEEyNTY6KCk9PktwLF9zaWduVHlwZWREYXRhOigpPT5fcCxhcnJheVRvQmFzZTY0U3RyaW5nOigpPT5TcCxjb21wdXRlQWRkcmVzczooKT0+VXAsZGVjb2RlNThDaGVjazooKT0+THAsZGVjb2RlQmFzZTU4QWRkcmVzczooKT0+SXAsZWNSZWNvdmVyOigpPT54cCxnZW5QcmlLZXk6KCk9Pk5wLGdldEFkZHJlc3NGcm9tUHJpS2V5OigpPT5EcCxnZXRBZGRyZXNzRnJvbVByaUtleUJhc2U2NFN0cmluZzooKT0+VnAsZ2V0QmFzZTU4Q2hlY2tBZGRyZXNzOigpPT5rcCxnZXRCYXNlNThDaGVja0FkZHJlc3NGcm9tUHJpS2V5QmFzZTY0U3RyaW5nOigpPT56cCxnZXRIZXhTdHJBZGRyZXNzRnJvbVByaUtleUJhc2U2NFN0cmluZzooKT0+JHAsZ2V0UHViS2V5RnJvbVByaUtleTooKT0+R3AsZ2V0Um93Qnl0ZXNGcm9tVHJhbnNhY3Rpb25CYXNlNjQ6KCk9PlJwLGlzQWRkcmVzc1ZhbGlkOigpPT5qcCxwYXNzd29yZFRvQWRkcmVzczooKT0+WnAscGtUb0FkZHJlc3M6KCk9PnFwLHNpZ25CeXRlczooKT0+RnAsc2lnblRyYW5zYWN0aW9uOigpPT5PcH0pO3ZhciB1PXt9O28ucih1KSxvLmQodSx7Z2VuZXJhdGVBY2NvdW50OigpPT5ZcCxnZW5lcmF0ZUFjY291bnRXaXRoTW5lbW9uaWM6KCk9PlFwLGdlbmVyYXRlUmFuZG9tOigpPT5YcH0pO3ZhciBjPXt9O28ucihjKSxvLmQoYyx7ZGVjb2RlUGFyYW1zOigpPT54ZyxkZWNvZGVQYXJhbXNWMkJ5QUJJOigpPT5OZyxlbmNvZGVQYXJhbXM6KCk9PlNnLGVuY29kZVBhcmFtc1YyQnlBQkk6KCk9PlJnfSk7dmFyIGw9e307by5yKGwpLG8uZChsLHtUUk9OX01FU1NBR0VfUFJFRklYOigpPT5VZyxoYXNoTWVzc2FnZTooKT0+RGcsc2lnbk1lc3NhZ2U6KCk9PkxnLHZlcmlmeU1lc3NhZ2U6KCk9PmpnfSk7dmFyIGQ9e307ZnVuY3Rpb24gZihlLHQscixuLG8saSxhKXt0cnl7dmFyIHM9ZVtpXShhKSx1PXMudmFsdWV9Y2F0Y2goZSl7cmV0dXJuIHZvaWQgcihlKX1zLmRvbmU/dCh1KTpQcm9taXNlLnJlc29sdmUodSkudGhlbihuLG8pfWZ1bmN0aW9uIHAoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKG4sbyl7dmFyIGk9ZS5hcHBseSh0LHIpO2Z1bmN0aW9uIGEoZSl7ZihpLG4sbyxhLHMsIm5leHQiLGUpfWZ1bmN0aW9uIHMoZSl7ZihpLG4sbyxhLHMsInRocm93IixlKX1hKHZvaWQgMCl9KSl9fWZ1bmN0aW9uIGgoZSl7cmV0dXJuIGg9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGgoZSl9ZnVuY3Rpb24gZyhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHkoZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9PWgoZSl8fG51bGw9PT1lKXJldHVybiBlO3ZhciByPWVbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1yKXt2YXIgbj1yLmNhbGwoZSwic3RyaW5nIik7aWYoIm9iamVjdCIhPT1oKG4pKXJldHVybiBuO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuIFN0cmluZyhlKX0oZSk7cmV0dXJuInN5bWJvbCI9PT1oKHQpP3Q6U3RyaW5nKHQpfWZ1bmN0aW9uIGIoZSx0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHkobi5rZXkpLG4pfX1mdW5jdGlvbiB2KGUsdCxyKXtyZXR1cm4gdCYmYihlLnByb3RvdHlwZSx0KSxyJiZiKGUsciksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZX1mdW5jdGlvbiBtKGUpe2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZX1mdW5jdGlvbiBUKGUsdCl7cmV0dXJuIFQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5fX3Byb3RvX189dCxlfSxUKGUsdCl9ZnVuY3Rpb24gdyhlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0JiZUKGUsdCl9ZnVuY3Rpb24gQShlLHQpe2lmKHQmJigib2JqZWN0Ij09PWgodCl8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KSlyZXR1cm4gdDtpZih2b2lkIDAhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIG0oZSl9ZnVuY3Rpb24gUChlKXtyZXR1cm4gUD1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihlKXtyZXR1cm4gZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKX0sUChlKX1mdW5jdGlvbiBXKGUsdCxyKXtyZXR1cm4odD15KHQpKWluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09cixlfW8ucihkKSxvLmQoZCx7dHhDaGVjazooKT0+JHksdHhDaGVja1dpdGhBcmdzOigpPT5WeSx0eEpzb25Ub1BiOigpPT5EeSx0eEpzb25Ub1BiV2l0aEFyZ3M6KCk9Pkx5LHR4UGJUb1Jhd0RhdGFIZXg6KCk9Pnp5LHR4UGJUb1R4SUQ6KCk9Pkd5fSk7dmFyIEI9byg0Njg3KSxDPW8ubihCKTtmdW5jdGlvbiBFKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodCxhcmd1bWVudHMpfX1jb25zdHt0b1N0cmluZzpNfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjprfT1PYmplY3QsST0oTz1PYmplY3QuY3JlYXRlKG51bGwpLGU9Pntjb25zdCB0PU0uY2FsbChlKTtyZXR1cm4gT1t0XXx8KE9bdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pO3ZhciBPO2NvbnN0IHg9ZT0+KGU9ZS50b0xvd2VyQ2FzZSgpLHQ9PkkodCk9PT1lKSxTPWU9PnQ9PnR5cGVvZiB0PT09ZSx7aXNBcnJheTpGfT1BcnJheSxfPVMoInVuZGVmaW5lZCIpLFI9eCgiQXJyYXlCdWZmZXIiKSxOPVMoInN0cmluZyIpLFU9UygiZnVuY3Rpb24iKSxEPVMoIm51bWJlciIpLEw9ZT0+bnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSxqPWU9PntpZigib2JqZWN0IiE9PUkoZSkpcmV0dXJuITE7Y29uc3QgdD1rKGUpO3JldHVybiEobnVsbCE9PXQmJnQhPT1PYmplY3QucHJvdG90eXBlJiZudWxsIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfHxTeW1ib2wudG9TdHJpbmdUYWcgaW4gZXx8U3ltYm9sLml0ZXJhdG9yIGluIGUpfSx6PXgoIkRhdGUiKSwkPXgoIkZpbGUiKSxWPXgoIkJsb2IiKSxHPXgoIkZpbGVMaXN0IiksSD14KCJVUkxTZWFyY2hQYXJhbXMiKTtmdW5jdGlvbiBLKGUsdCx7YWxsT3duS2V5czpyPSExfT17fSl7aWYobnVsbD09ZSlyZXR1cm47bGV0IG4sbztpZigib2JqZWN0IiE9dHlwZW9mIGUmJihlPVtlXSksRihlKSlmb3Iobj0wLG89ZS5sZW5ndGg7bjxvO24rKyl0LmNhbGwobnVsbCxlW25dLG4sZSk7ZWxzZXtjb25zdCBvPXI/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSk6T2JqZWN0LmtleXMoZSksaT1vLmxlbmd0aDtsZXQgYTtmb3Iobj0wO248aTtuKyspYT1vW25dLHQuY2FsbChudWxsLGVbYV0sYSxlKX19ZnVuY3Rpb24gWihlLHQpe3Q9dC50b0xvd2VyQ2FzZSgpO2NvbnN0IHI9T2JqZWN0LmtleXMoZSk7bGV0IG4sbz1yLmxlbmd0aDtmb3IoO28tLSA+MDspaWYobj1yW29dLHQ9PT1uLnRvTG93ZXJDYXNlKCkpcmV0dXJuIG47cmV0dXJuIG51bGx9Y29uc3QgcT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6Z2xvYmFsLEo9ZT0+IV8oZSkmJmUhPT1xLFk9KFg9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiZrKFVpbnQ4QXJyYXkpLGU9PlgmJmUgaW5zdGFuY2VvZiBYKTt2YXIgWDtjb25zdCBRPXgoIkhUTUxGb3JtRWxlbWVudCIpLGVlPSgoe2hhc093blByb3BlcnR5OmV9KT0+KHQscik9PmUuY2FsbCh0LHIpKShPYmplY3QucHJvdG90eXBlKSx0ZT14KCJSZWdFeHAiKSxyZT0oZSx0KT0+e2NvbnN0IHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZSksbj17fTtLKHIsKChyLG8pPT57bGV0IGk7ITEhPT0oaT10KHIsbyxlKSkmJihuW29dPWl8fHIpfSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsbil9LG5lPSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsb2U9IjAxMjM0NTY3ODkiLGllPXtESUdJVDpvZSxBTFBIQTpuZSxBTFBIQV9ESUdJVDpuZStuZS50b1VwcGVyQ2FzZSgpK29lfSxhZT14KCJBc3luY0Z1bmN0aW9uIiksc2U9e2lzQXJyYXk6Rixpc0FycmF5QnVmZmVyOlIsaXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhXyhlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiFfKGUuY29uc3RydWN0b3IpJiZVKGUuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfSxpc0Zvcm1EYXRhOmU9PntsZXQgdDtyZXR1cm4gZSYmKCJmdW5jdGlvbiI9PXR5cGVvZiBGb3JtRGF0YSYmZSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxVKGUuYXBwZW5kKSYmKCJmb3JtZGF0YSI9PT0odD1JKGUpKXx8Im9iamVjdCI9PT10JiZVKGUudG9TdHJpbmcpJiYiW29iamVjdCBGb3JtRGF0YV0iPT09ZS50b1N0cmluZygpKSl9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKGUpe2xldCB0O3JldHVybiB0PSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJlIoZS5idWZmZXIpLHR9LGlzU3RyaW5nOk4saXNOdW1iZXI6RCxpc0Jvb2xlYW46ZT0+ITA9PT1lfHwhMT09PWUsaXNPYmplY3Q6TCxpc1BsYWluT2JqZWN0OmosaXNVbmRlZmluZWQ6Xyxpc0RhdGU6eixpc0ZpbGU6JCxpc0Jsb2I6Vixpc1JlZ0V4cDp0ZSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06ZT0+TChlKSYmVShlLnBpcGUpLGlzVVJMU2VhcmNoUGFyYW1zOkgsaXNUeXBlZEFycmF5OlksaXNGaWxlTGlzdDpHLGZvckVhY2g6SyxtZXJnZTpmdW5jdGlvbiBlKCl7Y29uc3R7Y2FzZWxlc3M6dH09Sih0aGlzKSYmdGhpc3x8e30scj17fSxuPShuLG8pPT57Y29uc3QgaT10JiZaKHIsbyl8fG87aihyW2ldKSYmaihuKT9yW2ldPWUocltpXSxuKTpqKG4pP3JbaV09ZSh7fSxuKTpGKG4pP3JbaV09bi5zbGljZSgpOnJbaV09bn07Zm9yKGxldCBlPTAsdD1hcmd1bWVudHMubGVuZ3RoO2U8dDtlKyspYXJndW1lbnRzW2VdJiZLKGFyZ3VtZW50c1tlXSxuKTtyZXR1cm4gcn0sZXh0ZW5kOihlLHQscix7YWxsT3duS2V5czpufT17fSk9PihLKHQsKCh0LG4pPT57ciYmVSh0KT9lW25dPUUodCxyKTplW25dPXR9KSx7YWxsT3duS2V5czpufSksZSksdHJpbTplPT5lLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIiksc3RyaXBCT006ZT0+KDY1Mjc5PT09ZS5jaGFyQ29kZUF0KDApJiYoZT1lLnNsaWNlKDEpKSxlKSxpbmhlcml0czooZSx0LHIsbik9PntlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLG4pLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN1cGVyIix7dmFsdWU6dC5wcm90b3R5cGV9KSxyJiZPYmplY3QuYXNzaWduKGUucHJvdG90eXBlLHIpfSx0b0ZsYXRPYmplY3Q6KGUsdCxyLG4pPT57bGV0IG8saSxhO2NvbnN0IHM9e307aWYodD10fHx7fSxudWxsPT1lKXJldHVybiB0O2Rve2ZvcihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLGk9by5sZW5ndGg7aS0tID4wOylhPW9baV0sbiYmIW4oYSxlLHQpfHxzW2FdfHwodFthXT1lW2FdLHNbYV09ITApO2U9ITEhPT1yJiZrKGUpfXdoaWxlKGUmJighcnx8cihlLHQpKSYmZSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiB0fSxraW5kT2Y6SSxraW5kT2ZUZXN0OngsZW5kc1dpdGg6KGUsdCxyKT0+e2U9U3RyaW5nKGUpLCh2b2lkIDA9PT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpLHItPXQubGVuZ3RoO2NvbnN0IG49ZS5pbmRleE9mKHQscik7cmV0dXJuLTEhPT1uJiZuPT09cn0sdG9BcnJheTplPT57aWYoIWUpcmV0dXJuIG51bGw7aWYoRihlKSlyZXR1cm4gZTtsZXQgdD1lLmxlbmd0aDtpZighRCh0KSlyZXR1cm4gbnVsbDtjb25zdCByPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspclt0XT1lW3RdO3JldHVybiByfSxmb3JFYWNoRW50cnk6KGUsdCk9Pntjb25zdCByPShlJiZlW1N5bWJvbC5pdGVyYXRvcl0pLmNhbGwoZSk7bGV0IG47Zm9yKDsobj1yLm5leHQoKSkmJiFuLmRvbmU7KXtjb25zdCByPW4udmFsdWU7dC5jYWxsKGUsclswXSxyWzFdKX19LG1hdGNoQWxsOihlLHQpPT57bGV0IHI7Y29uc3Qgbj1bXTtmb3IoO251bGwhPT0ocj1lLmV4ZWModCkpOyluLnB1c2gocik7cmV0dXJuIG59LGlzSFRNTEZvcm06USxoYXNPd25Qcm9wZXJ0eTplZSxoYXNPd25Qcm9wOmVlLHJlZHVjZURlc2NyaXB0b3JzOnJlLGZyZWV6ZU1ldGhvZHM6ZT0+e3JlKGUsKCh0LHIpPT57aWYoVShlKSYmLTEhPT1bImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YocikpcmV0dXJuITE7Y29uc3Qgbj1lW3JdO1UobikmJih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQ/dC53cml0YWJsZT0hMTp0LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK3IrIiciKX0pKX0pKX0sdG9PYmplY3RTZXQ6KGUsdCk9Pntjb25zdCByPXt9LG49ZT0+e2UuZm9yRWFjaCgoZT0+e3JbZV09ITB9KSl9O3JldHVybiBGKGUpP24oZSk6bihTdHJpbmcoZSkuc3BsaXQodCkpLHJ9LHRvQ2FtZWxDYXNlOmU9PmUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cc10oW2EtelxkXSkoXHcqKS9nLChmdW5jdGlvbihlLHQscil7cmV0dXJuIHQudG9VcHBlckNhc2UoKStyfSkpLG5vb3A6KCk9Pnt9LHRvRmluaXRlTnVtYmVyOihlLHQpPT4oZT0rZSxOdW1iZXIuaXNGaW5pdGUoZSk/ZTp0KSxmaW5kS2V5OlosZ2xvYmFsOnEsaXNDb250ZXh0RGVmaW5lZDpKLEFMUEhBQkVUOmllLGdlbmVyYXRlU3RyaW5nOihlPTE2LHQ9aWUuQUxQSEFfRElHSVQpPT57bGV0IHI9IiI7Y29uc3R7bGVuZ3RoOm59PXQ7Zm9yKDtlLS07KXIrPXRbTWF0aC5yYW5kb20oKSpufDBdO3JldHVybiByfSxpc1NwZWNDb21wbGlhbnRGb3JtOmZ1bmN0aW9uKGUpe3JldHVybiEhKGUmJlUoZS5hcHBlbmQpJiYiRm9ybURhdGEiPT09ZVtTeW1ib2wudG9TdHJpbmdUYWddJiZlW1N5bWJvbC5pdGVyYXRvcl0pfSx0b0pTT05PYmplY3Q6ZT0+e2NvbnN0IHQ9bmV3IEFycmF5KDEwKSxyPShlLG4pPT57aWYoTChlKSl7aWYodC5pbmRleE9mKGUpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gZSkpe3Rbbl09ZTtjb25zdCBvPUYoZSk/W106e307cmV0dXJuIEsoZSwoKGUsdCk9Pntjb25zdCBpPXIoZSxuKzEpOyFfKGkpJiYob1t0XT1pKX0pKSx0W25dPXZvaWQgMCxvfX1yZXR1cm4gZX07cmV0dXJuIHIoZSwwKX0saXNBc3luY0ZuOmFlLGlzVGhlbmFibGU6ZT0+ZSYmKEwoZSl8fFUoZSkpJiZVKGUudGhlbikmJlUoZS5jYXRjaCl9O2Z1bmN0aW9uIHVlKGUsdCxyLG4sbyl7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9KG5ldyBFcnJvcikuc3RhY2ssdGhpcy5tZXNzYWdlPWUsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLHImJih0aGlzLmNvbmZpZz1yKSxuJiYodGhpcy5yZXF1ZXN0PW4pLG8mJih0aGlzLnJlc3BvbnNlPW8pfXNlLmluaGVyaXRzKHVlLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6c2UudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5yZXNwb25zZSYmdGhpcy5yZXNwb25zZS5zdGF0dXM/dGhpcy5yZXNwb25zZS5zdGF0dXM6bnVsbH19fSk7Y29uc3QgY2U9dWUucHJvdG90eXBlLGxlPXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goKGU9PntsZVtlXT17dmFsdWU6ZX19KSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXModWUsbGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjZSwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KSx1ZS5mcm9tPShlLHQscixuLG8saSk9Pntjb25zdCBhPU9iamVjdC5jcmVhdGUoY2UpO3JldHVybiBzZS50b0ZsYXRPYmplY3QoZSxhLChmdW5jdGlvbihlKXtyZXR1cm4gZSE9PUVycm9yLnByb3RvdHlwZX0pLChlPT4iaXNBeGlvc0Vycm9yIiE9PWUpKSx1ZS5jYWxsKGEsZS5tZXNzYWdlLHQscixuLG8pLGEuY2F1c2U9ZSxhLm5hbWU9ZS5uYW1lLGkmJk9iamVjdC5hc3NpZ24oYSxpKSxhfTtjb25zdCBkZT11ZTtmdW5jdGlvbiBmZShlKXtyZXR1cm4gc2UuaXNQbGFpbk9iamVjdChlKXx8c2UuaXNBcnJheShlKX1mdW5jdGlvbiBwZShlKXtyZXR1cm4gc2UuZW5kc1dpdGgoZSwiW10iKT9lLnNsaWNlKDAsLTIpOmV9ZnVuY3Rpb24gaGUoZSx0LHIpe3JldHVybiBlP2UuY29uY2F0KHQpLm1hcCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1wZShlKSwhciYmdD8iWyIrZSsiXSI6ZX0pKS5qb2luKHI/Ii4iOiIiKTp0fWNvbnN0IGdlPXNlLnRvRmxhdE9iamVjdChzZSx7fSxudWxsLChmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KSkseWU9ZnVuY3Rpb24oZSx0LHIpe2lmKCFzZS5pc09iamVjdChlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyBGb3JtRGF0YTtjb25zdCBuPShyPXNlLnRvRmxhdE9iamVjdChyLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIXNlLmlzVW5kZWZpbmVkKHRbZV0pfSkpKS5tZXRhVG9rZW5zLG89ci52aXNpdG9yfHxjLGk9ci5kb3RzLGE9ci5pbmRleGVzLHM9KHIuQmxvYnx8InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZCbG9iKSYmc2UuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighc2UuaXNGdW5jdGlvbihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIHUoZSl7aWYobnVsbD09PWUpcmV0dXJuIiI7aWYoc2UuaXNEYXRlKGUpKXJldHVybiBlLnRvSVNPU3RyaW5nKCk7aWYoIXMmJnNlLmlzQmxvYihlKSl0aHJvdyBuZXcgZGUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIHNlLmlzQXJyYXlCdWZmZXIoZSl8fHNlLmlzVHlwZWRBcnJheShlKT9zJiYiZnVuY3Rpb24iPT10eXBlb2YgQmxvYj9uZXcgQmxvYihbZV0pOkJ1ZmZlci5mcm9tKGUpOmV9ZnVuY3Rpb24gYyhlLHIsbyl7bGV0IHM9ZTtpZihlJiYhbyYmIm9iamVjdCI9PXR5cGVvZiBlKWlmKHNlLmVuZHNXaXRoKHIsInt9Iikpcj1uP3I6ci5zbGljZSgwLC0yKSxlPUpTT04uc3RyaW5naWZ5KGUpO2Vsc2UgaWYoc2UuaXNBcnJheShlKSYmZnVuY3Rpb24oZSl7cmV0dXJuIHNlLmlzQXJyYXkoZSkmJiFlLnNvbWUoZmUpfShlKXx8KHNlLmlzRmlsZUxpc3QoZSl8fHNlLmVuZHNXaXRoKHIsIltdIikpJiYocz1zZS50b0FycmF5KGUpKSlyZXR1cm4gcj1wZShyKSxzLmZvckVhY2goKGZ1bmN0aW9uKGUsbil7IXNlLmlzVW5kZWZpbmVkKGUpJiZudWxsIT09ZSYmdC5hcHBlbmQoITA9PT1hP2hlKFtyXSxuLGkpOm51bGw9PT1hP3I6cisiW10iLHUoZSkpfSkpLCExO3JldHVybiEhZmUoZSl8fCh0LmFwcGVuZChoZShvLHIsaSksdShlKSksITEpfWNvbnN0IGw9W10sZD1PYmplY3QuYXNzaWduKGdlLHtkZWZhdWx0VmlzaXRvcjpjLGNvbnZlcnRWYWx1ZTp1LGlzVmlzaXRhYmxlOmZlfSk7aWYoIXNlLmlzT2JqZWN0KGUpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gZnVuY3Rpb24gZShyLG4pe2lmKCFzZS5pc1VuZGVmaW5lZChyKSl7aWYoLTEhPT1sLmluZGV4T2YocikpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK24uam9pbigiLiIpKTtsLnB1c2gociksc2UuZm9yRWFjaChyLChmdW5jdGlvbihyLGkpeyEwPT09KCEoc2UuaXNVbmRlZmluZWQocil8fG51bGw9PT1yKSYmby5jYWxsKHQscixzZS5pc1N0cmluZyhpKT9pLnRyaW0oKTppLG4sZCkpJiZlKHIsbj9uLmNvbmNhdChpKTpbaV0pfSkpLGwucG9wKCl9fShlKSx0fTtmdW5jdGlvbiBiZShlKXtjb25zdCB0PXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIiwiJTAwIjoiXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGUpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKX1mdW5jdGlvbiB2ZShlLHQpe3RoaXMuX3BhaXJzPVtdLGUmJnllKGUsdGhpcyx0KX1jb25zdCBtZT12ZS5wcm90b3R5cGU7bWUuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9LG1lLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZT9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsdCxiZSl9OmJlO3JldHVybiB0aGlzLl9wYWlycy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGVbMF0pKyI9Iit0KGVbMV0pfSksIiIpLmpvaW4oIiYiKX07Y29uc3QgVGU9dmU7ZnVuY3Rpb24gd2UoZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZnVuY3Rpb24gQWUoZSx0LHIpe2lmKCF0KXJldHVybiBlO2NvbnN0IG49ciYmci5lbmNvZGV8fHdlLG89ciYmci5zZXJpYWxpemU7bGV0IGk7aWYoaT1vP28odCxyKTpzZS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IFRlKHQscikudG9TdHJpbmcobiksaSl7Y29uc3QgdD1lLmluZGV4T2YoIiMiKTstMSE9PXQmJihlPWUuc2xpY2UoMCx0KSksZSs9KC0xPT09ZS5pbmRleE9mKCI/Iik/Ij8iOiImIikraX1yZXR1cm4gZX1jb25zdCBQZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOiEhciYmci5zeW5jaHJvbm91cyxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7c2UuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLChmdW5jdGlvbih0KXtudWxsIT09dCYmZSh0KX0pKX19LFdlPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxCZT17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczoidW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcz9VUkxTZWFyY2hQYXJhbXM6VGUsRm9ybURhdGE6InVuZGVmaW5lZCIhPXR5cGVvZiBGb3JtRGF0YT9Gb3JtRGF0YTpudWxsLEJsb2I6InVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iP0Jsb2I6bnVsbH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19LENlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LEVlPShNZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnByb2R1Y3QsQ2UmJlsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoTWUpPDApO3ZhciBNZTtjb25zdCBrZT0idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHMsSWU9ey4uLmUsLi4uQmV9LE9lPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoZSxyLG4sbyl7bGV0IGk9ZVtvKytdO2NvbnN0IGE9TnVtYmVyLmlzRmluaXRlKCtpKSxzPW8+PWUubGVuZ3RoO3JldHVybiBpPSFpJiZzZS5pc0FycmF5KG4pP24ubGVuZ3RoOmkscz8oc2UuaGFzT3duUHJvcChuLGkpP25baV09W25baV0scl06bltpXT1yLCFhKToobltpXSYmc2UuaXNPYmplY3QobltpXSl8fChuW2ldPVtdKSx0KGUscixuW2ldLG8pJiZzZS5pc0FycmF5KG5baV0pJiYobltpXT1mdW5jdGlvbihlKXtjb25zdCB0PXt9LHI9T2JqZWN0LmtleXMoZSk7bGV0IG47Y29uc3Qgbz1yLmxlbmd0aDtsZXQgaTtmb3Iobj0wO248bztuKyspaT1yW25dLHRbaV09ZVtpXTtyZXR1cm4gdH0obltpXSkpLCFhKX1pZihzZS5pc0Zvcm1EYXRhKGUpJiZzZS5pc0Z1bmN0aW9uKGUuZW50cmllcykpe2NvbnN0IHI9e307cmV0dXJuIHNlLmZvckVhY2hFbnRyeShlLCgoZSxuKT0+e3QoZnVuY3Rpb24oZSl7cmV0dXJuIHNlLm1hdGNoQWxsKC9cdyt8XFsoXHcqKV0vZyxlKS5tYXAoKGU9PiJbXSI9PT1lWzBdPyIiOmVbMV18fGVbMF0pKX0oZSksbixyLDApfSkpLHJ9cmV0dXJuIG51bGx9LHhlPXt0cmFuc2l0aW9uYWw6V2UsYWRhcHRlcjpbInhociIsImh0dHAiXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2NvbnN0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixuPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLG89c2UuaXNPYmplY3QoZSk7aWYobyYmc2UuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxzZS5pc0Zvcm1EYXRhKGUpKXJldHVybiBuJiZuP0pTT04uc3RyaW5naWZ5KE9lKGUpKTplO2lmKHNlLmlzQXJyYXlCdWZmZXIoZSl8fHNlLmlzQnVmZmVyKGUpfHxzZS5pc1N0cmVhbShlKXx8c2UuaXNGaWxlKGUpfHxzZS5pc0Jsb2IoZSkpcmV0dXJuIGU7aWYoc2UuaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKHNlLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiB0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgaTtpZihvKXtpZihyLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBmdW5jdGlvbihlLHQpe3JldHVybiB5ZShlLG5ldyBJZS5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBJZS5pc05vZGUmJnNlLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZCh0LGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6bi5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx0KSl9KGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigoaT1zZS5pc0ZpbGVMaXN0KGUpKXx8ci5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2NvbnN0IHQ9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiB5ZShpP3siZmlsZXNbXSI6ZX06ZSx0JiZuZXcgdCx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fG4/KHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxmdW5jdGlvbihlLHQscil7aWYoc2UuaXNTdHJpbmcoZSkpdHJ5e3JldHVybigwLEpTT04ucGFyc2UpKGUpLHNlLnRyaW0oZSl9Y2F0Y2goZSl7aWYoIlN5bnRheEVycm9yIiE9PWUubmFtZSl0aHJvdyBlfXJldHVybigwLEpTT04uc3RyaW5naWZ5KShlKX0oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7Y29uc3QgdD10aGlzLnRyYW5zaXRpb25hbHx8eGUudHJhbnNpdGlvbmFsLHI9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxuPSJqc29uIj09PXRoaXMucmVzcG9uc2VUeXBlO2lmKGUmJnNlLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxuKSl7Y29uc3Qgcj0hKHQmJnQuc2lsZW50SlNPTlBhcnNpbmcpJiZuO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChlKXtpZihyKXtpZigiU3ludGF4RXJyb3IiPT09ZS5uYW1lKXRocm93IGRlLmZyb20oZSxkZS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTt0aHJvdyBlfX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOkllLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpJZS5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07c2UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSwoZT0+e3hlLmhlYWRlcnNbZV09e319KSk7Y29uc3QgU2U9eGUsRmU9c2UudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksX2U9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBSZShlKXtyZXR1cm4gZSYmU3RyaW5nKGUpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIE5lKGUpe3JldHVybiExPT09ZXx8bnVsbD09ZT9lOnNlLmlzQXJyYXkoZSk/ZS5tYXAoTmUpOlN0cmluZyhlKX1mdW5jdGlvbiBVZShlLHQscixuLG8pe3JldHVybiBzZS5pc0Z1bmN0aW9uKG4pP24uY2FsbCh0aGlzLHQscik6KG8mJih0PXIpLHNlLmlzU3RyaW5nKHQpP3NlLmlzU3RyaW5nKG4pPy0xIT09dC5pbmRleE9mKG4pOnNlLmlzUmVnRXhwKG4pP24udGVzdCh0KTp2b2lkIDA6dm9pZCAwKX1jbGFzcyBEZXtjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LHIpe2NvbnN0IG49dGhpcztmdW5jdGlvbiBvKGUsdCxyKXtjb25zdCBvPVJlKHQpO2lmKCFvKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtjb25zdCBpPXNlLmZpbmRLZXkobixvKTsoIWl8fHZvaWQgMD09PW5baV18fCEwPT09cnx8dm9pZCAwPT09ciYmITEhPT1uW2ldKSYmKG5baXx8dF09TmUoZSkpfWNvbnN0IGk9KGUsdCk9PnNlLmZvckVhY2goZSwoKGUscik9Pm8oZSxyLHQpKSk7cmV0dXJuIHNlLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yP2koZSx0KTpzZS5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhL15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChlLnRyaW0oKSk/aSgoZT0+e2NvbnN0IHQ9e307bGV0IHIsbixvO3JldHVybiBlJiZlLnNwbGl0KCJcbiIpLmZvckVhY2goKGZ1bmN0aW9uKGUpe289ZS5pbmRleE9mKCI6Iikscj1lLnN1YnN0cmluZygwLG8pLnRyaW0oKS50b0xvd2VyQ2FzZSgpLG49ZS5zdWJzdHJpbmcobysxKS50cmltKCksIXJ8fHRbcl0mJkZlW3JdfHwoInNldC1jb29raWUiPT09cj90W3JdP3Rbcl0ucHVzaChuKTp0W3JdPVtuXTp0W3JdPXRbcl0/dFtyXSsiLCAiK246bil9KSksdH0pKGUpLHQpOm51bGwhPWUmJm8odCxlLHIpLHRoaXN9Z2V0KGUsdCl7aWYoZT1SZShlKSl7Y29uc3Qgcj1zZS5maW5kS2V5KHRoaXMsZSk7aWYocil7Y29uc3QgZT10aGlzW3JdO2lmKCF0KXJldHVybiBlO2lmKCEwPT09dClyZXR1cm4gZnVuY3Rpb24oZSl7Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpLHI9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZztsZXQgbjtmb3IoO249ci5leGVjKGUpOyl0W25bMV1dPW5bMl07cmV0dXJuIHR9KGUpO2lmKHNlLmlzRnVuY3Rpb24odCkpcmV0dXJuIHQuY2FsbCh0aGlzLGUscik7aWYoc2UuaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsdCl7aWYoZT1SZShlKSl7Y29uc3Qgcj1zZS5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISghcnx8dm9pZCAwPT09dGhpc1tyXXx8dCYmIVVlKDAsdGhpc1tyXSxyLHQpKX1yZXR1cm4hMX1kZWxldGUoZSx0KXtjb25zdCByPXRoaXM7bGV0IG49ITE7ZnVuY3Rpb24gbyhlKXtpZihlPVJlKGUpKXtjb25zdCBvPXNlLmZpbmRLZXkocixlKTshb3x8dCYmIVVlKDAscltvXSxvLHQpfHwoZGVsZXRlIHJbb10sbj0hMCl9fXJldHVybiBzZS5pc0FycmF5KGUpP2UuZm9yRWFjaChvKTpvKGUpLG59Y2xlYXIoZSl7Y29uc3QgdD1PYmplY3Qua2V5cyh0aGlzKTtsZXQgcj10Lmxlbmd0aCxuPSExO2Zvcig7ci0tOyl7Y29uc3Qgbz10W3JdO2UmJiFVZSgwLHRoaXNbb10sbyxlLCEwKXx8KGRlbGV0ZSB0aGlzW29dLG49ITApfXJldHVybiBufW5vcm1hbGl6ZShlKXtjb25zdCB0PXRoaXMscj17fTtyZXR1cm4gc2UuZm9yRWFjaCh0aGlzLCgobixvKT0+e2NvbnN0IGk9c2UuZmluZEtleShyLG8pO2lmKGkpcmV0dXJuIHRbaV09TmUobiksdm9pZCBkZWxldGUgdFtvXTtjb25zdCBhPWU/ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpKX0obyk6U3RyaW5nKG8pLnRyaW0oKTthIT09byYmZGVsZXRlIHRbb10sdFthXT1OZShuKSxyW2FdPSEwfSkpLHRoaXN9Y29uY2F0KC4uLmUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLmUpfXRvSlNPTihlKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIHNlLmZvckVhY2godGhpcywoKHIsbik9PntudWxsIT1yJiYhMSE9PXImJih0W25dPWUmJnNlLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSkpLHR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoKFtlLHRdKT0+ZSsiOiAiK3QpKS5qb2luKCJcbiIpfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2NvbnN0IHI9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaCgoZT0+ci5zZXQoZSkpKSxyfXN0YXRpYyBhY2Nlc3NvcihlKXtjb25zdCB0PSh0aGlzW19lXT10aGlzW19lXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gbihlKXtjb25zdCBuPVJlKGUpO3Rbbl18fChmdW5jdGlvbihlLHQpe2NvbnN0IHI9c2UudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaCgobj0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4rcix7dmFsdWU6ZnVuY3Rpb24oZSxyLG8pe3JldHVybiB0aGlzW25dLmNhbGwodGhpcyx0LGUscixvKX0sY29uZmlndXJhYmxlOiEwfSl9KSl9KHIsZSksdFtuXT0hMCl9cmV0dXJuIHNlLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKG4pOm4oZSksdGhpc319RGUuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pLHNlLnJlZHVjZURlc2NyaXB0b3JzKERlLnByb3RvdHlwZSwoKHt2YWx1ZTplfSx0KT0+e2xldCByPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PmUsc2V0KGUpe3RoaXNbcl09ZX19fSkpLHNlLmZyZWV6ZU1ldGhvZHMoRGUpO2NvbnN0IExlPURlO2Z1bmN0aW9uIGplKGUsdCl7Y29uc3Qgcj10aGlzfHxTZSxuPXR8fHIsbz1MZS5mcm9tKG4uaGVhZGVycyk7bGV0IGk9bi5kYXRhO3JldHVybiBzZS5mb3JFYWNoKGUsKGZ1bmN0aW9uKGUpe2k9ZS5jYWxsKHIsaSxvLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pKSxvLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gemUoZSl7cmV0dXJuISghZXx8IWUuX19DQU5DRUxfXyl9ZnVuY3Rpb24gJGUoZSx0LHIpe2RlLmNhbGwodGhpcyxudWxsPT1lPyJjYW5jZWxlZCI6ZSxkZS5FUlJfQ0FOQ0VMRUQsdCxyKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifXNlLmluaGVyaXRzKCRlLGRlLHtfX0NBTkNFTF9fOiEwfSk7Y29uc3QgVmU9JGUsR2U9SWUuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShlLHQscixuLG8saSl7Y29uc3QgYT1bZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtzZS5pc051bWJlcihyKSYmYS5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUocikudG9HTVRTdHJpbmcoKSksc2UuaXNTdHJpbmcobikmJmEucHVzaCgicGF0aD0iK24pLHNlLmlzU3RyaW5nKG8pJiZhLnB1c2goImRvbWFpbj0iK28pLCEwPT09aSYmYS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9YS5qb2luKCI7ICIpfSxyZWFkKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK2UrIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKGUpe3RoaXMud3JpdGUoZSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZDooKT0+bnVsbCxyZW1vdmUoKXt9fTtmdW5jdGlvbiBIZShlLHQpe3JldHVybiBlJiYhL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdCh0KT9mdW5jdGlvbihlLHQpe3JldHVybiB0P2UucmVwbGFjZSgvXC8rJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cLysvLCIiKTplfShlLHQpOnR9Y29uc3QgS2U9SWUuaGFzU3RhbmRhcmRCcm93c2VyRW52P2Z1bmN0aW9uKCl7Y29uc3QgZT0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2xldCByO2Z1bmN0aW9uIG4ocil7bGV0IG49cjtyZXR1cm4gZSYmKHQuc2V0QXR0cmlidXRlKCJocmVmIixuKSxuPXQuaHJlZiksdC5zZXRBdHRyaWJ1dGUoImhyZWYiLG4pLHtocmVmOnQuaHJlZixwcm90b2NvbDp0LnByb3RvY29sP3QucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0OnQuaG9zdCxzZWFyY2g6dC5zZWFyY2g/dC5zZWFyY2gucmVwbGFjZSgvXlw/LywiIik6IiIsaGFzaDp0Lmhhc2g/dC5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6dC5ob3N0bmFtZSxwb3J0OnQucG9ydCxwYXRobmFtZToiLyI9PT10LnBhdGhuYW1lLmNoYXJBdCgwKT90LnBhdGhuYW1lOiIvIit0LnBhdGhuYW1lfX1yZXR1cm4gcj1uKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbihlKXtjb25zdCB0PXNlLmlzU3RyaW5nKGUpP24oZSk6ZTtyZXR1cm4gdC5wcm90b2NvbD09PXIucHJvdG9jb2wmJnQuaG9zdD09PXIuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sWmU9ZnVuY3Rpb24oZSx0KXtlPWV8fDEwO2NvbnN0IHI9bmV3IEFycmF5KGUpLG49bmV3IEFycmF5KGUpO2xldCBvLGk9MCxhPTA7cmV0dXJuIHQ9dm9pZCAwIT09dD90OjFlMyxmdW5jdGlvbihzKXtjb25zdCB1PURhdGUubm93KCksYz1uW2FdO298fChvPXUpLHJbaV09cyxuW2ldPXU7bGV0IGw9YSxkPTA7Zm9yKDtsIT09aTspZCs9cltsKytdLGwlPWU7aWYoaT0oaSsxKSVlLGk9PT1hJiYoYT0oYSsxKSVlKSx1LW88dClyZXR1cm47Y29uc3QgZj1jJiZ1LWM7cmV0dXJuIGY/TWF0aC5yb3VuZCgxZTMqZC9mKTp2b2lkIDB9fTtmdW5jdGlvbiBxZShlLHQpe2xldCByPTA7Y29uc3Qgbj1aZSg1MCwyNTApO3JldHVybiBvPT57Y29uc3QgaT1vLmxvYWRlZCxhPW8ubGVuZ3RoQ29tcHV0YWJsZT9vLnRvdGFsOnZvaWQgMCxzPWktcix1PW4ocyk7cj1pO2NvbnN0IGM9e2xvYWRlZDppLHRvdGFsOmEscHJvZ3Jlc3M6YT9pL2E6dm9pZCAwLGJ5dGVzOnMscmF0ZTp1fHx2b2lkIDAsZXN0aW1hdGVkOnUmJmEmJmk8PWE/KGEtaSkvdTp2b2lkIDAsZXZlbnQ6b307Y1t0PyJkb3dubG9hZCI6InVwbG9hZCJdPSEwLGUoYyl9fWNvbnN0IEplPXtodHRwOm51bGwseGhyOiJ1bmRlZmluZWQiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3QmJmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxyKXtsZXQgbj1lLmRhdGE7Y29uc3Qgbz1MZS5mcm9tKGUuaGVhZGVycykubm9ybWFsaXplKCk7bGV0IGksYSx7cmVzcG9uc2VUeXBlOnMsd2l0aFhTUkZUb2tlbjp1fT1lO2Z1bmN0aW9uIGMoKXtlLmNhbmNlbFRva2VuJiZlLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGkpLGUuc2lnbmFsJiZlLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsaSl9aWYoc2UuaXNGb3JtRGF0YShuKSlpZihJZS5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fEllLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKCExKTtlbHNlIGlmKCExIT09KGE9by5nZXRDb250ZW50VHlwZSgpKSl7Y29uc3RbZSwuLi50XT1hP2Euc3BsaXQoIjsiKS5tYXAoKGU9PmUudHJpbSgpKSkuZmlsdGVyKEJvb2xlYW4pOltdO28uc2V0Q29udGVudFR5cGUoW2V8fCJtdWx0aXBhcnQvZm9ybS1kYXRhIiwuLi50XS5qb2luKCI7ICIpKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXtjb25zdCB0PWUuYXV0aC51c2VybmFtZXx8IiIscj1lLmF1dGgucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGUuYXV0aC5wYXNzd29yZCkpOiIiO28uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKHQrIjoiK3IpKX1jb25zdCBkPUhlKGUuYmFzZVVSTCxlLnVybCk7ZnVuY3Rpb24gZigpe2lmKCFsKXJldHVybjtjb25zdCBuPUxlLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKTshZnVuY3Rpb24oZSx0LHIpe2NvbnN0IG49ci5jb25maWcudmFsaWRhdGVTdGF0dXM7ci5zdGF0dXMmJm4mJiFuKHIuc3RhdHVzKT90KG5ldyBkZSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Iuc3RhdHVzLFtkZS5FUlJfQkFEX1JFUVVFU1QsZGUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihyLnN0YXR1cy8xMDApLTRdLHIuY29uZmlnLHIucmVxdWVzdCxyKSk6ZShyKX0oKGZ1bmN0aW9uKGUpe3QoZSksYygpfSksKGZ1bmN0aW9uKGUpe3IoZSksYygpfSkse2RhdGE6cyYmInRleHQiIT09cyYmImpzb24iIT09cz9sLnJlc3BvbnNlOmwucmVzcG9uc2VUZXh0LHN0YXR1czpsLnN0YXR1cyxzdGF0dXNUZXh0Omwuc3RhdHVzVGV4dCxoZWFkZXJzOm4sY29uZmlnOmUscmVxdWVzdDpsfSksbD1udWxsfWlmKGwub3BlbihlLm1ldGhvZC50b1VwcGVyQ2FzZSgpLEFlKGQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksbC50aW1lb3V0PWUudGltZW91dCwib25sb2FkZW5kImluIGw/bC5vbmxvYWRlbmQ9ZjpsLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2wmJjQ9PT1sLnJlYWR5U3RhdGUmJigwIT09bC5zdGF0dXN8fGwucmVzcG9uc2VVUkwmJjA9PT1sLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KGYpfSxsLm9uYWJvcnQ9ZnVuY3Rpb24oKXtsJiYocihuZXcgZGUoIlJlcXVlc3QgYWJvcnRlZCIsZGUuRUNPTk5BQk9SVEVELGUsbCkpLGw9bnVsbCl9LGwub25lcnJvcj1mdW5jdGlvbigpe3IobmV3IGRlKCJOZXR3b3JrIEVycm9yIixkZS5FUlJfTkVUV09SSyxlLGwpKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IHQ9ZS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrZS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiO2NvbnN0IG49ZS50cmFuc2l0aW9uYWx8fFdlO2UudGltZW91dEVycm9yTWVzc2FnZSYmKHQ9ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBkZSh0LG4uY2xhcmlmeVRpbWVvdXRFcnJvcj9kZS5FVElNRURPVVQ6ZGUuRUNPTk5BQk9SVEVELGUsbCkpLGw9bnVsbH0sSWUuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYodSYmc2UuaXNGdW5jdGlvbih1KSYmKHU9dShlKSksdXx8ITEhPT11JiZLZShkKSkpe2NvbnN0IHQ9ZS54c3JmSGVhZGVyTmFtZSYmZS54c3JmQ29va2llTmFtZSYmR2UucmVhZChlLnhzcmZDb29raWVOYW1lKTt0JiZvLnNldChlLnhzcmZIZWFkZXJOYW1lLHQpfXZvaWQgMD09PW4mJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gbCYmc2UuZm9yRWFjaChvLnRvSlNPTigpLChmdW5jdGlvbihlLHQpe2wuc2V0UmVxdWVzdEhlYWRlcih0LGUpfSkpLHNlLmlzVW5kZWZpbmVkKGUud2l0aENyZWRlbnRpYWxzKXx8KGwud2l0aENyZWRlbnRpYWxzPSEhZS53aXRoQ3JlZGVudGlhbHMpLHMmJiJqc29uIiE9PXMmJihsLnJlc3BvbnNlVHlwZT1lLnJlc3BvbnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzJiZsLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixxZShlLm9uRG93bmxvYWRQcm9ncmVzcywhMCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9uVXBsb2FkUHJvZ3Jlc3MmJmwudXBsb2FkJiZsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIscWUoZS5vblVwbG9hZFByb2dyZXNzKSksKGUuY2FuY2VsVG9rZW58fGUuc2lnbmFsKSYmKGk9dD0+e2wmJihyKCF0fHx0LnR5cGU/bmV3IFZlKG51bGwsZSxsKTp0KSxsLmFib3J0KCksbD1udWxsKX0sZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoaSksZS5zaWduYWwmJihlLnNpZ25hbC5hYm9ydGVkP2koKTplLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpKTtjb25zdCBwPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoZSk7cmV0dXJuIHQmJnRbMV18fCIifShkKTtwJiYtMT09PUllLnByb3RvY29scy5pbmRleE9mKHApP3IobmV3IGRlKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK3ArIjoiLGRlLkVSUl9CQURfUkVRVUVTVCxlKSk6bC5zZW5kKG58fG51bGwpfSkpfX07c2UuZm9yRWFjaChKZSwoKGUsdCk9PntpZihlKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2goZSl7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KSk7Y29uc3QgWWU9ZT0+YC0gJHtlfWAsWGU9ZT0+c2UuaXNGdW5jdGlvbihlKXx8bnVsbD09PWV8fCExPT09ZSxRZT17Z2V0QWRhcHRlcjplPT57ZT1zZS5pc0FycmF5KGUpP2U6W2VdO2NvbnN0e2xlbmd0aDp0fT1lO2xldCByLG47Y29uc3Qgbz17fTtmb3IobGV0IGk9MDtpPHQ7aSsrKXtsZXQgdDtpZihyPWVbaV0sbj1yLCFYZShyKSYmKG49SmVbKHQ9U3RyaW5nKHIpKS50b0xvd2VyQ2FzZSgpXSx2b2lkIDA9PT1uKSl0aHJvdyBuZXcgZGUoYFVua25vd24gYWRhcHRlciAnJHt0fSdgKTtpZihuKWJyZWFrO29bdHx8IiMiK2ldPW59aWYoIW4pe2NvbnN0IGU9T2JqZWN0LmVudHJpZXMobykubWFwKCgoW2UsdF0pPT5gYWRhcHRlciAke2V9IGArKCExPT09dD8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSk7bGV0IHI9dD9lLmxlbmd0aD4xPyJzaW5jZSA6XG4iK2UubWFwKFllKS5qb2luKCJcbiIpOiIgIitZZShlWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyBkZSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK3IsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBufSxhZGFwdGVyczpKZX07ZnVuY3Rpb24gZXQoZSl7aWYoZS5jYW5jZWxUb2tlbiYmZS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksZS5zaWduYWwmJmUuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IFZlKG51bGwsZSl9ZnVuY3Rpb24gdHQoZSl7cmV0dXJuIGV0KGUpLGUuaGVhZGVycz1MZS5mcm9tKGUuaGVhZGVycyksZS5kYXRhPWplLmNhbGwoZSxlLnRyYW5zZm9ybVJlcXVlc3QpLC0xIT09WyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKGUubWV0aG9kKSYmZS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxRZS5nZXRBZGFwdGVyKGUuYWRhcHRlcnx8U2UuYWRhcHRlcikoZSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIGV0KGUpLHQuZGF0YT1qZS5jYWxsKGUsZS50cmFuc2Zvcm1SZXNwb25zZSx0KSx0LmhlYWRlcnM9TGUuZnJvbSh0LmhlYWRlcnMpLHR9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHplKHQpfHwoZXQoZSksdCYmdC5yZXNwb25zZSYmKHQucmVzcG9uc2UuZGF0YT1qZS5jYWxsKGUsZS50cmFuc2Zvcm1SZXNwb25zZSx0LnJlc3BvbnNlKSx0LnJlc3BvbnNlLmhlYWRlcnM9TGUuZnJvbSh0LnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QodCl9KSl9Y29uc3QgcnQ9ZT0+ZSBpbnN0YW5jZW9mIExlP2UudG9KU09OKCk6ZTtmdW5jdGlvbiBudChlLHQpe3Q9dHx8e307Y29uc3Qgcj17fTtmdW5jdGlvbiBuKGUsdCxyKXtyZXR1cm4gc2UuaXNQbGFpbk9iamVjdChlKSYmc2UuaXNQbGFpbk9iamVjdCh0KT9zZS5tZXJnZS5jYWxsKHtjYXNlbGVzczpyfSxlLHQpOnNlLmlzUGxhaW5PYmplY3QodCk/c2UubWVyZ2Uoe30sdCk6c2UuaXNBcnJheSh0KT90LnNsaWNlKCk6dH1mdW5jdGlvbiBvKGUsdCxyKXtyZXR1cm4gc2UuaXNVbmRlZmluZWQodCk/c2UuaXNVbmRlZmluZWQoZSk/dm9pZCAwOm4odm9pZCAwLGUscik6bihlLHQscil9ZnVuY3Rpb24gaShlLHQpe2lmKCFzZS5pc1VuZGVmaW5lZCh0KSlyZXR1cm4gbih2b2lkIDAsdCl9ZnVuY3Rpb24gYShlLHQpe3JldHVybiBzZS5pc1VuZGVmaW5lZCh0KT9zZS5pc1VuZGVmaW5lZChlKT92b2lkIDA6bih2b2lkIDAsZSk6bih2b2lkIDAsdCl9ZnVuY3Rpb24gcyhyLG8saSl7cmV0dXJuIGkgaW4gdD9uKHIsbyk6aSBpbiBlP24odm9pZCAwLHIpOnZvaWQgMH1jb25zdCB1PXt1cmw6aSxtZXRob2Q6aSxkYXRhOmksYmFzZVVSTDphLHRyYW5zZm9ybVJlcXVlc3Q6YSx0cmFuc2Zvcm1SZXNwb25zZTphLHBhcmFtc1NlcmlhbGl6ZXI6YSx0aW1lb3V0OmEsdGltZW91dE1lc3NhZ2U6YSx3aXRoQ3JlZGVudGlhbHM6YSx3aXRoWFNSRlRva2VuOmEsYWRhcHRlcjphLHJlc3BvbnNlVHlwZTphLHhzcmZDb29raWVOYW1lOmEseHNyZkhlYWRlck5hbWU6YSxvblVwbG9hZFByb2dyZXNzOmEsb25Eb3dubG9hZFByb2dyZXNzOmEsZGVjb21wcmVzczphLG1heENvbnRlbnRMZW5ndGg6YSxtYXhCb2R5TGVuZ3RoOmEsYmVmb3JlUmVkaXJlY3Q6YSx0cmFuc3BvcnQ6YSxodHRwQWdlbnQ6YSxodHRwc0FnZW50OmEsY2FuY2VsVG9rZW46YSxzb2NrZXRQYXRoOmEscmVzcG9uc2VFbmNvZGluZzphLHZhbGlkYXRlU3RhdHVzOnMsaGVhZGVyczooZSx0KT0+byhydChlKSxydCh0KSwhMCl9O3JldHVybiBzZS5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sZSx0KSksKGZ1bmN0aW9uKG4pe2NvbnN0IGk9dVtuXXx8byxhPWkoZVtuXSx0W25dLG4pO3NlLmlzVW5kZWZpbmVkKGEpJiZpIT09c3x8KHJbbl09YSl9KSkscn1jb25zdCBvdD0iMS42LjIiLGl0PXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoKGUsdCk9PntpdFtlXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1lfHwiYSIrKHQ8MT8ibiAiOiIgIikrZX19KSk7Y29uc3QgYXQ9e307aXQudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIltBeGlvcyB2IitvdCsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2UrIiciK3QrKHI/Ii4gIityOiIiKX1yZXR1cm4ocixvLGkpPT57aWYoITE9PT1lKXRocm93IG5ldyBkZShuKG8sIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGRlLkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIWF0W29dJiYoYXRbb109ITAsY29uc29sZS53YXJuKG4obywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhZXx8ZShyLG8saSl9fTtjb25zdCBzdD17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihlLHQscil7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBkZSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsZGUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnN0IG49T2JqZWN0LmtleXMoZSk7bGV0IG89bi5sZW5ndGg7Zm9yKDtvLS0gPjA7KXtjb25zdCBpPW5bb10sYT10W2ldO2lmKGEpe2NvbnN0IHQ9ZVtpXSxyPXZvaWQgMD09PXR8fGEodCxpLGUpO2lmKCEwIT09cil0aHJvdyBuZXcgZGUoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrcixkZS5FUlJfQkFEX09QVElPTl9WQUxVRSl9ZWxzZSBpZighMCE9PXIpdGhyb3cgbmV3IGRlKCJVbmtub3duIG9wdGlvbiAiK2ksZGUuRVJSX0JBRF9PUFRJT04pfX0sdmFsaWRhdG9yczppdH0sdXQ9c3QudmFsaWRhdG9ycztjbGFzcyBjdHtjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWUsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IFBlLHJlc3BvbnNlOm5ldyBQZX19cmVxdWVzdChlLHQpeyJzdHJpbmciPT10eXBlb2YgZT8odD10fHx7fSkudXJsPWU6dD1lfHx7fSx0PW50KHRoaXMuZGVmYXVsdHMsdCk7Y29uc3R7dHJhbnNpdGlvbmFsOnIscGFyYW1zU2VyaWFsaXplcjpuLGhlYWRlcnM6b309dDt2b2lkIDAhPT1yJiZzdC5hc3NlcnRPcHRpb25zKHIse3NpbGVudEpTT05QYXJzaW5nOnV0LnRyYW5zaXRpb25hbCh1dC5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzp1dC50cmFuc2l0aW9uYWwodXQuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjp1dC50cmFuc2l0aW9uYWwodXQuYm9vbGVhbil9LCExKSxudWxsIT1uJiYoc2UuaXNGdW5jdGlvbihuKT90LnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpufTpzdC5hc3NlcnRPcHRpb25zKG4se2VuY29kZTp1dC5mdW5jdGlvbixzZXJpYWxpemU6dXQuZnVuY3Rpb259LCEwKSksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGk9byYmc2UubWVyZ2Uoby5jb21tb24sb1t0Lm1ldGhvZF0pO28mJnNlLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sKGU9PntkZWxldGUgb1tlXX0pKSx0LmhlYWRlcnM9TGUuY29uY2F0KGksbyk7Y29uc3QgYT1bXTtsZXQgcz0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlLnJ1bldoZW4mJiExPT09ZS5ydW5XaGVuKHQpfHwocz1zJiZlLnN5bmNocm9ub3VzLGEudW5zaGlmdChlLmZ1bGZpbGxlZCxlLnJlamVjdGVkKSl9KSk7Y29uc3QgdT1bXTtsZXQgYzt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKChmdW5jdGlvbihlKXt1LnB1c2goZS5mdWxmaWxsZWQsZS5yZWplY3RlZCl9KSk7bGV0IGwsZD0wO2lmKCFzKXtjb25zdCBlPVt0dC5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKGUudW5zaGlmdC5hcHBseShlLGEpLGUucHVzaC5hcHBseShlLHUpLGw9ZS5sZW5ndGgsYz1Qcm9taXNlLnJlc29sdmUodCk7ZDxsOyljPWMudGhlbihlW2QrK10sZVtkKytdKTtyZXR1cm4gY31sPWEubGVuZ3RoO2xldCBmPXQ7Zm9yKGQ9MDtkPGw7KXtjb25zdCBlPWFbZCsrXSx0PWFbZCsrXTt0cnl7Zj1lKGYpfWNhdGNoKGUpe3QuY2FsbCh0aGlzLGUpO2JyZWFrfX10cnl7Yz10dC5jYWxsKHRoaXMsZil9Y2F0Y2goZSl7cmV0dXJuIFByb21pc2UucmVqZWN0KGUpfWZvcihkPTAsbD11Lmxlbmd0aDtkPGw7KWM9Yy50aGVuKHVbZCsrXSx1W2QrK10pO3JldHVybiBjfWdldFVyaShlKXtyZXR1cm4gQWUoSGUoKGU9bnQodGhpcy5kZWZhdWx0cyxlKSkuYmFzZVVSTCxlLnVybCksZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19c2UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sKGZ1bmN0aW9uKGUpe2N0LnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLnJlcXVlc3QobnQocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pKSxzZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIGZ1bmN0aW9uKHIsbixvKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KG50KG98fHt9LHttZXRob2Q6ZSxoZWFkZXJzOnQ/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOnIsZGF0YTpufSkpfX1jdC5wcm90b3R5cGVbZV09dCgpLGN0LnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KSk7Y29uc3QgbHQ9Y3Q7Y2xhc3MgZHR7Y29uc3RydWN0b3IoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dD1lfSkpO2NvbnN0IHI9dGhpczt0aGlzLnByb21pc2UudGhlbigoZT0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCB0PXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDt0LS0gPjA7KXIuX2xpc3RlbmVyc1t0XShlKTtyLl9saXN0ZW5lcnM9bnVsbH0pKSx0aGlzLnByb21pc2UudGhlbj1lPT57bGV0IHQ7Y29uc3Qgbj1uZXcgUHJvbWlzZSgoZT0+e3Iuc3Vic2NyaWJlKGUpLHQ9ZX0pKS50aGVuKGUpO3JldHVybiBuLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUodCl9LG59LGUoKGZ1bmN0aW9uKGUsbixvKXtyLnJlYXNvbnx8KHIucmVhc29uPW5ldyBWZShlLG4sbyksdChyLnJlYXNvbikpfSkpfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7dGhpcy5yZWFzb24/ZSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47Y29uc3QgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTstMSE9PXQmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBkdCgoZnVuY3Rpb24odCl7ZT10fSkpLGNhbmNlbDplfX19Y29uc3QgZnQ9ZHQscHQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKHB0KS5mb3JFYWNoKCgoW2UsdF0pPT57cHRbdF09ZX0pKTtjb25zdCBodD1wdCxndD1mdW5jdGlvbiBlKHQpe2NvbnN0IHI9bmV3IGx0KHQpLG49RShsdC5wcm90b3R5cGUucmVxdWVzdCxyKTtyZXR1cm4gc2UuZXh0ZW5kKG4sbHQucHJvdG90eXBlLHIse2FsbE93bktleXM6ITB9KSxzZS5leHRlbmQobixyLG51bGwse2FsbE93bktleXM6ITB9KSxuLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gZShudCh0LHIpKX0sbn0oU2UpO2d0LkF4aW9zPWx0LGd0LkNhbmNlbGVkRXJyb3I9VmUsZ3QuQ2FuY2VsVG9rZW49ZnQsZ3QuaXNDYW5jZWw9emUsZ3QuVkVSU0lPTj1vdCxndC50b0Zvcm1EYXRhPXllLGd0LkF4aW9zRXJyb3I9ZGUsZ3QuQ2FuY2VsPWd0LkNhbmNlbGVkRXJyb3IsZ3QuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX0sZ3Quc3ByZWFkPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseShudWxsLHQpfX0sZ3QuaXNBeGlvc0Vycm9yPWZ1bmN0aW9uKGUpe3JldHVybiBzZS5pc09iamVjdChlKSYmITA9PT1lLmlzQXhpb3NFcnJvcn0sZ3QubWVyZ2VDb25maWc9bnQsZ3QuQXhpb3NIZWFkZXJzPUxlLGd0LmZvcm1Ub0pTT049ZT0+T2Uoc2UuaXNIVE1MRm9ybShlKT9uZXcgRm9ybURhdGEoZSk6ZSksZ3QuZ2V0QWRhcHRlcj1RZS5nZXRBZGFwdGVyLGd0Lkh0dHBTdGF0dXNDb2RlPWh0LGd0LmRlZmF1bHQ9Z3Q7Y29uc3QgeXQ9Z3Q7ZnVuY3Rpb24gYnQoKXt2YXIgZT10aGlzO3RoaXMuX2tleVN0cj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLHRoaXMuZW5jb2RlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcixuLG8saSxhLHMsdSxjPSIiLGw9MDtsPHQubGVuZ3RoOylpPShyPXQuY2hhckNvZGVBdChsKyspKT4+MixhPSgzJnIpPDw0fChuPXQuY2hhckNvZGVBdChsKyspKT4+NCxzPSgxNSZuKTw8Mnwobz10LmNoYXJDb2RlQXQobCsrKSk+PjYsdT02MyZvLGlzTmFOKG4pP3M9dT02NDppc05hTihvKSYmKHU9NjQpLGM9YytlLl9rZXlTdHIuY2hhckF0KGkpK2UuX2tleVN0ci5jaGFyQXQoYSkrZS5fa2V5U3RyLmNoYXJBdChzKStlLl9rZXlTdHIuY2hhckF0KHUpO3JldHVybiBjfSx0aGlzLmVuY29kZUlnbm9yZVV0Zjg9ZnVuY3Rpb24odCl7Zm9yKHZhciByLG4sbyxpLGEscyx1LGM9IiIsbD0wO2w8dC5sZW5ndGg7KWk9KHI9dFtsKytdKT4+MixhPSgzJnIpPDw0fChuPXRbbCsrXSk+PjQscz0oMTUmbik8PDJ8KG89dFtsKytdKT4+Nix1PTYzJm8saXNOYU4obik/cz11PTY0OmlzTmFOKG8pJiYodT02NCksYz1jK2UuX2tleVN0ci5jaGFyQXQoaSkrZS5fa2V5U3RyLmNoYXJBdChhKStlLl9rZXlTdHIuY2hhckF0KHMpK2UuX2tleVN0ci5jaGFyQXQodSk7cmV0dXJuIGN9LHRoaXMuZGVjb2RlPWZ1bmN0aW9uKHQpe3ZhciByLG4sbyxpLGEscyx1PSIiLGM9MDtmb3IodD10LnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTtjPHQubGVuZ3RoOylyPWUuX2tleVN0ci5pbmRleE9mKHQuY2hhckF0KGMrKykpPDwyfChpPWUuX2tleVN0ci5pbmRleE9mKHQuY2hhckF0KGMrKykpKT4+NCxuPSgxNSZpKTw8NHwoYT1lLl9rZXlTdHIuaW5kZXhPZih0LmNoYXJBdChjKyspKSk+PjIsbz0oMyZhKTw8Nnwocz1lLl9rZXlTdHIuaW5kZXhPZih0LmNoYXJBdChjKyspKSksdSs9U3RyaW5nLmZyb21DaGFyQ29kZShyKSw2NCE9YSYmKHUrPVN0cmluZy5mcm9tQ2hhckNvZGUobikpLDY0IT1zJiYodSs9U3RyaW5nLmZyb21DaGFyQ29kZShvKSk7cmV0dXJuIGUuX3V0ZjhfZGVjb2RlKHUpfSx0aGlzLmRlY29kZVRvQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe3ZhciByLG4sbyxpLGEscyx1PSIiLGM9MDtmb3IodD10LnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTtjPHQubGVuZ3RoOylyPWUuX2tleVN0ci5pbmRleE9mKHQuY2hhckF0KGMrKykpPDwyfChpPWUuX2tleVN0ci5pbmRleE9mKHQuY2hhckF0KGMrKykpKT4+NCxuPSgxNSZpKTw8NHwoYT1lLl9rZXlTdHIuaW5kZXhPZih0LmNoYXJBdChjKyspKSk+PjIsbz0oMyZhKTw8Nnwocz1lLl9rZXlTdHIuaW5kZXhPZih0LmNoYXJBdChjKyspKSksdSs9U3RyaW5nLmZyb21DaGFyQ29kZShyKSw2NCE9YSYmKHUrPVN0cmluZy5mcm9tQ2hhckNvZGUobikpLDY0IT1zJiYodSs9U3RyaW5nLmZyb21DaGFyQ29kZShvKSk7cmV0dXJuIGUuX291dDJCeXRlQXJyYXkodSl9LHRoaXMuX291dDJCeXRlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PW5ldyBBcnJheShlLmxlbmd0aCkscj0wLG49MDtyPGUubGVuZ3RoOyluPWUuY2hhckNvZGVBdChyKSx0W3JdPW4scisrO3JldHVybiB0fSx0aGlzLl91dGY4X2VuY29kZT1mdW5jdGlvbihlKXtlPWUucmVwbGFjZSgvXHJcbi9nLCJcbiIpO2Zvcih2YXIgdD0iIixyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWUuY2hhckNvZGVBdChyKTtuPDEyOD90Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pOm4+MTI3JiZuPDIwNDg/KHQrPVN0cmluZy5mcm9tQ2hhckNvZGUobj4+NnwxOTIpLHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoNjMmbnwxMjgpKToodCs9U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMnwyMjQpLHQrPVN0cmluZy5mcm9tQ2hhckNvZGUobj4+NiY2M3wxMjgpLHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoNjMmbnwxMjgpKX1yZXR1cm4gdH0sdGhpcy5fdXRmOF9kZWNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PSIiLHI9MCxuPTAsbz0wLGk9MDtyPGUubGVuZ3RoOykobj1lLmNoYXJDb2RlQXQocikpPDEyOD8odCs9U3RyaW5nLmZyb21DaGFyQ29kZShuKSxyKyspOm4+MTkxJiZuPDIyND8obz1lLmNoYXJDb2RlQXQocisxKSx0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZuKTw8Nnw2MyZvKSxyKz0yKToobz1lLmNoYXJDb2RlQXQocisxKSxpPWUuY2hhckNvZGVBdChyKzIpLHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1Jm4pPDwxMnwoNjMmbyk8PDZ8NjMmaSkscis9Myk7cmV0dXJuIHR9fWZ1bmN0aW9uIHZ0KGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIklucHV0IG11c3QgYmUgYSBudW1iZXIiKTtpZihlPDB8fGU+MjU1KXRocm93IG5ldyBFcnJvcigiSW5wdXQgbXVzdCBiZSBhIGJ5dGUiKTt2YXIgdD0iMDEyMzQ1Njc4OUFCQ0RFRiIscj0iIjtyZXR1cm4ocis9dC5jaGFyQXQoZT4+NCkpK3QuY2hhckF0KDE1JmUpfWZ1bmN0aW9uIG10KGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZTtmb3IodmFyIHQ9IiIscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdLnRvU3RyaW5nKDIpLG89bi5tYXRjaCgvXjErPyg/PTApLyk7aWYobyYmOD09PW4ubGVuZ3RoKXtmb3IodmFyIGk9b1swXS5sZW5ndGgsYT1lW3JdLnRvU3RyaW5nKDIpLnNsaWNlKDctaSkscz0xO3M8aTtzKyspYSs9ZVtzK3JdLnRvU3RyaW5nKDIpLnNsaWNlKDIpO3QrPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoYSwyKSkscis9aS0xfWVsc2UgdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlW3JdKX1yZXR1cm4gdH1mdW5jdGlvbiBUdChlKXtmb3IodmFyIHQ9ZS5yZXBsYWNlKC9eMHgvLCIiKS5zcGxpdCgiIikscj0iIixuPTA7bjx0Lmxlbmd0aC8yO24rKyl7dmFyIG89IjB4Ii5jb25jYXQodFsyKm5dKS5jb25jYXQodFsyKm4rMV0pO3IrPVN0cmluZy5mcm9tQ2hhckNvZGUobyl9cmV0dXJuIHJ9ZnVuY3Rpb24gd3QoZSl7Zm9yKHZhciB0PSIiLHI9MDtyPGUubGVuZ3RoO3IrKyl0Kz12dChlW3JdKTtyZXR1cm4gdH1mdW5jdGlvbiBBdChlKXtyZXR1cm4obmV3IGJ0KS5kZWNvZGVUb0J5dGVBcnJheShlKX1mdW5jdGlvbiBQdChlKXtyZXR1cm4obmV3IGJ0KS5lbmNvZGVJZ25vcmVVdGY4KGUpfWZ1bmN0aW9uIFd0KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkodCk7cjx0O3IrKyluW3JdPWVbcl07cmV0dXJuIG59ZnVuY3Rpb24gQnQoZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIFd0KGUsdCk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09ciYmZS5jb25zdHJ1Y3RvciYmKHI9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXJ8fCJTZXQiPT09cj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/V3QoZSx0KTp2b2lkIDB9fWZ1bmN0aW9uIEN0KGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBXdChlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fEJ0KGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfXZhciBFdD0zNCxNdD0iNDEiLGt0PTY1LEl0PS9eKDQxKS8sT3Q9Im0vNDQnLzE5NScvMCcvMC8wIjtmdW5jdGlvbiB4dChlKXtyZXR1cm4gbXQoZSl9ZnVuY3Rpb24gU3QoZSx0LHIpe2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTt2YXIgbjtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKHIpe2lmKGVbbl0hPXRbbl0pcmV0dXJuITF9ZWxzZSBpZihKU09OLnN0cmluZ2lmeShlW25dKSE9SlNPTi5zdHJpbmdpZnkodFtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gRnQoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiVGhlIHBhc3NlZCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIik7dmFyIHQscixuPW5ldyBBcnJheTt0PWUubGVuZ3RoO2Zvcih2YXIgbz0wO288dDtvKyspKHI9ZS5jaGFyQ29kZUF0KG8pKT49NjU1MzYmJnI8PTExMTQxMTE/KG4ucHVzaChyPj4xOCY3fDI0MCksbi5wdXNoKHI+PjEyJjYzfDEyOCksbi5wdXNoKHI+PjYmNjN8MTI4KSxuLnB1c2goNjMmcnwxMjgpKTpyPj0yMDQ4JiZyPD02NTUzNT8obi5wdXNoKHI+PjEyJjE1fDIyNCksbi5wdXNoKHI+PjYmNjN8MTI4KSxuLnB1c2goNjMmcnwxMjgpKTpyPj0xMjgmJnI8PTIwNDc/KG4ucHVzaChyPj42JjMxfDE5Miksbi5wdXNoKDYzJnJ8MTI4KSk6bi5wdXNoKDI1NSZyKTtyZXR1cm4gbn1mdW5jdGlvbiBfdChlKXt2YXIgdDtpZihlPj0iQSImJmU8PSJGIj90PWUuY2hhckNvZGVBdCgwKS0iQSIuY2hhckNvZGVBdCgwKSsxMDplPj0iYSImJmU8PSJmIj90PWUuY2hhckNvZGVBdCgwKS0iYSIuY2hhckNvZGVBdCgwKSsxMDplPj0iMCImJmU8PSI5IiYmKHQ9ZS5jaGFyQ29kZUF0KDApLSIwIi5jaGFyQ29kZUF0KDApKSwibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJUaGUgcGFzc2VkIGhleCBjaGFyIGlzIG5vdCBhIHZhbGlkIGhleCBjaGFyIil9ZnVuY3Rpb24gUnQoZSl7cmV0dXJuIGU+PSJBIiYmZTw9IkYifHxlPj0iYSImJmU8PSJmInx8ZT49IjAiJiZlPD0iOSI/MTowfWZ1bmN0aW9uIE50KGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiVGhlIHBhc3NlZCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIik7dmFyIHI9ZS5sZW5ndGg7dCYmciUyJiYoZT0iMCIuY29uY2F0KGUpLHIrKyk7Zm9yKHZhciBuPUFycmF5KCksbz0wLGk9MCxhPTAscz0wO3M8cjtzKyspe3ZhciB1PWUuY2hhckF0KHMpO2lmKCFSdCh1KSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgaGV4IGNoYXIgaXMgbm90IGEgdmFsaWQgaGV4IHN0cmluZyIpO288PD00LG8rPV90KHUpLDA9PSsraSUyJiYoblthKytdPW8sbz0wKX1yZXR1cm4gbn1mdW5jdGlvbiBVdChlKXtpZighL15cZHs0fS1cZHsyfS1cZHsyfSggXGR7Mn0tXGR7Mn0tXGR7Mn18KS8udGVzdChlKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgZGF0ZSBzdHJpbmcgaXMgbm90IHZhbGlkIik7dmFyIHQ9ZS5zcGxpdCgiICIpLHI9dFswXS5zcGxpdCgiLSIpLG49cGFyc2VJbnQoclswXSwxMCksbz1wYXJzZUludChyWzFdLDEwKS0xLGk9cGFyc2VJbnQoclsyXSwxMCk7aWYodC5sZW5ndGg+MSl7dmFyIGE9dFsxXS5zcGxpdCgiLSIpLHM9cGFyc2VJbnQoYVswXSwxMCksdT1wYXJzZUludChhWzFdLDEwKSxjPXBhcnNlSW50KGFbMl0sMTApO3JldHVybiBuZXcgRGF0ZShuLG8saSxzLHUsYyl9cmV0dXJuIG5ldyBEYXRlKG4sbyxpKX1mdW5jdGlvbiBEdChlKXtyZXR1cm4gZT49IjAiJiZlPD0iOSI/MTowfWZ1bmN0aW9uIEx0KGUpe2lmKG51bGw9PWUpcmV0dXJuLTE7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybi0xO2lmKDA9PWUubGVuZ3RofHwiIj09ZSlyZXR1cm4tMTt2YXIgdD0wO2lmKDQwPT1lLmxlbmd0aClmb3IoO3Q8NDAmJlJ0KGUuY2hhckF0KHQpKTt0KyspO2lmKDQwPT10KXJldHVybiAxO2Zvcih0PTA7dDxlLmxlbmd0aCYmRHQoZS5jaGFyQXQodCkpO3QrKyk7aWYodD09ZS5sZW5ndGgpcmV0dXJuIDI7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKylpZihlLmNoYXJBdCh0KT4iICIpcmV0dXJuIDM7cmV0dXJuLTF9Zm9yKHZhciBqdD0iMTIzNDU2Nzg5QUJDREVGR0hKS0xNTlBRUlNUVVZXWFlaYWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5eiIsenQ9e30sJHQ9MDskdDxqdC5sZW5ndGg7JHQrKyl6dFtqdC5jaGFyQXQoJHQpXT0kdDt2YXIgVnQ9NTg7ZnVuY3Rpb24gR3QoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiIiO3ZhciB0LHIsbj1bMF07Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKyl7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPDw9ODtuWzBdKz1lW3RdO3ZhciBvPTA7Zm9yKHI9MDtyPG4ubGVuZ3RoOysrciluW3JdKz1vLG89bltyXS9WdHwwLG5bcl0lPVZ0O2Zvcig7bzspbi5wdXNoKG8lVnQpLG89by9WdHwwfWZvcih0PTA7MD09PWVbdF0mJnQ8ZS5sZW5ndGgtMTt0Kyspbi5wdXNoKDApO3JldHVybiBuLnJldmVyc2UoKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBqdFtlXX0pKS5qb2luKCIiKX1mdW5jdGlvbiBIdChlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuW107dmFyIHQscixuPVswXTtmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbz1lW3RdO2lmKCEobyBpbiB6dCkpdGhyb3cgbmV3IEVycm9yKCJOb24tYmFzZTU4IGNoYXJhY3RlciIpO2ZvcihyPTA7cjxuLmxlbmd0aDtyKyspbltyXSo9VnQ7blswXSs9enRbb107dmFyIGk9MDtmb3Iocj0wO3I8bi5sZW5ndGg7KytyKW5bcl0rPWksaT1uW3JdPj44LG5bcl0mPTI1NTtmb3IoO2k7KW4ucHVzaCgyNTUmaSksaT4+PTh9Zm9yKHQ9MDsiMSI9PT1lW3RdJiZ0PGUubGVuZ3RoLTE7dCsrKW4ucHVzaCgwKTtyZXR1cm4gbi5yZXZlcnNlKCl9ZnVuY3Rpb24gS3QoZSx0LHIpe2lmKCF0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIityKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gdC5nZXQoZSl9ZnVuY3Rpb24gWnQoZSx0LHIpe3JldHVybiBmdW5jdGlvbihlLHQscil7aWYodC5zZXQpdC5zZXQuY2FsbChlLHIpO2Vsc2V7aWYoIXQud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO3QudmFsdWU9cn19KGUsS3QoZSx0LCJzZXQiKSxyKSxyfWZ1bmN0aW9uIHF0KGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuZ2V0P3QuZ2V0LmNhbGwoZSk6dC52YWx1ZX0oZSxLdChlLHQsImdldCIpKX12YXIgSnQ9IjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsWXQ9IjYuNi4wIjtmdW5jdGlvbiBYdChlLHQscil7Zm9yKHZhciBuPXQuc3BsaXQoInwiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX0pKSxvPTA7bzxuLmxlbmd0aDtvKyspc3dpdGNoKHQpe2Nhc2UiYW55IjpyZXR1cm47Y2FzZSJiaWdpbnQiOmNhc2UiYm9vbGVhbiI6Y2FzZSJudW1iZXIiOmNhc2Uic3RyaW5nIjppZihoKGUpPT09dClyZXR1cm59dmFyIGk9bmV3IEVycm9yKCJpbnZhbGlkIHZhbHVlIGZvciB0eXBlICIuY29uY2F0KHQpKTt0aHJvdyBpLmNvZGU9IklOVkFMSURfQVJHVU1FTlQiLGkuYXJndW1lbnQ9InZhbHVlLiIuY29uY2F0KHIpLGkudmFsdWU9ZSxpfWZ1bmN0aW9uIFF0KGUpe3JldHVybiBlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZXIoKXtyZXR1cm4oZXI9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIHIsbjtyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gcj1PYmplY3Qua2V5cyh0KSxlLm5leHQ9MyxQcm9taXNlLmFsbChyLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0W2VdKX0pKSk7Y2FzZSAzOnJldHVybiBuPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixuLnJlZHVjZSgoZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlW3Jbbl1dPXQsZX0pLHt9KSk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdHIoZSx0LHIpe2Zvcih2YXIgbiBpbiB0KXt2YXIgbz10W25dLGk9cj9yW25dOm51bGw7aSYmWHQobyxpLG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6ITAsdmFsdWU6byx3cml0YWJsZTohMX0pfX1mdW5jdGlvbiBycihlKXtpZihudWxsPT1lKXJldHVybiJudWxsIjtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJbICIrZS5tYXAocnIpLmpvaW4oIiwgIikrIiBdIjtpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciB0PSIwMTIzNDU2Nzg5YWJjZGVmIixyPSIweCIsbj0wO248ZS5sZW5ndGg7bisrKXIrPXRbZVtuXT4+NF0scis9dFsxNSZlW25dXTtyZXR1cm4gcn1pZigib2JqZWN0Ij09PWgoZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRvSlNPTilyZXR1cm4gcnIoZS50b0pTT04oKSk7c3dpdGNoKGgoZSkpe2Nhc2UiYm9vbGVhbiI6Y2FzZSJzeW1ib2wiOmNhc2UibnVtYmVyIjpyZXR1cm4gZS50b1N0cmluZygpO2Nhc2UiYmlnaW50IjpyZXR1cm4gQmlnSW50KGUpLnRvU3RyaW5nKCk7Y2FzZSJzdHJpbmciOnJldHVybiBKU09OLnN0cmluZ2lmeShlKTtjYXNlIm9iamVjdCI6dmFyIG89T2JqZWN0LmtleXMoZSk7cmV0dXJuIG8uc29ydCgpLCJ7ICIrby5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIiLmNvbmNhdChycih0KSwiOiAiKS5jb25jYXQocnIoZVt0XSkpfSkpLmpvaW4oIiwgIikrIiB9In1yZXR1cm4iWyBDT1VMRCBOT1QgU0VSSUFMSVpFIF0ifWZ1bmN0aW9uIG5yKGUsdCl7cmV0dXJuIGUmJmUuY29kZT09PXR9ZnVuY3Rpb24gb3IoZSx0LHIpe3ZhciBuLG89W107aWYocil7aWYoIm1lc3NhZ2UiaW4gcnx8ImNvZGUiaW4gcnx8Im5hbWUiaW4gcil0aHJvdyBuZXcgRXJyb3IoInZhbHVlIHdpbGwgb3ZlcndyaXRlIHBvcHVsYXRlZCB2YWx1ZXM6ICIuY29uY2F0KHJyKHIpKSk7Zm9yKHZhciBpIGluIHIpe3ZhciBhPXJbaV07by5wdXNoKGkrIj0iK3JyKGEpKX19c3dpdGNoKG8ucHVzaCgiY29kZT0iLmNvbmNhdCh0KSksby5wdXNoKCJ2ZXJzaW9uPSIuY29uY2F0KFl0KSksby5sZW5ndGgmJihlKz0iICgiK28uam9pbigiLCAiKSsiKSIpLHQpe2Nhc2UiSU5WQUxJRF9BUkdVTUVOVCI6bj1uZXcgVHlwZUVycm9yKGUpO2JyZWFrO2Nhc2UiTlVNRVJJQ19GQVVMVCI6Y2FzZSJCVUZGRVJfT1ZFUlJVTiI6bj1uZXcgUmFuZ2VFcnJvcihlKTticmVhaztkZWZhdWx0Om49bmV3IEVycm9yKGUpfXJldHVybiB0cihuLHtjb2RlOnR9KSxyJiZPYmplY3QuYXNzaWduKG4sciksbn1mdW5jdGlvbiBpcihlLHQscixuKXtpZighZSl0aHJvdyBvcih0LHIsbil9ZnVuY3Rpb24gYXIoZSx0LHIsbil7aXIoZSx0LCJJTlZBTElEX0FSR1VNRU5UIix7YXJndW1lbnQ6cix2YWx1ZTpufSl9ZnVuY3Rpb24gc3IoZSx0LHIpe251bGw9PXImJihyPSIiKSxyJiYocj0iOiAiK3IpLGlyKGU+PXQsIm1pc3NpbmcgYXJndWVtbnQiK3IsIk1JU1NJTkdfQVJHVU1FTlQiLHtjb3VudDplLGV4cGVjdGVkQ291bnQ6dH0pLGlyKGU8PXQsInRvbyBtYW55IGFyZ3VlbW50cyIrciwiVU5FWFBFQ1RFRF9BUkdVTUVOVCIse2NvdW50OmUsZXhwZWN0ZWRDb3VudDp0fSl9dmFyIHVyPVsiTkZEIiwiTkZDIiwiTkZLRCIsIk5GS0MiXS5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7dHJ5e2lmKCJ0ZXN0IiE9PSJ0ZXN0Ii5ub3JtYWxpemUodCkpdGhyb3cgbmV3IEVycm9yKCJiYWQiKTtpZigiTkZEIj09PXQmJlN0cmluZy5mcm9tQ2hhckNvZGUoMjMzKS5ub3JtYWxpemUoIk5GRCIpIT09U3RyaW5nLmZyb21DaGFyQ29kZSgxMDEsNzY5KSl0aHJvdyBuZXcgRXJyb3IoImJyb2tlbiIpO2UucHVzaCh0KX1jYXRjaChlKXt9cmV0dXJuIGV9KSxbXSk7ZnVuY3Rpb24gY3IoZSl7aXIodXIuaW5kZXhPZihlKT49MCwicGxhdGZvcm0gbWlzc2luZyBTdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZSIsIlVOU1VQUE9SVEVEX09QRVJBVElPTiIse29wZXJhdGlvbjoiU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUiLGluZm86e2Zvcm06ZX19KX1mdW5jdGlvbiBscihlLHQscil7aWYobnVsbD09ciYmKHI9IiIpLGUhPT10KXt2YXIgbj1yLG89Im5ldyI7ciYmKG4rPSIuIixvKz0iICIrciksaXIoITEsInByaXZhdGUgY29uc3RydWN0b3I7IHVzZSAiLmNvbmNhdChuLCJmcm9tKiBtZXRob2RzIiksIlVOU1VQUE9SVEVEX09QRVJBVElPTiIse29wZXJhdGlvbjpvfSl9fWZ1bmN0aW9uIGRyKGUsdCxyKXtpZihlIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gcj9uZXcgVWludDhBcnJheShlKTplO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaCgvXjB4KFswLTlhLWZdWzAtOWEtZl0pKiQvaSkpe2Zvcih2YXIgbj1uZXcgVWludDhBcnJheSgoZS5sZW5ndGgtMikvMiksbz0yLGk9MDtpPG4ubGVuZ3RoO2krKyluW2ldPXBhcnNlSW50KGUuc3Vic3RyaW5nKG8sbysyKSwxNiksbys9MjtyZXR1cm4gbn1hcighMSwiaW52YWxpZCBCeXRlc0xpa2UgdmFsdWUiLHR8fCJ2YWx1ZSIsZSl9ZnVuY3Rpb24gZnIoZSx0KXtyZXR1cm4gZHIoZSx0LCExKX1mdW5jdGlvbiBwcihlLHQpe3JldHVybiBkcihlLHQsITApfWZ1bmN0aW9uIGhyKGUsdCl7cmV0dXJuISgic3RyaW5nIiE9dHlwZW9mIGV8fCFlLm1hdGNoKC9eMHhbMC05QS1GYS1mXSokLyl8fCJudW1iZXIiPT10eXBlb2YgdCYmZS5sZW5ndGghPT0yKzIqdHx8ITA9PT10JiZlLmxlbmd0aCUyIT0wKX1mdW5jdGlvbiBncihlKXtyZXR1cm4gaHIoZSwhMCl8fGUgaW5zdGFuY2VvZiBVaW50OEFycmF5fXZhciB5cj0iMDEyMzQ1Njc4OWFiY2RlZiI7ZnVuY3Rpb24gYnIoZSl7Zm9yKHZhciB0PWZyKGUpLHI9IjB4IixuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBvPXRbbl07cis9eXJbKDI0MCZvKT4+NF0reXJbMTUmb119cmV0dXJuIHJ9ZnVuY3Rpb24gdnIoZSl7cmV0dXJuIjB4IitlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGJyKGUpLnN1YnN0cmluZygyKX0pKS5qb2luKCIiKX1mdW5jdGlvbiBtcihlKXtyZXR1cm4gaHIoZSwhMCk/KGUubGVuZ3RoLTIpLzI6ZnIoZSkubGVuZ3RofWZ1bmN0aW9uIFRyKGUsdCxyKXt2YXIgbj1mcihlKTtyZXR1cm4gbnVsbCE9ciYmcj5uLmxlbmd0aCYmaXIoITEsImNhbm5vdCBzbGljZSBiZXlvbmQgZGF0YSBib3VuZHMiLCJCVUZGRVJfT1ZFUlJVTiIse2J1ZmZlcjpuLGxlbmd0aDpuLmxlbmd0aCxvZmZzZXQ6cn0pLGJyKG4uc2xpY2UobnVsbD09dD8wOnQsbnVsbD09cj9uLmxlbmd0aDpyKSl9ZnVuY3Rpb24gd3IoZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWZyKGUpO2lyKHQ+PW4ubGVuZ3RoLCJwYWRkaW5nIGV4Y2VlZHMgZGF0YSBsZW5ndGgiLCJCVUZGRVJfT1ZFUlJVTiIse2J1ZmZlcjpuZXcgVWludDhBcnJheShuKSxsZW5ndGg6dCxvZmZzZXQ6dCsxfSk7dmFyIG89bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIG8uZmlsbCgwKSxyP28uc2V0KG4sdC1uLmxlbmd0aCk6by5zZXQobiwwKSxicihvKX0oZSx0LCEwKX1mdW5jdGlvbiBBcihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KHQpO3I8dDtyKyspbltyXT1lW3JdO3JldHVybiBufXZhciBQcj1CaWdJbnQoMCksV3I9QmlnSW50KDEpLEJyPTkwMDcxOTkyNTQ3NDA5OTE7ZnVuY3Rpb24gQ3IoZSx0KXt2YXIgcj1NcihlLCJ2YWx1ZSIpLG49QmlnSW50KFNyKHQsIndpZHRoIikpLG89V3I8PG4tV3I7cmV0dXJuIHI8UHI/KGlyKChyPS1yKTw9bywidG9vIGxvdyIsIk5VTUVSSUNfRkFVTFQiLHtvcGVyYXRpb246InRvVHdvcyIsZmF1bHQ6Im92ZXJmbG93Iix2YWx1ZTplfSksKH5yJihXcjw8biktV3IpK1dyKTooaXIocjxvLCJ0b28gaGlnaCIsIk5VTUVSSUNfRkFVTFQiLHtvcGVyYXRpb246InRvVHdvcyIsZmF1bHQ6Im92ZXJmbG93Iix2YWx1ZTplfSkscil9ZnVuY3Rpb24gRXIoZSx0KXt2YXIgcj1rcihlLCJ2YWx1ZSIpLG49QmlnSW50KFNyKHQsImJpdHMiKSk7cmV0dXJuIHImKFdyPDxuKS1Xcn1mdW5jdGlvbiBNcihlLHQpe3N3aXRjaChoKGUpKXtjYXNlImJpZ2ludCI6cmV0dXJuIGU7Y2FzZSJudW1iZXIiOnJldHVybiBhcihOdW1iZXIuaXNJbnRlZ2VyKGUpLCJ1bmRlcmZsb3ciLHR8fCJ2YWx1ZSIsZSksYXIoZT49LUJyJiZlPD1Cciwib3ZlcmZsb3ciLHR8fCJ2YWx1ZSIsZSksQmlnSW50KGUpO2Nhc2Uic3RyaW5nIjp0cnl7aWYoIiI9PT1lKXRocm93IG5ldyBFcnJvcigiZW1wdHkgc3RyaW5nIik7cmV0dXJuIi0iPT09ZVswXSYmIi0iIT09ZVsxXT8tQmlnSW50KGUuc3Vic3RyaW5nKDEpKTpCaWdJbnQoZSl9Y2F0Y2gocil7YXIoITEsImludmFsaWQgQmlnTnVtYmVyaXNoIHN0cmluZzogIi5jb25jYXQoci5tZXNzYWdlKSx0fHwidmFsdWUiLGUpfX1hcighMSwiaW52YWxpZCBCaWdOdW1iZXJpc2ggdmFsdWUiLHR8fCJ2YWx1ZSIsZSl9ZnVuY3Rpb24ga3IoZSx0KXt2YXIgcj1NcihlLHQpO3JldHVybiBpcihyPj1QciwidW5zaWduZWQgdmFsdWUgY2Fubm90IGJlIG5lZ2F0aXZlIiwiTlVNRVJJQ19GQVVMVCIse2ZhdWx0OiJvdmVyZmxvdyIsb3BlcmF0aW9uOiJnZXRVaW50Iix2YWx1ZTplfSkscn12YXIgSXIsT3I9IjAxMjM0NTY3ODlhYmNkZWYiO2Z1bmN0aW9uIHhyKGUpe2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXt2YXIgdCxyPSIweDAiLG49ZnVuY3Rpb24oZSx0KXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoIXIpe2lmKEFycmF5LmlzQXJyYXkoZSl8fChyPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBBcihlLHQpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1yfHwiU2V0Ij09PXI/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP0FyKGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtyJiYoZT1yKTt2YXIgbj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiBuPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtuKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgaSxhPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPXIubmV4dCgpO3JldHVybiBhPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsaT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2F8fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBpfX19fShlKTt0cnl7Zm9yKG4ucygpOyEodD1uLm4oKSkuZG9uZTspe3ZhciBvPXQudmFsdWU7cis9T3Jbbz4+NF0scis9T3JbMTUmb119fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXJldHVybiBCaWdJbnQocil9cmV0dXJuIE1yKGUpfWZ1bmN0aW9uIFNyKGUsdCl7c3dpdGNoKGgoZSkpe2Nhc2UiYmlnaW50IjpyZXR1cm4gYXIoZT49LUJyJiZlPD1Cciwib3ZlcmZsb3ciLHR8fCJ2YWx1ZSIsZSksTnVtYmVyKGUpO2Nhc2UibnVtYmVyIjpyZXR1cm4gYXIoTnVtYmVyLmlzSW50ZWdlcihlKSwidW5kZXJmbG93Iix0fHwidmFsdWUiLGUpLGFyKGU+PS1CciYmZTw9QnIsIm92ZXJmbG93Iix0fHwidmFsdWUiLGUpLGU7Y2FzZSJzdHJpbmciOnRyeXtpZigiIj09PWUpdGhyb3cgbmV3IEVycm9yKCJlbXB0eSBzdHJpbmciKTtyZXR1cm4gU3IoQmlnSW50KGUpLHQpfWNhdGNoKHIpe2FyKCExLCJpbnZhbGlkIG51bWVyaWMgc3RyaW5nOiAiLmNvbmNhdChyLm1lc3NhZ2UpLHR8fCJ2YWx1ZSIsZSl9fWFyKCExLCJpbnZhbGlkIG51bWVyaWMgdmFsdWUiLHR8fCJ2YWx1ZSIsZSl9ZnVuY3Rpb24gRnIoZSx0KXt2YXIgcj1rcihlLCJ2YWx1ZSIpLnRvU3RyaW5nKDE2KTtpZihudWxsPT10KXIubGVuZ3RoJTImJihyPSIwIityKTtlbHNle3ZhciBuPVNyKHQsIndpZHRoIik7Zm9yKGlyKDIqbj49ci5sZW5ndGgsInZhbHVlIGV4Y2VlZHMgd2lkdGggKCIuY29uY2F0KG4sIiBiaXRzKSIpLCJOVU1FUklDX0ZBVUxUIix7b3BlcmF0aW9uOiJ0b0JlSGV4IixmYXVsdDoib3ZlcmZsb3ciLHZhbHVlOmV9KTtyLmxlbmd0aDwyKm47KXI9IjAiK3J9cmV0dXJuIjB4IityfWZ1bmN0aW9uIF9yKGUpe3ZhciB0PWtyKGUsInZhbHVlIik7aWYodD09PVByKXJldHVybiBuZXcgVWludDhBcnJheShbXSk7dmFyIHI9dC50b1N0cmluZygxNik7ci5sZW5ndGglMiYmKHI9IjAiK3IpO2Zvcih2YXIgbj1uZXcgVWludDhBcnJheShyLmxlbmd0aC8yKSxvPTA7bzxuLmxlbmd0aDtvKyspe3ZhciBpPTIqbztuW29dPXBhcnNlSW50KHIuc3Vic3RyaW5nKGksaSsyKSwxNil9cmV0dXJuIG59ZnVuY3Rpb24gUnIoZSx0LHIpeyFmdW5jdGlvbihlLHQpe2lmKHQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KGUsdCksdC5zZXQoZSxyKX12YXIgTnI9QmlnSW50KDApLFVyPUJpZ0ludCgxKSxEcj1CaWdJbnQoMiksTHI9QmlnSW50KDI3KSxqcj1CaWdJbnQoMjgpLHpyPUJpZ0ludCgzNSksJHI9e307ZnVuY3Rpb24gVnIoZSl7cmV0dXJuIHdyKF9yKGUpLDMyKX12YXIgR3I9bmV3IFdlYWtNYXAsSHI9bmV3IFdlYWtNYXAsS3I9bmV3IFdlYWtNYXAsWnI9bmV3IFdlYWtNYXA7SXI9U3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKTt2YXIgcXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscixuLG8pe2codGhpcyxlKSxScih0aGlzLEdyLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxScih0aGlzLEhyLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxScih0aGlzLEtyLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxScih0aGlzLFpyLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxscih0LCRyLCJTaWduYXR1cmUiKSxadCh0aGlzLEdyLHIpLFp0KHRoaXMsSHIsbiksWnQodGhpcyxLcixvKSxadCh0aGlzLFpyLG51bGwpfXJldHVybiB2KGUsW3trZXk6InIiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEdyKX0sc2V0OmZ1bmN0aW9uKGUpe2FyKDMyPT09bXIoZSksImludmFsaWQgciIsInZhbHVlIixlKSxadCh0aGlzLEdyLGJyKGUpKX19LHtrZXk6InMiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEhyKX0sc2V0OmZ1bmN0aW9uKGUpe2FyKDMyPT09bXIoZSksImludmFsaWQgcyIsInZhbHVlIixlKTt2YXIgdD1icihlKTthcihwYXJzZUludCh0LnN1YnN0cmluZygwLDMpKTw4LCJub24tY2Fub25pY2FsIHMiLCJ2YWx1ZSIsdCksWnQodGhpcyxIcix0KX19LHtrZXk6InYiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEtyKX0sc2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVNyKGUsInZhbHVlIik7YXIoMjc9PT10fHwyOD09PXQsImludmFsaWQgdiIsInYiLGUpLFp0KHRoaXMsS3IsdCl9fSx7a2V5OiJuZXR3b3JrViIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMsWnIpfX0se2tleToibGVnYWN5Q2hhaW5JZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5uZXR3b3JrVjtyZXR1cm4gbnVsbD09dD9udWxsOmUuZ2V0Q2hhaW5JZCh0KX19LHtrZXk6InlQYXJpdHkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyNz09PXRoaXMudj8wOjF9fSx7a2V5OiJ5UGFyaXR5QW5kUyIsZ2V0OmZ1bmN0aW9uKCl7dmFyIGU9ZnIodGhpcy5zKTtyZXR1cm4gdGhpcy55UGFyaXR5JiYoZVswXXw9MTI4KSxicihlKX19LHtrZXk6ImNvbXBhY3RTZXJpYWxpemVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnIoW3RoaXMucix0aGlzLnlQYXJpdHlBbmRTXSl9fSx7a2V5OiJzZXJpYWxpemVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnIoW3RoaXMucix0aGlzLnMsdGhpcy55UGFyaXR5PyIweDFjIjoiMHgxYiJdKX19LHtrZXk6SXIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4nU2lnbmF0dXJlIHsgcjogIicuY29uY2F0KHRoaXMuciwnIiwgczogIicpLmNvbmNhdCh0aGlzLnMsJyIsIHlQYXJpdHk6ICcpLmNvbmNhdCh0aGlzLnlQYXJpdHksIiwgbmV0d29ya1Y6ICIpLmNvbmNhdCh0aGlzLm5ldHdvcmtWLCIgfSIpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGUoJHIsdGhpcy5yLHRoaXMucyx0aGlzLnYpO3JldHVybiB0aGlzLm5ldHdvcmtWJiZadCh0LFpyLHRoaXMubmV0d29ya1YpLHR9fSx7a2V5OiJ0b0pTT04iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5uZXR3b3JrVjtyZXR1cm57X3R5cGU6InNpZ25hdHVyZSIsbmV0d29ya1Y6bnVsbCE9ZT9lLnRvU3RyaW5nKCk6bnVsbCxyOnRoaXMucixzOnRoaXMucyx2OnRoaXMudn19fV0sW3trZXk6ImdldENoYWluSWQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PU1yKGUsInYiKTtyZXR1cm4gdD09THJ8fHQ9PWpyP05yOihhcih0Pj16ciwiaW52YWxpZCBFSVAtMTU1IHYiLCJ2IixlKSwodC16cikvRHIpfX0se2tleToiZ2V0Q2hhaW5JZFYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIE1yKGUpKkRyK0JpZ0ludCgzNSt0LTI3KX19LHtrZXk6ImdldE5vcm1hbGl6ZWRWIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1NcihlKTtyZXR1cm4gdD09PU5yfHx0PT09THI/Mjc6dD09PVVyfHx0PT09anI/Mjg6KGFyKHQ+PXpyLCJpbnZhbGlkIHYiLCJ2IixlKSx0JlVyPzI3OjI4KX19LHtrZXk6ImZyb20iLHZhbHVlOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIoZSxyKXthcihlLHIsInNpZ25hdHVyZSIsdCl9aWYobnVsbD09dClyZXR1cm4gbmV3IGUoJHIsSnQsSnQsMjcpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIG49ZnIodCwic2lnbmF0dXJlIik7aWYoNjQ9PT1uLmxlbmd0aCl7dmFyIG89YnIobi5zbGljZSgwLDMyKSksaT1uLnNsaWNlKDMyLDY0KSxhPTEyOCZpWzBdPzI4OjI3O3JldHVybiBpWzBdJj0xMjcsbmV3IGUoJHIsbyxicihpKSxhKX1pZig2NT09PW4ubGVuZ3RoKXt2YXIgcz1icihuLnNsaWNlKDAsMzIpKSx1PW4uc2xpY2UoMzIsNjQpO3IoMD09KDEyOCZ1WzBdKSwibm9uLWNhbm9uaWNhbCBzIik7dmFyIGM9ZS5nZXROb3JtYWxpemVkVihuWzY0XSk7cmV0dXJuIG5ldyBlKCRyLHMsYnIodSksYyl9cighMSwiaW52YWxpZCByYXcgc2lnbmF0dXJlIGxlbmd0aCIpfWlmKHQgaW5zdGFuY2VvZiBlKXJldHVybiB0LmNsb25lKCk7dmFyIGw9dC5yO3IobnVsbCE9bCwibWlzc2luZyByIik7dmFyIGQ9VnIobCksZj1mdW5jdGlvbihlLHQpe2lmKG51bGwhPWUpcmV0dXJuIFZyKGUpO2lmKG51bGwhPXQpe3IoaHIodCwzMiksImludmFsaWQgeVBhcml0eUFuZFMiKTt2YXIgbj1mcih0KTtyZXR1cm4gblswXSY9MTI3LGJyKG4pfXIoITEsIm1pc3NpbmcgcyIpfSh0LnMsdC55UGFyaXR5QW5kUyk7cigwPT0oMTI4JmZyKGYpWzBdKSwibm9uLWNhbm9uaWNhbCBzIik7dmFyIHA9ZnVuY3Rpb24odCxuLG8pe2lmKG51bGwhPXQpe3ZhciBpPU1yKHQpO3JldHVybntuZXR3b3JrVjppPj16cj9pOnZvaWQgMCx2OmUuZ2V0Tm9ybWFsaXplZFYoaSl9fWlmKG51bGwhPW4pcmV0dXJuIHIoaHIobiwzMiksImludmFsaWQgeVBhcml0eUFuZFMiKSx7djoxMjgmZnIobilbMF0/Mjg6Mjd9O2lmKG51bGwhPW8pe3N3aXRjaChvKXtjYXNlIDA6cmV0dXJue3Y6Mjd9O2Nhc2UgMTpyZXR1cm57djoyOH19cighMSwiaW52YWxpZCB5UGFyaXR5Iil9cighMSwibWlzc2luZyB2Iil9KHQudix0LnlQYXJpdHlBbmRTLHQueVBhcml0eSksaD1wLm5ldHdvcmtWLGc9cC52LHk9bmV3IGUoJHIsZCxmLGcpO3JldHVybiBoJiZadCh5LFpyLGgpLHIoISgieVBhcml0eSJpbiB0JiZ0LnlQYXJpdHkhPT15LnlQYXJpdHkpLCJ5UGFyaXR5IG1pc21hdGNoIikscighKCJ5UGFyaXR5QW5kUyJpbiB0JiZ0LnlQYXJpdHlBbmRTIT09eS55UGFyaXR5QW5kUyksInlQYXJpdHlBbmRTIG1pc21hdGNoIikseX19XSksZX0oKTtmdW5jdGlvbiBKcihlKXtpZighTnVtYmVyLmlzU2FmZUludGVnZXIoZSl8fGU8MCl0aHJvdyBuZXcgRXJyb3IoYFdyb25nIHBvc2l0aXZlIGludGVnZXI6ICR7ZX1gKX1mdW5jdGlvbiBZcihlLC4uLnQpe2lmKCEoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIFVpbnQ4QXJyYXkiKTtpZih0Lmxlbmd0aD4wJiYhdC5pbmNsdWRlcyhlLmxlbmd0aCkpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgVWludDhBcnJheSBvZiBsZW5ndGggJHt0fSwgbm90IG9mIGxlbmd0aD0ke2UubGVuZ3RofWApfWNvbnN0IFhyPXtudW1iZXI6SnIsYm9vbDpmdW5jdGlvbihlKXtpZigiYm9vbGVhbiIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYm9vbGVhbiwgbm90ICR7ZX1gKX0sYnl0ZXM6WXIsaGFzaDpmdW5jdGlvbihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGUuY3JlYXRlKXRocm93IG5ldyBFcnJvcigiSGFzaCBzaG91bGQgYmUgd3JhcHBlZCBieSB1dGlscy53cmFwQ29uc3RydWN0b3IiKTtKcihlLm91dHB1dExlbiksSnIoZS5ibG9ja0xlbil9LGV4aXN0czpmdW5jdGlvbihlLHQ9ITApe2lmKGUuZGVzdHJveWVkKXRocm93IG5ldyBFcnJvcigiSGFzaCBpbnN0YW5jZSBoYXMgYmVlbiBkZXN0cm95ZWQiKTtpZih0JiZlLmZpbmlzaGVkKXRocm93IG5ldyBFcnJvcigiSGFzaCNkaWdlc3QoKSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCIpfSxvdXRwdXQ6ZnVuY3Rpb24oZSx0KXtZcihlKTtjb25zdCByPXQub3V0cHV0TGVuO2lmKGUubGVuZ3RoPHIpdGhyb3cgbmV3IEVycm9yKGBkaWdlc3RJbnRvKCkgZXhwZWN0cyBvdXRwdXQgYnVmZmVyIG9mIGxlbmd0aCBhdCBsZWFzdCAke3J9YCl9fSxRcj1Ycixlbj0oIm9iamVjdCI9PXR5cGVvZiBzZWxmJiYiY3J5cHRvImluIHNlbGYmJnNlbGYuY3J5cHRvLGU9Pm5ldyBVaW50MzJBcnJheShlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsTWF0aC5mbG9vcihlLmJ5dGVMZW5ndGgvNCkpKSx0bj1lPT5uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCkscm49KGUsdCk9PmU8PDMyLXR8ZT4+PnQ7aWYoNjghPT1uZXcgVWludDhBcnJheShuZXcgVWludDMyQXJyYXkoWzI4NzQ1NDAyMF0pLmJ1ZmZlcilbMF0pdGhyb3cgbmV3IEVycm9yKCJOb24gbGl0dGxlLWVuZGlhbiBoYXJkd2FyZSBpcyBub3Qgc3VwcG9ydGVkIik7QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKChlLHQpPT50LnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpKTtjb25zdCBubj1hc3luYygpPT57fTthc3luYyBmdW5jdGlvbiBvbihlLHQscil7bGV0IG49RGF0ZS5ub3coKTtmb3IobGV0IG89MDtvPGU7bysrKXtyKG8pO2NvbnN0IGU9RGF0ZS5ub3coKS1uO2U+PTAmJmU8dHx8KGF3YWl0IG5uKCksbis9ZSl9fWZ1bmN0aW9uIGFuKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9ZnVuY3Rpb24oZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoInV0ZjhUb0J5dGVzIGV4cGVjdGVkIHN0cmluZywgZ290ICIrdHlwZW9mIGUpO3JldHVybihuZXcgVGV4dEVuY29kZXIpLmVuY29kZShlKX0oZSkpLCEoZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGlucHV0IHR5cGUgaXMgVWludDhBcnJheSAoZ290ICR7dHlwZW9mIGV9KWApO3JldHVybiBlfWNsYXNzIHNue2Nsb25lKCl7cmV0dXJuIHRoaXMuX2Nsb25lSW50bygpfX1jb25zdCB1bj1lPT4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSYmZS5jb25zdHJ1Y3Rvcj09PU9iamVjdDtmdW5jdGlvbiBjbihlLHQpe2lmKHZvaWQgMCE9PXQmJigib2JqZWN0IiE9dHlwZW9mIHR8fCF1bih0KSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiT3B0aW9ucyBzaG91bGQgYmUgb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBPYmplY3QuYXNzaWduKGUsdCl9ZnVuY3Rpb24gbG4oZSl7Y29uc3QgdD10PT5lKCkudXBkYXRlKGFuKHQpKS5kaWdlc3QoKSxyPWUoKTtyZXR1cm4gdC5vdXRwdXRMZW49ci5vdXRwdXRMZW4sdC5ibG9ja0xlbj1yLmJsb2NrTGVuLHQuY3JlYXRlPSgpPT5lKCksdH1jbGFzcyBkbiBleHRlbmRzIHNue2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExLFFyLmhhc2goZSk7Y29uc3Qgcj1hbih0KTtpZih0aGlzLmlIYXNoPWUuY3JlYXRlKCksISh0aGlzLmlIYXNoIGluc3RhbmNlb2Ygc24pKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGluc3RhbmNlIG9mIGNsYXNzIHdoaWNoIGV4dGVuZHMgdXRpbHMuSGFzaCIpO2NvbnN0IG49dGhpcy5ibG9ja0xlbj10aGlzLmlIYXNoLmJsb2NrTGVuO3RoaXMub3V0cHV0TGVuPXRoaXMuaUhhc2gub3V0cHV0TGVuO2NvbnN0IG89bmV3IFVpbnQ4QXJyYXkobik7by5zZXQoci5sZW5ndGg+dGhpcy5pSGFzaC5ibG9ja0xlbj9lLmNyZWF0ZSgpLnVwZGF0ZShyKS5kaWdlc3QoKTpyKTtmb3IobGV0IGU9MDtlPG8ubGVuZ3RoO2UrKylvW2VdXj01NDt0aGlzLmlIYXNoLnVwZGF0ZShvKSx0aGlzLm9IYXNoPWUuY3JlYXRlKCk7Zm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspb1tlXV49MTA2O3RoaXMub0hhc2gudXBkYXRlKG8pLG8uZmlsbCgwKX11cGRhdGUoZSl7cmV0dXJuIFFyLmV4aXN0cyh0aGlzKSx0aGlzLmlIYXNoLnVwZGF0ZShlKSx0aGlzfWRpZ2VzdEludG8oZSl7UXIuZXhpc3RzKHRoaXMpLFFyLmJ5dGVzKGUsdGhpcy5vdXRwdXRMZW4pLHRoaXMuZmluaXNoZWQ9ITAsdGhpcy5pSGFzaC5kaWdlc3RJbnRvKGUpLHRoaXMub0hhc2gudXBkYXRlKGUpLHRoaXMub0hhc2guZGlnZXN0SW50byhlKSx0aGlzLmRlc3Ryb3koKX1kaWdlc3QoKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KHRoaXMub0hhc2gub3V0cHV0TGVuKTtyZXR1cm4gdGhpcy5kaWdlc3RJbnRvKGUpLGV9X2Nsb25lSW50byhlKXtlfHwoZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSx7fSkpO2NvbnN0e29IYXNoOnQsaUhhc2g6cixmaW5pc2hlZDpuLGRlc3Ryb3llZDpvLGJsb2NrTGVuOmksb3V0cHV0TGVuOmF9PXRoaXM7cmV0dXJuIGUuZmluaXNoZWQ9bixlLmRlc3Ryb3llZD1vLGUuYmxvY2tMZW49aSxlLm91dHB1dExlbj1hLGUub0hhc2g9dC5fY2xvbmVJbnRvKGUub0hhc2gpLGUuaUhhc2g9ci5fY2xvbmVJbnRvKGUuaUhhc2gpLGV9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMub0hhc2guZGVzdHJveSgpLHRoaXMuaUhhc2guZGVzdHJveSgpfX1jb25zdCBmbj0oZSx0LHIpPT5uZXcgZG4oZSx0KS51cGRhdGUocikuZGlnZXN0KCk7ZnVuY3Rpb24gcG4oZSx0LHIsbil7Y29uc3R7YzpvLGRrTGVuOmksREs6YSxQUkY6cyxQUkZTYWx0OnV9PWZ1bmN0aW9uKGUsdCxyLG4pe1FyLmhhc2goZSk7Y29uc3Qgbz1jbih7ZGtMZW46MzIsYXN5bmNUaWNrOjEwfSxuKSx7YzppLGRrTGVuOmEsYXN5bmNUaWNrOnN9PW87aWYoUXIubnVtYmVyKGkpLFFyLm51bWJlcihhKSxRci5udW1iZXIocyksaTwxKXRocm93IG5ldyBFcnJvcigiUEJLREYyOiBpdGVyYXRpb25zIChjKSBzaG91bGQgYmUgPj0gMSIpO2NvbnN0IHU9YW4odCksYz1hbihyKSxsPW5ldyBVaW50OEFycmF5KGEpLGQ9Zm4uY3JlYXRlKGUsdSksZj1kLl9jbG9uZUludG8oKS51cGRhdGUoYyk7cmV0dXJue2M6aSxka0xlbjphLGFzeW5jVGljazpzLERLOmwsUFJGOmQsUFJGU2FsdDpmfX0oZSx0LHIsbik7bGV0IGM7Y29uc3QgbD1uZXcgVWludDhBcnJheSg0KSxkPXRuKGwpLGY9bmV3IFVpbnQ4QXJyYXkocy5vdXRwdXRMZW4pO2ZvcihsZXQgZT0xLHQ9MDt0PGk7ZSsrLHQrPXMub3V0cHV0TGVuKXtjb25zdCByPWEuc3ViYXJyYXkodCx0K3Mub3V0cHV0TGVuKTtkLnNldEludDMyKDAsZSwhMSksKGM9dS5fY2xvbmVJbnRvKGMpKS51cGRhdGUobCkuZGlnZXN0SW50byhmKSxyLnNldChmLnN1YmFycmF5KDAsci5sZW5ndGgpKTtmb3IobGV0IGU9MTtlPG87ZSsrKXtzLl9jbG9uZUludG8oYykudXBkYXRlKGYpLmRpZ2VzdEludG8oZik7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspcltlXV49ZltlXX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxyLG4sbyl7cmV0dXJuIGUuZGVzdHJveSgpLHQuZGVzdHJveSgpLG4mJm4uZGVzdHJveSgpLG8uZmlsbCgwKSxyfShzLHUsYSxjLGYpfWZuLmNyZWF0ZT0oZSx0KT0+bmV3IGRuKGUsdCk7Y2xhc3MgaG4gZXh0ZW5kcyBzbntjb25zdHJ1Y3RvcihlLHQscixuKXtzdXBlcigpLHRoaXMuYmxvY2tMZW49ZSx0aGlzLm91dHB1dExlbj10LHRoaXMucGFkT2Zmc2V0PXIsdGhpcy5pc0xFPW4sdGhpcy5maW5pc2hlZD0hMSx0aGlzLmxlbmd0aD0wLHRoaXMucG9zPTAsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoZSksdGhpcy52aWV3PXRuKHRoaXMuYnVmZmVyKX11cGRhdGUoZSl7UXIuZXhpc3RzKHRoaXMpO2NvbnN0e3ZpZXc6dCxidWZmZXI6cixibG9ja0xlbjpufT10aGlzLG89KGU9YW4oZSkpLmxlbmd0aDtmb3IobGV0IGk9MDtpPG87KXtjb25zdCBhPU1hdGgubWluKG4tdGhpcy5wb3Msby1pKTtpZihhIT09bilyLnNldChlLnN1YmFycmF5KGksaSthKSx0aGlzLnBvcyksdGhpcy5wb3MrPWEsaSs9YSx0aGlzLnBvcz09PW4mJih0aGlzLnByb2Nlc3ModCwwKSx0aGlzLnBvcz0wKTtlbHNle2NvbnN0IHQ9dG4oZSk7Zm9yKDtuPD1vLWk7aSs9bil0aGlzLnByb2Nlc3ModCxpKX19cmV0dXJuIHRoaXMubGVuZ3RoKz1lLmxlbmd0aCx0aGlzLnJvdW5kQ2xlYW4oKSx0aGlzfWRpZ2VzdEludG8oZSl7UXIuZXhpc3RzKHRoaXMpLFFyLm91dHB1dChlLHRoaXMpLHRoaXMuZmluaXNoZWQ9ITA7Y29uc3R7YnVmZmVyOnQsdmlldzpyLGJsb2NrTGVuOm4saXNMRTpvfT10aGlzO2xldHtwb3M6aX09dGhpczt0W2krK109MTI4LHRoaXMuYnVmZmVyLnN1YmFycmF5KGkpLmZpbGwoMCksdGhpcy5wYWRPZmZzZXQ+bi1pJiYodGhpcy5wcm9jZXNzKHIsMCksaT0wKTtmb3IobGV0IGU9aTtlPG47ZSsrKXRbZV09MDshZnVuY3Rpb24oZSx0LHIsbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUuc2V0QmlnVWludDY0KXJldHVybiBlLnNldEJpZ1VpbnQ2NCh0LHIsbik7Y29uc3Qgbz1CaWdJbnQoMzIpLGk9QmlnSW50KDQyOTQ5NjcyOTUpLGE9TnVtYmVyKHI+Pm8maSkscz1OdW1iZXIociZpKSx1PW4/NDowLGM9bj8wOjQ7ZS5zZXRVaW50MzIodCt1LGEsbiksZS5zZXRVaW50MzIodCtjLHMsbil9KHIsbi04LEJpZ0ludCg4KnRoaXMubGVuZ3RoKSxvKSx0aGlzLnByb2Nlc3MociwwKTtjb25zdCBhPXRuKGUpO3RoaXMuZ2V0KCkuZm9yRWFjaCgoKGUsdCk9PmEuc2V0VWludDMyKDQqdCxlLG8pKSl9ZGlnZXN0KCl7Y29uc3R7YnVmZmVyOmUsb3V0cHV0TGVuOnR9PXRoaXM7dGhpcy5kaWdlc3RJbnRvKGUpO2NvbnN0IHI9ZS5zbGljZSgwLHQpO3JldHVybiB0aGlzLmRlc3Ryb3koKSxyfV9jbG9uZUludG8oZSl7ZXx8KGU9bmV3IHRoaXMuY29uc3RydWN0b3IpLGUuc2V0KC4uLnRoaXMuZ2V0KCkpO2NvbnN0e2Jsb2NrTGVuOnQsYnVmZmVyOnIsbGVuZ3RoOm4sZmluaXNoZWQ6byxkZXN0cm95ZWQ6aSxwb3M6YX09dGhpcztyZXR1cm4gZS5sZW5ndGg9bixlLnBvcz1hLGUuZmluaXNoZWQ9byxlLmRlc3Ryb3llZD1pLG4ldCYmZS5idWZmZXIuc2V0KHIpLGV9fWNvbnN0IGduPShlLHQscik9PmUmdF5+ZSZyLHluPShlLHQscik9PmUmdF5lJnJedCZyLGJuPW5ldyBVaW50MzJBcnJheShbMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMyMjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAyNjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwxNTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSksdm49bmV3IFVpbnQzMkFycmF5KFsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0pLG1uPW5ldyBVaW50MzJBcnJheSg2NCk7Y2xhc3MgVG4gZXh0ZW5kcyBobntjb25zdHJ1Y3Rvcigpe3N1cGVyKDY0LDMyLDgsITEpLHRoaXMuQT0wfHZuWzBdLHRoaXMuQj0wfHZuWzFdLHRoaXMuQz0wfHZuWzJdLHRoaXMuRD0wfHZuWzNdLHRoaXMuRT0wfHZuWzRdLHRoaXMuRj0wfHZuWzVdLHRoaXMuRz0wfHZuWzZdLHRoaXMuSD0wfHZuWzddfWdldCgpe2NvbnN0e0E6ZSxCOnQsQzpyLEQ6bixFOm8sRjppLEc6YSxIOnN9PXRoaXM7cmV0dXJuW2UsdCxyLG4sbyxpLGEsc119c2V0KGUsdCxyLG4sbyxpLGEscyl7dGhpcy5BPTB8ZSx0aGlzLkI9MHx0LHRoaXMuQz0wfHIsdGhpcy5EPTB8bix0aGlzLkU9MHxvLHRoaXMuRj0wfGksdGhpcy5HPTB8YSx0aGlzLkg9MHxzfXByb2Nlc3MoZSx0KXtmb3IobGV0IHI9MDtyPDE2O3IrKyx0Kz00KW1uW3JdPWUuZ2V0VWludDMyKHQsITEpO2ZvcihsZXQgZT0xNjtlPDY0O2UrKyl7Y29uc3QgdD1tbltlLTE1XSxyPW1uW2UtMl0sbj1ybih0LDcpXnJuKHQsMTgpXnQ+Pj4zLG89cm4ociwxNylecm4ociwxOSlecj4+PjEwO21uW2VdPW8rbW5bZS03XStuK21uW2UtMTZdfDB9bGV0e0E6cixCOm4sQzpvLEQ6aSxFOmEsRjpzLEc6dSxIOmN9PXRoaXM7Zm9yKGxldCBlPTA7ZTw2NDtlKyspe2NvbnN0IHQ9Yysocm4oYSw2KV5ybihhLDExKV5ybihhLDI1KSkrZ24oYSxzLHUpK2JuW2VdK21uW2VdfDAsbD0ocm4ociwyKV5ybihyLDEzKV5ybihyLDIyKSkreW4ocixuLG8pfDA7Yz11LHU9cyxzPWEsYT1pK3R8MCxpPW8sbz1uLG49cixyPXQrbHwwfXI9cit0aGlzLkF8MCxuPW4rdGhpcy5CfDAsbz1vK3RoaXMuQ3wwLGk9aSt0aGlzLkR8MCxhPWErdGhpcy5FfDAscz1zK3RoaXMuRnwwLHU9dSt0aGlzLkd8MCxjPWMrdGhpcy5IfDAsdGhpcy5zZXQocixuLG8saSxhLHMsdSxjKX1yb3VuZENsZWFuKCl7bW4uZmlsbCgwKX1kZXN0cm95KCl7dGhpcy5zZXQoMCwwLDAsMCwwLDAsMCwwKSx0aGlzLmJ1ZmZlci5maWxsKDApfX1jb25zdCB3bj1sbigoKCk9Pm5ldyBUbikpLEFuPUJpZ0ludCgyKiozMi0xKSxQbj1CaWdJbnQoMzIpO2Z1bmN0aW9uIFduKGUsdD0hMSl7cmV0dXJuIHQ/e2g6TnVtYmVyKGUmQW4pLGw6TnVtYmVyKGU+PlBuJkFuKX06e2g6MHxOdW1iZXIoZT4+UG4mQW4pLGw6MHxOdW1iZXIoZSZBbil9fWNvbnN0IEJuPXtmcm9tQmlnOlduLHNwbGl0OmZ1bmN0aW9uKGUsdD0hMSl7bGV0IHI9bmV3IFVpbnQzMkFycmF5KGUubGVuZ3RoKSxuPW5ldyBVaW50MzJBcnJheShlLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2NvbnN0e2g6aSxsOmF9PVduKGVbb10sdCk7W3Jbb10sbltvXV09W2ksYV19cmV0dXJuW3Isbl19LHRvQmlnOihlLHQpPT5CaWdJbnQoZT4+PjApPDxQbnxCaWdJbnQodD4+PjApLHNoclNIOihlLHQscik9PmU+Pj5yLHNoclNMOihlLHQscik9PmU8PDMyLXJ8dD4+PnIscm90clNIOihlLHQscik9PmU+Pj5yfHQ8PDMyLXIscm90clNMOihlLHQscik9PmU8PDMyLXJ8dD4+PnIscm90ckJIOihlLHQscik9PmU8PDY0LXJ8dD4+PnItMzIscm90ckJMOihlLHQscik9PmU+Pj5yLTMyfHQ8PDY0LXIscm90cjMySDooZSx0KT0+dCxyb3RyMzJMOihlLHQpPT5lLHJvdGxTSDooZSx0LHIpPT5lPDxyfHQ+Pj4zMi1yLHJvdGxTTDooZSx0LHIpPT50PDxyfGU+Pj4zMi1yLHJvdGxCSDooZSx0LHIpPT50PDxyLTMyfGU+Pj42NC1yLHJvdGxCTDooZSx0LHIpPT5lPDxyLTMyfHQ+Pj42NC1yLGFkZDpmdW5jdGlvbihlLHQscixuKXtjb25zdCBvPSh0Pj4+MCkrKG4+Pj4wKTtyZXR1cm57aDplK3IrKG8vMioqMzJ8MCl8MCxsOjB8b319LGFkZDNMOihlLHQscik9PihlPj4+MCkrKHQ+Pj4wKSsocj4+PjApLGFkZDNIOihlLHQscixuKT0+dCtyK24rKGUvMioqMzJ8MCl8MCxhZGQ0TDooZSx0LHIsbik9PihlPj4+MCkrKHQ+Pj4wKSsocj4+PjApKyhuPj4+MCksYWRkNEg6KGUsdCxyLG4sbyk9PnQrcituK28rKGUvMioqMzJ8MCl8MCxhZGQ1SDooZSx0LHIsbixvLGkpPT50K3IrbitvK2krKGUvMioqMzJ8MCl8MCxhZGQ1TDooZSx0LHIsbixvKT0+KGU+Pj4wKSsodD4+PjApKyhyPj4+MCkrKG4+Pj4wKSsobz4+PjApfSxDbj1CbixbRW4sTW5dPUNuLnNwbGl0KFsiMHg0MjhhMmY5OGQ3MjhhZTIyIiwiMHg3MTM3NDQ5MTIzZWY2NWNkIiwiMHhiNWMwZmJjZmVjNGQzYjJmIiwiMHhlOWI1ZGJhNTgxODlkYmJjIiwiMHgzOTU2YzI1YmYzNDhiNTM4IiwiMHg1OWYxMTFmMWI2MDVkMDE5IiwiMHg5MjNmODJhNGFmMTk0ZjliIiwiMHhhYjFjNWVkNWRhNmQ4MTE4IiwiMHhkODA3YWE5OGEzMDMwMjQyIiwiMHgxMjgzNWIwMTQ1NzA2ZmJlIiwiMHgyNDMxODViZTRlZTRiMjhjIiwiMHg1NTBjN2RjM2Q1ZmZiNGUyIiwiMHg3MmJlNWQ3NGYyN2I4OTZmIiwiMHg4MGRlYjFmZTNiMTY5NmIxIiwiMHg5YmRjMDZhNzI1YzcxMjM1IiwiMHhjMTliZjE3NGNmNjkyNjk0IiwiMHhlNDliNjljMTllZjE0YWQyIiwiMHhlZmJlNDc4NjM4NGYyNWUzIiwiMHgwZmMxOWRjNjhiOGNkNWI1IiwiMHgyNDBjYTFjYzc3YWM5YzY1IiwiMHgyZGU5MmM2ZjU5MmIwMjc1IiwiMHg0YTc0ODRhYTZlYTZlNDgzIiwiMHg1Y2IwYTlkY2JkNDFmYmQ0IiwiMHg3NmY5ODhkYTgzMTE1M2I1IiwiMHg5ODNlNTE1MmVlNjZkZmFiIiwiMHhhODMxYzY2ZDJkYjQzMjEwIiwiMHhiMDAzMjdjODk4ZmIyMTNmIiwiMHhiZjU5N2ZjN2JlZWYwZWU0IiwiMHhjNmUwMGJmMzNkYTg4ZmMyIiwiMHhkNWE3OTE0NzkzMGFhNzI1IiwiMHgwNmNhNjM1MWUwMDM4MjZmIiwiMHgxNDI5Mjk2NzBhMGU2ZTcwIiwiMHgyN2I3MGE4NTQ2ZDIyZmZjIiwiMHgyZTFiMjEzODVjMjZjOTI2IiwiMHg0ZDJjNmRmYzVhYzQyYWVkIiwiMHg1MzM4MGQxMzlkOTViM2RmIiwiMHg2NTBhNzM1NDhiYWY2M2RlIiwiMHg3NjZhMGFiYjNjNzdiMmE4IiwiMHg4MWMyYzkyZTQ3ZWRhZWU2IiwiMHg5MjcyMmM4NTE0ODIzNTNiIiwiMHhhMmJmZThhMTRjZjEwMzY0IiwiMHhhODFhNjY0YmJjNDIzMDAxIiwiMHhjMjRiOGI3MGQwZjg5NzkxIiwiMHhjNzZjNTFhMzA2NTRiZTMwIiwiMHhkMTkyZTgxOWQ2ZWY1MjE4IiwiMHhkNjk5MDYyNDU1NjVhOTEwIiwiMHhmNDBlMzU4NTU3NzEyMDJhIiwiMHgxMDZhYTA3MDMyYmJkMWI4IiwiMHgxOWE0YzExNmI4ZDJkMGM4IiwiMHgxZTM3NmMwODUxNDFhYjUzIiwiMHgyNzQ4Nzc0Y2RmOGVlYjk5IiwiMHgzNGIwYmNiNWUxOWI0OGE4IiwiMHgzOTFjMGNiM2M1Yzk1YTYzIiwiMHg0ZWQ4YWE0YWUzNDE4YWNiIiwiMHg1YjljY2E0Zjc3NjNlMzczIiwiMHg2ODJlNmZmM2Q2YjJiOGEzIiwiMHg3NDhmODJlZTVkZWZiMmZjIiwiMHg3OGE1NjM2ZjQzMTcyZjYwIiwiMHg4NGM4NzgxNGExZjBhYjcyIiwiMHg4Y2M3MDIwODFhNjQzOWVjIiwiMHg5MGJlZmZmYTIzNjMxZTI4IiwiMHhhNDUwNmNlYmRlODJiZGU5IiwiMHhiZWY5YTNmN2IyYzY3OTE1IiwiMHhjNjcxNzhmMmUzNzI1MzJiIiwiMHhjYTI3M2VjZWVhMjY2MTljIiwiMHhkMTg2YjhjNzIxYzBjMjA3IiwiMHhlYWRhN2RkNmNkZTBlYjFlIiwiMHhmNTdkNGY3ZmVlNmVkMTc4IiwiMHgwNmYwNjdhYTcyMTc2ZmJhIiwiMHgwYTYzN2RjNWEyYzg5OGE2IiwiMHgxMTNmOTgwNGJlZjkwZGFlIiwiMHgxYjcxMGIzNTEzMWM0NzFiIiwiMHgyOGRiNzdmNTIzMDQ3ZDg0IiwiMHgzMmNhYWI3YjQwYzcyNDkzIiwiMHgzYzllYmUwYTE1YzliZWJjIiwiMHg0MzFkNjdjNDljMTAwZDRjIiwiMHg0Y2M1ZDRiZWNiM2U0MmI2IiwiMHg1OTdmMjk5Y2ZjNjU3ZTJhIiwiMHg1ZmNiNmZhYjNhZDZmYWVjIiwiMHg2YzQ0MTk4YzRhNDc1ODE3Il0ubWFwKChlPT5CaWdJbnQoZSkpKSksa249bmV3IFVpbnQzMkFycmF5KDgwKSxJbj1uZXcgVWludDMyQXJyYXkoODApO2NsYXNzIE9uIGV4dGVuZHMgaG57Y29uc3RydWN0b3IoKXtzdXBlcigxMjgsNjQsMTYsITEpLHRoaXMuQWg9MTc3OTAzMzcwMyx0aGlzLkFsPS0yMDU3MzE1NzYsdGhpcy5CaD0tMTE1MDgzMzAxOSx0aGlzLkJsPS0yMDY3MDkzNzAxLHRoaXMuQ2g9MTAxMzkwNDI0Mix0aGlzLkNsPS0yMzc5MTU3Myx0aGlzLkRoPS0xNTIxNDg2NTM0LHRoaXMuRGw9MTU5NTc1MDEyOSx0aGlzLkVoPTEzNTk4OTMxMTksdGhpcy5FbD0tMTM3NzQwMjE1OSx0aGlzLkZoPS0xNjk0MTQ0MzcyLHRoaXMuRmw9NzI1NTExMTk5LHRoaXMuR2g9NTI4NzM0NjM1LHRoaXMuR2w9LTc5NTc3NzQ5LHRoaXMuSGg9MTU0MTQ1OTIyNSx0aGlzLkhsPTMyNzAzMzIwOX1nZXQoKXtjb25zdHtBaDplLEFsOnQsQmg6cixCbDpuLENoOm8sQ2w6aSxEaDphLERsOnMsRWg6dSxFbDpjLEZoOmwsRmw6ZCxHaDpmLEdsOnAsSGg6aCxIbDpnfT10aGlzO3JldHVybltlLHQscixuLG8saSxhLHMsdSxjLGwsZCxmLHAsaCxnXX1zZXQoZSx0LHIsbixvLGksYSxzLHUsYyxsLGQsZixwLGgsZyl7dGhpcy5BaD0wfGUsdGhpcy5BbD0wfHQsdGhpcy5CaD0wfHIsdGhpcy5CbD0wfG4sdGhpcy5DaD0wfG8sdGhpcy5DbD0wfGksdGhpcy5EaD0wfGEsdGhpcy5EbD0wfHMsdGhpcy5FaD0wfHUsdGhpcy5FbD0wfGMsdGhpcy5GaD0wfGwsdGhpcy5GbD0wfGQsdGhpcy5HaD0wfGYsdGhpcy5HbD0wfHAsdGhpcy5IaD0wfGgsdGhpcy5IbD0wfGd9cHJvY2VzcyhlLHQpe2ZvcihsZXQgcj0wO3I8MTY7cisrLHQrPTQpa25bcl09ZS5nZXRVaW50MzIodCksSW5bcl09ZS5nZXRVaW50MzIodCs9NCk7Zm9yKGxldCBlPTE2O2U8ODA7ZSsrKXtjb25zdCB0PTB8a25bZS0xNV0scj0wfEluW2UtMTVdLG49Q24ucm90clNIKHQsciwxKV5Dbi5yb3RyU0godCxyLDgpXkNuLnNoclNIKHQsciw3KSxvPUNuLnJvdHJTTCh0LHIsMSleQ24ucm90clNMKHQsciw4KV5Dbi5zaHJTTCh0LHIsNyksaT0wfGtuW2UtMl0sYT0wfEluW2UtMl0scz1Dbi5yb3RyU0goaSxhLDE5KV5Dbi5yb3RyQkgoaSxhLDYxKV5Dbi5zaHJTSChpLGEsNiksdT1Dbi5yb3RyU0woaSxhLDE5KV5Dbi5yb3RyQkwoaSxhLDYxKV5Dbi5zaHJTTChpLGEsNiksYz1Dbi5hZGQ0TChvLHUsSW5bZS03XSxJbltlLTE2XSksbD1Dbi5hZGQ0SChjLG4scyxrbltlLTddLGtuW2UtMTZdKTtrbltlXT0wfGwsSW5bZV09MHxjfWxldHtBaDpyLEFsOm4sQmg6byxCbDppLENoOmEsQ2w6cyxEaDp1LERsOmMsRWg6bCxFbDpkLEZoOmYsRmw6cCxHaDpoLEdsOmcsSGg6eSxIbDpifT10aGlzO2ZvcihsZXQgZT0wO2U8ODA7ZSsrKXtjb25zdCB0PUNuLnJvdHJTSChsLGQsMTQpXkNuLnJvdHJTSChsLGQsMTgpXkNuLnJvdHJCSChsLGQsNDEpLHY9Q24ucm90clNMKGwsZCwxNCleQ24ucm90clNMKGwsZCwxOCleQ24ucm90ckJMKGwsZCw0MSksbT1sJmZefmwmaCxUPWQmcF5+ZCZnLHc9Q24uYWRkNUwoYix2LFQsTW5bZV0sSW5bZV0pLEE9Q24uYWRkNUgodyx5LHQsbSxFbltlXSxrbltlXSksUD0wfHcsVz1Dbi5yb3RyU0gocixuLDI4KV5Dbi5yb3RyQkgocixuLDM0KV5Dbi5yb3RyQkgocixuLDM5KSxCPUNuLnJvdHJTTChyLG4sMjgpXkNuLnJvdHJCTChyLG4sMzQpXkNuLnJvdHJCTChyLG4sMzkpLEM9ciZvXnImYV5vJmEsRT1uJmlebiZzXmkmczt5PTB8aCxiPTB8ZyxoPTB8ZixnPTB8cCxmPTB8bCxwPTB8ZCwoe2g6bCxsOmR9PUNuLmFkZCgwfHUsMHxjLDB8QSwwfFApKSx1PTB8YSxjPTB8cyxhPTB8byxzPTB8aSxvPTB8cixpPTB8bjtjb25zdCBNPUNuLmFkZDNMKFAsQixFKTtyPUNuLmFkZDNIKE0sQSxXLEMpLG49MHxNfSh7aDpyLGw6bn09Q24uYWRkKDB8dGhpcy5BaCwwfHRoaXMuQWwsMHxyLDB8bikpLCh7aDpvLGw6aX09Q24uYWRkKDB8dGhpcy5CaCwwfHRoaXMuQmwsMHxvLDB8aSkpLCh7aDphLGw6c309Q24uYWRkKDB8dGhpcy5DaCwwfHRoaXMuQ2wsMHxhLDB8cykpLCh7aDp1LGw6Y309Q24uYWRkKDB8dGhpcy5EaCwwfHRoaXMuRGwsMHx1LDB8YykpLCh7aDpsLGw6ZH09Q24uYWRkKDB8dGhpcy5FaCwwfHRoaXMuRWwsMHxsLDB8ZCkpLCh7aDpmLGw6cH09Q24uYWRkKDB8dGhpcy5GaCwwfHRoaXMuRmwsMHxmLDB8cCkpLCh7aCxsOmd9PUNuLmFkZCgwfHRoaXMuR2gsMHx0aGlzLkdsLDB8aCwwfGcpKSwoe2g6eSxsOmJ9PUNuLmFkZCgwfHRoaXMuSGgsMHx0aGlzLkhsLDB8eSwwfGIpKSx0aGlzLnNldChyLG4sbyxpLGEscyx1LGMsbCxkLGYscCxoLGcseSxiKX1yb3VuZENsZWFuKCl7a24uZmlsbCgwKSxJbi5maWxsKDApfWRlc3Ryb3koKXt0aGlzLmJ1ZmZlci5maWxsKDApLHRoaXMuc2V0KDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDApfX1jbGFzcyB4biBleHRlbmRzIE9ue2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLkFoPTU3MzY0NTIwNCx0aGlzLkFsPS02NDIyNzU0MCx0aGlzLkJoPS0xNjIxNzk0OTA5LHRoaXMuQmw9LTkzNDUxNzU2Nix0aGlzLkNoPTU5Njg4MzU2Myx0aGlzLkNsPTE4Njc3NTU4NTcsdGhpcy5EaD0tMTc3NDY4NDM5MSx0aGlzLkRsPTE0OTc0MjY2MjEsdGhpcy5FaD0tMTc3NTc0NzM1OCx0aGlzLkVsPS0xNDY3MDIzMzg5LHRoaXMuRmg9LTExMDExMjgxNTUsdGhpcy5GbD0xNDAxMzA1NDkwLHRoaXMuR2g9NzIxNTI1MjQ0LHRoaXMuR2w9NzQ2OTYxMDY2LHRoaXMuSGg9MjQ2ODg1ODUyLHRoaXMuSGw9LTIxMTc3ODQ0MTQsdGhpcy5vdXRwdXRMZW49MzJ9fWNsYXNzIFNuIGV4dGVuZHMgT257Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuQWg9LTg3Njg5NjkzMSx0aGlzLkFsPS0xMDU2NTk2MjY0LHRoaXMuQmg9MTY1NDI3MDI1MCx0aGlzLkJsPTkxNDE1MDY2Myx0aGlzLkNoPS0xODU2NDM3OTI2LHRoaXMuQ2w9ODEyNzAyOTk5LHRoaXMuRGg9MzU1NDYyMzYwLHRoaXMuRGw9LTE1MDA1NDU5OSx0aGlzLkVoPTE3MzE0MDU0MTUsdGhpcy5FbD0tNDE5MTQzOSx0aGlzLkZoPS0xOTAwNzg3MDY1LHRoaXMuRmw9MTc1MDYwMzAyNSx0aGlzLkdoPS02MTk5NTg3NzEsdGhpcy5HbD0xNjk0MDc2ODM5LHRoaXMuSGg9MTIwMzA2MjgxMyx0aGlzLkhsPS0xMDkwODkxODY4LHRoaXMub3V0cHV0TGVuPTQ4fX1jb25zdCBGbj1sbigoKCk9Pm5ldyBPbikpO2xuKCgoKT0+bmV3IHhuKSksbG4oKCgpPT5uZXcgU24pKTt2YXIgX249ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYpcmV0dXJuIHNlbGY7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvdztpZigidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbClyZXR1cm4gZ2xvYmFsO3Rocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGxvY2F0ZSBnbG9iYWwgb2JqZWN0Iil9KCksUm49X24uY3J5cHRvfHxfbi5tc0NyeXB0bztmdW5jdGlvbiBObihlKXtzd2l0Y2goZSl7Y2FzZSJzaGEyNTYiOnJldHVybiB3bi5jcmVhdGUoKTtjYXNlInNoYTUxMiI6cmV0dXJuIEZuLmNyZWF0ZSgpfWFyKCExLCJpbnZhbGlkIGhhc2hpbmcgYWxnb3JpdGhtIG5hbWUiLCJhbGdvcml0aG0iLGUpfXZhciBVbj1mdW5jdGlvbihlKXtyZXR1cm4gTm4oInNoYTI1NiIpLnVwZGF0ZShlKS5kaWdlc3QoKX0sRG49ZnVuY3Rpb24oZSl7cmV0dXJuIE5uKCJzaGE1MTIiKS51cGRhdGUoZSkuZGlnZXN0KCl9LExuPVVuLGpuPURuLHpuPSExLCRuPSExO2Z1bmN0aW9uIFZuKGUpe3ZhciB0PWZyKGUsImRhdGEiKTtyZXR1cm4gYnIoTG4odCkpfWZ1bmN0aW9uIEduKGUpe3ZhciB0PWZyKGUsImRhdGEiKTtyZXR1cm4gYnIoam4odCkpfVZuLl89VW4sVm4ubG9jaz1mdW5jdGlvbigpe3puPSEwfSxWbi5yZWdpc3Rlcj1mdW5jdGlvbihlKXtpZih6bil0aHJvdyBuZXcgRXJyb3IoInNoYTI1NiBpcyBsb2NrZWQiKTtMbj1lfSxPYmplY3QuZnJlZXplKFZuKSxHbi5fPURuLEduLmxvY2s9ZnVuY3Rpb24oKXskbj0hMH0sR24ucmVnaXN0ZXI9ZnVuY3Rpb24oZSl7aWYoJG4pdGhyb3cgbmV3IEVycm9yKCJzaGE1MTIgaXMgbG9ja2VkIik7am49ZX0sT2JqZWN0LmZyZWV6ZShWbik7dmFyIEhuPSExLEtuPWZ1bmN0aW9uKGUsdCxyLG4sbyl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxyLG4sbyl7dmFyIGk9e3NoYTI1Njp3bixzaGE1MTI6Rm59W29dO3JldHVybiBhcihudWxsIT1pLCJpbnZhbGlkIHBia2RmMiBhbGdvcml0aG0iLCJhbGdvcml0aG0iLG8pLHBuKGksZSx0LHtjOnIsZGtMZW46bn0pfShlLHQscixuLG8pfSxabj1LbjtmdW5jdGlvbiBxbihlLHQscixuLG8pe3ZhciBpPWZyKGUsInBhc3N3b3JkIiksYT1mcih0LCJzYWx0Iik7cmV0dXJuIGJyKFpuKGksYSxyLG4sbykpfWZ1bmN0aW9uIEpuKGUsdCxyLG4sbyl7aWYoIkJBRF9QUkVGSVgiPT09ZXx8IlVORVhQRUNURURfQ09OVElOVUUiPT09ZSl7Zm9yKHZhciBpPTAsYT10KzE7YTxyLmxlbmd0aCYmclthXT4+Nj09MjthKyspaSsrO3JldHVybiBpfXJldHVybiJPVkVSUlVOIj09PWU/ci5sZW5ndGgtdC0xOjB9cW4uXz1Lbixxbi5sb2NrPWZ1bmN0aW9uKCl7SG49ITB9LHFuLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe2lmKEhuKXRocm93IG5ldyBFcnJvcigicGJrZGYyIGlzIGxvY2tlZCIpO1puPWV9LE9iamVjdC5mcmVlemUocW4pO3ZhciBZbj1PYmplY3QuZnJlZXplKHtlcnJvcjpmdW5jdGlvbihlLHQscixuLG8pe2FyKCExLCJpbnZhbGlkIGNvZGVwb2ludCBhdCBvZmZzZXQgIi5jb25jYXQodCwiOyAiKS5jb25jYXQoZSksImJ5dGVzIixyKX0saWdub3JlOkpuLHJlcGxhY2U6ZnVuY3Rpb24oZSx0LHIsbixvKXtyZXR1cm4iT1ZFUkxPTkciPT09ZT8oYXIoIm51bWJlciI9PXR5cGVvZiBvLCJpbnZhbGlkIGJhZCBjb2RlIHBvaW50IGZvciByZXBsYWNlbWVudCIsImJhZENvZGVwb2ludCIsbyksbi5wdXNoKG8pLDApOihuLnB1c2goNjU1MzMpLEpuKGUsdCxyKSl9fSk7ZnVuY3Rpb24gWG4oZSx0KXtudWxsIT10JiYoY3IodCksZT1lLm5vcm1hbGl6ZSh0KSk7Zm9yKHZhciByPVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIG89ZS5jaGFyQ29kZUF0KG4pO2lmKG88MTI4KXIucHVzaChvKTtlbHNlIGlmKG88MjA0OClyLnB1c2gobz4+NnwxOTIpLHIucHVzaCg2MyZvfDEyOCk7ZWxzZSBpZig1NTI5Nj09KDY0NTEyJm8pKXtuKys7dmFyIGk9ZS5jaGFyQ29kZUF0KG4pO2FyKG48ZS5sZW5ndGgmJjU2MzIwPT0oNjQ1MTImaSksImludmFsaWQgc3Vycm9nYXRlIHBhaXIiLCJzdHIiLGUpO3ZhciBhPTY1NTM2KygoMTAyMyZvKTw8MTApKygxMDIzJmkpO3IucHVzaChhPj4xOHwyNDApLHIucHVzaChhPj4xMiY2M3wxMjgpLHIucHVzaChhPj42JjYzfDEyOCksci5wdXNoKDYzJmF8MTI4KX1lbHNlIHIucHVzaChvPj4xMnwyMjQpLHIucHVzaChvPj42JjYzfDEyOCksci5wdXNoKDYzJm98MTI4KX1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkocil9ZnVuY3Rpb24gUW4oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0KXtudWxsPT10JiYodD1Zbi5lcnJvcik7Zm9yKHZhciByPWZyKGUsImJ5dGVzIiksbj1bXSxvPTA7bzxyLmxlbmd0aDspe3ZhciBpPXJbbysrXTtpZihpPj43IT0wKXt2YXIgYT1udWxsLHM9bnVsbDtpZigxOTI9PSgyMjQmaSkpYT0xLHM9MTI3O2Vsc2UgaWYoMjI0PT0oMjQwJmkpKWE9MixzPTIwNDc7ZWxzZXtpZigyNDAhPSgyNDgmaSkpe28rPXQoMTI4PT0oMTkyJmkpPyJVTkVYUEVDVEVEX0NPTlRJTlVFIjoiQkFEX1BSRUZJWCIsby0xLHIsbik7Y29udGludWV9YT0zLHM9NjU1MzV9aWYoby0xK2E+PXIubGVuZ3RoKW8rPXQoIk9WRVJSVU4iLG8tMSxyLG4pO2Vsc2V7Zm9yKHZhciB1PWkmKDE8PDgtYS0xKS0xLGM9MDtjPGE7YysrKXt2YXIgbD1yW29dO2lmKDEyOCE9KDE5MiZsKSl7bys9dCgiTUlTU0lOR19DT05USU5VRSIsbyxyLG4pLHU9bnVsbDticmVha311PXU8PDZ8NjMmbCxvKyt9bnVsbCE9PXUmJih1PjExMTQxMTE/bys9dCgiT1VUX09GX1JBTkdFIixvLTEtYSxyLG4sdSk6dT49NTUyOTYmJnU8PTU3MzQzP28rPXQoIlVURjE2X1NVUlJPR0FURSIsby0xLWEscixuLHUpOnU8PXM/bys9dCgiT1ZFUkxPTkciLG8tMS1hLHIsbix1KTpuLnB1c2godSkpfX1lbHNlIG4ucHVzaChpKX1yZXR1cm4gbn0oZSx0KS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlPD02NTUzNT9TdHJpbmcuZnJvbUNoYXJDb2RlKGUpOihlLT02NTUzNixTdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhlPj4xMCYxMDIzKSw1NjMyMCsoMTAyMyZlKSkpfSkpLmpvaW4oIiIpfWNvbnN0W2VvLHRvLHJvXT1bW10sW10sW11dLG5vPUJpZ0ludCgwKSxvbz1CaWdJbnQoMSksaW89QmlnSW50KDIpLGFvPUJpZ0ludCg3KSxzbz1CaWdJbnQoMjU2KSx1bz1CaWdJbnQoMTEzKTtmb3IobGV0IGU9MCx0PW9vLHI9MSxuPTA7ZTwyNDtlKyspe1tyLG5dPVtuLCgyKnIrMypuKSU1XSxlby5wdXNoKDIqKDUqbityKSksdG8ucHVzaCgoZSsxKSooZSsyKS8yJTY0KTtsZXQgbz1ubztmb3IobGV0IGU9MDtlPDc7ZSsrKXQ9KHQ8PG9vXih0Pj5hbykqdW8pJXNvLHQmaW8mJihvXj1vbzw8KG9vPDxCaWdJbnQoZSkpLW9vKTtyby5wdXNoKG8pfWNvbnN0W2NvLGxvXT1Dbi5zcGxpdChybywhMCksZm89KGUsdCxyKT0+cj4zMj9Dbi5yb3RsQkgoZSx0LHIpOkNuLnJvdGxTSChlLHQscikscG89KGUsdCxyKT0+cj4zMj9Dbi5yb3RsQkwoZSx0LHIpOkNuLnJvdGxTTChlLHQscik7Y2xhc3MgaG8gZXh0ZW5kcyBzbntjb25zdHJ1Y3RvcihlLHQscixuPSExLG89MjQpe2lmKHN1cGVyKCksdGhpcy5ibG9ja0xlbj1lLHRoaXMuc3VmZml4PXQsdGhpcy5vdXRwdXRMZW49cix0aGlzLmVuYWJsZVhPRj1uLHRoaXMucm91bmRzPW8sdGhpcy5wb3M9MCx0aGlzLnBvc091dD0wLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsUXIubnVtYmVyKHIpLDA+PXRoaXMuYmxvY2tMZW58fHRoaXMuYmxvY2tMZW4+PTIwMCl0aHJvdyBuZXcgRXJyb3IoIlNoYTMgc3VwcG9ydHMgb25seSBrZWNjYWstZjE2MDAgZnVuY3Rpb24iKTt0aGlzLnN0YXRlPW5ldyBVaW50OEFycmF5KDIwMCksdGhpcy5zdGF0ZTMyPWVuKHRoaXMuc3RhdGUpfWtlY2NhaygpeyFmdW5jdGlvbihlLHQ9MjQpe2NvbnN0IHI9bmV3IFVpbnQzMkFycmF5KDEwKTtmb3IobGV0IG49MjQtdDtuPDI0O24rKyl7Zm9yKGxldCB0PTA7dDwxMDt0Kyspclt0XT1lW3RdXmVbdCsxMF1eZVt0KzIwXV5lW3QrMzBdXmVbdCs0MF07Zm9yKGxldCB0PTA7dDwxMDt0Kz0yKXtjb25zdCBuPSh0KzgpJTEwLG89KHQrMiklMTAsaT1yW29dLGE9cltvKzFdLHM9Zm8oaSxhLDEpXnJbbl0sdT1wbyhpLGEsMSlecltuKzFdO2ZvcihsZXQgcj0wO3I8NTA7cis9MTApZVt0K3JdXj1zLGVbdCtyKzFdXj11fWxldCB0PWVbMl0sbz1lWzNdO2ZvcihsZXQgcj0wO3I8MjQ7cisrKXtjb25zdCBuPXRvW3JdLGk9Zm8odCxvLG4pLGE9cG8odCxvLG4pLHM9ZW9bcl07dD1lW3NdLG89ZVtzKzFdLGVbc109aSxlW3MrMV09YX1mb3IobGV0IHQ9MDt0PDUwO3QrPTEwKXtmb3IobGV0IG49MDtuPDEwO24rKylyW25dPWVbdCtuXTtmb3IobGV0IG49MDtuPDEwO24rKyllW3Qrbl1ePX5yWyhuKzIpJTEwXSZyWyhuKzQpJTEwXX1lWzBdXj1jb1tuXSxlWzFdXj1sb1tuXX1yLmZpbGwoMCl9KHRoaXMuc3RhdGUzMix0aGlzLnJvdW5kcyksdGhpcy5wb3NPdXQ9MCx0aGlzLnBvcz0wfXVwZGF0ZShlKXtRci5leGlzdHModGhpcyk7Y29uc3R7YmxvY2tMZW46dCxzdGF0ZTpyfT10aGlzLG49KGU9YW4oZSkpLmxlbmd0aDtmb3IobGV0IG89MDtvPG47KXtjb25zdCBpPU1hdGgubWluKHQtdGhpcy5wb3Msbi1vKTtmb3IobGV0IHQ9MDt0PGk7dCsrKXJbdGhpcy5wb3MrK11ePWVbbysrXTt0aGlzLnBvcz09PXQmJnRoaXMua2VjY2FrKCl9cmV0dXJuIHRoaXN9ZmluaXNoKCl7aWYodGhpcy5maW5pc2hlZClyZXR1cm47dGhpcy5maW5pc2hlZD0hMDtjb25zdHtzdGF0ZTplLHN1ZmZpeDp0LHBvczpyLGJsb2NrTGVuOm59PXRoaXM7ZVtyXV49dCwwIT0oMTI4JnQpJiZyPT09bi0xJiZ0aGlzLmtlY2NhaygpLGVbbi0xXV49MTI4LHRoaXMua2VjY2FrKCl9d3JpdGVJbnRvKGUpe1FyLmV4aXN0cyh0aGlzLCExKSxRci5ieXRlcyhlKSx0aGlzLmZpbmlzaCgpO2NvbnN0IHQ9dGhpcy5zdGF0ZSx7YmxvY2tMZW46cn09dGhpcztmb3IobGV0IG49MCxvPWUubGVuZ3RoO248bzspe3RoaXMucG9zT3V0Pj1yJiZ0aGlzLmtlY2NhaygpO2NvbnN0IGk9TWF0aC5taW4oci10aGlzLnBvc091dCxvLW4pO2Uuc2V0KHQuc3ViYXJyYXkodGhpcy5wb3NPdXQsdGhpcy5wb3NPdXQraSksbiksdGhpcy5wb3NPdXQrPWksbis9aX1yZXR1cm4gZX14b2ZJbnRvKGUpe2lmKCF0aGlzLmVuYWJsZVhPRil0aHJvdyBuZXcgRXJyb3IoIlhPRiBpcyBub3QgcG9zc2libGUgZm9yIHRoaXMgaW5zdGFuY2UiKTtyZXR1cm4gdGhpcy53cml0ZUludG8oZSl9eG9mKGUpe3JldHVybiBRci5udW1iZXIoZSksdGhpcy54b2ZJbnRvKG5ldyBVaW50OEFycmF5KGUpKX1kaWdlc3RJbnRvKGUpe2lmKFFyLm91dHB1dChlLHRoaXMpLHRoaXMuZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJkaWdlc3QoKSB3YXMgYWxyZWFkeSBjYWxsZWQiKTtyZXR1cm4gdGhpcy53cml0ZUludG8oZSksdGhpcy5kZXN0cm95KCksZX1kaWdlc3QoKXtyZXR1cm4gdGhpcy5kaWdlc3RJbnRvKG5ldyBVaW50OEFycmF5KHRoaXMub3V0cHV0TGVuKSl9ZGVzdHJveSgpe3RoaXMuZGVzdHJveWVkPSEwLHRoaXMuc3RhdGUuZmlsbCgwKX1fY2xvbmVJbnRvKGUpe2NvbnN0e2Jsb2NrTGVuOnQsc3VmZml4OnIsb3V0cHV0TGVuOm4scm91bmRzOm8sZW5hYmxlWE9GOml9PXRoaXM7cmV0dXJuIGV8fChlPW5ldyBobyh0LHIsbixpLG8pKSxlLnN0YXRlMzIuc2V0KHRoaXMuc3RhdGUzMiksZS5wb3M9dGhpcy5wb3MsZS5wb3NPdXQ9dGhpcy5wb3NPdXQsZS5maW5pc2hlZD10aGlzLmZpbmlzaGVkLGUucm91bmRzPW8sZS5zdWZmaXg9cixlLm91dHB1dExlbj1uLGUuZW5hYmxlWE9GPWksZS5kZXN0cm95ZWQ9dGhpcy5kZXN0cm95ZWQsZX19Y29uc3QgZ289KGUsdCxyKT0+bG4oKCgpPT5uZXcgaG8odCxlLHIpKSkseW89KGdvKDYsMTQ0LDI4KSxnbyg2LDEzNiwzMiksZ28oNiwxMDQsNDgpLGdvKDYsNzIsNjQpLGdvKDEsMTQ0LDI4KSxnbygxLDEzNiwzMikpLGJvPShnbygxLDEwNCw0OCksZ28oMSw3Miw2NCksKGUsdCxyKT0+ZnVuY3Rpb24oZSl7Y29uc3QgdD0odCxyKT0+ZShyKS51cGRhdGUoYW4odCkpLmRpZ2VzdCgpLHI9ZSh7fSk7cmV0dXJuIHQub3V0cHV0TGVuPXIub3V0cHV0TGVuLHQuYmxvY2tMZW49ci5ibG9ja0xlbix0LmNyZWF0ZT10PT5lKHQpLHR9KCgobj17fSk9Pm5ldyBobyh0LGUsdm9pZCAwPT09bi5ka0xlbj9yOm4uZGtMZW4sITApKSkpO2JvKDMxLDE2OCwxNiksYm8oMzEsMTM2LDMyKTt2YXIgdm89ITEsbW89ZnVuY3Rpb24oZSl7cmV0dXJuIHlvKGUpfSxUbz1tbztmdW5jdGlvbiB3byhlKXt2YXIgdD1mcihlLCJkYXRhIik7cmV0dXJuIGJyKFRvKHQpKX1mdW5jdGlvbiBBbyhlKXtyZXR1cm4gd28oWG4oZSkpfXdvLl89bW8sd28ubG9jaz1mdW5jdGlvbigpe3ZvPSEwfSx3by5yZWdpc3Rlcj1mdW5jdGlvbihlKXtpZih2byl0aHJvdyBuZXcgVHlwZUVycm9yKCJrZWNjYWsyNTYgaXMgbG9ja2VkIik7VG89ZX0sT2JqZWN0LmZyZWV6ZSh3byk7dmFyIFBvPSIgISMkJSYnKCkqKywtLi88PT4/QFtdXl9ge3x9fiIsV289L15bYS16XSokL2k7ZnVuY3Rpb24gQm8oZSx0KXt2YXIgcj05NztyZXR1cm4gZS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbil7cmV0dXJuIG49PT10P3IrKzpuLm1hdGNoKFdvKT9lLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShyKStuKToocj05NyxlLnB1c2gobikpLGV9KSxbXSl9dmFyIENvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXtnKHRoaXMsZSksVyh0aGlzLCJsb2NhbGUiLHZvaWQgMCksdHIodGhpcyx7bG9jYWxlOnR9KX1yZXR1cm4gdihlLFt7a2V5OiJzcGxpdCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudG9Mb3dlckNhc2UoKS5zcGxpdCgvXHMrL2cpfX0se2tleToiam9pbiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuam9pbigiICIpfX1dKSxlfSgpO2Z1bmN0aW9uIEVvKGUsdCxyKXtNbyhlLHQpLHQuc2V0KGUscil9ZnVuY3Rpb24gTW8oZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIGtvKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfXZhciBJbz1uZXcgV2Vha01hcCxPbz1uZXcgV2Vha01hcCx4bz1uZXcgV2Vha01hcCxTbz1uZXcgV2Vha1NldCxGbz1mdW5jdGlvbihlKXt3KG8sZSk7dmFyIHQscixuPSh0PW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSxuPVAodCk7aWYocil7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2UgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gbyhlLHQscil7dmFyIGksYSxzO3JldHVybiBnKHRoaXMsbyksTW8oYT1tKGk9bi5jYWxsKHRoaXMsZSkpLHM9U28pLHMuYWRkKGEpLEVvKG0oaSksSW8se3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLEVvKG0oaSksT28se3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLEVvKG0oaSkseG8se3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLFp0KG0oaSksSW8sdCksWnQobShpKSxPbyxyKSxadChtKGkpLHhvLG51bGwpLGl9cmV0dXJuIHYobyxbe2tleToiX2RhdGEiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLElvKX19LHtrZXk6Il9kZWNvZGVXb3JkcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYXIoIjAiPT09KGU9cXQodGhpcyxJbykpWzBdLCJ1bnN1cHBvcnRlZCBhdXdsIGRhdGEiLCJkYXRhIixlKSxmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1Qby5sZW5ndGgtMTtyPj0wO3ItLSllPWUuc3BsaXQoUG9bcl0pLmpvaW4odC5zdWJzdHJpbmcoMipyLDIqcisyKSk7dmFyIG49W10sbz1lLnJlcGxhY2UoLyg6fChbMC05XSl8KFtBLVpdW2Etel0qKSkvZywoZnVuY3Rpb24oZSx0LHIsbyl7aWYocilmb3IodmFyIGk9cGFyc2VJbnQocik7aT49MDtpLS0pbi5wdXNoKCI7Iik7ZWxzZSBuLnB1c2godC50b0xvd2VyQ2FzZSgpKTtyZXR1cm4iIn0pKTtpZihvKXRocm93IG5ldyBFcnJvcigibGVmdG92ZXJzOiAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShvKSkpO3JldHVybiBCbyhCbyhuLCI7IiksIjoiKX0oZS5zdWJzdHJpbmcoMSsyKlBvLmxlbmd0aCksZS5zdWJzdHJpbmcoMSwxKzIqUG8ubGVuZ3RoKSk7dmFyIGV9fSx7a2V5OiJnZXRXb3JkIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1rbyh0aGlzLFNvLF9vKS5jYWxsKHRoaXMpO3JldHVybiBhcihlPj0wJiZlPHQubGVuZ3RoLCJpbnZhbGlkIHdvcmQgaW5kZXg6ICIuY29uY2F0KGUpLCJpbmRleCIsZSksdFtlXX19LHtrZXk6ImdldFdvcmRJbmRleCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGtvKHRoaXMsU28sX28pLmNhbGwodGhpcykuaW5kZXhPZihlKX19XSksb30oQ28pO2Z1bmN0aW9uIF9vKCl7aWYobnVsbD09cXQodGhpcyx4bykpe3ZhciBlPXRoaXMuX2RlY29kZVdvcmRzKCk7aWYoQW8oZS5qb2luKCJcbiIpKyJcbiIpIT09cXQodGhpcyxPbykpdGhyb3cgbmV3IEVycm9yKCJCSVAzOSBXb3JkbGlzdCBmb3IgIi5jb25jYXQodGhpcy5sb2NhbGUsIiBGQUlMRUQiKSk7WnQodGhpcyx4byxlKX1yZXR1cm4gcXQodGhpcyx4byl9dmFyIFJvPSIwZXJsZW9uYWxvcmVuc2VpbmNlcmVnZXN0aWNpdFN0YW52ZXRlYXJjdHNzaSNjaDJBdGhjayZ0bmVMbDBBbmQjSWwueUxlT3V0Tz1TfFMlYi9yYUBTdXJkVScwQ2VbQ2lkfENvdW50Q3UnSGllPUlkT3UsLVF1aSpSb1tUVF1UJVQqW1R1JDBBcHRERC10RCpbSnUsTS5VbHRWPClWaSkwUm9iLTBGYWlyRiVkUmFpZDBBKEVFbnRSZWUwRWFkME1SUnAldFMhX3JtQnVtQ29ob2xFcnRJJkxMZXlMb3dNbyxPfVBoYVJlYWR5U29UIFdheXMwQT51ckF6KGdPbmdPdW50VSdkMEFseSxDaCVDaXxHIEchR3J5SW0kSyFOb3VuKU51JE9gIFN3IFQmbmFUaXF1ZVhpZXR5WTFBcnRPbG9neVBlP1AhUHJvPVJpbDFDaEN0LUVhRW5hR3VlTU1lZE0lTXlPdW5kUjwrUmUsUmk9Um93VFRlZmFAVGksVHclazBLUGVAU2F1bHRTZXRTaSxTdW1lVGhtYTBIIT5PbVRhe1QmZFQudWRlVHJhQDBDdF1ELkd1LE50VGglVG9UdW1uMEVyYStPY2Fkb09pZDBBa2VBKkF5RXNvbWVGdWxLdz9kMElzOkJ5Q2hlbCVDI0QrR0w8KUxjI3l+TWJvb048YU5uIFJSZWx5UmdhKFIqbFNlUy1Ta2V0VHQhM0FeQW5BdXR5Q2F1J0NvbWVFZkYlZUcoSGE9SChkTGllPUxvd0x0Tl5OZWYuL1RyYXlUdCBUd2UmWSNkM0N5YyFES2VOZE9sb2d5UmRSYFR0IF97QWRlQW1lQW5rZXRBLEVha0VbSW5kT29kT1tvbU91J1VlVXJVc2hfcmRBdER5SWxNYk5lTnVzT2tPLFJkIFIoZ1Jyb3dTc1R0b21VbilYWV97ZXRBKEFuZEFbQT1FYWRFZXplSXtJZCtJZWZJZ2h0SW5nSXNrT2Njb2xpT2smT256ZU9vbU9gIE93blVzaDJCYiFEZHlEK3RGZiRvSWxkTGJMa0whdE5kIU5rIFJkJlJnIFIsU1MoZVtTeVR0IFkgWno6QmJhK0IoQiFDdHVzR2VLZX5MbU0gYU1wTk4kTilsTmR5Tm4jTm9lTnZhc055I1BhYiFQLiRQdGEoUlJiI1JkUmdvUnBldFJyeVJ0U2VTaFMoby8hU3UkVFQkb2dUXlRlZyV5VHQhVWdodFUnVXRdVmUzSWwoZ0wgeU18TnN1c050dXJ5UmUkUnRhKF9pckFsa0FtcF1BbitBb3NBcHQgQXIrQSdBdEVhcEV7RWUnRWZFcnJ5RSxJeyZJZWZJbGRJbX15T2kpT28nUiMtVXshVW5rVXJuMEc/Tm5hbSNSYyFUaXomVHlWaWxfaW1BcEFyaWZ5QXdBeUU8RXJrRXYgSXtJfElmZkltYkluLUlwT3tPZ08nT2BPdWRPd25VYlVtcFUsIFV0Xl9eQSxDI3V0RGVGZmVlSWxJbkwhQEwlTHVtbk1iKGVNZU1mJXRNLU1tI01wPHlOYyB0TmR1QE5maXJtTmcqW059QE5zaWQgTnRyb2xOdigpT2tPbFBwIFB5UiRSZVJuUipAL1R0I1VeVW50cnlVcCFVcidVcyhWIFlvPl97QWQhQWZ0QW1BfUFzaEF0IEF3bEF6eUVhbUVkLkVla0V3SXtldEltZUlzcEl0LU9wT1tPdV5Pd2RVY2kkVWVsVWknVW1iIVVuXlVzaFlZLCQyQmVMdHUqUFBibz9kUmlvdXNScnxSdGEoUj1TaF0vb21UZTNDITpETWErTXBOKU5nIFIoZ1NoVWdodCBXblkzQWxCYT5CcmlzQ2FkZUNlbWIgQ2lkZUNsKGVDJWE+QyphJ0VyRiYnRihlRnlHKmVMYXlMaXYgTTxkTWknTmkkTnRpLE55UD90UCZkUG9zLlBgUHV0eVJpPVNjcmliZVMgdFNpZ25Ta1NwYWlyL3JveVRhaWxUZUBWZWxvcFZpKVZvPjNBZ3JhbUFsQW0jZEFyeUNlRSdsRXRGZiBHLiRHbi55TGVtbWFObiBOb3NhdXJSZUBSdFNhZyplU2NvdiBTZWEnU2hTbWlbUyVkIFNwbGF5LzwpViB0VmlkZVYlKVp6eTVDdCVDdW18R35McGgoTWEoTmE+TmtleU4lT3JTZVViIVZlX2Z0QWcjQW1hQSwtQXdFYW1FW0lmdElsbElua0lwST1PcFVtWTJDa01iTmVSKGcvVF5UeTFBcmYxTmFtLTpHIEchUmx5Um5SYFNpbHkvU3kxSG9PbG9neU9ub215MEdlSXRVY2E+MUYldDBHMUdodFRoIDJCb3dEIEVAci1FZzx0RW18RXBoPHRFdmF0JUk+U2UwQj9rQm9keUJyYSlFcitPdF1QbG95UG93IFB0eTBBYiFBQEREIVtEJSdFbXlFcmd5RiUpR2ErRyhlSDwpSm95TGksT3VnaFItaFJvbGxTdSpUIFRpKlRyeVZlbG9wZTFJc29kZTBVJFVpcDBBQSdPZGVPc11SJVVwdDBDYXBlU2F5UyYpVGE+MEVybiRILXMxSWQmKUlsT2tlT2w9MUFAQW1wIUNlW0NoPCtDLmVDbHVkZUN1J0VjdT5FcmNpJ0hhdSxIaWIuSSFJLEl0T3QtUDxkUGVAUGkqUGxhKFBvJ1AqW1QmZFRyYTBFRWJyb3c6QnItQ2VDdWx0eURlSW50SWB+TCdNZU1pbHlNb3VzTk5jeU50YXN5Um1TaF1UVCRUaCBUaWd1ZVVsdFYlLmUzQXR1KkJydT95RCAkRUVkRWxNYSFOKS9pdiRUXlYgVzNCIEN0XUVsZEd1KkxlTG1MdCBOJE5kTmVOZyBOaXNoUmVSbVIsU2MkU2hUVH1bWF9nQW1lQXNoQXRBdiVFZUlnaHRJcE9hdE97TyVPdyBVaWRVc2hZX21DdXNHSWxMZH5vd09kT3RSKVJlLFIrdFJrUnR1fVJ1bVJ3P2RTc2lsLyBVbmRYX2dpIUFtZUVxdXxFc2hJJmRJbitPZ09udE8sT3duT3omVS4yRWxOTm55Um5hKVJ5VHUqOkQrdEluTGF4eX4geU1lUFJhK1JiYStSZCZSbC1SbXxTU3BUZVRoIFUrWmUzTiAkTml1c04qTnQhTnUoZS91KjJPLDBBbnRGdEdnIU5nIFJhZmZlUmxWZV9kQW4pQSpBW0lkZUltcCdPYmVPb21PcnlPPU93VWVfdERkZVtMZE9kTydSaWxsYVNwZWxTc2lwViBuV25fYkEpQShBbnRBcGVBW0F2LnlFYXRFJklkSWVmSXRPYyB5T3VwT3dVbnRfcmRFW0lkZUlsdEl0P04zTTpCLklyTGZNbSBNLCBOZFBweVJiJVJkUnNoUj0sVFZlV2taP2QzQWRBbGBBcnRBdnlEK2hvZ0lnaHR+b0xtZXRMcE5SbzNEZCZHaH5OdFBSZS8leTVCYnlDa2V5TGRMZUxpZGF5fm93TWVOZXlPZFBlUm5SciVSJ1NwLiQvVGVsVXJWIDVCR2VNPE1iIU0lTmQqZE5ncnlOdFJkIVJyeVJ0U2I8ZDNCcmlkOjFFT24wRWFFbnRpZnlMZTJOJWU0TExlZyRMfVswQStJdGE+TSYnTXV9UGFAUG8nUHJvPVB1bCcwQ2hDbHVkZUNvbWVDKmEnRGV4RC1hPkRvJUR1LHJ5Rjx0RmwtdEYlbUhhIUggLkl0aSRKZUBKdXJ5TWE+TiBOb2N8UHV0UXVpcnlTPGVTZUBTaWRlU3BpKi8kbFRhQFQgZSxUb1ZlLFYuZVZvbD0zT24wTDxkT2xhPlN1ZTBFbTFPcnk6Q2tldEd1P1JaejNBbG91c0Fuc355V2VsOUJJbktlVXJ9eVk1RCtJKU1wTmchTmklTmsvOk5nP29vM0VuRXBUXnVwWTNDa0REfXlOZE5nZG9tU3NUVF4mVGVUdCZXaTRFZUlmZU97T3c6QkJlbEIlRGQgRHlLZU1wTmd1YStQdG9wUitUIFQoVWdoVW5kcnlWYVdXbldzdS5ZIFp5M0FkIEFmQXJuQT1DdHUqRnRHRyRHJmRJc3UqTSNOZE5nYE5zT3A/ZFNzI1R0IFZlbDNBckIgdHlCcj95QyYnRmVGdEdodEtlTWJNLk5rT25RdWlkL1R0IVZlWj9kNUFkQW5CLCBDJENrRy1OZWx5TmdPcFR0IHlVZFVuK1ZlWSQ1Q2t5R2dhK01iIE4/Tl5YdXJ5M1ItczpDaChlREctR310SWRJbEluSiVLZU1tJE5OYStOZGE+TmdvTnNdTnUkUCFSYiFSXlJnKFIoZVJrZXRScmlhK1NrU3MvIFReVCBpJFRoVHJpeFR0IFhpbXVtWmUzQWRvd0FuQXN1KkF0Q2g8LUQkRGlhTG9keUx0TWIgTSV5TnRdTnVSY3lSK1IuUnJ5U2hTc2ErVCRUaG9kM0RkIURuaWdodExrfl1NLU5kTmltdW1OJU51PlJhYyFSciVTIHlTcy9ha2VYWGVkWHR1KjVCaSFEZWxEaWZ5TU18Ti4lTmtleU4sIE5gT25SJFJlUm4oZ1NxdS5vVGggVF1UJVVudGEoVSdWZVZpZTVDaEZmKExlTHRpcGx5U2MhU2V1bVNocm9vbVMtL1R1JDNTZWxmLyB5VGg6ST1NZVBrKFJyb3cveVRdVHUqM0FyQ2tFZEdhdGk9RyFASWAgUGhld1I9L1RUdyVrVXRyJFYgV3NYdDNDZUdodDVCIUknTShlZU9kIVJtJFJgU2VUYWIhVGVUaChnVGkpVmVsVzVDIT9NYiBSJ1Q6SzBFeUplQExpK1NjdSpTID1UYShWaW91czBDdXJFPFRvYiAwT3IxRkYgRmkpVCYyTDFBeTBEST1ZbXAtMEl0MENlRUkjTChlTHkxRW5FcmFJbl1QbydUXTFBbitCLkNoP2REIEQoP3lHPEl8SWcoJFBoPDBUci1oMEggMFRkbyVUIFRwdXRUc2lkZTBBbEVuRXIwTk4gMFlnJjAvIDBPfTpDdERkIUdlSXJMYSlMbU5kYU5lbE4tTmAgUCBSYWRlUnxSa1Jyb3RSdHlTc1ReVGhUaXxUcm9sVHQgblUnVmVZbXwzQSlBbnV0QXJBczx0TC08Tk4kdHlOY2lsT3AhUHAgUmZlQFJtLlJzI1QyT31PdG9SYSdZcy0kMEFub0NuLUN0dSpFKUdHZSN+TG90TmtPfSBQZS9vbFReWnphXylBfXRBLC1BPkF5RWEnRWQrVXtVZ1VuKzJFbUV0SW50TD9MZUxpKU5kTnlPbFB1bD9SdF1TLl1Tc2liIS9UYXRvVHQgeVYgdHlXZCBXIF9AaSlBaSdFZC10RWYgRXBhKkVzfEV0dHlFdnxJKUlkZUltP3lJbnRJJS55SXMjSXZhPkl6ZU9iIW1PKVtPZHUpT2YuT2dyYW1PamVAT21vPk9vZk9wIHR5T3NwIE8+QE91ZE92aWRlMkJsLURkKGd+THBMJ01wayhOXlBpbFBweVJeYSdSLnlScG8nUidTaFRaeiEzUmFtaWQ6OTlBbC55QW50dW1BcnQgRSxdSXtJdEl6Tz46QmIuQ2NvI0NlQ2tEP0Rpb0lsSW5JJ355TXBOXk5kb21OK1BpZFJlVGVUaCBWJldaJTNBZHlBbEFzI0JlbEJ1aWxkQyRsQ2VpPUNpcGVDJWRDeWMhRHUpRiFARiVtRnUnR11HKnRHdWw/SmVATGF4TGVhJ0xpZWZMeU1hKE1lbWIgTShkTW89TmQgTmV3TnRPcCZQYWlyUGVhdFBsYSlQJXRRdWkqU2N1ZVNlbWIhU2ksU291cilTcCMnU3VsdFRpKlQqYXRUdXJuVW5dVmUkVmlld1c/ZDJZYG0wQkJiI0NlQ2hEZUQrRiFHaHRHaWROZ090UHAhU2tUdSRWJFYgNUFkQSxCb3RCdSxDa2V0TTwpT2ZPa2llT21TZVRhPlVnaFVuZFU+WSQ1QmIgRGVHTGVOTndheVIkOkREZCFEfVtGZUlsTGFkTG0jTCNMdEx1Pk1lTXAhTmRUaXNmeVRvc2hpVSlVc2ErVmVZMUEhQW5BKkF0dCBFfUhlbWVIb29sSSYpSVslc09ycF1PdXRSYXBSZSZSaXB0UnViMUFBcl5BcyNBdEMjZEMqdEN0XUN1ci55RWRFa0dtfExlQH5NKD9OaSVOJ050JilSaWVzUnZpKVNzXVR0IVR1cFYmX2Rvd0FmdEFsbG93QSpFZEVsbEVyaWZmSWVsZElmdEl9SXBJdiBPe09lT290T3BPcnRPdWxkIE89UmltcFJ1Z1VmZiFZMEJsKGdDa0RlRStHaHRHbkx8TGt+eUx2IE1pbD9NcCFOKU5nUiYvIFR1YT5YWmUxQT5FdF5JSWxsSW5JcnRVbGwwQWJBbUVlcEVuZCBJKUlkZUlnaHRJbU9nPE90T3dVc2gwQWxsQXJ0SSFPa2VPb2AwQXtBa2VBcElmZk93MEFwQ2MgQ2kkQ2tEYUZ0TD9MZGkgTGlkTHV0XUw9TWUjZU5nT25ScnlSdFVsVW5kVXBVcilVYDBBKUEqQXRpJEF3bkVha0VjaSRFZWRFbGxFbmRIIGVJKUlkIElrZUluSXIuTC5PaWxPbnMlTyNPcnRPdFJheVJlYWRSKGdZMFVhKlVlZXplVWlyKmxfYiFBZGl1bUFmZkErQWlyc0FtcEFuZEFydEE+QXlFYWtFZWxFbUVwRSpvSXtJbGxJbmdPe09tYV5PfU9vbE9yeU89UmE+Z3lSZWV0UmlrZVIjZ1J1Z2chVWR8VWZmVW1iIVkhMEJqZUBCbS5Cd2F5QylbQ2hEZCZGZiBHP0crLEl0TW0gTk5ueU4ndFAgUHBseVAqbWVSZVJmYSlSK1JwcmknUnJvdW5kUj15U3BlQC9hKDFBbGxvd0FtcEFwQXJtRT9FZXRJZnRJbUluZ0l0Xk9yZDFNYm9sTXB0b21SdXAvZW06QiFDayFHSWxMfExrTmtQZVIrdFNrL2VUdG9vWGkzQV5BbX5OTjx0Tm5pc050Um0vWHRfbmtBdEVtZUVuRSV5RSpFeUluZ0lzT3VnaHRSZWVSaT1Sb3dVbWJVbmQgMENrZXREZUcgTHRNYiBNZU55UFJlZFNzdWVUITVBLEJhY2NvRGF5RGRsIEVHZWAgSSF0SyZNYXRvTSVyb3dOZU5ndWVOaWdodE9sT2BQUC1QcCFSXlJuYWRvUnRvaSdTc1QkVXJpLFc/ZFcgV25ZX3tBZGVBZmYtQWctQShBbnNmIEFwQXNoQT1sQXlFYXRFZUVuZEkkSWJlSXtJZ2cgSW1JcE9waHlPdWIhVXtVZVVseVVtcGV0VSxVYFkyQmVJdF1NYiFOYU59bFJrZXlSblJ0ITFFbD1FbnR5SSlJbkksTzFQZVAtJDo1THk1QipsbGEwQWIhQXdhKkMhQ292IEQgRG9GYWlyRm9sZEhhcHB5SWYlbUlxdWVJdEl2ICdLbm93bkxve1RpbFVzdSRWZWlsMURhPkdyYWRlSG9sZE9uUCBTZXQxQjxHZTBBK0VFZEVmdWxFIVtVJDBJbC55OkM8dEN1dW1HdWVMaWRMIXlMPU5OaXNoUCVSaW91cy9VbHQzSC0hTD10TmQlTnR1Kk51ZVJiUmlmeVJzXVJ5UydsVCA8M0FiIUJyPHRDaW91c0N0JXlEZW9Fd35hK050YStPbChSdHUkUnVzU2FTLlN1JFQkVmlkNUMkSSlJZExjPG9MdW1lVGVZYSs6R2VHI0l0TGt+TG51dE50UmZhKlJtUnJpJVNoU3AvZVQgVmVZM0FsYEFwI0FyQSdsQWAgQkRkKGdFayZkSXJkTGNvbWUvVF8hQXRFYXRFZWxFbkUqSXBJc3AgMERlRGBGZUxkfk5OZG93TmVOZ05rTm4gTnQgUmVTZG9tU2VTaFR9WzVMZk08TmQgT2RPbFJkUmtSbGRScnlSYF9wRXtFLCFJLEk+T25nOjpSZDNBcn5vdzlVVW5nVWA6M0JyYVJvOU5lTyIsTm89IjB4M2M4YWNjMWU3YjA4ZDhlNzZmOWZkYTAxNWVmNDhkYzhjNzEwYTczY2I3ZTBmNzdiMmMxOGE5YjVhN2FkZGU2MCIsVW89bnVsbCxEbz1mdW5jdGlvbihlKXt3KG8sZSk7dmFyIHQscixuPSh0PW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSxuPVAodCk7aWYocil7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2UgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gbygpe3JldHVybiBnKHRoaXMsbyksbi5jYWxsKHRoaXMsImVuIixSbyxObyl9cmV0dXJuIHYobyxudWxsLFt7a2V5OiJ3b3JkbGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09VW8mJihVbz1uZXcgbyksVW99fV0pLG99KEZvKTtmdW5jdGlvbiBMbyhlKXtyZXR1cm4oMTw8ZSktMTw8OC1lJjI1NX1mdW5jdGlvbiBqbyhlLHQpe2NyKCJORktEIiksbnVsbD09dCYmKHQ9RG8ud29yZGxpc3QoKSk7dmFyIHI9dC5zcGxpdChlKTthcihyLmxlbmd0aCUzPT0wJiZyLmxlbmd0aD49MTImJnIubGVuZ3RoPD0yNCwiaW52YWxpZCBtbmVtb25pYyBsZW5ndGgiLCJtbmVtb25pYyIsIlsgUkVEQUNURUQgXSIpO2Zvcih2YXIgbj1uZXcgVWludDhBcnJheShNYXRoLmNlaWwoMTEqci5sZW5ndGgvOCkpLG89MCxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXQuZ2V0V29yZEluZGV4KHJbaV0ubm9ybWFsaXplKCJORktEIikpO2FyKGE+PTAsImludmFsaWQgbW5lbW9uaWMgd29yZCBhdCBpbmRleCAiLmNvbmNhdChpKSwibW5lbW9uaWMiLCJbIFJFREFDVEVEIF0iKTtmb3IodmFyIHM9MDtzPDExO3MrKylhJjE8PDEwLXMmJihuW28+PjNdfD0xPDw3LW8lOCksbysrfXZhciB1PTMyKnIubGVuZ3RoLzMsYz1MbyhyLmxlbmd0aC8zKTtyZXR1cm4gYXIoKGZyKFZuKG4uc2xpY2UoMCx1LzgpKSlbMF0mYyk9PShuW24ubGVuZ3RoLTFdJmMpLCJpbnZhbGlkIG1uZW1vbmljIGNoZWNrc3VtIiwibW5lbW9uaWMiLCJbIFJFREFDVEVEIF0iKSxicihuLnNsaWNlKDAsdS84KSl9ZnVuY3Rpb24gem8oZSx0KXthcihlLmxlbmd0aCU0PT0wJiZlLmxlbmd0aD49MTYmJmUubGVuZ3RoPD0zMiwiaW52YWxpZCBlbnRyb3B5IHNpemUiLCJlbnRyb3B5IiwiWyBSRURBQ1RFRCBdIiksbnVsbD09dCYmKHQ9RG8ud29yZGxpc3QoKSk7Zm9yKHZhciByPVswXSxuPTExLG89MDtvPGUubGVuZ3RoO28rKyluPjg/KHJbci5sZW5ndGgtMV08PD04LHJbci5sZW5ndGgtMV18PWVbb10sbi09OCk6KHJbci5sZW5ndGgtMV08PD1uLHJbci5sZW5ndGgtMV18PWVbb10+PjgtbixyLnB1c2goZVtvXSYoMTw8OC1uKS0xJjI1NSksbis9Myk7dmFyIGk9ZS5sZW5ndGgvNCxhPXBhcnNlSW50KFZuKGUpLnN1YnN0cmluZygyLDQpLDE2KSZMbyhpKTtyZXR1cm4gcltyLmxlbmd0aC0xXTw8PWkscltyLmxlbmd0aC0xXXw9YT4+OC1pLHQuam9pbihyLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0V29yZChlKX0pKSl9dmFyICRvPXt9LFZvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbixvLGkpe2codGhpcyxlKSxXKHRoaXMsInBocmFzZSIsdm9pZCAwKSxXKHRoaXMsInBhc3N3b3JkIix2b2lkIDApLFcodGhpcywid29yZGxpc3QiLHZvaWQgMCksVyh0aGlzLCJlbnRyb3B5Iix2b2lkIDApLG51bGw9PW8mJihvPSIiKSxudWxsPT1pJiYoaT1Eby53b3JkbGlzdCgpKSxscih0LCRvLCJNbmVtb25pYyIpLHRyKHRoaXMse3BocmFzZTpuLHBhc3N3b3JkOm8sd29yZGxpc3Q6aSxlbnRyb3B5OnJ9KX1yZXR1cm4gdihlLFt7a2V5OiJjb21wdXRlU2VlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1YbigibW5lbW9uaWMiK3RoaXMucGFzc3dvcmQsIk5GS0QiKTtyZXR1cm4gcW4oWG4odGhpcy5waHJhc2UsIk5GS0QiKSxlLDIwNDgsNjQsInNoYTUxMiIpfX1dLFt7a2V5OiJmcm9tUGhyYXNlIix2YWx1ZTpmdW5jdGlvbih0LHIsbil7dmFyIG89am8odCxuKTtyZXR1cm4gdD16byhmcihvKSxuKSxuZXcgZSgkbyxvLHQscixuKX19LHtrZXk6ImZyb21FbnRyb3B5Iix2YWx1ZTpmdW5jdGlvbih0LHIsbil7dmFyIG89ZnIodCwiZW50cm9weSIpLGk9em8obyxuKTtyZXR1cm4gbmV3IGUoJG8sYnIobyksaSxyLG4pfX0se2tleToiZW50cm9weVRvUGhyYXNlIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB6byhmcihlLCJlbnRyb3B5IiksdCl9fSx7a2V5OiJwaHJhc2VUb0VudHJvcHkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGpvKGUsdCl9fSx7a2V5OiJpc1ZhbGlkTW5lbW9uaWMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBqbyhlLHQpLCEwfWNhdGNoKGUpe31yZXR1cm4hMX19XSksZX0oKSxHbz0hMSxIbz1mdW5jdGlvbihlLHQscil7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9e3NoYTI1Njp3bixzaGE1MTI6Rm59W2VdO3JldHVybiBhcihudWxsIT1yLCJpbnZhbGlkIGhtYWMgYWxnb3JpdGhtIiwiYWxnb3JpdGhtIixlKSxmbi5jcmVhdGUocix0KX0oZSx0KS51cGRhdGUocikuZGlnZXN0KCl9LEtvPUhvO2Z1bmN0aW9uIFpvKGUsdCxyKXt2YXIgbj1mcih0LCJrZXkiKSxvPWZyKHIsImRhdGEiKTtyZXR1cm4gYnIoS28oZSxuLG8pKX1aby5fPUhvLFpvLmxvY2s9ZnVuY3Rpb24oKXtHbz0hMH0sWm8ucmVnaXN0ZXI9ZnVuY3Rpb24oZSl7aWYoR28pdGhyb3cgbmV3IEVycm9yKCJjb21wdXRlSG1hYyBpcyBsb2NrZWQiKTtLbz1lfSxPYmplY3QuZnJlZXplKFpvKTt2YXIgcW89QmlnSW50KDApLEpvPUJpZ0ludCgzNik7ZnVuY3Rpb24gWW8oZSl7Zm9yKHZhciB0PShlPWUudG9Mb3dlckNhc2UoKSkuc3Vic3RyaW5nKDIpLnNwbGl0KCIiKSxyPW5ldyBVaW50OEFycmF5KDQwKSxuPTA7bjw0MDtuKyspcltuXT10W25dLmNoYXJDb2RlQXQoMCk7Zm9yKHZhciBvPWZyKHdvKHIpKSxpPTA7aTw0MDtpKz0yKW9baT4+MV0+PjQ+PTgmJih0W2ldPXRbaV0udG9VcHBlckNhc2UoKSksKDE1Jm9baT4+MV0pPj04JiYodFtpKzFdPXRbaSsxXS50b1VwcGVyQ2FzZSgpKTtyZXR1cm4iMHgiK3Quam9pbigiIil9Zm9yKHZhciBYbz17fSxRbz0wO1FvPDEwO1FvKyspWG9bU3RyaW5nKFFvKV09U3RyaW5nKFFvKTtmb3IodmFyIGVpPTA7ZWk8MjY7ZWkrKylYb1tTdHJpbmcuZnJvbUNoYXJDb2RlKDY1K2VpKV09U3RyaW5nKDEwK2VpKTt2YXIgdGk9MTU7dmFyIHJpPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXt9LHQ9MDt0PDM2O3QrKyllWyIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiW3RdXT1CaWdJbnQodCk7cmV0dXJuIGV9KCk7ZnVuY3Rpb24gbmkoZSl7aWYoYXIoInN0cmluZyI9PXR5cGVvZiBlLCJpbnZhbGlkIGFkZHJlc3MiLCJhZGRyZXNzIixlKSxlLm1hdGNoKC9eKDB4KT9bMC05YS1mQS1GXXs0MH0kLykpe2Uuc3RhcnRzV2l0aCgiMHgiKXx8KGU9IjB4IitlKTt2YXIgdD1ZbyhlKTtyZXR1cm4gYXIoIWUubWF0Y2goLyhbQS1GXS4qW2EtZl0pfChbYS1mXS4qW0EtRl0pLyl8fHQ9PT1lLCJiYWQgYWRkcmVzcyBjaGVja3N1bSIsImFkZHJlc3MiLGUpLHR9aWYoZS5tYXRjaCgvXlhFWzAtOV17Mn1bMC05QS1aYS16XXszMCwzMX0kLykpe2FyKGUuc3Vic3RyaW5nKDIsNCk9PT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9KGU9KGU9ZS50b1VwcGVyQ2FzZSgpKS5zdWJzdHJpbmcoNCkrZS5zdWJzdHJpbmcoMCwyKSsiMDAiKS5zcGxpdCgiIikubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gWG9bZV19KSkuam9pbigiIik7dC5sZW5ndGg+PXRpOyl7dmFyIHI9dC5zdWJzdHJpbmcoMCx0aSk7dD1wYXJzZUludChyLDEwKSU5Nyt0LnN1YnN0cmluZyhyLmxlbmd0aCl9Zm9yKHZhciBuPVN0cmluZyg5OC1wYXJzZUludCh0LDEwKSU5Nyk7bi5sZW5ndGg8Mjspbj0iMCIrbjtyZXR1cm4gbn0oZSksImJhZCBpY2FwIGNoZWNrc3VtIiwiYWRkcmVzcyIsZSk7Zm9yKHZhciByPWZ1bmN0aW9uKGUpe2U9ZS50b0xvd2VyQ2FzZSgpO2Zvcih2YXIgdD1xbyxyPTA7cjxlLmxlbmd0aDtyKyspdD10KkpvK3JpW2Vbcl1dO3JldHVybiB0fShlLnN1YnN0cmluZyg0KSkudG9TdHJpbmcoMTYpO3IubGVuZ3RoPDQwOylyPSIwIityO3JldHVybiBZbygiMHgiK3IpfWFyKCExLCJpbnZhbGlkIGFkZHJlc3MiLCJhZGRyZXNzIixlKX1mdW5jdGlvbiBvaShlLHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSx0KXt2YXIgcj1udWxsPT1lP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKG51bGwhPXIpe3ZhciBuLG8saSxhLHM9W10sdT0hMCxjPSExO3RyeXtpZihpPShyPXIuY2FsbChlKSkubmV4dCwwPT09dCl7aWYoT2JqZWN0KHIpIT09cilyZXR1cm47dT0hMX1lbHNlIGZvcig7ISh1PShuPWkuY2FsbChyKSkuZG9uZSkmJihzLnB1c2gobi52YWx1ZSkscy5sZW5ndGghPT10KTt1PSEwKTt9Y2F0Y2goZSl7Yz0hMCxvPWV9ZmluYWxseXt0cnl7aWYoIXUmJm51bGwhPXIucmV0dXJuJiYoYT1yLnJldHVybigpLE9iamVjdChhKSE9PWEpKXJldHVybn1maW5hbGx5e2lmKGMpdGhyb3cgb319cmV0dXJuIHN9fShlLHQpfHxCdChlLHQpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9dmFyIGlpPW8oNTg1NiksYWk9by50KGlpLDIpO2NvbnN0IHNpPUJpZ0ludCgwKSx1aT1CaWdJbnQoMSksY2k9QmlnSW50KDIpLGxpPUJpZ0ludCgzKSxkaT1CaWdJbnQoOCksZmk9T2JqZWN0LmZyZWV6ZSh7YTpzaSxiOkJpZ0ludCg3KSxQOkJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIiksbjpCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmViYWFlZGNlNmFmNDhhMDNiYmZkMjVlOGNkMDM2NDE0MSIpLGg6dWksR3g6QmlnSW50KCI1NTA2NjI2MzAyMjI3NzM0MzY2OTU3ODcxODg5NTE2ODUzNDMyNjI1MDYwMzQ1Mzc3NzU5NDE3NTUwMDE4NzM2MDM4OTExNjcyOTI0MCIpLEd5OkJpZ0ludCgiMzI2NzA1MTAwMjA3NTg4MTY5NzgwODMwODUxMzA1MDcwNDMxODQ0NzEyNzMzODA2NTkyNDMyNzU5Mzg5MDQzMzU3NTczMzc0ODI0MjQiKSxiZXRhOkJpZ0ludCgiMHg3YWU5NmEyYjY1N2MwNzEwNmU2NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJmNTg5OTVjMTM5NmMyODcxOTUwMWVlIil9KSxwaT0oZSx0KT0+KGUrdC9jaSkvdCxoaT17YmV0YTpCaWdJbnQoIjB4N2FlOTZhMmI2NTdjMDcxMDZlNjQ0NzllYWMzNDM0ZTk5Y2YwNDk3NTEyZjU4OTk1YzEzOTZjMjg3MTk1MDFlZSIpLHNwbGl0U2NhbGFyKGUpe2NvbnN0e246dH09Zmkscj1CaWdJbnQoIjB4MzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUiKSxuPS11aSpCaWdJbnQoIjB4ZTQ0MzdlZDYwMTBlODgyODZmNTQ3ZmE5MGFiZmU0YzMiKSxvPUJpZ0ludCgiMHgxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgiKSxpPXIsYT1CaWdJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikscz1waShpKmUsdCksdT1waSgtbiplLHQpO2xldCBjPXppKGUtcypyLXUqbyx0KSxsPXppKC1zKm4tdSppLHQpO2NvbnN0IGQ9Yz5hLGY9bD5hO2lmKGQmJihjPXQtYyksZiYmKGw9dC1sKSxjPmF8fGw+YSl0aHJvdyBuZXcgRXJyb3IoInNwbGl0U2NhbGFyRW5kbzogRW5kb21vcnBoaXNtIGZhaWxlZCwgaz0iK2UpO3JldHVybntrMW5lZzpkLGsxOmMsazJuZWc6ZixrMjpsfX19LGdpPTMyLHlpPTMyLGJpPWdpKzEsdmk9MipnaSsxO2Z1bmN0aW9uIG1pKGUpe2NvbnN0e2E6dCxiOnJ9PWZpLG49emkoZSplKSxvPXppKG4qZSk7cmV0dXJuIHppKG8rdCplK3IpfWNvbnN0IFRpPWZpLmE9PT1zaTtjbGFzcyB3aSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfX1mdW5jdGlvbiBBaShlKXtpZighKGUgaW5zdGFuY2VvZiBQaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSmFjb2JpYW5Qb2ludCBleHBlY3RlZCIpfWNsYXNzIFBpe2NvbnN0cnVjdG9yKGUsdCxyKXt0aGlzLng9ZSx0aGlzLnk9dCx0aGlzLno9cn1zdGF0aWMgZnJvbUFmZmluZShlKXtpZighKGUgaW5zdGFuY2VvZiBDaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSmFjb2JpYW5Qb2ludCNmcm9tQWZmaW5lOiBleHBlY3RlZCBQb2ludCIpO3JldHVybiBlLmVxdWFscyhDaS5aRVJPKT9QaS5aRVJPOm5ldyBQaShlLngsZS55LHVpKX1zdGF0aWMgdG9BZmZpbmVCYXRjaChlKXtjb25zdCB0PWZ1bmN0aW9uKGUsdD1maS5QKXtjb25zdCByPW5ldyBBcnJheShlLmxlbmd0aCksbj1lLnJlZHVjZSgoKGUsbixvKT0+bj09PXNpP2U6KHJbb109ZSx6aShlKm4sdCkpKSx1aSksbz1WaShuLHQpO3JldHVybiBlLnJlZHVjZVJpZ2h0KCgoZSxuLG8pPT5uPT09c2k/ZToocltvXT16aShlKnJbb10sdCksemkoZSpuLHQpKSksbykscn0oZS5tYXAoKGU9PmUueikpKTtyZXR1cm4gZS5tYXAoKChlLHIpPT5lLnRvQWZmaW5lKHRbcl0pKSl9c3RhdGljIG5vcm1hbGl6ZVooZSl7cmV0dXJuIFBpLnRvQWZmaW5lQmF0Y2goZSkubWFwKFBpLmZyb21BZmZpbmUpfWVxdWFscyhlKXtBaShlKTtjb25zdHt4OnQseTpyLHo6bn09dGhpcyx7eDpvLHk6aSx6OmF9PWUscz16aShuKm4pLHU9emkoYSphKSxjPXppKHQqdSksbD16aShvKnMpLGQ9emkoemkociphKSp1KSxmPXppKHppKGkqbikqcyk7cmV0dXJuIGM9PT1sJiZkPT09Zn1uZWdhdGUoKXtyZXR1cm4gbmV3IFBpKHRoaXMueCx6aSgtdGhpcy55KSx0aGlzLnopfWRvdWJsZSgpe2NvbnN0e3g6ZSx5OnQsejpyfT10aGlzLG49emkoZSplKSxvPXppKHQqdCksaT16aShvKm8pLGE9ZStvLHM9emkoY2kqKHppKGEqYSktbi1pKSksdT16aShsaSpuKSxjPXppKHUqdSksbD16aShjLWNpKnMpLGQ9emkodSoocy1sKS1kaSppKSxmPXppKGNpKnQqcik7cmV0dXJuIG5ldyBQaShsLGQsZil9YWRkKGUpe0FpKGUpO2NvbnN0e3g6dCx5OnIsejpufT10aGlzLHt4Om8seTppLHo6YX09ZTtpZihvPT09c2l8fGk9PT1zaSlyZXR1cm4gdGhpcztpZih0PT09c2l8fHI9PT1zaSlyZXR1cm4gZTtjb25zdCBzPXppKG4qbiksdT16aShhKmEpLGM9emkodCp1KSxsPXppKG8qcyksZD16aSh6aShyKmEpKnUpLGY9emkoemkoaSpuKSpzKSxwPXppKGwtYyksaD16aShmLWQpO2lmKHA9PT1zaSlyZXR1cm4gaD09PXNpP3RoaXMuZG91YmxlKCk6UGkuWkVSTztjb25zdCBnPXppKHAqcCkseT16aShwKmcpLGI9emkoYypnKSx2PXppKGgqaC15LWNpKmIpLG09emkoaCooYi12KS1kKnkpLFQ9emkobiphKnApO3JldHVybiBuZXcgUGkodixtLFQpfXN1YnRyYWN0KGUpe3JldHVybiB0aGlzLmFkZChlLm5lZ2F0ZSgpKX1tdWx0aXBseVVuc2FmZShlKXtjb25zdCB0PVBpLlpFUk87aWYoImJpZ2ludCI9PXR5cGVvZiBlJiZlPT09c2kpcmV0dXJuIHQ7bGV0IHI9amkoZSk7aWYocj09PXVpKXJldHVybiB0aGlzO2lmKCFUaSl7bGV0IGU9dCxuPXRoaXM7Zm9yKDtyPnNpOylyJnVpJiYoZT1lLmFkZChuKSksbj1uLmRvdWJsZSgpLHI+Pj11aTtyZXR1cm4gZX1sZXR7azFuZWc6bixrMTpvLGsybmVnOmksazI6YX09aGkuc3BsaXRTY2FsYXIocikscz10LHU9dCxjPXRoaXM7Zm9yKDtvPnNpfHxhPnNpOylvJnVpJiYocz1zLmFkZChjKSksYSZ1aSYmKHU9dS5hZGQoYykpLGM9Yy5kb3VibGUoKSxvPj49dWksYT4+PXVpO3JldHVybiBuJiYocz1zLm5lZ2F0ZSgpKSxpJiYodT11Lm5lZ2F0ZSgpKSx1PW5ldyBQaSh6aSh1LngqaGkuYmV0YSksdS55LHUueikscy5hZGQodSl9cHJlY29tcHV0ZVdpbmRvdyhlKXtjb25zdCB0PVRpPzEyOC9lKzE6MjU2L2UrMSxyPVtdO2xldCBuPXRoaXMsbz1uO2ZvcihsZXQgaT0wO2k8dDtpKyspe289bixyLnB1c2gobyk7Zm9yKGxldCB0PTE7dDwyKiooZS0xKTt0Kyspbz1vLmFkZChuKSxyLnB1c2gobyk7bj1vLmRvdWJsZSgpfXJldHVybiByfXdOQUYoZSx0KXshdCYmdGhpcy5lcXVhbHMoUGkuQkFTRSkmJih0PUNpLkJBU0UpO2NvbnN0IHI9dCYmdC5fV0lORE9XX1NJWkV8fDE7aWYoMjU2JXIpdGhyb3cgbmV3IEVycm9yKCJQb2ludCN3TkFGOiBJbnZhbGlkIHByZWNvbXB1dGF0aW9uIHdpbmRvdywgbXVzdCBiZSBwb3dlciBvZiAyIik7bGV0IG49dCYmQmkuZ2V0KHQpO258fChuPXRoaXMucHJlY29tcHV0ZVdpbmRvdyhyKSx0JiYxIT09ciYmKG49UGkubm9ybWFsaXplWihuKSxCaS5zZXQodCxuKSkpO2xldCBvPVBpLlpFUk8saT1QaS5CQVNFO2NvbnN0IGE9MSsoVGk/MTI4L3I6MjU2L3IpLHM9MioqKHItMSksdT1CaWdJbnQoMioqci0xKSxjPTIqKnIsbD1CaWdJbnQocik7Zm9yKGxldCB0PTA7dDxhO3QrKyl7Y29uc3Qgcj10KnM7bGV0IGE9TnVtYmVyKGUmdSk7ZT4+PWwsYT5zJiYoYS09YyxlKz11aSk7Y29uc3QgZD1yLGY9citNYXRoLmFicyhhKS0xLHA9dCUyIT0wLGg9YTwwOzA9PT1hP2k9aS5hZGQoV2kocCxuW2RdKSk6bz1vLmFkZChXaShoLG5bZl0pKX1yZXR1cm57cDpvLGY6aX19bXVsdGlwbHkoZSx0KXtsZXQgcixuLG89amkoZSk7aWYoVGkpe2NvbnN0e2sxbmVnOmUsazE6aSxrMm5lZzphLGsyOnN9PWhpLnNwbGl0U2NhbGFyKG8pO2xldHtwOnUsZjpjfT10aGlzLndOQUYoaSx0KSx7cDpsLGY6ZH09dGhpcy53TkFGKHMsdCk7dT1XaShlLHUpLGw9V2koYSxsKSxsPW5ldyBQaSh6aShsLngqaGkuYmV0YSksbC55LGwueikscj11LmFkZChsKSxuPWMuYWRkKGQpfWVsc2V7Y29uc3R7cDplLGY6aX09dGhpcy53TkFGKG8sdCk7cj1lLG49aX1yZXR1cm4gUGkubm9ybWFsaXplWihbcixuXSlbMF19dG9BZmZpbmUoZSl7Y29uc3R7eDp0LHk6cix6Om59PXRoaXMsbz10aGlzLmVxdWFscyhQaS5aRVJPKTtudWxsPT1lJiYoZT1vP2RpOlZpKG4pKTtjb25zdCBpPWUsYT16aShpKmkpLHM9emkoYSppKSx1PXppKHQqYSksYz16aShyKnMpLGw9emkobippKTtpZihvKXJldHVybiBDaS5aRVJPO2lmKGwhPT11aSl0aHJvdyBuZXcgRXJyb3IoImludlogd2FzIGludmFsaWQiKTtyZXR1cm4gbmV3IENpKHUsYyl9fWZ1bmN0aW9uIFdpKGUsdCl7Y29uc3Qgcj10Lm5lZ2F0ZSgpO3JldHVybiBlP3I6dH1QaS5CQVNFPW5ldyBQaShmaS5HeCxmaS5HeSx1aSksUGkuWkVSTz1uZXcgUGkoc2ksdWksc2kpO2NvbnN0IEJpPW5ldyBXZWFrTWFwO2NsYXNzIENpe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy54PWUsdGhpcy55PXR9X3NldFdpbmRvd1NpemUoZSl7dGhpcy5fV0lORE9XX1NJWkU9ZSxCaS5kZWxldGUodGhpcyl9aGFzRXZlblkoKXtyZXR1cm4gdGhpcy55JWNpPT09c2l9c3RhdGljIGZyb21Db21wcmVzc2VkSGV4KGUpe2NvbnN0IHQ9MzI9PT1lLmxlbmd0aCxyPURpKHQ/ZTplLnN1YmFycmF5KDEpKTtpZighSmkocikpdGhyb3cgbmV3IEVycm9yKCJQb2ludCBpcyBub3Qgb24gY3VydmUiKTtsZXQgbj1mdW5jdGlvbihlKXtjb25zdHtQOnR9PWZpLHI9QmlnSW50KDYpLG49QmlnSW50KDExKSxvPUJpZ0ludCgyMiksaT1CaWdJbnQoMjMpLGE9QmlnSW50KDQ0KSxzPUJpZ0ludCg4OCksdT1lKmUqZSV0LGM9dSp1KmUldCxsPSRpKGMsbGkpKmMldCxkPSRpKGwsbGkpKmMldCxmPSRpKGQsY2kpKnUldCxwPSRpKGYsbikqZiV0LGg9JGkocCxvKSpwJXQsZz0kaShoLGEpKmgldCx5PSRpKGcscykqZyV0LGI9JGkoeSxhKSpoJXQsdj0kaShiLGxpKSpjJXQsbT0kaSh2LGkpKnAldCxUPSRpKG0scikqdSV0LHc9JGkoVCxjaSk7aWYodyp3JXQhPT1lKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc3F1YXJlIHJvb3QiKTtyZXR1cm4gd30obWkocikpO2NvbnN0IG89KG4mdWkpPT09dWk7dD9vJiYobj16aSgtbikpOjE9PSgxJmVbMF0pIT09byYmKG49emkoLW4pKTtjb25zdCBpPW5ldyBDaShyLG4pO3JldHVybiBpLmFzc2VydFZhbGlkaXR5KCksaX1zdGF0aWMgZnJvbVVuY29tcHJlc3NlZEhleChlKXtjb25zdCB0PURpKGUuc3ViYXJyYXkoMSxnaSsxKSkscj1EaShlLnN1YmFycmF5KGdpKzEsMipnaSsxKSksbj1uZXcgQ2kodCxyKTtyZXR1cm4gbi5hc3NlcnRWYWxpZGl0eSgpLG59c3RhdGljIGZyb21IZXgoZSl7Y29uc3QgdD1MaShlKSxyPXQubGVuZ3RoLG49dFswXTtpZihyPT09Z2kpcmV0dXJuIHRoaXMuZnJvbUNvbXByZXNzZWRIZXgodCk7aWYocj09PWJpJiYoMj09PW58fDM9PT1uKSlyZXR1cm4gdGhpcy5mcm9tQ29tcHJlc3NlZEhleCh0KTtpZihyPT09dmkmJjQ9PT1uKXJldHVybiB0aGlzLmZyb21VbmNvbXByZXNzZWRIZXgodCk7dGhyb3cgbmV3IEVycm9yKGBQb2ludC5mcm9tSGV4OiByZWNlaXZlZCBpbnZhbGlkIHBvaW50LiBFeHBlY3RlZCAzMi0ke2JpfSBjb21wcmVzc2VkIGJ5dGVzIG9yICR7dml9IHVuY29tcHJlc3NlZCBieXRlcywgbm90ICR7cn1gKX1zdGF0aWMgZnJvbVByaXZhdGVLZXkoZSl7cmV0dXJuIENpLkJBU0UubXVsdGlwbHkoWGkoZSkpfXN0YXRpYyBmcm9tU2lnbmF0dXJlKGUsdCxyKXtjb25zdHtyOm4sczpvfT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2Yga2kpcmV0dXJuIGUuYXNzZXJ0VmFsaWRpdHkoKSxlO3RyeXtyZXR1cm4ga2kuZnJvbURFUihlKX1jYXRjaCh0KXtyZXR1cm4ga2kuZnJvbUNvbXBhY3QoZSl9fSh0KTtpZighWzAsMSwyLDNdLmluY2x1ZGVzKHIpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJlY292ZXI6IGludmFsaWQgcmVjb3ZlcnkgYml0Iik7Y29uc3QgaT1HaShMaShlKSkse246YX09Zmkscz0yPT09cnx8Mz09PXI/bithOm4sdT1WaShzLGEpLGM9emkoLWkqdSxhKSxsPXppKG8qdSxhKSxkPTEmcj8iMDMiOiIwMiIsZj1DaS5mcm9tSGV4KGQrRmkocykpLHA9Q2kuQkFTRS5tdWx0aXBseUFuZEFkZFVuc2FmZShmLGMsbCk7aWYoIXApdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVjb3ZlciBzaWduYXR1cmU6IHBvaW50IGF0IGluZmluaWZ5Iik7cmV0dXJuIHAuYXNzZXJ0VmFsaWRpdHkoKSxwfXRvUmF3Qnl0ZXMoZT0hMSl7cmV0dXJuIFVpKHRoaXMudG9IZXgoZSkpfXRvSGV4KGU9ITEpe2NvbnN0IHQ9RmkodGhpcy54KTtyZXR1cm4gZT9gJHt0aGlzLmhhc0V2ZW5ZKCk/IjAyIjoiMDMifSR7dH1gOmAwNCR7dH0ke0ZpKHRoaXMueSl9YH10b0hleFgoKXtyZXR1cm4gdGhpcy50b0hleCghMCkuc2xpY2UoMil9dG9SYXdYKCl7cmV0dXJuIHRoaXMudG9SYXdCeXRlcyghMCkuc2xpY2UoMSl9YXNzZXJ0VmFsaWRpdHkoKXtjb25zdCBlPSJQb2ludCBpcyBub3Qgb24gZWxsaXB0aWMgY3VydmUiLHt4OnQseTpyfT10aGlzO2lmKCFKaSh0KXx8IUppKHIpKXRocm93IG5ldyBFcnJvcihlKTtjb25zdCBuPXppKHIqcik7aWYoemkobi1taSh0KSkhPT1zaSl0aHJvdyBuZXcgRXJyb3IoZSl9ZXF1YWxzKGUpe3JldHVybiB0aGlzLng9PT1lLngmJnRoaXMueT09PWUueX1uZWdhdGUoKXtyZXR1cm4gbmV3IENpKHRoaXMueCx6aSgtdGhpcy55KSl9ZG91YmxlKCl7cmV0dXJuIFBpLmZyb21BZmZpbmUodGhpcykuZG91YmxlKCkudG9BZmZpbmUoKX1hZGQoZSl7cmV0dXJuIFBpLmZyb21BZmZpbmUodGhpcykuYWRkKFBpLmZyb21BZmZpbmUoZSkpLnRvQWZmaW5lKCl9c3VidHJhY3QoZSl7cmV0dXJuIHRoaXMuYWRkKGUubmVnYXRlKCkpfW11bHRpcGx5KGUpe3JldHVybiBQaS5mcm9tQWZmaW5lKHRoaXMpLm11bHRpcGx5KGUsdGhpcykudG9BZmZpbmUoKX1tdWx0aXBseUFuZEFkZFVuc2FmZShlLHQscil7Y29uc3Qgbj1QaS5mcm9tQWZmaW5lKHRoaXMpLG89dD09PXNpfHx0PT09dWl8fHRoaXMhPT1DaS5CQVNFP24ubXVsdGlwbHlVbnNhZmUodCk6bi5tdWx0aXBseSh0KSxpPVBpLmZyb21BZmZpbmUoZSkubXVsdGlwbHlVbnNhZmUociksYT1vLmFkZChpKTtyZXR1cm4gYS5lcXVhbHMoUGkuWkVSTyk/dm9pZCAwOmEudG9BZmZpbmUoKX19ZnVuY3Rpb24gRWkoZSl7cmV0dXJuIE51bWJlci5wYXJzZUludChlWzBdLDE2KT49OD8iMDAiK2U6ZX1mdW5jdGlvbiBNaShlKXtpZihlLmxlbmd0aDwyfHwyIT09ZVswXSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2lnbmF0dXJlIGludGVnZXIgdGFnOiAke3hpKGUpfWApO2NvbnN0IHQ9ZVsxXSxyPWUuc3ViYXJyYXkoMix0KzIpO2lmKCF0fHxyLmxlbmd0aCE9PXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNpZ25hdHVyZSBpbnRlZ2VyOiB3cm9uZyBsZW5ndGgiKTtpZigwPT09clswXSYmclsxXTw9MTI3KXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzaWduYXR1cmUgaW50ZWdlcjogdHJhaWxpbmcgbGVuZ3RoIik7cmV0dXJue2RhdGE6RGkociksbGVmdDplLnN1YmFycmF5KHQrMil9fUNpLkJBU0U9bmV3IENpKGZpLkd4LGZpLkd5KSxDaS5aRVJPPW5ldyBDaShzaSxzaSk7Y2xhc3Mga2l7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnI9ZSx0aGlzLnM9dCx0aGlzLmFzc2VydFZhbGlkaXR5KCl9c3RhdGljIGZyb21Db21wYWN0KGUpe2NvbnN0IHQ9ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkscj0iU2lnbmF0dXJlLmZyb21Db21wYWN0IjtpZigic3RyaW5nIiE9dHlwZW9mIGUmJiF0KXRocm93IG5ldyBUeXBlRXJyb3IoYCR7cn06IEV4cGVjdGVkIHN0cmluZyBvciBVaW50OEFycmF5YCk7Y29uc3Qgbj10P3hpKGUpOmU7aWYoMTI4IT09bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKGAke3J9OiBFeHBlY3RlZCA2NC1ieXRlIGhleGApO3JldHVybiBuZXcga2koTmkobi5zbGljZSgwLDY0KSksTmkobi5zbGljZSg2NCwxMjgpKSl9c3RhdGljIGZyb21ERVIoZSl7Y29uc3QgdD1lIGluc3RhbmNlb2YgVWludDhBcnJheTtpZigic3RyaW5nIiE9dHlwZW9mIGUmJiF0KXRocm93IG5ldyBUeXBlRXJyb3IoIlNpZ25hdHVyZS5mcm9tREVSOiBFeHBlY3RlZCBzdHJpbmcgb3IgVWludDhBcnJheSIpO2NvbnN0e3IsczpufT1mdW5jdGlvbihlKXtpZihlLmxlbmd0aDwyfHw0OCE9ZVswXSl0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2lnbmF0dXJlIHRhZzogJHt4aShlKX1gKTtpZihlWzFdIT09ZS5sZW5ndGgtMil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2lnbmF0dXJlOiBpbmNvcnJlY3QgbGVuZ3RoIik7Y29uc3R7ZGF0YTp0LGxlZnQ6cn09TWkoZS5zdWJhcnJheSgyKSkse2RhdGE6bixsZWZ0Om99PU1pKHIpO2lmKG8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzaWduYXR1cmU6IGxlZnQgYnl0ZXMgYWZ0ZXIgcGFyc2luZzogJHt4aShvKX1gKTtyZXR1cm57cjp0LHM6bn19KHQ/ZTpVaShlKSk7cmV0dXJuIG5ldyBraShyLG4pfXN0YXRpYyBmcm9tSGV4KGUpe3JldHVybiB0aGlzLmZyb21ERVIoZSl9YXNzZXJ0VmFsaWRpdHkoKXtjb25zdHtyOmUsczp0fT10aGlzO2lmKCFxaShlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgU2lnbmF0dXJlOiByIG11c3QgYmUgMCA8IHIgPCBuIik7aWYoIXFpKHQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBTaWduYXR1cmU6IHMgbXVzdCBiZSAwIDwgcyA8IG4iKX1oYXNIaWdoUygpe2NvbnN0IGU9Zmkubj4+dWk7cmV0dXJuIHRoaXMucz5lfW5vcm1hbGl6ZVMoKXtyZXR1cm4gdGhpcy5oYXNIaWdoUygpP25ldyBraSh0aGlzLnIsemkoLXRoaXMucyxmaS5uKSk6dGhpc310b0RFUlJhd0J5dGVzKCl7cmV0dXJuIFVpKHRoaXMudG9ERVJIZXgoKSl9dG9ERVJIZXgoKXtjb25zdCBlPUVpKFJpKHRoaXMucykpLHQ9RWkoUmkodGhpcy5yKSkscj1lLmxlbmd0aC8yLG49dC5sZW5ndGgvMixvPVJpKHIpLGk9Umkobik7cmV0dXJuYDMwJHtSaShuK3IrNCl9MDIke2l9JHt0fTAyJHtvfSR7ZX1gfXRvUmF3Qnl0ZXMoKXtyZXR1cm4gdGhpcy50b0RFUlJhd0J5dGVzKCl9dG9IZXgoKXtyZXR1cm4gdGhpcy50b0RFUkhleCgpfXRvQ29tcGFjdFJhd0J5dGVzKCl7cmV0dXJuIFVpKHRoaXMudG9Db21wYWN0SGV4KCkpfXRvQ29tcGFjdEhleCgpe3JldHVybiBGaSh0aGlzLnIpK0ZpKHRoaXMucyl9fWZ1bmN0aW9uIElpKC4uLmUpe2lmKCFlLmV2ZXJ5KChlPT5lIGluc3RhbmNlb2YgVWludDhBcnJheSkpKXRocm93IG5ldyBFcnJvcigiVWludDhBcnJheSBsaXN0IGV4cGVjdGVkIik7aWYoMT09PWUubGVuZ3RoKXJldHVybiBlWzBdO2NvbnN0IHQ9ZS5yZWR1Y2UoKChlLHQpPT5lK3QubGVuZ3RoKSwwKSxyPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgdD0wLG49MDt0PGUubGVuZ3RoO3QrKyl7Y29uc3Qgbz1lW3RdO3Iuc2V0KG8sbiksbis9by5sZW5ndGh9cmV0dXJuIHJ9Y29uc3QgT2k9QXJyYXkuZnJvbSh7bGVuZ3RoOjI1Nn0sKChlLHQpPT50LnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpKTtmdW5jdGlvbiB4aShlKXtpZighKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIFVpbnQ4QXJyYXkiKTtsZXQgdD0iIjtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0Kz1PaVtlW3JdXTtyZXR1cm4gdH1jb25zdCBTaT1CaWdJbnQoIjB4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTtmdW5jdGlvbiBGaShlKXtpZigiYmlnaW50IiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBiaWdpbnQiKTtpZighKHNpPD1lJiZlPFNpKSl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIG51bWJlciAwIDw9IG4gPCAyXjI1NiIpO3JldHVybiBlLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2NCwiMCIpfWZ1bmN0aW9uIF9pKGUpe2NvbnN0IHQ9VWkoRmkoZSkpO2lmKDMyIT09dC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJFcnJvcjogZXhwZWN0ZWQgMzIgYnl0ZXMiKTtyZXR1cm4gdH1mdW5jdGlvbiBSaShlKXtjb25zdCB0PWUudG9TdHJpbmcoMTYpO3JldHVybiAxJnQubGVuZ3RoP2AwJHt0fWA6dH1mdW5jdGlvbiBOaShlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiaGV4VG9OdW1iZXI6IGV4cGVjdGVkIHN0cmluZywgZ290ICIrdHlwZW9mIGUpO3JldHVybiBCaWdJbnQoYDB4JHtlfWApfWZ1bmN0aW9uIFVpKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJoZXhUb0J5dGVzOiBleHBlY3RlZCBzdHJpbmcsIGdvdCAiK3R5cGVvZiBlKTtpZihlLmxlbmd0aCUyKXRocm93IG5ldyBFcnJvcigiaGV4VG9CeXRlczogcmVjZWl2ZWQgaW52YWxpZCB1bnBhZGRlZCBoZXgiK2UubGVuZ3RoKTtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoLzIpO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtjb25zdCBuPTIqcixvPWUuc2xpY2UobixuKzIpLGk9TnVtYmVyLnBhcnNlSW50KG8sMTYpO2lmKE51bWJlci5pc05hTihpKXx8aTwwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBieXRlIHNlcXVlbmNlIik7dFtyXT1pfXJldHVybiB0fWZ1bmN0aW9uIERpKGUpe3JldHVybiBOaSh4aShlKSl9ZnVuY3Rpb24gTGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBVaW50OEFycmF5P1VpbnQ4QXJyYXkuZnJvbShlKTpVaShlKX1mdW5jdGlvbiBqaShlKXtpZigibnVtYmVyIj09dHlwZW9mIGUmJk51bWJlci5pc1NhZmVJbnRlZ2VyKGUpJiZlPjApcmV0dXJuIEJpZ0ludChlKTtpZigiYmlnaW50Ij09dHlwZW9mIGUmJnFpKGUpKXJldHVybiBlO3Rocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHZhbGlkIHByaXZhdGUgc2NhbGFyOiAwIDwgc2NhbGFyIDwgY3VydmUubiIpfWZ1bmN0aW9uIHppKGUsdD1maS5QKXtjb25zdCByPWUldDtyZXR1cm4gcj49c2k/cjp0K3J9ZnVuY3Rpb24gJGkoZSx0KXtjb25zdHtQOnJ9PWZpO2xldCBuPWU7Zm9yKDt0LS0gPnNpOyluKj1uLG4lPXI7cmV0dXJuIG59ZnVuY3Rpb24gVmkoZSx0PWZpLlApe2lmKGU9PT1zaXx8dDw9c2kpdGhyb3cgbmV3IEVycm9yKGBpbnZlcnQ6IGV4cGVjdGVkIHBvc2l0aXZlIGludGVnZXJzLCBnb3Qgbj0ke2V9IG1vZD0ke3R9YCk7bGV0IHI9emkoZSx0KSxuPXQsbz1zaSxpPXVpLGE9dWkscz1zaTtmb3IoO3IhPT1zaTspe2NvbnN0IGU9bi9yLHQ9biVyLHU9by1hKmUsYz1pLXMqZTtuPXIscj10LG89YSxpPXMsYT11LHM9Y31pZihuIT09dWkpdGhyb3cgbmV3IEVycm9yKCJpbnZlcnQ6IGRvZXMgbm90IGV4aXN0Iik7cmV0dXJuIHppKG8sdCl9ZnVuY3Rpb24gR2koZSx0PSExKXtjb25zdCByPWZ1bmN0aW9uKGUpe2NvbnN0IHQ9OCplLmxlbmd0aC04KnlpLHI9RGkoZSk7cmV0dXJuIHQ+MD9yPj5CaWdJbnQodCk6cn0oZSk7aWYodClyZXR1cm4gcjtjb25zdHtufT1maTtyZXR1cm4gcj49bj9yLW46cn1sZXQgSGksS2k7Y2xhc3MgWml7Y29uc3RydWN0b3IoZSx0KXtpZih0aGlzLmhhc2hMZW49ZSx0aGlzLnFCeXRlTGVuPXQsIm51bWJlciIhPXR5cGVvZiBlfHxlPDIpdGhyb3cgbmV3IEVycm9yKCJoYXNoTGVuIG11c3QgYmUgYSBudW1iZXIiKTtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8Mil0aHJvdyBuZXcgRXJyb3IoInFCeXRlTGVuIG11c3QgYmUgYSBudW1iZXIiKTt0aGlzLnY9bmV3IFVpbnQ4QXJyYXkoZSkuZmlsbCgxKSx0aGlzLms9bmV3IFVpbnQ4QXJyYXkoZSkuZmlsbCgwKSx0aGlzLmNvdW50ZXI9MH1obWFjKC4uLmUpe3JldHVybiBpYS5obWFjU2hhMjU2KHRoaXMuaywuLi5lKX1obWFjU3luYyguLi5lKXtyZXR1cm4gS2kodGhpcy5rLC4uLmUpfWNoZWNrU3luYygpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBLaSl0aHJvdyBuZXcgd2koImhtYWNTaGEyNTZTeW5jIG5lZWRzIHRvIGJlIHNldCIpfWluY3IoKXtpZih0aGlzLmNvdW50ZXI+PTFlMyl0aHJvdyBuZXcgRXJyb3IoIlRyaWVkIDEsMDAwIGsgdmFsdWVzIGZvciBzaWduKCksIGFsbCB3ZXJlIGludmFsaWQiKTt0aGlzLmNvdW50ZXIrPTF9YXN5bmMgcmVzZWVkKGU9bmV3IFVpbnQ4QXJyYXkpe3RoaXMuaz1hd2FpdCB0aGlzLmhtYWModGhpcy52LFVpbnQ4QXJyYXkuZnJvbShbMF0pLGUpLHRoaXMudj1hd2FpdCB0aGlzLmhtYWModGhpcy52KSwwIT09ZS5sZW5ndGgmJih0aGlzLms9YXdhaXQgdGhpcy5obWFjKHRoaXMudixVaW50OEFycmF5LmZyb20oWzFdKSxlKSx0aGlzLnY9YXdhaXQgdGhpcy5obWFjKHRoaXMudikpfXJlc2VlZFN5bmMoZT1uZXcgVWludDhBcnJheSl7dGhpcy5jaGVja1N5bmMoKSx0aGlzLms9dGhpcy5obWFjU3luYyh0aGlzLnYsVWludDhBcnJheS5mcm9tKFswXSksZSksdGhpcy52PXRoaXMuaG1hY1N5bmModGhpcy52KSwwIT09ZS5sZW5ndGgmJih0aGlzLms9dGhpcy5obWFjU3luYyh0aGlzLnYsVWludDhBcnJheS5mcm9tKFsxXSksZSksdGhpcy52PXRoaXMuaG1hY1N5bmModGhpcy52KSl9YXN5bmMgZ2VuZXJhdGUoKXt0aGlzLmluY3IoKTtsZXQgZT0wO2NvbnN0IHQ9W107Zm9yKDtlPHRoaXMucUJ5dGVMZW47KXt0aGlzLnY9YXdhaXQgdGhpcy5obWFjKHRoaXMudik7Y29uc3Qgcj10aGlzLnYuc2xpY2UoKTt0LnB1c2gociksZSs9dGhpcy52Lmxlbmd0aH1yZXR1cm4gSWkoLi4udCl9Z2VuZXJhdGVTeW5jKCl7dGhpcy5jaGVja1N5bmMoKSx0aGlzLmluY3IoKTtsZXQgZT0wO2NvbnN0IHQ9W107Zm9yKDtlPHRoaXMucUJ5dGVMZW47KXt0aGlzLnY9dGhpcy5obWFjU3luYyh0aGlzLnYpO2NvbnN0IHI9dGhpcy52LnNsaWNlKCk7dC5wdXNoKHIpLGUrPXRoaXMudi5sZW5ndGh9cmV0dXJuIElpKC4uLnQpfX1mdW5jdGlvbiBxaShlKXtyZXR1cm4gc2k8ZSYmZTxmaS5ufWZ1bmN0aW9uIEppKGUpe3JldHVybiBzaTxlJiZlPGZpLlB9ZnVuY3Rpb24gWWkoZSx0LHIsbj0hMCl7Y29uc3R7bjpvfT1maSxpPUdpKGUsITApO2lmKCFxaShpKSlyZXR1cm47Y29uc3QgYT1WaShpLG8pLHM9Q2kuQkFTRS5tdWx0aXBseShpKSx1PXppKHMueCxvKTtpZih1PT09c2kpcmV0dXJuO2NvbnN0IGM9emkoYSp6aSh0K3IqdSxvKSxvKTtpZihjPT09c2kpcmV0dXJuO2xldCBsPW5ldyBraSh1LGMpLGQ9KHMueD09PWwucj8wOjIpfE51bWJlcihzLnkmdWkpO3JldHVybiBuJiZsLmhhc0hpZ2hTKCkmJihsPWwubm9ybWFsaXplUygpLGRePTEpLHtzaWc6bCxyZWNvdmVyeTpkfX1mdW5jdGlvbiBYaShlKXtsZXQgdDtpZigiYmlnaW50Ij09dHlwZW9mIGUpdD1lO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBlJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihlKSYmZT4wKXQ9QmlnSW50KGUpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZihlLmxlbmd0aCE9PTIqeWkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCAzMiBieXRlcyBvZiBwcml2YXRlIGtleSIpO3Q9TmkoZSl9ZWxzZXtpZighKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCB2YWxpZCBwcml2YXRlIGtleSIpO2lmKGUubGVuZ3RoIT09eWkpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCAzMiBieXRlcyBvZiBwcml2YXRlIGtleSIpO3Q9RGkoZSl9aWYoIXFpKHQpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgcHJpdmF0ZSBrZXk6IDAgPCBrZXkgPCBuIik7cmV0dXJuIHR9ZnVuY3Rpb24gUWkoZSl7Y29uc3QgdD1lIGluc3RhbmNlb2YgVWludDhBcnJheSxyPSJzdHJpbmciPT10eXBlb2YgZSxuPSh0fHxyKSYmZS5sZW5ndGg7cmV0dXJuIHQ/bj09PWJpfHxuPT09dmk6cj9uPT09MipiaXx8bj09PTIqdmk6ZSBpbnN0YW5jZW9mIENpfWZ1bmN0aW9uIGVhKGUpe3JldHVybiBEaShlLmxlbmd0aD5naT9lLnNsaWNlKDAsZ2kpOmUpfWZ1bmN0aW9uIHRhKGUpe2NvbnN0IHQ9ZWEoZSkscj16aSh0LGZpLm4pO3JldHVybiByYShyPHNpP3Q6cil9ZnVuY3Rpb24gcmEoZSl7cmV0dXJuIF9pKGUpfUNpLkJBU0UuX3NldFdpbmRvd1NpemUoOCk7Y29uc3QgbmE9e25vZGU6YWksd2ViOiJvYmplY3QiPT10eXBlb2Ygc2VsZiYmImNyeXB0byJpbiBzZWxmP3NlbGYuY3J5cHRvOnZvaWQgMH0sb2E9e30saWE9e2J5dGVzVG9IZXg6eGksaGV4VG9CeXRlczpVaSxjb25jYXRCeXRlczpJaSxtb2Q6emksaW52ZXJ0OlZpLGlzVmFsaWRQcml2YXRlS2V5KGUpe3RyeXtyZXR1cm4gWGkoZSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSxfYmlnaW50VG8zMkJ5dGVzOl9pLF9ub3JtYWxpemVQcml2YXRlS2V5OlhpLGhhc2hUb1ByaXZhdGVLZXk6ZT0+e2U9TGkoZSk7Y29uc3QgdD15aSs4O2lmKGUubGVuZ3RoPHR8fGUubGVuZ3RoPjEwMjQpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB2YWxpZCBieXRlcyBvZiBwcml2YXRlIGtleSBhcyBwZXIgRklQUyAxODYiKTtyZXR1cm4gX2koemkoRGkoZSksZmkubi11aSkrdWkpfSxyYW5kb21CeXRlczooZT0zMik9PntpZihuYS53ZWIpcmV0dXJuIG5hLndlYi5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoZSkpO2lmKG5hLm5vZGUpe2NvbnN0e3JhbmRvbUJ5dGVzOnR9PW5hLm5vZGU7cmV0dXJuIFVpbnQ4QXJyYXkuZnJvbSh0KGUpKX10aHJvdyBuZXcgRXJyb3IoIlRoZSBlbnZpcm9ubWVudCBkb2Vzbid0IGhhdmUgcmFuZG9tQnl0ZXMgZnVuY3Rpb24iKX0scmFuZG9tUHJpdmF0ZUtleTooKT0+aWEuaGFzaFRvUHJpdmF0ZUtleShpYS5yYW5kb21CeXRlcyh5aSs4KSkscHJlY29tcHV0ZShlPTgsdD1DaS5CQVNFKXtjb25zdCByPXQ9PT1DaS5CQVNFP3Q6bmV3IENpKHQueCx0LnkpO3JldHVybiByLl9zZXRXaW5kb3dTaXplKGUpLHIubXVsdGlwbHkobGkpLHJ9LHNoYTI1Njphc3luYyguLi5lKT0+e2lmKG5hLndlYil7Y29uc3QgdD1hd2FpdCBuYS53ZWIuc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsSWkoLi4uZSkpO3JldHVybiBuZXcgVWludDhBcnJheSh0KX1pZihuYS5ub2RlKXtjb25zdHtjcmVhdGVIYXNoOnR9PW5hLm5vZGUscj10KCJzaGEyNTYiKTtyZXR1cm4gZS5mb3JFYWNoKChlPT5yLnVwZGF0ZShlKSkpLFVpbnQ4QXJyYXkuZnJvbShyLmRpZ2VzdCgpKX10aHJvdyBuZXcgRXJyb3IoIlRoZSBlbnZpcm9ubWVudCBkb2Vzbid0IGhhdmUgc2hhMjU2IGZ1bmN0aW9uIil9LGhtYWNTaGEyNTY6YXN5bmMoZSwuLi50KT0+e2lmKG5hLndlYil7Y29uc3Qgcj1hd2FpdCBuYS53ZWIuc3VidGxlLmltcG9ydEtleSgicmF3IixlLHtuYW1lOiJITUFDIixoYXNoOntuYW1lOiJTSEEtMjU2In19LCExLFsic2lnbiJdKSxuPUlpKC4uLnQpLG89YXdhaXQgbmEud2ViLnN1YnRsZS5zaWduKCJITUFDIixyLG4pO3JldHVybiBuZXcgVWludDhBcnJheShvKX1pZihuYS5ub2RlKXtjb25zdHtjcmVhdGVIbWFjOnJ9PW5hLm5vZGUsbj1yKCJzaGEyNTYiLGUpO3JldHVybiB0LmZvckVhY2goKGU9Pm4udXBkYXRlKGUpKSksVWludDhBcnJheS5mcm9tKG4uZGlnZXN0KCkpfXRocm93IG5ldyBFcnJvcigiVGhlIGVudmlyb25tZW50IGRvZXNuJ3QgaGF2ZSBobWFjLXNoYTI1NiBmdW5jdGlvbiIpfSxzaGEyNTZTeW5jOnZvaWQgMCxobWFjU2hhMjU2U3luYzp2b2lkIDAsdGFnZ2VkSGFzaDphc3luYyhlLC4uLnQpPT57bGV0IHI9b2FbZV07aWYodm9pZCAwPT09cil7Y29uc3QgdD1hd2FpdCBpYS5zaGEyNTYoVWludDhBcnJheS5mcm9tKGUsKGU9PmUuY2hhckNvZGVBdCgwKSkpKTtyPUlpKHQsdCksb2FbZV09cn1yZXR1cm4gaWEuc2hhMjU2KHIsLi4udCl9LHRhZ2dlZEhhc2hTeW5jOihlLC4uLnQpPT57aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEhpKXRocm93IG5ldyB3aSgic2hhMjU2U3luYyBpcyB1bmRlZmluZWQsIHlvdSBuZWVkIHRvIHNldCBpdCIpO2xldCByPW9hW2VdO2lmKHZvaWQgMD09PXIpe2NvbnN0IHQ9SGkoVWludDhBcnJheS5mcm9tKGUsKGU9PmUuY2hhckNvZGVBdCgwKSkpKTtyPUlpKHQsdCksb2FbZV09cn1yZXR1cm4gSGkociwuLi50KX0sX0phY29iaWFuUG9pbnQ6UGl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGlhLHtzaGEyNTZTeW5jOntjb25maWd1cmFibGU6ITEsZ2V0OigpPT5IaSxzZXQoZSl7SGl8fChIaT1lKX19LGhtYWNTaGEyNTZTeW5jOntjb25maWd1cmFibGU6ITEsZ2V0OigpPT5LaSxzZXQoZSl7S2l8fChLaT1lKX19fSksaWEuaG1hY1NoYTI1NlN5bmM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodD4xP3QtMTowKSxuPTE7bjx0O24rKylyW24tMV09YXJndW1lbnRzW25dO3JldHVybiBmcihabygic2hhMjU2IixlLHZyKHIpKSl9O3ZhciBhYT1uZXcgV2Vha01hcCxzYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7dmFyIHIsbixvO2codGhpcyxlKSxvPXt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9LGZ1bmN0aW9uKGUsdCl7aWYodC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0ocj10aGlzLG49YWEpLG4uc2V0KHIsbyksYXIoMzI9PT1tcih0KSwiaW52YWxpZCBwcml2YXRlIGtleSIsInByaXZhdGVLZXkiLCJbUkVEQUNURURdIiksWnQodGhpcyxhYSxicih0KSl9cmV0dXJuIHYoZSxbe2tleToicHJpdmF0ZUtleSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMsYWEpfX0se2tleToicHVibGljS2V5IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jb21wdXRlUHVibGljS2V5KHF0KHRoaXMsYWEpKX19LHtrZXk6ImNvbXByZXNzZWRQdWJsaWNLZXkiLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmNvbXB1dGVQdWJsaWNLZXkocXQodGhpcyxhYSksITApfX0se2tleToic2lnbiIsdmFsdWU6ZnVuY3Rpb24oZSl7YXIoMzI9PT1tcihlKSwiaW52YWxpZCBkaWdlc3QgbGVuZ3RoIiwiZGlnZXN0IixlKTt2YXIgdD1mdW5jdGlvbihlLHQscj17fSl7Y29uc3R7c2VlZDpuLG06byxkOml9PWZ1bmN0aW9uKGUsdCxyKXtpZihudWxsPT1lKXRocm93IG5ldyBFcnJvcihgc2lnbjogZXhwZWN0ZWQgdmFsaWQgbWVzc2FnZSBoYXNoLCBub3QgIiR7ZX0iYCk7Y29uc3Qgbj1MaShlKSxvPVhpKHQpLGk9W3JhKG8pLHRhKG4pXTtpZihudWxsIT1yKXshMD09PXImJihyPWlhLnJhbmRvbUJ5dGVzKGdpKSk7Y29uc3QgZT1MaShyKTtpZihlLmxlbmd0aCE9PWdpKXRocm93IG5ldyBFcnJvcihgc2lnbjogRXhwZWN0ZWQgJHtnaX0gYnl0ZXMgb2YgZXh0cmEgZGF0YWApO2kucHVzaChlKX1yZXR1cm57c2VlZDpJaSguLi5pKSxtOmVhKG4pLGQ6b319KGUsdCxyLmV4dHJhRW50cm9weSksYT1uZXcgWmkoMzIseWkpO2xldCBzO2ZvcihhLnJlc2VlZFN5bmMobik7IShzPVlpKGEuZ2VuZXJhdGVTeW5jKCksbyxpLHIuY2Fub25pY2FsKSk7KWEucmVzZWVkU3luYygpO3JldHVybiBmdW5jdGlvbihlLHQpe2NvbnN0e3NpZzpyLHJlY292ZXJ5Om59PWUse2RlcjpvLHJlY292ZXJlZDppfT1PYmplY3QuYXNzaWduKHtjYW5vbmljYWw6ITAsZGVyOiEwfSx0KSxhPW8/ci50b0RFUlJhd0J5dGVzKCk6ci50b0NvbXBhY3RSYXdCeXRlcygpO3JldHVybiBpP1thLG5dOmF9KHMscil9KHByKGUpLHByKHF0KHRoaXMsYWEpKSx7cmVjb3ZlcmVkOiEwLGNhbm9uaWNhbDohMH0pLHI9b2kodCwyKSxuPXJbMF0sbz1yWzFdLGk9a2kuZnJvbUhleChuKTtyZXR1cm4gcXIuZnJvbSh7cjpGcigiMHgiK2kuci50b1N0cmluZygxNiksMzIpLHM6RnIoIjB4IitpLnMudG9TdHJpbmcoMTYpLDMyKSx2Om8/Mjg6Mjd9KX19LHtrZXk6ImNvbXB1dGVTaGFyZWRTZWNyZXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciByPWUuY29tcHV0ZVB1YmxpY0tleSh0KTtyZXR1cm4gYnIoZnVuY3Rpb24oZSx0LHI9ITEpe2lmKFFpKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoImdldFNoYXJlZFNlY3JldDogZmlyc3QgYXJnIG11c3QgYmUgcHJpdmF0ZSBrZXkiKTtpZighUWkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZ2V0U2hhcmVkU2VjcmV0OiBzZWNvbmQgYXJnIG11c3QgYmUgcHVibGljIGtleSIpO2NvbnN0IG49KG89dClpbnN0YW5jZW9mIENpPyhvLmFzc2VydFZhbGlkaXR5KCksbyk6Q2kuZnJvbUhleChvKTt2YXIgbztyZXR1cm4gbi5hc3NlcnRWYWxpZGl0eSgpLG4ubXVsdGlwbHkoWGkoZSkpLnRvUmF3Qnl0ZXMocil9KHByKHF0KHRoaXMsYWEpKSxmcihyKSkpfX1dLFt7a2V5OiJjb21wdXRlUHVibGljS2V5Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPWZyKGUsImtleSIpO2lmKDMyPT09ci5sZW5ndGgpcmV0dXJuIGJyKGZ1bmN0aW9uKGUsdD0hMSl7cmV0dXJuIENpLmZyb21Qcml2YXRlS2V5KGUpLnRvUmF3Qnl0ZXModCl9KHIsISF0KSk7aWYoNjQ9PT1yLmxlbmd0aCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoNjUpO25bMF09NCxuLnNldChyLDEpLHI9bn1yZXR1cm4gYnIoQ2kuZnJvbUhleChyKS50b1Jhd0J5dGVzKHQpKX19LHtrZXk6InJlY292ZXJQdWJsaWNLZXkiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7YXIoMzI9PT1tcihlKSwiaW52YWxpZCBkaWdlc3QgbGVuZ3RoIiwiZGlnZXN0IixlKTt2YXIgcj1xci5mcm9tKHQpLG49a2kuZnJvbUNvbXBhY3QocHIodnIoW3IucixyLnNdKSkpLnRvREVSUmF3Qnl0ZXMoKSxvPWZ1bmN0aW9uKGUsdCxyLG49ITEpe3JldHVybiBDaS5mcm9tU2lnbmF0dXJlKGUsdCxyKS50b1Jhd0J5dGVzKG4pfShwcihlKSxuLHIueVBhcml0eSk7cmV0dXJuIGFyKG51bGwhPW8sImludmFsaWQgc2lnbmF1dHJlIGZvciBkaWdlc3QiLCJzaWduYXR1cmUiLHQpLGJyKG8pfX0se2tleToiYWRkUG9pbnRzIix2YWx1ZTpmdW5jdGlvbih0LHIsbil7dmFyIG89Q2kuZnJvbUhleChlLmNvbXB1dGVQdWJsaWNLZXkodCkuc3Vic3RyaW5nKDIpKSxpPUNpLmZyb21IZXgoZS5jb21wdXRlUHVibGljS2V5KHIpLnN1YnN0cmluZygyKSk7cmV0dXJuIjB4IitvLmFkZChpKS50b0hleCghIW4pfX1dKSxlfSgpO2Z1bmN0aW9uIHVhKGUpe3JldHVybiBuaSh3bygiMHgiKygic3RyaW5nIj09dHlwZW9mIGU/c2EuY29tcHV0ZVB1YmxpY0tleShlLCExKTplLnB1YmxpY0tleSkuc3Vic3RyaW5nKDQpKS5zdWJzdHJpbmcoMjYpKX1mdW5jdGlvbiBjYShlLHQpe3JldHVybiB1YShzYS5yZWNvdmVyUHVibGljS2V5KGUsdCkpfWZ1bmN0aW9uIGxhKGUsdCxyKXtyZXR1cm4gbGE9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbihlLHQscil7dmFyIG49W251bGxdO24ucHVzaC5hcHBseShuLHQpO3ZhciBvPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KGUsbikpO3JldHVybiByJiZUKG8sci5wcm90b3R5cGUpLG99LGxhLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBkYShlKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgTWFwP25ldyBNYXA6dm9pZCAwO3JldHVybiBkYT1mdW5jdGlvbihlKXtpZihudWxsPT09ZXx8KHI9ZSwtMT09PUZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwocikuaW5kZXhPZigiW25hdGl2ZSBjb2RlXSIpKSlyZXR1cm4gZTt2YXIgcjtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2lmKHZvaWQgMCE9PXQpe2lmKHQuaGFzKGUpKXJldHVybiB0LmdldChlKTt0LnNldChlLG4pfWZ1bmN0aW9uIG4oKXtyZXR1cm4gbGEoZSxhcmd1bWVudHMsUCh0aGlzKS5jb25zdHJ1Y3Rvcil9cmV0dXJuIG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpuLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLFQobixlKX0sZGEoZSl9ZnVuY3Rpb24gZmEoZSx0KXtnYShlLHQpLHQuYWRkKGUpfWZ1bmN0aW9uIHBhKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfWZ1bmN0aW9uIGhhKGUsdCxyKXtnYShlLHQpLHQuc2V0KGUscil9ZnVuY3Rpb24gZ2EoZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfXZhciB5YT0zMixiYT1uZXcgVWludDhBcnJheSh5YSksdmE9WyJ0aGVuIl0sbWE9e307ZnVuY3Rpb24gVGEoZSx0KXt2YXIgcj1uZXcgRXJyb3IoImRlZmVycmVkIGVycm9yIGR1cmluZyBBQkkgZGVjb2RpbmcgdHJpZ2dlcmVkIGFjY2Vzc2luZyAiLmNvbmNhdChlKSk7dGhyb3cgci5lcnJvcj10LHJ9dmFyIHdhPW5ldyBXZWFrTWFwLEFhPWZ1bmN0aW9uKGUpe3cobyxlKTt2YXIgdCxyLG49KHQ9byxyPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKSxmdW5jdGlvbigpe3ZhciBlLG49UCh0KTtpZihyKXt2YXIgbz1QKHRoaXMpLmNvbnN0cnVjdG9yO2U9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBKHRoaXMsZSl9KTtmdW5jdGlvbiBvKCl7dmFyIGU7Zyh0aGlzLG8pO2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KHQpLGk9MDtpPHQ7aSsrKXJbaV09YXJndW1lbnRzW2ldO3ZhciBhPXJbMF0scz1yWzFdLHU9KHJbMl18fFtdKS5zbGljZSgpLGM9ITA7YSE9PW1hJiYocz1yLHU9W10sYz0hMSksaGEobShlPW4uY2FsbCh0aGlzLHMubGVuZ3RoKSksd2Ese3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLHMuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtlW3JdPXR9KSk7dmFyIGw9dS5yZWR1Y2UoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiZlLnNldCh0LChlLmdldCh0KXx8MCkrMSksZX0pLG5ldyBNYXApO3JldHVybiBadChtKGUpLHdhLE9iamVjdC5mcmVlemUocy5tYXAoKGZ1bmN0aW9uKGUsdCl7dmFyIHI9dVt0XTtyZXR1cm4gbnVsbCE9ciYmMT09PWwuZ2V0KHIpP3I6bnVsbH0pKSkpLGM/KE9iamVjdC5mcmVlemUobShlKSksQShlLG5ldyBQcm94eShtKGUpLHtnZXQ6ZnVuY3Rpb24odCxyLG4pe2lmKCJzdHJpbmciPT10eXBlb2Ygcil7aWYoci5tYXRjaCgvXlswLTldKyQvKSl7dmFyIG89U3IociwiJWluZGV4Iik7aWYobzwwfHxvPj1lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJlc3VsdCByYW5nZSIpO3ZhciBpPXRbb107cmV0dXJuIGkgaW5zdGFuY2VvZiBFcnJvciYmVGEoImluZGV4ICIuY29uY2F0KG8pLGkpLGl9aWYodmEuaW5kZXhPZihyKT49MClyZXR1cm4gUmVmbGVjdC5nZXQodCxyLG4pO3ZhciBhPXRbcl07aWYoYSBpbnN0YW5jZW9mIEZ1bmN0aW9uKXJldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG89MDtvPGU7bysrKXJbb109YXJndW1lbnRzW29dO3JldHVybiBhLmFwcGx5KHRoaXM9PT1uP3Q6dGhpcyxyKX07aWYoIShyIGluIHQpKXJldHVybiB0LmdldFZhbHVlLmFwcGx5KG0oZSk9PT1uP3Q6bShlKSxbcl0pfXJldHVybiBSZWZsZWN0LmdldCh0LHIsbil9fSkpKTpBKGUpfXJldHVybiB2KG8sW3trZXk6InRvQXJyYXkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIHRoaXMuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXt0IGluc3RhbmNlb2YgRXJyb3ImJlRhKCJpbmRleCAiLmNvbmNhdChyKSx0KSxlLnB1c2godCl9KSksZX19LHtrZXk6InRvT2JqZWN0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHF0KHRoaXMsd2EpLnJlZHVjZSgoZnVuY3Rpb24odCxyLG4pe3JldHVybiBpcihudWxsIT1yLCJ2YWx1ZSBhdCBpbmRleCAkeyBpbmRleCB9IHVubmFtZWQiLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246InRvT2JqZWN0KCkifSksciBpbiB0fHwodFtyXT1lLmdldFZhbHVlKHIpKSx0fSkse30pfX0se2tleToic2xpY2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7bnVsbD09ZSYmKGU9MCksZTwwJiYoZSs9dGhpcy5sZW5ndGgpPDAmJihlPTApLG51bGw9PXQmJih0PXRoaXMubGVuZ3RoKSx0PDAmJih0Kz10aGlzLmxlbmd0aCk8MCYmKHQ9MCksdD50aGlzLmxlbmd0aCYmKHQ9dGhpcy5sZW5ndGgpO2Zvcih2YXIgcj1bXSxuPVtdLGk9ZTtpPHQ7aSsrKXIucHVzaCh0aGlzW2ldKSxuLnB1c2gocXQodGhpcyx3YSlbaV0pO3JldHVybiBuZXcgbyhtYSxyLG4pfX0se2tleToiZmlsdGVyIix2YWx1ZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxuPVtdLGk9MDtpPHRoaXMubGVuZ3RoO2krKyl7dmFyIGE9dGhpc1tpXTthIGluc3RhbmNlb2YgRXJyb3ImJlRhKCJpbmRleCAiLmNvbmNhdChpKSxhKSxlLmNhbGwodCxhLGksdGhpcykmJihyLnB1c2goYSksbi5wdXNoKHF0KHRoaXMsd2EpW2ldKSl9cmV0dXJuIG5ldyBvKG1hLHIsbil9fSx7a2V5OiJtYXAiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPVtdLG49MDtuPHRoaXMubGVuZ3RoO24rKyl7dmFyIG89dGhpc1tuXTtvIGluc3RhbmNlb2YgRXJyb3ImJlRhKCJpbmRleCAiLmNvbmNhdChuKSxvKSxyLnB1c2goZS5jYWxsKHQsbyxuLHRoaXMpKX1yZXR1cm4gcn19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1xdCh0aGlzLHdhKS5pbmRleE9mKGUpO2lmKC0xIT09dCl7dmFyIHI9dGhpc1t0XTtyZXR1cm4gciBpbnN0YW5jZW9mIEVycm9yJiZUYSgicHJvcGVydHkgIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkpLHIuZXJyb3IpLHJ9fX1dLFt7a2V5OiJmcm9tSXRlbXMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBvKG1hLGUsdCl9fV0pLG99KGRhKEFycmF5KSk7ZnVuY3Rpb24gUGEoZSl7dmFyIHQ9X3IoZSk7cmV0dXJuIGlyKHQubGVuZ3RoPD15YSwidmFsdWUgb3V0LW9mLWJvdW5kcyIsIkJVRkZFUl9PVkVSUlVOIix7YnVmZmVyOnQsbGVuZ3RoOnlhLG9mZnNldDp0Lmxlbmd0aH0pLHQubGVuZ3RoIT09eWEmJih0PXByKHZyKFtiYS5zbGljZSh0Lmxlbmd0aCV5YSksdF0pKSksdH12YXIgV2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscixuLG8pe2codGhpcyxlKSxXKHRoaXMsIm5hbWUiLHZvaWQgMCksVyh0aGlzLCJ0eXBlIix2b2lkIDApLFcodGhpcywibG9jYWxOYW1lIix2b2lkIDApLFcodGhpcywiZHluYW1pYyIsdm9pZCAwKSx0cih0aGlzLHtuYW1lOnQsdHlwZTpyLGxvY2FsTmFtZTpuLGR5bmFtaWM6b30se25hbWU6InN0cmluZyIsdHlwZToic3RyaW5nIixsb2NhbE5hbWU6InN0cmluZyIsZHluYW1pYzoiYm9vbGVhbiJ9KX1yZXR1cm4gdihlLFt7a2V5OiJfdGhyb3dFcnJvciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXthcighMSxlLHRoaXMubG9jYWxOYW1lLHQpfX1dKSxlfSgpLEJhPW5ldyBXZWFrTWFwLENhPW5ldyBXZWFrTWFwLEVhPW5ldyBXZWFrU2V0LE1hPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe2codGhpcyxlKSxmYSh0aGlzLEVhKSxoYSh0aGlzLEJhLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxoYSh0aGlzLENhLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxadCh0aGlzLEJhLFtdKSxadCh0aGlzLENhLDApfXJldHVybiB2KGUsW3trZXk6ImRhdGEiLGdldDpmdW5jdGlvbigpe3JldHVybiB2cihxdCh0aGlzLEJhKSl9fSx7a2V5OiJsZW5ndGgiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLENhKX19LHtrZXk6ImFwcGVuZFdyaXRlciIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHBhKHRoaXMsRWEsa2EpLmNhbGwodGhpcyxwcihlLmRhdGEpKX19LHtrZXk6IndyaXRlQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXByKGUpLHI9dC5sZW5ndGgleWE7cmV0dXJuIHImJih0PXByKHZyKFt0LGJhLnNsaWNlKHIpXSkpKSxwYSh0aGlzLEVhLGthKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJ3cml0ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gcGEodGhpcyxFYSxrYSkuY2FsbCh0aGlzLFBhKGUpKX19LHtrZXk6IndyaXRlVXBkYXRhYmxlVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXF0KHRoaXMsQmEpLmxlbmd0aDtyZXR1cm4gcXQodGhpcyxCYSkucHVzaChiYSksWnQodGhpcyxDYSxxdCh0aGlzLENhKSt5YSksZnVuY3Rpb24ocil7cXQoZSxCYSlbdF09UGEocil9fX1dKSxlfSgpO2Z1bmN0aW9uIGthKGUpe3JldHVybiBxdCh0aGlzLEJhKS5wdXNoKGUpLFp0KHRoaXMsQ2EscXQodGhpcyxDYSkrZS5sZW5ndGgpLGUubGVuZ3RofXZhciBJYT1uZXcgV2Vha01hcCxPYT1uZXcgV2Vha01hcCx4YT1uZXcgV2Vha1NldCxTYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXtnKHRoaXMsZSksZmEodGhpcyx4YSksVyh0aGlzLCJhbGxvd0xvb3NlIix2b2lkIDApLGhhKHRoaXMsSWEse3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLGhhKHRoaXMsT2Ese3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLHRyKHRoaXMse2FsbG93TG9vc2U6ISFyfSksWnQodGhpcyxJYSxwcih0KSksWnQodGhpcyxPYSwwKX1yZXR1cm4gdihlLFt7a2V5OiJkYXRhIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYnIocXQodGhpcyxJYSkpfX0se2tleToiZGF0YUxlbmd0aCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMsSWEpLmxlbmd0aH19LHtrZXk6ImNvbnN1bWVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcXQodGhpcyxPYSl9fSx7a2V5OiJieXRlcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KHF0KHRoaXMsSWEpKX19LHtrZXk6InN1YlJlYWRlciIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHF0KHRoaXMsSWEpLnNsaWNlKHF0KHRoaXMsT2EpK3QpLHRoaXMuYWxsb3dMb29zZSl9fSx7a2V5OiJyZWFkQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9cGEodGhpcyx4YSxGYSkuY2FsbCh0aGlzLDAsZSwhIXQpO3JldHVybiBadCh0aGlzLE9hLHF0KHRoaXMsT2EpK3IubGVuZ3RoKSxyLnNsaWNlKDAsZSl9fSx7a2V5OiJyZWFkVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHhyKHRoaXMucmVhZEJ5dGVzKHlhKSl9fSx7a2V5OiJyZWFkSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFNyKHhyKHRoaXMucmVhZEJ5dGVzKHlhKSkpfX1dKSxlfSgpO2Z1bmN0aW9uIEZhKGUsdCxyKXt2YXIgbj1NYXRoLmNlaWwodC95YSkqeWE7cmV0dXJuIHF0KHRoaXMsT2EpK24+cXQodGhpcyxJYSkubGVuZ3RoJiYodGhpcy5hbGxvd0xvb3NlJiZyJiZxdCh0aGlzLE9hKSt0PD1xdCh0aGlzLElhKS5sZW5ndGg/bj10OmlyKCExLCJkYXRhIG91dC1vZi1ib3VuZHMiLCJCVUZGRVJfT1ZFUlJVTiIse2J1ZmZlcjpwcihxdCh0aGlzLElhKSksbGVuZ3RoOnF0KHRoaXMsSWEpLmxlbmd0aCxvZmZzZXQ6cXQodGhpcyxPYSkrbn0pKSxxdCh0aGlzLElhKS5zbGljZShxdCh0aGlzLE9hKSxxdCh0aGlzLE9hKStuKX12YXIgX2E9e307ZnVuY3Rpb24gUmEoZSx0KXt2YXIgcj0hMTtyZXR1cm4gdDwwJiYocj0hMCx0Kj0tMSksbmV3IExhKF9hLCIiLmNvbmNhdChyPyIiOiJ1IiwiaW50IikuY29uY2F0KHQpLGUse3NpZ25lZDpyLHdpZHRoOnR9KX1mdW5jdGlvbiBOYShlLHQpe3JldHVybiBuZXcgTGEoX2EsImJ5dGVzIi5jb25jYXQodHx8IiIpLGUse3NpemU6dH0pfXZhciBVYT1TeW1ib2wuZm9yKCJfZXRoZXJzX3R5cGVkIiksRGE9bmV3IFdlYWtNYXAsTGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscixuLG8pe2codGhpcyxlKSxXKHRoaXMsInR5cGUiLHZvaWQgMCksVyh0aGlzLCJ2YWx1ZSIsdm9pZCAwKSxmdW5jdGlvbihlLHQscil7IWZ1bmN0aW9uKGUsdCl7aWYodC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0oZSx0KSx0LnNldChlLHIpfSh0aGlzLERhLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxXKHRoaXMsIl90eXBlZFN5bWJvbCIsdm9pZCAwKSxudWxsPT1vJiYobz1udWxsKSxscihfYSx0LCJUeXBlZCIpLHRyKHRoaXMse190eXBlZFN5bWJvbDpVYSx0eXBlOnIsdmFsdWU6bn0pLFp0KHRoaXMsRGEsbyksdGhpcy5mb3JtYXQoKX1yZXR1cm4gdihlLFt7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoImFycmF5Ij09PXRoaXMudHlwZSl0aHJvdyBuZXcgRXJyb3IoIiIpO2lmKCJkeW5hbWljQXJyYXkiPT09dGhpcy50eXBlKXRocm93IG5ldyBFcnJvcigiIik7cmV0dXJuInR1cGxlIj09PXRoaXMudHlwZT8idHVwbGUoIi5jb25jYXQodGhpcy52YWx1ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZvcm1hdCgpfSkpLmpvaW4oIiwiKSwiKSIpOnRoaXMudHlwZX19LHtrZXk6ImRlZmF1bHRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMH19LHtrZXk6Im1pblZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAwfX0se2tleToibWF4VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDB9fSx7a2V5OiJpc0JpZ0ludCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMudHlwZS5tYXRjaCgvXnU/aW50WzAtOV0rJC8pfX0se2tleToiaXNEYXRhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGUuc3RhcnRzV2l0aCgiYnl0ZXMiKX19LHtrZXk6ImlzU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiJzdHJpbmciPT09dGhpcy50eXBlfX0se2tleToidHVwbGVOYW1lIixnZXQ6ZnVuY3Rpb24oKXtpZigidHVwbGUiIT09dGhpcy50eXBlKXRocm93IFR5cGVFcnJvcigibm90IGEgdHVwbGUiKTtyZXR1cm4gcXQodGhpcyxEYSl9fSx7a2V5OiJhcnJheUxlbmd0aCIsZ2V0OmZ1bmN0aW9uKCl7aWYoImFycmF5IiE9PXRoaXMudHlwZSl0aHJvdyBUeXBlRXJyb3IoIm5vdCBhbiBhcnJheSIpO3JldHVybiEwPT09cXQodGhpcyxEYSk/LTE6ITE9PT1xdCh0aGlzLERhKT90aGlzLnZhbHVlLmxlbmd0aDpudWxsfX1dLFt7a2V5OiJmcm9tIix2YWx1ZTpmdW5jdGlvbih0LHIpe3JldHVybiBuZXcgZShfYSx0LHIpfX0se2tleToidWludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDgpfX0se2tleToidWludDE2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwxNil9fSx7a2V5OiJ1aW50MjQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDI0KX19LHtrZXk6InVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMzIpfX0se2tleToidWludDQwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSw0MCl9fSx7a2V5OiJ1aW50NDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDQ4KX19LHtrZXk6InVpbnQ1NiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsNTYpfX0se2tleToidWludDY0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSw2NCl9fSx7a2V5OiJ1aW50NzIiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDcyKX19LHtrZXk6InVpbnQ4MCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsODApfX0se2tleToidWludDg4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSw4OCl9fSx7a2V5OiJ1aW50OTYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDk2KX19LHtrZXk6InVpbnQxMDQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDEwNCl9fSx7a2V5OiJ1aW50MTEyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwxMTIpfX0se2tleToidWludDEyMCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMTIwKX19LHtrZXk6InVpbnQxMjgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDEyOCl9fSx7a2V5OiJ1aW50MTM2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwxMzYpfX0se2tleToidWludDE0NCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMTQ0KX19LHtrZXk6InVpbnQxNTIiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDE1Mil9fSx7a2V5OiJ1aW50MTYwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwxNjApfX0se2tleToidWludDE2OCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMTY4KX19LHtrZXk6InVpbnQxNzYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDE3Nil9fSx7a2V5OiJ1aW50MTg0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwxODQpfX0se2tleToidWludDE5MiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMTkyKX19LHtrZXk6InVpbnQyMDAiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDIwMCl9fSx7a2V5OiJ1aW50MjA4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwyMDgpfX0se2tleToidWludDIxNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMjE2KX19LHtrZXk6InVpbnQyMjQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDIyNCl9fSx7a2V5OiJ1aW50MjMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwyMzIpfX0se2tleToidWludDI0MCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMjQwKX19LHtrZXk6InVpbnQyNDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLDI0OCl9fSx7a2V5OiJ1aW50MjU2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwyNTYpfX0se2tleToidWludCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsMjU2KX19LHtrZXk6ImludDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC04KX19LHtrZXk6ImludDE2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMTYpfX0se2tleToiaW50MjQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0yNCl9fSx7a2V5OiJpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTMyKX19LHtrZXk6ImludDQwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtNDApfX0se2tleToiaW50NDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC00OCl9fSx7a2V5OiJpbnQ1NiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTU2KX19LHtrZXk6ImludDY0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtNjQpfX0se2tleToiaW50NzIiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC03Mil9fSx7a2V5OiJpbnQ4MCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTgwKX19LHtrZXk6ImludDg4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtODgpfX0se2tleToiaW50OTYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC05Nil9fSx7a2V5OiJpbnQxMDQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0xMDQpfX0se2tleToiaW50MTEyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMTEyKX19LHtrZXk6ImludDEyMCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTEyMCl9fSx7a2V5OiJpbnQxMjgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0xMjgpfX0se2tleToiaW50MTM2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMTM2KX19LHtrZXk6ImludDE0NCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTE0NCl9fSx7a2V5OiJpbnQxNTIiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0xNTIpfX0se2tleToiaW50MTYwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMTYwKX19LHtrZXk6ImludDE2OCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTE2OCl9fSx7a2V5OiJpbnQxNzYiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0xNzYpfX0se2tleToiaW50MTg0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMTg0KX19LHtrZXk6ImludDE5MiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTE5Mil9fSx7a2V5OiJpbnQyMDAiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0yMDApfX0se2tleToiaW50MjA4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMjA4KX19LHtrZXk6ImludDIxNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTIxNil9fSx7a2V5OiJpbnQyMjQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0yMjQpfX0se2tleToiaW50MjMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMjMyKX19LHtrZXk6ImludDI0MCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTI0MCl9fSx7a2V5OiJpbnQyNDgiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBSYShlLC0yNDgpfX0se2tleToiaW50MjU2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUmEoZSwtMjU2KX19LHtrZXk6ImludCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJhKGUsLTI1Nil9fSx7a2V5OiJieXRlczEiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBOYShlLDEpfX0se2tleToiYnl0ZXMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyKX19LHtrZXk6ImJ5dGVzMyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIE5hKGUsMyl9fSx7a2V5OiJieXRlczQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBOYShlLDQpfX0se2tleToiYnl0ZXM1Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSw1KX19LHtrZXk6ImJ5dGVzNiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIE5hKGUsNil9fSx7a2V5OiJieXRlczciLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBOYShlLDcpfX0se2tleToiYnl0ZXM4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSw4KX19LHtrZXk6ImJ5dGVzOSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIE5hKGUsOSl9fSx7a2V5OiJieXRlczEwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxMCl9fSx7a2V5OiJieXRlczExIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxMSl9fSx7a2V5OiJieXRlczEyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxMil9fSx7a2V5OiJieXRlczEzIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxMyl9fSx7a2V5OiJieXRlczE0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxNCl9fSx7a2V5OiJieXRlczE1Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxNSl9fSx7a2V5OiJieXRlczE2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxNil9fSx7a2V5OiJieXRlczE3Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxNyl9fSx7a2V5OiJieXRlczE4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxOCl9fSx7a2V5OiJieXRlczE5Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwxOSl9fSx7a2V5OiJieXRlczIwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyMCl9fSx7a2V5OiJieXRlczIxIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyMSl9fSx7a2V5OiJieXRlczIyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyMil9fSx7a2V5OiJieXRlczIzIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyMyl9fSx7a2V5OiJieXRlczI0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyNCl9fSx7a2V5OiJieXRlczI1Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyNSl9fSx7a2V5OiJieXRlczI2Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyNil9fSx7a2V5OiJieXRlczI3Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyNyl9fSx7a2V5OiJieXRlczI4Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyOCl9fSx7a2V5OiJieXRlczI5Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwyOSl9fSx7a2V5OiJieXRlczMwIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwzMCl9fSx7a2V5OiJieXRlczMxIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwzMSl9fSx7a2V5OiJieXRlczMyIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gTmEoZSwzMil9fSx7a2V5OiJhZGRyZXNzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUoX2EsImFkZHJlc3MiLHQpfX0se2tleToiYm9vbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKF9hLCJib29sIiwhIXQpfX0se2tleToiYnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZShfYSwiYnl0ZXMiLHQpfX0se2tleToic3RyaW5nIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUoX2EsInN0cmluZyIsdCl9fSx7a2V5OiJhcnJheSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt0aHJvdyBuZXcgRXJyb3IoIm5vdCBpbXBsZW1lbnRlZCB5ZXQiKX19LHtrZXk6InR1cGxlIix2YWx1ZTpmdW5jdGlvbihlLHQpe3Rocm93IG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIHlldCIpfX0se2tleToib3ZlcnJpZGVzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUoX2EsIm92ZXJyaWRlcyIsT2JqZWN0LmFzc2lnbih7fSx0KSl9fSx7a2V5OiJpc1R5cGVkIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmIm9iamVjdCI9PT1oKGUpJiYiX3R5cGVkU3ltYm9sImluIGUmJmUuX3R5cGVkU3ltYm9sPT09VWF9fSx7a2V5OiJkZXJlZmVyZW5jZSIsdmFsdWU6ZnVuY3Rpb24odCxyKXtpZihlLmlzVHlwZWQodCkpe2lmKHQudHlwZSE9PXIpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHR5cGU6IGV4cGVjZXRkICIuY29uY2F0KHIsIiwgZ290ICIpLmNvbmNhdCh0LnR5cGUpKTtyZXR1cm4gdC52YWx1ZX1yZXR1cm4gdH19XSksZX0oKTt2YXIgamE9ZnVuY3Rpb24oZSl7dyhvLGUpO3ZhciB0LHIsbj0odD1vLHI9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGZ1bmN0aW9uKCl7dmFyIGUsbj1QKHQpO2lmKHIpe3ZhciBvPVAodGhpcykuY29uc3RydWN0b3I7ZT1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEEodGhpcyxlKX0pO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGcodGhpcyxvKSxuLmNhbGwodGhpcywiYWRkcmVzcyIsImFkZHJlc3MiLGUsITEpfXJldHVybiB2KG8sW3trZXk6ImRlZmF1bHRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn19LHtrZXk6ImVuY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1MYS5kZXJlZmVyZW5jZSh0LCJzdHJpbmciKTt0cnl7cj1uaShyKX1jYXRjaChlKXtyZXR1cm4gdGhpcy5fdGhyb3dFcnJvcihlLm1lc3NhZ2UsdCl9cmV0dXJuIGUud3JpdGVWYWx1ZShyKX19LHtrZXk6ImRlY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5pKEZyKGUucmVhZFZhbHVlKCksMjApKX19XSksb30oV2EpO3ZhciB6YT1mdW5jdGlvbihlKXt3KG8sZSk7dmFyIHQscixuPSh0PW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSxuPVAodCk7aWYocil7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2UgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gbyhlKXt2YXIgdDtyZXR1cm4gZyh0aGlzLG8pLFcobSh0PW4uY2FsbCh0aGlzLGUubmFtZSxlLnR5cGUsIl8iLGUuZHluYW1pYykpLCJjb2RlciIsdm9pZCAwKSx0LmNvZGVyPWUsdH1yZXR1cm4gdihvLFt7a2V5OiJkZWZhdWx0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29kZXIuZGVmYXVsdFZhbHVlKCl9fSx7a2V5OiJlbmNvZGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuY29kZXIuZW5jb2RlKGUsdCl9fSx7a2V5OiJkZWNvZGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmNvZGVyLmRlY29kZShlKX19XSksb30oV2EpO2Z1bmN0aW9uICRhKGUsdCxyKXt2YXIgbj1bXTtpZihBcnJheS5pc0FycmF5KHIpKW49cjtlbHNlIGlmKHImJiJvYmplY3QiPT09aChyKSl7dmFyIG89e307bj10Lm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sb2NhbE5hbWU7cmV0dXJuIGlyKHQsImNhbm5vdCBlbmNvZGUgb2JqZWN0IGZvciBzaWduYXR1cmUgd2l0aCBtaXNzaW5nIG5hbWVzIiwiSU5WQUxJRF9BUkdVTUVOVCIse2FyZ3VtZW50OiJ2YWx1ZXMiLGluZm86e2NvZGVyOmV9LHZhbHVlOnJ9KSxpcighb1t0XSwiY2Fubm90IGVuY29kZSBvYmplY3QgZm9yIHNpZ25hdHVyZSB3aXRoIGR1cGxpY2F0ZSBuYW1lcyIsIklOVkFMSURfQVJHVU1FTlQiLHthcmd1bWVudDoidmFsdWVzIixpbmZvOntjb2RlcjplfSx2YWx1ZTpyfSksb1t0XT0hMCxyW3RdfSkpfWVsc2UgYXIoITEsImludmFsaWQgdHVwbGUgdmFsdWUiLCJ0dXBsZSIscik7YXIodC5sZW5ndGg9PT1uLmxlbmd0aCwidHlwZXMvdmFsdWUgbGVuZ3RoIG1pc21hdGNoIiwidHVwbGUiLHIpO3ZhciBpPW5ldyBNYSxhPW5ldyBNYSxzPVtdO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7dmFyIHI9blt0XTtpZihlLmR5bmFtaWMpe3ZhciBvPWEubGVuZ3RoO2UuZW5jb2RlKGEscik7dmFyIHU9aS53cml0ZVVwZGF0YWJsZVZhbHVlKCk7cy5wdXNoKChmdW5jdGlvbihlKXt1KGUrbyl9KSl9ZWxzZSBlLmVuY29kZShpLHIpfSkpLHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZShpLmxlbmd0aCl9KSksZS5hcHBlbmRXcml0ZXIoaSkrZS5hcHBlbmRXcml0ZXIoYSl9ZnVuY3Rpb24gVmEoZSx0KXt2YXIgcj1bXSxuPVtdLG89ZS5zdWJSZWFkZXIoMCk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9bnVsbDtpZih0LmR5bmFtaWMpe3ZhciBhPWUucmVhZEluZGV4KCkscz1vLnN1YlJlYWRlcihhKTt0cnl7aT10LmRlY29kZShzKX1jYXRjaChlKXtpZihucihlLCJCVUZGRVJfT1ZFUlJVTiIpKXRocm93IGU7KGk9ZSkuYmFzZVR5cGU9dC5uYW1lLGkubmFtZT10LmxvY2FsTmFtZSxpLnR5cGU9dC50eXBlfX1lbHNlIHRyeXtpPXQuZGVjb2RlKGUpfWNhdGNoKGUpe2lmKG5yKGUsIkJVRkZFUl9PVkVSUlVOIikpdGhyb3cgZTsoaT1lKS5iYXNlVHlwZT10Lm5hbWUsaS5uYW1lPXQubG9jYWxOYW1lLGkudHlwZT10LnR5cGV9aWYobnVsbD09aSl0aHJvdyBuZXcgRXJyb3IoImludmVzdGlnYXRlIik7ci5wdXNoKGkpLG4ucHVzaCh0LmxvY2FsTmFtZXx8bnVsbCl9KSksQWEuZnJvbUl0ZW1zKHIsbil9dmFyIEdhPWZ1bmN0aW9uKGUpe3cobyxlKTt2YXIgdCxyLG49KHQ9byxyPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKSxmdW5jdGlvbigpe3ZhciBlLG49UCh0KTtpZihyKXt2YXIgbz1QKHRoaXMpLmNvbnN0cnVjdG9yO2U9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBKHRoaXMsZSl9KTtmdW5jdGlvbiBvKGUsdCxyKXt2YXIgaTtnKHRoaXMsbyk7dmFyIGE9ZS50eXBlKyJbIisodD49MD90OiIiKSsiXSIscz0tMT09PXR8fGUuZHluYW1pYztyZXR1cm4gVyhtKGk9bi5jYWxsKHRoaXMsImFycmF5IixhLHIscykpLCJjb2RlciIsdm9pZCAwKSxXKG0oaSksImxlbmd0aCIsdm9pZCAwKSx0cihtKGkpLHtjb2RlcjplLGxlbmd0aDp0fSksaX1yZXR1cm4gdihvLFt7a2V5OiJkZWZhdWx0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuY29kZXIuZGVmYXVsdFZhbHVlKCksdD1bXSxyPTA7cjx0aGlzLmxlbmd0aDtyKyspdC5wdXNoKGUpO3JldHVybiB0fX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPUxhLmRlcmVmZXJlbmNlKHQsImFycmF5Iik7QXJyYXkuaXNBcnJheShyKXx8dGhpcy5fdGhyb3dFcnJvcigiZXhwZWN0ZWQgYXJyYXkgdmFsdWUiLHIpO3ZhciBuPXRoaXMubGVuZ3RoOy0xPT09biYmKG49ci5sZW5ndGgsZS53cml0ZVZhbHVlKHIubGVuZ3RoKSksc3Ioci5sZW5ndGgsbiwiY29kZXIgYXJyYXkiKyh0aGlzLmxvY2FsTmFtZT8iICIrdGhpcy5sb2NhbE5hbWU6IiIpKTtmb3IodmFyIG89W10saT0wO2k8ci5sZW5ndGg7aSsrKW8ucHVzaCh0aGlzLmNvZGVyKTtyZXR1cm4gJGEoZSxvLHIpfX0se2tleToiZGVjb2RlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aDstMT09PXQmJmlyKCh0PWUucmVhZEluZGV4KCkpKnlhPD1lLmRhdGFMZW5ndGgsImluc3VmZmljaWVudCBkYXRhIGxlbmd0aCIsIkJVRkZFUl9PVkVSUlVOIix7YnVmZmVyOmUuYnl0ZXMsb2Zmc2V0OnQqeWEsbGVuZ3RoOmUuZGF0YUxlbmd0aH0pO2Zvcih2YXIgcj1bXSxuPTA7bjx0O24rKylyLnB1c2gobmV3IHphKHRoaXMuY29kZXIpKTtyZXR1cm4gVmEoZSxyKX19XSksb30oV2EpO3ZhciBIYT1mdW5jdGlvbihlKXt3KG8sZSk7dmFyIHQscixuPSh0PW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSxuPVAodCk7aWYocil7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2UgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZyh0aGlzLG8pLG4uY2FsbCh0aGlzLCJib29sIiwiYm9vbCIsZSwhMSl9cmV0dXJuIHYobyxbe2tleToiZGVmYXVsdFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiExfX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPUxhLmRlcmVmZXJlbmNlKHQsImJvb2wiKTtyZXR1cm4gZS53cml0ZVZhbHVlKHI/MTowKX19LHtrZXk6ImRlY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuISFlLnJlYWRWYWx1ZSgpfX1dKSxvfShXYSk7ZnVuY3Rpb24gS2EoKXtyZXR1cm4gS2E9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWZ1bmN0aW9uKGUsdCl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJm51bGwhPT0oZT1QKGUpKTspO3JldHVybiBlfShlLHQpO2lmKG4pe3ZhciBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KTtyZXR1cm4gby5nZXQ/by5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/ZTpyKTpvLnZhbHVlfX0sS2EuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFphKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuPVAoZSk7aWYodCl7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLHIpfX12YXIgcWE9ZnVuY3Rpb24oZSl7dyhyLGUpO3ZhciB0PVphKHIpO2Z1bmN0aW9uIHIoZSxuKXtyZXR1cm4gZyh0aGlzLHIpLHQuY2FsbCh0aGlzLGUsZSxuLCEwKX1yZXR1cm4gdihyLFt7a2V5OiJkZWZhdWx0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIjB4In19LHtrZXk6ImVuY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD1wcih0KSxlLndyaXRlVmFsdWUodC5sZW5ndGgpK2Uud3JpdGVCeXRlcyh0KX19LHtrZXk6ImRlY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVhZEJ5dGVzKGUucmVhZEluZGV4KCksITApfX1dKSxyfShXYSksSmE9ZnVuY3Rpb24oZSl7dyhyLGUpO3ZhciB0PVphKHIpO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIGcodGhpcyxyKSx0LmNhbGwodGhpcywiYnl0ZXMiLGUpfXJldHVybiB2KHIsW3trZXk6ImRlY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGJyKEthKFAoci5wcm90b3R5cGUpLCJkZWNvZGUiLHRoaXMpLmNhbGwodGhpcyxlKSl9fV0pLHJ9KHFhKTt2YXIgWWE9ZnVuY3Rpb24oZSl7dyhvLGUpO3ZhciB0LHIsbj0odD1vLHI9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGZ1bmN0aW9uKCl7dmFyIGUsbj1QKHQpO2lmKHIpe3ZhciBvPVAodGhpcykuY29uc3RydWN0b3I7ZT1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEEodGhpcyxlKX0pO2Z1bmN0aW9uIG8oZSx0KXt2YXIgcjtnKHRoaXMsbyk7dmFyIGk9ImJ5dGVzIitTdHJpbmcoZSk7cmV0dXJuIFcobShyPW4uY2FsbCh0aGlzLGksaSx0LCExKSksInNpemUiLHZvaWQgMCksdHIobShyKSx7c2l6ZTplfSx7c2l6ZToibnVtYmVyIn0pLHJ9cmV0dXJuIHYobyxbe2tleToiZGVmYXVsdFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLnN1YnN0cmluZygwLDIrMip0aGlzLnNpemUpfX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPXByKExhLmRlcmVmZXJlbmNlKHQsdGhpcy50eXBlKSk7cmV0dXJuIHIubGVuZ3RoIT09dGhpcy5zaXplJiZ0aGlzLl90aHJvd0Vycm9yKCJpbmNvcnJlY3QgZGF0YSBsZW5ndGgiLHQpLGUud3JpdGVCeXRlcyhyKX19LHtrZXk6ImRlY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGJyKGUucmVhZEJ5dGVzKHRoaXMuc2l6ZSkpfX1dKSxvfShXYSk7dmFyIFhhPW5ldyBVaW50OEFycmF5KFtdKSxRYT1mdW5jdGlvbihlKXt3KG8sZSk7dmFyIHQscixuPSh0PW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSxuPVAodCk7aWYocil7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2UgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZyh0aGlzLG8pLG4uY2FsbCh0aGlzLCJudWxsIiwiIixlLCExKX1yZXR1cm4gdihvLFt7a2V5OiJkZWZhdWx0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9fSx7a2V5OiJlbmNvZGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGwhPXQmJnRoaXMuX3Rocm93RXJyb3IoIm5vdCBudWxsIix0KSxlLndyaXRlQnl0ZXMoWGEpfX0se2tleToiZGVjb2RlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWFkQnl0ZXMoMCksbnVsbH19XSksb30oV2EpO3ZhciBlcz1CaWdJbnQoMCksdHM9QmlnSW50KDEpLHJzPUJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmIiksbnM9ZnVuY3Rpb24oZSl7dyhvLGUpO3ZhciB0LHIsbj0odD1vLHI9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdClyZXR1cm4hMTtpZihSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLChmdW5jdGlvbigpe30pKSksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSgpLGZ1bmN0aW9uKCl7dmFyIGUsbj1QKHQpO2lmKHIpe3ZhciBvPVAodGhpcykuY29uc3RydWN0b3I7ZT1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEEodGhpcyxlKX0pO2Z1bmN0aW9uIG8oZSx0LHIpe3ZhciBpO2codGhpcyxvKTt2YXIgYT0odD8iaW50IjoidWludCIpKzgqZTtyZXR1cm4gVyhtKGk9bi5jYWxsKHRoaXMsYSxhLHIsITEpKSwic2l6ZSIsdm9pZCAwKSxXKG0oaSksInNpZ25lZCIsdm9pZCAwKSx0cihtKGkpLHtzaXplOmUsc2lnbmVkOnR9LHtzaXplOiJudW1iZXIiLHNpZ25lZDoiYm9vbGVhbiJ9KSxpfXJldHVybiB2KG8sW3trZXk6ImRlZmF1bHRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMH19LHtrZXk6ImVuY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1NcihMYS5kZXJlZmVyZW5jZSh0LHRoaXMudHlwZSkpLG49RXIocnMsOCp5YSk7aWYodGhpcy5zaWduZWQpe3ZhciBvPUVyKG4sOCp0aGlzLnNpemUtMSk7KHI+b3x8cjwtKG8rdHMpKSYmdGhpcy5fdGhyb3dFcnJvcigidmFsdWUgb3V0LW9mLWJvdW5kcyIsdCkscj1DcihyLDgqeWEpfWVsc2Uocjxlc3x8cj5FcihuLDgqdGhpcy5zaXplKSkmJnRoaXMuX3Rocm93RXJyb3IoInZhbHVlIG91dC1vZi1ib3VuZHMiLHQpO3JldHVybiBlLndyaXRlVmFsdWUocil9fSx7a2V5OiJkZWNvZGUiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PUVyKGUucmVhZFZhbHVlKCksOCp0aGlzLnNpemUpO3JldHVybiB0aGlzLnNpZ25lZCYmKHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1rcihlLCJ2YWx1ZSIpLG49QmlnSW50KFNyKHQsIndpZHRoIikpO3JldHVybiBpcihyPj5uPT09UHIsIm92ZXJmbG93IiwiTlVNRVJJQ19GQVVMVCIse29wZXJhdGlvbjoiZnJvbVR3b3MiLGZhdWx0OiJvdmVyZmxvdyIsdmFsdWU6ZX0pLHI+Pm4tV3I/LSgofnImKFdyPDxuKS1XcikrV3IpOnJ9KHQsOCp0aGlzLnNpemUpKSx0fX1dKSxvfShXYSk7dmFyIG9zPWZ1bmN0aW9uKGUpe3cobyxlKTt2YXIgdCxyLG49KHQ9byxyPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKSxmdW5jdGlvbigpe3ZhciBlLG49UCh0KTtpZihyKXt2YXIgbz1QKHRoaXMpLmNvbnN0cnVjdG9yO2U9UmVmbGVjdC5jb25zdHJ1Y3Qobixhcmd1bWVudHMsbyl9ZWxzZSBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBKHRoaXMsZSl9KTtmdW5jdGlvbiBvKGUpe3JldHVybiBnKHRoaXMsbyksbi5jYWxsKHRoaXMsInN0cmluZyIsZSl9cmV0dXJuIHYobyxbe2tleToiZGVmYXVsdFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiIifX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiBLYShQKG8ucHJvdG90eXBlKSwiZW5jb2RlIix0aGlzKS5jYWxsKHRoaXMsZSxYbihMYS5kZXJlZmVyZW5jZSh0LCJzdHJpbmciKSkpfX0se2tleToiZGVjb2RlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gUW4oS2EoUChvLnByb3RvdHlwZSksImRlY29kZSIsdGhpcykuY2FsbCh0aGlzLGUpKX19XSksb30ocWEpO3ZhciBpcz1mdW5jdGlvbihlKXt3KG8sZSk7dmFyIHQscixuPSh0PW8scj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSxuPVAodCk7aWYocil7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2UgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gbyhlLHQpe3ZhciByO2codGhpcyxvKTt2YXIgaT0hMSxhPVtdO2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5keW5hbWljJiYoaT0hMCksYS5wdXNoKGUudHlwZSl9KSk7dmFyIHM9InR1cGxlKCIrYS5qb2luKCIsIikrIikiO3JldHVybiBXKG0ocj1uLmNhbGwodGhpcywidHVwbGUiLHMsdCxpKSksImNvZGVycyIsdm9pZCAwKSx0cihtKHIpLHtjb2RlcnM6T2JqZWN0LmZyZWV6ZShlLnNsaWNlKCkpfSkscn1yZXR1cm4gdihvLFt7a2V5OiJkZWZhdWx0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9W107dGhpcy5jb2RlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZS5wdXNoKHQuZGVmYXVsdFZhbHVlKCkpfSkpO3ZhciB0PXRoaXMuY29kZXJzLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXt2YXIgcj10LmxvY2FsTmFtZTtyZXR1cm4gciYmKGVbcl18fChlW3JdPTApLGVbcl0rKyksZX0pLHt9KTtyZXR1cm4gdGhpcy5jb2RlcnMuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXt2YXIgbz1yLmxvY2FsTmFtZTtvJiYxPT09dFtvXSYmKCJsZW5ndGgiPT09byYmKG89Il9sZW5ndGgiKSxudWxsPT1lW29dJiYoZVtvXT1lW25dKSl9KSksT2JqZWN0LmZyZWV6ZShlKX19LHtrZXk6ImVuY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1MYS5kZXJlZmVyZW5jZSh0LCJ0dXBsZSIpO3JldHVybiAkYShlLHRoaXMuY29kZXJzLHIpfX0se2tleToiZGVjb2RlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gVmEoZSx0aGlzLmNvZGVycyl9fV0pLG99KFdhKTtmdW5jdGlvbiBhcyhlLHQpe3VzKGUsdCksdC5hZGQoZSl9ZnVuY3Rpb24gc3MoZSx0LHIpe3VzKGUsdCksdC5zZXQoZSxyKX1mdW5jdGlvbiB1cyhlLHQpe2lmKHQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9ZnVuY3Rpb24gY3MoZSx0LHIpe2lmKCF0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gZ2V0IHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIHJ9ZnVuY3Rpb24gbHMoZSl7dmFyIHQ9bmV3IFNldDtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5hZGQoZSl9KSksT2JqZWN0LmZyZWV6ZSh0KX12YXIgZHM9ImNvbnN0YW50IGV4dGVybmFsIGludGVybmFsIHBheWFibGUgcHJpdmF0ZSBwdWJsaWMgcHVyZSB2aWV3Iixmcz0obHMoZHMuc3BsaXQoIiAiKSksImNvbnN0cnVjdG9yIGVycm9yIGV2ZW50IGZhbGxiYWNrIGZ1bmN0aW9uIHJlY2VpdmUgc3RydWN0IikscHM9KGxzKGZzLnNwbGl0KCIgIikpLCJjYWxsZGF0YSBtZW1vcnkgc3RvcmFnZSBwYXlhYmxlIGluZGV4ZWQiKSxocz1scyhwcy5zcGxpdCgiICIpKSxncz1scyhbZnMscHMsInR1cGxlIHJldHVybnMiLGRzXS5qb2luKCIgIikuc3BsaXQoIiAiKSkseXM9eyIoIjoiT1BFTl9QQVJFTiIsIikiOiJDTE9TRV9QQVJFTiIsIlsiOiJPUEVOX0JSQUNLRVQiLCJdIjoiQ0xPU0VfQlJBQ0tFVCIsIiwiOiJDT01NQSIsIkAiOiJBVCJ9LGJzPW5ldyBSZWdFeHAoIl4oXFxzKikiKSx2cz1uZXcgUmVnRXhwKCJeKFswLTldKykiKSxtcz1uZXcgUmVnRXhwKCJeKFthLXpBLVokX11bYS16QS1aMC05JF9dKikiKSxUcz1uZXcgUmVnRXhwKCJeKFthLXpBLVokX11bYS16QS1aMC05JF9dKikkIiksd3M9bmV3IFJlZ0V4cCgiXihhZGRyZXNzfGJvb2x8Ynl0ZXMoWzAtOV0qKXxzdHJpbmd8dT9pbnQoWzAtOV0qKSkkIiksQXM9bmV3IFdlYWtNYXAsUHM9bmV3IFdlYWtNYXAsV3M9bmV3IFdlYWtTZXQsQnM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2codGhpcyxlKSxhcyh0aGlzLFdzKSxzcyh0aGlzLEFzLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxzcyh0aGlzLFBzLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxadCh0aGlzLEFzLDApLFp0KHRoaXMsUHMsdC5zbGljZSgpKX1yZXR1cm4gdihlLFt7a2V5OiJvZmZzZXQiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEFzKX19LHtrZXk6Imxlbmd0aCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMsUHMpLmxlbmd0aC1xdCh0aGlzLEFzKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZShxdCh0aGlzLFBzKSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtadCh0aGlzLEFzLDApfX0se2tleToicG9wS2V5d29yZCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wZWVrKCk7aWYoIktFWVdPUkQiIT09dC50eXBlfHwhZS5oYXModC50ZXh0KSl0aHJvdyBuZXcgRXJyb3IoImV4cGVjdGVkIGtleXdvcmQgIi5jb25jYXQodC50ZXh0KSk7cmV0dXJuIHRoaXMucG9wKCkudGV4dH19LHtrZXk6InBvcFR5cGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMucGVlaygpLnR5cGUhPT1lKXRocm93IG5ldyBFcnJvcigiZXhwZWN0ZWQgIi5jb25jYXQoZSwiOyBnb3QgIikuY29uY2F0KEpTT04uc3RyaW5naWZ5KHRoaXMucGVlaygpKSkpO3JldHVybiB0aGlzLnBvcCgpLnRleHR9fSx7a2V5OiJwb3BQYXJlbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBlZWsoKTtpZigiT1BFTl9QQVJFTiIhPT1lLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJiYWQgc3RhcnQiKTt2YXIgdD1jcyh0aGlzLFdzLENzKS5jYWxsKHRoaXMscXQodGhpcyxBcykrMSxlLm1hdGNoKzEpO3JldHVybiBadCh0aGlzLEFzLGUubWF0Y2grMSksdH19LHtrZXk6InBvcFBhcmFtcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBlZWsoKTtpZigiT1BFTl9QQVJFTiIhPT1lLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJiYWQgc3RhcnQiKTtmb3IodmFyIHQ9W107cXQodGhpcyxBcyk8ZS5tYXRjaC0xOyl7dmFyIHI9dGhpcy5wZWVrKCkubGlua05leHQ7dC5wdXNoKGNzKHRoaXMsV3MsQ3MpLmNhbGwodGhpcyxxdCh0aGlzLEFzKSsxLHIpKSxadCh0aGlzLEFzLHIpfXJldHVybiBadCh0aGlzLEFzLGUubWF0Y2grMSksdH19LHtrZXk6InBlZWsiLHZhbHVlOmZ1bmN0aW9uKCl7aWYocXQodGhpcyxBcyk+PXF0KHRoaXMsUHMpLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIm91dC1vZi1ib3VuZHMiKTtyZXR1cm4gcXQodGhpcyxQcylbcXQodGhpcyxBcyldfX0se2tleToicGVla0tleXdvcmQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGVla1R5cGUoIktFWVdPUkQiKTtyZXR1cm4gbnVsbCE9dCYmZS5oYXModCk/dDpudWxsfX0se2tleToicGVla1R5cGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgdD10aGlzLnBlZWsoKTtyZXR1cm4gdC50eXBlPT09ZT90LnRleHQ6bnVsbH19LHtrZXk6InBvcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMucGVlaygpO3JldHVybiBadCh0aGlzLEFzLChlPXF0KHRoaXMsQXMpLCsrZSkpLHR9fSx7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD1xdCh0aGlzLEFzKTt0PHF0KHRoaXMsUHMpLmxlbmd0aDt0Kyspe3ZhciByPXF0KHRoaXMsUHMpW3RdO2UucHVzaCgiIi5jb25jYXQoci50eXBlLCI6IikuY29uY2F0KHIudGV4dCkpfXJldHVybiI8VG9rZW5TdHJpbmcgIi5jb25jYXQoZS5qb2luKCIgIiksIj4iKX19XSksZX0oKTtmdW5jdGlvbiBDcygpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIG5ldyBCcyhxdCh0aGlzLFBzKS5zbGljZShlLHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5mcmVlemUoT2JqZWN0LmFzc2lnbih7fSx0LHttYXRjaDp0Lm1hdGNoLWUsbGlua0JhY2s6dC5saW5rQmFjay1lLGxpbmtOZXh0OnQubGlua05leHQtZX0pKX0pKSl9ZnVuY3Rpb24gRXMoZSx0KXtmb3IodmFyIHI9bmV3IFNldDs7KXt2YXIgbj1lLnBlZWtUeXBlKCJLRVlXT1JEIik7aWYobnVsbD09bnx8dCYmIXQuaGFzKG4pKWJyZWFrO2lmKGUucG9wKCksci5oYXMobikpdGhyb3cgbmV3IEVycm9yKCJkdXBsaWNhdGUga2V5d29yZHM6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KG4pKSk7ci5hZGQobil9cmV0dXJuIE9iamVjdC5mcmVlemUocil9dmFyIE1zPW5ldyBSZWdFeHAoL14oLiopXFsoWzAtOV0qKVxdJC8pO2Z1bmN0aW9uIGtzKGUpe3ZhciB0PWUubWF0Y2god3MpO2lmKGFyKHQsImludmFsaWQgdHlwZSIsInR5cGUiLGUpLCJ1aW50Ij09PWUpcmV0dXJuInVpbnQyNTYiO2lmKCJpbnQiPT09ZSlyZXR1cm4iaW50MjU2IjtpZih0WzJdKXt2YXIgcj1wYXJzZUludCh0WzJdKTthcigwIT09ciYmcjw9MzIsImludmFsaWQgYnl0ZXMgbGVuZ3RoIiwidHlwZSIsZSl9ZWxzZSBpZih0WzNdKXt2YXIgbj1wYXJzZUludCh0WzNdKTthcigwIT09biYmbjw9MjU2JiZuJTg9PTAsImludmFsaWQgbnVtZXJpYyB3aWR0aCIsInR5cGUiLGUpfXJldHVybiBlfXZhciBJcz17fSxPcz1TeW1ib2wuZm9yKCJfZXRoZXJzX2ludGVybmFsIikseHM9Il9QYXJhbVR5cGVJbnRlcm5hbCIsU3M9bmV3IFdlYWtTZXQsRnM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQscixuLG8saSxhLHMsdSl7aWYoZyh0aGlzLGUpLGFzKHRoaXMsU3MpLFcodGhpcywibmFtZSIsdm9pZCAwKSxXKHRoaXMsInR5cGUiLHZvaWQgMCksVyh0aGlzLCJiYXNlVHlwZSIsdm9pZCAwKSxXKHRoaXMsImluZGV4ZWQiLHZvaWQgMCksVyh0aGlzLCJjb21wb25lbnRzIix2b2lkIDApLFcodGhpcywiYXJyYXlMZW5ndGgiLHZvaWQgMCksVyh0aGlzLCJhcnJheUNoaWxkcmVuIix2b2lkIDApLGxyKHQsSXMsIlBhcmFtVHlwZSIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLE9zLHt2YWx1ZTp4c30pLGEmJihhPU9iamVjdC5mcmVlemUoYS5zbGljZSgpKSksImFycmF5Ij09PW8pe2lmKG51bGw9PXN8fG51bGw9PXUpdGhyb3cgbmV3IEVycm9yKCIiKX1lbHNlIGlmKG51bGwhPXN8fG51bGwhPXUpdGhyb3cgbmV3IEVycm9yKCIiKTtpZigidHVwbGUiPT09byl7aWYobnVsbD09YSl0aHJvdyBuZXcgRXJyb3IoIiIpfWVsc2UgaWYobnVsbCE9YSl0aHJvdyBuZXcgRXJyb3IoIiIpO3RyKHRoaXMse25hbWU6cix0eXBlOm4sYmFzZVR5cGU6byxpbmRleGVkOmksY29tcG9uZW50czphLGFycmF5TGVuZ3RoOnMsYXJyYXlDaGlsZHJlbjp1fSl9dmFyIHQ7cmV0dXJuIHYoZSxbe2tleToiZm9ybWF0Iix2YWx1ZTpmdW5jdGlvbihlKXtpZihudWxsPT1lJiYoZT0ic2lnaGFzaCIpLCJqc29uIj09PWUpe3ZhciB0PXt0eXBlOiJ0dXBsZSI9PT10aGlzLmJhc2VUeXBlPyJ0dXBsZSI6dGhpcy50eXBlLG5hbWU6dGhpcy5uYW1lfHx2b2lkIDB9O3JldHVybiJib29sZWFuIj09dHlwZW9mIHRoaXMuaW5kZXhlZCYmKHQuaW5kZXhlZD10aGlzLmluZGV4ZWQpLHRoaXMuaXNUdXBsZSgpJiYodC5jb21wb25lbnRzPXRoaXMuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKHQuZm9ybWF0KGUpKX0pKSksSlNPTi5zdHJpbmdpZnkodCl9dmFyIHI9IiI7cmV0dXJuIHRoaXMuaXNBcnJheSgpPyhyKz10aGlzLmFycmF5Q2hpbGRyZW4uZm9ybWF0KGUpLHIrPSJbIi5jb25jYXQodGhpcy5hcnJheUxlbmd0aDwwPyIiOlN0cmluZyh0aGlzLmFycmF5TGVuZ3RoKSwiXSIpKTp0aGlzLmlzVHVwbGUoKT8oInNpZ2hhc2giIT09ZSYmKHIrPXRoaXMudHlwZSkscis9IigiK3RoaXMuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvcm1hdChlKX0pKS5qb2luKCJmdWxsIj09PWU/IiwgIjoiLCIpKyIpIik6cis9dGhpcy50eXBlLCJzaWdoYXNoIiE9PWUmJighMD09PXRoaXMuaW5kZXhlZCYmKHIrPSIgaW5kZXhlZCIpLCJmdWxsIj09PWUmJnRoaXMubmFtZSYmKHIrPSIgIit0aGlzLm5hbWUpKSxyfX0se2tleToiaXNBcnJheSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iYXJyYXkiPT09dGhpcy5iYXNlVHlwZX19LHtrZXk6ImlzVHVwbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuInR1cGxlIj09PXRoaXMuYmFzZVR5cGV9fSx7a2V5OiJpc0luZGV4YWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dGhpcy5pbmRleGVkfX0se2tleToid2FsayIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmlzQXJyYXkoKSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGFycmF5IHZhbHVlIik7aWYoLTEhPT10aGlzLmFycmF5TGVuZ3RoJiZlLmxlbmd0aCE9PXRoaXMuYXJyYXlMZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhcnJheSBpcyB3cm9uZyBsZW5ndGgiKTt2YXIgcj10aGlzO3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIuYXJyYXlDaGlsZHJlbi53YWxrKGUsdCl9KSl9aWYodGhpcy5pc1R1cGxlKCkpe2lmKCFBcnJheS5pc0FycmF5KGUpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCB0dXBsZSB2YWx1ZSIpO2lmKGUubGVuZ3RoIT09dGhpcy5jb21wb25lbnRzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImFycmF5IGlzIHdyb25nIGxlbmd0aCIpO3ZhciBuPXRoaXM7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlLHIpe3JldHVybiBuLmNvbXBvbmVudHNbcl0ud2FsayhlLHQpfSkpfXJldHVybiB0KHRoaXMudHlwZSxlKX19LHtrZXk6IndhbGtBc3luYyIsdmFsdWU6KHQ9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCxyKXt2YXIgbixvO3JldHVybiBCLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG49W10sbz1bdF0sY3ModGhpcyxTcyxfcykuY2FsbCh0aGlzLG4sdCxyLChmdW5jdGlvbihlKXtvWzBdPWV9KSksIW4ubGVuZ3RoKXtlLm5leHQ9NjticmVha31yZXR1cm4gZS5uZXh0PTYsUHJvbWlzZS5hbGwobik7Y2FzZSA2OnJldHVybiBlLmFicnVwdCgicmV0dXJuIixvWzBdKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlLHIpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfV0sW3trZXk6ImZyb20iLHZhbHVlOmZ1bmN0aW9uKHQscil7aWYoZS5pc1BhcmFtVHlwZSh0KSlyZXR1cm4gdDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGUuZnJvbShmdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj1mdW5jdGlvbih0KXt2YXIgcj1pPGUubGVuZ3RoP0pTT04uc3RyaW5naWZ5KGVbaV0pOiIkRU9JIjt0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdG9rZW4gIi5jb25jYXQociwiIGF0ICIpLmNvbmNhdChpLCI6ICIpLmNvbmNhdCh0KSl9LG49W10sbz1bXSxpPTA7aTxlLmxlbmd0aDspe3ZhciBhPWUuc3Vic3RyaW5nKGkpLHM9YS5tYXRjaChicyk7cyYmKGkrPXNbMV0ubGVuZ3RoLGE9ZS5zdWJzdHJpbmcoaSkpO3ZhciB1PXtkZXB0aDpuLmxlbmd0aCxsaW5rQmFjazotMSxsaW5rTmV4dDotMSxtYXRjaDotMSx0eXBlOiIiLHRleHQ6IiIsb2Zmc2V0OmksdmFsdWU6LTF9O3QucHVzaCh1KTt2YXIgYz15c1thWzBdXXx8IiI7aWYoYyl7aWYodS50eXBlPWMsdS50ZXh0PWFbMF0saSsrLCJPUEVOX1BBUkVOIj09PWMpbi5wdXNoKHQubGVuZ3RoLTEpLG8ucHVzaCh0Lmxlbmd0aC0xKTtlbHNlIGlmKCJDTE9TRV9QQVJFTiI9PWMpMD09PW4ubGVuZ3RoJiZyKCJubyBtYXRjaGluZyBvcGVuIGJyYWNrZXQiKSx1Lm1hdGNoPW4ucG9wKCksdFt1Lm1hdGNoXS5tYXRjaD10Lmxlbmd0aC0xLHUuZGVwdGgtLSx1LmxpbmtCYWNrPW8ucG9wKCksdFt1LmxpbmtCYWNrXS5saW5rTmV4dD10Lmxlbmd0aC0xO2Vsc2UgaWYoIkNPTU1BIj09PWMpdS5saW5rQmFjaz1vLnBvcCgpLHRbdS5saW5rQmFja10ubGlua05leHQ9dC5sZW5ndGgtMSxvLnB1c2godC5sZW5ndGgtMSk7ZWxzZSBpZigiT1BFTl9CUkFDS0VUIj09PWMpdS50eXBlPSJCUkFDS0VUIjtlbHNlIGlmKCJDTE9TRV9CUkFDS0VUIj09PWMpe3ZhciBsPXQucG9wKCkudGV4dDtpZih0Lmxlbmd0aD4wJiYiTlVNQkVSIj09PXRbdC5sZW5ndGgtMV0udHlwZSl7dmFyIGQ9dC5wb3AoKS50ZXh0O2w9ZCtsLHRbdC5sZW5ndGgtMV0udmFsdWU9U3IoZCl9aWYoMD09PXQubGVuZ3RofHwiQlJBQ0tFVCIhPT10W3QubGVuZ3RoLTFdLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJtaXNzaW5nIG9wZW5pbmcgYnJhY2tldCIpO3RbdC5sZW5ndGgtMV0udGV4dCs9bH19ZWxzZSBpZihzPWEubWF0Y2gobXMpKXtpZih1LnRleHQ9c1sxXSxpKz11LnRleHQubGVuZ3RoLGdzLmhhcyh1LnRleHQpKXt1LnR5cGU9IktFWVdPUkQiO2NvbnRpbnVlfWlmKHUudGV4dC5tYXRjaCh3cykpe3UudHlwZT0iVFlQRSI7Y29udGludWV9dS50eXBlPSJJRCJ9ZWxzZXtpZighKHM9YS5tYXRjaCh2cykpKXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCB0b2tlbiAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShhWzBdKSwiIGF0IHBvc2l0aW9uICIpLmNvbmNhdChpKSk7dS50ZXh0PXNbMV0sdS50eXBlPSJOVU1CRVIiLGkrPXUudGV4dC5sZW5ndGh9fXJldHVybiBuZXcgQnModC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZnJlZXplKGUpfSkpKX0odCkscik7aWYodCBpbnN0YW5jZW9mIEJzKXt2YXIgbj0iIixvPSIiLGk9bnVsbDtFcyh0LGxzKFsidHVwbGUiXSkpLmhhcygidHVwbGUiKXx8dC5wZWVrVHlwZSgiT1BFTl9QQVJFTiIpPyhvPSJ0dXBsZSIsaT10LnBvcFBhcmFtcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuZnJvbSh0KX0pKSxuPSJ0dXBsZSgiLmNvbmNhdChpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZm9ybWF0KCl9KSkuam9pbigiLCIpLCIpIikpOm89bj1rcyh0LnBvcFR5cGUoIlRZUEUiKSk7Zm9yKHZhciBhPW51bGwscz1udWxsO3QubGVuZ3RoJiZ0LnBlZWtUeXBlKCJCUkFDS0VUIik7KXt2YXIgdT10LnBvcCgpO2E9bmV3IGUoSXMsIiIsbixvLG51bGwsaSxzLGEpLHM9dS52YWx1ZSxuKz11LnRleHQsbz0iYXJyYXkiLGk9bnVsbH12YXIgYz1udWxsO2lmKEVzKHQsaHMpLmhhcygiaW5kZXhlZCIpKXtpZighcil0aHJvdyBuZXcgRXJyb3IoIiIpO2M9ITB9dmFyIGw9dC5wZWVrVHlwZSgiSUQiKT90LnBvcCgpLnRleHQ6IiI7aWYodC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJsZWZ0b3ZlciB0b2tlbnMiKTtyZXR1cm4gbmV3IGUoSXMsbCxuLG8sYyxpLHMsYSl9dmFyIGQ9dC5uYW1lO2FyKCFkfHwic3RyaW5nIj09dHlwZW9mIGQmJmQubWF0Y2goVHMpLCJpbnZhbGlkIG5hbWUiLCJvYmoubmFtZSIsZCk7dmFyIGY9dC5pbmRleGVkO251bGwhPWYmJihhcihyLCJwYXJhbWV0ZXIgY2Fubm90IGJlIGluZGV4ZWQiLCJvYmouaW5kZXhlZCIsdC5pbmRleGVkKSxmPSEhZik7dmFyIHA9dC50eXBlLGg9cC5tYXRjaChNcyk7aWYoaCl7dmFyIGc9cGFyc2VJbnQoaFsyXXx8Ii0xIikseT1lLmZyb20oe3R5cGU6aFsxXSxjb21wb25lbnRzOnQuY29tcG9uZW50c30pO3JldHVybiBuZXcgZShJcyxkfHwiIixwLCJhcnJheSIsZixudWxsLGcseSl9aWYoInR1cGxlIj09PXB8fHAuc3RhcnRzV2l0aCgidHVwbGUoIil8fHAuc3RhcnRzV2l0aCgiKCIpKXt2YXIgYj1udWxsIT10LmNvbXBvbmVudHM/dC5jb21wb25lbnRzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuZnJvbSh0KX0pKTpudWxsO3JldHVybiBuZXcgZShJcyxkfHwiIixwLCJ0dXBsZSIsZixiLG51bGwsbnVsbCl9cmV0dXJuIHA9a3ModC50eXBlKSxuZXcgZShJcyxkfHwiIixwLHAsZixudWxsLG51bGwsbnVsbCl9fSx7a2V5OiJpc1BhcmFtVHlwZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmVbT3NdPT09eHN9fV0pLGV9KCk7ZnVuY3Rpb24gX3MoZSx0LHIsbil7aWYodGhpcy5pc0FycmF5KCkpe2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBhcnJheSB2YWx1ZSIpO2lmKC0xIT09dGhpcy5hcnJheUxlbmd0aCYmdC5sZW5ndGghPT10aGlzLmFycmF5TGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYXJyYXkgaXMgd3JvbmcgbGVuZ3RoIik7dmFyIG89dGhpcy5hcnJheUNoaWxkcmVuLGk9dC5zbGljZSgpO3JldHVybiBpLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7Y3MobyxTcyxfcykuY2FsbChvLGUsdCxyLChmdW5jdGlvbihlKXtpW25dPWV9KSl9KSksdm9pZCBuKGkpfWlmKHRoaXMuaXNUdXBsZSgpKXt2YXIgYSxzPXRoaXMuY29tcG9uZW50cztpZihBcnJheS5pc0FycmF5KHQpKWE9dC5zbGljZSgpO2Vsc2V7aWYobnVsbD09dHx8Im9iamVjdCIhPT1oKHQpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCB0dXBsZSB2YWx1ZSIpO2E9cy5tYXAoKGZ1bmN0aW9uKGUpe2lmKCFlLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgdXNlIG9iamVjdCB2YWx1ZSB3aXRoIHVubmFtZWQgY29tcG9uZW50cyIpO2lmKCEoZS5uYW1lIGluIHQpKXRocm93IG5ldyBFcnJvcigibWlzc2luZyB2YWx1ZSBmb3IgY29tcG9uZW50ICIuY29uY2F0KGUubmFtZSkpO3JldHVybiB0W2UubmFtZV19KSl9aWYoYS5sZW5ndGghPT10aGlzLmNvbXBvbmVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYXJyYXkgaXMgd3JvbmcgbGVuZ3RoIik7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXt2YXIgbztjcyhvPXNbbl0sU3MsX3MpLmNhbGwobyxlLHQsciwoZnVuY3Rpb24oZSl7YVtuXT1lfSkpfSkpLHZvaWQgbihhKX12YXIgdT1yKHRoaXMudHlwZSx0KTt1LnRoZW4/ZS5wdXNoKHAoQi5tYXJrKChmdW5jdGlvbiBlKCl7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUudDA9bixlLm5leHQ9Myx1O2Nhc2UgMzplLnQxPWUuc2VudCwoMCxlLnQwKShlLnQxKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSkoKSk6bih1KX1mdW5jdGlvbiBScyhlLHQscil7aWYoIXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBnZXQgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gcn12YXIgTnM9bmV3IE1hcDtOcy5zZXQoMCwiR0VORVJJQ19QQU5JQyIpLE5zLnNldCgxLCJBU1NFUlRfRkFMU0UiKSxOcy5zZXQoMTcsIk9WRVJGTE9XIiksTnMuc2V0KDE4LCJESVZJREVfQllfWkVSTyIpLE5zLnNldCgzMywiRU5VTV9SQU5HRV9FUlJPUiIpLE5zLnNldCgzNCwiQkFEX1NUT1JBR0VfREFUQSIpLE5zLnNldCg0OSwiU1RBQ0tfVU5ERVJGTE9XIiksTnMuc2V0KDUwLCJBUlJBWV9SQU5HRV9FUlJPUiIpLE5zLnNldCg2NSwiT1VUX09GX01FTU9SWSIpLE5zLnNldCg4MSwiVU5JTklUSUFMSVpFRF9GVU5DVElPTl9DQUxMIik7dmFyIFVzPW5ldyBSZWdFeHAoL15ieXRlcyhbMC05XSopJC8pLERzPW5ldyBSZWdFeHAoL14odT9pbnQpKFswLTldKikkLyksTHM9bnVsbCxqcz1uZXcgV2Vha1NldCx6cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgdCxyO2codGhpcyxlKSxmdW5jdGlvbihlLHQpe2lmKHQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KHQ9dGhpcyxyPWpzKSxyLmFkZCh0KX1yZXR1cm4gdihlLFt7a2V5OiJnZXREZWZhdWx0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMscj1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIFJzKHQsanMsJHMpLmNhbGwodCxGcy5mcm9tKGUpKX0pKTtyZXR1cm4gbmV3IGlzKHIsIl8iKS5kZWZhdWx0VmFsdWUoKX19LHtrZXk6ImVuY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzO3NyKHQubGVuZ3RoLGUubGVuZ3RoLCJ0eXBlcy92YWx1ZXMgbGVuZ3RoIG1pc21hdGNoIik7dmFyIG49ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBScyhyLGpzLCRzKS5jYWxsKHIsRnMuZnJvbShlKSl9KSksbz1uZXcgaXMobiwiXyIpLGk9bmV3IE1hO3JldHVybiBvLmVuY29kZShpLHQpLGkuZGF0YX19LHtrZXk6ImRlY29kZSIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMsbz1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIFJzKG4sanMsJHMpLmNhbGwobixGcy5mcm9tKGUpKX0pKTtyZXR1cm4gbmV3IGlzKG8sIl8iKS5kZWNvZGUobmV3IFNhKHQscikpfX1dLFt7a2V5OiJkZWZhdWx0QWJpQ29kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PUxzJiYoTHM9bmV3IGUpLExzfX0se2tleToiZ2V0QnVpbHRpbkNhbGxFeGNlcHRpb24iLHZhbHVlOmZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZnVuY3Rpb24oZSx0LHIsbil7dmFyIG89Im1pc3NpbmcgcmV2ZXJ0IGRhdGEiLGk9bnVsbCxhPW51bGw7aWYocil7bz0iZXhlY3V0aW9uIHJldmVydGVkIjt2YXIgcz1mcihyKTtpZihyPWJyKHIpLDA9PT1zLmxlbmd0aClvKz0iIChubyBkYXRhIHByZXNlbnQ7IGxpa2VseSByZXF1aXJlKGZhbHNlKSBvY2N1cnJlZCIsaT0icmVxdWlyZShmYWxzZSkiO2Vsc2UgaWYocy5sZW5ndGglMzIhPTQpbys9IiAoY291bGQgbm90IGRlY29kZSByZWFzb247IGludmFsaWQgZGF0YSBsZW5ndGgpIjtlbHNlIGlmKCIweDA4YzM3OWEwIj09PWJyKHMuc2xpY2UoMCw0KSkpdHJ5e2E9e3NpZ25hdHVyZToiRXJyb3Ioc3RyaW5nKSIsbmFtZToiRXJyb3IiLGFyZ3M6W2k9bi5kZWNvZGUoWyJzdHJpbmciXSxzLnNsaWNlKDQpKVswXV19LG8rPSI6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGkpKX1jYXRjaChlKXtvKz0iIChjb3VsZCBub3QgZGVjb2RlIHJlYXNvbjsgaW52YWxpZCBzdHJpbmcgZGF0YSkifWVsc2UgaWYoIjB4NGU0ODdiNzEiPT09YnIocy5zbGljZSgwLDQpKSl0cnl7dmFyIHU9TnVtYmVyKG4uZGVjb2RlKFsidWludDI1NiJdLHMuc2xpY2UoNCkpWzBdKTthPXtzaWduYXR1cmU6IlBhbmljKHVpbnQyNTYpIixuYW1lOiJQYW5pYyIsYXJnczpbdV19LGk9IlBhbmljIGR1ZSB0byAiLmNvbmNhdChOcy5nZXQodSl8fCJVTktOT1dOIiwiKCIpLmNvbmNhdCh1LCIpIiksbys9IjogIi5jb25jYXQoaSl9Y2F0Y2goZSl7bys9IiAoY291bGQgbm90IGRlY29kZSBwYW5pYyBjb2RlKSJ9ZWxzZSBvKz0iICh1bmtub3duIGN1c3RvbSBlcnJvcikifXZhciBjPXt0bzp0LnRvP25pKHQudG8pOm51bGwsZGF0YTp0LmRhdGF8fCIweCJ9O3JldHVybiB0LmZyb20mJihjLmZyb209bmkodC5mcm9tKSksb3IobywiQ0FMTF9FWENFUFRJT04iLHthY3Rpb246ZSxkYXRhOnIscmVhc29uOmksdHJhbnNhY3Rpb246YyxpbnZvY2F0aW9uOm51bGwscmV2ZXJ0OmF9KX0odCxyLG4sZS5kZWZhdWx0QWJpQ29kZXIoKSl9fV0pLGV9KCk7ZnVuY3Rpb24gJHMoZSl7dmFyIHQ9dGhpcztpZihlLmlzQXJyYXkoKSlyZXR1cm4gbmV3IEdhKFJzKHRoaXMsanMsJHMpLmNhbGwodGhpcyxlLmFycmF5Q2hpbGRyZW4pLGUuYXJyYXlMZW5ndGgsZS5uYW1lKTtpZihlLmlzVHVwbGUoKSlyZXR1cm4gbmV3IGlzKGUuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBScyh0LGpzLCRzKS5jYWxsKHQsZSl9KSksZS5uYW1lKTtzd2l0Y2goZS5iYXNlVHlwZSl7Y2FzZSJhZGRyZXNzIjpyZXR1cm4gbmV3IGphKGUubmFtZSk7Y2FzZSJib29sIjpyZXR1cm4gbmV3IEhhKGUubmFtZSk7Y2FzZSJzdHJpbmciOnJldHVybiBuZXcgb3MoZS5uYW1lKTtjYXNlImJ5dGVzIjpyZXR1cm4gbmV3IEphKGUubmFtZSk7Y2FzZSIiOnJldHVybiBuZXcgUWEoZS5uYW1lKX12YXIgcj1lLnR5cGUubWF0Y2goRHMpO2lmKHIpe3ZhciBuPXBhcnNlSW50KHJbMl18fCIyNTYiKTtyZXR1cm4gYXIoMCE9PW4mJm48PTI1NiYmbiU4PT0wLCJpbnZhbGlkICIrclsxXSsiIGJpdCBsZW5ndGgiLCJwYXJhbSIsZSksbmV3IG5zKG4vOCwiaW50Ij09PXJbMV0sZS5uYW1lKX1pZihyPWUudHlwZS5tYXRjaChVcykpe3ZhciBvPXBhcnNlSW50KHJbMV0pO3JldHVybiBhcigwIT09byYmbzw9MzIsImludmFsaWQgYnl0ZXMgbGVuZ3RoIiwicGFyYW0iLGUpLG5ldyBZYShvLGUubmFtZSl9YXIoITEsImludmFsaWQgdHlwZSIsInR5cGUiLGUudHlwZSl9ZnVuY3Rpb24gVnMoZSx0KXtyZXR1cm4gR3MuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEdzKCl7cmV0dXJuKEdzPXAoQi5tYXJrKChmdW5jdGlvbiBlKHQscil7dmFyIG47cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLHI7Y2FzZSAyOnJldHVybiBudWxsIT0obj1lLnNlbnQpJiYiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiE9PW58fChpcigic3RyaW5nIiE9dHlwZW9mIHQsInVuY29uZmlndXJlZCBuYW1lIiwiVU5DT05GSUdVUkVEX05BTUUiLHt2YWx1ZTp0fSksYXIoITEsImludmFsaWQgQWRkcmVzc0xpa2UgdmFsdWU7IGRpZCBub3QgcmVzb2x2ZSB0byBhIHZhbHVlIGFkZHJlc3MiLCJ0YXJnZXQiLHQpKSxlLmFicnVwdCgicmV0dXJuIixuaShuKSk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSHMoZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZS5tYXRjaCgvXjB4WzAtOWEtZl17NDB9JC9pKT9uaShlKTooaXIobnVsbCE9dCwiRU5TIHJlc29sdXRpb24gcmVxdWlyZXMgYSBwcm92aWRlciIsIlVOU1VQUE9SVEVEX09QRVJBVElPTiIse29wZXJhdGlvbjoicmVzb2x2ZU5hbWUifSksVnMoZSx0LnJlc29sdmVOYW1lKGUpKSk6KHI9ZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiByLmdldEFkZHJlc3M/VnMoZSxlLmdldEFkZHJlc3MoKSk6ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbj9WcyhlLGUpOnZvaWQgYXIoITEsInVuc3VwcG9ydGVkIGFkZHJlc3NhYmxlIHZhbHVlIiwidGFyZ2V0IixlKTt2YXIgcn12YXIgS3M9IhlFdGhlcmV1bSBTaWduZWQgTWVzc2FnZTpcbiI7ZnVuY3Rpb24gWnMoZSx0KXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoIXIpe2lmKEFycmF5LmlzQXJyYXkoZSl8fChyPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBxcyhlLHQpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1yfHwiU2V0Ij09PXI/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP3FzKGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtyJiYoZT1yKTt2YXIgbj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiBuPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtuKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgaSxhPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPXIubmV4dCgpO3JldHVybiBhPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsaT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2F8fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBpfX19fWZ1bmN0aW9uIHFzKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkodCk7cjx0O3IrKyluW3JdPWVbcl07cmV0dXJuIG59ZnVuY3Rpb24gSnMoZSx0LHIpe1lzKGUsdCksdC5zZXQoZSxyKX1mdW5jdGlvbiBZcyhlLHQpe2lmKHQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9dmFyIFhzPW5ldyBVaW50OEFycmF5KDMyKTtYcy5maWxsKDApO3ZhciBRcz1CaWdJbnQoLTEpLGV1PUJpZ0ludCgwKSx0dT1CaWdJbnQoMSkscnU9QmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYiKSxudT1Gcih0dSwzMiksb3U9RnIoZXUsMzIpLGl1PXtuYW1lOiJzdHJpbmciLHZlcnNpb246InN0cmluZyIsY2hhaW5JZDoidWludDI1NiIsdmVyaWZ5aW5nQ29udHJhY3Q6ImFkZHJlc3MiLHNhbHQ6ImJ5dGVzMzIifSxhdT1bIm5hbWUiLCJ2ZXJzaW9uIiwiY2hhaW5JZCIsInZlcmlmeWluZ0NvbnRyYWN0Iiwic2FsdCJdO2Z1bmN0aW9uIHN1KGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYXIoInN0cmluZyI9PXR5cGVvZiB0LCJpbnZhbGlkIGRvbWFpbiB2YWx1ZSBmb3IgIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkpLCJkb21haW4uIi5jb25jYXQoZSksdCksdH19dmFyIHV1PXtuYW1lOnN1KCJuYW1lIiksdmVyc2lvbjpzdSgidmVyc2lvbiIpLGNoYWluSWQ6ZnVuY3Rpb24oZSl7dmFyIHQ9TXIoZSwiZG9tYWluLmNoYWluSWQiKTtyZXR1cm4gYXIodD49MCwiaW52YWxpZCBjaGFpbiBJRCIsImRvbWFpbi5jaGFpbklkIixlKSxOdW1iZXIuaXNTYWZlSW50ZWdlcih0KT9OdW1iZXIodCk6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWJyKGdyKGUpP2U6X3IoZSkpLnN1YnN0cmluZygyKTt0LnN0YXJ0c1dpdGgoIjAiKTspdD10LnN1YnN0cmluZygxKTtyZXR1cm4iIj09PXQmJih0PSIwIiksIjB4Iit0fSh0KX0sdmVyaWZ5aW5nQ29udHJhY3Q6ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBuaShlKS50b0xvd2VyQ2FzZSgpfWNhdGNoKGUpe31hcighMSwnaW52YWxpZCBkb21haW4gdmFsdWUgInZlcmlmeWluZ0NvbnRyYWN0IicsImRvbWFpbi52ZXJpZnlpbmdDb250cmFjdCIsZSl9LHNhbHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZnIoZSwiZG9tYWluLnNhbHQiKTtyZXR1cm4gYXIoMzI9PT10Lmxlbmd0aCwnaW52YWxpZCBkb21haW4gdmFsdWUgInNhbHQiJywiZG9tYWluLnNhbHQiLGUpLGJyKHQpfX07ZnVuY3Rpb24gY3UoZSl7dmFyIHQ9ZS5tYXRjaCgvXih1PylpbnQoXGQqKSQvKTtpZih0KXt2YXIgcj0iIj09PXRbMV0sbj1wYXJzZUludCh0WzJdfHwiMjU2Iik7YXIobiU4PT0wJiYwIT09biYmbjw9MjU2JiYobnVsbD09dFsyXXx8dFsyXT09PVN0cmluZyhuKSksImludmFsaWQgbnVtZXJpYyB3aWR0aCIsInR5cGUiLGUpO3ZhciBvPUVyKHJ1LHI/bi0xOm4pLGk9cj8obyt0dSkqUXM6ZXU7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPU1yKHQsInZhbHVlIik7cmV0dXJuIGFyKG4+PWkmJm48PW8sInZhbHVlIG91dC1vZi1ib3VuZHMgZm9yICIuY29uY2F0KGUpLCJ2YWx1ZSIsbiksRnIocj9DcihuLDI1Nik6biwzMil9fXZhciBhPWUubWF0Y2goL15ieXRlcyhcZCspJC8pO2lmKGEpe3ZhciBzPXBhcnNlSW50KGFbMV0pO3JldHVybiBhcigwIT09cyYmczw9MzImJmFbMV09PT1TdHJpbmcocyksImludmFsaWQgYnl0ZXMgd2lkdGgiLCJ0eXBlIixlKSxmdW5jdGlvbih0KXtyZXR1cm4gYXIoZnIodCkubGVuZ3RoPT09cywiaW52YWxpZCBsZW5ndGggZm9yICIuY29uY2F0KGUpLCJ2YWx1ZSIsdCksZnVuY3Rpb24oZSl7dmFyIHQ9ZnIoZSkscj10Lmxlbmd0aCUzMjtyZXR1cm4gcj92cihbdCxYcy5zbGljZShyKV0pOmJyKHQpfSh0KX19c3dpdGNoKGUpe2Nhc2UiYWRkcmVzcyI6cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB3cihuaShlKSwzMil9O2Nhc2UiYm9vbCI6cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlP251Om91fTtjYXNlImJ5dGVzIjpyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdvKGUpfTtjYXNlInN0cmluZyI6cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBbyhlKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gbHUoZSx0KXtyZXR1cm4iIi5jb25jYXQoZSwiKCIpLmNvbmNhdCh0Lm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uYW1lO3JldHVybiBlLnR5cGUrIiAiK3R9KSkuam9pbigiLCIpLCIpIil9dmFyIGR1PW5ldyBXZWFrTWFwLGZ1PW5ldyBXZWFrTWFwLHB1PW5ldyBXZWFrTWFwLGh1PW5ldyBXZWFrU2V0LGd1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgcjtnKHRoaXMsZSksWXModGhpcyxyPWh1KSxyLmFkZCh0aGlzKSxXKHRoaXMsInByaW1hcnlUeXBlIix2b2lkIDApLEpzKHRoaXMsZHUse3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLEpzKHRoaXMsZnUse3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLEpzKHRoaXMscHUse3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLFp0KHRoaXMsZHUsSlNPTi5zdHJpbmdpZnkodCkpLFp0KHRoaXMsZnUsbmV3IE1hcCksWnQodGhpcyxwdSxuZXcgTWFwKTt2YXIgbj1uZXcgTWFwLG89bmV3IE1hcCxpPW5ldyBNYXA7Zm9yKHZhciBhIGluIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe24uc2V0KGUsbmV3IFNldCksby5zZXQoZSxbXSksaS5zZXQoZSxuZXcgU2V0KX0pKSx0KXt2YXIgcyx1PW5ldyBTZXQsYz1acyh0W2FdKTt0cnl7Zm9yKGMucygpOyEocz1jLm4oKSkuZG9uZTspe3ZhciBsPXMudmFsdWU7YXIoIXUuaGFzKGwubmFtZSksImR1cGxpY2F0ZSB2YXJpYWJsZSBuYW1lICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGwubmFtZSksIiBpbiAiKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkoYSkpLCJ0eXBlcyIsdCksdS5hZGQobC5uYW1lKTt2YXIgZD1sLnR5cGUubWF0Y2goL14oW15ceDViXSopKFx4NWJ8JCkvKVsxXXx8bnVsbDthcihkIT09YSwiY2lyY3VsYXIgdHlwZSByZWZlcmVuY2UgdG8gIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZCkpLCJ0eXBlcyIsdCksY3UoZCl8fChhcihvLmhhcyhkKSwidW5rbm93biB0eXBlICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGQpKSwidHlwZXMiLHQpLG8uZ2V0KGQpLnB1c2goYSksbi5nZXQoYSkuYWRkKGQpKX19Y2F0Y2goZSl7Yy5lKGUpfWZpbmFsbHl7Yy5mKCl9fXZhciBmPUFycmF5LmZyb20oby5rZXlzKCkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1vLmdldChlKS5sZW5ndGh9KSk7YXIoMCE9PWYubGVuZ3RoLCJtaXNzaW5nIHByaW1hcnkgdHlwZSIsInR5cGVzIix0KSxhcigxPT09Zi5sZW5ndGgsImFtYmlndW91cyBwcmltYXJ5IHR5cGVzIG9yIHVudXNlZCB0eXBlczogIi5jb25jYXQoZi5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX0pKS5qb2luKCIsICIpKSwidHlwZXMiLHQpLHRyKHRoaXMse3ByaW1hcnlUeXBlOmZbMF19KSxmdW5jdGlvbiBlKHIsYSl7YXIoIWEuaGFzKHIpLCJjaXJjdWxhciB0eXBlIHJlZmVyZW5jZSB0byAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShyKSksInR5cGVzIix0KSxhLmFkZChyKTt2YXIgcyx1PVpzKG4uZ2V0KHIpKTt0cnl7Zm9yKHUucygpOyEocz11Lm4oKSkuZG9uZTspe3ZhciBjPXMudmFsdWU7aWYoby5oYXMoYykpe2UoYyxhKTt2YXIgbCxkPVpzKGEpO3RyeXtmb3IoZC5zKCk7IShsPWQubigpKS5kb25lOyl7dmFyIGY9bC52YWx1ZTtpLmdldChmKS5hZGQoYyl9fWNhdGNoKGUpe2QuZShlKX1maW5hbGx5e2QuZigpfX19fWNhdGNoKGUpe3UuZShlKX1maW5hbGx5e3UuZigpfWEuZGVsZXRlKHIpfSh0aGlzLnByaW1hcnlUeXBlLG5ldyBTZXQpO3ZhciBwLGg9WnMoaSk7dHJ5e2ZvcihoLnMoKTshKHA9aC5uKCkpLmRvbmU7KXt2YXIgeT1vaShwLnZhbHVlLDIpLGI9eVswXSx2PXlbMV0sbT1BcnJheS5mcm9tKHYpO20uc29ydCgpLHF0KHRoaXMsZnUpLnNldChiLGx1KGIsdFtiXSkrbS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBsdShlLHRbZV0pfSkpLmpvaW4oIiIpKX19Y2F0Y2goZSl7aC5lKGUpfWZpbmFsbHl7aC5mKCl9fXZhciB0O3JldHVybiB2KGUsW3trZXk6InR5cGVzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZShxdCh0aGlzLGR1KSl9fSx7a2V5OiJnZXRFbmNvZGVyIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1xdCh0aGlzLHB1KS5nZXQoZSk7cmV0dXJuIHR8fCh0PWZ1bmN0aW9uKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfSh0aGlzLGh1LHl1KS5jYWxsKHRoaXMsZSkscXQodGhpcyxwdSkuc2V0KGUsdCkpLHR9fSx7a2V5OiJlbmNvZGVUeXBlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1xdCh0aGlzLGZ1KS5nZXQoZSk7cmV0dXJuIGFyKHQsInVua25vd24gdHlwZTogIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkpLCJuYW1lIixlKSx0fX0se2tleToiZW5jb2RlRGF0YSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5nZXRFbmNvZGVyKGUpKHQpfX0se2tleToiaGFzaFN0cnVjdCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gd28odGhpcy5lbmNvZGVEYXRhKGUsdCkpfX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbmNvZGVEYXRhKHRoaXMucHJpbWFyeVR5cGUsZSl9fSx7a2V5OiJoYXNoIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5oYXNoU3RydWN0KHRoaXMucHJpbWFyeVR5cGUsZSl9fSx7a2V5OiJfdmlzaXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzO2lmKGN1KGUpKXJldHVybiByKGUsdCk7dmFyIG89ZS5tYXRjaCgvXiguKikoXHg1YihcZCopXHg1ZCkkLyk7aWYobylyZXR1cm4gYXIoIW9bM118fHBhcnNlSW50KG9bM10pPT09dC5sZW5ndGgsImFycmF5IGxlbmd0aCBtaXNtYXRjaDsgZXhwZWN0ZWQgbGVuZ3RoICIuY29uY2F0KHBhcnNlSW50KG9bM10pKSwidmFsdWUiLHQpLHQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5fdmlzaXQob1sxXSxlLHIpfSkpO3ZhciBpPXRoaXMudHlwZXNbZV07aWYoaSlyZXR1cm4gaS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbyl7dmFyIGk9by5uYW1lLGE9by50eXBlO3JldHVybiBlW2ldPW4uX3Zpc2l0KGEsdFtpXSxyKSxlfSkse30pO2FyKCExLCJ1bmtub3duIHR5cGU6ICIuY29uY2F0KGUpLCJ0eXBlIixlKX19LHtrZXk6InZpc2l0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl92aXNpdCh0aGlzLnByaW1hcnlUeXBlLGUsdCl9fV0sW3trZXk6ImZyb20iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0KX19LHtrZXk6ImdldFByaW1hcnlUeXBlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gZS5mcm9tKHQpLnByaW1hcnlUeXBlfX0se2tleToiaGFzaFN0cnVjdCIsdmFsdWU6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlLmZyb20ocikuaGFzaFN0cnVjdCh0LG4pfX0se2tleToiaGFzaERvbWFpbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIHI9W107Zm9yKHZhciBuIGluIHQpaWYobnVsbCE9dFtuXSl7dmFyIG89aXVbbl07YXIobywiaW52YWxpZCB0eXBlZC1kYXRhIGRvbWFpbiBrZXk6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KG4pKSwiZG9tYWluIix0KSxyLnB1c2goe25hbWU6bix0eXBlOm99KX1yZXR1cm4gci5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBhdS5pbmRleE9mKGUubmFtZSktYXUuaW5kZXhPZih0Lm5hbWUpfSkpLGUuaGFzaFN0cnVjdCgiRUlQNzEyRG9tYWluIix7RUlQNzEyRG9tYWluOnJ9LHQpfX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbih0LHIsbil7cmV0dXJuIHZyKFsiMHgxOTAxIixlLmhhc2hEb21haW4odCksZS5mcm9tKHIpLmhhc2gobildKX19LHtrZXk6Imhhc2giLHZhbHVlOmZ1bmN0aW9uKHQscixuKXtyZXR1cm4gd28oZS5lbmNvZGUodCxyLG4pKX19LHtrZXk6InJlc29sdmVOYW1lcyIsdmFsdWU6KHQ9cChCLm1hcmsoKGZ1bmN0aW9uIHQocixuLG8saSl7dmFyIGEscyx1LGM7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6Zm9yKGEgaW4gcj1PYmplY3QuYXNzaWduKHt9LHIpKW51bGw9PXJbYV0mJmRlbGV0ZSByW2FdO3M9e30sci52ZXJpZnlpbmdDb250cmFjdCYmIWhyKHIudmVyaWZ5aW5nQ29udHJhY3QsMjApJiYoc1tyLnZlcmlmeWluZ0NvbnRyYWN0XT0iMHgiKSwodT1lLmZyb20obikpLnZpc2l0KG8sKGZ1bmN0aW9uKGUsdCl7cmV0dXJuImFkZHJlc3MiIT09ZXx8aHIodCwyMCl8fChzW3RdPSIweCIpLHR9KSksdC50MD1CLmtleXMocyk7Y2FzZSA3OmlmKCh0LnQxPXQudDAoKSkuZG9uZSl7dC5uZXh0PTE0O2JyZWFrfXJldHVybiBjPXQudDEudmFsdWUsdC5uZXh0PTExLGkoYyk7Y2FzZSAxMTpzW2NdPXQuc2VudCx0Lm5leHQ9NzticmVhaztjYXNlIDE0OnJldHVybiByLnZlcmlmeWluZ0NvbnRyYWN0JiZzW3IudmVyaWZ5aW5nQ29udHJhY3RdJiYoci52ZXJpZnlpbmdDb250cmFjdD1zW3IudmVyaWZ5aW5nQ29udHJhY3RdKSxvPXUudmlzaXQobywoZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWRkcmVzcyI9PT1lJiZzW3RdP3NbdF06dH0pKSx0LmFicnVwdCgicmV0dXJuIix7ZG9tYWluOnIsdmFsdWU6b30pO2Nhc2UgMTc6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0KX0pKSksZnVuY3Rpb24oZSxyLG4sbyl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImdldFBheWxvYWQiLHZhbHVlOmZ1bmN0aW9uKHQscixuKXtlLmhhc2hEb21haW4odCk7dmFyIG89e30saT1bXTthdS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcj10W2VdO251bGwhPXImJihvW2VdPXV1W2VdKHIpLGkucHVzaCh7bmFtZTplLHR5cGU6aXVbZV19KSl9KSk7dmFyIGE9ZS5mcm9tKHIpLHM9T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm4gYXIobnVsbD09cy5FSVA3MTJEb21haW4sInR5cGVzIG11c3Qgbm90IGNvbnRhaW4gRUlQNzEyRG9tYWluIHR5cGUiLCJ0eXBlcy5FSVA3MTJEb21haW4iLHIpLHMuRUlQNzEyRG9tYWluPWksYS5lbmNvZGUobikse3R5cGVzOnMsZG9tYWluOm8scHJpbWFyeVR5cGU6YS5wcmltYXJ5VHlwZSxtZXNzYWdlOmEudmlzaXQobiwoZnVuY3Rpb24oZSx0KXtpZihlLm1hdGNoKC9eYnl0ZXMoXGQqKS8pKXJldHVybiBicihmcih0KSk7aWYoZS5tYXRjaCgvXnU/aW50LykpcmV0dXJuIE1yKHQpLnRvU3RyaW5nKCk7c3dpdGNoKGUpe2Nhc2UiYWRkcmVzcyI6cmV0dXJuIHQudG9Mb3dlckNhc2UoKTtjYXNlImJvb2wiOnJldHVybiEhdDtjYXNlInN0cmluZyI6cmV0dXJuIGFyKCJzdHJpbmciPT10eXBlb2YgdCwiaW52YWxpZCBzdHJpbmciLCJ2YWx1ZSIsdCksdH1hcighMSwidW5zdXBwb3J0ZWQgdHlwZSIsInR5cGUiLGUpfSkpfX19XSksZX0oKTtmdW5jdGlvbiB5dShlKXt2YXIgdD10aGlzLHI9Y3UoZSk7aWYocilyZXR1cm4gcjt2YXIgbj1lLm1hdGNoKC9eKC4qKShceDViKFxkKilceDVkKSQvKTtpZihuKXt2YXIgbz1uWzFdLGk9dGhpcy5nZXRFbmNvZGVyKG8pO3JldHVybiBmdW5jdGlvbihlKXthcighblszXXx8cGFyc2VJbnQoblszXSk9PT1lLmxlbmd0aCwiYXJyYXkgbGVuZ3RoIG1pc21hdGNoOyBleHBlY3RlZCBsZW5ndGggIi5jb25jYXQocGFyc2VJbnQoblszXSkpLCJ2YWx1ZSIsZSk7dmFyIHI9ZS5tYXAoaSk7cmV0dXJuIHF0KHQsZnUpLmhhcyhvKSYmKHI9ci5tYXAod28pKSx3byh2cihyKSl9fXZhciBhPXRoaXMudHlwZXNbZV07aWYoYSl7dmFyIHM9QW8ocXQodGhpcyxmdSkuZ2V0KGUpKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9YS5tYXAoKGZ1bmN0aW9uKHIpe3ZhciBuPXIubmFtZSxvPXIudHlwZSxpPXQuZ2V0RW5jb2RlcihvKShlW25dKTtyZXR1cm4gcXQodCxmdSkuaGFzKG8pP3dvKGkpOml9KSk7cmV0dXJuIHIudW5zaGlmdChzKSx2cihyKX19YXIoITEsInVua25vd24gdHlwZTogIi5jb25jYXQoZSksInR5cGUiLGUpfWZ1bmN0aW9uIGJ1KGUpe2Zvcih2YXIgdD1lLnRvU3RyaW5nKDE2KTt0Lmxlbmd0aDwyOyl0PSIwIit0O3JldHVybiIweCIrdH1mdW5jdGlvbiB2dShlLHQscil7Zm9yKHZhciBuPTAsbz0wO288cjtvKyspbj0yNTYqbitlW3Qrb107cmV0dXJuIG59ZnVuY3Rpb24gbXUoZSx0LHIsbil7Zm9yKHZhciBvPVtdO3I8dCsxK247KXt2YXIgaT1UdShlLHIpO28ucHVzaChpLnJlc3VsdCksaXIoKHIrPWkuY29uc3VtZWQpPD10KzErbiwiY2hpbGQgZGF0YSB0b28gc2hvcnQiLCJCVUZGRVJfT1ZFUlJVTiIse2J1ZmZlcjplLGxlbmd0aDpuLG9mZnNldDp0fSl9cmV0dXJue2NvbnN1bWVkOjErbixyZXN1bHQ6b319ZnVuY3Rpb24gVHUoZSx0KXtpcigwIT09ZS5sZW5ndGgsImRhdGEgdG9vIHNob3J0IiwiQlVGRkVSX09WRVJSVU4iLHtidWZmZXI6ZSxsZW5ndGg6MCxvZmZzZXQ6MX0pO3ZhciByPWZ1bmN0aW9uKHQpe2lyKHQ8PWUubGVuZ3RoLCJkYXRhIHNob3J0IHNlZ21lbnQgdG9vIHNob3J0IiwiQlVGRkVSX09WRVJSVU4iLHtidWZmZXI6ZSxsZW5ndGg6ZS5sZW5ndGgsb2Zmc2V0OnR9KX07aWYoZVt0XT49MjQ4KXt2YXIgbj1lW3RdLTI0NztyKHQrMStuKTt2YXIgbz12dShlLHQrMSxuKTtyZXR1cm4gcih0KzErbitvKSxtdShlLHQsdCsxK24sbitvKX1pZihlW3RdPj0xOTIpe3ZhciBpPWVbdF0tMTkyO3JldHVybiByKHQrMStpKSxtdShlLHQsdCsxLGkpfWlmKGVbdF0+PTE4NCl7dmFyIGE9ZVt0XS0xODM7cih0KzErYSk7dmFyIHM9dnUoZSx0KzEsYSk7cmV0dXJuIHIodCsxK2Ercykse2NvbnN1bWVkOjErYStzLHJlc3VsdDpicihlLnNsaWNlKHQrMSthLHQrMSthK3MpKX19aWYoZVt0XT49MTI4KXt2YXIgdT1lW3RdLTEyODtyZXR1cm4gcih0KzErdSkse2NvbnN1bWVkOjErdSxyZXN1bHQ6YnIoZS5zbGljZSh0KzEsdCsxK3UpKX19cmV0dXJue2NvbnN1bWVkOjEscmVzdWx0OmJ1KGVbdF0pfX1mdW5jdGlvbiB3dShlKXt2YXIgdD1mcihlLCJkYXRhIikscj1UdSh0LDApO3JldHVybiBhcihyLmNvbnN1bWVkPT09dC5sZW5ndGgsInVuZXhwZWN0ZWQganVuayBhZnRlciBybHAgcGF5bG9hZCIsImRhdGEiLGUpLHIucmVzdWx0fWZ1bmN0aW9uIEF1KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkodCk7cjx0O3IrKyluW3JdPWVbcl07cmV0dXJuIG59ZnVuY3Rpb24gUHUoZSl7Zm9yKHZhciB0PVtdO2U7KXQudW5zaGlmdCgyNTUmZSksZT4+PTg7cmV0dXJuIHR9ZnVuY3Rpb24gV3UoZSl7aWYoQXJyYXkuaXNBcnJheShlKSl7dmFyIHQ9W107aWYoZS5mb3JFYWNoKChmdW5jdGlvbihlKXt0PXQuY29uY2F0KFd1KGUpKX0pKSx0Lmxlbmd0aDw9NTUpcmV0dXJuIHQudW5zaGlmdCgxOTIrdC5sZW5ndGgpLHQ7dmFyIHI9UHUodC5sZW5ndGgpO3JldHVybiByLnVuc2hpZnQoMjQ3K3IubGVuZ3RoKSxyLmNvbmNhdCh0KX12YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcihlLCJvYmplY3QiKSk7aWYoMT09PW4ubGVuZ3RoJiZuWzBdPD0xMjcpcmV0dXJuIG47aWYobi5sZW5ndGg8PTU1KXJldHVybiBuLnVuc2hpZnQoMTI4K24ubGVuZ3RoKSxuO3ZhciBvPVB1KG4ubGVuZ3RoKTtyZXR1cm4gby51bnNoaWZ0KDE4MytvLmxlbmd0aCksby5jb25jYXQobil9dmFyIEJ1PSIwMTIzNDU2Nzg5YWJjZGVmIjtmdW5jdGlvbiBDdShlKXt2YXIgdCxyPSIweCIsbj1mdW5jdGlvbihlLHQpe3ZhciByPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheShlKXx8KHI9ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIEF1KGUsdCk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09ciYmZS5jb25zdHJ1Y3RvciYmKHI9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXJ8fCJTZXQiPT09cj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/QXUoZSx0KTp2b2lkIDB9fShlKSl8fHQmJmUmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ImJihlPXIpO3ZhciBuPTAsbz1mdW5jdGlvbigpe307cmV0dXJue3M6byxuOmZ1bmN0aW9uKCl7cmV0dXJuIG4+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW24rK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6b319dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfXZhciBpLGE9ITAscz0hMTtyZXR1cm57czpmdW5jdGlvbigpe3I9ci5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIGE9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7cz0hMCxpPWV9LGY6ZnVuY3Rpb24oKXt0cnl7YXx8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IGl9fX19KFd1KGUpKTt0cnl7Zm9yKG4ucygpOyEodD1uLm4oKSkuZG9uZTspe3ZhciBvPXQudmFsdWU7cis9QnVbbz4+NF0scis9QnVbMTUmb119fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXJldHVybiByfWZ1bmN0aW9uIEV1KGUsdCl7cmV0dXJue2FkZHJlc3M6bmkoZSksc3RvcmFnZUtleXM6dC5tYXAoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGFyKGhyKGUsMzIpLCJpbnZhbGlkIHNsb3QiLCJzdG9yYWdlS2V5c1siLmNvbmNhdCh0LCJdIiksZSksZS50b0xvd2VyQ2FzZSgpfSkpfX1mdW5jdGlvbiBNdShlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLm1hcCgoZnVuY3Rpb24odCxyKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT8oYXIoMj09PXQubGVuZ3RoLCJpbnZhbGlkIHNsb3Qgc2V0IiwidmFsdWVbIi5jb25jYXQociwiXSIpLHQpLEV1KHRbMF0sdFsxXSkpOihhcihudWxsIT10JiYib2JqZWN0Ij09PWgodCksImludmFsaWQgYWRkcmVzcy1zbG90IHNldCIsInZhbHVlIixlKSxFdSh0LmFkZHJlc3MsdC5zdG9yYWdlS2V5cykpfSkpO2FyKG51bGwhPWUmJiJvYmplY3QiPT09aChlKSwiaW52YWxpZCBhY2Nlc3MgbGlzdCIsInZhbHVlIixlKTt2YXIgdD1PYmplY3Qua2V5cyhlKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciByPWVbdF0ucmVkdWNlKChmdW5jdGlvbihlLHQpe3JldHVybiBlW3RdPSEwLGV9KSx7fSk7cmV0dXJuIEV1KHQsT2JqZWN0LmtleXMocikuc29ydCgpKX0pKTtyZXR1cm4gdC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmFkZHJlc3MubG9jYWxlQ29tcGFyZSh0LmFkZHJlc3MpfSkpLHR9ZnVuY3Rpb24ga3UoZSx0LHIpeyFmdW5jdGlvbihlLHQpe2lmKHQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KGUsdCksdC5zZXQoZSxyKX12YXIgSXU9QmlnSW50KDApLE91PUJpZ0ludCgyKSx4dT1CaWdJbnQoMjcpLFN1PUJpZ0ludCgyOCksRnU9QmlnSW50KDM1KSxfdT1CaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiIpO2Z1bmN0aW9uIFJ1KGUpe3JldHVybiIweCI9PT1lP251bGw6bmkoZSl9ZnVuY3Rpb24gTnUoZSx0KXt0cnl7cmV0dXJuIE11KGUpfWNhdGNoKHIpe2FyKCExLHIubWVzc2FnZSx0LGUpfX1mdW5jdGlvbiBVdShlLHQpe3JldHVybiIweCI9PT1lPzA6U3IoZSx0KX1mdW5jdGlvbiBEdShlLHQpe2lmKCIweCI9PT1lKXJldHVybiBJdTt2YXIgcj1NcihlLHQpO3JldHVybiBhcihyPD1fdSwidmFsdWUgZXhjZWVkcyB1aW50IHNpemUiLHQscikscn1mdW5jdGlvbiBMdShlLHQpe3ZhciByPU1yKGUsInZhbHVlIiksbj1fcihyKTtyZXR1cm4gYXIobi5sZW5ndGg8PTMyLCJ2YWx1ZSB0b28gbGFyZ2UiLCJ0eC4iLmNvbmNhdCh0KSxyKSxufWZ1bmN0aW9uIGp1KGUpe3JldHVybiBNdShlKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybltlLmFkZHJlc3MsZS5zdG9yYWdlS2V5c119KSl9ZnVuY3Rpb24genUoZSx0KXt2YXIgcj1bTHUoZS5ub25jZXx8MCwibm9uY2UiKSxMdShlLmdhc1ByaWNlfHwwLCJnYXNQcmljZSIpLEx1KGUuZ2FzTGltaXR8fDAsImdhc0xpbWl0IiksbnVsbCE9ZS50bz9uaShlLnRvKToiMHgiLEx1KGUudmFsdWV8fDAsInZhbHVlIiksZS5kYXRhfHwiMHgiXSxuPUl1O2lmKGUuY2hhaW5JZCE9SXUpbj1NcihlLmNoYWluSWQsInR4LmNoYWluSWQiKSxhcighdHx8bnVsbD09dC5uZXR3b3JrVnx8dC5sZWdhY3lDaGFpbklkPT09biwidHguY2hhaW5JZC9zaWcudiBtaXNtYXRjaCIsInNpZyIsdCk7ZWxzZSBpZihlLnNpZ25hdHVyZSl7dmFyIG89ZS5zaWduYXR1cmUubGVnYWN5Q2hhaW5JZDtudWxsIT1vJiYobj1vKX1pZighdClyZXR1cm4gbiE9PUl1JiYoci5wdXNoKF9yKG4pKSxyLnB1c2goIjB4Iiksci5wdXNoKCIweCIpKSxDdShyKTt2YXIgaT1CaWdJbnQoMjcrdC55UGFyaXR5KTtyZXR1cm4gbiE9PUl1P2k9cXIuZ2V0Q2hhaW5JZFYobix0LnYpOkJpZ0ludCh0LnYpIT09aSYmYXIoITEsInR4LmNoYWluSWQvc2lnLnYgbWlzbWF0Y2giLCJzaWciLHQpLHIucHVzaChfcihpKSksci5wdXNoKF9yKHQucikpLHIucHVzaChfcih0LnMpKSxDdShyKX1mdW5jdGlvbiAkdShlLHQpe3ZhciByO3RyeXtpZigwIT09KHI9VXUodFswXSwieVBhcml0eSIpKSYmMSE9PXIpdGhyb3cgbmV3IEVycm9yKCJiYWQgeVBhcml0eSIpfWNhdGNoKGUpe2FyKCExLCJpbnZhbGlkIHlQYXJpdHkiLCJ5UGFyaXR5Iix0WzBdKX12YXIgbj13cih0WzFdLDMyKSxvPXdyKHRbMl0sMzIpLGk9cXIuZnJvbSh7cjpuLHM6byx5UGFyaXR5OnJ9KTtlLnNpZ25hdHVyZT1pfWZ1bmN0aW9uIFZ1KGUsdCl7dmFyIHI9W0x1KGUuY2hhaW5JZHx8MCwiY2hhaW5JZCIpLEx1KGUubm9uY2V8fDAsIm5vbmNlIiksTHUoZS5tYXhQcmlvcml0eUZlZVBlckdhc3x8MCwibWF4UHJpb3JpdHlGZWVQZXJHYXMiKSxMdShlLm1heEZlZVBlckdhc3x8MCwibWF4RmVlUGVyR2FzIiksTHUoZS5nYXNMaW1pdHx8MCwiZ2FzTGltaXQiKSxudWxsIT1lLnRvP25pKGUudG8pOiIweCIsTHUoZS52YWx1ZXx8MCwidmFsdWUiKSxlLmRhdGF8fCIweCIsanUoZS5hY2Nlc3NMaXN0fHxbXSldO3JldHVybiB0JiYoci5wdXNoKEx1KHQueVBhcml0eSwieVBhcml0eSIpKSxyLnB1c2goX3IodC5yKSksci5wdXNoKF9yKHQucykpKSx2cihbIjB4MDIiLEN1KHIpXSl9ZnVuY3Rpb24gR3UoZSx0KXt2YXIgcj1bTHUoZS5jaGFpbklkfHwwLCJjaGFpbklkIiksTHUoZS5ub25jZXx8MCwibm9uY2UiKSxMdShlLmdhc1ByaWNlfHwwLCJnYXNQcmljZSIpLEx1KGUuZ2FzTGltaXR8fDAsImdhc0xpbWl0IiksbnVsbCE9ZS50bz9uaShlLnRvKToiMHgiLEx1KGUudmFsdWV8fDAsInZhbHVlIiksZS5kYXRhfHwiMHgiLGp1KGUuYWNjZXNzTGlzdHx8W10pXTtyZXR1cm4gdCYmKHIucHVzaChMdSh0LnlQYXJpdHksInJlY292ZXJ5UGFyYW0iKSksci5wdXNoKF9yKHQucikpLHIucHVzaChfcih0LnMpKSksdnIoWyIweDAxIixDdShyKV0pfXZhciBIdT1uZXcgV2Vha01hcCxLdT1uZXcgV2Vha01hcCxadT1uZXcgV2Vha01hcCxxdT1uZXcgV2Vha01hcCxKdT1uZXcgV2Vha01hcCxZdT1uZXcgV2Vha01hcCxYdT1uZXcgV2Vha01hcCxRdT1uZXcgV2Vha01hcCxlYz1uZXcgV2Vha01hcCx0Yz1uZXcgV2Vha01hcCxyYz1uZXcgV2Vha01hcCxuYz1uZXcgV2Vha01hcCxvYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtnKHRoaXMsZSksa3UodGhpcyxIdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxLdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxadSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxxdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxKdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxZdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxYdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxRdSx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxlYyx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyx0Yyx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxyYyx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksa3UodGhpcyxuYyx7d3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfSksWnQodGhpcyxIdSxudWxsKSxadCh0aGlzLEt1LG51bGwpLFp0KHRoaXMscXUsMCksWnQodGhpcyxKdSxCaWdJbnQoMCkpLFp0KHRoaXMsWXUsbnVsbCksWnQodGhpcyxYdSxudWxsKSxadCh0aGlzLFF1LG51bGwpLFp0KHRoaXMsWnUsIjB4IiksWnQodGhpcyxlYyxCaWdJbnQoMCkpLFp0KHRoaXMsdGMsQmlnSW50KDApKSxadCh0aGlzLHJjLG51bGwpLFp0KHRoaXMsbmMsbnVsbCl9cmV0dXJuIHYoZSxbe2tleToidHlwZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMsSHUpfSxzZXQ6ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UgbnVsbDpadCh0aGlzLEh1LG51bGwpO2JyZWFrO2Nhc2UgMDpjYXNlImxlZ2FjeSI6WnQodGhpcyxIdSwwKTticmVhaztjYXNlIDE6Y2FzZSJiZXJsaW4iOmNhc2UiZWlwLTI5MzAiOlp0KHRoaXMsSHUsMSk7YnJlYWs7Y2FzZSAyOmNhc2UibG9uZG9uIjpjYXNlImVpcC0xNTU5IjpadCh0aGlzLEh1LDIpO2JyZWFrO2RlZmF1bHQ6YXIoITEsInVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUiLCJ0eXBlIixlKX19fSx7a2V5OiJ0eXBlTmFtZSIsZ2V0OmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSAwOnJldHVybiJsZWdhY3kiO2Nhc2UgMTpyZXR1cm4iZWlwLTI5MzAiO2Nhc2UgMjpyZXR1cm4iZWlwLTE1NTkifXJldHVybiBudWxsfX0se2tleToidG8iLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEt1KX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsS3UsbnVsbD09ZT9udWxsOm5pKGUpKX19LHtrZXk6Im5vbmNlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcXQodGhpcyxxdSl9LHNldDpmdW5jdGlvbihlKXtadCh0aGlzLHF1LFNyKGUsInZhbHVlIikpfX0se2tleToiZ2FzTGltaXQiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEp1KX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsSnUsTXIoZSkpfX0se2tleToiZ2FzUHJpY2UiLGdldDpmdW5jdGlvbigpe3ZhciBlPXF0KHRoaXMsWXUpO3JldHVybiBudWxsIT1lfHwwIT09dGhpcy50eXBlJiYxIT09dGhpcy50eXBlP2U6SXV9LHNldDpmdW5jdGlvbihlKXtadCh0aGlzLFl1LG51bGw9PWU/bnVsbDpNcihlLCJnYXNQcmljZSIpKX19LHtrZXk6Im1heFByaW9yaXR5RmVlUGVyR2FzIixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1xdCh0aGlzLFh1KTtyZXR1cm4gbnVsbD09ZT8yPT09dGhpcy50eXBlP0l1Om51bGw6ZX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsWHUsbnVsbD09ZT9udWxsOk1yKGUsIm1heFByaW9yaXR5RmVlUGVyR2FzIikpfX0se2tleToibWF4RmVlUGVyR2FzIixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1xdCh0aGlzLFF1KTtyZXR1cm4gbnVsbD09ZT8yPT09dGhpcy50eXBlP0l1Om51bGw6ZX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsUXUsbnVsbD09ZT9udWxsOk1yKGUsIm1heEZlZVBlckdhcyIpKX19LHtrZXk6ImRhdGEiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLFp1KX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsWnUsYnIoZSkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLGVjKX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsZWMsTXIoZSwidmFsdWUiKSl9fSx7a2V5OiJjaGFpbklkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcXQodGhpcyx0Yyl9LHNldDpmdW5jdGlvbihlKXtadCh0aGlzLHRjLE1yKGUpKX19LHtrZXk6InNpZ25hdHVyZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMscmMpfHxudWxsfSxzZXQ6ZnVuY3Rpb24oZSl7WnQodGhpcyxyYyxudWxsPT1lP251bGw6cXIuZnJvbShlKSl9fSx7a2V5OiJhY2Nlc3NMaXN0IixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1xdCh0aGlzLG5jKXx8bnVsbDtyZXR1cm4gbnVsbD09ZT8xPT09dGhpcy50eXBlfHwyPT09dGhpcy50eXBlP1tdOm51bGw6ZX0sc2V0OmZ1bmN0aW9uKGUpe1p0KHRoaXMsbmMsbnVsbD09ZT9udWxsOk11KGUpKX19LHtrZXk6Imhhc2giLGdldDpmdW5jdGlvbigpe3JldHVybiBudWxsPT10aGlzLnNpZ25hdHVyZT9udWxsOndvKHRoaXMuc2VyaWFsaXplZCl9fSx7a2V5OiJ1bnNpZ25lZEhhc2giLGdldDpmdW5jdGlvbigpe3JldHVybiB3byh0aGlzLnVuc2lnbmVkU2VyaWFsaXplZCl9fSx7a2V5OiJmcm9tIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5zaWduYXR1cmU/bnVsbDpjYSh0aGlzLnVuc2lnbmVkSGFzaCx0aGlzLnNpZ25hdHVyZSl9fSx7a2V5OiJmcm9tUHVibGljS2V5IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09dGhpcy5zaWduYXR1cmU/bnVsbDpzYS5yZWNvdmVyUHVibGljS2V5KHRoaXMudW5zaWduZWRIYXNoLHRoaXMuc2lnbmF0dXJlKX19LHtrZXk6ImlzU2lnbmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBudWxsIT10aGlzLnNpZ25hdHVyZX19LHtrZXk6InNlcmlhbGl6ZWQiLGdldDpmdW5jdGlvbigpe3N3aXRjaChpcihudWxsIT10aGlzLnNpZ25hdHVyZSwiY2Fubm90IHNlcmlhbGl6ZSB1bnNpZ25lZCB0cmFuc2FjdGlvbjsgbWF5YmUgeW91IG1lYW50IC51bnNpZ25lZFNlcmlhbGl6ZWQiLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246Ii5zZXJpYWxpemVkIn0pLHRoaXMuaW5mZXJUeXBlKCkpe2Nhc2UgMDpyZXR1cm4genUodGhpcyx0aGlzLnNpZ25hdHVyZSk7Y2FzZSAxOnJldHVybiBHdSh0aGlzLHRoaXMuc2lnbmF0dXJlKTtjYXNlIDI6cmV0dXJuIFZ1KHRoaXMsdGhpcy5zaWduYXR1cmUpfWlyKCExLCJ1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlIiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiIuc2VyaWFsaXplZCJ9KX19LHtrZXk6InVuc2lnbmVkU2VyaWFsaXplZCIsZ2V0OmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuaW5mZXJUeXBlKCkpe2Nhc2UgMDpyZXR1cm4genUodGhpcyk7Y2FzZSAxOnJldHVybiBHdSh0aGlzKTtjYXNlIDI6cmV0dXJuIFZ1KHRoaXMpfWlyKCExLCJ1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlIiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiIudW5zaWduZWRTZXJpYWxpemVkIn0pfX0se2tleToiaW5mZXJUeXBlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmVyVHlwZXMoKS5wb3AoKX19LHtrZXk6ImluZmVyVHlwZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9bnVsbCE9dGhpcy5nYXNQcmljZSx0PW51bGwhPXRoaXMubWF4RmVlUGVyR2FzfHxudWxsIT10aGlzLm1heFByaW9yaXR5RmVlUGVyR2FzLHI9bnVsbCE9dGhpcy5hY2Nlc3NMaXN0O251bGwhPXRoaXMubWF4RmVlUGVyR2FzJiZudWxsIT10aGlzLm1heFByaW9yaXR5RmVlUGVyR2FzJiZpcih0aGlzLm1heEZlZVBlckdhcz49dGhpcy5tYXhQcmlvcml0eUZlZVBlckdhcywicHJpb3JpdHlGZWUgY2Fubm90IGJlIG1vcmUgdGhhbiBtYXhGZWUiLCJCQURfREFUQSIse3ZhbHVlOnRoaXN9KSxpcighdHx8MCE9PXRoaXMudHlwZSYmMSE9PXRoaXMudHlwZSwidHJhbnNhY3Rpb24gdHlwZSBjYW5ub3QgaGF2ZSBtYXhGZWVQZXJHYXMgb3IgbWF4UHJpb3JpdHlGZWVQZXJHYXMiLCJCQURfREFUQSIse3ZhbHVlOnRoaXN9KSxpcigwIT09dGhpcy50eXBlfHwhciwibGVnYWN5IHRyYW5zYWN0aW9uIGNhbm5vdCBoYXZlIGFjY2Vzc0xpc3QiLCJCQURfREFUQSIse3ZhbHVlOnRoaXN9KTt2YXIgbj1bXTtyZXR1cm4gbnVsbCE9dGhpcy50eXBlP24ucHVzaCh0aGlzLnR5cGUpOnQ/bi5wdXNoKDIpOmU/KG4ucHVzaCgxKSxyfHxuLnB1c2goMCkpOnI/KG4ucHVzaCgxKSxuLnB1c2goMikpOihuLnB1c2goMCksbi5wdXNoKDEpLG4ucHVzaCgyKSksbi5zb3J0KCksbn19LHtrZXk6ImlzTGVnYWN5Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy50eXBlfX0se2tleToiaXNCZXJsaW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnR5cGV9fSx7a2V5OiJpc0xvbmRvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRoaXMudHlwZX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBlLmZyb20odGhpcyl9fSx7a2V5OiJ0b0pTT04iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/bnVsbDplLnRvU3RyaW5nKCl9O3JldHVybnt0eXBlOnRoaXMudHlwZSx0bzp0aGlzLnRvLGRhdGE6dGhpcy5kYXRhLG5vbmNlOnRoaXMubm9uY2UsZ2FzTGltaXQ6ZSh0aGlzLmdhc0xpbWl0KSxnYXNQcmljZTplKHRoaXMuZ2FzUHJpY2UpLG1heFByaW9yaXR5RmVlUGVyR2FzOmUodGhpcy5tYXhQcmlvcml0eUZlZVBlckdhcyksbWF4RmVlUGVyR2FzOmUodGhpcy5tYXhGZWVQZXJHYXMpLHZhbHVlOmUodGhpcy52YWx1ZSksY2hhaW5JZDplKHRoaXMuY2hhaW5JZCksc2lnOnRoaXMuc2lnbmF0dXJlP3RoaXMuc2lnbmF0dXJlLnRvSlNPTigpOm51bGwsYWNjZXNzTGlzdDp0aGlzLmFjY2Vzc0xpc3R9fX1dLFt7a2V5OiJmcm9tIix2YWx1ZTpmdW5jdGlvbih0KXtpZihudWxsPT10KXJldHVybiBuZXcgZTtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciByPWZyKHQpO2lmKHJbMF0+PTEyNylyZXR1cm4gZS5mcm9tKGZ1bmN0aW9uKGUpe3ZhciB0PXd1KGUpO2FyKEFycmF5LmlzQXJyYXkodCkmJig5PT09dC5sZW5ndGh8fDY9PT10Lmxlbmd0aCksImludmFsaWQgZmllbGQgY291bnQgZm9yIGxlZ2FjeSB0cmFuc2FjdGlvbiIsImRhdGEiLGUpO3ZhciByPXt0eXBlOjAsbm9uY2U6VXUodFswXSwibm9uY2UiKSxnYXNQcmljZTpEdSh0WzFdLCJnYXNQcmljZSIpLGdhc0xpbWl0OkR1KHRbMl0sImdhc0xpbWl0IiksdG86UnUodFszXSksdmFsdWU6RHUodFs0XSwidmFsdWUiKSxkYXRhOmJyKHRbNV0pLGNoYWluSWQ6SXV9O2lmKDY9PT10Lmxlbmd0aClyZXR1cm4gcjt2YXIgbj1EdSh0WzZdLCJ2Iiksbz1EdSh0WzddLCJyIiksaT1EdSh0WzhdLCJzIik7aWYobz09PUl1JiZpPT09SXUpci5jaGFpbklkPW47ZWxzZXt2YXIgYT0obi1GdSkvT3U7YTxJdSYmKGE9SXUpLHIuY2hhaW5JZD1hLGFyKGEhPT1JdXx8bj09PXh1fHxuPT09U3UsIm5vbi1jYW5vbmljYWwgbGVnYWN5IHYiLCJ2Iix0WzZdKSxyLnNpZ25hdHVyZT1xci5mcm9tKHtyOndyKHRbN10sMzIpLHM6d3IodFs4XSwzMiksdjpufSksci5oYXNoPXdvKGUpfXJldHVybiByfShyKSk7c3dpdGNoKHJbMF0pe2Nhc2UgMTpyZXR1cm4gZS5mcm9tKGZ1bmN0aW9uKGUpe3ZhciB0PXd1KGZyKGUpLnNsaWNlKDEpKTthcihBcnJheS5pc0FycmF5KHQpJiYoOD09PXQubGVuZ3RofHwxMT09PXQubGVuZ3RoKSwiaW52YWxpZCBmaWVsZCBjb3VudCBmb3IgdHJhbnNhY3Rpb24gdHlwZTogMSIsImRhdGEiLGJyKGUpKTt2YXIgcj17dHlwZToxLGNoYWluSWQ6RHUodFswXSwiY2hhaW5JZCIpLG5vbmNlOlV1KHRbMV0sIm5vbmNlIiksZ2FzUHJpY2U6RHUodFsyXSwiZ2FzUHJpY2UiKSxnYXNMaW1pdDpEdSh0WzNdLCJnYXNMaW1pdCIpLHRvOlJ1KHRbNF0pLHZhbHVlOkR1KHRbNV0sInZhbHVlIiksZGF0YTpicih0WzZdKSxhY2Nlc3NMaXN0Ok51KHRbN10sImFjY2Vzc0xpc3QiKX07cmV0dXJuIDg9PT10Lmxlbmd0aHx8KHIuaGFzaD13byhlKSwkdShyLHQuc2xpY2UoOCkpKSxyfShyKSk7Y2FzZSAyOnJldHVybiBlLmZyb20oZnVuY3Rpb24oZSl7dmFyIHQ9d3UoZnIoZSkuc2xpY2UoMSkpO2FyKEFycmF5LmlzQXJyYXkodCkmJig5PT09dC5sZW5ndGh8fDEyPT09dC5sZW5ndGgpLCJpbnZhbGlkIGZpZWxkIGNvdW50IGZvciB0cmFuc2FjdGlvbiB0eXBlOiAyIiwiZGF0YSIsYnIoZSkpO3ZhciByPUR1KHRbMl0sIm1heFByaW9yaXR5RmVlUGVyR2FzIiksbj1EdSh0WzNdLCJtYXhGZWVQZXJHYXMiKSxvPXt0eXBlOjIsY2hhaW5JZDpEdSh0WzBdLCJjaGFpbklkIiksbm9uY2U6VXUodFsxXSwibm9uY2UiKSxtYXhQcmlvcml0eUZlZVBlckdhczpyLG1heEZlZVBlckdhczpuLGdhc1ByaWNlOm51bGwsZ2FzTGltaXQ6RHUodFs0XSwiZ2FzTGltaXQiKSx0bzpSdSh0WzVdKSx2YWx1ZTpEdSh0WzZdLCJ2YWx1ZSIpLGRhdGE6YnIodFs3XSksYWNjZXNzTGlzdDpOdSh0WzhdLCJhY2Nlc3NMaXN0Iil9O3JldHVybiA5PT09dC5sZW5ndGh8fChvLmhhc2g9d28oZSksJHUobyx0LnNsaWNlKDkpKSksb30ocikpfWlyKCExLCJ1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlIiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiJmcm9tIn0pfXZhciBuPW5ldyBlO3JldHVybiBudWxsIT10LnR5cGUmJihuLnR5cGU9dC50eXBlKSxudWxsIT10LnRvJiYobi50bz10LnRvKSxudWxsIT10Lm5vbmNlJiYobi5ub25jZT10Lm5vbmNlKSxudWxsIT10Lmdhc0xpbWl0JiYobi5nYXNMaW1pdD10Lmdhc0xpbWl0KSxudWxsIT10Lmdhc1ByaWNlJiYobi5nYXNQcmljZT10Lmdhc1ByaWNlKSxudWxsIT10Lm1heFByaW9yaXR5RmVlUGVyR2FzJiYobi5tYXhQcmlvcml0eUZlZVBlckdhcz10Lm1heFByaW9yaXR5RmVlUGVyR2FzKSxudWxsIT10Lm1heEZlZVBlckdhcyYmKG4ubWF4RmVlUGVyR2FzPXQubWF4RmVlUGVyR2FzKSxudWxsIT10LmRhdGEmJihuLmRhdGE9dC5kYXRhKSxudWxsIT10LnZhbHVlJiYobi52YWx1ZT10LnZhbHVlKSxudWxsIT10LmNoYWluSWQmJihuLmNoYWluSWQ9dC5jaGFpbklkKSxudWxsIT10LnNpZ25hdHVyZSYmKG4uc2lnbmF0dXJlPXFyLmZyb20odC5zaWduYXR1cmUpKSxudWxsIT10LmFjY2Vzc0xpc3QmJihuLmFjY2Vzc0xpc3Q9dC5hY2Nlc3NMaXN0KSxudWxsIT10Lmhhc2gmJihhcihuLmlzU2lnbmVkKCksInVuc2lnbmVkIHRyYW5zYWN0aW9uIGNhbm5vdCBkZWZpbmUgaGFzaCIsInR4Iix0KSxhcihuLmhhc2g9PT10Lmhhc2gsImhhc2ggbWlzbWF0Y2giLCJ0eCIsdCkpLG51bGwhPXQuZnJvbSYmKGFyKG4uaXNTaWduZWQoKSwidW5zaWduZWQgdHJhbnNhY3Rpb24gY2Fubm90IGRlZmluZSBmcm9tIiwidHgiLHQpLGFyKG4uZnJvbS50b0xvd2VyQ2FzZSgpPT09KHQuZnJvbXx8IiIpLnRvTG93ZXJDYXNlKCksImZyb20gbWlzbWF0Y2giLCJ0eCIsdCkpLG59fV0pLGV9KCk7ZnVuY3Rpb24gaWMoZSx0KXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoIXIpe2lmKEFycmF5LmlzQXJyYXkoZSl8fChyPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBhYyhlLHQpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1yfHwiU2V0Ij09PXI/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP2FjKGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtyJiYoZT1yKTt2YXIgbj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiBuPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtuKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgaSxhPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPXIubmV4dCgpO3JldHVybiBhPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsaT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2F8fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBpfX19fWZ1bmN0aW9uIGFjKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkodCk7cjx0O3IrKyluW3JdPWVbcl07cmV0dXJuIG59ZnVuY3Rpb24gc2MoZSl7dmFyIHQ9e307ZS50byYmKHQudG89ZS50byksZS5mcm9tJiYodC5mcm9tPWUuZnJvbSksZS5kYXRhJiYodC5kYXRhPWJyKGUuZGF0YSkpO3ZhciByLG49aWMoImNoYWluSWQsZ2FzTGltaXQsZ2FzUHJpY2UsbWF4RmVlUGVyR2FzLG1heFByaW9yaXR5RmVlUGVyR2FzLHZhbHVlIi5zcGxpdCgvLC8pKTt0cnl7Zm9yKG4ucygpOyEocj1uLm4oKSkuZG9uZTspe3ZhciBvPXIudmFsdWU7byBpbiBlJiZudWxsIT1lW29dJiYodFtvXT1NcihlW29dLCJyZXF1ZXN0LiIuY29uY2F0KG8pKSl9fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfXZhciBpLGE9aWMoInR5cGUsbm9uY2UiLnNwbGl0KC8sLykpO3RyeXtmb3IoYS5zKCk7IShpPWEubigpKS5kb25lOyl7dmFyIHM9aS52YWx1ZTtzIGluIGUmJm51bGwhPWVbc10mJih0W3NdPVNyKGVbc10sInJlcXVlc3QuIi5jb25jYXQocykpKX19Y2F0Y2goZSl7YS5lKGUpfWZpbmFsbHl7YS5mKCl9cmV0dXJuIGUuYWNjZXNzTGlzdCYmKHQuYWNjZXNzTGlzdD1NdShlLmFjY2Vzc0xpc3QpKSwiYmxvY2tUYWciaW4gZSYmKHQuYmxvY2tUYWc9ZS5ibG9ja1RhZyksImVuYWJsZUNjaXBSZWFkImluIGUmJih0LmVuYWJsZUNjaXBSZWFkRW5hYmxlZD0hIWUuZW5hYmxlQ2NpcFJlYWQpLCJjdXN0b21EYXRhImluIGUmJih0LmN1c3RvbURhdGE9ZS5jdXN0b21EYXRhKSx0fWZ1bmN0aW9uIHVjKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfWZ1bmN0aW9uIGNjKGUsdCl7aWYoZS5wcm92aWRlcilyZXR1cm4gZS5wcm92aWRlcjtpcighMSwibWlzc2luZyBwcm92aWRlciIsIlVOU1VQUE9SVEVEX09QRVJBVElPTiIse29wZXJhdGlvbjp0fSl9ZnVuY3Rpb24gbGMoZSx0KXtyZXR1cm4gZGMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGRjKCl7cmV0dXJuKGRjPXAoQi5tYXJrKChmdW5jdGlvbiBlKHQscil7dmFyIG4sbztyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbnVsbCE9KG49c2MocikpLnRvJiYobi50bz1IcyhuLnRvLHQpKSxudWxsIT1uLmZyb20/KG89bi5mcm9tLG4uZnJvbT1Qcm9taXNlLmFsbChbdC5nZXRBZGRyZXNzKCksSHMobyx0KV0pLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciB0PW9pKGUsMikscj10WzBdLG49dFsxXTtyZXR1cm4gYXIoci50b0xvd2VyQ2FzZSgpPT09bi50b0xvd2VyQ2FzZSgpLCJ0cmFuc2FjdGlvbiBmcm9tIG1pc21hdGNoIiwidHguZnJvbSIsbikscn0pKSk6bi5mcm9tPXQuZ2V0QWRkcmVzcygpLGUubmV4dD01LFF0KG4pO2Nhc2UgNTpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsZS5zZW50KTtjYXNlIDY6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1CaWdJbnQoMCksU3ltYm9sLml0ZXJhdG9yLFN5bWJvbC5pdGVyYXRvcjt2YXIgZmM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2codGhpcyxlKSxXKHRoaXMsInByb3ZpZGVyIix2b2lkIDApLHRyKHRoaXMse3Byb3ZpZGVyOnR8fG51bGx9KX12YXIgdCxyLG4sbyxpLGEscztyZXR1cm4gdihlLFt7a2V5OiJnZXROb25jZSIsdmFsdWU6KHM9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUudDA9Y2ModGhpcywiZ2V0VHJhbnNhY3Rpb25Db3VudCIpLGUubmV4dD0zLHRoaXMuZ2V0QWRkcmVzcygpO2Nhc2UgMzpyZXR1cm4gZS50MT1lLnNlbnQsZS50Mj10LGUuYWJydXB0KCJyZXR1cm4iLGUudDAuZ2V0VHJhbnNhY3Rpb25Db3VudC5jYWxsKGUudDAsZS50MSxlLnQyKSk7Y2FzZSA2OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oZSl7cmV0dXJuIHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6InBvcHVsYXRlQ2FsbCIsdmFsdWU6KGE9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIHI7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLGxjKHRoaXMsdCk7Y2FzZSAyOnJldHVybiByPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixyKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToicG9wdWxhdGVUcmFuc2FjdGlvbiIsdmFsdWU6KGk9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIHIsbixvLGksYSxzLHU7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHI9Y2ModGhpcywicG9wdWxhdGVUcmFuc2FjdGlvbiIpLGUubmV4dD0zLGxjKHRoaXMsdCk7Y2FzZSAzOmlmKG51bGwhPShuPWUuc2VudCkubm9uY2Upe2UubmV4dD04O2JyZWFrfXJldHVybiBlLm5leHQ9Nyx0aGlzLmdldE5vbmNlKCJwZW5kaW5nIik7Y2FzZSA3Om4ubm9uY2U9ZS5zZW50O2Nhc2UgODppZihudWxsIT1uLmdhc0xpbWl0KXtlLm5leHQ9MTI7YnJlYWt9cmV0dXJuIGUubmV4dD0xMSx0aGlzLmVzdGltYXRlR2FzKG4pO2Nhc2UgMTE6bi5nYXNMaW1pdD1lLnNlbnQ7Y2FzZSAxMjpyZXR1cm4gZS5uZXh0PTE0LHRoaXMucHJvdmlkZXIuZ2V0TmV0d29yaygpO2Nhc2UgMTQ6aWYobz1lLnNlbnQsbnVsbCE9bi5jaGFpbklkP2FyKE1yKG4uY2hhaW5JZCk9PT1vLmNoYWluSWQsInRyYW5zYWN0aW9uIGNoYWluSWQgbWlzbWF0Y2giLCJ0eC5jaGFpbklkIix0LmNoYWluSWQpOm4uY2hhaW5JZD1vLmNoYWluSWQsaT1udWxsIT1uLm1heEZlZVBlckdhc3x8bnVsbCE9bi5tYXhQcmlvcml0eUZlZVBlckdhcyxudWxsPT1uLmdhc1ByaWNlfHwyIT09bi50eXBlJiYhaT8wIT09bi50eXBlJiYxIT09bi50eXBlfHwhaXx8YXIoITEsInByZS1laXAtMTU1OSB0cmFuc2FjdGlvbiBkbyBub3Qgc3VwcG9ydCBtYXhGZWVQZXJHYXMvbWF4UHJpb3JpdHlGZWVQZXJHYXMiLCJ0eCIsdCk6YXIoITEsImVpcC0xNTU5IHRyYW5zYWN0aW9uIGRvIG5vdCBzdXBwb3J0IGdhc1ByaWNlIiwidHgiLHQpLDIhPT1uLnR5cGUmJm51bGwhPW4udHlwZXx8bnVsbD09bi5tYXhGZWVQZXJHYXN8fG51bGw9PW4ubWF4UHJpb3JpdHlGZWVQZXJHYXMpe2UubmV4dD0yMjticmVha31uLnR5cGU9MixlLm5leHQ9MzQ7YnJlYWs7Y2FzZSAyMjppZigwIT09bi50eXBlJiYxIT09bi50eXBlKXtlLm5leHQ9MzA7YnJlYWt9cmV0dXJuIGUubmV4dD0yNSxyLmdldEZlZURhdGEoKTtjYXNlIDI1OmlyKG51bGwhPShhPWUuc2VudCkuZ2FzUHJpY2UsIm5ldHdvcmsgZG9lcyBub3Qgc3VwcG9ydCBnYXNQcmljZSIsIlVOU1VQUE9SVEVEX09QRVJBVElPTiIse29wZXJhdGlvbjoiZ2V0R2FzUHJpY2UifSksbnVsbD09bi5nYXNQcmljZSYmKG4uZ2FzUHJpY2U9YS5nYXNQcmljZSksZS5uZXh0PTM0O2JyZWFrO2Nhc2UgMzA6cmV0dXJuIGUubmV4dD0zMixyLmdldEZlZURhdGEoKTtjYXNlIDMyOnM9ZS5zZW50LG51bGw9PW4udHlwZT9udWxsIT1zLm1heEZlZVBlckdhcyYmbnVsbCE9cy5tYXhQcmlvcml0eUZlZVBlckdhcz8obi50eXBlPTIsbnVsbCE9bi5nYXNQcmljZT8odT1uLmdhc1ByaWNlLGRlbGV0ZSBuLmdhc1ByaWNlLG4ubWF4RmVlUGVyR2FzPXUsbi5tYXhQcmlvcml0eUZlZVBlckdhcz11KToobnVsbD09bi5tYXhGZWVQZXJHYXMmJihuLm1heEZlZVBlckdhcz1zLm1heEZlZVBlckdhcyksbnVsbD09bi5tYXhQcmlvcml0eUZlZVBlckdhcyYmKG4ubWF4UHJpb3JpdHlGZWVQZXJHYXM9cy5tYXhQcmlvcml0eUZlZVBlckdhcykpKTpudWxsIT1zLmdhc1ByaWNlPyhpcighaSwibmV0d29yayBkb2VzIG5vdCBzdXBwb3J0IEVJUC0xNTU5IiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiJwb3B1bGF0ZVRyYW5zYWN0aW9uIn0pLG51bGw9PW4uZ2FzUHJpY2UmJihuLmdhc1ByaWNlPXMuZ2FzUHJpY2UpLG4udHlwZT0wKTppcighMSwiZmFpbGVkIHRvIGdldCBjb25zaXN0ZW50IGZlZSBkYXRhIiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiJzaWduZXIuZ2V0RmVlRGF0YSJ9KToyPT09bi50eXBlJiYobnVsbD09bi5tYXhGZWVQZXJHYXMmJihuLm1heEZlZVBlckdhcz1zLm1heEZlZVBlckdhcyksbnVsbD09bi5tYXhQcmlvcml0eUZlZVBlckdhcyYmKG4ubWF4UHJpb3JpdHlGZWVQZXJHYXM9cy5tYXhQcmlvcml0eUZlZVBlckdhcykpO2Nhc2UgMzQ6cmV0dXJuIGUubmV4dD0zNixRdChuKTtjYXNlIDM2OnJldHVybiBlLmFicnVwdCgicmV0dXJuIixlLnNlbnQpO2Nhc2UgMzc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZXN0aW1hdGVHYXMiLHZhbHVlOihvPXAoQi5tYXJrKChmdW5jdGlvbiBlKHQpe3JldHVybiBCLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLnQwPWNjKHRoaXMsImVzdGltYXRlR2FzIiksZS5uZXh0PTMsdGhpcy5wb3B1bGF0ZUNhbGwodCk7Y2FzZSAzOnJldHVybiBlLnQxPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixlLnQwLmVzdGltYXRlR2FzLmNhbGwoZS50MCxlLnQxKSk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oZSl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImNhbGwiLHZhbHVlOihuPXAoQi5tYXJrKChmdW5jdGlvbiBlKHQpe3JldHVybiBCLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLnQwPWNjKHRoaXMsImNhbGwiKSxlLm5leHQ9Myx0aGlzLnBvcHVsYXRlQ2FsbCh0KTtjYXNlIDM6cmV0dXJuIGUudDE9ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLGUudDAuY2FsbC5jYWxsKGUudDAsZS50MSkpO2Nhc2UgNTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUpe3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJyZXNvbHZlTmFtZSIsdmFsdWU6KHI9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIHI7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHI9Y2ModGhpcywicmVzb2x2ZU5hbWUiKSxlLm5leHQ9MyxyLnJlc29sdmVOYW1lKHQpO2Nhc2UgMzpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsZS5zZW50KTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToic2VuZFRyYW5zYWN0aW9uIix2YWx1ZToodD1wKEIubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcixuLG87cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHI9Y2ModGhpcywic2VuZFRyYW5zYWN0aW9uIiksZS5uZXh0PTMsdGhpcy5wb3B1bGF0ZVRyYW5zYWN0aW9uKHQpO2Nhc2UgMzpyZXR1cm4gZGVsZXRlKG49ZS5zZW50KS5mcm9tLG89b2MuZnJvbShuKSxlLnQwPXIsZS5uZXh0PTksdGhpcy5zaWduVHJhbnNhY3Rpb24obyk7Y2FzZSA5OnJldHVybiBlLnQxPWUuc2VudCxlLm5leHQ9MTIsZS50MC5icm9hZGNhc3RUcmFuc2FjdGlvbi5jYWxsKGUudDAsZS50MSk7Y2FzZSAxMjpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsZS5zZW50KTtjYXNlIDEzOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9XSksZX0oKSxwYz1uZXcgV2Vha1NldCxoYz1mdW5jdGlvbihlKXt3KHMsZSk7dmFyIHQscixuLG8saSxhPShvPXMsaT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSx0PVAobyk7aWYoaSl7dmFyIHI9UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KHQsYXJndW1lbnRzLHIpfWVsc2UgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gcyhlLHQpe3ZhciByLG4sbztyZXR1cm4gZyh0aGlzLHMpLGZ1bmN0aW9uKGUsdCl7aWYodC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0obj1tKHI9YS5jYWxsKHRoaXMsdCkpLG89cGMpLG8uYWRkKG4pLFcobShyKSwiYWRkcmVzcyIsdm9pZCAwKSx0cihtKHIpLHthZGRyZXNzOmV9KSxyfXJldHVybiB2KHMsW3trZXk6ImdldEFkZHJlc3MiLHZhbHVlOihuPXAoQi5tYXJrKChmdW5jdGlvbiBlKCl7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuYWRkcmVzcyk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiY29ubmVjdCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBzKHRoaXMuYWRkcmVzcyxlKX19LHtrZXk6InNpZ25UcmFuc2FjdGlvbiIsdmFsdWU6KHI9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6dWModGhpcyxwYyxnYykuY2FsbCh0aGlzLCJ0cmFuc2FjdGlvbnMiLCJzaWduVHJhbnNhY3Rpb24iKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToic2lnbk1lc3NhZ2UiLHZhbHVlOih0PXAoQi5tYXJrKChmdW5jdGlvbiBlKHQpe3JldHVybiBCLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnVjKHRoaXMscGMsZ2MpLmNhbGwodGhpcywibWVzc2FnZXMiLCJzaWduTWVzc2FnZSIpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJzaWduVHlwZWREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXAoQi5tYXJrKChmdW5jdGlvbiBlKHQscixuKXtyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDp1Yyh0aGlzLHBjLGdjKS5jYWxsKHRoaXMsInR5cGVkLWRhdGEiLCJzaWduVHlwZWREYXRhIik7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpfV0pLHN9KGZjKTtmdW5jdGlvbiBnYyhlLHQpe2lyKCExLCJWb2lkU2lnbmVyIGNhbm5vdCBzaWduICIuY29uY2F0KGUpLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246dH0pfXZhciB5Yz1uZXcgV2Vha01hcCxiYz1mdW5jdGlvbihlKXt3KHMsZSk7dmFyIHQscixuLG8saSxhPShvPXMsaT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCksZnVuY3Rpb24oKXt2YXIgZSx0PVAobyk7aWYoaSl7dmFyIHI9UCh0aGlzKS5jb25zdHJ1Y3RvcjtlPVJlZmxlY3QuY29uc3RydWN0KHQsYXJndW1lbnRzLHIpfWVsc2UgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLGUpfSk7ZnVuY3Rpb24gcyhlLHQpe3ZhciByLG4sbyxpO2codGhpcyxzKSxXKG0ocj1hLmNhbGwodGhpcyx0KSksImFkZHJlc3MiLHZvaWQgMCksbj1tKHIpLGk9e3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0sZnVuY3Rpb24oZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfShuLG89eWMpLG8uc2V0KG4saSksYXIoZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuc2lnbiwiaW52YWxpZCBwcml2YXRlIGtleSIsInByaXZhdGVLZXkiLCJbIFJFREFDVEVEIF0iKSxadChtKHIpLHljLGUpO3ZhciB1PXVhKHIuc2lnbmluZ0tleS5wdWJsaWNLZXkpO3JldHVybiB0cihtKHIpLHthZGRyZXNzOnV9KSxyfXJldHVybiB2KHMsW3trZXk6InNpZ25pbmdLZXkiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLHljKX19LHtrZXk6InByaXZhdGVLZXkiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpZ25pbmdLZXkucHJpdmF0ZUtleX19LHtrZXk6ImdldEFkZHJlc3MiLHZhbHVlOihuPXAoQi5tYXJrKChmdW5jdGlvbiBlKCl7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuYWRkcmVzcyk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiY29ubmVjdCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBzKHF0KHRoaXMseWMpLGUpfX0se2tleToic2lnblRyYW5zYWN0aW9uIix2YWx1ZToocj1wKEIubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcixuLG8saTtyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsUXQoe3RvOnQudG8/SHModC50byx0aGlzLnByb3ZpZGVyKTp2b2lkIDAsZnJvbTp0LmZyb20/SHModC5mcm9tLHRoaXMucHJvdmlkZXIpOnZvaWQgMH0pO2Nhc2UgMjpyZXR1cm4gcj1lLnNlbnQsbj1yLnRvLG89ci5mcm9tLG51bGwhPW4mJih0LnRvPW4pLG51bGwhPW8mJih0LmZyb209byksbnVsbCE9dC5mcm9tJiYoYXIobmkodC5mcm9tKT09PXRoaXMuYWRkcmVzcywidHJhbnNhY3Rpb24gZnJvbSBhZGRyZXNzIG1pc21hdGNoIiwidHguZnJvbSIsdC5mcm9tKSxkZWxldGUgdC5mcm9tKSwoaT1vYy5mcm9tKHQpKS5zaWduYXR1cmU9dGhpcy5zaWduaW5nS2V5LnNpZ24oaS51bnNpZ25lZEhhc2gpLGUuYWJydXB0KCJyZXR1cm4iLGkuc2VyaWFsaXplZCk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUpe3JldHVybiByLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJzaWduTWVzc2FnZSIsdmFsdWU6KHQ9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuc2lnbk1lc3NhZ2VTeW5jKHQpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToic2lnbk1lc3NhZ2VTeW5jIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5zaWduaW5nS2V5LnNpZ24oZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYoZT1YbihlKSksd28odnIoW1huKEtzKSxYbihTdHJpbmcoZS5sZW5ndGgpKSxlXSkpfShlKSkuc2VyaWFsaXplZH19LHtrZXk6InNpZ25UeXBlZERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCxyLG4pe3ZhciBvLGk9dGhpcztyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIsZ3UucmVzb2x2ZU5hbWVzKHQscixuLGZ1bmN0aW9uKCl7dmFyIGU9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCl7dmFyIHI7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGlyKG51bGwhPWkucHJvdmlkZXIsImNhbm5vdCByZXNvbHZlIEVOUyBuYW1lcyB3aXRob3V0IGEgcHJvdmlkZXIiLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246InJlc29sdmVOYW1lIixpbmZvOntuYW1lOnR9fSksZS5uZXh0PTMsaS5wcm92aWRlci5yZXNvbHZlTmFtZSh0KTtjYXNlIDM6cmV0dXJuIGlyKG51bGwhPShyPWUuc2VudCksInVuY29uZmlndXJlZCBFTlMgbmFtZSIsIlVOQ09ORklHVVJFRF9OQU1FIix7dmFsdWU6dH0pLGUuYWJydXB0KCJyZXR1cm4iLHIpO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSk7Y2FzZSAyOnJldHVybiBvPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIix0aGlzLnNpZ25pbmdLZXkuc2lnbihndS5oYXNoKG8uZG9tYWluLHIsby52YWx1ZSkpLnNlcmlhbGl6ZWQpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpO3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX1dKSxzfShmYyk7Y29uc3QgdmM9bmV3IFVpbnQ4QXJyYXkoWzcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDhdKSxtYz1VaW50OEFycmF5LmZyb20oe2xlbmd0aDoxNn0sKChlLHQpPT50KSksVGM9bWMubWFwKChlPT4oOSplKzUpJTE2KSk7bGV0IHdjPVttY10sQWM9W1RjXTtmb3IobGV0IGU9MDtlPDQ7ZSsrKWZvcihsZXQgdCBvZlt3YyxBY10pdC5wdXNoKHRbZV0ubWFwKChlPT52Y1tlXSkpKTtjb25zdCBQYz1bWzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOF0sWzEyLDEzLDExLDE1LDYsOSw5LDcsMTIsMTUsMTEsMTMsNyw4LDcsN10sWzEzLDE1LDE0LDExLDcsNyw2LDgsMTMsMTQsMTMsMTIsNSw1LDYsOV0sWzE0LDExLDEyLDE0LDgsNiw1LDUsMTUsMTIsMTUsMTQsOSw5LDgsNl0sWzE1LDEyLDEzLDEzLDksNSw4LDYsMTQsMTEsMTIsMTEsOCw2LDUsNV1dLm1hcCgoZT0+bmV3IFVpbnQ4QXJyYXkoZSkpKSxXYz13Yy5tYXAoKChlLHQpPT5lLm1hcCgoZT0+UGNbdF1bZV0pKSkpLEJjPUFjLm1hcCgoKGUsdCk9PmUubWFwKChlPT5QY1t0XVtlXSkpKSksQ2M9bmV3IFVpbnQzMkFycmF5KFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxFYz1uZXcgVWludDMyQXJyYXkoWzEzNTI4Mjk5MjYsMTU0ODYwMzY4NCwxODM2MDcyNjkxLDIwNTM5OTQyMTcsMF0pLE1jPShlLHQpPT5lPDx0fGU+Pj4zMi10O2Z1bmN0aW9uIGtjKGUsdCxyLG4pe3JldHVybiAwPT09ZT90XnJebjoxPT09ZT90JnJ8fnQmbjoyPT09ZT8odHx+cilebjozPT09ZT90Jm58ciZ+bjp0XihyfH5uKX1jb25zdCBJYz1uZXcgVWludDMyQXJyYXkoMTYpO2NsYXNzIE9jIGV4dGVuZHMgaG57Y29uc3RydWN0b3IoKXtzdXBlcig2NCwyMCw4LCEwKSx0aGlzLmgwPTE3MzI1ODQxOTMsdGhpcy5oMT0tMjcxNzMzODc5LHRoaXMuaDI9LTE3MzI1ODQxOTQsdGhpcy5oMz0yNzE3MzM4NzgsdGhpcy5oND0tMTAwOTU4OTc3Nn1nZXQoKXtjb25zdHtoMDplLGgxOnQsaDI6cixoMzpuLGg0Om99PXRoaXM7cmV0dXJuW2UsdCxyLG4sb119c2V0KGUsdCxyLG4sbyl7dGhpcy5oMD0wfGUsdGhpcy5oMT0wfHQsdGhpcy5oMj0wfHIsdGhpcy5oMz0wfG4sdGhpcy5oND0wfG99cHJvY2VzcyhlLHQpe2ZvcihsZXQgcj0wO3I8MTY7cisrLHQrPTQpSWNbcl09ZS5nZXRVaW50MzIodCwhMCk7bGV0IHI9MHx0aGlzLmgwLG49cixvPTB8dGhpcy5oMSxpPW8sYT0wfHRoaXMuaDIscz1hLHU9MHx0aGlzLmgzLGM9dSxsPTB8dGhpcy5oNCxkPWw7Zm9yKGxldCBlPTA7ZTw1O2UrKyl7Y29uc3QgdD00LWUsZj1DY1tlXSxwPUVjW2VdLGg9d2NbZV0sZz1BY1tlXSx5PVdjW2VdLGI9QmNbZV07Zm9yKGxldCB0PTA7dDwxNjt0Kyspe2NvbnN0IG49TWMocitrYyhlLG8sYSx1KStJY1toW3RdXStmLHlbdF0pK2x8MDtyPWwsbD11LHU9MHxNYyhhLDEwKSxhPW8sbz1ufWZvcihsZXQgZT0wO2U8MTY7ZSsrKXtjb25zdCByPU1jKG4ra2ModCxpLHMsYykrSWNbZ1tlXV0rcCxiW2VdKStkfDA7bj1kLGQ9YyxjPTB8TWMocywxMCkscz1pLGk9cn19dGhpcy5zZXQodGhpcy5oMSthK2N8MCx0aGlzLmgyK3UrZHwwLHRoaXMuaDMrbCtufDAsdGhpcy5oNCtyK2l8MCx0aGlzLmgwK28rc3wwKX1yb3VuZENsZWFuKCl7SWMuZmlsbCgwKX1kZXN0cm95KCl7dGhpcy5kZXN0cm95ZWQ9ITAsdGhpcy5idWZmZXIuZmlsbCgwKSx0aGlzLnNldCgwLDAsMCwwLDApfX1jb25zdCB4Yz1sbigoKCk9Pm5ldyBPYykpO3ZhciBTYz0hMSxGYz1mdW5jdGlvbihlKXtyZXR1cm4geGMoZSl9LF9jPUZjO2Z1bmN0aW9uIFJjKGUpe3ZhciB0PWZyKGUsImRhdGEiKTtyZXR1cm4gYnIoX2ModCkpfVJjLl89RmMsUmMubG9jaz1mdW5jdGlvbigpe1NjPSEwfSxSYy5yZWdpc3Rlcj1mdW5jdGlvbihlKXtpZihTYyl0aHJvdyBuZXcgVHlwZUVycm9yKCJyaXBlbWQxNjAgaXMgbG9ja2VkIik7X2M9ZX0sT2JqZWN0LmZyZWV6ZShSYyk7dmFyIE5jPSExLFVjPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVWludDhBcnJheShmdW5jdGlvbihlKXtpcihudWxsIT1SbiwicGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCBzZWN1cmUgcmFuZG9tIG51bWJlcnMiLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246InJhbmRvbUJ5dGVzIn0pLGFyKE51bWJlci5pc0ludGVnZXIoZSkmJmU+MCYmZTw9MTAyNCwiaW52YWxpZCBsZW5ndGgiLCJsZW5ndGgiLGUpO3ZhciB0PW5ldyBVaW50OEFycmF5KGUpO3JldHVybiBSbi5nZXRSYW5kb21WYWx1ZXModCksdH0oZSkpfSxEYz1VYztmdW5jdGlvbiBMYyhlKXtyZXR1cm4gRGMoZSl9TGMuXz1VYyxMYy5sb2NrPWZ1bmN0aW9uKCl7TmM9ITB9LExjLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe2lmKE5jKXRocm93IG5ldyBFcnJvcigicmFuZG9tQnl0ZXMgaXMgbG9ja2VkIik7RGM9ZX0sT2JqZWN0LmZyZWV6ZShMYyk7dmFyIGpjPSIxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6Iix6Yz1udWxsO2Z1bmN0aW9uICRjKGUpe2lmKG51bGw9PXpjKXt6Yz17fTtmb3IodmFyIHQ9MDt0PGpjLmxlbmd0aDt0KyspemNbamNbdF1dPUJpZ0ludCh0KX12YXIgcj16Y1tlXTtyZXR1cm4gYXIobnVsbCE9ciwiaW52YWxpZCBiYXNlNTggdmFsdWUiLCJsZXR0ZXIiLGUpLHJ9dmFyIFZjLEdjLEhjLEtjPUJpZ0ludCgwKSxaYz1CaWdJbnQoNTgpLHFjPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKCJhIj09PXImJiFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2UhPT10fHwhbjohdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIm0iPT09cj9uOiJhIj09PXI/bi5jYWxsKGUpOm4/bi52YWx1ZTp0LmdldChlKX0sSmM9ZnVuY3Rpb24oZSx0LHIsbixvKXtpZigibSI9PT1uKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZSIpO2lmKCJhIj09PW4mJiFvKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlciIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2UhPT10fHwhbzohdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTtyZXR1cm4iYSI9PT1uP28uY2FsbChlLHIpOm8/by52YWx1ZT1yOnQuc2V0KGUscikscn07Y29uc3QgWWM9ezE2OjEwLDI0OjEyLDMyOjE0fSxYYz1bMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDVdLFFjPVs5OSwxMjQsMTE5LDEyMywyNDIsMTA3LDExMSwxOTcsNDgsMSwxMDMsNDMsMjU0LDIxNSwxNzEsMTE4LDIwMiwxMzAsMjAxLDEyNSwyNTAsODksNzEsMjQwLDE3MywyMTIsMTYyLDE3NSwxNTYsMTY0LDExNCwxOTIsMTgzLDI1MywxNDcsMzgsNTQsNjMsMjQ3LDIwNCw1MiwxNjUsMjI5LDI0MSwxMTMsMjE2LDQ5LDIxLDQsMTk5LDM1LDE5NSwyNCwxNTAsNSwxNTQsNywxOCwxMjgsMjI2LDIzNSwzOSwxNzgsMTE3LDksMTMxLDQ0LDI2LDI3LDExMCw5MCwxNjAsODIsNTksMjE0LDE3OSw0MSwyMjcsNDcsMTMyLDgzLDIwOSwwLDIzNywzMiwyNTIsMTc3LDkxLDEwNiwyMDMsMTkwLDU3LDc0LDc2LDg4LDIwNywyMDgsMjM5LDE3MCwyNTEsNjcsNzcsNTEsMTMzLDY5LDI0OSwyLDEyNyw4MCw2MCwxNTksMTY4LDgxLDE2Myw2NCwxNDMsMTQ2LDE1Nyw1NiwyNDUsMTg4LDE4MiwyMTgsMzMsMTYsMjU1LDI0MywyMTAsMjA1LDEyLDE5LDIzNiw5NSwxNTEsNjgsMjMsMTk2LDE2NywxMjYsNjEsMTAwLDkzLDI1LDExNSw5NiwxMjksNzksMjIwLDM0LDQyLDE0NCwxMzYsNzAsMjM4LDE4NCwyMCwyMjIsOTQsMTEsMjE5LDIyNCw1MCw1OCwxMCw3Myw2LDM2LDkyLDE5NCwyMTEsMTcyLDk4LDE0NSwxNDksMjI4LDEyMSwyMzEsMjAwLDU1LDEwOSwxNDEsMjEzLDc4LDE2OSwxMDgsODYsMjQ0LDIzNCwxMDEsMTIyLDE3NCw4LDE4NiwxMjAsMzcsNDYsMjgsMTY2LDE4MCwxOTgsMjMyLDIyMSwxMTYsMzEsNzUsMTg5LDEzOSwxMzgsMTEyLDYyLDE4MSwxMDIsNzIsMywyNDYsMTQsOTcsNTMsODcsMTg1LDEzNCwxOTMsMjksMTU4LDIyNSwyNDgsMTUyLDE3LDEwNSwyMTcsMTQyLDE0OCwxNTUsMzAsMTM1LDIzMywyMDYsODUsNDAsMjIzLDE0MCwxNjEsMTM3LDEzLDE5MSwyMzAsNjYsMTA0LDY1LDE1Myw0NSwxNSwxNzYsODQsMTg3LDIyXSxlbD1bODIsOSwxMDYsMjEzLDQ4LDU0LDE2NSw1NiwxOTEsNjQsMTYzLDE1OCwxMjksMjQzLDIxNSwyNTEsMTI0LDIyNyw1NywxMzAsMTU1LDQ3LDI1NSwxMzUsNTIsMTQyLDY3LDY4LDE5NiwyMjIsMjMzLDIwMyw4NCwxMjMsMTQ4LDUwLDE2NiwxOTQsMzUsNjEsMjM4LDc2LDE0OSwxMSw2NiwyNTAsMTk1LDc4LDgsNDYsMTYxLDEwMiw0MCwyMTcsMzYsMTc4LDExOCw5MSwxNjIsNzMsMTA5LDEzOSwyMDksMzcsMTE0LDI0OCwyNDYsMTAwLDEzNCwxMDQsMTUyLDIyLDIxMiwxNjQsOTIsMjA0LDkzLDEwMSwxODIsMTQ2LDEwOCwxMTIsNzIsODAsMjUzLDIzNywxODUsMjE4LDk0LDIxLDcwLDg3LDE2NywxNDEsMTU3LDEzMiwxNDQsMjE2LDE3MSwwLDE0MCwxODgsMjExLDEwLDI0NywyMjgsODgsNSwxODQsMTc5LDY5LDYsMjA4LDQ0LDMwLDE0MywyMDIsNjMsMTUsMiwxOTMsMTc1LDE4OSwzLDEsMTksMTM4LDEwNyw1OCwxNDUsMTcsNjUsNzksMTAzLDIyMCwyMzQsMTUxLDI0MiwyMDcsMjA2LDI0MCwxODAsMjMwLDExNSwxNTAsMTcyLDExNiwzNCwyMzEsMTczLDUzLDEzMywyMjYsMjQ5LDU1LDIzMiwyOCwxMTcsMjIzLDExMCw3MSwyNDEsMjYsMTEzLDI5LDQxLDE5NywxMzcsMTExLDE4Myw5OCwxNCwxNzAsMjQsMTkwLDI3LDI1Miw4Niw2Miw3NSwxOTgsMjEwLDEyMSwzMiwxNTQsMjE5LDE5MiwyNTQsMTIwLDIwNSw5MCwyNDQsMzEsMjIxLDE2OCw1MSwxMzYsNywxOTksNDksMTc3LDE4LDE2LDg5LDM5LDEyOCwyMzYsOTUsOTYsODEsMTI3LDE2OSwyNSwxODEsNzQsMTMsNDUsMjI5LDEyMiwxNTksMTQ3LDIwMSwxNTYsMjM5LDE2MCwyMjQsNTksNzcsMTc0LDQyLDI0NSwxNzYsMjAwLDIzNSwxODcsNjAsMTMxLDgzLDE1Myw5NywyMyw0Myw0LDEyNiwxODYsMTE5LDIxNCwzOCwyMjUsMTA1LDIwLDk5LDg1LDMzLDEyLDEyNV0sdGw9WzMzMjg0MDIzNDEsNDE2ODkwNzkwOCw0MDAwODA2ODA5LDQxMzUyODc2OTMsNDI5NDExMTc1NywzNTk3MzY0MTU3LDM3MzE4NDUwNDEsMjQ0NTY1NzQyOCwxNjEzNzcwODMyLDMzNjIwMjI3LDM0NjI4ODMyNDEsMTQ0NTY2OTc1NywzODkyMjQ4MDg5LDMwNTA4MjE0NzQsMTMwMzA5NjI5NCwzOTY3MTg2NTg2LDI0MTI0MzE5NDEsNTI4NjQ2ODEzLDIzMTE3MDI4NDgsNDIwMjUyODEzNSw0MDI2MjAyNjQ1LDI5OTIyMDAxNzEsMjM4NzAzNjEwNSw0MjI2ODcxMzA3LDExMDE5MDEyOTIsMzAxNzA2OTY3MSwxNjA0NDk0MDc3LDExNjkxNDE3MzgsNTk3NDY2MzAzLDE0MDMyOTkwNjMsMzgzMjcwNTY4NiwyNjEzMTAwNjM1LDE5NzQ5NzQ0MDIsMzc5MTUxOTAwNCwxMDMzMDgxNzc0LDEyNzc1Njg2MTgsMTgxNTQ5MjE4NiwyMTE4MDc0MTc3LDQxMjY2Njg1NDYsMjIxMTIzNjk0MywxNzQ4MjUxNzQwLDEzNjk4MTA0MjAsMzUyMTUwNDU2NCw0MTkzMzgyNjY0LDM3OTkwODU0NTksMjg4MzExNTEyMywxNjQ3MzkxMDU5LDcwNjAyNDc2NywxMzQ0ODA5MDgsMjUxMjg5Nzg3NCwxMTc2NzA3OTQxLDI2NDY4NTI0NDYsODA2ODg1NDE2LDkzMjYxNTg0MSwxNjgxMDExMzUsNzk4NjYxMzAxLDIzNTM0MTU3Nyw2MDUxNjQwODYsNDYxNDA2MzYzLDM3NTYxODgyMjEsMzQ1NDc5MDQzOCwxMzExMTg4ODQxLDIxNDI0MTc2MTMsMzkzMzU2NjM2NywzMDI1ODIwNDMsNDk1MTU4MTc0LDE0NzkyODk5NzIsODc0MTI1ODcwLDkwNzc0NjA5MywzNjk4MjI0ODE4LDMwMjU4MjAzOTgsMTUzNzI1MzYyNywyNzU2ODU4NjE0LDE5ODM1OTMyOTMsMzA4NDMxMDExMywyMTA4OTI4OTc0LDEzNzg0MjkzMDcsMzcyMjY5OTU4MiwxNTgwMTUwNjQxLDMyNzQ1MTc5OSwyNzkwNDc4ODM3LDMxMTc1MzU1OTIsMCwzMjUzNTk1NDM2LDEwNzU4NDcyNjQsMzgyNTAwNzY0NywyMDQxNjg4NTIwLDMwNTk0NDA2MjEsMzU2Mzc0MzkzNCwyMzc4OTQzMzAyLDE3NDA1NTM5NDUsMTkxNjM1Mjg0MywyNDg3ODk2Nzk4LDI1NTUxMzcyMzYsMjk1ODU3OTk0NCwyMjQ0OTg4NzQ2LDMxNTEwMjQyMzUsMzMyMDgzNTg4MiwxMzM2NTg0OTMzLDM5OTI3MTQwMDYsMjI1MjU1NTIwNSwyNTg4NzU3NDYzLDE3MTQ2MzE1MDksMjkzOTYzMTU2LDIzMTk3OTU2NjMsMzkyNTQ3MzU1Miw2NzI0MDQ1NCw0MjY5NzY4NTc3LDI2ODk2MTgxNjAsMjAxNzIxMzUwOCw2MzEyMTgxMDYsMTI2OTM0NDQ4MywyNzIzMjM4Mzg3LDE1NzEwMDU0MzgsMjE1MTY5NDUyOCw5MzI5NDQ3NCwxMDY2NTcwNDEzLDU2Mzk3NzY2MCwxODgyNzMyNjE2LDQwNTk0MjgxMDAsMTY3MzMxMzUwMywyMDA4NDYzMDQxLDI5NTAzNTU1NzMsMTEwOTQ2NzQ5MSw1Mzc5MjM2MzIsMzg1ODc1OTQ1MCw0MjYwNjIzMTE4LDMyMTgyNjQ2ODUsMjE3Nzc0ODMwMCw0MDM0NDI3MDgsNjM4Nzg0MzA5LDMyODcwODQwNzksMzE5MzkyMTUwNSw4OTkxMjcyMDIsMjI4NjE3NTQzNiw3NzMyNjUyMDksMjQ3OTE0NjA3MSwxNDM3MDUwODY2LDQyMzYxNDgzNTQsMjA1MDgzMzczNSwzMzYyMDIyNTcyLDMxMjY2ODEwNjMsODQwNTA1NjQzLDM4NjYzMjU5MDksMzIyNzU0MTY2NCw0Mjc5MTc3MjAsMjY1NTk5NzkwNSwyNzQ5MTYwNTc1LDExNDMwODc3MTgsMTQxMjA0OTUzNCw5OTkzMjk5NjMsMTkzNDk3MjE5LDIzNTM0MTU4ODIsMzM1NDMyNDUyMSwxODA3MjY4MDUxLDY3MjQwNDU0MCwyODE2NDAxMDE3LDMxNjAzMDEyODIsMzY5ODIyNDkzLDI5MTY4NjY5MzQsMzY4ODk0Nzc3MSwxNjgxMDExMjg2LDE5NDk5NzMwNzAsMzM2MjAyMjcwLDI0NTQyNzY1NzEsMjAxNzIxMzU0LDEyMTAzMjgxNzIsMzA5MzA2MDgzNiwyNjgwMzQxMDg1LDMxODQ3NzYwNDYsMTEzNTM4OTkzNSwzMjk0NzgyMTE4LDk2NTg0MTMyMCw4MzE4ODY3NTYsMzU1NDk5MzIwNyw0MDY4MDQ3MjQzLDM1ODg3NDUwMTAsMjM0NTE5MTQ5MSwxODQ5MTEyNDA5LDM2NjQ2MDQ1OTksMjYwNTQwMjgsMjk4MzU4MTAyOCwyNjIyMzc3NjgyLDEyMzU4NTU4NDAsMzYzMDk4NDM3MiwyODkxMzM5NTE0LDQwOTI5MTY3NDMsMzQ4ODI3OTA3NywzMzk1NjQyNzk5LDQxMDE2Njc0NzAsMTIwMjYzMDM3NywyNjg5NjE4MTYsMTg3NDUwODUwMSw0MDM0NDI3MDE2LDEyNDM5NDgzOTksMTU0NjUzMDQxOCw5NDEzNjYzMDgsMTQ3MDUzOTUwNSwxOTQxMjIyNTk5LDI1NDYzODY1MTMsMzQyMTAzODYyNywyNzE1NjcxOTMyLDM4OTk5NDYxNDAsMTA0MjIyNjk3NywyNTIxNTE3MDIxLDE2Mzk4MjQ4NjAsMjI3MjQ5MDMwLDI2MDczNzY2OSwzNzY1NDY1MjMyLDIwODQ0NTM5NTQsMTkwNzczMzk1NiwzNDI5MjYzMDE4LDI0MjA2NTYzNDQsMTAwODYwNjc3LDQxNjAxNTcxODUsNDcwNjgzMTU0LDMyNjExNjE4OTEsMTc4MTg3MTk2NywyOTI0OTU5NzM3LDE3NzM3Nzk0MDgsMzk0NjkyMjQxLDI1Nzk2MTE5OTIsOTc0OTg2NTM1LDY2NDcwNjc0NSwzNjU1NDU5MTI4LDM5NTg5NjIxOTUsNzMxNDIwODUxLDU3MTU0Mzg1OSwzNTMwMTIzNzA3LDI4NDk2MjY0ODAsMTI2NzgzMTEzLDg2NTM3NTM5OSw3NjUxNzI2NjIsMTAwODYwNjc1NCwzNjEyMDM2MDIsMzM4NzU0OTk4NCwyMjc4NDc3Mzg1LDI4NTc3MTkyOTUsMTM0NDgwOTA4MCwyNzgyOTEyMzc4LDU5NTQyNjcxLDE1MDM3NjQ5ODQsMTYwMDA4NTc2LDQzNzA2MjkzNSwxNzA3MDY1MzA2LDM2MjIyMzM2NDksMjIxODkzNDk4MiwzNDk2NTAzNDgwLDIxODUzMTQ3NTUsNjk3OTMyMjA4LDE1MTI5MTAxOTksNTA0MzAzMzc3LDIwNzUxNzcxNjMsMjgyNDA5OTA2OCwxODQxMDE5ODYyLDczOTY0NDk4Nl0scmw9WzI3ODEyNDIyMTEsMjIzMDg3NzMwOCwyNTgyNTQyMTk5LDIzODE3NDA5MjMsMjM0ODc3NjgyLDMxODQ5NDYwMjcsMjk4NDE0NDc1MSwxNDE4ODM5NDkzLDEzNDg0ODEwNzIsNTA0NjI5NzcsMjg0ODg3NjM5MSwyMTAyNzk5MTQ3LDQzNDYzNDQ5NCwxNjU2MDg0NDM5LDM4NjM4NDk4OTksMjU5OTE4ODA4NiwxMTY3MDUxNDY2LDI2MzYwODc5MzgsMTA4Mjc3MTkxMywyMjgxMzQwMjg1LDM2ODA0ODg5MCwzOTU0MzM0MDQxLDMzODE1NDQ3NzUsMjAxMDYwNTkyLDM5NjM3MjcyNzcsMTczOTgzODY3Niw0MjUwOTAzMjAyLDM5MzA0MzU1MDMsMzIwNjc4MjEwOCw0MTQ5NDUzOTg4LDI1MzE1NTM5MDYsMTUzNjkzNDA4MCwzMjYyNDk0NjQ3LDQ4NDU3MjY2OSwyOTIzMjcxMDU5LDE3ODMzNzUzOTgsMTUxNzA0MTIwNiwxMDk4NzkyNzY3LDQ5Njc0MjMxLDEzMzQwMzc3MDgsMTU1MDMzMjk4MCw0MDk4OTkxNTI1LDg4NjE3MTEwOSwxNTA1OTgxMjksMjQ4MTA5MDkyOSwxOTQwNjQyMDA4LDEzOTg5NDQwNDksMTA1OTcyMjUxNywyMDE4NTE5MDgsMTM4NTU0NzcxOSwxNjk5MDk1MzMxLDE1ODczOTc1NzEsNjc0MjQwNTM2LDI3MDQ3NzQ4MDYsMjUyMzE0ODg1LDMwMzk3OTU4NjYsMTUxOTE0MjQ3LDkwODMzMzU4NiwyNjAyMjcwODQ4LDEwMzgwODI3ODYsNjUxMDI5NDgzLDE3NjY3Mjk1MTEsMzQ0NzY5ODA5OCwyNjgyOTQyODM3LDQ1NDE2Njc5MywyNjUyNzM0MzM5LDE5NTE5MzU1MzIsNzc1MTY2NDkwLDc1ODUyMDYwMywzMDAwNzkwNjM4LDQwMDQ3OTcwMTgsNDIxNzA4NjExMiw0MTM3OTY0MTE0LDEyOTk1OTQwNDMsMTYzOTQzODAzOCwzNDY0MzQ0NDk5LDIwNjg5ODIwNTcsMTA1NDcyOTE4NywxOTAxOTk3ODcxLDI1MzQ2Mzg3MjQsNDEyMTMxODIyNywxNzU3MDA4MzM3LDAsNzUwOTA2ODYxLDE2MTQ4MTUyNjQsNTM1MDM1MTMyLDMzNjM0MTg1NDUsMzk4ODE1MTEzMSwzMjAxNTkxOTE0LDExODM2OTc4NjcsMzY0NzQ1NDkxMCwxMjY1Nzc2OTUzLDM3MzQyNjAyOTgsMzU2Njc1MDc5NiwzOTAzODcxMDY0LDEyNTAyODM0NzEsMTgwNzQ3MDgwMCw3MTc2MTUwODcsMzg0NzIwMzQ5OCwzODQ2OTUyOTEsMzMxMzkxMDU5NSwzNjE3MjEzNzczLDE0MzI3NjExMzksMjQ4NDE3NjI2MSwzNDgxOTQ1NDEzLDI4Mzc2OTMzNywxMDA5MjU5NTQsMjE4MDkzOTY0Nyw0MDM3MDM4MTYwLDExNDg3MzA0MjgsMzEyMzAyNzg3MSwzODEzMzg2NDA4LDQwODc1MDExMzcsNDI2NzU0OTYwMywzMjI5NjMwNTI4LDIzMTU2MjAyMzksMjkwNjYyNDY1OCwzMTU2MzE5NjQ1LDEyMTUzMTM5NzYsODI5NjYwMDUsMzc0Nzg1NTU0OCwzMjQ1ODQ4MjQ2LDE5NzQ0NTkwOTgsMTY2NTI3ODI0MSw4MDc0MDc2MzIsNDUxMjgwODk1LDI1MTUyNDA4MywxODQxMjg3ODkwLDEyODM1NzUyNDUsMzM3MTIwMjY4LDg5MTY4NzY5OSw4MDEzNjkzMjQsMzc4NzM0OTg1NSwyNzIxNDIxMjA3LDM0MzE0ODI0MzYsOTU5MzIxODc5LDE0NjkzMDE5NTYsNDA2NTY5OTc1MSwyMTk3NTg1NTM0LDExOTkxOTM0MDUsMjg5ODgxNDA1MiwzODg3NzUwNDkzLDcyNDcwMzUxMywyNTE0OTA4MDE5LDI2OTY5NjIxNDQsMjU1MTgwODM4NSwzNTE2ODEzMTM1LDIxNDE0NDUzNDAsMTcxNTc0MTIxOCwyMTE5NDQ1MDM0LDI4NzI4MDc1NjgsMjE5ODU3MTE0NCwzMzk4MTkwNjYyLDcwMDk2ODY4NiwzNTQ3MDUyMjE2LDEwMDkyNTk1NDAsMjA0MTA0NDcwMiwzODAzOTk1NzQyLDQ4Nzk4Mzg4MywxOTkxMTA1NDk5LDEwMDQyNjU2OTYsMTQ0OTQwNzAyNiwxMzE2MjM5OTMwLDUwNDYyOTc3MCwzNjgzNzk3MzIxLDE2ODU2MDEzNCwxODE2NjY3MTcyLDM4MzcyODc1MTYsMTU3MDc1MTE3MCwxODU3OTM0MjkxLDQwMTQxODk3NDAsMjc5Nzg4ODA5OCwyODIyMzQ1MTA1LDI3NTQ3MTI5ODEsOTM2NjMzNTcyLDIzNDc5MjM4MzMsODUyODc5MzM1LDExMzMyMzQzNzYsMTUwMDM5NTMxOSwzMDg0NTQ1Mzg5LDIzNDg5MTIwMTMsMTY4OTM3NjIxMywzNTMzNDU5MDIyLDM3NjI5MjM5NDUsMzAzNDA4MjQxMiw0MjA1NTk4Mjk0LDEzMzQyODQ2OCw2MzQzODMwODIsMjk0OTI3NzAyOSwyMzk4Mzg2ODEwLDM5MTM3ODkxMDIsNDAzNzAzODE2LDM1ODA4NjkzMDYsMjI5NzQ2MDg1NiwxODY3MTMwMTQ5LDE5MTg2NDM3NTgsNjA3NjU2OTg4LDQwNDkwNTMzNTAsMzM0NjI0ODg4NCwxMzY4OTAxMzE4LDYwMDU2NTk5MiwyMDkwOTgyODc3LDI2MzI0Nzk4NjAsNTU3NzE5MzI3LDM3MTc2MTQ0MTEsMzY5NzM5MzA4NSwyMjQ5MDM0NjM1LDIyMzIzODgyMzQsMjQzMDYyNzk1MiwxMTE1NDM4NjU0LDMyOTU3ODY0MjEsMjg2NTUyMjI3OCwzNjMzMzM0MzQ0LDg0MjgwMDY3LDMzMDI3ODMwLDMwMzgyODQ5NCwyNzQ3NDI1MTIxLDE2MDA3OTU5NTcsNDE4ODk1MjQwNywzNDk2NTg5NzUzLDI0MzQyMzgwODYsMTQ4NjQ3MTYxNyw2NTgxMTk5NjUsMzEwNjM4MTQ3MCw5NTM4MDMyMzMsMzM0MjMxODAwLDMwMDU5Nzg3NzYsODU3ODcwNjA5LDMxNTExMjg5MzcsMTg5MDE3OTU0NSwyMjk4OTczODM4LDI4MDUxNzU0NDQsMzA1NjQ0MjI2Nyw1NzQzNjUyMTQsMjQ1MDg4NDQ4Nyw1NTAxMDM1MjksMTIzMzYzNzA3MCw0Mjg5MzUzMDQ1LDIwMTg1MTkwODAsMjA1NzY5MTEwMywyMzk5Mzc0NDc2LDQxNjY2MjM2NDksMjE0ODEwODY4MSwzODc1ODMyNDUsMzY2NDEwMTMxMSw4MzYyMzI5MzQsMzMzMDU1NjQ4MiwzMTAwNjY1OTYwLDMyODAwOTM1MDUsMjk1NTUxNjMxMywyMDAyMzk4NTA5LDI4NzE4MjYwNywzNDEzODgxMDA4LDQyMzg4OTAwNjgsMzU5NzUxNTcwNyw5NzU5Njc3NjZdLG5sPVsxNjcxODA4NjExLDIwODkwODkxNDgsMjAwNjU3Njc1OSwyMDcyOTAxMjQzLDQwNjEwMDM3NjIsMTgwNzYwMzMwNywxODczOTI3NzkxLDMzMTA2NTM4OTMsODEwNTczODcyLDE2OTc0MzM3LDE3MzkxODE2NzEsNzI5NjM0MzQ3LDQyNjMxMTA2NTQsMzYxMzU3MDUxOSwyODgzOTk3MDk5LDE5ODk4NjQ1NjYsMzM5MzU1NjQyNiwyMTkxMzM1Mjk4LDMzNzY0NDk5OTMsMjEwNjA2MzQ4NSw0MTk1NzQxNjkwLDE1MDg2MTg4NDEsMTIwNDM5MTQ5NSw0MDI3MzE3MjMyLDI5MTc5NDE2NzcsMzU2MzU2NjAzNiwyNzM0NTE0MDgyLDI5NTEzNjYwNjMsMjYyOTc3MjE4OCwyNzY3NjcyMjI4LDE5MjI0OTE1MDYsMzIyNzIyOTEyMCwzMDgyOTc0NjQ3LDQyNDY1Mjg1MDksMjQ3NzY2OTc3OSw2NDQ1MDA1MTgsOTExODk1NjA2LDEwNjEyNTY3NjcsNDE0NDE2NjM5MSwzNDI3NzYzMTQ4LDg3ODQ3MTIyMCwyNzg0MjUyMzI1LDM4NDU0NDQwNjksNDA0Mzg5NzMyOSwxOTA1NTE3MTY5LDM2MzE0NTkyODgsODI3NTQ4MjA5LDM1NjQ2MTA3Nyw2Nzg5NzM0OCwzMzQ0MDc4Mjc5LDU5MzgzOTY1MSwzMjc3NzU3ODkxLDQwNTI4NjkzNiwyNTI3MTQ3OTI2LDg0ODcxNjg1LDI1OTU1NjU0NjYsMTE4MDMzOTI3LDMwNTUzODA2NiwyMTU3NjQ4NzY4LDM3OTU3MDU4MjYsMzk0NTE4ODg0Myw2NjEyMTI3MTEsMjk5OTgxMjAxOCwxOTczNDE0NTE3LDE1Mjc2OTAzMywyMjA4MTc3NTM5LDc0NTgyMjI1Miw0MzkyMzU2MTAsNDU1OTQ3ODAzLDE4NTcyMTU1OTgsMTUyNTU5MzE3OCwyNzAwODI3NTUyLDEzOTE4OTU2MzQsOTk0OTMyMjgzLDM1OTY3MjgyNzgsMzAxNjY1NDI1OSw2OTU5NDc4MTcsMzgxMjU0ODA2Nyw3OTU5NTg4MzEsMjIyNDQ5MzQ0NCwxNDA4NjA3ODI3LDM1MTMzMDE0NTcsMCwzOTc5MTMzNDIxLDU0MzE3ODc4NCw0MjI5OTQ4NDEyLDI5ODI3MDU1ODUsMTU0MjMwNTM3MSwxNzkwODkxMTE0LDM0MTAzOTg2NjcsMzIwMTkxODkxMCw5NjEyNDU3NTMsMTI1NjEwMDkzOCwxMjg5MDAxMDM2LDE0OTE2NDQ1MDQsMzQ3Nzc2NzYzMSwzNDk2NzIxMzYwLDQwMTI1NTc4MDcsMjg2NzE1NDg1OCw0MjEyNTgzOTMxLDExMzcwMTg0MzUsMTMwNTk3NTM3Myw4NjEyMzQ3MzksMjI0MTA3MzU0MSwxMTcxMjI5MjUzLDQxNzg2MzUyNTcsMzM5NDg2NzQsMjEzOTIyNTcyNywxMzU3OTQ2OTYwLDEwMTExMjAxODgsMjY3OTc3NjY3MSwyODMzNDY4MzI4LDEzNzQ5MjEyOTcsMjc1MTM1NjMyMywxMDg2MzU3NTY4LDI0MDgxODcyNzksMjQ2MDgyNzUzOCwyNjQ2MzUyMjg1LDk0NDI3MTQxNiw0MTEwNzQyMDA1LDMxNjg3NTY2NjgsMzA2NjEzMjQwNiwzNjY1MTQ1ODE4LDU2MDE1MzEyMSwyNzE1ODkzOTIsNDI3OTk1Mjg5NSw0MDc3ODQ2MDAzLDM1MzA0MDc4OTAsMzQ0NDM0MzI0NSwyMDI2NDM0NjgsMzIyMjUwMjU5LDM5NjI1NTMzMjQsMTYwODYyOTg1NSwyNTQzOTkwMTY3LDExNTQyNTQ5MTYsMzg5NjIzMzE5LDMyOTQwNzM3OTYsMjgxNzY3NjcxMSwyMTIyNTEzNTM0LDEwMjgwOTQ1MjUsMTY4OTA0NTA5MiwxNTc1NDY3NjEzLDQyMjI2MTI3MywxOTM5MjAzNjk5LDE2MjExNDc3NDQsMjE3NDIyODg2NSwxMzM5MTM3NjE1LDM2OTkzNTI1NDAsNTc3MTI3NDU4LDcxMjkyMjE1NCwyNDI3MTQxMDA4LDIyOTAyODk1NDQsMTE4NzY3OTMwMiwzOTk1NzE1NTY2LDMxMDA4NjM0MTYsMzM5NDg2NzQwLDM3MzI1MTQ3ODIsMTU5MTkxNzY2MiwxODY0NTU1NjMsMzY4MTk4ODA1OSwzNzYyMDE5Mjk2LDg0NDUyMjU0Niw5NzgyMjAwOTAsMTY5NzQzMzcwLDEyMzkxMjY2MDEsMTAxMzIxNzM0LDYxMTA3NjEzMiwxNTU4NDkzMjc2LDMyNjA5MTU2NTAsMzU0NzI1MDEzMSwyOTAxMzYxNTgwLDE2NTUwOTY0MTgsMjQ0MzcyMTEwNSwyNTEwNTY1NzgxLDM4Mjg4NjM5NzIsMjAzOTIxNDcxMywzODc4ODY4NDU1LDMzNTk4Njk4OTYsOTI4NjA3Nzk5LDE4NDA3NjU1NDksMjM3NDc2Mjg5MywzNTgwMTQ2MTMzLDEzMjI0MjU0MjIsMjg1MDA0ODQyNSwxODIzNzkxMjEyLDE0NTkyNjg2OTQsNDA5NDE2MTkwOCwzOTI4MzQ2NjAyLDE3MDYwMTk0MjksMjA1NjE4OTA1MCwyOTM0NTIzODIyLDEzNTc5NDY5NiwzMTM0NTQ5OTQ2LDIwMjIyNDAzNzYsNjI4MDUwNDY5LDc3OTI0NjYzOCw0NzIxMzU3MDgsMjgwMDgzNDQ3MCwzMDMyOTcwMTY0LDMzMjcyMzYwMzgsMzg5NDY2MDA3MiwzNzE1OTMyNjM3LDE5NTY0NDAxODAsNTIyMjcyMjg3LDEyNzI4MTMxMzEsMzE4NTMzNjc2NSwyMzQwODE4MzE1LDIzMjM5NzYwNzQsMTg4ODU0MjgzMiwxMDQ0NTQ0NTc0LDMwNDk1NTAyNjEsMTcyMjQ2OTQ3OCwxMjIyMTUyMjY0LDUwNjYwODY3LDQxMjczMjQxNTAsMjM2MDY3ODU0LDE2MzgxMjIwODEsODk1NDQ1NTU3LDE0NzU5ODA4ODcsMzExNzQ0MzUxMywyMjU3NjU1Njg2LDMyNDM4MDkyMTcsNDg5MTEwMDQ1LDI2NjI5MzQ0MzAsMzc3ODU5OTM5Myw0MTYyMDU1MTYwLDI1NjE4Nzg5MzYsMjg4NTYzNzI5LDE3NzM5MTY3NzcsMzY0ODAzOTM4NSwyMzkxMzQ1MDM4LDI0OTM5ODU2ODQsMjYxMjQwNzcwNyw1MDU1NjAwOTQsMjI3NDQ5NzkyNywzOTExMjQwMTY5LDM0NjA5MjUzOTAsMTQ0MjgxODY0NSw2Nzg5NzM0ODAsMzc0OTM1NzAyMywyMzU4MTgyNzk2LDI3MTc0MDc2NDksMjMwNjg2OTY0MSwyMTk2MTc4MDUsMzIxODc2MTE1MSwzODYyMDI2MjE0LDExMjAzMDYyNDIsMTc1Njk0MjQ0MCwxMTAzMzMxOTA1LDI1Nzg0NTkwMzMsNzYyNzk2NTg5LDI1Mjc4MDA0NywyOTY2MTI1NDg4LDE0MjU4NDQzMDgsMzE1MTM5MjE4NywzNzI5MTExMjZdLG9sPVsxNjY3NDc0ODg2LDIwODg1MzUyODgsMjAwNDMyNjg5NCwyMDcxNjk0ODM4LDQwNzU5NDk1NjcsMTgwMjIyMzA2MiwxODY5NTkxMDA2LDMzMTgwNDM3OTMsODA4NDcyNjcyLDE2ODQzNTIyLDE3MzQ4NDY5MjYsNzI0MjcwNDIyLDQyNzgwNjU2MzksMzYyMTIxNjk0OSwyODgwMTY5NTQ5LDE5ODc0ODQzOTYsMzQwMjI1MzcxMSwyMTg5NTk3OTgzLDMzODU0MDk2NzMsMjEwNTM3ODgxMCw0MjEwNjkzNjE1LDE0OTkwNjUyNjYsMTE5NTg4Njk5MCw0MDQyMjYzNTQ3LDI5MTM4NTY1NzcsMzU3MDY4OTk3MSwyNzI4NTkwNjg3LDI5NDc1NDE1NzMsMjYyNzUxODI0MywyNzYyMjc0NjQzLDE5MjAxMTIzNTYsMzIzMzgzMTgzNSwzMDgyMjczMzk3LDQyNjEyMjM2NDksMjQ3NTkyOTE0OSw2NDAwNTE3ODgsOTA5NTMxNzU2LDEwNjExMTAxNDIsNDE2MDE2MDUwMSwzNDM1OTQxNzYzLDg3NTg0Njc2MCwyNzc5MTE2NjI1LDM4NTcwMDM3MjksNDA1OTEwNTUyOSwxOTAzMjY4ODM0LDM2MzgwNjQwNDMsODI1MzE2MTk0LDM1MzcxMzk2Miw2NzM3NDA4OCwzMzUxNzI4Nzg5LDU4OTUyMjI0NiwzMjg0MzYwODYxLDQwNDIzNjMzNiwyNTI2NDU0MDcxLDg0MjE3NjEwLDI1OTM4MzAxOTEsMTE3OTAxNTgyLDMwMzE4MzM5NiwyMTU1OTExOTYzLDM4MDY0Nzc3OTEsMzk1ODA1NjY1Myw2NTY4OTQyODYsMjk5ODA2MjQ2MywxOTcwNjQyOTIyLDE1MTU5MTY5OCwyMjA2NDQwOTg5LDc0MTExMDg3Miw0Mzc5MjMzODAsNDU0NzY1ODc4LDE4NTI3NDg1MDgsMTUxNTkwODc4OCwyNjk0OTA0NjY3LDEzODExNjg4MDQsOTkzNzQyMTk4LDM2MDQzNzM5NDMsMzAxNDkwNTQ2OSw2OTA1ODQ0MDIsMzgyMzMyMDc5Nyw3OTE2MzgzNjYsMjIyMzI4MTkzOSwxMzk4MDExMzAyLDM1MjAxNjE5NzcsMCwzOTkxNzQzNjgxLDUzODk5MjcwNCw0MjQ0MzgxNjY3LDI5ODEyMTg0MjUsMTUzMjc1MTI4NiwxNzg1MzgwNTY0LDM0MTkwOTY3MTcsMzIwMDE3ODUzNSw5NjAwNTYxNzgsMTI0NjQyMDYyOCwxMjgwMTAzNTc2LDE0ODIyMjE3NDQsMzQ4NjQ2ODc0MSwzNTAzMzE5OTk1LDQwMjU0Mjg2NzcsMjg2MzMyNjU0Myw0MjI3NTM2NjIxLDExMjg1MTQ5NTAsMTI5Njk0NzA5OCw4NTkwMDIyMTQsMjI0MDEyMzkyMSwxMTYyMjAzMDE4LDQxOTM4NDk1NzcsMzM2ODcwNDQsMjEzOTA2Mjc4MiwxMzQ3NDgxNzYwLDEwMTA1ODI2NDgsMjY3ODA0NTIyMSwyODI5NjQwNTIzLDEzNjQzMjUyODIsMjc0NTQzMzY5MywxMDc3OTg1NDA4LDI0MDg1NDg4NjksMjQ1OTA4NjE0MywyNjQ0MzYwMjI1LDk0MzIxMjY1Niw0MTI2NDc1NTA1LDMxNjY0OTQ1NjMsMzA2NTQzMDM5MSwzNjcxNzUwMDYzLDU1NTgzNjIyNiwyNjk0OTYzNTIsNDI5NDkwODY0NSw0MDkyNzkyNTczLDM1MzcwMDYwMTUsMzQ1Mjc4Mzc0NSwyMDIxMTgxNjgsMzIwMDI1ODk0LDM5NzQ5MDE2OTksMTYwMDExOTIzMCwyNTQzMjk3MDc3LDExNDUzNTk0OTYsMzg3Mzk3OTM0LDMzMDEyMDE4MTEsMjgxMjgwMTYyMSwyMTIyMjIwMjg0LDEwMjc0MjYxNzAsMTY4NDMxOTQzMiwxNTY2NDM1MjU4LDQyMTA3OTg1OCwxOTM2OTU0ODU0LDE2MTY5NDUzNDQsMjE3Mjc1Mzk0NSwxMzMwNjMxMDcwLDM3MDU0MzgxMTUsNTcyNjc5NzQ4LDcwNzQyNzkyNCwyNDI1NDAwMTIzLDIyOTA2NDc4MTksMTE3OTA0NDQ5Miw0MDA4NTg1NjcxLDMwOTkxMjA0OTEsMzM2ODcwNDQwLDM3MzkxMjIwODcsMTU4MzI3NjczMiwxODUyNzc3MTgsMzY4ODU5MzA2OSwzNzcyNzkxNzcxLDg0MjE1OTcxNiw5NzY4OTk3MDAsMTY4NDM1MjIwLDEyMjk1NzcxMDYsMTAxMDU5MDg0LDYwNjM2Njc5MiwxNTQ5NTkxNzM2LDMyNjc1MTc4NTUsMzU1Mzg0OTAyMSwyODk3MDE0NTk1LDE2NTA2MzIzODgsMjQ0MjI0MjEwNSwyNTA5NjEyMDgxLDM4NDAxNjE3NDcsMjAzODAwODgxOCwzODkwNjg4NzI1LDMzNjg1Njc2OTEsOTI2Mzc0MjU0LDE4MzU5MDcwMzQsMjM3NDg2Mzg3MywzNTg3NTMxOTUzLDEzMTM3ODg1NzIsMjg0NjQ4MjUwNSwxODE5MDYzNTEyLDE0NDg1NDA4NDQsNDEwOTYzMzUyMywzOTQxMjEzNjQ3LDE3MDExNjI5NTQsMjA1NDg1MjM0MCwyOTMwNjk4NTY3LDEzNDc0ODE3NiwzMTMyODA2NTExLDIwMjExNjUyOTYsNjIzMjEwMzE0LDc3NDc5NTg2OCw0NzE2MDYzMjgsMjc5NTk1ODYxNSwzMDMxNzQ2NDE5LDMzMzQ4ODU3ODMsMzkwNzUyNzYyNywzNzIyMjgwMDk3LDE5NTM3OTk0MDAsNTIyMTMzODIyLDEyNjMyNjMxMjYsMzE4MzMzNjU0NSwyMzQxMTc2ODQ1LDIzMjQzMzM4MzksMTg4NjQyNTMxMiwxMDQ0MjY3NjQ0LDMwNDg1ODg0MDEsMTcxODAwNDQyOCwxMjEyNzMzNTg0LDUwNTI5NTQyLDQxNDMzMTc0OTUsMjM1ODAzMTY0LDE2MzM3ODg4NjYsODkyNjkwMjgyLDE0NjUzODMzNDIsMzExNTk2MjQ3MywyMjU2OTY1OTExLDMyNTA2NzM4MTcsNDg4NDQ5ODUwLDI2NjEyMDIyMTUsMzc4OTYzMzc1Myw0MTc3MDA3NTk1LDI1NjAxNDQxNzEsMjg2MzM5ODc0LDE3Njg1MzcwNDIsMzY1NDkwNjAyNSwyMzkxNzA1ODYzLDI0OTI3NzAwOTksMjYxMDY3MzE5Nyw1MDUyOTEzMjQsMjI3MzgwODkxNywzOTI0MzY5NjA5LDM0Njk2MjU3MzUsMTQzMTY5OTM3MCw2NzM3NDA4ODAsMzc1NTk2NTA5MywyMzU4MDIxODkxLDI3MTE3NDY2NDksMjMwNzQ4OTgwMSwyMTg5NjE2OTAsMzIxNzAyMTU0MSwzODczODQ1NzE5LDExMTE2NzI0NTIsMTc1MTY5MzUyMCwxMDk0ODI4OTMwLDI1NzY5ODYxNTMsNzU3OTU0Mzk0LDI1MjY0NTY2MiwyOTY0Mzc2NDQzLDE0MTQ4NTU4NDgsMzE0OTY0OTUxNywzNzA1NTU0MzZdLGlsPVsxMzc0OTg4MTEyLDIxMTgyMTQ5OTUsNDM3NzU3MTIzLDk3NTY1ODY0NiwxMDAxMDg5OTk1LDUzMDQwMDc1MywyOTAyMDg3ODUxLDEyNzMxNjg3ODcsNTQwMDgwNzI1LDI5MTAyMTk3NjYsMjI5NTEwMTA3Myw0MTEwNTY4NDg1LDEzNDA0NjMxMDAsMzMwNzkxNjI0Nyw2NDEwMjUxNTIsMzA0MzE0MDQ5NSwzNzM2MTY0OTM3LDYzMjk1MzcwMywxMTcyOTY3MDY0LDE1NzY5NzY2MDksMzI3NDY2NzI2NiwyMTY5MzAzMDU4LDIzNzAyMTM3OTUsMTgwOTA1NDE1MCw1OTcyNzg0NywzNjE5Mjk4NzcsMzIxMTYyMzE0NywyNTA1MjAyMTM4LDM1NjkyNTUyMTMsMTQ4NDAwNTg0MywxMjM5NDQzNzUzLDIzOTU1ODg2NzYsMTk3NTY4MzQzNCw0MTAyOTc3OTEyLDI1NzI2OTcxOTUsNjY2NDY0NzMzLDMyMDI0MzcwNDYsNDAzNTQ4OTA0NywzMzc0MzYxNzAyLDIxMTA2Njc0NDQsMTY3NTU3Nzg4MCwzODQzNjk5MDc0LDI1Mzg2ODExODQsMTY0OTYzOTIzNywyOTc2MTUxNTIwLDMxNDQzOTY0MjAsNDI2OTkwNzk5Niw0MTc4MDYyMjI4LDE4ODM3OTM0OTYsMjQwMzcyODY2NSwyNDk3NjA0NzQzLDEzODM4NTYzMTEsMjg3NjQ5NDYyNywxOTE3NTE4NTYyLDM4MTA0OTYzNDMsMTcxNjg5MDQxMCwzMDAxNzU1NjU1LDgwMDQ0MDgzNSwyMjYxMDg5MTc4LDM1NDM1OTkyNjksODA3OTYyNjEwLDU5OTc2MjM1NCwzMzc3ODM2MiwzOTc3Njc1MzU2LDIzMjg4Mjg5NzEsMjgwOTc3MTE1NCw0MDc3Mzg0NDMyLDEzMTU1NjIxNDUsMTcwODg0ODMzMywxMDEwMzk4MjksMzUwOTg3MTEzNSwzMjk5Mjc4NDc0LDg3NTQ1MTI5MywyNzMzODU2MTYwLDkyOTg3Njk4LDI3Njc2NDU1NTcsMTkzMTk1MDY1LDEwODAwOTQ2MzQsMTU4NDUwNDU4MiwzMTc4MTA2OTYxLDEwNDIzODU2NTcsMjUzMTA2NzQ1MywzNzExODI5NDIyLDEzMDY5NjczNjYsMjQzODIzNzYyMSwxOTA4Njk0Mjc3LDY3NTU2NDYzLDE2MTU4NjEyNDcsNDI5NDU2MTY0LDM2MDI3NzAzMjcsMjMwMjY5MDI1MiwxNzQyMzE1MTI3LDI5NjgwMTE0NTMsMTI2NDU0NjY0LDM4NzcxOTg2NDgsMjA0MzIxMTQ4MywyNzA5MjYwODcxLDIwODQ3MDQyMzMsNDE2OTQwODIwMSwwLDE1OTQxNzk4Nyw4NDE3Mzk1OTIsNTA0NDU5NDM2LDE4MTc4NjY4MzAsNDI0NTYxODY4MywyNjAzODg5NTAsMTAzNDg2Nzk5OCw5MDg5MzM0MTUsMTY4ODEwODUyLDE3NTA5MDIzMDUsMjYwNjQ1Mzk2OSw2MDc1MzA1NTQsMjAyMDA4NDk3LDI0NzIwMTE1MzUsMzAzNTUzNTA1OCw0NjMxODAxOTAsMjE2MDExNzA3MSwxNjQxODE2MjI2LDE1MTc3Njc1MjksNDcwOTQ4Mzc0LDM4MDEzMzIyMzQsMzIzMTcyMjIxMywxMDA4OTE4NTk1LDMwMzc2NTI3NywyMzU0NzQxODcsNDA2OTI0Njg5Myw3NjY5NDU0NjUsMzM3NTUzODY0LDE0NzU0MTg1MDEsMjk0MzY4MjM4MCw0MDAzMDYxMTc5LDI3NDMwMzQxMDksNDE0NDA0Nzc3NSwxNTUxMDM3ODg0LDExNDc1NTA2NjEsMTU0MzIwODUwMCwyMzM2NDM0NTUwLDM0MDgxMTk1MTYsMzA2OTA0OTk2MCwzMTAyMDExNzQ3LDM2MTAzNjkyMjYsMTExMzgxODM4NCwzMjg2NzE4MDgsMjIyNzU3MzAyNCwyMjM2MjI4NzMzLDM1MzU0ODY0NTYsMjkzNTU2Njg2NSwzMzQxMzk0Mjg1LDQ5NjkwNjA1OSwzNzAyNjY1NDU5LDIyNjkwNjg2MCwyMDA5MTk1NDcyLDczMzE1Njk3MiwyODQyNzM3MDQ5LDI5NDkzMDY4MiwxMjA2NDc3ODU4LDI4MzUxMjMzOTYsMjcwMDA5OTM1NCwxNDUxMDQ0MDU2LDU3MzgwNDc4MywyMjY5NzI4NDU1LDM2NDQzNzk1ODUsMjM2MjA5MDIzOCwyNTY0MDMzMzM0LDI4MDExMDc0MDcsMjc3NjI5MjkwNCwzNjY5NDYyNTY2LDEwNjgzNTEzOTYsNzQyMDM5MDEyLDEzNTAwNzg5ODksMTc4NDY2MzE5NSwxNDE3NTYxNjk4LDQxMzY0NDA3NzAsMjQzMDEyMjIxNiw3NzU1NTA4MTQsMjE5Mzg2MjY0NSwyNjczNzA1MTUwLDE3NzUyNzY5MjQsMTg3NjI0MTgzMywzNDc1MzEzMzMxLDMzNjY3NTQ2MTksMjcwMDQwNDg3LDM5MDI1NjMxODIsMzY3ODEyNDkyMywzNDQxODUwMzc3LDE4NTEzMzI4NTIsMzk2OTU2MjM2OSwyMjAzMDMyMjMyLDM4Njg1NTI4MDUsMjg2ODg5NzQwNiw1NjYwMjE4OTYsNDAxMTE5MDUwMiwzMTM1NzQwODg5LDEyNDg4MDI1MTAsMzkzNjI5MTI4NCw2OTk0MzIxNTAsODMyODc3MjMxLDcwODc4MDg0OSwzMzMyNzQwMTQ0LDg5OTgzNTU4NCwxOTUxMzE3MDQ3LDQyMzY0Mjk5OTAsMzc2NzU4Njk5Miw4NjY2Mzc4NDUsNDA0MzYxMDE4NiwxMTA2MDQxNTkxLDIxNDQxNjE4MDYsMzk1NDQxNzExLDE5ODQ4MTI2ODUsMTEzOTc4MTcwOSwzNDMzNzEyOTgwLDM4MzUwMzY4OTUsMjY2NDU0MzcxNSwxMjgyMDUwMDc1LDMyNDA4OTQzOTIsMTE4MTA0NTExOSwyNjQwMjQzMjA0LDI1OTY1OTE3LDQyMDMxODExNzEsNDIxMTgxODc5OCwzMDA5ODc5Mzg2LDI0NjM4Nzk3NjIsMzkxMDE2MTk3MSwxODQyNzU5NDQzLDI1OTc4MDY0NzYsOTMzMzAxMzcwLDE1MDk0MzA0MTQsMzk0MzkwNjQ0MSwzNDY3MTkyMzAyLDMwNzY2MzkwMjksMzc3Njc2NzQ2OSwyMDUxNTE4NzgwLDI2MzEwNjU0MzMsMTQ0MTk1MjU3NSw0MDQwMTY3NjEsMTk0MjQzNTc3NSwxNDA4NzQ5MDM0LDE2MTA0NTk3MzksMzc0NTM0NTMwMCwyMDE3Nzc4NTY2LDM0MDA1Mjg3NjksMzExMDY1MDk0Miw5NDE4OTY3NDgsMzI2NTQ3ODc1MSwzNzEwNDkzMzAsMzE2ODkzNzIyOCw2NzUwMzk2MjcsNDI3OTA4MDI1Nyw5NjczMTE3MjksMTM1MDUwMjA2LDM2MzU3MzM2NjAsMTY4MzQwNzI0OCwyMDc2OTM1MjY1LDM1NzY4NzA1MTIsMTIxNTA2MTEwOCwzNTAxNzQxODkwXSxhbD1bMTM0NzU0ODMyNywxNDAwNzgzMjA1LDMyNzMyNjcxMDgsMjUyMDM5MzU2NiwzNDA5Njg1MzU1LDQwNDUzODA5MzMsMjg4MDI0MDIxNiwyNDcxMjI0MDY3LDE0MjgxNzMwNTAsNDEzODU2MzE4MSwyNDQxNjYxNTU4LDYzNjgxMzkwMCw0MjMzMDk0NjE1LDM2MjAwMjI5ODcsMjE0OTk4NzY1MiwyNDExMDI5MTU1LDEyMzkzMzExNjIsMTczMDUyNTcyMywyNTU0NzE4NzM0LDM3ODEwMzM2NjQsNDYzNDYxMDEsMzEwNDYzNzI4LDI3NDM5NDQ4NTUsMzMyODk1NTM4NSwzODc1NzcwMjA3LDI1MDEyMTg5NzIsMzk1NTE5MTE2MiwzNjY3MjE5MDMzLDc2ODkxNzEyMywzNTQ1Nzg5NDczLDY5MjcwNzQzMywxMTUwMjA4NDU2LDE3ODYxMDI0MDksMjAyOTI5MzE3NywxODA1MjExNzEwLDM3MTAzNjgxMTMsMzA2NTk2MjgzMSw0MDE2Mzk1OTcsMTcyNDQ1NzEzMiwzMDI4MTQzNjc0LDQwOTE5ODQxMCwyMTk2MDUyNTI5LDE2MjA1Mjk0NTksMTE2NDA3MTgwNywzNzY5NzIxOTc1LDIyMjY4NzUzMTAsNDg2NDQxMzc2LDI0OTkzNDg1MjMsMTQ4Mzc1MzU3Niw0Mjg4MTk5NjUsMjI3NDY4MDQyOCwzMDc1NjM2MjE2LDU5ODQzODg2NywzNzk5MTQxMTIyLDE0NzQ1MDI1NDMsNzExMzQ5Njc1LDEyOTE2NjEyMCw1MzQ1ODM3MCwyNTkyNTIzNjQzLDI3ODIwODI4MjQsNDA2MzI0MjM3NSwyOTg4Njg3MjY5LDMxMjA2OTQxMjIsMTU1OTA0MTY2Niw3MzA1MTcyNzYsMjQ2MDQ0OTIwNCw0MDQyNDU5MTIyLDI3MDYyNzA2OTAsMzQ0NjAwNDQ2OCwzNTczOTQxNjk0LDUzMzgwNDEzMCwyMzI4MTQzNjE0LDI2Mzc0NDI2NDMsMjY5NTAzMzY4NSw4MzkyMjQwMzMsMTk3Mzc0NTM4Nyw5NTcwNTU5ODAsMjg1NjM0NTgzOSwxMDY4NTI3NjcsMTM3MTM2ODk3Niw0MTgxNTk4NjAyLDEwMzMyOTcxNTgsMjkzMzczNDkxNywxMTc5NTEwNDYxLDMwNDYyMDA0NjEsOTEzNDE5MTcsMTg2MjUzNDg2OCw0Mjg0NTAyMDM3LDYwNTY1NzMzOSwyNTQ3NDMyOTM3LDM0MzE1NDY5NDcsMjAwMzI5NDYyMiwzMTgyNDg3NjE4LDIyODIxOTUzMzksOTU0NjY5NDAzLDM2ODIxOTE1OTgsMTIwMTc2NTM4NiwzOTE3MjM0NzAzLDMzODg1MDcxNjYsMCwyMTk4NDM4MDIyLDEyMTEyNDc1OTcsMjg4NzY1MTY5NiwxMzE1NzIzODkwLDQyMjc2NjU2NjMsMTQ0Mzg1NzcyMCw1MDczNTg5MzMsNjU3ODYxOTQ1LDE2NzgzODEwMTcsNTYwNDg3NTkwLDM1MTY2MTk2MDQsOTc1NDUxNjk0LDI5NzAzNTYzMjcsMjYxMzE0NTM1LDM1MzUwNzI5MTgsMjY1MjYwOTQyNSwxMzMzODM4MDIxLDI3MjQzMjIzMzYsMTc2NzUzNjQ1OSwzNzA5MzgzOTQsMTgyNjIxMTE0LDM4NTQ2MDYzNzgsMTEyODAxNDU2MCw0ODc3MjU4NDcsMTg1NDY5MTk3LDI5MTgzNTM4NjMsMzEwNjc4MDg0MCwzMzU2NzYxNzY5LDIyMzcxMzMwODEsMTI4NjU2NzE3NSwzMTUyOTc2MzQ5LDQyNTUzNTA2MjQsMjY4Mzc2NTAzMCwzMTYwMTc1MzQ5LDMzMDk1OTQxNzEsODc4NDQzMzkwLDE5ODg4MzgxODUsMzcwNDMwMDQ4NiwxNzU2ODE4OTQwLDE2NzMwNjE2MTcsMzQwMzEwMDYzNiwyNzI3ODYzMDksMTA3NTAyNTY5OCw1NDU1NzIzNjksMjEwNTg4NzI2OCw0MTc0NTYwMDYxLDI5NjY3OTczMCwxODQxNzY4ODY1LDEyNjAyMzIyMzksNDA5MTMyNzAyNCwzOTYwMzA5MzMwLDM0OTc1MDkzNDcsMTgxNDgwMzIyMiwyNTc4MDE4NDg5LDQxOTU0NTYwNzIsNTc1MTM4MTQ4LDMyOTk0MDkwMzYsNDQ2NzU0ODc5LDM2Mjk1NDY3OTYsNDAxMTk5NjA0OCwzMzQ3NTMyMTEwLDMyNTIyMzg1NDUsNDI3MDYzOTc3OCw5MTU5ODU0MTksMzQ4MzgyNTUzNyw2ODE5MzM1MzQsNjUxODY4MDQ2LDI3NTU2MzY2NzEsMzgyODEwMzgzNywyMjMzNzc1NTQsMjYwNzQzOTgyMCwxNjQ5NzA0NTE4LDMyNzA5Mzc4NzUsMzkwMTgwNjc3NiwxNTgwMDg3Nzk5LDQxMTg5ODc2OTUsMzE5ODExNTIwMCwyMDg3MzA5NDU5LDI4NDI2Nzg1NzMsMzAxNjY5NzEwNiwxMDAzMDA3MTI5LDI4MDI4NDk5MTcsMTg2MDczODE0NywyMDc3OTY1MjQzLDE2NDQzOTY3Miw0MTAwODcyNDcyLDMyMjgzMzE5LDI4MjcxNzc4ODIsMTcwOTYxMDM1MCwyMTI1MTM1ODQ2LDEzNjQyODc1MSwzODc0NDI4MzkyLDM2NTI5MDQ4NTksMzQ2MDk4NDYzMCwzNTcyMTQ1OTI5LDM1OTMwNTYzODAsMjkzOTI2NjIyNiw4MjQ4NTIyNTksODE4MzI0ODg0LDMyMjQ3NDA0NTQsOTMwMzY5MjEyLDI4MDE1NjY0MTAsMjk2NzUwNzE1MiwzNTU3MDY4NDAsMTI1NzMwOTMzNiw0MTQ4MjkyODI2LDI0MzI1NjY1Niw3OTAwNzM4NDYsMjM3MzM0MDYzMCwxMjk2Mjk3OTA0LDE0MjI2OTkwODUsMzc1NjI5OTc4MCwzODE4ODM2NDA1LDQ1Nzk5Mjg0MCwzMDk5NjY3NDg3LDIxMzUzMTk4ODksNzc0MjIzMTQsMTU2MDM4MjUxNywxOTQ1Nzk4NTE2LDc4ODIwNDM1MywxNTIxNzA2NzgxLDEzODUzNTYyNDIsODcwOTEyMDg2LDMyNTk2NTM4MywyMzU4OTU3OTIxLDIwNTA0NjYwNjAsMjM4ODI2MDg4NCwyMzEzODg0NDc2LDQwMDY1MjExMjcsOTAxMjEwNTY5LDM5OTA5NTMxODksMTAxNDY0NjcwNSwxNTAzNDQ5ODIzLDEwNjI1OTcyMzUsMjAzMTYyMTMyNiwzMjEyMDM1ODk1LDM5MzEzNzE0NjksMTUzMzAxNzUxNCwzNTAxNzQ1NzUsMjI1NjAyODg5MSwyMTc3NTQ0MTc5LDEwNTIzMzgzNzIsNzQxODc2Nzg4LDE2MDY1OTEyOTYsMTkxNDA1MjAzNSwyMTM3MDUyNTMsMjMzNDY2OTg5NywxMTA3MjM0MTk3LDE4OTk2MDM5NjksMzcyNTA2OTQ5MSwyNjMxNDQ3NzgwLDI0MjI0OTQ5MTMsMTYzNTUwMjk4MCwxODkzMDIwMzQyLDE5NTA5MDMzODgsMTEyMDk3NDkzNV0sc2w9WzI4MDcwNTg5MzIsMTY5OTk3MDYyNSwyNzY0MjQ5NjIzLDE1ODY5MDM1OTEsMTgwODQ4MTE5NSwxMTczNDMwMTczLDE0ODc2NDU5NDYsNTk5ODQ4NjcsNDE5OTg4MjgwMCwxODQ0ODgyODA2LDE5ODkyNDkyMjgsMTI3NzU1NTk3MCwzNjIzNjM2OTY1LDM0MTk5MTU1NjIsMTE0OTI0OTA3NywyNzQ0MTA0MjkwLDE1MTQ3OTA1NzcsNDU5NzQ0Njk4LDI0NDg2MDM5NCwzMjM1OTk1MTM0LDE5NjMxMTUzMTEsNDAyNzc0NDU4OCwyNTQ0MDc4MTUwLDQxOTA1MzA1MTUsMTYwODk3NTI0NywyNjI3MDE2MDgyLDIwNjIyNzAzMTcsMTUwNzQ5NzI5OCwyMjAwODE4ODc4LDU2NzQ5ODg2OCwxNzY0MzEzNTY4LDMzNTk5MzYyMDEsMjMwNTQ1NTU1NCwyMDM3OTcwMDYyLDEwNDcyMzllMywxOTEwMzE5MDMzLDEzMzczNzY0ODEsMjkwNDAyNzI3MiwyODkyNDE3MzEyLDk4NDkwNzIxNCwxMjQzMTEyNDE1LDgzMDY2MTkxNCw4NjE5NjgyMDksMjEzNTI1MzU4NywyMDExMjE0MTgwLDI5Mjc5MzQzMTUsMjY4NjI1NDcyMSw3MzExODMzNjgsMTc1MDYyNjM3Niw0MjQ2MzEwNzI1LDE4MjA4MjQ3OTgsNDE3Mjc2Mzc3MSwzNTQyMzMwMjI3LDQ4Mzk0ODI3LDI0MDQ5MDE2NjMsMjg3MTY4MjY0NSw2NzE1OTMxOTUsMzI1NDk4ODcyNSwyMDczNzI0NjEzLDE0NTA4NTIzOSwyMjgwNzk2MjAwLDI3Nzk5MTUxOTksMTc5MDU3NTEwNywyMTg3MTI4MDg2LDQ3MjYxNTYzMSwzMDI5NTEwMDA5LDQwNzU4NzcxMjcsMzgwMjIyMjE4NSw0MTA3MTAxNjU4LDMyMDE2MzE3NDksMTY0NjI1MjM0MCw0MjcwNTA3MTc0LDE0MDI4MTE0MzgsMTQzNjU5MDgzNSwzNzc4MTUxODE4LDM5NTAzNTU3MDIsMzk2MzE2MTQ3NSw0MDIwOTEyMjI0LDI2Njc5OTQ3MzcsMjczNzkyMzY2LDIzMzE1OTAxNzcsMTA0Njk5NjEzLDk1MzQ1OTgyLDMxNzU1MDEyODYsMjM3NzQ4NjY3NiwxNTYwNjM3ODkyLDM1NjQwNDUzMTgsMzY5MDU3ODcyLDQyMTM0NDcwNjQsMzkxOTA0MjIzNywxMTM3NDc3OTUyLDI2NTg2MjU0OTcsMTExOTcyNzg0OCwyMzQwOTQ3ODQ5LDE1MzA0NTU4MzMsNDAwNzM2MDk2OCwxNzI0NjY1NTYsMjY2OTU5OTM4LDUxNjU1MjgzNiwwLDIyNTY3MzQ1OTIsMzk4MDkzMTYyNywxODkwMzI4MDgxLDE5MTc3NDIxNzAsNDI5NDcwNDM5OCw5NDUxNjQxNjUsMzU3NTUyODg3OCw5NTg4NzEwODUsMzY0NzIxMjA0NywyNzg3MjA3MjYwLDE0MjMwMjI5MzksNzc1NTYyMjk0LDE3Mzk2NTYyMDIsMzg3NjU1NzY1NSwyNTMwMzkxMjc4LDI0NDMwNTgwNzUsMzMxMDMyMTg1Niw1NDc1MTI3OTYsMTI2NTE5NTYzOSw0Mzc2NTY1OTQsMzEyMTI3NTUzOSw3MTk3MDAxMjgsMzc2MjUwMjY5MCwzODc3ODExNDcsMjE4ODI4Mjk3LDMzNTAwNjU4MDMsMjgzMDcwODE1MCwyODQ4NDYxODU0LDQyODE2OTIwMSwxMjI0NjYxNjUsMzcyMDA4MTA0OSwxNjI3MjM1MTk5LDY0ODAxNzY2NSw0MTIyNzYyMzU0LDEwMDI3ODM4NDYsMjExNzM2MDYzNSw2OTU2MzQ3NTUsMzMzNjM1ODY5MSw0MjM0NzIxMDA1LDQwNDk4NDQ0NTIsMzcwNDI4MDg4MSwyMjMyNDM1Mjk5LDU3NDYyNDY2MywyODczNDM4MTQsNjEyMjA1ODk4LDEwMzk3MTcwNTEsODQwMDE5NzA1LDI3MDgzMjYxODUsNzkzNDUxOTM0LDgyMTI4ODExNCwxMzkxMjAxNjcwLDM4MjIwOTAxNzcsMzc2MTg3ODI3LDMxMTM4NTUzNDQsMTIyNDM0ODA1MiwxNjc5OTY4MjMzLDIzNjE2OTg1NTYsMTA1ODcwOTc0NCw3NTIzNzU0MjEsMjQzMTU5MDk2MywxMzIxNjk5MTQ1LDM1MTkxNDIyMDAsMjczNDU5MTE3OCwxODgxMjc0NDQsMjE3Nzg2OTU1NywzNzI3MjA1NzU0LDIzODQ5MTEwMzEsMzIxNTIxMjQ2MSwyNjQ4OTc2NDQyLDI0NTAzNDYxMDQsMzQzMjczNzM3NSwxMTgwODQ5Mjc4LDMzMTU0NDIwNSwzMTAyMjQ5MTc2LDQxNTAxNDQ1NjksMjk1MjEwMjU5NSwyMTU5OTc2Mjg1LDI0NzQ0MDQzMDQsNzY2MDc4OTMzLDMxMzc3Mzg2MSwyNTcwODMyMDQ0LDIxMDgxMDA2MzIsMTY2ODIxMjg5MiwzMTQ1NDU2NDQzLDIwMTM5MDgyNjIsNDE4NjcyMjE3LDMwNzAzNTY2MzQsMjU5NDczNDkyNywxODUyMTcxOTI1LDM4NjcwNjA5OTEsMzQ3MzQxNjYzNiwzOTA3NDQ4NTk3LDI2MTQ3Mzc2MzksOTE5NDg5MTM1LDE2NDk0ODYzOSwyMDk0NDEwMTYwLDI5OTc4MjU5NTYsNTkwNDI0NjM5LDI0ODYyMjQ1NDksMTcyMzg3MjY3NCwzMTU3NzUwODYyLDMzOTk5NDEyNTAsMzUwMTI1Mjc1MiwzNjI1MjY4MTM1LDI1NTUwNDgxOTYsMzY3MzYzNzM1NiwxMzQzMTI3NTAxLDQxMzAyODEzNjEsMzU5OTU5NTA4NSwyOTU3ODUzNjc5LDEyOTc0MDMwNTAsODE3ODE5MTAsMzA1MTU5MzQyNSwyMjgzNDkwNDEwLDUzMjIwMTc3MiwxMzY3Mjk1NTg5LDM5MjYxNzA5NzQsODk1Mjg3NjkyLDE5NTM3NTc4MzEsMTA5MzU5Nzk2Myw0OTI0ODM0MzEsMzUyODYyNjkwNywxNDQ2MjQyNTc2LDExOTI0NTU2MzgsMTYzNjYwNDYzMSwyMDkzMzYyMjUsMzQ0ODczNDY0LDEwMTU2NzE1NzEsNjY5OTYxODk3LDMzNzU3NDA3NjksMzg1NzU3MjEyNCwyOTczNTMwNjk1LDM3NDcxOTIwMTgsMTkzMzUzMDYxMCwzNDY0MDQyNTE2LDkzNTI5Mzg5NSwzNDU0Njg2MTk5LDI4NTgxMTUwNjksMTg2MzYzODg0NSwzNjgzMDIyOTE2LDQwODUzNjk1MTksMzI5MjQ0NTAzMiw4NzUzMTMxODgsMTA4MDAxNzU3MSwzMjc5MDMzODg1LDYyMTU5MTc3OCwxMjMzODU2NTcyLDI1MDQxMzAzMTcsMjQxOTc1NDQsMzAxNzY3MjcxNiwzODM1NDg0MzQwLDMyNDc0NjU1NTgsMjIyMDk4MTE5NSwzMDYwODQ3OTIyLDE1NTExMjQ1ODgsMTQ2Mzk5NjYwMF0sdWw9WzQxMDQ2MDU3NzcsMTA5NzE1OTU1MCwzOTY2NzM4MTgsNjYwNTEwMjY2LDI4NzU5NjgzMTUsMjYzODYwNjYyMyw0MjAwMTE1MTE2LDM4MDg2NjIzNDcsODIxNzEyMTYwLDE5ODY5MTgwNjEsMzQzMDMyMjU2OCwzODU0NDg4NSwzODU2MTM3Mjk1LDcxODAwMjExNyw4OTM2ODE3MDIsMTY1NDg4NjMyNSwyOTc1NDg0MzgyLDMxMjIzNTgwNTMsMzkyNjgyNTAyOSw0Mjc0MDUzNDY5LDc5NjE5NzU3MSwxMjkwODAxNzkzLDExODQzNDI5MjUsMzU1NjM2MTgzNSwyNDA1NDI2OTQ3LDI0NTk3MzUzMTcsMTgzNjc3MjI4NywxMzgxNjIwMzczLDMxOTYyNjc5ODgsMTk0ODM3Mzg0OCwzNzY0OTg4MjMzLDMzODUzNDUxNjYsMzI2Mzc4NTU4OSwyMzkwMzI1NDkyLDE0ODA0ODU3ODUsMzExMTI0NzE0MywzNzgwMDk3NzI2LDIyOTMwNDUyMzIsNTQ4MTY5NDE3LDM0NTk5NTM3ODksMzc0NjE3NTA3NSw0Mzk0NTIzODksMTM2MjMyMTU1OSwxNDAwODQ5NzYyLDE2ODU1Nzc5MDUsMTgwNjU5OTM1NSwyMTc0NzU0MDQ2LDEzNzA3MzkxMywxMjE0Nzk3OTM2LDExNzQyMTUwNTUsMzczMTY1NDU0OCwyMDc5ODk3NDI2LDE5NDMyMTcwNjcsMTI1ODQ4MDI0Miw1Mjk0ODc4NDMsMTQzNzI4MDg3MCwzOTQ1MjY5MTcwLDMwNDkzOTA4OTUsMzMxMzIxMjAzOCw5MjMzMTM2MTksNjc5OTk4ZTMsMzIxNTMwNzI5OSw1NzMyNjA4MiwzNzc2NDIyMjEsMzQ3NDcyOTg2NiwyMDQxODc3MTU5LDEzMzM2MTkwNywxNzc2NDYwMTEwLDM2NzM0NzY0NTMsOTYzOTI0NTQsODc4ODQ1OTA1LDI4MDE2OTk1MjQsNzc3MjMxNjY4LDQwODI0NzUxNzAsMjMzMDAxNDIxMyw0MTQyNjI2MjEyLDIyMTMyOTYzOTUsMTYyNjMxOTQyNCwxOTA2MjQ3MjYyLDE4NDY1NjMyNjEsNTYyNzU1OTAyLDM3MDgxNzM3MTgsMTA0MDU1OTgzNywzODcxMTYzOTgxLDE0MTg1NzMyMDEsMzI5NDQzMDU3NywxMTQ1ODUzNDgsMTM0MzYxODkxMiwyNTY2NTk1NjA5LDMxODYyMDI1ODIsMTA3ODE4NTA5NywzNjUxMDQxMTI3LDM4OTY2ODgwNDgsMjMwNzYyMjkxOSw0MjU0MDg3NDMsMzM3MTA5Njk1MywyMDgxMDQ4NDgxLDExMDgzMzkwNjgsMjIxNjYxMDI5NiwwLDIxNTYyOTkwMTcsNzM2OTcwODAyLDI5MjU5Njc2NiwxNTE3NDQwNjIwLDI1MTY1NzIxMywyMjM1MDYxNzc1LDI5MzMyMDI0OTMsNzU4NzIwMzEwLDI2NTkwNTE2MiwxNTU0MzkxNDAwLDE1MzIyODUzMzksOTA4OTk5MjA0LDE3NDU2NzY5MiwxNDc0NzYwNTk1LDQwMDI4NjE3NDgsMjYxMDAxMTY3NSwzMjM0MTU2NDE2LDM2OTMxMjYyNDEsMjAwMTQzMDg3NCwzMDM2OTk0ODQsMjQ3ODQ0MzIzNCwyNjg3MTY1ODg4LDU4NTEyMjYyMCw0NTQ0OTk2MDIsMTUxODQ5NzQyLDIzNDUxMTkyMTgsMzA2NDUxMDc2NSw1MTQ0NDMyODQsNDA0NDk4MTU5MSwxOTYzNDEyNjU1LDI1ODE0NDU2MTQsMjEzNzA2MjgxOSwxOTMwODUzNSwxOTI4NzA3MTY0LDE3MTUxOTMxNTYsNDIxOTM1MjE1NSwxMTI2NzkwNzk1LDYwMDIzNTIxMSwzOTkyNzQyMDcwLDM4NDEwMjQ5NTIsODM2NTUzNDMxLDE2Njk2NjQ4MzQsMjUzNTYwNDI0MywzMzIzMDExMjA0LDEyNDM5MDU0MTMsMzE0MTQwMDc4Niw0MTgwODA4MTEwLDY5ODQ0NTI1NSwyNjUzODk5NTQ5LDI5ODk1NTI2MDQsMjI1MzU4MTMyNSwzMjUyOTMyNzI3LDMwMDQ1OTExNDcsMTg5MTIxMTY4OSwyNDg3ODEwNTc3LDM5MTU2NTM3MDMsNDIzNzA4MzgxNiw0MDMwNjY3NDI0LDIxMDAwOTA5NjYsODY1MTM2NDE4LDEyMjk4OTk2NTUsOTUzMjcwNzQ1LDMzOTk2Nzk2MjgsMzU1NzUwNDY2NCw0MTE4OTI1MjIyLDIwNjEzNzk3NDksMzA3OTU0NjU4NiwyOTE1MDE3NzkxLDk4MzQyNjA5MiwyMDIyODM3NTg0LDE2MDcyNDQ2NTAsMjExODU0MTkwOCwyMzY2ODgyNTUwLDM2MzU5OTY4MTYsOTcyNTEyODE0LDMyODMwODg3NzAsMTU2ODcxODQ5NSwzNDk5MzI2NTY5LDM1NzY1Mzk1MDMsNjIxOTgyNjcxLDI4OTU3MjM0NjQsNDEwODg3OTUyLDI2MjM3NjIxNTIsMTAwMjE0MjY4Myw2NDU0MDEwMzcsMTQ5NDgwNzY2MiwyNTk1Njg0ODQ0LDEzMzU1MzU3NDcsMjUwNzA0MDIzMCw0MjkzMjk1Nzg2LDMxNjc2ODQ2NDEsMzY3NTg1MDA3LDM4ODU3NTA3MTQsMTg2NTg2MjczMCwyNjY4MjIxNjc0LDI5NjA5NzEzMDUsMjc2MzE3MzY4MSwxMDU5MjcwOTU0LDI3Nzc5NTI0NTQsMjcyNDY0Mjg2OSwxMzIwOTU3ODEyLDIxOTQzMTkxMDAsMjQyOTU5NTg3MiwyODE1OTU2Mjc1LDc3MDg5NTIxLDM5NzM3NzMxMjEsMzQ0NDU3NTg3MSwyNDQ4ODMwMjMxLDEzMDU5MDY1NTAsNDAyMTMwODczOSwyODU3MTk0NzAwLDI1MTY5MDE4NjAsMzUxODM1ODQzMCwxNzg3MzA0NzgwLDc0MDI3NjQxNywxNjk5ODM5ODE0LDE1OTIzOTQ5MDksMjM1MjMwNzQ1NywyMjcyNTU2MDI2LDE4ODgyMTI0MywxNzI5OTc3MDExLDM2ODc5OTQwMDIsMjc0MDg0ODQxLDM1OTQ5ODIyNTMsMzYxMzQ5NDQyNiwyNzAxOTQ5NDk1LDQxNjIwOTY3MjksMzIyNzM0NTcxLDI4Mzc5NjY1NDIsMTY0MDU3NjQzOSw0ODQ4MzA2ODksMTIwMjc5NzY5MCwzNTM3ODUyODI4LDQwNjc2MzkxMjUsMzQ5MDc1NzM2LDMzNDIzMTk0NzUsNDE1NzQ2NzIxOSw0MjU1ODAwMTU5LDEwMzA2OTAwMTUsMTE1NTIzNzQ5NiwyOTUxOTcxMjc0LDE3NTc2OTE1NzcsNjA3Mzk4OTY4LDI3Mzg5MDUwMjYsNDk5MzQ3OTkwLDM3OTQwNzg5MDgsMTAxMTQ1MjcxMiwyMjc4ODU1NjcsMjgxODY2NjgwOSwyMTMxMTQzNzYsMzAzNDg4MTI0MCwxNDU1NTI1OTg4LDM0MTQ0NTA1NTUsODUwODE3MjM3LDE4MTc5OTg0MDgsMzA5MjcyNjQ4MF0sY2w9WzAsMjM1NDc0MTg3LDQ3MDk0ODM3NCwzMDM3NjUyNzcsOTQxODk2NzQ4LDkwODkzMzQxNSw2MDc1MzA1NTQsNzA4NzgwODQ5LDE4ODM3OTM0OTYsMjExODIxNDk5NSwxODE3ODY2ODMwLDE2NDk2MzkyMzcsMTIxNTA2MTEwOCwxMTgxMDQ1MTE5LDE0MTc1NjE2OTgsMTUxNzc2NzUyOSwzNzY3NTg2OTkyLDQwMDMwNjExNzksNDIzNjQyOTk5MCw0MDY5MjQ2ODkzLDM2MzU3MzM2NjAsMzYwMjc3MDMyNywzMjk5Mjc4NDc0LDM0MDA1Mjg3NjksMjQzMDEyMjIxNiwyNjY0NTQzNzE1LDIzNjIwOTAyMzgsMjE5Mzg2MjY0NSwyODM1MTIzMzk2LDI4MDExMDc0MDcsMzAzNTUzNTA1OCwzMTM1NzQwODg5LDM2NzgxMjQ5MjMsMzU3Njg3MDUxMiwzMzQxMzk0Mjg1LDMzNzQzNjE3MDIsMzgxMDQ5NjM0MywzOTc3Njc1MzU2LDQyNzkwODAyNTcsNDA0MzYxMDE4NiwyODc2NDk0NjI3LDI3NzYyOTI5MDQsMzA3NjYzOTAyOSwzMTEwNjUwOTQyLDI0NzIwMTE1MzUsMjY0MDI0MzIwNCwyNDAzNzI4NjY1LDIxNjkzMDMwNTgsMTAwMTA4OTk5NSw4OTk4MzU1ODQsNjY2NDY0NzMzLDY5OTQzMjE1MCw1OTcyNzg0NywyMjY5MDY4NjAsNTMwNDAwNzUzLDI5NDkzMDY4MiwxMjczMTY4Nzg3LDExNzI5NjcwNjQsMTQ3NTQxODUwMSwxNTA5NDMwNDE0LDE5NDI0MzU3NzUsMjExMDY2NzQ0NCwxODc2MjQxODMzLDE2NDE4MTYyMjYsMjkxMDIxOTc2NiwyNzQzMDM0MTA5LDI5NzYxNTE1MjAsMzIxMTYyMzE0NywyNTA1MjAyMTM4LDI2MDY0NTM5NjksMjMwMjY5MDI1MiwyMjY5NzI4NDU1LDM3MTE4Mjk0MjIsMzU0MzU5OTI2OSwzMjQwODk0MzkyLDM0NzUzMTMzMzEsMzg0MzY5OTA3NCwzOTQzOTA2NDQxLDQxNzgwNjIyMjgsNDE0NDA0Nzc3NSwxMzA2OTY3MzY2LDExMzk3ODE3MDksMTM3NDk4ODExMiwxNjEwNDU5NzM5LDE5NzU2ODM0MzQsMjA3NjkzNTI2NSwxNzc1Mjc2OTI0LDE3NDIzMTUxMjcsMTAzNDg2Nzk5OCw4NjY2Mzc4NDUsNTY2MDIxODk2LDgwMDQ0MDgzNSw5Mjk4NzY5OCwxOTMxOTUwNjUsNDI5NDU2MTY0LDM5NTQ0MTcxMSwxOTg0ODEyNjg1LDIwMTc3Nzg1NjYsMTc4NDY2MzE5NSwxNjgzNDA3MjQ4LDEzMTU1NjIxNDUsMTA4MDA5NDYzNCwxMzgzODU2MzExLDE1NTEwMzc4ODQsMTAxMDM5ODI5LDEzNTA1MDIwNiw0Mzc3NTcxMjMsMzM3NTUzODY0LDEwNDIzODU2NTcsODA3OTYyNjEwLDU3MzgwNDc4Myw3NDIwMzkwMTIsMjUzMTA2NzQ1MywyNTY0MDMzMzM0LDIzMjg4Mjg5NzEsMjIyNzU3MzAyNCwyOTM1NTY2ODY1LDI3MDAwOTkzNTQsMzAwMTc1NTY1NSwzMTY4OTM3MjI4LDM4Njg1NTI4MDUsMzkwMjU2MzE4Miw0MjAzMTgxMTcxLDQxMDI5Nzc5MTIsMzczNjE2NDkzNywzNTAxNzQxODkwLDMyNjU0Nzg3NTEsMzQzMzcxMjk4MCwxMTA2MDQxNTkxLDEzNDA0NjMxMDAsMTU3Njk3NjYwOSwxNDA4NzQ5MDM0LDIwNDMyMTE0ODMsMjAwOTE5NTQ3MiwxNzA4ODQ4MzMzLDE4MDkwNTQxNTAsODMyODc3MjMxLDEwNjgzNTEzOTYsNzY2OTQ1NDY1LDU5OTc2MjM1NCwxNTk0MTc5ODcsMTI2NDU0NjY0LDM2MTkyOTg3Nyw0NjMxODAxOTAsMjcwOTI2MDg3MSwyOTQzNjgyMzgwLDMxNzgxMDY5NjEsMzAwOTg3OTM4NiwyNTcyNjk3MTk1LDI1Mzg2ODExODQsMjIzNjIyODczMywyMzM2NDM0NTUwLDM1MDk4NzExMzUsMzc0NTM0NTMwMCwzNDQxODUwMzc3LDMyNzQ2NjcyNjYsMzkxMDE2MTk3MSwzODc3MTk4NjQ4LDQxMTA1Njg0ODUsNDIxMTgxODc5OCwyNTk3ODA2NDc2LDI0OTc2MDQ3NDMsMjI2MTA4OTE3OCwyMjk1MTAxMDczLDI3MzM4NTYxNjAsMjkwMjA4Nzg1MSwzMjAyNDM3MDQ2LDI5NjgwMTE0NTMsMzkzNjI5MTI4NCwzODM1MDM2ODk1LDQxMzY0NDA3NzAsNDE2OTQwODIwMSwzNTM1NDg2NDU2LDM3MDI2NjU0NTksMzQ2NzE5MjMwMiwzMjMxNzIyMjEzLDIwNTE1MTg3ODAsMTk1MTMxNzA0NywxNzE2ODkwNDEwLDE3NTA5MDIzMDUsMTExMzgxODM4NCwxMjgyMDUwMDc1LDE1ODQ1MDQ1ODIsMTM1MDA3ODk4OSwxNjg4MTA4NTIsNjc1NTY0NjMsMzcxMDQ5MzMwLDQwNDAxNjc2MSw4NDE3Mzk1OTIsMTAwODkxODU5NSw3NzU1NTA4MTQsNTQwMDgwNzI1LDM5Njk1NjIzNjksMzgwMTMzMjIzNCw0MDM1NDg5MDQ3LDQyNjk5MDc5OTYsMzU2OTI1NTIxMywzNjY5NDYyNTY2LDMzNjY3NTQ2MTksMzMzMjc0MDE0NCwyNjMxMDY1NDMzLDI0NjM4Nzk3NjIsMjE2MDExNzA3MSwyMzk1NTg4Njc2LDI3Njc2NDU1NTcsMjg2ODg5NzQwNiwzMTAyMDExNzQ3LDMwNjkwNDk5NjAsMjAyMDA4NDk3LDMzNzc4MzYyLDI3MDA0MDQ4Nyw1MDQ0NTk0MzYsODc1NDUxMjkzLDk3NTY1ODY0Niw2NzUwMzk2MjcsNjQxMDI1MTUyLDIwODQ3MDQyMzMsMTkxNzUxODU2MiwxNjE1ODYxMjQ3LDE4NTEzMzI4NTIsMTE0NzU1MDY2MSwxMjQ4ODAyNTEwLDE0ODQwMDU4NDMsMTQ1MTA0NDA1Niw5MzMzMDEzNzAsOTY3MzExNzI5LDczMzE1Njk3Miw2MzI5NTM3MDMsMjYwMzg4OTUwLDI1OTY1OTE3LDMyODY3MTgwOCw0OTY5MDYwNTksMTIwNjQ3Nzg1OCwxMjM5NDQzNzUzLDE1NDMyMDg1MDAsMTQ0MTk1MjU3NSwyMTQ0MTYxODA2LDE5MDg2OTQyNzcsMTY3NTU3Nzg4MCwxODQyNzU5NDQzLDM2MTAzNjkyMjYsMzY0NDM3OTU4NSwzNDA4MTE5NTE2LDMzMDc5MTYyNDcsNDAxMTE5MDUwMiwzNzc2NzY3NDY5LDQwNzczODQ0MzIsNDI0NTYxODY4MywyODA5NzcxMTU0LDI4NDI3MzcwNDksMzE0NDM5NjQyMCwzMDQzMTQwNDk1LDI2NzM3MDUxNTAsMjQzODIzNzYyMSwyMjAzMDMyMjMyLDIzNzAyMTM3OTVdLGxsPVswLDE4NTQ2OTE5NywzNzA5MzgzOTQsNDg3NzI1ODQ3LDc0MTg3Njc4OCw2NTc4NjE5NDUsOTc1NDUxNjk0LDgyNDg1MjI1OSwxNDgzNzUzNTc2LDE0MDA3ODMyMDUsMTMxNTcyMzg5MCwxMTY0MDcxODA3LDE5NTA5MDMzODgsMjEzNTMxOTg4OSwxNjQ5NzA0NTE4LDE3Njc1MzY0NTksMjk2NzUwNzE1MiwzMTUyOTc2MzQ5LDI4MDE1NjY0MTAsMjkxODM1Mzg2MywyNjMxNDQ3NzgwLDI1NDc0MzI5MzcsMjMyODE0MzYxNCwyMTc3NTQ0MTc5LDM5MDE4MDY3NzYsMzgxODgzNjQwNSw0MjcwNjM5Nzc4LDQxMTg5ODc2OTUsMzI5OTQwOTAzNiwzNDgzODI1NTM3LDM1MzUwNzI5MTgsMzY1MjkwNDg1OSwyMDc3OTY1MjQzLDE4OTMwMjAzNDIsMTg0MTc2ODg2NSwxNzI0NDU3MTMyLDE0NzQ1MDI1NDMsMTU1OTA0MTY2NiwxMTA3MjM0MTk3LDEyNTczMDkzMzYsNTk4NDM4ODY3LDY4MTkzMzUzNCw5MDEyMTA1NjksMTA1MjMzODM3MiwyNjEzMTQ1MzUsNzc0MjIzMTQsNDI4ODE5OTY1LDMxMDQ2MzcyOCwzNDA5Njg1MzU1LDMyMjQ3NDA0NTQsMzcxMDM2ODExMywzNTkzMDU2MzgwLDM4NzU3NzAyMDcsMzk2MDMwOTMzMCw0MDQ1MzgwOTMzLDQxOTU0NTYwNzIsMjQ3MTIyNDA2NywyNTU0NzE4NzM0LDIyMzcxMzMwODEsMjM4ODI2MDg4NCwzMjEyMDM1ODk1LDMwMjgxNDM2NzQsMjg0MjY3ODU3MywyNzI0MzIyMzM2LDQxMzg1NjMxODEsNDI1NTM1MDYyNCwzNzY5NzIxOTc1LDM5NTUxOTExNjIsMzY2NzIxOTAzMywzNTE2NjE5NjA0LDM0MzE1NDY5NDcsMzM0NzUzMjExMCwyOTMzNzM0OTE3LDI3ODIwODI4MjQsMzA5OTY2NzQ4NywzMDE2Njk3MTA2LDIxOTYwNTI1MjksMjMxMzg4NDQ3NiwyNDk5MzQ4NTIzLDI2ODM3NjUwMzAsMTE3OTUxMDQ2MSwxMjk2Mjk3OTA0LDEzNDc1NDgzMjcsMTUzMzAxNzUxNCwxNzg2MTAyNDA5LDE2MzU1MDI5ODAsMjA4NzMwOTQ1OSwyMDAzMjk0NjIyLDUwNzM1ODkzMywzNTU3MDY4NDAsMTM2NDI4NzUxLDUzNDU4MzcwLDgzOTIyNDAzMyw5NTcwNTU5ODAsNjA1NjU3MzM5LDc5MDA3Mzg0NiwyMzczMzQwNjMwLDIyNTYwMjg4OTEsMjYwNzQzOTgyMCwyNDIyNDk0OTEzLDI3MDYyNzA2OTAsMjg1NjM0NTgzOSwzMDc1NjM2MjE2LDMxNjAxNzUzNDksMzU3Mzk0MTY5NCwzNzI1MDY5NDkxLDMyNzMyNjcxMDgsMzM1Njc2MTc2OSw0MTgxNTk4NjAyLDQwNjMyNDIzNzUsNDAxMTk5NjA0OCwzODI4MTAzODM3LDEwMzMyOTcxNTgsOTE1OTg1NDE5LDczMDUxNzI3Niw1NDU1NzIzNjksMjk2Njc5NzMwLDQ0Njc1NDg3OSwxMjkxNjYxMjAsMjEzNzA1MjUzLDE3MDk2MTAzNTAsMTg2MDczODE0NywxOTQ1Nzk4NTE2LDIwMjkyOTMxNzcsMTIzOTMzMTE2MiwxMTIwOTc0OTM1LDE2MDY1OTEyOTYsMTQyMjY5OTA4NSw0MTQ4MjkyODI2LDQyMzMwOTQ2MTUsMzc4MTAzMzY2NCwzOTMxMzcxNDY5LDM2ODIxOTE1OTgsMzQ5NzUwOTM0NywzNDQ2MDA0NDY4LDMzMjg5NTUzODUsMjkzOTI2NjIyNiwyNzU1NjM2NjcxLDMxMDY3ODA4NDAsMjk4ODY4NzI2OSwyMTk4NDM4MDIyLDIyODIxOTUzMzksMjUwMTIxODk3MiwyNjUyNjA5NDI1LDEyMDE3NjUzODYsMTI4NjU2NzE3NSwxMzcxMzY4OTc2LDE1MjE3MDY3ODEsMTgwNTIxMTcxMCwxNjIwNTI5NDU5LDIxMDU4ODcyNjgsMTk4ODgzODE4NSw1MzM4MDQxMzAsMzUwMTc0NTc1LDE2NDQzOTY3Miw0NjM0NjEwMSw4NzA5MTIwODYsOTU0NjY5NDAzLDYzNjgxMzkwMCw3ODgyMDQzNTMsMjM1ODk1NzkyMSwyMjc0NjgwNDI4LDI1OTI1MjM2NDMsMjQ0MTY2MTU1OCwyNjk1MDMzNjg1LDI4ODAyNDAyMTYsMzA2NTk2MjgzMSwzMTgyNDg3NjE4LDM1NzIxNDU5MjksMzc1NjI5OTc4MCwzMjcwOTM3ODc1LDMzODg1MDcxNjYsNDE3NDU2MDA2MSw0MDkxMzI3MDI0LDQwMDY1MjExMjcsMzg1NDYwNjM3OCwxMDE0NjQ2NzA1LDkzMDM2OTIxMiw3MTEzNDk2NzUsNTYwNDg3NTkwLDI3Mjc4NjMwOSw0NTc5OTI4NDAsMTA2ODUyNzY3LDIyMzM3NzU1NCwxNjc4MzgxMDE3LDE4NjI1MzQ4NjgsMTkxNDA1MjAzNSwyMDMxNjIxMzI2LDEyMTEyNDc1OTcsMTEyODAxNDU2MCwxNTgwMDg3Nzk5LDE0MjgxNzMwNTAsMzIyODMzMTksMTgyNjIxMTE0LDQwMTYzOTU5Nyw0ODY0NDEzNzYsNzY4OTE3MTIzLDY1MTg2ODA0NiwxMDAzMDA3MTI5LDgxODMyNDg4NCwxNTAzNDQ5ODIzLDEzODUzNTYyNDIsMTMzMzgzODAyMSwxMTUwMjA4NDU2LDE5NzM3NDUzODcsMjEyNTEzNTg0NiwxNjczMDYxNjE3LDE3NTY4MTg5NDAsMjk3MDM1NjMyNywzMTIwNjk0MTIyLDI4MDI4NDk5MTcsMjg4NzY1MTY5NiwyNjM3NDQyNjQzLDI1MjAzOTM1NjYsMjMzNDY2OTg5NywyMTQ5OTg3NjUyLDM5MTcyMzQ3MDMsMzc5OTE0MTEyMiw0Mjg0NTAyMDM3LDQxMDA4NzI0NzIsMzMwOTU5NDE3MSwzNDYwOTg0NjMwLDM1NDU3ODk0NzMsMzYyOTU0Njc5NiwyMDUwNDY2MDYwLDE4OTk2MDM5NjksMTgxNDgwMzIyMiwxNzMwNTI1NzIzLDE0NDM4NTc3MjAsMTU2MDM4MjUxNywxMDc1MDI1Njk4LDEyNjAyMzIyMzksNTc1MTM4MTQ4LDY5MjcwNzQzMyw4Nzg0NDMzOTAsMTA2MjU5NzIzNSwyNDMyNTY2NTYsOTEzNDE5MTcsNDA5MTk4NDEwLDMyNTk2NTM4MywzNDAzMTAwNjM2LDMyNTIyMzg1NDUsMzcwNDMwMDQ4NiwzNjIwMDIyOTg3LDM4NzQ0MjgzOTIsMzk5MDk1MzE4OSw0MDQyNDU5MTIyLDQyMjc2NjU2NjMsMjQ2MDQ0OTIwNCwyNTc4MDE4NDg5LDIyMjY4NzUzMTAsMjQxMTAyOTE1NSwzMTk4MTE1MjAwLDMwNDYyMDA0NjEsMjgyNzE3Nzg4MiwyNzQzOTQ0ODU1XSxkbD1bMCwyMTg4MjgyOTcsNDM3NjU2NTk0LDM4Nzc4MTE0Nyw4NzUzMTMxODgsOTU4ODcxMDg1LDc3NTU2MjI5NCw1OTA0MjQ2MzksMTc1MDYyNjM3NiwxNjk5OTcwNjI1LDE5MTc3NDIxNzAsMjEzNTI1MzU4NywxNTUxMTI0NTg4LDEzNjcyOTU1ODksMTE4MDg0OTI3OCwxMjY1MTk1NjM5LDM1MDEyNTI3NTIsMzcyMDA4MTA0OSwzMzk5OTQxMjUwLDMzNTAwNjU4MDMsMzgzNTQ4NDM0MCwzOTE5MDQyMjM3LDQyNzA1MDcxNzQsNDA4NTM2OTUxOSwzMTAyMjQ5MTc2LDMwNTE1OTM0MjUsMjczNDU5MTE3OCwyOTUyMTAyNTk1LDIzNjE2OTg1NTYsMjE3Nzg2OTU1NywyNTMwMzkxMjc4LDI2MTQ3Mzc2MzksMzE0NTQ1NjQ0MywzMDYwODQ3OTIyLDI3MDgzMjYxODUsMjg5MjQxNzMxMiwyNDA0OTAxNjYzLDIxODcxMjgwODYsMjUwNDEzMDMxNywyNTU1MDQ4MTk2LDM1NDIzMzAyMjcsMzcyNzIwNTc1NCwzMzc1NzQwNzY5LDMyOTI0NDUwMzIsMzg3NjU1NzY1NSwzOTI2MTcwOTc0LDQyNDYzMTA3MjUsNDAyNzc0NDU4OCwxODA4NDgxMTk1LDE3MjM4NzI2NzQsMTkxMDMxOTAzMywyMDk0NDEwMTYwLDE2MDg5NzUyNDcsMTM5MTIwMTY3MCwxMTczNDMwMTczLDEyMjQzNDgwNTIsNTk5ODQ4NjcsMjQ0ODYwMzk0LDQyODE2OTIwMSwzNDQ4NzM0NjQsOTM1MjkzODk1LDk4NDkwNzIxNCw3NjYwNzg5MzMsNTQ3NTEyNzk2LDE4NDQ4ODI4MDYsMTYyNzIzNTE5OSwyMDExMjE0MTgwLDIwNjIyNzAzMTcsMTUwNzQ5NzI5OCwxNDIzMDIyOTM5LDExMzc0Nzc5NTIsMTMyMTY5OTE0NSw5NTM0NTk4MiwxNDUwODUyMzksNTMyMjAxNzcyLDMxMzc3Mzg2MSw4MzA2NjE5MTQsMTAxNTY3MTU3MSw3MzExODMzNjgsNjQ4MDE3NjY1LDMxNzU1MDEyODYsMjk1Nzg1MzY3OSwyODA3MDU4OTMyLDI4NTgxMTUwNjksMjMwNTQ1NTU1NCwyMjIwOTgxMTk1LDI0NzQ0MDQzMDQsMjY1ODYyNTQ5NywzNTc1NTI4ODc4LDM2MjUyNjgxMzUsMzQ3MzQxNjYzNiwzMjU0OTg4NzI1LDM3NzgxNTE4MTgsMzk2MzE2MTQ3NSw0MjEzNDQ3MDY0LDQxMzAyODEzNjEsMzU5OTU5NTA4NSwzNjgzMDIyOTE2LDM0MzI3MzczNzUsMzI0NzQ2NTU1OCwzODAyMjIyMTg1LDQwMjA5MTIyMjQsNDE3Mjc2Mzc3MSw0MTIyNzYyMzU0LDMyMDE2MzE3NDksMzAxNzY3MjcxNiwyNzY0MjQ5NjIzLDI4NDg0NjE4NTQsMjMzMTU5MDE3NywyMjgwNzk2MjAwLDI0MzE1OTA5NjMsMjY0ODk3NjQ0MiwxMDQ2OTk2MTMsMTg4MTI3NDQ0LDQ3MjYxNTYzMSwyODczNDM4MTQsODQwMDE5NzA1LDEwNTg3MDk3NDQsNjcxNTkzMTk1LDYyMTU5MTc3OCwxODUyMTcxOTI1LDE2NjgyMTI4OTIsMTk1Mzc1NzgzMSwyMDM3OTcwMDYyLDE1MTQ3OTA1NzcsMTQ2Mzk5NjYwMCwxMDgwMDE3NTcxLDEyOTc0MDMwNTAsMzY3MzYzNzM1NiwzNjIzNjM2OTY1LDMyMzU5OTUxMzQsMzQ1NDY4NjE5OSw0MDA3MzYwOTY4LDM4MjIwOTAxNzcsNDEwNzEwMTY1OCw0MTkwNTMwNTE1LDI5OTc4MjU5NTYsMzIxNTIxMjQ2MSwyODMwNzA4MTUwLDI3Nzk5MTUxOTksMjI1NjczNDU5MiwyMzQwOTQ3ODQ5LDI2MjcwMTYwODIsMjQ0MzA1ODA3NSwxNzI0NjY1NTYsMTIyNDY2MTY1LDI3Mzc5MjM2Niw0OTI0ODM0MzEsMTA0NzIzOWUzLDg2MTk2ODIwOSw2MTIyMDU4OTgsNjk1NjM0NzU1LDE2NDYyNTIzNDAsMTg2MzYzODg0NSwyMDEzOTA4MjYyLDE5NjMxMTUzMTEsMTQ0NjI0MjU3NiwxNTMwNDU1ODMzLDEyNzc1NTU5NzAsMTA5MzU5Nzk2MywxNjM2NjA0NjMxLDE4MjA4MjQ3OTgsMjA3MzcyNDYxMywxOTg5MjQ5MjI4LDE0MzY1OTA4MzUsMTQ4NzY0NTk0NiwxMzM3Mzc2NDgxLDExMTk3Mjc4NDgsMTY0OTQ4NjM5LDgxNzgxOTEwLDMzMTU0NDIwNSw1MTY1NTI4MzYsMTAzOTcxNzA1MSw4MjEyODgxMTQsNjY5OTYxODk3LDcxOTcwMDEyOCwyOTczNTMwNjk1LDMxNTc3NTA4NjIsMjg3MTY4MjY0NSwyNzg3MjA3MjYwLDIyMzI0MzUyOTksMjI4MzQ5MDQxMCwyNjY3OTk0NzM3LDI0NTAzNDYxMDQsMzY0NzIxMjA0NywzNTY0MDQ1MzE4LDMyNzkwMzM4ODUsMzQ2NDA0MjUxNiwzOTgwOTMxNjI3LDM3NjI1MDI2OTAsNDE1MDE0NDU2OSw0MTk5ODgyODAwLDMwNzAzNTY2MzQsMzEyMTI3NTUzOSwyOTA0MDI3MjcyLDI2ODYyNTQ3MjEsMjIwMDgxODg3OCwyMzg0OTExMDMxLDI1NzA4MzIwNDQsMjQ4NjIyNDU0OSwzNzQ3MTkyMDE4LDM1Mjg2MjY5MDcsMzMxMDMyMTg1NiwzMzU5OTM2MjAxLDM5NTAzNTU3MDIsMzg2NzA2MDk5MSw0MDQ5ODQ0NDUyLDQyMzQ3MjEwMDUsMTczOTY1NjIwMiwxNzkwNTc1MTA3LDIxMDgxMDA2MzIsMTg5MDMyODA4MSwxNDAyODExNDM4LDE1ODY5MDM1OTEsMTIzMzg1NjU3MiwxMTQ5MjQ5MDc3LDI2Njk1OTkzOCw0ODM5NDgyNywzNjkwNTc4NzIsNDE4NjcyMjE3LDEwMDI3ODM4NDYsOTE5NDg5MTM1LDU2NzQ5ODg2OCw3NTIzNzU0MjEsMjA5MzM2MjI1LDI0MTk3NTQ0LDM3NjE4NzgyNyw0NTk3NDQ2OTgsOTQ1MTY0MTY1LDg5NTI4NzY5Miw1NzQ2MjQ2NjMsNzkzNDUxOTM0LDE2Nzk5NjgyMzMsMTc2NDMxMzU2OCwyMTE3MzYwNjM1LDE5MzM1MzA2MTAsMTM0MzEyNzUwMSwxNTYwNjM3ODkyLDEyNDMxMTI0MTUsMTE5MjQ1NTYzOCwzNzA0MjgwODgxLDM1MTkxNDIyMDAsMzMzNjM1ODY5MSwzNDE5OTE1NTYyLDM5MDc0NDg1OTcsMzg1NzU3MjEyNCw0MDc1ODc3MTI3LDQyOTQ3MDQzOTgsMzAyOTUxMDAwOSwzMTEzODU1MzQ0LDI5Mjc5MzQzMTUsMjc0NDEwNDI5MCwyMTU5OTc2Mjg1LDIzNzc0ODY2NzYsMjU5NDczNDkyNywyNTQ0MDc4MTUwXSxmbD1bMCwxNTE4NDk3NDIsMzAzNjk5NDg0LDQ1NDQ5OTYwMiw2MDczOTg5NjgsNzU4NzIwMzEwLDkwODk5OTIwNCwxMDU5MjcwOTU0LDEyMTQ3OTc5MzYsMTA5NzE1OTU1MCwxNTE3NDQwNjIwLDE0MDA4NDk3NjIsMTgxNzk5ODQwOCwxNjk5ODM5ODE0LDIxMTg1NDE5MDgsMjAwMTQzMDg3NCwyNDI5NTk1ODcyLDI1ODE0NDU2MTQsMjE5NDMxOTEwMCwyMzQ1MTE5MjE4LDMwMzQ4ODEyNDAsMzE4NjIwMjU4MiwyODAxNjk5NTI0LDI5NTE5NzEyNzQsMzYzNTk5NjgxNiwzNTE4MzU4NDMwLDMzOTk2Nzk2MjgsMzI4MzA4ODc3MCw0MjM3MDgzODE2LDQxMTg5MjUyMjIsNDAwMjg2MTc0OCwzODg1NzUwNzE0LDEwMDIxNDI2ODMsODUwODE3MjM3LDY5ODQ0NTI1NSw1NDgxNjk0MTcsNTI5NDg3ODQzLDM3NzY0MjIyMSwyMjc4ODU1NjcsNzcwODk1MjEsMTk0MzIxNzA2NywyMDYxMzc5NzQ5LDE2NDA1NzY0MzksMTc1NzY5MTU3NywxNDc0NzYwNTk1LDE1OTIzOTQ5MDksMTE3NDIxNTA1NSwxMjkwODAxNzkzLDI4NzU5NjgzMTUsMjcyNDY0Mjg2OSwzMTExMjQ3MTQzLDI5NjA5NzEzMDUsMjQwNTQyNjk0NywyMjUzNTgxMzI1LDI2Mzg2MDY2MjMsMjQ4NzgxMDU3NywzODA4NjYyMzQ3LDM5MjY4MjUwMjksNDA0NDk4MTU5MSw0MTYyMDk2NzI5LDMzNDIzMTk0NzUsMzQ1OTk1Mzc4OSwzNTc2NTM5NTAzLDM2OTMxMjYyNDEsMTk4NjkxODA2MSwyMTM3MDYyODE5LDE2ODU1Nzc5MDUsMTgzNjc3MjI4NywxMzgxNjIwMzczLDE1MzIyODUzMzksMTA3ODE4NTA5NywxMjI5ODk5NjU1LDEwNDA1NTk4MzcsOTIzMzEzNjE5LDc0MDI3NjQxNyw2MjE5ODI2NzEsNDM5NDUyMzg5LDMyMjczNDU3MSwxMzcwNzM5MTMsMTkzMDg1MzUsMzg3MTE2Mzk4MSw0MDIxMzA4NzM5LDQxMDQ2MDU3NzcsNDI1NTgwMDE1OSwzMjYzNzg1NTg5LDM0MTQ0NTA1NTUsMzQ5OTMyNjU2OSwzNjUxMDQxMTI3LDI5MzMyMDI0OTMsMjgxNTk1NjI3NSwzMTY3Njg0NjQxLDMwNDkzOTA4OTUsMjMzMDAxNDIxMywyMjEzMjk2Mzk1LDI1NjY1OTU2MDksMjQ0ODgzMDIzMSwxMzA1OTA2NTUwLDExNTUyMzc0OTYsMTYwNzI0NDY1MCwxNDU1NTI1OTg4LDE3NzY0NjAxMTAsMTYyNjMxOTQyNCwyMDc5ODk3NDI2LDE5Mjg3MDcxNjQsOTYzOTI0NTQsMjEzMTE0Mzc2LDM5NjY3MzgxOCw1MTQ0NDMyODQsNTYyNzU1OTAyLDY3OTk5OGUzLDg2NTEzNjQxOCw5ODM0MjYwOTIsMzcwODE3MzcxOCwzNTU3NTA0NjY0LDM0NzQ3Mjk4NjYsMzMyMzAxMTIwNCw0MTgwODA4MTEwLDQwMzA2Njc0MjQsMzk0NTI2OTE3MCwzNzk0MDc4OTA4LDI1MDcwNDAyMzAsMjYyMzc2MjE1MiwyMjcyNTU2MDI2LDIzOTAzMjU0OTIsMjk3NTQ4NDM4MiwzMDkyNzI2NDgwLDI3Mzg5MDUwMjYsMjg1NzE5NDcwMCwzOTczNzczMTIxLDM4NTYxMzcyOTUsNDI3NDA1MzQ2OSw0MTU3NDY3MjE5LDMzNzEwOTY5NTMsMzI1MjkzMjcyNywzNjczNDc2NDUzLDM1NTYzNjE4MzUsMjc2MzE3MzY4MSwyOTE1MDE3NzkxLDMwNjQ1MTA3NjUsMzIxNTMwNzI5OSwyMTU2Mjk5MDE3LDIzMDc2MjI5MTksMjQ1OTczNTMxNywyNjEwMDExNjc1LDIwODEwNDg0ODEsMTk2MzQxMjY1NSwxODQ2NTYzMjYxLDE3Mjk5NzcwMTEsMTQ4MDQ4NTc4NSwxMzYyMzIxNTU5LDEyNDM5MDU0MTMsMTEyNjc5MDc5NSw4Nzg4NDU5MDUsMTAzMDY5MDAxNSw2NDU0MDEwMzcsNzk2MTk3NTcxLDI3NDA4NDg0MSw0MjU0MDg3NDMsMzg1NDQ4ODUsMTg4ODIxMjQzLDM2MTM0OTQ0MjYsMzczMTY1NDU0OCwzMzEzMjEyMDM4LDM0MzAzMjI1NjgsNDA4MjQ3NTE3MCw0MjAwMTE1MTE2LDM3ODAwOTc3MjYsMzg5NjY4ODA0OCwyNjY4MjIxNjc0LDI1MTY5MDE4NjAsMjM2Njg4MjU1MCwyMjE2NjEwMjk2LDMxNDE0MDA3ODYsMjk4OTU1MjYwNCwyODM3OTY2NTQyLDI2ODcxNjU4ODgsMTIwMjc5NzY5MCwxMzIwOTU3ODEyLDE0MzcyODA4NzAsMTU1NDM5MTQwMCwxNjY5NjY0ODM0LDE3ODczMDQ3ODAsMTkwNjI0NzI2MiwyMDIyODM3NTg0LDI2NTkwNTE2MiwxMTQ1ODUzNDgsNDk5MzQ3OTkwLDM0OTA3NTczNiw3MzY5NzA4MDIsNTg1MTIyNjIwLDk3MjUxMjgxNCw4MjE3MTIxNjAsMjU5NTY4NDg0NCwyNDc4NDQzMjM0LDIyOTMwNDUyMzIsMjE3NDc1NDA0NiwzMTk2MjY3OTg4LDMwNzk1NDY1ODYsMjg5NTcyMzQ2NCwyNzc3OTUyNDU0LDM1Mzc4NTI4MjgsMzY4Nzk5NDAwMiwzMjM0MTU2NDE2LDMzODUzNDUxNjYsNDE0MjYyNjIxMiw0MjkzMjk1Nzg2LDM4NDEwMjQ5NTIsMzk5Mjc0MjA3MCwxNzQ1Njc2OTIsNTczMjYwODIsNDEwODg3OTUyLDI5MjU5Njc2Niw3NzcyMzE2NjgsNjYwNTEwMjY2LDEwMTE0NTI3MTIsODkzNjgxNzAyLDExMDgzMzkwNjgsMTI1ODQ4MDI0MiwxMzQzNjE4OTEyLDE0OTQ4MDc2NjIsMTcxNTE5MzE1NiwxODY1ODYyNzMwLDE5NDgzNzM4NDgsMjEwMDA5MDk2NiwyNzAxOTQ5NDk1LDI4MTg2NjY4MDksMzAwNDU5MTE0NywzMTIyMzU4MDUzLDIyMzUwNjE3NzUsMjM1MjMwNzQ1NywyNTM1NjA0MjQzLDI2NTM4OTk1NDksMzkxNTY1MzcwMywzNzY0OTg4MjMzLDQyMTkzNTIxNTUsNDA2NzYzOTEyNSwzNDQ0NTc1ODcxLDMyOTQ0MzA1NzcsMzc0NjE3NTA3NSwzNTk0OTgyMjUzLDgzNjU1MzQzMSw5NTMyNzA3NDUsNjAwMjM1MjExLDcxODAwMjExNywzNjc1ODUwMDcsNDg0ODMwNjg5LDEzMzM2MTkwNywyNTE2NTcyMTMsMjA0MTg3NzE1OSwxODkxMjExNjg5LDE4MDY1OTkzNTUsMTY1NDg4NjMyNSwxNTY4NzE4NDk1LDE0MTg1NzMyMDEsMTMzNTUzNTc0NywxMTg0MzQyOTI1XTtmdW5jdGlvbiBwbChlKXtjb25zdCB0PVtdO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cis9NCl0LnB1c2goZVtyXTw8MjR8ZVtyKzFdPDwxNnxlW3IrMl08PDh8ZVtyKzNdKTtyZXR1cm4gdH1jbGFzcyBobHtnZXQga2V5KCl7cmV0dXJuIHFjKHRoaXMsVmMsImYiKS5zbGljZSgpfWNvbnN0cnVjdG9yKGUpe2lmKFZjLnNldCh0aGlzLHZvaWQgMCksR2Muc2V0KHRoaXMsdm9pZCAwKSxIYy5zZXQodGhpcyx2b2lkIDApLCEodGhpcyBpbnN0YW5jZW9mIGhsKSl0aHJvdyBFcnJvcigiQUVTIG11c3QgYmUgaW5zdGFuaXRhdGVkIHdpdGggYG5ld2AiKTtKYyh0aGlzLFZjLG5ldyBVaW50OEFycmF5KGUpLCJmIik7Y29uc3QgdD1ZY1t0aGlzLmtleS5sZW5ndGhdO2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgc2l6ZSAobXVzdCBiZSAxNiwgMjQgb3IgMzIgYnl0ZXMpIik7SmModGhpcyxIYyxbXSwiZiIpLEpjKHRoaXMsR2MsW10sImYiKTtmb3IobGV0IGU9MDtlPD10O2UrKylxYyh0aGlzLEhjLCJmIikucHVzaChbMCwwLDAsMF0pLHFjKHRoaXMsR2MsImYiKS5wdXNoKFswLDAsMCwwXSk7Y29uc3Qgcj00Kih0KzEpLG49dGhpcy5rZXkubGVuZ3RoLzQsbz1wbCh0aGlzLmtleSk7bGV0IGk7Zm9yKGxldCBlPTA7ZTxuO2UrKylpPWU+PjIscWModGhpcyxIYywiZiIpW2ldW2UlNF09b1tlXSxxYyh0aGlzLEdjLCJmIilbdC1pXVtlJTRdPW9bZV07bGV0IGEscz0wLHU9bjtmb3IoO3U8cjspe2lmKGE9b1tuLTFdLG9bMF1ePVFjW2E+PjE2JjI1NV08PDI0XlFjW2E+PjgmMjU1XTw8MTZeUWNbMjU1JmFdPDw4XlFjW2E+PjI0JjI1NV1eWGNbc108PDI0LHMrPTEsOCE9bilmb3IobGV0IGU9MTtlPG47ZSsrKW9bZV1ePW9bZS0xXTtlbHNle2ZvcihsZXQgZT0xO2U8bi8yO2UrKylvW2VdXj1vW2UtMV07YT1vW24vMi0xXSxvW24vMl1ePVFjWzI1NSZhXV5RY1thPj44JjI1NV08PDheUWNbYT4+MTYmMjU1XTw8MTZeUWNbYT4+MjQmMjU1XTw8MjQ7Zm9yKGxldCBlPW4vMisxO2U8bjtlKyspb1tlXV49b1tlLTFdfWxldCBlLGksYz0wO2Zvcig7YzxuJiZ1PHI7KWU9dT4+MixpPXUlNCxxYyh0aGlzLEhjLCJmIilbZV1baV09b1tjXSxxYyh0aGlzLEdjLCJmIilbdC1lXVtpXT1vW2MrK10sdSsrfWZvcihsZXQgZT0xO2U8dDtlKyspZm9yKGxldCB0PTA7dDw0O3QrKylhPXFjKHRoaXMsR2MsImYiKVtlXVt0XSxxYyh0aGlzLEdjLCJmIilbZV1bdF09Y2xbYT4+MjQmMjU1XV5sbFthPj4xNiYyNTVdXmRsW2E+PjgmMjU1XV5mbFsyNTUmYV19ZW5jcnlwdChlKXtpZigxNiE9ZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBwbGFpbnRleHQgc2l6ZSAobXVzdCBiZSAxNiBieXRlcykiKTtjb25zdCB0PXFjKHRoaXMsSGMsImYiKS5sZW5ndGgtMSxyPVswLDAsMCwwXTtsZXQgbj1wbChlKTtmb3IobGV0IGU9MDtlPDQ7ZSsrKW5bZV1ePXFjKHRoaXMsSGMsImYiKVswXVtlXTtmb3IobGV0IGU9MTtlPHQ7ZSsrKXtmb3IobGV0IHQ9MDt0PDQ7dCsrKXJbdF09dGxbblt0XT4+MjQmMjU1XV5ybFtuWyh0KzEpJTRdPj4xNiYyNTVdXm5sW25bKHQrMiklNF0+PjgmMjU1XV5vbFsyNTUmblsodCszKSU0XV1ecWModGhpcyxIYywiZiIpW2VdW3RdO249ci5zbGljZSgpfWNvbnN0IG89bmV3IFVpbnQ4QXJyYXkoMTYpO2xldCBpPTA7Zm9yKGxldCBlPTA7ZTw0O2UrKylpPXFjKHRoaXMsSGMsImYiKVt0XVtlXSxvWzQqZV09MjU1JihRY1tuW2VdPj4yNCYyNTVdXmk+PjI0KSxvWzQqZSsxXT0yNTUmKFFjW25bKGUrMSklNF0+PjE2JjI1NV1eaT4+MTYpLG9bNCplKzJdPTI1NSYoUWNbblsoZSsyKSU0XT4+OCYyNTVdXmk+PjgpLG9bNCplKzNdPTI1NSYoUWNbMjU1Jm5bKGUrMyklNF1dXmkpO3JldHVybiBvfWRlY3J5cHQoZSl7aWYoMTYhPWUubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgY2lwaGVydGV4dCBzaXplIChtdXN0IGJlIDE2IGJ5dGVzKSIpO2NvbnN0IHQ9cWModGhpcyxHYywiZiIpLmxlbmd0aC0xLHI9WzAsMCwwLDBdO2xldCBuPXBsKGUpO2ZvcihsZXQgZT0wO2U8NDtlKyspbltlXV49cWModGhpcyxHYywiZiIpWzBdW2VdO2ZvcihsZXQgZT0xO2U8dDtlKyspe2ZvcihsZXQgdD0wO3Q8NDt0Kyspclt0XT1pbFtuW3RdPj4yNCYyNTVdXmFsW25bKHQrMyklNF0+PjE2JjI1NV1ec2xbblsodCsyKSU0XT4+OCYyNTVdXnVsWzI1NSZuWyh0KzEpJTRdXV5xYyh0aGlzLEdjLCJmIilbZV1bdF07bj1yLnNsaWNlKCl9Y29uc3Qgbz1uZXcgVWludDhBcnJheSgxNik7bGV0IGk9MDtmb3IobGV0IGU9MDtlPDQ7ZSsrKWk9cWModGhpcyxHYywiZiIpW3RdW2VdLG9bNCplXT0yNTUmKGVsW25bZV0+PjI0JjI1NV1eaT4+MjQpLG9bNCplKzFdPTI1NSYoZWxbblsoZSszKSU0XT4+MTYmMjU1XV5pPj4xNiksb1s0KmUrMl09MjU1JihlbFtuWyhlKzIpJTRdPj44JjI1NV1eaT4+OCksb1s0KmUrM109MjU1JihlbFsyNTUmblsoZSsxKSU0XV1eaSk7cmV0dXJuIG99fVZjPW5ldyBXZWFrTWFwLEdjPW5ldyBXZWFrTWFwLEhjPW5ldyBXZWFrTWFwO2NsYXNzIGdse2NvbnN0cnVjdG9yKGUsdCxyKXtpZihyJiYhKHRoaXMgaW5zdGFuY2VvZiByKSl0aHJvdyBuZXcgRXJyb3IoYCR7ZX0gbXVzdCBiZSBpbnN0YW50aWF0ZWQgd2l0aCAibmV3ImApO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse2Flczp7ZW51bWVyYWJsZTohMCx2YWx1ZTpuZXcgaGwodCl9LG5hbWU6e2VudW1lcmFibGU6ITAsdmFsdWU6ZX19KX19dmFyIHlsLGJsLHZsPWZ1bmN0aW9uKGUsdCxyLG4sbyl7aWYoIm0iPT09bil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZigiYSI9PT1uJiYhbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdD9lIT09dHx8IW86IXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuImEiPT09bj9vLmNhbGwoZSxyKTpvP28udmFsdWU9cjp0LnNldChlLHIpLHJ9LG1sPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKCJhIj09PXImJiFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2UhPT10fHwhbjohdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIm0iPT09cj9uOiJhIj09PXI/bi5jYWxsKGUpOm4/bi52YWx1ZTp0LmdldChlKX07Y2xhc3MgVGwgZXh0ZW5kcyBnbHtjb25zdHJ1Y3RvcihlLHQpe2lmKHN1cGVyKCJFQ0MiLGUsVGwpLHlsLnNldCh0aGlzLHZvaWQgMCksYmwuc2V0KHRoaXMsdm9pZCAwKSx0KXtpZih0Lmxlbmd0aCUxNil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IHNpemUgKG11c3QgYmUgMTYgYnl0ZXMpIik7dmwodGhpcyx5bCxuZXcgVWludDhBcnJheSh0KSwiZiIpfWVsc2UgdmwodGhpcyx5bCxuZXcgVWludDhBcnJheSgxNiksImYiKTt2bCh0aGlzLGJsLHRoaXMuaXYsImYiKX1nZXQgaXYoKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobWwodGhpcyx5bCwiZiIpKX1lbmNyeXB0KGUpe2lmKGUubGVuZ3RoJTE2KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgcGxhaW50ZXh0IHNpemUgKG11c3QgYmUgbXVsdGlwbGUgb2YgMTYgYnl0ZXMpIik7Y29uc3QgdD1uZXcgVWludDhBcnJheShlLmxlbmd0aCk7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKz0xNil7Zm9yKGxldCB0PTA7dDwxNjt0KyspbWwodGhpcyxibCwiZiIpW3RdXj1lW3IrdF07dmwodGhpcyxibCx0aGlzLmFlcy5lbmNyeXB0KG1sKHRoaXMsYmwsImYiKSksImYiKSx0LnNldChtbCh0aGlzLGJsLCJmIikscil9cmV0dXJuIHR9ZGVjcnlwdChlKXtpZihlLmxlbmd0aCUxNil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGNpcGhlcnRleHQgc2l6ZSAobXVzdCBiZSBtdWx0aXBsZSBvZiAxNiBieXRlcykiKTtjb25zdCB0PW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrPTE2KXtjb25zdCBuPXRoaXMuYWVzLmRlY3J5cHQoZS5zdWJhcnJheShyLHIrMTYpKTtmb3IobGV0IG89MDtvPDE2O28rKyl0W3Irb109bltvXV5tbCh0aGlzLGJsLCJmIilbb10sbWwodGhpcyxibCwiZiIpW29dPWVbcitvXX1yZXR1cm4gdH19eWw9bmV3IFdlYWtNYXAsYmw9bmV3IFdlYWtNYXA7bmV3IFdlYWtNYXAsbmV3IFdlYWtNYXAsbmV3IFdlYWtTZXQ7dmFyIHdsLEFsLFBsLFdsPWZ1bmN0aW9uKGUsdCxyLG4sbyl7aWYoIm0iPT09bil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTtpZigiYSI9PT1uJiYhbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdD9lIT09dHx8IW86IXQuaGFzKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuImEiPT09bj9vLmNhbGwoZSxyKTpvP28udmFsdWU9cjp0LnNldChlLHIpLHJ9LEJsPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKCJhIj09PXImJiFuKXRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2UhPT10fHwhbjohdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7cmV0dXJuIm0iPT09cj9uOiJhIj09PXI/bi5jYWxsKGUpOm4/bi52YWx1ZTp0LmdldChlKX07Y2xhc3MgQ2wgZXh0ZW5kcyBnbHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCJDVFIiLGUsQ2wpLHdsLnNldCh0aGlzLHZvaWQgMCksQWwuc2V0KHRoaXMsdm9pZCAwKSxQbC5zZXQodGhpcyx2b2lkIDApLFdsKHRoaXMsUGwsbmV3IFVpbnQ4QXJyYXkoMTYpLCJmIiksQmwodGhpcyxQbCwiZiIpLmZpbGwoMCksV2wodGhpcyx3bCxCbCh0aGlzLFBsLCJmIiksImYiKSxXbCh0aGlzLEFsLDE2LCJmIiksbnVsbD09dCYmKHQ9MSksIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuc2V0Q291bnRlclZhbHVlKHQpOnRoaXMuc2V0Q291bnRlckJ5dGVzKHQpfWdldCBjb3VudGVyKCl7cmV0dXJuIG5ldyBVaW50OEFycmF5KEJsKHRoaXMsUGwsImYiKSl9c2V0Q291bnRlclZhbHVlKGUpe2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGUpfHxlPDB8fGU+TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBjb3VudGVyIGluaXRpYWwgaW50ZWdlciB2YWx1ZSIpO2ZvcihsZXQgdD0xNTt0Pj0wOy0tdClCbCh0aGlzLFBsLCJmIilbdF09ZSUyNTYsZT1NYXRoLmZsb29yKGUvMjU2KX1zZXRDb3VudGVyQnl0ZXMoZSl7aWYoMTYhPT1lLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGNvdW50ZXIgaW5pdGlhbCBVaW50OEFycmF5IHZhbHVlIGxlbmd0aCIpO0JsKHRoaXMsUGwsImYiKS5zZXQoZSl9aW5jcmVtZW50KCl7Zm9yKGxldCBlPTE1O2U+PTA7ZS0tKXtpZigyNTUhPT1CbCh0aGlzLFBsLCJmIilbZV0pe0JsKHRoaXMsUGwsImYiKVtlXSsrO2JyZWFrfUJsKHRoaXMsUGwsImYiKVtlXT0wfX1lbmNyeXB0KGUpe3ZhciB0LHI7Y29uc3Qgbj1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrKykxNj09PUJsKHRoaXMsQWwsImYiKSYmKFdsKHRoaXMsd2wsdGhpcy5hZXMuZW5jcnlwdChCbCh0aGlzLFBsLCJmIikpLCJmIiksV2wodGhpcyxBbCwwLCJmIiksdGhpcy5pbmNyZW1lbnQoKSksbltlXV49QmwodGhpcyx3bCwiZiIpWyhXbCh0aGlzLEFsLChyPUJsKHRoaXMsQWwsImYiKSx0PXIrKyxyKSwiZiIpLHQpXTtyZXR1cm4gbn1kZWNyeXB0KGUpe3JldHVybiB0aGlzLmVuY3J5cHQoZSl9fXdsPW5ldyBXZWFrTWFwLEFsPW5ldyBXZWFrTWFwLFBsPW5ldyBXZWFrTWFwLG5ldyBXZWFrTWFwLG5ldyBXZWFrTWFwLG5ldyBXZWFrTWFwO2NvbnN0IEVsPShlLHQpPT5lPDx0fGU+Pj4zMi10O2Z1bmN0aW9uIE1sKGUsdCxyLG4sbyxpKXtsZXQgYT1lW3QrK11ecltuKytdLHM9ZVt0KytdXnJbbisrXSx1PWVbdCsrXV5yW24rK10sYz1lW3QrK11ecltuKytdLGw9ZVt0KytdXnJbbisrXSxkPWVbdCsrXV5yW24rK10sZj1lW3QrK11ecltuKytdLHA9ZVt0KytdXnJbbisrXSxoPWVbdCsrXV5yW24rK10sZz1lW3QrK11ecltuKytdLHk9ZVt0KytdXnJbbisrXSxiPWVbdCsrXV5yW24rK10sdj1lW3QrK11ecltuKytdLG09ZVt0KytdXnJbbisrXSxUPWVbdCsrXV5yW24rK10sdz1lW3QrK11ecltuKytdLEE9YSxQPXMsVz11LEI9YyxDPWwsRT1kLE09ZixrPXAsST1oLE89Zyx4PXksUz1iLEY9dixfPW0sUj1ULE49dztmb3IobGV0IGU9MDtlPDg7ZSs9MilDXj1FbChBK0Z8MCw3KSxJXj1FbChDK0F8MCw5KSxGXj1FbChJK0N8MCwxMyksQV49RWwoRitJfDAsMTgpLE9ePUVsKEUrUHwwLDcpLF9ePUVsKE8rRXwwLDkpLFBePUVsKF8rT3wwLDEzKSxFXj1FbChQK198MCwxOCksUl49RWwoeCtNfDAsNyksV149RWwoUit4fDAsOSksTV49RWwoVytSfDAsMTMpLHhePUVsKE0rV3wwLDE4KSxCXj1FbChOK1N8MCw3KSxrXj1FbChCK058MCw5KSxTXj1FbChrK0J8MCwxMyksTl49RWwoUytrfDAsMTgpLFBePUVsKEErQnwwLDcpLFdePUVsKFArQXwwLDkpLEJePUVsKFcrUHwwLDEzKSxBXj1FbChCK1d8MCwxOCksTV49RWwoRStDfDAsNyksa149RWwoTStFfDAsOSksQ149RWwoaytNfDAsMTMpLEVePUVsKEMra3wwLDE4KSxTXj1FbCh4K098MCw3KSxJXj1FbChTK3h8MCw5KSxPXj1FbChJK1N8MCwxMykseF49RWwoTytJfDAsMTgpLEZePUVsKE4rUnwwLDcpLF9ePUVsKEYrTnwwLDkpLFJePUVsKF8rRnwwLDEzKSxOXj1FbChSK198MCwxOCk7b1tpKytdPWErQXwwLG9baSsrXT1zK1B8MCxvW2krK109dStXfDAsb1tpKytdPWMrQnwwLG9baSsrXT1sK0N8MCxvW2krK109ZCtFfDAsb1tpKytdPWYrTXwwLG9baSsrXT1wK2t8MCxvW2krK109aCtJfDAsb1tpKytdPWcrT3wwLG9baSsrXT15K3h8MCxvW2krK109YitTfDAsb1tpKytdPXYrRnwwLG9baSsrXT1tK198MCxvW2krK109VCtSfDAsb1tpKytdPXcrTnwwfWZ1bmN0aW9uIGtsKGUsdCxyLG4sbyl7bGV0IGk9biswLGE9bisxNipvO2ZvcihsZXQgbj0wO248MTY7bisrKXJbYStuXT1lW3QrMTYqKDIqby0xKStuXTtmb3IobGV0IG49MDtuPG87bisrLGkrPTE2LHQrPTE2KU1sKHIsYSxlLHQscixpKSxuPjAmJihhKz0xNiksTWwocixpLGUsdCs9MTYscixhKX1mdW5jdGlvbiBJbChlLHQscil7Y29uc3Qgbj1jbih7ZGtMZW46MzIsYXN5bmNUaWNrOjEwLG1heG1lbToxMDczNzQyODQ4fSxyKSx7TjpvLHI6aSxwOmEsZGtMZW46cyxhc3luY1RpY2s6dSxtYXhtZW06YyxvblByb2dyZXNzOmx9PW47aWYoUXIubnVtYmVyKG8pLFFyLm51bWJlcihpKSxRci5udW1iZXIoYSksUXIubnVtYmVyKHMpLFFyLm51bWJlcih1KSxRci5udW1iZXIoYyksdm9pZCAwIT09bCYmImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgbmV3IEVycm9yKCJwcm9ncmVzc0NiIHNob3VsZCBiZSBmdW5jdGlvbiIpO2NvbnN0IGQ9MTI4KmksZj1kLzQ7aWYobzw9MXx8MCE9KG8mby0xKXx8bz49MioqKGQvOCl8fG8+MioqMzIpdGhyb3cgbmV3IEVycm9yKCJTY3J5cHQ6IE4gbXVzdCBiZSBsYXJnZXIgdGhhbiAxLCBhIHBvd2VyIG9mIDIsIGxlc3MgdGhhbiAyXigxMjggKiByIC8gOCkgYW5kIGxlc3MgdGhhbiAyXjMyIik7aWYoYTwwfHxhPjEzNzQzODk1MzQ0MC9kKXRocm93IG5ldyBFcnJvcigiU2NyeXB0OiBwIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIGxlc3MgdGhhbiBvciBlcXVhbCB0byAoKDJeMzIgLSAxKSAqIDMyKSAvICgxMjggKiByKSIpO2lmKHM8MHx8cz4xMzc0Mzg5NTM0NDApdGhyb3cgbmV3IEVycm9yKCJTY3J5cHQ6IGRrTGVuIHNob3VsZCBiZSBwb3NpdGl2ZSBpbnRlZ2VyIGxlc3MgdGhhbiBvciBlcXVhbCB0byAoMl4zMiAtIDEpICogMzIiKTtjb25zdCBwPWQqKG8rYSk7aWYocD5jKXRocm93IG5ldyBFcnJvcihgU2NyeXB0OiBwYXJhbWV0ZXJzIHRvbyBsYXJnZSwgJHtwfSAoMTI4ICogciAqIChOICsgcCkpID4gJHtjfSAobWF4bWVtKWApO2NvbnN0IGg9cG4od24sZSx0LHtjOjEsZGtMZW46ZCphfSksZz1lbihoKSx5PWVuKG5ldyBVaW50OEFycmF5KGQqbykpLGI9ZW4obmV3IFVpbnQ4QXJyYXkoZCkpO2xldCB2PSgpPT57fTtpZihsKXtjb25zdCBlPTIqbyphLHQ9TWF0aC5tYXgoTWF0aC5mbG9vcihlLzFlNCksMSk7bGV0IHI9MDt2PSgpPT57cisrLCFsfHxyJXQmJnIhPT1lfHxsKHIvZSl9fXJldHVybntOOm8scjppLHA6YSxka0xlbjpzLGJsb2NrU2l6ZTMyOmYsVjp5LEIzMjpnLEI6aCx0bXA6YixibG9ja01peENiOnYsYXN5bmNUaWNrOnV9fWZ1bmN0aW9uIE9sKGUsdCxyLG4sbyl7Y29uc3QgaT1wbih3bixlLHIse2M6MSxka0xlbjp0fSk7cmV0dXJuIHIuZmlsbCgwKSxuLmZpbGwoMCksby5maWxsKDApLGl9YXN5bmMgZnVuY3Rpb24geGwoZSx0LHIpe2NvbnN0e046bixyOm8scDppLGRrTGVuOmEsYmxvY2tTaXplMzI6cyxWOnUsQjMyOmMsQjpsLHRtcDpkLGJsb2NrTWl4Q2I6Zixhc3luY1RpY2s6cH09SWwoZSx0LHIpO2ZvcihsZXQgZT0wO2U8aTtlKyspe2NvbnN0IHQ9cyplO2ZvcihsZXQgZT0wO2U8cztlKyspdVtlXT1jW3QrZV07bGV0IHI9MDthd2FpdCBvbihuLTEscCwoZT0+e2tsKHUscix1LHIrPXMsbyksZigpfSkpLGtsKHUsKG4tMSkqcyxjLHQsbyksZigpLGF3YWl0IG9uKG4scCwoZT0+e2NvbnN0IHI9Y1t0K3MtMTZdJW47Zm9yKGxldCBlPTA7ZTxzO2UrKylkW2VdPWNbdCtlXV51W3IqcytlXTtrbChkLDAsYyx0LG8pLGYoKX0pKX1yZXR1cm4gT2woZSxhLGwsdSxkKX12YXIgU2w9ITEsRmw9ITEsX2w9ZnVuY3Rpb24oKXt2YXIgZT1wKEIubWFyaygoZnVuY3Rpb24gZSh0LHIsbixvLGksYSxzKXtyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTIseGwodCxyLHtOOm4scjpvLHA6aSxka0xlbjphLG9uUHJvZ3Jlc3M6c30pO2Nhc2UgMjpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsZS5zZW50KTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHQscixuLG8saSxhLHMpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksUmw9ZnVuY3Rpb24oZSx0LHIsbixvLGkpe3JldHVybiBmdW5jdGlvbihlLHQscil7Y29uc3R7TjpuLHI6byxwOmksZGtMZW46YSxibG9ja1NpemUzMjpzLFY6dSxCMzI6YyxCOmwsdG1wOmQsYmxvY2tNaXhDYjpmfT1JbChlLHQscik7Zm9yKGxldCBlPTA7ZTxpO2UrKyl7Y29uc3QgdD1zKmU7Zm9yKGxldCBlPTA7ZTxzO2UrKyl1W2VdPWNbdCtlXTtmb3IobGV0IGU9MCx0PTA7ZTxuLTE7ZSsrKWtsKHUsdCx1LHQrPXMsbyksZigpO2tsKHUsKG4tMSkqcyxjLHQsbyksZigpO2ZvcihsZXQgZT0wO2U8bjtlKyspe2NvbnN0IGU9Y1t0K3MtMTZdJW47Zm9yKGxldCByPTA7cjxzO3IrKylkW3JdPWNbdCtyXV51W2UqcytyXTtrbChkLDAsYyx0LG8pLGYoKX19cmV0dXJuIE9sKGUsYSxsLHUsZCl9KGUsdCx7TjpyLHI6bixwOm8sZGtMZW46aX0pfSxObD1fbCxVbD1SbDtmdW5jdGlvbiBEbChlLHQscixuLG8saSxhKXtyZXR1cm4gTGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIExsKCl7cmV0dXJuIExsPXAoQi5tYXJrKChmdW5jdGlvbiBlKHQscixuLG8saSxhLHMpe3ZhciB1LGM7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHU9ZnIodCwicGFzc3dkIiksYz1mcihyLCJzYWx0IiksZS50MD1icixlLm5leHQ9NSxObCh1LGMsbixvLGksYSxzKTtjYXNlIDU6cmV0dXJuIGUudDE9ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLCgwLGUudDApKGUudDEpKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSksTGwuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGpsKGUsdCxyLG4sbyxpKXt2YXIgYT1mcihlLCJwYXNzd2QiKSxzPWZyKHQsInNhbHQiKTtyZXR1cm4gYnIoVWwoYSxzLHIsbixvLGkpKX1mdW5jdGlvbiB6bChlKXt2YXIgdD1mcihlLCJyYW5kb21CeXRlcyIpO3RbNl09MTUmdFs2XXw2NCx0WzhdPTYzJnRbOF18MTI4O3ZhciByPWJyKHQpO3JldHVybltyLnN1YnN0cmluZygyLDEwKSxyLnN1YnN0cmluZygxMCwxNCksci5zdWJzdHJpbmcoMTQsMTgpLHIuc3Vic3RyaW5nKDE4LDIyKSxyLnN1YnN0cmluZygyMiwzNCldLmpvaW4oIi0iKX1mdW5jdGlvbiAkbChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KHQpO3I8dDtyKyspbltyXT1lW3JdO3JldHVybiBufWZ1bmN0aW9uIFZsKGUpe3JldHVybiJzdHJpbmciIT10eXBlb2YgZXx8ZS5zdGFydHNXaXRoKCIweCIpfHwoZT0iMHgiK2UpLHByKGUpfWZ1bmN0aW9uIEdsKGUsdCl7Zm9yKGU9U3RyaW5nKGUpO2UubGVuZ3RoPHQ7KWU9IjAiK2U7cmV0dXJuIGV9ZnVuY3Rpb24gSGwoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1huKGUsIk5GS0MiKTpwcihlKX1mdW5jdGlvbiBLbChlLHQpe3ZhciByPXQubWF0Y2goL14oW2EtejAtOSRfLi1dKikoOihbYS16XSspKT8oISk/JC9pKTthcihudWxsIT1yLCJpbnZhbGlkIHBhdGgiLCJwYXRoIix0KTt2YXIgbixvPXJbMV0saT1yWzNdLGE9IiEiPT09cls0XSxzPWUsdT1mdW5jdGlvbihlLHQpe3ZhciByPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheShlKXx8KHI9ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuICRsKGUsdCk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09ciYmZS5jb25zdHJ1Y3RvciYmKHI9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXJ8fCJTZXQiPT09cj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/JGwoZSx0KTp2b2lkIDB9fShlKSl8fHQmJmUmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ImJihlPXIpO3ZhciBuPTAsbz1mdW5jdGlvbigpe307cmV0dXJue3M6byxuOmZ1bmN0aW9uKCl7cmV0dXJuIG4+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW24rK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6b319dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfXZhciBpLGE9ITAscz0hMTtyZXR1cm57czpmdW5jdGlvbigpe3I9ci5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIGE9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7cz0hMCxpPWV9LGY6ZnVuY3Rpb24oKXt0cnl7YXx8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IGl9fX19KG8udG9Mb3dlckNhc2UoKS5zcGxpdCgiLiIpKTt0cnl7Zm9yKHUucygpOyEobj11Lm4oKSkuZG9uZTspe3ZhciBjPW4udmFsdWU7aWYoQXJyYXkuaXNBcnJheShzKSl7aWYoIWMubWF0Y2goL15bMC05XSskLykpYnJlYWs7cz1zW3BhcnNlSW50KGMpXX1lbHNlIGlmKCJvYmplY3QiPT09aChzKSl7dmFyIGw9bnVsbDtmb3IodmFyIGQgaW4gcylpZihkLnRvTG93ZXJDYXNlKCk9PT1jKXtsPXNbZF07YnJlYWt9cz1sfWVsc2Ugcz1udWxsO2lmKG51bGw9PXMpYnJlYWt9fWNhdGNoKGUpe3UuZShlKX1maW5hbGx5e3UuZigpfWlmKGFyKCFhfHxudWxsIT1zLCJtaXNzaW5nIHJlcXVpcmVkIHZhbHVlIiwicGF0aCIsbyksaSYmbnVsbCE9cyl7aWYoImludCI9PT1pKXtpZigic3RyaW5nIj09dHlwZW9mIHMmJnMubWF0Y2goL14tP1swLTldKyQvKSlyZXR1cm4gcGFyc2VJbnQocyk7aWYoTnVtYmVyLmlzU2FmZUludGVnZXIocykpcmV0dXJuIHN9aWYoIm51bWJlciI9PT1pJiYic3RyaW5nIj09dHlwZW9mIHMmJnMubWF0Y2goL14tP1swLTkuXSokLykpcmV0dXJuIHBhcnNlRmxvYXQocyk7aWYoImRhdGEiPT09aSYmInN0cmluZyI9PXR5cGVvZiBzKXJldHVybiBWbChzKTtpZigiYXJyYXkiPT09aSYmQXJyYXkuaXNBcnJheShzKSlyZXR1cm4gcztpZihpPT09aChzKSlyZXR1cm4gczthcighMSwid3JvbmcgdHlwZSBmb3VuZCBmb3IgIi5jb25jYXQoaSwiICIpLCJwYXRoIixvKX1yZXR1cm4gc31EbC5fPV9sLERsLmxvY2s9ZnVuY3Rpb24oKXtGbD0hMH0sRGwucmVnaXN0ZXI9ZnVuY3Rpb24oZSl7aWYoRmwpdGhyb3cgbmV3IEVycm9yKCJzY3J5cHQgaXMgbG9ja2VkIik7Tmw9ZX0sT2JqZWN0LmZyZWV6ZShEbCksamwuXz1SbCxqbC5sb2NrPWZ1bmN0aW9uKCl7U2w9ITB9LGpsLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe2lmKFNsKXRocm93IG5ldyBFcnJvcigic2NyeXB0U3luYyBpcyBsb2NrZWQiKTtVbD1lfSxPYmplY3QuZnJlZXplKGpsKTt2YXIgWmw9Im0vNDQnLzYwJy8wJy8wLzAiO2Z1bmN0aW9uIHFsKGUpe3RyeXt2YXIgdD1KU09OLnBhcnNlKGUpO2lmKDM9PT0obnVsbCE9dC52ZXJzaW9uP3BhcnNlSW50KHQudmVyc2lvbik6MCkpcmV0dXJuITB9Y2F0Y2goZSl7fXJldHVybiExfWZ1bmN0aW9uIEpsKGUsdCl7dmFyIHI9ZnIodCksbj1LbChlLCJjcnlwdG8uY2lwaGVydGV4dDpkYXRhISIpO2FyKGJyKHdvKHZyKFtyLnNsaWNlKDE2LDMyKSxuXSkpKS5zdWJzdHJpbmcoMik9PT1LbChlLCJjcnlwdG8ubWFjOnN0cmluZyEiKS50b0xvd2VyQ2FzZSgpLCJpbmNvcnJlY3QgcGFzc3dvcmQiLCJwYXNzd29yZCIsIlsgUkVEQUNURUQgXSIpO3ZhciBvPWZ1bmN0aW9uKGUsdCxyKXtpZigiYWVzLTEyOC1jdHIiPT09S2woZSwiY3J5cHRvLmNpcGhlcjpzdHJpbmciKSl7dmFyIG49S2woZSwiY3J5cHRvLmNpcGhlcnBhcmFtcy5pdjpkYXRhISIpO3JldHVybiBicihuZXcgQ2wodCxuKS5kZWNyeXB0KHIpKX1pcighMSwidW5zdXBwb3J0ZWQgY2lwaGVyIiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiJkZWNyeXB0In0pfShlLHIuc2xpY2UoMCwxNiksbiksaT11YShvKTtpZihlLmFkZHJlc3Mpe3ZhciBhPWUuYWRkcmVzcy50b0xvd2VyQ2FzZSgpO2Euc3RhcnRzV2l0aCgiMHgiKXx8KGE9IjB4IithKSxhcihuaShhKT09PWksImtleXN0b3JlIGFkZHJlc3MvcHJpdmF0ZUtleSBtaXNtYXRjaCIsImFkZHJlc3MiLGUuYWRkcmVzcyl9dmFyIHM9e2FkZHJlc3M6aSxwcml2YXRlS2V5Om99O2lmKCIwLjEiPT09S2woZSwieC1ldGhlcnMudmVyc2lvbjpzdHJpbmciKSl7dmFyIHU9ci5zbGljZSgzMiw2NCksYz1LbChlLCJ4LWV0aGVycy5tbmVtb25pY0NpcGhlcnRleHQ6ZGF0YSEiKSxsPUtsKGUsIngtZXRoZXJzLm1uZW1vbmljQ291bnRlcjpkYXRhISIpLGQ9bmV3IENsKHUsbCk7cy5tbmVtb25pYz17cGF0aDpLbChlLCJ4LWV0aGVycy5wYXRoOnN0cmluZyIpfHxabCxsb2NhbGU6S2woZSwieC1ldGhlcnMubG9jYWxlOnN0cmluZyIpfHwiZW4iLGVudHJvcHk6YnIoZnIoZC5kZWNyeXB0KGMpKSl9fXJldHVybiBzfWZ1bmN0aW9uIFlsKGUpe3ZhciB0PUtsKGUsImNyeXB0by5rZGY6c3RyaW5nIik7aWYodCYmInN0cmluZyI9PXR5cGVvZiB0KXtpZigic2NyeXB0Ij09PXQudG9Mb3dlckNhc2UoKSl7dmFyIHI9S2woZSwiY3J5cHRvLmtkZnBhcmFtcy5zYWx0OmRhdGEhIiksbj1LbChlLCJjcnlwdG8ua2RmcGFyYW1zLm46aW50ISIpLG89S2woZSwiY3J5cHRvLmtkZnBhcmFtcy5yOmludCEiKSxpPUtsKGUsImNyeXB0by5rZGZwYXJhbXMucDppbnQhIik7YXIobj4wJiYwPT0obiZuLTEpLCJpbnZhbGlkIGtkZi5OIiwia2RmLk4iLG4pLGFyKG8+MCYmaT4wLCJpbnZhbGlkIGtkZiIsImtkZiIsdCk7dmFyIGE9S2woZSwiY3J5cHRvLmtkZnBhcmFtcy5ka2xlbjppbnQhIik7cmV0dXJuIGFyKDMyPT09YSwiaW52YWxpZCBrZGYuZGtsZW4iLCJrZGYuZGZsZW4iLGEpLHtuYW1lOiJzY3J5cHQiLHNhbHQ6cixOOm4scjpvLHA6aSxka0xlbjo2NH19aWYoInBia2RmMiI9PT10LnRvTG93ZXJDYXNlKCkpe3ZhciBzPUtsKGUsImNyeXB0by5rZGZwYXJhbXMuc2FsdDpkYXRhISIpLHU9S2woZSwiY3J5cHRvLmtkZnBhcmFtcy5wcmY6c3RyaW5nISIpLGM9dS5zcGxpdCgiLSIpLnBvcCgpO2FyKCJzaGEyNTYiPT09Y3x8InNoYTUxMiI9PT1jLCJpbnZhbGlkIGtkZi5wZGYiLCJrZGYucGRmIix1KTt2YXIgbD1LbChlLCJjcnlwdG8ua2RmcGFyYW1zLmM6aW50ISIpLGQ9S2woZSwiY3J5cHRvLmtkZnBhcmFtcy5ka2xlbjppbnQhIik7cmV0dXJuIGFyKDMyPT09ZCwiaW52YWxpZCBrZGYuZGtsZW4iLCJrZGYuZGtsZW4iLGQpLHtuYW1lOiJwYmtkZjIiLHNhbHQ6cyxjb3VudDpsLGRrTGVuOmQsYWxnb3JpdGhtOmN9fX1hcighMSwidW5zdXBwb3J0ZWQga2V5LWRlcml2YXRpb24gZnVuY3Rpb24iLCJrZGYiLHQpfWZ1bmN0aW9uIFhsKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0KCl9KSxlKX0pKX1mdW5jdGlvbiBRbChlLHQscil7cmV0dXJuIGVkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBlZCgpe3JldHVybiBlZD1wKEIubWFyaygoZnVuY3Rpb24gZSh0LHIsbil7dmFyIG8saSxhLHMsdSxjLGwsZCxmLHAsaCxnLHksYjtyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihvPUpTT04ucGFyc2UodCksaT1IbChyKSwicGJrZGYyIiE9PShhPVlsKG8pKS5uYW1lKXtlLm5leHQ9MTU7YnJlYWt9aWYoIW4pe2UubmV4dD04O2JyZWFrfXJldHVybiBuKDApLGUubmV4dD04LFhsKDApO2Nhc2UgODppZihzPWEuc2FsdCx1PWEuY291bnQsYz1hLmRrTGVuLGw9YS5hbGdvcml0aG0sZD1xbihpLHMsdSxjLGwpLCFuKXtlLm5leHQ9MTQ7YnJlYWt9cmV0dXJuIG4oMSksZS5uZXh0PTE0LFhsKDApO2Nhc2UgMTQ6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLEpsKG8sZCkpO2Nhc2UgMTU6cmV0dXJuIGlyKCJzY3J5cHQiPT09YS5uYW1lLCJjYW5ub3QgYmUgcmVhY2hlZCIsIlVOS05PV05fRVJST1IiLHtwYXJhbXM6YX0pLGY9YS5zYWx0LHA9YS5OLGg9YS5yLGc9YS5wLHk9YS5ka0xlbixlLm5leHQ9MTksRGwoaSxmLHAsaCxnLHksbik7Y2FzZSAxOTpyZXR1cm4gYj1lLnNlbnQsZS5hYnJ1cHQoInJldHVybiIsSmwobyxiKSk7Y2FzZSAyMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKSxlZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdGQoZSl7dmFyIHQ9bnVsbCE9ZS5zYWx0P2ZyKGUuc2FsdCwib3B0aW9ucy5zYWx0Iik6TGMoMzIpLHI9MTw8MTcsbj04LG89MTtyZXR1cm4gZS5zY3J5cHQmJihlLnNjcnlwdC5OJiYocj1lLnNjcnlwdC5OKSxlLnNjcnlwdC5yJiYobj1lLnNjcnlwdC5yKSxlLnNjcnlwdC5wJiYobz1lLnNjcnlwdC5wKSksYXIoIm51bWJlciI9PXR5cGVvZiByJiZyPjAmJk51bWJlci5pc1NhZmVJbnRlZ2VyKHIpJiYoQmlnSW50KHIpJkJpZ0ludChyLTEpKT09PUJpZ0ludCgwKSwiaW52YWxpZCBzY3J5cHQgTiBwYXJhbWV0ZXIiLCJvcHRpb25zLk4iLHIpLGFyKCJudW1iZXIiPT10eXBlb2YgbiYmbj4wJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihuKSwiaW52YWxpZCBzY3J5cHQgciBwYXJhbWV0ZXIiLCJvcHRpb25zLnIiLG4pLGFyKCJudW1iZXIiPT10eXBlb2YgbyYmbz4wJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihvKSwiaW52YWxpZCBzY3J5cHQgcCBwYXJhbWV0ZXIiLCJvcHRpb25zLnAiLG8pLHtuYW1lOiJzY3J5cHQiLGRrTGVuOjMyLHNhbHQ6dCxOOnIscjpuLHA6b319ZnVuY3Rpb24gcmQoZSx0LHIsbil7dmFyIG89ZnIoci5wcml2YXRlS2V5LCJwcml2YXRlS2V5IiksaT1udWxsIT1uLml2P2ZyKG4uaXYsIm9wdGlvbnMuaXYiKTpMYygxNik7YXIoMTY9PT1pLmxlbmd0aCwiaW52YWxpZCBvcHRpb25zLml2IGxlbmd0aCIsIm9wdGlvbnMuaXYiLG4uaXYpO3ZhciBhPW51bGwhPW4udXVpZD9mcihuLnV1aWQsIm9wdGlvbnMudXVpZCIpOkxjKDE2KTthcigxNj09PWEubGVuZ3RoLCJpbnZhbGlkIG9wdGlvbnMudXVpZCBsZW5ndGgiLCJvcHRpb25zLnV1aWQiLG4uaXYpO3ZhciBzPWUuc2xpY2UoMCwxNiksdT1lLnNsaWNlKDE2LDMyKSxjPWZyKG5ldyBDbChzLGkpLmVuY3J5cHQobykpLGw9d28odnIoW3UsY10pKSxkPXthZGRyZXNzOnIuYWRkcmVzcy5zdWJzdHJpbmcoMikudG9Mb3dlckNhc2UoKSxpZDp6bChhKSx2ZXJzaW9uOjMsQ3J5cHRvOntjaXBoZXI6ImFlcy0xMjgtY3RyIixjaXBoZXJwYXJhbXM6e2l2OmJyKGkpLnN1YnN0cmluZygyKX0sY2lwaGVydGV4dDpicihjKS5zdWJzdHJpbmcoMiksa2RmOiJzY3J5cHQiLGtkZnBhcmFtczp7c2FsdDpicih0LnNhbHQpLnN1YnN0cmluZygyKSxuOnQuTixka2xlbjozMixwOnQucCxyOnQucn0sbWFjOmwuc3Vic3RyaW5nKDIpfX07aWYoci5tbmVtb25pYyl7dmFyIGY9bnVsbCE9bi5jbGllbnQ/bi5jbGllbnQ6ImV0aGVycy8iLmNvbmNhdChZdCkscD1yLm1uZW1vbmljLnBhdGh8fFpsLGg9ci5tbmVtb25pYy5sb2NhbGV8fCJlbiIsZz1lLnNsaWNlKDMyLDY0KSx5PWZyKHIubW5lbW9uaWMuZW50cm9weSwiYWNjb3VudC5tbmVtb25pYy5lbnRyb3B5IiksYj1MYygxNiksdj1mcihuZXcgQ2woZyxiKS5lbmNyeXB0KHkpKSxtPW5ldyBEYXRlLFQ9IlVUQy0tIittLmdldFVUQ0Z1bGxZZWFyKCkrIi0iK0dsKG0uZ2V0VVRDTW9udGgoKSsxLDIpKyItIitHbChtLmdldFVUQ0RhdGUoKSwyKSsiVCIrR2wobS5nZXRVVENIb3VycygpLDIpKyItIitHbChtLmdldFVUQ01pbnV0ZXMoKSwyKSsiLSIrR2wobS5nZXRVVENTZWNvbmRzKCksMikrIi4wWi0tIitkLmFkZHJlc3M7ZFsieC1ldGhlcnMiXT17Y2xpZW50OmYsZ2V0aEZpbGVuYW1lOlQscGF0aDpwLGxvY2FsZTpoLG1uZW1vbmljQ291bnRlcjpicihiKS5zdWJzdHJpbmcoMiksbW5lbW9uaWNDaXBoZXJ0ZXh0OmJyKHYpLnN1YnN0cmluZygyKSx2ZXJzaW9uOiIwLjEifX1yZXR1cm4gSlNPTi5zdHJpbmdpZnkoZCl9ZnVuY3Rpb24gbmQoZSx0LHIpe251bGw9PXImJihyPXt9KTt2YXIgbj1IbCh0KSxvPXRkKHIpO3JldHVybiByZChmcihqbChuLG8uc2FsdCxvLk4sby5yLG8ucCw2NCkpLG8sZSxyKX1mdW5jdGlvbiBvZChlLHQscil7cmV0dXJuIGlkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpZCgpe3JldHVybihpZD1wKEIubWFyaygoZnVuY3Rpb24gZSh0LHIsbil7dmFyIG8saSxhO3JldHVybiBCLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBudWxsPT1uJiYobj17fSksbz1IbChyKSxpPXRkKG4pLGUubmV4dD01LERsKG8saS5zYWx0LGkuTixpLnIsaS5wLDY0LG4ucHJvZ3Jlc3NDYWxsYmFjayk7Y2FzZSA1OnJldHVybiBhPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixyZChmcihhKSxpLHQsbikpO2Nhc2UgNzpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGFkKGUpe3ZhciB0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuPVAoZSk7aWYodCl7dmFyIG89UCh0aGlzKS5jb25zdHJ1Y3RvcjtyPVJlZmxlY3QuY29uc3RydWN0KG4sYXJndW1lbnRzLG8pfWVsc2Ugcj1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gQSh0aGlzLHIpfX1mdW5jdGlvbiBzZChlLHQscil7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoZSE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBzdGF0aWMgYWNjZXNzIG9mIHdyb25nIHByb3ZlbmFuY2UiKX0oZSx0KSxyfWZ1bmN0aW9uIHVkKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfXZhciBjZD0ibS80NCcvNjAnLzAnLzAvMCIsbGQ9bmV3IFVpbnQ4QXJyYXkoWzY2LDEwNSwxMTYsOTksMTExLDEwNSwxMTAsMzIsMTE1LDEwMSwxMDEsMTAwXSksZGQ9MjE0NzQ4MzY0OCxmZD1CaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmViYWFlZGNlNmFmNDhhMDNiYmZkMjVlOGNkMDM2NDE0MSIpLHBkPSIwMTIzNDU2Nzg5YWJjZGVmIjtmdW5jdGlvbiBoZChlLHQpe2Zvcih2YXIgcj0iIjtlOylyPXBkW2UlMTZdK3IsZT1NYXRoLnRydW5jKGUvMTYpO2Zvcig7ci5sZW5ndGg8Mip0OylyPSIwIityO3JldHVybiIweCIrcn1mdW5jdGlvbiBnZChlKXt2YXIgdD1mcihlKTtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXhyKGZyKGUpKSxyPSIiO3Q7KXI9amNbTnVtYmVyKHQlWmMpXStyLHQvPVpjO3JldHVybiByfSh2cihbdCxUcihWbihWbih0KSksMCw0KV0pKX12YXIgeWQ9e307ZnVuY3Rpb24gYmQoZSx0LHIsbil7dmFyIG89bmV3IFVpbnQ4QXJyYXkoMzcpO2UmZGQ/KGlyKG51bGwhPW4sImNhbm5vdCBkZXJpdmUgY2hpbGQgb2YgbmV1dGVyZWQgbm9kZSIsIlVOU1VQUE9SVEVEX09QRVJBVElPTiIse29wZXJhdGlvbjoiZGVyaXZlQ2hpbGQifSksby5zZXQoZnIobiksMSkpOm8uc2V0KGZyKHIpKTtmb3IodmFyIGk9MjQ7aT49MDtpLT04KW9bMzMrKGk+PjMpXT1lPj4yNC1pJjI1NTt2YXIgYT1mcihabygic2hhNTEyIix0LG8pKTtyZXR1cm57SUw6YS5zbGljZSgwLDMyKSxJUjphLnNsaWNlKDMyKX19ZnVuY3Rpb24gdmQoZSx0KXt2YXIgcj10LnNwbGl0KCIvIik7YXIoci5sZW5ndGg+MCYmKCJtIj09PXJbMF18fGUuZGVwdGg+MCksImludmFsaWQgcGF0aCIsInBhdGgiLHQpLCJtIj09PXJbMF0mJnIuc2hpZnQoKTtmb3IodmFyIG49ZSxvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBpPXJbb107aWYoaS5tYXRjaCgvXlswLTldKyckLykpe3ZhciBhPXBhcnNlSW50KGkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMSkpO2FyKGE8ZGQsImludmFsaWQgcGF0aCBpbmRleCIsInBhdGhbIi5jb25jYXQobywiXSIpLGkpLG49bi5kZXJpdmVDaGlsZChkZCthKX1lbHNlIGlmKGkubWF0Y2goL15bMC05XSskLykpe3ZhciBzPXBhcnNlSW50KGkpO2FyKHM8ZGQsImludmFsaWQgcGF0aCBpbmRleCIsInBhdGhbIi5jb25jYXQobywiXSIpLGkpLG49bi5kZXJpdmVDaGlsZChzKX1lbHNlIGFyKCExLCJpbnZhbGlkIHBhdGggY29tcG9uZW50IiwicGF0aFsiLmNvbmNhdChvLCJdIiksaSl9cmV0dXJuIG59dmFyIG1kPW5ldyBXZWFrU2V0LFRkPWZ1bmN0aW9uKGUpe3cobixlKTt2YXIgdCxyPWFkKG4pO2Z1bmN0aW9uIG4oZSx0LG8saSxhLHMsdSxjLGwpe3ZhciBkLGYscDtnKHRoaXMsbiksZnVuY3Rpb24oZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfShmPW0oZD1yLmNhbGwodGhpcyx0LGwpKSxwPW1kKSxwLmFkZChmKSxXKG0oZCksInB1YmxpY0tleSIsdm9pZCAwKSxXKG0oZCksImZpbmdlcnByaW50Iix2b2lkIDApLFcobShkKSwicGFyZW50RmluZ2VycHJpbnQiLHZvaWQgMCksVyhtKGQpLCJtbmVtb25pYyIsdm9pZCAwKSxXKG0oZCksImNoYWluQ29kZSIsdm9pZCAwKSxXKG0oZCksInBhdGgiLHZvaWQgMCksVyhtKGQpLCJpbmRleCIsdm9pZCAwKSxXKG0oZCksImRlcHRoIix2b2lkIDApLGxyKGUseWQsIkhETm9kZVdhbGxldCIpLHRyKG0oZCkse3B1YmxpY0tleTp0LmNvbXByZXNzZWRQdWJsaWNLZXl9KTt2YXIgaD1UcihSYyhWbihkLnB1YmxpY0tleSkpLDAsNCk7cmV0dXJuIHRyKG0oZCkse3BhcmVudEZpbmdlcnByaW50Om8sZmluZ2VycHJpbnQ6aCxjaGFpbkNvZGU6aSxwYXRoOmEsaW5kZXg6cyxkZXB0aDp1fSksdHIobShkKSx7bW5lbW9uaWM6Y30pLGR9cmV0dXJuIHYobixbe2tleToiY29ubmVjdCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBuKHlkLHRoaXMuc2lnbmluZ0tleSx0aGlzLnBhcmVudEZpbmdlcnByaW50LHRoaXMuY2hhaW5Db2RlLHRoaXMucGF0aCx0aGlzLmluZGV4LHRoaXMuZGVwdGgsdGhpcy5tbmVtb25pYyxlKX19LHtrZXk6ImVuY3J5cHQiLHZhbHVlOih0PXAoQi5tYXJrKChmdW5jdGlvbiBlKHQscil7cmV0dXJuIEIud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0yLG9kKHVkKHRoaXMsbWQsd2QpLmNhbGwodGhpcyksdCx7cHJvZ3Jlc3NDYWxsYmFjazpyfSk7Y2FzZSAyOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixlLnNlbnQpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUscil7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImVuY3J5cHRTeW5jIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmQodWQodGhpcyxtZCx3ZCkuY2FsbCh0aGlzKSxlKX19LHtrZXk6ImV4dGVuZGVkS2V5IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaXIodGhpcy5kZXB0aDwyNTYsIkRlcHRoIHRvbyBkZWVwIiwiVU5TVVBQT1JURURfT1BFUkFUSU9OIix7b3BlcmF0aW9uOiJleHRlbmRlZEtleSJ9KSxnZCh2cihbIjB4MDQ4OEFERTQiLGhkKHRoaXMuZGVwdGgsMSksdGhpcy5wYXJlbnRGaW5nZXJwcmludCxoZCh0aGlzLmluZGV4LDQpLHRoaXMuY2hhaW5Db2RlLHZyKFsiMHgwMCIsdGhpcy5wcml2YXRlS2V5XSldKSl9fSx7a2V5OiJoYXNQYXRoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBudWxsIT10aGlzLnBhdGh9fSx7a2V5OiJuZXV0ZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQZCh5ZCx0aGlzLmFkZHJlc3MsdGhpcy5wdWJsaWNLZXksdGhpcy5wYXJlbnRGaW5nZXJwcmludCx0aGlzLmNoYWluQ29kZSx0aGlzLnBhdGgsdGhpcy5pbmRleCx0aGlzLmRlcHRoLHRoaXMucHJvdmlkZXIpfX0se2tleToiZGVyaXZlQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PVNyKGUsImluZGV4Iik7YXIodDw9NDI5NDk2NzI5NSwiaW52YWxpZCBpbmRleCIsImluZGV4Iix0KTt2YXIgcj10aGlzLnBhdGg7ciYmKHIrPSIvIisodCZ+ZGQpLHQmZGQmJihyKz0iJyIpKTt2YXIgbz1iZCh0LHRoaXMuY2hhaW5Db2RlLHRoaXMucHVibGljS2V5LHRoaXMucHJpdmF0ZUtleSksaT1vLklSLGE9by5JTCxzPW5ldyBzYShGcigoeHIoYSkrQmlnSW50KHRoaXMucHJpdmF0ZUtleSkpJWZkLDMyKSk7cmV0dXJuIG5ldyBuKHlkLHMsdGhpcy5maW5nZXJwcmludCxicihpKSxyLHQsdGhpcy5kZXB0aCsxLHRoaXMubW5lbW9uaWMsdGhpcy5wcm92aWRlcil9fSx7a2V5OiJkZXJpdmVQYXRoIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdmQodGhpcyxlKX19XSxbe2tleToiZnJvbUV4dGVuZGVkS2V5Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1fcihmdW5jdGlvbihlKXtmb3IodmFyIHQ9S2Mscj0wO3I8ZS5sZW5ndGg7cisrKXQqPVpjLHQrPSRjKGVbcl0pO3JldHVybiB0fShlKSk7YXIoODI9PT10Lmxlbmd0aHx8Z2QodC5zbGljZSgwLDc4KSk9PT1lLCJpbnZhbGlkIGV4dGVuZGVkIGtleSIsImV4dGVuZGVkS2V5IiwiWyBSRURBQ1RFRCBdIik7dmFyIHI9dFs0XSxvPWJyKHQuc2xpY2UoNSw5KSksaT1wYXJzZUludChicih0LnNsaWNlKDksMTMpKS5zdWJzdHJpbmcoMiksMTYpLGE9YnIodC5zbGljZSgxMyw0NSkpLHM9dC5zbGljZSg0NSw3OCk7c3dpdGNoKGJyKHQuc2xpY2UoMCw0KSkpe2Nhc2UiMHgwNDg4YjIxZSI6Y2FzZSIweDA0MzU4N2NmIjp2YXIgdT1icihzKTtyZXR1cm4gbmV3IFBkKHlkLHVhKHUpLHUsbyxhLG51bGwsaSxyLG51bGwpO2Nhc2UiMHgwNDg4YWRlNCI6Y2FzZSIweDA0MzU4Mzk0ICI6aWYoMCE9PXNbMF0pYnJlYWs7cmV0dXJuIG5ldyBuKHlkLG5ldyBzYShzLnNsaWNlKDEpKSxvLGEsbnVsbCxpLHIsbnVsbCxudWxsKX1hcighMSwiaW52YWxpZCBleHRlbmRlZCBrZXkgcHJlZml4IiwiZXh0ZW5kZWRLZXkiLCJbIFJFREFDVEVEIF0iKX19LHtrZXk6ImNyZWF0ZVJhbmRvbSIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIpe251bGw9PWUmJihlPSIiKSxudWxsPT10JiYodD1jZCksbnVsbD09ciYmKHI9RG8ud29yZGxpc3QoKSk7dmFyIG89Vm8uZnJvbUVudHJvcHkoTGMoMTYpLGUscik7cmV0dXJuIHNkKG4sbixBZCkuY2FsbChuLG8uY29tcHV0ZVNlZWQoKSxvKS5kZXJpdmVQYXRoKHQpfX0se2tleToiZnJvbU1uZW1vbmljIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0fHwodD1jZCksc2QobixuLEFkKS5jYWxsKG4sZS5jb21wdXRlU2VlZCgpLGUpLmRlcml2ZVBhdGgodCl9fSx7a2V5OiJmcm9tUGhyYXNlIix2YWx1ZTpmdW5jdGlvbihlLHQscixvKXtudWxsPT10JiYodD0iIiksbnVsbD09ciYmKHI9Y2QpLG51bGw9PW8mJihvPURvLndvcmRsaXN0KCkpO3ZhciBpPVZvLmZyb21QaHJhc2UoZSx0LG8pO3JldHVybiBzZChuLG4sQWQpLmNhbGwobixpLmNvbXB1dGVTZWVkKCksaSkuZGVyaXZlUGF0aChyKX19LHtrZXk6ImZyb21TZWVkIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gc2QobixuLEFkKS5jYWxsKG4sZSxudWxsKX19XSksbn0oYmMpO2Z1bmN0aW9uIHdkKCl7dmFyIGU9e2FkZHJlc3M6dGhpcy5hZGRyZXNzLHByaXZhdGVLZXk6dGhpcy5wcml2YXRlS2V5fSx0PXRoaXMubW5lbW9uaWM7cmV0dXJuIHRoaXMucGF0aCYmdCYmImVuIj09PXQud29yZGxpc3QubG9jYWxlJiYiIj09PXQucGFzc3dvcmQmJihlLm1uZW1vbmljPXtwYXRoOnRoaXMucGF0aCxsb2NhbGU6ImVuIixlbnRyb3B5OnQuZW50cm9weX0pLGV9ZnVuY3Rpb24gQWQoZSx0KXthcihncihlKSwiaW52YWxpZCBzZWVkIiwic2VlZCIsIltSRURBQ1RFRF0iKTt2YXIgcj1mcihlLCJzZWVkIik7YXIoci5sZW5ndGg+PTE2JiZyLmxlbmd0aDw9NjQsImludmFsaWQgc2VlZCIsInNlZWQiLCJbUkVEQUNURURdIik7dmFyIG49ZnIoWm8oInNoYTUxMiIsbGQscikpLG89bmV3IHNhKGJyKG4uc2xpY2UoMCwzMikpKTtyZXR1cm4gbmV3IFRkKHlkLG8sIjB4MDAwMDAwMDAiLGJyKG4uc2xpY2UoMzIpKSwibSIsMCwwLHQsbnVsbCl9dmFyIFBkPWZ1bmN0aW9uKGUpe3cocixlKTt2YXIgdD1hZChyKTtmdW5jdGlvbiByKGUsbixvLGksYSxzLHUsYyxsKXt2YXIgZDtnKHRoaXMsciksVyhtKGQ9dC5jYWxsKHRoaXMsbixsKSksInB1YmxpY0tleSIsdm9pZCAwKSxXKG0oZCksImZpbmdlcnByaW50Iix2b2lkIDApLFcobShkKSwicGFyZW50RmluZ2VycHJpbnQiLHZvaWQgMCksVyhtKGQpLCJjaGFpbkNvZGUiLHZvaWQgMCksVyhtKGQpLCJwYXRoIix2b2lkIDApLFcobShkKSwiaW5kZXgiLHZvaWQgMCksVyhtKGQpLCJkZXB0aCIsdm9pZCAwKSxscihlLHlkLCJIRE5vZGVWb2lkV2FsbGV0IiksdHIobShkKSx7cHVibGljS2V5Om99KTt2YXIgZj1UcihSYyhWbihvKSksMCw0KTtyZXR1cm4gdHIobShkKSx7cHVibGljS2V5Om8sZmluZ2VycHJpbnQ6ZixwYXJlbnRGaW5nZXJwcmludDppLGNoYWluQ29kZTphLHBhdGg6cyxpbmRleDp1LGRlcHRoOmN9KSxkfXJldHVybiB2KHIsW3trZXk6ImNvbm5lY3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgcih5ZCx0aGlzLmFkZHJlc3MsdGhpcy5wdWJsaWNLZXksdGhpcy5wYXJlbnRGaW5nZXJwcmludCx0aGlzLmNoYWluQ29kZSx0aGlzLnBhdGgsdGhpcy5pbmRleCx0aGlzLmRlcHRoLGUpfX0se2tleToiZXh0ZW5kZWRLZXkiLGdldDpmdW5jdGlvbigpe3JldHVybiBpcih0aGlzLmRlcHRoPDI1NiwiRGVwdGggdG9vIGRlZXAiLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246ImV4dGVuZGVkS2V5In0pLGdkKHZyKFsiMHgwNDg4QjIxRSIsaGQodGhpcy5kZXB0aCwxKSx0aGlzLnBhcmVudEZpbmdlcnByaW50LGhkKHRoaXMuaW5kZXgsNCksdGhpcy5jaGFpbkNvZGUsdGhpcy5wdWJsaWNLZXldKSl9fSx7a2V5OiJoYXNQYXRoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBudWxsIT10aGlzLnBhdGh9fSx7a2V5OiJkZXJpdmVDaGlsZCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9U3IoZSwiaW5kZXgiKTthcih0PD00Mjk0OTY3Mjk1LCJpbnZhbGlkIGluZGV4IiwiaW5kZXgiLHQpO3ZhciBuPXRoaXMucGF0aDtuJiYobis9Ii8iKyh0Jn5kZCksdCZkZCYmKG4rPSInIikpO3ZhciBvPWJkKHQsdGhpcy5jaGFpbkNvZGUsdGhpcy5wdWJsaWNLZXksbnVsbCksaT1vLklSLGE9by5JTCxzPXNhLmFkZFBvaW50cyhhLHRoaXMucHVibGljS2V5LCEwKSx1PXVhKHMpO3JldHVybiBuZXcgcih5ZCx1LHMsdGhpcy5maW5nZXJwcmludCxicihpKSxuLHQsdGhpcy5kZXB0aCsxLHRoaXMucHJvdmlkZXIpfX0se2tleToiZGVyaXZlUGF0aCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZkKHRoaXMsZSl9fV0pLHJ9KGhjKTtmdW5jdGlvbiBXZChlKXt0cnl7aWYoSlNPTi5wYXJzZShlKS5lbmNzZWVkKXJldHVybiEwfWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBCZChlLHQpe3ZhciByPUpTT04ucGFyc2UoZSksbj1IbCh0KSxvPW5pKEtsKHIsImV0aGFkZHI6c3RyaW5nISIpKSxpPVZsKEtsKHIsImVuY3NlZWQ6c3RyaW5nISIpKTthcihpJiZpLmxlbmd0aCUxNj09MCwiaW52YWxpZCBlbmNzZWVkIiwianNvbiIsZSk7Zm9yKHZhciBhPWZyKHFuKG4sbiwyZTMsMzIsInNoYTI1NiIpKS5zbGljZSgwLDE2KSxzPWkuc2xpY2UoMCwxNiksdT1pLnNsaWNlKDE2KSxjPWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPDE2KXRocm93IG5ldyBUeXBlRXJyb3IoIlBLQ1MjNyBpbnZhbGlkIGxlbmd0aCIpO2NvbnN0IHQ9ZVtlLmxlbmd0aC0xXTtpZih0PjE2KXRocm93IG5ldyBUeXBlRXJyb3IoIlBLQ1MjNyBwYWRkaW5nIGJ5dGUgb3V0IG9mIHJhbmdlIik7Y29uc3Qgcj1lLmxlbmd0aC10O2ZvcihsZXQgbj0wO248dDtuKyspaWYoZVtyK25dIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJQS0NTIzcgaW52YWxpZCBwYWRkaW5nIGJ5dGUiKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZS5zdWJhcnJheSgwLHIpKX0oZnIobmV3IFRsKGEscykuZGVjcnlwdCh1KSkpLGw9IiIsZD0wO2Q8Yy5sZW5ndGg7ZCsrKWwrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1tkXSk7cmV0dXJue2FkZHJlc3M6byxwcml2YXRlS2V5OkFvKGwpfX1mdW5jdGlvbiBDZChlLHQscil7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoZSE9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBzdGF0aWMgYWNjZXNzIG9mIHdyb25nIHByb3ZlbmFuY2UiKX0oZSx0KSxyfWZ1bmN0aW9uIEVkKGUpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCl7c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0KCl9KSxlKX0pKX12YXIgTWQ9ZnVuY3Rpb24oZSl7dyhhLGUpO3ZhciB0LHIsbixvLGk9KG49YSxvPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKGUpe3JldHVybiExfX0oKSxmdW5jdGlvbigpe3ZhciBlLHQ9UChuKTtpZihvKXt2YXIgcj1QKHRoaXMpLmNvbnN0cnVjdG9yO2U9UmVmbGVjdC5jb25zdHJ1Y3QodCxhcmd1bWVudHMscil9ZWxzZSBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBKHRoaXMsZSl9KTtmdW5jdGlvbiBhKGUsdCl7Zyh0aGlzLGEpLCJzdHJpbmciIT10eXBlb2YgZXx8ZS5zdGFydHNXaXRoKCIweCIpfHwoZT0iMHgiK2UpO3ZhciByPSJzdHJpbmciPT10eXBlb2YgZT9uZXcgc2EoZSk6ZTtyZXR1cm4gaS5jYWxsKHRoaXMscix0KX1yZXR1cm4gdihhLFt7a2V5OiJjb25uZWN0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IGEodGhpcy5zaWduaW5nS2V5LGUpfX0se2tleToiZW5jcnlwdCIsdmFsdWU6KHI9cChCLm1hcmsoKGZ1bmN0aW9uIGUodCxyKXt2YXIgbjtyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj17YWRkcmVzczp0aGlzLmFkZHJlc3MscHJpdmF0ZUtleTp0aGlzLnByaXZhdGVLZXl9LGUubmV4dD0zLG9kKG4sdCx7cHJvZ3Jlc3NDYWxsYmFjazpyfSk7Y2FzZSAzOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixlLnNlbnQpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImVuY3J5cHRTeW5jIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gbmQoe2FkZHJlc3M6dGhpcy5hZGRyZXNzLHByaXZhdGVLZXk6dGhpcy5wcml2YXRlS2V5fSxlKX19XSxbe2tleToiZnJvbUVuY3J5cHRlZEpzb24iLHZhbHVlOih0PXAoQi5tYXJrKChmdW5jdGlvbiBlKHQscixuKXt2YXIgbztyZXR1cm4gQi53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihvPW51bGwsIXFsKHQpKXtlLm5leHQ9NzticmVha31yZXR1cm4gZS5uZXh0PTQsUWwodCxyLG4pO2Nhc2UgNDpvPWUuc2VudCxlLm5leHQ9MTc7YnJlYWs7Y2FzZSA3OmlmKCFXZCh0KSl7ZS5uZXh0PTE3O2JyZWFrfWlmKCFuKXtlLm5leHQ9MTI7YnJlYWt9cmV0dXJuIG4oMCksZS5uZXh0PTEyLEVkKDApO2Nhc2UgMTI6aWYobz1CZCh0LHIpLCFuKXtlLm5leHQ9MTc7YnJlYWt9cmV0dXJuIG4oMSksZS5uZXh0PTE3LEVkKDApO2Nhc2UgMTc6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLENkKGEsYSxrZCkuY2FsbChhLG8pKTtjYXNlIDE4OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpLGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZnJvbUVuY3J5cHRlZEpzb25TeW5jIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPW51bGw7cmV0dXJuIHFsKGUpP3I9ZnVuY3Rpb24oZSx0KXt2YXIgcj1KU09OLnBhcnNlKGUpLG49SGwodCksbz1ZbChyKTtyZXR1cm4icGJrZGYyIj09PW8ubmFtZT9KbChyLHFuKG4sby5zYWx0LG8uY291bnQsby5ka0xlbixvLmFsZ29yaXRobSkpOihpcigic2NyeXB0Ij09PW8ubmFtZSwiY2Fubm90IGJlIHJlYWNoZWQiLCJVTktOT1dOX0VSUk9SIix7cGFyYW1zOm99KSxKbChyLGpsKG4sby5zYWx0LG8uTixvLnIsby5wLG8uZGtMZW4pKSl9KGUsdCk6V2QoZSk/cj1CZChlLHQpOmFyKCExLCJpbnZhbGlkIEpTT04gd2FsbGV0IiwianNvbiIsIlsgUkVEQUNURUQgXSIpLENkKGEsYSxrZCkuY2FsbChhLHIpfX0se2tleToiY3JlYXRlUmFuZG9tIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1UZC5jcmVhdGVSYW5kb20oKTtyZXR1cm4gZT90LmNvbm5lY3QoZSk6dH19LHtrZXk6ImZyb21QaHJhc2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9VGQuZnJvbVBocmFzZShlKTtyZXR1cm4gdD9yLmNvbm5lY3QodCk6cn19XSksYX0oYmMpO2Z1bmN0aW9uIGtkKGUpe2lmKGFyKGUsImludmFsaWQgSlNPTiB3YWxsZXQiLCJqc29uIiwiWyBSRURBQ1RFRCBdIiksIm1uZW1vbmljImluIGUmJmUubW5lbW9uaWMmJiJlbiI9PT1lLm1uZW1vbmljLmxvY2FsZSl7dmFyIHQ9Vm8uZnJvbUVudHJvcHkoZS5tbmVtb25pYy5lbnRyb3B5KSxyPVRkLmZyb21NbmVtb25pYyh0LGUubW5lbW9uaWMucGF0aCk7aWYoci5hZGRyZXNzPT09ZS5hZGRyZXNzJiZyLnByaXZhdGVLZXk9PT1lLnByaXZhdGVLZXkpcmV0dXJuIHI7Y29uc29sZS5sb2coIldBUk5JTkc6IEpTT04gbWlzbWF0Y2ggYWRkcmVzcy9wcml2YXRlS2V5ICE9IG1uZW1vbmljOyBmYWxsYmFjayBvbnRvIHByaXZhdGUga2V5Iil9dmFyIG49bmV3IE1kKGUucHJpdmF0ZUtleSk7cmV0dXJuIGFyKG4uYWRkcmVzcz09PWUuYWRkcmVzcywiYWRkcmVzcy9wcml2YXRlS2V5IG1pc21hdGNoIiwianNvbiIsIlsgUkVEQUNURUQgXSIpLG59dmFyIElkPXtlbjpEby53b3JkbGlzdCgpfTtmdW5jdGlvbiBPZChlKXt2YXIgdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbj1QKGUpO2lmKHQpe3ZhciBvPVAodGhpcykuY29uc3RydWN0b3I7cj1SZWZsZWN0LmNvbnN0cnVjdChuLGFyZ3VtZW50cyxvKX1lbHNlIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEEodGhpcyxyKX19ZnVuY3Rpb24geGQoZSx0KXtGZChlLHQpLHQuYWRkKGUpfWZ1bmN0aW9uIFNkKGUsdCxyKXtGZChlLHQpLHQuc2V0KGUscil9ZnVuY3Rpb24gRmQoZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIF9kKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfWZ1bmN0aW9uIFJkKGUpe3ZhciB0PW5ldyBTZXQ7cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuYWRkKGUpfSkpLE9iamVjdC5mcmVlemUodCl9dmFyIE5kPSJjb25zdGFudCBleHRlcm5hbCBpbnRlcm5hbCBwYXlhYmxlIHByaXZhdGUgcHVibGljIHB1cmUgdmlldyIsVWQ9UmQoTmQuc3BsaXQoIiAiKSksRGQ9ImNvbnN0cnVjdG9yIGVycm9yIGV2ZW50IGZhbGxiYWNrIGZ1bmN0aW9uIHJlY2VpdmUgc3RydWN0IixMZD1SZChEZC5zcGxpdCgiICIpKSxqZD0iY2FsbGRhdGEgbWVtb3J5IHN0b3JhZ2UgcGF5YWJsZSBpbmRleGVkIix6ZD1SZChqZC5zcGxpdCgiICIpKSwkZD1SZChbRGQsamQsInR1cGxlIHJldHVybnMiLE5kXS5qb2luKCIgIikuc3BsaXQoIiAiKSksVmQ9eyIoIjoiT1BFTl9QQVJFTiIsIikiOiJDTE9TRV9QQVJFTiIsIlsiOiJPUEVOX0JSQUNLRVQiLCJdIjoiQ0xPU0VfQlJBQ0tFVCIsIiwiOiJDT01NQSIsIkAiOiJBVCJ9LEdkPW5ldyBSZWdFeHAoIl4oXFxzKikiKSxIZD1uZXcgUmVnRXhwKCJeKFswLTldKykiKSxLZD1uZXcgUmVnRXhwKCJeKFthLXpBLVokX11bYS16QS1aMC05JF9dKikiKSxaZD1uZXcgUmVnRXhwKCJeKFthLXpBLVokX11bYS16QS1aMC05JF9dKikkIikscWQ9bmV3IFJlZ0V4cCgiXih0cmNUb2tlbnxhZGRyZXNzfGJvb2x8Ynl0ZXMoWzAtOV0qKXxzdHJpbmd8dT9pbnQoWzAtOV0qKSkkIiksSmQ9bmV3IFdlYWtNYXAsWWQ9bmV3IFdlYWtNYXAsWGQ9bmV3IFdlYWtTZXQsUWQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe2codGhpcyxlKSx4ZCh0aGlzLFhkKSxTZCh0aGlzLEpkLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxTZCh0aGlzLFlkLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxadCh0aGlzLEpkLDApLFp0KHRoaXMsWWQsdC5zbGljZSgpKX1yZXR1cm4gdihlLFt7a2V5OiJvZmZzZXQiLGdldDpmdW5jdGlvbigpe3JldHVybiBxdCh0aGlzLEpkKX19LHtrZXk6Imxlbmd0aCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHF0KHRoaXMsWWQpLmxlbmd0aC1xdCh0aGlzLEpkKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZShxdCh0aGlzLFlkKSl9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtadCh0aGlzLEpkLDApfX0se2tleToicG9wS2V5d29yZCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5wZWVrKCk7aWYoIktFWVdPUkQiIT09dC50eXBlfHwhZS5oYXModC50ZXh0KSl0aHJvdyBuZXcgRXJyb3IoImV4cGVjdGVkIGtleXdvcmQgIi5jb25jYXQodC50ZXh0KSk7cmV0dXJuIHRoaXMucG9wKCkudGV4dH19LHtrZXk6InBvcFR5cGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHRoaXMucGVlaygpLnR5cGUhPT1lKXRocm93IG5ldyBFcnJvcigiZXhwZWN0ZWQgIi5jb25jYXQoZSwiOyBnb3QgIikuY29uY2F0KEpTT04uc3RyaW5naWZ5KHRoaXMucGVlaygpKSkpO3JldHVybiB0aGlzLnBvcCgpLnRleHR9fSx7a2V5OiJwb3BQYXJlbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBlZWsoKTtpZigiT1BFTl9QQVJFTiIhPT1lLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJiYWQgc3RhcnQiKTt2YXIgdD1fZCh0aGlzLFhkLGVmKS5jYWxsKHRoaXMscXQodGhpcyxKZCkrMSxlLm1hdGNoKzEpO3JldHVybiBadCh0aGlzLEpkLGUubWF0Y2grMSksdH19LHtrZXk6InBvcFBhcmFtcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBlZWsoKTtpZigiT1BFTl9QQVJFTiIhPT1lLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJiYWQgc3RhcnQiKTtmb3IodmFyIHQ9W107cXQodGhpcyxKZCk8ZS5tYXRjaC0xOyl7dmFyIHI9dGhpcy5wZWVrKCkubGlua05leHQ7dC5wdXNoKF9kKHRoaXMsWGQsZWYpLmNhbGwodGhpcyxxdCh0aGlzLEpkKSsxLHIpKSxadCh0aGlzLEpkLHIpfXJldHVybiBadCh0aGlzLEpkLGUubWF0Y2grMSksdH19LHtrZXk6InBlZWsiLHZhbHVlOmZ1bmN0aW9uKCl7aWYocXQodGhpcyxKZCk+PXF0KHRoaXMsWWQpLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIm91dC1vZi1ib3VuZHMiKTtyZXR1cm4gcXQodGhpcyxZZClbcXQodGhpcyxKZCldfX0se2tleToicGVla0tleXdvcmQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGVla1R5cGUoIktFWVdPUkQiKTtyZXR1cm4gbnVsbCE9dCYmZS5oYXModCk/dDpudWxsfX0se2tleToicGVla1R5cGUiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgdD10aGlzLnBlZWsoKTtyZXR1cm4gdC50eXBlPT09ZT90LnRleHQ6bnVsbH19LHtrZXk6InBvcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMucGVlaygpO3JldHVybiBadCh0aGlzLEpkLChlPXF0KHRoaXMsSmQpLCsrZSkpLHR9fSx7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9W10sdD1xdCh0aGlzLEpkKTt0PHF0KHRoaXMsWWQpLmxlbmd0aDt0Kyspe3ZhciByPXF0KHRoaXMsWWQpW3RdO2UucHVzaCgiIi5jb25jYXQoci50eXBlLCI6IikuY29uY2F0KHIudGV4dCkpfXJldHVybiI8VG9rZW5TdHJpbmcgIi5jb25jYXQoZS5qb2luKCIgIiksIj4iKX19XSksZX0oKTtmdW5jdGlvbiBlZigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIG5ldyBRZChxdCh0aGlzLFlkKS5zbGljZShlLHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5mcmVlemUoT2JqZWN0LmFzc2lnbih7fSx0LHttYXRjaDp0Lm1hdGNoLWUsbGlua0JhY2s6dC5saW5rQmFjay1lLGxpbmtOZXh0OnQubGlua05leHQtZX0pKX0pKSl9ZnVuY3Rpb24gdGYoZSl7Zm9yKHZhciB0PVtdLHI9ZnVuY3Rpb24odCl7dmFyIHI9aTxlLmxlbmd0aD9KU09OLnN0cmluZ2lmeShlW2ldKToiJEVPSSI7dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHRva2VuICIuY29uY2F0KHIsIiBhdCAiKS5jb25jYXQoaSwiOiAiKS5jb25jYXQodCkpfSxuPVtdLG89W10saT0wO2k8ZS5sZW5ndGg7KXt2YXIgYT1lLnN1YnN0cmluZyhpKSxzPWEubWF0Y2goR2QpO3MmJihpKz1zWzFdLmxlbmd0aCxhPWUuc3Vic3RyaW5nKGkpKTt2YXIgdT17ZGVwdGg6bi5sZW5ndGgsbGlua0JhY2s6LTEsbGlua05leHQ6LTEsbWF0Y2g6LTEsdHlwZToiIix0ZXh0OiIiLG9mZnNldDppLHZhbHVlOi0xfTt0LnB1c2godSk7dmFyIGM9VmRbYVswXV18fCIiO2lmKGMpe2lmKHUudHlwZT1jLHUudGV4dD1hWzBdLGkrKywiT1BFTl9QQVJFTiI9PT1jKW4ucHVzaCh0Lmxlbmd0aC0xKSxvLnB1c2godC5sZW5ndGgtMSk7ZWxzZSBpZigiQ0xPU0VfUEFSRU4iPT1jKTA9PT1uLmxlbmd0aCYmcigibm8gbWF0Y2hpbmcgb3BlbiBicmFja2V0IiksdS5tYXRjaD1uLnBvcCgpLHRbdS5tYXRjaF0ubWF0Y2g9dC5sZW5ndGgtMSx1LmRlcHRoLS0sdS5saW5rQmFjaz1vLnBvcCgpLHRbdS5saW5rQmFja10ubGlua05leHQ9dC5sZW5ndGgtMTtlbHNlIGlmKCJDT01NQSI9PT1jKXUubGlua0JhY2s9by5wb3AoKSx0W3UubGlua0JhY2tdLmxpbmtOZXh0PXQubGVuZ3RoLTEsby5wdXNoKHQubGVuZ3RoLTEpO2Vsc2UgaWYoIk9QRU5fQlJBQ0tFVCI9PT1jKXUudHlwZT0iQlJBQ0tFVCI7ZWxzZSBpZigiQ0xPU0VfQlJBQ0tFVCI9PT1jKXt2YXIgbD10LnBvcCgpLnRleHQ7aWYodC5sZW5ndGg+MCYmIk5VTUJFUiI9PT10W3QubGVuZ3RoLTFdLnR5cGUpe3ZhciBkPXQucG9wKCkudGV4dDtsPWQrbCx0W3QubGVuZ3RoLTFdLnZhbHVlPVNyKGQpfWlmKDA9PT10Lmxlbmd0aHx8IkJSQUNLRVQiIT09dFt0Lmxlbmd0aC0xXS50eXBlKXRocm93IG5ldyBFcnJvcigibWlzc2luZyBvcGVuaW5nIGJyYWNrZXQiKTt0W3QubGVuZ3RoLTFdLnRleHQrPWx9fWVsc2UgaWYocz1hLm1hdGNoKEtkKSl7aWYodS50ZXh0PXNbMV0saSs9dS50ZXh0Lmxlbmd0aCwkZC5oYXModS50ZXh0KSl7dS50eXBlPSJLRVlXT1JEIjtjb250aW51ZX1pZih1LnRleHQubWF0Y2gocWQpKXt1LnR5cGU9IlRZUEUiO2NvbnRpbnVlfXUudHlwZT0iSUQifWVsc2V7aWYoIShzPWEubWF0Y2goSGQpKSl0aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgdG9rZW4gIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoYVswXSksIiBhdCBwb3NpdGlvbiAiKS5jb25jYXQoaSkpO3UudGV4dD1zWzFdLHUudHlwZT0iTlVNQkVSIixpKz11LnRleHQubGVuZ3RofX1yZXR1cm4gbmV3IFFkKHQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlKX0pKSl9ZnVuY3Rpb24gcmYoZSx0KXt2YXIgcj1bXTtmb3IodmFyIG4gaW4gdC5rZXlzKCkpZS5oYXMobikmJnIucHVzaChuKTtpZihyLmxlbmd0aD4xKXRocm93IG5ldyBFcnJvcigiY29uZmxpY3RpbmcgdHlwZXM6ICIuY29uY2F0KHIuam9pbigiLCAiKSkpfWZ1bmN0aW9uIG5mKGUsdCl7aWYodC5wZWVrS2V5d29yZChMZCkpe3ZhciByPXQucG9wKCkudGV4dDtpZihyIT09ZSl0aHJvdyBuZXcgRXJyb3IoImV4cGVjdGVkICIuY29uY2F0KGUsIiwgZ290ICIpLmNvbmNhdChyKSl9cmV0dXJuIHQucG9wVHlwZSgiSUQiKX1mdW5jdGlvbiBvZihlLHQpe2Zvcih2YXIgcj1uZXcgU2V0Ozspe3ZhciBuPWUucGVla1R5cGUoIktFWVdPUkQiKTtpZihudWxsPT1ufHx0JiYhdC5oYXMobikpYnJlYWs7aWYoZS5wb3AoKSxyLmhhcyhuKSl0aHJvdyBuZXcgRXJyb3IoImR1cGxpY2F0ZSBrZXl3b3JkczogIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkobikpKTtyLmFkZChuKX1yZXR1cm4gT2JqZWN0LmZyZWV6ZShyKX1mdW5jdGlvbiBhZihlKXt2YXIgdD1vZihlLFVkKTtyZXR1cm4gcmYodCxSZCgiY29uc3RhbnQgcGF5YWJsZSBub25wYXlhYmxlIi5zcGxpdCgiICIpKSkscmYodCxSZCgicHVyZSB2aWV3IHBheWFibGUgbm9ucGF5YWJsZSIuc3BsaXQoIiAiKSkpLHQuaGFzKCJ2aWV3Iik/InZpZXciOnQuaGFzKCJwdXJlIik/InB1cmUiOnQuaGFzKCJwYXlhYmxlIik/InBheWFibGUiOnQuaGFzKCJub25wYXlhYmxlIik/Im5vbnBheWFibGUiOnQuaGFzKCJjb25zdGFudCIpPyJ2aWV3Ijoibm9ucGF5YWJsZSJ9ZnVuY3Rpb24gc2YoZSx0KXtyZXR1cm4gZS5wb3BQYXJhbXMoKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBBZi5mcm9tKGUsdCl9KSl9ZnVuY3Rpb24gdWYoZSl7aWYoZS5wZWVrVHlwZSgiQVQiKSl7aWYoZS5wb3AoKSxlLnBlZWtUeXBlKCJOVU1CRVIiKSlyZXR1cm4gTXIoZS5wb3AoKS50ZXh0KTt0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZ2FzIil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY2YoZSl7aWYoZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJ1bmV4cGVjdGVkIHRva2VuczogIi5jb25jYXQoZS50b1N0cmluZygpKSl9dmFyIGxmPW5ldyBSZWdFeHAoL14oLiopXFsoWzAtOV0qKVxdJC8pO2Z1bmN0aW9uIGRmKGUpe3ZhciB0PWUubWF0Y2gocWQpO2lmKGFyKHQsImludmFsaWQgdHlwZSIsInR5cGUiLGUpLCJ1aW50Ij09PWUpcmV0dXJuInVpbnQyNTYiO2lmKCJpbnQiPT09ZSlyZXR1cm4iaW50MjU2IjtpZih0WzJdKXt2YXIgcj1wYXJzZUludCh0WzJdKTthcigwIT09ciYmcjw9MzIsImludmFsaWQgYnl0ZXMgbGVuZ3RoIiwidHlwZSIsZSl9ZWxzZSBpZih0WzNdKXt2YXIgbj1wYXJzZUludCh0WzNdKTthcigwIT09biYmbjw9MjU2JiZuJTg9PTAsImludmFsaWQgbnVtZXJpYyB3aWR0aCIsInR5cGUiLGUpfXJldHVybiBlfXZhciBmZj17fSxwZj1TeW1ib2wuZm9yKCJfZXRoZXJzX2ludGVybmFsIiksaGY9Il9QYXJhbVR5cGVJbnRlcm5hbCIsZ2Y9Il9FcnJvckludGVybmFsIix5Zj0iX0V2ZW50SW50ZXJuYWwiLGJmPSJfQ29uc3RydWN0b3JJbnRlcm5hbCIsdmY9Il9GYWxsYmFja0ludGVybmFsIixtZj0iX0Z1bmN0aW9uSW50ZXJuYWwiLFRmPSJfU3RydWN0SW50ZXJuYWwiLHdmPW5ldyBXZWFrU2V0LEFmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbixvLGksYSxzLHUpe2lmKGcodGhpcyxlKSx4ZCh0aGlzLHdmKSxXKHRoaXMsIm5hbWUiLHZvaWQgMCksVyh0aGlzLCJ0eXBlIix2b2lkIDApLFcodGhpcywiYmFzZVR5cGUiLHZvaWQgMCksVyh0aGlzLCJpbmRleGVkIix2b2lkIDApLFcodGhpcywiY29tcG9uZW50cyIsdm9pZCAwKSxXKHRoaXMsImFycmF5TGVuZ3RoIix2b2lkIDApLFcodGhpcywiYXJyYXlDaGlsZHJlbiIsdm9pZCAwKSxscih0LGZmLCJQYXJhbVR5cGUiKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxwZix7dmFsdWU6aGZ9KSxhJiYoYT1PYmplY3QuZnJlZXplKGEuc2xpY2UoKSkpLCJhcnJheSI9PT1vKXtpZihudWxsPT1zfHxudWxsPT11KXRocm93IG5ldyBFcnJvcigiIil9ZWxzZSBpZihudWxsIT1zfHxudWxsIT11KXRocm93IG5ldyBFcnJvcigiIik7aWYoInR1cGxlIj09PW8pbnVsbD09YSYmKGE9T2JqZWN0LmZyZWV6ZShbXSkpO2Vsc2UgaWYobnVsbCE9YSl0aHJvdyBuZXcgRXJyb3IoIiIpO3RyKHRoaXMse25hbWU6cix0eXBlOm4sYmFzZVR5cGU6byxpbmRleGVkOmksY29tcG9uZW50czphLGFycmF5TGVuZ3RoOnMsYXJyYXlDaGlsZHJlbjp1fSl9dmFyIHQ7cmV0dXJuIHYoZSxbe2tleToiZm9ybWF0Iix2YWx1ZTpmdW5jdGlvbihlKXtpZihudWxsPT1lJiYoZT0ic2lnaGFzaCIpLCJqc29uIj09PWUpe3ZhciB0PXt0eXBlOiJ0dXBsZSI9PT10aGlzLmJhc2VUeXBlPyJ0dXBsZSI6dGhpcy50eXBlLG5hbWU6dGhpcy5uYW1lfHx2b2lkIDB9O3JldHVybiJib29sZWFuIj09dHlwZW9mIHRoaXMuaW5kZXhlZCYmKHQuaW5kZXhlZD10aGlzLmluZGV4ZWQpLHRoaXMuaXNUdXBsZSgpJiYodC5jb21wb25lbnRzPXRoaXMuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKHQuZm9ybWF0KGUpKX0pKSksSlNPTi5zdHJpbmdpZnkodCl9dmFyIHI9IiI7cmV0dXJuIHRoaXMuaXNBcnJheSgpPyhyKz10aGlzLmFycmF5Q2hpbGRyZW4uZm9ybWF0KGUpLHIrPSJbIi5jb25jYXQodGhpcy5hcnJheUxlbmd0aDwwPyIiOlN0cmluZyh0aGlzLmFycmF5TGVuZ3RoKSwiXSIpKTp0aGlzLmlzVHVwbGUoKT8oInNpZ2hhc2giIT09ZSYmKHIrPXRoaXMudHlwZSkscis9IigiK3RoaXMuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvcm1hdChlKX0pKS5qb2luKCJmdWxsIj09PWU/IiwgIjoiLCIpKyIpIik6cis9dGhpcy50eXBlLCJzaWdoYXNoIiE9PWUmJighMD09PXRoaXMuaW5kZXhlZCYmKHIrPSIgaW5kZXhlZCIpLCJmdWxsIj09PWUmJnRoaXMubmFtZSYmKHIrPSIgIit0aGlzLm5hbWUpKSxyfX0se2tleToiaXNBcnJheSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4iYXJyYXkiPT09dGhpcy5iYXNlVHlwZX19LHtrZXk6ImlzVHVwbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuInR1cGxlIj09PXRoaXMuYmFzZVR5cGV9fSx7a2V5OiJpc0luZGV4YWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9dGhpcy5pbmRleGVkfX0se2tleToid2FsayIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtpZih0aGlzLmlzQXJyYXkoKSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGFycmF5IHZhbHVlIik7aWYoLTEhPT10aGlzLmFycmF5TGVuZ3RoJiZlLmxlbmd0aCE9PXRoaXMuYXJyYXlMZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhcnJheSBpcyB3cm9uZyBsZW5ndGgiKTt2YXIgcj10aGlzO3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIuYXJyYXlDaGlsZHJlbi53YWxrKGUsdCl9KSl9aWYodGhpcy5pc1R1cGxlKCkpe2lmKCFBcnJheS5pc0FycmF5KGUpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCB0dXBsZSB2YWx1ZSIpO2lmKGUubGVuZ3RoIT09dGhpcy5jb21wb25lbnRzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImFycmF5IGlzIHdyb25nIGxlbmd0aCIpO3ZhciBuPXRoaXM7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlLHIpe3JldHVybiBuLmNvbXBvbmVudHNbcl0ud2FsayhlLHQpfSkpfXJldHVybiB0KHRoaXMudHlwZSxlKX19LHtrZXk6IndhbGtBc3luYyIsdmFsdWU6KHQ9cChDKCkubWFyaygoZnVuY3Rpb24gZSh0LHIpe3ZhciBuLG87cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuPVtdLG89W3RdLF9kKHRoaXMsd2YsUGYpLmNhbGwodGhpcyxuLHQsciwoZnVuY3Rpb24oZSl7b1swXT1lfSkpLCFuLmxlbmd0aCl7ZS5uZXh0PTY7YnJlYWt9cmV0dXJuIGUubmV4dD02LFByb21pc2UuYWxsKG4pO2Nhc2UgNjpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsb1swXSk7Y2FzZSA3OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX1dLFt7a2V5OiJmcm9tIix2YWx1ZTpmdW5jdGlvbih0LHIpe2lmKGUuaXNQYXJhbVR5cGUodCkpcmV0dXJuIHQ7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBlLmZyb20odGYodCkscik7aWYodCBpbnN0YW5jZW9mIFFkKXt2YXIgbj0iIixvPSIiLGk9bnVsbDtvZih0LFJkKFsidHVwbGUiXSkpLmhhcygidHVwbGUiKXx8dC5wZWVrVHlwZSgiT1BFTl9QQVJFTiIpPyhvPSJ0dXBsZSIsaT10LnBvcFBhcmFtcygpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuZnJvbSh0KX0pKSxuPSJ0dXBsZSgiLmNvbmNhdChpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZm9ybWF0KCl9KSkuam9pbigiLCIpLCIpIikpOm89bj1kZih0LnBvcFR5cGUoIlRZUEUiKSk7Zm9yKHZhciBhPW51bGwscz1udWxsO3QubGVuZ3RoJiZ0LnBlZWtUeXBlKCJCUkFDS0VUIik7KXt2YXIgdT10LnBvcCgpO2E9bmV3IGUoZmYsIiIsbixvLG51bGwsaSxzLGEpLHM9dS52YWx1ZSxuKz11LnRleHQsbz0iYXJyYXkiLGk9bnVsbH12YXIgYz1udWxsO2lmKG9mKHQsemQpLmhhcygiaW5kZXhlZCIpKXtpZighcil0aHJvdyBuZXcgRXJyb3IoIiIpO2M9ITB9dmFyIGw9dC5wZWVrVHlwZSgiSUQiKT90LnBvcCgpLnRleHQ6IiI7aWYodC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJsZWZ0b3ZlciB0b2tlbnMiKTtyZXR1cm4gbmV3IGUoZmYsbCxuLG8sYyxpLHMsYSl9dmFyIGQ9dC5uYW1lO2FyKCFkfHwic3RyaW5nIj09dHlwZW9mIGQmJmQubWF0Y2goWmQpLCJpbnZhbGlkIG5hbWUiLCJvYmoubmFtZSIsZCk7dmFyIGY9dC5pbmRleGVkO251bGwhPWYmJihhcihyLCJwYXJhbWV0ZXIgY2Fubm90IGJlIGluZGV4ZWQiLCJvYmouaW5kZXhlZCIsdC5pbmRleGVkKSxmPSEhZik7dmFyIHA9dC50eXBlLGg9cC5tYXRjaChsZik7aWYoaCl7dmFyIGc9cGFyc2VJbnQoaFsyXXx8Ii0xIikseT1lLmZyb20oe3R5cGU6aFsxXSxjb21wb25lbnRzOnQuY29tcG9uZW50c30pO3JldHVybiBuZXcgZShmZixkfHwiIixwLCJhcnJheSIsZixudWxsLGcseSl9aWYoInR1cGxlIj09PXB8fHAuc3RhcnRzV2l0aCgidHVwbGUoIil8fHAuc3RhcnRzV2l0aCgiKCIpKXt2YXIgYj1udWxsIT10LmNvbXBvbmVudHM/dC5jb21wb25lbnRzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuZnJvbSh0KX0pKTpudWxsO3JldHVybiBuZXcgZShmZixkfHwiIixwLCJ0dXBsZSIsZixiLG51bGwsbnVsbCl9cmV0dXJuIHA9ZGYodC50eXBlKSxuZXcgZShmZixkfHwiIixwLHAsZixudWxsLG51bGwsbnVsbCl9fSx7a2V5OiJpc1BhcmFtVHlwZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmVbcGZdPT09aGZ9fV0pLGV9KCk7ZnVuY3Rpb24gUGYoZSx0LHIsbil7aWYodGhpcy5pc0FycmF5KCkpe2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBhcnJheSB2YWx1ZSIpO2lmKC0xIT09dGhpcy5hcnJheUxlbmd0aCYmdC5sZW5ndGghPT10aGlzLmFycmF5TGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYXJyYXkgaXMgd3JvbmcgbGVuZ3RoIik7dmFyIG89dGhpcy5hcnJheUNoaWxkcmVuLGk9dC5zbGljZSgpO3JldHVybiBpLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7X2Qobyx3ZixQZikuY2FsbChvLGUsdCxyLChmdW5jdGlvbihlKXtpW25dPWV9KSl9KSksdm9pZCBuKGkpfWlmKHRoaXMuaXNUdXBsZSgpKXt2YXIgYSxzPXRoaXMuY29tcG9uZW50cztpZihBcnJheS5pc0FycmF5KHQpKWE9dC5zbGljZSgpO2Vsc2V7aWYobnVsbD09dHx8Im9iamVjdCIhPT1oKHQpKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCB0dXBsZSB2YWx1ZSIpO2E9cy5tYXAoKGZ1bmN0aW9uKGUpe2lmKCFlLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgdXNlIG9iamVjdCB2YWx1ZSB3aXRoIHVubmFtZWQgY29tcG9uZW50cyIpO2lmKCEoZS5uYW1lIGluIHQpKXRocm93IG5ldyBFcnJvcigibWlzc2luZyB2YWx1ZSBmb3IgY29tcG9uZW50ICIuY29uY2F0KGUubmFtZSkpO3JldHVybiB0W2UubmFtZV19KSl9aWYoYS5sZW5ndGghPT10aGlzLmNvbXBvbmVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYXJyYXkgaXMgd3JvbmcgbGVuZ3RoIik7cmV0dXJuIGEuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXt2YXIgbztfZChvPXNbbl0sd2YsUGYpLmNhbGwobyxlLHQsciwoZnVuY3Rpb24oZSl7YVtuXT1lfSkpfSkpLHZvaWQgbihhKX12YXIgdT1yKHRoaXMudHlwZSx0KTt1LnRoZW4/ZS5wdXNoKHAoQygpLm1hcmsoKGZ1bmN0aW9uIGUoKXtyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLnQwPW4sZS5uZXh0PTMsdTtjYXNlIDM6ZS50MT1lLnNlbnQsKDAsZS50MCkoZS50MSk7Y2FzZSA1OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpKCkpOm4odSl9dmFyIFdmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIsbil7Zyh0aGlzLGUpLFcodGhpcywidHlwZSIsdm9pZCAwKSxXKHRoaXMsImlucHV0cyIsdm9pZCAwKSxscih0LGZmLCJGcmFnbWVudCIpLHRyKHRoaXMse3R5cGU6cixpbnB1dHM6bj1PYmplY3QuZnJlZXplKG4uc2xpY2UoKSl9KX1yZXR1cm4gdihlLG51bGwsW3trZXk6ImZyb20iLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dHJ5e2UuZnJvbShKU09OLnBhcnNlKHQpKX1jYXRjaChlKXt9cmV0dXJuIGUuZnJvbSh0Zih0KSl9aWYodCBpbnN0YW5jZW9mIFFkKXN3aXRjaCh0LnBlZWtLZXl3b3JkKExkKSl7Y2FzZSJjb25zdHJ1Y3RvciI6cmV0dXJuIGtmLmZyb20odCk7Y2FzZSJlcnJvciI6cmV0dXJuIEVmLmZyb20odCk7Y2FzZSJldmVudCI6cmV0dXJuIE1mLmZyb20odCk7Y2FzZSJmYWxsYmFjayI6Y2FzZSJyZWNlaXZlIjpyZXR1cm4gSWYuZnJvbSh0KTtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gT2YuZnJvbSh0KTtjYXNlInN0cnVjdCI6cmV0dXJuIHhmLmZyb20odCl9ZWxzZSBpZigib2JqZWN0Ij09PWgodCkpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiY29uc3RydWN0b3IiOnJldHVybiBrZi5mcm9tKHQpO2Nhc2UiZXJyb3IiOnJldHVybiBFZi5mcm9tKHQpO2Nhc2UiZXZlbnQiOnJldHVybiBNZi5mcm9tKHQpO2Nhc2UiZmFsbGJhY2siOmNhc2UicmVjZWl2ZSI6cmV0dXJuIElmLmZyb20odCk7Y2FzZSJmdW5jdGlvbiI6cmV0dXJuIE9mLmZyb20odCk7Y2FzZSJzdHJ1Y3QiOnJldHVybiB4Zi5mcm9tKHQpfWlyKCExLCJ1bnN1cHBvcnRlZCB0eXBlOiAiLmNvbmNhdCh0LnR5cGUpLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246IkZyYWdtZW50LmZyb20ifSl9YXIoITEsInVuc3VwcG9ydGVkIGZyZ2FtZW50IG9iamVjdCIsIm9iaiIsdCl9fSx7a2V5OiJpc0NvbnN0cnVjdG9yIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4ga2YuaXNGcmFnbWVudChlKX19LHtrZXk6ImlzRXJyb3IiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBFZi5pc0ZyYWdtZW50KGUpfX0se2tleToiaXNFdmVudCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIE1mLmlzRnJhZ21lbnQoZSl9fSx7a2V5OiJpc0Z1bmN0aW9uIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gT2YuaXNGcmFnbWVudChlKX19LHtrZXk6ImlzU3RydWN0Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4geGYuaXNGcmFnbWVudChlKX19XSksZX0oKSxCZj1mdW5jdGlvbihlKXt3KHIsZSk7dmFyIHQ9T2Qocik7ZnVuY3Rpb24gcihlLG4sbyxpKXt2YXIgYTtyZXR1cm4gZyh0aGlzLHIpLFcobShhPXQuY2FsbCh0aGlzLGUsbixpKSksIm5hbWUiLHZvaWQgMCksYXIoInN0cmluZyI9PXR5cGVvZiBvJiZvLm1hdGNoKFpkKSwiaW52YWxpZCBpZGVudGlmaWVyIiwibmFtZSIsbyksaT1PYmplY3QuZnJlZXplKGkuc2xpY2UoKSksdHIobShhKSx7bmFtZTpvfSksYX1yZXR1cm4gdihyKX0oV2YpO2Z1bmN0aW9uIENmKGUsdCl7cmV0dXJuIigiK3QubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5mb3JtYXQoZSl9KSkuam9pbigiZnVsbCI9PT1lPyIsICI6IiwiKSsiKSJ9dmFyIEVmPWZ1bmN0aW9uKGUpe3cocixlKTt2YXIgdD1PZChyKTtmdW5jdGlvbiByKGUsbixvKXt2YXIgaTtyZXR1cm4gZyh0aGlzLHIpLGk9dC5jYWxsKHRoaXMsZSwiZXJyb3IiLG4sbyksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0oaSkscGYse3ZhbHVlOmdmfSksaX1yZXR1cm4gdihyLFt7a2V5OiJzZWxlY3RvciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEFvKHRoaXMuZm9ybWF0KCJzaWdoYXNoIikpLnN1YnN0cmluZygwLDEwKX19LHtrZXk6ImZvcm1hdCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYobnVsbD09ZSYmKGU9InNpZ2hhc2giKSwianNvbiI9PT1lKXJldHVybiBKU09OLnN0cmluZ2lmeSh7dHlwZToiZXJyb3IiLG5hbWU6dGhpcy5uYW1lLGlucHV0czp0aGlzLmlucHV0cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKHQuZm9ybWF0KGUpKX0pKX0pO3ZhciB0PVtdO3JldHVybiJzaWdoYXNoIiE9PWUmJnQucHVzaCgiZXJyb3IiKSx0LnB1c2godGhpcy5uYW1lK0NmKGUsdGhpcy5pbnB1dHMpKSx0LmpvaW4oIiAiKX19XSxbe2tleToiZnJvbSIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoci5pc0ZyYWdtZW50KGUpKXJldHVybiBlO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gci5mcm9tKHRmKGUpKTtpZihlIGluc3RhbmNlb2YgUWQpe3ZhciB0PW5mKCJlcnJvciIsZSksbj1zZihlKTtyZXR1cm4gY2YoZSksbmV3IHIoZmYsdCxuKX1yZXR1cm4gbmV3IHIoZmYsZS5uYW1lLGUuaW5wdXRzP2UuaW5wdXRzLm1hcChBZi5mcm9tKTpbXSl9fSx7a2V5OiJpc0ZyYWdtZW50Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZVtwZl09PT1nZn19XSkscn0oQmYpLE1mPWZ1bmN0aW9uKGUpe3cocixlKTt2YXIgdD1PZChyKTtmdW5jdGlvbiByKGUsbixvLGkpe3ZhciBhO3JldHVybiBnKHRoaXMsciksVyhtKGE9dC5jYWxsKHRoaXMsZSwiZXZlbnQiLG4sbykpLCJhbm9ueW1vdXMiLHZvaWQgMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0oYSkscGYse3ZhbHVlOnlmfSksdHIobShhKSx7YW5vbnltb3VzOml9KSxhfXJldHVybiB2KHIsW3trZXk6InRvcGljSGFzaCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEFvKHRoaXMuZm9ybWF0KCJzaWdoYXNoIikpfX0se2tleToiZm9ybWF0Iix2YWx1ZTpmdW5jdGlvbihlKXtpZihudWxsPT1lJiYoZT0ic2lnaGFzaCIpLCJqc29uIj09PWUpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHt0eXBlOiJldmVudCIsYW5vbnltb3VzOnRoaXMuYW5vbnltb3VzLG5hbWU6dGhpcy5uYW1lLGlucHV0czp0aGlzLmlucHV0cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKHQuZm9ybWF0KGUpKX0pKX0pO3ZhciB0PVtdO3JldHVybiJzaWdoYXNoIiE9PWUmJnQucHVzaCgiZXZlbnQiKSx0LnB1c2godGhpcy5uYW1lK0NmKGUsdGhpcy5pbnB1dHMpKSwic2lnaGFzaCIhPT1lJiZ0aGlzLmFub255bW91cyYmdC5wdXNoKCJhbm9ueW1vdXMiKSx0LmpvaW4oIiAiKX19XSxbe2tleToiZ2V0VG9waWNIYXNoIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0PSh0fHxbXSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gQWYuZnJvbShlKX0pKSxuZXcgcihmZixlLHQsITEpLnRvcGljSGFzaH19LHtrZXk6ImZyb20iLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKHIuaXNGcmFnbWVudChlKSlyZXR1cm4gZTtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIHIuZnJvbSh0ZihlKSk7aWYoZSBpbnN0YW5jZW9mIFFkKXt2YXIgdD1uZigiZXZlbnQiLGUpLG49c2YoZSwhMCksbz0hIW9mKGUsUmQoWyJhbm9ueW1vdXMiXSkpLmhhcygiYW5vbnltb3VzIik7cmV0dXJuIGNmKGUpLG5ldyByKGZmLHQsbixvKX1yZXR1cm4gbmV3IHIoZmYsZS5uYW1lLGUuaW5wdXRzP2UuaW5wdXRzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIEFmLmZyb20oZSwhMCl9KSk6W10sISFlLmFub255bW91cyl9fSx7a2V5OiJpc0ZyYWdtZW50Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZVtwZl09PT15Zn19XSkscn0oQmYpLGtmPWZ1bmN0aW9uKGUpe3cocixlKTt2YXIgdD1PZChyKTtmdW5jdGlvbiByKGUsbixvLGksYSl7dmFyIHM7cmV0dXJuIGcodGhpcyxyKSxXKG0ocz10LmNhbGwodGhpcyxlLG4sbykpLCJwYXlhYmxlIix2b2lkIDApLFcobShzKSwiZ2FzIix2b2lkIDApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtKHMpLHBmLHt2YWx1ZTpiZn0pLHRyKG0ocykse3BheWFibGU6aSxnYXM6YX0pLHN9cmV0dXJuIHYocixbe2tleToiZm9ybWF0Iix2YWx1ZTpmdW5jdGlvbihlKXtpZihpcihudWxsIT1lJiYic2lnaGFzaCIhPT1lLCJjYW5ub3QgZm9ybWF0IGEgY29uc3RydWN0b3IgZm9yIHNpZ2hhc2giLCJVTlNVUFBPUlRFRF9PUEVSQVRJT04iLHtvcGVyYXRpb246ImZvcm1hdChzaWdoYXNoKSJ9KSwianNvbiI9PT1lKXJldHVybiBKU09OLnN0cmluZ2lmeSh7dHlwZToiY29uc3RydWN0b3IiLHN0YXRlTXV0YWJpbGl0eTp0aGlzLnBheWFibGU/InBheWFibGUiOiJ1bmRlZmluZWQiLHBheWFibGU6dGhpcy5wYXlhYmxlLGdhczpudWxsIT10aGlzLmdhcz90aGlzLmdhczp2b2lkIDAsaW5wdXRzOnRoaXMuaW5wdXRzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIEpTT04ucGFyc2UodC5mb3JtYXQoZSkpfSkpfSk7dmFyIHQ9WyJjb25zdHJ1Y3RvciIuY29uY2F0KENmKGUsdGhpcy5pbnB1dHMpKV07cmV0dXJuIHQucHVzaCh0aGlzLnBheWFibGU/InBheWFibGUiOiJub25wYXlhYmxlIiksbnVsbCE9dGhpcy5nYXMmJnQucHVzaCgiQCIuY29uY2F0KHRoaXMuZ2FzLnRvU3RyaW5nKCkpKSx0LmpvaW4oIiAiKX19XSxbe2tleToiZnJvbSIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoci5pc0ZyYWdtZW50KGUpKXJldHVybiBlO2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gci5mcm9tKHRmKGUpKTtpZihlIGluc3RhbmNlb2YgUWQpe29mKGUsUmQoWyJjb25zdHJ1Y3RvciJdKSk7dmFyIHQ9c2YoZSksbj0hIW9mKGUsUmQoWyJwYXlhYmxlIl0pKS5oYXMoInBheWFibGUiKSxvPXVmKGUpO3JldHVybiBjZihlKSxuZXcgcihmZiwiY29uc3RydWN0b3IiLHQsbixvKX1yZXR1cm4gbmV3IHIoZmYsImNvbnN0cnVjdG9yIixlLmlucHV0cz9lLmlucHV0cy5tYXAoQWYuZnJvbSk6W10sISFlLnBheWFibGUsbnVsbCE9ZS5nYXM/ZS5nYXM6bnVsbCl9fSx7a2V5OiJpc0ZyYWdtZW50Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmZVtwZl09PT1iZn19XSkscn0oV2YpLElmPWZ1bmN0aW9uKGUpe3cocixlKTt2YXIgdD1PZChyKTtmdW5jdGlvbiByKGUsbixvKXt2YXIgaTtyZXR1cm4gZyh0aGlzLHIpLFcobShpPXQuY2FsbCh0aGlzLGUsImZhbGxiYWNrIixuKSksInBheWFibGUiLHZvaWQgMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0oaSkscGYse3ZhbHVlOnZmfSksdHIobShpKSx7cGF5YWJsZTpvfSksaX1yZXR1cm4gdihyLFt7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PTA9PT10aGlzLmlucHV0cy5sZW5ndGg/InJlY2VpdmUiOiJmYWxsYmFjayI7aWYoImpzb24iPT09ZSl7dmFyIHI9dGhpcy5wYXlhYmxlPyJwYXlhYmxlIjoibm9ucGF5YWJsZSI7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHt0eXBlOnQsc3RhdGVNdXRhYmlsaXR5OnJ9KX1yZXR1cm4iIi5jb25jYXQodCwiKCkiKS5jb25jYXQodGhpcy5wYXlhYmxlPyIgcGF5YWJsZSI6IiIpfX1dLFt7a2V5OiJmcm9tIix2YWx1ZTpmdW5jdGlvbihlKXtpZihyLmlzRnJhZ21lbnQoZSkpcmV0dXJuIGU7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiByLmZyb20odGYoZSkpO2lmKGUgaW5zdGFuY2VvZiBRZCl7dmFyIHQ9ZS50b1N0cmluZygpO2lmKGFyKGUucGVla0tleXdvcmQoUmQoWyJmYWxsYmFjayIsInJlY2VpdmUiXSkpLCJ0eXBlIG11c3QgYmUgZmFsbGJhY2sgb3IgcmVjZWl2ZSIsIm9iaiIsdCksInJlY2VpdmUiPT09ZS5wb3BLZXl3b3JkKFJkKFsiZmFsbGJhY2siLCJyZWNlaXZlIl0pKSl7dmFyIG49c2YoZSk7cmV0dXJuIGFyKDA9PT1uLmxlbmd0aCwicmVjZWl2ZSBjYW5ub3QgaGF2ZSBhcmd1bWVudHMiLCJvYmouaW5wdXRzIixuKSxvZihlLFJkKFsicGF5YWJsZSJdKSksY2YoZSksbmV3IHIoZmYsW10sITApfXZhciBvPXNmKGUpO28ubGVuZ3RoP2FyKDE9PT1vLmxlbmd0aCYmImJ5dGVzIj09PW9bMF0udHlwZSwiaW52YWxpZCBmYWxsYmFjayBpbnB1dHMiLCJvYmouaW5wdXRzIixvLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZm9ybWF0KCJtaW5pbWFsIil9KSkuam9pbigiLCAiKSk6bz1bQWYuZnJvbSgiYnl0ZXMiKV07dmFyIGk9YWYoZSk7aWYoYXIoIm5vbnBheWFibGUiPT09aXx8InBheWFibGUiPT09aSwiZmFsbGJhY2sgY2Fubm90IGJlIGNvbnN0YW50cyIsIm9iai5zdGF0ZU11dGFiaWxpdHkiLGkpLG9mKGUsUmQoWyJyZXR1cm5zIl0pKS5oYXMoInJldHVybnMiKSl7dmFyIGE9c2YoZSk7YXIoMT09PWEubGVuZ3RoJiYiYnl0ZXMiPT09YVswXS50eXBlLCJpbnZhbGlkIGZhbGxiYWNrIG91dHB1dHMiLCJvYmoub3V0cHV0cyIsYS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZvcm1hdCgibWluaW1hbCIpfSkpLmpvaW4oIiwgIikpfXJldHVybiBjZihlKSxuZXcgcihmZixvLCJwYXlhYmxlIj09PWkpfWlmKCJyZWNlaXZlIj09PWUudHlwZSlyZXR1cm4gbmV3IHIoZmYsW10sITApO2lmKCJmYWxsYmFjayI9PT1lLnR5cGUpe3ZhciBzPVtBZi5mcm9tKCJieXRlcyIpXSx1PSJwYXlhYmxlIj09PWUuc3RhdGVNdXRhYmlsaXR5O3JldHVybiBuZXcgcihmZixzLHUpfWFyKCExLCJpbnZhbGlkIGZhbGxiYWNrIGRlc2NyaXB0aW9uIiwib2JqIixlKX19LHtrZXk6ImlzRnJhZ21lbnQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlW3BmXT09PXZmfX1dKSxyfShXZiksT2Y9ZnVuY3Rpb24oZSl7dyhyLGUpO3ZhciB0PU9kKHIpO2Z1bmN0aW9uIHIoZSxuLG8saSxhLHMpe3ZhciB1O2codGhpcyxyKSxXKG0odT10LmNhbGwodGhpcyxlLCJmdW5jdGlvbiIsbixpKSksImNvbnN0YW50Iix2b2lkIDApLFcobSh1KSwib3V0cHV0cyIsdm9pZCAwKSxXKG0odSksInN0YXRlTXV0YWJpbGl0eSIsdm9pZCAwKSxXKG0odSksInBheWFibGUiLHZvaWQgMCksVyhtKHUpLCJnYXMiLHZvaWQgMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0odSkscGYse3ZhbHVlOm1mfSksYT1PYmplY3QuZnJlZXplKGEuc2xpY2UoKSk7dmFyIGM9InZpZXciPT09b3x8InB1cmUiPT09byxsPSJwYXlhYmxlIj09PW87cmV0dXJuIHRyKG0odSkse2NvbnN0YW50OmMsZ2FzOnMsb3V0cHV0czphLHBheWFibGU6bCxzdGF0ZU11dGFiaWxpdHk6b30pLHV9cmV0dXJuIHYocixbe2tleToic2VsZWN0b3IiLGdldDpmdW5jdGlvbigpe3JldHVybiBBbyh0aGlzLmZvcm1hdCgic2lnaGFzaCIpKS5zdWJzdHJpbmcoMCwxMCl9fSx7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKG51bGw9PWUmJihlPSJzaWdoYXNoIiksImpzb24iPT09ZSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoe3R5cGU6ImZ1bmN0aW9uIixuYW1lOnRoaXMubmFtZSxjb25zdGFudDp0aGlzLmNvbnN0YW50LHN0YXRlTXV0YWJpbGl0eToibm9ucGF5YWJsZSIhPT10aGlzLnN0YXRlTXV0YWJpbGl0eT90aGlzLnN0YXRlTXV0YWJpbGl0eTp2b2lkIDAscGF5YWJsZTp0aGlzLnBheWFibGUsZ2FzOm51bGwhPXRoaXMuZ2FzP3RoaXMuZ2FzOnZvaWQgMCxpbnB1dHM6dGhpcy5pbnB1dHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5wYXJzZSh0LmZvcm1hdChlKSl9KSksb3V0cHV0czp0aGlzLm91dHB1dHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5wYXJzZSh0LmZvcm1hdChlKSl9KSl9KTt2YXIgdD1bXTtyZXR1cm4ic2lnaGFzaCIhPT1lJiZ0LnB1c2goImZ1bmN0aW9uIiksdC5wdXNoKHRoaXMubmFtZStDZihlLHRoaXMuaW5wdXRzKSksInNpZ2hhc2giIT09ZSYmKCJub25wYXlhYmxlIiE9PXRoaXMuc3RhdGVNdXRhYmlsaXR5JiZ0LnB1c2godGhpcy5zdGF0ZU11dGFiaWxpdHkpLHRoaXMub3V0cHV0cyYmdGhpcy5vdXRwdXRzLmxlbmd0aCYmKHQucHVzaCgicmV0dXJucyIpLHQucHVzaChDZihlLHRoaXMub3V0cHV0cykpKSxudWxsIT10aGlzLmdhcyYmdC5wdXNoKCJAIi5jb25jYXQodGhpcy5nYXMudG9TdHJpbmcoKSkpKSx0LmpvaW4oIiAiKX19XSxbe2tleToiZ2V0U2VsZWN0b3IiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9KHR8fFtdKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBBZi5mcm9tKGUpfSkpLG5ldyByKGZmLGUsInZpZXciLHQsW10sbnVsbCkuc2VsZWN0b3J9fSx7a2V5OiJmcm9tIix2YWx1ZTpmdW5jdGlvbihlKXtpZihyLmlzRnJhZ21lbnQoZSkpcmV0dXJuIGU7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiByLmZyb20odGYoZSkpO2lmKGUgaW5zdGFuY2VvZiBRZCl7dmFyIHQ9bmYoImZ1bmN0aW9uIixlKSxuPXNmKGUpLG89YWYoZSksaT1bXTtvZihlLFJkKFsicmV0dXJucyJdKSkuaGFzKCJyZXR1cm5zIikmJihpPXNmKGUpKTt2YXIgYT11ZihlKTtyZXR1cm4gY2YoZSksbmV3IHIoZmYsdCxvLG4saSxhKX1yZXR1cm4gbmV3IHIoZmYsZS5uYW1lLGUuc3RhdGVNdXRhYmlsaXR5LGUuaW5wdXRzP2UuaW5wdXRzLm1hcChBZi5mcm9tKTpbXSxlLm91dHB1dHM/ZS5vdXRwdXRzLm1hcChBZi5mcm9tKTpbXSxudWxsIT1lLmdhcz9lLmdhczpudWxsKX19LHtrZXk6ImlzRnJhZ21lbnQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlW3BmXT09PW1mfX1dKSxyfShCZikseGY9ZnVuY3Rpb24oZSl7dyhyLGUpO3ZhciB0PU9kKHIpO2Z1bmN0aW9uIHIoZSxuLG8pe3ZhciBpO3JldHVybiBnKHRoaXMsciksaT10LmNhbGwodGhpcyxlLCJzdHJ1Y3QiLG4sbyksT2JqZWN0LmRlZmluZVByb3BlcnR5KG0oaSkscGYse3ZhbHVlOlRmfSksaX1yZXR1cm4gdihyLFt7a2V5OiJmb3JtYXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJAVE9ETyIpfX1dLFt7a2V5OiJmcm9tIix2YWx1ZTpmdW5jdGlvbihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIHIuZnJvbSh0ZihlKSk7aWYoZSBpbnN0YW5jZW9mIFFkKXt2YXIgdD1uZigic3RydWN0IixlKSxuPXNmKGUpO3JldHVybiBjZihlKSxuZXcgcihmZix0LG4pfXJldHVybiBuZXcgcihmZixlLm5hbWUsZS5pbnB1dHM/ZS5pbnB1dHMubWFwKEFmLmZyb20pOltdKX19LHtrZXk6ImlzRnJhZ21lbnQiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBlJiZlW3BmXT09PVRmfX1dKSxyfShCZik7ZnVuY3Rpb24gU2YoZSx0KXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoIXIpe2lmKEFycmF5LmlzQXJyYXkoZSl8fChyPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBGZihlLHQpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PXImJmUuY29uc3RydWN0b3ImJihyPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1yfHwiU2V0Ij09PXI/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP0ZmKGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtyJiYoZT1yKTt2YXIgbj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiBuPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtuKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgaSxhPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtyPXIuY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPXIubmV4dCgpO3JldHVybiBhPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsaT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2F8fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBpfX19fWZ1bmN0aW9uIEZmKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciByPTAsbj1uZXcgQXJyYXkodCk7cjx0O3IrKyluW3JdPWVbcl07cmV0dXJuIG59ZnVuY3Rpb24gX2YoZSx0KXtOZihlLHQpLHQuYWRkKGUpfWZ1bmN0aW9uIFJmKGUsdCxyKXtOZihlLHQpLHQuc2V0KGUscil9ZnVuY3Rpb24gTmYoZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfWZ1bmN0aW9uIFVmKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfXZhciBEZj12KChmdW5jdGlvbiBlKHQscixuKXtnKHRoaXMsZSksVyh0aGlzLCJmcmFnbWVudCIsdm9pZCAwKSxXKHRoaXMsIm5hbWUiLHZvaWQgMCksVyh0aGlzLCJzaWduYXR1cmUiLHZvaWQgMCksVyh0aGlzLCJ0b3BpYyIsdm9pZCAwKSxXKHRoaXMsImFyZ3MiLHZvaWQgMCk7dmFyIG89dC5uYW1lLGk9dC5mb3JtYXQoKTt0cih0aGlzLHtmcmFnbWVudDp0LG5hbWU6byxzaWduYXR1cmU6aSx0b3BpYzpyLGFyZ3M6bn0pfSkpLExmPXYoKGZ1bmN0aW9uIGUodCxyLG4sbyl7Zyh0aGlzLGUpLFcodGhpcywiZnJhZ21lbnQiLHZvaWQgMCksVyh0aGlzLCJuYW1lIix2b2lkIDApLFcodGhpcywiYXJncyIsdm9pZCAwKSxXKHRoaXMsInNpZ25hdHVyZSIsdm9pZCAwKSxXKHRoaXMsInNlbGVjdG9yIix2b2lkIDApLFcodGhpcywidmFsdWUiLHZvaWQgMCk7dmFyIGk9dC5uYW1lLGE9dC5mb3JtYXQoKTt0cih0aGlzLHtmcmFnbWVudDp0LG5hbWU6aSxhcmdzOm4sc2lnbmF0dXJlOmEsc2VsZWN0b3I6cix2YWx1ZTpvfSl9KSksamY9digoZnVuY3Rpb24gZSh0LHIsbil7Zyh0aGlzLGUpLFcodGhpcywiZnJhZ21lbnQiLHZvaWQgMCksVyh0aGlzLCJuYW1lIix2b2lkIDApLFcodGhpcywiYXJncyIsdm9pZCAwKSxXKHRoaXMsInNpZ25hdHVyZSIsdm9pZCAwKSxXKHRoaXMsInNlbGVjdG9yIix2b2lkIDApO3ZhciBvPXQubmFtZSxpPXQuZm9ybWF0KCk7dHIodGhpcyx7ZnJhZ21lbnQ6dCxuYW1lOm8sYXJnczpuLHNpZ25hdHVyZTppLHNlbGVjdG9yOnJ9KX0pKSx6Zj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7Zyh0aGlzLGUpLFcodGhpcywiaGFzaCIsdm9pZCAwKSxXKHRoaXMsIl9pc0luZGV4ZWQiLHZvaWQgMCksdHIodGhpcyx7aGFzaDp0LF9pc0luZGV4ZWQ6ITB9KX1yZXR1cm4gdihlLG51bGwsW3trZXk6ImlzSW5kZXhlZCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuX2lzSW5kZXhlZCl9fV0pLGV9KCksJGY9ezA6ImdlbmVyaWMgcGFuaWMiLDE6ImFzc2VydChmYWxzZSkiLDE3OiJhcml0aG1ldGljIG92ZXJmbG93IiwxODoiZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm8iLDMzOiJlbnVtIG92ZXJmbG93IiwzNDoiaW52YWxpZCBlbmNvZGVkIHN0b3JhZ2UgYnl0ZSBhcnJheSBhY2Nlc3NlZCIsNDk6Im91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzOyBwb3BwaW5nIG9uIGFuIGVtcHR5IGFycmF5Iiw1MDoib3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb2YgYW4gYXJyYXkgb3IgYnl0ZXNOIiw2NToib3V0IG9mIG1lbW9yeSIsODE6InVuaW5pdGlhbGl6ZWQgZnVuY3Rpb24ifSxWZj17IjB4MDhjMzc5YTAiOntzaWduYXR1cmU6IkVycm9yKHN0cmluZykiLG5hbWU6IkVycm9yIixpbnB1dHM6WyJzdHJpbmciXSxyZWFzb246ZnVuY3Rpb24oZSl7cmV0dXJuInJldmVydGVkIHdpdGggcmVhc29uIHN0cmluZyAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShlKSl9fSwiMHg0ZTQ4N2I3MSI6e3NpZ25hdHVyZToiUGFuaWModWludDI1NikiLG5hbWU6IlBhbmljIixpbnB1dHM6WyJ1aW50MjU2Il0scmVhc29uOmZ1bmN0aW9uKGUpe3ZhciB0PSJ1bmtub3duIHBhbmljIGNvZGUiO3JldHVybiBlPj0wJiZlPD0yNTUmJiRmW2UudG9TdHJpbmcoKV0mJih0PSRmW2UudG9TdHJpbmcoKV0pLCJyZXZlcnRlZCB3aXRoIHBhbmljIGNvZGUgMHgiLmNvbmNhdChlLnRvU3RyaW5nKDE2KSwiICgiKS5jb25jYXQodCwiKSIpfX19LEdmPW5ldyBXZWFrTWFwLEhmPW5ldyBXZWFrTWFwLEtmPW5ldyBXZWFrTWFwLFpmPW5ldyBXZWFrTWFwLHFmPW5ldyBXZWFrU2V0LEpmPW5ldyBXZWFrU2V0LFlmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgcj10aGlzO2codGhpcyxlKSxfZih0aGlzLEpmKSxfZih0aGlzLHFmKSxXKHRoaXMsImZyYWdtZW50cyIsdm9pZCAwKSxXKHRoaXMsImRlcGxveSIsdm9pZCAwKSxXKHRoaXMsImZhbGxiYWNrIix2b2lkIDApLFcodGhpcywicmVjZWl2ZSIsdm9pZCAwKSxSZih0aGlzLEdmLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxSZih0aGlzLEhmLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxSZih0aGlzLEtmLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KSxSZih0aGlzLFpmLHt3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9KTt2YXIgbjtuPSJzdHJpbmciPT10eXBlb2YgdD9KU09OLnBhcnNlKHQpOnQsWnQodGhpcyxLZixuZXcgTWFwKSxadCh0aGlzLEdmLG5ldyBNYXApLFp0KHRoaXMsSGYsbmV3IE1hcCk7dmFyIG8saT1bXSxhPVNmKG4pO3RyeXtmb3IoYS5zKCk7IShvPWEubigpKS5kb25lOyl7dmFyIHM9by52YWx1ZTt0cnl7aS5wdXNoKFdmLmZyb20ocykpfWNhdGNoKGUpe2NvbnNvbGUubG9nKCJFRSIsZSl9fX1jYXRjaChlKXthLmUoZSl9ZmluYWxseXthLmYoKX10cih0aGlzLHtmcmFnbWVudHM6T2JqZWN0LmZyZWV6ZShpKX0pO3ZhciB1PW51bGwsYz0hMTtadCh0aGlzLFpmLHRoaXMuZ2V0QWJpQ29kZXIoKSksdGhpcy5mcmFnbWVudHMuZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXt2YXIgbjtzd2l0Y2goZS50eXBlKXtjYXNlImNvbnN0cnVjdG9yIjpyZXR1cm4gci5kZXBsb3k/dm9pZCBjb25zb2xlLmxvZygiZHVwbGljYXRlIGRlZmluaXRpb24gLSBjb25zdHJ1Y3RvciIpOnZvaWQgdHIocix7ZGVwbG95OmV9KTtjYXNlImZhbGxiYWNrIjpyZXR1cm4gdm9pZCgwPT09ZS5pbnB1dHMubGVuZ3RoP2M9ITA6KGFyKCF1fHxlLnBheWFibGUhPT11LnBheWFibGUsImNvbmZsaWN0aW5nIGZhbGxiYWNrIGZyYWdtZW50cyIsImZyYWdtZW50c1siLmNvbmNhdCh0LCJdIiksZSksYz0odT1lKS5wYXlhYmxlKSk7Y2FzZSJmdW5jdGlvbiI6bj1xdChyLEtmKTticmVhaztjYXNlImV2ZW50IjpuPXF0KHIsSGYpO2JyZWFrO2Nhc2UiZXJyb3IiOm49cXQocixHZik7YnJlYWs7ZGVmYXVsdDpyZXR1cm59dmFyIG89ZS5mb3JtYXQoKTtuLmhhcyhvKXx8bi5zZXQobyxlKX0pKSx0aGlzLmRlcGxveXx8dHIodGhpcyx7ZGVwbG95OmtmLmZyb20oImNvbnN0cnVjdG9yKCkiKX0pLHRyKHRoaXMse2ZhbGxiYWNrOnUscmVjZWl2ZTpjfSl9cmV0dXJuIHYoZSxbe2tleToiZm9ybWF0Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1lPyJtaW5pbWFsIjoiZnVsbCIscj10aGlzLmZyYWdtZW50cy5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZvcm1hdCh0KX0pKTtyZXR1cm4gcn19LHtrZXk6ImZvcm1hdEpzb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5mcmFnbWVudHMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JtYXQoImpzb24iKX0pKTtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnBhcnNlKGUpfSkpKX19LHtrZXk6ImdldEFiaUNvZGVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB6cy5kZWZhdWx0QWJpQ29kZXIoKX19LHtrZXk6ImdldEZ1bmN0aW9uTmFtZSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9VWYodGhpcyxxZixYZikuY2FsbCh0aGlzLGUsbnVsbCwhMSk7cmV0dXJuIGFyKHQsIm5vIG1hdGNoaW5nIGZ1bmN0aW9uIiwia2V5IixlKSx0Lm5hbWV9fSx7a2V5OiJnZXRGdW5jdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVWYodGhpcyxxZixYZikuY2FsbCh0aGlzLGUsdHx8bnVsbCwhMCl9fSx7a2V5OiJmb3JFYWNoRnVuY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5LmZyb20ocXQodGhpcyxLZikua2V5cygpKTt0LnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubG9jYWxlQ29tcGFyZSh0KX0pKTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtlKHF0KHRoaXMsS2YpLmdldChuKSxyKX19fSx7a2V5OiJnZXRFdmVudE5hbWUiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PVVmKHRoaXMsSmYsUWYpLmNhbGwodGhpcyxlLG51bGwsITEpO3JldHVybiBhcih0LCJubyBtYXRjaGluZyBldmVudCIsImtleSIsZSksdC5uYW1lfX0se2tleToiZ2V0RXZlbnQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIFVmKHRoaXMsSmYsUWYpLmNhbGwodGhpcyxlLHR8fG51bGwsITApfX0se2tleToiZm9yRWFjaEV2ZW50Iix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1BcnJheS5mcm9tKHF0KHRoaXMsSGYpLmtleXMoKSk7dC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmxvY2FsZUNvbXBhcmUodCl9KSk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07ZShxdCh0aGlzLEhmKS5nZXQobikscil9fX0se2tleToiZ2V0RXJyb3IiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYoaHIoZSkpe3ZhciByPWUudG9Mb3dlckNhc2UoKTtpZihWZltyXSlyZXR1cm4gRWYuZnJvbShWZltyXS5zaWduYXR1cmUpO3ZhciBuLG89U2YocXQodGhpcyxHZikudmFsdWVzKCkpO3RyeXtmb3Ioby5zKCk7IShuPW8ubigpKS5kb25lOyl7dmFyIGk9bi52YWx1ZTtpZihyPT09aS5zZWxlY3RvcilyZXR1cm4gaX19Y2F0Y2goZSl7by5lKGUpfWZpbmFsbHl7by5mKCl9cmV0dXJuIG51bGx9aWYoLTE9PT1lLmluZGV4T2YoIigiKSl7dmFyIGEscz1bXSx1PVNmKHF0KHRoaXMsR2YpKTt0cnl7Zm9yKHUucygpOyEoYT11Lm4oKSkuZG9uZTspe3ZhciBjPW9pKGEudmFsdWUsMiksbD1jWzBdLGQ9Y1sxXTtsLnNwbGl0KCIoIilbMF09PT1lJiZzLnB1c2goZCl9fWNhdGNoKGUpe3UuZShlKX1maW5hbGx5e3UuZigpfWlmKDA9PT1zLmxlbmd0aClyZXR1cm4iRXJyb3IiPT09ZT9FZi5mcm9tKCJlcnJvciBFcnJvcihzdHJpbmcpIik6IlBhbmljIj09PWU/RWYuZnJvbSgiZXJyb3IgUGFuaWModWludDI1NikiKTpudWxsO2lmKHMubGVuZ3RoPjEpe3ZhciBmPXMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZS5mb3JtYXQoKSl9KSkuam9pbigiLCAiKTthcighMSwiYW1iaWd1b3VzIGVycm9yIGRlc2NyaXB0aW9uIChpLmUuICIuY29uY2F0KGYsIikiKSwibmFtZSIsZSl9cmV0dXJuIHNbMF19cmV0dXJuIkVycm9yKHN0cmluZykiPT09KGU9RWYuZnJvbShlKS5mb3JtYXQoKSk/RWYuZnJvbSgiZXJyb3IgRXJyb3Ioc3RyaW5nKSIpOiJQYW5pYyh1aW50MjU2KSI9PT1lP0VmLmZyb20oImVycm9yIFBhbmljKHVpbnQyNTYpIik6cXQodGhpcyxHZikuZ2V0KGUpfHxudWxsfX0se2tleToiZm9yRWFjaEVycm9yIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1BcnJheS5mcm9tKHF0KHRoaXMsR2YpLmtleXMoKSk7dC5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmxvY2FsZUNvbXBhcmUodCl9KSk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07ZShxdCh0aGlzLEdmKS5nZXQobikscil9fX0se2tleToiX2RlY29kZVBhcmFtcyIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcXQodGhpcyxaZikuZGVjb2RlKGUsdCl9fSx7a2V5OiJfZW5jb2RlUGFyYW1zIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiBxdCh0aGlzLFpmKS5lbmNvZGUoZSx0KX19LHtrZXk6ImVuY29kZURlcGxveSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2VuY29kZVBhcmFtcyh0aGlzLmRlcGxveS5pbnB1dHMsZXx8W10pfX0se2tleToiZGVjb2RlRXJyb3JSZXN1bHQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgcj10aGlzLmdldEVycm9yKGUpO2FyKHIsInVua25vd24gZXJyb3IiLCJmcmFnbWVudCIsZSksZT1yfXJldHVybiBhcihUcih0LDAsNCk9PT1lLnNlbGVjdG9yLCJkYXRhIHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCBlcnJvciAiLmNvbmNhdChlLm5hbWUsIi4iKSwiZGF0YSIsdCksdGhpcy5fZGVjb2RlUGFyYW1zKGUuaW5wdXRzLFRyKHQsNCkpfX0se2tleToiZW5jb2RlRXJyb3JSZXN1bHQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgcj10aGlzLmdldEVycm9yKGUpO2FyKHIsInVua25vd24gZXJyb3IiLCJmcmFnbWVudCIsZSksZT1yfXJldHVybiB2cihbZS5zZWxlY3Rvcix0aGlzLl9lbmNvZGVQYXJhbXMoZS5pbnB1dHMsdHx8W10pXSl9fSx7a2V5OiJkZWNvZGVGdW5jdGlvbkRhdGEiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgcj10aGlzLmdldEZ1bmN0aW9uKGUpO2FyKHIsInVua25vd24gZnVuY3Rpb24iLCJmcmFnbWVudCIsZSksZT1yfXJldHVybiBhcihUcih0LDAsNCk9PT1lLnNlbGVjdG9yLCJkYXRhIHNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCBmdW5jdGlvbiAiLmNvbmNhdChlLm5hbWUsIi4iKSwiZGF0YSIsdCksdGhpcy5fZGVjb2RlUGFyYW1zKGUuaW5wdXRzLFRyKHQsNCkpfX0se2tleToiZW5jb2RlRnVuY3Rpb25EYXRhIix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHI9dGhpcy5nZXRGdW5jdGlvbihlKTthcihyLCJ1bmtub3duIGZ1bmN0aW9uIiwiZnJhZ21lbnQiLGUpLGU9cn1yZXR1cm4gdnIoW2Uuc2VsZWN0b3IsdGhpcy5fZW5jb2RlUGFyYW1zKGUuaW5wdXRzLHR8fFtdKV0pfX0se2tleToiZGVjb2RlRnVuY3Rpb25SZXN1bHQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgcj10aGlzLmdldEZ1bmN0aW9uKGUpO2FyKHIsInVua25vd24gZnVuY3Rpb24iLCJmcmFnbWVudCIsZSksZT1yfXZhciBuPSJpbnZhbGlkIGxlbmd0aCBmb3IgcmVzdWx0IGRhdGEiLG89cHIodCk7aWYoby5sZW5ndGglMzI9PTApdHJ5e3JldHVybiBxdCh0aGlzLFpmKS5kZWNvZGUoZS5vdXRwdXRzLG8pfWNhdGNoKGUpe249ImNvdWxkIG5vdCBkZWNvZGUgcmVzdWx0IGRhdGEifWlyKCExLG4sIkJBRF9EQVRBIix7dmFsdWU6YnIobyksaW5mbzp7bWV0aG9kOmUubmFtZSxzaWduYXR1cmU6ZS5mb3JtYXQoKX19KX19LHtrZXk6Im1ha2VFcnJvciIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1mcihlLCJkYXRhIiksbj16cy5nZXRCdWlsdGluQ2FsbEV4Y2VwdGlvbigiY2FsbCIsdCxyKTtpZihuLm1lc3NhZ2Uuc3RhcnRzV2l0aCgiZXhlY3V0aW9uIHJldmVydGVkICh1bmtub3duIGN1c3RvbSBlcnJvcikiKSl7dmFyIG89YnIoci5zbGljZSgwLDQpKSxpPXRoaXMuZ2V0RXJyb3Iobyk7aWYoaSl0cnl7dmFyIGE9cXQodGhpcyxaZikuZGVjb2RlKGkuaW5wdXRzLHIuc2xpY2UoNCkpO24ucmV2ZXJ0PXtuYW1lOmkubmFtZSxzaWduYXR1cmU6aS5mb3JtYXQoKSxhcmdzOmF9LG4ucmVhc29uPW4ucmV2ZXJ0LnNpZ25hdHVyZSxuLm1lc3NhZ2U9ImV4ZWN1dGlvbiByZXZlcnRlZDogIi5jb25jYXQobi5yZWFzb24pfWNhdGNoKGUpe24ubWVzc2FnZT0iZXhlY3V0aW9uIHJldmVydGVkIChjb3VsdCBub3QgZGVjb2RlIGN1c3RvbSBlcnJvcikifX12YXIgcz10aGlzLnBhcnNlVHJhbnNhY3Rpb24odCk7cmV0dXJuIHMmJihuLmludm9jYXRpb249e21ldGhvZDpzLm5hbWUsc2lnbmF0dXJlOnMuc2lnbmF0dXJlLGFyZ3M6cy5hcmdzfSksbn19LHtrZXk6ImVuY29kZUZ1bmN0aW9uUmVzdWx0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHI9dGhpcy5nZXRGdW5jdGlvbihlKTthcihyLCJ1bmtub3duIGZ1bmN0aW9uIiwiZnJhZ21lbnQiLGUpLGU9cn1yZXR1cm4gYnIocXQodGhpcyxaZikuZW5jb2RlKGUub3V0cHV0cyx0fHxbXSkpfX0se2tleToiZW5jb2RlRmlsdGVyVG9waWNzIix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgbj10aGlzLmdldEV2ZW50KGUpO2FyKG4sInVua25vd24gZXZlbnQiLCJldmVudEZyYWdtZW50IixlKSxlPW59aXIodC5sZW5ndGg8PWUuaW5wdXRzLmxlbmd0aCwidG9vIG1hbnkgYXJndW1lbnRzIGZvciAiLmNvbmNhdChlLmZvcm1hdCgpKSwiVU5FWFBFQ1RFRF9BUkdVTUVOVCIse2NvdW50OnQubGVuZ3RoLGV4cGVjdGVkQ291bnQ6ZS5pbnB1dHMubGVuZ3RofSk7dmFyIG89W107ZS5hbm9ueW1vdXN8fG8ucHVzaChlLnRvcGljSGFzaCk7dmFyIGk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ic3RyaW5nIj09PWUudHlwZT9Bbyh0KToiYnl0ZXMiPT09ZS50eXBlP3dvKGJyKHQpKTooImJvb2wiPT09ZS50eXBlJiYiYm9vbGVhbiI9PXR5cGVvZiB0JiYodD10PyIweDAxIjoiMHgwMCIpLGUudHlwZS5tYXRjaCgvXnU/aW50LykmJih0PUZyKHQpKSwiYWRkcmVzcyI9PT1lLnR5cGUmJnF0KHIsWmYpLmVuY29kZShbImFkZHJlc3MiXSxbdF0pLHdyKGJyKHQpLDMyKSl9O2Zvcih0LmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG49ZS5pbnB1dHNbcl07bi5pbmRleGVkP251bGw9PXQ/by5wdXNoKG51bGwpOiJhcnJheSI9PT1uLmJhc2VUeXBlfHwidHVwbGUiPT09bi5iYXNlVHlwZT9hcighMSwiZmlsdGVyaW5nIHdpdGggdHVwbGVzIG9yIGFycmF5cyBub3Qgc3VwcG9ydGVkIiwiY29udHJhY3QuIituLm5hbWUsdCk6QXJyYXkuaXNBcnJheSh0KT9vLnB1c2godC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBpKG4sZSl9KSkpOm8ucHVzaChpKG4sdCkpOmFyKG51bGw9PXQsImNhbm5vdCBmaWx0ZXIgbm9uLWluZGV4ZWQgcGFyYW1ldGVyczsgbXVzdCBiZSBudWxsIiwiY29udHJhY3QuIituLm5hbWUsdCl9KSk7by5sZW5ndGgmJm51bGw9PT1vW28ubGVuZ3RoLTFdOylvLnBvcCgpO3JldHVybiBvfX0se2tleToiZW5jb2RlRXZlbnRMb2ciLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcztpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBuPXRoaXMuZ2V0RXZlbnQoZSk7YXIobiwidW5rbm93biBldmVudCIsImV2ZW50RnJhZ21lbnQiLGUpLGU9bn12YXIgbz1bXSxpPVtdLGE9W107cmV0dXJuIGUuYW5vbnltb3VzfHxvLnB1c2goZS50b3BpY0hhc2gpLGFyKHQubGVuZ3RoPT09ZS5pbnB1dHMubGVuZ3RoLCJldmVudCBhcmd1bWVudHMvdmFsdWVzIG1pc21hdGNoIiwidmFsdWVzIix0KSxlLmlucHV0cy5mb3JFYWNoKChmdW5jdGlvbihlLG4pe3ZhciBzPXRbbl07aWYoZS5pbmRleGVkKWlmKCJzdHJpbmciPT09ZS50eXBlKW8ucHVzaChBbyhzKSk7ZWxzZSBpZigiYnl0ZXMiPT09ZS50eXBlKW8ucHVzaCh3byhzKSk7ZWxzZXtpZigidHVwbGUiPT09ZS5iYXNlVHlwZXx8ImFycmF5Ij09PWUuYmFzZVR5cGUpdGhyb3cgbmV3IEVycm9yKCJub3QgaW1wbGVtZW50ZWQiKTtvLnB1c2gocXQocixaZikuZW5jb2RlKFtlLnR5cGVdLFtzXSkpfWVsc2UgaS5wdXNoKGUpLGEucHVzaChzKX0pKSx7ZGF0YTpxdCh0aGlzLFpmKS5lbmNvZGUoaSxhKSx0b3BpY3M6b319fSx7a2V5OiJkZWNvZGVFdmVudExvZyIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIG49dGhpcy5nZXRFdmVudChlKTthcihuLCJ1bmtub3duIGV2ZW50IiwiZXZlbnRGcmFnbWVudCIsZSksZT1ufWlmKG51bGwhPXImJiFlLmFub255bW91cyl7dmFyIG89ZS50b3BpY0hhc2g7YXIoaHIoclswXSwzMikmJnJbMF0udG9Mb3dlckNhc2UoKT09PW8sImZyYWdtZW50L3RvcGljIG1pc21hdGNoIiwidG9waWNzWzBdIixyWzBdKSxyPXIuc2xpY2UoMSl9dmFyIGk9W10sYT1bXSxzPVtdO2UuaW5wdXRzLmZvckVhY2goKGZ1bmN0aW9uKGUsdCl7ZS5pbmRleGVkPyJzdHJpbmciPT09ZS50eXBlfHwiYnl0ZXMiPT09ZS50eXBlfHwidHVwbGUiPT09ZS5iYXNlVHlwZXx8ImFycmF5Ij09PWUuYmFzZVR5cGU/KGkucHVzaChBZi5mcm9tKHt0eXBlOiJieXRlczMyIixuYW1lOmUubmFtZX0pKSxzLnB1c2goITApKTooaS5wdXNoKGUpLHMucHVzaCghMSkpOihhLnB1c2goZSkscy5wdXNoKCExKSl9KSk7dmFyIHU9bnVsbCE9cj9xdCh0aGlzLFpmKS5kZWNvZGUoaSx2cihyKSk6bnVsbCxjPXF0KHRoaXMsWmYpLmRlY29kZShhLHQsITApLGw9W10sZD1bXSxmPTAscD0wO3JldHVybiBlLmlucHV0cy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3ZhciByPW51bGw7aWYoZS5pbmRleGVkKWlmKG51bGw9PXUpcj1uZXcgemYobnVsbCk7ZWxzZSBpZihzW3RdKXI9bmV3IHpmKHVbcCsrXSk7ZWxzZSB0cnl7cj11W3ArK119Y2F0Y2goZSl7cj1lfWVsc2UgdHJ5e3I9Y1tmKytdfWNhdGNoKGUpe3I9ZX1sLnB1c2gociksZC5wdXNoKGUubmFtZXx8bnVsbCl9KSksQWEuZnJvbUl0ZW1zKGwsZCl9fSx7a2V5OiJwYXJzZVRyYW5zYWN0aW9uIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1mcihlLmRhdGEsInR4LmRhdGEiKSxyPU1yKG51bGwhPWUudmFsdWU/ZS52YWx1ZTowLCJ0eC52YWx1ZSIpLG49dGhpcy5nZXRGdW5jdGlvbihicih0LnNsaWNlKDAsNCkpKTtpZighbilyZXR1cm4gbnVsbDt2YXIgbz1xdCh0aGlzLFpmKS5kZWNvZGUobi5pbnB1dHMsdC5zbGljZSg0KSk7cmV0dXJuIG5ldyBMZihuLG4uc2VsZWN0b3IsbyxyKX19LHtrZXk6InBhcnNlQ2FsbFJlc3VsdCIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKCJAVE9ETyIpfX0se2tleToicGFyc2VMb2ciLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuZ2V0RXZlbnQoZS50b3BpY3NbMF0pO3JldHVybiF0fHx0LmFub255bW91cz9udWxsOm5ldyBEZih0LHQudG9waWNIYXNoLHRoaXMuZGVjb2RlRXZlbnRMb2codCxlLmRhdGEsZS50b3BpY3MpKX19LHtrZXk6InBhcnNlRXJyb3IiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWJyKGUpLHI9dGhpcy5nZXRFcnJvcihUcih0LDAsNCkpO2lmKCFyKXJldHVybiBudWxsO3ZhciBuPXF0KHRoaXMsWmYpLmRlY29kZShyLmlucHV0cyxUcih0LDQpKTtyZXR1cm4gbmV3IGpmKHIsci5zZWxlY3RvcixuKX19XSxbe2tleToiZnJvbSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBlP3Q6InN0cmluZyI9PXR5cGVvZiB0P25ldyBlKEpTT04ucGFyc2UodCkpOiJmdW5jdGlvbiI9PXR5cGVvZiB0LmZvcm1hdD9uZXcgZSh0LmZvcm1hdCgianNvbiIpKTpuZXcgZSh0KX19XSksZX0oKTtmdW5jdGlvbiBYZihlLHQscil7aWYoaHIoZSkpe3ZhciBuLG89ZS50b0xvd2VyQ2FzZSgpLGk9U2YocXQodGhpcyxLZikudmFsdWVzKCkpO3RyeXtmb3IoaS5zKCk7IShuPWkubigpKS5kb25lOyl7dmFyIGE9bi52YWx1ZTtpZihvPT09YS5zZWxlY3RvcilyZXR1cm4gYX19Y2F0Y2goZSl7aS5lKGUpfWZpbmFsbHl7aS5mKCl9cmV0dXJuIG51bGx9aWYoLTE9PT1lLmluZGV4T2YoIigiKSl7dmFyIHMsdT1bXSxjPVNmKHF0KHRoaXMsS2YpKTt0cnl7Zm9yKGMucygpOyEocz1jLm4oKSkuZG9uZTspe3ZhciBsPW9pKHMudmFsdWUsMiksZD1sWzBdLGY9bFsxXTtkLnNwbGl0KCIoIilbMF09PT1lJiZ1LnB1c2goZil9fWNhdGNoKGUpe2MuZShlKX1maW5hbGx5e2MuZigpfWlmKHQpe3ZhciBwPXQubGVuZ3RoPjA/dFt0Lmxlbmd0aC0xXTpudWxsLGc9dC5sZW5ndGgseT0hMDtMYS5pc1R5cGVkKHApJiYib3ZlcnJpZGVzIj09PXAudHlwZSYmKHk9ITEsZy0tKTtmb3IodmFyIGI9dS5sZW5ndGgtMTtiPj0wO2ItLSl7dmFyIHY9dVtiXS5pbnB1dHMubGVuZ3RoO3Y9PT1nfHx5JiZ2PT09Zy0xfHx1LnNwbGljZShiLDEpfWZvcih2YXIgbT11Lmxlbmd0aC0xO20+PTA7bS0tKWZvcih2YXIgVD11W21dLmlucHV0cyx3PTA7dzx0Lmxlbmd0aDt3KyspaWYoTGEuaXNUeXBlZCh0W3ddKSl7aWYodz49VC5sZW5ndGgpe2lmKCJvdmVycmlkZXMiPT09dFt3XS50eXBlKWNvbnRpbnVlO3Uuc3BsaWNlKG0sMSk7YnJlYWt9aWYodFt3XS50eXBlIT09VFt3XS5iYXNlVHlwZSl7dS5zcGxpY2UobSwxKTticmVha319fWlmKDE9PT11Lmxlbmd0aCYmdCYmdC5sZW5ndGghPT11WzBdLmlucHV0cy5sZW5ndGgpe3ZhciBBPXRbdC5sZW5ndGgtMV07KG51bGw9PUF8fEFycmF5LmlzQXJyYXkoQSl8fCJvYmplY3QiIT09aChBKSkmJnUuc3BsaWNlKDAsMSl9aWYoMD09PXUubGVuZ3RoKXJldHVybiBudWxsO2lmKHUubGVuZ3RoPjEmJnIpe3ZhciBQPXUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZS5mb3JtYXQoKSl9KSkuam9pbigiLCAiKTthcighMSwiYW1iaWd1b3VzIGZ1bmN0aW9uIGRlc2NyaXB0aW9uIChpLmUuIG1hdGNoZXMgIi5jb25jYXQoUCwiKSIpLCJrZXkiLGUpfXJldHVybiB1WzBdfXJldHVybiBxdCh0aGlzLEtmKS5nZXQoT2YuZnJvbShlKS5mb3JtYXQoKSl8fG51bGx9ZnVuY3Rpb24gUWYoZSx0LHIpe2lmKGhyKGUpKXt2YXIgbixvPWUudG9Mb3dlckNhc2UoKSxpPVNmKHF0KHRoaXMsSGYpLnZhbHVlcygpKTt0cnl7Zm9yKGkucygpOyEobj1pLm4oKSkuZG9uZTspe3ZhciBhPW4udmFsdWU7aWYobz09PWEudG9waWNIYXNoKXJldHVybiBhfX1jYXRjaChlKXtpLmUoZSl9ZmluYWxseXtpLmYoKX1yZXR1cm4gbnVsbH1pZigtMT09PWUuaW5kZXhPZigiKCIpKXt2YXIgcyx1PVtdLGM9U2YocXQodGhpcyxIZikpO3RyeXtmb3IoYy5zKCk7IShzPWMubigpKS5kb25lOyl7dmFyIGw9b2kocy52YWx1ZSwyKSxkPWxbMF0sZj1sWzFdO2Quc3BsaXQoIigiKVswXT09PWUmJnUucHVzaChmKX19Y2F0Y2goZSl7Yy5lKGUpfWZpbmFsbHl7Yy5mKCl9aWYodCl7Zm9yKHZhciBwPXUubGVuZ3RoLTE7cD49MDtwLS0pdVtwXS5pbnB1dHMubGVuZ3RoPHQubGVuZ3RoJiZ1LnNwbGljZShwLDEpO2Zvcih2YXIgaD11Lmxlbmd0aC0xO2g+PTA7aC0tKWZvcih2YXIgZz11W2hdLmlucHV0cyx5PTA7eTx0Lmxlbmd0aDt5KyspaWYoTGEuaXNUeXBlZCh0W3ldKSYmdFt5XS50eXBlIT09Z1t5XS5iYXNlVHlwZSl7dS5zcGxpY2UoaCwxKTticmVha319aWYoMD09PXUubGVuZ3RoKXJldHVybiBudWxsO2lmKHUubGVuZ3RoPjEmJnIpe3ZhciBiPXUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZS5mb3JtYXQoKSl9KSkuam9pbigiLCAiKTthcighMSwiYW1iaWd1b3VzIGV2ZW50IGRlc2NyaXB0aW9uIChpLmUuIG1hdGNoZXMgIi5jb25jYXQoYiwiKSIpLCJrZXkiLGUpfXJldHVybiB1WzBdfXJldHVybiBxdCh0aGlzLEhmKS5nZXQoTWYuZnJvbShlKS5mb3JtYXQoKSl8fG51bGx9dmFyIGVwPWZ1bmN0aW9uKGUpe3JldHVybiBxci5mcm9tKGUpfSx0cD1mdW5jdGlvbihlKXtyZXR1cm4gcXIuZnJvbShlKS5zZXJpYWxpemVkfSxycD1mdW5jdGlvbihlKXtyZXR1cm4gZnIoZSl9LG5wPXtzaWdoYXNoOiJzaWdoYXNoIixtaW5pbWFsOiJtaW5pbWFsIixmdWxsOiJmdWxsIixqc29uOiJqc29uIn0sb3A9Vm8uaXNWYWxpZE1uZW1vbmljO2Z1bmN0aW9uIGlwKGUsdCl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KGUpfHwocj1mdW5jdGlvbihlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gYXAoZSx0KTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1yJiZlLmNvbnN0cnVjdG9yJiYocj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09cnx8IlNldCI9PT1yP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKT9hcChlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7ciYmKGU9cik7dmFyIG49MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gbj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbbisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGksYT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7cj1yLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1yLm5leHQoKTtyZXR1cm4gYT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLGk9ZX0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1yLnJldHVybnx8ci5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgaX19fX1mdW5jdGlvbiBhcChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgcj0wLG49bmV3IEFycmF5KHQpO3I8dDtyKyspbltyXT1lW3JdO3JldHVybiBufWZ1bmN0aW9uIHNwKGUsdCxyKXt1cChlLHQpLHQuc2V0KGUscil9ZnVuY3Rpb24gdXAoZSx0KXtpZih0LmhhcyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfVpvLnJlZ2lzdGVyKChmdW5jdGlvbihlLHQscil7cmV0dXJuIFpvLl8oZSxCdWZmZXIuZnJvbSh0KSxCdWZmZXIuZnJvbShyKSl9KSk7dmFyIGNwPW5ldyBVaW50OEFycmF5KDMyKTtjcC5maWxsKDApO3ZhciBscD1CaWdJbnQoLTEpLGRwPUJpZ0ludCgwKSxmcD1CaWdJbnQoMSkscHA9QmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYiKSxocD1GcihmcCwzMiksZ3A9RnIoZHAsMzIpLHlwPXtuYW1lOiJzdHJpbmciLHZlcnNpb246InN0cmluZyIsY2hhaW5JZDoidWludDI1NiIsdmVyaWZ5aW5nQ29udHJhY3Q6ImFkZHJlc3MiLHNhbHQ6ImJ5dGVzMzIifSxicD1bIm5hbWUiLCJ2ZXJzaW9uIiwiY2hhaW5JZCIsInZlcmlmeWluZ0NvbnRyYWN0Iiwic2FsdCJdO2Z1bmN0aW9uIHZwKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYXIoInN0cmluZyI9PXR5cGVvZiB0LCJpbnZhbGlkIGRvbWFpbiB2YWx1ZSBmb3IgIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkpLCJkb21haW4uIi5jb25jYXQoZSksdCksdH19dmFyIG1wPXtuYW1lOnZwKCJuYW1lIiksdmVyc2lvbjp2cCgidmVyc2lvbiIpLGNoYWluSWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE1yKGUsImRvbWFpbi5jaGFpbklkIil9LHZlcmlmeWluZ0NvbnRyYWN0OmZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4odD1lLHN2LmFkZHJlc3MudG9IZXgodCkpLnRvTG93ZXJDYXNlKCl9Y2F0Y2goZSl7fXZhciB0O2FyKCExLCdpbnZhbGlkIGRvbWFpbiB2YWx1ZSAidmVyaWZ5aW5nQ29udHJhY3QiJywiZG9tYWluLnZlcmlmeWluZ0NvbnRyYWN0IixlKX0sc2FsdDpmdW5jdGlvbihlKXt2YXIgdD1mcihlLCJkb21haW4uc2FsdCIpO3JldHVybiBhcigzMj09PXQubGVuZ3RoLCdpbnZhbGlkIGRvbWFpbiB2YWx1ZSAic2FsdCInLCJkb21haW4uc2FsdCIsZSksYnIodCl9fTtmdW5jdGlvbiBUcChlKXt2YXIgdD1lLm1hdGNoKC9eKHU/KWludChcZCopJC8pO2lmKHQpe3ZhciByPSIiPT09dFsxXSxuPXBhcnNlSW50KHRbMl18fCIyNTYiKTthcihuJTg9PTAmJjAhPT1uJiZuPD0yNTYmJihudWxsPT10WzJdfHx0WzJdPT09U3RyaW5nKG4pKSwiaW52YWxpZCBudW1lcmljIHdpZHRoIiwidHlwZSIsZSk7dmFyIG89RXIocHAscj9uLTE6biksaT1yPyhvK2ZwKSpscDpkcDtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49TXIodCwidmFsdWUiKTtyZXR1cm4gYXIobj49aSYmbjw9bywidmFsdWUgb3V0LW9mLWJvdW5kcyBmb3IgIi5jb25jYXQoZSksInZhbHVlIixuKSxGcihyP0NyKG4sMjU2KTpuLDMyKX19dmFyIGE9ZS5tYXRjaCgvXmJ5dGVzKFxkKykkLyk7aWYoYSl7dmFyIHM9cGFyc2VJbnQoYVsxXSk7cmV0dXJuIGFyKDAhPT1zJiZzPD0zMiYmYVsxXT09PVN0cmluZyhzKSwiaW52YWxpZCBieXRlcyB3aWR0aCIsInR5cGUiLGUpLGZ1bmN0aW9uKHQpe3JldHVybiBhcihmcih0KS5sZW5ndGg9PT1zLCJpbnZhbGlkIGxlbmd0aCBmb3IgIi5jb25jYXQoZSksInZhbHVlIix0KSxmdW5jdGlvbihlKXt2YXIgdD1mcihlKSxyPXQubGVuZ3RoJTMyO3JldHVybiByP3ZyKFt0LGNwLnNsaWNlKHIpXSk6YnIodCl9KHQpfX1zd2l0Y2goZSl7Y2FzZSJ0cmNUb2tlbiI6cmV0dXJuIFRwKCJ1aW50MjU2Iik7Y2FzZSJhZGRyZXNzIjpyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdyKCh0PWUsc3YuYWRkcmVzcy50b0hleCh0KS5yZXBsYWNlKEl0LCIweCIpKSwzMik7dmFyIHR9O2Nhc2UiYm9vbCI6cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlP2hwOmdwfTtjYXNlImJ5dGVzIjpyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHdvKGUpfTtjYXNlInN0cmluZyI6cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBbyhlKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gd3AoZSx0KXtyZXR1cm4iIi5jb25jYXQoZSwiKCIpLmNvbmNhdCh0Lm1hcCgoZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uYW1lO3JldHVybiBlLnR5cGUrIiAiK3R9KSkuam9pbigiLCIpLCIpIil9dmFyIEFwPW5ldyBXZWFrTWFwLFBwPW5ldyBXZWFrTWFwLFdwPW5ldyBXZWFrTWFwLEJwPW5ldyBXZWFrU2V0LENwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgcjtnKHRoaXMsZSksdXAodGhpcyxyPUJwKSxyLmFkZCh0aGlzKSxXKHRoaXMsInByaW1hcnlUeXBlIix2b2lkIDApLHNwKHRoaXMsQXAse3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLHNwKHRoaXMsUHAse3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLHNwKHRoaXMsV3Ase3dyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH0pLFp0KHRoaXMsQXAsSlNPTi5zdHJpbmdpZnkodCkpLFp0KHRoaXMsUHAsbmV3IE1hcCksWnQodGhpcyxXcCxuZXcgTWFwKTt2YXIgbj1uZXcgTWFwLG89bmV3IE1hcCxpPW5ldyBNYXA7Zm9yKHZhciBhIGluIE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKGUpe24uc2V0KGUsbmV3IFNldCksby5zZXQoZSxbXSksaS5zZXQoZSxuZXcgU2V0KX0pKSx0KXt2YXIgcyx1PW5ldyBTZXQsYz1pcCh0W2FdKTt0cnl7Zm9yKGMucygpOyEocz1jLm4oKSkuZG9uZTspe3ZhciBsPXMudmFsdWU7YXIoIXUuaGFzKGwubmFtZSksImR1cGxpY2F0ZSB2YXJpYWJsZSBuYW1lICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGwubmFtZSksIiBpbiAiKS5jb25jYXQoSlNPTi5zdHJpbmdpZnkoYSkpLCJ0eXBlcyIsdCksdS5hZGQobC5uYW1lKTt2YXIgZD1sLnR5cGUubWF0Y2goL14oW15ceDViXSopKFx4NWJ8JCkvKVsxXXx8bnVsbDthcihkIT09YSwiY2lyY3VsYXIgdHlwZSByZWZlcmVuY2UgdG8gIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZCkpLCJ0eXBlcyIsdCksVHAoZCl8fChhcihvLmhhcyhkKSwidW5rbm93biB0eXBlICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGQpKSwidHlwZXMiLHQpLG8uZ2V0KGQpLnB1c2goYSksbi5nZXQoYSkuYWRkKGQpKX19Y2F0Y2goZSl7Yy5lKGUpfWZpbmFsbHl7Yy5mKCl9fXZhciBmPUFycmF5LmZyb20oby5rZXlzKCkpLmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1vLmdldChlKS5sZW5ndGh9KSk7YXIoMCE9PWYubGVuZ3RoLCJtaXNzaW5nIHByaW1hcnkgdHlwZSIsInR5cGVzIix0KSxhcigxPT09Zi5sZW5ndGgsImFtYmlndW91cyBwcmltYXJ5IHR5cGVzIG9yIHVudXNlZCB0eXBlczogIi5jb25jYXQoZi5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX0pKS5qb2luKCIsICIpKSwidHlwZXMiLHQpLHRyKHRoaXMse3ByaW1hcnlUeXBlOmZbMF19KSxmdW5jdGlvbiBlKHIsYSl7YXIoIWEuaGFzKHIpLCJjaXJjdWxhciB0eXBlIHJlZmVyZW5jZSB0byAiLmNvbmNhdChKU09OLnN0cmluZ2lmeShyKSksInR5cGVzIix0KSxhLmFkZChyKTt2YXIgcyx1PWlwKG4uZ2V0KHIpKTt0cnl7Zm9yKHUucygpOyEocz11Lm4oKSkuZG9uZTspe3ZhciBjPXMudmFsdWU7aWYoby5oYXMoYykpe2UoYyxhKTt2YXIgbCxkPWlwKGEpO3RyeXtmb3IoZC5zKCk7IShsPWQubigpKS5kb25lOyl7dmFyIGY9bC52YWx1ZTtpLmdldChmKS5hZGQoYyl9fWNhdGNoKGUpe2QuZShlKX1maW5hbGx5e2QuZigpfX19fWNhdGNoKGUpe3UuZShlKX1maW5hbGx5e3UuZigpfWEuZGVsZXRlKHIpfSh0aGlzLnByaW1hcnlUeXBlLG5ldyBTZXQpO3ZhciBwLGg9aXAoaSk7dHJ5e2ZvcihoLnMoKTshKHA9aC5uKCkpLmRvbmU7KXt2YXIgeT1vaShwLnZhbHVlLDIpLGI9eVswXSx2PXlbMV0sbT1BcnJheS5mcm9tKHYpO20uc29ydCgpLHF0KHRoaXMsUHApLnNldChiLHdwKGIsdFtiXSkrbS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3cChlLHRbZV0pfSkpLmpvaW4oIiIpKX19Y2F0Y2goZSl7aC5lKGUpfWZpbmFsbHl7aC5mKCl9fXJldHVybiB2KGUsW3trZXk6InR5cGVzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZShxdCh0aGlzLEFwKSl9fSx7a2V5OiJnZXRFbmNvZGVyIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1xdCh0aGlzLFdwKS5nZXQoZSk7cmV0dXJuIHR8fCh0PWZ1bmN0aW9uKGUsdCxyKXtpZighdC5oYXMoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiByfSh0aGlzLEJwLEVwKS5jYWxsKHRoaXMsZSkscXQodGhpcyxXcCkuc2V0KGUsdCkpLHR9fSx7a2V5OiJlbmNvZGVUeXBlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1xdCh0aGlzLFBwKS5nZXQoZSk7cmV0dXJuIGFyKHQsInVua25vd24gdHlwZTogIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkpLCJuYW1lIixlKSx0fX0se2tleToiZW5jb2RlRGF0YSIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5nZXRFbmNvZGVyKGUpKHQpfX0se2tleToiaGFzaFN0cnVjdCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gd28odGhpcy5lbmNvZGVEYXRhKGUsdCkpfX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lbmNvZGVEYXRhKHRoaXMucHJpbWFyeVR5cGUsZSl9fSx7a2V5OiJoYXNoIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5oYXNoU3RydWN0KHRoaXMucHJpbWFyeVR5cGUsZSl9fSx7a2V5OiJfdmlzaXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzO2lmKFRwKGUpKXJldHVybiByKGUsdCk7dmFyIG89ZS5tYXRjaCgvXiguKikoXHg1YihcZCopXHg1ZCkkLyk7aWYobylyZXR1cm4gYXIoIW9bM118fHBhcnNlSW50KG9bM10pPT09dC5sZW5ndGgsImFycmF5IGxlbmd0aCBtaXNtYXRjaDsgZXhwZWN0ZWQgbGVuZ3RoICIuY29uY2F0KHBhcnNlSW50KG9bM10pKSwidmFsdWUiLHQpLHQubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gbi5fdmlzaXQob1sxXSxlLHIpfSkpO3ZhciBpPXRoaXMudHlwZXNbZV07aWYoaSlyZXR1cm4gaS5yZWR1Y2UoKGZ1bmN0aW9uKGUsbyl7dmFyIGk9by5uYW1lLGE9by50eXBlO3JldHVybiBlW2ldPW4uX3Zpc2l0KGEsdFtpXSxyKSxlfSkse30pO2FyKCExLCJ1bmtub3duIHR5cGU6ICIuY29uY2F0KGUpLCJ0eXBlIixlKX19LHtrZXk6InZpc2l0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl92aXNpdCh0aGlzLnByaW1hcnlUeXBlLGUsdCl9fV0sW3trZXk6ImZyb20iLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0KX19LHtrZXk6ImdldFByaW1hcnlUeXBlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gZS5mcm9tKHQpLnByaW1hcnlUeXBlfX0se2tleToiaGFzaFN0cnVjdCIsdmFsdWU6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlLmZyb20ocikuaGFzaFN0cnVjdCh0LG4pfX0se2tleToiaGFzaERvbWFpbiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIHI9W107Zm9yKHZhciBuIGluIHQpaWYobnVsbCE9dFtuXSl7dmFyIG89eXBbbl07YXIobywiaW52YWxpZCB0eXBlZC1kYXRhIGRvbWFpbiBrZXk6ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KG4pKSwiZG9tYWluIix0KSxyLnB1c2goe25hbWU6bix0eXBlOm99KX1yZXR1cm4gci5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBicC5pbmRleE9mKGUubmFtZSktYnAuaW5kZXhPZih0Lm5hbWUpfSkpLGUuaGFzaFN0cnVjdCgiRUlQNzEyRG9tYWluIix7RUlQNzEyRG9tYWluOnJ9LHQpfX0se2tleToiZW5jb2RlIix2YWx1ZTpmdW5jdGlvbih0LHIsbil7cmV0dXJuIHZyKFsiMHgxOTAxIixlLmhhc2hEb21haW4odCksZS5mcm9tKHIpLmhhc2gobildKX19LHtrZXk6Imhhc2giLHZhbHVlOmZ1bmN0aW9uKHQscixuKXtyZXR1cm4gd28oZS5lbmNvZGUodCxyLG4pKX19LHtrZXk6ImdldFBheWxvYWQiLHZhbHVlOmZ1bmN0aW9uKHQscixuKXtlLmhhc2hEb21haW4odCk7dmFyIG89e30saT1bXTticC5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgcj10W2VdO251bGwhPXImJihvW2VdPW1wW2VdKHIpLGkucHVzaCh7bmFtZTplLHR5cGU6eXBbZV19KSl9KSk7dmFyIGE9ZS5mcm9tKHIpLHM9T2JqZWN0LmFzc2lnbih7fSxyKTtyZXR1cm4gYXIobnVsbD09cy5FSVA3MTJEb21haW4sInR5cGVzIG11c3Qgbm90IGNvbnRhaW4gRUlQNzEyRG9tYWluIHR5cGUiLCJ0eXBlcy5FSVA3MTJEb21haW4iLHIpLHMuRUlQNzEyRG9tYWluPWksYS5lbmNvZGUobikse3R5cGVzOnMsZG9tYWluOm8scHJpbWFyeVR5cGU6YS5wcmltYXJ5VHlwZSxtZXNzYWdlOmEudmlzaXQobiwoZnVuY3Rpb24oZSx0KXtpZihlLm1hdGNoKC9eYnl0ZXMoXGQqKS8pKXJldHVybiBicihmcih0KSk7aWYoZS5tYXRjaCgvXnU/aW50LykpcmV0dXJuIE1yKHQpLnRvU3RyaW5nKCk7c3dpdGNoKGUpe2Nhc2UidHJjVG9rZW4iOnJldHVybiBNcih0KS50b1N0cmluZygpO2Nhc2UiYWRkcmVzcyI6cmV0dXJuIHQudG9Mb3dlckNhc2UoKTtjYXNlImJvb2wiOnJldHVybiEhdDtjYXNlInN0cmluZyI6cmV0dXJuIGFyKCJzdHJpbmciPT10eXBlb2YgdCwiaW52YWxpZCBzdHJpbmciLCJ2YWx1ZSIsdCksdH1hcighMSwidW5zdXBwb3J0ZWQgdHlwZSIsInR5cGUiLGUpfSkpfX19XSksZX0oKTtmdW5jdGlvbiBFcChlKXt2YXIgdD10aGlzLHI9VHAoZSk7aWYocilyZXR1cm4gcjt2YXIgbj1lLm1hdGNoKC9eKC4qKShceDViKFxkKilceDVkKSQvKTtpZihuKXt2YXIgbz1uWzFdLGk9dGhpcy5nZXRFbmNvZGVyKG8pO3JldHVybiBmdW5jdGlvbihlKXthcighblszXXx8cGFyc2VJbnQoblszXSk9PT1lLmxlbmd0aCwiYXJyYXkgbGVuZ3RoIG1pc21hdGNoOyBleHBlY3RlZCBsZW5ndGggIi5jb25jYXQocGFyc2VJbnQoblszXSkpLCJ2YWx1ZSIsZSk7dmFyIHI9ZS5tYXAoaSk7cmV0dXJuIHF0KHQsUHApLmhhcyhvKSYmKHI9ci5tYXAod28pKSx3byh2cihyKSl9fXZhciBhPXRoaXMudHlwZXNbZV07aWYoYSl7dmFyIHM9QW8ocXQodGhpcyxQcCkuZ2V0KGUpKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9YS5tYXAoKGZ1bmN0aW9uKHIpe3ZhciBuPXIubmFtZSxvPXIudHlwZSxpPXQuZ2V0RW5jb2RlcihvKShlW25dKTtyZXR1cm4gcXQodCxQcCkuaGFzKG8pP3dvKGkpOml9KSk7cmV0dXJuIHIudW5zaGlmdChzKSx2cihyKX19YXIoITEsInVua25vd24gdHlwZTogIi5jb25jYXQoZSksInR5cGUiLGUpfXZhciBNcD1vKDUwNTMpO2Z1bmN0aW9uIGtwKGUpe3ZhciB0PUtwKGUpLHI9S3AodCkuc2xpY2UoMCw0KTtyZXR1cm4gR3Qocj1lLmNvbmNhdChyKSl9ZnVuY3Rpb24gSXAoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO2lmKGUubGVuZ3RoPD00KXJldHVybiExO3ZhciB0PUh0KGUpO2lmKGUubGVuZ3RoPD00KXJldHVybiExO3ZhciByPXQubGVuZ3RoLTQsbj10LnNsaWNlKHIpLG89S3AodD10LnNsaWNlKDAscikpLGk9S3Aobykuc2xpY2UoMCw0KTtpZihuWzBdPT1pWzBdJiZuWzFdPT1pWzFdJiZuWzJdPT1pWzJdJiZuWzNdPT1pWzNdKXJldHVybiB0O3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBhZGRyZXNzIHByb3ZpZGVkIil9ZnVuY3Rpb24gT3AoZSx0KXsic3RyaW5nIj09dHlwZW9mIGUmJihlPU50KGUpKTt2YXIgcj1IcChOdCh0LnR4SUQpLGUpO3JldHVybiBBcnJheS5pc0FycmF5KHQuc2lnbmF0dXJlKT90LnNpZ25hdHVyZS5pbmNsdWRlcyhyKXx8dC5zaWduYXR1cmUucHVzaChyKTp0LnNpZ25hdHVyZT1bcl0sdH1mdW5jdGlvbiB4cChlLHQpe2U9IjB4IitlLnJlcGxhY2UoL14weC8sIiIpLHQ9IjB4Iit0LnJlcGxhY2UoL14weC8sIiIpO3ZhciByPWNhKHJwKGUpLHFyLmZyb20odCkpO3JldHVybiBNdCtyLnN1YnN0cmluZygyKX1mdW5jdGlvbiBTcChlKXtyZXR1cm4gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxDdChlKSkpfWZ1bmN0aW9uIEZwKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYoZT1OdChlKSksSHAoS3AodCksZSl9ZnVuY3Rpb24gX3AoZSx0LHIsbil7dmFyIG89IjB4Ii5jb25jYXQobi5yZXBsYWNlKC9eMHgvLCIiKSksaT1uZXcgc2EobyksYT1DcC5oYXNoKGUsdCxyKSxzPWkuc2lnbihhKTtyZXR1cm5bIjB4IixzLnIuc3Vic3RyaW5nKDIpLHMucy5zdWJzdHJpbmcoMiksTnVtYmVyKHMudikudG9TdHJpbmcoMTYpXS5qb2luKCIiKX1mdW5jdGlvbiBScChlKXt2YXIgdD1BdChlKTtyZXR1cm4gcHJvdG8ucHJvdG9jb2wuVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVCaW5hcnkodCkuZ2V0UmF3RGF0YSgpLnNlcmlhbGl6ZUJpbmFyeSgpfWZ1bmN0aW9uIE5wKCl7dmFyIGU9d3QoTXAuay51dGlscy5yYW5kb21Qcml2YXRlS2V5KCkpO3JldHVybiBOdChlPWUucGFkU3RhcnQoNjQsIjAiKSl9ZnVuY3Rpb24gVXAoZSl7NjU9PT1lLmxlbmd0aCYmKGU9ZS5zbGljZSgxKSk7dmFyIHQ9d28obmV3IFVpbnQ4QXJyYXkoZSkpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpO3JldHVybiBOdChNdCt0LnN1YnN0cmluZygyNCkpfWZ1bmN0aW9uIERwKGUpe3JldHVybiBVcChHcChlKSl9ZnVuY3Rpb24gTHAoZSl7dmFyIHQ9SHQoZSk7aWYodC5sZW5ndGg8PTQpcmV0dXJuITE7dmFyIHI9dC5zbGljZSgwLHQubGVuZ3RoLTQpLG49S3Aociksbz1LcChuKTtyZXR1cm4gb1swXT09PXRbci5sZW5ndGhdJiZvWzFdPT09dFtyLmxlbmd0aCsxXSYmb1syXT09PXRbci5sZW5ndGgrMl0mJm9bM109PT10W3IubGVuZ3RoKzNdJiZyfWZ1bmN0aW9uIGpwKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4hMTtpZihlLmxlbmd0aCE9PUV0KXJldHVybiExO3ZhciB0PUh0KGUpO2lmKDI1IT09dC5sZW5ndGgpcmV0dXJuITE7aWYodFswXSE9PWt0KXJldHVybiExO3ZhciByPXQuc2xpY2UoMjEpLG49S3AodD10LnNsaWNlKDAsMjEpKSxvPUtwKG4pLnNsaWNlKDAsNCk7cmV0dXJuIHJbMF09PW9bMF0mJnJbMV09PW9bMV0mJnJbMl09PW9bMl0mJnJbM109PW9bM119ZnVuY3Rpb24genAoZSl7cmV0dXJuIGtwKFVwKEdwKEF0KGUpKSkpfWZ1bmN0aW9uICRwKGUpe3JldHVybiB3dChVcChHcChBdChlKSkpKX1mdW5jdGlvbiBWcChlKXtyZXR1cm4gUHQoVXAoR3AoQXQoZSkpKSl9ZnVuY3Rpb24gR3AoZSl7dmFyIHQ9TXAuay5Qcm9qZWN0aXZlUG9pbnQuZnJvbVByaXZhdGVLZXkobmV3IFVpbnQ4QXJyYXkoZnVuY3Rpb24oZSl7cmV0dXJuIE50KHd0KGUpLnBhZFN0YXJ0KDY0LCIwIikpfShlKSkpLHI9dC54LG49dC55LG89ci50b1N0cmluZygxNikucGFkU3RhcnQoNjQsIjAiKSxpPW4udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDY0LCIwIik7cmV0dXJuIE50KCIwNCIuY29uY2F0KG8pLmNvbmNhdChpKSl9ZnVuY3Rpb24gSHAoZSx0KXt2YXIgcj1NcC5rLnNpZ24od3QoZSksd3QodCkpLG49ci5yLnRvU3RyaW5nKDE2KSxvPXIucy50b1N0cmluZygxNiksaT1yLnJlY292ZXJ5KzI3O3JldHVybiBuLnBhZFN0YXJ0KDY0LCIwIikrby5wYWRTdGFydCg2NCwiMCIpK3Z0KGkpfWZ1bmN0aW9uIEtwKGUpe3JldHVybiBOdChWbigiMHgiK3d0KGUpKS5yZXBsYWNlKC9eMHgvLCIiKSl9ZnVuY3Rpb24gWnAoZSl7cmV0dXJuIGtwKERwKEF0KGUpKSl9ZnVuY3Rpb24gcXAoZSl7cmV0dXJuIGtwKERwKE50KGUsYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSkpKX12YXIgSnA9IkludmFsaWQgdHJvbiBwYXRoIHByb3ZpZGVkIjtmdW5jdGlvbiBZcCgpe3ZhciBlPU5wKCksdD1HcChlKSxyPURwKGUpO3JldHVybntwcml2YXRlS2V5Ond0KGUpLHB1YmxpY0tleTp3dCh0KSxhZGRyZXNzOntiYXNlNTg6a3AociksaGV4Ond0KHIpfX19ZnVuY3Rpb24gWHAoZSl7aWYoYmIuaXNPYmplY3QoZSl8fChlPXt9KSxlLnBhdGh8fChlLnBhdGg9T3QpLCFTdHJpbmcoZS5wYXRoKS5tYXRjaCgvXm1cLzQ0XCdcLzE5NVwnLykpdGhyb3cgbmV3IEVycm9yKEpwKTt2YXIgdD1UZC5jcmVhdGVSYW5kb20oZS5wYXNzd29yZCxlLnBhdGgsZS53b3JkbGlzdCk7cmV0dXJue21uZW1vbmljOnQubW5lbW9uaWMscHJpdmF0ZUtleTp0LnByaXZhdGVLZXkscHVibGljS2V5OnQuc2lnbmluZ0tleS5wdWJsaWNLZXksYWRkcmVzczpxcCh0LnByaXZhdGVLZXkucmVwbGFjZSgvXjB4LywiIikpfX1mdW5jdGlvbiBRcChlLHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKHR8fCh0PU90KSwhU3RyaW5nKHQpLm1hdGNoKC9ebVwvNDRcJ1wvMTk1XCcvKSl0aHJvdyBuZXcgRXJyb3IoSnApO3ZhciBuPVRkLmZyb21NbmVtb25pYyhWby5mcm9tUGhyYXNlKGUsbnVsbCxyKSx0KTtyZXR1cm57bW5lbW9uaWM6bi5tbmVtb25pYyxwcml2YXRlS2V5Om4ucHJpdmF0ZUtleSxwdWJsaWNLZXk6bi5zaWduaW5nS2V5LnB1YmxpY0tleSxhZGRyZXNzOnFwKG4ucHJpdmF0ZUtleS5yZXBsYWNlKC9eMHgvLCIiKSl9fWxldCBlaD0hMSx0aD0hMTtjb25zdCByaD17ZGVidWc6MSxkZWZhdWx0OjIsaW5mbzoyLHdhcm5pbmc6MyxlcnJvcjo0LG9mZjo1fTtsZXQgbmg9cmguZGVmYXVsdCxvaD1udWxsO2NvbnN0IGloPWZ1bmN0aW9uKCl7dHJ5e2NvbnN0IGU9W107aWYoWyJORkQiLCJORkMiLCJORktEIiwiTkZLQyJdLmZvckVhY2goKHQ9Pnt0cnl7aWYoInRlc3QiIT09InRlc3QiLm5vcm1hbGl6ZSh0KSl0aHJvdyBuZXcgRXJyb3IoImJhZCBub3JtYWxpemUiKX1jYXRjaChyKXtlLnB1c2godCl9fSkpLGUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigibWlzc2luZyAiK2Uuam9pbigiLCAiKSk7aWYoU3RyaW5nLmZyb21DaGFyQ29kZSgyMzMpLm5vcm1hbGl6ZSgiTkZEIikhPT1TdHJpbmcuZnJvbUNoYXJDb2RlKDEwMSw3NjkpKXRocm93IG5ldyBFcnJvcigiYnJva2VuIGltcGxlbWVudGF0aW9uIil9Y2F0Y2goZSl7cmV0dXJuIGUubWVzc2FnZX1yZXR1cm4gbnVsbH0oKTt2YXIgYWgsc2g7IWZ1bmN0aW9uKGUpe2UuREVCVUc9IkRFQlVHIixlLklORk89IklORk8iLGUuV0FSTklORz0iV0FSTklORyIsZS5FUlJPUj0iRVJST1IiLGUuT0ZGPSJPRkYifShhaHx8KGFoPXt9KSksZnVuY3Rpb24oZSl7ZS5VTktOT1dOX0VSUk9SPSJVTktOT1dOX0VSUk9SIixlLk5PVF9JTVBMRU1FTlRFRD0iTk9UX0lNUExFTUVOVEVEIixlLlVOU1VQUE9SVEVEX09QRVJBVElPTj0iVU5TVVBQT1JURURfT1BFUkFUSU9OIixlLk5FVFdPUktfRVJST1I9Ik5FVFdPUktfRVJST1IiLGUuU0VSVkVSX0VSUk9SPSJTRVJWRVJfRVJST1IiLGUuVElNRU9VVD0iVElNRU9VVCIsZS5CVUZGRVJfT1ZFUlJVTj0iQlVGRkVSX09WRVJSVU4iLGUuTlVNRVJJQ19GQVVMVD0iTlVNRVJJQ19GQVVMVCIsZS5NSVNTSU5HX05FVz0iTUlTU0lOR19ORVciLGUuSU5WQUxJRF9BUkdVTUVOVD0iSU5WQUxJRF9BUkdVTUVOVCIsZS5NSVNTSU5HX0FSR1VNRU5UPSJNSVNTSU5HX0FSR1VNRU5UIixlLlVORVhQRUNURURfQVJHVU1FTlQ9IlVORVhQRUNURURfQVJHVU1FTlQiLGUuQ0FMTF9FWENFUFRJT049IkNBTExfRVhDRVBUSU9OIixlLklOU1VGRklDSUVOVF9GVU5EUz0iSU5TVUZGSUNJRU5UX0ZVTkRTIixlLk5PTkNFX0VYUElSRUQ9Ik5PTkNFX0VYUElSRUQiLGUuUkVQTEFDRU1FTlRfVU5ERVJQUklDRUQ9IlJFUExBQ0VNRU5UX1VOREVSUFJJQ0VEIixlLlVOUFJFRElDVEFCTEVfR0FTX0xJTUlUPSJVTlBSRURJQ1RBQkxFX0dBU19MSU1JVCIsZS5UUkFOU0FDVElPTl9SRVBMQUNFRD0iVFJBTlNBQ1RJT05fUkVQTEFDRUQiLGUuQUNUSU9OX1JFSkVDVEVEPSJBQ1RJT05fUkVKRUNURUQifShzaHx8KHNoPXt9KSk7Y29uc3QgdWg9IjAxMjM0NTY3ODlhYmNkZWYiO2NsYXNzIGNoe2NvbnN0cnVjdG9yKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJ2ZXJzaW9uIix7ZW51bWVyYWJsZTohMCx2YWx1ZTplLHdyaXRhYmxlOiExfSl9X2xvZyhlLHQpe2NvbnN0IHI9ZS50b0xvd2VyQ2FzZSgpO251bGw9PXJoW3JdJiZ0aGlzLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBsb2cgbGV2ZWwgbmFtZSIsImxvZ0xldmVsIixlKSxuaD5yaFtyXXx8Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSx0KX1kZWJ1ZyguLi5lKXt0aGlzLl9sb2coY2gubGV2ZWxzLkRFQlVHLGUpfWluZm8oLi4uZSl7dGhpcy5fbG9nKGNoLmxldmVscy5JTkZPLGUpfXdhcm4oLi4uZSl7dGhpcy5fbG9nKGNoLmxldmVscy5XQVJOSU5HLGUpfW1ha2VFcnJvcihlLHQscil7aWYodGgpcmV0dXJuIHRoaXMubWFrZUVycm9yKCJjZW5zb3JlZCBlcnJvciIsdCx7fSk7dHx8KHQ9Y2guZXJyb3JzLlVOS05PV05fRVJST1IpLHJ8fChyPXt9KTtjb25zdCBuPVtdO09iamVjdC5rZXlzKHIpLmZvckVhY2goKGU9Pntjb25zdCB0PXJbZV07dHJ5e2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5KXtsZXQgcj0iIjtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylyKz11aFt0W2VdPj40XSxyKz11aFsxNSZ0W2VdXTtuLnB1c2goZSsiPVVpbnQ4QXJyYXkoMHgiK3IrIikiKX1lbHNlIG4ucHVzaChlKyI9IitKU09OLnN0cmluZ2lmeSh0KSl9Y2F0Y2godCl7bi5wdXNoKGUrIj0iK0pTT04uc3RyaW5naWZ5KHJbZV0udG9TdHJpbmcoKSkpfX0pKSxuLnB1c2goYGNvZGU9JHt0fWApLG4ucHVzaChgdmVyc2lvbj0ke3RoaXMudmVyc2lvbn1gKTtjb25zdCBvPWU7bGV0IGk9IiI7c3dpdGNoKHQpe2Nhc2Ugc2guTlVNRVJJQ19GQVVMVDp7aT0iTlVNRVJJQ19GQVVMVCI7Y29uc3QgdD1lO3N3aXRjaCh0KXtjYXNlIm92ZXJmbG93IjpjYXNlInVuZGVyZmxvdyI6Y2FzZSJkaXZpc2lvbi1ieS16ZXJvIjppKz0iLSIrdDticmVhaztjYXNlIm5lZ2F0aXZlLXBvd2VyIjpjYXNlIm5lZ2F0aXZlLXdpZHRoIjppKz0iLXVuc3VwcG9ydGVkIjticmVhaztjYXNlInVuYm91bmQtYml0d2lzZS1yZXN1bHQiOmkrPSItdW5ib3VuZC1yZXN1bHQifWJyZWFrfWNhc2Ugc2guQ0FMTF9FWENFUFRJT046Y2FzZSBzaC5JTlNVRkZJQ0lFTlRfRlVORFM6Y2FzZSBzaC5NSVNTSU5HX05FVzpjYXNlIHNoLk5PTkNFX0VYUElSRUQ6Y2FzZSBzaC5SRVBMQUNFTUVOVF9VTkRFUlBSSUNFRDpjYXNlIHNoLlRSQU5TQUNUSU9OX1JFUExBQ0VEOmNhc2Ugc2guVU5QUkVESUNUQUJMRV9HQVNfTElNSVQ6aT10fWkmJihlKz0iIFsgU2VlOiBodHRwczovL2xpbmtzLmV0aGVycy5vcmcvdjUtZXJyb3JzLSIraSsiIF0iKSxuLmxlbmd0aCYmKGUrPSIgKCIrbi5qb2luKCIsICIpKyIpIik7Y29uc3QgYT1uZXcgRXJyb3IoZSk7cmV0dXJuIGEucmVhc29uPW8sYS5jb2RlPXQsT2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YVtlXT1yW2VdfSkpLGF9dGhyb3dFcnJvcihlLHQscil7dGhyb3cgdGhpcy5tYWtlRXJyb3IoZSx0LHIpfXRocm93QXJndW1lbnRFcnJvcihlLHQscil7cmV0dXJuIHRoaXMudGhyb3dFcnJvcihlLGNoLmVycm9ycy5JTlZBTElEX0FSR1VNRU5ULHthcmd1bWVudDp0LHZhbHVlOnJ9KX1hc3NlcnQoZSx0LHIsbil7ZXx8dGhpcy50aHJvd0Vycm9yKHQscixuKX1hc3NlcnRBcmd1bWVudChlLHQscixuKXtlfHx0aGlzLnRocm93QXJndW1lbnRFcnJvcih0LHIsbil9Y2hlY2tOb3JtYWxpemUoZSl7bnVsbD09ZSYmKGU9InBsYXRmb3JtIG1pc3NpbmcgU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUiKSxpaCYmdGhpcy50aHJvd0Vycm9yKCJwbGF0Zm9ybSBtaXNzaW5nIFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplIixjaC5lcnJvcnMuVU5TVVBQT1JURURfT1BFUkFUSU9OLHtvcGVyYXRpb246IlN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplIixmb3JtOmlofSl9Y2hlY2tTYWZlVWludDUzKGUsdCl7Im51bWJlciI9PXR5cGVvZiBlJiYobnVsbD09dCYmKHQ9InZhbHVlIG5vdCBzYWZlIiksKGU8MHx8ZT49OTAwNzE5OTI1NDc0MDk5MSkmJnRoaXMudGhyb3dFcnJvcih0LGNoLmVycm9ycy5OVU1FUklDX0ZBVUxULHtvcGVyYXRpb246ImNoZWNrU2FmZUludGVnZXIiLGZhdWx0OiJvdXQtb2Ytc2FmZS1yYW5nZSIsdmFsdWU6ZX0pLGUlMSYmdGhpcy50aHJvd0Vycm9yKHQsY2guZXJyb3JzLk5VTUVSSUNfRkFVTFQse29wZXJhdGlvbjoiY2hlY2tTYWZlSW50ZWdlciIsZmF1bHQ6Im5vbi1pbnRlZ2VyIix2YWx1ZTplfSkpfWNoZWNrQXJndW1lbnRDb3VudChlLHQscil7cj1yPyI6ICIrcjoiIixlPHQmJnRoaXMudGhyb3dFcnJvcigibWlzc2luZyBhcmd1bWVudCIrcixjaC5lcnJvcnMuTUlTU0lOR19BUkdVTUVOVCx7Y291bnQ6ZSxleHBlY3RlZENvdW50OnR9KSxlPnQmJnRoaXMudGhyb3dFcnJvcigidG9vIG1hbnkgYXJndW1lbnRzIityLGNoLmVycm9ycy5VTkVYUEVDVEVEX0FSR1VNRU5ULHtjb3VudDplLGV4cGVjdGVkQ291bnQ6dH0pfWNoZWNrTmV3KGUsdCl7ZSE9PU9iamVjdCYmbnVsbCE9ZXx8dGhpcy50aHJvd0Vycm9yKCJtaXNzaW5nIG5ldyIsY2guZXJyb3JzLk1JU1NJTkdfTkVXLHtuYW1lOnQubmFtZX0pfWNoZWNrQWJzdHJhY3QoZSx0KXtlPT09dD90aGlzLnRocm93RXJyb3IoImNhbm5vdCBpbnN0YW50aWF0ZSBhYnN0cmFjdCBjbGFzcyAiK0pTT04uc3RyaW5naWZ5KHQubmFtZSkrIiBkaXJlY3RseTsgdXNlIGEgc3ViLWNsYXNzIixjaC5lcnJvcnMuVU5TVVBQT1JURURfT1BFUkFUSU9OLHtuYW1lOmUubmFtZSxvcGVyYXRpb246Im5ldyJ9KTplIT09T2JqZWN0JiZudWxsIT1lfHx0aGlzLnRocm93RXJyb3IoIm1pc3NpbmcgbmV3IixjaC5lcnJvcnMuTUlTU0lOR19ORVcse25hbWU6dC5uYW1lfSl9c3RhdGljIGdsb2JhbExvZ2dlcigpe3JldHVybiBvaHx8KG9oPW5ldyBjaCgibG9nZ2VyLzUuNy4wIikpLG9ofXN0YXRpYyBzZXRDZW5zb3JzaGlwKGUsdCl7aWYoIWUmJnQmJnRoaXMuZ2xvYmFsTG9nZ2VyKCkudGhyb3dFcnJvcigiY2Fubm90IHBlcm1hbmVudGx5IGRpc2FibGUgY2Vuc29yc2hpcCIsY2guZXJyb3JzLlVOU1VQUE9SVEVEX09QRVJBVElPTix7b3BlcmF0aW9uOiJzZXRDZW5zb3JzaGlwIn0pLGVoKXtpZighZSlyZXR1cm47dGhpcy5nbG9iYWxMb2dnZXIoKS50aHJvd0Vycm9yKCJlcnJvciBjZW5zb3JzaGlwIHBlcm1hbmVudCIsY2guZXJyb3JzLlVOU1VQUE9SVEVEX09QRVJBVElPTix7b3BlcmF0aW9uOiJzZXRDZW5zb3JzaGlwIn0pfXRoPSEhZSxlaD0hIXR9c3RhdGljIHNldExvZ0xldmVsKGUpe2NvbnN0IHQ9cmhbZS50b0xvd2VyQ2FzZSgpXTtudWxsIT10P25oPXQ6Y2guZ2xvYmFsTG9nZ2VyKCkud2FybigiaW52YWxpZCBsb2cgbGV2ZWwgLSAiK2UpfXN0YXRpYyBmcm9tKGUpe3JldHVybiBuZXcgY2goZSl9fWNoLmVycm9ycz1zaCxjaC5sZXZlbHM9YWg7Y29uc3QgbGg9bmV3IGNoKCJieXRlcy81LjcuMCIpO2Z1bmN0aW9uIGRoKGUpe3JldHVybiEhZS50b0hleFN0cmluZ31mdW5jdGlvbiBmaChlKXtyZXR1cm4gZS5zbGljZXx8KGUuc2xpY2U9ZnVuY3Rpb24oKXtjb25zdCB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIGZoKG5ldyBVaW50OEFycmF5KEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShlLHQpKSl9KSxlfWZ1bmN0aW9uIHBoKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmZT09ZSYmZSUxPT0wfWZ1bmN0aW9uIGhoKGUpe2lmKG51bGw9PWUpcmV0dXJuITE7aWYoZS5jb25zdHJ1Y3Rvcj09PVVpbnQ4QXJyYXkpcmV0dXJuITA7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiExO2lmKCFwaChlLmxlbmd0aCl8fGUubGVuZ3RoPDApcmV0dXJuITE7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IHI9ZVt0XTtpZighcGgocil8fHI8MHx8cj49MjU2KXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGdoKGUsdCl7aWYodHx8KHQ9e30pLCJudW1iZXIiPT10eXBlb2YgZSl7bGguY2hlY2tTYWZlVWludDUzKGUsImludmFsaWQgYXJyYXlpZnkgdmFsdWUiKTtjb25zdCB0PVtdO2Zvcig7ZTspdC51bnNoaWZ0KDI1NSZlKSxlPXBhcnNlSW50KFN0cmluZyhlLzI1NikpO3JldHVybiAwPT09dC5sZW5ndGgmJnQucHVzaCgwKSxmaChuZXcgVWludDhBcnJheSh0KSl9aWYodC5hbGxvd01pc3NpbmdQcmVmaXgmJiJzdHJpbmciPT10eXBlb2YgZSYmIjB4IiE9PWUuc3Vic3RyaW5nKDAsMikmJihlPSIweCIrZSksZGgoZSkmJihlPWUudG9IZXhTdHJpbmcoKSksYmgoZSkpe2xldCByPWUuc3Vic3RyaW5nKDIpO3IubGVuZ3RoJTImJigibGVmdCI9PT10LmhleFBhZD9yPSIwIityOiJyaWdodCI9PT10LmhleFBhZD9yKz0iMCI6bGgudGhyb3dBcmd1bWVudEVycm9yKCJoZXggZGF0YSBpcyBvZGQtbGVuZ3RoIiwidmFsdWUiLGUpKTtjb25zdCBuPVtdO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSs9MiluLnB1c2gocGFyc2VJbnQoci5zdWJzdHJpbmcoZSxlKzIpLDE2KSk7cmV0dXJuIGZoKG5ldyBVaW50OEFycmF5KG4pKX1yZXR1cm4gaGgoZSk/ZmgobmV3IFVpbnQ4QXJyYXkoZSkpOmxoLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBhcnJheWlmeSB2YWx1ZSIsInZhbHVlIixlKX1mdW5jdGlvbiB5aChlKXtjb25zdCB0PWUubWFwKChlPT5naChlKSkpLHI9dC5yZWR1Y2UoKChlLHQpPT5lK3QubGVuZ3RoKSwwKSxuPW5ldyBVaW50OEFycmF5KHIpO3JldHVybiB0LnJlZHVjZSgoKGUsdCk9PihuLnNldCh0LGUpLGUrdC5sZW5ndGgpKSwwKSxmaChuKX1mdW5jdGlvbiBiaChlLHQpe3JldHVybiEoInN0cmluZyIhPXR5cGVvZiBlfHwhZS5tYXRjaCgvXjB4WzAtOUEtRmEtZl0qJC8pfHx0JiZlLmxlbmd0aCE9PTIrMip0KX1jb25zdCB2aD0iMDEyMzQ1Njc4OWFiY2RlZiI7ZnVuY3Rpb24gbWgoZSx0KXtpZih0fHwodD17fSksIm51bWJlciI9PXR5cGVvZiBlKXtsaC5jaGVja1NhZmVVaW50NTMoZSwiaW52YWxpZCBoZXhsaWZ5IHZhbHVlIik7bGV0IHQ9IiI7Zm9yKDtlOyl0PXZoWzE1JmVdK3QsZT1NYXRoLmZsb29yKGUvMTYpO3JldHVybiB0Lmxlbmd0aD8odC5sZW5ndGglMiYmKHQ9IjAiK3QpLCIweCIrdCk6IjB4MDAifWlmKCJiaWdpbnQiPT10eXBlb2YgZSlyZXR1cm4oZT1lLnRvU3RyaW5nKDE2KSkubGVuZ3RoJTI/IjB4MCIrZToiMHgiK2U7aWYodC5hbGxvd01pc3NpbmdQcmVmaXgmJiJzdHJpbmciPT10eXBlb2YgZSYmIjB4IiE9PWUuc3Vic3RyaW5nKDAsMikmJihlPSIweCIrZSksZGgoZSkpcmV0dXJuIGUudG9IZXhTdHJpbmcoKTtpZihiaChlKSlyZXR1cm4gZS5sZW5ndGglMiYmKCJsZWZ0Ij09PXQuaGV4UGFkP2U9IjB4MCIrZS5zdWJzdHJpbmcoMik6InJpZ2h0Ij09PXQuaGV4UGFkP2UrPSIwIjpsaC50aHJvd0FyZ3VtZW50RXJyb3IoImhleCBkYXRhIGlzIG9kZC1sZW5ndGgiLCJ2YWx1ZSIsZSkpLGUudG9Mb3dlckNhc2UoKTtpZihoaChlKSl7bGV0IHQ9IjB4Ijtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IG49ZVtyXTt0Kz12aFsoMjQwJm4pPj40XSt2aFsxNSZuXX1yZXR1cm4gdH1yZXR1cm4gbGgudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGhleGxpZnkgdmFsdWUiLCJ2YWx1ZSIsZSl9ZnVuY3Rpb24gVGgoZSx0LHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsdmFsdWU6cix3cml0YWJsZTohMX0pfW5ldyBjaCgicHJvcGVydGllcy81LjcuMCIpO2NvbnN0IHdoPSJhYmkvNS43LjAiO3ZhciBBaD1vKDM1NTApLFBoPW8ubihBaCkoKS5CTjtjb25zdCBXaD1uZXcgY2goImJpZ251bWJlci81LjcuMCIpLEJoPXt9LENoPTkwMDcxOTkyNTQ3NDA5OTE7bGV0IEVoPSExO2NsYXNzIE1oe2NvbnN0cnVjdG9yKGUsdCl7ZSE9PUJoJiZXaC50aHJvd0Vycm9yKCJjYW5ub3QgY2FsbCBjb25zdHJ1Y3RvciBkaXJlY3RseTsgdXNlIEJpZ051bWJlci5mcm9tIixjaC5lcnJvcnMuVU5TVVBQT1JURURfT1BFUkFUSU9OLHtvcGVyYXRpb246Im5ldyAoQmlnTnVtYmVyKSJ9KSx0aGlzLl9oZXg9dCx0aGlzLl9pc0JpZ051bWJlcj0hMCxPYmplY3QuZnJlZXplKHRoaXMpfWZyb21Ud29zKGUpe3JldHVybiBJaChPaCh0aGlzKS5mcm9tVHdvcyhlKSl9dG9Ud29zKGUpe3JldHVybiBJaChPaCh0aGlzKS50b1R3b3MoZSkpfWFicygpe3JldHVybiItIj09PXRoaXMuX2hleFswXT9NaC5mcm9tKHRoaXMuX2hleC5zdWJzdHJpbmcoMSkpOnRoaXN9YWRkKGUpe3JldHVybiBJaChPaCh0aGlzKS5hZGQoT2goZSkpKX1zdWIoZSl7cmV0dXJuIEloKE9oKHRoaXMpLnN1YihPaChlKSkpfWRpdihlKXtyZXR1cm4gTWguZnJvbShlKS5pc1plcm8oKSYmeGgoImRpdmlzaW9uLWJ5LXplcm8iLCJkaXYiKSxJaChPaCh0aGlzKS5kaXYoT2goZSkpKX1tdWwoZSl7cmV0dXJuIEloKE9oKHRoaXMpLm11bChPaChlKSkpfW1vZChlKXtjb25zdCB0PU9oKGUpO3JldHVybiB0LmlzTmVnKCkmJnhoKCJkaXZpc2lvbi1ieS16ZXJvIiwibW9kIiksSWgoT2godGhpcykudW1vZCh0KSl9cG93KGUpe2NvbnN0IHQ9T2goZSk7cmV0dXJuIHQuaXNOZWcoKSYmeGgoIm5lZ2F0aXZlLXBvd2VyIiwicG93IiksSWgoT2godGhpcykucG93KHQpKX1hbmQoZSl7Y29uc3QgdD1PaChlKTtyZXR1cm4odGhpcy5pc05lZ2F0aXZlKCl8fHQuaXNOZWcoKSkmJnhoKCJ1bmJvdW5kLWJpdHdpc2UtcmVzdWx0IiwiYW5kIiksSWgoT2godGhpcykuYW5kKHQpKX1vcihlKXtjb25zdCB0PU9oKGUpO3JldHVybih0aGlzLmlzTmVnYXRpdmUoKXx8dC5pc05lZygpKSYmeGgoInVuYm91bmQtYml0d2lzZS1yZXN1bHQiLCJvciIpLEloKE9oKHRoaXMpLm9yKHQpKX14b3IoZSl7Y29uc3QgdD1PaChlKTtyZXR1cm4odGhpcy5pc05lZ2F0aXZlKCl8fHQuaXNOZWcoKSkmJnhoKCJ1bmJvdW5kLWJpdHdpc2UtcmVzdWx0IiwieG9yIiksSWgoT2godGhpcykueG9yKHQpKX1tYXNrKGUpe3JldHVybih0aGlzLmlzTmVnYXRpdmUoKXx8ZTwwKSYmeGgoIm5lZ2F0aXZlLXdpZHRoIiwibWFzayIpLEloKE9oKHRoaXMpLm1hc2tuKGUpKX1zaGwoZSl7cmV0dXJuKHRoaXMuaXNOZWdhdGl2ZSgpfHxlPDApJiZ4aCgibmVnYXRpdmUtd2lkdGgiLCJzaGwiKSxJaChPaCh0aGlzKS5zaGxuKGUpKX1zaHIoZSl7cmV0dXJuKHRoaXMuaXNOZWdhdGl2ZSgpfHxlPDApJiZ4aCgibmVnYXRpdmUtd2lkdGgiLCJzaHIiKSxJaChPaCh0aGlzKS5zaHJuKGUpKX1lcShlKXtyZXR1cm4gT2godGhpcykuZXEoT2goZSkpfWx0KGUpe3JldHVybiBPaCh0aGlzKS5sdChPaChlKSl9bHRlKGUpe3JldHVybiBPaCh0aGlzKS5sdGUoT2goZSkpfWd0KGUpe3JldHVybiBPaCh0aGlzKS5ndChPaChlKSl9Z3RlKGUpe3JldHVybiBPaCh0aGlzKS5ndGUoT2goZSkpfWlzTmVnYXRpdmUoKXtyZXR1cm4iLSI9PT10aGlzLl9oZXhbMF19aXNaZXJvKCl7cmV0dXJuIE9oKHRoaXMpLmlzWmVybygpfXRvTnVtYmVyKCl7dHJ5e3JldHVybiBPaCh0aGlzKS50b051bWJlcigpfWNhdGNoKGUpe3hoKCJvdmVyZmxvdyIsInRvTnVtYmVyIix0aGlzLnRvU3RyaW5nKCkpfXJldHVybiBudWxsfXRvQmlnSW50KCl7dHJ5e3JldHVybiBCaWdJbnQodGhpcy50b1N0cmluZygpKX1jYXRjaChlKXt9cmV0dXJuIFdoLnRocm93RXJyb3IoInRoaXMgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCBCaWdJbnQiLGNoLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se3ZhbHVlOnRoaXMudG9TdHJpbmcoKX0pfXRvU3RyaW5nKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MCYmKDEwPT09YXJndW1lbnRzWzBdP0VofHwoRWg9ITAsV2gud2FybigiQmlnTnVtYmVyLnRvU3RyaW5nIGRvZXMgbm90IGFjY2VwdCBhbnkgcGFyYW1ldGVyczsgYmFzZS0xMCBpcyBhc3N1bWVkIikpOjE2PT09YXJndW1lbnRzWzBdP1doLnRocm93RXJyb3IoIkJpZ051bWJlci50b1N0cmluZyBkb2VzIG5vdCBhY2NlcHQgYW55IHBhcmFtZXRlcnM7IHVzZSBiaWdOdW1iZXIudG9IZXhTdHJpbmcoKSIsY2guZXJyb3JzLlVORVhQRUNURURfQVJHVU1FTlQse30pOldoLnRocm93RXJyb3IoIkJpZ051bWJlci50b1N0cmluZyBkb2VzIG5vdCBhY2NlcHQgcGFyYW1ldGVycyIsY2guZXJyb3JzLlVORVhQRUNURURfQVJHVU1FTlQse30pKSxPaCh0aGlzKS50b1N0cmluZygxMCl9dG9IZXhTdHJpbmcoKXtyZXR1cm4gdGhpcy5faGV4fXRvSlNPTihlKXtyZXR1cm57dHlwZToiQmlnTnVtYmVyIixoZXg6dGhpcy50b0hleFN0cmluZygpfX1zdGF0aWMgZnJvbShlKXtpZihlIGluc3RhbmNlb2YgTWgpcmV0dXJuIGU7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlLm1hdGNoKC9eLT8weFswLTlhLWZdKyQvaSk/bmV3IE1oKEJoLGtoKGUpKTplLm1hdGNoKC9eLT9bMC05XSskLyk/bmV3IE1oKEJoLGtoKG5ldyBQaChlKSkpOldoLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBCaWdOdW1iZXIgc3RyaW5nIiwidmFsdWUiLGUpO2lmKCJudW1iZXIiPT10eXBlb2YgZSlyZXR1cm4gZSUxJiZ4aCgidW5kZXJmbG93IiwiQmlnTnVtYmVyLmZyb20iLGUpLChlPj1DaHx8ZTw9LUNoKSYmeGgoIm92ZXJmbG93IiwiQmlnTnVtYmVyLmZyb20iLGUpLE1oLmZyb20oU3RyaW5nKGUpKTtjb25zdCB0PWU7aWYoImJpZ2ludCI9PXR5cGVvZiB0KXJldHVybiBNaC5mcm9tKHQudG9TdHJpbmcoKSk7aWYoaGgodCkpcmV0dXJuIE1oLmZyb20obWgodCkpO2lmKHQpaWYodC50b0hleFN0cmluZyl7Y29uc3QgZT10LnRvSGV4U3RyaW5nKCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBNaC5mcm9tKGUpfWVsc2V7bGV0IGU9dC5faGV4O2lmKG51bGw9PWUmJiJCaWdOdW1iZXIiPT09dC50eXBlJiYoZT10LmhleCksInN0cmluZyI9PXR5cGVvZiBlJiYoYmgoZSl8fCItIj09PWVbMF0mJmJoKGUuc3Vic3RyaW5nKDEpKSkpcmV0dXJuIE1oLmZyb20oZSl9cmV0dXJuIFdoLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBCaWdOdW1iZXIgdmFsdWUiLCJ2YWx1ZSIsZSl9c3RhdGljIGlzQmlnTnVtYmVyKGUpe3JldHVybiEoIWV8fCFlLl9pc0JpZ051bWJlcil9fWZ1bmN0aW9uIGtoKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4ga2goZS50b1N0cmluZygxNikpO2lmKCItIj09PWVbMF0pcmV0dXJuIi0iPT09KGU9ZS5zdWJzdHJpbmcoMSkpWzBdJiZXaC50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgaGV4IiwidmFsdWUiLGUpLCIweDAwIj09PShlPWtoKGUpKT9lOiItIitlO2lmKCIweCIhPT1lLnN1YnN0cmluZygwLDIpJiYoZT0iMHgiK2UpLCIweCI9PT1lKXJldHVybiIweDAwIjtmb3IoZS5sZW5ndGglMiYmKGU9IjB4MCIrZS5zdWJzdHJpbmcoMikpO2UubGVuZ3RoPjQmJiIweDAwIj09PWUuc3Vic3RyaW5nKDAsNCk7KWU9IjB4IitlLnN1YnN0cmluZyg0KTtyZXR1cm4gZX1mdW5jdGlvbiBJaChlKXtyZXR1cm4gTWguZnJvbShraChlKSl9ZnVuY3Rpb24gT2goZSl7Y29uc3QgdD1NaC5mcm9tKGUpLnRvSGV4U3RyaW5nKCk7cmV0dXJuIi0iPT09dFswXT9uZXcgUGgoIi0iK3Quc3Vic3RyaW5nKDMpLDE2KTpuZXcgUGgodC5zdWJzdHJpbmcoMiksMTYpfWZ1bmN0aW9uIHhoKGUsdCxyKXtjb25zdCBuPXtmYXVsdDplLG9wZXJhdGlvbjp0fTtyZXR1cm4gbnVsbCE9ciYmKG4udmFsdWU9ciksV2gudGhyb3dFcnJvcihlLGNoLmVycm9ycy5OVU1FUklDX0ZBVUxULG4pfWNvbnN0IFNoPW5ldyBjaCh3aCk7Y2xhc3MgRmh7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5uYW1lPWUsdGhpcy50eXBlPXQsdGhpcy5sb2NhbE5hbWU9cix0aGlzLmR5bmFtaWM9bn1fdGhyb3dFcnJvcihlLHQpe1NoLnRocm93QXJndW1lbnRFcnJvcihlLHRoaXMubG9jYWxOYW1lLHQpfX1jbGFzcyBfaHtjb25zdHJ1Y3RvcihlKXtUaCh0aGlzLCJ3b3JkU2l6ZSIsZXx8MzIpLHRoaXMuX2RhdGE9W10sdGhpcy5fZGF0YUxlbmd0aD0wLHRoaXMuX3BhZGRpbmc9bmV3IFVpbnQ4QXJyYXkoZSl9Z2V0IGRhdGEoKXtyZXR1cm4gZnVuY3Rpb24oZSl7bGV0IHQ9IjB4IjtyZXR1cm4gZS5mb3JFYWNoKChlPT57dCs9bWgoZSkuc3Vic3RyaW5nKDIpfSkpLHR9KHRoaXMuX2RhdGEpfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fZGF0YUxlbmd0aH1fd3JpdGVEYXRhKGUpe3JldHVybiB0aGlzLl9kYXRhLnB1c2goZSksdGhpcy5fZGF0YUxlbmd0aCs9ZS5sZW5ndGgsZS5sZW5ndGh9YXBwZW5kV3JpdGVyKGUpe3JldHVybiB0aGlzLl93cml0ZURhdGEoeWgoZS5fZGF0YSkpfXdyaXRlQnl0ZXMoZSl7bGV0IHQ9Z2goZSk7Y29uc3Qgcj10Lmxlbmd0aCV0aGlzLndvcmRTaXplO3JldHVybiByJiYodD15aChbdCx0aGlzLl9wYWRkaW5nLnNsaWNlKHIpXSkpLHRoaXMuX3dyaXRlRGF0YSh0KX1fZ2V0VmFsdWUoZSl7bGV0IHQ9Z2goTWguZnJvbShlKSk7cmV0dXJuIHQubGVuZ3RoPnRoaXMud29yZFNpemUmJlNoLnRocm93RXJyb3IoInZhbHVlIG91dC1vZi1ib3VuZHMiLGNoLmVycm9ycy5CVUZGRVJfT1ZFUlJVTix7bGVuZ3RoOnRoaXMud29yZFNpemUsb2Zmc2V0OnQubGVuZ3RofSksdC5sZW5ndGgldGhpcy53b3JkU2l6ZSYmKHQ9eWgoW3RoaXMuX3BhZGRpbmcuc2xpY2UodC5sZW5ndGgldGhpcy53b3JkU2l6ZSksdF0pKSx0fXdyaXRlVmFsdWUoZSl7cmV0dXJuIHRoaXMuX3dyaXRlRGF0YSh0aGlzLl9nZXRWYWx1ZShlKSl9d3JpdGVVcGRhdGFibGVWYWx1ZSgpe2NvbnN0IGU9dGhpcy5fZGF0YS5sZW5ndGg7cmV0dXJuIHRoaXMuX2RhdGEucHVzaCh0aGlzLl9wYWRkaW5nKSx0aGlzLl9kYXRhTGVuZ3RoKz10aGlzLndvcmRTaXplLHQ9Pnt0aGlzLl9kYXRhW2VdPXRoaXMuX2dldFZhbHVlKHQpfX19Y2xhc3MgUmh7Y29uc3RydWN0b3IoZSx0LHIsbil7VGgodGhpcywiX2RhdGEiLGdoKGUpKSxUaCh0aGlzLCJ3b3JkU2l6ZSIsdHx8MzIpLFRoKHRoaXMsIl9jb2VyY2VGdW5jIixyKSxUaCh0aGlzLCJhbGxvd0xvb3NlIixuKSx0aGlzLl9vZmZzZXQ9MH1nZXQgZGF0YSgpe3JldHVybiBtaCh0aGlzLl9kYXRhKX1nZXQgY29uc3VtZWQoKXtyZXR1cm4gdGhpcy5fb2Zmc2V0fXN0YXRpYyBjb2VyY2UoZSx0KXtsZXQgcj1lLm1hdGNoKCJedT9pbnQoWzAtOV0rKSQiKTtyZXR1cm4gciYmcGFyc2VJbnQoclsxXSk8PTQ4JiYodD10LnRvTnVtYmVyKCkpLHR9Y29lcmNlKGUsdCl7cmV0dXJuIHRoaXMuX2NvZXJjZUZ1bmM/dGhpcy5fY29lcmNlRnVuYyhlLHQpOlJoLmNvZXJjZShlLHQpfV9wZWVrQnl0ZXMoZSx0LHIpe2xldCBuPU1hdGguY2VpbCh0L3RoaXMud29yZFNpemUpKnRoaXMud29yZFNpemU7cmV0dXJuIHRoaXMuX29mZnNldCtuPnRoaXMuX2RhdGEubGVuZ3RoJiYodGhpcy5hbGxvd0xvb3NlJiZyJiZ0aGlzLl9vZmZzZXQrdDw9dGhpcy5fZGF0YS5sZW5ndGg/bj10OlNoLnRocm93RXJyb3IoImRhdGEgb3V0LW9mLWJvdW5kcyIsY2guZXJyb3JzLkJVRkZFUl9PVkVSUlVOLHtsZW5ndGg6dGhpcy5fZGF0YS5sZW5ndGgsb2Zmc2V0OnRoaXMuX29mZnNldCtufSkpLHRoaXMuX2RhdGEuc2xpY2UodGhpcy5fb2Zmc2V0LHRoaXMuX29mZnNldCtuKX1zdWJSZWFkZXIoZSl7cmV0dXJuIG5ldyBSaCh0aGlzLl9kYXRhLnNsaWNlKHRoaXMuX29mZnNldCtlKSx0aGlzLndvcmRTaXplLHRoaXMuX2NvZXJjZUZ1bmMsdGhpcy5hbGxvd0xvb3NlKX1yZWFkQnl0ZXMoZSx0KXtsZXQgcj10aGlzLl9wZWVrQnl0ZXMoMCxlLCEhdCk7cmV0dXJuIHRoaXMuX29mZnNldCs9ci5sZW5ndGgsci5zbGljZSgwLGUpfXJlYWRWYWx1ZSgpe3JldHVybiBNaC5mcm9tKHRoaXMucmVhZEJ5dGVzKHRoaXMud29yZFNpemUpKX19dmFyIE5oPW8oMTA5NCksVWg9by5uKE5oKTtjb25zdCBEaD1uZXcgY2goImFkZHJlc3MvNS43LjAiKTtmdW5jdGlvbiBMaChlKXtiaChlLDIwKXx8RGgudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGFkZHJlc3MiLCJhZGRyZXNzIixlKTtjb25zdCB0PShlPWUudG9Mb3dlckNhc2UoKSkuc3Vic3RyaW5nKDIpLnNwbGl0KCIiKSxyPW5ldyBVaW50OEFycmF5KDQwKTtmb3IobGV0IGU9MDtlPDQwO2UrKylyW2VdPXRbZV0uY2hhckNvZGVBdCgwKTtjb25zdCBuPWdoKChvPXIsIjB4IitVaCgpLmtlY2Nha18yNTYoZ2gobykpKSk7dmFyIG87Zm9yKGxldCBlPTA7ZTw0MDtlKz0yKW5bZT4+MV0+PjQ+PTgmJih0W2VdPXRbZV0udG9VcHBlckNhc2UoKSksKDE1Jm5bZT4+MV0pPj04JiYodFtlKzFdPXRbZSsxXS50b1VwcGVyQ2FzZSgpKTtyZXR1cm4iMHgiK3Quam9pbigiIil9Y29uc3Qgamg9e307Zm9yKGxldCBlPTA7ZTwxMDtlKyspamhbU3RyaW5nKGUpXT1TdHJpbmcoZSk7Zm9yKGxldCBlPTA7ZTwyNjtlKyspamhbU3RyaW5nLmZyb21DaGFyQ29kZSg2NStlKV09U3RyaW5nKDEwK2UpO2NvbnN0IHpoPU1hdGguZmxvb3IoKCRoPTkwMDcxOTkyNTQ3NDA5OTEsTWF0aC5sb2cxMD9NYXRoLmxvZzEwKCRoKTpNYXRoLmxvZygkaCkvTWF0aC5MTjEwKSk7dmFyICRoO2Z1bmN0aW9uIFZoKGUpe2xldCB0PW51bGw7aWYoInN0cmluZyIhPXR5cGVvZiBlJiZEaC50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgYWRkcmVzcyIsImFkZHJlc3MiLGUpLGUubWF0Y2goL14oMHgpP1swLTlhLWZBLUZdezQwfSQvKSkiMHgiIT09ZS5zdWJzdHJpbmcoMCwyKSYmKGU9IjB4IitlKSx0PUxoKGUpLGUubWF0Y2goLyhbQS1GXS4qW2EtZl0pfChbYS1mXS4qW0EtRl0pLykmJnQhPT1lJiZEaC50aHJvd0FyZ3VtZW50RXJyb3IoImJhZCBhZGRyZXNzIGNoZWNrc3VtIiwiYWRkcmVzcyIsZSk7ZWxzZSBpZihlLm1hdGNoKC9eWEVbMC05XXsyfVswLTlBLVphLXpdezMwLDMxfSQvKSl7Zm9yKGUuc3Vic3RyaW5nKDIsNCkhPT1mdW5jdGlvbihlKXtsZXQgdD0oZT0oZT1lLnRvVXBwZXJDYXNlKCkpLnN1YnN0cmluZyg0KStlLnN1YnN0cmluZygwLDIpKyIwMCIpLnNwbGl0KCIiKS5tYXAoKGU9PmpoW2VdKSkuam9pbigiIik7Zm9yKDt0Lmxlbmd0aD49emg7KXtsZXQgZT10LnN1YnN0cmluZygwLHpoKTt0PXBhcnNlSW50KGUsMTApJTk3K3Quc3Vic3RyaW5nKGUubGVuZ3RoKX1sZXQgcj1TdHJpbmcoOTgtcGFyc2VJbnQodCwxMCklOTcpO2Zvcig7ci5sZW5ndGg8Mjspcj0iMCIrcjtyZXR1cm4gcn0oZSkmJkRoLnRocm93QXJndW1lbnRFcnJvcigiYmFkIGljYXAgY2hlY2tzdW0iLCJhZGRyZXNzIixlKSxyPWUuc3Vic3RyaW5nKDQpLHQ9bmV3IFBoKHIsMzYpLnRvU3RyaW5nKDE2KTt0Lmxlbmd0aDw0MDspdD0iMCIrdDt0PUxoKCIweCIrdCl9ZWxzZSBEaC50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgYWRkcmVzcyIsImFkZHJlc3MiLGUpO3ZhciByO3JldHVybiB0fWNsYXNzIEdoIGV4dGVuZHMgRmh7Y29uc3RydWN0b3IoZSl7c3VwZXIoImFkZHJlc3MiLCJhZGRyZXNzIixlLCExKX1kZWZhdWx0VmFsdWUoKXtyZXR1cm4iMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn1lbmNvZGUoZSx0KXt0cnl7dD1WaCh0KX1jYXRjaChlKXt0aGlzLl90aHJvd0Vycm9yKGUubWVzc2FnZSx0KX1yZXR1cm4gZS53cml0ZVZhbHVlKHQpfWRlY29kZShlKXtyZXR1cm4gVmgoZnVuY3Rpb24oZSx0KXtmb3IoInN0cmluZyIhPXR5cGVvZiBlP2U9bWgoZSk6YmgoZSl8fGxoLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBoZXggc3RyaW5nIiwidmFsdWUiLGUpLGUubGVuZ3RoPjIqdCsyJiZsaC50aHJvd0FyZ3VtZW50RXJyb3IoInZhbHVlIG91dCBvZiByYW5nZSIsInZhbHVlIixhcmd1bWVudHNbMV0pO2UubGVuZ3RoPDIqdCsyOyllPSIweDAiK2Uuc3Vic3RyaW5nKDIpO3JldHVybiBlfShlLnJlYWRWYWx1ZSgpLnRvSGV4U3RyaW5nKCksMjApKX19Y2xhc3MgSGggZXh0ZW5kcyBGaHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLm5hbWUsZS50eXBlLHZvaWQgMCxlLmR5bmFtaWMpLHRoaXMuY29kZXI9ZX1kZWZhdWx0VmFsdWUoKXtyZXR1cm4gdGhpcy5jb2Rlci5kZWZhdWx0VmFsdWUoKX1lbmNvZGUoZSx0KXtyZXR1cm4gdGhpcy5jb2Rlci5lbmNvZGUoZSx0KX1kZWNvZGUoZSl7cmV0dXJuIHRoaXMuY29kZXIuZGVjb2RlKGUpfX1jb25zdCBLaD1uZXcgY2god2gpO2Z1bmN0aW9uIFpoKGUsdCxyKXtsZXQgbj1udWxsO2lmKEFycmF5LmlzQXJyYXkocikpbj1yO2Vsc2UgaWYociYmIm9iamVjdCI9PXR5cGVvZiByKXtsZXQgZT17fTtuPXQubWFwKCh0PT57Y29uc3Qgbj10LmxvY2FsTmFtZTtyZXR1cm4gbnx8S2gudGhyb3dFcnJvcigiY2Fubm90IGVuY29kZSBvYmplY3QgZm9yIHNpZ25hdHVyZSB3aXRoIG1pc3NpbmcgbmFtZXMiLGNoLmVycm9ycy5JTlZBTElEX0FSR1VNRU5ULHthcmd1bWVudDoidmFsdWVzIixjb2Rlcjp0LHZhbHVlOnJ9KSxlW25dJiZLaC50aHJvd0Vycm9yKCJjYW5ub3QgZW5jb2RlIG9iamVjdCBmb3Igc2lnbmF0dXJlIHdpdGggZHVwbGljYXRlIG5hbWVzIixjaC5lcnJvcnMuSU5WQUxJRF9BUkdVTUVOVCx7YXJndW1lbnQ6InZhbHVlcyIsY29kZXI6dCx2YWx1ZTpyfSksZVtuXT0hMCxyW25dfSkpfWVsc2UgS2gudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIHR1cGxlIHZhbHVlIiwidHVwbGUiLHIpO3QubGVuZ3RoIT09bi5sZW5ndGgmJktoLnRocm93QXJndW1lbnRFcnJvcigidHlwZXMvdmFsdWUgbGVuZ3RoIG1pc21hdGNoIiwidHVwbGUiLHIpO2xldCBvPW5ldyBfaChlLndvcmRTaXplKSxpPW5ldyBfaChlLndvcmRTaXplKSxhPVtdO3QuZm9yRWFjaCgoKGUsdCk9PntsZXQgcj1uW3RdO2lmKGUuZHluYW1pYyl7bGV0IHQ9aS5sZW5ndGg7ZS5lbmNvZGUoaSxyKTtsZXQgbj1vLndyaXRlVXBkYXRhYmxlVmFsdWUoKTthLnB1c2goKGU9PntuKGUrdCl9KSl9ZWxzZSBlLmVuY29kZShvLHIpfSkpLGEuZm9yRWFjaCgoZT0+e2Uoby5sZW5ndGgpfSkpO2xldCBzPWUuYXBwZW5kV3JpdGVyKG8pO3JldHVybiBzKz1lLmFwcGVuZFdyaXRlcihpKSxzfWZ1bmN0aW9uIHFoKGUsdCl7bGV0IHI9W10sbj1lLnN1YlJlYWRlcigwKTt0LmZvckVhY2goKHQ9PntsZXQgbz1udWxsO2lmKHQuZHluYW1pYyl7bGV0IHI9ZS5yZWFkVmFsdWUoKSxpPW4uc3ViUmVhZGVyKHIudG9OdW1iZXIoKSk7dHJ5e289dC5kZWNvZGUoaSl9Y2F0Y2goZSl7aWYoZS5jb2RlPT09Y2guZXJyb3JzLkJVRkZFUl9PVkVSUlVOKXRocm93IGU7bz1lLG8uYmFzZVR5cGU9dC5uYW1lLG8ubmFtZT10LmxvY2FsTmFtZSxvLnR5cGU9dC50eXBlfX1lbHNlIHRyeXtvPXQuZGVjb2RlKGUpfWNhdGNoKGUpe2lmKGUuY29kZT09PWNoLmVycm9ycy5CVUZGRVJfT1ZFUlJVTil0aHJvdyBlO289ZSxvLmJhc2VUeXBlPXQubmFtZSxvLm5hbWU9dC5sb2NhbE5hbWUsby50eXBlPXQudHlwZX1udWxsIT1vJiZyLnB1c2gobyl9KSk7Y29uc3Qgbz10LnJlZHVjZSgoKGUsdCk9Pntjb25zdCByPXQubG9jYWxOYW1lO3JldHVybiByJiYoZVtyXXx8KGVbcl09MCksZVtyXSsrKSxlfSkse30pO3QuZm9yRWFjaCgoKGUsdCk9PntsZXQgbj1lLmxvY2FsTmFtZTtpZighbnx8MSE9PW9bbl0pcmV0dXJuO2lmKCJsZW5ndGgiPT09biYmKG49Il9sZW5ndGgiKSxudWxsIT1yW25dKXJldHVybjtjb25zdCBpPXJbdF07aSBpbnN0YW5jZW9mIEVycm9yP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG4se2VudW1lcmFibGU6ITAsZ2V0OigpPT57dGhyb3cgaX19KTpyW25dPWl9KSk7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe2NvbnN0IHQ9cltlXTt0IGluc3RhbmNlb2YgRXJyb3ImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGUse2VudW1lcmFibGU6ITAsZ2V0OigpPT57dGhyb3cgdH19KX1yZXR1cm4gT2JqZWN0LmZyZWV6ZShyKX1jbGFzcyBKaCBleHRlbmRzIEZoe2NvbnN0cnVjdG9yKGUsdCxyKXtzdXBlcigiYXJyYXkiLGUudHlwZSsiWyIrKHQ+PTA/dDoiIikrIl0iLHIsLTE9PT10fHxlLmR5bmFtaWMpLHRoaXMuY29kZXI9ZSx0aGlzLmxlbmd0aD10fWRlZmF1bHRWYWx1ZSgpe2NvbnN0IGU9dGhpcy5jb2Rlci5kZWZhdWx0VmFsdWUoKSx0PVtdO2ZvcihsZXQgcj0wO3I8dGhpcy5sZW5ndGg7cisrKXQucHVzaChlKTtyZXR1cm4gdH1lbmNvZGUoZSx0KXtBcnJheS5pc0FycmF5KHQpfHx0aGlzLl90aHJvd0Vycm9yKCJleHBlY3RlZCBhcnJheSB2YWx1ZSIsdCk7bGV0IHI9dGhpcy5sZW5ndGg7LTE9PT1yJiYocj10Lmxlbmd0aCxlLndyaXRlVmFsdWUodC5sZW5ndGgpKSxLaC5jaGVja0FyZ3VtZW50Q291bnQodC5sZW5ndGgsciwiY29kZXIgYXJyYXkiKyh0aGlzLmxvY2FsTmFtZT8iICIrdGhpcy5sb2NhbE5hbWU6IiIpKTtsZXQgbj1bXTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyluLnB1c2godGhpcy5jb2Rlcik7cmV0dXJuIFpoKGUsbix0KX1kZWNvZGUoZSl7bGV0IHQ9dGhpcy5sZW5ndGg7LTE9PT10JiYodD1lLnJlYWRWYWx1ZSgpLnRvTnVtYmVyKCksMzIqdD5lLl9kYXRhLmxlbmd0aCYmS2gudGhyb3dFcnJvcigiaW5zdWZmaWNpZW50IGRhdGEgbGVuZ3RoIixjaC5lcnJvcnMuQlVGRkVSX09WRVJSVU4se2xlbmd0aDplLl9kYXRhLmxlbmd0aCxjb3VudDp0fSkpO2xldCByPVtdO2ZvcihsZXQgZT0wO2U8dDtlKyspci5wdXNoKG5ldyBIaCh0aGlzLmNvZGVyKSk7cmV0dXJuIGUuY29lcmNlKHRoaXMubmFtZSxxaChlLHIpKX19Y2xhc3MgWWggZXh0ZW5kcyBGaHtjb25zdHJ1Y3RvcihlKXtzdXBlcigiYm9vbCIsImJvb2wiLGUsITEpfWRlZmF1bHRWYWx1ZSgpe3JldHVybiExfWVuY29kZShlLHQpe3JldHVybiBlLndyaXRlVmFsdWUodD8xOjApfWRlY29kZShlKXtyZXR1cm4gZS5jb2VyY2UodGhpcy50eXBlLCFlLnJlYWRWYWx1ZSgpLmlzWmVybygpKX19Y2xhc3MgWGggZXh0ZW5kcyBGaHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsZSx0LCEwKX1kZWZhdWx0VmFsdWUoKXtyZXR1cm4iMHgifWVuY29kZShlLHQpe3Q9Z2godCk7bGV0IHI9ZS53cml0ZVZhbHVlKHQubGVuZ3RoKTtyZXR1cm4gcis9ZS53cml0ZUJ5dGVzKHQpLHJ9ZGVjb2RlKGUpe3JldHVybiBlLnJlYWRCeXRlcyhlLnJlYWRWYWx1ZSgpLnRvTnVtYmVyKCksITApfX1jbGFzcyBRaCBleHRlbmRzIFhoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKCJieXRlcyIsZSl9ZGVjb2RlKGUpe3JldHVybiBlLmNvZXJjZSh0aGlzLm5hbWUsbWgoc3VwZXIuZGVjb2RlKGUpKSl9fWNsYXNzIGVnIGV4dGVuZHMgRmh7Y29uc3RydWN0b3IoZSx0KXtsZXQgcj0iYnl0ZXMiK1N0cmluZyhlKTtzdXBlcihyLHIsdCwhMSksdGhpcy5zaXplPWV9ZGVmYXVsdFZhbHVlKCl7cmV0dXJuIjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIuc3Vic3RyaW5nKDAsMisyKnRoaXMuc2l6ZSl9ZW5jb2RlKGUsdCl7bGV0IHI9Z2godCk7cmV0dXJuIHIubGVuZ3RoIT09dGhpcy5zaXplJiZ0aGlzLl90aHJvd0Vycm9yKCJpbmNvcnJlY3QgZGF0YSBsZW5ndGgiLHQpLGUud3JpdGVCeXRlcyhyKX1kZWNvZGUoZSl7cmV0dXJuIGUuY29lcmNlKHRoaXMubmFtZSxtaChlLnJlYWRCeXRlcyh0aGlzLnNpemUpKSl9fWNsYXNzIHRnIGV4dGVuZHMgRmh7Y29uc3RydWN0b3IoZSl7c3VwZXIoIm51bGwiLCIiLGUsITEpfWRlZmF1bHRWYWx1ZSgpe3JldHVybiBudWxsfWVuY29kZShlLHQpe3JldHVybiBudWxsIT10JiZ0aGlzLl90aHJvd0Vycm9yKCJub3QgbnVsbCIsdCksZS53cml0ZUJ5dGVzKFtdKX1kZWNvZGUoZSl7cmV0dXJuIGUucmVhZEJ5dGVzKDApLGUuY29lcmNlKHRoaXMubmFtZSxudWxsKX19Y29uc3Qgcmc9TWguZnJvbSgtMSksbmc9TWguZnJvbSgwKSxvZz1NaC5mcm9tKDEpLGlnPU1oLmZyb20oIjB4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiIpO2NsYXNzIGFnIGV4dGVuZHMgRmh7Y29uc3RydWN0b3IoZSx0LHIpe2NvbnN0IG49KHQ/ImludCI6InVpbnQiKSs4KmU7c3VwZXIobixuLHIsITEpLHRoaXMuc2l6ZT1lLHRoaXMuc2lnbmVkPXR9ZGVmYXVsdFZhbHVlKCl7cmV0dXJuIDB9ZW5jb2RlKGUsdCl7bGV0IHI9TWguZnJvbSh0KSxuPWlnLm1hc2soOCplLndvcmRTaXplKTtpZih0aGlzLnNpZ25lZCl7bGV0IGU9bi5tYXNrKDgqdGhpcy5zaXplLTEpOyhyLmd0KGUpfHxyLmx0KGUuYWRkKG9nKS5tdWwocmcpKSkmJnRoaXMuX3Rocm93RXJyb3IoInZhbHVlIG91dC1vZi1ib3VuZHMiLHQpfWVsc2Uoci5sdChuZyl8fHIuZ3Qobi5tYXNrKDgqdGhpcy5zaXplKSkpJiZ0aGlzLl90aHJvd0Vycm9yKCJ2YWx1ZSBvdXQtb2YtYm91bmRzIix0KTtyZXR1cm4gcj1yLnRvVHdvcyg4KnRoaXMuc2l6ZSkubWFzayg4KnRoaXMuc2l6ZSksdGhpcy5zaWduZWQmJihyPXIuZnJvbVR3b3MoOCp0aGlzLnNpemUpLnRvVHdvcyg4KmUud29yZFNpemUpKSxlLndyaXRlVmFsdWUocil9ZGVjb2RlKGUpe2xldCB0PWUucmVhZFZhbHVlKCkubWFzayg4KnRoaXMuc2l6ZSk7cmV0dXJuIHRoaXMuc2lnbmVkJiYodD10LmZyb21Ud29zKDgqdGhpcy5zaXplKSksZS5jb2VyY2UodGhpcy5uYW1lLHQpfX1jb25zdCBzZz1uZXcgY2goInN0cmluZ3MvNS43LjAiKTt2YXIgdWcsY2c7ZnVuY3Rpb24gbGcoZSx0LHIsbixvKXtpZihlPT09Y2cuQkFEX1BSRUZJWHx8ZT09PWNnLlVORVhQRUNURURfQ09OVElOVUUpe2xldCBlPTA7Zm9yKGxldCBuPXQrMTtuPHIubGVuZ3RoJiZyW25dPj42PT0yO24rKyllKys7cmV0dXJuIGV9cmV0dXJuIGU9PT1jZy5PVkVSUlVOP3IubGVuZ3RoLXQtMTowfSFmdW5jdGlvbihlKXtlLmN1cnJlbnQ9IiIsZS5ORkM9Ik5GQyIsZS5ORkQ9Ik5GRCIsZS5ORktDPSJORktDIixlLk5GS0Q9Ik5GS0QifSh1Z3x8KHVnPXt9KSksZnVuY3Rpb24oZSl7ZS5VTkVYUEVDVEVEX0NPTlRJTlVFPSJ1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBieXRlIixlLkJBRF9QUkVGSVg9ImJhZCBjb2RlcG9pbnQgcHJlZml4IixlLk9WRVJSVU49InN0cmluZyBvdmVycnVuIixlLk1JU1NJTkdfQ09OVElOVUU9Im1pc3NpbmcgY29udGludWF0aW9uIGJ5dGUiLGUuT1VUX09GX1JBTkdFPSJvdXQgb2YgVVRGLTggcmFuZ2UiLGUuVVRGMTZfU1VSUk9HQVRFPSJVVEYtMTYgc3Vycm9nYXRlIixlLk9WRVJMT05HPSJvdmVybG9uZyByZXByZXNlbnRhdGlvbiJ9KGNnfHwoY2c9e30pKTtjb25zdCBkZz1PYmplY3QuZnJlZXplKHtlcnJvcjpmdW5jdGlvbihlLHQscixuLG8pe3JldHVybiBzZy50aHJvd0FyZ3VtZW50RXJyb3IoYGludmFsaWQgY29kZXBvaW50IGF0IG9mZnNldCAke3R9OyAke2V9YCwiYnl0ZXMiLHIpfSxpZ25vcmU6bGcscmVwbGFjZTpmdW5jdGlvbihlLHQscixuLG8pe3JldHVybiBlPT09Y2cuT1ZFUkxPTkc/KG4ucHVzaChvKSwwKToobi5wdXNoKDY1NTMzKSxsZyhlLHQscikpfX0pO2Z1bmN0aW9uIGZnKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7bnVsbD09dCYmKHQ9ZGcuZXJyb3IpLGU9Z2goZSk7Y29uc3Qgcj1bXTtsZXQgbj0wO2Zvcig7bjxlLmxlbmd0aDspe2NvbnN0IG89ZVtuKytdO2lmKG8+Pjc9PTApe3IucHVzaChvKTtjb250aW51ZX1sZXQgaT1udWxsLGE9bnVsbDtpZigxOTI9PSgyMjQmbykpaT0xLGE9MTI3O2Vsc2UgaWYoMjI0PT0oMjQwJm8pKWk9MixhPTIwNDc7ZWxzZXtpZigyNDAhPSgyNDgmbykpe24rPXQoMTI4PT0oMTkyJm8pP2NnLlVORVhQRUNURURfQ09OVElOVUU6Y2cuQkFEX1BSRUZJWCxuLTEsZSxyKTtjb250aW51ZX1pPTMsYT02NTUzNX1pZihuLTEraT49ZS5sZW5ndGgpe24rPXQoY2cuT1ZFUlJVTixuLTEsZSxyKTtjb250aW51ZX1sZXQgcz1vJigxPDw4LWktMSktMTtmb3IobGV0IG89MDtvPGk7bysrKXtsZXQgbz1lW25dO2lmKDEyOCE9KDE5MiZvKSl7bis9dChjZy5NSVNTSU5HX0NPTlRJTlVFLG4sZSxyKSxzPW51bGw7YnJlYWt9cz1zPDw2fDYzJm8sbisrfW51bGwhPT1zJiYocz4xMTE0MTExP24rPXQoY2cuT1VUX09GX1JBTkdFLG4tMS1pLGUscixzKTpzPj01NTI5NiYmczw9NTczNDM/bis9dChjZy5VVEYxNl9TVVJST0dBVEUsbi0xLWksZSxyLHMpOnM8PWE/bis9dChjZy5PVkVSTE9ORyxuLTEtaSxlLHIscyk6ci5wdXNoKHMpKX1yZXR1cm4gcn0oZSx0KS5tYXAoKGU9PmU8PTY1NTM1P1N0cmluZy5mcm9tQ2hhckNvZGUoZSk6KGUtPTY1NTM2LFN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGU+PjEwJjEwMjMpLDU2MzIwKygxMDIzJmUpKSkpKS5qb2luKCIiKX1jbGFzcyBwZyBleHRlbmRzIFhoe2NvbnN0cnVjdG9yKGUpe3N1cGVyKCJzdHJpbmciLGUpfWRlZmF1bHRWYWx1ZSgpe3JldHVybiIifWVuY29kZShlLHQpe3JldHVybiBzdXBlci5lbmNvZGUoZSxmdW5jdGlvbihlLHQ9dWcuY3VycmVudCl7dCE9dWcuY3VycmVudCYmKHNnLmNoZWNrTm9ybWFsaXplKCksZT1lLm5vcm1hbGl6ZSh0KSk7bGV0IHI9W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZS5jaGFyQ29kZUF0KHQpO2lmKG48MTI4KXIucHVzaChuKTtlbHNlIGlmKG48MjA0OClyLnB1c2gobj4+NnwxOTIpLHIucHVzaCg2MyZufDEyOCk7ZWxzZSBpZig1NTI5Nj09KDY0NTEyJm4pKXt0Kys7Y29uc3Qgbz1lLmNoYXJDb2RlQXQodCk7aWYodD49ZS5sZW5ndGh8fDU2MzIwIT0oNjQ1MTImbykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHV0Zi04IHN0cmluZyIpO2NvbnN0IGk9NjU1MzYrKCgxMDIzJm4pPDwxMCkrKDEwMjMmbyk7ci5wdXNoKGk+PjE4fDI0MCksci5wdXNoKGk+PjEyJjYzfDEyOCksci5wdXNoKGk+PjYmNjN8MTI4KSxyLnB1c2goNjMmaXwxMjgpfWVsc2Ugci5wdXNoKG4+PjEyfDIyNCksci5wdXNoKG4+PjYmNjN8MTI4KSxyLnB1c2goNjMmbnwxMjgpfXJldHVybiBnaChyKX0odCkpfWRlY29kZShlKXtyZXR1cm4gZmcoc3VwZXIuZGVjb2RlKGUpKX19Y2xhc3MgaGcgZXh0ZW5kcyBGaHtjb25zdHJ1Y3RvcihlLHQpe2xldCByPSExO2NvbnN0IG49W107ZS5mb3JFYWNoKChlPT57ZS5keW5hbWljJiYocj0hMCksbi5wdXNoKGUudHlwZSl9KSksc3VwZXIoInR1cGxlIiwidHVwbGUoIituLmpvaW4oIiwiKSsiKSIsdCxyKSx0aGlzLmNvZGVycz1lfWRlZmF1bHRWYWx1ZSgpe2NvbnN0IGU9W107dGhpcy5jb2RlcnMuZm9yRWFjaCgodD0+e2UucHVzaCh0LmRlZmF1bHRWYWx1ZSgpKX0pKTtjb25zdCB0PXRoaXMuY29kZXJzLnJlZHVjZSgoKGUsdCk9Pntjb25zdCByPXQubG9jYWxOYW1lO3JldHVybiByJiYoZVtyXXx8KGVbcl09MCksZVtyXSsrKSxlfSkse30pO3JldHVybiB0aGlzLmNvZGVycy5mb3JFYWNoKCgocixuKT0+e2xldCBvPXIubG9jYWxOYW1lO28mJjE9PT10W29dJiYoImxlbmd0aCI9PT1vJiYobz0iX2xlbmd0aCIpLG51bGw9PWVbb10mJihlW29dPWVbbl0pKX0pKSxPYmplY3QuZnJlZXplKGUpfWVuY29kZShlLHQpe3JldHVybiBaaChlLHRoaXMuY29kZXJzLHQpfWRlY29kZShlKXtyZXR1cm4gZS5jb2VyY2UodGhpcy5uYW1lLHFoKGUsdGhpcy5jb2RlcnMpKX19Y29uc3QgZ2c9bmV3IGNoKHdoKSx5Zz17fTtsZXQgYmc9e2NhbGxkYXRhOiEwLG1lbW9yeTohMCxzdG9yYWdlOiEwfSx2Zz17Y2FsbGRhdGE6ITAsbWVtb3J5OiEwfTtmdW5jdGlvbiBtZyhlLHQpe2lmKCJieXRlcyI9PT1lfHwic3RyaW5nIj09PWUpe2lmKGJnW3RdKXJldHVybiEwfWVsc2UgaWYoImFkZHJlc3MiPT09ZSl7aWYoInBheWFibGUiPT09dClyZXR1cm4hMH1lbHNlIGlmKChlLmluZGV4T2YoIlsiKT49MHx8InR1cGxlIj09PWUpJiZ2Z1t0XSlyZXR1cm4hMDtyZXR1cm4oYmdbdF18fCJwYXlhYmxlIj09PXQpJiZnZy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgbW9kaWZpZXIiLCJuYW1lIix0KSwhMX1mdW5jdGlvbiBUZyhlLHQpe2ZvcihsZXQgciBpbiB0KVRoKGUscix0W3JdKX1jb25zdCB3Zz1PYmplY3QuZnJlZXplKHtzaWdoYXNoOiJzaWdoYXNoIixtaW5pbWFsOiJtaW5pbWFsIixmdWxsOiJmdWxsIixqc29uOiJqc29uIn0pLEFnPW5ldyBSZWdFeHAoL14oLiopXFsoWzAtOV0qKVxdJC8pO2NsYXNzIFBne2NvbnN0cnVjdG9yKGUsdCl7ZSE9PXlnJiZnZy50aHJvd0Vycm9yKCJ1c2UgZnJvbVN0cmluZyIsY2guZXJyb3JzLlVOU1VQUE9SVEVEX09QRVJBVElPTix7b3BlcmF0aW9uOiJuZXcgUGFyYW1UeXBlKCkifSksVGcodGhpcyx0KTtsZXQgcj10aGlzLnR5cGUubWF0Y2goQWcpO1RnKHRoaXMscj97YXJyYXlMZW5ndGg6cGFyc2VJbnQoclsyXXx8Ii0xIiksYXJyYXlDaGlsZHJlbjpQZy5mcm9tT2JqZWN0KHt0eXBlOnJbMV0sY29tcG9uZW50czp0aGlzLmNvbXBvbmVudHN9KSxiYXNlVHlwZToiYXJyYXkifTp7YXJyYXlMZW5ndGg6bnVsbCxhcnJheUNoaWxkcmVuOm51bGwsYmFzZVR5cGU6bnVsbCE9dGhpcy5jb21wb25lbnRzPyJ0dXBsZSI6dGhpcy50eXBlfSksdGhpcy5faXNQYXJhbVR5cGU9ITAsT2JqZWN0LmZyZWV6ZSh0aGlzKX1mb3JtYXQoZSl7aWYoZXx8KGU9d2cuc2lnaGFzaCksd2dbZV18fGdnLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBmb3JtYXQgdHlwZSIsImZvcm1hdCIsZSksZT09PXdnLmpzb24pe2xldCB0PXt0eXBlOiJ0dXBsZSI9PT10aGlzLmJhc2VUeXBlPyJ0dXBsZSI6dGhpcy50eXBlLG5hbWU6dGhpcy5uYW1lfHx2b2lkIDB9O3JldHVybiJib29sZWFuIj09dHlwZW9mIHRoaXMuaW5kZXhlZCYmKHQuaW5kZXhlZD10aGlzLmluZGV4ZWQpLHRoaXMuY29tcG9uZW50cyYmKHQuY29tcG9uZW50cz10aGlzLmNvbXBvbmVudHMubWFwKCh0PT5KU09OLnBhcnNlKHQuZm9ybWF0KGUpKSkpKSxKU09OLnN0cmluZ2lmeSh0KX1sZXQgdD0iIjtyZXR1cm4iYXJyYXkiPT09dGhpcy5iYXNlVHlwZT8odCs9dGhpcy5hcnJheUNoaWxkcmVuLmZvcm1hdChlKSx0Kz0iWyIrKHRoaXMuYXJyYXlMZW5ndGg8MD8iIjpTdHJpbmcodGhpcy5hcnJheUxlbmd0aCkpKyJdIik6InR1cGxlIj09PXRoaXMuYmFzZVR5cGU/KGUhPT13Zy5zaWdoYXNoJiYodCs9dGhpcy50eXBlKSx0Kz0iKCIrdGhpcy5jb21wb25lbnRzLm1hcCgodD0+dC5mb3JtYXQoZSkpKS5qb2luKGU9PT13Zy5mdWxsPyIsICI6IiwiKSsiKSIpOnQrPXRoaXMudHlwZSxlIT09d2cuc2lnaGFzaCYmKCEwPT09dGhpcy5pbmRleGVkJiYodCs9IiBpbmRleGVkIiksZT09PXdnLmZ1bGwmJnRoaXMubmFtZSYmKHQrPSIgIit0aGlzLm5hbWUpKSx0fXN0YXRpYyBmcm9tKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP1BnLmZyb21TdHJpbmcoZSx0KTpQZy5mcm9tT2JqZWN0KGUpfXN0YXRpYyBmcm9tT2JqZWN0KGUpe3JldHVybiBQZy5pc1BhcmFtVHlwZShlKT9lOm5ldyBQZyh5Zyx7bmFtZTplLm5hbWV8fG51bGwsdHlwZTpXZyhlLnR5cGUpLGluZGV4ZWQ6bnVsbD09ZS5pbmRleGVkP251bGw6ISFlLmluZGV4ZWQsY29tcG9uZW50czplLmNvbXBvbmVudHM/ZS5jb21wb25lbnRzLm1hcChQZy5mcm9tT2JqZWN0KTpudWxsfSl9c3RhdGljIGZyb21TdHJpbmcoZSx0KXtyZXR1cm4gcj1mdW5jdGlvbihlLHQpe2xldCByPWU7ZnVuY3Rpb24gbih0KXtnZy50aHJvd0FyZ3VtZW50RXJyb3IoYHVuZXhwZWN0ZWQgY2hhcmFjdGVyIGF0IHBvc2l0aW9uICR7dH1gLCJwYXJhbSIsZSl9ZnVuY3Rpb24gbyhlKXtsZXQgcj17dHlwZToiIixuYW1lOiIiLHBhcmVudDplLHN0YXRlOnthbGxvd1R5cGU6ITB9fTtyZXR1cm4gdCYmKHIuaW5kZXhlZD0hMSkscn1lPWUucmVwbGFjZSgvXHMvZywiICIpO2xldCBpPXt0eXBlOiIiLG5hbWU6IiIsc3RhdGU6e2FsbG93VHlwZTohMH19LGE9aTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IGk9ZVtyXTtzd2l0Y2goaSl7Y2FzZSIoIjphLnN0YXRlLmFsbG93VHlwZSYmIiI9PT1hLnR5cGU/YS50eXBlPSJ0dXBsZSI6YS5zdGF0ZS5hbGxvd1BhcmFtc3x8bihyKSxhLnN0YXRlLmFsbG93VHlwZT0hMSxhLnR5cGU9V2coYS50eXBlKSxhLmNvbXBvbmVudHM9W28oYSldLGE9YS5jb21wb25lbnRzWzBdO2JyZWFrO2Nhc2UiKSI6ZGVsZXRlIGEuc3RhdGUsImluZGV4ZWQiPT09YS5uYW1lJiYodHx8bihyKSxhLmluZGV4ZWQ9ITAsYS5uYW1lPSIiKSxtZyhhLnR5cGUsYS5uYW1lKSYmKGEubmFtZT0iIiksYS50eXBlPVdnKGEudHlwZSk7bGV0IGU9YTthPWEucGFyZW50LGF8fG4ociksZGVsZXRlIGUucGFyZW50LGEuc3RhdGUuYWxsb3dQYXJhbXM9ITEsYS5zdGF0ZS5hbGxvd05hbWU9ITAsYS5zdGF0ZS5hbGxvd0FycmF5PSEwO2JyZWFrO2Nhc2UiLCI6ZGVsZXRlIGEuc3RhdGUsImluZGV4ZWQiPT09YS5uYW1lJiYodHx8bihyKSxhLmluZGV4ZWQ9ITAsYS5uYW1lPSIiKSxtZyhhLnR5cGUsYS5uYW1lKSYmKGEubmFtZT0iIiksYS50eXBlPVdnKGEudHlwZSk7bGV0IHM9byhhLnBhcmVudCk7YS5wYXJlbnQuY29tcG9uZW50cy5wdXNoKHMpLGRlbGV0ZSBhLnBhcmVudCxhPXM7YnJlYWs7Y2FzZSIgIjphLnN0YXRlLmFsbG93VHlwZSYmIiIhPT1hLnR5cGUmJihhLnR5cGU9V2coYS50eXBlKSxkZWxldGUgYS5zdGF0ZS5hbGxvd1R5cGUsYS5zdGF0ZS5hbGxvd05hbWU9ITAsYS5zdGF0ZS5hbGxvd1BhcmFtcz0hMCksYS5zdGF0ZS5hbGxvd05hbWUmJiIiIT09YS5uYW1lJiYoImluZGV4ZWQiPT09YS5uYW1lPyh0fHxuKHIpLGEuaW5kZXhlZCYmbihyKSxhLmluZGV4ZWQ9ITAsYS5uYW1lPSIiKTptZyhhLnR5cGUsYS5uYW1lKT9hLm5hbWU9IiI6YS5zdGF0ZS5hbGxvd05hbWU9ITEpO2JyZWFrO2Nhc2UiWyI6YS5zdGF0ZS5hbGxvd0FycmF5fHxuKHIpLGEudHlwZSs9aSxhLnN0YXRlLmFsbG93QXJyYXk9ITEsYS5zdGF0ZS5hbGxvd05hbWU9ITEsYS5zdGF0ZS5yZWFkQXJyYXk9ITA7YnJlYWs7Y2FzZSJdIjphLnN0YXRlLnJlYWRBcnJheXx8bihyKSxhLnR5cGUrPWksYS5zdGF0ZS5yZWFkQXJyYXk9ITEsYS5zdGF0ZS5hbGxvd0FycmF5PSEwLGEuc3RhdGUuYWxsb3dOYW1lPSEwO2JyZWFrO2RlZmF1bHQ6YS5zdGF0ZS5hbGxvd1R5cGU/KGEudHlwZSs9aSxhLnN0YXRlLmFsbG93UGFyYW1zPSEwLGEuc3RhdGUuYWxsb3dBcnJheT0hMCk6YS5zdGF0ZS5hbGxvd05hbWU/KGEubmFtZSs9aSxkZWxldGUgYS5zdGF0ZS5hbGxvd0FycmF5KTphLnN0YXRlLnJlYWRBcnJheT9hLnR5cGUrPWk6bihyKX19cmV0dXJuIGEucGFyZW50JiZnZy50aHJvd0FyZ3VtZW50RXJyb3IoInVuZXhwZWN0ZWQgZW9mIiwicGFyYW0iLGUpLGRlbGV0ZSBpLnN0YXRlLCJpbmRleGVkIj09PWEubmFtZT8odHx8bihyLmxlbmd0aC03KSxhLmluZGV4ZWQmJm4oci5sZW5ndGgtNyksYS5pbmRleGVkPSEwLGEubmFtZT0iIik6bWcoYS50eXBlLGEubmFtZSkmJihhLm5hbWU9IiIpLGkudHlwZT1XZyhpLnR5cGUpLGl9KGUsISF0KSxQZy5mcm9tT2JqZWN0KHtuYW1lOnIubmFtZSx0eXBlOnIudHlwZSxpbmRleGVkOnIuaW5kZXhlZCxjb21wb25lbnRzOnIuY29tcG9uZW50c30pO3ZhciByfXN0YXRpYyBpc1BhcmFtVHlwZShlKXtyZXR1cm4hKG51bGw9PWV8fCFlLl9pc1BhcmFtVHlwZSl9fWZ1bmN0aW9uIFdnKGUpe3JldHVybiBlLm1hdGNoKC9edWludCgkfFteMS05XSkvKT9lPSJ1aW50MjU2IitlLnN1YnN0cmluZyg0KTplLm1hdGNoKC9eaW50KCR8W14xLTldKS8pJiYoZT0iaW50MjU2IitlLnN1YnN0cmluZygzKSksZX1jb25zdCBCZz1uZXcgY2god2gpLENnPW5ldyBSZWdFeHAoL15ieXRlcyhbMC05XSopJC8pLEVnPW5ldyBSZWdFeHAoL14odT9pbnQpKFswLTldKikkLyk7Y2xhc3MgTWd7Y29uc3RydWN0b3IoZSl7VGgodGhpcywiY29lcmNlRnVuYyIsZXx8bnVsbCl9X2dldENvZGVyKGUpe3N3aXRjaChlLmJhc2VUeXBlKXtjYXNlImFkZHJlc3MiOnJldHVybiBuZXcgR2goZS5uYW1lKTtjYXNlImJvb2wiOnJldHVybiBuZXcgWWgoZS5uYW1lKTtjYXNlInN0cmluZyI6cmV0dXJuIG5ldyBwZyhlLm5hbWUpO2Nhc2UiYnl0ZXMiOnJldHVybiBuZXcgUWgoZS5uYW1lKTtjYXNlImFycmF5IjpyZXR1cm4gbmV3IEpoKHRoaXMuX2dldENvZGVyKGUuYXJyYXlDaGlsZHJlbiksZS5hcnJheUxlbmd0aCxlLm5hbWUpO2Nhc2UidHVwbGUiOnJldHVybiBuZXcgaGcoKGUuY29tcG9uZW50c3x8W10pLm1hcCgoZT0+dGhpcy5fZ2V0Q29kZXIoZSkpKSxlLm5hbWUpO2Nhc2UiIjpyZXR1cm4gbmV3IHRnKGUubmFtZSl9bGV0IHQ9ZS50eXBlLm1hdGNoKEVnKTtpZih0KXtsZXQgcj1wYXJzZUludCh0WzJdfHwiMjU2Iik7cmV0dXJuKDA9PT1yfHxyPjI1Nnx8ciU4IT0wKSYmQmcudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkICIrdFsxXSsiIGJpdCBsZW5ndGgiLCJwYXJhbSIsZSksbmV3IGFnKHIvOCwiaW50Ij09PXRbMV0sZS5uYW1lKX1pZih0PWUudHlwZS5tYXRjaChDZyksdCl7bGV0IHI9cGFyc2VJbnQodFsxXSk7cmV0dXJuKDA9PT1yfHxyPjMyKSYmQmcudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGJ5dGVzIGxlbmd0aCIsInBhcmFtIixlKSxuZXcgZWcocixlLm5hbWUpfXJldHVybiBCZy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgdHlwZSIsInR5cGUiLGUudHlwZSl9X2dldFdvcmRTaXplKCl7cmV0dXJuIDMyfV9nZXRSZWFkZXIoZSx0KXtyZXR1cm4gbmV3IFJoKGUsdGhpcy5fZ2V0V29yZFNpemUoKSx0aGlzLmNvZXJjZUZ1bmMsdCl9X2dldFdyaXRlcigpe3JldHVybiBuZXcgX2godGhpcy5fZ2V0V29yZFNpemUoKSl9Z2V0RGVmYXVsdFZhbHVlKGUpe2NvbnN0IHQ9ZS5tYXAoKGU9PnRoaXMuX2dldENvZGVyKFBnLmZyb20oZSkpKSk7cmV0dXJuIG5ldyBoZyh0LCJfIikuZGVmYXVsdFZhbHVlKCl9ZW5jb2RlKGUsdCl7ZS5sZW5ndGghPT10Lmxlbmd0aCYmQmcudGhyb3dFcnJvcigidHlwZXMvdmFsdWVzIGxlbmd0aCBtaXNtYXRjaCIsY2guZXJyb3JzLklOVkFMSURfQVJHVU1FTlQse2NvdW50Ont0eXBlczplLmxlbmd0aCx2YWx1ZXM6dC5sZW5ndGh9LHZhbHVlOnt0eXBlczplLHZhbHVlczp0fX0pO2NvbnN0IHI9ZS5tYXAoKGU9PnRoaXMuX2dldENvZGVyKFBnLmZyb20oZSkpKSksbj1uZXcgaGcociwiXyIpLG89dGhpcy5fZ2V0V3JpdGVyKCk7cmV0dXJuIG4uZW5jb2RlKG8sdCksby5kYXRhfWRlY29kZShlLHQscil7Y29uc3Qgbj1lLm1hcCgoZT0+dGhpcy5fZ2V0Q29kZXIoUGcuZnJvbShlKSkpKTtyZXR1cm4gbmV3IGhnKG4sIl8iKS5kZWNvZGUodGhpcy5fZ2V0UmVhZGVyKGdoKHQpLHIpKX19bmV3IE1nO3ZhciBrZz1uZXcgTWc7ZnVuY3Rpb24gSWcoZSl7cmV0dXJuIHN2LmFkZHJlc3MudG9IZXgoZSkucmVwbGFjZShJdCwiMHgiKX1mdW5jdGlvbiBPZyhlKXtpZigiW29iamVjdCBPYmplY3RdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSYmIltvYmplY3QgQXJyYXldIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gZTt2YXIgdCxyPSh0PWUsQXJyYXkuaXNBcnJheSh0KT9bXTp7fSk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiByW3RdPWVbdF1pbnN0YW5jZW9mIE9iamVjdCYmIWVbdF0uX2lzQmlnTnVtYmVyP09nKGVbdF0pOmVbdF19KSkscn1mdW5jdGlvbiB4ZyhlLHQscixuKXtpZihyJiYiYm9vbGVhbiIhPXR5cGVvZiByfHwobj1yLHI9dCx0PWUsZT1bXSksbiYmci5yZXBsYWNlKC9eMHgvLCIiKS5sZW5ndGglNjQ9PTgmJihyPSIweCIrci5yZXBsYWNlKC9eMHgvLCIiKS5zdWJzdHJpbmcoOCkpLHIucmVwbGFjZSgvXjB4LywiIikubGVuZ3RoJTY0KXRocm93IG5ldyBFcnJvcigiVGhlIGVuY29kZWQgc3RyaW5nIGlzIG5vdCB2YWxpZC4gSXRzIGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQuIik7cmV0dXJuIHQ9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybi90cmNUb2tlbi8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC90cmNUb2tlbi8sInVpbnQyNTYiKSksZX0pKSxrZy5kZWNvZGUodCxyKS5yZWR1Y2UoKGZ1bmN0aW9uKHIsbixvKXtyZXR1cm4iYWRkcmVzcyI9PXRbb10mJihuPU10K24uc3Vic3RyKDIpLnRvTG93ZXJDYXNlKCkpLGUubGVuZ3RoP3JbZVtvXV09bjpyLnB1c2gobikscn0pLGUubGVuZ3RoP3t9OltdKX1mdW5jdGlvbiBTZyhlLHQpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKSJhZGRyZXNzIj09PWVbcl0mJih0W3JdPXN2LmFkZHJlc3MudG9IZXgodFtyXSkucmVwbGFjZShJdCwiMHgiKSk7cmV0dXJuIGtnLmVuY29kZShlLHQpfWZ1bmN0aW9uIEZnKGUpe3ZhciB0PWUubWF0Y2goLyhbYS16QS1aMC05XSkoXFsuKlxdKS8pO3JldHVybiB0P3RbMl06IiJ9ZnVuY3Rpb24gX2coZSl7cmV0dXJuKEZnKGUpLm1hdGNoKC9cXVxbL2cpfHxbXSkubGVuZ3RoKzF9ZnVuY3Rpb24gUmcoZSx0KXt2YXIgcj1bXSxuPWZ1bmN0aW9uIGUodCl7aWYodCYmMD09PXQudHlwZS5pbmRleE9mKCJ0dXBsZSIpJiZ0LmNvbXBvbmVudHMpe3ZhciByPXQuY29tcG9uZW50cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkpO3JldHVybiJ0dXBsZSgiLmNvbmNhdChyLmpvaW4oIiwiKSwiKSIpLmNvbmNhdChGZyh0LnR5cGUpKX1yZXR1cm4vdHJjVG9rZW4vLnRlc3QodC50eXBlKT90LnR5cGUucmVwbGFjZSgvdHJjVG9rZW4vLCJ1aW50MjU2Iik6dC50eXBlfSxvPWZ1bmN0aW9uIGUodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/KHQuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXt0W25dPWUocil9KSksdCk6SWcodCl9LGk9ZnVuY3Rpb24gZSh0LHIsbil7bj4xP3IubGVuZ3RoJiZyLmZvckVhY2goKGZ1bmN0aW9uKHIpe2UodCxyLG4tMSl9KSk6ci5sZW5ndGgmJm4mJnIuZm9yRWFjaCgoZnVuY3Rpb24oZSl7YSh0LGUpfSkpfSxhPWZ1bmN0aW9uIGUoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10scj1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMDt0Lmxlbmd0aCYmdC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3ZhciBhPXQudHlwZTtpZihyW25dKWlmKCJhZGRyZXNzIj09PWEpcltuXT1JZyhyW25dKTtlbHNlIGlmKCJhZGRyZXNzWyI9PT1hLm1hdGNoKC9eKFteXHg1Yl0qKShceDVifCQpLylbMF0pbyhyW25dKTtlbHNlIGlmKDA9PT1hLmluZGV4T2YoInR1cGxlIikpaWYoRmcoYSkpe3ZhciBzPV9nKGEpO2kodC5jb21wb25lbnRzLHJbbl0scyl9ZWxzZSBlKHQuY29tcG9uZW50cyxyW25dKX0pKX07aWYoZS5pbnB1dHMmJmUuaW5wdXRzLmxlbmd0aClmb3IodmFyIHM9MDtzPGUuaW5wdXRzLmxlbmd0aDtzKyspe3ZhciB1PWUuaW5wdXRzW3NdLnR5cGU7ImJvb2wiPT09dSYmImZhbHNlIj09PXRbc10mJih0W3NdPSExKSxyLnB1c2goMD09PXUuaW5kZXhPZigidHVwbGUiKT9uKGUuaW5wdXRzW3NdKTp1KSx0Lmxlbmd0aDxyLmxlbmd0aCYmdC5wdXNoKCIiKX1yZXR1cm4gYShlLmlucHV0cyx0KSxmdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHI9ZVt0XTsvdHJjVG9rZW4vLnRlc3QocikmJihlW3RdPXIucmVwbGFjZSgvdHJjVG9rZW4vLCJ1aW50MjU2IikpfX0ociksa2cuZW5jb2RlKHIsdCl9ZnVuY3Rpb24gTmcoZSx0KXt2YXIgcj1mdW5jdGlvbiBlKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpPyh0LmZvckVhY2goKGZ1bmN0aW9uKHIsbil7dFtuXT1lKHIpfSkpLHQpOnN2LmFkZHJlc3MudG9IZXgodCl9LG49ZnVuY3Rpb24gZSh0LHIsbil7bj4xP3IubGVuZ3RoJiZyLmZvckVhY2goKGZ1bmN0aW9uKHIpe2UodCxyLG4tMSl9KSk6ci5sZW5ndGgmJm4mJnIuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aSh0LGUpfSkpfSxvPWZ1bmN0aW9uIGUodCl7dmFyIHI9dC5uYW1lPyIgIi5jb25jYXQodC5uYW1lKToiIjtpZih0JiYwPT09dC50eXBlLmluZGV4T2YoInR1cGxlIikmJnQuY29tcG9uZW50cyl7dmFyIG49dC5jb21wb25lbnRzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9KSk7cmV0dXJuInR1cGxlKCIuY29uY2F0KG4uam9pbigiLCIpLCIpIikuY29uY2F0KEZnKHQudHlwZSkpLmNvbmNhdChyKX1yZXR1cm4vdHJjVG9rZW4vLnRlc3QodC50eXBlKT90LnR5cGUucmVwbGFjZSgvdHJjVG9rZW4vLCJ1aW50MjU2Iikrcjp0LnR5cGUrcn0saT1mdW5jdGlvbiBlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdLG89YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDA7dC5sZW5ndGgmJnQuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXt2YXIgYT10LnR5cGUscz10Lm5hbWU7aWYob1tpXSlpZigiYWRkcmVzcyI9PT1hKW9baV09c3YuYWRkcmVzcy50b0hleChvW2ldKSxzJiYob1tzXT1zdi5hZGRyZXNzLnRvSGV4KG9bc10pKTtlbHNlIGlmKCJhZGRyZXNzWyI9PT1hLm1hdGNoKC9eKFteXHg1Yl0qKShceDVifCQpLylbMF0pcihvW2ldKSxzJiZyKG9bc10pO2Vsc2UgaWYoMD09PWEuaW5kZXhPZigidHVwbGUiKSl7aWYoRmcoYSkpe3ZhciB1PV9nKGEpO24odC5jb21wb25lbnRzLG9baV0sdSl9ZWxzZSBlKHQuY29tcG9uZW50cyxvW2ldKTtzJiYob1tzXT1vW2ldKX19KSl9O2lmKGUub3V0cHV0cyYmZS5vdXRwdXRzLmxlbmd0aD4wKXtmb3IodmFyIGE9W10scz0wO3M8ZS5vdXRwdXRzLmxlbmd0aDtzKyspe3ZhciB1PWUub3V0cHV0c1tzXS50eXBlLGM9ZS5vdXRwdXRzW3NdLm5hbWU/IiAiLmNvbmNhdChlLm91dHB1dHNbc10ubmFtZSk6IiI7YS5wdXNoKDA9PT11LmluZGV4T2YoInR1cGxlIik/byhlLm91dHB1dHNbc10pOnUrYyl9IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgcj1lW3RdOy9edHJjVG9rZW4vLnRlc3QocikmJihlW3RdPXIucmVwbGFjZSgvXnRyY1Rva2VuLywidWludDI1NiIpKX19KGEpLHQmJnQubGVuZ3RofHwodD1uZXcgVWludDhBcnJheSgzMiplLm91dHB1dHMubGVuZ3RoKSk7dmFyIGw9T2coa2cuZGVjb2RlKGEsdCkpO3JldHVybiBpKGUub3V0cHV0cyxsKSxsfXJldHVybltdfXZhciBVZz0iGVRST04gU2lnbmVkIE1lc3NhZ2U6XG4iO2Z1bmN0aW9uIERnKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZSYmKGU9WG4oZSkpLEFycmF5LmlzQXJyYXkoZSkmJihlPW5ldyBVaW50OEFycmF5KGUpKSx3byh2cihbWG4oVWcpLFhuKFN0cmluZyhlLmxlbmd0aCkpLGVdKSl9ZnVuY3Rpb24gTGcoZSx0KXt0Lm1hdGNoKC9eMHgvKXx8KHQ9IjB4Iit0KTt2YXIgcj1uZXcgc2EodCksbj1EZyhlKSxvPXIuc2lnbihuKTtyZXR1cm4gdHAobyl9ZnVuY3Rpb24gamcoZSx0KXtyZXR1cm4gdC5tYXRjaCgvXjB4Lyl8fCh0PSIweCIrdCksa3AoTnQoY2EoRGcoZSksdCkucmVwbGFjZSgvXjB4LyxNdCkpKX1mdW5jdGlvbiB6ZyhlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gJGcoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/emcoT2JqZWN0KHIpLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtXKGUsdCxyW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTp6ZyhPYmplY3QocikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHQpKX0pKX1yZXR1cm4gZX12YXIgVmc9byg2MTc3KSxHZz1vKDgwMjApLEhnPUdnLlRyYW5zYWN0aW9uLEtnPUdnLlBlcm1pc3Npb24sWmc9R2cuS2V5LHFnPW8oMTc5MSksSmc9cWcuVHJhbnNmZXJDb250cmFjdCxZZz1xZy5GcmVlemVCYWxhbmNlQ29udHJhY3QsWGc9cWcuVW5mcmVlemVCYWxhbmNlQ29udHJhY3QsUWc9cWcuV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QsZXk9cWcuRnJlZXplQmFsYW5jZVYyQ29udHJhY3QsdHk9cWcuVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCxyeT1xZy5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3Qsbnk9cWcuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LG95PXFnLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0LGl5PW8oNjQzOSksYXk9aXkuVHJhbnNmZXJBc3NldENvbnRyYWN0LHN5PWl5LlBhcnRpY2lwYXRlQXNzZXRJc3N1ZUNvbnRyYWN0LHV5PWl5LkFzc2V0SXNzdWVDb250cmFjdCxjeT1peS5VcGRhdGVBc3NldENvbnRyYWN0LGx5PW8oNTE3MSksZHk9bHkuVHJpZ2dlclNtYXJ0Q29udHJhY3QsZnk9bHkuQ2xlYXJBQklDb250cmFjdCxweT1seS5VcGRhdGVFbmVyZ3lMaW1pdENvbnRyYWN0LGh5PWx5LlVwZGF0ZVNldHRpbmdDb250cmFjdCxneT1seS5DcmVhdGVTbWFydENvbnRyYWN0LHl5PWx5LlNtYXJ0Q29udHJhY3QsYnk9byg3NzY0KS5SZXNvdXJjZUNvZGUsdnk9byg3MDg0KSxteT12eS5XaXRuZXNzQ3JlYXRlQ29udHJhY3QsVHk9dnkuVm90ZVdpdG5lc3NDb250cmFjdCx3eT1vKDY3MikuVXBkYXRlQnJva2VyYWdlQ29udHJhY3QsQXk9byg5NTYpLFB5PUF5LkFjY291bnRDcmVhdGVDb250cmFjdCxXeT1BeS5BY2NvdW50VXBkYXRlQ29udHJhY3QsQnk9QXkuU2V0QWNjb3VudElkQ29udHJhY3QsQ3k9QXkuQWNjb3VudFBlcm1pc3Npb25VcGRhdGVDb250cmFjdCxFeT1vKDM1NDQpLE15PUV5LlByb3Bvc2FsQ3JlYXRlQ29udHJhY3Qsa3k9RXkuUHJvcG9zYWxEZWxldGVDb250cmFjdCxJeT1FeS5Qcm9wb3NhbEFwcHJvdmVDb250cmFjdCxPeT1vKDk1MjApLHh5PU95LkV4Y2hhbmdlQ3JlYXRlQ29udHJhY3QsU3k9T3kuRXhjaGFuZ2VJbmplY3RDb250cmFjdCxGeT1PeS5FeGNoYW5nZVdpdGhkcmF3Q29udHJhY3QsX3k9T3kuRXhjaGFuZ2VUcmFuc2FjdGlvbkNvbnRyYWN0LFJ5PWZ1bmN0aW9uKGUpe3JldHVybiBlJiYwIT09ZS5sZW5ndGg/bmV3IFVpbnQ4QXJyYXkoc3YuYWRkcmVzcy50b0hleChlKS5tYXRjaCgvLnsxLDJ9L2cpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfSkpKTpuZXcgVWludDhBcnJheShbXSl9LE55PWZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBvPW5ldyBWZy5Bbnk7by5wYWNrKGUuc2VyaWFsaXplQmluYXJ5KCksInByb3RvY29sLiIrcik7dmFyIGk9bmV3IEhnLkNvbnRyYWN0O2kuc2V0VHlwZSh0KSxpLnNldFBhcmFtZXRlcihvKSxuJiZpLnNldFBlcm1pc3Npb25JZChuKTt2YXIgYT1uZXcgSGcucmF3O2EuYWRkQ29udHJhY3QoaSk7dmFyIHM9bmV3IEhnO3JldHVybiBzLnNldFJhd0RhdGEoYSksc30sVXk9ZnVuY3Rpb24oZSx0LHIpe3N3aXRjaChlLnR5cGUpe2Nhc2UiVHJhbnNmZXJDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS50b19hZGRyZXNzLG49ZS5vd25lcl9hZGRyZXNzLG89ZS5hbW91bnQsaT1uZXcgSmc7cmV0dXJuIGkuc2V0VG9BZGRyZXNzKFJ5KHIpKSxpLnNldE93bmVyQWRkcmVzcyhSeShuKSksaS5zZXRBbW91bnQobyksTnkoaSxIZy5Db250cmFjdC5Db250cmFjdFR5cGUuVFJBTlNGRVJDT05UUkFDVCwiVHJhbnNmZXJDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIlRyYW5zZmVyQXNzZXRDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS50b19hZGRyZXNzLG49ZS5vd25lcl9hZGRyZXNzLG89ZS5hbW91bnQsaT1lLmFzc2V0X25hbWUsYT1uZXcgYXk7cmV0dXJuIGEuc2V0VG9BZGRyZXNzKFJ5KHIpKSxhLnNldE93bmVyQWRkcmVzcyhSeShuKSksYS5zZXRBc3NldE5hbWUoUnkoaS5yZXBsYWNlKC9eMHgvLCIiKSkpLGEuc2V0QW1vdW50KG8pLE55KGEsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLlRSQU5TRkVSQVNTRVRDT05UUkFDVCwiVHJhbnNmZXJBc3NldENvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBzeTtyZXR1cm4gci5zZXRUb0FkZHJlc3MoUnkoZS50b19hZGRyZXNzKSksci5zZXRPd25lckFkZHJlc3MoUnkoZS5vd25lcl9hZGRyZXNzKSksci5zZXRBc3NldE5hbWUoUnkoZS5hc3NldF9uYW1lLnJlcGxhY2UoL14weC8sIiIpKSksci5zZXRBbW91bnQoZS5hbW91bnQpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLlBBUlRJQ0lQQVRFQVNTRVRJU1NVRUNPTlRSQUNULCJQYXJ0aWNpcGF0ZUFzc2V0SXNzdWVDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIlRyaWdnZXJTbWFydENvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgZHksbj1lLm93bmVyX2FkZHJlc3Msbz1lLmNvbnRyYWN0X2FkZHJlc3MsaT1lLnBhcmFtZXRlcixhPXZvaWQgMD09PWk/IiI6aSxzPWUuZnVuY3Rpb25fc2VsZWN0b3IsdT1lLmNhbGxfdmFsdWUsYz1lLmNhbGxfdG9rZW5fdmFsdWUsbD1lLnRva2VuX2lkLGQ9ZS5kYXRhO2lmKHIuc2V0T3duZXJBZGRyZXNzKFJ5KG4pKSxyLnNldENvbnRyYWN0QWRkcmVzcyhSeShvKSksci5zZXRDYWxsVmFsdWUodSksZClyLnNldERhdGEoUnkoZCkpO2Vsc2UgaWYocyl7dmFyIGY9ZnVuY3Rpb24oZSl7cmV0dXJuKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiYhYXJndW1lbnRzWzFdPyIiOiIweCIpK3dvKEJ1ZmZlci5mcm9tKGUsInV0Zi04IikpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfShzKS5zdWJzdHJpbmcoMiwxMCkrYTtyLnNldERhdGEoUnkoZikpfXJldHVybiBsJiZyLnNldFRva2VuSWQobCksYyYmci5zZXRDYWxsVG9rZW5WYWx1ZShjKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5UUklHR0VSU01BUlRDT05UUkFDVCwiVHJpZ2dlclNtYXJ0Q29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJGcmVlemVCYWxhbmNlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBZZyxuPWUub3duZXJfYWRkcmVzcyxvPWUuZnJvemVuX2JhbGFuY2UsaT1lLmZyb3plbl9kdXJhdGlvbixhPWUucmVzb3VyY2Uscz1lLnJlY2VpdmVyX2FkZHJlc3M7cmV0dXJuIHIuc2V0T3duZXJBZGRyZXNzKFJ5KG4pKSxyLnNldEZyb3plbkJhbGFuY2Uobyksci5zZXRGcm96ZW5EdXJhdGlvbihpKSxhJiZyLnNldFJlc291cmNlKGJ5W2FdKSxzJiZyLnNldFJlY2VpdmVyQWRkcmVzcyhSeShzKSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuRlJFRVpFQkFMQU5DRUNPTlRSQUNULCJGcmVlemVCYWxhbmNlQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJVbmZyZWV6ZUJhbGFuY2VDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IFhnLG49ZS5vd25lcl9hZGRyZXNzLG89ZS5yZXNvdXJjZSxpPWUucmVjZWl2ZXJfYWRkcmVzcztyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLG8mJnIuc2V0UmVzb3VyY2UoYnlbb10pLGkmJnIuc2V0UmVjZWl2ZXJBZGRyZXNzKFJ5KGkpKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5VTkZSRUVaRUJBTEFOQ0VDT05UUkFDVCwiVW5mcmVlemVCYWxhbmNlQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJXaXRoZHJhd0JhbGFuY2VDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IFFnLG49ZS5vd25lcl9hZGRyZXNzO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuV0lUSERSQVdCQUxBTkNFQ09OVFJBQ1QsIldpdGhkcmF3QmFsYW5jZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiRnJlZXplQmFsYW5jZVYyQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBleSxuPWUub3duZXJfYWRkcmVzcyxvPWUuZnJvemVuX2JhbGFuY2UsaT1lLnJlc291cmNlO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksci5zZXRGcm96ZW5CYWxhbmNlKG8pLHIuc2V0UmVzb3VyY2UoYnlbaV0pLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLkZSRUVaRUJBTEFOQ0VWMkNPTlRSQUNULCJGcmVlemVCYWxhbmNlVjJDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkNhbmNlbEFsbFVuZnJlZXplVjJDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IHJ5LG49ZS5vd25lcl9hZGRyZXNzO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuQ0FOQ0VMQUxMVU5GUkVFWkVWMkNPTlRSQUNULCJDYW5jZWxBbGxVbmZyZWV6ZVYyQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJVbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgdHksbj1lLm93bmVyX2FkZHJlc3Msbz1lLnVuZnJlZXplX2JhbGFuY2UsaT1lLnJlc291cmNlO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksci5zZXRVbmZyZWV6ZUJhbGFuY2Uobyksci5zZXRSZXNvdXJjZShieVtpXSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuVU5GUkVFWkVCQUxBTkNFVjJDT05UUkFDVCwiVW5mcmVlemVCYWxhbmNlVjJDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IG55LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5yZWNlaXZlcl9hZGRyZXNzLGk9ZS5iYWxhbmNlLGE9ZS5yZXNvdXJjZSxzPWUubG9jayx1PXZvaWQgMCE9PXMmJnMsYz1lLmxvY2tfcGVyaW9kO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksci5zZXRCYWxhbmNlKGkpLHIuc2V0UmVzb3VyY2UoYnlbYV0pLHIuc2V0TG9jayh1KSxyLnNldExvY2tQZXJpb2QoYyksci5zZXRSZWNlaXZlckFkZHJlc3MoUnkobykpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLkRFTEVHQVRFUkVTT1VSQ0VDT05UUkFDVCwiRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBveSxuPWUub3duZXJfYWRkcmVzcyxvPWUucmVjZWl2ZXJfYWRkcmVzcyxpPWUuYmFsYW5jZSxhPWUucmVzb3VyY2U7cmV0dXJuIHIuc2V0T3duZXJBZGRyZXNzKFJ5KG4pKSxyLnNldEJhbGFuY2UoaSksci5zZXRSZXNvdXJjZShieVthXSksci5zZXRSZWNlaXZlckFkZHJlc3MoUnkobykpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLlVOREVMRUdBVEVSRVNPVVJDRUNPTlRSQUNULCJVbkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIldpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IHJ5LG49ZS5vd25lcl9hZGRyZXNzO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuV0lUSERSQVdFWFBJUkVVTkZSRUVaRUNPTlRSQUNULCJXaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJXaXRuZXNzQ3JlYXRlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBteSxuPWUub3duZXJfYWRkcmVzcyxvPWUudXJsO3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksci5zZXRVcmwoUnkoby5yZXBsYWNlKC9eMHgvLCIiKSkpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLldJVE5FU1NDUkVBVEVDT05UUkFDVCwiV2l0bmVzc0NyZWF0ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiVm90ZVdpdG5lc3NDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IFR5LG49ZS5vd25lcl9hZGRyZXNzLG89ZS52b3RlcztyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLG8uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFR5LlZvdGUsbj1lLnZvdGVfYWRkcmVzcyxvPWUudm90ZV9jb3VudDt0LnNldFZvdGVBZGRyZXNzKFJ5KG4pKTt2YXIgaT1wYXJzZUludChvKTt0LnNldFZvdGVDb3VudChpKSxyLmFkZFZvdGVzKHQpfSkpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLlZPVEVXSVRORVNTQ09OVFJBQ1QsIlZvdGVXaXRuZXNzQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJDcmVhdGVTbWFydENvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1udWxsIT1lJiZlLm5ld19jb250cmFjdD8kZygkZyh7fSx7b3duZXJfYWRkcmVzczplLm93bmVyX2FkZHJlc3MsY2FsbF90b2tlbl92YWx1ZTplLmNhbGxfdG9rZW5fdmFsdWUsdG9rZW5faWQ6ZS50b2tlbl9pZH0pLGUubmV3X2NvbnRyYWN0KTplLG49ci5vd25lcl9hZGRyZXNzLG89ci5jb25zdW1lX3VzZXJfcmVzb3VyY2VfcGVyY2VudCxpPXIub3JpZ2luX2VuZXJneV9saW1pdCxhPXIuYWJpLHM9ci5ieXRlY29kZSx1PXZvaWQgMD09PXM/IiI6cyxjPXIubmFtZSxsPXIucGFyYW1ldGVyLGQ9dm9pZCAwPT09bD8iIjpsLGY9ci5jYWxsX3ZhbHVlLHA9ci5jYWxsX3Rva2VuX3ZhbHVlLGg9ci50b2tlbl9pZCxnPXIub3JpZ2luX2FkZHJlc3MseT1uZXcgZ3k7eS5zZXRPd25lckFkZHJlc3MoUnkobikpLGgmJnkuc2V0VG9rZW5JZChoKSxwJiZ5LnNldENhbGxUb2tlblZhbHVlKHApO3ZhciBiPW5ldyB5eTtpZihhKXt2YXIgdjt2PSJzdHJpbmciPT10eXBlb2YgYT9KU09OLnBhcnNlKGEpOihudWxsPT1hP3ZvaWQgMDphLmVudHJ5cyl8fFtdO3ZhciBtPW5ldyB5eS5BQkksVD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgeXkuQUJJLkVudHJ5LlBhcmFtLHI9ZS5pbmRleGVkLG49ZS5uYW1lLG89ZS50eXBlO3JldHVybiEwPT09ciYmdC5zZXRJbmRleGVkKCEwKSx0LnNldE5hbWUobiksdC5zZXRUeXBlKG8pLHR9LHc9di5tYXAoKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYW5vbnltb3VzLHI9ZS5jb25zdGFudCxuPWUubmFtZSxvPWUuaW5wdXRzLGk9ZS5vdXRwdXRzLGE9ZS50eXBlLHM9ZS5wYXlhYmxlLHU9ZS5zdGF0ZU11dGFiaWxpdHksYz1uZXcgeXkuQUJJLkVudHJ5O3JldHVybiBjLnNldEFub255bW91cyh0KSxjLnNldENvbnN0YW50KHIpLGMuc2V0TmFtZShuKSxvJiZjLnNldElucHV0c0xpc3Qoby5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBUKGUpfSkpKSxpJiZjLnNldE91dHB1dHNMaXN0KGkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gVChlKX0pKSksYSYmYy5zZXRUeXBlKHl5LkFCSS5FbnRyeS5FbnRyeVR5cGVbYS50b1VwcGVyQ2FzZSgpXSksYy5zZXRQYXlhYmxlKHMpLHUmJmMuc2V0U3RhdGVtdXRhYmlsaXR5KHl5LkFCSS5FbnRyeS5TdGF0ZU11dGFiaWxpdHlUeXBlW3UudG9VcHBlckNhc2UoKV0pLGN9KSk7bS5zZXRFbnRyeXNMaXN0KHcpLGIuc2V0QWJpKG0pfWlmKGYmJmIuc2V0Q2FsbFZhbHVlKGYpLGIuc2V0Q29uc3VtZVVzZXJSZXNvdXJjZVBlcmNlbnQobyksYi5zZXRPcmlnaW5FbmVyZ3lMaW1pdChpKSxnfHwoZz1uKSxiLnNldE9yaWdpbkFkZHJlc3MoUnkoZykpLHUpe3ZhciBBPXUucmVwbGFjZSgvXjB4LywiIikrZC5yZXBsYWNlKC9eMHgvLCIiKTtiLnNldEJ5dGVjb2RlKFJ5KEEpKX1yZXR1cm4gYi5zZXROYW1lKGMpLHkuc2V0TmV3Q29udHJhY3QoYiksTnkoeSxIZy5Db250cmFjdC5Db250cmFjdFR5cGUuQ1JFQVRFU01BUlRDT05UUkFDVCwiQ3JlYXRlU21hcnRDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkNsZWFyQUJJQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPWUuY29udHJhY3RfYWRkcmVzcyxuPWUub3duZXJfYWRkcmVzcyxvPW5ldyBmeTtyZXR1cm4gby5zZXRPd25lckFkZHJlc3MoUnkobikpLG8uc2V0Q29udHJhY3RBZGRyZXNzKFJ5KHIpKSxOeShvLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5DTEVBUkFCSUNPTlRSQUNULCJDbGVhckFCSUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiVXBkYXRlQnJva2VyYWdlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPWUuYnJva2VyYWdlLG49ZS5vd25lcl9hZGRyZXNzLG89bmV3IHd5O3JldHVybiBvLnNldE93bmVyQWRkcmVzcyhSeShuKSksby5zZXRCcm9rZXJhZ2UociksTnkobyxIZy5Db250cmFjdC5Db250cmFjdFR5cGUuVVBEQVRFQlJPS0VSQUdFQ09OVFJBQ1QsIlVwZGF0ZUJyb2tlcmFnZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiQXNzZXRJc3N1ZUNvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1lLm93bmVyX2FkZHJlc3Msbj1lLm5hbWUsbz1lLmFiYnIsaT1lLmRlc2NyaXB0aW9uLGE9ZS51cmwscz1lLnRvdGFsX3N1cHBseSx1PWUudHJ4X251bSxjPWUubnVtLGw9ZS5zdGFydF90aW1lLGQ9ZS5lbmRfdGltZSxmPWUucHJlY2lzaW9uLHA9ZS5mcmVlX2Fzc2V0X25ldF9saW1pdCxoPWUucHVibGljX2ZyZWVfYXNzZXRfbmV0X2xpbWl0LGc9ZS5wdWJsaWNfZnJlZV9hc3NldF9uZXRfdXNhZ2UseT12b2lkIDA9PT1nPzA6ZyxiPWUucHVibGljX2xhdGVzdF9mcmVlX25ldF90aW1lLHY9dm9pZCAwPT09Yj8wOmIsbT1lLnZvdGVfc2NvcmUsVD12b2lkIDA9PT1tPzA6bSx3PWUuZnJvemVuX3N1cHBseSxBPW5ldyB1eTtpZihBLnNldE93bmVyQWRkcmVzcyhSeShyKSksbiYmQS5zZXROYW1lKFJ5KG4ucmVwbGFjZSgvXjB4LywiIikpKSxvJiZBLnNldEFiYnIoUnkoby5yZXBsYWNlKC9eMHgvLCIiKSkpLEEuc2V0VG90YWxTdXBwbHkocyksQS5zZXROdW0oYyksQS5zZXRFbmRUaW1lKGQpLEEuc2V0U3RhcnRUaW1lKGwpLEEuc2V0VHJ4TnVtKHUpLEEuc2V0Vm90ZVNjb3JlKFQpLGYmJkEuc2V0UHJlY2lzaW9uKGYpLHYmJkEuc2V0UHVibGljTGF0ZXN0RnJlZU5ldFRpbWUodiksaSYmQS5zZXREZXNjcmlwdGlvbihSeShpLnJlcGxhY2UoL14weC8sIiIpKSksYSYmQS5zZXRVcmwoUnkoYS5yZXBsYWNlKC9eMHgvLCIiKSkpLEEuc2V0UHVibGljRnJlZUFzc2V0TmV0VXNhZ2UoeSksQS5zZXRGcmVlQXNzZXROZXRMaW1pdChwKSxBLnNldFB1YmxpY0ZyZWVBc3NldE5ldExpbWl0KGgpLHcpe3ZhciBQPW5ldyB1eS5Gcm96ZW5TdXBwbHk7UC5zZXRGcm96ZW5BbW91bnQody5sZW5ndGg/d1swXS5mcm96ZW5fYW1vdW50OncuZnJvemVuX2Ftb3VudCksUC5zZXRGcm96ZW5EYXlzKHcubGVuZ3RoP3dbMF0uZnJvemVuX2RheXM6dy5mcm96ZW5fZGF5cyksQS5hZGRGcm96ZW5TdXBwbHkoUCl9cmV0dXJuIE55KEEsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLkFTU0VUSVNTVUVDT05UUkFDVCwiQXNzZXRJc3N1ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiQWNjb3VudENyZWF0ZUNvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgUHksbj1lLmFjY291bnRfYWRkcmVzcyxvPWUub3duZXJfYWRkcmVzcztyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobykpLHIuc2V0QWNjb3VudEFkZHJlc3MoUnkobi5yZXBsYWNlKC9eMHgvLCIiKSkpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLkFDQ09VTlRDUkVBVEVDT05UUkFDVCwiQWNjb3VudENyZWF0ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiQWNjb3VudFVwZGF0ZUNvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgV3ksbj1lLmFjY291bnRfbmFtZSxvPWUub3duZXJfYWRkcmVzcztyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobykpLHIuc2V0QWNjb3VudE5hbWUoUnkobi5yZXBsYWNlKC9eMHgvLCIiKSkpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLkFDQ09VTlRVUERBVEVDT05UUkFDVCwiQWNjb3VudFVwZGF0ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiU2V0QWNjb3VudElkQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBCeSxuPWUuYWNjb3VudF9pZCxvPWUub3duZXJfYWRkcmVzcztyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobykpLHIuc2V0QWNjb3VudElkKFJ5KG4ucmVwbGFjZSgvXjB4LywiIikpKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5TRVRBQ0NPVU5USURDT05UUkFDVCwiU2V0QWNjb3VudElkQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJQcm9wb3NhbENyZWF0ZUNvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgTXksbj1lLm93bmVyX2FkZHJlc3Msbz1lLnBhcmFtZXRlcnM7cmV0dXJuIHIuc2V0T3duZXJBZGRyZXNzKFJ5KG4pKSxvLmZvckVhY2goKGZ1bmN0aW9uKGUpe3IuZ2V0UGFyYW1ldGVyc01hcCgpLnNldChlLmtleSxlLnZhbHVlKX0pKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5QUk9QT1NBTENSRUFURUNPTlRSQUNULCJQcm9wb3NhbENyZWF0ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiUHJvcG9zYWxEZWxldGVDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IGt5LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5wcm9wb3NhbF9pZDtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLHIuc2V0UHJvcG9zYWxJZChvKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5QUk9QT1NBTERFTEVURUNPTlRSQUNULCJQcm9wb3NhbERlbGV0ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiUHJvcG9zYWxBcHByb3ZlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBJeSxuPWUub3duZXJfYWRkcmVzcyxvPWUucHJvcG9zYWxfaWQsaT1lLmlzX2FkZF9hcHByb3ZhbDtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLHIuc2V0UHJvcG9zYWxJZChvKSxyLnNldElzQWRkQXBwcm92YWwoaSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuUFJPUE9TQUxBUFBST1ZFQ09OVFJBQ1QsIlByb3Bvc2FsQXBwcm92ZUNvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiRXhjaGFuZ2VDcmVhdGVDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IHh5LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5maXJzdF90b2tlbl9pZCxpPWUuZmlyc3RfdG9rZW5fYmFsYW5jZSxhPWUuc2Vjb25kX3Rva2VuX2lkLHM9ZS5zZWNvbmRfdG9rZW5fYmFsYW5jZTtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLHIuc2V0Rmlyc3RUb2tlbklkKFJ5KG8ucmVwbGFjZSgvXjB4LywiIikpKSxyLnNldEZpcnN0VG9rZW5CYWxhbmNlKGkpLHIuc2V0U2Vjb25kVG9rZW5JZChSeShhLnJlcGxhY2UoL14weC8sIiIpKSksci5zZXRTZWNvbmRUb2tlbkJhbGFuY2UocyksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuRVhDSEFOR0VDUkVBVEVDT05UUkFDVCwiRXhjaGFuZ2VDcmVhdGVDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkV4Y2hhbmdlSW5qZWN0Q29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBTeSxuPWUub3duZXJfYWRkcmVzcyxvPWUuZXhjaGFuZ2VfaWQsaT1lLnRva2VuX2lkLGE9ZS5xdWFudDtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLHIuc2V0RXhjaGFuZ2VJZChvKSxyLnNldFRva2VuSWQoUnkoaS5yZXBsYWNlKC9eMHgvLCIiKSkpLHIuc2V0UXVhbnQoYSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuRVhDSEFOR0VJTkpFQ1RDT05UUkFDVCwiRXhjaGFuZ2VJbmplY3RDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IEZ5LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5leGNoYW5nZV9pZCxpPWUudG9rZW5faWQsYT1lLnF1YW50O3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksci5zZXRFeGNoYW5nZUlkKG8pLHIuc2V0VG9rZW5JZChSeShpLnJlcGxhY2UoL14weC8sIiIpKSksci5zZXRRdWFudChhKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5FWENIQU5HRVdJVEhEUkFXQ09OVFJBQ1QsIkV4Y2hhbmdlV2l0aGRyYXdDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IF95LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5leGNoYW5nZV9pZCxpPWUudG9rZW5faWQsYT1lLnF1YW50LHM9ZS5leHBlY3RlZDtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLHIuc2V0RXhjaGFuZ2VJZChvKSxyLnNldFRva2VuSWQoUnkoaS5yZXBsYWNlKC9eMHgvLCIiKSkpLHIuc2V0UXVhbnQoYSksci5zZXRFeHBlY3RlZChzKSxOeShyLEhnLkNvbnRyYWN0LkNvbnRyYWN0VHlwZS5FWENIQU5HRVRSQU5TQUNUSU9OQ09OVFJBQ1QsIkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIlVwZGF0ZVNldHRpbmdDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IGh5LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5jb250cmFjdF9hZGRyZXNzLGk9ZS5jb25zdW1lX3VzZXJfcmVzb3VyY2VfcGVyY2VudDtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLHIuc2V0Q29udHJhY3RBZGRyZXNzKFJ5KG8pKSxyLnNldENvbnN1bWVVc2VyUmVzb3VyY2VQZXJjZW50KGkpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLlVQREFURVNFVFRJTkdDT05UUkFDVCwiVXBkYXRlU2V0dGluZ0NvbnRyYWN0Iix0LlBlcm1pc3Npb25faWQpfSh0LHIpO2Nhc2UiVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdCI6cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIHI9bmV3IHB5LG49ZS5vd25lcl9hZGRyZXNzLG89ZS5jb250cmFjdF9hZGRyZXNzLGk9ZS5vcmlnaW5fZW5lcmd5X2xpbWl0O3JldHVybiByLnNldE93bmVyQWRkcmVzcyhSeShuKSksci5zZXRDb250cmFjdEFkZHJlc3MoUnkobykpLHIuc2V0T3JpZ2luRW5lcmd5TGltaXQoaSksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuVVBEQVRFRU5FUkdZTElNSVRDT05UUkFDVCwiVXBkYXRlRW5lcmd5TGltaXRDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKTtjYXNlIkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QiOnJldHVybiBmdW5jdGlvbihlLHQpe3ZhciByPW5ldyBDeSxuPWUub3duZXJfYWRkcmVzcyxvPWUub3duZXIsaT1lLndpdG5lc3MsYT1lLmFjdGl2ZXM7ci5zZXRPd25lckFkZHJlc3MoUnkobikpO3ZhciBzPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBLZyxyPWUudHlwZSxuPWUuaWQsbz1lLnBlcm1pc3Npb25fbmFtZSxpPWUudGhyZXNob2xkLGE9ZS5wYXJlbnRJZCxzPWUub3BlcmF0aW9ucyx1PWUua2V5cztyZXR1cm4gdC5zZXRUeXBlKGZ1bmN0aW9uKGUpe3JldHVybiBpc05hTihlKT8iQWN0aXZlIj09PWU/MjoiV2l0bmVzcyI9PT1lPzE6MDplfShyKSksdC5zZXRJZChuKSx0LnNldFBlcm1pc3Npb25OYW1lKG8pLHQuc2V0VGhyZXNob2xkKGkpLGEmJnQuc2V0UGFyZW50SWQoYSkscyYmdC5zZXRPcGVyYXRpb25zKFJ5KHMpKSx1JiZ0LnNldEtleXNMaXN0KHUubWFwKChmdW5jdGlvbihlKXt2YXIgdD1uZXcgWmc7cmV0dXJuIHQuc2V0QWRkcmVzcyhSeShlLmFkZHJlc3MpKSx0LnNldFdlaWdodChlLndlaWdodCksdH0pKSksdH07cmV0dXJuIG8mJnIuc2V0T3duZXIocyhvKSksaSYmci5zZXRXaXRuZXNzKHMoaSkpLGEmJihBcnJheS5pc0FycmF5KGEpP3Iuc2V0QWN0aXZlc0xpc3QoYS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBzKGUpfSkpKTpyLnNldEFjdGl2ZXNMaXN0KFtzKGEpXSkpLE55KHIsSGcuQ29udHJhY3QuQ29udHJhY3RUeXBlLkFDQ09VTlRQRVJNSVNTSU9OVVBEQVRFQ09OVFJBQ1QsIkFjY291bnRQZXJtaXNzaW9uVXBkYXRlQ29udHJhY3QiLHQuUGVybWlzc2lvbl9pZCl9KHQscik7Y2FzZSJVcGRhdGVBc3NldENvbnRyYWN0IjpyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1uZXcgY3ksbj1lLm93bmVyX2FkZHJlc3Msbz1lLmRlc2NyaXB0aW9uLGk9ZS51cmwsYT1lLm5ld19saW1pdCxzPWUubmV3X3B1YmxpY19saW1pdDtyZXR1cm4gci5zZXRPd25lckFkZHJlc3MoUnkobikpLG8mJnIuc2V0RGVzY3JpcHRpb24oUnkoby5yZXBsYWNlKC9eMHgvLCIiKSkpLGkmJnIuc2V0VXJsKFJ5KGkucmVwbGFjZSgvXjB4LywiIikpKSxhJiZyLnNldE5ld0xpbWl0KGEpLHMmJnIuc2V0TmV3UHVibGljTGltaXQocyksTnkocixIZy5Db250cmFjdC5Db250cmFjdFR5cGUuVVBEQVRFQVNTRVRDT05UUkFDVCwiVXBkYXRlQXNzZXRDb250cmFjdCIsdC5QZXJtaXNzaW9uX2lkKX0odCxyKX19LER5PWZ1bmN0aW9uKGUpe3ZhciB0PWUucmF3X2RhdGEscj10LmNvbnRyYWN0WzBdLG49ci5wYXJhbWV0ZXIudmFsdWUsbz17UGVybWlzc2lvbl9pZDpyLlBlcm1pc3Npb25faWR9LGk9VXkocixuLG8pLGE9aS5nZXRSYXdEYXRhKCk7cmV0dXJuIGEuc2V0UmVmQmxvY2tCeXRlcyhSeSh0LnJlZl9ibG9ja19ieXRlcykpLGEuc2V0UmVmQmxvY2tIYXNoKFJ5KHQucmVmX2Jsb2NrX2hhc2gpKSx0LmRhdGEmJmEuc2V0RGF0YShSeSh0LmRhdGEpKSx0LmZlZV9saW1pdCYmYS5zZXRGZWVMaW1pdCh0LmZlZV9saW1pdCksdC5leHBpcmF0aW9uJiZhLnNldEV4cGlyYXRpb24odC5leHBpcmF0aW9uKSx0LnRpbWVzdGFtcCYmYS5zZXRUaW1lc3RhbXAodC50aW1lc3RhbXApLGkuc2V0UmF3RGF0YShhKSxpfSxMeT1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30sbj1lLnJhd19kYXRhLG89bi5jb250cmFjdFswXSxpPVV5KG8sdCx7UGVybWlzc2lvbl9pZDpudWxsPT10P3ZvaWQgMDp0LlBlcm1pc3Npb25faWR9KSxhPWkuZ2V0UmF3RGF0YSgpO3JldHVybiBhLnNldFJlZkJsb2NrQnl0ZXMoUnkobi5yZWZfYmxvY2tfYnl0ZXMpKSxhLnNldFJlZkJsb2NrSGFzaChSeShuLnJlZl9ibG9ja19oYXNoKSksci5kYXRhJiZhLnNldERhdGEoUnkoci5kYXRhLnJlcGxhY2UoL14weC8sIiIpKSksKHIuZmVlX2xpbWl0fHx0LmZlZV9saW1pdCkmJmEuc2V0RmVlTGltaXQoci5mZWVfbGltaXR8fHQuZmVlX2xpbWl0KSxuLmV4cGlyYXRpb24mJmEuc2V0RXhwaXJhdGlvbihuLmV4cGlyYXRpb24pLG4udGltZXN0YW1wJiZhLnNldFRpbWVzdGFtcChuLnRpbWVzdGFtcCksaS5zZXRSYXdEYXRhKGEpLGl9LGp5PWZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5nZXRSYXdEYXRhKCkuc2VyaWFsaXplQmluYXJ5KCksbj13dChyKSxvPVZuKHIpO3JldHVybiBuLnRvTG93ZXJDYXNlKCk9PT1lLnJhd19kYXRhX2hleC50b0xvd2VyQ2FzZSgpJiZvLnJlcGxhY2UoL14weC8sIiIpLnRvTG93ZXJDYXNlKCk9PT1lLnR4SUQucmVwbGFjZSgvXjB4LywiIikudG9Mb3dlckNhc2UoKX0senk9ZnVuY3Rpb24oZSl7cmV0dXJuIHd0KGUuZ2V0UmF3RGF0YSgpLnNlcmlhbGl6ZUJpbmFyeSgpKX0sJHk9ZnVuY3Rpb24oZSl7dmFyIHQ9RHkoZSk7cmV0dXJuIGp5KGUsdCl9LFZ5PWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1MeShlLHQscik7cmV0dXJuIGp5KGUsbil9LEd5PWZ1bmN0aW9uKGUpe3JldHVybiBWbihlLmdldFJhd0RhdGEoKS5zZXJpYWxpemVCaW5hcnkoKSl9LEh5PW8oODk2NiksS3k9by5uKEh5KSxaeT0vXi0/KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspPyQvaSxxeT1NYXRoLmNlaWwsSnk9TWF0aC5mbG9vcixZeT0iW0JpZ051bWJlciBFcnJvcl0gIixYeT1ZeSsiTnVtYmVyIHByaW1pdGl2ZSBoYXMgbW9yZSB0aGFuIDE1IHNpZ25pZmljYW50IGRpZ2l0czogIixReT0xZTE0LGViPTE0LHRiPTkwMDcxOTkyNTQ3NDA5OTEscmI9WzEsMTAsMTAwLDFlMywxZTQsMWU1LDFlNiwxZTcsMWU4LDFlOSwxZTEwLDFlMTEsMWUxMiwxZTEzXSxuYj0xZTcsb2I9MWU5O2Z1bmN0aW9uIGliKGUpe3ZhciB0PTB8ZTtyZXR1cm4gZT4wfHxlPT09dD90OnQtMX1mdW5jdGlvbiBhYihlKXtmb3IodmFyIHQscixuPTEsbz1lLmxlbmd0aCxpPWVbMF0rIiI7bjxvOyl7Zm9yKHQ9ZVtuKytdKyIiLHI9ZWItdC5sZW5ndGg7ci0tO3Q9IjAiK3QpO2krPXR9Zm9yKG89aS5sZW5ndGg7NDg9PT1pLmNoYXJDb2RlQXQoLS1vKTspO3JldHVybiBpLnNsaWNlKDAsbysxfHwxKX1mdW5jdGlvbiBzYihlLHQpe3ZhciByLG4sbz1lLmMsaT10LmMsYT1lLnMscz10LnMsdT1lLmUsYz10LmU7aWYoIWF8fCFzKXJldHVybiBudWxsO2lmKHI9byYmIW9bMF0sbj1pJiYhaVswXSxyfHxuKXJldHVybiByP24/MDotczphO2lmKGEhPXMpcmV0dXJuIGE7aWYocj1hPDAsbj11PT1jLCFvfHwhaSlyZXR1cm4gbj8wOiFvXnI/MTotMTtpZighbilyZXR1cm4gdT5jXnI/MTotMTtmb3Iocz0odT1vLmxlbmd0aCk8KGM9aS5sZW5ndGgpP3U6YyxhPTA7YTxzO2ErKylpZihvW2FdIT1pW2FdKXJldHVybiBvW2FdPmlbYV1ecj8xOi0xO3JldHVybiB1PT1jPzA6dT5jXnI/MTotMX1mdW5jdGlvbiB1YihlLHQscixuKXtpZihlPHR8fGU+cnx8ZSE9PUp5KGUpKXRocm93IEVycm9yKFl5KyhufHwiQXJndW1lbnQiKSsoIm51bWJlciI9PXR5cGVvZiBlP2U8dHx8ZT5yPyIgb3V0IG9mIHJhbmdlOiAiOiIgbm90IGFuIGludGVnZXI6ICI6IiBub3QgYSBwcmltaXRpdmUgbnVtYmVyOiAiKStTdHJpbmcoZSkpfWZ1bmN0aW9uIGNiKGUpe3ZhciB0PWUuYy5sZW5ndGgtMTtyZXR1cm4gaWIoZS5lL2ViKT09dCYmZS5jW3RdJTIhPTB9ZnVuY3Rpb24gbGIoZSx0KXtyZXR1cm4oZS5sZW5ndGg+MT9lLmNoYXJBdCgwKSsiLiIrZS5zbGljZSgxKTplKSsodDwwPyJlIjoiZSsiKSt0fWZ1bmN0aW9uIGRiKGUsdCxyKXt2YXIgbixvO2lmKHQ8MCl7Zm9yKG89cisiLiI7Kyt0O28rPXIpO2U9bytlfWVsc2UgaWYoKyt0PihuPWUubGVuZ3RoKSl7Zm9yKG89cix0LT1uOy0tdDtvKz1yKTtlKz1vfWVsc2UgdDxuJiYoZT1lLnNsaWNlKDAsdCkrIi4iK2Uuc2xpY2UodCkpO3JldHVybiBlfXZhciBmYj1mdW5jdGlvbiBlKHQpe3ZhciByLG4sbyxpLGEscyx1LGMsbCxkLGY9Qy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkMsdG9TdHJpbmc6bnVsbCx2YWx1ZU9mOm51bGx9LHA9bmV3IEMoMSksaD0yMCxnPTQseT0tNyxiPTIxLHY9LTFlNyxtPTFlNyxUPSExLHc9MSxBPTAsUD17cHJlZml4OiIiLGdyb3VwU2l6ZTozLHNlY29uZGFyeUdyb3VwU2l6ZTowLGdyb3VwU2VwYXJhdG9yOiIsIixkZWNpbWFsU2VwYXJhdG9yOiIuIixmcmFjdGlvbkdyb3VwU2l6ZTowLGZyYWN0aW9uR3JvdXBTZXBhcmF0b3I6IsKgIixzdWZmaXg6IiJ9LFc9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsQj0hMDtmdW5jdGlvbiBDKGUsdCl7dmFyIHIsaSxhLHMsdSxjLGwsZCxmPXRoaXM7aWYoIShmIGluc3RhbmNlb2YgQykpcmV0dXJuIG5ldyBDKGUsdCk7aWYobnVsbD09dCl7aWYoZSYmITA9PT1lLl9pc0JpZ051bWJlcilyZXR1cm4gZi5zPWUucyx2b2lkKCFlLmN8fGUuZT5tP2YuYz1mLmU9bnVsbDplLmU8dj9mLmM9W2YuZT0wXTooZi5lPWUuZSxmLmM9ZS5jLnNsaWNlKCkpKTtpZigoYz0ibnVtYmVyIj09dHlwZW9mIGUpJiYwKmU9PTApe2lmKGYucz0xL2U8MD8oZT0tZSwtMSk6MSxlPT09fn5lKXtmb3Iocz0wLHU9ZTt1Pj0xMDt1Lz0xMCxzKyspO3JldHVybiB2b2lkKHM+bT9mLmM9Zi5lPW51bGw6KGYuZT1zLGYuYz1bZV0pKX1kPVN0cmluZyhlKX1lbHNle2lmKCFaeS50ZXN0KGQ9U3RyaW5nKGUpKSlyZXR1cm4gbyhmLGQsYyk7Zi5zPTQ1PT1kLmNoYXJDb2RlQXQoMCk/KGQ9ZC5zbGljZSgxKSwtMSk6MX0ocz1kLmluZGV4T2YoIi4iKSk+LTEmJihkPWQucmVwbGFjZSgiLiIsIiIpKSwodT1kLnNlYXJjaCgvZS9pKSk+MD8oczwwJiYocz11KSxzKz0rZC5zbGljZSh1KzEpLGQ9ZC5zdWJzdHJpbmcoMCx1KSk6czwwJiYocz1kLmxlbmd0aCl9ZWxzZXtpZih1Yih0LDIsVy5sZW5ndGgsIkJhc2UiKSwxMD09dCYmQilyZXR1cm4gSShmPW5ldyBDKGUpLGgrZi5lKzEsZyk7aWYoZD1TdHJpbmcoZSksYz0ibnVtYmVyIj09dHlwZW9mIGUpe2lmKDAqZSE9MClyZXR1cm4gbyhmLGQsYyx0KTtpZihmLnM9MS9lPDA/KGQ9ZC5zbGljZSgxKSwtMSk6MSxDLkRFQlVHJiZkLnJlcGxhY2UoL14wXC4wKnxcLi8sIiIpLmxlbmd0aD4xNSl0aHJvdyBFcnJvcihYeStlKX1lbHNlIGYucz00NT09PWQuY2hhckNvZGVBdCgwKT8oZD1kLnNsaWNlKDEpLC0xKToxO2ZvcihyPVcuc2xpY2UoMCx0KSxzPXU9MCxsPWQubGVuZ3RoO3U8bDt1KyspaWYoci5pbmRleE9mKGk9ZC5jaGFyQXQodSkpPDApe2lmKCIuIj09aSl7aWYodT5zKXtzPWw7Y29udGludWV9fWVsc2UgaWYoIWEmJihkPT1kLnRvVXBwZXJDYXNlKCkmJihkPWQudG9Mb3dlckNhc2UoKSl8fGQ9PWQudG9Mb3dlckNhc2UoKSYmKGQ9ZC50b1VwcGVyQ2FzZSgpKSkpe2E9ITAsdT0tMSxzPTA7Y29udGludWV9cmV0dXJuIG8oZixTdHJpbmcoZSksYyx0KX1jPSExLChzPShkPW4oZCx0LDEwLGYucykpLmluZGV4T2YoIi4iKSk+LTE/ZD1kLnJlcGxhY2UoIi4iLCIiKTpzPWQubGVuZ3RofWZvcih1PTA7NDg9PT1kLmNoYXJDb2RlQXQodSk7dSsrKTtmb3IobD1kLmxlbmd0aDs0OD09PWQuY2hhckNvZGVBdCgtLWwpOyk7aWYoZD1kLnNsaWNlKHUsKytsKSl7aWYobC09dSxjJiZDLkRFQlVHJiZsPjE1JiYoZT50Ynx8ZSE9PUp5KGUpKSl0aHJvdyBFcnJvcihYeStmLnMqZSk7aWYoKHM9cy11LTEpPm0pZi5jPWYuZT1udWxsO2Vsc2UgaWYoczx2KWYuYz1bZi5lPTBdO2Vsc2V7aWYoZi5lPXMsZi5jPVtdLHU9KHMrMSklZWIsczwwJiYodSs9ZWIpLHU8bCl7Zm9yKHUmJmYuYy5wdXNoKCtkLnNsaWNlKDAsdSkpLGwtPWViO3U8bDspZi5jLnB1c2goK2Quc2xpY2UodSx1Kz1lYikpO3U9ZWItKGQ9ZC5zbGljZSh1KSkubGVuZ3RofWVsc2UgdS09bDtmb3IoO3UtLTtkKz0iMCIpO2YuYy5wdXNoKCtkKX19ZWxzZSBmLmM9W2YuZT0wXX1mdW5jdGlvbiBFKGUsdCxyLG4pe3ZhciBvLGksYSxzLHU7aWYobnVsbD09cj9yPWc6dWIociwwLDgpLCFlLmMpcmV0dXJuIGUudG9TdHJpbmcoKTtpZihvPWUuY1swXSxhPWUuZSxudWxsPT10KXU9YWIoZS5jKSx1PTE9PW58fDI9PW4mJihhPD15fHxhPj1iKT9sYih1LGEpOmRiKHUsYSwiMCIpO2Vsc2UgaWYoaT0oZT1JKG5ldyBDKGUpLHQscikpLmUscz0odT1hYihlLmMpKS5sZW5ndGgsMT09bnx8Mj09biYmKHQ8PWl8fGk8PXkpKXtmb3IoO3M8dDt1Kz0iMCIscysrKTt1PWxiKHUsaSl9ZWxzZSBpZih0LT1hLHU9ZGIodSxpLCIwIiksaSsxPnMpe2lmKC0tdD4wKWZvcih1Kz0iLiI7dC0tO3UrPSIwIik7fWVsc2UgaWYoKHQrPWktcyk+MClmb3IoaSsxPT1zJiYodSs9Ii4iKTt0LS07dSs9IjAiKTtyZXR1cm4gZS5zPDAmJm8/Ii0iK3U6dX1mdW5jdGlvbiBNKGUsdCl7Zm9yKHZhciByLG49MSxvPW5ldyBDKGVbMF0pO248ZS5sZW5ndGg7bisrKXtpZighKHI9bmV3IEMoZVtuXSkpLnMpe289cjticmVha310LmNhbGwobyxyKSYmKG89cil9cmV0dXJuIG99ZnVuY3Rpb24gayhlLHQscil7Zm9yKHZhciBuPTEsbz10Lmxlbmd0aDshdFstLW9dO3QucG9wKCkpO2ZvcihvPXRbMF07bz49MTA7by89MTAsbisrKTtyZXR1cm4ocj1uK3IqZWItMSk+bT9lLmM9ZS5lPW51bGw6cjx2P2UuYz1bZS5lPTBdOihlLmU9cixlLmM9dCksZX1mdW5jdGlvbiBJKGUsdCxyLG4pe3ZhciBvLGksYSxzLHUsYyxsLGQ9ZS5jLGY9cmI7aWYoZCl7ZTp7Zm9yKG89MSxzPWRbMF07cz49MTA7cy89MTAsbysrKTtpZigoaT10LW8pPDApaSs9ZWIsYT10LGw9KHU9ZFtjPTBdKS9mW28tYS0xXSUxMHwwO2Vsc2UgaWYoKGM9cXkoKGkrMSkvZWIpKT49ZC5sZW5ndGgpe2lmKCFuKWJyZWFrIGU7Zm9yKDtkLmxlbmd0aDw9YztkLnB1c2goMCkpO3U9bD0wLG89MSxhPShpJT1lYiktZWIrMX1lbHNle2Zvcih1PXM9ZFtjXSxvPTE7cz49MTA7cy89MTAsbysrKTtsPShhPShpJT1lYiktZWIrbyk8MD8wOnUvZltvLWEtMV0lMTB8MH1pZihuPW58fHQ8MHx8bnVsbCE9ZFtjKzFdfHwoYTwwP3U6dSVmW28tYS0xXSksbj1yPDQ/KGx8fG4pJiYoMD09cnx8cj09KGUuczwwPzM6MikpOmw+NXx8NT09bCYmKDQ9PXJ8fG58fDY9PXImJihpPjA/YT4wP3UvZltvLWFdOjA6ZFtjLTFdKSUxMCYxfHxyPT0oZS5zPDA/ODo3KSksdDwxfHwhZFswXSlyZXR1cm4gZC5sZW5ndGg9MCxuPyh0LT1lLmUrMSxkWzBdPWZbKGViLXQlZWIpJWViXSxlLmU9LXR8fDApOmRbMF09ZS5lPTAsZTtpZigwPT1pPyhkLmxlbmd0aD1jLHM9MSxjLS0pOihkLmxlbmd0aD1jKzEscz1mW2ViLWldLGRbY109YT4wP0p5KHUvZltvLWFdJWZbYV0pKnM6MCksbilmb3IoOzspe2lmKDA9PWMpe2ZvcihpPTEsYT1kWzBdO2E+PTEwO2EvPTEwLGkrKyk7Zm9yKGE9ZFswXSs9cyxzPTE7YT49MTA7YS89MTAscysrKTtpIT1zJiYoZS5lKyssZFswXT09UXkmJihkWzBdPTEpKTticmVha31pZihkW2NdKz1zLGRbY10hPVF5KWJyZWFrO2RbYy0tXT0wLHM9MX1mb3IoaT1kLmxlbmd0aDswPT09ZFstLWldO2QucG9wKCkpO31lLmU+bT9lLmM9ZS5lPW51bGw6ZS5lPHYmJihlLmM9W2UuZT0wXSl9cmV0dXJuIGV9ZnVuY3Rpb24gTyhlKXt2YXIgdCxyPWUuZTtyZXR1cm4gbnVsbD09PXI/ZS50b1N0cmluZygpOih0PWFiKGUuYyksdD1yPD15fHxyPj1iP2xiKHQscik6ZGIodCxyLCIwIiksZS5zPDA/Ii0iK3Q6dCl9cmV0dXJuIEMuY2xvbmU9ZSxDLlJPVU5EX1VQPTAsQy5ST1VORF9ET1dOPTEsQy5ST1VORF9DRUlMPTIsQy5ST1VORF9GTE9PUj0zLEMuUk9VTkRfSEFMRl9VUD00LEMuUk9VTkRfSEFMRl9ET1dOPTUsQy5ST1VORF9IQUxGX0VWRU49NixDLlJPVU5EX0hBTEZfQ0VJTD03LEMuUk9VTkRfSEFMRl9GTE9PUj04LEMuRVVDTElEPTksQy5jb25maWc9Qy5zZXQ9ZnVuY3Rpb24oZSl7dmFyIHQscjtpZihudWxsIT1lKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpdGhyb3cgRXJyb3IoWXkrIk9iamVjdCBleHBlY3RlZDogIitlKTtpZihlLmhhc093blByb3BlcnR5KHQ9IkRFQ0lNQUxfUExBQ0VTIikmJih1YihyPWVbdF0sMCxvYix0KSxoPXIpLGUuaGFzT3duUHJvcGVydHkodD0iUk9VTkRJTkdfTU9ERSIpJiYodWIocj1lW3RdLDAsOCx0KSxnPXIpLGUuaGFzT3duUHJvcGVydHkodD0iRVhQT05FTlRJQUxfQVQiKSYmKChyPWVbdF0pJiZyLnBvcD8odWIoclswXSwtb2IsMCx0KSx1YihyWzFdLDAsb2IsdCkseT1yWzBdLGI9clsxXSk6KHViKHIsLW9iLG9iLHQpLHk9LShiPXI8MD8tcjpyKSkpLGUuaGFzT3duUHJvcGVydHkodD0iUkFOR0UiKSlpZigocj1lW3RdKSYmci5wb3ApdWIoclswXSwtb2IsLTEsdCksdWIoclsxXSwxLG9iLHQpLHY9clswXSxtPXJbMV07ZWxzZXtpZih1YihyLC1vYixvYix0KSwhcil0aHJvdyBFcnJvcihZeSt0KyIgY2Fubm90IGJlIHplcm86ICIrcik7dj0tKG09cjwwPy1yOnIpfWlmKGUuaGFzT3duUHJvcGVydHkodD0iQ1JZUFRPIikpe2lmKChyPWVbdF0pIT09ISFyKXRocm93IEVycm9yKFl5K3QrIiBub3QgdHJ1ZSBvciBmYWxzZTogIityKTtpZihyKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgVD0hcixFcnJvcihZeSsiY3J5cHRvIHVuYXZhaWxhYmxlIik7VD1yfWVsc2UgVD1yfWlmKGUuaGFzT3duUHJvcGVydHkodD0iTU9EVUxPX01PREUiKSYmKHViKHI9ZVt0XSwwLDksdCksdz1yKSxlLmhhc093blByb3BlcnR5KHQ9IlBPV19QUkVDSVNJT04iKSYmKHViKHI9ZVt0XSwwLG9iLHQpLEE9ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJGT1JNQVQiKSl7aWYoIm9iamVjdCIhPXR5cGVvZihyPWVbdF0pKXRocm93IEVycm9yKFl5K3QrIiBub3QgYW4gb2JqZWN0OiAiK3IpO1A9cn1pZihlLmhhc093blByb3BlcnR5KHQ9IkFMUEhBQkVUIikpe2lmKCJzdHJpbmciIT10eXBlb2Yocj1lW3RdKXx8L14uPyR8WytcLS5cc118KC4pLipcMS8udGVzdChyKSl0aHJvdyBFcnJvcihZeSt0KyIgaW52YWxpZDogIityKTtCPSIwMTIzNDU2Nzg5Ij09ci5zbGljZSgwLDEwKSxXPXJ9fXJldHVybntERUNJTUFMX1BMQUNFUzpoLFJPVU5ESU5HX01PREU6ZyxFWFBPTkVOVElBTF9BVDpbeSxiXSxSQU5HRTpbdixtXSxDUllQVE86VCxNT0RVTE9fTU9ERTp3LFBPV19QUkVDSVNJT046QSxGT1JNQVQ6UCxBTFBIQUJFVDpXfX0sQy5pc0JpZ051bWJlcj1mdW5jdGlvbihlKXtpZighZXx8ITAhPT1lLl9pc0JpZ051bWJlcilyZXR1cm4hMTtpZighQy5ERUJVRylyZXR1cm4hMDt2YXIgdCxyLG49ZS5jLG89ZS5lLGk9ZS5zO2U6aWYoIltvYmplY3QgQXJyYXldIj09e30udG9TdHJpbmcuY2FsbChuKSl7aWYoKDE9PT1pfHwtMT09PWkpJiZvPj0tb2ImJm88PW9iJiZvPT09Snkobykpe2lmKDA9PT1uWzBdKXtpZigwPT09byYmMT09PW4ubGVuZ3RoKXJldHVybiEwO2JyZWFrIGV9aWYoKHQ9KG8rMSklZWIpPDEmJih0Kz1lYiksU3RyaW5nKG5bMF0pLmxlbmd0aD09dCl7Zm9yKHQ9MDt0PG4ubGVuZ3RoO3QrKylpZigocj1uW3RdKTwwfHxyPj1ReXx8ciE9PUp5KHIpKWJyZWFrIGU7aWYoMCE9PXIpcmV0dXJuITB9fX1lbHNlIGlmKG51bGw9PT1uJiZudWxsPT09byYmKG51bGw9PT1pfHwxPT09aXx8LTE9PT1pKSlyZXR1cm4hMDt0aHJvdyBFcnJvcihZeSsiSW52YWxpZCBCaWdOdW1iZXI6ICIrZSl9LEMubWF4aW11bT1DLm1heD1mdW5jdGlvbigpe3JldHVybiBNKGFyZ3VtZW50cyxmLmx0KX0sQy5taW5pbXVtPUMubWluPWZ1bmN0aW9uKCl7cmV0dXJuIE0oYXJndW1lbnRzLGYuZ3QpfSxDLnJhbmRvbT0oaT05MDA3MTk5MjU0NzQwOTkyLGE9TWF0aC5yYW5kb20oKSppJjIwOTcxNTE/ZnVuY3Rpb24oKXtyZXR1cm4gSnkoTWF0aC5yYW5kb20oKSppKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKGUpe3ZhciB0LHIsbixvLGkscz0wLHU9W10sYz1uZXcgQyhwKTtpZihudWxsPT1lP2U9aDp1YihlLDAsb2IpLG89cXkoZS9lYiksVClpZihjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKXtmb3IodD1jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheShvKj0yKSk7czxvOykoaT0xMzEwNzIqdFtzXSsodFtzKzFdPj4+MTEpKT49OWUxNT8ocj1jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgyKSksdFtzXT1yWzBdLHRbcysxXT1yWzFdKToodS5wdXNoKGklMWUxNCkscys9Mik7cz1vLzJ9ZWxzZXtpZighY3J5cHRvLnJhbmRvbUJ5dGVzKXRocm93IFQ9ITEsRXJyb3IoWXkrImNyeXB0byB1bmF2YWlsYWJsZSIpO2Zvcih0PWNyeXB0by5yYW5kb21CeXRlcyhvKj03KTtzPG87KShpPTI4MTQ3NDk3NjcxMDY1NiooMzEmdFtzXSkrMTA5OTUxMTYyNzc3Nip0W3MrMV0rNDI5NDk2NzI5Nip0W3MrMl0rMTY3NzcyMTYqdFtzKzNdKyh0W3MrNF08PDE2KSsodFtzKzVdPDw4KSt0W3MrNl0pPj05ZTE1P2NyeXB0by5yYW5kb21CeXRlcyg3KS5jb3B5KHQscyk6KHUucHVzaChpJTFlMTQpLHMrPTcpO3M9by83fWlmKCFUKWZvcig7czxvOykoaT1hKCkpPDllMTUmJih1W3MrK109aSUxZTE0KTtmb3Iobz11Wy0tc10sZSU9ZWIsbyYmZSYmKGk9cmJbZWItZV0sdVtzXT1KeShvL2kpKmkpOzA9PT11W3NdO3UucG9wKCkscy0tKTtpZihzPDApdT1bbj0wXTtlbHNle2ZvcihuPS0xOzA9PT11WzBdO3Uuc3BsaWNlKDAsMSksbi09ZWIpO2ZvcihzPTEsaT11WzBdO2k+PTEwO2kvPTEwLHMrKyk7czxlYiYmKG4tPWViLXMpfXJldHVybiBjLmU9bixjLmM9dSxjfSksQy5zdW09ZnVuY3Rpb24oKXtmb3IodmFyIGU9MSx0PWFyZ3VtZW50cyxyPW5ldyBDKHRbMF0pO2U8dC5sZW5ndGg7KXI9ci5wbHVzKHRbZSsrXSk7cmV0dXJuIHJ9LG49ZnVuY3Rpb24oKXt2YXIgZT0iMDEyMzQ1Njc4OSI7ZnVuY3Rpb24gdChlLHQscixuKXtmb3IodmFyIG8saSxhPVswXSxzPTAsdT1lLmxlbmd0aDtzPHU7KXtmb3IoaT1hLmxlbmd0aDtpLS07YVtpXSo9dCk7Zm9yKGFbMF0rPW4uaW5kZXhPZihlLmNoYXJBdChzKyspKSxvPTA7bzxhLmxlbmd0aDtvKyspYVtvXT5yLTEmJihudWxsPT1hW28rMV0mJihhW28rMV09MCksYVtvKzFdKz1hW29dL3J8MCxhW29dJT1yKX1yZXR1cm4gYS5yZXZlcnNlKCl9cmV0dXJuIGZ1bmN0aW9uKG4sbyxpLGEscyl7dmFyIHUsYyxsLGQsZixwLHksYix2PW4uaW5kZXhPZigiLiIpLG09aCxUPWc7Zm9yKHY+PTAmJihkPUEsQT0wLG49bi5yZXBsYWNlKCIuIiwiIikscD0oYj1uZXcgQyhvKSkucG93KG4ubGVuZ3RoLXYpLEE9ZCxiLmM9dChkYihhYihwLmMpLHAuZSwiMCIpLDEwLGksZSksYi5lPWIuYy5sZW5ndGgpLGw9ZD0oeT10KG4sbyxpLHM/KHU9VyxlKToodT1lLFcpKSkubGVuZ3RoOzA9PXlbLS1kXTt5LnBvcCgpKTtpZigheVswXSlyZXR1cm4gdS5jaGFyQXQoMCk7aWYodjwwPy0tbDoocC5jPXkscC5lPWwscC5zPWEseT0ocD1yKHAsYixtLFQsaSkpLmMsZj1wLnIsbD1wLmUpLHY9eVtjPWwrbSsxXSxkPWkvMixmPWZ8fGM8MHx8bnVsbCE9eVtjKzFdLGY9VDw0PyhudWxsIT12fHxmKSYmKDA9PVR8fFQ9PShwLnM8MD8zOjIpKTp2PmR8fHY9PWQmJig0PT1UfHxmfHw2PT1UJiYxJnlbYy0xXXx8VD09KHAuczwwPzg6NykpLGM8MXx8IXlbMF0pbj1mP2RiKHUuY2hhckF0KDEpLC1tLHUuY2hhckF0KDApKTp1LmNoYXJBdCgwKTtlbHNle2lmKHkubGVuZ3RoPWMsZilmb3IoLS1pOysreVstLWNdPmk7KXlbY109MCxjfHwoKytsLHk9WzFdLmNvbmNhdCh5KSk7Zm9yKGQ9eS5sZW5ndGg7IXlbLS1kXTspO2Zvcih2PTAsbj0iIjt2PD1kO24rPXUuY2hhckF0KHlbdisrXSkpO249ZGIobixsLHUuY2hhckF0KDApKX1yZXR1cm4gbn19KCkscj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LHIpe3ZhciBuLG8saSxhLHM9MCx1PWUubGVuZ3RoLGM9dCVuYixsPXQvbmJ8MDtmb3IoZT1lLnNsaWNlKCk7dS0tOylzPSgobz1jKihpPWVbdV0lbmIpKyhuPWwqaSsoYT1lW3VdL25ifDApKmMpJW5iKm5iK3MpL3J8MCkrKG4vbmJ8MCkrbCphLGVbdV09byVyO3JldHVybiBzJiYoZT1bc10uY29uY2F0KGUpKSxlfWZ1bmN0aW9uIHQoZSx0LHIsbil7dmFyIG8saTtpZihyIT1uKWk9cj5uPzE6LTE7ZWxzZSBmb3Iobz1pPTA7bzxyO28rKylpZihlW29dIT10W29dKXtpPWVbb10+dFtvXT8xOi0xO2JyZWFrfXJldHVybiBpfWZ1bmN0aW9uIHIoZSx0LHIsbil7Zm9yKHZhciBvPTA7ci0tOyllW3JdLT1vLG89ZVtyXTx0W3JdPzE6MCxlW3JdPW8qbitlW3JdLXRbcl07Zm9yKDshZVswXSYmZS5sZW5ndGg+MTtlLnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKG4sbyxpLGEscyl7dmFyIHUsYyxsLGQsZixwLGgsZyx5LGIsdixtLFQsdyxBLFAsVyxCPW4ucz09by5zPzE6LTEsRT1uLmMsTT1vLmM7aWYoIShFJiZFWzBdJiZNJiZNWzBdKSlyZXR1cm4gbmV3IEMobi5zJiZvLnMmJihFPyFNfHxFWzBdIT1NWzBdOk0pP0UmJjA9PUVbMF18fCFNPzAqQjpCLzA6TmFOKTtmb3IoeT0oZz1uZXcgQyhCKSkuYz1bXSxCPWkrKGM9bi5lLW8uZSkrMSxzfHwocz1ReSxjPWliKG4uZS9lYiktaWIoby5lL2ViKSxCPUIvZWJ8MCksbD0wO01bbF09PShFW2xdfHwwKTtsKyspO2lmKE1bbF0+KEVbbF18fDApJiZjLS0sQjwwKXkucHVzaCgxKSxkPSEwO2Vsc2V7Zm9yKHc9RS5sZW5ndGgsUD1NLmxlbmd0aCxsPTAsQis9MiwoZj1KeShzLyhNWzBdKzEpKSk+MSYmKE09ZShNLGYscyksRT1lKEUsZixzKSxQPU0ubGVuZ3RoLHc9RS5sZW5ndGgpLFQ9UCx2PShiPUUuc2xpY2UoMCxQKSkubGVuZ3RoO3Y8UDtiW3YrK109MCk7Vz1NLnNsaWNlKCksVz1bMF0uY29uY2F0KFcpLEE9TVswXSxNWzFdPj1zLzImJkErKztkb3tpZihmPTAsKHU9dChNLGIsUCx2KSk8MCl7aWYobT1iWzBdLFAhPXYmJihtPW0qcysoYlsxXXx8MCkpLChmPUp5KG0vQSkpPjEpZm9yKGY+PXMmJihmPXMtMSksaD0ocD1lKE0sZixzKSkubGVuZ3RoLHY9Yi5sZW5ndGg7MT09dChwLGIsaCx2KTspZi0tLHIocCxQPGg/VzpNLGgscyksaD1wLmxlbmd0aCx1PTE7ZWxzZSAwPT1mJiYodT1mPTEpLGg9KHA9TS5zbGljZSgpKS5sZW5ndGg7aWYoaDx2JiYocD1bMF0uY29uY2F0KHApKSxyKGIscCx2LHMpLHY9Yi5sZW5ndGgsLTE9PXUpZm9yKDt0KE0sYixQLHYpPDE7KWYrKyxyKGIsUDx2P1c6TSx2LHMpLHY9Yi5sZW5ndGh9ZWxzZSAwPT09dSYmKGYrKyxiPVswXSk7eVtsKytdPWYsYlswXT9iW3YrK109RVtUXXx8MDooYj1bRVtUXV0sdj0xKX13aGlsZSgoVCsrPHd8fG51bGwhPWJbMF0pJiZCLS0pO2Q9bnVsbCE9YlswXSx5WzBdfHx5LnNwbGljZSgwLDEpfWlmKHM9PVF5KXtmb3IobD0xLEI9eVswXTtCPj0xMDtCLz0xMCxsKyspO0koZyxpKyhnLmU9bCtjKmViLTEpKzEsYSxkKX1lbHNlIGcuZT1jLGcucj0rZDtyZXR1cm4gZ319KCkscz0vXigtPykwKFt4Ym9dKSg/PVx3W1x3Ll0qJCkvaSx1PS9eKFteLl0rKVwuJC8sYz0vXlwuKFteLl0rKSQvLGw9L14tPyhJbmZpbml0eXxOYU4pJC8sZD0vXlxzKlwrKD89W1x3Ll0pfF5ccyt8XHMrJC9nLG89ZnVuY3Rpb24oZSx0LHIsbil7dmFyIG8saT1yP3Q6dC5yZXBsYWNlKGQsIiIpO2lmKGwudGVzdChpKSllLnM9aXNOYU4oaSk/bnVsbDppPDA/LTE6MTtlbHNle2lmKCFyJiYoaT1pLnJlcGxhY2UocywoZnVuY3Rpb24oZSx0LHIpe3JldHVybiBvPSJ4Ij09KHI9ci50b0xvd2VyQ2FzZSgpKT8xNjoiYiI9PXI/Mjo4LG4mJm4hPW8/ZTp0fSkpLG4mJihvPW4saT1pLnJlcGxhY2UodSwiJDEiKS5yZXBsYWNlKGMsIjAuJDEiKSksdCE9aSkpcmV0dXJuIG5ldyBDKGksbyk7aWYoQy5ERUJVRyl0aHJvdyBFcnJvcihZeSsiTm90IGEiKyhuPyIgYmFzZSAiK246IiIpKyIgbnVtYmVyOiAiK3QpO2Uucz1udWxsfWUuYz1lLmU9bnVsbH0sZi5hYnNvbHV0ZVZhbHVlPWYuYWJzPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IEModGhpcyk7cmV0dXJuIGUuczwwJiYoZS5zPTEpLGV9LGYuY29tcGFyZWRUbz1mdW5jdGlvbihlLHQpe3JldHVybiBzYih0aGlzLG5ldyBDKGUsdCkpfSxmLmRlY2ltYWxQbGFjZXM9Zi5kcD1mdW5jdGlvbihlLHQpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9ZSlyZXR1cm4gdWIoZSwwLG9iKSxudWxsPT10P3Q9Zzp1Yih0LDAsOCksSShuZXcgQyhpKSxlK2kuZSsxLHQpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KChvPXIubGVuZ3RoLTEpLWliKHRoaXMuZS9lYikpKmViLG89cltvXSlmb3IoO28lMTA9PTA7by89MTAsbi0tKTtyZXR1cm4gbjwwJiYobj0wKSxufSxmLmRpdmlkZWRCeT1mLmRpdj1mdW5jdGlvbihlLHQpe3JldHVybiByKHRoaXMsbmV3IEMoZSx0KSxoLGcpfSxmLmRpdmlkZWRUb0ludGVnZXJCeT1mLmlkaXY9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gcih0aGlzLG5ldyBDKGUsdCksMCwxKX0sZi5leHBvbmVudGlhdGVkQnk9Zi5wb3c9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLG8saSxhLHMsdSxjLGw9dGhpcztpZigoZT1uZXcgQyhlKSkuYyYmIWUuaXNJbnRlZ2VyKCkpdGhyb3cgRXJyb3IoWXkrIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2VyOiAiK08oZSkpO2lmKG51bGwhPXQmJih0PW5ldyBDKHQpKSxhPWUuZT4xNCwhbC5jfHwhbC5jWzBdfHwxPT1sLmNbMF0mJiFsLmUmJjE9PWwuYy5sZW5ndGh8fCFlLmN8fCFlLmNbMF0pcmV0dXJuIGM9bmV3IEMoTWF0aC5wb3coK08obCksYT9lLnMqKDItY2IoZSkpOitPKGUpKSksdD9jLm1vZCh0KTpjO2lmKHM9ZS5zPDAsdCl7aWYodC5jPyF0LmNbMF06IXQucylyZXR1cm4gbmV3IEMoTmFOKTsobj0hcyYmbC5pc0ludGVnZXIoKSYmdC5pc0ludGVnZXIoKSkmJihsPWwubW9kKHQpKX1lbHNle2lmKGUuZT45JiYobC5lPjB8fGwuZTwtMXx8KDA9PWwuZT9sLmNbMF0+MXx8YSYmbC5jWzFdPj0yNGU3OmwuY1swXTw4ZTEzfHxhJiZsLmNbMF08PTk5OTk5NzVlNykpKXJldHVybiBpPWwuczwwJiZjYihlKT8tMDowLGwuZT4tMSYmKGk9MS9pKSxuZXcgQyhzPzEvaTppKTtBJiYoaT1xeShBL2ViKzIpKX1mb3IoYT8ocj1uZXcgQyguNSkscyYmKGUucz0xKSx1PWNiKGUpKTp1PShvPU1hdGguYWJzKCtPKGUpKSklMixjPW5ldyBDKHApOzspe2lmKHUpe2lmKCEoYz1jLnRpbWVzKGwpKS5jKWJyZWFrO2k/Yy5jLmxlbmd0aD5pJiYoYy5jLmxlbmd0aD1pKTpuJiYoYz1jLm1vZCh0KSl9aWYobyl7aWYoMD09PShvPUp5KG8vMikpKWJyZWFrO3U9byUyfWVsc2UgaWYoSShlPWUudGltZXMociksZS5lKzEsMSksZS5lPjE0KXU9Y2IoZSk7ZWxzZXtpZigwPT0obz0rTyhlKSkpYnJlYWs7dT1vJTJ9bD1sLnRpbWVzKGwpLGk/bC5jJiZsLmMubGVuZ3RoPmkmJihsLmMubGVuZ3RoPWkpOm4mJihsPWwubW9kKHQpKX1yZXR1cm4gbj9jOihzJiYoYz1wLmRpdihjKSksdD9jLm1vZCh0KTppP0koYyxBLGcsdm9pZCAwKTpjKX0sZi5pbnRlZ2VyVmFsdWU9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IEModGhpcyk7cmV0dXJuIG51bGw9PWU/ZT1nOnViKGUsMCw4KSxJKHQsdC5lKzEsZSl9LGYuaXNFcXVhbFRvPWYuZXE9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMD09PXNiKHRoaXMsbmV3IEMoZSx0KSl9LGYuaXNGaW5pdGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY30sZi5pc0dyZWF0ZXJUaGFuPWYuZ3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2IodGhpcyxuZXcgQyhlLHQpKT4wfSxmLmlzR3JlYXRlclRoYW5PckVxdWFsVG89Zi5ndGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMT09PSh0PXNiKHRoaXMsbmV3IEMoZSx0KSkpfHwwPT09dH0sZi5pc0ludGVnZXI9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmaWIodGhpcy5lL2ViKT50aGlzLmMubGVuZ3RoLTJ9LGYuaXNMZXNzVGhhbj1mLmx0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHNiKHRoaXMsbmV3IEMoZSx0KSk8MH0sZi5pc0xlc3NUaGFuT3JFcXVhbFRvPWYubHRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuLTE9PT0odD1zYih0aGlzLG5ldyBDKGUsdCkpKXx8MD09PXR9LGYuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxmLmlzTmVnYXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPDB9LGYuaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM+MH0sZi5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxmLm1pbnVzPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixvLGksYT10aGlzLHM9YS5zO2lmKHQ9KGU9bmV3IEMoZSx0KSkucywhc3x8IXQpcmV0dXJuIG5ldyBDKE5hTik7aWYocyE9dClyZXR1cm4gZS5zPS10LGEucGx1cyhlKTt2YXIgdT1hLmUvZWIsYz1lLmUvZWIsbD1hLmMsZD1lLmM7aWYoIXV8fCFjKXtpZighbHx8IWQpcmV0dXJuIGw/KGUucz0tdCxlKTpuZXcgQyhkP2E6TmFOKTtpZighbFswXXx8IWRbMF0pcmV0dXJuIGRbMF0/KGUucz0tdCxlKTpuZXcgQyhsWzBdP2E6Mz09Zz8tMDowKX1pZih1PWliKHUpLGM9aWIoYyksbD1sLnNsaWNlKCkscz11LWMpe2ZvcigoaT1zPDApPyhzPS1zLG89bCk6KGM9dSxvPWQpLG8ucmV2ZXJzZSgpLHQ9czt0LS07by5wdXNoKDApKTtvLnJldmVyc2UoKX1lbHNlIGZvcihuPShpPShzPWwubGVuZ3RoKTwodD1kLmxlbmd0aCkpP3M6dCxzPXQ9MDt0PG47dCsrKWlmKGxbdF0hPWRbdF0pe2k9bFt0XTxkW3RdO2JyZWFrfWlmKGkmJihvPWwsbD1kLGQ9byxlLnM9LWUucyksKHQ9KG49ZC5sZW5ndGgpLShyPWwubGVuZ3RoKSk+MClmb3IoO3QtLTtsW3IrK109MCk7Zm9yKHQ9UXktMTtuPnM7KXtpZihsWy0tbl08ZFtuXSl7Zm9yKHI9bjtyJiYhbFstLXJdO2xbcl09dCk7LS1sW3JdLGxbbl0rPVF5fWxbbl0tPWRbbl19Zm9yKDswPT1sWzBdO2wuc3BsaWNlKDAsMSksLS1jKTtyZXR1cm4gbFswXT9rKGUsbCxjKTooZS5zPTM9PWc/LTE6MSxlLmM9W2UuZT0wXSxlKX0sZi5tb2R1bG89Zi5tb2Q9ZnVuY3Rpb24oZSx0KXt2YXIgbixvLGk9dGhpcztyZXR1cm4gZT1uZXcgQyhlLHQpLCFpLmN8fCFlLnN8fGUuYyYmIWUuY1swXT9uZXcgQyhOYU4pOiFlLmN8fGkuYyYmIWkuY1swXT9uZXcgQyhpKTooOT09dz8obz1lLnMsZS5zPTEsbj1yKGksZSwwLDMpLGUucz1vLG4ucyo9byk6bj1yKGksZSwwLHcpLChlPWkubWludXMobi50aW1lcyhlKSkpLmNbMF18fDEhPXd8fChlLnM9aS5zKSxlKX0sZi5tdWx0aXBsaWVkQnk9Zi50aW1lcz1mdW5jdGlvbihlLHQpe3ZhciByLG4sbyxpLGEscyx1LGMsbCxkLGYscCxoLGcseSxiPXRoaXMsdj1iLmMsbT0oZT1uZXcgQyhlLHQpKS5jO2lmKCEodiYmbSYmdlswXSYmbVswXSkpcmV0dXJuIWIuc3x8IWUuc3x8diYmIXZbMF0mJiFtfHxtJiYhbVswXSYmIXY/ZS5jPWUuZT1lLnM9bnVsbDooZS5zKj1iLnMsdiYmbT8oZS5jPVswXSxlLmU9MCk6ZS5jPWUuZT1udWxsKSxlO2ZvcihuPWliKGIuZS9lYikraWIoZS5lL2ViKSxlLnMqPWIucywodT12Lmxlbmd0aCk8KGQ9bS5sZW5ndGgpJiYoaD12LHY9bSxtPWgsbz11LHU9ZCxkPW8pLG89dStkLGg9W107by0tO2gucHVzaCgwKSk7Zm9yKGc9UXkseT1uYixvPWQ7LS1vPj0wOyl7Zm9yKHI9MCxmPW1bb10leSxwPW1bb10veXwwLGk9bysoYT11KTtpPm87KXI9KChjPWYqKGM9dlstLWFdJXkpKyhzPXAqYysobD12W2FdL3l8MCkqZikleSp5K2hbaV0rcikvZ3wwKSsocy95fDApK3AqbCxoW2ktLV09YyVnO2hbaV09cn1yZXR1cm4gcj8rK246aC5zcGxpY2UoMCwxKSxrKGUsaCxuKX0sZi5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IEModGhpcyk7cmV0dXJuIGUucz0tZS5zfHxudWxsLGV9LGYucGx1cz1mdW5jdGlvbihlLHQpe3ZhciByLG49dGhpcyxvPW4ucztpZih0PShlPW5ldyBDKGUsdCkpLnMsIW98fCF0KXJldHVybiBuZXcgQyhOYU4pO2lmKG8hPXQpcmV0dXJuIGUucz0tdCxuLm1pbnVzKGUpO3ZhciBpPW4uZS9lYixhPWUuZS9lYixzPW4uYyx1PWUuYztpZighaXx8IWEpe2lmKCFzfHwhdSlyZXR1cm4gbmV3IEMoby8wKTtpZighc1swXXx8IXVbMF0pcmV0dXJuIHVbMF0/ZTpuZXcgQyhzWzBdP246MCpvKX1pZihpPWliKGkpLGE9aWIoYSkscz1zLnNsaWNlKCksbz1pLWEpe2ZvcihvPjA/KGE9aSxyPXUpOihvPS1vLHI9cyksci5yZXZlcnNlKCk7by0tO3IucHVzaCgwKSk7ci5yZXZlcnNlKCl9Zm9yKChvPXMubGVuZ3RoKS0odD11Lmxlbmd0aCk8MCYmKHI9dSx1PXMscz1yLHQ9byksbz0wO3Q7KW89KHNbLS10XT1zW3RdK3VbdF0rbykvUXl8MCxzW3RdPVF5PT09c1t0XT8wOnNbdF0lUXk7cmV0dXJuIG8mJihzPVtvXS5jb25jYXQocyksKythKSxrKGUscyxhKX0sZi5wcmVjaXNpb249Zi5zZD1mdW5jdGlvbihlLHQpe3ZhciByLG4sbyxpPXRoaXM7aWYobnVsbCE9ZSYmZSE9PSEhZSlyZXR1cm4gdWIoZSwxLG9iKSxudWxsPT10P3Q9Zzp1Yih0LDAsOCksSShuZXcgQyhpKSxlLHQpO2lmKCEocj1pLmMpKXJldHVybiBudWxsO2lmKG49KG89ci5sZW5ndGgtMSkqZWIrMSxvPXJbb10pe2Zvcig7byUxMD09MDtvLz0xMCxuLS0pO2ZvcihvPXJbMF07bz49MTA7by89MTAsbisrKTt9cmV0dXJuIGUmJmkuZSsxPm4mJihuPWkuZSsxKSxufSxmLnNoaWZ0ZWRCeT1mdW5jdGlvbihlKXtyZXR1cm4gdWIoZSwtdGIsdGIpLHRoaXMudGltZXMoIjFlIitlKX0sZi5zcXVhcmVSb290PWYuc3FydD1mdW5jdGlvbigpe3ZhciBlLHQsbixvLGksYT10aGlzLHM9YS5jLHU9YS5zLGM9YS5lLGw9aCs0LGQ9bmV3IEMoIjAuNSIpO2lmKDEhPT11fHwhc3x8IXNbMF0pcmV0dXJuIG5ldyBDKCF1fHx1PDAmJighc3x8c1swXSk/TmFOOnM/YToxLzApO2lmKDA9PSh1PU1hdGguc3FydCgrTyhhKSkpfHx1PT0xLzA/KCgodD1hYihzKSkubGVuZ3RoK2MpJTI9PTAmJih0Kz0iMCIpLHU9TWF0aC5zcXJ0KCt0KSxjPWliKChjKzEpLzIpLShjPDB8fGMlMiksbj1uZXcgQyh0PXU9PTEvMD8iNWUiK2M6KHQ9dS50b0V4cG9uZW50aWFsKCkpLnNsaWNlKDAsdC5pbmRleE9mKCJlIikrMSkrYykpOm49bmV3IEModSsiIiksbi5jWzBdKWZvcigodT0oYz1uLmUpK2wpPDMmJih1PTApOzspaWYoaT1uLG49ZC50aW1lcyhpLnBsdXMocihhLGksbCwxKSkpLGFiKGkuYykuc2xpY2UoMCx1KT09PSh0PWFiKG4uYykpLnNsaWNlKDAsdSkpe2lmKG4uZTxjJiYtLXUsIjk5OTkiIT0odD10LnNsaWNlKHUtMyx1KzEpKSYmKG98fCI0OTk5IiE9dCkpeyt0JiYoK3Quc2xpY2UoMSl8fCI1IiE9dC5jaGFyQXQoMCkpfHwoSShuLG4uZStoKzIsMSksZT0hbi50aW1lcyhuKS5lcShhKSk7YnJlYWt9aWYoIW8mJihJKGksaS5lK2grMiwwKSxpLnRpbWVzKGkpLmVxKGEpKSl7bj1pO2JyZWFrfWwrPTQsdSs9NCxvPTF9cmV0dXJuIEkobixuLmUraCsxLGcsZSl9LGYudG9FeHBvbmVudGlhbD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiYodWIoZSwwLG9iKSxlKyspLEUodGhpcyxlLHQsMSl9LGYudG9GaXhlZD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiYodWIoZSwwLG9iKSxlPWUrdGhpcy5lKzEpLEUodGhpcyxlLHQpfSxmLnRvRm9ybWF0PWZ1bmN0aW9uKGUsdCxyKXt2YXIgbixvPXRoaXM7aWYobnVsbD09ciludWxsIT1lJiZ0JiYib2JqZWN0Ij09dHlwZW9mIHQ/KHI9dCx0PW51bGwpOmUmJiJvYmplY3QiPT10eXBlb2YgZT8ocj1lLGU9dD1udWxsKTpyPVA7ZWxzZSBpZigib2JqZWN0IiE9dHlwZW9mIHIpdGhyb3cgRXJyb3IoWXkrIkFyZ3VtZW50IG5vdCBhbiBvYmplY3Q6ICIrcik7aWYobj1vLnRvRml4ZWQoZSx0KSxvLmMpe3ZhciBpLGE9bi5zcGxpdCgiLiIpLHM9K3IuZ3JvdXBTaXplLHU9K3Iuc2Vjb25kYXJ5R3JvdXBTaXplLGM9ci5ncm91cFNlcGFyYXRvcnx8IiIsbD1hWzBdLGQ9YVsxXSxmPW8uczwwLHA9Zj9sLnNsaWNlKDEpOmwsaD1wLmxlbmd0aDtpZih1JiYoaT1zLHM9dSx1PWksaC09aSkscz4wJiZoPjApe2ZvcihpPWglc3x8cyxsPXAuc3Vic3RyKDAsaSk7aTxoO2krPXMpbCs9YytwLnN1YnN0cihpLHMpO3U+MCYmKGwrPWMrcC5zbGljZShpKSksZiYmKGw9Ii0iK2wpfW49ZD9sKyhyLmRlY2ltYWxTZXBhcmF0b3J8fCIiKSsoKHU9K3IuZnJhY3Rpb25Hcm91cFNpemUpP2QucmVwbGFjZShuZXcgUmVnRXhwKCJcXGR7Iit1KyJ9XFxCIiwiZyIpLCIkJiIrKHIuZnJhY3Rpb25Hcm91cFNlcGFyYXRvcnx8IiIpKTpkKTpsfXJldHVybihyLnByZWZpeHx8IiIpK24rKHIuc3VmZml4fHwiIil9LGYudG9GcmFjdGlvbj1mdW5jdGlvbihlKXt2YXIgdCxuLG8saSxhLHMsdSxjLGwsZCxmLGgseT10aGlzLGI9eS5jO2lmKG51bGwhPWUmJighKHU9bmV3IEMoZSkpLmlzSW50ZWdlcigpJiYodS5jfHwxIT09dS5zKXx8dS5sdChwKSkpdGhyb3cgRXJyb3IoWXkrIkFyZ3VtZW50ICIrKHUuaXNJbnRlZ2VyKCk/Im91dCBvZiByYW5nZTogIjoibm90IGFuIGludGVnZXI6ICIpK08odSkpO2lmKCFiKXJldHVybiBuZXcgQyh5KTtmb3IodD1uZXcgQyhwKSxsPW49bmV3IEMocCksbz1jPW5ldyBDKHApLGg9YWIoYiksYT10LmU9aC5sZW5ndGgteS5lLTEsdC5jWzBdPXJiWyhzPWElZWIpPDA/ZWIrczpzXSxlPSFlfHx1LmNvbXBhcmVkVG8odCk+MD9hPjA/dDpsOnUscz1tLG09MS8wLHU9bmV3IEMoaCksYy5jWzBdPTA7ZD1yKHUsdCwwLDEpLDEhPShpPW4ucGx1cyhkLnRpbWVzKG8pKSkuY29tcGFyZWRUbyhlKTspbj1vLG89aSxsPWMucGx1cyhkLnRpbWVzKGk9bCkpLGM9aSx0PXUubWludXMoZC50aW1lcyhpPXQpKSx1PWk7cmV0dXJuIGk9cihlLm1pbnVzKG4pLG8sMCwxKSxjPWMucGx1cyhpLnRpbWVzKGwpKSxuPW4ucGx1cyhpLnRpbWVzKG8pKSxjLnM9bC5zPXkucyxmPXIobCxvLGEqPTIsZykubWludXMoeSkuYWJzKCkuY29tcGFyZWRUbyhyKGMsbixhLGcpLm1pbnVzKHkpLmFicygpKTwxP1tsLG9dOltjLG5dLG09cyxmfSxmLnRvTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuK08odGhpcyl9LGYudG9QcmVjaXNpb249ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmdWIoZSwxLG9iKSxFKHRoaXMsZSx0LDIpfSxmLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0LHI9dGhpcyxvPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bz8odD0iSW5maW5pdHkiLG88MCYmKHQ9Ii0iK3QpKTp0PSJOYU4iOihudWxsPT1lP3Q9aTw9eXx8aT49Yj9sYihhYihyLmMpLGkpOmRiKGFiKHIuYyksaSwiMCIpOjEwPT09ZSYmQj90PWRiKGFiKChyPUkobmV3IEMociksaCtpKzEsZykpLmMpLHIuZSwiMCIpOih1YihlLDIsVy5sZW5ndGgsIkJhc2UiKSx0PW4oZGIoYWIoci5jKSxpLCIwIiksMTAsZSxvLCEwKSksbzwwJiZyLmNbMF0mJih0PSItIit0KSksdH0sZi52YWx1ZU9mPWYudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIE8odGhpcyl9LGYuX2lzQmlnTnVtYmVyPSEwLGZbU3ltYm9sLnRvU3RyaW5nVGFnXT0iQmlnTnVtYmVyIixmW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWYudmFsdWVPZixudWxsIT10JiZDLnNldCh0KSxDfSgpO2NvbnN0IHBiPWZiO2Z1bmN0aW9uIGhiKGUsdCl7dmFyIHI9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYobj1uLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpKSxyLnB1c2guYXBwbHkocixuKX1yZXR1cm4gcn1mdW5jdGlvbiBnYihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9oYihPYmplY3QociksITApLmZvckVhY2goKGZ1bmN0aW9uKHQpe1coZSx0LHJbdF0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocikpOmhiKE9iamVjdChyKSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsdCkpfSkpfXJldHVybiBlfXZhciB5Yj17aXNWYWxpZFVSTDpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJkt5KCkuaXNVUkwoZS50b1N0cmluZygpLHtwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiXSxyZXF1aXJlX3RsZDohMX0pfSxpc09iamVjdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PU9iamVjdChlKSYmIltvYmplY3QgQXJyYXldIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX0saXNBcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKX0saXNKc29uOmZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4hIUpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7cmV0dXJuITF9fSxpc0Jvb2xlYW46ZnVuY3Rpb24oZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZX0saXNCaWdOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJihlIGluc3RhbmNlb2YgcGJ8fGUuY29uc3RydWN0b3ImJiJCaWdOdW1iZXIiPT09ZS5jb25zdHJ1Y3Rvci5uYW1lKX0saXNTdHJpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHxlJiZlLmNvbnN0cnVjdG9yJiYiU3RyaW5nIj09PWUuY29uc3RydWN0b3IubmFtZX0saXNGdW5jdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZX0saXNIZXg6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYhaXNOYU4ocGFyc2VJbnQoZSwxNikpJiYvXigweHwpW2EtZkEtRjAtOV0rJC8udGVzdChlKX0saXNJbnRlZ2VyOmZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZSYmTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIoZSkpfSxoYXNQcm9wZXJ0eTpmdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0saGFzUHJvcGVydGllczpmdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcyxyPWFyZ3VtZW50cy5sZW5ndGgsbj1uZXcgQXJyYXkocj4xP3ItMTowKSxvPTE7bzxyO28rKyluW28tMV09YXJndW1lbnRzW29dO3JldHVybiBuLmxlbmd0aCYmIW4ubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gdC5oYXNQcm9wZXJ0eShlLHIpfSkpLmluY2x1ZGVzKCExKX0sbWFwRXZlbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9e2Jsb2NrOmUuYmxvY2tfbnVtYmVyLHRpbWVzdGFtcDplLmJsb2NrX3RpbWVzdGFtcCxjb250cmFjdDplLmNvbnRyYWN0X2FkZHJlc3MsbmFtZTplLmV2ZW50X25hbWUsdHJhbnNhY3Rpb246ZS50cmFuc2FjdGlvbl9pZCxyZXN1bHQ6ZS5yZXN1bHQscmVzb3VyY2VOb2RlOmUucmVzb3VyY2VfTm9kZXx8KGUuX3VuY29uZmlybWVkPyJmdWxsTm9kZSI6InNvbGlkaXR5Tm9kZSIpfTtyZXR1cm4gZS5fdW5jb25maXJtZWQmJih0LnVuY29uZmlybWVkPWUuX3VuY29uZmlybWVkKSxlLl9maW5nZXJwcmludCYmKHQuZmluZ2VycHJpbnQ9ZS5fZmluZ2VycHJpbnQpLHR9LHBhcnNlRXZlbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgcj10LmlucHV0cztpZighZS5yZXN1bHQpcmV0dXJuIGU7aWYodGhpcy5pc09iamVjdChlLnJlc3VsdCkpZm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBvPXJbbl07ImFkZHJlc3MiPT1vLnR5cGUmJm8ubmFtZSBpbiBlLnJlc3VsdCYmKGUucmVzdWx0W28ubmFtZV09TXQrZS5yZXN1bHRbby5uYW1lXS5zdWJzdHIoMikudG9Mb3dlckNhc2UoKSl9ZWxzZSB0aGlzLmlzQXJyYXkoZS5yZXN1bHQpJiYoZS5yZXN1bHQ9ZS5yZXN1bHQucmVkdWNlKChmdW5jdGlvbihlLHQsbil7dmFyIG89cltuXSxpPW8ubmFtZTtyZXR1cm4iYWRkcmVzcyI9PW8udHlwZSYmKHQ9TXQrdC5zdWJzdHIoMikudG9Mb3dlckNhc2UoKSksZVtpXT10LGV9KSx7fSkpO3JldHVybiBlfSxwYWRMZWZ0OmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49ZS50b1N0cmluZygpO24ubGVuZ3RoPHI7KW49dCtuO3JldHVybiBufSxpc05vdE51bGxPclVuZGVmaW5lZDpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZX0sc2xlZXA6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHM7cmV0dXJuIHAoQygpLm1hcmsoKGZ1bmN0aW9uIHQoKXt2YXIgcjtyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiByPWUubGVuZ3RoPjAmJnZvaWQgMCE9PWVbMF0/ZVswXToxZTMsdC5hYnJ1cHQoInJldHVybiIsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3JldHVybiBzZXRUaW1lb3V0KGUscil9KSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIHQuc3RvcCgpfX0pLHQpfSkpKSgpfX07Y29uc3QgYmI9Z2IoZ2Ioe30seWIpLHt9LHtjb2RlOnIsYWNjb3VudHM6dSxiYXNlNTg6bixieXRlczp0LGNyeXB0bzpzLGFiaTpjLG1lc3NhZ2U6bCxfVHlwZWREYXRhRW5jb2RlcjpDcCx0cmFuc2FjdGlvbjpkLGV0aGVyc1V0aWxzOmF9KSx2Yj17SHR0cFByb3ZpZGVyOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06M2U0LG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM10saT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06e30sYT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XT9hcmd1bWVudHNbNV06Ii8iO2lmKGcodGhpcyxlKSwhYmIuaXNWYWxpZFVSTCh0KSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgVVJMIHByb3ZpZGVkIHRvIEh0dHBQcm92aWRlciIpO2lmKGlzTmFOKHIpfHxyPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRpbWVvdXQgZHVyYXRpb24gcHJvdmlkZWQiKTtpZighYmIuaXNPYmplY3QoaSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGhlYWRlcnMgb2JqZWN0IHByb3ZpZGVkIik7dD10LnJlcGxhY2UoL1wvKyQvLCIiKSx0aGlzLmhvc3Q9dCx0aGlzLnRpbWVvdXQ9cix0aGlzLnVzZXI9bix0aGlzLnBhc3N3b3JkPW8sdGhpcy5oZWFkZXJzPWksdGhpcy5zdGF0dXNQYWdlPWEsdGhpcy5pbnN0YW5jZT15dC5jcmVhdGUoe2Jhc2VVUkw6dCx0aW1lb3V0OnIsaGVhZGVyczppLGF1dGg6biYme3VzZXI6bixwYXNzd29yZDpvfX0pfXZhciB0O3JldHVybiB2KGUsW3trZXk6InNldFN0YXR1c1BhZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIvIjt0aGlzLnN0YXR1c1BhZ2U9ZX19LHtrZXk6ImlzQ29ubmVjdGVkIix2YWx1ZToodD1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscj1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gdD1yLmxlbmd0aD4wJiZ2b2lkIDAhPT1yWzBdP3JbMF06dGhpcy5zdGF0dXNQYWdlLGUuYWJydXB0KCJyZXR1cm4iLHRoaXMucmVxdWVzdCh0KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gYmIuaGFzUHJvcGVydGllcyhlLCJibG9ja0lEIiwiYmxvY2tfaGVhZGVyIil9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7cmV0dXJuITF9KSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6InJlcXVlc3QiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiZ2V0IjtyZXR1cm4gcj1yLnRvTG93ZXJDYXNlKCksdGhpcy5pbnN0YW5jZS5yZXF1ZXN0KHtkYXRhOiJwb3N0Ij09ciYmT2JqZWN0LmtleXModCkubGVuZ3RoP3Q6bnVsbCxwYXJhbXM6ImdldCI9PXImJnQsdXJsOmUsbWV0aG9kOnJ9KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5kYXRhfSkpfX1dKSxlfSgpfTt2YXIgbWI9byg2NzI5KSxUYj1vLm4obWIpLHdiPW8oNjYyNSksQWI9by5uKHdiKSxQYj1vKDc4MzIpLFdiPW8ubihQYik7ZnVuY3Rpb24gQmIoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn12YXIgQ2IsRWI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZihnKHRoaXMsZSksIXR8fCF0IGluc3RhbmNlb2Ygc3YpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBpbnN0YW5jZSBvZiBUcm9uV2ViIik7dGhpcy50cm9uV2ViPXR9cmV0dXJuIHYoZSxbe2tleToiaW52YWxpZCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubXNnfHwiSW52YWxpZCAiLmNvbmNhdChlLm5hbWUpLmNvbmNhdCgiYWRkcmVzcyI9PT1lLnR5cGU/IiBhZGRyZXNzIjoiIiwiIHByb3ZpZGVkIil9fSx7a2V5OiJub3RQb3NpdGl2ZSIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIiIuY29uY2F0KGUubmFtZSwiIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIil9fSx7a2V5OiJub3RFcXVhbCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubXNnfHwiIi5jb25jYXQoZS5uYW1lc1swXSwiIGNhbiBub3QgYmUgZXF1YWwgdG8gIikuY29uY2F0KGUubmFtZXNbMV0pfX0se2tleToibm90VmFsaWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bmV3IEZ1bmN0aW9uLG49e30sbz0hMSxpPWZ1bmN0aW9uKGUsdCl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKCFyKXtpZihBcnJheS5pc0FycmF5KGUpfHwocj1mdW5jdGlvbihlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gQmIoZSx0KTt2YXIgcj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1yJiZlLmNvbnN0cnVjdG9yJiYocj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09cnx8IlNldCI9PT1yP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1yfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChyKT9CYihlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7ciYmKGU9cik7dmFyIG49MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gbj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbbisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGksYT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7cj1yLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1yLm5leHQoKTtyZXR1cm4gYT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLGk9ZX0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1yLnJldHVybnx8ci5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgaX19fX0odCk7dHJ5e2ZvcihpLnMoKTshKGU9aS5uKCkpLmRvbmU7KXt2YXIgYT1lLnZhbHVlLHM9YS5uYW1lLHU9YS5uYW1lcyxjPWEudmFsdWUsbD1hLnR5cGUsZD1hLmd0LGY9YS5sdCxwPWEuZ3RlLGg9YS5sdGU7aWYoYS5zZSwhYS5vcHRpb25hbHx8YmIuaXNOb3ROdWxsT3JVbmRlZmluZWQoYykmJigiYm9vbGVhbiI9PT1sfHwhMSE9PWMpKXtzd2l0Y2goblthLm5hbWVdPWEudmFsdWUsbCl7Y2FzZSJhZGRyZXNzIjp0aGlzLnRyb25XZWIuaXNBZGRyZXNzKGMpP25bc109dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoYyk6bz0hMDticmVhaztjYXNlImludGVnZXIiOighYmIuaXNJbnRlZ2VyKGMpfHwibnVtYmVyIj09dHlwZW9mIGQmJmM8PWEuZ3R8fCJudW1iZXIiPT10eXBlb2YgZiYmYz49YS5sdHx8Im51bWJlciI9PXR5cGVvZiBwJiZjPGEuZ3RlfHwibnVtYmVyIj09dHlwZW9mIGgmJmM+YS5sdGUpJiYobz0hMCk7YnJlYWs7Y2FzZSJwb3NpdGl2ZS1pbnRlZ2VyIjppZighYmIuaXNJbnRlZ2VyKGMpfHxjPD0wKXJldHVybiB2b2lkIHIodGhpcy5ub3RQb3NpdGl2ZShhKSk7YnJlYWs7Y2FzZSJ0b2tlbklkIjpjYXNlIm5vdC1lbXB0eS1zdHJpbmciOmJiLmlzU3RyaW5nKGMpJiZjLmxlbmd0aHx8KG89ITApO2JyZWFrO2Nhc2Uibm90RW1wdHlPYmplY3QiOmJiLmlzT2JqZWN0KGMpJiZPYmplY3Qua2V5cyhjKS5sZW5ndGh8fChvPSEwKTticmVhaztjYXNlIm5vdEVxdWFsIjppZihuW3VbMF1dPT09blt1WzFdXSlyZXR1cm4gcih0aGlzLm5vdEVxdWFsKGEpKSwhMDticmVhaztjYXNlInJlc291cmNlIjpbIkJBTkRXSURUSCIsIkVORVJHWSJdLmluY2x1ZGVzKGMpfHwobz0hMCk7YnJlYWs7Y2FzZSJ1cmwiOmJiLmlzVmFsaWRVUkwoYyl8fChvPSEwKTticmVhaztjYXNlImhleCI6YmIuaXNIZXgoYyl8fChvPSEwKTticmVhaztjYXNlImFycmF5IjpBcnJheS5pc0FycmF5KGMpfHwobz0hMCk7YnJlYWs7Y2FzZSJib29sZWFuIjpiYi5pc0Jvb2xlYW4oYyl8fChvPSEwKTticmVhaztjYXNlInN0cmluZyI6KCFiYi5pc1N0cmluZyhjKXx8Im51bWJlciI9PXR5cGVvZiBkJiZjLmxlbmd0aDw9YS5ndHx8Im51bWJlciI9PXR5cGVvZiBmJiZjLmxlbmd0aD49YS5sdHx8Im51bWJlciI9PXR5cGVvZiBwJiZjLmxlbmd0aDxhLmd0ZXx8Im51bWJlciI9PXR5cGVvZiBoJiZjLmxlbmd0aD5hLmx0ZSkmJihvPSEwKX1pZihvKXJldHVybiByKHRoaXMuaW52YWxpZChhKSksITB9fX1jYXRjaChlKXtpLmUoZSl9ZmluYWxseXtpLmYoKX1yZXR1cm4hMX19XSksZX0oKTtmdW5jdGlvbiBNYihlLHQpe3ZhciByPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighcil7aWYoQXJyYXkuaXNBcnJheShlKXx8KHI9ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGtiKGUsdCk7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09ciYmZS5jb25zdHJ1Y3RvciYmKHI9ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PXJ8fCJTZXQiPT09cj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09cnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qocik/a2IoZSx0KTp2b2lkIDB9fShlKSl8fHQmJmUmJiJudW1iZXIiPT10eXBlb2YgZS5sZW5ndGgpe3ImJihlPXIpO3ZhciBuPTAsbz1mdW5jdGlvbigpe307cmV0dXJue3M6byxuOmZ1bmN0aW9uKCl7cmV0dXJuIG4+PWUubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTplW24rK119fSxlOmZ1bmN0aW9uKGUpe3Rocm93IGV9LGY6b319dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGl0ZXJhdGUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfXZhciBpLGE9ITAscz0hMTtyZXR1cm57czpmdW5jdGlvbigpe3I9ci5jYWxsKGUpfSxuOmZ1bmN0aW9uKCl7dmFyIGU9ci5uZXh0KCk7cmV0dXJuIGE9ZS5kb25lLGV9LGU6ZnVuY3Rpb24oZSl7cz0hMCxpPWV9LGY6ZnVuY3Rpb24oKXt0cnl7YXx8bnVsbD09ci5yZXR1cm58fHIucmV0dXJuKCl9ZmluYWxseXtpZihzKXRocm93IGl9fX19ZnVuY3Rpb24ga2IoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheSh0KTtyPHQ7cisrKW5bcl09ZVtyXTtyZXR1cm4gbn1mdW5jdGlvbiBJYihlLHQpe3ZhciByPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gT2IoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/SWIoT2JqZWN0KHIpLCEwKS5mb3JFYWNoKChmdW5jdGlvbih0KXtXKGUsdCxyW3RdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTpJYihPYmplY3QocikpLmZvckVhY2goKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHQpKX0pKX1yZXR1cm4gZX1mdW5jdGlvbiB4YihlKXtyZXR1cm4gc3YuYWRkcmVzcy50b0hleChlKX1mdW5jdGlvbiBTYihlKXtyZXR1cm4gQ2IudHJvbldlYi5mcm9tVXRmOChlKS5yZXBsYWNlKC9eMHgvLCIiKX1mdW5jdGlvbiBGYihlKXtyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlKSl9ZnVuY3Rpb24gX2IoZSx0LHIsbil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHImJihuPXIpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYobj10LHQ9bnVsbCksZS5FcnJvcj9uKGUuRXJyb3IpOmUucmVzdWx0JiZlLnJlc3VsdC5tZXNzYWdlP24oQ2IudHJvbldlYi50b1V0ZjgoZS5yZXN1bHQubWVzc2FnZSkpOlZ5KGUsdCxyKT9uKG51bGwsZSk6bigiSW52YWxpZCB0cmFuc2FjdGlvbiIpfWZ1bmN0aW9uIFJiKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKHZvaWQgMD09PWUucmVmX2Jsb2NrX2J5dGVzJiZ2b2lkIDA9PT1lLnJlZl9ibG9ja19oYXNoJiZ2b2lkIDA9PT1lLmV4cGlyYXRpb24mJnZvaWQgMD09PWUudGltZXN0YW1wKXJldHVybiExO2lmKCJzdHJpbmciIT10eXBlb2YgZS5yZWZfYmxvY2tfYnl0ZXMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJlZl9ibG9ja19ieXRlcyBwcm92aWRlZC4iKTtpZigic3RyaW5nIiE9dHlwZW9mIGUucmVmX2Jsb2NrX2hhc2gpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJlZl9ibG9ja19oYXNoIHByb3ZpZGVkLiIpO2lmKCJudW1iZXIiIT10eXBlb2YgZS5leHBpcmF0aW9uKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBleHBpcmF0aW9uIHByb3ZpZGVkLiIpO2lmKCJudW1iZXIiIT10eXBlb2YgZS50aW1lc3RhbXApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRpbWVzdGFtcCBwcm92aWRlZC4iKTtyZXR1cm4hMH1mdW5jdGlvbiBOYihlLHQscixuKXtyZXR1cm4gVWIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFViKCl7cmV0dXJuIFViPXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUodCxyLG4sbyl7dmFyIGksYSxzLHU9YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoaT11Lmxlbmd0aD40JiZ2b2lkIDAhPT11WzRdP3VbNF06e30sZS50MD1PYixlLnQxPU9iLGUudDI9e2NvbnRyYWN0Olt7cGFyYW1ldGVyOnt2YWx1ZTpuLHR5cGVfdXJsOiJ0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLiIuY29uY2F0KHIpfSx0eXBlOnJ9XX0sIVJiKGkpKXtlLm5leHQ9ODticmVha31lLnQzPXt9LGUubmV4dD0xMTticmVhaztjYXNlIDg6cmV0dXJuIGUubmV4dD0xMCx0LmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRibG9jayIse2RldGFpbDohMX0sInBvc3QiKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm57cmVmX2Jsb2NrX2J5dGVzOmUuYmxvY2tfaGVhZGVyLnJhd19kYXRhLm51bWJlci50b1N0cmluZygxNikuc2xpY2UoLTQpLnBhZFN0YXJ0KDQsIjAiKSxyZWZfYmxvY2tfaGFzaDplLmJsb2NrSUQuc2xpY2UoMTYsMzIpLGV4cGlyYXRpb246ZS5ibG9ja19oZWFkZXIucmF3X2RhdGEudGltZXN0YW1wKzZlNCx0aW1lc3RhbXA6ZS5ibG9ja19oZWFkZXIucmF3X2RhdGEudGltZXN0YW1wfX0pKTtjYXNlIDEwOmUudDM9ZS5zZW50O2Nhc2UgMTE6cmV0dXJuIGUudDQ9ZS50MyxlLnQ1PSgwLGUudDEpKGUudDIsZS50NCksZS50Nj1pLGUudDc9KDAsZS50MCkoZS50NSxlLnQ2KSxhPXt2aXNpYmxlOiExLHR4SUQ6IiIscmF3X2RhdGFfaGV4OiIiLHJhd19kYXRhOmUudDd9LG8mJihhLnJhd19kYXRhLmNvbnRyYWN0WzBdLlBlcm1pc3Npb25faWQ9bykscz1EeShhKSxhLnR4SUQ9R3kocykucmVwbGFjZSgvXjB4LywiIiksYS5yYXdfZGF0YV9oZXg9enkocykudG9Mb3dlckNhc2UoKSxlLmFicnVwdCgicmV0dXJuIixhKTtjYXNlIDIxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpLFViLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBEYihlKXt2YXIgdD17fTtyZXR1cm4gUmIobnVsbD09ZT92b2lkIDA6ZS5ibG9ja0hlYWRlcikmJlsicmVmX2Jsb2NrX2J5dGVzIiwicmVmX2Jsb2NrX2hhc2giLCJleHBpcmF0aW9uIiwidGltZXN0YW1wIl0uZm9yRWFjaCgoZnVuY3Rpb24ocil7dFtyXT1lLmJsb2NrSGVhZGVyW3JdfSkpLHR9dmFyIExiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoZyh0aGlzLGUpLCF0fHwhdCBpbnN0YW5jZW9mIHN2KXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgaW5zdGFuY2Ugb2YgVHJvbldlYiIpO0NiPXRoaXMsdGhpcy50cm9uV2ViPXQsdGhpcy5pbmplY3RQcm9taXNlPVdiKCkodGhpcyksdGhpcy52YWxpZGF0b3I9bmV3IEViKHQpfXZhciB0LHIsbixvLGk7cmV0dXJuIHYoZSxbe2tleToic2VuZFRyeCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG89YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz17fSksYmIuaXNGdW5jdGlvbihuKT8oaT1uLG49dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobikmJihvPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhaSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuc2VuZFRyeCx0LHIsbixvKTtpZihyPXBhcnNlSW50KHIpLCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6InJlY2lwaWVudCIsdHlwZToiYWRkcmVzcyIsdmFsdWU6dH0se25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6bn0se25hbWVzOlsicmVjaXBpZW50Iiwib3JpZ2luIl0sdHlwZToibm90RXF1YWwiLG1zZzoiQ2Fubm90IHRyYW5zZmVyIFRSWCB0byB0aGUgc2FtZSBhY2NvdW50In0se25hbWU6ImFtb3VudCIsdHlwZToiaW50ZWdlciIsZ3Q6MCx2YWx1ZTpyfV0saSkpe3ZhciBhPXt0b19hZGRyZXNzOnhiKHQpLG93bmVyX2FkZHJlc3M6eGIobiksYW1vdW50OnJ9LHM9RGIobyk7TmIodGhpcy50cm9uV2ViLCJUcmFuc2ZlckNvbnRyYWN0IixhLG51bGw9PT0oZT1vKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQscykudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGkobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KSl9fX0se2tleToic2VuZFRva2VuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGk9YXJndW1lbnRzLmxlbmd0aD40P2FyZ3VtZW50c1s0XTp2b2lkIDAsYT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSYmYXJndW1lbnRzWzVdO2lmKGJiLmlzRnVuY3Rpb24oaSkmJihhPWksaT17fSksYmIuaXNGdW5jdGlvbihvKT8oYT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobykmJihpPW8sbz10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhYSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuc2VuZFRva2VuLHQscixuLG8saSk7aWYocj1wYXJzZUludChyKSwhdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJyZWNpcGllbnQiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOnR9LHtuYW1lOiJvcmlnaW4iLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm99LHtuYW1lczpbInJlY2lwaWVudCIsIm9yaWdpbiJdLHR5cGU6Im5vdEVxdWFsIixtc2c6IkNhbm5vdCB0cmFuc2ZlciB0b2tlbnMgdG8gdGhlIHNhbWUgYWNjb3VudCJ9LHtuYW1lOiJhbW91bnQiLHR5cGU6ImludGVnZXIiLGd0OjAsdmFsdWU6cn0se25hbWU6InRva2VuIElEIix0eXBlOiJ0b2tlbklkIix2YWx1ZTpufV0sYSkpe3ZhciBzPXt0b19hZGRyZXNzOnhiKHQpLG93bmVyX2FkZHJlc3M6eGIobyksYXNzZXRfbmFtZTpTYihuKSxhbW91bnQ6cGFyc2VJbnQocil9LHU9RGIoaSk7TmIodGhpcy50cm9uV2ViLCJUcmFuc2ZlckFzc2V0Q29udHJhY3QiLHMsbnVsbD09PShlPWkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCx1KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gYShudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gYShlKX0pKX19fSx7a2V5OiJwdXJjaGFzZVRva2VuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGk9YXJndW1lbnRzLmxlbmd0aD40P2FyZ3VtZW50c1s0XTp2b2lkIDAsYT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSYmYXJndW1lbnRzWzVdO2lmKGJiLmlzRnVuY3Rpb24oaSkmJihhPWksaT17fSksYmIuaXNGdW5jdGlvbihvKT8oYT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobykmJihpPW8sbz10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhYSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMucHVyY2hhc2VUb2tlbix0LHIsbixvLGkpO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6ImJ1eWVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpvfSx7bmFtZToiaXNzdWVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTp0fSx7bmFtZXM6WyJidXllciIsImlzc3VlciJdLHR5cGU6Im5vdEVxdWFsIixtc2c6IkNhbm5vdCBwdXJjaGFzZSB0b2tlbnMgZnJvbSBzYW1lIGFjY291bnQifSx7bmFtZToiYW1vdW50Iix0eXBlOiJpbnRlZ2VyIixndDowLHZhbHVlOm59LHtuYW1lOiJ0b2tlbiBJRCIsdHlwZToidG9rZW5JZCIsdmFsdWU6cn1dLGEpKXt2YXIgcz17dG9fYWRkcmVzczp4Yih0KSxvd25lcl9hZGRyZXNzOnhiKG8pLGFzc2V0X25hbWU6U2IociksYW1vdW50OnBhcnNlSW50KG4pfSx1PURiKGkpO05iKHRoaXMudHJvbldlYiwiUGFydGljaXBhdGVBc3NldElzc3VlQ29udHJhY3QiLHMsbnVsbD09PShlPWkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCx1KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gYShudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gYShlKX0pKX19fSx7a2V5OiJmcmVlemVCYWxhbmNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAscj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MyxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiQkFORFdJRFRIIixvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnZvaWQgMCxhPWFyZ3VtZW50cy5sZW5ndGg+NT9hcmd1bWVudHNbNV06dm9pZCAwLHM9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0mJmFyZ3VtZW50c1s2XTtpZihiYi5pc0Z1bmN0aW9uKGEpJiYocz1hLGE9e30pLGJiLmlzRnVuY3Rpb24oaSk/KHM9aSxpPXZvaWQgMCk6YmIuaXNPYmplY3QoaSkmJihhPWksaT12b2lkIDApLGJiLmlzRnVuY3Rpb24obyk/KHM9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KG8pJiYoYT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksYmIuaXNGdW5jdGlvbihyKSYmKHM9cixyPTMpLGJiLmlzRnVuY3Rpb24obikmJihzPW4sbj0iQkFORFdJRFRIIiksIXMpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmZyZWV6ZUJhbGFuY2UsdCxyLG4sbyxpLGEpO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6b30se25hbWU6InJlY2VpdmVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTppLG9wdGlvbmFsOiEwfSx7bmFtZToiYW1vdW50Iix0eXBlOiJpbnRlZ2VyIixndDowLHZhbHVlOnR9LHtuYW1lOiJkdXJhdGlvbiIsdHlwZToiaW50ZWdlciIsZ3RlOjMsdmFsdWU6cn0se25hbWU6InJlc291cmNlIix0eXBlOiJyZXNvdXJjZSIsdmFsdWU6bixtc2c6J0ludmFsaWQgcmVzb3VyY2UgcHJvdmlkZWQ6IEV4cGVjdGVkICJCQU5EV0lEVEgiIG9yICJFTkVSR1kiJ31dLHMpKXt2YXIgdT17b3duZXJfYWRkcmVzczp4YihvKSxmcm96ZW5fYmFsYW5jZTpwYXJzZUludCh0KSxmcm96ZW5fZHVyYXRpb246cGFyc2VJbnQocil9OyJCQU5EV0lEVEgiIT09biYmKHUucmVzb3VyY2U9biksYmIuaXNOb3ROdWxsT3JVbmRlZmluZWQoaSkmJnhiKGkpIT09eGIobykmJih1LnJlY2VpdmVyX2FkZHJlc3M9eGIoaSkpO3ZhciBjPURiKGEpO05iKHRoaXMudHJvbldlYiwiRnJlZXplQmFsYW5jZUNvbnRyYWN0Iix1LG51bGw9PT0oZT1hKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsYykudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIHMobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHMoZSl9KSl9fX0se2tleToidW5mcmVlemVCYWxhbmNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJCQU5EV0lEVEgiLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dm9pZCAwLG89YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz17fSksYmIuaXNGdW5jdGlvbihuKT8oaT1uLG49dm9pZCAwKTpiYi5pc09iamVjdChuKSYmKG89bixuPXZvaWQgMCksYmIuaXNGdW5jdGlvbihyKT8oaT1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QocikmJihvPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxiYi5pc0Z1bmN0aW9uKHQpJiYoaT10LHQ9IkJBTkRXSURUSCIpLCFpKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy51bmZyZWV6ZUJhbGFuY2UsdCxyLG4sbyk7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToib3JpZ2luIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpyfSx7bmFtZToicmVjZWl2ZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm4sb3B0aW9uYWw6ITB9LHtuYW1lOiJyZXNvdXJjZSIsdHlwZToicmVzb3VyY2UiLHZhbHVlOnQsbXNnOidJbnZhbGlkIHJlc291cmNlIHByb3ZpZGVkOiBFeHBlY3RlZCAiQkFORFdJRFRIIiBvciAiRU5FUkdZIid9XSxpKSl7dmFyIGE9e293bmVyX2FkZHJlc3M6eGIocil9OyJCQU5EV0lEVEgiIT09dCYmKGEucmVzb3VyY2U9dCksYmIuaXNOb3ROdWxsT3JVbmRlZmluZWQobikmJnhiKG4pIT09eGIocikmJihhLnJlY2VpdmVyX2FkZHJlc3M9eGIobikpO3ZhciBzPURiKG8pO05iKHRoaXMudHJvbldlYiwiVW5mcmVlemVCYWxhbmNlQ29udHJhY3QiLGEsbnVsbD09PShlPW8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCxzKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gaShudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gaShlKX0pKX19fSx7a2V5OiJmcmVlemVCYWxhbmNlVjIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiQkFORFdJRFRIIixuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG89YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz17fSksYmIuaXNGdW5jdGlvbihuKT8oaT1uLG49dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobikmJihvPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxiYi5pc0Z1bmN0aW9uKHIpPyhpPXIscj0iQkFORFdJRFRIIik6YmIuaXNPYmplY3QocikmJihvPXIscj0iQkFORFdJRFRIIiksIWkpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmZyZWV6ZUJhbGFuY2VWMix0LHIsbixvKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJvcmlnaW4iLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm59LHtuYW1lOiJhbW91bnQiLHR5cGU6ImludGVnZXIiLGd0OjAsdmFsdWU6dH0se25hbWU6InJlc291cmNlIix0eXBlOiJyZXNvdXJjZSIsdmFsdWU6cixtc2c6J0ludmFsaWQgcmVzb3VyY2UgcHJvdmlkZWQ6IEV4cGVjdGVkICJCQU5EV0lEVEgiIG9yICJFTkVSR1kiJ31dLGkpKXt2YXIgYT17b3duZXJfYWRkcmVzczp4YihuKSxmcm96ZW5fYmFsYW5jZTpwYXJzZUludCh0KX07IkJBTkRXSURUSCIhPT1yJiYoYS5yZXNvdXJjZT1yKTt2YXIgcz1EYihvKTtOYih0aGlzLnRyb25XZWIsIkZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0IixhLG51bGw9PT0oZT1vKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQscykudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGkobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KSl9fX0se2tleToidW5mcmVlemVCYWxhbmNlVjIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiQkFORFdJRFRIIixuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG89YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz17fSksYmIuaXNGdW5jdGlvbihuKT8oaT1uLG49dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobikmJihvPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxiYi5pc0Z1bmN0aW9uKHIpPyhpPXIscj0iQkFORFdJRFRIIik6YmIuaXNPYmplY3QocikmJihvPXIscj0iQkFORFdJRFRIIiksIWkpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnVuZnJlZXplQmFsYW5jZVYyLHQscixuLG8pO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6bn0se25hbWU6ImFtb3VudCIsdHlwZToiaW50ZWdlciIsZ3Q6MCx2YWx1ZTp0fSx7bmFtZToicmVzb3VyY2UiLHR5cGU6InJlc291cmNlIix2YWx1ZTpyLG1zZzonSW52YWxpZCByZXNvdXJjZSBwcm92aWRlZDogRXhwZWN0ZWQgIkJBTkRXSURUSCIgb3IgIkVORVJHWSInfV0saSkpe3ZhciBhPXtvd25lcl9hZGRyZXNzOnhiKG4pLHVuZnJlZXplX2JhbGFuY2U6cGFyc2VJbnQodCl9OyJCQU5EV0lEVEgiIT09ciYmKGEucmVzb3VyY2U9cik7dmFyIHM9RGIobyk7TmIodGhpcy50cm9uV2ViLCJVbmZyZWV6ZUJhbGFuY2VWMkNvbnRyYWN0IixhLG51bGw9PT0oZT1vKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQscykudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGkobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KSl9fX0se2tleToiY2FuY2VsVW5mcmVlemVCYWxhbmNlVjIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxyPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtpZihiYi5pc0Z1bmN0aW9uKHIpJiYobj1yLHI9e30pLGJiLmlzRnVuY3Rpb24odCk/KG49dCxyPXt9LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QodCkmJihyPXQsdD10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhbilyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuY2FuY2VsVW5mcmVlemVCYWxhbmNlVjIsdCxyKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJvcmlnaW4iLHR5cGU6ImFkZHJlc3MiLHZhbHVlOnR9XSxuKSl7dmFyIG89e293bmVyX2FkZHJlc3M6eGIodCl9LGk9RGIocik7TmIodGhpcy50cm9uV2ViLCJDYW5jZWxBbGxVbmZyZWV6ZVYyQ29udHJhY3QiLG8sbnVsbD09PShlPXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCxpKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gbihudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gbihlKX0pKX19fSx7a2V5OiJkZWxlZ2F0ZVJlc291cmNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAscj1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiQkFORFdJRFRIIixvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0mJmFyZ3VtZW50c1s0XSxhPWFyZ3VtZW50cy5sZW5ndGg+NT9hcmd1bWVudHNbNV06dm9pZCAwLHM9YXJndW1lbnRzLmxlbmd0aD42P2FyZ3VtZW50c1s2XTp2b2lkIDAsdT1hcmd1bWVudHMubGVuZ3RoPjcmJnZvaWQgMCE9PWFyZ3VtZW50c1s3XSYmYXJndW1lbnRzWzddO2lmKGJiLmlzRnVuY3Rpb24ocykmJih1PXMscz17fSksYmIuaXNGdW5jdGlvbihhKT8odT1hLGE9dm9pZCAwKTpiYi5pc09iamVjdChhKSYmKHM9YSxhPXZvaWQgMCksYmIuaXNGdW5jdGlvbihpKT8odT1pLGk9ITEpOmJiLmlzT2JqZWN0KGkpJiYocz1pLGk9ITEpLGJiLmlzRnVuY3Rpb24obyk/KHU9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KG8pJiYocz1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksYmIuaXNGdW5jdGlvbihuKT8odT1uLG49IkJBTkRXSURUSCIpOmJiLmlzT2JqZWN0KG4pJiYocz1uLG49IkJBTkRXSURUSCIpLCF1KXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5kZWxlZ2F0ZVJlc291cmNlLHQscixuLG8saSxhLHMpO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6ImFtb3VudCIsdHlwZToiaW50ZWdlciIsZ3Q6MCx2YWx1ZTp0fSx7bmFtZToicmVzb3VyY2UiLHR5cGU6InJlc291cmNlIix2YWx1ZTpuLG1zZzonSW52YWxpZCByZXNvdXJjZSBwcm92aWRlZDogRXhwZWN0ZWQgIkJBTkRXSURUSCIgb3IgIkVORVJHWSInfSx7bmFtZToicmVjZWl2ZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOnJ9LHtuYW1lOiJvcmlnaW4iLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm99LHtuYW1lOiJsb2NrIix0eXBlOiJib29sZWFuIix2YWx1ZTppfSx7bmFtZToibG9jayBwZXJpb2QiLHR5cGU6ImludGVnZXIiLGd0ZTowLHZhbHVlOmEsb3B0aW9uYWw6ITB9XSx1KSl7aWYoeGIocik9PT14YihvKSlyZXR1cm4gdSgiUmVjZWl2ZXIgYWRkcmVzcyBtdXN0IG5vdCBiZSB0aGUgc2FtZSBhcyBvd25lciBhZGRyZXNzIik7dmFyIGM9e293bmVyX2FkZHJlc3M6eGIobykscmVjZWl2ZXJfYWRkcmVzczp4YihyKSxiYWxhbmNlOnBhcnNlSW50KHQpfTsiQkFORFdJRFRIIiE9PW4mJihjLnJlc291cmNlPW4pLGkmJihjLmxvY2s9aSxiYi5pc05vdE51bGxPclVuZGVmaW5lZChhKSYmKGMubG9ja19wZXJpb2Q9YSkpO3ZhciBsPURiKHMpO05iKHRoaXMudHJvbldlYiwiRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0IixjLG51bGw9PT0oZT1zKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsbCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIHUobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSl9KSl9fX0se2tleToidW5kZWxlZ2F0ZVJlc291cmNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjAscj1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiQkFORFdJRFRIIixvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGk9YXJndW1lbnRzLmxlbmd0aD40P2FyZ3VtZW50c1s0XTp2b2lkIDAsYT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSYmYXJndW1lbnRzWzVdO2lmKGJiLmlzRnVuY3Rpb24oaSkmJihhPWksaT17fSksYmIuaXNGdW5jdGlvbihvKT8oYT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobykmJihpPW8sbz10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxiYi5pc0Z1bmN0aW9uKG4pPyhhPW4sbj0iQkFORFdJRFRIIik6YmIuaXNPYmplY3QobikmJihpPW4sbj0iQkFORFdJRFRIIiksIWEpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnVuZGVsZWdhdGVSZXNvdXJjZSx0LHIsbixvLGkpO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6b30se25hbWU6InJlY2VpdmVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpyfSx7bmFtZToiYW1vdW50Iix0eXBlOiJpbnRlZ2VyIixndDowLHZhbHVlOnR9LHtuYW1lOiJyZXNvdXJjZSIsdHlwZToicmVzb3VyY2UiLHZhbHVlOm4sbXNnOidJbnZhbGlkIHJlc291cmNlIHByb3ZpZGVkOiBFeHBlY3RlZCAiQkFORFdJRFRIIiBvciAiRU5FUkdZIid9XSxhKSl7aWYoeGIocik9PT14YihvKSlyZXR1cm4gYSgiUmVjZWl2ZXIgYWRkcmVzcyBtdXN0IG5vdCBiZSB0aGUgc2FtZSBhcyBvd25lciBhZGRyZXNzIik7dmFyIHM9e293bmVyX2FkZHJlc3M6eGIobykscmVjZWl2ZXJfYWRkcmVzczp4YihyKSxiYWxhbmNlOnBhcnNlSW50KHQpfTsiQkFORFdJRFRIIiE9PW4mJihzLnJlc291cmNlPW4pO3ZhciB1PURiKGkpO05iKHRoaXMudHJvbldlYiwiVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QiLHMsbnVsbD09PShlPWkpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCx1KS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gYShudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gYShlKX0pKX19fSx7a2V5OiJ3aXRoZHJhd0V4cGlyZVVuZnJlZXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgscj1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07aWYoYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPXt9KSxiYi5pc0Z1bmN0aW9uKHQpPyhuPXQsdD10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdCh0KSYmKHI9dCx0PXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFuKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy53aXRoZHJhd0V4cGlyZVVuZnJlZXplLHQscik7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToib3JpZ2luIix0eXBlOiJhZGRyZXNzIix2YWx1ZTp0fV0sbikpe3ZhciBvPXtvd25lcl9hZGRyZXNzOnhiKHQpfSxpPURiKHIpO05iKHRoaXMudHJvbldlYiwiV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0IixvLG51bGw9PT0oZT1yKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsaSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG4obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl9KSl9fX0se2tleToid2l0aGRyYXdCbG9ja1Jld2FyZHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxyPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtpZihiYi5pc0Z1bmN0aW9uKHIpJiYobj1yLHI9e30pLGJiLmlzRnVuY3Rpb24odCk/KG49dCx0PXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KHQpJiYocj10LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIW4pcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLndpdGhkcmF3QmxvY2tSZXdhcmRzLHQscik7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToib3JpZ2luIix0eXBlOiJhZGRyZXNzIix2YWx1ZTp0fV0sbikpe3ZhciBvPXtvd25lcl9hZGRyZXNzOnhiKHQpfSxpPURiKHIpO05iKHRoaXMudHJvbldlYiwiV2l0aGRyYXdCYWxhbmNlQ29udHJhY3QiLG8sbnVsbD09PShlPXIpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCxpKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gbihudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gbihlKX0pKX19fSx7a2V5OiJhcHBseUZvclNSIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgscj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obikmJihvPW4sbj17fSksYmIuaXNPYmplY3QocikmJmJiLmlzVmFsaWRVUkwodCkmJihuPXIscj10LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIW8pcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmFwcGx5Rm9yU1IsdCxyLG4pO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6dH0se25hbWU6InVybCIsdHlwZToidXJsIix2YWx1ZTpyLG1zZzoiSW52YWxpZCB1cmwgcHJvdmlkZWQifSx7bmFtZToidXJsIix0eXBlOiJzdHJpbmciLHZhbHVlOnIsbHRlOjI1Nixtc2c6IkludmFsaWQgdXJsIHByb3ZpZGVkIn1dLG8pKXt2YXIgaT17b3duZXJfYWRkcmVzczp4Yih0KSx1cmw6U2Iocil9LGE9RGIobik7TmIodGhpcy50cm9uV2ViLCJXaXRuZXNzQ3JlYXRlQ29udHJhY3QiLGksbnVsbD09PShlPW4pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCxhKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gbyhudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gbyhlKX0pKX19fSx7a2V5OiJ2b3RlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxyPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG89YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz17fSksYmIuaXNGdW5jdGlvbihuKT8oaT1uLG49dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobikmJihvPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhaSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMudm90ZSxyLG4sbyk7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToidm90ZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm59LHtuYW1lOiJ2b3RlcyIsdHlwZToibm90RW1wdHlPYmplY3QiLHZhbHVlOnJ9XSxpKSl7dmFyIGE9ITE7aWYocj1PYmplY3QuZW50cmllcyhyKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciByPW9pKGUsMiksbj1yWzBdLG89clsxXTtpZighYSlyZXR1cm4gdC52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJTUiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6bn0se25hbWU6InZvdGUgY291bnQiLHR5cGU6ImludGVnZXIiLGd0OjAsdmFsdWU6byxtc2c6IkludmFsaWQgdm90ZSBjb3VudCBwcm92aWRlZCBmb3IgU1I6ICIrbn1dKT9hPSEwOnt2b3RlX2FkZHJlc3M6eGIobiksdm90ZV9jb3VudDpwYXJzZUludChvKX19KSksIWEpe3ZhciBzPXtvd25lcl9hZGRyZXNzOnhiKG4pLHZvdGVzOnJ9LHU9RGIobyk7TmIodGhpcy50cm9uV2ViLCJWb3RlV2l0bmVzc0NvbnRyYWN0IixzLG51bGw9PT0oZT1vKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsdSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGkobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KSl9fX19LHtrZXk6ImNyZWF0ZVNtYXJ0Q29udHJhY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtpZihiYi5pc0Z1bmN0aW9uKHIpJiYobj1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIW4pcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmNyZWF0ZVNtYXJ0Q29udHJhY3QsdCxyKTt2YXIgbz10LmZlZUxpbWl0fHx0aGlzLnRyb25XZWIuZmVlTGltaXQsaT10LnVzZXJGZWVQZXJjZW50YWdlOyJudW1iZXIiPT10eXBlb2YgaXx8aXx8KGk9MTAwKTt2YXIgYT10Lm9yaWdpbkVuZXJneUxpbWl0fHwxZTcscz10LmNhbGxWYWx1ZXx8MCx1PXQudG9rZW5WYWx1ZSxjPXQudG9rZW5JZHx8dC50b2tlbl9pZCxsPXQuYWJpLGQ9dm9pZCAwIT09bCYmbCxmPXQuYnl0ZWNvZGUsZz12b2lkIDAhPT1mJiZmLHk9dC5wYXJhbWV0ZXJzLGI9dm9pZCAwPT09eT9bXTp5LHY9dC5uYW1lLG09dm9pZCAwPT09dj8iIjp2O2lmKGQmJmJiLmlzU3RyaW5nKGQpKXRyeXtkPUpTT04ucGFyc2UoZCl9Y2F0Y2goZSl7cmV0dXJuIG4oIkludmFsaWQgb3B0aW9ucy5hYmkgcHJvdmlkZWQiKX1pZihkLmVudHJ5cyYmKGQ9ZC5lbnRyeXMpLCFiYi5pc0FycmF5KGQpKXJldHVybiBuKCJJbnZhbGlkIG9wdGlvbnMuYWJpIHByb3ZpZGVkIik7dmFyIFQ9ZC5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4iY29uc3RydWN0b3IiPT09ZS50eXBlJiYicGF5YWJsZSI9PT1lLnN0YXRlTXV0YWJpbGl0eS50b0xvd2VyQ2FzZSgpfSkpO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6ImJ5dGVjb2RlIix0eXBlOiJoZXgiLHZhbHVlOmd9LHtuYW1lOiJmZWVMaW1pdCIsdHlwZToiaW50ZWdlciIsdmFsdWU6byxndDowfSx7bmFtZToiY2FsbFZhbHVlIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTpzLGd0ZTowfSx7bmFtZToidXNlckZlZVBlcmNlbnRhZ2UiLHR5cGU6ImludGVnZXIiLHZhbHVlOmksZ3RlOjAsbHRlOjEwMH0se25hbWU6Im9yaWdpbkVuZXJneUxpbWl0Iix0eXBlOiJpbnRlZ2VyIix2YWx1ZTphLGd0ZTowLGx0ZToxZTd9LHtuYW1lOiJwYXJhbWV0ZXJzIix0eXBlOiJhcnJheSIsdmFsdWU6Yn0se25hbWU6Imlzc3VlciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6cn0se25hbWU6InRva2VuVmFsdWUiLHR5cGU6ImludGVnZXIiLHZhbHVlOnUsZ3RlOjAsb3B0aW9uYWw6ITB9LHtuYW1lOiJ0b2tlbklkIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTpjLGd0ZTowLG9wdGlvbmFsOiEwfV0sbikpe2lmKCFUJiYocz4wfHx1PjApKXJldHVybiBuKCJXaGVuIGNvbnRyYWN0IGlzIG5vdCBwYXlhYmxlLCBvcHRpb25zLmNhbGxWYWx1ZSBhbmQgb3B0aW9ucy50b2tlblZhbHVlIG11c3QgYmUgMCIpO2lmKHQucmF3UGFyYW1ldGVyJiZiYi5pc1N0cmluZyh0LnJhd1BhcmFtZXRlcikpYj10LnJhd1BhcmFtZXRlci5yZXBsYWNlKC9eKDB4KS8sIiIpO2Vsc2UgaWYodC5mdW5jQUJJVjIpYj1SZyh0LmZ1bmNBQklWMix0LnBhcmFtZXRlcnNWMikucmVwbGFjZSgvXigweCkvLCIiKTtlbHNle3ZhciB3PWQuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuImNvbnN0cnVjdG9yIj09PWUudHlwZX0pKTtpZih2b2lkIDAhPT13JiZ3KXt2YXIgQT1uZXcgTWcsUD1bXSxXPVtdO2lmKHc9dy5pbnB1dHMsYi5sZW5ndGghPXcubGVuZ3RoKXJldHVybiBuKCJjb25zdHJ1Y3RvciBuZWVkcyAiLmNvbmNhdCh3Lmxlbmd0aCwiIGJ1dCAiKS5jb25jYXQoYi5sZW5ndGgsIiBwcm92aWRlZCIpKTtmb3IodmFyIEI9ZnVuY3Rpb24oKXt2YXIgZT13W0VdLnR5cGUsdD1iW0VdO2lmKCFlfHwhYmIuaXNTdHJpbmcoZSl8fCFlLmxlbmd0aClyZXR1cm57djpuKCJJbnZhbGlkIHBhcmFtZXRlciB0eXBlIHByb3ZpZGVkOiAiK2UpfTtlLnN0YXJ0c1dpdGgoImFkZHJlc3MiKT90PWZ1bmN0aW9uIGUodCl7cmV0dXJuIGJiLmlzQXJyYXkodCk/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkpOnhiKHQpLnJlcGxhY2UoSXQsIjB4Iil9KHQpOi90cmNUb2tlbi8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC90cmNUb2tlbi8sInVpbnQyNTYiKSksUC5wdXNoKGUpLFcucHVzaCh0KX0sRT0wO0U8Yi5sZW5ndGg7RSsrKXt2YXIgTT1CKCk7aWYoIm9iamVjdCI9PT1oKE0pKXJldHVybiBNLnZ9dHJ5e2I9QS5lbmNvZGUoUCxXKS5yZXBsYWNlKC9eKDB4KS8sIiIpfWNhdGNoKGUpe3JldHVybiBuKGUpfX1lbHNlIGI9IiJ9dmFyIGs9e293bmVyX2FkZHJlc3M6eGIociksZmVlX2xpbWl0OnBhcnNlSW50KG8pLGNhbGxfdmFsdWU6cGFyc2VJbnQocyksY29uc3VtZV91c2VyX3Jlc291cmNlX3BlcmNlbnQ6aSxvcmlnaW5fZW5lcmd5X2xpbWl0OmEsYWJpOkpTT04uc3RyaW5naWZ5KGQpLGJ5dGVjb2RlOmcscGFyYW1ldGVyOmIsbmFtZTptfTtiYi5pc05vdE51bGxPclVuZGVmaW5lZCh1KSYmKGsuY2FsbF90b2tlbl92YWx1ZT1wYXJzZUludCh1KSksYmIuaXNOb3ROdWxsT3JVbmRlZmluZWQoYykmJihrLnRva2VuX2lkPXBhcnNlSW50KGMpKSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7dmFyIHQscj17fTtyLm93bmVyX2FkZHJlc3M9ay5vd25lcl9hZGRyZXNzLGJiLmlzTm90TnVsbE9yVW5kZWZpbmVkKGsuY2FsbF90b2tlbl92YWx1ZSkmJihyLmNhbGxfdG9rZW5fdmFsdWU9ay5jYWxsX3Rva2VuX3ZhbHVlKSxiYi5pc05vdE51bGxPclVuZGVmaW5lZChrLnRva2VuX2lkKSYmKHIudG9rZW5faWQ9ay50b2tlbl9pZCk7dmFyIG49ci5uZXdfY29udHJhY3Q9e307ay5hYmk/bi5hYmk9e2VudHJ5czpKU09OLnBhcnNlKGsuYWJpKX06bi5hYmk9e30say5jYWxsX3ZhbHVlJiYobi5jYWxsX3ZhbHVlPWsuY2FsbF92YWx1ZSksbi5jb25zdW1lX3VzZXJfcmVzb3VyY2VfcGVyY2VudD1rLmNvbnN1bWVfdXNlcl9yZXNvdXJjZV9wZXJjZW50LG4ub3JpZ2luX2VuZXJneV9saW1pdD1rLm9yaWdpbl9lbmVyZ3lfbGltaXQsbi5vcmlnaW5fYWRkcmVzcz1udWxsIT09KHQ9ay5vcmlnaW5fYWRkcmVzcykmJnZvaWQgMCE9PXQ/dDprLm93bmVyX2FkZHJlc3Msay5ieXRlY29kZStrLnBhcmFtZXRlciYmKG4uYnl0ZWNvZGU9KGsuYnl0ZWNvZGUray5wYXJhbWV0ZXIpLnJlcGxhY2UoL14weC8sIiIpKSxiYi5pc05vdE51bGxPclVuZGVmaW5lZChrLm5hbWUpJiYobi5uYW1lPWsubmFtZSksZShyKX0pKS50aGVuKGZ1bmN0aW9uKCl7dmFyIHI9cChDKCkubWFyaygoZnVuY3Rpb24gcihuKXt2YXIgbyxpO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24ocil7Zm9yKDs7KXN3aXRjaChyLnByZXY9ci5uZXh0KXtjYXNlIDA6cmV0dXJuIG89RGIodCksci5uZXh0PTMsTmIoZS50cm9uV2ViLCJDcmVhdGVTbWFydENvbnRyYWN0IixuLG51bGw9PXQ/dm9pZCAwOnQucGVybWlzc2lvbklkLE9iKE9iKHt9LG8pLHt9LHtmZWVfbGltaXQ6ay5mZWVfbGltaXR9KSk7Y2FzZSAzOnJldHVybihpPXIuc2VudCkuY29udHJhY3RfYWRkcmVzcz0oYT1rLm93bmVyX2FkZHJlc3Mscz1pLnR4SUQsIjQxIit3byhCdWZmZXIuZnJvbShzK2EsImhleCIpKS50b1N0cmluZygpLnN1YnN0cmluZygyKS5zbGljZSgyNCkpLHIuYWJydXB0KCJyZXR1cm4iLGkpO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIHIuc3RvcCgpfXZhciBhLHN9KSxyKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiByLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBuKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpfSkpfX19LHtrZXk6InRyaWdnZXJTbWFydENvbnRyYWN0Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkodCksbj0wO248dDtuKyspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIm9iamVjdCIhPT1oKHJbMl0pJiYoclsyXT17ZmVlTGltaXQ6clsyXSxjYWxsVmFsdWU6clszXX0sci5zcGxpY2UoMywxKSksbnVsbCE9PShlPXJbMl0pJiZ2b2lkIDAhPT1lJiZlLnR4TG9jYWw/dGhpcy5fdHJpZ2dlclNtYXJ0Q29udHJhY3RMb2NhbC5hcHBseSh0aGlzLHIpOnRoaXMuX3RyaWdnZXJTbWFydENvbnRyYWN0LmFwcGx5KHRoaXMscil9fSx7a2V5OiJ0cmlnZ2VyQ29uc3RhbnRDb250cmFjdCIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxyPTA7cjxlO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gdFsyXS5faXNDb25zdGFudD0hMCx0aGlzLl90cmlnZ2VyU21hcnRDb250cmFjdC5hcHBseSh0aGlzLHQpfX0se2tleToidHJpZ2dlckNvbmZpcm1lZENvbnN0YW50Q29udHJhY3QiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIHRbMl0uX2lzQ29uc3RhbnQ9ITAsdFsyXS5jb25maXJtZWQ9ITAsdGhpcy5fdHJpZ2dlclNtYXJ0Q29udHJhY3QuYXBwbHkodGhpcyx0KX19LHtrZXk6ImVzdGltYXRlRW5lcmd5Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHQ9bmV3IEFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiB0WzJdLmVzdGltYXRlRW5lcmd5PSEwLHRoaXMuX3RyaWdnZXJTbWFydENvbnRyYWN0LmFwcGx5KHRoaXMsdCl9fSx7a2V5OiJkZXBsb3lDb25zdGFudENvbnRyYWN0Iix2YWx1ZTooaT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHMsdSxjLGw9dGhpcyxkPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiByPSh0PWQubGVuZ3RoPjAmJnZvaWQgMCE9PWRbMF0/ZFswXTp7fSkuaW5wdXQsbj10Lm93bmVyQWRkcmVzcyxvPXQudG9rZW5JZCxpPXQudG9rZW5WYWx1ZSxhPXQuY2FsbFZhbHVlLHM9dm9pZCAwPT09YT8wOmEsdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJpbnB1dCIsdHlwZToibm90LWVtcHR5LXN0cmluZyIsdmFsdWU6cn0se25hbWU6ImNhbGxWYWx1ZSIsdHlwZToiaW50ZWdlciIsdmFsdWU6cyxndGU6MH0se25hbWU6Im93bmVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpufSx7bmFtZToidG9rZW5WYWx1ZSIsdHlwZToiaW50ZWdlciIsdmFsdWU6aSxndGU6MCxvcHRpb25hbDohMH0se25hbWU6InRva2VuSWQiLHR5cGU6ImludGVnZXIiLHZhbHVlOm8sZ3RlOjAsb3B0aW9uYWw6ITB9XSwoZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSkpLHU9e2RhdGE6cixvd25lcl9hZGRyZXNzOnhiKG4pLGNhbGxfdmFsdWU6c30sbyYmKHUudG9rZW5faWQ9byksaSYmKHUuY2FsbF90b2tlbl92YWx1ZT1pKSxjPSJ3YWxsZXQiLmNvbmNhdCh0LmNvbmZpcm1lZD8ic29saWRpdHkiOiIiLCIvIikuY29uY2F0KHQuZXN0aW1hdGVFbmVyZ3k/ImVzdGltYXRlZW5lcmd5IjoidHJpZ2dlcmNvbnN0YW50Y29udHJhY3QiKSxlLmFicnVwdCgicmV0dXJuIix0aGlzLnRyb25XZWJbdC5jb25maXJtZWQ/InNvbGlkaXR5Tm9kZSI6ImZ1bGxOb2RlIl0ucmVxdWVzdChjLHUsInBvc3QiKS50aGVuKChmdW5jdGlvbihlKXtpZihlLkVycm9yKXRocm93IG5ldyBFcnJvcihlLkVycm9yKTtpZihlLnJlc3VsdCYmZS5yZXN1bHQubWVzc2FnZSl0aHJvdyBuZXcgRXJyb3IobC50cm9uV2ViLnRvVXRmOChlLnJlc3VsdC5tZXNzYWdlKSk7cmV0dXJuIGV9KSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZW5lcmd5X3VzZWQ/e3Jlc3VsdDplLnJlc3VsdCxlbmVyZ3lfcmVxdWlyZWQ6ZS5lbmVyZ3lfdXNlZH06ZX0pKSk7Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiX2dldFRyaWdnZXJTbWFydENvbnRyYWN0QXJncyIsdmFsdWU6ZnVuY3Rpb24oZSx0LHIsbixvLGksYSxzLHUpe3ZhciBjPXtjb250cmFjdF9hZGRyZXNzOnhiKGUpLG93bmVyX2FkZHJlc3M6eGIobyl9O2lmKHQmJmJiLmlzU3RyaW5nKHQpKXtpZih0PXQucmVwbGFjZSgiL3MqL2ciLCIiKSxuLmxlbmd0aCl7Zm9yKHZhciBsPW5ldyBNZyxkPVtdLGY9W10scD1mdW5jdGlvbigpe3ZhciBlPW5baF0sdD1lLnR5cGUscj1lLnZhbHVlO2lmKCF0fHwhYmIuaXNTdHJpbmcodCl8fCF0Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgcGFyYW1ldGVyIHR5cGUgcHJvdmlkZWQ6ICIrdCk7dC5zdGFydHNXaXRoKCJhZGRyZXNzIikmJihyPWZ1bmN0aW9uIGUodCl7cmV0dXJuIGJiLmlzQXJyYXkodCk/dC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkpOnhiKHQpLnJlcGxhY2UoSXQsIjB4Iil9KHIpKSxkLnB1c2godCksZi5wdXNoKHIpfSxoPTA7aDxuLmxlbmd0aDtoKyspcCgpO2Q9ZC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybi90cmNUb2tlbi8udGVzdChlKSYmKGU9ZS5yZXBsYWNlKC90cmNUb2tlbi8sInVpbnQyNTYiKSksZX0pKSxuPWwuZW5jb2RlKGQsZikucmVwbGFjZSgvXigweCkvLCIiKX1lbHNlIG49IiI7ci5mdW5jQUJJVjImJihuPVJnKHIuZnVuY0FCSVYyLHIucGFyYW1ldGVyc1YyKS5yZXBsYWNlKC9eKDB4KS8sIiIpKSxyLnNoaWVsZGVkUGFyYW1ldGVyJiZiYi5pc1N0cmluZyhyLnNoaWVsZGVkUGFyYW1ldGVyKSYmKG49ci5zaGllbGRlZFBhcmFtZXRlci5yZXBsYWNlKC9eKDB4KS8sIiIpKSxyLnJhd1BhcmFtZXRlciYmYmIuaXNTdHJpbmcoci5yYXdQYXJhbWV0ZXIpJiYobj1yLnJhd1BhcmFtZXRlci5yZXBsYWNlKC9eKDB4KS8sIiIpKSxjLmZ1bmN0aW9uX3NlbGVjdG9yPXQsYy5wYXJhbWV0ZXI9bn1lbHNlIHIuaW5wdXQmJihjLmRhdGE9ci5pbnB1dCk7cmV0dXJuIGMuY2FsbF92YWx1ZT1wYXJzZUludChzKSxiYi5pc05vdE51bGxPclVuZGVmaW5lZChpKSYmKGMuY2FsbF90b2tlbl92YWx1ZT1wYXJzZUludChpKSksYmIuaXNOb3ROdWxsT3JVbmRlZmluZWQoYSkmJihjLnRva2VuX2lkPXBhcnNlSW50KGEpKSxyLl9pc0NvbnN0YW50fHxyLmVzdGltYXRlRW5lcmd5fHwoYy5mZWVfbGltaXQ9cGFyc2VJbnQodSkpLHIucGVybWlzc2lvbklkJiYoYy5QZXJtaXNzaW9uX2lkPXIucGVybWlzc2lvbklkKSxjfX0se2tleToiX3RyaWdnZXJTbWFydENvbnRyYWN0TG9jYWwiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOltdLG89YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsaT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSYmYXJndW1lbnRzWzVdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxiYi5pc0Z1bmN0aW9uKG4pJiYoaT1uLG49W10pLCFpKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5fdHJpZ2dlclNtYXJ0Q29udHJhY3RMb2NhbCxlLHQscixuLG8pO3ZhciBhPU9iamVjdC5hc3NpZ24oe2NhbGxWYWx1ZTowLGZlZUxpbWl0OnRoaXMudHJvbldlYi5mZWVMaW1pdH0scikscz1hLnRva2VuVmFsdWUsdT1hLnRva2VuSWQsYz1hLmNhbGxWYWx1ZSxsPWEuZmVlTGltaXQ7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToiZmVlTGltaXQiLHR5cGU6ImludGVnZXIiLHZhbHVlOmwsZ3Q6MH0se25hbWU6ImNhbGxWYWx1ZSIsdHlwZToiaW50ZWdlciIsdmFsdWU6YyxndGU6MH0se25hbWU6InBhcmFtZXRlcnMiLHR5cGU6ImFycmF5Iix2YWx1ZTpufSx7bmFtZToiY29udHJhY3QiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOmV9LHtuYW1lOiJpc3N1ZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm8sb3B0aW9uYWw6ITB9LHtuYW1lOiJ0b2tlblZhbHVlIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTpzLGd0ZTowLG9wdGlvbmFsOiEwfSx7bmFtZToidG9rZW5JZCIsdHlwZToiaW50ZWdlciIsdmFsdWU6dSxndGU6MCxvcHRpb25hbDohMH1dLGkpKXt2YXIgZDt0cnl7ZD10aGlzLl9nZXRUcmlnZ2VyU21hcnRDb250cmFjdEFyZ3MoZSx0LHIsbixvLHMsdSxjLGwpfWNhdGNoKGUpe3JldHVybiBpKGUpfWQuZnVuY3Rpb25fc2VsZWN0b3ImJihkLmRhdGE9d28oQnVmZmVyLmZyb20oZC5mdW5jdGlvbl9zZWxlY3RvciwidXRmLTgiKSkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiwxMCkrZC5wYXJhbWV0ZXIpO3ZhciBmPXtkYXRhOmQuZGF0YSxvd25lcl9hZGRyZXNzOmQub3duZXJfYWRkcmVzcyxjb250cmFjdF9hZGRyZXNzOmQuY29udHJhY3RfYWRkcmVzc307ZC5jYWxsX3ZhbHVlJiYoZi5jYWxsX3ZhbHVlPWQuY2FsbF92YWx1ZSksZC5jYWxsX3Rva2VuX3ZhbHVlJiYoZi5jYWxsX3Rva2VuX3ZhbHVlPWQuY2FsbF90b2tlbl92YWx1ZSksZC50b2tlbl9pZCYmKGYudG9rZW5faWQ9ZC50b2tlbl9pZCk7dmFyIHA9RGIocik7TmIodGhpcy50cm9uV2ViLCJUcmlnZ2VyU21hcnRDb250cmFjdCIsZixyLnBlcm1pc3Npb25JZCxPYihPYih7fSxwKSx7fSx7ZmVlX2xpbWl0OmQuZmVlX2xpbWl0fSkpLnRoZW4oKGZ1bmN0aW9uKGUpe2kobnVsbCx7cmVzdWx0OntyZXN1bHQ6ITB9LHRyYW5zYWN0aW9uOmV9KX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KSl9fX0se2tleToiX3RyaWdnZXJTbWFydENvbnRyYWN0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxuPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpbXSxvPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGk9YXJndW1lbnRzLmxlbmd0aD41JiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0mJmFyZ3VtZW50c1s1XTtpZihiYi5pc0Z1bmN0aW9uKG8pJiYoaT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksYmIuaXNGdW5jdGlvbihuKSYmKGk9bixuPVtdKSwhaSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuX3RyaWdnZXJTbWFydENvbnRyYWN0LGUsdCxyLG4sbyk7dmFyIGE9T2JqZWN0LmFzc2lnbih7Y2FsbFZhbHVlOjAsZmVlTGltaXQ6dGhpcy50cm9uV2ViLmZlZUxpbWl0fSxyKSxzPWEudG9rZW5WYWx1ZSx1PWEudG9rZW5JZCxjPWEuY2FsbFZhbHVlLGw9YS5mZWVMaW1pdDtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJmZWVMaW1pdCIsdHlwZToiaW50ZWdlciIsdmFsdWU6bCxndDowfSx7bmFtZToiY2FsbFZhbHVlIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTpjLGd0ZTowfSx7bmFtZToicGFyYW1ldGVycyIsdHlwZToiYXJyYXkiLHZhbHVlOm59LHtuYW1lOiJjb250cmFjdCIsdHlwZToiYWRkcmVzcyIsdmFsdWU6ZX0se25hbWU6Imlzc3VlciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6byxvcHRpb25hbDohMH0se25hbWU6InRva2VuVmFsdWUiLHR5cGU6ImludGVnZXIiLHZhbHVlOnMsZ3RlOjAsb3B0aW9uYWw6ITB9LHtuYW1lOiJ0b2tlbklkIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTp1LGd0ZTowLG9wdGlvbmFsOiEwfV0saSkpe3ZhciBkO3RyeXtkPXRoaXMuX2dldFRyaWdnZXJTbWFydENvbnRyYWN0QXJncyhlLHQscixuLG8scyx1LGMsbCl9Y2F0Y2goZSl7cmV0dXJuIGkoZSl9dmFyIGY9InRyaWdnZXJzbWFydGNvbnRyYWN0IjtyLl9pc0NvbnN0YW50P2Y9InRyaWdnZXJjb25zdGFudGNvbnRyYWN0IjpyLmVzdGltYXRlRW5lcmd5JiYoZj0iZXN0aW1hdGVlbmVyZ3kiKSxmPSJ3YWxsZXQiLmNvbmNhdChyLmNvbmZpcm1lZD8ic29saWRpdHkiOiIiLCIvIikuY29uY2F0KGYpLHRoaXMudHJvbldlYltyLmNvbmZpcm1lZD8ic29saWRpdHlOb2RlIjoiZnVsbE5vZGUiXS5yZXF1ZXN0KGYsZCwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihlLHQscixuKXtyZXR1cm4gZS5FcnJvcj9uKGUuRXJyb3IpOmUucmVzdWx0JiZlLnJlc3VsdC5tZXNzYWdlP24oQ2IudHJvbldlYi50b1V0ZjgoZS5yZXN1bHQubWVzc2FnZSkpOnIuX2lzQ29uc3RhbnR8fHIuZXN0aW1hdGVFbmVyZ3l8fFZ5KGUudHJhbnNhY3Rpb24sdCxyKT9uKG51bGwsZSk6bigiSW52YWxpZCB0cmFuc2FjdGlvbiIpfShlLGQscixpKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KSl9fX0se2tleToiY2xlYXJBQkkiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107aWYoYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPXt9KSxiYi5pc0Z1bmN0aW9uKHIpPyhvPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdChyKSYmKG49cixyPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFvKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5jbGVhckFCSSxlLHIsbik7aWYoIXRoaXMudHJvbldlYi5pc0FkZHJlc3MoZSkpcmV0dXJuIG8oIkludmFsaWQgY29udHJhY3QgYWRkcmVzcyBwcm92aWRlZCIpO2lmKCF0aGlzLnRyb25XZWIuaXNBZGRyZXNzKHIpKXJldHVybiBvKCJJbnZhbGlkIG93bmVyIGFkZHJlc3MgcHJvdmlkZWQiKTt2YXIgaT17Y29udHJhY3RfYWRkcmVzczp4YihlKSxvd25lcl9hZGRyZXNzOnhiKHIpfTt0aGlzLnRyb25XZWIudHJ4LmNhY2hlLmNvbnRyYWN0c1tlXSYmZGVsZXRlIHRoaXMudHJvbldlYi50cnguY2FjaGUuY29udHJhY3RzW2VdO3ZhciBhPURiKG4pO05iKHRoaXMudHJvbldlYiwiQ2xlYXJBQklDb250cmFjdCIsaSxudWxsPT09KHQ9bil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGVybWlzc2lvbklkLGEpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBvKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBvKGUpfSkpfX0se2tleToidXBkYXRlQnJva2VyYWdlIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obikmJihvPW4sbj17fSksYmIuaXNGdW5jdGlvbihyKT8obz1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QocikmJihuPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhbylyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMudXBkYXRlQnJva2VyYWdlLGUscixuKTtpZighYmIuaXNOb3ROdWxsT3JVbmRlZmluZWQoZSkpcmV0dXJuIG8oIkludmFsaWQgYnJva2VyYWdlIHByb3ZpZGVkIik7aWYoIWJiLmlzSW50ZWdlcihlKXx8ZTwwfHxlPjEwMClyZXR1cm4gbygiQnJva2VyYWdlIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDEwMCIpO2lmKCF0aGlzLnRyb25XZWIuaXNBZGRyZXNzKHIpKXJldHVybiBvKCJJbnZhbGlkIG93bmVyIGFkZHJlc3MgcHJvdmlkZWQiKTt2YXIgaT17YnJva2VyYWdlOnBhcnNlSW50KGUpLG93bmVyX2FkZHJlc3M6eGIocil9LGE9RGIobik7TmIodGhpcy50cm9uV2ViLCJVcGRhdGVCcm9rZXJhZ2VDb250cmFjdCIsaSxudWxsPT09KHQ9bil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGVybWlzc2lvbklkLGEpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBvKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBvKGUpfSkpfX0se2tleToiY3JlYXRlVG9rZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgscj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhcilyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuY3JlYXRlVG9rZW4sZSx0KTt2YXIgbj1lLm5hbWUsbz12b2lkIDAhPT1uJiZuLGk9ZS5hYmJyZXZpYXRpb24sYT12b2lkIDAhPT1pJiZpLHM9ZS5kZXNjcmlwdGlvbix1PXZvaWQgMD09PXM/IiI6cyxjPWUudXJsLGw9dm9pZCAwIT09YyYmYyxkPWUudG90YWxTdXBwbHksZj12b2lkIDA9PT1kPzA6ZCxwPWUudHJ4UmF0aW8saD12b2lkIDA9PT1wPzE6cCxnPWUudG9rZW5SYXRpbyx5PXZvaWQgMD09PWc/MTpnLGI9ZS5zYWxlU3RhcnQsdj12b2lkIDA9PT1iP0RhdGUubm93KCk6YixtPWUuc2FsZUVuZCxUPXZvaWQgMCE9PW0mJm0sdz1lLmZyZWVCYW5kd2lkdGgsQT12b2lkIDA9PT13PzA6dyxQPWUuZnJlZUJhbmR3aWR0aExpbWl0LFc9dm9pZCAwPT09UD8wOlAsQj1lLmZyb3plbkFtb3VudCxDPXZvaWQgMD09PUI/MDpCLEU9ZS5mcm96ZW5EdXJhdGlvbixNPXZvaWQgMD09PUU/MDpFLGs9ZS52b3RlU2NvcmUsST1lLnByZWNpc2lvbjtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJTdXBwbHkgYW1vdW50Iix0eXBlOiJwb3NpdGl2ZS1pbnRlZ2VyIix2YWx1ZTpmfSx7bmFtZToiVFJYIHJhdGlvIix0eXBlOiJwb3NpdGl2ZS1pbnRlZ2VyIix2YWx1ZTpofSx7bmFtZToiVG9rZW4gcmF0aW8iLHR5cGU6InBvc2l0aXZlLWludGVnZXIiLHZhbHVlOnl9LHtuYW1lOiJ0b2tlbiBhYmJyZXZpYXRpb24iLHR5cGU6InN0cmluZyIsdmFsdWU6YSxsdGU6MzIsZ3Q6MH0se25hbWU6InRva2VuIG5hbWUiLHR5cGU6Im5vdC1lbXB0eS1zdHJpbmciLHZhbHVlOm99LHtuYW1lOiJ0b2tlbiBkZXNjcmlwdGlvbiIsdHlwZToic3RyaW5nIix2YWx1ZTp1LGx0ZToyMDB9LHtuYW1lOiJ0b2tlbiB1cmwiLHR5cGU6InVybCIsdmFsdWU6bH0se25hbWU6InRva2VuIHVybCIsdHlwZToic3RyaW5nIix2YWx1ZTpsLGx0ZToyNTZ9LHtuYW1lOiJpc3N1ZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOnR9LHtuYW1lOiJzYWxlIHN0YXJ0IHRpbWVzdGFtcCIsdHlwZToiaW50ZWdlciIsdmFsdWU6dixndGU6RGF0ZS5ub3coKX0se25hbWU6InNhbGUgZW5kIHRpbWVzdGFtcCIsdHlwZToiaW50ZWdlciIsdmFsdWU6VCxndDp2fSx7bmFtZToiRnJvemVuIHN1cHBseSIsdHlwZToiaW50ZWdlciIsdmFsdWU6QyxndGU6MH0se25hbWU6IkZyb3plbiBkdXJhdGlvbiIsdHlwZToiaW50ZWdlciIsdmFsdWU6TSxndGU6MH1dLHIpKXtpZihiYi5pc05vdE51bGxPclVuZGVmaW5lZChrKSYmKCFiYi5pc0ludGVnZXIoayl8fGs8PTApKXJldHVybiByKCJ2b3RlU2NvcmUgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgZ3JlYXRlciB0aGFuIDAiKTtpZihiYi5pc05vdE51bGxPclVuZGVmaW5lZChJKSYmKCFiYi5pc0ludGVnZXIoSSl8fEk8MHx8ST42KSlyZXR1cm4gcigicHJlY2lzaW9uIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyID49IDAgYW5kIDw9IDYiKTt2YXIgTz17b3duZXJfYWRkcmVzczp4Yih0KSxuYW1lOlNiKG8pLGFiYnI6U2IoYSksZGVzY3JpcHRpb246U2IodSksdXJsOlNiKGwpLHRvdGFsX3N1cHBseTpwYXJzZUludChmKSx0cnhfbnVtOnBhcnNlSW50KGgpLG51bTpwYXJzZUludCh5KSxzdGFydF90aW1lOnBhcnNlSW50KHYpLGVuZF90aW1lOnBhcnNlSW50KFQpLGZyb3plbl9zdXBwbHk6W3tmcm96ZW5fYW1vdW50OnBhcnNlSW50KEMpLGZyb3plbl9kYXlzOnBhcnNlSW50KE0pfV19O1sibmFtZSIsImFiYnIiLCJkZXNjcmlwdGlvbiIsInVybCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe09bZV18fGRlbGV0ZSBPW2VdfSkpLHBhcnNlSW50KEMpPjB8fGRlbGV0ZSBPLmZyb3plbl9zdXBwbHksQSYmIWlzTmFOKHBhcnNlSW50KEEpKSYmcGFyc2VJbnQoQSk+PTAmJihPLmZyZWVfYXNzZXRfbmV0X2xpbWl0PXBhcnNlSW50KEEpKSxXJiYhaXNOYU4ocGFyc2VJbnQoVykpJiZwYXJzZUludChXKT49MCYmKE8ucHVibGljX2ZyZWVfYXNzZXRfbmV0X2xpbWl0PXBhcnNlSW50KFcpKSxJJiYhaXNOYU4ocGFyc2VJbnQoSSkpJiYoTy5wcmVjaXNpb249cGFyc2VJbnQoSSkpLGsmJiFpc05hTihwYXJzZUludChrKSkmJihPLnZvdGVfc2NvcmU9cGFyc2VJbnQoaykpO3ZhciB4PURiKGUpO05iKHRoaXMudHJvbldlYiwiQXNzZXRJc3N1ZUNvbnRyYWN0IixPLG51bGw9PWU/dm9pZCAwOmUucGVybWlzc2lvbklkLHgpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiByKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpfX19LHtrZXk6ImNyZWF0ZUFjY291bnQiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107aWYoYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPXt9KSxiYi5pc0Z1bmN0aW9uKHIpPyhvPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdChyKSYmKG49cixyPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFvKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5jcmVhdGVBY2NvdW50LGUscixuKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJhY2NvdW50Iix0eXBlOiJhZGRyZXNzIix2YWx1ZTplfSx7bmFtZToib3JpZ2luIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpyfV0sbykpe3ZhciBpPXtvd25lcl9hZGRyZXNzOnhiKHIpLGFjY291bnRfYWRkcmVzczp4YihlKX0sYT1EYihuKTtOYih0aGlzLnRyb25XZWIsIkFjY291bnRDcmVhdGVDb250cmFjdCIsaSxudWxsPT09KHQ9bil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGVybWlzc2lvbklkLGEpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBvKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBvKGUpfSkpfX19LHtrZXk6InVwZGF0ZUFjY291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsbj1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107aWYoYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPXt9KSxiYi5pc0Z1bmN0aW9uKHIpPyhvPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdChyKSYmKG49cixyPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFvKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy51cGRhdGVBY2NvdW50LHQscixuKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJOYW1lIix0eXBlOiJzdHJpbmciLGx0ZToyMDAsZ3Q6MCx2YWx1ZTp0LG1zZzoiSW52YWxpZCBhY2NvdW50TmFtZSJ9LHtuYW1lOiJvcmlnaW4iLHR5cGU6ImFkZHJlc3MiLHZhbHVlOnJ9XSxvKSl7dmFyIGk9e2FjY291bnRfbmFtZTpTYih0KSxvd25lcl9hZGRyZXNzOnhiKHIpfSxhPURiKG4pO05iKHRoaXMudHJvbldlYiwiQWNjb3VudFVwZGF0ZUNvbnRyYWN0IixpLG51bGw9PT0oZT1uKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsYSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG8obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSl9KSl9fX0se2tleToic2V0QWNjb3VudElkIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdCxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obikmJihvPW4sbj17fSksYmIuaXNGdW5jdGlvbihyKT8obz1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QocikmJihuPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhbylyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuc2V0QWNjb3VudElkLGUscixuKTtpZihlJiZiYi5pc1N0cmluZyhlKSYmZS5zdGFydHNXaXRoKCIweCIpJiYoZT1lLnNsaWNlKDIpKSwhdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJhY2NvdW50SWQiLHR5cGU6ImhleCIsdmFsdWU6ZX0se25hbWU6ImFjY291bnRJZCIsdHlwZToic3RyaW5nIixsdGU6MzIsZ3RlOjgsdmFsdWU6ZX0se25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6cn1dLG8pKXt2YXIgaT17YWNjb3VudF9pZDplLG93bmVyX2FkZHJlc3M6eGIocil9LGE9RGIobik7TmIodGhpcy50cm9uV2ViLCJTZXRBY2NvdW50SWRDb250cmFjdCIsaSxudWxsPT09KHQ9bil8fHZvaWQgMD09PXQ/dm9pZCAwOnQucGVybWlzc2lvbklkLGEpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBvKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBvKGUpfSkpfX19LHtrZXk6InVwZGF0ZVRva2VuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKGJiLmlzRnVuY3Rpb24ocik/KG49cixyPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KHIpJiYodD1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIW4pcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnVwZGF0ZVRva2VuLHQscik7dmFyIG89dCxpPW8uZGVzY3JpcHRpb24sYT12b2lkIDA9PT1pPyIiOmkscz1vLnVybCx1PXZvaWQgMCE9PXMmJnMsYz1vLmZyZWVCYW5kd2lkdGgsbD12b2lkIDA9PT1jPzA6YyxkPW8uZnJlZUJhbmR3aWR0aExpbWl0LGY9dm9pZCAwPT09ZD8wOmQ7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToidG9rZW4gZGVzY3JpcHRpb24iLHR5cGU6InN0cmluZyIsdmFsdWU6YSxsdGU6MjAwfSx7bmFtZToidG9rZW4gdXJsIix0eXBlOiJ1cmwiLHZhbHVlOnV9LHtuYW1lOiJ0b2tlbiB1cmwiLHR5cGU6InN0cmluZyIsdmFsdWU6dSxsdGU6MjU2fSx7bmFtZToiaXNzdWVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpyfV0sbikpe3ZhciBwPXtvd25lcl9hZGRyZXNzOnhiKHIpLGRlc2NyaXB0aW9uOlNiKGEpLHVybDpTYih1KX07bCYmIWlzTmFOKHBhcnNlSW50KGwpKSYmcGFyc2VJbnQobCk+PTAmJihwLm5ld19saW1pdD1wYXJzZUludChsKSksZiYmIWlzTmFOKHBhcnNlSW50KGYpKSYmcGFyc2VJbnQoZik+PTAmJihwLm5ld19wdWJsaWNfbGltaXQ9cGFyc2VJbnQoZikpO3ZhciBoPURiKHQpO05iKHRoaXMudHJvbldlYiwiVXBkYXRlQXNzZXRDb250cmFjdCIscCxudWxsPT09KGU9dCl8fHZvaWQgMD09PWU/dm9pZCAwOmUucGVybWlzc2lvbklkLGgpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBuKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpfSkpfX19LHtrZXk6InNlbmRBc3NldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZW5kVG9rZW4uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0se2tleToicHVyY2hhc2VBc3NldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXJjaGFzZVRva2VuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6ImNyZWF0ZUFzc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNyZWF0ZVRva2VuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6InVwZGF0ZUFzc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVwZGF0ZVRva2VuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6ImNyZWF0ZVByb3Bvc2FsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obikmJihvPW4sbj17fSksYmIuaXNGdW5jdGlvbihyKT8obz1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QocikmJihuPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhbylyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuY3JlYXRlUHJvcG9zYWwsdCxyLG4pO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Imlzc3VlciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6cn1dLG8pKXt2YXIgaT0iSW52YWxpZCBwcm9wb3NhbCBwYXJhbWV0ZXJzIHByb3ZpZGVkIjtpZighdClyZXR1cm4gbyhpKTtiYi5pc0FycmF5KHQpfHwodD1bdF0pO3ZhciBhLHM9TWIodCk7dHJ5e2ZvcihzLnMoKTshKGE9cy5uKCkpLmRvbmU7KXt2YXIgdT1hLnZhbHVlO2lmKCFiYi5pc09iamVjdCh1KSlyZXR1cm4gbyhpKX19Y2F0Y2goZSl7cy5lKGUpfWZpbmFsbHl7cy5mKCl9dmFyIGM9e293bmVyX2FkZHJlc3M6eGIocikscGFyYW1ldGVyczp0fSxsPURiKG4pO05iKHRoaXMudHJvbldlYiwiUHJvcG9zYWxDcmVhdGVDb250cmFjdCIsYyxudWxsPT09KGU9bil8fHZvaWQgMD09PWU/dm9pZCAwOmUucGVybWlzc2lvbklkLGwpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBvKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBvKGUpfSkpfX19LHtrZXk6ImRlbGV0ZVByb3Bvc2FsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obikmJihvPW4sbj17fSksYmIuaXNGdW5jdGlvbihyKT8obz1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QocikmJihuPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhbylyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZGVsZXRlUHJvcG9zYWwsdCxyLG4pO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Imlzc3VlciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6cn0se25hbWU6InByb3Bvc2FsSUQiLHR5cGU6ImludGVnZXIiLHZhbHVlOnQsZ3RlOjB9XSxvKSl7dmFyIGk9e293bmVyX2FkZHJlc3M6eGIocikscHJvcG9zYWxfaWQ6cGFyc2VJbnQodCl9LGE9RGIobik7TmIodGhpcy50cm9uV2ViLCJQcm9wb3NhbERlbGV0ZUNvbnRyYWN0IixpLG51bGw9PT0oZT1uKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsYSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIG8obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSl9KSl9fX0se2tleToidm90ZVByb3Bvc2FsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxvPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwLGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0mJmFyZ3VtZW50c1s0XTtpZihiYi5pc0Z1bmN0aW9uKG8pJiYoaT1vLG89e30pLGJiLmlzRnVuY3Rpb24obik/KGk9bixuPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KG4pJiYobz1uLG49dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIWkpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnZvdGVQcm9wb3NhbCx0LHIsbixvKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJ2b3RlciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6bn0se25hbWU6InByb3Bvc2FsSUQiLHR5cGU6ImludGVnZXIiLHZhbHVlOnQsZ3RlOjB9LHtuYW1lOiJoYXMgYXBwcm92YWwiLHR5cGU6ImJvb2xlYW4iLHZhbHVlOnJ9XSxpKSl7dmFyIGE9e293bmVyX2FkZHJlc3M6eGIobikscHJvcG9zYWxfaWQ6cGFyc2VJbnQodCksaXNfYWRkX2FwcHJvdmFsOnJ9LHM9RGIobyk7TmIodGhpcy50cm9uV2ViLCJQcm9wb3NhbEFwcHJvdmVDb250cmFjdCIsYSxudWxsPT09KGU9byl8fHZvaWQgMD09PWU/dm9pZCAwOmUucGVybWlzc2lvbklkLHMpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBpKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBpKGUpfSkpfX19LHtrZXk6ImNyZWF0ZVRSWEV4Y2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlLHQscil7dmFyIG4sbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxpPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06dm9pZCAwLGE9YXJndW1lbnRzLmxlbmd0aD41JiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0mJmFyZ3VtZW50c1s1XTtpZihiYi5pc0Z1bmN0aW9uKGkpJiYoYT1pLGk9e30pLGJiLmlzRnVuY3Rpb24obyk/KGE9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KG8pJiYoaT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIWEpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmNyZWF0ZVRSWEV4Y2hhbmdlLGUsdCxyLG8saSk7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToib3duZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOm99LHtuYW1lOiJ0b2tlbiBuYW1lIix0eXBlOiJub3QtZW1wdHktc3RyaW5nIix2YWx1ZTplfSx7bmFtZToidG9rZW4gYmFsYW5jZSIsdHlwZToicG9zaXRpdmUtaW50ZWdlciIsdmFsdWU6dH0se25hbWU6InRyeCBiYWxhbmNlIix0eXBlOiJwb3NpdGl2ZS1pbnRlZ2VyIix2YWx1ZTpyfV0sYSkpe3ZhciBzPXtvd25lcl9hZGRyZXNzOnhiKG8pLGZpcnN0X3Rva2VuX2lkOlNiKGUpLGZpcnN0X3Rva2VuX2JhbGFuY2U6dCxzZWNvbmRfdG9rZW5faWQ6IjVmIixzZWNvbmRfdG9rZW5fYmFsYW5jZTpyfSx1PURiKGkpO05iKHRoaXMudHJvbldlYiwiRXhjaGFuZ2VDcmVhdGVDb250cmFjdCIscyxudWxsPT09KG49aSl8fHZvaWQgMD09PW4/dm9pZCAwOm4ucGVybWlzc2lvbklkLHUpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBhKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBhKGUpfSkpfX19LHtrZXk6ImNyZWF0ZVRva2VuRXhjaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGUsdCxyLG4pe3ZhciBvLGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsYT1hcmd1bWVudHMubGVuZ3RoPjU/YXJndW1lbnRzWzVdOnZvaWQgMCxzPWFyZ3VtZW50cy5sZW5ndGg+NiYmdm9pZCAwIT09YXJndW1lbnRzWzZdJiZhcmd1bWVudHNbNl07aWYoYmIuaXNGdW5jdGlvbihhKSYmKHM9YSxhPXt9KSxiYi5pc0Z1bmN0aW9uKGkpPyhzPWksaT10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdChpKSYmKGE9aSxpPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFzKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5jcmVhdGVUb2tlbkV4Y2hhbmdlLGUsdCxyLG4saSxhKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJvd25lciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6aX0se25hbWU6ImZpcnN0IHRva2VuIG5hbWUiLHR5cGU6Im5vdC1lbXB0eS1zdHJpbmciLHZhbHVlOmV9LHtuYW1lOiJzZWNvbmQgdG9rZW4gbmFtZSIsdHlwZToibm90LWVtcHR5LXN0cmluZyIsdmFsdWU6cn0se25hbWU6ImZpcnN0IHRva2VuIGJhbGFuY2UiLHR5cGU6InBvc2l0aXZlLWludGVnZXIiLHZhbHVlOnR9LHtuYW1lOiJzZWNvbmQgdG9rZW4gYmFsYW5jZSIsdHlwZToicG9zaXRpdmUtaW50ZWdlciIsdmFsdWU6bn1dLHMpKXt2YXIgdT17b3duZXJfYWRkcmVzczp4YihpKSxmaXJzdF90b2tlbl9pZDpTYihlKSxmaXJzdF90b2tlbl9iYWxhbmNlOnQsc2Vjb25kX3Rva2VuX2lkOlNiKHIpLHNlY29uZF90b2tlbl9iYWxhbmNlOm59LGM9RGIoYSk7TmIodGhpcy50cm9uV2ViLCJFeGNoYW5nZUNyZWF0ZUNvbnRyYWN0Iix1LG51bGw9PT0obz1hKXx8dm9pZCAwPT09bz92b2lkIDA6by5wZXJtaXNzaW9uSWQsYykudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIHMobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHMoZSl9KSl9fX0se2tleToiaW5qZWN0RXhjaGFuZ2VUb2tlbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowLG89YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsaT1hcmd1bWVudHMubGVuZ3RoPjQ/YXJndW1lbnRzWzRdOnZvaWQgMCxhPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdJiZhcmd1bWVudHNbNV07aWYoYmIuaXNGdW5jdGlvbihpKSYmKGE9aSxpPXt9KSxiYi5pc0Z1bmN0aW9uKG8pPyhhPW8sbz10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdChvKSYmKGk9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFhKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5pbmplY3RFeGNoYW5nZVRva2Vucyx0LHIsbixvLGkpO2lmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Im93bmVyIix0eXBlOiJhZGRyZXNzIix2YWx1ZTpvfSx7bmFtZToidG9rZW4gbmFtZSIsdHlwZToibm90LWVtcHR5LXN0cmluZyIsdmFsdWU6cn0se25hbWU6InRva2VuIGFtb3VudCIsdHlwZToiaW50ZWdlciIsdmFsdWU6bixndGU6MX0se25hbWU6ImV4Y2hhbmdlSUQiLHR5cGU6ImludGVnZXIiLHZhbHVlOnQsZ3RlOjB9XSxhKSl7dmFyIHM9e293bmVyX2FkZHJlc3M6eGIobyksZXhjaGFuZ2VfaWQ6cGFyc2VJbnQodCksdG9rZW5faWQ6U2IocikscXVhbnQ6cGFyc2VJbnQobil9LHU9RGIoaSk7TmIodGhpcy50cm9uV2ViLCJFeGNoYW5nZUluamVjdENvbnRyYWN0IixzLG51bGw9PT0oZT1pKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsdSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGEobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSl9KSl9fX0se2tleToid2l0aGRyYXdFeGNoYW5nZVRva2VucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxpPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06dm9pZCAwLGE9YXJndW1lbnRzLmxlbmd0aD41JiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0mJmFyZ3VtZW50c1s1XTtpZihiYi5pc0Z1bmN0aW9uKGkpJiYoYT1pLGk9e30pLGJiLmlzRnVuY3Rpb24obyk/KGE9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KG8pJiYoaT1vLG89dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksIWEpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLndpdGhkcmF3RXhjaGFuZ2VUb2tlbnMsdCxyLG4sbyxpKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJvd25lciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6b30se25hbWU6InRva2VuIG5hbWUiLHR5cGU6Im5vdC1lbXB0eS1zdHJpbmciLHZhbHVlOnJ9LHtuYW1lOiJ0b2tlbiBhbW91bnQiLHR5cGU6ImludGVnZXIiLHZhbHVlOm4sZ3RlOjF9LHtuYW1lOiJleGNoYW5nZUlEIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTp0LGd0ZTowfV0sYSkpe3ZhciBzPXtvd25lcl9hZGRyZXNzOnhiKG8pLGV4Y2hhbmdlX2lkOnBhcnNlSW50KHQpLHRva2VuX2lkOlNiKHIpLHF1YW50OnBhcnNlSW50KG4pfSx1PURiKGkpO05iKHRoaXMudHJvbldlYiwiRXhjaGFuZ2VXaXRoZHJhd0NvbnRyYWN0IixzLG51bGw9PT0oZT1pKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsdSkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGEobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSl9KSl9fX0se2tleToidHJhZGVFeGNoYW5nZVRva2VucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjAsbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MCxpPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LGE9YXJndW1lbnRzLmxlbmd0aD41P2FyZ3VtZW50c1s1XTp2b2lkIDAscz1hcmd1bWVudHMubGVuZ3RoPjYmJnZvaWQgMCE9PWFyZ3VtZW50c1s2XSYmYXJndW1lbnRzWzZdO2lmKGJiLmlzRnVuY3Rpb24oYSkmJihzPWEsYT17fSksYmIuaXNGdW5jdGlvbihpKT8ocz1pLGk9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QoaSkmJihhPWksaT10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhcylyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMudHJhZGVFeGNoYW5nZVRva2Vucyx0LHIsbixvLGksYSk7aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToib3duZXIiLHR5cGU6ImFkZHJlc3MiLHZhbHVlOml9LHtuYW1lOiJ0b2tlbiBuYW1lIix0eXBlOiJub3QtZW1wdHktc3RyaW5nIix2YWx1ZTpyfSx7bmFtZToidG9rZW5BbW91bnRTb2xkIix0eXBlOiJpbnRlZ2VyIix2YWx1ZTpuLGd0ZToxfSx7bmFtZToidG9rZW5BbW91bnRFeHBlY3RlZCIsdHlwZToiaW50ZWdlciIsdmFsdWU6byxndGU6MX0se25hbWU6ImV4Y2hhbmdlSUQiLHR5cGU6ImludGVnZXIiLHZhbHVlOnQsZ3RlOjB9XSxzKSl7dmFyIHU9e293bmVyX2FkZHJlc3M6eGIoaSksZXhjaGFuZ2VfaWQ6cGFyc2VJbnQodCksdG9rZW5faWQ6dGhpcy50cm9uV2ViLmZyb21Bc2NpaShyKS5yZXBsYWNlKC9eMHgvLCIiKSxxdWFudDpwYXJzZUludChuKSxleHBlY3RlZDpwYXJzZUludChvKX0sYz1EYihhKTtOYih0aGlzLnRyb25XZWIsIkV4Y2hhbmdlVHJhbnNhY3Rpb25Db250cmFjdCIsdSxudWxsPT09KGU9YSl8fHZvaWQgMD09PWU/dm9pZCAwOmUucGVybWlzc2lvbklkLGMpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBzKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBzKGUpfSkpfX19LHtrZXk6InVwZGF0ZVNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LG89YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsaT1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdO2lmKGJiLmlzRnVuY3Rpb24obykmJihpPW8sbz17fSksYmIuaXNGdW5jdGlvbihuKT8oaT1uLG49dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QobikmJihvPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhaSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMudXBkYXRlU2V0dGluZyx0LHIsbixvKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJvd25lciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6bn0se25hbWU6ImNvbnRyYWN0Iix0eXBlOiJhZGRyZXNzIix2YWx1ZTp0fSx7bmFtZToidXNlckZlZVBlcmNlbnRhZ2UiLHR5cGU6ImludGVnZXIiLHZhbHVlOnIsZ3RlOjAsbHRlOjEwMH1dLGkpKXt2YXIgYT17b3duZXJfYWRkcmVzczp4YihuKSxjb250cmFjdF9hZGRyZXNzOnhiKHQpLGNvbnN1bWVfdXNlcl9yZXNvdXJjZV9wZXJjZW50OnJ9LHM9RGIobyk7TmIodGhpcy50cm9uV2ViLCJVcGRhdGVTZXR0aW5nQ29udHJhY3QiLGEsbnVsbD09PShlPW8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCxzKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gaShudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gaShlKX0pKX19fSx7a2V5OiJ1cGRhdGVFbmVyZ3lMaW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZSx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsbz1hcmd1bWVudHMubGVuZ3RoPjM/YXJndW1lbnRzWzNdOnZvaWQgMCxpPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF07aWYoYmIuaXNGdW5jdGlvbihvKSYmKGk9byxvPXt9KSxiYi5pc0Z1bmN0aW9uKG4pPyhpPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KTpiYi5pc09iamVjdChuKSYmKG89bixuPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLCFpKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy51cGRhdGVFbmVyZ3lMaW1pdCx0LHIsbixvKTtpZighdGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJvd25lciIsdHlwZToiYWRkcmVzcyIsdmFsdWU6bn0se25hbWU6ImNvbnRyYWN0Iix0eXBlOiJhZGRyZXNzIix2YWx1ZTp0fSx7bmFtZToib3JpZ2luRW5lcmd5TGltaXQiLHR5cGU6ImludGVnZXIiLHZhbHVlOnIsZ3RlOjAsbHRlOjFlN31dLGkpKXt2YXIgYT17b3duZXJfYWRkcmVzczp4YihuKSxjb250cmFjdF9hZGRyZXNzOnhiKHQpLG9yaWdpbl9lbmVyZ3lfbGltaXQ6cn0scz1EYihvKTtOYih0aGlzLnRyb25XZWIsIlVwZGF0ZUVuZXJneUxpbWl0Q29udHJhY3QiLGEsbnVsbD09PShlPW8pfHx2b2lkIDA9PT1lP3ZvaWQgMDplLnBlcm1pc3Npb25JZCxzKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gaShudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gaShlKX0pKX19fSx7a2V5OiJjaGVja1Blcm1pc3Npb25zIix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKGUpe2lmKGUudHlwZSE9PXR8fCFlLnBlcm1pc3Npb25fbmFtZXx8IWJiLmlzU3RyaW5nKGUucGVybWlzc2lvbl9uYW1lKXx8IWJiLmlzSW50ZWdlcihlLnRocmVzaG9sZCl8fGUudGhyZXNob2xkPDF8fCFlLmtleXMpcmV0dXJuITE7dmFyIHIsbj1NYihlLmtleXMpO3RyeXtmb3Iobi5zKCk7IShyPW4ubigpKS5kb25lOyl7dmFyIG89ci52YWx1ZTtpZighdGhpcy50cm9uV2ViLmlzQWRkcmVzcyhvLmFkZHJlc3MpfHwhYmIuaXNJbnRlZ2VyKG8ud2VpZ2h0KXx8by53ZWlnaHQ+ZS50aHJlc2hvbGR8fG8ud2VpZ2h0PDF8fDI9PT10JiYhZS5vcGVyYXRpb25zKXJldHVybiExfX1jYXRjaChlKXtuLmUoZSl9ZmluYWxseXtuLmYoKX19cmV0dXJuITB9fSx7a2V5OiJ1cGRhdGVBY2NvdW50UGVybWlzc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLG89YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXSxpPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06dm9pZCAwLGE9YXJndW1lbnRzLmxlbmd0aD41JiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0mJmFyZ3VtZW50c1s1XTtpZihiYi5pc0Z1bmN0aW9uKGkpJiYoYT1pLGk9e30pLGJiLmlzRnVuY3Rpb24obykmJihhPW8sbz0hMSksYmIuaXNGdW5jdGlvbihuKSYmKGE9bixuPW89ITEpLGJiLmlzRnVuY3Rpb24ocikmJihhPXIscj1uPW89ITEpLCFhKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy51cGRhdGVBY2NvdW50UGVybWlzc2lvbnMsdCxyLG4sbyxpKTtpZighdGhpcy50cm9uV2ViLmlzQWRkcmVzcyh0KSlyZXR1cm4gYSgiSW52YWxpZCBvd25lckFkZHJlc3MgcHJvdmlkZWQiKTtpZighdGhpcy5jaGVja1Blcm1pc3Npb25zKHIsMCkpcmV0dXJuIGEoIkludmFsaWQgb3duZXJQZXJtaXNzaW9ucyBwcm92aWRlZCIpO2lmKCF0aGlzLmNoZWNrUGVybWlzc2lvbnMobiwxKSlyZXR1cm4gYSgiSW52YWxpZCB3aXRuZXNzUGVybWlzc2lvbnMgcHJvdmlkZWQiKTtBcnJheS5pc0FycmF5KG8pfHwobz1bb10pO3ZhciBzLHU9TWIobyk7dHJ5e2Zvcih1LnMoKTshKHM9dS5uKCkpLmRvbmU7KXt2YXIgYz1zLnZhbHVlO2lmKCF0aGlzLmNoZWNrUGVybWlzc2lvbnMoYywyKSlyZXR1cm4gYSgiSW52YWxpZCBhY3RpdmVzUGVybWlzc2lvbnMgcHJvdmlkZWQiKX19Y2F0Y2goZSl7dS5lKGUpfWZpbmFsbHl7dS5mKCl9dmFyIGw9e293bmVyX2FkZHJlc3M6eGIodCl9O2lmKHIpe3ZhciBkPUZiKHIpOyJ0eXBlImluIGQmJmRlbGV0ZSBkLnR5cGUsbC5vd25lcj1kfWlmKG4pe3ZhciBmPUZiKG4pO2YudHlwZT0iV2l0bmVzcyIsbC53aXRuZXNzPWZ9aWYobyl7dmFyIHA9RmIobyk7cC5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnR5cGU9IkFjdGl2ZSJ9KSksbC5hY3RpdmVzPXB9dmFyIGg9RGIoaSk7TmIodGhpcy50cm9uV2ViLCJBY2NvdW50UGVybWlzc2lvblVwZGF0ZUNvbnRyYWN0IixsLG51bGw9PT0oZT1pKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5wZXJtaXNzaW9uSWQsaCkudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuIGEobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSl9KSl9fSx7a2V5OiJuZXdUeElEIix2YWx1ZToobz1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKHQscixuKXt2YXIgbyxpO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPXt9KSxuKXtlLm5leHQ9MzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMubmV3VHhJRCx0LHIpKTtjYXNlIDM6aWYobnVsbD09PShvPXIpfHx2b2lkIDA9PT1vfHwhby50eExvY2FsKXtlLm5leHQ9NzticmVha31yZXR1cm4gaT10LnJhd19kYXRhLmNvbnRyYWN0WzBdLE5iKHRoaXMudHJvbldlYixpLnR5cGUsaS5wYXJhbWV0ZXIudmFsdWUsaS5QZXJtaXNzaW9uX2lkLHtmZWVfbGltaXQ6dC5yYXdfZGF0YS5mZWVfbGltaXQsZGF0YTp0LnJhd19kYXRhLmRhdGEscmVmX2Jsb2NrX2J5dGVzOnQucmF3X2RhdGEucmVmX2Jsb2NrX2J5dGVzLHJlZl9ibG9ja19oYXNoOnQucmF3X2RhdGEucmVmX2Jsb2NrX2hhc2gsZXhwaXJhdGlvbjp0LnJhd19kYXRhLmV4cGlyYXRpb24sdGltZXN0YW1wOnQucmF3X2RhdGEudGltZXN0YW1wfSkudGhlbigoZnVuY3Rpb24oZSl7ZS5zaWduYXR1cmU9dC5zaWduYXR1cmUsZS52aXNpYmxlPXQudmlzaWJsZSxuKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBuKCJFcnJvciBnZW5lcmF0aW5nIGEgbmV3IHRyYW5zYWN0aW9uIGlkLiIpfSkpLGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDc6dGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRzaWdud2VpZ2h0Iix0LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdC52aXNpYmxlJiYoZS50cmFuc2FjdGlvbi50cmFuc2FjdGlvbi52aXNpYmxlPXQudmlzaWJsZSksX2IoZS50cmFuc2FjdGlvbi50cmFuc2FjdGlvbixPYihPYih7fSx0LnJhd19kYXRhLmNvbnRyYWN0WzBdLnBhcmFtZXRlci52YWx1ZSkse30se1Blcm1pc3Npb25faWQ6dC5yYXdfZGF0YS5jb250cmFjdFswXS5QZXJtaXNzaW9uX2lkfSkse2RhdGE6dC5yYXdfZGF0YS5kYXRhLGZlZV9saW1pdDp0LnJhd19kYXRhLmZlZV9saW1pdH0sbil9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBuKCJFcnJvciBnZW5lcmF0aW5nIGEgbmV3IHRyYW5zYWN0aW9uIGlkLiIpfSkpO2Nhc2UgODpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiYWx0ZXJUcmFuc2FjdGlvbiIsdmFsdWU6KG49cChDKCkubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcixuLG89YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYocj1vLmxlbmd0aD4xJiZ2b2lkIDAhPT1vWzFdP29bMV06e30sbj1vLmxlbmd0aD4yJiZ2b2lkIDAhPT1vWzJdJiZvWzJdKXtlLm5leHQ9NDticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuYWx0ZXJUcmFuc2FjdGlvbix0LHIpKTtjYXNlIDQ6aWYoIXQuc2lnbmF0dXJlKXtlLm5leHQ9NjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbigiWW91IGNhbiBub3QgZXh0ZW5kIHRoZSBleHBpcmF0aW9uIG9mIGEgc2lnbmVkIHRyYW5zYWN0aW9uLiIpKTtjYXNlIDY6aWYoIXIuZGF0YSl7ZS5uZXh0PTEyO2JyZWFrfWlmKCJoZXgiIT09ci5kYXRhRm9ybWF0JiYoci5kYXRhPXRoaXMudHJvbldlYi50b0hleChyLmRhdGEpKSxyLmRhdGE9ci5kYXRhLnJlcGxhY2UoL14weC8sIiIpLDAhPT1yLmRhdGEubGVuZ3RoKXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG4oIkludmFsaWQgZGF0YSBwcm92aWRlZCIpKTtjYXNlIDExOnQucmF3X2RhdGEuZGF0YT1yLmRhdGE7Y2FzZSAxMjppZighci5leHRlbnNpb24pe2UubmV4dD0xNzticmVha31pZihyLmV4dGVuc2lvbj1wYXJzZUludCgxZTMqci5leHRlbnNpb24pLCEoaXNOYU4oci5leHRlbnNpb24pfHx0LnJhd19kYXRhLmV4cGlyYXRpb24rci5leHRlbnNpb248PURhdGUubm93KCkrM2UzKSl7ZS5uZXh0PTE2O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixuKCJJbnZhbGlkIGV4dGVuc2lvbiBwcm92aWRlZCIpKTtjYXNlIDE2OnQucmF3X2RhdGEuZXhwaXJhdGlvbis9ci5leHRlbnNpb247Y2FzZSAxNzp0aGlzLm5ld1R4SUQodCx7dHhMb2NhbDpyLnR4TG9jYWx9LG4pO2Nhc2UgMTg6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZXh0ZW5kRXhwaXJhdGlvbiIsdmFsdWU6KHI9cChDKCkubWFyaygoZnVuY3Rpb24gZSh0LHIsbil7dmFyIG8saSxhPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKGk9YS5sZW5ndGg+MyYmdm9pZCAwIT09YVszXSYmYVszXSxiYi5pc0Z1bmN0aW9uKG4pJiYoaT1uLG49e30pLGkpe2UubmV4dD00O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIix0aGlzLmluamVjdFByb21pc2UodGhpcy5leHRlbmRFeHBpcmF0aW9uLHQscixuKSk7Y2FzZSA0OnRoaXMuYWx0ZXJUcmFuc2FjdGlvbih0LHtleHRlbnNpb246cix0eExvY2FsOm51bGw9PT0obz1uKXx8dm9pZCAwPT09bz92b2lkIDA6by50eExvY2FsfSxpKTtjYXNlIDU6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlLHQsbil7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImFkZFVwZGF0ZURhdGEiLHZhbHVlOih0PXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUodCxyKXt2YXIgbixvLGksYSxzPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG89cy5sZW5ndGg+MiYmdm9pZCAwIT09c1syXT9zWzJdOiJ1dGY4IixpPXMubGVuZ3RoPjM/c1szXTp2b2lkIDAsYT1zLmxlbmd0aD40JiZ2b2lkIDAhPT1zWzRdJiZzWzRdLGJiLmlzRnVuY3Rpb24oaSkmJihhPWksaT17fSksYmIuaXNGdW5jdGlvbihvKT8oYT1vLG89InV0ZjgiKTpiYi5pc09iamVjdChvKSYmKGk9byxvPSJ1dGY4IiksYSl7ZS5uZXh0PTc7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmFkZFVwZGF0ZURhdGEsdCxyLG8saSkpO2Nhc2UgNzp0aGlzLmFsdGVyVHJhbnNhY3Rpb24odCx7ZGF0YTpyLGRhdGFGb3JtYXQ6byx0eExvY2FsOm51bGw9PT0obj1pKXx8dm9pZCAwPT09bj92b2lkIDA6bi50eExvY2FsfSxhKTtjYXNlIDg6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlLHIpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfV0pLGV9KCk7ZnVuY3Rpb24gamIoZSx0KXt2YXIgcj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihuPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLHIucHVzaC5hcHBseShyLG4pfXJldHVybiByfWZ1bmN0aW9uIHpiKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciByPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP2piKE9iamVjdChyKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7VyhlLHQsclt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6amIoT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KSl9KSl9cmV0dXJuIGV9dmFyICRiPSIZVFJPTiBTaWduZWQgTWVzc2FnZTpcbjMyIixWYj0iGUV0aGVyZXVtIFNpZ25lZCBNZXNzYWdlOlxuMzIiO2Z1bmN0aW9uIEdiKGUpe3JldHVybiBzdi5hZGRyZXNzLnRvSGV4KGUpfXZhciBIYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKGcodGhpcyxlKSwhdHx8IXQgaW5zdGFuY2VvZiBzdil0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGluc3RhbmNlIG9mIFRyb25XZWIiKTt0aGlzLnRyb25XZWI9dCx0aGlzLmluamVjdFByb21pc2U9V2IoKSh0aGlzKSx0aGlzLmNhY2hlPXtjb250cmFjdHM6e319LHRoaXMudmFsaWRhdG9yPW5ldyBFYih0KX12YXIgdCxyLG4sbyxpLGEscyx1LGMsbCxkLGYsaCx5LGIsbSxULHcsQTtyZXR1cm4gdihlLFt7a2V5OiJfcGFyc2VUb2tlbiIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHpiKHpiKHt9LGUpLHt9LHtuYW1lOnRoaXMudHJvbldlYi50b1V0ZjgoZS5uYW1lKSxhYmJyOmUuYWJiciYmdGhpcy50cm9uV2ViLnRvVXRmOChlLmFiYnIpLGRlc2NyaXB0aW9uOmUuZGVzY3JpcHRpb24mJnRoaXMudHJvbldlYi50b1V0ZjgoZS5kZXNjcmlwdGlvbiksdXJsOmUudXJsJiZ0aGlzLnRyb25XZWIudG9VdGY4KGUudXJsKX0pfX0se2tleToiZ2V0Q3VycmVudEJsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIWUpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldEN1cnJlbnRCbG9jayk7dGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRub3dibG9jayIpLnRoZW4oKGZ1bmN0aW9uKHQpe2UobnVsbCx0KX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9KSl9fSx7a2V5OiJnZXRDb25maXJtZWRDdXJyZW50QmxvY2siLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZighZSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0Q29uZmlybWVkQ3VycmVudEJsb2NrKTt0aGlzLnRyb25XZWIuc29saWRpdHlOb2RlLnJlcXVlc3QoIndhbGxldHNvbGlkaXR5L2dldG5vd2Jsb2NrIikudGhlbigoZnVuY3Rpb24odCl7ZShudWxsLHQpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pKX19LHtrZXk6ImdldEJsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnRyb25XZWIuZGVmYXVsdEJsb2NrLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gYmIuaXNGdW5jdGlvbihlKSYmKHQ9ZSxlPXRoaXMudHJvbldlYi5kZWZhdWx0QmxvY2spLHQ/ITE9PT1lP3QoIk5vIGJsb2NrIGlkZW50aWZpZXIgcHJvdmlkZWQiKTooImVhcmxpZXN0Ij09ZSYmKGU9MCksImxhdGVzdCI9PWU/dGhpcy5nZXRDdXJyZW50QmxvY2sodCk6aXNOYU4oZSkmJmJiLmlzSGV4KGUpP3RoaXMuZ2V0QmxvY2tCeUhhc2goZSx0KTp2b2lkIHRoaXMuZ2V0QmxvY2tCeU51bWJlcihlLHQpKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRCbG9jayxlKX19LHtrZXk6ImdldEJsb2NrQnlIYXNoIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKCF0KXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRCbG9ja0J5SGFzaCxlKTt0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGJsb2NrYnlpZCIse3ZhbHVlOmV9LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7aWYoIU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm4gdCgiQmxvY2sgbm90IGZvdW5kIik7dChudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChlKX0pKX19LHtrZXk6ImdldEJsb2NrQnlOdW1iZXIiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIHQ/IWJiLmlzSW50ZWdlcihlKXx8ZTwwP3QoIkludmFsaWQgYmxvY2sgbnVtYmVyIHByb3ZpZGVkIik6dm9pZCB0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGJsb2NrYnludW0iLHtudW06cGFyc2VJbnQoZSl9LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7aWYoIU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm4gdCgiQmxvY2sgbm90IGZvdW5kIik7dChudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChlKX0pKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRCbG9ja0J5TnVtYmVyLGUpfX0se2tleToiZ2V0QmxvY2tUcmFuc2FjdGlvbkNvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnRyb25XZWIuZGVmYXVsdEJsb2NrLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZihiYi5pc0Z1bmN0aW9uKGUpJiYodD1lLGU9dGhpcy50cm9uV2ViLmRlZmF1bHRCbG9jayksIXQpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldEJsb2NrVHJhbnNhY3Rpb25Db3VudCxlKTt0aGlzLmdldEJsb2NrKGUpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciByPWUudHJhbnNhY3Rpb25zO3QobnVsbCwodm9pZCAwPT09cj9bXTpyKS5sZW5ndGgpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChlKX0pKX19LHtrZXk6ImdldFRyYW5zYWN0aW9uRnJvbUJsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnRyb25XZWIuZGVmYXVsdEJsb2NrLHQ9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAscj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD0wKSxiYi5pc0Z1bmN0aW9uKGUpJiYocj1lLGU9dGhpcy50cm9uV2ViLmRlZmF1bHRCbG9jayksIXIpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldFRyYW5zYWN0aW9uRnJvbUJsb2NrLGUsdCk7dGhpcy5nZXRCbG9jayhlKS50aGVuKChmdW5jdGlvbihlKXt2YXIgbj1lLnRyYW5zYWN0aW9ucyxvPXZvaWQgMCE9PW4mJm47bz8ibnVtYmVyIj09dHlwZW9mIHQ/dD49MCYmdDxvLmxlbmd0aD9yKG51bGwsb1t0XSk6cigiSW52YWxpZCB0cmFuc2FjdGlvbiBpbmRleCBwcm92aWRlZCIpOnIobnVsbCxvKTpyKCJUcmFuc2FjdGlvbiBub3QgZm91bmQgaW4gYmxvY2siKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSl9KSl9fSx7a2V5OiJnZXRUcmFuc2FjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZighdClyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0VHJhbnNhY3Rpb24sZSk7dGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXR0cmFuc2FjdGlvbmJ5aWQiLHt2YWx1ZTplfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKCFPYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuIHQoIlRyYW5zYWN0aW9uIG5vdCBmb3VuZCIpO3QobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9KSl9fSx7a2V5OiJnZXRDb25maXJtZWRUcmFuc2FjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZighdClyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0Q29uZmlybWVkVHJhbnNhY3Rpb24sZSk7dGhpcy50cm9uV2ViLnNvbGlkaXR5Tm9kZS5yZXF1ZXN0KCJ3YWxsZXRzb2xpZGl0eS9nZXR0cmFuc2FjdGlvbmJ5aWQiLHt2YWx1ZTplfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe2lmKCFPYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuIHQoIlRyYW5zYWN0aW9uIG5vdCBmb3VuZCIpO3QobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9KSl9fSx7a2V5OiJnZXRVbmNvbmZpcm1lZFRyYW5zYWN0aW9uSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gdGhpcy5fZ2V0VHJhbnNhY3Rpb25JbmZvQnlJZChlLHtjb25maXJtZWQ6ITF9LHQpfX0se2tleToiZ2V0VHJhbnNhY3Rpb25JbmZvIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiB0aGlzLl9nZXRUcmFuc2FjdGlvbkluZm9CeUlkKGUse2NvbmZpcm1lZDohMH0sdCl9fSx7a2V5OiJfZ2V0VHJhbnNhY3Rpb25JbmZvQnlJZCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKCFyKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5fZ2V0VHJhbnNhY3Rpb25JbmZvQnlJZCxlLHQpO3RoaXMudHJvbldlYlt0LmNvbmZpcm1lZD8ic29saWRpdHlOb2RlIjoiZnVsbE5vZGUiXS5yZXF1ZXN0KCJ3YWxsZXQiLmNvbmNhdCh0LmNvbmZpcm1lZD8ic29saWRpdHkiOiIiLCIvZ2V0dHJhbnNhY3Rpb25pbmZvYnlpZCIpLHt2YWx1ZTplfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3IobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSl9KSl9fSx7a2V5OiJnZXRUcmFuc2FjdGlvbnNUb0FkZHJlc3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MzAscj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxuPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107cmV0dXJuIGJiLmlzRnVuY3Rpb24ocikmJihuPXIscj0wKSxiYi5pc0Z1bmN0aW9uKHQpJiYobj10LHQ9MzApLG4/KGU9dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoZSksdGhpcy5nZXRUcmFuc2FjdGlvbnNSZWxhdGVkKGUsInRvIix0LHIsbikpOnRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldFRyYW5zYWN0aW9uc1RvQWRkcmVzcyxlLHQscil9fSx7a2V5OiJnZXRUcmFuc2FjdGlvbnNGcm9tQWRkcmVzcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTozMCxyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTowLG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtyZXR1cm4gYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPTApLGJiLmlzRnVuY3Rpb24odCkmJihuPXQsdD0zMCksbj8oZT10aGlzLnRyb25XZWIuYWRkcmVzcy50b0hleChlKSx0aGlzLmdldFRyYW5zYWN0aW9uc1JlbGF0ZWQoZSwiZnJvbSIsdCxyLG4pKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRUcmFuc2FjdGlvbnNGcm9tQWRkcmVzcyxlLHQscil9fSx7a2V5OiJnZXRUcmFuc2FjdGlvbnNSZWxhdGVkIix2YWx1ZTooQT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHMsdSxjLGw9YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYodD1sLmxlbmd0aD4wJiZ2b2lkIDAhPT1sWzBdP2xbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxyPWwubGVuZ3RoPjEmJnZvaWQgMCE9PWxbMV0/bFsxXToiYWxsIixuPWwubGVuZ3RoPjImJnZvaWQgMCE9PWxbMl0/bFsyXTozMCxvPWwubGVuZ3RoPjMmJnZvaWQgMCE9PWxbM10/bFszXTowLGk9bC5sZW5ndGg+NCYmdm9pZCAwIT09bFs0XSYmbFs0XSxiYi5pc0Z1bmN0aW9uKG8pJiYoaT1vLG89MCksYmIuaXNGdW5jdGlvbihuKSYmKGk9bixuPTMwKSxiYi5pc0Z1bmN0aW9uKHIpJiYoaT1yLHI9ImFsbCIpLGJiLmlzRnVuY3Rpb24odCkmJihpPXQsdD10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxpKXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldFRyYW5zYWN0aW9uc1JlbGF0ZWQsdCxyLG4sbykpO2Nhc2UgMTE6aWYoWyJ0byIsImZyb20iLCJhbGwiXS5pbmNsdWRlcyhyKSl7ZS5uZXh0PTEzO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKCdJbnZhbGlkIGRpcmVjdGlvbiBwcm92aWRlZDogRXhwZWN0ZWQgInRvIiwgImZyb20iIG9yICJhbGwiJykpO2Nhc2UgMTM6aWYoImFsbCIhPXIpe2UubmV4dD0yNzticmVha31yZXR1cm4gZS5wcmV2PTE0LGUubmV4dD0xNyxQcm9taXNlLmFsbChbdGhpcy5nZXRUcmFuc2FjdGlvbnNSZWxhdGVkKHQsImZyb20iLG4sbyksdGhpcy5nZXRUcmFuc2FjdGlvbnNSZWxhdGVkKHQsInRvIixuLG8pXSk7Y2FzZSAxNzpyZXR1cm4gYT1lLnNlbnQscz1vaShhLDIpLHU9c1swXSxjPXNbMV0sZS5hYnJ1cHQoInJldHVybiIsaShudWxsLFtdLmNvbmNhdChDdCh1Lm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlyZWN0aW9uPSJmcm9tIixlfSkpKSxDdChjLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlyZWN0aW9uPSJ0byIsZX0pKSkpLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQucmF3X2RhdGEudGltZXN0YW1wLWUucmF3X2RhdGEudGltZXN0YW1wfSkpKSk7Y2FzZSAyNDpyZXR1cm4gZS5wcmV2PTI0LGUudDA9ZS5jYXRjaCgxNCksZS5hYnJ1cHQoInJldHVybiIsaShlLnQwKSk7Y2FzZSAyNzppZih0aGlzLnRyb25XZWIuaXNBZGRyZXNzKHQpKXtlLm5leHQ9Mjk7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLGkoIkludmFsaWQgYWRkcmVzcyBwcm92aWRlZCIpKTtjYXNlIDI5OmlmKCEoIWJiLmlzSW50ZWdlcihuKXx8bjwwfHxvJiZuPDEpKXtlLm5leHQ9MzE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLGkoIkludmFsaWQgbGltaXQgcHJvdmlkZWQiKSk7Y2FzZSAzMTppZihiYi5pc0ludGVnZXIobykmJiEobzwwKSl7ZS5uZXh0PTMzO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKCJJbnZhbGlkIG9mZnNldCBwcm92aWRlZCIpKTtjYXNlIDMzOnQ9dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgodCksdGhpcy50cm9uV2ViLnNvbGlkaXR5Tm9kZS5yZXF1ZXN0KCJ3YWxsZXRleHRlbnNpb24vZ2V0dHJhbnNhY3Rpb25zIi5jb25jYXQociwidGhpcyIpLHthY2NvdW50OnthZGRyZXNzOnR9LG9mZnNldDpvLGxpbWl0Om59LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7dmFyIHQ9ZS50cmFuc2FjdGlvbjtpKG51bGwsdCl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBpKGUpfSkpO2Nhc2UgMzU6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMsW1sxNCwyNF1dKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZ2V0QWNjb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIGJiLmlzRnVuY3Rpb24oZSkmJih0PWUsZT10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSx0P3RoaXMudHJvbldlYi5pc0FkZHJlc3MoZSk/KGU9dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoZSksdm9pZCB0aGlzLnRyb25XZWIuc29saWRpdHlOb2RlLnJlcXVlc3QoIndhbGxldHNvbGlkaXR5L2dldGFjY291bnQiLHthZGRyZXNzOmV9LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7dChudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChlKX0pKSk6dCgiSW52YWxpZCBhZGRyZXNzIHByb3ZpZGVkIik6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0QWNjb3VudCxlKX19LHtrZXk6ImdldEFjY291bnRCeUlkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKCF0KXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRBY2NvdW50QnlJZCxlKTt0aGlzLmdldEFjY291bnRJbmZvQnlJZChlLHtjb25maXJtZWQ6ITB9LHQpfX0se2tleToiZ2V0QWNjb3VudEluZm9CeUlkIix2YWx1ZTpmdW5jdGlvbihlLHQscil7dGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJhY2NvdW50SWQiLHR5cGU6ImhleCIsdmFsdWU6ZX0se25hbWU6ImFjY291bnRJZCIsdHlwZToic3RyaW5nIixsdGU6MzIsZ3RlOjgsdmFsdWU6ZX1dLHIpfHwoZS5zdGFydHNXaXRoKCIweCIpJiYoZT1lLnNsaWNlKDIpKSx0aGlzLnRyb25XZWJbdC5jb25maXJtZWQ/InNvbGlkaXR5Tm9kZSI6ImZ1bGxOb2RlIl0ucmVxdWVzdCgid2FsbGV0Ii5jb25jYXQodC5jb25maXJtZWQ/InNvbGlkaXR5IjoiIiwiL2dldGFjY291bnRieWlkIikse2FjY291bnRfaWQ6ZX0sInBvc3QiKS50aGVuKChmdW5jdGlvbihlKXtyKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpKX19LHtrZXk6ImdldEJhbGFuY2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKGJiLmlzRnVuY3Rpb24oZSkmJih0PWUsZT10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhdClyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0QmFsYW5jZSxlKTt0aGlzLmdldEFjY291bnQoZSkudGhlbigoZnVuY3Rpb24oZSl7dmFyIHI9ZS5iYWxhbmNlO3QobnVsbCx2b2lkIDA9PT1yPzA6cil9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSkpfX0se2tleToiZ2V0VW5jb25maXJtZWRBY2NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gYmIuaXNGdW5jdGlvbihlKSYmKHQ9ZSxlPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLHQ/dGhpcy50cm9uV2ViLmlzQWRkcmVzcyhlKT8oZT10aGlzLnRyb25XZWIuYWRkcmVzcy50b0hleChlKSx2b2lkIHRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0YWNjb3VudCIse2FkZHJlc3M6ZX0sInBvc3QiKS50aGVuKChmdW5jdGlvbihlKXt0KG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSkpKTp0KCJJbnZhbGlkIGFkZHJlc3MgcHJvdmlkZWQiKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRVbmNvbmZpcm1lZEFjY291bnQsZSl9fSx7a2V5OiJnZXRVbmNvbmZpcm1lZEFjY291bnRCeUlkIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKCF0KXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRVbmNvbmZpcm1lZEFjY291bnRCeUlkLGUpO3RoaXMuZ2V0QWNjb3VudEluZm9CeUlkKGUse2NvbmZpcm1lZDohMX0sdCl9fSx7a2V5OiJnZXRVbmNvbmZpcm1lZEJhbGFuY2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKGJiLmlzRnVuY3Rpb24oZSkmJih0PWUsZT10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSwhdClyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0VW5jb25maXJtZWRCYWxhbmNlLGUpO3RoaXMuZ2V0VW5jb25maXJtZWRBY2NvdW50KGUpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciByPWUuYmFsYW5jZTt0KG51bGwsdm9pZCAwPT09cj8wOnIpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChlKX0pKX19LHtrZXk6ImdldEJhbmR3aWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIGJiLmlzRnVuY3Rpb24oZSkmJih0PWUsZT10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSx0P3RoaXMudHJvbldlYi5pc0FkZHJlc3MoZSk/KGU9dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoZSksdm9pZCB0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGFjY291bnRuZXQiLHthZGRyZXNzOmV9LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7dmFyIHI9ZS5mcmVlTmV0VXNlZCxuPXZvaWQgMD09PXI/MDpyLG89ZS5mcmVlTmV0TGltaXQsaT12b2lkIDA9PT1vPzA6byxhPWUuTmV0VXNlZCxzPXZvaWQgMD09PWE/MDphLHU9ZS5OZXRMaW1pdDt0KG51bGwsaS1uKygodm9pZCAwPT09dT8wOnUpLXMpKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9KSkpOnQoIkludmFsaWQgYWRkcmVzcyBwcm92aWRlZCIpOnRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldEJhbmR3aWR0aCxlKX19LHtrZXk6ImdldFRva2Vuc0lzc3VlZEJ5QWRkcmVzcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgscj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiBiYi5pc0Z1bmN0aW9uKHQpJiYocj10LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCkscj90aGlzLnRyb25XZWIuaXNBZGRyZXNzKHQpPyh0PXRoaXMudHJvbldlYi5hZGRyZXNzLnRvSGV4KHQpLHZvaWQgdGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRhc3NldGlzc3VlYnlhY2NvdW50Iix7YWRkcmVzczp0fSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciBuPXQuYXNzZXRJc3N1ZSxvPXZvaWQgMCE9PW4mJm47aWYoIW8pcmV0dXJuIHIobnVsbCx7fSk7dmFyIGk9by5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl9wYXJzZVRva2VuKHQpfSkpLnJlZHVjZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVt0Lm5hbWVdPXQsZX0pLHt9KTtyKG51bGwsaSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpKTpyKCJJbnZhbGlkIGFkZHJlc3MgcHJvdmlkZWQiKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRUb2tlbnNJc3N1ZWRCeUFkZHJlc3MsdCl9fSx7a2V5OiJnZXRUb2tlbkZyb21JRCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIHI/KGJiLmlzSW50ZWdlcih0KSYmKHQ9dC50b1N0cmluZygpKSxiYi5pc1N0cmluZyh0KSYmdC5sZW5ndGg/dm9pZCB0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGFzc2V0aXNzdWVieW5hbWUiLHt2YWx1ZTp0aGlzLnRyb25XZWIuZnJvbVV0ZjgodCl9LCJwb3N0IikudGhlbigoZnVuY3Rpb24odCl7aWYoIXQubmFtZSlyZXR1cm4gcigiVG9rZW4gZG9lcyBub3QgZXhpc3QiKTtyKG51bGwsZS5fcGFyc2VUb2tlbih0KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpOnIoIkludmFsaWQgdG9rZW4gSUQgcHJvdmlkZWQiKSk6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0VG9rZW5Gcm9tSUQsdCl9fSx7a2V5OiJsaXN0Tm9kZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIXQpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmxpc3ROb2Rlcyk7dGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9saXN0bm9kZXMiKS50aGVuKChmdW5jdGlvbihyKXt2YXIgbj1yLm5vZGVzO3QobnVsbCwodm9pZCAwPT09bj9bXTpuKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciByPXQuYWRkcmVzcyxuPXIuaG9zdCxvPXIucG9ydDtyZXR1cm4iIi5jb25jYXQoZS50cm9uV2ViLnRvVXRmOChuKSwiOiIpLmNvbmNhdChvKX0pKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSkpfX0se2tleToiZ2V0QmxvY2tSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTozMCxyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07cmV0dXJuIGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD0zMCksYmIuaXNGdW5jdGlvbihlKSYmKHI9ZSxlPTApLHI/IWJiLmlzSW50ZWdlcihlKXx8ZTwwP3IoIkludmFsaWQgc3RhcnQgb2YgcmFuZ2UgcHJvdmlkZWQiKTohYmIuaXNJbnRlZ2VyKHQpfHx0PGU/cigiSW52YWxpZCBlbmQgb2YgcmFuZ2UgcHJvdmlkZWQiKTp0KzEtZT4xMDA/cigiSW52YWxpZCByYW5nZSBzaXplLCB3aGljaCBzaG91bGQgYmUgbm8gbW9yZSB0aGFuIDEwMC4iKTp2b2lkIHRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0YmxvY2tieWxpbWl0bmV4dCIse3N0YXJ0TnVtOnBhcnNlSW50KGUpLGVuZE51bTpwYXJzZUludCh0KSsxfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciB0PWUuYmxvY2s7cihudWxsLHZvaWQgMD09PXQ/W106dCl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpOnRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldEJsb2NrUmFuZ2UsZSx0KX19LHtrZXk6Imxpc3RTdXBlclJlcHJlc2VudGF0aXZlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKCFlKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5saXN0U3VwZXJSZXByZXNlbnRhdGl2ZXMpO3RoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvbGlzdHdpdG5lc3NlcyIpLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciByPXQud2l0bmVzc2VzO2UobnVsbCx2b2lkIDA9PT1yP1tdOnIpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pKX19LHtrZXk6Imxpc3RUb2tlbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO3JldHVybiBiYi5pc0Z1bmN0aW9uKHIpJiYobj1yLHI9MCksYmIuaXNGdW5jdGlvbih0KSYmKG49dCx0PTApLG4/IWJiLmlzSW50ZWdlcih0KXx8dDwwfHxyJiZ0PDE/bigiSW52YWxpZCBsaW1pdCBwcm92aWRlZCIpOiFiYi5pc0ludGVnZXIocil8fHI8MD9uKCJJbnZhbGlkIG9mZnNldCBwcm92aWRlZCIpOnQ/dm9pZCB0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldHBhZ2luYXRlZGFzc2V0aXNzdWVsaXN0Iix7b2Zmc2V0OnBhcnNlSW50KHIpLGxpbWl0OnBhcnNlSW50KHQpfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciByPXQuYXNzZXRJc3N1ZTtuKG51bGwsKHZvaWQgMD09PXI/W106cikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fcGFyc2VUb2tlbih0KX0pKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpfSkpOnRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0YXNzZXRpc3N1ZWxpc3QiKS50aGVuKChmdW5jdGlvbih0KXt2YXIgcj10LmFzc2V0SXNzdWU7bihudWxsLCh2b2lkIDA9PT1yP1tdOnIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX3BhcnNlVG9rZW4odCl9KSkpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gbihlKX0pKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5saXN0VG9rZW5zLHQscil9fSx7a2V5OiJ0aW1lVW50aWxOZXh0Vm90ZUN5Y2xlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIWUpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnRpbWVVbnRpbE5leHRWb3RlQ3ljbGUpO3RoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0bmV4dG1haW50ZW5hbmNldGltZSIpLnRoZW4oKGZ1bmN0aW9uKHQpe3ZhciByPXQubnVtLG49dm9pZCAwPT09cj8tMTpyO2lmKC0xPT1uKXJldHVybiBlKCJGYWlsZWQgdG8gZ2V0IHRpbWUgdW50aWwgbmV4dCB2b3RlIGN5Y2xlIik7ZShudWxsLE1hdGguZmxvb3Iobi8xZTMpKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9KSl9fSx7a2V5OiJnZXRDb250cmFjdCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIHI/dGhpcy50cm9uV2ViLmlzQWRkcmVzcyhlKT92b2lkKHRoaXMuY2FjaGUuY29udHJhY3RzW2VdP3IobnVsbCx0aGlzLmNhY2hlLmNvbnRyYWN0c1tlXSk6KGU9dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoZSksdGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRjb250cmFjdCIse3ZhbHVlOmV9KS50aGVuKChmdW5jdGlvbihuKXtpZihuLkVycm9yKXJldHVybiByKCJDb250cmFjdCBkb2VzIG5vdCBleGlzdCIpO3QuY2FjaGUuY29udHJhY3RzW2VdPW4scihudWxsLG4pfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gcihlKX0pKSkpOnIoIkludmFsaWQgY29udHJhY3QgYWRkcmVzcyBwcm92aWRlZCIpOnRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldENvbnRyYWN0LGUpfX0se2tleToiZWNSZWNvdmVyIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gZS5lY1JlY292ZXIodCl9fSx7a2V5OiJ2ZXJpZnlNZXNzYWdlIix2YWx1ZToodz1wKEMoKS5tYXJrKChmdW5jdGlvbiB0KCl7dmFyIHIsbixvLGksYSxzPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOmlmKHI9cy5sZW5ndGg+MCYmdm9pZCAwIT09c1swXSYmc1swXSxuPXMubGVuZ3RoPjEmJnZvaWQgMCE9PXNbMV0mJnNbMV0sbz1zLmxlbmd0aD4yJiZ2b2lkIDAhPT1zWzJdP3NbMl06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmJhc2U1OCxpPSEocy5sZW5ndGg+MyYmdm9pZCAwIT09c1szXSl8fHNbM10sYT1zLmxlbmd0aD40JiZ2b2lkIDAhPT1zWzRdJiZzWzRdLGJiLmlzRnVuY3Rpb24obykmJihhPW8sbz10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuYmFzZTU4LGk9ITApLGJiLmlzRnVuY3Rpb24oaSkmJihhPWksaT0hMCksYSl7dC5uZXh0PTk7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnZlcmlmeU1lc3NhZ2UscixuLG8saSkpO2Nhc2UgOTppZihiYi5pc0hleChyKSl7dC5uZXh0PTExO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIixhKCJFeHBlY3RlZCBoZXggbWVzc2FnZSBpbnB1dCIpKTtjYXNlIDExOmlmKCFlLnZlcmlmeVNpZ25hdHVyZShyLG8sbixpKSl7dC5uZXh0PTEzO2JyZWFrfXJldHVybiB0LmFicnVwdCgicmV0dXJuIixhKG51bGwsITApKTtjYXNlIDEzOmEoIlNpZ25hdHVyZSBkb2VzIG5vdCBtYXRjaCIpO2Nhc2UgMTQ6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19KSx0LHRoaXMpfSkpKSxmdW5jdGlvbigpe3JldHVybiB3LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJ2ZXJpZnlNZXNzYWdlVjIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30sbz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO2lmKGJiLmlzRnVuY3Rpb24obikmJihvPW4sbj17fSksIW8pcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnZlcmlmeU1lc3NhZ2VWMix0LHIsbik7dHJ5e28obnVsbCxlLnZlcmlmeU1lc3NhZ2VWMih0LHIpKX1jYXRjaChlKXtvKGUpfX19LHtrZXk6InZlcmlmeVR5cGVkRGF0YSIsdmFsdWU6ZnVuY3Rpb24odCxyLG4sbyl7dmFyIGk9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5iYXNlNTgsYT1hcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSYmYXJndW1lbnRzWzVdO3JldHVybiBiYi5pc0Z1bmN0aW9uKGkpJiYoYT1pLGk9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmJhc2U1OCksYT9lLnZlcmlmeVR5cGVkRGF0YSh0LHIsbixvLGkpP2EobnVsbCwhMCk6dm9pZCBhKCJTaWduYXR1cmUgZG9lcyBub3QgbWF0Y2giKTp0aGlzLmluamVjdFByb21pc2UodGhpcy52ZXJpZnlUeXBlZERhdGEsdCxyLG4sbyxpKX19LHtrZXk6InNpZ24iLHZhbHVlOihUPXAoQygpLm1hcmsoKGZ1bmN0aW9uIHQoKXt2YXIgcixuLG8saSxhLHMsdT1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDppZihyPXUubGVuZ3RoPjAmJnZvaWQgMCE9PXVbMF0mJnVbMF0sbj11Lmxlbmd0aD4xJiZ2b2lkIDAhPT11WzFdP3VbMV06dGhpcy50cm9uV2ViLmRlZmF1bHRQcml2YXRlS2V5LG89ISh1Lmxlbmd0aD4yJiZ2b2lkIDAhPT11WzJdKXx8dVsyXSxpPXUubGVuZ3RoPjMmJnZvaWQgMCE9PXVbM10mJnVbM10sYT11Lmxlbmd0aD40JiZ2b2lkIDAhPT11WzRdJiZ1WzRdLGJiLmlzRnVuY3Rpb24oaSkmJihhPWksaT0hMSksYmIuaXNGdW5jdGlvbihvKSYmKGE9byxvPSEwLGk9ITEpLGJiLmlzRnVuY3Rpb24obikmJihhPW4sbj10aGlzLnRyb25XZWIuZGVmYXVsdFByaXZhdGVLZXksbz0hMCxpPSExKSxhKXt0Lm5leHQ9MTA7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnNpZ24scixuLG8saSkpO2Nhc2UgMTA6aWYoIWJiLmlzU3RyaW5nKHIpKXt0Lm5leHQ9MjE7YnJlYWt9aWYoYmIuaXNIZXgocikpe3QubmV4dD0xMzticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsYSgiRXhwZWN0ZWQgaGV4IG1lc3NhZ2UgaW5wdXQiKSk7Y2FzZSAxMzpyZXR1cm4gdC5wcmV2PTEzLHM9ZS5zaWduU3RyaW5nKHIsbixvKSx0LmFicnVwdCgicmV0dXJuIixhKG51bGwscykpO2Nhc2UgMTg6dC5wcmV2PTE4LHQudDA9dC5jYXRjaCgxMyksYSh0LnQwKTtjYXNlIDIxOmlmKGJiLmlzT2JqZWN0KHIpKXt0Lm5leHQ9MjM7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLGEoIkludmFsaWQgdHJhbnNhY3Rpb24gcHJvdmlkZWQiKSk7Y2FzZSAyMzppZihpfHwhci5zaWduYXR1cmUpe3QubmV4dD0yNTticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsYSgiVHJhbnNhY3Rpb24gaXMgYWxyZWFkeSBzaWduZWQiKSk7Y2FzZSAyNTppZih0LnByZXY9MjUsaSl7dC5uZXh0PTMyO2JyZWFrfWlmKHRoaXMudHJvbldlYi5hZGRyZXNzLnRvSGV4KHRoaXMudHJvbldlYi5hZGRyZXNzLmZyb21Qcml2YXRlS2V5KG4pKS50b0xvd2VyQ2FzZSgpPT09dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoci5yYXdfZGF0YS5jb250cmFjdFswXS5wYXJhbWV0ZXIudmFsdWUub3duZXJfYWRkcmVzcykpe3QubmV4dD0zMDticmVha31yZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsYSgiUHJpdmF0ZSBrZXkgZG9lcyBub3QgbWF0Y2ggYWRkcmVzcyBpbiB0cmFuc2FjdGlvbiIpKTtjYXNlIDMwOmlmKCR5KHIpKXt0Lm5leHQ9MzI7YnJlYWt9cmV0dXJuIHQuYWJydXB0KCJyZXR1cm4iLGEoIkludmFsaWQgdHJhbnNhY3Rpb24iKSk7Y2FzZSAzMjpyZXR1cm4gdC5hYnJ1cHQoInJldHVybiIsYShudWxsLGJiLmNyeXB0by5zaWduVHJhbnNhY3Rpb24obixyKSkpO2Nhc2UgMzU6dC5wcmV2PTM1LHQudDE9dC5jYXRjaCgyNSksYSh0LnQxKTtjYXNlIDM4OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSksdCx0aGlzLFtbMTMsMThdLFsyNSwzNV1dKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gVC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToic2lnbk1lc3NhZ2VWMiIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107aWYoYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPXt9KSxiYi5pc0Z1bmN0aW9uKHIpJiYobz1yLHI9dGhpcy50cm9uV2ViLmRlZmF1bHRQcml2YXRlS2V5KSwhbylyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuc2lnbk1lc3NhZ2VWMix0LHIpO3RyeXtyZXR1cm4gbyhudWxsLGUuc2lnbk1lc3NhZ2VWMih0LHIpKX1jYXRjaChlKXtvKGUpfX19LHtrZXk6Il9zaWduVHlwZWREYXRhIix2YWx1ZTpmdW5jdGlvbih0LHIsbil7dmFyIG89YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSxpPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF07aWYoYmIuaXNGdW5jdGlvbihvKSYmKGk9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSksIWkpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLl9zaWduVHlwZWREYXRhLHQscixuLG8pO3RyeXtyZXR1cm4gaShudWxsLGUuX3NpZ25UeXBlZERhdGEodCxyLG4sbykpfWNhdGNoKGUpe2koZSl9fX0se2tleToibXVsdGlTaWduIix2YWx1ZToobT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHMsdT1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZih0PXUubGVuZ3RoPjAmJnZvaWQgMCE9PXVbMF0mJnVbMF0scj11Lmxlbmd0aD4xJiZ2b2lkIDAhPT11WzFdP3VbMV06dGhpcy50cm9uV2ViLmRlZmF1bHRQcml2YXRlS2V5LG49dS5sZW5ndGg+MiYmdm9pZCAwIT09dVsyXSYmdVsyXSxvPXUubGVuZ3RoPjMmJnZvaWQgMCE9PXVbM10mJnVbM10sYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPTApLGJiLmlzRnVuY3Rpb24ocikmJihvPXIscj10aGlzLnRyb25XZWIuZGVmYXVsdFByaXZhdGVLZXksbj0wKSxvKXtlLm5leHQ9ODticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMubXVsdGlTaWduLHQscixuKSk7Y2FzZSA4OmlmKGJiLmlzT2JqZWN0KHQpJiZ0LnJhd19kYXRhJiZ0LnJhd19kYXRhLmNvbnRyYWN0KXtlLm5leHQ9MTA7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG8oIkludmFsaWQgdHJhbnNhY3Rpb24gcHJvdmlkZWQiKSk7Y2FzZSAxMDppZih0LnJhd19kYXRhLmNvbnRyYWN0WzBdLlBlcm1pc3Npb25faWR8fCEobj4wKSl7ZS5uZXh0PTMwO2JyZWFrfXJldHVybiB0LnJhd19kYXRhLmNvbnRyYWN0WzBdLlBlcm1pc3Npb25faWQ9bixpPXRoaXMudHJvbldlYi5hZGRyZXNzLnRvSGV4KHRoaXMudHJvbldlYi5hZGRyZXNzLmZyb21Qcml2YXRlS2V5KHIpKS50b0xvd2VyQ2FzZSgpLGUubmV4dD0xNSx0aGlzLmdldFNpZ25XZWlnaHQodCxuKTtjYXNlIDE1OmlmKCJQRVJNSVNTSU9OX0VSUk9SIiE9PShhPWUuc2VudCkucmVzdWx0LmNvZGUpe2UubmV4dD0xODticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbyhhLnJlc3VsdC5tZXNzYWdlKSk7Y2FzZSAxODppZihzPSExLGEucGVybWlzc2lvbi5rZXlzLm1hcCgoZnVuY3Rpb24oZSl7ZS5hZGRyZXNzPT09aSYmKHM9ITApfSkpLHMpe2UubmV4dD0yMjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbyhyKyIgaGFzIG5vIHBlcm1pc3Npb24gdG8gc2lnbiIpKTtjYXNlIDIyOmlmKCFhLmFwcHJvdmVkX2xpc3R8fC0xPT1hLmFwcHJvdmVkX2xpc3QuaW5kZXhPZihpKSl7ZS5uZXh0PTI0O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKHIrIiBhbHJlYWR5IHNpZ24gdHJhbnNhY3Rpb24iKSk7Y2FzZSAyNDppZighYS50cmFuc2FjdGlvbnx8IWEudHJhbnNhY3Rpb24udHJhbnNhY3Rpb24pe2UubmV4dD0yOTticmVha310PWEudHJhbnNhY3Rpb24udHJhbnNhY3Rpb24sbj4wJiYodC5yYXdfZGF0YS5jb250cmFjdFswXS5QZXJtaXNzaW9uX2lkPW4pLGUubmV4dD0zMDticmVhaztjYXNlIDI5OnJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKCJJbnZhbGlkIHRyYW5zYWN0aW9uIHByb3ZpZGVkIikpO2Nhc2UgMzA6aWYoZS5wcmV2PTMwLCR5KHQpKXtlLm5leHQ9MzM7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG8oIkludmFsaWQgdHJhbnNhY3Rpb24iKSk7Y2FzZSAzMzpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbyhudWxsLGJiLmNyeXB0by5zaWduVHJhbnNhY3Rpb24ocix0KSkpO2Nhc2UgMzY6ZS5wcmV2PTM2LGUudDA9ZS5jYXRjaCgzMCksbyhlLnQwKTtjYXNlIDM5OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzLFtbMzAsMzZdXSl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIG0uYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImdldEFwcHJvdmVkTGlzdCIsdmFsdWU6KGI9cChDKCkubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcixuPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKHI9bi5sZW5ndGg+MSYmdm9pZCAwIT09blsxXSYmblsxXSl7ZS5uZXh0PTM7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldEFwcHJvdmVkTGlzdCx0KSk7Y2FzZSAzOmlmKGJiLmlzT2JqZWN0KHQpKXtlLm5leHQ9NTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIscigiSW52YWxpZCB0cmFuc2FjdGlvbiBwcm92aWRlZCIpKTtjYXNlIDU6dGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRhcHByb3ZlZGxpc3QiLHQsInBvc3QiKS50aGVuKChmdW5jdGlvbihlKXtyKG51bGwsZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUpe3JldHVybiBiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJnZXRTaWduV2VpZ2h0Iix2YWx1ZTooeT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKHQscil7dmFyIG4sbz1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuPW8ubGVuZ3RoPjImJnZvaWQgMCE9PW9bMl0mJm9bMl0sYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPXZvaWQgMCksbil7ZS5uZXh0PTQ7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldFNpZ25XZWlnaHQsdCxyKSk7Y2FzZSA0OmlmKGJiLmlzT2JqZWN0KHQpJiZ0LnJhd19kYXRhJiZ0LnJhd19kYXRhLmNvbnRyYWN0KXtlLm5leHQ9NjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbigiSW52YWxpZCB0cmFuc2FjdGlvbiBwcm92aWRlZCIpKTtjYXNlIDY6aWYoYmIuaXNJbnRlZ2VyKHIpP3QucmF3X2RhdGEuY29udHJhY3RbMF0uUGVybWlzc2lvbl9pZD1wYXJzZUludChyKToibnVtYmVyIiE9dHlwZW9mIHQucmF3X2RhdGEuY29udHJhY3RbMF0uUGVybWlzc2lvbl9pZCYmKHQucmF3X2RhdGEuY29udHJhY3RbMF0uUGVybWlzc2lvbl9pZD0wKSxiYi5pc09iamVjdCh0KSl7ZS5uZXh0PTk7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG4oIkludmFsaWQgdHJhbnNhY3Rpb24gcHJvdmlkZWQiKSk7Y2FzZSA5OnRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0c2lnbndlaWdodCIsdCwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe24obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl9KSk7Y2FzZSAxMDpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6InNlbmRSYXdUcmFuc2FjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtyZXR1cm4gYmIuaXNGdW5jdGlvbih0KSYmKHI9dCx0PXt9KSxyP2JiLmlzT2JqZWN0KGUpP2JiLmlzT2JqZWN0KHQpP2Uuc2lnbmF0dXJlJiZiYi5pc0FycmF5KGUuc2lnbmF0dXJlKT92b2lkIHRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvYnJvYWRjYXN0dHJhbnNhY3Rpb24iLGUsInBvc3QiKS50aGVuKChmdW5jdGlvbih0KXt0LnJlc3VsdCYmKHQudHJhbnNhY3Rpb249ZSkscihudWxsLHQpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gcihlKX0pKTpyKCJUcmFuc2FjdGlvbiBpcyBub3Qgc2lnbmVkIik6cigiSW52YWxpZCBvcHRpb25zIHByb3ZpZGVkIik6cigiSW52YWxpZCB0cmFuc2FjdGlvbiBwcm92aWRlZCIpOnRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnNlbmRSYXdUcmFuc2FjdGlvbixlLHQpfX0se2tleToic2VuZEhleFRyYW5zYWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD17fSksIXIpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLnNlbmRIZXhUcmFuc2FjdGlvbixlLHQpO2lmKCFiYi5pc0hleChlKSlyZXR1cm4gcigiSW52YWxpZCBoZXggdHJhbnNhY3Rpb24gcHJvdmlkZWQiKTtpZighYmIuaXNPYmplY3QodCkpcmV0dXJuIHIoIkludmFsaWQgb3B0aW9ucyBwcm92aWRlZCIpO3ZhciBuPXt0cmFuc2FjdGlvbjplfTt0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2Jyb2FkY2FzdGhleCIsbiwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKHQpe3QucmVzdWx0JiYodC50cmFuc2FjdGlvbj1KU09OLnBhcnNlKHQudHJhbnNhY3Rpb24pLHQuaGV4VHJhbnNhY3Rpb249ZSkscihudWxsLHQpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gcihlKX0pKX19LHtrZXk6InNlbmRUcmFuc2FjdGlvbiIsdmFsdWU6KGg9cChDKCkubWFyaygoZnVuY3Rpb24gZSgpe3ZhciB0LHIsbixvLGksYSxzLHUsYz1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZih0PWMubGVuZ3RoPjAmJnZvaWQgMCE9PWNbMF0mJmNbMF0scj1jLmxlbmd0aD4xJiZ2b2lkIDAhPT1jWzFdJiZjWzFdLG49Yy5sZW5ndGg+MiYmdm9pZCAwIT09Y1syXT9jWzJdOnt9LG89Yy5sZW5ndGg+MyYmdm9pZCAwIT09Y1szXSYmY1szXSxiYi5pc0Z1bmN0aW9uKG4pJiYobz1uLG49e30pLCJzdHJpbmciPT10eXBlb2YgbiYmKG49e3ByaXZhdGVLZXk6bn0pLG8pe2UubmV4dD04O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIix0aGlzLmluamVjdFByb21pc2UodGhpcy5zZW5kVHJhbnNhY3Rpb24sdCxyLG4pKTtjYXNlIDg6aWYodGhpcy50cm9uV2ViLmlzQWRkcmVzcyh0KSl7ZS5uZXh0PTEwO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKCJJbnZhbGlkIHJlY2lwaWVudCBwcm92aWRlZCIpKTtjYXNlIDEwOmlmKGJiLmlzSW50ZWdlcihyKSYmIShyPD0wKSl7ZS5uZXh0PTEyO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKCJJbnZhbGlkIGFtb3VudCBwcm92aWRlZCIpKTtjYXNlIDEyOmlmKChuPXpiKHtwcml2YXRlS2V5OnRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSxhZGRyZXNzOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXh9LG4pKS5wcml2YXRlS2V5fHxuLmFkZHJlc3Mpe2UubmV4dD0xNTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbygiRnVuY3Rpb24gcmVxdWlyZXMgZWl0aGVyIGEgcHJpdmF0ZSBrZXkgb3IgYWRkcmVzcyB0byBiZSBzZXQiKSk7Y2FzZSAxNTpyZXR1cm4gZS5wcmV2PTE1LGk9bi5wcml2YXRlS2V5P3RoaXMudHJvbldlYi5hZGRyZXNzLmZyb21Qcml2YXRlS2V5KG4ucHJpdmF0ZUtleSk6bi5hZGRyZXNzLGUubmV4dD0xOSx0aGlzLnRyb25XZWIudHJhbnNhY3Rpb25CdWlsZGVyLnNlbmRUcngodCxyLGkpO2Nhc2UgMTk6cmV0dXJuIGE9ZS5zZW50LGUubmV4dD0yMix0aGlzLnNpZ24oYSxuLnByaXZhdGVLZXl8fHZvaWQgMCk7Y2FzZSAyMjpyZXR1cm4gcz1lLnNlbnQsZS5uZXh0PTI1LHRoaXMuc2VuZFJhd1RyYW5zYWN0aW9uKHMpO2Nhc2UgMjU6cmV0dXJuIHU9ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLG8obnVsbCx1KSk7Y2FzZSAyOTpyZXR1cm4gZS5wcmV2PTI5LGUudDA9ZS5jYXRjaCgxNSksZS5hYnJ1cHQoInJldHVybiIsbyhlLnQwKSk7Y2FzZSAzMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyxbWzE1LDI5XV0pfSkpKSxmdW5jdGlvbigpe3JldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJzZW5kVG9rZW4iLHZhbHVlOihmPXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUoKXt2YXIgdCxyLG4sbyxpLGEscyx1LGMsbD1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZih0PWwubGVuZ3RoPjAmJnZvaWQgMCE9PWxbMF0mJmxbMF0scj1sLmxlbmd0aD4xJiZ2b2lkIDAhPT1sWzFdJiZsWzFdLG49bC5sZW5ndGg+MiYmdm9pZCAwIT09bFsyXSYmbFsyXSxvPWwubGVuZ3RoPjMmJnZvaWQgMCE9PWxbM10/bFszXTp7fSxpPWwubGVuZ3RoPjQmJnZvaWQgMCE9PWxbNF0mJmxbNF0sYmIuaXNGdW5jdGlvbihvKSYmKGk9byxvPXt9KSwic3RyaW5nIj09dHlwZW9mIG8mJihvPXtwcml2YXRlS2V5Om99KSxpKXtlLm5leHQ9OTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuc2VuZFRva2VuLHQscixuLG8pKTtjYXNlIDk6aWYodGhpcy50cm9uV2ViLmlzQWRkcmVzcyh0KSl7ZS5uZXh0PTExO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKCJJbnZhbGlkIHJlY2lwaWVudCBwcm92aWRlZCIpKTtjYXNlIDExOmlmKGJiLmlzSW50ZWdlcihyKSYmIShyPD0wKSl7ZS5uZXh0PTEzO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKCJJbnZhbGlkIGFtb3VudCBwcm92aWRlZCIpKTtjYXNlIDEzOmlmKGJiLmlzSW50ZWdlcihuKSYmKG49bi50b1N0cmluZygpKSxiYi5pc1N0cmluZyhuKSl7ZS5uZXh0PTE2O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKCJJbnZhbGlkIHRva2VuIElEIHByb3ZpZGVkIikpO2Nhc2UgMTY6aWYoKG89emIoe3ByaXZhdGVLZXk6dGhpcy50cm9uV2ViLmRlZmF1bHRQcml2YXRlS2V5LGFkZHJlc3M6dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleH0sbykpLnByaXZhdGVLZXl8fG8uYWRkcmVzcyl7ZS5uZXh0PTE5O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKCJGdW5jdGlvbiByZXF1aXJlcyBlaXRoZXIgYSBwcml2YXRlIGtleSBvciBhZGRyZXNzIHRvIGJlIHNldCIpKTtjYXNlIDE5OnJldHVybiBlLnByZXY9MTksYT1vLnByaXZhdGVLZXk/dGhpcy50cm9uV2ViLmFkZHJlc3MuZnJvbVByaXZhdGVLZXkoby5wcml2YXRlS2V5KTpvLmFkZHJlc3MsZS5uZXh0PTIzLHRoaXMudHJvbldlYi50cmFuc2FjdGlvbkJ1aWxkZXIuc2VuZFRva2VuKHQscixuLGEpO2Nhc2UgMjM6cmV0dXJuIHM9ZS5zZW50LGUubmV4dD0yNix0aGlzLnNpZ24ocyxvLnByaXZhdGVLZXl8fHZvaWQgMCk7Y2FzZSAyNjpyZXR1cm4gdT1lLnNlbnQsZS5uZXh0PTI5LHRoaXMuc2VuZFJhd1RyYW5zYWN0aW9uKHUpO2Nhc2UgMjk6cmV0dXJuIGM9ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLGkobnVsbCxjKSk7Y2FzZSAzMzpyZXR1cm4gZS5wcmV2PTMzLGUudDA9ZS5jYXRjaCgxOSksZS5hYnJ1cHQoInJldHVybiIsaShlLnQwKSk7Y2FzZSAzNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyxbWzE5LDMzXV0pfSkpKSxmdW5jdGlvbigpe3JldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJmcmVlemVCYWxhbmNlIix2YWx1ZTooZD1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHMsdSxjLGwsZD1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZih0PWQubGVuZ3RoPjAmJnZvaWQgMCE9PWRbMF0/ZFswXTowLHI9ZC5sZW5ndGg+MSYmdm9pZCAwIT09ZFsxXT9kWzFdOjMsbj1kLmxlbmd0aD4yJiZ2b2lkIDAhPT1kWzJdP2RbMl06IkJBTkRXSURUSCIsbz1kLmxlbmd0aD4zJiZ2b2lkIDAhPT1kWzNdP2RbM106e30saT1kLmxlbmd0aD40JiZ2b2lkIDAhPT1kWzRdP2RbNF06dm9pZCAwLGE9ZC5sZW5ndGg+NSYmdm9pZCAwIT09ZFs1XSYmZFs1XSxiYi5pc0Z1bmN0aW9uKGkpJiYoYT1pLGk9dm9pZCAwKSxiYi5pc0Z1bmN0aW9uKHIpJiYoYT1yLHI9MyksYmIuaXNGdW5jdGlvbihuKSYmKGE9bixuPSJCQU5EV0lEVEgiKSxiYi5pc0Z1bmN0aW9uKG8pJiYoYT1vLG89e30pLCJzdHJpbmciPT10eXBlb2YgbyYmKG89e3ByaXZhdGVLZXk6b30pLGEpe2UubmV4dD0xMzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZnJlZXplQmFsYW5jZSx0LHIsbixvLGkpKTtjYXNlIDEzOmlmKFsiQkFORFdJRFRIIiwiRU5FUkdZIl0uaW5jbHVkZXMobikpe2UubmV4dD0xNTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsYSgnSW52YWxpZCByZXNvdXJjZSBwcm92aWRlZDogRXhwZWN0ZWQgIkJBTkRXSURUSCIgb3IgIkVORVJHWSInKSk7Y2FzZSAxNTppZihiYi5pc0ludGVnZXIodCkmJiEodDw9MCkpe2UubmV4dD0xNzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsYSgiSW52YWxpZCBhbW91bnQgcHJvdmlkZWQiKSk7Y2FzZSAxNzppZihiYi5pc0ludGVnZXIocikmJiEocjwzKSl7ZS5uZXh0PTE5O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixhKCJJbnZhbGlkIGR1cmF0aW9uIHByb3ZpZGVkLCBtaW5pbXVtIG9mIDMgZGF5cyIpKTtjYXNlIDE5OmlmKChvPXpiKHtwcml2YXRlS2V5OnRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSxhZGRyZXNzOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXh9LG8pKS5wcml2YXRlS2V5fHxvLmFkZHJlc3Mpe2UubmV4dD0yMjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsYSgiRnVuY3Rpb24gcmVxdWlyZXMgZWl0aGVyIGEgcHJpdmF0ZSBrZXkgb3IgYWRkcmVzcyB0byBiZSBzZXQiKSk7Y2FzZSAyMjpyZXR1cm4gZS5wcmV2PTIyLHM9by5wcml2YXRlS2V5P3RoaXMudHJvbldlYi5hZGRyZXNzLmZyb21Qcml2YXRlS2V5KG8ucHJpdmF0ZUtleSk6by5hZGRyZXNzLGUubmV4dD0yNix0aGlzLnRyb25XZWIudHJhbnNhY3Rpb25CdWlsZGVyLmZyZWV6ZUJhbGFuY2UodCxyLG4scyxpKTtjYXNlIDI2OnJldHVybiB1PWUuc2VudCxlLm5leHQ9MjksdGhpcy5zaWduKHUsby5wcml2YXRlS2V5fHx2b2lkIDApO2Nhc2UgMjk6cmV0dXJuIGM9ZS5zZW50LGUubmV4dD0zMix0aGlzLnNlbmRSYXdUcmFuc2FjdGlvbihjKTtjYXNlIDMyOnJldHVybiBsPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixhKG51bGwsbCkpO2Nhc2UgMzY6cmV0dXJuIGUucHJldj0zNixlLnQwPWUuY2F0Y2goMjIpLGUuYWJydXB0KCJyZXR1cm4iLGEoZS50MCkpO2Nhc2UgMzk6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMsW1syMiwzNl1dKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToidW5mcmVlemVCYWxhbmNlIix2YWx1ZToobD1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHMsdSxjPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKHQ9Yy5sZW5ndGg+MCYmdm9pZCAwIT09Y1swXT9jWzBdOiJCQU5EV0lEVEgiLHI9Yy5sZW5ndGg+MSYmdm9pZCAwIT09Y1sxXT9jWzFdOnt9LG49Yy5sZW5ndGg+MiYmdm9pZCAwIT09Y1syXT9jWzJdOnZvaWQgMCxvPWMubGVuZ3RoPjMmJnZvaWQgMCE9PWNbM10mJmNbM10sYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPXZvaWQgMCksYmIuaXNGdW5jdGlvbih0KSYmKG89dCx0PSJCQU5EV0lEVEgiKSxiYi5pc0Z1bmN0aW9uKHIpJiYobz1yLHI9e30pLCJzdHJpbmciPT10eXBlb2YgciYmKHI9e3ByaXZhdGVLZXk6cn0pLG8pe2UubmV4dD0xMDticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMudW5mcmVlemVCYWxhbmNlLHQscixuKSk7Y2FzZSAxMDppZihbIkJBTkRXSURUSCIsIkVORVJHWSJdLmluY2x1ZGVzKHQpKXtlLm5leHQ9MTI7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG8oJ0ludmFsaWQgcmVzb3VyY2UgcHJvdmlkZWQ6IEV4cGVjdGVkICJCQU5EV0lEVEgiIG9yICJFTkVSR1kiJykpO2Nhc2UgMTI6aWYoKHI9emIoe3ByaXZhdGVLZXk6dGhpcy50cm9uV2ViLmRlZmF1bHRQcml2YXRlS2V5LGFkZHJlc3M6dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleH0scikpLnByaXZhdGVLZXl8fHIuYWRkcmVzcyl7ZS5uZXh0PTE1O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKCJGdW5jdGlvbiByZXF1aXJlcyBlaXRoZXIgYSBwcml2YXRlIGtleSBvciBhZGRyZXNzIHRvIGJlIHNldCIpKTtjYXNlIDE1OnJldHVybiBlLnByZXY9MTUsaT1yLnByaXZhdGVLZXk/dGhpcy50cm9uV2ViLmFkZHJlc3MuZnJvbVByaXZhdGVLZXkoci5wcml2YXRlS2V5KTpyLmFkZHJlc3MsZS5uZXh0PTE5LHRoaXMudHJvbldlYi50cmFuc2FjdGlvbkJ1aWxkZXIudW5mcmVlemVCYWxhbmNlKHQsaSxuKTtjYXNlIDE5OnJldHVybiBhPWUuc2VudCxlLm5leHQ9MjIsdGhpcy5zaWduKGEsci5wcml2YXRlS2V5fHx2b2lkIDApO2Nhc2UgMjI6cmV0dXJuIHM9ZS5zZW50LGUubmV4dD0yNSx0aGlzLnNlbmRSYXdUcmFuc2FjdGlvbihzKTtjYXNlIDI1OnJldHVybiB1PWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixvKG51bGwsdSkpO2Nhc2UgMjk6cmV0dXJuIGUucHJldj0yOSxlLnQwPWUuY2F0Y2goMTUpLGUuYWJydXB0KCJyZXR1cm4iLG8oZS50MCkpO2Nhc2UgMzI6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMsW1sxNSwyOV1dKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gbC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToidXBkYXRlQWNjb3VudCIsdmFsdWU6KGM9cChDKCkubWFyaygoZnVuY3Rpb24gZSgpe3ZhciB0LHIsbixvLGksYSxzLHU9YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYodD11Lmxlbmd0aD4wJiZ2b2lkIDAhPT11WzBdJiZ1WzBdLHI9dS5sZW5ndGg+MSYmdm9pZCAwIT09dVsxXT91WzFdOnt9LG49dS5sZW5ndGg+MiYmdm9pZCAwIT09dVsyXSYmdVsyXSxiYi5pc0Z1bmN0aW9uKHIpJiYobj1yLHI9e30pLCJzdHJpbmciPT10eXBlb2YgciYmKHI9e3ByaXZhdGVLZXk6cn0pLG4pe2UubmV4dD03O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIix0aGlzLmluamVjdFByb21pc2UodGhpcy51cGRhdGVBY2NvdW50LHQscikpO2Nhc2UgNzppZihiYi5pc1N0cmluZyh0KSYmdC5sZW5ndGgpe2UubmV4dD05O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixuKCJOYW1lIG11c3QgYmUgYSBzdHJpbmciKSk7Y2FzZSA5OmlmKChyPXpiKHtwcml2YXRlS2V5OnRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSxhZGRyZXNzOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXh9LHIpKS5wcml2YXRlS2V5fHxyLmFkZHJlc3Mpe2UubmV4dD0xMjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbigiRnVuY3Rpb24gcmVxdWlyZXMgZWl0aGVyIGEgcHJpdmF0ZSBrZXkgb3IgYWRkcmVzcyB0byBiZSBzZXQiKSk7Y2FzZSAxMjpyZXR1cm4gZS5wcmV2PTEyLG89ci5wcml2YXRlS2V5P3RoaXMudHJvbldlYi5hZGRyZXNzLmZyb21Qcml2YXRlS2V5KHIucHJpdmF0ZUtleSk6ci5hZGRyZXNzLGUubmV4dD0xNix0aGlzLnRyb25XZWIudHJhbnNhY3Rpb25CdWlsZGVyLnVwZGF0ZUFjY291bnQodCxvKTtjYXNlIDE2OnJldHVybiBpPWUuc2VudCxlLm5leHQ9MTksdGhpcy5zaWduKGksci5wcml2YXRlS2V5fHx2b2lkIDApO2Nhc2UgMTk6cmV0dXJuIGE9ZS5zZW50LGUubmV4dD0yMix0aGlzLnNlbmRSYXdUcmFuc2FjdGlvbihhKTtjYXNlIDIyOnJldHVybiBzPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixuKG51bGwscykpO2Nhc2UgMjY6cmV0dXJuIGUucHJldj0yNixlLnQwPWUuY2F0Y2goMTIpLGUuYWJydXB0KCJyZXR1cm4iLG4oZS50MCkpO2Nhc2UgMjk6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMsW1sxMiwyNl1dKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gYy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToic2lnbk1lc3NhZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2lnbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx7a2V5OiJzZW5kQXNzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VuZFRva2VuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6InNlbmQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VuZFRyYW5zYWN0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6InNlbmRUcngiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VuZFRyYW5zYWN0aW9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHtrZXk6ImJyb2FkY2FzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZW5kUmF3VHJhbnNhY3Rpb24uYXBwbHkodGhpcyxhcmd1bWVudHMpfX0se2tleToiYnJvYWRjYXN0SGV4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNlbmRIZXhUcmFuc2FjdGlvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx7a2V5OiJzaWduVHJhbnNhY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2lnbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx7a2V5OiJnZXRQcm9wb3NhbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gdD8hYmIuaXNJbnRlZ2VyKGUpfHxlPDA/dCgiSW52YWxpZCBwcm9wb3NhbElEIHByb3ZpZGVkIik6dm9pZCB0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldHByb3Bvc2FsYnlpZCIse2lkOnBhcnNlSW50KGUpfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3QobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9KSk6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0UHJvcG9zYWwsZSl9fSx7a2V5OiJsaXN0UHJvcG9zYWxzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIWUpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmxpc3RQcm9wb3NhbHMpO3RoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvbGlzdHByb3Bvc2FscyIse30sInBvc3QiKS50aGVuKChmdW5jdGlvbih0KXt2YXIgcj10LnByb3Bvc2FscztlKG51bGwsdm9pZCAwPT09cj9bXTpyKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9KSl9fSx7a2V5OiJnZXRDaGFpblBhcmFtZXRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZighZSlyZXR1cm4gdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0Q2hhaW5QYXJhbWV0ZXJzKTt0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGNoYWlucGFyYW1ldGVycyIse30sInBvc3QiKS50aGVuKChmdW5jdGlvbih0KXt2YXIgcj10LmNoYWluUGFyYW1ldGVyO2UobnVsbCx2b2lkIDA9PT1yP1tdOnIpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pKX19LHtrZXk6ImdldEFjY291bnRSZXNvdXJjZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiB0P3RoaXMudHJvbldlYi5pc0FkZHJlc3MoZSk/dm9pZCB0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGFjY291bnRyZXNvdXJjZSIse2FkZHJlc3M6dGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgoZSl9LCJwb3N0IikudGhlbigoZnVuY3Rpb24oZSl7dChudWxsLGUpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gdChlKX0pKTp0KCJJbnZhbGlkIGFkZHJlc3MgcHJvdmlkZWQiKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRBY2NvdW50UmVzb3VyY2VzLGUpfX0se2tleToiZ2V0RGVsZWdhdGVkUmVzb3VyY2VWMiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOntjb25maXJtZWQ6ITB9LG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtyZXR1cm4gYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPXtjb25maXJtZWQ6ITB9KSxiYi5pc0Z1bmN0aW9uKHQpJiYobj10LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksYmIuaXNGdW5jdGlvbihlKSYmKG49ZSxlPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgsdD10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxuP3RoaXMudHJvbldlYi5pc0FkZHJlc3MoZSkmJnRoaXMudHJvbldlYi5pc0FkZHJlc3ModCk/dm9pZCB0aGlzLnRyb25XZWJbci5jb25maXJtZWQ/InNvbGlkaXR5Tm9kZSI6ImZ1bGxOb2RlIl0ucmVxdWVzdCgid2FsbGV0Ii5jb25jYXQoci5jb25maXJtZWQ/InNvbGlkaXR5IjoiIiwiL2dldGRlbGVnYXRlZHJlc291cmNldjIiKSx7ZnJvbUFkZHJlc3M6R2IoZSksdG9BZGRyZXNzOkdiKHQpfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe24obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl9KSk6bigiSW52YWxpZCBhZGRyZXNzIHByb3ZpZGVkIik6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0RGVsZWdhdGVkUmVzb3VyY2VWMixlLHQscil9fSx7a2V5OiJnZXREZWxlZ2F0ZWRSZXNvdXJjZUFjY291bnRJbmRleFYyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4LHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOntjb25maXJtZWQ6ITB9LHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXTtyZXR1cm4gYmIuaXNGdW5jdGlvbih0KSYmKHI9dCx0PXtjb25maXJtZWQ6ITB9KSxiYi5pc0Z1bmN0aW9uKGUpJiYocj1lLGU9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCkscj90aGlzLnRyb25XZWIuaXNBZGRyZXNzKGUpP3ZvaWQgdGhpcy50cm9uV2ViW3QuY29uZmlybWVkPyJzb2xpZGl0eU5vZGUiOiJmdWxsTm9kZSJdLnJlcXVlc3QoIndhbGxldCIuY29uY2F0KHQuY29uZmlybWVkPyJzb2xpZGl0eSI6IiIsIi9nZXRkZWxlZ2F0ZWRyZXNvdXJjZWFjY291bnRpbmRleHYyIikse3ZhbHVlOkdiKGUpfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3IobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSl9KSk6cigiSW52YWxpZCBhZGRyZXNzIHByb3ZpZGVkIik6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0RGVsZWdhdGVkUmVzb3VyY2VBY2NvdW50SW5kZXhWMixlLHQpfX0se2tleToiZ2V0Q2FuRGVsZWdhdGVkTWF4U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiQkFORFdJRFRIIixyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7Y29uZmlybWVkOiEwfSxuPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107cmV0dXJuIGJiLmlzRnVuY3Rpb24ocikmJihuPXIscj17Y29uZmlybWVkOiEwfSksYmIuaXNGdW5jdGlvbih0KSYmKG49dCx0PSJCQU5EV0lEVEgiKSxiYi5pc0Z1bmN0aW9uKGUpJiYobj1lLGU9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksbj90aGlzLnRyb25XZWIuaXNBZGRyZXNzKGUpP3ZvaWQodGhpcy52YWxpZGF0b3Iubm90VmFsaWQoW3tuYW1lOiJyZXNvdXJjZSIsdHlwZToicmVzb3VyY2UiLHZhbHVlOnQsbXNnOidJbnZhbGlkIHJlc291cmNlIHByb3ZpZGVkOiBFeHBlY3RlZCAiQkFORFdJRFRIIiBvciAiRU5FUkdZIid9XSxuKXx8dGhpcy50cm9uV2ViW3IuY29uZmlybWVkPyJzb2xpZGl0eU5vZGUiOiJmdWxsTm9kZSJdLnJlcXVlc3QoIndhbGxldCIuY29uY2F0KHIuY29uZmlybWVkPyJzb2xpZGl0eSI6IiIsIi9nZXRjYW5kZWxlZ2F0ZWRtYXhzaXplIikse293bmVyX2FkZHJlc3M6R2IoZSksdHlwZToiRU5FUkdZIj09PXQ/MTowfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe24obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl9KSkpOm4oIkludmFsaWQgYWRkcmVzcyBwcm92aWRlZCIpOnRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldENhbkRlbGVnYXRlZE1heFNpemUsZSx0LHIpfX0se2tleToiZ2V0QXZhaWxhYmxlVW5mcmVlemVDb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7Y29uZmlybWVkOiEwfSxyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07cmV0dXJuIGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD17Y29uZmlybWVkOiEwfSksYmIuaXNGdW5jdGlvbihlKSYmKHI9ZSxlPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLHI/dGhpcy50cm9uV2ViLmlzQWRkcmVzcyhlKT92b2lkIHRoaXMudHJvbldlYlt0LmNvbmZpcm1lZD8ic29saWRpdHlOb2RlIjoiZnVsbE5vZGUiXS5yZXF1ZXN0KCJ3YWxsZXQiLmNvbmNhdCh0LmNvbmZpcm1lZD8ic29saWRpdHkiOiIiLCIvZ2V0YXZhaWxhYmxldW5mcmVlemVjb3VudCIpLHtvd25lcl9hZGRyZXNzOkdiKGUpfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3IobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSl9KSk6cigiSW52YWxpZCBhZGRyZXNzIHByb3ZpZGVkIik6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0QXZhaWxhYmxlVW5mcmVlemVDb3VudCxlLHQpfX0se2tleToiZ2V0Q2FuV2l0aGRyYXdVbmZyZWV6ZUFtb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpEYXRlLm5vdygpLHI9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOntjb25maXJtZWQ6ITB9LG49YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtyZXR1cm4gYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPXtjb25maXJtZWQ6ITB9KSxiYi5pc0Z1bmN0aW9uKHQpJiYobj10LHQ9RGF0ZS5ub3coKSksYmIuaXNGdW5jdGlvbihlKSYmKG49ZSxlPXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpLG4/dGhpcy50cm9uV2ViLmlzQWRkcmVzcyhlKT8hYmIuaXNJbnRlZ2VyKHQpfHx0PDA/bigiSW52YWxpZCB0aW1lc3RhbXAgcHJvdmlkZWQiKTp2b2lkIHRoaXMudHJvbldlYltyLmNvbmZpcm1lZD8ic29saWRpdHlOb2RlIjoiZnVsbE5vZGUiXS5yZXF1ZXN0KCJ3YWxsZXQiLmNvbmNhdChyLmNvbmZpcm1lZD8ic29saWRpdHkiOiIiLCIvZ2V0Y2Fud2l0aGRyYXd1bmZyZWV6ZWFtb3VudCIpLHtvd25lcl9hZGRyZXNzOkdiKGUpLHRpbWVzdGFtcDp0fSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe24obnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl9KSk6bigiSW52YWxpZCBhZGRyZXNzIHByb3ZpZGVkIik6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0Q2FuV2l0aGRyYXdVbmZyZWV6ZUFtb3VudCxlLHQscil9fSx7a2V5OiJnZXRFeGNoYW5nZUJ5SUQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIHQ/IWJiLmlzSW50ZWdlcihlKXx8ZTwwP3QoIkludmFsaWQgZXhjaGFuZ2VJRCBwcm92aWRlZCIpOnZvaWQgdGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRleGNoYW5nZWJ5aWQiLHtpZDplfSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3QobnVsbCxlKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSl9KSk6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0RXhjaGFuZ2VCeUlELGUpfX0se2tleToibGlzdEV4Y2hhbmdlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKCFlKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5saXN0RXhjaGFuZ2VzKTt0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2xpc3RleGNoYW5nZXMiLHt9LCJwb3N0IikudGhlbigoZnVuY3Rpb24odCl7dmFyIHI9dC5leGNoYW5nZXM7ZShudWxsLHZvaWQgMD09PXI/W106cil9KSwicG9zdCIpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gZSh0KX0pKX19LHtrZXk6Imxpc3RFeGNoYW5nZXNQYWdpbmF0ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEwLHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAscj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2lmKGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD0wKSxiYi5pc0Z1bmN0aW9uKGUpJiYocj1lLGU9MTApLCFyKXJldHVybiB0aGlzLmluamVjdFByb21pc2UodGhpcy5saXN0RXhjaGFuZ2VzUGFnaW5hdGVkLGUsdCk7dGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRwYWdpbmF0ZWRleGNoYW5nZWxpc3QiLHtsaW1pdDplLG9mZnNldDp0fSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKGUpe3ZhciB0PWUuZXhjaGFuZ2VzO3IobnVsbCx2b2lkIDA9PT10P1tdOnQpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtyZXR1cm4gcihlKX0pKX19LHtrZXk6ImdldE5vZGVJbmZvIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYoIWUpcmV0dXJuIHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLmdldE5vZGVJbmZvKTt0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldG5vZGVpbmZvIix7fSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKHQpe2UobnVsbCx0KX0pLCJwb3N0IikuY2F0Y2goKGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpfSkpfX0se2tleToiZ2V0VG9rZW5MaXN0QnlOYW1lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gcj8oYmIuaXNJbnRlZ2VyKHQpJiYodD10LnRvU3RyaW5nKCkpLGJiLmlzU3RyaW5nKHQpJiZ0Lmxlbmd0aD92b2lkIHRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0YXNzZXRpc3N1ZWxpc3RieW5hbWUiLHt2YWx1ZTp0aGlzLnRyb25XZWIuZnJvbVV0ZjgodCl9LCJwb3N0IikudGhlbigoZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0LmFzc2V0SXNzdWUpKXIobnVsbCx0LmFzc2V0SXNzdWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fcGFyc2VUb2tlbih0KX0pKSk7ZWxzZSBpZighdC5uYW1lKXJldHVybiByKCJUb2tlbiBkb2VzIG5vdCBleGlzdCIpO3IobnVsbCxlLl9wYXJzZVRva2VuKHQpKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSl9KSk6cigiSW52YWxpZCB0b2tlbiBJRCBwcm92aWRlZCIpKTp0aGlzLmluamVjdFByb21pc2UodGhpcy5nZXRUb2tlbkxpc3RCeU5hbWUsdCl9fSx7a2V5OiJnZXRUb2tlbkJ5SUQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0scj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiByPyhiYi5pc0ludGVnZXIodCkmJih0PXQudG9TdHJpbmcoKSksYmIuaXNTdHJpbmcodCkmJnQubGVuZ3RoP3ZvaWQgdGhpcy50cm9uV2ViLmZ1bGxOb2RlLnJlcXVlc3QoIndhbGxldC9nZXRhc3NldGlzc3VlYnlpZCIse3ZhbHVlOnR9LCJwb3N0IikudGhlbigoZnVuY3Rpb24odCl7aWYoIXQubmFtZSlyZXR1cm4gcigiVG9rZW4gZG9lcyBub3QgZXhpc3QiKTtyKG51bGwsZS5fcGFyc2VUb2tlbih0KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpOnIoIkludmFsaWQgdG9rZW4gSUQgcHJvdmlkZWQiKSk6dGhpcy5pbmplY3RQcm9taXNlKHRoaXMuZ2V0VG9rZW5CeUlELHQpfX0se2tleToiZ2V0UmV3YXJkIix2YWx1ZToodT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKHQpe3ZhciByLG4sbz1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1vLmxlbmd0aD4yJiZ2b2lkIDAhPT1vWzJdJiZvWzJdLChyPW8ubGVuZ3RoPjEmJnZvaWQgMCE9PW9bMV0/b1sxXTp7fSkuY29uZmlybWVkPSEwLGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuX2dldFJld2FyZCh0LHIsbikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUpe3JldHVybiB1LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJnZXRVbmNvbmZpcm1lZFJld2FyZCIsdmFsdWU6KHM9cChDKCkubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcixuLG89YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49by5sZW5ndGg+MiYmdm9pZCAwIT09b1syXSYmb1syXSwocj1vLmxlbmd0aD4xJiZ2b2lkIDAhPT1vWzFdP29bMV06e30pLmNvbmZpcm1lZD0hMSxlLmFicnVwdCgicmV0dXJuIix0aGlzLl9nZXRSZXdhcmQodCxyLG4pKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gcy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiZ2V0QnJva2VyYWdlIix2YWx1ZTooYT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKHQpe3ZhciByLG4sbz1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1vLmxlbmd0aD4yJiZ2b2lkIDAhPT1vWzJdJiZvWzJdLChyPW8ubGVuZ3RoPjEmJnZvaWQgMCE9PW9bMV0/b1sxXTp7fSkuY29uZmlybWVkPSEwLGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuX2dldEJyb2tlcmFnZSh0LHIsbikpO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKGUpe3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJnZXRVbmNvbmZpcm1lZEJyb2tlcmFnZSIsdmFsdWU6KGk9cChDKCkubWFyaygoZnVuY3Rpb24gZSh0KXt2YXIgcixuLG89YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49by5sZW5ndGg+MiYmdm9pZCAwIT09b1syXSYmb1syXSwocj1vLmxlbmd0aD4xJiZ2b2lkIDAhPT1vWzFdP29bMV06e30pLmNvbmZpcm1lZD0hMSxlLmFicnVwdCgicmV0dXJuIix0aGlzLl9nZXRCcm9rZXJhZ2UodCxyLG4pKTtjYXNlIDQ6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiX2dldFJld2FyZCIsdmFsdWU6KG89cChDKCkubWFyaygoZnVuY3Rpb24gZSgpe3ZhciB0LHIsbixvLGk9YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYodD1pLmxlbmd0aD4wJiZ2b2lkIDAhPT1pWzBdP2lbMF06dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCxyPWkubGVuZ3RoPjE/aVsxXTp2b2lkIDAsbj1pLmxlbmd0aD4yJiZ2b2lkIDAhPT1pWzJdJiZpWzJdLGJiLmlzRnVuY3Rpb24ocikmJihuPXIscj17fSksYmIuaXNGdW5jdGlvbih0KT8obj10LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCk6YmIuaXNPYmplY3QodCkmJihyPXQsdD10aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4KSxuKXtlLm5leHQ9NzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuX2dldFJld2FyZCx0LHIpKTtjYXNlIDc6aWYoIXRoaXMudmFsaWRhdG9yLm5vdFZhbGlkKFt7bmFtZToib3JpZ2luIix0eXBlOiJhZGRyZXNzIix2YWx1ZTp0fV0sbikpe2UubmV4dD05O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIik7Y2FzZSA5Om89e2FkZHJlc3M6R2IodCl9LHRoaXMudHJvbldlYltyLmNvbmZpcm1lZD8ic29saWRpdHlOb2RlIjoiZnVsbE5vZGUiXS5yZXF1ZXN0KCJ3YWxsZXQiLmNvbmNhdChyLmNvbmZpcm1lZD8ic29saWRpdHkiOiIiLCIvZ2V0UmV3YXJkIiksbywicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKHZvaWQgMD09PWUucmV3YXJkKXJldHVybiBuKCJOb3QgZm91bmQuIik7bihudWxsLGUucmV3YXJkKX0pKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSl9KSk7Y2FzZSAxMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIG8uYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6Il9nZXRCcm9rZXJhZ2UiLHZhbHVlOihuPXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUoKXt2YXIgdCxyLG4sbyxpPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKHQ9aS5sZW5ndGg+MCYmdm9pZCAwIT09aVswXT9pWzBdOnRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgscj1pLmxlbmd0aD4xP2lbMV06dm9pZCAwLG49aS5sZW5ndGg+MiYmdm9pZCAwIT09aVsyXSYmaVsyXSxiYi5pc0Z1bmN0aW9uKHIpJiYobj1yLHI9e30pLGJiLmlzRnVuY3Rpb24odCk/KG49dCx0PXRoaXMudHJvbldlYi5kZWZhdWx0QWRkcmVzcy5oZXgpOmJiLmlzT2JqZWN0KHQpJiYocj10LHQ9dGhpcy50cm9uV2ViLmRlZmF1bHRBZGRyZXNzLmhleCksbil7ZS5uZXh0PTc7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMuaW5qZWN0UHJvbWlzZSh0aGlzLl9nZXRCcm9rZXJhZ2UsdCxyKSk7Y2FzZSA3OmlmKCF0aGlzLnZhbGlkYXRvci5ub3RWYWxpZChbe25hbWU6Im9yaWdpbiIsdHlwZToiYWRkcmVzcyIsdmFsdWU6dH1dLG4pKXtlLm5leHQ9OTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgOTpvPXthZGRyZXNzOkdiKHQpfSx0aGlzLnRyb25XZWJbci5jb25maXJtZWQ/InNvbGlkaXR5Tm9kZSI6ImZ1bGxOb2RlIl0ucmVxdWVzdCgid2FsbGV0Ii5jb25jYXQoci5jb25maXJtZWQ/InNvbGlkaXR5IjoiIiwiL2dldEJyb2tlcmFnZSIpLG8sInBvc3QiKS50aGVuKChmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtpZih2b2lkIDA9PT1lLmJyb2tlcmFnZSlyZXR1cm4gbigiTm90IGZvdW5kLiIpO24obnVsbCxlLmJyb2tlcmFnZSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBuKGUpfSkpO2Nhc2UgMTE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbigpe3JldHVybiBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJnZXRCYW5kd2lkdGhQcmljZXMiLHZhbHVlOihyPXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUoKXtyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIix0aGlzLnRyb25XZWIuZnVsbE5vZGUucmVxdWVzdCgid2FsbGV0L2dldGJhbmR3aWR0aHByaWNlcyIse30sInBvc3QiKS50aGVuKChmdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtpZih2b2lkIDA9PT1lLnByaWNlcyl0aHJvdyBuZXcgRXJyb3IoIk5vdCBmb3VuZC4iKTtyZXR1cm4gZS5wcmljZXN9KSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsdGhpcyl9KSkpLGZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9LHtrZXk6ImdldEVuZXJneVByaWNlcyIsdmFsdWU6KHQ9cChDKCkubWFyaygoZnVuY3Rpb24gZSgpe3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHRoaXMudHJvbldlYi5mdWxsTm9kZS5yZXF1ZXN0KCJ3YWxsZXQvZ2V0ZW5lcmd5cHJpY2VzIix7fSwicG9zdCIpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9O2lmKHZvaWQgMD09PWUucHJpY2VzKXRocm93IG5ldyBFcnJvcigiTm90IGZvdW5kLiIpO3JldHVybiBlLnByaWNlc30pKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX1dLFt7a2V5OiJlY1JlY292ZXIiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0O2lmKCEkeShlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdHJhbnNhY3Rpb24iKTtpZihudWxsPT09KHQ9ZS5zaWduYXR1cmUpfHx2b2lkIDA9PT10fHwhdC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJUcmFuc2FjdGlvbiBpcyBub3Qgc2lnbmVkIik7aWYoMT09PWUuc2lnbmF0dXJlLmxlbmd0aCl7dmFyIHI9eHAoZS50eElELGUuc2lnbmF0dXJlWzBdKTtyZXR1cm4gc3YuYWRkcmVzcy5mcm9tSGV4KHIpfXJldHVybiBlLnNpZ25hdHVyZS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciByPXhwKGUudHhJRCx0KTtyZXR1cm4gc3YuYWRkcmVzcy5mcm9tSGV4KHIpfSkpfX0se2tleToidmVyaWZ5U2lnbmF0dXJlIix2YWx1ZTpmdW5jdGlvbihlLHQscil7dmFyIG49IShhcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSl8fGFyZ3VtZW50c1szXTtlPWUucmVwbGFjZSgvXjB4LywiIik7dmFyIG89W10uY29uY2F0KEN0KFhuKG4/JGI6VmIpKSxDdChiYi5jb2RlLmhleFN0cjJieXRlQXJyYXkoZSkpKSxpPWNhKHdvKG5ldyBVaW50OEFycmF5KG8pKSxxci5mcm9tKCIweCIuY29uY2F0KHIucmVwbGFjZSgvXjB4LywiIikpKSksYT1NdCtpLnN1YnN0cigyKTtyZXR1cm4gc3YuYWRkcmVzcy5mcm9tSGV4KGEpPT1zdi5hZGRyZXNzLmZyb21IZXgodCl9fSx7a2V5OiJ2ZXJpZnlNZXNzYWdlVjIiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGJiLm1lc3NhZ2UudmVyaWZ5TWVzc2FnZShlLHQpfX0se2tleToidmVyaWZ5VHlwZWREYXRhIix2YWx1ZTpmdW5jdGlvbihlLHQscixuLG8pe3ZhciBpPWNhKGJiLl9UeXBlZERhdGFFbmNvZGVyLmhhc2goZSx0LHIpLHFyLmZyb20oIjB4Ii5jb25jYXQobi5yZXBsYWNlKC9eMHgvLCIiKSkpKSxhPU10K2kuc3Vic3RyKDIpO3JldHVybiBzdi5hZGRyZXNzLmZyb21IZXgoYSk9PXN2LmFkZHJlc3MuZnJvbUhleChvKX19LHtrZXk6InNpZ25TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXTtlPWUucmVwbGFjZSgvXjB4LywiIik7dmFyIG49IjB4Ii5jb25jYXQodC5yZXBsYWNlKC9eMHgvLCIiKSksbz1uZXcgc2EobiksaT1bXS5jb25jYXQoQ3QoWG4ocj8kYjpWYikpLEN0KGJiLmNvZGUuaGV4U3RyMmJ5dGVBcnJheShlKSkpLGE9d28obmV3IFVpbnQ4QXJyYXkoaSkpLHM9by5zaWduKGEpO3JldHVyblsiMHgiLHMuci5zdWJzdHJpbmcoMikscy5zLnN1YnN0cmluZygyKSxOdW1iZXIocy52KS50b1N0cmluZygxNildLmpvaW4oIiIpfX0se2tleToic2lnbk1lc3NhZ2VWMiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYmIubWVzc2FnZS5zaWduTWVzc2FnZShlLHQpfX0se2tleToiX3NpZ25UeXBlZERhdGEiLHZhbHVlOmZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBiYi5jcnlwdG8uX3NpZ25UeXBlZERhdGEoZSx0LHIsbil9fV0pLGV9KCk7ZnVuY3Rpb24gS2IoZSx0KXt2YXIgcj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihuPW4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSkpLHIucHVzaC5hcHBseShyLG4pfXJldHVybiByfWZ1bmN0aW9uIFpiKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciByPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP0tiKE9iamVjdChyKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7VyhlLHQsclt0XSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6S2IoT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocix0KSl9KSl9cmV0dXJuIGV9dmFyIHFiPWZ1bmN0aW9uKGUpe2lmKGUuc3RhdGVNdXRhYmlsaXR5PWUuc3RhdGVNdXRhYmlsaXR5P2Uuc3RhdGVNdXRhYmlsaXR5LnRvTG93ZXJDYXNlKCk6Im5vbnBheWFibGUiLGUudHlwZT1lLnR5cGU/ZS50eXBlLnRvTG93ZXJDYXNlKCk6IiIsImZhbGxiYWNrIj09PWUudHlwZXx8InJlY2VpdmUiPT09ZS50eXBlKXJldHVybiIweCI7dmFyIHQ9bmV3IGJiLmV0aGVyc1V0aWxzLkludGVyZmFjZShbZV0pO3JldHVybiJldmVudCI9PT1lLnR5cGU/dC5nZXRFdmVudChlLm5hbWUpLmZvcm1hdChiYi5ldGhlcnNVdGlscy5Gb3JtYXRUeXBlcy5zaWdoYXNoKTp0LmdldEZ1bmN0aW9uKGUubmFtZSkuZm9ybWF0KGJiLmV0aGVyc1V0aWxzLkZvcm1hdFR5cGVzLnNpZ2hhc2gpfSxKYj1mdW5jdGlvbihlLHQpe3JldHVybiBOZyhlLHQpfSxZYj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXtnKHRoaXMsZSksdGhpcy50cm9uV2ViPXQudHJvbldlYix0aGlzLmNvbnRyYWN0PXQsdGhpcy5hYmk9cix0aGlzLm5hbWU9ci5uYW1lfHwoci5uYW1lPXIudHlwZSksdGhpcy5pbnB1dHM9ci5pbnB1dHN8fFtdLHRoaXMub3V0cHV0cz1yLm91dHB1dHN8fFtdLHRoaXMuZnVuY3Rpb25TZWxlY3Rvcj1xYihyKSx0aGlzLnNpZ25hdHVyZT10aGlzLnRyb25XZWIuc2hhMyh0aGlzLmZ1bmN0aW9uU2VsZWN0b3IsITEpLnNsaWNlKDAsOCksdGhpcy5pbmplY3RQcm9taXNlPVdiKCkodGhpcyksdGhpcy5kZWZhdWx0T3B0aW9ucz17ZmVlTGltaXQ6dGhpcy50cm9uV2ViLmZlZUxpbWl0LGNhbGxWYWx1ZTowLHVzZXJGZWVQZXJjZW50YWdlOjEwMCxzaG91bGRQb2xsUmVzcG9uc2U6ITF9fXZhciB0LHIsbjtyZXR1cm4gdihlLFt7a2V5OiJkZWNvZGVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIEpiKHRoaXMuaW5wdXRzLCIweCIrZSl9fSx7a2V5OiJvbk1ldGhvZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9IiI7aWYodGhpcy5hYmkmJiEvZXZlbnQvaS50ZXN0KHRoaXMuYWJpLnR5cGUpKXtmb3IodmFyIHI9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShyKSxvPTA7bzxyO28rKyluW29dPWFyZ3VtZW50c1tvXTt0PVJnKHRoaXMuYWJpLG4pfXJldHVybntjYWxsOmZ1bmN0aW9uKCl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtyZXR1cm4gYmIuaXNGdW5jdGlvbihyKSYmKG49cixyPXt9KSxyPVpiKFpiKHt9LHIpLHt9LHtyYXdQYXJhbWV0ZXI6dH0pLGUuX2NhbGwoW10sW10scixuKX0sc2VuZDpmdW5jdGlvbigpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTplLnRyb25XZWIuZGVmYXVsdFByaXZhdGVLZXksbz1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO3JldHVybiBiYi5pc0Z1bmN0aW9uKG4pJiYobz1uLG49ZS50cm9uV2ViLmRlZmF1bHRQcml2YXRlS2V5KSxiYi5pc0Z1bmN0aW9uKHIpJiYobz1yLHI9e30pLHI9WmIoWmIoe30scikse30se3Jhd1BhcmFtZXRlcjp0fSksZS5fc2VuZChbXSxbXSxyLG4sbyl9LHdhdGNoOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX3dhdGNoLmFwcGx5KGUsYXJndW1lbnRzKX19fX0se2tleToiX2NhbGwiLHZhbHVlOihuPXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUodCxyKXt2YXIgbixvLGksYSxzPXRoaXMsdT1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuPXUubGVuZ3RoPjImJnZvaWQgMCE9PXVbMl0/dVsyXTp7fSxvPXUubGVuZ3RoPjMmJnZvaWQgMCE9PXVbM10mJnVbM10sYmIuaXNGdW5jdGlvbihuKSYmKG89bixuPXt9KSxvKXtlLm5leHQ9NTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuX2NhbGwsdCxyLG4pKTtjYXNlIDU6aWYodC5sZW5ndGg9PT1yLmxlbmd0aCl7ZS5uZXh0PTc7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG8oIkludmFsaWQgYXJndW1lbnQgY291bnQgcHJvdmlkZWQiKSk7Y2FzZSA3OmlmKHRoaXMuY29udHJhY3QuYWRkcmVzcyl7ZS5uZXh0PTk7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG8oIlNtYXJ0IGNvbnRyYWN0IGlzIG1pc3NpbmcgYWRkcmVzcyIpKTtjYXNlIDk6aWYodGhpcy5jb250cmFjdC5kZXBsb3llZCl7ZS5uZXh0PTExO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKCJDYWxsaW5nIHNtYXJ0IGNvbnRyYWN0cyByZXF1aXJlcyB5b3UgdG8gbG9hZCB0aGUgY29udHJhY3QgZmlyc3QiKSk7Y2FzZSAxMTppZihpPXRoaXMuYWJpLnN0YXRlTXV0YWJpbGl0eSxbInB1cmUiLCJ2aWV3Il0uaW5jbHVkZXMoaS50b0xvd2VyQ2FzZSgpKSl7ZS5uZXh0PTE0O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixvKCdNZXRob2RzIHdpdGggc3RhdGUgbXV0YWJpbGl0eSAiJy5jb25jYXQoaSwnIiBtdXN0IHVzZSBzZW5kKCknKSkpO2Nhc2UgMTQ6bj1aYihaYihaYih7fSx0aGlzLmRlZmF1bHRPcHRpb25zKSx7fSx7ZnJvbTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4fSxuKSx7fSx7X2lzQ29uc3RhbnQ6ITB9KSxhPXIubWFwKChmdW5jdGlvbihlLHIpe3JldHVybnt0eXBlOnRbcl0sdmFsdWU6ZX19KSksdGhpcy50cm9uV2ViLnRyYW5zYWN0aW9uQnVpbGRlci50cmlnZ2VyU21hcnRDb250cmFjdCh0aGlzLmNvbnRyYWN0LmFkZHJlc3MsdGhpcy5mdW5jdGlvblNlbGVjdG9yLG4sYSwhIW4uZnJvbSYmdGhpcy50cm9uV2ViLmFkZHJlc3MudG9IZXgobi5mcm9tKSwoZnVuY3Rpb24oZSx0KXtpZihlKXJldHVybiBvKGUpO2lmKCFiYi5oYXNQcm9wZXJ0eSh0LCJjb25zdGFudF9yZXN1bHQiKSlyZXR1cm4gbygiRmFpbGVkIHRvIGV4ZWN1dGUiKTt0cnl7dmFyIHI9dC5jb25zdGFudF9yZXN1bHRbMF0ubGVuZ3RoO2lmKDA9PT1yfHxyJTY0PT04KXt2YXIgbj0iVGhlIGNhbGwgaGFzIGJlZW4gcmV2ZXJ0ZWQgb3IgaGFzIHRocm93biBhbiBlcnJvci4iO2lmKDAhPT1yKXtuKz0iIEVycm9yIG1lc3NhZ2U6ICI7Zm9yKHZhciBpPSIiLGE9dC5jb25zdGFudF9yZXN1bHRbMF0uc3Vic3RyaW5nKDgpLHU9MDt1PHItODt1Kz02NClpKz1zLnRyb25XZWIudG9VdGY4KGEuc3Vic3RyaW5nKHUsdSs2NCkpO24rPWkucmVwbGFjZSgvKFx1MDAwMHxcdTAwMGJ8XGYpKy9nLCIgIikucmVwbGFjZSgvICsvZywiICIpLnJlcGxhY2UoL1xzKyQvZywiIil9cmV0dXJuIG8obil9dmFyIGM9SmIocy5hYmksIjB4Iit0LmNvbnN0YW50X3Jlc3VsdFswXSk7cmV0dXJuIDE9PT1jLmxlbmd0aCYmMT09PU9iamVjdC5rZXlzKGMpLmxlbmd0aCYmKGM9Y1swXSksbyhudWxsLGMpfWNhdGNoKGUpe3JldHVybiBvKGUpfX0pKTtjYXNlIDE3OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiX3NlbmQiLHZhbHVlOihyPXAoQygpLm1hcmsoKGZ1bmN0aW9uIGUodCxyKXt2YXIgbixvLGksYSxzLHUsYyxsLGQsZixoLGc9dGhpcyx5PWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG49eS5sZW5ndGg+MiYmdm9pZCAwIT09eVsyXT95WzJdOnt9LG89eS5sZW5ndGg+MyYmdm9pZCAwIT09eVszXT95WzNdOnRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSxpPXkubGVuZ3RoPjQmJnZvaWQgMCE9PXlbNF0mJnlbNF0sYmIuaXNGdW5jdGlvbihvKSYmKGk9byxvPXRoaXMudHJvbldlYi5kZWZhdWx0UHJpdmF0ZUtleSksYmIuaXNGdW5jdGlvbihuKSYmKGk9bixuPXt9KSxpKXtlLm5leHQ9NzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdGhpcy5pbmplY3RQcm9taXNlKHRoaXMuX3NlbmQsdCxyLG4sbykpO2Nhc2UgNzppZih0Lmxlbmd0aD09PXIubGVuZ3RoKXtlLm5leHQ9OTticmVha310aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXJndW1lbnQgY291bnQgcHJvdmlkZWQiKTtjYXNlIDk6aWYodGhpcy5jb250cmFjdC5hZGRyZXNzKXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLGkoIlNtYXJ0IGNvbnRyYWN0IGlzIG1pc3NpbmcgYWRkcmVzcyIpKTtjYXNlIDExOmlmKHRoaXMuY29udHJhY3QuZGVwbG95ZWQpe2UubmV4dD0xMzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsaSgiQ2FsbGluZyBzbWFydCBjb250cmFjdHMgcmVxdWlyZXMgeW91IHRvIGxvYWQgdGhlIGNvbnRyYWN0IGZpcnN0IikpO2Nhc2UgMTM6aWYoYT10aGlzLmFiaS5zdGF0ZU11dGFiaWxpdHksIVsicHVyZSIsInZpZXciXS5pbmNsdWRlcyhhLnRvTG93ZXJDYXNlKCkpKXtlLm5leHQ9MTY7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLGkoJ01ldGhvZHMgd2l0aCBzdGF0ZSBtdXRhYmlsaXR5ICInLmNvbmNhdChhLCciIG11c3QgdXNlIGNhbGwoKScpKSk7Y2FzZSAxNjpyZXR1cm5bInBheWFibGUiXS5pbmNsdWRlcyhhLnRvTG93ZXJDYXNlKCkpfHwobi5jYWxsVmFsdWU9MCksbj1aYihaYih7fSx0aGlzLmRlZmF1bHRPcHRpb25zKSx7fSx7ZnJvbTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuaGV4fSxuKSxzPXIubWFwKChmdW5jdGlvbihlLHIpe3JldHVybnt0eXBlOnRbcl0sdmFsdWU6ZX19KSksZS5wcmV2PTE5LHU9bz90aGlzLnRyb25XZWIuYWRkcmVzcy5mcm9tUHJpdmF0ZUtleShvKTp0aGlzLnRyb25XZWIuZGVmYXVsdEFkZHJlc3MuYmFzZTU4LGUubmV4dD0yMyx0aGlzLnRyb25XZWIudHJhbnNhY3Rpb25CdWlsZGVyLnRyaWdnZXJTbWFydENvbnRyYWN0KHRoaXMuY29udHJhY3QuYWRkcmVzcyx0aGlzLmZ1bmN0aW9uU2VsZWN0b3IsbixzLHRoaXMudHJvbldlYi5hZGRyZXNzLnRvSGV4KHUpKTtjYXNlIDIzOmlmKChjPWUuc2VudCkucmVzdWx0JiZjLnJlc3VsdC5yZXN1bHQpe2UubmV4dD0yNjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsaSgiVW5rbm93biBlcnJvcjogIitKU09OLnN0cmluZ2lmeShjLG51bGwsMikpKTtjYXNlIDI2OnJldHVybiBlLm5leHQ9MjgsdGhpcy50cm9uV2ViLnRyeC5zaWduKGMudHJhbnNhY3Rpb24sbyk7Y2FzZSAyODppZigobD1lLnNlbnQpLnNpZ25hdHVyZSl7ZS5uZXh0PTMzO2JyZWFrfWlmKG8pe2UubmV4dD0zMjticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsaSgiVHJhbnNhY3Rpb24gd2FzIG5vdCBzaWduZWQgcHJvcGVybHkiKSk7Y2FzZSAzMjpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsaSgiSW52YWxpZCBwcml2YXRlIGtleSBwcm92aWRlZCIpKTtjYXNlIDMzOnJldHVybiBlLm5leHQ9MzUsdGhpcy50cm9uV2ViLnRyeC5zZW5kUmF3VHJhbnNhY3Rpb24obCk7Y2FzZSAzNTppZighKGQ9ZS5zZW50KS5jb2RlKXtlLm5leHQ9NDA7YnJlYWt9cmV0dXJuIGY9e2Vycm9yOmQuY29kZSxtZXNzYWdlOmQuY29kZX0sZC5tZXNzYWdlJiYoZi5tZXNzYWdlPXRoaXMudHJvbldlYi50b1V0ZjgoZC5tZXNzYWdlKSksZS5hYnJ1cHQoInJldHVybiIsaShmKSk7Y2FzZSA0MDppZihuLnNob3VsZFBvbGxSZXNwb25zZSl7ZS5uZXh0PTQyO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKG51bGwsbC50eElEKSk7Y2FzZSA0MjpoPWZ1bmN0aW9uKCl7dmFyIGU9cChDKCkubWFyaygoZnVuY3Rpb24gZSgpe3ZhciB0LHIsbyxhPWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKCh0PWEubGVuZ3RoPjAmJnZvaWQgMCE9PWFbMF0/YVswXTowKSE9PShuLnBvbGxUaW1lc3x8MjApKXtlLm5leHQ9MzticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsaSh7ZXJyb3I6IkNhbm5vdCBmaW5kIHJlc3VsdCBpbiBzb2xpZGl0eSBub2RlIix0cmFuc2FjdGlvbjpsfSkpO2Nhc2UgMzpyZXR1cm4gZS5uZXh0PTUsZy50cm9uV2ViLnRyeC5nZXRUcmFuc2FjdGlvbkluZm8obC50eElEKTtjYXNlIDU6aWYocj1lLnNlbnQsT2JqZWN0LmtleXMocikubGVuZ3RoKXtlLm5leHQ9ODticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsc2V0VGltZW91dCgoZnVuY3Rpb24oKXtoKHQrMSl9KSwzZTMpKTtjYXNlIDg6aWYoIXIucmVzdWx0fHwiRkFJTEVEIiE9PXIucmVzdWx0KXtlLm5leHQ9MTA7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLGkoe2Vycm9yOmcudHJvbldlYi50b1V0Zjgoci5yZXNNZXNzYWdlKSx0cmFuc2FjdGlvbjpsLG91dHB1dDpyfSkpO2Nhc2UgMTA6aWYoYmIuaGFzUHJvcGVydHkociwiY29udHJhY3RSZXN1bHQiKSl7ZS5uZXh0PTEyO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKHtlcnJvcjoiRmFpbGVkIHRvIGV4ZWN1dGU6ICIrSlNPTi5zdHJpbmdpZnkocixudWxsLDIpLHRyYW5zYWN0aW9uOmwsb3V0cHV0OnJ9KSk7Y2FzZSAxMjppZighbi5yYXdSZXNwb25zZSl7ZS5uZXh0PTE0O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKG51bGwscikpO2Nhc2UgMTQ6aWYoMT09PShvPUpiKGcuYWJpLCIweCIrci5jb250cmFjdFJlc3VsdFswXSkpLmxlbmd0aCYmMT09PU9iamVjdC5rZXlzKG8pLmxlbmd0aCYmKG89b1swXSksIW4ua2VlcFR4SUQpe2UubmV4dD0xODticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsaShudWxsLFtsLnR4SUQsb10pKTtjYXNlIDE4OnJldHVybiBlLmFicnVwdCgicmV0dXJuIixpKG51bGwsbykpO2Nhc2UgMTk6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxoKCksZS5uZXh0PTQ5O2JyZWFrO2Nhc2UgNDY6cmV0dXJuIGUucHJldj00NixlLnQwPWUuY2F0Y2goMTkpLGUuYWJydXB0KCJyZXR1cm4iLGkoZS50MCkpO2Nhc2UgNDk6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMsW1sxOSw0Nl1dKX0pKSksZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiX3dhdGNoIix2YWx1ZToodD1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHMsdT10aGlzLGM9YXJndW1lbnRzO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYodD1jLmxlbmd0aD4wJiZ2b2lkIDAhPT1jWzBdP2NbMF06e30scj1jLmxlbmd0aD4xJiZ2b2lkIDAhPT1jWzFdJiZjWzFdLGJiLmlzRnVuY3Rpb24odCkmJihyPXQsdD17fSksYmIuaXNGdW5jdGlvbihyKSl7ZS5uZXh0PTU7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBjYWxsYmFjayB0byBiZSBwcm92aWRlZCIpO2Nhc2UgNTppZih0aGlzLmNvbnRyYWN0LmFkZHJlc3Mpe2UubmV4dD03O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixyKCJTbWFydCBjb250cmFjdCBpcyBtaXNzaW5nIGFkZHJlc3MiKSk7Y2FzZSA3OmlmKHRoaXMuYWJpLnR5cGUmJi9ldmVudC9pLnRlc3QodGhpcy5hYmkudHlwZSkpe2UubmV4dD05O2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixyKCJJbnZhbGlkIG1ldGhvZCB0eXBlIGZvciBldmVudCB3YXRjaGluZyIpKTtjYXNlIDk6aWYodGhpcy50cm9uV2ViLmV2ZW50U2VydmVyKXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHIoIk5vIGV2ZW50IHNlcnZlciBjb25maWd1cmVkIikpO2Nhc2UgMTE6cmV0dXJuIG49ITEsbz0hMSxpPURhdGUubm93KCktMWUzLGE9ZnVuY3Rpb24oKXt2YXIgZT1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHIsbixhLHMsYyxsO3JldHVybiBDKCkud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUucHJldj0wLHI9e3NpbmNlOmksZXZlbnROYW1lOnUubmFtZSxzb3J0OiJibG9ja190aW1lc3RhbXAiLGJsb2NrTnVtYmVyOiJsYXRlc3QiLGZpbHRlcnM6dC5maWx0ZXJzfSx0LnNpemUmJihyLnNpemU9dC5zaXplKSx0LnJlc291cmNlTm9kZSYmKC9mdWxsL2kudGVzdCh0LnJlc291cmNlTm9kZSk/ci5vbmx5VW5jb25maXJtZWQ9ITA6ci5vbmx5Q29uZmlybWVkPSEwKSxlLm5leHQ9Nix1LnRyb25XZWIuZXZlbnQuZ2V0RXZlbnRzQnlDb250cmFjdEFkZHJlc3ModS5jb250cmFjdC5hZGRyZXNzLHIpO2Nhc2UgNjpyZXR1cm4gbj1lLnNlbnQsYT1uLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuYmxvY2stZS5ibG9ja30pKSxzPW9pKGEsMSksYz1zWzBdLGw9bi5maWx0ZXIoKGZ1bmN0aW9uKGUscil7cmV0dXJuISh0LnJlc291cmNlTm9kZSYmZS5yZXNvdXJjZU5vZGUmJnQucmVzb3VyY2VOb2RlLnRvTG93ZXJDYXNlKCkhPT1lLnJlc291cmNlTm9kZS50b0xvd2VyQ2FzZSgpfHxuLnNsaWNlKDAscikuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpPT1KU09OLnN0cmluZ2lmeShlKX0pKXx8byYmIShlLmJsb2NrPm8pKX0pKSxjJiYobz1jLmJsb2NrKSxlLmFicnVwdCgicmV0dXJuIixsKTtjYXNlIDEzOnJldHVybiBlLnByZXY9MTMsZS50MD1lLmNhdGNoKDApLGUuYWJydXB0KCJyZXR1cm4iLFByb21pc2UucmVqZWN0KGUudDApKTtjYXNlIDE2OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbMCwxM11dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxzPWZ1bmN0aW9uKCl7biYmY2xlYXJJbnRlcnZhbChuKSxuPXNldEludGVydmFsKChmdW5jdGlvbigpe2EoKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihlKXtyKG51bGwsYmIucGFyc2VFdmVudChlLHUuYWJpKSl9KSl9KSkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiByKGUpfSkpfSksM2UzKX0sZS5uZXh0PTE4LGEoKTtjYXNlIDE4OnJldHVybiBzKCksZS5hYnJ1cHQoInJldHVybiIse3N0YXJ0OnMsc3RvcDpmdW5jdGlvbigpe24mJihjbGVhckludGVydmFsKG4pLG49ITEpfX0pO2Nhc2UgMjA6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfV0pLGV9KCksWGI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxyPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpbXSxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07aWYoZyh0aGlzLGUpLCF0fHwhdCBpbnN0YW5jZW9mIHN2KXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgaW5zdGFuY2Ugb2YgVHJvbldlYiIpO3RoaXMudHJvbldlYj10LHRoaXMuaW5qZWN0UHJvbWlzZT1XYigpKHRoaXMpLHRoaXMuYWRkcmVzcz1uLHRoaXMuYWJpPXIsdGhpcy5ldmVudExpc3RlbmVyPSExLHRoaXMuYnl0ZWNvZGU9ITEsdGhpcy5kZXBsb3llZD0hMSx0aGlzLmxhc3RCbG9jaz0hMSx0aGlzLm1ldGhvZHM9e30sdGhpcy5tZXRob2RJbnN0YW5jZXM9e30sdGhpcy5wcm9wcz1bXSx0aGlzLnRyb25XZWIuaXNBZGRyZXNzKG4pP3RoaXMuZGVwbG95ZWQ9ITA6dGhpcy5hZGRyZXNzPSExLHRoaXMubG9hZEFiaShyKX12YXIgdCxyLG4sbztyZXR1cm4gdihlLFt7a2V5OiJfZ2V0RXZlbnRzIix2YWx1ZToobz1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuLG8saSxhLHM9dGhpcyx1PWFyZ3VtZW50cztyZXR1cm4gQygpLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiB0PXUubGVuZ3RoPjAmJnZvaWQgMCE9PXVbMF0/dVswXTp7fSxlLm5leHQ9Myx0aGlzLnRyb25XZWIuZXZlbnQuZ2V0RXZlbnRzQnlDb250cmFjdEFkZHJlc3ModGhpcy5hZGRyZXNzLHQpO2Nhc2UgMzpyZXR1cm4gcj1lLnNlbnQsbj1yLnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQuYmxvY2stZS5ibG9ja30pKSxvPW9pKG4sMSksaT1vWzBdLGE9ci5maWx0ZXIoKGZ1bmN0aW9uKGUsbil7cmV0dXJuISh0LnJlc291cmNlTm9kZSYmZS5yZXNvdXJjZU5vZGUmJnQucmVzb3VyY2VOb2RlLnRvTG93ZXJDYXNlKCkhPT1lLnJlc291cmNlTm9kZS50b0xvd2VyQ2FzZSgpfHxyLnNsaWNlKDAsbikuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpPT1KU09OLnN0cmluZ2lmeShlKX0pKXx8cy5sYXN0QmxvY2smJiEoZS5ibG9jaz5zLmxhc3RCbG9jaykpfSkpLGkmJih0aGlzLmxhc3RCbG9jaz1pLmJsb2NrKSxlLmFicnVwdCgicmV0dXJuIixhKTtjYXNlIDg6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19KSxlLHRoaXMpfSkpKSxmdW5jdGlvbigpe3JldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfSx7a2V5OiJfc3RhcnRFdmVudExpc3RlbmVyIix2YWx1ZToobj1wKEMoKS5tYXJrKChmdW5jdGlvbiBlKCl7dmFyIHQscixuPXRoaXMsbz1hcmd1bWVudHM7cmV0dXJuIEMoKS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZih0PW8ubGVuZ3RoPjAmJnZvaWQgMCE9PW9bMF0/b1swXTp7fSxyPW8ubGVuZ3RoPjE/b1sxXTp2b2lkIDAsYmIuaXNGdW5jdGlvbih0KSYmKHI9dCx0PXt9KSx0aGlzLmV2ZW50TGlzdGVuZXImJmNsZWFySW50ZXJ2YWwodGhpcy5ldmVudExpc3RlbmVyKSx0aGlzLnRyb25XZWIuZXZlbnRTZXJ2ZXIpe2UubmV4dD02O2JyZWFrfXRocm93IG5ldyBFcnJvcigiRXZlbnQgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkIik7Y2FzZSA2OmlmKHRoaXMuYWRkcmVzcyl7ZS5uZXh0PTg7YnJlYWt9dGhyb3cgbmV3IEVycm9yKCJDb250cmFjdCBpcyBub3QgY29uZmlndXJlZCB3aXRoIGFuIGFkZHJlc3MiKTtjYXNlIDg6cmV0dXJuIHRoaXMuZXZlbnRDYWxsYmFjaz1yLGUubmV4dD0xMSx0aGlzLl9nZXRFdmVudHModCk7Y2FzZSAxMTp0aGlzLmV2ZW50TGlzdGVuZXI9c2V0SW50ZXJ2YWwoKGZ1bmN0aW9uKCl7bi5fZ2V0RXZlbnRzKHQpLnRoZW4oKGZ1bmN0aW9uKGUpe3JldHVybiBlLmZvckVhY2goKGZ1bmN0aW9uKGUpe24uZXZlbnRDYWxsYmFjayYmbi5ldmVudENhbGxiYWNrKGUpfSkpfSkpLmNhdGNoKChmdW5jdGlvbihlKXtjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gZ2V0IGV2ZW50IGxpc3QiLGUpfSkpfSksM2UzKTtjYXNlIDEyOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSksZSx0aGlzKX0pKSksZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KX0se2tleToiX3N0b3BFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRMaXN0ZW5lciYmKGNsZWFySW50ZXJ2YWwodGhpcy5ldmVudExpc3RlbmVyKSx0aGlzLmV2ZW50TGlzdGVuZXI9ITEsdGhpcy5ldmVudENhbGxiYWNrPSExKX19LHtrZXk6Imhhc1Byb3BlcnR5Iix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eShlKXx8dGhpcy5fX3Byb3RvX18uaGFzT3duUHJvcGVydHkoZSl9fSx7a2V5OiJsb2FkQWJpIix2YWx1ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuYWJpPWUsdGhpcy5tZXRob2RzPXt9LHRoaXMucHJvcHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGRlbGV0ZSB0W2VdfSkpLGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZS50eXBlJiYhL2NvbnN0cnVjdG9yfGVycm9yL2kudGVzdChlLnR5cGUpKXt2YXIgcj1uZXcgWWIodCxlKSxuPXIub25NZXRob2QuYmluZChyKSxvPXIubmFtZSxpPXIuZnVuY3Rpb25TZWxlY3Rvcg=="}},"time_used":67,"timings":{"blocked":-1,"dns":2,"connect":10,"send":0,"wait":10,"receive":27,"ssl":18},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.574Z","timestamp":1785138633574,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/transactions@5.7.0/es2022/transactions.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 20:33:38 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbdbe3569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":6638,"size_decoded":3108,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6547)","md5":"770167233a9c29a95f194370ead6c944","sha1":"5311e61d091018d185292884df2fd9cab6420b79","sha256":"dc3e005fae50d52af9c8ab21d6edebc4d50558f71f3ffc1270e892a900fd9993","sha512":"d0c09fda113e72a847cce90ca9b63d5f1f452e753ac60ba196055b416cc6700b7e62c2f605d2653e268f7ea5f6b80904709fa02d612ea3d7c962dcbdf7457867","ssdeep":"96:YmIOzlR1JHbthcdF8XN9RzwPvlZV0eNRH429q8DGMJ45zgbTGN0NQn8:PRJ70dF8XN9uBjt429q+JszQTG2K8","tlshash":"d2d166e4b262f4f853c958ec60dbc201a0fe945093055c7cba54854b4bbccdd47a2fba","first_seen":"2025-07-08T23:56:54.664078Z","last_seen":"2026-07-27T07:51:47.255644Z","times_seen":14,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvdHJhbnNhY3Rpb25zQDUuNy4wICovCmltcG9ydHtnZXRBZGRyZXNzIGFzIFB9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYWRkcmVzc0BeNS43LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e0JpZ051bWJlciBhcyBmfWZyb20iL0BldGhlcnNwcm9qZWN0L2JpZ251bWJlckBeNS43LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e2FycmF5aWZ5IGFzIGQsaGV4Q29uY2F0IGFzIFIsaGV4RGF0YUxlbmd0aCBhcyBPLGhleERhdGFTbGljZSBhcyBJLGhleGxpZnkgYXMgaCxoZXhaZXJvUGFkIGFzIHksaXNCeXRlc0xpa2UgYXMgUyxzcGxpdFNpZ25hdHVyZSBhcyB4LHN0cmlwWmVyb3MgYXMgbH1mcm9tIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS43LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e1plcm8gYXMgen1mcm9tIi9AZXRoZXJzcHJvamVjdC9jb25zdGFudHNAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtrZWNjYWsyNTYgYXMgZ31mcm9tIi9AZXRoZXJzcHJvamVjdC9rZWNjYWsyNTZAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtjaGVja1Byb3BlcnRpZXMgYXMgWn1mcm9tIi9AZXRoZXJzcHJvamVjdC9wcm9wZXJ0aWVzQF41LjcuMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgbSBmcm9tIi9AZXRoZXJzcHJvamVjdC9ybHBAXjUuNy4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtjb21wdXRlUHVibGljS2V5IGFzICQscmVjb3ZlclB1YmxpY0tleSBhcyBEfWZyb20iL0BldGhlcnNwcm9qZWN0L3NpZ25pbmcta2V5QF41LjcuMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7TG9nZ2VyIGFzIEx9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjcuMD90YXJnZXQ9ZXMyMDIyIjt2YXIgYj0idHJhbnNhY3Rpb25zLzUuNy4wIjt2YXIgcz1uZXcgTChiKSxOOyhmdW5jdGlvbihyKXtyW3IubGVnYWN5PTBdPSJsZWdhY3kiLHJbci5laXAyOTMwPTFdPSJlaXAyOTMwIixyW3IuZWlwMTU1OT0yXT0iZWlwMTU1OSJ9KShOfHwoTj17fSkpO2Z1bmN0aW9uIEUocil7cmV0dXJuIHI9PT0iMHgiP251bGw6UChyKX1mdW5jdGlvbiBpKHIpe3JldHVybiByPT09IjB4Ij96OmYuZnJvbShyKX12YXIgVT1be25hbWU6Im5vbmNlIixtYXhMZW5ndGg6MzIsbnVtZXJpYzohMH0se25hbWU6Imdhc1ByaWNlIixtYXhMZW5ndGg6MzIsbnVtZXJpYzohMH0se25hbWU6Imdhc0xpbWl0IixtYXhMZW5ndGg6MzIsbnVtZXJpYzohMH0se25hbWU6InRvIixsZW5ndGg6MjB9LHtuYW1lOiJ2YWx1ZSIsbWF4TGVuZ3RoOjMyLG51bWVyaWM6ITB9LHtuYW1lOiJkYXRhIn1dLEM9e2NoYWluSWQ6ITAsZGF0YTohMCxnYXNMaW1pdDohMCxnYXNQcmljZTohMCxub25jZTohMCx0bzohMCx0eXBlOiEwLHZhbHVlOiEwfTtmdW5jdGlvbiBqKHIpe2xldCBlPSQocik7cmV0dXJuIFAoSShnKEkoZSwxKSksMTIpKX1mdW5jdGlvbiBGKHIsZSl7cmV0dXJuIGooRChkKHIpLGUpKX1mdW5jdGlvbiBhKHIsZSl7bGV0IHQ9bChmLmZyb20ocikudG9IZXhTdHJpbmcoKSk7cmV0dXJuIHQubGVuZ3RoPjMyJiZzLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBsZW5ndGggZm9yICIrZSwidHJhbnNhY3Rpb246IitlLHIpLHR9ZnVuY3Rpb24gdihyLGUpe3JldHVybnthZGRyZXNzOlAociksc3RvcmFnZUtleXM6KGV8fFtdKS5tYXAoKHQsbyk9PihPKHQpIT09MzImJnMudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGFjY2VzcyBsaXN0IHN0b3JhZ2VLZXkiLGBhY2Nlc3NMaXN0WyR7cn06JHtvfV1gLHQpLHQudG9Mb3dlckNhc2UoKSkpfX1mdW5jdGlvbiB3KHIpe2lmKEFycmF5LmlzQXJyYXkocikpcmV0dXJuIHIubWFwKCh0LG8pPT5BcnJheS5pc0FycmF5KHQpPyh0Lmxlbmd0aD4yJiZzLnRocm93QXJndW1lbnRFcnJvcigiYWNjZXNzIGxpc3QgZXhwZWN0ZWQgdG8gYmUgWyBhZGRyZXNzLCBzdG9yYWdlS2V5c1tdIF0iLGB2YWx1ZVske299XWAsdCksdih0WzBdLHRbMV0pKTp2KHQuYWRkcmVzcyx0LnN0b3JhZ2VLZXlzKSk7bGV0IGU9T2JqZWN0LmtleXMocikubWFwKHQ9PntsZXQgbz1yW3RdLnJlZHVjZSgobixwKT0+KG5bcF09ITAsbikse30pO3JldHVybiB2KHQsT2JqZWN0LmtleXMobykuc29ydCgpKX0pO3JldHVybiBlLnNvcnQoKHQsbyk9PnQuYWRkcmVzcy5sb2NhbGVDb21wYXJlKG8uYWRkcmVzcykpLGV9ZnVuY3Rpb24gRyhyKXtyZXR1cm4gdyhyKS5tYXAoZT0+W2UuYWRkcmVzcyxlLnN0b3JhZ2VLZXlzXSl9ZnVuY3Rpb24gXyhyLGUpe2lmKHIuZ2FzUHJpY2UhPW51bGwpe2xldCBvPWYuZnJvbShyLmdhc1ByaWNlKSxuPWYuZnJvbShyLm1heEZlZVBlckdhc3x8MCk7by5lcShuKXx8cy50aHJvd0FyZ3VtZW50RXJyb3IoIm1pc21hdGNoIEVJUC0xNTU5IGdhc1ByaWNlICE9IG1heEZlZVBlckdhcyIsInR4Iix7Z2FzUHJpY2U6byxtYXhGZWVQZXJHYXM6bn0pfWxldCB0PVthKHIuY2hhaW5JZHx8MCwiY2hhaW5JZCIpLGEoci5ub25jZXx8MCwibm9uY2UiKSxhKHIubWF4UHJpb3JpdHlGZWVQZXJHYXN8fDAsIm1heFByaW9yaXR5RmVlUGVyR2FzIiksYShyLm1heEZlZVBlckdhc3x8MCwibWF4RmVlUGVyR2FzIiksYShyLmdhc0xpbWl0fHwwLCJnYXNMaW1pdCIpLHIudG8hPW51bGw/UChyLnRvKToiMHgiLGEoci52YWx1ZXx8MCwidmFsdWUiKSxyLmRhdGF8fCIweCIsRyhyLmFjY2Vzc0xpc3R8fFtdKV07aWYoZSl7bGV0IG89eChlKTt0LnB1c2goYShvLnJlY292ZXJ5UGFyYW0sInJlY292ZXJ5UGFyYW0iKSksdC5wdXNoKGwoby5yKSksdC5wdXNoKGwoby5zKSl9cmV0dXJuIFIoWyIweDAyIixtLmVuY29kZSh0KV0pfWZ1bmN0aW9uIGsocixlKXtsZXQgdD1bYShyLmNoYWluSWR8fDAsImNoYWluSWQiKSxhKHIubm9uY2V8fDAsIm5vbmNlIiksYShyLmdhc1ByaWNlfHwwLCJnYXNQcmljZSIpLGEoci5nYXNMaW1pdHx8MCwiZ2FzTGltaXQiKSxyLnRvIT1udWxsP1Aoci50byk6IjB4IixhKHIudmFsdWV8fDAsInZhbHVlIiksci5kYXRhfHwiMHgiLEcoci5hY2Nlc3NMaXN0fHxbXSldO2lmKGUpe2xldCBvPXgoZSk7dC5wdXNoKGEoby5yZWNvdmVyeVBhcmFtLCJyZWNvdmVyeVBhcmFtIikpLHQucHVzaChsKG8ucikpLHQucHVzaChsKG8ucykpfXJldHVybiBSKFsiMHgwMSIsbS5lbmNvZGUodCldKX1mdW5jdGlvbiBCKHIsZSl7WihyLEMpO2xldCB0PVtdO1UuZm9yRWFjaChmdW5jdGlvbihjKXtsZXQgdT1yW2MubmFtZV18fFtdLEE9e307Yy5udW1lcmljJiYoQS5oZXhQYWQ9ImxlZnQiKSx1PWQoaCh1LEEpKSxjLmxlbmd0aCYmdS5sZW5ndGghPT1jLmxlbmd0aCYmdS5sZW5ndGg+MCYmcy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgbGVuZ3RoIGZvciAiK2MubmFtZSwidHJhbnNhY3Rpb246IitjLm5hbWUsdSksYy5tYXhMZW5ndGgmJih1PWwodSksdS5sZW5ndGg+Yy5tYXhMZW5ndGgmJnMudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGxlbmd0aCBmb3IgIitjLm5hbWUsInRyYW5zYWN0aW9uOiIrYy5uYW1lLHUpKSx0LnB1c2goaCh1KSl9KTtsZXQgbz0wO2lmKHIuY2hhaW5JZCE9bnVsbD8obz1yLmNoYWluSWQsdHlwZW9mIG8hPSJudW1iZXIiJiZzLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCB0cmFuc2FjdGlvbi5jaGFpbklkIiwidHJhbnNhY3Rpb24iLHIpKTplJiYhUyhlKSYmZS52PjI4JiYobz1NYXRoLmZsb29yKChlLnYtMzUpLzIpKSxvIT09MCYmKHQucHVzaChoKG8pKSx0LnB1c2goIjB4IiksdC5wdXNoKCIweCIpKSwhZSlyZXR1cm4gbS5lbmNvZGUodCk7bGV0IG49eChlKSxwPTI3K24ucmVjb3ZlcnlQYXJhbTtyZXR1cm4gbyE9PTA/KHQucG9wKCksdC5wb3AoKSx0LnBvcCgpLHArPW8qMis4LG4udj4yOCYmbi52IT09cCYmcy50aHJvd0FyZ3VtZW50RXJyb3IoInRyYW5zYWN0aW9uLmNoYWluSWQvc2lnbmF0dXJlLnYgbWlzbWF0Y2giLCJzaWduYXR1cmUiLGUpKTpuLnYhPT1wJiZzLnRocm93QXJndW1lbnRFcnJvcigidHJhbnNhY3Rpb24uY2hhaW5JZC9zaWduYXR1cmUudiBtaXNtYXRjaCIsInNpZ25hdHVyZSIsZSksdC5wdXNoKGgocCkpLHQucHVzaChsKGQobi5yKSkpLHQucHVzaChsKGQobi5zKSkpLG0uZW5jb2RlKHQpfWZ1bmN0aW9uIG9yKHIsZSl7aWYoci50eXBlPT1udWxsfHxyLnR5cGU9PT0wKXJldHVybiByLmFjY2Vzc0xpc3QhPW51bGwmJnMudGhyb3dBcmd1bWVudEVycm9yKCJ1bnR5cGVkIHRyYW5zYWN0aW9ucyBkbyBub3Qgc3VwcG9ydCBhY2Nlc3NMaXN0OyBpbmNsdWRlIHR5cGU6IDEiLCJ0cmFuc2FjdGlvbiIsciksQihyLGUpO3N3aXRjaChyLnR5cGUpe2Nhc2UgMTpyZXR1cm4gayhyLGUpO2Nhc2UgMjpyZXR1cm4gXyhyLGUpO2RlZmF1bHQ6YnJlYWt9cmV0dXJuIHMudGhyb3dFcnJvcihgdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZTogJHtyLnR5cGV9YCxMLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se29wZXJhdGlvbjoic2VyaWFsaXplVHJhbnNhY3Rpb24iLHRyYW5zYWN0aW9uVHlwZTpyLnR5cGV9KX1mdW5jdGlvbiBLKHIsZSx0KXt0cnl7bGV0IG89aShlWzBdKS50b051bWJlcigpO2lmKG8hPT0wJiZvIT09MSl0aHJvdyBuZXcgRXJyb3IoImJhZCByZWNpZCIpO3Iudj1vfWNhdGNoe3MudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIHYgZm9yIHRyYW5zYWN0aW9uIHR5cGU6IDEiLCJ2IixlWzBdKX1yLnI9eShlWzFdLDMyKSxyLnM9eShlWzJdLDMyKTt0cnl7bGV0IG89Zyh0KHIpKTtyLmZyb209RihvLHtyOnIucixzOnIucyxyZWNvdmVyeVBhcmFtOnIudn0pfWNhdGNoe319ZnVuY3Rpb24gTShyKXtsZXQgZT1tLmRlY29kZShyLnNsaWNlKDEpKTtlLmxlbmd0aCE9PTkmJmUubGVuZ3RoIT09MTImJnMudGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGNvbXBvbmVudCBjb3VudCBmb3IgdHJhbnNhY3Rpb24gdHlwZTogMiIsInBheWxvYWQiLGgocikpO2xldCB0PWkoZVsyXSksbz1pKGVbM10pLG49e3R5cGU6MixjaGFpbklkOmkoZVswXSkudG9OdW1iZXIoKSxub25jZTppKGVbMV0pLnRvTnVtYmVyKCksbWF4UHJpb3JpdHlGZWVQZXJHYXM6dCxtYXhGZWVQZXJHYXM6byxnYXNQcmljZTpudWxsLGdhc0xpbWl0OmkoZVs0XSksdG86RShlWzVdKSx2YWx1ZTppKGVbNl0pLGRhdGE6ZVs3XSxhY2Nlc3NMaXN0OncoZVs4XSl9O3JldHVybiBlLmxlbmd0aD09PTl8fChuLmhhc2g9ZyhyKSxLKG4sZS5zbGljZSg5KSxfKSksbn1mdW5jdGlvbiBxKHIpe2xldCBlPW0uZGVjb2RlKHIuc2xpY2UoMSkpO2UubGVuZ3RoIT09OCYmZS5sZW5ndGghPT0xMSYmcy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgY29tcG9uZW50IGNvdW50IGZvciB0cmFuc2FjdGlvbiB0eXBlOiAxIiwicGF5bG9hZCIsaChyKSk7bGV0IHQ9e3R5cGU6MSxjaGFpbklkOmkoZVswXSkudG9OdW1iZXIoKSxub25jZTppKGVbMV0pLnRvTnVtYmVyKCksZ2FzUHJpY2U6aShlWzJdKSxnYXNMaW1pdDppKGVbM10pLHRvOkUoZVs0XSksdmFsdWU6aShlWzVdKSxkYXRhOmVbNl0sYWNjZXNzTGlzdDp3KGVbN10pfTtyZXR1cm4gZS5sZW5ndGg9PT04fHwodC5oYXNoPWcociksSyh0LGUuc2xpY2UoOCksaykpLHR9ZnVuY3Rpb24gSChyKXtsZXQgZT1tLmRlY29kZShyKTtlLmxlbmd0aCE9PTkmJmUubGVuZ3RoIT09NiYmcy50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgcmF3IHRyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLHIpO2xldCB0PXtub25jZTppKGVbMF0pLnRvTnVtYmVyKCksZ2FzUHJpY2U6aShlWzFdKSxnYXNMaW1pdDppKGVbMl0pLHRvOkUoZVszXSksdmFsdWU6aShlWzRdKSxkYXRhOmVbNV0sY2hhaW5JZDowfTtpZihlLmxlbmd0aD09PTYpcmV0dXJuIHQ7dHJ5e3Qudj1mLmZyb20oZVs2XSkudG9OdW1iZXIoKX1jYXRjaHtyZXR1cm4gdH1pZih0LnI9eShlWzddLDMyKSx0LnM9eShlWzhdLDMyKSxmLmZyb20odC5yKS5pc1plcm8oKSYmZi5mcm9tKHQucykuaXNaZXJvKCkpdC5jaGFpbklkPXQudix0LnY9MDtlbHNle3QuY2hhaW5JZD1NYXRoLmZsb29yKCh0LnYtMzUpLzIpLHQuY2hhaW5JZDwwJiYodC5jaGFpbklkPTApO2xldCBvPXQudi0yNyxuPWUuc2xpY2UoMCw2KTt0LmNoYWluSWQhPT0wJiYobi5wdXNoKGgodC5jaGFpbklkKSksbi5wdXNoKCIweCIpLG4ucHVzaCgiMHgiKSxvLT10LmNoYWluSWQqMis4KTtsZXQgcD1nKG0uZW5jb2RlKG4pKTt0cnl7dC5mcm9tPUYocCx7cjpoKHQuciksczpoKHQucykscmVjb3ZlcnlQYXJhbTpvfSl9Y2F0Y2h7fXQuaGFzaD1nKHIpfXJldHVybiB0LnR5cGU9bnVsbCx0fWZ1bmN0aW9uIG5yKHIpe2xldCBlPWQocik7aWYoZVswXT4xMjcpcmV0dXJuIEgoZSk7c3dpdGNoKGVbMF0pe2Nhc2UgMTpyZXR1cm4gcShlKTtjYXNlIDI6cmV0dXJuIE0oZSk7ZGVmYXVsdDpicmVha31yZXR1cm4gcy50aHJvd0Vycm9yKGB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlOiAke2VbMF19YCxMLmVycm9ycy5VTlNVUFBPUlRFRF9PUEVSQVRJT04se29wZXJhdGlvbjoicGFyc2VUcmFuc2FjdGlvbiIsdHJhbnNhY3Rpb25UeXBlOmVbMF19KX1leHBvcnR7TiBhcyBUcmFuc2FjdGlvblR5cGVzLHcgYXMgYWNjZXNzTGlzdGlmeSxqIGFzIGNvbXB1dGVBZGRyZXNzLG5yIGFzIHBhcnNlLEYgYXMgcmVjb3ZlckFkZHJlc3Msb3IgYXMgc2VyaWFsaXplfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhbnNhY3Rpb25zLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/random@1.0.2/es2022/random.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.579Z","timestamp":1785138633579,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/random@1.0.2/es2022/random.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbebe7569f-OSL\r\ncontent-length: 1974\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4539,"size_decoded":2427,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (4092)","md5":"e24a9ab904ace18e4d360c0a6d11d977","sha1":"b38a83b0870bd882f8dfa673ee3e7eabccbda4fd","sha256":"bc55933bf3eef53e3cf077d3a1025dff1c3a0a649cfcf25bc3de0e3d23df5704","sha512":"97cb9633d807a705ba5d999c5f1f3da8224f439495f6ab609f472393bf7a7419b4ef3225d50fcbaad2c1c4b7842a23742270f698ba0389b5964f6b0ff58635ec","ssdeep":"96:tgZn6+/Ev/azT+IyhFpSiVIBcWPkYCjqahfa8QFK1:ane2T+1681","tlshash":"a69152d237d2f16b53d948c580bd5612e33878258018a4bcfeed8ca7b27484e3465e79","first_seen":"2025-11-22T14:57:23.807919Z","last_seen":"2026-07-27T07:51:47.240149Z","times_seen":110,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9yYW5kb21AMS4wLjIgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIkBzdGFibGVsaWIvYmluYXJ5IjpyZXR1cm4gYyhfXzAkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18xJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIEk9T2JqZWN0LmNyZWF0ZTt2YXIgYT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIE89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgUD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgeD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsQz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBpPSh0PT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eSh0LHtnZXQ6KGUscik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTplKVtyXX0pOnQpKGZ1bmN0aW9uKHQpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJyt0KyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBGPSh0LGUpPT4oKT0+KHQmJihlPXQodD0wKSksZSk7dmFyIHU9KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKSxMPSh0LGUpPT57Zm9yKHZhciByIGluIGUpYSh0LHIse2dldDplW3JdLGVudW1lcmFibGU6ITB9KX0sZz0odCxlLHIsbyk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgcyBvZiBQKGUpKSFDLmNhbGwodCxzKSYmcyE9PXImJmEodCxzLHtnZXQ6KCk9PmVbc10sZW51bWVyYWJsZTohKG89TyhlLHMpKXx8by5lbnVtZXJhYmxlfSk7cmV0dXJuIHR9O3ZhciBWPSh0LGUscik9PihyPXQhPW51bGw/SSh4KHQpKTp7fSxnKGV8fCF0fHwhdC5fX2VzTW9kdWxlP2EociwiZGVmYXVsdCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOnIsdCkpLEg9dD0+ZyhhKHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0KTt2YXIgQT11KGQ9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2QuQnJvd3NlclJhbmRvbVNvdXJjZT12b2lkIDA7dmFyIHY9NjU1MzYseT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaXNBdmFpbGFibGU9ITEsdGhpcy5pc0luc3RhbnRpYXRlZD0hMTtsZXQgZT10eXBlb2Ygc2VsZjwidSI/c2VsZi5jcnlwdG98fHNlbGYubXNDcnlwdG86bnVsbDtlJiZlLmdldFJhbmRvbVZhbHVlcyE9PXZvaWQgMCYmKHRoaXMuX2NyeXB0bz1lLHRoaXMuaXNBdmFpbGFibGU9ITAsdGhpcy5pc0luc3RhbnRpYXRlZD0hMCl9cmFuZG9tQnl0ZXMoZSl7aWYoIXRoaXMuaXNBdmFpbGFibGV8fCF0aGlzLl9jcnlwdG8pdGhyb3cgbmV3IEVycm9yKCJCcm93c2VyIHJhbmRvbSBieXRlIGdlbmVyYXRvciBpcyBub3QgYXZhaWxhYmxlLiIpO2xldCByPW5ldyBVaW50OEFycmF5KGUpO2ZvcihsZXQgbz0wO288ci5sZW5ndGg7bys9dil0aGlzLl9jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHIuc3ViYXJyYXkobyxvK01hdGgubWluKHIubGVuZ3RoLW8sdikpKTtyZXR1cm4gcn19O2QuQnJvd3NlclJhbmRvbVNvdXJjZT15fSk7dmFyIEI9e307TChCLHtkZWZhdWx0OigpPT5RfSk7dmFyIFEsUj1GKCgpPT57UT17fX0pO3ZhciBFPXUobD0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7bC5Ob2RlUmFuZG9tU291cmNlPXZvaWQgMDt2YXIgVD1pKCJAc3RhYmxlbGliL3dpcGUiKSxiPWNsYXNze2NvbnN0cnVjdG9yKCl7aWYodGhpcy5pc0F2YWlsYWJsZT0hMSx0aGlzLmlzSW5zdGFudGlhdGVkPSExLHR5cGVvZiBpPCJ1Iil7bGV0IGU9KFIoKSxIKEIpKTtlJiZlLnJhbmRvbUJ5dGVzJiYodGhpcy5fY3J5cHRvPWUsdGhpcy5pc0F2YWlsYWJsZT0hMCx0aGlzLmlzSW5zdGFudGlhdGVkPSEwKX19cmFuZG9tQnl0ZXMoZSl7aWYoIXRoaXMuaXNBdmFpbGFibGV8fCF0aGlzLl9jcnlwdG8pdGhyb3cgbmV3IEVycm9yKCJOb2RlLmpzIHJhbmRvbSBieXRlIGdlbmVyYXRvciBpcyBub3QgYXZhaWxhYmxlLiIpO2xldCByPXRoaXMuX2NyeXB0by5yYW5kb21CeXRlcyhlKTtpZihyLmxlbmd0aCE9PWUpdGhyb3cgbmV3IEVycm9yKCJOb2RlUmFuZG9tU291cmNlOiBnb3QgZmV3ZXIgYnl0ZXMgdGhhbiByZXF1ZXN0ZWQiKTtsZXQgbz1uZXcgVWludDhBcnJheShlKTtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoO3MrKylvW3NdPXJbc107cmV0dXJuKDAsVC53aXBlKShyKSxvfX07bC5Ob2RlUmFuZG9tU291cmNlPWJ9KTt2YXIgTT11KGM9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2MuU3lzdGVtUmFuZG9tU291cmNlPXZvaWQgMDt2YXIgaz1BKCksej1FKCksdz1jbGFzc3tjb25zdHJ1Y3Rvcigpe2lmKHRoaXMuaXNBdmFpbGFibGU9ITEsdGhpcy5uYW1lPSIiLHRoaXMuX3NvdXJjZT1uZXcgay5Ccm93c2VyUmFuZG9tU291cmNlLHRoaXMuX3NvdXJjZS5pc0F2YWlsYWJsZSl7dGhpcy5pc0F2YWlsYWJsZT0hMCx0aGlzLm5hbWU9IkJyb3dzZXIiO3JldHVybn1pZih0aGlzLl9zb3VyY2U9bmV3IHouTm9kZVJhbmRvbVNvdXJjZSx0aGlzLl9zb3VyY2UuaXNBdmFpbGFibGUpe3RoaXMuaXNBdmFpbGFibGU9ITAsdGhpcy5uYW1lPSJOb2RlIjtyZXR1cm59fXJhbmRvbUJ5dGVzKGUpe2lmKCF0aGlzLmlzQXZhaWxhYmxlKXRocm93IG5ldyBFcnJvcigiU3lzdGVtIHJhbmRvbSBieXRlIGdlbmVyYXRvciBpcyBub3QgYXZhaWxhYmxlLiIpO3JldHVybiB0aGlzLl9zb3VyY2UucmFuZG9tQnl0ZXMoZSl9fTtjLlN5c3RlbVJhbmRvbVNvdXJjZT13fSk7dmFyIE49dShuPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtuLnJhbmRvbVN0cmluZ0ZvckVudHJvcHk9bi5yYW5kb21TdHJpbmc9bi5yYW5kb21VaW50MzI9bi5yYW5kb21CeXRlcz1uLmRlZmF1bHRSYW5kb21Tb3VyY2U9dm9pZCAwO3ZhciBEPU0oKSxHPWkoIkBzdGFibGVsaWIvYmluYXJ5IikscT1pKCJAc3RhYmxlbGliL3dpcGUiKTtuLmRlZmF1bHRSYW5kb21Tb3VyY2U9bmV3IEQuU3lzdGVtUmFuZG9tU291cmNlO2Z1bmN0aW9uIHAodCxlPW4uZGVmYXVsdFJhbmRvbVNvdXJjZSl7cmV0dXJuIGUucmFuZG9tQnl0ZXModCl9bi5yYW5kb21CeXRlcz1wO2Z1bmN0aW9uIEoodD1uLmRlZmF1bHRSYW5kb21Tb3VyY2Upe2xldCBlPXAoNCx0KSxyPSgwLEcucmVhZFVpbnQzMkxFKShlKTtyZXR1cm4oMCxxLndpcGUpKGUpLHJ9bi5yYW5kb21VaW50MzI9Sjt2YXIgVT0iMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO2Z1bmN0aW9uIGoodCxlPVUscj1uLmRlZmF1bHRSYW5kb21Tb3VyY2Upe2lmKGUubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJyYW5kb21TdHJpbmcgY2hhcnNldCBpcyB0b28gc2hvcnQiKTtpZihlLmxlbmd0aD4yNTYpdGhyb3cgbmV3IEVycm9yKCJyYW5kb21TdHJpbmcgY2hhcnNldCBpcyB0b28gbG9uZyIpO2xldCBvPSIiLHM9ZS5sZW5ndGgsUz0yNTYtMjU2JXM7Zm9yKDt0PjA7KXtsZXQgZj1wKE1hdGguY2VpbCh0KjI1Ni9TKSxyKTtmb3IobGV0IGg9MDtoPGYubGVuZ3RoJiZ0PjA7aCsrKXtsZXQgXz1mW2hdO188UyYmKG8rPWUuY2hhckF0KF8lcyksdC0tKX0oMCxxLndpcGUpKGYpfXJldHVybiBvfW4ucmFuZG9tU3RyaW5nPWo7ZnVuY3Rpb24gSyh0LGU9VSxyPW4uZGVmYXVsdFJhbmRvbVNvdXJjZSl7bGV0IG89TWF0aC5jZWlsKHQvKE1hdGgubG9nKGUubGVuZ3RoKS9NYXRoLkxOMikpO3JldHVybiBqKG8sZSxyKX1uLnJhbmRvbVN0cmluZ0ZvckVudHJvcHk9S30pO3ZhciBtPVYoTigpKSx7X19lc01vZHVsZTp0ZSxyYW5kb21TdHJpbmdGb3JFbnRyb3B5OnJlLHJhbmRvbVN0cmluZzpvZSxyYW5kb21VaW50MzI6bmUscmFuZG9tQnl0ZXM6c2UsZGVmYXVsdFJhbmRvbVNvdXJjZTppZX09bSxhZT1tLmRlZmF1bHQ/P207ZXhwb3J0e3RlIGFzIF9fZXNNb2R1bGUsYWUgYXMgZGVmYXVsdCxpZSBhcyBkZWZhdWx0UmFuZG9tU291cmNlLHNlIGFzIHJhbmRvbUJ5dGVzLG9lIGFzIHJhbmRvbVN0cmluZyxyZSBhcyByYW5kb21TdHJpbmdGb3JFbnRyb3B5LG5lIGFzIHJhbmRvbVVpbnQzMn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXJhbmRvbS5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/poly1305@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.713Z","timestamp":1785138633713,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/poly1305@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/poly1305@1.0.1/es2022/poly1305.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/poly1305@1.0.1/lib/poly1305.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccbc08569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":284,"size_decoded":684,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"c44a43c4c656d42b88b004482bfb77a9","sha1":"23019c47a64b75766c78c141b2e25735ee34f596","sha256":"f1ab5abb814084745af388222281695c50bc30bd636b82693daae15de1f23ec8","sha512":"5b67b54d8aa8188614219fa1fb760e2458b14ca1515c6f6ad0d8a96c48b0ce2db443c3208f862acc385d9886be3c0dedf4aa114e30dda41992452d820713039f","ssdeep":"","tlshash":"8bd05751578ff6542310b9dcd0b4f275477d1844e47b487d1974f751d08248145727de","first_seen":"2025-07-08T23:56:54.648411Z","last_seen":"2026-07-27T07:51:47.205842Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9wb2x5MTMwNUAxLjAuMSAqLwppbXBvcnQgIi9Ac3RhYmxlbGliL2NvbnN0YW50LXRpbWVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwppbXBvcnQgIi9Ac3RhYmxlbGliL3dpcGVAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9wb2x5MTMwNUAxLjAuMS9lczIwMjIvcG9seTEzMDUubWpzIjsKZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gIi9Ac3RhYmxlbGliL3BvbHkxMzA1QDEuMC4xL2VzMjAyMi9wb2x5MTMwNS5tanMiOwo="}},"time_used":117,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/bytes@5.8.0/es2022/bytes.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.937Z","timestamp":1785138633937,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/bytes@5.8.0/es2022/bytes.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/bytes@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16520\r\ncf-ray: a21a0dce1c3b569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":5602,"size_decoded":2733,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (5525)","md5":"541141e847ced167f99faa1819ddef5d","sha1":"e4c763928e7cf25ea1822a2341b69cb760f8d0db","sha256":"2adc98ed005a673fce141084fb385f812a1209d62a462ef4786e4d3583efb12e","sha512":"dad21cd32e0121992b74a8f56e2877c6a05e5167d5663f2255623fbce178f73d1f6d7a747d74686a130db20d96db339d9c14e708c5015916f0a2c43be662de5a","ssdeep":"96:qEIm4/hRBTP5mkjUgfXWX3zT63qS7qvcSLaUDSSyBTuPNrxAc8:dIhbTRmkjU4YT6aS+vcSvDSSyBTGNrp8","tlshash":"5bc168687756b16f8bda009c48e6d207f1fa4fa550c81464d6852f9227bcef442b3fb4","first_seen":"2025-07-08T23:56:54.856053Z","last_seen":"2026-07-27T07:51:47.174998Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYnl0ZXNANS44LjAgKi8KaW1wb3J0e0xvZ2dlciBhcyBhfWZyb20iL0BldGhlcnNwcm9qZWN0L2xvZ2dlckBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7dmFyIHk9ImJ5dGVzLzUuOC4wIjt2YXIgbj1uZXcgYSh5KTtmdW5jdGlvbiB3KHIpe3JldHVybiEhci50b0hleFN0cmluZ31mdW5jdGlvbiBjKHIpe3JldHVybiByLnNsaWNlfHwoci5zbGljZT1mdW5jdGlvbigpe2xldCB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIGMobmV3IFVpbnQ4QXJyYXkoQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KHIsdCkpKX0pLHJ9ZnVuY3Rpb24gQShyKXtyZXR1cm4gZihyKSYmIShyLmxlbmd0aCUyKXx8dShyKX1mdW5jdGlvbiBwKHIpe3JldHVybiB0eXBlb2Ygcj09Im51bWJlciImJnI9PXImJnIlMT09PTB9ZnVuY3Rpb24gdShyKXtpZihyPT1udWxsKXJldHVybiExO2lmKHIuY29uc3RydWN0b3I9PT1VaW50OEFycmF5KXJldHVybiEwO2lmKHR5cGVvZiByPT0ic3RyaW5nInx8IXAoci5sZW5ndGgpfHxyLmxlbmd0aDwwKXJldHVybiExO2ZvcihsZXQgdD0wO3Q8ci5sZW5ndGg7dCsrKXtsZXQgZT1yW3RdO2lmKCFwKGUpfHxlPDB8fGU+PTI1NilyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBoKHIsdCl7aWYodHx8KHQ9e30pLHR5cGVvZiByPT0ibnVtYmVyIil7bi5jaGVja1NhZmVVaW50NTMociwiaW52YWxpZCBhcnJheWlmeSB2YWx1ZSIpO2xldCBlPVtdO2Zvcig7cjspZS51bnNoaWZ0KHImMjU1KSxyPXBhcnNlSW50KFN0cmluZyhyLzI1NikpO3JldHVybiBlLmxlbmd0aD09PTAmJmUucHVzaCgwKSxjKG5ldyBVaW50OEFycmF5KGUpKX1pZih0LmFsbG93TWlzc2luZ1ByZWZpeCYmdHlwZW9mIHI9PSJzdHJpbmciJiZyLnN1YnN0cmluZygwLDIpIT09IjB4IiYmKHI9IjB4IityKSx3KHIpJiYocj1yLnRvSGV4U3RyaW5nKCkpLGYocikpe2xldCBlPXIuc3Vic3RyaW5nKDIpO2UubGVuZ3RoJTImJih0LmhleFBhZD09PSJsZWZ0Ij9lPSIwIitlOnQuaGV4UGFkPT09InJpZ2h0Ij9lKz0iMCI6bi50aHJvd0FyZ3VtZW50RXJyb3IoImhleCBkYXRhIGlzIG9kZC1sZW5ndGgiLCJ2YWx1ZSIscikpO2xldCBvPVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSs9MilvLnB1c2gocGFyc2VJbnQoZS5zdWJzdHJpbmcoaSxpKzIpLDE2KSk7cmV0dXJuIGMobmV3IFVpbnQ4QXJyYXkobykpfXJldHVybiB1KHIpP2MobmV3IFVpbnQ4QXJyYXkocikpOm4udGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGFycmF5aWZ5IHZhbHVlIiwidmFsdWUiLHIpfWZ1bmN0aW9uIFAocil7bGV0IHQ9ci5tYXAoaT0+aChpKSksZT10LnJlZHVjZSgoaSxnKT0+aStnLmxlbmd0aCwwKSxvPW5ldyBVaW50OEFycmF5KGUpO3JldHVybiB0LnJlZHVjZSgoaSxnKT0+KG8uc2V0KGcsaSksaStnLmxlbmd0aCksMCksYyhvKX1mdW5jdGlvbiBVKHIpe2xldCB0PWgocik7aWYodC5sZW5ndGg9PT0wKXJldHVybiB0O2xldCBlPTA7Zm9yKDtlPHQubGVuZ3RoJiZ0W2VdPT09MDspZSsrO3JldHVybiBlJiYodD10LnNsaWNlKGUpKSx0fWZ1bmN0aW9uIGQocix0KXtyPWgociksci5sZW5ndGg+dCYmbi50aHJvd0FyZ3VtZW50RXJyb3IoInZhbHVlIG91dCBvZiByYW5nZSIsInZhbHVlIixhcmd1bWVudHNbMF0pO2xldCBlPW5ldyBVaW50OEFycmF5KHQpO3JldHVybiBlLnNldChyLHQtci5sZW5ndGgpLGMoZSl9ZnVuY3Rpb24gZihyLHQpe3JldHVybiEodHlwZW9mIHIhPSJzdHJpbmcifHwhci5tYXRjaCgvXjB4WzAtOUEtRmEtZl0qJC8pfHx0JiZyLmxlbmd0aCE9PTIrMip0KX12YXIgeD0iMDEyMzQ1Njc4OWFiY2RlZiI7ZnVuY3Rpb24gcyhyLHQpe2lmKHR8fCh0PXt9KSx0eXBlb2Ygcj09Im51bWJlciIpe24uY2hlY2tTYWZlVWludDUzKHIsImludmFsaWQgaGV4bGlmeSB2YWx1ZSIpO2xldCBlPSIiO2Zvcig7cjspZT14W3ImMTVdK2Uscj1NYXRoLmZsb29yKHIvMTYpO3JldHVybiBlLmxlbmd0aD8oZS5sZW5ndGglMiYmKGU9IjAiK2UpLCIweCIrZSk6IjB4MDAifWlmKHR5cGVvZiByPT0iYmlnaW50IilyZXR1cm4gcj1yLnRvU3RyaW5nKDE2KSxyLmxlbmd0aCUyPyIweDAiK3I6IjB4IityO2lmKHQuYWxsb3dNaXNzaW5nUHJlZml4JiZ0eXBlb2Ygcj09InN0cmluZyImJnIuc3Vic3RyaW5nKDAsMikhPT0iMHgiJiYocj0iMHgiK3IpLHcocikpcmV0dXJuIHIudG9IZXhTdHJpbmcoKTtpZihmKHIpKXJldHVybiByLmxlbmd0aCUyJiYodC5oZXhQYWQ9PT0ibGVmdCI/cj0iMHgwIityLnN1YnN0cmluZygyKTp0LmhleFBhZD09PSJyaWdodCI/cis9IjAiOm4udGhyb3dBcmd1bWVudEVycm9yKCJoZXggZGF0YSBpcyBvZGQtbGVuZ3RoIiwidmFsdWUiLHIpKSxyLnRvTG93ZXJDYXNlKCk7aWYodShyKSl7bGV0IGU9IjB4Ijtmb3IobGV0IG89MDtvPHIubGVuZ3RoO28rKyl7bGV0IGk9cltvXTtlKz14WyhpJjI0MCk+PjRdK3hbaSYxNV19cmV0dXJuIGV9cmV0dXJuIG4udGhyb3dBcmd1bWVudEVycm9yKCJpbnZhbGlkIGhleGxpZnkgdmFsdWUiLCJ2YWx1ZSIscil9ZnVuY3Rpb24gSChyKXtpZih0eXBlb2YgciE9InN0cmluZyIpcj1zKHIpO2Vsc2UgaWYoIWYocil8fHIubGVuZ3RoJTIpcmV0dXJuIG51bGw7cmV0dXJuKHIubGVuZ3RoLTIpLzJ9ZnVuY3Rpb24gSShyLHQsZSl7cmV0dXJuIHR5cGVvZiByIT0ic3RyaW5nIj9yPXMocik6KCFmKHIpfHxyLmxlbmd0aCUyKSYmbi50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgaGV4RGF0YSIsInZhbHVlIixyKSx0PTIrMip0LGUhPW51bGw/IjB4IityLnN1YnN0cmluZyh0LDIrMiplKToiMHgiK3Iuc3Vic3RyaW5nKHQpfWZ1bmN0aW9uIEwocil7bGV0IHQ9IjB4IjtyZXR1cm4gci5mb3JFYWNoKGU9Pnt0Kz1zKGUpLnN1YnN0cmluZygyKX0pLHR9ZnVuY3Rpb24gayhyKXtsZXQgdD1iKHMocix7aGV4UGFkOiJsZWZ0In0pKTtyZXR1cm4gdD09PSIweCI/IjB4MCI6dH1mdW5jdGlvbiBiKHIpe3R5cGVvZiByIT0ic3RyaW5nIiYmKHI9cyhyKSksZihyKXx8bi50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgaGV4IHN0cmluZyIsInZhbHVlIixyKSxyPXIuc3Vic3RyaW5nKDIpO2xldCB0PTA7Zm9yKDt0PHIubGVuZ3RoJiZyW3RdPT09IjAiOyl0Kys7cmV0dXJuIjB4IityLnN1YnN0cmluZyh0KX1mdW5jdGlvbiBsKHIsdCl7Zm9yKHR5cGVvZiByIT0ic3RyaW5nIj9yPXMocik6ZihyKXx8bi50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgaGV4IHN0cmluZyIsInZhbHVlIixyKSxyLmxlbmd0aD4yKnQrMiYmbi50aHJvd0FyZ3VtZW50RXJyb3IoInZhbHVlIG91dCBvZiByYW5nZSIsInZhbHVlIixhcmd1bWVudHNbMV0pO3IubGVuZ3RoPDIqdCsyOylyPSIweDAiK3Iuc3Vic3RyaW5nKDIpO3JldHVybiByfWZ1bmN0aW9uIEUocil7bGV0IHQ9e3I6IjB4IixzOiIweCIsX3ZzOiIweCIscmVjb3ZlcnlQYXJhbTowLHY6MCx5UGFyaXR5QW5kUzoiMHgiLGNvbXBhY3Q6IjB4In07aWYoQShyKSl7bGV0IGU9aChyKTtlLmxlbmd0aD09PTY0Pyh0LnY9MjcrKGVbMzJdPj43KSxlWzMyXSY9MTI3LHQucj1zKGUuc2xpY2UoMCwzMikpLHQucz1zKGUuc2xpY2UoMzIsNjQpKSk6ZS5sZW5ndGg9PT02NT8odC5yPXMoZS5zbGljZSgwLDMyKSksdC5zPXMoZS5zbGljZSgzMiw2NCkpLHQudj1lWzY0XSk6bi50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgc2lnbmF0dXJlIHN0cmluZyIsInNpZ25hdHVyZSIsciksdC52PDI3JiYodC52PT09MHx8dC52PT09MT90LnYrPTI3Om4udGhyb3dBcmd1bWVudEVycm9yKCJzaWduYXR1cmUgaW52YWxpZCB2IGJ5dGUiLCJzaWduYXR1cmUiLHIpKSx0LnJlY292ZXJ5UGFyYW09MS10LnYlMix0LnJlY292ZXJ5UGFyYW0mJihlWzMyXXw9MTI4KSx0Ll92cz1zKGUuc2xpY2UoMzIsNjQpKX1lbHNle2lmKHQucj1yLnIsdC5zPXIucyx0LnY9ci52LHQucmVjb3ZlcnlQYXJhbT1yLnJlY292ZXJ5UGFyYW0sdC5fdnM9ci5fdnMsdC5fdnMhPW51bGwpe2xldCBpPWQoaCh0Ll92cyksMzIpO3QuX3ZzPXMoaSk7bGV0IGc9aVswXT49MTI4PzE6MDt0LnJlY292ZXJ5UGFyYW09PW51bGw/dC5yZWNvdmVyeVBhcmFtPWc6dC5yZWNvdmVyeVBhcmFtIT09ZyYmbi50aHJvd0FyZ3VtZW50RXJyb3IoInNpZ25hdHVyZSByZWNvdmVyeVBhcmFtIG1pc21hdGNoIF92cyIsInNpZ25hdHVyZSIsciksaVswXSY9MTI3O2xldCBtPXMoaSk7dC5zPT1udWxsP3Qucz1tOnQucyE9PW0mJm4udGhyb3dBcmd1bWVudEVycm9yKCJzaWduYXR1cmUgdiBtaXNtYXRjaCBfdnMiLCJzaWduYXR1cmUiLHIpfWlmKHQucmVjb3ZlcnlQYXJhbT09bnVsbCl0LnY9PW51bGw/bi50aHJvd0FyZ3VtZW50RXJyb3IoInNpZ25hdHVyZSBtaXNzaW5nIHYgYW5kIHJlY292ZXJ5UGFyYW0iLCJzaWduYXR1cmUiLHIpOnQudj09PTB8fHQudj09PTE/dC5yZWNvdmVyeVBhcmFtPXQudjp0LnJlY292ZXJ5UGFyYW09MS10LnYlMjtlbHNlIGlmKHQudj09bnVsbCl0LnY9MjcrdC5yZWNvdmVyeVBhcmFtO2Vsc2V7bGV0IGk9dC52PT09MHx8dC52PT09MT90LnY6MS10LnYlMjt0LnJlY292ZXJ5UGFyYW0hPT1pJiZuLnRocm93QXJndW1lbnRFcnJvcigic2lnbmF0dXJlIHJlY292ZXJ5UGFyYW0gbWlzbWF0Y2ggdiIsInNpZ25hdHVyZSIscil9dC5yPT1udWxsfHwhZih0LnIpP24udGhyb3dBcmd1bWVudEVycm9yKCJzaWduYXR1cmUgbWlzc2luZyBvciBpbnZhbGlkIHIiLCJzaWduYXR1cmUiLHIpOnQucj1sKHQuciwzMiksdC5zPT1udWxsfHwhZih0LnMpP24udGhyb3dBcmd1bWVudEVycm9yKCJzaWduYXR1cmUgbWlzc2luZyBvciBpbnZhbGlkIHMiLCJzaWduYXR1cmUiLHIpOnQucz1sKHQucywzMik7bGV0IGU9aCh0LnMpO2VbMF0+PTEyOCYmbi50aHJvd0FyZ3VtZW50RXJyb3IoInNpZ25hdHVyZSBzIG91dCBvZiByYW5nZSIsInNpZ25hdHVyZSIsciksdC5yZWNvdmVyeVBhcmFtJiYoZVswXXw9MTI4KTtsZXQgbz1zKGUpO3QuX3ZzJiYoZih0Ll92cyl8fG4udGhyb3dBcmd1bWVudEVycm9yKCJzaWduYXR1cmUgaW52YWxpZCBfdnMiLCJzaWduYXR1cmUiLHIpLHQuX3ZzPWwodC5fdnMsMzIpKSx0Ll92cz09bnVsbD90Ll92cz1vOnQuX3ZzIT09byYmbi50aHJvd0FyZ3VtZW50RXJyb3IoInNpZ25hdHVyZSBfdnMgbWlzbWF0Y2ggdiBhbmQgcyIsInNpZ25hdHVyZSIscil9cmV0dXJuIHQueVBhcml0eUFuZFM9dC5fdnMsdC5jb21wYWN0PXQucit0LnlQYXJpdHlBbmRTLnN1YnN0cmluZygyKSx0fWZ1bmN0aW9uIEMocil7cmV0dXJuIHI9RShyKSxzKFAoW3IucixyLnMsci5yZWNvdmVyeVBhcmFtPyIweDFjIjoiMHgxYiJdKSl9ZXhwb3J0e2ggYXMgYXJyYXlpZnksUCBhcyBjb25jYXQsTCBhcyBoZXhDb25jYXQsSCBhcyBoZXhEYXRhTGVuZ3RoLEkgYXMgaGV4RGF0YVNsaWNlLGIgYXMgaGV4U3RyaXBaZXJvcyxrIGFzIGhleFZhbHVlLGwgYXMgaGV4WmVyb1BhZCxzIGFzIGhleGxpZnksdSBhcyBpc0J5dGVzLEEgYXMgaXNCeXRlc0xpa2UsZiBhcyBpc0hleFN0cmluZyxDIGFzIGpvaW5TaWduYXR1cmUsRSBhcyBzcGxpdFNpZ25hdHVyZSxVIGFzIHN0cmlwWmVyb3MsZCBhcyB6ZXJvUGFkfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Ynl0ZXMubWpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/ed25519@1.0.3/es2022/ed25519.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.017Z","timestamp":1785138634017,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/ed25519@1.0.3/es2022/ed25519.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/ed25519@%5E1.0.2?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:03:01 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-cache-status: HIT\r\nage: 16517\r\ncf-ray: a21a0dce9c5d569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":11769,"size_decoded":5213,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (11220)","md5":"9a0708a790cda5d14b67c55a2dd9a4b8","sha1":"dfbc77dd0439cb1eed52191d0c82b8261c643f23","sha256":"9fa1e1546bb7ece2668e4e1b3e82c299921d8d04f77327e41fbcc7370ad9e364","sha512":"2502a9d62c376d494fa486b59a3ee94e963f1ee6f656dc35770f710148d405ec30a94bc1d1011d15a6663de30beadf0dc2ab46b249120d1824e2e8c3f3690b12","ssdeep":"192:lTXDhxxSs53ETFdzhACNYyx4tcjLkAVbE89XVwCnrycjLkAVbE89XVwCnrTSpi2J:HxxEhdFAjcjLkAVbE89XVwCnrycjLkAq","tlshash":"fa32b8252acab07b42a757131bdd901a231cd1f050880f7dde64d9de9a387b890efb1c","first_seen":"2025-07-08T23:56:54.577434Z","last_seen":"2026-07-27T07:51:47.188973Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9lZDI1NTE5QDEuMC4zICovCmltcG9ydCphcyBfXzAkIGZyb20iL0BzdGFibGVsaWIvcmFuZG9tQF4xLjAuMj90YXJnZXQ9ZXMyMDIyIjtpbXBvcnQqYXMgX18xJCBmcm9tIi9Ac3RhYmxlbGliL3NoYTUxMkBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0KmFzIF9fMiQgZnJvbSIvQHN0YWJsZWxpYi93aXBlQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjt2YXIgcmVxdWlyZT1uPT57Y29uc3QgZT1tPT50eXBlb2YgbS5kZWZhdWx0PCJ1Ij9tLmRlZmF1bHQ6bSxjPW09Pk9iamVjdC5hc3NpZ24oe19fZXNNb2R1bGU6dHJ1ZX0sbSk7c3dpdGNoKG4pe2Nhc2UiQHN0YWJsZWxpYi9yYW5kb20iOnJldHVybiBjKF9fMCQpO2Nhc2UiQHN0YWJsZWxpYi9zaGE1MTIiOnJldHVybiBjKF9fMSQpO2Nhc2UiQHN0YWJsZWxpYi93aXBlIjpyZXR1cm4gYyhfXzIkKTtkZWZhdWx0OmNvbnNvbGUuZXJyb3IoJ21vZHVsZSAiJytuKyciIG5vdCBmb3VuZCcpO3JldHVybiBudWxsO319Owp2YXIgdjU9T2JqZWN0LmNyZWF0ZTt2YXIgYjU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBVNT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBGNT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgUjU9T2JqZWN0LmdldFByb3RvdHlwZU9mLEk1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGk1PShvPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShvLHtnZXQ6KG4scik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTpuKVtyXX0pOm8pKGZ1bmN0aW9uKG8pe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytvKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBYNT0obyxuKT0+KCk9PihufHxvKChuPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxuKSxuLmV4cG9ydHMpO3ZhciBZNT0obyxuLHIsdCk9PntpZihuJiZ0eXBlb2Ygbj09Im9iamVjdCJ8fHR5cGVvZiBuPT0iZnVuY3Rpb24iKWZvcihsZXQgZSBvZiBGNShuKSkhSTUuY2FsbChvLGUpJiZlIT09ciYmYjUobyxlLHtnZXQ6KCk9Pm5bZV0sZW51bWVyYWJsZTohKHQ9VTUobixlKSl8fHQuZW51bWVyYWJsZX0pO3JldHVybiBvfTt2YXIgazU9KG8sbixyKT0+KHI9byE9bnVsbD92NShSNShvKSk6e30sWTUobnx8IW98fCFvLl9fZXNNb2R1bGU/YjUociwiZGVmYXVsdCIse3ZhbHVlOm8sZW51bWVyYWJsZTohMH0pOnIsbykpO3ZhciBQNT1YNShpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtpLmNvbnZlcnRTZWNyZXRLZXlUb1gyNTUxOT1pLmNvbnZlcnRQdWJsaWNLZXlUb1gyNTUxOT1pLnZlcmlmeT1pLnNpZ249aS5leHRyYWN0UHVibGljS2V5RnJvbVNlY3JldEtleT1pLmdlbmVyYXRlS2V5UGFpcj1pLmdlbmVyYXRlS2V5UGFpckZyb21TZWVkPWkuU0VFRF9MRU5HVEg9aS5TRUNSRVRfS0VZX0xFTkdUSD1pLlBVQkxJQ19LRVlfTEVOR1RIPWkuU0lHTkFUVVJFX0xFTkdUSD12b2lkIDA7dmFyIEM1PWk1KCJAc3RhYmxlbGliL3JhbmRvbSIpLG81PWk1KCJAc3RhYmxlbGliL3NoYTUxMiIpLHc1PWk1KCJAc3RhYmxlbGliL3dpcGUiKTtpLlNJR05BVFVSRV9MRU5HVEg9NjQ7aS5QVUJMSUNfS0VZX0xFTkdUSD0zMjtpLlNFQ1JFVF9LRVlfTEVOR1RIPTY0O2kuU0VFRF9MRU5HVEg9MzI7ZnVuY3Rpb24gZihvKXtsZXQgbj1uZXcgRmxvYXQ2NEFycmF5KDE2KTtpZihvKWZvcihsZXQgcj0wO3I8by5sZW5ndGg7cisrKW5bcl09b1tyXTtyZXR1cm4gbn12YXIgRDU9bmV3IFVpbnQ4QXJyYXkoMzIpO0Q1WzBdPTk7dmFyIHg1PWYoKSxlNT1mKFsxXSksajU9ZihbMzA4ODMsNDk1MywxOTkxNCwzMDE4Nyw1NTQ2NywxNjcwNSwyNjM3LDExMiw1OTU0NCwzMDU4NSwxNjUwNSwzNjAzOSw2NTEzOSwxMTExOSwyNzg4NiwyMDk5NV0pLHA1PWYoWzYxNzg1LDk5MDYsMzk4MjgsNjAzNzQsNDUzOTgsMzM0MTEsNTI3NCwyMjQsNTM1NTIsNjExNzEsMzMwMTAsNjU0Miw2NDc0MywyMjIzOSw1NTc3Miw5MjIyXSksTTU9ZihbNTQ1NTQsMzY2NDUsMTE2MTYsNTE1NDIsNDI5MzAsMzgxODEsNTEwNDAsMjY5MjQsNTY0MTIsNjQ5ODIsNTc5MDUsNDkzMTYsMjE1MDIsNTI1OTAsMTQwMzUsODU1M10pLFQ1PWYoWzI2MjAwLDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0LDI2MjE0XSksQjU9ZihbNDExMzYsMTg5NTgsNjk1MSw1MDQxNCw1ODQ4OCw0NDMzNSw2MTUwLDEyMDk5LDU1MjA3LDE1ODY3LDE1MywxMTA4NSw1NzA5OSwyMDQxNyw5MzQ0LDExMTM5XSk7ZnVuY3Rpb24gSihvLG4pe2ZvcihsZXQgcj0wO3I8MTY7cisrKW9bcl09bltyXXwwfWZ1bmN0aW9uIGw1KG8pe2xldCBuPTE7Zm9yKGxldCByPTA7cjwxNjtyKyspe2xldCB0PW9bcl0rbis2NTUzNTtuPU1hdGguZmxvb3IodC82NTUzNiksb1tyXT10LW4qNjU1MzZ9b1swXSs9bi0xKzM3KihuLTEpfWZ1bmN0aW9uIFM1KG8sbixyKXtsZXQgdD1+KHItMSk7Zm9yKGxldCBlPTA7ZTwxNjtlKyspe2xldCBjPXQmKG9bZV1ebltlXSk7b1tlXV49YyxuW2VdXj1jfX1mdW5jdGlvbiBuNShvLG4pe2xldCByPWYoKSx0PWYoKTtmb3IobGV0IGU9MDtlPDE2O2UrKyl0W2VdPW5bZV07bDUodCksbDUodCksbDUodCk7Zm9yKGxldCBlPTA7ZTwyO2UrKyl7clswXT10WzBdLTY1NTE3O2ZvcihsZXQgYT0xO2E8MTU7YSsrKXJbYV09dFthXS02NTUzNS0oclthLTFdPj4xNiYxKSxyW2EtMV0mPTY1NTM1O3JbMTVdPXRbMTVdLTMyNzY3LShyWzE0XT4+MTYmMSk7bGV0IGM9clsxNV0+PjE2JjE7clsxNF0mPTY1NTM1LFM1KHQsciwxLWMpfWZvcihsZXQgZT0wO2U8MTY7ZSsrKW9bMiplXT10W2VdJjI1NSxvWzIqZSsxXT10W2VdPj44fWZ1bmN0aW9uIEc1KG8sbil7bGV0IHI9MDtmb3IobGV0IHQ9MDt0PDMyO3QrKylyfD1vW3RdXm5bdF07cmV0dXJuKDEmci0xPj4+OCktMX1mdW5jdGlvbiBfNShvLG4pe2xldCByPW5ldyBVaW50OEFycmF5KDMyKSx0PW5ldyBVaW50OEFycmF5KDMyKTtyZXR1cm4gbjUocixvKSxuNSh0LG4pLEc1KHIsdCl9ZnVuY3Rpb24gTDUobyl7bGV0IG49bmV3IFVpbnQ4QXJyYXkoMzIpO3JldHVybiBuNShuLG8pLG5bMF0mMX1mdW5jdGlvbiAkNShvLG4pe2ZvcihsZXQgcj0wO3I8MTY7cisrKW9bcl09blsyKnJdKyhuWzIqcisxXTw8OCk7b1sxNV0mPTMyNzY3fWZ1bmN0aW9uIFYobyxuLHIpe2ZvcihsZXQgdD0wO3Q8MTY7dCsrKW9bdF09blt0XStyW3RdfWZ1bmN0aW9uIFoobyxuLHIpe2ZvcihsZXQgdD0wO3Q8MTY7dCsrKW9bdF09blt0XS1yW3RdfWZ1bmN0aW9uIGwobyxuLHIpe2xldCB0LGUsYz0wLGE9MCx4PTAsRT0wLHM9MCx1PTAsaj0wLEM9MCxZPTAsXz0wLFQ9MCxNPTAsYj0wLGg9MCxkPTAseT0wLEs9MCxrPTAsRD0wLHA9MCxCPTAsJD0wLHo9MCxPPTAscT0wLFE9MCx0NT0wLHI1PTAsZjU9MCxhNT0wLGg1PTAsdz1yWzBdLFM9clsxXSxHPXJbMl0sTD1yWzNdLE49cls0XSxnPXJbNV0sQT1yWzZdLG09cls3XSxIPXJbOF0sUD1yWzldLHY9clsxMF0sVT1yWzExXSxGPXJbMTJdLFI9clsxM10sST1yWzE0XSxYPXJbMTVdO3Q9blswXSxjKz10KncsYSs9dCpTLHgrPXQqRyxFKz10Kkwscys9dCpOLHUrPXQqZyxqKz10KkEsQys9dCptLFkrPXQqSCxfKz10KlAsVCs9dCp2LE0rPXQqVSxiKz10KkYsaCs9dCpSLGQrPXQqSSx5Kz10KlgsdD1uWzFdLGErPXQqdyx4Kz10KlMsRSs9dCpHLHMrPXQqTCx1Kz10Kk4sais9dCpnLEMrPXQqQSxZKz10Km0sXys9dCpILFQrPXQqUCxNKz10KnYsYis9dCpVLGgrPXQqRixkKz10KlIseSs9dCpJLEsrPXQqWCx0PW5bMl0seCs9dCp3LEUrPXQqUyxzKz10KkcsdSs9dCpMLGorPXQqTixDKz10KmcsWSs9dCpBLF8rPXQqbSxUKz10KkgsTSs9dCpQLGIrPXQqdixoKz10KlUsZCs9dCpGLHkrPXQqUixLKz10Kkksays9dCpYLHQ9blszXSxFKz10Kncscys9dCpTLHUrPXQqRyxqKz10KkwsQys9dCpOLFkrPXQqZyxfKz10KkEsVCs9dCptLE0rPXQqSCxiKz10KlAsaCs9dCp2LGQrPXQqVSx5Kz10KkYsSys9dCpSLGsrPXQqSSxEKz10KlgsdD1uWzRdLHMrPXQqdyx1Kz10KlMsais9dCpHLEMrPXQqTCxZKz10Kk4sXys9dCpnLFQrPXQqQSxNKz10Km0sYis9dCpILGgrPXQqUCxkKz10KnYseSs9dCpVLEsrPXQqRixrKz10KlIsRCs9dCpJLHArPXQqWCx0PW5bNV0sdSs9dCp3LGorPXQqUyxDKz10KkcsWSs9dCpMLF8rPXQqTixUKz10KmcsTSs9dCpBLGIrPXQqbSxoKz10KkgsZCs9dCpQLHkrPXQqdixLKz10KlUsays9dCpGLEQrPXQqUixwKz10KkksQis9dCpYLHQ9bls2XSxqKz10KncsQys9dCpTLFkrPXQqRyxfKz10KkwsVCs9dCpOLE0rPXQqZyxiKz10KkEsaCs9dCptLGQrPXQqSCx5Kz10KlAsSys9dCp2LGsrPXQqVSxEKz10KkYscCs9dCpSLEIrPXQqSSwkKz10KlgsdD1uWzddLEMrPXQqdyxZKz10KlMsXys9dCpHLFQrPXQqTCxNKz10Kk4sYis9dCpnLGgrPXQqQSxkKz10Km0seSs9dCpILEsrPXQqUCxrKz10KnYsRCs9dCpVLHArPXQqRixCKz10KlIsJCs9dCpJLHorPXQqWCx0PW5bOF0sWSs9dCp3LF8rPXQqUyxUKz10KkcsTSs9dCpMLGIrPXQqTixoKz10KmcsZCs9dCpBLHkrPXQqbSxLKz10Kkgsays9dCpQLEQrPXQqdixwKz10KlUsQis9dCpGLCQrPXQqUix6Kz10KkksTys9dCpYLHQ9bls5XSxfKz10KncsVCs9dCpTLE0rPXQqRyxiKz10KkwsaCs9dCpOLGQrPXQqZyx5Kz10KkEsSys9dCptLGsrPXQqSCxEKz10KlAscCs9dCp2LEIrPXQqVSwkKz10KkYseis9dCpSLE8rPXQqSSxxKz10KlgsdD1uWzEwXSxUKz10KncsTSs9dCpTLGIrPXQqRyxoKz10KkwsZCs9dCpOLHkrPXQqZyxLKz10KkEsays9dCptLEQrPXQqSCxwKz10KlAsQis9dCp2LCQrPXQqVSx6Kz10KkYsTys9dCpSLHErPXQqSSxRKz10KlgsdD1uWzExXSxNKz10KncsYis9dCpTLGgrPXQqRyxkKz10KkwseSs9dCpOLEsrPXQqZyxrKz10KkEsRCs9dCptLHArPXQqSCxCKz10KlAsJCs9dCp2LHorPXQqVSxPKz10KkYscSs9dCpSLFErPXQqSSx0NSs9dCpYLHQ9blsxMl0sYis9dCp3LGgrPXQqUyxkKz10KkcseSs9dCpMLEsrPXQqTixrKz10KmcsRCs9dCpBLHArPXQqbSxCKz10KkgsJCs9dCpQLHorPXQqdixPKz10KlUscSs9dCpGLFErPXQqUix0NSs9dCpJLHI1Kz10KlgsdD1uWzEzXSxoKz10KncsZCs9dCpTLHkrPXQqRyxLKz10Kkwsays9dCpOLEQrPXQqZyxwKz10KkEsQis9dCptLCQrPXQqSCx6Kz10KlAsTys9dCp2LHErPXQqVSxRKz10KkYsdDUrPXQqUixyNSs9dCpJLGY1Kz10KlgsdD1uWzE0XSxkKz10KncseSs9dCpTLEsrPXQqRyxrKz10KkwsRCs9dCpOLHArPXQqZyxCKz10KkEsJCs9dCptLHorPXQqSCxPKz10KlAscSs9dCp2LFErPXQqVSx0NSs9dCpGLHI1Kz10KlIsZjUrPXQqSSxhNSs9dCpYLHQ9blsxNV0seSs9dCp3LEsrPXQqUyxrKz10KkcsRCs9dCpMLHArPXQqTixCKz10KmcsJCs9dCpBLHorPXQqbSxPKz10KkgscSs9dCpQLFErPXQqdix0NSs9dCpVLHI1Kz10KkYsZjUrPXQqUixhNSs9dCpJLGg1Kz10KlgsYys9MzgqSyxhKz0zOCprLHgrPTM4KkQsRSs9MzgqcCxzKz0zOCpCLHUrPTM4KiQsais9MzgqeixDKz0zOCpPLFkrPTM4KnEsXys9MzgqUSxUKz0zOCp0NSxNKz0zOCpyNSxiKz0zOCpmNSxoKz0zOCphNSxkKz0zOCpoNSxlPTEsdD1jK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLGM9dC1lKjY1NTM2LHQ9YStlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxhPXQtZSo2NTUzNix0PXgrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNikseD10LWUqNjU1MzYsdD1FK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLEU9dC1lKjY1NTM2LHQ9cytlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxzPXQtZSo2NTUzNix0PXUrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksdT10LWUqNjU1MzYsdD1qK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLGo9dC1lKjY1NTM2LHQ9QytlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxDPXQtZSo2NTUzNix0PVkrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksWT10LWUqNjU1MzYsdD1fK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLF89dC1lKjY1NTM2LHQ9VCtlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxUPXQtZSo2NTUzNix0PU0rZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksTT10LWUqNjU1MzYsdD1iK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLGI9dC1lKjY1NTM2LHQ9aCtlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxoPXQtZSo2NTUzNix0PWQrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksZD10LWUqNjU1MzYsdD15K2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLHk9dC1lKjY1NTM2LGMrPWUtMSszNyooZS0xKSxlPTEsdD1jK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLGM9dC1lKjY1NTM2LHQ9YStlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxhPXQtZSo2NTUzNix0PXgrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNikseD10LWUqNjU1MzYsdD1FK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLEU9dC1lKjY1NTM2LHQ9cytlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxzPXQtZSo2NTUzNix0PXUrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksdT10LWUqNjU1MzYsdD1qK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLGo9dC1lKjY1NTM2LHQ9QytlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxDPXQtZSo2NTUzNix0PVkrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksWT10LWUqNjU1MzYsdD1fK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLF89dC1lKjY1NTM2LHQ9VCtlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxUPXQtZSo2NTUzNix0PU0rZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksTT10LWUqNjU1MzYsdD1iK2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLGI9dC1lKjY1NTM2LHQ9aCtlKzY1NTM1LGU9TWF0aC5mbG9vcih0LzY1NTM2KSxoPXQtZSo2NTUzNix0PWQrZSs2NTUzNSxlPU1hdGguZmxvb3IodC82NTUzNiksZD10LWUqNjU1MzYsdD15K2UrNjU1MzUsZT1NYXRoLmZsb29yKHQvNjU1MzYpLHk9dC1lKjY1NTM2LGMrPWUtMSszNyooZS0xKSxvWzBdPWMsb1sxXT1hLG9bMl09eCxvWzNdPUUsb1s0XT1zLG9bNV09dSxvWzZdPWosb1s3XT1DLG9bOF09WSxvWzldPV8sb1sxMF09VCxvWzExXT1NLG9bMTJdPWIsb1sxM109aCxvWzE0XT1kLG9bMTVdPXl9ZnVuY3Rpb24gVyhvLG4pe2wobyxuLG4pfWZ1bmN0aW9uIE41KG8sbil7bGV0IHI9ZigpLHQ7Zm9yKHQ9MDt0PDE2O3QrKylyW3RdPW5bdF07Zm9yKHQ9MjUzO3Q+PTA7dC0tKVcocixyKSx0IT09MiYmdCE9PTQmJmwocixyLG4pO2Zvcih0PTA7dDwxNjt0Kyspb1t0XT1yW3RdfWZ1bmN0aW9uIHo1KG8sbil7bGV0IHI9ZigpLHQ7Zm9yKHQ9MDt0PDE2O3QrKylyW3RdPW5bdF07Zm9yKHQ9MjUwO3Q+PTA7dC0tKVcocixyKSx0IT09MSYmbChyLHIsbik7Zm9yKHQ9MDt0PDE2O3QrKylvW3RdPXJbdF19ZnVuY3Rpb24gdTUobyxuKXtsZXQgcj1mKCksdD1mKCksZT1mKCksYz1mKCksYT1mKCkseD1mKCksRT1mKCkscz1mKCksdT1mKCk7WihyLG9bMV0sb1swXSksWih1LG5bMV0sblswXSksbChyLHIsdSksVih0LG9bMF0sb1sxXSksVih1LG5bMF0sblsxXSksbCh0LHQsdSksbChlLG9bM10sblszXSksbChlLGUscDUpLGwoYyxvWzJdLG5bMl0pLFYoYyxjLGMpLFooYSx0LHIpLFooeCxjLGUpLFYoRSxjLGUpLFYocyx0LHIpLGwob1swXSxhLHgpLGwob1sxXSxzLEUpLGwob1syXSxFLHgpLGwob1szXSxhLHMpfWZ1bmN0aW9uIEs1KG8sbixyKXtmb3IobGV0IHQ9MDt0PDQ7dCsrKVM1KG9bdF0sblt0XSxyKX1mdW5jdGlvbiB5NShvLG4pe2xldCByPWYoKSx0PWYoKSxlPWYoKTtONShlLG5bMl0pLGwocixuWzBdLGUpLGwodCxuWzFdLGUpLG41KG8sdCksb1szMV1ePUw1KHIpPDw3fWZ1bmN0aW9uIGc1KG8sbixyKXtKKG9bMF0seDUpLEoob1sxXSxlNSksSihvWzJdLGU1KSxKKG9bM10seDUpO2ZvcihsZXQgdD0yNTU7dD49MDstLXQpe2xldCBlPXJbdC84fDBdPj4odCY3KSYxO0s1KG8sbixlKSx1NShuLG8pLHU1KG8sbyksSzUobyxuLGUpfX1mdW5jdGlvbiBFNShvLG4pe2xldCByPVtmKCksZigpLGYoKSxmKCldO0ooclswXSxNNSksSihyWzFdLFQ1KSxKKHJbMl0sZTUpLGwoclszXSxNNSxUNSksZzUobyxyLG4pfWZ1bmN0aW9uIEE1KG8pe2lmKG8ubGVuZ3RoIT09aS5TRUVEX0xFTkdUSCl0aHJvdyBuZXcgRXJyb3IoYGVkMjU1MTk6IHNlZWQgbXVzdCBiZSAke2kuU0VFRF9MRU5HVEh9IGJ5dGVzYCk7bGV0IG49KDAsbzUuaGFzaCkobyk7blswXSY9MjQ4LG5bMzFdJj0xMjcsblszMV18PTY0O2xldCByPW5ldyBVaW50OEFycmF5KDMyKSx0PVtmKCksZigpLGYoKSxmKCldO0U1KHQsbikseTUocix0KTtsZXQgZT1uZXcgVWludDhBcnJheSg2NCk7cmV0dXJuIGUuc2V0KG8pLGUuc2V0KHIsMzIpLHtwdWJsaWNLZXk6cixzZWNyZXRLZXk6ZX19aS5nZW5lcmF0ZUtleVBhaXJGcm9tU2VlZD1BNTtmdW5jdGlvbiBPNShvKXtsZXQgbj0oMCxDNS5yYW5kb21CeXRlcykoMzIsbykscj1BNShuKTtyZXR1cm4oMCx3NS53aXBlKShuKSxyfWkuZ2VuZXJhdGVLZXlQYWlyPU81O2Z1bmN0aW9uIHE1KG8pe2lmKG8ubGVuZ3RoIT09aS5TRUNSRVRfS0VZX0xFTkdUSCl0aHJvdyBuZXcgRXJyb3IoYGVkMjU1MTk6IHNlY3JldCBrZXkgbXVzdCBiZSAke2kuU0VDUkVUX0tFWV9MRU5HVEh9IGJ5dGVzYCk7cmV0dXJuIG5ldyBVaW50OEFycmF5KG8uc3ViYXJyYXkoMzIpKX1pLmV4dHJhY3RQdWJsaWNLZXlGcm9tU2VjcmV0S2V5PXE1O3ZhciBzNT1uZXcgRmxvYXQ2NEFycmF5KFsyMzcsMjExLDI0NSw5MiwyNiw5OSwxOCw4OCwyMTQsMTU2LDI0NywxNjIsMjIyLDI0OSwyMjIsMjAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMTZdKTtmdW5jdGlvbiBtNShvLG4pe2xldCByLHQsZSxjO2Zvcih0PTYzO3Q+PTMyOy0tdCl7Zm9yKHI9MCxlPXQtMzIsYz10LTEyO2U8YzsrK2UpbltlXSs9ci0xNipuW3RdKnM1W2UtKHQtMzIpXSxyPU1hdGguZmxvb3IoKG5bZV0rMTI4KS8yNTYpLG5bZV0tPXIqMjU2O25bZV0rPXIsblt0XT0wfWZvcihyPTAsZT0wO2U8MzI7ZSsrKW5bZV0rPXItKG5bMzFdPj40KSpzNVtlXSxyPW5bZV0+PjgsbltlXSY9MjU1O2ZvcihlPTA7ZTwzMjtlKyspbltlXS09cipzNVtlXTtmb3IodD0wO3Q8MzI7dCsrKW5bdCsxXSs9blt0XT4+OCxvW3RdPW5bdF0mMjU1fWZ1bmN0aW9uIGQ1KG8pe2xldCBuPW5ldyBGbG9hdDY0QXJyYXkoNjQpO2ZvcihsZXQgcj0wO3I8NjQ7cisrKW5bcl09b1tyXTtmb3IobGV0IHI9MDtyPDY0O3IrKylvW3JdPTA7bTUobyxuKX1mdW5jdGlvbiBKNShvLG4pe2xldCByPW5ldyBGbG9hdDY0QXJyYXkoNjQpLHQ9W2YoKSxmKCksZigpLGYoKV0sZT0oMCxvNS5oYXNoKShvLnN1YmFycmF5KDAsMzIpKTtlWzBdJj0yNDgsZVszMV0mPTEyNyxlWzMxXXw9NjQ7bGV0IGM9bmV3IFVpbnQ4QXJyYXkoNjQpO2Muc2V0KGUuc3ViYXJyYXkoMzIpLDMyKTtsZXQgYT1uZXcgbzUuU0hBNTEyO2EudXBkYXRlKGMuc3ViYXJyYXkoMzIpKSxhLnVwZGF0ZShuKTtsZXQgeD1hLmRpZ2VzdCgpO2EuY2xlYW4oKSxkNSh4KSxFNSh0LHgpLHk1KGMsdCksYS5yZXNldCgpLGEudXBkYXRlKGMuc3ViYXJyYXkoMCwzMikpLGEudXBkYXRlKG8uc3ViYXJyYXkoMzIpKSxhLnVwZGF0ZShuKTtsZXQgRT1hLmRpZ2VzdCgpO2Q1KEUpO2ZvcihsZXQgcz0wO3M8MzI7cysrKXJbc109eFtzXTtmb3IobGV0IHM9MDtzPDMyO3MrKylmb3IobGV0IHU9MDt1PDMyO3UrKylyW3MrdV0rPUVbc10qZVt1XTtyZXR1cm4gbTUoYy5zdWJhcnJheSgzMiksciksY31pLnNpZ249SjU7ZnVuY3Rpb24gSDUobyxuKXtsZXQgcj1mKCksdD1mKCksZT1mKCksYz1mKCksYT1mKCkseD1mKCksRT1mKCk7cmV0dXJuIEoob1syXSxlNSksJDUob1sxXSxuKSxXKGUsb1sxXSksbChjLGUsajUpLFooZSxlLG9bMl0pLFYoYyxvWzJdLGMpLFcoYSxjKSxXKHgsYSksbChFLHgsYSksbChyLEUsZSksbChyLHIsYyksejUocixyKSxsKHIscixlKSxsKHIscixjKSxsKHIscixjKSxsKG9bMF0scixjKSxXKHQsb1swXSksbCh0LHQsYyksXzUodCxlKSYmbChvWzBdLG9bMF0sQjUpLFcodCxvWzBdKSxsKHQsdCxjKSxfNSh0LGUpPy0xOihMNShvWzBdKT09PW5bMzFdPj43JiZaKG9bMF0seDUsb1swXSksbChvWzNdLG9bMF0sb1sxXSksMCl9ZnVuY3Rpb24gUTUobyxuLHIpe2xldCB0PW5ldyBVaW50OEFycmF5KDMyKSxlPVtmKCksZigpLGYoKSxmKCldLGM9W2YoKSxmKCksZigpLGYoKV07aWYoci5sZW5ndGghPT1pLlNJR05BVFVSRV9MRU5HVEgpdGhyb3cgbmV3IEVycm9yKGBlZDI1NTE5OiBzaWduYXR1cmUgbXVzdCBiZSAke2kuU0lHTkFUVVJFX0xFTkdUSH0gYnl0ZXNgKTtpZihINShjLG8pKXJldHVybiExO2xldCBhPW5ldyBvNS5TSEE1MTI7YS51cGRhdGUoci5zdWJhcnJheSgwLDMyKSksYS51cGRhdGUobyksYS51cGRhdGUobik7bGV0IHg9YS5kaWdlc3QoKTtyZXR1cm4gZDUoeCksZzUoZSxjLHgpLEU1KGMsci5zdWJhcnJheSgzMikpLHU1KGUsYykseTUodCxlKSwhRzUocix0KX1pLnZlcmlmeT1RNTtmdW5jdGlvbiBWNShvKXtsZXQgbj1bZigpLGYoKSxmKCksZigpXTtpZihINShuLG8pKXRocm93IG5ldyBFcnJvcigiRWQyNTUxOTogaW52YWxpZCBwdWJsaWMga2V5Iik7bGV0IHI9ZigpLHQ9ZigpLGU9blsxXTtWKHIsZTUsZSksWih0LGU1LGUpLE41KHQsdCksbChyLHIsdCk7bGV0IGM9bmV3IFVpbnQ4QXJyYXkoMzIpO3JldHVybiBuNShjLHIpLGN9aS5jb252ZXJ0UHVibGljS2V5VG9YMjU1MTk9VjU7ZnVuY3Rpb24gVzUobyl7bGV0IG49KDAsbzUuaGFzaCkoby5zdWJhcnJheSgwLDMyKSk7blswXSY9MjQ4LG5bMzFdJj0xMjcsblszMV18PTY0O2xldCByPW5ldyBVaW50OEFycmF5KG4uc3ViYXJyYXkoMCwzMikpO3JldHVybigwLHc1LndpcGUpKG4pLHJ9aS5jb252ZXJ0U2VjcmV0S2V5VG9YMjU1MTk9VzV9KTt2YXIgYzU9azUoUDUoKSkse19fZXNNb2R1bGU6ZXQsY29udmVydFNlY3JldEtleVRvWDI1NTE5OnJ0LGNvbnZlcnRQdWJsaWNLZXlUb1gyNTUxOTpvdCx2ZXJpZnk6bnQsc2lnbjpmdCxleHRyYWN0UHVibGljS2V5RnJvbVNlY3JldEtleTpjdCxnZW5lcmF0ZUtleVBhaXI6YXQsZ2VuZXJhdGVLZXlQYWlyRnJvbVNlZWQ6aXQsU0VFRF9MRU5HVEg6bHQsU0VDUkVUX0tFWV9MRU5HVEg6c3QsUFVCTElDX0tFWV9MRU5HVEg6eHQsU0lHTkFUVVJFX0xFTkdUSDp1dH09YzUsZHQ9YzUuZGVmYXVsdD8/YzU7ZXhwb3J0e3h0IGFzIFBVQkxJQ19LRVlfTEVOR1RILHN0IGFzIFNFQ1JFVF9LRVlfTEVOR1RILGx0IGFzIFNFRURfTEVOR1RILHV0IGFzIFNJR05BVFVSRV9MRU5HVEgsZXQgYXMgX19lc01vZHVsZSxvdCBhcyBjb252ZXJ0UHVibGljS2V5VG9YMjU1MTkscnQgYXMgY29udmVydFNlY3JldEtleVRvWDI1NTE5LGR0IGFzIGRlZmF1bHQsY3QgYXMgZXh0cmFjdFB1YmxpY0tleUZyb21TZWNyZXRLZXksYXQgYXMgZ2VuZXJhdGVLZXlQYWlyLGl0IGFzIGdlbmVyYXRlS2V5UGFpckZyb21TZWVkLGZ0IGFzIHNpZ24sbnQgYXMgdmVyaWZ5fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZWQyNTUxOS5tanMubWFw"}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base36.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.210Z","timestamp":1785138634210,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base36.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc81569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":339,"size_decoded":624,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"461f3da8a023a993053158d12174736a","sha1":"88e5138e155df52f7853926172b57acd9e5beda2","sha256":"52dfe773e2d2650ed87c7c353e909a0d710ed83cb01eb553858eae4879a6664d","sha512":"7a2bd16d31534a9415189712637117679eb72827cd7074d5aa4a1ee27413592999930c89f03b125b09b955af685e0747b91c88187cd0627f63a6676029a64e5d","ssdeep":"","tlshash":"7ce0263eda2b5e6dca21611c998b402228978b3a6240038670658b0598501c5f45beab","first_seen":"2025-07-08T23:56:54.824153Z","last_seen":"2026-08-08T17:15:51.860633Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2UzNiAqLwppbXBvcnR7YmFzZVggYXMgZX1mcm9tIi4uL2VzbS9zcmMvYmFzZXMvYmFzZS5tanMiO3ZhciBwPWUoe3ByZWZpeDoiayIsbmFtZToiYmFzZTM2IixhbHBoYWJldDoiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6In0pLHI9ZSh7cHJlZml4OiJLIixuYW1lOiJiYXNlMzZ1cHBlciIsYWxwaGFiZXQ6IjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiJ9KTtleHBvcnR7cCBhcyBiYXNlMzYsciBhcyBiYXNlMzZ1cHBlcn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2UzNi5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/esm/src/bases/base.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.248Z","timestamp":1785138634248,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/esm/src/bases/base.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@9.9.0/es2022/bases/base10.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:44 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16516\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dd01c8d569f-OSL\r\ncontent-length: 2030\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3955,"size_decoded":2483,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3868)","md5":"3c5046e1531f38ec2decb445bcfe1356","sha1":"55500714e04227d8967a130462bc8f6f3fa944f0","sha256":"f0057681c3f918b72d77de38d89d1f532ae4fc78b86f35db7f617c81e7ac504f","sha512":"c3e3c307844cc861314ebe825c9d35797e28de8e0684b223c6c6142b01782440c3fc7c33a7860b1f77439ae24dc415b0b0205f8327fbc38fda45ed8e9c24f25b","ssdeep":"","tlshash":"398175f523fcb0d155ad58c104da5181e26e9d76b0288869fb103edb6de07e198abf33","first_seen":"2025-07-08T23:56:54.675396Z","last_seen":"2026-08-08T17:15:51.931992Z","times_seen":121,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2VzbS9zcmMvYmFzZXMvYmFzZSAqLwpmdW5jdGlvbiBrKHQsZSl7aWYodC5sZW5ndGg+PTI1NSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBbHBoYWJldCB0b28gbG9uZyIpO2Zvcih2YXIgcj1uZXcgVWludDhBcnJheSgyNTYpLG89MDtvPHIubGVuZ3RoO28rKylyW29dPTI1NTtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIHM9dC5jaGFyQXQoaSksYT1zLmNoYXJDb2RlQXQoMCk7aWYoclthXSE9PTI1NSl0aHJvdyBuZXcgVHlwZUVycm9yKHMrIiBpcyBhbWJpZ3VvdXMiKTtyW2FdPWl9dmFyIGQ9dC5sZW5ndGgsYz10LmNoYXJBdCgwKSxFPU1hdGgubG9nKGQpL01hdGgubG9nKDI1Niksdj1NYXRoLmxvZygyNTYpL01hdGgubG9nKGQpO2Z1bmN0aW9uIHgobil7aWYobiBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fChBcnJheUJ1ZmZlci5pc1ZpZXcobik/bj1uZXcgVWludDhBcnJheShuLmJ1ZmZlcixuLmJ5dGVPZmZzZXQsbi5ieXRlTGVuZ3RoKTpBcnJheS5pc0FycmF5KG4pJiYobj1VaW50OEFycmF5LmZyb20obikpKSwhKG4gaW5zdGFuY2VvZiBVaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJFeHBlY3RlZCBVaW50OEFycmF5Iik7aWYobi5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgZj0wLFU9MCxsPTAscD1uLmxlbmd0aDtsIT09cCYmbltsXT09PTA7KWwrKyxmKys7Zm9yKHZhciB1PShwLWwpKnYrMT4+PjAsaD1uZXcgVWludDhBcnJheSh1KTtsIT09cDspe2Zvcih2YXIgZz1uW2xdLEE9MCx3PXUtMTsoZyE9PTB8fEE8VSkmJnchPT0tMTt3LS0sQSsrKWcrPTI1NipoW3ddPj4+MCxoW3ddPWclZD4+PjAsZz1nL2Q+Pj4wO2lmKGchPT0wKXRocm93IG5ldyBFcnJvcigiTm9uLXplcm8gY2FycnkiKTtVPUEsbCsrfWZvcih2YXIgeT11LVU7eSE9PXUmJmhbeV09PT0wOyl5Kys7Zm9yKHZhciBiPWMucmVwZWF0KGYpO3k8dTsrK3kpYis9dC5jaGFyQXQoaFt5XSk7cmV0dXJuIGJ9ZnVuY3Rpb24gTihuKXtpZih0eXBlb2YgbiE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgU3RyaW5nIik7aWYobi5sZW5ndGg9PT0wKXJldHVybiBuZXcgVWludDhBcnJheTt2YXIgZj0wO2lmKG5bZl0hPT0iICIpe2Zvcih2YXIgVT0wLGw9MDtuW2ZdPT09YzspVSsrLGYrKztmb3IodmFyIHA9KG4ubGVuZ3RoLWYpKkUrMT4+PjAsdT1uZXcgVWludDhBcnJheShwKTtuW2ZdOyl7dmFyIGg9cltuLmNoYXJDb2RlQXQoZildO2lmKGg9PT0yNTUpcmV0dXJuO2Zvcih2YXIgZz0wLEE9cC0xOyhoIT09MHx8ZzxsKSYmQSE9PS0xO0EtLSxnKyspaCs9ZCp1W0FdPj4+MCx1W0FdPWglMjU2Pj4+MCxoPWgvMjU2Pj4+MDtpZihoIT09MCl0aHJvdyBuZXcgRXJyb3IoIk5vbi16ZXJvIGNhcnJ5Iik7bD1nLGYrK31pZihuW2ZdIT09IiAiKXtmb3IodmFyIHc9cC1sO3chPT1wJiZ1W3ddPT09MDspdysrO2Zvcih2YXIgeT1uZXcgVWludDhBcnJheShVKyhwLXcpKSxiPVU7dyE9PXA7KXlbYisrXT11W3crK107cmV0dXJuIHl9fX1mdW5jdGlvbiBSKG4pe3ZhciBmPU4obik7aWYoZilyZXR1cm4gZjt0aHJvdyBuZXcgRXJyb3IoYE5vbi0ke2V9IGNoYXJhY3RlcmApfXJldHVybntlbmNvZGU6eCxkZWNvZGVVbnNhZmU6TixkZWNvZGU6Un19dmFyIEY9ayxKPUYsTz1KO2ltcG9ydHtjb2VyY2UgYXMgWH1mcm9tIi4uL2J5dGVzLm1qcyI7dmFyIG09Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG8pe3RoaXMubmFtZT1lLHRoaXMucHJlZml4PXIsdGhpcy5iYXNlRW5jb2RlPW99ZW5jb2RlKGUpe2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybmAke3RoaXMucHJlZml4fSR7dGhpcy5iYXNlRW5jb2RlKGUpfWA7dGhyb3cgRXJyb3IoIlVua25vd24gdHlwZSwgbXVzdCBiZSBiaW5hcnkgdHlwZSIpfX0sJD1jbGFzc3tjb25zdHJ1Y3RvcihlLHIsbyl7aWYodGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9cixyLmNvZGVQb2ludEF0KDApPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwcmVmaXggY2hhcmFjdGVyIik7dGhpcy5wcmVmaXhDb2RlUG9pbnQ9ci5jb2RlUG9pbnRBdCgwKSx0aGlzLmJhc2VEZWNvZGU9b31kZWNvZGUoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXtpZihlLmNvZGVQb2ludEF0KDApIT09dGhpcy5wcmVmaXhDb2RlUG9pbnQpdGhyb3cgRXJyb3IoYFVuYWJsZSB0byBkZWNvZGUgbXVsdGliYXNlIHN0cmluZyAke0pTT04uc3RyaW5naWZ5KGUpfSwgJHt0aGlzLm5hbWV9IGRlY29kZXIgb25seSBzdXBwb3J0cyBpbnB1dHMgcHJlZml4ZWQgd2l0aCAke3RoaXMucHJlZml4fWApO3JldHVybiB0aGlzLmJhc2VEZWNvZGUoZS5zbGljZSh0aGlzLnByZWZpeC5sZW5ndGgpKX1lbHNlIHRocm93IEVycm9yKCJDYW4gb25seSBtdWx0aWJhc2UgZGVjb2RlIHN0cmluZ3MiKX1vcihlKXtyZXR1cm4gXyh0aGlzLGUpfX0sej1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlY29kZXJzPWV9b3IoZSl7cmV0dXJuIF8odGhpcyxlKX1kZWNvZGUoZSl7bGV0IHI9ZVswXSxvPXRoaXMuZGVjb2RlcnNbcl07aWYobylyZXR1cm4gby5kZWNvZGUoZSk7dGhyb3cgUmFuZ2VFcnJvcihgVW5hYmxlIHRvIGRlY29kZSBtdWx0aWJhc2Ugc3RyaW5nICR7SlNPTi5zdHJpbmdpZnkoZSl9LCBvbmx5IGlucHV0cyBwcmVmaXhlZCB3aXRoICR7T2JqZWN0LmtleXModGhpcy5kZWNvZGVycyl9IGFyZSBzdXBwb3J0ZWRgKX19LF89KHQsZSk9Pm5ldyB6KHsuLi50LmRlY29kZXJzfHx7W3QucHJlZml4XTp0fSwuLi5lLmRlY29kZXJzfHx7W2UucHJlZml4XTplfX0pLFM9Y2xhc3N7Y29uc3RydWN0b3IoZSxyLG8saSl7dGhpcy5uYW1lPWUsdGhpcy5wcmVmaXg9cix0aGlzLmJhc2VFbmNvZGU9byx0aGlzLmJhc2VEZWNvZGU9aSx0aGlzLmVuY29kZXI9bmV3IG0oZSxyLG8pLHRoaXMuZGVjb2Rlcj1uZXcgJChlLHIsaSl9ZW5jb2RlKGUpe3JldHVybiB0aGlzLmVuY29kZXIuZW5jb2RlKGUpfWRlY29kZShlKXtyZXR1cm4gdGhpcy5kZWNvZGVyLmRlY29kZShlKX19LE09KHtuYW1lOnQscHJlZml4OmUsZW5jb2RlOnIsZGVjb2RlOm99KT0+bmV3IFModCxlLHIsbykscT0oe3ByZWZpeDp0LG5hbWU6ZSxhbHBoYWJldDpyfSk9PntsZXR7ZW5jb2RlOm8sZGVjb2RlOml9PU8ocixlKTtyZXR1cm4gTSh7cHJlZml4OnQsbmFtZTplLGVuY29kZTpvLGRlY29kZTpzPT5YKGkocykpfSl9LEQ9KHQsZSxyLG8pPT57bGV0IGk9e307Zm9yKGxldCB2PTA7djxlLmxlbmd0aDsrK3YpaVtlW3ZdXT12O2xldCBzPXQubGVuZ3RoO2Zvcig7dFtzLTFdPT09Ij0iOyktLXM7bGV0IGE9bmV3IFVpbnQ4QXJyYXkocypyLzh8MCksZD0wLGM9MCxFPTA7Zm9yKGxldCB2PTA7djxzOysrdil7bGV0IHg9aVt0W3ZdXTtpZih4PT09dm9pZCAwKXRocm93IG5ldyBTeW50YXhFcnJvcihgTm9uLSR7b30gY2hhcmFjdGVyYCk7Yz1jPDxyfHgsZCs9cixkPj04JiYoZC09OCxhW0UrK109MjU1JmM+PmQpfWlmKGQ+PXJ8fDI1NSZjPDw4LWQpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJVbmV4cGVjdGVkIGVuZCBvZiBkYXRhIik7cmV0dXJuIGF9LEk9KHQsZSxyKT0+e2xldCBvPWVbZS5sZW5ndGgtMV09PT0iPSIsaT0oMTw8ciktMSxzPSIiLGE9MCxkPTA7Zm9yKGxldCBjPTA7Yzx0Lmxlbmd0aDsrK2MpZm9yKGQ9ZDw8OHx0W2NdLGErPTg7YT5yOylhLT1yLHMrPWVbaSZkPj5hXTtpZihhJiYocys9ZVtpJmQ8PHItYV0pLG8pZm9yKDtzLmxlbmd0aCpyJjc7KXMrPSI9IjtyZXR1cm4gc30sRz0oe25hbWU6dCxwcmVmaXg6ZSxiaXRzUGVyQ2hhcjpyLGFscGhhYmV0Om99KT0+TSh7cHJlZml4OmUsbmFtZTp0LGVuY29kZShpKXtyZXR1cm4gSShpLG8scil9LGRlY29kZShpKXtyZXR1cm4gRChpLG8scix0KX19KTtleHBvcnR7UyBhcyBDb2RlYyxxIGFzIGJhc2VYLE0gYXMgZnJvbSxfIGFzIG9yLEcgYXMgcmZjNDY0OH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhc2UubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-http-connection@1.0.8/es2022/jsonrpc-http-connection.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.487Z","timestamp":1785138633487,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-http-connection@1.0.8/es2022/jsonrpc-http-connection.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:12:58 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcb4bc8569f-OSL\r\ncontent-length: 1461\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3100,"size_decoded":1914,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (2987)","md5":"9ce2c4fff2aa634869a58b22ae0a0ab4","sha1":"cbf6b55a7ccce530b4628c684d3ca8985d25a8e7","sha256":"a340a6c03e0679452d2d72cc4a0d6b86433564b71618bd26e125ba16145e236b","sha512":"8c1438471c6ef4389851fb5d2d55c7c3c23477fa3633783d48a00856937a83af3117ec20960b7eec818de2f638312f70a3472d5bff5f2c3aeabab91bf48a3336","ssdeep":"","tlshash":"f2519588a251e53727efabcfbc114601933324c8b529401cf315acf691aee81ed62fb1","first_seen":"2025-07-08T23:56:54.765166Z","last_seen":"2026-08-08T17:15:51.350191Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy1odHRwLWNvbm5lY3Rpb25AMS4wLjggKi8KaW1wb3J0e0V2ZW50RW1pdHRlciBhcyB1fWZyb20iL25vZGUvZXZlbnRzLm1qcyI7dmFye2ZldGNoOm0sSGVhZGVyczpDLFJlcXVlc3Q6QSxSZXNwb25zZTpIfT1nbG9iYWxUaGlzLG89bTtpbXBvcnR7c2FmZUpzb25TdHJpbmdpZnkgYXMgYSxzYWZlSnNvblBhcnNlIGFzIGJ9ZnJvbSIvQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7aXNIdHRwVXJsIGFzIGgsZm9ybWF0SnNvblJwY0Vycm9yIGFzIHkscGFyc2VDb25uZWN0aW9uRXJyb3IgYXMgUH1mcm9tIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXV0aWxzQF4xLjAuNj90YXJnZXQ9ZXMyMDIyIjt2YXIgdz1PYmplY3QuZGVmaW5lUHJvcGVydHksRT1PYmplY3QuZGVmaW5lUHJvcGVydGllcyxPPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLGM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxMPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksVD1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLGw9KHMsZSx0KT0+ZSBpbiBzP3cocyxlLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTp0fSk6c1tlXT10LHA9KHMsZSk9Pntmb3IodmFyIHQgaW4gZXx8KGU9e30pKUwuY2FsbChlLHQpJiZsKHMsdCxlW3RdKTtpZihjKWZvcih2YXIgdCBvZiBjKGUpKVQuY2FsbChlLHQpJiZsKHMsdCxlW3RdKTtyZXR1cm4gc30sdj0ocyxlKT0+RShzLE8oZSkpLGo9e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSx4PSJQT1NUIixkPXtoZWFkZXJzOmosbWV0aG9kOnh9LGc9MTAsZj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9ITEpe2lmKHRoaXMudXJsPWUsdGhpcy5kaXNhYmxlUHJvdmlkZXJQaW5nPXQsdGhpcy5ldmVudHM9bmV3IHUsdGhpcy5pc0F2YWlsYWJsZT0hMSx0aGlzLnJlZ2lzdGVyaW5nPSExLCFoKGUpKXRocm93IG5ldyBFcnJvcihgUHJvdmlkZWQgVVJMIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggSFRUUCBjb25uZWN0aW9uOiAke2V9YCk7dGhpcy51cmw9ZSx0aGlzLmRpc2FibGVQcm92aWRlclBpbmc9dH1nZXQgY29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuaXNBdmFpbGFibGV9Z2V0IGNvbm5lY3RpbmcoKXtyZXR1cm4gdGhpcy5yZWdpc3RlcmluZ31vbihlLHQpe3RoaXMuZXZlbnRzLm9uKGUsdCl9b25jZShlLHQpe3RoaXMuZXZlbnRzLm9uY2UoZSx0KX1vZmYoZSx0KXt0aGlzLmV2ZW50cy5vZmYoZSx0KX1yZW1vdmVMaXN0ZW5lcihlLHQpe3RoaXMuZXZlbnRzLnJlbW92ZUxpc3RlbmVyKGUsdCl9YXN5bmMgb3BlbihlPXRoaXMudXJsKXthd2FpdCB0aGlzLnJlZ2lzdGVyKGUpfWFzeW5jIGNsb3NlKCl7aWYoIXRoaXMuaXNBdmFpbGFibGUpdGhyb3cgbmV3IEVycm9yKCJDb25uZWN0aW9uIGFscmVhZHkgY2xvc2VkIik7dGhpcy5vbkNsb3NlKCl9YXN5bmMgc2VuZChlKXt0aGlzLmlzQXZhaWxhYmxlfHxhd2FpdCB0aGlzLnJlZ2lzdGVyKCk7dHJ5e2xldCB0PWEoZSkscj1hd2FpdChhd2FpdCBvKHRoaXMudXJsLHYocCh7fSxkKSx7Ym9keTp0fSkpKS5qc29uKCk7dGhpcy5vblBheWxvYWQoe2RhdGE6cn0pfWNhdGNoKHQpe3RoaXMub25FcnJvcihlLmlkLHQpfX1hc3luYyByZWdpc3RlcihlPXRoaXMudXJsKXtpZighaChlKSl0aHJvdyBuZXcgRXJyb3IoYFByb3ZpZGVkIFVSTCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEhUVFAgY29ubmVjdGlvbjogJHtlfWApO2lmKHRoaXMucmVnaXN0ZXJpbmcpe2xldCB0PXRoaXMuZXZlbnRzLmdldE1heExpc3RlbmVycygpO3JldHVybih0aGlzLmV2ZW50cy5saXN0ZW5lckNvdW50KCJyZWdpc3Rlcl9lcnJvciIpPj10fHx0aGlzLmV2ZW50cy5saXN0ZW5lckNvdW50KCJvcGVuIik+PXQpJiZ0aGlzLmV2ZW50cy5zZXRNYXhMaXN0ZW5lcnModCsxKSxuZXcgUHJvbWlzZSgocixpKT0+e3RoaXMuZXZlbnRzLm9uY2UoInJlZ2lzdGVyX2Vycm9yIixuPT57dGhpcy5yZXNldE1heExpc3RlbmVycygpLGkobil9KSx0aGlzLmV2ZW50cy5vbmNlKCJvcGVuIiwoKT0+e2lmKHRoaXMucmVzZXRNYXhMaXN0ZW5lcnMoKSx0eXBlb2YgdGhpcy5pc0F2YWlsYWJsZT4idSIpcmV0dXJuIGkobmV3IEVycm9yKCJIVFRQIGNvbm5lY3Rpb24gaXMgbWlzc2luZyBvciBpbnZhbGlkIikpO3IoKX0pfSl9dGhpcy51cmw9ZSx0aGlzLnJlZ2lzdGVyaW5nPSEwO3RyeXtpZighdGhpcy5kaXNhYmxlUHJvdmlkZXJQaW5nKXtsZXQgdD1hKHtpZDoxLGpzb25ycGM6IjIuMCIsbWV0aG9kOiJ0ZXN0IixwYXJhbXM6W119KTthd2FpdCBvKGUsdihwKHt9LGQpLHtib2R5OnR9KSl9dGhpcy5vbk9wZW4oKX1jYXRjaCh0KXtsZXQgcj10aGlzLnBhcnNlRXJyb3IodCk7dGhyb3cgdGhpcy5ldmVudHMuZW1pdCgicmVnaXN0ZXJfZXJyb3IiLHIpLHRoaXMub25DbG9zZSgpLHJ9fW9uT3Blbigpe3RoaXMuaXNBdmFpbGFibGU9ITAsdGhpcy5yZWdpc3RlcmluZz0hMSx0aGlzLmV2ZW50cy5lbWl0KCJvcGVuIil9b25DbG9zZSgpe3RoaXMuaXNBdmFpbGFibGU9ITEsdGhpcy5yZWdpc3RlcmluZz0hMSx0aGlzLmV2ZW50cy5lbWl0KCJjbG9zZSIpfW9uUGF5bG9hZChlKXtpZih0eXBlb2YgZS5kYXRhPiJ1IilyZXR1cm47bGV0IHQ9dHlwZW9mIGUuZGF0YT09InN0cmluZyI/YihlLmRhdGEpOmUuZGF0YTt0aGlzLmV2ZW50cy5lbWl0KCJwYXlsb2FkIix0KX1vbkVycm9yKGUsdCl7bGV0IHI9dGhpcy5wYXJzZUVycm9yKHQpLGk9ci5tZXNzYWdlfHxyLnRvU3RyaW5nKCksbj15KGUsaSk7dGhpcy5ldmVudHMuZW1pdCgicGF5bG9hZCIsbil9cGFyc2VFcnJvcihlLHQ9dGhpcy51cmwpe3JldHVybiBQKGUsdCwiSFRUUCIpfXJlc2V0TWF4TGlzdGVuZXJzKCl7dGhpcy5ldmVudHMuZ2V0TWF4TGlzdGVuZXJzKCk+ZyYmdGhpcy5ldmVudHMuc2V0TWF4TGlzdGVuZXJzKGcpfX07ZXhwb3J0e2YgYXMgSHR0cENvbm5lY3Rpb24sZiBhcyBkZWZhdWx0fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9anNvbnJwYy1odHRwLWNvbm5lY3Rpb24ubWpzLm1hcA=="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/sha256@1.0.1/es2022/sha256.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.581Z","timestamp":1785138633581,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/sha256@1.0.1/es2022/sha256.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 10:27:57 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbebe8569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":5339,"size_decoded":3217,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (4892)","md5":"388817646a4c746c2ad42938e36bf7c7","sha1":"89cf328b9b5a2555255b334367f3b5ee16c2cfdb","sha256":"558186cf433b0489ac47930a145dfea9522ca70710626dc876f2fa6ffaf48d11","sha512":"87967c74ae00db17b437bb69afa74cf9f665545ff4ea0c2404d885c571df577e2bc3044605fa7fb9a57713cd691bbdebba0e271111d7010b90c7d88cbfae77bf","ssdeep":"96:sgZnwHV//bF5m45eZReCD3GY9McIn8kjMeY9V8Oam:fnwpF5XmReCD3+8kjMeY9+OX","tlshash":"04b1d6f12fa461b44326d8e2463f596f622670381445456cf1acdafda42cc4be23a73b","first_seen":"2025-11-22T14:57:23.902991Z","last_seen":"2026-07-27T07:51:47.216793Z","times_seen":110,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9zaGEyNTZAMS4wLjEgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIkBzdGFibGVsaWIvYmluYXJ5IjpyZXR1cm4gYyhfXzAkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18xJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIEk9T2JqZWN0LmNyZWF0ZTt2YXIgRT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgQj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgaz1PYmplY3QuZ2V0UHJvdG90eXBlT2YsVT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciB2PShlPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KHQsaSk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0KVtpXX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytlKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciB6PShlLHQpPT4oKT0+KHR8fGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyk7dmFyIEc9KGUsdCxpLHIpPT57aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIilmb3IobGV0IGIgb2YgQih0KSkhVS5jYWxsKGUsYikmJmIhPT1pJiZFKGUsYix7Z2V0OigpPT50W2JdLGVudW1lcmFibGU6IShyPW0odCxiKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBlfTt2YXIgVD0oZSx0LGkpPT4oaT1lIT1udWxsP0koayhlKSk6e30sRyh0fHwhZXx8IWUuX19lc01vZHVsZT9FKGksImRlZmF1bHQiLHt2YWx1ZTplLGVudW1lcmFibGU6ITB9KTppLGUpKTt2YXIgTD16KGM9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBwPXYoIkBzdGFibGVsaWIvYmluYXJ5IiksZD12KCJAc3RhYmxlbGliL3dpcGUiKTtjLkRJR0VTVF9MRU5HVEg9MzI7Yy5CTE9DS19TSVpFPTY0O3ZhciBBPShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLmRpZ2VzdExlbmd0aD1jLkRJR0VTVF9MRU5HVEgsdGhpcy5ibG9ja1NpemU9Yy5CTE9DS19TSVpFLHRoaXMuX3N0YXRlPW5ldyBJbnQzMkFycmF5KDgpLHRoaXMuX3RlbXA9bmV3IEludDMyQXJyYXkoNjQpLHRoaXMuX2J1ZmZlcj1uZXcgVWludDhBcnJheSgxMjgpLHRoaXMuX2J1ZmZlckxlbmd0aD0wLHRoaXMuX2J5dGVzSGFzaGVkPTAsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5yZXNldCgpfXJldHVybiBlLnByb3RvdHlwZS5faW5pdFN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5fc3RhdGVbMF09MTc3OTAzMzcwMyx0aGlzLl9zdGF0ZVsxXT0zMTQ0MTM0Mjc3LHRoaXMuX3N0YXRlWzJdPTEwMTM5MDQyNDIsdGhpcy5fc3RhdGVbM109Mjc3MzQ4MDc2Mix0aGlzLl9zdGF0ZVs0XT0xMzU5ODkzMTE5LHRoaXMuX3N0YXRlWzVdPTI2MDA4MjI5MjQsdGhpcy5fc3RhdGVbNl09NTI4NzM0NjM1LHRoaXMuX3N0YXRlWzddPTE1NDE0NTkyMjV9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luaXRTdGF0ZSgpLHRoaXMuX2J1ZmZlckxlbmd0aD0wLHRoaXMuX2J5dGVzSGFzaGVkPTAsdGhpcy5fZmluaXNoZWQ9ITEsdGhpc30sZS5wcm90b3R5cGUuY2xlYW49ZnVuY3Rpb24oKXtkLndpcGUodGhpcy5fYnVmZmVyKSxkLndpcGUodGhpcy5fdGVtcCksdGhpcy5yZXNldCgpfSxlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxpKXtpZihpPT09dm9pZCAwJiYoaT10Lmxlbmd0aCksdGhpcy5fZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJTSEEyNTY6IGNhbid0IHVwZGF0ZSBiZWNhdXNlIGhhc2ggd2FzIGZpbmlzaGVkLiIpO3ZhciByPTA7aWYodGhpcy5fYnl0ZXNIYXNoZWQrPWksdGhpcy5fYnVmZmVyTGVuZ3RoPjApe2Zvcig7dGhpcy5fYnVmZmVyTGVuZ3RoPHRoaXMuYmxvY2tTaXplJiZpPjA7KXRoaXMuX2J1ZmZlclt0aGlzLl9idWZmZXJMZW5ndGgrK109dFtyKytdLGktLTt0aGlzLl9idWZmZXJMZW5ndGg9PT10aGlzLmJsb2NrU2l6ZSYmKFModGhpcy5fdGVtcCx0aGlzLl9zdGF0ZSx0aGlzLl9idWZmZXIsMCx0aGlzLmJsb2NrU2l6ZSksdGhpcy5fYnVmZmVyTGVuZ3RoPTApfWZvcihpPj10aGlzLmJsb2NrU2l6ZSYmKHI9Uyh0aGlzLl90ZW1wLHRoaXMuX3N0YXRlLHQscixpKSxpJT10aGlzLmJsb2NrU2l6ZSk7aT4wOyl0aGlzLl9idWZmZXJbdGhpcy5fYnVmZmVyTGVuZ3RoKytdPXRbcisrXSxpLS07cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbih0KXtpZighdGhpcy5fZmluaXNoZWQpe3ZhciBpPXRoaXMuX2J5dGVzSGFzaGVkLHI9dGhpcy5fYnVmZmVyTGVuZ3RoLGI9aS81MzY4NzA5MTJ8MCxoPWk8PDMseD1pJTY0PDU2PzY0OjEyODt0aGlzLl9idWZmZXJbcl09MTI4O2Zvcih2YXIgZj1yKzE7Zjx4LTg7ZisrKXRoaXMuX2J1ZmZlcltmXT0wO3Aud3JpdGVVaW50MzJCRShiLHRoaXMuX2J1ZmZlcix4LTgpLHAud3JpdGVVaW50MzJCRShoLHRoaXMuX2J1ZmZlcix4LTQpLFModGhpcy5fdGVtcCx0aGlzLl9zdGF0ZSx0aGlzLl9idWZmZXIsMCx4KSx0aGlzLl9maW5pc2hlZD0hMH1mb3IodmFyIGY9MDtmPHRoaXMuZGlnZXN0TGVuZ3RoLzQ7ZisrKXAud3JpdGVVaW50MzJCRSh0aGlzLl9zdGF0ZVtmXSx0LGYqNCk7cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbigpe3ZhciB0PW5ldyBVaW50OEFycmF5KHRoaXMuZGlnZXN0TGVuZ3RoKTtyZXR1cm4gdGhpcy5maW5pc2godCksdH0sZS5wcm90b3R5cGUuc2F2ZVN0YXRlPWZ1bmN0aW9uKCl7aWYodGhpcy5fZmluaXNoZWQpdGhyb3cgbmV3IEVycm9yKCJTSEEyNTY6IGNhbm5vdCBzYXZlIGZpbmlzaGVkIHN0YXRlIik7cmV0dXJue3N0YXRlOm5ldyBJbnQzMkFycmF5KHRoaXMuX3N0YXRlKSxidWZmZXI6dGhpcy5fYnVmZmVyTGVuZ3RoPjA/bmV3IFVpbnQ4QXJyYXkodGhpcy5fYnVmZmVyKTp2b2lkIDAsYnVmZmVyTGVuZ3RoOnRoaXMuX2J1ZmZlckxlbmd0aCxieXRlc0hhc2hlZDp0aGlzLl9ieXRlc0hhc2hlZH19LGUucHJvdG90eXBlLnJlc3RvcmVTdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc3RhdGUuc2V0KHQuc3RhdGUpLHRoaXMuX2J1ZmZlckxlbmd0aD10LmJ1ZmZlckxlbmd0aCx0LmJ1ZmZlciYmdGhpcy5fYnVmZmVyLnNldCh0LmJ1ZmZlciksdGhpcy5fYnl0ZXNIYXNoZWQ9dC5ieXRlc0hhc2hlZCx0aGlzLl9maW5pc2hlZD0hMSx0aGlzfSxlLnByb3RvdHlwZS5jbGVhblNhdmVkU3RhdGU9ZnVuY3Rpb24odCl7ZC53aXBlKHQuc3RhdGUpLHQuYnVmZmVyJiZkLndpcGUodC5idWZmZXIpLHQuYnVmZmVyTGVuZ3RoPTAsdC5ieXRlc0hhc2hlZD0wfSxlfSkoKTtjLlNIQTI1Nj1BO3ZhciBLPW5ldyBJbnQzMkFycmF5KFsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdKTtmdW5jdGlvbiBTKGUsdCxpLHIsYil7Zm9yKDtiPj02NDspe2Zvcih2YXIgaD10WzBdLHg9dFsxXSxmPXRbMl0sbD10WzNdLGE9dFs0XSxfPXRbNV0sdT10WzZdLHc9dFs3XSxzPTA7czwxNjtzKyspe3ZhciBnPXIrcyo0O2Vbc109cC5yZWFkVWludDMyQkUoaSxnKX1mb3IodmFyIHM9MTY7czw2NDtzKyspe3ZhciBuPWVbcy0yXSxvPShuPj4+MTd8bjw8MTUpXihuPj4+MTl8bjw8MTMpXm4+Pj4xMDtuPWVbcy0xNV07dmFyIEg9KG4+Pj43fG48PDI1KV4obj4+PjE4fG48PDE0KV5uPj4+MztlW3NdPShvK2Vbcy03XXwwKSsoSCtlW3MtMTZdfDApfWZvcih2YXIgcz0wO3M8NjQ7cysrKXt2YXIgbz0oKChhPj4+NnxhPDwyNileKGE+Pj4xMXxhPDwyMSleKGE+Pj4yNXxhPDw3KSkrKGEmX15+YSZ1KXwwKSsodysoS1tzXStlW3NdfDApfDApfDAsSD0oKGg+Pj4yfGg8PDMwKV4oaD4+PjEzfGg8PDE5KV4oaD4+PjIyfGg8PDEwKSkrKGgmeF5oJmZeeCZmKXwwO3c9dSx1PV8sXz1hLGE9bCtvfDAsbD1mLGY9eCx4PWgsaD1vK0h8MH10WzBdKz1oLHRbMV0rPXgsdFsyXSs9Zix0WzNdKz1sLHRbNF0rPWEsdFs1XSs9Xyx0WzZdKz11LHRbN10rPXcscis9NjQsYi09NjR9cmV0dXJuIHJ9ZnVuY3Rpb24gTyhlKXt2YXIgdD1uZXcgQTt0LnVwZGF0ZShlKTt2YXIgaT10LmRpZ2VzdCgpO3JldHVybiB0LmNsZWFuKCksaX1jLmhhc2g9T30pO3ZhciB5PVQoTCgpKSx7X19lc01vZHVsZTpELERJR0VTVF9MRU5HVEg6TixCTE9DS19TSVpFOlosU0hBMjU2OnEsaGFzaDpNfT15LFA9eS5kZWZhdWx0Pz95O2V4cG9ydHtaIGFzIEJMT0NLX1NJWkUsTiBhcyBESUdFU1RfTEVOR1RILHEgYXMgU0hBMjU2LEQgYXMgX19lc01vZHVsZSxQIGFzIGRlZmF1bHQsTSBhcyBoYXNofTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2hhMjU2Lm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/compare.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.730Z","timestamp":1785138633730,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/compare.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/uint8arrays.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:43 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16521\r\ncf-ray: a21a0dccdc0f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":257,"size_decoded":561,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text","md5":"40f3db5bcc35e03db94e6452bff4ee73","sha1":"68beea9fe17b1cc5da900c39e538d8ed641426da","sha256":"3ed73a16dc679e68f700c88d5977fd4d52c6b1b796537b16124fcfeaf4a38e67","sha512":"e4717220f78fc841eb6350f87ca19daf61fc7396431c768d58297e005ed5c2cf993187c4900289c935b8b93d323d0af9f6cfcac4e7ae7e3e35d64d030444cb62","ssdeep":"","tlshash":"08d0a7bab6f668bf1bb32805a11ec089f1065f12861c474cd4206815bc7daa1d5e7ee5","first_seen":"2025-07-08T23:56:54.621625Z","last_seen":"2026-07-27T07:51:47.163808Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvY29tcGFyZSAqLwpmdW5jdGlvbiBuKHQscil7Zm9yKGxldCBlPTA7ZTx0LmJ5dGVMZW5ndGg7ZSsrKXtpZih0W2VdPHJbZV0pcmV0dXJuLTE7aWYodFtlXT5yW2VdKXJldHVybiAxfXJldHVybiB0LmJ5dGVMZW5ndGg+ci5ieXRlTGVuZ3RoPzE6dC5ieXRlTGVuZ3RoPHIuYnl0ZUxlbmd0aD8tMTowfWV4cG9ydHtuIGFzIGNvbXBhcmV9OwovLyMgc291cmNlTWFwcGluZ1VSTD1jb21wYXJlLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/identity.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.218Z","timestamp":1785138634218,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/hashes/identity.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 02 Dec 2025 23:40:54 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc89569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":270,"size_decoded":584,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"b705c0a2249ee81c695839fd5bcfffaa","sha1":"e84b7d2522741f67d07850e0cc35905b6e984fff","sha256":"43eaf0a3160c8344e2f70387d0a124f3f21363d82d3e246a7a7df4053c6199e4","sha512":"55cff6ba87d01ac70a9d10e052f30f08d45a43d571a70e995032a0df21a5904a8821cfd735190e34c8dfa6340c25b43b9f824ee63251a50d239ba75678503fa1","ssdeep":"","tlshash":"31d0759b8df400f0f13b400ed800c00cf639c5c2d50000d8312f060f17240ac5433870","first_seen":"2025-07-08T23:56:54.666173Z","last_seen":"2026-08-08T17:15:51.589462Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2hhc2hlcy9pZGVudGl0eSAqLwppbXBvcnR7Y29lcmNlIGFzIGl9ZnJvbSIuLi9lc20vc3JjL2J5dGVzLm1qcyI7aW1wb3J0KmFzIHQgZnJvbSIuL2RpZ2VzdC5tanMiO3ZhciBlPTAsbj0iaWRlbnRpdHkiLG89aSxzPWM9PnQuY3JlYXRlKGUsbyhjKSksZD17Y29kZTplLG5hbWU6bixlbmNvZGU6byxkaWdlc3Q6c307ZXhwb3J0e2QgYXMgaWRlbnRpdHl9OwovLyMgc291cmNlTWFwcGluZ1VSTD1pZGVudGl0eS5tanMubWFw"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/time@%5E1.0.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.752Z","timestamp":1785138633752,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/time@%5E1.0.2?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/time@1.0.2/es2022/time.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/time@1.0.2/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccfc1a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":212,"size_decoded":666,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"e61481497ad3ba3ef6b071e9052e31e2","sha1":"7b822f588ca1815ad4d028aad2ed916b5063924f","sha256":"593c64dec39fe7fb172123d7f338e420e1a374ea14ec5433b4621b87565ea780","sha512":"0e46cd6c5fe1189cb2925eb053e1311bdd3e5d60585e9c2ad772ff12fad3d49926808e6fa4b6f025d9f79620f34145828015f32c771caee123437f4dec5e7780","ssdeep":"","tlshash":"cdd0c9939523a708ab333f861e2283fcc763028cf98210bc52e64a16e5e3184d454af7","first_seen":"2025-07-08T23:56:54.723631Z","last_seen":"2026-08-08T17:15:51.803225Z","times_seen":121,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvdGltZUAxLjAuMiAqLwppbXBvcnQgIi90c2xpYkAxLjE0LjEvZXMyMDIyL3RzbGliLm1qcyI7CmV4cG9ydCAqIGZyb20gIi9Ad2FsbGV0Y29ubmVjdC90aW1lQDEuMC4yL2VzMjAyMi90aW1lLm1qcyI7CmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICIvQHdhbGxldGNvbm5lY3QvdGltZUAxLjAuMi9lczIwMjIvdGltZS5tanMiOwo="}},"time_used":112,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":112,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/filter-obj@1.1.0/es2022/filter-obj.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.914Z","timestamp":1785138633914,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /filter-obj@1.1.0/es2022/filter-obj.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/filter-obj@%5E1.1.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcdfc37569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":835,"size_decoded":889,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (763)","md5":"efbab05074205110e2e477e2f0939364","sha1":"3bec86b1b4f92bd4f3f49eaf724b588b3fac3b60","sha256":"6f6d496494238cbdd01885aa82a2da3fd69ff524df8f0df53ce839c799e83c23","sha512":"21c227196f330aa4c7cff680993e87a9e9d5c68dbb1acc8d825a2cea05b8c9acfcd8d6daa9c7df04e7b7cc31faa30ad40cfccdb4ddb3f409d38c725d2053a215","ssdeep":"","tlshash":"8501f1d115f0eae30af768cad62d9585f10a153ca469f094db88caf191a44431896f37","first_seen":"2025-07-08T23:56:54.583084Z","last_seen":"2026-07-27T07:51:47.263086Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gZmlsdGVyLW9iakAxLjEuMCAqLwp2YXIgaT1PYmplY3QuY3JlYXRlO3ZhciBtPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgeD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBBPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBsPU9iamVjdC5nZXRQcm90b3R5cGVPZixPPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGQ9KHMscik9PigpPT4ocnx8cygocj17ZXhwb3J0czp7fX0pLmV4cG9ydHMsciksci5leHBvcnRzKTt2YXIgZz0ocyxyLHQsZik9PntpZihyJiZ0eXBlb2Ygcj09Im9iamVjdCJ8fHR5cGVvZiByPT0iZnVuY3Rpb24iKWZvcihsZXQgYSBvZiBBKHIpKSFPLmNhbGwocyxhKSYmYSE9PXQmJm0ocyxhLHtnZXQ6KCk9PnJbYV0sZW51bWVyYWJsZTohKGY9eChyLGEpKXx8Zi5lbnVtZXJhYmxlfSk7cmV0dXJuIHN9O3ZhciBoPShzLHIsdCk9Pih0PXMhPW51bGw/aShsKHMpKTp7fSxnKHJ8fCFzfHwhcy5fX2VzTW9kdWxlP20odCwiZGVmYXVsdCIse3ZhbHVlOnMsZW51bWVyYWJsZTohMH0pOnQscykpO3ZhciBjPWQoKHAsbyk9PnsidXNlIHN0cmljdCI7by5leHBvcnRzPWZ1bmN0aW9uKHMscil7Zm9yKHZhciB0PXt9LGY9T2JqZWN0LmtleXMocyksYT1BcnJheS5pc0FycmF5KHIpLG49MDtuPGYubGVuZ3RoO24rKyl7dmFyIGU9ZltuXSx2PXNbZV07KGE/ci5pbmRleE9mKGUpIT09LTE6cihlLHYscykpJiYodFtlXT12KX1yZXR1cm4gdH19KTt2YXIgdT1oKGMoKSkseT11LmRlZmF1bHQ/P3U7ZXhwb3J0e3kgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbHRlci1vYmoubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/esm/src/bytes.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.257Z","timestamp":1785138634257,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/esm/src/bytes.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@9.9.0/es2022/bases/identity.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:12:44 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dd01c8f569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":875,"size_decoded":879,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (792)","md5":"5a573c99179841780a9c875c48c94cde","sha1":"be8606a1444cf36fc309f8522ac94b27bbad91e7","sha256":"d2fa273fd87212f525dcd3863af8a3d2ca1e3ee42aca3eaee5ddd4ad6e43ba04","sha512":"13701a64c0e8e28df4f3fe0fa66f8c6a782e764cedc50dbd7b5ec271c60c96f918c4c08dcaaf9400a7eb6c482818a9dd9d251196b5341de7cfe82ec47d0d6988","ssdeep":"","tlshash":"5c11e3cc3de742f5c6d964d515c5a907f11e8e74e18805a9f40b0c04397e9f9a5e39ac","first_seen":"2025-07-08T23:56:54.721375Z","last_seen":"2026-08-08T17:15:51.969293Z","times_seen":121,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2VzbS9zcmMvYnl0ZXMgKi8KdmFyIG49bmV3IFVpbnQ4QXJyYXkoMCksaT1lPT5lLnJlZHVjZSgocix0KT0+cit0LnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIiksIiIpLGY9ZT0+e2xldCByPWUubWF0Y2goLy4uL2cpO3JldHVybiByP25ldyBVaW50OEFycmF5KHIubWFwKHQ9PnBhcnNlSW50KHQsMTYpKSk6bn0scz0oZSxyKT0+e2lmKGU9PT1yKXJldHVybiEwO2lmKGUuYnl0ZUxlbmd0aCE9PXIuYnl0ZUxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHQ9MDt0PGUuYnl0ZUxlbmd0aDt0KyspaWYoZVt0XSE9PXJbdF0pcmV0dXJuITE7cmV0dXJuITB9LGM9ZT0+e2lmKGUgaW5zdGFuY2VvZiBVaW50OEFycmF5JiZlLmNvbnN0cnVjdG9yLm5hbWU9PT0iVWludDhBcnJheSIpcmV0dXJuIGU7aWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXJldHVybiBuZXcgVWludDhBcnJheShlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcmV0dXJuIG5ldyBVaW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biB0eXBlLCBtdXN0IGJlIGJpbmFyeSB0eXBlIil9LG89ZT0+ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxBcnJheUJ1ZmZlci5pc1ZpZXcoZSkseT1lPT5uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZSksdT1lPT5uZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZSk7ZXhwb3J0e2MgYXMgY29lcmNlLG4gYXMgZW1wdHkscyBhcyBlcXVhbHMsZiBhcyBmcm9tSGV4LHkgYXMgZnJvbVN0cmluZyxvIGFzIGlzQmluYXJ5LGkgYXMgdG9IZXgsdSBhcyB0b1N0cmluZ307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ5dGVzLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-ws-connection@1.0.16/es2022/jsonrpc-ws-connection.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.787Z","timestamp":1785138633787,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-ws-connection@1.0.16/es2022/jsonrpc-ws-connection.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 05:40:56 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16520\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcd2c29569f-OSL\r\ncontent-length: 1687\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3702,"size_decoded":2140,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3346)","md5":"bbfbc11931c16588867079c4cc33ebb6","sha1":"a976b9eebd7d3869a50d16692c3645894c31fbe6","sha256":"6e0574fa99a4016e087fb2cb93a429b9678ecdd568505d9cf41b86d61566e928","sha512":"15b2a81820e7c69fb0464ef5897cd25cc52bcb0a840db29d5299eee16d4a9d9322619b6add2908040ef242e7e5463910d5ab1007a7a09138cc075895afb7cd62","ssdeep":"","tlshash":"e471364862a0d52776ff119eb902c001712765ac6b8d040cf7749df5a2ab9ceea12ff1","first_seen":"2025-07-08T23:56:54.661034Z","last_seen":"2026-08-08T17:15:51.899575Z","times_seen":24,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy13cy1jb25uZWN0aW9uQDEuMC4xNiAqLwppbXBvcnQqYXMgX18wJCBmcm9tIi93c0BeNy41LjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIndzIjpyZXR1cm4gZShfXzAkKTtkZWZhdWx0OmNvbnNvbGUuZXJyb3IoJ21vZHVsZSAiJytuKyciIG5vdCBmb3VuZCcpO3JldHVybiBudWxsO319Owp2YXIgdT0ocj0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkocix7Z2V0OihlLHQpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbdF19KTpyKShmdW5jdGlvbihyKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrcisnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTtpbXBvcnR7RXZlbnRFbWl0dGVyIGFzIHB9ZnJvbSIvbm9kZS9ldmVudHMubWpzIjtpbXBvcnR7c2FmZUpzb25TdHJpbmdpZnkgYXMgZyxzYWZlSnNvblBhcnNlIGFzIHl9ZnJvbSIvQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQF4xLjAuMj90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7aXNXc1VybCBhcyBjLGlzUmVhY3ROYXRpdmUgYXMgZCxpc0xvY2FsaG9zdFVybCBhcyBrLGZvcm1hdEpzb25ScGNFcnJvciBhcyBtLHBhcnNlQ29ubmVjdGlvbkVycm9yIGFzIHZ9ZnJvbSIvQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0BeMS4wLjY/dGFyZ2V0PWVzMjAyMiI7dmFyIHc9KCk9PnR5cGVvZiBXZWJTb2NrZXQ8InUiP1dlYlNvY2tldDp0eXBlb2YgZ2xvYmFsVGhpczwidSImJnR5cGVvZiBnbG9iYWxUaGlzLldlYlNvY2tldDwidSI/Z2xvYmFsVGhpcy5XZWJTb2NrZXQ6dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3cuV2ViU29ja2V0PCJ1Ij93aW5kb3cuV2ViU29ja2V0OnR5cGVvZiBzZWxmPCJ1IiYmdHlwZW9mIHNlbGYuV2ViU29ja2V0PCJ1Ij9zZWxmLldlYlNvY2tldDp1KCJ3cyIpLGI9KCk9PnR5cGVvZiBXZWJTb2NrZXQ8InUifHx0eXBlb2YgZ2xvYmFsVGhpczwidSImJnR5cGVvZiBnbG9iYWxUaGlzLldlYlNvY2tldDwidSJ8fHR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2Ygd2luZG93LldlYlNvY2tldDwidSJ8fHR5cGVvZiBzZWxmPCJ1IiYmdHlwZW9mIHNlbGYuV2ViU29ja2V0PCJ1IixhPXI9PnIuc3BsaXQoIj8iKVswXSxoPTEwLFM9dygpLGw9Y2xhc3N7Y29uc3RydWN0b3IoZSl7aWYodGhpcy51cmw9ZSx0aGlzLmV2ZW50cz1uZXcgcCx0aGlzLnJlZ2lzdGVyaW5nPSExLCFjKGUpKXRocm93IG5ldyBFcnJvcihgUHJvdmlkZWQgVVJMIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggV2ViU29ja2V0IGNvbm5lY3Rpb246ICR7ZX1gKTt0aGlzLnVybD1lfWdldCBjb25uZWN0ZWQoKXtyZXR1cm4gdHlwZW9mIHRoaXMuc29ja2V0PCJ1In1nZXQgY29ubmVjdGluZygpe3JldHVybiB0aGlzLnJlZ2lzdGVyaW5nfW9uKGUsdCl7dGhpcy5ldmVudHMub24oZSx0KX1vbmNlKGUsdCl7dGhpcy5ldmVudHMub25jZShlLHQpfW9mZihlLHQpe3RoaXMuZXZlbnRzLm9mZihlLHQpfXJlbW92ZUxpc3RlbmVyKGUsdCl7dGhpcy5ldmVudHMucmVtb3ZlTGlzdGVuZXIoZSx0KX1hc3luYyBvcGVuKGU9dGhpcy51cmwpe2F3YWl0IHRoaXMucmVnaXN0ZXIoZSl9YXN5bmMgY2xvc2UoKXtyZXR1cm4gbmV3IFByb21pc2UoKGUsdCk9PntpZih0eXBlb2YgdGhpcy5zb2NrZXQ+InUiKXt0KG5ldyBFcnJvcigiQ29ubmVjdGlvbiBhbHJlYWR5IGNsb3NlZCIpKTtyZXR1cm59dGhpcy5zb2NrZXQub25jbG9zZT1zPT57dGhpcy5vbkNsb3NlKHMpLGUoKX0sdGhpcy5zb2NrZXQuY2xvc2UoKX0pfWFzeW5jIHNlbmQoZSl7dHlwZW9mIHRoaXMuc29ja2V0PiJ1IiYmKHRoaXMuc29ja2V0PWF3YWl0IHRoaXMucmVnaXN0ZXIoKSk7dHJ5e3RoaXMuc29ja2V0LnNlbmQoZyhlKSl9Y2F0Y2godCl7dGhpcy5vbkVycm9yKGUuaWQsdCl9fXJlZ2lzdGVyKGU9dGhpcy51cmwpe2lmKCFjKGUpKXRocm93IG5ldyBFcnJvcihgUHJvdmlkZWQgVVJMIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggV2ViU29ja2V0IGNvbm5lY3Rpb246ICR7ZX1gKTtpZih0aGlzLnJlZ2lzdGVyaW5nKXtsZXQgdD10aGlzLmV2ZW50cy5nZXRNYXhMaXN0ZW5lcnMoKTtyZXR1cm4odGhpcy5ldmVudHMubGlzdGVuZXJDb3VudCgicmVnaXN0ZXJfZXJyb3IiKT49dHx8dGhpcy5ldmVudHMubGlzdGVuZXJDb3VudCgib3BlbiIpPj10KSYmdGhpcy5ldmVudHMuc2V0TWF4TGlzdGVuZXJzKHQrMSksbmV3IFByb21pc2UoKHMsaSk9Pnt0aGlzLmV2ZW50cy5vbmNlKCJyZWdpc3Rlcl9lcnJvciIsbz0+e3RoaXMucmVzZXRNYXhMaXN0ZW5lcnMoKSxpKG8pfSksdGhpcy5ldmVudHMub25jZSgib3BlbiIsKCk9PntpZih0aGlzLnJlc2V0TWF4TGlzdGVuZXJzKCksdHlwZW9mIHRoaXMuc29ja2V0PiJ1IilyZXR1cm4gaShuZXcgRXJyb3IoIldlYlNvY2tldCBjb25uZWN0aW9uIGlzIG1pc3Npbmcgb3IgaW52YWxpZCIpKTtzKHRoaXMuc29ja2V0KX0pfSl9cmV0dXJuIHRoaXMudXJsPWUsdGhpcy5yZWdpc3RlcmluZz0hMCxuZXcgUHJvbWlzZSgodCxzKT0+e2xldCBpPWQoKT92b2lkIDA6e3JlamVjdFVuYXV0aG9yaXplZDohayhlKX0sbz1uZXcgUyhlLFtdLGkpO2IoKT9vLm9uZXJyb3I9bj0+e2xldCBmPW47cyh0aGlzLmVtaXRFcnJvcihmLmVycm9yKSl9Om8ub24oImVycm9yIixuPT57cyh0aGlzLmVtaXRFcnJvcihuKSl9KSxvLm9ub3Blbj0oKT0+e3RoaXMub25PcGVuKG8pLHQobyl9fSl9b25PcGVuKGUpe2Uub25tZXNzYWdlPXQ9PnRoaXMub25QYXlsb2FkKHQpLGUub25jbG9zZT10PT50aGlzLm9uQ2xvc2UodCksdGhpcy5zb2NrZXQ9ZSx0aGlzLnJlZ2lzdGVyaW5nPSExLHRoaXMuZXZlbnRzLmVtaXQoIm9wZW4iKX1vbkNsb3NlKGUpe3RoaXMuc29ja2V0PXZvaWQgMCx0aGlzLnJlZ2lzdGVyaW5nPSExLHRoaXMuZXZlbnRzLmVtaXQoImNsb3NlIixlKX1vblBheWxvYWQoZSl7aWYodHlwZW9mIGUuZGF0YT4idSIpcmV0dXJuO2xldCB0PXR5cGVvZiBlLmRhdGE9PSJzdHJpbmciP3koZS5kYXRhKTplLmRhdGE7dGhpcy5ldmVudHMuZW1pdCgicGF5bG9hZCIsdCl9b25FcnJvcihlLHQpe2xldCBzPXRoaXMucGFyc2VFcnJvcih0KSxpPXMubWVzc2FnZXx8cy50b1N0cmluZygpLG89bShlLGkpO3RoaXMuZXZlbnRzLmVtaXQoInBheWxvYWQiLG8pfXBhcnNlRXJyb3IoZSx0PXRoaXMudXJsKXtyZXR1cm4gdihlLGEodCksIldTIil9cmVzZXRNYXhMaXN0ZW5lcnMoKXt0aGlzLmV2ZW50cy5nZXRNYXhMaXN0ZW5lcnMoKT5oJiZ0aGlzLmV2ZW50cy5zZXRNYXhMaXN0ZW5lcnMoaCl9ZW1pdEVycm9yKGUpe2xldCB0PXRoaXMucGFyc2VFcnJvcihuZXcgRXJyb3IoZT8ubWVzc2FnZXx8YFdlYlNvY2tldCBjb25uZWN0aW9uIGZhaWxlZCBmb3IgaG9zdDogJHthKHRoaXMudXJsKX1gKSk7cmV0dXJuIHRoaXMuZXZlbnRzLmVtaXQoInJlZ2lzdGVyX2Vycm9yIix0KSx0fX07ZXhwb3J0e2wgYXMgV3NDb25uZWN0aW9uLGwgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWpzb25ycGMtd3MtY29ubmVjdGlvbi5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/quick-format-unescaped@4.0.4/es2022/quick-format-unescaped.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.885Z","timestamp":1785138633885,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /quick-format-unescaped@4.0.4/es2022/quick-format-unescaped.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/quick-format-unescaped@%5E4.0.3?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 11372\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcdcc32569f-OSL\r\ncontent-length: 1011\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":1781,"size_decoded":1464,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1685)","md5":"e89eb190ecce6fe654db1d51236f14cb","sha1":"27739a4093f3bc8449b1f4b17a0c81143491051c","sha256":"edd9c1a829fbc5340ea89999390831c91f6b9961c132d94a1217d18e0f946e89","sha512":"fa4de26d274b9c5a825912f5d5f96e7b37cb6fae22d8443db5490280c7946d0593962edd4033e0dfeb3e8d09309ba285f3d0a62e4e5aef59ba85cbe21ddd0b4b","ssdeep":"","tlshash":"e0314fd234a4ce0302f2e6d2854f29c1f428ad709025e8d4d394c3b18ae846b50bffb7","first_seen":"2025-07-08T23:56:54.751385Z","last_seen":"2026-07-27T07:51:47.2023Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gcXVpY2stZm9ybWF0LXVuZXNjYXBlZEA0LjAuNCAqLwp2YXIgZD1PYmplY3QuY3JlYXRlO3ZhciB5PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgQT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO3ZhciBOPU9iamVjdC5nZXRQcm90b3R5cGVPZixTPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGo9KHIsdCk9PigpPT4odHx8cigodD17ZXhwb3J0czp7fX0pLmV4cG9ydHMsdCksdC5leHBvcnRzKTt2YXIgdz0ocix0LGYsbCk9PntpZih0JiZ0eXBlb2YgdD09Im9iamVjdCJ8fHR5cGVvZiB0PT0iZnVuY3Rpb24iKWZvcihsZXQgdSBvZiBDKHQpKSFTLmNhbGwocix1KSYmdSE9PWYmJnkocix1LHtnZXQ6KCk9PnRbdV0sZW51bWVyYWJsZTohKGw9QSh0LHUpKXx8bC5lbnVtZXJhYmxlfSk7cmV0dXJuIHJ9O3ZhciBKPShyLHQsZik9PihmPXIhPW51bGw/ZChOKHIpKTp7fSx3KHR8fCFyfHwhci5fX2VzTW9kdWxlP3koZiwiZGVmYXVsdCIse3ZhbHVlOnIsZW51bWVyYWJsZTohMH0pOmYscikpO3ZhciBwPWooKFAsaCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gTChyKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHIpfWNhdGNoe3JldHVybiciW0NpcmN1bGFyXSInfX1oLmV4cG9ydHM9TTtmdW5jdGlvbiBNKHIsdCxmKXt2YXIgbD1mJiZmLnN0cmluZ2lmeXx8TCx1PTE7aWYodHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbCl7dmFyIGI9dC5sZW5ndGgrdTtpZihiPT09MSlyZXR1cm4gcjt2YXIgaT1uZXcgQXJyYXkoYik7aVswXT1sKHIpO2Zvcih2YXIgcz0xO3M8YjtzKyspaVtzXT1sKHRbc10pO3JldHVybiBpLmpvaW4oIiAiKX1pZih0eXBlb2YgciE9InN0cmluZyIpcmV0dXJuIHI7dmFyIG89dC5sZW5ndGg7aWYobz09PTApcmV0dXJuIHI7Zm9yKHZhciBjPSIiLG49MS11LGE9LTEsaz1yJiZyLmxlbmd0aHx8MCxlPTA7ZTxrOyl7aWYoci5jaGFyQ29kZUF0KGUpPT09MzcmJmUrMTxrKXtzd2l0Y2goYT1hPi0xP2E6MCxyLmNoYXJDb2RlQXQoZSsxKSl7Y2FzZSAxMDA6Y2FzZSAxMDI6aWYobj49b3x8dFtuXT09bnVsbClicmVhazthPGUmJihjKz1yLnNsaWNlKGEsZSkpLGMrPU51bWJlcih0W25dKSxhPWUrMixlKys7YnJlYWs7Y2FzZSAxMDU6aWYobj49b3x8dFtuXT09bnVsbClicmVhazthPGUmJihjKz1yLnNsaWNlKGEsZSkpLGMrPU1hdGguZmxvb3IoTnVtYmVyKHRbbl0pKSxhPWUrMixlKys7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpjYXNlIDEwNjppZihuPj1vfHx0W25dPT09dm9pZCAwKWJyZWFrO2E8ZSYmKGMrPXIuc2xpY2UoYSxlKSk7dmFyIG09dHlwZW9mIHRbbl07aWYobT09PSJzdHJpbmciKXtjKz0iJyIrdFtuXSsiJyIsYT1lKzIsZSsrO2JyZWFrfWlmKG09PT0iZnVuY3Rpb24iKXtjKz10W25dLm5hbWV8fCI8YW5vbnltb3VzPiIsYT1lKzIsZSsrO2JyZWFrfWMrPWwodFtuXSksYT1lKzIsZSsrO2JyZWFrO2Nhc2UgMTE1OmlmKG4+PW8pYnJlYWs7YTxlJiYoYys9ci5zbGljZShhLGUpKSxjKz1TdHJpbmcodFtuXSksYT1lKzIsZSsrO2JyZWFrO2Nhc2UgMzc6YTxlJiYoYys9ci5zbGljZShhLGUpKSxjKz0iJSIsYT1lKzIsZSsrLG4tLTticmVha30rK259KytlfXJldHVybiBhPT09LTE/cjooYTxrJiYoYys9ci5zbGljZShhKSksYyl9fSk7dmFyIHY9SihwKCkpLHE9di5kZWZhdWx0Pz92O2V4cG9ydHtxIGFzIGRlZmF1bHR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1xdWljay1mb3JtYXQtdW5lc2NhcGVkLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/address@5.8.0/es2022/address.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.955Z","timestamp":1785138633955,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/address@5.8.0/es2022/address.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/address@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16519\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dce3c45569f-OSL\r\ncontent-length: 1333\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2600,"size_decoded":1786,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2519)","md5":"7febd8d7df93b59403c994cbd957f535","sha1":"a614d3ed4cd766e7c30015adb4bd3f6910668e71","sha256":"9ca946074c36be0295b930a52201602f11eb7e47b4774e1a28636d089c656eb9","sha512":"e223faf0fbcce729f8a15427837dc5348caedc3644359961c0ed40a3073beb25b696e1a96b10905e0bbb2cc21c855b676aba1f0b9a7256d8e7681a16daa612c4","ssdeep":"","tlshash":"36517214e2a3b09e57a509fcc4d9a40950f98ee0122914b8c6dde8171bf0de4aef7f89","first_seen":"2025-07-08T23:56:54.762843Z","last_seen":"2026-07-27T07:51:47.21778Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYWRkcmVzc0A1LjguMCAqLwppbXBvcnR7YXJyYXlpZnkgYXMgYSxjb25jYXQgYXMgYixoZXhEYXRhTGVuZ3RoIGFzIGMsaGV4RGF0YVNsaWNlIGFzIG0saXNIZXhTdHJpbmcgYXMgQSxzdHJpcFplcm9zIGFzIHh9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYnl0ZXNAXjUuOC4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtCaWdOdW1iZXIgYXMgdyxfYmFzZTE2VG8zNiBhcyBFLF9iYXNlMzZUbzE2IGFzIEN9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYmlnbnVtYmVyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7a2VjY2FrMjU2IGFzIHN9ZnJvbSIvQGV0aGVyc3Byb2plY3Qva2VjY2FrMjU2QF41LjguMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7ZW5jb2RlIGFzIGt9ZnJvbSIvQGV0aGVyc3Byb2plY3QvcmxwQF41LjguMD90YXJnZXQ9ZXMyMDIyIjtpbXBvcnR7TG9nZ2VyIGFzIFN9ZnJvbSIvQGV0aGVyc3Byb2plY3QvbG9nZ2VyQF41LjguMD90YXJnZXQ9ZXMyMDIyIjt2YXIgZz0iYWRkcmVzcy81LjguMCI7dmFyIGk9bmV3IFMoZyk7ZnVuY3Rpb24gaChyKXtBKHIsMjApfHxpLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBhZGRyZXNzIiwiYWRkcmVzcyIscikscj1yLnRvTG93ZXJDYXNlKCk7bGV0IHQ9ci5zdWJzdHJpbmcoMikuc3BsaXQoIiIpLGU9bmV3IFVpbnQ4QXJyYXkoNDApO2ZvcihsZXQgbz0wO288NDA7bysrKWVbb109dFtvXS5jaGFyQ29kZUF0KDApO2xldCBuPWEocyhlKSk7Zm9yKGxldCBvPTA7bzw0MDtvKz0yKW5bbz4+MV0+PjQ+PTgmJih0W29dPXRbb10udG9VcHBlckNhc2UoKSksKG5bbz4+MV0mMTUpPj04JiYodFtvKzFdPXRbbysxXS50b1VwcGVyQ2FzZSgpKTtyZXR1cm4iMHgiK3Quam9pbigiIil9dmFyIHk9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBNKHIpe3JldHVybiBNYXRoLmxvZzEwP01hdGgubG9nMTAocik6TWF0aC5sb2cocikvTWF0aC5MTjEwfXZhciB1PXt9O2ZvcihsZXQgcj0wO3I8MTA7cisrKXVbU3RyaW5nKHIpXT1TdHJpbmcocik7Zm9yKGxldCByPTA7cjwyNjtyKyspdVtTdHJpbmcuZnJvbUNoYXJDb2RlKDY1K3IpXT1TdHJpbmcoMTArcik7dmFyIGw9TWF0aC5mbG9vcihNKHkpKTtmdW5jdGlvbiBwKHIpe3I9ci50b1VwcGVyQ2FzZSgpLHI9ci5zdWJzdHJpbmcoNCkrci5zdWJzdHJpbmcoMCwyKSsiMDAiO2xldCB0PXIuc3BsaXQoIiIpLm1hcChuPT51W25dKS5qb2luKCIiKTtmb3IoO3QubGVuZ3RoPj1sOyl7bGV0IG49dC5zdWJzdHJpbmcoMCxsKTt0PXBhcnNlSW50KG4sMTApJTk3K3Quc3Vic3RyaW5nKG4ubGVuZ3RoKX1sZXQgZT1TdHJpbmcoOTgtcGFyc2VJbnQodCwxMCklOTcpO2Zvcig7ZS5sZW5ndGg8MjspZT0iMCIrZTtyZXR1cm4gZX1mdW5jdGlvbiBmKHIpe2xldCB0PW51bGw7aWYodHlwZW9mIHIhPSJzdHJpbmciJiZpLnRocm93QXJndW1lbnRFcnJvcigiaW52YWxpZCBhZGRyZXNzIiwiYWRkcmVzcyIsciksci5tYXRjaCgvXigweCk/WzAtOWEtZkEtRl17NDB9JC8pKXIuc3Vic3RyaW5nKDAsMikhPT0iMHgiJiYocj0iMHgiK3IpLHQ9aChyKSxyLm1hdGNoKC8oW0EtRl0uKlthLWZdKXwoW2EtZl0uKltBLUZdKS8pJiZ0IT09ciYmaS50aHJvd0FyZ3VtZW50RXJyb3IoImJhZCBhZGRyZXNzIGNoZWNrc3VtIiwiYWRkcmVzcyIscik7ZWxzZSBpZihyLm1hdGNoKC9eWEVbMC05XXsyfVswLTlBLVphLXpdezMwLDMxfSQvKSl7Zm9yKHIuc3Vic3RyaW5nKDIsNCkhPT1wKHIpJiZpLnRocm93QXJndW1lbnRFcnJvcigiYmFkIGljYXAgY2hlY2tzdW0iLCJhZGRyZXNzIixyKSx0PUMoci5zdWJzdHJpbmcoNCkpO3QubGVuZ3RoPDQwOyl0PSIwIit0O3Q9aCgiMHgiK3QpfWVsc2UgaS50aHJvd0FyZ3VtZW50RXJyb3IoImludmFsaWQgYWRkcmVzcyIsImFkZHJlc3MiLHIpO3JldHVybiB0fWZ1bmN0aW9uIEQocil7dHJ5e3JldHVybiBmKHIpLCEwfWNhdGNoe31yZXR1cm4hMX1mdW5jdGlvbiBOKHIpe2xldCB0PUUoZihyKS5zdWJzdHJpbmcoMikpLnRvVXBwZXJDYXNlKCk7Zm9yKDt0Lmxlbmd0aDwzMDspdD0iMCIrdDtyZXR1cm4iWEUiK3AoIlhFMDAiK3QpK3R9ZnVuY3Rpb24gVChyKXtsZXQgdD1udWxsO3RyeXt0PWYoci5mcm9tKX1jYXRjaHtpLnRocm93QXJndW1lbnRFcnJvcigibWlzc2luZyBmcm9tIGFkZHJlc3MiLCJ0cmFuc2FjdGlvbiIscil9bGV0IGU9eChhKHcuZnJvbShyLm5vbmNlKS50b0hleFN0cmluZygpKSk7cmV0dXJuIGYobShzKGsoW3QsZV0pKSwxMikpfWZ1bmN0aW9uIGoocix0LGUpe3JldHVybiBjKHQpIT09MzImJmkudGhyb3dBcmd1bWVudEVycm9yKCJzYWx0IG11c3QgYmUgMzIgYnl0ZXMiLCJzYWx0Iix0KSxjKGUpIT09MzImJmkudGhyb3dBcmd1bWVudEVycm9yKCJpbml0Q29kZUhhc2ggbXVzdCBiZSAzMiBieXRlcyIsImluaXRDb2RlSGFzaCIsZSksZihtKHMoYihbIjB4ZmYiLGYociksdCxlXSkpLDEyKSl9ZXhwb3J0e2YgYXMgZ2V0QWRkcmVzcyxUIGFzIGdldENvbnRyYWN0QWRkcmVzcyxqIGFzIGdldENyZWF0ZTJBZGRyZXNzLE4gYXMgZ2V0SWNhcEFkZHJlc3MsRCBhcyBpc0FkZHJlc3N9OwovLyMgc291cmNlTWFwcGluZ1VSTD1hZGRyZXNzLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/chacha@1.0.1/es2022/chacha.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.985Z","timestamp":1785138633985,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/chacha@1.0.1/es2022/chacha.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/chacha@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16519\r\ncf-ray: a21a0dce6c55569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4211,"size_decoded":2531,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3764)","md5":"d2734f758edf03ebeeaf41630512c7b4","sha1":"2b21a98ed03847278c940869e3fd724f11864710","sha256":"e339254c39ccfd8d3f2bdf3c320b55923877ca38c4d15db5bed99ac18abaaa90","sha512":"119aa8469713155fe950005f55b85e4c2063711da931da34b739529ffb308991d0f8d2a70789314b320b289d12b515447e32b87489000aaa37397c912b37427d","ssdeep":"96:cigZHdL8O/4ZKJaIOI4nGpZvZZX7nvVuz13+6taiFKbb6b:k9LMCzsGpZvZZXy5XRoKb","tlshash":"6791a6aa85ccebf3c27554a9832fced6dbb1f911569ca933c132a07150d0c0e8891f5b","first_seen":"2025-07-08T23:56:54.678922Z","last_seen":"2026-07-27T07:51:47.173384Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9jaGFjaGFAMS4wLjEgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvQHN0YWJsZWxpYi9iaW5hcnlAXjEuMC4xP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIkBzdGFibGVsaWIvYmluYXJ5IjpyZXR1cm4gYyhfXzAkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18xJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIFc9T2JqZWN0LmNyZWF0ZTt2YXIgSz1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIFk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgWj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgJD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBRPShpPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShpLHtnZXQ6KGEscik9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTphKVtyXX0pOmkpKGZ1bmN0aW9uKGkpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytpKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciBJPShpLGEpPT4oKT0+KGF8fGkoKGE9e2V4cG9ydHM6e319KS5leHBvcnRzLGEpLGEuZXhwb3J0cyk7dmFyIHU9KGksYSxyLFUpPT57aWYoYSYmdHlwZW9mIGE9PSJvYmplY3QifHx0eXBlb2YgYT09ImZ1bmN0aW9uIilmb3IobGV0IGogb2YgWihhKSkhYy5jYWxsKGksaikmJmohPT1yJiZLKGksaix7Z2V0OigpPT5hW2pdLGVudW1lcmFibGU6IShVPVkoYSxqKSl8fFUuZW51bWVyYWJsZX0pO3JldHVybiBpfTt2YXIgcD0oaSxhLHIpPT4ocj1pIT1udWxsP1coJChpKSk6e30sdShhfHwhaXx8IWkuX19lc01vZHVsZT9LKHIsImRlZmF1bHQiLHt2YWx1ZTppLGVudW1lcmFibGU6ITB9KTpyLGkpKTt2YXIgVj1JKHE9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBzPVEoIkBzdGFibGVsaWIvYmluYXJ5IiksRD1RKCJAc3RhYmxlbGliL3dpcGUiKSx5PTIwO2Z1bmN0aW9uIGsoaSxhLHIpe2Zvcih2YXIgVT0xNjM0NzYwODA1LGo9ODU3NzYwODc4LEM9MjAzNjQ3NzIzNCxSPTE3OTcyODUyMzYsWD1yWzNdPDwyNHxyWzJdPDwxNnxyWzFdPDw4fHJbMF0sZD1yWzddPDwyNHxyWzZdPDwxNnxyWzVdPDw4fHJbNF0sTz1yWzExXTw8MjR8clsxMF08PDE2fHJbOV08PDh8cls4XSxNPXJbMTVdPDwyNHxyWzE0XTw8MTZ8clsxM108PDh8clsxMl0sej1yWzE5XTw8MjR8clsxOF08PDE2fHJbMTddPDw4fHJbMTZdLEI9clsyM108PDI0fHJbMjJdPDwxNnxyWzIxXTw8OHxyWzIwXSxOPXJbMjddPDwyNHxyWzI2XTw8MTZ8clsyNV08PDh8clsyNF0sUD1yWzMxXTw8MjR8clszMF08PDE2fHJbMjldPDw4fHJbMjhdLFM9YVszXTw8MjR8YVsyXTw8MTZ8YVsxXTw8OHxhWzBdLEY9YVs3XTw8MjR8YVs2XTw8MTZ8YVs1XTw8OHxhWzRdLEc9YVsxMV08PDI0fGFbMTBdPDwxNnxhWzldPDw4fGFbOF0sSD1hWzE1XTw8MjR8YVsxNF08PDE2fGFbMTNdPDw4fGFbMTJdLG09VSxsPWosTD1DLGI9Uix2PVgsdD1kLHc9TyxlPU0sbj16LG89QixfPU4sZz1QLGY9UyxoPUYseD1HLEU9SCxKPTA7Sjx5O0orPTIpbT1tK3Z8MCxmXj1tLGY9Zj4+PjE2fGY8PDE2LG49bitmfDAsdl49bix2PXY+Pj4yMHx2PDwxMixsPWwrdHwwLGhePWwsaD1oPj4+MTZ8aDw8MTYsbz1vK2h8MCx0Xj1vLHQ9dD4+PjIwfHQ8PDEyLEw9TCt3fDAseF49TCx4PXg+Pj4xNnx4PDwxNixfPV8reHwwLHdePV8sdz13Pj4+MjB8dzw8MTIsYj1iK2V8MCxFXj1iLEU9RT4+PjE2fEU8PDE2LGc9ZytFfDAsZV49ZyxlPWU+Pj4yMHxlPDwxMixMPUwrd3wwLHhePUwseD14Pj4+MjR8eDw8OCxfPV8reHwwLHdePV8sdz13Pj4+MjV8dzw8NyxiPWIrZXwwLEVePWIsRT1FPj4+MjR8RTw8OCxnPWcrRXwwLGVePWcsZT1lPj4+MjV8ZTw8NyxsPWwrdHwwLGhePWwsaD1oPj4+MjR8aDw8OCxvPW8raHwwLHRePW8sdD10Pj4+MjV8dDw8NyxtPW0rdnwwLGZePW0sZj1mPj4+MjR8Zjw8OCxuPW4rZnwwLHZePW4sdj12Pj4+MjV8djw8NyxtPW0rdHwwLEVePW0sRT1FPj4+MTZ8RTw8MTYsXz1fK0V8MCx0Xj1fLHQ9dD4+PjIwfHQ8PDEyLGw9bCt3fDAsZl49bCxmPWY+Pj4xNnxmPDwxNixnPWcrZnwwLHdePWcsdz13Pj4+MjB8dzw8MTIsTD1MK2V8MCxoXj1MLGg9aD4+PjE2fGg8PDE2LG49bitofDAsZV49bixlPWU+Pj4yMHxlPDwxMixiPWIrdnwwLHhePWIseD14Pj4+MTZ8eDw8MTYsbz1vK3h8MCx2Xj1vLHY9dj4+PjIwfHY8PDEyLEw9TCtlfDAsaF49TCxoPWg+Pj4yNHxoPDw4LG49bitofDAsZV49bixlPWU+Pj4yNXxlPDw3LGI9Yit2fDAseF49Yix4PXg+Pj4yNHx4PDw4LG89byt4fDAsdl49byx2PXY+Pj4yNXx2PDw3LGw9bCt3fDAsZl49bCxmPWY+Pj4yNHxmPDw4LGc9ZytmfDAsd149Zyx3PXc+Pj4yNXx3PDw3LG09bSt0fDAsRV49bSxFPUU+Pj4yNHxFPDw4LF89XytFfDAsdF49Xyx0PXQ+Pj4yNXx0PDw3O3Mud3JpdGVVaW50MzJMRShtK1V8MCxpLDApLHMud3JpdGVVaW50MzJMRShsK2p8MCxpLDQpLHMud3JpdGVVaW50MzJMRShMK0N8MCxpLDgpLHMud3JpdGVVaW50MzJMRShiK1J8MCxpLDEyKSxzLndyaXRlVWludDMyTEUoditYfDAsaSwxNikscy53cml0ZVVpbnQzMkxFKHQrZHwwLGksMjApLHMud3JpdGVVaW50MzJMRSh3K098MCxpLDI0KSxzLndyaXRlVWludDMyTEUoZStNfDAsaSwyOCkscy53cml0ZVVpbnQzMkxFKG4renwwLGksMzIpLHMud3JpdGVVaW50MzJMRShvK0J8MCxpLDM2KSxzLndyaXRlVWludDMyTEUoXytOfDAsaSw0MCkscy53cml0ZVVpbnQzMkxFKGcrUHwwLGksNDQpLHMud3JpdGVVaW50MzJMRShmK1N8MCxpLDQ4KSxzLndyaXRlVWludDMyTEUoaCtGfDAsaSw1Mikscy53cml0ZVVpbnQzMkxFKHgrR3wwLGksNTYpLHMud3JpdGVVaW50MzJMRShFK0h8MCxpLDYwKX1mdW5jdGlvbiBUKGksYSxyLFUsail7aWYoaj09PXZvaWQgMCYmKGo9MCksaS5sZW5ndGghPT0zMil0aHJvdyBuZXcgRXJyb3IoIkNoYUNoYToga2V5IHNpemUgbXVzdCBiZSAzMiBieXRlcyIpO2lmKFUubGVuZ3RoPHIubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQ2hhQ2hhOiBkZXN0aW5hdGlvbiBpcyBzaG9ydGVyIHRoYW4gc291cmNlIik7dmFyIEMsUjtpZihqPT09MCl7aWYoYS5sZW5ndGghPT04JiZhLmxlbmd0aCE9PTEyKXRocm93IG5ldyBFcnJvcigiQ2hhQ2hhIG5vbmNlIG11c3QgYmUgOCBvciAxMiBieXRlcyIpO0M9bmV3IFVpbnQ4QXJyYXkoMTYpLFI9Qy5sZW5ndGgtYS5sZW5ndGgsQy5zZXQoYSxSKX1lbHNle2lmKGEubGVuZ3RoIT09MTYpdGhyb3cgbmV3IEVycm9yKCJDaGFDaGEgbm9uY2Ugd2l0aCBjb3VudGVyIG11c3QgYmUgMTYgYnl0ZXMiKTtDPWEsUj1qfWZvcih2YXIgWD1uZXcgVWludDhBcnJheSg2NCksZD0wO2Q8ci5sZW5ndGg7ZCs9NjQpe2soWCxDLGkpO2Zvcih2YXIgTz1kO088ZCs2NCYmTzxyLmxlbmd0aDtPKyspVVtPXT1yW09dXlhbTy1kXTthMihDLDAsUil9cmV0dXJuIEQud2lwZShYKSxqPT09MCYmRC53aXBlKEMpLFV9cS5zdHJlYW1YT1I9VDtmdW5jdGlvbiByMihpLGEscixVKXtyZXR1cm4gVT09PXZvaWQgMCYmKFU9MCksRC53aXBlKHIpLFQoaSxhLHIscixVKX1xLnN0cmVhbT1yMjtmdW5jdGlvbiBhMihpLGEscil7Zm9yKHZhciBVPTE7ci0tOylVPVUrKGlbYV0mMjU1KXwwLGlbYV09VSYyNTUsVT4+Pj04LGErKztpZihVPjApdGhyb3cgbmV3IEVycm9yKCJDaGFDaGE6IGNvdW50ZXIgb3ZlcmZsb3ciKX19KTt2YXIgQT1wKFYoKSkse19fZXNNb2R1bGU6dDIsc3RyZWFtWE9SOncyLHN0cmVhbTplMn09QSxmMj1BLmRlZmF1bHQ/P0E7ZXhwb3J0e3QyIGFzIF9fZXNNb2R1bGUsZjIgYXMgZGVmYXVsdCxlMiBhcyBzdHJlYW0sdzIgYXMgc3RyZWFtWE9SfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2hhY2hhLm1qcy5tYXA="}},"time_used":11,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/sha2.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.219Z","timestamp":1785138634219,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/hashes/sha2.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Wed, 19 Nov 2025 18:21:25 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfec8a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":316,"size_decoded":623,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text","md5":"f46ee229848d7a9ca944c4569bb4c706","sha1":"62fe1915ee496d03f75e815867c5e815749144b5","sha256":"4378a9e2ce412cfb143f54471c6a7bea63e65c61df819a3516295da0d4476ceb","sha512":"8f41053d6a7955dbfc2963a39d56f066fbfa6db573285d79d0281c10d04e83b3784ba41c784b459ecebed26f4162cf732915ef2af63df8a0bf4ed4025b8cea10","ssdeep":"","tlshash":"24e07da88cfe2ef41a3b205c2c64904154e94f1a82408134b48d1f1845d05e6123af72","first_seen":"2025-07-08T23:56:54.604914Z","last_seen":"2026-08-08T17:15:51.469075Z","times_seen":118,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2hhc2hlcy9zaGEyICovCmltcG9ydHtmcm9tIGFzIGV9ZnJvbSIuL2hhc2hlci5tanMiO3ZhciBvPWE9PmFzeW5jIHM9Pm5ldyBVaW50OEFycmF5KGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KGEscykpLG49ZSh7bmFtZToic2hhMi0yNTYiLGNvZGU6MTgsZW5jb2RlOm8oIlNIQS0yNTYiKX0pLGM9ZSh7bmFtZToic2hhMi01MTIiLGNvZGU6MTksZW5jb2RlOm8oIlNIQS01MTIiKX0pO2V4cG9ydHtuIGFzIHNoYTI1NixjIGFzIHNoYTUxMn07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXNoYTIubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-assert@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.763Z","timestamp":1785138633763,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /minimalistic-assert@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/elliptic@6.6.1/es2022/elliptic.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /minimalistic-assert@1.0.1/es2022/minimalistic-assert.mjs\r\nx-typescript-types: https://esm.sh/@types/minimalistic-assert@~1.0.3/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcd0c22569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":201,"size_decoded":663,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"8e0faac53bc45ece16c3837b588e0960","sha1":"1063472c14e3a5e61988f599a3f17f7520c597ad","sha256":"02883d571ab4809495608554744cc80c42f7f249b2002a8be09a7307238f743a","sha512":"e1d59a28b5cbc94a93b7ea3d51ff67d6e9df0caa3acdac704095466233137e1b0ea1e592502e9753f7eea17c023f3b59d98b9a60dac3518b93370a445db14897","ssdeep":"","tlshash":"a1d0e91143578f2a37b82aea11ae692e7a538fc4f84110ba15fd8913f0974c294963b5","first_seen":"2025-07-08T23:56:54.59861Z","last_seen":"2026-07-27T07:51:47.209697Z","times_seen":30,"resource_available":true,"data":"LyogZXNtLnNoIC0gbWluaW1hbGlzdGljLWFzc2VydEAxLjAuMSAqLwpleHBvcnQgKiBmcm9tICIvbWluaW1hbGlzdGljLWFzc2VydEAxLjAuMS9lczIwMjIvbWluaW1hbGlzdGljLWFzc2VydC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL21pbmltYWxpc3RpYy1hc3NlcnRAMS4wLjEvZXMyMDIyL21pbmltYWxpc3RpYy1hc3NlcnQubWpzIjsK"}},"time_used":117,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":117,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/minimalistic-crypto-utils@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.765Z","timestamp":1785138633765,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /minimalistic-crypto-utils@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/elliptic@6.6.1/es2022/elliptic.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /minimalistic-crypto-utils@1.0.1/es2022/minimalistic-crypto-utils.mjs\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcd0c23569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":231,"size_decoded":580,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"b5caab1656f7a7f4552d12fc3ba8bf2d","sha1":"01606a98d944607b169e339577aca87efe6bee7b","sha256":"db333271eb083fec6e3bb727ca15a3104c628b25da72017cb634d1d024d859cf","sha512":"f5a2dc920a9804e97a93f086be680133a25ed77c9b1b1623d2e073f68fc61522be32a6e999d51e212fb477912216950968d933c5b3a162e4858897280a75a8e6","ssdeep":"","tlshash":"13d0b71a0657df2733e40a66137fad1d96a24e459881127516fdad03d2828d0d8902e5","first_seen":"2025-07-08T23:56:54.622667Z","last_seen":"2026-07-27T07:51:47.246997Z","times_seen":24,"resource_available":true,"data":"LyogZXNtLnNoIC0gbWluaW1hbGlzdGljLWNyeXB0by11dGlsc0AxLjAuMSAqLwpleHBvcnQgKiBmcm9tICIvbWluaW1hbGlzdGljLWNyeXB0by11dGlsc0AxLjAuMS9lczIwMjIvbWluaW1hbGlzdGljLWNyeXB0by11dGlscy5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL21pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHNAMS4wLjEvZXMyMDIyL21pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMubWpzIjsK"}},"time_used":109,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":109,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/decode-uri-component@%5E0.2.2?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.682Z","timestamp":1785138633682,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /decode-uri-component@%5E0.2.2?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/query-string@7.1.3/es2022/query-string.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /decode-uri-component@0.2.2/es2022/decode-uri-component.mjs\r\nx-typescript-types: https://esm.sh/@types/decode-uri-component@~0.2.2/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc8bf7569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":206,"size_decoded":668,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"11095b8880dd56c53071f9be4cc60320","sha1":"4cb04ff3662954e9ffff3aac59bf0c5db7fae5c5","sha256":"8f2345c89b8ecf6ebe8b28e18265df079986b5c746f2a0cebf8aba0539f3fd23","sha512":"e82e3829a7cb8a085d71d39c0b5670461aaa0d771c39582dc3fe368382219f759fac047349645c863b69318b9a54bbe57b40f173334042d73eac7ff34ceb5656","ssdeep":"","tlshash":"d3d0c9fd001242f618badc80433cb823e2e92104d8c725992b1b03e4a78306150124de","first_seen":"2025-07-08T23:56:54.688691Z","last_seen":"2026-07-27T07:51:47.198184Z","times_seen":113,"resource_available":true,"data":"LyogZXNtLnNoIC0gZGVjb2RlLXVyaS1jb21wb25lbnRAMC4yLjIgKi8KZXhwb3J0ICogZnJvbSAiL2RlY29kZS11cmktY29tcG9uZW50QDAuMi4yL2VzMjAyMi9kZWNvZGUtdXJpLWNvbXBvbmVudC5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL2RlY29kZS11cmktY29tcG9uZW50QDAuMi4yL2VzMjAyMi9kZWNvZGUtdXJpLWNvbXBvbmVudC5tanMiOwo="}},"time_used":116,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":116,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/constants@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.698Z","timestamp":1785138633698,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/constants@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/transactions@5.7.0/es2022/transactions.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/constants@5.8.0/es2022/constants.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/constants@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcc9c01569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":173,"size_decoded":679,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"a2d22fa01d719193a933172d85c9bc51","sha1":"1b141d89185bde8aab44c267c6ad0fc26854fb05","sha256":"9c305e7b0cd23610c175f0f447c03010cffa3b0a00b5bae7224a8a0ae68bca57","sha512":"3aab9c88a5578e236e9fad859d08b7c6de54312e6b56af1d60922c204a279d085bd88a60f1f14ea00ecda9ce83ec311b3e25d2096e1eff055351bafb7a5ced6a","ssdeep":"","tlshash":"fcc01256c01555cc775d0fdc0228ab3c91773054e044d0ea541c8623829310665524a7","first_seen":"2025-07-08T23:56:54.677691Z","last_seen":"2026-07-27T07:51:47.182413Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvY29uc3RhbnRzQDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2JpZ251bWJlckBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9jb25zdGFudHNANS44LjAvZXMyMDIyL2NvbnN0YW50cy5tanMiOwo="}},"time_used":116,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":116,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"img1.wsimg.com/traffic-assets/js/tccl.min.js","fqdn":"img1.wsimg.com","domain":"wsimg.com","tld":"com"},"ip":{"addr":"95.101.11.152","port":443,"asn":20940,"as":"Akamai International B.V.","country":"Norway","country_code":"NO"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.122Z","timestamp":1785138633122,"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":"*.wsimg.com","organization":""},"issuer":{"commonName":"Starfield Secure Certificate Authority - G2","organization":"Starfield Technologies, Inc."},"validity":{"start":"Fri, 05 Sep 2025 18:24:05 GMT","end":"Wed, 07 Oct 2026 18:24:05 GMT"},"fingerprint":{"sha1":"0E:95:B5:3C:BC:57:5B:29:44:36:31:82:4A:13:83:C0:BB:C6:51:2D","sha256":"2E:41:DD:15:BE:3D:3A:3A:29:F0:65:E6:52:EC:88:54:C4:60:01:9E:68:96:30:F3:2A:31:D9:A1:95:CA:69:24"}}},"request":{"raw":"GET /traffic-assets/js/tccl.min.js HTTP/1.1\r\nHost: img1.wsimg.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://mail.usdt-transfer.info/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 301 \r\ncontent-length: 0\r\nlocation: https://img1.wsimg.com/signals/js/clients/scc-c2/scc-c2.min.js\r\ncache-control: max-age=31536000\r\nexpires: Tue, 27 Jul 2027 07:50:33 GMT\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ntiming-allow-origin: *\r\naccess-control-allow-origin: *\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"301","status_text":"","fingerprints":null,"data":{"size":0,"size_decoded":0,"mime_type":"text/javascript","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-08-13T11:51:57.48642Z","times_seen":17870963,"resource_available":true,"data":null}},"time_used":20,"timings":{"blocked":-1,"dns":2,"connect":1,"send":0,"wait":6,"receive":0,"ssl":11},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.492Z","timestamp":1785138633492,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/jsonrpc-utils@1.0.8/es2022/jsonrpc-utils.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/universal-provider@2.17.4\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcb5bcb569f-OSL\r\ncontent-length: 1787\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":3747,"size_decoded":2240,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (3654)","md5":"a4bb50905c024514adf72bad834a9555","sha1":"486ced7c635841aaba7a59cdc8d8a97679a0a7bf","sha256":"55ab329d32284d7d21e4f09a86e8fa6fcda90730494ae06e8cc60270ee556451","sha512":"3e8fa5fbc0e942b1aab44ae5694405f94516f4950cbfea1dcc41a560f0223eb3ee1544746d59ebda3fad5e2eed52a3fc9e7f63619870992ae1f481c1cbb60a28","ssdeep":"","tlshash":"fd7132cc7896bc793a1a102570af3407a27c7ee0212d6826da58a155f674cfc8b97bd8","first_seen":"2025-07-08T23:56:54.726794Z","last_seen":"2026-08-08T17:15:51.31584Z","times_seen":130,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3QvanNvbnJwYy11dGlsc0AxLjAuOCAqLwp2YXIgbT0iUEFSU0VfRVJST1IiLGc9IklOVkFMSURfUkVRVUVTVCIsTz0iTUVUSE9EX05PVF9GT1VORCIsXz0iSU5WQUxJRF9QQVJBTVMiLHM9IklOVEVSTkFMX0VSUk9SIixuPSJTRVJWRVJfRVJST1IiLGQ9Wy0zMjcwMCwtMzI2MDAsLTMyNjAxLC0zMjYwMiwtMzI2MDNdLFI9Wy0zMmUzLC0zMjA5OV0sbz17W21dOntjb2RlOi0zMjcwMCxtZXNzYWdlOiJQYXJzZSBlcnJvciJ9LFtnXTp7Y29kZTotMzI2MDAsbWVzc2FnZToiSW52YWxpZCBSZXF1ZXN0In0sW09dOntjb2RlOi0zMjYwMSxtZXNzYWdlOiJNZXRob2Qgbm90IGZvdW5kIn0sW19dOntjb2RlOi0zMjYwMixtZXNzYWdlOiJJbnZhbGlkIHBhcmFtcyJ9LFtzXTp7Y29kZTotMzI2MDMsbWVzc2FnZToiSW50ZXJuYWwgZXJyb3IifSxbbl06e2NvZGU6LTMyZTMsbWVzc2FnZToiU2VydmVyIGVycm9yIn19LGk9bjtmdW5jdGlvbiBoKHIpe3JldHVybiByPD1SWzBdJiZyPj1SWzFdfWZ1bmN0aW9uIGMocil7cmV0dXJuIGQuaW5jbHVkZXMocil9ZnVuY3Rpb24gTihyKXtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIifWZ1bmN0aW9uIGYocil7cmV0dXJuIE9iamVjdC5rZXlzKG8pLmluY2x1ZGVzKHIpP29bcl06b1tpXX1mdW5jdGlvbiB1KHIpe2xldCBlPU9iamVjdC52YWx1ZXMobykuZmluZCh0PT50LmNvZGU9PT1yKTtyZXR1cm4gZXx8b1tpXX1mdW5jdGlvbiBQKHIpe2lmKHR5cGVvZiByLmVycm9yLmNvZGU+InUiKXJldHVybnt2YWxpZDohMSxlcnJvcjoiTWlzc2luZyBjb2RlIGZvciBKU09OLVJQQyBlcnJvciJ9O2lmKHR5cGVvZiByLmVycm9yLm1lc3NhZ2U+InUiKXJldHVybnt2YWxpZDohMSxlcnJvcjoiTWlzc2luZyBtZXNzYWdlIGZvciBKU09OLVJQQyBlcnJvciJ9O2lmKCFOKHIuZXJyb3IuY29kZSkpcmV0dXJue3ZhbGlkOiExLGVycm9yOmBJbnZhbGlkIGVycm9yIGNvZGUgdHlwZSBmb3IgSlNPTi1SUEM6ICR7ci5lcnJvci5jb2RlfWB9O2lmKGMoci5lcnJvci5jb2RlKSl7bGV0IGU9dShyLmVycm9yLmNvZGUpO2lmKGUubWVzc2FnZSE9PW9baV0ubWVzc2FnZSYmci5lcnJvci5tZXNzYWdlPT09ZS5tZXNzYWdlKXJldHVybnt2YWxpZDohMSxlcnJvcjpgSW52YWxpZCBlcnJvciBjb2RlIG1lc3NhZ2UgZm9yIEpTT04tUlBDOiAke3IuZXJyb3IuY29kZX1gfX1yZXR1cm57dmFsaWQ6ITB9fWZ1bmN0aW9uIEoocixlLHQpe3JldHVybiByLm1lc3NhZ2UuaW5jbHVkZXMoImdldGFkZHJpbmZvIEVOT1RGT1VORCIpfHxyLm1lc3NhZ2UuaW5jbHVkZXMoImNvbm5lY3QgRUNPTk5SRUZVU0VEIik/bmV3IEVycm9yKGBVbmF2YWlsYWJsZSAke3R9IFJQQyB1cmwgYXQgJHtlfWApOnJ9ZXhwb3J0KmZyb20iLi9kaXN0L2VzbS9lbnYubWpzIjtmdW5jdGlvbiBwKHI9Myl7bGV0IGU9RGF0ZS5ub3coKSpNYXRoLnBvdygxMCxyKSx0PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpNYXRoLnBvdygxMCxyKSk7cmV0dXJuIGUrdH1mdW5jdGlvbiBqKHI9Nil7cmV0dXJuIEJpZ0ludChwKHIpKX1mdW5jdGlvbiB3KHIsZSx0KXtyZXR1cm57aWQ6dHx8cCgpLGpzb25ycGM6IjIuMCIsbWV0aG9kOnIscGFyYW1zOmV9fWZ1bmN0aW9uIGIocixlKXtyZXR1cm57aWQ6cixqc29ucnBjOiIyLjAiLHJlc3VsdDplfX1mdW5jdGlvbiB5KHIsZSx0KXtyZXR1cm57aWQ6cixqc29ucnBjOiIyLjAiLGVycm9yOlMoZSx0KX19ZnVuY3Rpb24gUyhyLGUpe3JldHVybiB0eXBlb2Ygcj4idSI/ZihzKToodHlwZW9mIHI9PSJzdHJpbmciJiYocj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZihuKSkse21lc3NhZ2U6cn0pKSx0eXBlb2YgZTwidSImJihyLmRhdGE9ZSksYyhyLmNvZGUpJiYocj11KHIuY29kZSkpLHIpfWZ1bmN0aW9uIFcocil7cmV0dXJuIHIuaW5jbHVkZXMoIioiKT9hKHIpOiEvXFcvZy50ZXN0KHIpfWZ1bmN0aW9uIEUocil7cmV0dXJuIHI9PT0iKiJ9ZnVuY3Rpb24gYShyKXtyZXR1cm4gRShyKT8hMDohKCFyLmluY2x1ZGVzKCIqIil8fHIuc3BsaXQoIioiKS5sZW5ndGghPT0yfHxyLnNwbGl0KCIqIikuZmlsdGVyKGU9PmUudHJpbSgpPT09IiIpLmxlbmd0aCE9PTEpfWZ1bmN0aW9uIEIocil7cmV0dXJuIUUocikmJmEocikmJiFyLnNwbGl0KCIqIilbMF0udHJpbSgpfWZ1bmN0aW9uIEcocil7cmV0dXJuIUUocikmJmEocikmJiFyLnNwbGl0KCIqIilbMV0udHJpbSgpfWV4cG9ydCpmcm9tIi9Ad2FsbGV0Y29ubmVjdC9qc29ucnBjLXR5cGVzQF4xLjAuMz90YXJnZXQ9ZXMyMDIyIjt2YXIgRD0iXmh0dHBzPzoiLEE9Il53c3M/OiI7ZnVuY3Rpb24gSShyKXtsZXQgZT1yLm1hdGNoKG5ldyBSZWdFeHAoL15cdys6LywiZ2kiKSk7aWYoISghZXx8IWUubGVuZ3RoKSlyZXR1cm4gZVswXX1mdW5jdGlvbiBsKHIsZSl7bGV0IHQ9SShyKTtyZXR1cm4gdHlwZW9mIHQ+InUiPyExOm5ldyBSZWdFeHAoZSkudGVzdCh0KX1mdW5jdGlvbiAkKHIpe3JldHVybiBsKHIsRCl9ZnVuY3Rpb24gcShyKXtyZXR1cm4gbChyLEEpfWZ1bmN0aW9uIFEocil7cmV0dXJuIG5ldyBSZWdFeHAoIndzcz86Ly9sb2NhbGhvc3QoOmR7Miw1fSk/IikudGVzdChyKX1mdW5jdGlvbiB4KHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJiJpZCJpbiByJiYianNvbnJwYyJpbiByJiZyLmpzb25ycGM9PT0iMi4wIn1mdW5jdGlvbiBrKHIpe3JldHVybiB4KHIpJiYibWV0aG9kImluIHJ9ZnVuY3Rpb24geihyKXtyZXR1cm4geChyKSYmKFYocil8fHYocikpfWZ1bmN0aW9uIFYocil7cmV0dXJuInJlc3VsdCJpbiByfWZ1bmN0aW9uIHYocil7cmV0dXJuImVycm9yImluIHJ9ZnVuY3Rpb24gSyhyKXtyZXR1cm4iZXJyb3IiaW4gciYmci52YWxpZD09PSExfWV4cG9ydHtpIGFzIERFRkFVTFRfRVJST1IscyBhcyBJTlRFUk5BTF9FUlJPUixfIGFzIElOVkFMSURfUEFSQU1TLGcgYXMgSU5WQUxJRF9SRVFVRVNULE8gYXMgTUVUSE9EX05PVF9GT1VORCxtIGFzIFBBUlNFX0VSUk9SLGQgYXMgUkVTRVJWRURfRVJST1JfQ09ERVMsbiBhcyBTRVJWRVJfRVJST1IsUiBhcyBTRVJWRVJfRVJST1JfQ09ERV9SQU5HRSxvIGFzIFNUQU5EQVJEX0VSUk9SX01BUCxTIGFzIGZvcm1hdEVycm9yTWVzc2FnZSx5IGFzIGZvcm1hdEpzb25ScGNFcnJvcix3IGFzIGZvcm1hdEpzb25ScGNSZXF1ZXN0LGIgYXMgZm9ybWF0SnNvblJwY1Jlc3VsdCxqIGFzIGdldEJpZ0ludFJwY0lkLGYgYXMgZ2V0RXJyb3IsdSBhcyBnZXRFcnJvckJ5Q29kZSwkIGFzIGlzSHR0cFVybCx2IGFzIGlzSnNvblJwY0Vycm9yLHggYXMgaXNKc29uUnBjUGF5bG9hZCxrIGFzIGlzSnNvblJwY1JlcXVlc3QseiBhcyBpc0pzb25ScGNSZXNwb25zZSxWIGFzIGlzSnNvblJwY1Jlc3VsdCxLIGFzIGlzSnNvblJwY1ZhbGlkYXRpb25JbnZhbGlkLFEgYXMgaXNMb2NhbGhvc3RVcmwsYyBhcyBpc1Jlc2VydmVkRXJyb3JDb2RlLGggYXMgaXNTZXJ2ZXJFcnJvckNvZGUsRSBhcyBpc1ZhbGlkRGVmYXVsdFJvdXRlLE4gYXMgaXNWYWxpZEVycm9yQ29kZSxCIGFzIGlzVmFsaWRMZWFkaW5nV2lsZGNhcmRSb3V0ZSxXIGFzIGlzVmFsaWRSb3V0ZSxHIGFzIGlzVmFsaWRUcmFpbGluZ1dpbGRjYXJkUm91dGUsYSBhcyBpc1ZhbGlkV2lsZGNhcmRSb3V0ZSxxIGFzIGlzV3NVcmwsSiBhcyBwYXJzZUNvbm5lY3Rpb25FcnJvcixwIGFzIHBheWxvYWRJZCxQIGFzIHZhbGlkYXRlSnNvblJwY0Vycm9yfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9anNvbnJwYy11dGlscy5tanMubWFw"}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hkdf@1.0.1/es2022/hkdf.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.577Z","timestamp":1785138633577,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/hkdf@1.0.1/es2022/hkdf.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 10:27:57 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbdbe6569f-OSL\r\ncontent-length: 1231\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2317,"size_decoded":1684,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (1878)","md5":"5d8706468f2d28117781ce625f1b1084","sha1":"260c1ff71a0422fe3eb7ae7a429130b51051a0a1","sha256":"a52c448d6886bdb7ccc5546081fe8e4974647d8e2f7a090f670fca46ceb2e57b","sha512":"6ddbc60bd62e85f89d2232001415fda194fcdf215d0a691c39d6c4a027c7e852a356ad87ba90769f7fc2f85f5a846dc0832aa35c04e69e2357409f5b0369d8b1","ssdeep":"","tlshash":"d84152a52ac4f2611537d8c1e17e6607f121a5384079d02cf28cccfd96ecc363956b76","first_seen":"2025-11-22T14:57:23.792364Z","last_seen":"2026-07-27T07:51:47.201236Z","times_seen":110,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9oa2RmQDEuMC4xICovCmltcG9ydCphcyBfXzAkIGZyb20iL0BzdGFibGVsaWIvaG1hY0BeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0KmFzIF9fMSQgZnJvbSIvQHN0YWJsZWxpYi93aXBlQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjt2YXIgcmVxdWlyZT1uPT57Y29uc3QgZT1tPT50eXBlb2YgbS5kZWZhdWx0PCJ1Ij9tLmRlZmF1bHQ6bSxjPW09Pk9iamVjdC5hc3NpZ24oe19fZXNNb2R1bGU6dHJ1ZX0sbSk7c3dpdGNoKG4pe2Nhc2UiQHN0YWJsZWxpYi9obWFjIjpyZXR1cm4gYyhfXzAkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18xJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIHA9T2JqZWN0LmNyZWF0ZTt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgYj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgZD1PYmplY3QuZ2V0UHJvdG90eXBlT2YsbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBvPShlPT50eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0eXBlb2YgUHJveHk8InUiP25ldyBQcm94eShlLHtnZXQ6KHQsaSk9Pih0eXBlb2YgcmVxdWlyZTwidSI/cmVxdWlyZTp0KVtpXX0pOmUpKGZ1bmN0aW9uKGUpe2lmKHR5cGVvZiByZXF1aXJlPCJ1IilyZXR1cm4gcmVxdWlyZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhyb3cgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytlKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX0pO3ZhciB3PShlLHQpPT4oKT0+KHR8fGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyk7dmFyIHY9KGUsdCxpLHIpPT57aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIilmb3IobGV0IGggb2YgYih0KSkhbC5jYWxsKGUsaCkmJmghPT1pJiZuKGUsaCx7Z2V0OigpPT50W2hdLGVudW1lcmFibGU6IShyPW0odCxoKSl8fHIuZW51bWVyYWJsZX0pO3JldHVybiBlfTt2YXIgeT0oZSx0LGkpPT4oaT1lIT1udWxsP3AoZChlKSk6e30sdih0fHwhZXx8IWUuX19lc01vZHVsZT9uKGksImRlZmF1bHQiLHt2YWx1ZTplLGVudW1lcmFibGU6ITB9KTppLGUpKTt2YXIgYT13KGY9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB1PW8oIkBzdGFibGVsaWIvaG1hYyIpLF89bygiQHN0YWJsZWxpYi93aXBlIiksZz0oZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsaSxyLGgpe3I9PT12b2lkIDAmJihyPW5ldyBVaW50OEFycmF5KDApKSx0aGlzLl9jb3VudGVyPW5ldyBVaW50OEFycmF5KDEpLHRoaXMuX2hhc2g9dCx0aGlzLl9pbmZvPWg7dmFyIGM9dS5obWFjKHRoaXMuX2hhc2gscixpKTt0aGlzLl9obWFjPW5ldyB1LkhNQUModCxjKSx0aGlzLl9idWZmZXI9bmV3IFVpbnQ4QXJyYXkodGhpcy5faG1hYy5kaWdlc3RMZW5ndGgpLHRoaXMuX2J1ZnBvcz10aGlzLl9idWZmZXIubGVuZ3RofXJldHVybiBlLnByb3RvdHlwZS5fZmlsbEJ1ZmZlcj1mdW5jdGlvbigpe3RoaXMuX2NvdW50ZXJbMF0rKzt2YXIgdD10aGlzLl9jb3VudGVyWzBdO2lmKHQ9PT0wKXRocm93IG5ldyBFcnJvcigiaGtkZjogY2Fubm90IGV4cGFuZCBtb3JlIik7dGhpcy5faG1hYy5yZXNldCgpLHQ+MSYmdGhpcy5faG1hYy51cGRhdGUodGhpcy5fYnVmZmVyKSx0aGlzLl9pbmZvJiZ0aGlzLl9obWFjLnVwZGF0ZSh0aGlzLl9pbmZvKSx0aGlzLl9obWFjLnVwZGF0ZSh0aGlzLl9jb3VudGVyKSx0aGlzLl9obWFjLmZpbmlzaCh0aGlzLl9idWZmZXIpLHRoaXMuX2J1ZnBvcz0wfSxlLnByb3RvdHlwZS5leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPW5ldyBVaW50OEFycmF5KHQpLHI9MDtyPGkubGVuZ3RoO3IrKyl0aGlzLl9idWZwb3M9PT10aGlzLl9idWZmZXIubGVuZ3RoJiZ0aGlzLl9maWxsQnVmZmVyKCksaVtyXT10aGlzLl9idWZmZXJbdGhpcy5fYnVmcG9zKytdO3JldHVybiBpfSxlLnByb3RvdHlwZS5jbGVhbj1mdW5jdGlvbigpe3RoaXMuX2htYWMuY2xlYW4oKSxfLndpcGUodGhpcy5fYnVmZmVyKSxfLndpcGUodGhpcy5fY291bnRlciksdGhpcy5fYnVmcG9zPTB9LGV9KSgpO2YuSEtERj1nfSk7dmFyIHM9eShhKCkpLHtfX2VzTW9kdWxlOngsSEtERjpEfT1zLEY9cy5kZWZhdWx0Pz9zO2V4cG9ydHtEIGFzIEhLREYseCBhcyBfX2VzTW9kdWxlLEYgYXMgZGVmYXVsdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhrZGYubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/binary@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.717Z","timestamp":1785138633717,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/binary@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/chacha20poly1305@1.0.1/es2022/chacha20poly1305.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@stablelib/binary@1.0.1/es2022/binary.mjs\r\nx-typescript-types: https://esm.sh/@stablelib/binary@1.0.1/lib/binary.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccbc0a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":216,"size_decoded":663,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d5e30b09f139462f84cd37c450eb8822","sha1":"ae7f21661c6afe6b75016e4741debb6216ee917e","sha256":"ce714ed16f459fc71f5ff85e7194df3f81ab3876d5ffb2e325702b2741c81228","sha512":"0aeafe3ac7340d84c3398f5fd2c0328becfb2a0d6b809096c5aa9b5058384052b3767ab74e591bf48c28cf834bcc20ca90cdb25f4402b37cada87cbcd639418a","ssdeep":"","tlshash":"d2d01311036be6f5a711ed94f377f23447710544ddf5055c1555770250476c1543a7d7","first_seen":"2025-07-08T23:56:54.57568Z","last_seen":"2026-07-27T07:51:47.191661Z","times_seen":112,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9iaW5hcnlAMS4wLjEgKi8KaW1wb3J0ICIvQHN0YWJsZWxpYi9pbnRAXjEuMC4xP3RhcmdldD1lczIwMjIiOwpleHBvcnQgKiBmcm9tICIvQHN0YWJsZWxpYi9iaW5hcnlAMS4wLjEvZXMyMDIyL2JpbmFyeS5tanMiOwpleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAiL0BzdGFibGVsaWIvYmluYXJ5QDEuMC4xL2VzMjAyMi9iaW5hcnkubWpzIjsK"}},"time_used":106,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":106,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/window-metadata@1.0.1/es2022/window-metadata.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.570Z","timestamp":1785138633570,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/window-metadata@1.0.1/es2022/window-metadata.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbdbe0569f-OSL\r\ncontent-length: 1406\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2579,"size_decoded":1859,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2182)","md5":"93327ec31217b762bac4f644bd6b6be0","sha1":"6dcb6f2bab7d8857748808c1e18f151f16089e40","sha256":"0cc0860fb186283c2b98d928371995eafd529cd35fdb734b9f58add1b2cf2339","sha512":"eea3fb1c0eb0b902304d5fa2bfbb477d1f2ead1fc01f6586fe5307000e0ed5977b891459841eef3659c495a4cb0bbe2759a03d622ed62b281c82f474983adcda","ssdeep":"","tlshash":"955184d5b6d1f27343ef0181457f8505f099a6a90059a808db84d873b9908cb9af2ffd","first_seen":"2025-07-08T23:56:54.735744Z","last_seen":"2026-08-08T17:15:51.831233Z","times_seen":128,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvd2luZG93LW1ldGFkYXRhQDEuMC4xICovCmltcG9ydCphcyBfXzAkIGZyb20iL0B3YWxsZXRjb25uZWN0L3dpbmRvdy1nZXR0ZXJzQF4xLjAuMT90YXJnZXQ9ZXMyMDIyIjt2YXIgcmVxdWlyZT1uPT57Y29uc3QgZT1tPT50eXBlb2YgbS5kZWZhdWx0PCJ1Ij9tLmRlZmF1bHQ6bSxjPW09Pk9iamVjdC5hc3NpZ24oe19fZXNNb2R1bGU6dHJ1ZX0sbSk7c3dpdGNoKG4pe2Nhc2UiQHdhbGxldGNvbm5lY3Qvd2luZG93LWdldHRlcnMiOnJldHVybiBjKF9fMCQpO2RlZmF1bHQ6Y29uc29sZS5lcnJvcignbW9kdWxlICInK24rJyIgbm90IGZvdW5kJyk7cmV0dXJuIG51bGw7fX07CnZhciBBPU9iamVjdC5jcmVhdGU7dmFyIG09T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBUPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIFc9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGo9T2JqZWN0LmdldFByb3RvdHlwZU9mLGs9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgTD0odD0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkodCx7Z2V0OihlLGkpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbaV19KTp0KShmdW5jdGlvbih0KXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrdCsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgQz0odCxlKT0+KCk9PihlfHx0KChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpO3ZhciBOPSh0LGUsaSxhKT0+e2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Inx8dHlwZW9mIGU9PSJmdW5jdGlvbiIpZm9yKGxldCByIG9mIFcoZSkpIWsuY2FsbCh0LHIpJiZyIT09aSYmbSh0LHIse2dldDooKT0+ZVtyXSxlbnVtZXJhYmxlOiEoYT1UKGUscikpfHxhLmVudW1lcmFibGV9KTtyZXR1cm4gdH07dmFyIHY9KHQsZSxpKT0+KGk9dCE9bnVsbD9BKGoodCkpOnt9LE4oZXx8IXR8fCF0Ll9fZXNNb2R1bGU/bShpLCJkZWZhdWx0Iix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwfSk6aSx0KSk7dmFyIHc9QyhkPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtkLmdldFdpbmRvd01ldGFkYXRhPXZvaWQgMDt2YXIgaD1MKCJAd2FsbGV0Y29ubmVjdC93aW5kb3ctZ2V0dGVycyIpO2Z1bmN0aW9uIEIoKXtsZXQgdCxlO3RyeXt0PWguZ2V0RG9jdW1lbnRPclRocm93KCksZT1oLmdldExvY2F0aW9uT3JUaHJvdygpfWNhdGNoe3JldHVybiBudWxsfWZ1bmN0aW9uIGkoKXtsZXQgbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikscz1bXTtmb3IobGV0IGM9MDtjPG8ubGVuZ3RoO2MrKyl7bGV0IGw9b1tjXSx1PWwuZ2V0QXR0cmlidXRlKCJyZWwiKTtpZih1JiZ1LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiaWNvbiIpPi0xKXtsZXQgbj1sLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKG4paWYobi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImh0dHBzOiIpPT09LTEmJm4udG9Mb3dlckNhc2UoKS5pbmRleE9mKCJodHRwOiIpPT09LTEmJm4uaW5kZXhPZigiLy8iKSE9PTApe2xldCBmPWUucHJvdG9jb2wrIi8vIitlLmhvc3Q7aWYobi5pbmRleE9mKCIvIik9PT0wKWYrPW47ZWxzZXtsZXQgcD1lLnBhdGhuYW1lLnNwbGl0KCIvIik7cC5wb3AoKTtsZXQgXz1wLmpvaW4oIi8iKTtmKz1fKyIvIitufXMucHVzaChmKX1lbHNlIGlmKG4uaW5kZXhPZigiLy8iKT09PTApe2xldCBmPWUucHJvdG9jb2wrbjtzLnB1c2goZil9ZWxzZSBzLnB1c2gobil9fXJldHVybiBzfWZ1bmN0aW9uIGEoLi4ubyl7bGV0IHM9dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWV0YSIpO2ZvcihsZXQgYz0wO2M8cy5sZW5ndGg7YysrKXtsZXQgbD1zW2NdLHU9WyJpdGVtcHJvcCIsInByb3BlcnR5IiwibmFtZSJdLm1hcChuPT5sLmdldEF0dHJpYnV0ZShuKSkuZmlsdGVyKG49Pm4/by5pbmNsdWRlcyhuKTohMSk7aWYodS5sZW5ndGgmJnUpe2xldCBuPWwuZ2V0QXR0cmlidXRlKCJjb250ZW50Iik7aWYobilyZXR1cm4gbn19cmV0dXJuIiJ9ZnVuY3Rpb24gcigpe2xldCBvPWEoIm5hbWUiLCJvZzpzaXRlX25hbWUiLCJvZzp0aXRsZSIsInR3aXR0ZXI6dGl0bGUiKTtyZXR1cm4gb3x8KG89dC50aXRsZSksb31mdW5jdGlvbiBPKCl7cmV0dXJuIGEoImRlc2NyaXB0aW9uIiwib2c6ZGVzY3JpcHRpb24iLCJ0d2l0dGVyOmRlc2NyaXB0aW9uIiwia2V5d29yZHMiKX1sZXQgYj1yKCkseD1PKCkseT1lLm9yaWdpbixNPWkoKTtyZXR1cm57ZGVzY3JpcHRpb246eCx1cmw6eSxpY29uczpNLG5hbWU6Yn19ZC5nZXRXaW5kb3dNZXRhZGF0YT1CfSk7dmFyIGc9dih3KCkpLHtfX2VzTW9kdWxlOnEsZ2V0V2luZG93TWV0YWRhdGE6SH09ZyxJPWcuZGVmYXVsdD8/ZztleHBvcnR7cSBhcyBfX2VzTW9kdWxlLEkgYXMgZGVmYXVsdCxIIGFzIGdldFdpbmRvd01ldGFkYXRhfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9d2luZG93LW1ldGFkYXRhLm1qcy5tYXA="}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/x25519@1.0.3/es2022/x25519.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.582Z","timestamp":1785138633582,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/x25519@1.0.3/es2022/x25519.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16522\r\ncf-ray: a21a0dcbebea569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":8322,"size_decoded":3886,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (7875)","md5":"df104673896a1826c97d061e2fcf031d","sha1":"886eec7b52ddbd0ebc8677257e0e7ce4c55d09be","sha256":"993bf71dfac5eea3c10de7a6b5aba15d45e30984a6fd212a7bb0deb041271ed0","sha512":"391e34977b65ecc19ac4fc4528a9260db1ae7398f66810470d15a061610ed8864711182d2b420f0f06423bca0b0fcdfb1ef7e34f37bfaf883fd7dc8de0c8b3d2","ssdeep":"192:5pv9KqMScXYnhDSuBAVYOLaHOznkHGMIn6zVtAHaHOznkHGMIn6zVtA37/CcXXbN:RKqM+nlwaHOznkHGMIn6zVtAHaHOznkY","tlshash":"cc026642398a90374137f7432bce821a215ce1f820185f3dc6a9c9c9a678b9dd06ff6d","first_seen":"2025-07-08T23:56:54.805447Z","last_seen":"2026-07-27T07:51:47.222479Z","times_seen":115,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi94MjU1MTlAMS4wLjMgKi8KaW1wb3J0KmFzIF9fMCQgZnJvbSIvQHN0YWJsZWxpYi9yYW5kb21AXjEuMC4yP3RhcmdldD1lczIwMjIiO2ltcG9ydCphcyBfXzEkIGZyb20iL0BzdGFibGVsaWIvd2lwZUBeMS4wLjE/dGFyZ2V0PWVzMjAyMiI7dmFyIHJlcXVpcmU9bj0+e2NvbnN0IGU9bT0+dHlwZW9mIG0uZGVmYXVsdDwidSI/bS5kZWZhdWx0Om0sYz1tPT5PYmplY3QuYXNzaWduKHtfX2VzTW9kdWxlOnRydWV9LG0pO3N3aXRjaChuKXtjYXNlIkBzdGFibGVsaWIvcmFuZG9tIjpyZXR1cm4gYyhfXzAkKTtjYXNlIkBzdGFibGVsaWIvd2lwZSI6cmV0dXJuIGMoX18xJCk7ZGVmYXVsdDpjb25zb2xlLmVycm9yKCdtb2R1bGUgIicrbisnIiBub3QgZm91bmQnKTtyZXR1cm4gbnVsbDt9fTsKdmFyIE01PU9iamVjdC5jcmVhdGU7dmFyIGM1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgXzU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgeTU9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIEs1PU9iamVjdC5nZXRQcm90b3R5cGVPZixkNT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBzNT0obz0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkobyx7Z2V0OihmLGUpPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZilbZV19KTpvKShmdW5jdGlvbihvKXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrbysnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KTt2YXIgTDU9KG8sZik9PigpPT4oZnx8bygoZj17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZiksZi5leHBvcnRzKTt2YXIgVDU9KG8sZixlLHQpPT57aWYoZiYmdHlwZW9mIGY9PSJvYmplY3QifHx0eXBlb2YgZj09ImZ1bmN0aW9uIilmb3IobGV0IHIgb2YgeTUoZikpIWQ1LmNhbGwobyxyKSYmciE9PWUmJmM1KG8scix7Z2V0OigpPT5mW3JdLGVudW1lcmFibGU6ISh0PV81KGYscikpfHx0LmVudW1lcmFibGV9KTtyZXR1cm4gb307dmFyIGc1PShvLGYsZSk9PihlPW8hPW51bGw/TTUoSzUobykpOnt9LFQ1KGZ8fCFvfHwhby5fX2VzTW9kdWxlP2M1KGUsImRlZmF1bHQiLHt2YWx1ZTpvLGVudW1lcmFibGU6ITB9KTplLG8pKTt2YXIgRTU9TDUoYz0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Yy5zaGFyZWRLZXk9Yy5nZW5lcmF0ZUtleVBhaXI9Yy5nZW5lcmF0ZUtleVBhaXJGcm9tU2VlZD1jLnNjYWxhck11bHRCYXNlPWMuc2NhbGFyTXVsdD1jLlNIQVJFRF9LRVlfTEVOR1RIPWMuU0VDUkVUX0tFWV9MRU5HVEg9Yy5QVUJMSUNfS0VZX0xFTkdUSD12b2lkIDA7dmFyIHc1PXM1KCJAc3RhYmxlbGliL3JhbmRvbSIpLEg1PXM1KCJAc3RhYmxlbGliL3dpcGUiKTtjLlBVQkxJQ19LRVlfTEVOR1RIPTMyO2MuU0VDUkVUX0tFWV9MRU5HVEg9MzI7Yy5TSEFSRURfS0VZX0xFTkdUSD0zMjtmdW5jdGlvbiBYKG8pe2xldCBmPW5ldyBGbG9hdDY0QXJyYXkoMTYpO2lmKG8pZm9yKGxldCBlPTA7ZTxvLmxlbmd0aDtlKyspZltlXT1vW2VdO3JldHVybiBmfXZhciBpNT1uZXcgVWludDhBcnJheSgzMik7aTVbMF09OTt2YXIgeDU9WChbNTYxMjksMV0pO2Z1bmN0aW9uIGw1KG8pe2xldCBmPTE7Zm9yKGxldCBlPTA7ZTwxNjtlKyspe2xldCB0PW9bZV0rZis2NTUzNTtmPU1hdGguZmxvb3IodC82NTUzNiksb1tlXT10LWYqNjU1MzZ9b1swXSs9Zi0xKzM3KihmLTEpfWZ1bmN0aW9uIFcobyxmLGUpe2xldCB0PX4oZS0xKTtmb3IobGV0IHI9MDtyPDE2O3IrKyl7bGV0IG49dCYob1tyXV5mW3JdKTtvW3JdXj1uLGZbcl1ePW59fWZ1bmN0aW9uIEc1KG8sZil7bGV0IGU9WCgpLHQ9WCgpO2ZvcihsZXQgcj0wO3I8MTY7cisrKXRbcl09ZltyXTtsNSh0KSxsNSh0KSxsNSh0KTtmb3IobGV0IHI9MDtyPDI7cisrKXtlWzBdPXRbMF0tNjU1MTc7Zm9yKGxldCBhPTE7YTwxNTthKyspZVthXT10W2FdLTY1NTM1LShlW2EtMV0+PjE2JjEpLGVbYS0xXSY9NjU1MzU7ZVsxNV09dFsxNV0tMzI3NjctKGVbMTRdPj4xNiYxKTtsZXQgbj1lWzE1XT4+MTYmMTtlWzE0XSY9NjU1MzUsVyh0LGUsMS1uKX1mb3IobGV0IHI9MDtyPDE2O3IrKylvWzIqcl09dFtyXSYyNTUsb1syKnIrMV09dFtyXT4+OH1mdW5jdGlvbiBONShvLGYpe2ZvcihsZXQgZT0wO2U8MTY7ZSsrKW9bZV09ZlsyKmVdKyhmWzIqZSsxXTw8OCk7b1sxNV0mPTMyNzY3fWZ1bmN0aW9uIHI1KG8sZixlKXtmb3IobGV0IHQ9MDt0PDE2O3QrKylvW3RdPWZbdF0rZVt0XX1mdW5jdGlvbiBlNShvLGYsZSl7Zm9yKGxldCB0PTA7dDwxNjt0Kyspb1t0XT1mW3RdLWVbdF19ZnVuY3Rpb24gTyhvLGYsZSl7bGV0IHQscixuPTAsYT0wLHM9MCxMPTAsdj0wLFQ9MCx5PTAsSz0wLGw9MCxpPTAsZD0wLF89MCxNPTAsRT0wLHU9MCxoPTAsZz0wLEY9MCxrPTAsST0wLGo9MCxxPTAsRD0wLHo9MCwkPTAsSj0wLFE9MCxWPTAsdDU9MCxmNT0wLGE1PTAsdz1lWzBdLEg9ZVsxXSx4PWVbMl0sRz1lWzNdLE49ZVs0XSxQPWVbNV0sWT1lWzZdLGI9ZVs3XSxtPWVbOF0sUz1lWzldLEI9ZVsxMF0sQz1lWzExXSxwPWVbMTJdLEE9ZVsxM10sVT1lWzE0XSxSPWVbMTVdO3Q9ZlswXSxuKz10KncsYSs9dCpILHMrPXQqeCxMKz10Kkcsdis9dCpOLFQrPXQqUCx5Kz10KlksSys9dCpiLGwrPXQqbSxpKz10KlMsZCs9dCpCLF8rPXQqQyxNKz10KnAsRSs9dCpBLHUrPXQqVSxoKz10KlIsdD1mWzFdLGErPXQqdyxzKz10KkgsTCs9dCp4LHYrPXQqRyxUKz10Kk4seSs9dCpQLEsrPXQqWSxsKz10KmIsaSs9dCptLGQrPXQqUyxfKz10KkIsTSs9dCpDLEUrPXQqcCx1Kz10KkEsaCs9dCpVLGcrPXQqUix0PWZbMl0scys9dCp3LEwrPXQqSCx2Kz10KngsVCs9dCpHLHkrPXQqTixLKz10KlAsbCs9dCpZLGkrPXQqYixkKz10Km0sXys9dCpTLE0rPXQqQixFKz10KkMsdSs9dCpwLGgrPXQqQSxnKz10KlUsRis9dCpSLHQ9ZlszXSxMKz10Kncsdis9dCpILFQrPXQqeCx5Kz10KkcsSys9dCpOLGwrPXQqUCxpKz10KlksZCs9dCpiLF8rPXQqbSxNKz10KlMsRSs9dCpCLHUrPXQqQyxoKz10KnAsZys9dCpBLEYrPXQqVSxrKz10KlIsdD1mWzRdLHYrPXQqdyxUKz10KkgseSs9dCp4LEsrPXQqRyxsKz10Kk4saSs9dCpQLGQrPXQqWSxfKz10KmIsTSs9dCptLEUrPXQqUyx1Kz10KkIsaCs9dCpDLGcrPXQqcCxGKz10KkEsays9dCpVLEkrPXQqUix0PWZbNV0sVCs9dCp3LHkrPXQqSCxLKz10KngsbCs9dCpHLGkrPXQqTixkKz10KlAsXys9dCpZLE0rPXQqYixFKz10Km0sdSs9dCpTLGgrPXQqQixnKz10KkMsRis9dCpwLGsrPXQqQSxJKz10KlUsais9dCpSLHQ9Zls2XSx5Kz10KncsSys9dCpILGwrPXQqeCxpKz10KkcsZCs9dCpOLF8rPXQqUCxNKz10KlksRSs9dCpiLHUrPXQqbSxoKz10KlMsZys9dCpCLEYrPXQqQyxrKz10KnAsSSs9dCpBLGorPXQqVSxxKz10KlIsdD1mWzddLEsrPXQqdyxsKz10KkgsaSs9dCp4LGQrPXQqRyxfKz10Kk4sTSs9dCpQLEUrPXQqWSx1Kz10KmIsaCs9dCptLGcrPXQqUyxGKz10KkIsays9dCpDLEkrPXQqcCxqKz10KkEscSs9dCpVLEQrPXQqUix0PWZbOF0sbCs9dCp3LGkrPXQqSCxkKz10KngsXys9dCpHLE0rPXQqTixFKz10KlAsdSs9dCpZLGgrPXQqYixnKz10Km0sRis9dCpTLGsrPXQqQixJKz10KkMsais9dCpwLHErPXQqQSxEKz10KlUseis9dCpSLHQ9Zls5XSxpKz10KncsZCs9dCpILF8rPXQqeCxNKz10KkcsRSs9dCpOLHUrPXQqUCxoKz10KlksZys9dCpiLEYrPXQqbSxrKz10KlMsSSs9dCpCLGorPXQqQyxxKz10KnAsRCs9dCpBLHorPXQqVSwkKz10KlIsdD1mWzEwXSxkKz10KncsXys9dCpILE0rPXQqeCxFKz10KkcsdSs9dCpOLGgrPXQqUCxnKz10KlksRis9dCpiLGsrPXQqbSxJKz10KlMsais9dCpCLHErPXQqQyxEKz10KnAseis9dCpBLCQrPXQqVSxKKz10KlIsdD1mWzExXSxfKz10KncsTSs9dCpILEUrPXQqeCx1Kz10KkcsaCs9dCpOLGcrPXQqUCxGKz10Klksays9dCpiLEkrPXQqbSxqKz10KlMscSs9dCpCLEQrPXQqQyx6Kz10KnAsJCs9dCpBLEorPXQqVSxRKz10KlIsdD1mWzEyXSxNKz10KncsRSs9dCpILHUrPXQqeCxoKz10KkcsZys9dCpOLEYrPXQqUCxrKz10KlksSSs9dCpiLGorPXQqbSxxKz10KlMsRCs9dCpCLHorPXQqQywkKz10KnAsSis9dCpBLFErPXQqVSxWKz10KlIsdD1mWzEzXSxFKz10KncsdSs9dCpILGgrPXQqeCxnKz10KkcsRis9dCpOLGsrPXQqUCxJKz10Klksais9dCpiLHErPXQqbSxEKz10KlMseis9dCpCLCQrPXQqQyxKKz10KnAsUSs9dCpBLFYrPXQqVSx0NSs9dCpSLHQ9ZlsxNF0sdSs9dCp3LGgrPXQqSCxnKz10KngsRis9dCpHLGsrPXQqTixJKz10KlAsais9dCpZLHErPXQqYixEKz10Km0seis9dCpTLCQrPXQqQixKKz10KkMsUSs9dCpwLFYrPXQqQSx0NSs9dCpVLGY1Kz10KlIsdD1mWzE1XSxoKz10KncsZys9dCpILEYrPXQqeCxrKz10KkcsSSs9dCpOLGorPXQqUCxxKz10KlksRCs9dCpiLHorPXQqbSwkKz10KlMsSis9dCpCLFErPXQqQyxWKz10KnAsdDUrPXQqQSxmNSs9dCpVLGE1Kz10KlIsbis9MzgqZyxhKz0zOCpGLHMrPTM4KmssTCs9MzgqSSx2Kz0zOCpqLFQrPTM4KnEseSs9MzgqRCxLKz0zOCp6LGwrPTM4KiQsaSs9MzgqSixkKz0zOCpRLF8rPTM4KlYsTSs9MzgqdDUsRSs9MzgqZjUsdSs9MzgqYTUscj0xLHQ9bityKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxuPXQtcio2NTUzNix0PWErcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksYT10LXIqNjU1MzYsdD1zK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLHM9dC1yKjY1NTM2LHQ9TCtyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxMPXQtcio2NTUzNix0PXYrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksdj10LXIqNjU1MzYsdD1UK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLFQ9dC1yKjY1NTM2LHQ9eStyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSx5PXQtcio2NTUzNix0PUsrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksSz10LXIqNjU1MzYsdD1sK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLGw9dC1yKjY1NTM2LHQ9aStyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxpPXQtcio2NTUzNix0PWQrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksZD10LXIqNjU1MzYsdD1fK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLF89dC1yKjY1NTM2LHQ9TStyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxNPXQtcio2NTUzNix0PUUrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksRT10LXIqNjU1MzYsdD11K3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLHU9dC1yKjY1NTM2LHQ9aCtyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxoPXQtcio2NTUzNixuKz1yLTErMzcqKHItMSkscj0xLHQ9bityKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxuPXQtcio2NTUzNix0PWErcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksYT10LXIqNjU1MzYsdD1zK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLHM9dC1yKjY1NTM2LHQ9TCtyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxMPXQtcio2NTUzNix0PXYrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksdj10LXIqNjU1MzYsdD1UK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLFQ9dC1yKjY1NTM2LHQ9eStyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSx5PXQtcio2NTUzNix0PUsrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksSz10LXIqNjU1MzYsdD1sK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLGw9dC1yKjY1NTM2LHQ9aStyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxpPXQtcio2NTUzNix0PWQrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksZD10LXIqNjU1MzYsdD1fK3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLF89dC1yKjY1NTM2LHQ9TStyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxNPXQtcio2NTUzNix0PUUrcis2NTUzNSxyPU1hdGguZmxvb3IodC82NTUzNiksRT10LXIqNjU1MzYsdD11K3IrNjU1MzUscj1NYXRoLmZsb29yKHQvNjU1MzYpLHU9dC1yKjY1NTM2LHQ9aCtyKzY1NTM1LHI9TWF0aC5mbG9vcih0LzY1NTM2KSxoPXQtcio2NTUzNixuKz1yLTErMzcqKHItMSksb1swXT1uLG9bMV09YSxvWzJdPXMsb1szXT1MLG9bNF09dixvWzVdPVQsb1s2XT15LG9bN109SyxvWzhdPWwsb1s5XT1pLG9bMTBdPWQsb1sxMV09XyxvWzEyXT1NLG9bMTNdPUUsb1sxNF09dSxvWzE1XT1ofWZ1bmN0aW9uIFoobyxmKXtPKG8sZixmKX1mdW5jdGlvbiBQNShvLGYpe2xldCBlPVgoKTtmb3IobGV0IHQ9MDt0PDE2O3QrKyllW3RdPWZbdF07Zm9yKGxldCB0PTI1Mzt0Pj0wO3QtLSlaKGUsZSksdCE9PTImJnQhPT00JiZPKGUsZSxmKTtmb3IobGV0IHQ9MDt0PDE2O3QrKylvW3RdPWVbdF19ZnVuY3Rpb24gbjUobyxmKXtsZXQgZT1uZXcgVWludDhBcnJheSgzMiksdD1uZXcgRmxvYXQ2NEFycmF5KDgwKSxyPVgoKSxuPVgoKSxhPVgoKSxzPVgoKSxMPVgoKSx2PVgoKTtmb3IobGV0IGw9MDtsPDMxO2wrKyllW2xdPW9bbF07ZVszMV09b1szMV0mMTI3fDY0LGVbMF0mPTI0OCxONSh0LGYpO2ZvcihsZXQgbD0wO2w8MTY7bCsrKW5bbF09dFtsXTtyWzBdPXNbMF09MTtmb3IobGV0IGw9MjU0O2w+PTA7LS1sKXtsZXQgaT1lW2w+Pj4zXT4+PihsJjcpJjE7VyhyLG4saSksVyhhLHMsaSkscjUoTCxyLGEpLGU1KHIscixhKSxyNShhLG4scyksZTUobixuLHMpLFoocyxMKSxaKHYsciksTyhyLGEsciksTyhhLG4sTCkscjUoTCxyLGEpLGU1KHIscixhKSxaKG4sciksZTUoYSxzLHYpLE8ocixhLHg1KSxyNShyLHIscyksTyhhLGEsciksTyhyLHMsdiksTyhzLG4sdCksWihuLEwpLFcocixuLGkpLFcoYSxzLGkpfWZvcihsZXQgbD0wO2w8MTY7bCsrKXRbbCsxNl09cltsXSx0W2wrMzJdPWFbbF0sdFtsKzQ4XT1uW2xdLHRbbCs2NF09c1tsXTtsZXQgVD10LnN1YmFycmF5KDMyKSx5PXQuc3ViYXJyYXkoMTYpO1A1KFQsVCksTyh5LHksVCk7bGV0IEs9bmV3IFVpbnQ4QXJyYXkoMzIpO3JldHVybiBHNShLLHkpLEt9Yy5zY2FsYXJNdWx0PW41O2Z1bmN0aW9uIHU1KG8pe3JldHVybiBuNShvLGk1KX1jLnNjYWxhck11bHRCYXNlPXU1O2Z1bmN0aW9uIGg1KG8pe2lmKG8ubGVuZ3RoIT09Yy5TRUNSRVRfS0VZX0xFTkdUSCl0aHJvdyBuZXcgRXJyb3IoYHgyNTUxOTogc2VlZCBtdXN0IGJlICR7Yy5TRUNSRVRfS0VZX0xFTkdUSH0gYnl0ZXNgKTtsZXQgZj1uZXcgVWludDhBcnJheShvKTtyZXR1cm57cHVibGljS2V5OnU1KGYpLHNlY3JldEtleTpmfX1jLmdlbmVyYXRlS2V5UGFpckZyb21TZWVkPWg1O2Z1bmN0aW9uIFk1KG8pe2xldCBmPSgwLHc1LnJhbmRvbUJ5dGVzKSgzMixvKSxlPWg1KGYpO3JldHVybigwLEg1LndpcGUpKGYpLGV9Yy5nZW5lcmF0ZUtleVBhaXI9WTU7ZnVuY3Rpb24gYjUobyxmLGU9ITEpe2lmKG8ubGVuZ3RoIT09Yy5QVUJMSUNfS0VZX0xFTkdUSCl0aHJvdyBuZXcgRXJyb3IoIlgyNTUxOTogaW5jb3JyZWN0IHNlY3JldCBrZXkgbGVuZ3RoIik7aWYoZi5sZW5ndGghPT1jLlBVQkxJQ19LRVlfTEVOR1RIKXRocm93IG5ldyBFcnJvcigiWDI1NTE5OiBpbmNvcnJlY3QgcHVibGljIGtleSBsZW5ndGgiKTtsZXQgdD1uNShvLGYpO2lmKGUpe2xldCByPTA7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspcnw9dFtuXTtpZihyPT09MCl0aHJvdyBuZXcgRXJyb3IoIlgyNTUxOTogaW52YWxpZCBzaGFyZWQga2V5Iil9cmV0dXJuIHR9Yy5zaGFyZWRLZXk9YjV9KTt2YXIgbzU9ZzUoRTUoKSkse19fZXNNb2R1bGU6QjUsc2hhcmVkS2V5OkM1LGdlbmVyYXRlS2V5UGFpcjpwNSxnZW5lcmF0ZUtleVBhaXJGcm9tU2VlZDpBNSxzY2FsYXJNdWx0QmFzZTpVNSxzY2FsYXJNdWx0OlI1LFNIQVJFRF9LRVlfTEVOR1RIOnY1LFNFQ1JFVF9LRVlfTEVOR1RIOkY1LFBVQkxJQ19LRVlfTEVOR1RIOms1fT1vNSxJNT1vNS5kZWZhdWx0Pz9vNTtleHBvcnR7azUgYXMgUFVCTElDX0tFWV9MRU5HVEgsRjUgYXMgU0VDUkVUX0tFWV9MRU5HVEgsdjUgYXMgU0hBUkVEX0tFWV9MRU5HVEgsQjUgYXMgX19lc01vZHVsZSxJNSBhcyBkZWZhdWx0LHA1IGFzIGdlbmVyYXRlS2V5UGFpcixBNSBhcyBnZW5lcmF0ZUtleVBhaXJGcm9tU2VlZCxSNSBhcyBzY2FsYXJNdWx0LFU1IGFzIHNjYWxhck11bHRCYXNlLEM1IGFzIHNoYXJlZEtleX07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXgyNTUxOS5tanMubWFw"}},"time_used":12,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/strings@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.721Z","timestamp":1785138633721,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/strings@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/hash@5.7.0/es2022/hash.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/strings@5.8.0/es2022/strings.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/strings@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcccc0c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":274,"size_decoded":688,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"9389f023d51db79321f13145be70bc00","sha1":"ef941d22d8783f94be87e41e2f1247c153969aaa","sha256":"30a2dd74b0c8a4d9bc1646b9e499a5fc5a4f306842ca24a5bf8e5847c8ad814e","sha512":"92a960ffc15fe28bbcf0d3c9a1e58dd894dca3b6dc4bb26ca6ca5ee5dafcf5fca4da1afdf9c601c49fb314279f24f5b2e40bcfe9ff4e79997cffb9e89bfd6463","ssdeep":"","tlshash":"2bd01263c11ad6cc6b4c0efc41a8bb3ca17684949406f0eba864c73392d210966315da","first_seen":"2025-07-08T23:56:54.684717Z","last_seen":"2026-07-27T07:51:47.256153Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qvc3RyaW5nc0A1LjguMCAqLwppbXBvcnQgIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2NvbnN0YW50c0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2xvZ2dlckBeNS44LjA/dGFyZ2V0PWVzMjAyMiI7CmV4cG9ydCAqIGZyb20gIi9AZXRoZXJzcHJvamVjdC9zdHJpbmdzQDUuOC4wL2VzMjAyMi9zdHJpbmdzLm1qcyI7Cg=="}},"time_used":111,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":111,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/safe-json@1.0.2/es2022/safe-json.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.785Z","timestamp":1785138633785,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/safe-json@1.0.2/es2022/safe-json.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/core@2.17.4/es2022/core.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:54 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16522\r\ncf-ray: a21a0dcd2c28569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":797,"size_decoded":854,"mime_type":"application/javascript; charset=utf-8","magic":"ASCII text, with very long lines (712)","md5":"5bf97e5f27ad1f83529407f640bd712e","sha1":"b288bea5b2987021fd263cf1efb2bde861c1b347","sha256":"b37e432897a643d234899d13bac143d85f616ef9edb5ee7b0293a15acf8336ab","sha512":"75ba1597f660549cb71f34f65ad395987de6a026ff29b59c4a510947ad8d862f272033ab3e98ddb8ad8b76d0143a46379696d8638d4e29552baf70e331e0a70a","ssdeep":"","tlshash":"a101bd99b5d59016c7e92eb801285e7ce4fb5fecd28f0470c2b95073b42189a84b6b67","first_seen":"2025-07-08T23:56:54.859Z","last_seen":"2026-08-08T17:15:51.681681Z","times_seen":124,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQDEuMC4yICovCnZhciBvPXQ9PkpTT04uc3RyaW5naWZ5KHQsKHMsbik9PnR5cGVvZiBuPT0iYmlnaW50Ij9uLnRvU3RyaW5nKCkrIm4iOm4pLGk9dD0+e2xldCBzPS8oW1xbOl0pPyhcZHsxNyx9fCg/Ols5XSg/OlsxLTldMDcxOTkyNTQ3NDA5OTF8MFsxLTldNzE5OTI1NDc0MDk5MXwwMFs4LTldMTk5MjU0NzQwOTkxfDAwN1syLTldOTkyNTQ3NDA5OTF8MDA3MTk5WzMtOV01NDc0MDk5MXwwMDcxOTkyWzYtOV00NzQwOTkxfDAwNzE5OTI1WzUtOV03NDA5OTF8MDA3MTk5MjU0WzgtOV00MDk5MXwwMDcxOTkyNTQ3WzUtOV0wOTkxfDAwNzE5OTI1NDc0WzEtOV05OTF8MDA3MTk5MjU0NzQwOTlbMi05XSkpKShbLFx9XF1dKS9nLG49dC5yZXBsYWNlKHMsJyQxIiQybiIkMycpO3JldHVybiBKU09OLnBhcnNlKG4sKGUscik9PnR5cGVvZiByPT0ic3RyaW5nIiYmci5tYXRjaCgvXlxkK24kLyk/QmlnSW50KHIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMSkpOnIpfTtmdW5jdGlvbiBnKHQpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzYWZlIGpzb24gcGFyc2UgdmFsdWUgb2YgdHlwZSAke3R5cGVvZiB0fWApO3RyeXtyZXR1cm4gaSh0KX1jYXRjaHtyZXR1cm4gdH19ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdHlwZW9mIHQ9PSJzdHJpbmciP3Q6byh0KXx8IiJ9ZXhwb3J0e2cgYXMgc2FmZUpzb25QYXJzZSxjIGFzIHNhZmVKc29uU3RyaW5naWZ5fTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2FmZS1qc29uLm1qcy5tYXA="}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@3.1.0/es2022/alloc.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.859Z","timestamp":1785138633859,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@3.1.0/es2022/alloc.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/uint8arrays@3.1.0/es2022/concat.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Thu, 17 Jul 2025 16:17:44 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nage: 16517\r\ncf-ray: a21a0dcd9c2d569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":376,"size_decoded":587,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"52b0a8211b95901155bea286eee80f8d","sha1":"1af0eb19b15aaaae94815ef943066f6c5b849990","sha256":"28759e3ed857de6c3b7ebd3b12c67fddeb87abb9683180ab9bfd431f2949e9d5","sha512":"adb7b50ac3fd9a2a6066b83b4962946b364a87d7657d3ce216039fb52c18ebeda923876a114ba89003ffea6b2b23f18b39e544b721ad828b8a5160bfe0e6c070","ssdeep":"","tlshash":"3be068035c3a987408327fe68cdb8bcf13b08a69fcc60084dc195e2431a30f4c0628c9","first_seen":"2025-07-08T23:56:54.654367Z","last_seen":"2026-07-27T07:51:47.188459Z","times_seen":102,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjAvYWxsb2MgKi8KaW1wb3J0IHsgQnVmZmVyIGFzIF9fQnVmZmVyJCB9IGZyb20gIi9ub2RlL2J1ZmZlci5tanMiOwpmdW5jdGlvbiByKGw9MCl7cmV0dXJuIF9fQnVmZmVyJCE9bnVsbCYmX19CdWZmZXIkLmFsbG9jIT1udWxsP19fQnVmZmVyJC5hbGxvYyhsKTpuZXcgVWludDhBcnJheShsKX1mdW5jdGlvbiBmKGw9MCl7cmV0dXJuIF9fQnVmZmVyJCE9bnVsbCYmX19CdWZmZXIkLmFsbG9jVW5zYWZlIT1udWxsP19fQnVmZmVyJC5hbGxvY1Vuc2FmZShsKTpuZXcgVWludDhBcnJheShsKX1leHBvcnR7ciBhcyBhbGxvYyxmIGFzIGFsbG9jVW5zYWZlfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWxsb2MubWpzLm1hcA=="}},"time_used":10,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":10,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/ws@%5E7.5.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.931Z","timestamp":1785138633931,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /ws@%5E7.5.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-ws-connection@1.0.16/es2022/jsonrpc-ws-connection.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /ws@7.5.13/es2022/ws.mjs\r\nx-typescript-types: https://esm.sh/@types/ws@~7.4.7/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dce1c39569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":119,"size_decoded":598,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"b871c2f0a35f7072f102a3065aa8fc4d","sha1":"66e257a1c8f5d60f1e58727f64d0566e800049ef","sha256":"0e00f6b96c49fa261bf46893803aa7089340de4a1202984a1b273b6cca7375e4","sha512":"93e78a593140af2d43fe6f6abbcc28da5e69eab42c7ce3217df5989a27da4c57be466d933dae5d67320896029a631c5620d21b7ad301849f55ebf5c88c364da5","ssdeep":"","tlshash":"8fb092d2845745380a303e86122cc03993a2864da4e050ac1471af0b80a0448e42c7a9","first_seen":"2026-07-22T19:03:01.629444Z","last_seen":"2026-08-08T17:15:51.689741Z","times_seen":9,"resource_available":true,"data":"LyogZXNtLnNoIC0gd3NANy41LjEzICovCmV4cG9ydCAqIGZyb20gIi93c0A3LjUuMTMvZXMyMDIyL3dzLm1qcyI7CmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICIvd3NANy41LjEzL2VzMjAyMi93cy5tanMiOwo="}},"time_used":123,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":123,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/base64@%5E5.7.0?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.722Z","timestamp":1785138633722,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/base64@%5E5.7.0?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/hash@5.7.0/es2022/hash.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@ethersproject/base64@5.8.0/es2022/base64.mjs\r\nx-typescript-types: https://esm.sh/@ethersproject/base64@5.8.0/lib/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcccc0d569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":160,"size_decoded":667,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"d4b9c3ebb673cbeb7577cc1b983d00a9","sha1":"efc39c5c3a3e1f86afc6c2a096c2a03aa1888498","sha256":"3505f878870af7f8c459c35039599ff6ea63cdee8bf4b8b47551ec922260d7aa","sha512":"12f59aa7ea89a471f2d2e632e3d4742e0018f51a81a84df3f0eeb0198471451f4d02116a4c3e52700d95873c470c2fbed377ca1c2a85976d2bce9c042c0b2450","ssdeep":"","tlshash":"64c00257861d52dc73dd0bd84138952ce17b8458944550ea9410c722e14314975225a5","first_seen":"2025-07-08T23:56:54.724608Z","last_seen":"2026-07-27T07:51:47.251078Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3QvYmFzZTY0QDUuOC4wICovCmltcG9ydCAiL0BldGhlcnNwcm9qZWN0L2J5dGVzQF41LjguMD90YXJnZXQ9ZXMyMDIyIjsKZXhwb3J0ICogZnJvbSAiL0BldGhlcnNwcm9qZWN0L2Jhc2U2NEA1LjguMC9lczIwMjIvYmFzZTY0Lm1qcyI7Cg=="}},"time_used":114,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":114,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/uint8arrays@%5E3.0.0/to-string?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.755Z","timestamp":1785138633755,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /uint8arrays@%5E3.0.0/to-string?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/relay-auth@1.0.4/es2022/relay-auth.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /uint8arrays@3.1.1/es2022/to-string.mjs\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dccfc1c569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":186,"size_decoded":573,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"b6ee7bd452fbe59cc4139aab60fa75ec","sha1":"f84384517386d64cbf41fd1cb1c0dd03c83b1a0b","sha256":"fb879e4fe711ec46eb17282e00a35e461bb8a4bcbb0e9ba9cd2ebd1dccc0fe07","sha512":"7ee30794c3d5ef7a273e46f9ef2eb4351bcc7c048c450a4c855257439ec9cdc6a847df56958ea658710101dcdbca930c51e01ec2170f741e996a85f49773c03a","ssdeep":"","tlshash":"39c012574313892d26e59dc444802432c3111fd8d9d700ec34ba661ef2070e8c8b19f8","first_seen":"2025-07-08T23:56:54.838322Z","last_seen":"2026-07-27T07:51:47.195811Z","times_seen":99,"resource_available":true,"data":"LyogZXNtLnNoIC0gdWludDhhcnJheXNAMy4xLjEvdG8tc3RyaW5nICovCmltcG9ydCAiL25vZGUvYnVmZmVyLm1qcyI7CmltcG9ydCAiL3VpbnQ4YXJyYXlzQDMuMS4xL2VzMjAyMi9lc20vc3JjL3V0aWwvYmFzZXMubWpzIjsKZXhwb3J0ICogZnJvbSAiL3VpbnQ4YXJyYXlzQDMuMS4xL2VzMjAyMi90by1zdHJpbmcubWpzIjsK"}},"time_used":110,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":110,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/safe-json@%5E1.0.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.538Z","timestamp":1785138633538,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/safe-json@%5E1.0.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/jsonrpc-http-connection@1.0.8/es2022/jsonrpc-http-connection.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /@walletconnect/safe-json@1.0.2/es2022/safe-json.mjs\r\nx-typescript-types: https://esm.sh/@walletconnect/safe-json@1.0.2/dist/cjs/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-ray: a21a0dcb9bd2569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":116,"size_decoded":655,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"c9fd678071e6d03eb4078fa7ee530c10","sha1":"2220ba8353f854791c066af13fb5343fd36c5f81","sha256":"bda99310f7f8a365bd996ccbce3853f57ea7688ee67a6ab8fb6b50f9b1d5cff3","sha512":"3c65b53cbe34fbab0ddefae6771cdd66167b07e4a7fcb09c5b7dbe33aac2e1ca285cc0344e1216fdac08529a51d76180499061ea461885d9bff9eda72fd1d38b","ssdeep":"","tlshash":"18b0927141a3031a0b3a2648029a83ac4b6b0b0cc14300acc29b0120a0932a86870ab7","first_seen":"2025-07-08T23:56:54.647274Z","last_seen":"2026-08-08T17:15:51.472536Z","times_seen":127,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvc2FmZS1qc29uQDEuMC4yICovCmV4cG9ydCAqIGZyb20gIi9Ad2FsbGV0Y29ubmVjdC9zYWZlLWpzb25AMS4wLjIvZXMyMDIyL3NhZmUtanNvbi5tanMiOwo="}},"time_used":115,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":115,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@walletconnect/window-getters@1.0.1/es2022/window-getters.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.568Z","timestamp":1785138633568,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@walletconnect/window-getters@1.0.1/es2022/window-getters.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/utils@2.17.4/es2022/utils.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:55 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\nserver-timing: cfExtPri\r\naccept-ranges: bytes\r\nage: 16522\r\ncf-cache-status: HIT\r\ncf-ray: a21a0dcbdbdf569f-OSL\r\ncontent-length: 1012\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":2240,"size_decoded":1465,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2145)","md5":"5105926e81079cd9835e0de83a8e8cc0","sha1":"5abe6f1848ebcac93ba85f8a18c562f4a8a588e9","sha256":"84e38cdffd84577bc7711c7d30a2c195665d00dc97ca11767ac334a3da2d5c3d","sha512":"e61c9eeb42b380a3b0f0a045d6e19ebd152ee9972206695bb342c060a2c33f13cff20f059ad2ea6f55ad32d36e2dd2b3d5f67dc5089c836e3435f6b89f833f7a","ssdeep":"","tlshash":"8741cf9b2452a16101b7132bac3b9604b13afdedf05fba406f69c45239c09ef1755eca","first_seen":"2025-07-08T23:56:54.756193Z","last_seen":"2026-08-08T17:15:52.269716Z","times_seen":128,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHdhbGxldGNvbm5lY3Qvd2luZG93LWdldHRlcnNAMS4wLjEgKi8KdmFyIGQ9T2JqZWN0LmNyZWF0ZTt2YXIgdT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGg9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgTz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczt2YXIgZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsVD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBsPShyLHQpPT4oKT0+KHR8fHIoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLHQuZXhwb3J0cyk7dmFyIG09KHIsdCxnLGMpPT57aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QifHx0eXBlb2YgdD09ImZ1bmN0aW9uIilmb3IobGV0IGkgb2YgTyh0KSkhVC5jYWxsKHIsaSkmJmkhPT1nJiZ1KHIsaSx7Z2V0OigpPT50W2ldLGVudW1lcmFibGU6IShjPWgodCxpKSl8fGMuZW51bWVyYWJsZX0pO3JldHVybiByfTt2YXIgcD0ocix0LGcpPT4oZz1yIT1udWxsP2QoZihyKSk6e30sbSh0fHwhcnx8IXIuX19lc01vZHVsZT91KGcsImRlZmF1bHQiLHt2YWx1ZTpyLGVudW1lcmFibGU6ITB9KTpnLHIpKTt2YXIgdz1sKG89PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO28uZ2V0TG9jYWxTdG9yYWdlPW8uZ2V0TG9jYWxTdG9yYWdlT3JUaHJvdz1vLmdldENyeXB0bz1vLmdldENyeXB0b09yVGhyb3c9by5nZXRMb2NhdGlvbj1vLmdldExvY2F0aW9uT3JUaHJvdz1vLmdldE5hdmlnYXRvcj1vLmdldE5hdmlnYXRvck9yVGhyb3c9by5nZXREb2N1bWVudD1vLmdldERvY3VtZW50T3JUaHJvdz1vLmdldEZyb21XaW5kb3dPclRocm93PW8uZ2V0RnJvbVdpbmRvdz12b2lkIDA7ZnVuY3Rpb24gZShyKXtsZXQgdDtyZXR1cm4gdHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiB3aW5kb3dbcl08InUiJiYodD13aW5kb3dbcl0pLHR9by5nZXRGcm9tV2luZG93PWU7ZnVuY3Rpb24gbihyKXtsZXQgdD1lKHIpO2lmKCF0KXRocm93IG5ldyBFcnJvcihgJHtyfSBpcyBub3QgZGVmaW5lZCBpbiBXaW5kb3dgKTtyZXR1cm4gdH1vLmdldEZyb21XaW5kb3dPclRocm93PW47ZnVuY3Rpb24gTCgpe3JldHVybiBuKCJkb2N1bWVudCIpfW8uZ2V0RG9jdW1lbnRPclRocm93PUw7ZnVuY3Rpb24geSgpe3JldHVybiBlKCJkb2N1bWVudCIpfW8uZ2V0RG9jdW1lbnQ9eTtmdW5jdGlvbiBzKCl7cmV0dXJuIG4oIm5hdmlnYXRvciIpfW8uZ2V0TmF2aWdhdG9yT3JUaHJvdz1zO2Z1bmN0aW9uIHYoKXtyZXR1cm4gZSgibmF2aWdhdG9yIil9by5nZXROYXZpZ2F0b3I9djtmdW5jdGlvbiBTKCl7cmV0dXJuIG4oImxvY2F0aW9uIil9by5nZXRMb2NhdGlvbk9yVGhyb3c9UztmdW5jdGlvbiBXKCl7cmV0dXJuIGUoImxvY2F0aW9uIil9by5nZXRMb2NhdGlvbj1XO2Z1bmN0aW9uIEMoKXtyZXR1cm4gbigiY3J5cHRvIil9by5nZXRDcnlwdG9PclRocm93PUM7ZnVuY3Rpb24gRCgpe3JldHVybiBlKCJjcnlwdG8iKX1vLmdldENyeXB0bz1EO2Z1bmN0aW9uIEYoKXtyZXR1cm4gbigibG9jYWxTdG9yYWdlIil9by5nZXRMb2NhbFN0b3JhZ2VPclRocm93PUY7ZnVuY3Rpb24gTigpe3JldHVybiBlKCJsb2NhbFN0b3JhZ2UiKX1vLmdldExvY2FsU3RvcmFnZT1OfSk7dmFyIGE9cCh3KCkpLHtfX2VzTW9kdWxlOngsZ2V0TG9jYWxTdG9yYWdlOk0sZ2V0TG9jYWxTdG9yYWdlT3JUaHJvdzpiLGdldENyeXB0bzpFLGdldENyeXB0b09yVGhyb3c6UCxnZXRMb2NhdGlvbjokLGdldExvY2F0aW9uT3JUaHJvdzprLGdldE5hdmlnYXRvcjpxLGdldE5hdmlnYXRvck9yVGhyb3c6eixnZXREb2N1bWVudDpBLGdldERvY3VtZW50T3JUaHJvdzpCLGdldEZyb21XaW5kb3dPclRocm93OkcsZ2V0RnJvbVdpbmRvdzpIfT1hLEk9YS5kZWZhdWx0Pz9hO2V4cG9ydHt4IGFzIF9fZXNNb2R1bGUsSSBhcyBkZWZhdWx0LEUgYXMgZ2V0Q3J5cHRvLFAgYXMgZ2V0Q3J5cHRvT3JUaHJvdyxBIGFzIGdldERvY3VtZW50LEIgYXMgZ2V0RG9jdW1lbnRPclRocm93LEggYXMgZ2V0RnJvbVdpbmRvdyxHIGFzIGdldEZyb21XaW5kb3dPclRocm93LE0gYXMgZ2V0TG9jYWxTdG9yYWdlLGIgYXMgZ2V0TG9jYWxTdG9yYWdlT3JUaHJvdywkIGFzIGdldExvY2F0aW9uLGsgYXMgZ2V0TG9jYXRpb25PclRocm93LHEgYXMgZ2V0TmF2aWdhdG9yLHogYXMgZ2V0TmF2aWdhdG9yT3JUaHJvd307Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXdpbmRvdy1nZXR0ZXJzLm1qcy5tYXA="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/idb-keyval@%5E6.2.1?target=es2022","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.909Z","timestamp":1785138633909,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /idb-keyval@%5E6.2.1?target=es2022 HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@walletconnect/keyvaluestorage@1.1.1/es2022/keyvaluestorage.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\naccess-control-expose-headers: X-ESM-Path, X-TypeScript-Types\r\ncache-control: public, max-age=600\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nserver: cloudflare\r\nx-esm-path: /idb-keyval@6.3.0/es2022/idb-keyval.mjs\r\nx-typescript-types: https://esm.sh/idb-keyval@6.3.0/dist/index.d.ts\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Jul 2026 07:50:34 GMT\r\ncf-ray: a21a0dcdfc36569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":89,"size_decoded":612,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text","md5":"37a34d89741fee82dc4f39cac0a7d971","sha1":"9f3583331aa139410044192aed160e7dc19b5c75","sha256":"06cca0a3b91578ba4a8d1e8b00f5b13280ecc8d3a26e04933d54fe008a947484","sha512":"298e0e74a0d9bd264428b10db07baeaf3f38f7c449fd474d9db9fc38d18a87c5629b3b0188eece750cd2737e242507fff6ad9e1f1218c12aa00427fe1863bdb5","ssdeep":"","tlshash":"a7b0017a46764ba812b189ca0b38c0a553910684dba545ed22dd76c151b2c60a93c1fe","first_seen":"2026-07-08T11:28:35.830435Z","last_seen":"2026-08-08T17:15:51.437415Z","times_seen":12,"resource_available":true,"data":"LyogZXNtLnNoIC0gaWRiLWtleXZhbEA2LjMuMCAqLwpleHBvcnQgKiBmcm9tICIvaWRiLWtleXZhbEA2LjMuMC9lczIwMjIvaWRiLWtleXZhbC5tanMiOwo="}},"time_used":115,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":115,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@ethersproject/strings@5.8.0/es2022/strings.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:33.982Z","timestamp":1785138633982,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@ethersproject/strings@5.8.0/es2022/strings.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@ethersproject/strings@%5E5.7.0?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:08:30 GMT\r\nserver: cloudflare\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 07:50:33 GMT\r\ncf-cache-status: HIT\r\nage: 16520\r\ncf-ray: a21a0dce6c54569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":10725,"size_decoded":5427,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (10644)","md5":"2c76902a16c84d9871d1d13bf97a431a","sha1":"b2ec3906084ebfdb0f3516ce261639d90db578f1","sha256":"dc08980a298346b2a0af970a59984d1214746122d2390c63f551d6b29413108a","sha512":"950e8332499e47a0bcb9ffd1d03090af046581112db32ae67ec695bf3e95886df840847e09a5b8e57b4387328b67a37518d06b95e51c4743451db2eb4efcede0","ssdeep":"192:YvrGds9drkkOVwh958z4E5Th5555d/1I/mqN7zjDGQxBXnI8Svls/D8:XSd7sI8M0Th5555d/0N7zkr","tlshash":"652295163b5e33ee73dc21b1005b300771f96b817ca95814e9a0edea25758ed48f6b23","first_seen":"2025-07-08T23:56:54.673334Z","last_seen":"2026-07-27T07:51:47.16577Z","times_seen":15,"resource_available":true,"data":"LyogZXNtLnNoIC0gQGV0aGVyc3Byb2plY3Qvc3RyaW5nc0A1LjguMCAqLwppbXBvcnR7SGFzaFplcm8gYXMgQX1mcm9tIi9AZXRoZXJzcHJvamVjdC9jb25zdGFudHNAXjUuOC4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHthcnJheWlmeSBhcyBJLGNvbmNhdCBhcyB3LGhleGxpZnkgYXMgUn1mcm9tIi9AZXRoZXJzcHJvamVjdC9ieXRlc0BeNS44LjA/dGFyZ2V0PWVzMjAyMiI7aW1wb3J0e2FycmF5aWZ5IGFzIEV9ZnJvbSIvQGV0aGVyc3Byb2plY3QvYnl0ZXNAXjUuOC4wP3RhcmdldD1lczIwMjIiO2ltcG9ydHtMb2dnZXIgYXMgVX1mcm9tIi9AZXRoZXJzcHJvamVjdC9sb2dnZXJAXjUuOC4wP3RhcmdldD1lczIwMjIiO3ZhciBDPSJzdHJpbmdzLzUuOC4wIjt2YXIgXz1uZXcgVShDKSxjOyhmdW5jdGlvbihmKXtmLmN1cnJlbnQ9IiIsZi5ORkM9Ik5GQyIsZi5ORkQ9Ik5GRCIsZi5ORktDPSJORktDIixmLk5GS0Q9Ik5GS0QifSkoY3x8KGM9e30pKTt2YXIgczsoZnVuY3Rpb24oZil7Zi5VTkVYUEVDVEVEX0NPTlRJTlVFPSJ1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBieXRlIixmLkJBRF9QUkVGSVg9ImJhZCBjb2RlcG9pbnQgcHJlZml4IixmLk9WRVJSVU49InN0cmluZyBvdmVycnVuIixmLk1JU1NJTkdfQ09OVElOVUU9Im1pc3NpbmcgY29udGludWF0aW9uIGJ5dGUiLGYuT1VUX09GX1JBTkdFPSJvdXQgb2YgVVRGLTggcmFuZ2UiLGYuVVRGMTZfU1VSUk9HQVRFPSJVVEYtMTYgc3Vycm9nYXRlIixmLk9WRVJMT05HPSJvdmVybG9uZyByZXByZXNlbnRhdGlvbiJ9KShzfHwocz17fSkpO2Z1bmN0aW9uIFMoZix0LGUscixuKXtyZXR1cm4gXy50aHJvd0FyZ3VtZW50RXJyb3IoYGludmFsaWQgY29kZXBvaW50IGF0IG9mZnNldCAke3R9OyAke2Z9YCwiYnl0ZXMiLGUpfWZ1bmN0aW9uIG0oZix0LGUscixuKXtpZihmPT09cy5CQURfUFJFRklYfHxmPT09cy5VTkVYUEVDVEVEX0NPTlRJTlVFKXtsZXQgbD0wO2ZvcihsZXQgaT10KzE7aTxlLmxlbmd0aCYmZVtpXT4+Nj09PTI7aSsrKWwrKztyZXR1cm4gbH1yZXR1cm4gZj09PXMuT1ZFUlJVTj9lLmxlbmd0aC10LTE6MH1mdW5jdGlvbiBEKGYsdCxlLHIsbil7cmV0dXJuIGY9PT1zLk9WRVJMT05HPyhyLnB1c2gobiksMCk6KHIucHVzaCg2NTUzMyksbShmLHQsZSxyLG4pKX12YXIgTj1PYmplY3QuZnJlZXplKHtlcnJvcjpTLGlnbm9yZTptLHJlcGxhY2U6RH0pO2Z1bmN0aW9uIGIoZix0KXt0PT1udWxsJiYodD1OLmVycm9yKSxmPUUoZik7bGV0IGU9W10scj0wO2Zvcig7cjxmLmxlbmd0aDspe2xldCBuPWZbcisrXTtpZihuPj43PT09MCl7ZS5wdXNoKG4pO2NvbnRpbnVlfWxldCBsPW51bGwsaT1udWxsO2lmKChuJjIyNCk9PT0xOTIpbD0xLGk9MTI3O2Vsc2UgaWYoKG4mMjQwKT09PTIyNClsPTIsaT0yMDQ3O2Vsc2UgaWYoKG4mMjQ4KT09PTI0MClsPTMsaT02NTUzNTtlbHNleyhuJjE5Mik9PT0xMjg/cis9dChzLlVORVhQRUNURURfQ09OVElOVUUsci0xLGYsZSk6cis9dChzLkJBRF9QUkVGSVgsci0xLGYsZSk7Y29udGludWV9aWYoci0xK2w+PWYubGVuZ3RoKXtyKz10KHMuT1ZFUlJVTixyLTEsZixlKTtjb250aW51ZX1sZXQgdT1uJigxPDw4LWwtMSktMTtmb3IobGV0IGQ9MDtkPGw7ZCsrKXtsZXQgZz1mW3JdO2lmKChnJjE5MikhPTEyOCl7cis9dChzLk1JU1NJTkdfQ09OVElOVUUscixmLGUpLHU9bnVsbDticmVha311PXU8PDZ8ZyY2MyxyKyt9aWYodSE9PW51bGwpe2lmKHU+MTExNDExMSl7cis9dChzLk9VVF9PRl9SQU5HRSxyLTEtbCxmLGUsdSk7Y29udGludWV9aWYodT49NTUyOTYmJnU8PTU3MzQzKXtyKz10KHMuVVRGMTZfU1VSUk9HQVRFLHItMS1sLGYsZSx1KTtjb250aW51ZX1pZih1PD1pKXtyKz10KHMuT1ZFUkxPTkcsci0xLWwsZixlLHUpO2NvbnRpbnVlfWUucHVzaCh1KX19cmV0dXJuIGV9ZnVuY3Rpb24gbyhmLHQ9Yy5jdXJyZW50KXt0IT1jLmN1cnJlbnQmJihfLmNoZWNrTm9ybWFsaXplKCksZj1mLm5vcm1hbGl6ZSh0KSk7bGV0IGU9W107Zm9yKGxldCByPTA7cjxmLmxlbmd0aDtyKyspe2xldCBuPWYuY2hhckNvZGVBdChyKTtpZihuPDEyOCllLnB1c2gobik7ZWxzZSBpZihuPDIwNDgpZS5wdXNoKG4+PjZ8MTkyKSxlLnB1c2gobiY2M3wxMjgpO2Vsc2UgaWYoKG4mNjQ1MTIpPT01NTI5Nil7cisrO2xldCBsPWYuY2hhckNvZGVBdChyKTtpZihyPj1mLmxlbmd0aHx8KGwmNjQ1MTIpIT09NTYzMjApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHV0Zi04IHN0cmluZyIpO2xldCBpPTY1NTM2KygobiYxMDIzKTw8MTApKyhsJjEwMjMpO2UucHVzaChpPj4xOHwyNDApLGUucHVzaChpPj4xMiY2M3wxMjgpLGUucHVzaChpPj42JjYzfDEyOCksZS5wdXNoKGkmNjN8MTI4KX1lbHNlIGUucHVzaChuPj4xMnwyMjQpLGUucHVzaChuPj42JjYzfDEyOCksZS5wdXNoKG4mNjN8MTI4KX1yZXR1cm4gRShlKX1mdW5jdGlvbiBoKGYpe2xldCB0PSIwMDAwIitmLnRvU3RyaW5nKDE2KTtyZXR1cm4iXFx1Iit0LnN1YnN0cmluZyh0Lmxlbmd0aC00KX1mdW5jdGlvbiBPKGYsdCl7cmV0dXJuJyInK2IoZix0KS5tYXAoZT0+e2lmKGU8MjU2KXtzd2l0Y2goZSl7Y2FzZSA4OnJldHVybiJcXGIiO2Nhc2UgOTpyZXR1cm4iXFx0IjtjYXNlIDEwOnJldHVybiJcXG4iO2Nhc2UgMTM6cmV0dXJuIlxcciI7Y2FzZSAzNDpyZXR1cm4nXFwiJztjYXNlIDkyOnJldHVybiJcXFxcIn1pZihlPj0zMiYmZTwxMjcpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9cmV0dXJuIGU8PTY1NTM1P2goZSk6KGUtPTY1NTM2LGgoKGU+PjEwJjEwMjMpKzU1Mjk2KStoKChlJjEwMjMpKzU2MzIwKSl9KS5qb2luKCIiKSsnIid9ZnVuY3Rpb24gYShmKXtyZXR1cm4gZi5tYXAodD0+dDw9NjU1MzU/U3RyaW5nLmZyb21DaGFyQ29kZSh0KToodC09NjU1MzYsU3RyaW5nLmZyb21DaGFyQ29kZSgodD4+MTAmMTAyMykrNTUyOTYsKHQmMTAyMykrNTYzMjApKSkuam9pbigiIil9ZnVuY3Rpb24gcChmLHQpe3JldHVybiBhKGIoZix0KSl9ZnVuY3Rpb24gQihmLHQ9Yy5jdXJyZW50KXtyZXR1cm4gYihvKGYsdCkpfWZ1bmN0aW9uIEcoZil7bGV0IHQ9byhmKTtpZih0Lmxlbmd0aD4zMSl0aHJvdyBuZXcgRXJyb3IoImJ5dGVzMzIgc3RyaW5nIG11c3QgYmUgbGVzcyB0aGFuIDMyIGJ5dGVzIik7cmV0dXJuIFIodyhbdCxBXSkuc2xpY2UoMCwzMikpfWZ1bmN0aW9uIHkoZil7bGV0IHQ9SShmKTtpZih0Lmxlbmd0aCE9PTMyKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBieXRlczMyIC0gbm90IDMyIGJ5dGVzIGxvbmciKTtpZih0WzMxXSE9PTApdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGJ5dGVzMzIgc3RyaW5nIC0gbm8gbnVsbCB0ZXJtaW5hdG9yIik7bGV0IGU9MzE7Zm9yKDt0W2UtMV09PT0wOyllLS07cmV0dXJuIHAodC5zbGljZSgwLGUpKX1mdW5jdGlvbiB2KGYpe2lmKGYubGVuZ3RoJTQhPT0wKXRocm93IG5ldyBFcnJvcigiYmFkIGRhdGEiKTtsZXQgdD1bXTtmb3IobGV0IGU9MDtlPGYubGVuZ3RoO2UrPTQpdC5wdXNoKHBhcnNlSW50KGYuc3Vic3RyaW5nKGUsZSs0KSwxNikpO3JldHVybiB0fWZ1bmN0aW9uIHgoZix0KXt0fHwodD1mdW5jdGlvbihuKXtyZXR1cm5bcGFyc2VJbnQobiwxNildfSk7bGV0IGU9MCxyPXt9O3JldHVybiBmLnNwbGl0KCIsIikuZm9yRWFjaChuPT57bGV0IGw9bi5zcGxpdCgiOiIpO2UrPXBhcnNlSW50KGxbMF0sMTYpLHJbZV09dChsWzFdKX0pLHJ9ZnVuY3Rpb24gVChmKXtsZXQgdD0wO3JldHVybiBmLnNwbGl0KCIsIikubWFwKGU9PntsZXQgcj1lLnNwbGl0KCItIik7ci5sZW5ndGg9PT0xP3JbMV09IjAiOnJbMV09PT0iIiYmKHJbMV09IjEiKTtsZXQgbj10K3BhcnNlSW50KHJbMF0sMTYpO3JldHVybiB0PXBhcnNlSW50KHJbMV0sMTYpLHtsOm4saDp0fX0pfWZ1bmN0aW9uIEYoZix0KXtsZXQgZT0wO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgbj10W3JdO2lmKGUrPW4ubCxmPj1lJiZmPD1lK24uaCYmKGYtZSklKG4uZHx8MSk9PT0wKXtpZihuLmUmJm4uZS5pbmRleE9mKGYtZSkhPT0tMSljb250aW51ZTtyZXR1cm4gbn19cmV0dXJuIG51bGx9dmFyIEw9VCgiMjIxLDEzLTFiLDVmLSw0MC0xMCw1MS1mLDExLTMsMy0zLDItMiwyLTQsOCwyLDE1LDJkLDI4LTgsODgsNDgsMjctLDMtNSwxMS0yMCwyNy0sOCwyOCwzLTUsMTIsMTgsYi1hLDFjLTQsNi0xNiwyLWQsMi0yLDIsMWItNCwxNy05LDhmLSwxMCxmLDFmLTIsMWMtMzQsMzMtMTRlLDQsMzYtLDEzLSw2LTIsMWEtZiw0LDktLDMtLDE3LDgsMi0yLDUtLDIsOC0sMy0sNC04LDItMywzLDYtLDE2LTYsMi0sNy0zLDMtLDE3LDgsMywzLDMtLDIsNi0zLDMtLDQtYSw1LDItNiwxMC1iLDQsOCwyLDQsMTcsOCwzLDYtLGIsNCw0LSwyLWUsMi00LGItMTAsNCw5LSwzLSwxNyw4LDMtLDUtLDktMiwzLSw0LTcsMy0zLDMsNC0zLGMtMTAsMyw3LTIsNCw1LTIsMywyLDMtMiwzLTIsNC0yLDksNC0zLDYtMiw0LDUtOCwyLWUsZC1kLDQsOSw0LDE4LGIsNi0zLDgsNCw1LTYsMy04LDMtMyxiLTExLDMsOSw0LDE4LGIsNi0zLDgsNCw1LTYsMy02LDIsMy0zLGItMTEsMyw5LDQsMTgsMTEtMyw3LSw0LDUtOCwyLTcsMy0zLGItMTEsMywxMy0yLDE5LGEsMi0sOC0yLDItMyw3LDIsOS0xMSw0LWIsM2ItMywxZS0yNCwzLDItLDMsMi0sMi01LDUsOCw0LDIsMi0sMyxlLDQtLDYsMiw3LSxiLSwzLTIxLDQ5LDIzLTUsMWMtMyw5LDI1LDEwLSwyLTJmLDIzLDYsMyw4LTIsNS01LDFiLTQ1LDI3LTksMmEtLDItMyw1Yi00LDQ1LTQsNTMtNSw4LDQwLDIsNS0sOCwyLDUtLDI4LDIsNS0sMjAsMiw1LSw4LDIsNS0sOCw4LDE4LDIwLDIsNS0sOCwyOCwxNC01LDFkLTIyLDU2LWIsMjc3LTgsMWUtMiw1Mi1lLGUsOC1hLDE4LTgsMTUtYixlLDQsMy1iLDVlLTIsYi0xNSwxMCxiLTUsNTktNywyYi01NTUsOWQtMyw1Yi01LDE3LSw3LSwyNy0sNy0sOSwyLDIsMiwyMC0sMzYsMTAsZi0sNywxNC0sNCxhLDU0LTMsMi02LDYtNSw5LSwxYy0xMCwxMy0xZCwxYy0xNCwzYy0sMTAtNiwzMi1iLDI0MC0zMCwyOC0xOCxjLTE0LGEwLDExNS0sMyw2Ni0sYi03Niw1LDUtLDFkLDI0LDIsNS0yLDIsOC0sMzUtMiwxOSxmLTEwLDFkLTMsMzExLTM3ZiwxYiw1YS1iLGQ3LTE5LGQtMyw0MSw1Ny0sNjgtNCwyOS0zLDVmLDI5LTM3LDJlLTIsMjUtYywyYy0yLDRlLTMsMzAsNzgtMyw2NC0sMjAsMTliNy00OSw1MWE3LTU5LDQ4ZS0yLDM4LTczOCwyYmE1LTViLDIyMmYtLDNjLTk0LDgtYiw2LTQsMWIsNiwyLDMsMyw2ZC0yMCwxNmUtZiw0MS0sMzctNywyZS0yLDExLWYsNS1iLDE4LSxiLDE0LDUtMyw2LDg4LSwyLGJmLTIsNy0sNy0sNy0sNC0yLDgsOC05LDgtMmZmLDIwLDUtYiwxYy1iNCwyNy0sMjctY2JiMSxmNy05LDI4LTIsYjUtMjIxLDU2LDQ4LDMtLDItLDMtLDUsZCwyLDUsMyw0Miw1LSw5LDgsMWQsNSw2LDItMiw4LDE1My0zLDEyMy0zLDMzLTI3ZmQsYTZkYS01MTI4LDIxZi01ZGYsMy1mZmZkLDMtZmZmZCwzLWZmZmQsMy1mZmZkLDMtZmZmZCwzLWZmZmQsMy1mZmZkLDMtZmZmZCwzLWZmZmQsMy1mZmZkLDMtZmZmZCwzLDItMWQsNjEtZmY3ZCIpLFY9ImFkLDM0ZiwxODA2LDE4MGIsMTgwYywxODBkLDIwMGIsMjAwYywyMDBkLDIwNjAsZmVmZiIuc3BsaXQoIiwiKS5tYXAoZj0+cGFyc2VJbnQoZiwxNikpLFg9W3toOjI1LHM6MzIsbDo2NX0se2g6MzAsczozMixlOlsyM10sbDoxMjd9LHtoOjU0LHM6MSxlOls0OF0sbDo2NCxkOjJ9LHtoOjE0LHM6MSxsOjU3LGQ6Mn0se2g6NDQsczoxLGw6MTcsZDoyfSx7aDoxMCxzOjEsZTpbMiw2LDhdLGw6NjEsZDoyfSx7aDoxNixzOjEsbDo2OCxkOjJ9LHtoOjg0LHM6MSxlOlsxOCwyNCw2Nl0sbDoxOSxkOjJ9LHtoOjI2LHM6MzIsZTpbMTddLGw6NDM1fSx7aDoyMixzOjEsbDo3MSxkOjJ9LHtoOjE1LHM6ODAsbDo0MH0se2g6MzEsczozMixsOjE2fSx7aDozMixzOjEsbDo4MCxkOjJ9LHtoOjUyLHM6MSxsOjQyLGQ6Mn0se2g6MTIsczoxLGw6NTUsZDoyfSx7aDo0MCxzOjEsZTpbMzhdLGw6MTUsZDoyfSx7aDoxNCxzOjEsbDo0OCxkOjJ9LHtoOjM3LHM6NDgsbDo0OX0se2g6MTQ4LHM6MSxsOjYzNTEsZDoyfSx7aDo4OCxzOjEsbDoxNjAsZDoyfSx7aDoxNSxzOjE2LGw6NzA0fSx7aDoyNSxzOjI2LGw6ODU0fSx7aDoyNSxzOjMyLGw6NTU5MTV9LHtoOjM3LHM6NDAsbDoxMjQ3fSx7aDoyNSxzOi0xMTk3MTEsbDo1MzI0OH0se2g6MjUsczotMTE5NzYzLGw6NTJ9LHtoOjI1LHM6LTExOTgxNSxsOjUyfSx7aDoyNSxzOi0xMTk4NjcsZTpbMSw0LDUsNyw4LDExLDEyLDE3XSxsOjUyfSx7aDoyNSxzOi0xMTk5MTksbDo1Mn0se2g6MjQsczotMTE5OTcxLGU6WzIsNyw4LDE3XSxsOjUyfSx7aDoyNCxzOi0xMjAwMjMsZTpbMiw3LDEzLDE1LDE2LDE3XSxsOjUyfSx7aDoyNSxzOi0xMjAwNzUsbDo1Mn0se2g6MjUsczotMTIwMTI3LGw6NTJ9LHtoOjI1LHM6LTEyMDE3OSxsOjUyfSx7aDoyNSxzOi0xMjAyMzEsbDo1Mn0se2g6MjUsczotMTIwMjgzLGw6NTJ9LHtoOjI1LHM6LTEyMDMzNSxsOjUyfSx7aDoyNCxzOi0xMTk1NDMsZTpbMTddLGw6NTZ9LHtoOjI0LHM6LTExOTYwMSxlOlsxN10sbDo1OH0se2g6MjQsczotMTE5NjU5LGU6WzE3XSxsOjU4fSx7aDoyNCxzOi0xMTk3MTcsZTpbMTddLGw6NTh9LHtoOjI0LHM6LTExOTc3NSxlOlsxN10sbDo1OH1dLEs9eCgiYjU6M2JjLGMzOmZmLDc6NzMsMjoyNTMsNToyNTQsMzoyNTYsMToyNTcsNToyNTksMToyNWIsMzoyNjAsMToyNjMsMjoyNjksMToyNjgsNToyNmYsMToyNzIsMjoyNzUsNzoyODAsMzoyODMsNToyODgsMzoyOGEsMToyOGIsNToyOTIsM2Y6MTk1LDE6MWJmLDI5OjE5ZSwxMjU6M2I5LDhiOjNiMiwxOjNiOCwxOjNjNSwzOjNjNiwxOjNjMCwxYTozYmEsMTozYzEsMTozYzMsMjozYjgsMTozYjUsMWJjOTozYjksMWM6MWY3NiwxOjFmNzcsZjoxZjdhLDE6MWY3YixkOjFmNzgsMToxZjc5LDE6MWY3YywxOjFmN2QsMTA3OjYzLDU6MjViLDQ6NjgsMTo2OCwxOjY4LDM6NjksMTo2OSwxOjZjLDM6NmUsNDo3MCwxOjcxLDE6NzIsMTo3MiwxOjcyLDc6N2EsMjozYzksMjo3YSwyOjZiLDE6ZTUsMTo2MiwxOjYzLDM6NjUsMTo2NiwyOjZkLGI6M2IzLDE6M2MwLDY6NjQsMWI1NzQ6M2I4LDFhOjNjMywyMDozYjgsMWE6M2MzLDIwOjNiOCwxYTozYzMsMjA6M2I4LDFhOjNjMywyMDozYjgsMWE6M2MzIiksaj14KCIxNzk6MSwyOjEsMjoxLDU6MSwyOjEsYTo0ZixhOjEsODoxLDI6MSwyOjEsMzoxLDU6MSwzOjEsNDoxLDI6MSwzOjEsNDoxLDg6MiwxOjEsMjoyLDE6MSwyOjIsMjc6MiwxOTU6MjYsMjoyNSwxOjI1LDE6MjUsMjo0MCwyOjNmLDE6M2YsMzM6MSwxMTotNiwxOi05LDFhYzc6LTNhLDZkOi04LDE6LTgsMTotOCwxOi04LDE6LTgsMTotOCwxOi04LDE6LTgsOTotOCwxOi04LDE6LTgsMTotOCwxOi04LDE6LTgsYjotOCwxOi04LDE6LTgsMTotOCwxOi04LDE6LTgsMTotOCwxOi04LDk6LTgsMTotOCwxOi04LDE6LTgsMTotOCwxOi04LDE6LTgsMTotOCw5Oi04LDE6LTgsMTotOCwxOi04LDE6LTgsMTotOCxjOi04LDI6LTgsMjotOCwyOi04LDk6LTgsMTotOCwxOi04LDE6LTgsMTotOCwxOi04LDE6LTgsMTotOCw0OTotOCwxOi04LDE6LTRhLDE6LTRhLGQ6LTU2LDE6LTU2LDE6LTU2LDE6LTU2LGQ6LTgsMTotOCxmOi04LDE6LTgsMzotNyIpLGs9eCgiZGY6MDA3MzAwNzMsNTE6MDA2OTAzMDcsMTk6MDJCQzAwNkUsYTc6MDA2QTAzMEMsMThhOjAwMjAwM0I5LDE2OjAzQjkwMzA4MDMwMSwyMDowM0M1MDMwODAzMDEsMWQ3OjA1NjUwNTgyLDE5MGY6MDA2ODAzMzEsMTowMDc0MDMwOCwxOjAwNzcwMzBBLDE6MDA3OTAzMEEsMTowMDYxMDJCRSxiNjowM0M1MDMxMywyOjAzQzUwMzEzMDMwMCwyOjAzQzUwMzEzMDMwMSwyOjAzQzUwMzEzMDM0MiwyYToxRjAwMDNCOSwxOjFGMDEwM0I5LDE6MUYwMjAzQjksMToxRjAzMDNCOSwxOjFGMDQwM0I5LDE6MUYwNTAzQjksMToxRjA2MDNCOSwxOjFGMDcwM0I5LDE6MUYwMDAzQjksMToxRjAxMDNCOSwxOjFGMDIwM0I5LDE6MUYwMzAzQjksMToxRjA0MDNCOSwxOjFGMDUwM0I5LDE6MUYwNjAzQjksMToxRjA3MDNCOSwxOjFGMjAwM0I5LDE6MUYyMTAzQjksMToxRjIyMDNCOSwxOjFGMjMwM0I5LDE6MUYyNDAzQjksMToxRjI1MDNCOSwxOjFGMjYwM0I5LDE6MUYyNzAzQjksMToxRjIwMDNCOSwxOjFGMjEwM0I5LDE6MUYyMjAzQjksMToxRjIzMDNCOSwxOjFGMjQwM0I5LDE6MUYyNTAzQjksMToxRjI2MDNCOSwxOjFGMjcwM0I5LDE6MUY2MDAzQjksMToxRjYxMDNCOSwxOjFGNjIwM0I5LDE6MUY2MzAzQjksMToxRjY0MDNCOSwxOjFGNjUwM0I5LDE6MUY2NjAzQjksMToxRjY3MDNCOSwxOjFGNjAwM0I5LDE6MUY2MTAzQjksMToxRjYyMDNCOSwxOjFGNjMwM0I5LDE6MUY2NDAzQjksMToxRjY1MDNCOSwxOjFGNjYwM0I5LDE6MUY2NzAzQjksMzoxRjcwMDNCOSwxOjAzQjEwM0I5LDE6MDNBQzAzQjksMjowM0IxMDM0MiwxOjAzQjEwMzQyMDNCOSw1OjAzQjEwM0I5LDY6MUY3NDAzQjksMTowM0I3MDNCOSwxOjAzQUUwM0I5LDI6MDNCNzAzNDIsMTowM0I3MDM0MjAzQjksNTowM0I3MDNCOSw2OjAzQjkwMzA4MDMwMCwxOjAzQjkwMzA4MDMwMSwzOjAzQjkwMzQyLDE6MDNCOTAzMDgwMzQyLGI6MDNDNTAzMDgwMzAwLDE6MDNDNTAzMDgwMzAxLDE6MDNDMTAzMTMsMjowM0M1MDM0MiwxOjAzQzUwMzA4MDM0MixiOjFGN0MwM0I5LDE6MDNDOTAzQjksMTowM0NFMDNCOSwyOjAzQzkwMzQyLDE6MDNDOTAzNDIwM0I5LDU6MDNDOTAzQjksYWM6MDA3MjAwNzMsNWI6MDBCMDAwNjMsNjowMEIwMDA2NixkOjAwNkUwMDZGLGE6MDA3MzAwNkQsMTowMDc0MDA2NTAwNkMsMTowMDc0MDA2RCwxMjRmOjAwNjgwMDcwMDA2MSwyOjAwNjEwMDc1LDI6MDA2RjAwNzYsYjowMDcwMDA2MSwxOjAwNkUwMDYxLDE6MDNCQzAwNjEsMTowMDZEMDA2MSwxOjAwNkIwMDYxLDE6MDA2QjAwNjIsMTowMDZEMDA2MiwxOjAwNjcwMDYyLDM6MDA3MDAwNjYsMTowMDZFMDA2NiwxOjAzQkMwMDY2LDQ6MDA2ODAwN0EsMTowMDZCMDA2ODAwN0EsMTowMDZEMDA2ODAwN0EsMTowMDY3MDA2ODAwN0EsMTowMDc0MDA2ODAwN0EsMTU6MDA3MDAwNjEsMTowMDZCMDA3MDAwNjEsMTowMDZEMDA3MDAwNjEsMTowMDY3MDA3MDAwNjEsODowMDcwMDA3NiwxOjAwNkUwMDc2LDE6MDNCQzAwNzYsMTowMDZEMDA3NiwxOjAwNkIwMDc2LDE6MDA2RDAwNzYsMTowMDcwMDA3NywxOjAwNkUwMDc3LDE6MDNCQzAwNzcsMTowMDZEMDA3NywxOjAwNkIwMDc3LDE6MDA2RDAwNzcsMTowMDZCMDNDOSwxOjAwNkQwM0M5LDI6MDA2MjAwNzEsMzowMDYzMjIxNTAwNkIwMDY3LDE6MDA2MzAwNkYwMDJFLDE6MDA2NDAwNjIsMTowMDY3MDA3OSwyOjAwNjgwMDcwLDI6MDA2QjAwNkIsMTowMDZCMDA2RCw5OjAwNzAwMDY4LDI6MDA3MDAwNzAwMDZELDE6MDA3MDAwNzIsMjowMDczMDA3NiwxOjAwNzcwMDYyLGM3MjM6MDA2NjAwNjYsMTowMDY2MDA2OSwxOjAwNjYwMDZDLDE6MDA2NjAwNjYwMDY5LDE6MDA2NjAwNjYwMDZDLDE6MDA3MzAwNzQsMTowMDczMDA3NCxkOjA1NzQwNTc2LDE6MDU3NDA1NjUsMTowNTc0MDU2QiwxOjA1N0UwNTc2LDE6MDU3NDA1NkQiLHYpLE09VCgiODAtMjAsMmEwLSwzOWMsMzIsZjcxLDE4ZSw3ZjItZiwxOS03LDMwLTQsNy01LGY4MS1iLDUsYTgwMC0yMGZmLDRkMS0xZiwxMTAsZmEtNixkMTc0LTcsMmU4NC0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sZmZmZi0sMiwxZi01ZixmZjdmLTIwMDAxIik7ZnVuY3Rpb24geihmKXtyZXR1cm4gZi5yZWR1Y2UoKHQsZSk9PihlLmZvckVhY2gocj0+e3QucHVzaChyKX0pLHQpLFtdKX1mdW5jdGlvbiAkKGYpe3JldHVybiEhRihmLEwpfWZ1bmN0aW9uIEgoZil7bGV0IHQ9RihmLFgpO2lmKHQpcmV0dXJuW2YrdC5zXTtsZXQgZT1LW2ZdO2lmKGUpcmV0dXJuIGU7bGV0IHI9altmXTtpZihyKXJldHVybltmK3JbMF1dO2xldCBuPWtbZl07cmV0dXJuIG58fG51bGx9ZnVuY3Rpb24gUChmKXtyZXR1cm4hIUYoZixNKX1mdW5jdGlvbiBaKGYpe2lmKGYubWF0Y2goL15bYS16MC05LV0qJC9pKSYmZi5sZW5ndGg8PTU5KXJldHVybiBmLnRvTG93ZXJDYXNlKCk7bGV0IHQ9QihmKTt0PXoodC5tYXAocj0+e2lmKFYuaW5kZXhPZihyKT49MClyZXR1cm5bXTtpZihyPj02NTAyNCYmcjw9NjUwMzkpcmV0dXJuW107bGV0IG49SChyKTtyZXR1cm4gbnx8W3JdfSkpLHQ9QihhKHQpLGMuTkZLQyksdC5mb3JFYWNoKHI9PntpZihQKHIpKXRocm93IG5ldyBFcnJvcigiU1RSSU5HUFJFUF9DT05UQUlOU19QUk9ISUJJVEVEIil9KSx0LmZvckVhY2gocj0+e2lmKCQocikpdGhyb3cgbmV3IEVycm9yKCJTVFJJTkdQUkVQX0NPTlRBSU5TX1VOQVNTSUdORUQiKX0pO2xldCBlPWEodCk7aWYoZS5zdWJzdHJpbmcoMCwxKT09PSItInx8ZS5zdWJzdHJpbmcoMiw0KT09PSItLSJ8fGUuc3Vic3RyaW5nKGUubGVuZ3RoLTEpPT09Ii0iKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBoeXBoZW4iKTtyZXR1cm4gZX1leHBvcnR7YyBhcyBVbmljb2RlTm9ybWFsaXphdGlvbkZvcm0sTiBhcyBVdGY4RXJyb3JGdW5jcyxzIGFzIFV0ZjhFcnJvclJlYXNvbixPIGFzIF90b0VzY2FwZWRVdGY4U3RyaW5nLEcgYXMgZm9ybWF0Qnl0ZXMzMlN0cmluZyxaIGFzIG5hbWVwcmVwLHkgYXMgcGFyc2VCeXRlczMyU3RyaW5nLG8gYXMgdG9VdGY4Qnl0ZXMsQiBhcyB0b1V0ZjhDb2RlUG9pbnRzLHAgYXMgdG9VdGY4U3RyaW5nfTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RyaW5ncy5tanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/@stablelib/hash@1.0.1/es2022/hash.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.172Z","timestamp":1785138634172,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /@stablelib/hash@1.0.1/es2022/hash.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/@stablelib/hash@%5E1.0.1?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Mon, 17 Nov 2025 23:02:56 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcf9c7a569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":919,"size_decoded":899,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (848)","md5":"3adfe099cb08821c0949f5fdef6d447b","sha1":"73bf0f24d8a0b0ba16227b055e49817aacaadadb","sha256":"4b9b1f01155e01a92084c284494c5fa926228302b86c233824ff4be042761ac2","sha512":"6bf941b1c37dfc540bafbe14cca4f1331e1d772fb64dce60bf8387f788d9f7c66fdb60a50c1f09a5a9108fcd95e3b35541c61b9b5958e10448ce5d0cef76b870","ssdeep":"","tlshash":"7b11dc2a24a4fab36563a5c5c82e5100f71954f9407de4e063c8e4f6944109e10e4f37","first_seen":"2025-07-08T23:56:54.61967Z","last_seen":"2026-07-27T07:51:47.247658Z","times_seen":110,"resource_available":true,"data":"LyogZXNtLnNoIC0gQHN0YWJsZWxpYi9oYXNoQDEuMC4xICovCnZhciBuPU9iamVjdC5jcmVhdGU7dmFyIGQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciB1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dmFyIGY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIGM9T2JqZWN0LmdldFByb3RvdHlwZU9mLHA9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgUz0oZSx0KT0+KCk9Pih0fHxlKCh0PXtleHBvcnRzOnt9fSkuZXhwb3J0cyx0KSx0LmV4cG9ydHMpO3ZhciBiPShlLHQsYSxvKT0+e2lmKHQmJnR5cGVvZiB0PT0ib2JqZWN0Inx8dHlwZW9mIHQ9PSJmdW5jdGlvbiIpZm9yKGxldCBpIG9mIGYodCkpIXAuY2FsbChlLGkpJiZpIT09YSYmZChlLGkse2dldDooKT0+dFtpXSxlbnVtZXJhYmxlOiEobz11KHQsaSkpfHxvLmVudW1lcmFibGV9KTtyZXR1cm4gZX07dmFyIG09KGUsdCxhKT0+KGE9ZSE9bnVsbD9uKGMoZSkpOnt9LGIodHx8IWV8fCFlLl9fZXNNb2R1bGU/ZChhLCJkZWZhdWx0Iix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwfSk6YSxlKSk7dmFyIGw9UyhyPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtmdW5jdGlvbiB5KGUpe3JldHVybiB0eXBlb2YgZS5zYXZlU3RhdGU8InUiJiZ0eXBlb2YgZS5yZXN0b3JlU3RhdGU8InUiJiZ0eXBlb2YgZS5jbGVhblNhdmVkU3RhdGU8InUifXIuaXNTZXJpYWxpemFibGVIYXNoPXl9KTt2YXIgcz1tKGwoKSkse19fZXNNb2R1bGU6dixpc1NlcmlhbGl6YWJsZUhhc2g6en09cyxIPXMuZGVmYXVsdD8/cztleHBvcnR7diBhcyBfX2VzTW9kdWxlLEggYXMgZGVmYXVsdCx6IGFzIGlzU2VyaWFsaXphYmxlSGFzaH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhc2gubWpzLm1hcA=="}},"time_used":8,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":8,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/bases/base58.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.211Z","timestamp":1785138634211,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/bases/base58.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@%5E9.4.2/basics?target=es2022\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 25 Nov 2025 18:11:08 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dcfdc83569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":391,"size_decoded":628,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (308)","md5":"63ee9be255c33c8bd22c2dcf6f687d6d","sha1":"fdd1245b8dca448680fdf83a75b78a61f2c4822e","sha256":"d45f93c89f6f8a05c7ddc132c99a2bc866d1de2e8475747b6722f6322482feab","sha512":"75af4e7e0df028be8ee8b5e5cc8dfe2f09dc86208939a3c40a6f4e8fd9f967072b3e8f06fd21f222bcd6636e8d5431c2aff4fec963bc01dc8e746e7ed0eddbda","ssdeep":"","tlshash":"99e0226ec92a8e6d0a29100d3a4250911bbad7b2748a4205223b4f0ec5900c0b8ab9aa","first_seen":"2025-07-08T23:56:54.733535Z","last_seen":"2026-08-08T17:15:51.634773Z","times_seen":117,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2Jhc2VzL2Jhc2U1OCAqLwppbXBvcnR7YmFzZVggYXMgZX1mcm9tIi4uL2VzbS9zcmMvYmFzZXMvYmFzZS5tanMiO3ZhciBiPWUoe25hbWU6ImJhc2U1OGJ0YyIscHJlZml4OiJ6IixhbHBoYWJldDoiMTIzNDU2Nzg5QUJDREVGR0hKS0xNTlBRUlNUVVZXWFlaYWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5eiJ9KSx0PWUoe25hbWU6ImJhc2U1OGZsaWNrciIscHJlZml4OiJaIixhbHBoYWJldDoiMTIzNDU2Nzg5YWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5ekFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWiJ9KTtleHBvcnR7YiBhcyBiYXNlNThidGMsdCBhcyBiYXNlNThmbGlja3J9OwovLyMgc291cmNlTWFwcGluZ1VSTD1iYXNlNTgubWpzLm1hcA=="}},"time_used":16,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":15,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"esm.sh/multiformats@9.9.0/es2022/hashes/digest.mjs","fqdn":"esm.sh","domain":"esm.sh","tld":"sh"},"ip":{"addr":"104.26.14.209","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://mail.usdt-transfer.info/","date":"2026-07-27T07:50:34.258Z","timestamp":1785138634258,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"esm.sh","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Sun, 21 Jun 2026 04:25:37 GMT","end":"Sat, 19 Sep 2026 05:25:34 GMT"},"fingerprint":{"sha1":"06:01:9A:2D:10:55:51:3D:71:BF:F8:20:33:F8:71:A5:9E:90:2A:AB","sha256":"1B:0D:06:A9:0C:41:8A:5B:EE:63:99:62:63:72:3A:1C:48:69:DD:7C:A6:61:EB:03:67:80:79:9E:62:BA:EA:CC"}}},"request":{"raw":"GET /multiformats@9.9.0/es2022/hashes/digest.mjs HTTP/1.1\r\nHost: esm.sh\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://mail.usdt-transfer.info\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://esm.sh/multiformats@9.9.0/es2022/hashes/identity.mjs\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=31536000, immutable\r\npriority: u=3,i=?0\r\ncf-cache-status: HIT\r\ncontent-type: application/javascript; charset=utf-8\r\nlast-modified: Tue, 18 Nov 2025 07:53:14 GMT\r\nserver: cloudflare\r\ndate: Mon, 27 Jul 2026 07:50:34 GMT\r\ncontent-encoding: br\r\nage: 16516\r\ncf-ray: a21a0dd02c90569f-OSL\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":724,"size_decoded":830,"mime_type":"application/javascript; charset=utf-8","magic":"Java source, ASCII text, with very long lines (640)","md5":"c45cf843e45f3985481d8743bf426792","sha1":"6b06ead373b6441d206ea96c5ca108521c5022d4","sha256":"fc07873514b182ae0897159ebdcad3dd3ceced04740aa76caf4b2e796ff6ca25","sha512":"cd1646e3da5dc03a394eb325c2a28bb81c55621a1502b4e27d7174ba082ce237b99699c6fc60c7c6fc551f04232c256603dccbf08ea2368d03064591769589dd","ssdeep":"","tlshash":"9c01105a4f7408f437be01e5a1608404b03c1111a209447cbf2b3f95aab1aaae7b17b0","first_seen":"2025-07-08T23:56:54.655474Z","last_seen":"2026-08-08T17:15:52.300235Z","times_seen":122,"resource_available":true,"data":"LyogZXNtLnNoIC0gbXVsdGlmb3JtYXRzQDkuOS4wL2hhc2hlcy9kaWdlc3QgKi8KaW1wb3J0e2NvZXJjZSBhcyBkLGVxdWFscyBhcyBmfWZyb20iLi4vZXNtL3NyYy9ieXRlcy5tanMiO2ltcG9ydCphcyBzIGZyb20iLi4vZXNtL3NyYy92YXJpbnQubWpzIjt2YXIgeT0odCxlKT0+e2xldCBuPWUuYnl0ZUxlbmd0aCxyPXMuZW5jb2RpbmdMZW5ndGgodCksbz1yK3MuZW5jb2RpbmdMZW5ndGgobiksYz1uZXcgVWludDhBcnJheShvK24pO3JldHVybiBzLmVuY29kZVRvKHQsYywwKSxzLmVuY29kZVRvKG4sYyxyKSxjLnNldChlLG8pLG5ldyBpKHQsbixlLGMpfSxoPXQ9PntsZXQgZT1kKHQpLFtuLHJdPXMuZGVjb2RlKGUpLFtvLGNdPXMuZGVjb2RlKGUuc3ViYXJyYXkocikpLGE9ZS5zdWJhcnJheShyK2MpO2lmKGEuYnl0ZUxlbmd0aCE9PW8pdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgbGVuZ3RoIik7cmV0dXJuIG5ldyBpKG4sbyxhLGUpfSxnPSh0LGUpPT50PT09ZT8hMDp0LmNvZGU9PT1lLmNvZGUmJnQuc2l6ZT09PWUuc2l6ZSYmZih0LmJ5dGVzLGUuYnl0ZXMpLGk9Y2xhc3N7Y29uc3RydWN0b3IoZSxuLHIsbyl7dGhpcy5jb2RlPWUsdGhpcy5zaXplPW4sdGhpcy5kaWdlc3Q9cix0aGlzLmJ5dGVzPW99fTtleHBvcnR7aSBhcyBEaWdlc3QseSBhcyBjcmVhdGUsaCBhcyBkZWNvZGUsZyBhcyBlcXVhbHN9OwovLyMgc291cmNlTWFwcGluZ1VSTD1kaWdlc3QubWpzLm1hcA=="}},"time_used":13,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":13,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
