{"report_id":"ddc89513-1d97-46bc-a336-6ae6c7c74fc9","version":0,"status":"done","tags":[],"date":"2026-07-27T08:49:47Z","url":{"schema":"https","addr":"platinumglobalexchange.com/","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":0,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"final":{"url":{"schema":"https","addr":"platinumglobalexchange.com/","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"title":"PlatinumGlobalExchange | Crypto Investment Platform","dom":{"size":393729,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (28007)","md5":"839c7a5ad0d0738338829d254e039c48","sha1":"ca175ebfe3a46cf1b27eff6fd2b42a9127b2d842","sha256":"0c0c0ede05a97b14c58b47ceea76c463ba95fbdc9040f2f320bc9d512389b726","sha512":"881a0486644dc032e92ddfcbdc97947dc1a4c4831d95f08cffc79eddee6ecd2c44133a32f10190291e7977b5d8162e03c8a82a98d47103fd1c6157b083a6c5ee","ssdeep":"3072:Z2hIjHAo3WBy3uLgoJsedqwjWbylPhqSSy5jxTRS5UE2ERXWHGGchmVWcrVFOwLI:Z2hU0xd/jrhqSSzUkXWMedrVAwLMB","tlshash":"5184e77531b216b785db92feb2e353297976c30bd907c948ba9c83c04fc3c549c66a98","dom_hash":"domhashde57f3b5b5b878c78c3f3fa1a49a4f09","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"platinumglobalexchange.com/","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":0,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T08:49:47Z","useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0","referer":"","cookies":null,"exit_node":"qguvgzjxzsgb3vs"},"stats":{"alert_count":{"ids":0,"urlquery":0,"analyzer":0}},"detection":{"ids":null,"analyzer":null,"urlquery":null},"summary":[{"fqdn":"cdn.tailwindcss.com","ip":{"addr":"172.67.68.11","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2017-07-20","domain_rank":117330,"first_seen":"2018-07-09T05:46:13Z","last_seen":"2026-07-27T08:40:23.885085Z","alert_count":0,"request_count":2,"received_data":408703,"sent_data":958,"comment":"","tags":null,"fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"api.coingecko.com","ip":{"addr":"172.66.172.219","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-03-26","domain_rank":442226,"first_seen":"2018-05-18T12:16:11Z","last_seen":"2026-07-21T20:24:11.162909Z","alert_count":0,"request_count":1,"received_data":6178,"sent_data":601,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"fonts.googleapis.com","ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2005-01-25","domain_rank":313,"first_seen":"2012-05-23T12:41:44Z","last_seen":"2026-07-26T22:23:14.439231Z","alert_count":0,"request_count":1,"received_data":20777,"sent_data":585,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"fonts.gstatic.com","ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"domain_registered":"2008-02-11","domain_rank":0,"first_seen":"2014-04-02T10:51:04Z","last_seen":"2026-07-26T22:19:52.505461Z","alert_count":0,"request_count":4,"received_data":197380,"sent_data":2340,"comment":"","tags":null,"fingerprints":null},{"fqdn":"images.unsplash.com","ip":{"addr":"151.101.194.208","port":443,"asn":54113,"as":"FASTLY","country":"United States","country_code":"US"},"domain_registered":"2013-05-29","domain_rank":86676,"first_seen":"2015-08-06T06:03:25Z","last_seen":"2026-07-22T19:18:27.674209Z","alert_count":0,"request_count":1,"received_data":30779,"sent_data":602,"comment":"","tags":null,"fingerprints":null},{"fqdn":"platinumglobalexchange.com","ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"domain_registered":"2026-05-10","domain_rank":0,"first_seen":"2026-07-27T05:56:44.645616Z","last_seen":"2026-07-27T05:56:44.645616Z","alert_count":0,"request_count":5,"received_data":731114,"sent_data":2476,"comment":"","tags":null,"fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]}]},{"fqdn":"cdnjs.cloudflare.com","ip":{"addr":"104.17.24.14","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2009-02-17","domain_rank":1222,"first_seen":"2012-05-23T12:49:49Z","last_seen":"2026-07-26T22:43:30.214545Z","alert_count":0,"request_count":2,"received_data":254130,"sent_data":1161,"comment":"","tags":null,"fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]}],"files":null,"artifacts":{"windows_shortcuts":null,"files":null,"telegram":null,"pdfs":null,"clipboard":null},"sensors":{"ids":null,"analyzer":null,"urlquery":null},"javascript":{"script":[{"url":{"schema":"https","addr":"cdn.tailwindcss.com/","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"172.67.68.11","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"7a614b9a197e532c00d09a23b0996b5f","sha1":"1ff1738a40f3716e30e9031b181b0955ae578955","sha256":"176e894661aa9cdc9a5cba6c720044cbbf7b8bd80d1c9a142a7c24b1b6c50d15","sha512":"a67bc26f52d938358471be5671ff4b79e11af4e68b486aaf73a35a4c9bf3777aab51101af81563b4e5b7ba4b04dd8971fcfa9ee2c41fb10a0c1ee5604a99abd6","ssdeep":"12288:fpgrZxSAoNbJb0Wie75aUXGuyQZhK4O0s:RCVoNB0Wie75aUWmnO0s","tlshash":"e8844aa57396702647eb51e850ea1042f2beaa38840c44bcf7edd4da39e5e4440fbf79","size":407279,"data":"","first_seen":"2025-07-28T16:58:08.903462Z","last_seen":"2026-07-29T09:26:08.384401Z","times_seen":47124,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"platinumglobalexchange.com/","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"introduction_type":"scriptElement","is_inline":true,"md5":"94f2ef31f7ef10dcb83ced6a222901c7","sha1":"36f718a56ff9f5c96999f8f78428da1b1c6c4cee","sha256":"546004f93d3073adc52c5319e7ea0070a9528a40dca7ac03e74f3cb79186b589","sha512":"071a8ad973ef7e90853577f5d895efbf2d2408b484a43ca891e271ca3d444e2a8bdd5b093333563c7afc4a7aefc37dffe79c2366e74dda0060aec6254ec19375","ssdeep":"3072:dylPhqSSy5jxTRS5UE2ERXWHGGchmVWcrVFOwLMI:AhqSSzUkXWMedrVAwLMI","tlshash":"e424c5a636b32676859722bfb3e7421839359203b903d9447e4cc6844fd2e54ac7bfd8","size":220281,"data":"","first_seen":"2026-07-27T05:56:47.607195Z","last_seen":"2026-07-27T08:50:16.809697Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"warn","text":"cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation","filename":"https://cdn.tailwindcss.com/","line_number":64,"column_number":1711},{"level":"log","text":"API Call:https://platinumglobalexchange.com/api/investmentsbody:map[type:undefined]","filename":"https://platinumglobalexchange.com/","line_number":1242,"column_number":21},{"level":"log","text":"API Call:https://platinumglobalexchange.com/api/investmentsbody:map[type:undefined]","filename":"https://platinumglobalexchange.com/","line_number":1242,"column_number":21},{"level":"log","text":"API Response status:401","filename":"https://platinumglobalexchange.com/","line_number":1247,"column_number":25},{"level":"log","text":"API Response status:401","filename":"https://platinumglobalexchange.com/","line_number":1247,"column_number":25},{"level":"log","text":"API Response data:map[actor:server1.conn0.watcher16.process8//obj22 class:Object extensible:true frozen:false isError:false ownPropertyLength:1 preview:map[kind:Object ownProperties:map[error:map[configurable:true enumerable:true value:Access denied writable:true]] ownPropertiesLength:1] sealed:false type:object]","filename":"https://platinumglobalexchange.com/","line_number":1250,"column_number":25},{"level":"error","text":"API Error:Access denied","filename":"https://platinumglobalexchange.com/","line_number":1258,"column_number":39},{"level":"log","text":"API Response data:map[actor:server1.conn0.watcher16.process8//obj24 class:Object extensible:true frozen:false isError:false ownPropertyLength:1 preview:map[kind:Object ownProperties:map[error:map[configurable:true enumerable:true value:Access denied writable:true]] ownPropertiesLength:1] sealed:false type:object]","filename":"https://platinumglobalexchange.com/","line_number":1250,"column_number":25},{"level":"error","text":"API Error:Access denied","filename":"https://platinumglobalexchange.com/","line_number":1258,"column_number":39}]},"http":[{"url":{"schema":"https","addr":"fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700\u0026family=JetBrains+Mono:wght@400;500;600\u0026display=swap","fqdn":"fonts.googleapis.com","domain":"fonts.googleapis.com","tld":"googleapis.com"},"ip":{"addr":"142.250.178.74","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:08.813Z","timestamp":1785142148813,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"upload.video.google.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:27 GMT","end":"Mon, 21 Sep 2026 08:39:26 GMT"},"fingerprint":{"sha1":"50:37:CF:61:33:A1:EE:47:D9:3D:A6:5E:07:BA:4C:FF:F7:25:9F:76","sha256":"7D:4D:21:06:63:E2:5E:F0:8C:59:8E:EB:B7:94:2B:81:70:11:D3:F4:C0:A0:81:A6:1B:E7:27:FD:56:10:1A:11"}}},"request":{"raw":"GET /css2?family=Inter:wght@300;400;500;600;700\u0026family=JetBrains+Mono:wght@400;500;600\u0026display=swap HTTP/1.1\r\nHost: fonts.googleapis.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://platinumglobalexchange.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ncontent-type: text/css; charset=utf-8\r\nvary: Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site\r\naccess-control-allow-origin: *\r\ntiming-allow-origin: *\r\nlink: \u003chttps://fonts.gstatic.com\u003e; rel=preconnect; crossorigin\r\nstrict-transport-security: max-age=31536000\r\nexpires: Mon, 27 Jul 2026 08:49:08 GMT\r\ndate: Mon, 27 Jul 2026 08:49:08 GMT\r\ncache-control: private, max-age=86400\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin-allow-popups\r\ncontent-encoding: gzip\r\nserver: ESF\r\nx-xss-protection: 0\r\nx-frame-options: SAMEORIGIN\r\nx-content-type-options: nosniff\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":20093,"size_decoded":1696,"mime_type":"text/css; charset=utf-8","magic":"ASCII text","md5":"34546c10282b9ae1409877d090757a6a","sha1":"90cfd65b070bdd5bab072fdc8c920ec6de295ccf","sha256":"791417893821f50114a252730c4198a2adf1773d02ea81aeae0f1da222dc09bb","sha512":"ddcc33594594d1f5dfd9133aa34b96eca80ffddcf1c116342617465533010b5f6e8f68a3e5fb24a65b858f3f2e31fa9dfb95016a5c0d19be2716b730a38771f9","ssdeep":"192:wNA1cO3lnxirNNIxO34OxDENOPCO3/Nx8NNryfO3iExlONEhYO3RrxGgG+7p3ZAw:8KYXuM0p2+QOGC6C7","tlshash":"0192cb91002ba400ab871cc673cf7e3abdce504a6085d5b99ffe0d899ceac66537475d","first_seen":"2025-09-25T09:22:36.486029Z","last_seen":"2026-07-29T01:45:23.338768Z","times_seen":137,"resource_available":false,"data":"LyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogMzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMkpMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEwWkw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiBncmVlay1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEyWkw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQovKiBncmVlayAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTFwTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LCBVKzAzN0EtMDM3RiwgVSswMzg0LTAzOEEsIFUrMDM4QywgVSswMzhFLTAzQTEsIFUrMDNBMy0wM0ZGOwp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEycEw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEyNUw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTFaTDdXMEk1bnZ3VS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTJKTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMFpMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogZ3JlZWstZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMlpMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KLyogZ3JlZWsgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWExcEw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDM3NywgVSswMzdBLTAzN0YsIFUrMDM4NC0wMzhBLCBVKzAzOEMsIFUrMDM4RS0wM0ExLCBVKzAzQTMtMDNGRjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMnBMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMjVMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWExWkw3VzBJNW52d1Uud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYy1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEySkw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTBaTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIGdyZWVrLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTJaTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOwp9Ci8qIGdyZWVrICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMXBMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzNzcsIFUrMDM3QS0wMzdGLCBVKzAzODQtMDM4QSwgVSswMzhDLCBVKzAzOEUtMDNBMSwgVSswM0EzLTAzRkY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTJwTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTI1TDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMVpMN1cwSTVudndVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNjAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMkpMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEwWkw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiBncmVlay1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEyWkw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsKfQovKiBncmVlayAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTFwTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LCBVKzAzN0EtMDM3RiwgVSswMzg0LTAzOEEsIFUrMDM4QywgVSswMzhFLTAzQTEsIFUrMDNBMy0wM0ZGOwp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEycEw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWEyNUw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTFaTDdXMEk1bnZ3VS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0ludGVyJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDcwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2ludGVyL3YyMC9VY0M3M0Z3ckszaUxUZUh1U19uVk1yTXhDcDUwU2pJYTJKTDdXMEk1bnZ3VWdIVS53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMFpMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogZ3JlZWstZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMlpMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7Cn0KLyogZ3JlZWsgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWExcEw3VzBJNW52d1VnSFUud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDM3NywgVSswMzdBLTAzN0YsIFUrMDM4NC0wMzhBLCBVKzAzOEMsIFUrMDM4RS0wM0ExLCBVKzAzQTMtMDNGRjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMnBMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSW50ZXInOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNzAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvaW50ZXIvdjIwL1VjQzczRndySzNpTFRlSHVTX25WTXJNeENwNTBTaklhMjVMN1cwSTVudndVZ0hVLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdJbnRlcic7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9pbnRlci92MjAvVWNDNzNGd3JLM2lMVGVIdVNfblZNck14Q3A1MFNqSWExWkw3VzBJNW52d1Uud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQovKiBjeXJpbGxpYy1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA0MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9qZXRicmFpbnNtb25vL3YyNC90RGJ2Mm8tZmxFRW55MEZaaHNmS3U1V1U0enIzRV9CWDBQblQ4UkQ4eUt3Qk5udGthVG9nZ1I3QllSYktQeDNjd2hzay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzFDODAtMUM4QSwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUYsIFUrRkUyRS1GRTJGOwp9Ci8qIGN5cmlsbGljICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSmV0QnJhaW5zIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvamV0YnJhaW5zbW9uby92MjQvdERidjJvLWZsRUVueTBGWmhzZkt1NVdVNHpyM0VfQlgwUG5UOFJEOHlLd0JObnRrYVRvZ2dSN0JZUmJLUHhUY3doc2sud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzMDEsIFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsKfQovKiBncmVlayAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0pldEJyYWlucyBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2pldGJyYWluc21vbm8vdjI0L3REYnYyby1mbEVFbnkwRlpoc2ZLdTVXVTR6cjNFX0JYMFBuVDhSRDh5S3dCTm50a2FUb2dnUjdCWVJiS1B4UGN3aHNrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzNzcsIFUrMDM3QS0wMzdGLCBVKzAzODQtMDM4QSwgVSswMzhDLCBVKzAzOEUtMDNBMSwgVSswM0EzLTAzRkY7Cn0KLyogdmlldG5hbWVzZSAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0pldEJyYWlucyBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2pldGJyYWluc21vbm8vdjI0L3REYnYyby1mbEVFbnkwRlpoc2ZLdTVXVTR6cjNFX0JYMFBuVDhSRDh5S3dCTm50a2FUb2dnUjdCWVJiS1B4X2N3aHNrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMDExMC0wMTExLCBVKzAxMjgtMDEyOSwgVSswMTY4LTAxNjksIFUrMDFBMC0wMUExLCBVKzAxQUYtMDFCMCwgVSswMzAwLTAzMDEsIFUrMDMwMy0wMzA0LCBVKzAzMDgtMDMwOSwgVSswMzIzLCBVKzAzMjksIFUrMUVBMC0xRUY5LCBVKzIwQUI7Cn0KLyogbGF0aW4tZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSmV0QnJhaW5zIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvamV0YnJhaW5zbW9uby92MjQvdERidjJvLWZsRUVueTBGWmhzZkt1NVdVNHpyM0VfQlgwUG5UOFJEOHlLd0JObnRrYVRvZ2dSN0JZUmJLUHg3Y3doc2sud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDJCQSwgVSswMkJELTAyQzUsIFUrMDJDNy0wMkNDLCBVKzAyQ0UtMDJENywgVSswMkRELTAyRkYsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMUQwMC0xREJGLCBVKzFFMDAtMUU5RiwgVSsxRUYyLTFFRkYsIFUrMjAyMCwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMEMwLCBVKzIxMTMsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjsKfQovKiBsYXRpbiAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0pldEJyYWlucyBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2pldGJyYWluc21vbm8vdjI0L3REYnYyby1mbEVFbnkwRlpoc2ZLdTVXVTR6cjNFX0JYMFBuVDhSRDh5S3dCTm50a2FUb2dnUjdCWVJiS1B4RGN3Zy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOwp9Ci8qIGN5cmlsbGljLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0pldEJyYWlucyBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2pldGJyYWluc21vbm8vdjI0L3REYnYyby1mbEVFbnkwRlpoc2ZLdTVXVTR6cjNFX0JYMFBuVDhSRDh5S3dCTm50a2FUb2dnUjdCWVJiS1B4M2N3aHNrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMUM4MC0xQzhBLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RiwgVStGRTJFLUZFMkY7Cn0KLyogY3lyaWxsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9qZXRicmFpbnNtb25vL3YyNC90RGJ2Mm8tZmxFRW55MEZaaHNmS3U1V1U0enIzRV9CWDBQblQ4UkQ4eUt3Qk5udGthVG9nZ1I3QllSYktQeFRjd2hzay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDMwMSwgVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2Owp9Ci8qIGdyZWVrICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSmV0QnJhaW5zIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvamV0YnJhaW5zbW9uby92MjQvdERidjJvLWZsRUVueTBGWmhzZkt1NVdVNHpyM0VfQlgwUG5UOFJEOHlLd0JObnRrYVRvZ2dSN0JZUmJLUHhQY3doc2sud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDM3NywgVSswMzdBLTAzN0YsIFUrMDM4NC0wMzhBLCBVKzAzOEMsIFUrMDM4RS0wM0ExLCBVKzAzQTMtMDNGRjsKfQovKiB2aWV0bmFtZXNlICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSmV0QnJhaW5zIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvamV0YnJhaW5zbW9uby92MjQvdERidjJvLWZsRUVueTBGWmhzZkt1NVdVNHpyM0VfQlgwUG5UOFJEOHlLd0JObnRrYVRvZ2dSN0JZUmJLUHhfY3doc2sud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSswMTEwLTAxMTEsIFUrMDEyOC0wMTI5LCBVKzAxNjgtMDE2OSwgVSswMUEwLTAxQTEsIFUrMDFBRi0wMUIwLCBVKzAzMDAtMDMwMSwgVSswMzAzLTAzMDQsIFUrMDMwOC0wMzA5LCBVKzAzMjMsIFUrMDMyOSwgVSsxRUEwLTFFRjksIFUrMjBBQjsKfQovKiBsYXRpbi1leHQgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9qZXRicmFpbnNtb25vL3YyNC90RGJ2Mm8tZmxFRW55MEZaaHNmS3U1V1U0enIzRV9CWDBQblQ4UkQ4eUt3Qk5udGthVG9nZ1I3QllSYktQeDdjd2hzay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LCBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLCBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOwp9Ci8qIGxhdGluICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSmV0QnJhaW5zIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNTAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvamV0YnJhaW5zbW9uby92MjQvdERidjJvLWZsRUVueTBGWmhzZkt1NVdVNHpyM0VfQlgwUG5UOFJEOHlLd0JObnRrYVRvZ2dSN0JZUmJLUHhEY3dnLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJCQi0wMkJDLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzIwMDAtMjA2RiwgVSsyMEFDLCBVKzIxMjIsIFUrMjE5MSwgVSsyMTkzLCBVKzIyMTIsIFUrMjIxNSwgVStGRUZGLCBVK0ZGRkQ7Cn0KLyogY3lyaWxsaWMtZXh0ICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnSmV0QnJhaW5zIE1vbm8nOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNjAwOwogIGZvbnQtZGlzcGxheTogc3dhcDsKICBzcmM6IHVybChodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tL3MvamV0YnJhaW5zbW9uby92MjQvdERidjJvLWZsRUVueTBGWmhzZkt1NVdVNHpyM0VfQlgwUG5UOFJEOHlLd0JObnRrYVRvZ2dSN0JZUmJLUHgzY3doc2sud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsxQzgwLTFDOEEsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGLCBVK0ZFMkUtRkUyRjsKfQovKiBjeXJpbGxpYyAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0pldEJyYWlucyBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2pldGJyYWluc21vbm8vdjI0L3REYnYyby1mbEVFbnkwRlpoc2ZLdTVXVTR6cjNFX0JYMFBuVDhSRDh5S3dCTm50a2FUb2dnUjdCWVJiS1B4VGN3aHNrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMzAxLCBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7Cn0KLyogZ3JlZWsgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9qZXRicmFpbnNtb25vL3YyNC90RGJ2Mm8tZmxFRW55MEZaaHNmS3U1V1U0enIzRV9CWDBQblQ4UkQ4eUt3Qk5udGthVG9nZ1I3QllSYktQeFBjd2hzay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wMzc3LCBVKzAzN0EtMDM3RiwgVSswMzg0LTAzOEEsIFUrMDM4QywgVSswMzhFLTAzQTEsIFUrMDNBMy0wM0ZGOwp9Ci8qIHZpZXRuYW1lc2UgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9qZXRicmFpbnNtb25vL3YyNC90RGJ2Mm8tZmxFRW55MEZaaHNmS3U1V1U0enIzRV9CWDBQblQ4UkQ4eUt3Qk5udGthVG9nZ1I3QllSYktQeF9jd2hzay53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzAxMTAtMDExMSwgVSswMTI4LTAxMjksIFUrMDE2OC0wMTY5LCBVKzAxQTAtMDFBMSwgVSswMUFGLTAxQjAsIFUrMDMwMC0wMzAxLCBVKzAzMDMtMDMwNCwgVSswMzA4LTAzMDksIFUrMDMyMywgVSswMzI5LCBVKzFFQTAtMUVGOSwgVSsyMEFCOwp9Ci8qIGxhdGluLWV4dCAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0pldEJyYWlucyBNb25vJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBmb250LWRpc3BsYXk6IHN3YXA7CiAgc3JjOiB1cmwoaHR0cHM6Ly9mb250cy5nc3RhdGljLmNvbS9zL2pldGJyYWluc21vbm8vdjI0L3REYnYyby1mbEVFbnkwRlpoc2ZLdTVXVTR6cjNFX0JYMFBuVDhSRDh5S3dCTm50a2FUb2dnUjdCWVJiS1B4N2N3aHNrLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7CiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7Cn0KLyogbGF0aW4gKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubyc7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwogIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9qZXRicmFpbnNtb25vL3YyNC90RGJ2Mm8tZmxFRW55MEZaaHNmS3U1V1U0enIzRV9CWDBQblQ4UkQ4eUt3Qk5udGthVG9nZ1I3QllSYktQeERjd2cud29mZjIpIGZvcm1hdCgnd29mZjInKTsKICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMiwgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDsKfQo="}},"time_used":91,"timings":{"blocked":-1,"dns":3,"connect":16,"send":0,"wait":36,"receive":0,"ssl":35},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.641Z","timestamp":1785142155641,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://platinumglobalexchange.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nage: 416341\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":48532,"size_decoded":49345,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-07-29T10:49:13.030643Z","times_seen":248888,"resource_available":false,"data":"d09GMgABAAAAAL2UABQAAAAB37AAAL0fAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoZeG4KyRBzVcD9IVkFSi2kGYD9TVEFUgU4nJgCFNi9sEQgKgbtAgaEUC4gOADCCnD4BNgIkA5AYBCAFhi4HoQQMB1sVzXEmcmP3c+AywnQbAnTSpqa685dwgXb5haNNb/Y48+ca9SMVjNtruB0iNz/9U7P///8/ManIWCUF03QbAwH17t6HgrSNar27dXdUZtXAVrOh7TtsQWN4F5U2TFldO44xZpHETdyhVDAzo2ezg10W2XZCyI4qyo0SLhKSUnQq6nkNmoLvEWWb0cykCSE1YJTwuiPB9D5Qje6qUEGR+GrbVkXZyMs+gbBh0M9xonPiiCoX/c5GEzomudPxjrquzSYZ12tQ8claYniyV6se/fzmpg3zbOPUQR5WkBk5cwqGISQk5bsrKGwn1R0dK7X1T5j1h4RZdpSQYr9orjGXJf9bXo/zxHdPzuNd3O7wq1AKFeeKc4X7UfThL2nJoYViNU7KdfYfjeIkiYboEtX37QvN3+fdFexIsSAShBLap/j/N3rlyZvhh1sHZHKTfo6Iq7PGqif9UlC2qjyyqnoW8BBIewKU5olRYpAQZALpbfqI162f3ffy8lIIISQBI4YQIELEUIx0pShFFESIgChVwEaJCAQiRkRFBRSOw9IQOURsqIClof087NjQ4xT9nna0Hx+RDPG6+Xdv5yV52YMQsgkQZEuYiqsVZx27w9ExtXZICB1rW2urtVs7vrXDWpbjA1ocIOBirCxIQgb/fOyt3699bnrD7W5CdigUGoTLQmUVdCyfhMRiBCoKh8zK/aBmhmBunSCoSBhUCLJRNdhIN5asAlaMUWMbMBgbo8ZGjRppEKkiZWGACiqh2K//zq6PVj/ygObsfzaOt0V7pSLyeufsBlo/E+N61FbCRklCSBySECPEgCRIEswLFaBY6/deVU7675cfcNP+BahRn9iJG2y77b6KUE5UOut6K/PWKcU0BAjBEwgESdBgIfHh/7f1v1BQb6RTYccEOoKnqBAQKYnM4TqvKr5uVDm3Ijf08GuvP+c1RVSEmuE1u0UOuAKBRseyuqwiVOkTKmDH9g583++nZyfCVZigcoW/+yKTgnCAtwhGlqWrNKwwnZzzVByoqH27tKXv3tO7/+mvMspUycByABVAhYyaVJlsmxlNv4FOwWqvzPyGUSED6ioT3Lc5/t2sGbTMEKR0z9y/bp8Q0i112lLxzcuckF/4PVVBzgSe3v16h/I+ICqC49mqZjZboStkpWFncuH5//3a74NZo09FVieqNCuVSpo9BwkFkkbxSKjyf+iiTeVdHsKln2+kldyvtaSjI9D+6TgojM3cOqUBSP9aZlszZ5s9fTNca0JLj6qbsA8JQYDxir3p+veT02pUm50knXQPCIfQSBTlKf+8RiP07t05jdPI51UX74M6N49Vps+LqcegqSStM+6Lpbl8TJ82NrqQsDxUZqCAwZLBFMb+NS1GYhHGQTwZQ4FdRhlGwR6GYQzgYOT270vVuv7X3SAbkM0iwF2xJ4PycuZzIiTPzJlkSxNSvO+5A6FGdwNkAyRtBNEGSQWAFMcNihyD5LDMJigZIiWnIHlD1mStvCl8gHK5RclTbXI0puQJlCZqfZsY5A0h3EKIp91biOe9nWI8hXy87vG8x7meFv6/n1bSfjr76m3u0cgxINLV2jEgBtiAz6q7d6y5LWtD/g4hsd0sA01ARlsmKAMSUkKGC6AZN8AGgBiKVNMWiyM1Ar7SsFLplPpeBOjhgyAV+E50iNXzHWk5F42rVk3povT/rZk2W2bjKxQQu7o+fzc/23+0B1QA1vwXMqEDoAKRqlZ9tXJ2SmkVUKAIqjx83rTdQPqXPCDcoiyYdBdQFgB+DPMknv9+7zubw6JexZ0LXSgGGWHeYNVPqZso6FdB1He04lUmDhQT4wXEf7/X2ewg1BfyOmJsrHp5UYdS1YcuS3XBJUE1YUAo/N5pmdIlpV+FKABmGbPnayyrzHZdSik4L8haZBsdvA07GMAuHIZAXUx3/ebiEU7BByZIM5xDKIEkKCSO9/mmzqb5uc51DMVWCJ865JdVNqvXcf8h19Q8hKUuOGSgdyZPep7AuiSwJvw1wYggXGFKj/WdWG99cjveI4EMn8GEwQRhjBBGGBGyQ37P9Liz9Tvf//+ulJ7fnHMfz6raoiJGREXEGBExKjZUxHQz9xTtS9LBRiLqy35ZvEQ8Kh3jpJS2yCAqdY/rb6+9v4omktmH7ppy796uRzmpDJPJIHaQtBERkcrk7uuOsZk6+Cz3v7dhgB5ImkvDqaYD6SEF/ebSWkofVgdBPFQIAtP/DP0s8FOYBFYNqdEKafcQ8sgTSK8B0C8pMIwwoEjEABQXcQHFQ6aAsk4GZZ8CKjg8VHhUqOqKoTamh9qSEWpbZVD78kIdKAB1ukaojpqhruZE1BcH9bkAtO9FoBAMHAXsglBdzZY9R5UiINR1CIxnI8E4FbgXcDtwGBMIhoA3PB9a3zkF30UqvjqFuEQO/YSmn6+v/NkhxnywCV4DfggGBAOtj+hJ5YHwHBhAH5BTFfUznOOYM65nEufDzrmeJ63ILlhf+Hg17DL/cvY16fXsG9KbpJvSm/KbBTcVX0q/Crgddht5W3rH807ivbB72fdDHzAf/jaeHAcPcY82PFr5KPtR7iPp49AIXrr80t2XVE9c23Njzy09d/X86Knb+pJJsQ/ODvTd3nd33719qmeyqa39V/Vf239L/10DR84bySKpHLhwILDMiAbH6VEQRVM9zbMYV0AIF5zIRgHH+FDBfBawJBWpzrmp03OiXuWoYH24aOf2nrvAo74ts8IqWzzXOq+d3qM6mqIrX1eVMsaF3AEXlBXlmyrcSqWiqhJVqp5Tra7N1Hq1vlqlJmlEGvfxx9vdPHTxWZ74ET6Dz+WLm1Sz0nQ1S5q1Lap1bbukXdoua5d3iruubnG3pFvWrRUSvU4P6Z0vkpKnNs74TGMHBdxxKdgAebqT3iGFCpzfZD/QT00Q0chRcF8VBs9HyBcKxb8qUdwKSi/lK7XaAW1orW0bW9FqLYzzr/39vnzWs1HpeyYDQZvfiaWyIrW9MlAda/2myezsTbcHDeBELJ4kqQydY/LFUiVYb/CtjtBDEIxg0WwOwxOIZRq9McPsYqvdVVxSIzVsbIbzBSD4a84BXMcfBOwQqQZ50+tqE9wfUsnGoXxENhCD8rGefBISJGBttAADkUMTeAZt8ZhPskl43jSH/+R+yB4XS+xdAoQh1lfVEaAIOlKwuuLj3ma55DugFA+FD2FD0O5Gs3hLUeJi8OdCQYyLGAm7mUnwpRExGIzP6F0ZkIpNgKk3m//66csmRHV7BvYud4jZJoHJfzkoIPAqYTygHAyw6FK73S6+0K7juNUIF/EFdoUbfx7i2JdxTpp0XensPdajPDj84HUffVp6jp00a3UEhzaZSs7Hkxt83GOcxZatHutoPZ+e/ImPYwwSleWPcFTySofnJVnfct820fZenFldu1rbc+nO73h7b+tVTOosLW9hYk1Lby+PHlL7RE4HizGLqY412mBF4unss9yf4o0h8llaHHXsIgybhnX/PdfOvfZar1ydrdZaJnUf8NPIj2yw3EI7dJB6edQQqV75Ispe+jqzREodLG3RlV/xcjR7Q62UWzmUZdGMfrFK39IiR/dk1KknYkyJGRkxS1SgqGzM6TmKFKVjUpjHsJKgVUlh8gtJojTwhLwfUqWS3W4Pw3RSSzFVtKMkiMTPJ2Uj8ANFROGcZAPm4YYZcgjwi4uW+QQmcHaM+lzCG0pIwMYDO7+J7d3mrdvWLdkFO7rd27zVe6Udr6ktXsSGubw48LERYBNEsElgGmXbEDaQNfltlsgleEUcDKLV7GIOZllMj8pW462aytuVEFvpg0nYYKurdgVilTk91o39WAUj68uaAg0lL/2wJS+PX/Tv4PI1t5mL/Nj43agdvCBwODZxIPR4hZarUYaNWvVl+uZ+1dD6h2l1ox44l0Ogau0z0T3cKaLzf3Rdmno1Yi0lQ2bp0/YKjT9LRlF3W3WAfUqjHi+kWjtzyHmZnxvnP87jDx8EgoU4mMk2x7JsDkqdOgS4++8avNVPn58qaBK/6b/37vf2BG0vrv95W+1aEf5/UHO+Yo61OUeLLqd3OF1MhGajL4QIvtjxNxexuWnXTGeaC5+t2WY76pEqZHYU8VJheV+JwH45j+BZXqhVDk8sbbU3IegTKMDd/VboOt3S9pphfk3fbx9rnWDfno5qmIPc1U3lmPR358/zd2V6x+gsys5VB6e8jvpSwxaNNjnlxVwUUd0fQrTEa3twg5Ja4vvD9E++Nz++uxVi/eEnU/yR1LSbsk9DVGFs/m/rT/mXVE/Pt9W2lagXg7LToBG0gfcFzKnCl4K8KBn4qp9qPbNuvuUgfwxlASkYu/jXpeimJVKbzVT5Ki40wvDXVN/u9t6OvLlsqmmRV9Z6s2caIW3owLw9W8Sbn9SuSXshzAp7ixlu84BBj7mD1avb51vo7Aev60mw9uzd9Zvy4ho7vtwzHPaVV32ur7r8FbAsV/iD031WvtDwsmfxHPpw1wfLGLfKtmOz4o3q7SLQQFFOYR/C3lMYQln7yo7jy2gKelTmueIOVliCWiUnK/yWeDrmT3coh4AcCWTptdu2alyaP+avkOKyQ28R1erJf3nS+fkQRTpKXYoT8Pn77F3gFIQ0mE1tTk2xsa5b67gv2HJYJ8d0IdXq8qf350ZcP8cy82EFuvLX/BM/7J6MFY+AJ3FRdpMjKxJnofnropMNXQjRVVe5/aPPCG1JVFXwQHJT8XR/e1GuZDmtPSeVItvYyRXt/prvkMi3d75cnmf23CjEYJranOxSSjp5ZcVcED4WV0+3bF1HB8hkPd7qbAhleZd0XIob9ZG82gyoPW1Ordln7nrJilptRzb/dJyzt4+yuzLXdXvi8WQo9/ewOELEVRJCc1cL2kb51fjmtsCgZU1Odpl4sYCw8qCcW/uPhw5+xfTr8+dYzBDS5svlx+6grUTzTnRBR/NSWwiG49jhj0in5yuawz/e1dZjjuP1ITd1piE6ipZ5M+11dLKghf1rM5lWUdtXhrZki8exHO75H9kZm0VVS9rAxBxCyG5uRSJvvXDs349hD5ZUPblb9zruC0XTyXA0UNtgelL+ROmlsPrrzj6mitLte58Nwv6EgKo/bzjkloc6uxS6q/MK64f+0//zQDdCg3bIB8rH9LF8nDFuH+KXBoECHv1wb+7gChpqm5WAgOyK6PxZUuS1e3jaa3HX+Ld9dgWHuCSoDxm3shWYppdcrXQ7HdhE9cH3sXPb4C83DEZbpZ8OorJvw6bKrxfnFCc4XLaPN3mSh+Kzpb1Wb4U1bQZmk+4hsQOdiut2btwJDpftszd5cvxDxWedL4CWr1tUovQuJJ4ND+XejD7MuJD2ZQdkx1X8yPiKd3l2/G6+irds57gnMtv7YmZEj9AwjgwjFx7nXfICdno5etXihHisD/PGQyYD7OIUbCP+pek6+uHrX97WXisbMZzi5ujt+pUSEg8usiX8pM8jMWsYViQa4Zi5bPOfnfHcNH28X296rmCXbUa0ekICX2R0ykqUzOsFK2BWBGXSx5zd8lDkms5T/J/wSMj+uHFo70M4m7GHhUHETNa26aAgfiesHZ0zPQwsjmMos5PbnvyDWH3H54w3HBcQxU9FITbgFzWExK5s/K7lZBpQq+CrEEFyPTZrD2IBF+JcJhtmrqxS9GsngrHeklqyY6mOIfIYFRXrLffGzC/HYArjAvuY4RBxY0It2igxKkxWpdoyNWott1GrsrqNLzRwmsu06fo4oteR6k96CwErhG/tmck0Ln0PpusPwEcCE0n1LxdCNL/8CqD+uh+C8REnP7L9ifCAccz/VYPjf3v4D3aqSZH1XRP6VV7/UkeTO507JJ9w6fDbX4Edda4O15GkOJDcL1IEpw4WfrWwUJBgQXu5EfY5tGm7YcGph4VbAQZuzB/yeN8V59Jdqwf6v10zu0tj/HLwhUpi8Hv99pUvVPrjhKYNhAqzCtUvVVaLfzl/W16q3H1K4tCppVEkH4tv80sqV4wbqKLqWvKCO2XZ2pUAwTFEt7uMl7LzMZfLSMBycWH9rTO1KGAZit+UgojUXICyPYtunOegdzxhf8Gmgup+Xz0LNIP6uamulpBLFD5fKiYDJV6/B25nFWEtVgOVpXpfV+pmYqzzM+dBwbfHx9PLqvrfC31stwrpYa2pBTX9aFSs8ls12wZp/4C5VNvMj3WwqR5lHmysc6z/+y5dRw796Qfw95PAX5ZpEXnIsEYaJ9/0kcBvUMp58BCauAAY/24/8NjJWRmqS4RwEg/TdJP/moUBL4IYok3U6sG9ETjBmzrEL0rYZfebbU703StN+9b6fgwvnHnoyd//Ez9slnYRNCpiUdTFCynYJaWFbEMbFzyM+Sfw+MEm1t840w6bYObdfhR8FwF6G7BOf2Mf3UKaxXiFK+P6kvapZpPj9WLUjxzydSRWWnmqQp44qs5TwtpXWxezg6maxLUo5Rup0xZ+a3mjBZgvBjA3IrMhPpXGfzyPb2vrRXY9b+5rbXcAmy8bRqSJAEL1aA/r8OwCLEJ13WxhunMNNp7aHaabZRQQsRAH6GyEky3c7DHJ4RGvsfkyLTASi8LBpql38jRxbBQb158zExpZUnkcm18ht3JSc09XNd9Kok2oJYWwdpuYVk9GUQ1BbCPEtY8ZjSXim85jZochoZMfJbZQTFKmAlJ6VVo65OYmSO8vZeKCur0udVe5Libsc4jUvTi0igxDMycMBBFAEgmcYgDrKCCMBoJYwDH2ADuTFJSNhXPPA8pTyLxAeYPzAeULWSBmTcCyIHiFwGsSvMKg0jCq6RDFIi8O1EzIZoFKgiwZTikJVqllY5dGzyK93DcZ5aGbXwFmWRVhpBXUQsTlYtEixOVhkS6BK6wCSg9ki0EVg1sCqqTHWBa5LReyFaBW9lKUJbyvScKkCiGrRNpaqNbBr2owwX0a1mREGxndJmzazMi2YN5WhrcdWXWIqu+82sahrKEGe1A0U1ZnK3oQDvUoAkam4MuOAcMCwYEow5Bl/1oUp56BhSOg0aGx3kU5GN9dZGHiz0c0MQw+fGpWcDj8Yiv20AjbWDN7zW3y9AztSujQ6C9Hhol7MOIwE2wcJthYRa0LkeUgJBjOynBWu1gHo7yD7x6ywZjuoskUJsMlZIpgTYnBNpYOzpGEgiUBKXk3735HvShkr73KROCAJr77PhIiWYbgx7mX11yt1HNx5HEa2YAWYnBohEA8RCAmohELTU9s9s+sWR11DPHGnyCx+iHCjquRWeggsONcggDDAAY/Ai3abBMy/c/HSHS56bQ+sVsvwMJdBjaHUiiJFBpE1zWg4d4IT7QeEDV4rWoHwvYFpOkExcUAKabxyjQTcYxBJKKAVbczCFZbAoyV37xY72yoUgB2ykE6C+yQQWi+PJUmRlS8G6aIXCW79yNOEtHxu/0GsIaLyqmqXgBm6g7GANu7wsONAhEIJMBI/Tb6qCLIV07eHu+OwfhnID0Jr4eEPIThE+ylHiEKeXTXpve6N1CNARBWPA3D4fIc5Bc6YYlNclI2pdgHp0ebgqzePAeILEWRR5HyBNLCyGRBH2qVNtGnko8EM7B2mGvsGQGWnyxRWspMHcbPxDRmSGB1HOPz4rYn8UQ8Cb/ulPS6WsmkT7gk1qo8rV0o1rX7LyDFMm51DGISoPArQfFUrxy2URY6y1MjJtGVUJLBJI9wPOrcA3kqq37MJ2fQAZikUqWP/0+q0iC5pJAeSkzjqBK0ztEXekmnX7fj6rL1UsYnf94Kv6s0B923DCWLd8LaRBKaEaGMwXJhdWvcep/Im8rjU7wXuJvKxC+wtaFhTgRDAK4+uin2tX3a2PPdPu3PhUl4nG3r5erN6QP4WGgLE/a2gleKhl3tdaLxfmVVo40bsq3tbfQaGzZbYgYN+fEvMZ1PcSfejohnBtrkRUN5Io+uq7iU7laPuSA9CJ3T2NXGdP268EyuO54r1/zFvXG/vE3OlUh9cmQBWg7vG6H4W9StKBiclPY1YEa1kbplAHuLY4tKltKSY2eVZl+nwX0gt+Wz+g1YjhXh/TjpNZ79SOPQptI7v94Q+6mkqXYi5Xm5enVA+3rXFZoYjCqFtDb3zQkjnvmfqdfoNZ6Mttp452omzZl1snYuU6Ofa1NvGEHi4T71dHNtoqk3Ecah0BBO1ch1TujSqQkMeQRfV1ON6JM49hHdYl/sN/9wIe7hKppYO05d861ZSS7bocOidLX+Lx4du73JWnh4KEAtLWtKi2KOMIslhJKOfWndY4G8t4XB/A0kDf7ad5FT4HGDW0dQC+xEaeex4Rp7Ezg1yrDjIQBUA6/3lxua48Vyhf7mQ+duGfK676o2GGWb0YXjy3jtk11n7s1fqzSAlhBWa6urSFGtaUv75HMJiHX7Chnt55bdk/559TdZWpRXVB/Zg02vHvDi/CaJPx5Cer19z0BLxF401exuOOVOU2Pcz7gPjouHfMk3pgX54V6UYdTu8F0sFXQKEmTGYvbxf76LMgBpGQJ51pf0m90b4/WY40rRPYtfu5X7Y5MVe0EO46TuNCx2MKWM9+d7watwjUvw15wm3U3SXz0qXdH/DbolVMZB7p/QMtcSxFv5YEUKG9BjcUDeZZuuO2oa4s03fhpSY+1COdH1KKk6UOZjDvBpN/zkdED+V2C8RSaP3KzyMIyLYf9ScK3e1iRdk6WTpqBp3Z2WqyfXBNnZiaszAaS2D6UUHX1eF6Bti/Ayg9VNviY7mmGag/AW+j321Ovyp8U9xPy8yA3M9+H7dtx3Ki68l+k759VaWxgX0aLgGdq8XKC9BtiTV0S/s4ObkLkUaEt9KtzNSyTtaRjemgQT+mwK6/SKZDB5a8tWIRS8i2Ge1nOi7xXm8V0/zHxLCW2CKgUgNPCBizkew1inZXy1MS4wkuSN3VbSBCWgB3tp2OVTrcXXY57nAyB1vtLKwG8XzD7zNCtNGa1YDt7CWUt7r2EnGkWTqBz3BM6rTU3hq6j83pp6ilHK0eZqbEqjmSCt2P5Y3O3g+uDH4dAlXMzcD7598hmHmi5huLQGh9vKH2wjDUk+P++zSl/buxag+4u6OgAMLZAE5j1mC4inclsUH6XeuN4f8O7hahes6iNuCfmEULazHlqDQO0OcEHgaAPHK4C4z+4F5Qf2who2jYaWsVXdc4jaxNq+cwdlbz+42/GtXdWKK+mJBU5IPw2JK6EleA6AJsBg7sKI6yuBguXkYfrq9J4oLeHjZ5qIPpbsMH+VcBxaIVoeRj13s+LlIm+ubDMwbdq0tLIw3QUQX/RjjpbJ2EnaClVdCm2S3ku2EutwxhgYg2pVUuvAVpaNqdV79q/0eVt3XP2WRZBDbIxP3EjbjDmgVA2caD5o0LvLKh8Y2vi6+x2pWSr36t55Rpr9DZDNXE6y3g+wmKoCSjx+SkvkFXOydzO6cGD3ee8amaIPbAXJax8tKEzm48Oc3oj+tfn3NAY+NrJTs7zCyLPFKu99wMajGL/8DSc9VgeAEQCMMlBQxAMAskPvigRTPbGw2zoEjCUhSjkXz2d6BsrasIvU9fum+8L7mjwu+9a9TwH8EqluQpiWFFuJn5aWOKDI2/qy/Uz7082T66vkUs2I1U0qPdjHn5L8YtoX2MLCNOIWuf+5rQOXF6/MLTbVKktmhdKwNR+9wJoR93zT8bLJtiVoJ7rHSygXFGv/Jyz2n9u1yqVZpUbebrAmOUR9+gQuoLUHV5Hs97J5yYRFBpwgbVCtg/QR6QksF9TWAaTx5SrQxBgBe7/PUizED98evIx1Xd2rl7jisY2yaKUxUtHTZ+Mex2JSt5NPS12Pd/fM96gL3U2AWjRH3s4h+h4BXAvjBpRtfhZCCoYH2KcLxk/saA9YadppDXdWseDsA1nCZdoDMj4w8xQtUEgyDaALV7vj9/FbqrEF1JZ7WbQoy+BRrDEMhw38+/+lxEIQAYPhiIKhWIiDAB0/OoFsO4nsOwM5HFNT71rMll3LpeXacmt5tLxa3q3AVmgLdqMn1+r49dCf6+Tx81PsWp9/15f7kaOvU0/6hDkSXEfN2P3wZ4VOrnEq7uB2B9RvkwFX5egzj3Z91LPBGXXlzEJPRY4Jq27KhJFbbok9dOdAONzJdfsEuZxy8Lc76ubBaSbXm6uR2rp1JM5GZ3OXWfsGF9XYGQ+6xRlc7lqPXXKZK3I+6oiRi9kNT+1xmINr70iVE+uEzkEjD1zOBPhn92Yc6r4LswOCnGqb3+v0kYeu5JzVJTkPDnG8lXNt1KUzm1B3/k8NK2CmGPjMIAJCJBE5xJY9koIjRGkUISejISouhFy5QcYYw5ZaACRQNJLGdEiMGKRYMyDxZjGTIJGJJJlYsuQYRivPCPkKCOgYcC21jFipdZiq/AapsQNWr56dnf6ANWqC7NbM1B57Se1zgKkWLaQOOsxUqzaW2p2EnHIB4aKbsFtuI9xxB9blHsJ9D3F064Y88jdKjydoTz01Xq9/0V56je2ND6z0+Ujik2m0fnEyP82ABiUgfkkqNiTFGkYYnCMQAWNjIAZ4RCEKXKIRDc6xEAv8YiM2+CRPzia77NikSMFmtuYciz9DEo8IDx+PiCpjpgwaxckoTkZxem3dlHGPTRFbvx4ZfdvwZx6vOZN4RHhEHNhTcGBPTmY4HlduXLnh4xHh4ePh4xHh4eNREnFnbfSPyqorMbJau0fd5nvG1faM75RIvGN+1b0AT9gqGBeDCVPM4iCoYWeJkSzYYJJbRhdKRpRILNdYlkXRP7sT8eBFQkUdRRvm0v7JQjQ78qVFSY8q9PdK64xUpRay0Q6oUFizgrEosEqxUrHGUeLC8zZUHKyw8ZaPmhCqCorNQI9ksKrbNivOdojEFwRMEJM2xSkUKcwSgC4BqM1tMpvMJnPaCZwKhcJfkByAAqpXa/RqZbJpnNKkxQFOl3N5AbrEEoBew6AB62rD+XPhQc312FaWNH43BE6M6QROGwUlnkWt0IsRLJQ2cvKgD2n4pLWbBW1fmObeeoGoIMxuPDmX4CPBdgEK2NAMiGFBlyj/NPrBH9lXWUv5LJfNWh/tnX/iuo/Lv2Xu6vyqMw0FUPs+e+BIvKZzGE035bItzYAHCCC1/EbOAVoOMA+sGVuuBetprSshdUMfG7IJHBP1THkk+ExZdVBw20FtXujbbjK+PfLVjh03E98ZImaFXTzPNBDU8h6m/+B56TJkyjLTI2bJNtscc80z3wJLLLXMcqustt4Gm/zHZo96zOOe8KSnPO0ZOVCYV7zqdW94k4JSMS1ttEvTxu6HPdVsn/0OOOiQw2m/kCNw1DHHnXDSKaed0eGsc8674Jbbutx1T7efAYH5+5C/XsBTgDU4dpP45xhM90UAiYHCRGNh4+AywWO6GUtYi8YWiZtpWeuhwYJsOY9r123cLJRrkbyn8Pbu6x6d9iOP4e/QqXemzmzDfgccdMjh4JmkoT/Oo5nYDXqmZtP3CLK37wP2O5CWMwcdcvjYiGc143e23ablrxn22e+Agw45rFXbMRn81FstuGkErcd3YuzT3N6GffY74KBDDh8TMTxT58E788476DKh2+tr0kouzMma9T4KFesiMvvXl0mAIyV39cwJ41/Jz6slDwto4KyPP2kfzvJF6FsDoY8/tr7bRTrBDdc+/GeNJAYqe6cl2TjmyPjno02wjY7ZpfCHInqLFVvCEPFRvfrf61v2sElZm+FRj3vSG97xgz1+txeBJEATGjV2afw9cEFkOzQIS7htJgJJmatBitwIVM/feQm0wjxcbCA32dzY/LnC4ZAfQtM+sA/u9s9Wgd1Pi7+4Ybc/mqK5zfZlO165CL5KOf0FLTo9eyNuyC1uc6lRbrIa8cZvFi8jv1WON1c//T3L/eX95atFuD/oXJ3VbV7doUvvcXuHOhteAbF6AlsyjOGFEp+zm9CIIZVgGRuhqAfLQm+IA/okKZgIc3x4w51dSIRLLpuq2xPT9PogTtrp09aMtieejfzEkYMC2tEyn75Q2Oi5/Efn6wVyJaFDq9ALpYWuf3t/xJCn0iZt0iZt0iZt0jYSyU/CC8FPNe9Xk5AtO/YCTTBRkGAhQk0SZrIpwkWYKtI0UaLFVILRkZiklWSkSDVbmnQZ5phrnvkWyKwsoyZbTrVymba8JK/w2iefffHVN9/98N8hDh6Ll26qLKMhWw6thXItklf5RkdB6YySQkX0Fiu2hKGWGoESy6ZNyDIS2XIq3+gpKJ0RKVREb7FiSxg+E3cymJCQRPIyzyu89slnX3z1zXc//NcvsI3KMjLZcqKLKUQRvcWKLWE4VKSkHQDQVFojsVCuRfJKZzQUKqK3WLElDPVS5pXX3njrnfc++OSzL7765rsfk/+mpJRUTDUpucUa7CFAYqAw0VjYOLhM8JgasxIRhAOyVMnusvnlkGuqzyy0WTsmik3ii7IYGWKdG+XPA/+tIaaDB4WHd2AlT1XftdkFg+nQJ6jyVVr1HrGXaYBpTXba0Dn/FA782d7CNLTarPPSvLwMsOjUKYc+hb5vfZvDbuBDoqp+hz9kVjTNFiE+/K7LzrH8SssGDislLueL8NdOWR/F1Heh1y/oyo+KW5JUPLVJ5JLL1SPzjyee6vXMc//zwr95W/NZv/9TCw1Ijht6JRPvlFJ2o2uvtVqHaRP1Sex6aqIyRaFOsC09ZgVMxe3VHy51P1lhaSAtlyp5kCIKmWzvF9NStWJK01qPaVuNtLoTooWuNoi03LKNzk9W0wXWVWcmOzwedqDFpRoZbMD/PALIyceA4WVCSmzl2XLL5RjliYZ5reQ8imtaaBPVvO+U8tpJaHhY29NFlNY24r/J2lL+Up+R6tVZJWhHmgJitt1obFw8/MOX2cQsSViRkpWBGRlPSzOTs6Uw0qjTD2Yb/BcD+/1SP3WAsvnNqXFWOGmH1TqmubWTcAYOwbOwBUqR0K25Hvqr+mEEvJ7XfF44H5/6893HWJiHykuEOAgIDcs0Ji4yQTxkiviZJcg8YaKGZ5V1skYkzSZ59imyza6ROSTOIsuGJckxZaNyanSqnHPJtTGpG5t7HnnmlXc+ueXbuMbD2GHEAeimUrCbHB2/uLjEzUrIovnlsyyrIpLyazSi8qScu5Gbq13p0xweRAZ/UUOSjThSrsIURxcmbIRSwoWPFDla9ChR4ybstblWdggh9vJVaauutQPpqzl0EPuWggqjkzZEeK9x0XjQuC+CXcsVJTVZVWXo2qcnKiOFys0/FxlVukx02XIx5StUrARj6tPnx1giVFwC9IHKn8bc8qtmUnkS4rqKs0ABN28sHrZDdHx3sI+4g6K+7Jd24z6zy/Y9e9ZO3MN3wRbTkHLy6ozWSMAhFhmlnWdopYj59FPPZcpJE98Qhxk66HEAQaiBQ8Lnx1wYwxwe2Xw3zIkb2ZDoZfZOpG9fomBJo+GTCy5oVo2At2+7K4Uch+famQROQyDm4ruGIR/jaZiE+0Q2nnonN5F4GTSVIRfJg2QXa8PumELwqiWqcXpE9Z2v10rwHv7QdjsytvOG/PBpKCmqIBkQQtv6L98ZCNIHwxGIA9BuJMJCYC7nrudRCs1XgMZZ1NKAqLS8cfM6xlKGqNCrcWWSXDIRpboa5QqwiyZKfFXG9yOocAtFniSj6fFWCWQ02dIxD0FGE0NsfgEZTdKM+Toymk6hpl5kPgQZTXrPmGsgo+mFcAFkNG3SZkFG08rQRGQ0zYPJe0EE0DBsj1FNjgG6bxmYZWscToYacY/N+55VIlbE+lZ46s8cyrvSDKs7fG5fP3iAB4X1d9Q82d19A6eytbiahpWuB2EtUWG9lV1pvUDK4M3LFN8LTWUohToNVYsocRSfC9DYVwwXPCsB1mkZSRlUUDwK4wletq9k455IybR9MheXISRq+1AmzgasiyG3Ya9+gEmTOg9cjb+Aq7cRgLEx0rXsOQrRyjsApEgnIVUHpa28z4EgNPashmjkvQ5SWLWz69XEoUMLkDpggDRtw4arZoMuwIrsLATFHPGvAdqxoTABJ0DWXTfyySWb5hknCL+8lVTq0Ad91hPOeg1YE9evd5Io8gVgwoGLKIlh8k/LQND4wQ1+JbGsnCbYElXXjojzK+trrMXO4DB7YZcLHWtuxRQXoXMvqSL4UnxXWfackTtfCHTG9ymZDKDNdUVkpy23VmDpHhHKZ6iQX0Jwq8f1VSU8cg9KyE5DCStNUMJcjaS/GDCJ0H4e1NmIxjYeKmzact4E8toXkSsnqBWIWbUlagEiVBOxfSnuM9B/aWFywDXon4MeQl9sLa9XvFZILG2QzZmwb5Ay00NH04h31WgYMwbCbaM2XFaxRzJzqjd3g1kRyr8qKDKEVVy8+An8iFRRnT7o9bLObfUDMqDzjQsxIkzkzWEznspF9Q5u6a0pWPCWb19AyHpm/v4jhCce6CSwX4NN1llBTytDovZPCzaeOxVFGH50FVFJeOK3RpebTt9zzUEiv9GR6Y7/gFRVXJm35FcVK5iMw3ShC12mewUGB7L1T9xed5k9Otw3FibJdDz+Yg0mTy4cyFkR47ukl37oIfTveN+DAr00zyy3z5s9hdDlvy/XVdNQ/rfnzluVgSpNXbdnmjX044qUVt6rizXqp8wiuZHhIYDBl3pjNicvrowU5iclS/yNJ9g2eVzC+1CGwgMykp1uP+ouREBxt16+lf37X+bBPXW3eeOa69Xr73/guUwccN59ak/ZSZ57TsWZc/LPT/lTEk630+GUnsKTzQElWz1OcchLdfkprikd1YjmwOQnOu4xj/rFZ9uNZPhDsQa72rmON9b+Pn2faV/bWt/yFnRBpzvYjja0vMWtbmXLWtxcFqb7T0r5/0DEG3OWE4w75qgjCZ78xOONJdpwWY5LFLGKIDRzyHXnnXTQThs874AdNlpp2vucddhOm6w05WN2styW5jFJaqDKRVe00LLWaoXLU9bSlqzI2lPJ8pet9CU9I+UXS0tYbAosHlUUKVzuQ9N/SrVcKpVKIh1QXlG5ZZZajIRSyU4S8UWRg6wyxzgx2qnnGfpoo55yCljANIN00EA5xVRTSRnF5JKY6AeLNAh4YcYygqej/DQ1JMCRjzi8sEDre6/aTbVcdwv8AEEcex30mvTLi459DLM4wfGMbYyjGsmQUzAlI5+s4Q9ziJM8ceM2ypGPZITDwzTG6DncG+ZxI7BN3k6ZJc91fFxTred5nue6ruu6juM4juPz+Xw+n5+fn5+f3fEv6NX1UZuzCKtbySRJJEkCAGBmZuacc65u5bEkSZKyK00iSRIAADMzM+ecczciSZIkSZIkSZIkSZIkSQAAAAAAAAAAAAAAAACQOEmSJEmSJEmSJEmSJEkCAAAAAAAAAACGn5jZV2mqRB0oXzR35tQxCXNlShk/YghUyYnD2OmdeR/vVSMVCVKB77mObbX9Vl5ux/al0z3NPC0dV1WlhHV6D3Da6e30LLCysrCUZaUqSZIEADB8YK8UiIIcYqihhAxicIkqFeP+GZ/0mYb/YXmC4x7zqEcy+ORPwWQNd6iDmbhxGcVYjWBoNFS4rpwZWy6crwVGjYGZnOsTHfTLJ/YTRX7fOtqRDTl7RjE5wx/64CZh3MZhpCMcNgb0v0Yjw3NnbLHqbXTkfakrKCdh7Ag8x+AEZ3Dig4199HNmfGMb/chHMAVTPJIRDnMIkzTqUY5sxMPFGPU3Xjoib+aWC+bOnDrJe/DvF5QVN2qYElLnlF1WCeMiEgbtktv7F+PBE89hGPX5jh/JE4+sGruRDH8oNFiwweJh2dN3Jl+29MkTVFBxkoQxI5SUOmWyxHERhn7jXnjstis6HNWiSZ0N1iljaJzvxt/9fXwQv3jEr0tlUYuLz4k8a3H9/9Z9v0YRVreSSZJIkgQAQBaTJAGQ+mFDXSTWtJyZBQkGw7iqA0JLwuDbsueUpoMOcwbkCFS2mYDmwGM/d6UJcDxXQ90osgS9swyQfuzhjHdzHqUspX2eBtH5XvVqwXRH172g21jxSU8bmjtSbXq3e0nt3V3T3OF7GDB1oL0ZQ3OHnhOHsgn6+6G5gwfUGPKgXx2aO7BfgBQFvWloZn/O+ALlhl42NLdXv/cl0PrcQd/tpHdfMVdZPFqYfXXf2Vy/+VVVXU3BQoVrKFKsaPXVVqcYNqwRB+yUVmfCanPDQZCi/MNZUn+TRSHAPqIuNJ2ob2KGSBYNX1xyVbsG1UpopdII5csJuop8AttH4dEAlADOiGm06SIRchptvmiEsS/a0hGNuiDaqjPCvCCy0RmdviDGto4YrAtibO+Mxu6MtuM1RzidMXZ2xvtKk4vxBQyGVrHMXhf+ooWnUboqylU4bwNu45C2ZDot7h8zZ8laebbsVeTOU2WuHDlhpCYgthrcPk/nvXViXk0lG7rGXu8eOfiKkC4YLrw+/3A6BPZR2i429CgNHb/6GOoZNkxRUeMTHasCqouhtVuAS+A9qf/F8l+DBpVXUkE59V/FZdMukeQXJrl6PPpH5eSTIrZAhM/gwADaAx85Jzsu+5XxLWMfY0fHW2+PnMmBcWQQOYf8+PbAl7/C4/PWgR+8oJ0GB/jmkH4biOft8M+bNQMXeIDqkwPbwNe8Ff7K2+DPFIHvlXYvtcDtTzLpi6jqRxN5Q8oSG4zV6Qqj9xW6Kpm2ZNAujm/Tv214oT/ac1qndHg2elYXOXvctC/sv7wdRr2ZrnbYaHtm3vhk37renmv0q7OBXU5t0At6zuuWv6ytaIFWa/E2jvYb7fBrP7LgMLXifLKv+kTGM0LAA99YsZbUCh5FVcL2583gVUsn/W8d0L5if9dCn0k3tnWrHYoyt7DtefsCw1DRCX0MRD891Wy7udrvGmkv71CzPo20YJCxueqJpqmOaseNa6BKqXQiVWuiVRWpAm25ufU02xM1KkpGlRSh+GZrkANCYAMZMJAEECByZVTQkHzljuSQTSbip+RgvqbzW8vmrdeQqyCtP2fKw3JEottN9kU+SnjvC7YIvJbbU8uZYV5qAxSfwLwUCXGOiWEVOimGTp8BxrDwAActXQVqWo5Gqa+VGrJ1kShdByL6t3tKjUuA+Rd/8bPxfg3fvk8vePU9F7gz9gTNt3+wCyU7UpYE3Armmr5z2zfn/Bpl8ZkTJxvVflaUQ6mf5avZF53s3ogleF2TkI2mZE1Ml19nVXQajgJLk1qnRqTpAxLiEI6awduMaYfijrBhQYBBwWjZm+a/cgzMBJ+AiAVbCo7UPHgbJ1AQjVjxEiTJopVPZ6lSlarUWG+jnRrt1qzdMad0uOiKW7rc90iPl97o80n0dfEn5yE1O6x1MIFiTiSKt1c7YACHXGev9Zow+xLTx7qa48/VAFYXka+zTyCHRk5oWyCr2QYnUOnEIW2fj0aA+STgIEC3HjIo0JSvQWz+TLZJ5T5FhDCCy8YuTmjLDtMIiRlL8ro2U5AW3kZiZ/Z7qmRNrLSScVXUlgmJQoa5ycZOvL7NrJlS7mjOQDo9GtqGCC9XNzGtRYFhi2tLnLWaN6QZsSGCrHzcRhS/lSWWHXMOAsRbx0QcEQYOggfXa6NILE1zR0WaJke2WLUz7bf1mjLaOPt0FQRKSwIzbpK2uqSW2YF/b1pMRCEWrLYsgLc0fdWAaqKlg9BDD04nRpW57Ug7aViJZsOThBxtNFOBeDBLI0w1HJcFtlFcyPXjazw+H8P1Gosdsb8gOQqVur5wu4S2EVaU5mJiuR1cc416r9U/mGLhUY8xLr5J+I2VANNoRL36trZyjwearACBvoAA/gt4OnAQ8T5yRFs/Jr9/1OX3f7Rr67XqrVEpsNRYzTJrZJd9xWaZbNU0e5hs7P2/0hpQ614xXtN57sP1/7iCPM1843naHMLn/5qyvE4rI99r+rD8r64z5tLzrX8BHHwBDL3QlZc780pGfK22N8PDtyh9L1R+EHZ+GLZ9HBo/CVc+69iXoeHrtn1P7Y+V/VTFr1X9xsbfKP2tlt86+zsbfq/8L3q2UocY4xgbGb8A74b2ALxsQOsB0HEczAQG0HODLDDIjPiO4j35vare0sGw/b8e0B2EHCo87DmTPpN9XHHizxPyWfkc6hThtOy04syOefJ81ULWWaezRed9Fn0XccuYFeiK5GLmauQq+xLlcuRV6nXFF6brRhd2C9wif6Uwwe9U3fW8l3Ef9jCY68/fcf6ei+de2nbp+p4dPTt77+7b0b9j4Nyrv3hx70u3DN84+vc3x8Z//TZflk1O/nzJL3979+/v1Zpj0VYHfr7t8QCAJXjX1nLZ/GGDteZ/hnJoDBtAXgY2AHgedhIAvJsaICdB1j46DIBX2hOAgdwEjwAebXqj3fkuGiPOga31wPK9EMC2383LoHcB5vtvJuA4XOiDH+94B+EAZ8FP+CxX5SHAMx4RzvPWAHrUV544DwnboJxBrlQxwoznRkGMgOECAAKCQJcuK+61lyyy2ovndO1FE+e9sG8wSUqoemJN7fk5nX2eq1RzrrR7BCMvPGlsZfp30F0/Ph95cYvOVnw6UDWMce/1c4AB+k0RUPKSo6HrJv7vkr5tnsuLwX5GFFH0nJvuISa6IARJsAjblxDZneyUPaNX6rV6o96sz9MX66v79ntywyve774gtZbW4DguvNVraX1Rc1bhLkBMBH3a03q5Xv2oc/Xjugha+5MEqat3V3pi8e8P23Ik5UpZUubUPoAfq2dzzfxsVmpOamvvGHuod13v2qd78WcxLPO3w0uG1ucj1tCet7uCa5YnpjnzGZrZieIXspSceD+U0J3y7PFQnMei+boNsUufNXdOYMLAb4ZF5LF4THw0GojR0PceOG9I1kSUNqVvlEXqY6M2kRnu4B0EIWR6JmVJboYxhAA0w1hhsj7tFUWZn7MqsnSlyL5sjD6tnkadH/Jn2hTnl5xJY5oj1dyvCXr3J9BMmLM0jMRwTkZTUdZnvGAhQk00oUpBkqVINVuhn7qtstwKFVYqV+l3m22x1Sb77HfAHoOO+dNVf7nsUv9yRa9nnvvHF6/4bImbA9CDuvbGoTt7ItKG0UU1j/JgHwwRYqEfzDFIA70aPGZbKuQMlup5E76Hznd3FlwAr4YL4T/oIve4J1wMX0KXuKfj4NLw8+n7ujXxOGCsAJh3AXQncOCLCBx7HWDPbWDHDIAdwFhPLQxraddMT8GqSEXlVgiVhAJrk6lP7aabqy+wVJEXhLWBUlu4TM9U2Mtser+IsTPFQcAStlG0tg7eJun/fOm2Zc+PYkwgdAQJgGV+q1ZEEl1Y64nSFfzKhYCYrOkmK8pakNaSNSvsSZWCjQBJDQqvkoI9SASGMau9wl5ZrG1N10rxQdomiItMQVeURBMfUxLZJsyQcosQV8DTEP04mT/fBLAkSHYIyIk2ZbSnHSORgrz0IZRca7Or8dSl28xCvUt/PVhoc3fBpneIm2caVkGMQ7UvlaXz0wn9nBu36jtGiS7giQ021T0jNKsYqWdvkttl1FHwQpuFznM08S94hkVXjDof+4W9tPxb2cibO7OURDFmwUgmdKrrVpSzPFfC6F75kVxYfJIeLh8E3Z1JLierZ3Hd3OLFYMxsclJmaN33RgLfYp98veSrnA+x9JnALu8s+Cza6hpBug+H5VmShbmCFEPwkCzmgWsJL6kI09EEjAyEpiEGJiPVRyHZS8VgZfD5wCzsKOoHDXcxFQZYzPorUEgUP7tKQs85xU6gB7nfAb2tmSa9TgjjUwnK41PCAkq4NvkbxpH/uVOR0NSXfGpjv0CGe+wEeC139SI1+j1M7Hn9qV8h8X8iR8JS7lbZ7UxKYB9enscic4hbQqqcZkfpUkr8aFlqBxEZWhT5mOOhFtbAgZh2Nnhzj7BuVKKqU8Vt69SX2kp77t4AcwfT/SH1wCRB2fipHwp30H4hRfcFdaQ92Hdt0keeBRLDrP60j7BcrUANKhU2/VTkbS03dXmQz4uv7UntiKfrCZqV8BfOBuuLfTKXKOFTYh1WXOD5pTbICFcZxqiBcZQMKyGxRV2Buy7Xn9q5X7ACeVNqpKIdmdae8t8g7J9ixO5F+NJnhUMvI2MZW3ZFYYjFWaAGfO/J9HIoKGfQ0exHQ/wUfsGmL5ouphGZ4Yga3SlGeeaf3MWogBUIW0OdkvZzESbacovlIYPQ94jxc/Q4k8meYoKFkJ6BZqDG8RZMOg7r9kxhWs8VNbjrBEpFT9UHNDJRW51Lh6QTWelpk63E9Oid1jXr2GMISDjFT1dKtmnpuCg2agvJmqYkB4cHPs+q+5RyeSB5DtQWitjRHPhxpCcwdU7XFgQsq1jluxUooMvF/sPVbWcoDfu19rHUJfZJEh15h0l3wQ41HFeX1B170Zu90wlJTmhPx+UG5ypDMqBekgi5jWogN3iT5oZgcsFujVpxX3K7xBRMLcyW51CzE+rAt9RbDVLYrJ/AFwazh8ke0zVJUo7SPW0RpMTThbGbcxLabNoBt5lByWNMs0hCVuRWL0moQ+u7CGtb+hdT8KNopiMOPktYdoNkne6Ah1rosRypH7nRsJsNmOaUb2JpHqIkx3zJr8VbZlorzEDzYaTl3eP6yBkv4l3DDNXFxOUXB7+9IdX6A1e0w6vcVAusq4dbnsN5MqO6T/n28E8rBks5Oju6I6NgAcsQQhFWnAJlYoI6VFbNRhhYS47nvhYb+vVXyJA+wMLOTGfxxX0sj60N4lTkKu8W2gxll6CEDkpo0S01Y33uLdQivatHu1lhubO25NwOowjLIKpknUYFL+8tWakXaoPgqmYUrHQ+Z0NiZ5rGKcZmh+q7HYMmytY7DUWY29XQQereiga4kN93gMJAIZRhOmlz7Dgg067nmXoZClV+nxFeGAkA1jHy/NPHwqmrAGvsAdqSe9MsphSOoZW91bMqPCfKRR9MRzG6AePBA02smXcrYxkiE6fWcZ6D1YF5M6BPWhsutJNGoY7qj22tAG8jw+6qyiTQQlYmibqUTaJQ9zlhn/b/Ygrq0Y62BUx05UWvGw9EecAaR53HOUHEYbXdSjQxyBF+URdl9YbgqVhb+waGhVHf7TVKF9LRmaJHzbbZjgGNTvTd9Tjy+66GG2rUr5r6hD+IGC/1m+Gx+b+QuPLFA3IMPrIQek6H61ybdKN0ACQ9ByFf7RB6YWFKHc84JbY8STictLP2b343R+o3lqxQsR0WRraiwlSyloyVkC/gmQNirA4/YaxHQpLBGg84NZJSlF6K2AkUkGD47Ag3pAseXaXqPJqEx9LiCecc/dRsg6dnbGOWZ6brKLC6J+yxBhLixgjuWEdXH0ki961kObM+2WSghBINPaERvSueF1M8FmvW00XdvJrmVDCPJfW3rvWmnXtmTJjv3G4WLckClhNlKM0PB5xu8jzVuNoMxs3UpJ14lZjS4xNq0l8Jrv6qglWvsuo1VkX7Mb3W3zDd52gN63za6yx7yIPcF080p3AlRBU07XwIJPHuP4IlPHHGKd2TMfYDHs2nOeXp51RKcmIWPRArFE5amyP1doPQ25n0yLLoBaQfdrMzTX6EepYzURvF2H8p6YP0SoKyDPzyKN3oyRbOlnwmgD9dLxR2a4cSG/rnTH4HStszldiCa5DEv/PsCS2vUyPvbtvrTwII/XRGf+rxBn88WzKUJoVWsPG+/+Uji9ajZ0jLuAr/GnmChXuVo5Agmma/JURGoXyzXRi0YUMoy7O2LcTBKa/N+xBEMPGoDuE7abTyYeayQ1psMlAVPFB4aJozeypSXl/beIQJPMgrvt0K4rblkADuk9epIFIkHfzBfg8EuIknlK1zpwipM/GzVAGgvxpb1SsOduEJrSkrk4IirzpFrV06D3yYcvRUmlOTWISN4zoxqKuqBixNsx2Qnq/rcJYm2RZzF2v/2dMPuFrPQiAHtYKDGFAEwM64Jmnq00REqsb+tCXUGt99VU7p9qJX87dfcmfuQGZTeXu3Vj+E5HXHvn4iZcAwZfpnHLMQkEs4X1c/okAErm/6ZrhpZtu9uTVrpjwrUDH2/RDHzz3q1DsEGsZKJ9A7/Wi3CV1futiWVD9ShGK+0TRuwptnH2lndm/3n0uIoiKs6Mx0IouVdbtNsRYZtzl9sMO1SoEqXDTJ7i1lfjpTfcnR9yZhT6cAsQOPPYtMn6dk86ihf1zbfPEx9wX7Vy66u/sdNdeFLjw1cYAV53dN5PNIGLAPZKY364jsJXv3m6MsG/iwe5wfMksYL1IhxQCUGtk9bH2pcHs7GlSrjXNTYwn61I5MJVPyNX22qyn2ZkosF2TQhRbILb0YO/ViEPgb0Z+9kqGsPpI19hddYiv5+azVwOvTzX0aUEk/FPwv7W0fDv0PKDnHWv/fKh0TlE5cF2Jc/8AeSj+t+v1U037t+/kRH4z1uqnWat8rYW05eEl8/4O7/m9JaTc2Gc6i0Ytr7rdu/nt9daV2Z5A/xZz3jV6i/uFC2hqlxo5O/DsBNgVfMqVOffF93dTIjw+a2wE7Ld3vXZphdOToCAgD2zRt6Lo860ShGK1VpCA322LNW2OF+0qLJSefSI9lTYqO7jRkkkjVrSSxdC+BXptEKqFkNhq6qSD8Z/FS4JmDqd//sDc1cH5JeRU1qpPPbi1ZtCOTVQqawS+l8UFTteVSh87yAW1IMfgrqGS1HWlxi1J+clR/NRkYvpgSnvqxtdR8rk0N3rcc0UzVP4YdP0D+8M0uauJJr1wTsDA1A7ZJwllkU7feb58a/vRg//9M4dSV/6haYgNYT7e/EjQ/mfrdD3oL+M0vab7A7quVn9iav+qIJymljPpAWv29xmrL5WadxSNhi25JLl9tbD07kTA2P2y3pVZMX3ODbUNHeq4J2wnIhLRps23rpd8vnotcpDcbO1QlfDTN/ov+93+7CKKnb0Ric/SyiqpzL//cO93leTGA/BD/mVFmwpi7rp8f3OWf3Sp0PWAHtoJ9C0p2/HpweVuWr8q7ZDnwmXexr9o7d8Vx7LAdsDDFWKGgFNdiA2+TEBPaEdzgV3jH/g5r3GE7ywSRB9eFdTkTtjiZ1aIGVBnBiud11v7NvBqtonZDmG7rOeuGUL1qJ+D5nre5SCcStRkHcdXb1yrWnSWNDkwQAZwEh6h95qWA+YOpP3yvpIAzizOG+406y8VzRgicofFBE7fUobPIB5mrIQsHqc9fgRwyv7ptalvXo/YKs+MtJv5I3rWcgeCMH+x9GHipK7hnMBQ8eLH0qGxSrOmkI9u4XGRrF60sBlgEwe3bV3Y96v895fK+R73n+8EExXs1BV8u4MaL3KN7pts0HRiULo2HquskREu1JW/kfuEIUM7c932eYWG99uI6VmZBHywtdy8qvYxGoPMMsTSHk5Hze8CV87t1Tec+5HXtepVXd8K8eMG6YE5jEHcl0QpwVLGoASba7b/UBa8XsjuklbqLv/wILCHKKcnUHWAR2AHYgfCX0zHLlqqf+h8sXs0XTcxkVFYezUifyL+6+KC/86e1LfDGcNzvSbUrif5v9DwkepEWOb7u/c4E111yTRd4F1VbCN49XgM2DCdbxt3Y3rMk222teWj78dWtBJ8e74GVsOv9u9Zmgu3JmlUXg+kZ3/yYpSDkoUO7v4MhwOQus/v4LXjcV4Vq98n2fHrfJwybkBEp+N9QcgVJ4jDs4/gHPizHNt+thCdrK4ZjuRHcHwIeR3Lj+IuWFYCb6oMufgp9GUEn7/QvIvsrKbtDyZCXT9ojzgJ1dMDYi+Dk3MZIFEVgMY+FG6e4zY7mX67FydthmB6dek+wnYJRF/lhWm6/Qkwq02H6vSkbsq2rbVaWW+KixHlRVLoyAkd0PIwIzO0umQlLRXS4NtBSh+pfHe+zhkYzDfAdIzktFLwWM3g4xV5kx7Xa6b+uGIomIuPiKXl+4IGL/IhYW47eSJzcxmSzkmwKUEfac+Vn0d1ZlBFBrpZzqJ+Xi86HUMmEo8Eu7Kqa0wR15TKjqts+wxPmy1CXjSBzeIfijHXMe4Oks7RGfyYLmVbHzclppuC0mAxsZKYE4DsWqtenTu4l95m0t2UwVUkt28GBTHktASsMtT9yFLBNYT/bkAl8Pb6w7a6x3Ox4a5n53aKJvbK2YtxiqRq70FYozzPm4c5otfjzbXK2j4a2tFnAVZNyLPredurNDx/Urw1/OvUxOgM0VE6JI+Fw+EIEHgcTuMOLO9XY88UK7LlOVTEi3YMQE0E6dyjcgZiqLmN2BwKkhfFee5n5icPlZvekxkI9HsP3sPVrB2xT4Ii9J05YQ6DtlRjl+PNaLe6MMS9P3laIXVCX4hbbi4HKYv+3nbo1h/dXWbwu6eMdjmurY90bJOX0mbPgCszBJnFubmcWyfz+wwNcSTKivFsfCXNhVelP4UFgjmhg54DN6nsfM/m13SgGkmWPiOi/e0PBIrEZN0DWCe1sUllecHe6Hkcpj8lqPKxvfbk5DJNWk1zQeE9X9XHmSMV/958zFtTgsIKQzSdnqrpqTz3ltOVLjEL80coy3KxRkidvL8DNFavwM+1ZgLF9RKW3wXC9V+TAuVq98qBQtNBxee50bWN3KV2PTTEA83uzIrDh7ntzR8GXk3q7aYW+E95UPJcFcL+98H72/VNyi7CQCCxMYcA2pRyS63Vb9oF0iKkgvnvLzYB/bHfFZ2ka4gmVPXscKpy3smQVPShe5ihLNF336+wPFU15fFJBUlwh/vHs/5uizECVJGDLeMvANouOgGQXRE83mp3MxUb/u4itndmvN3/3we9Vdquw5xRF2MVutdLRn3cwXA444GjIPpBa23ztMsEDfWoLzLL9szRb18+Q7x2fQfYnj3pevOcTf7KPvHf0sLWnZkSSY5/585zyd1+6LhmvJp8DM51UJ5JV9VszDvo7CRo4OaWt2dg4Opm5ZT6od/uuHo04f+cCs0y1F5NT7kzdH5AvzyzIaRDgknjETMcpv97t3T2qLEXf5TQw+3K1YnZVXKO7LFQdKtfqjsp9bbtMjl8a0OTPr8oaxifH1a0t+cr+7vragwKClIBQJ+c1dWiKdzbI6QCSIxpIHpjcMBtMSsDgN+NZvr3zuA3bf9vX1wKybKLY2Xa9QxPS7bcxY2ROdNTOeczQol6fSzTrkhLqKxNIZE0ipk46MZsJ/6vUY9DX2KKvyg0sSuwQ0+XbQkLUYQY9saPI3wy8cp0VXfphA0QC+8I9I7kRJsNXslQvFZyD/nSYaKnpg1v2jn+0o14efYn/qmWGD8vLpwNJEv7RDG3zGkj6Ry1t+rBU4+hk158O5IBRv0n7VP+tHP+pgH0OxPHNAqCO1wGxNcfU+jCaRe0OQIsC0bjuGFb7w1sNBYbZ0ttjf8EY5DZ/ZIY/EtsWzRj/CxjVIYO+hTxrPMmV5iV0nc0BVpsXdeP/TfZTz6rnnIV3nKikOoYWjrUBujK/KOjGjEl8J3Srx8bSSRBv6FoGC1MrY3anHuw9oS5Z0ZSVXHiyaG/NRI2kLRGvYjLxZW1ISQ14qrSJvz20kLfdHmrT809L+S9DI2U/X39Ky9bGctiVm7YJ6m8/v7mHQ9BqEz7++S+pwSzPVv5/SbhzVGrMxI9LRMi51vJiWascM5OXteNQqxywH4F1jYVgXaPP0sqd9QIWpny9EteOz6jHwPZzh0yF6ES51Vd6bkc41SNMbrsqwVzyeR6ANOObYcpt1z8KwLe6MB4510xsf8i8LvPLm4UdJacEmolNxYfdtsgbqvMzqsixtWvo9tNrkqP4bHiGO3uDi25yfWhMSNJ0mEHb0BjuM9IT1AP4/7s4oesUrAuWuT15JwK2E+9zhDByOidB6YOsXGksslhpKbJcKaxEFXtnxtYSh0j4G4Tikw5nhlK//4EW5zB/UnmNDAypE9+crGJ//LXO+WZufPzbuSrOr79Wo93JifHC3naa1fkOmnXv2kKDd9A2Lp6hWSXBsnuzHor9k4cPO8/qi9wfwYD4R2cmr7AJXomlpiirE+gcLQatZZ9qqLhyO9tg+EKhPlvKiO3rXqk3YvnWM7tBgfnOV9kNx9eWLlvg2JLWGI6oC8kqpTDolf3YoorxirSGpBQlhYgsLEtgkBti2LlmhNPm6vrjD7PrjVeL8ufkuoYZpbe1yLYxBbdHVFm/9E4BylSD/qvrVT9SPFVm1rmT+tB0QHCaA2wTsMzrv5RUnVirPGOBouRp40j8NhZtl0jM6u1KFWHbg44fd0h7tWmyOPLE+nvScIrkcIq+ETdX0Fnz4kUJKExNn0f3jQo237oUFt5hupapr76UXX18s3rBWWysVZccMKT9c9K6uojbEkqpuVOte95lrHr9qqx3gt/JY/WkC+i729P4GDUsTRiuQXEZPZ1CcDUg18v6ny8uHg/geINy89738pqzFSLS3vp8pu36TDf9vKak9MRNiaGelkRzokRTMy9zW0+3rV9A2SuqqDv7Xr7nQHYnkqqmsVi6boJQZJyydCwaRd2NzF6kVSThlCQSurAygcE0BrqQ3pwxyqokwDfXX8quPrlZc84xy1ivKRkzcP+dtdYWcZvDqTX3dLrnncbqt6/L+swE4HRe77DA7lZ3WES76Vpm4SKmNDpNGKFJTmXu7hAK+R1cVo9QQN9tTAO9ftOwgvPrrzXO195v5ipDFchxpo268fxZleNQO7uXznyeKsG5vf177T/7ztIyVmZUZuRo3kv8d/FFu0Pye3VAlKf3jPUQMtA9vp6s4fzdwXyR/668t2UZuVUOK3ogDIxHOsJdLyrVpx8/dfIUGDRUNMIkHC4T66lLV9f05u8KiYiS9xpxTiXkzT+amnQ3tzvCI52B6YFUZFSCjHTN27y2/hjYFewVRTgJ6kIAcs133SsoOaPKorW3VXBRT/eP/R5MgeFFAgaCExJKj0FE5qYVwtGBb5CPYOM0sa6PsIeXzes9wFEU70tN6+JhIlXczIGApwI0UY1NwSqqE5m8MUJtE2mp/Mhu9PnUwhsJBOpjCrjxHC5+HAB3Pr7+HYJKhWs1AkFB8ARYlq6poa0eTt4Ef4xSKSOiCPFHT6A7t7FFvTs7FeOP8uNVpuGQOYVwTHxBOD7Pgrm4tlozsyLU1C3myI6XVMgOieN+W0TwyeNtTLspfpbe0o3N6j3ZHEyAiAZYZK4CjvYS8tZ6tZpjH1W7lCs7tiXSj4L3kXKxh4IIglo68Eg0lpyjIhIrZ8hDxax44k4DzE4Ryjk+o3tYtwIyxNxTheGRNjU1xUwRizI0U/OqqImo3P0vGla0d8ErR7AO09H/Glhued4PCsS/akfhygWdvnB/H/9jDgswvkir+PZbXerTe0WMr78P19695d5w+/U8j758h/uYE80FaliFlzClff3oSrHScKKe/7K9UX5nobJMXIMdt2KP7EpI5iFTKNkeX45pmV9Pzv8ff/awjfTslUzPU2cyPVdWh+cu0Ps8ynyvBRpNXZADzsOETA0lZkhTHt+oiUljqtiJbWxhxL6iLHDFLtfUa4c1Rb0adN4jdN6TsHkwkQqObMZ2OPfyHXvBua3aBxn7DwreGAxaav/0A5G26qFobFro0sK3YwdjfuW+8gu6kjv6WiJcKC4vW9Wq79Tqjc2qwfsjr1B15WZR1boD+iE3v+LGjeAabWbcKBL12aVU1Y2bEIRz9rT8Y5+uBFzhJ0Dczu0vC1pU04emrXreTk5PgqQXtfkRr79s6pgAKJ4QADxaAzpSzmZuN4fTzeVxugLH5XVxOB6X0z0aWJlv3RrTmhYTc7ExtwZx2/qtDjEXHMpZZp+Ocr1e5Qqg1kE38TMDPnV2PWirb615kAS0qlftVo4MjnB18Wuedt7QCNx5LnsBpHStT03tNzUy93yoq3EkvPqiqXkCUXtiXAx4Yfbl6csxu0YvjYJtrcOHpw8DtL44qh6hKqWcuKgatUoVhIW44WDo4PRBEwtOocBjKGQ4nEyO0Tgl5vMXlowAisAhxMpIcBMzdWwq3oziT2QQ5POXn8Fk3Zoq5p7GZCKxIpGOo3yGJuF4aQfWVLL2GJKJ5CokOVn0FhpHYgARwI/H2w3uwBwFLiGCbAMdRoKV3g9WX+nsj7//lPL8PTgjtU7gHAypdumeDbz+KSTp6o0J7IHWh6pJIEeAHbK6NE3zC6W540Zc+5e0JtWnHArVDaG8h7AQOCCu4walWfOLmgiVb5ab+KOjfFN5uQpBiLHyiizwGF5eW+UVjeZKZSUL3FVZcXUj4E3+6Ujdv3UN/96Ub/Kh+MYQ4+IRTHoA5CJv1EURHl7iqFgB/7/ao7q4uqhMepRb0msjPmab0pDBJpTh8GUpBLzG2BPYapEt8Zi1OL9/gistW1VXkiabRh00d+4UOIyOqkBCnG40Sxo5UnVfMDYmuF9VxQILPF3V5k0CoqMWvnPK2t841pj5jVOkc4ZzsXOmc/fXmV+bXXxlnA080InpfTxBnzBd0N/HTxf28vn9Ps7v683z9kSxIiJYUTBnsCLJYEd2BiyK3knYEUBZxmmOoyuZGZLc4WDWetr6LKtvZ6/FpJFS0ySY+L1QL1KJsCuAHF3mLE9CK/khE6oNtcuYBAMxDxbDDpcvsDanW118boMMkRQnTgA/NFWfLZCs1NZLLpzNr65eyM+7UF9rBBxI28GSU2F1NFpUfT6NxYzxejotFegtA2S+ct7nvPbjY1CO73Y21BezHYoGdp/Oje9w7q+xHM5LYSg7uvV2o98oHC4eLxQA1PRgyVr26JMK5d2mRqXpiX50YeN5KhX7619kSMm+lKxWB/HeAGe+VK5IV9Jp8IgUfNQWl7HP4lxYaUIivDiXhDX3DUSglbSOGwcmxo7vC+zp9fcWCyQSsYyTEh1BJET5uoyjoCJJpDJuR5xCgkdZQL+WUjzSIkWZLUeINsZnPGcMIznAE3vuqsfYryy3RCbK3wP34m/wijkafKR//WO871YVWJddV8Wy/hx7XhuTnoTFc5NiJkpONXf1zjZIvbcmR5NyBYz4PsW6uQqQPVaeNRorkq7BHnOSRaZQsxLDIuSJQnIVmZKdEB7CQWBwWTHuk2BLvKwvXpTZlUDLQ2Fy+Uwry/nWykwKVpi/PwF0oRamSl0UNPH6dppudDbc6+3df/9aZ/2dvkYysbOphdhNpn/O3dncTOwAs7KDg/cd2LCs3rtfC+SZdtDQOHZoGDEqLPJzzmDhiFZVuac+HeJF55WlZsjUVrgmIOex6kOpqcQxKd0rPI6GCIXhMRS2jg3HJMGCGyKC0iCRAwkMQW0UmVOyIz4HjiOkP7PibGBKqNmH6sFbxbXoENky+mr6xlv0P9qxQGpvMKiLp5THYNODBiMwgUHxNFJiEoeN3jSrbPeKrbjchHU9te7pVicIWYPFVFCo5EoDHnTwQrPdsuk7hmp7eMs9Ah65Ip6aa4UcfYuKiCJlaLUbfdPhSJwKjS2jacYOGOt2sDk7EmgcJBTpexQnS80EupiBjR1liDbuKCB4wtY4siQ5wo+Fiz2zYSQwJ2EHPlMLZ9CrEfjMpER0tm5Db1BsICsymSppjeNrMcREGIKBSdxBxyBgKYlYGQwTFxmJQsARSERkZHIc0LAoFfEUqRVq7z1kFCySDA8qYllh8uKTcKUYbDmVRa1rTeGZ1cx3yaEkDzX08VZ2CTi7glGBfmgfDFuMQTJTkxIpHEBe6l/jz7pf4VcB+oYbIA2g8JjeVm9jXsKrAYEqDXoFsxCUvHNHI2lbKdrdmDgRnr+TUEr9BOKpUUUJU67NyFLiNmTjziAUesHvCreU/IlYBr7bENIX8pAHcqW41XHtaqGpniknbzu5I6OOmdzCpDLRzY8ckbiGiWpeVCe31HzzqCMnStHU5HgZlYSUJVPRSVIU+gXpY1rLRJ61Y5MkRMlWDZ+MkGsr9sBB/fMyI+MxDHt3Z11gB1hm8IbgnF8StrrWuuvMeNRSuh/KpSvFxWUPscosnakEqRXy/ROVynRbXldUK41Z6mPaMNcH4AkcELWeadt7tkCYks0UMnNNt8m6F+4FLi1A2h29bNnNwnXwjeuCYgBcX8JrQpmdl4eX1x73A+N1dDBBMkSOLQcx2M2dmC5kZjOFKQVLTUzbLhuIJ3Cgy7dpPgutk9YWRbbCgWtlNIJ8f0AYlKUg8Sc2wxlYPghLwZlAXomlSmkND4/EtrM7vdZ8IvIlGHfiakUT0nsC/Nq7Y3h5WYnO6FxDeCkdHHCWr4mWg8dUdDJjbPuiFJIWxW4TTV8xlUDgg6sE1n7sQpa80wnx8r3gpike9ZxeXdSDUj6o4f3uI8C9/7inT7wucSwRBum2ybaoVlqX9XezTd+AGWg/YR/Yzyz/+3IdvFDq5kYQydWEK8uL6/Jqs/+usIUAFPBINswWc5SFgysWG6EIQ2EuCXs/awJ2pQ5RKUMmMgUTBSMjMiI6B5tLzY6zvo0/9M5qQ9vaoyDVfpxQhsYpcRIqDnFCioagmFVqjOroIQuDEQjRKvJPfFKAfc7PzbjmsQv2Ro0xiboNsZ40DYzlMg38MARyCM70eJcRnpppziczuApGOQh7d7ojsONmr3HrtRVzELX2T6BXCJODZVUv7vG/awJrLsMpnOWt14xbTVyu7xqduub+BssdocOHYC651dHCI1aJTRdrklNWKHl24LB+yT614rFzBL0r1QJuKIb+0YnXL/fNiRPJQR2MhmI1OQQD6xWcBcLVtTzku7vLeODcKjkv/oBIxgObOSzvs95udJh6vblJEYNpupH9LjDMAAMASBiA9Pgl+0S4DZq4BTFxM9LGIUR1lUReAai2wgRfjcF8XAWRU+3apwhyBDCptsprMGlWFIgvwVsQ/EzJsHQDT80yOSSqQoO3sN+Bc8ai/HTgEHRzAOTUCtolBANv9eF00Sr+HEeQByZtUCBbi2UhTVoRvVcodGSYFDaw1TvSTfEMR8UlbpEe5GbI5pCUyW0Sw62SzUaATuiAtdR+oUXqTtH+16OVPHjslDfhU3n3hs81zhNMmXFlbmZbkNtSgG8C0ZaD2hD2NQSCv4BUAffl4GaZgkPIVm5FsjgGxzmNLC4mFlJLCAYtfThd2I+rbUSG77IM75nzmtBG3uiB2MbrqcP4TvE83jHx+FAJhE+V5AbWmiRgJqm8FByAOm6DP7kVEXIM/liMLsY5AT/tDCJKvQEZJXWQydus3ciR2zmgnbTIluTgZlncBpDXU3Ukld8bEqCrNiN/EAcgnlvhsG1BFKkN/C2dYRw0OgS1VN2/EAoJnlUp/1YAgGwIVn0RMOC7FIJ4EbeAkiNIhm19ENUw/GLbbVehctKK/JqHSbPsoKra4CPUjKaQ1Rkyq7hL66uw3m9EKGqjOTRpo6C8JbMhaE9s90cqtBq3pz3hZmxst31VO4Hb/E5x+GfTiK1q3DXx1q4Z7aBMzey/tyHjNjE8aZFW54J4M4ekqGqrxK/pR9ituUm2h4KB5lVWa90QfAPEDNovQEx7sDgAjp1s521A7k7JVaXI1EDo1PrhmehUR/a87/At/Hqj41egFmhxY+1iQNwNgmHQ9v0JgsBCWutJg9sYDrMQdGQrFP7bXMS9OS4iyCrAxvwvOxUDjsFbfZluNcAnviv0ILznR3S/g+RG9ztIvn+EAaxMt8JoAaF9T9chRD27r9+dU250LuawITi62o6mB9vU0ynq/Uvl3d33ogbz8WYbSC6zLcj+dJ1xk3mDevS1A6j/NIAqjKIuZ23r12BbwJYqYYs+EfKjT+E96h/hUb/tIKfjZ3AgllEz4oqbJ6Anc/1EoUd4lsazpSNnBG1T/PJVwv6Cv/JkMj0XbvYCGBkfcibnfawLOIPebSlNnMTPBw3ywUuehfwPp/b9djyOAEYay0o84hlTcZu9SWlBMuYPprHgs5vX/eML/1aR9FqsYpYseqqcWsKlfMz4oyrwZ6Vzuyp0qywq9eViitnIkp+2QamiG2DyRLs5CApWiEKZ9CUThQH8EKY4FqAZxB+lzNzdQyGvqW1qNIDJXSVHK49SgqdMhDGHpoBkQeGDublAz4IOFqr1uQZgyuFGxN6klj20YiarMoBDjdFs/n1caOnBRDZBbbXLuo83Ggdk0sJsMER2NTdbbfg5AGvMkuus0B41RXmjhy+2YrtnS+zxYMu2hkHa5+/5+/6Bf+gf+cf+iX/qn/le/9z3+RfZ/hthKXwvvcNY2NPC+8xzXVzxIXNefOCT87HXPZPb6rQICGnTKnwytacVrDmwA95Fpy5nnfOfbuddcNElPeaHerMsASLV5UfwAQCXx9vaqV7zBTPfJHedvRBJSFcfSzP//DLBvztV8O3BEie+tzm5crATzHRbMqajYP3HuO7unzNTAADo0ncbKQF7CgAAAIAHAL64Oz+5vlwdiesBs43t+ZJNfetigqGaGHlnSaa4BMK4+b3mgupLgi8EF2DL6y2cW7C7LwywurwwufKZbVU9Y5L0QfN36F9qw64W0re1YJ4R4MiHyO1uZA3c49/YMwYJHfA+qYEocE91wFKYrJtFbiVfZi3kHHxTgf0DhsfVPLVWJKsH19KwKT+Fv+gU4klhBmu7lnR/iUqJJIWXJatde7kPEWxF93dyQL4jz4KZ86B4W13/tX0EBWz1LWkNFA39fpLIdSgy2ANcSv1SXuTUX6IaOIl8tJZGeNtoXiqcXPmuL5ltp/Z8uTpjusULQGVStpx1i3nIQ9akPVQSEEGPd+KlW1ktRg5K7pqjP6sFT1hrJM/TAPaiSR4JU9zt21vlRaKvXwqECAhcBsUOdPZ15q73qUiMCnFSECt2dY+r+QcEQ/BF9V3+GmwHbHlZNJgL26W8q7aLQauR0S4YrtW3Si0c3Be6utPkJFbAbJ6Nd0jfCMCRD2EfBnd2MdO6BkhlFyMdDKlPGkifAWC9WgdKs+lL3UgxPJ9l8E54CfXF3eji6lu8gi4m2EN5/PfIi0PrePlRCmlsbrdELT1IoQPpoyhMZWj/Kbw9HcQWDwS183+SrFPjEYimgH1cHexNqIYZJGp4dNkmd/Kl3A5kUNAb+hOZWiQtpSjzPW02P67jH2jlRs6iJVjHccVd+MYgOhEmW32LU+xAWkDHr4IvyF3GINedCD68vUJDIKfgEbFaGGu9PxNbx2XdAWB1J6o7sKN7K0D8XwdTowzBBES8GIAQNvVVBUzGxQTDuaQ1WanhfTAA6FjIgLvzOjSNvE9wAbTbKPnyVH+PdYfZHRBUdwI69Z0M6uBh0KtvqQWHHoJvqjeQV+Eoyi2EfIjAwLJsbtX6jZJ62EYaK0b2LccJtEKGi0AjWCR1G2Asc9BzIjC/+CWgww+AGN36MLem4rkJWHrGA9pdcrnbWU5zzpqlo0G203uds85aVNqlzRVroItV1h0z3KK0FdWTUKhFV/wJBJXPtDHlql0SEYUr92wxQ7e6NwvomPBb871W13dWR9nEJYvWmy6Ol9dvFiRYm9ecdcXwLjZYv3VWz5H84a2xat2wuF1hJGXrHY/XbcO4SyUDm+E5FMNi2ADVkR8Bj+z1a84GctepHuplzuINOGUFeFQ+QB9Z8HW5rumt2ZtD9Tzgsrlh4dbmJRlul9qS2R0Z0+llSYZK3LkG168/7vNaA65D6wrWjfaNVdL6c3Y8XXLZJU31/OaKFCnYsnKLW/N3Nwv4AO84fd7q+tXq6CIj2bx26Rovr3sXZMPavBrWFcM7Gqzfuqlnnn/YN1atuxa3iDE87VvE5DHRVgvNVnSUUtMyaEEz3dOfzRuD45NUC80opHMOBqgXpA5lx+KMogk69dtz8qbf5p21QNn0y+xe//LEeL2Z/TW+gORuJ4PVwzcTHARpksbI5vlWyV1qA2jkAAk30dK0MyBjMcOv7WifLxctDtt3XcuD89/WSTnvmsf2bbZuJepP7tcRZVX6kKJTwmr/9ist276wIvagPEGVGBN7Azv00B1AP7sD+l4O7hEJoYZqUaJwd3eMCz42VvopBMsj3taocN8/+wXMJ/xYwvUpJv7G/n3GdaZKtIDeGpvsdtRl9xpCFtm3NtOwsPnYTNqUTNeYxzfR6Z3gpKe6AE5QBlWjBehnzO+Yx5iX5MPyqIKFybBMLA+r4D/Pf5f/Nf93vpB1lI3gQtyIF+I1glcEF/si/Sixoeu7rn1dEs7bnMgASgpIHekkS8i67te7P+n+qRvnvsh9n/sV92fuiYGzg4XUzp5C3vRQOWvhGW+fcWpoZCimFNJ6etOZP5558Myi+Pfiv4w/Ev+PslPZr5xQUumdbM6wM/wUnvnnu7N+QbmCi+1l+UV16bpgF+pSvUIT/tX6qrqWXBVX823JTX0LvNFvolvBrfLWctPdnBRT7jxv73nilOAE4G89v23iwsTgZN0FKy44PP34ZMdk3+T4ZGKTlVAuzBRuv3Bs08zmDaJFvWt6t/Xu6n029e3Ufak/pv61+czm3s2jm5fB/8TW9mPt0fZl9gb7XfYH7GftL9h/5YBz4DjkOEw7nHa45HDH4ZUjwhHnyHbMdlQ66h3bHQcdpx1PO151vO+EdKI6zTj9LPtPbu2sd25y3uNi5RLlkuVS4nLcZdHlC9dw1yRXsivfVeZa5mpwPea65HrLLc6N4JbqluNW4rbkdsvd9R5UW9WF6jnqVHWuWq2uV3+rPqpu03A1TVpG+6B2Rpele0N3XU/o1+vfGGSGBiPPmG1syViYsT+jOeNsxkDGREbiUpZJasowuU1lprmmNJPUVG6qN71govQxkwfJgRRBKiEGSAekF7IfcgSyALkGuQ95A/k581+zFdQC6guNgCZBiVAeVArVQBugO6H7oDPQRehN6ONXf+310/od8XvJt2WN5ZGVZ620Cq2l1h9sm+wwu9dOsfPsuXalvdputP/g0DncjkqH0KFw6B3tjvccvzqaHZ2OXseQE3EqnG6n10l3ip1qZ4PzA+cB52/OXueEM309XEaX21XrEroKXFrXpKvddc01cwMn25F9V3Zr9unsnuyR7OiNuFvo1rud7hJ3nVvoLnDvcrfn8HLuzbmWE7+5Nnc+j8hz523J03vwnlzPMRajXaL9o3Oia6MvxQTFpMUchNvClfAJhC3CDhGNICHKEeOIS4gniG8QvxdZxJrHeseGxSbGkmJ5sXmxpbH1sd2xo7FHYm/Gvon9vdg6ThZ3N+5l3Pdxf5SsjefHe8QHxMfEE+NF8YXxU/Gn4hfjLzd084QmBCcYE2YSnicmJA4knkv8Psk9KT+g+PuBbavf58RVAeo+1WOqF1RvqT5Rd2LnYLsr+ismK45UiCpk9BrtotPtz9QfY8+xT9SEOa/0MCf5r/k/7tlZJWO/lfvR3mPVVe43ea/y3ux9fO+nD56NohW8AQ7IBQh4AcBhtD7pgkP+lglLsj6pIoUyEdbrwVACfpIhBxyJOgWDSAgh08C8+WH881tIXK/mJYKe1ou/1C3XNFiIkT7jXtyspyEkTJQxBVhxS4XeTZKEmoi7+/+oTeUQXtJsrYEEVrmG1gWGKsQRB5BMW1hgLjR7J01QKZ38azJiJiuzrcQcXw0ew7iGKGApvYfWU+ZcBoRIBWp8Mhlz2ZUlExCIkupHQPIdxASAYVdBgcAkmhSBFrn7uRwAkUmD6acZiin+ELfhlbxOFcnYhOUsEb/7+nufhGeXcGkdEJ8iefEYx2ocU9C2KlwkDrzkO1G9+tKVKObEbNCojNSzYIEmvQJwrJexGd9drDxzsVE/LIG7zVaPJxxYbujPCt7js9vdpnm85X9b9z7CrwicV/D3OtbVKinnZ/49DeelkvgKgQIbzlcn0lRlnPelPok/cnPYUYya/ZkhSX01YCv1oG+Be6G7gUN5xLPIXVZxoo4CGQNv8E0I3MSx02qQd936TC/zLSbUeHZ/3gnZPiqJp5JlKlk0xaK4Ch7m42ME02WT6ih43NCtg6UDGwf5RqGoIeUi3PaBs9AP2SWshB2ZjIkmW9ns2dMcAseD3u+5NxX7JqI6BYuqOsHtqnO4XfcGSlNwS4JFUiD6e4o7GEjK6bOtZkAWqy6bx8G9A77N9IRjrGfghYHypiQ8GnfONyXgugqjWU+TPM3iGIbpuY8xCMFrczw+z0t5P8JsURxeciYDx4Gtj2BNN4DLbmRP07bTtfotZrGhZ7MUrAM216BQNbs1nOTjdpXKqR5qssuTaphE2KCiyGUhFGDuE4JPy9thIeRBbZ5qiKIajNfdAqWHWCMFYTIRHBROTTs2ed69Ef+kmP2EzLquupCLWBBFUr3HWYohZuupvaSORaQrMy1//SsNiZmzqj1LgWWmH/QB459hfpeHLtt3JTIv8fX5PI9YaVHoiY8j5RFPVnXJgIfknSRx2syD8Pw13Td9JPZ/5u4rNz9JIAdfQgLt6omaPQ0nhXv3xdOV1r5c8E/Nq5BllTMm3j+ZKO8nDMX7O7OKt4q5Zc0rrWbxlPQs+zjL2oRxu9qsnGEapYGLJB0Ebs6SuOfk9KHpuw2M3ac/27tzqlBuaPsW4j+tl2npaglr4a6MdazFUcaeO9NAkgzq+H40oNgddr6vgGTuKW0qX26e78LstIeZ0wYRbOzPfY1GMwjEXevql+0Bb69IU+77tiD7D6EVOs7oZceiAcywJKNojmx1vzEqUdrbU8dVARem5dFZ3thhQ9Wp1JTwBrtPKhWqgdl0w2lRHCAbOTO1QjZrei7P4OLeitalKK+C9KQfHtl7Lhz+knFMgjUZiZqsOQPTrXKmulE98LaXWOX3AXt3du18cuP/0C485QPfFbI9/9FNDFJyAzwnVBeentzxB3Mo2ZeGPm87JFPA0nqWo9dxlxzVrZCJQASh0V0dXNPY0BeC7t30wBo9wik5bzej4f2O4fH2MVd4/2BivFqmhncTo6octhrNY+6u+m0NWKAgLSJlpUEHufGBgs1om9wEryTio2QwSK4KITWf1yADrSaWddBIcCTJjJXjM2dN8hGKOdvt2Ogj2GJLfr5+OYMSNjSWD/gQm8ReoABqnBEXnYE4SZ9bSdyUKExt8ux1VDzfEtxzj6BuVtRwsu/adps2LBpETDUyRlce+JDq2x/mrN00rpTUX8XHrpo6DvryXELb//3I4++/0TwE/J4ooUK1xwVRAt/URg5ESZTmqH91pcsj92m/leV1JCIGP0taQaQiVESNC1HA35S8FtQFIR1Y8Cp6CAR6QKJjUc++k50GoKtXxcDBfhtb0XCRoaBC414+GLgqTKZVIlJeeqo+HQAQvIbDE/D6IqDH4yXBmQdCq1woSeDnN67ihfirX6Pb4lTK0ZS4UmdzOa7c+LZGb6+J1Iaqq/w4gBuSuZ7JEFdgckIuF3xKWJnMjkrZ8jIbysBXLlMcu6scNI4FBg1Q45PerRFS4D8MuETU1RAvrgk56EOTzc4rqJQrZSPGDGvurEqil1Zae660I8vmi4VqhK9xpT0o2gZAgOyPFEsNKURoTcooykUlfCOZl0nkGLIG11HErjIHlTuxgde64lCbW0piULIn4aF+uy7XLEe6NKiaa4AEjCOUPYxm/V4Odm5SCvJpQd9uIdhh85788aq+X8NyWHEIlsfT8ObeeCiYrbEgKtsIVFSoOL9YpHB2H/e57InB4kNJ0LKKiqJqNMPNyyGin9GWm5lQCH5xMu5Js/CaihMoO1REBC+fsXgr3FZHWUkb/evp3/3QZvSXW/aaFCuq8hPm+8gd+YE3ZhdDAM4jMxIcuOJbya0dxSsGJTGH2Y19PcgZnRJPaevTAfsaCbCxypl83v+Yqsr9ViN5FgxXHZ4PN8HajGG8wVIGoyMsjRowlGY3lS7EVoTjjg8U87P0wUkJFkWD6d9T7FgTWCSoOEs9V/guQ8aS85d7+V6EmtoMOpV0FpYUaaln3qgjUnr4bb4+MSxKrygdj1zy7dEfmQJiH28ImwPCP+DC6N5ErQhcmSTlk0rFeuDxCghVr9r6ItBTcwoyrHJmhpfHJHiPMTreTxkB7/+Za7zfMXMaLXHh4cZyxpYGzNRvGJoztWteb7Udj+XSsm8zrE0YDVy0UKxUxHricIXos3bsq48GYJfXZtlcA5YygCBENrJoRdZHSt6o0UolO5RVkcZw0X1QoXBc3E8a/IcSDsLQyyXHnEyIJEUNd1e5Yu3vO0wT/q8JEkWRoLNmDbUUyszsPA6USpFH7qoHt8duMrU4DZOp2OL/ra+vc2K9DQ7wQJONF+PDQncVUm+/TE+vmN4pwHerL67DMBfdYw1QPkjh8YwuGddG9Ord9L2xQau21Di/1wHNRc3g6c0O7xroYSw/YvYGKgGnUg761lm8znIijYGmu2dwvgUx2HDvpBpkkIcWmVMSafuc2VJow4D4iv0k5UCTEoVPAjqWn4RFsB52fmFbb3v0UuzCT9Vx5/6shbzbq0H0YSf/8otxave5GBxcr4mpGYf/el/lQ5abKdg6otUKvaDdH4qhrlhjeJYkYYhi2T1X/dUF3VIzuBqjtcAbdBMWHzSWbq58wjZCkgiws2ZVEIig9jjYdlP058zY4KNSUgX0bIVH9OSAcghdoPX6RBPhcrHw0eDEbnthgwN5VCeqftsAd8PTNuYeXu5ve0NdGj3VlkMa5jZEFZTRhjsWtR3WGZdY6AHfMR0k1OosUdvP5g1vYmdrgU43IEgsi+OOAyJKW3pSzKCjpNQrzJQQkwkjMCz7UZfAL1Tr8MsuwymbvS2dbyF+lpPTvdqtAvX5HttcFvqrGKxq2MvGDHNjXXXS5lT8j54p4yuLQlWCvOxU2akWDQvZ3GFpmxi4+ZgUJZorA43TtJw8Cxad6g7HUMOKpzzQF640siYsB11krg72zag5X39yIKe8fBE3wucZWYDym81HguOrccWjPl55AjhI2I5jpDE/TLvPsPz4/5m7UQBy7r8U1PH7K1fA8qaAIlpVdfrLkIuqTUB2rSewD2rCnMOZlpmALrVvPAwDshAEpnsa3rjnHRy7siOshpmUkPnZN0IrPoInx/P0jQdunMw1bbXGsKQWJJ6GLlkEgXI0PsS9jEOxsDjJxbFszsfUcFAifuiVguvXErVVYSjQptpnPCRnLvG+yIzyHmCCvKPMbF43M/0bZh9jxnhvMGWV2VZEPbr2ZS8MWZsw4kY/gx1lv2UAKGe8pDR1jQvr/YvOykXPodYrGIrkl6rISgu0ro6vrLNi8FGktVONf8lGSk++3KJZzzynxqmQxYe/9pBYNoALzSVO56wKtEfuk3Hfnbg3jtpYCHdqu7sHWnJ9esjjtDvwEOa2j/flG9Oda9HacKfRsBKbQdKLSs9wLxCh4Hx9dZgGWZF8+5jH4lRZGbWA5dL6cpfUMKysfY9GU3pBqsXdkYlODf5lFakiSuqx2hOKZwUo2rqW9z9WBWJHCotLytvVGGCiZewbag1LobA9WE1TmKyjdEvy8wJvFTjXfIuo7BYGreGAN7e53RZW5h5OyvxlZXxrPf06ncBUvmmohBm627qHGVoNG3PSlUVBhBUvUBsdAYdFfgaECGB5WndQAEA9bDjBKGuk0PIS09yhhbqmSJfBuqFb2KRUopanZx095LLYT9eH6rtVJFKBKBw5fpMPNToh1FpCIatOGH/1mUjWUSLuIbdZu1w83+gqnmJGbgzn1/DiwJecypUxDK+4ZFbumT1oJyTkbHv3PWXz7N5UkYWQhs7dOspxcWTRX4m43RULrdMx1kq1jRzedZ3xpIjONYcdO2kjaVqgu68ZCHDCcSUiAO43A8RoZLwkOuerrIvdjw8Qc/6sUkGwcPhA7gSkVrEXJDgNfLDFgDC+G/+wh3o+6C94xfZTuzHAcY5jLNYiR4Aur8bnY2d10zvav6YJaEWntg+CBRISy3NB66P06Q7TzeiZQnCq6Hue7jAFlR7rHuZ6kzugFFYvLVcu32AVZZtctfoR888NmG7ioSz3mQWoRQ+HYUQ8bv+HO5VsqlAOoR238islVTGFmOZmCZCraRXJTtJtqUxw0XuD/RRsbCGFCDjRG8pEXA4A3qZPf2geOLw1RhykVe/PM4IPbzWPBPcNp+LYauSgU8bMJnUYHxt0AW9G2iweSxearKBhNzyTKRnrcsRpOGrDBgLCFts4Ztg4bihJwy6bLenIKTkjpwtk1CjpxvidPFqVV2Bof6FIx5ZmqKt5CJLiy7bTbUQikq6EbkC6suCFsH6cNSNbipFUX0U7Y55yhIW8UlzHnbexbtBrVUw/jCXmiqm0f81unIb2pbqWiM827/qLY4U7aEhoRvdKxdDOlRwk5HBBevFLpClgr1kRXnJZprynZw8pf5BBGTjve1TY7kyKSjf4qqCUCNgCKZc9cETi946uLvtp/8gU84one54vgyDG69TtoVVWdKHV5kF9KF6XRS4LeSM+FByugWCuVc78x9vP3IBUwRGKOvxgOh8KC5q4Oqyc4TXDpll00SeJQuWKMcz4GzBjjcrhN/g3WT7asYTSiRw3lv9gSCyCIcu0OK89O+BYYDTcZqeAG0mlWM+JyAWExsIZEiOd71yy1YdjkhQXndlmOU6b8Ozp8VybJ0bAjHMRJFHJhRwuVK6nZuVxbUfflYLmZ29UTedsyxV5IzxZhTJjVUjyOT+MzDBOD5fqd7AD3heeP8yaN1thWY5OfVTFDw8CcLzptiHEHzfg9+HeGK8vI6siYkxIcc9aD/HFYrO4pYhtjsYM4VzXmCSD6yGWNB0MdtgtpTExjy5LzraelHNePRFedmO6aE9cxE4K2sNG2v8qGYkk4H8uoqg0zzfkUpNcPuc3Gm94ILivuLmJp7RHNjJ7MNve91Ebtm1R1Jg9SkQrffSTgg4V6n8XHb7SO28N3p+PSe9HipxA+X0w6uejcYB/w5S80VewGB5wZPl/ynXA6HYvs3xqMzqO0KjttCtYbV+xLQ/DZNFibNnhIDoJrRJM6Nwe28p+QzOCINhM1cCEBi/8X3lSNKQVcLS2N0XNFVFbUfAKsjFz9w2i2boPrtJm5WoEqJ/tjCThr+26dkA41vHfbbUcSGY4KqJVI082TUcqw2w/c4JT8hrZUjUSaisrDviwZfsgeHqQCDWHZgxW3k+tTL+6j0fzB/tdXkFN/8DZbEzS8NcJQD261QSyxhCxMvZiONYO4Seti515Wayx7GIx845eLA1m5TozPwmNV6NwpBZTFMOQSeFkGZRULggyIh1Mnnny4hFNlQ8eMrxV98C8jfKnqZLpzAUleqqkbc1q4h+BrvSwYQ0Hs0jlzHxZ00/3r884vjxdDYtAgBwMw/s5YXpqGHdPy2ghmWuNApw+AncIxSoOipMmRsxHasXNRQnmJyefFhxhDfBgPj44UjQgh8WwudWSlHbCEhU1VKt9W58lN6tCcSzTrw6GXcFsR4pj7m4szQk0F4R+yCwBu17RUGnbY9MQdVV/iAqGf6M/FT3SPe+nviCcRVw6bYndZTbvu/TrUle5yrAmfUMTY9tFVyYHqybxKljaeuTJoelYTaaWNjJ59ASnZbHZgcaxu/P9k+Dh/grTGVi4vQDZe2R/VF3eC0thbdIaVuBqlpMhoZHGUmq+IXuN4xgeypxVmZtmH6wpYiuoSyNDLFyRWMRiiJRIhM/pQHkxlTaZlvz2oqIpk46lgoVnIL1ktdt2Aw/j0ls/wjd2VktA84g5qNNsQdRz3P3OLvkIcDm6Q5O9fhJrnD0wDVxqcmGHKcwzuHRPzWK2joMoTa6Lw9tYNM+6sEnOe4CR8l5ghnl/ZRZUrrEa2OMcXvbLOmsTxui6ao2+ytJGciiFSvnGV3ryT74eM37CRWMG+1VDQtPFxXyTdhXVnziyI95ONvDSgv4hele1YLIpTmEUGi/uOecRkyyP91HA+660P8dCLggBCV+JYxZHJ+O58KUpJClGusKVE6pLjR1+NOyEhnIFPV2Bk+ZIw1gh1uefk6UZD1cjeuZoWeYjk72ZbHgUI+V5H3YVsxw+Iap7oDl3dogTvpUXpub+7nzVuZfZhglotNKUkUHXvoZg4hwKVJR6b541HauL6QUXYd4f9r6JWm8sRcIxf0gNI9HHe6W7QwcZbNRLtXVdfufJd+p0aqfbYjkglmCmUuvT6daeI+PNZbEzt3XYKpHB5C2fci3OiMt2hmoRSjjsYq4jd2xkMvQEp4mfs6wA+k3b4Sn05dNoX4txgpexqpbmU4KORxOB4PDN8kY7IRfmh+VnAnOtq7m51WgL+rzt7nD0rA1uCy8kT6fDEAJSoxYfp2BRcUPAsIUN8olPonQu72Yi5uARUMWM0VHxPtfCDUjwCiX8JowmI1AJTDECrMyHHFXEunZTksCY5ckLsP1/KxCZoW4/mhDofHrQebVe+C71TXElvTqhH2KguduX8l3Dnaj+RxOD7PCknLeYEfOeZAjeBHOB9xJTyvs4I2xEAJtiJ7peY9MELPLPt+lNwHcz8Uh2maa14reghax5M9n73RWe3jKChFo3hIHbEoxDfewU65ZpX4CCvnG8y3IeHxhDurBU1GZTPsCwwfDUTb1dxrIFW/RZwO2ivo6CBXLLop+UqzgVJEJ2wI8OmfWPmoSxVCCL4a5ZCEQja0Jqnnt4a3p9v+btFITcoTaarXb3PeDIx0txGWNCvqhF/bXQRlpsDyNvbW7y+cKNQQZvgYfXyJ7962QZE5I7nAE6QbJ0/bdgSY9Ldz1uDbEuAoY2lvJ6WmVaebM9hta2HgxgBTwVsr84+MLlcPjrI7FhfxjHfF7cawz6pH+RmPaeRI/75eHQKRsBrklOD1Y7okCWT6fZVsirVQQNF9ruM+5dEr+6J249rhahqwlptn4JIuVK6JSyqeBgUc/OJ6qVqE66aa+M1qs16uLZG1goecEYlx01mVvHAucCYqJIipzW7qSacbP1Y4HJdpilXJkCy/emsHFzTkuDBBR9cVU+8Yw6BqIfPiV4D9wZJWG4J2cUjYKkAGEt+9JtmOxRYA3vPKKaKVyVwpoE1myPFWUqWOPFHiuEtXJehHHQnQVIkA5W/B1qYE2bwdeNhwzLwTrwUk2D6TgQvOAlRy7AqMRsFhuLd2TaxNsKNgu88L9zUuFYV2CWzUnswoEiaoY6dXmbEdWxy5yOWl9SX36db1WMc/2Zc1dwMF3o7mFqK7DJu02WNAJahS87fFl7kJiY4X/DPDf6NWupSQ3jC8ODR3MZNoXj8kb6ShomehAE8Z8+SD1ZI0br+sHKGT7vAHOV9y+mtnKLFQtP1rllf95qbcKoG422cZK72sQbiTEQHWLMVGeapX0qwFi+F0ZgMTwYsuRi+91XaMGwrVCYdjEyIUCLNaYFbQW4fGX2CG5u15wsgNvBw5VamAzQmMSWoG2HAS+Qp0ad85KgWgniYHOP5e052rDFej2zW7n87TBGYwYu2zcGM5dCpFzJJB/9rfnKxRrOXMPS0n28nUi4drFez+ywhssLyEa1MSBBq7zN23J440WpVN6ZcJ2gaKTLcOMdQUwgoAqI0OPxZFS+QMipT8BajbQoVABufxhf2O+2bGZZlFCtAb92Ge65YCuV4a3KPqLHSqf7HKYpkntIEd445vDnU29V9f8F1sD9RGcvO6RWf2RtOSuYm58Oilt9yfxAcuOwzTGTuZ5YKcVf02o5YiBX9kKkiGXpjyv+eSXJxquD/6u0frdRyUYwnlyUsymxKHp3yms3O7AE3WhilSuvWqxqFCt6tsm49wx+qj4Y1Pf5emY8M9iOY14uM4IzPbtultgul4Ci5a/sitoa7DUNw2S5Xk2o2JwcE8VQx8bqAMGJjanRlH19uYiT15kdsRcUlHmPG9iYP3yhIt4QLC4QdlK/VJ37F2yG3QbbU5gmlguf0nUL+UZsojBHAhcIu82PtSkzB1HtC0taE3qgk4NX1nzOwVc4w6mjGxMIoYoMVIVKNldoNqY9BddwYdcidLc/OlSwueK3zjVxDo7tRdyLNTA4VHjPc7XmBmdJfVQyvNzkZYdTGleSLmnVxAzloM1FyxiIisNPlNLCGWP1xFQCOp2qogKuGAMjH6ceQsycV8xhxwo9Pljcs/EuXw9fpxKHvUCZXhPEcUmS1lPdTeLckantxlxLRNDhLdrqY9UgvNLag1+U9IMR1+o1JQ8JNms8uK594GOLgguz6OSH6SVTpIxK2XyAnkGv04CiDuQ2jpCaxI2QkLLSkwWS2c1EqD/3EE1TWhQA9WS5i3CY0oIC1NZ8k4w8L9dpaehT/2RPEn+zs9tsn1CIFgrBZ1kpURbCNdyWExLMJn81xexPfTVp2Z1um9Xw7pPNNO9TTIZRNXUgs7B5NeqNV4FOgsETpDRIVYaFozpJ4qif8DN4PGeTpVG3Z4QhSpiQN6qE+XCPntlVU+2JBq/wpqDb8EiWJNnz5pMkkiUTOZWxnnC5bpopkvdz61GFAZ7WeYLVcqzEhuT0OSb4EgHVyKIEkqtEKGvfnlkwlwg1E/6W2ocq4beiWNOXaJGyZCUwaKlWqHwtFmogx0ESxVokoq/nIGJiZYVR3+eDXydQRMPSn5JNFXLUsscd9xR750mpJ2zTz3XWKmfUvBgz2cxVmkXX96DQ+VQoK5oKPJjA38IWhY0Y0ID9Z8s8l+udUZcXHaS5eOV//HBCkvuMY6xQCE2LaeSXURXq96tMerVOKVntVSNipI6iKBLDQNHvlkhSNOQMCWzfDPwNC3kVHstFdZwtZAN3HK9MQuS/nrEuH7Oe9G3+/pkikyrHxEr/4j/9jXtwpg1HaqhY8xpcS7oHzDxsleao3R7Xdt8njdipOSXNq1Z3jy2Vm894GG5QElv8LFRXNXDiTyFfNKCU7ZfpOGGu3Z41qoJoP1+mYFZzjKpONVoZ7Lo6LNRYXLXqDV+EgjJhjySKZDwUisWSDWi1xT4cdcdrJdcdFnFiRc/CrOoo5P42qT34kvD+0aSgMJwl5+1gFJXQirjHPVrV/Xeognn/p4jO8M2mijjXfg94K27mufg9+9zuipxOuhKdq4sOqoi/gq1wpPVmH/e92P/q4cySiUCK/9NwHzT0M4yhvnCKec5s8avg2m9YN2jGMl2Z/XtQLSjIt794mcNiXbimMFKwJQpZOLLy7wR3vmw/QSjnqNrId59e5/7UeJvFCizXJh593WADrIKEQrTkbQCo4/EA1WUzea73Rj1+3wDJxr3/KbU3TFYJDrgol3xNLVRYrX/7uM+UD8ZirvfFBKOT7jzFu9hnzilQhW32ejxZamlWQf61vWjjDGfoR9EXryTAH13B9CqUkBASt7sZAdGTq+X9XpRBis9jMSpWdY3AiUyHQ/YMIlpn3cPwaOnkSWq1BkF4lHq6sKYZfaMQeLojaCWPLqyCSr0VwrE9rqUUsEY969CPJvX6ecpjs94zpad/1HO70wld4sz9B85X2sz1FwmFgjgKQIggECIoDNdVJGK3vmWneABv0ZyEN8ZIlUIFww2aNImf6tptHMKt1cP9p+rKZ6AAvASV7W39iiHKOudKuuYQxcx4SxHscEinBoGjqPS2K+30VGMks9DXWNPZjiiqumcLordz6LDl11m6iszlQObZvfRh1ec4fWGxGZPK2QYYpNILCgvz9OypdMrAH/n89mPsgeVgC8JwO+zO53Fdi+fZKr3SRRmyi4rmxyjgX+2KysTLDxZ4ZPFut9VTqhbXwZS99MzGKw56JSDyrcm+6bzrgJAcCiF5OBclQqHJug0977rLEAEODl9W1lzfVL61gBP7BNl7WEnBxVHiXnwpU0YOBXHm8qTMRysCAW2uKlY5RcmS7/ZvBTH7cWNEf3h40x0jiQNxJnIiacuR45sz8lTbBQAluvDxQ8G5xwprJFbhlZmbmwsrjtksInhM8ujzFqFF1f2Wz9M3oLGtpkBrCjvh5ZeOjcv9eyOj8CW+Wd+XvDCrMMqz8/mdWahxX/3XRHYhrIBtLxk7n99sTaRdIJR4iWZZrXb7/bQLhxLghlnz8ZbMavOlDFh+by8tXWk/XJcq2hwfcFWcOXg1eC1i20fw9gUTOd/P213t86N0tC16GDjPPnecPokGn47Uv7btJhMY8Nx2M+PxRwFFNLIXFH2YrTd+NQ96rbAONS0FcKrVmYUek1GKBAphq0Et2TmZmjdZqqqHZZYcsTi8a0fQcSPSWeziHXjh4peFQt9gH4kk7FNIMorrozOECaTZ55wvV4LQau/QxrFJaZieduet/oQrFM4Wo/6yyq/8dhok0XKst9+1jINUhSXbOY6PUoKzJCkbcJrcDT3Edzcf/uLvJWGecZtyzeedhn+eBFYbiFOeE7o8XTsT1jRtQafQfmiaTWzmysV1S5btbrd+1sfsvtLSrSvcCtvMvF6lMGKqvo6rXekrwZK+V24EkdbfONZDBQZLoNoLJQmnw4J+HH3xl3czT63ON/z+z44SC+KBaWxxL/hwlytXjlsuMcZRjSw2F4R/TMGDTC72cGSZwnHWFWcvmbNuLHPo5C8gXOrfZTRyw5xl+p/i9IgsL7e5wmhdxxYh08eRgX/fwtymPL2o+X2GYFTMKJMguAArOobqjawoL/YTjZDshxhbXQ2CxTVvd5ljYk/g6x+qCytvGc8PabKsYdx8AJyzGwIOWTgJEv+n0pMCUDh4+q+K07BwZckFWAfBk1MRlSaCECIYhCikfh39sWDMOuZ0/ptBg3Hq5yML2EhBcT8HqxO8chaO5CJIGowFES+2vmvuzGOorhAdvXGX4UEBinhFqU1OJ3gUnZtrAgeLRB5vUjDhNmHUYOy6O0InrgBrJTFNdimVEnuFubDGrDKZBK6ywrKzcqK0+UTwiWITFkoYTpCq68ZTefZ+uwIWPnzaBw1/jGiMs9aUXIRTnJenwhvj2Eq9zmh3+4RCQXqztW/IscrBxyArf202+3d37OrmiioLtWgojI3LVbiHKuZK2CWOYhgL+oaMpyxHXEvA4ZZCX9s6UW/kJPOYZy0U5GNgYuos3Akv2My6XOdqM16RWXvIrjoogXSv60b3SXpLnp0yFFmzmcyLjcTV0PpsBZhOIinSlNnUHIX6IuZDmBASM0KwiuOFfkc5au2JydS5+iyZuQ9FYXpqliMVMgggkjW21Eg+zHLy+uweNZwsbx/XHWE6PjawR7Rbc+z8G75XgJ7MrsrQ0NDPNgveZ6+pPmA19EGvt8ZBvbUQVKvHlxIsSdEibZSDnKUy00+WHxf3rjW0YYhq3K0T5B6Ew6QR5khksKRNCMaTnAwjuGIZgy7A1u4Gvgs2e4jZ8pYuVJpeKxNJXA7nKSHoCsk+TGDIyee3dXVrgWnXo+xL0cMvbvx8T3shuwE9VBMENdrMdfhZ5Jc3thoqNYbd2eMyuDr8ZDSOur9cM97kiZ8VyLy96Z5/Y9DL6Fpz/ULDFxVeldJoq7Jri8GVR8CrpaYg4uFpYTDXeEOJNpNWHUZf0s7S9QZvDOdUsRps9h5mlYrOr7SqoSI7P7C2op8MULZuIahTFIg4fRyzjxvsa/P5iBxifh4u9kFobnnbiG8l2ML8RdrNCgNpZd7vEKqS5uk2SoXalEBhA1lm5rC7uNkhMo3RJCO9b3gUXjdxms0JeMTjEPfNt9QoMTMEJ+8gvWuVerVajtp0Ql2myrVFXphnhf5eoppyCRjbWZcEtTYQxZ42C8iL4Ai1gqBx6cTUUoigaPFucMkjj9Il/lYboy9W7IJVf1p6Yi09HJtMss/2nkBIJdT2B0JODifW1kbcwqCIg3lpDfZyqJrHDq7bxaSMT0hMMHw3i07rmOEgVn3chWXLWoljvabKaNpm/OACOIzebpFTsJF1zbgQ0eeqh7zsXOzPKaGPzhaMXEcn4aCaL3fMC0KrZY4PjkKq61YKUioHKaiPjJWxUHNI+1tMBhPijD2VShuFuHPOPS4aDf6kdnQg4UkfzjdkYGG904RNwhPwSaZ8CJEqg+msOTl2KcZLMCHTGua32Xx1EaxlhOlm4bEpZMh/uAirmmQkxxc2nmRCR2VL6zmOgE6JRCRZ50r1eEvBFdJI42qULWTQaKfBcvWkDDzzt2ei2DPGY2NMFsMz4k5jekyfu7pIKfuCnrlq1E4v049xNtpA0UDozp9ftv4/MWiw8dLYVZZAyHozxKw8rhGJe9YzljynbDOHUk3CbDtuFRmmYo6t6RLXchCzwqJEbTX2SiTiLIpItVqdRrXVFadWpzqtSmO0a4n9FAsH9264REak42zZDMuNZRsyc25VKLioxhmmjo7W1OHmhvvgGYfqk3FJe/muvGaQakRb4jgnVumOKx2KXzaY5uT8Xmi39kbzaCinEHGTaZfJdGpjj1xu716a10OQ/G95tOGNy3ZXEwbaiSjHLMOSgALpMlNWOwz+eiCe0tGb6hUX71nJpPttWlaZ/IoLVcPB9Op+kX7IaLRiPsNSuHmAcfSEeWGTg6Hn5ZdcHlpbVAe8Kw6cGHUuqN+cPXjfs4Yf5CSEnfFVbJCFr8qTfVXdw4PRRh12OZvkEYjh06Q/mG0mhB94VKNJxvvWpcHQojtcGvZ6fDWohpUZQ3JrRFlh2eIkbV3CetI9nqsKm+ElC/bTPf0F+HusbUogN7WAtQygs8yMhH/OIeYfEswk04ByOBF+a4aQ5wrThKBPn4ASW9unyJaJQJDOkpYAQkAFtmnV5c4B8GSPr2t8qE/Dgjsp2NACLehvGlep/D6o0SwwmhaoxaBfHHlRTp1585L2u7euzOd/lWRTU88e+UWnW8dfIICIIsHthIDR7yeV0hq+NjqH7yht42uh8/mO03y+y7ToAjumKAOK/dC7Qzo0TwbAANs7YPwCcK7T0IEiQYbx4yimFfl8vRcHwcqBjtArA5J7unIA/m+UtBS20k37i4V+6BX+tywUop+sRbi1oh4QwDY23eGRXVgDm7P2m/W3NJNWGkom/0LRRHAwXrqwI26v+XpXJr2+74duI4HOS74U67dP/N4ciry47MaCcJvymN7PJGhOSkdpy9wOHcf1btWYtMxBq16/5aqmLRu7P/hAo+CGzf8Y1erMosFuQYfaGFstQpobyaFJNxiZ6lm4l/ZTY1+OneK5XXlaXwXJSIfnguuWBaFjmpQr7ux5v3zt86WKUmkv+tmSe7D70L9+2fgfSo/st32bLTZuqHe5yHPLIcNXPWv6n+/KIur7ttqf2zg68G2vVceLmqATmfpSFo3yEJaqePEvoebmKdRbfclak6YjVNfoFf/roVvp6jHUXNlNzh/PmKUhkU7HB6pSI+qdNeLnu/Ky123aFEuw3fGu3A/ruWMluTbP/f3LWsSz5C1p5ZU6dnS8bQev7lt0vzctikQHvw5EZt84RcFlFy+bttCDVbTZIgF25XBhpCvIq5DaE2ANc1EK7WzbdhV3oMWNJoFupaUpkNrTruA6fxNa5zph4TSPL0xL+S7Rst8MPWyne+u7GLpvQb06iWkoHUKoE5Cz7nHxmoRpymqEiwOztK62HirpYGvnRyMUo3pn5vZE5Cory1ZCb/QvVEFzRjKQllnBZ+JpCjePZmj8EwHDuwJzrg2afPNoulT946uyxYhJYq1ci1mMwrFjiqXwj3NyhpHZDpQ3n4lUES54ooiMRIPzLjQ0tZwZ0urm5HC0uWTKdJjFPgwV0bdbxZlKDoGNSGewujLEC6fpSFxXzFxqbYmMPnGemjY7mrJSlaHRbJyxpquRa/rHreVbysR8JkNB8+LS6fFiFqyjCC1ZZBm66bRoWQjDoJK7PYpRBY0iSBVK5ptZjhhlgVQFzDM5ISAkGWOTHjH9DdXJcg0xB/ViqetwYYQm48IRQ3XTADdYB43GPe6Ns+H689utc2sSGOCm6JUojIeKFMRjxZdBFyn4o70oT4rlSp9EWQyVO/tj/zTvne+cgmEZnYpXUD06AgCxYJkP0zTXH+M7MGs9B7F/aC9OlJaCuyaGGo3JmFVFz2U7JohoQXkzhVyZ+4AF3VVSnrgqIKGCqWdFf2XYgOy0mMG2DWiDS0JL+pgRGRKZ5atMy0wtf0wxrqyZznbyAraBz2Cs8Ss4gtlFTozx5LwEs0xzn2FFs0nb6Sr8DbYyq6P6v/2zOOKq4aU526GpUmNfPvdcrq7wlDpX5Jgebi+KRvipFFKsKV52wm2etfQTBdZ1svjucK4Xh0YU/iTyp6gAHllo20F2M5DwqB7xxkjBorASZm1Cdz3+mawSgPRcvcBpW+au5lDIC1LC7mXUV7zAIhPwaf6wdw4/rt+k+SjtMmWlxnWamKBoqlBjWQSHVtYZtkKTgb+eAEfQh9q6bLIzdcT6PNWr34S7QrE6xeDHVTqNovr8WSFXP9GxafEvRPLgbZ0T5waZ9x9RaIrc6CWHaQ8dK1Lmo11ewjbLTQjXUFLM9fjYfrdmMqHdhac6fcQI5znDSa35FpgDyzSHrEKTdryIy1bd3qn4J914FGvDGg60til6rjkAGnjXNxA3gec4jp/cFr6YA26nZtmy5USJHD7PGelOeig1Ys4Uzg2zx+0HJ7is62eHAdzgssHEEnQiryYJskEWRRPf8jluibgC6WBrTbObkzkEkqZ8u2iIktLEnp+zz+V0uj49ygInrjK7xxOBv9bhwVofzsAp3MfBaAqgAqEPCfP0A1mQkxG6NHxGXGF1fefTCY+irAZMhSdfpsYdszIpBBkSLcFGdhOvVZ+kyKtqte+HmGQfLENStXyNG+Rw6RTQNOZj4xQB4r+oDARt/MnouUBbRcr8nhf6q4A7fjwF0KHXlkAUy2cbMAsirRXw2nj1c5GMmUtQpNFWv/5ViPj8oQk1CGsrIO2LRnFY5omoXikNBdPmd81e20qOyLV3u5sC14Z6tXp0wWEzvOb5JYjj4E+9uSw31hYRGlG8CLRO+uxHdnEs24EeP+vrhN4X18im2u3dsqmt41u6i75QU19JvZQSxVb+HqyDPTnOz48PanTSUJKRkXAcdxvlzlmT/HxXGursAactt+aQ8HlTk/Nv3YYe3wiUyvPGM8/4ZHw0HE6ct1UCm0g7VB6+atF/zkkoN0pRSa3O791t68HL5xLBYnlZy/PJG4Rj0G0qvzBgyVImINMimEB9hX67Gy6sE75als3bBnQ5VgmBCoXEelurVjvLH+H7q0sB6h0TjVhqpdzfdOKca35CYRwZTlE71PMKYNo+ETx12HZyEsh8S9JEdCqPkRGmQ0AlPEvLG+8oMVNZvWE4iXV5jmsk0kuY2d50QxD/HY6Jd+gEjcmVjgCxPCHKrq8s8JDd6MILrN+G/199deHth9eKXMgY6w/9u3bWb/QR/dHTzqxdr4RxVBxogz7wK9hfBp0ZMiUvR6/TaRkEVICTs7mHIjGCDLEYDRbAJM8sFLDSDOBwhBKhIDvfWS4vZQc6CStIBiOgA0E8p5iDTGQsTpBfhs1dECkBXf0RreTmyvl7wx6iubogakEFmJR7epaiEx0MUKydKWDJJDeozwowk6TVyjFswEXBU6dybt2I2LEyJi1cvDefY93ofo5wbHzTJukdXC6dV2SPc0zbzc+3AjzjYyrBAa1tWRaTsi6YyqdCtbee0wS0Sda04wIAkqa0eRdeGmGCDvizAAMYSggK8tudI8nmYH4gD8YaCgB9FDPvpOuWwS6/zXGbf/r50I+9r8qXrfxnrv9FackL8NnkftnWelnot4pcQaGwDTaatF3BaCqTgFQ0iGEe64Zh9VzK1wzxpaWGIHZWwjdT3bhZSd3ApfSheFP7MeOtbhWp23j5XeeggqsIJC29dPC8rOIEUPFNLW5LnuoLnky20T4/ybf7/MGc3dz2z7ToJ58pGBmfEBUaFhqVgCfTuZmSPEkml04mYDFgWAKZzEg7TAZZQWRqmESFJmxOHTDPHVF75UCRvXie262lQPSF13LJFqC17olxwQT3w5jkjSJaTAQs4DjBP7amiUF7CTFkZL03Dl8tk0y1uIfnpA/isPIeK9GydYFmez7191eTBC9vyi2zm5Diy+MMS9h5II5IwBuhVYqLicUfmiGYQnrjn/UsLb613NpXF/Jrdpes/F9gZMbON3tl5jy36af6vw/cyGiFTMUr3er7KQhnZTD00ySEaFUGZm6iUNg2PfbuCBz57V8INcy8mu5AgODhE7F0HaF0nc+IvbfNCfysYenOjCWAUMSqdwItOkIAwAr1rz2RHgAivvYwarmCvOBX4ddkoQAiCKRnV6BBU/8AykBtF29PXKxvCn3KhRAigK5sMgJNhSi3GGUAAbgHjeujahhMIjAYy4qVZM5dFMo+21bsgT53Q7wGaHHPlryrqGnvg/0Vxx7zxnh4kzlWt7OpgUkg9PfQqKkeX0kt/DkKdaJ5sY3o9WEWRVfT4O283kSmwJ/Q6JoLAhCNhRyOlxTNA8PKWFjrR9TaCjgmNnR3Ck2fBSbOnJQKMtV1BEZ/vEi0VCMGPXAdBdA8ClipPmbSW7uKysuF8b13vn0SwV5GdesIxFEQImJlrIDPL9jJwnz9vxHYR3ZxGw3Lvgi0ABwHDf3SPKiLxjECseYk2ohfrFmR8lxpciRNI9+C9LUVhLLPAMRw6ddNCP4MZVjgDEHFo9Arz2VcZwGl1NFNFhJFJ6lcFDizM+0K+KbGB2OE99IH86RSzHLHLBgdR+McCRoEBBRvLIAQRRCxTHzF81UZs1CAoAic4tXoJmhTQcN/HbL1sAbweABoLPEV7qNw1gxGZwAAqMXyunrOITU/G2lfjhQGZZi7AUXeYz0E95Ks/JvMYPXfdRZGVhjG7qGBCa4r9G7N/zM1PNnj95sK9KDOY3/+eNEqq9V2XOTnMChiTqhI1tkw2VZBnjCeCTfdZDpst7v5yn8OmLx9Q//dzdPIvn1nCWhbLGL8YXRzvC4v7EncRX69+PwXwGr96/A50RQUPXDfMOCk1M5gpi8XfvVL7q97T9xxa3X87pWv0/znnvzB7UCK2JG0k7LZf+zbrY+qO/p+hKTP/Lm8o5GmFO4vMCjXZunAr+5Gr/Qz8COP01ui6Aj7Hk/A1sd9++DRuW/XPfopjuBB1TFTRrncGel4lkYR5kgaVVh44zXdxUG/yG6XsuzP/05ze0cX9em+QW1Z1VwAmlsDjxIXId3hZIbZWxNiAxq9ckO53SoIMG3laezrvy8/VBjMdTw14vjgQexytPeu37n6JnYkph1TthPNrGvIf5xsFnwx2H9y/3+XJQngXPgx+7/3NzTvx1dUwDtRsGgJs9HsJQIaeYYcJgTWpvcluR3WnxyBwXAGMTp4EfyYDQadlRM44wrnGc4kljxqX0W8BoNJ2sdTKtUiu3/2aC5a2sYV8JLVahIPfMXq1U+67a7SRTp7NA7sn+k/iQuWyrlcqQRyVkvI7ZxBfzq4y0ibdpRAg4AgbGcvyRvjuqC8318u3Mo2b8CcmvFmwTBdt4CF6OBMsni248dBpKj5c+ss30N3Bra8gcZB6zVOweTfI2MBOkS1hAzQDMaPz/o6x1gZC0fgidMnGxWAllRyZs1aYsRU8enitVNJWiEM1uYa377AvQ5P3sBb7evrkCnrPNbiV4IVSk6EKNt4fVvtrusXZ5+O7Bicv7TjogceinPKbOdgVdeGhvM3di14MFjWhFSoKQja8pHld0IsoOUwUHhjaaCOwBtJQ6IDsrA5TlwOdniZj1NmvgCRjdagFErfV3lIzFu8JFS7+BtvG3nV1DWLmlObDTVbKrveUoGmMqsPORa/nd/GOThCLjeex2YTpcPlxVPa6q2UcXlx7rCSHry+GB3/d2i+zAsqNnooEKMo5/Y6vr4RzDx9xXZkUUbv+a/APXJyNAXLzscvMX3ZQnkcGOJRogm8/lFVuz6YdD+4vmwnNl64q3h4ZIJ/fSZeIEAALEVNFMw+QCFzwqwtWf7JJ7ELsKvmMCvZN2ipnB1r9wEGMZ7anIni3DBP4to/7p+rRTCExCFEMV9DhdDR36SNCUG00U6rjk+NoUReBzcU5RICBegUJYw1r2VaI5NB7SMyGT/ODOAz3Zc3pVoyFKXcnGZGi33dhzg0ZaNKiULQEREEVo7fQjKGSUR8cbV+kx1lflSrw8lZS6JvJimBAV7wBPzTdFW1wxGvVm2DvYdoWm2zxS5okIY9sSzZW5QVnoqgSQQqFsfYKE8VUtE3rQ/neGVfEjrPtfK0mHs664HdU5loIp3LWd9umD3P71+SSlVm8wNFZRosON4WmbOp4yP8v75CYTF6g12KEchJl4Z52gOxIsH/L1MuB3Y+WORHamIUFGPVUF2CZWnQ6O5y3Z1qI1Vsm1nF4ntJyHkRjgpHEYVaVNsllgAzhOFGdrZbAkElqQGpXi9N8dlYLMunbsYupJwLAz0JSc0eyRBSlDDDU6V+oel1ZVxT0yCWwHVQfy9EEfGWliSK6eKK/Ub7K28kphyRfrmnZg9P8lPLESJdS9TShGctXXrhY5PJf3WbvcMO2JHxxBQ8sQ0GY6PJAZXNqM9+0JxGBwgshZ0tIzBDqmQHQilEiQn0Zv5PRmct0OaG6SZfZV3mcDxKMsWt7uVgUtIc9WLFWmk2L2nvpK/Ioqb/OXfsH2tpYX6uOwtOuN+hNg30B7c5sWA8GnCzTW7QPGfxaxE3PZY9b4GEwMciMZ9/RzzixZzsZknWcmeLwOzL5XAIBE0P5QJGKOYxY1awdCFJcIOHH2O7copis+Mj3q1xa3SALrEs15LYvNQGwSjYBAzjYLNcTATHo7YNzBZlO8ZKrP9PllrQ2zSch4hm7hTfFdvVWgubarUtCvxLJd7Jtrx6NUR295/E0RJqPpPiGDBOZHSuPMylY8Zt81gvO+aq33zXhhmg9unoaoqkhD2Rptn0svtlZ3aaOOreJkS2vHiZny7BNk+g1x84cKGrlJuh0ZOlhmCxqIQMEzYRPU4+yfWb8I5/em/8Qcm5D5NyApNZkxgGqdum/lSXl1HhhmFeMqUOnOCMS7/2j+oPxIWrAn40z2n6hRsfQ5uwys+gKLwRIXg+tq1sDRmRP6NO8Z6npmUSSqaUmf9kPAaZjnn47JdoqDre6bEJLn7JPmukuw0Qxrgg0i724piPIF6SKgszTDttZgrTwf8o+bu8kss2sy2S2PculP7ZAL5HZ8iAFxtX8uk37Vcacm4IIe5TFfSfb5hUgrkrlwvzhaRYNrQcnJORogwvQ1J6xtVESGr9szC4U1Oi9vYFsQhz7PSkOcY6Nt9g+nFW82FL929bjsMSObGO4trHp5z114cL42VXB3gorZfHuVIu350U9NdHbcV3vKnGYLIaXMwIc53JWLROcHEEmelJ8PY5OhboDqvLt/HmGsiZQuiUjMoRp+8/1vT5tmVeQA8eSHpr1zAnhmfz2bNyUsOlifnCxrLYhdFScHtWiVTn9OBOvVzl9cVfTfNsbOL7NYvL19ixnGaosRmUEuaEn4MgImdJZfjh0EU/vHFCzULeE2MWKSmpyrOGCQ0KJFN4xYjCwYO49yDfrPhhPqHxtRKF2oaiAnJKhfYiYVfBL6h43GZn9iK7KNBzl2xAiISzu0mOAJXiOxxINqhcI0qxsKdFbJygaQp8V9xrm4R1CvlLGe0Mv6HdJzNPJpODbK+ZcH0x2vo6IVcEqs1ypTK52duYOBkIa1qfwwRshzS7a/pJNUn3tt5jgQtmC389WhgQK7LK9euFwmnaSZvNEescnu/D4Rn+rGhru3WsDEmpyl6gfj4tKpBOet3mBc5D9ba93oA8s8N7JtT4ZAY36idroQHhdRGRKh0lqE/IZO9rA5tgEzH7UqFPKntbH5to68VDgQHybFlOjuCrNvtMBTGIm2ct+F1eb6nBxtsHVbVaKGQnyuXAcbiRQr8ZdXNVtrECG2CxUhy9iFIXw5EZod1oIlyhf63ZQAZqP/ULM+hr4Fu8PTzv4SB50tuz0vZOWdwOyVvoxK+TyZweG8NxMNvV4bpcZbF4auAm1JwpNMSF06HV7DjLdmhXkpOq8T05QCg2EiVrdoZdw5J4qgikJSSYc2TYdpYBZkF+WtHTkYaLxfQfcc2naiIuFLMcJPVApDLTJJ6PBCDE8u307p+D+QE7gdSw6xA108wb48bM5es5kVmY5DZBS24iLIEpEulcnkgLQcTjgLIyPS+Z4pwez1DmtxpKuui3dCyMFAoVAFEfLfBrWFZr8dlObdycw0/aLSXNB8YVdP7AAFnTaHUBP/AxSUUiTGduJP50XK+/0kKG8BVSbSgdftp5MglNH571y5HJYoOy6EeC1QhmS5fHapR675eVguyeHgReh9RK9IvF7e0RXlPAyFny8VqcEAGY93LK1bzpIgt/F0X5WlwCwedL3tuD3h4kQyLRdfFGl8X50NB4oi0Tv9ExSHU0ZORA4IyjIomeivvXT/jRPBF8QXIXLNWqtIQAQc4fghtMd8X4iX8MqTJpxRKRCB7AnMcZpljMlWi60Ej718S6lNN3qYZIFZ3gocY427gRJzP14FbF6TY0XYltteEXIIjMRuQDmc+3nFRlZxeVw+VmieLoQk6YrmWwNMN0hNrrUnHiMMBl2EoFSw+wB/sTLuByHf39Q19WlpWxcQT5yAKzlWxs7fQ/UH6i3XkxYPX7/Q/HXU1T1zrIgoLa2jabouqOYfuYwQu02v///5YeBB1+H1QJU2AK0dTVx6P4B6baEW4kDgYj5rVoPHbAW2WzVodCHruNQVXdMF8Lkitpng/Oyh0vDWeOFmMTfv/VttOnH9dxEs/lK3HEv8gun6aL9xW5bVq2JHOh3ZUfp/fj9/rgn/9g1mOwUZ8A5T4jgvDNOTmOHDijUjBNii5fPF9744Zen9nKXlV6jYhAMv6phEzH6TRs01nAhZqPahQPkLHAYsBfYXZV2AxquPBwRphXzLFYXlrZNAgztTIt0S4eXWw8LTI0wwzlyIZWUCfJihIl6YC3P1YXQEwlPce91Go5GWFLOKuCcUN+Uf7AcEeRUVcnWWBvdKmEcEYZOT4PmUhhL/XWjoFMn285S6JRcfudiTdTr3Mu/ZZEojhIYgvlEIx2ytlwjM2VRJ/Q6U4gokQhzo3XD5//v/+ZwKnB2dk2W2fndU2sG04nTe9U5IF04uzJYvF87ShCUAD5maKhGUbaMJlCrdaIMXaUISyrWENtbbSp0d+FM5KDw4c8B7kRBrFwaaZrxtkwoJpH09JMvcRkc0yGobNJPEA7QW6Rs1mmVJ+RvqsZztRFEsIZ//GOjUyDyIRARDIb2sdVknQJrJkSBKhgkoiaiuZiwviS4sp5vcu+KnRQN3Lq5IRu3ASnVGWXOnKCAp/vPySHpmgOm0sLxBKFFoJCLBbSXDabRa7kkcA+UyclpyQMSPWZCoUIn66wvtUnVpiqNYXmHZ0d6InkX3/ROJxtznQltkBIvrRw7Jo/4dWpidET8YKcDT7GgsZZiAMwU8TKGJfP2z8Ca2tIJFKhQwZLFHAUCxiXjjZVCnDc6C9J+pQ0O0oanxyJ0AmmdH9hFgsdDYejlTMGE1ESZ/JVOiu/kJiXIcSDNJVocfX5xE0g07yEMGrIynItFDNqRYnZModiLknzlYZMDYNAASdxc26mRMQP8EL7hZpcfzTpW6ismdeRUhzL+EcAsNFrQpfJMVPw6jGGtU/2IPK/sKzgTmT8yoKKjKxfJlOf4tDUXI7G1VsVvENp8vzLoEAKAhAwDB5rvKpzZEnsZdr7YAy0VgoLvY6Gw+kBFvgcneAztH96R4cfC2yRWUjrJOKzn755QduXghMohBBQOMVwIASEX2laLeQyhcnVR3/xO2LVTWDmh/MCiz30aPbnFCyKwzd9bQD3tRVk5lJzlmYCImTRBE6UJKAALxoYSQFrflyRTTzXlrT79+Jfz0jb9+fArlteMSnO6XVXk+yCv4rnJPz1P5Gz1s966bRo2tDAQ/wFWY547fhpaKJk+JiRarWhZYVr/11//gtmtu5StsZOUARWo93Tn5czTbwLmL94k5kYbybj453DNPDmMB7excwA7xQzdIE+qo45x5vFnOKduaNnmzDBnfmHT9kWnrznunlL37+WTE/6XxBek2TGAk9E4TjF/cyjflbqAcfcIHRVXPc9RxNWf9zp53Q/UIiC89t1Khh0ZFlJpmCV9y7wNM4VzUExWAnnlLll9zVSwmHYm1V+P5AkpUHCcUInoOoK9cHIjWFng5WfWBL3+S8KMRAknAiwlp19kDMgMcz56FolD6ooWTfbe+BcctWfajApmIqWgiYnOztTa0QoJBrRk4zazOwLBG80cy/QZg4xThGjXDQBve+SQUSQ4N9m7s8NI3C2z2Yppg9G7oVzh4LLAdOgaZzpKfzrFAkmvH6bMNORrJRSQTX3BDauM6gCQcWljWMi0Y4zS5B9GyVkIGOXXXPhsGKo1Zt9OCj3I4uv3e2O1ho5oegZ0x+1ECuvGfPWFqp9ImWAjQstHk+lNahhZV6rzQI8pDpntARBqNou5we/ltim3VC+VTIahzuXAnsS5PSM6YN1qVsVf1YQyatacSkmldA0/dD6lWpU5VvgAO+7Ayo2vF5FMUVpImoIArwo/JbM6A7nqLbOHTHtK+akU1wx2ccC21HJt1lrbCP3GeTU+8jpq57AA55FywLFBjB+7D5ZDUwqCsbfvDBmz70eS2ozFQpTTmn8eWo1MVSdQK0ZjCTbilXHnGiZ71RyBPGi6liuTVIYLtWptgTGyPxrQVNF/RmHYzyv2qYWvWBLTk7EkgZDhdQiVIV4kuTWJvUAGq5akoJtirgKR028hVWLaOT/pejFbkmLlzIO9IiYpC937sWgilh1lOYKsURn94t/gm8l4ZWb3fnN5cOX6j1BhzHo3jcXT5aBFnnW0RAx8K8ootyK2B9E1TKR0sUjRQY+twL4HgJgkv3xUE0KHTk9r0ZR5/N+sg2K6J0LS/Ntud1WUCW64iT2+P0dBE13umjHUeBxsy6eX9OAK/C4Fzm/RjQowWBC4zBwhg5qqhNpXnkEiC/fsHFPyY8UCpl8MCd5IGbQ822UzYqCD4uy8LgKyKxwEPk6+DvrZEwYe0k6vyeVs6Dut5+pbxz+omLudzpPrVMtPN4NPOpF+PcX/aCOFvD4ZKbio4s/8LxkXljxJdXglXleDnSCX/yJgYhDlTZGOOsOzjJCG1UcRMzOhwV68fI2Dv7b80a8WHdERBuyPC50PMfMEYzVB89gNgnKK9vbLHMIKRzrhMkS0UIxXyPngagImS+puHDrWg55Aiirug9SGjNxs6MblwiL+/2WpYj4ajpus6MxXiKvvBDdodv3o5fqsmA5iPqNFmCP1SHKLhrkoM2FxCoK59XSsapLwCV+fLLk743PflphvjlET2IK51FSckdtlvEXio55kwk+qO5sjlaaXbGyi4QVDRzX57DCn0Qchuf+QL/IzbPJEGpdqTmC/lGizoT0J5I2CS95ZnK/FlBNO9BysD1qm+VewB+QkpWSir7V7YO94Q9cm/fXKeD2yWjASytIbx0RVC5M8i3SsITK55MPFHUMF3CusZSMROkHjbdky3YMhu6T2Q6zZSq0snfRurETVndRitJv9vh1Hbg73KcsVPM7DtcaEorb6uweOboqBkNvXg9eQ6Nl/WAcooXH82QnsAzDFlfYFSoxJOf16O+skc9jFL3VOQpR9PnfFcX1qbALeRNgBuRs9VnWYP6dN6ew8OBZe2yDEtvsdsJ13c+5g27XnbDbNiV+c9b3MvMQ9jz8WVaXDEchShmhAxCkQoJaHBJGa5UjdHa7BCRJURWGY0XFKqCR7GM08Bq2OIIWAwnqZLSomK+d3fQk3x6TsWtx0daXEVRJs4m66uyRBhrR9+3fd8OIelG3l5NhzR8ZRjnxBD/m/BAbWAx5qUJUHB7eUWxiv2Qmykm2YEHCImMKezGoklT1l8x3Q3NWj2x6JaFuxZIMnkx4YxIkIQU5aqy261iWVb+r+dEiKERGgCIkIxXOcnHbwbcolJgkyK8ERRH3Jxk4XOJvo/wdvlk44q6cFAo0JbuwoMmclijaPwQRP+xOfRrdNlQDJJAp9NoF/x7TJ3hXeH9GWKAPhMaVoFccBpJJhcEbkTcCcFAjnZsm5fUcJFPYeWRu3fOL3LnPLczZiOVuBMFRzI0Uygq9kHTe+PjG7n4h+wObEMgjeTWJYm8sCAWfYeb5kw/Mz5nbxQYQhRDDVgiZwhUULOO3WGZZWT+kJEC1tNTvjxetvGwi/OUeigdhqg9PITDXz1x9rf6SSijd4UvcYt3iXaepHfIrx3Asww1syMZyaOk1jxeKYyhEL1xE7uVbYpOSN7SbDMpKvk/jG75mJMNWaRZE4TOkd/OaPRyJMCikoYk9eRoU8YGWyHRioU5Oy3PVQO8Q/5o7NbmlV8PuRVcDLjeVJBIN76wLIkR0kmH87BVnpLGl5nuY+aZ02mPPRFtNOiTacRY2EouEgA1mm0QDpDtUMzBkiedOhU0qE+Ye1OLT/uGoKrApeYWCm5+Ha+gTL6O1KyoYacQAFYlyPVjRqM6AGNWmkyFlOIWQTY+LtmCwByVS+IOyVTbjyevSh/1RRk0clBr3zI3uM0hago11yv2+VYNa0vaAluvs9F8nQBCBccGO3GeYcGxDzoJo5fSQ55rr+Ch6csRKJEXS84J9RYagvVC7sntn9lkpkOdTsHFkI71GOwABmcji5tBBcQZCf9rYtjOoLGP4D88ILkUEl9TcuDG+60y1n+LNCwGdfxrNKTzQ8JQcdO/eLHLaYSuy0rzGjlurL5z7fDYh//CEGKWdXnfm0mOaB5uWZ67VI4849X6VvAp50jkCSo+rSHJ6+LrUjdn7iyKQdUeVTilcN11X/HUvPDAjl2e4S+LPVanwweq4z9LvT6Vacqx3aFbgnu5Zi9fcybTaA2mu+XNu96ZZ1U6dtM/u8UTtejJ+cKD5JblsADGIQhRDkdugYycuIvdiTsdFU6TFyfBy88vrR9t2EKlORw6oPZlwpI0LZ1pSyGmt2awl3+1pZQ01jykGsop0MGeRJJIUuny1yvBdoScjhUKYuAO9oZlAhO3DFrSRlelEepAIVI6ArjtQBRZlzpvz7Pyale/ZOrqnQlw5Rmdba4HCSdR3IwiGaZHWmNbFeaeDzbq7Pz58ofbzJIueC8o3rm62BbJPscNxScZTeJKN//AUyuXDee4zvaKFFB5R57UaHGMwg9HUcky0COgwnrzaite6l3vhgwP+RIbhaUzyxf44Bj5cPzma3NIqcUHu7Oo5jR9is1jfvdh+OM0Z+hMX3KZyYGkeaZ+wr65dD4wZT+xB1IRxXX9qm5mdhHElwGO4Q0qGpIAdYadQpI/fuilvGpdVJAaBDKOPrScRNgCE11jM4tVHDJCluJ/AGvr/vk+W+RFk9ekGTM30+vNWNq6/Ckra9U5H2B8AAbPAaydNUEmPJ/xnG0oD4M9PX6WkWDp02UPtn0z81WMMmGAgaPkDGo2Dn7px/8RPA9PXI2PF8I+wHgPLC6ifaje+ut3iq712nN53WfvDaj6CInda/rZ7+a9+9Iwl7odOdKsTJ4cu9RNoyC3zvjfPxdIWsfbamVa78YQHt+I+XufQs9usbru4axcQF4IqVLtAXk2g1Mf5Jz9a12GG57jdks/rMc+mXk6D/qmedeJrN9LcaX6vrlZlruv9Gh40jd+I59em4CPOqmvwMNMtj6IP3Q86CEYqOcyjdKf6MuzRaLrj/GN1Ul1snE0yxR/bMGMtHtwcfcQBc6eLzq08u/H/xN4H5k7mUBfusmSOlXn3P2ofZsLYw82+FED16sSWH+T+JFeVgm83iwTI5ali+QIG0+Koea40afvJa3S8JaTz/2QvHOqFC/oJJXl+Zct822NLkMJ5Scn8p91zk9T5o9337iXcugeewRnYAEXQChvhqLYJwcexuJrqMqdtjKANRyVP8ilx65fwIsjtLHTAPWivvNjCqxsr9wNqkCvjckCrLKeaOyjqbzNniqrLGN95DMnwvG7xJFP9Ii/eWKCneS2byZfrCsdrqrEnDnZ07v7VOrWongFsA+bNIO/Fh6gPdZ/pmhZrHlVf957CfvRflTG1coOqhFO/uiIoiPBXy+4pVRp1kfO0tLrIhaQFPsBzuNi4C25eEE3lA/VOB8H0bVGzGeQuAZUT/2VpG3TN8x+ipnGlU7kJ01MR7RE3VUmeTbLnNvpRZPbUQjt1m1PLvba3ScRwM3n8kpW2gbTJ28zxlwcm6zbyspDJAiIma8u6KJpsyHVV1lUrqfOtW8mFniHHVldMXuWX3LCFtI0nXo5XNGPeMEdLWyJ2DmYreD6h7o0fUg57W0FjgQj8dNU/x9EPJGBnqZ5qMm28V+eORToOVichsgEbnMEDd4nbuAfgB6FjNfu0zWVjlxThXKLddJQdBDwbeDhwBvBQ4G3AT2ddaX1JadTSpXEG+HNZRPvSfc5xGcM8hJr/ElW++PpvmukX3CAwVhCPLR4DMulTnjwk3jxuZgF4dcpYj7Arq8d4FdYTXAqtJ0lS1TO466+nSDxReRnTPAwh4NqGeme02noXQiX1rtgKitxaRtGYM9f8ejW++PqxaFH17gT86z2wudd7siRVvXCJ6/1xsSHgQODOcmRJkW2SvDlXpnlmc6WmlWfqRVrI7AFHmeh1p5cu0JOS3C0QpHCbXI2BcnSYlhJduc4yLxcuLfmWKfZvjrnypKvLUWPueskWKx39qfVprUW8OSfHkr5PxnWZLc9yX2TRL6okuUe7k/ikr3G0qHk+R77pZrsxzPki86RvZdRUXMadKx9zlLzyrju1dPAwO6msaM2QrUvvokQLf37q03o9W63ZndDVdZHcrs9l3DTP3clcSfpcs5DIa8wxP4DSZ1emAuR7pef0tksZB9+CGDtXvlQqs1dfd65Us56QsxTlXkfY9Oy23q/SKzRWAGInVYsD/vKn2W+ItHhiUM1eLbCPBoU0v2TFAgfXpLuqMyXiyMKnBxwp5eETM4odgpObbXHLdTfaKv+eMkZTNSwJZ1n5xLj89XKVITWfg9twM8dBv7nrtjtdLDufofYpGpkDyjhkTE7UxooYdxZCJ9eVpwfuuW9ukdL0ifJyny/vX6byy59PAXy9cyp+6DBhwxlXSAQTzbNAZinmR4wkW5b6dkcRFFWfYDmGzIkm1CILaeVGjxEzlknCYscxudTSTPGQLq58eQpk1BIXDptFZZiqHoGYSLaFaQrLlRHYLR6l2BI76RVZnDRZ8vIdFl0BjekVphBTUcXWiE1ZiTjL+jm1pQxKktNPzAx2hnjGmrkXs5z0Xs4+MQnsJvvgLaYVNlgZzZyQiJjFt9t2WbVKcQNtUpZSVrye/n51mrRfhDuzYa3+/Y6cuVbsr1Z6wdX3/2VRW131NRTBQvqDXAMOrvH8JUpm28liNdZUcy21opwhkOQ1P3yt2qyqLUMbGR11DBtDuyMuu5QpM1Nm9hnRn6Qu6nDWHntZsyHD89EnP/tditK3fj7QmSt3nrwaBQpg0h3lKlRabru6hvJbrayRAgWdbiy8cESRosWKlygptyBZvV1/MpcLFCxUuEhTTRcVFjGFstYE63R75LF/PKldvJkSJaEN9WOBIMmKqumGadmO6/lEEplCpdEZTBaK4UFsDpfHFwhFYolUJlcoVWqNVqc3OF2c83ZEeWo0KLSaWmoz7zDd0lQ6lWbi5g1rru0/L3KJPDN9UYb9siDXFxCtO3nJbKfduqTTjDMxbPQ/GhznKhQSHFedyxL09g7NJxHOepZJoVvLW+qCG9be8pH+5cBfICZTSloD3XZk1rhTds/cJ5dZSDOv+VPCcON9OMFtViTPC9wPcXh/AkSIsZRJNodOO21OL+xY+aXB409KS9mgwb/Ro1ByC+lYlt2pPRHfkBCe89q96dc76MkleOm4iZymsTU70INvcSAvEyMTdZA5L1OzI3tLoyXjAiPPDdREDdXlYJbzjkXChDyaeFRiF4Es9EzahcLknbBvLl33U0ygLxQT1TQ0bZq9Px8Qc+InBNKJDJkhLv0uDIpBgdyZc9FI9S6bskil4mU/Vqd03alOtar4xEpQqfOwRTA+wWbeLE4sw9+Sdgq7DuD3sHj899rhII1lXvkiVLk6sQA0sQhzpcq0w0z9QuOMdID6GOlwqJWewo04UpOQZhZt8CA0Otkg5SvW1lr+KFLRydryJaRkRcoDj6S1Li2mC8aGgjS44bwIZM7E9Tai16uQ25v1a3XB2KutzIBQCRnUWggZhkvxDXnj2JsVcWyODECPjXUXrABImhPo3JHiD+OweAcjpa0pUZJ7GNdmdeyI+an/SZP83aYZV9cKZa6SZS41AklZ0Ao3KW5TjT/a7dHR1eaibbWMWbd5DiSnD27KXEccOr1xFbguMSLUuCNNAW6CZZor3XCCxlw+2p328R4fcZZvzOVrQM0+ORktQSsa8dwHomZ7kqg8ttVGmYi2IC/28Nk7QzM8sHgP8xniPcyHNu8TPuLwMZcPbf60oyZkb7XqaCPA2/bL73+cQYcVsYCI6Oom2V1RFlgEgEEioqscNgTykAAgrANhM5EAMEzYAB8wDUBneeEtQH4h9wmUwKMDQK/d4GARAAYJ9Bo2ABCwZ0AAAAAbAAA+AEAH8BYgPwMuAzXiEVvHJUN3Y9h4PL+lmY+nE6F3UJhcPZUCrgQy2xkrCBOf85GmaQV1AKG31uXaQ+rqDtuxMsNXfsqErvFhqTe+7iFeJW8JFu5S1E5qsdTgyC6iG3EvgXURZyWFWM6cbtnbgPsGjAw6WCQqn7ldLUsqjcO4TYdBv+dlARUzZwxFvLJpr9zGf5Uet85EiWdb6kKJm8YM/itdecYElJllTfiK/VjL3OML250DHyfenkYR9rnPh5tDukRcNpvcRDOJ9lmD6uoguBfvxv+nYeSmnKpftmM/EN7mbH1ukA77Psse/Ymhr2x5u0p4JH7hKPZ0ytmyQ/Hzh+n4/f/pPxpS3AIAAA=="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.unsplash.com/photo-1642790106117-e829e14a795f?w=800\u0026h=480\u0026fit=crop\u0026q=80","fqdn":"images.unsplash.com","domain":"unsplash.com","tld":"com"},"ip":{"addr":"151.101.194.208","port":443,"asn":54113,"as":"FASTLY","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"lazy-img","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.692Z","timestamp":1785142155692,"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":"images.unsplash.com","organization":""},"issuer":{"commonName":"GlobalSign Atlas R3 DV TLS CA 2025 Q3","organization":"GlobalSign nv-sa"},"validity":{"start":"Tue, 12 Aug 2025 01:21:13 GMT","end":"Sun, 13 Sep 2026 01:21:12 GMT"},"fingerprint":{"sha1":"46:28:F0:69:6F:53:FC:9F:BA:6A:73:37:D0:D7:C8:87:AE:06:47:7A","sha256":"80:93:A2:9A:83:84:21:A8:A0:ED:D9:72:A8:E3:4D:EC:8E:A5:E4:4B:42:68:17:09:AA:D6:6C:7C:1B:9D:2A:48"}}},"request":{"raw":"GET /photo-1642790106117-e829e14a795f?w=800\u0026h=480\u0026fit=crop\u0026q=80 HTTP/1.1\r\nHost: images.unsplash.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://platinumglobalexchange.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\nx-imgix-id: 6239a97bd925b2144d3e3a903dbb3b05c50378d2\r\ncache-control: public, max-age=31536000\r\nlast-modified: Fri, 24 Jul 2026 02:00:11 GMT\r\nserver: imgix\r\ndate: Mon, 27 Jul 2026 08:49:15 GMT\r\nage: 283744\r\naccept-ranges: bytes\r\ncontent-type: image/jpeg\r\naccess-control-allow-origin: *\r\ntiming-allow-origin: *\r\ncross-origin-resource-policy: cross-origin\r\nx-content-type-options: nosniff\r\nx-served-by: cache-fra-etou8220199-FRA, cache-bma-essb1270029-BMA\r\nx-cache: HIT, HIT\r\nalt-svc: h3=\":443\";ma=86400,h3-29=\":443\";ma=86400,h3-27=\":443\";ma=86400\r\ncontent-length: 30175\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":30175,"size_decoded":30779,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, progressive, precision 8, 800x480, components 3","md5":"2a3bba10be97b5d697f5e3000f996d46","sha1":"d28d994c118541006975da8f65c772946a8eb1f3","sha256":"04cb25da888711c1ec0ee872bf2eb5703eabce1ceb470053cb22474018c32d5a","sha512":"e8d4abcfdeadffbec3debe6db4e6195234b7850d6d39812d7d4c5dbcdf05625e12f9edb3f104d98e2468930a3a01f69ad735d7c9c6b1f6ef1430477cd2b3d70f","ssdeep":"768:hYyYSUCQdoSXxOQKw8X5zXEhkA/I01W78XYdULV3NXS:hZtaAQKw8XNQhI0Q78XYdULV30","tlshash":"43d2f150ef980a32f938527af4422bf7f5626c0cc3b27206db4c252ac2ebdd9d5c5514","first_seen":"2026-07-27T05:56:47.602717Z","last_seen":"2026-07-27T08:50:16.797566Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":46,"timings":{"blocked":-1,"dns":3,"connect":9,"send":0,"wait":12,"receive":3,"ssl":19},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"platinumglobalexchange.com/api/investments","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.901Z","timestamp":1785142155901,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"platinumglobalexchange.com","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Thu, 28 May 2026 04:08:45 GMT","end":"Wed, 26 Aug 2026 04:08:44 GMT"},"fingerprint":{"sha1":"F1:EB:A7:99:4C:6E:CE:D6:1F:92:20:91:91:C3:81:76:20:9A:D6:32","sha256":"7B:FA:E7:B2:89:CA:63:B1:3D:30:9F:59:CB:12:58:36:C9:9A:B5:87:36:8F:80:24:DD:C1:34:DF:77:35:B0:04"}}},"request":{"raw":"GET /api/investments HTTP/1.1\r\nHost: platinumglobalexchange.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://platinumglobalexchange.com/\r\nContent-Type: application/json\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 401 \r\naccess-control-allow-origin: https://platinumglobalexchange.com\r\naccess-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, Authorization, X-Requested-With\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin,Accept-Encoding\r\ncontent-type: application/json\r\ncontent-encoding: gzip\r\ncontent-length: 45\r\ndate: Mon, 27 Jul 2026 08:49:16 GMT\r\nserver: LiteSpeed\r\nx-powered-by: CyberPanel-OLS/2.4.4\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"401","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":25,"size_decoded":712,"mime_type":"application/json","magic":"JSON text data","md5":"05b61d652b684cc332d9cfad0dee2eb6","sha1":"9d105d34ded5479e72c12fd8fec5fe3b0ab05e09","sha256":"3306f65a2e14b828de17e6ed0119cba80ae77c55d6b7850d10aff753c0faddaf","sha512":"3b78801a902eda3385ec9da8b017f8c06d64dcecb20f03822ff96dccd55f2076e78848d0e07a95655192059d2094250ccaff3e316fa84edda4eba7038c733dfa","ssdeep":"","tlshash":"fa70002fb888080a00030002282008a2288000a002380fc0a8e230000208c8aca00808","first_seen":"2023-04-06T20:48:15Z","last_seen":"2026-07-29T05:01:14.590927Z","times_seen":435,"resource_available":false,"data":"eyJlcnJvciI6IkFjY2VzcyBkZW5pZWQifQ=="}},"time_used":188,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":188,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"platinumglobalexchange.com/api/investments","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.903Z","timestamp":1785142155903,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"platinumglobalexchange.com","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Thu, 28 May 2026 04:08:45 GMT","end":"Wed, 26 Aug 2026 04:08:44 GMT"},"fingerprint":{"sha1":"F1:EB:A7:99:4C:6E:CE:D6:1F:92:20:91:91:C3:81:76:20:9A:D6:32","sha256":"7B:FA:E7:B2:89:CA:63:B1:3D:30:9F:59:CB:12:58:36:C9:9A:B5:87:36:8F:80:24:DD:C1:34:DF:77:35:B0:04"}}},"request":{"raw":"GET /api/investments HTTP/1.1\r\nHost: platinumglobalexchange.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://platinumglobalexchange.com/\r\nContent-Type: application/json\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 401 \r\naccess-control-allow-origin: https://platinumglobalexchange.com\r\naccess-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, Authorization, X-Requested-With\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin,Accept-Encoding\r\ncontent-type: application/json\r\ncontent-encoding: gzip\r\ncontent-length: 45\r\ndate: Mon, 27 Jul 2026 08:49:16 GMT\r\nserver: LiteSpeed\r\nx-powered-by: CyberPanel-OLS/2.4.4\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"401","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":25,"size_decoded":712,"mime_type":"application/json","magic":"JSON text data","md5":"05b61d652b684cc332d9cfad0dee2eb6","sha1":"9d105d34ded5479e72c12fd8fec5fe3b0ab05e09","sha256":"3306f65a2e14b828de17e6ed0119cba80ae77c55d6b7850d10aff753c0faddaf","sha512":"3b78801a902eda3385ec9da8b017f8c06d64dcecb20f03822ff96dccd55f2076e78848d0e07a95655192059d2094250ccaff3e316fa84edda4eba7038c733dfa","ssdeep":"","tlshash":"fa70002fb888080a00030002282008a2288000a002380fc0a8e230000208c8aca00808","first_seen":"2023-04-06T20:48:15Z","last_seen":"2026-07-29T05:01:14.590927Z","times_seen":435,"resource_available":false,"data":"eyJlcnJvciI6IkFjY2VzcyBkZW5pZWQifQ=="}},"time_used":185,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":185,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"platinumglobalexchange.com/api/market/news","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.905Z","timestamp":1785142155905,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"platinumglobalexchange.com","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Thu, 28 May 2026 04:08:45 GMT","end":"Wed, 26 Aug 2026 04:08:44 GMT"},"fingerprint":{"sha1":"F1:EB:A7:99:4C:6E:CE:D6:1F:92:20:91:91:C3:81:76:20:9A:D6:32","sha256":"7B:FA:E7:B2:89:CA:63:B1:3D:30:9F:59:CB:12:58:36:C9:9A:B5:87:36:8F:80:24:DD:C1:34:DF:77:35:B0:04"}}},"request":{"raw":"GET /api/market/news HTTP/1.1\r\nHost: platinumglobalexchange.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://platinumglobalexchange.com/\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccess-control-allow-origin: https://platinumglobalexchange.com\r\naccess-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS\r\naccess-control-allow-headers: Content-Type, Authorization, X-Requested-With\r\naccess-control-allow-credentials: true\r\naccess-control-max-age: 86400\r\nvary: Origin,Accept-Encoding\r\ncontent-type: application/json\r\ncontent-encoding: gzip\r\ncontent-length: 590\r\ndate: Mon, 27 Jul 2026 08:49:16 GMT\r\nserver: LiteSpeed\r\nx-powered-by: CyberPanel-OLS/2.4.4\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1152,"size_decoded":1258,"mime_type":"application/json","magic":"JSON text data","md5":"27278e7490d5ce5a6e4696b9cd7efa2e","sha1":"49a946c5f1ea2f8121f1639e64a7e1d07821f70c","sha256":"9a7bc3fdd2572d49018747bef91effb990cf4da2d27b319c0f081644f914036e","sha512":"797e09cb920d67e51f5537804ac3964431ca18d5fa7c23f84972bc275971567868fc5e2e2af0af80ab704f54cf6468bab6944a773589fa3a332d742fc28229b6","ssdeep":"","tlshash":"c8211175037738b78fa528d4a08b26e513c971a9db900305f3e8c3ec1195047c78a5fb","first_seen":"2026-07-27T08:49:49.56742Z","last_seen":"2026-07-27T08:49:49.56742Z","times_seen":1,"resource_available":false,"data":"eyJzdWNjZXNzIjp0cnVlLCJuZXdzIjpbeyJ0aXRsZSI6IkJpdGNvaW4gU3VyZ2VzIFBhc3QgS2V5IFJlc2lzdGFuY2UgTGV2ZWwiLCJzdW1tYXJ5IjoiQml0Y29pbiBicm9rZSB0aHJvdWdoIHRoZSAkNzUsMDAwIHJlc2lzdGFuY2UgbGV2ZWwgYXMgaW5zdGl0dXRpb25hbCBpbnZlc3RvcnMgY29udGludWUgdG8gYWNjdW11bGF0ZS4iLCJzb3VyY2UiOiJDcnlwdG9EYWlseSIsInB1Ymxpc2hlZEF0IjoiMjAyNi0wNy0yN1QwNjo0OToxNiIsInVybCI6IiMifSx7InRpdGxlIjoiRXRoZXJldW0gMi4wIFN0YWtpbmcgUmVhY2hlcyBOZXcgTWlsZXN0b25lIiwic3VtbWFyeSI6Ik92ZXIgMzAgbWlsbGlvbiBFVEggaXMgbm93IHN0YWtlZCBvbiB0aGUgYmVhY29uIGNoYWluLCByZXByZXNlbnRpbmcgMjUlIG9mIHRvdGFsIHN1cHBseS4iLCJzb3VyY2UiOiJCbG9ja2NoYWluTmV3cyIsInB1Ymxpc2hlZEF0IjoiMjAyNi0wNy0yN1QwMzo0OToxNiIsInVybCI6IiMifSx7InRpdGxlIjoiVVNEVCBNYXJrZXQgQ2FwIEhpdHMgQWxsLVRpbWUgSGlnaCIsInN1bW1hcnkiOiJUZXRoZXIncyBVU0RUIHN0YWJsZWNvaW4gbWFya2V0IGNhcGl0YWxpemF0aW9uIHJlYWNoZWQgJDEyMCBiaWxsaW9uIGFzIGRlbWFuZCBpbmNyZWFzZXMuIiwic291cmNlIjoiQ29pbkRlc2siLCJwdWJsaXNoZWRBdCI6IjIwMjYtMDctMjdUMDA6NDk6MTYiLCJ1cmwiOiIjIn0seyJ0aXRsZSI6IlJlZ3VsYXRvcnkgQ2xhcml0eSBCb29zdHMgQ3J5cHRvIE1hcmtldHMiLCJzdW1tYXJ5IjoiTmV3IHJlZ3VsYXRvcnkgZnJhbWV3b3JrcyBpbiBtYWpvciBlY29ub21pZXMgcHJvdmlkZSBjbGVhcmVyIGd1aWRlbGluZXMgZm9yIGNyeXB0b2N1cnJlbmN5IGV4Y2hhbmdlcy4iLCJzb3VyY2UiOiJGaW5hbmNlRGFpbHkiLCJwdWJsaXNoZWRBdCI6IjIwMjYtMDctMjZUMjA6NDk6MTYiLCJ1cmwiOiIjIn0seyJ0aXRsZSI6IkRlRmkgUHJvdG9jb2xzIFNlZSBSZWNvcmQgVHJhZGluZyBWb2x1bWUiLCJzdW1tYXJ5IjoiRGVjZW50cmFsaXplZCBmaW5hbmNlIHByb3RvY29scyBwcm9jZXNzZWQgb3ZlciAkNTAgYmlsbGlvbiBpbiB2b2x1bWUgdGhpcyB3ZWVrLiIsInNvdXJjZSI6IkRlRmlQdWxzZSIsInB1Ymxpc2hlZEF0IjoiMjAyNi0wNy0yNlQwODo0OToxNiIsInVybCI6IiMifV19"}},"time_used":187,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":184,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css","fqdn":"cdnjs.cloudflare.com","domain":"cloudflare.com","tld":"com"},"ip":{"addr":"104.17.24.14","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:08.815Z","timestamp":1785142148815,"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":"cdnjs.cloudflare.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 10 Jul 2026 07:07:58 GMT","end":"Thu, 08 Oct 2026 08:07:45 GMT"},"fingerprint":{"sha1":"DF:66:97:F5:13:A2:C0:81:D3:5B:60:C4:B0:7F:CD:78:F5:91:14:D5","sha256":"3C:F2:95:73:83:BA:4D:D9:CC:85:8F:BC:7D:2C:22:CF:F3:49:9A:3A:E4:1D:FC:AE:CB:07:3D:66:89:74:0E:C5"}}},"request":{"raw":"GET /ajax/libs/font-awesome/6.4.0/css/all.min.css HTTP/1.1\r\nHost: cdnjs.cloudflare.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://platinumglobalexchange.com/\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:49:08 GMT\r\ncontent-type: text/css; charset=utf-8\r\ncontent-length: 18752\r\ncf-cache-status: BYPASS\r\naccess-control-allow-origin: *\r\ncache-control: no-transform, public, s-maxage=30672000, max-age=30672000, immutable\r\ncontent-encoding: br\r\nlast-modified: Mon, 27 Mar 2023 17:46:59 GMT\r\nvary: Accept-Encoding\r\nx-cdnjs-cache: HIT\r\ncross-origin-resource-policy: cross-origin\r\ntiming-allow-origin: *\r\nx-content-type-options: nosniff\r\ncf-cdnjs-via: cfworker/r2\r\nstrict-transport-security: max-age=15780000\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=YqgElJfcLh1FG4oGDPE6s4U%2BWYd172roWkSaGaZHQp0qPBdD3UqaTKF7BvPAe%2Bz%2FVv89IeSeLZAS5PqLItHQ%2FJxflpq8TsHDZeEQ1pb0ok%2BjUwv92yu8xAunooKQvCDsFAidrNzh\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\npriority: u=2,i=?0\r\nserver: cloudflare\r\ncf-ray: a21a639e2da51a30-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"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":102025,"size_decoded":19747,"mime_type":"text/css; charset=utf-8","magic":"ASCII text, with very long lines (52276)","md5":"ded1c367363e8b20bdc6a19b8350a737","sha1":"8c06d82739d14b094ff6d9036021a252bd1d985d","sha256":"1edb1725a9ea8ca4dcf2f5508cee183218aa1685e47c1b23056717f754f58ebf","sha512":"89e71d2e66ac925ec2564aa45cd43f647fd72e5bd664e2728fb632eed71e9e6a43d72a404a8ce9993fc4d223ed985201e3a66676d01cf5e341bc7d07fd9a6207","ssdeep":"1536:OwMCMPMCMjMCM4MCMwMCM3sVMX709gbPMfjSFOTyPGuZprfZCl:S709gMGFiyPGuZpfZCl","tlshash":"2ea3a7f9e44c05d97732c44bab95b37c65b6f738d5810ca9f02f580c1ad26a822c6f7a","first_seen":"2023-04-06T15:05:25Z","last_seen":"2026-07-29T09:39:18.328288Z","times_seen":58550,"resource_available":false,"data":"LyohCiAqIEZvbnQgQXdlc29tZSBGcmVlIDYuNC4wIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tCiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpCiAqIENvcHlyaWdodCAyMDIzIEZvbnRpY29ucywgSW5jLgogKi8KLmZhe2ZvbnQtZmFtaWx5OnZhcigtLWZhLXN0eWxlLWZhbWlseSwiRm9udCBBd2Vzb21lIDYgRnJlZSIpO2ZvbnQtd2VpZ2h0OnZhcigtLWZhLXN0eWxlLDkwMCl9LmZhLC5mYS1icmFuZHMsLmZhLWNsYXNzaWMsLmZhLXJlZ3VsYXIsLmZhLXNoYXJwLC5mYS1zb2xpZCwuZmFiLC5mYXIsLmZhc3stbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtkaXNwbGF5OnZhcigtLWZhLWRpc3BsYXksaW5saW5lLWJsb2NrKTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2xpbmUtaGVpZ2h0OjE7dGV4dC1yZW5kZXJpbmc6YXV0b30uZmEtY2xhc3NpYywuZmEtcmVndWxhciwuZmEtc29saWQsLmZhciwuZmFze2ZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNiBGcmVlIn0uZmEtYnJhbmRzLC5mYWJ7Zm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA2IEJyYW5kcyJ9LmZhLTF4e2ZvbnQtc2l6ZToxZW19LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLTZ4e2ZvbnQtc2l6ZTo2ZW19LmZhLTd4e2ZvbnQtc2l6ZTo3ZW19LmZhLTh4e2ZvbnQtc2l6ZTo4ZW19LmZhLTl4e2ZvbnQtc2l6ZTo5ZW19LmZhLTEweHtmb250LXNpemU6MTBlbX0uZmEtMnhze2ZvbnQtc2l6ZTouNjI1ZW07bGluZS1oZWlnaHQ6LjFlbTt2ZXJ0aWNhbC1hbGlnbjouMjI1ZW19LmZhLXhze2ZvbnQtc2l6ZTouNzVlbTtsaW5lLWhlaWdodDouMDgzMzNlbTt2ZXJ0aWNhbC1hbGlnbjouMTI1ZW19LmZhLXNte2ZvbnQtc2l6ZTouODc1ZW07bGluZS1oZWlnaHQ6LjA3MTQzZW07dmVydGljYWwtYWxpZ246LjA1MzU3ZW19LmZhLWxne2ZvbnQtc2l6ZToxLjI1ZW07bGluZS1oZWlnaHQ6LjA1ZW07dmVydGljYWwtYWxpZ246LS4wNzVlbX0uZmEteGx7Zm9udC1zaXplOjEuNWVtO2xpbmUtaGVpZ2h0Oi4wNDE2N2VtO3ZlcnRpY2FsLWFsaWduOi0uMTI1ZW19LmZhLTJ4bHtmb250LXNpemU6MmVtO2xpbmUtaGVpZ2h0Oi4wMzEyNWVtO3ZlcnRpY2FsLWFsaWduOi0uMTg3NWVtfS5mYS1md3t0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxLjI1ZW19LmZhLXVse2xpc3Qtc3R5bGUtdHlwZTpub25lO21hcmdpbi1sZWZ0OnZhcigtLWZhLWxpLW1hcmdpbiwyLjVlbSk7cGFkZGluZy1sZWZ0OjB9LmZhLXVsPmxpe3Bvc2l0aW9uOnJlbGF0aXZlfS5mYS1saXtsZWZ0OmNhbGModmFyKC0tZmEtbGktd2lkdGgsIDJlbSkqLTEpO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOnZhcigtLWZhLWxpLXdpZHRoLDJlbSk7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtYm9yZGVye2JvcmRlci1yYWRpdXM6dmFyKC0tZmEtYm9yZGVyLXJhZGl1cywuMWVtKTtib3JkZXI6dmFyKC0tZmEtYm9yZGVyLXdpZHRoLC4wOGVtKSB2YXIoLS1mYS1ib3JkZXItc3R5bGUsc29saWQpIHZhcigtLWZhLWJvcmRlci1jb2xvciwjZWVlKTtwYWRkaW5nOnZhcigtLWZhLWJvcmRlci1wYWRkaW5nLC4yZW0gLjI1ZW0gLjE1ZW0pfS5mYS1wdWxsLWxlZnR7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6dmFyKC0tZmEtcHVsbC1tYXJnaW4sLjNlbSl9LmZhLXB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWxlZnQ6dmFyKC0tZmEtcHVsbC1tYXJnaW4sLjNlbSl9LmZhLWJlYXR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYS1iZWF0O2FuaW1hdGlvbi1uYW1lOmZhLWJlYXQ7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LDBzKTthbmltYXRpb24tZGVsYXk6dmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LDBzKTstd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpO2FuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsZWFzZS1pbi1vdXQpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZyxlYXNlLWluLW91dCl9LmZhLWJvdW5jZXstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhLWJvdW5jZTthbmltYXRpb24tbmFtZTpmYS1ib3VuY2U7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LDBzKTthbmltYXRpb24tZGVsYXk6dmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LDBzKTstd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpO2FuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsY3ViaWMtYmV6aWVyKC4yOCwuODQsLjQyLDEpKX0uZmEtZmFkZXstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhLWZhZGU7YW5pbWF0aW9uLW5hbWU6ZmEtZmFkZTstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKX0uZmEtYmVhdC1mYWRlLC5mYS1mYWRley13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwwcyk7YW5pbWF0aW9uLWRlbGF5OnZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwwcyk7LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sbm9ybWFsKTthbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sbm9ybWFsKTstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sMXMpO2FuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sMXMpfS5mYS1iZWF0LWZhZGV7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYS1iZWF0LWZhZGU7YW5pbWF0aW9uLW5hbWU6ZmEtYmVhdC1mYWRlOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpfS5mYS1mbGlwey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmEtZmxpcDthbmltYXRpb24tbmFtZTpmYS1mbGlwOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OnZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwwcyk7YW5pbWF0aW9uLWRlbGF5OnZhcigtLWZhLWFuaW1hdGlvbi1kZWxheSwwcyk7LXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sbm9ybWFsKTthbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kaXJlY3Rpb24sbm9ybWFsKTstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sMXMpO2FuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tZHVyYXRpb24sMXMpOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1mYS1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1mYS1hbmltYXRpb24tdGltaW5nLGVhc2UtaW4tb3V0KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsZWFzZS1pbi1vdXQpfS5mYS1zaGFrZXstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhLXNoYWtlO2FuaW1hdGlvbi1uYW1lOmZhLXNoYWtlOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsbGluZWFyKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsbGluZWFyKX0uZmEtc2hha2UsLmZhLXNwaW57LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LDBzKTthbmltYXRpb24tZGVsYXk6dmFyKC0tZmEtYW5pbWF0aW9uLWRlbGF5LDBzKTstd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpO2FuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpfS5mYS1zcGluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmEtc3BpbjthbmltYXRpb24tbmFtZTpmYS1zcGluOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwycyk7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwycyk7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsbGluZWFyKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsbGluZWFyKX0uZmEtc3Bpbi1yZXZlcnNley0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbjpyZXZlcnNlfS5mYS1wdWxzZSwuZmEtc3Bpbi1wdWxzZXstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhLXNwaW47YW5pbWF0aW9uLW5hbWU6ZmEtc3Bpbjstd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpO2FuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLWRpcmVjdGlvbixub3JtYWwpOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7YW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi1kdXJhdGlvbiwxcyk7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWZhLWFuaW1hdGlvbi10aW1pbmcsc3RlcHMoOCkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tZmEtYW5pbWF0aW9uLXRpbWluZyxzdGVwcyg4KSl9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmZhLWJlYXQsLmZhLWJlYXQtZmFkZSwuZmEtYm91bmNlLC5mYS1mYWRlLC5mYS1mbGlwLC5mYS1wdWxzZSwuZmEtc2hha2UsLmZhLXNwaW4sLmZhLXNwaW4tcHVsc2V7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LTFtczthbmltYXRpb24tZGVsYXk6LTFtczstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoxbXM7YW5pbWF0aW9uLWR1cmF0aW9uOjFtczstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7LXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OjBzO3RyYW5zaXRpb24tZGVsYXk6MHM7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOjBzO3RyYW5zaXRpb24tZHVyYXRpb246MHN9fUAtd2Via2l0LWtleWZyYW1lcyBmYS1iZWF0ezAlLDkwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9NDUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsMS4yNSkpO3RyYW5zZm9ybTpzY2FsZSh2YXIoLS1mYS1iZWF0LXNjYWxlLDEuMjUpKX19QGtleWZyYW1lcyBmYS1iZWF0ezAlLDkwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9NDUley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJlYXQtc2NhbGUsMS4yNSkpO3RyYW5zZm9ybTpzY2FsZSh2YXIoLS1mYS1iZWF0LXNjYWxlLDEuMjUpKX19QC13ZWJraXQta2V5ZnJhbWVzIGZhLWJvdW5jZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfTEwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06c2NhbGUodmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteSwuOSkpIHRyYW5zbGF0ZVkoMCl9MzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7dHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWZhLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTpzY2FsZSh2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXksLjk1KSkgdHJhbnNsYXRlWSgwKX01NyV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSk7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tZmEtYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpfTY0JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgZmEtYm91bmNlezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCl9MTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS14LDEuMSksdmFyKC0tZmEtYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTpzY2FsZSh2YXIoLS1mYS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWZhLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTt0cmFuc2Zvcm06c2NhbGUodmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tZmEtYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1oZWlnaHQsLS41ZW0pKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteCwxLjA1KSx2YXIoLS1mYS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tZmEtYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApfTU3JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWZhLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1mYS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSl9NjQley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKX19QC13ZWJraXQta2V5ZnJhbWVzIGZhLWZhZGV7NTAle29wYWNpdHk6dmFyKC0tZmEtZmFkZS1vcGFjaXR5LC40KX19QGtleWZyYW1lcyBmYS1mYWRlezUwJXtvcGFjaXR5OnZhcigtLWZhLWZhZGUtb3BhY2l0eSwuNCl9fUAtd2Via2l0LWtleWZyYW1lcyBmYS1iZWF0LWZhZGV7MCUsdG97b3BhY2l0eTp2YXIoLS1mYS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tZmEtYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7dHJhbnNmb3JtOnNjYWxlKHZhcigtLWZhLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpfX1Aa2V5ZnJhbWVzIGZhLWJlYXQtZmFkZXswJSx0b3tvcGFjaXR5OnZhcigtLWZhLWJlYXQtZmFkZS1vcGFjaXR5LC40KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9NTAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1mYS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKTt0cmFuc2Zvcm06c2NhbGUodmFyKC0tZmEtYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSl9fUAtd2Via2l0LWtleWZyYW1lcyBmYS1mbGlwezUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1mYS1mbGlwLXgsMCksdmFyKC0tZmEtZmxpcC15LDEpLHZhcigtLWZhLWZsaXAteiwwKSx2YXIoLS1mYS1mbGlwLWFuZ2xlLC0xODBkZWcpKTt0cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tZmEtZmxpcC14LDApLHZhcigtLWZhLWZsaXAteSwxKSx2YXIoLS1mYS1mbGlwLXosMCksdmFyKC0tZmEtZmxpcC1hbmdsZSwtMTgwZGVnKSl9fUBrZXlmcmFtZXMgZmEtZmxpcHs1MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlM2QodmFyKC0tZmEtZmxpcC14LDApLHZhcigtLWZhLWZsaXAteSwxKSx2YXIoLS1mYS1mbGlwLXosMCksdmFyKC0tZmEtZmxpcC1hbmdsZSwtMTgwZGVnKSk7dHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWZhLWZsaXAteCwwKSx2YXIoLS1mYS1mbGlwLXksMSksdmFyKC0tZmEtZmxpcC16LDApLHZhcigtLWZhLWZsaXAtYW5nbGUsLTE4MGRlZykpfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmEtc2hha2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpfTQley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyl9OCUsMjQley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKX0xMiUsMjgley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyl9MTYley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKX0yMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIyZGVnKTt0cmFuc2Zvcm06cm90YXRlKDIyZGVnKX0zMiV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpfTM2JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTJkZWcpfTQwJSx0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX19QGtleWZyYW1lcyBmYS1zaGFrZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xNWRlZyl9NCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE1ZGVnKX04JSwyNCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpfTEyJSwyOCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKX0xNiV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpfTIwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjJkZWcpfTMyJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMmRlZyl9MzYley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyl9NDAlLHRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pO3RyYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX1Aa2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19LmZhLXJvdGF0ZS05MHstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5mYS1yb3RhdGUtMTgwey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uZmEtcm90YXRlLTI3MHstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9LmZhLWZsaXAtaG9yaXpvbnRhbHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoLTEpO3RyYW5zZm9ybTpzY2FsZVgoLTEpfS5mYS1mbGlwLXZlcnRpY2Fsey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWSgtMSk7dHJhbnNmb3JtOnNjYWxlWSgtMSl9LmZhLWZsaXAtYm90aCwuZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWx7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEpO3RyYW5zZm9ybTpzY2FsZSgtMSl9LmZhLXJvdGF0ZS1ieXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUodmFyKC0tZmEtcm90YXRlLWFuZ2xlLG5vbmUpKTt0cmFuc2Zvcm06cm90YXRlKHZhcigtLWZhLXJvdGF0ZS1hbmdsZSxub25lKSl9LmZhLXN0YWNre2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyZW07bGluZS1oZWlnaHQ6MmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyLjVlbX0uZmEtc3RhY2stMXgsLmZhLXN0YWNrLTJ4e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlO3otaW5kZXg6dmFyKC0tZmEtc3RhY2stei1pbmRleCxhdXRvKX0uZmEtc3RhY2stMXh7bGluZS1oZWlnaHQ6aW5oZXJpdH0uZmEtc3RhY2stMnh7Zm9udC1zaXplOjJlbX0uZmEtaW52ZXJzZXtjb2xvcjp2YXIoLS1mYS1pbnZlcnNlLCNmZmYpfQoKLmZhLTA6YmVmb3Jle2NvbnRlbnQ6IlwzMCJ9LmZhLTE6YmVmb3Jle2NvbnRlbnQ6IlwzMSJ9LmZhLTI6YmVmb3Jle2NvbnRlbnQ6IlwzMiJ9LmZhLTM6YmVmb3Jle2NvbnRlbnQ6IlwzMyJ9LmZhLTQ6YmVmb3Jle2NvbnRlbnQ6IlwzNCJ9LmZhLTU6YmVmb3Jle2NvbnRlbnQ6IlwzNSJ9LmZhLTY6YmVmb3Jle2NvbnRlbnQ6IlwzNiJ9LmZhLTc6YmVmb3Jle2NvbnRlbnQ6IlwzNyJ9LmZhLTg6YmVmb3Jle2NvbnRlbnQ6IlwzOCJ9LmZhLTk6YmVmb3Jle2NvbnRlbnQ6IlwzOSJ9LmZhLWZpbGwtZHJpcDpiZWZvcmV7Y29udGVudDoiXGY1NzYifS5mYS1hcnJvd3MtdG8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTRiZCJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZSwuZmEtY2lyY2xlLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6Ilw0MCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmUsLmZhLXRyYXNoLWNhbjpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10ZXh0LWhlaWdodDpiZWZvcmV7Y29udGVudDoiXGYwMzQifS5mYS11c2VyLXRpbWVzOmJlZm9yZSwuZmEtdXNlci14bWFyazpiZWZvcmV7Y29udGVudDoiXGYyMzUifS5mYS1zdGV0aG9zY29wZTpiZWZvcmV7Y29udGVudDoiXGYwZjEifS5mYS1jb21tZW50LWFsdDpiZWZvcmUsLmZhLW1lc3NhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjdhIn0uZmEtaW5mbzpiZWZvcmV7Y29udGVudDoiXGYxMjkifS5mYS1jb21wcmVzcy1hbHQ6YmVmb3JlLC5mYS1kb3duLWxlZnQtYW5kLXVwLXJpZ2h0LXRvLWNlbnRlcjpiZWZvcmV7Y29udGVudDoiXGY0MjIifS5mYS1leHBsb3Npb246YmVmb3Jle2NvbnRlbnQ6IlxlNGU5In0uZmEtZmlsZS1hbHQ6YmVmb3JlLC5mYS1maWxlLWxpbmVzOmJlZm9yZSwuZmEtZmlsZS10ZXh0OmJlZm9yZXtjb250ZW50OiJcZjE1YyJ9LmZhLXdhdmUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjgzZSJ9LmZhLXJpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNzBiIn0uZmEtYnVpbGRpbmctdW46YmVmb3Jle2NvbnRlbnQ6IlxlNGQ5In0uZmEtZGljZS10aHJlZTpiZWZvcmV7Y29udGVudDoiXGY1MjcifS5mYS1jYWxlbmRhci1hbHQ6YmVmb3JlLC5mYS1jYWxlbmRhci1kYXlzOmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWFuY2hvci1jaXJjbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNGFhIn0uZmEtYnVpbGRpbmctY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTRkMSJ9LmZhLXZvbGxleWJhbGwtYmFsbDpiZWZvcmUsLmZhLXZvbGxleWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVmIn0uZmEtYXJyb3dzLXVwLXRvLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxlNGMyIn0uZmEtc29ydC1kZXNjOmJlZm9yZSwuZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLWNpcmNsZS1taW51czpiZWZvcmUsLmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1kb29yLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNTJiIn0uZmEtcmlnaHQtZnJvbS1icmFja2V0OmJlZm9yZSwuZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLWF0b206YmVmb3Jle2NvbnRlbnQ6IlxmNWQyIn0uZmEtc29hcDpiZWZvcmV7Y29udGVudDoiXGUwNmUifS5mYS1oZWFydC1tdXNpYy1jYW1lcmEtYm9sdDpiZWZvcmUsLmZhLWljb25zOmJlZm9yZXtjb250ZW50OiJcZjg2ZCJ9LmZhLW1pY3JvcGhvbmUtYWx0LXNsYXNoOmJlZm9yZSwuZmEtbWljcm9waG9uZS1saW5lcy1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1MzkifS5mYS1icmlkZ2UtY2lyY2xlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZTRjOSJ9LmZhLXB1bXAtbWVkaWNhbDpiZWZvcmV7Y29udGVudDoiXGUwNmEifS5mYS1maW5nZXJwcmludDpiZWZvcmV7Y29udGVudDoiXGY1NzcifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLW1hZ25pZnlpbmctZ2xhc3MtbG9jYXRpb246YmVmb3JlLC5mYS1zZWFyY2gtbG9jYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNjg5In0uZmEtZm9yd2FyZC1zdGVwOmJlZm9yZSwuZmEtc3RlcC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MSJ9LmZhLWZhY2Utc21pbGUtYmVhbTpiZWZvcmUsLmZhLXNtaWxlLWJlYW06YmVmb3Jle2NvbnRlbnQ6IlxmNWI4In0uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFlIn0uZmEtZm9vdGJhbGwtYmFsbDpiZWZvcmUsLmZhLWZvb3RiYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ0ZSJ9LmZhLXNjaG9vbC1jaXJjbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxlNTZjIn0uZmEtY3JvcDpiZWZvcmV7Y29udGVudDoiXGYxMjUifS5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmUsLmZhLWFuZ2xlcy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLXVzZXJzLXJlY3RhbmdsZTpiZWZvcmV7Y29udGVudDoiXGU1OTQifS5mYS1wZW9wbGUtcm9vZjpiZWZvcmV7Y29udGVudDoiXGU1MzcifS5mYS1wZW9wbGUtbGluZTpiZWZvcmV7Y29udGVudDoiXGU1MzQifS5mYS1iZWVyLW11Zy1lbXB0eTpiZWZvcmUsLmZhLWJlZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGZjIn0uZmEtZGlhZ3JhbS1wcmVkZWNlc3NvcjpiZWZvcmV7Y29udGVudDoiXGU0NzcifS5mYS1hcnJvdy11cC1sb25nOmJlZm9yZSwuZmEtbG9uZy1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYxNzYifS5mYS1idXJuOmJlZm9yZSwuZmEtZmlyZS1mbGFtZS1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDZhIn0uZmEtbWFsZTpiZWZvcmUsLmZhLXBlcnNvbjpiZWZvcmV7Y29udGVudDoiXGYxODMifS5mYS1sYXB0b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTA5In0uZmEtZmlsZS1jc3Y6YmVmb3Jle2NvbnRlbnQ6IlxmNmRkIn0uZmEtbWVub3JhaDpiZWZvcmV7Y29udGVudDoiXGY2NzYifS5mYS10cnVjay1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGU1OGYifS5mYS1yZWNvcmQtdmlueWw6YmVmb3Jle2NvbnRlbnQ6IlxmOGQ5In0uZmEtZmFjZS1ncmluLXN0YXJzOmJlZm9yZSwuZmEtZ3Jpbi1zdGFyczpiZWZvcmV7Y29udGVudDoiXGY1ODcifS5mYS1ib25nOmJlZm9yZXtjb250ZW50OiJcZjU1YyJ9LmZhLXBhc3RhZmFyaWFuaXNtOmJlZm9yZSwuZmEtc3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nOmJlZm9yZXtjb250ZW50OiJcZjY3YiJ9LmZhLWFycm93LWRvd24tdXAtYWNyb3NzLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxlNGFmIn0uZmEtc3Bvb246YmVmb3JlLC5mYS11dGVuc2lsLXNwb29uOmJlZm9yZXtjb250ZW50OiJcZjJlNSJ9LmZhLWphci13aGVhdDpiZWZvcmV7Y29udGVudDoiXGU1MTcifS5mYS1lbnZlbG9wZXMtYnVsazpiZWZvcmUsLmZhLW1haWwtYnVsazpiZWZvcmV7Y29udGVudDoiXGY2NzQifS5mYS1maWxlLWNpcmNsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGU0ZWIifS5mYS1jaXJjbGUtaDpiZWZvcmUsLmZhLWhvc3BpdGFsLXN5bWJvbDpiZWZvcmV7Y29udGVudDoiXGY0N2UifS5mYS1wYWdlcjpiZWZvcmV7Y29udGVudDoiXGY4MTUifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3JlLC5mYS1jb250YWN0LWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtc3RyaWtldGhyb3VnaDpiZWZvcmV7Y29udGVudDoiXGYwY2MifS5mYS1rOmJlZm9yZXtjb250ZW50OiJcNGIifS5mYS1sYW5kbWFyay1mbGFnOmJlZm9yZXtjb250ZW50OiJcZTUxYyJ9LmZhLXBlbmNpbC1hbHQ6YmVmb3JlLC5mYS1wZW5jaWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzAzIn0uZmEtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRhIn0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY29tbWVudHM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg2In0uZmEtZmlsZS1jbGlwYm9hcmQ6YmVmb3JlLC5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1jb2RlLXB1bGwtcmVxdWVzdDpiZWZvcmV7Y29udGVudDoiXGUxM2MifS5mYS1jbGlwYm9hcmQtbGlzdDpiZWZvcmV7Y29udGVudDoiXGY0NmQifS5mYS10cnVjay1sb2FkaW5nOmJlZm9yZSwuZmEtdHJ1Y2stcmFtcC1ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmNGRlIn0uZmEtdXNlci1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY0ZmMifS5mYS12aWFsLXZpcnVzOmJlZm9yZXtjb250ZW50OiJcZTU5NyJ9LmZhLXNoZWV0LXBsYXN0aWM6YmVmb3Jle2NvbnRlbnQ6IlxlNTcxIn0uZmEtYmxvZzpiZWZvcmV7Y29udGVudDoiXGY3ODEifS5mYS11c2VyLW5pbmphOmJlZm9yZXtjb250ZW50OiJcZjUwNCJ9LmZhLXBlcnNvbi1hcnJvdy11cC1mcm9tLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxlNTM5In0uZmEtc2Nyb2xsLXRvcmFoOmJlZm9yZSwuZmEtdG9yYWg6YmVmb3Jle2NvbnRlbnQ6IlxmNmEwIn0uZmEtYnJvb20tYmFsbDpiZWZvcmUsLmZhLXF1aWRkaXRjaC1icm9vbS1iYWxsOmJlZm9yZSwuZmEtcXVpZGRpdGNoOmJlZm9yZXtjb250ZW50OiJcZjQ1OCJ9LmZhLXRvZ2dsZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMjA0In0uZmEtYXJjaGl2ZTpiZWZvcmUsLmZhLWJveC1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjE4NyJ9LmZhLXBlcnNvbi1kcm93bmluZzpiZWZvcmV7Y29udGVudDoiXGU1NDUifS5mYS1hcnJvdy1kb3duLTktMTpiZWZvcmUsLmZhLXNvcnQtbnVtZXJpYy1kZXNjOmJlZm9yZSwuZmEtc29ydC1udW1lcmljLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NiJ9LmZhLWZhY2UtZ3Jpbi10b25ndWUtc3F1aW50OmJlZm9yZSwuZmEtZ3Jpbi10b25ndWUtc3F1aW50OmJlZm9yZXtjb250ZW50OiJcZjU4YSJ9LmZhLXNwcmF5LWNhbjpiZWZvcmV7Y29udGVudDoiXGY1YmQifS5mYS10cnVjay1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjYzYiJ9LmZhLXc6YmVmb3Jle2NvbnRlbnQ6Ilw1NyJ9LmZhLWVhcnRoLWFmcmljYTpiZWZvcmUsLmZhLWdsb2JlLWFmcmljYTpiZWZvcmV7Y29udGVudDoiXGY1N2MifS5mYS1yYWluYm93OmJlZm9yZXtjb250ZW50OiJcZjc1YiJ9LmZhLWNpcmNsZS1ub3RjaDpiZWZvcmV7Y29udGVudDoiXGYxY2UifS5mYS10YWJsZXQtYWx0OmJlZm9yZSwuZmEtdGFibGV0LXNjcmVlbi1idXR0b246YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtcGF3OmJlZm9yZXtjb250ZW50OiJcZjFiMCJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLXRyb3dlbC1icmlja3M6YmVmb3Jle2NvbnRlbnQ6IlxlNThhIn0uZmEtZmFjZS1mbHVzaGVkOmJlZm9yZSwuZmEtZmx1c2hlZDpiZWZvcmV7Y29udGVudDoiXGY1NzkifS5mYS1ob3NwaXRhbC11c2VyOmJlZm9yZXtjb250ZW50OiJcZjgwZCJ9LmZhLXRlbnQtYXJyb3ctbGVmdC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGU1N2YifS5mYS1nYXZlbDpiZWZvcmUsLmZhLWxlZ2FsOmJlZm9yZXtjb250ZW50OiJcZjBlMyJ9LmZhLWJpbm9jdWxhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMWU1In0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1ib3gtdGlzc3VlOmJlZm9yZXtjb250ZW50OiJcZTA1YiJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtYmVsbC1jb25jaWVyZ2U6YmVmb3JlLC5mYS1jb25jaWVyZ2UtYmVsbDpiZWZvcmV7Y29udGVudDoiXGY1NjIifS5mYS1wZW4tcnVsZXI6YmVmb3JlLC5mYS1wZW5jaWwtcnVsZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWFlIn0uZmEtcGVvcGxlLWFycm93cy1sZWZ0LXJpZ2h0OmJlZm9yZSwuZmEtcGVvcGxlLWFycm93czpiZWZvcmV7Y29udGVudDoiXGUwNjgifS5mYS1tYXJzLWFuZC12ZW51cy1idXJzdDpiZWZvcmV7Y29udGVudDoiXGU1MjMifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3JlLC5mYS1zcXVhcmUtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY3V0OmJlZm9yZSwuZmEtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtc3VuLXBsYW50LXdpbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTdhIn0uZmEtdG9pbGV0cy1wb3J0YWJsZTpiZWZvcmV7Y29udGVudDoiXGU1ODQifS5mYS1ob2NrZXktcHVjazpiZWZvcmV7Y29udGVudDoiXGY0NTMifS5mYS10YWJsZTpiZWZvcmV7Y29udGVudDoiXGYwY2UifS5mYS1tYWduaWZ5aW5nLWdsYXNzLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTUyMSJ9LmZhLWRpZ2l0YWwtdGFjaG9ncmFwaDpiZWZvcmUsLmZhLXRhY2hvZ3JhcGgtZGlnaXRhbDpiZWZvcmV7Y29udGVudDoiXGY1NjYifS5mYS11c2Vycy1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGUwNzMifS5mYS1jbG92ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTM5In0uZmEtbWFpbC1yZXBseTpiZWZvcmUsLmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXN0YXItYW5kLWNyZXNjZW50OmJlZm9yZXtjb250ZW50OiJcZjY5OSJ9LmZhLWhvdXNlLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxlNTBjIn0uZmEtbWludXMtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLWhlbGljb3B0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTMzIn0uZmEtY29tcGFzczpiZWZvcmV7Y29udGVudDoiXGYxNGUifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmUsLmZhLXNxdWFyZS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1MCJ9LmZhLWZpbGUtY2lyY2xlLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZTRlZiJ9LmZhLWxhcHRvcC1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjVmYyJ9LmZhLXN3YXRjaGJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmNWMzIn0uZmEtcHJlc2NyaXB0aW9uLWJvdHRsZTpiZWZvcmV7Y29udGVudDoiXGY0ODUifS5mYS1iYXJzOmJlZm9yZSwuZmEtbmF2aWNvbjpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1wZW9wbGUtZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxlNTMzIn0uZmEtaG91cmdsYXNzLTM6YmVmb3JlLC5mYS1ob3VyZ2xhc3MtZW5kOmJlZm9yZXtjb250ZW50OiJcZjI1MyJ9LmZhLWhlYXJ0LWJyb2tlbjpiZWZvcmUsLmZhLWhlYXJ0LWNyYWNrOmJlZm9yZXtjb250ZW50OiJcZjdhOSJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmUsLmZhLXNxdWFyZS11cC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1mYWNlLWtpc3MtYmVhbTpiZWZvcmUsLmZhLWtpc3MtYmVhbTpiZWZvcmV7Y29udGVudDoiXGY1OTcifS5mYS1maWxtOmJlZm9yZXtjb250ZW50OiJcZjAwOCJ9LmZhLXJ1bGVyLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNTQ3In0uZmEtcGVvcGxlLXJvYmJlcnk6YmVmb3Jle2NvbnRlbnQ6IlxlNTM2In0uZmEtbGlnaHRidWxiOmJlZm9yZXtjb250ZW50OiJcZjBlYiJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2lyY2xlLWV4Y2xhbWF0aW9uOmJlZm9yZSwuZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLXNjaG9vbC1jaXJjbGUteG1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlNTZkIn0uZmEtYXJyb3ctcmlnaHQtZnJvbS1icmFja2V0OmJlZm9yZSwuZmEtc2lnbi1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDhiIn0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmUsLmZhLWNpcmNsZS1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTNhIn0uZmEtdW5sb2NrLWFsdDpiZWZvcmUsLmZhLXVubG9jay1rZXlob2xlOmJlZm9yZXtjb250ZW50OiJcZjEzZSJ9LmZhLWNsb3VkLXNob3dlcnMtaGVhdnk6YmVmb3Jle2NvbnRlbnQ6IlxmNzQwIn0uZmEtaGVhZHBob25lcy1hbHQ6YmVmb3JlLC5mYS1oZWFkcGhvbmVzLXNpbXBsZTpiZWZvcmV7Y29udGVudDoiXGY1OGYifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLWNpcmNsZS1kb2xsYXItdG8tc2xvdDpiZWZvcmUsLmZhLWRvbmF0ZTpiZWZvcmV7Y29udGVudDoiXGY0YjkifS5mYS1tZW1vcnk6YmVmb3Jle2NvbnRlbnQ6IlxmNTM4In0uZmEtcm9hZC1zcGlrZXM6YmVmb3Jle2NvbnRlbnQ6IlxlNTY4In0uZmEtZmlyZS1idXJuZXI6YmVmb3Jle2NvbnRlbnQ6IlxlNGYxIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1oYW51a2lhaDpiZWZvcmV7Y29udGVudDoiXGY2ZTYifS5mYS1mZWF0aGVyOmJlZm9yZXtjb250ZW50OiJcZjUyZCJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZSwuZmEtdm9sdW1lLWxvdzpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS1jb21tZW50LXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjRiMyJ9LmZhLWNsb3VkLXN1bi1yYWluOmJlZm9yZXtjb250ZW50OiJcZjc0MyJ9LmZhLWNvbXByZXNzOmJlZm9yZXtjb250ZW50OiJcZjA2NiJ9LmZhLXdoZWF0LWFsdDpiZWZvcmUsLmZhLXdoZWF0LWF3bjpiZWZvcmV7Y29udGVudDoiXGUyY2QifS5mYS1hbmtoOmJlZm9yZXtjb250ZW50OiJcZjY0NCJ9LmZhLWhhbmRzLWhvbGRpbmctY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGZhIn0uZmEtYXN0ZXJpc2s6YmVmb3Jle2NvbnRlbnQ6IlwyYSJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1wZXNldGEtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUyMjEifS5mYS1oZWFkZXI6YmVmb3JlLC5mYS1oZWFkaW5nOmJlZm9yZXtjb250ZW50OiJcZjFkYyJ9LmZhLWdob3N0OmJlZm9yZXtjb250ZW50OiJcZjZlMiJ9LmZhLWxpc3Qtc3F1YXJlczpiZWZvcmUsLmZhLWxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDNhIn0uZmEtcGhvbmUtc3F1YXJlLWFsdDpiZWZvcmUsLmZhLXNxdWFyZS1waG9uZS1mbGlwOmJlZm9yZXtjb250ZW50OiJcZjg3YiJ9LmZhLWNhcnQtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMTcifS5mYS1nYW1lcGFkOmJlZm9yZXtjb250ZW50OiJcZjExYiJ9LmZhLWNpcmNsZS1kb3Q6YmVmb3JlLC5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRpenp5OmJlZm9yZSwuZmEtZmFjZS1kaXp6eTpiZWZvcmV7Y29udGVudDoiXGY1NjcifS5mYS1lZ2c6YmVmb3Jle2NvbnRlbnQ6IlxmN2ZiIn0uZmEtaG91c2UtbWVkaWNhbC1jaXJjbGUteG1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlNTEzIn0uZmEtY2FtcGdyb3VuZDpiZWZvcmV7Y29udGVudDoiXGY2YmIifS5mYS1mb2xkZXItcGx1czpiZWZvcmV7Y29udGVudDoiXGY2NWUifS5mYS1mdXRib2wtYmFsbDpiZWZvcmUsLmZhLWZ1dGJvbDpiZWZvcmUsLmZhLXNvY2Nlci1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjFlMyJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZSwuZmEtcGFpbnRicnVzaDpiZWZvcmV7Y29udGVudDoiXGYxZmMifS5mYS1sb2NrOmJlZm9yZXtjb250ZW50OiJcZjAyMyJ9LmZhLWdhcy1wdW1wOmJlZm9yZXtjb250ZW50OiJcZjUyZiJ9LmZhLWhvdC10dWItcGVyc29uOmJlZm9yZSwuZmEtaG90LXR1YjpiZWZvcmV7Y29udGVudDoiXGY1OTMifS5mYS1tYXAtbG9jYXRpb246YmVmb3JlLC5mYS1tYXAtbWFya2VkOmJlZm9yZXtjb250ZW50OiJcZjU5ZiJ9LmZhLWhvdXNlLWZsb29kLXdhdGVyOmJlZm9yZXtjb250ZW50OiJcZTUwZSJ9LmZhLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMWJiIn0uZmEtYnJpZGdlLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNGNjIn0uZmEtc2Fjay1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmODFkIn0uZmEtZWRpdDpiZWZvcmUsLmZhLXBlbi10by1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtY2FyLXNpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmNWU0In0uZmEtc2hhcmUtYWx0OmJlZm9yZSwuZmEtc2hhcmUtbm9kZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtaGVhcnQtY2lyY2xlLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZTRmZiJ9LmZhLWhvdXJnbGFzcy0yOmJlZm9yZSwuZmEtaG91cmdsYXNzLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMjUyIn0uZmEtbWljcm9zY29wZTpiZWZvcmV7Y29udGVudDoiXGY2MTAifS5mYS1zaW5rOmJlZm9yZXtjb250ZW50OiJcZTA2ZCJ9LmZhLWJhZy1zaG9wcGluZzpiZWZvcmUsLmZhLXNob3BwaW5nLWJhZzpiZWZvcmV7Y29udGVudDoiXGYyOTAifS5mYS1hcnJvdy1kb3duLXotYTpiZWZvcmUsLmZhLXNvcnQtYWxwaGEtZGVzYzpiZWZvcmUsLmZhLXNvcnQtYWxwaGEtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgxIn0uZmEtbWl0dGVuOmJlZm9yZXtjb250ZW50OiJcZjdiNSJ9LmZhLXBlcnNvbi1yYXlzOmJlZm9yZXtjb250ZW50OiJcZTU0ZCJ9LmZhLXVzZXJzOmJlZm9yZXtjb250ZW50OiJcZjBjMCJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mbGFzay12aWFsOmJlZm9yZXtjb250ZW50OiJcZTRmMyJ9LmZhLWhhbmQtcGFwZXI6YmVmb3JlLC5mYS1oYW5kOmJlZm9yZXtjb250ZW50OiJcZjI1NiJ9LmZhLW9tOmJlZm9yZXtjb250ZW50OiJcZjY3OSJ9LmZhLXdvcm06YmVmb3Jle2NvbnRlbnQ6IlxlNTk5In0uZmEtaG91c2UtY2lyY2xlLXhtYXJrOmJlZm9yZXtjb250ZW50OiJcZTUwYiJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1oYW5kLXNwb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1OSJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1mYWNlLWtpc3M6YmVmb3JlLC5mYS1raXNzOmJlZm9yZXtjb250ZW50OiJcZjU5NiJ9LmZhLWJyaWRnZS1jaXJjbGUteG1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlNGNiIn0uZmEtZmFjZS1ncmluLXRvbmd1ZTpiZWZvcmUsLmZhLWdyaW4tdG9uZ3VlOmJlZm9yZXtjb250ZW50OiJcZjU4OSJ9LmZhLWNoZXNzLWJpc2hvcDpiZWZvcmV7Y29udGVudDoiXGY0M2EifS5mYS1mYWNlLWdyaW4td2luazpiZWZvcmUsLmZhLWdyaW4td2luazpiZWZvcmV7Y29udGVudDoiXGY1OGMifS5mYS1kZWFmOmJlZm9yZSwuZmEtZGVhZm5lc3M6YmVmb3JlLC5mYS1lYXItZGVhZjpiZWZvcmUsLmZhLWhhcmQtb2YtaGVhcmluZzpiZWZvcmV7Y29udGVudDoiXGYyYTQifS5mYS1yb2FkLWNpcmNsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU1NjQifS5mYS1kaWNlLWZpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmNTIzIn0uZmEtcnNzLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTQzIn0uZmEtbGFuZC1taW5lLW9uOmJlZm9yZXtjb250ZW50OiJcZTUxYiJ9LmZhLWktY3Vyc29yOmJlZm9yZXtjb250ZW50OiJcZjI0NiJ9LmZhLXN0YW1wOmJlZm9yZXtjb250ZW50OiJcZjViZiJ9LmZhLXN0YWlyczpiZWZvcmV7Y29udGVudDoiXGUyODkifS5mYS1pOmJlZm9yZXtjb250ZW50OiJcNDkifS5mYS1ocnl2bmlhLXNpZ246YmVmb3JlLC5mYS1ocnl2bmlhOmJlZm9yZXtjb250ZW50OiJcZjZmMiJ9LmZhLXBpbGxzOmJlZm9yZXtjb250ZW50OiJcZjQ4NCJ9LmZhLWZhY2UtZ3Jpbi13aWRlOmJlZm9yZSwuZmEtZ3Jpbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTgxIn0uZmEtdG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmNWM5In0uZmEtdjpiZWZvcmV7Y29udGVudDoiXDU2In0uZmEtYmFuZ2xhZGVzaGktdGFrYS1zaWduOmJlZm9yZXtjb250ZW50OiJcZTJlNiJ9LmZhLWJpY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjA2In0uZmEtcm9kLWFzY2xlcGl1czpiZWZvcmUsLmZhLXJvZC1zbmFrZTpiZWZvcmUsLmZhLXN0YWZmLWFlc2N1bGFwaXVzOmJlZm9yZSwuZmEtc3RhZmYtc25ha2U6YmVmb3Jle2NvbnRlbnQ6IlxlNTc5In0uZmEtaGVhZC1zaWRlLWNvdWdoLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZTA2MiJ9LmZhLWFtYnVsYW5jZTpiZWZvcmUsLmZhLXRydWNrLW1lZGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGY5In0uZmEtd2hlYXQtYXduLWNpcmNsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGU1OTgifS5mYS1zbm93bWFuOmJlZm9yZXtjb250ZW50OiJcZjdkMCJ9LmZhLW1vcnRhci1wZXN0bGU6YmVmb3Jle2NvbnRlbnQ6IlxmNWE3In0uZmEtcm9hZC1iYXJyaWVyOmJlZm9yZXtjb250ZW50OiJcZTU2MiJ9LmZhLXNjaG9vbDpiZWZvcmV7Y29udGVudDoiXGY1NDkifS5mYS1pZ2xvbzpiZWZvcmV7Y29udGVudDoiXGY3YWUifS5mYS1qb2ludDpiZWZvcmV7Y29udGVudDoiXGY1OTUifS5mYS1hbmdsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDUifS5mYS1ob3JzZTpiZWZvcmV7Y29udGVudDoiXGY2ZjAifS5mYS1xOmJlZm9yZXtjb250ZW50OiJcNTEifS5mYS1nOmJlZm9yZXtjb250ZW50OiJcNDcifS5mYS1ub3Rlcy1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjQ4MSJ9LmZhLXRlbXBlcmF0dXJlLTI6YmVmb3JlLC5mYS10ZW1wZXJhdHVyZS1oYWxmOmJlZm9yZSwuZmEtdGhlcm1vbWV0ZXItMjpiZWZvcmUsLmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtZG9uZy1zaWduOmJlZm9yZXtjb250ZW50OiJcZTE2OSJ9LmZhLWNhcHN1bGVzOmJlZm9yZXtjb250ZW50OiJcZjQ2YiJ9LmZhLXBvby1ib2x0OmJlZm9yZSwuZmEtcG9vLXN0b3JtOmJlZm9yZXtjb250ZW50OiJcZjc1YSJ9LmZhLWZhY2UtZnJvd24tb3BlbjpiZWZvcmUsLmZhLWZyb3duLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNTdhIn0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1tb25leS1iaWxsOmJlZm9yZXtjb250ZW50OiJcZjBkNiJ9LmZhLWJvb2ttYXJrOmJlZm9yZXtjb250ZW50OiJcZjAyZSJ9LmZhLWFsaWduLWp1c3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMDM5In0uZmEtdW1icmVsbGEtYmVhY2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWNhIn0uZmEtaGVsbWV0LXVuOmJlZm9yZXtjb250ZW50OiJcZTUwMyJ9LmZhLWJ1bGxzZXllOmJlZm9yZXtjb250ZW50OiJcZjE0MCJ9LmZhLWJhY29uOmJlZm9yZXtjb250ZW50OiJcZjdlNSJ9LmZhLWhhbmQtcG9pbnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYTcifS5mYS1hcnJvdy11cC1mcm9tLWJyYWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDlhIn0uZmEtZm9sZGVyLWJsYW5rOmJlZm9yZSwuZmEtZm9sZGVyOmJlZm9yZXtjb250ZW50OiJcZjA3YiJ9LmZhLWZpbGUtbWVkaWNhbC1hbHQ6YmVmb3JlLC5mYS1maWxlLXdhdmVmb3JtOmJlZm9yZXtjb250ZW50OiJcZjQ3OCJ9LmZhLXJhZGlhdGlvbjpiZWZvcmV7Y29udGVudDoiXGY3YjkifS5mYS1jaGFydC1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxlNDczIn0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtdmlhbDpiZWZvcmV7Y29udGVudDoiXGY0OTIifS5mYS1kYXNoYm9hcmQ6YmVmb3JlLC5mYS1nYXVnZS1tZWQ6YmVmb3JlLC5mYS1nYXVnZTpiZWZvcmUsLmZhLXRhY2hvbWV0ZXItYWx0LWF2ZXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjI0In0uZmEtbWFnaWMtd2FuZC1zcGFya2xlczpiZWZvcmUsLmZhLXdhbmQtbWFnaWMtc3BhcmtsZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMmNhIn0uZmEtZTpiZWZvcmV7Y29udGVudDoiXDQ1In0uZmEtcGVuLWFsdDpiZWZvcmUsLmZhLXBlbi1jbGlwOmJlZm9yZXtjb250ZW50OiJcZjMwNSJ9LmZhLWJyaWRnZS1jaXJjbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxlNGNhIn0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS1zY2hvb2wtY2lyY2xlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZTU2YiJ9LmZhLWR1bXBzdGVyOmJlZm9yZXtjb250ZW50OiJcZjc5MyJ9LmZhLXNodXR0bGUtdmFuOmJlZm9yZSwuZmEtdmFuLXNodXR0bGU6YmVmb3Jle2NvbnRlbnQ6IlxmNWI2In0uZmEtYnVpbGRpbmctdXNlcjpiZWZvcmV7Y29udGVudDoiXGU0ZGEifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmUsLmZhLXNxdWFyZS1jYXJldC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjE5MSJ9LmZhLWhpZ2hsaWdodGVyOmJlZm9yZXtjb250ZW50OiJcZjU5MSJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1zeW5hZ29ndWU6YmVmb3Jle2NvbnRlbnQ6IlxmNjliIn0uZmEtcGVyc29uLWhhbGYtZHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxlNTQ4In0uZmEtcm9hZC1icmlkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlNTYzIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtYzpiZWZvcmV7Y29udGVudDoiXDQzIn0uZmEtdGFibGV0LWJ1dHRvbjpiZWZvcmV7Y29udGVudDoiXGYxMGEifS5mYS1idWlsZGluZy1sb2NrOmJlZm9yZXtjb250ZW50OiJcZTRkNiJ9LmZhLXBpenphLXNsaWNlOmJlZm9yZXtjb250ZW50OiJcZjgxOCJ9LmZhLW1vbmV5LWJpbGwtd2F2ZTpiZWZvcmV7Y29udGVudDoiXGY1M2EifS5mYS1hcmVhLWNoYXJ0OmJlZm9yZSwuZmEtY2hhcnQtYXJlYTpiZWZvcmV7Y29udGVudDoiXGYxZmUifS5mYS1ob3VzZS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZTUwZCJ9LmZhLXBlcnNvbi1jaXJjbGUtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxlNTQwIn0uZmEtYmFuOmJlZm9yZSwuZmEtY2FuY2VsOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWNhbWVyYS1yb3RhdGU6YmVmb3Jle2NvbnRlbnQ6IlxlMGQ4In0uZmEtYWlyLWZyZXNoZW5lcjpiZWZvcmUsLmZhLXNwcmF5LWNhbi1zcGFya2xlczpiZWZvcmV7Y29udGVudDoiXGY1ZDAifS5mYS1zdGFyOmJlZm9yZXtjb250ZW50OiJcZjAwNSJ9LmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGYzNjMifS5mYS1jcm9zczpiZWZvcmV7Y29udGVudDoiXGY2NTQifS5mYS1ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmNDY2In0uZmEtdmVudXMtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjgifS5mYS1hcnJvdy1wb2ludGVyOmJlZm9yZSwuZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmUsLmZhLW1heGltaXplOmJlZm9yZXtjb250ZW50OiJcZjMxZSJ9LmZhLWNoYXJnaW5nLXN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNWU3In0uZmEtc2hhcGVzOmJlZm9yZSwuZmEtdHJpYW5nbGUtY2lyY2xlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY2MWYifS5mYS1yYW5kb206YmVmb3JlLC5mYS1zaHVmZmxlOmJlZm9yZXtjb250ZW50OiJcZjA3NCJ9LmZhLXBlcnNvbi1ydW5uaW5nOmJlZm9yZSwuZmEtcnVubmluZzpiZWZvcmV7Y29udGVudDoiXGY3MGMifS5mYS1tb2JpbGUtcmV0cm86YmVmb3Jle2NvbnRlbnQ6IlxlNTI3In0uZmEtZ3JpcC1saW5lcy12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY3YTUifS5mYS1zcGlkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNzE3In0uZmEtaGFuZHMtYm91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGY5In0uZmEtZmlsZS1pbnZvaWNlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY1NzEifS5mYS1wbGFuZS1jaXJjbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxlNTU2In0uZmEteC1yYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDk3In0uZmEtc3BlbGwtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmODkxIn0uZmEtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNzE1In0uZmEtY29tcHV0ZXItbW91c2U6YmVmb3JlLC5mYS1tb3VzZTpiZWZvcmV7Y29udGVudDoiXGY4Y2MifS5mYS1hcnJvdy1yaWdodC10by1icmFja2V0OmJlZm9yZSwuZmEtc2lnbi1pbjpiZWZvcmV7Y29udGVudDoiXGYwOTAifS5mYS1zaG9wLXNsYXNoOmJlZm9yZSwuZmEtc3RvcmUtYWx0LXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZTA3MCJ9LmZhLXNlcnZlcjpiZWZvcmV7Y29udGVudDoiXGYyMzMifS5mYS12aXJ1cy1jb3ZpZC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGU0YTkifS5mYS1zaG9wLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNGE1In0uZmEtaG91cmdsYXNzLTE6YmVmb3JlLC5mYS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUxIn0uZmEtYmxlbmRlci1waG9uZTpiZWZvcmV7Y29udGVudDoiXGY2YjYifS5mYS1idWlsZGluZy13aGVhdDpiZWZvcmV7Y29udGVudDoiXGU0ZGIifS5mYS1wZXJzb24tYnJlYXN0ZmVlZGluZzpiZWZvcmV7Y29udGVudDoiXGU1M2EifS5mYS1yaWdodC10by1icmFja2V0OmJlZm9yZSwuZmEtc2lnbi1pbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmY2In0uZmEtdmVudXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIxIn0uZmEtcGFzc3BvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWFiIn0uZmEtaGVhcnQtcHVsc2U6YmVmb3JlLC5mYS1oZWFydGJlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFlIn0uZmEtcGVvcGxlLWNhcnJ5LWJveDpiZWZvcmUsLmZhLXBlb3BsZS1jYXJyeTpiZWZvcmV7Y29udGVudDoiXGY0Y2UifS5mYS10ZW1wZXJhdHVyZS1oaWdoOmJlZm9yZXtjb250ZW50OiJcZjc2OSJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1jcm93bjpiZWZvcmV7Y29udGVudDoiXGY1MjEifS5mYS13ZWlnaHQtaGFuZ2luZzpiZWZvcmV7Y29udGVudDoiXGY1Y2QifS5mYS14bWFya3MtbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxlNTlhIn0uZmEtZmlsZS1wcmVzY3JpcHRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNTcyIn0uZmEtd2VpZ2h0LXNjYWxlOmJlZm9yZSwuZmEtd2VpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjQ5NiJ9LmZhLXVzZXItZnJpZW5kczpiZWZvcmUsLmZhLXVzZXItZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmNTAwIn0uZmEtYXJyb3ctdXAtYS16OmJlZm9yZSwuZmEtc29ydC1hbHBoYS11cDpiZWZvcmV7Y29udGVudDoiXGYxNWUifS5mYS1jaGVzcy1rbmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDQxIn0uZmEtZmFjZS1sYXVnaC1zcXVpbnQ6YmVmb3JlLC5mYS1sYXVnaC1zcXVpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTliIn0uZmEtd2hlZWxjaGFpcjpiZWZvcmV7Y29udGVudDoiXGYxOTMifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3JlLC5mYS1jaXJjbGUtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtdG9nZ2xlLW9uOmJlZm9yZXtjb250ZW50OiJcZjIwNSJ9LmZhLXBlcnNvbi13YWxraW5nOmJlZm9yZSwuZmEtd2Fsa2luZzpiZWZvcmV7Y29udGVudDoiXGY1NTQifS5mYS1sOmJlZm9yZXtjb250ZW50OiJcNGMifS5mYS1maXJlOmJlZm9yZXtjb250ZW50OiJcZjA2ZCJ9LmZhLWJlZC1wdWxzZTpiZWZvcmUsLmZhLXByb2NlZHVyZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDg3In0uZmEtc2h1dHRsZS1zcGFjZTpiZWZvcmUsLmZhLXNwYWNlLXNodXR0bGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk3In0uZmEtZmFjZS1sYXVnaDpiZWZvcmUsLmZhLWxhdWdoOmJlZm9yZXtjb250ZW50OiJcZjU5OSJ9LmZhLWZvbGRlci1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjA3YyJ9LmZhLWhlYXJ0LWNpcmNsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZTUwMCJ9LmZhLWNvZGUtZm9yazpiZWZvcmV7Y29udGVudDoiXGUxM2IifS5mYS1jaXR5OmJlZm9yZXtjb250ZW50OiJcZjY0ZiJ9LmZhLW1pY3JvcGhvbmUtYWx0OmJlZm9yZSwuZmEtbWljcm9waG9uZS1saW5lczpiZWZvcmV7Y29udGVudDoiXGYzYzkifS5mYS1wZXBwZXItaG90OmJlZm9yZXtjb250ZW50OiJcZjgxNiJ9LmZhLXVubG9jazpiZWZvcmV7Y29udGVudDoiXGYwOWMifS5mYS1jb2xvbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZTE0MCJ9LmZhLWhlYWRzZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTkwIn0uZmEtc3RvcmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxlMDcxIn0uZmEtcm9hZC1jaXJjbGUteG1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlNTY2In0uZmEtdXNlci1taW51czpiZWZvcmV7Y29udGVudDoiXGY1MDMifS5mYS1tYXJzLXN0cm9rZS11cDpiZWZvcmUsLmZhLW1hcnMtc3Ryb2tlLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMjJhIn0uZmEtY2hhbXBhZ25lLWdsYXNzZXM6YmVmb3JlLC5mYS1nbGFzcy1jaGVlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmNzlmIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWhvdXNlLWNpcmNsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGU1MGEifS5mYS1maWxlLWFycm93LXVwOmJlZm9yZSwuZmEtZmlsZS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc0In0uZmEtd2lmaS0zOmJlZm9yZSwuZmEtd2lmaS1zdHJvbmc6YmVmb3JlLC5mYS13aWZpOmJlZm9yZXtjb250ZW50OiJcZjFlYiJ9LmZhLWJhdGg6YmVmb3JlLC5mYS1iYXRodHViOmJlZm9yZXtjb250ZW50OiJcZjJjZCJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS11c2VyLWVkaXQ6YmVmb3JlLC5mYS11c2VyLXBlbjpiZWZvcmV7Y29udGVudDoiXGY0ZmYifS5mYS1zaWduYXR1cmU6YmVmb3Jle2NvbnRlbnQ6IlxmNWI3In0uZmEtc3Ryb29wd2FmZWw6YmVmb3Jle2NvbnRlbnQ6IlxmNTUxIn0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDoiXGYwMzIifS5mYS1hbmNob3ItbG9jazpiZWZvcmV7Y29udGVudDoiXGU0YWQifS5mYS1idWlsZGluZy1uZ286YmVmb3Jle2NvbnRlbnQ6IlxlNGQ3In0uZmEtbWFuYXQtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxZDUifS5mYS1ub3QtZXF1YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNTNlIn0uZmEtYm9yZGVyLXN0eWxlOmJlZm9yZSwuZmEtYm9yZGVyLXRvcC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjg1MyJ9LmZhLW1hcC1sb2NhdGlvbi1kb3Q6YmVmb3JlLC5mYS1tYXAtbWFya2VkLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1YTAifS5mYS1qZWRpOmJlZm9yZXtjb250ZW50OiJcZjY2OSJ9LmZhLXBvbGw6YmVmb3JlLC5mYS1zcXVhcmUtcG9sbC12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY2ODEifS5mYS1tdWctaG90OmJlZm9yZXtjb250ZW50OiJcZjdiNiJ9LmZhLWJhdHRlcnktY2FyOmJlZm9yZSwuZmEtY2FyLWJhdHRlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmNWRmIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDoiXGYwNmIifS5mYS1kaWNlLXR3bzpiZWZvcmV7Y29udGVudDoiXGY1MjgifS5mYS1jaGVzcy1xdWVlbjpiZWZvcmV7Y29udGVudDoiXGY0NDUifS5mYS1nbGFzc2VzOmJlZm9yZXtjb250ZW50OiJcZjUzMCJ9LmZhLWNoZXNzLWJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQzYyJ9LmZhLWJ1aWxkaW5nLWNpcmNsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU0ZDIifS5mYS1wZXJzb24tY2hhbGtib2FyZDpiZWZvcmV7Y29udGVudDoiXGU1M2QifS5mYS1tYXJzLXN0cm9rZS1oOmJlZm9yZSwuZmEtbWFycy1zdHJva2UtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjJiIn0uZmEtaGFuZC1iYWNrLWZpc3Q6YmVmb3JlLC5mYS1oYW5kLXJvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjU1In0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZSwuZmEtc3F1YXJlLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNsb3VkLXNob3dlcnMtd2F0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlNGU0In0uZmEtYmFyLWNoYXJ0OmJlZm9yZSwuZmEtY2hhcnQtYmFyOmJlZm9yZXtjb250ZW50OiJcZjA4MCJ9LmZhLWhhbmRzLWJ1YmJsZXM6YmVmb3JlLC5mYS1oYW5kcy13YXNoOmJlZm9yZXtjb250ZW50OiJcZTA1ZSJ9LmZhLWxlc3MtdGhhbi1lcXVhbDpiZWZvcmV7Y29udGVudDoiXGY1MzcifS5mYS10cmFpbjpiZWZvcmV7Y29udGVudDoiXGYyMzgifS5mYS1leWUtbG93LXZpc2lvbjpiZWZvcmUsLmZhLWxvdy12aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmE4In0uZmEtY3JvdzpiZWZvcmV7Y29udGVudDoiXGY1MjAifS5mYS1zYWlsYm9hdDpiZWZvcmV7Y29udGVudDoiXGU0NDUifS5mYS13aW5kb3ctcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGYyZDIifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjBmZSJ9LmZhLXRvcmlpLWdhdGU6YmVmb3Jle2NvbnRlbnQ6IlxmNmExIn0uZmEtZnJvZzpiZWZvcmV7Y29udGVudDoiXGY1MmUifS5mYS1idWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGNmIn0uZmEtaW1hZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDNlIn0uZmEtbWljcm9waG9uZTpiZWZvcmV7Y29udGVudDoiXGYxMzAifS5mYS1jb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNmM4In0uZmEtY2FyZXQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ4In0uZmEtc2NyZXdkcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTRhIn0uZmEtZm9sZGVyLWNsb3NlZDpiZWZvcmV7Y29udGVudDoiXGUxODUifS5mYS1ob3VzZS10c3VuYW1pOmJlZm9yZXtjb250ZW50OiJcZTUxNSJ9LmZhLXNxdWFyZS1uZmk6YmVmb3Jle2NvbnRlbnQ6IlxlNTc2In0uZmEtYXJyb3ctdXAtZnJvbS1ncm91bmQtd2F0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlNGI1In0uZmEtZ2xhc3MtbWFydGluaS1hbHQ6YmVmb3JlLC5mYS1tYXJ0aW5pLWdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjU3YiJ9LmZhLXJvdGF0ZS1iYWNrOmJlZm9yZSwuZmEtcm90YXRlLWJhY2t3YXJkOmJlZm9yZSwuZmEtcm90YXRlLWxlZnQ6YmVmb3JlLC5mYS11bmRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWEifS5mYS1jb2x1bW5zOmJlZm9yZSwuZmEtdGFibGUtY29sdW1uczpiZWZvcmV7Y29udGVudDoiXGYwZGIifS5mYS1sZW1vbjpiZWZvcmV7Y29udGVudDoiXGYwOTQifS5mYS1oZWFkLXNpZGUtbWFzazpiZWZvcmV7Y29udGVudDoiXGUwNjMifS5mYS1oYW5kc2hha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmI1In0uZmEtZ2VtOmJlZm9yZXtjb250ZW50OiJcZjNhNSJ9LmZhLWRvbGx5LWJveDpiZWZvcmUsLmZhLWRvbGx5OmJlZm9yZXtjb250ZW50OiJcZjQ3MiJ9LmZhLXNtb2tpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNDhkIn0uZmEtY29tcHJlc3MtYXJyb3dzLWFsdDpiZWZvcmUsLmZhLW1pbmltaXplOmJlZm9yZXtjb250ZW50OiJcZjc4YyJ9LmZhLW1vbnVtZW50OmJlZm9yZXtjb250ZW50OiJcZjVhNiJ9LmZhLXNub3dwbG93OmJlZm9yZXtjb250ZW50OiJcZjdkMiJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmUsLmZhLWFuZ2xlcy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1jYW5uYWJpczpiZWZvcmV7Y29udGVudDoiXGY1NWYifS5mYS1jaXJjbGUtcGxheTpiZWZvcmUsLmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXRhYmxldHM6YmVmb3Jle2NvbnRlbnQ6IlxmNDkwIn0uZmEtZXRoZXJuZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzk2In0uZmEtZXVyOmJlZm9yZSwuZmEtZXVyby1zaWduOmJlZm9yZSwuZmEtZXVybzpiZWZvcmV7Y29udGVudDoiXGYxNTMifS5mYS1jaGFpcjpiZWZvcmV7Y29udGVudDoiXGY2YzAifS5mYS1jaGVjay1jaXJjbGU6YmVmb3JlLC5mYS1jaXJjbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2lyY2xlLXN0b3A6YmVmb3JlLC5mYS1zdG9wLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGQifS5mYS1jb21wYXNzLWRyYWZ0aW5nOmJlZm9yZSwuZmEtZHJhZnRpbmctY29tcGFzczpiZWZvcmV7Y29udGVudDoiXGY1NjgifS5mYS1wbGF0ZS13aGVhdDpiZWZvcmV7Y29udGVudDoiXGU1NWEifS5mYS1pY2ljbGVzOmJlZm9yZXtjb250ZW50OiJcZjdhZCJ9LmZhLXBlcnNvbi1zaGVsdGVyOmJlZm9yZXtjb250ZW50OiJcZTU0ZiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1pZC1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYyYzEifS5mYS1tYXJrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWExIn0uZmEtZmFjZS1sYXVnaC1iZWFtOmJlZm9yZSwuZmEtbGF1Z2gtYmVhbTpiZWZvcmV7Y29udGVudDoiXGY1OWEifS5mYS1oZWxpY29wdGVyLXN5bWJvbDpiZWZvcmV7Y29udGVudDoiXGU1MDIifS5mYS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZXtjb250ZW50OiJcZjI5YSJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSwuZmEtY2lyY2xlLWNoZXZyb24tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtbGFyaS1zaWduOmJlZm9yZXtjb250ZW50OiJcZTFjOCJ9LmZhLXZvbGNhbm86YmVmb3Jle2NvbnRlbnQ6IlxmNzcwIn0uZmEtcGVyc29uLXdhbGtpbmctZGFzaGVkLWxpbmUtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTUzIn0uZmEtZ2JwOmJlZm9yZSwuZmEtcG91bmQtc2lnbjpiZWZvcmUsLmZhLXN0ZXJsaW5nLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU0In0uZmEtdmlydXNlczpiZWZvcmV7Y29udGVudDoiXGUwNzYifS5mYS1zcXVhcmUtcGVyc29uLWNvbmZpbmVkOmJlZm9yZXtjb250ZW50OiJcZTU3NyJ9LmZhLXVzZXItdGllOmJlZm9yZXtjb250ZW50OiJcZjUwOCJ9LmZhLWFycm93LWRvd24tbG9uZzpiZWZvcmUsLmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNzUifS5mYS10ZW50LWFycm93LWRvd24tdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGU1N2UifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1tYWlsLXJlcGx5LWFsbDpiZWZvcmUsLmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1zdWl0Y2FzZTpiZWZvcmV7Y29udGVudDoiXGYwZjIifS5mYS1wZXJzb24tc2thdGluZzpiZWZvcmUsLmZhLXNrYXRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmN2M1In0uZmEtZmlsdGVyLWNpcmNsZS1kb2xsYXI6YmVmb3JlLC5mYS1mdW5uZWwtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY2MiJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDoiXGYwODMifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmUsLmZhLWNpcmNsZS1hcnJvdy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LXJpZ2h0LXRvLWZpbGU6YmVmb3JlLC5mYS1maWxlLWltcG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmYifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1hcnJvdy11cC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNGMifS5mYS1ib3gtb3BlbjpiZWZvcmV7Y29udGVudDoiXGY0OWUifS5mYS1zY3JvbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNzBlIn0uZmEtc3BhOmJlZm9yZXtjb250ZW50OiJcZjViYiJ9LmZhLWxvY2F0aW9uLXBpbi1sb2NrOmJlZm9yZXtjb250ZW50OiJcZTUxZiJ9LmZhLXBhdXNlOmJlZm9yZXtjb250ZW50OiJcZjA0YyJ9LmZhLWhpbGwtYXZhbGFuY2hlOmJlZm9yZXtjb250ZW50OiJcZTUwNyJ9LmZhLXRlbXBlcmF0dXJlLTA6YmVmb3JlLC5mYS10ZW1wZXJhdHVyZS1lbXB0eTpiZWZvcmUsLmZhLXRoZXJtb21ldGVyLTA6YmVmb3JlLC5mYS10aGVybW9tZXRlci1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyY2IifS5mYS1ib21iOmJlZm9yZXtjb250ZW50OiJcZjFlMiJ9LmZhLXJlZ2lzdGVyZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjVkIn0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZSwuZmEtY29udGFjdC1jYXJkOmJlZm9yZSwuZmEtdmNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmJiIn0uZmEtYmFsYW5jZS1zY2FsZS1yaWdodDpiZWZvcmUsLmZhLXNjYWxlLXVuYmFsYW5jZWQtZmxpcDpiZWZvcmV7Y29udGVudDoiXGY1MTYifS5mYS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0uZmEtZGlhbW9uZC10dXJuLXJpZ2h0OmJlZm9yZSwuZmEtZGlyZWN0aW9uczpiZWZvcmV7Y29udGVudDoiXGY1ZWIifS5mYS1idXJzdDpiZWZvcmV7Y29udGVudDoiXGU0ZGMifS5mYS1ob3VzZS1sYXB0b3A6YmVmb3JlLC5mYS1sYXB0b3AtaG91c2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDY2In0uZmEtZmFjZS10aXJlZDpiZWZvcmUsLmZhLXRpcmVkOmJlZm9yZXtjb250ZW50OiJcZjVjOCJ9LmZhLW1vbmV5LWJpbGxzOmJlZm9yZXtjb250ZW50OiJcZTFmMyJ9LmZhLXNtb2c6YmVmb3Jle2NvbnRlbnQ6IlxmNzVmIn0uZmEtY3J1dGNoOmJlZm9yZXtjb250ZW50OiJcZjdmNyJ9LmZhLWNsb3VkLWFycm93LXVwOmJlZm9yZSwuZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmUsLmZhLWNsb3VkLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwZWUifS5mYS1wYWxldHRlOmJlZm9yZXtjb250ZW50OiJcZjUzZiJ9LmZhLWFycm93cy10dXJuLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTRjMCJ9LmZhLXZlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxlMDg1In0uZmEtZmVycnk6YmVmb3Jle2NvbnRlbnQ6IlxlNGVhIn0uZmEtYXJyb3dzLWRvd24tdG8tcGVvcGxlOmJlZm9yZXtjb250ZW50OiJcZTRiOSJ9LmZhLXNlZWRsaW5nOmJlZm9yZSwuZmEtc3Byb3V0OmJlZm9yZXtjb250ZW50OiJcZjRkOCJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmUsLmZhLWxlZnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzM3In0uZmEtYm94ZXMtcGFja2luZzpiZWZvcmV7Y29udGVudDoiXGU0YzcifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUsLmZhLWNpcmNsZS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWdyb3VwLWFycm93cy1yb3RhdGU6YmVmb3Jle2NvbnRlbnQ6IlxlNGY2In0uZmEtYm93bC1mb29kOmJlZm9yZXtjb250ZW50OiJcZTRjNiJ9LmZhLWNhbmR5LWNhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmNzg2In0uZmEtYXJyb3ctZG93bi13aWRlLXNob3J0OmJlZm9yZSwuZmEtc29ydC1hbW91bnQtYXNjOmJlZm9yZSwuZmEtc29ydC1hbW91bnQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjAifS5mYS1jbG91ZC1ib2x0OmJlZm9yZSwuZmEtdGh1bmRlcnN0b3JtOmJlZm9yZXtjb250ZW50OiJcZjc2YyJ9LmZhLXJlbW92ZS1mb3JtYXQ6YmVmb3JlLC5mYS10ZXh0LXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjg3ZCJ9LmZhLWZhY2Utc21pbGUtd2luazpiZWZvcmUsLmZhLXNtaWxlLXdpbms6YmVmb3Jle2NvbnRlbnQ6IlxmNGRhIn0uZmEtZmlsZS13b3JkOmJlZm9yZXtjb250ZW50OiJcZjFjMiJ9LmZhLWZpbGUtcG93ZXJwb2ludDpiZWZvcmV7Y29udGVudDoiXGYxYzQifS5mYS1hcnJvd3MtaDpiZWZvcmUsLmZhLWFycm93cy1sZWZ0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA3ZSJ9LmZhLWhvdXNlLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNTEwIn0uZmEtY2xvdWQtYXJyb3ctZG93bjpiZWZvcmUsLmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmUsLmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZCJ9LmZhLWNoaWxkcmVuOmJlZm9yZXtjb250ZW50OiJcZTRlMSJ9LmZhLWJsYWNrYm9hcmQ6YmVmb3JlLC5mYS1jaGFsa2JvYXJkOmJlZm9yZXtjb250ZW50OiJcZjUxYiJ9LmZhLXVzZXItYWx0LXNsYXNoOmJlZm9yZSwuZmEtdXNlci1sYXJnZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY0ZmEifS5mYS1lbnZlbG9wZS1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjJiNiJ9LmZhLWhhbmRzaGFrZS1hbHQtc2xhc2g6YmVmb3JlLC5mYS1oYW5kc2hha2Utc2ltcGxlLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZTA1ZiJ9LmZhLW1hdHRyZXNzLXBpbGxvdzpiZWZvcmV7Y29udGVudDoiXGU1MjUifS5mYS1ndWFyYW5pLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMTlhIn0uZmEtYXJyb3dzLXJvdGF0ZTpiZWZvcmUsLmZhLXJlZnJlc2g6YmVmb3JlLC5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZXtjb250ZW50OiJcZjEzNCJ9LmZhLWNydXplaXJvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMTUyIn0uZmEtZ3JlYXRlci10aGFuLWVxdWFsOmJlZm9yZXtjb250ZW50OiJcZjUzMiJ9LmZhLXNoaWVsZC1hbHQ6YmVmb3JlLC5mYS1zaGllbGQtaGFsdmVkOmJlZm9yZXtjb250ZW50OiJcZjNlZCJ9LmZhLWF0bGFzOmJlZm9yZSwuZmEtYm9vay1hdGxhczpiZWZvcmV7Y29udGVudDoiXGY1NTgifS5mYS12aXJ1czpiZWZvcmV7Y29udGVudDoiXGUwNzQifS5mYS1lbnZlbG9wZS1jaXJjbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNGU4In0uZmEtbGF5ZXItZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmNWZkIn0uZmEtYXJyb3dzLXRvLWRvdDpiZWZvcmV7Y29udGVudDoiXGU0YmUifS5mYS1hcmNod2F5OmJlZm9yZXtjb250ZW50OiJcZjU1NyJ9LmZhLWhlYXJ0LWNpcmNsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU0ZmQifS5mYS1ob3VzZS1jaGltbmV5LWNyYWNrOmJlZm9yZSwuZmEtaG91c2UtZGFtYWdlOmJlZm9yZXtjb250ZW50OiJcZjZmMSJ9LmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmUsLmZhLWZpbGUtemlwcGVyOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwYzgifS5mYS1nbGFzcy1tYXJ0aW5pOmJlZm9yZSwuZmEtbWFydGluaS1nbGFzcy1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYwMDAifS5mYS1jb3VjaDpiZWZvcmV7Y29udGVudDoiXGY0YjgifS5mYS1jZWRpLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMGRmIn0uZmEtaXRhbGljOmJlZm9yZXtjb250ZW50OiJcZjAzMyJ9LmZhLWNodXJjaDpiZWZvcmV7Y29udGVudDoiXGY1MWQifS5mYS1jb21tZW50cy1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUzIn0uZmEtZGVtb2NyYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzQ3In0uZmEtejpiZWZvcmV7Y29udGVudDoiXDVhIn0uZmEtcGVyc29uLXNraWluZzpiZWZvcmUsLmZhLXNraWluZzpiZWZvcmV7Y29udGVudDoiXGY3YzkifS5mYS1yb2FkLWxvY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNTY3In0uZmEtYTpiZWZvcmV7Y29udGVudDoiXDQxIn0uZmEtdGVtcGVyYXR1cmUtYXJyb3ctZG93bjpiZWZvcmUsLmZhLXRlbXBlcmF0dXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDNmIn0uZmEtZmVhdGhlci1hbHQ6YmVmb3JlLC5mYS1mZWF0aGVyLXBvaW50ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZiIn0uZmEtcDpiZWZvcmV7Y29udGVudDoiXDUwIn0uZmEtc25vd2ZsYWtlOmJlZm9yZXtjb250ZW50OiJcZjJkYyJ9LmZhLW5ld3NwYXBlcjpiZWZvcmV7Y29udGVudDoiXGYxZWEifS5mYS1hZDpiZWZvcmUsLmZhLXJlY3RhbmdsZS1hZDpiZWZvcmV7Y29udGVudDoiXGY2NDEifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3JlLC5mYS1jaXJjbGUtYXJyb3ctcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtZmlsdGVyLWNpcmNsZS14bWFyazpiZWZvcmV7Y29udGVudDoiXGUxN2IifS5mYS1sb2N1c3Q6YmVmb3Jle2NvbnRlbnQ6IlxlNTIwIn0uZmEtc29ydDpiZWZvcmUsLmZhLXVuc29ydGVkOmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLWxpc3QtMS0yOmJlZm9yZSwuZmEtbGlzdC1udW1lcmljOmJlZm9yZSwuZmEtbGlzdC1vbDpiZWZvcmV7Y29udGVudDoiXGYwY2IifS5mYS1wZXJzb24tZHJlc3MtYnVyc3Q6YmVmb3Jle2NvbnRlbnQ6IlxlNTQ0In0uZmEtbW9uZXktY2hlY2stYWx0OmJlZm9yZSwuZmEtbW9uZXktY2hlY2stZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjUzZCJ9LmZhLXZlY3Rvci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNWNiIn0uZmEtYnJlYWQtc2xpY2U6YmVmb3Jle2NvbnRlbnQ6IlxmN2VjIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtZmFjZS1raXNzLXdpbmstaGVhcnQ6YmVmb3JlLC5mYS1raXNzLXdpbmstaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTk4In0uZmEtZmlsdGVyOmJlZm9yZXtjb250ZW50OiJcZjBiMCJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcM2YifS5mYS1maWxlLXNpZ25hdHVyZTpiZWZvcmV7Y29udGVudDoiXGY1NzMifS5mYS1hcnJvd3MtYWx0OmJlZm9yZSwuZmEtdXAtZG93bi1sZWZ0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWhvdXNlLWNoaW1uZXktdXNlcjpiZWZvcmV7Y29udGVudDoiXGUwNjUifS5mYS1oYW5kLWhvbGRpbmctaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGJlIn0uZmEtcHV6emxlLXBpZWNlOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9LmZhLW1vbmV5LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjUzYyJ9LmZhLXN0YXItaGFsZi1hbHQ6YmVmb3JlLC5mYS1zdGFyLWhhbGYtc3Ryb2tlOmJlZm9yZXtjb250ZW50OiJcZjVjMCJ9LmZhLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0uZmEtZ2xhc3Mtd2hpc2tleTpiZWZvcmUsLmZhLXdoaXNrZXktZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmN2EwIn0uZmEtYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZTRkMyJ9LmZhLW1hZ25pZnlpbmctZ2xhc3MtY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTIyIn0uZmEtYXJyb3ctdXAtcmlnaHQtZnJvbS1zcXVhcmU6YmVmb3JlLC5mYS1leHRlcm5hbC1saW5rOmJlZm9yZXtjb250ZW50OiJcZjA4ZSJ9LmZhLWN1YmVzLXN0YWNrZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGU2In0uZmEta3J3OmJlZm9yZSwuZmEtd29uLXNpZ246YmVmb3JlLC5mYS13b246YmVmb3Jle2NvbnRlbnQ6IlxmMTU5In0uZmEtdmlydXMtY292aWQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGE4In0uZmEtYXVzdHJhbC1zaWduOmJlZm9yZXtjb250ZW50OiJcZTBhOSJ9LmZhLWY6YmVmb3Jle2NvbnRlbnQ6Ilw0NiJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1jYWI6YmVmb3JlLC5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXBlcnNvbi1jaXJjbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGU1NDEifS5mYS1jaGFydC1waWU6YmVmb3JlLC5mYS1waWUtY2hhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjAwIn0uZmEtYm9sdC1saWdodG5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxlMGI3In0uZmEtc2Fjay14bWFyazpiZWZvcmV7Y29udGVudDoiXGU1NmEifS5mYS1maWxlLWV4Y2VsOmJlZm9yZXtjb250ZW50OiJcZjFjMyJ9LmZhLWZpbGUtY29udHJhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNTZjIn0uZmEtZmlzaC1maW5zOmJlZm9yZXtjb250ZW50OiJcZTRmMiJ9LmZhLWJ1aWxkaW5nLWZsYWc6YmVmb3Jle2NvbnRlbnQ6IlxlNGQ1In0uZmEtZmFjZS1ncmluLWJlYW06YmVmb3JlLC5mYS1ncmluLWJlYW06YmVmb3Jle2NvbnRlbnQ6IlxmNTgyIn0uZmEtb2JqZWN0LXVuZ3JvdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ4In0uZmEtcG9vcDpiZWZvcmV7Y29udGVudDoiXGY2MTkifS5mYS1sb2NhdGlvbi1waW46YmVmb3JlLC5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLWthYWJhOmJlZm9yZXtjb250ZW50OiJcZjY2YiJ9LmZhLXRvaWxldC1wYXBlcjpiZWZvcmV7Y29udGVudDoiXGY3MWUifS5mYS1oYXJkLWhhdDpiZWZvcmUsLmZhLWhhdC1oYXJkOmJlZm9yZSwuZmEtaGVsbWV0LXNhZmV0eTpiZWZvcmV7Y29udGVudDoiXGY4MDcifS5mYS1lamVjdDpiZWZvcmV7Y29udGVudDoiXGYwNTIifS5mYS1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OmJlZm9yZSwuZmEtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1YSJ9LmZhLXBsYW5lLWNpcmNsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU1NTUifS5mYS1mYWNlLXJvbGxpbmctZXllczpiZWZvcmUsLmZhLW1laC1yb2xsaW5nLWV5ZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNWE1In0uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0NyJ9LmZhLWNoYXJ0LWxpbmU6YmVmb3JlLC5mYS1saW5lLWNoYXJ0OmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLW1hc2stdmVudGlsYXRvcjpiZWZvcmV7Y29udGVudDoiXGU1MjQifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1tYXAtc2lnbnM6YmVmb3JlLC5mYS1zaWducy1wb3N0OmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLWNhc2gtcmVnaXN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNzg4In0uZmEtcGVyc29uLWNpcmNsZS1xdWVzdGlvbjpiZWZvcmV7Y29udGVudDoiXGU1NDIifS5mYS1oOmJlZm9yZXtjb250ZW50OiJcNDgifS5mYS10YXJwOmJlZm9yZXtjb250ZW50OiJcZTU3YiJ9LmZhLXNjcmV3ZHJpdmVyLXdyZW5jaDpiZWZvcmUsLmZhLXRvb2xzOmJlZm9yZXtjb250ZW50OiJcZjdkOSJ9LmZhLWFycm93cy10by1leWU6YmVmb3Jle2NvbnRlbnQ6IlxlNGJmIn0uZmEtcGx1Zy1jaXJjbGUtYm9sdDpiZWZvcmV7Y29udGVudDoiXGU1NWIifS5mYS1oZWFydDpiZWZvcmV7Y29udGVudDoiXGYwMDQifS5mYS1tYXJzLWFuZC12ZW51czpiZWZvcmV7Y29udGVudDoiXGYyMjQifS5mYS1ob21lLXVzZXI6YmVmb3JlLC5mYS1ob3VzZS11c2VyOmJlZm9yZXtjb250ZW50OiJcZTFiMCJ9LmZhLWR1bXBzdGVyLWZpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNzk0In0uZmEtaG91c2UtY3JhY2s6YmVmb3Jle2NvbnRlbnQ6IlxlM2IxIn0uZmEtY29ja3RhaWw6YmVmb3JlLC5mYS1tYXJ0aW5pLWdsYXNzLWNpdHJ1czpiZWZvcmV7Y29udGVudDoiXGY1NjEifS5mYS1mYWNlLXN1cnByaXNlOmJlZm9yZSwuZmEtc3VycHJpc2U6YmVmb3Jle2NvbnRlbnQ6IlxmNWMyIn0uZmEtYm90dGxlLXdhdGVyOmJlZm9yZXtjb250ZW50OiJcZTRjNSJ9LmZhLWNpcmNsZS1wYXVzZTpiZWZvcmUsLmZhLXBhdXNlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyOGIifS5mYS10b2lsZXQtcGFwZXItc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxlMDcyIn0uZmEtYXBwbGUtYWx0OmJlZm9yZSwuZmEtYXBwbGUtd2hvbGU6YmVmb3Jle2NvbnRlbnQ6IlxmNWQxIn0uZmEta2l0Y2hlbi1zZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTFhIn0uZmEtcjpiZWZvcmV7Y29udGVudDoiXDUyIn0uZmEtdGVtcGVyYXR1cmUtMTpiZWZvcmUsLmZhLXRlbXBlcmF0dXJlLXF1YXJ0ZXI6YmVmb3JlLC5mYS10aGVybW9tZXRlci0xOmJlZm9yZSwuZmEtdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyY2EifS5mYS1jdWJlOmJlZm9yZXtjb250ZW50OiJcZjFiMiJ9LmZhLWJpdGNvaW4tc2lnbjpiZWZvcmV7Y29udGVudDoiXGUwYjQifS5mYS1zaGllbGQtZG9nOmJlZm9yZXtjb250ZW50OiJcZTU3MyJ9LmZhLXNvbGFyLXBhbmVsOmJlZm9yZXtjb250ZW50OiJcZjViYSJ9LmZhLWxvY2stb3BlbjpiZWZvcmV7Y29udGVudDoiXGYzYzEifS5mYS1lbGV2YXRvcjpiZWZvcmV7Y29udGVudDoiXGUxNmQifS5mYS1tb25leS1iaWxsLXRyYW5zZmVyOmJlZm9yZXtjb250ZW50OiJcZTUyOCJ9LmZhLW1vbmV5LWJpbGwtdHJlbmQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlNTI5In0uZmEtaG91c2UtZmxvb2Qtd2F0ZXItY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTUwZiJ9LmZhLXBvbGwtaDpiZWZvcmUsLmZhLXNxdWFyZS1wb2xsLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNjgyIn0uZmEtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjExMSJ9LmZhLWJhY2t3YXJkLWZhc3Q6YmVmb3JlLC5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OSJ9LmZhLXJlY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI4In0uZmEtdXNlci1hc3Ryb25hdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGZiIn0uZmEtcGxhbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxlMDY5In0uZmEtdHJhZGVtYXJrOmJlZm9yZXtjb250ZW50OiJcZjI1YyJ9LmZhLWJhc2tldGJhbGwtYmFsbDpiZWZvcmUsLmZhLWJhc2tldGJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM0In0uZmEtc2F0ZWxsaXRlLWRpc2g6YmVmb3Jle2NvbnRlbnQ6IlxmN2MwIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmUsLmZhLWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZSwuZmEtbW9iaWxlLXNjcmVlbi1idXR0b246YmVmb3Jle2NvbnRlbnQ6IlxmM2NkIn0uZmEtdm9sdW1lLWhpZ2g6YmVmb3JlLC5mYS12b2x1bWUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDI4In0uZmEtdXNlcnMtcmF5czpiZWZvcmV7Y29udGVudDoiXGU1OTMifS5mYS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTU1In0uZmEtY2xpcGJvYXJkLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjQ2YyJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtYnVyZ2VyOmJlZm9yZSwuZmEtaGFtYnVyZ2VyOmJlZm9yZXtjb250ZW50OiJcZjgwNSJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS1idWdzOmJlZm9yZXtjb250ZW50OiJcZTRkMCJ9LmZhLXJ1cGVlLXNpZ246YmVmb3JlLC5mYS1ydXBlZTpiZWZvcmV7Y29udGVudDoiXGYxNTYifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWNpcmNsZS1xdWVzdGlvbjpiZWZvcmUsLmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1wbGFuZS1kZXBhcnR1cmU6YmVmb3Jle2NvbnRlbnQ6IlxmNWIwIn0uZmEtaGFuZHNoYWtlLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZTA2MCJ9LmZhLWJvb2stYm9va21hcms6YmVmb3Jle2NvbnRlbnQ6IlxlMGJiIn0uZmEtY29kZS1icmFuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtaGF0LWNvd2JveTpiZWZvcmV7Y29udGVudDoiXGY4YzAifS5mYS1icmlkZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlNGM4In0uZmEtcGhvbmUtYWx0OmJlZm9yZSwuZmEtcGhvbmUtZmxpcDpiZWZvcmV7Y29udGVudDoiXGY4NzkifS5mYS10cnVjay1mcm9udDpiZWZvcmV7Y29udGVudDoiXGUyYjcifS5mYS1jYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNmJlIn0uZmEtYW5jaG9yLWNpcmNsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGU0YWIifS5mYS10cnVjay1maWVsZDpiZWZvcmV7Y29udGVudDoiXGU1OGQifS5mYS1yb3V0ZTpiZWZvcmV7Y29udGVudDoiXGY0ZDcifS5mYS1jbGlwYm9hcmQtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxlNGUzIn0uZmEtcGFub3JhbWE6YmVmb3Jle2NvbnRlbnQ6IlxlMjA5In0uZmEtY29tbWVudC1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdmNSJ9LmZhLXRlZXRoLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmNjJmIn0uZmEtZmlsZS1jaXJjbGUtbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxlNGVkIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS13aW5lLWdsYXNzOmJlZm9yZXtjb250ZW50OiJcZjRlMyJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmUsLmZhLWZvcndhcmQtZmFzdDpiZWZvcmV7Y29udGVudDoiXGYwNTAifS5mYS1mYWNlLW1laC1ibGFuazpiZWZvcmUsLmZhLW1laC1ibGFuazpiZWZvcmV7Y29udGVudDoiXGY1YTQifS5mYS1wYXJraW5nOmJlZm9yZSwuZmEtc3F1YXJlLXBhcmtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNTQwIn0uZmEtaG91c2Utc2lnbmFsOmJlZm9yZXtjb250ZW50OiJcZTAxMiJ9LmZhLWJhcnMtcHJvZ3Jlc3M6YmVmb3JlLC5mYS10YXNrcy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODI4In0uZmEtZmF1Y2V0LWRyaXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDA2In0uZmEtY2FydC1mbGF0YmVkOmJlZm9yZSwuZmEtZG9sbHktZmxhdGJlZDpiZWZvcmV7Y29udGVudDoiXGY0NzQifS5mYS1iYW4tc21va2luZzpiZWZvcmUsLmZhLXNtb2tpbmctYmFuOmJlZm9yZXtjb250ZW50OiJcZjU0ZCJ9LmZhLXRlcm1pbmFsOmJlZm9yZXtjb250ZW50OiJcZjEyMCJ9LmZhLW1vYmlsZS1idXR0b246YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtaG91c2UtbWVkaWNhbC1mbGFnOmJlZm9yZXtjb250ZW50OiJcZTUxNCJ9LmZhLWJhc2tldC1zaG9wcGluZzpiZWZvcmUsLmZhLXNob3BwaW5nLWJhc2tldDpiZWZvcmV7Y29udGVudDoiXGYyOTEifS5mYS10YXBlOmJlZm9yZXtjb250ZW50OiJcZjRkYiJ9LmZhLWJ1cy1hbHQ6YmVmb3JlLC5mYS1idXMtc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZjU1ZSJ9LmZhLWV5ZTpiZWZvcmV7Y29udGVudDoiXGYwNmUifS5mYS1mYWNlLXNhZC1jcnk6YmVmb3JlLC5mYS1zYWQtY3J5OmJlZm9yZXtjb250ZW50OiJcZjViMyJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLXBlcnNvbi1taWxpdGFyeS10by1wZXJzb246YmVmb3Jle2NvbnRlbnQ6IlxlNTRjIn0uZmEtZmlsZS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGYwIn0uZmEtdXNlci1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1MDYifS5mYS1wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMzA0In0uZmEtdG93ZXItb2JzZXJ2YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxlNTg2In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLXNpZ25hbC01OmJlZm9yZSwuZmEtc2lnbmFsLXBlcmZlY3Q6YmVmb3JlLC5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtYnVzOmJlZm9yZXtjb250ZW50OiJcZjIwNyJ9LmZhLWhlYXJ0LWNpcmNsZS14bWFyazpiZWZvcmV7Y29udGVudDoiXGU1MDEifS5mYS1ob21lLWxnOmJlZm9yZSwuZmEtaG91c2UtY2hpbW5leTpiZWZvcmV7Y29udGVudDoiXGUzYWYifS5mYS13aW5kb3ctbWF4aW1pemU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQwIn0uZmEtZmFjZS1mcm93bjpiZWZvcmUsLmZhLWZyb3duOmJlZm9yZXtjb250ZW50OiJcZjExOSJ9LmZhLXByZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGY1YjEifS5mYS1zaG9wOmJlZm9yZSwuZmEtc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU0ZiJ9LmZhLWZsb3BweS1kaXNrOmJlZm9yZSwuZmEtc2F2ZTpiZWZvcmV7Y29udGVudDoiXGYwYzcifS5mYS12aWhhcmE6YmVmb3Jle2NvbnRlbnQ6IlxmNmE3In0uZmEtYmFsYW5jZS1zY2FsZS1sZWZ0OmJlZm9yZSwuZmEtc2NhbGUtdW5iYWxhbmNlZDpiZWZvcmV7Y29udGVudDoiXGY1MTUifS5mYS1zb3J0LWFzYzpiZWZvcmUsLmZhLXNvcnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGRlIn0uZmEtY29tbWVudC1kb3RzOmJlZm9yZSwuZmEtY29tbWVudGluZzpiZWZvcmV7Y29udGVudDoiXGY0YWQifS5mYS1wbGFudC13aWx0OmJlZm9yZXtjb250ZW50OiJcZTVhYSJ9LmZhLWRpYW1vbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjE5In0uZmEtZmFjZS1ncmluLXNxdWludDpiZWZvcmUsLmZhLWdyaW4tc3F1aW50OmJlZm9yZXtjb250ZW50OiJcZjU4NSJ9LmZhLWhhbmQtaG9sZGluZy1kb2xsYXI6YmVmb3JlLC5mYS1oYW5kLWhvbGRpbmctdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjMCJ9LmZhLWJhY3Rlcml1bTpiZWZvcmV7Y29udGVudDoiXGUwNWEifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtZHJ1bS1zdGVlbHBhbjpiZWZvcmV7Y29udGVudDoiXGY1NmEifS5mYS1oYW5kLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZjI1NyJ9LmZhLWhhbmRzLXByYXlpbmc6YmVmb3JlLC5mYS1wcmF5aW5nLWhhbmRzOmJlZm9yZXtjb250ZW50OiJcZjY4NCJ9LmZhLWFycm93LXJpZ2h0LXJvdGF0ZTpiZWZvcmUsLmZhLWFycm93LXJvdGF0ZS1mb3J3YXJkOmJlZm9yZSwuZmEtYXJyb3ctcm90YXRlLXJpZ2h0OmJlZm9yZSwuZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1iaW9oYXphcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzgwIn0uZmEtbG9jYXRpb24tY3Jvc3NoYWlyczpiZWZvcmUsLmZhLWxvY2F0aW9uOmJlZm9yZXtjb250ZW50OiJcZjYwMSJ9LmZhLW1hcnMtZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjIyNyJ9LmZhLWNoaWxkLWRyZXNzOmJlZm9yZXtjb250ZW50OiJcZTU5YyJ9LmZhLXVzZXJzLWJldHdlZW4tbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxlNTkxIn0uZmEtbHVuZ3MtdmlydXM6YmVmb3Jle2NvbnRlbnQ6IlxlMDY3In0uZmEtZmFjZS1ncmluLXRlYXJzOmJlZm9yZSwuZmEtZ3Jpbi10ZWFyczpiZWZvcmV7Y29udGVudDoiXGY1ODgifS5mYS1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYwOTUifS5mYS1jYWxlbmRhci10aW1lczpiZWZvcmUsLmZhLWNhbGVuZGFyLXhtYXJrOmJlZm9yZXtjb250ZW50OiJcZjI3MyJ9LmZhLWNoaWxkLXJlYWNoaW5nOmJlZm9yZXtjb250ZW50OiJcZTU5ZCJ9LmZhLWhlYWQtc2lkZS12aXJ1czpiZWZvcmV7Y29udGVudDoiXGUwNjQifS5mYS11c2VyLWNvZzpiZWZvcmUsLmZhLXVzZXItZ2VhcjpiZWZvcmV7Y29udGVudDoiXGY0ZmUifS5mYS1hcnJvdy11cC0xLTk6YmVmb3JlLC5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtZG9vci1jbG9zZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTJhIn0uZmEtc2hpZWxkLXZpcnVzOmJlZm9yZXtjb250ZW50OiJcZTA2YyJ9LmZhLWRpY2Utc2l4OmJlZm9yZXtjb250ZW50OiJcZjUyNiJ9LmZhLW1vc3F1aXRvLW5ldDpiZWZvcmV7Y29udGVudDoiXGU1MmMifS5mYS1icmlkZ2Utd2F0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlNGNlIn0uZmEtcGVyc29uLWJvb3RoOmJlZm9yZXtjb250ZW50OiJcZjc1NiJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtaGF0LXdpemFyZDpiZWZvcmV7Y29udGVudDoiXGY2ZTgifS5mYS1wZW4tZmFuY3k6YmVmb3Jle2NvbnRlbnQ6IlxmNWFjIn0uZmEtZGlnZ2luZzpiZWZvcmUsLmZhLXBlcnNvbi1kaWdnaW5nOmJlZm9yZXtjb250ZW50OiJcZjg1ZSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLWdhdWdlLXNpbXBsZS1tZWQ6YmVmb3JlLC5mYS1nYXVnZS1zaW1wbGU6YmVmb3JlLC5mYS10YWNob21ldGVyLWF2ZXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjI5In0uZmEtYm9vay1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdlNiJ9LmZhLXBvbzpiZWZvcmV7Y29udGVudDoiXGYyZmUifS5mYS1xdW90ZS1yaWdodC1hbHQ6YmVmb3JlLC5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1zaGlydDpiZWZvcmUsLmZhLXQtc2hpcnQ6YmVmb3JlLC5mYS10c2hpcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTUzIn0uZmEtY3ViZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWIzIn0uZmEtZGl2aWRlOmJlZm9yZXtjb250ZW50OiJcZjUyOSJ9LmZhLXRlbmdlLXNpZ246YmVmb3JlLC5mYS10ZW5nZTpiZWZvcmV7Y29udGVudDoiXGY3ZDcifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OiJcZjAyNSJ9LmZhLWhhbmRzLWhvbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNGMyIn0uZmEtaGFuZHMtY2xhcHBpbmc6YmVmb3Jle2NvbnRlbnQ6IlxlMWE4In0uZmEtcmVwdWJsaWNhbjpiZWZvcmV7Y29udGVudDoiXGY3NWUifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLXBlcnNvbi1jaXJjbGUteG1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlNTQzIn0uZmEtcnVsZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTQ1In0uZmEtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwMzYifS5mYS1kaWNlLWQ2OmJlZm9yZXtjb250ZW50OiJcZjZkMSJ9LmZhLXJlc3Ryb29tOmJlZm9yZXtjb250ZW50OiJcZjdiZCJ9LmZhLWo6YmVmb3Jle2NvbnRlbnQ6Ilw0YSJ9LmZhLXVzZXJzLXZpZXdmaW5kZXI6YmVmb3Jle2NvbnRlbnQ6IlxlNTk1In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmUsLmZhLXVwLXJpZ2h0LWZyb20tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLXRhYmxlLWNlbGxzOmJlZm9yZSwuZmEtdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDBhIn0uZmEtZmlsZS1wZGY6YmVmb3Jle2NvbnRlbnQ6IlxmMWMxIn0uZmEtYmlibGU6YmVmb3JlLC5mYS1ib29rLWJpYmxlOmJlZm9yZXtjb250ZW50OiJcZjY0NyJ9LmZhLW86YmVmb3Jle2NvbnRlbnQ6Ilw0ZiJ9LmZhLW1lZGtpdDpiZWZvcmUsLmZhLXN1aXRjYXNlLW1lZGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtdXNlci1zZWNyZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFiIn0uZmEtb3R0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNzAwIn0uZmEtZmVtYWxlOmJlZm9yZSwuZmEtcGVyc29uLWRyZXNzOmJlZm9yZXtjb250ZW50OiJcZjE4MiJ9LmZhLWNvbW1lbnQtZG9sbGFyOmJlZm9yZXtjb250ZW50OiJcZjY1MSJ9LmZhLWJyaWVmY2FzZS1jbG9jazpiZWZvcmUsLmZhLWJ1c2luZXNzLXRpbWU6YmVmb3Jle2NvbnRlbnQ6IlxmNjRhIn0uZmEtdGFibGUtY2VsbHMtbGFyZ2U6YmVmb3JlLC5mYS10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGYwMDkifS5mYS1ib29rLXRhbmFraDpiZWZvcmUsLmZhLXRhbmFraDpiZWZvcmV7Y29udGVudDoiXGY4MjcifS5mYS1waG9uZS12b2x1bWU6YmVmb3JlLC5mYS12b2x1bWUtY29udHJvbC1waG9uZTpiZWZvcmV7Y29udGVudDoiXGYyYTAifS5mYS1oYXQtY293Ym95LXNpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmOGMxIn0uZmEtY2xpcGJvYXJkLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmN2YzIn0uZmEtY2hpbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWFlIn0uZmEtbGlyYS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE5NSJ9LmZhLXNhdGVsbGl0ZTpiZWZvcmV7Y29udGVudDoiXGY3YmYifS5mYS1wbGFuZS1sb2NrOmJlZm9yZXtjb250ZW50OiJcZTU1OCJ9LmZhLXRhZzpiZWZvcmV7Y29udGVudDoiXGYwMmIifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWJpcnRoZGF5LWNha2U6YmVmb3JlLC5mYS1jYWtlLWNhbmRsZXM6YmVmb3JlLC5mYS1jYWtlOmJlZm9yZXtjb250ZW50OiJcZjFmZCJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmUsLmZhLWFuZ2xlcy11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1wYXBlcmNsaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGM2In0uZmEtYXJyb3ctcmlnaHQtdG8tY2l0eTpiZWZvcmV7Y29udGVudDoiXGU0YjMifS5mYS1yaWJib246YmVmb3Jle2NvbnRlbnQ6IlxmNGQ2In0uZmEtbHVuZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmNjA0In0uZmEtYXJyb3ctdXAtOS0xOmJlZm9yZSwuZmEtc29ydC1udW1lcmljLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODcifS5mYS1saXRlY29pbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZTFkMyJ9LmZhLWJvcmRlci1ub25lOmJlZm9yZXtjb250ZW50OiJcZjg1MCJ9LmZhLWNpcmNsZS1ub2RlczpiZWZvcmV7Y29udGVudDoiXGU0ZTIifS5mYS1wYXJhY2h1dGUtYm94OmJlZm9yZXtjb250ZW50OiJcZjRjZCJ9LmZhLWluZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2MifS5mYS10cnVjay1maWVsZC11bjpiZWZvcmV7Y29udGVudDoiXGU1OGUifS5mYS1ob3VyZ2xhc3MtZW1wdHk6YmVmb3JlLC5mYS1ob3VyZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjU0In0uZmEtbW91bnRhaW46YmVmb3Jle2NvbnRlbnQ6IlxmNmZjIn0uZmEtdXNlci1kb2N0b3I6YmVmb3JlLC5mYS11c2VyLW1kOmJlZm9yZXtjb250ZW50OiJcZjBmMCJ9LmZhLWNpcmNsZS1pbmZvOmJlZm9yZSwuZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtY2xvdWQtbWVhdGJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNzNiIn0uZmEtY2FtZXJhLWFsdDpiZWZvcmUsLmZhLWNhbWVyYTpiZWZvcmV7Y29udGVudDoiXGYwMzAifS5mYS1zcXVhcmUtdmlydXM6YmVmb3Jle2NvbnRlbnQ6IlxlNTc4In0uZmEtbWV0ZW9yOmJlZm9yZXtjb250ZW50OiJcZjc1MyJ9LmZhLWNhci1vbjpiZWZvcmV7Y29udGVudDoiXGU0ZGQifS5mYS1zbGVpZ2g6YmVmb3Jle2NvbnRlbnQ6IlxmN2NjIn0uZmEtYXJyb3ctZG93bi0xLTk6YmVmb3JlLC5mYS1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZSwuZmEtc29ydC1udW1lcmljLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYyIn0uZmEtaGFuZC1ob2xkaW5nLWRyb3BsZXQ6YmVmb3JlLC5mYS1oYW5kLWhvbGRpbmctd2F0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNGMxIn0uZmEtd2F0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNzczIn0uZmEtY2FsZW5kYXItY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMjc0In0uZmEtYnJhaWxsZTpiZWZvcmV7Y29udGVudDoiXGYyYTEifS5mYS1wcmVzY3JpcHRpb24tYm90dGxlLWFsdDpiZWZvcmUsLmZhLXByZXNjcmlwdGlvbi1ib3R0bGUtbWVkaWNhbDpiZWZvcmV7Y29udGVudDoiXGY0ODYifS5mYS1sYW5kbWFyazpiZWZvcmV7Y29udGVudDoiXGY2NmYifS5mYS10cnVjazpiZWZvcmV7Y29udGVudDoiXGYwZDEifS5mYS1jcm9zc2hhaXJzOmJlZm9yZXtjb250ZW50OiJcZjA1YiJ9LmZhLXBlcnNvbi1jYW5lOmJlZm9yZXtjb250ZW50OiJcZTUzYyJ9LmZhLXRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTdkIn0uZmEtdmVzdC1wYXRjaGVzOmJlZm9yZXtjb250ZW50OiJcZTA4NiJ9LmZhLWNoZWNrLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGY1NjAifS5mYS1hcnJvdy1kb3duLWEtejpiZWZvcmUsLmZhLXNvcnQtYWxwaGEtYXNjOmJlZm9yZSwuZmEtc29ydC1hbHBoYS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE1ZCJ9LmZhLW1vbmV5LWJpbGwtd2hlYXQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTJhIn0uZmEtY29va2llOmJlZm9yZXtjb250ZW50OiJcZjU2MyJ9LmZhLWFycm93LWxlZnQtcm90YXRlOmJlZm9yZSwuZmEtYXJyb3ctcm90YXRlLWJhY2s6YmVmb3JlLC5mYS1hcnJvdy1yb3RhdGUtYmFja3dhcmQ6YmVmb3JlLC5mYS1hcnJvdy1yb3RhdGUtbGVmdDpiZWZvcmUsLmZhLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmMGUyIn0uZmEtaGFyZC1kcml2ZTpiZWZvcmUsLmZhLWhkZDpiZWZvcmV7Y29udGVudDoiXGYwYTAifS5mYS1mYWNlLWdyaW4tc3F1aW50LXRlYXJzOmJlZm9yZSwuZmEtZ3Jpbi1zcXVpbnQtdGVhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmNTg2In0uZmEtZHVtYmJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDRiIn0uZmEtbGlzdC1hbHQ6YmVmb3JlLC5mYS1yZWN0YW5nbGUtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwMjIifS5mYS10YXJwLWRyb3BsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTdjIn0uZmEtaG91c2UtbWVkaWNhbC1jaXJjbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNTExIn0uZmEtcGVyc29uLXNraWluZy1ub3JkaWM6YmVmb3JlLC5mYS1za2lpbmctbm9yZGljOmJlZm9yZXtjb250ZW50OiJcZjdjYSJ9LmZhLWNhbGVuZGFyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcxIn0uZmEtcGxhbmUtYXJyaXZhbDpiZWZvcmV7Y29udGVudDoiXGY1YWYifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWxlZnQ6YmVmb3JlLC5mYS1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNTkifS5mYS1zdWJ3YXk6YmVmb3JlLC5mYS10cmFpbi1zdWJ3YXk6YmVmb3Jle2NvbnRlbnQ6IlxmMjM5In0uZmEtY2hhcnQtZ2FudHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMGU0In0uZmEtaW5kaWFuLXJ1cGVlLXNpZ246YmVmb3JlLC5mYS1pbmRpYW4tcnVwZWU6YmVmb3JlLC5mYS1pbnI6YmVmb3Jle2NvbnRlbnQ6IlxlMWJjIn0uZmEtY3JvcC1hbHQ6YmVmb3JlLC5mYS1jcm9wLXNpbXBsZTpiZWZvcmV7Y29udGVudDoiXGY1NjUifS5mYS1tb25leS1iaWxsLTE6YmVmb3JlLC5mYS1tb25leS1iaWxsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZDEifS5mYS1sZWZ0LWxvbmc6YmVmb3JlLC5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWRuYTpiZWZvcmV7Y29udGVudDoiXGY0NzEifS5mYS12aXJ1cy1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGUwNzUifS5mYS1taW51czpiZWZvcmUsLmZhLXN1YnRyYWN0OmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLWNoZXNzOmJlZm9yZXtjb250ZW50OiJcZjQzOSJ9LmZhLWFycm93LWxlZnQtbG9uZzpiZWZvcmUsLmZhLWxvbmctYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxNzcifS5mYS1wbHVnLWNpcmNsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU1NWMifS5mYS1zdHJlZXQtdmlldzpiZWZvcmV7Y29udGVudDoiXGYyMWQifS5mYS1mcmFuYy1zaWduOmJlZm9yZXtjb250ZW50OiJcZTE4ZiJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3JlLC5mYS1hc2wtaW50ZXJwcmV0aW5nOmJlZm9yZSwuZmEtaGFuZHMtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3JlLC5mYS1oYW5kcy1hc2wtaW50ZXJwcmV0aW5nOmJlZm9yZXtjb250ZW50OiJcZjJhMyJ9LmZhLWNvZzpiZWZvcmUsLmZhLWdlYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtZHJvcGxldC1zbGFzaDpiZWZvcmUsLmZhLXRpbnQtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWM3In0uZmEtbW9zcXVlOmJlZm9yZXtjb250ZW50OiJcZjY3OCJ9LmZhLW1vc3F1aXRvOmJlZm9yZXtjb250ZW50OiJcZTUyYiJ9LmZhLXN0YXItb2YtZGF2aWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjlhIn0uZmEtcGVyc29uLW1pbGl0YXJ5LXJpZmxlOmJlZm9yZXtjb250ZW50OiJcZTU0YiJ9LmZhLWNhcnQtc2hvcHBpbmc6YmVmb3JlLC5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjA3YSJ9LmZhLXZpYWxzOmJlZm9yZXtjb250ZW50OiJcZjQ5MyJ9LmZhLXBsdWctY2lyY2xlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxlNTVmIn0uZmEtcGxhY2Utb2Ytd29yc2hpcDpiZWZvcmV7Y29udGVudDoiXGY2N2YifS5mYS1ncmlwLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjU4ZSJ9LmZhLWFycm93LXR1cm4tdXA6YmVmb3JlLC5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS11OmJlZm9yZXtjb250ZW50OiJcNTUifS5mYS1zcXVhcmUtcm9vdC1hbHQ6YmVmb3JlLC5mYS1zcXVhcmUtcm9vdC12YXJpYWJsZTpiZWZvcmV7Y29udGVudDoiXGY2OTgifS5mYS1jbG9jay1mb3VyOmJlZm9yZSwuZmEtY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMDE3In0uZmEtYmFja3dhcmQtc3RlcDpiZWZvcmUsLmZhLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ4In0uZmEtcGFsbGV0OmJlZm9yZXtjb250ZW50OiJcZjQ4MiJ9LmZhLWZhdWNldDpiZWZvcmV7Y29udGVudDoiXGUwMDUifS5mYS1iYXNlYmFsbC1iYXQtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzIifS5mYS1zOmJlZm9yZXtjb250ZW50OiJcNTMifS5mYS10aW1lbGluZTpiZWZvcmV7Y29udGVudDoiXGUyOWMifS5mYS1rZXlib2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMWMifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNsaW5pYy1tZWRpY2FsOmJlZm9yZSwuZmEtaG91c2UtY2hpbW5leS1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdmMiJ9LmZhLXRlbXBlcmF0dXJlLTM6YmVmb3JlLC5mYS10ZW1wZXJhdHVyZS10aHJlZS1xdWFydGVyczpiZWZvcmUsLmZhLXRoZXJtb21ldGVyLTM6YmVmb3JlLC5mYS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyYzgifS5mYS1tb2JpbGUtYW5kcm9pZC1hbHQ6YmVmb3JlLC5mYS1tb2JpbGUtc2NyZWVuOmJlZm9yZXtjb250ZW50OiJcZjNjZiJ9LmZhLXBsYW5lLXVwOmJlZm9yZXtjb250ZW50OiJcZTIyZCJ9LmZhLXBpZ2d5LWJhbms6YmVmb3Jle2NvbnRlbnQ6IlxmNGQzIn0uZmEtYmF0dGVyeS0zOmJlZm9yZSwuZmEtYmF0dGVyeS1oYWxmOmJlZm9yZXtjb250ZW50OiJcZjI0MiJ9LmZhLW1vdW50YWluLWNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxlNTJlIn0uZmEtY29pbnM6YmVmb3Jle2NvbnRlbnQ6IlxmNTFlIn0uZmEta2hhbmRhOmJlZm9yZXtjb250ZW50OiJcZjY2ZCJ9LmZhLXNsaWRlcnMtaDpiZWZvcmUsLmZhLXNsaWRlcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtZm9sZGVyLXRyZWU6YmVmb3Jle2NvbnRlbnQ6IlxmODAyIn0uZmEtbmV0d29yay13aXJlZDpiZWZvcmV7Y29udGVudDoiXGY2ZmYifS5mYS1tYXAtcGluOmJlZm9yZXtjb250ZW50OiJcZjI3NiJ9LmZhLWhhbXNhOmJlZm9yZXtjb250ZW50OiJcZjY2NSJ9LmZhLWNlbnQtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUzZjUifS5mYS1mbGFzazpiZWZvcmV7Y29udGVudDoiXGYwYzMifS5mYS1wZXJzb24tcHJlZ25hbnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMzFlIn0uZmEtd2FuZC1zcGFya2xlczpiZWZvcmV7Y29udGVudDoiXGY3MmIifS5mYS1lbGxpcHNpcy12OmJlZm9yZSwuZmEtZWxsaXBzaXMtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTQyIn0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLXBvd2VyLW9mZjpiZWZvcmV7Y29udGVudDoiXGYwMTEifS5mYS1sb25nLWFycm93LWFsdC1yaWdodDpiZWZvcmUsLmZhLXJpZ2h0LWxvbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMzBiIn0uZmEtZmxhZy11c2E6YmVmb3Jle2NvbnRlbnQ6IlxmNzRkIn0uZmEtbGFwdG9wLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxlNTFkIn0uZmEtdGVsZXR5cGU6YmVmb3JlLC5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtZGlhZ3JhbS1uZXh0OmJlZm9yZXtjb250ZW50OiJcZTQ3NiJ9LmZhLXBlcnNvbi1yaWZsZTpiZWZvcmV7Y29udGVudDoiXGU1NGUifS5mYS1ob3VzZS1tZWRpY2FsLWNpcmNsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGU1MTIifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1oaWtpbmc6YmVmb3JlLC5mYS1wZXJzb24taGlraW5nOmJlZm9yZXtjb250ZW50OiJcZjZlYyJ9LmZhLXZlbnVzLWRvdWJsZTpiZWZvcmV7Y29udGVudDoiXGYyMjYifS5mYS1pbWFnZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMzAyIn0uZmEtY2FsY3VsYXRvcjpiZWZvcmV7Y29udGVudDoiXGYxZWMifS5mYS1wZW9wbGUtcHVsbGluZzpiZWZvcmV7Y29udGVudDoiXGU1MzUifS5mYS1uOmJlZm9yZXtjb250ZW50OiJcNGUifS5mYS1jYWJsZS1jYXI6YmVmb3JlLC5mYS10cmFtOmJlZm9yZXtjb250ZW50OiJcZjdkYSJ9LmZhLWNsb3VkLXJhaW46YmVmb3Jle2NvbnRlbnQ6IlxmNzNkIn0uZmEtYnVpbGRpbmctY2lyY2xlLXhtYXJrOmJlZm9yZXtjb250ZW50OiJcZTRkNCJ9LmZhLXNoaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjFhIn0uZmEtYXJyb3dzLWRvd24tdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGU0YjgifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1mYWNlLWdyaW46YmVmb3JlLC5mYS1ncmluOmJlZm9yZXtjb250ZW50OiJcZjU4MCJ9LmZhLWJhY2tzcGFjZTpiZWZvcmUsLmZhLWRlbGV0ZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjU1YSJ9LmZhLWV5ZS1kcm9wcGVyLWVtcHR5OmJlZm9yZSwuZmEtZXllLWRyb3BwZXI6YmVmb3JlLC5mYS1leWVkcm9wcGVyOmJlZm9yZXtjb250ZW50OiJcZjFmYiJ9LmZhLWZpbGUtY2lyY2xlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZTVhMCJ9LmZhLWZvcndhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDRlIn0uZmEtbW9iaWxlLWFuZHJvaWQ6YmVmb3JlLC5mYS1tb2JpbGUtcGhvbmU6YmVmb3JlLC5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2NlIn0uZmEtZmFjZS1tZWg6YmVmb3JlLC5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtYWxpZ24tY2VudGVyOmJlZm9yZXtjb250ZW50OiJcZjAzNyJ9LmZhLWJvb2stZGVhZDpiZWZvcmUsLmZhLWJvb2stc2t1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmNmI3In0uZmEtZHJpdmVycy1saWNlbnNlOmJlZm9yZSwuZmEtaWQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYyYzIifS5mYS1kZWRlbnQ6YmVmb3JlLC5mYS1vdXRkZW50OmJlZm9yZXtjb250ZW50OiJcZjAzYiJ9LmZhLWhlYXJ0LWNpcmNsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGU0ZmUifS5mYS1ob21lLWFsdDpiZWZvcmUsLmZhLWhvbWUtbGctYWx0OmJlZm9yZSwuZmEtaG9tZTpiZWZvcmUsLmZhLWhvdXNlOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWNhbGVuZGFyLXdlZWs6YmVmb3Jle2NvbnRlbnQ6IlxmNzg0In0uZmEtbGFwdG9wLW1lZGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmODEyIn0uZmEtYjpiZWZvcmV7Y29udGVudDoiXDQyIn0uZmEtZmlsZS1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjQ3NyJ9LmZhLWRpY2Utb25lOmJlZm9yZXtjb250ZW50OiJcZjUyNSJ9LmZhLWtpd2ktYmlyZDpiZWZvcmV7Y29udGVudDoiXGY1MzUifS5mYS1hcnJvdy1yaWdodC1hcnJvdy1sZWZ0OmJlZm9yZSwuZmEtZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGVjIn0uZmEtcmVkby1hbHQ6YmVmb3JlLC5mYS1yb3RhdGUtZm9yd2FyZDpiZWZvcmUsLmZhLXJvdGF0ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1jdXRsZXJ5OmJlZm9yZSwuZmEtdXRlbnNpbHM6YmVmb3Jle2NvbnRlbnQ6IlxmMmU3In0uZmEtYXJyb3ctdXAtd2lkZS1zaG9ydDpiZWZvcmUsLmZhLXNvcnQtYW1vdW50LXVwOmJlZm9yZXtjb250ZW50OiJcZjE2MSJ9LmZhLW1pbGwtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxZWQifS5mYS1ib3dsLXJpY2U6YmVmb3Jle2NvbnRlbnQ6IlxlMmViIn0uZmEtc2t1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmNTRjIn0uZmEtYnJvYWRjYXN0LXRvd2VyOmJlZm9yZSwuZmEtdG93ZXItYnJvYWRjYXN0OmJlZm9yZXtjb250ZW50OiJcZjUxOSJ9LmZhLXRydWNrLXBpY2t1cDpiZWZvcmV7Y29udGVudDoiXGY2M2MifS5mYS1sb25nLWFycm93LWFsdC11cDpiZWZvcmUsLmZhLXVwLWxvbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMzBjIn0uZmEtc3RvcDpiZWZvcmV7Y29udGVudDoiXGYwNGQifS5mYS1jb2RlLW1lcmdlOmJlZm9yZXtjb250ZW50OiJcZjM4NyJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS1odXJyaWNhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmNzUxIn0uZmEtbW91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTJkIn0uZmEtdG9pbGV0LXBvcnRhYmxlOmJlZm9yZXtjb250ZW50OiJcZTU4MyJ9LmZhLWNvbXBhY3QtZGlzYzpiZWZvcmV7Y29udGVudDoiXGY1MWYifS5mYS1maWxlLWFycm93LWRvd246YmVmb3JlLC5mYS1maWxlLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjU2ZCJ9LmZhLWNhcmF2YW46YmVmb3Jle2NvbnRlbnQ6IlxmOGZmIn0uZmEtc2hpZWxkLWNhdDpiZWZvcmV7Y29udGVudDoiXGU1NzIifS5mYS1ib2x0OmJlZm9yZSwuZmEtemFwOmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWdsYXNzLXdhdGVyOmJlZm9yZXtjb250ZW50OiJcZTRmNCJ9LmZhLW9pbC13ZWxsOmJlZm9yZXtjb250ZW50OiJcZTUzMiJ9LmZhLXZhdWx0OmJlZm9yZXtjb250ZW50OiJcZTJjNSJ9LmZhLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIyIn0uZmEtdG9pbGV0OmJlZm9yZXtjb250ZW50OiJcZjdkOCJ9LmZhLXBsYW5lLWNpcmNsZS14bWFyazpiZWZvcmV7Y29udGVudDoiXGU1NTcifS5mYS1jbnk6YmVmb3JlLC5mYS1qcHk6YmVmb3JlLC5mYS1ybWI6YmVmb3JlLC5mYS15ZW4tc2lnbjpiZWZvcmUsLmZhLXllbjpiZWZvcmV7Y29udGVudDoiXGYxNTcifS5mYS1yb3VibGU6YmVmb3JlLC5mYS1ydWI6YmVmb3JlLC5mYS1ydWJsZS1zaWduOmJlZm9yZSwuZmEtcnVibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTU4In0uZmEtc3VuOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLWd1aXRhcjpiZWZvcmV7Y29udGVudDoiXGY3YTYifS5mYS1mYWNlLWxhdWdoLXdpbms6YmVmb3JlLC5mYS1sYXVnaC13aW5rOmJlZm9yZXtjb250ZW50OiJcZjU5YyJ9LmZhLWhvcnNlLWhlYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmN2FiIn0uZmEtYm9yZS1ob2xlOmJlZm9yZXtjb250ZW50OiJcZTRjMyJ9LmZhLWluZHVzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjI3NSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtZG93bjpiZWZvcmUsLmZhLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjM1OCJ9LmZhLWFycm93cy10dXJuLXRvLWRvdHM6YmVmb3Jle2NvbnRlbnQ6IlxlNGMxIn0uZmEtZmxvcmluLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMTg0In0uZmEtYXJyb3ctZG93bi1zaG9ydC13aWRlOmJlZm9yZSwuZmEtc29ydC1hbW91bnQtZGVzYzpiZWZvcmUsLmZhLXNvcnQtYW1vdW50LWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NCJ9LmZhLWxlc3MtdGhhbjpiZWZvcmV7Y29udGVudDoiXDNjIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1jYXItdHVubmVsOmJlZm9yZXtjb250ZW50OiJcZTRkZSJ9LmZhLWhlYWQtc2lkZS1jb3VnaDpiZWZvcmV7Y29udGVudDoiXGUwNjEifS5mYS1ncmlwLWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjdhNCJ9LmZhLXRodW1icy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2NSJ9LmZhLXVzZXItbG9jazpiZWZvcmV7Y29udGVudDoiXGY1MDIifS5mYS1hcnJvdy1yaWdodC1sb25nOmJlZm9yZSwuZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNzgifS5mYS1hbmNob3ItY2lyY2xlLXhtYXJrOmJlZm9yZXtjb250ZW50OiJcZTRhYyJ9LmZhLWVsbGlwc2lzLWg6YmVmb3JlLC5mYS1lbGxpcHNpczpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1jaGVzcy1wYXduOmJlZm9yZXtjb250ZW50OiJcZjQ0MyJ9LmZhLWZpcnN0LWFpZDpiZWZvcmUsLmZhLWtpdC1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjQ3OSJ9LmZhLXBlcnNvbi10aHJvdWdoLXdpbmRvdzpiZWZvcmV7Y29udGVudDoiXGU1YTkifS5mYS10b29sYm94OmJlZm9yZXtjb250ZW50OiJcZjU1MiJ9LmZhLWhhbmRzLWhvbGRpbmctY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTRmYiJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1jcmVkaXQtY2FyZC1hbHQ6YmVmb3JlLC5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1hdXRvbW9iaWxlOmJlZm9yZSwuZmEtY2FyOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWhhbmQtaG9sZGluZy1oYW5kOmJlZm9yZXtjb250ZW50OiJcZTRmNyJ9LmZhLWJvb2stb3Blbi1yZWFkZXI6YmVmb3JlLC5mYS1ib29rLXJlYWRlcjpiZWZvcmV7Y29udGVudDoiXGY1ZGEifS5mYS1tb3VudGFpbi1zdW46YmVmb3Jle2NvbnRlbnQ6IlxlNTJmIn0uZmEtYXJyb3dzLWxlZnQtcmlnaHQtdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGU0YmEifS5mYS1kaWNlLWQyMDpiZWZvcmV7Y29udGVudDoiXGY2Y2YifS5mYS10cnVjay1kcm9wbGV0OmJlZm9yZXtjb250ZW50OiJcZTU4YyJ9LmZhLWZpbGUtY2lyY2xlLXhtYXJrOmJlZm9yZXtjb250ZW50OiJcZTVhMSJ9LmZhLXRlbXBlcmF0dXJlLWFycm93LXVwOmJlZm9yZSwuZmEtdGVtcGVyYXR1cmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDQwIn0uZmEtbWVkYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNWEyIn0uZmEtYmVkOmJlZm9yZXtjb250ZW50OiJcZjIzNiJ9LmZhLWgtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMGZkIn0uZmEtcG9kY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyY2UifS5mYS10ZW1wZXJhdHVyZS00OmJlZm9yZSwuZmEtdGVtcGVyYXR1cmUtZnVsbDpiZWZvcmUsLmZhLXRoZXJtb21ldGVyLTQ6YmVmb3JlLC5mYS10aGVybW9tZXRlci1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjJjNyJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtc3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJiIn0uZmEtcGx1Zy1jaXJjbGUteG1hcms6YmVmb3Jle2NvbnRlbnQ6IlxlNTYwIn0uZmEtc3Rhci1vZi1saWZlOmJlZm9yZXtjb250ZW50OiJcZjYyMSJ9LmZhLXBob25lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjNkZCJ9LmZhLXBhaW50LXJvbGxlcjpiZWZvcmV7Y29udGVudDoiXGY1YWEifS5mYS1oYW5kcy1oZWxwaW5nOmJlZm9yZSwuZmEtaGFuZHNoYWtlLWFuZ2xlOmJlZm9yZXtjb250ZW50OiJcZjRjNCJ9LmZhLWxvY2F0aW9uLWRvdDpiZWZvcmUsLmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZ3JlYXRlci10aGFuOmJlZm9yZXtjb250ZW50OiJcM2UifS5mYS1wZXJzb24tc3dpbW1pbmc6YmVmb3JlLC5mYS1zd2ltbWVyOmJlZm9yZXtjb250ZW50OiJcZjVjNCJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtZHJvcGxldDpiZWZvcmUsLmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtZXJhc2VyOmJlZm9yZXtjb250ZW50OiJcZjEyZCJ9LmZhLWVhcnRoLWFtZXJpY2E6YmVmb3JlLC5mYS1lYXJ0aC1hbWVyaWNhczpiZWZvcmUsLmZhLWVhcnRoOmJlZm9yZSwuZmEtZ2xvYmUtYW1lcmljYXM6YmVmb3Jle2NvbnRlbnQ6IlxmNTdkIn0uZmEtcGVyc29uLWJ1cnN0OmJlZm9yZXtjb250ZW50OiJcZTUzYiJ9LmZhLWRvdmU6YmVmb3Jle2NvbnRlbnQ6IlxmNGJhIn0uZmEtYmF0dGVyeS0wOmJlZm9yZSwuZmEtYmF0dGVyeS1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyNDQifS5mYS1zb2NrczpiZWZvcmV7Y29udGVudDoiXGY2OTYifS5mYS1pbmJveDpiZWZvcmV7Y29udGVudDoiXGYwMWMifS5mYS1zZWN0aW9uOmJlZm9yZXtjb250ZW50OiJcZTQ0NyJ9LmZhLWdhdWdlLWhpZ2g6YmVmb3JlLC5mYS10YWNob21ldGVyLWFsdC1mYXN0OmJlZm9yZSwuZmEtdGFjaG9tZXRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjI1In0uZmEtZW52ZWxvcGUtb3Blbi10ZXh0OmJlZm9yZXtjb250ZW50OiJcZjY1OCJ9LmZhLWhvc3BpdGFsLWFsdDpiZWZvcmUsLmZhLWhvc3BpdGFsLXdpZGU6YmVmb3JlLC5mYS1ob3NwaXRhbDpiZWZvcmV7Y29udGVudDoiXGYwZjgifS5mYS13aW5lLWJvdHRsZTpiZWZvcmV7Y29udGVudDoiXGY3MmYifS5mYS1jaGVzcy1yb29rOmJlZm9yZXtjb250ZW50OiJcZjQ0NyJ9LmZhLWJhcnMtc3RhZ2dlcmVkOmJlZm9yZSwuZmEtcmVvcmRlcjpiZWZvcmUsLmZhLXN0cmVhbTpiZWZvcmV7Y29udGVudDoiXGY1NTAifS5mYS1kaGFybWFjaGFrcmE6YmVmb3Jle2NvbnRlbnQ6IlxmNjU1In0uZmEtaG90ZG9nOmJlZm9yZXtjb250ZW50OiJcZjgwZiJ9LmZhLWJsaW5kOmJlZm9yZSwuZmEtcGVyc29uLXdhbGtpbmctd2l0aC1jYW5lOmJlZm9yZXtjb250ZW50OiJcZjI5ZCJ9LmZhLWRydW06YmVmb3Jle2NvbnRlbnQ6IlxmNTY5In0uZmEtaWNlLWNyZWFtOmJlZm9yZXtjb250ZW50OiJcZjgxMCJ9LmZhLWhlYXJ0LWNpcmNsZS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZTRmYyJ9LmZhLWZheDpiZWZvcmV7Y29udGVudDoiXGYxYWMifS5mYS1wYXJhZ3JhcGg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRkIn0uZmEtY2hlY2stdG8tc2xvdDpiZWZvcmUsLmZhLXZvdGUteWVhOmJlZm9yZXtjb250ZW50OiJcZjc3MiJ9LmZhLXN0YXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYwODkifS5mYS1ib3hlcy1hbHQ6YmVmb3JlLC5mYS1ib3hlcy1zdGFja2VkOmJlZm9yZSwuZmEtYm94ZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDY4In0uZmEtY2hhaW46YmVmb3JlLC5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczpiZWZvcmUsLmZhLWVhci1saXN0ZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmEyIn0uZmEtdHJlZS1jaXR5OmJlZm9yZXtjb250ZW50OiJcZTU4NyJ9LmZhLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMDRiIn0uZmEtZm9udDpiZWZvcmV7Y29udGVudDoiXGYwMzEifS5mYS1ydXBpYWgtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUyM2QifS5mYS1tYWduaWZ5aW5nLWdsYXNzOmJlZm9yZSwuZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXBpbmctcG9uZy1wYWRkbGUtYmFsbDpiZWZvcmUsLmZhLXRhYmxlLXRlbm5pcy1wYWRkbGUtYmFsbDpiZWZvcmUsLmZhLXRhYmxlLXRlbm5pczpiZWZvcmV7Y29udGVudDoiXGY0NWQifS5mYS1kaWFnbm9zZXM6YmVmb3JlLC5mYS1wZXJzb24tZG90cy1mcm9tLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDcwIn0uZmEtdHJhc2gtY2FuLWFycm93LXVwOmJlZm9yZSwuZmEtdHJhc2gtcmVzdG9yZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODJhIn0uZmEtbmFpcmEtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxZjYifS5mYS1jYXJ0LWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMjE4In0uZmEtd2Fsa2llLXRhbGtpZTpiZWZvcmV7Y29udGVudDoiXGY4ZWYifS5mYS1maWxlLWVkaXQ6YmVmb3JlLC5mYS1maWxlLXBlbjpiZWZvcmV7Y29udGVudDoiXGYzMWMifS5mYS1yZWNlaXB0OmJlZm9yZXtjb250ZW50OiJcZjU0MyJ9LmZhLXBlbi1zcXVhcmU6YmVmb3JlLC5mYS1wZW5jaWwtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLXBlbjpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1zdWl0Y2FzZS1yb2xsaW5nOmJlZm9yZXtjb250ZW50OiJcZjVjMSJ9LmZhLXBlcnNvbi1jaXJjbGUtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxlNTNmIn0uZmEtY2hldnJvbi1kb3duOmJlZm9yZXtjb250ZW50OiJcZjA3OCJ9LmZhLWJhdHRlcnktNTpiZWZvcmUsLmZhLWJhdHRlcnktZnVsbDpiZWZvcmUsLmZhLWJhdHRlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmMjQwIn0uZmEtc2t1bGwtY3Jvc3Nib25lczpiZWZvcmV7Y29udGVudDoiXGY3MTQifS5mYS1jb2RlLWNvbXBhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTNhIn0uZmEtbGlzdC1kb3RzOmJlZm9yZSwuZmEtbGlzdC11bDpiZWZvcmV7Y29udGVudDoiXGYwY2EifS5mYS1zY2hvb2wtbG9jazpiZWZvcmV7Y29udGVudDoiXGU1NmYifS5mYS10b3dlci1jZWxsOmJlZm9yZXtjb250ZW50OiJcZTU4NSJ9LmZhLWRvd24tbG9uZzpiZWZvcmUsLmZhLWxvbmctYXJyb3ctYWx0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzA5In0uZmEtcmFua2luZy1zdGFyOmJlZm9yZXtjb250ZW50OiJcZTU2MSJ9LmZhLWNoZXNzLWtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNDNmIn0uZmEtcGVyc29uLWhhcmFzc2luZzpiZWZvcmV7Y29udGVudDoiXGU1NDkifS5mYS1icmF6aWxpYW4tcmVhbC1zaWduOmJlZm9yZXtjb250ZW50OiJcZTQ2YyJ9LmZhLWxhbmRtYXJrLWFsdDpiZWZvcmUsLmZhLWxhbmRtYXJrLWRvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmNzUyIn0uZmEtYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMDYyIn0uZmEtdGVsZXZpc2lvbjpiZWZvcmUsLmZhLXR2LWFsdDpiZWZvcmUsLmZhLXR2OmJlZm9yZXtjb250ZW50OiJcZjI2YyJ9LmZhLXNocmltcDpiZWZvcmV7Y29udGVudDoiXGU0NDgifS5mYS1saXN0LWNoZWNrOmJlZm9yZSwuZmEtdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxmMGFlIn0uZmEtanVnLWRldGVyZ2VudDpiZWZvcmV7Y29udGVudDoiXGU1MTkifS5mYS1jaXJjbGUtdXNlcjpiZWZvcmUsLmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItc2hpZWxkOmJlZm9yZXtjb250ZW50OiJcZjUwNSJ9LmZhLXdpbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzJlIn0uZmEtY2FyLWJ1cnN0OmJlZm9yZSwuZmEtY2FyLWNyYXNoOmJlZm9yZXtjb250ZW50OiJcZjVlMSJ9LmZhLXk6YmVmb3Jle2NvbnRlbnQ6Ilw1OSJ9LmZhLXBlcnNvbi1zbm93Ym9hcmRpbmc6YmVmb3JlLC5mYS1zbm93Ym9hcmRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmN2NlIn0uZmEtc2hpcHBpbmctZmFzdDpiZWZvcmUsLmZhLXRydWNrLWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNDhiIn0uZmEtZmlzaDpiZWZvcmV7Y29udGVudDoiXGY1NzgifS5mYS11c2VyLWdyYWR1YXRlOmJlZm9yZXtjb250ZW50OiJcZjUwMSJ9LmZhLWFkanVzdDpiZWZvcmUsLmZhLWNpcmNsZS1oYWxmLXN0cm9rZTpiZWZvcmV7Y29udGVudDoiXGYwNDIifS5mYS1jbGFwcGVyYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTMxIn0uZmEtY2lyY2xlLXJhZGlhdGlvbjpiZWZvcmUsLmZhLXJhZGlhdGlvbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmN2JhIn0uZmEtYmFzZWJhbGwtYmFsbDpiZWZvcmUsLmZhLWJhc2ViYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzMyJ9LmZhLWpldC1maWdodGVyLXVwOmJlZm9yZXtjb250ZW50OiJcZTUxOCJ9LmZhLWRpYWdyYW0tcHJvamVjdDpiZWZvcmUsLmZhLXByb2plY3QtZGlhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGY1NDIifS5mYS1jb3B5OmJlZm9yZXtjb250ZW50OiJcZjBjNSJ9LmZhLXZvbHVtZS1tdXRlOmJlZm9yZSwuZmEtdm9sdW1lLXRpbWVzOmJlZm9yZSwuZmEtdm9sdW1lLXhtYXJrOmJlZm9yZXtjb250ZW50OiJcZjZhOSJ9LmZhLWhhbmQtc3BhcmtsZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMDVkIn0uZmEtZ3JpcC1ob3Jpem9udGFsOmJlZm9yZSwuZmEtZ3JpcDpiZWZvcmV7Y29udGVudDoiXGY1OGQifS5mYS1zaGFyZS1mcm9tLXNxdWFyZTpiZWZvcmUsLmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1jaGlsZC1jb21iYXRhbnQ6YmVmb3JlLC5mYS1jaGlsZC1yaWZsZTpiZWZvcmV7Y29udGVudDoiXGU0ZTAifS5mYS1ndW46YmVmb3Jle2NvbnRlbnQ6IlxlMTliIn0uZmEtcGhvbmUtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5OCJ9LmZhLWFkZDpiZWZvcmUsLmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlwyYiJ9LmZhLWV4cGFuZDpiZWZvcmV7Y29udGVudDoiXGYwNjUifS5mYS1jb21wdXRlcjpiZWZvcmV7Y29udGVudDoiXGU0ZTUifS5mYS1jbG9zZTpiZWZvcmUsLmZhLW11bHRpcGx5OmJlZm9yZSwuZmEtcmVtb3ZlOmJlZm9yZSwuZmEtdGltZXM6YmVmb3JlLC5mYS14bWFyazpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS1hcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0OmJlZm9yZSwuZmEtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZjA0NyJ9LmZhLWNoYWxrYm9hcmQtdGVhY2hlcjpiZWZvcmUsLmZhLWNoYWxrYm9hcmQtdXNlcjpiZWZvcmV7Y29udGVudDoiXGY1MWMifS5mYS1wZXNvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMjIyIn0uZmEtYnVpbGRpbmctc2hpZWxkOmJlZm9yZXtjb250ZW50OiJcZTRkOCJ9LmZhLWJhYnk6YmVmb3Jle2NvbnRlbnQ6IlxmNzdjIn0uZmEtdXNlcnMtbGluZTpiZWZvcmV7Y29udGVudDoiXGU1OTIifS5mYS1xdW90ZS1sZWZ0LWFsdDpiZWZvcmUsLmZhLXF1b3RlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBkIn0uZmEtdHJhY3RvcjpiZWZvcmV7Y29udGVudDoiXGY3MjIifS5mYS10cmFzaC1hcnJvdy11cDpiZWZvcmUsLmZhLXRyYXNoLXJlc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmODI5In0uZmEtYXJyb3ctZG93bi11cC1sb2NrOmJlZm9yZXtjb250ZW50OiJcZTRiMCJ9LmZhLWxpbmVzLWxlYW5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxlNTFlIn0uZmEtcnVsZXItY29tYmluZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTQ2In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWVxdWFsczpiZWZvcmV7Y29udGVudDoiXDNkIn0uZmEtYmxlbmRlcjpiZWZvcmV7Y29udGVudDoiXGY1MTcifS5mYS10ZWV0aDpiZWZvcmV7Y29udGVudDoiXGY2MmUifS5mYS1pbHM6YmVmb3JlLC5mYS1zaGVrZWwtc2lnbjpiZWZvcmUsLmZhLXNoZWtlbDpiZWZvcmUsLmZhLXNoZXFlbC1zaWduOmJlZm9yZSwuZmEtc2hlcWVsOmJlZm9yZXtjb250ZW50OiJcZjIwYiJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1yb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM1In0uZmEtcGhvdG8tZmlsbTpiZWZvcmUsLmZhLXBob3RvLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjg3YyJ9LmZhLWZvbGRlci1taW51czpiZWZvcmV7Y29udGVudDoiXGY2NWQifS5mYS1zdG9yZTpiZWZvcmV7Y29udGVudDoiXGY1NGUifS5mYS1hcnJvdy10cmVuZC11cDpiZWZvcmV7Y29udGVudDoiXGUwOTgifS5mYS1wbHVnLWNpcmNsZS1taW51czpiZWZvcmV7Y29udGVudDoiXGU1NWUifS5mYS1zaWduLWhhbmdpbmc6YmVmb3JlLC5mYS1zaWduOmJlZm9yZXtjb250ZW50OiJcZjRkOSJ9LmZhLWJlemllci1jdXJ2ZTpiZWZvcmV7Y29udGVudDoiXGY1NWIifS5mYS1iZWxsLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmNiJ9LmZhLXRhYmxldC1hbmRyb2lkOmJlZm9yZSwuZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjNmYiJ9LmZhLXNjaG9vbC1mbGFnOmJlZm9yZXtjb250ZW50OiJcZTU2ZSJ9LmZhLWZpbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNTc1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtZHJ1bXN0aWNrLWJpdGU6YmVmb3Jle2NvbnRlbnQ6IlxmNmQ3In0uZmEtaG9sbHktYmVycnk6YmVmb3Jle2NvbnRlbnQ6IlxmN2FhIn0uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA1MyJ9LmZhLWJhY3RlcmlhOmJlZm9yZXtjb250ZW50OiJcZTA1OSJ9LmZhLWhhbmQtbGl6YXJkOmJlZm9yZXtjb250ZW50OiJcZjI1OCJ9LmZhLW5vdGRlZjpiZWZvcmV7Y29udGVudDoiXGUxZmUifS5mYS1kaXNlYXNlOmJlZm9yZXtjb250ZW50OiJcZjdmYSJ9LmZhLWJyaWVmY2FzZS1tZWRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjQ2OSJ9LmZhLWdlbmRlcmxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjJkIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1yZXR3ZWV0OmJlZm9yZXtjb250ZW50OiJcZjA3OSJ9LmZhLWNhci1hbHQ6YmVmb3JlLC5mYS1jYXItcmVhcjpiZWZvcmV7Y29udGVudDoiXGY1ZGUifS5mYS1wdW1wLXNvYXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDZiIn0uZmEtdmlkZW8tc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNGUyIn0uZmEtYmF0dGVyeS0yOmJlZm9yZSwuZmEtYmF0dGVyeS1xdWFydGVyOmJlZm9yZXtjb250ZW50OiJcZjI0MyJ9LmZhLXJhZGlvOmJlZm9yZXtjb250ZW50OiJcZjhkNyJ9LmZhLWJhYnktY2FycmlhZ2U6YmVmb3JlLC5mYS1jYXJyaWFnZS1iYWJ5OmJlZm9yZXtjb250ZW50OiJcZjc3ZCJ9LmZhLXRyYWZmaWMtbGlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjM3In0uZmEtdGhlcm1vbWV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDkxIn0uZmEtdnItY2FyZGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjcyOSJ9LmZhLWhhbmQtbWlkZGxlLWZpbmdlcjpiZWZvcmV7Y29udGVudDoiXGY4MDYifS5mYS1wZXJjZW50OmJlZm9yZSwuZmEtcGVyY2VudGFnZTpiZWZvcmV7Y29udGVudDoiXDI1In0uZmEtdHJ1Y2stbW92aW5nOmJlZm9yZXtjb250ZW50OiJcZjRkZiJ9LmZhLWdsYXNzLXdhdGVyLWRyb3BsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlNGY1In0uZmEtZGlzcGxheTpiZWZvcmV7Y29udGVudDoiXGUxNjMifS5mYS1mYWNlLXNtaWxlOmJlZm9yZSwuZmEtc21pbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtdGh1bWItdGFjazpiZWZvcmUsLmZhLXRodW1idGFjazpiZWZvcmV7Y29udGVudDoiXGYwOGQifS5mYS10cm9waHk6YmVmb3Jle2NvbnRlbnQ6IlxmMDkxIn0uZmEtcGVyc29uLXByYXlpbmc6YmVmb3JlLC5mYS1wcmF5OmJlZm9yZXtjb250ZW50OiJcZjY4MyJ9LmZhLWhhbW1lcjpiZWZvcmV7Y29udGVudDoiXGY2ZTMifS5mYS1oYW5kLXBlYWNlOmJlZm9yZXtjb250ZW50OiJcZjI1YiJ9LmZhLXJvdGF0ZTpiZWZvcmUsLmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtcm9ib3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNTQ0In0uZmEtcGVhY2U6YmVmb3Jle2NvbnRlbnQ6IlxmNjdjIn0uZmEtY29nczpiZWZvcmUsLmZhLWdlYXJzOmJlZm9yZXtjb250ZW50OiJcZjA4NSJ9LmZhLXdhcmVob3VzZTpiZWZvcmV7Y29udGVudDoiXGY0OTQifS5mYS1hcnJvdy11cC1yaWdodC1kb3RzOmJlZm9yZXtjb250ZW50OiJcZTRiNyJ9LmZhLXNwbG90Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNWJjIn0uZmEtZmFjZS1ncmluLWhlYXJ0czpiZWZvcmUsLmZhLWdyaW4taGVhcnRzOmJlZm9yZXtjb250ZW50OiJcZjU4NCJ9LmZhLWRpY2UtZm91cjpiZWZvcmV7Y29udGVudDoiXGY1MjQifS5mYS1zaW0tY2FyZDpiZWZvcmV7Y29udGVudDoiXGY3YzQifS5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3JlLC5mYS10cmFuc2dlbmRlcjpiZWZvcmV7Y29udGVudDoiXGYyMjUifS5mYS1tZXJjdXJ5OmJlZm9yZXtjb250ZW50OiJcZjIyMyJ9LmZhLWFycm93LXR1cm4tZG93bjpiZWZvcmUsLmZhLWxldmVsLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTQ5In0uZmEtcGVyc29uLWZhbGxpbmctYnVyc3Q6YmVmb3Jle2NvbnRlbnQ6IlxlNTQ3In0uZmEtYXdhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTU5In0uZmEtdGlja2V0LWFsdDpiZWZvcmUsLmZhLXRpY2tldC1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZmIn0uZmEtYnVpbGRpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMWFkIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlLC5mYS1hbmdsZXMtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMDAifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtY2xvY2stcm90YXRlLWxlZnQ6YmVmb3JlLC5mYS1oaXN0b3J5OmJlZm9yZXtjb250ZW50OiJcZjFkYSJ9LmZhLWZhY2UtZ3Jpbi1iZWFtLXN3ZWF0OmJlZm9yZSwuZmEtZ3Jpbi1iZWFtLXN3ZWF0OmJlZm9yZXtjb250ZW50OiJcZjU4MyJ9LmZhLWFycm93LXJpZ2h0LWZyb20tZmlsZTpiZWZvcmUsLmZhLWZpbGUtZXhwb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZSJ9LmZhLXNoaWVsZC1ibGFuazpiZWZvcmUsLmZhLXNoaWVsZDpiZWZvcmV7Y29udGVudDoiXGYxMzIifS5mYS1hcnJvdy11cC1zaG9ydC13aWRlOmJlZm9yZSwuZmEtc29ydC1hbW91bnQtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NSJ9LmZhLWhvdXNlLW1lZGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxlM2IyIn0uZmEtZ29sZi1iYWxsLXRlZTpiZWZvcmUsLmZhLWdvbGYtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NTAifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZSwuZmEtY2lyY2xlLWNoZXZyb24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMzcifS5mYS1ob3VzZS1jaGltbmV5LXdpbmRvdzpiZWZvcmV7Y29udGVudDoiXGUwMGQifS5mYS1wZW4tbmliOmJlZm9yZXtjb250ZW50OiJcZjVhZCJ9LmZhLXRlbnQtYXJyb3ctdHVybi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZTU4MCJ9LmZhLXRlbnRzOmJlZm9yZXtjb250ZW50OiJcZTU4MiJ9LmZhLW1hZ2ljOmJlZm9yZSwuZmEtd2FuZC1tYWdpYzpiZWZvcmV7Y29udGVudDoiXGYwZDAifS5mYS1kb2c6YmVmb3Jle2NvbnRlbnQ6IlxmNmQzIn0uZmEtY2Fycm90OmJlZm9yZXtjb250ZW50OiJcZjc4NyJ9LmZhLW1vb246YmVmb3Jle2NvbnRlbnQ6IlxmMTg2In0uZmEtd2luZS1nbGFzcy1hbHQ6YmVmb3JlLC5mYS13aW5lLWdsYXNzLWVtcHR5OmJlZm9yZXtjb250ZW50OiJcZjVjZSJ9LmZhLWNoZWVzZTpiZWZvcmV7Y29udGVudDoiXGY3ZWYifS5mYS15aW4teWFuZzpiZWZvcmV7Y29udGVudDoiXGY2YWQifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1jb2RlLWNvbW1pdDpiZWZvcmV7Y29udGVudDoiXGYzODYifS5mYS10ZW1wZXJhdHVyZS1sb3c6YmVmb3Jle2NvbnRlbnQ6IlxmNzZiIn0uZmEtYmlraW5nOmJlZm9yZSwuZmEtcGVyc29uLWJpa2luZzpiZWZvcmV7Y29udGVudDoiXGY4NGEifS5mYS1icm9vbTpiZWZvcmV7Y29udGVudDoiXGY1MWEifS5mYS1zaGllbGQtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTc0In0uZmEtZ29wdXJhbTpiZWZvcmV7Y29udGVudDoiXGY2NjQifS5mYS1lYXJ0aC1vY2VhbmlhOmJlZm9yZSwuZmEtZ2xvYmUtb2NlYW5pYTpiZWZvcmV7Y29udGVudDoiXGU0N2IifS5mYS1zcXVhcmUteG1hcms6YmVmb3JlLC5mYS10aW1lcy1zcXVhcmU6YmVmb3JlLC5mYS14bWFyay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmQzIn0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXDIzIn0uZmEtZXhwYW5kLWFsdDpiZWZvcmUsLmZhLXVwLXJpZ2h0LWFuZC1kb3duLWxlZnQtZnJvbS1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDI0In0uZmEtb2lsLWNhbjpiZWZvcmV7Y29udGVudDoiXGY2MTMifS5mYS10OmJlZm9yZXtjb250ZW50OiJcNTQifS5mYS1oaXBwbzpiZWZvcmV7Y29udGVudDoiXGY2ZWQifS5mYS1jaGFydC1jb2x1bW46YmVmb3Jle2NvbnRlbnQ6IlxlMGUzIn0uZmEtaW5maW5pdHk6YmVmb3Jle2NvbnRlbnQ6IlxmNTM0In0uZmEtdmlhbC1jaXJjbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlNTk2In0uZmEtcGVyc29uLWFycm93LWRvd24tdG8tbGluZTpiZWZvcmV7Y29udGVudDoiXGU1MzgifS5mYS12b2ljZW1haWw6YmVmb3Jle2NvbnRlbnQ6IlxmODk3In0uZmEtZmFuOmJlZm9yZXtjb250ZW50OiJcZjg2MyJ9LmZhLXBlcnNvbi13YWxraW5nLWx1Z2dhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlNTU0In0uZmEtYXJyb3dzLWFsdC12OmJlZm9yZSwuZmEtdXAtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMzgifS5mYS1jbG91ZC1tb29uLXJhaW46YmVmb3Jle2NvbnRlbnQ6IlxmNzNjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtdHJhaWxlcjpiZWZvcmV7Y29udGVudDoiXGUwNDEifS5mYS1iYWhhaTpiZWZvcmUsLmZhLWhheWthbDpiZWZvcmV7Y29udGVudDoiXGY2NjYifS5mYS1zZC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjdjMiJ9LmZhLWRyYWdvbjpiZWZvcmV7Y29udGVudDoiXGY2ZDUifS5mYS1zaG9lLXByaW50czpiZWZvcmV7Y29udGVudDoiXGY1NGIifS5mYS1jaXJjbGUtcGx1czpiZWZvcmUsLmZhLXBsdXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NSJ9LmZhLWZhY2UtZ3Jpbi10b25ndWUtd2luazpiZWZvcmUsLmZhLWdyaW4tdG9uZ3VlLXdpbms6YmVmb3Jle2NvbnRlbnQ6IlxmNThiIn0uZmEtaGFuZC1ob2xkaW5nOmJlZm9yZXtjb250ZW50OiJcZjRiZCJ9LmZhLXBsdWctY2lyY2xlLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZTU1ZCJ9LmZhLWNoYWluLWJyb2tlbjpiZWZvcmUsLmZhLWNoYWluLXNsYXNoOmJlZm9yZSwuZmEtbGluay1zbGFzaDpiZWZvcmUsLmZhLXVubGluazpiZWZvcmV7Y29udGVudDoiXGYxMjcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1wZXJzb24td2Fsa2luZy1hcnJvdy1sb29wLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlNTUxIn0uZmEtYXJyb3ctdXAtei1hOmJlZm9yZSwuZmEtc29ydC1hbHBoYS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODgyIn0uZmEtZmlyZS1hbHQ6YmVmb3JlLC5mYS1maXJlLWZsYW1lLWN1cnZlZDpiZWZvcmV7Y29udGVudDoiXGY3ZTQifS5mYS10b3JuYWRvOmJlZm9yZXtjb250ZW50OiJcZjc2ZiJ9LmZhLWZpbGUtY2lyY2xlLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxlNDk0In0uZmEtYm9vay1xdXJhbjpiZWZvcmUsLmZhLXF1cmFuOmJlZm9yZXtjb250ZW50OiJcZjY4NyJ9LmZhLWFuY2hvcjpiZWZvcmV7Y29udGVudDoiXGYxM2QifS5mYS1ib3JkZXItYWxsOmJlZm9yZXtjb250ZW50OiJcZjg0YyJ9LmZhLWFuZ3J5OmJlZm9yZSwuZmEtZmFjZS1hbmdyeTpiZWZvcmV7Y29udGVudDoiXGY1NTYifS5mYS1jb29raWUtYml0ZTpiZWZvcmV7Y29udGVudDoiXGY1NjQifS5mYS1hcnJvdy10cmVuZC1kb3duOmJlZm9yZXtjb250ZW50OiJcZTA5NyJ9LmZhLWZlZWQ6YmVmb3JlLC5mYS1yc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDllIn0uZmEtZHJhdy1wb2x5Z29uOmJlZm9yZXtjb250ZW50OiJcZjVlZSJ9LmZhLWJhbGFuY2Utc2NhbGU6YmVmb3JlLC5mYS1zY2FsZS1iYWxhbmNlZDpiZWZvcmV7Y29udGVudDoiXGYyNGUifS5mYS1nYXVnZS1zaW1wbGUtaGlnaDpiZWZvcmUsLmZhLXRhY2hvbWV0ZXItZmFzdDpiZWZvcmUsLmZhLXRhY2hvbWV0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjJhIn0uZmEtc2hvd2VyOmJlZm9yZXtjb250ZW50OiJcZjJjYyJ9LmZhLWRlc2t0b3AtYWx0OmJlZm9yZSwuZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYzOTAifS5mYS1tOmJlZm9yZXtjb250ZW50OiJcNGQifS5mYS10YWJsZS1saXN0OmJlZm9yZSwuZmEtdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwMGIifS5mYS1jb21tZW50LXNtczpiZWZvcmUsLmZhLXNtczpiZWZvcmV7Y29udGVudDoiXGY3Y2QifS5mYS1ib29rOmJlZm9yZXtjb250ZW50OiJcZjAyZCJ9LmZhLXVzZXItcGx1czpiZWZvcmV7Y29udGVudDoiXGYyMzQifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1iYXR0ZXJ5LTQ6YmVmb3JlLC5mYS1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOmJlZm9yZXtjb250ZW50OiJcZjI0MSJ9LmZhLWhvdXNlLWNpcmNsZS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGU1MDkifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWRpYWdyYW0tc3VjY2Vzc29yOmJlZm9yZXtjb250ZW50OiJcZTQ3YSJ9LmZhLXRydWNrLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTU4YiJ9LmZhLWFycm93cy1zcGxpdC11cC1hbmQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGU0YmMifS5mYS1maXN0LXJhaXNlZDpiZWZvcmUsLmZhLWhhbmQtZmlzdDpiZWZvcmV7Y29udGVudDoiXGY2ZGUifS5mYS1jbG91ZC1tb29uOmJlZm9yZXtjb250ZW50OiJcZjZjMyJ9LmZhLWJyaWVmY2FzZTpiZWZvcmV7Y29udGVudDoiXGYwYjEifS5mYS1wZXJzb24tZmFsbGluZzpiZWZvcmV7Y29udGVudDoiXGU1NDYifS5mYS1pbWFnZS1wb3J0cmFpdDpiZWZvcmUsLmZhLXBvcnRyYWl0OmJlZm9yZXtjb250ZW50OiJcZjNlMCJ9LmZhLXVzZXItdGFnOmJlZm9yZXtjb250ZW50OiJcZjUwNyJ9LmZhLXJ1ZzpiZWZvcmV7Y29udGVudDoiXGU1NjkifS5mYS1lYXJ0aC1ldXJvcGU6YmVmb3JlLC5mYS1nbG9iZS1ldXJvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmN2EyIn0uZmEtY2FydC1mbGF0YmVkLXN1aXRjYXNlOmJlZm9yZSwuZmEtbHVnZ2FnZS1jYXJ0OmJlZm9yZXtjb250ZW50OiJcZjU5ZCJ9LmZhLXJlY3RhbmdsZS10aW1lczpiZWZvcmUsLmZhLXJlY3RhbmdsZS14bWFyazpiZWZvcmUsLmZhLXRpbWVzLXJlY3RhbmdsZTpiZWZvcmUsLmZhLXdpbmRvdy1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGY0MTAifS5mYS1iYWh0LXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMGFjIn0uZmEtYm9vay1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjUxOCJ9LmZhLWJvb2stam91cm5hbC13aGlsbHM6YmVmb3JlLC5mYS1qb3VybmFsLXdoaWxsczpiZWZvcmV7Y29udGVudDoiXGY2NmEifS5mYS1oYW5kY3VmZnM6YmVmb3Jle2NvbnRlbnQ6IlxlNGY4In0uZmEtZXhjbGFtYXRpb24tdHJpYW5nbGU6YmVmb3JlLC5mYS10cmlhbmdsZS1leGNsYW1hdGlvbjpiZWZvcmUsLmZhLXdhcm5pbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMDcxIn0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtYXJyb3ctdHVybi1yaWdodDpiZWZvcmUsLmZhLW1haWwtZm9yd2FyZDpiZWZvcmUsLmZhLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjA2NCJ9LmZhLWJvdHRsZS1kcm9wbGV0OmJlZm9yZXtjb250ZW50OiJcZTRjNCJ9LmZhLW1hc2stZmFjZTpiZWZvcmV7Y29udGVudDoiXGUxZDcifS5mYS1oaWxsLXJvY2tzbGlkZTpiZWZvcmV7Y29udGVudDoiXGU1MDgifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3JlLC5mYS1yaWdodC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLXBhcGVyLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjFkOCJ9LmZhLXJvYWQtY2lyY2xlLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZTU2NSJ9LmZhLWR1bmdlb246YmVmb3Jle2NvbnRlbnQ6IlxmNmQ5In0uZmEtYWxpZ24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM4In0uZmEtbW9uZXktYmlsbC0xLXdhdmU6YmVmb3JlLC5mYS1tb25leS1iaWxsLXdhdmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjUzYiJ9LmZhLWxpZmUtcmluZzpiZWZvcmV7Y29udGVudDoiXGYxY2QifS5mYS1oYW5kczpiZWZvcmUsLmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3JlLC5mYS1zaWduaW5nOmJlZm9yZXtjb250ZW50OiJcZjJhNyJ9LmZhLWNhbGVuZGFyLWRheTpiZWZvcmV7Y29udGVudDoiXGY3ODMifS5mYS1sYWRkZXItd2F0ZXI6YmVmb3JlLC5mYS1zd2ltbWluZy1wb29sOmJlZm9yZSwuZmEtd2F0ZXItbGFkZGVyOmJlZm9yZXtjb250ZW50OiJcZjVjNSJ9LmZhLWFycm93cy11cC1kb3duOmJlZm9yZSwuZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMDdkIn0uZmEtZmFjZS1ncmltYWNlOmJlZm9yZSwuZmEtZ3JpbWFjZTpiZWZvcmV7Y29udGVudDoiXGY1N2YifS5mYS13aGVlbGNoYWlyLWFsdDpiZWZvcmUsLmZhLXdoZWVsY2hhaXItbW92ZTpiZWZvcmV7Y29udGVudDoiXGUyY2UifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmUsLmZhLXR1cm4tZG93bjpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1wZXJzb24td2Fsa2luZy1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGU1NTIifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3JlLC5mYS1zcXVhcmUtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZGljZTpiZWZvcmV7Y29udGVudDoiXGY1MjIifS5mYS1ib3dsaW5nLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM2In0uZmEtYnJhaW46YmVmb3Jle2NvbnRlbnQ6IlxmNWRjIn0uZmEtYmFuZC1haWQ6YmVmb3JlLC5mYS1iYW5kYWdlOmJlZm9yZXtjb250ZW50OiJcZjQ2MiJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNpcmNsZS14bWFyazpiZWZvcmUsLmZhLXRpbWVzLWNpcmNsZTpiZWZvcmUsLmZhLXhtYXJrLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTcifS5mYS1naWZ0czpiZWZvcmV7Y29udGVudDoiXGY3OWMifS5mYS1ob3RlbDpiZWZvcmV7Y29udGVudDoiXGY1OTQifS5mYS1lYXJ0aC1hc2lhOmJlZm9yZSwuZmEtZ2xvYmUtYXNpYTpiZWZvcmV7Y29udGVudDoiXGY1N2UifS5mYS1pZC1jYXJkLWFsdDpiZWZvcmUsLmZhLWlkLWNhcmQtY2xpcDpiZWZvcmV7Y29udGVudDoiXGY0N2YifS5mYS1tYWduaWZ5aW5nLWdsYXNzLXBsdXM6YmVmb3JlLC5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdXNlci1jbG9jazpiZWZvcmV7Y29udGVudDoiXGY0ZmQifS5mYS1hbGxlcmdpZXM6YmVmb3JlLC5mYS1oYW5kLWRvdHM6YmVmb3Jle2NvbnRlbnQ6IlxmNDYxIn0uZmEtZmlsZS1pbnZvaWNlOmJlZm9yZXtjb250ZW50OiJcZjU3MCJ9LmZhLXdpbmRvdy1taW5pbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDEifS5mYS1jb2ZmZWU6YmVmb3JlLC5mYS1tdWctc2F1Y2VyOmJlZm9yZXtjb250ZW50OiJcZjBmNCJ9LmZhLWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjU1ZCJ9LmZhLW1hc2s6YmVmb3Jle2NvbnRlbnQ6IlxmNmZhIn0uZmEtbWFnbmlmeWluZy1nbGFzcy1taW51czpiZWZvcmUsLmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1ydWxlci12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGY1NDgifS5mYS11c2VyLWFsdDpiZWZvcmUsLmZhLXVzZXItbGFyZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNDA2In0uZmEtdHJhaW4tdHJhbTpiZWZvcmV7Y29udGVudDoiXGU1YjQifS5mYS11c2VyLW51cnNlOmJlZm9yZXtjb250ZW50OiJcZjgyZiJ9LmZhLXN5cmluZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNDhlIn0uZmEtY2xvdWQtc3VuOmJlZm9yZXtjb250ZW50OiJcZjZjNCJ9LmZhLXN0b3B3YXRjaC0yMDpiZWZvcmV7Y29udGVudDoiXGUwNmYifS5mYS1zcXVhcmUtZnVsbDpiZWZvcmV7Y29udGVudDoiXGY0NWMifS5mYS1tYWduZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc2In0uZmEtamFyOmJlZm9yZXtjb250ZW50OiJcZTUxNiJ9LmZhLW5vdGUtc3RpY2t5OmJlZm9yZSwuZmEtc3RpY2t5LW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ5In0uZmEtYnVnLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZTQ5MCJ9LmZhLWFycm93LXVwLWZyb20td2F0ZXItcHVtcDpiZWZvcmV7Y29udGVudDoiXGU0YjYifS5mYS1ib25lOmJlZm9yZXtjb250ZW50OiJcZjVkNyJ9LmZhLXVzZXItaW5qdXJlZDpiZWZvcmV7Y29udGVudDoiXGY3MjgifS5mYS1mYWNlLXNhZC10ZWFyOmJlZm9yZSwuZmEtc2FkLXRlYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWI0In0uZmEtcGxhbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDcyIn0uZmEtdGVudC1hcnJvd3MtZG93bjpiZWZvcmV7Y29udGVudDoiXGU1ODEifS5mYS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXDIxIn0uZmEtYXJyb3dzLXNwaW46YmVmb3Jle2NvbnRlbnQ6IlxlNGJiIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtdHJ5OmJlZm9yZSwuZmEtdHVya2lzaC1saXJhLXNpZ246YmVmb3JlLC5mYS10dXJraXNoLWxpcmE6YmVmb3Jle2NvbnRlbnQ6IlxlMmJiIn0uZmEtZG9sbGFyLXNpZ246YmVmb3JlLC5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlwyNCJ9LmZhLXg6YmVmb3Jle2NvbnRlbnQ6Ilw1OCJ9LmZhLW1hZ25pZnlpbmctZ2xhc3MtZG9sbGFyOmJlZm9yZSwuZmEtc2VhcmNoLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2ODgifS5mYS11c2Vycy1jb2c6YmVmb3JlLC5mYS11c2Vycy1nZWFyOmJlZm9yZXtjb250ZW50OiJcZjUwOSJ9LmZhLXBlcnNvbi1taWxpdGFyeS1wb2ludGluZzpiZWZvcmV7Y29udGVudDoiXGU1NGEifS5mYS1iYW5rOmJlZm9yZSwuZmEtYnVpbGRpbmctY29sdW1uczpiZWZvcmUsLmZhLWluc3RpdHV0aW9uOmJlZm9yZSwuZmEtbXVzZXVtOmJlZm9yZSwuZmEtdW5pdmVyc2l0eTpiZWZvcmV7Y29udGVudDoiXGYxOWMifS5mYS11bWJyZWxsYTpiZWZvcmV7Y29udGVudDoiXGYwZTkifS5mYS10cm93ZWw6YmVmb3Jle2NvbnRlbnQ6IlxlNTg5In0uZmEtZDpiZWZvcmV7Y29udGVudDoiXDQ0In0uZmEtc3RhcGxlcjpiZWZvcmV7Y29udGVudDoiXGU1YWYifS5mYS1tYXNrcy10aGVhdGVyOmJlZm9yZSwuZmEtdGhlYXRlci1tYXNrczpiZWZvcmV7Y29udGVudDoiXGY2MzAifS5mYS1raXAtc2lnbjpiZWZvcmV7Y29udGVudDoiXGUxYzQifS5mYS1oYW5kLXBvaW50LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE1In0uZmEtaGFuZHNoYWtlLWFsdDpiZWZvcmUsLmZhLWhhbmRzaGFrZS1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxmNGM2In0uZmEtZmlnaHRlci1qZXQ6YmVmb3JlLC5mYS1qZXQtZmlnaHRlcjpiZWZvcmV7Y29udGVudDoiXGYwZmIifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLXNoYXJlLW5vZGVzOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtcGx1cy1taW51czpiZWZvcmV7Y29udGVudDoiXGU0M2MifS5mYS12aWRlby1jYW1lcmE6YmVmb3JlLC5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS1ncmFkdWF0aW9uLWNhcDpiZWZvcmUsLmZhLW1vcnRhci1ib2FyZDpiZWZvcmV7Y29udGVudDoiXGYxOWQifS5mYS1oYW5kLWhvbGRpbmctbWVkaWNhbDpiZWZvcmV7Y29udGVudDoiXGUwNWMifS5mYS1wZXJzb24tY2lyY2xlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZTUzZSJ9LmZhLWxldmVsLXVwLWFsdDpiZWZvcmUsLmZhLXR1cm4tdXA6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0KLmZhLXNyLW9ubHksLmZhLXNyLW9ubHktZm9jdXNhYmxlOm5vdCg6Zm9jdXMpLC5zci1vbmx5LC5zci1vbmx5LWZvY3VzYWJsZTpub3QoOmZvY3VzKXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDtwYWRkaW5nOjA7bWFyZ2luOi0xcHg7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwLDAsMCwwKTt3aGl0ZS1zcGFjZTpub3dyYXA7Ym9yZGVyLXdpZHRoOjB9Omhvc3QsOnJvb3R7LS1mYS1zdHlsZS1mYW1pbHktYnJhbmRzOiJGb250IEF3ZXNvbWUgNiBCcmFuZHMiOy0tZmEtZm9udC1icmFuZHM6bm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDYgQnJhbmRzIn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNiBCcmFuZHMiO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCguLi93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIil9LmZhLWJyYW5kcywuZmFie2ZvbnQtd2VpZ2h0OjQwMH0uZmEtbW9uZXJvOmJlZm9yZXtjb250ZW50OiJcZjNkMCJ9LmZhLWhvb2xpOmJlZm9yZXtjb250ZW50OiJcZjQyNyJ9LmZhLXllbHA6YmVmb3Jle2NvbnRlbnQ6IlxmMWU5In0uZmEtY2MtdmlzYTpiZWZvcmV7Y29udGVudDoiXGYxZjAifS5mYS1sYXN0Zm06YmVmb3Jle2NvbnRlbnQ6IlxmMjAyIn0uZmEtc2hvcHdhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNWI1In0uZmEtY3JlYXRpdmUtY29tbW9ucy1uYzpiZWZvcmV7Y29udGVudDoiXGY0ZTgifS5mYS1hd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzc1In0uZmEtcmVkaGF0OmJlZm9yZXtjb250ZW50OiJcZjdiYyJ9LmZhLXlvYXN0OmJlZm9yZXtjb250ZW50OiJcZjJiMSJ9LmZhLWNsb3VkZmxhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDdkIn0uZmEtdXBzOmJlZm9yZXtjb250ZW50OiJcZjdlMCJ9LmZhLXdwZXhwbG9yZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmRlIn0uZmEtZHlhbG9nOmJlZm9yZXtjb250ZW50OiJcZjM5OSJ9LmZhLWJpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdhIn0uZmEtc3RhY2twYXRoOmJlZm9yZXtjb250ZW50OiJcZjg0MiJ9LmZhLWJ1eXNlbGxhZHM6YmVmb3Jle2NvbnRlbnQ6IlxmMjBkIn0uZmEtZmlyc3Qtb3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmIwIn0uZmEtbW9keDpiZWZvcmV7Y29udGVudDoiXGYyODUifS5mYS1ndWlsZGVkOmJlZm9yZXtjb250ZW50OiJcZTA3ZSJ9LmZhLXZudjpiZWZvcmV7Y29udGVudDoiXGY0MGIifS5mYS1qcy1zcXVhcmU6YmVmb3JlLC5mYS1zcXVhcmUtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I5In0uZmEtbWljcm9zb2Z0OmJlZm9yZXtjb250ZW50OiJcZjNjYSJ9LmZhLXFxOmJlZm9yZXtjb250ZW50OiJcZjFkNiJ9LmZhLW9yY2lkOmJlZm9yZXtjb250ZW50OiJcZjhkMiJ9LmZhLWphdmE6YmVmb3Jle2NvbnRlbnQ6IlxmNGU0In0uZmEtaW52aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmN2IwIn0uZmEtY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGVkIn0uZmEtY2VudGVyY29kZTpiZWZvcmV7Y29udGVudDoiXGYzODAifS5mYS1nbGlkZS1nOmJlZm9yZXtjb250ZW50OiJcZjJhNiJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1oaXJlLWEtaGVscGVyOmJlZm9yZXtjb250ZW50OiJcZjNiMCJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtYnk6YmVmb3Jle2NvbnRlbnQ6IlxmNGU3In0uZmEtdW5pdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMDQ5In0uZmEtd2htY3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDBkIn0uZmEtcm9ja2V0Y2hhdDpiZWZvcmV7Y29udGVudDoiXGYzZTgifS5mYS12azpiZWZvcmV7Y29udGVudDoiXGYxODkifS5mYS11bnRhcHBkOmJlZm9yZXtjb250ZW50OiJcZjQwNSJ9LmZhLW1haWxjaGltcDpiZWZvcmV7Y29udGVudDoiXGY1OWUifS5mYS1jc3MzLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOGIifS5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxYTIifS5mYS12aW1lby12OmJlZm9yZXtjb250ZW50OiJcZjI3ZCJ9LmZhLWNvbnRhbzpiZWZvcmV7Y29udGVudDoiXGYyNmQifS5mYS1zcXVhcmUtZm9udC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZTVhZCJ9LmZhLWRlc2twcm86YmVmb3Jle2NvbnRlbnQ6IlxmMzhmIn0uZmEtc2lzdHJpeDpiZWZvcmV7Y29udGVudDoiXGYzZWUifS5mYS1pbnN0YWdyYW0tc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGUwNTUifS5mYS1iYXR0bGUtbmV0OmJlZm9yZXtjb250ZW50OiJcZjgzNSJ9LmZhLXRoZS1yZWQteWV0aTpiZWZvcmV7Y29udGVudDoiXGY2OWQifS5mYS1oYWNrZXItbmV3cy1zcXVhcmU6YmVmb3JlLC5mYS1zcXVhcmUtaGFja2VyLW5ld3M6YmVmb3Jle2NvbnRlbnQ6IlxmM2FmIn0uZmEtZWRnZTpiZWZvcmV7Y29udGVudDoiXGYyODIifS5mYS1uYXBzdGVyOmJlZm9yZXtjb250ZW50OiJcZjNkMiJ9LmZhLXNuYXBjaGF0LXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1zbmFwY2hhdDpiZWZvcmV7Y29udGVudDoiXGYyYWQifS5mYS1nb29nbGUtcGx1cy1nOmJlZm9yZXtjb250ZW50OiJcZjBkNSJ9LmZhLWFydHN0YXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNzdhIn0uZmEtbWFya2Rvd246YmVmb3Jle2NvbnRlbnQ6IlxmNjBmIn0uZmEtc291cmNldHJlZTpiZWZvcmV7Y29udGVudDoiXGY3ZDMifS5mYS1nb29nbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYyYjMifS5mYS1kaWFzcG9yYTpiZWZvcmV7Y29udGVudDoiXGY3OTEifS5mYS1mb3Vyc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE4MCJ9LmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZXtjb250ZW50OiJcZjE2YyJ9LmZhLWdpdGh1Yi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTEzIn0uZmEtcGhvZW5peC1zcXVhZHJvbjpiZWZvcmV7Y29udGVudDoiXGY1MTEifS5mYS1wYWdlbGluZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMThjIn0uZmEtYWxnb2xpYTpiZWZvcmV7Y29udGVudDoiXGYzNmMifS5mYS1yZWQtcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2UzIn0uZmEtY3JlYXRpdmUtY29tbW9ucy1zYTpiZWZvcmV7Y29udGVudDoiXGY0ZWYifS5mYS1zYWZhcmk6YmVmb3Jle2NvbnRlbnQ6IlxmMjY3In0uZmEtZ29vZ2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMCJ9LmZhLWZvbnQtYXdlc29tZS1hbHQ6YmVmb3JlLC5mYS1zcXVhcmUtZm9udC1hd2Vzb21lLXN0cm9rZTpiZWZvcmV7Y29udGVudDoiXGYzNWMifS5mYS1hdGxhc3NpYW46YmVmb3Jle2NvbnRlbnQ6IlxmNzdiIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtZGlnaXRhbC1vY2VhbjpiZWZvcmV7Y29udGVudDoiXGYzOTEifS5mYS1uaW1ibHI6YmVmb3Jle2NvbnRlbnQ6IlxmNWE4In0uZmEtY2hyb21lY2FzdDpiZWZvcmV7Y29udGVudDoiXGY4MzgifS5mYS1ldmVybm90ZTpiZWZvcmV7Y29udGVudDoiXGY4MzkifS5mYS1oYWNrZXItbmV3czpiZWZvcmV7Y29udGVudDoiXGYxZDQifS5mYS1jcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nOmJlZm9yZXtjb250ZW50OiJcZjRmMCJ9LmZhLWFkdmVyc2FsOmJlZm9yZXtjb250ZW50OiJcZjM2YSJ9LmZhLWNyZWF0aXZlLWNvbW1vbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjVlIn0uZmEtd2F0Y2htYW4tbW9uaXRvcmluZzpiZWZvcmV7Y29udGVudDoiXGUwODcifS5mYS1mb250aWNvbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjgwIn0uZmEtd2VpeGluOmJlZm9yZXtjb250ZW50OiJcZjFkNyJ9LmZhLXNoaXJ0c2luYnVsazpiZWZvcmV7Y29udGVudDoiXGYyMTQifS5mYS1jb2RlcGVuOmJlZm9yZXtjb250ZW50OiJcZjFjYiJ9LmZhLWdpdC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODQxIn0uZmEtbHlmdDpiZWZvcmV7Y29udGVudDoiXGYzYzMifS5mYS1yZXY6YmVmb3Jle2NvbnRlbnQ6IlxmNWIyIn0uZmEtd2luZG93czpiZWZvcmV7Y29udGVudDoiXGYxN2EifS5mYS13aXphcmRzLW9mLXRoZS1jb2FzdDpiZWZvcmV7Y29udGVudDoiXGY3MzAifS5mYS1zcXVhcmUtdmlhZGVvOmJlZm9yZSwuZmEtdmlhZGVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyYWEifS5mYS1tZWV0dXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmUwIn0uZmEtY2VudG9zOmJlZm9yZXtjb250ZW50OiJcZjc4OSJ9LmZhLWFkbjpiZWZvcmV7Y29udGVudDoiXGYxNzAifS5mYS1jbG91ZHNtaXRoOmJlZm9yZXtjb250ZW50OiJcZjM4NCJ9LmZhLXBpZWQtcGlwZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjFhOCJ9LmZhLWRyaWJiYmxlLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1kcmliYmJsZTpiZWZvcmV7Y29udGVudDoiXGYzOTcifS5mYS1jb2RpZXBpZTpiZWZvcmV7Y29udGVudDoiXGYyODQifS5mYS1ub2RlOmJlZm9yZXtjb250ZW50OiJcZjQxOSJ9LmZhLW1peDpiZWZvcmV7Y29udGVudDoiXGYzY2IifS5mYS1zdGVhbTpiZWZvcmV7Y29udGVudDoiXGYxYjYifS5mYS1jYy1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE2In0uZmEtc2NyaWJkOmJlZm9yZXtjb250ZW50OiJcZjI4YSJ9LmZhLW9wZW5pZDpiZWZvcmV7Y29udGVudDoiXGYxOWIifS5mYS1pbnN0YWxvZDpiZWZvcmV7Y29udGVudDoiXGUwODEifS5mYS1leHBlZGl0ZWRzc2w6YmVmb3Jle2NvbnRlbnQ6IlxmMjNlIn0uZmEtc2VsbGNhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmRhIn0uZmEtc3F1YXJlLXR3aXR0ZXI6YmVmb3JlLC5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS1yLXByb2plY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNGY3In0uZmEtZGVsaWNpb3VzOmJlZm9yZXtjb250ZW50OiJcZjFhNSJ9LmZhLWZyZWVic2Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2E0In0uZmEtdnVlanM6YmVmb3Jle2NvbnRlbnQ6IlxmNDFmIn0uZmEtYWNjdXNvZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY5In0uZmEtaW94aG9zdDpiZWZvcmV7Y29udGVudDoiXGYyMDgifS5mYS1mb250aWNvbnMtZmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2EyIn0uZmEtYXBwLXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjM2ZiJ9LmZhLWNjLW1hc3RlcmNhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWYxIn0uZmEtaXR1bmVzLW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I1In0uZmEtZ29sYW5nOmJlZm9yZXtjb250ZW50OiJcZTQwZiJ9LmZhLWtpY2tzdGFydGVyOmJlZm9yZXtjb250ZW50OiJcZjNiYiJ9LmZhLWdyYXY6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ2In0uZmEtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMThhIn0uZmEtdW5jaGFydGVkOmJlZm9yZXtjb250ZW50OiJcZTA4NCJ9LmZhLWZpcnN0ZHJhZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ExIn0uZmEtc3F1YXJlLXlvdXR1YmU6YmVmb3JlLC5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MzEifS5mYS13aWtpcGVkaWEtdzpiZWZvcmV7Y29udGVudDoiXGYyNjYifS5mYS1yZW5kYWN0OmJlZm9yZSwuZmEtd3ByZXNzcjpiZWZvcmV7Y29udGVudDoiXGYzZTQifS5mYS1hbmdlbGxpc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMjA5In0uZmEtZ2FsYWN0aWMtcmVwdWJsaWM6YmVmb3Jle2NvbnRlbnQ6IlxmNTBjIn0uZmEtbmZjLWRpcmVjdGlvbmFsOmJlZm9yZXtjb250ZW50OiJcZTUzMCJ9LmZhLXNreXBlOmJlZm9yZXtjb250ZW50OiJcZjE3ZSJ9LmZhLWpvZ2V0OmJlZm9yZXtjb250ZW50OiJcZjNiNyJ9LmZhLWZlZG9yYTpiZWZvcmV7Y29udGVudDoiXGY3OTgifS5mYS1zdHJpcGUtczpiZWZvcmV7Y29udGVudDoiXGY0MmEifS5mYS1tZXRhOmJlZm9yZXtjb250ZW50OiJcZTQ5YiJ9LmZhLWxhcmF2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmM2JkIn0uZmEtaG90amFyOmJlZm9yZXtjb250ZW50OiJcZjNiMSJ9LmZhLWJsdWV0b290aC1iOmJlZm9yZXtjb250ZW50OiJcZjI5NCJ9LmZhLXN0aWNrZXItbXVsZTpiZWZvcmV7Y29udGVudDoiXGYzZjcifS5mYS1jcmVhdGl2ZS1jb21tb25zLXplcm86YmVmb3Jle2NvbnRlbnQ6IlxmNGYzIn0uZmEtaGlwczpiZWZvcmV7Y29udGVudDoiXGY0NTIifS5mYS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFiNCJ9LmZhLXJlZGRpdDpiZWZvcmV7Y29udGVudDoiXGYxYTEifS5mYS1kaXNjb3JkOmJlZm9yZXtjb250ZW50OiJcZjM5MiJ9LmZhLWNocm9tZTpiZWZvcmV7Y29udGVudDoiXGYyNjgifS5mYS1hcHAtc3RvcmUtaW9zOmJlZm9yZXtjb250ZW50OiJcZjM3MCJ9LmZhLWNjLWRpc2NvdmVyOmJlZm9yZXtjb250ZW50OiJcZjFmMiJ9LmZhLXdwYmVnaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk3In0uZmEtY29uZmx1ZW5jZTpiZWZvcmV7Y29udGVudDoiXGY3OGQifS5mYS1tZGI6YmVmb3Jle2NvbnRlbnQ6IlxmOGNhIn0uZmEtZG9jaHViOmJlZm9yZXtjb250ZW50OiJcZjM5NCJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1lYmF5OmJlZm9yZXtjb250ZW50OiJcZjRmNCJ9LmZhLWFtYXpvbjpiZWZvcmV7Y29udGVudDoiXGYyNzAifS5mYS11bnNwbGFzaDpiZWZvcmV7Y29udGVudDoiXGUwN2MifS5mYS15YXJuOmJlZm9yZXtjb250ZW50OiJcZjdlMyJ9LmZhLXNxdWFyZS1zdGVhbTpiZWZvcmUsLmZhLXN0ZWFtLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxYjcifS5mYS01MDBweDpiZWZvcmV7Y29udGVudDoiXGYyNmUifS5mYS1zcXVhcmUtdmltZW86YmVmb3JlLC5mYS12aW1lby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk0In0uZmEtYXN5bW1ldHJpazpiZWZvcmV7Y29udGVudDoiXGYzNzIifS5mYS1mb250LWF3ZXNvbWUtZmxhZzpiZWZvcmUsLmZhLWZvbnQtYXdlc29tZS1sb2dvLWZ1bGw6YmVmb3JlLC5mYS1mb250LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI0In0uZmEtZ3JhdGlwYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMTg0In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtaGl2ZTpiZWZvcmV7Y29udGVudDoiXGUwN2YifS5mYS1naXRrcmFrZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2E2In0uZmEta2V5YmFzZTpiZWZvcmV7Y29udGVudDoiXGY0ZjUifS5mYS1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE1In0uZmEtcGFkbGV0OmJlZm9yZXtjb250ZW50OiJcZTRhMCJ9LmZhLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJjIn0uZmEtZ2l0aHViLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1naXRodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMDkyIn0uZmEtc3R1bWJsZXVwb246YmVmb3Jle2NvbnRlbnQ6IlxmMWE0In0uZmEtZmVkZXg6YmVmb3Jle2NvbnRlbnQ6IlxmNzk3In0uZmEtcGhvZW5peC1mcmFtZXdvcms6YmVmb3Jle2NvbnRlbnQ6IlxmM2RjIn0uZmEtc2hvcGlmeTpiZWZvcmV7Y29udGVudDoiXGUwNTcifS5mYS1uZW9zOmJlZm9yZXtjb250ZW50OiJcZjYxMiJ9LmZhLWhhY2tlcnJhbms6YmVmb3Jle2NvbnRlbnQ6IlxmNWY3In0uZmEtcmVzZWFyY2hnYXRlOmJlZm9yZXtjb250ZW50OiJcZjRmOCJ9LmZhLXN3aWZ0OmJlZm9yZXtjb250ZW50OiJcZjhlMSJ9LmZhLWFuZ3VsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIwIn0uZmEtc3BlYWthcDpiZWZvcmV7Y29udGVudDoiXGYzZjMifS5mYS1hbmdyeWNyZWF0aXZlOmJlZm9yZXtjb250ZW50OiJcZjM2ZSJ9LmZhLXktY29tYmluYXRvcjpiZWZvcmV7Y29udGVudDoiXGYyM2IifS5mYS1lbXBpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQxIn0uZmEtZW52aXJhOmJlZm9yZXtjb250ZW50OiJcZjI5OSJ9LmZhLWdpdGxhYi1zcXVhcmU6YmVmb3JlLC5mYS1zcXVhcmUtZ2l0bGFiOmJlZm9yZXtjb250ZW50OiJcZTVhZSJ9LmZhLXN0dWRpb3ZpbmFyaTpiZWZvcmV7Y29udGVudDoiXGYzZjgifS5mYS1waWVkLXBpcGVyOmJlZm9yZXtjb250ZW50OiJcZjJhZSJ9LmZhLXdvcmRwcmVzczpiZWZvcmV7Y29udGVudDoiXGYxOWEifS5mYS1wcm9kdWN0LWh1bnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg4In0uZmEtZmlyZWZveDpiZWZvcmV7Y29udGVudDoiXGYyNjkifS5mYS1saW5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI4In0uZmEtZ29vZHJlYWRzOmJlZm9yZXtjb250ZW50OiJcZjNhOCJ9LmZhLW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLW9kbm9rbGFzc25pa2k6YmVmb3Jle2NvbnRlbnQ6IlxmMjY0In0uZmEtanNmaWRkbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNjIn0uZmEtc2l0aDpiZWZvcmV7Y29udGVudDoiXGY1MTIifS5mYS10aGVtZWlzbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmIyIn0uZmEtcGFnZTQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q3In0uZmEtaGFzaG5vZGU6YmVmb3Jle2NvbnRlbnQ6IlxlNDk5In0uZmEtcmVhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNDFiIn0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLXNxdWFyZXNwYWNlOmJlZm9yZXtjb250ZW50OiJcZjViZSJ9LmZhLWNjLXN0cmlwZTpiZWZvcmV7Y29udGVudDoiXGYxZjUifS5mYS1jcmVhdGl2ZS1jb21tb25zLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjRmMiJ9LmZhLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzc5In0uZmEta2V5Y2RuOmJlZm9yZXtjb250ZW50OiJcZjNiYSJ9LmZhLW9wZXJhOmJlZm9yZXtjb250ZW50OiJcZjI2YSJ9LmZhLWl0Y2gtaW86YmVmb3Jle2NvbnRlbnQ6IlxmODNhIn0uZmEtdW1icmFjbzpiZWZvcmV7Y29udGVudDoiXGY4ZTgifS5mYS1nYWxhY3RpYy1zZW5hdGU6YmVmb3Jle2NvbnRlbnQ6IlxmNTBkIn0uZmEtdWJ1bnR1OmJlZm9yZXtjb250ZW50OiJcZjdkZiJ9LmZhLWRyYWZ0MmRpZ2l0YWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzk2In0uZmEtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjQyOSJ9LmZhLWhvdXp6OmJlZm9yZXtjb250ZW50OiJcZjI3YyJ9LmZhLWdnOmJlZm9yZXtjb250ZW50OiJcZjI2MCJ9LmZhLWRobDpiZWZvcmV7Y29udGVudDoiXGY3OTAifS5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS14aW5nOmJlZm9yZXtjb250ZW50OiJcZjE2OCJ9LmZhLWJsYWNrYmVycnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzdiIn0uZmEtY3JlYXRpdmUtY29tbW9ucy1wZDpiZWZvcmV7Y29udGVudDoiXGY0ZWMifS5mYS1wbGF5c3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzZGYifS5mYS1xdWluc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDU5In0uZmEtbGVzczpiZWZvcmV7Y29udGVudDoiXGY0MWQifS5mYS1ibG9nZ2VyLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdkIn0uZmEtb3BlbmNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjNkIn0uZmEtdmluZTpiZWZvcmV7Y29udGVudDoiXGYxY2EifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtZ2l0bGFiOmJlZm9yZXtjb250ZW50OiJcZjI5NiJ9LmZhLXR5cG8zOmJlZm9yZXtjb250ZW50OiJcZjQyYiJ9LmZhLXJlZGRpdC1hbGllbjpiZWZvcmV7Y29udGVudDoiXGYyODEifS5mYS15YWhvbzpiZWZvcmV7Y29udGVudDoiXGYxOWUifS5mYS1kYWlseW1vdGlvbjpiZWZvcmV7Y29udGVudDoiXGUwNTIifS5mYS1hZmZpbGlhdGV0aGVtZTpiZWZvcmV7Y29udGVudDoiXGYzNmIifS5mYS1waWVkLXBpcGVyLXBwOmJlZm9yZXtjb250ZW50OiJcZjFhNyJ9LmZhLWJvb3RzdHJhcDpiZWZvcmV7Y29udGVudDoiXGY4MzYifS5mYS1vZG5va2xhc3NuaWtpOmJlZm9yZXtjb250ZW50OiJcZjI2MyJ9LmZhLW5mYy1zeW1ib2w6YmVmb3Jle2NvbnRlbnQ6IlxlNTMxIn0uZmEtZXRoZXJldW06YmVmb3Jle2NvbnRlbnQ6IlxmNDJlIn0uZmEtc3BlYWtlci1kZWNrOmJlZm9yZXtjb250ZW50OiJcZjgzYyJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtbmMtZXU6YmVmb3Jle2NvbnRlbnQ6IlxmNGU5In0uZmEtcGF0cmVvbjpiZWZvcmV7Y29udGVudDoiXGYzZDkifS5mYS1hdmlhbmV4OmJlZm9yZXtjb250ZW50OiJcZjM3NCJ9LmZhLWVsbG86YmVmb3Jle2NvbnRlbnQ6IlxmNWYxIn0uZmEtZ29mb3JlOmJlZm9yZXtjb250ZW50OiJcZjNhNyJ9LmZhLWJpbW9iamVjdDpiZWZvcmV7Y29udGVudDoiXGYzNzgifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1nb29nbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwZDQifS5mYS1tYW5kYWxvcmlhbjpiZWZvcmV7Y29udGVudDoiXGY1MGYifS5mYS1maXJzdC1vcmRlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTBhIn0uZmEtb3NpOmJlZm9yZXtjb250ZW50OiJcZjQxYSJ9LmZhLWdvb2dsZS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWVlIn0uZmEtZC1hbmQtZC1iZXlvbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNmNhIn0uZmEtcGVyaXNjb3BlOmJlZm9yZXtjb250ZW50OiJcZjNkYSJ9LmZhLWZ1bGNydW06YmVmb3Jle2NvbnRlbnQ6IlxmNTBiIn0uZmEtY2xvdWRzY2FsZTpiZWZvcmV7Y29udGVudDoiXGYzODMifS5mYS1mb3J1bWJlZTpiZWZvcmV7Y29udGVudDoiXGYyMTEifS5mYS1taXp1bmk6YmVmb3Jle2NvbnRlbnQ6IlxmM2NjIn0uZmEtc2NobGl4OmJlZm9yZXtjb250ZW50OiJcZjNlYSJ9LmZhLXNxdWFyZS14aW5nOmJlZm9yZSwuZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEtYmFuZGNhbXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ1In0uZmEtd3Bmb3JtczpiZWZvcmV7Y29udGVudDoiXGYyOTgifS5mYS1jbG91ZHZlcnNpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMzg1In0uZmEtdXNwczpiZWZvcmV7Y29udGVudDoiXGY3ZTEifS5mYS1tZWdhcG9ydDpiZWZvcmV7Y29udGVudDoiXGY1YTMifS5mYS1tYWdlbnRvOmJlZm9yZXtjb250ZW50OiJcZjNjNCJ9LmZhLXNwb3RpZnk6YmVmb3Jle2NvbnRlbnQ6IlxmMWJjIn0uZmEtb3B0aW4tbW9uc3RlcjpiZWZvcmV7Y29udGVudDoiXGYyM2MifS5mYS1mbHk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE3In0uZmEtYXZpYXRvOmJlZm9yZXtjb250ZW50OiJcZjQyMSJ9LmZhLWl0dW5lczpiZWZvcmV7Y29udGVudDoiXGYzYjQifS5mYS1jdXR0bGVmaXNoOmJlZm9yZXtjb250ZW50OiJcZjM4YyJ9LmZhLWJsb2dnZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzdjIn0uZmEtZmxpY2tyOmJlZm9yZXtjb250ZW50OiJcZjE2ZSJ9LmZhLXZpYmVyOmJlZm9yZXtjb250ZW50OiJcZjQwOSJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS10ZW5jZW50LXdlaWJvOmJlZm9yZXtjb250ZW50OiJcZjFkNSJ9LmZhLXN5bWZvbnk6YmVmb3Jle2NvbnRlbnQ6IlxmODNkIn0uZmEtbWF4Y2RuOmJlZm9yZXtjb250ZW50OiJcZjEzNiJ9LmZhLWV0c3k6YmVmb3Jle2NvbnRlbnQ6IlxmMmQ3In0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWF1ZGlibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzczIn0uZmEtdGhpbmstcGVha3M6YmVmb3Jle2NvbnRlbnQ6IlxmNzMxIn0uZmEtYmlsaWJpbGk6YmVmb3Jle2NvbnRlbnQ6IlxlM2Q5In0uZmEtZXJsYW5nOmJlZm9yZXtjb250ZW50OiJcZjM5ZCJ9LmZhLWNvdHRvbi1idXJlYXU6YmVmb3Jle2NvbnRlbnQ6IlxmODllIn0uZmEtZGFzaGN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjEwIn0uZmEtNDItZ3JvdXA6YmVmb3JlLC5mYS1pbm5vc29mdDpiZWZvcmV7Y29udGVudDoiXGUwODAifS5mYS1zdGFjay1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYxOGQifS5mYS1lbGVtZW50b3I6YmVmb3Jle2NvbnRlbnQ6IlxmNDMwIn0uZmEtcGllZC1waXBlci1zcXVhcmU6YmVmb3JlLC5mYS1zcXVhcmUtcGllZC1waXBlcjpiZWZvcmV7Y29udGVudDoiXGUwMWUifS5mYS1jcmVhdGl2ZS1jb21tb25zLW5kOmJlZm9yZXtjb250ZW50OiJcZjRlYiJ9LmZhLXBhbGZlZDpiZWZvcmV7Y29udGVudDoiXGYzZDgifS5mYS1zdXBlcnBvd2VyczpiZWZvcmV7Y29udGVudDoiXGYyZGQifS5mYS1yZXNvbHZpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmM2U3In0uZmEteGJveDpiZWZvcmV7Y29udGVudDoiXGY0MTIifS5mYS1zZWFyY2hlbmdpbjpiZWZvcmV7Y29udGVudDoiXGYzZWIifS5mYS10aWt0b2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDdiIn0uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA4MiJ9LmZhLXJlbnJlbjpiZWZvcmV7Y29udGVudDoiXGYxOGIifS5mYS1saW51eDpiZWZvcmV7Y29udGVudDoiXGYxN2MifS5mYS1nbGlkZTpiZWZvcmV7Y29udGVudDoiXGYyYTUifS5mYS1saW5rZWRpbjpiZWZvcmV7Y29udGVudDoiXGYwOGMifS5mYS1odWJzcG90OmJlZm9yZXtjb250ZW50OiJcZjNiMiJ9LmZhLWRlcGxveWRvZzpiZWZvcmV7Y29udGVudDoiXGYzOGUifS5mYS10d2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWU4In0uZmEtcmF2ZWxyeTpiZWZvcmV7Y29udGVudDoiXGYyZDkifS5mYS1taXhlcjpiZWZvcmV7Y29udGVudDoiXGUwNTYifS5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSwuZmEtc3F1YXJlLWxhc3RmbTpiZWZvcmV7Y29udGVudDoiXGYyMDMifS5mYS12aW1lbzpiZWZvcmV7Y29udGVudDoiXGY0MGEifS5mYS1tZW5kZWxleTpiZWZvcmV7Y29udGVudDoiXGY3YjMifS5mYS11bmlyZWdpc3RyeTpiZWZvcmV7Y29udGVudDoiXGY0MDQifS5mYS1maWdtYTpiZWZvcmV7Y29udGVudDoiXGY3OTkifS5mYS1jcmVhdGl2ZS1jb21tb25zLXJlbWl4OmJlZm9yZXtjb250ZW50OiJcZjRlZSJ9LmZhLWNjLWFtYXpvbi1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDJkIn0uZmEtZHJvcGJveDpiZWZvcmV7Y29udGVudDoiXGYxNmIifS5mYS1pbnN0YWdyYW06YmVmb3Jle2NvbnRlbnQ6IlxmMTZkIn0uZmEtY21wbGlkOmJlZm9yZXtjb250ZW50OiJcZTM2MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWdyaXBmaXJlOmJlZm9yZXtjb250ZW50OiJcZjNhYyJ9LmZhLWplZGktb3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTBlIn0uZmEtdWlraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmNDAzIn0uZmEtZm9ydC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYTMifS5mYS1waGFicmljYXRvcjpiZWZvcmV7Y29udGVudDoiXGYzZGIifS5mYS11c3N1bm5haDpiZWZvcmV7Y29udGVudDoiXGY0MDcifS5mYS1lYXJseWJpcmRzOmJlZm9yZXtjb250ZW50OiJcZjM5YSJ9LmZhLXRyYWRlLWZlZGVyYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmNTEzIn0uZmEtYXV0b3ByZWZpeGVyOmJlZm9yZXtjb250ZW50OiJcZjQxYyJ9LmZhLXdoYXRzYXBwOmJlZm9yZXtjb250ZW50OiJcZjIzMiJ9LmZhLXNsaWRlc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWU3In0uZmEtZ29vZ2xlLXBsYXk6YmVmb3Jle2NvbnRlbnQ6IlxmM2FiIn0uZmEtdmlhZGVvOmJlZm9yZXtjb250ZW50OiJcZjJhOSJ9LmZhLWxpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2MwIn0uZmEtZ29vZ2xlLWRyaXZlOmJlZm9yZXtjb250ZW50OiJcZjNhYSJ9LmZhLXNlcnZpY2VzdGFjazpiZWZvcmV7Y29udGVudDoiXGYzZWMifS5mYS1zaW1wbHlidWlsdDpiZWZvcmV7Y29udGVudDoiXGYyMTUifS5mYS1iaXRidWNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTcxIn0uZmEtaW1kYjpiZWZvcmV7Y29udGVudDoiXGYyZDgifS5mYS1kZWV6ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDc3In0uZmEtcmFzcGJlcnJ5LXBpOmJlZm9yZXtjb250ZW50OiJcZjdiYiJ9LmZhLWppcmE6YmVmb3Jle2NvbnRlbnQ6IlxmN2IxIn0uZmEtZG9ja2VyOmJlZm9yZXtjb250ZW50OiJcZjM5NSJ9LmZhLXNjcmVlbnBhbDpiZWZvcmV7Y29udGVudDoiXGU1NzAifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtZ2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjQyNiJ9LmZhLWQtYW5kLWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzhkIn0uZmEtbWljcm9ibG9nOmJlZm9yZXtjb250ZW50OiJcZTAxYSJ9LmZhLWNjLWRpbmVycy1jbHViOmJlZm9yZXtjb250ZW50OiJcZjI0YyJ9LmZhLWdnLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYyNjEifS5mYS1waWVkLXBpcGVyLWhhdDpiZWZvcmV7Y29udGVudDoiXGY0ZTUifS5mYS1raWNrc3RhcnRlci1rOmJlZm9yZXtjb250ZW50OiJcZjNiYyJ9LmZhLXlhbmRleDpiZWZvcmV7Y29udGVudDoiXGY0MTMifS5mYS1yZWFkbWU6YmVmb3Jle2NvbnRlbnQ6IlxmNGQ1In0uZmEtaHRtbDU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0uZmEtc2VsbHN5OmJlZm9yZXtjb250ZW50OiJcZjIxMyJ9LmZhLXNhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFlIn0uZmEtd2lyc2luZGhhbmR3ZXJrOmJlZm9yZSwuZmEtd3NoOmJlZm9yZXtjb250ZW50OiJcZTJkMCJ9LmZhLWJ1cm9tb2JlbGV4cGVydGU6YmVmb3Jle2NvbnRlbnQ6IlxmMzdmIn0uZmEtc2FsZXNmb3JjZTpiZWZvcmV7Y29udGVudDoiXGY4M2IifS5mYS1vY3RvcHVzLWRlcGxveTpiZWZvcmV7Y29udGVudDoiXGUwODIifS5mYS1tZWRhcHBzOmJlZm9yZXtjb250ZW50OiJcZjNjNiJ9LmZhLW5zODpiZWZvcmV7Y29udGVudDoiXGYzZDUifS5mYS1waW50ZXJlc3QtcDpiZWZvcmV7Y29udGVudDoiXGYyMzEifS5mYS1hcHBlcjpiZWZvcmV7Y29udGVudDoiXGYzNzEifS5mYS1mb3J0LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjg2In0uZmEtd2F6ZTpiZWZvcmV7Y29udGVudDoiXGY4M2YifS5mYS1jYy1qY2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjRiIn0uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3JlLC5mYS1zbmFwY2hhdDpiZWZvcmV7Y29udGVudDoiXGYyYWIifS5mYS1mYW50YXN5LWZsaWdodC1nYW1lczpiZWZvcmV7Y29udGVudDoiXGY2ZGMifS5mYS1ydXN0OmJlZm9yZXtjb250ZW50OiJcZTA3YSJ9LmZhLXdpeDpiZWZvcmV7Y29udGVudDoiXGY1Y2YifS5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFiNSJ9LmZhLXN1cHBsZTpiZWZvcmV7Y29udGVudDoiXGYzZjkifS5mYS1yZWJlbDpiZWZvcmV7Y29udGVudDoiXGYxZDAifS5mYS1jc3MzOmJlZm9yZXtjb250ZW50OiJcZjEzYyJ9LmZhLXN0YXlsaW5rZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y1In0uZmEta2FnZ2xlOmJlZm9yZXtjb250ZW50OiJcZjVmYSJ9LmZhLXNwYWNlLWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxlNWFjIn0uZmEtZGV2aWFudGFydDpiZWZvcmV7Y29udGVudDoiXGYxYmQifS5mYS1jcGFuZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzg4In0uZmEtZ29vZHJlYWRzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmM2E5In0uZmEtZ2l0LXNxdWFyZTpiZWZvcmUsLmZhLXNxdWFyZS1naXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQyIn0uZmEtc3F1YXJlLXR1bWJscjpiZWZvcmUsLmZhLXR1bWJsci1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc0In0uZmEtdHJlbGxvOmJlZm9yZXtjb250ZW50OiJcZjE4MSJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtbmMtanA6YmVmb3Jle2NvbnRlbnQ6IlxmNGVhIn0uZmEtZ2V0LXBvY2tldDpiZWZvcmV7Y29udGVudDoiXGYyNjUifS5mYS1wZXJieXRlOmJlZm9yZXtjb250ZW50OiJcZTA4MyJ9LmZhLWdydW50OmJlZm9yZXtjb250ZW50OiJcZjNhZCJ9LmZhLXdlZWJseTpiZWZvcmV7Y29udGVudDoiXGY1Y2MifS5mYS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmV7Y29udGVudDoiXGYyMGUifS5mYS1sZWFucHViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9LmZhLWJsYWNrLXRpZTpiZWZvcmV7Y29udGVudDoiXGYyN2UifS5mYS10aGVtZWNvOmJlZm9yZXtjb250ZW50OiJcZjVjNiJ9LmZhLXB5dGhvbjpiZWZvcmV7Y29udGVudDoiXGYzZTIifS5mYS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjE3YiJ9LmZhLWJvdHM6YmVmb3Jle2NvbnRlbnQ6IlxlMzQwIn0uZmEtZnJlZS1jb2RlLWNhbXA6YmVmb3Jle2NvbnRlbnQ6IlxmMmM1In0uZmEtaG9ybmJpbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNTkyIn0uZmEtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I4In0uZmEtaWRlYWw6YmVmb3Jle2NvbnRlbnQ6IlxlMDEzIn0uZmEtZ2l0OmJlZm9yZXtjb250ZW50OiJcZjFkMyJ9LmZhLWRldjpiZWZvcmV7Y29udGVudDoiXGY2Y2MifS5mYS1za2V0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmN2M2In0uZmEteWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNDE0In0uZmEtY2MtYW1leDpiZWZvcmV7Y29udGVudDoiXGYxZjMifS5mYS11YmVyOmJlZm9yZXtjb250ZW50OiJcZjQwMiJ9LmZhLWdpdGh1YjpiZWZvcmV7Y29udGVudDoiXGYwOWIifS5mYS1waHA6YmVmb3Jle2NvbnRlbnQ6IlxmNDU3In0uZmEtYWxpcGF5OmJlZm9yZXtjb250ZW50OiJcZjY0MiJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEtc2t5YXRsYXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0uZmEtZmlyZWZveC1icm93c2VyOmJlZm9yZXtjb250ZW50OiJcZTAwNyJ9LmZhLXJlcGx5ZDpiZWZvcmV7Y29udGVudDoiXGYzZTYifS5mYS1zdXNlOmJlZm9yZXtjb250ZW50OiJcZjdkNiJ9LmZhLWplbmtpbnM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I2In0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS1yb2Nrcm1zOmJlZm9yZXtjb250ZW50OiJcZjNlOSJ9LmZhLXBpbnRlcmVzdDpiZWZvcmV7Y29udGVudDoiXGYwZDIifS5mYS1idWZmZXI6YmVmb3Jle2NvbnRlbnQ6IlxmODM3In0uZmEtbnBtOmJlZm9yZXtjb250ZW50OiJcZjNkNCJ9LmZhLXlhbW1lcjpiZWZvcmV7Y29udGVudDoiXGY4NDAifS5mYS1idGM6YmVmb3Jle2NvbnRlbnQ6IlxmMTVhIn0uZmEtZHJpYmJibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdkIn0uZmEtc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjFhMyJ9LmZhLWludGVybmV0LWV4cGxvcmVyOmJlZm9yZXtjb250ZW50OiJcZjI2YiJ9LmZhLXN0dWJiZXI6YmVmb3Jle2NvbnRlbnQ6IlxlNWM3In0uZmEtdGVsZWdyYW0tcGxhbmU6YmVmb3JlLC5mYS10ZWxlZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYyYzYifS5mYS1vbGQtcmVwdWJsaWM6YmVmb3Jle2NvbnRlbnQ6IlxmNTEwIn0uZmEtb2R5c2VlOmJlZm9yZXtjb250ZW50OiJcZTVjNiJ9LmZhLXNxdWFyZS13aGF0c2FwcDpiZWZvcmUsLmZhLXdoYXRzYXBwLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGY0MGMifS5mYS1ub2RlLWpzOmJlZm9yZXtjb250ZW50OiJcZjNkMyJ9LmZhLWVkZ2UtbGVnYWN5OmJlZm9yZXtjb250ZW50OiJcZTA3OCJ9LmZhLXNsYWNrLWhhc2g6YmVmb3JlLC5mYS1zbGFjazpiZWZvcmV7Y29udGVudDoiXGYxOTgifS5mYS1tZWRydDpiZWZvcmV7Y29udGVudDoiXGYzYzgifS5mYS11c2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjg3In0uZmEtdHVtYmxyOmJlZm9yZXtjb250ZW50OiJcZjE3MyJ9LmZhLXZhYWRpbjpiZWZvcmV7Y29udGVudDoiXGY0MDgifS5mYS1xdW9yYTpiZWZvcmV7Y29udGVudDoiXGYyYzQifS5mYS1yZWFjdGV1cm9wZTpiZWZvcmV7Y29udGVudDoiXGY3NWQifS5mYS1tZWRpdW0tbTpiZWZvcmUsLmZhLW1lZGl1bTpiZWZvcmV7Y29udGVudDoiXGYyM2EifS5mYS1hbWlsaWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZkIn0uZmEtbWl4Y2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjg5In0uZmEtZmxpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQ0ZCJ9LmZhLXZpYWNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMjM3In0uZmEtY3JpdGljYWwtcm9sZTpiZWZvcmV7Y29udGVudDoiXGY2YzkifS5mYS1zaXRyb3g6YmVmb3Jle2NvbnRlbnQ6IlxlNDRhIn0uZmEtZGlzY291cnNlOmJlZm9yZXtjb250ZW50OiJcZjM5MyJ9LmZhLWpvb21sYTpiZWZvcmV7Y29udGVudDoiXGYxYWEifS5mYS1tYXN0b2RvbjpiZWZvcmV7Y29udGVudDoiXGY0ZjYifS5mYS1haXJibmI6YmVmb3Jle2NvbnRlbnQ6IlxmODM0In0uZmEtd29sZi1wYWNrLWJhdHRhbGlvbjpiZWZvcmV7Y29udGVudDoiXGY1MTQifS5mYS1idXktbi1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGY4YTYifS5mYS1ndWxwOmJlZm9yZXtjb250ZW50OiJcZjNhZSJ9LmZhLWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1czpiZWZvcmV7Y29udGVudDoiXGY0ZjEifS5mYS1zdHJhdmE6YmVmb3Jle2NvbnRlbnQ6IlxmNDI4In0uZmEtZW1iZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDIzIn0uZmEtY2FuYWRpYW4tbWFwbGUtbGVhZjpiZWZvcmV7Y29udGVudDoiXGY3ODUifS5mYS10ZWFtc3BlYWs6YmVmb3Jle2NvbnRlbnQ6IlxmNGY5In0uZmEtcHVzaGVkOmJlZm9yZXtjb250ZW50OiJcZjNlMSJ9LmZhLXdvcmRwcmVzcy1zaW1wbGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDExIn0uZmEtbnV0cml0aW9uaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q2In0uZmEtd29kdTpiZWZvcmV7Y29udGVudDoiXGUwODgifS5mYS1nb29nbGUtcGF5OmJlZm9yZXtjb250ZW50OiJcZTA3OSJ9LmZhLWludGVyY29tOmJlZm9yZXtjb250ZW50OiJcZjdhZiJ9LmZhLXpoaWh1OmJlZm9yZXtjb250ZW50OiJcZjYzZiJ9LmZhLWtvcnZ1ZTpiZWZvcmV7Y29udGVudDoiXGY0MmYifS5mYS1waXg6YmVmb3Jle2NvbnRlbnQ6IlxlNDNhIn0uZmEtc3RlYW0tc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjNmNiJ9Omhvc3QsOnJvb3R7LS1mYS1mb250LXJlZ3VsYXI6bm9ybWFsIDQwMCAxZW0vMSAiRm9udCBBd2Vzb21lIDYgRnJlZSJ9QGZvbnQtZmFjZXtmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDYgRnJlZSI7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC4uL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpfS5mYS1yZWd1bGFyLC5mYXJ7Zm9udC13ZWlnaHQ6NDAwfTpob3N0LDpyb290ey0tZmEtc3R5bGUtZmFtaWx5LWNsYXNzaWM6IkZvbnQgQXdlc29tZSA2IEZyZWUiOy0tZmEtZm9udC1zb2xpZDpub3JtYWwgOTAwIDFlbS8xICJGb250IEF3ZXNvbWUgNiBGcmVlIn1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNiBGcmVlIjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo5MDA7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLi4vd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKX0uZmEtc29saWQsLmZhc3tmb250LXdlaWdodDo5MDB9QGZvbnQtZmFjZXtmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgQnJhbmRzIjtmb250LWRpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NDAwO3NyYzp1cmwoLi4vd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCguLi93ZWJmb250cy9mYS1icmFuZHMtNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IEZyZWUiO2ZvbnQtZGlzcGxheTpibG9jaztmb250LXdlaWdodDo5MDA7c3JjOnVybCguLi93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIpIGZvcm1hdCgid29mZjIiKSx1cmwoLi4vd2ViZm9udHMvZmEtc29saWQtOTAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IEZyZWUiO2ZvbnQtZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7c3JjOnVybCguLi93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCguLi93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OiJGb250QXdlc29tZSI7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLi4vd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OiJGb250QXdlc29tZSI7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLi4vd2ViZm9udHMvZmEtYnJhbmRzLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCguLi93ZWJmb250cy9mYS1icmFuZHMtNDAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6IkZvbnRBd2Vzb21lIjtmb250LWRpc3BsYXk6YmxvY2s7c3JjOnVybCguLi93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC53b2ZmMikgZm9ybWF0KCJ3b2ZmMiIpLHVybCguLi93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKTt1bmljb2RlLXJhbmdlOnUrZjAwMyx1K2YwMDYsdStmMDE0LHUrZjAxNi1mMDE3LHUrZjAxYS1mMDFiLHUrZjAxZCx1K2YwMjIsdStmMDNlLHUrZjA0NCx1K2YwNDYsdStmMDVjLWYwNWQsdStmMDZlLHUrZjA3MCx1K2YwODctZjA4OCx1K2YwOGEsdStmMDk0LHUrZjA5Ni1mMDk3LHUrZjA5ZCx1K2YwYTAsdStmMGEyLHUrZjBhNC1mMGE3LHUrZjBjNSx1K2YwYzcsdStmMGU1LWYwZTYsdStmMGViLHUrZjBmNi1mMGY4LHUrZjEwYyx1K2YxMTQtZjExNSx1K2YxMTgtZjExYSx1K2YxMWMtZjExZCx1K2YxMzMsdStmMTQ3LHUrZjE0ZSx1K2YxNTAtZjE1Mix1K2YxODUtZjE4Nix1K2YxOGUsdStmMTkwLWYxOTIsdStmMTk2LHUrZjFjMS1mMWM5LHUrZjFkOSx1K2YxZGIsdStmMWUzLHUrZjFlYSx1K2YxZjcsdStmMWY5LHUrZjIwYSx1K2YyNDctZjI0OCx1K2YyNGEsdStmMjRkLHUrZjI1NS1mMjViLHUrZjI1ZCx1K2YyNzEtZjI3NCx1K2YyNzgsdStmMjdiLHUrZjI4Yyx1K2YyOGUsdStmMjljLHUrZjJiNSx1K2YyYjcsdStmMmJhLHUrZjJiYyx1K2YyYmUsdStmMmMwLWYyYzEsdStmMmMzLHUrZjJkMCx1K2YyZDIsdStmMmQ0LHUrZjJkY31AZm9udC1mYWNle2ZvbnQtZmFtaWx5OiJGb250QXdlc29tZSI7Zm9udC1kaXNwbGF5OmJsb2NrO3NyYzp1cmwoLi4vd2ViZm9udHMvZmEtdjRjb21wYXRpYmlsaXR5LndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC4uL3dlYmZvbnRzL2ZhLXY0Y29tcGF0aWJpbGl0eS50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKTt1bmljb2RlLXJhbmdlOnUrZjA0MSx1K2YwNDcsdStmMDY1LWYwNjYsdStmMDdkLWYwN2UsdStmMDgwLHUrZjA4Yix1K2YwOGUsdStmMDkwLHUrZjA5YSx1K2YwYWMsdStmMGFlLHUrZjBiMix1K2YwZDAsdStmMGQ2LHUrZjBlNCx1K2YwZWMsdStmMTBhLWYxMGIsdStmMTIzLHUrZjEzZSx1K2YxNDgtZjE0OSx1K2YxNGMsdStmMTU2LHUrZjE1ZSx1K2YxNjAtZjE2MSx1K2YxNjMsdStmMTc1LWYxNzgsdStmMTk1LHUrZjFmOCx1K2YyMTksdStmMjdhfQ=="}},"time_used":56,"timings":{"blocked":-1,"dns":1,"connect":9,"send":0,"wait":45,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.376Z","timestamp":1785142155376,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://platinumglobalexchange.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nage: 416341\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":48532,"size_decoded":49345,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-07-29T10:49:13.030643Z","times_seen":248888,"resource_available":false,"data":"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"}},"time_used":62,"timings":{"blocked":0,"dns":2,"connect":29,"send":0,"wait":16,"receive":15,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.647Z","timestamp":1785142155647,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://platinumglobalexchange.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nage: 416341\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":48532,"size_decoded":49345,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-07-29T10:49:13.030643Z","times_seen":248888,"resource_available":false,"data":"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"}},"time_used":32,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":19,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"172.67.68.11","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:08.810Z","timestamp":1785142148810,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tailwindcss.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 17 Jul 2026 20:38:38 GMT","end":"Thu, 15 Oct 2026 21:38:35 GMT"},"fingerprint":{"sha1":"AF:4F:AD:59:FA:ED:77:04:0D:32:56:48:B0:E5:1B:38:67:6D:7D:02","sha256":"E7:FC:CF:2D:6A:CC:F5:3C:4C:1E:9D:CD:21:8A:72:A3:DB:7C:B1:50:0F:83:D1:DC:E4:AD:25:90:8F:98:37:0F"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: cdn.tailwindcss.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://platinumglobalexchange.com/\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 302 \r\ndate: Mon, 27 Jul 2026 08:49:15 GMT\r\ncache-control: max-age=14400\r\nlocation: /3.4.17\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-cache: MISS\r\nx-vercel-id: fra1::iad1::fh9xv-1785141654570-50e9482c5868\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nage: 500\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=qs0dr2CHNm0sps2Qxkt4wXz0zPN8o4SorUv2f3ManM1og9%2FfdMVfJ4xH7OslXaNKNjylfb%2Bh%2FC3sPkmZLAsZ8QbTS723xSlDYc00UD%2B8cVb%2Fda9a0L30PGmbQVlVC%2Bt4BTEm27M%3D\"}]}\r\ncf-ray: a21a63c62931a0f0-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"302","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":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-07-29T10:56:24.659764Z","times_seen":17596398,"resource_available":true,"data":null}},"time_used":6420,"timings":{"blocked":-1,"dns":3,"connect":1,"send":0,"wait":6,"receive":0,"ssl":6410},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdn.tailwindcss.com/3.4.17","fqdn":"cdn.tailwindcss.com","domain":"tailwindcss.com","tld":"com"},"ip":{"addr":"172.67.68.11","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.237Z","timestamp":1785142155237,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"tailwindcss.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 17 Jul 2026 20:38:38 GMT","end":"Thu, 15 Oct 2026 21:38:35 GMT"},"fingerprint":{"sha1":"AF:4F:AD:59:FA:ED:77:04:0D:32:56:48:B0:E5:1B:38:67:6D:7D:02","sha256":"E7:FC:CF:2D:6A:CC:F5:3C:4C:1E:9D:CD:21:8A:72:A3:DB:7C:B1:50:0F:83:D1:DC:E4:AD:25:90:8F:98:37:0F"}}},"request":{"raw":"GET /3.4.17 HTTP/1.1\r\nHost: cdn.tailwindcss.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://platinumglobalexchange.com/\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\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 08:49:15 GMT\r\ncontent-type: text/javascript\r\ncache-control: max-age=31536000\r\ncontent-encoding: br\r\nserver: cloudflare\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-cache: MISS\r\nx-vercel-id: fra1::iad1::bj55r-1781146628084-40ce7f37f405\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nvary: accept-encoding\r\nage: 3995526\r\nlast-modified: Wed, 01 Jul 2026 01:49:34 GMT\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Q5WcsFRGDBkvBzRXYZFW78CfRW2bw8wF3O3f70dkKu2LNu6sacKYALQoBKCq9KV76kpzsDhKeKLKAxqzl9jDu%2FYmR573GYUG6Y4SBRVa1mCLI50OH99zROqv311ZBL6bCLqpNzg%3D\"}]}\r\ncf-ray: a21a63c6397aa0f0-OSL\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":407279,"size_decoded":127116,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (52853)","md5":"7a614b9a197e532c00d09a23b0996b5f","sha1":"1ff1738a40f3716e30e9031b181b0955ae578955","sha256":"176e894661aa9cdc9a5cba6c720044cbbf7b8bd80d1c9a142a7c24b1b6c50d15","sha512":"a67bc26f52d938358471be5671ff4b79e11af4e68b486aaf73a35a4c9bf3777aab51101af81563b4e5b7ba4b04dd8971fcfa9ee2c41fb10a0c1ee5604a99abd6","ssdeep":"12288:fpgrZxSAoNbJb0Wie75aUXGuyQZhK4O0s:RCVoNB0Wie75aUWmnO0s","tlshash":"e8844aa57396702647eb51e850ea1042f2beaa38840c44bcf7edd4da39e5e4440fbf79","first_seen":"2025-07-28T16:58:08.903462Z","last_seen":"2026-07-29T09:26:08.384401Z","times_seen":47124,"resource_available":true,"data":"KCgpPT57dmFyIHF2PU9iamVjdC5jcmVhdGU7dmFyIEhpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgJHY9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgTHY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIE12PU9iamVjdC5nZXRQcm90b3R5cGVPZixOdj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBkZj1yPT5IaShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgaGY9cj0+e2lmKHR5cGVvZiByZXF1aXJlIT0idW5kZWZpbmVkIilyZXR1cm4gcmVxdWlyZShyKTt0aHJvdyBuZXcgRXJyb3IoJ0R5bmFtaWMgcmVxdWlyZSBvZiAiJytyKyciIGlzIG5vdCBzdXBwb3J0ZWQnKX07dmFyIFA9KHIsZSk9PigpPT4ociYmKGU9cihyPTApKSxlKTt2YXIgeD0ocixlKT0+KCk9PihlfHxyKChlPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxlKSxlLmV4cG9ydHMpLEdlPShyLGUpPT57ZGYocik7Zm9yKHZhciB0IGluIGUpSGkocix0LHtnZXQ6ZVt0XSxlbnVtZXJhYmxlOiEwfSl9LEJ2PShyLGUsdCk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgaSBvZiBMdihlKSkhTnYuY2FsbChyLGkpJiZpIT09ImRlZmF1bHQiJiZIaShyLGkse2dldDooKT0+ZVtpXSxlbnVtZXJhYmxlOiEodD0kdihlLGkpKXx8dC5lbnVtZXJhYmxlfSk7cmV0dXJuIHJ9LHBlPXI9PkJ2KGRmKEhpKHIhPW51bGw/cXYoTXYocikpOnt9LCJkZWZhdWx0IixyJiZyLl9fZXNNb2R1bGUmJiJkZWZhdWx0ImluIHI/e2dldDooKT0+ci5kZWZhdWx0LGVudW1lcmFibGU6ITB9Ont2YWx1ZTpyLGVudW1lcmFibGU6ITB9KSkscik7dmFyIG0sdT1QKCgpPT57bT17cGxhdGZvcm06IiIsZW52Ont9LHZlcnNpb25zOntub2RlOiIxNC4xNy42In19fSk7dmFyIEZ2LGJlLGZ0PVAoKCk9Pnt1KCk7RnY9MCxiZT17cmVhZEZpbGVTeW5jOnI9PnNlbGZbcl18fCIiLHN0YXRTeW5jOigpPT4oe210aW1lTXM6RnYrK30pLHByb21pc2VzOntyZWFkRmlsZTpyPT5Qcm9taXNlLnJlc29sdmUoc2VsZltyXXx8IiIpfX19KTt2YXIgRnM9eCgob1AsZ2YpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgbWY9Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7aWYoIShlLm1heFNpemUmJmUubWF4U2l6ZT4wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4U2l6ZWAgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIpO2lmKHR5cGVvZiBlLm1heEFnZT09Im51bWJlciImJmUubWF4QWdlPT09MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4QWdlYCBtdXN0IGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIik7dGhpcy5tYXhTaXplPWUubWF4U2l6ZSx0aGlzLm1heEFnZT1lLm1heEFnZXx8MS8wLHRoaXMub25FdmljdGlvbj1lLm9uRXZpY3Rpb24sdGhpcy5jYWNoZT1uZXcgTWFwLHRoaXMub2xkQ2FjaGU9bmV3IE1hcCx0aGlzLl9zaXplPTB9X2VtaXRFdmljdGlvbnMoZSl7aWYodHlwZW9mIHRoaXMub25FdmljdGlvbj09ImZ1bmN0aW9uIilmb3IobGV0W3QsaV1vZiBlKXRoaXMub25FdmljdGlvbih0LGkudmFsdWUpfV9kZWxldGVJZkV4cGlyZWQoZSx0KXtyZXR1cm4gdHlwZW9mIHQuZXhwaXJ5PT0ibnVtYmVyIiYmdC5leHBpcnk8PURhdGUubm93KCk/KHR5cGVvZiB0aGlzLm9uRXZpY3Rpb249PSJmdW5jdGlvbiImJnRoaXMub25FdmljdGlvbihlLHQudmFsdWUpLHRoaXMuZGVsZXRlKGUpKTohMX1fZ2V0T3JEZWxldGVJZkV4cGlyZWQoZSx0KXtpZih0aGlzLl9kZWxldGVJZkV4cGlyZWQoZSx0KT09PSExKXJldHVybiB0LnZhbHVlfV9nZXRJdGVtVmFsdWUoZSx0KXtyZXR1cm4gdC5leHBpcnk/dGhpcy5fZ2V0T3JEZWxldGVJZkV4cGlyZWQoZSx0KTp0LnZhbHVlfV9wZWVrKGUsdCl7bGV0IGk9dC5nZXQoZSk7cmV0dXJuIHRoaXMuX2dldEl0ZW1WYWx1ZShlLGkpfV9zZXQoZSx0KXt0aGlzLmNhY2hlLnNldChlLHQpLHRoaXMuX3NpemUrKyx0aGlzLl9zaXplPj10aGlzLm1heFNpemUmJih0aGlzLl9zaXplPTAsdGhpcy5fZW1pdEV2aWN0aW9ucyh0aGlzLm9sZENhY2hlKSx0aGlzLm9sZENhY2hlPXRoaXMuY2FjaGUsdGhpcy5jYWNoZT1uZXcgTWFwKX1fbW92ZVRvUmVjZW50KGUsdCl7dGhpcy5vbGRDYWNoZS5kZWxldGUoZSksdGhpcy5fc2V0KGUsdCl9Kl9lbnRyaWVzQXNjZW5kaW5nKCl7Zm9yKGxldCBlIG9mIHRoaXMub2xkQ2FjaGUpe2xldFt0LGldPWU7dGhpcy5jYWNoZS5oYXModCl8fHRoaXMuX2RlbGV0ZUlmRXhwaXJlZCh0LGkpPT09ITEmJih5aWVsZCBlKX1mb3IobGV0IGUgb2YgdGhpcy5jYWNoZSl7bGV0W3QsaV09ZTt0aGlzLl9kZWxldGVJZkV4cGlyZWQodCxpKT09PSExJiYoeWllbGQgZSl9fWdldChlKXtpZih0aGlzLmNhY2hlLmhhcyhlKSl7bGV0IHQ9dGhpcy5jYWNoZS5nZXQoZSk7cmV0dXJuIHRoaXMuX2dldEl0ZW1WYWx1ZShlLHQpfWlmKHRoaXMub2xkQ2FjaGUuaGFzKGUpKXtsZXQgdD10aGlzLm9sZENhY2hlLmdldChlKTtpZih0aGlzLl9kZWxldGVJZkV4cGlyZWQoZSx0KT09PSExKXJldHVybiB0aGlzLl9tb3ZlVG9SZWNlbnQoZSx0KSx0LnZhbHVlfX1zZXQoZSx0LHttYXhBZ2U6aT10aGlzLm1heEFnZT09PTEvMD92b2lkIDA6RGF0ZS5ub3coKSt0aGlzLm1heEFnZX09e30pe3RoaXMuY2FjaGUuaGFzKGUpP3RoaXMuY2FjaGUuc2V0KGUse3ZhbHVlOnQsbWF4QWdlOml9KTp0aGlzLl9zZXQoZSx7dmFsdWU6dCxleHBpcnk6aX0pfWhhcyhlKXtyZXR1cm4gdGhpcy5jYWNoZS5oYXMoZSk/IXRoaXMuX2RlbGV0ZUlmRXhwaXJlZChlLHRoaXMuY2FjaGUuZ2V0KGUpKTp0aGlzLm9sZENhY2hlLmhhcyhlKT8hdGhpcy5fZGVsZXRlSWZFeHBpcmVkKGUsdGhpcy5vbGRDYWNoZS5nZXQoZSkpOiExfXBlZWsoZSl7aWYodGhpcy5jYWNoZS5oYXMoZSkpcmV0dXJuIHRoaXMuX3BlZWsoZSx0aGlzLmNhY2hlKTtpZih0aGlzLm9sZENhY2hlLmhhcyhlKSlyZXR1cm4gdGhpcy5fcGVlayhlLHRoaXMub2xkQ2FjaGUpfWRlbGV0ZShlKXtsZXQgdD10aGlzLmNhY2hlLmRlbGV0ZShlKTtyZXR1cm4gdCYmdGhpcy5fc2l6ZS0tLHRoaXMub2xkQ2FjaGUuZGVsZXRlKGUpfHx0fWNsZWFyKCl7dGhpcy5jYWNoZS5jbGVhcigpLHRoaXMub2xkQ2FjaGUuY2xlYXIoKSx0aGlzLl9zaXplPTB9cmVzaXplKGUpe2lmKCEoZSYmZT4wKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJgbWF4U2l6ZWAgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIpO2xldCB0PVsuLi50aGlzLl9lbnRyaWVzQXNjZW5kaW5nKCldLGk9dC5sZW5ndGgtZTtpPDA/KHRoaXMuY2FjaGU9bmV3IE1hcCh0KSx0aGlzLm9sZENhY2hlPW5ldyBNYXAsdGhpcy5fc2l6ZT10Lmxlbmd0aCk6KGk+MCYmdGhpcy5fZW1pdEV2aWN0aW9ucyh0LnNsaWNlKDAsaSkpLHRoaXMub2xkQ2FjaGU9bmV3IE1hcCh0LnNsaWNlKGkpKSx0aGlzLmNhY2hlPW5ldyBNYXAsdGhpcy5fc2l6ZT0wKSx0aGlzLm1heFNpemU9ZX0qa2V5cygpe2ZvcihsZXRbZV1vZiB0aGlzKXlpZWxkIGV9KnZhbHVlcygpe2ZvcihsZXRbLGVdb2YgdGhpcyl5aWVsZCBlfSpbU3ltYm9sLml0ZXJhdG9yXSgpe2ZvcihsZXQgZSBvZiB0aGlzLmNhY2hlKXtsZXRbdCxpXT1lO3RoaXMuX2RlbGV0ZUlmRXhwaXJlZCh0LGkpPT09ITEmJih5aWVsZFt0LGkudmFsdWVdKX1mb3IobGV0IGUgb2YgdGhpcy5vbGRDYWNoZSl7bGV0W3QsaV09ZTt0aGlzLmNhY2hlLmhhcyh0KXx8dGhpcy5fZGVsZXRlSWZFeHBpcmVkKHQsaSk9PT0hMSYmKHlpZWxkW3QsaS52YWx1ZV0pfX0qZW50cmllc0Rlc2NlbmRpbmcoKXtsZXQgZT1bLi4udGhpcy5jYWNoZV07Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCBpPWVbdF0sW24sc109aTt0aGlzLl9kZWxldGVJZkV4cGlyZWQobixzKT09PSExJiYoeWllbGRbbixzLnZhbHVlXSl9ZT1bLi4udGhpcy5vbGRDYWNoZV07Zm9yKGxldCB0PWUubGVuZ3RoLTE7dD49MDstLXQpe2xldCBpPWVbdF0sW24sc109aTt0aGlzLmNhY2hlLmhhcyhuKXx8dGhpcy5fZGVsZXRlSWZFeHBpcmVkKG4scyk9PT0hMSYmKHlpZWxkW24scy52YWx1ZV0pfX0qZW50cmllc0FzY2VuZGluZygpe2ZvcihsZXRbZSx0XW9mIHRoaXMuX2VudHJpZXNBc2NlbmRpbmcoKSl5aWVsZFtlLHQudmFsdWVdfWdldCBzaXplKCl7aWYoIXRoaXMuX3NpemUpcmV0dXJuIHRoaXMub2xkQ2FjaGUuc2l6ZTtsZXQgZT0wO2ZvcihsZXQgdCBvZiB0aGlzLm9sZENhY2hlLmtleXMoKSl0aGlzLmNhY2hlLmhhcyh0KXx8ZSsrO3JldHVybiBNYXRoLm1pbih0aGlzLl9zaXplK2UsdGhpcy5tYXhTaXplKX19O2dmLmV4cG9ydHM9bWZ9KTt2YXIgeWYsYmY9UCgoKT0+e3UoKTt5Zj1yPT5yJiZyLl9oYXNofSk7ZnVuY3Rpb24gV2kocil7cmV0dXJuIHlmKHIse2lnbm9yZVVua25vd246ITB9KX12YXIgd2Y9UCgoKT0+e3UoKTtiZigpfSk7ZnVuY3Rpb24geHQocil7aWYocj1gJHtyfWAscj09PSIwIilyZXR1cm4iMCI7aWYoL15bKy1dPyhcZCt8XGQqXC5cZCspKGVbKy1dP1xkKyk/KCV8XHcrKT8kLy50ZXN0KHIpKXJldHVybiByLnJlcGxhY2UoL15bKy1dPy8sdD0+dD09PSItIj8iIjoiLSIpO2xldCBlPVsidmFyIiwiY2FsYyIsIm1pbiIsIm1heCIsImNsYW1wIl07Zm9yKGxldCB0IG9mIGUpaWYoci5pbmNsdWRlcyhgJHt0fShgKSlyZXR1cm5gY2FsYygke3J9ICogLTEpYH12YXIgR2k9UCgoKT0+e3UoKX0pO3ZhciB2Zix4Zj1QKCgpPT57dSgpO3ZmPVsicHJlZmxpZ2h0IiwiY29udGFpbmVyIiwiYWNjZXNzaWJpbGl0eSIsInBvaW50ZXJFdmVudHMiLCJ2aXNpYmlsaXR5IiwicG9zaXRpb24iLCJpbnNldCIsImlzb2xhdGlvbiIsInpJbmRleCIsIm9yZGVyIiwiZ3JpZENvbHVtbiIsImdyaWRDb2x1bW5TdGFydCIsImdyaWRDb2x1bW5FbmQiLCJncmlkUm93IiwiZ3JpZFJvd1N0YXJ0IiwiZ3JpZFJvd0VuZCIsImZsb2F0IiwiY2xlYXIiLCJtYXJnaW4iLCJib3hTaXppbmciLCJsaW5lQ2xhbXAiLCJkaXNwbGF5IiwiYXNwZWN0UmF0aW8iLCJzaXplIiwiaGVpZ2h0IiwibWF4SGVpZ2h0IiwibWluSGVpZ2h0Iiwid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwiZmxleCIsImZsZXhTaHJpbmsiLCJmbGV4R3JvdyIsImZsZXhCYXNpcyIsInRhYmxlTGF5b3V0IiwiY2FwdGlvblNpZGUiLCJib3JkZXJDb2xsYXBzZSIsImJvcmRlclNwYWNpbmciLCJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2xhdGUiLCJyb3RhdGUiLCJza2V3Iiwic2NhbGUiLCJ0cmFuc2Zvcm0iLCJhbmltYXRpb24iLCJjdXJzb3IiLCJ0b3VjaEFjdGlvbiIsInVzZXJTZWxlY3QiLCJyZXNpemUiLCJzY3JvbGxTbmFwVHlwZSIsInNjcm9sbFNuYXBBbGlnbiIsInNjcm9sbFNuYXBTdG9wIiwic2Nyb2xsTWFyZ2luIiwic2Nyb2xsUGFkZGluZyIsImxpc3RTdHlsZVBvc2l0aW9uIiwibGlzdFN0eWxlVHlwZSIsImxpc3RTdHlsZUltYWdlIiwiYXBwZWFyYW5jZSIsImNvbHVtbnMiLCJicmVha0JlZm9yZSIsImJyZWFrSW5zaWRlIiwiYnJlYWtBZnRlciIsImdyaWRBdXRvQ29sdW1ucyIsImdyaWRBdXRvRmxvdyIsImdyaWRBdXRvUm93cyIsImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJncmlkVGVtcGxhdGVSb3dzIiwiZmxleERpcmVjdGlvbiIsImZsZXhXcmFwIiwicGxhY2VDb250ZW50IiwicGxhY2VJdGVtcyIsImFsaWduQ29udGVudCIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImp1c3RpZnlJdGVtcyIsImdhcCIsInNwYWNlIiwiZGl2aWRlV2lkdGgiLCJkaXZpZGVTdHlsZSIsImRpdmlkZUNvbG9yIiwiZGl2aWRlT3BhY2l0eSIsInBsYWNlU2VsZiIsImFsaWduU2VsZiIsImp1c3RpZnlTZWxmIiwib3ZlcmZsb3ciLCJvdmVyc2Nyb2xsQmVoYXZpb3IiLCJzY3JvbGxCZWhhdmlvciIsInRleHRPdmVyZmxvdyIsImh5cGhlbnMiLCJ3aGl0ZXNwYWNlIiwidGV4dFdyYXAiLCJ3b3JkQnJlYWsiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJPcGFjaXR5IiwiYmFja2dyb3VuZENvbG9yIiwiYmFja2dyb3VuZE9wYWNpdHkiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJncmFkaWVudENvbG9yU3RvcHMiLCJib3hEZWNvcmF0aW9uQnJlYWsiLCJiYWNrZ3JvdW5kU2l6ZSIsImJhY2tncm91bmRBdHRhY2htZW50IiwiYmFja2dyb3VuZENsaXAiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZE9yaWdpbiIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsIm9iamVjdEZpdCIsIm9iamVjdFBvc2l0aW9uIiwicGFkZGluZyIsInRleHRBbGlnbiIsInRleHRJbmRlbnQiLCJ2ZXJ0aWNhbEFsaWduIiwiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInRleHRUcmFuc2Zvcm0iLCJmb250U3R5bGUiLCJmb250VmFyaWFudE51bWVyaWMiLCJsaW5lSGVpZ2h0IiwibGV0dGVyU3BhY2luZyIsInRleHRDb2xvciIsInRleHRPcGFjaXR5IiwidGV4dERlY29yYXRpb24iLCJ0ZXh0RGVjb3JhdGlvbkNvbG9yIiwidGV4dERlY29yYXRpb25TdHlsZSIsInRleHREZWNvcmF0aW9uVGhpY2tuZXNzIiwidGV4dFVuZGVybGluZU9mZnNldCIsImZvbnRTbW9vdGhpbmciLCJwbGFjZWhvbGRlckNvbG9yIiwicGxhY2Vob2xkZXJPcGFjaXR5IiwiY2FyZXRDb2xvciIsImFjY2VudENvbG9yIiwib3BhY2l0eSIsImJhY2tncm91bmRCbGVuZE1vZGUiLCJtaXhCbGVuZE1vZGUiLCJib3hTaGFkb3ciLCJib3hTaGFkb3dDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVPZmZzZXQiLCJvdXRsaW5lQ29sb3IiLCJyaW5nV2lkdGgiLCJyaW5nQ29sb3IiLCJyaW5nT3BhY2l0eSIsInJpbmdPZmZzZXRXaWR0aCIsInJpbmdPZmZzZXRDb2xvciIsImJsdXIiLCJicmlnaHRuZXNzIiwiY29udHJhc3QiLCJkcm9wU2hhZG93IiwiZ3JheXNjYWxlIiwiaHVlUm90YXRlIiwiaW52ZXJ0Iiwic2F0dXJhdGUiLCJzZXBpYSIsImZpbHRlciIsImJhY2tkcm9wQmx1ciIsImJhY2tkcm9wQnJpZ2h0bmVzcyIsImJhY2tkcm9wQ29udHJhc3QiLCJiYWNrZHJvcEdyYXlzY2FsZSIsImJhY2tkcm9wSHVlUm90YXRlIiwiYmFja2Ryb3BJbnZlcnQiLCJiYWNrZHJvcE9wYWNpdHkiLCJiYWNrZHJvcFNhdHVyYXRlIiwiYmFja2Ryb3BTZXBpYSIsImJhY2tkcm9wRmlsdGVyIiwidHJhbnNpdGlvblByb3BlcnR5IiwidHJhbnNpdGlvbkRlbGF5IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwid2lsbENoYW5nZSIsImNvbnRhaW4iLCJjb250ZW50IiwiZm9yY2VkQ29sb3JBZGp1c3QiXX0pO2Z1bmN0aW9uIGtmKHIsZSl7cmV0dXJuIHI9PT12b2lkIDA/ZTpBcnJheS5pc0FycmF5KHIpP3I6Wy4uLm5ldyBTZXQoZS5maWx0ZXIoaT0+ciE9PSExJiZyW2ldIT09ITEpLmNvbmNhdChPYmplY3Qua2V5cyhyKS5maWx0ZXIoaT0+cltpXSE9PSExKSkpXX12YXIgU2Y9UCgoKT0+e3UoKX0pO3ZhciBBZj17fTtHZShBZix7ZGVmYXVsdDooKT0+UWV9KTt2YXIgUWUsUWk9UCgoKT0+e3UoKTtRZT1uZXcgUHJveHkoe30se2dldDooKT0+U3RyaW5nfSl9KTtmdW5jdGlvbiBqcyhyLGUsdCl7dHlwZW9mIG0hPSJ1bmRlZmluZWQiJiZtLmVudi5KRVNUX1dPUktFUl9JRHx8dCYmQ2YuaGFzKHQpfHwodCYmQ2YuYWRkKHQpLGNvbnNvbGUud2FybigiIiksZS5mb3JFYWNoKGk9PmNvbnNvbGUud2FybihyLCItIixpKSkpfWZ1bmN0aW9uIHpzKHIpe3JldHVybiBRZS5kaW0ocil9dmFyIENmLEcsQmU9UCgoKT0+e3UoKTtRaSgpO0NmPW5ldyBTZXQ7Rz17aW5mbyhyLGUpe2pzKFFlLmJvbGQoUWUuY3lhbigiaW5mbyIpKSwuLi5BcnJheS5pc0FycmF5KHIpP1tyXTpbZSxyXSl9LHdhcm4ocixlKXtbImNvbnRlbnQtcHJvYmxlbXMiXS5pbmNsdWRlcyhyKXx8anMoUWUuYm9sZChRZS55ZWxsb3coIndhcm4iKSksLi4uQXJyYXkuaXNBcnJheShyKT9bcl06W2Uscl0pfSxyaXNrKHIsZSl7anMoUWUuYm9sZChRZS5tYWdlbnRhKCJyaXNrIikpLC4uLkFycmF5LmlzQXJyYXkocik/W3JdOltlLHJdKX19fSk7dmFyIF9mPXt9O0dlKF9mLHtkZWZhdWx0OigpPT5Vc30pO2Z1bmN0aW9uIHFyKHt2ZXJzaW9uOnIsZnJvbTplLHRvOnR9KXtHLndhcm4oYCR7ZX0tY29sb3ItcmVuYW1lZGAsW2BBcyBvZiBUYWlsd2luZCBDU1MgJHtyfSwgXGAke2V9XGAgaGFzIGJlZW4gcmVuYW1lZCB0byBcYCR7dH1cYC5gLCJVcGRhdGUgeW91ciBjb25maWd1cmF0aW9uIGZpbGUgdG8gc2lsZW5jZSB0aGlzIHdhcm5pbmcuIl0pfXZhciBVcyxWcz1QKCgpPT57dSgpO0JlKCk7VXM9e2luaGVyaXQ6ImluaGVyaXQiLGN1cnJlbnQ6ImN1cnJlbnRDb2xvciIsdHJhbnNwYXJlbnQ6InRyYW5zcGFyZW50IixibGFjazoiIzAwMCIsd2hpdGU6IiNmZmYiLHNsYXRlOns1MDoiI2Y4ZmFmYyIsMTAwOiIjZjFmNWY5IiwyMDA6IiNlMmU4ZjAiLDMwMDoiI2NiZDVlMSIsNDAwOiIjOTRhM2I4Iiw1MDA6IiM2NDc0OGIiLDYwMDoiIzQ3NTU2OSIsNzAwOiIjMzM0MTU1Iiw4MDA6IiMxZTI5M2IiLDkwMDoiIzBmMTcyYSIsOTUwOiIjMDIwNjE3In0sZ3JheTp7NTA6IiNmOWZhZmIiLDEwMDoiI2YzZjRmNiIsMjAwOiIjZTVlN2ViIiwzMDA6IiNkMWQ1ZGIiLDQwMDoiIzljYTNhZiIsNTAwOiIjNmI3MjgwIiw2MDA6IiM0YjU1NjMiLDcwMDoiIzM3NDE1MSIsODAwOiIjMWYyOTM3Iiw5MDA6IiMxMTE4MjciLDk1MDoiIzAzMDcxMiJ9LHppbmM6ezUwOiIjZmFmYWZhIiwxMDA6IiNmNGY0ZjUiLDIwMDoiI2U0ZTRlNyIsMzAwOiIjZDRkNGQ4Iiw0MDA6IiNhMWExYWEiLDUwMDoiIzcxNzE3YSIsNjAwOiIjNTI1MjViIiw3MDA6IiMzZjNmNDYiLDgwMDoiIzI3MjcyYSIsOTAwOiIjMTgxODFiIiw5NTA6IiMwOTA5MGIifSxuZXV0cmFsOns1MDoiI2ZhZmFmYSIsMTAwOiIjZjVmNWY1IiwyMDA6IiNlNWU1ZTUiLDMwMDoiI2Q0ZDRkNCIsNDAwOiIjYTNhM2EzIiw1MDA6IiM3MzczNzMiLDYwMDoiIzUyNTI1MiIsNzAwOiIjNDA0MDQwIiw4MDA6IiMyNjI2MjYiLDkwMDoiIzE3MTcxNyIsOTUwOiIjMGEwYTBhIn0sc3RvbmU6ezUwOiIjZmFmYWY5IiwxMDA6IiNmNWY1ZjQiLDIwMDoiI2U3ZTVlNCIsMzAwOiIjZDZkM2QxIiw0MDA6IiNhOGEyOWUiLDUwMDoiIzc4NzE2YyIsNjAwOiIjNTc1MzRlIiw3MDA6IiM0NDQwM2MiLDgwMDoiIzI5MjUyNCIsOTAwOiIjMWMxOTE3Iiw5NTA6IiMwYzBhMDkifSxyZWQ6ezUwOiIjZmVmMmYyIiwxMDA6IiNmZWUyZTIiLDIwMDoiI2ZlY2FjYSIsMzAwOiIjZmNhNWE1Iiw0MDA6IiNmODcxNzEiLDUwMDoiI2VmNDQ0NCIsNjAwOiIjZGMyNjI2Iiw3MDA6IiNiOTFjMWMiLDgwMDoiIzk5MWIxYiIsOTAwOiIjN2YxZDFkIiw5NTA6IiM0NTBhMGEifSxvcmFuZ2U6ezUwOiIjZmZmN2VkIiwxMDA6IiNmZmVkZDUiLDIwMDoiI2ZlZDdhYSIsMzAwOiIjZmRiYTc0Iiw0MDA6IiNmYjkyM2MiLDUwMDoiI2Y5NzMxNiIsNjAwOiIjZWE1ODBjIiw3MDA6IiNjMjQxMGMiLDgwMDoiIzlhMzQxMiIsOTAwOiIjN2MyZDEyIiw5NTA6IiM0MzE0MDcifSxhbWJlcjp7NTA6IiNmZmZiZWIiLDEwMDoiI2ZlZjNjNyIsMjAwOiIjZmRlNjhhIiwzMDA6IiNmY2QzNGQiLDQwMDoiI2ZiYmYyNCIsNTAwOiIjZjU5ZTBiIiw2MDA6IiNkOTc3MDYiLDcwMDoiI2I0NTMwOSIsODAwOiIjOTI0MDBlIiw5MDA6IiM3ODM1MGYiLDk1MDoiIzQ1MWEwMyJ9LHllbGxvdzp7NTA6IiNmZWZjZTgiLDEwMDoiI2ZlZjljMyIsMjAwOiIjZmVmMDhhIiwzMDA6IiNmZGUwNDciLDQwMDoiI2ZhY2MxNSIsNTAwOiIjZWFiMzA4Iiw2MDA6IiNjYThhMDQiLDcwMDoiI2ExNjIwNyIsODAwOiIjODU0ZDBlIiw5MDA6IiM3MTNmMTIiLDk1MDoiIzQyMjAwNiJ9LGxpbWU6ezUwOiIjZjdmZWU3IiwxMDA6IiNlY2ZjY2IiLDIwMDoiI2Q5Zjk5ZCIsMzAwOiIjYmVmMjY0Iiw0MDA6IiNhM2U2MzUiLDUwMDoiIzg0Y2MxNiIsNjAwOiIjNjVhMzBkIiw3MDA6IiM0ZDdjMGYiLDgwMDoiIzNmNjIxMiIsOTAwOiIjMzY1MzE0Iiw5NTA6IiMxYTJlMDUifSxncmVlbjp7NTA6IiNmMGZkZjQiLDEwMDoiI2RjZmNlNyIsMjAwOiIjYmJmN2QwIiwzMDA6IiM4NmVmYWMiLDQwMDoiIzRhZGU4MCIsNTAwOiIjMjJjNTVlIiw2MDA6IiMxNmEzNGEiLDcwMDoiIzE1ODAzZCIsODAwOiIjMTY2NTM0Iiw5MDA6IiMxNDUzMmQiLDk1MDoiIzA1MmUxNiJ9LGVtZXJhbGQ6ezUwOiIjZWNmZGY1IiwxMDA6IiNkMWZhZTUiLDIwMDoiI2E3ZjNkMCIsMzAwOiIjNmVlN2I3Iiw0MDA6IiMzNGQzOTkiLDUwMDoiIzEwYjk4MSIsNjAwOiIjMDU5NjY5Iiw3MDA6IiMwNDc4NTciLDgwMDoiIzA2NWY0NiIsOTAwOiIjMDY0ZTNiIiw5NTA6IiMwMjJjMjIifSx0ZWFsOns1MDoiI2YwZmRmYSIsMTAwOiIjY2NmYmYxIiwyMDA6IiM5OWY2ZTQiLDMwMDoiIzVlZWFkNCIsNDAwOiIjMmRkNGJmIiw1MDA6IiMxNGI4YTYiLDYwMDoiIzBkOTQ4OCIsNzAwOiIjMGY3NjZlIiw4MDA6IiMxMTVlNTkiLDkwMDoiIzEzNGU0YSIsOTUwOiIjMDQyZjJlIn0sY3lhbjp7NTA6IiNlY2ZlZmYiLDEwMDoiI2NmZmFmZSIsMjAwOiIjYTVmM2ZjIiwzMDA6IiM2N2U4ZjkiLDQwMDoiIzIyZDNlZSIsNTAwOiIjMDZiNmQ0Iiw2MDA6IiMwODkxYjIiLDcwMDoiIzBlNzQ5MCIsODAwOiIjMTU1ZTc1Iiw5MDA6IiMxNjRlNjMiLDk1MDoiIzA4MzM0NCJ9LHNreTp7NTA6IiNmMGY5ZmYiLDEwMDoiI2UwZjJmZSIsMjAwOiIjYmFlNmZkIiwzMDA6IiM3ZGQzZmMiLDQwMDoiIzM4YmRmOCIsNTAwOiIjMGVhNWU5Iiw2MDA6IiMwMjg0YzciLDcwMDoiIzAzNjlhMSIsODAwOiIjMDc1OTg1Iiw5MDA6IiMwYzRhNmUiLDk1MDoiIzA4MmY0OSJ9LGJsdWU6ezUwOiIjZWZmNmZmIiwxMDA6IiNkYmVhZmUiLDIwMDoiI2JmZGJmZSIsMzAwOiIjOTNjNWZkIiw0MDA6IiM2MGE1ZmEiLDUwMDoiIzNiODJmNiIsNjAwOiIjMjU2M2ViIiw3MDA6IiMxZDRlZDgiLDgwMDoiIzFlNDBhZiIsOTAwOiIjMWUzYThhIiw5NTA6IiMxNzI1NTQifSxpbmRpZ286ezUwOiIjZWVmMmZmIiwxMDA6IiNlMGU3ZmYiLDIwMDoiI2M3ZDJmZSIsMzAwOiIjYTViNGZjIiw0MDA6IiM4MThjZjgiLDUwMDoiIzYzNjZmMSIsNjAwOiIjNGY0NmU1Iiw3MDA6IiM0MzM4Y2EiLDgwMDoiIzM3MzBhMyIsOTAwOiIjMzEyZTgxIiw5NTA6IiMxZTFiNGIifSx2aW9sZXQ6ezUwOiIjZjVmM2ZmIiwxMDA6IiNlZGU5ZmUiLDIwMDoiI2RkZDZmZSIsMzAwOiIjYzRiNWZkIiw0MDA6IiNhNzhiZmEiLDUwMDoiIzhiNWNmNiIsNjAwOiIjN2MzYWVkIiw3MDA6IiM2ZDI4ZDkiLDgwMDoiIzViMjFiNiIsOTAwOiIjNGMxZDk1Iiw5NTA6IiMyZTEwNjUifSxwdXJwbGU6ezUwOiIjZmFmNWZmIiwxMDA6IiNmM2U4ZmYiLDIwMDoiI2U5ZDVmZiIsMzAwOiIjZDhiNGZlIiw0MDA6IiNjMDg0ZmMiLDUwMDoiI2E4NTVmNyIsNjAwOiIjOTMzM2VhIiw3MDA6IiM3ZTIyY2UiLDgwMDoiIzZiMjFhOCIsOTAwOiIjNTgxYzg3Iiw5NTA6IiMzYjA3NjQifSxmdWNoc2lhOns1MDoiI2ZkZjRmZiIsMTAwOiIjZmFlOGZmIiwyMDA6IiNmNWQwZmUiLDMwMDoiI2YwYWJmYyIsNDAwOiIjZTg3OWY5Iiw1MDA6IiNkOTQ2ZWYiLDYwMDoiI2MwMjZkMyIsNzAwOiIjYTIxY2FmIiw4MDA6IiM4NjE5OGYiLDkwMDoiIzcwMWE3NSIsOTUwOiIjNGEwNDRlIn0scGluazp7NTA6IiNmZGYyZjgiLDEwMDoiI2ZjZTdmMyIsMjAwOiIjZmJjZmU4IiwzMDA6IiNmOWE4ZDQiLDQwMDoiI2Y0NzJiNiIsNTAwOiIjZWM0ODk5Iiw2MDA6IiNkYjI3NzciLDcwMDoiI2JlMTg1ZCIsODAwOiIjOWQxNzRkIiw5MDA6IiM4MzE4NDMiLDk1MDoiIzUwMDcyNCJ9LHJvc2U6ezUwOiIjZmZmMWYyIiwxMDA6IiNmZmU0ZTYiLDIwMDoiI2ZlY2RkMyIsMzAwOiIjZmRhNGFmIiw0MDA6IiNmYjcxODUiLDUwMDoiI2Y0M2Y1ZSIsNjAwOiIjZTExZDQ4Iiw3MDA6IiNiZTEyM2MiLDgwMDoiIzlmMTIzOSIsOTAwOiIjODgxMzM3Iiw5NTA6IiM0YzA1MTkifSxnZXQgbGlnaHRCbHVlKCl7cmV0dXJuIHFyKHt2ZXJzaW9uOiJ2Mi4yIixmcm9tOiJsaWdodEJsdWUiLHRvOiJza3kifSksdGhpcy5za3l9LGdldCB3YXJtR3JheSgpe3JldHVybiBxcih7dmVyc2lvbjoidjMuMCIsZnJvbToid2FybUdyYXkiLHRvOiJzdG9uZSJ9KSx0aGlzLnN0b25lfSxnZXQgdHJ1ZUdyYXkoKXtyZXR1cm4gcXIoe3ZlcnNpb246InYzLjAiLGZyb206InRydWVHcmF5Iix0bzoibmV1dHJhbCJ9KSx0aGlzLm5ldXRyYWx9LGdldCBjb29sR3JheSgpe3JldHVybiBxcih7dmVyc2lvbjoidjMuMCIsZnJvbToiY29vbEdyYXkiLHRvOiJncmF5In0pLHRoaXMuZ3JheX0sZ2V0IGJsdWVHcmF5KCl7cmV0dXJuIHFyKHt2ZXJzaW9uOiJ2My4wIixmcm9tOiJibHVlR3JheSIsdG86InNsYXRlIn0pLHRoaXMuc2xhdGV9fX0pO2Z1bmN0aW9uIEhzKHIsLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2ZvcihsZXQgaSBpbiB0KXI/Lmhhc093blByb3BlcnR5Py4oaSl8fChyW2ldPXRbaV0pO2ZvcihsZXQgaSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpKXI/Lmhhc093blByb3BlcnR5Py4oaSl8fChyW2ldPXRbaV0pfXJldHVybiByfXZhciBFZj1QKCgpPT57dSgpfSk7ZnVuY3Rpb24ga3Qocil7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gcjtsZXQgZT1yLnNwbGl0KCJbIikubGVuZ3RoLTEsdD1yLnNwbGl0KCJdIikubGVuZ3RoLTE7aWYoZSE9PXQpdGhyb3cgbmV3IEVycm9yKGBQYXRoIGlzIGludmFsaWQuIEhhcyB1bmJhbGFuY2VkIGJyYWNrZXRzOiAke3J9YCk7cmV0dXJuIHIuc3BsaXQoL1wuKD8hW15cW10qXF0pfFtcW1xdXS9nKS5maWx0ZXIoQm9vbGVhbil9dmFyIFlpPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiB3ZShyLGUpe3JldHVybiBLaS5mdXR1cmUuaW5jbHVkZXMoZSk/ci5mdXR1cmU9PT0iYWxsInx8KHI/LmZ1dHVyZT8uW2VdPz9PZltlXT8/ITEpOktpLmV4cGVyaW1lbnRhbC5pbmNsdWRlcyhlKT9yLmV4cGVyaW1lbnRhbD09PSJhbGwifHwocj8uZXhwZXJpbWVudGFsPy5bZV0/P09mW2VdPz8hMSk6ITF9ZnVuY3Rpb24gVGYocil7cmV0dXJuIHIuZXhwZXJpbWVudGFsPT09ImFsbCI/S2kuZXhwZXJpbWVudGFsOk9iamVjdC5rZXlzKHI/LmV4cGVyaW1lbnRhbD8/e30pLmZpbHRlcihlPT5LaS5leHBlcmltZW50YWwuaW5jbHVkZXMoZSkmJnIuZXhwZXJpbWVudGFsW2VdKX1mdW5jdGlvbiBSZihyKXtpZihtLmVudi5KRVNUX1dPUktFUl9JRD09PXZvaWQgMCYmVGYocikubGVuZ3RoPjApe2xldCBlPVRmKHIpLm1hcCh0PT5RZS55ZWxsb3codCkpLmpvaW4oIiwgIik7Ry53YXJuKCJleHBlcmltZW50YWwtZmxhZ3MtZW5hYmxlZCIsW2BZb3UgaGF2ZSBlbmFibGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlczogJHtlfWAsIkV4cGVyaW1lbnRhbCBmZWF0dXJlcyBpbiBUYWlsd2luZCBDU1MgYXJlIG5vdCBjb3ZlcmVkIGJ5IHNlbXZlciwgbWF5IGludHJvZHVjZSBicmVha2luZyBjaGFuZ2VzLCBhbmQgY2FuIGNoYW5nZSBhdCBhbnkgdGltZS4iXSl9fXZhciBPZixLaSxjdD1QKCgpPT57dSgpO1FpKCk7QmUoKTtPZj17b3B0aW1pemVVbml2ZXJzYWxEZWZhdWx0czohMSxnZW5lcmFsaXplZE1vZGlmaWVyczohMCxkaXNhYmxlQ29sb3JPcGFjaXR5VXRpbGl0aWVzQnlEZWZhdWx0OiExLHJlbGF0aXZlQ29udGVudFBhdGhzQnlEZWZhdWx0OiExfSxLaT17ZnV0dXJlOlsiaG92ZXJPbmx5V2hlblN1cHBvcnRlZCIsInJlc3BlY3REZWZhdWx0UmluZ0NvbG9yT3BhY2l0eSIsImRpc2FibGVDb2xvck9wYWNpdHlVdGlsaXRpZXNCeURlZmF1bHQiLCJyZWxhdGl2ZUNvbnRlbnRQYXRoc0J5RGVmYXVsdCJdLGV4cGVyaW1lbnRhbDpbIm9wdGltaXplVW5pdmVyc2FsRGVmYXVsdHMiLCJnZW5lcmFsaXplZE1vZGlmaWVycyJdfX0pO2Z1bmN0aW9uIFBmKHIpeygoKT0+e2lmKHIucHVyZ2V8fCFyLmNvbnRlbnR8fCFBcnJheS5pc0FycmF5KHIuY29udGVudCkmJiEodHlwZW9mIHIuY29udGVudD09Im9iamVjdCImJnIuY29udGVudCE9PW51bGwpKXJldHVybiExO2lmKEFycmF5LmlzQXJyYXkoci5jb250ZW50KSlyZXR1cm4gci5jb250ZW50LmV2ZXJ5KHQ9PnR5cGVvZiB0PT0ic3RyaW5nIj8hMDohKHR5cGVvZiB0Py5yYXchPSJzdHJpbmcifHx0Py5leHRlbnNpb24mJnR5cGVvZiB0Py5leHRlbnNpb24hPSJzdHJpbmciKSk7aWYodHlwZW9mIHIuY29udGVudD09Im9iamVjdCImJnIuY29udGVudCE9PW51bGwpe2lmKE9iamVjdC5rZXlzKHIuY29udGVudCkuc29tZSh0PT4hWyJmaWxlcyIsInJlbGF0aXZlIiwiZXh0cmFjdCIsInRyYW5zZm9ybSJdLmluY2x1ZGVzKHQpKSlyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KHIuY29udGVudC5maWxlcykpe2lmKCFyLmNvbnRlbnQuZmlsZXMuZXZlcnkodD0+dHlwZW9mIHQ9PSJzdHJpbmciPyEwOiEodHlwZW9mIHQ/LnJhdyE9InN0cmluZyJ8fHQ/LmV4dGVuc2lvbiYmdHlwZW9mIHQ/LmV4dGVuc2lvbiE9InN0cmluZyIpKSlyZXR1cm4hMTtpZih0eXBlb2Ygci5jb250ZW50LmV4dHJhY3Q9PSJvYmplY3QiKXtmb3IobGV0IHQgb2YgT2JqZWN0LnZhbHVlcyhyLmNvbnRlbnQuZXh0cmFjdCkpaWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuITF9ZWxzZSBpZighKHIuY29udGVudC5leHRyYWN0PT09dm9pZCAwfHx0eXBlb2Ygci5jb250ZW50LmV4dHJhY3Q9PSJmdW5jdGlvbiIpKXJldHVybiExO2lmKHR5cGVvZiByLmNvbnRlbnQudHJhbnNmb3JtPT0ib2JqZWN0Iil7Zm9yKGxldCB0IG9mIE9iamVjdC52YWx1ZXMoci5jb250ZW50LnRyYW5zZm9ybSkpaWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpcmV0dXJuITF9ZWxzZSBpZighKHIuY29udGVudC50cmFuc2Zvcm09PT12b2lkIDB8fHR5cGVvZiByLmNvbnRlbnQudHJhbnNmb3JtPT0iZnVuY3Rpb24iKSlyZXR1cm4hMTtpZih0eXBlb2Ygci5jb250ZW50LnJlbGF0aXZlIT0iYm9vbGVhbiImJnR5cGVvZiByLmNvbnRlbnQucmVsYXRpdmUhPSJ1bmRlZmluZWQiKXJldHVybiExfXJldHVybiEwfXJldHVybiExfSkoKXx8Ry53YXJuKCJwdXJnZS1kZXByZWNhdGlvbiIsWyJUaGUgYHB1cmdlYC9gY29udGVudGAgb3B0aW9ucyBoYXZlIGNoYW5nZWQgaW4gVGFpbHdpbmQgQ1NTIHYzLjAuIiwiVXBkYXRlIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlIHRvIGVsaW1pbmF0ZSB0aGlzIHdhcm5pbmcuIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91cGdyYWRlLWd1aWRlI2NvbmZpZ3VyZS1jb250ZW50LXNvdXJjZXMiXSksci5zYWZlbGlzdD0oKCk9PntsZXR7Y29udGVudDp0LHB1cmdlOmksc2FmZWxpc3Q6bn09cjtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOkFycmF5LmlzQXJyYXkodD8uc2FmZWxpc3QpP3Quc2FmZWxpc3Q6QXJyYXkuaXNBcnJheShpPy5zYWZlbGlzdCk/aS5zYWZlbGlzdDpBcnJheS5pc0FycmF5KGk/Lm9wdGlvbnM/LnNhZmVsaXN0KT9pLm9wdGlvbnMuc2FmZWxpc3Q6W119KSgpLHIuYmxvY2tsaXN0PSgoKT0+e2xldHtibG9ja2xpc3Q6dH09cjtpZihBcnJheS5pc0FycmF5KHQpKXtpZih0LmV2ZXJ5KGk9PnR5cGVvZiBpPT0ic3RyaW5nIikpcmV0dXJuIHQ7Ry53YXJuKCJibG9ja2xpc3QtaW52YWxpZCIsWyJUaGUgYGJsb2NrbGlzdGAgb3B0aW9uIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncy4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnQtY29uZmlndXJhdGlvbiNkaXNjYXJkaW5nLWNsYXNzZXMiXSl9cmV0dXJuW119KSgpLHR5cGVvZiByLnByZWZpeD09ImZ1bmN0aW9uIj8oRy53YXJuKCJwcmVmaXgtZnVuY3Rpb24iLFsiQXMgb2YgVGFpbHdpbmQgQ1NTIHYzLjAsIGBwcmVmaXhgIGNhbm5vdCBiZSBhIGZ1bmN0aW9uLiIsIlVwZGF0ZSBgcHJlZml4YCBpbiB5b3VyIGNvbmZpZ3VyYXRpb24gdG8gYmUgYSBzdHJpbmcgdG8gZWxpbWluYXRlIHRoaXMgd2FybmluZy4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjcHJlZml4LWNhbm5vdC1iZS1hLWZ1bmN0aW9uIl0pLHIucHJlZml4PSIiKTpyLnByZWZpeD1yLnByZWZpeD8/IiIsci5jb250ZW50PXtyZWxhdGl2ZTooKCk9PntsZXR7Y29udGVudDp0fT1yO3JldHVybiB0Py5yZWxhdGl2ZT90LnJlbGF0aXZlOndlKHIsInJlbGF0aXZlQ29udGVudFBhdGhzQnlEZWZhdWx0Iil9KSgpLGZpbGVzOigoKT0+e2xldHtjb250ZW50OnQscHVyZ2U6aX09cjtyZXR1cm4gQXJyYXkuaXNBcnJheShpKT9pOkFycmF5LmlzQXJyYXkoaT8uY29udGVudCk/aS5jb250ZW50OkFycmF5LmlzQXJyYXkodCk/dDpBcnJheS5pc0FycmF5KHQ/LmNvbnRlbnQpP3QuY29udGVudDpBcnJheS5pc0FycmF5KHQ/LmZpbGVzKT90LmZpbGVzOltdfSkoKSxleHRyYWN0OigoKT0+e2xldCB0PSgoKT0+ci5wdXJnZT8uZXh0cmFjdD9yLnB1cmdlLmV4dHJhY3Q6ci5jb250ZW50Py5leHRyYWN0P3IuY29udGVudC5leHRyYWN0OnIucHVyZ2U/LmV4dHJhY3Q/LkRFRkFVTFQ/ci5wdXJnZS5leHRyYWN0LkRFRkFVTFQ6ci5jb250ZW50Py5leHRyYWN0Py5ERUZBVUxUP3IuY29udGVudC5leHRyYWN0LkRFRkFVTFQ6ci5wdXJnZT8ub3B0aW9ucz8uZXh0cmFjdG9ycz9yLnB1cmdlLm9wdGlvbnMuZXh0cmFjdG9yczpyLmNvbnRlbnQ/Lm9wdGlvbnM/LmV4dHJhY3RvcnM/ci5jb250ZW50Lm9wdGlvbnMuZXh0cmFjdG9yczp7fSkoKSxpPXt9LG49KCgpPT57aWYoci5wdXJnZT8ub3B0aW9ucz8uZGVmYXVsdEV4dHJhY3RvcilyZXR1cm4gci5wdXJnZS5vcHRpb25zLmRlZmF1bHRFeHRyYWN0b3I7aWYoci5jb250ZW50Py5vcHRpb25zPy5kZWZhdWx0RXh0cmFjdG9yKXJldHVybiByLmNvbnRlbnQub3B0aW9ucy5kZWZhdWx0RXh0cmFjdG9yfSkoKTtpZihuIT09dm9pZCAwJiYoaS5ERUZBVUxUPW4pLHR5cGVvZiB0PT0iZnVuY3Rpb24iKWkuREVGQVVMVD10O2Vsc2UgaWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0e2V4dGVuc2lvbnM6cyxleHRyYWN0b3I6YX1vZiB0Pz9bXSlmb3IobGV0IG8gb2YgcylpW29dPWE7ZWxzZSB0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZPYmplY3QuYXNzaWduKGksdCk7cmV0dXJuIGl9KSgpLHRyYW5zZm9ybTooKCk9PntsZXQgdD0oKCk9PnIucHVyZ2U/LnRyYW5zZm9ybT9yLnB1cmdlLnRyYW5zZm9ybTpyLmNvbnRlbnQ/LnRyYW5zZm9ybT9yLmNvbnRlbnQudHJhbnNmb3JtOnIucHVyZ2U/LnRyYW5zZm9ybT8uREVGQVVMVD9yLnB1cmdlLnRyYW5zZm9ybS5ERUZBVUxUOnIuY29udGVudD8udHJhbnNmb3JtPy5ERUZBVUxUP3IuY29udGVudC50cmFuc2Zvcm0uREVGQVVMVDp7fSkoKSxpPXt9O3JldHVybiB0eXBlb2YgdD09ImZ1bmN0aW9uIj9pLkRFRkFVTFQ9dDp0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZPYmplY3QuYXNzaWduKGksdCksaX0pKCl9O2ZvcihsZXQgdCBvZiByLmNvbnRlbnQuZmlsZXMpaWYodHlwZW9mIHQ9PSJzdHJpbmciJiYveyhbXixdKj8pfS9nLnRlc3QodCkpe0cud2FybigiaW52YWxpZC1nbG9iLWJyYWNlcyIsW2BUaGUgZ2xvYiBwYXR0ZXJuICR7enModCl9IGluIHlvdXIgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC5gLGBVcGRhdGUgaXQgdG8gJHt6cyh0LnJlcGxhY2UoL3soW14sXSo/KX0vZywiJDEiKSl9IHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLmBdKTticmVha31yZXR1cm4gcn12YXIgSWY9UCgoKT0+e3UoKTtjdCgpO0JlKCl9KTtmdW5jdGlvbiBrZShyKXtpZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocikhPT0iW29iamVjdCBPYmplY3RdIilyZXR1cm4hMTtsZXQgZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yocik7cmV0dXJuIGU9PT1udWxsfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsfXZhciBLdD1QKCgpPT57dSgpfSk7ZnVuY3Rpb24gU3Qocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5tYXAoZT0+U3QoZSkpOnR5cGVvZiByPT0ib2JqZWN0IiYmciE9PW51bGw/T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW2UsdF0pPT5bZSxTdCh0KV0pKTpyfXZhciBYaT1QKCgpPT57dSgpfSk7ZnVuY3Rpb24ganQocil7cmV0dXJuIHIucmVwbGFjZSgvXFwsL2csIlxcMmMgIil9dmFyIFppPVAoKCk9Pnt1KCl9KTt2YXIgV3MsRGY9UCgoKT0+e3UoKTtXcz17YWxpY2VibHVlOlsyNDAsMjQ4LDI1NV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNV0sYXF1YTpbMCwyNTUsMjU1XSxhcXVhbWFyaW5lOlsxMjcsMjU1LDIxMl0sYXp1cmU6WzI0MCwyNTUsMjU1XSxiZWlnZTpbMjQ1LDI0NSwyMjBdLGJpc3F1ZTpbMjU1LDIyOCwxOTZdLGJsYWNrOlswLDAsMF0sYmxhbmNoZWRhbG1vbmQ6WzI1NSwyMzUsMjA1XSxibHVlOlswLDAsMjU1XSxibHVldmlvbGV0OlsxMzgsNDMsMjI2XSxicm93bjpbMTY1LDQyLDQyXSxidXJseXdvb2Q6WzIyMiwxODQsMTM1XSxjYWRldGJsdWU6Wzk1LDE1OCwxNjBdLGNoYXJ0cmV1c2U6WzEyNywyNTUsMF0sY2hvY29sYXRlOlsyMTAsMTA1LDMwXSxjb3JhbDpbMjU1LDEyNyw4MF0sY29ybmZsb3dlcmJsdWU6WzEwMCwxNDksMjM3XSxjb3Juc2lsazpbMjU1LDI0OCwyMjBdLGNyaW1zb246WzIyMCwyMCw2MF0sY3lhbjpbMCwyNTUsMjU1XSxkYXJrYmx1ZTpbMCwwLDEzOV0sZGFya2N5YW46WzAsMTM5LDEzOV0sZGFya2dvbGRlbnJvZDpbMTg0LDEzNCwxMV0sZGFya2dyYXk6WzE2OSwxNjksMTY5XSxkYXJrZ3JlZW46WzAsMTAwLDBdLGRhcmtncmV5OlsxNjksMTY5LDE2OV0sZGFya2toYWtpOlsxODksMTgzLDEwN10sZGFya21hZ2VudGE6WzEzOSwwLDEzOV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0N10sZGFya29yYW5nZTpbMjU1LDE0MCwwXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0XSxkYXJrcmVkOlsxMzksMCwwXSxkYXJrc2FsbW9uOlsyMzMsMTUwLDEyMl0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0M10sZGFya3NsYXRlYmx1ZTpbNzIsNjEsMTM5XSxkYXJrc2xhdGVncmF5Ols0Nyw3OSw3OV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzldLGRhcmt0dXJxdW9pc2U6WzAsMjA2LDIwOV0sZGFya3Zpb2xldDpbMTQ4LDAsMjExXSxkZWVwcGluazpbMjU1LDIwLDE0N10sZGVlcHNreWJsdWU6WzAsMTkxLDI1NV0sZGltZ3JheTpbMTA1LDEwNSwxMDVdLGRpbWdyZXk6WzEwNSwxMDUsMTA1XSxkb2RnZXJibHVlOlszMCwxNDQsMjU1XSxmaXJlYnJpY2s6WzE3OCwzNCwzNF0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwXSxmb3Jlc3RncmVlbjpbMzQsMTM5LDM0XSxmdWNoc2lhOlsyNTUsMCwyNTVdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjBdLGdob3N0d2hpdGU6WzI0OCwyNDgsMjU1XSxnb2xkOlsyNTUsMjE1LDBdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMl0sZ3JheTpbMTI4LDEyOCwxMjhdLGdyZWVuOlswLDEyOCwwXSxncmVlbnllbGxvdzpbMTczLDI1NSw0N10sZ3JleTpbMTI4LDEyOCwxMjhdLGhvbmV5ZGV3OlsyNDAsMjU1LDI0MF0saG90cGluazpbMjU1LDEwNSwxODBdLGluZGlhbnJlZDpbMjA1LDkyLDkyXSxpbmRpZ286Wzc1LDAsMTMwXSxpdm9yeTpbMjU1LDI1NSwyNDBdLGtoYWtpOlsyNDAsMjMwLDE0MF0sbGF2ZW5kZXI6WzIzMCwyMzAsMjUwXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NV0sbGF3bmdyZWVuOlsxMjQsMjUyLDBdLGxlbW9uY2hpZmZvbjpbMjU1LDI1MCwyMDVdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzBdLGxpZ2h0Y29yYWw6WzI0MCwxMjgsMTI4XSxsaWdodGN5YW46WzIyNCwyNTUsMjU1XSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTBdLGxpZ2h0Z3JheTpbMjExLDIxMSwyMTFdLGxpZ2h0Z3JlZW46WzE0NCwyMzgsMTQ0XSxsaWdodGdyZXk6WzIxMSwyMTEsMjExXSxsaWdodHBpbms6WzI1NSwxODIsMTkzXSxsaWdodHNhbG1vbjpbMjU1LDE2MCwxMjJdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzBdLGxpZ2h0c2t5Ymx1ZTpbMTM1LDIwNiwyNTBdLGxpZ2h0c2xhdGVncmF5OlsxMTksMTM2LDE1M10sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzXSxsaWdodHN0ZWVsYmx1ZTpbMTc2LDE5NiwyMjJdLGxpZ2h0eWVsbG93OlsyNTUsMjU1LDIyNF0sbGltZTpbMCwyNTUsMF0sbGltZWdyZWVuOls1MCwyMDUsNTBdLGxpbmVuOlsyNTAsMjQwLDIzMF0sbWFnZW50YTpbMjU1LDAsMjU1XSxtYXJvb246WzEyOCwwLDBdLG1lZGl1bWFxdWFtYXJpbmU6WzEwMiwyMDUsMTcwXSxtZWRpdW1ibHVlOlswLDAsMjA1XSxtZWRpdW1vcmNoaWQ6WzE4Niw4NSwyMTFdLG1lZGl1bXB1cnBsZTpbMTQ3LDExMiwyMTldLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzXSxtZWRpdW1zbGF0ZWJsdWU6WzEyMywxMDQsMjM4XSxtZWRpdW1zcHJpbmdncmVlbjpbMCwyNTAsMTU0XSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDRdLG1lZGl1bXZpb2xldHJlZDpbMTk5LDIxLDEzM10sbWlkbmlnaHRibHVlOlsyNSwyNSwxMTJdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTBdLG1pc3R5cm9zZTpbMjU1LDIyOCwyMjVdLG1vY2Nhc2luOlsyNTUsMjI4LDE4MV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczXSxuYXZ5OlswLDAsMTI4XSxvbGRsYWNlOlsyNTMsMjQ1LDIzMF0sb2xpdmU6WzEyOCwxMjgsMF0sb2xpdmVkcmFiOlsxMDcsMTQyLDM1XSxvcmFuZ2U6WzI1NSwxNjUsMF0sb3JhbmdlcmVkOlsyNTUsNjksMF0sb3JjaGlkOlsyMTgsMTEyLDIxNF0scGFsZWdvbGRlbnJvZDpbMjM4LDIzMiwxNzBdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTJdLHBhbGV0dXJxdW9pc2U6WzE3NSwyMzgsMjM4XSxwYWxldmlvbGV0cmVkOlsyMTksMTEyLDE0N10scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTNdLHBlYWNocHVmZjpbMjU1LDIxOCwxODVdLHBlcnU6WzIwNSwxMzMsNjNdLHBpbms6WzI1NSwxOTIsMjAzXSxwbHVtOlsyMjEsMTYwLDIyMV0scG93ZGVyYmx1ZTpbMTc2LDIyNCwyMzBdLHB1cnBsZTpbMTI4LDAsMTI4XSxyZWJlY2NhcHVycGxlOlsxMDIsNTEsMTUzXSxyZWQ6WzI1NSwwLDBdLHJvc3licm93bjpbMTg4LDE0MywxNDNdLHJveWFsYmx1ZTpbNjUsMTA1LDIyNV0sc2FkZGxlYnJvd246WzEzOSw2OSwxOV0sc2FsbW9uOlsyNTAsMTI4LDExNF0sc2FuZHlicm93bjpbMjQ0LDE2NCw5Nl0sc2VhZ3JlZW46WzQ2LDEzOSw4N10sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4XSxzaWVubmE6WzE2MCw4Miw0NV0sc2lsdmVyOlsxOTIsMTkyLDE5Ml0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzVdLHNsYXRlYmx1ZTpbMTA2LDkwLDIwNV0sc2xhdGVncmF5OlsxMTIsMTI4LDE0NF0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NF0sc25vdzpbMjU1LDI1MCwyNTBdLHNwcmluZ2dyZWVuOlswLDI1NSwxMjddLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MF0sdGFuOlsyMTAsMTgwLDE0MF0sdGVhbDpbMCwxMjgsMTI4XSx0aGlzdGxlOlsyMTYsMTkxLDIxNl0sdG9tYXRvOlsyNTUsOTksNzFdLHR1cnF1b2lzZTpbNjQsMjI0LDIwOF0sdmlvbGV0OlsyMzgsMTMwLDIzOF0sd2hlYXQ6WzI0NSwyMjIsMTc5XSx3aGl0ZTpbMjU1LDI1NSwyNTVdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1XSx5ZWxsb3c6WzI1NSwyNTUsMF0seWVsbG93Z3JlZW46WzE1NCwyMDUsNTBdfX0pO2Z1bmN0aW9uICRyKHIse2xvb3NlOmU9ITF9PXt9KXtpZih0eXBlb2YgciE9InN0cmluZyIpcmV0dXJuIG51bGw7aWYocj1yLnRyaW0oKSxyPT09InRyYW5zcGFyZW50IilyZXR1cm57bW9kZToicmdiIixjb2xvcjpbIjAiLCIwIiwiMCJdLGFscGhhOiIwIn07aWYociBpbiBXcylyZXR1cm57bW9kZToicmdiIixjb2xvcjpXc1tyXS5tYXAocz0+cy50b1N0cmluZygpKX07bGV0IHQ9ci5yZXBsYWNlKHp2LChzLGEsbyxsLGMpPT5bIiMiLGEsYSxvLG8sbCxsLGM/YytjOiIiXS5qb2luKCIiKSkubWF0Y2goanYpO2lmKHQhPT1udWxsKXJldHVybnttb2RlOiJyZ2IiLGNvbG9yOltwYXJzZUludCh0WzFdLDE2KSxwYXJzZUludCh0WzJdLDE2KSxwYXJzZUludCh0WzNdLDE2KV0ubWFwKHM9PnMudG9TdHJpbmcoKSksYWxwaGE6dFs0XT8ocGFyc2VJbnQodFs0XSwxNikvMjU1KS50b1N0cmluZygpOnZvaWQgMH07bGV0IGk9ci5tYXRjaChVdik/P3IubWF0Y2goVnYpO2lmKGk9PT1udWxsKXJldHVybiBudWxsO2xldCBuPVtpWzJdLGlbM10saVs0XV0uZmlsdGVyKEJvb2xlYW4pLm1hcChzPT5zLnRvU3RyaW5nKCkpO3JldHVybiBuLmxlbmd0aD09PTImJm5bMF0uc3RhcnRzV2l0aCgidmFyKCIpP3ttb2RlOmlbMV0sY29sb3I6W25bMF1dLGFscGhhOm5bMV19OiFlJiZuLmxlbmd0aCE9PTN8fG4ubGVuZ3RoPDMmJiFuLnNvbWUocz0+L152YXJcKC4qP1wpJC8udGVzdChzKSk/bnVsbDp7bW9kZTppWzFdLGNvbG9yOm4sYWxwaGE6aVs1XT8udG9TdHJpbmc/LigpfX1mdW5jdGlvbiBHcyh7bW9kZTpyLGNvbG9yOmUsYWxwaGE6dH0pe2xldCBpPXQhPT12b2lkIDA7cmV0dXJuIHI9PT0icmdiYSJ8fHI9PT0iaHNsYSI/YCR7cn0oJHtlLmpvaW4oIiwgIil9JHtpP2AsICR7dH1gOiIifSlgOmAke3J9KCR7ZS5qb2luKCIgIil9JHtpP2AgLyAke3R9YDoiIn0pYH12YXIganYsenYsQXQsSmkscWYsQ3QsVXYsVnYsUXM9UCgoKT0+e3UoKTtEZigpO2p2PS9eIyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KT8kL2ksenY9L14jKFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pKFthLWZcZF0pPyQvaSxBdD0vKD86XGQrfFxkKlwuXGQrKSU/LyxKaT0vKD86XHMqLFxzKnxccyspLyxxZj0vXHMqWywvXVxzKi8sQ3Q9L3ZhclwoLS0oPzpbXiApXSo/KSg/OiwoPzpbXiApXSo/fHZhclwoLS1bXiApXSo/XCkpKT9cKS8sVXY9bmV3IFJlZ0V4cChgXihyZ2JhPylcXChcXHMqKCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKD86JHtKaS5zb3VyY2V9KCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKT8oPzoke0ppLnNvdXJjZX0oJHtBdC5zb3VyY2V9fCR7Q3Quc291cmNlfSkpPyg/OiR7cWYuc291cmNlfSgke0F0LnNvdXJjZX18JHtDdC5zb3VyY2V9KSk/XFxzKlxcKSRgKSxWdj1uZXcgUmVnRXhwKGBeKGhzbGE/KVxcKFxccyooKD86JHtBdC5zb3VyY2V9KSg/OmRlZ3xyYWR8Z3JhZHx0dXJuKT98JHtDdC5zb3VyY2V9KSg/OiR7Smkuc291cmNlfSgke0F0LnNvdXJjZX18JHtDdC5zb3VyY2V9KSk/KD86JHtKaS5zb3VyY2V9KCR7QXQuc291cmNlfXwke0N0LnNvdXJjZX0pKT8oPzoke3FmLnNvdXJjZX0oJHtBdC5zb3VyY2V9fCR7Q3Quc291cmNlfSkpP1xccypcXCkkYCl9KTtmdW5jdGlvbiBKZShyLGUsdCl7aWYodHlwZW9mIHI9PSJmdW5jdGlvbiIpcmV0dXJuIHIoe29wYWNpdHlWYWx1ZTplfSk7bGV0IGk9JHIocix7bG9vc2U6ITB9KTtyZXR1cm4gaT09PW51bGw/dDpHcyh7Li4uaSxhbHBoYTplfSl9ZnVuY3Rpb24gQWUoe2NvbG9yOnIscHJvcGVydHk6ZSx2YXJpYWJsZTp0fSl7bGV0IGk9W10uY29uY2F0KGUpO2lmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXJldHVybntbdF06IjEiLC4uLk9iamVjdC5mcm9tRW50cmllcyhpLm1hcChzPT5bcyxyKHtvcGFjaXR5VmFyaWFibGU6dCxvcGFjaXR5VmFsdWU6YHZhcigke3R9LCAxKWB9KV0pKX07bGV0IG49JHIocik7cmV0dXJuIG49PT1udWxsP09iamVjdC5mcm9tRW50cmllcyhpLm1hcChzPT5bcyxyXSkpOm4uYWxwaGEhPT12b2lkIDA/T2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKHM9PltzLHJdKSk6e1t0XToiMSIsLi4uT2JqZWN0LmZyb21FbnRyaWVzKGkubWFwKHM9PltzLEdzKHsuLi5uLGFscGhhOmB2YXIoJHt0fSwgMSlgfSldKSl9fXZhciBMcj1QKCgpPT57dSgpO1FzKCl9KTtmdW5jdGlvbiB2ZShyLGUpe2xldCB0PVtdLGk9W10sbj0wLHM9ITE7Zm9yKGxldCBhPTA7YTxyLmxlbmd0aDthKyspe2xldCBvPXJbYV07dC5sZW5ndGg9PT0wJiZvPT09ZVswXSYmIXMmJihlLmxlbmd0aD09PTF8fHIuc2xpY2UoYSxhK2UubGVuZ3RoKT09PWUpJiYoaS5wdXNoKHIuc2xpY2UobixhKSksbj1hK2UubGVuZ3RoKSxzPXM/ITE6bz09PSJcXCIsbz09PSIoInx8bz09PSJbInx8bz09PSJ7Ij90LnB1c2gobyk6KG89PT0iKSImJnRbdC5sZW5ndGgtMV09PT0iKCJ8fG89PT0iXSImJnRbdC5sZW5ndGgtMV09PT0iWyJ8fG89PT0ifSImJnRbdC5sZW5ndGgtMV09PT0ieyIpJiZ0LnBvcCgpfXJldHVybiBpLnB1c2goci5zbGljZShuKSksaX12YXIgenQ9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIGVuKHIpe3JldHVybiB2ZShyLCIsIikubWFwKHQ9PntsZXQgaT10LnRyaW0oKSxuPXtyYXc6aX0scz1pLnNwbGl0KFd2KSxhPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHMpJGYubGFzdEluZGV4PTAsIWEuaGFzKCJLRVlXT1JEIikmJkh2LmhhcyhvKT8obi5rZXl3b3JkPW8sYS5hZGQoIktFWVdPUkQiKSk6JGYudGVzdChvKT9hLmhhcygiWCIpP2EuaGFzKCJZIik/YS5oYXMoIkJMVVIiKT9hLmhhcygiU1BSRUFEIil8fChuLnNwcmVhZD1vLGEuYWRkKCJTUFJFQUQiKSk6KG4uYmx1cj1vLGEuYWRkKCJCTFVSIikpOihuLnk9byxhLmFkZCgiWSIpKToobi54PW8sYS5hZGQoIlgiKSk6bi5jb2xvcj8obi51bmtub3dufHwobi51bmtub3duPVtdKSxuLnVua25vd24ucHVzaChvKSk6bi5jb2xvcj1vO3JldHVybiBuLnZhbGlkPW4ueCE9PXZvaWQgMCYmbi55IT09dm9pZCAwLG59KX1mdW5jdGlvbiBMZihyKXtyZXR1cm4gci5tYXAoZT0+ZS52YWxpZD9bZS5rZXl3b3JkLGUueCxlLnksZS5ibHVyLGUuc3ByZWFkLGUuY29sb3JdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIik6ZS5yYXcpLmpvaW4oIiwgIil9dmFyIEh2LFd2LCRmLFlzPVAoKCk9Pnt1KCk7enQoKTtIdj1uZXcgU2V0KFsiaW5zZXQiLCJpbmhlcml0IiwiaW5pdGlhbCIsInJldmVydCIsInVuc2V0Il0pLFd2PS9cICsoPyFbXihdKlwpKS9nLCRmPS9eLT8oXGQrfFwuXGQrKSguKj8pJC9nfSk7ZnVuY3Rpb24gS3Mocil7cmV0dXJuIEd2LnNvbWUoZT0+bmV3IFJlZ0V4cChgXiR7ZX1cXCguKlxcKWApLnRlc3QocikpfWZ1bmN0aW9uIEsocixlPW51bGwsdD0hMCl7bGV0IGk9ZSYmUXYuaGFzKGUucHJvcGVydHkpO3JldHVybiByLnN0YXJ0c1dpdGgoIi0tIikmJiFpP2B2YXIoJHtyfSlgOnIuaW5jbHVkZXMoInVybCgiKT9yLnNwbGl0KC8odXJsXCguKj9cKSkvZykuZmlsdGVyKEJvb2xlYW4pLm1hcChuPT4vXnVybFwoLio/XCkkLy50ZXN0KG4pP246SyhuLGUsITEpKS5qb2luKCIiKToocj1yLnJlcGxhY2UoLyhbXlxcXSlfKy9nLChuLHMpPT5zKyIgIi5yZXBlYXQobi5sZW5ndGgtMSkpLnJlcGxhY2UoL15fL2csIiAiKS5yZXBsYWNlKC9cXF8vZywiXyIpLHQmJihyPXIudHJpbSgpKSxyPVl2KHIpLHIpfWZ1bmN0aW9uIFllKHIpe3JldHVybiByLmluY2x1ZGVzKCI9IikmJihyPXIucmVwbGFjZSgvKD0uKikvZywoZSx0KT0+e2lmKHRbMV09PT0iJyJ8fHRbMV09PT0nIicpcmV0dXJuIHQ7aWYodC5sZW5ndGg+Mil7bGV0IGk9dFt0Lmxlbmd0aC0xXTtpZih0W3QubGVuZ3RoLTJdPT09IiAiJiYoaT09PSJpInx8aT09PSJJInx8aT09PSJzInx8aT09PSJTIikpcmV0dXJuYD0iJHt0LnNsaWNlKDEsLTIpfSIgJHt0W3QubGVuZ3RoLTFdfWB9cmV0dXJuYD0iJHt0LnNsaWNlKDEpfSJgfSkpLHJ9ZnVuY3Rpb24gWXYocil7bGV0IGU9WyJ0aGVtZSJdLHQ9WyJtaW4tY29udGVudCIsIm1heC1jb250ZW50IiwiZml0LWNvbnRlbnQiLCJzYWZlLWFyZWEtaW5zZXQtdG9wIiwic2FmZS1hcmVhLWluc2V0LXJpZ2h0Iiwic2FmZS1hcmVhLWluc2V0LWJvdHRvbSIsInNhZmUtYXJlYS1pbnNldC1sZWZ0IiwidGl0bGViYXItYXJlYS14IiwidGl0bGViYXItYXJlYS15IiwidGl0bGViYXItYXJlYS13aWR0aCIsInRpdGxlYmFyLWFyZWEtaGVpZ2h0Iiwia2V5Ym9hcmQtaW5zZXQtdG9wIiwia2V5Ym9hcmQtaW5zZXQtcmlnaHQiLCJrZXlib2FyZC1pbnNldC1ib3R0b20iLCJrZXlib2FyZC1pbnNldC1sZWZ0Iiwia2V5Ym9hcmQtaW5zZXQtd2lkdGgiLCJrZXlib2FyZC1pbnNldC1oZWlnaHQiLCJyYWRpYWwtZ3JhZGllbnQiLCJsaW5lYXItZ3JhZGllbnQiLCJjb25pYy1ncmFkaWVudCIsInJlcGVhdGluZy1yYWRpYWwtZ3JhZGllbnQiLCJyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50IiwicmVwZWF0aW5nLWNvbmljLWdyYWRpZW50IiwiYW5jaG9yLXNpemUiXTtyZXR1cm4gci5yZXBsYWNlKC8oY2FsY3xtaW58bWF4fGNsYW1wKVwoLitcKS9nLGk9PntsZXQgbj0iIjtmdW5jdGlvbiBzKCl7bGV0IGE9bi50cmltRW5kKCk7cmV0dXJuIGFbYS5sZW5ndGgtMV19Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspe2xldCBvPWZ1bmN0aW9uKGYpe3JldHVybiBmLnNwbGl0KCIiKS5ldmVyeSgoZCxwKT0+aVthK3BdPT09ZCl9LGw9ZnVuY3Rpb24oZil7bGV0IGQ9MS8wO2ZvcihsZXQgaCBvZiBmKXtsZXQgYj1pLmluZGV4T2YoaCxhKTtiIT09LTEmJmI8ZCYmKGQ9Yil9bGV0IHA9aS5zbGljZShhLGQpO3JldHVybiBhKz1wLmxlbmd0aC0xLHB9LGM9aVthXTtpZihvKCJ2YXIiKSluKz1sKFsiKSIsIiwiXSk7ZWxzZSBpZih0LnNvbWUoZj0+byhmKSkpe2xldCBmPXQuZmluZChkPT5vKGQpKTtuKz1mLGErPWYubGVuZ3RoLTF9ZWxzZSBlLnNvbWUoZj0+byhmKSk/bis9bChbIikiXSk6bygiWyIpP24rPWwoWyJdIl0pOlsiKyIsIi0iLCIqIiwiLyJdLmluY2x1ZGVzKGMpJiYhWyIoIiwiKyIsIi0iLCIqIiwiLyIsIiwiXS5pbmNsdWRlcyhzKCkpP24rPWAgJHtjfSBgOm4rPWN9cmV0dXJuIG4ucmVwbGFjZSgvXHMrL2csIiAiKX0pfWZ1bmN0aW9uIFhzKHIpe3JldHVybiByLnN0YXJ0c1dpdGgoInVybCgiKX1mdW5jdGlvbiBacyhyKXtyZXR1cm4haXNOYU4oTnVtYmVyKHIpKXx8S3Mocil9ZnVuY3Rpb24gTXIocil7cmV0dXJuIHIuZW5kc1dpdGgoIiUiKSYmWnMoci5zbGljZSgwLC0xKSl8fEtzKHIpfWZ1bmN0aW9uIE5yKHIpe3JldHVybiByPT09IjAifHxuZXcgUmVnRXhwKGBeWystXT9bMC05XSouP1swLTldKyg/OltlRV1bKy1dP1swLTldKyk/JHtYdn0kYCkudGVzdChyKXx8S3Mocil9ZnVuY3Rpb24gTWYocil7cmV0dXJuIFp2LmhhcyhyKX1mdW5jdGlvbiBOZihyKXtsZXQgZT1lbihLKHIpKTtmb3IobGV0IHQgb2YgZSlpZighdC52YWxpZClyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCZihyKXtsZXQgZT0wO3JldHVybiB2ZShyLCJfIikuZXZlcnkoaT0+KGk9SyhpKSxpLnN0YXJ0c1dpdGgoInZhcigiKT8hMDokcihpLHtsb29zZTohMH0pIT09bnVsbD8oZSsrLCEwKTohMSkpP2U+MDohMX1mdW5jdGlvbiBGZihyKXtsZXQgZT0wO3JldHVybiB2ZShyLCIsIikuZXZlcnkoaT0+KGk9SyhpKSxpLnN0YXJ0c1dpdGgoInZhcigiKT8hMDpYcyhpKXx8ZXgoaSl8fFsiZWxlbWVudCgiLCJpbWFnZSgiLCJjcm9zcy1mYWRlKCIsImltYWdlLXNldCgiXS5zb21lKG49Pmkuc3RhcnRzV2l0aChuKSk/KGUrKywhMCk6ITEpKT9lPjA6ITF9ZnVuY3Rpb24gZXgocil7cj1LKHIpO2ZvcihsZXQgZSBvZiBKdilpZihyLnN0YXJ0c1dpdGgoYCR7ZX0oYCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gamYocil7bGV0IGU9MDtyZXR1cm4gdmUociwiXyIpLmV2ZXJ5KGk9PihpPUsoaSksaS5zdGFydHNXaXRoKCJ2YXIoIik/ITA6dHguaGFzKGkpfHxOcihpKXx8TXIoaSk/KGUrKywhMCk6ITEpKT9lPjA6ITF9ZnVuY3Rpb24gemYocil7bGV0IGU9MDtyZXR1cm4gdmUociwiLCIpLmV2ZXJ5KGk9PihpPUsoaSksaS5zdGFydHNXaXRoKCJ2YXIoIik/ITA6aS5pbmNsdWRlcygiICIpJiYhLyhbJyJdKShbXiInXSspXDEvZy50ZXN0KGkpfHwvXlxkL2cudGVzdChpKT8hMTooZSsrLCEwKSkpP2U+MDohMX1mdW5jdGlvbiBVZihyKXtyZXR1cm4gcnguaGFzKHIpfWZ1bmN0aW9uIFZmKHIpe3JldHVybiBpeC5oYXMocil9ZnVuY3Rpb24gSGYocil7cmV0dXJuIG54LmhhcyhyKX12YXIgR3YsUXYsS3YsWHYsWnYsSnYsdHgscngsaXgsbngsQnI9UCgoKT0+e3UoKTtRcygpO1lzKCk7enQoKTtHdj1bIm1pbiIsIm1heCIsImNsYW1wIiwiY2FsYyJdO1F2PW5ldyBTZXQoWyJzY3JvbGwtdGltZWxpbmUtbmFtZSIsInRpbWVsaW5lLXNjb3BlIiwidmlldy10aW1lbGluZS1uYW1lIiwiZm9udC1wYWxldHRlIiwiYW5jaG9yLW5hbWUiLCJhbmNob3Itc2NvcGUiLCJwb3NpdGlvbi1hbmNob3IiLCJwb3NpdGlvbi10cnktb3B0aW9ucyIsInNjcm9sbC10aW1lbGluZSIsImFuaW1hdGlvbi10aW1lbGluZSIsInZpZXctdGltZWxpbmUiLCJwb3NpdGlvbi10cnkiXSk7S3Y9WyJjbSIsIm1tIiwiUSIsImluIiwicGMiLCJwdCIsInB4IiwiZW0iLCJleCIsImNoIiwicmVtIiwibGgiLCJybGgiLCJ2dyIsInZoIiwidm1pbiIsInZtYXgiLCJ2YiIsInZpIiwic3Z3Iiwic3ZoIiwibHZ3IiwibHZoIiwiZHZ3IiwiZHZoIiwiY3F3IiwiY3FoIiwiY3FpIiwiY3FiIiwiY3FtaW4iLCJjcW1heCJdLFh2PWAoPzoke0t2LmpvaW4oInwiKX0pYDtadj1uZXcgU2V0KFsidGhpbiIsIm1lZGl1bSIsInRoaWNrIl0pO0p2PW5ldyBTZXQoWyJjb25pYy1ncmFkaWVudCIsImxpbmVhci1ncmFkaWVudCIsInJhZGlhbC1ncmFkaWVudCIsInJlcGVhdGluZy1jb25pYy1ncmFkaWVudCIsInJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCJyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50Il0pO3R4PW5ldyBTZXQoWyJjZW50ZXIiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiXSk7cng9bmV3IFNldChbInNlcmlmIiwic2Fucy1zZXJpZiIsIm1vbm9zcGFjZSIsImN1cnNpdmUiLCJmYW50YXN5Iiwic3lzdGVtLXVpIiwidWktc2VyaWYiLCJ1aS1zYW5zLXNlcmlmIiwidWktbW9ub3NwYWNlIiwidWktcm91bmRlZCIsIm1hdGgiLCJlbW9qaSIsImZhbmdzb25nIl0pO2l4PW5ldyBTZXQoWyJ4eC1zbWFsbCIsIngtc21hbGwiLCJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwieC1sYXJnZSIsInh4LWxhcmdlIiwieHh4LWxhcmdlIl0pO254PW5ldyBTZXQoWyJsYXJnZXIiLCJzbWFsbGVyIl0pfSk7ZnVuY3Rpb24gV2Yocil7bGV0IGU9WyJjb3ZlciIsImNvbnRhaW4iXTtyZXR1cm4gdmUociwiLCIpLmV2ZXJ5KHQ9PntsZXQgaT12ZSh0LCJfIikuZmlsdGVyKEJvb2xlYW4pO3JldHVybiBpLmxlbmd0aD09PTEmJmUuaW5jbHVkZXMoaVswXSk/ITA6aS5sZW5ndGghPT0xJiZpLmxlbmd0aCE9PTI/ITE6aS5ldmVyeShuPT5OcihuKXx8TXIobil8fG49PT0iYXV0byIpfSl9dmFyIEdmPVAoKCk9Pnt1KCk7QnIoKTt6dCgpfSk7ZnVuY3Rpb24gUWYocixlKXtyLndhbGtDbGFzc2VzKHQ9Pnt0LnZhbHVlPWUodC52YWx1ZSksdC5yYXdzJiZ0LnJhd3MudmFsdWUmJih0LnJhd3MudmFsdWU9anQodC5yYXdzLnZhbHVlKSl9KX1mdW5jdGlvbiBZZihyLGUpe2lmKCFfdChyKSlyZXR1cm47bGV0IHQ9ci5zbGljZSgxLC0xKTtpZighIWUodCkpcmV0dXJuIEsodCl9ZnVuY3Rpb24gc3gocixlPXt9LHQpe2xldCBpPWVbcl07aWYoaSE9PXZvaWQgMClyZXR1cm4geHQoaSk7aWYoX3Qocikpe2xldCBuPVlmKHIsdCk7cmV0dXJuIG49PT12b2lkIDA/dm9pZCAwOnh0KG4pfX1mdW5jdGlvbiB0bihyLGU9e30se3ZhbGlkYXRlOnQ9KCk9PiEwfT17fSl7bGV0IGk9ZS52YWx1ZXM/LltyXTtyZXR1cm4gaSE9PXZvaWQgMD9pOmUuc3VwcG9ydHNOZWdhdGl2ZVZhbHVlcyYmci5zdGFydHNXaXRoKCItIik/c3goci5zbGljZSgxKSxlLnZhbHVlcyx0KTpZZihyLHQpfWZ1bmN0aW9uIF90KHIpe3JldHVybiByLnN0YXJ0c1dpdGgoIlsiKSYmci5lbmRzV2l0aCgiXSIpfWZ1bmN0aW9uIEtmKHIpe2xldCBlPXIubGFzdEluZGV4T2YoIi8iKSx0PXIubGFzdEluZGV4T2YoIlsiLGUpLGk9ci5pbmRleE9mKCJdIixlKTtyZXR1cm4gcltlLTFdPT09Il0ifHxyW2UrMV09PT0iWyJ8fHQhPT0tMSYmaSE9PS0xJiZ0PGUmJmU8aSYmKGU9ci5sYXN0SW5kZXhPZigiLyIsdCkpLGU9PT0tMXx8ZT09PXIubGVuZ3RoLTE/W3Isdm9pZCAwXTpfdChyKSYmIXIuaW5jbHVkZXMoIl0vWyIpP1tyLHZvaWQgMF06W3Iuc2xpY2UoMCxlKSxyLnNsaWNlKGUrMSldfWZ1bmN0aW9uIFh0KHIpe2lmKHR5cGVvZiByPT0ic3RyaW5nIiYmci5pbmNsdWRlcygiPGFscGhhLXZhbHVlPiIpKXtsZXQgZT1yO3JldHVybih7b3BhY2l0eVZhbHVlOnQ9MX0pPT5lLnJlcGxhY2UoLzxhbHBoYS12YWx1ZT4vZyx0KX1yZXR1cm4gcn1mdW5jdGlvbiBYZihyKXtyZXR1cm4gSyhyLnNsaWNlKDEsLTEpKX1mdW5jdGlvbiBheChyLGU9e30se3RhaWx3aW5kQ29uZmlnOnQ9e319PXt9KXtpZihlLnZhbHVlcz8uW3JdIT09dm9pZCAwKXJldHVybiBYdChlLnZhbHVlcz8uW3JdKTtsZXRbaSxuXT1LZihyKTtpZihuIT09dm9pZCAwKXtsZXQgcz1lLnZhbHVlcz8uW2ldPz8oX3QoaSk/aS5zbGljZSgxLC0xKTp2b2lkIDApO3JldHVybiBzPT09dm9pZCAwP3ZvaWQgMDoocz1YdChzKSxfdChuKT9KZShzLFhmKG4pKTp0LnRoZW1lPy5vcGFjaXR5Py5bbl09PT12b2lkIDA/dm9pZCAwOkplKHMsdC50aGVtZS5vcGFjaXR5W25dKSl9cmV0dXJuIHRuKHIsZSx7dmFsaWRhdGU6QmZ9KX1mdW5jdGlvbiBveChyLGU9e30pe3JldHVybiBlLnZhbHVlcz8uW3JdfWZ1bmN0aW9uIHFlKHIpe3JldHVybihlLHQpPT50bihlLHQse3ZhbGlkYXRlOnJ9KX1mdW5jdGlvbiBseChyLGUpe2xldCB0PXIuaW5kZXhPZihlKTtyZXR1cm4gdD09PS0xP1t2b2lkIDAscl06W3Iuc2xpY2UoMCx0KSxyLnNsaWNlKHQrMSldfWZ1bmN0aW9uIGVhKHIsZSx0LGkpe2lmKHQudmFsdWVzJiZlIGluIHQudmFsdWVzKWZvcihsZXR7dHlwZTpzfW9mIHI/P1tdKXtsZXQgYT1Kc1tzXShlLHQse3RhaWx3aW5kQ29uZmlnOml9KTtpZihhIT09dm9pZCAwKXJldHVyblthLHMsbnVsbF19aWYoX3QoZSkpe2xldCBzPWUuc2xpY2UoMSwtMSksW2Esb109bHgocywiOiIpO2lmKCEvXltcdy1fXSskL2cudGVzdChhKSlvPXM7ZWxzZSBpZihhIT09dm9pZCAwJiYhWmYuaW5jbHVkZXMoYSkpcmV0dXJuW107aWYoby5sZW5ndGg+MCYmWmYuaW5jbHVkZXMoYSkpcmV0dXJuW3RuKGBbJHtvfV1gLHQpLGEsbnVsbF19bGV0IG49dGEocixlLHQsaSk7Zm9yKGxldCBzIG9mIG4pcmV0dXJuIHM7cmV0dXJuW119ZnVuY3Rpb24qdGEocixlLHQsaSl7bGV0IG49d2UoaSwiZ2VuZXJhbGl6ZWRNb2RpZmllcnMiKSxbcyxhXT1LZihlKTtpZihuJiZ0Lm1vZGlmaWVycyE9bnVsbCYmKHQubW9kaWZpZXJzPT09ImFueSJ8fHR5cGVvZiB0Lm1vZGlmaWVycz09Im9iamVjdCImJihhJiZfdChhKXx8YSBpbiB0Lm1vZGlmaWVycykpfHwocz1lLGE9dm9pZCAwKSxhIT09dm9pZCAwJiZzPT09IiImJihzPSJERUZBVUxUIiksYSE9PXZvaWQgMCYmdHlwZW9mIHQubW9kaWZpZXJzPT0ib2JqZWN0Iil7bGV0IGw9dC5tb2RpZmllcnM/LlthXT8/bnVsbDtsIT09bnVsbD9hPWw6X3QoYSkmJihhPVhmKGEpKX1mb3IobGV0e3R5cGU6bH1vZiByPz9bXSl7bGV0IGM9SnNbbF0ocyx0LHt0YWlsd2luZENvbmZpZzppfSk7YyE9PXZvaWQgMCYmKHlpZWxkW2MsbCxhPz9udWxsXSl9fXZhciBKcyxaZixGcj1QKCgpPT57dSgpO1ppKCk7THIoKTtCcigpO0dpKCk7R2YoKTtjdCgpO0pzPXthbnk6dG4sY29sb3I6YXgsdXJsOnFlKFhzKSxpbWFnZTpxZShGZiksbGVuZ3RoOnFlKE5yKSxwZXJjZW50YWdlOnFlKE1yKSxwb3NpdGlvbjpxZShqZiksbG9va3VwOm94LCJnZW5lcmljLW5hbWUiOnFlKFVmKSwiZmFtaWx5LW5hbWUiOnFlKHpmKSxudW1iZXI6cWUoWnMpLCJsaW5lLXdpZHRoIjpxZShNZiksImFic29sdXRlLXNpemUiOnFlKFZmKSwicmVsYXRpdmUtc2l6ZSI6cWUoSGYpLHNoYWRvdzpxZShOZiksc2l6ZTpxZShXZil9LFpmPU9iamVjdC5rZXlzKEpzKX0pO2Z1bmN0aW9uIFgocil7cmV0dXJuIHR5cGVvZiByPT0iZnVuY3Rpb24iP3Ioe30pOnJ9dmFyIHJhPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBadChyKXtyZXR1cm4gdHlwZW9mIHI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24ganIociwuLi5lKXtsZXQgdD1lLnBvcCgpO2ZvcihsZXQgaSBvZiBlKWZvcihsZXQgbiBpbiBpKXtsZXQgcz10KHJbbl0saVtuXSk7cz09PXZvaWQgMD9rZShyW25dKSYma2UoaVtuXSk/cltuXT1qcih7fSxyW25dLGlbbl0sdCk6cltuXT1pW25dOnJbbl09c31yZXR1cm4gcn1mdW5jdGlvbiB1eChyLC4uLmUpe3JldHVybiBadChyKT9yKC4uLmUpOnJ9ZnVuY3Rpb24gZngocil7cmV0dXJuIHIucmVkdWNlKChlLHtleHRlbmQ6dH0pPT5qcihlLHQsKGksbik9Pmk9PT12b2lkIDA/W25dOkFycmF5LmlzQXJyYXkoaSk/W24sLi4uaV06W24saV0pLHt9KX1mdW5jdGlvbiBjeChyKXtyZXR1cm57Li4uci5yZWR1Y2UoKGUsdCk9PkhzKGUsdCkse30pLGV4dGVuZDpmeChyKX19ZnVuY3Rpb24gSmYocixlKXtpZihBcnJheS5pc0FycmF5KHIpJiZrZShyWzBdKSlyZXR1cm4gci5jb25jYXQoZSk7aWYoQXJyYXkuaXNBcnJheShlKSYma2UoZVswXSkmJmtlKHIpKXJldHVybltyLC4uLmVdO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9ZnVuY3Rpb24gcHgoe2V4dGVuZDpyLC4uLmV9KXtyZXR1cm4ganIoZSxyLCh0LGkpPT4hWnQodCkmJiFpLnNvbWUoWnQpP2pyKHt9LHQsLi4uaSxKZik6KG4scyk9PmpyKHt9LC4uLlt0LC4uLmldLm1hcChhPT51eChhLG4scykpLEpmKSl9ZnVuY3Rpb24qZHgocil7bGV0IGU9a3Qocik7aWYoZS5sZW5ndGg9PT0wfHwoeWllbGQgZSxBcnJheS5pc0FycmF5KHIpKSlyZXR1cm47bGV0IHQ9L14oLio/KVxzKlwvXHMqKFteL10rKSQvLGk9ci5tYXRjaCh0KTtpZihpIT09bnVsbCl7bGV0WyxuLHNdPWksYT1rdChuKTthLmFscGhhPXMseWllbGQgYX19ZnVuY3Rpb24gaHgocil7bGV0IGU9KHQsaSk9Pntmb3IobGV0IG4gb2YgZHgodCkpe2xldCBzPTAsYT1yO2Zvcig7YSE9bnVsbCYmczxuLmxlbmd0aDspYT1hW25bcysrXV0sYT1adChhKSYmKG4uYWxwaGE9PT12b2lkIDB8fHM8PW4ubGVuZ3RoLTEpP2EoZSxpYSk6YTtpZihhIT09dm9pZCAwKXtpZihuLmFscGhhIT09dm9pZCAwKXtsZXQgbz1YdChhKTtyZXR1cm4gSmUobyxuLmFscGhhLFgobykpfXJldHVybiBrZShhKT9TdChhKTphfX1yZXR1cm4gaX07cmV0dXJuIE9iamVjdC5hc3NpZ24oZSx7dGhlbWU6ZSwuLi5pYX0pLE9iamVjdC5rZXlzKHIpLnJlZHVjZSgodCxpKT0+KHRbaV09WnQocltpXSk/cltpXShlLGlhKTpyW2ldLHQpLHt9KX1mdW5jdGlvbiBlYyhyKXtsZXQgZT1bXTtyZXR1cm4gci5mb3JFYWNoKHQ9PntlPVsuLi5lLHRdO2xldCBpPXQ/LnBsdWdpbnM/P1tdO2kubGVuZ3RoIT09MCYmaS5mb3JFYWNoKG49PntuLl9faXNPcHRpb25zRnVuY3Rpb24mJihuPW4oKSksZT1bLi4uZSwuLi5lYyhbbj8uY29uZmlnPz97fV0pXX0pfSksZX1mdW5jdGlvbiBteChyKXtyZXR1cm5bLi4ucl0ucmVkdWNlUmlnaHQoKHQsaSk9Plp0KGkpP2koe2NvcmVQbHVnaW5zOnR9KTprZihpLHQpLHZmKX1mdW5jdGlvbiBneChyKXtyZXR1cm5bLi4ucl0ucmVkdWNlUmlnaHQoKHQsaSk9PlsuLi50LC4uLmldLFtdKX1mdW5jdGlvbiBuYShyKXtsZXQgZT1bLi4uZWMocikse3ByZWZpeDoiIixpbXBvcnRhbnQ6ITEsc2VwYXJhdG9yOiI6In1dO3JldHVybiBQZihIcyh7dGhlbWU6aHgocHgoY3goZS5tYXAodD0+dD8udGhlbWU/P3t9KSkpKSxjb3JlUGx1Z2luczpteChlLm1hcCh0PT50LmNvcmVQbHVnaW5zKSkscGx1Z2luczpneChyLm1hcCh0PT50Py5wbHVnaW5zPz9bXSkpfSwuLi5lKSl9dmFyIGlhLHRjPVAoKCk9Pnt1KCk7R2koKTt4ZigpO1NmKCk7VnMoKTtFZigpO1lpKCk7SWYoKTtLdCgpO1hpKCk7RnIoKTtMcigpO3JhKCk7aWE9e2NvbG9yczpVcyxuZWdhdGl2ZShyKXtyZXR1cm4gT2JqZWN0LmtleXMocikuZmlsdGVyKGU9PnJbZV0hPT0iMCIpLnJlZHVjZSgoZSx0KT0+e2xldCBpPXh0KHJbdF0pO3JldHVybiBpIT09dm9pZCAwJiYoZVtgLSR7dH1gXT1pKSxlfSx7fSl9LGJyZWFrcG9pbnRzKHIpe3JldHVybiBPYmplY3Qua2V5cyhyKS5maWx0ZXIoZT0+dHlwZW9mIHJbZV09PSJzdHJpbmciKS5yZWR1Y2UoKGUsdCk9Pih7Li4uZSxbYHNjcmVlbi0ke3R9YF06clt0XX0pLHt9KX19fSk7dmFyIHJuPXgoKGYzLHJjKT0+e3UoKTtyYy5leHBvcnRzPXtjb250ZW50OltdLHByZXNldHM6W10sZGFya01vZGU6Im1lZGlhIix0aGVtZTp7YWNjZW50Q29sb3I6KHt0aGVtZTpyfSk9Pih7Li4ucigiY29sb3JzIiksYXV0bzoiYXV0byJ9KSxhbmltYXRpb246e25vbmU6Im5vbmUiLHNwaW46InNwaW4gMXMgbGluZWFyIGluZmluaXRlIixwaW5nOiJwaW5nIDFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpIGluZmluaXRlIixwdWxzZToicHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSBpbmZpbml0ZSIsYm91bmNlOiJib3VuY2UgMXMgaW5maW5pdGUifSxhcmlhOntidXN5OididXN5PSJ0cnVlIicsY2hlY2tlZDonY2hlY2tlZD0idHJ1ZSInLGRpc2FibGVkOidkaXNhYmxlZD0idHJ1ZSInLGV4cGFuZGVkOidleHBhbmRlZD0idHJ1ZSInLGhpZGRlbjonaGlkZGVuPSJ0cnVlIicscHJlc3NlZDoncHJlc3NlZD0idHJ1ZSInLHJlYWRvbmx5OidyZWFkb25seT0idHJ1ZSInLHJlcXVpcmVkOidyZXF1aXJlZD0idHJ1ZSInLHNlbGVjdGVkOidzZWxlY3RlZD0idHJ1ZSInfSxhc3BlY3RSYXRpbzp7YXV0bzoiYXV0byIsc3F1YXJlOiIxIC8gMSIsdmlkZW86IjE2IC8gOSJ9LGJhY2tkcm9wQmx1cjooe3RoZW1lOnJ9KT0+cigiYmx1ciIpLGJhY2tkcm9wQnJpZ2h0bmVzczooe3RoZW1lOnJ9KT0+cigiYnJpZ2h0bmVzcyIpLGJhY2tkcm9wQ29udHJhc3Q6KHt0aGVtZTpyfSk9PnIoImNvbnRyYXN0IiksYmFja2Ryb3BHcmF5c2NhbGU6KHt0aGVtZTpyfSk9PnIoImdyYXlzY2FsZSIpLGJhY2tkcm9wSHVlUm90YXRlOih7dGhlbWU6cn0pPT5yKCJodWVSb3RhdGUiKSxiYWNrZHJvcEludmVydDooe3RoZW1lOnJ9KT0+cigiaW52ZXJ0IiksYmFja2Ryb3BPcGFjaXR5Oih7dGhlbWU6cn0pPT5yKCJvcGFjaXR5IiksYmFja2Ryb3BTYXR1cmF0ZTooe3RoZW1lOnJ9KT0+cigic2F0dXJhdGUiKSxiYWNrZHJvcFNlcGlhOih7dGhlbWU6cn0pPT5yKCJzZXBpYSIpLGJhY2tncm91bmRDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIiksYmFja2dyb3VuZEltYWdlOntub25lOiJub25lIiwiZ3JhZGllbnQtdG8tdCI6ImxpbmVhci1ncmFkaWVudCh0byB0b3AsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by10ciI6ImxpbmVhci1ncmFkaWVudCh0byB0b3AgcmlnaHQsIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by1yIjoibGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIiwiZ3JhZGllbnQtdG8tYnIiOiJsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tIHJpZ2h0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIiwiZ3JhZGllbnQtdG8tYiI6ImxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLXR3LWdyYWRpZW50LXN0b3BzKSkiLCJncmFkaWVudC10by1ibCI6ImxpbmVhci1ncmFkaWVudCh0byBib3R0b20gbGVmdCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKSIsImdyYWRpZW50LXRvLWwiOiJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdmFyKC0tdHctZ3JhZGllbnQtc3RvcHMpKSIsImdyYWRpZW50LXRvLXRsIjoibGluZWFyLWdyYWRpZW50KHRvIHRvcCBsZWZ0LCB2YXIoLS10dy1ncmFkaWVudC1zdG9wcykpIn0sYmFja2dyb3VuZE9wYWNpdHk6KHt0aGVtZTpyfSk9PnIoIm9wYWNpdHkiKSxiYWNrZ3JvdW5kUG9zaXRpb246e2JvdHRvbToiYm90dG9tIixjZW50ZXI6ImNlbnRlciIsbGVmdDoibGVmdCIsImxlZnQtYm90dG9tIjoibGVmdCBib3R0b20iLCJsZWZ0LXRvcCI6ImxlZnQgdG9wIixyaWdodDoicmlnaHQiLCJyaWdodC1ib3R0b20iOiJyaWdodCBib3R0b20iLCJyaWdodC10b3AiOiJyaWdodCB0b3AiLHRvcDoidG9wIn0sYmFja2dyb3VuZFNpemU6e2F1dG86ImF1dG8iLGNvdmVyOiJjb3ZlciIsY29udGFpbjoiY29udGFpbiJ9LGJsdXI6ezA6IjAiLG5vbmU6IiIsc206IjRweCIsREVGQVVMVDoiOHB4IixtZDoiMTJweCIsbGc6IjE2cHgiLHhsOiIyNHB4IiwiMnhsIjoiNDBweCIsIjN4bCI6IjY0cHgifSxib3JkZXJDb2xvcjooe3RoZW1lOnJ9KT0+KHsuLi5yKCJjb2xvcnMiKSxERUZBVUxUOnIoImNvbG9ycy5ncmF5LjIwMCIsImN1cnJlbnRDb2xvciIpfSksYm9yZGVyT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigib3BhY2l0eSIpLGJvcmRlclJhZGl1czp7bm9uZToiMHB4IixzbToiMC4xMjVyZW0iLERFRkFVTFQ6IjAuMjVyZW0iLG1kOiIwLjM3NXJlbSIsbGc6IjAuNXJlbSIseGw6IjAuNzVyZW0iLCIyeGwiOiIxcmVtIiwiM3hsIjoiMS41cmVtIixmdWxsOiI5OTk5cHgifSxib3JkZXJTcGFjaW5nOih7dGhlbWU6cn0pPT4oey4uLnIoInNwYWNpbmciKX0pLGJvcmRlcldpZHRoOntERUZBVUxUOiIxcHgiLDA6IjBweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LGJveFNoYWRvdzp7c206IjAgMXB4IDJweCAwIHJnYigwIDAgMCAvIDAuMDUpIixERUZBVUxUOiIwIDFweCAzcHggMCByZ2IoMCAwIDAgLyAwLjEpLCAwIDFweCAycHggLTFweCByZ2IoMCAwIDAgLyAwLjEpIixtZDoiMCA0cHggNnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKSwgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKSIsbGc6IjAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSwgMCA0cHggNnB4IC00cHggcmdiKDAgMCAwIC8gMC4xKSIseGw6IjAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKSwgMCA4cHggMTBweCAtNnB4IHJnYigwIDAgMCAvIDAuMSkiLCIyeGwiOiIwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KSIsaW5uZXI6Imluc2V0IDAgMnB4IDRweCAwIHJnYigwIDAgMCAvIDAuMDUpIixub25lOiJub25lIn0sYm94U2hhZG93Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGJyaWdodG5lc3M6ezA6IjAiLDUwOiIuNSIsNzU6Ii43NSIsOTA6Ii45Iiw5NToiLjk1IiwxMDA6IjEiLDEwNToiMS4wNSIsMTEwOiIxLjEiLDEyNToiMS4yNSIsMTUwOiIxLjUiLDIwMDoiMiJ9LGNhcmV0Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGNvbG9yczooe2NvbG9yczpyfSk9Pih7aW5oZXJpdDpyLmluaGVyaXQsY3VycmVudDpyLmN1cnJlbnQsdHJhbnNwYXJlbnQ6ci50cmFuc3BhcmVudCxibGFjazpyLmJsYWNrLHdoaXRlOnIud2hpdGUsc2xhdGU6ci5zbGF0ZSxncmF5OnIuZ3JheSx6aW5jOnIuemluYyxuZXV0cmFsOnIubmV1dHJhbCxzdG9uZTpyLnN0b25lLHJlZDpyLnJlZCxvcmFuZ2U6ci5vcmFuZ2UsYW1iZXI6ci5hbWJlcix5ZWxsb3c6ci55ZWxsb3csbGltZTpyLmxpbWUsZ3JlZW46ci5ncmVlbixlbWVyYWxkOnIuZW1lcmFsZCx0ZWFsOnIudGVhbCxjeWFuOnIuY3lhbixza3k6ci5za3ksYmx1ZTpyLmJsdWUsaW5kaWdvOnIuaW5kaWdvLHZpb2xldDpyLnZpb2xldCxwdXJwbGU6ci5wdXJwbGUsZnVjaHNpYTpyLmZ1Y2hzaWEscGluazpyLnBpbmsscm9zZTpyLnJvc2V9KSxjb2x1bW5zOnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwiM3hzIjoiMTZyZW0iLCIyeHMiOiIxOHJlbSIseHM6IjIwcmVtIixzbToiMjRyZW0iLG1kOiIyOHJlbSIsbGc6IjMycmVtIix4bDoiMzZyZW0iLCIyeGwiOiI0MnJlbSIsIjN4bCI6IjQ4cmVtIiwiNHhsIjoiNTZyZW0iLCI1eGwiOiI2NHJlbSIsIjZ4bCI6IjcycmVtIiwiN3hsIjoiODByZW0ifSxjb250YWluZXI6e30sY29udGVudDp7bm9uZToibm9uZSJ9LGNvbnRyYXN0OnswOiIwIiw1MDoiLjUiLDc1OiIuNzUiLDEwMDoiMSIsMTI1OiIxLjI1IiwxNTA6IjEuNSIsMjAwOiIyIn0sY3Vyc29yOnthdXRvOiJhdXRvIixkZWZhdWx0OiJkZWZhdWx0Iixwb2ludGVyOiJwb2ludGVyIix3YWl0OiJ3YWl0Iix0ZXh0OiJ0ZXh0Iixtb3ZlOiJtb3ZlIixoZWxwOiJoZWxwIiwibm90LWFsbG93ZWQiOiJub3QtYWxsb3dlZCIsbm9uZToibm9uZSIsImNvbnRleHQtbWVudSI6ImNvbnRleHQtbWVudSIscHJvZ3Jlc3M6InByb2dyZXNzIixjZWxsOiJjZWxsIixjcm9zc2hhaXI6ImNyb3NzaGFpciIsInZlcnRpY2FsLXRleHQiOiJ2ZXJ0aWNhbC10ZXh0IixhbGlhczoiYWxpYXMiLGNvcHk6ImNvcHkiLCJuby1kcm9wIjoibm8tZHJvcCIsZ3JhYjoiZ3JhYiIsZ3JhYmJpbmc6ImdyYWJiaW5nIiwiYWxsLXNjcm9sbCI6ImFsbC1zY3JvbGwiLCJjb2wtcmVzaXplIjoiY29sLXJlc2l6ZSIsInJvdy1yZXNpemUiOiJyb3ctcmVzaXplIiwibi1yZXNpemUiOiJuLXJlc2l6ZSIsImUtcmVzaXplIjoiZS1yZXNpemUiLCJzLXJlc2l6ZSI6InMtcmVzaXplIiwidy1yZXNpemUiOiJ3LXJlc2l6ZSIsIm5lLXJlc2l6ZSI6Im5lLXJlc2l6ZSIsIm53LXJlc2l6ZSI6Im53LXJlc2l6ZSIsInNlLXJlc2l6ZSI6InNlLXJlc2l6ZSIsInN3LXJlc2l6ZSI6InN3LXJlc2l6ZSIsImV3LXJlc2l6ZSI6ImV3LXJlc2l6ZSIsIm5zLXJlc2l6ZSI6Im5zLXJlc2l6ZSIsIm5lc3ctcmVzaXplIjoibmVzdy1yZXNpemUiLCJud3NlLXJlc2l6ZSI6Im53c2UtcmVzaXplIiwiem9vbS1pbiI6Inpvb20taW4iLCJ6b29tLW91dCI6Inpvb20tb3V0In0sZGl2aWRlQ29sb3I6KHt0aGVtZTpyfSk9PnIoImJvcmRlckNvbG9yIiksZGl2aWRlT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigiYm9yZGVyT3BhY2l0eSIpLGRpdmlkZVdpZHRoOih7dGhlbWU6cn0pPT5yKCJib3JkZXJXaWR0aCIpLGRyb3BTaGFkb3c6e3NtOiIwIDFweCAxcHggcmdiKDAgMCAwIC8gMC4wNSkiLERFRkFVTFQ6WyIwIDFweCAycHggcmdiKDAgMCAwIC8gMC4xKSIsIjAgMXB4IDFweCByZ2IoMCAwIDAgLyAwLjA2KSJdLG1kOlsiMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMDcpIiwiMCAycHggMnB4IHJnYigwIDAgMCAvIDAuMDYpIl0sbGc6WyIwIDEwcHggOHB4IHJnYigwIDAgMCAvIDAuMDQpIiwiMCA0cHggM3B4IHJnYigwIDAgMCAvIDAuMSkiXSx4bDpbIjAgMjBweCAxM3B4IHJnYigwIDAgMCAvIDAuMDMpIiwiMCA4cHggNXB4IHJnYigwIDAgMCAvIDAuMDgpIl0sIjJ4bCI6IjAgMjVweCAyNXB4IHJnYigwIDAgMCAvIDAuMTUpIixub25lOiIwIDAgIzAwMDAifSxmaWxsOih7dGhlbWU6cn0pPT4oe25vbmU6Im5vbmUiLC4uLnIoImNvbG9ycyIpfSksZmxleDp7MToiMSAxIDAlIixhdXRvOiIxIDEgYXV0byIsaW5pdGlhbDoiMCAxIGF1dG8iLG5vbmU6Im5vbmUifSxmbGV4QmFzaXM6KHt0aGVtZTpyfSk9Pih7YXV0bzoiYXV0byIsLi4ucigic3BhY2luZyIpLCIxLzIiOiI1MCUiLCIxLzMiOiIzMy4zMzMzMzMlIiwiMi8zIjoiNjYuNjY2NjY3JSIsIjEvNCI6IjI1JSIsIjIvNCI6IjUwJSIsIjMvNCI6Ijc1JSIsIjEvNSI6IjIwJSIsIjIvNSI6IjQwJSIsIjMvNSI6IjYwJSIsIjQvNSI6IjgwJSIsIjEvNiI6IjE2LjY2NjY2NyUiLCIyLzYiOiIzMy4zMzMzMzMlIiwiMy82IjoiNTAlIiwiNC82IjoiNjYuNjY2NjY3JSIsIjUvNiI6IjgzLjMzMzMzMyUiLCIxLzEyIjoiOC4zMzMzMzMlIiwiMi8xMiI6IjE2LjY2NjY2NyUiLCIzLzEyIjoiMjUlIiwiNC8xMiI6IjMzLjMzMzMzMyUiLCI1LzEyIjoiNDEuNjY2NjY3JSIsIjYvMTIiOiI1MCUiLCI3LzEyIjoiNTguMzMzMzMzJSIsIjgvMTIiOiI2Ni42NjY2NjclIiwiOS8xMiI6Ijc1JSIsIjEwLzEyIjoiODMuMzMzMzMzJSIsIjExLzEyIjoiOTEuNjY2NjY3JSIsZnVsbDoiMTAwJSJ9KSxmbGV4R3Jvdzp7MDoiMCIsREVGQVVMVDoiMSJ9LGZsZXhTaHJpbms6ezA6IjAiLERFRkFVTFQ6IjEifSxmb250RmFtaWx5OntzYW5zOlsidWktc2Fucy1zZXJpZiIsInN5c3RlbS11aSIsInNhbnMtc2VyaWYiLCciQXBwbGUgQ29sb3IgRW1vamkiJywnIlNlZ29lIFVJIEVtb2ppIicsJyJTZWdvZSBVSSBTeW1ib2wiJywnIk5vdG8gQ29sb3IgRW1vamkiJ10sc2VyaWY6WyJ1aS1zZXJpZiIsIkdlb3JnaWEiLCJDYW1icmlhIiwnIlRpbWVzIE5ldyBSb21hbiInLCJUaW1lcyIsInNlcmlmIl0sbW9ubzpbInVpLW1vbm9zcGFjZSIsIlNGTW9uby1SZWd1bGFyIiwiTWVubG8iLCJNb25hY28iLCJDb25zb2xhcyIsJyJMaWJlcmF0aW9uIE1vbm8iJywnIkNvdXJpZXIgTmV3IicsIm1vbm9zcGFjZSJdfSxmb250U2l6ZTp7eHM6WyIwLjc1cmVtIix7bGluZUhlaWdodDoiMXJlbSJ9XSxzbTpbIjAuODc1cmVtIix7bGluZUhlaWdodDoiMS4yNXJlbSJ9XSxiYXNlOlsiMXJlbSIse2xpbmVIZWlnaHQ6IjEuNXJlbSJ9XSxsZzpbIjEuMTI1cmVtIix7bGluZUhlaWdodDoiMS43NXJlbSJ9XSx4bDpbIjEuMjVyZW0iLHtsaW5lSGVpZ2h0OiIxLjc1cmVtIn1dLCIyeGwiOlsiMS41cmVtIix7bGluZUhlaWdodDoiMnJlbSJ9XSwiM3hsIjpbIjEuODc1cmVtIix7bGluZUhlaWdodDoiMi4yNXJlbSJ9XSwiNHhsIjpbIjIuMjVyZW0iLHtsaW5lSGVpZ2h0OiIyLjVyZW0ifV0sIjV4bCI6WyIzcmVtIix7bGluZUhlaWdodDoiMSJ9XSwiNnhsIjpbIjMuNzVyZW0iLHtsaW5lSGVpZ2h0OiIxIn1dLCI3eGwiOlsiNC41cmVtIix7bGluZUhlaWdodDoiMSJ9XSwiOHhsIjpbIjZyZW0iLHtsaW5lSGVpZ2h0OiIxIn1dLCI5eGwiOlsiOHJlbSIse2xpbmVIZWlnaHQ6IjEifV19LGZvbnRXZWlnaHQ6e3RoaW46IjEwMCIsZXh0cmFsaWdodDoiMjAwIixsaWdodDoiMzAwIixub3JtYWw6IjQwMCIsbWVkaXVtOiI1MDAiLHNlbWlib2xkOiI2MDAiLGJvbGQ6IjcwMCIsZXh0cmFib2xkOiI4MDAiLGJsYWNrOiI5MDAifSxnYXA6KHt0aGVtZTpyfSk9PnIoInNwYWNpbmciKSxncmFkaWVudENvbG9yU3RvcHM6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLGdyYWRpZW50Q29sb3JTdG9wUG9zaXRpb25zOnsiMCUiOiIwJSIsIjUlIjoiNSUiLCIxMCUiOiIxMCUiLCIxNSUiOiIxNSUiLCIyMCUiOiIyMCUiLCIyNSUiOiIyNSUiLCIzMCUiOiIzMCUiLCIzNSUiOiIzNSUiLCI0MCUiOiI0MCUiLCI0NSUiOiI0NSUiLCI1MCUiOiI1MCUiLCI1NSUiOiI1NSUiLCI2MCUiOiI2MCUiLCI2NSUiOiI2NSUiLCI3MCUiOiI3MCUiLCI3NSUiOiI3NSUiLCI4MCUiOiI4MCUiLCI4NSUiOiI4NSUiLCI5MCUiOiI5MCUiLCI5NSUiOiI5NSUiLCIxMDAlIjoiMTAwJSJ9LGdyYXlzY2FsZTp7MDoiMCIsREVGQVVMVDoiMTAwJSJ9LGdyaWRBdXRvQ29sdW1uczp7YXV0bzoiYXV0byIsbWluOiJtaW4tY29udGVudCIsbWF4OiJtYXgtY29udGVudCIsZnI6Im1pbm1heCgwLCAxZnIpIn0sZ3JpZEF1dG9Sb3dzOnthdXRvOiJhdXRvIixtaW46Im1pbi1jb250ZW50IixtYXg6Im1heC1jb250ZW50IixmcjoibWlubWF4KDAsIDFmcikifSxncmlkQ29sdW1uOnthdXRvOiJhdXRvIiwic3Bhbi0xIjoic3BhbiAxIC8gc3BhbiAxIiwic3Bhbi0yIjoic3BhbiAyIC8gc3BhbiAyIiwic3Bhbi0zIjoic3BhbiAzIC8gc3BhbiAzIiwic3Bhbi00Ijoic3BhbiA0IC8gc3BhbiA0Iiwic3Bhbi01Ijoic3BhbiA1IC8gc3BhbiA1Iiwic3Bhbi02Ijoic3BhbiA2IC8gc3BhbiA2Iiwic3Bhbi03Ijoic3BhbiA3IC8gc3BhbiA3Iiwic3Bhbi04Ijoic3BhbiA4IC8gc3BhbiA4Iiwic3Bhbi05Ijoic3BhbiA5IC8gc3BhbiA5Iiwic3Bhbi0xMCI6InNwYW4gMTAgLyBzcGFuIDEwIiwic3Bhbi0xMSI6InNwYW4gMTEgLyBzcGFuIDExIiwic3Bhbi0xMiI6InNwYW4gMTIgLyBzcGFuIDEyIiwic3Bhbi1mdWxsIjoiMSAvIC0xIn0sZ3JpZENvbHVtbkVuZDp7YXV0bzoiYXV0byIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiIsMTM6IjEzIn0sZ3JpZENvbHVtblN0YXJ0OnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwxMzoiMTMifSxncmlkUm93OnthdXRvOiJhdXRvIiwic3Bhbi0xIjoic3BhbiAxIC8gc3BhbiAxIiwic3Bhbi0yIjoic3BhbiAyIC8gc3BhbiAyIiwic3Bhbi0zIjoic3BhbiAzIC8gc3BhbiAzIiwic3Bhbi00Ijoic3BhbiA0IC8gc3BhbiA0Iiwic3Bhbi01Ijoic3BhbiA1IC8gc3BhbiA1Iiwic3Bhbi02Ijoic3BhbiA2IC8gc3BhbiA2Iiwic3Bhbi03Ijoic3BhbiA3IC8gc3BhbiA3Iiwic3Bhbi04Ijoic3BhbiA4IC8gc3BhbiA4Iiwic3Bhbi05Ijoic3BhbiA5IC8gc3BhbiA5Iiwic3Bhbi0xMCI6InNwYW4gMTAgLyBzcGFuIDEwIiwic3Bhbi0xMSI6InNwYW4gMTEgLyBzcGFuIDExIiwic3Bhbi0xMiI6InNwYW4gMTIgLyBzcGFuIDEyIiwic3Bhbi1mdWxsIjoiMSAvIC0xIn0sZ3JpZFJvd0VuZDp7YXV0bzoiYXV0byIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiIsMTM6IjEzIn0sZ3JpZFJvd1N0YXJ0OnthdXRvOiJhdXRvIiwxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwxMDoiMTAiLDExOiIxMSIsMTI6IjEyIiwxMzoiMTMifSxncmlkVGVtcGxhdGVDb2x1bW5zOntub25lOiJub25lIixzdWJncmlkOiJzdWJncmlkIiwxOiJyZXBlYXQoMSwgbWlubWF4KDAsIDFmcikpIiwyOiJyZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpIiwzOiJyZXBlYXQoMywgbWlubWF4KDAsIDFmcikpIiw0OiJyZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpIiw1OiJyZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpIiw2OiJyZXBlYXQoNiwgbWlubWF4KDAsIDFmcikpIiw3OiJyZXBlYXQoNywgbWlubWF4KDAsIDFmcikpIiw4OiJyZXBlYXQoOCwgbWlubWF4KDAsIDFmcikpIiw5OiJyZXBlYXQoOSwgbWlubWF4KDAsIDFmcikpIiwxMDoicmVwZWF0KDEwLCBtaW5tYXgoMCwgMWZyKSkiLDExOiJyZXBlYXQoMTEsIG1pbm1heCgwLCAxZnIpKSIsMTI6InJlcGVhdCgxMiwgbWlubWF4KDAsIDFmcikpIn0sZ3JpZFRlbXBsYXRlUm93czp7bm9uZToibm9uZSIsc3ViZ3JpZDoic3ViZ3JpZCIsMToicmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKSIsMjoicmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKSIsMzoicmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKSIsNDoicmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKSIsNToicmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKSIsNjoicmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKSIsNzoicmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKSIsODoicmVwZWF0KDgsIG1pbm1heCgwLCAxZnIpKSIsOToicmVwZWF0KDksIG1pbm1heCgwLCAxZnIpKSIsMTA6InJlcGVhdCgxMCwgbWlubWF4KDAsIDFmcikpIiwxMToicmVwZWF0KDExLCBtaW5tYXgoMCwgMWZyKSkiLDEyOiJyZXBlYXQoMTIsIG1pbm1heCgwLCAxZnIpKSJ9LGhlaWdodDooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIiwiMS81IjoiMjAlIiwiMi81IjoiNDAlIiwiMy81IjoiNjAlIiwiNC81IjoiODAlIiwiMS82IjoiMTYuNjY2NjY3JSIsIjIvNiI6IjMzLjMzMzMzMyUiLCIzLzYiOiI1MCUiLCI0LzYiOiI2Ni42NjY2NjclIiwiNS82IjoiODMuMzMzMzMzJSIsZnVsbDoiMTAwJSIsc2NyZWVuOiIxMDB2aCIsc3ZoOiIxMDBzdmgiLGx2aDoiMTAwbHZoIixkdmg6IjEwMGR2aCIsbWluOiJtaW4tY29udGVudCIsbWF4OiJtYXgtY29udGVudCIsZml0OiJmaXQtY29udGVudCJ9KSxodWVSb3RhdGU6ezA6IjBkZWciLDE1OiIxNWRlZyIsMzA6IjMwZGVnIiw2MDoiNjBkZWciLDkwOiI5MGRlZyIsMTgwOiIxODBkZWcifSxpbnNldDooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIixmdWxsOiIxMDAlIn0pLGludmVydDp7MDoiMCIsREVGQVVMVDoiMTAwJSJ9LGtleWZyYW1lczp7c3Bpbjp7dG86e3RyYW5zZm9ybToicm90YXRlKDM2MGRlZykifX0scGluZzp7Ijc1JSwgMTAwJSI6e3RyYW5zZm9ybToic2NhbGUoMikiLG9wYWNpdHk6IjAifX0scHVsc2U6eyI1MCUiOntvcGFjaXR5OiIuNSJ9fSxib3VuY2U6eyIwJSwgMTAwJSI6e3RyYW5zZm9ybToidHJhbnNsYXRlWSgtMjUlKSIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImN1YmljLWJlemllcigwLjgsMCwxLDEpIn0sIjUwJSI6e3RyYW5zZm9ybToibm9uZSIsYW5pbWF0aW9uVGltaW5nRnVuY3Rpb246ImN1YmljLWJlemllcigwLDAsMC4yLDEpIn19fSxsZXR0ZXJTcGFjaW5nOnt0aWdodGVyOiItMC4wNWVtIix0aWdodDoiLTAuMDI1ZW0iLG5vcm1hbDoiMGVtIix3aWRlOiIwLjAyNWVtIix3aWRlcjoiMC4wNWVtIix3aWRlc3Q6IjAuMWVtIn0sbGluZUhlaWdodDp7bm9uZToiMSIsdGlnaHQ6IjEuMjUiLHNudWc6IjEuMzc1Iixub3JtYWw6IjEuNSIscmVsYXhlZDoiMS42MjUiLGxvb3NlOiIyIiwzOiIuNzVyZW0iLDQ6IjFyZW0iLDU6IjEuMjVyZW0iLDY6IjEuNXJlbSIsNzoiMS43NXJlbSIsODoiMnJlbSIsOToiMi4yNXJlbSIsMTA6IjIuNXJlbSJ9LGxpc3RTdHlsZVR5cGU6e25vbmU6Im5vbmUiLGRpc2M6ImRpc2MiLGRlY2ltYWw6ImRlY2ltYWwifSxsaXN0U3R5bGVJbWFnZTp7bm9uZToibm9uZSJ9LG1hcmdpbjooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIil9KSxsaW5lQ2xhbXA6ezE6IjEiLDI6IjIiLDM6IjMiLDQ6IjQiLDU6IjUiLDY6IjYifSxtYXhIZWlnaHQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLG5vbmU6Im5vbmUiLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdmgiLHN2aDoiMTAwc3ZoIixsdmg6IjEwMGx2aCIsZHZoOiIxMDBkdmgiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksbWF4V2lkdGg6KHt0aGVtZTpyLGJyZWFrcG9pbnRzOmV9KT0+KHsuLi5yKCJzcGFjaW5nIiksbm9uZToibm9uZSIseHM6IjIwcmVtIixzbToiMjRyZW0iLG1kOiIyOHJlbSIsbGc6IjMycmVtIix4bDoiMzZyZW0iLCIyeGwiOiI0MnJlbSIsIjN4bCI6IjQ4cmVtIiwiNHhsIjoiNTZyZW0iLCI1eGwiOiI2NHJlbSIsIjZ4bCI6IjcycmVtIiwiN3hsIjoiODByZW0iLGZ1bGw6IjEwMCUiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQiLHByb3NlOiI2NWNoIiwuLi5lKHIoInNjcmVlbnMiKSl9KSxtaW5IZWlnaHQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdmgiLHN2aDoiMTAwc3ZoIixsdmg6IjEwMGx2aCIsZHZoOiIxMDBkdmgiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksbWluV2lkdGg6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpLGZ1bGw6IjEwMCUiLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksb2JqZWN0UG9zaXRpb246e2JvdHRvbToiYm90dG9tIixjZW50ZXI6ImNlbnRlciIsbGVmdDoibGVmdCIsImxlZnQtYm90dG9tIjoibGVmdCBib3R0b20iLCJsZWZ0LXRvcCI6ImxlZnQgdG9wIixyaWdodDoicmlnaHQiLCJyaWdodC1ib3R0b20iOiJyaWdodCBib3R0b20iLCJyaWdodC10b3AiOiJyaWdodCB0b3AiLHRvcDoidG9wIn0sb3BhY2l0eTp7MDoiMCIsNToiMC4wNSIsMTA6IjAuMSIsMTU6IjAuMTUiLDIwOiIwLjIiLDI1OiIwLjI1IiwzMDoiMC4zIiwzNToiMC4zNSIsNDA6IjAuNCIsNDU6IjAuNDUiLDUwOiIwLjUiLDU1OiIwLjU1Iiw2MDoiMC42Iiw2NToiMC42NSIsNzA6IjAuNyIsNzU6IjAuNzUiLDgwOiIwLjgiLDg1OiIwLjg1Iiw5MDoiMC45Iiw5NToiMC45NSIsMTAwOiIxIn0sb3JkZXI6e2ZpcnN0OiItOTk5OSIsbGFzdDoiOTk5OSIsbm9uZToiMCIsMToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiIsNzoiNyIsODoiOCIsOToiOSIsMTA6IjEwIiwxMToiMTEiLDEyOiIxMiJ9LG91dGxpbmVDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIiksb3V0bGluZU9mZnNldDp7MDoiMHB4IiwxOiIxcHgiLDI6IjJweCIsNDoiNHB4Iiw4OiI4cHgifSxvdXRsaW5lV2lkdGg6ezA6IjBweCIsMToiMXB4IiwyOiIycHgiLDQ6IjRweCIsODoiOHB4In0scGFkZGluZzooe3RoZW1lOnJ9KT0+cigic3BhY2luZyIpLHBsYWNlaG9sZGVyQ29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHBsYWNlaG9sZGVyT3BhY2l0eTooe3RoZW1lOnJ9KT0+cigib3BhY2l0eSIpLHJpbmdDb2xvcjooe3RoZW1lOnJ9KT0+KHtERUZBVUxUOnIoImNvbG9ycy5ibHVlLjUwMCIsIiMzYjgyZjYiKSwuLi5yKCJjb2xvcnMiKX0pLHJpbmdPZmZzZXRDb2xvcjooe3RoZW1lOnJ9KT0+cigiY29sb3JzIikscmluZ09mZnNldFdpZHRoOnswOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHJpbmdPcGFjaXR5Oih7dGhlbWU6cn0pPT4oe0RFRkFVTFQ6IjAuNSIsLi4ucigib3BhY2l0eSIpfSkscmluZ1dpZHRoOntERUZBVUxUOiIzcHgiLDA6IjBweCIsMToiMXB4IiwyOiIycHgiLDQ6IjRweCIsODoiOHB4In0scm90YXRlOnswOiIwZGVnIiwxOiIxZGVnIiwyOiIyZGVnIiwzOiIzZGVnIiw2OiI2ZGVnIiwxMjoiMTJkZWciLDQ1OiI0NWRlZyIsOTA6IjkwZGVnIiwxODA6IjE4MGRlZyJ9LHNhdHVyYXRlOnswOiIwIiw1MDoiLjUiLDEwMDoiMSIsMTUwOiIxLjUiLDIwMDoiMiJ9LHNjYWxlOnswOiIwIiw1MDoiLjUiLDc1OiIuNzUiLDkwOiIuOSIsOTU6Ii45NSIsMTAwOiIxIiwxMDU6IjEuMDUiLDExMDoiMS4xIiwxMjU6IjEuMjUiLDE1MDoiMS41In0sc2NyZWVuczp7c206IjY0MHB4IixtZDoiNzY4cHgiLGxnOiIxMDI0cHgiLHhsOiIxMjgwcHgiLCIyeGwiOiIxNTM2cHgifSxzY3JvbGxNYXJnaW46KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksc2Nyb2xsUGFkZGluZzooe3RoZW1lOnJ9KT0+cigic3BhY2luZyIpLHNlcGlhOnswOiIwIixERUZBVUxUOiIxMDAlIn0sc2tldzp7MDoiMGRlZyIsMToiMWRlZyIsMjoiMmRlZyIsMzoiM2RlZyIsNjoiNmRlZyIsMTI6IjEyZGVnIn0sc3BhY2U6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksc3BhY2luZzp7cHg6IjFweCIsMDoiMHB4IiwuNToiMC4xMjVyZW0iLDE6IjAuMjVyZW0iLDEuNToiMC4zNzVyZW0iLDI6IjAuNXJlbSIsMi41OiIwLjYyNXJlbSIsMzoiMC43NXJlbSIsMy41OiIwLjg3NXJlbSIsNDoiMXJlbSIsNToiMS4yNXJlbSIsNjoiMS41cmVtIiw3OiIxLjc1cmVtIiw4OiIycmVtIiw5OiIyLjI1cmVtIiwxMDoiMi41cmVtIiwxMToiMi43NXJlbSIsMTI6IjNyZW0iLDE0OiIzLjVyZW0iLDE2OiI0cmVtIiwyMDoiNXJlbSIsMjQ6IjZyZW0iLDI4OiI3cmVtIiwzMjoiOHJlbSIsMzY6IjlyZW0iLDQwOiIxMHJlbSIsNDQ6IjExcmVtIiw0ODoiMTJyZW0iLDUyOiIxM3JlbSIsNTY6IjE0cmVtIiw2MDoiMTVyZW0iLDY0OiIxNnJlbSIsNzI6IjE4cmVtIiw4MDoiMjByZW0iLDk2OiIyNHJlbSJ9LHN0cm9rZTooe3RoZW1lOnJ9KT0+KHtub25lOiJub25lIiwuLi5yKCJjb2xvcnMiKX0pLHN0cm9rZVdpZHRoOnswOiIwIiwxOiIxIiwyOiIyIn0sc3VwcG9ydHM6e30sZGF0YTp7fSx0ZXh0Q29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHRleHREZWNvcmF0aW9uQ29sb3I6KHt0aGVtZTpyfSk9PnIoImNvbG9ycyIpLHRleHREZWNvcmF0aW9uVGhpY2tuZXNzOnthdXRvOiJhdXRvIiwiZnJvbS1mb250IjoiZnJvbS1mb250IiwwOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHRleHRJbmRlbnQ6KHt0aGVtZTpyfSk9Pih7Li4ucigic3BhY2luZyIpfSksdGV4dE9wYWNpdHk6KHt0aGVtZTpyfSk9PnIoIm9wYWNpdHkiKSx0ZXh0VW5kZXJsaW5lT2Zmc2V0OnthdXRvOiJhdXRvIiwwOiIwcHgiLDE6IjFweCIsMjoiMnB4Iiw0OiI0cHgiLDg6IjhweCJ9LHRyYW5zZm9ybU9yaWdpbjp7Y2VudGVyOiJjZW50ZXIiLHRvcDoidG9wIiwidG9wLXJpZ2h0IjoidG9wIHJpZ2h0IixyaWdodDoicmlnaHQiLCJib3R0b20tcmlnaHQiOiJib3R0b20gcmlnaHQiLGJvdHRvbToiYm90dG9tIiwiYm90dG9tLWxlZnQiOiJib3R0b20gbGVmdCIsbGVmdDoibGVmdCIsInRvcC1sZWZ0IjoidG9wIGxlZnQifSx0cmFuc2l0aW9uRGVsYXk6ezA6IjBzIiw3NToiNzVtcyIsMTAwOiIxMDBtcyIsMTUwOiIxNTBtcyIsMjAwOiIyMDBtcyIsMzAwOiIzMDBtcyIsNTAwOiI1MDBtcyIsNzAwOiI3MDBtcyIsMWUzOiIxMDAwbXMifSx0cmFuc2l0aW9uRHVyYXRpb246e0RFRkFVTFQ6IjE1MG1zIiwwOiIwcyIsNzU6Ijc1bXMiLDEwMDoiMTAwbXMiLDE1MDoiMTUwbXMiLDIwMDoiMjAwbXMiLDMwMDoiMzAwbXMiLDUwMDoiNTAwbXMiLDcwMDoiNzAwbXMiLDFlMzoiMTAwMG1zIn0sdHJhbnNpdGlvblByb3BlcnR5Ontub25lOiJub25lIixhbGw6ImFsbCIsREVGQVVMVDoiY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UsIG9wYWNpdHksIGJveC1zaGFkb3csIHRyYW5zZm9ybSwgZmlsdGVyLCBiYWNrZHJvcC1maWx0ZXIiLGNvbG9yczoiY29sb3IsIGJhY2tncm91bmQtY29sb3IsIGJvcmRlci1jb2xvciwgdGV4dC1kZWNvcmF0aW9uLWNvbG9yLCBmaWxsLCBzdHJva2UiLG9wYWNpdHk6Im9wYWNpdHkiLHNoYWRvdzoiYm94LXNoYWRvdyIsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0ifSx0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246e0RFRkFVTFQ6ImN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkiLGxpbmVhcjoibGluZWFyIixpbjoiY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSkiLG91dDoiY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkiLCJpbi1vdXQiOiJjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIn0sdHJhbnNsYXRlOih7dGhlbWU6cn0pPT4oey4uLnIoInNwYWNpbmciKSwiMS8yIjoiNTAlIiwiMS8zIjoiMzMuMzMzMzMzJSIsIjIvMyI6IjY2LjY2NjY2NyUiLCIxLzQiOiIyNSUiLCIyLzQiOiI1MCUiLCIzLzQiOiI3NSUiLGZ1bGw6IjEwMCUifSksc2l6ZTooe3RoZW1lOnJ9KT0+KHthdXRvOiJhdXRvIiwuLi5yKCJzcGFjaW5nIiksIjEvMiI6IjUwJSIsIjEvMyI6IjMzLjMzMzMzMyUiLCIyLzMiOiI2Ni42NjY2NjclIiwiMS80IjoiMjUlIiwiMi80IjoiNTAlIiwiMy80IjoiNzUlIiwiMS81IjoiMjAlIiwiMi81IjoiNDAlIiwiMy81IjoiNjAlIiwiNC81IjoiODAlIiwiMS82IjoiMTYuNjY2NjY3JSIsIjIvNiI6IjMzLjMzMzMzMyUiLCIzLzYiOiI1MCUiLCI0LzYiOiI2Ni42NjY2NjclIiwiNS82IjoiODMuMzMzMzMzJSIsIjEvMTIiOiI4LjMzMzMzMyUiLCIyLzEyIjoiMTYuNjY2NjY3JSIsIjMvMTIiOiIyNSUiLCI0LzEyIjoiMzMuMzMzMzMzJSIsIjUvMTIiOiI0MS42NjY2NjclIiwiNi8xMiI6IjUwJSIsIjcvMTIiOiI1OC4zMzMzMzMlIiwiOC8xMiI6IjY2LjY2NjY2NyUiLCI5LzEyIjoiNzUlIiwiMTAvMTIiOiI4My4zMzMzMzMlIiwiMTEvMTIiOiI5MS42NjY2NjclIixmdWxsOiIxMDAlIixtaW46Im1pbi1jb250ZW50IixtYXg6Im1heC1jb250ZW50IixmaXQ6ImZpdC1jb250ZW50In0pLHdpZHRoOih7dGhlbWU6cn0pPT4oe2F1dG86ImF1dG8iLC4uLnIoInNwYWNpbmciKSwiMS8yIjoiNTAlIiwiMS8zIjoiMzMuMzMzMzMzJSIsIjIvMyI6IjY2LjY2NjY2NyUiLCIxLzQiOiIyNSUiLCIyLzQiOiI1MCUiLCIzLzQiOiI3NSUiLCIxLzUiOiIyMCUiLCIyLzUiOiI0MCUiLCIzLzUiOiI2MCUiLCI0LzUiOiI4MCUiLCIxLzYiOiIxNi42NjY2NjclIiwiMi82IjoiMzMuMzMzMzMzJSIsIjMvNiI6IjUwJSIsIjQvNiI6IjY2LjY2NjY2NyUiLCI1LzYiOiI4My4zMzMzMzMlIiwiMS8xMiI6IjguMzMzMzMzJSIsIjIvMTIiOiIxNi42NjY2NjclIiwiMy8xMiI6IjI1JSIsIjQvMTIiOiIzMy4zMzMzMzMlIiwiNS8xMiI6IjQxLjY2NjY2NyUiLCI2LzEyIjoiNTAlIiwiNy8xMiI6IjU4LjMzMzMzMyUiLCI4LzEyIjoiNjYuNjY2NjY3JSIsIjkvMTIiOiI3NSUiLCIxMC8xMiI6IjgzLjMzMzMzMyUiLCIxMS8xMiI6IjkxLjY2NjY2NyUiLGZ1bGw6IjEwMCUiLHNjcmVlbjoiMTAwdnciLHN2dzoiMTAwc3Z3Iixsdnc6IjEwMGx2dyIsZHZ3OiIxMDBkdnciLG1pbjoibWluLWNvbnRlbnQiLG1heDoibWF4LWNvbnRlbnQiLGZpdDoiZml0LWNvbnRlbnQifSksd2lsbENoYW5nZTp7YXV0bzoiYXV0byIsc2Nyb2xsOiJzY3JvbGwtcG9zaXRpb24iLGNvbnRlbnRzOiJjb250ZW50cyIsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0ifSx6SW5kZXg6e2F1dG86ImF1dG8iLDA6IjAiLDEwOiIxMCIsMjA6IjIwIiwzMDoiMzAiLDQwOiI0MCIsNTA6IjUwIn19LHBsdWdpbnM6W119fSk7ZnVuY3Rpb24gbm4ocil7bGV0IGU9KHI/LnByZXNldHM/P1tpYy5kZWZhdWx0XSkuc2xpY2UoKS5yZXZlcnNlKCkuZmxhdE1hcChuPT5ubihuIGluc3RhbmNlb2YgRnVuY3Rpb24/bigpOm4pKSx0PXtyZXNwZWN0RGVmYXVsdFJpbmdDb2xvck9wYWNpdHk6e3RoZW1lOntyaW5nQ29sb3I6KHt0aGVtZTpufSk9Pih7REVGQVVMVDoiIzNiODJmNjdmIiwuLi5uKCJjb2xvcnMiKX0pfX0sZGlzYWJsZUNvbG9yT3BhY2l0eVV0aWxpdGllc0J5RGVmYXVsdDp7Y29yZVBsdWdpbnM6e2JhY2tncm91bmRPcGFjaXR5OiExLGJvcmRlck9wYWNpdHk6ITEsZGl2aWRlT3BhY2l0eTohMSxwbGFjZWhvbGRlck9wYWNpdHk6ITEscmluZ09wYWNpdHk6ITEsdGV4dE9wYWNpdHk6ITF9fX0saT1PYmplY3Qua2V5cyh0KS5maWx0ZXIobj0+d2UocixuKSkubWFwKG49PnRbbl0pO3JldHVybltyLC4uLmksLi4uZV19dmFyIGljLG5jPVAoKCk9Pnt1KCk7aWM9cGUocm4oKSk7Y3QoKX0pO3ZhciBzYz17fTtHZShzYyx7ZGVmYXVsdDooKT0+enJ9KTtmdW5jdGlvbiB6ciguLi5yKXtsZXRbLC4uLmVdPW5uKHJbMF0pO3JldHVybiBuYShbLi4uciwuLi5lXSl9dmFyIHNhPVAoKCk9Pnt1KCk7dGMoKTtuYygpfSk7dmFyIFVyPXt9O0dlKFVyLHtkZWZhdWx0OigpPT5tZX0pO3ZhciBtZSxldD1QKCgpPT57dSgpO21lPXtyZXNvbHZlOnI9PnIsZXh0bmFtZTpyPT4iLiIrci5zcGxpdCgiLiIpLnBvcCgpfX0pO2Z1bmN0aW9uIHNuKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnIhPT1udWxsfWZ1bmN0aW9uIGJ4KHIpe3JldHVybiBPYmplY3Qua2V5cyhyKS5sZW5ndGg9PT0wfWZ1bmN0aW9uIGFjKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyJ8fHIgaW5zdGFuY2VvZiBTdHJpbmd9ZnVuY3Rpb24gYWEocil7cmV0dXJuIHNuKHIpJiZyLmNvbmZpZz09PXZvaWQgMCYmIWJ4KHIpP251bGw6c24ocikmJnIuY29uZmlnIT09dm9pZCAwJiZhYyhyLmNvbmZpZyk/bWUucmVzb2x2ZShyLmNvbmZpZyk6c24ocikmJnIuY29uZmlnIT09dm9pZCAwJiZzbihyLmNvbmZpZyk/bnVsbDphYyhyKT9tZS5yZXNvbHZlKHIpOnd4KCl9ZnVuY3Rpb24gd3goKXtmb3IobGV0IHIgb2YgeXgpdHJ5e2xldCBlPW1lLnJlc29sdmUocik7cmV0dXJuIGJlLmFjY2Vzc1N5bmMoZSksZX1jYXRjaChlKXt9cmV0dXJuIG51bGx9dmFyIHl4LG9jPVAoKCk9Pnt1KCk7ZnQoKTtldCgpO3l4PVsiLi90YWlsd2luZC5jb25maWcuanMiLCIuL3RhaWx3aW5kLmNvbmZpZy5janMiLCIuL3RhaWx3aW5kLmNvbmZpZy5tanMiLCIuL3RhaWx3aW5kLmNvbmZpZy50cyIsIi4vdGFpbHdpbmQuY29uZmlnLmN0cyIsIi4vdGFpbHdpbmQuY29uZmlnLm10cyJdfSk7dmFyIGxjPXt9O0dlKGxjLHtkZWZhdWx0OigpPT5vYX0pO3ZhciBvYSxsYT1QKCgpPT57dSgpO29hPXtwYXJzZTpyPT4oe2hyZWY6cn0pfX0pO3ZhciB1YT14KCgpPT57dSgpfSk7dmFyIGFuPXgoKHYzLGNjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHVjPShRaSgpLEFmKSxmYz11YSgpLEp0PWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LGksbixzLGEpe3N1cGVyKGUpO3RoaXMubmFtZT0iQ3NzU3ludGF4RXJyb3IiLHRoaXMucmVhc29uPWUscyYmKHRoaXMuZmlsZT1zKSxuJiYodGhpcy5zb3VyY2U9biksYSYmKHRoaXMucGx1Z2luPWEpLHR5cGVvZiB0IT0idW5kZWZpbmVkIiYmdHlwZW9mIGkhPSJ1bmRlZmluZWQiJiYodHlwZW9mIHQ9PSJudW1iZXIiPyh0aGlzLmxpbmU9dCx0aGlzLmNvbHVtbj1pKToodGhpcy5saW5lPXQubGluZSx0aGlzLmNvbHVtbj10LmNvbHVtbix0aGlzLmVuZExpbmU9aS5saW5lLHRoaXMuZW5kQ29sdW1uPWkuY29sdW1uKSksdGhpcy5zZXRNZXNzYWdlKCksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsSnQpfXNldE1lc3NhZ2UoKXt0aGlzLm1lc3NhZ2U9dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rIjogIjoiIix0aGlzLm1lc3NhZ2UrPXRoaXMuZmlsZT90aGlzLmZpbGU6Ijxjc3MgaW5wdXQ+Iix0eXBlb2YgdGhpcy5saW5lIT0idW5kZWZpbmVkIiYmKHRoaXMubWVzc2FnZSs9IjoiK3RoaXMubGluZSsiOiIrdGhpcy5jb2x1bW4pLHRoaXMubWVzc2FnZSs9IjogIit0aGlzLnJlYXNvbn1zaG93U291cmNlQ29kZShlKXtpZighdGhpcy5zb3VyY2UpcmV0dXJuIiI7bGV0IHQ9dGhpcy5zb3VyY2U7ZT09bnVsbCYmKGU9dWMuaXNDb2xvclN1cHBvcnRlZCk7bGV0IGk9Zj0+ZixuPWY9PmYscz1mPT5mO2lmKGUpe2xldHtib2xkOmYsZ3JheTpkLHJlZDpwfT11Yy5jcmVhdGVDb2xvcnMoITApO249aD0+ZihwKGgpKSxpPWg9PmQoaCksZmMmJihzPWg9PmZjKGgpKX1sZXQgYT10LnNwbGl0KC9ccj9cbi8pLG89TWF0aC5tYXgodGhpcy5saW5lLTMsMCksbD1NYXRoLm1pbih0aGlzLmxpbmUrMixhLmxlbmd0aCksYz1TdHJpbmcobCkubGVuZ3RoO3JldHVybiBhLnNsaWNlKG8sbCkubWFwKChmLGQpPT57bGV0IHA9bysxK2QsaD0iICIrKCIgIitwKS5zbGljZSgtYykrIiB8ICI7aWYocD09PXRoaXMubGluZSl7aWYoZi5sZW5ndGg+MTYwKXtsZXQgdj0yMCx5PU1hdGgubWF4KDAsdGhpcy5jb2x1bW4tdiksdz1NYXRoLm1heCh0aGlzLmNvbHVtbit2LHRoaXMuZW5kQ29sdW1uK3YpLGs9Zi5zbGljZSh5LHcpLFM9aShoLnJlcGxhY2UoL1xkL2csIiAiKSkrZi5zbGljZSgwLE1hdGgubWluKHRoaXMuY29sdW1uLTEsdi0xKSkucmVwbGFjZSgvW15cdF0vZywiICIpO3JldHVybiBuKCI+IikraShoKStzKGspK2AKIGArUytuKCJeIil9bGV0IGI9aShoLnJlcGxhY2UoL1xkL2csIiAiKSkrZi5zbGljZSgwLHRoaXMuY29sdW1uLTEpLnJlcGxhY2UoL1teXHRdL2csIiAiKTtyZXR1cm4gbigiPiIpK2koaCkrcyhmKStgCiBgK2IrbigiXiIpfXJldHVybiIgIitpKGgpK3MoZil9KS5qb2luKGAKYCl9dG9TdHJpbmcoKXtsZXQgZT10aGlzLnNob3dTb3VyY2VDb2RlKCk7cmV0dXJuIGUmJihlPWAKCmArZStgCmApLHRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZStlfX07Y2MuZXhwb3J0cz1KdDtKdC5kZWZhdWx0PUp0fSk7dmFyIGZhPXgoKHgzLGRjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHBjPXthZnRlcjpgCmAsYmVmb3JlQ2xvc2U6YApgLGJlZm9yZUNvbW1lbnQ6YApgLGJlZm9yZURlY2w6YApgLGJlZm9yZU9wZW46IiAiLGJlZm9yZVJ1bGU6YApgLGNvbG9uOiI6ICIsY29tbWVudExlZnQ6IiAiLGNvbW1lbnRSaWdodDoiICIsZW1wdHlCb2R5OiIiLGluZGVudDoiICAgICIsc2VtaWNvbG9uOiExfTtmdW5jdGlvbiB2eChyKXtyZXR1cm4gclswXS50b1VwcGVyQ2FzZSgpK3Iuc2xpY2UoMSl9dmFyIG9uPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuYnVpbGRlcj1lfWF0cnVsZShlLHQpe2xldCBpPSJAIitlLm5hbWUsbj1lLnBhcmFtcz90aGlzLnJhd1ZhbHVlKGUsInBhcmFtcyIpOiIiO2lmKHR5cGVvZiBlLnJhd3MuYWZ0ZXJOYW1lIT0idW5kZWZpbmVkIj9pKz1lLnJhd3MuYWZ0ZXJOYW1lOm4mJihpKz0iICIpLGUubm9kZXMpdGhpcy5ibG9jayhlLGkrbik7ZWxzZXtsZXQgcz0oZS5yYXdzLmJldHdlZW58fCIiKSsodD8iOyI6IiIpO3RoaXMuYnVpbGRlcihpK24rcyxlKX19YmVmb3JlQWZ0ZXIoZSx0KXtsZXQgaTtlLnR5cGU9PT0iZGVjbCI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZURlY2wiKTplLnR5cGU9PT0iY29tbWVudCI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZUNvbW1lbnQiKTp0PT09ImJlZm9yZSI/aT10aGlzLnJhdyhlLG51bGwsImJlZm9yZVJ1bGUiKTppPXRoaXMucmF3KGUsbnVsbCwiYmVmb3JlQ2xvc2UiKTtsZXQgbj1lLnBhcmVudCxzPTA7Zm9yKDtuJiZuLnR5cGUhPT0icm9vdCI7KXMrPTEsbj1uLnBhcmVudDtpZihpLmluY2x1ZGVzKGAKYCkpe2xldCBhPXRoaXMucmF3KGUsbnVsbCwiaW5kZW50Iik7aWYoYS5sZW5ndGgpZm9yKGxldCBvPTA7bzxzO28rKylpKz1hfXJldHVybiBpfWJsb2NrKGUsdCl7bGV0IGk9dGhpcy5yYXcoZSwiYmV0d2VlbiIsImJlZm9yZU9wZW4iKTt0aGlzLmJ1aWxkZXIodCtpKyJ7IixlLCJzdGFydCIpO2xldCBuO2Uubm9kZXMmJmUubm9kZXMubGVuZ3RoPyh0aGlzLmJvZHkoZSksbj10aGlzLnJhdyhlLCJhZnRlciIpKTpuPXRoaXMucmF3KGUsImFmdGVyIiwiZW1wdHlCb2R5IiksbiYmdGhpcy5idWlsZGVyKG4pLHRoaXMuYnVpbGRlcigifSIsZSwiZW5kIil9Ym9keShlKXtsZXQgdD1lLm5vZGVzLmxlbmd0aC0xO2Zvcig7dD4wJiZlLm5vZGVzW3RdLnR5cGU9PT0iY29tbWVudCI7KXQtPTE7bGV0IGk9dGhpcy5yYXcoZSwic2VtaWNvbG9uIik7Zm9yKGxldCBuPTA7bjxlLm5vZGVzLmxlbmd0aDtuKyspe2xldCBzPWUubm9kZXNbbl0sYT10aGlzLnJhdyhzLCJiZWZvcmUiKTthJiZ0aGlzLmJ1aWxkZXIoYSksdGhpcy5zdHJpbmdpZnkocyx0IT09bnx8aSl9fWNvbW1lbnQoZSl7bGV0IHQ9dGhpcy5yYXcoZSwibGVmdCIsImNvbW1lbnRMZWZ0IiksaT10aGlzLnJhdyhlLCJyaWdodCIsImNvbW1lbnRSaWdodCIpO3RoaXMuYnVpbGRlcigiLyoiK3QrZS50ZXh0K2krIiovIixlKX1kZWNsKGUsdCl7bGV0IGk9dGhpcy5yYXcoZSwiYmV0d2VlbiIsImNvbG9uIiksbj1lLnByb3AraSt0aGlzLnJhd1ZhbHVlKGUsInZhbHVlIik7ZS5pbXBvcnRhbnQmJihuKz1lLnJhd3MuaW1wb3J0YW50fHwiICFpbXBvcnRhbnQiKSx0JiYobis9IjsiKSx0aGlzLmJ1aWxkZXIobixlKX1kb2N1bWVudChlKXt0aGlzLmJvZHkoZSl9cmF3KGUsdCxpKXtsZXQgbjtpZihpfHwoaT10KSx0JiYobj1lLnJhd3NbdF0sdHlwZW9mIG4hPSJ1bmRlZmluZWQiKSlyZXR1cm4gbjtsZXQgcz1lLnBhcmVudDtpZihpPT09ImJlZm9yZSImJighc3x8cy50eXBlPT09InJvb3QiJiZzLmZpcnN0PT09ZXx8cyYmcy50eXBlPT09ImRvY3VtZW50IikpcmV0dXJuIiI7aWYoIXMpcmV0dXJuIHBjW2ldO2xldCBhPWUucm9vdCgpO2lmKGEucmF3Q2FjaGV8fChhLnJhd0NhY2hlPXt9KSx0eXBlb2YgYS5yYXdDYWNoZVtpXSE9InVuZGVmaW5lZCIpcmV0dXJuIGEucmF3Q2FjaGVbaV07aWYoaT09PSJiZWZvcmUifHxpPT09ImFmdGVyIilyZXR1cm4gdGhpcy5iZWZvcmVBZnRlcihlLGkpO3tsZXQgbz0icmF3Iit2eChpKTt0aGlzW29dP249dGhpc1tvXShhLGUpOmEud2FsayhsPT57aWYobj1sLnJhd3NbdF0sdHlwZW9mIG4hPSJ1bmRlZmluZWQiKXJldHVybiExfSl9cmV0dXJuIHR5cGVvZiBuPT0idW5kZWZpbmVkIiYmKG49cGNbaV0pLGEucmF3Q2FjaGVbaV09bixufXJhd0JlZm9yZUNsb3NlKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkubm9kZXMmJmkubm9kZXMubGVuZ3RoPjAmJnR5cGVvZiBpLnJhd3MuYWZ0ZXIhPSJ1bmRlZmluZWQiKXJldHVybiB0PWkucmF3cy5hZnRlcix0LmluY2x1ZGVzKGAKYCkmJih0PXQucmVwbGFjZSgvW15cbl0rJC8sIiIpKSwhMX0pLHQmJih0PXQucmVwbGFjZSgvXFMvZywiIikpLHR9cmF3QmVmb3JlQ29tbWVudChlLHQpe2xldCBpO3JldHVybiBlLndhbGtDb21tZW50cyhuPT57aWYodHlwZW9mIG4ucmF3cy5iZWZvcmUhPSJ1bmRlZmluZWQiKXJldHVybiBpPW4ucmF3cy5iZWZvcmUsaS5pbmNsdWRlcyhgCmApJiYoaT1pLnJlcGxhY2UoL1teXG5dKyQvLCIiKSksITF9KSx0eXBlb2YgaT09InVuZGVmaW5lZCI/aT10aGlzLnJhdyh0LG51bGwsImJlZm9yZURlY2wiKTppJiYoaT1pLnJlcGxhY2UoL1xTL2csIiIpKSxpfXJhd0JlZm9yZURlY2woZSx0KXtsZXQgaTtyZXR1cm4gZS53YWxrRGVjbHMobj0+e2lmKHR5cGVvZiBuLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIilyZXR1cm4gaT1uLnJhd3MuYmVmb3JlLGkuaW5jbHVkZXMoYApgKSYmKGk9aS5yZXBsYWNlKC9bXlxuXSskLywiIikpLCExfSksdHlwZW9mIGk9PSJ1bmRlZmluZWQiP2k9dGhpcy5yYXcodCxudWxsLCJiZWZvcmVSdWxlIik6aSYmKGk9aS5yZXBsYWNlKC9cUy9nLCIiKSksaX1yYXdCZWZvcmVPcGVuKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkudHlwZSE9PSJkZWNsIiYmKHQ9aS5yYXdzLmJldHdlZW4sdHlwZW9mIHQhPSJ1bmRlZmluZWQiKSlyZXR1cm4hMX0pLHR9cmF3QmVmb3JlUnVsZShlKXtsZXQgdDtyZXR1cm4gZS53YWxrKGk9PntpZihpLm5vZGVzJiYoaS5wYXJlbnQhPT1lfHxlLmZpcnN0IT09aSkmJnR5cGVvZiBpLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIilyZXR1cm4gdD1pLnJhd3MuYmVmb3JlLHQuaW5jbHVkZXMoYApgKSYmKHQ9dC5yZXBsYWNlKC9bXlxuXSskLywiIikpLCExfSksdCYmKHQ9dC5yZXBsYWNlKC9cUy9nLCIiKSksdH1yYXdDb2xvbihlKXtsZXQgdDtyZXR1cm4gZS53YWxrRGVjbHMoaT0+e2lmKHR5cGVvZiBpLnJhd3MuYmV0d2VlbiE9InVuZGVmaW5lZCIpcmV0dXJuIHQ9aS5yYXdzLmJldHdlZW4ucmVwbGFjZSgvW15cczpdL2csIiIpLCExfSksdH1yYXdFbXB0eUJvZHkoZSl7bGV0IHQ7cmV0dXJuIGUud2FsayhpPT57aWYoaS5ub2RlcyYmaS5ub2Rlcy5sZW5ndGg9PT0wJiYodD1pLnJhd3MuYWZ0ZXIsdHlwZW9mIHQhPSJ1bmRlZmluZWQiKSlyZXR1cm4hMX0pLHR9cmF3SW5kZW50KGUpe2lmKGUucmF3cy5pbmRlbnQpcmV0dXJuIGUucmF3cy5pbmRlbnQ7bGV0IHQ7cmV0dXJuIGUud2FsayhpPT57bGV0IG49aS5wYXJlbnQ7aWYobiYmbiE9PWUmJm4ucGFyZW50JiZuLnBhcmVudD09PWUmJnR5cGVvZiBpLnJhd3MuYmVmb3JlIT0idW5kZWZpbmVkIil7bGV0IHM9aS5yYXdzLmJlZm9yZS5zcGxpdChgCmApO3JldHVybiB0PXNbcy5sZW5ndGgtMV0sdD10LnJlcGxhY2UoL1xTL2csIiIpLCExfX0pLHR9cmF3U2VtaWNvbG9uKGUpe2xldCB0O3JldHVybiBlLndhbGsoaT0+e2lmKGkubm9kZXMmJmkubm9kZXMubGVuZ3RoJiZpLmxhc3QudHlwZT09PSJkZWNsIiYmKHQ9aS5yYXdzLnNlbWljb2xvbix0eXBlb2YgdCE9InVuZGVmaW5lZCIpKXJldHVybiExfSksdH1yYXdWYWx1ZShlLHQpe2xldCBpPWVbdF0sbj1lLnJhd3NbdF07cmV0dXJuIG4mJm4udmFsdWU9PT1pP24ucmF3Oml9cm9vdChlKXt0aGlzLmJvZHkoZSksZS5yYXdzLmFmdGVyJiZ0aGlzLmJ1aWxkZXIoZS5yYXdzLmFmdGVyKX1ydWxlKGUpe3RoaXMuYmxvY2soZSx0aGlzLnJhd1ZhbHVlKGUsInNlbGVjdG9yIikpLGUucmF3cy5vd25TZW1pY29sb24mJnRoaXMuYnVpbGRlcihlLnJhd3Mub3duU2VtaWNvbG9uLGUsImVuZCIpfXN0cmluZ2lmeShlLHQpe2lmKCF0aGlzW2UudHlwZV0pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIEFTVCBub2RlIHR5cGUgIitlLnR5cGUrIi4gTWF5YmUgeW91IG5lZWQgdG8gY2hhbmdlIFBvc3RDU1Mgc3RyaW5naWZpZXIuIik7dGhpc1tlLnR5cGVdKGUsdCl9fTtkYy5leHBvcnRzPW9uO29uLmRlZmF1bHQ9b259KTt2YXIgVnI9eCgoazMsaGMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgeHg9ZmEoKTtmdW5jdGlvbiBjYShyLGUpe25ldyB4eChlKS5zdHJpbmdpZnkocil9aGMuZXhwb3J0cz1jYTtjYS5kZWZhdWx0PWNhfSk7dmFyIGxuPXgoKFMzLHBhKT0+e3UoKTsidXNlIHN0cmljdCI7cGEuZXhwb3J0cy5pc0NsZWFuPVN5bWJvbCgiaXNDbGVhbiIpO3BhLmV4cG9ydHMubXk9U3ltYm9sKCJteSIpfSk7dmFyIEdyPXgoKEEzLG1jKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIGt4PWFuKCksU3g9ZmEoKSxBeD1WcigpLHtpc0NsZWFuOkhyLG15OkN4fT1sbigpO2Z1bmN0aW9uIGRhKHIsZSl7bGV0IHQ9bmV3IHIuY29uc3RydWN0b3I7Zm9yKGxldCBpIGluIHIpe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixpKXx8aT09PSJwcm94eUNhY2hlIiljb250aW51ZTtsZXQgbj1yW2ldLHM9dHlwZW9mIG47aT09PSJwYXJlbnQiJiZzPT09Im9iamVjdCI/ZSYmKHRbaV09ZSk6aT09PSJzb3VyY2UiP3RbaV09bjpBcnJheS5pc0FycmF5KG4pP3RbaV09bi5tYXAoYT0+ZGEoYSx0KSk6KHM9PT0ib2JqZWN0IiYmbiE9PW51bGwmJihuPWRhKG4pKSx0W2ldPW4pfXJldHVybiB0fWZ1bmN0aW9uIFdyKHIsZSl7aWYoZSYmdHlwZW9mIGUub2Zmc2V0IT0idW5kZWZpbmVkIilyZXR1cm4gZS5vZmZzZXQ7bGV0IHQ9MSxpPTEsbj0wO2ZvcihsZXQgcz0wO3M8ci5sZW5ndGg7cysrKXtpZihpPT09ZS5saW5lJiZ0PT09ZS5jb2x1bW4pe249czticmVha31yW3NdPT09YApgPyh0PTEsaSs9MSk6dCs9MX1yZXR1cm4gbn12YXIgdW49Y2xhc3N7Y29uc3RydWN0b3IoZT17fSl7dGhpcy5yYXdzPXt9LHRoaXNbSHJdPSExLHRoaXNbQ3hdPSEwO2ZvcihsZXQgdCBpbiBlKWlmKHQ9PT0ibm9kZXMiKXt0aGlzLm5vZGVzPVtdO2ZvcihsZXQgaSBvZiBlW3RdKXR5cGVvZiBpLmNsb25lPT0iZnVuY3Rpb24iP3RoaXMuYXBwZW5kKGkuY2xvbmUoKSk6dGhpcy5hcHBlbmQoaSl9ZWxzZSB0aGlzW3RdPWVbdF19YWRkVG9FcnJvcihlKXtpZihlLnBvc3Rjc3NOb2RlPXRoaXMsZS5zdGFjayYmdGhpcy5zb3VyY2UmJi9cblxzezR9YXQgLy50ZXN0KGUuc3RhY2spKXtsZXQgdD10aGlzLnNvdXJjZTtlLnN0YWNrPWUuc3RhY2sucmVwbGFjZSgvXG5cc3s0fWF0IC8sYCQmJHt0LmlucHV0LmZyb219OiR7dC5zdGFydC5saW5lfToke3Quc3RhcnQuY29sdW1ufSQmYCl9cmV0dXJuIGV9YWZ0ZXIoZSl7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEFmdGVyKHRoaXMsZSksdGhpc31hc3NpZ24oZT17fSl7Zm9yKGxldCB0IGluIGUpdGhpc1t0XT1lW3RdO3JldHVybiB0aGlzfWJlZm9yZShlKXtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsZSksdGhpc31jbGVhblJhd3MoZSl7ZGVsZXRlIHRoaXMucmF3cy5iZWZvcmUsZGVsZXRlIHRoaXMucmF3cy5hZnRlcixlfHxkZWxldGUgdGhpcy5yYXdzLmJldHdlZW59Y2xvbmUoZT17fSl7bGV0IHQ9ZGEodGhpcyk7Zm9yKGxldCBpIGluIGUpdFtpXT1lW2ldO3JldHVybiB0fWNsb25lQWZ0ZXIoZT17fSl7bGV0IHQ9dGhpcy5jbG9uZShlKTtyZXR1cm4gdGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodGhpcyx0KSx0fWNsb25lQmVmb3JlKGU9e30pe2xldCB0PXRoaXMuY2xvbmUoZSk7cmV0dXJuIHRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLHQpLHR9ZXJyb3IoZSx0PXt9KXtpZih0aGlzLnNvdXJjZSl7bGV0e2VuZDppLHN0YXJ0Om59PXRoaXMucmFuZ2VCeSh0KTtyZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IoZSx7Y29sdW1uOm4uY29sdW1uLGxpbmU6bi5saW5lfSx7Y29sdW1uOmkuY29sdW1uLGxpbmU6aS5saW5lfSx0KX1yZXR1cm4gbmV3IGt4KGUpfWdldFByb3h5UHJvY2Vzc29yKCl7cmV0dXJue2dldChlLHQpe3JldHVybiB0PT09InByb3h5T2YiP2U6dD09PSJyb290Ij8oKT0+ZS5yb290KCkudG9Qcm94eSgpOmVbdF19LHNldChlLHQsaSl7cmV0dXJuIGVbdF09PT1pfHwoZVt0XT1pLCh0PT09InByb3AifHx0PT09InZhbHVlInx8dD09PSJuYW1lInx8dD09PSJwYXJhbXMifHx0PT09ImltcG9ydGFudCJ8fHQ9PT0idGV4dCIpJiZlLm1hcmtEaXJ0eSgpKSwhMH19fW1hcmtDbGVhbigpe3RoaXNbSHJdPSEwfW1hcmtEaXJ0eSgpe2lmKHRoaXNbSHJdKXt0aGlzW0hyXT0hMTtsZXQgZT10aGlzO2Zvcig7ZT1lLnBhcmVudDspZVtIcl09ITF9fW5leHQoKXtpZighdGhpcy5wYXJlbnQpcmV0dXJuO2xldCBlPXRoaXMucGFyZW50LmluZGV4KHRoaXMpO3JldHVybiB0aGlzLnBhcmVudC5ub2Rlc1tlKzFdfXBvc2l0aW9uQnkoZSl7bGV0IHQ9dGhpcy5zb3VyY2Uuc3RhcnQ7aWYoZS5pbmRleCl0PXRoaXMucG9zaXRpb25JbnNpZGUoZS5pbmRleCk7ZWxzZSBpZihlLndvcmQpe2xldCBuPXRoaXMuc291cmNlLmlucHV0LmNzcy5zbGljZShXcih0aGlzLnNvdXJjZS5pbnB1dC5jc3MsdGhpcy5zb3VyY2Uuc3RhcnQpLFdyKHRoaXMuc291cmNlLmlucHV0LmNzcyx0aGlzLnNvdXJjZS5lbmQpKS5pbmRleE9mKGUud29yZCk7biE9PS0xJiYodD10aGlzLnBvc2l0aW9uSW5zaWRlKG4pKX1yZXR1cm4gdH1wb3NpdGlvbkluc2lkZShlKXtsZXQgdD10aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4saT10aGlzLnNvdXJjZS5zdGFydC5saW5lLG49V3IodGhpcy5zb3VyY2UuaW5wdXQuY3NzLHRoaXMuc291cmNlLnN0YXJ0KSxzPW4rZTtmb3IobGV0IGE9bjthPHM7YSsrKXRoaXMuc291cmNlLmlucHV0LmNzc1thXT09PWAKYD8odD0xLGkrPTEpOnQrPTE7cmV0dXJue2NvbHVtbjp0LGxpbmU6aX19cHJldigpe2lmKCF0aGlzLnBhcmVudClyZXR1cm47bGV0IGU9dGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7cmV0dXJuIHRoaXMucGFyZW50Lm5vZGVzW2UtMV19cmFuZ2VCeShlKXtsZXQgdD17Y29sdW1uOnRoaXMuc291cmNlLnN0YXJ0LmNvbHVtbixsaW5lOnRoaXMuc291cmNlLnN0YXJ0LmxpbmV9LGk9dGhpcy5zb3VyY2UuZW5kP3tjb2x1bW46dGhpcy5zb3VyY2UuZW5kLmNvbHVtbisxLGxpbmU6dGhpcy5zb3VyY2UuZW5kLmxpbmV9Ontjb2x1bW46dC5jb2x1bW4rMSxsaW5lOnQubGluZX07aWYoZS53b3JkKXtsZXQgcz10aGlzLnNvdXJjZS5pbnB1dC5jc3Muc2xpY2UoV3IodGhpcy5zb3VyY2UuaW5wdXQuY3NzLHRoaXMuc291cmNlLnN0YXJ0KSxXcih0aGlzLnNvdXJjZS5pbnB1dC5jc3MsdGhpcy5zb3VyY2UuZW5kKSkuaW5kZXhPZihlLndvcmQpO3MhPT0tMSYmKHQ9dGhpcy5wb3NpdGlvbkluc2lkZShzKSxpPXRoaXMucG9zaXRpb25JbnNpZGUocytlLndvcmQubGVuZ3RoKSl9ZWxzZSBlLnN0YXJ0P3Q9e2NvbHVtbjplLnN0YXJ0LmNvbHVtbixsaW5lOmUuc3RhcnQubGluZX06ZS5pbmRleCYmKHQ9dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KSksZS5lbmQ/aT17Y29sdW1uOmUuZW5kLmNvbHVtbixsaW5lOmUuZW5kLmxpbmV9OnR5cGVvZiBlLmVuZEluZGV4PT0ibnVtYmVyIj9pPXRoaXMucG9zaXRpb25JbnNpZGUoZS5lbmRJbmRleCk6ZS5pbmRleCYmKGk9dGhpcy5wb3NpdGlvbkluc2lkZShlLmluZGV4KzEpKTtyZXR1cm4oaS5saW5lPHQubGluZXx8aS5saW5lPT09dC5saW5lJiZpLmNvbHVtbjw9dC5jb2x1bW4pJiYoaT17Y29sdW1uOnQuY29sdW1uKzEsbGluZTp0LmxpbmV9KSx7ZW5kOmksc3RhcnQ6dH19cmF3KGUsdCl7cmV0dXJuIG5ldyBTeCgpLnJhdyh0aGlzLGUsdCl9cmVtb3ZlKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc31yZXBsYWNlV2l0aCguLi5lKXtpZih0aGlzLnBhcmVudCl7bGV0IHQ9dGhpcyxpPSExO2ZvcihsZXQgbiBvZiBlKW49PT10aGlzP2k9ITA6aT8odGhpcy5wYXJlbnQuaW5zZXJ0QWZ0ZXIodCxuKSx0PW4pOnRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0LG4pO2l8fHRoaXMucmVtb3ZlKCl9cmV0dXJuIHRoaXN9cm9vdCgpe2xldCBlPXRoaXM7Zm9yKDtlLnBhcmVudCYmZS5wYXJlbnQudHlwZSE9PSJkb2N1bWVudCI7KWU9ZS5wYXJlbnQ7cmV0dXJuIGV9dG9KU09OKGUsdCl7bGV0IGk9e30sbj10PT1udWxsO3Q9dHx8bmV3IE1hcDtsZXQgcz0wO2ZvcihsZXQgYSBpbiB0aGlzKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMsYSl8fGE9PT0icGFyZW50Inx8YT09PSJwcm94eUNhY2hlIiljb250aW51ZTtsZXQgbz10aGlzW2FdO2lmKEFycmF5LmlzQXJyYXkobykpaVthXT1vLm1hcChsPT50eXBlb2YgbD09Im9iamVjdCImJmwudG9KU09OP2wudG9KU09OKG51bGwsdCk6bCk7ZWxzZSBpZih0eXBlb2Ygbz09Im9iamVjdCImJm8udG9KU09OKWlbYV09by50b0pTT04obnVsbCx0KTtlbHNlIGlmKGE9PT0ic291cmNlIil7bGV0IGw9dC5nZXQoby5pbnB1dCk7bD09bnVsbCYmKGw9cyx0LnNldChvLmlucHV0LHMpLHMrKyksaVthXT17ZW5kOm8uZW5kLGlucHV0SWQ6bCxzdGFydDpvLnN0YXJ0fX1lbHNlIGlbYV09b31yZXR1cm4gbiYmKGkuaW5wdXRzPVsuLi50LmtleXMoKV0ubWFwKGE9PmEudG9KU09OKCkpKSxpfXRvUHJveHkoKXtyZXR1cm4gdGhpcy5wcm94eUNhY2hlfHwodGhpcy5wcm94eUNhY2hlPW5ldyBQcm94eSh0aGlzLHRoaXMuZ2V0UHJveHlQcm9jZXNzb3IoKSkpLHRoaXMucHJveHlDYWNoZX10b1N0cmluZyhlPUF4KXtlLnN0cmluZ2lmeSYmKGU9ZS5zdHJpbmdpZnkpO2xldCB0PSIiO3JldHVybiBlKHRoaXMsaT0+e3QrPWl9KSx0fXdhcm4oZSx0LGkpe2xldCBuPXtub2RlOnRoaXN9O2ZvcihsZXQgcyBpbiBpKW5bc109aVtzXTtyZXR1cm4gZS53YXJuKHQsbil9Z2V0IHByb3h5T2YoKXtyZXR1cm4gdGhpc319O21jLmV4cG9ydHM9dW47dW4uZGVmYXVsdD11bn0pO3ZhciBRcj14KChDMyxnYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBfeD1HcigpLGZuPWNsYXNzIGV4dGVuZHMgX3h7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy50eXBlPSJjb21tZW50In19O2djLmV4cG9ydHM9Zm47Zm4uZGVmYXVsdD1mbn0pO3ZhciBZcj14KChfMyx5Yyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBFeD1HcigpLGNuPWNsYXNzIGV4dGVuZHMgRXh7Y29uc3RydWN0b3IoZSl7ZSYmdHlwZW9mIGUudmFsdWUhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgZS52YWx1ZSE9InN0cmluZyImJihlPXsuLi5lLHZhbHVlOlN0cmluZyhlLnZhbHVlKX0pO3N1cGVyKGUpO3RoaXMudHlwZT0iZGVjbCJ9Z2V0IHZhcmlhYmxlKCl7cmV0dXJuIHRoaXMucHJvcC5zdGFydHNXaXRoKCItLSIpfHx0aGlzLnByb3BbMF09PT0iJCJ9fTt5Yy5leHBvcnRzPWNuO2NuLmRlZmF1bHQ9Y259KTt2YXIgRXQ9eCgoRTMsX2MpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYmM9UXIoKSx3Yz1ZcigpLE94PUdyKCkse2lzQ2xlYW46dmMsbXk6eGN9PWxuKCksaGEsa2MsU2MsbWE7ZnVuY3Rpb24gQWMocil7cmV0dXJuIHIubWFwKGU9PihlLm5vZGVzJiYoZS5ub2Rlcz1BYyhlLm5vZGVzKSksZGVsZXRlIGUuc291cmNlLGUpKX1mdW5jdGlvbiBDYyhyKXtpZihyW3ZjXT0hMSxyLnByb3h5T2Yubm9kZXMpZm9yKGxldCBlIG9mIHIucHJveHlPZi5ub2RlcylDYyhlKX12YXIgRmU9Y2xhc3MgZXh0ZW5kcyBPeHthcHBlbmQoLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2xldCBpPXRoaXMubm9ybWFsaXplKHQsdGhpcy5sYXN0KTtmb3IobGV0IG4gb2YgaSl0aGlzLnByb3h5T2Yubm9kZXMucHVzaChuKX1yZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfWNsZWFuUmF3cyhlKXtpZihzdXBlci5jbGVhblJhd3MoZSksdGhpcy5ub2Rlcylmb3IobGV0IHQgb2YgdGhpcy5ub2Rlcyl0LmNsZWFuUmF3cyhlKX1lYWNoKGUpe2lmKCF0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuO2xldCB0PXRoaXMuZ2V0SXRlcmF0b3IoKSxpLG47Zm9yKDt0aGlzLmluZGV4ZXNbdF08dGhpcy5wcm94eU9mLm5vZGVzLmxlbmd0aCYmKGk9dGhpcy5pbmRleGVzW3RdLG49ZSh0aGlzLnByb3h5T2Yubm9kZXNbaV0saSksbiE9PSExKTspdGhpcy5pbmRleGVzW3RdKz0xO3JldHVybiBkZWxldGUgdGhpcy5pbmRleGVzW3RdLG59ZXZlcnkoZSl7cmV0dXJuIHRoaXMubm9kZXMuZXZlcnkoZSl9Z2V0SXRlcmF0b3IoKXt0aGlzLmxhc3RFYWNofHwodGhpcy5sYXN0RWFjaD0wKSx0aGlzLmluZGV4ZXN8fCh0aGlzLmluZGV4ZXM9e30pLHRoaXMubGFzdEVhY2grPTE7bGV0IGU9dGhpcy5sYXN0RWFjaDtyZXR1cm4gdGhpcy5pbmRleGVzW2VdPTAsZX1nZXRQcm94eVByb2Nlc3Nvcigpe3JldHVybntnZXQoZSx0KXtyZXR1cm4gdD09PSJwcm94eU9mIj9lOmVbdF0/dD09PSJlYWNoInx8dHlwZW9mIHQ9PSJzdHJpbmciJiZ0LnN0YXJ0c1dpdGgoIndhbGsiKT8oLi4uaSk9PmVbdF0oLi4uaS5tYXAobj0+dHlwZW9mIG49PSJmdW5jdGlvbiI/KHMsYSk9Pm4ocy50b1Byb3h5KCksYSk6bikpOnQ9PT0iZXZlcnkifHx0PT09InNvbWUiP2k9PmVbdF0oKG4sLi4ucyk9Pmkobi50b1Byb3h5KCksLi4ucykpOnQ9PT0icm9vdCI/KCk9PmUucm9vdCgpLnRvUHJveHkoKTp0PT09Im5vZGVzIj9lLm5vZGVzLm1hcChpPT5pLnRvUHJveHkoKSk6dD09PSJmaXJzdCJ8fHQ9PT0ibGFzdCI/ZVt0XS50b1Byb3h5KCk6ZVt0XTplW3RdfSxzZXQoZSx0LGkpe3JldHVybiBlW3RdPT09aXx8KGVbdF09aSwodD09PSJuYW1lInx8dD09PSJwYXJhbXMifHx0PT09InNlbGVjdG9yIikmJmUubWFya0RpcnR5KCkpLCEwfX19aW5kZXgoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIj9lOihlLnByb3h5T2YmJihlPWUucHJveHlPZiksdGhpcy5wcm94eU9mLm5vZGVzLmluZGV4T2YoZSkpfWluc2VydEFmdGVyKGUsdCl7bGV0IGk9dGhpcy5pbmRleChlKSxuPXRoaXMubm9ybWFsaXplKHQsdGhpcy5wcm94eU9mLm5vZGVzW2ldKS5yZXZlcnNlKCk7aT10aGlzLmluZGV4KGUpO2ZvcihsZXQgYSBvZiBuKXRoaXMucHJveHlPZi5ub2Rlcy5zcGxpY2UoaSsxLDAsYSk7bGV0IHM7Zm9yKGxldCBhIGluIHRoaXMuaW5kZXhlcylzPXRoaXMuaW5kZXhlc1thXSxpPHMmJih0aGlzLmluZGV4ZXNbYV09cytuLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31pbnNlcnRCZWZvcmUoZSx0KXtsZXQgaT10aGlzLmluZGV4KGUpLG49aT09PTA/InByZXBlbmQiOiExLHM9dGhpcy5ub3JtYWxpemUodCx0aGlzLnByb3h5T2Yubm9kZXNbaV0sbikucmV2ZXJzZSgpO2k9dGhpcy5pbmRleChlKTtmb3IobGV0IG8gb2Ygcyl0aGlzLnByb3h5T2Yubm9kZXMuc3BsaWNlKGksMCxvKTtsZXQgYTtmb3IobGV0IG8gaW4gdGhpcy5pbmRleGVzKWE9dGhpcy5pbmRleGVzW29dLGk8PWEmJih0aGlzLmluZGV4ZXNbb109YStzLmxlbmd0aCk7cmV0dXJuIHRoaXMubWFya0RpcnR5KCksdGhpc31ub3JtYWxpemUoZSx0KXtpZih0eXBlb2YgZT09InN0cmluZyIpZT1BYyhrYyhlKS5ub2Rlcyk7ZWxzZSBpZih0eXBlb2YgZT09InVuZGVmaW5lZCIpZT1bXTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2U9ZS5zbGljZSgwKTtmb3IobGV0IG4gb2YgZSluLnBhcmVudCYmbi5wYXJlbnQucmVtb3ZlQ2hpbGQobiwiaWdub3JlIil9ZWxzZSBpZihlLnR5cGU9PT0icm9vdCImJnRoaXMudHlwZSE9PSJkb2N1bWVudCIpe2U9ZS5ub2Rlcy5zbGljZSgwKTtmb3IobGV0IG4gb2YgZSluLnBhcmVudCYmbi5wYXJlbnQucmVtb3ZlQ2hpbGQobiwiaWdub3JlIil9ZWxzZSBpZihlLnR5cGUpZT1bZV07ZWxzZSBpZihlLnByb3Ape2lmKHR5cGVvZiBlLnZhbHVlPT0idW5kZWZpbmVkIil0aHJvdyBuZXcgRXJyb3IoIlZhbHVlIGZpZWxkIGlzIG1pc3NlZCBpbiBub2RlIGNyZWF0aW9uIik7dHlwZW9mIGUudmFsdWUhPSJzdHJpbmciJiYoZS52YWx1ZT1TdHJpbmcoZS52YWx1ZSkpLGU9W25ldyB3YyhlKV19ZWxzZSBpZihlLnNlbGVjdG9yfHxlLnNlbGVjdG9ycyllPVtuZXcgbWEoZSldO2Vsc2UgaWYoZS5uYW1lKWU9W25ldyBoYShlKV07ZWxzZSBpZihlLnRleHQpZT1bbmV3IGJjKGUpXTtlbHNlIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBub2RlIHR5cGUgaW4gbm9kZSBjcmVhdGlvbiIpO3JldHVybiBlLm1hcChuPT4oblt4Y118fEZlLnJlYnVpbGQobiksbj1uLnByb3h5T2Ysbi5wYXJlbnQmJm4ucGFyZW50LnJlbW92ZUNoaWxkKG4pLG5bdmNdJiZDYyhuKSxuLnJhd3N8fChuLnJhd3M9e30pLHR5cGVvZiBuLnJhd3MuYmVmb3JlPT0idW5kZWZpbmVkIiYmdCYmdHlwZW9mIHQucmF3cy5iZWZvcmUhPSJ1bmRlZmluZWQiJiYobi5yYXdzLmJlZm9yZT10LnJhd3MuYmVmb3JlLnJlcGxhY2UoL1xTL2csIiIpKSxuLnBhcmVudD10aGlzLnByb3h5T2YsbikpfXByZXBlbmQoLi4uZSl7ZT1lLnJldmVyc2UoKTtmb3IobGV0IHQgb2YgZSl7bGV0IGk9dGhpcy5ub3JtYWxpemUodCx0aGlzLmZpcnN0LCJwcmVwZW5kIikucmV2ZXJzZSgpO2ZvcihsZXQgbiBvZiBpKXRoaXMucHJveHlPZi5ub2Rlcy51bnNoaWZ0KG4pO2ZvcihsZXQgbiBpbiB0aGlzLmluZGV4ZXMpdGhpcy5pbmRleGVzW25dPXRoaXMuaW5kZXhlc1tuXStpLmxlbmd0aH1yZXR1cm4gdGhpcy5tYXJrRGlydHkoKSx0aGlzfXB1c2goZSl7cmV0dXJuIGUucGFyZW50PXRoaXMsdGhpcy5wcm94eU9mLm5vZGVzLnB1c2goZSksdGhpc31yZW1vdmVBbGwoKXtmb3IobGV0IGUgb2YgdGhpcy5wcm94eU9mLm5vZGVzKWUucGFyZW50PXZvaWQgMDtyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzPVtdLHRoaXMubWFya0RpcnR5KCksdGhpc31yZW1vdmVDaGlsZChlKXtlPXRoaXMuaW5kZXgoZSksdGhpcy5wcm94eU9mLm5vZGVzW2VdLnBhcmVudD12b2lkIDAsdGhpcy5wcm94eU9mLm5vZGVzLnNwbGljZShlLDEpO2xldCB0O2ZvcihsZXQgaSBpbiB0aGlzLmluZGV4ZXMpdD10aGlzLmluZGV4ZXNbaV0sdD49ZSYmKHRoaXMuaW5kZXhlc1tpXT10LTEpO3JldHVybiB0aGlzLm1hcmtEaXJ0eSgpLHRoaXN9cmVwbGFjZVZhbHVlcyhlLHQsaSl7cmV0dXJuIGl8fChpPXQsdD17fSksdGhpcy53YWxrRGVjbHMobj0+e3QucHJvcHMmJiF0LnByb3BzLmluY2x1ZGVzKG4ucHJvcCl8fHQuZmFzdCYmIW4udmFsdWUuaW5jbHVkZXModC5mYXN0KXx8KG4udmFsdWU9bi52YWx1ZS5yZXBsYWNlKGUsaSkpfSksdGhpcy5tYXJrRGlydHkoKSx0aGlzfXNvbWUoZSl7cmV0dXJuIHRoaXMubm9kZXMuc29tZShlKX13YWxrKGUpe3JldHVybiB0aGlzLmVhY2goKHQsaSk9PntsZXQgbjt0cnl7bj1lKHQsaSl9Y2F0Y2gocyl7dGhyb3cgdC5hZGRUb0Vycm9yKHMpfXJldHVybiBuIT09ITEmJnQud2FsayYmKG49dC53YWxrKGUpKSxufSl9d2Fsa0F0UnVsZXMoZSx0KXtyZXR1cm4gdD9lIGluc3RhbmNlb2YgUmVnRXhwP3RoaXMud2FsaygoaSxuKT0+e2lmKGkudHlwZT09PSJhdHJ1bGUiJiZlLnRlc3QoaS5uYW1lKSlyZXR1cm4gdChpLG4pfSk6dGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImF0cnVsZSImJmkubmFtZT09PWUpcmV0dXJuIHQoaSxuKX0pOih0PWUsdGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImF0cnVsZSIpcmV0dXJuIHQoaSxuKX0pKX13YWxrQ29tbWVudHMoZSl7cmV0dXJuIHRoaXMud2FsaygodCxpKT0+e2lmKHQudHlwZT09PSJjb21tZW50IilyZXR1cm4gZSh0LGkpfSl9d2Fsa0RlY2xzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0iZGVjbCImJmUudGVzdChpLnByb3ApKXJldHVybiB0KGksbil9KTp0aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0iZGVjbCImJmkucHJvcD09PWUpcmV0dXJuIHQoaSxuKX0pOih0PWUsdGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09ImRlY2wiKXJldHVybiB0KGksbil9KSl9d2Fsa1J1bGVzKGUsdCl7cmV0dXJuIHQ/ZSBpbnN0YW5jZW9mIFJlZ0V4cD90aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0icnVsZSImJmUudGVzdChpLnNlbGVjdG9yKSlyZXR1cm4gdChpLG4pfSk6dGhpcy53YWxrKChpLG4pPT57aWYoaS50eXBlPT09InJ1bGUiJiZpLnNlbGVjdG9yPT09ZSlyZXR1cm4gdChpLG4pfSk6KHQ9ZSx0aGlzLndhbGsoKGksbik9PntpZihpLnR5cGU9PT0icnVsZSIpcmV0dXJuIHQoaSxuKX0pKX1nZXQgZmlyc3QoKXtpZighIXRoaXMucHJveHlPZi5ub2RlcylyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzWzBdfWdldCBsYXN0KCl7aWYoISF0aGlzLnByb3h5T2Yubm9kZXMpcmV0dXJuIHRoaXMucHJveHlPZi5ub2Rlc1t0aGlzLnByb3h5T2Yubm9kZXMubGVuZ3RoLTFdfX07RmUucmVnaXN0ZXJQYXJzZT1yPT57a2M9cn07RmUucmVnaXN0ZXJSdWxlPXI9PnttYT1yfTtGZS5yZWdpc3RlckF0UnVsZT1yPT57aGE9cn07RmUucmVnaXN0ZXJSb290PXI9PntTYz1yfTtfYy5leHBvcnRzPUZlO0ZlLmRlZmF1bHQ9RmU7RmUucmVidWlsZD1yPT57ci50eXBlPT09ImF0cnVsZSI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsaGEucHJvdG90eXBlKTpyLnR5cGU9PT0icnVsZSI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsbWEucHJvdG90eXBlKTpyLnR5cGU9PT0iZGVjbCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsd2MucHJvdG90eXBlKTpyLnR5cGU9PT0iY29tbWVudCI/T2JqZWN0LnNldFByb3RvdHlwZU9mKHIsYmMucHJvdG90eXBlKTpyLnR5cGU9PT0icm9vdCImJk9iamVjdC5zZXRQcm90b3R5cGVPZihyLFNjLnByb3RvdHlwZSksclt4Y109ITAsci5ub2RlcyYmci5ub2Rlcy5mb3JFYWNoKGU9PntGZS5yZWJ1aWxkKGUpfSl9fSk7dmFyIHBuPXgoKE8zLE9jKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIEVjPUV0KCksS3I9Y2xhc3MgZXh0ZW5kcyBFY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnR5cGU9ImF0cnVsZSJ9YXBwZW5kKC4uLmUpe3JldHVybiB0aGlzLnByb3h5T2Yubm9kZXN8fCh0aGlzLm5vZGVzPVtdKSxzdXBlci5hcHBlbmQoLi4uZSl9cHJlcGVuZCguLi5lKXtyZXR1cm4gdGhpcy5wcm94eU9mLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSksc3VwZXIucHJlcGVuZCguLi5lKX19O09jLmV4cG9ydHM9S3I7S3IuZGVmYXVsdD1LcjtFYy5yZWdpc3RlckF0UnVsZShLcil9KTt2YXIgZG49eCgoVDMsUGMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgVHg9RXQoKSxUYyxSYyxlcj1jbGFzcyBleHRlbmRzIFR4e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHt0eXBlOiJkb2N1bWVudCIsLi4uZX0pO3RoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IFRjKG5ldyBSYyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07ZXIucmVnaXN0ZXJMYXp5UmVzdWx0PXI9PntUYz1yfTtlci5yZWdpc3RlclByb2Nlc3Nvcj1yPT57UmM9cn07UGMuZXhwb3J0cz1lcjtlci5kZWZhdWx0PWVyfSk7dmFyIERjPXgoKFIzLEljKT0+e3UoKTt2YXIgUng9InVzZWFuZG9tLTI2VDE5ODM0MFBYNzVweEpBQ0tWRVJZTUlOREJVU0hXT0xGX0dRWmJmZ2hqa2xxdnd5enJpY3QiLFB4PShyLGU9MjEpPT4odD1lKT0+e2xldCBpPSIiLG49dDtmb3IoO24tLTspaSs9cltNYXRoLnJhbmRvbSgpKnIubGVuZ3RofDBdO3JldHVybiBpfSxJeD0ocj0yMSk9PntsZXQgZT0iIix0PXI7Zm9yKDt0LS07KWUrPVJ4W01hdGgucmFuZG9tKCkqNjR8MF07cmV0dXJuIGV9O0ljLmV4cG9ydHM9e25hbm9pZDpJeCxjdXN0b21BbHBoYWJldDpQeH19KTt2YXIgcWM9eCgoKT0+e3UoKX0pO3ZhciBnYT14KChEMywkYyk9Pnt1KCk7JGMuZXhwb3J0cz17fX0pO3ZhciBtbj14KChxMyxCYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhcntuYW5vaWQ6RHh9PURjKCkse2lzQWJzb2x1dGU6eWEscmVzb2x2ZTpiYX09KGV0KCksVXIpLHtTb3VyY2VNYXBDb25zdW1lcjpxeCxTb3VyY2VNYXBHZW5lcmF0b3I6JHh9PXFjKCkse2ZpbGVVUkxUb1BhdGg6TGMscGF0aFRvRmlsZVVSTDpobn09KGxhKCksbGMpLE1jPWFuKCksTHg9Z2EoKSx3YT11YSgpLHZhPVN5bWJvbCgiZnJvbU9mZnNldENhY2hlIiksTXg9Qm9vbGVhbihxeCYmJHgpLE5jPUJvb2xlYW4oYmEmJnlhKSxYcj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQ9e30pe2lmKGU9PT1udWxsfHx0eXBlb2YgZT09InVuZGVmaW5lZCJ8fHR5cGVvZiBlPT0ib2JqZWN0IiYmIWUudG9TdHJpbmcpdGhyb3cgbmV3IEVycm9yKGBQb3N0Q1NTIHJlY2VpdmVkICR7ZX0gaW5zdGVhZCBvZiBDU1Mgc3RyaW5nYCk7aWYodGhpcy5jc3M9ZS50b1N0cmluZygpLHRoaXMuY3NzWzBdPT09Ilx1RkVGRiJ8fHRoaXMuY3NzWzBdPT09Ilx1RkZGRSI/KHRoaXMuaGFzQk9NPSEwLHRoaXMuY3NzPXRoaXMuY3NzLnNsaWNlKDEpKTp0aGlzLmhhc0JPTT0hMSx0LmZyb20mJighTmN8fC9eXHcrOlwvXC8vLnRlc3QodC5mcm9tKXx8eWEodC5mcm9tKT90aGlzLmZpbGU9dC5mcm9tOnRoaXMuZmlsZT1iYSh0LmZyb20pKSxOYyYmTXgpe2xldCBpPW5ldyBMeCh0aGlzLmNzcyx0KTtpZihpLnRleHQpe3RoaXMubWFwPWk7bGV0IG49aS5jb25zdW1lcigpLmZpbGU7IXRoaXMuZmlsZSYmbiYmKHRoaXMuZmlsZT10aGlzLm1hcFJlc29sdmUobikpfX10aGlzLmZpbGV8fCh0aGlzLmlkPSI8aW5wdXQgY3NzICIrRHgoNikrIj4iKSx0aGlzLm1hcCYmKHRoaXMubWFwLmZpbGU9dGhpcy5mcm9tKX1lcnJvcihlLHQsaSxuPXt9KXtsZXQgcyxhLG87aWYodCYmdHlwZW9mIHQ9PSJvYmplY3QiKXtsZXQgYz10LGY9aTtpZih0eXBlb2YgYy5vZmZzZXQ9PSJudW1iZXIiKXtsZXQgZD10aGlzLmZyb21PZmZzZXQoYy5vZmZzZXQpO3Q9ZC5saW5lLGk9ZC5jb2x9ZWxzZSB0PWMubGluZSxpPWMuY29sdW1uO2lmKHR5cGVvZiBmLm9mZnNldD09Im51bWJlciIpe2xldCBkPXRoaXMuZnJvbU9mZnNldChmLm9mZnNldCk7YT1kLmxpbmUscz1kLmNvbH1lbHNlIGE9Zi5saW5lLHM9Zi5jb2x1bW59ZWxzZSBpZighaSl7bGV0IGM9dGhpcy5mcm9tT2Zmc2V0KHQpO3Q9Yy5saW5lLGk9Yy5jb2x9bGV0IGw9dGhpcy5vcmlnaW4odCxpLGEscyk7cmV0dXJuIGw/bz1uZXcgTWMoZSxsLmVuZExpbmU9PT12b2lkIDA/bC5saW5lOntjb2x1bW46bC5jb2x1bW4sbGluZTpsLmxpbmV9LGwuZW5kTGluZT09PXZvaWQgMD9sLmNvbHVtbjp7Y29sdW1uOmwuZW5kQ29sdW1uLGxpbmU6bC5lbmRMaW5lfSxsLnNvdXJjZSxsLmZpbGUsbi5wbHVnaW4pOm89bmV3IE1jKGUsYT09PXZvaWQgMD90Ontjb2x1bW46aSxsaW5lOnR9LGE9PT12b2lkIDA/aTp7Y29sdW1uOnMsbGluZTphfSx0aGlzLmNzcyx0aGlzLmZpbGUsbi5wbHVnaW4pLG8uaW5wdXQ9e2NvbHVtbjppLGVuZENvbHVtbjpzLGVuZExpbmU6YSxsaW5lOnQsc291cmNlOnRoaXMuY3NzfSx0aGlzLmZpbGUmJihobiYmKG8uaW5wdXQudXJsPWhuKHRoaXMuZmlsZSkudG9TdHJpbmcoKSksby5pbnB1dC5maWxlPXRoaXMuZmlsZSksb31mcm9tT2Zmc2V0KGUpe2xldCB0LGk7aWYodGhpc1t2YV0paT10aGlzW3ZhXTtlbHNle2xldCBzPXRoaXMuY3NzLnNwbGl0KGAKYCk7aT1uZXcgQXJyYXkocy5sZW5ndGgpO2xldCBhPTA7Zm9yKGxldCBvPTAsbD1zLmxlbmd0aDtvPGw7bysrKWlbb109YSxhKz1zW29dLmxlbmd0aCsxO3RoaXNbdmFdPWl9dD1pW2kubGVuZ3RoLTFdO2xldCBuPTA7aWYoZT49dCluPWkubGVuZ3RoLTE7ZWxzZXtsZXQgcz1pLmxlbmd0aC0yLGE7Zm9yKDtuPHM7KWlmKGE9bisocy1uPj4xKSxlPGlbYV0pcz1hLTE7ZWxzZSBpZihlPj1pW2ErMV0pbj1hKzE7ZWxzZXtuPWE7YnJlYWt9fXJldHVybntjb2w6ZS1pW25dKzEsbGluZTpuKzF9fW1hcFJlc29sdmUoZSl7cmV0dXJuL15cdys6XC9cLy8udGVzdChlKT9lOmJhKHRoaXMubWFwLmNvbnN1bWVyKCkuc291cmNlUm9vdHx8dGhpcy5tYXAucm9vdHx8Ii4iLGUpfW9yaWdpbihlLHQsaSxuKXtpZighdGhpcy5tYXApcmV0dXJuITE7bGV0IHM9dGhpcy5tYXAuY29uc3VtZXIoKSxhPXMub3JpZ2luYWxQb3NpdGlvbkZvcih7Y29sdW1uOnQsbGluZTplfSk7aWYoIWEuc291cmNlKXJldHVybiExO2xldCBvO3R5cGVvZiBpPT0ibnVtYmVyIiYmKG89cy5vcmlnaW5hbFBvc2l0aW9uRm9yKHtjb2x1bW46bixsaW5lOml9KSk7bGV0IGw7eWEoYS5zb3VyY2UpP2w9aG4oYS5zb3VyY2UpOmw9bmV3IFVSTChhLnNvdXJjZSx0aGlzLm1hcC5jb25zdW1lcigpLnNvdXJjZVJvb3R8fGhuKHRoaXMubWFwLm1hcEZpbGUpKTtsZXQgYz17Y29sdW1uOmEuY29sdW1uLGVuZENvbHVtbjpvJiZvLmNvbHVtbixlbmRMaW5lOm8mJm8ubGluZSxsaW5lOmEubGluZSx1cmw6bC50b1N0cmluZygpfTtpZihsLnByb3RvY29sPT09ImZpbGU6IilpZihMYyljLmZpbGU9TGMobCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoImZpbGU6IHByb3RvY29sIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBQb3N0Q1NTIGJ1aWxkIik7bGV0IGY9cy5zb3VyY2VDb250ZW50Rm9yKGEuc291cmNlKTtyZXR1cm4gZiYmKGMuc291cmNlPWYpLGN9dG9KU09OKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mWyJoYXNCT00iLCJjc3MiLCJmaWxlIiwiaWQiXSl0aGlzW3RdIT1udWxsJiYoZVt0XT10aGlzW3RdKTtyZXR1cm4gdGhpcy5tYXAmJihlLm1hcD17Li4udGhpcy5tYXB9LGUubWFwLmNvbnN1bWVyQ2FjaGUmJihlLm1hcC5jb25zdW1lckNhY2hlPXZvaWQgMCkpLGV9Z2V0IGZyb20oKXtyZXR1cm4gdGhpcy5maWxlfHx0aGlzLmlkfX07QmMuZXhwb3J0cz1YcjtYci5kZWZhdWx0PVhyO3dhJiZ3YS5yZWdpc3RlcklucHV0JiZ3YS5yZWdpc3RlcklucHV0KFhyKX0pO3ZhciB0cj14KCgkMyxVYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBGYz1FdCgpLGpjLHpjLFV0PWNsYXNzIGV4dGVuZHMgRmN7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy50eXBlPSJyb290Iix0aGlzLm5vZGVzfHwodGhpcy5ub2Rlcz1bXSl9bm9ybWFsaXplKGUsdCxpKXtsZXQgbj1zdXBlci5ub3JtYWxpemUoZSk7aWYodCl7aWYoaT09PSJwcmVwZW5kIil0aGlzLm5vZGVzLmxlbmd0aD4xP3QucmF3cy5iZWZvcmU9dGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZTpkZWxldGUgdC5yYXdzLmJlZm9yZTtlbHNlIGlmKHRoaXMuZmlyc3QhPT10KWZvcihsZXQgcyBvZiBuKXMucmF3cy5iZWZvcmU9dC5yYXdzLmJlZm9yZX1yZXR1cm4gbn1yZW1vdmVDaGlsZChlLHQpe2xldCBpPXRoaXMuaW5kZXgoZSk7cmV0dXJuIXQmJmk9PT0wJiZ0aGlzLm5vZGVzLmxlbmd0aD4xJiYodGhpcy5ub2Rlc1sxXS5yYXdzLmJlZm9yZT10aGlzLm5vZGVzW2ldLnJhd3MuYmVmb3JlKSxzdXBlci5yZW1vdmVDaGlsZChlKX10b1Jlc3VsdChlPXt9KXtyZXR1cm4gbmV3IGpjKG5ldyB6Yyx0aGlzLGUpLnN0cmluZ2lmeSgpfX07VXQucmVnaXN0ZXJMYXp5UmVzdWx0PXI9PntqYz1yfTtVdC5yZWdpc3RlclByb2Nlc3Nvcj1yPT57emM9cn07VWMuZXhwb3J0cz1VdDtVdC5kZWZhdWx0PVV0O0ZjLnJlZ2lzdGVyUm9vdChVdCl9KTt2YXIgeGE9eCgoTDMsVmMpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgWnI9e2NvbW1hKHIpe3JldHVybiBaci5zcGxpdChyLFsiLCJdLCEwKX0sc3BhY2Uocil7bGV0IGU9WyIgIixgCmAsIgkiXTtyZXR1cm4gWnIuc3BsaXQocixlKX0sc3BsaXQocixlLHQpe2xldCBpPVtdLG49IiIscz0hMSxhPTAsbz0hMSxsPSIiLGM9ITE7Zm9yKGxldCBmIG9mIHIpYz9jPSExOmY9PT0iXFwiP2M9ITA6bz9mPT09bCYmKG89ITEpOmY9PT0nIid8fGY9PT0iJyI/KG89ITAsbD1mKTpmPT09IigiP2ErPTE6Zj09PSIpIj9hPjAmJihhLT0xKTphPT09MCYmZS5pbmNsdWRlcyhmKSYmKHM9ITApLHM/KG4hPT0iIiYmaS5wdXNoKG4udHJpbSgpKSxuPSIiLHM9ITEpOm4rPWY7cmV0dXJuKHR8fG4hPT0iIikmJmkucHVzaChuLnRyaW0oKSksaX19O1ZjLmV4cG9ydHM9WnI7WnIuZGVmYXVsdD1acn0pO3ZhciBnbj14KChNMyxXYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBIYz1FdCgpLE54PXhhKCksSnI9Y2xhc3MgZXh0ZW5kcyBIY3tjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnR5cGU9InJ1bGUiLHRoaXMubm9kZXN8fCh0aGlzLm5vZGVzPVtdKX1nZXQgc2VsZWN0b3JzKCl7cmV0dXJuIE54LmNvbW1hKHRoaXMuc2VsZWN0b3IpfXNldCBzZWxlY3RvcnMoZSl7bGV0IHQ9dGhpcy5zZWxlY3Rvcj90aGlzLnNlbGVjdG9yLm1hdGNoKC8sXHMqLyk6bnVsbCxpPXQ/dFswXToiLCIrdGhpcy5yYXcoImJldHdlZW4iLCJiZWZvcmVPcGVuIik7dGhpcy5zZWxlY3Rvcj1lLmpvaW4oaSl9fTtXYy5leHBvcnRzPUpyO0pyLmRlZmF1bHQ9SnI7SGMucmVnaXN0ZXJSdWxlKEpyKX0pO3ZhciBRYz14KChOMyxHYyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBCeD1wbigpLEZ4PVFyKCksang9WXIoKSx6eD1tbigpLFV4PWdhKCksVng9dHIoKSxIeD1nbigpO2Z1bmN0aW9uIGVpKHIsZSl7aWYoQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gci5tYXAobj0+ZWkobikpO2xldHtpbnB1dHM6dCwuLi5pfT1yO2lmKHQpe2U9W107Zm9yKGxldCBuIG9mIHQpe2xldCBzPXsuLi5uLF9fcHJvdG9fXzp6eC5wcm90b3R5cGV9O3MubWFwJiYocy5tYXA9ey4uLnMubWFwLF9fcHJvdG9fXzpVeC5wcm90b3R5cGV9KSxlLnB1c2gocyl9fWlmKGkubm9kZXMmJihpLm5vZGVzPXIubm9kZXMubWFwKG49PmVpKG4sZSkpKSxpLnNvdXJjZSl7bGV0e2lucHV0SWQ6biwuLi5zfT1pLnNvdXJjZTtpLnNvdXJjZT1zLG4hPW51bGwmJihpLnNvdXJjZS5pbnB1dD1lW25dKX1pZihpLnR5cGU9PT0icm9vdCIpcmV0dXJuIG5ldyBWeChpKTtpZihpLnR5cGU9PT0iZGVjbCIpcmV0dXJuIG5ldyBqeChpKTtpZihpLnR5cGU9PT0icnVsZSIpcmV0dXJuIG5ldyBIeChpKTtpZihpLnR5cGU9PT0iY29tbWVudCIpcmV0dXJuIG5ldyBGeChpKTtpZihpLnR5cGU9PT0iYXRydWxlIilyZXR1cm4gbmV3IEJ4KGkpO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBub2RlIHR5cGU6ICIrci50eXBlKX1HYy5leHBvcnRzPWVpO2VpLmRlZmF1bHQ9ZWl9KTt2YXIga2E9eCgoQjMsWWMpPT57dSgpO1ljLmV4cG9ydHM9ZnVuY3Rpb24ocixlKXtyZXR1cm57Z2VuZXJhdGU6KCk9PntsZXQgdD0iIjtyZXR1cm4gcihlLGk9Pnt0Kz1pfSksW3RdfX19fSk7dmFyIGVwPXgoKEYzLEpjKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIFNhPSInIi5jaGFyQ29kZUF0KDApLEtjPSciJy5jaGFyQ29kZUF0KDApLHluPSJcXCIuY2hhckNvZGVBdCgwKSxYYz0iLyIuY2hhckNvZGVBdCgwKSxibj1gCmAuY2hhckNvZGVBdCgwKSx0aT0iICIuY2hhckNvZGVBdCgwKSx3bj0iXGYiLmNoYXJDb2RlQXQoMCksdm49IgkiLmNoYXJDb2RlQXQoMCkseG49IlxyIi5jaGFyQ29kZUF0KDApLFd4PSJbIi5jaGFyQ29kZUF0KDApLEd4PSJdIi5jaGFyQ29kZUF0KDApLFF4PSIoIi5jaGFyQ29kZUF0KDApLFl4PSIpIi5jaGFyQ29kZUF0KDApLEt4PSJ7Ii5jaGFyQ29kZUF0KDApLFh4PSJ9Ii5jaGFyQ29kZUF0KDApLFp4PSI7Ii5jaGFyQ29kZUF0KDApLEp4PSIqIi5jaGFyQ29kZUF0KDApLGUxPSI6Ii5jaGFyQ29kZUF0KDApLHQxPSJAIi5jaGFyQ29kZUF0KDApLGtuPS9bXHRcblxmXHIgIiMnKCkvO1tcXFxde31dL2csU249L1tcdFxuXGZcciAhIiMnKCk6O0BbXFxcXXt9XXxcLyg/PVwqKS9nLHIxPS8uW1xyXG4iJygvXFxdLyxaYz0vW1xkYS1mXS9pO0pjLmV4cG9ydHM9ZnVuY3Rpb24oZSx0PXt9KXtsZXQgaT1lLmNzcy52YWx1ZU9mKCksbj10Lmlnbm9yZUVycm9ycyxzLGEsbyxsLGMsZixkLHAsaCxiLHY9aS5sZW5ndGgseT0wLHc9W10saz1bXTtmdW5jdGlvbiBTKCl7cmV0dXJuIHl9ZnVuY3Rpb24gRShSKXt0aHJvdyBlLmVycm9yKCJVbmNsb3NlZCAiK1IseSl9ZnVuY3Rpb24gVCgpe3JldHVybiBrLmxlbmd0aD09PTAmJnk+PXZ9ZnVuY3Rpb24gQihSKXtpZihrLmxlbmd0aClyZXR1cm4gay5wb3AoKTtpZih5Pj12KXJldHVybjtsZXQgRj1SP1IuaWdub3JlVW5jbG9zZWQ6ITE7c3dpdGNoKHM9aS5jaGFyQ29kZUF0KHkpLHMpe2Nhc2UgYm46Y2FzZSB0aTpjYXNlIHZuOmNhc2UgeG46Y2FzZSB3bjp7bD15O2RvIGwrPTEscz1pLmNoYXJDb2RlQXQobCk7d2hpbGUocz09PXRpfHxzPT09Ym58fHM9PT12bnx8cz09PXhufHxzPT09d24pO2Y9WyJzcGFjZSIsaS5zbGljZSh5LGwpXSx5PWwtMTticmVha31jYXNlIFd4OmNhc2UgR3g6Y2FzZSBLeDpjYXNlIFh4OmNhc2UgZTE6Y2FzZSBaeDpjYXNlIFl4OntsZXQgWT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpO2Y9W1ksWSx5XTticmVha31jYXNlIFF4OntpZihiPXcubGVuZ3RoP3cucG9wKClbMV06IiIsaD1pLmNoYXJDb2RlQXQoeSsxKSxiPT09InVybCImJmghPT1TYSYmaCE9PUtjJiZoIT09dGkmJmghPT1ibiYmaCE9PXZuJiZoIT09d24mJmghPT14bil7bD15O2Rve2lmKGQ9ITEsbD1pLmluZGV4T2YoIikiLGwrMSksbD09PS0xKWlmKG58fEYpe2w9eTticmVha31lbHNlIEUoImJyYWNrZXQiKTtmb3IocD1sO2kuY2hhckNvZGVBdChwLTEpPT09eW47KXAtPTEsZD0hZH13aGlsZShkKTtmPVsiYnJhY2tldHMiLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sfWVsc2UgbD1pLmluZGV4T2YoIikiLHkrMSksYT1pLnNsaWNlKHksbCsxKSxsPT09LTF8fHIxLnRlc3QoYSk/Zj1bIigiLCIoIix5XTooZj1bImJyYWNrZXRzIixhLHksbF0seT1sKTticmVha31jYXNlIFNhOmNhc2UgS2M6e2M9cz09PVNhPyInIjonIicsbD15O2Rve2lmKGQ9ITEsbD1pLmluZGV4T2YoYyxsKzEpLGw9PT0tMSlpZihufHxGKXtsPXkrMTticmVha31lbHNlIEUoInN0cmluZyIpO2ZvcihwPWw7aS5jaGFyQ29kZUF0KHAtMSk9PT15bjspcC09MSxkPSFkfXdoaWxlKGQpO2Y9WyJzdHJpbmciLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sO2JyZWFrfWNhc2UgdDE6e2tuLmxhc3RJbmRleD15KzEsa24udGVzdChpKSxrbi5sYXN0SW5kZXg9PT0wP2w9aS5sZW5ndGgtMTpsPWtuLmxhc3RJbmRleC0yLGY9WyJhdC13b3JkIixpLnNsaWNlKHksbCsxKSx5LGxdLHk9bDticmVha31jYXNlIHluOntmb3IobD15LG89ITA7aS5jaGFyQ29kZUF0KGwrMSk9PT15bjspbCs9MSxvPSFvO2lmKHM9aS5jaGFyQ29kZUF0KGwrMSksbyYmcyE9PVhjJiZzIT09dGkmJnMhPT1ibiYmcyE9PXZuJiZzIT09eG4mJnMhPT13biYmKGwrPTEsWmMudGVzdChpLmNoYXJBdChsKSkpKXtmb3IoO1pjLnRlc3QoaS5jaGFyQXQobCsxKSk7KWwrPTE7aS5jaGFyQ29kZUF0KGwrMSk9PT10aSYmKGwrPTEpfWY9WyJ3b3JkIixpLnNsaWNlKHksbCsxKSx5LGxdLHk9bDticmVha31kZWZhdWx0OntzPT09WGMmJmkuY2hhckNvZGVBdCh5KzEpPT09Sng/KGw9aS5pbmRleE9mKCIqLyIseSsyKSsxLGw9PT0wJiYobnx8Rj9sPWkubGVuZ3RoOkUoImNvbW1lbnQiKSksZj1bImNvbW1lbnQiLGkuc2xpY2UoeSxsKzEpLHksbF0seT1sKTooU24ubGFzdEluZGV4PXkrMSxTbi50ZXN0KGkpLFNuLmxhc3RJbmRleD09PTA/bD1pLmxlbmd0aC0xOmw9U24ubGFzdEluZGV4LTIsZj1bIndvcmQiLGkuc2xpY2UoeSxsKzEpLHksbF0sdy5wdXNoKGYpLHk9bCk7YnJlYWt9fXJldHVybiB5KyssZn1mdW5jdGlvbiBOKFIpe2sucHVzaChSKX1yZXR1cm57YmFjazpOLGVuZE9mRmlsZTpULG5leHRUb2tlbjpCLHBvc2l0aW9uOlN9fX0pO3ZhciBzcD14KChqMyxucCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBpMT1wbigpLG4xPVFyKCksczE9WXIoKSxhMT10cigpLHRwPWduKCksbzE9ZXAoKSxycD17ZW1wdHk6ITAsc3BhY2U6ITB9O2Z1bmN0aW9uIGwxKHIpe2ZvcihsZXQgZT1yLmxlbmd0aC0xO2U+PTA7ZS0tKXtsZXQgdD1yW2VdLGk9dFszXXx8dFsyXTtpZihpKXJldHVybiBpfX12YXIgaXA9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5pbnB1dD1lLHRoaXMucm9vdD1uZXcgYTEsdGhpcy5jdXJyZW50PXRoaXMucm9vdCx0aGlzLnNwYWNlcz0iIix0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmNyZWF0ZVRva2VuaXplcigpLHRoaXMucm9vdC5zb3VyY2U9e2lucHV0OmUsc3RhcnQ6e2NvbHVtbjoxLGxpbmU6MSxvZmZzZXQ6MH19fWF0cnVsZShlKXtsZXQgdD1uZXcgaTE7dC5uYW1lPWVbMV0uc2xpY2UoMSksdC5uYW1lPT09IiImJnRoaXMudW5uYW1lZEF0cnVsZSh0LGUpLHRoaXMuaW5pdCh0LGVbMl0pO2xldCBpLG4scyxhPSExLG89ITEsbD1bXSxjPVtdO2Zvcig7IXRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpOyl7aWYoZT10aGlzLnRva2VuaXplci5uZXh0VG9rZW4oKSxpPWVbMF0saT09PSIoInx8aT09PSJbIj9jLnB1c2goaT09PSIoIj8iKSI6Il0iKTppPT09InsiJiZjLmxlbmd0aD4wP2MucHVzaCgifSIpOmk9PT1jW2MubGVuZ3RoLTFdJiZjLnBvcCgpLGMubGVuZ3RoPT09MClpZihpPT09IjsiKXt0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyssdGhpcy5zZW1pY29sb249ITA7YnJlYWt9ZWxzZSBpZihpPT09InsiKXtvPSEwO2JyZWFrfWVsc2UgaWYoaT09PSJ9Iil7aWYobC5sZW5ndGg+MCl7Zm9yKHM9bC5sZW5ndGgtMSxuPWxbc107biYmblswXT09PSJzcGFjZSI7KW49bFstLXNdO24mJih0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihuWzNdfHxuWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyspfXRoaXMuZW5kKGUpO2JyZWFrfWVsc2UgbC5wdXNoKGUpO2Vsc2UgbC5wdXNoKGUpO2lmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpKXthPSEwO2JyZWFrfX10LnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChsKSxsLmxlbmd0aD8odC5yYXdzLmFmdGVyTmFtZT10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGwpLHRoaXMucmF3KHQsInBhcmFtcyIsbCksYSYmKGU9bFtsLmxlbmd0aC0xXSx0LnNvdXJjZS5lbmQ9dGhpcy5nZXRQb3NpdGlvbihlWzNdfHxlWzJdKSx0LnNvdXJjZS5lbmQub2Zmc2V0KyssdGhpcy5zcGFjZXM9dC5yYXdzLmJldHdlZW4sdC5yYXdzLmJldHdlZW49IiIpKToodC5yYXdzLmFmdGVyTmFtZT0iIix0LnBhcmFtcz0iIiksbyYmKHQubm9kZXM9W10sdGhpcy5jdXJyZW50PXQpfWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpe2xldCB0PXRoaXMuY29sb24oZSk7aWYodD09PSExKXJldHVybjtsZXQgaT0wLG47Zm9yKGxldCBzPXQtMTtzPj0wJiYobj1lW3NdLCEoblswXSE9PSJzcGFjZSImJihpKz0xLGk9PT0yKSkpO3MtLSk7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiTWlzc2VkIHNlbWljb2xvbiIsblswXT09PSJ3b3JkIj9uWzNdKzE6blsyXSl9Y29sb24oZSl7bGV0IHQ9MCxpLG4scztmb3IobGV0W2Esb11vZiBlLmVudHJpZXMoKSl7aWYobj1vLHM9blswXSxzPT09IigiJiYodCs9MSkscz09PSIpIiYmKHQtPTEpLHQ9PT0wJiZzPT09IjoiKWlmKCFpKXRoaXMuZG91YmxlQ29sb24obik7ZWxzZXtpZihpWzBdPT09IndvcmQiJiZpWzFdPT09InByb2dpZCIpY29udGludWU7cmV0dXJuIGF9aT1ufXJldHVybiExfWNvbW1lbnQoZSl7bGV0IHQ9bmV3IG4xO3RoaXMuaW5pdCh0LGVbMl0pLHQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbM118fGVbMl0pLHQuc291cmNlLmVuZC5vZmZzZXQrKztsZXQgaT1lWzFdLnNsaWNlKDIsLTIpO2lmKC9eXHMqJC8udGVzdChpKSl0LnRleHQ9IiIsdC5yYXdzLmxlZnQ9aSx0LnJhd3MucmlnaHQ9IiI7ZWxzZXtsZXQgbj1pLm1hdGNoKC9eKFxzKikoW15dKlxTKShccyopJC8pO3QudGV4dD1uWzJdLHQucmF3cy5sZWZ0PW5bMV0sdC5yYXdzLnJpZ2h0PW5bM119fWNyZWF0ZVRva2VuaXplcigpe3RoaXMudG9rZW5pemVyPW8xKHRoaXMuaW5wdXQpfWRlY2woZSx0KXtsZXQgaT1uZXcgczE7dGhpcy5pbml0KGksZVswXVsyXSk7bGV0IG49ZVtlLmxlbmd0aC0xXTtmb3IoblswXT09PSI7IiYmKHRoaXMuc2VtaWNvbG9uPSEwLGUucG9wKCkpLGkuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKG5bM118fG5bMl18fGwxKGUpKSxpLnNvdXJjZS5lbmQub2Zmc2V0Kys7ZVswXVswXSE9PSJ3b3JkIjspZS5sZW5ndGg9PT0xJiZ0aGlzLnVua25vd25Xb3JkKGUpLGkucmF3cy5iZWZvcmUrPWUuc2hpZnQoKVsxXTtmb3IoaS5zb3VyY2Uuc3RhcnQ9dGhpcy5nZXRQb3NpdGlvbihlWzBdWzJdKSxpLnByb3A9IiI7ZS5sZW5ndGg7KXtsZXQgYz1lWzBdWzBdO2lmKGM9PT0iOiJ8fGM9PT0ic3BhY2UifHxjPT09ImNvbW1lbnQiKWJyZWFrO2kucHJvcCs9ZS5zaGlmdCgpWzFdfWkucmF3cy5iZXR3ZWVuPSIiO2xldCBzO2Zvcig7ZS5sZW5ndGg7KWlmKHM9ZS5zaGlmdCgpLHNbMF09PT0iOiIpe2kucmF3cy5iZXR3ZWVuKz1zWzFdO2JyZWFrfWVsc2Ugc1swXT09PSJ3b3JkIiYmL1x3Ly50ZXN0KHNbMV0pJiZ0aGlzLnVua25vd25Xb3JkKFtzXSksaS5yYXdzLmJldHdlZW4rPXNbMV07KGkucHJvcFswXT09PSJfInx8aS5wcm9wWzBdPT09IioiKSYmKGkucmF3cy5iZWZvcmUrPWkucHJvcFswXSxpLnByb3A9aS5wcm9wLnNsaWNlKDEpKTtsZXQgYT1bXSxvO2Zvcig7ZS5sZW5ndGgmJihvPWVbMF1bMF0sIShvIT09InNwYWNlIiYmbyE9PSJjb21tZW50IikpOylhLnB1c2goZS5zaGlmdCgpKTt0aGlzLnByZWNoZWNrTWlzc2VkU2VtaWNvbG9uKGUpO2ZvcihsZXQgYz1lLmxlbmd0aC0xO2M+PTA7Yy0tKXtpZihzPWVbY10sc1sxXS50b0xvd2VyQ2FzZSgpPT09IiFpbXBvcnRhbnQiKXtpLmltcG9ydGFudD0hMDtsZXQgZj10aGlzLnN0cmluZ0Zyb20oZSxjKTtmPXRoaXMuc3BhY2VzRnJvbUVuZChlKStmLGYhPT0iICFpbXBvcnRhbnQiJiYoaS5yYXdzLmltcG9ydGFudD1mKTticmVha31lbHNlIGlmKHNbMV0udG9Mb3dlckNhc2UoKT09PSJpbXBvcnRhbnQiKXtsZXQgZj1lLnNsaWNlKDApLGQ9IiI7Zm9yKGxldCBwPWM7cD4wO3AtLSl7bGV0IGg9ZltwXVswXTtpZihkLnRyaW0oKS5zdGFydHNXaXRoKCIhIikmJmghPT0ic3BhY2UiKWJyZWFrO2Q9Zi5wb3AoKVsxXStkfWQudHJpbSgpLnN0YXJ0c1dpdGgoIiEiKSYmKGkuaW1wb3J0YW50PSEwLGkucmF3cy5pbXBvcnRhbnQ9ZCxlPWYpfWlmKHNbMF0hPT0ic3BhY2UiJiZzWzBdIT09ImNvbW1lbnQiKWJyZWFrfWUuc29tZShjPT5jWzBdIT09InNwYWNlIiYmY1swXSE9PSJjb21tZW50IikmJihpLnJhd3MuYmV0d2Vlbis9YS5tYXAoYz0+Y1sxXSkuam9pbigiIiksYT1bXSksdGhpcy5yYXcoaSwidmFsdWUiLGEuY29uY2F0KGUpLHQpLGkudmFsdWUuaW5jbHVkZXMoIjoiKSYmIXQmJnRoaXMuY2hlY2tNaXNzZWRTZW1pY29sb24oZSl9ZG91YmxlQ29sb24oZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiRG91YmxlIGNvbG9uIix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXStlWzFdLmxlbmd0aH0pfWVtcHR5UnVsZShlKXtsZXQgdD1uZXcgdHA7dGhpcy5pbml0KHQsZVsyXSksdC5zZWxlY3Rvcj0iIix0LnJhd3MuYmV0d2Vlbj0iIix0aGlzLmN1cnJlbnQ9dH1lbmQoZSl7dGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLnNlbWljb2xvbj0hMSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fCIiKSt0aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIix0aGlzLmN1cnJlbnQucGFyZW50Pyh0aGlzLmN1cnJlbnQuc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKGVbMl0pLHRoaXMuY3VycmVudC5zb3VyY2UuZW5kLm9mZnNldCsrLHRoaXMuY3VycmVudD10aGlzLmN1cnJlbnQucGFyZW50KTp0aGlzLnVuZXhwZWN0ZWRDbG9zZShlKX1lbmRGaWxlKCl7dGhpcy5jdXJyZW50LnBhcmVudCYmdGhpcy51bmNsb3NlZEJsb2NrKCksdGhpcy5jdXJyZW50Lm5vZGVzJiZ0aGlzLmN1cnJlbnQubm9kZXMubGVuZ3RoJiYodGhpcy5jdXJyZW50LnJhd3Muc2VtaWNvbG9uPXRoaXMuc2VtaWNvbG9uKSx0aGlzLmN1cnJlbnQucmF3cy5hZnRlcj0odGhpcy5jdXJyZW50LnJhd3MuYWZ0ZXJ8fCIiKSt0aGlzLnNwYWNlcyx0aGlzLnJvb3Quc291cmNlLmVuZD10aGlzLmdldFBvc2l0aW9uKHRoaXMudG9rZW5pemVyLnBvc2l0aW9uKCkpfWZyZWVTZW1pY29sb24oZSl7aWYodGhpcy5zcGFjZXMrPWVbMV0sdGhpcy5jdXJyZW50Lm5vZGVzKXtsZXQgdD10aGlzLmN1cnJlbnQubm9kZXNbdGhpcy5jdXJyZW50Lm5vZGVzLmxlbmd0aC0xXTt0JiZ0LnR5cGU9PT0icnVsZSImJiF0LnJhd3Mub3duU2VtaWNvbG9uJiYodC5yYXdzLm93blNlbWljb2xvbj10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIil9fWdldFBvc2l0aW9uKGUpe2xldCB0PXRoaXMuaW5wdXQuZnJvbU9mZnNldChlKTtyZXR1cm57Y29sdW1uOnQuY29sLGxpbmU6dC5saW5lLG9mZnNldDplfX1pbml0KGUsdCl7dGhpcy5jdXJyZW50LnB1c2goZSksZS5zb3VyY2U9e2lucHV0OnRoaXMuaW5wdXQsc3RhcnQ6dGhpcy5nZXRQb3NpdGlvbih0KX0sZS5yYXdzLmJlZm9yZT10aGlzLnNwYWNlcyx0aGlzLnNwYWNlcz0iIixlLnR5cGUhPT0iY29tbWVudCImJih0aGlzLnNlbWljb2xvbj0hMSl9b3RoZXIoZSl7bGV0IHQ9ITEsaT1udWxsLG49ITEscz1udWxsLGE9W10sbz1lWzFdLnN0YXJ0c1dpdGgoIi0tIiksbD1bXSxjPWU7Zm9yKDtjOyl7aWYoaT1jWzBdLGwucHVzaChjKSxpPT09IigifHxpPT09IlsiKXN8fChzPWMpLGEucHVzaChpPT09IigiPyIpIjoiXSIpO2Vsc2UgaWYobyYmbiYmaT09PSJ7IilzfHwocz1jKSxhLnB1c2goIn0iKTtlbHNlIGlmKGEubGVuZ3RoPT09MClpZihpPT09IjsiKWlmKG4pe3RoaXMuZGVjbChsLG8pO3JldHVybn1lbHNlIGJyZWFrO2Vsc2UgaWYoaT09PSJ7Iil7dGhpcy5ydWxlKGwpO3JldHVybn1lbHNlIGlmKGk9PT0ifSIpe3RoaXMudG9rZW5pemVyLmJhY2sobC5wb3AoKSksdD0hMDticmVha31lbHNlIGk9PT0iOiImJihuPSEwKTtlbHNlIGk9PT1hW2EubGVuZ3RoLTFdJiYoYS5wb3AoKSxhLmxlbmd0aD09PTAmJihzPW51bGwpKTtjPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpfWlmKHRoaXMudG9rZW5pemVyLmVuZE9mRmlsZSgpJiYodD0hMCksYS5sZW5ndGg+MCYmdGhpcy51bmNsb3NlZEJyYWNrZXQocyksdCYmbil7aWYoIW8pZm9yKDtsLmxlbmd0aCYmKGM9bFtsLmxlbmd0aC0xXVswXSwhKGMhPT0ic3BhY2UiJiZjIT09ImNvbW1lbnQiKSk7KXRoaXMudG9rZW5pemVyLmJhY2sobC5wb3AoKSk7dGhpcy5kZWNsKGwsbyl9ZWxzZSB0aGlzLnVua25vd25Xb3JkKGwpfXBhcnNlKCl7bGV0IGU7Zm9yKDshdGhpcy50b2tlbml6ZXIuZW5kT2ZGaWxlKCk7KXN3aXRjaChlPXRoaXMudG9rZW5pemVyLm5leHRUb2tlbigpLGVbMF0pe2Nhc2Uic3BhY2UiOnRoaXMuc3BhY2VzKz1lWzFdO2JyZWFrO2Nhc2UiOyI6dGhpcy5mcmVlU2VtaWNvbG9uKGUpO2JyZWFrO2Nhc2UifSI6dGhpcy5lbmQoZSk7YnJlYWs7Y2FzZSJjb21tZW50Ijp0aGlzLmNvbW1lbnQoZSk7YnJlYWs7Y2FzZSJhdC13b3JkIjp0aGlzLmF0cnVsZShlKTticmVhaztjYXNlInsiOnRoaXMuZW1wdHlSdWxlKGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5vdGhlcihlKTticmVha310aGlzLmVuZEZpbGUoKX1wcmVjaGVja01pc3NlZFNlbWljb2xvbigpe31yYXcoZSx0LGksbil7bGV0IHMsYSxvPWkubGVuZ3RoLGw9IiIsYz0hMCxmLGQ7Zm9yKGxldCBwPTA7cDxvO3ArPTEpcz1pW3BdLGE9c1swXSxhPT09InNwYWNlIiYmcD09PW8tMSYmIW4/Yz0hMTphPT09ImNvbW1lbnQiPyhkPWlbcC0xXT9pW3AtMV1bMF06ImVtcHR5IixmPWlbcCsxXT9pW3ArMV1bMF06ImVtcHR5IiwhcnBbZF0mJiFycFtmXT9sLnNsaWNlKC0xKT09PSIsIj9jPSExOmwrPXNbMV06Yz0hMSk6bCs9c1sxXTtpZighYyl7bGV0IHA9aS5yZWR1Y2UoKGgsYik9PmgrYlsxXSwiIik7ZS5yYXdzW3RdPXtyYXc6cCx2YWx1ZTpsfX1lW3RdPWx9cnVsZShlKXtlLnBvcCgpO2xldCB0PW5ldyB0cDt0aGlzLmluaXQodCxlWzBdWzJdKSx0LnJhd3MuYmV0d2Vlbj10aGlzLnNwYWNlc0FuZENvbW1lbnRzRnJvbUVuZChlKSx0aGlzLnJhdyh0LCJzZWxlY3RvciIsZSksdGhpcy5jdXJyZW50PXR9c3BhY2VzQW5kQ29tbWVudHNGcm9tRW5kKGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVtlLmxlbmd0aC0xXVswXSwhKHQhPT0ic3BhY2UiJiZ0IT09ImNvbW1lbnQiKSk7KWk9ZS5wb3AoKVsxXStpO3JldHVybiBpfXNwYWNlc0FuZENvbW1lbnRzRnJvbVN0YXJ0KGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVswXVswXSwhKHQhPT0ic3BhY2UiJiZ0IT09ImNvbW1lbnQiKSk7KWkrPWUuc2hpZnQoKVsxXTtyZXR1cm4gaX1zcGFjZXNGcm9tRW5kKGUpe2xldCB0LGk9IiI7Zm9yKDtlLmxlbmd0aCYmKHQ9ZVtlLmxlbmd0aC0xXVswXSx0PT09InNwYWNlIik7KWk9ZS5wb3AoKVsxXStpO3JldHVybiBpfXN0cmluZ0Zyb20oZSx0KXtsZXQgaT0iIjtmb3IobGV0IG49dDtuPGUubGVuZ3RoO24rKylpKz1lW25dWzFdO3JldHVybiBlLnNwbGljZSh0LGUubGVuZ3RoLXQpLGl9dW5jbG9zZWRCbG9jaygpe2xldCBlPXRoaXMuY3VycmVudC5zb3VyY2Uuc3RhcnQ7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5jbG9zZWQgYmxvY2siLGUubGluZSxlLmNvbHVtbil9dW5jbG9zZWRCcmFja2V0KGUpe3Rocm93IHRoaXMuaW5wdXQuZXJyb3IoIlVuY2xvc2VkIGJyYWNrZXQiLHtvZmZzZXQ6ZVsyXX0se29mZnNldDplWzJdKzF9KX11bmV4cGVjdGVkQ2xvc2UoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5leHBlY3RlZCB9Iix7b2Zmc2V0OmVbMl19LHtvZmZzZXQ6ZVsyXSsxfSl9dW5rbm93bldvcmQoZSl7dGhyb3cgdGhpcy5pbnB1dC5lcnJvcigiVW5rbm93biB3b3JkIix7b2Zmc2V0OmVbMF1bMl19LHtvZmZzZXQ6ZVswXVsyXStlWzBdWzFdLmxlbmd0aH0pfXVubmFtZWRBdHJ1bGUoZSx0KXt0aHJvdyB0aGlzLmlucHV0LmVycm9yKCJBdC1ydWxlIHdpdGhvdXQgbmFtZSIse29mZnNldDp0WzJdfSx7b2Zmc2V0OnRbMl0rdFsxXS5sZW5ndGh9KX19O25wLmV4cG9ydHM9aXB9KTt2YXIgQ249eCgoejMsYXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgdTE9RXQoKSxmMT1tbigpLGMxPXNwKCk7ZnVuY3Rpb24gQW4ocixlKXtsZXQgdD1uZXcgZjEocixlKSxpPW5ldyBjMSh0KTt0cnl7aS5wYXJzZSgpfWNhdGNoKG4pe3Rocm93IG59cmV0dXJuIGkucm9vdH1hcC5leHBvcnRzPUFuO0FuLmRlZmF1bHQ9QW47dTEucmVnaXN0ZXJQYXJzZShBbil9KTt2YXIgQWE9eCgoVTMsb3ApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgX249Y2xhc3N7Y29uc3RydWN0b3IoZSx0PXt9KXtpZih0aGlzLnR5cGU9Indhcm5pbmciLHRoaXMudGV4dD1lLHQubm9kZSYmdC5ub2RlLnNvdXJjZSl7bGV0IGk9dC5ub2RlLnJhbmdlQnkodCk7dGhpcy5saW5lPWkuc3RhcnQubGluZSx0aGlzLmNvbHVtbj1pLnN0YXJ0LmNvbHVtbix0aGlzLmVuZExpbmU9aS5lbmQubGluZSx0aGlzLmVuZENvbHVtbj1pLmVuZC5jb2x1bW59Zm9yKGxldCBpIGluIHQpdGhpc1tpXT10W2ldfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMubm9kZT90aGlzLm5vZGUuZXJyb3IodGhpcy50ZXh0LHtpbmRleDp0aGlzLmluZGV4LHBsdWdpbjp0aGlzLnBsdWdpbix3b3JkOnRoaXMud29yZH0pLm1lc3NhZ2U6dGhpcy5wbHVnaW4/dGhpcy5wbHVnaW4rIjogIit0aGlzLnRleHQ6dGhpcy50ZXh0fX07b3AuZXhwb3J0cz1fbjtfbi5kZWZhdWx0PV9ufSk7dmFyIE9uPXgoKFYzLGxwKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIHAxPUFhKCksRW49Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucHJvY2Vzc29yPWUsdGhpcy5tZXNzYWdlcz1bXSx0aGlzLnJvb3Q9dCx0aGlzLm9wdHM9aSx0aGlzLmNzcz12b2lkIDAsdGhpcy5tYXA9dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuY3NzfXdhcm4oZSx0PXt9KXt0LnBsdWdpbnx8dGhpcy5sYXN0UGx1Z2luJiZ0aGlzLmxhc3RQbHVnaW4ucG9zdGNzc1BsdWdpbiYmKHQucGx1Z2luPXRoaXMubGFzdFBsdWdpbi5wb3N0Y3NzUGx1Z2luKTtsZXQgaT1uZXcgcDEoZSx0KTtyZXR1cm4gdGhpcy5tZXNzYWdlcy5wdXNoKGkpLGl9d2FybmluZ3MoKXtyZXR1cm4gdGhpcy5tZXNzYWdlcy5maWx0ZXIoZT0+ZS50eXBlPT09Indhcm5pbmciKX1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLmNzc319O2xwLmV4cG9ydHM9RW47RW4uZGVmYXVsdD1Fbn0pO3ZhciBDYT14KChIMyxmcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciB1cD17fTtmcC5leHBvcnRzPWZ1bmN0aW9uKGUpe3VwW2VdfHwodXBbZV09ITAsdHlwZW9mIGNvbnNvbGUhPSJ1bmRlZmluZWQiJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihlKSl9fSk7dmFyIE9hPXgoKEczLGhwKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIGQxPUV0KCksaDE9ZG4oKSxtMT1rYSgpLGcxPUNuKCksY3A9T24oKSx5MT10cigpLGIxPVZyKCkse2lzQ2xlYW46dHQsbXk6dzF9PWxuKCksVzM9Q2EoKSx2MT17YXRydWxlOiJBdFJ1bGUiLGNvbW1lbnQ6IkNvbW1lbnQiLGRlY2w6IkRlY2xhcmF0aW9uIixkb2N1bWVudDoiRG9jdW1lbnQiLHJvb3Q6IlJvb3QiLHJ1bGU6IlJ1bGUifSx4MT17QXRSdWxlOiEwLEF0UnVsZUV4aXQ6ITAsQ29tbWVudDohMCxDb21tZW50RXhpdDohMCxEZWNsYXJhdGlvbjohMCxEZWNsYXJhdGlvbkV4aXQ6ITAsRG9jdW1lbnQ6ITAsRG9jdW1lbnRFeGl0OiEwLE9uY2U6ITAsT25jZUV4aXQ6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwLFJvb3Q6ITAsUm9vdEV4aXQ6ITAsUnVsZTohMCxSdWxlRXhpdDohMH0sazE9e09uY2U6ITAscG9zdGNzc1BsdWdpbjohMCxwcmVwYXJlOiEwfSxycj0wO2Z1bmN0aW9uIHJpKHIpe3JldHVybiB0eXBlb2Ygcj09Im9iamVjdCImJnR5cGVvZiByLnRoZW49PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gcHAocil7bGV0IGU9ITEsdD12MVtyLnR5cGVdO3JldHVybiByLnR5cGU9PT0iZGVjbCI/ZT1yLnByb3AudG9Mb3dlckNhc2UoKTpyLnR5cGU9PT0iYXRydWxlIiYmKGU9ci5uYW1lLnRvTG93ZXJDYXNlKCkpLGUmJnIuYXBwZW5kP1t0LHQrIi0iK2UscnIsdCsiRXhpdCIsdCsiRXhpdC0iK2VdOmU/W3QsdCsiLSIrZSx0KyJFeGl0Iix0KyJFeGl0LSIrZV06ci5hcHBlbmQ/W3QscnIsdCsiRXhpdCJdOlt0LHQrIkV4aXQiXX1mdW5jdGlvbiBkcChyKXtsZXQgZTtyZXR1cm4gci50eXBlPT09ImRvY3VtZW50Ij9lPVsiRG9jdW1lbnQiLHJyLCJEb2N1bWVudEV4aXQiXTpyLnR5cGU9PT0icm9vdCI/ZT1bIlJvb3QiLHJyLCJSb290RXhpdCJdOmU9cHAocikse2V2ZW50SW5kZXg6MCxldmVudHM6ZSxpdGVyYXRvcjowLG5vZGU6cix2aXNpdG9ySW5kZXg6MCx2aXNpdG9yczpbXX19ZnVuY3Rpb24gX2Eocil7cmV0dXJuIHJbdHRdPSExLHIubm9kZXMmJnIubm9kZXMuZm9yRWFjaChlPT5fYShlKSkscn12YXIgRWE9e30scHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMuc3RyaW5naWZpZWQ9ITEsdGhpcy5wcm9jZXNzZWQ9ITE7bGV0IG47aWYodHlwZW9mIHQ9PSJvYmplY3QiJiZ0IT09bnVsbCYmKHQudHlwZT09PSJyb290Inx8dC50eXBlPT09ImRvY3VtZW50Iikpbj1fYSh0KTtlbHNlIGlmKHQgaW5zdGFuY2VvZiBwdHx8dCBpbnN0YW5jZW9mIGNwKW49X2EodC5yb290KSx0Lm1hcCYmKHR5cGVvZiBpLm1hcD09InVuZGVmaW5lZCImJihpLm1hcD17fSksaS5tYXAuaW5saW5lfHwoaS5tYXAuaW5saW5lPSExKSxpLm1hcC5wcmV2PXQubWFwKTtlbHNle2xldCBzPWcxO2kuc3ludGF4JiYocz1pLnN5bnRheC5wYXJzZSksaS5wYXJzZXImJihzPWkucGFyc2VyKSxzLnBhcnNlJiYocz1zLnBhcnNlKTt0cnl7bj1zKHQsaSl9Y2F0Y2goYSl7dGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5lcnJvcj1hfW4mJiFuW3cxXSYmZDEucmVidWlsZChuKX10aGlzLnJlc3VsdD1uZXcgY3AoZSxuLGkpLHRoaXMuaGVscGVycz17Li4uRWEscG9zdGNzczpFYSxyZXN1bHQ6dGhpcy5yZXN1bHR9LHRoaXMucGx1Z2lucz10aGlzLnByb2Nlc3Nvci5wbHVnaW5zLm1hcChzPT50eXBlb2Ygcz09Im9iamVjdCImJnMucHJlcGFyZT97Li4ucywuLi5zLnByZXBhcmUodGhpcy5yZXN1bHQpfTpzKX1hc3luYygpe3JldHVybiB0aGlzLmVycm9yP1Byb21pc2UucmVqZWN0KHRoaXMuZXJyb3IpOnRoaXMucHJvY2Vzc2VkP1Byb21pc2UucmVzb2x2ZSh0aGlzLnJlc3VsdCk6KHRoaXMucHJvY2Vzc2luZ3x8KHRoaXMucHJvY2Vzc2luZz10aGlzLnJ1bkFzeW5jKCkpLHRoaXMucHJvY2Vzc2luZyl9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS5jYXRjaChlKX1maW5hbGx5KGUpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLGUpfWdldEFzeW5jRXJyb3IoKXt0aHJvdyBuZXcgRXJyb3IoIlVzZSBwcm9jZXNzKGNzcykudGhlbihjYikgdG8gd29yayB3aXRoIGFzeW5jIHBsdWdpbnMiKX1oYW5kbGVFcnJvcihlLHQpe2xldCBpPXRoaXMucmVzdWx0Lmxhc3RQbHVnaW47dHJ5e3QmJnQuYWRkVG9FcnJvcihlKSx0aGlzLmVycm9yPWUsZS5uYW1lPT09IkNzc1N5bnRheEVycm9yIiYmIWUucGx1Z2luPyhlLnBsdWdpbj1pLnBvc3Rjc3NQbHVnaW4sZS5zZXRNZXNzYWdlKCkpOmkucG9zdGNzc1ZlcnNpb259Y2F0Y2gobil7Y29uc29sZSYmY29uc29sZS5lcnJvciYmY29uc29sZS5lcnJvcihuKX1yZXR1cm4gZX1wcmVwYXJlVmlzaXRvcnMoKXt0aGlzLmxpc3RlbmVycz17fTtsZXQgZT0odCxpLG4pPT57dGhpcy5saXN0ZW5lcnNbaV18fCh0aGlzLmxpc3RlbmVyc1tpXT1bXSksdGhpcy5saXN0ZW5lcnNbaV0ucHVzaChbdCxuXSl9O2ZvcihsZXQgdCBvZiB0aGlzLnBsdWdpbnMpaWYodHlwZW9mIHQ9PSJvYmplY3QiKWZvcihsZXQgaSBpbiB0KXtpZigheDFbaV0mJi9eW0EtWl0vLnRlc3QoaSkpdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGV2ZW50ICR7aX0gaW4gJHt0LnBvc3Rjc3NQbHVnaW59LiBUcnkgdG8gdXBkYXRlIFBvc3RDU1MgKCR7dGhpcy5wcm9jZXNzb3IudmVyc2lvbn0gbm93KS5gKTtpZighazFbaV0paWYodHlwZW9mIHRbaV09PSJvYmplY3QiKWZvcihsZXQgbiBpbiB0W2ldKW49PT0iKiI/ZSh0LGksdFtpXVtuXSk6ZSh0LGkrIi0iK24udG9Mb3dlckNhc2UoKSx0W2ldW25dKTtlbHNlIHR5cGVvZiB0W2ldPT0iZnVuY3Rpb24iJiZlKHQsaSx0W2ldKX10aGlzLmhhc0xpc3RlbmVyPU9iamVjdC5rZXlzKHRoaXMubGlzdGVuZXJzKS5sZW5ndGg+MH1hc3luYyBydW5Bc3luYygpe3RoaXMucGx1Z2luPTA7Zm9yKGxldCBlPTA7ZTx0aGlzLnBsdWdpbnMubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy5wbHVnaW5zW2VdLGk9dGhpcy5ydW5PblJvb3QodCk7aWYocmkoaSkpdHJ5e2F3YWl0IGl9Y2F0Y2gobil7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuKX19aWYodGhpcy5wcmVwYXJlVmlzaXRvcnMoKSx0aGlzLmhhc0xpc3RlbmVyKXtsZXQgZT10aGlzLnJlc3VsdC5yb290O2Zvcig7IWVbdHRdOyl7ZVt0dF09ITA7bGV0IHQ9W2RwKGUpXTtmb3IoO3QubGVuZ3RoPjA7KXtsZXQgaT10aGlzLnZpc2l0VGljayh0KTtpZihyaShpKSl0cnl7YXdhaXQgaX1jYXRjaChuKXtsZXQgcz10W3QubGVuZ3RoLTFdLm5vZGU7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuLHMpfX19aWYodGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpZm9yKGxldFt0LGldb2YgdGhpcy5saXN0ZW5lcnMuT25jZUV4aXQpe3RoaXMucmVzdWx0Lmxhc3RQbHVnaW49dDt0cnl7aWYoZS50eXBlPT09ImRvY3VtZW50Iil7bGV0IG49ZS5ub2Rlcy5tYXAocz0+aShzLHRoaXMuaGVscGVycykpO2F3YWl0IFByb21pc2UuYWxsKG4pfWVsc2UgYXdhaXQgaShlLHRoaXMuaGVscGVycyl9Y2F0Y2gobil7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihuKX19fXJldHVybiB0aGlzLnByb2Nlc3NlZD0hMCx0aGlzLnN0cmluZ2lmeSgpfXJ1bk9uUm9vdChlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWU7dHJ5e2lmKHR5cGVvZiBlPT0ib2JqZWN0IiYmZS5PbmNlKXtpZih0aGlzLnJlc3VsdC5yb290LnR5cGU9PT0iZG9jdW1lbnQiKXtsZXQgdD10aGlzLnJlc3VsdC5yb290Lm5vZGVzLm1hcChpPT5lLk9uY2UoaSx0aGlzLmhlbHBlcnMpKTtyZXR1cm4gcmkodFswXSk/UHJvbWlzZS5hbGwodCk6dH1yZXR1cm4gZS5PbmNlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5oZWxwZXJzKX1lbHNlIGlmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlKHRoaXMucmVzdWx0LnJvb3QsdGhpcy5yZXN1bHQpfWNhdGNoKHQpe3Rocm93IHRoaXMuaGFuZGxlRXJyb3IodCl9fXN0cmluZ2lmeSgpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnN0cmluZ2lmaWVkKXJldHVybiB0aGlzLnJlc3VsdDt0aGlzLnN0cmluZ2lmaWVkPSEwLHRoaXMuc3luYygpO2xldCBlPXRoaXMucmVzdWx0Lm9wdHMsdD1iMTtlLnN5bnRheCYmKHQ9ZS5zeW50YXguc3RyaW5naWZ5KSxlLnN0cmluZ2lmaWVyJiYodD1lLnN0cmluZ2lmaWVyKSx0LnN0cmluZ2lmeSYmKHQ9dC5zdHJpbmdpZnkpO2xldCBuPW5ldyBtMSh0LHRoaXMucmVzdWx0LnJvb3QsdGhpcy5yZXN1bHQub3B0cykuZ2VuZXJhdGUoKTtyZXR1cm4gdGhpcy5yZXN1bHQuY3NzPW5bMF0sdGhpcy5yZXN1bHQubWFwPW5bMV0sdGhpcy5yZXN1bHR9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtpZih0aGlzLnByb2Nlc3NlZClyZXR1cm4gdGhpcy5yZXN1bHQ7aWYodGhpcy5wcm9jZXNzZWQ9ITAsdGhpcy5wcm9jZXNzaW5nKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpO2ZvcihsZXQgZSBvZiB0aGlzLnBsdWdpbnMpe2xldCB0PXRoaXMucnVuT25Sb290KGUpO2lmKHJpKHQpKXRocm93IHRoaXMuZ2V0QXN5bmNFcnJvcigpfWlmKHRoaXMucHJlcGFyZVZpc2l0b3JzKCksdGhpcy5oYXNMaXN0ZW5lcil7bGV0IGU9dGhpcy5yZXN1bHQucm9vdDtmb3IoOyFlW3R0XTspZVt0dF09ITAsdGhpcy53YWxrU3luYyhlKTtpZih0aGlzLmxpc3RlbmVycy5PbmNlRXhpdClpZihlLnR5cGU9PT0iZG9jdW1lbnQiKWZvcihsZXQgdCBvZiBlLm5vZGVzKXRoaXMudmlzaXRTeW5jKHRoaXMubGlzdGVuZXJzLk9uY2VFeGl0LHQpO2Vsc2UgdGhpcy52aXNpdFN5bmModGhpcy5saXN0ZW5lcnMuT25jZUV4aXQsZSl9cmV0dXJuIHRoaXMucmVzdWx0fXRoZW4oZSx0KXtyZXR1cm4gdGhpcy5hc3luYygpLnRoZW4oZSx0KX10b1N0cmluZygpe3JldHVybiB0aGlzLmNzc312aXNpdFN5bmMoZSx0KXtmb3IobGV0W2ksbl1vZiBlKXt0aGlzLnJlc3VsdC5sYXN0UGx1Z2luPWk7bGV0IHM7dHJ5e3M9bih0LHRoaXMuaGVscGVycyl9Y2F0Y2goYSl7dGhyb3cgdGhpcy5oYW5kbGVFcnJvcihhLHQucHJveHlPZil9aWYodC50eXBlIT09InJvb3QiJiZ0LnR5cGUhPT0iZG9jdW1lbnQiJiYhdC5wYXJlbnQpcmV0dXJuITA7aWYocmkocykpdGhyb3cgdGhpcy5nZXRBc3luY0Vycm9yKCl9fXZpc2l0VGljayhlKXtsZXQgdD1lW2UubGVuZ3RoLTFdLHtub2RlOmksdmlzaXRvcnM6bn09dDtpZihpLnR5cGUhPT0icm9vdCImJmkudHlwZSE9PSJkb2N1bWVudCImJiFpLnBhcmVudCl7ZS5wb3AoKTtyZXR1cm59aWYobi5sZW5ndGg+MCYmdC52aXNpdG9ySW5kZXg8bi5sZW5ndGgpe2xldFthLG9dPW5bdC52aXNpdG9ySW5kZXhdO3QudmlzaXRvckluZGV4Kz0xLHQudmlzaXRvckluZGV4PT09bi5sZW5ndGgmJih0LnZpc2l0b3JzPVtdLHQudmlzaXRvckluZGV4PTApLHRoaXMucmVzdWx0Lmxhc3RQbHVnaW49YTt0cnl7cmV0dXJuIG8oaS50b1Byb3h5KCksdGhpcy5oZWxwZXJzKX1jYXRjaChsKXt0aHJvdyB0aGlzLmhhbmRsZUVycm9yKGwsaSl9fWlmKHQuaXRlcmF0b3IhPT0wKXtsZXQgYT10Lml0ZXJhdG9yLG87Zm9yKDtvPWkubm9kZXNbaS5pbmRleGVzW2FdXTspaWYoaS5pbmRleGVzW2FdKz0xLCFvW3R0XSl7b1t0dF09ITAsZS5wdXNoKGRwKG8pKTtyZXR1cm59dC5pdGVyYXRvcj0wLGRlbGV0ZSBpLmluZGV4ZXNbYV19bGV0IHM9dC5ldmVudHM7Zm9yKDt0LmV2ZW50SW5kZXg8cy5sZW5ndGg7KXtsZXQgYT1zW3QuZXZlbnRJbmRleF07aWYodC5ldmVudEluZGV4Kz0xLGE9PT1ycil7aS5ub2RlcyYmaS5ub2Rlcy5sZW5ndGgmJihpW3R0XT0hMCx0Lml0ZXJhdG9yPWkuZ2V0SXRlcmF0b3IoKSk7cmV0dXJufWVsc2UgaWYodGhpcy5saXN0ZW5lcnNbYV0pe3QudmlzaXRvcnM9dGhpcy5saXN0ZW5lcnNbYV07cmV0dXJufX1lLnBvcCgpfXdhbGtTeW5jKGUpe2VbdHRdPSEwO2xldCB0PXBwKGUpO2ZvcihsZXQgaSBvZiB0KWlmKGk9PT1ycillLm5vZGVzJiZlLmVhY2gobj0+e25bdHRdfHx0aGlzLndhbGtTeW5jKG4pfSk7ZWxzZXtsZXQgbj10aGlzLmxpc3RlbmVyc1tpXTtpZihuJiZ0aGlzLnZpc2l0U3luYyhuLGUudG9Qcm94eSgpKSlyZXR1cm59fXdhcm5pbmdzKCl7cmV0dXJuIHRoaXMuc3luYygpLndhcm5pbmdzKCl9Z2V0IGNvbnRlbnQoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jb250ZW50fWdldCBjc3MoKXtyZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jc3N9Z2V0IG1hcCgpe3JldHVybiB0aGlzLnN0cmluZ2lmeSgpLm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm4gdGhpcy5zeW5jKCkubWVzc2FnZXN9Z2V0IG9wdHMoKXtyZXR1cm4gdGhpcy5yZXN1bHQub3B0c31nZXQgcHJvY2Vzc29yKCl7cmV0dXJuIHRoaXMucmVzdWx0LnByb2Nlc3Nvcn1nZXQgcm9vdCgpe3JldHVybiB0aGlzLnN5bmMoKS5yb290fWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkxhenlSZXN1bHQifX07cHQucmVnaXN0ZXJQb3N0Y3NzPXI9PntFYT1yfTtocC5leHBvcnRzPXB0O3B0LmRlZmF1bHQ9cHQ7eTEucmVnaXN0ZXJMYXp5UmVzdWx0KHB0KTtoMS5yZWdpc3RlckxhenlSZXN1bHQocHQpfSk7dmFyIGdwPXgoKFkzLG1wKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIFMxPWthKCksQTE9Q24oKSxDMT1PbigpLF8xPVZyKCksUTM9Q2EoKSxUbj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQsaSl7dD10LnRvU3RyaW5nKCksdGhpcy5zdHJpbmdpZmllZD0hMSx0aGlzLl9wcm9jZXNzb3I9ZSx0aGlzLl9jc3M9dCx0aGlzLl9vcHRzPWksdGhpcy5fbWFwPXZvaWQgMDtsZXQgbixzPV8xO3RoaXMucmVzdWx0PW5ldyBDMSh0aGlzLl9wcm9jZXNzb3Isbix0aGlzLl9vcHRzKSx0aGlzLnJlc3VsdC5jc3M9dDtsZXQgYT10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnJlc3VsdCwicm9vdCIse2dldCgpe3JldHVybiBhLnJvb3R9fSk7bGV0IG89bmV3IFMxKHMsbix0aGlzLl9vcHRzLHQpO2lmKG8uaXNNYXAoKSl7bGV0W2wsY109by5nZW5lcmF0ZSgpO2wmJih0aGlzLnJlc3VsdC5jc3M9bCksYyYmKHRoaXMucmVzdWx0Lm1hcD1jKX1lbHNlIG8uY2xlYXJBbm5vdGF0aW9uKCksdGhpcy5yZXN1bHQuY3NzPW8uY3NzfWFzeW5jKCl7cmV0dXJuIHRoaXMuZXJyb3I/UHJvbWlzZS5yZWplY3QodGhpcy5lcnJvcik6UHJvbWlzZS5yZXNvbHZlKHRoaXMucmVzdWx0KX1jYXRjaChlKXtyZXR1cm4gdGhpcy5hc3luYygpLmNhdGNoKGUpfWZpbmFsbHkoZSl7cmV0dXJuIHRoaXMuYXN5bmMoKS50aGVuKGUsZSl9c3luYygpe2lmKHRoaXMuZXJyb3IpdGhyb3cgdGhpcy5lcnJvcjtyZXR1cm4gdGhpcy5yZXN1bHR9dGhlbihlLHQpe3JldHVybiB0aGlzLmFzeW5jKCkudGhlbihlLHQpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX2Nzc313YXJuaW5ncygpe3JldHVybltdfWdldCBjb250ZW50KCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgY3NzKCl7cmV0dXJuIHRoaXMucmVzdWx0LmNzc31nZXQgbWFwKCl7cmV0dXJuIHRoaXMucmVzdWx0Lm1hcH1nZXQgbWVzc2FnZXMoKXtyZXR1cm5bXX1nZXQgb3B0cygpe3JldHVybiB0aGlzLnJlc3VsdC5vcHRzfWdldCBwcm9jZXNzb3IoKXtyZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yfWdldCByb290KCl7aWYodGhpcy5fcm9vdClyZXR1cm4gdGhpcy5fcm9vdDtsZXQgZSx0PUExO3RyeXtlPXQodGhpcy5fY3NzLHRoaXMuX29wdHMpfWNhdGNoKGkpe3RoaXMuZXJyb3I9aX1pZih0aGlzLmVycm9yKXRocm93IHRoaXMuZXJyb3I7cmV0dXJuIHRoaXMuX3Jvb3Q9ZSxlfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIk5vV29ya1Jlc3VsdCJ9fTttcC5leHBvcnRzPVRuO1RuLmRlZmF1bHQ9VG59KTt2YXIgYnA9eCgoSzMseXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgRTE9ZG4oKSxPMT1PYSgpLFQxPWdwKCksUjE9dHIoKSxpcj1jbGFzc3tjb25zdHJ1Y3RvcihlPVtdKXt0aGlzLnZlcnNpb249IjguNC40OSIsdGhpcy5wbHVnaW5zPXRoaXMubm9ybWFsaXplKGUpfW5vcm1hbGl6ZShlKXtsZXQgdD1bXTtmb3IobGV0IGkgb2YgZSlpZihpLnBvc3Rjc3M9PT0hMD9pPWkoKTppLnBvc3Rjc3MmJihpPWkucG9zdGNzcyksdHlwZW9mIGk9PSJvYmplY3QiJiZBcnJheS5pc0FycmF5KGkucGx1Z2lucykpdD10LmNvbmNhdChpLnBsdWdpbnMpO2Vsc2UgaWYodHlwZW9mIGk9PSJvYmplY3QiJiZpLnBvc3Rjc3NQbHVnaW4pdC5wdXNoKGkpO2Vsc2UgaWYodHlwZW9mIGk9PSJmdW5jdGlvbiIpdC5wdXNoKGkpO2Vsc2UgaWYoISh0eXBlb2YgaT09Im9iamVjdCImJihpLnBhcnNlfHxpLnN0cmluZ2lmeSkpKXRocm93IG5ldyBFcnJvcihpKyIgaXMgbm90IGEgUG9zdENTUyBwbHVnaW4iKTtyZXR1cm4gdH1wcm9jZXNzKGUsdD17fSl7cmV0dXJuIXRoaXMucGx1Z2lucy5sZW5ndGgmJiF0LnBhcnNlciYmIXQuc3RyaW5naWZpZXImJiF0LnN5bnRheD9uZXcgVDEodGhpcyxlLHQpOm5ldyBPMSh0aGlzLGUsdCl9dXNlKGUpe3JldHVybiB0aGlzLnBsdWdpbnM9dGhpcy5wbHVnaW5zLmNvbmNhdCh0aGlzLm5vcm1hbGl6ZShbZV0pKSx0aGlzfX07eXAuZXhwb3J0cz1pcjtpci5kZWZhdWx0PWlyO1IxLnJlZ2lzdGVyUHJvY2Vzc29yKGlyKTtFMS5yZWdpc3RlclByb2Nlc3Nvcihpcil9KTt2YXIgJGU9eCgoWDMsQ3ApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgd3A9cG4oKSx2cD1RcigpLFAxPUV0KCksSTE9YW4oKSx4cD1ZcigpLGtwPWRuKCksRDE9UWMoKSxxMT1tbigpLCQxPU9hKCksTDE9eGEoKSxNMT1HcigpLE4xPUNuKCksVGE9YnAoKSxCMT1PbigpLFNwPXRyKCksQXA9Z24oKSxGMT1WcigpLGoxPUFhKCk7ZnVuY3Rpb24gSiguLi5yKXtyZXR1cm4gci5sZW5ndGg9PT0xJiZBcnJheS5pc0FycmF5KHJbMF0pJiYocj1yWzBdKSxuZXcgVGEocil9Si5wbHVnaW49ZnVuY3Rpb24oZSx0KXtsZXQgaT0hMTtmdW5jdGlvbiBuKC4uLmEpe2NvbnNvbGUmJmNvbnNvbGUud2FybiYmIWkmJihpPSEwLGNvbnNvbGUud2FybihlK2A6IHBvc3Rjc3MucGx1Z2luIHdhcyBkZXByZWNhdGVkLiBNaWdyYXRpb24gZ3VpZGU6Cmh0dHBzOi8vZXZpbG1hcnRpYW5zLmNvbS9jaHJvbmljbGVzL3Bvc3Rjc3MtOC1wbHVnaW4tbWlncmF0aW9uYCksbS5lbnYuTEFORyYmbS5lbnYuTEFORy5zdGFydHNXaXRoKCJjbiIpJiZjb25zb2xlLndhcm4oZStgOiBcdTkxQ0NcdTk3NjIgcG9zdGNzcy5wbHVnaW4gXHU4OEFCXHU1RjAzXHU3NTI4LiBcdThGQzFcdTc5RkJcdTYzMDdcdTUzNTc6Cmh0dHBzOi8vd3d3LnczY3RlY2guY29tL3RvcGljLzIyMjZgKSk7bGV0IG89dCguLi5hKTtyZXR1cm4gby5wb3N0Y3NzUGx1Z2luPWUsby5wb3N0Y3NzVmVyc2lvbj1uZXcgVGEoKS52ZXJzaW9uLG99bGV0IHM7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJwb3N0Y3NzIix7Z2V0KCl7cmV0dXJuIHN8fChzPW4oKSksc319KSxuLnByb2Nlc3M9ZnVuY3Rpb24oYSxvLGwpe3JldHVybiBKKFtuKGwpXSkucHJvY2VzcyhhLG8pfSxufTtKLnN0cmluZ2lmeT1GMTtKLnBhcnNlPU4xO0ouZnJvbUpTT049RDE7Si5saXN0PUwxO0ouY29tbWVudD1yPT5uZXcgdnAocik7Si5hdFJ1bGU9cj0+bmV3IHdwKHIpO0ouZGVjbD1yPT5uZXcgeHAocik7Si5ydWxlPXI9Pm5ldyBBcChyKTtKLnJvb3Q9cj0+bmV3IFNwKHIpO0ouZG9jdW1lbnQ9cj0+bmV3IGtwKHIpO0ouQ3NzU3ludGF4RXJyb3I9STE7Si5EZWNsYXJhdGlvbj14cDtKLkNvbnRhaW5lcj1QMTtKLlByb2Nlc3Nvcj1UYTtKLkRvY3VtZW50PWtwO0ouQ29tbWVudD12cDtKLldhcm5pbmc9ajE7Si5BdFJ1bGU9d3A7Si5SZXN1bHQ9QjE7Si5JbnB1dD1xMTtKLlJ1bGU9QXA7Si5Sb290PVNwO0ouTm9kZT1NMTskMS5yZWdpc3RlclBvc3Rjc3MoSik7Q3AuZXhwb3J0cz1KO0ouZGVmYXVsdD1KfSk7dmFyIHJlLGVlLFozLEozLGVJLHRJLHJJLGlJLG5JLHNJLGFJLG9JLGxJLHVJLGZJLGNJLHBJLGRJLGhJLG1JLGdJLHlJLGJJLHdJLHZJLHhJLE90PVAoKCk9Pnt1KCk7cmU9cGUoJGUoKSksZWU9cmUuZGVmYXVsdCxaMz1yZS5kZWZhdWx0LnN0cmluZ2lmeSxKMz1yZS5kZWZhdWx0LmZyb21KU09OLGVJPXJlLmRlZmF1bHQucGx1Z2luLHRJPXJlLmRlZmF1bHQucGFyc2Usckk9cmUuZGVmYXVsdC5saXN0LGlJPXJlLmRlZmF1bHQuZG9jdW1lbnQsbkk9cmUuZGVmYXVsdC5jb21tZW50LHNJPXJlLmRlZmF1bHQuYXRSdWxlLGFJPXJlLmRlZmF1bHQucnVsZSxvST1yZS5kZWZhdWx0LmRlY2wsbEk9cmUuZGVmYXVsdC5yb290LHVJPXJlLmRlZmF1bHQuQ3NzU3ludGF4RXJyb3IsZkk9cmUuZGVmYXVsdC5EZWNsYXJhdGlvbixjST1yZS5kZWZhdWx0LkNvbnRhaW5lcixwST1yZS5kZWZhdWx0LlByb2Nlc3NvcixkST1yZS5kZWZhdWx0LkRvY3VtZW50LGhJPXJlLmRlZmF1bHQuQ29tbWVudCxtST1yZS5kZWZhdWx0Lldhcm5pbmcsZ0k9cmUuZGVmYXVsdC5BdFJ1bGUseUk9cmUuZGVmYXVsdC5SZXN1bHQsYkk9cmUuZGVmYXVsdC5JbnB1dCx3ST1yZS5kZWZhdWx0LlJ1bGUsdkk9cmUuZGVmYXVsdC5Sb290LHhJPXJlLmRlZmF1bHQuTm9kZX0pO3ZhciBSYT14KChTSSxfcCk9Pnt1KCk7X3AuZXhwb3J0cz1mdW5jdGlvbihyLGUsdCxpLG4pe2ZvcihlPWUuc3BsaXQ/ZS5zcGxpdCgiLiIpOmUsaT0wO2k8ZS5sZW5ndGg7aSsrKXI9cj9yW2VbaV1dOm47cmV0dXJuIHI9PT1uP3Q6cn19KTt2YXIgUG49eCgoUm4sRXApPT57dSgpOyJ1c2Ugc3RyaWN0IjtSbi5fX2VzTW9kdWxlPSEwO1JuLmRlZmF1bHQ9VjE7ZnVuY3Rpb24gejEocil7Zm9yKHZhciBlPXIudG9Mb3dlckNhc2UoKSx0PSIiLGk9ITEsbj0wO248NiYmZVtuXSE9PXZvaWQgMDtuKyspe3ZhciBzPWUuY2hhckNvZGVBdChuKSxhPXM+PTk3JiZzPD0xMDJ8fHM+PTQ4JiZzPD01NztpZihpPXM9PT0zMiwhYSlicmVhazt0Kz1lW25dfWlmKHQubGVuZ3RoIT09MCl7dmFyIG89cGFyc2VJbnQodCwxNiksbD1vPj01NTI5NiYmbzw9NTczNDM7cmV0dXJuIGx8fG89PT0wfHxvPjExMTQxMTE/WyJcdUZGRkQiLHQubGVuZ3RoKyhpPzE6MCldOltTdHJpbmcuZnJvbUNvZGVQb2ludChvKSx0Lmxlbmd0aCsoaT8xOjApXX19dmFyIFUxPS9cXC87ZnVuY3Rpb24gVjEocil7dmFyIGU9VTEudGVzdChyKTtpZighZSlyZXR1cm4gcjtmb3IodmFyIHQ9IiIsaT0wO2k8ci5sZW5ndGg7aSsrKXtpZihyW2ldPT09IlxcIil7dmFyIG49ejEoci5zbGljZShpKzEsaSs3KSk7aWYobiE9PXZvaWQgMCl7dCs9blswXSxpKz1uWzFdO2NvbnRpbnVlfWlmKHJbaSsxXT09PSJcXCIpe3QrPSJcXCIsaSsrO2NvbnRpbnVlfXIubGVuZ3RoPT09aSsxJiYodCs9cltpXSk7Y29udGludWV9dCs9cltpXX1yZXR1cm4gdH1FcC5leHBvcnRzPVJuLmRlZmF1bHR9KTt2YXIgVHA9eCgoSW4sT3ApPT57dSgpOyJ1c2Ugc3RyaWN0IjtJbi5fX2VzTW9kdWxlPSEwO0luLmRlZmF1bHQ9SDE7ZnVuY3Rpb24gSDEocil7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZT4xP2UtMTowKSxpPTE7aTxlO2krKyl0W2ktMV09YXJndW1lbnRzW2ldO2Zvcig7dC5sZW5ndGg+MDspe3ZhciBuPXQuc2hpZnQoKTtpZighcltuXSlyZXR1cm47cj1yW25dfXJldHVybiByfU9wLmV4cG9ydHM9SW4uZGVmYXVsdH0pO3ZhciBQcD14KChEbixScCk9Pnt1KCk7InVzZSBzdHJpY3QiO0RuLl9fZXNNb2R1bGU9ITA7RG4uZGVmYXVsdD1XMTtmdW5jdGlvbiBXMShyKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlPjE/ZS0xOjApLGk9MTtpPGU7aSsrKXRbaS0xXT1hcmd1bWVudHNbaV07Zm9yKDt0Lmxlbmd0aD4wOyl7dmFyIG49dC5zaGlmdCgpO3Jbbl18fChyW25dPXt9KSxyPXJbbl19fVJwLmV4cG9ydHM9RG4uZGVmYXVsdH0pO3ZhciBEcD14KChxbixJcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3FuLl9fZXNNb2R1bGU9ITA7cW4uZGVmYXVsdD1HMTtmdW5jdGlvbiBHMShyKXtmb3IodmFyIGU9IiIsdD1yLmluZGV4T2YoIi8qIiksaT0wO3Q+PTA7KXtlPWUrci5zbGljZShpLHQpO3ZhciBuPXIuaW5kZXhPZigiKi8iLHQrMik7aWYobjwwKXJldHVybiBlO2k9bisyLHQ9ci5pbmRleE9mKCIvKiIsaSl9cmV0dXJuIGU9ZStyLnNsaWNlKGkpLGV9SXAuZXhwb3J0cz1xbi5kZWZhdWx0fSk7dmFyIGlpPXgocnQ9Pnt1KCk7InVzZSBzdHJpY3QiO3J0Ll9fZXNNb2R1bGU9ITA7cnQudW5lc2M9cnQuc3RyaXBDb21tZW50cz1ydC5nZXRQcm9wPXJ0LmVuc3VyZU9iamVjdD12b2lkIDA7dmFyIFExPSRuKFBuKCkpO3J0LnVuZXNjPVExLmRlZmF1bHQ7dmFyIFkxPSRuKFRwKCkpO3J0LmdldFByb3A9WTEuZGVmYXVsdDt2YXIgSzE9JG4oUHAoKSk7cnQuZW5zdXJlT2JqZWN0PUsxLmRlZmF1bHQ7dmFyIFgxPSRuKERwKCkpO3J0LnN0cmlwQ29tbWVudHM9WDEuZGVmYXVsdDtmdW5jdGlvbiAkbihyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19fSk7dmFyIGR0PXgoKG5pLExwKT0+e3UoKTsidXNlIHN0cmljdCI7bmkuX19lc01vZHVsZT0hMDtuaS5kZWZhdWx0PXZvaWQgMDt2YXIgcXA9aWkoKTtmdW5jdGlvbiAkcChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIFoxKHIsZSx0KXtyZXR1cm4gZSYmJHAoci5wcm90b3R5cGUsZSksdCYmJHAocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfXZhciBKMT1mdW5jdGlvbiByKGUsdCl7aWYodHlwZW9mIGUhPSJvYmplY3QifHxlPT09bnVsbClyZXR1cm4gZTt2YXIgaT1uZXcgZS5jb25zdHJ1Y3Rvcjtmb3IodmFyIG4gaW4gZSlpZighIWUuaGFzT3duUHJvcGVydHkobikpe3ZhciBzPWVbbl0sYT10eXBlb2YgcztuPT09InBhcmVudCImJmE9PT0ib2JqZWN0Ij90JiYoaVtuXT10KTpzIGluc3RhbmNlb2YgQXJyYXk/aVtuXT1zLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gcihvLGkpfSk6aVtuXT1yKHMsaSl9cmV0dXJuIGl9LGVrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXt0PT09dm9pZCAwJiYodD17fSksT2JqZWN0LmFzc2lnbih0aGlzLHQpLHRoaXMuc3BhY2VzPXRoaXMuc3BhY2VzfHx7fSx0aGlzLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMuYmVmb3JlfHwiIix0aGlzLnNwYWNlcy5hZnRlcj10aGlzLnNwYWNlcy5hZnRlcnx8IiJ9dmFyIGU9ci5wcm90b3R5cGU7cmV0dXJuIGUucmVtb3ZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5yZW1vdmVDaGlsZCh0aGlzKSx0aGlzLnBhcmVudD12b2lkIDAsdGhpc30sZS5yZXBsYWNlV2l0aD1mdW5jdGlvbigpe2lmKHRoaXMucGFyZW50KXtmb3IodmFyIGkgaW4gYXJndW1lbnRzKXRoaXMucGFyZW50Lmluc2VydEJlZm9yZSh0aGlzLGFyZ3VtZW50c1tpXSk7dGhpcy5yZW1vdmUoKX1yZXR1cm4gdGhpc30sZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50LmF0KHRoaXMucGFyZW50LmluZGV4KHRoaXMpKzEpfSxlLnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQuYXQodGhpcy5wYXJlbnQuaW5kZXgodGhpcyktMSl9LGUuY2xvbmU9ZnVuY3Rpb24oaSl7aT09PXZvaWQgMCYmKGk9e30pO3ZhciBuPUoxKHRoaXMpO2Zvcih2YXIgcyBpbiBpKW5bc109aVtzXTtyZXR1cm4gbn0sZS5hcHBlbmRUb1Byb3BlcnR5QW5kRXNjYXBlPWZ1bmN0aW9uKGksbixzKXt0aGlzLnJhd3N8fCh0aGlzLnJhd3M9e30pO3ZhciBhPXRoaXNbaV0sbz10aGlzLnJhd3NbaV07dGhpc1tpXT1hK24sb3x8cyE9PW4/dGhpcy5yYXdzW2ldPShvfHxhKStzOmRlbGV0ZSB0aGlzLnJhd3NbaV19LGUuc2V0UHJvcGVydHlBbmRFc2NhcGU9ZnVuY3Rpb24oaSxuLHMpe3RoaXMucmF3c3x8KHRoaXMucmF3cz17fSksdGhpc1tpXT1uLHRoaXMucmF3c1tpXT1zfSxlLnNldFByb3BlcnR5V2l0aG91dEVzY2FwZT1mdW5jdGlvbihpLG4pe3RoaXNbaV09bix0aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3NbaV19LGUuaXNBdFBvc2l0aW9uPWZ1bmN0aW9uKGksbil7aWYodGhpcy5zb3VyY2UmJnRoaXMuc291cmNlLnN0YXJ0JiZ0aGlzLnNvdXJjZS5lbmQpcmV0dXJuISh0aGlzLnNvdXJjZS5zdGFydC5saW5lPml8fHRoaXMuc291cmNlLmVuZC5saW5lPGl8fHRoaXMuc291cmNlLnN0YXJ0LmxpbmU9PT1pJiZ0aGlzLnNvdXJjZS5zdGFydC5jb2x1bW4+bnx8dGhpcy5zb3VyY2UuZW5kLmxpbmU9PT1pJiZ0aGlzLnNvdXJjZS5lbmQuY29sdW1uPG4pfSxlLnN0cmluZ2lmeVByb3BlcnR5PWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLnJhd3MmJnRoaXMucmF3c1tpXXx8dGhpc1tpXX0sZS52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZyh0aGlzLnN0cmluZ2lmeVByb3BlcnR5KCJ2YWx1ZSIpKX0sZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVyblt0aGlzLnJhd1NwYWNlQmVmb3JlLHRoaXMudmFsdWVUb1N0cmluZygpLHRoaXMucmF3U3BhY2VBZnRlcl0uam9pbigiIil9LFoxKHIsW3trZXk6InJhd1NwYWNlQmVmb3JlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnJhd3MmJnRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXMuYmVmb3JlO3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnNwYWNlcyYmdGhpcy5zcGFjZXMuYmVmb3JlKSxpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpeygwLHFwLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIsInNwYWNlcyIpLHRoaXMucmF3cy5zcGFjZXMuYmVmb3JlPWl9fSx7a2V5OiJyYXdTcGFjZUFmdGVyIixnZXQ6ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnJhd3MmJnRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXMuYWZ0ZXI7cmV0dXJuIGk9PT12b2lkIDAmJihpPXRoaXMuc3BhY2VzLmFmdGVyKSxpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpeygwLHFwLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIsInNwYWNlcyIpLHRoaXMucmF3cy5zcGFjZXMuYWZ0ZXI9aX19XSkscn0oKTtuaS5kZWZhdWx0PWVrO0xwLmV4cG9ydHM9bmkuZGVmYXVsdH0pO3ZhciBTZT14KGllPT57dSgpOyJ1c2Ugc3RyaWN0IjtpZS5fX2VzTW9kdWxlPSEwO2llLlVOSVZFUlNBTD1pZS5UQUc9aWUuU1RSSU5HPWllLlNFTEVDVE9SPWllLlJPT1Q9aWUuUFNFVURPPWllLk5FU1RJTkc9aWUuSUQ9aWUuQ09NTUVOVD1pZS5DT01CSU5BVE9SPWllLkNMQVNTPWllLkFUVFJJQlVURT12b2lkIDA7dmFyIHRrPSJ0YWciO2llLlRBRz10azt2YXIgcms9InN0cmluZyI7aWUuU1RSSU5HPXJrO3ZhciBpaz0ic2VsZWN0b3IiO2llLlNFTEVDVE9SPWlrO3ZhciBuaz0icm9vdCI7aWUuUk9PVD1uazt2YXIgc2s9InBzZXVkbyI7aWUuUFNFVURPPXNrO3ZhciBhaz0ibmVzdGluZyI7aWUuTkVTVElORz1hazt2YXIgb2s9ImlkIjtpZS5JRD1vazt2YXIgbGs9ImNvbW1lbnQiO2llLkNPTU1FTlQ9bGs7dmFyIHVrPSJjb21iaW5hdG9yIjtpZS5DT01CSU5BVE9SPXVrO3ZhciBmaz0iY2xhc3MiO2llLkNMQVNTPWZrO3ZhciBjaz0iYXR0cmlidXRlIjtpZS5BVFRSSUJVVEU9Y2s7dmFyIHBrPSJ1bml2ZXJzYWwiO2llLlVOSVZFUlNBTD1wa30pO3ZhciBMbj14KChzaSxGcCk9Pnt1KCk7InVzZSBzdHJpY3QiO3NpLl9fZXNNb2R1bGU9ITA7c2kuZGVmYXVsdD12b2lkIDA7dmFyIGRrPW1rKGR0KCkpLGh0PWhrKFNlKCkpO2Z1bmN0aW9uIE1wKHIpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLHQ9bmV3IFdlYWtNYXA7cmV0dXJuKE1wPWZ1bmN0aW9uKG4pe3JldHVybiBuP3Q6ZX0pKHIpfWZ1bmN0aW9uIGhrKHIsZSl7aWYoIWUmJnImJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZihyPT09bnVsbHx8dHlwZW9mIHIhPSJvYmplY3QiJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDpyfTt2YXIgdD1NcChlKTtpZih0JiZ0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIGk9e30sbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHIpaWYocyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykpe3ZhciBhPW4/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHMpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyxhKTppW3NdPXJbc119cmV0dXJuIGkuZGVmYXVsdD1yLHQmJnQuc2V0KHIsaSksaX1mdW5jdGlvbiBtayhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24gZ2socixlKXt2YXIgdD10eXBlb2YgU3ltYm9sIT0idW5kZWZpbmVkIiYmcltTeW1ib2wuaXRlcmF0b3JdfHxyWyJAQGl0ZXJhdG9yIl07aWYodClyZXR1cm4odD10LmNhbGwocikpLm5leHQuYmluZCh0KTtpZihBcnJheS5pc0FycmF5KHIpfHwodD15ayhyKSl8fGUmJnImJnR5cGVvZiByLmxlbmd0aD09Im51bWJlciIpe3QmJihyPXQpO3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGk+PXIubGVuZ3RoP3tkb25lOiEwfTp7ZG9uZTohMSx2YWx1ZTpyW2krK119fX10aHJvdyBuZXcgVHlwZUVycm9yKGBJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuCkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5gKX1mdW5jdGlvbiB5ayhyLGUpe2lmKCEhcil7aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBOcChyLGUpO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyKS5zbGljZSg4LC0xKTtpZih0PT09Ik9iamVjdCImJnIuY29uc3RydWN0b3ImJih0PXIuY29uc3RydWN0b3IubmFtZSksdD09PSJNYXAifHx0PT09IlNldCIpcmV0dXJuIEFycmF5LmZyb20ocik7aWYodD09PSJBcmd1bWVudHMifHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gTnAocixlKX19ZnVuY3Rpb24gTnAocixlKXsoZT09bnVsbHx8ZT5yLmxlbmd0aCkmJihlPXIubGVuZ3RoKTtmb3IodmFyIHQ9MCxpPW5ldyBBcnJheShlKTt0PGU7dCsrKWlbdF09clt0XTtyZXR1cm4gaX1mdW5jdGlvbiBCcChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIGJrKHIsZSx0KXtyZXR1cm4gZSYmQnAoci5wcm90b3R5cGUsZSksdCYmQnAocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfWZ1bmN0aW9uIHdrKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixQYShyLGUpfWZ1bmN0aW9uIFBhKHIsZSl7cmV0dXJuIFBhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sUGEocixlKX12YXIgdms9ZnVuY3Rpb24ocil7d2soZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4ubm9kZXN8fChuLm5vZGVzPVtdKSxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmFwcGVuZD1mdW5jdGlvbihuKXtyZXR1cm4gbi5wYXJlbnQ9dGhpcyx0aGlzLm5vZGVzLnB1c2gobiksdGhpc30sdC5wcmVwZW5kPWZ1bmN0aW9uKG4pe3JldHVybiBuLnBhcmVudD10aGlzLHRoaXMubm9kZXMudW5zaGlmdChuKSx0aGlzfSx0LmF0PWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm5vZGVzW25dfSx0LmluZGV4PWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09Im51bWJlciI/bjp0aGlzLm5vZGVzLmluZGV4T2Yobil9LHQucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24obil7bj10aGlzLmluZGV4KG4pLHRoaXMuYXQobikucGFyZW50PXZvaWQgMCx0aGlzLm5vZGVzLnNwbGljZShuLDEpO3ZhciBzO2Zvcih2YXIgYSBpbiB0aGlzLmluZGV4ZXMpcz10aGlzLmluZGV4ZXNbYV0scz49biYmKHRoaXMuaW5kZXhlc1thXT1zLTEpO3JldHVybiB0aGlzfSx0LnJlbW92ZUFsbD1mdW5jdGlvbigpe2Zvcih2YXIgbj1nayh0aGlzLm5vZGVzKSxzOyEocz1uKCkpLmRvbmU7KXt2YXIgYT1zLnZhbHVlO2EucGFyZW50PXZvaWQgMH1yZXR1cm4gdGhpcy5ub2Rlcz1bXSx0aGlzfSx0LmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlQWxsKCl9LHQuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24obixzKXtzLnBhcmVudD10aGlzO3ZhciBhPXRoaXMuaW5kZXgobik7dGhpcy5ub2Rlcy5zcGxpY2UoYSsxLDAscykscy5wYXJlbnQ9dGhpczt2YXIgbztmb3IodmFyIGwgaW4gdGhpcy5pbmRleGVzKW89dGhpcy5pbmRleGVzW2xdLGE8PW8mJih0aGlzLmluZGV4ZXNbbF09bysxKTtyZXR1cm4gdGhpc30sdC5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24obixzKXtzLnBhcmVudD10aGlzO3ZhciBhPXRoaXMuaW5kZXgobik7dGhpcy5ub2Rlcy5zcGxpY2UoYSwwLHMpLHMucGFyZW50PXRoaXM7dmFyIG87Zm9yKHZhciBsIGluIHRoaXMuaW5kZXhlcylvPXRoaXMuaW5kZXhlc1tsXSxvPD1hJiYodGhpcy5pbmRleGVzW2xdPW8rMSk7cmV0dXJuIHRoaXN9LHQuX2ZpbmRDaGlsZEF0UG9zaXRpb249ZnVuY3Rpb24obixzKXt2YXIgYT12b2lkIDA7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihvKXtpZihvLmF0UG9zaXRpb24pe3ZhciBsPW8uYXRQb3NpdGlvbihuLHMpO2lmKGwpcmV0dXJuIGE9bCwhMX1lbHNlIGlmKG8uaXNBdFBvc2l0aW9uKG4scykpcmV0dXJuIGE9bywhMX0pLGF9LHQuYXRQb3NpdGlvbj1mdW5jdGlvbihuLHMpe2lmKHRoaXMuaXNBdFBvc2l0aW9uKG4scykpcmV0dXJuIHRoaXMuX2ZpbmRDaGlsZEF0UG9zaXRpb24obixzKXx8dGhpc30sdC5faW5mZXJFbmRQb3NpdGlvbj1mdW5jdGlvbigpe3RoaXMubGFzdCYmdGhpcy5sYXN0LnNvdXJjZSYmdGhpcy5sYXN0LnNvdXJjZS5lbmQmJih0aGlzLnNvdXJjZT10aGlzLnNvdXJjZXx8e30sdGhpcy5zb3VyY2UuZW5kPXRoaXMuc291cmNlLmVuZHx8e30sT2JqZWN0LmFzc2lnbih0aGlzLnNvdXJjZS5lbmQsdGhpcy5sYXN0LnNvdXJjZS5lbmQpKX0sdC5lYWNoPWZ1bmN0aW9uKG4pe3RoaXMubGFzdEVhY2h8fCh0aGlzLmxhc3RFYWNoPTApLHRoaXMuaW5kZXhlc3x8KHRoaXMuaW5kZXhlcz17fSksdGhpcy5sYXN0RWFjaCsrO3ZhciBzPXRoaXMubGFzdEVhY2g7aWYodGhpcy5pbmRleGVzW3NdPTAsISF0aGlzLmxlbmd0aCl7Zm9yKHZhciBhLG87dGhpcy5pbmRleGVzW3NdPHRoaXMubGVuZ3RoJiYoYT10aGlzLmluZGV4ZXNbc10sbz1uKHRoaXMuYXQoYSksYSksbyE9PSExKTspdGhpcy5pbmRleGVzW3NdKz0xO2lmKGRlbGV0ZSB0aGlzLmluZGV4ZXNbc10sbz09PSExKXJldHVybiExfX0sdC53YWxrPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24ocyxhKXt2YXIgbz1uKHMsYSk7aWYobyE9PSExJiZzLmxlbmd0aCYmKG89cy53YWxrKG4pKSxvPT09ITEpcmV0dXJuITF9KX0sdC53YWxrQXR0cmlidXRlcz1mdW5jdGlvbihuKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oYSl7aWYoYS50eXBlPT09aHQuQVRUUklCVVRFKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtDbGFzc2VzPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5DTEFTUylyZXR1cm4gbi5jYWxsKHMsYSl9KX0sdC53YWxrQ29tYmluYXRvcnM9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LkNPTUJJTkFUT1IpcmV0dXJuIG4uY2FsbChzLGEpfSl9LHQud2Fsa0NvbW1lbnRzPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5DT01NRU5UKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtJZHM9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LklEKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtOZXN0aW5nPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5ORVNUSU5HKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LndhbGtQc2V1ZG9zPWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXM7cmV0dXJuIHRoaXMud2FsayhmdW5jdGlvbihhKXtpZihhLnR5cGU9PT1odC5QU0VVRE8pcmV0dXJuIG4uY2FsbChzLGEpfSl9LHQud2Fsa1RhZ3M9ZnVuY3Rpb24obil7dmFyIHM9dGhpcztyZXR1cm4gdGhpcy53YWxrKGZ1bmN0aW9uKGEpe2lmKGEudHlwZT09PWh0LlRBRylyZXR1cm4gbi5jYWxsKHMsYSl9KX0sdC53YWxrVW5pdmVyc2Fscz1mdW5jdGlvbihuKXt2YXIgcz10aGlzO3JldHVybiB0aGlzLndhbGsoZnVuY3Rpb24oYSl7aWYoYS50eXBlPT09aHQuVU5JVkVSU0FMKXJldHVybiBuLmNhbGwocyxhKX0pfSx0LnNwbGl0PWZ1bmN0aW9uKG4pe3ZhciBzPXRoaXMsYT1bXTtyZXR1cm4gdGhpcy5yZWR1Y2UoZnVuY3Rpb24obyxsLGMpe3ZhciBmPW4uY2FsbChzLGwpO3JldHVybiBhLnB1c2gobCksZj8oby5wdXNoKGEpLGE9W10pOmM9PT1zLmxlbmd0aC0xJiZvLnB1c2goYSksb30sW10pfSx0Lm1hcD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5tYXAobil9LHQucmVkdWNlPWZ1bmN0aW9uKG4scyl7cmV0dXJuIHRoaXMubm9kZXMucmVkdWNlKG4scyl9LHQuZXZlcnk9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMubm9kZXMuZXZlcnkobil9LHQuc29tZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb21lKG4pfSx0LmZpbHRlcj1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5maWx0ZXIobil9LHQuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5ub2Rlcy5zb3J0KG4pfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKFN0cmluZykuam9pbigiIil9LGJrKGUsW3trZXk6ImZpcnN0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hdCgwKX19LHtrZXk6Imxhc3QiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0KHRoaXMubGVuZ3RoLTEpfX0se2tleToibGVuZ3RoIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2Rlcy5sZW5ndGh9fV0pLGV9KGRrLmRlZmF1bHQpO3NpLmRlZmF1bHQ9dms7RnAuZXhwb3J0cz1zaS5kZWZhdWx0fSk7dmFyIERhPXgoKGFpLHpwKT0+e3UoKTsidXNlIHN0cmljdCI7YWkuX19lc01vZHVsZT0hMDthaS5kZWZhdWx0PXZvaWQgMDt2YXIgeGs9U2soTG4oKSksa2s9U2UoKTtmdW5jdGlvbiBTayhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24ganAocixlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIGk9ZVt0XTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGkua2V5LGkpfX1mdW5jdGlvbiBBayhyLGUsdCl7cmV0dXJuIGUmJmpwKHIucHJvdG90eXBlLGUpLHQmJmpwKHIsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSkscn1mdW5jdGlvbiBDayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsSWEocixlKX1mdW5jdGlvbiBJYShyLGUpe3JldHVybiBJYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LElhKHIsZSl9dmFyIF9rPWZ1bmN0aW9uKHIpe0NrKGUscik7ZnVuY3Rpb24gZShpKXt2YXIgbjtyZXR1cm4gbj1yLmNhbGwodGhpcyxpKXx8dGhpcyxuLnR5cGU9a2suUk9PVCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5yZWR1Y2UoZnVuY3Rpb24ocyxhKXtyZXR1cm4gcy5wdXNoKFN0cmluZyhhKSksc30sW10pLmpvaW4oIiwiKTtyZXR1cm4gdGhpcy50cmFpbGluZ0NvbW1hP24rIiwiOm59LHQuZXJyb3I9ZnVuY3Rpb24obixzKXtyZXR1cm4gdGhpcy5fZXJyb3I/dGhpcy5fZXJyb3IobixzKTpuZXcgRXJyb3Iobil9LEFrKGUsW3trZXk6ImVycm9yR2VuZXJhdG9yIixzZXQ6ZnVuY3Rpb24obil7dGhpcy5fZXJyb3I9bn19XSksZX0oeGsuZGVmYXVsdCk7YWkuZGVmYXVsdD1fazt6cC5leHBvcnRzPWFpLmRlZmF1bHR9KTt2YXIgJGE9eCgob2ksVXApPT57dSgpOyJ1c2Ugc3RyaWN0IjtvaS5fX2VzTW9kdWxlPSEwO29pLmRlZmF1bHQ9dm9pZCAwO3ZhciBFaz1UayhMbigpKSxPaz1TZSgpO2Z1bmN0aW9uIFRrKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBSayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIscWEocixlKX1mdW5jdGlvbiBxYShyLGUpe3JldHVybiBxYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LHFhKHIsZSl9dmFyIFBrPWZ1bmN0aW9uKHIpe1JrKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9T2suU0VMRUNUT1IsaX1yZXR1cm4gZX0oRWsuZGVmYXVsdCk7b2kuZGVmYXVsdD1QaztVcC5leHBvcnRzPW9pLmRlZmF1bHR9KTt2YXIgTW49eCgoX0ksVnApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgSWs9e30sRGs9SWsuaGFzT3duUHJvcGVydHkscWs9ZnVuY3Rpb24oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgaT17fTtmb3IodmFyIG4gaW4gdClpW25dPURrLmNhbGwoZSxuKT9lW25dOnRbbl07cmV0dXJuIGl9LCRrPS9bIC0sXC5cLzotQFxbLVxeYFx7LX5dLyxMaz0vWyAtLFwuXC86LUBcW1xdXF5gXHstfl0vLE1rPS8oXnxcXCspPyhcXFtBLUYwLTldezEsNn0pXHgyMCg/IVthLWZBLUYwLTlceDIwXSkvZyxMYT1mdW5jdGlvbiByKGUsdCl7dD1xayh0LHIub3B0aW9ucyksdC5xdW90ZXMhPSJzaW5nbGUiJiZ0LnF1b3RlcyE9ImRvdWJsZSImJih0LnF1b3Rlcz0ic2luZ2xlIik7Zm9yKHZhciBpPXQucXVvdGVzPT0iZG91YmxlIj8nIic6IiciLG49dC5pc0lkZW50aWZpZXIscz1lLmNoYXJBdCgwKSxhPSIiLG89MCxsPWUubGVuZ3RoO288bDspe3ZhciBjPWUuY2hhckF0KG8rKyksZj1jLmNoYXJDb2RlQXQoKSxkPXZvaWQgMDtpZihmPDMyfHxmPjEyNil7aWYoZj49NTUyOTYmJmY8PTU2MzE5JiZvPGwpe3ZhciBwPWUuY2hhckNvZGVBdChvKyspOyhwJjY0NTEyKT09NTYzMjA/Zj0oKGYmMTAyMyk8PDEwKSsocCYxMDIzKSs2NTUzNjpvLS19ZD0iXFwiK2YudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIiAifWVsc2UgdC5lc2NhcGVFdmVyeXRoaW5nPyRrLnRlc3QoYyk/ZD0iXFwiK2M6ZD0iXFwiK2YudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkrIiAiOi9bXHRcblxmXHJceDBCXS8udGVzdChjKT9kPSJcXCIrZi50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiICI6Yz09IlxcInx8IW4mJihjPT0nIicmJmk9PWN8fGM9PSInIiYmaT09Yyl8fG4mJkxrLnRlc3QoYyk/ZD0iXFwiK2M6ZD1jO2ErPWR9cmV0dXJuIG4mJigvXi1bLVxkXS8udGVzdChhKT9hPSJcXC0iK2Euc2xpY2UoMSk6L1xkLy50ZXN0KHMpJiYoYT0iXFwzIitzKyIgIithLnNsaWNlKDEpKSksYT1hLnJlcGxhY2UoTWssZnVuY3Rpb24oaCxiLHYpe3JldHVybiBiJiZiLmxlbmd0aCUyP2g6KGJ8fCIiKSt2fSksIW4mJnQud3JhcD9pK2EraTphfTtMYS5vcHRpb25zPXtlc2NhcGVFdmVyeXRoaW5nOiExLGlzSWRlbnRpZmllcjohMSxxdW90ZXM6InNpbmdsZSIsd3JhcDohMX07TGEudmVyc2lvbj0iMy4wLjAiO1ZwLmV4cG9ydHM9TGF9KTt2YXIgTmE9eCgobGksR3ApPT57dSgpOyJ1c2Ugc3RyaWN0IjtsaS5fX2VzTW9kdWxlPSEwO2xpLmRlZmF1bHQ9dm9pZCAwO3ZhciBOaz1IcChNbigpKSxCaz1paSgpLEZrPUhwKGR0KCkpLGprPVNlKCk7ZnVuY3Rpb24gSHAocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFdwKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gemsocixlLHQpe3JldHVybiBlJiZXcChyLnByb3RvdHlwZSxlKSx0JiZXcChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gVWsocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLE1hKHIsZSl9ZnVuY3Rpb24gTWEocixlKXtyZXR1cm4gTWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxNYShyLGUpfXZhciBWaz1mdW5jdGlvbihyKXtVayhlLHIpO2Z1bmN0aW9uIGUoaSl7dmFyIG47cmV0dXJuIG49ci5jYWxsKHRoaXMsaSl8fHRoaXMsbi50eXBlPWprLkNMQVNTLG4uX2NvbnN0cnVjdGVkPSEwLG59dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQudmFsdWVUb1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIuIityLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nLmNhbGwodGhpcyl9LHprKGUsW3trZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbihuKXtpZih0aGlzLl9jb25zdHJ1Y3RlZCl7dmFyIHM9KDAsTmsuZGVmYXVsdCkobix7aXNJZGVudGlmaWVyOiEwfSk7cyE9PW4/KCgwLEJrLmVuc3VyZU9iamVjdCkodGhpcywicmF3cyIpLHRoaXMucmF3cy52YWx1ZT1zKTp0aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3MudmFsdWV9dGhpcy5fdmFsdWU9bn19XSksZX0oRmsuZGVmYXVsdCk7bGkuZGVmYXVsdD1WaztHcC5leHBvcnRzPWxpLmRlZmF1bHR9KTt2YXIgRmE9eCgodWksUXApPT57dSgpOyJ1c2Ugc3RyaWN0Ijt1aS5fX2VzTW9kdWxlPSEwO3VpLmRlZmF1bHQ9dm9pZCAwO3ZhciBIaz1HayhkdCgpKSxXaz1TZSgpO2Z1bmN0aW9uIEdrKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBRayhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsQmEocixlKX1mdW5jdGlvbiBCYShyLGUpe3JldHVybiBCYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LEJhKHIsZSl9dmFyIFlrPWZ1bmN0aW9uKHIpe1FrKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9V2suQ09NTUVOVCxpfXJldHVybiBlfShIay5kZWZhdWx0KTt1aS5kZWZhdWx0PVlrO1FwLmV4cG9ydHM9dWkuZGVmYXVsdH0pO3ZhciB6YT14KChmaSxZcCk9Pnt1KCk7InVzZSBzdHJpY3QiO2ZpLl9fZXNNb2R1bGU9ITA7ZmkuZGVmYXVsdD12b2lkIDA7dmFyIEtrPVprKGR0KCkpLFhrPVNlKCk7ZnVuY3Rpb24gWmsocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIEprKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixqYShyLGUpfWZ1bmN0aW9uIGphKHIsZSl7cmV0dXJuIGphPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0samEocixlKX12YXIgZVM9ZnVuY3Rpb24ocil7SmsoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4udHlwZT1Yay5JRCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LnZhbHVlVG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIyIrci5wcm90b3R5cGUudmFsdWVUb1N0cmluZy5jYWxsKHRoaXMpfSxlfShLay5kZWZhdWx0KTtmaS5kZWZhdWx0PWVTO1lwLmV4cG9ydHM9ZmkuZGVmYXVsdH0pO3ZhciBObj14KChjaSxacCk9Pnt1KCk7InVzZSBzdHJpY3QiO2NpLl9fZXNNb2R1bGU9ITA7Y2kuZGVmYXVsdD12b2lkIDA7dmFyIHRTPUtwKE1uKCkpLHJTPWlpKCksaVM9S3AoZHQoKSk7ZnVuY3Rpb24gS3Aocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFhwKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gblMocixlLHQpe3JldHVybiBlJiZYcChyLnByb3RvdHlwZSxlKSx0JiZYcChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gc1MocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFVhKHIsZSl9ZnVuY3Rpb24gVWEocixlKXtyZXR1cm4gVWE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxVYShyLGUpfXZhciBhUz1mdW5jdGlvbihyKXtzUyhlLHIpO2Z1bmN0aW9uIGUoKXtyZXR1cm4gci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9dmFyIHQ9ZS5wcm90b3R5cGU7cmV0dXJuIHQucXVhbGlmaWVkTmFtZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5uYW1lc3BhY2U/dGhpcy5uYW1lc3BhY2VTdHJpbmcrInwiK246bn0sdC52YWx1ZVRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVhbGlmaWVkTmFtZShyLnByb3RvdHlwZS52YWx1ZVRvU3RyaW5nLmNhbGwodGhpcykpfSxuUyhlLFt7a2V5OiJuYW1lc3BhY2UiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9uYW1lc3BhY2V9LHNldDpmdW5jdGlvbihuKXtpZihuPT09ITB8fG49PT0iKiJ8fG49PT0iJiIpe3RoaXMuX25hbWVzcGFjZT1uLHRoaXMucmF3cyYmZGVsZXRlIHRoaXMucmF3cy5uYW1lc3BhY2U7cmV0dXJufXZhciBzPSgwLHRTLmRlZmF1bHQpKG4se2lzSWRlbnRpZmllcjohMH0pO3RoaXMuX25hbWVzcGFjZT1uLHMhPT1uPygoMCxyUy5lbnN1cmVPYmplY3QpKHRoaXMsInJhd3MiKSx0aGlzLnJhd3MubmFtZXNwYWNlPXMpOnRoaXMucmF3cyYmZGVsZXRlIHRoaXMucmF3cy5uYW1lc3BhY2V9fSx7a2V5OiJucyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWVzcGFjZX0sc2V0OmZ1bmN0aW9uKG4pe3RoaXMubmFtZXNwYWNlPW59fSx7a2V5OiJuYW1lc3BhY2VTdHJpbmciLGdldDpmdW5jdGlvbigpe2lmKHRoaXMubmFtZXNwYWNlKXt2YXIgbj10aGlzLnN0cmluZ2lmeVByb3BlcnR5KCJuYW1lc3BhY2UiKTtyZXR1cm4gbj09PSEwPyIiOm59ZWxzZSByZXR1cm4iIn19XSksZX0oaVMuZGVmYXVsdCk7Y2kuZGVmYXVsdD1hUztacC5leHBvcnRzPWNpLmRlZmF1bHR9KTt2YXIgSGE9eCgocGksSnApPT57dSgpOyJ1c2Ugc3RyaWN0IjtwaS5fX2VzTW9kdWxlPSEwO3BpLmRlZmF1bHQ9dm9pZCAwO3ZhciBvUz11UyhObigpKSxsUz1TZSgpO2Z1bmN0aW9uIHVTKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBmUyhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsVmEocixlKX1mdW5jdGlvbiBWYShyLGUpe3JldHVybiBWYT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LFZhKHIsZSl9dmFyIGNTPWZ1bmN0aW9uKHIpe2ZTKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9bFMuVEFHLGl9cmV0dXJuIGV9KG9TLmRlZmF1bHQpO3BpLmRlZmF1bHQ9Y1M7SnAuZXhwb3J0cz1waS5kZWZhdWx0fSk7dmFyIEdhPXgoKGRpLGVkKT0+e3UoKTsidXNlIHN0cmljdCI7ZGkuX19lc01vZHVsZT0hMDtkaS5kZWZhdWx0PXZvaWQgMDt2YXIgcFM9aFMoZHQoKSksZFM9U2UoKTtmdW5jdGlvbiBoUyhyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19ZnVuY3Rpb24gbVMocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFdhKHIsZSl9ZnVuY3Rpb24gV2EocixlKXtyZXR1cm4gV2E9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxXYShyLGUpfXZhciBnUz1mdW5jdGlvbihyKXttUyhlLHIpO2Z1bmN0aW9uIGUodCl7dmFyIGk7cmV0dXJuIGk9ci5jYWxsKHRoaXMsdCl8fHRoaXMsaS50eXBlPWRTLlNUUklORyxpfXJldHVybiBlfShwUy5kZWZhdWx0KTtkaS5kZWZhdWx0PWdTO2VkLmV4cG9ydHM9ZGkuZGVmYXVsdH0pO3ZhciBZYT14KChoaSx0ZCk9Pnt1KCk7InVzZSBzdHJpY3QiO2hpLl9fZXNNb2R1bGU9ITA7aGkuZGVmYXVsdD12b2lkIDA7dmFyIHlTPXdTKExuKCkpLGJTPVNlKCk7ZnVuY3Rpb24gd1Mocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIHZTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixRYShyLGUpfWZ1bmN0aW9uIFFhKHIsZSl7cmV0dXJuIFFhPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sUWEocixlKX12YXIgeFM9ZnVuY3Rpb24ocil7dlMoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBuPXIuY2FsbCh0aGlzLGkpfHx0aGlzLG4udHlwZT1iUy5QU0VVRE8sbn12YXIgdD1lLnByb3RvdHlwZTtyZXR1cm4gdC50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBuPXRoaXMubGVuZ3RoPyIoIit0aGlzLm1hcChTdHJpbmcpLmpvaW4oIiwiKSsiKSI6IiI7cmV0dXJuW3RoaXMucmF3U3BhY2VCZWZvcmUsdGhpcy5zdHJpbmdpZnlQcm9wZXJ0eSgidmFsdWUiKSxuLHRoaXMucmF3U3BhY2VBZnRlcl0uam9pbigiIil9LGV9KHlTLmRlZmF1bHQpO2hpLmRlZmF1bHQ9eFM7dGQuZXhwb3J0cz1oaS5kZWZhdWx0fSk7dmFyIEJuPXt9O0dlKEJuLHtkZXByZWNhdGU6KCk9PmtTfSk7ZnVuY3Rpb24ga1Mocil7cmV0dXJuIHJ9dmFyIEZuPVAoKCk9Pnt1KCl9KTt2YXIgaWQ9eCgoRUkscmQpPT57dSgpO3JkLmV4cG9ydHM9KEZuKCksQm4pLmRlcHJlY2F0ZX0pO3ZhciB0bz14KHlpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt5aS5fX2VzTW9kdWxlPSEwO3lpLmRlZmF1bHQ9dm9pZCAwO3lpLnVuZXNjYXBlVmFsdWU9SmE7dmFyIG1pPVhhKE1uKCkpLFNTPVhhKFBuKCkpLEFTPVhhKE5uKCkpLENTPVNlKCksS2E7ZnVuY3Rpb24gWGEocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIG5kKHIsZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBpPWVbdF07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixpLmtleSxpKX19ZnVuY3Rpb24gX1MocixlLHQpe3JldHVybiBlJiZuZChyLnByb3RvdHlwZSxlKSx0JiZuZChyLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHJ9ZnVuY3Rpb24gRVMocixlKXtyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLFphKHIsZSl9ZnVuY3Rpb24gWmEocixlKXtyZXR1cm4gWmE9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaSxuKXtyZXR1cm4gaS5fX3Byb3RvX189bixpfSxaYShyLGUpfXZhciBnaT1pZCgpLE9TPS9eKCd8IikoW15dKilcMSQvLFRTPWdpKGZ1bmN0aW9uKCl7fSwiQXNzaWduaW5nIGFuIGF0dHJpYnV0ZSBhIHZhbHVlIGNvbnRhaW5pbmcgY2hhcmFjdGVycyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgZXNjYXBlZCBpcyBkZXByZWNhdGVkLiBDYWxsIGF0dHJpYnV0ZS5zZXRWYWx1ZSgpIGluc3RlYWQuIiksUlM9Z2koZnVuY3Rpb24oKXt9LCJBc3NpZ25pbmcgYXR0ci5xdW90ZWQgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdC4gQXNzaWduIHRvIGF0dHIucXVvdGVNYXJrIGluc3RlYWQuIiksUFM9Z2koZnVuY3Rpb24oKXt9LCJDb25zdHJ1Y3RpbmcgYW4gQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggYSB2YWx1ZSB3aXRob3V0IHNwZWNpZnlpbmcgcXVvdGVNYXJrIGlzIGRlcHJlY2F0ZWQuIE5vdGU6IFRoZSB2YWx1ZSBzaG91bGQgYmUgdW5lc2NhcGVkIG5vdy4iKTtmdW5jdGlvbiBKYShyKXt2YXIgZT0hMSx0PW51bGwsaT1yLG49aS5tYXRjaChPUyk7cmV0dXJuIG4mJih0PW5bMV0saT1uWzJdKSxpPSgwLFNTLmRlZmF1bHQpKGkpLGkhPT1yJiYoZT0hMCkse2RlcHJlY2F0ZWRVc2FnZTplLHVuZXNjYXBlZDppLHF1b3RlTWFyazp0fX1mdW5jdGlvbiBJUyhyKXtpZihyLnF1b3RlTWFyayE9PXZvaWQgMHx8ci52YWx1ZT09PXZvaWQgMClyZXR1cm4gcjtQUygpO3ZhciBlPUphKHIudmFsdWUpLHQ9ZS5xdW90ZU1hcmssaT1lLnVuZXNjYXBlZDtyZXR1cm4gci5yYXdzfHwoci5yYXdzPXt9KSxyLnJhd3MudmFsdWU9PT12b2lkIDAmJihyLnJhd3MudmFsdWU9ci52YWx1ZSksci52YWx1ZT1pLHIucXVvdGVNYXJrPXQscn12YXIgam49ZnVuY3Rpb24ocil7RVMoZSxyKTtmdW5jdGlvbiBlKGkpe3ZhciBuO3JldHVybiBpPT09dm9pZCAwJiYoaT17fSksbj1yLmNhbGwodGhpcyxJUyhpKSl8fHRoaXMsbi50eXBlPUNTLkFUVFJJQlVURSxuLnJhd3M9bi5yYXdzfHx7fSxPYmplY3QuZGVmaW5lUHJvcGVydHkobi5yYXdzLCJ1bnF1b3RlZCIse2dldDpnaShmdW5jdGlvbigpe3JldHVybiBuLnZhbHVlfSwiYXR0ci5yYXdzLnVucXVvdGVkIGlzIGRlcHJlY2F0ZWQuIENhbGwgYXR0ci52YWx1ZSBpbnN0ZWFkLiIpLHNldDpnaShmdW5jdGlvbigpe3JldHVybiBuLnZhbHVlfSwiU2V0dGluZyBhdHRyLnJhd3MudW5xdW90ZWQgaXMgZGVwcmVjYXRlZCBhbmQgaGFzIG5vIGVmZmVjdC4gYXR0ci52YWx1ZSBpcyB1bmVzY2FwZWQgYnkgZGVmYXVsdCBub3cuIil9KSxuLl9jb25zdHJ1Y3RlZD0hMCxufXZhciB0PWUucHJvdG90eXBlO3JldHVybiB0LmdldFF1b3RlZFZhbHVlPWZ1bmN0aW9uKG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcz10aGlzLl9kZXRlcm1pbmVRdW90ZU1hcmsobiksYT1lb1tzXSxvPSgwLG1pLmRlZmF1bHQpKHRoaXMuX3ZhbHVlLGEpO3JldHVybiBvfSx0Ll9kZXRlcm1pbmVRdW90ZU1hcms9ZnVuY3Rpb24obil7cmV0dXJuIG4uc21hcnQ/dGhpcy5zbWFydFF1b3RlTWFyayhuKTp0aGlzLnByZWZlcnJlZFF1b3RlTWFyayhuKX0sdC5zZXRWYWx1ZT1mdW5jdGlvbihuLHMpe3M9PT12b2lkIDAmJihzPXt9KSx0aGlzLl92YWx1ZT1uLHRoaXMuX3F1b3RlTWFyaz10aGlzLl9kZXRlcm1pbmVRdW90ZU1hcmsocyksdGhpcy5fc3luY1Jhd1ZhbHVlKCl9LHQuc21hcnRRdW90ZU1hcms9ZnVuY3Rpb24obil7dmFyIHM9dGhpcy52YWx1ZSxhPXMucmVwbGFjZSgvW14nXS9nLCIiKS5sZW5ndGgsbz1zLnJlcGxhY2UoL1teIl0vZywiIikubGVuZ3RoO2lmKGErbz09PTApe3ZhciBsPSgwLG1pLmRlZmF1bHQpKHMse2lzSWRlbnRpZmllcjohMH0pO2lmKGw9PT1zKXJldHVybiBlLk5PX1FVT1RFO3ZhciBjPXRoaXMucHJlZmVycmVkUXVvdGVNYXJrKG4pO2lmKGM9PT1lLk5PX1FVT1RFKXt2YXIgZj10aGlzLnF1b3RlTWFya3x8bi5xdW90ZU1hcmt8fGUuRE9VQkxFX1FVT1RFLGQ9ZW9bZl0scD0oMCxtaS5kZWZhdWx0KShzLGQpO2lmKHAubGVuZ3RoPGwubGVuZ3RoKXJldHVybiBmfXJldHVybiBjfWVsc2UgcmV0dXJuIG89PT1hP3RoaXMucHJlZmVycmVkUXVvdGVNYXJrKG4pOm88YT9lLkRPVUJMRV9RVU9URTplLlNJTkdMRV9RVU9URX0sdC5wcmVmZXJyZWRRdW90ZU1hcms9ZnVuY3Rpb24obil7dmFyIHM9bi5wcmVmZXJDdXJyZW50UXVvdGVNYXJrP3RoaXMucXVvdGVNYXJrOm4ucXVvdGVNYXJrO3JldHVybiBzPT09dm9pZCAwJiYocz1uLnByZWZlckN1cnJlbnRRdW90ZU1hcms/bi5xdW90ZU1hcms6dGhpcy5xdW90ZU1hcmspLHM9PT12b2lkIDAmJihzPWUuRE9VQkxFX1FVT1RFKSxzfSx0Ll9zeW5jUmF3VmFsdWU9ZnVuY3Rpb24oKXt2YXIgbj0oMCxtaS5kZWZhdWx0KSh0aGlzLl92YWx1ZSxlb1t0aGlzLnF1b3RlTWFya10pO249PT10aGlzLl92YWx1ZT90aGlzLnJhd3MmJmRlbGV0ZSB0aGlzLnJhd3MudmFsdWU6dGhpcy5yYXdzLnZhbHVlPW59LHQuX2hhbmRsZUVzY2FwZXM9ZnVuY3Rpb24obixzKXtpZih0aGlzLl9jb25zdHJ1Y3RlZCl7dmFyIGE9KDAsbWkuZGVmYXVsdCkocyx7aXNJZGVudGlmaWVyOiEwfSk7YSE9PXM/dGhpcy5yYXdzW25dPWE6ZGVsZXRlIHRoaXMucmF3c1tuXX19LHQuX3NwYWNlc0Zvcj1mdW5jdGlvbihuKXt2YXIgcz17YmVmb3JlOiIiLGFmdGVyOiIifSxhPXRoaXMuc3BhY2VzW25dfHx7fSxvPXRoaXMucmF3cy5zcGFjZXMmJnRoaXMucmF3cy5zcGFjZXNbbl18fHt9O3JldHVybiBPYmplY3QuYXNzaWduKHMsYSxvKX0sdC5fc3RyaW5nRm9yPWZ1bmN0aW9uKG4scyxhKXtzPT09dm9pZCAwJiYocz1uKSxhPT09dm9pZCAwJiYoYT1zZCk7dmFyIG89dGhpcy5fc3BhY2VzRm9yKHMpO3JldHVybiBhKHRoaXMuc3RyaW5naWZ5UHJvcGVydHkobiksbyl9LHQub2Zmc2V0T2Y9ZnVuY3Rpb24obil7dmFyIHM9MSxhPXRoaXMuX3NwYWNlc0ZvcigiYXR0cmlidXRlIik7aWYocys9YS5iZWZvcmUubGVuZ3RoLG49PT0ibmFtZXNwYWNlInx8bj09PSJucyIpcmV0dXJuIHRoaXMubmFtZXNwYWNlP3M6LTE7aWYobj09PSJhdHRyaWJ1dGVOUyJ8fChzKz10aGlzLm5hbWVzcGFjZVN0cmluZy5sZW5ndGgsdGhpcy5uYW1lc3BhY2UmJihzKz0xKSxuPT09ImF0dHJpYnV0ZSIpKXJldHVybiBzO3MrPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoImF0dHJpYnV0ZSIpLmxlbmd0aCxzKz1hLmFmdGVyLmxlbmd0aDt2YXIgbz10aGlzLl9zcGFjZXNGb3IoIm9wZXJhdG9yIik7cys9by5iZWZvcmUubGVuZ3RoO3ZhciBsPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoIm9wZXJhdG9yIik7aWYobj09PSJvcGVyYXRvciIpcmV0dXJuIGw/czotMTtzKz1sLmxlbmd0aCxzKz1vLmFmdGVyLmxlbmd0aDt2YXIgYz10aGlzLl9zcGFjZXNGb3IoInZhbHVlIik7cys9Yy5iZWZvcmUubGVuZ3RoO3ZhciBmPXRoaXMuc3RyaW5naWZ5UHJvcGVydHkoInZhbHVlIik7aWYobj09PSJ2YWx1ZSIpcmV0dXJuIGY/czotMTtzKz1mLmxlbmd0aCxzKz1jLmFmdGVyLmxlbmd0aDt2YXIgZD10aGlzLl9zcGFjZXNGb3IoImluc2Vuc2l0aXZlIik7cmV0dXJuIHMrPWQuYmVmb3JlLmxlbmd0aCxuPT09Imluc2Vuc2l0aXZlIiYmdGhpcy5pbnNlbnNpdGl2ZT9zOi0xfSx0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG49dGhpcyxzPVt0aGlzLnJhd1NwYWNlQmVmb3JlLCJbIl07cmV0dXJuIHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoInF1YWxpZmllZEF0dHJpYnV0ZSIsImF0dHJpYnV0ZSIpKSx0aGlzLm9wZXJhdG9yJiYodGhpcy52YWx1ZXx8dGhpcy52YWx1ZT09PSIiKSYmKHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoIm9wZXJhdG9yIikpLHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoInZhbHVlIikpLHMucHVzaCh0aGlzLl9zdHJpbmdGb3IoImluc2Vuc2l0aXZlRmxhZyIsImluc2Vuc2l0aXZlIixmdW5jdGlvbihhLG8pe3JldHVybiBhLmxlbmd0aD4wJiYhbi5xdW90ZWQmJm8uYmVmb3JlLmxlbmd0aD09PTAmJiEobi5zcGFjZXMudmFsdWUmJm4uc3BhY2VzLnZhbHVlLmFmdGVyKSYmKG8uYmVmb3JlPSIgIiksc2QoYSxvKX0pKSkscy5wdXNoKCJdIikscy5wdXNoKHRoaXMucmF3U3BhY2VBZnRlcikscy5qb2luKCIiKX0sX1MoZSxbe2tleToicXVvdGVkIixnZXQ6ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnF1b3RlTWFyaztyZXR1cm4gbj09PSInInx8bj09PSciJ30sc2V0OmZ1bmN0aW9uKG4pe1JTKCl9fSx7a2V5OiJxdW90ZU1hcmsiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9xdW90ZU1hcmt9LHNldDpmdW5jdGlvbihuKXtpZighdGhpcy5fY29uc3RydWN0ZWQpe3RoaXMuX3F1b3RlTWFyaz1uO3JldHVybn10aGlzLl9xdW90ZU1hcmshPT1uJiYodGhpcy5fcXVvdGVNYXJrPW4sdGhpcy5fc3luY1Jhd1ZhbHVlKCkpfX0se2tleToicXVhbGlmaWVkQXR0cmlidXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWFsaWZpZWROYW1lKHRoaXMucmF3cy5hdHRyaWJ1dGV8fHRoaXMuYXR0cmlidXRlKX19LHtrZXk6Imluc2Vuc2l0aXZlRmxhZyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZW5zaXRpdmU/ImkiOiIifX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKG4pe2lmKHRoaXMuX2NvbnN0cnVjdGVkKXt2YXIgcz1KYShuKSxhPXMuZGVwcmVjYXRlZFVzYWdlLG89cy51bmVzY2FwZWQsbD1zLnF1b3RlTWFyaztpZihhJiZUUygpLG89PT10aGlzLl92YWx1ZSYmbD09PXRoaXMuX3F1b3RlTWFyaylyZXR1cm47dGhpcy5fdmFsdWU9byx0aGlzLl9xdW90ZU1hcms9bCx0aGlzLl9zeW5jUmF3VmFsdWUoKX1lbHNlIHRoaXMuX3ZhbHVlPW59fSx7a2V5OiJpbnNlbnNpdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2luc2Vuc2l0aXZlfSxzZXQ6ZnVuY3Rpb24obil7bnx8KHRoaXMuX2luc2Vuc2l0aXZlPSExLHRoaXMucmF3cyYmKHRoaXMucmF3cy5pbnNlbnNpdGl2ZUZsYWc9PT0iSSJ8fHRoaXMucmF3cy5pbnNlbnNpdGl2ZUZsYWc9PT0iaSIpJiYodGhpcy5yYXdzLmluc2Vuc2l0aXZlRmxhZz12b2lkIDApKSx0aGlzLl9pbnNlbnNpdGl2ZT1ufX0se2tleToiYXR0cmlidXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXR0cmlidXRlfSxzZXQ6ZnVuY3Rpb24obil7dGhpcy5faGFuZGxlRXNjYXBlcygiYXR0cmlidXRlIixuKSx0aGlzLl9hdHRyaWJ1dGU9bn19XSksZX0oQVMuZGVmYXVsdCk7eWkuZGVmYXVsdD1qbjtqbi5OT19RVU9URT1udWxsO2puLlNJTkdMRV9RVU9URT0iJyI7am4uRE9VQkxFX1FVT1RFPSciJzt2YXIgZW89KEthPXsiJyI6e3F1b3Rlczoic2luZ2xlIix3cmFwOiEwfSwnIic6e3F1b3RlczoiZG91YmxlIix3cmFwOiEwfX0sS2FbbnVsbF09e2lzSWRlbnRpZmllcjohMH0sS2EpO2Z1bmN0aW9uIHNkKHIsZSl7cmV0dXJuIiIrZS5iZWZvcmUrcitlLmFmdGVyfX0pO3ZhciBpbz14KChiaSxhZCk9Pnt1KCk7InVzZSBzdHJpY3QiO2JpLl9fZXNNb2R1bGU9ITA7YmkuZGVmYXVsdD12b2lkIDA7dmFyIERTPSRTKE5uKCkpLHFTPVNlKCk7ZnVuY3Rpb24gJFMocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIExTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixybyhyLGUpfWZ1bmN0aW9uIHJvKHIsZSl7cmV0dXJuIHJvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0scm8ocixlKX12YXIgTVM9ZnVuY3Rpb24ocil7TFMoZSxyKTtmdW5jdGlvbiBlKHQpe3ZhciBpO3JldHVybiBpPXIuY2FsbCh0aGlzLHQpfHx0aGlzLGkudHlwZT1xUy5VTklWRVJTQUwsaS52YWx1ZT0iKiIsaX1yZXR1cm4gZX0oRFMuZGVmYXVsdCk7YmkuZGVmYXVsdD1NUzthZC5leHBvcnRzPWJpLmRlZmF1bHR9KTt2YXIgc289eCgod2ksb2QpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt3aS5fX2VzTW9kdWxlPSEwO3dpLmRlZmF1bHQ9dm9pZCAwO3ZhciBOUz1GUyhkdCgpKSxCUz1TZSgpO2Z1bmN0aW9uIEZTKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBqUyhyLGUpe3IucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsbm8ocixlKX1mdW5jdGlvbiBubyhyLGUpe3JldHVybiBubz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihpLG4pe3JldHVybiBpLl9fcHJvdG9fXz1uLGl9LG5vKHIsZSl9dmFyIHpTPWZ1bmN0aW9uKHIpe2pTKGUscik7ZnVuY3Rpb24gZSh0KXt2YXIgaTtyZXR1cm4gaT1yLmNhbGwodGhpcyx0KXx8dGhpcyxpLnR5cGU9QlMuQ09NQklOQVRPUixpfXJldHVybiBlfShOUy5kZWZhdWx0KTt3aS5kZWZhdWx0PXpTO29kLmV4cG9ydHM9d2kuZGVmYXVsdH0pO3ZhciBvbz14KCh2aSxsZCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZpLl9fZXNNb2R1bGU9ITA7dmkuZGVmYXVsdD12b2lkIDA7dmFyIFVTPUhTKGR0KCkpLFZTPVNlKCk7ZnVuY3Rpb24gSFMocil7cmV0dXJuIHImJnIuX19lc01vZHVsZT9yOntkZWZhdWx0OnJ9fWZ1bmN0aW9uIFdTKHIsZSl7ci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixhbyhyLGUpfWZ1bmN0aW9uIGFvKHIsZSl7cmV0dXJuIGFvPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGksbil7cmV0dXJuIGkuX19wcm90b19fPW4saX0sYW8ocixlKX12YXIgR1M9ZnVuY3Rpb24ocil7V1MoZSxyKTtmdW5jdGlvbiBlKHQpe3ZhciBpO3JldHVybiBpPXIuY2FsbCh0aGlzLHQpfHx0aGlzLGkudHlwZT1WUy5ORVNUSU5HLGkudmFsdWU9IiYiLGl9cmV0dXJuIGV9KFVTLmRlZmF1bHQpO3ZpLmRlZmF1bHQ9R1M7bGQuZXhwb3J0cz12aS5kZWZhdWx0fSk7dmFyIGZkPXgoKHpuLHVkKT0+e3UoKTsidXNlIHN0cmljdCI7em4uX19lc01vZHVsZT0hMDt6bi5kZWZhdWx0PVFTO2Z1bmN0aW9uIFFTKHIpe3JldHVybiByLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSl9dWQuZXhwb3J0cz16bi5kZWZhdWx0fSk7dmFyIGxvPXgoTT0+e3UoKTsidXNlIHN0cmljdCI7TS5fX2VzTW9kdWxlPSEwO00ud29yZD1NLnRpbGRlPU0udGFiPU0uc3RyPU0uc3BhY2U9TS5zbGFzaD1NLnNpbmdsZVF1b3RlPU0uc2VtaWNvbG9uPU0ucGx1cz1NLnBpcGU9TS5vcGVuU3F1YXJlPU0ub3BlblBhcmVudGhlc2lzPU0ubmV3bGluZT1NLmdyZWF0ZXJUaGFuPU0uZmVlZD1NLmVxdWFscz1NLmRvdWJsZVF1b3RlPU0uZG9sbGFyPU0uY3I9TS5jb21tZW50PU0uY29tbWE9TS5jb21iaW5hdG9yPU0uY29sb249TS5jbG9zZVNxdWFyZT1NLmNsb3NlUGFyZW50aGVzaXM9TS5jYXJldD1NLmJhbmc9TS5iYWNrc2xhc2g9TS5hdD1NLmFzdGVyaXNrPU0uYW1wZXJzYW5kPXZvaWQgMDt2YXIgWVM9Mzg7TS5hbXBlcnNhbmQ9WVM7dmFyIEtTPTQyO00uYXN0ZXJpc2s9S1M7dmFyIFhTPTY0O00uYXQ9WFM7dmFyIFpTPTQ0O00uY29tbWE9WlM7dmFyIEpTPTU4O00uY29sb249SlM7dmFyIGVBPTU5O00uc2VtaWNvbG9uPWVBO3ZhciB0QT00MDtNLm9wZW5QYXJlbnRoZXNpcz10QTt2YXIgckE9NDE7TS5jbG9zZVBhcmVudGhlc2lzPXJBO3ZhciBpQT05MTtNLm9wZW5TcXVhcmU9aUE7dmFyIG5BPTkzO00uY2xvc2VTcXVhcmU9bkE7dmFyIHNBPTM2O00uZG9sbGFyPXNBO3ZhciBhQT0xMjY7TS50aWxkZT1hQTt2YXIgb0E9OTQ7TS5jYXJldD1vQTt2YXIgbEE9NDM7TS5wbHVzPWxBO3ZhciB1QT02MTtNLmVxdWFscz11QTt2YXIgZkE9MTI0O00ucGlwZT1mQTt2YXIgY0E9NjI7TS5ncmVhdGVyVGhhbj1jQTt2YXIgcEE9MzI7TS5zcGFjZT1wQTt2YXIgY2Q9Mzk7TS5zaW5nbGVRdW90ZT1jZDt2YXIgZEE9MzQ7TS5kb3VibGVRdW90ZT1kQTt2YXIgaEE9NDc7TS5zbGFzaD1oQTt2YXIgbUE9MzM7TS5iYW5nPW1BO3ZhciBnQT05MjtNLmJhY2tzbGFzaD1nQTt2YXIgeUE9MTM7TS5jcj15QTt2YXIgYkE9MTI7TS5mZWVkPWJBO3ZhciB3QT0xMDtNLm5ld2xpbmU9d0E7dmFyIHZBPTk7TS50YWI9dkE7dmFyIHhBPWNkO00uc3RyPXhBO3ZhciBrQT0tMTtNLmNvbW1lbnQ9a0E7dmFyIFNBPS0yO00ud29yZD1TQTt2YXIgQUE9LTM7TS5jb21iaW5hdG9yPUFBfSk7dmFyIGhkPXgoeGk9Pnt1KCk7InVzZSBzdHJpY3QiO3hpLl9fZXNNb2R1bGU9ITA7eGkuRklFTERTPXZvaWQgMDt4aS5kZWZhdWx0PVBBO3ZhciBEPUNBKGxvKCkpLG5yLHRlO2Z1bmN0aW9uIHBkKHIpe2lmKHR5cGVvZiBXZWFrTWFwIT0iZnVuY3Rpb24iKXJldHVybiBudWxsO3ZhciBlPW5ldyBXZWFrTWFwLHQ9bmV3IFdlYWtNYXA7cmV0dXJuKHBkPWZ1bmN0aW9uKG4pe3JldHVybiBuP3Q6ZX0pKHIpfWZ1bmN0aW9uIENBKHIsZSl7aWYoIWUmJnImJnIuX19lc01vZHVsZSlyZXR1cm4gcjtpZihyPT09bnVsbHx8dHlwZW9mIHIhPSJvYmplY3QiJiZ0eXBlb2YgciE9ImZ1bmN0aW9uIilyZXR1cm57ZGVmYXVsdDpyfTt2YXIgdD1wZChlKTtpZih0JiZ0LmhhcyhyKSlyZXR1cm4gdC5nZXQocik7dmFyIGk9e30sbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBzIGluIHIpaWYocyE9PSJkZWZhdWx0IiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIscykpe3ZhciBhPW4/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLHMpOm51bGw7YSYmKGEuZ2V0fHxhLnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KGkscyxhKTppW3NdPXJbc119cmV0dXJuIGkuZGVmYXVsdD1yLHQmJnQuc2V0KHIsaSksaX12YXIgX0E9KG5yPXt9LG5yW0QudGFiXT0hMCxucltELm5ld2xpbmVdPSEwLG5yW0QuY3JdPSEwLG5yW0QuZmVlZF09ITAsbnIpLEVBPSh0ZT17fSx0ZVtELnNwYWNlXT0hMCx0ZVtELnRhYl09ITAsdGVbRC5uZXdsaW5lXT0hMCx0ZVtELmNyXT0hMCx0ZVtELmZlZWRdPSEwLHRlW0QuYW1wZXJzYW5kXT0hMCx0ZVtELmFzdGVyaXNrXT0hMCx0ZVtELmJhbmddPSEwLHRlW0QuY29tbWFdPSEwLHRlW0QuY29sb25dPSEwLHRlW0Quc2VtaWNvbG9uXT0hMCx0ZVtELm9wZW5QYXJlbnRoZXNpc109ITAsdGVbRC5jbG9zZVBhcmVudGhlc2lzXT0hMCx0ZVtELm9wZW5TcXVhcmVdPSEwLHRlW0QuY2xvc2VTcXVhcmVdPSEwLHRlW0Quc2luZ2xlUXVvdGVdPSEwLHRlW0QuZG91YmxlUXVvdGVdPSEwLHRlW0QucGx1c109ITAsdGVbRC5waXBlXT0hMCx0ZVtELnRpbGRlXT0hMCx0ZVtELmdyZWF0ZXJUaGFuXT0hMCx0ZVtELmVxdWFsc109ITAsdGVbRC5kb2xsYXJdPSEwLHRlW0QuY2FyZXRdPSEwLHRlW0Quc2xhc2hdPSEwLHRlKSx1bz17fSxkZD0iMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRiI7Zm9yKFVuPTA7VW48ZGQubGVuZ3RoO1VuKyspdW9bZGQuY2hhckNvZGVBdChVbildPSEwO3ZhciBVbjtmdW5jdGlvbiBPQShyLGUpe3ZhciB0PWUsaTtkb3tpZihpPXIuY2hhckNvZGVBdCh0KSxFQVtpXSlyZXR1cm4gdC0xO2k9PT1ELmJhY2tzbGFzaD90PVRBKHIsdCkrMTp0Kyt9d2hpbGUodDxyLmxlbmd0aCk7cmV0dXJuIHQtMX1mdW5jdGlvbiBUQShyLGUpe3ZhciB0PWUsaT1yLmNoYXJDb2RlQXQodCsxKTtpZighX0FbaV0paWYodW9baV0pe3ZhciBuPTA7ZG8gdCsrLG4rKyxpPXIuY2hhckNvZGVBdCh0KzEpO3doaWxlKHVvW2ldJiZuPDYpO248NiYmaT09PUQuc3BhY2UmJnQrK31lbHNlIHQrKztyZXR1cm4gdH12YXIgUkE9e1RZUEU6MCxTVEFSVF9MSU5FOjEsU1RBUlRfQ09MOjIsRU5EX0xJTkU6MyxFTkRfQ09MOjQsU1RBUlRfUE9TOjUsRU5EX1BPUzo2fTt4aS5GSUVMRFM9UkE7ZnVuY3Rpb24gUEEocil7dmFyIGU9W10sdD1yLmNzcy52YWx1ZU9mKCksaT10LG49aS5sZW5ndGgscz0tMSxhPTEsbz0wLGw9MCxjLGYsZCxwLGgsYix2LHksdyxrLFMsRSxUO2Z1bmN0aW9uIEIoTixSKXtpZihyLnNhZmUpdCs9Uix3PXQubGVuZ3RoLTE7ZWxzZSB0aHJvdyByLmVycm9yKCJVbmNsb3NlZCAiK04sYSxvLXMsbyl9Zm9yKDtvPG47KXtzd2l0Y2goYz10LmNoYXJDb2RlQXQobyksYz09PUQubmV3bGluZSYmKHM9byxhKz0xKSxjKXtjYXNlIEQuc3BhY2U6Y2FzZSBELnRhYjpjYXNlIEQubmV3bGluZTpjYXNlIEQuY3I6Y2FzZSBELmZlZWQ6dz1vO2RvIHcrPTEsYz10LmNoYXJDb2RlQXQodyksYz09PUQubmV3bGluZSYmKHM9dyxhKz0xKTt3aGlsZShjPT09RC5zcGFjZXx8Yz09PUQubmV3bGluZXx8Yz09PUQudGFifHxjPT09RC5jcnx8Yz09PUQuZmVlZCk7VD1ELnNwYWNlLHA9YSxkPXctcy0xLGw9dzticmVhaztjYXNlIEQucGx1czpjYXNlIEQuZ3JlYXRlclRoYW46Y2FzZSBELnRpbGRlOmNhc2UgRC5waXBlOnc9bztkbyB3Kz0xLGM9dC5jaGFyQ29kZUF0KHcpO3doaWxlKGM9PT1ELnBsdXN8fGM9PT1ELmdyZWF0ZXJUaGFufHxjPT09RC50aWxkZXx8Yz09PUQucGlwZSk7VD1ELmNvbWJpbmF0b3IscD1hLGQ9by1zLGw9dzticmVhaztjYXNlIEQuYXN0ZXJpc2s6Y2FzZSBELmFtcGVyc2FuZDpjYXNlIEQuYmFuZzpjYXNlIEQuY29tbWE6Y2FzZSBELmVxdWFsczpjYXNlIEQuZG9sbGFyOmNhc2UgRC5jYXJldDpjYXNlIEQub3BlblNxdWFyZTpjYXNlIEQuY2xvc2VTcXVhcmU6Y2FzZSBELmNvbG9uOmNhc2UgRC5zZW1pY29sb246Y2FzZSBELm9wZW5QYXJlbnRoZXNpczpjYXNlIEQuY2xvc2VQYXJlbnRoZXNpczp3PW8sVD1jLHA9YSxkPW8tcyxsPXcrMTticmVhaztjYXNlIEQuc2luZ2xlUXVvdGU6Y2FzZSBELmRvdWJsZVF1b3RlOkU9Yz09PUQuc2luZ2xlUXVvdGU/IiciOiciJyx3PW87ZG8gZm9yKGg9ITEsdz10LmluZGV4T2YoRSx3KzEpLHc9PT0tMSYmQigicXVvdGUiLEUpLGI9dzt0LmNoYXJDb2RlQXQoYi0xKT09PUQuYmFja3NsYXNoOyliLT0xLGg9IWg7d2hpbGUoaCk7VD1ELnN0cixwPWEsZD1vLXMsbD13KzE7YnJlYWs7ZGVmYXVsdDpjPT09RC5zbGFzaCYmdC5jaGFyQ29kZUF0KG8rMSk9PT1ELmFzdGVyaXNrPyh3PXQuaW5kZXhPZigiKi8iLG8rMikrMSx3PT09MCYmQigiY29tbWVudCIsIiovIiksZj10LnNsaWNlKG8sdysxKSx5PWYuc3BsaXQoYApgKSx2PXkubGVuZ3RoLTEsdj4wPyhrPWErdixTPXcteVt2XS5sZW5ndGgpOihrPWEsUz1zKSxUPUQuY29tbWVudCxhPWsscD1rLGQ9dy1TKTpjPT09RC5zbGFzaD8odz1vLFQ9YyxwPWEsZD1vLXMsbD13KzEpOih3PU9BKHQsbyksVD1ELndvcmQscD1hLGQ9dy1zKSxsPXcrMTticmVha31lLnB1c2goW1QsYSxvLXMscCxkLG8sbF0pLFMmJihzPVMsUz1udWxsKSxvPWx9cmV0dXJuIGV9fSk7dmFyIGtkPXgoKGtpLHhkKT0+e3UoKTsidXNlIHN0cmljdCI7a2kuX19lc01vZHVsZT0hMDtraS5kZWZhdWx0PXZvaWQgMDt2YXIgSUE9amUoRGEoKSksZm89amUoJGEoKSksREE9amUoTmEoKSksbWQ9amUoRmEoKSkscUE9amUoemEoKSksJEE9amUoSGEoKSksY289amUoR2EoKSksTEE9amUoWWEoKSksZ2Q9Vm4odG8oKSksTUE9amUoaW8oKSkscG89amUoc28oKSksTkE9amUob28oKSksQkE9amUoZmQoKSksTz1WbihoZCgpKSxxPVZuKGxvKCkpLEZBPVZuKFNlKCkpLHVlPWlpKCksVnQsaG87ZnVuY3Rpb24geWQocil7aWYodHlwZW9mIFdlYWtNYXAhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oeWQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/dDplfSkocil9ZnVuY3Rpb24gVm4ocixlKXtpZighZSYmciYmci5fX2VzTW9kdWxlKXJldHVybiByO2lmKHI9PT1udWxsfHx0eXBlb2YgciE9Im9iamVjdCImJnR5cGVvZiByIT0iZnVuY3Rpb24iKXJldHVybntkZWZhdWx0OnJ9O3ZhciB0PXlkKGUpO2lmKHQmJnQuaGFzKHIpKXJldHVybiB0LmdldChyKTt2YXIgaT17fSxuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIHMgaW4gcilpZihzIT09ImRlZmF1bHQiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzKSl7dmFyIGE9bj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIscyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxzLGEpOmlbc109cltzXX1yZXR1cm4gaS5kZWZhdWx0PXIsdCYmdC5zZXQocixpKSxpfWZ1bmN0aW9uIGplKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1mdW5jdGlvbiBiZChyLGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgaT1lW3RdO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsaS5rZXksaSl9fWZ1bmN0aW9uIGpBKHIsZSx0KXtyZXR1cm4gZSYmYmQoci5wcm90b3R5cGUsZSksdCYmYmQocix0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxyfXZhciBtbz0oVnQ9e30sVnRbcS5zcGFjZV09ITAsVnRbcS5jcl09ITAsVnRbcS5mZWVkXT0hMCxWdFtxLm5ld2xpbmVdPSEwLFZ0W3EudGFiXT0hMCxWdCksekE9T2JqZWN0LmFzc2lnbih7fSxtbywoaG89e30saG9bcS5jb21tZW50XT0hMCxobykpO2Z1bmN0aW9uIHdkKHIpe3JldHVybntsaW5lOnJbTy5GSUVMRFMuU1RBUlRfTElORV0sY29sdW1uOnJbTy5GSUVMRFMuU1RBUlRfQ09MXX19ZnVuY3Rpb24gdmQocil7cmV0dXJue2xpbmU6cltPLkZJRUxEUy5FTkRfTElORV0sY29sdW1uOnJbTy5GSUVMRFMuRU5EX0NPTF19fWZ1bmN0aW9uIEh0KHIsZSx0LGkpe3JldHVybntzdGFydDp7bGluZTpyLGNvbHVtbjplfSxlbmQ6e2xpbmU6dCxjb2x1bW46aX19fWZ1bmN0aW9uIHNyKHIpe3JldHVybiBIdChyW08uRklFTERTLlNUQVJUX0xJTkVdLHJbTy5GSUVMRFMuU1RBUlRfQ09MXSxyW08uRklFTERTLkVORF9MSU5FXSxyW08uRklFTERTLkVORF9DT0xdKX1mdW5jdGlvbiBnbyhyLGUpe2lmKCEhcilyZXR1cm4gSHQocltPLkZJRUxEUy5TVEFSVF9MSU5FXSxyW08uRklFTERTLlNUQVJUX0NPTF0sZVtPLkZJRUxEUy5FTkRfTElORV0sZVtPLkZJRUxEUy5FTkRfQ09MXSl9ZnVuY3Rpb24gYXIocixlKXt2YXIgdD1yW2VdO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gdC5pbmRleE9mKCJcXCIpIT09LTEmJigoMCx1ZS5lbnN1cmVPYmplY3QpKHIsInJhd3MiKSxyW2VdPSgwLHVlLnVuZXNjKSh0KSxyLnJhd3NbZV09PT12b2lkIDAmJihyLnJhd3NbZV09dCkpLHJ9ZnVuY3Rpb24geW8ocixlKXtmb3IodmFyIHQ9LTEsaT1bXTsodD1yLmluZGV4T2YoZSx0KzEpKSE9PS0xOylpLnB1c2godCk7cmV0dXJuIGl9ZnVuY3Rpb24gVUEoKXt2YXIgcj1BcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGFyZ3VtZW50cyk7cmV0dXJuIHIuZmlsdGVyKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9PT1yLmluZGV4T2YoZSl9KX12YXIgVkE9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQsaSl7aT09PXZvaWQgMCYmKGk9e30pLHRoaXMucnVsZT10LHRoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHtsb3NzeTohMSxzYWZlOiExfSxpKSx0aGlzLnBvc2l0aW9uPTAsdGhpcy5jc3M9dHlwZW9mIHRoaXMucnVsZT09InN0cmluZyI/dGhpcy5ydWxlOnRoaXMucnVsZS5zZWxlY3Rvcix0aGlzLnRva2Vucz0oMCxPLmRlZmF1bHQpKHtjc3M6dGhpcy5jc3MsZXJyb3I6dGhpcy5fZXJyb3JHZW5lcmF0b3IoKSxzYWZlOnRoaXMub3B0aW9ucy5zYWZlfSk7dmFyIG49Z28odGhpcy50b2tlbnNbMF0sdGhpcy50b2tlbnNbdGhpcy50b2tlbnMubGVuZ3RoLTFdKTt0aGlzLnJvb3Q9bmV3IElBLmRlZmF1bHQoe3NvdXJjZTpufSksdGhpcy5yb290LmVycm9yR2VuZXJhdG9yPXRoaXMuX2Vycm9yR2VuZXJhdG9yKCk7dmFyIHM9bmV3IGZvLmRlZmF1bHQoe3NvdXJjZTp7c3RhcnQ6e2xpbmU6MSxjb2x1bW46MX19LHNvdXJjZUluZGV4OjB9KTt0aGlzLnJvb3QuYXBwZW5kKHMpLHRoaXMuY3VycmVudD1zLHRoaXMubG9vcCgpfXZhciBlPXIucHJvdG90eXBlO3JldHVybiBlLl9lcnJvckdlbmVyYXRvcj1mdW5jdGlvbigpe3ZhciBpPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKG4scyl7cmV0dXJuIHR5cGVvZiBpLnJ1bGU9PSJzdHJpbmciP25ldyBFcnJvcihuKTppLnJ1bGUuZXJyb3IobixzKX19LGUuYXR0cmlidXRlPWZ1bmN0aW9uKCl7dmFyIGk9W10sbj10aGlzLmN1cnJUb2tlbjtmb3IodGhpcy5wb3NpdGlvbisrO3RoaXMucG9zaXRpb248dGhpcy50b2tlbnMubGVuZ3RoJiZ0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXSE9PXEuY2xvc2VTcXVhcmU7KWkucHVzaCh0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO2lmKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdIT09cS5jbG9zZVNxdWFyZSlyZXR1cm4gdGhpcy5leHBlY3RlZCgiY2xvc2luZyBzcXVhcmUgYnJhY2tldCIsdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSk7dmFyIHM9aS5sZW5ndGgsYT17c291cmNlOkh0KG5bMV0sblsyXSx0aGlzLmN1cnJUb2tlblszXSx0aGlzLmN1cnJUb2tlbls0XSksc291cmNlSW5kZXg6bltPLkZJRUxEUy5TVEFSVF9QT1NdfTtpZihzPT09MSYmIX5bcS53b3JkXS5pbmRleE9mKGlbMF1bTy5GSUVMRFMuVFlQRV0pKXJldHVybiB0aGlzLmV4cGVjdGVkKCJhdHRyaWJ1dGUiLGlbMF1bTy5GSUVMRFMuU1RBUlRfUE9TXSk7Zm9yKHZhciBvPTAsbD0iIixjPSIiLGY9bnVsbCxkPSExO288czspe3ZhciBwPWlbb10saD10aGlzLmNvbnRlbnQocCksYj1pW28rMV07c3dpdGNoKHBbTy5GSUVMRFMuVFlQRV0pe2Nhc2UgcS5zcGFjZTppZihkPSEwLHRoaXMub3B0aW9ucy5sb3NzeSlicmVhaztpZihmKXsoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInNwYWNlcyIsZik7dmFyIHY9YS5zcGFjZXNbZl0uYWZ0ZXJ8fCIiO2Euc3BhY2VzW2ZdLmFmdGVyPXYraDt2YXIgeT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwic3BhY2VzIixmLCJhZnRlciIpfHxudWxsO3kmJihhLnJhd3Muc3BhY2VzW2ZdLmFmdGVyPXkraCl9ZWxzZSBsPWwraCxjPWMraDticmVhaztjYXNlIHEuYXN0ZXJpc2s6aWYoYltPLkZJRUxEUy5UWVBFXT09PXEuZXF1YWxzKWEub3BlcmF0b3I9aCxmPSJvcGVyYXRvciI7ZWxzZSBpZigoIWEubmFtZXNwYWNlfHxmPT09Im5hbWVzcGFjZSImJiFkKSYmYil7bCYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwic3BhY2VzIiwiYXR0cmlidXRlIiksYS5zcGFjZXMuYXR0cmlidXRlLmJlZm9yZT1sLGw9IiIpLGMmJigoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiLCJzcGFjZXMiLCJhdHRyaWJ1dGUiKSxhLnJhd3Muc3BhY2VzLmF0dHJpYnV0ZS5iZWZvcmU9bCxjPSIiKSxhLm5hbWVzcGFjZT0oYS5uYW1lc3BhY2V8fCIiKStoO3ZhciB3PSgwLHVlLmdldFByb3ApKGEsInJhd3MiLCJuYW1lc3BhY2UiKXx8bnVsbDt3JiYoYS5yYXdzLm5hbWVzcGFjZSs9aCksZj0ibmFtZXNwYWNlIn1kPSExO2JyZWFrO2Nhc2UgcS5kb2xsYXI6aWYoZj09PSJ2YWx1ZSIpe3ZhciBrPSgwLHVlLmdldFByb3ApKGEsInJhd3MiLCJ2YWx1ZSIpO2EudmFsdWUrPSIkIixrJiYoYS5yYXdzLnZhbHVlPWsrIiQiKTticmVha31jYXNlIHEuY2FyZXQ6YltPLkZJRUxEUy5UWVBFXT09PXEuZXF1YWxzJiYoYS5vcGVyYXRvcj1oLGY9Im9wZXJhdG9yIiksZD0hMTticmVhaztjYXNlIHEuY29tYmluYXRvcjppZihoPT09In4iJiZiW08uRklFTERTLlRZUEVdPT09cS5lcXVhbHMmJihhLm9wZXJhdG9yPWgsZj0ib3BlcmF0b3IiKSxoIT09InwiKXtkPSExO2JyZWFrfWJbTy5GSUVMRFMuVFlQRV09PT1xLmVxdWFscz8oYS5vcGVyYXRvcj1oLGY9Im9wZXJhdG9yIik6IWEubmFtZXNwYWNlJiYhYS5hdHRyaWJ1dGUmJihhLm5hbWVzcGFjZT0hMCksZD0hMTticmVhaztjYXNlIHEud29yZDppZihiJiZ0aGlzLmNvbnRlbnQoYik9PT0ifCImJmlbbysyXSYmaVtvKzJdW08uRklFTERTLlRZUEVdIT09cS5lcXVhbHMmJiFhLm9wZXJhdG9yJiYhYS5uYW1lc3BhY2UpYS5uYW1lc3BhY2U9aCxmPSJuYW1lc3BhY2UiO2Vsc2UgaWYoIWEuYXR0cmlidXRlfHxmPT09ImF0dHJpYnV0ZSImJiFkKXtsJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJzcGFjZXMiLCJhdHRyaWJ1dGUiKSxhLnNwYWNlcy5hdHRyaWJ1dGUuYmVmb3JlPWwsbD0iIiksYyYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwicmF3cyIsInNwYWNlcyIsImF0dHJpYnV0ZSIpLGEucmF3cy5zcGFjZXMuYXR0cmlidXRlLmJlZm9yZT1jLGM9IiIpLGEuYXR0cmlidXRlPShhLmF0dHJpYnV0ZXx8IiIpK2g7dmFyIFM9KDAsdWUuZ2V0UHJvcCkoYSwicmF3cyIsImF0dHJpYnV0ZSIpfHxudWxsO1MmJihhLnJhd3MuYXR0cmlidXRlKz1oKSxmPSJhdHRyaWJ1dGUifWVsc2UgaWYoIWEudmFsdWUmJmEudmFsdWUhPT0iInx8Zj09PSJ2YWx1ZSImJiEoZHx8YS5xdW90ZU1hcmspKXt2YXIgRT0oMCx1ZS51bmVzYykoaCksVD0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwidmFsdWUiKXx8IiIsQj1hLnZhbHVlfHwiIjthLnZhbHVlPUIrRSxhLnF1b3RlTWFyaz1udWxsLChFIT09aHx8VCkmJigoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3MudmFsdWU9KFR8fEIpK2gpLGY9InZhbHVlIn1lbHNle3ZhciBOPWg9PT0iaSJ8fGg9PT0iSSI7KGEudmFsdWV8fGEudmFsdWU9PT0iIikmJihhLnF1b3RlTWFya3x8ZCk/KGEuaW5zZW5zaXRpdmU9TiwoIU58fGg9PT0iSSIpJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJyYXdzIiksYS5yYXdzLmluc2Vuc2l0aXZlRmxhZz1oKSxmPSJpbnNlbnNpdGl2ZSIsbCYmKCgwLHVlLmVuc3VyZU9iamVjdCkoYSwic3BhY2VzIiwiaW5zZW5zaXRpdmUiKSxhLnNwYWNlcy5pbnNlbnNpdGl2ZS5iZWZvcmU9bCxsPSIiKSxjJiYoKDAsdWUuZW5zdXJlT2JqZWN0KShhLCJyYXdzIiwic3BhY2VzIiwiaW5zZW5zaXRpdmUiKSxhLnJhd3Muc3BhY2VzLmluc2Vuc2l0aXZlLmJlZm9yZT1jLGM9IiIpKTooYS52YWx1ZXx8YS52YWx1ZT09PSIiKSYmKGY9InZhbHVlIixhLnZhbHVlKz1oLGEucmF3cy52YWx1ZSYmKGEucmF3cy52YWx1ZSs9aCkpfWQ9ITE7YnJlYWs7Y2FzZSBxLnN0cjppZighYS5hdHRyaWJ1dGV8fCFhLm9wZXJhdG9yKXJldHVybiB0aGlzLmVycm9yKCJFeHBlY3RlZCBhbiBhdHRyaWJ1dGUgZm9sbG93ZWQgYnkgYW4gb3BlcmF0b3IgcHJlY2VkaW5nIHRoZSBzdHJpbmcuIix7aW5kZXg6cFtPLkZJRUxEUy5TVEFSVF9QT1NdfSk7dmFyIFI9KDAsZ2QudW5lc2NhcGVWYWx1ZSkoaCksRj1SLnVuZXNjYXBlZCxZPVIucXVvdGVNYXJrO2EudmFsdWU9RixhLnF1b3RlTWFyaz1ZLGY9InZhbHVlIiwoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3MudmFsdWU9aCxkPSExO2JyZWFrO2Nhc2UgcS5lcXVhbHM6aWYoIWEuYXR0cmlidXRlKXJldHVybiB0aGlzLmV4cGVjdGVkKCJhdHRyaWJ1dGUiLHBbTy5GSUVMRFMuU1RBUlRfUE9TXSxoKTtpZihhLnZhbHVlKXJldHVybiB0aGlzLmVycm9yKCdVbmV4cGVjdGVkICI9IiBmb3VuZDsgYW4gb3BlcmF0b3Igd2FzIGFscmVhZHkgZGVmaW5lZC4nLHtpbmRleDpwW08uRklFTERTLlNUQVJUX1BPU119KTthLm9wZXJhdG9yPWEub3BlcmF0b3I/YS5vcGVyYXRvcitoOmgsZj0ib3BlcmF0b3IiLGQ9ITE7YnJlYWs7Y2FzZSBxLmNvbW1lbnQ6aWYoZilpZihkfHxiJiZiW08uRklFTERTLlRZUEVdPT09cS5zcGFjZXx8Zj09PSJpbnNlbnNpdGl2ZSIpe3ZhciBfPSgwLHVlLmdldFByb3ApKGEsInNwYWNlcyIsZiwiYWZ0ZXIiKXx8IiIsUT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIiwic3BhY2VzIixmLCJhZnRlciIpfHxfOygwLHVlLmVuc3VyZU9iamVjdCkoYSwicmF3cyIsInNwYWNlcyIsZiksYS5yYXdzLnNwYWNlc1tmXS5hZnRlcj1RK2h9ZWxzZXt2YXIgVT1hW2ZdfHwiIixsZT0oMCx1ZS5nZXRQcm9wKShhLCJyYXdzIixmKXx8VTsoMCx1ZS5lbnN1cmVPYmplY3QpKGEsInJhd3MiKSxhLnJhd3NbZl09bGUraH1lbHNlIGM9YytoO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHRoaXMuZXJyb3IoJ1VuZXhwZWN0ZWQgIicraCsnIiBmb3VuZC4nLHtpbmRleDpwW08uRklFTERTLlNUQVJUX1BPU119KX1vKyt9YXIoYSwiYXR0cmlidXRlIiksYXIoYSwibmFtZXNwYWNlIiksdGhpcy5uZXdOb2RlKG5ldyBnZC5kZWZhdWx0KGEpKSx0aGlzLnBvc2l0aW9uKyt9LGUucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2Vucz1mdW5jdGlvbihpKXtpPDAmJihpPXRoaXMudG9rZW5zLmxlbmd0aCk7dmFyIG49dGhpcy5wb3NpdGlvbixzPVtdLGE9IiIsbz12b2lkIDA7ZG8gaWYobW9bdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV1dKXRoaXMub3B0aW9ucy5sb3NzeXx8KGErPXRoaXMuY29udGVudCgpKTtlbHNlIGlmKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb21tZW50KXt2YXIgbD17fTthJiYobC5iZWZvcmU9YSxhPSIiKSxvPW5ldyBtZC5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IodGhpcy5jdXJyVG9rZW4pLHNvdXJjZUluZGV4OnRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX1BPU10sc3BhY2VzOmx9KSxzLnB1c2gobyl9d2hpbGUoKyt0aGlzLnBvc2l0aW9uPGkpO2lmKGEpe2lmKG8pby5zcGFjZXMuYWZ0ZXI9YTtlbHNlIGlmKCF0aGlzLm9wdGlvbnMubG9zc3kpe3ZhciBjPXRoaXMudG9rZW5zW25dLGY9dGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbi0xXTtzLnB1c2gobmV3IGNvLmRlZmF1bHQoe3ZhbHVlOiIiLHNvdXJjZTpIdChjW08uRklFTERTLlNUQVJUX0xJTkVdLGNbTy5GSUVMRFMuU1RBUlRfQ09MXSxmW08uRklFTERTLkVORF9MSU5FXSxmW08uRklFTERTLkVORF9DT0xdKSxzb3VyY2VJbmRleDpjW08uRklFTERTLlNUQVJUX1BPU10sc3BhY2VzOntiZWZvcmU6YSxhZnRlcjoiIn19KSl9fXJldHVybiBzfSxlLmNvbnZlcnRXaGl0ZXNwYWNlTm9kZXNUb1NwYWNlPWZ1bmN0aW9uKGksbil7dmFyIHM9dGhpcztuPT09dm9pZCAwJiYobj0hMSk7dmFyIGE9IiIsbz0iIjtpLmZvckVhY2goZnVuY3Rpb24oYyl7dmFyIGY9cy5sb3NzeVNwYWNlKGMuc3BhY2VzLmJlZm9yZSxuKSxkPXMubG9zc3lTcGFjZShjLnJhd1NwYWNlQmVmb3JlLG4pO2ErPWYrcy5sb3NzeVNwYWNlKGMuc3BhY2VzLmFmdGVyLG4mJmYubGVuZ3RoPT09MCksbys9ZitjLnZhbHVlK3MubG9zc3lTcGFjZShjLnJhd1NwYWNlQWZ0ZXIsbiYmZC5sZW5ndGg9PT0wKX0pLG89PT1hJiYobz12b2lkIDApO3ZhciBsPXtzcGFjZTphLHJhd1NwYWNlOm99O3JldHVybiBsfSxlLmlzTmFtZWRDb21iaW5hdG9yPWZ1bmN0aW9uKGkpe3JldHVybiBpPT09dm9pZCAwJiYoaT10aGlzLnBvc2l0aW9uKSx0aGlzLnRva2Vuc1tpKzBdJiZ0aGlzLnRva2Vuc1tpKzBdW08uRklFTERTLlRZUEVdPT09cS5zbGFzaCYmdGhpcy50b2tlbnNbaSsxXSYmdGhpcy50b2tlbnNbaSsxXVtPLkZJRUxEUy5UWVBFXT09PXEud29yZCYmdGhpcy50b2tlbnNbaSsyXSYmdGhpcy50b2tlbnNbaSsyXVtPLkZJRUxEUy5UWVBFXT09PXEuc2xhc2h9LGUubmFtZWRDb21iaW5hdG9yPWZ1bmN0aW9uKCl7aWYodGhpcy5pc05hbWVkQ29tYmluYXRvcigpKXt2YXIgaT10aGlzLmNvbnRlbnQodGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXSksbj0oMCx1ZS51bmVzYykoaSkudG9Mb3dlckNhc2UoKSxzPXt9O24hPT1pJiYocy52YWx1ZT0iLyIraSsiLyIpO3ZhciBhPW5ldyBwby5kZWZhdWx0KHt2YWx1ZToiLyIrbisiLyIsc291cmNlOkh0KHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX0xJTkVdLHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX0NPTF0sdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisyXVtPLkZJRUxEUy5FTkRfTElORV0sdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisyXVtPLkZJRUxEUy5FTkRfQ09MXSksc291cmNlSW5kZXg6dGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSxyYXdzOnN9KTtyZXR1cm4gdGhpcy5wb3NpdGlvbj10aGlzLnBvc2l0aW9uKzMsYX1lbHNlIHRoaXMudW5leHBlY3RlZCgpfSxlLmNvbWJpbmF0b3I9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO2lmKHRoaXMuY29udGVudCgpPT09InwiKXJldHVybiB0aGlzLm5hbWVzcGFjZSgpO3ZhciBuPXRoaXMubG9jYXRlTmV4dE1lYW5pbmdmdWxUb2tlbih0aGlzLnBvc2l0aW9uKTtpZihuPDB8fHRoaXMudG9rZW5zW25dW08uRklFTERTLlRZUEVdPT09cS5jb21tYXx8dGhpcy50b2tlbnNbbl1bTy5GSUVMRFMuVFlQRV09PT1xLmNsb3NlUGFyZW50aGVzaXMpe3ZhciBzPXRoaXMucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2VucyhuKTtpZihzLmxlbmd0aD4wKXt2YXIgYT10aGlzLmN1cnJlbnQubGFzdDtpZihhKXt2YXIgbz10aGlzLmNvbnZlcnRXaGl0ZXNwYWNlTm9kZXNUb1NwYWNlKHMpLGw9by5zcGFjZSxjPW8ucmF3U3BhY2U7YyE9PXZvaWQgMCYmKGEucmF3U3BhY2VBZnRlcis9YyksYS5zcGFjZXMuYWZ0ZXIrPWx9ZWxzZSBzLmZvckVhY2goZnVuY3Rpb24oVCl7cmV0dXJuIGkubmV3Tm9kZShUKX0pfXJldHVybn12YXIgZj10aGlzLmN1cnJUb2tlbixkPXZvaWQgMDtuPnRoaXMucG9zaXRpb24mJihkPXRoaXMucGFyc2VXaGl0ZXNwYWNlRXF1aXZhbGVudFRva2VucyhuKSk7dmFyIHA7aWYodGhpcy5pc05hbWVkQ29tYmluYXRvcigpP3A9dGhpcy5uYW1lZENvbWJpbmF0b3IoKTp0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEuY29tYmluYXRvcj8ocD1uZXcgcG8uZGVmYXVsdCh7dmFsdWU6dGhpcy5jb250ZW50KCksc291cmNlOnNyKHRoaXMuY3VyclRva2VuKSxzb3VyY2VJbmRleDp0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdfSksdGhpcy5wb3NpdGlvbisrKTptb1t0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXV18fGR8fHRoaXMudW5leHBlY3RlZCgpLHApe2lmKGQpe3ZhciBoPXRoaXMuY29udmVydFdoaXRlc3BhY2VOb2Rlc1RvU3BhY2UoZCksYj1oLnNwYWNlLHY9aC5yYXdTcGFjZTtwLnNwYWNlcy5iZWZvcmU9YixwLnJhd1NwYWNlQmVmb3JlPXZ9fWVsc2V7dmFyIHk9dGhpcy5jb252ZXJ0V2hpdGVzcGFjZU5vZGVzVG9TcGFjZShkLCEwKSx3PXkuc3BhY2Usaz15LnJhd1NwYWNlO2t8fChrPXcpO3ZhciBTPXt9LEU9e3NwYWNlczp7fX07dy5lbmRzV2l0aCgiICIpJiZrLmVuZHNXaXRoKCIgIik/KFMuYmVmb3JlPXcuc2xpY2UoMCx3Lmxlbmd0aC0xKSxFLnNwYWNlcy5iZWZvcmU9ay5zbGljZSgwLGsubGVuZ3RoLTEpKTp3LnN0YXJ0c1dpdGgoIiAiKSYmay5zdGFydHNXaXRoKCIgIik/KFMuYWZ0ZXI9dy5zbGljZSgxKSxFLnNwYWNlcy5hZnRlcj1rLnNsaWNlKDEpKTpFLnZhbHVlPWsscD1uZXcgcG8uZGVmYXVsdCh7dmFsdWU6IiAiLHNvdXJjZTpnbyhmLHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV0pLHNvdXJjZUluZGV4OmZbTy5GSUVMRFMuU1RBUlRfUE9TXSxzcGFjZXM6UyxyYXdzOkV9KX1yZXR1cm4gdGhpcy5jdXJyVG9rZW4mJnRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5zcGFjZSYmKHAuc3BhY2VzLmFmdGVyPXRoaXMub3B0aW9uYWxTcGFjZSh0aGlzLmNvbnRlbnQoKSksdGhpcy5wb3NpdGlvbisrKSx0aGlzLm5ld05vZGUocCl9LGUuY29tbWE9ZnVuY3Rpb24oKXtpZih0aGlzLnBvc2l0aW9uPT09dGhpcy50b2tlbnMubGVuZ3RoLTEpe3RoaXMucm9vdC50cmFpbGluZ0NvbW1hPSEwLHRoaXMucG9zaXRpb24rKztyZXR1cm59dGhpcy5jdXJyZW50Ll9pbmZlckVuZFBvc2l0aW9uKCk7dmFyIGk9bmV3IGZvLmRlZmF1bHQoe3NvdXJjZTp7c3RhcnQ6d2QodGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXSl9LHNvdXJjZUluZGV4OnRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24rMV1bTy5GSUVMRFMuU1RBUlRfUE9TXX0pO3RoaXMuY3VycmVudC5wYXJlbnQuYXBwZW5kKGkpLHRoaXMuY3VycmVudD1pLHRoaXMucG9zaXRpb24rK30sZS5jb21tZW50PWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyVG9rZW47dGhpcy5uZXdOb2RlKG5ldyBtZC5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IoaSksc291cmNlSW5kZXg6aVtPLkZJRUxEUy5TVEFSVF9QT1NdfSkpLHRoaXMucG9zaXRpb24rK30sZS5lcnJvcj1mdW5jdGlvbihpLG4pe3Rocm93IHRoaXMucm9vdC5lcnJvcihpLG4pfSxlLm1pc3NpbmdCYWNrc2xhc2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcigiRXhwZWN0ZWQgYSBiYWNrc2xhc2ggcHJlY2VkaW5nIHRoZSBzZW1pY29sb24uIix7aW5kZXg6dGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXX0pfSxlLm1pc3NpbmdQYXJlbnRoZXNpcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cGVjdGVkKCJvcGVuaW5nIHBhcmVudGhlc2lzIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5taXNzaW5nU3F1YXJlQnJhY2tldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmV4cGVjdGVkKCJvcGVuaW5nIHNxdWFyZSBicmFja2V0Iix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS51bmV4cGVjdGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3IoIlVuZXhwZWN0ZWQgJyIrdGhpcy5jb250ZW50KCkrIicuIEVzY2FwaW5nIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoIFxcIG1heSBoZWxwLiIsdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuU1RBUlRfUE9TXSl9LGUudW5leHBlY3RlZFBpcGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcigiVW5leHBlY3RlZCAnfCcuIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5uYW1lc3BhY2U9ZnVuY3Rpb24oKXt2YXIgaT10aGlzLnByZXZUb2tlbiYmdGhpcy5jb250ZW50KHRoaXMucHJldlRva2VuKXx8ITA7aWYodGhpcy5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLndvcmQpcmV0dXJuIHRoaXMucG9zaXRpb24rKyx0aGlzLndvcmQoaSk7aWYodGhpcy5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLmFzdGVyaXNrKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy51bml2ZXJzYWwoaSk7dGhpcy51bmV4cGVjdGVkUGlwZSgpfSxlLm5lc3Rpbmc9ZnVuY3Rpb24oKXtpZih0aGlzLm5leHRUb2tlbil7dmFyIGk9dGhpcy5jb250ZW50KHRoaXMubmV4dFRva2VuKTtpZihpPT09InwiKXt0aGlzLnBvc2l0aW9uKys7cmV0dXJufX12YXIgbj10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IE5BLmRlZmF1bHQoe3ZhbHVlOnRoaXMuY29udGVudCgpLHNvdXJjZTpzcihuKSxzb3VyY2VJbmRleDpuW08uRklFTERTLlNUQVJUX1BPU119KSksdGhpcy5wb3NpdGlvbisrfSxlLnBhcmVudGhlc2VzPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyZW50Lmxhc3Qsbj0xO2lmKHRoaXMucG9zaXRpb24rKyxpJiZpLnR5cGU9PT1GQS5QU0VVRE8pe3ZhciBzPW5ldyBmby5kZWZhdWx0KHtzb3VyY2U6e3N0YXJ0OndkKHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dKX0sc291cmNlSW5kZXg6dGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbl1bTy5GSUVMRFMuU1RBUlRfUE9TXX0pLGE9dGhpcy5jdXJyZW50O2ZvcihpLmFwcGVuZChzKSx0aGlzLmN1cnJlbnQ9czt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbjspdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmbisrLHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzJiZuLS0sbj90aGlzLnBhcnNlKCk6KHRoaXMuY3VycmVudC5zb3VyY2UuZW5kPXZkKHRoaXMuY3VyclRva2VuKSx0aGlzLmN1cnJlbnQucGFyZW50LnNvdXJjZS5lbmQ9dmQodGhpcy5jdXJyVG9rZW4pLHRoaXMucG9zaXRpb24rKyk7dGhpcy5jdXJyZW50PWF9ZWxzZXtmb3IodmFyIG89dGhpcy5jdXJyVG9rZW4sbD0iKCIsYzt0aGlzLnBvc2l0aW9uPHRoaXMudG9rZW5zLmxlbmd0aCYmbjspdGhpcy5jdXJyVG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmbisrLHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzJiZuLS0sYz10aGlzLmN1cnJUb2tlbixsKz10aGlzLnBhcnNlUGFyZW50aGVzaXNUb2tlbih0aGlzLmN1cnJUb2tlbiksdGhpcy5wb3NpdGlvbisrO2k/aS5hcHBlbmRUb1Byb3BlcnR5QW5kRXNjYXBlKCJ2YWx1ZSIsbCxsKTp0aGlzLm5ld05vZGUobmV3IGNvLmRlZmF1bHQoe3ZhbHVlOmwsc291cmNlOkh0KG9bTy5GSUVMRFMuU1RBUlRfTElORV0sb1tPLkZJRUxEUy5TVEFSVF9DT0xdLGNbTy5GSUVMRFMuRU5EX0xJTkVdLGNbTy5GSUVMRFMuRU5EX0NPTF0pLHNvdXJjZUluZGV4Om9bTy5GSUVMRFMuU1RBUlRfUE9TXX0pKX1pZihuKXJldHVybiB0aGlzLmV4cGVjdGVkKCJjbG9zaW5nIHBhcmVudGhlc2lzIix0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5TVEFSVF9QT1NdKX0sZS5wc2V1ZG89ZnVuY3Rpb24oKXtmb3IodmFyIGk9dGhpcyxuPSIiLHM9dGhpcy5jdXJyVG9rZW47dGhpcy5jdXJyVG9rZW4mJnRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb2xvbjspbis9dGhpcy5jb250ZW50KCksdGhpcy5wb3NpdGlvbisrO2lmKCF0aGlzLmN1cnJUb2tlbilyZXR1cm4gdGhpcy5leHBlY3RlZChbInBzZXVkby1jbGFzcyIsInBzZXVkby1lbGVtZW50Il0sdGhpcy5wb3NpdGlvbi0xKTtpZih0aGlzLmN1cnJUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEud29yZCl0aGlzLnNwbGl0V29yZCghMSxmdW5jdGlvbihhLG8pe24rPWEsaS5uZXdOb2RlKG5ldyBMQS5kZWZhdWx0KHt2YWx1ZTpuLHNvdXJjZTpnbyhzLGkuY3VyclRva2VuKSxzb3VyY2VJbmRleDpzW08uRklFTERTLlNUQVJUX1BPU119KSksbz4xJiZpLm5leHRUb2tlbiYmaS5uZXh0VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpcyYmaS5lcnJvcigiTWlzcGxhY2VkIHBhcmVudGhlc2lzLiIse2luZGV4OmkubmV4dFRva2VuW08uRklFTERTLlNUQVJUX1BPU119KX0pO2Vsc2UgcmV0dXJuIHRoaXMuZXhwZWN0ZWQoWyJwc2V1ZG8tY2xhc3MiLCJwc2V1ZG8tZWxlbWVudCJdLHRoaXMuY3VyclRva2VuW08uRklFTERTLlNUQVJUX1BPU10pfSxlLnNwYWNlPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jb250ZW50KCk7dGhpcy5wb3NpdGlvbj09PTB8fHRoaXMucHJldlRva2VuW08uRklFTERTLlRZUEVdPT09cS5jb21tYXx8dGhpcy5wcmV2VG9rZW5bTy5GSUVMRFMuVFlQRV09PT1xLm9wZW5QYXJlbnRoZXNpc3x8dGhpcy5jdXJyZW50Lm5vZGVzLmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiBuLnR5cGU9PT0iY29tbWVudCJ9KT8odGhpcy5zcGFjZXM9dGhpcy5vcHRpb25hbFNwYWNlKGkpLHRoaXMucG9zaXRpb24rKyk6dGhpcy5wb3NpdGlvbj09PXRoaXMudG9rZW5zLmxlbmd0aC0xfHx0aGlzLm5leHRUb2tlbltPLkZJRUxEUy5UWVBFXT09PXEuY29tbWF8fHRoaXMubmV4dFRva2VuW08uRklFTERTLlRZUEVdPT09cS5jbG9zZVBhcmVudGhlc2lzPyh0aGlzLmN1cnJlbnQubGFzdC5zcGFjZXMuYWZ0ZXI9dGhpcy5vcHRpb25hbFNwYWNlKGkpLHRoaXMucG9zaXRpb24rKyk6dGhpcy5jb21iaW5hdG9yKCl9LGUuc3RyaW5nPWZ1bmN0aW9uKCl7dmFyIGk9dGhpcy5jdXJyVG9rZW47dGhpcy5uZXdOb2RlKG5ldyBjby5kZWZhdWx0KHt2YWx1ZTp0aGlzLmNvbnRlbnQoKSxzb3VyY2U6c3IoaSksc291cmNlSW5kZXg6aVtPLkZJRUxEUy5TVEFSVF9QT1NdfSkpLHRoaXMucG9zaXRpb24rK30sZS51bml2ZXJzYWw9ZnVuY3Rpb24oaSl7dmFyIG49dGhpcy5uZXh0VG9rZW47aWYobiYmdGhpcy5jb250ZW50KG4pPT09InwiKXJldHVybiB0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKTt2YXIgcz10aGlzLmN1cnJUb2tlbjt0aGlzLm5ld05vZGUobmV3IE1BLmRlZmF1bHQoe3ZhbHVlOnRoaXMuY29udGVudCgpLHNvdXJjZTpzcihzKSxzb3VyY2VJbmRleDpzW08uRklFTERTLlNUQVJUX1BPU119KSxpKSx0aGlzLnBvc2l0aW9uKyt9LGUuc3BsaXRXb3JkPWZ1bmN0aW9uKGksbil7Zm9yKHZhciBzPXRoaXMsYT10aGlzLm5leHRUb2tlbixvPXRoaXMuY29udGVudCgpO2EmJn5bcS5kb2xsYXIscS5jYXJldCxxLmVxdWFscyxxLndvcmRdLmluZGV4T2YoYVtPLkZJRUxEUy5UWVBFXSk7KXt0aGlzLnBvc2l0aW9uKys7dmFyIGw9dGhpcy5jb250ZW50KCk7aWYobys9bCxsLmxhc3RJbmRleE9mKCJcXCIpPT09bC5sZW5ndGgtMSl7dmFyIGM9dGhpcy5uZXh0VG9rZW47YyYmY1tPLkZJRUxEUy5UWVBFXT09PXEuc3BhY2UmJihvKz10aGlzLnJlcXVpcmVkU3BhY2UodGhpcy5jb250ZW50KGMpKSx0aGlzLnBvc2l0aW9uKyspfWE9dGhpcy5uZXh0VG9rZW59dmFyIGY9eW8obywiLiIpLmZpbHRlcihmdW5jdGlvbihiKXt2YXIgdj1vW2ItMV09PT0iXFwiLHk9L15cZCtcLlxkKyUkLy50ZXN0KG8pO3JldHVybiF2JiYheX0pLGQ9eW8obywiIyIpLmZpbHRlcihmdW5jdGlvbihiKXtyZXR1cm4gb1tiLTFdIT09IlxcIn0pLHA9eW8obywiI3siKTtwLmxlbmd0aCYmKGQ9ZC5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIX5wLmluZGV4T2YoYil9KSk7dmFyIGg9KDAsQkEuZGVmYXVsdCkoVUEoWzBdLmNvbmNhdChmLGQpKSk7aC5mb3JFYWNoKGZ1bmN0aW9uKGIsdil7dmFyIHk9aFt2KzFdfHxvLmxlbmd0aCx3PW8uc2xpY2UoYix5KTtpZih2PT09MCYmbilyZXR1cm4gbi5jYWxsKHMsdyxoLmxlbmd0aCk7dmFyIGssUz1zLmN1cnJUb2tlbixFPVNbTy5GSUVMRFMuU1RBUlRfUE9TXStoW3ZdLFQ9SHQoU1sxXSxTWzJdK2IsU1szXSxTWzJdKyh5LTEpKTtpZih+Zi5pbmRleE9mKGIpKXt2YXIgQj17dmFsdWU6dy5zbGljZSgxKSxzb3VyY2U6VCxzb3VyY2VJbmRleDpFfTtrPW5ldyBEQS5kZWZhdWx0KGFyKEIsInZhbHVlIikpfWVsc2UgaWYofmQuaW5kZXhPZihiKSl7dmFyIE49e3ZhbHVlOncuc2xpY2UoMSksc291cmNlOlQsc291cmNlSW5kZXg6RX07az1uZXcgcUEuZGVmYXVsdChhcihOLCJ2YWx1ZSIpKX1lbHNle3ZhciBSPXt2YWx1ZTp3LHNvdXJjZTpULHNvdXJjZUluZGV4OkV9O2FyKFIsInZhbHVlIiksaz1uZXcgJEEuZGVmYXVsdChSKX1zLm5ld05vZGUoayxpKSxpPW51bGx9KSx0aGlzLnBvc2l0aW9uKyt9LGUud29yZD1mdW5jdGlvbihpKXt2YXIgbj10aGlzLm5leHRUb2tlbjtyZXR1cm4gbiYmdGhpcy5jb250ZW50KG4pPT09InwiPyh0aGlzLnBvc2l0aW9uKyssdGhpcy5uYW1lc3BhY2UoKSk6dGhpcy5zcGxpdFdvcmQoaSl9LGUubG9vcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5wb3NpdGlvbjx0aGlzLnRva2Vucy5sZW5ndGg7KXRoaXMucGFyc2UoITApO3JldHVybiB0aGlzLmN1cnJlbnQuX2luZmVyRW5kUG9zaXRpb24oKSx0aGlzLnJvb3R9LGUucGFyc2U9ZnVuY3Rpb24oaSl7c3dpdGNoKHRoaXMuY3VyclRva2VuW08uRklFTERTLlRZUEVdKXtjYXNlIHEuc3BhY2U6dGhpcy5zcGFjZSgpO2JyZWFrO2Nhc2UgcS5jb21tZW50OnRoaXMuY29tbWVudCgpO2JyZWFrO2Nhc2UgcS5vcGVuUGFyZW50aGVzaXM6dGhpcy5wYXJlbnRoZXNlcygpO2JyZWFrO2Nhc2UgcS5jbG9zZVBhcmVudGhlc2lzOmkmJnRoaXMubWlzc2luZ1BhcmVudGhlc2lzKCk7YnJlYWs7Y2FzZSBxLm9wZW5TcXVhcmU6dGhpcy5hdHRyaWJ1dGUoKTticmVhaztjYXNlIHEuZG9sbGFyOmNhc2UgcS5jYXJldDpjYXNlIHEuZXF1YWxzOmNhc2UgcS53b3JkOnRoaXMud29yZCgpO2JyZWFrO2Nhc2UgcS5jb2xvbjp0aGlzLnBzZXVkbygpO2JyZWFrO2Nhc2UgcS5jb21tYTp0aGlzLmNvbW1hKCk7YnJlYWs7Y2FzZSBxLmFzdGVyaXNrOnRoaXMudW5pdmVyc2FsKCk7YnJlYWs7Y2FzZSBxLmFtcGVyc2FuZDp0aGlzLm5lc3RpbmcoKTticmVhaztjYXNlIHEuc2xhc2g6Y2FzZSBxLmNvbWJpbmF0b3I6dGhpcy5jb21iaW5hdG9yKCk7YnJlYWs7Y2FzZSBxLnN0cjp0aGlzLnN0cmluZygpO2JyZWFrO2Nhc2UgcS5jbG9zZVNxdWFyZTp0aGlzLm1pc3NpbmdTcXVhcmVCcmFja2V0KCk7Y2FzZSBxLnNlbWljb2xvbjp0aGlzLm1pc3NpbmdCYWNrc2xhc2goKTtkZWZhdWx0OnRoaXMudW5leHBlY3RlZCgpfX0sZS5leHBlY3RlZD1mdW5jdGlvbihpLG4scyl7aWYoQXJyYXkuaXNBcnJheShpKSl7dmFyIGE9aS5wb3AoKTtpPWkuam9pbigiLCAiKSsiIG9yICIrYX12YXIgbz0vXlthZWlvdV0vLnRlc3QoaVswXSk/ImFuIjoiYSI7cmV0dXJuIHM/dGhpcy5lcnJvcigiRXhwZWN0ZWQgIitvKyIgIitpKycsIGZvdW5kICInK3MrJyIgaW5zdGVhZC4nLHtpbmRleDpufSk6dGhpcy5lcnJvcigiRXhwZWN0ZWQgIitvKyIgIitpKyIuIix7aW5kZXg6bn0pfSxlLnJlcXVpcmVkU3BhY2U9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMub3B0aW9ucy5sb3NzeT8iICI6aX0sZS5vcHRpb25hbFNwYWNlPWZ1bmN0aW9uKGkpe3JldHVybiB0aGlzLm9wdGlvbnMubG9zc3k/IiI6aX0sZS5sb3NzeVNwYWNlPWZ1bmN0aW9uKGksbil7cmV0dXJuIHRoaXMub3B0aW9ucy5sb3NzeT9uPyIgIjoiIjppfSxlLnBhcnNlUGFyZW50aGVzaXNUb2tlbj1mdW5jdGlvbihpKXt2YXIgbj10aGlzLmNvbnRlbnQoaSk7cmV0dXJuIGlbTy5GSUVMRFMuVFlQRV09PT1xLnNwYWNlP3RoaXMucmVxdWlyZWRTcGFjZShuKTpufSxlLm5ld05vZGU9ZnVuY3Rpb24oaSxuKXtyZXR1cm4gbiYmKC9eICskLy50ZXN0KG4pJiYodGhpcy5vcHRpb25zLmxvc3N5fHwodGhpcy5zcGFjZXM9KHRoaXMuc3BhY2VzfHwiIikrbiksbj0hMCksaS5uYW1lc3BhY2U9bixhcihpLCJuYW1lc3BhY2UiKSksdGhpcy5zcGFjZXMmJihpLnNwYWNlcy5iZWZvcmU9dGhpcy5zcGFjZXMsdGhpcy5zcGFjZXM9IiIpLHRoaXMuY3VycmVudC5hcHBlbmQoaSl9LGUuY29udGVudD1mdW5jdGlvbihpKXtyZXR1cm4gaT09PXZvaWQgMCYmKGk9dGhpcy5jdXJyVG9rZW4pLHRoaXMuY3NzLnNsaWNlKGlbTy5GSUVMRFMuU1RBUlRfUE9TXSxpW08uRklFTERTLkVORF9QT1NdKX0sZS5sb2NhdGVOZXh0TWVhbmluZ2Z1bFRva2VuPWZ1bmN0aW9uKGkpe2k9PT12b2lkIDAmJihpPXRoaXMucG9zaXRpb24rMSk7Zm9yKHZhciBuPWk7bjx0aGlzLnRva2Vucy5sZW5ndGg7KWlmKHpBW3RoaXMudG9rZW5zW25dW08uRklFTERTLlRZUEVdXSl7bisrO2NvbnRpbnVlfWVsc2UgcmV0dXJuIG47cmV0dXJuLTF9LGpBKHIsW3trZXk6ImN1cnJUb2tlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb25dfX0se2tleToibmV4dFRva2VuIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b2tlbnNbdGhpcy5wb3NpdGlvbisxXX19LHtrZXk6InByZXZUb2tlbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9rZW5zW3RoaXMucG9zaXRpb24tMV19fV0pLHJ9KCk7a2kuZGVmYXVsdD1WQTt4ZC5leHBvcnRzPWtpLmRlZmF1bHR9KTt2YXIgQWQ9eCgoU2ksU2QpPT57dSgpOyJ1c2Ugc3RyaWN0IjtTaS5fX2VzTW9kdWxlPSEwO1NpLmRlZmF1bHQ9dm9pZCAwO3ZhciBIQT1XQShrZCgpKTtmdW5jdGlvbiBXQShyKXtyZXR1cm4gciYmci5fX2VzTW9kdWxlP3I6e2RlZmF1bHQ6cn19dmFyIEdBPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LGkpe3RoaXMuZnVuYz10fHxmdW5jdGlvbigpe30sdGhpcy5mdW5jUmVzPW51bGwsdGhpcy5vcHRpb25zPWl9dmFyIGU9ci5wcm90b3R5cGU7cmV0dXJuIGUuX3Nob3VsZFVwZGF0ZVNlbGVjdG9yPWZ1bmN0aW9uKGksbil7bj09PXZvaWQgMCYmKG49e30pO3ZhciBzPU9iamVjdC5hc3NpZ24oe30sdGhpcy5vcHRpb25zLG4pO3JldHVybiBzLnVwZGF0ZVNlbGVjdG9yPT09ITE/ITE6dHlwZW9mIGkhPSJzdHJpbmcifSxlLl9pc0xvc3N5PWZ1bmN0aW9uKGkpe2k9PT12b2lkIDAmJihpPXt9KTt2YXIgbj1PYmplY3QuYXNzaWduKHt9LHRoaXMub3B0aW9ucyxpKTtyZXR1cm4gbi5sb3NzbGVzcz09PSExfSxlLl9yb290PWZ1bmN0aW9uKGksbil7bj09PXZvaWQgMCYmKG49e30pO3ZhciBzPW5ldyBIQS5kZWZhdWx0KGksdGhpcy5fcGFyc2VPcHRpb25zKG4pKTtyZXR1cm4gcy5yb290fSxlLl9wYXJzZU9wdGlvbnM9ZnVuY3Rpb24oaSl7cmV0dXJue2xvc3N5OnRoaXMuX2lzTG9zc3koaSl9fSxlLl9ydW49ZnVuY3Rpb24oaSxuKXt2YXIgcz10aGlzO3JldHVybiBuPT09dm9pZCAwJiYobj17fSksbmV3IFByb21pc2UoZnVuY3Rpb24oYSxvKXt0cnl7dmFyIGw9cy5fcm9vdChpLG4pO1Byb21pc2UucmVzb2x2ZShzLmZ1bmMobCkpLnRoZW4oZnVuY3Rpb24oYyl7dmFyIGY9dm9pZCAwO3JldHVybiBzLl9zaG91bGRVcGRhdGVTZWxlY3RvcihpLG4pJiYoZj1sLnRvU3RyaW5nKCksaS5zZWxlY3Rvcj1mKSx7dHJhbnNmb3JtOmMscm9vdDpsLHN0cmluZzpmfX0pLnRoZW4oYSxvKX1jYXRjaChjKXtvKGMpO3JldHVybn19KX0sZS5fcnVuU3luYz1mdW5jdGlvbihpLG4pe249PT12b2lkIDAmJihuPXt9KTt2YXIgcz10aGlzLl9yb290KGksbiksYT10aGlzLmZ1bmMocyk7aWYoYSYmdHlwZW9mIGEudGhlbj09ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIlNlbGVjdG9yIHByb2Nlc3NvciByZXR1cm5lZCBhIHByb21pc2UgdG8gYSBzeW5jaHJvbm91cyBjYWxsLiIpO3ZhciBvPXZvaWQgMDtyZXR1cm4gbi51cGRhdGVTZWxlY3RvciYmdHlwZW9mIGkhPSJzdHJpbmciJiYobz1zLnRvU3RyaW5nKCksaS5zZWxlY3Rvcj1vKSx7dHJhbnNmb3JtOmEscm9vdDpzLHN0cmluZzpvfX0sZS5hc3Q9ZnVuY3Rpb24oaSxuKXtyZXR1cm4gdGhpcy5fcnVuKGksbikudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5yb290fSl9LGUuYXN0U3luYz1mdW5jdGlvbihpLG4pe3JldHVybiB0aGlzLl9ydW5TeW5jKGksbikucm9vdH0sZS50cmFuc2Zvcm09ZnVuY3Rpb24oaSxuKXtyZXR1cm4gdGhpcy5fcnVuKGksbikudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy50cmFuc2Zvcm19KX0sZS50cmFuc2Zvcm1TeW5jPWZ1bmN0aW9uKGksbil7cmV0dXJuIHRoaXMuX3J1blN5bmMoaSxuKS50cmFuc2Zvcm19LGUucHJvY2Vzcz1mdW5jdGlvbihpLG4pe3JldHVybiB0aGlzLl9ydW4oaSxuKS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLnN0cmluZ3x8cy5yb290LnRvU3RyaW5nKCl9KX0sZS5wcm9jZXNzU3luYz1mdW5jdGlvbihpLG4pe3ZhciBzPXRoaXMuX3J1blN5bmMoaSxuKTtyZXR1cm4gcy5zdHJpbmd8fHMucm9vdC50b1N0cmluZygpfSxyfSgpO1NpLmRlZmF1bHQ9R0E7U2QuZXhwb3J0cz1TaS5kZWZhdWx0fSk7dmFyIENkPXgobmU9Pnt1KCk7InVzZSBzdHJpY3QiO25lLl9fZXNNb2R1bGU9ITA7bmUudW5pdmVyc2FsPW5lLnRhZz1uZS5zdHJpbmc9bmUuc2VsZWN0b3I9bmUucm9vdD1uZS5wc2V1ZG89bmUubmVzdGluZz1uZS5pZD1uZS5jb21tZW50PW5lLmNvbWJpbmF0b3I9bmUuY2xhc3NOYW1lPW5lLmF0dHJpYnV0ZT12b2lkIDA7dmFyIFFBPXplKHRvKCkpLFlBPXplKE5hKCkpLEtBPXplKHNvKCkpLFhBPXplKEZhKCkpLFpBPXplKHphKCkpLEpBPXplKG9vKCkpLGVDPXplKFlhKCkpLHRDPXplKERhKCkpLHJDPXplKCRhKCkpLGlDPXplKEdhKCkpLG5DPXplKEhhKCkpLHNDPXplKGlvKCkpO2Z1bmN0aW9uIHplKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX12YXIgYUM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBRQS5kZWZhdWx0KGUpfTtuZS5hdHRyaWJ1dGU9YUM7dmFyIG9DPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgWUEuZGVmYXVsdChlKX07bmUuY2xhc3NOYW1lPW9DO3ZhciBsQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IEtBLmRlZmF1bHQoZSl9O25lLmNvbWJpbmF0b3I9bEM7dmFyIHVDPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgWEEuZGVmYXVsdChlKX07bmUuY29tbWVudD11Qzt2YXIgZkM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBaQS5kZWZhdWx0KGUpfTtuZS5pZD1mQzt2YXIgY0M9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBKQS5kZWZhdWx0KGUpfTtuZS5uZXN0aW5nPWNDO3ZhciBwQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGVDLmRlZmF1bHQoZSl9O25lLnBzZXVkbz1wQzt2YXIgZEM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0Qy5kZWZhdWx0KGUpfTtuZS5yb290PWRDO3ZhciBoQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IHJDLmRlZmF1bHQoZSl9O25lLnNlbGVjdG9yPWhDO3ZhciBtQz1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGlDLmRlZmF1bHQoZSl9O25lLnN0cmluZz1tQzt2YXIgZ0M9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBuQy5kZWZhdWx0KGUpfTtuZS50YWc9Z0M7dmFyIHlDPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgc0MuZGVmYXVsdChlKX07bmUudW5pdmVyc2FsPXlDfSk7dmFyIFRkPXgoWj0+e3UoKTsidXNlIHN0cmljdCI7Wi5fX2VzTW9kdWxlPSEwO1ouaXNDb21tZW50PVouaXNDb21iaW5hdG9yPVouaXNDbGFzc05hbWU9Wi5pc0F0dHJpYnV0ZT12b2lkIDA7Wi5pc0NvbnRhaW5lcj1UQztaLmlzSWRlbnRpZmllcj12b2lkIDA7Wi5pc05hbWVzcGFjZT1SQztaLmlzTmVzdGluZz12b2lkIDA7Wi5pc05vZGU9Ym87Wi5pc1BzZXVkbz12b2lkIDA7Wi5pc1BzZXVkb0NsYXNzPU9DO1ouaXNQc2V1ZG9FbGVtZW50PU9kO1ouaXNVbml2ZXJzYWw9Wi5pc1RhZz1aLmlzU3RyaW5nPVouaXNTZWxlY3Rvcj1aLmlzUm9vdD12b2lkIDA7dmFyIGZlPVNlKCksT2UsYkM9KE9lPXt9LE9lW2ZlLkFUVFJJQlVURV09ITAsT2VbZmUuQ0xBU1NdPSEwLE9lW2ZlLkNPTUJJTkFUT1JdPSEwLE9lW2ZlLkNPTU1FTlRdPSEwLE9lW2ZlLklEXT0hMCxPZVtmZS5ORVNUSU5HXT0hMCxPZVtmZS5QU0VVRE9dPSEwLE9lW2ZlLlJPT1RdPSEwLE9lW2ZlLlNFTEVDVE9SXT0hMCxPZVtmZS5TVFJJTkddPSEwLE9lW2ZlLlRBR109ITAsT2VbZmUuVU5JVkVSU0FMXT0hMCxPZSk7ZnVuY3Rpb24gYm8ocil7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0IiYmYkNbci50eXBlXX1mdW5jdGlvbiBVZShyLGUpe3JldHVybiBibyhlKSYmZS50eXBlPT09cn12YXIgX2Q9VWUuYmluZChudWxsLGZlLkFUVFJJQlVURSk7Wi5pc0F0dHJpYnV0ZT1fZDt2YXIgd0M9VWUuYmluZChudWxsLGZlLkNMQVNTKTtaLmlzQ2xhc3NOYW1lPXdDO3ZhciB2Qz1VZS5iaW5kKG51bGwsZmUuQ09NQklOQVRPUik7Wi5pc0NvbWJpbmF0b3I9dkM7dmFyIHhDPVVlLmJpbmQobnVsbCxmZS5DT01NRU5UKTtaLmlzQ29tbWVudD14Qzt2YXIga0M9VWUuYmluZChudWxsLGZlLklEKTtaLmlzSWRlbnRpZmllcj1rQzt2YXIgU0M9VWUuYmluZChudWxsLGZlLk5FU1RJTkcpO1ouaXNOZXN0aW5nPVNDO3ZhciB3bz1VZS5iaW5kKG51bGwsZmUuUFNFVURPKTtaLmlzUHNldWRvPXdvO3ZhciBBQz1VZS5iaW5kKG51bGwsZmUuUk9PVCk7Wi5pc1Jvb3Q9QUM7dmFyIENDPVVlLmJpbmQobnVsbCxmZS5TRUxFQ1RPUik7Wi5pc1NlbGVjdG9yPUNDO3ZhciBfQz1VZS5iaW5kKG51bGwsZmUuU1RSSU5HKTtaLmlzU3RyaW5nPV9DO3ZhciBFZD1VZS5iaW5kKG51bGwsZmUuVEFHKTtaLmlzVGFnPUVkO3ZhciBFQz1VZS5iaW5kKG51bGwsZmUuVU5JVkVSU0FMKTtaLmlzVW5pdmVyc2FsPUVDO2Z1bmN0aW9uIE9kKHIpe3JldHVybiB3byhyKSYmci52YWx1ZSYmKHIudmFsdWUuc3RhcnRzV2l0aCgiOjoiKXx8ci52YWx1ZS50b0xvd2VyQ2FzZSgpPT09IjpiZWZvcmUifHxyLnZhbHVlLnRvTG93ZXJDYXNlKCk9PT0iOmFmdGVyInx8ci52YWx1ZS50b0xvd2VyQ2FzZSgpPT09IjpmaXJzdC1sZXR0ZXIifHxyLnZhbHVlLnRvTG93ZXJDYXNlKCk9PT0iOmZpcnN0LWxpbmUiKX1mdW5jdGlvbiBPQyhyKXtyZXR1cm4gd28ocikmJiFPZChyKX1mdW5jdGlvbiBUQyhyKXtyZXR1cm4hIShibyhyKSYmci53YWxrKX1mdW5jdGlvbiBSQyhyKXtyZXR1cm4gX2Qocil8fEVkKHIpfX0pO3ZhciBSZD14KEtlPT57dSgpOyJ1c2Ugc3RyaWN0IjtLZS5fX2VzTW9kdWxlPSEwO3ZhciB2bz1TZSgpO09iamVjdC5rZXlzKHZvKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3I9PT0iZGVmYXVsdCJ8fHI9PT0iX19lc01vZHVsZSJ8fHIgaW4gS2UmJktlW3JdPT09dm9bcl18fChLZVtyXT12b1tyXSl9KTt2YXIgeG89Q2QoKTtPYmplY3Qua2V5cyh4bykuZm9yRWFjaChmdW5jdGlvbihyKXtyPT09ImRlZmF1bHQifHxyPT09Il9fZXNNb2R1bGUifHxyIGluIEtlJiZLZVtyXT09PXhvW3JdfHwoS2Vbcl09eG9bcl0pfSk7dmFyIGtvPVRkKCk7T2JqZWN0LmtleXMoa28pLmZvckVhY2goZnVuY3Rpb24ocil7cj09PSJkZWZhdWx0Inx8cj09PSJfX2VzTW9kdWxlInx8ciBpbiBLZSYmS2Vbcl09PT1rb1tyXXx8KEtlW3JdPWtvW3JdKX0pfSk7dmFyIGl0PXgoKEFpLElkKT0+e3UoKTsidXNlIHN0cmljdCI7QWkuX19lc01vZHVsZT0hMDtBaS5kZWZhdWx0PXZvaWQgMDt2YXIgUEM9cUMoQWQoKSksSUM9REMoUmQoKSk7ZnVuY3Rpb24gUGQocil7aWYodHlwZW9mIFdlYWtNYXAhPSJmdW5jdGlvbiIpcmV0dXJuIG51bGw7dmFyIGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oUGQ9ZnVuY3Rpb24obil7cmV0dXJuIG4/dDplfSkocil9ZnVuY3Rpb24gREMocixlKXtpZighZSYmciYmci5fX2VzTW9kdWxlKXJldHVybiByO2lmKHI9PT1udWxsfHx0eXBlb2YgciE9Im9iamVjdCImJnR5cGVvZiByIT0iZnVuY3Rpb24iKXJldHVybntkZWZhdWx0OnJ9O3ZhciB0PVBkKGUpO2lmKHQmJnQuaGFzKHIpKXJldHVybiB0LmdldChyKTt2YXIgaT17fSxuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIHMgaW4gcilpZihzIT09ImRlZmF1bHQiJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzKSl7dmFyIGE9bj9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIscyk6bnVsbDthJiYoYS5nZXR8fGEuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkoaSxzLGEpOmlbc109cltzXX1yZXR1cm4gaS5kZWZhdWx0PXIsdCYmdC5zZXQocixpKSxpfWZ1bmN0aW9uIHFDKHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX12YXIgU289ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQQy5kZWZhdWx0KGUpfTtPYmplY3QuYXNzaWduKFNvLElDKTtkZWxldGUgU28uX19lc01vZHVsZTt2YXIgJEM9U287QWkuZGVmYXVsdD0kQztJZC5leHBvcnRzPUFpLmRlZmF1bHR9KTtmdW5jdGlvbiBtdChyKXtyZXR1cm5bImZvbnRTaXplIiwib3V0bGluZSJdLmluY2x1ZGVzKHIpP2U9Pih0eXBlb2YgZT09ImZ1bmN0aW9uIiYmKGU9ZSh7fSkpLEFycmF5LmlzQXJyYXkoZSkmJihlPWVbMF0pLGUpOnI9PT0iZm9udEZhbWlseSI/ZT0+e3R5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHt9KSk7bGV0IHQ9QXJyYXkuaXNBcnJheShlKSYma2UoZVsxXSk/ZVswXTplO3JldHVybiBBcnJheS5pc0FycmF5KHQpP3Quam9pbigiLCAiKTp0fTpbImJveFNoYWRvdyIsInRyYW5zaXRpb25Qcm9wZXJ0eSIsInRyYW5zaXRpb25EdXJhdGlvbiIsInRyYW5zaXRpb25EZWxheSIsInRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiY3Vyc29yIiwiYW5pbWF0aW9uIl0uaW5jbHVkZXMocik/ZT0+KHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHt9KSksQXJyYXkuaXNBcnJheShlKSYmKGU9ZS5qb2luKCIsICIpKSxlKTpbImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJncmlkVGVtcGxhdGVSb3dzIiwib2JqZWN0UG9zaXRpb24iXS5pbmNsdWRlcyhyKT9lPT4odHlwZW9mIGU9PSJmdW5jdGlvbiImJihlPWUoe30pKSx0eXBlb2YgZT09InN0cmluZyImJihlPWVlLmxpc3QuY29tbWEoZSkuam9pbigiICIpKSxlKTooZSx0PXt9KT0+KHR5cGVvZiBlPT0iZnVuY3Rpb24iJiYoZT1lKHQpKSxlKX12YXIgQ2k9UCgoKT0+e3UoKTtPdCgpO0t0KCl9KTt2YXIgQmQ9eCgoTUksT28pPT57dSgpO3ZhcntBdFJ1bGU6TEMsUnVsZTpEZH09JGUoKSxxZD1pdCgpO2Z1bmN0aW9uIEFvKHIsZSl7bGV0IHQ7dHJ5e3FkKGk9Pnt0PWl9KS5wcm9jZXNzU3luYyhyKX1jYXRjaChpKXt0aHJvdyByLmluY2x1ZGVzKCI6Iik/ZT9lLmVycm9yKCJNaXNzZWQgc2VtaWNvbG9uIik6aTplP2UuZXJyb3IoaS5tZXNzYWdlKTppfXJldHVybiB0LmF0KDApfWZ1bmN0aW9uICRkKHIsZSl7bGV0IHQ9ITE7cmV0dXJuIHIuZWFjaChpPT57aWYoaS50eXBlPT09Im5lc3RpbmciKXtsZXQgbj1lLmNsb25lKHt9KTtpLnZhbHVlIT09IiYiP2kucmVwbGFjZVdpdGgoQW8oaS52YWx1ZS5yZXBsYWNlKCImIixuLnRvU3RyaW5nKCkpKSk6aS5yZXBsYWNlV2l0aChuKSx0PSEwfWVsc2Uibm9kZXMiaW4gaSYmaS5ub2RlcyYmJGQoaSxlKSYmKHQ9ITApfSksdH1mdW5jdGlvbiBMZChyLGUpe2xldCB0PVtdO3JldHVybiByLnNlbGVjdG9ycy5mb3JFYWNoKGk9PntsZXQgbj1BbyhpLHIpO2Uuc2VsZWN0b3JzLmZvckVhY2gocz0+e2lmKCFzKXJldHVybjtsZXQgYT1BbyhzLGUpOyRkKGEsbil8fChhLnByZXBlbmQocWQuY29tYmluYXRvcih7dmFsdWU6IiAifSkpLGEucHJlcGVuZChuLmNsb25lKHt9KSkpLHQucHVzaChhLnRvU3RyaW5nKCkpfSl9KSx0fWZ1bmN0aW9uIEhuKHIsZSl7bGV0IHQ9ci5wcmV2KCk7Zm9yKGUuYWZ0ZXIocik7dCYmdC50eXBlPT09ImNvbW1lbnQiOyl7bGV0IGk9dC5wcmV2KCk7ZS5hZnRlcih0KSx0PWl9cmV0dXJuIHJ9ZnVuY3Rpb24gTUMocil7cmV0dXJuIGZ1bmN0aW9uIGUodCxpLG4scz1uKXtsZXQgYT1bXTtpZihpLmVhY2gobz0+e28udHlwZT09PSJydWxlIiYmbj9zJiYoby5zZWxlY3RvcnM9TGQodCxvKSk6by50eXBlPT09ImF0cnVsZSImJm8ubm9kZXM/cltvLm5hbWVdP2UodCxvLHMpOmlbX29dIT09ITEmJmEucHVzaChvKTphLnB1c2gobyl9KSxuJiZhLmxlbmd0aCl7bGV0IG89dC5jbG9uZSh7bm9kZXM6W119KTtmb3IobGV0IGwgb2YgYSlvLmFwcGVuZChsKTtpLnByZXBlbmQobyl9fX1mdW5jdGlvbiBDbyhyLGUsdCl7bGV0IGk9bmV3IERkKHtub2RlczpbXSxzZWxlY3RvcjpyfSk7cmV0dXJuIGkuYXBwZW5kKGUpLHQuYWZ0ZXIoaSksaX1mdW5jdGlvbiBNZChyLGUpe2xldCB0PXt9O2ZvcihsZXQgaSBvZiByKXRbaV09ITA7aWYoZSlmb3IobGV0IGkgb2YgZSl0W2kucmVwbGFjZSgvXkAvLCIiKV09ITA7cmV0dXJuIHR9ZnVuY3Rpb24gTkMocil7cj1yLnRyaW0oKTtsZXQgZT1yLm1hdGNoKC9eXCgoLiopXCkkLyk7aWYoIWUpcmV0dXJue3NlbGVjdG9yOnIsdHlwZToiYmFzaWMifTtsZXQgdD1lWzFdLm1hdGNoKC9eKHdpdGgoPzpvdXQpPyk6KC4rKSQvKTtpZih0KXtsZXQgaT10WzFdPT09IndpdGgiLG49T2JqZWN0LmZyb21FbnRyaWVzKHRbMl0udHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoYT0+W2EsITBdKSk7aWYoaSYmbi5hbGwpcmV0dXJue3R5cGU6Im5vb3AifTtsZXQgcz1hPT4hIW5bYV07cmV0dXJuIG4uYWxsP3M9KCk9PiEwOmkmJihzPWE9PmE9PT0iYWxsIj8hMTohblthXSkse2VzY2FwZXM6cyx0eXBlOiJ3aXRocnVsZXMifX1yZXR1cm57dHlwZToidW5rbm93biJ9fWZ1bmN0aW9uIEJDKHIpe2xldCBlPVtdLHQ9ci5wYXJlbnQ7Zm9yKDt0JiZ0IGluc3RhbmNlb2YgTEM7KWUucHVzaCh0KSx0PXQucGFyZW50O3JldHVybiBlfWZ1bmN0aW9uIEZDKHIpe2xldCBlPXJbTmRdO2lmKCFlKXIuYWZ0ZXIoci5ub2Rlcyk7ZWxzZXtsZXQgdD1yLm5vZGVzLGksbj0tMSxzLGEsbyxsPUJDKHIpO2lmKGwuZm9yRWFjaCgoYyxmKT0+e2lmKGUoYy5uYW1lKSlpPWMsbj1mLGE9bztlbHNle2xldCBkPW87bz1jLmNsb25lKHtub2RlczpbXX0pLGQmJm8uYXBwZW5kKGQpLHM9c3x8b319KSxpP2E/KHMuYXBwZW5kKHQpLGkuYWZ0ZXIoYSkpOmkuYWZ0ZXIodCk6ci5hZnRlcih0KSxyLm5leHQoKSYmaSl7bGV0IGM7bC5zbGljZSgwLG4rMSkuZm9yRWFjaCgoZixkLHApPT57bGV0IGg9YztjPWYuY2xvbmUoe25vZGVzOltdfSksaCYmYy5hcHBlbmQoaCk7bGV0IGI9W10seT0ocFtkLTFdfHxyKS5uZXh0KCk7Zm9yKDt5OyliLnB1c2goeSkseT15Lm5leHQoKTtjLmFwcGVuZChiKX0pLGMmJihhfHx0W3QubGVuZ3RoLTFdKS5hZnRlcihjKX19ci5yZW1vdmUoKX12YXIgX289U3ltYm9sKCJyb290UnVsZU1lcmdlU2VsIiksTmQ9U3ltYm9sKCJyb290UnVsZUVzY2FwZXMiKTtmdW5jdGlvbiBqQyhyKXtsZXR7cGFyYW1zOmV9PXIse2VzY2FwZXM6dCxzZWxlY3RvcjppLHR5cGU6bn09TkMoZSk7aWYobj09PSJ1bmtub3duIil0aHJvdyByLmVycm9yKGBVbmtub3duIEAke3IubmFtZX0gcGFyYW1ldGVyICR7SlNPTi5zdHJpbmdpZnkoZSl9YCk7aWYobj09PSJiYXNpYyImJmkpe2xldCBzPW5ldyBEZCh7bm9kZXM6ci5ub2RlcyxzZWxlY3RvcjppfSk7ci5yZW1vdmVBbGwoKSxyLmFwcGVuZChzKX1yW05kXT10LHJbX29dPXQ/IXQoImFsbCIpOm49PT0ibm9vcCJ9dmFyIEVvPVN5bWJvbCgiaGFzUm9vdFJ1bGUiKTtPby5leHBvcnRzPShyPXt9KT0+e2xldCBlPU1kKFsibWVkaWEiLCJzdXBwb3J0cyIsImxheWVyIiwiY29udGFpbmVyIiwic3RhcnRpbmctc3R5bGUiXSxyLmJ1YmJsZSksdD1NQyhlKSxpPU1kKFsiZG9jdW1lbnQiLCJmb250LWZhY2UiLCJrZXlmcmFtZXMiLCItd2Via2l0LWtleWZyYW1lcyIsIi1tb3ota2V5ZnJhbWVzIl0sci51bndyYXApLG49KHIucm9vdFJ1bGVOYW1lfHwiYXQtcm9vdCIpLnJlcGxhY2UoL15ALywiIikscz1yLnByZXNlcnZlRW1wdHk7cmV0dXJue09uY2UoYSl7YS53YWxrQXRSdWxlcyhuLG89PntqQyhvKSxhW0VvXT0hMH0pfSxwb3N0Y3NzUGx1Z2luOiJwb3N0Y3NzLW5lc3RlZCIsUm9vdEV4aXQoYSl7YVtFb10mJihhLndhbGtBdFJ1bGVzKG4sRkMpLGFbRW9dPSExKX0sUnVsZShhKXtsZXQgbz0hMSxsPWEsYz0hMSxmPVtdO2EuZWFjaChkPT57ZC50eXBlPT09InJ1bGUiPyhmLmxlbmd0aCYmKGw9Q28oYS5zZWxlY3RvcixmLGwpLGY9W10pLGM9ITAsbz0hMCxkLnNlbGVjdG9ycz1MZChhLGQpLGw9SG4oZCxsKSk6ZC50eXBlPT09ImF0cnVsZSI/KGYubGVuZ3RoJiYobD1DbyhhLnNlbGVjdG9yLGYsbCksZj1bXSksZC5uYW1lPT09bj8obz0hMCx0KGEsZCwhMCxkW19vXSksbD1IbihkLGwpKTplW2QubmFtZV0/KGM9ITAsbz0hMCx0KGEsZCwhMCksbD1IbihkLGwpKTppW2QubmFtZV0/KGM9ITAsbz0hMCx0KGEsZCwhMSksbD1IbihkLGwpKTpjJiZmLnB1c2goZCkpOmQudHlwZT09PSJkZWNsIiYmYyYmZi5wdXNoKGQpfSksZi5sZW5ndGgmJihsPUNvKGEuc2VsZWN0b3IsZixsKSksbyYmcyE9PSEwJiYoYS5yYXdzLnNlbWljb2xvbj0hMCxhLm5vZGVzLmxlbmd0aD09PTAmJmEucmVtb3ZlKCkpfX19O09vLmV4cG9ydHMucG9zdGNzcz0hMH0pO3ZhciBVZD14KChOSSx6ZCk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBGZD0vLShcd3wkKS9nLGpkPShyLGUpPT5lLnRvVXBwZXJDYXNlKCksekM9cj0+KHI9ci50b0xvd2VyQ2FzZSgpLHI9PT0iZmxvYXQiPyJjc3NGbG9hdCI6ci5zdGFydHNXaXRoKCItbXMtIik/ci5zdWJzdHIoMSkucmVwbGFjZShGZCxqZCk6ci5yZXBsYWNlKEZkLGpkKSk7emQuZXhwb3J0cz16Q30pO3ZhciBQbz14KChCSSxWZCk9Pnt1KCk7dmFyIFVDPVVkKCksVkM9e2JveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGNvbHVtbkNvdW50OiEwLGZsZXg6ITAsZmxleEdyb3c6ITAsZmxleFBvc2l0aXZlOiEwLGZsZXhTaHJpbms6ITAsZmxleE5lZ2F0aXZlOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLHN0cm9rZURhc2hvZmZzZXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH07ZnVuY3Rpb24gVG8ocil7cmV0dXJuIHR5cGVvZiByLm5vZGVzPT0idW5kZWZpbmVkIj8hMDpSbyhyKX1mdW5jdGlvbiBSbyhyKXtsZXQgZSx0PXt9O3JldHVybiByLmVhY2goaT0+e2lmKGkudHlwZT09PSJhdHJ1bGUiKWU9IkAiK2kubmFtZSxpLnBhcmFtcyYmKGUrPSIgIitpLnBhcmFtcyksdHlwZW9mIHRbZV09PSJ1bmRlZmluZWQiP3RbZV09VG8oaSk6QXJyYXkuaXNBcnJheSh0W2VdKT90W2VdLnB1c2goVG8oaSkpOnRbZV09W3RbZV0sVG8oaSldO2Vsc2UgaWYoaS50eXBlPT09InJ1bGUiKXtsZXQgbj1SbyhpKTtpZih0W2kuc2VsZWN0b3JdKWZvcihsZXQgcyBpbiBuKXRbaS5zZWxlY3Rvcl1bc109bltzXTtlbHNlIHRbaS5zZWxlY3Rvcl09bn1lbHNlIGlmKGkudHlwZT09PSJkZWNsIil7aS5wcm9wWzBdPT09Ii0iJiZpLnByb3BbMV09PT0iLSJ8fGkucGFyZW50JiZpLnBhcmVudC5zZWxlY3Rvcj09PSI6ZXhwb3J0Ij9lPWkucHJvcDplPVVDKGkucHJvcCk7bGV0IG49aS52YWx1ZTshaXNOYU4oaS52YWx1ZSkmJlZDW2VdJiYobj1wYXJzZUZsb2F0KGkudmFsdWUpKSxpLmltcG9ydGFudCYmKG4rPSIgIWltcG9ydGFudCIpLHR5cGVvZiB0W2VdPT0idW5kZWZpbmVkIj90W2VdPW46QXJyYXkuaXNBcnJheSh0W2VdKT90W2VdLnB1c2gobik6dFtlXT1bdFtlXSxuXX19KSx0fVZkLmV4cG9ydHM9Um99KTt2YXIgV249eCgoRkksUWQpPT57dSgpO3ZhciBfaT0kZSgpLEhkPS9ccyohaW1wb3J0YW50XHMqJC9pLEhDPXsiYm94LWZsZXgiOiEwLCJib3gtZmxleC1ncm91cCI6ITAsImNvbHVtbi1jb3VudCI6ITAsZmxleDohMCwiZmxleC1ncm93IjohMCwiZmxleC1wb3NpdGl2ZSI6ITAsImZsZXgtc2hyaW5rIjohMCwiZmxleC1uZWdhdGl2ZSI6ITAsImZvbnQtd2VpZ2h0IjohMCwibGluZS1jbGFtcCI6ITAsImxpbmUtaGVpZ2h0IjohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsInRhYi1zaXplIjohMCx3aWRvd3M6ITAsInotaW5kZXgiOiEwLHpvb206ITAsImZpbGwtb3BhY2l0eSI6ITAsInN0cm9rZS1kYXNob2Zmc2V0IjohMCwic3Ryb2tlLW9wYWNpdHkiOiEwLCJzdHJva2Utd2lkdGgiOiEwfTtmdW5jdGlvbiBXQyhyKXtyZXR1cm4gci5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnJlcGxhY2UoL15tcy0vLCItbXMtIikudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBXZChyLGUsdCl7dD09PSExfHx0PT09bnVsbHx8KGUuc3RhcnRzV2l0aCgiLS0iKXx8KGU9V0MoZSkpLHR5cGVvZiB0PT0ibnVtYmVyIiYmKHQ9PT0wfHxIQ1tlXT90PXQudG9TdHJpbmcoKTp0Kz0icHgiKSxlPT09ImNzcy1mbG9hdCImJihlPSJmbG9hdCIpLEhkLnRlc3QodCk/KHQ9dC5yZXBsYWNlKEhkLCIiKSxyLnB1c2goX2kuZGVjbCh7cHJvcDplLHZhbHVlOnQsaW1wb3J0YW50OiEwfSkpKTpyLnB1c2goX2kuZGVjbCh7cHJvcDplLHZhbHVlOnR9KSkpfWZ1bmN0aW9uIEdkKHIsZSx0KXtsZXQgaT1faS5hdFJ1bGUoe25hbWU6ZVsxXSxwYXJhbXM6ZVszXXx8IiJ9KTt0eXBlb2YgdD09Im9iamVjdCImJihpLm5vZGVzPVtdLElvKHQsaSkpLHIucHVzaChpKX1mdW5jdGlvbiBJbyhyLGUpe2xldCB0LGksbjtmb3IodCBpbiByKWlmKGk9clt0XSwhKGk9PT1udWxsfHx0eXBlb2YgaT09InVuZGVmaW5lZCIpKWlmKHRbMF09PT0iQCIpe2xldCBzPXQubWF0Y2goL0AoXFMrKShccysoW1xXXHddKilccyopPy8pO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhIG9mIGkpR2QoZSxzLGEpO2Vsc2UgR2QoZSxzLGkpfWVsc2UgaWYoQXJyYXkuaXNBcnJheShpKSlmb3IobGV0IHMgb2YgaSlXZChlLHQscyk7ZWxzZSB0eXBlb2YgaT09Im9iamVjdCI/KG49X2kucnVsZSh7c2VsZWN0b3I6dH0pLElvKGksbiksZS5wdXNoKG4pKTpXZChlLHQsaSl9UWQuZXhwb3J0cz1mdW5jdGlvbihyKXtsZXQgZT1faS5yb290KCk7cmV0dXJuIElvKHIsZSksZX19KTt2YXIgRG89eCgoakksWWQpPT57dSgpO3ZhciBHQz1QbygpO1lkLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUud2FybiYmZS53YXJuaW5ncygpLmZvckVhY2godD0+e2xldCBpPXQucGx1Z2lufHwiUG9zdENTUyI7Y29uc29sZS53YXJuKGkrIjogIit0LnRleHQpfSksR0MoZS5yb290KX19KTt2YXIgWGQ9eCgoekksS2QpPT57dSgpO3ZhciBRQz0kZSgpLFlDPURvKCksS0M9V24oKTtLZC5leHBvcnRzPWZ1bmN0aW9uKGUpe2xldCB0PVFDKGUpO3JldHVybiBhc3luYyBpPT57bGV0IG49YXdhaXQgdC5wcm9jZXNzKGkse3BhcnNlcjpLQyxmcm9tOnZvaWQgMH0pO3JldHVybiBZQyhuKX19fSk7dmFyIEpkPXgoKFVJLFpkKT0+e3UoKTt2YXIgWEM9JGUoKSxaQz1EbygpLEpDPVduKCk7WmQuZXhwb3J0cz1mdW5jdGlvbihyKXtsZXQgZT1YQyhyKTtyZXR1cm4gdD0+e2xldCBpPWUucHJvY2Vzcyh0LHtwYXJzZXI6SkMsZnJvbTp2b2lkIDB9KTtyZXR1cm4gWkMoaSl9fX0pO3ZhciB0aD14KChWSSxlaCk9Pnt1KCk7dmFyIGVfPVBvKCksdF89V24oKSxyXz1YZCgpLGlfPUpkKCk7ZWguZXhwb3J0cz17b2JqZWN0aWZ5OmVfLHBhcnNlOnRfLGFzeW5jOnJfLHN5bmM6aV99fSk7dmFyIG9yLHJoLEhJLFdJLEdJLFFJLGloPVAoKCk9Pnt1KCk7b3I9cGUodGgoKSkscmg9b3IuZGVmYXVsdCxIST1vci5kZWZhdWx0Lm9iamVjdGlmeSxXST1vci5kZWZhdWx0LnBhcnNlLEdJPW9yLmRlZmF1bHQuYXN5bmMsUUk9b3IuZGVmYXVsdC5zeW5jfSk7ZnVuY3Rpb24gbHIocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5mbGF0TWFwKGU9PmVlKFsoMCxuaC5kZWZhdWx0KSh7YnViYmxlOlsic2NyZWVuIl19KV0pLnByb2Nlc3MoZSx7cGFyc2VyOnJofSkucm9vdC5ub2Rlcyk6bHIoW3JdKX12YXIgbmgscW89UCgoKT0+e3UoKTtPdCgpO25oPXBlKEJkKCkpO2loKCl9KTtmdW5jdGlvbiB1cihyLGUsdD0hMSl7aWYocj09PSIiKXJldHVybiBlO2xldCBpPXR5cGVvZiBlPT0ic3RyaW5nIj8oMCxzaC5kZWZhdWx0KSgpLmFzdFN5bmMoZSk6ZTtyZXR1cm4gaS53YWxrQ2xhc3NlcyhuPT57bGV0IHM9bi52YWx1ZSxhPXQmJnMuc3RhcnRzV2l0aCgiLSIpO24udmFsdWU9YT9gLSR7cn0ke3Muc2xpY2UoMSl9YDpgJHtyfSR7c31gfSksdHlwZW9mIGU9PSJzdHJpbmciP2kudG9TdHJpbmcoKTppfXZhciBzaCxHbj1QKCgpPT57dSgpO3NoPXBlKGl0KCkpfSk7ZnVuY3Rpb24gVGUocil7bGV0IGU9YWguZGVmYXVsdC5jbGFzc05hbWUoKTtyZXR1cm4gZS52YWx1ZT1yLGp0KGU/LnJhd3M/LnZhbHVlPz9lLnZhbHVlKX12YXIgYWgsZnI9UCgoKT0+e3UoKTthaD1wZShpdCgpKTtaaSgpfSk7ZnVuY3Rpb24gJG8ocil7cmV0dXJuIGp0KGAuJHtUZShyKX1gKX1mdW5jdGlvbiBRbihyLGUpe3JldHVybiAkbyhFaShyLGUpKX1mdW5jdGlvbiBFaShyLGUpe3JldHVybiBlPT09IkRFRkFVTFQiP3I6ZT09PSItInx8ZT09PSItREVGQVVMVCI/YC0ke3J9YDplLnN0YXJ0c1dpdGgoIi0iKT9gLSR7cn0ke2V9YDplLnN0YXJ0c1dpdGgoIi8iKT9gJHtyfSR7ZX1gOmAke3J9LSR7ZX1gfXZhciBMbz1QKCgpPT57dSgpO2ZyKCk7WmkoKX0pO2Z1bmN0aW9uIEwocixlPVtbcixbcl1dXSx7ZmlsdGVyRGVmYXVsdDp0PSExLC4uLml9PXt9KXtsZXQgbj1tdChyKTtyZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnMsdGhlbWU6YX0pe2ZvcihsZXQgbyBvZiBlKXtsZXQgbD1BcnJheS5pc0FycmF5KG9bMF0pP286W29dO3MobC5yZWR1Y2UoKGMsW2YsZF0pPT5PYmplY3QuYXNzaWduKGMse1tmXTpwPT5kLnJlZHVjZSgoaCxiKT0+QXJyYXkuaXNBcnJheShiKT9PYmplY3QuYXNzaWduKGgse1tiWzBdXTpiWzFdfSk6T2JqZWN0LmFzc2lnbihoLHtbYl06bihwKX0pLHt9KX0pLHt9KSx7Li4uaSx2YWx1ZXM6dD9PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYShyKT8/e30pLmZpbHRlcigoW2NdKT0+YyE9PSJERUZBVUxUIikpOmEocil9KX19fXZhciBvaD1QKCgpPT57dSgpO0NpKCl9KTtmdW5jdGlvbiBUdChyKXtyZXR1cm4gcj1BcnJheS5pc0FycmF5KHIpP3I6W3JdLHIubWFwKGU9PntsZXQgdD1lLnZhbHVlcy5tYXAoaT0+aS5yYXchPT12b2lkIDA/aS5yYXc6W2kubWluJiZgKG1pbi13aWR0aDogJHtpLm1pbn0pYCxpLm1heCYmYChtYXgtd2lkdGg6ICR7aS5tYXh9KWBdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgYW5kICIpKTtyZXR1cm4gZS5ub3Q/YG5vdCBhbGwgYW5kICR7dH1gOnR9KS5qb2luKCIsICIpfXZhciBZbj1QKCgpPT57dSgpfSk7ZnVuY3Rpb24gTW8ocil7cmV0dXJuIHIuc3BsaXQoZl8pLm1hcCh0PT57bGV0IGk9dC50cmltKCksbj17dmFsdWU6aX0scz1pLnNwbGl0KGNfKSxhPW5ldyBTZXQ7Zm9yKGxldCBvIG9mIHMpIWEuaGFzKCJESVJFQ1RJT05TIikmJm5fLmhhcyhvKT8obi5kaXJlY3Rpb249byxhLmFkZCgiRElSRUNUSU9OUyIpKTohYS5oYXMoIlBMQVlfU1RBVEVTIikmJnNfLmhhcyhvKT8obi5wbGF5U3RhdGU9byxhLmFkZCgiUExBWV9TVEFURVMiKSk6IWEuaGFzKCJGSUxMX01PREVTIikmJmFfLmhhcyhvKT8obi5maWxsTW9kZT1vLGEuYWRkKCJGSUxMX01PREVTIikpOiFhLmhhcygiSVRFUkFUSU9OX0NPVU5UUyIpJiYob18uaGFzKG8pfHxwXy50ZXN0KG8pKT8obi5pdGVyYXRpb25Db3VudD1vLGEuYWRkKCJJVEVSQVRJT05fQ09VTlRTIikpOiFhLmhhcygiVElNSU5HX0ZVTkNUSU9OIikmJmxfLmhhcyhvKXx8IWEuaGFzKCJUSU1JTkdfRlVOQ1RJT04iKSYmdV8uc29tZShsPT5vLnN0YXJ0c1dpdGgoYCR7bH0oYCkpPyhuLnRpbWluZ0Z1bmN0aW9uPW8sYS5hZGQoIlRJTUlOR19GVU5DVElPTiIpKTohYS5oYXMoIkRVUkFUSU9OIikmJmxoLnRlc3Qobyk/KG4uZHVyYXRpb249byxhLmFkZCgiRFVSQVRJT04iKSk6IWEuaGFzKCJERUxBWSIpJiZsaC50ZXN0KG8pPyhuLmRlbGF5PW8sYS5hZGQoIkRFTEFZIikpOmEuaGFzKCJOQU1FIik/KG4udW5rbm93bnx8KG4udW5rbm93bj1bXSksbi51bmtub3duLnB1c2gobykpOihuLm5hbWU9byxhLmFkZCgiTkFNRSIpKTtyZXR1cm4gbn0pfXZhciBuXyxzXyxhXyxvXyxsXyx1XyxmXyxjXyxsaCxwXyx1aD1QKCgpPT57dSgpO25fPW5ldyBTZXQoWyJub3JtYWwiLCJyZXZlcnNlIiwiYWx0ZXJuYXRlIiwiYWx0ZXJuYXRlLXJldmVyc2UiXSksc189bmV3IFNldChbInJ1bm5pbmciLCJwYXVzZWQiXSksYV89bmV3IFNldChbIm5vbmUiLCJmb3J3YXJkcyIsImJhY2t3YXJkcyIsImJvdGgiXSksb189bmV3IFNldChbImluZmluaXRlIl0pLGxfPW5ldyBTZXQoWyJsaW5lYXIiLCJlYXNlIiwiZWFzZS1pbiIsImVhc2Utb3V0IiwiZWFzZS1pbi1vdXQiLCJzdGVwLXN0YXJ0Iiwic3RlcC1lbmQiXSksdV89WyJjdWJpYy1iZXppZXIiLCJzdGVwcyJdLGZfPS9cLCg/IVteKF0qXCkpL2csY189L1wgKyg/IVteKF0qXCkpL2csbGg9L14oLT9bXGQuXSttP3MpJC8scF89L14oXGQrKSQvfSk7dmFyIGZoLHhlLGNoPVAoKCk9Pnt1KCk7Zmg9cj0+T2JqZWN0LmFzc2lnbih7fSwuLi5PYmplY3QuZW50cmllcyhyPz97fSkuZmxhdE1hcCgoW2UsdF0pPT50eXBlb2YgdD09Im9iamVjdCI/T2JqZWN0LmVudHJpZXMoZmgodCkpLm1hcCgoW2ksbl0pPT4oe1tlKyhpPT09IkRFRkFVTFQiPyIiOmAtJHtpfWApXTpufSkpOlt7W2Ake2V9YF06dH1dKSkseGU9Zmh9KTt2YXIgZGgscGg9UCgoKT0+e2RoPSIzLjQuMTcifSk7ZnVuY3Rpb24gUnQocixlPSEwKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyKT9yLm1hcCh0PT57aWYoZSYmQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoIlRoZSB0dXBsZSBzeW50YXggaXMgbm90IHN1cHBvcnRlZCBmb3IgYHNjcmVlbnNgLiIpO2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm57bmFtZTp0LnRvU3RyaW5nKCksbm90OiExLHZhbHVlczpbe21pbjp0LG1heDp2b2lkIDB9XX07bGV0W2ksbl09dDtyZXR1cm4gaT1pLnRvU3RyaW5nKCksdHlwZW9mIG49PSJzdHJpbmciP3tuYW1lOmksbm90OiExLHZhbHVlczpbe21pbjpuLG1heDp2b2lkIDB9XX06QXJyYXkuaXNBcnJheShuKT97bmFtZTppLG5vdDohMSx2YWx1ZXM6bi5tYXAocz0+bWgocykpfTp7bmFtZTppLG5vdDohMSx2YWx1ZXM6W21oKG4pXX19KTpSdChPYmplY3QuZW50cmllcyhyPz97fSksITEpfWZ1bmN0aW9uIEtuKHIpe3JldHVybiByLnZhbHVlcy5sZW5ndGghPT0xP3tyZXN1bHQ6ITEscmVhc29uOiJtdWx0aXBsZS12YWx1ZXMifTpyLnZhbHVlc1swXS5yYXchPT12b2lkIDA/e3Jlc3VsdDohMSxyZWFzb246InJhdy12YWx1ZXMifTpyLnZhbHVlc1swXS5taW4hPT12b2lkIDAmJnIudmFsdWVzWzBdLm1heCE9PXZvaWQgMD97cmVzdWx0OiExLHJlYXNvbjoibWluLWFuZC1tYXgifTp7cmVzdWx0OiEwLHJlYXNvbjpudWxsfX1mdW5jdGlvbiBoaChyLGUsdCl7bGV0IGk9WG4oZSxyKSxuPVhuKHQscikscz1LbihpKSxhPUtuKG4pO2lmKHMucmVhc29uPT09Im11bHRpcGxlLXZhbHVlcyJ8fGEucmVhc29uPT09Im11bHRpcGxlLXZhbHVlcyIpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gc29ydCBhIHNjcmVlbiB3aXRoIG11bHRpcGxlIHZhbHVlcy4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLiBQbGVhc2Ugb3BlbiBhIGJ1ZyByZXBvcnQuIik7aWYocy5yZWFzb249PT0icmF3LXZhbHVlcyJ8fGEucmVhc29uPT09InJhdy12YWx1ZXMiKXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHRvIHNvcnQgYSBzY3JlZW4gd2l0aCByYXcgdmFsdWVzLiBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uIFBsZWFzZSBvcGVuIGEgYnVnIHJlcG9ydC4iKTtpZihzLnJlYXNvbj09PSJtaW4tYW5kLW1heCJ8fGEucmVhc29uPT09Im1pbi1hbmQtbWF4Iil0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRlZCB0byBzb3J0IGEgc2NyZWVuIHdpdGggYm90aCBtaW4gYW5kIG1heCB2YWx1ZXMuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGxlYXNlIG9wZW4gYSBidWcgcmVwb3J0LiIpO2xldHttaW46byxtYXg6bH09aS52YWx1ZXNbMF0se21pbjpjLG1heDpmfT1uLnZhbHVlc1swXTtlLm5vdCYmKFtvLGxdPVtsLG9dKSx0Lm5vdCYmKFtjLGZdPVtmLGNdKSxvPW89PT12b2lkIDA/bzpwYXJzZUZsb2F0KG8pLGw9bD09PXZvaWQgMD9sOnBhcnNlRmxvYXQobCksYz1jPT09dm9pZCAwP2M6cGFyc2VGbG9hdChjKSxmPWY9PT12b2lkIDA/ZjpwYXJzZUZsb2F0KGYpO2xldFtkLHBdPXI9PT0ibWluIj9bbyxjXTpbZixsXTtyZXR1cm4gZC1wfWZ1bmN0aW9uIFhuKHIsZSl7cmV0dXJuIHR5cGVvZiByPT0ib2JqZWN0Ij9yOntuYW1lOiJhcmJpdHJhcnktc2NyZWVuIix2YWx1ZXM6W3tbZV06cn1dfX1mdW5jdGlvbiBtaCh7Im1pbi13aWR0aCI6cixtaW46ZT1yLG1heDp0LHJhdzppfT17fSl7cmV0dXJue21pbjplLG1heDp0LHJhdzppfX12YXIgWm49UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIEpuKHIsZSl7ci53YWxrRGVjbHModD0+e2lmKGUuaW5jbHVkZXModC5wcm9wKSl7dC5yZW1vdmUoKTtyZXR1cm59Zm9yKGxldCBpIG9mIGUpdC52YWx1ZS5pbmNsdWRlcyhgLyB2YXIoJHtpfSlgKT90LnZhbHVlPXQudmFsdWUucmVwbGFjZShgLyB2YXIoJHtpfSlgLCIiKTp0LnZhbHVlLmluY2x1ZGVzKGAvIHZhcigke2l9LCAxKWApJiYodC52YWx1ZT10LnZhbHVlLnJlcGxhY2UoYC8gdmFyKCR7aX0sIDEpYCwiIikpfSl9dmFyIGdoPVAoKCk9Pnt1KCl9KTt2YXIgc2UsWGUsbnQsZ2UseWgsYmg9UCgoKT0+e3UoKTtmdCgpO2V0KCk7T3QoKTtvaCgpO1luKCk7ZnIoKTt1aCgpO2NoKCk7THIoKTtyYSgpO0t0KCk7Q2koKTtwaCgpO0JlKCk7Wm4oKTtZcygpO2doKCk7Y3QoKTtCcigpO09pKCk7c2U9e2NoaWxkVmFyaWFudDooe2FkZFZhcmlhbnQ6cn0pPT57cigiKiIsIiYgPiAqIil9LHBzZXVkb0VsZW1lbnRWYXJpYW50czooe2FkZFZhcmlhbnQ6cn0pPT57cigiZmlyc3QtbGV0dGVyIiwiJjo6Zmlyc3QtbGV0dGVyIikscigiZmlyc3QtbGluZSIsIiY6OmZpcnN0LWxpbmUiKSxyKCJtYXJrZXIiLFsoe2NvbnRhaW5lcjplfSk9PihKbihlLFsiLS10dy10ZXh0LW9wYWNpdHkiXSksIiYgKjo6bWFya2VyIiksKHtjb250YWluZXI6ZX0pPT4oSm4oZSxbIi0tdHctdGV4dC1vcGFjaXR5Il0pLCImOjptYXJrZXIiKV0pLHIoInNlbGVjdGlvbiIsWyImICo6OnNlbGVjdGlvbiIsIiY6OnNlbGVjdGlvbiJdKSxyKCJmaWxlIiwiJjo6ZmlsZS1zZWxlY3Rvci1idXR0b24iKSxyKCJwbGFjZWhvbGRlciIsIiY6OnBsYWNlaG9sZGVyIikscigiYmFja2Ryb3AiLCImOjpiYWNrZHJvcCIpLHIoImJlZm9yZSIsKHtjb250YWluZXI6ZX0pPT4oZS53YWxrUnVsZXModD0+e2xldCBpPSExO3Qud2Fsa0RlY2xzKCJjb250ZW50IiwoKT0+e2k9ITB9KSxpfHx0LnByZXBlbmQoZWUuZGVjbCh7cHJvcDoiY29udGVudCIsdmFsdWU6InZhcigtLXR3LWNvbnRlbnQpIn0pKX0pLCImOjpiZWZvcmUiKSkscigiYWZ0ZXIiLCh7Y29udGFpbmVyOmV9KT0+KGUud2Fsa1J1bGVzKHQ9PntsZXQgaT0hMTt0LndhbGtEZWNscygiY29udGVudCIsKCk9PntpPSEwfSksaXx8dC5wcmVwZW5kKGVlLmRlY2woe3Byb3A6ImNvbnRlbnQiLHZhbHVlOiJ2YXIoLS10dy1jb250ZW50KSJ9KSl9KSwiJjo6YWZ0ZXIiKSl9LHBzZXVkb0NsYXNzVmFyaWFudHM6KHthZGRWYXJpYW50OnIsbWF0Y2hWYXJpYW50OmUsY29uZmlnOnQscHJlZml4Oml9KT0+e2xldCBuPVtbImZpcnN0IiwiJjpmaXJzdC1jaGlsZCJdLFsibGFzdCIsIiY6bGFzdC1jaGlsZCJdLFsib25seSIsIiY6b25seS1jaGlsZCJdLFsib2RkIiwiJjpudGgtY2hpbGQob2RkKSJdLFsiZXZlbiIsIiY6bnRoLWNoaWxkKGV2ZW4pIl0sImZpcnN0LW9mLXR5cGUiLCJsYXN0LW9mLXR5cGUiLCJvbmx5LW9mLXR5cGUiLFsidmlzaXRlZCIsKHtjb250YWluZXI6YX0pPT4oSm4oYSxbIi0tdHctdGV4dC1vcGFjaXR5IiwiLS10dy1ib3JkZXItb3BhY2l0eSIsIi0tdHctYmctb3BhY2l0eSJdKSwiJjp2aXNpdGVkIildLCJ0YXJnZXQiLFsib3BlbiIsIiZbb3Blbl0iXSwiZGVmYXVsdCIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwicGxhY2Vob2xkZXItc2hvd24iLCJhdXRvZmlsbCIsIm9wdGlvbmFsIiwicmVxdWlyZWQiLCJ2YWxpZCIsImludmFsaWQiLCJpbi1yYW5nZSIsIm91dC1vZi1yYW5nZSIsInJlYWQtb25seSIsImVtcHR5IiwiZm9jdXMtd2l0aGluIixbImhvdmVyIix3ZSh0KCksImhvdmVyT25seVdoZW5TdXBwb3J0ZWQiKT8iQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgeyAmOmhvdmVyIH0iOiImOmhvdmVyIl0sImZvY3VzIiwiZm9jdXMtdmlzaWJsZSIsImFjdGl2ZSIsImVuYWJsZWQiLCJkaXNhYmxlZCJdLm1hcChhPT5BcnJheS5pc0FycmF5KGEpP2E6W2EsYCY6JHthfWBdKTtmb3IobGV0W2Esb11vZiBuKXIoYSxsPT50eXBlb2Ygbz09ImZ1bmN0aW9uIj9vKGwpOm8pO2xldCBzPXtncm91cDooYSx7bW9kaWZpZXI6b30pPT5vP1tgOm1lcmdlKCR7aSgiLmdyb3VwIil9XFwvJHtUZShvKX0pYCwiICYiXTpbYDptZXJnZSgke2koIi5ncm91cCIpfSlgLCIgJiJdLHBlZXI6KGEse21vZGlmaWVyOm99KT0+bz9bYDptZXJnZSgke2koIi5wZWVyIil9XFwvJHtUZShvKX0pYCwiIH4gJiJdOltgOm1lcmdlKCR7aSgiLnBlZXIiKX0pYCwiIH4gJiJdfTtmb3IobGV0W2Esb11vZiBPYmplY3QuZW50cmllcyhzKSllKGEsKGw9IiIsYyk9PntsZXQgZj1LKHR5cGVvZiBsPT0iZnVuY3Rpb24iP2woYyk6bCk7Zi5pbmNsdWRlcygiJiIpfHwoZj0iJiIrZik7bGV0W2QscF09bygiIixjKSxoPW51bGwsYj1udWxsLHY9MDtmb3IobGV0IHk9MDt5PGYubGVuZ3RoOysreSl7bGV0IHc9Zlt5XTt3PT09IiYiP2g9eTp3PT09IicifHx3PT09JyInP3YrPTE6aCE9PW51bGwmJnc9PT0iICImJiF2JiYoYj15KX1yZXR1cm4gaCE9PW51bGwmJmI9PT1udWxsJiYoYj1mLmxlbmd0aCksZi5zbGljZSgwLGgpK2QrZi5zbGljZShoKzEsYikrcCtmLnNsaWNlKGIpfSx7dmFsdWVzOk9iamVjdC5mcm9tRW50cmllcyhuKSxbUHRdOntyZXNwZWN0UHJlZml4OiExfX0pfSxkaXJlY3Rpb25WYXJpYW50czooe2FkZFZhcmlhbnQ6cn0pPT57cigibHRyIiwnJjp3aGVyZShbZGlyPSJsdHIiXSwgW2Rpcj0ibHRyIl0gKiknKSxyKCJydGwiLCcmOndoZXJlKFtkaXI9InJ0bCJdLCBbZGlyPSJydGwiXSAqKScpfSxyZWR1Y2VkTW90aW9uVmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoIm1vdGlvbi1zYWZlIiwiQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSIpLHIoIm1vdGlvbi1yZWR1Y2UiLCJAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKX0sZGFya1ZhcmlhbnRzOih7Y29uZmlnOnIsYWRkVmFyaWFudDplfSk9PntsZXRbdCxpPSIuZGFyayJdPVtdLmNvbmNhdChyKCJkYXJrTW9kZSIsIm1lZGlhIikpO2lmKHQ9PT0hMSYmKHQ9Im1lZGlhIixHLndhcm4oImRhcmttb2RlLWZhbHNlIixbIlRoZSBgZGFya01vZGVgIG9wdGlvbiBpbiB5b3VyIFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uIGlzIHNldCB0byBgZmFsc2VgLCB3aGljaCBub3cgYmVoYXZlcyB0aGUgc2FtZSBhcyBgbWVkaWFgLiIsIkNoYW5nZSBgZGFya01vZGVgIHRvIGBtZWRpYWAgb3IgcmVtb3ZlIGl0IGVudGlyZWx5LiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdXBncmFkZS1ndWlkZSNyZW1vdmUtZGFyay1tb2RlLWNvbmZpZ3VyYXRpb24iXSkpLHQ9PT0idmFyaWFudCIpe2xldCBuO2lmKEFycmF5LmlzQXJyYXkoaSl8fHR5cGVvZiBpPT0iZnVuY3Rpb24iP249aTp0eXBlb2YgaT09InN0cmluZyImJihuPVtpXSksQXJyYXkuaXNBcnJheShuKSlmb3IobGV0IHMgb2YgbilzPT09Ii5kYXJrIj8odD0hMSxHLndhcm4oImRhcmttb2RlLXZhcmlhbnQtd2l0aG91dC1zZWxlY3RvciIsWyJXaGVuIHVzaW5nIGB2YXJpYW50YCBmb3IgYGRhcmtNb2RlYCwgeW91IG11c3QgcHJvdmlkZSBhIHNlbGVjdG9yLiIsJ0V4YW1wbGU6IGBkYXJrTW9kZTogWyJ2YXJpYW50IiwgIi55b3VyLXNlbGVjdG9yICYiXWAnXSkpOnMuaW5jbHVkZXMoIiYiKXx8KHQ9ITEsRy53YXJuKCJkYXJrbW9kZS12YXJpYW50LXdpdGhvdXQtYW1wZXJzYW5kIixbIldoZW4gdXNpbmcgYHZhcmlhbnRgIGZvciBgZGFya01vZGVgLCB5b3VyIHNlbGVjdG9yIG11c3QgY29udGFpbiBgJmAuIiwnRXhhbXBsZSBgZGFya01vZGU6IFsidmFyaWFudCIsICIueW91ci1zZWxlY3RvciAmIl1gJ10pKTtpPW59dD09PSJzZWxlY3RvciI/ZSgiZGFyayIsYCY6d2hlcmUoJHtpfSwgJHtpfSAqKWApOnQ9PT0ibWVkaWEiP2UoImRhcmsiLCJAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpOnQ9PT0idmFyaWFudCI/ZSgiZGFyayIsaSk6dD09PSJjbGFzcyImJmUoImRhcmsiLGAmOmlzKCR7aX0gKilgKX0scHJpbnRWYXJpYW50Oih7YWRkVmFyaWFudDpyfSk9PntyKCJwcmludCIsIkBtZWRpYSBwcmludCIpfSxzY3JlZW5WYXJpYW50czooe3RoZW1lOnIsYWRkVmFyaWFudDplLG1hdGNoVmFyaWFudDp0fSk9PntsZXQgaT1yKCJzY3JlZW5zIik/P3t9LG49T2JqZWN0LnZhbHVlcyhpKS5ldmVyeSh3PT50eXBlb2Ygdz09InN0cmluZyIpLHM9UnQocigic2NyZWVucyIpKSxhPW5ldyBTZXQoW10pO2Z1bmN0aW9uIG8odyl7cmV0dXJuIHcubWF0Y2goLyhcRCspJC8pPy5bMV0/PyIobm9uZSkifWZ1bmN0aW9uIGwodyl7dyE9PXZvaWQgMCYmYS5hZGQobyh3KSl9ZnVuY3Rpb24gYyh3KXtyZXR1cm4gbCh3KSxhLnNpemU9PT0xfWZvcihsZXQgdyBvZiBzKWZvcihsZXQgayBvZiB3LnZhbHVlcylsKGsubWluKSxsKGsubWF4KTtsZXQgZj1hLnNpemU8PTE7ZnVuY3Rpb24gZCh3KXtyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHMuZmlsdGVyKGs9PktuKGspLnJlc3VsdCkubWFwKGs9PntsZXR7bWluOlMsbWF4OkV9PWsudmFsdWVzWzBdO2lmKHc9PT0ibWluIiYmUyE9PXZvaWQgMClyZXR1cm4gaztpZih3PT09Im1pbiImJkUhPT12b2lkIDApcmV0dXJuey4uLmssbm90OiFrLm5vdH07aWYodz09PSJtYXgiJiZFIT09dm9pZCAwKXJldHVybiBrO2lmKHc9PT0ibWF4IiYmUyE9PXZvaWQgMClyZXR1cm57Li4uayxub3Q6IWsubm90fX0pLm1hcChrPT5bay5uYW1lLGtdKSl9ZnVuY3Rpb24gcCh3KXtyZXR1cm4oayxTKT0+aGgodyxrLnZhbHVlLFMudmFsdWUpfWxldCBoPXAoIm1heCIpLGI9cCgibWluIik7ZnVuY3Rpb24gdih3KXtyZXR1cm4gaz0+e2lmKG4paWYoZil7aWYodHlwZW9mIGs9PSJzdHJpbmciJiYhYyhrKSlyZXR1cm4gRy53YXJuKCJtaW5tYXgtaGF2ZS1taXhlZC11bml0cyIsWyJUaGUgYG1pbi0qYCBhbmQgYG1heC0qYCB2YXJpYW50cyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGEgYHNjcmVlbnNgIGNvbmZpZ3VyYXRpb24gY29udGFpbmluZyBtaXhlZCB1bml0cy4iXSksW119ZWxzZSByZXR1cm4gRy53YXJuKCJtaXhlZC1zY3JlZW4tdW5pdHMiLFsiVGhlIGBtaW4tKmAgYW5kIGBtYXgtKmAgdmFyaWFudHMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIGBzY3JlZW5zYCBjb25maWd1cmF0aW9uIGNvbnRhaW5pbmcgbWl4ZWQgdW5pdHMuIl0pLFtdO2Vsc2UgcmV0dXJuIEcud2FybigiY29tcGxleC1zY3JlZW4tY29uZmlnIixbIlRoZSBgbWluLSpgIGFuZCBgbWF4LSpgIHZhcmlhbnRzIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggYSBgc2NyZWVuc2AgY29uZmlndXJhdGlvbiBjb250YWluaW5nIG9iamVjdHMuIl0pLFtdO3JldHVybltgQG1lZGlhICR7VHQoWG4oayx3KSl9YF19fXQoIm1heCIsdigibWF4Iikse3NvcnQ6aCx2YWx1ZXM6bj9kKCJtYXgiKTp7fX0pO2xldCB5PSJtaW4tc2NyZWVucyI7Zm9yKGxldCB3IG9mIHMpZSh3Lm5hbWUsYEBtZWRpYSAke1R0KHcpfWAse2lkOnksc29ydDpuJiZmP2I6dm9pZCAwLHZhbHVlOnd9KTt0KCJtaW4iLHYoIm1pbiIpLHtpZDp5LHNvcnQ6Yn0pfSxzdXBwb3J0c1ZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIsdGhlbWU6ZX0pPT57cigic3VwcG9ydHMiLCh0PSIiKT0+e2xldCBpPUsodCksbj0vXlx3KlxzKlwoLy50ZXN0KGkpO3JldHVybiBpPW4/aS5yZXBsYWNlKC9cYihhbmR8b3J8bm90KVxiL2csIiAkMSAiKTppLG4/YEBzdXBwb3J0cyAke2l9YDooaS5pbmNsdWRlcygiOiIpfHwoaT1gJHtpfTogdmFyKC0tdHcpYCksaS5zdGFydHNXaXRoKCIoIikmJmkuZW5kc1dpdGgoIikiKXx8KGk9YCgke2l9KWApLGBAc3VwcG9ydHMgJHtpfWApfSx7dmFsdWVzOmUoInN1cHBvcnRzIik/P3t9fSl9LGhhc1ZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIscHJlZml4OmV9KT0+e3IoImhhcyIsdD0+YCY6aGFzKCR7Syh0KX0pYCx7dmFsdWVzOnt9LFtQdF06e3Jlc3BlY3RQcmVmaXg6ITF9fSkscigiZ3JvdXAtaGFzIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoJHtlKCIuZ3JvdXAiKX1cXC8ke2l9KTpoYXMoJHtLKHQpfSkgJmA6YDptZXJnZSgke2UoIi5ncm91cCIpfSk6aGFzKCR7Syh0KX0pICZgLHt2YWx1ZXM6e30sW1B0XTp7cmVzcGVjdFByZWZpeDohMX19KSxyKCJwZWVyLWhhcyIsKHQse21vZGlmaWVyOml9KT0+aT9gOm1lcmdlKCR7ZSgiLnBlZXIiKX1cXC8ke2l9KTpoYXMoJHtLKHQpfSkgfiAmYDpgOm1lcmdlKCR7ZSgiLnBlZXIiKX0pOmhhcygke0sodCl9KSB+ICZgLHt2YWx1ZXM6e30sW1B0XTp7cmVzcGVjdFByZWZpeDohMX19KX0sYXJpYVZhcmlhbnRzOih7bWF0Y2hWYXJpYW50OnIsdGhlbWU6ZX0pPT57cigiYXJpYSIsdD0+YCZbYXJpYS0ke1llKEsodCkpfV1gLHt2YWx1ZXM6ZSgiYXJpYSIpPz97fX0pLHIoImdyb3VwLWFyaWEiLCh0LHttb2RpZmllcjppfSk9Pmk/YDptZXJnZSguZ3JvdXBcXC8ke2l9KVthcmlhLSR7WWUoSyh0KSl9XSAmYDpgOm1lcmdlKC5ncm91cClbYXJpYS0ke1llKEsodCkpfV0gJmAse3ZhbHVlczplKCJhcmlhIik/P3t9fSkscigicGVlci1hcmlhIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoLnBlZXJcXC8ke2l9KVthcmlhLSR7WWUoSyh0KSl9XSB+ICZgOmA6bWVyZ2UoLnBlZXIpW2FyaWEtJHtZZShLKHQpKX1dIH4gJmAse3ZhbHVlczplKCJhcmlhIik/P3t9fSl9LGRhdGFWYXJpYW50czooe21hdGNoVmFyaWFudDpyLHRoZW1lOmV9KT0+e3IoImRhdGEiLHQ9PmAmW2RhdGEtJHtZZShLKHQpKX1dYCx7dmFsdWVzOmUoImRhdGEiKT8/e319KSxyKCJncm91cC1kYXRhIiwodCx7bW9kaWZpZXI6aX0pPT5pP2A6bWVyZ2UoLmdyb3VwXFwvJHtpfSlbZGF0YS0ke1llKEsodCkpfV0gJmA6YDptZXJnZSguZ3JvdXApW2RhdGEtJHtZZShLKHQpKX1dICZgLHt2YWx1ZXM6ZSgiZGF0YSIpPz97fX0pLHIoInBlZXItZGF0YSIsKHQse21vZGlmaWVyOml9KT0+aT9gOm1lcmdlKC5wZWVyXFwvJHtpfSlbZGF0YS0ke1llKEsodCkpfV0gfiAmYDpgOm1lcmdlKC5wZWVyKVtkYXRhLSR7WWUoSyh0KSl9XSB+ICZgLHt2YWx1ZXM6ZSgiZGF0YSIpPz97fX0pfSxvcmllbnRhdGlvblZhcmlhbnRzOih7YWRkVmFyaWFudDpyfSk9PntyKCJwb3J0cmFpdCIsIkBtZWRpYSAob3JpZW50YXRpb246IHBvcnRyYWl0KSIpLHIoImxhbmRzY2FwZSIsIkBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkiKX0scHJlZmVyc0NvbnRyYXN0VmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoImNvbnRyYXN0LW1vcmUiLCJAbWVkaWEgKHByZWZlcnMtY29udHJhc3Q6IG1vcmUpIikscigiY29udHJhc3QtbGVzcyIsIkBtZWRpYSAocHJlZmVycy1jb250cmFzdDogbGVzcykiKX0sZm9yY2VkQ29sb3JzVmFyaWFudHM6KHthZGRWYXJpYW50OnJ9KT0+e3IoImZvcmNlZC1jb2xvcnMiLCJAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkiKX19LFhlPVsidHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSwgdmFyKC0tdHctdHJhbnNsYXRlLXkpKSIsInJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKSIsInNrZXdYKHZhcigtLXR3LXNrZXcteCkpIiwic2tld1kodmFyKC0tdHctc2tldy15KSkiLCJzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpIiwic2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKSJdLmpvaW4oIiAiKSxudD1bInZhcigtLXR3LWJsdXIpIiwidmFyKC0tdHctYnJpZ2h0bmVzcykiLCJ2YXIoLS10dy1jb250cmFzdCkiLCJ2YXIoLS10dy1ncmF5c2NhbGUpIiwidmFyKC0tdHctaHVlLXJvdGF0ZSkiLCJ2YXIoLS10dy1pbnZlcnQpIiwidmFyKC0tdHctc2F0dXJhdGUpIiwidmFyKC0tdHctc2VwaWEpIiwidmFyKC0tdHctZHJvcC1zaGFkb3cpIl0uam9pbigiICIpLGdlPVsidmFyKC0tdHctYmFja2Ryb3AtYmx1cikiLCJ2YXIoLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzKSIsInZhcigtLXR3LWJhY2tkcm9wLWNvbnRyYXN0KSIsInZhcigtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZSkiLCJ2YXIoLS10dy1iYWNrZHJvcC1odWUtcm90YXRlKSIsInZhcigtLXR3LWJhY2tkcm9wLWludmVydCkiLCJ2YXIoLS10dy1iYWNrZHJvcC1vcGFjaXR5KSIsInZhcigtLXR3LWJhY2tkcm9wLXNhdHVyYXRlKSIsInZhcigtLXR3LWJhY2tkcm9wLXNlcGlhKSJdLmpvaW4oIiAiKSx5aD17cHJlZmxpZ2h0Oih7YWRkQmFzZTpyfSk9PntsZXQgZT1lZS5wYXJzZShgKiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItd2lkdGg6MDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnRoZW1lKCdib3JkZXJDb2xvci5ERUZBVUxUJywgY3VycmVudENvbG9yKX06OmFmdGVyLDo6YmVmb3Jley0tdHctY29udGVudDonJ306aG9zdCxodG1se2xpbmUtaGVpZ2h0OjEuNTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbW96LXRhYi1zaXplOjQ7dGFiLXNpemU6NDtmb250LWZhbWlseTp0aGVtZSgnZm9udEZhbWlseS5zYW5zJywgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiU2Vnb2UgVUkgRW1vamkiLCAiU2Vnb2UgVUkgU3ltYm9sIiwgIk5vdG8gQ29sb3IgRW1vamkiKTtmb250LWZlYXR1cmUtc2V0dGluZ3M6dGhlbWUoJ2ZvbnRGYW1pbHkuc2Fuc1sxXS5mb250RmVhdHVyZVNldHRpbmdzJywgbm9ybWFsKTtmb250LXZhcmlhdGlvbi1zZXR0aW5nczp0aGVtZSgnZm9udEZhbWlseS5zYW5zWzFdLmZvbnRWYXJpYXRpb25TZXR0aW5ncycsIG5vcm1hbCk7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fWJvZHl7bWFyZ2luOjA7bGluZS1oZWlnaHQ6aW5oZXJpdH1ocntoZWlnaHQ6MDtjb2xvcjppbmhlcml0O2JvcmRlci10b3Atd2lkdGg6MXB4fWFiYnI6d2hlcmUoW3RpdGxlXSl7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHByZSxzYW1we2ZvbnQtZmFtaWx5OnRoZW1lKCdmb250RmFtaWx5Lm1vbm8nLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgIkxpYmVyYXRpb24gTW9ubyIsICJDb3VyaWVyIE5ldyIsIG1vbm9zcGFjZSk7Zm9udC1mZWF0dXJlLXNldHRpbmdzOnRoZW1lKCdmb250RmFtaWx5Lm1vbm9bMV0uZm9udEZlYXR1cmVTZXR0aW5ncycsIG5vcm1hbCk7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6dGhlbWUoJ2ZvbnRGYW1pbHkubW9ub1sxXS5mb250VmFyaWF0aW9uU2V0dGluZ3MnLCBub3JtYWwpO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtsZXR0ZXItc3BhY2luZzppbmhlcml0O2NvbG9yOmluaGVyaXQ7bWFyZ2luOjA7cGFkZGluZzowfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1idXR0b24saW5wdXQ6d2hlcmUoW3R5cGU9YnV0dG9uXSksaW5wdXQ6d2hlcmUoW3R5cGU9cmVzZXRdKSxpbnB1dDp3aGVyZShbdHlwZT1zdWJtaXRdKXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfTotbW96LWZvY3VzcmluZ3tvdXRsaW5lOmF1dG99Oi1tb3otdWktaW52YWxpZHtib3gtc2hhZG93Om5vbmV9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfWJsb2NrcXVvdGUsZGQsZGwsZmlndXJlLGgxLGgyLGgzLGg0LGg1LGg2LGhyLHAscHJle21hcmdpbjowfWZpZWxkc2V0e21hcmdpbjowO3BhZGRpbmc6MH1sZWdlbmR7cGFkZGluZzowfW1lbnUsb2wsdWx7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH1kaWFsb2d7cGFkZGluZzowfXRleHRhcmVhe3Jlc2l6ZTp2ZXJ0aWNhbH1pbnB1dDo6cGxhY2Vob2xkZXIsdGV4dGFyZWE6OnBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjp0aGVtZSgnY29sb3JzLmdyYXkuNCcsICM5Y2EzYWYpfVtyb2xlPWJ1dHRvbl0sYnV0dG9ue2N1cnNvcjpwb2ludGVyfTpkaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdH1hdWRpbyxjYW52YXMsZW1iZWQsaWZyYW1lLGltZyxvYmplY3Qsc3ZnLHZpZGVve2Rpc3BsYXk6YmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlfWltZyx2aWRlb3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31baGlkZGVuXTp3aGVyZSg6bm90KFtoaWRkZW49dW50aWwtZm91bmRdKSl7ZGlzcGxheTpub25lfWApO3IoW2VlLmNvbW1lbnQoe3RleHQ6YCEgdGFpbHdpbmRjc3MgdiR7ZGh9IHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbWB9KSwuLi5lLm5vZGVzXSl9LGNvbnRhaW5lcjooKCk9PntmdW5jdGlvbiByKHQ9W10pe3JldHVybiB0LmZsYXRNYXAoaT0+aS52YWx1ZXMubWFwKG49Pm4ubWluKSkuZmlsdGVyKGk9PmkhPT12b2lkIDApfWZ1bmN0aW9uIGUodCxpLG4pe2lmKHR5cGVvZiBuPT0idW5kZWZpbmVkIilyZXR1cm5bXTtpZighKHR5cGVvZiBuPT0ib2JqZWN0IiYmbiE9PW51bGwpKXJldHVyblt7c2NyZWVuOiJERUZBVUxUIixtaW5XaWR0aDowLHBhZGRpbmc6bn1dO2xldCBzPVtdO24uREVGQVVMVCYmcy5wdXNoKHtzY3JlZW46IkRFRkFVTFQiLG1pbldpZHRoOjAscGFkZGluZzpuLkRFRkFVTFR9KTtmb3IobGV0IGEgb2YgdClmb3IobGV0IG8gb2YgaSlmb3IobGV0e21pbjpsfW9mIG8udmFsdWVzKWw9PT1hJiZzLnB1c2goe21pbldpZHRoOmEscGFkZGluZzpuW28ubmFtZV19KTtyZXR1cm4gc31yZXR1cm4gZnVuY3Rpb24oe2FkZENvbXBvbmVudHM6dCx0aGVtZTppfSl7bGV0IG49UnQoaSgiY29udGFpbmVyLnNjcmVlbnMiLGkoInNjcmVlbnMiKSkpLHM9cihuKSxhPWUocyxuLGkoImNvbnRhaW5lci5wYWRkaW5nIikpLG89Yz0+e2xldCBmPWEuZmluZChkPT5kLm1pbldpZHRoPT09Yyk7cmV0dXJuIGY/e3BhZGRpbmdSaWdodDpmLnBhZGRpbmcscGFkZGluZ0xlZnQ6Zi5wYWRkaW5nfTp7fX0sbD1BcnJheS5mcm9tKG5ldyBTZXQocy5zbGljZSgpLnNvcnQoKGMsZik9PnBhcnNlSW50KGMpLXBhcnNlSW50KGYpKSkpLm1hcChjPT4oe1tgQG1lZGlhIChtaW4td2lkdGg6ICR7Y30pYF06eyIuY29udGFpbmVyIjp7Im1heC13aWR0aCI6YywuLi5vKGMpfX19KSk7dChbeyIuY29udGFpbmVyIjpPYmplY3QuYXNzaWduKHt3aWR0aDoiMTAwJSJ9LGkoImNvbnRhaW5lci5jZW50ZXIiLCExKT97bWFyZ2luUmlnaHQ6ImF1dG8iLG1hcmdpbkxlZnQ6ImF1dG8ifTp7fSxvKDApKX0sLi4ubF0pfX0pKCksYWNjZXNzaWJpbGl0eTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnNyLW9ubHkiOntwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxcHgiLGhlaWdodDoiMXB4IixwYWRkaW5nOiIwIixtYXJnaW46Ii0xcHgiLG92ZXJmbG93OiJoaWRkZW4iLGNsaXA6InJlY3QoMCwgMCwgMCwgMCkiLHdoaXRlU3BhY2U6Im5vd3JhcCIsYm9yZGVyV2lkdGg6IjAifSwiLm5vdC1zci1vbmx5Ijp7cG9zaXRpb246InN0YXRpYyIsd2lkdGg6ImF1dG8iLGhlaWdodDoiYXV0byIscGFkZGluZzoiMCIsbWFyZ2luOiIwIixvdmVyZmxvdzoidmlzaWJsZSIsY2xpcDoiYXV0byIsd2hpdGVTcGFjZToibm9ybWFsIn19KX0scG9pbnRlckV2ZW50czooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnBvaW50ZXItZXZlbnRzLW5vbmUiOnsicG9pbnRlci1ldmVudHMiOiJub25lIn0sIi5wb2ludGVyLWV2ZW50cy1hdXRvIjp7InBvaW50ZXItZXZlbnRzIjoiYXV0byJ9fSl9LHZpc2liaWxpdHk6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii52aXNpYmxlIjp7dmlzaWJpbGl0eToidmlzaWJsZSJ9LCIuaW52aXNpYmxlIjp7dmlzaWJpbGl0eToiaGlkZGVuIn0sIi5jb2xsYXBzZSI6e3Zpc2liaWxpdHk6ImNvbGxhcHNlIn19KX0scG9zaXRpb246KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zdGF0aWMiOntwb3NpdGlvbjoic3RhdGljIn0sIi5maXhlZCI6e3Bvc2l0aW9uOiJmaXhlZCJ9LCIuYWJzb2x1dGUiOntwb3NpdGlvbjoiYWJzb2x1dGUifSwiLnJlbGF0aXZlIjp7cG9zaXRpb246InJlbGF0aXZlIn0sIi5zdGlja3kiOntwb3NpdGlvbjoic3RpY2t5In19KX0saW5zZXQ6TCgiaW5zZXQiLFtbImluc2V0IixbImluc2V0Il1dLFtbImluc2V0LXgiLFsibGVmdCIsInJpZ2h0Il1dLFsiaW5zZXQteSIsWyJ0b3AiLCJib3R0b20iXV1dLFtbInN0YXJ0IixbImluc2V0LWlubGluZS1zdGFydCJdXSxbImVuZCIsWyJpbnNldC1pbmxpbmUtZW5kIl1dLFsidG9wIixbInRvcCJdXSxbInJpZ2h0IixbInJpZ2h0Il1dLFsiYm90dG9tIixbImJvdHRvbSJdXSxbImxlZnQiLFsibGVmdCJdXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksaXNvbGF0aW9uOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaXNvbGF0ZSI6e2lzb2xhdGlvbjoiaXNvbGF0ZSJ9LCIuaXNvbGF0aW9uLWF1dG8iOntpc29sYXRpb246ImF1dG8ifX0pfSx6SW5kZXg6TCgiekluZGV4IixbWyJ6IixbInpJbmRleCJdXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxvcmRlcjpMKCJvcmRlciIsdm9pZCAwLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZENvbHVtbjpMKCJncmlkQ29sdW1uIixbWyJjb2wiLFsiZ3JpZENvbHVtbiJdXV0pLGdyaWRDb2x1bW5TdGFydDpMKCJncmlkQ29sdW1uU3RhcnQiLFtbImNvbC1zdGFydCIsWyJncmlkQ29sdW1uU3RhcnQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZENvbHVtbkVuZDpMKCJncmlkQ29sdW1uRW5kIixbWyJjb2wtZW5kIixbImdyaWRDb2x1bW5FbmQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZFJvdzpMKCJncmlkUm93IixbWyJyb3ciLFsiZ3JpZFJvdyJdXV0pLGdyaWRSb3dTdGFydDpMKCJncmlkUm93U3RhcnQiLFtbInJvdy1zdGFydCIsWyJncmlkUm93U3RhcnQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZ3JpZFJvd0VuZDpMKCJncmlkUm93RW5kIixbWyJyb3ctZW5kIixbImdyaWRSb3dFbmQiXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZmxvYXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5mbG9hdC1zdGFydCI6e2Zsb2F0OiJpbmxpbmUtc3RhcnQifSwiLmZsb2F0LWVuZCI6e2Zsb2F0OiJpbmxpbmUtZW5kIn0sIi5mbG9hdC1yaWdodCI6e2Zsb2F0OiJyaWdodCJ9LCIuZmxvYXQtbGVmdCI6e2Zsb2F0OiJsZWZ0In0sIi5mbG9hdC1ub25lIjp7ZmxvYXQ6Im5vbmUifX0pfSxjbGVhcjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmNsZWFyLXN0YXJ0Ijp7Y2xlYXI6ImlubGluZS1zdGFydCJ9LCIuY2xlYXItZW5kIjp7Y2xlYXI6ImlubGluZS1lbmQifSwiLmNsZWFyLWxlZnQiOntjbGVhcjoibGVmdCJ9LCIuY2xlYXItcmlnaHQiOntjbGVhcjoicmlnaHQifSwiLmNsZWFyLWJvdGgiOntjbGVhcjoiYm90aCJ9LCIuY2xlYXItbm9uZSI6e2NsZWFyOiJub25lIn19KX0sbWFyZ2luOkwoIm1hcmdpbiIsW1sibSIsWyJtYXJnaW4iXV0sW1sibXgiLFsibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiXV0sWyJteSIsWyJtYXJnaW4tdG9wIiwibWFyZ2luLWJvdHRvbSJdXV0sW1sibXMiLFsibWFyZ2luLWlubGluZS1zdGFydCJdXSxbIm1lIixbIm1hcmdpbi1pbmxpbmUtZW5kIl1dLFsibXQiLFsibWFyZ2luLXRvcCJdXSxbIm1yIixbIm1hcmdpbi1yaWdodCJdXSxbIm1iIixbIm1hcmdpbi1ib3R0b20iXV0sWyJtbCIsWyJtYXJnaW4tbGVmdCJdXV1dLHtzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksYm94U2l6aW5nOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYm94LWJvcmRlciI6eyJib3gtc2l6aW5nIjoiYm9yZGVyLWJveCJ9LCIuYm94LWNvbnRlbnQiOnsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94In19KX0sbGluZUNsYW1wOih7bWF0Y2hVdGlsaXRpZXM6cixhZGRVdGlsaXRpZXM6ZSx0aGVtZTp0fSk9PntyKHsibGluZS1jbGFtcCI6aT0+KHtvdmVyZmxvdzoiaGlkZGVuIixkaXNwbGF5OiItd2Via2l0LWJveCIsIi13ZWJraXQtYm94LW9yaWVudCI6InZlcnRpY2FsIiwiLXdlYmtpdC1saW5lLWNsYW1wIjpgJHtpfWB9KX0se3ZhbHVlczp0KCJsaW5lQ2xhbXAiKX0pLGUoeyIubGluZS1jbGFtcC1ub25lIjp7b3ZlcmZsb3c6InZpc2libGUiLGRpc3BsYXk6ImJsb2NrIiwiLXdlYmtpdC1ib3gtb3JpZW50IjoiaG9yaXpvbnRhbCIsIi13ZWJraXQtbGluZS1jbGFtcCI6Im5vbmUifX0pfSxkaXNwbGF5Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYmxvY2siOntkaXNwbGF5OiJibG9jayJ9LCIuaW5saW5lLWJsb2NrIjp7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sIi5pbmxpbmUiOntkaXNwbGF5OiJpbmxpbmUifSwiLmZsZXgiOntkaXNwbGF5OiJmbGV4In0sIi5pbmxpbmUtZmxleCI6e2Rpc3BsYXk6ImlubGluZS1mbGV4In0sIi50YWJsZSI6e2Rpc3BsYXk6InRhYmxlIn0sIi5pbmxpbmUtdGFibGUiOntkaXNwbGF5OiJpbmxpbmUtdGFibGUifSwiLnRhYmxlLWNhcHRpb24iOntkaXNwbGF5OiJ0YWJsZS1jYXB0aW9uIn0sIi50YWJsZS1jZWxsIjp7ZGlzcGxheToidGFibGUtY2VsbCJ9LCIudGFibGUtY29sdW1uIjp7ZGlzcGxheToidGFibGUtY29sdW1uIn0sIi50YWJsZS1jb2x1bW4tZ3JvdXAiOntkaXNwbGF5OiJ0YWJsZS1jb2x1bW4tZ3JvdXAifSwiLnRhYmxlLWZvb3Rlci1ncm91cCI6e2Rpc3BsYXk6InRhYmxlLWZvb3Rlci1ncm91cCJ9LCIudGFibGUtaGVhZGVyLWdyb3VwIjp7ZGlzcGxheToidGFibGUtaGVhZGVyLWdyb3VwIn0sIi50YWJsZS1yb3ctZ3JvdXAiOntkaXNwbGF5OiJ0YWJsZS1yb3ctZ3JvdXAifSwiLnRhYmxlLXJvdyI6e2Rpc3BsYXk6InRhYmxlLXJvdyJ9LCIuZmxvdy1yb290Ijp7ZGlzcGxheToiZmxvdy1yb290In0sIi5ncmlkIjp7ZGlzcGxheToiZ3JpZCJ9LCIuaW5saW5lLWdyaWQiOntkaXNwbGF5OiJpbmxpbmUtZ3JpZCJ9LCIuY29udGVudHMiOntkaXNwbGF5OiJjb250ZW50cyJ9LCIubGlzdC1pdGVtIjp7ZGlzcGxheToibGlzdC1pdGVtIn0sIi5oaWRkZW4iOntkaXNwbGF5OiJub25lIn19KX0sYXNwZWN0UmF0aW86TCgiYXNwZWN0UmF0aW8iLFtbImFzcGVjdCIsWyJhc3BlY3QtcmF0aW8iXV1dKSxzaXplOkwoInNpemUiLFtbInNpemUiLFsid2lkdGgiLCJoZWlnaHQiXV1dKSxoZWlnaHQ6TCgiaGVpZ2h0IixbWyJoIixbImhlaWdodCJdXV0pLG1heEhlaWdodDpMKCJtYXhIZWlnaHQiLFtbIm1heC1oIixbIm1heEhlaWdodCJdXV0pLG1pbkhlaWdodDpMKCJtaW5IZWlnaHQiLFtbIm1pbi1oIixbIm1pbkhlaWdodCJdXV0pLHdpZHRoOkwoIndpZHRoIixbWyJ3IixbIndpZHRoIl1dXSksbWluV2lkdGg6TCgibWluV2lkdGgiLFtbIm1pbi13IixbIm1pbldpZHRoIl1dXSksbWF4V2lkdGg6TCgibWF4V2lkdGgiLFtbIm1heC13IixbIm1heFdpZHRoIl1dXSksZmxleDpMKCJmbGV4IiksZmxleFNocmluazpMKCJmbGV4U2hyaW5rIixbWyJmbGV4LXNocmluayIsWyJmbGV4LXNocmluayJdXSxbInNocmluayIsWyJmbGV4LXNocmluayJdXV0pLGZsZXhHcm93OkwoImZsZXhHcm93IixbWyJmbGV4LWdyb3ciLFsiZmxleC1ncm93Il1dLFsiZ3JvdyIsWyJmbGV4LWdyb3ciXV1dKSxmbGV4QmFzaXM6TCgiZmxleEJhc2lzIixbWyJiYXNpcyIsWyJmbGV4LWJhc2lzIl1dXSksdGFibGVMYXlvdXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii50YWJsZS1hdXRvIjp7InRhYmxlLWxheW91dCI6ImF1dG8ifSwiLnRhYmxlLWZpeGVkIjp7InRhYmxlLWxheW91dCI6ImZpeGVkIn19KX0sY2FwdGlvblNpZGU6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5jYXB0aW9uLXRvcCI6eyJjYXB0aW9uLXNpZGUiOiJ0b3AifSwiLmNhcHRpb24tYm90dG9tIjp7ImNhcHRpb24tc2lkZSI6ImJvdHRvbSJ9fSl9LGJvcmRlckNvbGxhcHNlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYm9yZGVyLWNvbGxhcHNlIjp7ImJvcmRlci1jb2xsYXBzZSI6ImNvbGxhcHNlIn0sIi5ib3JkZXItc2VwYXJhdGUiOnsiYm9yZGVyLWNvbGxhcHNlIjoic2VwYXJhdGUifX0pfSxib3JkZXJTcGFjaW5nOih7YWRkRGVmYXVsdHM6cixtYXRjaFV0aWxpdGllczplLHRoZW1lOnR9KT0+e3IoImJvcmRlci1zcGFjaW5nIix7Ii0tdHctYm9yZGVyLXNwYWNpbmcteCI6MCwiLS10dy1ib3JkZXItc3BhY2luZy15IjowfSksZSh7ImJvcmRlci1zcGFjaW5nIjppPT4oeyItLXR3LWJvcmRlci1zcGFjaW5nLXgiOmksIi0tdHctYm9yZGVyLXNwYWNpbmcteSI6aSwiQGRlZmF1bHRzIGJvcmRlci1zcGFjaW5nIjp7fSwiYm9yZGVyLXNwYWNpbmciOiJ2YXIoLS10dy1ib3JkZXItc3BhY2luZy14KSB2YXIoLS10dy1ib3JkZXItc3BhY2luZy15KSJ9KSwiYm9yZGVyLXNwYWNpbmcteCI6aT0+KHsiLS10dy1ib3JkZXItc3BhY2luZy14IjppLCJAZGVmYXVsdHMgYm9yZGVyLXNwYWNpbmciOnt9LCJib3JkZXItc3BhY2luZyI6InZhcigtLXR3LWJvcmRlci1zcGFjaW5nLXgpIHZhcigtLXR3LWJvcmRlci1zcGFjaW5nLXkpIn0pLCJib3JkZXItc3BhY2luZy15IjppPT4oeyItLXR3LWJvcmRlci1zcGFjaW5nLXkiOmksIkBkZWZhdWx0cyBib3JkZXItc3BhY2luZyI6e30sImJvcmRlci1zcGFjaW5nIjoidmFyKC0tdHctYm9yZGVyLXNwYWNpbmcteCkgdmFyKC0tdHctYm9yZGVyLXNwYWNpbmcteSkifSl9LHt2YWx1ZXM6dCgiYm9yZGVyU3BhY2luZyIpfSl9LHRyYW5zZm9ybU9yaWdpbjpMKCJ0cmFuc2Zvcm1PcmlnaW4iLFtbIm9yaWdpbiIsWyJ0cmFuc2Zvcm1PcmlnaW4iXV1dKSx0cmFuc2xhdGU6TCgidHJhbnNsYXRlIixbW1sidHJhbnNsYXRlLXgiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy10cmFuc2xhdGUteCIsWyJ0cmFuc2Zvcm0iLFhlXV1dLFsidHJhbnNsYXRlLXkiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy10cmFuc2xhdGUteSIsWyJ0cmFuc2Zvcm0iLFhlXV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxyb3RhdGU6TCgicm90YXRlIixbWyJyb3RhdGUiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1yb3RhdGUiLFsidHJhbnNmb3JtIixYZV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxza2V3OkwoInNrZXciLFtbWyJza2V3LXgiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1za2V3LXgiLFsidHJhbnNmb3JtIixYZV1dXSxbInNrZXcteSIsW1siQGRlZmF1bHRzIHRyYW5zZm9ybSIse31dLCItLXR3LXNrZXcteSIsWyJ0cmFuc2Zvcm0iLFhlXV1dXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSxzY2FsZTpMKCJzY2FsZSIsW1sic2NhbGUiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1zY2FsZS14IiwiLS10dy1zY2FsZS15IixbInRyYW5zZm9ybSIsWGVdXV0sW1sic2NhbGUteCIsW1siQGRlZmF1bHRzIHRyYW5zZm9ybSIse31dLCItLXR3LXNjYWxlLXgiLFsidHJhbnNmb3JtIixYZV1dXSxbInNjYWxlLXkiLFtbIkBkZWZhdWx0cyB0cmFuc2Zvcm0iLHt9XSwiLS10dy1zY2FsZS15IixbInRyYW5zZm9ybSIsWGVdXV1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHRyYW5zZm9ybTooe2FkZERlZmF1bHRzOnIsYWRkVXRpbGl0aWVzOmV9KT0+e3IoInRyYW5zZm9ybSIseyItLXR3LXRyYW5zbGF0ZS14IjoiMCIsIi0tdHctdHJhbnNsYXRlLXkiOiIwIiwiLS10dy1yb3RhdGUiOiIwIiwiLS10dy1za2V3LXgiOiIwIiwiLS10dy1za2V3LXkiOiIwIiwiLS10dy1zY2FsZS14IjoiMSIsIi0tdHctc2NhbGUteSI6IjEifSksZSh7Ii50cmFuc2Zvcm0iOnsiQGRlZmF1bHRzIHRyYW5zZm9ybSI6e30sdHJhbnNmb3JtOlhlfSwiLnRyYW5zZm9ybS1jcHUiOnt0cmFuc2Zvcm06WGV9LCIudHJhbnNmb3JtLWdwdSI6e3RyYW5zZm9ybTpYZS5yZXBsYWNlKCJ0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSkpIiwidHJhbnNsYXRlM2QodmFyKC0tdHctdHJhbnNsYXRlLXgpLCB2YXIoLS10dy10cmFuc2xhdGUteSksIDApIil9LCIudHJhbnNmb3JtLW5vbmUiOnt0cmFuc2Zvcm06Im5vbmUifX0pfSxhbmltYXRpb246KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29uZmlnOnR9KT0+e2xldCBpPXM9PlRlKHQoInByZWZpeCIpK3MpLG49T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUoImtleWZyYW1lcyIpPz97fSkubWFwKChbcyxhXSk9PltzLHtbYEBrZXlmcmFtZXMgJHtpKHMpfWBdOmF9XSkpO3Ioe2FuaW1hdGU6cz0+e2xldCBhPU1vKHMpO3JldHVyblsuLi5hLmZsYXRNYXAobz0+bltvLm5hbWVdKSx7YW5pbWF0aW9uOmEubWFwKCh7bmFtZTpvLHZhbHVlOmx9KT0+bz09PXZvaWQgMHx8bltvXT09PXZvaWQgMD9sOmwucmVwbGFjZShvLGkobykpKS5qb2luKCIsICIpfV19fSx7dmFsdWVzOmUoImFuaW1hdGlvbiIpfSl9LGN1cnNvcjpMKCJjdXJzb3IiKSx0b3VjaEFjdGlvbjooe2FkZERlZmF1bHRzOnIsYWRkVXRpbGl0aWVzOmV9KT0+e3IoInRvdWNoLWFjdGlvbiIseyItLXR3LXBhbi14IjoiICIsIi0tdHctcGFuLXkiOiIgIiwiLS10dy1waW5jaC16b29tIjoiICJ9KTtsZXQgdD0idmFyKC0tdHctcGFuLXgpIHZhcigtLXR3LXBhbi15KSB2YXIoLS10dy1waW5jaC16b29tKSI7ZSh7Ii50b3VjaC1hdXRvIjp7InRvdWNoLWFjdGlvbiI6ImF1dG8ifSwiLnRvdWNoLW5vbmUiOnsidG91Y2gtYWN0aW9uIjoibm9uZSJ9LCIudG91Y2gtcGFuLXgiOnsiQGRlZmF1bHRzIHRvdWNoLWFjdGlvbiI6e30sIi0tdHctcGFuLXgiOiJwYW4teCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4tbGVmdCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teCI6InBhbi1sZWZ0IiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBhbi1yaWdodCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teCI6InBhbi1yaWdodCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4teSI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi15IiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBhbi11cCI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi11cCIsInRvdWNoLWFjdGlvbiI6dH0sIi50b3VjaC1wYW4tZG93biI6eyJAZGVmYXVsdHMgdG91Y2gtYWN0aW9uIjp7fSwiLS10dy1wYW4teSI6InBhbi1kb3duIiwidG91Y2gtYWN0aW9uIjp0fSwiLnRvdWNoLXBpbmNoLXpvb20iOnsiQGRlZmF1bHRzIHRvdWNoLWFjdGlvbiI6e30sIi0tdHctcGluY2gtem9vbSI6InBpbmNoLXpvb20iLCJ0b3VjaC1hY3Rpb24iOnR9LCIudG91Y2gtbWFuaXB1bGF0aW9uIjp7InRvdWNoLWFjdGlvbiI6Im1hbmlwdWxhdGlvbiJ9fSl9LHVzZXJTZWxlY3Q6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zZWxlY3Qtbm9uZSI6eyJ1c2VyLXNlbGVjdCI6Im5vbmUifSwiLnNlbGVjdC10ZXh0Ijp7InVzZXItc2VsZWN0IjoidGV4dCJ9LCIuc2VsZWN0LWFsbCI6eyJ1c2VyLXNlbGVjdCI6ImFsbCJ9LCIuc2VsZWN0LWF1dG8iOnsidXNlci1zZWxlY3QiOiJhdXRvIn19KX0scmVzaXplOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIucmVzaXplLW5vbmUiOntyZXNpemU6Im5vbmUifSwiLnJlc2l6ZS15Ijp7cmVzaXplOiJ2ZXJ0aWNhbCJ9LCIucmVzaXplLXgiOntyZXNpemU6Imhvcml6b250YWwifSwiLnJlc2l6ZSI6e3Jlc2l6ZToiYm90aCJ9fSl9LHNjcm9sbFNuYXBUeXBlOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57cigic2Nyb2xsLXNuYXAtdHlwZSIseyItLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3MiOiJwcm94aW1pdHkifSksZSh7Ii5zbmFwLW5vbmUiOnsic2Nyb2xsLXNuYXAtdHlwZSI6Im5vbmUifSwiLnNuYXAteCI6eyJAZGVmYXVsdHMgc2Nyb2xsLXNuYXAtdHlwZSI6e30sInNjcm9sbC1zbmFwLXR5cGUiOiJ4IHZhcigtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3MpIn0sIi5zbmFwLXkiOnsiQGRlZmF1bHRzIHNjcm9sbC1zbmFwLXR5cGUiOnt9LCJzY3JvbGwtc25hcC10eXBlIjoieSB2YXIoLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzKSJ9LCIuc25hcC1ib3RoIjp7IkBkZWZhdWx0cyBzY3JvbGwtc25hcC10eXBlIjp7fSwic2Nyb2xsLXNuYXAtdHlwZSI6ImJvdGggdmFyKC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzcykifSwiLnNuYXAtbWFuZGF0b3J5Ijp7Ii0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzcyI6Im1hbmRhdG9yeSJ9LCIuc25hcC1wcm94aW1pdHkiOnsiLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzIjoicHJveGltaXR5In19KX0sc2Nyb2xsU25hcEFsaWduOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuc25hcC1zdGFydCI6eyJzY3JvbGwtc25hcC1hbGlnbiI6InN0YXJ0In0sIi5zbmFwLWVuZCI6eyJzY3JvbGwtc25hcC1hbGlnbiI6ImVuZCJ9LCIuc25hcC1jZW50ZXIiOnsic2Nyb2xsLXNuYXAtYWxpZ24iOiJjZW50ZXIifSwiLnNuYXAtYWxpZ24tbm9uZSI6eyJzY3JvbGwtc25hcC1hbGlnbiI6Im5vbmUifX0pfSxzY3JvbGxTbmFwU3RvcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnNuYXAtbm9ybWFsIjp7InNjcm9sbC1zbmFwLXN0b3AiOiJub3JtYWwifSwiLnNuYXAtYWx3YXlzIjp7InNjcm9sbC1zbmFwLXN0b3AiOiJhbHdheXMifX0pfSxzY3JvbGxNYXJnaW46TCgic2Nyb2xsTWFyZ2luIixbWyJzY3JvbGwtbSIsWyJzY3JvbGwtbWFyZ2luIl1dLFtbInNjcm9sbC1teCIsWyJzY3JvbGwtbWFyZ2luLWxlZnQiLCJzY3JvbGwtbWFyZ2luLXJpZ2h0Il1dLFsic2Nyb2xsLW15IixbInNjcm9sbC1tYXJnaW4tdG9wIiwic2Nyb2xsLW1hcmdpbi1ib3R0b20iXV1dLFtbInNjcm9sbC1tcyIsWyJzY3JvbGwtbWFyZ2luLWlubGluZS1zdGFydCJdXSxbInNjcm9sbC1tZSIsWyJzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQiXV0sWyJzY3JvbGwtbXQiLFsic2Nyb2xsLW1hcmdpbi10b3AiXV0sWyJzY3JvbGwtbXIiLFsic2Nyb2xsLW1hcmdpbi1yaWdodCJdXSxbInNjcm9sbC1tYiIsWyJzY3JvbGwtbWFyZ2luLWJvdHRvbSJdXSxbInNjcm9sbC1tbCIsWyJzY3JvbGwtbWFyZ2luLWxlZnQiXV1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHNjcm9sbFBhZGRpbmc6TCgic2Nyb2xsUGFkZGluZyIsW1sic2Nyb2xsLXAiLFsic2Nyb2xsLXBhZGRpbmciXV0sW1sic2Nyb2xsLXB4IixbInNjcm9sbC1wYWRkaW5nLWxlZnQiLCJzY3JvbGwtcGFkZGluZy1yaWdodCJdXSxbInNjcm9sbC1weSIsWyJzY3JvbGwtcGFkZGluZy10b3AiLCJzY3JvbGwtcGFkZGluZy1ib3R0b20iXV1dLFtbInNjcm9sbC1wcyIsWyJzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQiXV0sWyJzY3JvbGwtcGUiLFsic2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCJdXSxbInNjcm9sbC1wdCIsWyJzY3JvbGwtcGFkZGluZy10b3AiXV0sWyJzY3JvbGwtcHIiLFsic2Nyb2xsLXBhZGRpbmctcmlnaHQiXV0sWyJzY3JvbGwtcGIiLFsic2Nyb2xsLXBhZGRpbmctYm90dG9tIl1dLFsic2Nyb2xsLXBsIixbInNjcm9sbC1wYWRkaW5nLWxlZnQiXV1dXSksbGlzdFN0eWxlUG9zaXRpb246KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5saXN0LWluc2lkZSI6eyJsaXN0LXN0eWxlLXBvc2l0aW9uIjoiaW5zaWRlIn0sIi5saXN0LW91dHNpZGUiOnsibGlzdC1zdHlsZS1wb3NpdGlvbiI6Im91dHNpZGUifX0pfSxsaXN0U3R5bGVUeXBlOkwoImxpc3RTdHlsZVR5cGUiLFtbImxpc3QiLFsibGlzdFN0eWxlVHlwZSJdXV0pLGxpc3RTdHlsZUltYWdlOkwoImxpc3RTdHlsZUltYWdlIixbWyJsaXN0LWltYWdlIixbImxpc3RTdHlsZUltYWdlIl1dXSksYXBwZWFyYW5jZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmFwcGVhcmFuY2Utbm9uZSI6e2FwcGVhcmFuY2U6Im5vbmUifSwiLmFwcGVhcmFuY2UtYXV0byI6e2FwcGVhcmFuY2U6ImF1dG8ifX0pfSxjb2x1bW5zOkwoImNvbHVtbnMiLFtbImNvbHVtbnMiLFsiY29sdW1ucyJdXV0pLGJyZWFrQmVmb3JlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstYmVmb3JlLWF1dG8iOnsiYnJlYWstYmVmb3JlIjoiYXV0byJ9LCIuYnJlYWstYmVmb3JlLWF2b2lkIjp7ImJyZWFrLWJlZm9yZSI6ImF2b2lkIn0sIi5icmVhay1iZWZvcmUtYWxsIjp7ImJyZWFrLWJlZm9yZSI6ImFsbCJ9LCIuYnJlYWstYmVmb3JlLWF2b2lkLXBhZ2UiOnsiYnJlYWstYmVmb3JlIjoiYXZvaWQtcGFnZSJ9LCIuYnJlYWstYmVmb3JlLXBhZ2UiOnsiYnJlYWstYmVmb3JlIjoicGFnZSJ9LCIuYnJlYWstYmVmb3JlLWxlZnQiOnsiYnJlYWstYmVmb3JlIjoibGVmdCJ9LCIuYnJlYWstYmVmb3JlLXJpZ2h0Ijp7ImJyZWFrLWJlZm9yZSI6InJpZ2h0In0sIi5icmVhay1iZWZvcmUtY29sdW1uIjp7ImJyZWFrLWJlZm9yZSI6ImNvbHVtbiJ9fSl9LGJyZWFrSW5zaWRlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstaW5zaWRlLWF1dG8iOnsiYnJlYWstaW5zaWRlIjoiYXV0byJ9LCIuYnJlYWstaW5zaWRlLWF2b2lkIjp7ImJyZWFrLWluc2lkZSI6ImF2b2lkIn0sIi5icmVhay1pbnNpZGUtYXZvaWQtcGFnZSI6eyJicmVhay1pbnNpZGUiOiJhdm9pZC1wYWdlIn0sIi5icmVhay1pbnNpZGUtYXZvaWQtY29sdW1uIjp7ImJyZWFrLWluc2lkZSI6ImF2b2lkLWNvbHVtbiJ9fSl9LGJyZWFrQWZ0ZXI6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5icmVhay1hZnRlci1hdXRvIjp7ImJyZWFrLWFmdGVyIjoiYXV0byJ9LCIuYnJlYWstYWZ0ZXItYXZvaWQiOnsiYnJlYWstYWZ0ZXIiOiJhdm9pZCJ9LCIuYnJlYWstYWZ0ZXItYWxsIjp7ImJyZWFrLWFmdGVyIjoiYWxsIn0sIi5icmVhay1hZnRlci1hdm9pZC1wYWdlIjp7ImJyZWFrLWFmdGVyIjoiYXZvaWQtcGFnZSJ9LCIuYnJlYWstYWZ0ZXItcGFnZSI6eyJicmVhay1hZnRlciI6InBhZ2UifSwiLmJyZWFrLWFmdGVyLWxlZnQiOnsiYnJlYWstYWZ0ZXIiOiJsZWZ0In0sIi5icmVhay1hZnRlci1yaWdodCI6eyJicmVhay1hZnRlciI6InJpZ2h0In0sIi5icmVhay1hZnRlci1jb2x1bW4iOnsiYnJlYWstYWZ0ZXIiOiJjb2x1bW4ifX0pfSxncmlkQXV0b0NvbHVtbnM6TCgiZ3JpZEF1dG9Db2x1bW5zIixbWyJhdXRvLWNvbHMiLFsiZ3JpZEF1dG9Db2x1bW5zIl1dXSksZ3JpZEF1dG9GbG93Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuZ3JpZC1mbG93LXJvdyI6e2dyaWRBdXRvRmxvdzoicm93In0sIi5ncmlkLWZsb3ctY29sIjp7Z3JpZEF1dG9GbG93OiJjb2x1bW4ifSwiLmdyaWQtZmxvdy1kZW5zZSI6e2dyaWRBdXRvRmxvdzoiZGVuc2UifSwiLmdyaWQtZmxvdy1yb3ctZGVuc2UiOntncmlkQXV0b0Zsb3c6InJvdyBkZW5zZSJ9LCIuZ3JpZC1mbG93LWNvbC1kZW5zZSI6e2dyaWRBdXRvRmxvdzoiY29sdW1uIGRlbnNlIn19KX0sZ3JpZEF1dG9Sb3dzOkwoImdyaWRBdXRvUm93cyIsW1siYXV0by1yb3dzIixbImdyaWRBdXRvUm93cyJdXV0pLGdyaWRUZW1wbGF0ZUNvbHVtbnM6TCgiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsW1siZ3JpZC1jb2xzIixbImdyaWRUZW1wbGF0ZUNvbHVtbnMiXV1dKSxncmlkVGVtcGxhdGVSb3dzOkwoImdyaWRUZW1wbGF0ZVJvd3MiLFtbImdyaWQtcm93cyIsWyJncmlkVGVtcGxhdGVSb3dzIl1dXSksZmxleERpcmVjdGlvbjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmZsZXgtcm93Ijp7ImZsZXgtZGlyZWN0aW9uIjoicm93In0sIi5mbGV4LXJvdy1yZXZlcnNlIjp7ImZsZXgtZGlyZWN0aW9uIjoicm93LXJldmVyc2UifSwiLmZsZXgtY29sIjp7ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uIn0sIi5mbGV4LWNvbC1yZXZlcnNlIjp7ImZsZXgtZGlyZWN0aW9uIjoiY29sdW1uLXJldmVyc2UifX0pfSxmbGV4V3JhcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmZsZXgtd3JhcCI6eyJmbGV4LXdyYXAiOiJ3cmFwIn0sIi5mbGV4LXdyYXAtcmV2ZXJzZSI6eyJmbGV4LXdyYXAiOiJ3cmFwLXJldmVyc2UifSwiLmZsZXgtbm93cmFwIjp7ImZsZXgtd3JhcCI6Im5vd3JhcCJ9fSl9LHBsYWNlQ29udGVudDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnBsYWNlLWNvbnRlbnQtY2VudGVyIjp7InBsYWNlLWNvbnRlbnQiOiJjZW50ZXIifSwiLnBsYWNlLWNvbnRlbnQtc3RhcnQiOnsicGxhY2UtY29udGVudCI6InN0YXJ0In0sIi5wbGFjZS1jb250ZW50LWVuZCI6eyJwbGFjZS1jb250ZW50IjoiZW5kIn0sIi5wbGFjZS1jb250ZW50LWJldHdlZW4iOnsicGxhY2UtY29udGVudCI6InNwYWNlLWJldHdlZW4ifSwiLnBsYWNlLWNvbnRlbnQtYXJvdW5kIjp7InBsYWNlLWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLnBsYWNlLWNvbnRlbnQtZXZlbmx5Ijp7InBsYWNlLWNvbnRlbnQiOiJzcGFjZS1ldmVubHkifSwiLnBsYWNlLWNvbnRlbnQtYmFzZWxpbmUiOnsicGxhY2UtY29udGVudCI6ImJhc2VsaW5lIn0sIi5wbGFjZS1jb250ZW50LXN0cmV0Y2giOnsicGxhY2UtY29udGVudCI6InN0cmV0Y2gifX0pfSxwbGFjZUl0ZW1zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIucGxhY2UtaXRlbXMtc3RhcnQiOnsicGxhY2UtaXRlbXMiOiJzdGFydCJ9LCIucGxhY2UtaXRlbXMtZW5kIjp7InBsYWNlLWl0ZW1zIjoiZW5kIn0sIi5wbGFjZS1pdGVtcy1jZW50ZXIiOnsicGxhY2UtaXRlbXMiOiJjZW50ZXIifSwiLnBsYWNlLWl0ZW1zLWJhc2VsaW5lIjp7InBsYWNlLWl0ZW1zIjoiYmFzZWxpbmUifSwiLnBsYWNlLWl0ZW1zLXN0cmV0Y2giOnsicGxhY2UtaXRlbXMiOiJzdHJldGNoIn19KX0sYWxpZ25Db250ZW50Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuY29udGVudC1ub3JtYWwiOnsiYWxpZ24tY29udGVudCI6Im5vcm1hbCJ9LCIuY29udGVudC1jZW50ZXIiOnsiYWxpZ24tY29udGVudCI6ImNlbnRlciJ9LCIuY29udGVudC1zdGFydCI6eyJhbGlnbi1jb250ZW50IjoiZmxleC1zdGFydCJ9LCIuY29udGVudC1lbmQiOnsiYWxpZ24tY29udGVudCI6ImZsZXgtZW5kIn0sIi5jb250ZW50LWJldHdlZW4iOnsiYWxpZ24tY29udGVudCI6InNwYWNlLWJldHdlZW4ifSwiLmNvbnRlbnQtYXJvdW5kIjp7ImFsaWduLWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLmNvbnRlbnQtZXZlbmx5Ijp7ImFsaWduLWNvbnRlbnQiOiJzcGFjZS1ldmVubHkifSwiLmNvbnRlbnQtYmFzZWxpbmUiOnsiYWxpZ24tY29udGVudCI6ImJhc2VsaW5lIn0sIi5jb250ZW50LXN0cmV0Y2giOnsiYWxpZ24tY29udGVudCI6InN0cmV0Y2gifX0pfSxhbGlnbkl0ZW1zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaXRlbXMtc3RhcnQiOnsiYWxpZ24taXRlbXMiOiJmbGV4LXN0YXJ0In0sIi5pdGVtcy1lbmQiOnsiYWxpZ24taXRlbXMiOiJmbGV4LWVuZCJ9LCIuaXRlbXMtY2VudGVyIjp7ImFsaWduLWl0ZW1zIjoiY2VudGVyIn0sIi5pdGVtcy1iYXNlbGluZSI6eyJhbGlnbi1pdGVtcyI6ImJhc2VsaW5lIn0sIi5pdGVtcy1zdHJldGNoIjp7ImFsaWduLWl0ZW1zIjoic3RyZXRjaCJ9fSl9LGp1c3RpZnlDb250ZW50Oih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuanVzdGlmeS1ub3JtYWwiOnsianVzdGlmeS1jb250ZW50Ijoibm9ybWFsIn0sIi5qdXN0aWZ5LXN0YXJ0Ijp7Imp1c3RpZnktY29udGVudCI6ImZsZXgtc3RhcnQifSwiLmp1c3RpZnktZW5kIjp7Imp1c3RpZnktY29udGVudCI6ImZsZXgtZW5kIn0sIi5qdXN0aWZ5LWNlbnRlciI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJjZW50ZXIifSwiLmp1c3RpZnktYmV0d2VlbiI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1iZXR3ZWVuIn0sIi5qdXN0aWZ5LWFyb3VuZCI6eyJqdXN0aWZ5LWNvbnRlbnQiOiJzcGFjZS1hcm91bmQifSwiLmp1c3RpZnktZXZlbmx5Ijp7Imp1c3RpZnktY29udGVudCI6InNwYWNlLWV2ZW5seSJ9LCIuanVzdGlmeS1zdHJldGNoIjp7Imp1c3RpZnktY29udGVudCI6InN0cmV0Y2gifX0pfSxqdXN0aWZ5SXRlbXM6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5qdXN0aWZ5LWl0ZW1zLXN0YXJ0Ijp7Imp1c3RpZnktaXRlbXMiOiJzdGFydCJ9LCIuanVzdGlmeS1pdGVtcy1lbmQiOnsianVzdGlmeS1pdGVtcyI6ImVuZCJ9LCIuanVzdGlmeS1pdGVtcy1jZW50ZXIiOnsianVzdGlmeS1pdGVtcyI6ImNlbnRlciJ9LCIuanVzdGlmeS1pdGVtcy1zdHJldGNoIjp7Imp1c3RpZnktaXRlbXMiOiJzdHJldGNoIn19KX0sZ2FwOkwoImdhcCIsW1siZ2FwIixbImdhcCJdXSxbWyJnYXAteCIsWyJjb2x1bW5HYXAiXV0sWyJnYXAteSIsWyJyb3dHYXAiXV1dXSksc3BhY2U6KHttYXRjaFV0aWxpdGllczpyLGFkZFV0aWxpdGllczplLHRoZW1lOnR9KT0+e3IoeyJzcGFjZS14IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyItLXR3LXNwYWNlLXgtcmV2ZXJzZSI6IjAiLCJtYXJnaW4tcmlnaHQiOmBjYWxjKCR7aX0gKiB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKWAsIm1hcmdpbi1sZWZ0IjpgY2FsYygke2l9ICogY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSkpYH19KSwic3BhY2UteSI6aT0+KGk9aT09PSIwIj8iMHB4IjppLHsiJiA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiLS10dy1zcGFjZS15LXJldmVyc2UiOiIwIiwibWFyZ2luLXRvcCI6YGNhbGMoJHtpfSAqIGNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKWAsIm1hcmdpbi1ib3R0b20iOmBjYWxjKCR7aX0gKiB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKWB9fSl9LHt2YWx1ZXM6dCgic3BhY2UiKSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksZSh7Ii5zcGFjZS15LXJldmVyc2UgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIjp7Ii0tdHctc3BhY2UteS1yZXZlcnNlIjoiMSJ9LCIuc3BhY2UteC1yZXZlcnNlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyItLXR3LXNwYWNlLXgtcmV2ZXJzZSI6IjEifX0pfSxkaXZpZGVXaWR0aDooe21hdGNoVXRpbGl0aWVzOnIsYWRkVXRpbGl0aWVzOmUsdGhlbWU6dH0pPT57cih7ImRpdmlkZS14IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteC1yZXZlcnNlIjoiMCIsImJvcmRlci1yaWdodC13aWR0aCI6YGNhbGMoJHtpfSAqIHZhcigtLXR3LWRpdmlkZS14LXJldmVyc2UpKWAsImJvcmRlci1sZWZ0LXdpZHRoIjpgY2FsYygke2l9ICogY2FsYygxIC0gdmFyKC0tdHctZGl2aWRlLXgtcmV2ZXJzZSkpKWB9fSksImRpdmlkZS15IjppPT4oaT1pPT09IjAiPyIwcHgiOmkseyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteS1yZXZlcnNlIjoiMCIsImJvcmRlci10b3Atd2lkdGgiOmBjYWxjKCR7aX0gKiBjYWxjKDEgLSB2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSkpYCwiYm9yZGVyLWJvdHRvbS13aWR0aCI6YGNhbGMoJHtpfSAqIHZhcigtLXR3LWRpdmlkZS15LXJldmVyc2UpKWB9fSl9LHt2YWx1ZXM6dCgiZGl2aWRlV2lkdGgiKSx0eXBlOlsibGluZS13aWR0aCIsImxlbmd0aCIsImFueSJdfSksZSh7Ii5kaXZpZGUteS1yZXZlcnNlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIjp7fSwiLS10dy1kaXZpZGUteS1yZXZlcnNlIjoiMSJ9LCIuZGl2aWRlLXgtcmV2ZXJzZSA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiQGRlZmF1bHRzIGJvcmRlci13aWR0aCI6e30sIi0tdHctZGl2aWRlLXgtcmV2ZXJzZSI6IjEifX0pfSxkaXZpZGVTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRpdmlkZS1zb2xpZCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiYm9yZGVyLXN0eWxlIjoic29saWQifSwiLmRpdmlkZS1kYXNoZWQgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIjp7ImJvcmRlci1zdHlsZSI6ImRhc2hlZCJ9LCIuZGl2aWRlLWRvdHRlZCA+IDpub3QoW2hpZGRlbl0pIH4gOm5vdChbaGlkZGVuXSkiOnsiYm9yZGVyLXN0eWxlIjoiZG90dGVkIn0sIi5kaXZpZGUtZG91YmxlID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJib3JkZXItc3R5bGUiOiJkb3VibGUifSwiLmRpdmlkZS1ub25lID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSI6eyJib3JkZXItc3R5bGUiOiJub25lIn19KX0sZGl2aWRlQ29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7ZGl2aWRlOmk9PnQoImRpdmlkZU9wYWNpdHkiKT97WyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSJdOkFlKHtjb2xvcjppLHByb3BlcnR5OiJib3JkZXItY29sb3IiLHZhcmlhYmxlOiItLXR3LWRpdmlkZS1vcGFjaXR5In0pfTp7WyImID4gOm5vdChbaGlkZGVuXSkgfiA6bm90KFtoaWRkZW5dKSJdOnsiYm9yZGVyLWNvbG9yIjpYKGkpfX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiZGl2aWRlQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LGRpdmlkZU9wYWNpdHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJkaXZpZGUtb3BhY2l0eSI6dD0+KHtbIiYgPiA6bm90KFtoaWRkZW5dKSB+IDpub3QoW2hpZGRlbl0pIl06eyItLXR3LWRpdmlkZS1vcGFjaXR5Ijp0fX0pfSx7dmFsdWVzOmUoImRpdmlkZU9wYWNpdHkiKX0pfSxwbGFjZVNlbGY6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5wbGFjZS1zZWxmLWF1dG8iOnsicGxhY2Utc2VsZiI6ImF1dG8ifSwiLnBsYWNlLXNlbGYtc3RhcnQiOnsicGxhY2Utc2VsZiI6InN0YXJ0In0sIi5wbGFjZS1zZWxmLWVuZCI6eyJwbGFjZS1zZWxmIjoiZW5kIn0sIi5wbGFjZS1zZWxmLWNlbnRlciI6eyJwbGFjZS1zZWxmIjoiY2VudGVyIn0sIi5wbGFjZS1zZWxmLXN0cmV0Y2giOnsicGxhY2Utc2VsZiI6InN0cmV0Y2gifX0pfSxhbGlnblNlbGY6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zZWxmLWF1dG8iOnsiYWxpZ24tc2VsZiI6ImF1dG8ifSwiLnNlbGYtc3RhcnQiOnsiYWxpZ24tc2VsZiI6ImZsZXgtc3RhcnQifSwiLnNlbGYtZW5kIjp7ImFsaWduLXNlbGYiOiJmbGV4LWVuZCJ9LCIuc2VsZi1jZW50ZXIiOnsiYWxpZ24tc2VsZiI6ImNlbnRlciJ9LCIuc2VsZi1zdHJldGNoIjp7ImFsaWduLXNlbGYiOiJzdHJldGNoIn0sIi5zZWxmLWJhc2VsaW5lIjp7ImFsaWduLXNlbGYiOiJiYXNlbGluZSJ9fSl9LGp1c3RpZnlTZWxmOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuanVzdGlmeS1zZWxmLWF1dG8iOnsianVzdGlmeS1zZWxmIjoiYXV0byJ9LCIuanVzdGlmeS1zZWxmLXN0YXJ0Ijp7Imp1c3RpZnktc2VsZiI6InN0YXJ0In0sIi5qdXN0aWZ5LXNlbGYtZW5kIjp7Imp1c3RpZnktc2VsZiI6ImVuZCJ9LCIuanVzdGlmeS1zZWxmLWNlbnRlciI6eyJqdXN0aWZ5LXNlbGYiOiJjZW50ZXIifSwiLmp1c3RpZnktc2VsZi1zdHJldGNoIjp7Imp1c3RpZnktc2VsZiI6InN0cmV0Y2gifX0pfSxvdmVyZmxvdzooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLm92ZXJmbG93LWF1dG8iOntvdmVyZmxvdzoiYXV0byJ9LCIub3ZlcmZsb3ctaGlkZGVuIjp7b3ZlcmZsb3c6ImhpZGRlbiJ9LCIub3ZlcmZsb3ctY2xpcCI6e292ZXJmbG93OiJjbGlwIn0sIi5vdmVyZmxvdy12aXNpYmxlIjp7b3ZlcmZsb3c6InZpc2libGUifSwiLm92ZXJmbG93LXNjcm9sbCI6e292ZXJmbG93OiJzY3JvbGwifSwiLm92ZXJmbG93LXgtYXV0byI6eyJvdmVyZmxvdy14IjoiYXV0byJ9LCIub3ZlcmZsb3cteS1hdXRvIjp7Im92ZXJmbG93LXkiOiJhdXRvIn0sIi5vdmVyZmxvdy14LWhpZGRlbiI6eyJvdmVyZmxvdy14IjoiaGlkZGVuIn0sIi5vdmVyZmxvdy15LWhpZGRlbiI6eyJvdmVyZmxvdy15IjoiaGlkZGVuIn0sIi5vdmVyZmxvdy14LWNsaXAiOnsib3ZlcmZsb3cteCI6ImNsaXAifSwiLm92ZXJmbG93LXktY2xpcCI6eyJvdmVyZmxvdy15IjoiY2xpcCJ9LCIub3ZlcmZsb3cteC12aXNpYmxlIjp7Im92ZXJmbG93LXgiOiJ2aXNpYmxlIn0sIi5vdmVyZmxvdy15LXZpc2libGUiOnsib3ZlcmZsb3cteSI6InZpc2libGUifSwiLm92ZXJmbG93LXgtc2Nyb2xsIjp7Im92ZXJmbG93LXgiOiJzY3JvbGwifSwiLm92ZXJmbG93LXktc2Nyb2xsIjp7Im92ZXJmbG93LXkiOiJzY3JvbGwifX0pfSxvdmVyc2Nyb2xsQmVoYXZpb3I6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5vdmVyc2Nyb2xsLWF1dG8iOnsib3ZlcnNjcm9sbC1iZWhhdmlvciI6ImF1dG8ifSwiLm92ZXJzY3JvbGwtY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yIjoiY29udGFpbiJ9LCIub3ZlcnNjcm9sbC1ub25lIjp7Im92ZXJzY3JvbGwtYmVoYXZpb3IiOiJub25lIn0sIi5vdmVyc2Nyb2xsLXktYXV0byI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJhdXRvIn0sIi5vdmVyc2Nyb2xsLXktY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJjb250YWluIn0sIi5vdmVyc2Nyb2xsLXktbm9uZSI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXkiOiJub25lIn0sIi5vdmVyc2Nyb2xsLXgtYXV0byI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJhdXRvIn0sIi5vdmVyc2Nyb2xsLXgtY29udGFpbiI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJjb250YWluIn0sIi5vdmVyc2Nyb2xsLXgtbm9uZSI6eyJvdmVyc2Nyb2xsLWJlaGF2aW9yLXgiOiJub25lIn19KX0sc2Nyb2xsQmVoYXZpb3I6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5zY3JvbGwtYXV0byI6eyJzY3JvbGwtYmVoYXZpb3IiOiJhdXRvIn0sIi5zY3JvbGwtc21vb3RoIjp7InNjcm9sbC1iZWhhdmlvciI6InNtb290aCJ9fSl9LHRleHRPdmVyZmxvdzooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLnRydW5jYXRlIjp7b3ZlcmZsb3c6ImhpZGRlbiIsInRleHQtb3ZlcmZsb3ciOiJlbGxpcHNpcyIsIndoaXRlLXNwYWNlIjoibm93cmFwIn0sIi5vdmVyZmxvdy1lbGxpcHNpcyI6eyJ0ZXh0LW92ZXJmbG93IjoiZWxsaXBzaXMifSwiLnRleHQtZWxsaXBzaXMiOnsidGV4dC1vdmVyZmxvdyI6ImVsbGlwc2lzIn0sIi50ZXh0LWNsaXAiOnsidGV4dC1vdmVyZmxvdyI6ImNsaXAifX0pfSxoeXBoZW5zOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuaHlwaGVucy1ub25lIjp7aHlwaGVuczoibm9uZSJ9LCIuaHlwaGVucy1tYW51YWwiOntoeXBoZW5zOiJtYW51YWwifSwiLmh5cGhlbnMtYXV0byI6e2h5cGhlbnM6ImF1dG8ifX0pfSx3aGl0ZXNwYWNlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIud2hpdGVzcGFjZS1ub3JtYWwiOnsid2hpdGUtc3BhY2UiOiJub3JtYWwifSwiLndoaXRlc3BhY2Utbm93cmFwIjp7IndoaXRlLXNwYWNlIjoibm93cmFwIn0sIi53aGl0ZXNwYWNlLXByZSI6eyJ3aGl0ZS1zcGFjZSI6InByZSJ9LCIud2hpdGVzcGFjZS1wcmUtbGluZSI6eyJ3aGl0ZS1zcGFjZSI6InByZS1saW5lIn0sIi53aGl0ZXNwYWNlLXByZS13cmFwIjp7IndoaXRlLXNwYWNlIjoicHJlLXdyYXAifSwiLndoaXRlc3BhY2UtYnJlYWstc3BhY2VzIjp7IndoaXRlLXNwYWNlIjoiYnJlYWstc3BhY2VzIn19KX0sdGV4dFdyYXA6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii50ZXh0LXdyYXAiOnsidGV4dC13cmFwIjoid3JhcCJ9LCIudGV4dC1ub3dyYXAiOnsidGV4dC13cmFwIjoibm93cmFwIn0sIi50ZXh0LWJhbGFuY2UiOnsidGV4dC13cmFwIjoiYmFsYW5jZSJ9LCIudGV4dC1wcmV0dHkiOnsidGV4dC13cmFwIjoicHJldHR5In19KX0sd29yZEJyZWFrOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIuYnJlYWstbm9ybWFsIjp7Im92ZXJmbG93LXdyYXAiOiJub3JtYWwiLCJ3b3JkLWJyZWFrIjoibm9ybWFsIn0sIi5icmVhay13b3JkcyI6eyJvdmVyZmxvdy13cmFwIjoiYnJlYWstd29yZCJ9LCIuYnJlYWstYWxsIjp7IndvcmQtYnJlYWsiOiJicmVhay1hbGwifSwiLmJyZWFrLWtlZXAiOnsid29yZC1icmVhayI6ImtlZXAtYWxsIn19KX0sYm9yZGVyUmFkaXVzOkwoImJvcmRlclJhZGl1cyIsW1sicm91bmRlZCIsWyJib3JkZXItcmFkaXVzIl1dLFtbInJvdW5kZWQtcyIsWyJib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzIiwiYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMiXV0sWyJyb3VuZGVkLWUiLFsiYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMiLCJib3JkZXItZW5kLWVuZC1yYWRpdXMiXV0sWyJyb3VuZGVkLXQiLFsiYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyIsImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIl1dLFsicm91bmRlZC1yIixbImJvcmRlci10b3AtcmlnaHQtcmFkaXVzIiwiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXV0sWyJyb3VuZGVkLWIiLFsiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl1dLFsicm91bmRlZC1sIixbImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIl1dXSxbWyJyb3VuZGVkLXNzIixbImJvcmRlci1zdGFydC1zdGFydC1yYWRpdXMiXV0sWyJyb3VuZGVkLXNlIixbImJvcmRlci1zdGFydC1lbmQtcmFkaXVzIl1dLFsicm91bmRlZC1lZSIsWyJib3JkZXItZW5kLWVuZC1yYWRpdXMiXV0sWyJyb3VuZGVkLWVzIixbImJvcmRlci1lbmQtc3RhcnQtcmFkaXVzIl1dLFsicm91bmRlZC10bCIsWyJib3JkZXItdG9wLWxlZnQtcmFkaXVzIl1dLFsicm91bmRlZC10ciIsWyJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyJdXSxbInJvdW5kZWQtYnIiLFsiYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMiXV0sWyJyb3VuZGVkLWJsIixbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiXV1dXSksYm9yZGVyV2lkdGg6TCgiYm9yZGVyV2lkdGgiLFtbImJvcmRlciIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItd2lkdGgiXV0sW1siYm9yZGVyLXgiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmlnaHQtd2lkdGgiXV0sWyJib3JkZXIteSIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItdG9wLXdpZHRoIiwiYm9yZGVyLWJvdHRvbS13aWR0aCJdXV0sW1siYm9yZGVyLXMiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLWlubGluZS1zdGFydC13aWR0aCJdXSxbImJvcmRlci1lIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1pbmxpbmUtZW5kLXdpZHRoIl1dLFsiYm9yZGVyLXQiLFtbIkBkZWZhdWx0cyBib3JkZXItd2lkdGgiLHt9XSwiYm9yZGVyLXRvcC13aWR0aCJdXSxbImJvcmRlci1yIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1yaWdodC13aWR0aCJdXSxbImJvcmRlci1iIixbWyJAZGVmYXVsdHMgYm9yZGVyLXdpZHRoIix7fV0sImJvcmRlci1ib3R0b20td2lkdGgiXV0sWyJib3JkZXItbCIsW1siQGRlZmF1bHRzIGJvcmRlci13aWR0aCIse31dLCJib3JkZXItbGVmdC13aWR0aCJdXV1dLHt0eXBlOlsibGluZS13aWR0aCIsImxlbmd0aCJdfSksYm9yZGVyU3R5bGU6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5ib3JkZXItc29saWQiOnsiYm9yZGVyLXN0eWxlIjoic29saWQifSwiLmJvcmRlci1kYXNoZWQiOnsiYm9yZGVyLXN0eWxlIjoiZGFzaGVkIn0sIi5ib3JkZXItZG90dGVkIjp7ImJvcmRlci1zdHlsZSI6ImRvdHRlZCJ9LCIuYm9yZGVyLWRvdWJsZSI6eyJib3JkZXItc3R5bGUiOiJkb3VibGUifSwiLmJvcmRlci1oaWRkZW4iOnsiYm9yZGVyLXN0eWxlIjoiaGlkZGVuIn0sIi5ib3JkZXItbm9uZSI6eyJib3JkZXItc3R5bGUiOiJub25lIn19KX0sYm9yZGVyQ29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7Ym9yZGVyOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1jb2xvciI6WChpKX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiYm9yZGVyQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSkscih7ImJvcmRlci14IjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6WyJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1yaWdodC1jb2xvciJdLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWxlZnQtY29sb3IiOlgoaSksImJvcmRlci1yaWdodC1jb2xvciI6WChpKX0sImJvcmRlci15IjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6WyJib3JkZXItdG9wLWNvbG9yIiwiYm9yZGVyLWJvdHRvbS1jb2xvciJdLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLXRvcC1jb2xvciI6WChpKSwiYm9yZGVyLWJvdHRvbS1jb2xvciI6WChpKX19LHt2YWx1ZXM6KCh7REVGQVVMVDppLC4uLm59KT0+bikoeGUoZSgiYm9yZGVyQ29sb3IiKSkpLHR5cGU6WyJjb2xvciIsImFueSJdfSkscih7ImJvcmRlci1zIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1pbmxpbmUtc3RhcnQtY29sb3IiLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWlubGluZS1zdGFydC1jb2xvciI6WChpKX0sImJvcmRlci1lIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1pbmxpbmUtZW5kLWNvbG9yIjpYKGkpfSwiYm9yZGVyLXQiOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLXRvcC1jb2xvciIsdmFyaWFibGU6Ii0tdHctYm9yZGVyLW9wYWNpdHkifSk6eyJib3JkZXItdG9wLWNvbG9yIjpYKGkpfSwiYm9yZGVyLXIiOmk9PnQoImJvcmRlck9wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiYm9yZGVyLXJpZ2h0LWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1yaWdodC1jb2xvciI6WChpKX0sImJvcmRlci1iIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1ib3R0b20tY29sb3IiLHZhcmlhYmxlOiItLXR3LWJvcmRlci1vcGFjaXR5In0pOnsiYm9yZGVyLWJvdHRvbS1jb2xvciI6WChpKX0sImJvcmRlci1sIjppPT50KCJib3JkZXJPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJvcmRlci1sZWZ0LWNvbG9yIix2YXJpYWJsZToiLS10dy1ib3JkZXItb3BhY2l0eSJ9KTp7ImJvcmRlci1sZWZ0LWNvbG9yIjpYKGkpfX0se3ZhbHVlczooKHtERUZBVUxUOmksLi4ubn0pPT5uKSh4ZShlKCJib3JkZXJDb2xvciIpKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYm9yZGVyT3BhY2l0eTpMKCJib3JkZXJPcGFjaXR5IixbWyJib3JkZXItb3BhY2l0eSIsWyItLXR3LWJvcmRlci1vcGFjaXR5Il1dXSksYmFja2dyb3VuZENvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe2JnOmk9PnQoImJhY2tncm91bmRPcGFjaXR5Iik/QWUoe2NvbG9yOmkscHJvcGVydHk6ImJhY2tncm91bmQtY29sb3IiLHZhcmlhYmxlOiItLXR3LWJnLW9wYWNpdHkifSk6eyJiYWNrZ3JvdW5kLWNvbG9yIjpYKGkpfX0se3ZhbHVlczp4ZShlKCJiYWNrZ3JvdW5kQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYmFja2dyb3VuZE9wYWNpdHk6TCgiYmFja2dyb3VuZE9wYWNpdHkiLFtbImJnLW9wYWNpdHkiLFsiLS10dy1iZy1vcGFjaXR5Il1dXSksYmFja2dyb3VuZEltYWdlOkwoImJhY2tncm91bmRJbWFnZSIsW1siYmciLFsiYmFja2dyb3VuZC1pbWFnZSJdXV0se3R5cGU6WyJsb29rdXAiLCJpbWFnZSIsInVybCJdfSksZ3JhZGllbnRDb2xvclN0b3BzOigoKT0+e2Z1bmN0aW9uIHIoZSl7cmV0dXJuIEplKGUsMCwicmdiKDI1NSAyNTUgMjU1IC8gMCkiKX1yZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOmUsdGhlbWU6dCxhZGREZWZhdWx0czppfSl7aSgiZ3JhZGllbnQtY29sb3Itc3RvcHMiLHsiLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uIjoiICIsIi0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uIjoiICIsIi0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24iOiIgIn0pO2xldCBuPXt2YWx1ZXM6eGUodCgiZ3JhZGllbnRDb2xvclN0b3BzIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSxzPXt2YWx1ZXM6dCgiZ3JhZGllbnRDb2xvclN0b3BQb3NpdGlvbnMiKSx0eXBlOlsibGVuZ3RoIiwicGVyY2VudGFnZSJdfTtlKHtmcm9tOmE9PntsZXQgbz1yKGEpO3JldHVybnsiQGRlZmF1bHRzIGdyYWRpZW50LWNvbG9yLXN0b3BzIjp7fSwiLS10dy1ncmFkaWVudC1mcm9tIjpgJHtYKGEpfSB2YXIoLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uKWAsIi0tdHctZ3JhZGllbnQtdG8iOmAke299IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKWAsIi0tdHctZ3JhZGllbnQtc3RvcHMiOiJ2YXIoLS10dy1ncmFkaWVudC1mcm9tKSwgdmFyKC0tdHctZ3JhZGllbnQtdG8pIn19fSxuKSxlKHtmcm9tOmE9Pih7Ii0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbiI6YX0pfSxzKSxlKHt2aWE6YT0+e2xldCBvPXIoYSk7cmV0dXJueyJAZGVmYXVsdHMgZ3JhZGllbnQtY29sb3Itc3RvcHMiOnt9LCItLXR3LWdyYWRpZW50LXRvIjpgJHtvfSAgdmFyKC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb24pYCwiLS10dy1ncmFkaWVudC1zdG9wcyI6YHZhcigtLXR3LWdyYWRpZW50LWZyb20pLCAke1goYSl9IHZhcigtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbiksIHZhcigtLXR3LWdyYWRpZW50LXRvKWB9fX0sbiksZSh7dmlhOmE9Pih7Ii0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uIjphfSl9LHMpLGUoe3RvOmE9Pih7IkBkZWZhdWx0cyBncmFkaWVudC1jb2xvci1zdG9wcyI6e30sIi0tdHctZ3JhZGllbnQtdG8iOmAke1goYSl9IHZhcigtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uKWB9KX0sbiksZSh7dG86YT0+KHsiLS10dy1ncmFkaWVudC10by1wb3NpdGlvbiI6YX0pfSxzKX19KSgpLGJveERlY29yYXRpb25CcmVhazooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRlY29yYXRpb24tc2xpY2UiOnsiYm94LWRlY29yYXRpb24tYnJlYWsiOiJzbGljZSJ9LCIuZGVjb3JhdGlvbi1jbG9uZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6ImNsb25lIn0sIi5ib3gtZGVjb3JhdGlvbi1zbGljZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6InNsaWNlIn0sIi5ib3gtZGVjb3JhdGlvbi1jbG9uZSI6eyJib3gtZGVjb3JhdGlvbi1icmVhayI6ImNsb25lIn19KX0sYmFja2dyb3VuZFNpemU6TCgiYmFja2dyb3VuZFNpemUiLFtbImJnIixbImJhY2tncm91bmQtc2l6ZSJdXV0se3R5cGU6WyJsb29rdXAiLCJsZW5ndGgiLCJwZXJjZW50YWdlIiwic2l6ZSJdfSksYmFja2dyb3VuZEF0dGFjaG1lbnQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5iZy1maXhlZCI6eyJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiJmaXhlZCJ9LCIuYmctbG9jYWwiOnsiYmFja2dyb3VuZC1hdHRhY2htZW50IjoibG9jYWwifSwiLmJnLXNjcm9sbCI6eyJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiJzY3JvbGwifX0pfSxiYWNrZ3JvdW5kQ2xpcDooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLWNsaXAtYm9yZGVyIjp7ImJhY2tncm91bmQtY2xpcCI6ImJvcmRlci1ib3gifSwiLmJnLWNsaXAtcGFkZGluZyI6eyJiYWNrZ3JvdW5kLWNsaXAiOiJwYWRkaW5nLWJveCJ9LCIuYmctY2xpcC1jb250ZW50Ijp7ImJhY2tncm91bmQtY2xpcCI6ImNvbnRlbnQtYm94In0sIi5iZy1jbGlwLXRleHQiOnsiYmFja2dyb3VuZC1jbGlwIjoidGV4dCJ9fSl9LGJhY2tncm91bmRQb3NpdGlvbjpMKCJiYWNrZ3JvdW5kUG9zaXRpb24iLFtbImJnIixbImJhY2tncm91bmQtcG9zaXRpb24iXV1dLHt0eXBlOlsibG9va3VwIixbInBvc2l0aW9uIix7cHJlZmVyT25Db25mbGljdDohMH1dXX0pLGJhY2tncm91bmRSZXBlYXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5iZy1yZXBlYXQiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQifSwiLmJnLW5vLXJlcGVhdCI6eyJiYWNrZ3JvdW5kLXJlcGVhdCI6Im5vLXJlcGVhdCJ9LCIuYmctcmVwZWF0LXgiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQteCJ9LCIuYmctcmVwZWF0LXkiOnsiYmFja2dyb3VuZC1yZXBlYXQiOiJyZXBlYXQteSJ9LCIuYmctcmVwZWF0LXJvdW5kIjp7ImJhY2tncm91bmQtcmVwZWF0Ijoicm91bmQifSwiLmJnLXJlcGVhdC1zcGFjZSI6eyJiYWNrZ3JvdW5kLXJlcGVhdCI6InNwYWNlIn19KX0sYmFja2dyb3VuZE9yaWdpbjooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLW9yaWdpbi1ib3JkZXIiOnsiYmFja2dyb3VuZC1vcmlnaW4iOiJib3JkZXItYm94In0sIi5iZy1vcmlnaW4tcGFkZGluZyI6eyJiYWNrZ3JvdW5kLW9yaWdpbiI6InBhZGRpbmctYm94In0sIi5iZy1vcmlnaW4tY29udGVudCI6eyJiYWNrZ3JvdW5kLW9yaWdpbiI6ImNvbnRlbnQtYm94In19KX0sZmlsbDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ZmlsbDp0PT4oe2ZpbGw6WCh0KX0pfSx7dmFsdWVzOnhlKGUoImZpbGwiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sc3Ryb2tlOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtzdHJva2U6dD0+KHtzdHJva2U6WCh0KX0pfSx7dmFsdWVzOnhlKGUoInN0cm9rZSIpKSx0eXBlOlsiY29sb3IiLCJ1cmwiLCJhbnkiXX0pfSxzdHJva2VXaWR0aDpMKCJzdHJva2VXaWR0aCIsW1sic3Ryb2tlIixbInN0cm9rZS13aWR0aCJdXV0se3R5cGU6WyJsZW5ndGgiLCJudW1iZXIiLCJwZXJjZW50YWdlIl19KSxvYmplY3RGaXQ6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5vYmplY3QtY29udGFpbiI6eyJvYmplY3QtZml0IjoiY29udGFpbiJ9LCIub2JqZWN0LWNvdmVyIjp7Im9iamVjdC1maXQiOiJjb3ZlciJ9LCIub2JqZWN0LWZpbGwiOnsib2JqZWN0LWZpdCI6ImZpbGwifSwiLm9iamVjdC1ub25lIjp7Im9iamVjdC1maXQiOiJub25lIn0sIi5vYmplY3Qtc2NhbGUtZG93biI6eyJvYmplY3QtZml0Ijoic2NhbGUtZG93biJ9fSl9LG9iamVjdFBvc2l0aW9uOkwoIm9iamVjdFBvc2l0aW9uIixbWyJvYmplY3QiLFsib2JqZWN0LXBvc2l0aW9uIl1dXSkscGFkZGluZzpMKCJwYWRkaW5nIixbWyJwIixbInBhZGRpbmciXV0sW1sicHgiLFsicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCJdXSxbInB5IixbInBhZGRpbmctdG9wIiwicGFkZGluZy1ib3R0b20iXV1dLFtbInBzIixbInBhZGRpbmctaW5saW5lLXN0YXJ0Il1dLFsicGUiLFsicGFkZGluZy1pbmxpbmUtZW5kIl1dLFsicHQiLFsicGFkZGluZy10b3AiXV0sWyJwciIsWyJwYWRkaW5nLXJpZ2h0Il1dLFsicGIiLFsicGFkZGluZy1ib3R0b20iXV0sWyJwbCIsWyJwYWRkaW5nLWxlZnQiXV1dXSksdGV4dEFsaWduOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIudGV4dC1sZWZ0Ijp7InRleHQtYWxpZ24iOiJsZWZ0In0sIi50ZXh0LWNlbnRlciI6eyJ0ZXh0LWFsaWduIjoiY2VudGVyIn0sIi50ZXh0LXJpZ2h0Ijp7InRleHQtYWxpZ24iOiJyaWdodCJ9LCIudGV4dC1qdXN0aWZ5Ijp7InRleHQtYWxpZ24iOiJqdXN0aWZ5In0sIi50ZXh0LXN0YXJ0Ijp7InRleHQtYWxpZ24iOiJzdGFydCJ9LCIudGV4dC1lbmQiOnsidGV4dC1hbGlnbiI6ImVuZCJ9fSl9LHRleHRJbmRlbnQ6TCgidGV4dEluZGVudCIsW1siaW5kZW50IixbInRleHQtaW5kZW50Il1dXSx7c3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pLHZlcnRpY2FsQWxpZ246KHthZGRVdGlsaXRpZXM6cixtYXRjaFV0aWxpdGllczplfSk9PntyKHsiLmFsaWduLWJhc2VsaW5lIjp7InZlcnRpY2FsLWFsaWduIjoiYmFzZWxpbmUifSwiLmFsaWduLXRvcCI6eyJ2ZXJ0aWNhbC1hbGlnbiI6InRvcCJ9LCIuYWxpZ24tbWlkZGxlIjp7InZlcnRpY2FsLWFsaWduIjoibWlkZGxlIn0sIi5hbGlnbi1ib3R0b20iOnsidmVydGljYWwtYWxpZ24iOiJib3R0b20ifSwiLmFsaWduLXRleHQtdG9wIjp7InZlcnRpY2FsLWFsaWduIjoidGV4dC10b3AifSwiLmFsaWduLXRleHQtYm90dG9tIjp7InZlcnRpY2FsLWFsaWduIjoidGV4dC1ib3R0b20ifSwiLmFsaWduLXN1YiI6eyJ2ZXJ0aWNhbC1hbGlnbiI6InN1YiJ9LCIuYWxpZ24tc3VwZXIiOnsidmVydGljYWwtYWxpZ24iOiJzdXBlciJ9fSksZSh7YWxpZ246dD0+KHsidmVydGljYWwtYWxpZ24iOnR9KX0pfSxmb250RmFtaWx5Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtmb250OnQ9PntsZXRbaSxuPXt9XT1BcnJheS5pc0FycmF5KHQpJiZrZSh0WzFdKT90Olt0XSx7Zm9udEZlYXR1cmVTZXR0aW5nczpzLGZvbnRWYXJpYXRpb25TZXR0aW5nczphfT1uO3JldHVybnsiZm9udC1mYW1pbHkiOkFycmF5LmlzQXJyYXkoaSk/aS5qb2luKCIsICIpOmksLi4ucz09PXZvaWQgMD97fTp7ImZvbnQtZmVhdHVyZS1zZXR0aW5ncyI6c30sLi4uYT09PXZvaWQgMD97fTp7ImZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIjphfX19fSx7dmFsdWVzOmUoImZvbnRGYW1pbHkiKSx0eXBlOlsibG9va3VwIiwiZ2VuZXJpYy1uYW1lIiwiZmFtaWx5LW5hbWUiXX0pfSxmb250U2l6ZTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7dGV4dDoodCx7bW9kaWZpZXI6aX0pPT57bGV0W24sc109QXJyYXkuaXNBcnJheSh0KT90Olt0XTtpZihpKXJldHVybnsiZm9udC1zaXplIjpuLCJsaW5lLWhlaWdodCI6aX07bGV0e2xpbmVIZWlnaHQ6YSxsZXR0ZXJTcGFjaW5nOm8sZm9udFdlaWdodDpsfT1rZShzKT9zOntsaW5lSGVpZ2h0OnN9O3JldHVybnsiZm9udC1zaXplIjpuLC4uLmE9PT12b2lkIDA/e306eyJsaW5lLWhlaWdodCI6YX0sLi4ubz09PXZvaWQgMD97fTp7ImxldHRlci1zcGFjaW5nIjpvfSwuLi5sPT09dm9pZCAwP3t9OnsiZm9udC13ZWlnaHQiOmx9fX19LHt2YWx1ZXM6ZSgiZm9udFNpemUiKSxtb2RpZmllcnM6ZSgibGluZUhlaWdodCIpLHR5cGU6WyJhYnNvbHV0ZS1zaXplIiwicmVsYXRpdmUtc2l6ZSIsImxlbmd0aCIsInBlcmNlbnRhZ2UiXX0pfSxmb250V2VpZ2h0OkwoImZvbnRXZWlnaHQiLFtbImZvbnQiLFsiZm9udFdlaWdodCJdXV0se3R5cGU6WyJsb29rdXAiLCJudW1iZXIiLCJhbnkiXX0pLHRleHRUcmFuc2Zvcm06KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii51cHBlcmNhc2UiOnsidGV4dC10cmFuc2Zvcm0iOiJ1cHBlcmNhc2UifSwiLmxvd2VyY2FzZSI6eyJ0ZXh0LXRyYW5zZm9ybSI6Imxvd2VyY2FzZSJ9LCIuY2FwaXRhbGl6ZSI6eyJ0ZXh0LXRyYW5zZm9ybSI6ImNhcGl0YWxpemUifSwiLm5vcm1hbC1jYXNlIjp7InRleHQtdHJhbnNmb3JtIjoibm9uZSJ9fSl9LGZvbnRTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLml0YWxpYyI6eyJmb250LXN0eWxlIjoiaXRhbGljIn0sIi5ub3QtaXRhbGljIjp7ImZvbnQtc3R5bGUiOiJub3JtYWwifX0pfSxmb250VmFyaWFudE51bWVyaWM6KHthZGREZWZhdWx0czpyLGFkZFV0aWxpdGllczplfSk9PntsZXQgdD0idmFyKC0tdHctb3JkaW5hbCkgdmFyKC0tdHctc2xhc2hlZC16ZXJvKSB2YXIoLS10dy1udW1lcmljLWZpZ3VyZSkgdmFyKC0tdHctbnVtZXJpYy1zcGFjaW5nKSB2YXIoLS10dy1udW1lcmljLWZyYWN0aW9uKSI7cigiZm9udC12YXJpYW50LW51bWVyaWMiLHsiLS10dy1vcmRpbmFsIjoiICIsIi0tdHctc2xhc2hlZC16ZXJvIjoiICIsIi0tdHctbnVtZXJpYy1maWd1cmUiOiIgIiwiLS10dy1udW1lcmljLXNwYWNpbmciOiIgIiwiLS10dy1udW1lcmljLWZyYWN0aW9uIjoiICJ9KSxlKHsiLm5vcm1hbC1udW1zIjp7ImZvbnQtdmFyaWFudC1udW1lcmljIjoibm9ybWFsIn0sIi5vcmRpbmFsIjp7IkBkZWZhdWx0cyBmb250LXZhcmlhbnQtbnVtZXJpYyI6e30sIi0tdHctb3JkaW5hbCI6Im9yZGluYWwiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5zbGFzaGVkLXplcm8iOnsiQGRlZmF1bHRzIGZvbnQtdmFyaWFudC1udW1lcmljIjp7fSwiLS10dy1zbGFzaGVkLXplcm8iOiJzbGFzaGVkLXplcm8iLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5saW5pbmctbnVtcyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZmlndXJlIjoibGluaW5nLW51bXMiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5vbGRzdHlsZS1udW1zIjp7IkBkZWZhdWx0cyBmb250LXZhcmlhbnQtbnVtZXJpYyI6e30sIi0tdHctbnVtZXJpYy1maWd1cmUiOiJvbGRzdHlsZS1udW1zIiwiZm9udC12YXJpYW50LW51bWVyaWMiOnR9LCIucHJvcG9ydGlvbmFsLW51bXMiOnsiQGRlZmF1bHRzIGZvbnQtdmFyaWFudC1udW1lcmljIjp7fSwiLS10dy1udW1lcmljLXNwYWNpbmciOiJwcm9wb3J0aW9uYWwtbnVtcyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fSwiLnRhYnVsYXItbnVtcyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtc3BhY2luZyI6InRhYnVsYXItbnVtcyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fSwiLmRpYWdvbmFsLWZyYWN0aW9ucyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZnJhY3Rpb24iOiJkaWFnb25hbC1mcmFjdGlvbnMiLCJmb250LXZhcmlhbnQtbnVtZXJpYyI6dH0sIi5zdGFja2VkLWZyYWN0aW9ucyI6eyJAZGVmYXVsdHMgZm9udC12YXJpYW50LW51bWVyaWMiOnt9LCItLXR3LW51bWVyaWMtZnJhY3Rpb24iOiJzdGFja2VkLWZyYWN0aW9ucyIsImZvbnQtdmFyaWFudC1udW1lcmljIjp0fX0pfSxsaW5lSGVpZ2h0OkwoImxpbmVIZWlnaHQiLFtbImxlYWRpbmciLFsibGluZUhlaWdodCJdXV0pLGxldHRlclNwYWNpbmc6TCgibGV0dGVyU3BhY2luZyIsW1sidHJhY2tpbmciLFsibGV0dGVyU3BhY2luZyJdXV0se3N1cHBvcnRzTmVnYXRpdmVWYWx1ZXM6ITB9KSx0ZXh0Q29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmUsY29yZVBsdWdpbnM6dH0pPT57cih7dGV4dDppPT50KCJ0ZXh0T3BhY2l0eSIpP0FlKHtjb2xvcjppLHByb3BlcnR5OiJjb2xvciIsdmFyaWFibGU6Ii0tdHctdGV4dC1vcGFjaXR5In0pOntjb2xvcjpYKGkpfX0se3ZhbHVlczp4ZShlKCJ0ZXh0Q29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sdGV4dE9wYWNpdHk6TCgidGV4dE9wYWNpdHkiLFtbInRleHQtb3BhY2l0eSIsWyItLXR3LXRleHQtb3BhY2l0eSJdXV0pLHRleHREZWNvcmF0aW9uOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIudW5kZXJsaW5lIjp7InRleHQtZGVjb3JhdGlvbi1saW5lIjoidW5kZXJsaW5lIn0sIi5vdmVybGluZSI6eyJ0ZXh0LWRlY29yYXRpb24tbGluZSI6Im92ZXJsaW5lIn0sIi5saW5lLXRocm91Z2giOnsidGV4dC1kZWNvcmF0aW9uLWxpbmUiOiJsaW5lLXRocm91Z2gifSwiLm5vLXVuZGVybGluZSI6eyJ0ZXh0LWRlY29yYXRpb24tbGluZSI6Im5vbmUifX0pfSx0ZXh0RGVjb3JhdGlvbkNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtkZWNvcmF0aW9uOnQ9Pih7InRleHQtZGVjb3JhdGlvbi1jb2xvciI6WCh0KX0pfSx7dmFsdWVzOnhlKGUoInRleHREZWNvcmF0aW9uQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sdGV4dERlY29yYXRpb25TdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmRlY29yYXRpb24tc29saWQiOnsidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjoic29saWQifSwiLmRlY29yYXRpb24tZG91YmxlIjp7InRleHQtZGVjb3JhdGlvbi1zdHlsZSI6ImRvdWJsZSJ9LCIuZGVjb3JhdGlvbi1kb3R0ZWQiOnsidGV4dC1kZWNvcmF0aW9uLXN0eWxlIjoiZG90dGVkIn0sIi5kZWNvcmF0aW9uLWRhc2hlZCI6eyJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOiJkYXNoZWQifSwiLmRlY29yYXRpb24td2F2eSI6eyJ0ZXh0LWRlY29yYXRpb24tc3R5bGUiOiJ3YXZ5In19KX0sdGV4dERlY29yYXRpb25UaGlja25lc3M6TCgidGV4dERlY29yYXRpb25UaGlja25lc3MiLFtbImRlY29yYXRpb24iLFsidGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcyJdXV0se3R5cGU6WyJsZW5ndGgiLCJwZXJjZW50YWdlIl19KSx0ZXh0VW5kZXJsaW5lT2Zmc2V0OkwoInRleHRVbmRlcmxpbmVPZmZzZXQiLFtbInVuZGVybGluZS1vZmZzZXQiLFsidGV4dC11bmRlcmxpbmUtb2Zmc2V0Il1dXSx7dHlwZTpbImxlbmd0aCIsInBlcmNlbnRhZ2UiLCJhbnkiXX0pLGZvbnRTbW9vdGhpbmc6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5hbnRpYWxpYXNlZCI6eyItd2Via2l0LWZvbnQtc21vb3RoaW5nIjoiYW50aWFsaWFzZWQiLCItbW96LW9zeC1mb250LXNtb290aGluZyI6ImdyYXlzY2FsZSJ9LCIuc3VicGl4ZWwtYW50aWFsaWFzZWQiOnsiLXdlYmtpdC1mb250LXNtb290aGluZyI6ImF1dG8iLCItbW96LW9zeC1mb250LXNtb290aGluZyI6ImF1dG8ifX0pfSxwbGFjZWhvbGRlckNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe3BsYWNlaG9sZGVyOmk9PnQoInBsYWNlaG9sZGVyT3BhY2l0eSIpP3siJjo6cGxhY2Vob2xkZXIiOkFlKHtjb2xvcjppLHByb3BlcnR5OiJjb2xvciIsdmFyaWFibGU6Ii0tdHctcGxhY2Vob2xkZXItb3BhY2l0eSJ9KX06eyImOjpwbGFjZWhvbGRlciI6e2NvbG9yOlgoaSl9fX0se3ZhbHVlczp4ZShlKCJwbGFjZWhvbGRlckNvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LHBsYWNlaG9sZGVyT3BhY2l0eTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7InBsYWNlaG9sZGVyLW9wYWNpdHkiOnQ9Pih7WyImOjpwbGFjZWhvbGRlciJdOnsiLS10dy1wbGFjZWhvbGRlci1vcGFjaXR5Ijp0fX0pfSx7dmFsdWVzOmUoInBsYWNlaG9sZGVyT3BhY2l0eSIpfSl9LGNhcmV0Q29sb3I6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2NhcmV0OnQ9Pih7ImNhcmV0LWNvbG9yIjpYKHQpfSl9LHt2YWx1ZXM6eGUoZSgiY2FyZXRDb2xvciIpKSx0eXBlOlsiY29sb3IiLCJhbnkiXX0pfSxhY2NlbnRDb2xvcjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7YWNjZW50OnQ9Pih7ImFjY2VudC1jb2xvciI6WCh0KX0pfSx7dmFsdWVzOnhlKGUoImFjY2VudENvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LG9wYWNpdHk6TCgib3BhY2l0eSIsW1sib3BhY2l0eSIsWyJvcGFjaXR5Il1dXSksYmFja2dyb3VuZEJsZW5kTW9kZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLmJnLWJsZW5kLW5vcm1hbCI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJub3JtYWwifSwiLmJnLWJsZW5kLW11bHRpcGx5Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Im11bHRpcGx5In0sIi5iZy1ibGVuZC1zY3JlZW4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoic2NyZWVuIn0sIi5iZy1ibGVuZC1vdmVybGF5Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Im92ZXJsYXkifSwiLmJnLWJsZW5kLWRhcmtlbiI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJkYXJrZW4ifSwiLmJnLWJsZW5kLWxpZ2h0ZW4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoibGlnaHRlbiJ9LCIuYmctYmxlbmQtY29sb3ItZG9kZ2UiOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiY29sb3ItZG9kZ2UifSwiLmJnLWJsZW5kLWNvbG9yLWJ1cm4iOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiY29sb3ItYnVybiJ9LCIuYmctYmxlbmQtaGFyZC1saWdodCI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJoYXJkLWxpZ2h0In0sIi5iZy1ibGVuZC1zb2Z0LWxpZ2h0Ijp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6InNvZnQtbGlnaHQifSwiLmJnLWJsZW5kLWRpZmZlcmVuY2UiOnsiYmFja2dyb3VuZC1ibGVuZC1tb2RlIjoiZGlmZmVyZW5jZSJ9LCIuYmctYmxlbmQtZXhjbHVzaW9uIjp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6ImV4Y2x1c2lvbiJ9LCIuYmctYmxlbmQtaHVlIjp7ImJhY2tncm91bmQtYmxlbmQtbW9kZSI6Imh1ZSJ9LCIuYmctYmxlbmQtc2F0dXJhdGlvbiI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJzYXR1cmF0aW9uIn0sIi5iZy1ibGVuZC1jb2xvciI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJjb2xvciJ9LCIuYmctYmxlbmQtbHVtaW5vc2l0eSI6eyJiYWNrZ3JvdW5kLWJsZW5kLW1vZGUiOiJsdW1pbm9zaXR5In19KX0sbWl4QmxlbmRNb2RlOih7YWRkVXRpbGl0aWVzOnJ9KT0+e3IoeyIubWl4LWJsZW5kLW5vcm1hbCI6eyJtaXgtYmxlbmQtbW9kZSI6Im5vcm1hbCJ9LCIubWl4LWJsZW5kLW11bHRpcGx5Ijp7Im1peC1ibGVuZC1tb2RlIjoibXVsdGlwbHkifSwiLm1peC1ibGVuZC1zY3JlZW4iOnsibWl4LWJsZW5kLW1vZGUiOiJzY3JlZW4ifSwiLm1peC1ibGVuZC1vdmVybGF5Ijp7Im1peC1ibGVuZC1tb2RlIjoib3ZlcmxheSJ9LCIubWl4LWJsZW5kLWRhcmtlbiI6eyJtaXgtYmxlbmQtbW9kZSI6ImRhcmtlbiJ9LCIubWl4LWJsZW5kLWxpZ2h0ZW4iOnsibWl4LWJsZW5kLW1vZGUiOiJsaWdodGVuIn0sIi5taXgtYmxlbmQtY29sb3ItZG9kZ2UiOnsibWl4LWJsZW5kLW1vZGUiOiJjb2xvci1kb2RnZSJ9LCIubWl4LWJsZW5kLWNvbG9yLWJ1cm4iOnsibWl4LWJsZW5kLW1vZGUiOiJjb2xvci1idXJuIn0sIi5taXgtYmxlbmQtaGFyZC1saWdodCI6eyJtaXgtYmxlbmQtbW9kZSI6ImhhcmQtbGlnaHQifSwiLm1peC1ibGVuZC1zb2Z0LWxpZ2h0Ijp7Im1peC1ibGVuZC1tb2RlIjoic29mdC1saWdodCJ9LCIubWl4LWJsZW5kLWRpZmZlcmVuY2UiOnsibWl4LWJsZW5kLW1vZGUiOiJkaWZmZXJlbmNlIn0sIi5taXgtYmxlbmQtZXhjbHVzaW9uIjp7Im1peC1ibGVuZC1tb2RlIjoiZXhjbHVzaW9uIn0sIi5taXgtYmxlbmQtaHVlIjp7Im1peC1ibGVuZC1tb2RlIjoiaHVlIn0sIi5taXgtYmxlbmQtc2F0dXJhdGlvbiI6eyJtaXgtYmxlbmQtbW9kZSI6InNhdHVyYXRpb24ifSwiLm1peC1ibGVuZC1jb2xvciI6eyJtaXgtYmxlbmQtbW9kZSI6ImNvbG9yIn0sIi5taXgtYmxlbmQtbHVtaW5vc2l0eSI6eyJtaXgtYmxlbmQtbW9kZSI6Imx1bWlub3NpdHkifSwiLm1peC1ibGVuZC1wbHVzLWRhcmtlciI6eyJtaXgtYmxlbmQtbW9kZSI6InBsdXMtZGFya2VyIn0sIi5taXgtYmxlbmQtcGx1cy1saWdodGVyIjp7Im1peC1ibGVuZC1tb2RlIjoicGx1cy1saWdodGVyIn19KX0sYm94U2hhZG93OigoKT0+e2xldCByPW10KCJib3hTaGFkb3ciKSxlPVsidmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LCAwIDAgIzAwMDApIiwidmFyKC0tdHctcmluZy1zaGFkb3csIDAgMCAjMDAwMCkiLCJ2YXIoLS10dy1zaGFkb3cpIl0uam9pbigiLCAiKTtyZXR1cm4gZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnQsYWRkRGVmYXVsdHM6aSx0aGVtZTpufSl7aSgiYm94LXNoYWRvdyIseyItLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctcmluZy1zaGFkb3ciOiIwIDAgIzAwMDAiLCItLXR3LXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctc2hhZG93LWNvbG9yZWQiOiIwIDAgIzAwMDAifSksdCh7c2hhZG93OnM9PntzPXIocyk7bGV0IGE9ZW4ocyk7Zm9yKGxldCBvIG9mIGEpIW8udmFsaWR8fChvLmNvbG9yPSJ2YXIoLS10dy1zaGFkb3ctY29sb3IpIik7cmV0dXJueyJAZGVmYXVsdHMgYm94LXNoYWRvdyI6e30sIi0tdHctc2hhZG93IjpzPT09Im5vbmUiPyIwIDAgIzAwMDAiOnMsIi0tdHctc2hhZG93LWNvbG9yZWQiOnM9PT0ibm9uZSI/IjAgMCAjMDAwMCI6TGYoYSksImJveC1zaGFkb3ciOmV9fX0se3ZhbHVlczpuKCJib3hTaGFkb3ciKSx0eXBlOlsic2hhZG93Il19KX19KSgpLGJveFNoYWRvd0NvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtzaGFkb3c6dD0+KHsiLS10dy1zaGFkb3ctY29sb3IiOlgodCksIi0tdHctc2hhZG93IjoidmFyKC0tdHctc2hhZG93LWNvbG9yZWQpIn0pfSx7dmFsdWVzOnhlKGUoImJveFNoYWRvd0NvbG9yIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LG91dGxpbmVTdHlsZTooe2FkZFV0aWxpdGllczpyfSk9PntyKHsiLm91dGxpbmUtbm9uZSI6e291dGxpbmU6IjJweCBzb2xpZCB0cmFuc3BhcmVudCIsIm91dGxpbmUtb2Zmc2V0IjoiMnB4In0sIi5vdXRsaW5lIjp7Im91dGxpbmUtc3R5bGUiOiJzb2xpZCJ9LCIub3V0bGluZS1kYXNoZWQiOnsib3V0bGluZS1zdHlsZSI6ImRhc2hlZCJ9LCIub3V0bGluZS1kb3R0ZWQiOnsib3V0bGluZS1zdHlsZSI6ImRvdHRlZCJ9LCIub3V0bGluZS1kb3VibGUiOnsib3V0bGluZS1zdHlsZSI6ImRvdWJsZSJ9fSl9LG91dGxpbmVXaWR0aDpMKCJvdXRsaW5lV2lkdGgiLFtbIm91dGxpbmUiLFsib3V0bGluZS13aWR0aCJdXV0se3R5cGU6WyJsZW5ndGgiLCJudW1iZXIiLCJwZXJjZW50YWdlIl19KSxvdXRsaW5lT2Zmc2V0OkwoIm91dGxpbmVPZmZzZXQiLFtbIm91dGxpbmUtb2Zmc2V0IixbIm91dGxpbmUtb2Zmc2V0Il1dXSx7dHlwZTpbImxlbmd0aCIsIm51bWJlciIsInBlcmNlbnRhZ2UiLCJhbnkiXSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSksb3V0bGluZUNvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHtvdXRsaW5lOnQ9Pih7Im91dGxpbmUtY29sb3IiOlgodCl9KX0se3ZhbHVlczp4ZShlKCJvdXRsaW5lQ29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0scmluZ1dpZHRoOih7bWF0Y2hVdGlsaXRpZXM6cixhZGREZWZhdWx0czplLGFkZFV0aWxpdGllczp0LHRoZW1lOmksY29uZmlnOm59KT0+e2xldCBzPSgoKT0+e2lmKHdlKG4oKSwicmVzcGVjdERlZmF1bHRSaW5nQ29sb3JPcGFjaXR5IikpcmV0dXJuIGkoInJpbmdDb2xvci5ERUZBVUxUIik7bGV0IGE9aSgicmluZ09wYWNpdHkuREVGQVVMVCIsIjAuNSIpO3JldHVybiBpKCJyaW5nQ29sb3IiKT8uREVGQVVMVD9KZShpKCJyaW5nQ29sb3IiKT8uREVGQVVMVCxhLGByZ2IoMTQ3IDE5NyAyNTMgLyAke2F9KWApOmByZ2IoMTQ3IDE5NyAyNTMgLyAke2F9KWB9KSgpO2UoInJpbmctd2lkdGgiLHsiLS10dy1yaW5nLWluc2V0IjoiICIsIi0tdHctcmluZy1vZmZzZXQtd2lkdGgiOmkoInJpbmdPZmZzZXRXaWR0aC5ERUZBVUxUIiwiMHB4IiksIi0tdHctcmluZy1vZmZzZXQtY29sb3IiOmkoInJpbmdPZmZzZXRDb2xvci5ERUZBVUxUIiwiI2ZmZiIpLCItLXR3LXJpbmctY29sb3IiOnMsIi0tdHctcmluZy1vZmZzZXQtc2hhZG93IjoiMCAwICMwMDAwIiwiLS10dy1yaW5nLXNoYWRvdyI6IjAgMCAjMDAwMCIsIi0tdHctc2hhZG93IjoiMCAwICMwMDAwIiwiLS10dy1zaGFkb3ctY29sb3JlZCI6IjAgMCAjMDAwMCJ9KSxyKHtyaW5nOmE9Pih7IkBkZWZhdWx0cyByaW5nLXdpZHRoIjp7fSwiLS10dy1yaW5nLW9mZnNldC1zaGFkb3ciOiJ2YXIoLS10dy1yaW5nLWluc2V0KSAwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkgdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpIiwiLS10dy1yaW5nLXNoYWRvdyI6YHZhcigtLXR3LXJpbmctaW5zZXQpIDAgMCAwIGNhbGMoJHthfSArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSkgdmFyKC0tdHctcmluZy1jb2xvcilgLCJib3gtc2hhZG93IjpbInZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdykiLCJ2YXIoLS10dy1yaW5nLXNoYWRvdykiLCJ2YXIoLS10dy1zaGFkb3csIDAgMCAjMDAwMCkiXS5qb2luKCIsICIpfSl9LHt2YWx1ZXM6aSgicmluZ1dpZHRoIiksdHlwZToibGVuZ3RoIn0pLHQoeyIucmluZy1pbnNldCI6eyJAZGVmYXVsdHMgcmluZy13aWR0aCI6e30sIi0tdHctcmluZy1pbnNldCI6Imluc2V0In19KX0scmluZ0NvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplLGNvcmVQbHVnaW5zOnR9KT0+e3Ioe3Jpbmc6aT0+dCgicmluZ09wYWNpdHkiKT9BZSh7Y29sb3I6aSxwcm9wZXJ0eToiLS10dy1yaW5nLWNvbG9yIix2YXJpYWJsZToiLS10dy1yaW5nLW9wYWNpdHkifSk6eyItLXR3LXJpbmctY29sb3IiOlgoaSl9fSx7dmFsdWVzOk9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh4ZShlKCJyaW5nQ29sb3IiKSkpLmZpbHRlcigoW2ldKT0+aSE9PSJERUZBVUxUIikpLHR5cGU6WyJjb2xvciIsImFueSJdfSl9LHJpbmdPcGFjaXR5OnI9PntsZXR7Y29uZmlnOmV9PXI7cmV0dXJuIEwoInJpbmdPcGFjaXR5IixbWyJyaW5nLW9wYWNpdHkiLFsiLS10dy1yaW5nLW9wYWNpdHkiXV1dLHtmaWx0ZXJEZWZhdWx0OiF3ZShlKCksInJlc3BlY3REZWZhdWx0UmluZ0NvbG9yT3BhY2l0eSIpfSkocil9LHJpbmdPZmZzZXRXaWR0aDpMKCJyaW5nT2Zmc2V0V2lkdGgiLFtbInJpbmctb2Zmc2V0IixbIi0tdHctcmluZy1vZmZzZXQtd2lkdGgiXV1dLHt0eXBlOiJsZW5ndGgifSkscmluZ09mZnNldENvbG9yOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsicmluZy1vZmZzZXQiOnQ9Pih7Ii0tdHctcmluZy1vZmZzZXQtY29sb3IiOlgodCl9KX0se3ZhbHVlczp4ZShlKCJyaW5nT2Zmc2V0Q29sb3IiKSksdHlwZTpbImNvbG9yIiwiYW55Il19KX0sYmx1cjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Ymx1cjp0PT4oeyItLXR3LWJsdXIiOnQudHJpbSgpPT09IiI/IiAiOmBibHVyKCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiYmx1ciIpfSl9LGJyaWdodG5lc3M6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2JyaWdodG5lc3M6dD0+KHsiLS10dy1icmlnaHRuZXNzIjpgYnJpZ2h0bmVzcygke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImJyaWdodG5lc3MiKX0pfSxjb250cmFzdDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Y29udHJhc3Q6dD0+KHsiLS10dy1jb250cmFzdCI6YGNvbnRyYXN0KCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiY29udHJhc3QiKX0pfSxkcm9wU2hhZG93Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiZHJvcC1zaGFkb3ciOnQ9Pih7Ii0tdHctZHJvcC1zaGFkb3ciOkFycmF5LmlzQXJyYXkodCk/dC5tYXAoaT0+YGRyb3Atc2hhZG93KCR7aX0pYCkuam9pbigiICIpOmBkcm9wLXNoYWRvdygke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImRyb3BTaGFkb3ciKX0pfSxncmF5c2NhbGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe2dyYXlzY2FsZTp0PT4oeyItLXR3LWdyYXlzY2FsZSI6YGdyYXlzY2FsZSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoImdyYXlzY2FsZSIpfSl9LGh1ZVJvdGF0ZTooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7Imh1ZS1yb3RhdGUiOnQ9Pih7Ii0tdHctaHVlLXJvdGF0ZSI6YGh1ZS1yb3RhdGUoJHt0fSlgLCJAZGVmYXVsdHMgZmlsdGVyIjp7fSxmaWx0ZXI6bnR9KX0se3ZhbHVlczplKCJodWVSb3RhdGUiKSxzdXBwb3J0c05lZ2F0aXZlVmFsdWVzOiEwfSl9LGludmVydDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7aW52ZXJ0OnQ9Pih7Ii0tdHctaW52ZXJ0IjpgaW52ZXJ0KCR7dH0pYCwiQGRlZmF1bHRzIGZpbHRlciI6e30sZmlsdGVyOm50fSl9LHt2YWx1ZXM6ZSgiaW52ZXJ0Iil9KX0sc2F0dXJhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe3NhdHVyYXRlOnQ9Pih7Ii0tdHctc2F0dXJhdGUiOmBzYXR1cmF0ZSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoInNhdHVyYXRlIil9KX0sc2VwaWE6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3Ioe3NlcGlhOnQ9Pih7Ii0tdHctc2VwaWEiOmBzZXBpYSgke3R9KWAsIkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0pfSx7dmFsdWVzOmUoInNlcGlhIil9KX0sZmlsdGVyOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57cigiZmlsdGVyIix7Ii0tdHctYmx1ciI6IiAiLCItLXR3LWJyaWdodG5lc3MiOiIgIiwiLS10dy1jb250cmFzdCI6IiAiLCItLXR3LWdyYXlzY2FsZSI6IiAiLCItLXR3LWh1ZS1yb3RhdGUiOiIgIiwiLS10dy1pbnZlcnQiOiIgIiwiLS10dy1zYXR1cmF0ZSI6IiAiLCItLXR3LXNlcGlhIjoiICIsIi0tdHctZHJvcC1zaGFkb3ciOiIgIn0pLGUoeyIuZmlsdGVyIjp7IkBkZWZhdWx0cyBmaWx0ZXIiOnt9LGZpbHRlcjpudH0sIi5maWx0ZXItbm9uZSI6e2ZpbHRlcjoibm9uZSJ9fSl9LGJhY2tkcm9wQmx1cjooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ImJhY2tkcm9wLWJsdXIiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtYmx1ciI6dC50cmltKCk9PT0iIj8iICI6YGJsdXIoJHt0fSlgLCJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSl9LHt2YWx1ZXM6ZSgiYmFja2Ryb3BCbHVyIil9KX0sYmFja2Ryb3BCcmlnaHRuZXNzOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3AtYnJpZ2h0bmVzcyI6dD0+KHsiLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzIjpgYnJpZ2h0bmVzcygke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcEJyaWdodG5lc3MiKX0pfSxiYWNrZHJvcENvbnRyYXN0Oih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3AtY29udHJhc3QiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtY29udHJhc3QiOmBjb250cmFzdCgke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcENvbnRyYXN0Iil9KX0sYmFja2Ryb3BHcmF5c2NhbGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1ncmF5c2NhbGUiOnQ9Pih7Ii0tdHctYmFja2Ryb3AtZ3JheXNjYWxlIjpgZ3JheXNjYWxlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wR3JheXNjYWxlIil9KX0sYmFja2Ryb3BIdWVSb3RhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1odWUtcm90YXRlIjp0PT4oeyItLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGUiOmBodWUtcm90YXRlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wSHVlUm90YXRlIiksc3VwcG9ydHNOZWdhdGl2ZVZhbHVlczohMH0pfSxiYWNrZHJvcEludmVydDooe21hdGNoVXRpbGl0aWVzOnIsdGhlbWU6ZX0pPT57cih7ImJhY2tkcm9wLWludmVydCI6dD0+KHsiLS10dy1iYWNrZHJvcC1pbnZlcnQiOmBpbnZlcnQoJHt0fSlgLCJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSl9LHt2YWx1ZXM6ZSgiYmFja2Ryb3BJbnZlcnQiKX0pfSxiYWNrZHJvcE9wYWNpdHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1vcGFjaXR5Ijp0PT4oeyItLXR3LWJhY2tkcm9wLW9wYWNpdHkiOmBvcGFjaXR5KCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wT3BhY2l0eSIpfSl9LGJhY2tkcm9wU2F0dXJhdGU6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e3IoeyJiYWNrZHJvcC1zYXR1cmF0ZSI6dD0+KHsiLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSI6YHNhdHVyYXRlKCR7dH0pYCwiQGRlZmF1bHRzIGJhY2tkcm9wLWZpbHRlciI6e30sIi13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjpnZSwiYmFja2Ryb3AtZmlsdGVyIjpnZX0pfSx7dmFsdWVzOmUoImJhY2tkcm9wU2F0dXJhdGUiKX0pfSxiYWNrZHJvcFNlcGlhOih7bWF0Y2hVdGlsaXRpZXM6cix0aGVtZTplfSk9PntyKHsiYmFja2Ryb3Atc2VwaWEiOnQ9Pih7Ii0tdHctYmFja2Ryb3Atc2VwaWEiOmBzZXBpYSgke3R9KWAsIkBkZWZhdWx0cyBiYWNrZHJvcC1maWx0ZXIiOnt9LCItd2Via2l0LWJhY2tkcm9wLWZpbHRlciI6Z2UsImJhY2tkcm9wLWZpbHRlciI6Z2V9KX0se3ZhbHVlczplKCJiYWNrZHJvcFNlcGlhIil9KX0sYmFja2Ryb3BGaWx0ZXI6KHthZGREZWZhdWx0czpyLGFkZFV0aWxpdGllczplfSk9PntyKCJiYWNrZHJvcC1maWx0ZXIiLHsiLS10dy1iYWNrZHJvcC1ibHVyIjoiICIsIi0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcyI6IiAiLCItLXR3LWJhY2tkcm9wLWNvbnRyYXN0IjoiICIsIi0tdHctYmFja2Ryb3AtZ3JheXNjYWxlIjoiICIsIi0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSI6IiAiLCItLXR3LWJhY2tkcm9wLWludmVydCI6IiAiLCItLXR3LWJhY2tkcm9wLW9wYWNpdHkiOiIgIiwiLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSI6IiAiLCItLXR3LWJhY2tkcm9wLXNlcGlhIjoiICJ9KSxlKHsiLmJhY2tkcm9wLWZpbHRlciI6eyJAZGVmYXVsdHMgYmFja2Ryb3AtZmlsdGVyIjp7fSwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXIiOmdlLCJiYWNrZHJvcC1maWx0ZXIiOmdlfSwiLmJhY2tkcm9wLWZpbHRlci1ub25lIjp7Ii13ZWJraXQtYmFja2Ryb3AtZmlsdGVyIjoibm9uZSIsImJhY2tkcm9wLWZpbHRlciI6Im5vbmUifX0pfSx0cmFuc2l0aW9uUHJvcGVydHk6KHttYXRjaFV0aWxpdGllczpyLHRoZW1lOmV9KT0+e2xldCB0PWUoInRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbi5ERUZBVUxUIiksaT1lKCJ0cmFuc2l0aW9uRHVyYXRpb24uREVGQVVMVCIpO3Ioe3RyYW5zaXRpb246bj0+KHsidHJhbnNpdGlvbi1wcm9wZXJ0eSI6biwuLi5uPT09Im5vbmUiP3t9OnsidHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24iOnQsInRyYW5zaXRpb24tZHVyYXRpb24iOml9fSl9LHt2YWx1ZXM6ZSgidHJhbnNpdGlvblByb3BlcnR5Iil9KX0sdHJhbnNpdGlvbkRlbGF5OkwoInRyYW5zaXRpb25EZWxheSIsW1siZGVsYXkiLFsidHJhbnNpdGlvbkRlbGF5Il1dXSksdHJhbnNpdGlvbkR1cmF0aW9uOkwoInRyYW5zaXRpb25EdXJhdGlvbiIsW1siZHVyYXRpb24iLFsidHJhbnNpdGlvbkR1cmF0aW9uIl1dXSx7ZmlsdGVyRGVmYXVsdDohMH0pLHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpMKCJ0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLFtbImVhc2UiLFsidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIl1dXSx7ZmlsdGVyRGVmYXVsdDohMH0pLHdpbGxDaGFuZ2U6TCgid2lsbENoYW5nZSIsW1sid2lsbC1jaGFuZ2UiLFsid2lsbC1jaGFuZ2UiXV1dKSxjb250YWluOih7YWRkRGVmYXVsdHM6cixhZGRVdGlsaXRpZXM6ZX0pPT57bGV0IHQ9InZhcigtLXR3LWNvbnRhaW4tc2l6ZSkgdmFyKC0tdHctY29udGFpbi1sYXlvdXQpIHZhcigtLXR3LWNvbnRhaW4tcGFpbnQpIHZhcigtLXR3LWNvbnRhaW4tc3R5bGUpIjtyKCJjb250YWluIix7Ii0tdHctY29udGFpbi1zaXplIjoiICIsIi0tdHctY29udGFpbi1sYXlvdXQiOiIgIiwiLS10dy1jb250YWluLXBhaW50IjoiICIsIi0tdHctY29udGFpbi1zdHlsZSI6IiAifSksZSh7Ii5jb250YWluLW5vbmUiOntjb250YWluOiJub25lIn0sIi5jb250YWluLWNvbnRlbnQiOntjb250YWluOiJjb250ZW50In0sIi5jb250YWluLXN0cmljdCI6e2NvbnRhaW46InN0cmljdCJ9LCIuY29udGFpbi1zaXplIjp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXNpemUiOiJzaXplIixjb250YWluOnR9LCIuY29udGFpbi1pbmxpbmUtc2l6ZSI6eyJAZGVmYXVsdHMgY29udGFpbiI6e30sIi0tdHctY29udGFpbi1zaXplIjoiaW5saW5lLXNpemUiLGNvbnRhaW46dH0sIi5jb250YWluLWxheW91dCI6eyJAZGVmYXVsdHMgY29udGFpbiI6e30sIi0tdHctY29udGFpbi1sYXlvdXQiOiJsYXlvdXQiLGNvbnRhaW46dH0sIi5jb250YWluLXBhaW50Ijp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXBhaW50IjoicGFpbnQiLGNvbnRhaW46dH0sIi5jb250YWluLXN0eWxlIjp7IkBkZWZhdWx0cyBjb250YWluIjp7fSwiLS10dy1jb250YWluLXN0eWxlIjoic3R5bGUiLGNvbnRhaW46dH19KX0sY29udGVudDpMKCJjb250ZW50IixbWyJjb250ZW50IixbIi0tdHctY29udGVudCIsWyJjb250ZW50IiwidmFyKC0tdHctY29udGVudCkiXV1dXSksZm9yY2VkQ29sb3JBZGp1c3Q6KHthZGRVdGlsaXRpZXM6cn0pPT57cih7Ii5mb3JjZWQtY29sb3ItYWRqdXN0LWF1dG8iOnsiZm9yY2VkLWNvbG9yLWFkanVzdCI6ImF1dG8ifSwiLmZvcmNlZC1jb2xvci1hZGp1c3Qtbm9uZSI6eyJmb3JjZWQtY29sb3ItYWRqdXN0Ijoibm9uZSJ9fSl9fX0pO2Z1bmN0aW9uIGhfKHIpe2lmKHI9PT12b2lkIDApcmV0dXJuITE7aWYocj09PSJ0cnVlInx8cj09PSIxIilyZXR1cm4hMDtpZihyPT09ImZhbHNlInx8cj09PSIwIilyZXR1cm4hMTtpZihyPT09IioiKXJldHVybiEwO2xldCBlPXIuc3BsaXQoIiwiKS5tYXAodD0+dC5zcGxpdCgiOiIpWzBdKTtyZXR1cm4gZS5pbmNsdWRlcygiLXRhaWx3aW5kY3NzIik/ITE6ISFlLmluY2x1ZGVzKCJ0YWlsd2luZGNzcyIpfXZhciBaZSx3aCx2aCxlcyxObyxndCxUaSxJdD1QKCgpPT57dSgpO1plPXR5cGVvZiBtIT0idW5kZWZpbmVkIj97Tk9ERV9FTlY6InByb2R1Y3Rpb24iLERFQlVHOmhfKG0uZW52LkRFQlVHKX06e05PREVfRU5WOiJwcm9kdWN0aW9uIixERUJVRzohMX0sd2g9bmV3IE1hcCx2aD1uZXcgTWFwLGVzPW5ldyBNYXAsTm89bmV3IE1hcCxndD1uZXcgU3RyaW5nKCIqIiksVGk9U3ltYm9sKCJfX05PTkVfXyIpfSk7ZnVuY3Rpb24gY3Iocil7bGV0IGU9W10sdD0hMTtmb3IobGV0IGk9MDtpPHIubGVuZ3RoO2krKyl7bGV0IG49cltpXTtpZihuPT09IjoiJiYhdCYmZS5sZW5ndGg9PT0wKXJldHVybiExO2lmKG1fLmhhcyhuKSYmcltpLTFdIT09IlxcIiYmKHQ9IXQpLCF0JiZyW2ktMV0hPT0iXFwiKXtpZih4aC5oYXMobikpZS5wdXNoKG4pO2Vsc2UgaWYoa2guaGFzKG4pKXtsZXQgcz1raC5nZXQobik7aWYoZS5sZW5ndGg8PTB8fGUucG9wKCkhPT1zKXJldHVybiExfX19cmV0dXJuIShlLmxlbmd0aD4wKX12YXIgeGgsa2gsbV8sQm89UCgoKT0+e3UoKTt4aD1uZXcgTWFwKFtbInsiLCJ9Il0sWyJbIiwiXSJdLFsiKCIsIikiXV0pLGtoPW5ldyBNYXAoQXJyYXkuZnJvbSh4aC5lbnRyaWVzKCkpLm1hcCgoW3IsZV0pPT5bZSxyXSkpLG1fPW5ldyBTZXQoWyciJywiJyIsImAiXSl9KTtmdW5jdGlvbiBwcihyKXtsZXRbZV09U2gocik7cmV0dXJuIGUuZm9yRWFjaCgoW3QsaV0pPT50LnJlbW92ZUNoaWxkKGkpKSxyLm5vZGVzLnB1c2goLi4uZS5tYXAoKFssdF0pPT50KSkscn1mdW5jdGlvbiBTaChyKXtsZXQgZT1bXSx0PW51bGw7Zm9yKGxldCBpIG9mIHIubm9kZXMpaWYoaS50eXBlPT09ImNvbWJpbmF0b3IiKWU9ZS5maWx0ZXIoKFssbl0pPT5qbyhuKS5pbmNsdWRlcygianVtcGFibGUiKSksdD1udWxsO2Vsc2UgaWYoaS50eXBlPT09InBzZXVkbyIpe2dfKGkpPyh0PWksZS5wdXNoKFtyLGksbnVsbF0pKTp0JiZ5XyhpLHQpP2UucHVzaChbcixpLHRdKTp0PW51bGw7Zm9yKGxldCBuIG9mIGkubm9kZXM/P1tdKXtsZXRbcyxhXT1TaChuKTt0PWF8fHQsZS5wdXNoKC4uLnMpfX1yZXR1cm5bZSx0XX1mdW5jdGlvbiBBaChyKXtyZXR1cm4gci52YWx1ZS5zdGFydHNXaXRoKCI6OiIpfHxGb1tyLnZhbHVlXSE9PXZvaWQgMH1mdW5jdGlvbiBnXyhyKXtyZXR1cm4gQWgocikmJmpvKHIpLmluY2x1ZGVzKCJ0ZXJtaW5hbCIpfWZ1bmN0aW9uIHlfKHIsZSl7cmV0dXJuIHIudHlwZSE9PSJwc2V1ZG8ifHxBaChyKT8hMTpqbyhlKS5pbmNsdWRlcygiYWN0aW9uYWJsZSIpfWZ1bmN0aW9uIGpvKHIpe3JldHVybiBGb1tyLnZhbHVlXT8/Rm8uX19kZWZhdWx0X199dmFyIEZvLHRzPVAoKCk9Pnt1KCk7Rm89eyI6OmFmdGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpiYWNrZHJvcCI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjo6YmVmb3JlIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpjdWUiOlsidGVybWluYWwiXSwiOjpjdWUtcmVnaW9uIjpbInRlcm1pbmFsIl0sIjo6Zmlyc3QtbGV0dGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpmaXJzdC1saW5lIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpncmFtbWFyLWVycm9yIjpbInRlcm1pbmFsIl0sIjo6bWFya2VyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpwYXJ0IjpbInRlcm1pbmFsIiwiYWN0aW9uYWJsZSJdLCI6OnBsYWNlaG9sZGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOjpzZWxlY3Rpb24iOlsidGVybWluYWwiLCJqdW1wYWJsZSJdLCI6OnNsb3R0ZWQiOlsidGVybWluYWwiXSwiOjpzcGVsbGluZy1lcnJvciI6WyJ0ZXJtaW5hbCJdLCI6OnRhcmdldC10ZXh0IjpbInRlcm1pbmFsIl0sIjo6ZmlsZS1zZWxlY3Rvci1idXR0b24iOlsidGVybWluYWwiLCJhY3Rpb25hYmxlIl0sIjo6ZGVlcCI6WyJhY3Rpb25hYmxlIl0sIjo6di1kZWVwIjpbImFjdGlvbmFibGUiXSwiOjpuZy1kZWVwIjpbImFjdGlvbmFibGUiXSwiOmFmdGVyIjpbInRlcm1pbmFsIiwianVtcGFibGUiXSwiOmJlZm9yZSI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjpmaXJzdC1sZXR0ZXIiOlsidGVybWluYWwiLCJqdW1wYWJsZSJdLCI6Zmlyc3QtbGluZSI6WyJ0ZXJtaW5hbCIsImp1bXBhYmxlIl0sIjp3aGVyZSI6W10sIjppcyI6W10sIjpoYXMiOltdLF9fZGVmYXVsdF9fOlsidGVybWluYWwiLCJhY3Rpb25hYmxlIl19fSk7ZnVuY3Rpb24gZHIocix7Y29udGV4dDplLGNhbmRpZGF0ZTp0fSl7bGV0IGk9ZT8udGFpbHdpbmRDb25maWcucHJlZml4Pz8iIixuPXIubWFwKGE9PntsZXQgbz0oMCxzdC5kZWZhdWx0KSgpLmFzdFN5bmMoYS5mb3JtYXQpO3JldHVybnsuLi5hLGFzdDphLnJlc3BlY3RQcmVmaXg/dXIoaSxvKTpvfX0pLHM9c3QuZGVmYXVsdC5yb290KHtub2Rlczpbc3QuZGVmYXVsdC5zZWxlY3Rvcih7bm9kZXM6W3N0LmRlZmF1bHQuY2xhc3NOYW1lKHt2YWx1ZTpUZSh0KX0pXX0pXX0pO2ZvcihsZXR7YXN0OmF9b2YgbilbcyxhXT13XyhzLGEpLGEud2Fsa05lc3Rpbmcobz0+by5yZXBsYWNlV2l0aCguLi5zLm5vZGVzWzBdLm5vZGVzKSkscz1hO3JldHVybiBzfWZ1bmN0aW9uIF9oKHIpe2xldCBlPVtdO2Zvcig7ci5wcmV2KCkmJnIucHJldigpLnR5cGUhPT0iY29tYmluYXRvciI7KXI9ci5wcmV2KCk7Zm9yKDtyJiZyLnR5cGUhPT0iY29tYmluYXRvciI7KWUucHVzaChyKSxyPXIubmV4dCgpO3JldHVybiBlfWZ1bmN0aW9uIGJfKHIpe3JldHVybiByLnNvcnQoKGUsdCk9PmUudHlwZT09PSJ0YWciJiZ0LnR5cGU9PT0iY2xhc3MiPy0xOmUudHlwZT09PSJjbGFzcyImJnQudHlwZT09PSJ0YWciPzE6ZS50eXBlPT09ImNsYXNzIiYmdC50eXBlPT09InBzZXVkbyImJnQudmFsdWUuc3RhcnRzV2l0aCgiOjoiKT8tMTplLnR5cGU9PT0icHNldWRvIiYmZS52YWx1ZS5zdGFydHNXaXRoKCI6OiIpJiZ0LnR5cGU9PT0iY2xhc3MiPzE6ci5pbmRleChlKS1yLmluZGV4KHQpKSxyfWZ1bmN0aW9uIFVvKHIsZSl7bGV0IHQ9ITE7ci53YWxrKGk9PntpZihpLnR5cGU9PT0iY2xhc3MiJiZpLnZhbHVlPT09ZSlyZXR1cm4gdD0hMCwhMX0pLHR8fHIucmVtb3ZlKCl9ZnVuY3Rpb24gcnMocixlLHtjb250ZXh0OnQsY2FuZGlkYXRlOmksYmFzZTpufSl7bGV0IHM9dD8udGFpbHdpbmRDb25maWc/LnNlcGFyYXRvcj8/IjoiO249bj8/dmUoaSxzKS5wb3AoKTtsZXQgYT0oMCxzdC5kZWZhdWx0KSgpLmFzdFN5bmMocik7aWYoYS53YWxrQ2xhc3NlcyhmPT57Zi5yYXdzJiZmLnZhbHVlLmluY2x1ZGVzKG4pJiYoZi5yYXdzLnZhbHVlPVRlKCgwLENoLmRlZmF1bHQpKGYucmF3cy52YWx1ZSkpKX0pLGEuZWFjaChmPT5VbyhmLG4pKSxhLmxlbmd0aD09PTApcmV0dXJuIG51bGw7bGV0IG89QXJyYXkuaXNBcnJheShlKT9kcihlLHtjb250ZXh0OnQsY2FuZGlkYXRlOml9KTplO2lmKG89PT1udWxsKXJldHVybiBhLnRvU3RyaW5nKCk7bGV0IGw9c3QuZGVmYXVsdC5jb21tZW50KHt2YWx1ZToiLypfX3NpbXBsZV9fKi8ifSksYz1zdC5kZWZhdWx0LmNvbW1lbnQoe3ZhbHVlOiIvKl9fc2ltcGxlX18qLyJ9KTtyZXR1cm4gYS53YWxrQ2xhc3NlcyhmPT57aWYoZi52YWx1ZSE9PW4pcmV0dXJuO2xldCBkPWYucGFyZW50LHA9by5ub2Rlc1swXS5ub2RlcztpZihkLm5vZGVzLmxlbmd0aD09PTEpe2YucmVwbGFjZVdpdGgoLi4ucCk7cmV0dXJufWxldCBoPV9oKGYpO2QuaW5zZXJ0QmVmb3JlKGhbMF0sbCksZC5pbnNlcnRBZnRlcihoW2gubGVuZ3RoLTFdLGMpO2ZvcihsZXQgdiBvZiBwKWQuaW5zZXJ0QmVmb3JlKGhbMF0sdi5jbG9uZSgpKTtmLnJlbW92ZSgpLGg9X2gobCk7bGV0IGI9ZC5pbmRleChsKTtkLm5vZGVzLnNwbGljZShiLGgubGVuZ3RoLC4uLmJfKHN0LmRlZmF1bHQuc2VsZWN0b3Ioe25vZGVzOmh9KSkubm9kZXMpLGwucmVtb3ZlKCksYy5yZW1vdmUoKX0pLGEud2Fsa1BzZXVkb3MoZj0+e2YudmFsdWU9PT16byYmZi5yZXBsYWNlV2l0aChmLm5vZGVzKX0pLGEuZWFjaChmPT5wcihmKSksYS50b1N0cmluZygpfWZ1bmN0aW9uIHdfKHIsZSl7bGV0IHQ9W107cmV0dXJuIHIud2Fsa1BzZXVkb3MoaT0+e2kudmFsdWU9PT16byYmdC5wdXNoKHtwc2V1ZG86aSx2YWx1ZTppLm5vZGVzWzBdLnRvU3RyaW5nKCl9KX0pLGUud2Fsa1BzZXVkb3MoaT0+e2lmKGkudmFsdWUhPT16bylyZXR1cm47bGV0IG49aS5ub2Rlc1swXS50b1N0cmluZygpLHM9dC5maW5kKGM9PmMudmFsdWU9PT1uKTtpZighcylyZXR1cm47bGV0IGE9W10sbz1pLm5leHQoKTtmb3IoO28mJm8udHlwZSE9PSJjb21iaW5hdG9yIjspYS5wdXNoKG8pLG89by5uZXh0KCk7bGV0IGw9bztzLnBzZXVkby5wYXJlbnQuaW5zZXJ0QWZ0ZXIocy5wc2V1ZG8sc3QuZGVmYXVsdC5zZWxlY3Rvcih7bm9kZXM6YS5tYXAoYz0+Yy5jbG9uZSgpKX0pKSxpLnJlbW92ZSgpLGEuZm9yRWFjaChjPT5jLnJlbW92ZSgpKSxsJiZsLnR5cGU9PT0iY29tYmluYXRvciImJmwucmVtb3ZlKCl9KSxbcixlXX12YXIgc3QsQ2gsem8sVm89UCgoKT0+e3UoKTtzdD1wZShpdCgpKSxDaD1wZShQbigpKTtmcigpO0duKCk7dHMoKTt6dCgpO3pvPSI6bWVyZ2UifSk7ZnVuY3Rpb24gaXMocixlKXtsZXQgdD0oMCxIby5kZWZhdWx0KSgpLmFzdFN5bmMocik7cmV0dXJuIHQuZWFjaChpPT57aS5ub2Rlcy5zb21lKHM9PnMudHlwZT09PSJjb21iaW5hdG9yIikmJihpLm5vZGVzPVtIby5kZWZhdWx0LnBzZXVkbyh7dmFsdWU6IjppcyIsbm9kZXM6W2kuY2xvbmUoKV19KV0pLHByKGkpfSksYCR7ZX0gJHt0LnRvU3RyaW5nKCl9YH12YXIgSG8sV289UCgoKT0+e3UoKTtIbz1wZShpdCgpKTt0cygpfSk7ZnVuY3Rpb24gR28ocil7cmV0dXJuIHZfLnRyYW5zZm9ybVN5bmMocil9ZnVuY3Rpb24qeF8ocil7bGV0IGU9MS8wO2Zvcig7ZT49MDspe2xldCB0LGk9ITE7aWYoZT09PTEvMCYmci5lbmRzV2l0aCgiXSIpKXtsZXQgYT1yLmluZGV4T2YoIlsiKTtyW2EtMV09PT0iLSI/dD1hLTE6clthLTFdPT09Ii8iPyh0PWEtMSxpPSEwKTp0PS0xfWVsc2UgZT09PTEvMCYmci5pbmNsdWRlcygiLyIpPyh0PXIubGFzdEluZGV4T2YoIi8iKSxpPSEwKTp0PXIubGFzdEluZGV4T2YoIi0iLGUpO2lmKHQ8MClicmVhaztsZXQgbj1yLnNsaWNlKDAsdCkscz1yLnNsaWNlKGk/dDp0KzEpO2U9dC0xLCEobj09PSIifHxzPT09Ii8iKSYmKHlpZWxkW24sc10pfX1mdW5jdGlvbiBrXyhyLGUpe2lmKHIubGVuZ3RoPT09MHx8ZS50YWlsd2luZENvbmZpZy5wcmVmaXg9PT0iIilyZXR1cm4gcjtmb3IobGV0IHQgb2Ygcil7bGV0W2ldPXQ7aWYoaS5vcHRpb25zLnJlc3BlY3RQcmVmaXgpe2xldCBuPWVlLnJvb3Qoe25vZGVzOlt0WzFdLmNsb25lKCldfSkscz10WzFdLnJhd3MudGFpbHdpbmQuY2xhc3NDYW5kaWRhdGU7bi53YWxrUnVsZXMoYT0+e2xldCBvPXMuc3RhcnRzV2l0aCgiLSIpO2Euc2VsZWN0b3I9dXIoZS50YWlsd2luZENvbmZpZy5wcmVmaXgsYS5zZWxlY3RvcixvKX0pLHRbMV09bi5ub2Rlc1swXX19cmV0dXJuIHJ9ZnVuY3Rpb24gU18ocixlKXtpZihyLmxlbmd0aD09PTApcmV0dXJuIHI7bGV0IHQ9W107ZnVuY3Rpb24gaShuKXtyZXR1cm4gbi5wYXJlbnQmJm4ucGFyZW50LnR5cGU9PT0iYXRydWxlIiYmbi5wYXJlbnQubmFtZT09PSJrZXlmcmFtZXMifWZvcihsZXRbbixzXW9mIHIpe2xldCBhPWVlLnJvb3Qoe25vZGVzOltzLmNsb25lKCldfSk7YS53YWxrUnVsZXMobz0+e2lmKGkobykpcmV0dXJuO2xldCBsPSgwLG5zLmRlZmF1bHQpKCkuYXN0U3luYyhvLnNlbGVjdG9yKTtsLmVhY2goYz0+VW8oYyxlKSksUWYobCxjPT5jPT09ZT9gISR7Y31gOmMpLG8uc2VsZWN0b3I9bC50b1N0cmluZygpLG8ud2Fsa0RlY2xzKGM9PmMuaW1wb3J0YW50PSEwKX0pLHQucHVzaChbey4uLm4saW1wb3J0YW50OiEwfSxhLm5vZGVzWzBdXSl9cmV0dXJuIHR9ZnVuY3Rpb24gQV8ocixlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgaT17bW9kaWZpZXI6bnVsbCx2YWx1ZTpUaX07e2xldFtuLC4uLnNdPXZlKHIsIi8iKTtpZihzLmxlbmd0aD4xJiYobj1uKyIvIitzLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxzPXMuc2xpY2UoLTEpKSxzLmxlbmd0aCYmIXQudmFyaWFudE1hcC5oYXMocikmJihyPW4saS5tb2RpZmllcj1zWzBdLCF3ZSh0LnRhaWx3aW5kQ29uZmlnLCJnZW5lcmFsaXplZE1vZGlmaWVycyIpKSlyZXR1cm5bXX1pZihyLmVuZHNXaXRoKCJdIikmJiFyLnN0YXJ0c1dpdGgoIlsiKSl7bGV0IG49LyguKSgtPylcWyguKilcXS9nLmV4ZWMocik7aWYobil7bGV0WyxzLGEsb109bjtpZihzPT09IkAiJiZhPT09Ii0iKXJldHVybltdO2lmKHMhPT0iQCImJmE9PT0iIilyZXR1cm5bXTtyPXIucmVwbGFjZShgJHthfVske299XWAsIiIpLGkudmFsdWU9b319aWYoS28ocikmJiF0LnZhcmlhbnRNYXAuaGFzKHIpKXtsZXQgbj10Lm9mZnNldHMucmVjb3JkVmFyaWFudChyKSxzPUsoci5zbGljZSgxLC0xKSksYT12ZShzLCIsIik7aWYoYS5sZW5ndGg+MSlyZXR1cm5bXTtpZighYS5ldmVyeShscykpcmV0dXJuW107bGV0IG89YS5tYXAoKGwsYyk9Plt0Lm9mZnNldHMuYXBwbHlQYXJhbGxlbE9mZnNldChuLGMpLFJpKGwudHJpbSgpKV0pO3QudmFyaWFudE1hcC5zZXQocixvKX1pZih0LnZhcmlhbnRNYXAuaGFzKHIpKXtsZXQgbj1LbyhyKSxzPXQudmFyaWFudE9wdGlvbnMuZ2V0KHIpPy5bUHRdPz97fSxhPXQudmFyaWFudE1hcC5nZXQocikuc2xpY2UoKSxvPVtdLGw9KCgpPT4hKG58fHMucmVzcGVjdFByZWZpeD09PSExKSkoKTtmb3IobGV0W2MsZl1vZiBlKXtpZihjLmxheWVyPT09InVzZXIiKWNvbnRpbnVlO2xldCBkPWVlLnJvb3Qoe25vZGVzOltmLmNsb25lKCldfSk7Zm9yKGxldFtwLGgsYl1vZiBhKXtsZXQgdz1mdW5jdGlvbigpe3YucmF3cy5uZWVkZWRCYWNrdXB8fCh2LnJhd3MubmVlZGVkQmFja3VwPSEwLHYud2Fsa1J1bGVzKFQ9PlQucmF3cy5vcmlnaW5hbFNlbGVjdG9yPVQuc2VsZWN0b3IpKX0saz1mdW5jdGlvbihUKXtyZXR1cm4gdygpLHYuZWFjaChCPT57Qi50eXBlPT09InJ1bGUiJiYoQi5zZWxlY3RvcnM9Qi5zZWxlY3RvcnMubWFwKE49PlQoe2dldCBjbGFzc05hbWUoKXtyZXR1cm4gR28oTil9LHNlbGVjdG9yOk59KSkpfSksdn0sdj0oYj8/ZCkuY2xvbmUoKSx5PVtdLFM9aCh7Z2V0IGNvbnRhaW5lcigpe3JldHVybiB3KCksdn0sc2VwYXJhdG9yOnQudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLG1vZGlmeVNlbGVjdG9yczprLHdyYXAoVCl7bGV0IEI9di5ub2Rlczt2LnJlbW92ZUFsbCgpLFQuYXBwZW5kKEIpLHYuYXBwZW5kKFQpfSxmb3JtYXQoVCl7eS5wdXNoKHtmb3JtYXQ6VCxyZXNwZWN0UHJlZml4Omx9KX0sYXJnczppfSk7aWYoQXJyYXkuaXNBcnJheShTKSl7Zm9yKGxldFtULEJdb2YgUy5lbnRyaWVzKCkpYS5wdXNoKFt0Lm9mZnNldHMuYXBwbHlQYXJhbGxlbE9mZnNldChwLFQpLEIsdi5jbG9uZSgpXSk7Y29udGludWV9aWYodHlwZW9mIFM9PSJzdHJpbmciJiZ5LnB1c2goe2Zvcm1hdDpTLHJlc3BlY3RQcmVmaXg6bH0pLFM9PT1udWxsKWNvbnRpbnVlO3YucmF3cy5uZWVkZWRCYWNrdXAmJihkZWxldGUgdi5yYXdzLm5lZWRlZEJhY2t1cCx2LndhbGtSdWxlcyhUPT57bGV0IEI9VC5yYXdzLm9yaWdpbmFsU2VsZWN0b3I7aWYoIUJ8fChkZWxldGUgVC5yYXdzLm9yaWdpbmFsU2VsZWN0b3IsQj09PVQuc2VsZWN0b3IpKXJldHVybjtsZXQgTj1ULnNlbGVjdG9yLFI9KDAsbnMuZGVmYXVsdCkoRj0+e0Yud2Fsa0NsYXNzZXMoWT0+e1kudmFsdWU9YCR7cn0ke3QudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yfSR7WS52YWx1ZX1gfSl9KS5wcm9jZXNzU3luYyhCKTt5LnB1c2goe2Zvcm1hdDpOLnJlcGxhY2UoUiwiJiIpLHJlc3BlY3RQcmVmaXg6bH0pLFQuc2VsZWN0b3I9Qn0pKSx2Lm5vZGVzWzBdLnJhd3MudGFpbHdpbmQ9ey4uLnYubm9kZXNbMF0ucmF3cy50YWlsd2luZCxwYXJlbnRMYXllcjpjLmxheWVyfTtsZXQgRT1bey4uLmMsc29ydDp0Lm9mZnNldHMuYXBwbHlWYXJpYW50T2Zmc2V0KGMuc29ydCxwLE9iamVjdC5hc3NpZ24oaSx0LnZhcmlhbnRPcHRpb25zLmdldChyKSkpLGNvbGxlY3RlZEZvcm1hdHM6KGMuY29sbGVjdGVkRm9ybWF0cz8/W10pLmNvbmNhdCh5KX0sdi5ub2Rlc1swXV07by5wdXNoKEUpfX1yZXR1cm4gb31yZXR1cm5bXX1mdW5jdGlvbiBRbyhyLGUsdD17fSl7cmV0dXJuIWtlKHIpJiYhQXJyYXkuaXNBcnJheShyKT9bW3JdLHRdOkFycmF5LmlzQXJyYXkocik/UW8oclswXSxlLHJbMV0pOihlLmhhcyhyKXx8ZS5zZXQocixscihyKSksW2UuZ2V0KHIpLHRdKX1mdW5jdGlvbiBfXyhyKXtyZXR1cm4gQ18udGVzdChyKX1mdW5jdGlvbiBFXyhyKXtpZighci5pbmNsdWRlcygiOi8vIikpcmV0dXJuITE7dHJ5e2xldCBlPW5ldyBVUkwocik7cmV0dXJuIGUuc2NoZW1lIT09IiImJmUuaG9zdCE9PSIifWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBFaChyKXtsZXQgZT0hMDtyZXR1cm4gci53YWxrRGVjbHModD0+e2lmKCFPaCh0LnByb3AsdC52YWx1ZSkpcmV0dXJuIGU9ITEsITF9KSxlfWZ1bmN0aW9uIE9oKHIsZSl7aWYoRV8oYCR7cn06JHtlfWApKXJldHVybiExO3RyeXtyZXR1cm4gZWUucGFyc2UoYGF7JHtyfToke2V9fWApLnRvUmVzdWx0KCksITB9Y2F0Y2godCl7cmV0dXJuITF9fWZ1bmN0aW9uIE9fKHIsZSl7bGV0Wyx0LGldPXIubWF0Y2goL15cWyhbYS16QS1aMC05LV9dKyk6KFxTKylcXSQvKT8/W107aWYoaT09PXZvaWQgMHx8IV9fKHQpfHwhY3IoaSkpcmV0dXJuIG51bGw7bGV0IG49SyhpLHtwcm9wZXJ0eTp0fSk7cmV0dXJuIE9oKHQsbik/W1t7c29ydDplLm9mZnNldHMuYXJiaXRyYXJ5UHJvcGVydHkociksbGF5ZXI6InV0aWxpdGllcyIsb3B0aW9uczp7cmVzcGVjdEltcG9ydGFudDohMH19LCgpPT4oe1skbyhyKV06e1t0XTpufX0pXV06bnVsbH1mdW5jdGlvbipUXyhyLGUpe2UuY2FuZGlkYXRlUnVsZU1hcC5oYXMocikmJih5aWVsZFtlLmNhbmRpZGF0ZVJ1bGVNYXAuZ2V0KHIpLCJERUZBVUxUIl0pLHlpZWxkKmZ1bmN0aW9uKihvKXtvIT09bnVsbCYmKHlpZWxkW28sIkRFRkFVTFQiXSl9KE9fKHIsZSkpO2xldCB0PXIsaT0hMSxuPWUudGFpbHdpbmRDb25maWcucHJlZml4LHM9bi5sZW5ndGgsYT10LnN0YXJ0c1dpdGgobil8fHQuc3RhcnRzV2l0aChgLSR7bn1gKTt0W3NdPT09Ii0iJiZhJiYoaT0hMCx0PW4rdC5zbGljZShzKzEpKSxpJiZlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHQpJiYoeWllbGRbZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh0KSwiLURFRkFVTFQiXSk7Zm9yKGxldFtvLGxdb2YgeF8odCkpZS5jYW5kaWRhdGVSdWxlTWFwLmhhcyhvKSYmKHlpZWxkW2UuY2FuZGlkYXRlUnVsZU1hcC5nZXQobyksaT9gLSR7bH1gOmxdKX1mdW5jdGlvbiBSXyhyLGUpe3JldHVybiByPT09Z3Q/W2d0XTp2ZShyLGUpfWZ1bmN0aW9uKlBfKHIsZSl7Zm9yKGxldCB0IG9mIHIpdFsxXS5yYXdzLnRhaWx3aW5kPXsuLi50WzFdLnJhd3MudGFpbHdpbmQsY2xhc3NDYW5kaWRhdGU6ZSxwcmVzZXJ2ZVNvdXJjZTp0WzBdLm9wdGlvbnM/LnByZXNlcnZlU291cmNlPz8hMX0seWllbGQgdH1mdW5jdGlvbipZbyhyLGUpe2xldCB0PWUudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLFtpLC4uLm5dPVJfKHIsdCkucmV2ZXJzZSgpLHM9ITE7aS5zdGFydHNXaXRoKCIhIikmJihzPSEwLGk9aS5zbGljZSgxKSk7Zm9yKGxldCBhIG9mIFRfKGksZSkpe2xldCBvPVtdLGw9bmV3IE1hcCxbYyxmXT1hLGQ9Yy5sZW5ndGg9PT0xO2ZvcihsZXRbcCxoXW9mIGMpe2xldCBiPVtdO2lmKHR5cGVvZiBoPT0iZnVuY3Rpb24iKWZvcihsZXQgdiBvZltdLmNvbmNhdChoKGYse2lzT25seVBsdWdpbjpkfSkpKXtsZXRbeSx3XT1Rbyh2LGUucG9zdENzc05vZGVDYWNoZSk7Zm9yKGxldCBrIG9mIHkpYi5wdXNoKFt7Li4ucCxvcHRpb25zOnsuLi5wLm9wdGlvbnMsLi4ud319LGtdKX1lbHNlIGlmKGY9PT0iREVGQVVMVCJ8fGY9PT0iLURFRkFVTFQiKXtsZXQgdj1oLFt5LHddPVFvKHYsZS5wb3N0Q3NzTm9kZUNhY2hlKTtmb3IobGV0IGsgb2YgeSliLnB1c2goW3suLi5wLG9wdGlvbnM6ey4uLnAub3B0aW9ucywuLi53fX0sa10pfWlmKGIubGVuZ3RoPjApe2xldCB2PUFycmF5LmZyb20odGEocC5vcHRpb25zPy50eXBlcz8/W10sZixwLm9wdGlvbnM/P3t9LGUudGFpbHdpbmRDb25maWcpKS5tYXAoKFt5LHddKT0+dyk7di5sZW5ndGg+MCYmbC5zZXQoYix2KSxvLnB1c2goYil9fWlmKEtvKGYpKXtpZihvLmxlbmd0aD4xKXtsZXQgYj1mdW5jdGlvbih5KXtyZXR1cm4geS5sZW5ndGg9PT0xP3lbMF06eS5maW5kKHc9PntsZXQgaz1sLmdldCh3KTtyZXR1cm4gdy5zb21lKChbe29wdGlvbnM6U30sRV0pPT5FaChFKT9TLnR5cGVzLnNvbWUoKHt0eXBlOlQscHJlZmVyT25Db25mbGljdDpCfSk9PmsuaW5jbHVkZXMoVCkmJkIpOiExKX0pfSxbcCxoXT1vLnJlZHVjZSgoeSx3KT0+KHcuc29tZSgoW3tvcHRpb25zOlN9XSk9PlMudHlwZXMuc29tZSgoe3R5cGU6RX0pPT5FPT09ImFueSIpKT95WzBdLnB1c2godyk6eVsxXS5wdXNoKHcpLHkpLFtbXSxbXV0pLHY9YihoKT8/YihwKTtpZih2KW89W3ZdO2Vsc2V7bGV0IHk9by5tYXAoaz0+bmV3IFNldChbLi4ubC5nZXQoayk/P1tdXSkpO2ZvcihsZXQgayBvZiB5KWZvcihsZXQgUyBvZiBrKXtsZXQgRT0hMTtmb3IobGV0IFQgb2YgeSlrIT09VCYmVC5oYXMoUykmJihULmRlbGV0ZShTKSxFPSEwKTtFJiZrLmRlbGV0ZShTKX1sZXQgdz1bXTtmb3IobGV0W2ssU11vZiB5LmVudHJpZXMoKSlmb3IobGV0IEUgb2YgUyl7bGV0IFQ9b1trXS5tYXAoKFssQl0pPT5CKS5mbGF0KCkubWFwKEI9PkIudG9TdHJpbmcoKS5zcGxpdChgCmApLnNsaWNlKDEsLTEpLm1hcChOPT5OLnRyaW0oKSkubWFwKE49PmAgICAgICAke059YCkuam9pbihgCmApKS5qb2luKGAKCmApO3cucHVzaChgICBVc2UgXGAke3IucmVwbGFjZSgiWyIsYFske0V9OmApfVxgIGZvciBcYCR7VC50cmltKCl9XGBgKTticmVha31HLndhcm4oW2BUaGUgY2xhc3MgXGAke3J9XGAgaXMgYW1iaWd1b3VzIGFuZCBtYXRjaGVzIG11bHRpcGxlIHV0aWxpdGllcy5gLC4uLncsYElmIHRoaXMgaXMgY29udGVudCBhbmQgbm90IGEgY2xhc3MsIHJlcGxhY2UgaXQgd2l0aCBcYCR7ci5yZXBsYWNlKCJbIiwiJmxzcWI7IikucmVwbGFjZSgiXSIsIiZyc3FiOyIpfVxgIHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLmBdKTtjb250aW51ZX19bz1vLm1hcChwPT5wLmZpbHRlcihoPT5FaChoWzFdKSkpfW89by5mbGF0KCksbz1BcnJheS5mcm9tKFBfKG8saSkpLG89a18obyxlKSxzJiYobz1TXyhvLGkpKTtmb3IobGV0IHAgb2YgbilvPUFfKHAsbyxlKTtmb3IobGV0IHAgb2YgbylwWzFdLnJhd3MudGFpbHdpbmQ9ey4uLnBbMV0ucmF3cy50YWlsd2luZCxjYW5kaWRhdGU6cn0scD1JXyhwLHtjb250ZXh0OmUsY2FuZGlkYXRlOnJ9KSxwIT09bnVsbCYmKHlpZWxkIHApfX1mdW5jdGlvbiBJXyhyLHtjb250ZXh0OmUsY2FuZGlkYXRlOnR9KXtpZighclswXS5jb2xsZWN0ZWRGb3JtYXRzKXJldHVybiByO2xldCBpPSEwLG47dHJ5e249ZHIoclswXS5jb2xsZWN0ZWRGb3JtYXRzLHtjb250ZXh0OmUsY2FuZGlkYXRlOnR9KX1jYXRjaHtyZXR1cm4gbnVsbH1sZXQgcz1lZS5yb290KHtub2RlczpbclsxXS5jbG9uZSgpXX0pO3JldHVybiBzLndhbGtSdWxlcyhhPT57aWYoIXNzKGEpKXRyeXtsZXQgbz1ycyhhLnNlbGVjdG9yLG4se2NhbmRpZGF0ZTp0LGNvbnRleHQ6ZX0pO2lmKG89PT1udWxsKXthLnJlbW92ZSgpO3JldHVybn1hLnNlbGVjdG9yPW99Y2F0Y2h7cmV0dXJuIGk9ITEsITF9fSksIWl8fHMubm9kZXMubGVuZ3RoPT09MD9udWxsOihyWzFdPXMubm9kZXNbMF0scil9ZnVuY3Rpb24gc3Mocil7cmV0dXJuIHIucGFyZW50JiZyLnBhcmVudC50eXBlPT09ImF0cnVsZSImJnIucGFyZW50Lm5hbWU9PT0ia2V5ZnJhbWVzIn1mdW5jdGlvbiBEXyhyKXtpZihyPT09ITApcmV0dXJuIGU9PntzcyhlKXx8ZS53YWxrRGVjbHModD0+e3QucGFyZW50LnR5cGU9PT0icnVsZSImJiFzcyh0LnBhcmVudCkmJih0LmltcG9ydGFudD0hMCl9KX07aWYodHlwZW9mIHI9PSJzdHJpbmciKXJldHVybiBlPT57c3MoZSl8fChlLnNlbGVjdG9ycz1lLnNlbGVjdG9ycy5tYXAodD0+aXModCxyKSkpfX1mdW5jdGlvbiBhcyhyLGUsdD0hMSl7bGV0IGk9W10sbj1EXyhlLnRhaWx3aW5kQ29uZmlnLmltcG9ydGFudCk7Zm9yKGxldCBzIG9mIHIpe2lmKGUubm90Q2xhc3NDYWNoZS5oYXMocykpY29udGludWU7aWYoZS5jYW5kaWRhdGVSdWxlQ2FjaGUuaGFzKHMpKXtpPWkuY29uY2F0KEFycmF5LmZyb20oZS5jYW5kaWRhdGVSdWxlQ2FjaGUuZ2V0KHMpKSk7Y29udGludWV9bGV0IGE9QXJyYXkuZnJvbShZbyhzLGUpKTtpZihhLmxlbmd0aD09PTApe2Uubm90Q2xhc3NDYWNoZS5hZGQocyk7Y29udGludWV9ZS5jbGFzc0NhY2hlLnNldChzLGEpO2xldCBvPWUuY2FuZGlkYXRlUnVsZUNhY2hlLmdldChzKT8/bmV3IFNldDtlLmNhbmRpZGF0ZVJ1bGVDYWNoZS5zZXQocyxvKTtmb3IobGV0IGwgb2YgYSl7bGV0W3tzb3J0OmMsb3B0aW9uczpmfSxkXT1sO2lmKGYucmVzcGVjdEltcG9ydGFudCYmbil7bGV0IGg9ZWUucm9vdCh7bm9kZXM6W2QuY2xvbmUoKV19KTtoLndhbGtSdWxlcyhuKSxkPWgubm9kZXNbMF19bGV0IHA9W2MsdD9kLmNsb25lKCk6ZF07by5hZGQocCksZS5ydWxlQ2FjaGUuYWRkKHApLGkucHVzaChwKX19cmV0dXJuIGl9ZnVuY3Rpb24gS28ocil7cmV0dXJuIHIuc3RhcnRzV2l0aCgiWyIpJiZyLmVuZHNXaXRoKCJdIil9dmFyIG5zLHZfLENfLG9zPVAoKCk9Pnt1KCk7T3QoKTtucz1wZShpdCgpKTtxbygpO0t0KCk7R24oKTtGcigpO0JlKCk7SXQoKTtWbygpO0xvKCk7QnIoKTtPaSgpO0JvKCk7enQoKTtjdCgpO1dvKCk7dl89KDAsbnMuZGVmYXVsdCkocj0+ci5maXJzdC5maWx0ZXIoKHt0eXBlOmV9KT0+ZT09PSJjbGFzcyIpLnBvcCgpLnZhbHVlKTtDXz0vXlthLXpfLV0vfSk7dmFyIFRoLFJoPVAoKCk9Pnt1KCk7VGg9e319KTtmdW5jdGlvbiBxXyhyKXt0cnl7cmV0dXJuIFRoLmNyZWF0ZUhhc2goIm1kNSIpLnVwZGF0ZShyLCJ1dGYtOCIpLmRpZ2VzdCgiYmluYXJ5Iil9Y2F0Y2goZSl7cmV0dXJuIiJ9fWZ1bmN0aW9uIFBoKHIsZSl7bGV0IHQ9ZS50b1N0cmluZygpO2lmKCF0LmluY2x1ZGVzKCJAdGFpbHdpbmQiKSlyZXR1cm4hMTtsZXQgaT1Oby5nZXQociksbj1xXyh0KSxzPWkhPT1uO3JldHVybiBOby5zZXQocixuKSxzfXZhciBJaD1QKCgpPT57dSgpO1JoKCk7SXQoKX0pO2Z1bmN0aW9uIHVzKHIpe3JldHVybihyPjBuKS0ocjwwbil9dmFyIERoPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBxaChyLGUpe2xldCB0PTBuLGk9MG47Zm9yKGxldFtuLHNdb2YgZSlyJm4mJih0PXR8bixpPWl8cyk7cmV0dXJuIHImfnR8aX12YXIgJGg9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIExoKHIpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHIpZT1lPz90LGU9ZT50P2U6dDtyZXR1cm4gZX1mdW5jdGlvbiAkXyhyLGUpe2xldCB0PXIubGVuZ3RoLGk9ZS5sZW5ndGgsbj10PGk/dDppO2ZvcihsZXQgcz0wO3M8bjtzKyspe2xldCBhPXIuY2hhckNvZGVBdChzKS1lLmNoYXJDb2RlQXQocyk7aWYoYSE9PTApcmV0dXJuIGF9cmV0dXJuIHQtaX12YXIgWG8sTWg9UCgoKT0+e3UoKTtEaCgpOyRoKCk7WG89Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLm9mZnNldHM9e2RlZmF1bHRzOjBuLGJhc2U6MG4sY29tcG9uZW50czowbix1dGlsaXRpZXM6MG4sdmFyaWFudHM6MG4sdXNlcjowbn0sdGhpcy5sYXllclBvc2l0aW9ucz17ZGVmYXVsdHM6MG4sYmFzZToxbixjb21wb25lbnRzOjJuLHV0aWxpdGllczozbix1c2VyOjRuLHZhcmlhbnRzOjVufSx0aGlzLnJlc2VydmVkVmFyaWFudEJpdHM9MG4sdGhpcy52YXJpYW50T2Zmc2V0cz1uZXcgTWFwfWNyZWF0ZShlKXtyZXR1cm57bGF5ZXI6ZSxwYXJlbnRMYXllcjplLGFyYml0cmFyeTowbix2YXJpYW50czowbixwYXJhbGxlbEluZGV4OjBuLGluZGV4OnRoaXMub2Zmc2V0c1tlXSsrLHByb3BlcnR5T2Zmc2V0OjBuLHByb3BlcnR5OiIiLG9wdGlvbnM6W119fWFyYml0cmFyeVByb3BlcnR5KGUpe3JldHVybnsuLi50aGlzLmNyZWF0ZSgidXRpbGl0aWVzIiksYXJiaXRyYXJ5OjFuLHByb3BlcnR5OmV9fWZvclZhcmlhbnQoZSx0PTApe2xldCBpPXRoaXMudmFyaWFudE9mZnNldHMuZ2V0KGUpO2lmKGk9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBvZmZzZXQgZm9yIHVua25vd24gdmFyaWFudCAke2V9YCk7cmV0dXJuey4uLnRoaXMuY3JlYXRlKCJ2YXJpYW50cyIpLHZhcmlhbnRzOmk8PEJpZ0ludCh0KX19YXBwbHlWYXJpYW50T2Zmc2V0KGUsdCxpKXtyZXR1cm4gaS52YXJpYW50PXQudmFyaWFudHMsey4uLmUsbGF5ZXI6InZhcmlhbnRzIixwYXJlbnRMYXllcjplLmxheWVyPT09InZhcmlhbnRzIj9lLnBhcmVudExheWVyOmUubGF5ZXIsdmFyaWFudHM6ZS52YXJpYW50c3x0LnZhcmlhbnRzLG9wdGlvbnM6aS5zb3J0P1tdLmNvbmNhdChpLGUub3B0aW9ucyk6ZS5vcHRpb25zLHBhcmFsbGVsSW5kZXg6TGgoW2UucGFyYWxsZWxJbmRleCx0LnBhcmFsbGVsSW5kZXhdKX19YXBwbHlQYXJhbGxlbE9mZnNldChlLHQpe3JldHVybnsuLi5lLHBhcmFsbGVsSW5kZXg6QmlnSW50KHQpfX1yZWNvcmRWYXJpYW50cyhlLHQpe2ZvcihsZXQgaSBvZiBlKXRoaXMucmVjb3JkVmFyaWFudChpLHQoaSkpfXJlY29yZFZhcmlhbnQoZSx0PTEpe3JldHVybiB0aGlzLnZhcmlhbnRPZmZzZXRzLnNldChlLDFuPDx0aGlzLnJlc2VydmVkVmFyaWFudEJpdHMpLHRoaXMucmVzZXJ2ZWRWYXJpYW50Qml0cys9QmlnSW50KHQpLHsuLi50aGlzLmNyZWF0ZSgidmFyaWFudHMiKSx2YXJpYW50czp0aGlzLnZhcmlhbnRPZmZzZXRzLmdldChlKX19Y29tcGFyZShlLHQpe2lmKGUubGF5ZXIhPT10LmxheWVyKXJldHVybiB0aGlzLmxheWVyUG9zaXRpb25zW2UubGF5ZXJdLXRoaXMubGF5ZXJQb3NpdGlvbnNbdC5sYXllcl07aWYoZS5wYXJlbnRMYXllciE9PXQucGFyZW50TGF5ZXIpcmV0dXJuIHRoaXMubGF5ZXJQb3NpdGlvbnNbZS5wYXJlbnRMYXllcl0tdGhpcy5sYXllclBvc2l0aW9uc1t0LnBhcmVudExheWVyXTtmb3IobGV0IGkgb2YgZS5vcHRpb25zKWZvcihsZXQgbiBvZiB0Lm9wdGlvbnMpe2lmKGkuaWQhPT1uLmlkfHwhaS5zb3J0fHwhbi5zb3J0KWNvbnRpbnVlO2xldCBzPUxoKFtpLnZhcmlhbnQsbi52YXJpYW50XSk/PzBuLGE9fihzfHMtMW4pLG89ZS52YXJpYW50cyZhLGw9dC52YXJpYW50cyZhO2lmKG8hPT1sKWNvbnRpbnVlO2xldCBjPWkuc29ydCh7dmFsdWU6aS52YWx1ZSxtb2RpZmllcjppLm1vZGlmaWVyfSx7dmFsdWU6bi52YWx1ZSxtb2RpZmllcjpuLm1vZGlmaWVyfSk7aWYoYyE9PTApcmV0dXJuIGN9cmV0dXJuIGUudmFyaWFudHMhPT10LnZhcmlhbnRzP2UudmFyaWFudHMtdC52YXJpYW50czplLnBhcmFsbGVsSW5kZXghPT10LnBhcmFsbGVsSW5kZXg/ZS5wYXJhbGxlbEluZGV4LXQucGFyYWxsZWxJbmRleDplLmFyYml0cmFyeSE9PXQuYXJiaXRyYXJ5P2UuYXJiaXRyYXJ5LXQuYXJiaXRyYXJ5OmUucHJvcGVydHlPZmZzZXQhPT10LnByb3BlcnR5T2Zmc2V0P2UucHJvcGVydHlPZmZzZXQtdC5wcm9wZXJ0eU9mZnNldDplLmluZGV4LXQuaW5kZXh9cmVjYWxjdWxhdGVWYXJpYW50T2Zmc2V0cygpe2xldCBlPUFycmF5LmZyb20odGhpcy52YXJpYW50T2Zmc2V0cy5lbnRyaWVzKCkpLmZpbHRlcigoW25dKT0+bi5zdGFydHNXaXRoKCJbIikpLnNvcnQoKFtuXSxbc10pPT4kXyhuLHMpKSx0PWUubWFwKChbLG5dKT0+bikuc29ydCgobixzKT0+dXMobi1zKSk7cmV0dXJuIGUubWFwKChbLG5dLHMpPT5bbix0W3NdXSkuZmlsdGVyKChbbixzXSk9Pm4hPT1zKX1yZW1hcEFyYml0cmFyeVZhcmlhbnRPZmZzZXRzKGUpe2xldCB0PXRoaXMucmVjYWxjdWxhdGVWYXJpYW50T2Zmc2V0cygpO3JldHVybiB0Lmxlbmd0aD09PTA/ZTplLm1hcChpPT57bGV0W24sc109aTtyZXR1cm4gbj17Li4ubix2YXJpYW50czpxaChuLnZhcmlhbnRzLHQpfSxbbixzXX0pfXNvcnRBcmJpdHJhcnlQcm9wZXJ0aWVzKGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldFthXW9mIGUpYS5hcmJpdHJhcnk9PT0xbiYmdC5hZGQoYS5wcm9wZXJ0eSk7aWYodC5zaXplPT09MClyZXR1cm4gZTtsZXQgaT1BcnJheS5mcm9tKHQpLnNvcnQoKSxuPW5ldyBNYXAscz0xbjtmb3IobGV0IGEgb2YgaSluLnNldChhLHMrKyk7cmV0dXJuIGUubWFwKGE9PntsZXRbbyxsXT1hO3JldHVybiBvPXsuLi5vLHByb3BlcnR5T2Zmc2V0Om4uZ2V0KG8ucHJvcGVydHkpPz8wbn0sW28sbF19KX1zb3J0KGUpe3JldHVybiBlPXRoaXMucmVtYXBBcmJpdHJhcnlWYXJpYW50T2Zmc2V0cyhlKSxlPXRoaXMuc29ydEFyYml0cmFyeVByb3BlcnRpZXMoZSksZS5zb3J0KChbdF0sW2ldKT0+dXModGhpcy5jb21wYXJlKHQsaSkpKX19fSk7ZnVuY3Rpb24gdGwocixlKXtsZXQgdD1yLnRhaWx3aW5kQ29uZmlnLnByZWZpeDtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0K2V9ZnVuY3Rpb24gQmgoe3R5cGU6cj0iYW55IiwuLi5lfSl7bGV0IHQ9W10uY29uY2F0KHIpO3JldHVybnsuLi5lLHR5cGVzOnQubWFwKGk9PkFycmF5LmlzQXJyYXkoaSk/e3R5cGU6aVswXSwuLi5pWzFdfTp7dHlwZTppLHByZWZlck9uQ29uZmxpY3Q6ITF9KX19ZnVuY3Rpb24gTF8ocil7bGV0IGU9W10sdD0iIixpPTA7Zm9yKGxldCBuPTA7bjxyLmxlbmd0aDtuKyspe2xldCBzPXJbbl07aWYocz09PSJcXCIpdCs9IlxcIityWysrbl07ZWxzZSBpZihzPT09InsiKSsraSxlLnB1c2godC50cmltKCkpLHQ9IiI7ZWxzZSBpZihzPT09In0iKXtpZigtLWk8MCl0aHJvdyBuZXcgRXJyb3IoIllvdXIgeyBhbmQgfSBhcmUgdW5iYWxhbmNlZC4iKTtlLnB1c2godC50cmltKCkpLHQ9IiJ9ZWxzZSB0Kz1zfXJldHVybiB0Lmxlbmd0aD4wJiZlLnB1c2godC50cmltKCkpLGU9ZS5maWx0ZXIobj0+biE9PSIiKSxlfWZ1bmN0aW9uIE1fKHIsZSx7YmVmb3JlOnQ9W119PXt9KXtpZih0PVtdLmNvbmNhdCh0KSx0Lmxlbmd0aDw9MCl7ci5wdXNoKGUpO3JldHVybn1sZXQgaT1yLmxlbmd0aC0xO2ZvcihsZXQgbiBvZiB0KXtsZXQgcz1yLmluZGV4T2Yobik7cyE9PS0xJiYoaT1NYXRoLm1pbihpLHMpKX1yLnNwbGljZShpLDAsZSl9ZnVuY3Rpb24gRmgocil7cmV0dXJuIEFycmF5LmlzQXJyYXkocik/ci5mbGF0TWFwKGU9PiFBcnJheS5pc0FycmF5KGUpJiYha2UoZSk/ZTpscihlKSk6RmgoW3JdKX1mdW5jdGlvbiBOXyhyLGUpe3JldHVybigwLFpvLmRlZmF1bHQpKGk9PntsZXQgbj1bXTtyZXR1cm4gZSYmZShpKSxpLndhbGtDbGFzc2VzKHM9PntuLnB1c2gocy52YWx1ZSl9KSxufSkudHJhbnNmb3JtU3luYyhyKX1mdW5jdGlvbiBCXyhyKXtyLndhbGtQc2V1ZG9zKGU9PntlLnZhbHVlPT09Ijpub3QiJiZlLnJlbW92ZSgpfSl9ZnVuY3Rpb24gRl8ocixlPXtjb250YWluc05vbk9uRGVtYW5kYWJsZTohMX0sdD0wKXtsZXQgaT1bXSxuPVtdO3IudHlwZT09PSJydWxlIj9uLnB1c2goLi4uci5zZWxlY3RvcnMpOnIudHlwZT09PSJhdHJ1bGUiJiZyLndhbGtSdWxlcyhzPT5uLnB1c2goLi4ucy5zZWxlY3RvcnMpKTtmb3IobGV0IHMgb2Ygbil7bGV0IGE9Tl8ocyxCXyk7YS5sZW5ndGg9PT0wJiYoZS5jb250YWluc05vbk9uRGVtYW5kYWJsZT0hMCk7Zm9yKGxldCBvIG9mIGEpaS5wdXNoKG8pfXJldHVybiB0PT09MD9bZS5jb250YWluc05vbk9uRGVtYW5kYWJsZXx8aS5sZW5ndGg9PT0wLGldOml9ZnVuY3Rpb24gZnMocil7cmV0dXJuIEZoKHIpLmZsYXRNYXAoZT0+e2xldCB0PW5ldyBNYXAsW2ksbl09Rl8oZSk7cmV0dXJuIGkmJm4udW5zaGlmdChndCksbi5tYXAocz0+KHQuaGFzKGUpfHx0LnNldChlLGUpLFtzLHQuZ2V0KGUpXSkpfSl9ZnVuY3Rpb24gbHMocil7cmV0dXJuIHIuc3RhcnRzV2l0aCgiQCIpfHxyLmluY2x1ZGVzKCImIil9ZnVuY3Rpb24gUmkocil7cj1yLnJlcGxhY2UoL1xuKy9nLCIiKS5yZXBsYWNlKC9cc3sxLH0vZywiICIpLnRyaW0oKTtsZXQgZT1MXyhyKS5tYXAodD0+e2lmKCF0LnN0YXJ0c1dpdGgoIkAiKSlyZXR1cm4oe2Zvcm1hdDpzfSk9PnModCk7bGV0WyxpLG5dPS9AKFxTKikoIC4rfFsoe10uKik/L2cuZXhlYyh0KTtyZXR1cm4oe3dyYXA6c30pPT5zKGVlLmF0UnVsZSh7bmFtZTppLHBhcmFtczpuPy50cmltKCk/PyIifSkpfSkucmV2ZXJzZSgpO3JldHVybiB0PT57Zm9yKGxldCBpIG9mIGUpaSh0KX19ZnVuY3Rpb24gal8ocixlLHt2YXJpYW50TGlzdDp0LHZhcmlhbnRNYXA6aSxvZmZzZXRzOm4sY2xhc3NMaXN0OnN9KXtmdW5jdGlvbiBhKHAsaCl7cmV0dXJuIHA/KDAsTmguZGVmYXVsdCkocixwLGgpOnJ9ZnVuY3Rpb24gbyhwKXtyZXR1cm4gdXIoci5wcmVmaXgscCl9ZnVuY3Rpb24gbChwLGgpe3JldHVybiBwPT09Z3Q/Z3Q6aC5yZXNwZWN0UHJlZml4P2UudGFpbHdpbmRDb25maWcucHJlZml4K3A6cH1mdW5jdGlvbiBjKHAsaCxiPXt9KXtsZXQgdj1rdChwKSx5PWEoWyJ0aGVtZSIsLi4udl0saCk7cmV0dXJuIG10KHZbMF0pKHksYil9bGV0IGY9MCxkPXtwb3N0Y3NzOmVlLHByZWZpeDpvLGU6VGUsY29uZmlnOmEsdGhlbWU6Yyxjb3JlUGx1Z2luczpwPT5BcnJheS5pc0FycmF5KHIuY29yZVBsdWdpbnMpP3IuY29yZVBsdWdpbnMuaW5jbHVkZXMocCk6YShbImNvcmVQbHVnaW5zIixwXSwhMCksdmFyaWFudHM6KCk9PltdLGFkZEJhc2UocCl7Zm9yKGxldFtoLGJdb2YgZnMocCkpe2xldCB2PWwoaCx7fSkseT1uLmNyZWF0ZSgiYmFzZSIpO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModil8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodixbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh2KS5wdXNoKFt7c29ydDp5LGxheWVyOiJiYXNlIn0sYl0pfX0sYWRkRGVmYXVsdHMocCxoKXtsZXQgYj17W2BAZGVmYXVsdHMgJHtwfWBdOmh9O2ZvcihsZXRbdix5XW9mIGZzKGIpKXtsZXQgdz1sKHYse30pO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKFt7c29ydDpuLmNyZWF0ZSgiZGVmYXVsdHMiKSxsYXllcjoiZGVmYXVsdHMifSx5XSl9fSxhZGRDb21wb25lbnRzKHAsaCl7aD1PYmplY3QuYXNzaWduKHt9LHtwcmVzZXJ2ZVNvdXJjZTohMSxyZXNwZWN0UHJlZml4OiEwLHJlc3BlY3RJbXBvcnRhbnQ6ITF9LEFycmF5LmlzQXJyYXkoaCk/e306aCk7Zm9yKGxldFt2LHldb2YgZnMocCkpe2xldCB3PWwodixoKTtzLmFkZCh3KSxlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHcpfHxlLmNhbmRpZGF0ZVJ1bGVNYXAuc2V0KHcsW10pLGUuY2FuZGlkYXRlUnVsZU1hcC5nZXQodykucHVzaChbe3NvcnQ6bi5jcmVhdGUoImNvbXBvbmVudHMiKSxsYXllcjoiY29tcG9uZW50cyIsb3B0aW9uczpofSx5XSl9fSxhZGRVdGlsaXRpZXMocCxoKXtoPU9iamVjdC5hc3NpZ24oe30se3ByZXNlcnZlU291cmNlOiExLHJlc3BlY3RQcmVmaXg6ITAscmVzcGVjdEltcG9ydGFudDohMH0sQXJyYXkuaXNBcnJheShoKT97fTpoKTtmb3IobGV0W3YseV1vZiBmcyhwKSl7bGV0IHc9bCh2LGgpO3MuYWRkKHcpLGUuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKFt7c29ydDpuLmNyZWF0ZSgidXRpbGl0aWVzIiksbGF5ZXI6InV0aWxpdGllcyIsb3B0aW9uczpofSx5XSl9fSxtYXRjaFV0aWxpdGllczpmdW5jdGlvbihwLGgpe2g9Qmgoey4uLntyZXNwZWN0UHJlZml4OiEwLHJlc3BlY3RJbXBvcnRhbnQ6ITAsbW9kaWZpZXJzOiExfSwuLi5ofSk7bGV0IHY9bi5jcmVhdGUoInV0aWxpdGllcyIpO2ZvcihsZXQgeSBpbiBwKXtsZXQgUz1mdW5jdGlvbihULHtpc09ubHlQbHVnaW46Qn0pe2xldFtOLFIsRl09ZWEoaC50eXBlcyxULGgscik7aWYoTj09PXZvaWQgMClyZXR1cm5bXTtpZighaC50eXBlcy5zb21lKCh7dHlwZTpVfSk9PlU9PT1SKSlpZihCKUcud2FybihbYFVubmVjZXNzYXJ5IHR5cGVoaW50IFxgJHtSfVxgIGluIFxgJHt5fS0ke1R9XGAuYCxgWW91IGNhbiBzYWZlbHkgdXBkYXRlIGl0IHRvIFxgJHt5fS0ke1QucmVwbGFjZShSKyI6IiwiIil9XGAuYF0pO2Vsc2UgcmV0dXJuW107aWYoIWNyKE4pKXJldHVybltdO2xldCBZPXtnZXQgbW9kaWZpZXIoKXtyZXR1cm4gaC5tb2RpZmllcnN8fEcud2FybihgbW9kaWZpZXItdXNlZC13aXRob3V0LW9wdGlvbnMtZm9yLSR7eX1gLFsiWW91ciBwbHVnaW4gbXVzdCBzZXQgYG1vZGlmaWVyczogdHJ1ZWAgaW4gaXRzIG9wdGlvbnMgdG8gc3VwcG9ydCBtb2RpZmllcnMuIl0pLEZ9fSxfPXdlKHIsImdlbmVyYWxpemVkTW9kaWZpZXJzIik7cmV0dXJuW10uY29uY2F0KF8/ayhOLFkpOmsoTikpLmZpbHRlcihCb29sZWFuKS5tYXAoVT0+KHtbUW4oeSxUKV06VX0pKX0sdz1sKHksaCksaz1wW3ldO3MuYWRkKFt3LGhdKTtsZXQgRT1be3NvcnQ6dixsYXllcjoidXRpbGl0aWVzIixvcHRpb25zOmh9LFNdO2UuY2FuZGlkYXRlUnVsZU1hcC5oYXModyl8fGUuY2FuZGlkYXRlUnVsZU1hcC5zZXQodyxbXSksZS5jYW5kaWRhdGVSdWxlTWFwLmdldCh3KS5wdXNoKEUpfX0sbWF0Y2hDb21wb25lbnRzOmZ1bmN0aW9uKHAsaCl7aD1CaCh7Li4ue3Jlc3BlY3RQcmVmaXg6ITAscmVzcGVjdEltcG9ydGFudDohMSxtb2RpZmllcnM6ITF9LC4uLmh9KTtsZXQgdj1uLmNyZWF0ZSgiY29tcG9uZW50cyIpO2ZvcihsZXQgeSBpbiBwKXtsZXQgUz1mdW5jdGlvbihULHtpc09ubHlQbHVnaW46Qn0pe2xldFtOLFIsRl09ZWEoaC50eXBlcyxULGgscik7aWYoTj09PXZvaWQgMClyZXR1cm5bXTtpZighaC50eXBlcy5zb21lKCh7dHlwZTpVfSk9PlU9PT1SKSlpZihCKUcud2FybihbYFVubmVjZXNzYXJ5IHR5cGVoaW50IFxgJHtSfVxgIGluIFxgJHt5fS0ke1R9XGAuYCxgWW91IGNhbiBzYWZlbHkgdXBkYXRlIGl0IHRvIFxgJHt5fS0ke1QucmVwbGFjZShSKyI6IiwiIil9XGAuYF0pO2Vsc2UgcmV0dXJuW107aWYoIWNyKE4pKXJldHVybltdO2xldCBZPXtnZXQgbW9kaWZpZXIoKXtyZXR1cm4gaC5tb2RpZmllcnN8fEcud2FybihgbW9kaWZpZXItdXNlZC13aXRob3V0LW9wdGlvbnMtZm9yLSR7eX1gLFsiWW91ciBwbHVnaW4gbXVzdCBzZXQgYG1vZGlmaWVyczogdHJ1ZWAgaW4gaXRzIG9wdGlvbnMgdG8gc3VwcG9ydCBtb2RpZmllcnMuIl0pLEZ9fSxfPXdlKHIsImdlbmVyYWxpemVkTW9kaWZpZXJzIik7cmV0dXJuW10uY29uY2F0KF8/ayhOLFkpOmsoTikpLmZpbHRlcihCb29sZWFuKS5tYXAoVT0+KHtbUW4oeSxUKV06VX0pKX0sdz1sKHksaCksaz1wW3ldO3MuYWRkKFt3LGhdKTtsZXQgRT1be3NvcnQ6dixsYXllcjoiY29tcG9uZW50cyIsb3B0aW9uczpofSxTXTtlLmNhbmRpZGF0ZVJ1bGVNYXAuaGFzKHcpfHxlLmNhbmRpZGF0ZVJ1bGVNYXAuc2V0KHcsW10pLGUuY2FuZGlkYXRlUnVsZU1hcC5nZXQodykucHVzaChFKX19LGFkZFZhcmlhbnQocCxoLGI9e30pe2g9W10uY29uY2F0KGgpLm1hcCh2PT57aWYodHlwZW9mIHYhPSJzdHJpbmciKXJldHVybih5PXt9KT0+e2xldHthcmdzOncsbW9kaWZ5U2VsZWN0b3JzOmssY29udGFpbmVyOlMsc2VwYXJhdG9yOkUsd3JhcDpULGZvcm1hdDpCfT15LE49dihPYmplY3QuYXNzaWduKHttb2RpZnlTZWxlY3RvcnM6ayxjb250YWluZXI6UyxzZXBhcmF0b3I6RX0sYi50eXBlPT09Sm8uTWF0Y2hWYXJpYW50JiZ7YXJnczp3LHdyYXA6VCxmb3JtYXQ6Qn0pKTtpZih0eXBlb2YgTj09InN0cmluZyImJiFscyhOKSl0aHJvdyBuZXcgRXJyb3IoYFlvdXIgY3VzdG9tIHZhcmlhbnQgXGAke3B9XGAgaGFzIGFuIGludmFsaWQgZm9ybWF0IHN0cmluZy4gTWFrZSBzdXJlIGl0J3MgYW4gYXQtcnVsZSBvciBjb250YWlucyBhIFxgJlxgIHBsYWNlaG9sZGVyLmApO3JldHVybiBBcnJheS5pc0FycmF5KE4pP04uZmlsdGVyKFI9PnR5cGVvZiBSPT0ic3RyaW5nIikubWFwKFI9PlJpKFIpKTpOJiZ0eXBlb2YgTj09InN0cmluZyImJlJpKE4pKHkpfTtpZighbHModikpdGhyb3cgbmV3IEVycm9yKGBZb3VyIGN1c3RvbSB2YXJpYW50IFxgJHtwfVxgIGhhcyBhbiBpbnZhbGlkIGZvcm1hdCBzdHJpbmcuIE1ha2Ugc3VyZSBpdCdzIGFuIGF0LXJ1bGUgb3IgY29udGFpbnMgYSBcYCZcYCBwbGFjZWhvbGRlci5gKTtyZXR1cm4gUmkodil9KSxNXyh0LHAsYiksaS5zZXQocCxoKSxlLnZhcmlhbnRPcHRpb25zLnNldChwLGIpfSxtYXRjaFZhcmlhbnQocCxoLGIpe2xldCB2PWI/LmlkPz8rK2YseT1wPT09IkAiLHc9d2UociwiZ2VuZXJhbGl6ZWRNb2RpZmllcnMiKTtmb3IobGV0W1MsRV1vZiBPYmplY3QuZW50cmllcyhiPy52YWx1ZXM/P3t9KSlTIT09IkRFRkFVTFQiJiZkLmFkZFZhcmlhbnQoeT9gJHtwfSR7U31gOmAke3B9LSR7U31gLCh7YXJnczpULGNvbnRhaW5lcjpCfSk9PmgoRSx3P3ttb2RpZmllcjpUPy5tb2RpZmllcixjb250YWluZXI6Qn06e2NvbnRhaW5lcjpCfSksey4uLmIsdmFsdWU6RSxpZDp2LHR5cGU6Sm8uTWF0Y2hWYXJpYW50LHZhcmlhbnRJbmZvOmVsLkJhc2V9KTtsZXQgaz0iREVGQVVMVCJpbihiPy52YWx1ZXM/P3t9KTtkLmFkZFZhcmlhbnQocCwoe2FyZ3M6Uyxjb250YWluZXI6RX0pPT5TPy52YWx1ZT09PVRpJiYhaz9udWxsOmgoUz8udmFsdWU9PT1UaT9iLnZhbHVlcy5ERUZBVUxUOlM/LnZhbHVlPz8odHlwZW9mIFM9PSJzdHJpbmciP1M6IiIpLHc/e21vZGlmaWVyOlM/Lm1vZGlmaWVyLGNvbnRhaW5lcjpFfTp7Y29udGFpbmVyOkV9KSx7Li4uYixpZDp2LHR5cGU6Sm8uTWF0Y2hWYXJpYW50LHZhcmlhbnRJbmZvOmVsLkR5bmFtaWN9KX19O3JldHVybiBkfWZ1bmN0aW9uIGNzKHIpe3JldHVybiBybC5oYXMocil8fHJsLnNldChyLG5ldyBNYXApLHJsLmdldChyKX1mdW5jdGlvbiBqaChyLGUpe2xldCB0PSExLGk9bmV3IE1hcDtmb3IobGV0IG4gb2Ygcil7aWYoIW4pY29udGludWU7bGV0IHM9b2EucGFyc2UobiksYT1zLmhhc2g/cy5ocmVmLnJlcGxhY2Uocy5oYXNoLCIiKTpzLmhyZWY7YT1zLnNlYXJjaD9hLnJlcGxhY2Uocy5zZWFyY2gsIiIpOmE7bGV0IG89YmUuc3RhdFN5bmMoZGVjb2RlVVJJQ29tcG9uZW50KGEpLHt0aHJvd0lmTm9FbnRyeTohMX0pPy5tdGltZU1zOyFvfHwoKCFlLmhhcyhuKXx8bz5lLmdldChuKSkmJih0PSEwKSxpLnNldChuLG8pKX1yZXR1cm5bdCxpXX1mdW5jdGlvbiB6aChyKXtyLndhbGtBdFJ1bGVzKGU9PntbInJlc3BvbnNpdmUiLCJ2YXJpYW50cyJdLmluY2x1ZGVzKGUubmFtZSkmJih6aChlKSxlLmJlZm9yZShlLm5vZGVzKSxlLnJlbW92ZSgpKX0pfWZ1bmN0aW9uIHpfKHIpe2xldCBlPVtdO3JldHVybiByLmVhY2godD0+e3QudHlwZT09PSJhdHJ1bGUiJiZbInJlc3BvbnNpdmUiLCJ2YXJpYW50cyJdLmluY2x1ZGVzKHQubmFtZSkmJih0Lm5hbWU9ImxheWVyIix0LnBhcmFtcz0idXRpbGl0aWVzIil9KSxyLndhbGtBdFJ1bGVzKCJsYXllciIsdD0+e2lmKHpoKHQpLHQucGFyYW1zPT09ImJhc2UiKXtmb3IobGV0IGkgb2YgdC5ub2RlcyllLnB1c2goZnVuY3Rpb24oe2FkZEJhc2U6bn0pe24oaSx7cmVzcGVjdFByZWZpeDohMX0pfSk7dC5yZW1vdmUoKX1lbHNlIGlmKHQucGFyYW1zPT09ImNvbXBvbmVudHMiKXtmb3IobGV0IGkgb2YgdC5ub2RlcyllLnB1c2goZnVuY3Rpb24oe2FkZENvbXBvbmVudHM6bn0pe24oaSx7cmVzcGVjdFByZWZpeDohMSxwcmVzZXJ2ZVNvdXJjZTohMH0pfSk7dC5yZW1vdmUoKX1lbHNlIGlmKHQucGFyYW1zPT09InV0aWxpdGllcyIpe2ZvcihsZXQgaSBvZiB0Lm5vZGVzKWUucHVzaChmdW5jdGlvbih7YWRkVXRpbGl0aWVzOm59KXtuKGkse3Jlc3BlY3RQcmVmaXg6ITEscHJlc2VydmVTb3VyY2U6ITB9KX0pO3QucmVtb3ZlKCl9fSksZX1mdW5jdGlvbiBVXyhyLGUpe2xldCB0PU9iamVjdC5lbnRyaWVzKHsuLi5zZSwuLi55aH0pLm1hcCgoW2wsY10pPT5yLnRhaWx3aW5kQ29uZmlnLmNvcmVQbHVnaW5zLmluY2x1ZGVzKGwpP2M6bnVsbCkuZmlsdGVyKEJvb2xlYW4pLGk9ci50YWlsd2luZENvbmZpZy5wbHVnaW5zLm1hcChsPT4obC5fX2lzT3B0aW9uc0Z1bmN0aW9uJiYobD1sKCkpLHR5cGVvZiBsPT0iZnVuY3Rpb24iP2w6bC5oYW5kbGVyKSksbj16XyhlKSxzPVtzZS5jaGlsZFZhcmlhbnQsc2UucHNldWRvRWxlbWVudFZhcmlhbnRzLHNlLnBzZXVkb0NsYXNzVmFyaWFudHMsc2UuaGFzVmFyaWFudHMsc2UuYXJpYVZhcmlhbnRzLHNlLmRhdGFWYXJpYW50c10sYT1bc2Uuc3VwcG9ydHNWYXJpYW50cyxzZS5yZWR1Y2VkTW90aW9uVmFyaWFudHMsc2UucHJlZmVyc0NvbnRyYXN0VmFyaWFudHMsc2Uuc2NyZWVuVmFyaWFudHMsc2Uub3JpZW50YXRpb25WYXJpYW50cyxzZS5kaXJlY3Rpb25WYXJpYW50cyxzZS5kYXJrVmFyaWFudHMsc2UuZm9yY2VkQ29sb3JzVmFyaWFudHMsc2UucHJpbnRWYXJpYW50XTtyZXR1cm4oci50YWlsd2luZENvbmZpZy5kYXJrTW9kZT09PSJjbGFzcyJ8fEFycmF5LmlzQXJyYXkoci50YWlsd2luZENvbmZpZy5kYXJrTW9kZSkmJnIudGFpbHdpbmRDb25maWcuZGFya01vZGVbMF09PT0iY2xhc3MiKSYmKGE9W3NlLnN1cHBvcnRzVmFyaWFudHMsc2UucmVkdWNlZE1vdGlvblZhcmlhbnRzLHNlLnByZWZlcnNDb250cmFzdFZhcmlhbnRzLHNlLmRhcmtWYXJpYW50cyxzZS5zY3JlZW5WYXJpYW50cyxzZS5vcmllbnRhdGlvblZhcmlhbnRzLHNlLmRpcmVjdGlvblZhcmlhbnRzLHNlLmZvcmNlZENvbG9yc1ZhcmlhbnRzLHNlLnByaW50VmFyaWFudF0pLFsuLi50LC4uLnMsLi4uaSwuLi5hLC4uLm5dfWZ1bmN0aW9uIFZfKHIsZSl7bGV0IHQ9W10saT1uZXcgTWFwO2UudmFyaWFudE1hcD1pO2xldCBuPW5ldyBYbztlLm9mZnNldHM9bjtsZXQgcz1uZXcgU2V0LGE9al8oZS50YWlsd2luZENvbmZpZyxlLHt2YXJpYW50TGlzdDp0LHZhcmlhbnRNYXA6aSxvZmZzZXRzOm4sY2xhc3NMaXN0OnN9KTtmb3IobGV0IGYgb2YgcilpZihBcnJheS5pc0FycmF5KGYpKWZvcihsZXQgZCBvZiBmKWQoYSk7ZWxzZSBmPy4oYSk7bi5yZWNvcmRWYXJpYW50cyh0LGY9PmkuZ2V0KGYpLmxlbmd0aCk7Zm9yKGxldFtmLGRdb2YgaS5lbnRyaWVzKCkpZS52YXJpYW50TWFwLnNldChmLGQubWFwKChwLGgpPT5bbi5mb3JWYXJpYW50KGYsaCkscF0pKTtsZXQgbz0oZS50YWlsd2luZENvbmZpZy5zYWZlbGlzdD8/W10pLmZpbHRlcihCb29sZWFuKTtpZihvLmxlbmd0aD4wKXtsZXQgZj1bXTtmb3IobGV0IGQgb2Ygbyl7aWYodHlwZW9mIGQ9PSJzdHJpbmciKXtlLmNoYW5nZWRDb250ZW50LnB1c2goe2NvbnRlbnQ6ZCxleHRlbnNpb246Imh0bWwifSk7Y29udGludWV9aWYoZCBpbnN0YW5jZW9mIFJlZ0V4cCl7Ry53YXJuKCJyb290LXJlZ2V4IixbIlJlZ3VsYXIgZXhwcmVzc2lvbnMgaW4gYHNhZmVsaXN0YCB3b3JrIGRpZmZlcmVudGx5IGluIFRhaWx3aW5kIENTUyB2My4wLiIsIlVwZGF0ZSB5b3VyIGBzYWZlbGlzdGAgY29uZmlndXJhdGlvbiB0byBlbGltaW5hdGUgdGhpcyB3YXJuaW5nLiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudC1jb25maWd1cmF0aW9uI3NhZmVsaXN0aW5nLWNsYXNzZXMiXSk7Y29udGludWV9Zi5wdXNoKGQpfWlmKGYubGVuZ3RoPjApe2xldCBkPW5ldyBNYXAscD1lLnRhaWx3aW5kQ29uZmlnLnByZWZpeC5sZW5ndGgsaD1mLnNvbWUoYj0+Yi5wYXR0ZXJuLnNvdXJjZS5pbmNsdWRlcygiISIpKTtmb3IobGV0IGIgb2Ygcyl7bGV0IHY9QXJyYXkuaXNBcnJheShiKT8oKCk9PntsZXRbeSx3XT1iLFM9T2JqZWN0LmtleXModz8udmFsdWVzPz97fSkubWFwKEU9PkVpKHksRSkpO3JldHVybiB3Py5zdXBwb3J0c05lZ2F0aXZlVmFsdWVzJiYoUz1bLi4uUywuLi5TLm1hcChFPT4iLSIrRSldLFM9Wy4uLlMsLi4uUy5tYXAoRT0+RS5zbGljZSgwLHApKyItIitFLnNsaWNlKHApKV0pLHcudHlwZXMuc29tZSgoe3R5cGU6RX0pPT5FPT09ImNvbG9yIikmJihTPVsuLi5TLC4uLlMuZmxhdE1hcChFPT5PYmplY3Qua2V5cyhlLnRhaWx3aW5kQ29uZmlnLnRoZW1lLm9wYWNpdHkpLm1hcChUPT5gJHtFfS8ke1R9YCkpXSksaCYmdz8ucmVzcGVjdEltcG9ydGFudCYmKFM9Wy4uLlMsLi4uUy5tYXAoRT0+IiEiK0UpXSksU30pKCk6W2JdO2ZvcihsZXQgeSBvZiB2KWZvcihsZXR7cGF0dGVybjp3LHZhcmlhbnRzOms9W119b2YgZilpZih3Lmxhc3RJbmRleD0wLGQuaGFzKHcpfHxkLnNldCh3LDApLCEhdy50ZXN0KHkpKXtkLnNldCh3LGQuZ2V0KHcpKzEpLGUuY2hhbmdlZENvbnRlbnQucHVzaCh7Y29udGVudDp5LGV4dGVuc2lvbjoiaHRtbCJ9KTtmb3IobGV0IFMgb2YgayllLmNoYW5nZWRDb250ZW50LnB1c2goe2NvbnRlbnQ6UytlLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcit5LGV4dGVuc2lvbjoiaHRtbCJ9KX19Zm9yKGxldFtiLHZdb2YgZC5lbnRyaWVzKCkpdj09PTAmJkcud2FybihbYFRoZSBzYWZlbGlzdCBwYXR0ZXJuIFxgJHtifVxgIGRvZXNuJ3QgbWF0Y2ggYW55IFRhaWx3aW5kIENTUyBjbGFzc2VzLmAsIkZpeCB0aGlzIHBhdHRlcm4gb3IgcmVtb3ZlIGl0IGZyb20geW91ciBgc2FmZWxpc3RgIGNvbmZpZ3VyYXRpb24uIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50LWNvbmZpZ3VyYXRpb24jc2FmZWxpc3RpbmctY2xhc3NlcyJdKX19bGV0IGw9W10uY29uY2F0KGUudGFpbHdpbmRDb25maWcuZGFya01vZGU/PyJtZWRpYSIpWzFdPz8iZGFyayIsYz1bdGwoZSxsKSx0bChlLCJncm91cCIpLHRsKGUsInBlZXIiKV07ZS5nZXRDbGFzc09yZGVyPWZ1bmN0aW9uKGQpe2xldCBwPVsuLi5kXS5zb3J0KCh5LHcpPT55PT09dz8wOnk8dz8tMToxKSxoPW5ldyBNYXAocC5tYXAoeT0+W3ksbnVsbF0pKSxiPWFzKG5ldyBTZXQocCksZSwhMCk7Yj1lLm9mZnNldHMuc29ydChiKTtsZXQgdj1CaWdJbnQoYy5sZW5ndGgpO2ZvcihsZXRbLHldb2YgYil7bGV0IHc9eS5yYXdzLnRhaWx3aW5kLmNhbmRpZGF0ZTtoLnNldCh3LGguZ2V0KHcpPz92KyspfXJldHVybiBkLm1hcCh5PT57bGV0IHc9aC5nZXQoeSk/P251bGwsaz1jLmluZGV4T2YoeSk7cmV0dXJuIHc9PT1udWxsJiZrIT09LTEmJih3PUJpZ0ludChrKSksW3ksd119KX0sZS5nZXRDbGFzc0xpc3Q9ZnVuY3Rpb24oZD17fSl7bGV0IHA9W107Zm9yKGxldCBoIG9mIHMpaWYoQXJyYXkuaXNBcnJheShoKSl7bGV0W2Isdl09aCx5PVtdLHc9T2JqZWN0LmtleXModj8ubW9kaWZpZXJzPz97fSk7dj8udHlwZXM/LnNvbWUoKHt0eXBlOkV9KT0+RT09PSJjb2xvciIpJiZ3LnB1c2goLi4uT2JqZWN0LmtleXMoZS50YWlsd2luZENvbmZpZy50aGVtZS5vcGFjaXR5Pz97fSkpO2xldCBrPXttb2RpZmllcnM6d30sUz1kLmluY2x1ZGVNZXRhZGF0YSYmdy5sZW5ndGg+MDtmb3IobGV0W0UsVF1vZiBPYmplY3QuZW50cmllcyh2Py52YWx1ZXM/P3t9KSl7aWYoVD09bnVsbCljb250aW51ZTtsZXQgQj1FaShiLEUpO2lmKHAucHVzaChTP1tCLGtdOkIpLHY/LnN1cHBvcnRzTmVnYXRpdmVWYWx1ZXMmJnh0KFQpKXtsZXQgTj1FaShiLGAtJHtFfWApO3kucHVzaChTP1tOLGtdOk4pfX1wLnB1c2goLi4ueSl9ZWxzZSBwLnB1c2goaCk7cmV0dXJuIHB9LGUuZ2V0VmFyaWFudHM9ZnVuY3Rpb24oKXtsZXQgZD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoNykudG9VcHBlckNhc2UoKSxwPVtdO2ZvcihsZXRbaCxiXW9mIGUudmFyaWFudE9wdGlvbnMuZW50cmllcygpKWIudmFyaWFudEluZm8hPT1lbC5CYXNlJiZwLnB1c2goe25hbWU6aCxpc0FyYml0cmFyeTpiLnR5cGU9PT1TeW1ib2wuZm9yKCJNQVRDSF9WQVJJQU5UIiksdmFsdWVzOk9iamVjdC5rZXlzKGIudmFsdWVzPz97fSksaGFzRGFzaDpoIT09IkAiLHNlbGVjdG9ycyh7bW9kaWZpZXI6dix2YWx1ZTp5fT17fSl7bGV0IHc9YFRBSUxXSU5EUExBQ0VIT0xERVIke2R9YCxrPWVlLnJ1bGUoe3NlbGVjdG9yOmAuJHt3fWB9KSxTPWVlLnJvb3Qoe25vZGVzOltrLmNsb25lKCldfSksRT1TLnRvU3RyaW5nKCksVD0oZS52YXJpYW50TWFwLmdldChoKT8/W10pLmZsYXRNYXAoKFtsZSxBXSk9PkEpLEI9W107Zm9yKGxldCBsZSBvZiBUKXtsZXQgQT1bXSxDPXthcmdzOnttb2RpZmllcjp2LHZhbHVlOmIudmFsdWVzPy5beV0/P3l9LHNlcGFyYXRvcjplLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcixtb2RpZnlTZWxlY3RvcnMoVil7cmV0dXJuIFMuZWFjaChFZT0+e0VlLnR5cGU9PT0icnVsZSImJihFZS5zZWxlY3RvcnM9RWUuc2VsZWN0b3JzLm1hcChJZT0+Vih7Z2V0IGNsYXNzTmFtZSgpe3JldHVybiBHbyhJZSl9LHNlbGVjdG9yOkllfSkpKX0pLFN9LGZvcm1hdChWKXtBLnB1c2goVil9LHdyYXAoVil7QS5wdXNoKGBAJHtWLm5hbWV9ICR7Vi5wYXJhbXN9IHsgJiB9YCl9LGNvbnRhaW5lcjpTfSxoZT1sZShDKTtpZihBLmxlbmd0aD4wJiZCLnB1c2goQSksQXJyYXkuaXNBcnJheShoZSkpZm9yKGxldCBWIG9mIGhlKUE9W10sVihDKSxCLnB1c2goQSl9bGV0IE49W10sUj1TLnRvU3RyaW5nKCk7RSE9PVImJihTLndhbGtSdWxlcyhsZT0+e2xldCBBPWxlLnNlbGVjdG9yLEM9KDAsWm8uZGVmYXVsdCkoaGU9PntoZS53YWxrQ2xhc3NlcyhWPT57Vi52YWx1ZT1gJHtofSR7ZS50YWlsd2luZENvbmZpZy5zZXBhcmF0b3J9JHtWLnZhbHVlfWB9KX0pLnByb2Nlc3NTeW5jKEEpO04ucHVzaChBLnJlcGxhY2UoQywiJiIpLnJlcGxhY2UodywiJiIpKX0pLFMud2Fsa0F0UnVsZXMobGU9PntOLnB1c2goYEAke2xlLm5hbWV9ICgke2xlLnBhcmFtc30pIHsgJiB9YCl9KSk7bGV0IEY9ISh5IGluKGIudmFsdWVzPz97fSkpLFk9YltQdF0/P3t9LF89KCgpPT4hKEZ8fFkucmVzcGVjdFByZWZpeD09PSExKSkoKTtCPUIubWFwKGxlPT5sZS5tYXAoQT0+KHtmb3JtYXQ6QSxyZXNwZWN0UHJlZml4Ol99KSkpLE49Ti5tYXAobGU9Pih7Zm9ybWF0OmxlLHJlc3BlY3RQcmVmaXg6X30pKTtsZXQgUT17Y2FuZGlkYXRlOncsY29udGV4dDplfSxVPUIubWFwKGxlPT5ycyhgLiR7d31gLGRyKGxlLFEpLFEpLnJlcGxhY2UoYC4ke3d9YCwiJiIpLnJlcGxhY2UoInsgJiB9IiwiIikudHJpbSgpKTtyZXR1cm4gTi5sZW5ndGg+MCYmVS5wdXNoKGRyKE4sUSkudG9TdHJpbmcoKS5yZXBsYWNlKGAuJHt3fWAsIiYiKSksVX19KTtyZXR1cm4gcH19ZnVuY3Rpb24gVWgocixlKXshci5jbGFzc0NhY2hlLmhhcyhlKXx8KHIubm90Q2xhc3NDYWNoZS5hZGQoZSksci5jbGFzc0NhY2hlLmRlbGV0ZShlKSxyLmFwcGx5Q2xhc3NDYWNoZS5kZWxldGUoZSksci5jYW5kaWRhdGVSdWxlTWFwLmRlbGV0ZShlKSxyLmNhbmRpZGF0ZVJ1bGVDYWNoZS5kZWxldGUoZSksci5zdHlsZXNoZWV0Q2FjaGU9bnVsbCl9ZnVuY3Rpb24gSF8ocixlKXtsZXQgdD1lLnJhd3MudGFpbHdpbmQuY2FuZGlkYXRlO2lmKCEhdCl7Zm9yKGxldCBpIG9mIHIucnVsZUNhY2hlKWlbMV0ucmF3cy50YWlsd2luZC5jYW5kaWRhdGU9PT10JiZyLnJ1bGVDYWNoZS5kZWxldGUoaSk7VWgocix0KX19ZnVuY3Rpb24gaWwocixlPVtdLHQ9ZWUucm9vdCgpKXtsZXQgaT17ZGlzcG9zYWJsZXM6W10scnVsZUNhY2hlOm5ldyBTZXQsY2FuZGlkYXRlUnVsZUNhY2hlOm5ldyBNYXAsY2xhc3NDYWNoZTpuZXcgTWFwLGFwcGx5Q2xhc3NDYWNoZTpuZXcgTWFwLG5vdENsYXNzQ2FjaGU6bmV3IFNldChyLmJsb2NrbGlzdD8/W10pLHBvc3RDc3NOb2RlQ2FjaGU6bmV3IE1hcCxjYW5kaWRhdGVSdWxlTWFwOm5ldyBNYXAsdGFpbHdpbmRDb25maWc6cixjaGFuZ2VkQ29udGVudDplLHZhcmlhbnRNYXA6bmV3IE1hcCxzdHlsZXNoZWV0Q2FjaGU6bnVsbCx2YXJpYW50T3B0aW9uczpuZXcgTWFwLG1hcmtJbnZhbGlkVXRpbGl0eUNhbmRpZGF0ZTpzPT5VaChpLHMpLG1hcmtJbnZhbGlkVXRpbGl0eU5vZGU6cz0+SF8oaSxzKX0sbj1VXyhpLHQpO3JldHVybiBWXyhuLGkpLGl9ZnVuY3Rpb24gVmgocixlLHQsaSxuLHMpe2xldCBhPWUub3B0cy5mcm9tLG89aSE9PW51bGw7WmUuREVCVUcmJmNvbnNvbGUubG9nKCJTb3VyY2UgcGF0aDoiLGEpO2xldCBsO2lmKG8mJmhyLmhhcyhhKSlsPWhyLmdldChhKTtlbHNlIGlmKFBpLmhhcyhuKSl7bGV0IHA9UGkuZ2V0KG4pO0R0LmdldChwKS5hZGQoYSksaHIuc2V0KGEscCksbD1wfWxldCBjPVBoKGEscik7aWYobCl7bGV0W3AsaF09amgoWy4uLnNdLGNzKGwpKTtpZighcCYmIWMpcmV0dXJuW2wsITEsaF19aWYoaHIuaGFzKGEpKXtsZXQgcD1oci5nZXQoYSk7aWYoRHQuaGFzKHApJiYoRHQuZ2V0KHApLmRlbGV0ZShhKSxEdC5nZXQocCkuc2l6ZT09PTApKXtEdC5kZWxldGUocCk7Zm9yKGxldFtoLGJdb2YgUGkpYj09PXAmJlBpLmRlbGV0ZShoKTtmb3IobGV0IGggb2YgcC5kaXNwb3NhYmxlcy5zcGxpY2UoMCkpaChwKX19WmUuREVCVUcmJmNvbnNvbGUubG9nKCJTZXR0aW5nIHVwIG5ldyBjb250ZXh0Li4uIik7bGV0IGY9aWwodCxbXSxyKTtPYmplY3QuYXNzaWduKGYse3VzZXJDb25maWdQYXRoOml9KTtsZXRbLGRdPWpoKFsuLi5zXSxjcyhmKSk7cmV0dXJuIFBpLnNldChuLGYpLGhyLnNldChhLGYpLER0LmhhcyhmKXx8RHQuc2V0KGYsbmV3IFNldCksRHQuZ2V0KGYpLmFkZChhKSxbZiwhMCxkXX12YXIgTmgsWm8sUHQsSm8sZWwscmwsaHIsUGksRHQsT2k9UCgoKT0+e3UoKTtmdCgpO2xhKCk7T3QoKTtOaD1wZShSYSgpKSxabz1wZShpdCgpKTtDaSgpO3FvKCk7R24oKTtLdCgpO2ZyKCk7TG8oKTtGcigpO2JoKCk7SXQoKTtJdCgpO1lpKCk7QmUoKTtHaSgpO0JvKCk7b3MoKTtJaCgpO01oKCk7Y3QoKTtWbygpO1B0PVN5bWJvbCgpLEpvPXtBZGRWYXJpYW50OlN5bWJvbC5mb3IoIkFERF9WQVJJQU5UIiksTWF0Y2hWYXJpYW50OlN5bWJvbC5mb3IoIk1BVENIX1ZBUklBTlQiKX0sZWw9e0Jhc2U6MTw8MCxEeW5hbWljOjE8PDF9O3JsPW5ldyBXZWFrTWFwO2hyPXdoLFBpPXZoLER0PWVzfSk7ZnVuY3Rpb24gbmwocil7cmV0dXJuIHIuaWdub3JlP1tdOnIuZ2xvYj9tLmVudi5ST0xMVVBfV0FUQ0g9PT0idHJ1ZSI/W3t0eXBlOiJkZXBlbmRlbmN5IixmaWxlOnIuYmFzZX1dOlt7dHlwZToiZGlyLWRlcGVuZGVuY3kiLGRpcjpyLmJhc2UsZ2xvYjpyLmdsb2J9XTpbe3R5cGU6ImRlcGVuZGVuY3kiLGZpbGU6ci5iYXNlfV19dmFyIEhoPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBXaChyLGUpe3JldHVybntoYW5kbGVyOnIsY29uZmlnOmV9fXZhciBHaCxRaD1QKCgpPT57dSgpO1doLndpdGhPcHRpb25zPWZ1bmN0aW9uKHIsZT0oKT0+KHt9KSl7bGV0IHQ9ZnVuY3Rpb24oaSl7cmV0dXJue19fb3B0aW9uczppLGhhbmRsZXI6cihpKSxjb25maWc6ZShpKX19O3JldHVybiB0Ll9faXNPcHRpb25zRnVuY3Rpb249ITAsdC5fX3BsdWdpbkZ1bmN0aW9uPXIsdC5fX2NvbmZpZ0Z1bmN0aW9uPWUsdH07R2g9V2h9KTt2YXIgc2w9e307R2Uoc2wse2RlZmF1bHQ6KCk9PldffSk7dmFyIFdfLGFsPVAoKCk9Pnt1KCk7UWgoKTtXXz1HaH0pO3ZhciBLaD14KCh6NCxZaCk9Pnt1KCk7dmFyIEdfPShhbCgpLHNsKS5kZWZhdWx0LFFfPXtvdmVyZmxvdzoiaGlkZGVuIixkaXNwbGF5OiItd2Via2l0LWJveCIsIi13ZWJraXQtYm94LW9yaWVudCI6InZlcnRpY2FsIn0sWV89R18oZnVuY3Rpb24oe21hdGNoVXRpbGl0aWVzOnIsYWRkVXRpbGl0aWVzOmUsdGhlbWU6dCx2YXJpYW50czppfSl7bGV0IG49dCgibGluZUNsYW1wIik7cih7ImxpbmUtY2xhbXAiOnM9Pih7Li4uUV8sIi13ZWJraXQtbGluZS1jbGFtcCI6YCR7c31gfSl9LHt2YWx1ZXM6bn0pLGUoW3siLmxpbmUtY2xhbXAtbm9uZSI6eyItd2Via2l0LWxpbmUtY2xhbXAiOiJ1bnNldCJ9fV0saSgibGluZUNsYW1wIikpfSx7dGhlbWU6e2xpbmVDbGFtcDp7MToiMSIsMjoiMiIsMzoiMyIsNDoiNCIsNToiNSIsNjoiNiJ9fSx2YXJpYW50czp7bGluZUNsYW1wOlsicmVzcG9uc2l2ZSJdfX0pO1loLmV4cG9ydHM9WV99KTtmdW5jdGlvbiBvbChyKXtyLmNvbnRlbnQuZmlsZXMubGVuZ3RoPT09MCYmRy53YXJuKCJjb250ZW50LXByb2JsZW1zIixbIlRoZSBgY29udGVudGAgb3B0aW9uIGluIHlvdXIgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gaXMgbWlzc2luZyBvciBlbXB0eS4iLCJDb25maWd1cmUgeW91ciBjb250ZW50IHNvdXJjZXMgb3IgeW91ciBnZW5lcmF0ZWQgQ1NTIHdpbGwgYmUgbWlzc2luZyBzdHlsZXMuIiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9jb250ZW50LWNvbmZpZ3VyYXRpb24iXSk7dHJ5e2xldCBlPUtoKCk7ci5wbHVnaW5zLmluY2x1ZGVzKGUpJiYoRy53YXJuKCJsaW5lLWNsYW1wLWluLWNvcmUiLFsiQXMgb2YgVGFpbHdpbmQgQ1NTIHYzLjMsIHRoZSBgQHRhaWx3aW5kY3NzL2xpbmUtY2xhbXBgIHBsdWdpbiBpcyBub3cgaW5jbHVkZWQgYnkgZGVmYXVsdC4iLCJSZW1vdmUgaXQgZnJvbSB0aGUgYHBsdWdpbnNgIGFycmF5IGluIHlvdXIgY29uZmlndXJhdGlvbiB0byBlbGltaW5hdGUgdGhpcyB3YXJuaW5nLiJdKSxyLnBsdWdpbnM9ci5wbHVnaW5zLmZpbHRlcih0PT50IT09ZSkpfWNhdGNoe31yZXR1cm4gcn12YXIgWGg9UCgoKT0+e3UoKTtCZSgpfSk7dmFyIFpoLEpoPVAoKCk9Pnt1KCk7Wmg9KCk9PiExfSk7dmFyIHBzLGVtPVAoKCk9Pnt1KCk7cHM9e3N5bmM6cj0+W10uY29uY2F0KHIpLGdlbmVyYXRlVGFza3M6cj0+W3tkeW5hbWljOiExLGJhc2U6Ii4iLG5lZ2F0aXZlOltdLHBvc2l0aXZlOltdLmNvbmNhdChyKSxwYXR0ZXJuczpbXS5jb25jYXQocil9XSxlc2NhcGVQYXRoOnI9PnJ9fSk7dmFyIGxsLHRtPVAoKCk9Pnt1KCk7bGw9cj0+cn0pO3ZhciBybSxpbT1QKCgpPT57dSgpO3JtPSgpPT4iIn0pO2Z1bmN0aW9uIG5tKHIpe2xldCBlPXIsdD1ybShyKTtyZXR1cm4gdCE9PSIuIiYmKGU9ci5zdWJzdHIodC5sZW5ndGgpLGUuY2hhckF0KDApPT09Ii8iJiYoZT1lLnN1YnN0cigxKSkpLGUuc3Vic3RyKDAsMik9PT0iLi8iP2U9ZS5zdWJzdHIoMik6ZS5jaGFyQXQoMCk9PT0iLyImJihlPWUuc3Vic3RyKDEpKSx7YmFzZTp0LGdsb2I6ZX19dmFyIHNtPVAoKCk9Pnt1KCk7aW0oKX0pO3ZhciBkcz14KFZlPT57dSgpOyJ1c2Ugc3RyaWN0IjtWZS5pc0ludGVnZXI9cj0+dHlwZW9mIHI9PSJudW1iZXIiP051bWJlci5pc0ludGVnZXIocik6dHlwZW9mIHI9PSJzdHJpbmciJiZyLnRyaW0oKSE9PSIiP051bWJlci5pc0ludGVnZXIoTnVtYmVyKHIpKTohMTtWZS5maW5kPShyLGUpPT5yLm5vZGVzLmZpbmQodD0+dC50eXBlPT09ZSk7VmUuZXhjZWVkc0xpbWl0PShyLGUsdD0xLGkpPT5pPT09ITF8fCFWZS5pc0ludGVnZXIocil8fCFWZS5pc0ludGVnZXIoZSk/ITE6KE51bWJlcihlKS1OdW1iZXIocikpL051bWJlcih0KT49aTtWZS5lc2NhcGVOb2RlPShyLGU9MCx0KT0+e2xldCBpPXIubm9kZXNbZV07IWl8fCh0JiZpLnR5cGU9PT10fHxpLnR5cGU9PT0ib3BlbiJ8fGkudHlwZT09PSJjbG9zZSIpJiZpLmVzY2FwZWQhPT0hMCYmKGkudmFsdWU9IlxcIitpLnZhbHVlLGkuZXNjYXBlZD0hMCl9O1ZlLmVuY2xvc2VCcmFjZT1yPT5yLnR5cGUhPT0iYnJhY2UiPyExOnIuY29tbWFzPj4wK3IucmFuZ2VzPj4wPT0wPyhyLmludmFsaWQ9ITAsITApOiExO1ZlLmlzSW52YWxpZEJyYWNlPXI9PnIudHlwZSE9PSJicmFjZSI/ITE6ci5pbnZhbGlkPT09ITB8fHIuZG9sbGFyPyEwOnIuY29tbWFzPj4wK3IucmFuZ2VzPj4wPT0wfHxyLm9wZW4hPT0hMHx8ci5jbG9zZSE9PSEwPyhyLmludmFsaWQ9ITAsITApOiExO1ZlLmlzT3Blbk9yQ2xvc2U9cj0+ci50eXBlPT09Im9wZW4ifHxyLnR5cGU9PT0iY2xvc2UiPyEwOnIub3Blbj09PSEwfHxyLmNsb3NlPT09ITA7VmUucmVkdWNlPXI9PnIucmVkdWNlKChlLHQpPT4odC50eXBlPT09InRleHQiJiZlLnB1c2godC52YWx1ZSksdC50eXBlPT09InJhbmdlIiYmKHQudHlwZT0idGV4dCIpLGUpLFtdKTtWZS5mbGF0dGVuPSguLi5yKT0+e2xldCBlPVtdLHQ9aT0+e2ZvcihsZXQgbj0wO248aS5sZW5ndGg7bisrKXtsZXQgcz1pW25dO2lmKEFycmF5LmlzQXJyYXkocykpe3Qocyk7Y29udGludWV9cyE9PXZvaWQgMCYmZS5wdXNoKHMpfXJldHVybiBlfTtyZXR1cm4gdChyKSxlfX0pO3ZhciBocz14KChaNCxvbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBhbT1kcygpO29tLmV4cG9ydHM9KHIsZT17fSk9PntsZXQgdD0oaSxuPXt9KT0+e2xldCBzPWUuZXNjYXBlSW52YWxpZCYmYW0uaXNJbnZhbGlkQnJhY2UobiksYT1pLmludmFsaWQ9PT0hMCYmZS5lc2NhcGVJbnZhbGlkPT09ITAsbz0iIjtpZihpLnZhbHVlKXJldHVybihzfHxhKSYmYW0uaXNPcGVuT3JDbG9zZShpKT8iXFwiK2kudmFsdWU6aS52YWx1ZTtpZihpLnZhbHVlKXJldHVybiBpLnZhbHVlO2lmKGkubm9kZXMpZm9yKGxldCBsIG9mIGkubm9kZXMpbys9dChsKTtyZXR1cm4gb307cmV0dXJuIHQocil9fSk7dmFyIHVtPXgoKEo0LGxtKT0+e3UoKTsidXNlIHN0cmljdCI7bG0uZXhwb3J0cz1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PSJudW1iZXIiP3Itcj09MDp0eXBlb2Ygcj09InN0cmluZyImJnIudHJpbSgpIT09IiI/TnVtYmVyLmlzRmluaXRlP051bWJlci5pc0Zpbml0ZSgrcik6aXNGaW5pdGUoK3IpOiExfX0pO3ZhciBibT14KChlNix5bSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBmbT11bSgpLFd0PShyLGUsdCk9PntpZihmbShyKT09PSExKXRocm93IG5ldyBUeXBlRXJyb3IoInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGJlIGEgbnVtYmVyIik7aWYoZT09PXZvaWQgMHx8cj09PWUpcmV0dXJuIFN0cmluZyhyKTtpZihmbShlKT09PSExKXRocm93IG5ldyBUeXBlRXJyb3IoInRvUmVnZXhSYW5nZTogZXhwZWN0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCB0byBiZSBhIG51bWJlci4iKTtsZXQgaT17cmVsYXhaZXJvczohMCwuLi50fTt0eXBlb2YgaS5zdHJpY3RaZXJvcz09ImJvb2xlYW4iJiYoaS5yZWxheFplcm9zPWkuc3RyaWN0WmVyb3M9PT0hMSk7bGV0IG49U3RyaW5nKGkucmVsYXhaZXJvcykscz1TdHJpbmcoaS5zaG9ydGhhbmQpLGE9U3RyaW5nKGkuY2FwdHVyZSksbz1TdHJpbmcoaS53cmFwKSxsPXIrIjoiK2UrIj0iK24rcythK287aWYoV3QuY2FjaGUuaGFzT3duUHJvcGVydHkobCkpcmV0dXJuIFd0LmNhY2hlW2xdLnJlc3VsdDtsZXQgYz1NYXRoLm1pbihyLGUpLGY9TWF0aC5tYXgocixlKTtpZihNYXRoLmFicyhjLWYpPT09MSl7bGV0IHY9cisifCIrZTtyZXR1cm4gaS5jYXB0dXJlP2AoJHt2fSlgOmkud3JhcD09PSExP3Y6YCg/OiR7dn0pYH1sZXQgZD1nbShyKXx8Z20oZSkscD17bWluOnIsbWF4OmUsYTpjLGI6Zn0saD1bXSxiPVtdO2lmKGQmJihwLmlzUGFkZGVkPWQscC5tYXhMZW49U3RyaW5nKHAubWF4KS5sZW5ndGgpLGM8MCl7bGV0IHY9ZjwwP01hdGguYWJzKGYpOjE7Yj1jbSh2LE1hdGguYWJzKGMpLHAsaSksYz1wLmE9MH1yZXR1cm4gZj49MCYmKGg9Y20oYyxmLHAsaSkpLHAubmVnYXRpdmVzPWIscC5wb3NpdGl2ZXM9aCxwLnJlc3VsdD1LXyhiLGgsaSksaS5jYXB0dXJlPT09ITA/cC5yZXN1bHQ9YCgke3AucmVzdWx0fSlgOmkud3JhcCE9PSExJiZoLmxlbmd0aCtiLmxlbmd0aD4xJiYocC5yZXN1bHQ9YCg/OiR7cC5yZXN1bHR9KWApLFd0LmNhY2hlW2xdPXAscC5yZXN1bHR9O2Z1bmN0aW9uIEtfKHIsZSx0KXtsZXQgaT11bChyLGUsIi0iLCExLHQpfHxbXSxuPXVsKGUsciwiIiwhMSx0KXx8W10scz11bChyLGUsIi0/IiwhMCx0KXx8W107cmV0dXJuIGkuY29uY2F0KHMpLmNvbmNhdChuKS5qb2luKCJ8Iil9ZnVuY3Rpb24gWF8ocixlKXtsZXQgdD0xLGk9MSxuPWRtKHIsdCkscz1uZXcgU2V0KFtlXSk7Zm9yKDtyPD1uJiZuPD1lOylzLmFkZChuKSx0Kz0xLG49ZG0ocix0KTtmb3Iobj1obShlKzEsaSktMTtyPG4mJm48PWU7KXMuYWRkKG4pLGkrPTEsbj1obShlKzEsaSktMTtyZXR1cm4gcz1bLi4uc10scy5zb3J0KGVFKSxzfWZ1bmN0aW9uIFpfKHIsZSx0KXtpZihyPT09ZSlyZXR1cm57cGF0dGVybjpyLGNvdW50OltdLGRpZ2l0czowfTtsZXQgaT1KXyhyLGUpLG49aS5sZW5ndGgscz0iIixhPTA7Zm9yKGxldCBvPTA7bzxuO28rKyl7bGV0W2wsY109aVtvXTtsPT09Yz9zKz1sOmwhPT0iMCJ8fGMhPT0iOSI/cys9dEUobCxjLHQpOmErK31yZXR1cm4gYSYmKHMrPXQuc2hvcnRoYW5kPT09ITA/IlxcZCI6IlswLTldIikse3BhdHRlcm46cyxjb3VudDpbYV0sZGlnaXRzOm59fWZ1bmN0aW9uIGNtKHIsZSx0LGkpe2xldCBuPVhfKHIsZSkscz1bXSxhPXIsbztmb3IobGV0IGw9MDtsPG4ubGVuZ3RoO2wrKyl7bGV0IGM9bltsXSxmPVpfKFN0cmluZyhhKSxTdHJpbmcoYyksaSksZD0iIjtpZighdC5pc1BhZGRlZCYmbyYmby5wYXR0ZXJuPT09Zi5wYXR0ZXJuKXtvLmNvdW50Lmxlbmd0aD4xJiZvLmNvdW50LnBvcCgpLG8uY291bnQucHVzaChmLmNvdW50WzBdKSxvLnN0cmluZz1vLnBhdHRlcm4rbW0oby5jb3VudCksYT1jKzE7Y29udGludWV9dC5pc1BhZGRlZCYmKGQ9ckUoYyx0LGkpKSxmLnN0cmluZz1kK2YucGF0dGVybittbShmLmNvdW50KSxzLnB1c2goZiksYT1jKzEsbz1mfXJldHVybiBzfWZ1bmN0aW9uIHVsKHIsZSx0LGksbil7bGV0IHM9W107Zm9yKGxldCBhIG9mIHIpe2xldHtzdHJpbmc6b309YTshaSYmIXBtKGUsInN0cmluZyIsbykmJnMucHVzaCh0K28pLGkmJnBtKGUsInN0cmluZyIsbykmJnMucHVzaCh0K28pfXJldHVybiBzfWZ1bmN0aW9uIEpfKHIsZSl7bGV0IHQ9W107Zm9yKGxldCBpPTA7aTxyLmxlbmd0aDtpKyspdC5wdXNoKFtyW2ldLGVbaV1dKTtyZXR1cm4gdH1mdW5jdGlvbiBlRShyLGUpe3JldHVybiByPmU/MTplPnI/LTE6MH1mdW5jdGlvbiBwbShyLGUsdCl7cmV0dXJuIHIuc29tZShpPT5pW2VdPT09dCl9ZnVuY3Rpb24gZG0ocixlKXtyZXR1cm4gTnVtYmVyKFN0cmluZyhyKS5zbGljZSgwLC1lKSsiOSIucmVwZWF0KGUpKX1mdW5jdGlvbiBobShyLGUpe3JldHVybiByLXIlTWF0aC5wb3coMTAsZSl9ZnVuY3Rpb24gbW0ocil7bGV0W2U9MCx0PSIiXT1yO3JldHVybiB0fHxlPjE/YHske2UrKHQ/IiwiK3Q6IiIpfX1gOiIifWZ1bmN0aW9uIHRFKHIsZSx0KXtyZXR1cm5gWyR7cn0ke2Utcj09MT8iIjoiLSJ9JHtlfV1gfWZ1bmN0aW9uIGdtKHIpe3JldHVybi9eLT8oMCspXGQvLnRlc3Qocil9ZnVuY3Rpb24gckUocixlLHQpe2lmKCFlLmlzUGFkZGVkKXJldHVybiByO2xldCBpPU1hdGguYWJzKGUubWF4TGVuLVN0cmluZyhyKS5sZW5ndGgpLG49dC5yZWxheFplcm9zIT09ITE7c3dpdGNoKGkpe2Nhc2UgMDpyZXR1cm4iIjtjYXNlIDE6cmV0dXJuIG4/IjA/IjoiMCI7Y2FzZSAyOnJldHVybiBuPyIwezAsMn0iOiIwMCI7ZGVmYXVsdDpyZXR1cm4gbj9gMHswLCR7aX19YDpgMHske2l9fWB9fVd0LmNhY2hlPXt9O1d0LmNsZWFyQ2FjaGU9KCk9Pld0LmNhY2hlPXt9O3ltLmV4cG9ydHM9V3R9KTt2YXIgcGw9eCgodDYsQ20pPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgaUU9KEZuKCksQm4pLHdtPWJtKCksdm09cj0+ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkociksbkU9cj0+ZT0+cj09PSEwP051bWJlcihlKTpTdHJpbmcoZSksZmw9cj0+dHlwZW9mIHI9PSJudW1iZXIifHx0eXBlb2Ygcj09InN0cmluZyImJnIhPT0iIixJaT1yPT5OdW1iZXIuaXNJbnRlZ2VyKCtyKSxjbD1yPT57bGV0IGU9YCR7cn1gLHQ9LTE7aWYoZVswXT09PSItIiYmKGU9ZS5zbGljZSgxKSksZT09PSIwIilyZXR1cm4hMTtmb3IoO2VbKyt0XT09PSIwIjspO3JldHVybiB0PjB9LHNFPShyLGUsdCk9PnR5cGVvZiByPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJzdHJpbmciPyEwOnQuc3RyaW5naWZ5PT09ITAsYUU9KHIsZSx0KT0+e2lmKGU+MCl7bGV0IGk9clswXT09PSItIj8iLSI6IiI7aSYmKHI9ci5zbGljZSgxKSkscj1pK3IucGFkU3RhcnQoaT9lLTE6ZSwiMCIpfXJldHVybiB0PT09ITE/U3RyaW5nKHIpOnJ9LG1zPShyLGUpPT57bGV0IHQ9clswXT09PSItIj8iLSI6IiI7Zm9yKHQmJihyPXIuc2xpY2UoMSksZS0tKTtyLmxlbmd0aDxlOylyPSIwIityO3JldHVybiB0PyItIityOnJ9LG9FPShyLGUsdCk9PntyLm5lZ2F0aXZlcy5zb3J0KChvLGwpPT5vPGw/LTE6bz5sPzE6MCksci5wb3NpdGl2ZXMuc29ydCgobyxsKT0+bzxsPy0xOm8+bD8xOjApO2xldCBpPWUuY2FwdHVyZT8iIjoiPzoiLG49IiIscz0iIixhO3JldHVybiByLnBvc2l0aXZlcy5sZW5ndGgmJihuPXIucG9zaXRpdmVzLm1hcChvPT5tcyhTdHJpbmcobyksdCkpLmpvaW4oInwiKSksci5uZWdhdGl2ZXMubGVuZ3RoJiYocz1gLSgke2l9JHtyLm5lZ2F0aXZlcy5tYXAobz0+bXMoU3RyaW5nKG8pLHQpKS5qb2luKCJ8Iil9KWApLG4mJnM/YT1gJHtufXwke3N9YDphPW58fHMsZS53cmFwP2AoJHtpfSR7YX0pYDphfSx4bT0ocixlLHQsaSk9PntpZih0KXJldHVybiB3bShyLGUse3dyYXA6ITEsLi4uaX0pO2xldCBuPVN0cmluZy5mcm9tQ2hhckNvZGUocik7aWYocj09PWUpcmV0dXJuIG47bGV0IHM9U3RyaW5nLmZyb21DaGFyQ29kZShlKTtyZXR1cm5gWyR7bn0tJHtzfV1gfSxrbT0ocixlLHQpPT57aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGk9dC53cmFwPT09ITAsbj10LmNhcHR1cmU/IiI6Ij86IjtyZXR1cm4gaT9gKCR7bn0ke3Iuam9pbigifCIpfSlgOnIuam9pbigifCIpfXJldHVybiB3bShyLGUsdCl9LFNtPSguLi5yKT0+bmV3IFJhbmdlRXJyb3IoIkludmFsaWQgcmFuZ2UgYXJndW1lbnRzOiAiK2lFLmluc3BlY3QoLi4ucikpLEFtPShyLGUsdCk9PntpZih0LnN0cmljdFJhbmdlcz09PSEwKXRocm93IFNtKFtyLGVdKTtyZXR1cm5bXX0sbEU9KHIsZSk9PntpZihlLnN0cmljdFJhbmdlcz09PSEwKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIHN0ZXAgIiR7cn0iIHRvIGJlIGEgbnVtYmVyYCk7cmV0dXJuW119LHVFPShyLGUsdD0xLGk9e30pPT57bGV0IG49TnVtYmVyKHIpLHM9TnVtYmVyKGUpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHwhTnVtYmVyLmlzSW50ZWdlcihzKSl7aWYoaS5zdHJpY3RSYW5nZXM9PT0hMCl0aHJvdyBTbShbcixlXSk7cmV0dXJuW119bj09PTAmJihuPTApLHM9PT0wJiYocz0wKTtsZXQgYT1uPnMsbz1TdHJpbmcociksbD1TdHJpbmcoZSksYz1TdHJpbmcodCk7dD1NYXRoLm1heChNYXRoLmFicyh0KSwxKTtsZXQgZj1jbChvKXx8Y2wobCl8fGNsKGMpLGQ9Zj9NYXRoLm1heChvLmxlbmd0aCxsLmxlbmd0aCxjLmxlbmd0aCk6MCxwPWY9PT0hMSYmc0UocixlLGkpPT09ITEsaD1pLnRyYW5zZm9ybXx8bkUocCk7aWYoaS50b1JlZ2V4JiZ0PT09MSlyZXR1cm4geG0obXMocixkKSxtcyhlLGQpLCEwLGkpO2xldCBiPXtuZWdhdGl2ZXM6W10scG9zaXRpdmVzOltdfSx2PWs9PmJbazwwPyJuZWdhdGl2ZXMiOiJwb3NpdGl2ZXMiXS5wdXNoKE1hdGguYWJzKGspKSx5PVtdLHc9MDtmb3IoO2E/bj49czpuPD1zOylpLnRvUmVnZXg9PT0hMCYmdD4xP3Yobik6eS5wdXNoKGFFKGgobix3KSxkLHApKSxuPWE/bi10Om4rdCx3Kys7cmV0dXJuIGkudG9SZWdleD09PSEwP3Q+MT9vRShiLGksZCk6a20oeSxudWxsLHt3cmFwOiExLC4uLml9KTp5fSxmRT0ocixlLHQ9MSxpPXt9KT0+e2lmKCFJaShyKSYmci5sZW5ndGg+MXx8IUlpKGUpJiZlLmxlbmd0aD4xKXJldHVybiBBbShyLGUsaSk7bGV0IG49aS50cmFuc2Zvcm18fChwPT5TdHJpbmcuZnJvbUNoYXJDb2RlKHApKSxzPWAke3J9YC5jaGFyQ29kZUF0KDApLGE9YCR7ZX1gLmNoYXJDb2RlQXQoMCksbz1zPmEsbD1NYXRoLm1pbihzLGEpLGM9TWF0aC5tYXgocyxhKTtpZihpLnRvUmVnZXgmJnQ9PT0xKXJldHVybiB4bShsLGMsITEsaSk7bGV0IGY9W10sZD0wO2Zvcig7bz9zPj1hOnM8PWE7KWYucHVzaChuKHMsZCkpLHM9bz9zLXQ6cyt0LGQrKztyZXR1cm4gaS50b1JlZ2V4PT09ITA/a20oZixudWxsLHt3cmFwOiExLG9wdGlvbnM6aX0pOmZ9LGdzPShyLGUsdCxpPXt9KT0+e2lmKGU9PW51bGwmJmZsKHIpKXJldHVybltyXTtpZighZmwocil8fCFmbChlKSlyZXR1cm4gQW0ocixlLGkpO2lmKHR5cGVvZiB0PT0iZnVuY3Rpb24iKXJldHVybiBncyhyLGUsMSx7dHJhbnNmb3JtOnR9KTtpZih2bSh0KSlyZXR1cm4gZ3MocixlLDAsdCk7bGV0IG49ey4uLml9O3JldHVybiBuLmNhcHR1cmU9PT0hMCYmKG4ud3JhcD0hMCksdD10fHxuLnN0ZXB8fDEsSWkodCk/SWkocikmJklpKGUpP3VFKHIsZSx0LG4pOmZFKHIsZSxNYXRoLm1heChNYXRoLmFicyh0KSwxKSxuKTp0IT1udWxsJiYhdm0odCk/bEUodCxuKTpncyhyLGUsMSx0KX07Q20uZXhwb3J0cz1nc30pO3ZhciBPbT14KChyNixFbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBjRT1wbCgpLF9tPWRzKCkscEU9KHIsZT17fSk9PntsZXQgdD0oaSxuPXt9KT0+e2xldCBzPV9tLmlzSW52YWxpZEJyYWNlKG4pLGE9aS5pbnZhbGlkPT09ITAmJmUuZXNjYXBlSW52YWxpZD09PSEwLG89cz09PSEwfHxhPT09ITAsbD1lLmVzY2FwZUludmFsaWQ9PT0hMD8iXFwiOiIiLGM9IiI7aWYoaS5pc09wZW49PT0hMClyZXR1cm4gbCtpLnZhbHVlO2lmKGkuaXNDbG9zZT09PSEwKXJldHVybiBjb25zb2xlLmxvZygibm9kZS5pc0Nsb3NlIixsLGkudmFsdWUpLGwraS52YWx1ZTtpZihpLnR5cGU9PT0ib3BlbiIpcmV0dXJuIG8/bCtpLnZhbHVlOiIoIjtpZihpLnR5cGU9PT0iY2xvc2UiKXJldHVybiBvP2wraS52YWx1ZToiKSI7aWYoaS50eXBlPT09ImNvbW1hIilyZXR1cm4gaS5wcmV2LnR5cGU9PT0iY29tbWEiPyIiOm8/aS52YWx1ZToifCI7aWYoaS52YWx1ZSlyZXR1cm4gaS52YWx1ZTtpZihpLm5vZGVzJiZpLnJhbmdlcz4wKXtsZXQgZj1fbS5yZWR1Y2UoaS5ub2RlcyksZD1jRSguLi5mLHsuLi5lLHdyYXA6ITEsdG9SZWdleDohMCxzdHJpY3RaZXJvczohMH0pO2lmKGQubGVuZ3RoIT09MClyZXR1cm4gZi5sZW5ndGg+MSYmZC5sZW5ndGg+MT9gKCR7ZH0pYDpkfWlmKGkubm9kZXMpZm9yKGxldCBmIG9mIGkubm9kZXMpYys9dChmLGkpO3JldHVybiBjfTtyZXR1cm4gdChyKX07RW0uZXhwb3J0cz1wRX0pO3ZhciBQbT14KChpNixSbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBkRT1wbCgpLFRtPWhzKCksbXI9ZHMoKSxHdD0ocj0iIixlPSIiLHQ9ITEpPT57bGV0IGk9W107aWYocj1bXS5jb25jYXQociksZT1bXS5jb25jYXQoZSksIWUubGVuZ3RoKXJldHVybiByO2lmKCFyLmxlbmd0aClyZXR1cm4gdD9tci5mbGF0dGVuKGUpLm1hcChuPT5geyR7bn19YCk6ZTtmb3IobGV0IG4gb2YgcilpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgcyBvZiBuKWkucHVzaChHdChzLGUsdCkpO2Vsc2UgZm9yKGxldCBzIG9mIGUpdD09PSEwJiZ0eXBlb2Ygcz09InN0cmluZyImJihzPWB7JHtzfX1gKSxpLnB1c2goQXJyYXkuaXNBcnJheShzKT9HdChuLHMsdCk6bitzKTtyZXR1cm4gbXIuZmxhdHRlbihpKX0saEU9KHIsZT17fSk9PntsZXQgdD1lLnJhbmdlTGltaXQ9PT12b2lkIDA/MWUzOmUucmFuZ2VMaW1pdCxpPShuLHM9e30pPT57bi5xdWV1ZT1bXTtsZXQgYT1zLG89cy5xdWV1ZTtmb3IoO2EudHlwZSE9PSJicmFjZSImJmEudHlwZSE9PSJyb290IiYmYS5wYXJlbnQ7KWE9YS5wYXJlbnQsbz1hLnF1ZXVlO2lmKG4uaW52YWxpZHx8bi5kb2xsYXIpe28ucHVzaChHdChvLnBvcCgpLFRtKG4sZSkpKTtyZXR1cm59aWYobi50eXBlPT09ImJyYWNlIiYmbi5pbnZhbGlkIT09ITAmJm4ubm9kZXMubGVuZ3RoPT09Mil7by5wdXNoKEd0KG8ucG9wKCksWyJ7fSJdKSk7cmV0dXJufWlmKG4ubm9kZXMmJm4ucmFuZ2VzPjApe2xldCBkPW1yLnJlZHVjZShuLm5vZGVzKTtpZihtci5leGNlZWRzTGltaXQoLi4uZCxlLnN0ZXAsdCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImV4cGFuZGVkIGFycmF5IGxlbmd0aCBleGNlZWRzIHJhbmdlIGxpbWl0LiBVc2Ugb3B0aW9ucy5yYW5nZUxpbWl0IHRvIGluY3JlYXNlIG9yIGRpc2FibGUgdGhlIGxpbWl0LiIpO2xldCBwPWRFKC4uLmQsZSk7cC5sZW5ndGg9PT0wJiYocD1UbShuLGUpKSxvLnB1c2goR3Qoby5wb3AoKSxwKSksbi5ub2Rlcz1bXTtyZXR1cm59bGV0IGw9bXIuZW5jbG9zZUJyYWNlKG4pLGM9bi5xdWV1ZSxmPW47Zm9yKDtmLnR5cGUhPT0iYnJhY2UiJiZmLnR5cGUhPT0icm9vdCImJmYucGFyZW50OylmPWYucGFyZW50LGM9Zi5xdWV1ZTtmb3IobGV0IGQ9MDtkPG4ubm9kZXMubGVuZ3RoO2QrKyl7bGV0IHA9bi5ub2Rlc1tkXTtpZihwLnR5cGU9PT0iY29tbWEiJiZuLnR5cGU9PT0iYnJhY2UiKXtkPT09MSYmYy5wdXNoKCIiKSxjLnB1c2goIiIpO2NvbnRpbnVlfWlmKHAudHlwZT09PSJjbG9zZSIpe28ucHVzaChHdChvLnBvcCgpLGMsbCkpO2NvbnRpbnVlfWlmKHAudmFsdWUmJnAudHlwZSE9PSJvcGVuIil7Yy5wdXNoKEd0KGMucG9wKCkscC52YWx1ZSkpO2NvbnRpbnVlfXAubm9kZXMmJmkocCxuKX1yZXR1cm4gY307cmV0dXJuIG1yLmZsYXR0ZW4oaShyKSl9O1JtLmV4cG9ydHM9aEV9KTt2YXIgRG09eCgobjYsSW0pPT57dSgpOyJ1c2Ugc3RyaWN0IjtJbS5leHBvcnRzPXtNQVhfTEVOR1RIOjFlNCxDSEFSXzA6IjAiLENIQVJfOToiOSIsQ0hBUl9VUFBFUkNBU0VfQToiQSIsQ0hBUl9MT1dFUkNBU0VfQToiYSIsQ0hBUl9VUFBFUkNBU0VfWjoiWiIsQ0hBUl9MT1dFUkNBU0VfWjoieiIsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOiIoIixDSEFSX1JJR0hUX1BBUkVOVEhFU0VTOiIpIixDSEFSX0FTVEVSSVNLOiIqIixDSEFSX0FNUEVSU0FORDoiJiIsQ0hBUl9BVDoiQCIsQ0hBUl9CQUNLU0xBU0g6IlxcIixDSEFSX0JBQ0tUSUNLOiJgIixDSEFSX0NBUlJJQUdFX1JFVFVSTjoiXHIiLENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6Il4iLENIQVJfQ09MT046IjoiLENIQVJfQ09NTUE6IiwiLENIQVJfRE9MTEFSOiIkIixDSEFSX0RPVDoiLiIsQ0hBUl9ET1VCTEVfUVVPVEU6JyInLENIQVJfRVFVQUw6Ij0iLENIQVJfRVhDTEFNQVRJT05fTUFSSzoiISIsQ0hBUl9GT1JNX0ZFRUQ6IlxmIixDSEFSX0ZPUldBUkRfU0xBU0g6Ii8iLENIQVJfSEFTSDoiIyIsQ0hBUl9IWVBIRU5fTUlOVVM6Ii0iLENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiI8IixDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6InsiLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDoiWyIsQ0hBUl9MSU5FX0ZFRUQ6YApgLENIQVJfTk9fQlJFQUtfU1BBQ0U6Ilx4QTAiLENIQVJfUEVSQ0VOVDoiJSIsQ0hBUl9QTFVTOiIrIixDSEFSX1FVRVNUSU9OX01BUks6Ij8iLENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDoiPiIsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRToifSIsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDoiXSIsQ0hBUl9TRU1JQ09MT046IjsiLENIQVJfU0lOR0xFX1FVT1RFOiInIixDSEFSX1NQQUNFOiIgIixDSEFSX1RBQjoiCSIsQ0hBUl9VTkRFUlNDT1JFOiJfIixDSEFSX1ZFUlRJQ0FMX0xJTkU6InwiLENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOiJcdUZFRkYifX0pO3ZhciBObT14KChzNixNbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBtRT1ocygpLHtNQVhfTEVOR1RIOnFtLENIQVJfQkFDS1NMQVNIOmRsLENIQVJfQkFDS1RJQ0s6Z0UsQ0hBUl9DT01NQTp5RSxDSEFSX0RPVDpiRSxDSEFSX0xFRlRfUEFSRU5USEVTRVM6d0UsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzp2RSxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6eEUsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRTprRSxDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6JG0sQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDpMbSxDSEFSX0RPVUJMRV9RVU9URTpTRSxDSEFSX1NJTkdMRV9RVU9URTpBRSxDSEFSX05PX0JSRUFLX1NQQUNFOkNFLENIQVJfWkVST19XSURUSF9OT0JSRUFLX1NQQUNFOl9FfT1EbSgpLEVFPShyLGU9e30pPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7bGV0IHQ9ZXx8e30saT10eXBlb2YgdC5tYXhMZW5ndGg9PSJudW1iZXIiP01hdGgubWluKHFtLHQubWF4TGVuZ3RoKTpxbTtpZihyLmxlbmd0aD5pKXRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoICgke3IubGVuZ3RofSksIGV4Y2VlZHMgbWF4IGNoYXJhY3RlcnMgKCR7aX0pYCk7bGV0IG49e3R5cGU6InJvb3QiLGlucHV0OnIsbm9kZXM6W119LHM9W25dLGE9bixvPW4sbD0wLGM9ci5sZW5ndGgsZj0wLGQ9MCxwLGg9KCk9PnJbZisrXSxiPXY9PntpZih2LnR5cGU9PT0idGV4dCImJm8udHlwZT09PSJkb3QiJiYoby50eXBlPSJ0ZXh0IiksbyYmby50eXBlPT09InRleHQiJiZ2LnR5cGU9PT0idGV4dCIpe28udmFsdWUrPXYudmFsdWU7cmV0dXJufXJldHVybiBhLm5vZGVzLnB1c2godiksdi5wYXJlbnQ9YSx2LnByZXY9byxvPXYsdn07Zm9yKGIoe3R5cGU6ImJvcyJ9KTtmPGM7KWlmKGE9c1tzLmxlbmd0aC0xXSxwPWgoKSwhKHA9PT1fRXx8cD09PUNFKSl7aWYocD09PWRsKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTooZS5rZWVwRXNjYXBpbmc/cDoiIikraCgpfSk7Y29udGludWV9aWYocD09PUxtKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZToiXFwiK3B9KTtjb250aW51ZX1pZihwPT09JG0pe2wrKztsZXQgdjtmb3IoO2Y8YyYmKHY9aCgpKTspe2lmKHArPXYsdj09PSRtKXtsKys7Y29udGludWV9aWYodj09PWRsKXtwKz1oKCk7Y29udGludWV9aWYodj09PUxtJiYobC0tLGw9PT0wKSlicmVha31iKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXdFKXthPWIoe3R5cGU6InBhcmVuIixub2RlczpbXX0pLHMucHVzaChhKSxiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXZFKXtpZihhLnR5cGUhPT0icGFyZW4iKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9YT1zLnBvcCgpLGIoe3R5cGU6InRleHQiLHZhbHVlOnB9KSxhPXNbcy5sZW5ndGgtMV07Y29udGludWV9aWYocD09PVNFfHxwPT09QUV8fHA9PT1nRSl7bGV0IHY9cCx5O2ZvcihlLmtlZXBRdW90ZXMhPT0hMCYmKHA9IiIpO2Y8YyYmKHk9aCgpKTspe2lmKHk9PT1kbCl7cCs9eStoKCk7Y29udGludWV9aWYoeT09PXYpe2Uua2VlcFF1b3Rlcz09PSEwJiYocCs9eSk7YnJlYWt9cCs9eX1iKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYocD09PXhFKXtkKys7bGV0IHY9by52YWx1ZSYmby52YWx1ZS5zbGljZSgtMSk9PT0iJCJ8fGEuZG9sbGFyPT09ITA7YT1iKHt0eXBlOiJicmFjZSIsb3BlbjohMCxjbG9zZTohMSxkb2xsYXI6dixkZXB0aDpkLGNvbW1hczowLHJhbmdlczowLG5vZGVzOltdfSkscy5wdXNoKGEpLGIoe3R5cGU6Im9wZW4iLHZhbHVlOnB9KTtjb250aW51ZX1pZihwPT09a0Upe2lmKGEudHlwZSE9PSJicmFjZSIpe2Ioe3R5cGU6InRleHQiLHZhbHVlOnB9KTtjb250aW51ZX1sZXQgdj0iY2xvc2UiO2E9cy5wb3AoKSxhLmNsb3NlPSEwLGIoe3R5cGU6dix2YWx1ZTpwfSksZC0tLGE9c1tzLmxlbmd0aC0xXTtjb250aW51ZX1pZihwPT09eUUmJmQ+MCl7aWYoYS5yYW5nZXM+MCl7YS5yYW5nZXM9MDtsZXQgdj1hLm5vZGVzLnNoaWZ0KCk7YS5ub2Rlcz1bdix7dHlwZToidGV4dCIsdmFsdWU6bUUoYSl9XX1iKHt0eXBlOiJjb21tYSIsdmFsdWU6cH0pLGEuY29tbWFzKys7Y29udGludWV9aWYocD09PWJFJiZkPjAmJmEuY29tbWFzPT09MCl7bGV0IHY9YS5ub2RlcztpZihkPT09MHx8di5sZW5ndGg9PT0wKXtiKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpwfSk7Y29udGludWV9aWYoby50eXBlPT09ImRvdCIpe2lmKGEucmFuZ2U9W10sby52YWx1ZSs9cCxvLnR5cGU9InJhbmdlIixhLm5vZGVzLmxlbmd0aCE9PTMmJmEubm9kZXMubGVuZ3RoIT09NSl7YS5pbnZhbGlkPSEwLGEucmFuZ2VzPTAsby50eXBlPSJ0ZXh0Ijtjb250aW51ZX1hLnJhbmdlcysrLGEuYXJncz1bXTtjb250aW51ZX1pZihvLnR5cGU9PT0icmFuZ2UiKXt2LnBvcCgpO2xldCB5PXZbdi5sZW5ndGgtMV07eS52YWx1ZSs9by52YWx1ZStwLG89eSxhLnJhbmdlcy0tO2NvbnRpbnVlfWIoe3R5cGU6ImRvdCIsdmFsdWU6cH0pO2NvbnRpbnVlfWIoe3R5cGU6InRleHQiLHZhbHVlOnB9KX1kbyBpZihhPXMucG9wKCksYS50eXBlIT09InJvb3QiKXthLm5vZGVzLmZvckVhY2godz0+e3cubm9kZXN8fCh3LnR5cGU9PT0ib3BlbiImJih3LmlzT3Blbj0hMCksdy50eXBlPT09ImNsb3NlIiYmKHcuaXNDbG9zZT0hMCksdy5ub2Rlc3x8KHcudHlwZT0idGV4dCIpLHcuaW52YWxpZD0hMCl9KTtsZXQgdj1zW3MubGVuZ3RoLTFdLHk9di5ub2Rlcy5pbmRleE9mKGEpO3Yubm9kZXMuc3BsaWNlKHksMSwuLi5hLm5vZGVzKX13aGlsZShzLmxlbmd0aD4wKTtyZXR1cm4gYih7dHlwZToiZW9zIn0pLG59O01tLmV4cG9ydHM9RUV9KTt2YXIgam09eCgoYTYsRm0pPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgQm09aHMoKSxPRT1PbSgpLFRFPVBtKCksUkU9Tm0oKSxMZT0ocixlPXt9KT0+e2xldCB0PVtdO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKGxldCBpIG9mIHIpe2xldCBuPUxlLmNyZWF0ZShpLGUpO0FycmF5LmlzQXJyYXkobik/dC5wdXNoKC4uLm4pOnQucHVzaChuKX1lbHNlIHQ9W10uY29uY2F0KExlLmNyZWF0ZShyLGUpKTtyZXR1cm4gZSYmZS5leHBhbmQ9PT0hMCYmZS5ub2R1cGVzPT09ITAmJih0PVsuLi5uZXcgU2V0KHQpXSksdH07TGUucGFyc2U9KHIsZT17fSk9PlJFKHIsZSk7TGUuc3RyaW5naWZ5PShyLGU9e30pPT50eXBlb2Ygcj09InN0cmluZyI/Qm0oTGUucGFyc2UocixlKSxlKTpCbShyLGUpO0xlLmNvbXBpbGU9KHIsZT17fSk9Pih0eXBlb2Ygcj09InN0cmluZyImJihyPUxlLnBhcnNlKHIsZSkpLE9FKHIsZSkpO0xlLmV4cGFuZD0ocixlPXt9KT0+e3R5cGVvZiByPT0ic3RyaW5nIiYmKHI9TGUucGFyc2UocixlKSk7bGV0IHQ9VEUocixlKTtyZXR1cm4gZS5ub2VtcHR5PT09ITAmJih0PXQuZmlsdGVyKEJvb2xlYW4pKSxlLm5vZHVwZXM9PT0hMCYmKHQ9Wy4uLm5ldyBTZXQodCldKSx0fTtMZS5jcmVhdGU9KHIsZT17fSk9PnI9PT0iInx8ci5sZW5ndGg8Mz9bcl06ZS5leHBhbmQhPT0hMD9MZS5jb21waWxlKHIsZSk6TGUuZXhwYW5kKHIsZSk7Rm0uZXhwb3J0cz1MZX0pO3ZhciBEaT14KChvNixXbSk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBQRT0oZXQoKSxVciksYXQ9IlxcXFwvIix6bT1gW14ke2F0fV1gLHl0PSJcXC4iLElFPSJcXCsiLERFPSJcXD8iLHlzPSJcXC8iLHFFPSIoPz0uKSIsVW09IlteL10iLGhsPWAoPzoke3lzfXwkKWAsVm09YCg/Ol58JHt5c30pYCxtbD1gJHt5dH17MSwyfSR7aGx9YCwkRT1gKD8hJHt5dH0pYCxMRT1gKD8hJHtWbX0ke21sfSlgLE1FPWAoPyEke3l0fXswLDF9JHtobH0pYCxORT1gKD8hJHttbH0pYCxCRT1gW14uJHt5c31dYCxGRT1gJHtVbX0qP2AsSG09e0RPVF9MSVRFUkFMOnl0LFBMVVNfTElURVJBTDpJRSxRTUFSS19MSVRFUkFMOkRFLFNMQVNIX0xJVEVSQUw6eXMsT05FX0NIQVI6cUUsUU1BUks6VW0sRU5EX0FOQ0hPUjpobCxET1RTX1NMQVNIOm1sLE5PX0RPVDokRSxOT19ET1RTOkxFLE5PX0RPVF9TTEFTSDpNRSxOT19ET1RTX1NMQVNIOk5FLFFNQVJLX05PX0RPVDpCRSxTVEFSOkZFLFNUQVJUX0FOQ0hPUjpWbX0sakU9ey4uLkhtLFNMQVNIX0xJVEVSQUw6YFske2F0fV1gLFFNQVJLOnptLFNUQVI6YCR7em19Kj9gLERPVFNfU0xBU0g6YCR7eXR9ezEsMn0oPzpbJHthdH1dfCQpYCxOT19ET1Q6YCg/ISR7eXR9KWAsTk9fRE9UUzpgKD8hKD86XnxbJHthdH1dKSR7eXR9ezEsMn0oPzpbJHthdH1dfCQpKWAsTk9fRE9UX1NMQVNIOmAoPyEke3l0fXswLDF9KD86WyR7YXR9XXwkKSlgLE5PX0RPVFNfU0xBU0g6YCg/ISR7eXR9ezEsMn0oPzpbJHthdH1dfCQpKWAsUU1BUktfTk9fRE9UOmBbXi4ke2F0fV1gLFNUQVJUX0FOQ0hPUjpgKD86XnxbJHthdH1dKWAsRU5EX0FOQ0hPUjpgKD86WyR7YXR9XXwkKWB9LHpFPXthbG51bToiYS16QS1aMC05IixhbHBoYToiYS16QS1aIixhc2NpaToiXFx4MDAtXFx4N0YiLGJsYW5rOiIgXFx0IixjbnRybDoiXFx4MDAtXFx4MUZcXHg3RiIsZGlnaXQ6IjAtOSIsZ3JhcGg6IlxceDIxLVxceDdFIixsb3dlcjoiYS16IixwcmludDoiXFx4MjAtXFx4N0UgIixwdW5jdDoiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLHNwYWNlOiIgXFx0XFxyXFxuXFx2XFxmIix1cHBlcjoiQS1aIix3b3JkOiJBLVphLXowLTlfIix4ZGlnaXQ6IkEtRmEtZjAtOSJ9O1dtLmV4cG9ydHM9e01BWF9MRU5HVEg6MTAyNCo2NCxQT1NJWF9SRUdFWF9TT1VSQ0U6ekUsUkVHRVhfQkFDS1NMQVNIOi9cXCg/IVsqKz9eJHt9KHwpW1xdXSkvZyxSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzovXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sUkVHRVhfU1BFQ0lBTF9DSEFSUzovWy0qKz8uXiR7fSh8KVtcXV0vLFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjovKFxcPykoKFxXKShcMyopKS9nLFJFR0VYX1NQRUNJQUxfQ0hBUlNfR0xPQkFMOi8oWy0qKz8uXiR7fSh8KVtcXV0pL2csUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSDovKD86XFsuKj9bXlxcXVxdfFxcKD89LikpL2csUkVQTEFDRU1FTlRTOnsiKioqIjoiKiIsIioqLyoqIjoiKioiLCIqKi8qKi8qKiI6IioqIn0sQ0hBUl8wOjQ4LENIQVJfOTo1NyxDSEFSX1VQUEVSQ0FTRV9BOjY1LENIQVJfTE9XRVJDQVNFX0E6OTcsQ0hBUl9VUFBFUkNBU0VfWjo5MCxDSEFSX0xPV0VSQ0FTRV9aOjEyMixDSEFSX0xFRlRfUEFSRU5USEVTRVM6NDAsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzo0MSxDSEFSX0FTVEVSSVNLOjQyLENIQVJfQU1QRVJTQU5EOjM4LENIQVJfQVQ6NjQsQ0hBUl9CQUNLV0FSRF9TTEFTSDo5MixDSEFSX0NBUlJJQUdFX1JFVFVSTjoxMyxDSEFSX0NJUkNVTUZMRVhfQUNDRU5UOjk0LENIQVJfQ09MT046NTgsQ0hBUl9DT01NQTo0NCxDSEFSX0RPVDo0NixDSEFSX0RPVUJMRV9RVU9URTozNCxDSEFSX0VRVUFMOjYxLENIQVJfRVhDTEFNQVRJT05fTUFSSzozMyxDSEFSX0ZPUk1fRkVFRDoxMixDSEFSX0ZPUldBUkRfU0xBU0g6NDcsQ0hBUl9HUkFWRV9BQ0NFTlQ6OTYsQ0hBUl9IQVNIOjM1LENIQVJfSFlQSEVOX01JTlVTOjQ1LENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOjYwLENIQVJfTEVGVF9DVVJMWV9CUkFDRToxMjMsQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOjkxLENIQVJfTElORV9GRUVEOjEwLENIQVJfTk9fQlJFQUtfU1BBQ0U6MTYwLENIQVJfUEVSQ0VOVDozNyxDSEFSX1BMVVM6NDMsQ0hBUl9RVUVTVElPTl9NQVJLOjYzLENIQVJfUklHSFRfQU5HTEVfQlJBQ0tFVDo2MixDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOjEyNSxDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUOjkzLENIQVJfU0VNSUNPTE9OOjU5LENIQVJfU0lOR0xFX1FVT1RFOjM5LENIQVJfU1BBQ0U6MzIsQ0hBUl9UQUI6OSxDSEFSX1VOREVSU0NPUkU6OTUsQ0hBUl9WRVJUSUNBTF9MSU5FOjEyNCxDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTo2NTI3OSxTRVA6UEUuc2VwLGV4dGdsb2JDaGFycyhyKXtyZXR1cm57IiEiOnt0eXBlOiJuZWdhdGUiLG9wZW46Iig/Oig/ISg/OiIsY2xvc2U6YCkpJHtyLlNUQVJ9KWB9LCI/Ijp7dHlwZToicW1hcmsiLG9wZW46Iig/OiIsY2xvc2U6Iik/In0sIisiOnt0eXBlOiJwbHVzIixvcGVuOiIoPzoiLGNsb3NlOiIpKyJ9LCIqIjp7dHlwZToic3RhciIsb3BlbjoiKD86IixjbG9zZToiKSoifSwiQCI6e3R5cGU6ImF0IixvcGVuOiIoPzoiLGNsb3NlOiIpIn19fSxnbG9iQ2hhcnMocil7cmV0dXJuIHI9PT0hMD9qRTpIbX19fSk7dmFyIHFpPXgoUmU9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBVRT0oZXQoKSxVciksVkU9bS5wbGF0Zm9ybT09PSJ3aW4zMiIse1JFR0VYX0JBQ0tTTEFTSDpIRSxSRUdFWF9SRU1PVkVfQkFDS1NMQVNIOldFLFJFR0VYX1NQRUNJQUxfQ0hBUlM6R0UsUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6UUV9PURpKCk7UmUuaXNPYmplY3Q9cj0+ciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkocik7UmUuaGFzUmVnZXhDaGFycz1yPT5HRS50ZXN0KHIpO1JlLmlzUmVnZXhDaGFyPXI9PnIubGVuZ3RoPT09MSYmUmUuaGFzUmVnZXhDaGFycyhyKTtSZS5lc2NhcGVSZWdleD1yPT5yLnJlcGxhY2UoUUUsIlxcJDEiKTtSZS50b1Bvc2l4U2xhc2hlcz1yPT5yLnJlcGxhY2UoSEUsIi8iKTtSZS5yZW1vdmVCYWNrc2xhc2hlcz1yPT5yLnJlcGxhY2UoV0UsZT0+ZT09PSJcXCI/IiI6ZSk7UmUuc3VwcG9ydHNMb29rYmVoaW5kcz0oKT0+e2xldCByPW0udmVyc2lvbi5zbGljZSgxKS5zcGxpdCgiLiIpLm1hcChOdW1iZXIpO3JldHVybiByLmxlbmd0aD09PTMmJnJbMF0+PTl8fHJbMF09PT04JiZyWzFdPj0xMH07UmUuaXNXaW5kb3dzPXI9PnImJnR5cGVvZiByLndpbmRvd3M9PSJib29sZWFuIj9yLndpbmRvd3M6VkU9PT0hMHx8VUUuc2VwPT09IlxcIjtSZS5lc2NhcGVMYXN0PShyLGUsdCk9PntsZXQgaT1yLmxhc3RJbmRleE9mKGUsdCk7cmV0dXJuIGk9PT0tMT9yOnJbaS0xXT09PSJcXCI/UmUuZXNjYXBlTGFzdChyLGUsaS0xKTpgJHtyLnNsaWNlKDAsaSl9XFwke3Iuc2xpY2UoaSl9YH07UmUucmVtb3ZlUHJlZml4PShyLGU9e30pPT57bGV0IHQ9cjtyZXR1cm4gdC5zdGFydHNXaXRoKCIuLyIpJiYodD10LnNsaWNlKDIpLGUucHJlZml4PSIuLyIpLHR9O1JlLndyYXBPdXRwdXQ9KHIsZT17fSx0PXt9KT0+e2xldCBpPXQuY29udGFpbnM/IiI6Il4iLG49dC5jb250YWlucz8iIjoiJCIscz1gJHtpfSg/OiR7cn0pJHtufWA7cmV0dXJuIGUubmVnYXRlZD09PSEwJiYocz1gKD86Xig/ISR7c30pLiokKWApLHN9fSk7dmFyIGVnPXgoKHU2LEptKT0+e3UoKTsidXNlIHN0cmljdCI7dmFyIEdtPXFpKCkse0NIQVJfQVNURVJJU0s6Z2wsQ0hBUl9BVDpZRSxDSEFSX0JBQ0tXQVJEX1NMQVNIOiRpLENIQVJfQ09NTUE6S0UsQ0hBUl9ET1Q6eWwsQ0hBUl9FWENMQU1BVElPTl9NQVJLOmJsLENIQVJfRk9SV0FSRF9TTEFTSDpRbSxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6d2wsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOnZsLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDpYRSxDSEFSX1BMVVM6WkUsQ0hBUl9RVUVTVElPTl9NQVJLOlltLENIQVJfUklHSFRfQ1VSTFlfQlJBQ0U6SkUsQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzpLbSxDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUOmUyfT1EaSgpLFhtPXI9PnI9PT1RbXx8cj09PSRpLFptPXI9PntyLmlzUHJlZml4IT09ITAmJihyLmRlcHRoPXIuaXNHbG9ic3Rhcj8xLzA6MSl9LHQyPShyLGUpPT57bGV0IHQ9ZXx8e30saT1yLmxlbmd0aC0xLG49dC5wYXJ0cz09PSEwfHx0LnNjYW5Ub0VuZD09PSEwLHM9W10sYT1bXSxvPVtdLGw9cixjPS0xLGY9MCxkPTAscD0hMSxoPSExLGI9ITEsdj0hMSx5PSExLHc9ITEsaz0hMSxTPSExLEU9ITEsVD0hMSxCPTAsTixSLEY9e3ZhbHVlOiIiLGRlcHRoOjAsaXNHbG9iOiExfSxZPSgpPT5jPj1pLF89KCk9PmwuY2hhckNvZGVBdChjKzEpLFE9KCk9PihOPVIsbC5jaGFyQ29kZUF0KCsrYykpO2Zvcig7YzxpOyl7Uj1RKCk7bGV0IGhlO2lmKFI9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFI9USgpLFI9PT13bCYmKHc9ITApO2NvbnRpbnVlfWlmKHc9PT0hMHx8Uj09PXdsKXtmb3IoQisrO1koKSE9PSEwJiYoUj1RKCkpOyl7aWYoUj09PSRpKXtrPUYuYmFja3NsYXNoZXM9ITAsUSgpO2NvbnRpbnVlfWlmKFI9PT13bCl7QisrO2NvbnRpbnVlfWlmKHchPT0hMCYmUj09PXlsJiYoUj1RKCkpPT09eWwpe2lmKHA9Ri5pc0JyYWNlPSEwLGI9Ri5pc0dsb2I9ITAsVD0hMCxuPT09ITApY29udGludWU7YnJlYWt9aWYodyE9PSEwJiZSPT09S0Upe2lmKHA9Ri5pc0JyYWNlPSEwLGI9Ri5pc0dsb2I9ITAsVD0hMCxuPT09ITApY29udGludWU7YnJlYWt9aWYoUj09PUpFJiYoQi0tLEI9PT0wKSl7dz0hMSxwPUYuaXNCcmFjZT0hMCxUPSEwO2JyZWFrfX1pZihuPT09ITApY29udGludWU7YnJlYWt9aWYoUj09PVFtKXtpZihzLnB1c2goYyksYS5wdXNoKEYpLEY9e3ZhbHVlOiIiLGRlcHRoOjAsaXNHbG9iOiExfSxUPT09ITApY29udGludWU7aWYoTj09PXlsJiZjPT09ZisxKXtmKz0yO2NvbnRpbnVlfWQ9YysxO2NvbnRpbnVlfWlmKHQubm9leHQhPT0hMCYmKFI9PT1aRXx8Uj09PVlFfHxSPT09Z2x8fFI9PT1ZbXx8Uj09PWJsKT09PSEwJiZfKCk9PT12bCl7aWYoYj1GLmlzR2xvYj0hMCx2PUYuaXNFeHRnbG9iPSEwLFQ9ITAsUj09PWJsJiZjPT09ZiYmKEU9ITApLG49PT0hMCl7Zm9yKDtZKCkhPT0hMCYmKFI9USgpKTspe2lmKFI9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFI9USgpO2NvbnRpbnVlfWlmKFI9PT1LbSl7Yj1GLmlzR2xvYj0hMCxUPSEwO2JyZWFrfX1jb250aW51ZX1icmVha31pZihSPT09Z2wpe2lmKE49PT1nbCYmKHk9Ri5pc0dsb2JzdGFyPSEwKSxiPUYuaXNHbG9iPSEwLFQ9ITAsbj09PSEwKWNvbnRpbnVlO2JyZWFrfWlmKFI9PT1ZbSl7aWYoYj1GLmlzR2xvYj0hMCxUPSEwLG49PT0hMCljb250aW51ZTticmVha31pZihSPT09WEUpe2Zvcig7WSgpIT09ITAmJihoZT1RKCkpOyl7aWYoaGU9PT0kaSl7az1GLmJhY2tzbGFzaGVzPSEwLFEoKTtjb250aW51ZX1pZihoZT09PWUyKXtoPUYuaXNCcmFja2V0PSEwLGI9Ri5pc0dsb2I9ITAsVD0hMDticmVha319aWYobj09PSEwKWNvbnRpbnVlO2JyZWFrfWlmKHQubm9uZWdhdGUhPT0hMCYmUj09PWJsJiZjPT09Zil7Uz1GLm5lZ2F0ZWQ9ITAsZisrO2NvbnRpbnVlfWlmKHQubm9wYXJlbiE9PSEwJiZSPT09dmwpe2lmKGI9Ri5pc0dsb2I9ITAsbj09PSEwKXtmb3IoO1koKSE9PSEwJiYoUj1RKCkpOyl7aWYoUj09PXZsKXtrPUYuYmFja3NsYXNoZXM9ITAsUj1RKCk7Y29udGludWV9aWYoUj09PUttKXtUPSEwO2JyZWFrfX1jb250aW51ZX1icmVha31pZihiPT09ITApe2lmKFQ9ITAsbj09PSEwKWNvbnRpbnVlO2JyZWFrfX10Lm5vZXh0PT09ITAmJih2PSExLGI9ITEpO2xldCBVPWwsbGU9IiIsQT0iIjtmPjAmJihsZT1sLnNsaWNlKDAsZiksbD1sLnNsaWNlKGYpLGQtPWYpLFUmJmI9PT0hMCYmZD4wPyhVPWwuc2xpY2UoMCxkKSxBPWwuc2xpY2UoZCkpOmI9PT0hMD8oVT0iIixBPWwpOlU9bCxVJiZVIT09IiImJlUhPT0iLyImJlUhPT1sJiZYbShVLmNoYXJDb2RlQXQoVS5sZW5ndGgtMSkpJiYoVT1VLnNsaWNlKDAsLTEpKSx0LnVuZXNjYXBlPT09ITAmJihBJiYoQT1HbS5yZW1vdmVCYWNrc2xhc2hlcyhBKSksVSYmaz09PSEwJiYoVT1HbS5yZW1vdmVCYWNrc2xhc2hlcyhVKSkpO2xldCBDPXtwcmVmaXg6bGUsaW5wdXQ6cixzdGFydDpmLGJhc2U6VSxnbG9iOkEsaXNCcmFjZTpwLGlzQnJhY2tldDpoLGlzR2xvYjpiLGlzRXh0Z2xvYjp2LGlzR2xvYnN0YXI6eSxuZWdhdGVkOlMsbmVnYXRlZEV4dGdsb2I6RX07aWYodC50b2tlbnM9PT0hMCYmKEMubWF4RGVwdGg9MCxYbShSKXx8YS5wdXNoKEYpLEMudG9rZW5zPWEpLHQucGFydHM9PT0hMHx8dC50b2tlbnM9PT0hMCl7bGV0IGhlO2ZvcihsZXQgVj0wO1Y8cy5sZW5ndGg7VisrKXtsZXQgRWU9aGU/aGUrMTpmLEllPXNbVl0sRGU9ci5zbGljZShFZSxJZSk7dC50b2tlbnMmJihWPT09MCYmZiE9PTA/KGFbVl0uaXNQcmVmaXg9ITAsYVtWXS52YWx1ZT1sZSk6YVtWXS52YWx1ZT1EZSxabShhW1ZdKSxDLm1heERlcHRoKz1hW1ZdLmRlcHRoKSwoViE9PTB8fERlIT09IiIpJiZvLnB1c2goRGUpLGhlPUllfWlmKGhlJiZoZSsxPHIubGVuZ3RoKXtsZXQgVj1yLnNsaWNlKGhlKzEpO28ucHVzaChWKSx0LnRva2VucyYmKGFbYS5sZW5ndGgtMV0udmFsdWU9VixabShhW2EubGVuZ3RoLTFdKSxDLm1heERlcHRoKz1hW2EubGVuZ3RoLTFdLmRlcHRoKX1DLnNsYXNoZXM9cyxDLnBhcnRzPW99cmV0dXJuIEN9O0ptLmV4cG9ydHM9dDJ9KTt2YXIgaWc9eCgoZjYscmcpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYnM9RGkoKSxNZT1xaSgpLHtNQVhfTEVOR1RIOndzLFBPU0lYX1JFR0VYX1NPVVJDRTpyMixSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzppMixSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUY6bjIsUkVQTEFDRU1FTlRTOnRnfT1icyxzMj0ocixlKT0+e2lmKHR5cGVvZiBlLmV4cGFuZFJhbmdlPT0iZnVuY3Rpb24iKXJldHVybiBlLmV4cGFuZFJhbmdlKC4uLnIsZSk7ci5zb3J0KCk7bGV0IHQ9YFske3Iuam9pbigiLSIpfV1gO3RyeXtuZXcgUmVnRXhwKHQpfWNhdGNoKGkpe3JldHVybiByLm1hcChuPT5NZS5lc2NhcGVSZWdleChuKSkuam9pbigiLi4iKX1yZXR1cm4gdH0sZ3I9KHIsZSk9PmBNaXNzaW5nICR7cn06ICIke2V9IiAtIHVzZSAiXFxcXCR7ZX0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2AseGw9KHIsZSk9PntpZih0eXBlb2YgciE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTtyPXRnW3JdfHxyO2xldCB0PXsuLi5lfSxpPXR5cGVvZiB0Lm1heExlbmd0aD09Im51bWJlciI/TWF0aC5taW4od3MsdC5tYXhMZW5ndGgpOndzLG49ci5sZW5ndGg7aWYobj5pKXRocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoOiAke259LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7aX1gKTtsZXQgcz17dHlwZToiYm9zIix2YWx1ZToiIixvdXRwdXQ6dC5wcmVwZW5kfHwiIn0sYT1bc10sbz10LmNhcHR1cmU/IiI6Ij86IixsPU1lLmlzV2luZG93cyhlKSxjPWJzLmdsb2JDaGFycyhsKSxmPWJzLmV4dGdsb2JDaGFycyhjKSx7RE9UX0xJVEVSQUw6ZCxQTFVTX0xJVEVSQUw6cCxTTEFTSF9MSVRFUkFMOmgsT05FX0NIQVI6YixET1RTX1NMQVNIOnYsTk9fRE9UOnksTk9fRE9UX1NMQVNIOncsTk9fRE9UU19TTEFTSDprLFFNQVJLOlMsUU1BUktfTk9fRE9UOkUsU1RBUjpULFNUQVJUX0FOQ0hPUjpCfT1jLE49JD0+YCgke299KD86KD8hJHtCfSR7JC5kb3Q/djpkfSkuKSo/KWAsUj10LmRvdD8iIjp5LEY9dC5kb3Q/UzpFLFk9dC5iYXNoPT09ITA/Tih0KTpUO3QuY2FwdHVyZSYmKFk9YCgke1l9KWApLHR5cGVvZiB0Lm5vZXh0PT0iYm9vbGVhbiImJih0Lm5vZXh0Z2xvYj10Lm5vZXh0KTtsZXQgXz17aW5wdXQ6cixpbmRleDotMSxzdGFydDowLGRvdDp0LmRvdD09PSEwLGNvbnN1bWVkOiIiLG91dHB1dDoiIixwcmVmaXg6IiIsYmFja3RyYWNrOiExLG5lZ2F0ZWQ6ITEsYnJhY2tldHM6MCxicmFjZXM6MCxwYXJlbnM6MCxxdW90ZXM6MCxnbG9ic3RhcjohMSx0b2tlbnM6YX07cj1NZS5yZW1vdmVQcmVmaXgocixfKSxuPXIubGVuZ3RoO2xldCBRPVtdLFU9W10sbGU9W10sQT1zLEMsaGU9KCk9Pl8uaW5kZXg9PT1uLTEsVj1fLnBlZWs9KCQ9MSk9PnJbXy5pbmRleCskXSxFZT1fLmFkdmFuY2U9KCk9PnJbKytfLmluZGV4XXx8IiIsSWU9KCk9PnIuc2xpY2UoXy5pbmRleCsxKSxEZT0oJD0iIixhZT0wKT0+e18uY29uc3VtZWQrPSQsXy5pbmRleCs9YWV9LGppPSQ9PntfLm91dHB1dCs9JC5vdXRwdXQhPW51bGw/JC5vdXRwdXQ6JC52YWx1ZSxEZSgkLnZhbHVlKX0sSXY9KCk9PntsZXQgJD0xO2Zvcig7VigpPT09IiEiJiYoVigyKSE9PSIoInx8VigzKT09PSI/Iik7KUVlKCksXy5zdGFydCsrLCQrKztyZXR1cm4gJCUyPT0wPyExOihfLm5lZ2F0ZWQ9ITAsXy5zdGFydCsrLCEwKX0semk9JD0+e19bJF0rKyxsZS5wdXNoKCQpfSxGdD0kPT57X1skXS0tLGxlLnBvcCgpfSxXPSQ9PntpZihBLnR5cGU9PT0iZ2xvYnN0YXIiKXtsZXQgYWU9Xy5icmFjZXM+MCYmKCQudHlwZT09PSJjb21tYSJ8fCQudHlwZT09PSJicmFjZSIpLEk9JC5leHRnbG9iPT09ITB8fFEubGVuZ3RoJiYoJC50eXBlPT09InBpcGUifHwkLnR5cGU9PT0icGFyZW4iKTskLnR5cGUhPT0ic2xhc2giJiYkLnR5cGUhPT0icGFyZW4iJiYhYWUmJiFJJiYoXy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtQS5vdXRwdXQubGVuZ3RoKSxBLnR5cGU9InN0YXIiLEEudmFsdWU9IioiLEEub3V0cHV0PVksXy5vdXRwdXQrPUEub3V0cHV0KX1pZihRLmxlbmd0aCYmJC50eXBlIT09InBhcmVuIiYmKFFbUS5sZW5ndGgtMV0uaW5uZXIrPSQudmFsdWUpLCgkLnZhbHVlfHwkLm91dHB1dCkmJmppKCQpLEEmJkEudHlwZT09PSJ0ZXh0IiYmJC50eXBlPT09InRleHQiKXtBLnZhbHVlKz0kLnZhbHVlLEEub3V0cHV0PShBLm91dHB1dHx8IiIpKyQudmFsdWU7cmV0dXJufSQucHJldj1BLGEucHVzaCgkKSxBPSR9LFVpPSgkLGFlKT0+e2xldCBJPXsuLi5mW2FlXSxjb25kaXRpb25zOjEsaW5uZXI6IiJ9O0kucHJldj1BLEkucGFyZW5zPV8ucGFyZW5zLEkub3V0cHV0PV8ub3V0cHV0O2xldCBIPSh0LmNhcHR1cmU/IigiOiIiKStJLm9wZW47emkoInBhcmVucyIpLFcoe3R5cGU6JCx2YWx1ZTphZSxvdXRwdXQ6Xy5vdXRwdXQ/IiI6Yn0pLFcoe3R5cGU6InBhcmVuIixleHRnbG9iOiEwLHZhbHVlOkVlKCksb3V0cHV0Okh9KSxRLnB1c2goSSl9LER2PSQ9PntsZXQgYWU9JC5jbG9zZSsodC5jYXB0dXJlPyIpIjoiIiksSTtpZigkLnR5cGU9PT0ibmVnYXRlIil7bGV0IEg9WTtpZigkLmlubmVyJiYkLmlubmVyLmxlbmd0aD4xJiYkLmlubmVyLmluY2x1ZGVzKCIvIikmJihIPU4odCkpLChIIT09WXx8aGUoKXx8L15cKSskLy50ZXN0KEllKCkpKSYmKGFlPSQuY2xvc2U9YCkkKSkke0h9YCksJC5pbm5lci5pbmNsdWRlcygiKiIpJiYoST1JZSgpKSYmL15cLlteXFwvLl0rJC8udGVzdChJKSl7bGV0IGNlPXhsKEksey4uLmUsZmFzdHBhdGhzOiExfSkub3V0cHV0O2FlPSQuY2xvc2U9YCkke2NlfSkke0h9KWB9JC5wcmV2LnR5cGU9PT0iYm9zIiYmKF8ubmVnYXRlZEV4dGdsb2I9ITApfVcoe3R5cGU6InBhcmVuIixleHRnbG9iOiEwLHZhbHVlOkMsb3V0cHV0OmFlfSksRnQoInBhcmVucyIpfTtpZih0LmZhc3RwYXRocyE9PSExJiYhLyheWyohXXxbLygpW1xde30iXSkvLnRlc3Qocikpe2xldCAkPSExLGFlPXIucmVwbGFjZShuMiwoSSxILGNlLENlLHllLEJzKT0+Q2U9PT0iXFwiPygkPSEwLEkpOkNlPT09Ij8iP0g/SCtDZSsoeWU/Uy5yZXBlYXQoeWUubGVuZ3RoKToiIik6QnM9PT0wP0YrKHllP1MucmVwZWF0KHllLmxlbmd0aCk6IiIpOlMucmVwZWF0KGNlLmxlbmd0aCk6Q2U9PT0iLiI/ZC5yZXBlYXQoY2UubGVuZ3RoKTpDZT09PSIqIj9IP0grQ2UrKHllP1k6IiIpOlk6SD9JOmBcXCR7SX1gKTtyZXR1cm4gJD09PSEwJiYodC51bmVzY2FwZT09PSEwP2FlPWFlLnJlcGxhY2UoL1xcL2csIiIpOmFlPWFlLnJlcGxhY2UoL1xcKy9nLEk9PkkubGVuZ3RoJTI9PTA/IlxcXFwiOkk/IlxcIjoiIikpLGFlPT09ciYmdC5jb250YWlucz09PSEwPyhfLm91dHB1dD1yLF8pOihfLm91dHB1dD1NZS53cmFwT3V0cHV0KGFlLF8sZSksXyl9Zm9yKDshaGUoKTspe2lmKEM9RWUoKSxDPT09IlwwIiljb250aW51ZTtpZihDPT09IlxcIil7bGV0IEk9VigpO2lmKEk9PT0iLyImJnQuYmFzaCE9PSEwfHxJPT09Ii4ifHxJPT09IjsiKWNvbnRpbnVlO2lmKCFJKXtDKz0iXFwiLFcoe3R5cGU6InRleHQiLHZhbHVlOkN9KTtjb250aW51ZX1sZXQgSD0vXlxcKy8uZXhlYyhJZSgpKSxjZT0wO2lmKEgmJkhbMF0ubGVuZ3RoPjImJihjZT1IWzBdLmxlbmd0aCxfLmluZGV4Kz1jZSxjZSUyIT0wJiYoQys9IlxcIikpLHQudW5lc2NhcGU9PT0hMD9DPUVlKCk6Qys9RWUoKSxfLmJyYWNrZXRzPT09MCl7Vyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfX1pZihfLmJyYWNrZXRzPjAmJihDIT09Il0ifHxBLnZhbHVlPT09IlsifHxBLnZhbHVlPT09IlteIikpe2lmKHQucG9zaXghPT0hMSYmQz09PSI6Iil7bGV0IEk9QS52YWx1ZS5zbGljZSgxKTtpZihJLmluY2x1ZGVzKCJbIikmJihBLnBvc2l4PSEwLEkuaW5jbHVkZXMoIjoiKSkpe2xldCBIPUEudmFsdWUubGFzdEluZGV4T2YoIlsiKSxjZT1BLnZhbHVlLnNsaWNlKDAsSCksQ2U9QS52YWx1ZS5zbGljZShIKzIpLHllPXIyW0NlXTtpZih5ZSl7QS52YWx1ZT1jZSt5ZSxfLmJhY2t0cmFjaz0hMCxFZSgpLCFzLm91dHB1dCYmYS5pbmRleE9mKEEpPT09MSYmKHMub3V0cHV0PWIpO2NvbnRpbnVlfX19KEM9PT0iWyImJlYoKSE9PSI6Inx8Qz09PSItIiYmVigpPT09Il0iKSYmKEM9YFxcJHtDfWApLEM9PT0iXSImJihBLnZhbHVlPT09IlsifHxBLnZhbHVlPT09IlteIikmJihDPWBcXCR7Q31gKSx0LnBvc2l4PT09ITAmJkM9PT0iISImJkEudmFsdWU9PT0iWyImJihDPSJeIiksQS52YWx1ZSs9QyxqaSh7dmFsdWU6Q30pO2NvbnRpbnVlfWlmKF8ucXVvdGVzPT09MSYmQyE9PSciJyl7Qz1NZS5lc2NhcGVSZWdleChDKSxBLnZhbHVlKz1DLGppKHt2YWx1ZTpDfSk7Y29udGludWV9aWYoQz09PSciJyl7Xy5xdW90ZXM9Xy5xdW90ZXM9PT0xPzA6MSx0LmtlZXBRdW90ZXM9PT0hMCYmVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iKCIpe3ppKCJwYXJlbnMiKSxXKHt0eXBlOiJwYXJlbiIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iKSIpe2lmKF8ucGFyZW5zPT09MCYmdC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigib3BlbmluZyIsIigiKSk7bGV0IEk9UVtRLmxlbmd0aC0xXTtpZihJJiZfLnBhcmVucz09PUkucGFyZW5zKzEpe0R2KFEucG9wKCkpO2NvbnRpbnVlfVcoe3R5cGU6InBhcmVuIix2YWx1ZTpDLG91dHB1dDpfLnBhcmVucz8iKSI6IlxcKSJ9KSxGdCgicGFyZW5zIik7Y29udGludWV9aWYoQz09PSJbIil7aWYodC5ub2JyYWNrZXQ9PT0hMHx8IUllKCkuaW5jbHVkZXMoIl0iKSl7aWYodC5ub2JyYWNrZXQhPT0hMCYmdC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigiY2xvc2luZyIsIl0iKSk7Qz1gXFwke0N9YH1lbHNlIHppKCJicmFja2V0cyIpO1coe3R5cGU6ImJyYWNrZXQiLHZhbHVlOkN9KTtjb250aW51ZX1pZihDPT09Il0iKXtpZih0Lm5vYnJhY2tldD09PSEwfHxBJiZBLnR5cGU9PT0iYnJhY2tldCImJkEudmFsdWUubGVuZ3RoPT09MSl7Vyh7dHlwZToidGV4dCIsdmFsdWU6QyxvdXRwdXQ6YFxcJHtDfWB9KTtjb250aW51ZX1pZihfLmJyYWNrZXRzPT09MCl7aWYodC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigib3BlbmluZyIsIlsiKSk7Vyh7dHlwZToidGV4dCIsdmFsdWU6QyxvdXRwdXQ6YFxcJHtDfWB9KTtjb250aW51ZX1GdCgiYnJhY2tldHMiKTtsZXQgST1BLnZhbHVlLnNsaWNlKDEpO2lmKEEucG9zaXghPT0hMCYmSVswXT09PSJeIiYmIUkuaW5jbHVkZXMoIi8iKSYmKEM9YC8ke0N9YCksQS52YWx1ZSs9QyxqaSh7dmFsdWU6Q30pLHQubGl0ZXJhbEJyYWNrZXRzPT09ITF8fE1lLmhhc1JlZ2V4Q2hhcnMoSSkpY29udGludWU7bGV0IEg9TWUuZXNjYXBlUmVnZXgoQS52YWx1ZSk7aWYoXy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtQS52YWx1ZS5sZW5ndGgpLHQubGl0ZXJhbEJyYWNrZXRzPT09ITApe18ub3V0cHV0Kz1ILEEudmFsdWU9SDtjb250aW51ZX1BLnZhbHVlPWAoJHtvfSR7SH18JHtBLnZhbHVlfSlgLF8ub3V0cHV0Kz1BLnZhbHVlO2NvbnRpbnVlfWlmKEM9PT0ieyImJnQubm9icmFjZSE9PSEwKXt6aSgiYnJhY2VzIik7bGV0IEk9e3R5cGU6ImJyYWNlIix2YWx1ZTpDLG91dHB1dDoiKCIsb3V0cHV0SW5kZXg6Xy5vdXRwdXQubGVuZ3RoLHRva2Vuc0luZGV4Ol8udG9rZW5zLmxlbmd0aH07VS5wdXNoKEkpLFcoSSk7Y29udGludWV9aWYoQz09PSJ9Iil7bGV0IEk9VVtVLmxlbmd0aC0xXTtpZih0Lm5vYnJhY2U9PT0hMHx8IUkpe1coe3R5cGU6InRleHQiLHZhbHVlOkMsb3V0cHV0OkN9KTtjb250aW51ZX1sZXQgSD0iKSI7aWYoSS5kb3RzPT09ITApe2xldCBjZT1hLnNsaWNlKCksQ2U9W107Zm9yKGxldCB5ZT1jZS5sZW5ndGgtMTt5ZT49MCYmKGEucG9wKCksY2VbeWVdLnR5cGUhPT0iYnJhY2UiKTt5ZS0tKWNlW3llXS50eXBlIT09ImRvdHMiJiZDZS51bnNoaWZ0KGNlW3llXS52YWx1ZSk7SD1zMihDZSx0KSxfLmJhY2t0cmFjaz0hMH1pZihJLmNvbW1hIT09ITAmJkkuZG90cyE9PSEwKXtsZXQgY2U9Xy5vdXRwdXQuc2xpY2UoMCxJLm91dHB1dEluZGV4KSxDZT1fLnRva2Vucy5zbGljZShJLnRva2Vuc0luZGV4KTtJLnZhbHVlPUkub3V0cHV0PSJcXHsiLEM9SD0iXFx9IixfLm91dHB1dD1jZTtmb3IobGV0IHllIG9mIENlKV8ub3V0cHV0Kz15ZS5vdXRwdXR8fHllLnZhbHVlfVcoe3R5cGU6ImJyYWNlIix2YWx1ZTpDLG91dHB1dDpIfSksRnQoImJyYWNlcyIpLFUucG9wKCk7Y29udGludWV9aWYoQz09PSJ8Iil7US5sZW5ndGg+MCYmUVtRLmxlbmd0aC0xXS5jb25kaXRpb25zKyssVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEM9PT0iLCIpe2xldCBJPUMsSD1VW1UubGVuZ3RoLTFdO0gmJmxlW2xlLmxlbmd0aC0xXT09PSJicmFjZXMiJiYoSC5jb21tYT0hMCxJPSJ8IiksVyh7dHlwZToiY29tbWEiLHZhbHVlOkMsb3V0cHV0Okl9KTtjb250aW51ZX1pZihDPT09Ii8iKXtpZihBLnR5cGU9PT0iZG90IiYmXy5pbmRleD09PV8uc3RhcnQrMSl7Xy5zdGFydD1fLmluZGV4KzEsXy5jb25zdW1lZD0iIixfLm91dHB1dD0iIixhLnBvcCgpLEE9cztjb250aW51ZX1XKHt0eXBlOiJzbGFzaCIsdmFsdWU6QyxvdXRwdXQ6aH0pO2NvbnRpbnVlfWlmKEM9PT0iLiIpe2lmKF8uYnJhY2VzPjAmJkEudHlwZT09PSJkb3QiKXtBLnZhbHVlPT09Ii4iJiYoQS5vdXRwdXQ9ZCk7bGV0IEk9VVtVLmxlbmd0aC0xXTtBLnR5cGU9ImRvdHMiLEEub3V0cHV0Kz1DLEEudmFsdWUrPUMsSS5kb3RzPSEwO2NvbnRpbnVlfWlmKF8uYnJhY2VzK18ucGFyZW5zPT09MCYmQS50eXBlIT09ImJvcyImJkEudHlwZSE9PSJzbGFzaCIpe1coe3R5cGU6InRleHQiLHZhbHVlOkMsb3V0cHV0OmR9KTtjb250aW51ZX1XKHt0eXBlOiJkb3QiLHZhbHVlOkMsb3V0cHV0OmR9KTtjb250aW51ZX1pZihDPT09Ij8iKXtpZighKEEmJkEudmFsdWU9PT0iKCIpJiZ0Lm5vZXh0Z2xvYiE9PSEwJiZWKCk9PT0iKCImJlYoMikhPT0iPyIpe1VpKCJxbWFyayIsQyk7Y29udGludWV9aWYoQSYmQS50eXBlPT09InBhcmVuIil7bGV0IEg9VigpLGNlPUM7aWYoSD09PSI8IiYmIU1lLnN1cHBvcnRzTG9va2JlaGluZHMoKSl0aHJvdyBuZXcgRXJyb3IoIk5vZGUuanMgdjEwIG9yIGhpZ2hlciBpcyByZXF1aXJlZCBmb3IgcmVnZXggbG9va2JlaGluZHMiKTsoQS52YWx1ZT09PSIoIiYmIS9bIT08Ol0vLnRlc3QoSCl8fEg9PT0iPCImJiEvPChbIT1dfFx3Kz4pLy50ZXN0KEllKCkpKSYmKGNlPWBcXCR7Q31gKSxXKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpDLG91dHB1dDpjZX0pO2NvbnRpbnVlfWlmKHQuZG90IT09ITAmJihBLnR5cGU9PT0ic2xhc2gifHxBLnR5cGU9PT0iYm9zIikpe1coe3R5cGU6InFtYXJrIix2YWx1ZTpDLG91dHB1dDpFfSk7Y29udGludWV9Vyh7dHlwZToicW1hcmsiLHZhbHVlOkMsb3V0cHV0OlN9KTtjb250aW51ZX1pZihDPT09IiEiKXtpZih0Lm5vZXh0Z2xvYiE9PSEwJiZWKCk9PT0iKCImJihWKDIpIT09Ij8ifHwhL1shPTw6XS8udGVzdChWKDMpKSkpe1VpKCJuZWdhdGUiLEMpO2NvbnRpbnVlfWlmKHQubm9uZWdhdGUhPT0hMCYmXy5pbmRleD09PTApe0l2KCk7Y29udGludWV9fWlmKEM9PT0iKyIpe2lmKHQubm9leHRnbG9iIT09ITAmJlYoKT09PSIoIiYmVigyKSE9PSI/Iil7VWkoInBsdXMiLEMpO2NvbnRpbnVlfWlmKEEmJkEudmFsdWU9PT0iKCJ8fHQucmVnZXg9PT0hMSl7Vyh7dHlwZToicGx1cyIsdmFsdWU6QyxvdXRwdXQ6cH0pO2NvbnRpbnVlfWlmKEEmJihBLnR5cGU9PT0iYnJhY2tldCJ8fEEudHlwZT09PSJwYXJlbiJ8fEEudHlwZT09PSJicmFjZSIpfHxfLnBhcmVucz4wKXtXKHt0eXBlOiJwbHVzIix2YWx1ZTpDfSk7Y29udGludWV9Vyh7dHlwZToicGx1cyIsdmFsdWU6cH0pO2NvbnRpbnVlfWlmKEM9PT0iQCIpe2lmKHQubm9leHRnbG9iIT09ITAmJlYoKT09PSIoIiYmVigyKSE9PSI/Iil7Vyh7dHlwZToiYXQiLGV4dGdsb2I6ITAsdmFsdWU6QyxvdXRwdXQ6IiJ9KTtjb250aW51ZX1XKHt0eXBlOiJ0ZXh0Iix2YWx1ZTpDfSk7Y29udGludWV9aWYoQyE9PSIqIil7KEM9PT0iJCJ8fEM9PT0iXiIpJiYoQz1gXFwke0N9YCk7bGV0IEk9aTIuZXhlYyhJZSgpKTtJJiYoQys9SVswXSxfLmluZGV4Kz1JWzBdLmxlbmd0aCksVyh7dHlwZToidGV4dCIsdmFsdWU6Q30pO2NvbnRpbnVlfWlmKEEmJihBLnR5cGU9PT0iZ2xvYnN0YXIifHxBLnN0YXI9PT0hMCkpe0EudHlwZT0ic3RhciIsQS5zdGFyPSEwLEEudmFsdWUrPUMsQS5vdXRwdXQ9WSxfLmJhY2t0cmFjaz0hMCxfLmdsb2JzdGFyPSEwLERlKEMpO2NvbnRpbnVlfWxldCAkPUllKCk7aWYodC5ub2V4dGdsb2IhPT0hMCYmL15cKFteP10vLnRlc3QoJCkpe1VpKCJzdGFyIixDKTtjb250aW51ZX1pZihBLnR5cGU9PT0ic3RhciIpe2lmKHQubm9nbG9ic3Rhcj09PSEwKXtEZShDKTtjb250aW51ZX1sZXQgST1BLnByZXYsSD1JLnByZXYsY2U9SS50eXBlPT09InNsYXNoInx8SS50eXBlPT09ImJvcyIsQ2U9SCYmKEgudHlwZT09PSJzdGFyInx8SC50eXBlPT09Imdsb2JzdGFyIik7aWYodC5iYXNoPT09ITAmJighY2V8fCRbMF0mJiRbMF0hPT0iLyIpKXtXKHt0eXBlOiJzdGFyIix2YWx1ZTpDLG91dHB1dDoiIn0pO2NvbnRpbnVlfWxldCB5ZT1fLmJyYWNlcz4wJiYoSS50eXBlPT09ImNvbW1hInx8SS50eXBlPT09ImJyYWNlIiksQnM9US5sZW5ndGgmJihJLnR5cGU9PT0icGlwZSJ8fEkudHlwZT09PSJwYXJlbiIpO2lmKCFjZSYmSS50eXBlIT09InBhcmVuIiYmIXllJiYhQnMpe1coe3R5cGU6InN0YXIiLHZhbHVlOkMsb3V0cHV0OiIifSk7Y29udGludWV9Zm9yKDskLnNsaWNlKDAsMyk9PT0iLyoqIjspe2xldCBWaT1yW18uaW5kZXgrNF07aWYoVmkmJlZpIT09Ii8iKWJyZWFrOyQ9JC5zbGljZSgzKSxEZSgiLyoqIiwzKX1pZihJLnR5cGU9PT0iYm9zIiYmaGUoKSl7QS50eXBlPSJnbG9ic3RhciIsQS52YWx1ZSs9QyxBLm91dHB1dD1OKHQpLF8ub3V0cHV0PUEub3V0cHV0LF8uZ2xvYnN0YXI9ITAsRGUoQyk7Y29udGludWV9aWYoSS50eXBlPT09InNsYXNoIiYmSS5wcmV2LnR5cGUhPT0iYm9zIiYmIUNlJiZoZSgpKXtfLm91dHB1dD1fLm91dHB1dC5zbGljZSgwLC0oSS5vdXRwdXQrQS5vdXRwdXQpLmxlbmd0aCksSS5vdXRwdXQ9YCg/OiR7SS5vdXRwdXR9YCxBLnR5cGU9Imdsb2JzdGFyIixBLm91dHB1dD1OKHQpKyh0LnN0cmljdFNsYXNoZXM/IikiOiJ8JCkiKSxBLnZhbHVlKz1DLF8uZ2xvYnN0YXI9ITAsXy5vdXRwdXQrPUkub3V0cHV0K0Eub3V0cHV0LERlKEMpO2NvbnRpbnVlfWlmKEkudHlwZT09PSJzbGFzaCImJkkucHJldi50eXBlIT09ImJvcyImJiRbMF09PT0iLyIpe2xldCBWaT0kWzFdIT09dm9pZCAwPyJ8JCI6IiI7Xy5vdXRwdXQ9Xy5vdXRwdXQuc2xpY2UoMCwtKEkub3V0cHV0K0Eub3V0cHV0KS5sZW5ndGgpLEkub3V0cHV0PWAoPzoke0kub3V0cHV0fWAsQS50eXBlPSJnbG9ic3RhciIsQS5vdXRwdXQ9YCR7Tih0KX0ke2h9fCR7aH0ke1ZpfSlgLEEudmFsdWUrPUMsXy5vdXRwdXQrPUkub3V0cHV0K0Eub3V0cHV0LF8uZ2xvYnN0YXI9ITAsRGUoQytFZSgpKSxXKHt0eXBlOiJzbGFzaCIsdmFsdWU6Ii8iLG91dHB1dDoiIn0pO2NvbnRpbnVlfWlmKEkudHlwZT09PSJib3MiJiYkWzBdPT09Ii8iKXtBLnR5cGU9Imdsb2JzdGFyIixBLnZhbHVlKz1DLEEub3V0cHV0PWAoPzpefCR7aH18JHtOKHQpfSR7aH0pYCxfLm91dHB1dD1BLm91dHB1dCxfLmdsb2JzdGFyPSEwLERlKEMrRWUoKSksVyh7dHlwZToic2xhc2giLHZhbHVlOiIvIixvdXRwdXQ6IiJ9KTtjb250aW51ZX1fLm91dHB1dD1fLm91dHB1dC5zbGljZSgwLC1BLm91dHB1dC5sZW5ndGgpLEEudHlwZT0iZ2xvYnN0YXIiLEEub3V0cHV0PU4odCksQS52YWx1ZSs9QyxfLm91dHB1dCs9QS5vdXRwdXQsXy5nbG9ic3Rhcj0hMCxEZShDKTtjb250aW51ZX1sZXQgYWU9e3R5cGU6InN0YXIiLHZhbHVlOkMsb3V0cHV0Oll9O2lmKHQuYmFzaD09PSEwKXthZS5vdXRwdXQ9Ii4qPyIsKEEudHlwZT09PSJib3MifHxBLnR5cGU9PT0ic2xhc2giKSYmKGFlLm91dHB1dD1SK2FlLm91dHB1dCksVyhhZSk7Y29udGludWV9aWYoQSYmKEEudHlwZT09PSJicmFja2V0Inx8QS50eXBlPT09InBhcmVuIikmJnQucmVnZXg9PT0hMCl7YWUub3V0cHV0PUMsVyhhZSk7Y29udGludWV9KF8uaW5kZXg9PT1fLnN0YXJ0fHxBLnR5cGU9PT0ic2xhc2gifHxBLnR5cGU9PT0iZG90IikmJihBLnR5cGU9PT0iZG90Ij8oXy5vdXRwdXQrPXcsQS5vdXRwdXQrPXcpOnQuZG90PT09ITA/KF8ub3V0cHV0Kz1rLEEub3V0cHV0Kz1rKTooXy5vdXRwdXQrPVIsQS5vdXRwdXQrPVIpLFYoKSE9PSIqIiYmKF8ub3V0cHV0Kz1iLEEub3V0cHV0Kz1iKSksVyhhZSl9Zm9yKDtfLmJyYWNrZXRzPjA7KXtpZih0LnN0cmljdEJyYWNrZXRzPT09ITApdGhyb3cgbmV3IFN5bnRheEVycm9yKGdyKCJjbG9zaW5nIiwiXSIpKTtfLm91dHB1dD1NZS5lc2NhcGVMYXN0KF8ub3V0cHV0LCJbIiksRnQoImJyYWNrZXRzIil9Zm9yKDtfLnBhcmVucz4wOyl7aWYodC5zdHJpY3RCcmFja2V0cz09PSEwKXRocm93IG5ldyBTeW50YXhFcnJvcihncigiY2xvc2luZyIsIikiKSk7Xy5vdXRwdXQ9TWUuZXNjYXBlTGFzdChfLm91dHB1dCwiKCIpLEZ0KCJwYXJlbnMiKX1mb3IoO18uYnJhY2VzPjA7KXtpZih0LnN0cmljdEJyYWNrZXRzPT09ITApdGhyb3cgbmV3IFN5bnRheEVycm9yKGdyKCJjbG9zaW5nIiwifSIpKTtfLm91dHB1dD1NZS5lc2NhcGVMYXN0KF8ub3V0cHV0LCJ7IiksRnQoImJyYWNlcyIpfWlmKHQuc3RyaWN0U2xhc2hlcyE9PSEwJiYoQS50eXBlPT09InN0YXIifHxBLnR5cGU9PT0iYnJhY2tldCIpJiZXKHt0eXBlOiJtYXliZV9zbGFzaCIsdmFsdWU6IiIsb3V0cHV0OmAke2h9P2B9KSxfLmJhY2t0cmFjaz09PSEwKXtfLm91dHB1dD0iIjtmb3IobGV0ICQgb2YgXy50b2tlbnMpXy5vdXRwdXQrPSQub3V0cHV0IT1udWxsPyQub3V0cHV0OiQudmFsdWUsJC5zdWZmaXgmJihfLm91dHB1dCs9JC5zdWZmaXgpfXJldHVybiBffTt4bC5mYXN0cGF0aHM9KHIsZSk9PntsZXQgdD17Li4uZX0saT10eXBlb2YgdC5tYXhMZW5ndGg9PSJudW1iZXIiP01hdGgubWluKHdzLHQubWF4TGVuZ3RoKTp3cyxuPXIubGVuZ3RoO2lmKG4+aSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke2l9YCk7cj10Z1tyXXx8cjtsZXQgcz1NZS5pc1dpbmRvd3MoZSkse0RPVF9MSVRFUkFMOmEsU0xBU0hfTElURVJBTDpvLE9ORV9DSEFSOmwsRE9UU19TTEFTSDpjLE5PX0RPVDpmLE5PX0RPVFM6ZCxOT19ET1RTX1NMQVNIOnAsU1RBUjpoLFNUQVJUX0FOQ0hPUjpifT1icy5nbG9iQ2hhcnMocyksdj10LmRvdD9kOmYseT10LmRvdD9wOmYsdz10LmNhcHR1cmU/IiI6Ij86IixrPXtuZWdhdGVkOiExLHByZWZpeDoiIn0sUz10LmJhc2g9PT0hMD8iLio/IjpoO3QuY2FwdHVyZSYmKFM9YCgke1N9KWApO2xldCBFPVI9PlIubm9nbG9ic3Rhcj09PSEwP1M6YCgke3d9KD86KD8hJHtifSR7Ui5kb3Q/YzphfSkuKSo/KWAsVD1SPT57c3dpdGNoKFIpe2Nhc2UiKiI6cmV0dXJuYCR7dn0ke2x9JHtTfWA7Y2FzZSIuKiI6cmV0dXJuYCR7YX0ke2x9JHtTfWA7Y2FzZSIqLioiOnJldHVybmAke3Z9JHtTfSR7YX0ke2x9JHtTfWA7Y2FzZSIqLyoiOnJldHVybmAke3Z9JHtTfSR7b30ke2x9JHt5fSR7U31gO2Nhc2UiKioiOnJldHVybiB2K0UodCk7Y2FzZSIqKi8qIjpyZXR1cm5gKD86JHt2fSR7RSh0KX0ke299KT8ke3l9JHtsfSR7U31gO2Nhc2UiKiovKi4qIjpyZXR1cm5gKD86JHt2fSR7RSh0KX0ke299KT8ke3l9JHtTfSR7YX0ke2x9JHtTfWA7Y2FzZSIqKi8uKiI6cmV0dXJuYCg/OiR7dn0ke0UodCl9JHtvfSk/JHthfSR7bH0ke1N9YDtkZWZhdWx0OntsZXQgRj0vXiguKj8pXC4oXHcrKSQvLmV4ZWMoUik7aWYoIUYpcmV0dXJuO2xldCBZPVQoRlsxXSk7cmV0dXJuIFk/WSthK0ZbMl06dm9pZCAwfX19LEI9TWUucmVtb3ZlUHJlZml4KHIsayksTj1UKEIpO3JldHVybiBOJiZ0LnN0cmljdFNsYXNoZXMhPT0hMCYmKE4rPWAke299P2ApLE59O3JnLmV4cG9ydHM9eGx9KTt2YXIgc2c9eCgoYzYsbmcpPT57dSgpOyJ1c2Ugc3RyaWN0Ijt2YXIgYTI9KGV0KCksVXIpLG8yPWVnKCksa2w9aWcoKSxTbD1xaSgpLGwyPURpKCksdTI9cj0+ciYmdHlwZW9mIHI9PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShyKSxkZT0ocixlLHQ9ITEpPT57aWYoQXJyYXkuaXNBcnJheShyKSl7bGV0IGY9ci5tYXAocD0+ZGUocCxlLHQpKTtyZXR1cm4gcD0+e2ZvcihsZXQgaCBvZiBmKXtsZXQgYj1oKHApO2lmKGIpcmV0dXJuIGJ9cmV0dXJuITF9fWxldCBpPXUyKHIpJiZyLnRva2VucyYmci5pbnB1dDtpZihyPT09IiJ8fHR5cGVvZiByIT0ic3RyaW5nIiYmIWkpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgcGF0dGVybiB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1lfHx7fSxzPVNsLmlzV2luZG93cyhlKSxhPWk/ZGUuY29tcGlsZVJlKHIsZSk6ZGUubWFrZVJlKHIsZSwhMSwhMCksbz1hLnN0YXRlO2RlbGV0ZSBhLnN0YXRlO2xldCBsPSgpPT4hMTtpZihuLmlnbm9yZSl7bGV0IGY9ey4uLmUsaWdub3JlOm51bGwsb25NYXRjaDpudWxsLG9uUmVzdWx0Om51bGx9O2w9ZGUobi5pZ25vcmUsZix0KX1sZXQgYz0oZixkPSExKT0+e2xldHtpc01hdGNoOnAsbWF0Y2g6aCxvdXRwdXQ6Yn09ZGUudGVzdChmLGEsZSx7Z2xvYjpyLHBvc2l4OnN9KSx2PXtnbG9iOnIsc3RhdGU6byxyZWdleDphLHBvc2l4OnMsaW5wdXQ6ZixvdXRwdXQ6YixtYXRjaDpoLGlzTWF0Y2g6cH07cmV0dXJuIHR5cGVvZiBuLm9uUmVzdWx0PT0iZnVuY3Rpb24iJiZuLm9uUmVzdWx0KHYpLHA9PT0hMT8odi5pc01hdGNoPSExLGQ/djohMSk6bChmKT8odHlwZW9mIG4ub25JZ25vcmU9PSJmdW5jdGlvbiImJm4ub25JZ25vcmUodiksdi5pc01hdGNoPSExLGQ/djohMSk6KHR5cGVvZiBuLm9uTWF0Y2g9PSJmdW5jdGlvbiImJm4ub25NYXRjaCh2KSxkP3Y6ITApfTtyZXR1cm4gdCYmKGMuc3RhdGU9byksY307ZGUudGVzdD0ocixlLHQse2dsb2I6aSxwb3NpeDpufT17fSk9PntpZih0eXBlb2YgciE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgaW5wdXQgdG8gYmUgYSBzdHJpbmciKTtpZihyPT09IiIpcmV0dXJue2lzTWF0Y2g6ITEsb3V0cHV0OiIifTtsZXQgcz10fHx7fSxhPXMuZm9ybWF0fHwobj9TbC50b1Bvc2l4U2xhc2hlczpudWxsKSxvPXI9PT1pLGw9byYmYT9hKHIpOnI7cmV0dXJuIG89PT0hMSYmKGw9YT9hKHIpOnIsbz1sPT09aSksKG89PT0hMXx8cy5jYXB0dXJlPT09ITApJiYocy5tYXRjaEJhc2U9PT0hMHx8cy5iYXNlbmFtZT09PSEwP289ZGUubWF0Y2hCYXNlKHIsZSx0LG4pOm89ZS5leGVjKGwpKSx7aXNNYXRjaDpCb29sZWFuKG8pLG1hdGNoOm8sb3V0cHV0Omx9fTtkZS5tYXRjaEJhc2U9KHIsZSx0LGk9U2wuaXNXaW5kb3dzKHQpKT0+KGUgaW5zdGFuY2VvZiBSZWdFeHA/ZTpkZS5tYWtlUmUoZSx0KSkudGVzdChhMi5iYXNlbmFtZShyKSk7ZGUuaXNNYXRjaD0ocixlLHQpPT5kZShlLHQpKHIpO2RlLnBhcnNlPShyLGUpPT5BcnJheS5pc0FycmF5KHIpP3IubWFwKHQ9PmRlLnBhcnNlKHQsZSkpOmtsKHIsey4uLmUsZmFzdHBhdGhzOiExfSk7ZGUuc2Nhbj0ocixlKT0+bzIocixlKTtkZS5jb21waWxlUmU9KHIsZSx0PSExLGk9ITEpPT57aWYodD09PSEwKXJldHVybiByLm91dHB1dDtsZXQgbj1lfHx7fSxzPW4uY29udGFpbnM/IiI6Il4iLGE9bi5jb250YWlucz8iIjoiJCIsbz1gJHtzfSg/OiR7ci5vdXRwdXR9KSR7YX1gO3ImJnIubmVnYXRlZD09PSEwJiYobz1gXig/ISR7b30pLiokYCk7bGV0IGw9ZGUudG9SZWdleChvLGUpO3JldHVybiBpPT09ITAmJihsLnN0YXRlPXIpLGx9O2RlLm1ha2VSZT0ocixlPXt9LHQ9ITEsaT0hMSk9PntpZighcnx8dHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPXtuZWdhdGVkOiExLGZhc3RwYXRoczohMH07cmV0dXJuIGUuZmFzdHBhdGhzIT09ITEmJihyWzBdPT09Ii4ifHxyWzBdPT09IioiKSYmKG4ub3V0cHV0PWtsLmZhc3RwYXRocyhyLGUpKSxuLm91dHB1dHx8KG49a2wocixlKSksZGUuY29tcGlsZVJlKG4sZSx0LGkpfTtkZS50b1JlZ2V4PShyLGUpPT57dHJ5e2xldCB0PWV8fHt9O3JldHVybiBuZXcgUmVnRXhwKHIsdC5mbGFnc3x8KHQubm9jYXNlPyJpIjoiIikpfWNhdGNoKHQpe2lmKGUmJmUuZGVidWc9PT0hMCl0aHJvdyB0O3JldHVybi8kXi99fTtkZS5jb25zdGFudHM9bDI7bmcuZXhwb3J0cz1kZX0pO3ZhciBvZz14KChwNixhZyk9Pnt1KCk7InVzZSBzdHJpY3QiO2FnLmV4cG9ydHM9c2coKX0pO3ZhciBkZz14KChkNixwZyk9Pnt1KCk7InVzZSBzdHJpY3QiO3ZhciBsZz0oRm4oKSxCbiksdWc9am0oKSxvdD1vZygpLEFsPXFpKCksZmc9cj0+cj09PSIifHxyPT09Ii4vIixjZz1yPT57bGV0IGU9ci5pbmRleE9mKCJ7Iik7cmV0dXJuIGU+LTEmJnIuaW5kZXhPZigifSIsZSk+LTF9LG9lPShyLGUsdCk9PntlPVtdLmNvbmNhdChlKSxyPVtdLmNvbmNhdChyKTtsZXQgaT1uZXcgU2V0LG49bmV3IFNldCxzPW5ldyBTZXQsYT0wLG89Zj0+e3MuYWRkKGYub3V0cHV0KSx0JiZ0Lm9uUmVzdWx0JiZ0Lm9uUmVzdWx0KGYpfTtmb3IobGV0IGY9MDtmPGUubGVuZ3RoO2YrKyl7bGV0IGQ9b3QoU3RyaW5nKGVbZl0pLHsuLi50LG9uUmVzdWx0Om99LCEwKSxwPWQuc3RhdGUubmVnYXRlZHx8ZC5zdGF0ZS5uZWdhdGVkRXh0Z2xvYjtwJiZhKys7Zm9yKGxldCBoIG9mIHIpe2xldCBiPWQoaCwhMCk7IShwPyFiLmlzTWF0Y2g6Yi5pc01hdGNoKXx8KHA/aS5hZGQoYi5vdXRwdXQpOihpLmRlbGV0ZShiLm91dHB1dCksbi5hZGQoYi5vdXRwdXQpKSl9fWxldCBjPShhPT09ZS5sZW5ndGg/Wy4uLnNdOlsuLi5uXSkuZmlsdGVyKGY9PiFpLmhhcyhmKSk7aWYodCYmYy5sZW5ndGg9PT0wKXtpZih0LmZhaWxnbG9iPT09ITApdGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGVzIGZvdW5kIGZvciAiJHtlLmpvaW4oIiwgIil9ImApO2lmKHQubm9udWxsPT09ITB8fHQubnVsbGdsb2I9PT0hMClyZXR1cm4gdC51bmVzY2FwZT9lLm1hcChmPT5mLnJlcGxhY2UoL1xcL2csIiIpKTplfXJldHVybiBjfTtvZS5tYXRjaD1vZTtvZS5tYXRjaGVyPShyLGUpPT5vdChyLGUpO29lLmlzTWF0Y2g9KHIsZSx0KT0+b3QoZSx0KShyKTtvZS5hbnk9b2UuaXNNYXRjaDtvZS5ub3Q9KHIsZSx0PXt9KT0+e2U9W10uY29uY2F0KGUpLm1hcChTdHJpbmcpO2xldCBpPW5ldyBTZXQsbj1bXSxzPW89Pnt0Lm9uUmVzdWx0JiZ0Lm9uUmVzdWx0KG8pLG4ucHVzaChvLm91dHB1dCl9LGE9bmV3IFNldChvZShyLGUsey4uLnQsb25SZXN1bHQ6c30pKTtmb3IobGV0IG8gb2YgbilhLmhhcyhvKXx8aS5hZGQobyk7cmV0dXJuWy4uLmldfTtvZS5jb250YWlucz0ocixlLHQpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgc3RyaW5nOiAiJHtsZy5pbnNwZWN0KHIpfSJgKTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLnNvbWUoaT0+b2UuY29udGFpbnMocixpLHQpKTtpZih0eXBlb2YgZT09InN0cmluZyIpe2lmKGZnKHIpfHxmZyhlKSlyZXR1cm4hMTtpZihyLmluY2x1ZGVzKGUpfHxyLnN0YXJ0c1dpdGgoIi4vIikmJnIuc2xpY2UoMikuaW5jbHVkZXMoZSkpcmV0dXJuITB9cmV0dXJuIG9lLmlzTWF0Y2gocixlLHsuLi50LGNvbnRhaW5zOiEwfSl9O29lLm1hdGNoS2V5cz0ocixlLHQpPT57aWYoIUFsLmlzT2JqZWN0KHIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHRoZSBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3QiKTtsZXQgaT1vZShPYmplY3Qua2V5cyhyKSxlLHQpLG49e307Zm9yKGxldCBzIG9mIGkpbltzXT1yW3NdO3JldHVybiBufTtvZS5zb21lPShyLGUsdCk9PntsZXQgaT1bXS5jb25jYXQocik7Zm9yKGxldCBuIG9mW10uY29uY2F0KGUpKXtsZXQgcz1vdChTdHJpbmcobiksdCk7aWYoaS5zb21lKGE9PnMoYSkpKXJldHVybiEwfXJldHVybiExfTtvZS5ldmVyeT0ocixlLHQpPT57bGV0IGk9W10uY29uY2F0KHIpO2ZvcihsZXQgbiBvZltdLmNvbmNhdChlKSl7bGV0IHM9b3QoU3RyaW5nKG4pLHQpO2lmKCFpLmV2ZXJ5KGE9PnMoYSkpKXJldHVybiExfXJldHVybiEwfTtvZS5hbGw9KHIsZSx0KT0+e2lmKHR5cGVvZiByIT0ic3RyaW5nIil0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIHN0cmluZzogIiR7bGcuaW5zcGVjdChyKX0iYCk7cmV0dXJuW10uY29uY2F0KGUpLmV2ZXJ5KGk9Pm90KGksdCkocikpfTtvZS5jYXB0dXJlPShyLGUsdCk9PntsZXQgaT1BbC5pc1dpbmRvd3ModCkscz1vdC5tYWtlUmUoU3RyaW5nKHIpLHsuLi50LGNhcHR1cmU6ITB9KS5leGVjKGk/QWwudG9Qb3NpeFNsYXNoZXMoZSk6ZSk7aWYocylyZXR1cm4gcy5zbGljZSgxKS5tYXAoYT0+YT09PXZvaWQgMD8iIjphKX07b2UubWFrZVJlPSguLi5yKT0+b3QubWFrZVJlKC4uLnIpO29lLnNjYW49KC4uLnIpPT5vdC5zY2FuKC4uLnIpO29lLnBhcnNlPShyLGUpPT57bGV0IHQ9W107Zm9yKGxldCBpIG9mW10uY29uY2F0KHJ8fFtdKSlmb3IobGV0IG4gb2YgdWcoU3RyaW5nKGkpLGUpKXQucHVzaChvdC5wYXJzZShuLGUpKTtyZXR1cm4gdH07b2UuYnJhY2VzPShyLGUpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIGUmJmUubm9icmFjZT09PSEwfHwhY2cocik/W3JdOnVnKHIsZSl9O29lLmJyYWNlRXhwYW5kPShyLGUpPT57aWYodHlwZW9mIHIhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7cmV0dXJuIG9lLmJyYWNlcyhyLHsuLi5lLGV4cGFuZDohMH0pfTtvZS5oYXNCcmFjZXM9Y2c7cGcuZXhwb3J0cz1vZX0pO2Z1bmN0aW9uIG1nKHIsZSl7bGV0IHQ9ZS5jb250ZW50LmZpbGVzO3Q9dC5maWx0ZXIobz0+dHlwZW9mIG89PSJzdHJpbmciKSx0PXQubWFwKGxsKTtsZXQgaT1wcy5nZW5lcmF0ZVRhc2tzKHQpLG49W10scz1bXTtmb3IobGV0IG8gb2YgaSluLnB1c2goLi4uby5wb3NpdGl2ZS5tYXAobD0+Z2cobCwhMSkpKSxzLnB1c2goLi4uby5uZWdhdGl2ZS5tYXAobD0+Z2cobCwhMCkpKTtsZXQgYT1bLi4ubiwuLi5zXTtyZXR1cm4gYT1jMihyLGEpLGE9YS5mbGF0TWFwKHAyKSxhPWEubWFwKGYyKSxhfWZ1bmN0aW9uIGdnKHIsZSl7bGV0IHQ9e29yaWdpbmFsOnIsYmFzZTpyLGlnbm9yZTplLHBhdHRlcm46cixnbG9iOm51bGx9O3JldHVybiBaaChyKSYmT2JqZWN0LmFzc2lnbih0LG5tKHIpKSx0fWZ1bmN0aW9uIGYyKHIpe2xldCBlPWxsKHIuYmFzZSk7cmV0dXJuIGU9cHMuZXNjYXBlUGF0aChlKSxyLnBhdHRlcm49ci5nbG9iP2Ake2V9LyR7ci5nbG9ifWA6ZSxyLnBhdHRlcm49ci5pZ25vcmU/YCEke3IucGF0dGVybn1gOnIucGF0dGVybixyfWZ1bmN0aW9uIGMyKHIsZSl7bGV0IHQ9W107cmV0dXJuIHIudXNlckNvbmZpZ1BhdGgmJnIudGFpbHdpbmRDb25maWcuY29udGVudC5yZWxhdGl2ZSYmKHQ9W21lLmRpcm5hbWUoci51c2VyQ29uZmlnUGF0aCldKSxlLm1hcChpPT4oaS5iYXNlPW1lLnJlc29sdmUoLi4udCxpLmJhc2UpLGkpKX1mdW5jdGlvbiBwMihyKXtsZXQgZT1bcl07dHJ5e2xldCB0PWJlLnJlYWxwYXRoU3luYyhyLmJhc2UpO3QhPT1yLmJhc2UmJmUucHVzaCh7Li4ucixiYXNlOnR9KX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24geWcocixlLHQpe2xldCBpPXIudGFpbHdpbmRDb25maWcuY29udGVudC5maWxlcy5maWx0ZXIoYT0+dHlwZW9mIGEucmF3PT0ic3RyaW5nIikubWFwKCh7cmF3OmEsZXh0ZW5zaW9uOm89Imh0bWwifSk9Pih7Y29udGVudDphLGV4dGVuc2lvbjpvfSkpLFtuLHNdPWgyKGUsdCk7Zm9yKGxldCBhIG9mIG4pe2xldCBvPW1lLmV4dG5hbWUoYSkuc2xpY2UoMSk7aS5wdXNoKHtmaWxlOmEsZXh0ZW5zaW9uOm99KX1yZXR1cm5baSxzXX1mdW5jdGlvbiBkMihyKXtpZighci5zb21lKHM9PnMuaW5jbHVkZXMoIioqIikmJiF3Zy50ZXN0KHMpKSlyZXR1cm4oKT0+e307bGV0IHQ9W10saT1bXTtmb3IobGV0IHMgb2Ygcil7bGV0IGE9aGcuZGVmYXVsdC5tYXRjaGVyKHMpO3dnLnRlc3QocykmJmkucHVzaChhKSx0LnB1c2goYSl9bGV0IG49ITE7cmV0dXJuIHM9PntpZihufHxpLnNvbWUoZj0+ZihzKSkpcmV0dXJuO2xldCBhPXQuZmluZEluZGV4KGY9PmYocykpO2lmKGE9PT0tMSlyZXR1cm47bGV0IG89clthXSxsPW1lLnJlbGF0aXZlKG0uY3dkKCksbyk7bFswXSE9PSIuIiYmKGw9YC4vJHtsfWApO2xldCBjPWJnLmZpbmQoZj0+cy5pbmNsdWRlcyhmKSk7YyYmKG49ITAsRy53YXJuKCJicm9hZC1jb250ZW50LWdsb2ItcGF0dGVybiIsW2BZb3VyIFxgY29udGVudFxgIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYSBwYXR0ZXJuIHdoaWNoIGxvb2tzIGxpa2UgaXQncyBhY2NpZGVudGFsbHkgbWF0Y2hpbmcgYWxsIG9mIFxgJHtjfVxgIGFuZCBjYW4gY2F1c2Ugc2VyaW91cyBwZXJmb3JtYW5jZSBpc3N1ZXMuYCxgUGF0dGVybjogXGAke2x9XGBgLCJTZWUgb3VyIGRvY3VtZW50YXRpb24gZm9yIHJlY29tbWVuZGF0aW9uczoiLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2NvbnRlbnQtY29uZmlndXJhdGlvbiNwYXR0ZXJuLXJlY29tbWVuZGF0aW9ucyJdKSl9fWZ1bmN0aW9uIGgyKHIsZSl7bGV0IHQ9ci5tYXAobz0+by5wYXR0ZXJuKSxpPW5ldyBNYXAsbj1kMih0KSxzPW5ldyBTZXQ7WmUuREVCVUcmJmNvbnNvbGUudGltZSgiRmluZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IGE9cHMuc3luYyh0LHthYnNvbHV0ZTohMH0pO2ZvcihsZXQgbyBvZiBhKXtuKG8pO2xldCBsPWUuZ2V0KG8pfHwtMS8wLGM9YmUuc3RhdFN5bmMobykubXRpbWVNcztjPmwmJihzLmFkZChvKSxpLnNldChvLGMpKX1yZXR1cm4gWmUuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiRmluZGluZyBjaGFuZ2VkIGZpbGVzIiksW3MsaV19dmFyIGhnLGJnLHdnLHZnPVAoKCk9Pnt1KCk7ZnQoKTtldCgpO0poKCk7ZW0oKTt0bSgpO3NtKCk7SXQoKTtCZSgpO2hnPXBlKGRnKCkpO2JnPVsibm9kZV9tb2R1bGVzIl0sd2c9bmV3IFJlZ0V4cChgKCR7YmcubWFwKHI9PlN0cmluZy5yYXdgXGIke3J9XGJgKS5qb2luKCJ8Iil9KWApfSk7ZnVuY3Rpb24geGcoKXt9dmFyIGtnPVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBiMihyLGUpe2ZvcihsZXQgdCBvZiBlKXtsZXQgaT1gJHtyfSR7dH1gO2lmKGJlLmV4aXN0c1N5bmMoaSkmJmJlLnN0YXRTeW5jKGkpLmlzRmlsZSgpKXJldHVybiBpfWZvcihsZXQgdCBvZiBlKXtsZXQgaT1gJHtyfS9pbmRleCR7dH1gO2lmKGJlLmV4aXN0c1N5bmMoaSkpcmV0dXJuIGl9cmV0dXJuIG51bGx9ZnVuY3Rpb24qU2cocixlLHQsaT1tZS5leHRuYW1lKHIpKXtsZXQgbj1iMihtZS5yZXNvbHZlKGUsciksbTIuaW5jbHVkZXMoaSk/ZzI6eTIpO2lmKG49PT1udWxsfHx0LmhhcyhuKSlyZXR1cm47dC5hZGQobikseWllbGQgbixlPW1lLmRpcm5hbWUobiksaT1tZS5leHRuYW1lKG4pO2xldCBzPWJlLnJlYWRGaWxlU3luYyhuLCJ1dGYtOCIpO2ZvcihsZXQgYSBvZlsuLi5zLm1hdGNoQWxsKC9pbXBvcnRbXHNcU10qP1snIl0oLnszLH0/KVsnIl0vZ2kpLC4uLnMubWF0Y2hBbGwoL2ltcG9ydFtcc1xTXSpmcm9tW1xzXFNdKj9bJyJdKC57Myx9PylbJyJdL2dpKSwuLi5zLm1hdGNoQWxsKC9yZXF1aXJlXChbJyJgXSguKylbJyJgXVwpL2dpKV0pIWFbMV0uc3RhcnRzV2l0aCgiLiIpfHwoeWllbGQqU2coYVsxXSxlLHQsaSkpfWZ1bmN0aW9uIENsKHIpe3JldHVybiByPT09bnVsbD9uZXcgU2V0Om5ldyBTZXQoU2cocixtZS5kaXJuYW1lKHIpLG5ldyBTZXQpKX12YXIgbTIsZzIseTIsQWc9UCgoKT0+e3UoKTtmdCgpO2V0KCk7bTI9WyIuanMiLCIuY2pzIiwiLm1qcyJdLGcyPVsiIiwiLmpzIiwiLmNqcyIsIi5tanMiLCIudHMiLCIuY3RzIiwiLm10cyIsIi5qc3giLCIudHN4Il0seTI9WyIiLCIudHMiLCIuY3RzIiwiLm10cyIsIi50c3giLCIuanMiLCIuY2pzIiwiLm1qcyIsIi5qc3giXX0pO2Z1bmN0aW9uIHcyKHIsZSl7aWYoX2wuaGFzKHIpKXJldHVybiBfbC5nZXQocik7bGV0IHQ9bWcocixlKTtyZXR1cm4gX2wuc2V0KHIsdCkuZ2V0KHIpfWZ1bmN0aW9uIHYyKHIpe2xldCBlPWFhKHIpO2lmKGUhPT1udWxsKXtsZXRbaSxuLHMsYV09X2cuZ2V0KGUpfHxbXSxvPUNsKGUpLGw9ITEsYz1uZXcgTWFwO2ZvcihsZXQgcCBvZiBvKXtsZXQgaD1iZS5zdGF0U3luYyhwKS5tdGltZU1zO2Muc2V0KHAsaCksKCFhfHwhYS5oYXMocCl8fGg+YS5nZXQocCkpJiYobD0hMCl9aWYoIWwpcmV0dXJuW2ksZSxuLHNdO2ZvcihsZXQgcCBvZiBvKWRlbGV0ZSBoZi5jYWNoZVtwXTtsZXQgZj1vbCh6cih4ZyhlKSkpLGQ9V2koZik7cmV0dXJuIF9nLnNldChlLFtmLGQsbyxjXSksW2YsZSxkLG9dfWxldCB0PXpyKHI/LmNvbmZpZz8/cj8/e30pO3JldHVybiB0PW9sKHQpLFt0LG51bGwsV2kodCksW11dfWZ1bmN0aW9uIEVsKHIpe3JldHVybih7dGFpbHdpbmREaXJlY3RpdmVzOmUscmVnaXN0ZXJEZXBlbmRlbmN5OnR9KT0+KGksbik9PntsZXRbcyxhLG8sbF09djIociksYz1uZXcgU2V0KGwpO2lmKGUuc2l6ZT4wKXtjLmFkZChuLm9wdHMuZnJvbSk7Zm9yKGxldCBiIG9mIG4ubWVzc2FnZXMpYi50eXBlPT09ImRlcGVuZGVuY3kiJiZjLmFkZChiLmZpbGUpfWxldFtmLCxkXT1WaChpLG4scyxhLG8sYykscD1jcyhmKSxoPXcyKGYscyk7aWYoZS5zaXplPjApe2ZvcihsZXQgeSBvZiBoKWZvcihsZXQgdyBvZiBubCh5KSl0KHcpO2xldFtiLHZdPXlnKGYsaCxwKTtmb3IobGV0IHkgb2YgYilmLmNoYW5nZWRDb250ZW50LnB1c2goeSk7Zm9yKGxldFt5LHddb2Ygdi5lbnRyaWVzKCkpZC5zZXQoeSx3KX1mb3IobGV0IGIgb2YgbCl0KHt0eXBlOiJkZXBlbmRlbmN5IixmaWxlOmJ9KTtmb3IobGV0W2Isdl1vZiBkLmVudHJpZXMoKSlwLnNldChiLHYpO3JldHVybiBmfX12YXIgQ2csX2csX2wsRWc9UCgoKT0+e3UoKTtmdCgpO0NnPXBlKEZzKCkpO3dmKCk7c2EoKTtvYygpO09pKCk7SGgoKTtYaCgpO3ZnKCk7a2coKTtBZygpO19nPW5ldyBDZy5kZWZhdWx0KHttYXhTaXplOjEwMH0pLF9sPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24gT2wocil7bGV0IGU9bmV3IFNldCx0PW5ldyBTZXQsaT1uZXcgU2V0O2lmKHIud2Fsa0F0UnVsZXMobj0+e24ubmFtZT09PSJhcHBseSImJmkuYWRkKG4pLG4ubmFtZT09PSJpbXBvcnQiJiYobi5wYXJhbXM9PT0nInRhaWx3aW5kY3NzL2Jhc2UiJ3x8bi5wYXJhbXM9PT0iJ3RhaWx3aW5kY3NzL2Jhc2UnIj8obi5uYW1lPSJ0YWlsd2luZCIsbi5wYXJhbXM9ImJhc2UiKTpuLnBhcmFtcz09PScidGFpbHdpbmRjc3MvY29tcG9uZW50cyInfHxuLnBhcmFtcz09PSIndGFpbHdpbmRjc3MvY29tcG9uZW50cyciPyhuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0iY29tcG9uZW50cyIpOm4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy91dGlsaXRpZXMiJ3x8bi5wYXJhbXM9PT0iJ3RhaWx3aW5kY3NzL3V0aWxpdGllcyciPyhuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0idXRpbGl0aWVzIik6KG4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy9zY3JlZW5zIid8fG4ucGFyYW1zPT09Iid0YWlsd2luZGNzcy9zY3JlZW5zJyJ8fG4ucGFyYW1zPT09JyJ0YWlsd2luZGNzcy92YXJpYW50cyInfHxuLnBhcmFtcz09PSIndGFpbHdpbmRjc3MvdmFyaWFudHMnIikmJihuLm5hbWU9InRhaWx3aW5kIixuLnBhcmFtcz0idmFyaWFudHMiKSksbi5uYW1lPT09InRhaWx3aW5kIiYmKG4ucGFyYW1zPT09InNjcmVlbnMiJiYobi5wYXJhbXM9InZhcmlhbnRzIiksZS5hZGQobi5wYXJhbXMpKSxbImxheWVyIiwicmVzcG9uc2l2ZSIsInZhcmlhbnRzIl0uaW5jbHVkZXMobi5uYW1lKSYmKFsicmVzcG9uc2l2ZSIsInZhcmlhbnRzIl0uaW5jbHVkZXMobi5uYW1lKSYmRy53YXJuKGAke24ubmFtZX0tYXQtcnVsZS1kZXByZWNhdGVkYCxbYFRoZSBcYEAke24ubmFtZX1cYCBkaXJlY3RpdmUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBUYWlsd2luZCBDU1MgdjMuMC5gLCJVc2UgYEBsYXllciB1dGlsaXRpZXNgIG9yIGBAbGF5ZXIgY29tcG9uZW50c2AgaW5zdGVhZC4iLCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjcmVwbGFjZS12YXJpYW50cy13aXRoLWxheWVyIl0pLHQuYWRkKG4pKX0pLCFlLmhhcygiYmFzZSIpfHwhZS5oYXMoImNvbXBvbmVudHMiKXx8IWUuaGFzKCJ1dGlsaXRpZXMiKSl7Zm9yKGxldCBuIG9mIHQpaWYobi5uYW1lPT09ImxheWVyIiYmWyJiYXNlIiwiY29tcG9uZW50cyIsInV0aWxpdGllcyJdLmluY2x1ZGVzKG4ucGFyYW1zKSl7aWYoIWUuaGFzKG4ucGFyYW1zKSl0aHJvdyBuLmVycm9yKGBcYEBsYXllciAke24ucGFyYW1zfVxgIGlzIHVzZWQgYnV0IG5vIG1hdGNoaW5nIFxgQHRhaWx3aW5kICR7bi5wYXJhbXN9XGAgZGlyZWN0aXZlIGlzIHByZXNlbnQuYCl9ZWxzZSBpZihuLm5hbWU9PT0icmVzcG9uc2l2ZSIpe2lmKCFlLmhhcygidXRpbGl0aWVzIikpdGhyb3cgbi5lcnJvcigiYEByZXNwb25zaXZlYCBpcyB1c2VkIGJ1dCBgQHRhaWx3aW5kIHV0aWxpdGllc2AgaXMgbWlzc2luZy4iKX1lbHNlIGlmKG4ubmFtZT09PSJ2YXJpYW50cyImJiFlLmhhcygidXRpbGl0aWVzIikpdGhyb3cgbi5lcnJvcigiYEB2YXJpYW50c2AgaXMgdXNlZCBidXQgYEB0YWlsd2luZCB1dGlsaXRpZXNgIGlzIG1pc3NpbmcuIil9cmV0dXJue3RhaWx3aW5kRGlyZWN0aXZlczplLGFwcGx5RGlyZWN0aXZlczppfX12YXIgT2c9UCgoKT0+e3UoKTtCZSgpfSk7ZnVuY3Rpb24gUXQocixlPXZvaWQgMCx0PXZvaWQgMCl7cmV0dXJuIHIubWFwKGk9PntsZXQgbj1pLmNsb25lKCk7cmV0dXJuIHQhPT12b2lkIDAmJihuLnJhd3MudGFpbHdpbmQ9ey4uLm4ucmF3cy50YWlsd2luZCwuLi50fSksZSE9PXZvaWQgMCYmVGcobixzPT57aWYocy5yYXdzLnRhaWx3aW5kPy5wcmVzZXJ2ZVNvdXJjZT09PSEwJiZzLnNvdXJjZSlyZXR1cm4hMTtzLnNvdXJjZT1lfSksbn0pfWZ1bmN0aW9uIFRnKHIsZSl7ZShyKSE9PSExJiZyLmVhY2g/Lih0PT5UZyh0LGUpKX12YXIgUmc9UCgoKT0+e3UoKX0pO2Z1bmN0aW9uIFRsKHIpe3JldHVybiByPUFycmF5LmlzQXJyYXkocik/cjpbcl0scj1yLm1hcChlPT5lIGluc3RhbmNlb2YgUmVnRXhwP2Uuc291cmNlOmUpLHIuam9pbigiIil9ZnVuY3Rpb24gTmUocil7cmV0dXJuIG5ldyBSZWdFeHAoVGwociksImciKX1mdW5jdGlvbiBxdChyKXtyZXR1cm5gKD86JHtyLm1hcChUbCkuam9pbigifCIpfSlgfWZ1bmN0aW9uIFJsKHIpe3JldHVybmAoPzoke1RsKHIpfSk/YH1mdW5jdGlvbiBJZyhyKXtyZXR1cm4gciYmeDIudGVzdChyKT9yLnJlcGxhY2UoUGcsIlxcJCYiKTpyfHwiIn12YXIgUGcseDIsRGc9UCgoKT0+e3UoKTtQZz0vW1xcXiQuKis/KClbXF17fXxdL2cseDI9UmVnRXhwKFBnLnNvdXJjZSl9KTtmdW5jdGlvbiBxZyhyKXtsZXQgZT1BcnJheS5mcm9tKGsyKHIpKTtyZXR1cm4gdD0+e2xldCBpPVtdO2ZvcihsZXQgbiBvZiBlKWZvcihsZXQgcyBvZiB0Lm1hdGNoKG4pPz9bXSlpLnB1c2goQzIocykpO2ZvcihsZXQgbiBvZiBpLnNsaWNlKCkpe2xldCBzPXZlKG4sIi4iKTtmb3IobGV0IGE9MDthPHMubGVuZ3RoO2ErKyl7bGV0IG89c1thXTtpZihhPj1zLmxlbmd0aC0xKXtpLnB1c2gobyk7Y29udGludWV9bGV0IGw9TnVtYmVyKHNbYSsxXSk7aXNOYU4obCk/aS5wdXNoKG8pOmErK319cmV0dXJuIGl9fWZ1bmN0aW9uKmsyKHIpe2xldCBlPXIudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yLHQ9ci50YWlsd2luZENvbmZpZy5wcmVmaXghPT0iIj9SbChOZShbLy0/LyxJZyhyLnRhaWx3aW5kQ29uZmlnLnByZWZpeCldKSk6IiIsaT1xdChbL1xbW15cczonImBdKzpbXlxzXFtcXV0rXF0vLC9cW1teXHM6JyJgXF1dKzpbXlxzXSs/XFtbXlxzXStcXVteXHNdKz9cXS8sTmUoW3F0KFsvLT8oPzpcdyspLywvQCg/Olx3KykvXSksUmwocXQoW05lKFtxdChbLy0oPzpcdystKSpcWydbXlxzXSsnXF0vLC8tKD86XHcrLSkqXFsiW15cc10rIlxdLywvLSg/Olx3Ky0pKlxbYFteXHNdK2BcXS8sLy0oPzpcdystKSpcWyg/OlteXHNcW1xdXStcW1teXHNcW1xdXStcXSkqW15cczpcW1xdXStcXS9dKSwvKD8hW3soW11dKS8sLyg/OlwvW15ccyciYFxcPjwkXSopPy9dKSxOZShbcXQoWy8tKD86XHcrLSkqXFsnW15cc10rJ1xdLywvLSg/Olx3Ky0pKlxbIlteXHNdKyJcXS8sLy0oPzpcdystKSpcW2BbXlxzXStgXF0vLC8tKD86XHcrLSkqXFsoPzpbXlxzXFtcXV0rXFtbXlxzXFtcXV0rXF0pKlteXHNcW1xdXStcXS9dKSwvKD8hW3soW11dKS8sLyg/OlwvW15ccyciYFxcJF0qKT8vXSksL1stXC9dW15ccyciYFxcJD17PjxdKi9dKSldKV0pLG49W3F0KFtOZShbL0BcW1teXHMiJ2BdK1xdKFwvW15ccyInYF0rKT8vLGVdKSxOZShbLyhbXlxzIidgXFtcXF0rLSk/XFtbXlxzIidgXStcXVwvW1x3Xy1dKy8sZV0pLE5lKFsvKFteXHMiJ2BcW1xcXSstKT9cW1teXHMiJ2BdK1xdLyxlXSksTmUoWy9bXlxzIidgXFtcXF0rLyxlXSldKSxxdChbTmUoWy8oW15ccyInYFxbXFxdKy0pP1xbW15cc2BdK1xdXC9bXHdfLV0rLyxlXSksTmUoWy8oW15ccyInYFxbXFxdKy0pP1xbW15cc2BdK1xdLyxlXSksTmUoWy9bXlxzYFxbXFxdKy8sZV0pXSldO2ZvcihsZXQgcyBvZiBuKXlpZWxkIE5lKFsiKCg/PSgoIixzLCIpKykpXFwyKT8iLC8hPy8sdCxpXSk7eWllbGQvW148PiInYFxzLigpe31bXF0jPSUkXVtePD4iJ2Bccygpe31bXF0jPSUkXSpbXjw+IidgXHMuKCl7fVtcXSM9JTokXS9nfWZ1bmN0aW9uIEMyKHIpe2lmKCFyLmluY2x1ZGVzKCItWyIpKXJldHVybiByO2xldCBlPTAsdD1bXSxpPXIubWF0Y2hBbGwoUzIpO2k9QXJyYXkuZnJvbShpKS5mbGF0TWFwKG49PntsZXRbLC4uLnNdPW47cmV0dXJuIHMubWFwKChhLG8pPT5PYmplY3QuYXNzaWduKFtdLG4se2luZGV4Om4uaW5kZXgrbywwOmF9KSl9KTtmb3IobGV0IG4gb2YgaSl7bGV0IHM9blswXSxhPXRbdC5sZW5ndGgtMV07aWYocz09PWE/dC5wb3AoKToocz09PSInInx8cz09PSciJ3x8cz09PSJgIikmJnQucHVzaChzKSwhYSl7aWYocz09PSJbIil7ZSsrO2NvbnRpbnVlfWVsc2UgaWYocz09PSJdIil7ZS0tO2NvbnRpbnVlfWlmKGU8MClyZXR1cm4gci5zdWJzdHJpbmcoMCxuLmluZGV4LTEpO2lmKGU9PT0wJiYhQTIudGVzdChzKSlyZXR1cm4gci5zdWJzdHJpbmcoMCxuLmluZGV4KX19cmV0dXJuIHJ9dmFyIFMyLEEyLCRnPVAoKCk9Pnt1KCk7RGcoKTt6dCgpO1MyPS8oW1xbXF0nImBdKShbXlxbXF0nImBdKT8vZyxBMj0vW14iJ2Bcczw+XF1dKy99KTtmdW5jdGlvbiBfMihyLGUpe2xldCB0PXIudGFpbHdpbmRDb25maWcuY29udGVudC5leHRyYWN0O3JldHVybiB0W2VdfHx0LkRFRkFVTFR8fE1nW2VdfHxNZy5ERUZBVUxUKHIpfWZ1bmN0aW9uIEUyKHIsZSl7bGV0IHQ9ci5jb250ZW50LnRyYW5zZm9ybTtyZXR1cm4gdFtlXXx8dC5ERUZBVUxUfHxOZ1tlXXx8TmcuREVGQVVMVH1mdW5jdGlvbiBPMihyLGUsdCxpKXtMaS5oYXMoZSl8fExpLnNldChlLG5ldyBMZy5kZWZhdWx0KHttYXhTaXplOjI1ZTN9KSk7Zm9yKGxldCBuIG9mIHIuc3BsaXQoYApgKSlpZihuPW4udHJpbSgpLCFpLmhhcyhuKSlpZihpLmFkZChuKSxMaS5nZXQoZSkuaGFzKG4pKWZvcihsZXQgcyBvZiBMaS5nZXQoZSkuZ2V0KG4pKXQuYWRkKHMpO2Vsc2V7bGV0IHM9ZShuKS5maWx0ZXIobz0+byE9PSIhKiIpLGE9bmV3IFNldChzKTtmb3IobGV0IG8gb2YgYSl0LmFkZChvKTtMaS5nZXQoZSkuc2V0KG4sYSl9fWZ1bmN0aW9uIFQyKHIsZSl7bGV0IHQ9ZS5vZmZzZXRzLnNvcnQociksaT17YmFzZTpuZXcgU2V0LGRlZmF1bHRzOm5ldyBTZXQsY29tcG9uZW50czpuZXcgU2V0LHV0aWxpdGllczpuZXcgU2V0LHZhcmlhbnRzOm5ldyBTZXR9O2ZvcihsZXRbbixzXW9mIHQpaVtuLmxheWVyXS5hZGQocyk7cmV0dXJuIGl9ZnVuY3Rpb24gUGwocil7cmV0dXJuIGFzeW5jIGU9PntsZXQgdD17YmFzZTpudWxsLGNvbXBvbmVudHM6bnVsbCx1dGlsaXRpZXM6bnVsbCx2YXJpYW50czpudWxsfTtpZihlLndhbGtBdFJ1bGVzKHk9Pnt5Lm5hbWU9PT0idGFpbHdpbmQiJiZPYmplY3Qua2V5cyh0KS5pbmNsdWRlcyh5LnBhcmFtcykmJih0W3kucGFyYW1zXT15KX0pLE9iamVjdC52YWx1ZXModCkuZXZlcnkoeT0+eT09PW51bGwpKXJldHVybiBlO2xldCBpPW5ldyBTZXQoWy4uLnIuY2FuZGlkYXRlcz8/W10sZ3RdKSxuPW5ldyBTZXQ7YnQuREVCVUcmJmNvbnNvbGUudGltZSgiUmVhZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IHM9W107Zm9yKGxldCB5IG9mIHIuY2hhbmdlZENvbnRlbnQpe2xldCB3PUUyKHIudGFpbHdpbmRDb25maWcseS5leHRlbnNpb24pLGs9XzIocix5LmV4dGVuc2lvbik7cy5wdXNoKFt5LHt0cmFuc2Zvcm1lcjp3LGV4dHJhY3RvcjprfV0pfWxldCBhPTUwMDtmb3IobGV0IHk9MDt5PHMubGVuZ3RoO3krPWEpe2xldCB3PXMuc2xpY2UoeSx5K2EpO2F3YWl0IFByb21pc2UuYWxsKHcubWFwKGFzeW5jKFt7ZmlsZTprLGNvbnRlbnQ6U30se3RyYW5zZm9ybWVyOkUsZXh0cmFjdG9yOlR9XSk9PntTPWs/YXdhaXQgYmUucHJvbWlzZXMucmVhZEZpbGUoaywidXRmOCIpOlMsTzIoRShTKSxULGksbil9KSl9YnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiUmVhZGluZyBjaGFuZ2VkIGZpbGVzIik7bGV0IG89ci5jbGFzc0NhY2hlLnNpemU7YnQuREVCVUcmJmNvbnNvbGUudGltZSgiR2VuZXJhdGUgcnVsZXMiKSxidC5ERUJVRyYmY29uc29sZS50aW1lKCJTb3J0aW5nIGNhbmRpZGF0ZXMiKTtsZXQgbD1uZXcgU2V0KFsuLi5pXS5zb3J0KCh5LHcpPT55PT09dz8wOnk8dz8tMToxKSk7YnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiU29ydGluZyBjYW5kaWRhdGVzIiksYXMobCxyKSxidC5ERUJVRyYmY29uc29sZS50aW1lRW5kKCJHZW5lcmF0ZSBydWxlcyIpLGJ0LkRFQlVHJiZjb25zb2xlLnRpbWUoIkJ1aWxkIHN0eWxlc2hlZXQiKSwoci5zdHlsZXNoZWV0Q2FjaGU9PT1udWxsfHxyLmNsYXNzQ2FjaGUuc2l6ZSE9PW8pJiYoci5zdHlsZXNoZWV0Q2FjaGU9VDIoWy4uLnIucnVsZUNhY2hlXSxyKSksYnQuREVCVUcmJmNvbnNvbGUudGltZUVuZCgiQnVpbGQgc3R5bGVzaGVldCIpO2xldHtkZWZhdWx0czpjLGJhc2U6Zixjb21wb25lbnRzOmQsdXRpbGl0aWVzOnAsdmFyaWFudHM6aH09ci5zdHlsZXNoZWV0Q2FjaGU7dC5iYXNlJiYodC5iYXNlLmJlZm9yZShRdChbLi4uYywuLi5mXSx0LmJhc2Uuc291cmNlLHtsYXllcjoiYmFzZSJ9KSksdC5iYXNlLnJlbW92ZSgpKSx0LmNvbXBvbmVudHMmJih0LmNvbXBvbmVudHMuYmVmb3JlKFF0KFsuLi5kXSx0LmNvbXBvbmVudHMuc291cmNlLHtsYXllcjoiY29tcG9uZW50cyJ9KSksdC5jb21wb25lbnRzLnJlbW92ZSgpKSx0LnV0aWxpdGllcyYmKHQudXRpbGl0aWVzLmJlZm9yZShRdChbLi4ucF0sdC51dGlsaXRpZXMuc291cmNlLHtsYXllcjoidXRpbGl0aWVzIn0pKSx0LnV0aWxpdGllcy5yZW1vdmUoKSk7bGV0IGI9QXJyYXkuZnJvbShoKS5maWx0ZXIoeT0+e2xldCB3PXkucmF3cy50YWlsd2luZD8ucGFyZW50TGF5ZXI7cmV0dXJuIHc9PT0iY29tcG9uZW50cyI/dC5jb21wb25lbnRzIT09bnVsbDp3PT09InV0aWxpdGllcyI/dC51dGlsaXRpZXMhPT1udWxsOiEwfSk7dC52YXJpYW50cz8odC52YXJpYW50cy5iZWZvcmUoUXQoYix0LnZhcmlhbnRzLnNvdXJjZSx7bGF5ZXI6InZhcmlhbnRzIn0pKSx0LnZhcmlhbnRzLnJlbW92ZSgpKTpiLmxlbmd0aD4wJiZlLmFwcGVuZChRdChiLGUuc291cmNlLHtsYXllcjoidmFyaWFudHMifSkpLGUuc291cmNlLmVuZD1lLnNvdXJjZS5lbmQ/P2Uuc291cmNlLnN0YXJ0O2xldCB2PWIuc29tZSh5PT55LnJhd3MudGFpbHdpbmQ/LnBhcmVudExheWVyPT09InV0aWxpdGllcyIpO3QudXRpbGl0aWVzJiZwLnNpemU9PT0wJiYhdiYmRy53YXJuKCJjb250ZW50LXByb2JsZW1zIixbIk5vIHV0aWxpdHkgY2xhc3NlcyB3ZXJlIGRldGVjdGVkIGluIHlvdXIgc291cmNlIGZpbGVzLiBJZiB0aGlzIGlzIHVuZXhwZWN0ZWQsIGRvdWJsZS1jaGVjayB0aGUgYGNvbnRlbnRgIG9wdGlvbiBpbiB5b3VyIFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uLiIsImh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvY29udGVudC1jb25maWd1cmF0aW9uIl0pLGJ0LkRFQlVHJiYoY29uc29sZS5sb2coIlBvdGVudGlhbCBjbGFzc2VzOiAiLGkuc2l6ZSksY29uc29sZS5sb2coIkFjdGl2ZSBjb250ZXh0czogIixlcy5zaXplKSksci5jaGFuZ2VkQ29udGVudD1bXSxlLndhbGtBdFJ1bGVzKCJsYXllciIseT0+e09iamVjdC5rZXlzKHQpLmluY2x1ZGVzKHkucGFyYW1zKSYmeS5yZW1vdmUoKX0pfX12YXIgTGcsYnQsTWcsTmcsTGksQmc9UCgoKT0+e3UoKTtmdCgpO0xnPXBlKEZzKCkpO0l0KCk7b3MoKTtCZSgpO1JnKCk7JGcoKTtidD1aZSxNZz17REVGQVVMVDpxZ30sTmc9e0RFRkFVTFQ6cj0+cixzdmVsdGU6cj0+ci5yZXBsYWNlKC8oPzpefFxzKWNsYXNzOi9nLCIgIil9O0xpPW5ldyBXZWFrTWFwfSk7ZnVuY3Rpb24geHMocil7bGV0IGU9bmV3IE1hcDtlZS5yb290KHtub2Rlczpbci5jbG9uZSgpXX0pLndhbGtSdWxlcyhzPT57KDAsdnMuZGVmYXVsdCkoYT0+e2Eud2Fsa0NsYXNzZXMobz0+e2xldCBsPW8ucGFyZW50LnRvU3RyaW5nKCksYz1lLmdldChsKTtjfHxlLnNldChsLGM9bmV3IFNldCksYy5hZGQoby52YWx1ZSl9KX0pLnByb2Nlc3NTeW5jKHMuc2VsZWN0b3IpfSk7bGV0IGk9QXJyYXkuZnJvbShlLnZhbHVlcygpLHM9PkFycmF5LmZyb20ocykpLG49aS5mbGF0KCk7cmV0dXJuIE9iamVjdC5hc3NpZ24obix7Z3JvdXBzOml9KX1mdW5jdGlvbiBJbChyKXtyZXR1cm4gUjIuYXN0U3luYyhyKX1mdW5jdGlvbiBGZyhyLGUpe2xldCB0PW5ldyBTZXQ7Zm9yKGxldCBpIG9mIHIpdC5hZGQoaS5zcGxpdChlKS5wb3AoKSk7cmV0dXJuIEFycmF5LmZyb20odCl9ZnVuY3Rpb24gamcocixlKXtsZXQgdD1yLnRhaWx3aW5kQ29uZmlnLnByZWZpeDtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0K2V9ZnVuY3Rpb24qemcocil7Zm9yKHlpZWxkIHI7ci5wYXJlbnQ7KXlpZWxkIHIucGFyZW50LHI9ci5wYXJlbnR9ZnVuY3Rpb24gUDIocixlPXt9KXtsZXQgdD1yLm5vZGVzO3Iubm9kZXM9W107bGV0IGk9ci5jbG9uZShlKTtyZXR1cm4gci5ub2Rlcz10LGl9ZnVuY3Rpb24gSTIocil7Zm9yKGxldCBlIG9mIHpnKHIpKWlmKHIhPT1lKXtpZihlLnR5cGU9PT0icm9vdCIpYnJlYWs7cj1QMihlLHtub2Rlczpbcl19KX1yZXR1cm4gcn1mdW5jdGlvbiBEMihyLGUpe2xldCB0PW5ldyBNYXA7cmV0dXJuIHIud2Fsa1J1bGVzKGk9Pntmb3IobGV0IGEgb2YgemcoaSkpaWYoYS5yYXdzLnRhaWx3aW5kPy5sYXllciE9PXZvaWQgMClyZXR1cm47bGV0IG49STIoaSkscz1lLm9mZnNldHMuY3JlYXRlKCJ1c2VyIik7Zm9yKGxldCBhIG9mIHhzKGkpKXtsZXQgbz10LmdldChhKXx8W107dC5zZXQoYSxvKSxvLnB1c2goW3tsYXllcjoidXNlciIsc29ydDpzLGltcG9ydGFudDohMX0sbl0pfX0pLHR9ZnVuY3Rpb24gcTIocixlKXtmb3IobGV0IHQgb2Ygcil7aWYoZS5ub3RDbGFzc0NhY2hlLmhhcyh0KXx8ZS5hcHBseUNsYXNzQ2FjaGUuaGFzKHQpKWNvbnRpbnVlO2lmKGUuY2xhc3NDYWNoZS5oYXModCkpe2UuYXBwbHlDbGFzc0NhY2hlLnNldCh0LGUuY2xhc3NDYWNoZS5nZXQodCkubWFwKChbbixzXSk9PltuLHMuY2xvbmUoKV0pKTtjb250aW51ZX1sZXQgaT1BcnJheS5mcm9tKFlvKHQsZSkpO2lmKGkubGVuZ3RoPT09MCl7ZS5ub3RDbGFzc0NhY2hlLmFkZCh0KTtjb250aW51ZX1lLmFwcGx5Q2xhc3NDYWNoZS5zZXQodCxpKX1yZXR1cm4gZS5hcHBseUNsYXNzQ2FjaGV9ZnVuY3Rpb24gJDIocil7bGV0IGU9bnVsbDtyZXR1cm57Z2V0OnQ9PihlPWV8fHIoKSxlLmdldCh0KSksaGFzOnQ9PihlPWV8fHIoKSxlLmhhcyh0KSl9fWZ1bmN0aW9uIEwyKHIpe3JldHVybntnZXQ6ZT0+ci5mbGF0TWFwKHQ9PnQuZ2V0KGUpfHxbXSksaGFzOmU9PnIuc29tZSh0PT50LmhhcyhlKSl9fWZ1bmN0aW9uIFVnKHIpe2xldCBlPXIuc3BsaXQoL1tcc1x0XG5dKy9nKTtyZXR1cm4gZVtlLmxlbmd0aC0xXT09PSIhaW1wb3J0YW50Ij9bZS5zbGljZSgwLC0xKSwhMF06W2UsITFdfWZ1bmN0aW9uIFZnKHIsZSx0KXtsZXQgaT1uZXcgU2V0LG49W107aWYoci53YWxrQXRSdWxlcygiYXBwbHkiLGw9PntsZXRbY109VWcobC5wYXJhbXMpO2ZvcihsZXQgZiBvZiBjKWkuYWRkKGYpO24ucHVzaChsKX0pLG4ubGVuZ3RoPT09MClyZXR1cm47bGV0IHM9TDIoW3QscTIoaSxlKV0pO2Z1bmN0aW9uIGEobCxjLGYpe2xldCBkPUlsKGwpLHA9SWwoYyksYj1JbChgLiR7VGUoZil9YCkubm9kZXNbMF0ubm9kZXNbMF07cmV0dXJuIGQuZWFjaCh2PT57bGV0IHk9bmV3IFNldDtwLmVhY2godz0+e2xldCBrPSExO3c9dy5jbG9uZSgpLHcud2Fsa0NsYXNzZXMoUz0+e1MudmFsdWU9PT1iLnZhbHVlJiYoa3x8KFMucmVwbGFjZVdpdGgoLi4udi5ub2Rlcy5tYXAoRT0+RS5jbG9uZSgpKSkseS5hZGQodyksaz0hMCkpfSl9KTtmb3IobGV0IHcgb2YgeSl7bGV0IGs9W1tdXTtmb3IobGV0IFMgb2Ygdy5ub2RlcylTLnR5cGU9PT0iY29tYmluYXRvciI/KGsucHVzaChTKSxrLnB1c2goW10pKTprW2subGVuZ3RoLTFdLnB1c2goUyk7dy5ub2Rlcz1bXTtmb3IobGV0IFMgb2YgaylBcnJheS5pc0FycmF5KFMpJiZTLnNvcnQoKEUsVCk9PkUudHlwZT09PSJ0YWciJiZULnR5cGU9PT0iY2xhc3MiPy0xOkUudHlwZT09PSJjbGFzcyImJlQudHlwZT09PSJ0YWciPzE6RS50eXBlPT09ImNsYXNzIiYmVC50eXBlPT09InBzZXVkbyImJlQudmFsdWUuc3RhcnRzV2l0aCgiOjoiKT8tMTpFLnR5cGU9PT0icHNldWRvIiYmRS52YWx1ZS5zdGFydHNXaXRoKCI6OiIpJiZULnR5cGU9PT0iY2xhc3MiPzE6MCksdy5ub2Rlcz13Lm5vZGVzLmNvbmNhdChTKX12LnJlcGxhY2VXaXRoKC4uLnkpfSksZC50b1N0cmluZygpfWxldCBvPW5ldyBNYXA7Zm9yKGxldCBsIG9mIG4pe2xldFtjXT1vLmdldChsLnBhcmVudCl8fFtbXSxsLnNvdXJjZV07by5zZXQobC5wYXJlbnQsW2MsbC5zb3VyY2VdKTtsZXRbZixkXT1VZyhsLnBhcmFtcyk7aWYobC5wYXJlbnQudHlwZT09PSJhdHJ1bGUiKXtpZihsLnBhcmVudC5uYW1lPT09InNjcmVlbiIpe2xldCBwPWwucGFyZW50LnBhcmFtczt0aHJvdyBsLmVycm9yKGBAYXBwbHkgaXMgbm90IHN1cHBvcnRlZCB3aXRoaW4gbmVzdGVkIGF0LXJ1bGVzIGxpa2UgQHNjcmVlbi4gV2Ugc3VnZ2VzdCB5b3Ugd3JpdGUgdGhpcyBhcyBAYXBwbHkgJHtmLm1hcChoPT5gJHtwfToke2h9YCkuam9pbigiICIpfSBpbnN0ZWFkLmApfXRocm93IGwuZXJyb3IoYEBhcHBseSBpcyBub3Qgc3VwcG9ydGVkIHdpdGhpbiBuZXN0ZWQgYXQtcnVsZXMgbGlrZSBAJHtsLnBhcmVudC5uYW1lfS4gWW91IGNhbiBmaXggdGhpcyBieSB1bi1uZXN0aW5nIEAke2wucGFyZW50Lm5hbWV9LmApfWZvcihsZXQgcCBvZiBmKXtpZihbamcoZSwiZ3JvdXAiKSxqZyhlLCJwZWVyIildLmluY2x1ZGVzKHApKXRocm93IGwuZXJyb3IoYEBhcHBseSBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgJyR7cH0nIHV0aWxpdHlgKTtpZighcy5oYXMocCkpdGhyb3cgbC5lcnJvcihgVGhlIFxgJHtwfVxgIGNsYXNzIGRvZXMgbm90IGV4aXN0LiBJZiBcYCR7cH1cYCBpcyBhIGN1c3RvbSBjbGFzcywgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQgd2l0aGluIGEgXGBAbGF5ZXJcYCBkaXJlY3RpdmUuYCk7bGV0IGg9cy5nZXQocCk7Zm9yKGxldFssYl1vZiBoKWIudHlwZSE9PSJhdHJ1bGUiJiZiLndhbGtSdWxlcygoKT0+e3Rocm93IGwuZXJyb3IoW2BUaGUgXGAke3B9XGAgY2xhc3MgY2Fubm90IGJlIHVzZWQgd2l0aCBcYEBhcHBseVxgIGJlY2F1c2UgXGBAYXBwbHlcYCBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBuZXN0ZWQgQ1NTLmAsIlJld3JpdGUgdGhlIHNlbGVjdG9yIHdpdGhvdXQgbmVzdGluZyBvciBjb25maWd1cmUgdGhlIGB0YWlsd2luZGNzcy9uZXN0aW5nYCBwbHVnaW46IiwiaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy91c2luZy13aXRoLXByZXByb2Nlc3NvcnMjbmVzdGluZyJdLmpvaW4oYApgKSl9KTtjLnB1c2goW3AsZCxoXSl9fWZvcihsZXRbbCxbYyxmXV1vZiBvKXtsZXQgZD1bXTtmb3IobGV0W2gsYix2XW9mIGMpe2xldCB5PVtoLC4uLkZnKFtoXSxlLnRhaWx3aW5kQ29uZmlnLnNlcGFyYXRvcildO2ZvcihsZXRbdyxrXW9mIHYpe2xldCBTPXhzKGwpLEU9eHMoayk7aWYoRT1FLmdyb3Vwcy5maWx0ZXIoUj0+Ui5zb21lKEY9PnkuaW5jbHVkZXMoRikpKS5mbGF0KCksRT1FLmNvbmNhdChGZyhFLGUudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yKSksUy5zb21lKFI9PkUuaW5jbHVkZXMoUikpKXRocm93IGsuZXJyb3IoYFlvdSBjYW5ub3QgXGBAYXBwbHlcYCB0aGUgXGAke2h9XGAgdXRpbGl0eSBoZXJlIGJlY2F1c2UgaXQgY3JlYXRlcyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuYCk7bGV0IEI9ZWUucm9vdCh7bm9kZXM6W2suY2xvbmUoKV19KTtCLndhbGsoUj0+e1Iuc291cmNlPWZ9KSwoay50eXBlIT09ImF0cnVsZSJ8fGsudHlwZT09PSJhdHJ1bGUiJiZrLm5hbWUhPT0ia2V5ZnJhbWVzIikmJkIud2Fsa1J1bGVzKFI9PntpZigheHMoUikuc29tZShVPT5VPT09aCkpe1IucmVtb3ZlKCk7cmV0dXJufWxldCBGPXR5cGVvZiBlLnRhaWx3aW5kQ29uZmlnLmltcG9ydGFudD09InN0cmluZyI/ZS50YWlsd2luZENvbmZpZy5pbXBvcnRhbnQ6bnVsbCxfPWwucmF3cy50YWlsd2luZCE9PXZvaWQgMCYmRiYmbC5zZWxlY3Rvci5pbmRleE9mKEYpPT09MD9sLnNlbGVjdG9yLnNsaWNlKEYubGVuZ3RoKTpsLnNlbGVjdG9yO189PT0iIiYmKF89bC5zZWxlY3RvciksUi5zZWxlY3Rvcj1hKF8sUi5zZWxlY3RvcixoKSxGJiZfIT09bC5zZWxlY3RvciYmKFIuc2VsZWN0b3I9aXMoUi5zZWxlY3RvcixGKSksUi53YWxrRGVjbHMoVT0+e1UuaW1wb3J0YW50PXcuaW1wb3J0YW50fHxifSk7bGV0IFE9KDAsdnMuZGVmYXVsdCkoKS5hc3RTeW5jKFIuc2VsZWN0b3IpO1EuZWFjaChVPT5wcihVKSksUi5zZWxlY3Rvcj1RLnRvU3RyaW5nKCl9KSwhIUIubm9kZXNbMF0mJmQucHVzaChbdy5zb3J0LEIubm9kZXNbMF1dKX19bGV0IHA9ZS5vZmZzZXRzLnNvcnQoZCkubWFwKGg9PmhbMV0pO2wuYWZ0ZXIocCl9Zm9yKGxldCBsIG9mIG4pbC5wYXJlbnQubm9kZXMubGVuZ3RoPjE/bC5yZW1vdmUoKTpsLnBhcmVudC5yZW1vdmUoKTtWZyhyLGUsdCl9ZnVuY3Rpb24gRGwocil7cmV0dXJuIGU9PntsZXQgdD0kMigoKT0+RDIoZSxyKSk7VmcoZSxyLHQpfX12YXIgdnMsUjIsSGc9UCgoKT0+e3UoKTtPdCgpO3ZzPXBlKGl0KCkpO29zKCk7ZnIoKTtXbygpO3RzKCk7UjI9KDAsdnMuZGVmYXVsdCkoKX0pO3ZhciBXZz14KChucSxrcyk9Pnt1KCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoaSxuLHMpe2lmKCFpKXJldHVybiBudWxsO3IuY2FzZVNlbnNpdGl2ZXx8KGk9aS50b0xvd2VyQ2FzZSgpKTt2YXIgYT1yLnRocmVzaG9sZD09PW51bGw/bnVsbDpyLnRocmVzaG9sZCppLmxlbmd0aCxvPXIudGhyZXNob2xkQWJzb2x1dGUsbDthIT09bnVsbCYmbyE9PW51bGw/bD1NYXRoLm1pbihhLG8pOmEhPT1udWxsP2w9YTpvIT09bnVsbD9sPW86bD1udWxsO3ZhciBjLGYsZCxwLGgsYj1uLmxlbmd0aDtmb3IoaD0wO2g8YjtoKyspaWYoZj1uW2hdLHMmJihmPWZbc10pLCEhZiYmKHIuY2FzZVNlbnNpdGl2ZT9kPWY6ZD1mLnRvTG93ZXJDYXNlKCkscD10KGksZCxsKSwobD09PW51bGx8fHA8bCkmJihsPXAscyYmci5yZXR1cm5XaW5uaW5nT2JqZWN0P2M9bltoXTpjPWYsci5yZXR1cm5GaXJzdE1hdGNoKSkpcmV0dXJuIGM7cmV0dXJuIGN8fHIubnVsbFJlc3VsdFZhbHVlfXIudGhyZXNob2xkPS40LHIudGhyZXNob2xkQWJzb2x1dGU9MjAsci5jYXNlU2Vuc2l0aXZlPSExLHIubnVsbFJlc3VsdFZhbHVlPW51bGwsci5yZXR1cm5XaW5uaW5nT2JqZWN0PW51bGwsci5yZXR1cm5GaXJzdE1hdGNoPSExLHR5cGVvZiBrcyE9InVuZGVmaW5lZCImJmtzLmV4cG9ydHM/a3MuZXhwb3J0cz1yOndpbmRvdy5kaWRZb3VNZWFuPXI7dmFyIGU9TWF0aC5wb3coMiwzMiktMTtmdW5jdGlvbiB0KGksbixzKXtzPXN8fHM9PT0wP3M6ZTt2YXIgYT1pLmxlbmd0aCxvPW4ubGVuZ3RoO2lmKGE9PT0wKXJldHVybiBNYXRoLm1pbihzKzEsbyk7aWYobz09PTApcmV0dXJuIE1hdGgubWluKHMrMSxhKTtpZihNYXRoLmFicyhhLW8pPnMpcmV0dXJuIHMrMTt2YXIgbD1bXSxjLGYsZCxwLGg7Zm9yKGM9MDtjPD1vO2MrKylsW2NdPVtjXTtmb3IoZj0wO2Y8PWE7ZisrKWxbMF1bZl09Zjtmb3IoYz0xO2M8PW87YysrKXtmb3IoZD1lLHA9MSxjPnMmJihwPWMtcyksaD1vKzEsaD5zK2MmJihoPXMrYyksZj0xO2Y8PWE7ZisrKWY8cHx8Zj5oP2xbY11bZl09cysxOm4uY2hhckF0KGMtMSk9PT1pLmNoYXJBdChmLTEpP2xbY11bZl09bFtjLTFdW2YtMV06bFtjXVtmXT1NYXRoLm1pbihsW2MtMV1bZi0xXSsxLE1hdGgubWluKGxbY11bZi0xXSsxLGxbYy0xXVtmXSsxKSksbFtjXVtmXTxkJiYoZD1sW2NdW2ZdKTtpZihkPnMpcmV0dXJuIHMrMX1yZXR1cm4gbFtvXVthXX19KSgpfSk7dmFyIFFnPXgoKHNxLEdnKT0+e3UoKTt2YXIgcWw9IigiLmNoYXJDb2RlQXQoMCksJGw9IikiLmNoYXJDb2RlQXQoMCksU3M9IiciLmNoYXJDb2RlQXQoMCksTGw9JyInLmNoYXJDb2RlQXQoMCksTWw9IlxcIi5jaGFyQ29kZUF0KDApLHlyPSIvIi5jaGFyQ29kZUF0KDApLE5sPSIsIi5jaGFyQ29kZUF0KDApLEJsPSI6Ii5jaGFyQ29kZUF0KDApLEFzPSIqIi5jaGFyQ29kZUF0KDApLE0yPSJ1Ii5jaGFyQ29kZUF0KDApLE4yPSJVIi5jaGFyQ29kZUF0KDApLEIyPSIrIi5jaGFyQ29kZUF0KDApLEYyPS9eW2EtZjAtOT8tXSskL2k7R2cuZXhwb3J0cz1mdW5jdGlvbihyKXtmb3IodmFyIGU9W10sdD1yLGksbixzLGEsbyxsLGMsZixkPTAscD10LmNoYXJDb2RlQXQoZCksaD10Lmxlbmd0aCxiPVt7bm9kZXM6ZX1dLHY9MCx5LHc9IiIsaz0iIixTPSIiO2Q8aDspaWYocDw9MzIpe2k9ZDtkbyBpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKHA8PTMyKTthPXQuc2xpY2UoZCxpKSxzPWVbZS5sZW5ndGgtMV0scD09PSRsJiZ2P1M9YTpzJiZzLnR5cGU9PT0iZGl2Ij8ocy5hZnRlcj1hLHMuc291cmNlRW5kSW5kZXgrPWEubGVuZ3RoKTpwPT09Tmx8fHA9PT1CbHx8cD09PXlyJiZ0LmNoYXJDb2RlQXQoaSsxKSE9PUFzJiYoIXl8fHkmJnkudHlwZT09PSJmdW5jdGlvbiImJiExKT9rPWE6ZS5wdXNoKHt0eXBlOiJzcGFjZSIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppLHZhbHVlOmF9KSxkPWl9ZWxzZSBpZihwPT09U3N8fHA9PT1MbCl7aT1kLG49cD09PVNzPyInIjonIicsYT17dHlwZToic3RyaW5nIixzb3VyY2VJbmRleDpkLHF1b3RlOm59O2RvIGlmKG89ITEsaT10LmluZGV4T2YobixpKzEpLH5pKWZvcihsPWk7dC5jaGFyQ29kZUF0KGwtMSk9PT1NbDspbC09MSxvPSFvO2Vsc2UgdCs9bixpPXQubGVuZ3RoLTEsYS51bmNsb3NlZD0hMDt3aGlsZShvKTthLnZhbHVlPXQuc2xpY2UoZCsxLGkpLGEuc291cmNlRW5kSW5kZXg9YS51bmNsb3NlZD9pOmkrMSxlLnB1c2goYSksZD1pKzEscD10LmNoYXJDb2RlQXQoZCl9ZWxzZSBpZihwPT09eXImJnQuY2hhckNvZGVBdChkKzEpPT09QXMpaT10LmluZGV4T2YoIiovIixkKSxhPXt0eXBlOiJjb21tZW50Iixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmkrMn0saT09PS0xJiYoYS51bmNsb3NlZD0hMCxpPXQubGVuZ3RoLGEuc291cmNlRW5kSW5kZXg9aSksYS52YWx1ZT10LnNsaWNlKGQrMixpKSxlLnB1c2goYSksZD1pKzIscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZigocD09PXlyfHxwPT09QXMpJiZ5JiZ5LnR5cGU9PT0iZnVuY3Rpb24iKWE9dFtkXSxlLnB1c2goe3R5cGU6IndvcmQiLHNvdXJjZUluZGV4OmQtay5sZW5ndGgsc291cmNlRW5kSW5kZXg6ZCthLmxlbmd0aCx2YWx1ZTphfSksZCs9MSxwPXQuY2hhckNvZGVBdChkKTtlbHNlIGlmKHA9PT15cnx8cD09PU5sfHxwPT09QmwpYT10W2RdLGUucHVzaCh7dHlwZToiZGl2Iixzb3VyY2VJbmRleDpkLWsubGVuZ3RoLHNvdXJjZUVuZEluZGV4OmQrYS5sZW5ndGgsdmFsdWU6YSxiZWZvcmU6ayxhZnRlcjoiIn0pLGs9IiIsZCs9MSxwPXQuY2hhckNvZGVBdChkKTtlbHNlIGlmKHFsPT09cCl7aT1kO2RvIGkrPTEscD10LmNoYXJDb2RlQXQoaSk7d2hpbGUocDw9MzIpO2lmKGY9ZCxhPXt0eXBlOiJmdW5jdGlvbiIsc291cmNlSW5kZXg6ZC13Lmxlbmd0aCx2YWx1ZTp3LGJlZm9yZTp0LnNsaWNlKGYrMSxpKX0sZD1pLHc9PT0idXJsIiYmcCE9PVNzJiZwIT09TGwpe2ktPTE7ZG8gaWYobz0hMSxpPXQuaW5kZXhPZigiKSIsaSsxKSx+aSlmb3IobD1pO3QuY2hhckNvZGVBdChsLTEpPT09TWw7KWwtPTEsbz0hbztlbHNlIHQrPSIpIixpPXQubGVuZ3RoLTEsYS51bmNsb3NlZD0hMDt3aGlsZShvKTtjPWk7ZG8gYy09MSxwPXQuY2hhckNvZGVBdChjKTt3aGlsZShwPD0zMik7ZjxjPyhkIT09YysxP2Eubm9kZXM9W3t0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmMrMSx2YWx1ZTp0LnNsaWNlKGQsYysxKX1dOmEubm9kZXM9W10sYS51bmNsb3NlZCYmYysxIT09aT8oYS5hZnRlcj0iIixhLm5vZGVzLnB1c2goe3R5cGU6InNwYWNlIixzb3VyY2VJbmRleDpjKzEsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTp0LnNsaWNlKGMrMSxpKX0pKTooYS5hZnRlcj10LnNsaWNlKGMrMSxpKSxhLnNvdXJjZUVuZEluZGV4PWkpKTooYS5hZnRlcj0iIixhLm5vZGVzPVtdKSxkPWkrMSxhLnNvdXJjZUVuZEluZGV4PWEudW5jbG9zZWQ/aTpkLHA9dC5jaGFyQ29kZUF0KGQpLGUucHVzaChhKX1lbHNlIHYrPTEsYS5hZnRlcj0iIixhLnNvdXJjZUVuZEluZGV4PWQrMSxlLnB1c2goYSksYi5wdXNoKGEpLGU9YS5ub2Rlcz1bXSx5PWE7dz0iIn1lbHNlIGlmKCRsPT09cCYmdilkKz0xLHA9dC5jaGFyQ29kZUF0KGQpLHkuYWZ0ZXI9Uyx5LnNvdXJjZUVuZEluZGV4Kz1TLmxlbmd0aCxTPSIiLHYtPTEsYltiLmxlbmd0aC0xXS5zb3VyY2VFbmRJbmRleD1kLGIucG9wKCkseT1iW3ZdLGU9eS5ub2RlcztlbHNle2k9ZDtkbyBwPT09TWwmJihpKz0xKSxpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKGk8aCYmIShwPD0zMnx8cD09PVNzfHxwPT09TGx8fHA9PT1ObHx8cD09PUJsfHxwPT09eXJ8fHA9PT1xbHx8cD09PUFzJiZ5JiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiYhMHx8cD09PXlyJiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiYhMHx8cD09PSRsJiZ2KSk7YT10LnNsaWNlKGQsaSkscWw9PT1wP3c9YTooTTI9PT1hLmNoYXJDb2RlQXQoMCl8fE4yPT09YS5jaGFyQ29kZUF0KDApKSYmQjI9PT1hLmNoYXJDb2RlQXQoMSkmJkYyLnRlc3QoYS5zbGljZSgyKSk/ZS5wdXNoKHt0eXBlOiJ1bmljb2RlLXJhbmdlIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6YX0pOmUucHVzaCh7dHlwZToid29yZCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppLHZhbHVlOmF9KSxkPWl9Zm9yKGQ9Yi5sZW5ndGgtMTtkO2QtPTEpYltkXS51bmNsb3NlZD0hMCxiW2RdLnNvdXJjZUVuZEluZGV4PXQubGVuZ3RoO3JldHVybiBiWzBdLm5vZGVzfX0pO3ZhciBLZz14KChhcSxZZyk9Pnt1KCk7WWcuZXhwb3J0cz1mdW5jdGlvbiByKGUsdCxpKXt2YXIgbixzLGEsbztmb3Iobj0wLHM9ZS5sZW5ndGg7bjxzO24rPTEpYT1lW25dLGl8fChvPXQoYSxuLGUpKSxvIT09ITEmJmEudHlwZT09PSJmdW5jdGlvbiImJkFycmF5LmlzQXJyYXkoYS5ub2RlcykmJnIoYS5ub2Rlcyx0LGkpLGkmJnQoYSxuLGUpfX0pO3ZhciBleT14KChvcSxKZyk9Pnt1KCk7ZnVuY3Rpb24gWGcocixlKXt2YXIgdD1yLnR5cGUsaT1yLnZhbHVlLG4scztyZXR1cm4gZSYmKHM9ZShyKSkhPT12b2lkIDA/czp0PT09IndvcmQifHx0PT09InNwYWNlIj9pOnQ9PT0ic3RyaW5nIj8obj1yLnF1b3RlfHwiIixuK2krKHIudW5jbG9zZWQ/IiI6bikpOnQ9PT0iY29tbWVudCI/Ii8qIitpKyhyLnVuY2xvc2VkPyIiOiIqLyIpOnQ9PT0iZGl2Ij8oci5iZWZvcmV8fCIiKStpKyhyLmFmdGVyfHwiIik6QXJyYXkuaXNBcnJheShyLm5vZGVzKT8obj1aZyhyLm5vZGVzLGUpLHQhPT0iZnVuY3Rpb24iP246aSsiKCIrKHIuYmVmb3JlfHwiIikrbisoci5hZnRlcnx8IiIpKyhyLnVuY2xvc2VkPyIiOiIpIikpOml9ZnVuY3Rpb24gWmcocixlKXt2YXIgdCxpO2lmKEFycmF5LmlzQXJyYXkocikpe2Zvcih0PSIiLGk9ci5sZW5ndGgtMTt+aTtpLT0xKXQ9WGcocltpXSxlKSt0O3JldHVybiB0fXJldHVybiBYZyhyLGUpfUpnLmV4cG9ydHM9Wmd9KTt2YXIgcnk9eCgobHEsdHkpPT57dSgpO3ZhciBDcz0iLSIuY2hhckNvZGVBdCgwKSxfcz0iKyIuY2hhckNvZGVBdCgwKSxGbD0iLiIuY2hhckNvZGVBdCgwKSxqMj0iZSIuY2hhckNvZGVBdCgwKSx6Mj0iRSIuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBVMihyKXt2YXIgZT1yLmNoYXJDb2RlQXQoMCksdDtpZihlPT09X3N8fGU9PT1Dcyl7aWYodD1yLmNoYXJDb2RlQXQoMSksdD49NDgmJnQ8PTU3KXJldHVybiEwO3ZhciBpPXIuY2hhckNvZGVBdCgyKTtyZXR1cm4gdD09PUZsJiZpPj00OCYmaTw9NTd9cmV0dXJuIGU9PT1GbD8odD1yLmNoYXJDb2RlQXQoMSksdD49NDgmJnQ8PTU3KTplPj00OCYmZTw9NTd9dHkuZXhwb3J0cz1mdW5jdGlvbihyKXt2YXIgZT0wLHQ9ci5sZW5ndGgsaSxuLHM7aWYodD09PTB8fCFVMihyKSlyZXR1cm4hMTtmb3IoaT1yLmNoYXJDb2RlQXQoZSksKGk9PT1fc3x8aT09PUNzKSYmZSsrO2U8dCYmKGk9ci5jaGFyQ29kZUF0KGUpLCEoaTw0OHx8aT41NykpOyllKz0xO2lmKGk9ci5jaGFyQ29kZUF0KGUpLG49ci5jaGFyQ29kZUF0KGUrMSksaT09PUZsJiZuPj00OCYmbjw9NTcpZm9yKGUrPTI7ZTx0JiYoaT1yLmNoYXJDb2RlQXQoZSksIShpPDQ4fHxpPjU3KSk7KWUrPTE7aWYoaT1yLmNoYXJDb2RlQXQoZSksbj1yLmNoYXJDb2RlQXQoZSsxKSxzPXIuY2hhckNvZGVBdChlKzIpLChpPT09ajJ8fGk9PT16MikmJihuPj00OCYmbjw9NTd8fChuPT09X3N8fG49PT1DcykmJnM+PTQ4JiZzPD01NykpZm9yKGUrPW49PT1fc3x8bj09PUNzPzM6MjtlPHQmJihpPXIuY2hhckNvZGVBdChlKSwhKGk8NDh8fGk+NTcpKTspZSs9MTtyZXR1cm57bnVtYmVyOnIuc2xpY2UoMCxlKSx1bml0OnIuc2xpY2UoZSl9fX0pO3ZhciBheT14KCh1cSxzeSk9Pnt1KCk7dmFyIFYyPVFnKCksaXk9S2coKSxueT1leSgpO2Z1bmN0aW9uICR0KHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgJHQ/KHRoaXMubm9kZXM9VjIociksdGhpcyk6bmV3ICR0KHIpfSR0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiBBcnJheS5pc0FycmF5KHRoaXMubm9kZXMpP255KHRoaXMubm9kZXMpOiIifTskdC5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihyLGUpe3JldHVybiBpeSh0aGlzLm5vZGVzLHIsZSksdGhpc307JHQudW5pdD1yeSgpOyR0LndhbGs9aXk7JHQuc3RyaW5naWZ5PW55O3N5LmV4cG9ydHM9JHR9KTtmdW5jdGlvbiB6bChyKXtyZXR1cm4gdHlwZW9mIHI9PSJvYmplY3QiJiZyIT09bnVsbH1mdW5jdGlvbiBIMihyLGUpe2xldCB0PWt0KGUpO2RvIGlmKHQucG9wKCksKDAsTWkuZGVmYXVsdCkocix0KSE9PXZvaWQgMClicmVhazt3aGlsZSh0Lmxlbmd0aCk7cmV0dXJuIHQubGVuZ3RoP3Q6dm9pZCAwfWZ1bmN0aW9uIGJyKHIpe3JldHVybiB0eXBlb2Ygcj09InN0cmluZyI/cjpyLnJlZHVjZSgoZSx0LGkpPT50LmluY2x1ZGVzKCIuIik/YCR7ZX1bJHt0fV1gOmk9PT0wP3Q6YCR7ZX0uJHt0fWAsIiIpfWZ1bmN0aW9uIGx5KHIpe3JldHVybiByLm1hcChlPT5gJyR7ZX0nYCkuam9pbigiLCAiKX1mdW5jdGlvbiB1eShyKXtyZXR1cm4gbHkoT2JqZWN0LmtleXMocikpfWZ1bmN0aW9uIFVsKHIsZSx0LGk9e30pe2xldCBuPUFycmF5LmlzQXJyYXkoZSk/YnIoZSk6ZS5yZXBsYWNlKC9eWyciXSt8WyciXSskL2csIiIpLHM9QXJyYXkuaXNBcnJheShlKT9lOmt0KG4pLGE9KDAsTWkuZGVmYXVsdCkoci50aGVtZSxzLHQpO2lmKGE9PT12b2lkIDApe2xldCBsPWAnJHtufScgZG9lcyBub3QgZXhpc3QgaW4geW91ciB0aGVtZSBjb25maWcuYCxjPXMuc2xpY2UoMCwtMSksZj0oMCxNaS5kZWZhdWx0KShyLnRoZW1lLGMpO2lmKHpsKGYpKXtsZXQgZD1PYmplY3Qua2V5cyhmKS5maWx0ZXIoaD0+VWwocixbLi4uYyxoXSkuaXNWYWxpZCkscD0oMCxveS5kZWZhdWx0KShzW3MubGVuZ3RoLTFdLGQpO3A/bCs9YCBEaWQgeW91IG1lYW4gJyR7YnIoWy4uLmMscF0pfSc/YDpkLmxlbmd0aD4wJiYobCs9YCAnJHticihjKX0nIGhhcyB0aGUgZm9sbG93aW5nIHZhbGlkIGtleXM6ICR7bHkoZCl9YCl9ZWxzZXtsZXQgZD1IMihyLnRoZW1lLG4pO2lmKGQpe2xldCBwPSgwLE1pLmRlZmF1bHQpKHIudGhlbWUsZCk7emwocCk/bCs9YCAnJHticihkKX0nIGhhcyB0aGUgZm9sbG93aW5nIGtleXM6ICR7dXkocCl9YDpsKz1gICcke2JyKGQpfScgaXMgbm90IGFuIG9iamVjdC5gfWVsc2UgbCs9YCBZb3VyIHRoZW1lIGhhcyB0aGUgZm9sbG93aW5nIHRvcC1sZXZlbCBrZXlzOiAke3V5KHIudGhlbWUpfWB9cmV0dXJue2lzVmFsaWQ6ITEsZXJyb3I6bH19aWYoISh0eXBlb2YgYT09InN0cmluZyJ8fHR5cGVvZiBhPT0ibnVtYmVyInx8dHlwZW9mIGE9PSJmdW5jdGlvbiJ8fGEgaW5zdGFuY2VvZiBTdHJpbmd8fGEgaW5zdGFuY2VvZiBOdW1iZXJ8fEFycmF5LmlzQXJyYXkoYSkpKXtsZXQgbD1gJyR7bn0nIHdhcyBmb3VuZCBidXQgZG9lcyBub3QgcmVzb2x2ZSB0byBhIHN0cmluZy5gO2lmKHpsKGEpKXtsZXQgYz1PYmplY3Qua2V5cyhhKS5maWx0ZXIoZj0+VWwocixbLi4ucyxmXSkuaXNWYWxpZCk7Yy5sZW5ndGgmJihsKz1gIERpZCB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSAnJHticihbLi4ucyxjWzBdXSl9Jz9gKX1yZXR1cm57aXNWYWxpZDohMSxlcnJvcjpsfX1sZXRbb109cztyZXR1cm57aXNWYWxpZDohMCx2YWx1ZTptdChvKShhLGkpfX1mdW5jdGlvbiBXMihyLGUsdCl7ZT1lLm1hcChuPT5meShyLG4sdCkpO2xldCBpPVsiIl07Zm9yKGxldCBuIG9mIGUpbi50eXBlPT09ImRpdiImJm4udmFsdWU9PT0iLCI/aS5wdXNoKCIiKTppW2kubGVuZ3RoLTFdKz1qbC5kZWZhdWx0LnN0cmluZ2lmeShuKTtyZXR1cm4gaX1mdW5jdGlvbiBmeShyLGUsdCl7aWYoZS50eXBlPT09ImZ1bmN0aW9uIiYmdFtlLnZhbHVlXSE9PXZvaWQgMCl7bGV0IGk9VzIocixlLm5vZGVzLHQpO2UudHlwZT0id29yZCIsZS52YWx1ZT10W2UudmFsdWVdKHIsLi4uaSl9cmV0dXJuIGV9ZnVuY3Rpb24gRzIocixlLHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5zb21lKG49PmUuaW5jbHVkZXMoYCR7bn0oYCkpPygwLGpsLmRlZmF1bHQpKGUpLndhbGsobj0+e2Z5KHIsbix0KX0pLnRvU3RyaW5nKCk6ZX1mdW5jdGlvbipZMihyKXtyPXIucmVwbGFjZSgvXlsnIl0rfFsnIl0rJC9nLCIiKTtsZXQgZT1yLm1hdGNoKC9eKFteXHNdKykoPyFbXlxbXSpcXSkoPzpccypcL1xzKihbXlwvXHNdKykpJC8pLHQ7eWllbGRbcix2b2lkIDBdLGUmJihyPWVbMV0sdD1lWzJdLHlpZWxkW3IsdF0pfWZ1bmN0aW9uIEsyKHIsZSx0KXtsZXQgaT1BcnJheS5mcm9tKFkyKGUpKS5tYXAoKFtuLHNdKT0+T2JqZWN0LmFzc2lnbihVbChyLG4sdCx7b3BhY2l0eVZhbHVlOnN9KSx7cmVzb2x2ZWRQYXRoOm4sYWxwaGE6c30pKTtyZXR1cm4gaS5maW5kKG49Pm4uaXNWYWxpZCk/P2lbMF19ZnVuY3Rpb24gY3kocil7bGV0IGU9ci50YWlsd2luZENvbmZpZyx0PXt0aGVtZTooaSxuLC4uLnMpPT57bGV0e2lzVmFsaWQ6YSx2YWx1ZTpvLGVycm9yOmwsYWxwaGE6Y309SzIoZSxuLHMubGVuZ3RoP3M6dm9pZCAwKTtpZighYSl7bGV0IHA9aS5wYXJlbnQsaD1wPy5yYXdzLnRhaWx3aW5kPy5jYW5kaWRhdGU7aWYocCYmaCE9PXZvaWQgMCl7ci5tYXJrSW52YWxpZFV0aWxpdHlOb2RlKHApLHAucmVtb3ZlKCksRy53YXJuKCJpbnZhbGlkLXRoZW1lLWtleS1pbi1jbGFzcyIsW2BUaGUgdXRpbGl0eSBcYCR7aH1cYCBjb250YWlucyBhbiBpbnZhbGlkIHRoZW1lIHZhbHVlIGFuZCB3YXMgbm90IGdlbmVyYXRlZC5gXSk7cmV0dXJufXRocm93IGkuZXJyb3IobCl9bGV0IGY9WHQobyksZD1mIT09dm9pZCAwJiZ0eXBlb2YgZj09ImZ1bmN0aW9uIjtyZXR1cm4oYyE9PXZvaWQgMHx8ZCkmJihjPT09dm9pZCAwJiYoYz0xKSxvPUplKGYsYyxmKSksb30sc2NyZWVuOihpLG4pPT57bj1uLnJlcGxhY2UoL15bJyJdKy9nLCIiKS5yZXBsYWNlKC9bJyJdKyQvZywiIik7bGV0IGE9UnQoZS50aGVtZS5zY3JlZW5zKS5maW5kKCh7bmFtZTpvfSk9Pm89PT1uKTtpZighYSl0aHJvdyBpLmVycm9yKGBUaGUgJyR7bn0nIHNjcmVlbiBkb2VzIG5vdCBleGlzdCBpbiB5b3VyIHRoZW1lLmApO3JldHVybiBUdChhKX19O3JldHVybiBpPT57aS53YWxrKG49PntsZXQgcz1RMltuLnR5cGVdO3MhPT12b2lkIDAmJihuW3NdPUcyKG4sbltzXSx0KSl9KX19dmFyIE1pLG95LGpsLFEyLHB5PVAoKCk9Pnt1KCk7TWk9cGUoUmEoKSksb3k9cGUoV2coKSk7Q2koKTtqbD1wZShheSgpKTtabigpO1luKCk7WWkoKTtMcigpO0ZyKCk7QmUoKTtRMj17YXRydWxlOiJwYXJhbXMiLGRlY2w6InZhbHVlIn19KTtmdW5jdGlvbiBkeSh7dGFpbHdpbmRDb25maWc6e3RoZW1lOnJ9fSl7cmV0dXJuIGZ1bmN0aW9uKGUpe2Uud2Fsa0F0UnVsZXMoInNjcmVlbiIsdD0+e2xldCBpPXQucGFyYW1zLHM9UnQoci5zY3JlZW5zKS5maW5kKCh7bmFtZTphfSk9PmE9PT1pKTtpZighcyl0aHJvdyB0LmVycm9yKGBObyBcYCR7aX1cYCBzY3JlZW4gZm91bmQuYCk7dC5uYW1lPSJtZWRpYSIsdC5wYXJhbXM9VHQocyl9KX19dmFyIGh5PVAoKCk9Pnt1KCk7Wm4oKTtZbigpfSk7ZnVuY3Rpb24gWDIocil7bGV0IGU9ci5maWx0ZXIobz0+by50eXBlIT09InBzZXVkbyJ8fG8ubm9kZXMubGVuZ3RoPjA/ITA6by52YWx1ZS5zdGFydHNXaXRoKCI6OiIpfHxbIjpiZWZvcmUiLCI6YWZ0ZXIiLCI6Zmlyc3QtbGluZSIsIjpmaXJzdC1sZXR0ZXIiXS5pbmNsdWRlcyhvLnZhbHVlKSkucmV2ZXJzZSgpLHQ9bmV3IFNldChbInRhZyIsImNsYXNzIiwiaWQiLCJhdHRyaWJ1dGUiXSksaT1lLmZpbmRJbmRleChvPT50LmhhcyhvLnR5cGUpKTtpZihpPT09LTEpcmV0dXJuIGUucmV2ZXJzZSgpLmpvaW4oIiIpLnRyaW0oKTtsZXQgbj1lW2ldLHM9bXlbbi50eXBlXT9teVtuLnR5cGVdKG4pOm47ZT1lLnNsaWNlKDAsaSk7bGV0IGE9ZS5maW5kSW5kZXgobz0+by50eXBlPT09ImNvbWJpbmF0b3IiJiZvLnZhbHVlPT09Ij4iKTtyZXR1cm4gYSE9PS0xJiYoZS5zcGxpY2UoMCxhKSxlLnVuc2hpZnQoRXMuZGVmYXVsdC51bml2ZXJzYWwoKSkpLFtzLC4uLmUucmV2ZXJzZSgpXS5qb2luKCIiKS50cmltKCl9ZnVuY3Rpb24gSjIocil7cmV0dXJuIFZsLmhhcyhyKXx8Vmwuc2V0KHIsWjIudHJhbnNmb3JtU3luYyhyKSksVmwuZ2V0KHIpfWZ1bmN0aW9uIEhsKHt0YWlsd2luZENvbmZpZzpyfSl7cmV0dXJuIGU9PntsZXQgdD1uZXcgTWFwLGk9bmV3IFNldDtpZihlLndhbGtBdFJ1bGVzKCJkZWZhdWx0cyIsbj0+e2lmKG4ubm9kZXMmJm4ubm9kZXMubGVuZ3RoPjApe2kuYWRkKG4pO3JldHVybn1sZXQgcz1uLnBhcmFtczt0LmhhcyhzKXx8dC5zZXQocyxuZXcgU2V0KSx0LmdldChzKS5hZGQobi5wYXJlbnQpLG4ucmVtb3ZlKCl9KSx3ZShyLCJvcHRpbWl6ZVVuaXZlcnNhbERlZmF1bHRzIikpZm9yKGxldCBuIG9mIGkpe2xldCBzPW5ldyBNYXAsYT10LmdldChuLnBhcmFtcyk/P1tdO2ZvcihsZXQgbyBvZiBhKWZvcihsZXQgbCBvZiBKMihvLnNlbGVjdG9yKSl7bGV0IGM9bC5pbmNsdWRlcygiOi0iKXx8bC5pbmNsdWRlcygiOjotIil8fGwuaW5jbHVkZXMoIjpoYXMiKT9sOiJfX0RFRkFVTFRfXyIsZj1zLmdldChjKT8/bmV3IFNldDtzLnNldChjLGYpLGYuYWRkKGwpfWlmKHMuc2l6ZT09PTApe24ucmVtb3ZlKCk7Y29udGludWV9Zm9yKGxldFssb11vZiBzKXtsZXQgbD1lZS5ydWxlKHtzb3VyY2U6bi5zb3VyY2V9KTtsLnNlbGVjdG9ycz1bLi4ub10sbC5hcHBlbmQobi5ub2Rlcy5tYXAoYz0+Yy5jbG9uZSgpKSksbi5iZWZvcmUobCl9bi5yZW1vdmUoKX1lbHNlIGlmKGkuc2l6ZSl7bGV0IG49ZWUucnVsZSh7c2VsZWN0b3JzOlsiKiIsIjo6YmVmb3JlIiwiOjphZnRlciJdfSk7Zm9yKGxldCBhIG9mIGkpbi5hcHBlbmQoYS5ub2Rlcyksbi5wYXJlbnR8fGEuYmVmb3JlKG4pLG4uc291cmNlfHwobi5zb3VyY2U9YS5zb3VyY2UpLGEucmVtb3ZlKCk7bGV0IHM9bi5jbG9uZSh7c2VsZWN0b3JzOlsiOjpiYWNrZHJvcCJdfSk7bi5hZnRlcihzKX19fXZhciBFcyxteSxaMixWbCxneT1QKCgpPT57dSgpO090KCk7RXM9cGUoaXQoKSk7Y3QoKTtteT17aWQocil7cmV0dXJuIEVzLmRlZmF1bHQuYXR0cmlidXRlKHthdHRyaWJ1dGU6ImlkIixvcGVyYXRvcjoiPSIsdmFsdWU6ci52YWx1ZSxxdW90ZU1hcms6JyInfSl9fTtaMj0oMCxFcy5kZWZhdWx0KShyPT5yLm1hcChlPT57bGV0IHQ9ZS5zcGxpdChpPT5pLnR5cGU9PT0iY29tYmluYXRvciImJmkudmFsdWU9PT0iICIpLnBvcCgpO3JldHVybiBYMih0KX0pKSxWbD1uZXcgTWFwfSk7ZnVuY3Rpb24gV2woKXtmdW5jdGlvbiByKGUpe2xldCB0PW51bGw7ZS5lYWNoKGk9PntpZighZU8uaGFzKGkudHlwZSkpe3Q9bnVsbDtyZXR1cm59aWYodD09PW51bGwpe3Q9aTtyZXR1cm59bGV0IG49eXlbaS50eXBlXTtpLnR5cGU9PT0iYXRydWxlIiYmaS5uYW1lPT09ImZvbnQtZmFjZSI/dD1pOm4uZXZlcnkocz0+KGlbc10/PyIiKS5yZXBsYWNlKC9ccysvZywiICIpPT09KHRbc10/PyIiKS5yZXBsYWNlKC9ccysvZywiICIpKT8oaS5ub2RlcyYmdC5hcHBlbmQoaS5ub2RlcyksaS5yZW1vdmUoKSk6dD1pfSksZS5lYWNoKGk9PntpLnR5cGU9PT0iYXRydWxlIiYmcihpKX0pfXJldHVybiBlPT57cihlKX19dmFyIHl5LGVPLGJ5PVAoKCk9Pnt1KCk7eXk9e2F0cnVsZTpbIm5hbWUiLCJwYXJhbXMiXSxydWxlOlsic2VsZWN0b3IiXX0sZU89bmV3IFNldChPYmplY3Qua2V5cyh5eSkpfSk7ZnVuY3Rpb24gR2woKXtyZXR1cm4gcj0+e3Iud2Fsa1J1bGVzKGU9PntsZXQgdD1uZXcgTWFwLGk9bmV3IFNldChbXSksbj1uZXcgTWFwO2Uud2Fsa0RlY2xzKHM9PntpZihzLnBhcmVudD09PWUpe2lmKHQuaGFzKHMucHJvcCkpe2lmKHQuZ2V0KHMucHJvcCkudmFsdWU9PT1zLnZhbHVlKXtpLmFkZCh0LmdldChzLnByb3ApKSx0LnNldChzLnByb3Ascyk7cmV0dXJufW4uaGFzKHMucHJvcCl8fG4uc2V0KHMucHJvcCxuZXcgU2V0KSxuLmdldChzLnByb3ApLmFkZCh0LmdldChzLnByb3ApKSxuLmdldChzLnByb3ApLmFkZChzKX10LnNldChzLnByb3Ascyl9fSk7Zm9yKGxldCBzIG9mIGkpcy5yZW1vdmUoKTtmb3IobGV0IHMgb2Ygbi52YWx1ZXMoKSl7bGV0IGE9bmV3IE1hcDtmb3IobGV0IG8gb2Ygcyl7bGV0IGw9ck8oby52YWx1ZSk7bCE9PW51bGwmJihhLmhhcyhsKXx8YS5zZXQobCxuZXcgU2V0KSxhLmdldChsKS5hZGQobykpfWZvcihsZXQgbyBvZiBhLnZhbHVlcygpKXtsZXQgbD1BcnJheS5mcm9tKG8pLnNsaWNlKDAsLTEpO2ZvcihsZXQgYyBvZiBsKWMucmVtb3ZlKCl9fX0pfX1mdW5jdGlvbiByTyhyKXtsZXQgZT0vXi0/XGQqLj9cZCsoW1x3JV0rKT8kL2cuZXhlYyhyKTtyZXR1cm4gZT9lWzFdPz90TzpudWxsfXZhciB0Tyx3eT1QKCgpPT57dSgpO3RPPVN5bWJvbCgidW5pdGxlc3MtbnVtYmVyIil9KTtmdW5jdGlvbiBpTyhyKXtpZighci53YWxrQXRSdWxlcylyZXR1cm47bGV0IGU9bmV3IFNldDtpZihyLndhbGtBdFJ1bGVzKCJhcHBseSIsdD0+e2UuYWRkKHQucGFyZW50KX0pLGUuc2l6ZSE9PTApZm9yKGxldCB0IG9mIGUpe2xldCBpPVtdLG49W107Zm9yKGxldCBzIG9mIHQubm9kZXMpcy50eXBlPT09ImF0cnVsZSImJnMubmFtZT09PSJhcHBseSI/KG4ubGVuZ3RoPjAmJihpLnB1c2gobiksbj1bXSksaS5wdXNoKFtzXSkpOm4ucHVzaChzKTtpZihuLmxlbmd0aD4wJiZpLnB1c2gobiksaS5sZW5ndGghPT0xKXtmb3IobGV0IHMgb2ZbLi4uaV0ucmV2ZXJzZSgpKXtsZXQgYT10LmNsb25lKHtub2RlczpbXX0pO2EuYXBwZW5kKHMpLHQuYWZ0ZXIoYSl9dC5yZW1vdmUoKX19fWZ1bmN0aW9uIE9zKCl7cmV0dXJuIHI9PntpTyhyKX19dmFyIHZ5PVAoKCk9Pnt1KCl9KTtmdW5jdGlvbiBUcyhyKXtyZXR1cm4gYXN5bmMgZnVuY3Rpb24oZSx0KXtsZXR7dGFpbHdpbmREaXJlY3RpdmVzOmksYXBwbHlEaXJlY3RpdmVzOm59PU9sKGUpO09zKCkoZSx0KTtsZXQgcz1yKHt0YWlsd2luZERpcmVjdGl2ZXM6aSxhcHBseURpcmVjdGl2ZXM6bixyZWdpc3RlckRlcGVuZGVuY3koYSl7dC5tZXNzYWdlcy5wdXNoKHtwbHVnaW46InRhaWx3aW5kY3NzIixwYXJlbnQ6dC5vcHRzLmZyb20sLi4uYX0pfSxjcmVhdGVDb250ZXh0KGEsbyl7cmV0dXJuIGlsKGEsbyxlKX19KShlLHQpO2lmKHMudGFpbHdpbmRDb25maWcuc2VwYXJhdG9yPT09Ii0iKXRocm93IG5ldyBFcnJvcigiVGhlICctJyBjaGFyYWN0ZXIgY2Fubm90IGJlIHVzZWQgYXMgYSBjdXN0b20gc2VwYXJhdG9yIGluIEpJVCBtb2RlIGR1ZSB0byBwYXJzaW5nIGFtYmlndWl0eS4gUGxlYXNlIHVzZSBhbm90aGVyIGNoYXJhY3RlciBsaWtlICdfJyBpbnN0ZWFkLiIpO1JmKHMudGFpbHdpbmRDb25maWcpLGF3YWl0IFBsKHMpKGUsdCksT3MoKShlLHQpLERsKHMpKGUsdCksY3kocykoZSx0KSxkeShzKShlLHQpLEhsKHMpKGUsdCksV2wocykoZSx0KSxHbChzKShlLHQpfX12YXIgeHk9UCgoKT0+e3UoKTtPZygpO0JnKCk7SGcoKTtweSgpO2h5KCk7Z3koKTtieSgpO3d5KCk7dnkoKTtPaSgpO2N0KCl9KTtmdW5jdGlvbiBreShyLGUpe2xldCB0PW51bGwsaT1udWxsO3JldHVybiByLndhbGtBdFJ1bGVzKCJjb25maWciLG49PntpZihpPW4uc291cmNlPy5pbnB1dC5maWxlPz9lLm9wdHMuZnJvbT8/bnVsbCxpPT09bnVsbCl0aHJvdyBuLmVycm9yKCJUaGUgYEBjb25maWdgIGRpcmVjdGl2ZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHNldHRpbmcgYGZyb21gIGluIHlvdXIgUG9zdENTUyBjb25maWcuIik7aWYodCl0aHJvdyBuLmVycm9yKCJPbmx5IG9uZSBgQGNvbmZpZ2AgZGlyZWN0aXZlIGlzIGFsbG93ZWQgcGVyIGZpbGUuIik7bGV0IHM9bi5wYXJhbXMubWF0Y2goLyhbJyJdKSguKj8pXDEvKTtpZighcyl0aHJvdyBuLmVycm9yKCJBIHBhdGggaXMgcmVxdWlyZWQgd2hlbiB1c2luZyB0aGUgYEBjb25maWdgIGRpcmVjdGl2ZS4iKTtsZXQgYT1zWzJdO2lmKG1lLmlzQWJzb2x1dGUoYSkpdGhyb3cgbi5lcnJvcigiVGhlIGBAY29uZmlnYCBkaXJlY3RpdmUgY2Fubm90IGJlIHVzZWQgd2l0aCBhbiBhYnNvbHV0ZSBwYXRoLiIpO2lmKHQ9bWUucmVzb2x2ZShtZS5kaXJuYW1lKGkpLGEpLCFiZS5leGlzdHNTeW5jKHQpKXRocm93IG4uZXJyb3IoYFRoZSBjb25maWcgZmlsZSBhdCAiJHthfSIgZG9lcyBub3QgZXhpc3QuIE1ha2Ugc3VyZSB0aGUgcGF0aCBpcyBjb3JyZWN0IGFuZCB0aGUgZmlsZSBleGlzdHMuYCk7bi5yZW1vdmUoKX0pLHR8fG51bGx9dmFyIFN5PVAoKCk9Pnt1KCk7ZnQoKTtldCgpfSk7dmFyIEF5PXgoKFdxLFFsKT0+e3UoKTtFZygpO3h5KCk7SXQoKTtTeSgpO1FsLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJue3Bvc3Rjc3NQbHVnaW46InRhaWx3aW5kY3NzIixwbHVnaW5zOltaZS5ERUJVRyYmZnVuY3Rpb24odCl7cmV0dXJuIGNvbnNvbGUubG9nKGAKYCksY29uc29sZS50aW1lKCJKSVQgVE9UQUwiKSx0fSxhc3luYyBmdW5jdGlvbih0LGkpe2U9a3kodCxpKT8/ZTtsZXQgbj1FbChlKTtpZih0LnR5cGU9PT0iZG9jdW1lbnQiKXtsZXQgcz10Lm5vZGVzLmZpbHRlcihhPT5hLnR5cGU9PT0icm9vdCIpO2ZvcihsZXQgYSBvZiBzKWEudHlwZT09PSJyb290IiYmYXdhaXQgVHMobikoYSxpKTtyZXR1cm59YXdhaXQgVHMobikodCxpKX0sWmUuREVCVUcmJmZ1bmN0aW9uKHQpe3JldHVybiBjb25zb2xlLnRpbWVFbmQoIkpJVCBUT1RBTCIpLGNvbnNvbGUubG9nKGAKYCksdH1dLmZpbHRlcihCb29sZWFuKX19O1FsLmV4cG9ydHMucG9zdGNzcz0hMH0pO3ZhciBfeT14KChHcSxDeSk9Pnt1KCk7Q3kuZXhwb3J0cz1BeSgpfSk7dmFyIFlsPXgoKFFxLEV5KT0+e3UoKTtFeS5leHBvcnRzPSgpPT5bImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTE0IiwiY2hyb21lIDExMyIsImNocm9tZSAxMDkiLCJlZGdlIDExNCIsImZpcmVmb3ggMTE0IiwiaW9zX3NhZiAxNi41IiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi4xIiwib3BlcmEgOTkiLCJzYWZhcmkgMTYuNSIsInNhbXN1bmcgMjEiXX0pO3ZhciBScz17fTtHZShScyx7YWdlbnRzOigpPT5uTyxmZWF0dXJlOigpPT5zT30pO2Z1bmN0aW9uIHNPKCl7cmV0dXJue3N0YXR1czoiY3IiLHRpdGxlOiJDU1MgRmVhdHVyZSBRdWVyaWVzIixzdGF0czp7aWU6eyI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoibiIsIjEwIjoibiIsIjExIjoibiIsIjUuNSI6Im4ifSxlZGdlOnsiMTIiOiJ5IiwiMTMiOiJ5IiwiMTQiOiJ5IiwiMTUiOiJ5IiwiMTYiOiJ5IiwiMTciOiJ5IiwiMTgiOiJ5IiwiNzkiOiJ5IiwiODAiOiJ5IiwiODEiOiJ5IiwiODMiOiJ5IiwiODQiOiJ5IiwiODUiOiJ5IiwiODYiOiJ5IiwiODciOiJ5IiwiODgiOiJ5IiwiODkiOiJ5IiwiOTAiOiJ5IiwiOTEiOiJ5IiwiOTIiOiJ5IiwiOTMiOiJ5IiwiOTQiOiJ5IiwiOTUiOiJ5IiwiOTYiOiJ5IiwiOTciOiJ5IiwiOTgiOiJ5IiwiOTkiOiJ5IiwiMTAwIjoieSIsIjEwMSI6InkiLCIxMDIiOiJ5IiwiMTAzIjoieSIsIjEwNCI6InkiLCIxMDUiOiJ5IiwiMTA2IjoieSIsIjEwNyI6InkiLCIxMDgiOiJ5IiwiMTA5IjoieSIsIjExMCI6InkiLCIxMTEiOiJ5IiwiMTEyIjoieSIsIjExMyI6InkiLCIxMTQiOiJ5In0sZmlyZWZveDp7IjIiOiJuIiwiMyI6Im4iLCI0IjoibiIsIjUiOiJuIiwiNiI6Im4iLCI3IjoibiIsIjgiOiJuIiwiOSI6Im4iLCIxMCI6Im4iLCIxMSI6Im4iLCIxMiI6Im4iLCIxMyI6Im4iLCIxNCI6Im4iLCIxNSI6Im4iLCIxNiI6Im4iLCIxNyI6Im4iLCIxOCI6Im4iLCIxOSI6Im4iLCIyMCI6Im4iLCIyMSI6Im4iLCIyMiI6InkiLCIyMyI6InkiLCIyNCI6InkiLCIyNSI6InkiLCIyNiI6InkiLCIyNyI6InkiLCIyOCI6InkiLCIyOSI6InkiLCIzMCI6InkiLCIzMSI6InkiLCIzMiI6InkiLCIzMyI6InkiLCIzNCI6InkiLCIzNSI6InkiLCIzNiI6InkiLCIzNyI6InkiLCIzOCI6InkiLCIzOSI6InkiLCI0MCI6InkiLCI0MSI6InkiLCI0MiI6InkiLCI0MyI6InkiLCI0NCI6InkiLCI0NSI6InkiLCI0NiI6InkiLCI0NyI6InkiLCI0OCI6InkiLCI0OSI6InkiLCI1MCI6InkiLCI1MSI6InkiLCI1MiI6InkiLCI1MyI6InkiLCI1NCI6InkiLCI1NSI6InkiLCI1NiI6InkiLCI1NyI6InkiLCI1OCI6InkiLCI1OSI6InkiLCI2MCI6InkiLCI2MSI6InkiLCI2MiI6InkiLCI2MyI6InkiLCI2NCI6InkiLCI2NSI6InkiLCI2NiI6InkiLCI2NyI6InkiLCI2OCI6InkiLCI2OSI6InkiLCI3MCI6InkiLCI3MSI6InkiLCI3MiI6InkiLCI3MyI6InkiLCI3NCI6InkiLCI3NSI6InkiLCI3NiI6InkiLCI3NyI6InkiLCI3OCI6InkiLCI3OSI6InkiLCI4MCI6InkiLCI4MSI6InkiLCI4MiI6InkiLCI4MyI6InkiLCI4NCI6InkiLCI4NSI6InkiLCI4NiI6InkiLCI4NyI6InkiLCI4OCI6InkiLCI4OSI6InkiLCI5MCI6InkiLCI5MSI6InkiLCI5MiI6InkiLCI5MyI6InkiLCI5NCI6InkiLCI5NSI6InkiLCI5NiI6InkiLCI5NyI6InkiLCI5OCI6InkiLCI5OSI6InkiLCIxMDAiOiJ5IiwiMTAxIjoieSIsIjEwMiI6InkiLCIxMDMiOiJ5IiwiMTA0IjoieSIsIjEwNSI6InkiLCIxMDYiOiJ5IiwiMTA3IjoieSIsIjEwOCI6InkiLCIxMDkiOiJ5IiwiMTEwIjoieSIsIjExMSI6InkiLCIxMTIiOiJ5IiwiMTEzIjoieSIsIjExNCI6InkiLCIxMTUiOiJ5IiwiMTE2IjoieSIsIjExNyI6InkiLCIzLjUiOiJuIiwiMy42IjoibiJ9LGNocm9tZTp7IjQiOiJuIiwiNSI6Im4iLCI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoibiIsIjEwIjoibiIsIjExIjoibiIsIjEyIjoibiIsIjEzIjoibiIsIjE0IjoibiIsIjE1IjoibiIsIjE2IjoibiIsIjE3IjoibiIsIjE4IjoibiIsIjE5IjoibiIsIjIwIjoibiIsIjIxIjoibiIsIjIyIjoibiIsIjIzIjoibiIsIjI0IjoibiIsIjI1IjoibiIsIjI2IjoibiIsIjI3IjoibiIsIjI4IjoieSIsIjI5IjoieSIsIjMwIjoieSIsIjMxIjoieSIsIjMyIjoieSIsIjMzIjoieSIsIjM0IjoieSIsIjM1IjoieSIsIjM2IjoieSIsIjM3IjoieSIsIjM4IjoieSIsIjM5IjoieSIsIjQwIjoieSIsIjQxIjoieSIsIjQyIjoieSIsIjQzIjoieSIsIjQ0IjoieSIsIjQ1IjoieSIsIjQ2IjoieSIsIjQ3IjoieSIsIjQ4IjoieSIsIjQ5IjoieSIsIjUwIjoieSIsIjUxIjoieSIsIjUyIjoieSIsIjUzIjoieSIsIjU0IjoieSIsIjU1IjoieSIsIjU2IjoieSIsIjU3IjoieSIsIjU4IjoieSIsIjU5IjoieSIsIjYwIjoieSIsIjYxIjoieSIsIjYyIjoieSIsIjYzIjoieSIsIjY0IjoieSIsIjY1IjoieSIsIjY2IjoieSIsIjY3IjoieSIsIjY4IjoieSIsIjY5IjoieSIsIjcwIjoieSIsIjcxIjoieSIsIjcyIjoieSIsIjczIjoieSIsIjc0IjoieSIsIjc1IjoieSIsIjc2IjoieSIsIjc3IjoieSIsIjc4IjoieSIsIjc5IjoieSIsIjgwIjoieSIsIjgxIjoieSIsIjgzIjoieSIsIjg0IjoieSIsIjg1IjoieSIsIjg2IjoieSIsIjg3IjoieSIsIjg4IjoieSIsIjg5IjoieSIsIjkwIjoieSIsIjkxIjoieSIsIjkyIjoieSIsIjkzIjoieSIsIjk0IjoieSIsIjk1IjoieSIsIjk2IjoieSIsIjk3IjoieSIsIjk4IjoieSIsIjk5IjoieSIsIjEwMCI6InkiLCIxMDEiOiJ5IiwiMTAyIjoieSIsIjEwMyI6InkiLCIxMDQiOiJ5IiwiMTA1IjoieSIsIjEwNiI6InkiLCIxMDciOiJ5IiwiMTA4IjoieSIsIjEwOSI6InkiLCIxMTAiOiJ5IiwiMTExIjoieSIsIjExMiI6InkiLCIxMTMiOiJ5IiwiMTE0IjoieSIsIjExNSI6InkiLCIxMTYiOiJ5IiwiMTE3IjoieSJ9LHNhZmFyaTp7IjQiOiJuIiwiNSI6Im4iLCI2IjoibiIsIjciOiJuIiwiOCI6Im4iLCI5IjoieSIsIjEwIjoieSIsIjExIjoieSIsIjEyIjoieSIsIjEzIjoieSIsIjE0IjoieSIsIjE1IjoieSIsIjE3IjoieSIsIjkuMSI6InkiLCIxMC4xIjoieSIsIjExLjEiOiJ5IiwiMTIuMSI6InkiLCIxMy4xIjoieSIsIjE0LjEiOiJ5IiwiMTUuMSI6InkiLCIxNS4yLTE1LjMiOiJ5IiwiMTUuNCI6InkiLCIxNS41IjoieSIsIjE1LjYiOiJ5IiwiMTYuMCI6InkiLCIxNi4xIjoieSIsIjE2LjIiOiJ5IiwiMTYuMyI6InkiLCIxNi40IjoieSIsIjE2LjUiOiJ5IiwiMTYuNiI6InkiLFRQOiJ5IiwiMy4xIjoibiIsIjMuMiI6Im4iLCI1LjEiOiJuIiwiNi4xIjoibiIsIjcuMSI6Im4ifSxvcGVyYTp7IjkiOiJuIiwiMTEiOiJuIiwiMTIiOiJuIiwiMTUiOiJ5IiwiMTYiOiJ5IiwiMTciOiJ5IiwiMTgiOiJ5IiwiMTkiOiJ5IiwiMjAiOiJ5IiwiMjEiOiJ5IiwiMjIiOiJ5IiwiMjMiOiJ5IiwiMjQiOiJ5IiwiMjUiOiJ5IiwiMjYiOiJ5IiwiMjciOiJ5IiwiMjgiOiJ5IiwiMjkiOiJ5IiwiMzAiOiJ5IiwiMzEiOiJ5IiwiMzIiOiJ5IiwiMzMiOiJ5IiwiMzQiOiJ5IiwiMzUiOiJ5IiwiMzYiOiJ5IiwiMzciOiJ5IiwiMzgiOiJ5IiwiMzkiOiJ5IiwiNDAiOiJ5IiwiNDEiOiJ5IiwiNDIiOiJ5IiwiNDMiOiJ5IiwiNDQiOiJ5IiwiNDUiOiJ5IiwiNDYiOiJ5IiwiNDciOiJ5IiwiNDgiOiJ5IiwiNDkiOiJ5IiwiNTAiOiJ5IiwiNTEiOiJ5IiwiNTIiOiJ5IiwiNTMiOiJ5IiwiNTQiOiJ5IiwiNTUiOiJ5IiwiNTYiOiJ5IiwiNTciOiJ5IiwiNTgiOiJ5IiwiNjAiOiJ5IiwiNjIiOiJ5IiwiNjMiOiJ5IiwiNjQiOiJ5IiwiNjUiOiJ5IiwiNjYiOiJ5IiwiNjciOiJ5IiwiNjgiOiJ5IiwiNjkiOiJ5IiwiNzAiOiJ5IiwiNzEiOiJ5IiwiNzIiOiJ5IiwiNzMiOiJ5IiwiNzQiOiJ5IiwiNzUiOiJ5IiwiNzYiOiJ5IiwiNzciOiJ5IiwiNzgiOiJ5IiwiNzkiOiJ5IiwiODAiOiJ5IiwiODEiOiJ5IiwiODIiOiJ5IiwiODMiOiJ5IiwiODQiOiJ5IiwiODUiOiJ5IiwiODYiOiJ5IiwiODciOiJ5IiwiODgiOiJ5IiwiODkiOiJ5IiwiOTAiOiJ5IiwiOTEiOiJ5IiwiOTIiOiJ5IiwiOTMiOiJ5IiwiOTQiOiJ5IiwiOTUiOiJ5IiwiOTYiOiJ5IiwiOTciOiJ5IiwiOTgiOiJ5IiwiOTkiOiJ5IiwiMTAwIjoieSIsIjEyLjEiOiJ5IiwiOS41LTkuNiI6Im4iLCIxMC4wLTEwLjEiOiJuIiwiMTAuNSI6Im4iLCIxMC42IjoibiIsIjExLjEiOiJuIiwiMTEuNSI6Im4iLCIxMS42IjoibiJ9LGlvc19zYWY6eyI4IjoibiIsIjE3IjoieSIsIjkuMC05LjIiOiJ5IiwiOS4zIjoieSIsIjEwLjAtMTAuMiI6InkiLCIxMC4zIjoieSIsIjExLjAtMTEuMiI6InkiLCIxMS4zLTExLjQiOiJ5IiwiMTIuMC0xMi4xIjoieSIsIjEyLjItMTIuNSI6InkiLCIxMy4wLTEzLjEiOiJ5IiwiMTMuMiI6InkiLCIxMy4zIjoieSIsIjEzLjQtMTMuNyI6InkiLCIxNC4wLTE0LjQiOiJ5IiwiMTQuNS0xNC44IjoieSIsIjE1LjAtMTUuMSI6InkiLCIxNS4yLTE1LjMiOiJ5IiwiMTUuNCI6InkiLCIxNS41IjoieSIsIjE1LjYiOiJ5IiwiMTYuMCI6InkiLCIxNi4xIjoieSIsIjE2LjIiOiJ5IiwiMTYuMyI6InkiLCIxNi40IjoieSIsIjE2LjUiOiJ5IiwiMTYuNiI6InkiLCIzLjIiOiJuIiwiNC4wLTQuMSI6Im4iLCI0LjItNC4zIjoibiIsIjUuMC01LjEiOiJuIiwiNi4wLTYuMSI6Im4iLCI3LjAtNy4xIjoibiIsIjguMS04LjQiOiJuIn0sb3BfbWluaTp7YWxsOiJ5In0sYW5kcm9pZDp7IjMiOiJuIiwiNCI6Im4iLCIxMTQiOiJ5IiwiNC40IjoieSIsIjQuNC4zLTQuNC40IjoieSIsIjIuMSI6Im4iLCIyLjIiOiJuIiwiMi4zIjoibiIsIjQuMSI6Im4iLCI0LjItNC4zIjoibiJ9LGJiOnsiNyI6Im4iLCIxMCI6Im4ifSxvcF9tb2I6eyIxMCI6Im4iLCIxMSI6Im4iLCIxMiI6Im4iLCI3MyI6InkiLCIxMS4xIjoibiIsIjExLjUiOiJuIiwiMTIuMSI6Im4ifSxhbmRfY2hyOnsiMTE0IjoieSJ9LGFuZF9mZjp7IjExNSI6InkifSxpZV9tb2I6eyIxMCI6Im4iLCIxMSI6Im4ifSxhbmRfdWM6eyIxNS41IjoieSJ9LHNhbXN1bmc6eyI0IjoieSIsIjIwIjoieSIsIjIxIjoieSIsIjUuMC01LjQiOiJ5IiwiNi4yLTYuNCI6InkiLCI3LjItNy40IjoieSIsIjguMiI6InkiLCI5LjIiOiJ5IiwiMTAuMSI6InkiLCIxMS4xLTExLjIiOiJ5IiwiMTIuMCI6InkiLCIxMy4wIjoieSIsIjE0LjAiOiJ5IiwiMTUuMCI6InkiLCIxNi4wIjoieSIsIjE3LjAiOiJ5IiwiMTguMCI6InkiLCIxOS4wIjoieSJ9LGFuZF9xcTp7IjEzLjEiOiJ5In0sYmFpZHU6eyIxMy4xOCI6InkifSxrYWlvczp7IjIuNSI6InkiLCIzLjAtMy4xIjoieSJ9fX19dmFyIG5PLFBzPVAoKCk9Pnt1KCk7bk89e2llOntwcmVmaXg6Im1zIn0sZWRnZTp7cHJlZml4OiJ3ZWJraXQiLHByZWZpeF9leGNlcHRpb25zOnsiMTIiOiJtcyIsIjEzIjoibXMiLCIxNCI6Im1zIiwiMTUiOiJtcyIsIjE2IjoibXMiLCIxNyI6Im1zIiwiMTgiOiJtcyJ9fSxmaXJlZm94OntwcmVmaXg6Im1veiJ9LGNocm9tZTp7cHJlZml4OiJ3ZWJraXQifSxzYWZhcmk6e3ByZWZpeDoid2Via2l0In0sb3BlcmE6e3ByZWZpeDoid2Via2l0IixwcmVmaXhfZXhjZXB0aW9uczp7IjkiOiJvIiwiMTEiOiJvIiwiMTIiOiJvIiwiOS41LTkuNiI6Im8iLCIxMC4wLTEwLjEiOiJvIiwiMTAuNSI6Im8iLCIxMC42IjoibyIsIjExLjEiOiJvIiwiMTEuNSI6Im8iLCIxMS42IjoibyIsIjEyLjEiOiJvIn19LGlvc19zYWY6e3ByZWZpeDoid2Via2l0In0sb3BfbWluaTp7cHJlZml4OiJvIn0sYW5kcm9pZDp7cHJlZml4OiJ3ZWJraXQifSxiYjp7cHJlZml4OiJ3ZWJraXQifSxvcF9tb2I6e3ByZWZpeDoibyIscHJlZml4X2V4Y2VwdGlvbnM6eyI3MyI6IndlYmtpdCJ9fSxhbmRfY2hyOntwcmVmaXg6IndlYmtpdCJ9LGFuZF9mZjp7cHJlZml4OiJtb3oifSxpZV9tb2I6e3ByZWZpeDoibXMifSxhbmRfdWM6e3ByZWZpeDoid2Via2l0IixwcmVmaXhfZXhjZXB0aW9uczp7IjE1LjUiOiJ3ZWJraXQifX0sc2Ftc3VuZzp7cHJlZml4OiJ3ZWJraXQifSxhbmRfcXE6e3ByZWZpeDoid2Via2l0In0sYmFpZHU6e3ByZWZpeDoid2Via2l0In0sa2Fpb3M6e3ByZWZpeDoibW96In19fSk7dmFyIE95PXgoKCk9Pnt1KCl9KTt2YXIgX2U9eCgoWHEsTHQpPT57dSgpO3ZhcntsaXN0OktsfT0kZSgpO0x0LmV4cG9ydHMuZXJyb3I9ZnVuY3Rpb24ocil7bGV0IGU9bmV3IEVycm9yKHIpO3Rocm93IGUuYXV0b3ByZWZpeGVyPSEwLGV9O0x0LmV4cG9ydHMudW5pcT1mdW5jdGlvbihyKXtyZXR1cm5bLi4ubmV3IFNldChyKV19O0x0LmV4cG9ydHMucmVtb3ZlTm90ZT1mdW5jdGlvbihyKXtyZXR1cm4gci5pbmNsdWRlcygiICIpP3Iuc3BsaXQoIiAiKVswXTpyfTtMdC5leHBvcnRzLmVzY2FwZVJlZ2V4cD1mdW5jdGlvbihyKXtyZXR1cm4gci5yZXBsYWNlKC9bJCgpKistLj9bXFxcXV57fH1dL2csIlxcJCYiKX07THQuZXhwb3J0cy5yZWdleHA9ZnVuY3Rpb24ocixlPSEwKXtyZXR1cm4gZSYmKHI9dGhpcy5lc2NhcGVSZWdleHAocikpLG5ldyBSZWdFeHAoYChefFtcXHMsKF0pKCR7cn0oJHxbXFxzKCxdKSlgLCJnaSIpfTtMdC5leHBvcnRzLmVkaXRMaXN0PWZ1bmN0aW9uKHIsZSl7bGV0IHQ9S2wuY29tbWEociksaT1lKHQsW10pO2lmKHQ9PT1pKXJldHVybiByO2xldCBuPXIubWF0Y2goLyxccyovKTtyZXR1cm4gbj1uP25bMF06IiwgIixpLmpvaW4obil9O0x0LmV4cG9ydHMuc3BsaXRTZWxlY3Rvcj1mdW5jdGlvbihyKXtyZXR1cm4gS2wuY29tbWEocikubWFwKGU9PktsLnNwYWNlKGUpLm1hcCh0PT50LnNwbGl0KC8oPz1cLnwjKS9nKSkpfX0pO3ZhciBNdD14KChacSxQeSk9Pnt1KCk7dmFyIGFPPVlsKCksVHk9KFBzKCksUnMpLmFnZW50cyxvTz1fZSgpLFJ5PWNsYXNze3N0YXRpYyBwcmVmaXhlcygpe2lmKHRoaXMucHJlZml4ZXNDYWNoZSlyZXR1cm4gdGhpcy5wcmVmaXhlc0NhY2hlO3RoaXMucHJlZml4ZXNDYWNoZT1bXTtmb3IobGV0IGUgaW4gVHkpdGhpcy5wcmVmaXhlc0NhY2hlLnB1c2goYC0ke1R5W2VdLnByZWZpeH0tYCk7cmV0dXJuIHRoaXMucHJlZml4ZXNDYWNoZT1vTy51bmlxKHRoaXMucHJlZml4ZXNDYWNoZSkuc29ydCgoZSx0KT0+dC5sZW5ndGgtZS5sZW5ndGgpLHRoaXMucHJlZml4ZXNDYWNoZX1zdGF0aWMgd2l0aFByZWZpeChlKXtyZXR1cm4gdGhpcy5wcmVmaXhlc1JlZ2V4cHx8KHRoaXMucHJlZml4ZXNSZWdleHA9bmV3IFJlZ0V4cCh0aGlzLnByZWZpeGVzKCkuam9pbigifCIpKSksdGhpcy5wcmVmaXhlc1JlZ2V4cC50ZXN0KGUpfWNvbnN0cnVjdG9yKGUsdCxpLG4pe3RoaXMuZGF0YT1lLHRoaXMub3B0aW9ucz1pfHx7fSx0aGlzLmJyb3dzZXJzbGlzdE9wdHM9bnx8e30sdGhpcy5zZWxlY3RlZD10aGlzLnBhcnNlKHQpfXBhcnNlKGUpe2xldCB0PXt9O2ZvcihsZXQgaSBpbiB0aGlzLmJyb3dzZXJzbGlzdE9wdHMpdFtpXT10aGlzLmJyb3dzZXJzbGlzdE9wdHNbaV07cmV0dXJuIHQucGF0aD10aGlzLm9wdGlvbnMuZnJvbSxhTyhlLHQpfXByZWZpeChlKXtsZXRbdCxpXT1lLnNwbGl0KCIgIiksbj10aGlzLmRhdGFbdF0scz1uLnByZWZpeF9leGNlcHRpb25zJiZuLnByZWZpeF9leGNlcHRpb25zW2ldO3JldHVybiBzfHwocz1uLnByZWZpeCksYC0ke3N9LWB9aXNTZWxlY3RlZChlKXtyZXR1cm4gdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhlKX19O1B5LmV4cG9ydHM9Unl9KTt2YXIgTmk9eCgoSnEsSXkpPT57dSgpO0l5LmV4cG9ydHM9e3ByZWZpeChyKXtsZXQgZT1yLm1hdGNoKC9eKC1cdystKS8pO3JldHVybiBlP2VbMF06IiJ9LHVucHJlZml4ZWQocil7cmV0dXJuIHIucmVwbGFjZSgvXi1cdystLywiIil9fX0pO3ZhciB3cj14KChlJCxxeSk9Pnt1KCk7dmFyIGxPPU10KCksRHk9TmkoKSx1Tz1fZSgpO2Z1bmN0aW9uIFhsKHIsZSl7bGV0IHQ9bmV3IHIuY29uc3RydWN0b3I7Zm9yKGxldCBpIG9mIE9iamVjdC5rZXlzKHJ8fHt9KSl7bGV0IG49cltpXTtpPT09InBhcmVudCImJnR5cGVvZiBuPT0ib2JqZWN0Ij9lJiYodFtpXT1lKTppPT09InNvdXJjZSJ8fGk9PT1udWxsP3RbaV09bjpBcnJheS5pc0FycmF5KG4pP3RbaV09bi5tYXAocz0+WGwocyx0KSk6aSE9PSJfYXV0b3ByZWZpeGVyUHJlZml4IiYmaSE9PSJfYXV0b3ByZWZpeGVyVmFsdWVzIiYmaSE9PSJwcm94eUNhY2hlIiYmKHR5cGVvZiBuPT0ib2JqZWN0IiYmbiE9PW51bGwmJihuPVhsKG4sdCkpLHRbaV09bil9cmV0dXJuIHR9dmFyIElzPWNsYXNze3N0YXRpYyBoYWNrKGUpe3JldHVybiB0aGlzLmhhY2tzfHwodGhpcy5oYWNrcz17fSksZS5uYW1lcy5tYXAodD0+KHRoaXMuaGFja3NbdF09ZSx0aGlzLmhhY2tzW3RdKSl9c3RhdGljIGxvYWQoZSx0LGkpe2xldCBuPXRoaXMuaGFja3MmJnRoaXMuaGFja3NbZV07cmV0dXJuIG4/bmV3IG4oZSx0LGkpOm5ldyB0aGlzKGUsdCxpKX1zdGF0aWMgY2xvbmUoZSx0KXtsZXQgaT1YbChlKTtmb3IobGV0IG4gaW4gdClpW25dPXRbbl07cmV0dXJuIGl9Y29uc3RydWN0b3IoZSx0LGkpe3RoaXMucHJlZml4ZXM9dCx0aGlzLm5hbWU9ZSx0aGlzLmFsbD1pfXBhcmVudFByZWZpeChlKXtsZXQgdDtyZXR1cm4gdHlwZW9mIGUuX2F1dG9wcmVmaXhlclByZWZpeCE9InVuZGVmaW5lZCI/dD1lLl9hdXRvcHJlZml4ZXJQcmVmaXg6ZS50eXBlPT09ImRlY2wiJiZlLnByb3BbMF09PT0iLSI/dD1EeS5wcmVmaXgoZS5wcm9wKTplLnR5cGU9PT0icm9vdCI/dD0hMTplLnR5cGU9PT0icnVsZSImJmUuc2VsZWN0b3IuaW5jbHVkZXMoIjotIikmJi86KC1cdystKS8udGVzdChlLnNlbGVjdG9yKT90PWUuc2VsZWN0b3IubWF0Y2goLzooLVx3Ky0pLylbMV06ZS50eXBlPT09ImF0cnVsZSImJmUubmFtZVswXT09PSItIj90PUR5LnByZWZpeChlLm5hbWUpOnQ9dGhpcy5wYXJlbnRQcmVmaXgoZS5wYXJlbnQpLGxPLnByZWZpeGVzKCkuaW5jbHVkZXModCl8fCh0PSExKSxlLl9hdXRvcHJlZml4ZXJQcmVmaXg9dCxlLl9hdXRvcHJlZml4ZXJQcmVmaXh9cHJvY2VzcyhlLHQpe2lmKCF0aGlzLmNoZWNrKGUpKXJldHVybjtsZXQgaT10aGlzLnBhcmVudFByZWZpeChlKSxuPXRoaXMucHJlZml4ZXMuZmlsdGVyKGE9PiFpfHxpPT09dU8ucmVtb3ZlTm90ZShhKSkscz1bXTtmb3IobGV0IGEgb2Ygbil0aGlzLmFkZChlLGEscy5jb25jYXQoW2FdKSx0KSYmcy5wdXNoKGEpO3JldHVybiBzfWNsb25lKGUsdCl7cmV0dXJuIElzLmNsb25lKGUsdCl9fTtxeS5leHBvcnRzPUlzfSk7dmFyIGo9eCgodCQsTXkpPT57dSgpO3ZhciBmTz13cigpLGNPPU10KCksJHk9X2UoKSxMeT1jbGFzcyBleHRlbmRzIGZPe2NoZWNrKCl7cmV0dXJuITB9cHJlZml4ZWQoZSx0KXtyZXR1cm4gdCtlfW5vcm1hbGl6ZShlKXtyZXR1cm4gZX1vdGhlclByZWZpeGVzKGUsdCl7Zm9yKGxldCBpIG9mIGNPLnByZWZpeGVzKCkpaWYoaSE9PXQmJmUuaW5jbHVkZXMoaSkpcmV0dXJuITA7cmV0dXJuITF9c2V0KGUsdCl7cmV0dXJuIGUucHJvcD10aGlzLnByZWZpeGVkKGUucHJvcCx0KSxlfW5lZWRDYXNjYWRlKGUpe3JldHVybiBlLl9hdXRvcHJlZml4ZXJDYXNjYWRlfHwoZS5fYXV0b3ByZWZpeGVyQ2FzY2FkZT10aGlzLmFsbC5vcHRpb25zLmNhc2NhZGUhPT0hMSYmZS5yYXcoImJlZm9yZSIpLmluY2x1ZGVzKGAKYCkpLGUuX2F1dG9wcmVmaXhlckNhc2NhZGV9bWF4UHJlZml4ZWQoZSx0KXtpZih0Ll9hdXRvcHJlZml4ZXJNYXgpcmV0dXJuIHQuX2F1dG9wcmVmaXhlck1heDtsZXQgaT0wO2ZvcihsZXQgbiBvZiBlKW49JHkucmVtb3ZlTm90ZShuKSxuLmxlbmd0aD5pJiYoaT1uLmxlbmd0aCk7cmV0dXJuIHQuX2F1dG9wcmVmaXhlck1heD1pLHQuX2F1dG9wcmVmaXhlck1heH1jYWxjQmVmb3JlKGUsdCxpPSIiKXtsZXQgcz10aGlzLm1heFByZWZpeGVkKGUsdCktJHkucmVtb3ZlTm90ZShpKS5sZW5ndGgsYT10LnJhdygiYmVmb3JlIik7cmV0dXJuIHM+MCYmKGErPUFycmF5KHMpLmZpbGwoIiAiKS5qb2luKCIiKSksYX1yZXN0b3JlQmVmb3JlKGUpe2xldCB0PWUucmF3KCJiZWZvcmUiKS5zcGxpdChgCmApLGk9dFt0Lmxlbmd0aC0xXTt0aGlzLmFsbC5ncm91cChlKS51cChuPT57bGV0IHM9bi5yYXcoImJlZm9yZSIpLnNwbGl0KGAKYCksYT1zW3MubGVuZ3RoLTFdO2EubGVuZ3RoPGkubGVuZ3RoJiYoaT1hKX0pLHRbdC5sZW5ndGgtMV09aSxlLnJhd3MuYmVmb3JlPXQuam9pbihgCmApfWluc2VydChlLHQsaSl7bGV0IG49dGhpcy5zZXQodGhpcy5jbG9uZShlKSx0KTtpZighKCFufHxlLnBhcmVudC5zb21lKGE9PmEucHJvcD09PW4ucHJvcCYmYS52YWx1ZT09PW4udmFsdWUpKSlyZXR1cm4gdGhpcy5uZWVkQ2FzY2FkZShlKSYmKG4ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9aXNBbHJlYWR5KGUsdCl7bGV0IGk9dGhpcy5hbGwuZ3JvdXAoZSkudXAobj0+bi5wcm9wPT09dCk7cmV0dXJuIGl8fChpPXRoaXMuYWxsLmdyb3VwKGUpLmRvd24obj0+bi5wcm9wPT09dCkpLGl9YWRkKGUsdCxpLG4pe2xldCBzPXRoaXMucHJlZml4ZWQoZS5wcm9wLHQpO2lmKCEodGhpcy5pc0FscmVhZHkoZSxzKXx8dGhpcy5vdGhlclByZWZpeGVzKGUudmFsdWUsdCkpKXJldHVybiB0aGlzLmluc2VydChlLHQsaSxuKX1wcm9jZXNzKGUsdCl7aWYoIXRoaXMubmVlZENhc2NhZGUoZSkpe3N1cGVyLnByb2Nlc3MoZSx0KTtyZXR1cm59bGV0IGk9c3VwZXIucHJvY2VzcyhlLHQpOyFpfHwhaS5sZW5ndGh8fCh0aGlzLnJlc3RvcmVCZWZvcmUoZSksZS5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlKSl9b2xkKGUsdCl7cmV0dXJuW3RoaXMucHJlZml4ZWQoZSx0KV19fTtNeS5leHBvcnRzPUx5fSk7dmFyIEJ5PXgoKHIkLE55KT0+e3UoKTtOeS5leHBvcnRzPWZ1bmN0aW9uIHIoZSl7cmV0dXJue211bDp0PT5uZXcgcihlKnQpLGRpdjp0PT5uZXcgcihlL3QpLHNpbXBsaWZ5OigpPT5uZXcgcihlKSx0b1N0cmluZzooKT0+ZS50b1N0cmluZygpfX19KTt2YXIgenk9eCgoaSQsankpPT57dSgpO3ZhciBwTz1CeSgpLGRPPXdyKCksWmw9X2UoKSxoTz0vKG1pbnxtYXgpLXJlc29sdXRpb25ccyo6XHMqXGQqXC4/XGQrKGRwcHh8ZHBjbXxkcGl8eCkvZ2ksbU89LyhtaW58bWF4KS1yZXNvbHV0aW9uKFxzKjpccyopKFxkKlwuP1xkKykoZHBweHxkcGNtfGRwaXx4KS9pLEZ5PWNsYXNzIGV4dGVuZHMgZE97cHJlZml4TmFtZShlLHQpe3JldHVybiBlPT09Ii1tb3otIj90KyItLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW8iOmUrdCsiLWRldmljZS1waXhlbC1yYXRpbyJ9cHJlZml4UXVlcnkoZSx0LGksbixzKXtyZXR1cm4gbj1uZXcgcE8obikscz09PSJkcGkiP249bi5kaXYoOTYpOnM9PT0iZHBjbSImJihuPW4ubXVsKDIuNTQpLmRpdig5NikpLG49bi5zaW1wbGlmeSgpLGU9PT0iLW8tIiYmKG49bi5uKyIvIituLmQpLHRoaXMucHJlZml4TmFtZShlLHQpK2krbn1jbGVhbihlKXtpZighdGhpcy5iYWQpe3RoaXMuYmFkPVtdO2ZvcihsZXQgdCBvZiB0aGlzLnByZWZpeGVzKXRoaXMuYmFkLnB1c2godGhpcy5wcmVmaXhOYW1lKHQsIm1pbiIpKSx0aGlzLmJhZC5wdXNoKHRoaXMucHJlZml4TmFtZSh0LCJtYXgiKSl9ZS5wYXJhbXM9WmwuZWRpdExpc3QoZS5wYXJhbXMsdD0+dC5maWx0ZXIoaT0+dGhpcy5iYWQuZXZlcnkobj0+IWkuaW5jbHVkZXMobikpKSl9cHJvY2VzcyhlKXtsZXQgdD10aGlzLnBhcmVudFByZWZpeChlKSxpPXQ/W3RdOnRoaXMucHJlZml4ZXM7ZS5wYXJhbXM9WmwuZWRpdExpc3QoZS5wYXJhbXMsKG4scyk9Pntmb3IobGV0IGEgb2Ygbil7aWYoIWEuaW5jbHVkZXMoIm1pbi1yZXNvbHV0aW9uIikmJiFhLmluY2x1ZGVzKCJtYXgtcmVzb2x1dGlvbiIpKXtzLnB1c2goYSk7Y29udGludWV9Zm9yKGxldCBvIG9mIGkpe2xldCBsPWEucmVwbGFjZShoTyxjPT57bGV0IGY9Yy5tYXRjaChtTyk7cmV0dXJuIHRoaXMucHJlZml4UXVlcnkobyxmWzFdLGZbMl0sZlszXSxmWzRdKX0pO3MucHVzaChsKX1zLnB1c2goYSl9cmV0dXJuIFpsLnVuaXEocyl9KX19O2p5LmV4cG9ydHM9Rnl9KTt2YXIgVnk9eCgobiQsVXkpPT57dSgpO3ZhciBKbD0iKCIuY2hhckNvZGVBdCgwKSxldT0iKSIuY2hhckNvZGVBdCgwKSxEcz0iJyIuY2hhckNvZGVBdCgwKSx0dT0nIicuY2hhckNvZGVBdCgwKSxydT0iXFwiLmNoYXJDb2RlQXQoMCksdnI9Ii8iLmNoYXJDb2RlQXQoMCksaXU9IiwiLmNoYXJDb2RlQXQoMCksbnU9IjoiLmNoYXJDb2RlQXQoMCkscXM9IioiLmNoYXJDb2RlQXQoMCksZ089InUiLmNoYXJDb2RlQXQoMCkseU89IlUiLmNoYXJDb2RlQXQoMCksYk89IisiLmNoYXJDb2RlQXQoMCksd089L15bYS1mMC05Py1dKyQvaTtVeS5leHBvcnRzPWZ1bmN0aW9uKHIpe2Zvcih2YXIgZT1bXSx0PXIsaSxuLHMsYSxvLGwsYyxmLGQ9MCxwPXQuY2hhckNvZGVBdChkKSxoPXQubGVuZ3RoLGI9W3tub2RlczplfV0sdj0wLHksdz0iIixrPSIiLFM9IiI7ZDxoOylpZihwPD0zMil7aT1kO2RvIGkrPTEscD10LmNoYXJDb2RlQXQoaSk7d2hpbGUocDw9MzIpO2E9dC5zbGljZShkLGkpLHM9ZVtlLmxlbmd0aC0xXSxwPT09ZXUmJnY/Uz1hOnMmJnMudHlwZT09PSJkaXYiPyhzLmFmdGVyPWEscy5zb3VyY2VFbmRJbmRleCs9YS5sZW5ndGgpOnA9PT1pdXx8cD09PW51fHxwPT09dnImJnQuY2hhckNvZGVBdChpKzEpIT09cXMmJigheXx8eSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZSE9PSJjYWxjIik/az1hOmUucHVzaCh7dHlwZToic3BhY2UiLHNvdXJjZUluZGV4OmQsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTphfSksZD1pfWVsc2UgaWYocD09PURzfHxwPT09dHUpe2k9ZCxuPXA9PT1Ecz8iJyI6JyInLGE9e3R5cGU6InN0cmluZyIsc291cmNlSW5kZXg6ZCxxdW90ZTpufTtkbyBpZihvPSExLGk9dC5pbmRleE9mKG4saSsxKSx+aSlmb3IobD1pO3QuY2hhckNvZGVBdChsLTEpPT09cnU7KWwtPTEsbz0hbztlbHNlIHQrPW4saT10Lmxlbmd0aC0xLGEudW5jbG9zZWQ9ITA7d2hpbGUobyk7YS52YWx1ZT10LnNsaWNlKGQrMSxpKSxhLnNvdXJjZUVuZEluZGV4PWEudW5jbG9zZWQ/aTppKzEsZS5wdXNoKGEpLGQ9aSsxLHA9dC5jaGFyQ29kZUF0KGQpfWVsc2UgaWYocD09PXZyJiZ0LmNoYXJDb2RlQXQoZCsxKT09PXFzKWk9dC5pbmRleE9mKCIqLyIsZCksYT17dHlwZToiY29tbWVudCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDppKzJ9LGk9PT0tMSYmKGEudW5jbG9zZWQ9ITAsaT10Lmxlbmd0aCxhLnNvdXJjZUVuZEluZGV4PWkpLGEudmFsdWU9dC5zbGljZShkKzIsaSksZS5wdXNoKGEpLGQ9aSsyLHA9dC5jaGFyQ29kZUF0KGQpO2Vsc2UgaWYoKHA9PT12cnx8cD09PXFzKSYmeSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJjYWxjIilhPXRbZF0sZS5wdXNoKHt0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLWsubGVuZ3RoLHNvdXJjZUVuZEluZGV4OmQrYS5sZW5ndGgsdmFsdWU6YX0pLGQrPTEscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZihwPT09dnJ8fHA9PT1pdXx8cD09PW51KWE9dFtkXSxlLnB1c2goe3R5cGU6ImRpdiIsc291cmNlSW5kZXg6ZC1rLmxlbmd0aCxzb3VyY2VFbmRJbmRleDpkK2EubGVuZ3RoLHZhbHVlOmEsYmVmb3JlOmssYWZ0ZXI6IiJ9KSxrPSIiLGQrPTEscD10LmNoYXJDb2RlQXQoZCk7ZWxzZSBpZihKbD09PXApe2k9ZDtkbyBpKz0xLHA9dC5jaGFyQ29kZUF0KGkpO3doaWxlKHA8PTMyKTtpZihmPWQsYT17dHlwZToiZnVuY3Rpb24iLHNvdXJjZUluZGV4OmQtdy5sZW5ndGgsdmFsdWU6dyxiZWZvcmU6dC5zbGljZShmKzEsaSl9LGQ9aSx3PT09InVybCImJnAhPT1EcyYmcCE9PXR1KXtpLT0xO2RvIGlmKG89ITEsaT10LmluZGV4T2YoIikiLGkrMSksfmkpZm9yKGw9aTt0LmNoYXJDb2RlQXQobC0xKT09PXJ1OylsLT0xLG89IW87ZWxzZSB0Kz0iKSIsaT10Lmxlbmd0aC0xLGEudW5jbG9zZWQ9ITA7d2hpbGUobyk7Yz1pO2RvIGMtPTEscD10LmNoYXJDb2RlQXQoYyk7d2hpbGUocDw9MzIpO2Y8Yz8oZCE9PWMrMT9hLm5vZGVzPVt7dHlwZToid29yZCIsc291cmNlSW5kZXg6ZCxzb3VyY2VFbmRJbmRleDpjKzEsdmFsdWU6dC5zbGljZShkLGMrMSl9XTphLm5vZGVzPVtdLGEudW5jbG9zZWQmJmMrMSE9PWk/KGEuYWZ0ZXI9IiIsYS5ub2Rlcy5wdXNoKHt0eXBlOiJzcGFjZSIsc291cmNlSW5kZXg6YysxLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6dC5zbGljZShjKzEsaSl9KSk6KGEuYWZ0ZXI9dC5zbGljZShjKzEsaSksYS5zb3VyY2VFbmRJbmRleD1pKSk6KGEuYWZ0ZXI9IiIsYS5ub2Rlcz1bXSksZD1pKzEsYS5zb3VyY2VFbmRJbmRleD1hLnVuY2xvc2VkP2k6ZCxwPXQuY2hhckNvZGVBdChkKSxlLnB1c2goYSl9ZWxzZSB2Kz0xLGEuYWZ0ZXI9IiIsYS5zb3VyY2VFbmRJbmRleD1kKzEsZS5wdXNoKGEpLGIucHVzaChhKSxlPWEubm9kZXM9W10seT1hO3c9IiJ9ZWxzZSBpZihldT09PXAmJnYpZCs9MSxwPXQuY2hhckNvZGVBdChkKSx5LmFmdGVyPVMseS5zb3VyY2VFbmRJbmRleCs9Uy5sZW5ndGgsUz0iIix2LT0xLGJbYi5sZW5ndGgtMV0uc291cmNlRW5kSW5kZXg9ZCxiLnBvcCgpLHk9Ylt2XSxlPXkubm9kZXM7ZWxzZXtpPWQ7ZG8gcD09PXJ1JiYoaSs9MSksaSs9MSxwPXQuY2hhckNvZGVBdChpKTt3aGlsZShpPGgmJiEocDw9MzJ8fHA9PT1Ec3x8cD09PXR1fHxwPT09aXV8fHA9PT1udXx8cD09PXZyfHxwPT09Smx8fHA9PT1xcyYmeSYmeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJjYWxjInx8cD09PXZyJiZ5LnR5cGU9PT0iZnVuY3Rpb24iJiZ5LnZhbHVlPT09ImNhbGMifHxwPT09ZXUmJnYpKTthPXQuc2xpY2UoZCxpKSxKbD09PXA/dz1hOihnTz09PWEuY2hhckNvZGVBdCgwKXx8eU89PT1hLmNoYXJDb2RlQXQoMCkpJiZiTz09PWEuY2hhckNvZGVBdCgxKSYmd08udGVzdChhLnNsaWNlKDIpKT9lLnB1c2goe3R5cGU6InVuaWNvZGUtcmFuZ2UiLHNvdXJjZUluZGV4OmQsc291cmNlRW5kSW5kZXg6aSx2YWx1ZTphfSk6ZS5wdXNoKHt0eXBlOiJ3b3JkIixzb3VyY2VJbmRleDpkLHNvdXJjZUVuZEluZGV4OmksdmFsdWU6YX0pLGQ9aX1mb3IoZD1iLmxlbmd0aC0xO2Q7ZC09MSliW2RdLnVuY2xvc2VkPSEwLGJbZF0uc291cmNlRW5kSW5kZXg9dC5sZW5ndGg7cmV0dXJuIGJbMF0ubm9kZXN9fSk7dmFyIFd5PXgoKHMkLEh5KT0+e3UoKTtIeS5leHBvcnRzPWZ1bmN0aW9uIHIoZSx0LGkpe3ZhciBuLHMsYSxvO2ZvcihuPTAscz1lLmxlbmd0aDtuPHM7bis9MSlhPWVbbl0saXx8KG89dChhLG4sZSkpLG8hPT0hMSYmYS50eXBlPT09ImZ1bmN0aW9uIiYmQXJyYXkuaXNBcnJheShhLm5vZGVzKSYmcihhLm5vZGVzLHQsaSksaSYmdChhLG4sZSl9fSk7dmFyIEt5PXgoKGEkLFl5KT0+e3UoKTtmdW5jdGlvbiBHeShyLGUpe3ZhciB0PXIudHlwZSxpPXIudmFsdWUsbixzO3JldHVybiBlJiYocz1lKHIpKSE9PXZvaWQgMD9zOnQ9PT0id29yZCJ8fHQ9PT0ic3BhY2UiP2k6dD09PSJzdHJpbmciPyhuPXIucXVvdGV8fCIiLG4raSsoci51bmNsb3NlZD8iIjpuKSk6dD09PSJjb21tZW50Ij8iLyoiK2krKHIudW5jbG9zZWQ/IiI6IiovIik6dD09PSJkaXYiPyhyLmJlZm9yZXx8IiIpK2krKHIuYWZ0ZXJ8fCIiKTpBcnJheS5pc0FycmF5KHIubm9kZXMpPyhuPVF5KHIubm9kZXMsZSksdCE9PSJmdW5jdGlvbiI/bjppKyIoIisoci5iZWZvcmV8fCIiKStuKyhyLmFmdGVyfHwiIikrKHIudW5jbG9zZWQ/IiI6IikiKSk6aX1mdW5jdGlvbiBReShyLGUpe3ZhciB0LGk7aWYoQXJyYXkuaXNBcnJheShyKSl7Zm9yKHQ9IiIsaT1yLmxlbmd0aC0xO35pO2ktPTEpdD1HeShyW2ldLGUpK3Q7cmV0dXJuIHR9cmV0dXJuIEd5KHIsZSl9WXkuZXhwb3J0cz1ReX0pO3ZhciBaeT14KChvJCxYeSk9Pnt1KCk7dmFyICRzPSItIi5jaGFyQ29kZUF0KDApLExzPSIrIi5jaGFyQ29kZUF0KDApLHN1PSIuIi5jaGFyQ29kZUF0KDApLHZPPSJlIi5jaGFyQ29kZUF0KDApLHhPPSJFIi5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIGtPKHIpe3ZhciBlPXIuY2hhckNvZGVBdCgwKSx0O2lmKGU9PT1Mc3x8ZT09PSRzKXtpZih0PXIuY2hhckNvZGVBdCgxKSx0Pj00OCYmdDw9NTcpcmV0dXJuITA7dmFyIGk9ci5jaGFyQ29kZUF0KDIpO3JldHVybiB0PT09c3UmJmk+PTQ4JiZpPD01N31yZXR1cm4gZT09PXN1Pyh0PXIuY2hhckNvZGVBdCgxKSx0Pj00OCYmdDw9NTcpOmU+PTQ4JiZlPD01N31YeS5leHBvcnRzPWZ1bmN0aW9uKHIpe3ZhciBlPTAsdD1yLmxlbmd0aCxpLG4scztpZih0PT09MHx8IWtPKHIpKXJldHVybiExO2ZvcihpPXIuY2hhckNvZGVBdChlKSwoaT09PUxzfHxpPT09JHMpJiZlKys7ZTx0JiYoaT1yLmNoYXJDb2RlQXQoZSksIShpPDQ4fHxpPjU3KSk7KWUrPTE7aWYoaT1yLmNoYXJDb2RlQXQoZSksbj1yLmNoYXJDb2RlQXQoZSsxKSxpPT09c3UmJm4+PTQ4JiZuPD01Nylmb3IoZSs9MjtlPHQmJihpPXIuY2hhckNvZGVBdChlKSwhKGk8NDh8fGk+NTcpKTspZSs9MTtpZihpPXIuY2hhckNvZGVBdChlKSxuPXIuY2hhckNvZGVBdChlKzEpLHM9ci5jaGFyQ29kZUF0KGUrMiksKGk9PT12T3x8aT09PXhPKSYmKG4+PTQ4JiZuPD01N3x8KG49PT1Mc3x8bj09PSRzKSYmcz49NDgmJnM8PTU3KSlmb3IoZSs9bj09PUxzfHxuPT09JHM/MzoyO2U8dCYmKGk9ci5jaGFyQ29kZUF0KGUpLCEoaTw0OHx8aT41NykpOyllKz0xO3JldHVybntudW1iZXI6ci5zbGljZSgwLGUpLHVuaXQ6ci5zbGljZShlKX19fSk7dmFyIE1zPXgoKGwkLHRiKT0+e3UoKTt2YXIgU089VnkoKSxKeT1XeSgpLGViPUt5KCk7ZnVuY3Rpb24gTnQocil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBOdD8odGhpcy5ub2Rlcz1TTyhyKSx0aGlzKTpuZXcgTnQocil9TnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5ub2Rlcyk/ZWIodGhpcy5ub2Rlcyk6IiJ9O050LnByb3RvdHlwZS53YWxrPWZ1bmN0aW9uKHIsZSl7cmV0dXJuIEp5KHRoaXMubm9kZXMscixlKSx0aGlzfTtOdC51bml0PVp5KCk7TnQud2Fsaz1KeTtOdC5zdHJpbmdpZnk9ZWI7dGIuZXhwb3J0cz1OdH0pO3ZhciBhYj14KCh1JCxzYik9Pnt1KCk7dmFye2xpc3Q6QU99PSRlKCkscmI9TXMoKSxDTz1NdCgpLGliPU5pKCksbmI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcm9wcz1bInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9uLXByb3BlcnR5Il0sdGhpcy5wcmVmaXhlcz1lfWFkZChlLHQpe2xldCBpLG4scz10aGlzLnByZWZpeGVzLmFkZFtlLnByb3BdLGE9dGhpcy5ydWxlVmVuZG9yUHJlZml4ZXMoZSksbz1hfHxzJiZzLnByZWZpeGVzfHxbXSxsPXRoaXMucGFyc2UoZS52YWx1ZSksYz1sLm1hcChoPT50aGlzLmZpbmRQcm9wKGgpKSxmPVtdO2lmKGMuc29tZShoPT5oWzBdPT09Ii0iKSlyZXR1cm47Zm9yKGxldCBoIG9mIGwpe2lmKG49dGhpcy5maW5kUHJvcChoKSxuWzBdPT09Ii0iKWNvbnRpbnVlO2xldCBiPXRoaXMucHJlZml4ZXMuYWRkW25dO2lmKCEoIWJ8fCFiLnByZWZpeGVzKSlmb3IoaSBvZiBiLnByZWZpeGVzKXtpZihhJiYhYS5zb21lKHk9PmkuaW5jbHVkZXMoeSkpKWNvbnRpbnVlO2xldCB2PXRoaXMucHJlZml4ZXMucHJlZml4ZWQobixpKTt2IT09Ii1tcy10cmFuc2Zvcm0iJiYhYy5pbmNsdWRlcyh2KSYmKHRoaXMuZGlzYWJsZWQobixpKXx8Zi5wdXNoKHRoaXMuY2xvbmUobix2LGgpKSl9fWw9bC5jb25jYXQoZik7bGV0IGQ9dGhpcy5zdHJpbmdpZnkobCkscD10aGlzLnN0cmluZ2lmeSh0aGlzLmNsZWFuRnJvbVVucHJlZml4ZWQobCwiLXdlYmtpdC0iKSk7aWYoby5pbmNsdWRlcygiLXdlYmtpdC0iKSYmdGhpcy5jbG9uZUJlZm9yZShlLGAtd2Via2l0LSR7ZS5wcm9wfWAscCksdGhpcy5jbG9uZUJlZm9yZShlLGUucHJvcCxwKSxvLmluY2x1ZGVzKCItby0iKSl7bGV0IGg9dGhpcy5zdHJpbmdpZnkodGhpcy5jbGVhbkZyb21VbnByZWZpeGVkKGwsIi1vLSIpKTt0aGlzLmNsb25lQmVmb3JlKGUsYC1vLSR7ZS5wcm9wfWAsaCl9Zm9yKGkgb2YgbylpZihpIT09Ii13ZWJraXQtIiYmaSE9PSItby0iKXtsZXQgaD10aGlzLnN0cmluZ2lmeSh0aGlzLmNsZWFuT3RoZXJQcmVmaXhlcyhsLGkpKTt0aGlzLmNsb25lQmVmb3JlKGUsaStlLnByb3AsaCl9ZCE9PWUudmFsdWUmJiF0aGlzLmFscmVhZHkoZSxlLnByb3AsZCkmJih0aGlzLmNoZWNrRm9yV2FybmluZyh0LGUpLGUuY2xvbmVCZWZvcmUoKSxlLnZhbHVlPWQpfWZpbmRQcm9wKGUpe2xldCB0PWVbMF0udmFsdWU7aWYoL15cZC8udGVzdCh0KSl7Zm9yKGxldFtpLG5db2YgZS5lbnRyaWVzKCkpaWYoaSE9PTAmJm4udHlwZT09PSJ3b3JkIilyZXR1cm4gbi52YWx1ZX1yZXR1cm4gdH1hbHJlYWR5KGUsdCxpKXtyZXR1cm4gZS5wYXJlbnQuc29tZShuPT5uLnByb3A9PT10JiZuLnZhbHVlPT09aSl9Y2xvbmVCZWZvcmUoZSx0LGkpe3RoaXMuYWxyZWFkeShlLHQsaSl8fGUuY2xvbmVCZWZvcmUoe3Byb3A6dCx2YWx1ZTppfSl9Y2hlY2tGb3JXYXJuaW5nKGUsdCl7aWYodC5wcm9wIT09InRyYW5zaXRpb24tcHJvcGVydHkiKXJldHVybjtsZXQgaT0hMSxuPSExO3QucGFyZW50LmVhY2gocz0+e2lmKHMudHlwZSE9PSJkZWNsInx8cy5wcm9wLmluZGV4T2YoInRyYW5zaXRpb24tIikhPT0wKXJldHVybjtsZXQgYT1BTy5jb21tYShzLnZhbHVlKTtpZihzLnByb3A9PT0idHJhbnNpdGlvbi1wcm9wZXJ0eSIpe2EuZm9yRWFjaChvPT57bGV0IGw9dGhpcy5wcmVmaXhlcy5hZGRbb107bCYmbC5wcmVmaXhlcyYmbC5wcmVmaXhlcy5sZW5ndGg+MCYmKGk9ITApfSk7cmV0dXJufXJldHVybiBuPW58fGEubGVuZ3RoPjEsITF9KSxpJiZuJiZ0Lndhcm4oZSwiUmVwbGFjZSB0cmFuc2l0aW9uLXByb3BlcnR5IHRvIHRyYW5zaXRpb24sIGJlY2F1c2UgQXV0b3ByZWZpeGVyIGNvdWxkIG5vdCBzdXBwb3J0IGFueSBjYXNlcyBvZiB0cmFuc2l0aW9uLXByb3BlcnR5IGFuZCBvdGhlciB0cmFuc2l0aW9uLSoiKX1yZW1vdmUoZSl7bGV0IHQ9dGhpcy5wYXJzZShlLnZhbHVlKTt0PXQuZmlsdGVyKGE9PntsZXQgbz10aGlzLnByZWZpeGVzLnJlbW92ZVt0aGlzLmZpbmRQcm9wKGEpXTtyZXR1cm4hb3x8IW8ucmVtb3ZlfSk7bGV0IGk9dGhpcy5zdHJpbmdpZnkodCk7aWYoZS52YWx1ZT09PWkpcmV0dXJuO2lmKHQubGVuZ3RoPT09MCl7ZS5yZW1vdmUoKTtyZXR1cm59bGV0IG49ZS5wYXJlbnQuc29tZShhPT5hLnByb3A9PT1lLnByb3AmJmEudmFsdWU9PT1pKSxzPWUucGFyZW50LnNvbWUoYT0+YSE9PWUmJmEucHJvcD09PWUucHJvcCYmYS52YWx1ZS5sZW5ndGg+aS5sZW5ndGgpO2lmKG58fHMpe2UucmVtb3ZlKCk7cmV0dXJufWUudmFsdWU9aX1wYXJzZShlKXtsZXQgdD1yYihlKSxpPVtdLG49W107Zm9yKGxldCBzIG9mIHQubm9kZXMpbi5wdXNoKHMpLHMudHlwZT09PSJkaXYiJiZzLnZhbHVlPT09IiwiJiYoaS5wdXNoKG4pLG49W10pO3JldHVybiBpLnB1c2gobiksaS5maWx0ZXIocz0+cy5sZW5ndGg+MCl9c3RyaW5naWZ5KGUpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iIjtsZXQgdD1bXTtmb3IobGV0IGkgb2YgZSlpW2kubGVuZ3RoLTFdLnR5cGUhPT0iZGl2IiYmaS5wdXNoKHRoaXMuZGl2KGUpKSx0PXQuY29uY2F0KGkpO3JldHVybiB0WzBdLnR5cGU9PT0iZGl2IiYmKHQ9dC5zbGljZSgxKSksdFt0Lmxlbmd0aC0xXS50eXBlPT09ImRpdiImJih0PXQuc2xpY2UoMCwtMisxfHx2b2lkIDApKSxyYi5zdHJpbmdpZnkoe25vZGVzOnR9KX1jbG9uZShlLHQsaSl7bGV0IG49W10scz0hMTtmb3IobGV0IGEgb2YgaSkhcyYmYS50eXBlPT09IndvcmQiJiZhLnZhbHVlPT09ZT8obi5wdXNoKHt0eXBlOiJ3b3JkIix2YWx1ZTp0fSkscz0hMCk6bi5wdXNoKGEpO3JldHVybiBufWRpdihlKXtmb3IobGV0IHQgb2YgZSlmb3IobGV0IGkgb2YgdClpZihpLnR5cGU9PT0iZGl2IiYmaS52YWx1ZT09PSIsIilyZXR1cm4gaTtyZXR1cm57dHlwZToiZGl2Iix2YWx1ZToiLCIsYWZ0ZXI6IiAifX1jbGVhbk90aGVyUHJlZml4ZXMoZSx0KXtyZXR1cm4gZS5maWx0ZXIoaT0+e2xldCBuPWliLnByZWZpeCh0aGlzLmZpbmRQcm9wKGkpKTtyZXR1cm4gbj09PSIifHxuPT09dH0pfWNsZWFuRnJvbVVucHJlZml4ZWQoZSx0KXtsZXQgaT1lLm1hcChzPT50aGlzLmZpbmRQcm9wKHMpKS5maWx0ZXIocz0+cy5zbGljZSgwLHQubGVuZ3RoKT09PXQpLm1hcChzPT50aGlzLnByZWZpeGVzLnVucHJlZml4ZWQocykpLG49W107Zm9yKGxldCBzIG9mIGUpe2xldCBhPXRoaXMuZmluZFByb3Aocyksbz1pYi5wcmVmaXgoYSk7IWkuaW5jbHVkZXMoYSkmJihvPT09dHx8bz09PSIiKSYmbi5wdXNoKHMpfXJldHVybiBufWRpc2FibGVkKGUsdCl7bGV0IGk9WyJvcmRlciIsImp1c3RpZnktY29udGVudCIsImFsaWduLXNlbGYiLCJhbGlnbi1jb250ZW50Il07aWYoZS5pbmNsdWRlcygiZmxleCIpfHxpLmluY2x1ZGVzKGUpKXtpZih0aGlzLnByZWZpeGVzLm9wdGlvbnMuZmxleGJveD09PSExKXJldHVybiEwO2lmKHRoaXMucHJlZml4ZXMub3B0aW9ucy5mbGV4Ym94PT09Im5vLTIwMDkiKXJldHVybiB0LmluY2x1ZGVzKCIyMDA5Iil9fXJ1bGVWZW5kb3JQcmVmaXhlcyhlKXtsZXR7cGFyZW50OnR9PWU7aWYodC50eXBlIT09InJ1bGUiKXJldHVybiExO2lmKCF0LnNlbGVjdG9yLmluY2x1ZGVzKCI6LSIpKXJldHVybiExO2xldCBpPUNPLnByZWZpeGVzKCkuZmlsdGVyKG49PnQuc2VsZWN0b3IuaW5jbHVkZXMoIjoiK24pKTtyZXR1cm4gaS5sZW5ndGg+MD9pOiExfX07c2IuZXhwb3J0cz1uYn0pO3ZhciB4cj14KChmJCxsYik9Pnt1KCk7dmFyIF9PPV9lKCksb2I9Y2xhc3N7Y29uc3RydWN0b3IoZSx0LGksbil7dGhpcy51bnByZWZpeGVkPWUsdGhpcy5wcmVmaXhlZD10LHRoaXMuc3RyaW5nPWl8fHQsdGhpcy5yZWdleHA9bnx8X08ucmVnZXhwKHQpfWNoZWNrKGUpe3JldHVybiBlLmluY2x1ZGVzKHRoaXMuc3RyaW5nKT8hIWUubWF0Y2godGhpcy5yZWdleHApOiExfX07bGIuZXhwb3J0cz1vYn0pO3ZhciBIZT14KChjJCxmYik9Pnt1KCk7dmFyIEVPPXdyKCksT089eHIoKSxUTz1OaSgpLFJPPV9lKCksdWI9Y2xhc3MgZXh0ZW5kcyBFT3tzdGF0aWMgc2F2ZShlLHQpe2xldCBpPXQucHJvcCxuPVtdO2ZvcihsZXQgcyBpbiB0Ll9hdXRvcHJlZml4ZXJWYWx1ZXMpe2xldCBhPXQuX2F1dG9wcmVmaXhlclZhbHVlc1tzXTtpZihhPT09dC52YWx1ZSljb250aW51ZTtsZXQgbyxsPVRPLnByZWZpeChpKTtpZihsPT09Ii1waWUtIiljb250aW51ZTtpZihsPT09cyl7bz10LnZhbHVlPWEsbi5wdXNoKG8pO2NvbnRpbnVlfWxldCBjPWUucHJlZml4ZWQoaSxzKSxmPXQucGFyZW50O2lmKCFmLmV2ZXJ5KGI9PmIucHJvcCE9PWMpKXtuLnB1c2gobyk7Y29udGludWV9bGV0IGQ9YS5yZXBsYWNlKC9ccysvLCIgIik7aWYoZi5zb21lKGI9PmIucHJvcD09PXQucHJvcCYmYi52YWx1ZS5yZXBsYWNlKC9ccysvLCIgIik9PT1kKSl7bi5wdXNoKG8pO2NvbnRpbnVlfWxldCBoPXRoaXMuY2xvbmUodCx7dmFsdWU6YX0pO289dC5wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsaCksbi5wdXNoKG8pfXJldHVybiBufWNoZWNrKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIHQuaW5jbHVkZXModGhpcy5uYW1lKT8hIXQubWF0Y2godGhpcy5yZWdleHAoKSk6ITF9cmVnZXhwKCl7cmV0dXJuIHRoaXMucmVnZXhwQ2FjaGV8fCh0aGlzLnJlZ2V4cENhY2hlPVJPLnJlZ2V4cCh0aGlzLm5hbWUpKX1yZXBsYWNlKGUsdCl7cmV0dXJuIGUucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLGAkMSR7dH0kMmApfXZhbHVlKGUpe3JldHVybiBlLnJhd3MudmFsdWUmJmUucmF3cy52YWx1ZS52YWx1ZT09PWUudmFsdWU/ZS5yYXdzLnZhbHVlLnJhdzplLnZhbHVlfWFkZChlLHQpe2UuX2F1dG9wcmVmaXhlclZhbHVlc3x8KGUuX2F1dG9wcmVmaXhlclZhbHVlcz17fSk7bGV0IGk9ZS5fYXV0b3ByZWZpeGVyVmFsdWVzW3RdfHx0aGlzLnZhbHVlKGUpLG47ZG8gaWYobj1pLGk9dGhpcy5yZXBsYWNlKGksdCksaT09PSExKXJldHVybjt3aGlsZShpIT09bik7ZS5fYXV0b3ByZWZpeGVyVmFsdWVzW3RdPWl9b2xkKGUpe3JldHVybiBuZXcgT08odGhpcy5uYW1lLGUrdGhpcy5uYW1lKX19O2ZiLmV4cG9ydHM9dWJ9KTt2YXIgQnQ9eCgocCQsY2IpPT57dSgpO2NiLmV4cG9ydHM9e319KTt2YXIgb3U9eCgoZCQsaGIpPT57dSgpO3ZhciBwYj1NcygpLFBPPUhlKCksSU89QnQoKS5pbnNlcnRBcmVhcyxETz0vKF58W14tXSlsaW5lYXItZ3JhZGllbnRcKFxzKih0b3B8bGVmdHxyaWdodHxib3R0b20pL2kscU89LyhefFteLV0pcmFkaWFsLWdyYWRpZW50XChccypcZCsoXHcqfCUpXHMrXGQrKFx3KnwlKVxzKiwvaSwkTz0vKCFccyopP2F1dG9wcmVmaXhlcjpccyppZ25vcmVccytuZXh0L2ksTE89LyghXHMqKT9hdXRvcHJlZml4ZXJccypncmlkOlxzKihvbnxvZmZ8KG5vLSk/YXV0b3BsYWNlKS9pLE1PPVsid2lkdGgiLCJoZWlnaHQiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCIsImlubGluZS1zaXplIiwibWluLWlubGluZS1zaXplIiwibWF4LWlubGluZS1zaXplIiwiYmxvY2stc2l6ZSIsIm1pbi1ibG9jay1zaXplIiwibWF4LWJsb2NrLXNpemUiXTtmdW5jdGlvbiBhdShyKXtyZXR1cm4gci5wYXJlbnQuc29tZShlPT5lLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZSJ8fGUucHJvcD09PSJncmlkLXRlbXBsYXRlLWFyZWFzIil9ZnVuY3Rpb24gTk8ocil7bGV0IGU9ci5wYXJlbnQuc29tZShpPT5pLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1yb3dzIiksdD1yLnBhcmVudC5zb21lKGk9PmkucHJvcD09PSJncmlkLXRlbXBsYXRlLWNvbHVtbnMiKTtyZXR1cm4gZSYmdH12YXIgZGI9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5wcmVmaXhlcz1lfWFkZChlLHQpe2xldCBpPXRoaXMucHJlZml4ZXMuYWRkWyJAcmVzb2x1dGlvbiJdLG49dGhpcy5wcmVmaXhlcy5hZGRbIkBrZXlmcmFtZXMiXSxzPXRoaXMucHJlZml4ZXMuYWRkWyJAdmlld3BvcnQiXSxhPXRoaXMucHJlZml4ZXMuYWRkWyJAc3VwcG9ydHMiXTtlLndhbGtBdFJ1bGVzKGY9PntpZihmLm5hbWU9PT0ia2V5ZnJhbWVzIil7aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gbiYmbi5wcm9jZXNzKGYpfWVsc2UgaWYoZi5uYW1lPT09InZpZXdwb3J0Iil7aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gcyYmcy5wcm9jZXNzKGYpfWVsc2UgaWYoZi5uYW1lPT09InN1cHBvcnRzIil7aWYodGhpcy5wcmVmaXhlcy5vcHRpb25zLnN1cHBvcnRzIT09ITEmJiF0aGlzLmRpc2FibGVkKGYsdCkpcmV0dXJuIGEucHJvY2VzcyhmKX1lbHNlIGlmKGYubmFtZT09PSJtZWRpYSImJmYucGFyYW1zLmluY2x1ZGVzKCItcmVzb2x1dGlvbiIpJiYhdGhpcy5kaXNhYmxlZChmLHQpKXJldHVybiBpJiZpLnByb2Nlc3MoZil9KSxlLndhbGtSdWxlcyhmPT57aWYoIXRoaXMuZGlzYWJsZWQoZix0KSlyZXR1cm4gdGhpcy5wcmVmaXhlcy5hZGQuc2VsZWN0b3JzLm1hcChkPT5kLnByb2Nlc3MoZix0KSl9KTtmdW5jdGlvbiBvKGYpe3JldHVybiBmLnBhcmVudC5ub2Rlcy5zb21lKGQ9PntpZihkLnR5cGUhPT0iZGVjbCIpcmV0dXJuITE7bGV0IHA9ZC5wcm9wPT09ImRpc3BsYXkiJiYvKGlubGluZS0pP2dyaWQvLnRlc3QoZC52YWx1ZSksaD1kLnByb3Auc3RhcnRzV2l0aCgiZ3JpZC10ZW1wbGF0ZSIpLGI9L15ncmlkLShbQS16XSstKT9nYXAvLnRlc3QoZC5wcm9wKTtyZXR1cm4gcHx8aHx8Yn0pfWZ1bmN0aW9uIGwoZil7cmV0dXJuIGYucGFyZW50LnNvbWUoZD0+ZC5wcm9wPT09ImRpc3BsYXkiJiYvKGlubGluZS0pP2ZsZXgvLnRlc3QoZC52YWx1ZSkpfWxldCBjPXRoaXMuZ3JpZFN0YXR1cyhlLHQpJiZ0aGlzLnByZWZpeGVzLmFkZFsiZ3JpZC1hcmVhIl0mJnRoaXMucHJlZml4ZXMuYWRkWyJncmlkLWFyZWEiXS5wcmVmaXhlcztyZXR1cm4gZS53YWxrRGVjbHMoZj0+e2lmKHRoaXMuZGlzYWJsZWREZWNsKGYsdCkpcmV0dXJuO2xldCBkPWYucGFyZW50LHA9Zi5wcm9wLGg9Zi52YWx1ZTtpZihwPT09ImdyaWQtcm93LXNwYW4iKXt0Lndhcm4oImdyaWQtcm93LXNwYW4gaXMgbm90IHBhcnQgb2YgZmluYWwgR3JpZCBMYXlvdXQuIFVzZSBncmlkLXJvdy4iLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImdyaWQtY29sdW1uLXNwYW4iKXt0Lndhcm4oImdyaWQtY29sdW1uLXNwYW4gaXMgbm90IHBhcnQgb2YgZmluYWwgR3JpZCBMYXlvdXQuIFVzZSBncmlkLWNvbHVtbi4iLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImRpc3BsYXkiJiZoPT09ImJveCIpe3Qud2FybigiWW91IHNob3VsZCB3cml0ZSBkaXNwbGF5OiBmbGV4IGJ5IGZpbmFsIHNwZWMgaW5zdGVhZCBvZiBkaXNwbGF5OiBib3giLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09InRleHQtZW1waGFzaXMtcG9zaXRpb24iKShoPT09InVuZGVyInx8aD09PSJvdmVyIikmJnQud2FybigiWW91IHNob3VsZCB1c2UgMiB2YWx1ZXMgZm9yIHRleHQtZW1waGFzaXMtcG9zaXRpb24gRm9yIGV4YW1wbGUsIGB1bmRlciBsZWZ0YCBpbnN0ZWFkIG9mIGp1c3QgYHVuZGVyYC4iLHtub2RlOmZ9KTtlbHNlIGlmKC9eKGFsaWdufGp1c3RpZnl8cGxhY2UpLShpdGVtc3xjb250ZW50KSQvLnRlc3QocCkmJmwoZikpKGg9PT0ic3RhcnQifHxoPT09ImVuZCIpJiZ0Lndhcm4oYCR7aH0gdmFsdWUgaGFzIG1peGVkIHN1cHBvcnQsIGNvbnNpZGVyIHVzaW5nIGZsZXgtJHtofSBpbnN0ZWFkYCx7bm9kZTpmfSk7ZWxzZSBpZihwPT09InRleHQtZGVjb3JhdGlvbi1za2lwIiYmaD09PSJpbmsiKXQud2FybigiUmVwbGFjZSB0ZXh0LWRlY29yYXRpb24tc2tpcDogaW5rIHRvIHRleHQtZGVjb3JhdGlvbi1za2lwLWluazogYXV0bywgYmVjYXVzZSBzcGVjIGhhZCBiZWVuIGNoYW5nZWQiLHtub2RlOmZ9KTtlbHNle2lmKGMmJnRoaXMuZ3JpZFN0YXR1cyhmLHQpKWlmKGYudmFsdWU9PT0ic3ViZ3JpZCImJnQud2FybigiSUUgZG9lcyBub3Qgc3VwcG9ydCBzdWJncmlkIix7bm9kZTpmfSksL14oYWxpZ258anVzdGlmeXxwbGFjZSktaXRlbXMkLy50ZXN0KHApJiZvKGYpKXtsZXQgdj1wLnJlcGxhY2UoIi1pdGVtcyIsIi1zZWxmIik7dC53YXJuKGBJRSBkb2VzIG5vdCBzdXBwb3J0ICR7cH0gb24gZ3JpZCBjb250YWluZXJzLiBUcnkgdXNpbmcgJHt2fSBvbiBjaGlsZCBlbGVtZW50cyBpbnN0ZWFkOiAke2YucGFyZW50LnNlbGVjdG9yfSA+ICogeyAke3Z9OiAke2YudmFsdWV9IH1gLHtub2RlOmZ9KX1lbHNlIGlmKC9eKGFsaWdufGp1c3RpZnl8cGxhY2UpLWNvbnRlbnQkLy50ZXN0KHApJiZvKGYpKXQud2FybihgSUUgZG9lcyBub3Qgc3VwcG9ydCAke2YucHJvcH0gb24gZ3JpZCBjb250YWluZXJzYCx7bm9kZTpmfSk7ZWxzZSBpZihwPT09ImRpc3BsYXkiJiZmLnZhbHVlPT09ImNvbnRlbnRzIil7dC53YXJuKCJQbGVhc2UgZG8gbm90IHVzZSBkaXNwbGF5OiBjb250ZW50czsgaWYgeW91IGhhdmUgZ3JpZCBzZXR0aW5nIGVuYWJsZWQiLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihmLnByb3A9PT0iZ3JpZC1nYXAiKXtsZXQgdj10aGlzLmdyaWRTdGF0dXMoZix0KTt2PT09ImF1dG9wbGFjZSImJiFOTyhmKSYmIWF1KGYpP3Qud2FybigiZ3JpZC1nYXAgb25seSB3b3JrcyBpZiBncmlkLXRlbXBsYXRlKC1hcmVhcykgaXMgYmVpbmcgdXNlZCBvciBib3RoIHJvd3MgYW5kIGNvbHVtbnMgaGF2ZSBiZWVuIGRlY2xhcmVkIGFuZCBjZWxscyBoYXZlIG5vdCBiZWVuIG1hbnVhbGx5IHBsYWNlZCBpbnNpZGUgdGhlIGV4cGxpY2l0IGdyaWQiLHtub2RlOmZ9KToodj09PSEwfHx2PT09Im5vLWF1dG9wbGFjZSIpJiYhYXUoZikmJnQud2FybigiZ3JpZC1nYXAgb25seSB3b3JrcyBpZiBncmlkLXRlbXBsYXRlKC1hcmVhcykgaXMgYmVpbmcgdXNlZCIse25vZGU6Zn0pfWVsc2UgaWYocD09PSJncmlkLWF1dG8tY29sdW1ucyIpe3Qud2FybigiZ3JpZC1hdXRvLWNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zn0pO3JldHVybn1lbHNlIGlmKHA9PT0iZ3JpZC1hdXRvLXJvd3MiKXt0Lndhcm4oImdyaWQtYXV0by1yb3dzIGlzIG5vdCBzdXBwb3J0ZWQgYnkgSUUiLHtub2RlOmZ9KTtyZXR1cm59ZWxzZSBpZihwPT09ImdyaWQtYXV0by1mbG93Iil7bGV0IHY9ZC5zb21lKHc9PncucHJvcD09PSJncmlkLXRlbXBsYXRlLXJvd3MiKSx5PWQuc29tZSh3PT53LnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIik7YXUoZik/dC53YXJuKCJncmlkLWF1dG8tZmxvdyBpcyBub3Qgc3VwcG9ydGVkIGJ5IElFIix7bm9kZTpmfSk6aC5pbmNsdWRlcygiZGVuc2UiKT90Lndhcm4oImdyaWQtYXV0by1mbG93OiBkZW5zZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IElFIix7bm9kZTpmfSk6IXYmJiF5JiZ0Lndhcm4oImdyaWQtYXV0by1mbG93IHdvcmtzIG9ubHkgaWYgZ3JpZC10ZW1wbGF0ZS1yb3dzIGFuZCBncmlkLXRlbXBsYXRlLWNvbHVtbnMgYXJlIHByZXNlbnQgaW4gdGhlIHNhbWUgcnVsZSIse25vZGU6Zn0pO3JldHVybn1lbHNlIGlmKGguaW5jbHVkZXMoImF1dG8tZml0Iikpe3Qud2FybigiYXV0by1maXQgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zix3b3JkOiJhdXRvLWZpdCJ9KTtyZXR1cm59ZWxzZSBpZihoLmluY2x1ZGVzKCJhdXRvLWZpbGwiKSl7dC53YXJuKCJhdXRvLWZpbGwgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCBieSBJRSIse25vZGU6Zix3b3JkOiJhdXRvLWZpbGwifSk7cmV0dXJufWVsc2UgcC5zdGFydHNXaXRoKCJncmlkLXRlbXBsYXRlIikmJmguaW5jbHVkZXMoIlsiKSYmdC53YXJuKCJBdXRvcHJlZml4ZXIgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgbGluZSBuYW1lcy4gVHJ5IHVzaW5nIGdyaWQtdGVtcGxhdGUtYXJlYXMgaW5zdGVhZC4iLHtub2RlOmYsd29yZDoiWyJ9KTtpZihoLmluY2x1ZGVzKCJyYWRpYWwtZ3JhZGllbnQiKSlpZihxTy50ZXN0KGYudmFsdWUpKXQud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIE5ldyBzeW50YXggaXMgbGlrZSBgY2xvc2VzdC1zaWRlIGF0IDAgMGAgaW5zdGVhZCBvZiBgMCAwLCBjbG9zZXN0LXNpZGVgLiIse25vZGU6Zn0pO2Vsc2V7bGV0IHY9cGIoaCk7Zm9yKGxldCB5IG9mIHYubm9kZXMpaWYoeS50eXBlPT09ImZ1bmN0aW9uIiYmeS52YWx1ZT09PSJyYWRpYWwtZ3JhZGllbnQiKWZvcihsZXQgdyBvZiB5Lm5vZGVzKXcudHlwZT09PSJ3b3JkIiYmKHcudmFsdWU9PT0iY292ZXIiP3Qud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIFJlcGxhY2UgYGNvdmVyYCB0byBgZmFydGhlc3QtY29ybmVyYC4iLHtub2RlOmZ9KTp3LnZhbHVlPT09ImNvbnRhaW4iJiZ0Lndhcm4oIkdyYWRpZW50IGhhcyBvdXRkYXRlZCBkaXJlY3Rpb24gc3ludGF4LiBSZXBsYWNlIGBjb250YWluYCB0byBgY2xvc2VzdC1zaWRlYC4iLHtub2RlOmZ9KSl9aC5pbmNsdWRlcygibGluZWFyLWdyYWRpZW50IikmJkRPLnRlc3QoaCkmJnQud2FybigiR3JhZGllbnQgaGFzIG91dGRhdGVkIGRpcmVjdGlvbiBzeW50YXguIE5ldyBzeW50YXggaXMgbGlrZSBgdG8gbGVmdGAgaW5zdGVhZCBvZiBgcmlnaHRgLiIse25vZGU6Zn0pfU1PLmluY2x1ZGVzKGYucHJvcCkmJihmLnZhbHVlLmluY2x1ZGVzKCItZmlsbC1hdmFpbGFibGUiKXx8KGYudmFsdWUuaW5jbHVkZXMoImZpbGwtYXZhaWxhYmxlIik/dC53YXJuKCJSZXBsYWNlIGZpbGwtYXZhaWxhYmxlIHRvIHN0cmV0Y2gsIGJlY2F1c2Ugc3BlYyBoYWQgYmVlbiBjaGFuZ2VkIix7bm9kZTpmfSk6Zi52YWx1ZS5pbmNsdWRlcygiZmlsbCIpJiZwYihoKS5ub2Rlcy5zb21lKHk9PnkudHlwZT09PSJ3b3JkIiYmeS52YWx1ZT09PSJmaWxsIikmJnQud2FybigiUmVwbGFjZSBmaWxsIHRvIHN0cmV0Y2gsIGJlY2F1c2Ugc3BlYyBoYWQgYmVlbiBjaGFuZ2VkIix7bm9kZTpmfSkpKTtsZXQgYjtpZihmLnByb3A9PT0idHJhbnNpdGlvbiJ8fGYucHJvcD09PSJ0cmFuc2l0aW9uLXByb3BlcnR5IilyZXR1cm4gdGhpcy5wcmVmaXhlcy50cmFuc2l0aW9uLmFkZChmLHQpO2lmKGYucHJvcD09PSJhbGlnbi1zZWxmIil7aWYodGhpcy5kaXNwbGF5VHlwZShmKSE9PSJncmlkIiYmdGhpcy5wcmVmaXhlcy5vcHRpb25zLmZsZXhib3ghPT0hMSYmKGI9dGhpcy5wcmVmaXhlcy5hZGRbImFsaWduLXNlbGYiXSxiJiZiLnByZWZpeGVzJiZiLnByb2Nlc3MoZikpLHRoaXMuZ3JpZFN0YXR1cyhmLHQpIT09ITEmJihiPXRoaXMucHJlZml4ZXMuYWRkWyJncmlkLXJvdy1hbGlnbiJdLGImJmIucHJlZml4ZXMpKXJldHVybiBiLnByb2Nlc3MoZix0KX1lbHNlIGlmKGYucHJvcD09PSJqdXN0aWZ5LXNlbGYiKXtpZih0aGlzLmdyaWRTdGF0dXMoZix0KSE9PSExJiYoYj10aGlzLnByZWZpeGVzLmFkZFsiZ3JpZC1jb2x1bW4tYWxpZ24iXSxiJiZiLnByZWZpeGVzKSlyZXR1cm4gYi5wcm9jZXNzKGYsdCl9ZWxzZSBpZihmLnByb3A9PT0icGxhY2Utc2VsZiIpe2lmKGI9dGhpcy5wcmVmaXhlcy5hZGRbInBsYWNlLXNlbGYiXSxiJiZiLnByZWZpeGVzJiZ0aGlzLmdyaWRTdGF0dXMoZix0KSE9PSExKXJldHVybiBiLnByb2Nlc3MoZix0KX1lbHNlIGlmKGI9dGhpcy5wcmVmaXhlcy5hZGRbZi5wcm9wXSxiJiZiLnByZWZpeGVzKXJldHVybiBiLnByb2Nlc3MoZix0KX0pLHRoaXMuZ3JpZFN0YXR1cyhlLHQpJiZJTyhlLHRoaXMuZGlzYWJsZWQpLGUud2Fsa0RlY2xzKGY9PntpZih0aGlzLmRpc2FibGVkVmFsdWUoZix0KSlyZXR1cm47bGV0IGQ9dGhpcy5wcmVmaXhlcy51bnByZWZpeGVkKGYucHJvcCkscD10aGlzLnByZWZpeGVzLnZhbHVlcygiYWRkIixkKTtpZihBcnJheS5pc0FycmF5KHApKWZvcihsZXQgaCBvZiBwKWgucHJvY2VzcyYmaC5wcm9jZXNzKGYsdCk7UE8uc2F2ZSh0aGlzLnByZWZpeGVzLGYpfSl9cmVtb3ZlKGUsdCl7bGV0IGk9dGhpcy5wcmVmaXhlcy5yZW1vdmVbIkByZXNvbHV0aW9uIl07ZS53YWxrQXRSdWxlcygobixzKT0+e3RoaXMucHJlZml4ZXMucmVtb3ZlW2BAJHtuLm5hbWV9YF0/dGhpcy5kaXNhYmxlZChuLHQpfHxuLnBhcmVudC5yZW1vdmVDaGlsZChzKTpuLm5hbWU9PT0ibWVkaWEiJiZuLnBhcmFtcy5pbmNsdWRlcygiLXJlc29sdXRpb24iKSYmaSYmaS5jbGVhbihuKX0pO2ZvcihsZXQgbiBvZiB0aGlzLnByZWZpeGVzLnJlbW92ZS5zZWxlY3RvcnMpZS53YWxrUnVsZXMoKHMsYSk9PntuLmNoZWNrKHMpJiYodGhpcy5kaXNhYmxlZChzLHQpfHxzLnBhcmVudC5yZW1vdmVDaGlsZChhKSl9KTtyZXR1cm4gZS53YWxrRGVjbHMoKG4scyk9PntpZih0aGlzLmRpc2FibGVkKG4sdCkpcmV0dXJuO2xldCBhPW4ucGFyZW50LG89dGhpcy5wcmVmaXhlcy51bnByZWZpeGVkKG4ucHJvcCk7aWYoKG4ucHJvcD09PSJ0cmFuc2l0aW9uInx8bi5wcm9wPT09InRyYW5zaXRpb24tcHJvcGVydHkiKSYmdGhpcy5wcmVmaXhlcy50cmFuc2l0aW9uLnJlbW92ZShuKSx0aGlzLnByZWZpeGVzLnJlbW92ZVtuLnByb3BdJiZ0aGlzLnByZWZpeGVzLnJlbW92ZVtuLnByb3BdLnJlbW92ZSl7bGV0IGw9dGhpcy5wcmVmaXhlcy5ncm91cChuKS5kb3duKGM9PnRoaXMucHJlZml4ZXMubm9ybWFsaXplKGMucHJvcCk9PT1vKTtpZihvPT09ImZsZXgtZmxvdyImJihsPSEwKSxuLnByb3A9PT0iLXdlYmtpdC1ib3gtb3JpZW50Iil7bGV0IGM9eyJmbGV4LWRpcmVjdGlvbiI6ITAsImZsZXgtZmxvdyI6ITB9O2lmKCFuLnBhcmVudC5zb21lKGY9PmNbZi5wcm9wXSkpcmV0dXJufWlmKGwmJiF0aGlzLndpdGhIYWNrVmFsdWUobikpe24ucmF3KCJiZWZvcmUiKS5pbmNsdWRlcyhgCmApJiZ0aGlzLnJlZHVjZVNwYWNlcyhuKSxhLnJlbW92ZUNoaWxkKHMpO3JldHVybn19Zm9yKGxldCBsIG9mIHRoaXMucHJlZml4ZXMudmFsdWVzKCJyZW1vdmUiLG8pKXtpZighbC5jaGVja3x8IWwuY2hlY2sobi52YWx1ZSkpY29udGludWU7aWYobz1sLnVucHJlZml4ZWQsdGhpcy5wcmVmaXhlcy5ncm91cChuKS5kb3duKGY9PmYudmFsdWUuaW5jbHVkZXMobykpKXthLnJlbW92ZUNoaWxkKHMpO3JldHVybn19fSl9d2l0aEhhY2tWYWx1ZShlKXtyZXR1cm4gZS5wcm9wPT09Ii13ZWJraXQtYmFja2dyb3VuZC1jbGlwIiYmZS52YWx1ZT09PSJ0ZXh0In1kaXNhYmxlZFZhbHVlKGUsdCl7cmV0dXJuIHRoaXMuZ3JpZFN0YXR1cyhlLHQpPT09ITEmJmUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImRpc3BsYXkiJiZlLnZhbHVlLmluY2x1ZGVzKCJncmlkIil8fHRoaXMucHJlZml4ZXMub3B0aW9ucy5mbGV4Ym94PT09ITEmJmUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImRpc3BsYXkiJiZlLnZhbHVlLmluY2x1ZGVzKCJmbGV4Iil8fGUudHlwZT09PSJkZWNsIiYmZS5wcm9wPT09ImNvbnRlbnQiPyEwOnRoaXMuZGlzYWJsZWQoZSx0KX1kaXNhYmxlZERlY2woZSx0KXtpZih0aGlzLmdyaWRTdGF0dXMoZSx0KT09PSExJiZlLnR5cGU9PT0iZGVjbCImJihlLnByb3AuaW5jbHVkZXMoImdyaWQiKXx8ZS5wcm9wPT09Imp1c3RpZnktaXRlbXMiKSlyZXR1cm4hMDtpZih0aGlzLnByZWZpeGVzLm9wdGlvbnMuZmxleGJveD09PSExJiZlLnR5cGU9PT0iZGVjbCIpe2xldCBpPVsib3JkZXIiLCJqdXN0aWZ5LWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLWNvbnRlbnQiXTtpZihlLnByb3AuaW5jbHVkZXMoImZsZXgiKXx8aS5pbmNsdWRlcyhlLnByb3ApKXJldHVybiEwfXJldHVybiB0aGlzLmRpc2FibGVkKGUsdCl9ZGlzYWJsZWQoZSx0KXtpZighZSlyZXR1cm4hMTtpZihlLl9hdXRvcHJlZml4ZXJEaXNhYmxlZCE9PXZvaWQgMClyZXR1cm4gZS5fYXV0b3ByZWZpeGVyRGlzYWJsZWQ7aWYoZS5wYXJlbnQpe2xldCBuPWUucHJldigpO2lmKG4mJm4udHlwZT09PSJjb21tZW50IiYmJE8udGVzdChuLnRleHQpKXJldHVybiBlLl9hdXRvcHJlZml4ZXJEaXNhYmxlZD0hMCxlLl9hdXRvcHJlZml4ZXJTZWxmRGlzYWJsZWQ9ITAsITB9bGV0IGk9bnVsbDtpZihlLm5vZGVzKXtsZXQgbjtlLmVhY2gocz0+e3MudHlwZT09PSJjb21tZW50IiYmLyghXHMqKT9hdXRvcHJlZml4ZXI6XHMqKG9mZnxvbikvaS50ZXN0KHMudGV4dCkmJih0eXBlb2YgbiE9InVuZGVmaW5lZCI/dC53YXJuKCJTZWNvbmQgQXV0b3ByZWZpeGVyIGNvbnRyb2wgY29tbWVudCB3YXMgaWdub3JlZC4gQXV0b3ByZWZpeGVyIGFwcGxpZXMgY29udHJvbCBjb21tZW50IHRvIHdob2xlIGJsb2NrLCBub3QgdG8gbmV4dCBydWxlcy4iLHtub2RlOnN9KTpuPS9vbi9pLnRlc3Qocy50ZXh0KSl9KSxuIT09dm9pZCAwJiYoaT0hbil9aWYoIWUubm9kZXN8fGk9PT1udWxsKWlmKGUucGFyZW50KXtsZXQgbj10aGlzLmRpc2FibGVkKGUucGFyZW50LHQpO2UucGFyZW50Ll9hdXRvcHJlZml4ZXJTZWxmRGlzYWJsZWQ9PT0hMD9pPSExOmk9bn1lbHNlIGk9ITE7cmV0dXJuIGUuX2F1dG9wcmVmaXhlckRpc2FibGVkPWksaX1yZWR1Y2VTcGFjZXMoZSl7bGV0IHQ9ITE7aWYodGhpcy5wcmVmaXhlcy5ncm91cChlKS51cCgoKT0+KHQ9ITAsITApKSx0KXJldHVybjtsZXQgaT1lLnJhdygiYmVmb3JlIikuc3BsaXQoYApgKSxuPWlbaS5sZW5ndGgtMV0ubGVuZ3RoLHM9ITE7dGhpcy5wcmVmaXhlcy5ncm91cChlKS5kb3duKGE9PntpPWEucmF3KCJiZWZvcmUiKS5zcGxpdChgCmApO2xldCBvPWkubGVuZ3RoLTE7aVtvXS5sZW5ndGg+biYmKHM9PT0hMSYmKHM9aVtvXS5sZW5ndGgtbiksaVtvXT1pW29dLnNsaWNlKDAsLXMpLGEucmF3cy5iZWZvcmU9aS5qb2luKGAKYCkpfSl9ZGlzcGxheVR5cGUoZSl7Zm9yKGxldCB0IG9mIGUucGFyZW50Lm5vZGVzKWlmKHQucHJvcD09PSJkaXNwbGF5Iil7aWYodC52YWx1ZS5pbmNsdWRlcygiZmxleCIpKXJldHVybiJmbGV4IjtpZih0LnZhbHVlLmluY2x1ZGVzKCJncmlkIikpcmV0dXJuImdyaWQifXJldHVybiExfWdyaWRTdGF0dXMoZSx0KXtpZighZSlyZXR1cm4hMTtpZihlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzIT09dm9pZCAwKXJldHVybiBlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzO2xldCBpPW51bGw7aWYoZS5ub2Rlcyl7bGV0IG47ZS5lYWNoKHM9PntpZihzLnR5cGU9PT0iY29tbWVudCImJkxPLnRlc3Qocy50ZXh0KSl7bGV0IGE9LzpccyphdXRvcGxhY2UvaS50ZXN0KHMudGV4dCksbz0vbm8tYXV0b3BsYWNlL2kudGVzdChzLnRleHQpO3R5cGVvZiBuIT0idW5kZWZpbmVkIj90Lndhcm4oIlNlY29uZCBBdXRvcHJlZml4ZXIgZ3JpZCBjb250cm9sIGNvbW1lbnQgd2FzIGlnbm9yZWQuIEF1dG9wcmVmaXhlciBhcHBsaWVzIGNvbnRyb2wgY29tbWVudHMgdG8gdGhlIHdob2xlIGJsb2NrLCBub3QgdG8gdGhlIG5leHQgcnVsZXMuIix7bm9kZTpzfSk6YT9uPSJhdXRvcGxhY2UiOm8/bj0hMDpuPS9vbi9pLnRlc3Qocy50ZXh0KX19KSxuIT09dm9pZCAwJiYoaT1uKX1pZihlLnR5cGU9PT0iYXRydWxlIiYmZS5uYW1lPT09InN1cHBvcnRzIil7bGV0IG49ZS5wYXJhbXM7bi5pbmNsdWRlcygiZ3JpZCIpJiZuLmluY2x1ZGVzKCJhdXRvIikmJihpPSExKX1pZighZS5ub2Rlc3x8aT09PW51bGwpaWYoZS5wYXJlbnQpe2xldCBuPXRoaXMuZ3JpZFN0YXR1cyhlLnBhcmVudCx0KTtlLnBhcmVudC5fYXV0b3ByZWZpeGVyU2VsZkRpc2FibGVkPT09ITA/aT0hMTppPW59ZWxzZSB0eXBlb2YgdGhpcy5wcmVmaXhlcy5vcHRpb25zLmdyaWQhPSJ1bmRlZmluZWQiP2k9dGhpcy5wcmVmaXhlcy5vcHRpb25zLmdyaWQ6dHlwZW9mIG0uZW52LkFVVE9QUkVGSVhFUl9HUklEIT0idW5kZWZpbmVkIj9tLmVudi5BVVRPUFJFRklYRVJfR1JJRD09PSJhdXRvcGxhY2UiP2k9ImF1dG9wbGFjZSI6aT0hMDppPSExO3JldHVybiBlLl9hdXRvcHJlZml4ZXJHcmlkU3RhdHVzPWksaX19O2hiLmV4cG9ydHM9ZGJ9KTt2YXIgZ2I9eCgoaCQsbWIpPT57dSgpO21iLmV4cG9ydHM9e0E6e0E6eyIyIjoiSyBFIEYgRyBBIEIgSkMifSxCOnsiMSI6IkMgTCBNIEggTiBEIE8gUCBRIFIgUyBUIFUgViBXIFggWSBaIGEgYiBjIGQgZSBmIGcgaCBpIGogbiBvIHAgcSByIHMgdCB1IHYgdyB4IHkgeiBJIn0sQzp7IjEiOiIyIDMgNCA1IDYgNyA4IDkgQUIgQkIgQ0IgREIgRUIgRkIgR0IgSEIgSUIgSkIgS0IgTEIgTUIgTkIgT0IgUEIgUUIgUkIgU0IgVEIgVUIgVkIgV0IgWEIgWUIgWkIgYUIgYkIgY0IgMEIgZEIgMUIgZUIgZkIgZ0IgaEIgaUIgakIga0IgbEIgbUIgbkIgb0IgbSBwQiBxQiByQiBzQiB0QiBQIFEgUiAyQiBTIFQgVSBWIFcgWCBZIFogYSBiIGMgZCBlIGYgZyBoIGkgaiBuIG8gcCBxIHIgcyB0IHUgdiB3IHggeSB6IEkgdUIgM0IgNEIiLCIyIjoiMCAxIEtDIHpCIEogSyBFIEYgRyBBIEIgQyBMIE0gSCBOIEQgTyBrIGwgTEMgTUMifSxEOnsiMSI6IjggOSBBQiBCQiBDQiBEQiBFQiBGQiBHQiBIQiBJQiBKQiBLQiBMQiBNQiBOQiBPQiBQQiBRQiBSQiBTQiBUQiBVQiBWQiBXQiBYQiBZQiBaQiBhQiBiQiBjQiAwQiBkQiAxQiBlQiBmQiBnQiBoQiBpQiBqQiBrQiBsQiBtQiBuQiBvQiBtIHBCIHFCIHJCIHNCIHRCIFAgUSBSIFMgVCBVIFYgVyBYIFkgWiBhIGIgYyBkIGUgZiBnIGggaSBqIG4gbyBwIHEgciBzIHQgdSB2IHcgeCB5IHogSSB1QiAzQiA0QiIsIjIiOiIwIDEgMiAzIDQgNSA2IDcgSiBLIEUgRiBHIEEgQiBDIEwgTSBIIE4gRCBPIGsgbCJ9LEU6eyIxIjoiRyBBIEIgQyBMIE0gSCBEIFJDIDZCIHZCIHdCIDdCIFNDIFRDIDhCIDlCIHhCIEFDIHlCIEJDIENDIERDIEVDIEZDIEdDIFVDIiwiMiI6IjAgSiBLIEUgRiBOQyA1QiBPQyBQQyBRQyJ9LEY6eyIxIjoiMSAyIDMgNCA1IDYgNyA4IDkgSCBOIEQgTyBrIGwgQUIgQkIgQ0IgREIgRUIgRkIgR0IgSEIgSUIgSkIgS0IgTEIgTUIgTkIgT0IgUEIgUUIgUkIgU0IgVEIgVUIgVkIgV0IgWEIgWUIgWkIgYUIgYkIgY0IgZEIgZUIgZkIgZ0IgaEIgaUIgakIga0IgbEIgbUIgbkIgb0IgbSBwQiBxQiByQiBzQiB0QiBQIFEgUiAyQiBTIFQgVSBWIFcgWCBZIFogYSBiIGMgZCBlIGYgZyBoIGkgaiB3QiIsIjIiOiJHIEIgQyBWQyBXQyBYQyBZQyB2QiBIQyBaQyJ9LEc6eyIxIjoiRCBmQyBnQyBoQyBpQyBqQyBrQyBsQyBtQyBuQyBvQyBwQyBxQyByQyBzQyB0QyA4QiA5QiB4QiBBQyB5QiBCQyBDQyBEQyBFQyBGQyBHQyIsIjIiOiJGIDVCIGFDIElDIGJDIGNDIGRDIGVDIn0sSDp7IjEiOiJ1QyJ9LEk6eyIxIjoiSSB6QyAwQyIsIjIiOiJ6QiBKIHZDIHdDIHhDIHlDIElDIn0sSjp7IjIiOiJFIEEifSxLOnsiMSI6Im0iLCIyIjoiQSBCIEMgdkIgSEMgd0IifSxMOnsiMSI6IkkifSxNOnsiMSI6InVCIn0sTjp7IjIiOiJBIEIifSxPOnsiMSI6InhCIn0sUDp7IjEiOiJKIGsgbCAxQyAyQyAzQyA0QyA1QyA2QiA2QyA3QyA4QyA5QyBBRCB5QiBCRCBDRCBERCJ9LFE6eyIxIjoiN0IifSxSOnsiMSI6IkVEIn0sUzp7IjEiOiJGRCBHRCJ9fSxCOjQsQzoiQ1NTIEZlYXR1cmUgUXVlcmllcyJ9fSk7dmFyIHZiPXgoKG0kLHdiKT0+e3UoKTtmdW5jdGlvbiB5YihyKXtyZXR1cm4gcltyLmxlbmd0aC0xXX12YXIgYmI9e3BhcnNlKHIpe2xldCBlPVsiIl0sdD1bZV07Zm9yKGxldCBpIG9mIHIpe2lmKGk9PT0iKCIpe2U9WyIiXSx5Yih0KS5wdXNoKGUpLHQucHVzaChlKTtjb250aW51ZX1pZihpPT09IikiKXt0LnBvcCgpLGU9eWIodCksZS5wdXNoKCIiKTtjb250aW51ZX1lW2UubGVuZ3RoLTFdKz1pfXJldHVybiB0WzBdfSxzdHJpbmdpZnkocil7bGV0IGU9IiI7Zm9yKGxldCB0IG9mIHIpe2lmKHR5cGVvZiB0PT0ib2JqZWN0Iil7ZSs9YCgke2JiLnN0cmluZ2lmeSh0KX0pYDtjb250aW51ZX1lKz10fXJldHVybiBlfX07d2IuZXhwb3J0cz1iYn0pO3ZhciBDYj14KChnJCxBYik9Pnt1KCk7dmFyIEJPPWdiKCkse2ZlYXR1cmU6Rk99PShQcygpLFJzKSx7cGFyc2U6ak99PSRlKCksek89TXQoKSxsdT12YigpLFVPPUhlKCksVk89X2UoKSx4Yj1GTyhCTyksa2I9W107Zm9yKGxldCByIGluIHhiLnN0YXRzKXtsZXQgZT14Yi5zdGF0c1tyXTtmb3IobGV0IHQgaW4gZSl7bGV0IGk9ZVt0XTsveS8udGVzdChpKSYma2IucHVzaChyKyIgIit0KX19dmFyIFNiPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5QcmVmaXhlcz1lLHRoaXMuYWxsPXR9cHJlZml4ZXIoKXtpZih0aGlzLnByZWZpeGVyQ2FjaGUpcmV0dXJuIHRoaXMucHJlZml4ZXJDYWNoZTtsZXQgZT10aGlzLmFsbC5icm93c2Vycy5zZWxlY3RlZC5maWx0ZXIoaT0+a2IuaW5jbHVkZXMoaSkpLHQ9bmV3IHpPKHRoaXMuYWxsLmJyb3dzZXJzLmRhdGEsZSx0aGlzLmFsbC5vcHRpb25zKTtyZXR1cm4gdGhpcy5wcmVmaXhlckNhY2hlPW5ldyB0aGlzLlByZWZpeGVzKHRoaXMuYWxsLmRhdGEsdCx0aGlzLmFsbC5vcHRpb25zKSx0aGlzLnByZWZpeGVyQ2FjaGV9cGFyc2UoZSl7bGV0IHQ9ZS5zcGxpdCgiOiIpLGk9dFswXSxuPXRbMV07cmV0dXJuIG58fChuPSIiKSxbaS50cmltKCksbi50cmltKCldfXZpcnR1YWwoZSl7bGV0W3QsaV09dGhpcy5wYXJzZShlKSxuPWpPKCJhe30iKS5maXJzdDtyZXR1cm4gbi5hcHBlbmQoe3Byb3A6dCx2YWx1ZTppLHJhd3M6e2JlZm9yZToiIn19KSxufXByZWZpeGVkKGUpe2xldCB0PXRoaXMudmlydHVhbChlKTtpZih0aGlzLmRpc2FibGVkKHQuZmlyc3QpKXJldHVybiB0Lm5vZGVzO2xldCBpPXt3YXJuOigpPT5udWxsfSxuPXRoaXMucHJlZml4ZXIoKS5hZGRbdC5maXJzdC5wcm9wXTtuJiZuLnByb2Nlc3MmJm4ucHJvY2Vzcyh0LmZpcnN0LGkpO2ZvcihsZXQgcyBvZiB0Lm5vZGVzKXtmb3IobGV0IGEgb2YgdGhpcy5wcmVmaXhlcigpLnZhbHVlcygiYWRkIix0LmZpcnN0LnByb3ApKWEucHJvY2VzcyhzKTtVTy5zYXZlKHRoaXMuYWxsLHMpfXJldHVybiB0Lm5vZGVzfWlzTm90KGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJi9ub3RccyovaS50ZXN0KGUpfWlzT3IoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIiYmL1xzKm9yXHMqL2kudGVzdChlKX1pc1Byb3AoZSl7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmZS5sZW5ndGg9PT0xJiZ0eXBlb2YgZVswXT09InN0cmluZyJ9aXNIYWNrKGUsdCl7cmV0dXJuIW5ldyBSZWdFeHAoYChcXCh8XFxzKSR7Vk8uZXNjYXBlUmVnZXhwKHQpfTpgKS50ZXN0KGUpfXRvUmVtb3ZlKGUsdCl7bGV0W2ksbl09dGhpcy5wYXJzZShlKSxzPXRoaXMuYWxsLnVucHJlZml4ZWQoaSksYT10aGlzLmFsbC5jbGVhbmVyKCk7aWYoYS5yZW1vdmVbaV0mJmEucmVtb3ZlW2ldLnJlbW92ZSYmIXRoaXMuaXNIYWNrKHQscykpcmV0dXJuITA7Zm9yKGxldCBvIG9mIGEudmFsdWVzKCJyZW1vdmUiLHMpKWlmKG8uY2hlY2sobikpcmV0dXJuITA7cmV0dXJuITF9cmVtb3ZlKGUsdCl7bGV0IGk9MDtmb3IoO2k8ZS5sZW5ndGg7KXtpZighdGhpcy5pc05vdChlW2ktMV0pJiZ0aGlzLmlzUHJvcChlW2ldKSYmdGhpcy5pc09yKGVbaSsxXSkpe2lmKHRoaXMudG9SZW1vdmUoZVtpXVswXSx0KSl7ZS5zcGxpY2UoaSwyKTtjb250aW51ZX1pKz0yO2NvbnRpbnVlfXR5cGVvZiBlW2ldPT0ib2JqZWN0IiYmKGVbaV09dGhpcy5yZW1vdmUoZVtpXSx0KSksaSs9MX1yZXR1cm4gZX1jbGVhbkJyYWNrZXRzKGUpe3JldHVybiBlLm1hcCh0PT50eXBlb2YgdCE9Im9iamVjdCI/dDp0Lmxlbmd0aD09PTEmJnR5cGVvZiB0WzBdPT0ib2JqZWN0Ij90aGlzLmNsZWFuQnJhY2tldHModFswXSk6dGhpcy5jbGVhbkJyYWNrZXRzKHQpKX1jb252ZXJ0KGUpe2xldCB0PVsiIl07Zm9yKGxldCBpIG9mIGUpdC5wdXNoKFtgJHtpLnByb3B9OiAke2kudmFsdWV9YF0pLHQucHVzaCgiIG9yICIpO3JldHVybiB0W3QubGVuZ3RoLTFdPSIiLHR9bm9ybWFsaXplKGUpe2lmKHR5cGVvZiBlIT0ib2JqZWN0IilyZXR1cm4gZTtpZihlPWUuZmlsdGVyKHQ9PnQhPT0iIiksdHlwZW9mIGVbMF09PSJzdHJpbmciKXtsZXQgdD1lWzBdLnRyaW0oKTtpZih0LmluY2x1ZGVzKCI6Iil8fHQ9PT0ic2VsZWN0b3IifHx0PT09Im5vdCBzZWxlY3RvciIpcmV0dXJuW2x1LnN0cmluZ2lmeShlKV19cmV0dXJuIGUubWFwKHQ9PnRoaXMubm9ybWFsaXplKHQpKX1hZGQoZSx0KXtyZXR1cm4gZS5tYXAoaT0+e2lmKHRoaXMuaXNQcm9wKGkpKXtsZXQgbj10aGlzLnByZWZpeGVkKGlbMF0pO3JldHVybiBuLmxlbmd0aD4xP3RoaXMuY29udmVydChuKTppfXJldHVybiB0eXBlb2YgaT09Im9iamVjdCI/dGhpcy5hZGQoaSx0KTppfSl9cHJvY2VzcyhlKXtsZXQgdD1sdS5wYXJzZShlLnBhcmFtcyk7dD10aGlzLm5vcm1hbGl6ZSh0KSx0PXRoaXMucmVtb3ZlKHQsZS5wYXJhbXMpLHQ9dGhpcy5hZGQodCxlLnBhcmFtcyksdD10aGlzLmNsZWFuQnJhY2tldHModCksZS5wYXJhbXM9bHUuc3RyaW5naWZ5KHQpfWRpc2FibGVkKGUpe2lmKCF0aGlzLmFsbC5vcHRpb25zLmdyaWQmJihlLnByb3A9PT0iZGlzcGxheSImJmUudmFsdWUuaW5jbHVkZXMoImdyaWQiKXx8ZS5wcm9wLmluY2x1ZGVzKCJncmlkIil8fGUucHJvcD09PSJqdXN0aWZ5LWl0ZW1zIikpcmV0dXJuITA7aWYodGhpcy5hbGwub3B0aW9ucy5mbGV4Ym94PT09ITEpe2lmKGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZS5pbmNsdWRlcygiZmxleCIpKXJldHVybiEwO2xldCB0PVsib3JkZXIiLCJqdXN0aWZ5LWNvbnRlbnQiLCJhbGlnbi1pdGVtcyIsImFsaWduLWNvbnRlbnQiXTtpZihlLnByb3AuaW5jbHVkZXMoImZsZXgiKXx8dC5pbmNsdWRlcyhlLnByb3ApKXJldHVybiEwfXJldHVybiExfX07QWIuZXhwb3J0cz1TYn0pO3ZhciBPYj14KCh5JCxFYik9Pnt1KCk7dmFyIF9iPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wcmVmaXg9dCx0aGlzLnByZWZpeGVkPWUucHJlZml4ZWQodGhpcy5wcmVmaXgpLHRoaXMucmVnZXhwPWUucmVnZXhwKHRoaXMucHJlZml4KSx0aGlzLnByZWZpeGVkcz1lLnBvc3NpYmxlKCkubWFwKGk9PltlLnByZWZpeGVkKGkpLGUucmVnZXhwKGkpXSksdGhpcy51bnByZWZpeGVkPWUubmFtZSx0aGlzLm5hbWVSZWdleHA9ZS5yZWdleHAoKX1pc0hhY2soZSl7bGV0IHQ9ZS5wYXJlbnQuaW5kZXgoZSkrMSxpPWUucGFyZW50Lm5vZGVzO2Zvcig7dDxpLmxlbmd0aDspe2xldCBuPWlbdF0uc2VsZWN0b3I7aWYoIW4pcmV0dXJuITA7aWYobi5pbmNsdWRlcyh0aGlzLnVucHJlZml4ZWQpJiZuLm1hdGNoKHRoaXMubmFtZVJlZ2V4cCkpcmV0dXJuITE7bGV0IHM9ITE7Zm9yKGxldFthLG9db2YgdGhpcy5wcmVmaXhlZHMpaWYobi5pbmNsdWRlcyhhKSYmbi5tYXRjaChvKSl7cz0hMDticmVha31pZighcylyZXR1cm4hMDt0Kz0xfXJldHVybiEwfWNoZWNrKGUpe3JldHVybiEoIWUuc2VsZWN0b3IuaW5jbHVkZXModGhpcy5wcmVmaXhlZCl8fCFlLnNlbGVjdG9yLm1hdGNoKHRoaXMucmVnZXhwKXx8dGhpcy5pc0hhY2soZSkpfX07RWIuZXhwb3J0cz1fYn0pO3ZhciBrcj14KChiJCxSYik9Pnt1KCk7dmFye2xpc3Q6SE99PSRlKCksV089T2IoKSxHTz13cigpLFFPPU10KCksWU89X2UoKSxUYj1jbGFzcyBleHRlbmRzIEdPe2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSk7dGhpcy5yZWdleHBDYWNoZT1uZXcgTWFwfWNoZWNrKGUpe3JldHVybiBlLnNlbGVjdG9yLmluY2x1ZGVzKHRoaXMubmFtZSk/ISFlLnNlbGVjdG9yLm1hdGNoKHRoaXMucmVnZXhwKCkpOiExfXByZWZpeGVkKGUpe3JldHVybiB0aGlzLm5hbWUucmVwbGFjZSgvXihcVyopLyxgJDEke2V9YCl9cmVnZXhwKGUpe2lmKCF0aGlzLnJlZ2V4cENhY2hlLmhhcyhlKSl7bGV0IHQ9ZT90aGlzLnByZWZpeGVkKGUpOnRoaXMubmFtZTt0aGlzLnJlZ2V4cENhY2hlLnNldChlLG5ldyBSZWdFeHAoYChefFteOiInPV0pJHtZTy5lc2NhcGVSZWdleHAodCl9YCwiZ2kiKSl9cmV0dXJuIHRoaXMucmVnZXhwQ2FjaGUuZ2V0KGUpfXBvc3NpYmxlKCl7cmV0dXJuIFFPLnByZWZpeGVzKCl9cHJlZml4ZWRzKGUpe2lmKGUuX2F1dG9wcmVmaXhlclByZWZpeGVkcyl7aWYoZS5fYXV0b3ByZWZpeGVyUHJlZml4ZWRzW3RoaXMubmFtZV0pcmV0dXJuIGUuX2F1dG9wcmVmaXhlclByZWZpeGVkc31lbHNlIGUuX2F1dG9wcmVmaXhlclByZWZpeGVkcz17fTtsZXQgdD17fTtpZihlLnNlbGVjdG9yLmluY2x1ZGVzKCIsIikpe2xldCBuPUhPLmNvbW1hKGUuc2VsZWN0b3IpLmZpbHRlcihzPT5zLmluY2x1ZGVzKHRoaXMubmFtZSkpO2ZvcihsZXQgcyBvZiB0aGlzLnBvc3NpYmxlKCkpdFtzXT1uLm1hcChhPT50aGlzLnJlcGxhY2UoYSxzKSkuam9pbigiLCAiKX1lbHNlIGZvcihsZXQgaSBvZiB0aGlzLnBvc3NpYmxlKCkpdFtpXT10aGlzLnJlcGxhY2UoZS5zZWxlY3RvcixpKTtyZXR1cm4gZS5fYXV0b3ByZWZpeGVyUHJlZml4ZWRzW3RoaXMubmFtZV09dCxlLl9hdXRvcHJlZml4ZXJQcmVmaXhlZHN9YWxyZWFkeShlLHQsaSl7bGV0IG49ZS5wYXJlbnQuaW5kZXgoZSktMTtmb3IoO24+PTA7KXtsZXQgcz1lLnBhcmVudC5ub2Rlc1tuXTtpZihzLnR5cGUhPT0icnVsZSIpcmV0dXJuITE7bGV0IGE9ITE7Zm9yKGxldCBvIGluIHRbdGhpcy5uYW1lXSl7bGV0IGw9dFt0aGlzLm5hbWVdW29dO2lmKHMuc2VsZWN0b3I9PT1sKXtpZihpPT09bylyZXR1cm4hMDthPSEwO2JyZWFrfX1pZighYSlyZXR1cm4hMTtuLT0xfXJldHVybiExfXJlcGxhY2UoZSx0KXtyZXR1cm4gZS5yZXBsYWNlKHRoaXMucmVnZXhwKCksYCQxJHt0aGlzLnByZWZpeGVkKHQpfWApfWFkZChlLHQpe2xldCBpPXRoaXMucHJlZml4ZWRzKGUpO2lmKHRoaXMuYWxyZWFkeShlLGksdCkpcmV0dXJuO2xldCBuPXRoaXMuY2xvbmUoZSx7c2VsZWN0b3I6aVt0aGlzLm5hbWVdW3RdfSk7ZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9b2xkKGUpe3JldHVybiBuZXcgV08odGhpcyxlKX19O1JiLmV4cG9ydHM9VGJ9KTt2YXIgRGI9eCgodyQsSWIpPT57dSgpO3ZhciBLTz13cigpLFBiPWNsYXNzIGV4dGVuZHMgS097YWRkKGUsdCl7bGV0IGk9dCtlLm5hbWU7aWYoZS5wYXJlbnQuc29tZShhPT5hLm5hbWU9PT1pJiZhLnBhcmFtcz09PWUucGFyYW1zKSlyZXR1cm47bGV0IHM9dGhpcy5jbG9uZShlLHtuYW1lOml9KTtyZXR1cm4gZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUscyl9cHJvY2VzcyhlKXtsZXQgdD10aGlzLnBhcmVudFByZWZpeChlKTtmb3IobGV0IGkgb2YgdGhpcy5wcmVmaXhlcykoIXR8fHQ9PT1pKSYmdGhpcy5hZGQoZSxpKX19O0liLmV4cG9ydHM9UGJ9KTt2YXIgJGI9eCgodiQscWIpPT57dSgpO3ZhciBYTz1rcigpLHV1PWNsYXNzIGV4dGVuZHMgWE97cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLXdlYmtpdC0iPyI6LXdlYmtpdC1mdWxsLXNjcmVlbiI6ZT09PSItbW96LSI/IjotbW96LWZ1bGwtc2NyZWVuIjpgOiR7ZX1mdWxsc2NyZWVuYH19O3V1Lm5hbWVzPVsiOmZ1bGxzY3JlZW4iXTtxYi5leHBvcnRzPXV1fSk7dmFyIE1iPXgoKHgkLExiKT0+e3UoKTt2YXIgWk89a3IoKSxmdT1jbGFzcyBleHRlbmRzIFpPe3Bvc3NpYmxlKCl7cmV0dXJuIHN1cGVyLnBvc3NpYmxlKCkuY29uY2F0KFsiLW1vei0gb2xkIiwiLW1zLSBvbGQiXSl9cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLXdlYmtpdC0iPyI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIiOmU9PT0iLW1zLSI/Ijo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIjplPT09Ii1tcy0gb2xkIj8iOi1tcy1pbnB1dC1wbGFjZWhvbGRlciI6ZT09PSItbW96LSBvbGQiPyI6LW1vei1wbGFjZWhvbGRlciI6YDo6JHtlfXBsYWNlaG9sZGVyYH19O2Z1Lm5hbWVzPVsiOjpwbGFjZWhvbGRlciJdO0xiLmV4cG9ydHM9ZnV9KTt2YXIgQmI9eCgoayQsTmIpPT57dSgpO3ZhciBKTz1rcigpLGN1PWNsYXNzIGV4dGVuZHMgSk97cHJlZml4ZWQoZSl7cmV0dXJuIGU9PT0iLW1zLSI/IjotbXMtaW5wdXQtcGxhY2Vob2xkZXIiOmA6JHtlfXBsYWNlaG9sZGVyLXNob3duYH19O2N1Lm5hbWVzPVsiOnBsYWNlaG9sZGVyLXNob3duIl07TmIuZXhwb3J0cz1jdX0pO3ZhciBqYj14KChTJCxGYik9Pnt1KCk7dmFyIGVUPWtyKCksdFQ9X2UoKSxwdT1jbGFzcyBleHRlbmRzIGVUe2NvbnN0cnVjdG9yKGUsdCxpKXtzdXBlcihlLHQsaSk7dGhpcy5wcmVmaXhlcyYmKHRoaXMucHJlZml4ZXM9dFQudW5pcSh0aGlzLnByZWZpeGVzLm1hcChuPT4iLXdlYmtpdC0iKSkpfXByZWZpeGVkKGUpe3JldHVybiBlPT09Ii13ZWJraXQtIj8iOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiI6YDo6JHtlfWZpbGUtc2VsZWN0b3ItYnV0dG9uYH19O3B1Lm5hbWVzPVsiOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbiJdO0ZiLmV4cG9ydHM9cHV9KTt2YXIgUGU9eCgoQSQsemIpPT57dSgpO3piLmV4cG9ydHM9ZnVuY3Rpb24ocil7bGV0IGU7cmV0dXJuIHI9PT0iLXdlYmtpdC0gMjAwOSJ8fHI9PT0iLW1vei0iP2U9MjAwOTpyPT09Ii1tcy0iP2U9MjAxMjpyPT09Ii13ZWJraXQtIiYmKGU9ImZpbmFsIikscj09PSItd2Via2l0LSAyMDA5IiYmKHI9Ii13ZWJraXQtIiksW2Uscl19fSk7dmFyIFdiPXgoKEMkLEhiKT0+e3UoKTt2YXIgVWI9JGUoKS5saXN0LFZiPVBlKCksclQ9aigpLFNyPWNsYXNzIGV4dGVuZHMgclR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1WYih0KSxpPT09MjAwOT90KyJib3gtZmxleCI6c3VwZXIucHJlZml4ZWQoZSx0KX1ub3JtYWxpemUoKXtyZXR1cm4iZmxleCJ9c2V0KGUsdCl7bGV0IGk9VmIodClbMF07aWYoaT09PTIwMDkpcmV0dXJuIGUudmFsdWU9VWIuc3BhY2UoZS52YWx1ZSlbMF0sZS52YWx1ZT1Tci5vbGRWYWx1ZXNbZS52YWx1ZV18fGUudmFsdWUsc3VwZXIuc2V0KGUsdCk7aWYoaT09PTIwMTIpe2xldCBuPVViLnNwYWNlKGUudmFsdWUpO24ubGVuZ3RoPT09MyYmblsyXT09PSIwIiYmKGUudmFsdWU9bi5zbGljZSgwLDIpLmNvbmNhdCgiMHB4Iikuam9pbigiICIpKX1yZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtTci5uYW1lcz1bImZsZXgiLCJib3gtZmxleCJdO1NyLm9sZFZhbHVlcz17YXV0bzoiMSIsbm9uZToiMCJ9O0hiLmV4cG9ydHM9U3J9KTt2YXIgWWI9eCgoXyQsUWIpPT57dSgpO3ZhciBHYj1QZSgpLGlUPWooKSxkdT1jbGFzcyBleHRlbmRzIGlUe3ByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09R2IodCksaT09PTIwMDk/dCsiYm94LW9yZGluYWwtZ3JvdXAiOmk9PT0yMDEyP3QrImZsZXgtb3JkZXIiOnN1cGVyLnByZWZpeGVkKGUsdCl9bm9ybWFsaXplKCl7cmV0dXJuIm9yZGVyIn1zZXQoZSx0KXtyZXR1cm4gR2IodClbMF09PT0yMDA5JiYvXGQvLnRlc3QoZS52YWx1ZSk/KGUudmFsdWU9KHBhcnNlSW50KGUudmFsdWUpKzEpLnRvU3RyaW5nKCksc3VwZXIuc2V0KGUsdCkpOnN1cGVyLnNldChlLHQpfX07ZHUubmFtZXM9WyJvcmRlciIsImZsZXgtb3JkZXIiLCJib3gtb3JkaW5hbC1ncm91cCJdO1FiLmV4cG9ydHM9ZHV9KTt2YXIgWGI9eCgoRSQsS2IpPT57dSgpO3ZhciBuVD1qKCksaHU9Y2xhc3MgZXh0ZW5kcyBuVHtjaGVjayhlKXtsZXQgdD1lLnZhbHVlO3JldHVybiF0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImFscGhhKCIpJiYhdC5pbmNsdWRlcygiRFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQiKSYmIXQuaW5jbHVkZXMoImRhdGE6aW1hZ2Uvc3ZnK3htbCIpfX07aHUubmFtZXM9WyJmaWx0ZXIiXTtLYi5leHBvcnRzPWh1fSk7dmFyIEpiPXgoKE8kLFpiKT0+e3UoKTt2YXIgc1Q9aigpLG11PWNsYXNzIGV4dGVuZHMgc1R7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9dGhpcy5jbG9uZShlKSxhPWUucHJvcC5yZXBsYWNlKC9lbmQkLywic3RhcnQiKSxvPXQrZS5wcm9wLnJlcGxhY2UoL2VuZCQvLCJzcGFuIik7aWYoIWUucGFyZW50LnNvbWUobD0+bC5wcm9wPT09bykpe2lmKHMucHJvcD1vLGUudmFsdWUuaW5jbHVkZXMoInNwYW4iKSlzLnZhbHVlPWUudmFsdWUucmVwbGFjZSgvc3BhblxzL2ksIiIpO2Vsc2V7bGV0IGw7aWYoZS5wYXJlbnQud2Fsa0RlY2xzKGEsYz0+e2w9Y30pLGwpe2xldCBjPU51bWJlcihlLnZhbHVlKS1OdW1iZXIobC52YWx1ZSkrIiI7cy52YWx1ZT1jfWVsc2UgZS53YXJuKG4sYENhbiBub3QgcHJlZml4ICR7ZS5wcm9wfSAoJHthfSBpcyBub3QgZm91bmQpYCl9ZS5jbG9uZUJlZm9yZShzKX19fTttdS5uYW1lcz1bImdyaWQtcm93LWVuZCIsImdyaWQtY29sdW1uLWVuZCJdO1piLmV4cG9ydHM9bXV9KTt2YXIgdHc9eCgoVCQsZXcpPT57dSgpO3ZhciBhVD1qKCksZ3U9Y2xhc3MgZXh0ZW5kcyBhVHtjaGVjayhlKXtyZXR1cm4hZS52YWx1ZS5zcGxpdCgvXHMrLykuc29tZSh0PT57bGV0IGk9dC50b0xvd2VyQ2FzZSgpO3JldHVybiBpPT09InJldmVyc2UifHxpPT09ImFsdGVybmF0ZS1yZXZlcnNlIn0pfX07Z3UubmFtZXM9WyJhbmltYXRpb24iLCJhbmltYXRpb24tZGlyZWN0aW9uIl07ZXcuZXhwb3J0cz1ndX0pO3ZhciBpdz14KChSJCxydyk9Pnt1KCk7dmFyIG9UPVBlKCksbFQ9aigpLHl1PWNsYXNzIGV4dGVuZHMgbFR7aW5zZXJ0KGUsdCxpKXtsZXQgbjtpZihbbix0XT1vVCh0KSxuIT09MjAwOSlyZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKTtsZXQgcz1lLnZhbHVlLnNwbGl0KC9ccysvKS5maWx0ZXIoZD0+ZCE9PSJ3cmFwIiYmZCE9PSJub3dyYXAiJiYid3JhcC1yZXZlcnNlIik7aWYocy5sZW5ndGg9PT0wfHxlLnBhcmVudC5zb21lKGQ9PmQucHJvcD09PXQrImJveC1vcmllbnQifHxkLnByb3A9PT10KyJib3gtZGlyZWN0aW9uIikpcmV0dXJuO2xldCBvPXNbMF0sbD1vLmluY2x1ZGVzKCJyb3ciKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixjPW8uaW5jbHVkZXMoInJldmVyc2UiKT8icmV2ZXJzZSI6Im5vcm1hbCIsZj10aGlzLmNsb25lKGUpO3JldHVybiBmLnByb3A9dCsiYm94LW9yaWVudCIsZi52YWx1ZT1sLHRoaXMubmVlZENhc2NhZGUoZSkmJihmLnJhd3MuYmVmb3JlPXRoaXMuY2FsY0JlZm9yZShpLGUsdCkpLGUucGFyZW50Lmluc2VydEJlZm9yZShlLGYpLGY9dGhpcy5jbG9uZShlKSxmLnByb3A9dCsiYm94LWRpcmVjdGlvbiIsZi52YWx1ZT1jLHRoaXMubmVlZENhc2NhZGUoZSkmJihmLnJhd3MuYmVmb3JlPXRoaXMuY2FsY0JlZm9yZShpLGUsdCkpLGUucGFyZW50Lmluc2VydEJlZm9yZShlLGYpfX07eXUubmFtZXM9WyJmbGV4LWZsb3ciLCJib3gtZGlyZWN0aW9uIiwiYm94LW9yaWVudCJdO3J3LmV4cG9ydHM9eXV9KTt2YXIgc3c9eCgoUCQsbncpPT57dSgpO3ZhciB1VD1QZSgpLGZUPWooKSxidT1jbGFzcyBleHRlbmRzIGZUe25vcm1hbGl6ZSgpe3JldHVybiJmbGV4In1wcmVmaXhlZChlLHQpe2xldCBpO3JldHVybltpLHRdPXVUKHQpLGk9PT0yMDA5P3QrImJveC1mbGV4IjppPT09MjAxMj90KyJmbGV4LXBvc2l0aXZlIjpzdXBlci5wcmVmaXhlZChlLHQpfX07YnUubmFtZXM9WyJmbGV4LWdyb3ciLCJmbGV4LXBvc2l0aXZlIl07bncuZXhwb3J0cz1idX0pO3ZhciBvdz14KChJJCxhdyk9Pnt1KCk7dmFyIGNUPVBlKCkscFQ9aigpLHd1PWNsYXNzIGV4dGVuZHMgcFR7c2V0KGUsdCl7aWYoY1QodClbMF0hPT0yMDA5KXJldHVybiBzdXBlci5zZXQoZSx0KX19O3d1Lm5hbWVzPVsiZmxleC13cmFwIl07YXcuZXhwb3J0cz13dX0pO3ZhciB1dz14KChEJCxsdyk9Pnt1KCk7dmFyIGRUPWooKSxBcj1CdCgpLHZ1PWNsYXNzIGV4dGVuZHMgZFR7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9QXIucGFyc2UoZSksW2Esb109QXIudHJhbnNsYXRlKHMsMCwyKSxbbCxjXT1Bci50cmFuc2xhdGUocywxLDMpO1tbImdyaWQtcm93IixhXSxbImdyaWQtcm93LXNwYW4iLG9dLFsiZ3JpZC1jb2x1bW4iLGxdLFsiZ3JpZC1jb2x1bW4tc3BhbiIsY11dLmZvckVhY2goKFtmLGRdKT0+e0FyLmluc2VydERlY2woZSxmLGQpfSksQXIud2FyblRlbXBsYXRlU2VsZWN0b3JOb3RGb3VuZChlLG4pLEFyLndhcm5JZkdyaWRSb3dDb2x1bW5FeGlzdHMoZSxuKX19O3Z1Lm5hbWVzPVsiZ3JpZC1hcmVhIl07bHcuZXhwb3J0cz12dX0pO3ZhciBjdz14KChxJCxmdyk9Pnt1KCk7dmFyIGhUPWooKSxCaT1CdCgpLHh1PWNsYXNzIGV4dGVuZHMgaFR7aW5zZXJ0KGUsdCxpKXtpZih0IT09Ii1tcy0iKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2lmKGUucGFyZW50LnNvbWUoYT0+YS5wcm9wPT09Ii1tcy1ncmlkLXJvdy1hbGlnbiIpKXJldHVybjtsZXRbW24sc11dPUJpLnBhcnNlKGUpO3M/KEJpLmluc2VydERlY2woZSwiZ3JpZC1yb3ctYWxpZ24iLG4pLEJpLmluc2VydERlY2woZSwiZ3JpZC1jb2x1bW4tYWxpZ24iLHMpKTooQmkuaW5zZXJ0RGVjbChlLCJncmlkLXJvdy1hbGlnbiIsbiksQmkuaW5zZXJ0RGVjbChlLCJncmlkLWNvbHVtbi1hbGlnbiIsbikpfX07eHUubmFtZXM9WyJwbGFjZS1zZWxmIl07ZncuZXhwb3J0cz14dX0pO3ZhciBkdz14KCgkJCxwdyk9Pnt1KCk7dmFyIG1UPWooKSxrdT1jbGFzcyBleHRlbmRzIG1Ue2NoZWNrKGUpe2xldCB0PWUudmFsdWU7cmV0dXJuIXQuaW5jbHVkZXMoIi8iKXx8dC5pbmNsdWRlcygic3BhbiIpfW5vcm1hbGl6ZShlKXtyZXR1cm4gZS5yZXBsYWNlKCItc3RhcnQiLCIiKX1wcmVmaXhlZChlLHQpe2xldCBpPXN1cGVyLnByZWZpeGVkKGUsdCk7cmV0dXJuIHQ9PT0iLW1zLSImJihpPWkucmVwbGFjZSgiLXN0YXJ0IiwiIikpLGl9fTtrdS5uYW1lcz1bImdyaWQtcm93LXN0YXJ0IiwiZ3JpZC1jb2x1bW4tc3RhcnQiXTtwdy5leHBvcnRzPWt1fSk7dmFyIGd3PXgoKEwkLG13KT0+e3UoKTt2YXIgaHc9UGUoKSxnVD1qKCksQ3I9Y2xhc3MgZXh0ZW5kcyBnVHtjaGVjayhlKXtyZXR1cm4gZS5wYXJlbnQmJiFlLnBhcmVudC5zb21lKHQ9PnQucHJvcCYmdC5wcm9wLnN0YXJ0c1dpdGgoImdyaWQtIikpfXByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09aHcodCksaT09PTIwMTI/dCsiZmxleC1pdGVtLWFsaWduIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJhbGlnbi1zZWxmIn1zZXQoZSx0KXtsZXQgaT1odyh0KVswXTtpZihpPT09MjAxMilyZXR1cm4gZS52YWx1ZT1Dci5vbGRWYWx1ZXNbZS52YWx1ZV18fGUudmFsdWUsc3VwZXIuc2V0KGUsdCk7aWYoaT09PSJmaW5hbCIpcmV0dXJuIHN1cGVyLnNldChlLHQpfX07Q3IubmFtZXM9WyJhbGlnbi1zZWxmIiwiZmxleC1pdGVtLWFsaWduIl07Q3Iub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQifTttdy5leHBvcnRzPUNyfSk7dmFyIGJ3PXgoKE0kLHl3KT0+e3UoKTt2YXIgeVQ9aigpLGJUPV9lKCksU3U9Y2xhc3MgZXh0ZW5kcyB5VHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpO3RoaXMucHJlZml4ZXMmJih0aGlzLnByZWZpeGVzPWJULnVuaXEodGhpcy5wcmVmaXhlcy5tYXAobj0+bj09PSItbXMtIj8iLXdlYmtpdC0iOm4pKSl9fTtTdS5uYW1lcz1bImFwcGVhcmFuY2UiXTt5dy5leHBvcnRzPVN1fSk7dmFyIHh3PXgoKE4kLHZ3KT0+e3UoKTt2YXIgd3c9UGUoKSx3VD1qKCksQXU9Y2xhc3MgZXh0ZW5kcyB3VHtub3JtYWxpemUoKXtyZXR1cm4iZmxleC1iYXNpcyJ9cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT13dyh0KSxpPT09MjAxMj90KyJmbGV4LXByZWZlcnJlZC1zaXplIjpzdXBlci5wcmVmaXhlZChlLHQpfXNldChlLHQpe2xldCBpO2lmKFtpLHRdPXd3KHQpLGk9PT0yMDEyfHxpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtBdS5uYW1lcz1bImZsZXgtYmFzaXMiLCJmbGV4LXByZWZlcnJlZC1zaXplIl07dncuZXhwb3J0cz1BdX0pO3ZhciBTdz14KChCJCxrdyk9Pnt1KCk7dmFyIHZUPWooKSxDdT1jbGFzcyBleHRlbmRzIHZUe25vcm1hbGl6ZSgpe3JldHVybiB0aGlzLm5hbWUucmVwbGFjZSgiYm94LWltYWdlIiwiYm9yZGVyIil9cHJlZml4ZWQoZSx0KXtsZXQgaT1zdXBlci5wcmVmaXhlZChlLHQpO3JldHVybiB0PT09Ii13ZWJraXQtIiYmKGk9aS5yZXBsYWNlKCJib3JkZXIiLCJib3gtaW1hZ2UiKSksaX19O0N1Lm5hbWVzPVsibWFzay1ib3JkZXIiLCJtYXNrLWJvcmRlci1zb3VyY2UiLCJtYXNrLWJvcmRlci1zbGljZSIsIm1hc2stYm9yZGVyLXdpZHRoIiwibWFzay1ib3JkZXItb3V0c2V0IiwibWFzay1ib3JkZXItcmVwZWF0IiwibWFzay1ib3gtaW1hZ2UiLCJtYXNrLWJveC1pbWFnZS1zb3VyY2UiLCJtYXNrLWJveC1pbWFnZS1zbGljZSIsIm1hc2stYm94LWltYWdlLXdpZHRoIiwibWFzay1ib3gtaW1hZ2Utb3V0c2V0IiwibWFzay1ib3gtaW1hZ2UtcmVwZWF0Il07a3cuZXhwb3J0cz1DdX0pO3ZhciBDdz14KChGJCxBdyk9Pnt1KCk7dmFyIHhUPWooKSxsdD1jbGFzcyBleHRlbmRzIHhUe2luc2VydChlLHQsaSl7bGV0IG49ZS5wcm9wPT09Im1hc2stY29tcG9zaXRlIixzO24/cz1lLnZhbHVlLnNwbGl0KCIsIik6cz1lLnZhbHVlLm1hdGNoKGx0LnJlZ2V4cCl8fFtdLHM9cy5tYXAoYz0+Yy50cmltKCkpLmZpbHRlcihjPT5jKTtsZXQgYT1zLmxlbmd0aCxvO2lmKGEmJihvPXRoaXMuY2xvbmUoZSksby52YWx1ZT1zLm1hcChjPT5sdC5vbGRWYWx1ZXNbY118fGMpLmpvaW4oIiwgIikscy5pbmNsdWRlcygiaW50ZXJzZWN0IikmJihvLnZhbHVlKz0iLCB4b3IiKSxvLnByb3A9dCsibWFzay1jb21wb3NpdGUiKSxuKXJldHVybiBhPyh0aGlzLm5lZWRDYXNjYWRlKGUpJiYoby5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxvKSk6dm9pZCAwO2xldCBsPXRoaXMuY2xvbmUoZSk7cmV0dXJuIGwucHJvcD10K2wucHJvcCxhJiYobC52YWx1ZT1sLnZhbHVlLnJlcGxhY2UobHQucmVnZXhwLCIiKSksdGhpcy5uZWVkQ2FzY2FkZShlKSYmKGwucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbCksYT8odGhpcy5uZWVkQ2FzY2FkZShlKSYmKG8ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSksZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbykpOmV9fTtsdC5uYW1lcz1bIm1hc2siLCJtYXNrLWNvbXBvc2l0ZSJdO2x0Lm9sZFZhbHVlcz17YWRkOiJzb3VyY2Utb3ZlciIsc3VidHJhY3Q6InNvdXJjZS1vdXQiLGludGVyc2VjdDoic291cmNlLWluIixleGNsdWRlOiJ4b3IifTtsdC5yZWdleHA9bmV3IFJlZ0V4cChgXFxzKygke09iamVjdC5rZXlzKGx0Lm9sZFZhbHVlcykuam9pbigifCIpfSlcXGIoPyFcXCkpXFxzKig/PVssXSlgLCJpZyIpO0F3LmV4cG9ydHM9bHR9KTt2YXIgT3c9eCgoaiQsRXcpPT57dSgpO3ZhciBfdz1QZSgpLGtUPWooKSxfcj1jbGFzcyBleHRlbmRzIGtUe3ByZWZpeGVkKGUsdCl7bGV0IGk7cmV0dXJuW2ksdF09X3codCksaT09PTIwMDk/dCsiYm94LWFsaWduIjppPT09MjAxMj90KyJmbGV4LWFsaWduIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJhbGlnbi1pdGVtcyJ9c2V0KGUsdCl7bGV0IGk9X3codClbMF07cmV0dXJuKGk9PT0yMDA5fHxpPT09MjAxMikmJihlLnZhbHVlPV9yLm9sZFZhbHVlc1tlLnZhbHVlXXx8ZS52YWx1ZSksc3VwZXIuc2V0KGUsdCl9fTtfci5uYW1lcz1bImFsaWduLWl0ZW1zIiwiZmxleC1hbGlnbiIsImJveC1hbGlnbiJdO19yLm9sZFZhbHVlcz17ImZsZXgtZW5kIjoiZW5kIiwiZmxleC1zdGFydCI6InN0YXJ0In07RXcuZXhwb3J0cz1fcn0pO3ZhciBSdz14KCh6JCxUdyk9Pnt1KCk7dmFyIFNUPWooKSxfdT1jbGFzcyBleHRlbmRzIFNUe3NldChlLHQpe3JldHVybiB0PT09Ii1tcy0iJiZlLnZhbHVlPT09ImNvbnRhaW4iJiYoZS52YWx1ZT0iZWxlbWVudCIpLHN1cGVyLnNldChlLHQpfWluc2VydChlLHQsaSl7aWYoIShlLnZhbHVlPT09ImFsbCImJnQ9PT0iLW1zLSIpKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpfX07X3UubmFtZXM9WyJ1c2VyLXNlbGVjdCJdO1R3LmV4cG9ydHM9X3V9KTt2YXIgRHc9eCgoVSQsSXcpPT57dSgpO3ZhciBQdz1QZSgpLEFUPWooKSxFdT1jbGFzcyBleHRlbmRzIEFUe25vcm1hbGl6ZSgpe3JldHVybiJmbGV4LXNocmluayJ9cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1Qdyh0KSxpPT09MjAxMj90KyJmbGV4LW5lZ2F0aXZlIjpzdXBlci5wcmVmaXhlZChlLHQpfXNldChlLHQpe2xldCBpO2lmKFtpLHRdPVB3KHQpLGk9PT0yMDEyfHxpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtFdS5uYW1lcz1bImZsZXgtc2hyaW5rIiwiZmxleC1uZWdhdGl2ZSJdO0l3LmV4cG9ydHM9RXV9KTt2YXIgJHc9eCgoViQscXcpPT57dSgpO3ZhciBDVD1qKCksT3U9Y2xhc3MgZXh0ZW5kcyBDVHtwcmVmaXhlZChlLHQpe3JldHVybmAke3R9Y29sdW1uLSR7ZX1gfW5vcm1hbGl6ZShlKXtyZXR1cm4gZS5pbmNsdWRlcygiaW5zaWRlIik/ImJyZWFrLWluc2lkZSI6ZS5pbmNsdWRlcygiYmVmb3JlIik/ImJyZWFrLWJlZm9yZSI6ImJyZWFrLWFmdGVyIn1zZXQoZSx0KXtyZXR1cm4oZS5wcm9wPT09ImJyZWFrLWluc2lkZSImJmUudmFsdWU9PT0iYXZvaWQtY29sdW1uInx8ZS52YWx1ZT09PSJhdm9pZC1wYWdlIikmJihlLnZhbHVlPSJhdm9pZCIpLHN1cGVyLnNldChlLHQpfWluc2VydChlLHQsaSl7aWYoZS5wcm9wIT09ImJyZWFrLWluc2lkZSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7aWYoISgvcmVnaW9uL2kudGVzdChlLnZhbHVlKXx8L3BhZ2UvaS50ZXN0KGUudmFsdWUpKSlyZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKX19O091Lm5hbWVzPVsiYnJlYWstaW5zaWRlIiwicGFnZS1icmVhay1pbnNpZGUiLCJjb2x1bW4tYnJlYWstaW5zaWRlIiwiYnJlYWstYmVmb3JlIiwicGFnZS1icmVhay1iZWZvcmUiLCJjb2x1bW4tYnJlYWstYmVmb3JlIiwiYnJlYWstYWZ0ZXIiLCJwYWdlLWJyZWFrLWFmdGVyIiwiY29sdW1uLWJyZWFrLWFmdGVyIl07cXcuZXhwb3J0cz1PdX0pO3ZhciBNdz14KChIJCxMdyk9Pnt1KCk7dmFyIF9UPWooKSxUdT1jbGFzcyBleHRlbmRzIF9Ue3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQrInByaW50LWNvbG9yLWFkanVzdCJ9bm9ybWFsaXplKCl7cmV0dXJuImNvbG9yLWFkanVzdCJ9fTtUdS5uYW1lcz1bImNvbG9yLWFkanVzdCIsInByaW50LWNvbG9yLWFkanVzdCJdO0x3LmV4cG9ydHM9VHV9KTt2YXIgQnc9eCgoVyQsTncpPT57dSgpO3ZhciBFVD1qKCksRXI9Y2xhc3MgZXh0ZW5kcyBFVHtpbnNlcnQoZSx0LGkpe2lmKHQ9PT0iLW1zLSIpe2xldCBuPXRoaXMuc2V0KHRoaXMuY2xvbmUoZSksdCk7dGhpcy5uZWVkQ2FzY2FkZShlKSYmKG4ucmF3cy5iZWZvcmU9dGhpcy5jYWxjQmVmb3JlKGksZSx0KSk7bGV0IHM9Imx0ciI7cmV0dXJuIGUucGFyZW50Lm5vZGVzLmZvckVhY2goYT0+e2EucHJvcD09PSJkaXJlY3Rpb24iJiYoYS52YWx1ZT09PSJydGwifHxhLnZhbHVlPT09Imx0ciIpJiYocz1hLnZhbHVlKX0pLG4udmFsdWU9RXIubXNWYWx1ZXNbc11bZS52YWx1ZV18fGUudmFsdWUsZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKGUsbil9cmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSl9fTtFci5uYW1lcz1bIndyaXRpbmctbW9kZSJdO0VyLm1zVmFsdWVzPXtsdHI6eyJob3Jpem9udGFsLXRiIjoibHItdGIiLCJ2ZXJ0aWNhbC1ybCI6InRiLXJsIiwidmVydGljYWwtbHIiOiJ0Yi1sciJ9LHJ0bDp7Imhvcml6b250YWwtdGIiOiJybC10YiIsInZlcnRpY2FsLXJsIjoiYnQtcmwiLCJ2ZXJ0aWNhbC1sciI6ImJ0LWxyIn19O053LmV4cG9ydHM9RXJ9KTt2YXIganc9eCgoRyQsRncpPT57dSgpO3ZhciBPVD1qKCksUnU9Y2xhc3MgZXh0ZW5kcyBPVHtzZXQoZSx0KXtyZXR1cm4gZS52YWx1ZT1lLnZhbHVlLnJlcGxhY2UoL1xzK2ZpbGwoXHMpLywiJDEiKSxzdXBlci5zZXQoZSx0KX19O1J1Lm5hbWVzPVsiYm9yZGVyLWltYWdlIl07RncuZXhwb3J0cz1SdX0pO3ZhciBWdz14KChRJCxVdyk9Pnt1KCk7dmFyIHp3PVBlKCksVFQ9aigpLE9yPWNsYXNzIGV4dGVuZHMgVFR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT16dyh0KSxpPT09MjAxMj90KyJmbGV4LWxpbmUtcGFjayI6c3VwZXIucHJlZml4ZWQoZSx0KX1ub3JtYWxpemUoKXtyZXR1cm4iYWxpZ24tY29udGVudCJ9c2V0KGUsdCl7bGV0IGk9encodClbMF07aWYoaT09PTIwMTIpcmV0dXJuIGUudmFsdWU9T3Iub2xkVmFsdWVzW2UudmFsdWVdfHxlLnZhbHVlLHN1cGVyLnNldChlLHQpO2lmKGk9PT0iZmluYWwiKXJldHVybiBzdXBlci5zZXQoZSx0KX19O09yLm5hbWVzPVsiYWxpZ24tY29udGVudCIsImZsZXgtbGluZS1wYWNrIl07T3Iub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQiLCJzcGFjZS1iZXR3ZWVuIjoianVzdGlmeSIsInNwYWNlLWFyb3VuZCI6ImRpc3RyaWJ1dGUifTtVdy5leHBvcnRzPU9yfSk7dmFyIFd3PXgoKFkkLEh3KT0+e3UoKTt2YXIgUlQ9aigpLFdlPWNsYXNzIGV4dGVuZHMgUlR7cHJlZml4ZWQoZSx0KXtyZXR1cm4gdD09PSItbW96LSI/dCsoV2UudG9Nb3ppbGxhW2VdfHxlKTpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZShlKXtyZXR1cm4gV2UudG9Ob3JtYWxbZV18fGV9fTtXZS5uYW1lcz1bImJvcmRlci1yYWRpdXMiXTtXZS50b01vemlsbGE9e307V2UudG9Ob3JtYWw9e307Zm9yKGxldCByIG9mWyJ0b3AiLCJib3R0b20iXSlmb3IobGV0IGUgb2ZbImxlZnQiLCJyaWdodCJdKXtsZXQgdD1gYm9yZGVyLSR7cn0tJHtlfS1yYWRpdXNgLGk9YGJvcmRlci1yYWRpdXMtJHtyfSR7ZX1gO1dlLm5hbWVzLnB1c2godCksV2UubmFtZXMucHVzaChpKSxXZS50b01vemlsbGFbdF09aSxXZS50b05vcm1hbFtpXT10fUh3LmV4cG9ydHM9V2V9KTt2YXIgUXc9eCgoSyQsR3cpPT57dSgpO3ZhciBQVD1qKCksUHU9Y2xhc3MgZXh0ZW5kcyBQVHtwcmVmaXhlZChlLHQpe3JldHVybiBlLmluY2x1ZGVzKCItc3RhcnQiKT90K2UucmVwbGFjZSgiLWJsb2NrLXN0YXJ0IiwiLWJlZm9yZSIpOnQrZS5yZXBsYWNlKCItYmxvY2stZW5kIiwiLWFmdGVyIil9bm9ybWFsaXplKGUpe3JldHVybiBlLmluY2x1ZGVzKCItYmVmb3JlIik/ZS5yZXBsYWNlKCItYmVmb3JlIiwiLWJsb2NrLXN0YXJ0Iik6ZS5yZXBsYWNlKCItYWZ0ZXIiLCItYmxvY2stZW5kIil9fTtQdS5uYW1lcz1bImJvcmRlci1ibG9jay1zdGFydCIsImJvcmRlci1ibG9jay1lbmQiLCJtYXJnaW4tYmxvY2stc3RhcnQiLCJtYXJnaW4tYmxvY2stZW5kIiwicGFkZGluZy1ibG9jay1zdGFydCIsInBhZGRpbmctYmxvY2stZW5kIiwiYm9yZGVyLWJlZm9yZSIsImJvcmRlci1hZnRlciIsIm1hcmdpbi1iZWZvcmUiLCJtYXJnaW4tYWZ0ZXIiLCJwYWRkaW5nLWJlZm9yZSIsInBhZGRpbmctYWZ0ZXIiXTtHdy5leHBvcnRzPVB1fSk7dmFyIEt3PXgoKFgkLFl3KT0+e3UoKTt2YXIgSVQ9aigpLHtwYXJzZVRlbXBsYXRlOkRULHdhcm5NaXNzZWRBcmVhczpxVCxnZXRHcmlkR2FwOiRULHdhcm5HcmlkR2FwOkxULGluaGVyaXRHcmlkR2FwOk1UfT1CdCgpLEl1PWNsYXNzIGV4dGVuZHMgSVR7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7aWYoZS5wYXJlbnQuc29tZShoPT5oLnByb3A9PT0iLW1zLWdyaWQtcm93cyIpKXJldHVybjtsZXQgcz0kVChlKSxhPU1UKGUscykse3Jvd3M6byxjb2x1bW5zOmwsYXJlYXM6Y309RFQoe2RlY2w6ZSxnYXA6YXx8c30pLGY9T2JqZWN0LmtleXMoYykubGVuZ3RoPjAsZD1Cb29sZWFuKG8pLHA9Qm9vbGVhbihsKTtyZXR1cm4gTFQoe2dhcDpzLGhhc0NvbHVtbnM6cCxkZWNsOmUscmVzdWx0Om59KSxxVChjLGUsbiksKGQmJnB8fGYpJiZlLmNsb25lQmVmb3JlKHtwcm9wOiItbXMtZ3JpZC1yb3dzIix2YWx1ZTpvLHJhd3M6e319KSxwJiZlLmNsb25lQmVmb3JlKHtwcm9wOiItbXMtZ3JpZC1jb2x1bW5zIix2YWx1ZTpsLHJhd3M6e319KSxlfX07SXUubmFtZXM9WyJncmlkLXRlbXBsYXRlIl07WXcuZXhwb3J0cz1JdX0pO3ZhciBadz14KChaJCxYdyk9Pnt1KCk7dmFyIE5UPWooKSxEdT1jbGFzcyBleHRlbmRzIE5Ue3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQrZS5yZXBsYWNlKCItaW5saW5lIiwiIil9bm9ybWFsaXplKGUpe3JldHVybiBlLnJlcGxhY2UoLyhtYXJnaW58cGFkZGluZ3xib3JkZXIpLShzdGFydHxlbmQpLywiJDEtaW5saW5lLSQyIil9fTtEdS5uYW1lcz1bImJvcmRlci1pbmxpbmUtc3RhcnQiLCJib3JkZXItaW5saW5lLWVuZCIsIm1hcmdpbi1pbmxpbmUtc3RhcnQiLCJtYXJnaW4taW5saW5lLWVuZCIsInBhZGRpbmctaW5saW5lLXN0YXJ0IiwicGFkZGluZy1pbmxpbmUtZW5kIiwiYm9yZGVyLXN0YXJ0IiwiYm9yZGVyLWVuZCIsIm1hcmdpbi1zdGFydCIsIm1hcmdpbi1lbmQiLCJwYWRkaW5nLXN0YXJ0IiwicGFkZGluZy1lbmQiXTtYdy5leHBvcnRzPUR1fSk7dmFyIGUwPXgoKEokLEp3KT0+e3UoKTt2YXIgQlQ9aigpLHF1PWNsYXNzIGV4dGVuZHMgQlR7Y2hlY2soZSl7cmV0dXJuIWUudmFsdWUuaW5jbHVkZXMoImZsZXgtIikmJmUudmFsdWUhPT0iYmFzZWxpbmUifXByZWZpeGVkKGUsdCl7cmV0dXJuIHQrImdyaWQtcm93LWFsaWduIn1ub3JtYWxpemUoKXtyZXR1cm4iYWxpZ24tc2VsZiJ9fTtxdS5uYW1lcz1bImdyaWQtcm93LWFsaWduIl07SncuZXhwb3J0cz1xdX0pO3ZhciByMD14KChlTCx0MCk9Pnt1KCk7dmFyIEZUPWooKSxUcj1jbGFzcyBleHRlbmRzIEZUe2tleWZyYW1lUGFyZW50cyhlKXtsZXR7cGFyZW50OnR9PWU7Zm9yKDt0Oyl7aWYodC50eXBlPT09ImF0cnVsZSImJnQubmFtZT09PSJrZXlmcmFtZXMiKXJldHVybiEwOyh7cGFyZW50OnR9PXQpfXJldHVybiExfWNvbnRhaW4zZChlKXtpZihlLnByb3A9PT0idHJhbnNmb3JtLW9yaWdpbiIpcmV0dXJuITE7Zm9yKGxldCB0IG9mIFRyLmZ1bmN0aW9uczNkKWlmKGUudmFsdWUuaW5jbHVkZXMoYCR7dH0oYCkpcmV0dXJuITA7cmV0dXJuITF9c2V0KGUsdCl7cmV0dXJuIGU9c3VwZXIuc2V0KGUsdCksdD09PSItbXMtIiYmKGUudmFsdWU9ZS52YWx1ZS5yZXBsYWNlKC9yb3RhdGV6L2dpLCJyb3RhdGUiKSksZX1pbnNlcnQoZSx0LGkpe2lmKHQ9PT0iLW1zLSIpe2lmKCF0aGlzLmNvbnRhaW4zZChlKSYmIXRoaXMua2V5ZnJhbWVQYXJlbnRzKGUpKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpfWVsc2UgaWYodD09PSItby0iKXtpZighdGhpcy5jb250YWluM2QoZSkpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSl9ZWxzZSByZXR1cm4gc3VwZXIuaW5zZXJ0KGUsdCxpKX19O1RyLm5hbWVzPVsidHJhbnNmb3JtIiwidHJhbnNmb3JtLW9yaWdpbiJdO1RyLmZ1bmN0aW9uczNkPVsibWF0cml4M2QiLCJ0cmFuc2xhdGUzZCIsInRyYW5zbGF0ZVoiLCJzY2FsZTNkIiwic2NhbGVaIiwicm90YXRlM2QiLCJyb3RhdGVYIiwicm90YXRlWSIsInBlcnNwZWN0aXZlIl07dDAuZXhwb3J0cz1Ucn0pO3ZhciBzMD14KCh0TCxuMCk9Pnt1KCk7dmFyIGkwPVBlKCksalQ9aigpLCR1PWNsYXNzIGV4dGVuZHMgalR7bm9ybWFsaXplKCl7cmV0dXJuImZsZXgtZGlyZWN0aW9uIn1pbnNlcnQoZSx0LGkpe2xldCBuO2lmKFtuLHRdPWkwKHQpLG4hPT0yMDA5KXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2lmKGUucGFyZW50LnNvbWUoZj0+Zi5wcm9wPT09dCsiYm94LW9yaWVudCJ8fGYucHJvcD09PXQrImJveC1kaXJlY3Rpb24iKSlyZXR1cm47bGV0IGE9ZS52YWx1ZSxvLGw7YT09PSJpbmhlcml0Inx8YT09PSJpbml0aWFsInx8YT09PSJ1bnNldCI/KG89YSxsPWEpOihvPWEuaW5jbHVkZXMoInJvdyIpPyJob3Jpem9udGFsIjoidmVydGljYWwiLGw9YS5pbmNsdWRlcygicmV2ZXJzZSIpPyJyZXZlcnNlIjoibm9ybWFsIik7bGV0IGM9dGhpcy5jbG9uZShlKTtyZXR1cm4gYy5wcm9wPXQrImJveC1vcmllbnQiLGMudmFsdWU9byx0aGlzLm5lZWRDYXNjYWRlKGUpJiYoYy5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxjKSxjPXRoaXMuY2xvbmUoZSksYy5wcm9wPXQrImJveC1kaXJlY3Rpb24iLGMudmFsdWU9bCx0aGlzLm5lZWRDYXNjYWRlKGUpJiYoYy5yYXdzLmJlZm9yZT10aGlzLmNhbGNCZWZvcmUoaSxlLHQpKSxlLnBhcmVudC5pbnNlcnRCZWZvcmUoZSxjKX1vbGQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1pMCh0KSxpPT09MjAwOT9bdCsiYm94LW9yaWVudCIsdCsiYm94LWRpcmVjdGlvbiJdOnN1cGVyLm9sZChlLHQpfX07JHUubmFtZXM9WyJmbGV4LWRpcmVjdGlvbiIsImJveC1kaXJlY3Rpb24iLCJib3gtb3JpZW50Il07bjAuZXhwb3J0cz0kdX0pO3ZhciBvMD14KChyTCxhMCk9Pnt1KCk7dmFyIHpUPWooKSxMdT1jbGFzcyBleHRlbmRzIHpUe2NoZWNrKGUpe3JldHVybiBlLnZhbHVlPT09InBpeGVsYXRlZCJ9cHJlZml4ZWQoZSx0KXtyZXR1cm4gdD09PSItbXMtIj8iLW1zLWludGVycG9sYXRpb24tbW9kZSI6c3VwZXIucHJlZml4ZWQoZSx0KX1zZXQoZSx0KXtyZXR1cm4gdCE9PSItbXMtIj9zdXBlci5zZXQoZSx0KTooZS5wcm9wPSItbXMtaW50ZXJwb2xhdGlvbi1tb2RlIixlLnZhbHVlPSJuZWFyZXN0LW5laWdoYm9yIixlKX1ub3JtYWxpemUoKXtyZXR1cm4iaW1hZ2UtcmVuZGVyaW5nIn1wcm9jZXNzKGUsdCl7cmV0dXJuIHN1cGVyLnByb2Nlc3MoZSx0KX19O0x1Lm5hbWVzPVsiaW1hZ2UtcmVuZGVyaW5nIiwiaW50ZXJwb2xhdGlvbi1tb2RlIl07YTAuZXhwb3J0cz1MdX0pO3ZhciB1MD14KChpTCxsMCk9Pnt1KCk7dmFyIFVUPWooKSxWVD1fZSgpLE11PWNsYXNzIGV4dGVuZHMgVVR7Y29uc3RydWN0b3IoZSx0LGkpe3N1cGVyKGUsdCxpKTt0aGlzLnByZWZpeGVzJiYodGhpcy5wcmVmaXhlcz1WVC51bmlxKHRoaXMucHJlZml4ZXMubWFwKG49Pm49PT0iLW1zLSI/Ii13ZWJraXQtIjpuKSkpfX07TXUubmFtZXM9WyJiYWNrZHJvcC1maWx0ZXIiXTtsMC5leHBvcnRzPU11fSk7dmFyIGMwPXgoKG5MLGYwKT0+e3UoKTt2YXIgSFQ9aigpLFdUPV9lKCksTnU9Y2xhc3MgZXh0ZW5kcyBIVHtjb25zdHJ1Y3RvcihlLHQsaSl7c3VwZXIoZSx0LGkpO3RoaXMucHJlZml4ZXMmJih0aGlzLnByZWZpeGVzPVdULnVuaXEodGhpcy5wcmVmaXhlcy5tYXAobj0+bj09PSItbXMtIj8iLXdlYmtpdC0iOm4pKSl9Y2hlY2soZSl7cmV0dXJuIGUudmFsdWUudG9Mb3dlckNhc2UoKT09PSJ0ZXh0In19O051Lm5hbWVzPVsiYmFja2dyb3VuZC1jbGlwIl07ZjAuZXhwb3J0cz1OdX0pO3ZhciBkMD14KChzTCxwMCk9Pnt1KCk7dmFyIEdUPWooKSxRVD1bIm5vbmUiLCJ1bmRlcmxpbmUiLCJvdmVybGluZSIsImxpbmUtdGhyb3VnaCIsImJsaW5rIiwiaW5oZXJpdCIsImluaXRpYWwiLCJ1bnNldCJdLEJ1PWNsYXNzIGV4dGVuZHMgR1R7Y2hlY2soZSl7cmV0dXJuIGUudmFsdWUuc3BsaXQoL1xzKy8pLnNvbWUodD0+IVFULmluY2x1ZGVzKHQpKX19O0J1Lm5hbWVzPVsidGV4dC1kZWNvcmF0aW9uIl07cDAuZXhwb3J0cz1CdX0pO3ZhciBnMD14KChhTCxtMCk9Pnt1KCk7dmFyIGgwPVBlKCksWVQ9aigpLFJyPWNsYXNzIGV4dGVuZHMgWVR7cHJlZml4ZWQoZSx0KXtsZXQgaTtyZXR1cm5baSx0XT1oMCh0KSxpPT09MjAwOT90KyJib3gtcGFjayI6aT09PTIwMTI/dCsiZmxleC1wYWNrIjpzdXBlci5wcmVmaXhlZChlLHQpfW5vcm1hbGl6ZSgpe3JldHVybiJqdXN0aWZ5LWNvbnRlbnQifXNldChlLHQpe2xldCBpPWgwKHQpWzBdO2lmKGk9PT0yMDA5fHxpPT09MjAxMil7bGV0IG49UnIub2xkVmFsdWVzW2UudmFsdWVdfHxlLnZhbHVlO2lmKGUudmFsdWU9bixpIT09MjAwOXx8biE9PSJkaXN0cmlidXRlIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9ZWxzZSBpZihpPT09ImZpbmFsIilyZXR1cm4gc3VwZXIuc2V0KGUsdCl9fTtSci5uYW1lcz1bImp1c3RpZnktY29udGVudCIsImZsZXgtcGFjayIsImJveC1wYWNrIl07UnIub2xkVmFsdWVzPXsiZmxleC1lbmQiOiJlbmQiLCJmbGV4LXN0YXJ0Ijoic3RhcnQiLCJzcGFjZS1iZXR3ZWVuIjoianVzdGlmeSIsInNwYWNlLWFyb3VuZCI6ImRpc3RyaWJ1dGUifTttMC5leHBvcnRzPVJyfSk7dmFyIGIwPXgoKG9MLHkwKT0+e3UoKTt2YXIgS1Q9aigpLEZ1PWNsYXNzIGV4dGVuZHMgS1R7c2V0KGUsdCl7bGV0IGk9ZS52YWx1ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09Ii13ZWJraXQtIiYmIWkuaW5jbHVkZXMoIiAiKSYmaSE9PSJjb250YWluIiYmaSE9PSJjb3ZlciImJihlLnZhbHVlPWUudmFsdWUrIiAiK2UudmFsdWUpLHN1cGVyLnNldChlLHQpfX07RnUubmFtZXM9WyJiYWNrZ3JvdW5kLXNpemUiXTt5MC5leHBvcnRzPUZ1fSk7dmFyIHYwPXgoKGxMLHcwKT0+e3UoKTt2YXIgWFQ9aigpLGp1PUJ0KCksenU9Y2xhc3MgZXh0ZW5kcyBYVHtpbnNlcnQoZSx0LGkpe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IG49anUucGFyc2UoZSksW3MsYV09anUudHJhbnNsYXRlKG4sMCwxKTtuWzBdJiZuWzBdLmluY2x1ZGVzKCJzcGFuIikmJihhPW5bMF0uam9pbigiIikucmVwbGFjZSgvXEQvZywiIikpLFtbZS5wcm9wLHNdLFtgJHtlLnByb3B9LXNwYW5gLGFdXS5mb3JFYWNoKChbbCxjXSk9PntqdS5pbnNlcnREZWNsKGUsbCxjKX0pfX07enUubmFtZXM9WyJncmlkLXJvdyIsImdyaWQtY29sdW1uIl07dzAuZXhwb3J0cz16dX0pO3ZhciBTMD14KCh1TCxrMCk9Pnt1KCk7dmFyIFpUPWooKSx7cHJlZml4VHJhY2tQcm9wOngwLHByZWZpeFRyYWNrVmFsdWU6SlQsYXV0b3BsYWNlR3JpZEl0ZW1zOmVSLGdldEdyaWRHYXA6dFIsaW5oZXJpdEdyaWRHYXA6clJ9PUJ0KCksaVI9b3UoKSxVdT1jbGFzcyBleHRlbmRzIFpUe3ByZWZpeGVkKGUsdCl7cmV0dXJuIHQ9PT0iLW1zLSI/eDAoe3Byb3A6ZSxwcmVmaXg6dH0pOnN1cGVyLnByZWZpeGVkKGUsdCl9bm9ybWFsaXplKGUpe3JldHVybiBlLnJlcGxhY2UoL15ncmlkLShyb3dzfGNvbHVtbnMpLywiZ3JpZC10ZW1wbGF0ZS0kMSIpfWluc2VydChlLHQsaSxuKXtpZih0IT09Ii1tcy0iKXJldHVybiBzdXBlci5pbnNlcnQoZSx0LGkpO2xldHtwYXJlbnQ6cyxwcm9wOmEsdmFsdWU6b309ZSxsPWEuaW5jbHVkZXMoInJvd3MiKSxjPWEuaW5jbHVkZXMoImNvbHVtbnMiKSxmPXMuc29tZShrPT5rLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZSJ8fGsucHJvcD09PSJncmlkLXRlbXBsYXRlLWFyZWFzIik7aWYoZiYmbClyZXR1cm4hMTtsZXQgZD1uZXcgaVIoe29wdGlvbnM6e319KSxwPWQuZ3JpZFN0YXR1cyhzLG4pLGg9dFIoZSk7aD1yUihlLGgpfHxoO2xldCBiPWw/aC5yb3c6aC5jb2x1bW47KHA9PT0ibm8tYXV0b3BsYWNlInx8cD09PSEwKSYmIWYmJihiPW51bGwpO2xldCB2PUpUKHt2YWx1ZTpvLGdhcDpifSk7ZS5jbG9uZUJlZm9yZSh7cHJvcDp4MCh7cHJvcDphLHByZWZpeDp0fSksdmFsdWU6dn0pO2xldCB5PXMubm9kZXMuZmluZChrPT5rLnByb3A9PT0iZ3JpZC1hdXRvLWZsb3ciKSx3PSJyb3ciO2lmKHkmJiFkLmRpc2FibGVkKHksbikmJih3PXkudmFsdWUudHJpbSgpKSxwPT09ImF1dG9wbGFjZSIpe2xldCBrPXMubm9kZXMuZmluZChFPT5FLnByb3A9PT0iZ3JpZC10ZW1wbGF0ZS1yb3dzIik7aWYoIWsmJmYpcmV0dXJuO2lmKCFrJiYhZil7ZS53YXJuKG4sIkF1dG9wbGFjZW1lbnQgZG9lcyBub3Qgd29yayB3aXRob3V0IGdyaWQtdGVtcGxhdGUtcm93cyBwcm9wZXJ0eSIpO3JldHVybn0hcy5ub2Rlcy5maW5kKEU9PkUucHJvcD09PSJncmlkLXRlbXBsYXRlLWNvbHVtbnMiKSYmIWYmJmUud2FybihuLCJBdXRvcGxhY2VtZW50IGRvZXMgbm90IHdvcmsgd2l0aG91dCBncmlkLXRlbXBsYXRlLWNvbHVtbnMgcHJvcGVydHkiKSxjJiYhZiYmZVIoZSxuLGgsdyl9fX07VXUubmFtZXM9WyJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLXJvd3MiLCJncmlkLWNvbHVtbnMiXTtrMC5leHBvcnRzPVV1fSk7dmFyIEMwPXgoKGZMLEEwKT0+e3UoKTt2YXIgblI9aigpLFZ1PWNsYXNzIGV4dGVuZHMgblJ7Y2hlY2soZSl7cmV0dXJuIWUudmFsdWUuaW5jbHVkZXMoImZsZXgtIikmJmUudmFsdWUhPT0iYmFzZWxpbmUifXByZWZpeGVkKGUsdCl7cmV0dXJuIHQrImdyaWQtY29sdW1uLWFsaWduIn1ub3JtYWxpemUoKXtyZXR1cm4ianVzdGlmeS1zZWxmIn19O1Z1Lm5hbWVzPVsiZ3JpZC1jb2x1bW4tYWxpZ24iXTtBMC5leHBvcnRzPVZ1fSk7dmFyIEUwPXgoKGNMLF8wKT0+e3UoKTt2YXIgc1I9aigpLEh1PWNsYXNzIGV4dGVuZHMgc1J7cHJlZml4ZWQoZSx0KXtyZXR1cm4gdCsic2Nyb2xsLWNoYWluaW5nIn1ub3JtYWxpemUoKXtyZXR1cm4ib3ZlcnNjcm9sbC1iZWhhdmlvciJ9c2V0KGUsdCl7cmV0dXJuIGUudmFsdWU9PT0iYXV0byI/ZS52YWx1ZT0iY2hhaW5lZCI6KGUudmFsdWU9PT0ibm9uZSJ8fGUudmFsdWU9PT0iY29udGFpbiIpJiYoZS52YWx1ZT0ibm9uZSIpLHN1cGVyLnNldChlLHQpfX07SHUubmFtZXM9WyJvdmVyc2Nyb2xsLWJlaGF2aW9yIiwic2Nyb2xsLWNoYWluaW5nIl07XzAuZXhwb3J0cz1IdX0pO3ZhciBSMD14KChwTCxUMCk9Pnt1KCk7dmFyIGFSPWooKSx7cGFyc2VHcmlkQXJlYXM6b1Isd2Fybk1pc3NlZEFyZWFzOmxSLHByZWZpeFRyYWNrUHJvcDp1UixwcmVmaXhUcmFja1ZhbHVlOk8wLGdldEdyaWRHYXA6ZlIsd2FybkdyaWRHYXA6Y1IsaW5oZXJpdEdyaWRHYXA6cFJ9PUJ0KCk7ZnVuY3Rpb24gZFIocil7cmV0dXJuIHIudHJpbSgpLnNsaWNlKDEsLTEpLnNwbGl0KC9bIiddXHMqWyInXT8vZyl9dmFyIFd1PWNsYXNzIGV4dGVuZHMgYVJ7aW5zZXJ0KGUsdCxpLG4pe2lmKHQhPT0iLW1zLSIpcmV0dXJuIHN1cGVyLmluc2VydChlLHQsaSk7bGV0IHM9ITEsYT0hMSxvPWUucGFyZW50LGw9ZlIoZSk7bD1wUihlLGwpfHxsLG8ud2Fsa0RlY2xzKC8tbXMtZ3JpZC1yb3dzLyxkPT5kLnJlbW92ZSgpKSxvLndhbGtEZWNscygvZ3JpZC10ZW1wbGF0ZS0ocm93c3xjb2x1bW5zKS8sZD0+e2lmKGQucHJvcD09PSJncmlkLXRlbXBsYXRlLXJvd3MiKXthPSEwO2xldHtwcm9wOnAsdmFsdWU6aH09ZDtkLmNsb25lQmVmb3JlKHtwcm9wOnVSKHtwcm9wOnAscHJlZml4OnR9KSx2YWx1ZTpPMCh7dmFsdWU6aCxnYXA6bC5yb3d9KX0pfWVsc2Ugcz0hMH0pO2xldCBjPWRSKGUudmFsdWUpO3MmJiFhJiZsLnJvdyYmYy5sZW5ndGg+MSYmZS5jbG9uZUJlZm9yZSh7cHJvcDoiLW1zLWdyaWQtcm93cyIsdmFsdWU6TzAoe3ZhbHVlOmByZXBlYXQoJHtjLmxlbmd0aH0sIGF1dG8pYCxnYXA6bC5yb3d9KSxyYXdzOnt9fSksY1Ioe2dhcDpsLGhhc0NvbHVtbnM6cyxkZWNsOmUscmVzdWx0Om59KTtsZXQgZj1vUih7cm93czpjLGdhcDpsfSk7cmV0dXJuIGxSKGYsZSxuKSxlfX07V3UubmFtZXM9WyJncmlkLXRlbXBsYXRlLWFyZWFzIl07VDAuZXhwb3J0cz1XdX0pO3ZhciBJMD14KChkTCxQMCk9Pnt1KCk7dmFyIGhSPWooKSxHdT1jbGFzcyBleHRlbmRzIGhSe3NldChlLHQpe3JldHVybiB0PT09Ii13ZWJraXQtIiYmKGUudmFsdWU9ZS52YWx1ZS5yZXBsYWNlKC9ccyoocmlnaHR8bGVmdClccyovaSwiIikpLHN1cGVyLnNldChlLHQpfX07R3UubmFtZXM9WyJ0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uIl07UDAuZXhwb3J0cz1HdX0pO3ZhciBxMD14KChoTCxEMCk9Pnt1KCk7dmFyIG1SPWooKSxRdT1jbGFzcyBleHRlbmRzIG1Se3NldChlLHQpe3JldHVybiBlLnByb3A9PT0idGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rIiYmZS52YWx1ZT09PSJhdXRvIj8oZS5wcm9wPXQrInRleHQtZGVjb3JhdGlvbi1za2lwIixlLnZhbHVlPSJpbmsiLGUpOnN1cGVyLnNldChlLHQpfX07UXUubmFtZXM9WyJ0ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsiLCJ0ZXh0LWRlY29yYXRpb24tc2tpcCJdO0QwLmV4cG9ydHM9UXV9KTt2YXIgRjA9eCgobUwsQjApPT57dSgpOyJ1c2Ugc3RyaWN0IjtCMC5leHBvcnRzPXt3cmFwOiQwLGxpbWl0OkwwLHZhbGlkYXRlOk0wLHRlc3Q6WXUsY3Vycnk6Z1IsbmFtZTpOMH07ZnVuY3Rpb24gJDAocixlLHQpe3ZhciBpPWUtcjtyZXR1cm4oKHQtciklaStpKSVpK3J9ZnVuY3Rpb24gTDAocixlLHQpe3JldHVybiBNYXRoLm1heChyLE1hdGgubWluKGUsdCkpfWZ1bmN0aW9uIE0wKHIsZSx0LGksbil7aWYoIVl1KHIsZSx0LGksbikpdGhyb3cgbmV3IEVycm9yKHQrIiBpcyBvdXRzaWRlIG9mIHJhbmdlIFsiK3IrIiwiK2UrIikiKTtyZXR1cm4gdH1mdW5jdGlvbiBZdShyLGUsdCxpLG4pe3JldHVybiEodDxyfHx0PmV8fG4mJnQ9PT1lfHxpJiZ0PT09cil9ZnVuY3Rpb24gTjAocixlLHQsaSl7cmV0dXJuKHQ/IigiOiJbIikrcisiLCIrZSsoaT8iKSI6Il0iKX1mdW5jdGlvbiBnUihyLGUsdCxpKXt2YXIgbj1OMC5iaW5kKG51bGwscixlLHQsaSk7cmV0dXJue3dyYXA6JDAuYmluZChudWxsLHIsZSksbGltaXQ6TDAuYmluZChudWxsLHIsZSksdmFsaWRhdGU6ZnVuY3Rpb24ocyl7cmV0dXJuIE0wKHIsZSxzLHQsaSl9LHRlc3Q6ZnVuY3Rpb24ocyl7cmV0dXJuIFl1KHIsZSxzLHQsaSl9LHRvU3RyaW5nOm4sbmFtZTpufX19KTt2YXIgVTA9eCgoZ0wsejApPT57dSgpO3ZhciBLdT1NcygpLHlSPUYwKCksYlI9eHIoKSx3Uj1IZSgpLHZSPV9lKCksajA9L3RvcHxsZWZ0fHJpZ2h0fGJvdHRvbS9naSx3dD1jbGFzcyBleHRlbmRzIHdSe3JlcGxhY2UoZSx0KXtsZXQgaT1LdShlKTtmb3IobGV0IG4gb2YgaS5ub2RlcylpZihuLnR5cGU9PT0iZnVuY3Rpb24iJiZuLnZhbHVlPT09dGhpcy5uYW1lKWlmKG4ubm9kZXM9dGhpcy5uZXdEaXJlY3Rpb24obi5ub2Rlcyksbi5ub2Rlcz10aGlzLm5vcm1hbGl6ZShuLm5vZGVzKSx0PT09Ii13ZWJraXQtIG9sZCIpe2lmKCF0aGlzLm9sZFdlYmtpdChuKSlyZXR1cm4hMX1lbHNlIG4ubm9kZXM9dGhpcy5jb252ZXJ0RGlyZWN0aW9uKG4ubm9kZXMpLG4udmFsdWU9dCtuLnZhbHVlO3JldHVybiBpLnRvU3RyaW5nKCl9cmVwbGFjZUZpcnN0KGUsLi4udCl7cmV0dXJuIHQubWFwKG49Pm49PT0iICI/e3R5cGU6InNwYWNlIix2YWx1ZTpufTp7dHlwZToid29yZCIsdmFsdWU6bn0pLmNvbmNhdChlLnNsaWNlKDEpKX1ub3JtYWxpemVVbml0KGUsdCl7cmV0dXJuYCR7cGFyc2VGbG9hdChlKS90KjM2MH1kZWdgfW5vcm1hbGl6ZShlKXtpZighZVswXSlyZXR1cm4gZTtpZigvLT9cZCsoLlxkKyk/Z3JhZC8udGVzdChlWzBdLnZhbHVlKSllWzBdLnZhbHVlPXRoaXMubm9ybWFsaXplVW5pdChlWzBdLnZhbHVlLDQwMCk7ZWxzZSBpZigvLT9cZCsoLlxkKyk/cmFkLy50ZXN0KGVbMF0udmFsdWUpKWVbMF0udmFsdWU9dGhpcy5ub3JtYWxpemVVbml0KGVbMF0udmFsdWUsMipNYXRoLlBJKTtlbHNlIGlmKC8tP1xkKyguXGQrKT90dXJuLy50ZXN0KGVbMF0udmFsdWUpKWVbMF0udmFsdWU9dGhpcy5ub3JtYWxpemVVbml0KGVbMF0udmFsdWUsMSk7ZWxzZSBpZihlWzBdLnZhbHVlLmluY2x1ZGVzKCJkZWciKSl7bGV0IHQ9cGFyc2VGbG9hdChlWzBdLnZhbHVlKTt0PXlSLndyYXAoMCwzNjAsdCksZVswXS52YWx1ZT1gJHt0fWRlZ2B9cmV0dXJuIGVbMF0udmFsdWU9PT0iMGRlZyI/ZT10aGlzLnJlcGxhY2VGaXJzdChlLCJ0byIsIiAiLCJ0b3AiKTplWzBdLnZhbHVlPT09IjkwZGVnIj9lPXRoaXMucmVwbGFjZUZpcnN0KGUsInRvIiwiICIsInJpZ2h0Iik6ZVswXS52YWx1ZT09PSIxODBkZWciP2U9dGhpcy5yZXBsYWNlRmlyc3QoZSwidG8iLCIgIiwiYm90dG9tIik6ZVswXS52YWx1ZT09PSIyNzBkZWciJiYoZT10aGlzLnJlcGxhY2VGaXJzdChlLCJ0byIsIiAiLCJsZWZ0IikpLGV9bmV3RGlyZWN0aW9uKGUpe2lmKGVbMF0udmFsdWU9PT0idG8ifHwoajAubGFzdEluZGV4PTAsIWowLnRlc3QoZVswXS52YWx1ZSkpKXJldHVybiBlO2UudW5zaGlmdCh7dHlwZToid29yZCIsdmFsdWU6InRvIn0se3R5cGU6InNwYWNlIix2YWx1ZToiICJ9KTtmb3IobGV0IHQ9Mjt0PGUubGVuZ3RoJiZlW3RdLnR5cGUhPT0iZGl2Ijt0KyspZVt0XS50eXBlPT09IndvcmQiJiYoZVt0XS52YWx1ZT10aGlzLnJldmVydERpcmVjdGlvbihlW3RdLnZhbHVlKSk7cmV0dXJuIGV9aXNSYWRpYWwoZSl7bGV0IHQ9ImJlZm9yZSI7Zm9yKGxldCBpIG9mIGUpaWYodD09PSJiZWZvcmUiJiZpLnR5cGU9PT0ic3BhY2UiKXQ9ImF0IjtlbHNlIGlmKHQ9PT0iYXQiJiZpLnZhbHVlPT09ImF0Iil0PSJhZnRlciI7ZWxzZXtpZih0PT09ImFmdGVyIiYmaS50eXBlPT09InNwYWNlIilyZXR1cm4hMDtpZihpLnR5cGU9PT0iZGl2IilicmVhazt0PSJiZWZvcmUifXJldHVybiExfWNvbnZlcnREaXJlY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoPjAmJihlWzBdLnZhbHVlPT09InRvIj90aGlzLmZpeERpcmVjdGlvbihlKTplWzBdLnZhbHVlLmluY2x1ZGVzKCJkZWciKT90aGlzLmZpeEFuZ2xlKGUpOnRoaXMuaXNSYWRpYWwoZSkmJnRoaXMuZml4UmFkaWFsKGUpKSxlfWZpeERpcmVjdGlvbihlKXtlLnNwbGljZSgwLDIpO2ZvcihsZXQgdCBvZiBlKXtpZih0LnR5cGU9PT0iZGl2IilicmVhazt0LnR5cGU9PT0id29yZCImJih0LnZhbHVlPXRoaXMucmV2ZXJ0RGlyZWN0aW9uKHQudmFsdWUpKX19Zml4QW5nbGUoZSl7bGV0IHQ9ZVswXS52YWx1ZTt0PXBhcnNlRmxvYXQodCksdD1NYXRoLmFicyg0NTAtdCklMzYwLHQ9dGhpcy5yb3VuZEZsb2F0KHQsMyksZVswXS52YWx1ZT1gJHt0fWRlZ2B9Zml4UmFkaWFsKGUpe2xldCB0PVtdLGk9W10sbixzLGEsbyxsO2ZvcihvPTA7bzxlLmxlbmd0aC0yO28rKylpZihuPWVbb10scz1lW28rMV0sYT1lW28rMl0sbi50eXBlPT09InNwYWNlIiYmcy52YWx1ZT09PSJhdCImJmEudHlwZT09PSJzcGFjZSIpe2w9byszO2JyZWFrfWVsc2UgdC5wdXNoKG4pO2xldCBjO2ZvcihvPWw7bzxlLmxlbmd0aDtvKyspaWYoZVtvXS50eXBlPT09ImRpdiIpe2M9ZVtvXTticmVha31lbHNlIGkucHVzaChlW29dKTtlLnNwbGljZSgwLG8sLi4uaSxjLC4uLnQpfXJldmVydERpcmVjdGlvbihlKXtyZXR1cm4gd3QuZGlyZWN0aW9uc1tlLnRvTG93ZXJDYXNlKCldfHxlfXJvdW5kRmxvYXQoZSx0KXtyZXR1cm4gcGFyc2VGbG9hdChlLnRvRml4ZWQodCkpfW9sZFdlYmtpdChlKXtsZXR7bm9kZXM6dH09ZSxpPUt1LnN0cmluZ2lmeShlLm5vZGVzKTtpZih0aGlzLm5hbWUhPT0ibGluZWFyLWdyYWRpZW50Inx8dFswXSYmdFswXS52YWx1ZS5pbmNsdWRlcygiZGVnIil8fGkuaW5jbHVkZXMoInB4Iil8fGkuaW5jbHVkZXMoIi1jb3JuZXIiKXx8aS5pbmNsdWRlcygiLXNpZGUiKSlyZXR1cm4hMTtsZXQgbj1bW11dO2ZvcihsZXQgcyBvZiB0KW5bbi5sZW5ndGgtMV0ucHVzaChzKSxzLnR5cGU9PT0iZGl2IiYmcy52YWx1ZT09PSIsIiYmbi5wdXNoKFtdKTt0aGlzLm9sZERpcmVjdGlvbihuKSx0aGlzLmNvbG9yU3RvcHMobiksZS5ub2Rlcz1bXTtmb3IobGV0IHMgb2YgbillLm5vZGVzPWUubm9kZXMuY29uY2F0KHMpO3JldHVybiBlLm5vZGVzLnVuc2hpZnQoe3R5cGU6IndvcmQiLHZhbHVlOiJsaW5lYXIifSx0aGlzLmNsb25lRGl2KGUubm9kZXMpKSxlLnZhbHVlPSItd2Via2l0LWdyYWRpZW50IiwhMH1vbGREaXJlY3Rpb24oZSl7bGV0IHQ9dGhpcy5jbG9uZURpdihlWzBdKTtpZihlWzBdWzBdLnZhbHVlIT09InRvIilyZXR1cm4gZS51bnNoaWZ0KFt7dHlwZToid29yZCIsdmFsdWU6d3Qub2xkRGlyZWN0aW9ucy5ib3R0b219LHRdKTt7bGV0IGk9W107Zm9yKGxldCBzIG9mIGVbMF0uc2xpY2UoMikpcy50eXBlPT09IndvcmQiJiZpLnB1c2gocy52YWx1ZS50b0xvd2VyQ2FzZSgpKTtpPWkuam9pbigiICIpO2xldCBuPXd0Lm9sZERpcmVjdGlvbnNbaV18fGk7cmV0dXJuIGVbMF09W3t0eXBlOiJ3b3JkIix2YWx1ZTpufSx0XSxlWzBdfX1jbG9uZURpdihlKXtmb3IobGV0IHQgb2YgZSlpZih0LnR5cGU9PT0iZGl2IiYmdC52YWx1ZT09PSIsIilyZXR1cm4gdDtyZXR1cm57dHlwZToiZGl2Iix2YWx1ZToiLCIsYWZ0ZXI6IiAifX1jb2xvclN0b3BzKGUpe2xldCB0PVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7aSsrKXtsZXQgbixzPWVbaV0sYTtpZihpPT09MCljb250aW51ZTtsZXQgbz1LdS5zdHJpbmdpZnkoc1swXSk7c1sxXSYmc1sxXS50eXBlPT09IndvcmQiP249c1sxXS52YWx1ZTpzWzJdJiZzWzJdLnR5cGU9PT0id29yZCImJihuPXNbMl0udmFsdWUpO2xldCBsO2k9PT0xJiYoIW58fG49PT0iMCUiKT9sPWBmcm9tKCR7b30pYDppPT09ZS5sZW5ndGgtMSYmKCFufHxuPT09IjEwMCUiKT9sPWB0bygke299KWA6bj9sPWBjb2xvci1zdG9wKCR7bn0sICR7b30pYDpsPWBjb2xvci1zdG9wKCR7b30pYDtsZXQgYz1zW3MubGVuZ3RoLTFdO2VbaV09W3t0eXBlOiJ3b3JkIix2YWx1ZTpsfV0sYy50eXBlPT09ImRpdiImJmMudmFsdWU9PT0iLCImJihhPWVbaV0ucHVzaChjKSksdC5wdXNoKGEpfXJldHVybiB0fW9sZChlKXtpZihlPT09Ii13ZWJraXQtIil7bGV0IHQ9dGhpcy5uYW1lPT09ImxpbmVhci1ncmFkaWVudCI/ImxpbmVhciI6InJhZGlhbCIsaT0iLWdyYWRpZW50IixuPXZSLnJlZ2V4cChgLXdlYmtpdC0oJHt0fS1ncmFkaWVudHxncmFkaWVudFxcKFxccyoke3R9KWAsITEpO3JldHVybiBuZXcgYlIodGhpcy5uYW1lLGUrdGhpcy5uYW1lLGksbil9ZWxzZSByZXR1cm4gc3VwZXIub2xkKGUpfWFkZChlLHQpe2xldCBpPWUucHJvcDtpZihpLmluY2x1ZGVzKCJtYXNrIikpe2lmKHQ9PT0iLXdlYmtpdC0ifHx0PT09Ii13ZWJraXQtIG9sZCIpcmV0dXJuIHN1cGVyLmFkZChlLHQpfWVsc2UgaWYoaT09PSJsaXN0LXN0eWxlInx8aT09PSJsaXN0LXN0eWxlLWltYWdlInx8aT09PSJjb250ZW50Iil7aWYodD09PSItd2Via2l0LSJ8fHQ9PT0iLXdlYmtpdC0gb2xkIilyZXR1cm4gc3VwZXIuYWRkKGUsdCl9ZWxzZSByZXR1cm4gc3VwZXIuYWRkKGUsdCl9fTt3dC5uYW1lcz1bImxpbmVhci1ncmFkaWVudCIsInJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLCJyYWRpYWwtZ3JhZGllbnQiLCJyZXBlYXRpbmctcmFkaWFsLWdyYWRpZW50Il07d3QuZGlyZWN0aW9ucz17dG9wOiJib3R0b20iLGxlZnQ6InJpZ2h0Iixib3R0b206InRvcCIscmlnaHQ6ImxlZnQifTt3dC5vbGREaXJlY3Rpb25zPXt0b3A6ImxlZnQgYm90dG9tLCBsZWZ0IHRvcCIsbGVmdDoicmlnaHQgdG9wLCBsZWZ0IHRvcCIsYm90dG9tOiJsZWZ0IHRvcCwgbGVmdCBib3R0b20iLHJpZ2h0OiJsZWZ0IHRvcCwgcmlnaHQgdG9wIiwidG9wIHJpZ2h0IjoibGVmdCBib3R0b20sIHJpZ2h0IHRvcCIsInRvcCBsZWZ0IjoicmlnaHQgYm90dG9tLCBsZWZ0IHRvcCIsInJpZ2h0IHRvcCI6ImxlZnQgYm90dG9tLCByaWdodCB0b3AiLCJyaWdodCBib3R0b20iOiJsZWZ0IHRvcCwgcmlnaHQgYm90dG9tIiwiYm90dG9tIHJpZ2h0IjoibGVmdCB0b3AsIHJpZ2h0IGJvdHRvbSIsImJvdHRvbSBsZWZ0IjoicmlnaHQgdG9wLCBsZWZ0IGJvdHRvbSIsImxlZnQgdG9wIjoicmlnaHQgYm90dG9tLCBsZWZ0IHRvcCIsImxlZnQgYm90dG9tIjoicmlnaHQgdG9wLCBsZWZ0IGJvdHRvbSJ9O3owLmV4cG9ydHM9d3R9KTt2YXIgVzA9eCgoeUwsSDApPT57dSgpO3ZhciB4Uj14cigpLGtSPUhlKCk7ZnVuY3Rpb24gVjAocil7cmV0dXJuIG5ldyBSZWdFeHAoYChefFtcXHMsKF0pKCR7cn0oJHxbXFxzKSxdKSlgLCJnaSIpfXZhciBYdT1jbGFzcyBleHRlbmRzIGtSe3JlZ2V4cCgpe3JldHVybiB0aGlzLnJlZ2V4cENhY2hlfHwodGhpcy5yZWdleHBDYWNoZT1WMCh0aGlzLm5hbWUpKSx0aGlzLnJlZ2V4cENhY2hlfWlzU3RyZXRjaCgpe3JldHVybiB0aGlzLm5hbWU9PT0ic3RyZXRjaCJ8fHRoaXMubmFtZT09PSJmaWxsInx8dGhpcy5uYW1lPT09ImZpbGwtYXZhaWxhYmxlIn1yZXBsYWNlKGUsdCl7cmV0dXJuIHQ9PT0iLW1vei0iJiZ0aGlzLmlzU3RyZXRjaCgpP2UucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLCIkMS1tb3otYXZhaWxhYmxlJDMiKTp0PT09Ii13ZWJraXQtIiYmdGhpcy5pc1N0cmV0Y2goKT9lLnJlcGxhY2UodGhpcy5yZWdleHAoKSwiJDEtd2Via2l0LWZpbGwtYXZhaWxhYmxlJDMiKTpzdXBlci5yZXBsYWNlKGUsdCl9b2xkKGUpe2xldCB0PWUrdGhpcy5uYW1lO3JldHVybiB0aGlzLmlzU3RyZXRjaCgpJiYoZT09PSItbW96LSI/dD0iLW1vei1hdmFpbGFibGUiOmU9PT0iLXdlYmtpdC0iJiYodD0iLXdlYmtpdC1maWxsLWF2YWlsYWJsZSIpKSxuZXcgeFIodGhpcy5uYW1lLHQsdCxWMCh0KSl9YWRkKGUsdCl7aWYoIShlLnByb3AuaW5jbHVkZXMoImdyaWQiKSYmdCE9PSItd2Via2l0LSIpKXJldHVybiBzdXBlci5hZGQoZSx0KX19O1h1Lm5hbWVzPVsibWF4LWNvbnRlbnQiLCJtaW4tY29udGVudCIsImZpdC1jb250ZW50IiwiZmlsbCIsImZpbGwtYXZhaWxhYmxlIiwic3RyZXRjaCJdO0gwLmV4cG9ydHM9WHV9KTt2YXIgWTA9eCgoYkwsUTApPT57dSgpO3ZhciBHMD14cigpLFNSPUhlKCksWnU9Y2xhc3MgZXh0ZW5kcyBTUntyZXBsYWNlKGUsdCl7cmV0dXJuIHQ9PT0iLXdlYmtpdC0iP2UucmVwbGFjZSh0aGlzLnJlZ2V4cCgpLCIkMS13ZWJraXQtb3B0aW1pemUtY29udHJhc3QiKTp0PT09Ii1tb3otIj9lLnJlcGxhY2UodGhpcy5yZWdleHAoKSwiJDEtbW96LWNyaXNwLWVkZ2VzIik6c3VwZXIucmVwbGFjZShlLHQpfW9sZChlKXtyZXR1cm4gZT09PSItd2Via2l0LSI/bmV3IEcwKHRoaXMubmFtZSwiLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdCIpOmU9PT0iLW1vei0iP25ldyBHMCh0aGlzLm5hbWUsIi1tb3otY3Jpc3AtZWRnZXMiKTpzdXBlci5vbGQoZSl9fTtadS5uYW1lcz1bInBpeGVsYXRlZCJdO1EwLmV4cG9ydHM9WnV9KTt2YXIgWDA9eCgod0wsSzApPT57dSgpO3ZhciBBUj1IZSgpLEp1PWNsYXNzIGV4dGVuZHMgQVJ7cmVwbGFjZShlLHQpe2xldCBpPXN1cGVyLnJlcGxhY2UoZSx0KTtyZXR1cm4gdD09PSItd2Via2l0LSImJihpPWkucmVwbGFjZSgvKCJbXiJdKyJ8J1teJ10rJykoXHMrXGQrXHcpL2dpLCJ1cmwoJDEpJDIiKSksaX19O0p1Lm5hbWVzPVsiaW1hZ2Utc2V0Il07SzAuZXhwb3J0cz1KdX0pO3ZhciBKMD14KCh2TCxaMCk9Pnt1KCk7dmFyIENSPSRlKCkubGlzdCxfUj1IZSgpLGVmPWNsYXNzIGV4dGVuZHMgX1J7cmVwbGFjZShlLHQpe3JldHVybiBDUi5zcGFjZShlKS5tYXAoaT0+e2lmKGkuc2xpY2UoMCwrdGhpcy5uYW1lLmxlbmd0aCsxKSE9PXRoaXMubmFtZSsiKCIpcmV0dXJuIGk7bGV0IG49aS5sYXN0SW5kZXhPZigiKSIpLHM9aS5zbGljZShuKzEpLGE9aS5zbGljZSh0aGlzLm5hbWUubGVuZ3RoKzEsbik7aWYodD09PSItd2Via2l0LSIpe2xldCBvPWEubWF0Y2goL1xkKi4/XGQrJT8vKTtvPyhhPWEuc2xpY2Uob1swXS5sZW5ndGgpLnRyaW0oKSxhKz1gLCAke29bMF19YCk6YSs9IiwgMC41In1yZXR1cm4gdCt0aGlzLm5hbWUrIigiK2ErIikiK3N9KS5qb2luKCIgIil9fTtlZi5uYW1lcz1bImNyb3NzLWZhZGUiXTtaMC5leHBvcnRzPWVmfSk7dmFyIHR2PXgoKHhMLGV2KT0+e3UoKTt2YXIgRVI9UGUoKSxPUj14cigpLFRSPUhlKCksdGY9Y2xhc3MgZXh0ZW5kcyBUUntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7ZT09PSJkaXNwbGF5LWZsZXgiJiYodGhpcy5uYW1lPSJmbGV4Iil9Y2hlY2soZSl7cmV0dXJuIGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZT09PXRoaXMubmFtZX1wcmVmaXhlZChlKXtsZXQgdCxpO3JldHVyblt0LGVdPUVSKGUpLHQ9PT0yMDA5P3RoaXMubmFtZT09PSJmbGV4Ij9pPSJib3giOmk9ImlubGluZS1ib3giOnQ9PT0yMDEyP3RoaXMubmFtZT09PSJmbGV4Ij9pPSJmbGV4Ym94IjppPSJpbmxpbmUtZmxleGJveCI6dD09PSJmaW5hbCImJihpPXRoaXMubmFtZSksZStpfXJlcGxhY2UoZSx0KXtyZXR1cm4gdGhpcy5wcmVmaXhlZCh0KX1vbGQoZSl7bGV0IHQ9dGhpcy5wcmVmaXhlZChlKTtpZighIXQpcmV0dXJuIG5ldyBPUih0aGlzLm5hbWUsdCl9fTt0Zi5uYW1lcz1bImRpc3BsYXktZmxleCIsImlubGluZS1mbGV4Il07ZXYuZXhwb3J0cz10Zn0pO3ZhciBpdj14KChrTCxydik9Pnt1KCk7dmFyIFJSPUhlKCkscmY9Y2xhc3MgZXh0ZW5kcyBSUntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCk7ZT09PSJkaXNwbGF5LWdyaWQiJiYodGhpcy5uYW1lPSJncmlkIil9Y2hlY2soZSl7cmV0dXJuIGUucHJvcD09PSJkaXNwbGF5IiYmZS52YWx1ZT09PXRoaXMubmFtZX19O3JmLm5hbWVzPVsiZGlzcGxheS1ncmlkIiwiaW5saW5lLWdyaWQiXTtydi5leHBvcnRzPXJmfSk7dmFyIHN2PXgoKFNMLG52KT0+e3UoKTt2YXIgUFI9SGUoKSxuZj1jbGFzcyBleHRlbmRzIFBSe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTtlPT09ImZpbHRlci1mdW5jdGlvbiImJih0aGlzLm5hbWU9ImZpbHRlciIpfX07bmYubmFtZXM9WyJmaWx0ZXIiLCJmaWx0ZXItZnVuY3Rpb24iXTtudi5leHBvcnRzPW5mfSk7dmFyIHV2PXgoKEFMLGx2KT0+e3UoKTt2YXIgYXY9TmkoKSx6PWooKSxvdj16eSgpLElSPWFiKCksRFI9b3UoKSxxUj1DYigpLHNmPU10KCksUHI9a3IoKSwkUj1EYigpLHV0PUhlKCksSXI9X2UoKSxMUj0kYigpLE1SPU1iKCksTlI9QmIoKSxCUj1qYigpLEZSPVdiKCksalI9WWIoKSx6Uj1YYigpLFVSPUpiKCksVlI9dHcoKSxIUj1pdygpLFdSPXN3KCksR1I9b3coKSxRUj11dygpLFlSPWN3KCksS1I9ZHcoKSxYUj1ndygpLFpSPWJ3KCksSlI9eHcoKSxlNT1TdygpLHQ1PUN3KCkscjU9T3coKSxpNT1SdygpLG41PUR3KCksczU9JHcoKSxhNT1NdygpLG81PUJ3KCksbDU9ancoKSx1NT1WdygpLGY1PVd3KCksYzU9UXcoKSxwNT1LdygpLGQ1PVp3KCksaDU9ZTAoKSxtNT1yMCgpLGc1PXMwKCkseTU9bzAoKSxiNT11MCgpLHc1PWMwKCksdjU9ZDAoKSx4NT1nMCgpLGs1PWIwKCksUzU9djAoKSxBNT1TMCgpLEM1PUMwKCksXzU9RTAoKSxFNT1SMCgpLE81PUkwKCksVDU9cTAoKSxSNT1VMCgpLFA1PVcwKCksSTU9WTAoKSxENT1YMCgpLHE1PUowKCksJDU9dHYoKSxMNT1pdigpLE01PXN2KCk7UHIuaGFjayhMUik7UHIuaGFjayhNUik7UHIuaGFjayhOUik7UHIuaGFjayhCUik7ei5oYWNrKEZSKTt6LmhhY2soalIpO3ouaGFjayh6Uik7ei5oYWNrKFVSKTt6LmhhY2soVlIpO3ouaGFjayhIUik7ei5oYWNrKFdSKTt6LmhhY2soR1IpO3ouaGFjayhRUik7ei5oYWNrKFlSKTt6LmhhY2soS1IpO3ouaGFjayhYUik7ei5oYWNrKFpSKTt6LmhhY2soSlIpO3ouaGFjayhlNSk7ei5oYWNrKHQ1KTt6LmhhY2socjUpO3ouaGFjayhpNSk7ei5oYWNrKG41KTt6LmhhY2soczUpO3ouaGFjayhhNSk7ei5oYWNrKG81KTt6LmhhY2sobDUpO3ouaGFjayh1NSk7ei5oYWNrKGY1KTt6LmhhY2soYzUpO3ouaGFjayhwNSk7ei5oYWNrKGQ1KTt6LmhhY2soaDUpO3ouaGFjayhtNSk7ei5oYWNrKGc1KTt6LmhhY2soeTUpO3ouaGFjayhiNSk7ei5oYWNrKHc1KTt6LmhhY2sodjUpO3ouaGFjayh4NSk7ei5oYWNrKGs1KTt6LmhhY2soUzUpO3ouaGFjayhBNSk7ei5oYWNrKEM1KTt6LmhhY2soXzUpO3ouaGFjayhFNSk7ei5oYWNrKE81KTt6LmhhY2soVDUpO3V0LmhhY2soUjUpO3V0LmhhY2soUDUpO3V0LmhhY2soSTUpO3V0LmhhY2soRDUpO3V0LmhhY2socTUpO3V0LmhhY2soJDUpO3V0LmhhY2soTDUpO3V0LmhhY2soTTUpO3ZhciBhZj1uZXcgTWFwLEZpPWNsYXNze2NvbnN0cnVjdG9yKGUsdCxpPXt9KXt0aGlzLmRhdGE9ZSx0aGlzLmJyb3dzZXJzPXQsdGhpcy5vcHRpb25zPWksW3RoaXMuYWRkLHRoaXMucmVtb3ZlXT10aGlzLnByZXByb2Nlc3ModGhpcy5zZWxlY3QodGhpcy5kYXRhKSksdGhpcy50cmFuc2l0aW9uPW5ldyBJUih0aGlzKSx0aGlzLnByb2Nlc3Nvcj1uZXcgRFIodGhpcyl9Y2xlYW5lcigpe2lmKHRoaXMuY2xlYW5lckNhY2hlKXJldHVybiB0aGlzLmNsZWFuZXJDYWNoZTtpZih0aGlzLmJyb3dzZXJzLnNlbGVjdGVkLmxlbmd0aCl7bGV0IGU9bmV3IHNmKHRoaXMuYnJvd3NlcnMuZGF0YSxbXSk7dGhpcy5jbGVhbmVyQ2FjaGU9bmV3IEZpKHRoaXMuZGF0YSxlLHRoaXMub3B0aW9ucyl9ZWxzZSByZXR1cm4gdGhpcztyZXR1cm4gdGhpcy5jbGVhbmVyQ2FjaGV9c2VsZWN0KGUpe2xldCB0PXthZGQ6e30scmVtb3ZlOnt9fTtmb3IobGV0IGkgaW4gZSl7bGV0IG49ZVtpXSxzPW4uYnJvd3NlcnMubWFwKGw9PntsZXQgYz1sLnNwbGl0KCIgIik7cmV0dXJue2Jyb3dzZXI6YCR7Y1swXX0gJHtjWzFdfWAsbm90ZTpjWzJdfX0pLGE9cy5maWx0ZXIobD0+bC5ub3RlKS5tYXAobD0+YCR7dGhpcy5icm93c2Vycy5wcmVmaXgobC5icm93c2VyKX0gJHtsLm5vdGV9YCk7YT1Jci51bmlxKGEpLHM9cy5maWx0ZXIobD0+dGhpcy5icm93c2Vycy5pc1NlbGVjdGVkKGwuYnJvd3NlcikpLm1hcChsPT57bGV0IGM9dGhpcy5icm93c2Vycy5wcmVmaXgobC5icm93c2VyKTtyZXR1cm4gbC5ub3RlP2Ake2N9ICR7bC5ub3RlfWA6Y30pLHM9dGhpcy5zb3J0KElyLnVuaXEocykpLHRoaXMub3B0aW9ucy5mbGV4Ym94PT09Im5vLTIwMDkiJiYocz1zLmZpbHRlcihsPT4hbC5pbmNsdWRlcygiMjAwOSIpKSk7bGV0IG89bi5icm93c2Vycy5tYXAobD0+dGhpcy5icm93c2Vycy5wcmVmaXgobCkpO24ubWlzdGFrZXMmJihvPW8uY29uY2F0KG4ubWlzdGFrZXMpKSxvPW8uY29uY2F0KGEpLG89SXIudW5pcShvKSxzLmxlbmd0aD8odC5hZGRbaV09cyxzLmxlbmd0aDxvLmxlbmd0aCYmKHQucmVtb3ZlW2ldPW8uZmlsdGVyKGw9PiFzLmluY2x1ZGVzKGwpKSkpOnQucmVtb3ZlW2ldPW99cmV0dXJuIHR9c29ydChlKXtyZXR1cm4gZS5zb3J0KCh0LGkpPT57bGV0IG49SXIucmVtb3ZlTm90ZSh0KS5sZW5ndGgscz1Jci5yZW1vdmVOb3RlKGkpLmxlbmd0aDtyZXR1cm4gbj09PXM/aS5sZW5ndGgtdC5sZW5ndGg6cy1ufSl9cHJlcHJvY2VzcyhlKXtsZXQgdD17c2VsZWN0b3JzOltdLCJAc3VwcG9ydHMiOm5ldyBxUihGaSx0aGlzKX07Zm9yKGxldCBuIGluIGUuYWRkKXtsZXQgcz1lLmFkZFtuXTtpZihuPT09IkBrZXlmcmFtZXMifHxuPT09IkB2aWV3cG9ydCIpdFtuXT1uZXcgJFIobixzLHRoaXMpO2Vsc2UgaWYobj09PSJAcmVzb2x1dGlvbiIpdFtuXT1uZXcgb3YobixzLHRoaXMpO2Vsc2UgaWYodGhpcy5kYXRhW25dLnNlbGVjdG9yKXQuc2VsZWN0b3JzLnB1c2goUHIubG9hZChuLHMsdGhpcykpO2Vsc2V7bGV0IGE9dGhpcy5kYXRhW25dLnByb3BzO2lmKGEpe2xldCBvPXV0LmxvYWQobixzLHRoaXMpO2ZvcihsZXQgbCBvZiBhKXRbbF18fCh0W2xdPXt2YWx1ZXM6W119KSx0W2xdLnZhbHVlcy5wdXNoKG8pfWVsc2V7bGV0IG89dFtuXSYmdFtuXS52YWx1ZXN8fFtdO3Rbbl09ei5sb2FkKG4scyx0aGlzKSx0W25dLnZhbHVlcz1vfX19bGV0IGk9e3NlbGVjdG9yczpbXX07Zm9yKGxldCBuIGluIGUucmVtb3ZlKXtsZXQgcz1lLnJlbW92ZVtuXTtpZih0aGlzLmRhdGFbbl0uc2VsZWN0b3Ipe2xldCBhPVByLmxvYWQobixzKTtmb3IobGV0IG8gb2YgcylpLnNlbGVjdG9ycy5wdXNoKGEub2xkKG8pKX1lbHNlIGlmKG49PT0iQGtleWZyYW1lcyJ8fG49PT0iQHZpZXdwb3J0Iilmb3IobGV0IGEgb2Ygcyl7bGV0IG89YEAke2F9JHtuLnNsaWNlKDEpfWA7aVtvXT17cmVtb3ZlOiEwfX1lbHNlIGlmKG49PT0iQHJlc29sdXRpb24iKWlbbl09bmV3IG92KG4scyx0aGlzKTtlbHNle2xldCBhPXRoaXMuZGF0YVtuXS5wcm9wcztpZihhKXtsZXQgbz11dC5sb2FkKG4sW10sdGhpcyk7Zm9yKGxldCBsIG9mIHMpe2xldCBjPW8ub2xkKGwpO2lmKGMpZm9yKGxldCBmIG9mIGEpaVtmXXx8KGlbZl09e30pLGlbZl0udmFsdWVzfHwoaVtmXS52YWx1ZXM9W10pLGlbZl0udmFsdWVzLnB1c2goYyl9fWVsc2UgZm9yKGxldCBvIG9mIHMpe2xldCBsPXRoaXMuZGVjbChuKS5vbGQobixvKTtpZihuPT09ImFsaWduLXNlbGYiKXtsZXQgYz10W25dJiZ0W25dLnByZWZpeGVzO2lmKGMpe2lmKG89PT0iLXdlYmtpdC0gMjAwOSImJmMuaW5jbHVkZXMoIi13ZWJraXQtIikpY29udGludWU7aWYobz09PSItd2Via2l0LSImJmMuaW5jbHVkZXMoIi13ZWJraXQtIDIwMDkiKSljb250aW51ZX19Zm9yKGxldCBjIG9mIGwpaVtjXXx8KGlbY109e30pLGlbY10ucmVtb3ZlPSEwfX19cmV0dXJuW3QsaV19ZGVjbChlKXtyZXR1cm4gYWYuaGFzKGUpfHxhZi5zZXQoZSx6LmxvYWQoZSkpLGFmLmdldChlKX11bnByZWZpeGVkKGUpe2xldCB0PXRoaXMubm9ybWFsaXplKGF2LnVucHJlZml4ZWQoZSkpO3JldHVybiB0PT09ImZsZXgtZGlyZWN0aW9uIiYmKHQ9ImZsZXgtZmxvdyIpLHR9bm9ybWFsaXplKGUpe3JldHVybiB0aGlzLmRlY2woZSkubm9ybWFsaXplKGUpfXByZWZpeGVkKGUsdCl7cmV0dXJuIGU9YXYudW5wcmVmaXhlZChlKSx0aGlzLmRlY2woZSkucHJlZml4ZWQoZSx0KX12YWx1ZXMoZSx0KXtsZXQgaT10aGlzW2VdLG49aVsiKiJdJiZpWyIqIl0udmFsdWVzLHM9aVt0XSYmaVt0XS52YWx1ZXM7cmV0dXJuIG4mJnM/SXIudW5pcShuLmNvbmNhdChzKSk6bnx8c3x8W119Z3JvdXAoZSl7bGV0IHQ9ZS5wYXJlbnQsaT10LmluZGV4KGUpLHtsZW5ndGg6bn09dC5ub2RlcyxzPXRoaXMudW5wcmVmaXhlZChlLnByb3ApLGE9KG8sbCk9Pntmb3IoaSs9bztpPj0wJiZpPG47KXtsZXQgYz10Lm5vZGVzW2ldO2lmKGMudHlwZT09PSJkZWNsIil7aWYobz09PS0xJiZjLnByb3A9PT1zJiYhc2Yud2l0aFByZWZpeChjLnZhbHVlKXx8dGhpcy51bnByZWZpeGVkKGMucHJvcCkhPT1zKWJyZWFrO2lmKGwoYyk9PT0hMClyZXR1cm4hMDtpZihvPT09MSYmYy5wcm9wPT09cyYmIXNmLndpdGhQcmVmaXgoYy52YWx1ZSkpYnJlYWt9aSs9b31yZXR1cm4hMX07cmV0dXJue3VwKG8pe3JldHVybiBhKC0xLG8pfSxkb3duKG8pe3JldHVybiBhKDEsbyl9fX19O2x2LmV4cG9ydHM9Rml9KTt2YXIgY3Y9eCgoQ0wsZnYpPT57dSgpO2Z2LmV4cG9ydHM9eyJiYWNrZHJvcC1maWx0ZXIiOntmZWF0dXJlOiJjc3MtYmFja2Ryb3AtZmlsdGVyIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSIsInNhZmFyaSAxNi41Il19LGVsZW1lbnQ6e3Byb3BzOlsiYmFja2dyb3VuZCIsImJhY2tncm91bmQtaW1hZ2UiLCJib3JkZXItaW1hZ2UiLCJtYXNrIiwibGlzdC1zdHlsZSIsImxpc3Qtc3R5bGUtaW1hZ2UiLCJjb250ZW50IiwibWFzay1pbWFnZSJdLGZlYXR1cmU6ImNzcy1lbGVtZW50LWZ1bmN0aW9uIixicm93c2VyczpbImZpcmVmb3ggMTE0Il19LCJ1c2VyLXNlbGVjdCI6e21pc3Rha2VzOlsiLWtodG1sLSJdLGZlYXR1cmU6InVzZXItc2VsZWN0LW5vbmUiLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Iiwic2FmYXJpIDE2LjUiXX0sImJhY2tncm91bmQtY2xpcCI6e2ZlYXR1cmU6ImJhY2tncm91bmQtY2xpcC10ZXh0Iixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSxoeXBoZW5zOntmZWF0dXJlOiJjc3MtaHlwaGVucyIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiLCJzYWZhcmkgMTYuNSJdfSxmaWxsOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwiZmlsbC1hdmFpbGFibGUiOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSxzdHJldGNoOntwcm9wczpbIndpZHRoIiwibWluLXdpZHRoIiwibWF4LXdpZHRoIiwiaGVpZ2h0IiwibWluLWhlaWdodCIsIm1heC1oZWlnaHQiLCJpbmxpbmUtc2l6ZSIsIm1pbi1pbmxpbmUtc2l6ZSIsIm1heC1pbmxpbmUtc2l6ZSIsImJsb2NrLXNpemUiLCJtaW4tYmxvY2stc2l6ZSIsIm1heC1ibG9jay1zaXplIiwiZ3JpZCIsImdyaWQtdGVtcGxhdGUiLCJncmlkLXRlbXBsYXRlLXJvd3MiLCJncmlkLXRlbXBsYXRlLWNvbHVtbnMiLCJncmlkLWF1dG8tY29sdW1ucyIsImdyaWQtYXV0by1yb3dzIl0sZmVhdHVyZToiaW50cmluc2ljLXdpZHRoIixicm93c2VyczpbImZpcmVmb3ggMTE0Il19LCJmaXQtY29udGVudCI6e3Byb3BzOlsid2lkdGgiLCJtaW4td2lkdGgiLCJtYXgtd2lkdGgiLCJoZWlnaHQiLCJtaW4taGVpZ2h0IiwibWF4LWhlaWdodCIsImlubGluZS1zaXplIiwibWluLWlubGluZS1zaXplIiwibWF4LWlubGluZS1zaXplIiwiYmxvY2stc2l6ZSIsIm1pbi1ibG9jay1zaXplIiwibWF4LWJsb2NrLXNpemUiLCJncmlkIiwiZ3JpZC10ZW1wbGF0ZSIsImdyaWQtdGVtcGxhdGUtcm93cyIsImdyaWQtdGVtcGxhdGUtY29sdW1ucyIsImdyaWQtYXV0by1jb2x1bW5zIiwiZ3JpZC1hdXRvLXJvd3MiXSxmZWF0dXJlOiJpbnRyaW5zaWMtd2lkdGgiLGJyb3dzZXJzOlsiZmlyZWZveCAxMTQiXX0sInRleHQtZGVjb3JhdGlvbi1zdHlsZSI6e2ZlYXR1cmU6InRleHQtZGVjb3JhdGlvbiIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sInRleHQtZGVjb3JhdGlvbi1jb2xvciI6e2ZlYXR1cmU6InRleHQtZGVjb3JhdGlvbiIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sInRleHQtZGVjb3JhdGlvbi1saW5lIjp7ZmVhdHVyZToidGV4dC1kZWNvcmF0aW9uIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSJdfSwidGV4dC1kZWNvcmF0aW9uIjp7ZmVhdHVyZToidGV4dC1kZWNvcmF0aW9uIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSJdfSwidGV4dC1kZWNvcmF0aW9uLXNraXAiOntmZWF0dXJlOiJ0ZXh0LWRlY29yYXRpb24iLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Il19LCJ0ZXh0LWRlY29yYXRpb24tc2tpcC1pbmsiOntmZWF0dXJlOiJ0ZXh0LWRlY29yYXRpb24iLGJyb3dzZXJzOlsiaW9zX3NhZiAxNi4xIiwiaW9zX3NhZiAxNi4zIiwiaW9zX3NhZiAxNi40IiwiaW9zX3NhZiAxNi41Il19LCJ0ZXh0LXNpemUtYWRqdXN0Ijp7ZmVhdHVyZToidGV4dC1zaXplLWFkanVzdCIsYnJvd3NlcnM6WyJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiXX0sIm1hc2stY2xpcCI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stY29tcG9zaXRlIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1pbWFnZSI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stb3JpZ2luIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1yZXBlYXQiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlci1yZXBlYXQiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlci1zb3VyY2UiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LG1hc2s6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stcG9zaXRpb24iOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLXNpemUiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJtYXNrLWJvcmRlciI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stYm9yZGVyLW91dHNldCI6e2ZlYXR1cmU6ImNzcy1tYXNrcyIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0sIm1hc2stYm9yZGVyLXdpZHRoIjp7ZmVhdHVyZToiY3NzLW1hc2tzIixicm93c2VyczpbImFuZF9jaHIgMTE0IiwiYW5kX3VjIDE1LjUiLCJjaHJvbWUgMTA5IiwiY2hyb21lIDExMyIsImNocm9tZSAxMTQiLCJlZGdlIDExNCIsIm9wZXJhIDk5Iiwic2Ftc3VuZyAyMSJdfSwibWFzay1ib3JkZXItc2xpY2UiOntmZWF0dXJlOiJjc3MtbWFza3MiLGJyb3dzZXJzOlsiYW5kX2NociAxMTQiLCJhbmRfdWMgMTUuNSIsImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiLCJzYW1zdW5nIDIxIl19LCJjbGlwLXBhdGgiOntmZWF0dXJlOiJjc3MtY2xpcC1wYXRoIixicm93c2VyczpbInNhbXN1bmcgMjEiXX0sImJveC1kZWNvcmF0aW9uLWJyZWFrIjp7ZmVhdHVyZToiY3NzLWJveGRlY29yYXRpb25icmVhayIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJpb3Nfc2FmIDE2LjEiLCJpb3Nfc2FmIDE2LjMiLCJpb3Nfc2FmIDE2LjQiLCJpb3Nfc2FmIDE2LjUiLCJvcGVyYSA5OSIsInNhZmFyaSAxNi41Iiwic2Ftc3VuZyAyMSJdfSxhcHBlYXJhbmNlOntmZWF0dXJlOiJjc3MtYXBwZWFyYW5jZSIsYnJvd3NlcnM6WyJzYW1zdW5nIDIxIl19LCJpbWFnZS1zZXQiOntwcm9wczpbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYm9yZGVyLWltYWdlIiwiY3Vyc29yIiwibWFzayIsIm1hc2staW1hZ2UiLCJsaXN0LXN0eWxlIiwibGlzdC1zdHlsZS1pbWFnZSIsImNvbnRlbnQiXSxmZWF0dXJlOiJjc3MtaW1hZ2Utc2V0Iixicm93c2VyczpbImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsInNhbXN1bmcgMjEiXX0sImNyb3NzLWZhZGUiOntwcm9wczpbImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kLWltYWdlIiwiYm9yZGVyLWltYWdlIiwibWFzayIsImxpc3Qtc3R5bGUiLCJsaXN0LXN0eWxlLWltYWdlIiwiY29udGVudCIsIm1hc2staW1hZ2UiXSxmZWF0dXJlOiJjc3MtY3Jvc3MtZmFkZSIsYnJvd3NlcnM6WyJhbmRfY2hyIDExNCIsImFuZF91YyAxNS41IiwiY2hyb21lIDEwOSIsImNocm9tZSAxMTMiLCJjaHJvbWUgMTE0IiwiZWRnZSAxMTQiLCJvcGVyYSA5OSIsInNhbXN1bmcgMjEiXX0saXNvbGF0ZTp7cHJvcHM6WyJ1bmljb2RlLWJpZGkiXSxmZWF0dXJlOiJjc3MtdW5pY29kZS1iaWRpIixicm93c2VyczpbImlvc19zYWYgMTYuMSIsImlvc19zYWYgMTYuMyIsImlvc19zYWYgMTYuNCIsImlvc19zYWYgMTYuNSIsInNhZmFyaSAxNi41Il19LCJjb2xvci1hZGp1c3QiOntmZWF0dXJlOiJjc3MtY29sb3ItYWRqdXN0Iixicm93c2VyczpbImNocm9tZSAxMDkiLCJjaHJvbWUgMTEzIiwiY2hyb21lIDExNCIsImVkZ2UgMTE0Iiwib3BlcmEgOTkiXX19fSk7dmFyIGR2PXgoKF9MLHB2KT0+e3UoKTtwdi5leHBvcnRzPXt9fSk7dmFyIHl2PXgoKEVMLGd2KT0+e3UoKTt2YXIgTjU9WWwoKSx7YWdlbnRzOkI1fT0oUHMoKSxScyksb2Y9T3koKSxGNT1NdCgpLGo1PXV2KCksejU9Y3YoKSxVNT1kdigpLGh2PXticm93c2VyczpCNSxwcmVmaXhlczp6NX0sbXY9YAogIFJlcGxhY2UgQXV0b3ByZWZpeGVyIFxgYnJvd3NlcnNcYCBvcHRpb24gdG8gQnJvd3NlcnNsaXN0IGNvbmZpZy4KICBVc2UgXGBicm93c2Vyc2xpc3RcYCBrZXkgaW4gXGBwYWNrYWdlLmpzb25cYCBvciBcYC5icm93c2Vyc2xpc3RyY1xgIGZpbGUuCgogIFVzaW5nIFxgYnJvd3NlcnNcYCBvcHRpb24gY2FuIGNhdXNlIGVycm9ycy4gQnJvd3NlcnNsaXN0IGNvbmZpZyBjYW4KICBiZSB1c2VkIGZvciBCYWJlbCwgQXV0b3ByZWZpeGVyLCBwb3N0Y3NzLW5vcm1hbGl6ZSBhbmQgb3RoZXIgdG9vbHMuCgogIElmIHlvdSByZWFsbHkgbmVlZCB0byB1c2Ugb3B0aW9uLCByZW5hbWUgaXQgdG8gXGBvdmVycmlkZUJyb3dzZXJzbGlzdFxgLgoKICBMZWFybiBtb3JlIGF0OgogIGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2Vyc2xpc3QvYnJvd3NlcnNsaXN0I3JlYWRtZQogIGh0dHBzOi8vdHdpdHRlci5jb20vYnJvd3NlcnNsaXN0CgpgO2Z1bmN0aW9uIFY1KHIpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KHIpPT09IltvYmplY3QgT2JqZWN0XSJ9dmFyIGxmPW5ldyBNYXA7ZnVuY3Rpb24gSDUocixlKXtlLmJyb3dzZXJzLnNlbGVjdGVkLmxlbmd0aCE9PTAmJihlLmFkZC5zZWxlY3RvcnMubGVuZ3RoPjB8fE9iamVjdC5rZXlzKGUuYWRkKS5sZW5ndGg+Mnx8ci53YXJuKGBBdXRvcHJlZml4ZXIgdGFyZ2V0IGJyb3dzZXJzIGRvIG5vdCBuZWVkIGFueSBwcmVmaXhlcy5Zb3UgZG8gbm90IG5lZWQgQXV0b3ByZWZpeGVyIGFueW1vcmUuCkNoZWNrIHlvdXIgQnJvd3NlcnNsaXN0IGNvbmZpZyB0byBiZSBzdXJlIHRoYXQgeW91ciB0YXJnZXRzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgoKICBMZWFybiBtb3JlIGF0OgogIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Y3NzL2F1dG9wcmVmaXhlciNyZWFkbWUKICBodHRwczovL2dpdGh1Yi5jb20vYnJvd3NlcnNsaXN0L2Jyb3dzZXJzbGlzdCNyZWFkbWUKCmApKX1ndi5leHBvcnRzPURyO2Z1bmN0aW9uIERyKC4uLnIpe2xldCBlO2lmKHIubGVuZ3RoPT09MSYmVjUoclswXSk/KGU9clswXSxyPXZvaWQgMCk6ci5sZW5ndGg9PT0wfHxyLmxlbmd0aD09PTEmJiFyWzBdP3I9dm9pZCAwOnIubGVuZ3RoPD0yJiYoQXJyYXkuaXNBcnJheShyWzBdKXx8IXJbMF0pPyhlPXJbMV0scj1yWzBdKTp0eXBlb2YgcltyLmxlbmd0aC0xXT09Im9iamVjdCImJihlPXIucG9wKCkpLGV8fChlPXt9KSxlLmJyb3dzZXIpdGhyb3cgbmV3IEVycm9yKCJDaGFuZ2UgYGJyb3dzZXJgIG9wdGlvbiB0byBgb3ZlcnJpZGVCcm93c2Vyc2xpc3RgIGluIEF1dG9wcmVmaXhlciIpO2lmKGUuYnJvd3NlcnNsaXN0KXRocm93IG5ldyBFcnJvcigiQ2hhbmdlIGBicm93c2Vyc2xpc3RgIG9wdGlvbiB0byBgb3ZlcnJpZGVCcm93c2Vyc2xpc3RgIGluIEF1dG9wcmVmaXhlciIpO2Uub3ZlcnJpZGVCcm93c2Vyc2xpc3Q/cj1lLm92ZXJyaWRlQnJvd3NlcnNsaXN0OmUuYnJvd3NlcnMmJih0eXBlb2YgY29uc29sZSE9InVuZGVmaW5lZCImJmNvbnNvbGUud2FybiYmKG9mLnJlZD9jb25zb2xlLndhcm4ob2YucmVkKG12LnJlcGxhY2UoL2BbXmBdK2AvZyxuPT5vZi55ZWxsb3cobi5zbGljZSgxLC0xKSkpKSk6Y29uc29sZS53YXJuKG12KSkscj1lLmJyb3dzZXJzKTtsZXQgdD17aWdub3JlVW5rbm93blZlcnNpb25zOmUuaWdub3JlVW5rbm93blZlcnNpb25zLHN0YXRzOmUuc3RhdHMsZW52OmUuZW52fTtmdW5jdGlvbiBpKG4pe2xldCBzPWh2LGE9bmV3IEY1KHMuYnJvd3NlcnMscixuLHQpLG89YS5zZWxlY3RlZC5qb2luKCIsICIpK0pTT04uc3RyaW5naWZ5KGUpO3JldHVybiBsZi5oYXMobyl8fGxmLnNldChvLG5ldyBqNShzLnByZWZpeGVzLGEsZSkpLGxmLmdldChvKX1yZXR1cm57cG9zdGNzc1BsdWdpbjoiYXV0b3ByZWZpeGVyIixwcmVwYXJlKG4pe2xldCBzPWkoe2Zyb206bi5vcHRzLmZyb20sZW52OmUuZW52fSk7cmV0dXJue09uY2VFeGl0KGEpe0g1KG4scyksZS5yZW1vdmUhPT0hMSYmcy5wcm9jZXNzb3IucmVtb3ZlKGEsbiksZS5hZGQhPT0hMSYmcy5wcm9jZXNzb3IuYWRkKGEsbil9fX0saW5mbyhuKXtyZXR1cm4gbj1ufHx7fSxuLmZyb209bi5mcm9tfHxtLmN3ZCgpLFU1KGkobikpfSxvcHRpb25zOmUsYnJvd3NlcnM6cn19RHIucG9zdGNzcz0hMDtEci5kYXRhPWh2O0RyLmRlZmF1bHRzPU41LmRlZmF1bHRzO0RyLmluZm89KCk9PkRyKCkuaW5mbygpfSk7dmFyIGJ2PXt9O0dlKGJ2LHtkZWZhdWx0OigpPT5XNX0pO3ZhciBXNSx3dj1QKCgpPT57dSgpO1c1PVtdfSk7dmFyIHh2PXt9O0dlKHh2LHtkZWZhdWx0OigpPT5HNX0pO3ZhciB2dixHNSxrdj1QKCgpPT57dSgpO1hpKCk7dnY9cGUocm4oKSksRzU9U3QodnYuZGVmYXVsdC50aGVtZSl9KTt2YXIgQXY9e307R2UoQXYse2RlZmF1bHQ6KCk9PlE1fSk7dmFyIFN2LFE1LEN2PVAoKCk9Pnt1KCk7WGkoKTtTdj1wZShybigpKSxRNT1TdChTdi5kZWZhdWx0KX0pO3UoKTsidXNlIHN0cmljdCI7dmFyIFk1PXZ0KF95KCkpLEs1PXZ0KCRlKCkpLFg1PXZ0KHl2KCkpLFo1PXZ0KCh3digpLGJ2KSksSjU9dnQoKGt2KCkseHYpKSxlUD12dCgoQ3YoKSxBdikpLHRQPXZ0KChWcygpLF9mKSksclA9dnQoKGFsKCksc2wpKSxpUD12dCgoc2EoKSxzYykpO2Z1bmN0aW9uIHZ0KHIpe3JldHVybiByJiZyLl9fZXNNb2R1bGU/cjp7ZGVmYXVsdDpyfX1jb25zb2xlLndhcm4oImNkbi50YWlsd2luZGNzcy5jb20gc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24uIFRvIHVzZSBUYWlsd2luZCBDU1MgaW4gcHJvZHVjdGlvbiwgaW5zdGFsbCBpdCBhcyBhIFBvc3RDU1MgcGx1Z2luIG9yIHVzZSB0aGUgVGFpbHdpbmQgQ0xJOiBodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL2luc3RhbGxhdGlvbiIpO3ZhciBOcz0idGFpbHdpbmQiLHVmPSJ0ZXh0L3RhaWx3aW5kY3NzIixfdj0iL3RlbXBsYXRlLmh0bWwiLFl0LEV2PSEwLE92PTAsZmY9bmV3IFNldCxjZixUdj0iIixSdj0ocj0hMSk9Pih7Z2V0KGUsdCl7cmV0dXJuKCFyfHx0PT09ImNvbmZpZyIpJiZ0eXBlb2YgZVt0XT09Im9iamVjdCImJmVbdF0hPT1udWxsP25ldyBQcm94eShlW3RdLFJ2KCkpOmVbdF19LHNldChlLHQsaSl7cmV0dXJuIGVbdF09aSwoIXJ8fHQ9PT0iY29uZmlnIikmJnBmKCEwKSwhMH19KTt3aW5kb3dbTnNdPW5ldyBQcm94eSh7Y29uZmlnOnt9LGRlZmF1bHRUaGVtZTpKNS5kZWZhdWx0LGRlZmF1bHRDb25maWc6ZVAuZGVmYXVsdCxjb2xvcnM6dFAuZGVmYXVsdCxwbHVnaW46clAuZGVmYXVsdCxyZXNvbHZlQ29uZmlnOmlQLmRlZmF1bHR9LFJ2KCEwKSk7ZnVuY3Rpb24gUHYocil7Y2Yub2JzZXJ2ZShyLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbInR5cGUiXSxjaGFyYWN0ZXJEYXRhOiEwLHN1YnRyZWU6ITAsY2hpbGRMaXN0OiEwfSl9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYXN5bmMgcj0+e2xldCBlPSExO2lmKCFjZil7Y2Y9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoYXN5bmMoKT0+YXdhaXQgcGYoITApKTtmb3IobGV0IHQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgc3R5bGVbdHlwZT0iJHt1Zn0iXWApKVB2KHQpfWZvcihsZXQgdCBvZiByKWZvcihsZXQgaSBvZiB0LmFkZGVkTm9kZXMpaS5ub2RlVHlwZT09PTEmJmkudGFnTmFtZT09PSJTVFlMRSImJmkuZ2V0QXR0cmlidXRlKCJ0eXBlIik9PT11ZiYmKFB2KGkpLGU9ITApO2F3YWl0IHBmKGUpfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiY2xhc3MiXSxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pO2FzeW5jIGZ1bmN0aW9uIHBmKHI9ITEpe3ImJihPdisrLGZmLmNsZWFyKCkpO2xldCBlPSIiO2ZvcihsZXQgaSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVt0eXBlPSIke3VmfSJdYCkpZSs9aS50ZXh0Q29udGVudDtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgaSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbY2xhc3NdIikpZm9yKGxldCBuIG9mIGkuY2xhc3NMaXN0KWZmLmhhcyhuKXx8dC5hZGQobik7aWYoZG9jdW1lbnQuYm9keSYmKEV2fHx0LnNpemU+MHx8ZSE9PVR2fHwhWXR8fCFZdC5pc0Nvbm5lY3RlZCkpe2ZvcihsZXQgbiBvZiB0KWZmLmFkZChuKTtFdj0hMSxUdj1lLHNlbGZbX3ZdPUFycmF5LmZyb20odCkuam9pbigiICIpO2xldHtjc3M6aX09YXdhaXQoMCxLNS5kZWZhdWx0KShbKDAsWTUuZGVmYXVsdCkoey4uLndpbmRvd1tOc10uY29uZmlnLF9oYXNoOk92LGNvbnRlbnQ6e2ZpbGVzOltfdl0sZXh0cmFjdDp7aHRtbDpuPT5uLnNwbGl0KCIgIil9fSxwbHVnaW5zOlsuLi5aNS5kZWZhdWx0LC4uLkFycmF5LmlzQXJyYXkod2luZG93W05zXS5jb25maWcucGx1Z2lucyk/d2luZG93W05zXS5jb25maWcucGx1Z2luczpbXV19KSwoMCxYNS5kZWZhdWx0KSh7cmVtb3ZlOiExfSldKS5wcm9jZXNzKGBAdGFpbHdpbmQgYmFzZTtAdGFpbHdpbmQgY29tcG9uZW50cztAdGFpbHdpbmQgdXRpbGl0aWVzOyR7ZX1gKTsoIVl0fHwhWXQuaXNDb25uZWN0ZWQpJiYoWXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZChZdCkpLFl0LnRleHRDb250ZW50PWl9fX0pKCk7Ci8qIQogKiBmaWxsLXJhbmdlIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9maWxsLXJhbmdlPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgSm9uIFNjaGxpbmtlcnQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qIQogKiBpcy1udW1iZXIgPGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zY2hsaW5rZXJ0L2lzLW51bWJlcj4KICoKICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEpvbiBTY2hsaW5rZXJ0LgogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuCiAqLwovKiEKICogdG8tcmVnZXgtcmFuZ2UgPGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb21hdGNoL3RvLXJlZ2V4LXJhbmdlPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgSm9uIFNjaGxpbmtlcnQuCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCi8qISBodHRwczovL210aHMuYmUvY3NzZXNjIHYzLjAuMCBieSBAbWF0aGlhcyAqLwo="}},"time_used":6,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":6,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api.coingecko.com/api/v3/coins/markets?vs_currency=usd\u0026ids=bitcoin,ethereum,ripple,solana,binancecoin,cardano\u0026price_change_percentage=24h","fqdn":"api.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"172.66.172.219","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.616Z","timestamp":1785142155616,"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":"api.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 03 Jul 2026 17:14:13 GMT","end":"Thu, 01 Oct 2026 18:14:10 GMT"},"fingerprint":{"sha1":"FD:68:29:08:59:93:ED:F1:73:C5:56:C8:B7:8C:EA:2D:F8:7E:E5:67","sha256":"28:11:40:A6:0A:FB:70:11:FF:CD:E4:7F:13:40:3F:0F:D5:5F:68:21:26:DF:61:5A:45:A5:EB:B3:33:B2:A9:0B"}}},"request":{"raw":"GET /api/v3/coins/markets?vs_currency=usd\u0026ids=bitcoin,ethereum,ripple,solana,binancecoin,cardano\u0026price_change_percentage=24h HTTP/1.1\r\nHost: api.coingecko.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://platinumglobalexchange.com/\r\nOrigin: https://platinumglobalexchange.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:49:15 GMT\r\ncontent-type: application/json; charset=utf-8\r\nserver: cloudflare\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: POST, PUT, DELETE, GET, OPTIONS\r\naccess-control-expose-headers: link, per-page, total\r\naccess-control-max-age: 7200\r\nx-frame-options: SAMEORIGIN\r\nx-xss-protection: 0\r\nx-content-type-options: nosniff\r\nx-permitted-cross-domain-policies: none\r\nreferrer-policy: strict-origin-when-cross-origin\r\nx-data-source: 2.0\r\ntotal: 6\r\nper-page: 100\r\ncache-control: max-age=30, public, must-revalidate, s-maxage=60\r\naccess-control-request-method: *\r\naccess-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization\r\nvary: Accept-Encoding, Origin\r\ncontent-encoding: gzip\r\netag: W/\"60efeea27473189bb78187d950587d45\"\r\nx-request-id: e3ad3394-abd9-4272-a57c-438cfc82c291\r\nx-runtime: 0.075642\r\ncontent-security-policy-report-only: script-src https://accounts.google.com/gsi/client; frame-src https://accounts.google.com/gsi/; connect-src https://accounts.google.com/gsi/;\r\nstrict-transport-security: max-age=600\r\ncf-cache-status: EXPIRED\r\npriority: u=4,i=?0\r\ncf-ray: a21a63c8a82a5a0f-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}],"data":{"size":4947,"size_decoded":2619,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"e9faf15f371ce1503f7bccb03f0bb476","sha1":"41e5dc8f7617a535a539497d70b07d13a40bdd4e","sha256":"904f9ea997d4381c72da2a178b2d5dc36187c2ab767184653f5d8a0f1d380593","sha512":"50635581649f5c9eb21e34741be424948c99a1664df55866366a352878efc3ae94594cb080c990c0c1d0432b26aa03d18f2b8ed10799c0d53e52360902d9ce4c","ssdeep":"96:BXsEGdiOm5vbelT2Z6vImvHjg9FJN3TyvP6:2dlsXT2DMTyn6","tlshash":"47a1f2921d7488e7c1b1295a699b36140d3effde9cc9dc065f9ecdce04a87aa010de0a","first_seen":"2026-07-27T08:49:49.569989Z","last_seen":"2026-07-27T08:50:16.802927Z","times_seen":2,"resource_available":false,"data":"W3siaWQiOiJiaXRjb2luIiwic3ltYm9sIjoiYnRjIiwibmFtZSI6IkJpdGNvaW4iLCJpbWFnZSI6Imh0dHBzOi8vY29pbi1pbWFnZXMuY29pbmdlY2tvLmNvbS9jb2lucy9pbWFnZXMvMS9sYXJnZS9iaXRjb2luLnBuZz8xNjk2NTAxNDAwIiwiY3VycmVudF9wcmljZSI6NjUxNDcsIm1hcmtldF9jYXAiOjEzMDY5NzE4NDQyMjQsIm1hcmtldF9jYXBfcmFuayI6MSwiZnVsbHlfZGlsdXRlZF92YWx1YXRpb24iOjEzMDY5NzE4NDQyMjQsInRvdGFsX3ZvbHVtZSI6MTg4NzAwOTI1MTksImhpZ2hfMjRoIjo2NTYxOCwibG93XzI0aCI6NjQzNzEsInByaWNlX2NoYW5nZV8yNGgiOjY0Ni40NSwicHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjoxLjIsIm1hcmtldF9jYXBfY2hhbmdlXzI0aCI6MTI5OTM1ODA0MTcsIm1hcmtldF9jYXBfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjoxLjAwNDE2LCJjaXJjdWxhdGluZ19zdXBwbHkiOjIwMDYxODYyLjAsInRvdGFsX3N1cHBseSI6MjAwNjE4NjIuMCwibWF4X3N1cHBseSI6MjEwMDAwMDAuMCwiYXRoIjoxMjYwODAsImF0aF9jaGFuZ2VfcGVyY2VudGFnZSI6LTQ4LjMyODcyLCJhdGhfZGF0ZSI6IjIwMjUtMTAtMDZUMTA6NTc6NDIuMDAwWiIsImF0bCI6NjcuODEsImF0bF9jaGFuZ2VfcGVyY2VudGFnZSI6OTU5NzQuMzkzOSwiYXRsX2RhdGUiOiIyMDEzLTA3LTA1VDE2OjAwOjAwLjAwMFoiLCJyb2kiOm51bGwsImxhc3RfdXBkYXRlZCI6IjIwMjYtMDctMjdUMDg6NDc6MzAuMDAwWiIsInByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aF9pbl9jdXJyZW5jeSI6MS4yfSx7ImlkIjoiZXRoZXJldW0iLCJzeW1ib2wiOiJldGgiLCJuYW1lIjoiRXRoZXJldW0iLCJpbWFnZSI6Imh0dHBzOi8vY29pbi1pbWFnZXMuY29pbmdlY2tvLmNvbS9jb2lucy9pbWFnZXMvMjc5L2xhcmdlL2V0aGVyZXVtLnBuZz8xNjk2NTAxNjI4IiwiY3VycmVudF9wcmljZSI6MTk2NS44MywibWFya2V0X2NhcCI6MjM3MjQxNTIwNDkxLCJtYXJrZXRfY2FwX3JhbmsiOjIsImZ1bGx5X2RpbHV0ZWRfdmFsdWF0aW9uIjoyMzcyNDE1MjA0OTEsInRvdGFsX3ZvbHVtZSI6ODc2Nzg3NDAzNywiaGlnaF8yNGgiOjE5NzMuMDcsImxvd18yNGgiOjE4ODEuMzIsInByaWNlX2NoYW5nZV8yNGgiOjgxLjk5LCJwcmljZV9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOjQuMiwibWFya2V0X2NhcF9jaGFuZ2VfMjRoIjo5ODk1MDE5MDcxLCJtYXJrZXRfY2FwX2NoYW5nZV9wZXJjZW50YWdlXzI0aCI6NC4zNTI0LCJjaXJjdWxhdGluZ19zdXBwbHkiOjEyMDY4MjYzNS44NTMxMDM3MSwidG90YWxfc3VwcGx5IjoxMjA2ODI2MzUuODUzMTAzNywibWF4X3N1cHBseSI6bnVsbCwiYXRoIjo0OTQ2LjA1LCJhdGhfY2hhbmdlX3BlcmNlbnRhZ2UiOi02MC4yNTQ1MSwiYXRoX2RhdGUiOiIyMDI1LTA4LTI0VDExOjIxOjAzLjAwMFoiLCJhdGwiOjAuNDMyOTc5LCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjQ1MzkyNC43MDA2OSwiYXRsX2RhdGUiOiIyMDE1LTEwLTE5VDE2OjAwOjAwLjAwMFoiLCJyb2kiOnsidGltZXMiOjM5LjM1MTA3ODYzNTQ2MTM2LCJjdXJyZW5jeSI6ImJ0YyIsInBlcmNlbnRhZ2UiOjM5MzUuMTA3ODYzNTQ2MTM2fSwibGFzdF91cGRhdGVkIjoiMjAyNi0wNy0yN1QwODo0NzozMC4wMDBaIiwicHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoX2luX2N1cnJlbmN5Ijo0LjJ9LHsiaWQiOiJiaW5hbmNlY29pbiIsInN5bWJvbCI6ImJuYiIsIm5hbWUiOiJCTkIiLCJpbWFnZSI6Imh0dHBzOi8vY29pbi1pbWFnZXMuY29pbmdlY2tvLmNvbS9jb2lucy9pbWFnZXMvODI1L2xhcmdlL2JuYi1pY29uMl8yeC5wbmc/MTY5NjUwMTk3MCIsImN1cnJlbnRfcHJpY2UiOjU3NC4xMywibWFya2V0X2NhcCI6NzY0NTM5ODEyNDksIm1hcmtldF9jYXBfcmFuayI6NCwiZnVsbHlfZGlsdXRlZF92YWx1YXRpb24iOjc2NDUzOTgwMzU5LCJ0b3RhbF92b2x1bWUiOjM4NTUzODQ3MywiaGlnaF8yNGgiOjU3Ni4wOSwibG93XzI0aCI6NTY5LjcxLCJwcmljZV9jaGFuZ2VfMjRoIjoyLjk5LCJwcmljZV9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOjAuNCwibWFya2V0X2NhcF9jaGFuZ2VfMjRoIjozOTgyMzU4ODksIm1hcmtldF9jYXBfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjowLjUyMzYxLCJjaXJjdWxhdGluZ19zdXBwbHkiOjEzMzE2NTY0MC43NCwidG90YWxfc3VwcGx5IjoxMzMxNjU2MzguMDQsIm1heF9zdXBwbHkiOjIwMDAwMDAwMC4wLCJhdGgiOjEzNjkuOTksImF0aF9jaGFuZ2VfcGVyY2VudGFnZSI6LTU4LjA5MjY3LCJhdGhfZGF0ZSI6IjIwMjUtMTAtMTNUMDA6NDE6MjQuMDAwWiIsImF0bCI6MC4wMzk4MTc3LCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjE0NDE3ODguODQ4ODYsImF0bF9kYXRlIjoiMjAxNy0xMC0xOFQxNjowMDowMC4wMDBaIiwicm9pIjpudWxsLCJsYXN0X3VwZGF0ZWQiOiIyMDI2LTA3LTI3VDA4OjQ3OjMwLjAwMFoiLCJwcmljZV9jaGFuZ2VfcGVyY2VudGFnZV8yNGhfaW5fY3VycmVuY3kiOjAuNH0seyJpZCI6InJpcHBsZSIsInN5bWJvbCI6InhycCIsIm5hbWUiOiJYUlAiLCJpbWFnZSI6Imh0dHBzOi8vY29pbi1pbWFnZXMuY29pbmdlY2tvLmNvbS9jb2lucy9pbWFnZXMvNDQvbGFyZ2UveHJwLXN5bWJvbC13aGl0ZS0xMjgucG5nPzE2OTY1MDE0NDIiLCJjdXJyZW50X3ByaWNlIjoxLjExLCJtYXJrZXRfY2FwIjo2OTE3OTIzNTk4MSwibWFya2V0X2NhcF9yYW5rIjo2LCJmdWxseV9kaWx1dGVkX3ZhbHVhdGlvbiI6MTEwNjExOTkzNzYwLCJ0b3RhbF92b2x1bWUiOjY1ODUyMzM0NywiaGlnaF8yNGgiOjEuMTIsImxvd18yNGgiOjEuMDk2LCJwcmljZV9jaGFuZ2VfMjRoIjowLjAwNjc5MDY2LCJwcmljZV9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOjAuNywibWFya2V0X2NhcF9jaGFuZ2VfMjRoIjo0MjQ2NDIwNjcsIm1hcmtldF9jYXBfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjowLjYxNzYyLCJjaXJjdWxhdGluZ19zdXBwbHkiOjYyNTMzMjcxOTU1LjAsInRvdGFsX3N1cHBseSI6OTk5ODU2MzU3MDcuMCwibWF4X3N1cHBseSI6MTAwMDAwMDAwMDAwLjAsImF0aCI6My42NSwiYXRoX2NoYW5nZV9wZXJjZW50YWdlIjotNjkuNjYwODgsImF0aF9kYXRlIjoiMjAyNS0wNy0xN1QxOTo0MDo1My4wMDBaIiwiYXRsIjowLjAwMjY4NjIxLCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjQxMDgzLjY4MzM4LCJhdGxfZGF0ZSI6IjIwMTQtMDUtMjFUMTY6MDA6MDAuMDAwWiIsInJvaSI6bnVsbCwibGFzdF91cGRhdGVkIjoiMjAyNi0wNy0yN1QwODo0NzozMC4wMDBaIiwicHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoX2luX2N1cnJlbmN5IjowLjd9LHsiaWQiOiJzb2xhbmEiLCJzeW1ib2wiOiJzb2wiLCJuYW1lIjoiU29sYW5hIiwiaW1hZ2UiOiJodHRwczovL2NvaW4taW1hZ2VzLmNvaW5nZWNrby5jb20vY29pbnMvaW1hZ2VzLzQxMjgvbGFyZ2Uvc29sYW5hLnBuZz8xNzE4NzY5NzU2IiwiY3VycmVudF9wcmljZSI6NzYuMjksIm1hcmtldF9jYXAiOjQ0NDg2MDkyNjUwLCJtYXJrZXRfY2FwX3JhbmsiOjcsImZ1bGx5X2RpbHV0ZWRfdmFsdWF0aW9uIjo0ODE1MDI5MzgyNSwidG90YWxfdm9sdW1lIjoxMjQxMTgwODIwLCJoaWdoXzI0aCI6NzYuOTUsImxvd18yNGgiOjc0LjczLCJwcmljZV9jaGFuZ2VfMjRoIjoxLjE4LCJwcmljZV9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOjEuOCwibWFya2V0X2NhcF9jaGFuZ2VfMjRoIjo2OTUwMjU5ODcsIm1hcmtldF9jYXBfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjoxLjU4NzE0LCJjaXJjdWxhdGluZ19zdXBwbHkiOjU4MzA5NTAxNS40OTA5NTc3LCJ0b3RhbF9zdXBwbHkiOjYzMTEyMjk4Ni41NjAxMDk5LCJtYXhfc3VwcGx5IjpudWxsLCJhdGgiOjI5My4zMSwiYXRoX2NoYW5nZV9wZXJjZW50YWdlIjotNzMuOTg5MDksImF0aF9kYXRlIjoiMjAyNS0wMS0xOVQwMzoxNToyNy4wMDBaIiwiYXRsIjowLjUwMDgwMSwiYXRsX2NoYW5nZV9wZXJjZW50YWdlIjoxNTEzNC4yMTE0MywiYXRsX2RhdGUiOiIyMDIwLTA1LTExVDExOjM1OjIzLjAwMFoiLCJyb2kiOm51bGwsImxhc3RfdXBkYXRlZCI6IjIwMjYtMDctMjdUMDg6NDc6MzAuMDAwWiIsInByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aF9pbl9jdXJyZW5jeSI6MS44fSx7ImlkIjoiY2FyZGFubyIsInN5bWJvbCI6ImFkYSIsIm5hbWUiOiJDYXJkYW5vIiwiaW1hZ2UiOiJodHRwczovL2NvaW4taW1hZ2VzLmNvaW5nZWNrby5jb20vY29pbnMvaW1hZ2VzLzk3NS9sYXJnZS9jYXJkYW5vLnBuZz8xNjk2NTAyMDkwIiwiY3VycmVudF9wcmljZSI6MC4xNjQ5NTksIm1hcmtldF9jYXAiOjYxNTI5OTQ4MTMsIm1hcmtldF9jYXBfcmFuayI6MjAsImZ1bGx5X2RpbHV0ZWRfdmFsdWF0aW9uIjo3NDIzMTM3NDg4LCJ0b3RhbF92b2x1bWUiOjE1MjI4NTcwNywiaGlnaF8yNGgiOjAuMTY2ODM1LCJsb3dfMjRoIjowLjE2NDEzMiwicHJpY2VfY2hhbmdlXzI0aCI6LTAuMDAwMTg1NTYxMTc3NDEyNTAyLCJwcmljZV9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOi0wLjcsIm1hcmtldF9jYXBfY2hhbmdlXzI0aCI6LTY5MjE0NzUuMzcwNTczOTk3NSwibWFya2V0X2NhcF9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOi0wLjExMjM2LCJjaXJjdWxhdGluZ19zdXBwbHkiOjM3MzAwMjM0MTcxLjIyMjE3LCJ0b3RhbF9zdXBwbHkiOjQ1MDAwMDAwMDAwLjAsIm1heF9zdXBwbHkiOjQ1MDAwMDAwMDAwLjAsImF0aCI6My4wOSwiYXRoX2NoYW5nZV9wZXJjZW50YWdlIjotOTQuNjU2MTksImF0aF9kYXRlIjoiMjAyMS0wOS0wMVQyMjowMDoxMC4wMDBaIiwiYXRsIjowLjAxOTI1Mjc1LCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjc1Ni44MDU1OCwiYXRsX2RhdGUiOiIyMDIwLTAzLTEyVDE4OjIyOjU1LjAwMFoiLCJyb2kiOm51bGwsImxhc3RfdXBkYXRlZCI6IjIwMjYtMDctMjdUMDg6NDc6MzAuMDAwWiIsInByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aF9pbl9jdXJyZW5jeSI6LTAuN31d"}},"time_used":251,"timings":{"blocked":0,"dns":3,"connect":7,"send":0,"wait":240,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2","fqdn":"fonts.gstatic.com","domain":"gstatic.com","tld":"com"},"ip":{"addr":"142.250.178.67","port":443,"asn":15169,"as":"GOOGLE","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.645Z","timestamp":1785142155645,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.gstatic.com","organization":""},"issuer":{"commonName":"WE2","organization":"Google Trust Services"},"validity":{"start":"Mon, 29 Jun 2026 08:39:25 GMT","end":"Mon, 21 Sep 2026 08:39:24 GMT"},"fingerprint":{"sha1":"4E:F2:73:C6:27:16:58:35:FE:55:D5:30:6B:E8:6D:2B:DA:B0:E8:7B","sha256":"82:EF:6A:61:96:A5:23:D6:2C:2C:9D:77:67:04:D8:7B:3B:6A:50:DA:3C:6C:6A:5F:4E:2D:55:F3:FC:DA:0B:EE"}}},"request":{"raw":"GET /s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0I5nvwU.woff2 HTTP/1.1\r\nHost: fonts.gstatic.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://platinumglobalexchange.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://fonts.googleapis.com/\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\ncontent-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes\r\ncross-origin-resource-policy: cross-origin\r\ncross-origin-opener-policy: same-origin; report-to=\"apps-themes\"\r\nreport-to: {\"group\":\"apps-themes\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/apps-themes\"}]}\r\ntiming-allow-origin: *\r\ncontent-length: 48532\r\nx-content-type-options: nosniff\r\nserver: sffe\r\nx-xss-protection: 0\r\ndate: Wed, 22 Jul 2026 13:10:14 GMT\r\nexpires: Thu, 22 Jul 2027 13:10:14 GMT\r\ncache-control: public, max-age=31536000\r\nlast-modified: Tue, 09 Sep 2025 18:33:50 GMT\r\ncontent-type: font/woff2\r\nage: 416341\r\nalt-svc: h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":48532,"size_decoded":49345,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 48532, version 1.0","md5":"225835e6e0496c54dc2aca9f3d533892","sha1":"942ef5298bbe74bfe44e445def5f2bfc94027fa8","sha256":"acc60d454f46f2ba233c516aa3299aa60e1f49ffd0f06b8392a7c772a5694087","sha512":"ea2ff96ed5ac965c1846b4b33990beab3d4ced66806fa44321f5dd59d9a29a8ae1a67a5816d40165af8a896677b6a24bb74ea6db53cd5e686080165db9fd62c2","ssdeep":"768:b9tYsJ6BxVEpu8sqEkvfXRGEBqH7KxpxA07hQv2bSokjQx2AOWUVOv7UeFHOpIsR:LsEcy7fXRGqqHmr7qv32UC7UetOGLkF","tlshash":"03230178cf9f85b3d33b153afaf4d20562a9067de76c4a803831051a2a55770b89dc0e","first_seen":"2025-05-29T17:27:56.345238Z","last_seen":"2026-07-29T10:49:13.030643Z","times_seen":248888,"resource_available":false,"data":"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"}},"time_used":30,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":16,"receive":14,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"platinumglobalexchange.com/","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T08:49:08.014Z","timestamp":1785142148014,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"platinumglobalexchange.com","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Thu, 28 May 2026 04:08:45 GMT","end":"Wed, 26 Aug 2026 04:08:44 GMT"},"fingerprint":{"sha1":"F1:EB:A7:99:4C:6E:CE:D6:1F:92:20:91:91:C3:81:76:20:9A:D6:32","sha256":"7B:FA:E7:B2:89:CA:63:B1:3D:30:9F:59:CB:12:58:36:C9:9A:B5:87:36:8F:80:24:DD:C1:34:DF:77:35:B0:04"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: platinumglobalexchange.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-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\netag: \"58bc9-6a6504bd-13e0f8;br\"\r\nlast-modified: Sat, 25 Jul 2026 18:47:25 GMT\r\ncontent-type: text/html\r\ncontent-length: 58389\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 08:49:08 GMT\r\nserver: LiteSpeed\r\nx-powered-by: CyberPanel-OLS/2.4.4\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]}],"data":{"size":363465,"size_decoded":58889,"mime_type":"text/html","magic":"HTML document, ASCII text, with very long lines (1134), with CRLF line terminators","md5":"d4062df667e738d673d9f2876f4429a0","sha1":"e71aa474329605b7f9377af2ae651ebec7690016","sha256":"d70020e6278a15aec61774ceacaf29fb619b3299d40fc48b2b3279166ad98afb","sha512":"22cf64d7b2523b2b93cdb27378a7ea7e2acca5fdd1a99983ef8b48697abb953b07144a1dec319cbebc8292e5dddc6028be36c92e357d3b14b4703fb7d695d33e","ssdeep":"3072:BZXACx/mVtqm/I6cC9vFiJhbhpSS/ZcyKVp8CjimlxsFwco/ycm7F4MwLMG:B5aA6cwvUhpSSS8SlxRqd7FhwLMG","tlshash":"3774a77531a11a7682f792feb6634729f965c307d607c948baac83c50ff3c449c27a98","first_seen":"2026-07-27T05:56:47.591546Z","last_seen":"2026-07-27T08:50:16.79327Z","times_seen":3,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+DQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vLCB2aWV3cG9ydC1maXQ9Y292ZXIiPg0KICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMDAwMDAwIj4NCiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPg0KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGUiIGNvbnRlbnQ9ImJsYWNrLXRyYW5zbHVjZW50Ij4NCiAgICA8dGl0bGU+UGxhdGludW1HbG9iYWxFeGNoYW5nZSB8IENyeXB0byBJbnZlc3RtZW50IFBsYXRmb3JtPC90aXRsZT4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4udGFpbHdpbmRjc3MuY29tIj48L3NjcmlwdD4NCiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9SmV0QnJhaW5zK01vbm86d2dodEA0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNi40LjAvY3NzL2FsbC5taW4uY3NzIj4NCiAgICA8c3R5bGU+DQogICAgICAgICogeyBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH0NCiAgICAgICAgaHRtbCwgYm9keSB7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3cteDogaGlkZGVuOyBiYWNrZ3JvdW5kOiAjMDAwOyB9DQogICAgICAgIGJvZHkgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGNvbG9yOiB3aGl0ZTsgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTsgfQ0KICAgICAgICAjY3J5cHRvQ2FudmFzIHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMGEwZTI3IDAlLCAjMDUwNzE0IDUwJSwgIzAwMDAwMCAxMDAlKTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQ0KICAgICAgICAuZ2xvdy1vcmIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlci1yYWRpdXM6IDUwJTsgZmlsdGVyOiBibHVyKDgwcHgpOyBhbmltYXRpb246IHB1bHNlIDhzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9DQogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMzsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSA1MCUgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfSB9DQogICAgICAgICNiZ0NhbnZhcyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9DQogICAgICAgICNhcHBDb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IG1pbi1oZWlnaHQ6IDEwMHZoOyB9DQogICAgICAgIC5ncmFkaWVudC1iZyB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0NCiAgICAgICAgLmdyYWRpZW50LWJnOjpiZWZvcmUgeyBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDYwdmg7IGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBjZW50ZXIsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjI1KSAwJSwgdHJhbnNwYXJlbnQgNzAlKTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IC0xOyB9DQogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UtZ2xvdyB7IDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9IDUwJSB7IGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTsgfSB9DQogICAgICAgIC5sb2dvLWljb24geyB3aWR0aDogNDhweDsgaGVpZ2h0OiA0OHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZmZmZmLCAjZTVlN2ViKTsgYm9yZGVyLXJhZGl1czogNTAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYW5pbWF0aW9uOiBwdWxzZS1nbG93IDNzIGluZmluaXRlOyBmbGV4LXNocmluazogMDsgfQ0KICAgICAgICAuZmVhdHVyZS1pY29uIHsgd2lkdGg6IDQ0cHg7IGhlaWdodDogNDRweDsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7IGJvcmRlci1yYWRpdXM6IDEycHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXNpemU6IDE4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgZmxleC1zaHJpbms6IDA7IH0NCiAgICAgICAgLmJ0bi1wcmltYXJ5IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZmZmZiAwJSwgI2U1ZTdlYiAxMDAlKTsgY29sb3I6IGJsYWNrOyBib3JkZXItcmFkaXVzOiAyOHB4OyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE3cHg7IHRyYW5zaXRpb246IGFsbCAwLjNzOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IGFwcGVhcmFuY2U6IG5vbmU7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9DQogICAgICAgIC5idG4tcHJpbWFyeTphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOyB9DQogICAgICAgIC5idG4tc2Vjb25kYXJ5IHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOyBjb2xvcjogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgYm9yZGVyLXJhZGl1czogMjhweDsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxN3B4OyB0cmFuc2l0aW9uOiBhbGwgMC4zczsgY3Vyc29yOiBwb2ludGVyOyB9DQogICAgICAgIC5idG4tc2Vjb25kYXJ5OmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsgfQ0KICAgICAgICAuYWxlcnQtb3ZlcmxheSB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpOyB6LWluZGV4OiAxMDAwMDsgZGlzcGxheTogbm9uZTsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IDIwcHg7IH0NCiAgICAgICAgLmFsZXJ0LW92ZXJsYXkuYWN0aXZlIHsgZGlzcGxheTogZmxleDsgfQ0KICAgICAgICAuYWxlcnQtYm94IHsgYmFja2dyb3VuZDogIzFmMjkzNzsgYm9yZGVyLXJhZGl1czogMjBweDsgcGFkZGluZzogMjRweCAyMHB4IDIwcHggMjBweDsgbWF4LXdpZHRoOiAzMjBweDsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyOiAxcHggc29saWQgIzM3NDE1MTsgfQ0KICAgICAgICAuYWxlcnQtaWNvbiB7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGJhY2tncm91bmQ6ICNlZjQ0NDQ7IGJvcmRlci1yYWRpdXM6IDUwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbjogMCBhdXRvIDE2cHggYXV0bzsgZm9udC1zaXplOiAyNHB4OyBjb2xvcjogd2hpdGU7IH0NCiAgICAgICAgLmFsZXJ0LWJveC5zdWNjZXNzIC5hbGVydC1pY29uIHsgYmFja2dyb3VuZDogIzEwYjk4MTsgfQ0KICAgICAgICAuYWxlcnQtdGl0bGUgeyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB3aGl0ZTsgbWFyZ2luLWJvdHRvbTogOHB4OyB9DQogICAgICAgIC5hbGVydC1tZXNzYWdlIHsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzljYTNhZjsgbWFyZ2luLWJvdHRvbTogMjBweDsgbGluZS1oZWlnaHQ6IDEuNDsgfQ0KICAgICAgICAuYWxlcnQtYnRuIHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDEycHggMjBweDsgYm9yZGVyLXJhZGl1czogMTJweDsgYm9yZGVyOiBub25lOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgYmFja2dyb3VuZDogI2ZmZmZmZjsgY29sb3I6IGJsYWNrOyB9DQogICAgICAgIC5pbnB1dC1maWVsZCB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7IGJvcmRlci1yYWRpdXM6IDEycHg7IGNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAxNnB4OyB0cmFuc2l0aW9uOiBhbGwgMC4zczsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDE2cHg7IH0NCiAgICAgICAgLmlucHV0LWZpZWxkOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9DQogICAgICAgIC5wYXNzd29yZC13cmFwcGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9DQogICAgICAgIC5wYXNzd29yZC13cmFwcGVyIGlucHV0IHsgcGFkZGluZy1yaWdodDogNTBweCAhaW1wb3J0YW50OyB9DQogICAgICAgIC5wYXNzd29yZC10b2dnbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAxMnB4OyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogOHB4OyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDZweCA4cHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDE7IHotaW5kZXg6IDEwOyB9DQogICAgICAgIC5wYXNzd29yZC10b2dnbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7IGNvbG9yOiB3aGl0ZTsgfQ0KICAgICAgICAubWFpbi1hcHAgeyBkaXNwbGF5OiBub25lOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgbWluLWhlaWdodDogMTAwdmg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgcGFkZGluZy1ib3R0b206IDkwcHg7IH0NCiAgICAgICAgLmdsYXNzIHsgYmFja2dyb3VuZDogcmdiYSgzMSwgNDEsIDU5LCAwLjcpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTVweCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfQ0KICAgICAgICAuY3J5cHRvLWljb24geyB3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6IHdoaXRlOyBmbGV4LXNocmluazogMDsgZm9udC1zaXplOiAxOHB4OyBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOyBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjMpOyB9DQogICAgICAgIC5jcnlwdG8taWNvbiBpbWcgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBvYmplY3QtZml0OiBjb250YWluOyB9DQogICAgICAgIC5idGMgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjc5MzFhLCAjZjVhNjIzKTsgfQ0KICAgICAgICAuZXRoIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYyN2VlYSwgIzhjOWVmZik7IH0NCiAgICAgICAgLnVzZHQgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjZhMTdiLCAjNTBjODc4KTsgfQ0KICAgICAgICAudXNkYyB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyNzc1Y2EsICM1YjliZDUpOyB9DQogICAgICAgIC5ibmIgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBiOTBiLCAjZmNkNTM1KTsgY29sb3I6ICMxYTFhMmU7IH0NCiAgICAgICAgLnNvbCB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM5OTQ1ZmYsICMwMGQ0YWEpOyB9DQogICAgICAgIC54cnAgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjMyOTJmLCAjM2E0NTU2KTsgfQ0KICAgICAgICAuYWRhIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwMzNhZCwgIzAwNTFkNSk7IH0NCiAgICAgICAgLnNlY3Rpb24tY29udGVudCB7IGRpc3BsYXk6IG5vbmU7IGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZS1vdXQ7IHBhZGRpbmc6IDE2cHg7IG1heC13aWR0aDogMTIwMHB4OyBtYXJnaW46IDAgYXV0bzsgfQ0KICAgICAgICAuc2VjdGlvbi1jb250ZW50LmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9DQogICAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9DQogICAgICAgIEBrZXlmcmFtZXMgdGlja2VyU2Nyb2xsIHsgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9DQogICAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblVwIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9DQogICAgICAgIEBrZXlmcmFtZXMgc2hpbW1lciB7IDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfSAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwOyB9IH0NCiAgICAgICAgLm5ld3MtY2FyZCB7IGFuaW1hdGlvbjogc2xpZGVJblVwIDAuNHMgZWFzZS1vdXQgYm90aDsgfQ0KICAgICAgICAubmV3cy1jYXJkOm50aC1jaGlsZCgxKSB7IGFuaW1hdGlvbi1kZWxheTogMC4wNXM7IH0NCiAgICAgICAgLm5ld3MtY2FyZDpudGgtY2hpbGQoMikgeyBhbmltYXRpb24tZGVsYXk6IDAuMTJzOyB9DQogICAgICAgIC5uZXdzLWNhcmQ6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjE5czsgfQ0KICAgICAgICAubmV3cy1jYXJkOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC4yNnM7IH0NCiAgICAgICAgLm5ld3MtY2FyZDpudGgtY2hpbGQoNSkgeyBhbmltYXRpb24tZGVsYXk6IDAuMzNzOyB9DQogICAgICAgIC5ib3R0b20tbmF2IHsgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOTUpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IHotaW5kZXg6IDEwMDsgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTsgfQ0KICAgICAgICAuYm90dG9tLW5hdi1pdGVtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IDhweCA0cHg7IGNvbG9yOiAjNmI3MjgwOyB0cmFuc2l0aW9uOiBhbGwgMC4zczsgZm9udC1zaXplOiAxMXB4OyBnYXA6IDRweDsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGZsZXg6IDE7IH0NCiAgICAgICAgLmJvdHRvbS1uYXYtaXRlbS5hY3RpdmUgeyBjb2xvcjogI2ZmZmZmZjsgfQ0KICAgICAgICAuYm90dG9tLW5hdi1pdGVtIGkgeyBmb250LXNpemU6IDIwcHg7IH0NCiAgICAgICAgLmNyeXB0by1saXN0LWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAxNnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7IH0NCiAgICAgICAgLmNyeXB0by1saXN0LWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyB9DQogICAgICAgIC5jcnlwdG8tbGlzdC1pdGVtOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9DQogICAgICAgIC50cmVuZC11cCB7IGNvbG9yOiAjMTBiOTgxOyB9DQogICAgICAgIC50cmVuZC1kb3duIHsgY29sb3I6ICNlZjQ0NDQ7IH0NCiAgICAgICAgLm1vZGFsIHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsgei1pbmRleDogMTAwMDsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7IH0NCiAgICAgICAgLm1vZGFsLmFjdGl2ZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9DQogICAgICAgIC5mbG9hdGluZy1jaGF0LWJ0biB7IHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiA5MHB4OyByaWdodDogMjBweDsgd2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgY29sb3I6IGJsYWNrOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZm9udC1zaXplOiAyNHB4OyBjdXJzb3I6IGdyYWI7IHotaW5kZXg6IDIwMDsgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsMCwwLDAuMyk7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cywgYm94LXNoYWRvdyAwLjE1czsgdXNlci1zZWxlY3Q6IG5vbmU7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IHRvdWNoLWFjdGlvbjogbm9uZTsgfQ0KICAgICAgICAuZmxvYXRpbmctY2hhdC1idG46aG92ZXIgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpOyBib3gtc2hhZG93OiAwIDZweCAyNHB4IHJnYmEoMCwwLDAsMC40KTsgfQ0KICAgICAgICAuZmxvYXRpbmctY2hhdC1idG4uZHJhZ2dpbmcgeyBjdXJzb3I6IGdyYWJiaW5nOyB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpOyBib3gtc2hhZG93OiAwIDhweCAzMHB4IHJnYmEoMCwwLDAsMC41KTsgei1pbmRleDogOTk5OTsgfQ0KICAgICAgICAuZmxvYXRpbmctY2hhdC1iYWRnZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtNHB4OyByaWdodDogLTRweDsgYmFja2dyb3VuZDogI2VmNDQ0NDsgY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiBib2xkOyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9DQogICAgICAgIC5jaGF0LW1zZy1ndWVzdCB7IGJhY2tncm91bmQ6ICMzNzQxNTE7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDJweCAxMnB4OyB9DQogICAgICAgIC5jaGF0LW1zZy1hZG1pbiB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzYjgyZjYgMCUsICM2MzY2ZjEgMTAwJSk7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDEycHggMnB4OyB9DQogICAgICAgIC5jaGF0LW1zZy1hZG1pbiAudGV4dC1ncmF5LTUwMCB7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNikgIWltcG9ydGFudDsgfQ0KICAgICAgICAuY2hhdC1ndWVzdC1mb3JtIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzNzQxNTE7IHBhZGRpbmctYm90dG9tOiAxMnB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9DQogICAgICAgIC5vcmRlci1ib29rLXJvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7IHBhZGRpbmc6IDRweCA4cHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubycsIG1vbm9zcGFjZTsgfQ0KICAgICAgICAub3JkZXItYm9vay1zZWxsIHsgY29sb3I6ICNlZjQ0NDQ7IH0NCiAgICAgICAgLm9yZGVyLWJvb2stYnV5IHsgY29sb3I6ICMxMGI5ODE7IH0NCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6IHJnYmEoMzEsIDQxLCA1OSwgMC41KTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTZweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQ0KICAgICAgICAudGltZS1zZWxlY3RvciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBtYXJnaW4tdG9wOiAxMnB4OyB9DQogICAgICAgIC50aW1lLWJ0biB7IHBhZGRpbmc6IDZweCAxMnB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogMXB4IHNvbGlkICMzNzQxNTE7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogIzljYTNhZjsgZm9udC1zaXplOiAxMnB4OyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGFsbCAwLjJzOyB9DQogICAgICAgIC50aW1lLWJ0bi5hY3RpdmUgeyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyBjb2xvcjogYmxhY2s7IGJvcmRlci1jb2xvcjogI2ZmZmZmZjsgfQ0KICAgICAgICAubGV2ZXJhZ2Utc2xpZGVyIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6ICMzNzQxNTE7IG91dGxpbmU6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfQ0KICAgICAgICAubGV2ZXJhZ2Utc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyBjdXJzb3I6IHBvaW50ZXI7IH0NCiAgICAgICAgLnRhYi1idG4geyBwYWRkaW5nOiAxMnB4IDI0cHg7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjOWNhM2FmOyBmb250LXdlaWdodDogNjAwOyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsgdHJhbnNpdGlvbjogYWxsIDAuMnM7IH0NCiAgICAgICAgLnRhYi1idG4uYWN0aXZlIHsgY29sb3I6ICNmZmZmZmY7IGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmZmZmY7IH0NCiAgICAgICAgLnRyYWRlLW1haW4tdGFiIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjOWNhM2FmOyBib3JkZXI6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsgfQ0KICAgICAgICAudHJhZGUtbWFpbi10YWIuYWN0aXZlIHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgY29sb3I6ICMwMDAwMDA7IH0NCiAgICAgICAgLnRyYWRlLXBhbmVsIHsgZGlzcGxheTogbm9uZTsgYW5pbWF0aW9uOiBmYWRlSW4gMC4zcyBlYXNlLW91dDsgfQ0KICAgICAgICAudHJhZGUtcGFuZWwuYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH0NCiAgICAgICAgLnRyYWRlLWJ0bi1idXkgeyBiYWNrZ3JvdW5kOiAjMTBiOTgxOyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDE2cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJvcmRlcjogbm9uZTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNnB4OyBjdXJzb3I6IHBvaW50ZXI7IHdpZHRoOiAxMDAlOyB9DQogICAgICAgIC50cmFkZS1idG4tc2VsbCB7IGJhY2tncm91bmQ6ICNlZjQ0NDQ7IGNvbG9yOiB3aGl0ZTsgcGFkZGluZzogMTZweDsgYm9yZGVyLXJhZGl1czogMTJweDsgYm9yZGVyOiBub25lOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgd2lkdGg6IDEwMCU7IH0NCiAgICAgICAgLnBvc2l0aW9uLWxvbmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKTsgYm9yZGVyOiAxcHggc29saWQgIzEwYjk4MTsgY29sb3I6ICMxMGI5ODE7IH0NCiAgICAgICAgLnBvc2l0aW9uLXNob3J0IHsgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsgYm9yZGVyOiAxcHggc29saWQgI2VmNDQ0NDsgY29sb3I6ICNlZjQ0NDQ7IH0NCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5zZWN0aW9uLWNvbnRlbnQgeyBwYWRkaW5nOiAyNHB4OyB9IC5ib3R0b20tbmF2IHsgZGlzcGxheTogbm9uZTsgfSAubWFpbi1hcHAgeyBwYWRkaW5nLWJvdHRvbTogMDsgfSAuZmxvYXRpbmctY2hhdC1idG4geyBib3R0b206IDIwcHg7IHotaW5kZXg6IDIwMDsgfSB9DQogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgeyAuZGVza3RvcC1vbmx5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH0NCiAgICA8L3N0eWxlPg0KPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPg0KPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPg0KPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPg0KPC9oZWFkPg0KPGJvZHk+DQogICAgPGRpdiBpZD0iY3J5cHRvQ2FudmFzIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IGJhY2tncm91bmQ6ICMzYjgyZjY7IHRvcDogLTEwMHB4OyBsZWZ0OiAtMTAwcHg7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6ICM4YjVjZjY7IHRvcDogMjAlOyByaWdodDogLTUwcHg7IGFuaW1hdGlvbi1kZWxheTogMnM7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogMzUwcHg7IGhlaWdodDogMzUwcHg7IGJhY2tncm91bmQ6ICMwNmI2ZDQ7IGJvdHRvbTogMTAlOyBsZWZ0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogNHM7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogMjUwcHg7IGhlaWdodDogMjUwcHg7IGJhY2tncm91bmQ6ICNmNTllMGI7IGJvdHRvbTogMjAlOyByaWdodDogMjAlOyBhbmltYXRpb24tZGVsYXk6IDFzOyI+PC9kaXY+DQogICAgICAgIDxjYW52YXMgaWQ9ImJnQ2FudmFzIj48L2NhbnZhcz4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgaWQ9ImFwcENvbnRhaW5lciI+DQogICAgICAgIDxkaXYgaWQ9ImN1c3RvbUFsZXJ0IiBjbGFzcz0iYWxlcnQtb3ZlcmxheSI+DQogICAgICAgICAgICA8ZGl2IGlkPSJhbGVydEJveCIgY2xhc3M9ImFsZXJ0LWJveCI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQtaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbiI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0LXRpdGxlIiBpZD0iYWxlcnRUaXRsZSI+RXJyb3I8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydC1tZXNzYWdlIiBpZD0iYWxlcnRNZXNzYWdlIj5JbnZhbGlkIGNyZWRlbnRpYWxzPC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWxlcnQtYnRuIiBvbmNsaWNrPSJjbG9zZUFsZXJ0KCkiPk9LPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0ibGFuZGluZ1BhZ2UiIGNsYXNzPSJncmFkaWVudC1iZyBtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwdC0xMiBweC02IGZsZXggaXRlbXMtY2VudGVyIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtY3ViZSB0ZXh0LWJsYWNrIHRleHQteGwiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWwtMyB0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1sZyB0cmFja2luZy13aWRlIj5QbGF0aW51bUdsb2JhbEV4Y2hhbmdlPC9zcGFuPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcHgtNiBwdC0xMiBwYi04IGZsZXggZmxleC1jb2wiPg0KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0idGV4dC00eGwgc206dGV4dC01eGwgZm9udC1zZXJpZiBsZWFkaW5nLXRpZ2h0IG1iLTgiIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmOyI+UHJvZmVzc2lvbmFsIGludmVzdG1lbnQgc29sdXRpb25zIGZvciBzZXJpb3VzIGludmVzdG9yczwvaDE+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS01IG1iLWF1dG8iPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTQiPjxkaXYgY2xhc3M9ImZlYXR1cmUtaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1sYXllci1ncm91cCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC1sZyBmb250LW1lZGl1bSI+TXVsdGktQXNzZXQgSW52ZXN0aW5nPC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTQiPjxkaXYgY2xhc3M9ImZlYXR1cmUtaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1hcnJvdy10cmVuZC11cCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC1sZyBmb250LW1lZGl1bSI+SW5kdXN0cnktTGVhZGluZyBZaWVsZHM8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNCI+PGRpdiBjbGFzcz0iZmVhdHVyZS1pY29uIj48aSBjbGFzcz0iZmFzIGZhLXdhbmQtbWFnaWMtc3BhcmtsZXMgdGV4dC13aGl0ZSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1tZWRpdW0iPjJYLVBvd2VyZWQgQXV0b21hdGlvbjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00Ij48ZGl2IGNsYXNzPSJmZWF0dXJlLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtaGVhcnQgdGV4dC13aGl0ZSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1tZWRpdW0iPkF3YXJkLVdpbm5pbmcgU3VwcG9ydDwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gVHJhZGUgT3B0aW9ucyBQcm9tbyBTZWN0aW9uIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSBtdC04IG1iLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDYsNzgsNTksMC4zKSAwJSwgcmdiYSgxNywyNCwzOSwwLjYpIDUwJSwgcmdiYSg2LDc4LDU5LDAuMikgMTAwJSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoOTQsMjM0LDIxMiwwLjE1KTsiPg0KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtM3hsIHNtOnRleHQtNHhsIGxlYWRpbmctdGlnaHQgbWItMSIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmOyBjb2xvcjogI2ZmZmZmZjsiPlRyYWRlIG9wdGlvbnMuPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LTN4bCBzbTp0ZXh0LTR4bCBsZWFkaW5nLXRpZ2h0IG1iLTQiIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjsgY29sb3I6ICM1ZWVhZDQ7Ij5FYXJuIHJlYmF0ZXMuPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS0zMDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgbWItNSI+QWR2YW5jZWQgdG9vbHMsIHplcm8gY29tbWlzc2lvbnMsIGFuZCByZWJhdGVzIG9uIHlvdXIgdHJhZGVzLiBQcm9mZXNzaW9uYWwtZ3JhZGUgY2hhcnRpbmcgd2l0aCByZWFsLXRpbWUgbWFya2V0IGRhdGEuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlbiBiZy1ncmF5LTkwMC82MCBib3JkZXIgYm9yZGVyLWdyYXktNzAwLzQwIHNoYWRvdy1pbm5lciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2NDI3OTAxMDYxMTctZTgyOWUxNGE3OTVmP3c9ODAwJmg9NDgwJmZpdD1jcm9wJnE9ODAiIGFsdD0iVHJhZGluZyBEYXNoYm9hcmQiIGNsYXNzPSJ3LWZ1bGwgaC1hdXRvIG9iamVjdC1jb3ZlciIgbG9hZGluZz0ibGF6eSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im10LTUgdGV4dC1jZW50ZXIgcGItMiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCBzbTp0ZXh0LTJ4bCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmOyBjb2xvcjogI2ZmZmZmZjsiPkRvbid0IG1pc3MgeW91ciBjcnlwdG8gcmV3YXJkcy48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCBzbTp0ZXh0LTJ4bCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmOyBjb2xvcjogIzVlZWFkNDsiPkNhcHR1cmUgZXZlcnkgb3Bwb3J0dW5pdHkuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gV2h5IFBsYXRpbnVtRXggU2VjdGlvbiAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdC04IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtM3hsIHNtOnRleHQtNHhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTYiIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjsiPldoeSBQbGF0aW51bUV4PzwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTMwMCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCI+UGxhdGludW1FeCBpcyBidWlsdCBmb3IgYSBkaXZlcnNlIGNvbW11bml0eSBvZiBpbmRpdmlkdWFscywgcHJvZmVzc2lvbmFscywgYW5kIGluc3RpdHV0aW9ucyB3aG8gc2hhcmUgb25lIGdvYWw6IHRvIG1vdmUgY29uZmlkZW50bHkgd2l0aGluIHRoZSBkaWdpdGFsIGVjb25vbXkuIEFjcm9zcyA8c3Ryb25nIGNsYXNzPSJ0ZXh0LXdoaXRlIj4xODUrIGNvdW50cmllczwvc3Ryb25nPiwgd2UgZW1wb3dlciBhbnlvbmUgZnJvbSBmaXJzdC10aW1lIHVzZXJzIHRvIGhpZ2gtdm9sdW1lIHRyYWRlcnMgYW5kIGdsb2JhbCBidXNpbmVzc2VzIHRvIGFjY2VzcywgbWFuYWdlLCBhbmQgZ3JvdyB0aGVpciBkaWdpdGFsIHdlYWx0aCB3aXRoIGVhc2UgYW5kIHRydXN0LjwvcD4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWxnIGJnLWVtZXJhbGQtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAgbXQtMC41Ij48aSBjbGFzcz0iZmFzIGZhLXVzZXItY2hlY2sgdGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+Rm9yIEJlZ2lubmVycyAmIEVudGh1c2lhc3RzPC9wPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIj5Gb3IgYmVnaW5uZXJzIGFuZCBzZWFzb25lZCBjcnlwdG8gZW50aHVzaWFzdHMsIHdlIHByb3ZpZGUgYSBzZWN1cmUsIGd1aWRlZCBlbnRyeSBwb2ludCBpbnRvIHRoZSB3b3JsZCBvZiBkaWdpdGFsIGFzc2V0cy4gRmFzdCBpZGVudGl0eSB2ZXJpZmljYXRpb24gKEtZQykgbGV0cyBuZXcgcGFydGljaXBhbnRzIHN0YXJ0IHRyYWRpbmcgd2l0aGluIG1pbnV0ZXMsIHdoaWxlIGluc3RhbnQgY3J5cHRvIGRlcG9zaXRzIGFuZCB3aXRoZHJhd2FscyBtYWtlIGl0IGVmZm9ydGxlc3MgdG8gbW92ZSBmdW5kcyBiZXR3ZWVuIHdhbGxldHMgYW5kIGV4Y2hhbmdlcy48L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWxnIGJnLWJsdWUtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAgbXQtMC41Ij48aSBjbGFzcz0iZmFzIGZhLW1vYmlsZS1hbHQgdGV4dC1ibHVlLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+VHJhZGUgT24gVGhlIEdvPC9wPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIj5XaXRoIHRoZSBQbGF0aW51bUV4IGVsaWdpYmxlIHVzZXJzIGNhbiBidXksIHNlbGwsIGNvbnZlcnQsIHRyYWRlLCBhbmQgdHJhY2sgY3J5cHRvIG9uIHRoZSBnbywgc2V0IHByaWNlIGFsZXJ0cywgYW5kIG1hbmFnZSBwb3J0Zm9saW9zIGZyb20gYSBzaW5nbGUgZGFzaGJvYXJkLCB3aXRob3V0IGNvbXBsZXggdG9vbHMgb3IgcHJpb3IgZXhwZXJpZW5jZS48L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWxnIGJnLXB1cnBsZS01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCBtdC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IHRleHQtcHVycGxlLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+RnJlZWxhbmNlcnMgJiBFbnRyZXByZW5ldXJzPC9wPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIj5GcmVlbGFuY2VycyBhbmQgZW50cmVwcmVuZXVycyB3aG8gcmVjZWl2ZSBjcnlwdG8gcGF5bWVudHMgY2FuIHJlbHkgb24gb3VyIGZyZWUgQ3J5cHRvICYgQml0Y29pbiBXYWxsZXQsIGEgc2VjdXJlIGFuZCBpbnR1aXRpdmUgc3BhY2UgdG8gc3RvcmUsIGNvbnZlcnQsIGFuZCB3aXRoZHJhdyBmdW5kcyB0byBmaWF0LiBXaXRoaW4gb3VyIGVjb3N5c3RlbSwgemVyby1mZWUgdHJhbnNmZXJzIGJldHdlZW4gUGxhdGludW1FeCBhY2NvdW50cyBlbmFibGUgaW5zdGFudCBwZWVyLXRvLXBlZXIgcGF5bWVudHMgYW5kIGJ1c2luZXNzIHNldHRsZW1lbnRzLCBlbGltaW5hdGluZyBibG9ja2NoYWluIGZlZXMgYW5kIHdhaXRpbmcgdGltZXMuPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IiBzdHlsZT0iYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMiPjxkaXYgY2xhc3M9InctOCBoLTggcm91bmRlZC1sZyBiZy1hbWJlci01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCBtdC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtbGluZSB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+UHJvZmVzc2lvbmFsIFRyYWRlcnMgJiBJbnN0aXR1dGlvbnM8L3A+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQiPlByb2Zlc3Npb25hbCB0cmFkZXJzIGFuZCBpbnN0aXR1dGlvbnMgbWF5IHRha2UgYWR2YW50YWdlIG9mIGRlZXAgbGlxdWlkaXR5LCB0aWdodCBzcHJlYWRzLCBhbmQgYWR2YW5jZWQgdHJhZGluZyB0b29scywgaW5jbHVkaW5nIFNwb3QgYW5kIE1hcmdpbiBUcmFkaW5nIHdpdGggdXAgdG8gMjB4IGxldmVyYWdlLiBXaXRoIHNlYW1sZXNzIGZpYXQgb24tIGFuZCBvZmYtcmFtcHMgYWNyb3NzIHRoZSBVUyBhbmQgRVUsIGluY2x1ZGluZyBTRVBBLCBTV0lGVCwgRmFzdGVyIFBheW1lbnRzLCBhbmQgbWFqb3IgY2FyZCBuZXR3b3JrcywgdXNlcnMgZW5qb3kgZmFzdCBhbmQgcmVsaWFibGUgdHJhbnNhY3Rpb25zIHdoZXJldmVyIHRoZXkgb3BlcmF0ZS48L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC00IHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwLzEwIHRvLWJsdWUtNjAwLzEwIGJvcmRlciBib3JkZXItZW1lcmFsZC01MDAvMTUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtc2hyaW5rLTAgdy0xMCBoLTEwIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNTAwIHRvLWJsdWUtNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLXNoaWVsZC1oYWx2ZWQgdGV4dC13aGl0ZSB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS0zMDAgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQiPkJhY2tlZCBieSA8c3Ryb25nIGNsYXNzPSJ0ZXh0LXdoaXRlIj5GaW5DRU4gTVNCIHJlZ2lzdHJhdGlvbjwvc3Ryb25nPiBpbiB0aGUgVVMgYW5kIDxzdHJvbmcgY2xhc3M9InRleHQtd2hpdGUiPlBDSSBEU1MgTGV2ZWwgMTwvc3Ryb25nPiBjZXJ0aWZpY2F0aW9uIHJlY29nbml6ZWQgZ2xvYmFsbHksIFBsYXRpbnVtRXggY29tYmluZXMgcmVndWxhdG9yeSB0cnVzdCwgcGVyZm9ybWFuY2UsIGFuZCBjb252ZW5pZW5jZSB0byBlbXBvd2VyIHVzZXJzIGFjcm9zcyBib3RoIEV1cm9wZWFuIGFuZCBBbWVyaWNhbiBtYXJrZXRzLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMyBtdC04Ij4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93QXV0aCgncmVnaXN0ZXInKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS00Ij5HZXQgU3RhcnRlZDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dBdXRoKCdsb2dpbicpIiBjbGFzcz0iYnRuLXNlY29uZGFyeSB3LWZ1bGwgcHktNCI+TG9nIGluPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYXV0aFNjcmVlbiIgY2xhc3M9ImF1dGgtc2NyZWVuIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgbWluLWhlaWdodDogMTAwdmg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTYiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIj48ZGl2IGNsYXNzPSJsb2dvLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtY3ViZSB0ZXh0LWJsYWNrIHRleHQteGwiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0ibWwtMyB0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1sZyI+UGxhdGludW1HbG9iYWxFeGNoYW5nZTwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dMYW5kaW5nKCkiIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtMnhsIHAtMiI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcHgtNiBwYi04Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtNiBtYi04IGJvcmRlci1iIGJvcmRlci1ncmF5LTgwMCI+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic3dpdGNoQXV0aCgnbG9naW4nKSIgaWQ9ImxvZ2luVGFiIiBjbGFzcz0idGFiLWJ0biBhY3RpdmUiPkxvZyBpbjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InN3aXRjaEF1dGgoJ3JlZ2lzdGVyJykiIGlkPSJyZWdpc3RlclRhYiIgY2xhc3M9InRhYi1idG4iPlNpZ24gdXA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8Zm9ybSBpZD0ibG9naW5Gb3JtIiBjbGFzcz0ic3BhY2UteS01IiBvbnN1Ym1pdD0icmV0dXJuIGhhbmRsZUxvZ2luKGV2ZW50KSI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImxvZ2luRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCIgcGxhY2Vob2xkZXI9IkVtYWlsIGFkZHJlc3MiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0iZW1haWwiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC13cmFwcGVyIj48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJsb2dpblBhc3N3b3JkIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgcmVxdWlyZWQgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ2xvZ2luUGFzc3dvcmQnLCB0aGlzKSI+PGkgY2xhc3M9ImZhcyBmYS1leWUiPjwvaT48L2J1dHRvbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibG9naW5FcnJvciIgY2xhc3M9ImhpZGRlbiB0ZXh0LXJvc2UtNDAwIHRleHQtc20gZm9udC1tZWRpdW0gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpIGNsYXNzPSJmYXMgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUiPjwvaT48c3Bhbj5JbnZhbGlkIGxvZ2luIGNyZWRlbnRpYWxzLiBQbGVhc2UgdHJ5IGFnYWluLjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBzcGFjZS14LTMiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImtlZXBTaWduZWRJbiIgY2xhc3M9Im10LTEgdy01IGgtNSByb3VuZGVkIGJnLWdyYXktODAwIGJvcmRlci1ncmF5LTYwMCI+PGxhYmVsIGZvcj0ia2VlcFNpZ25lZEluIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj5LZWVwIG1lIHNpZ25lZCBpbiBmb3IgNDggaG91cnM8L2xhYmVsPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9ImxvZ2luQnRuIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTQiPkxvZyBpbjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+PGEgaHJlZj0iL2ZvcmdldHBhc3N3b3JkIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPkZvcmdvdCBwYXNzd29yZD88L2E+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJyZWdpc3RlckZvcm0iIGNsYXNzPSJzcGFjZS15LTUgaGlkZGVuIiBvbnN1Ym1pdD0icmV0dXJuIGhhbmRsZVJlZ2lzdGVyKGV2ZW50KSI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVnRmlyc3ROYW1lIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJGaXJzdCBuYW1lIiByZXF1aXJlZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlZ0xhc3ROYW1lIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJMYXN0IG5hbWUiIHJlcXVpcmVkPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJyZWdDb3VudHJ5IiBjbGFzcz0iaW5wdXQtZmllbGQiIHJlcXVpcmVkIG9uY2hhbmdlPSJ1cGRhdGVDb3VudHJ5Q29kZSh0aGlzLnZhbHVlKSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdCB5b3VyIGNvdW50cnk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVTIiBkYXRhLWNvZGU9IisxIj5Vbml0ZWQgU3RhdGVzICgrMSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNBIiBkYXRhLWNvZGU9IisxIj5DYW5hZGEgKCsxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR0IiIGRhdGEtY29kZT0iKzQ0Ij5Vbml0ZWQgS2luZ2RvbSAoKzQ0KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQVUiIGRhdGEtY29kZT0iKzYxIj5BdXN0cmFsaWEgKCs2MSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRFIiBkYXRhLWNvZGU9Iis0OSI+R2VybWFueSAoKzQ5KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRlIiIGRhdGEtY29kZT0iKzMzIj5GcmFuY2UgKCszMyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklUIiBkYXRhLWNvZGU9IiszOSI+SXRhbHkgKCszOSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVTIiBkYXRhLWNvZGU9IiszNCI+U3BhaW4gKCszNCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5MIiBkYXRhLWNvZGU9IiszMSI+TmV0aGVybGFuZHMgKCszMSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJFIiBkYXRhLWNvZGU9IiszMiI+QmVsZ2l1bSAoKzMyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ0giIGRhdGEtY29kZT0iKzQxIj5Td2l0emVybGFuZCAoKzQxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQVQiIGRhdGEtY29kZT0iKzQzIj5BdXN0cmlhICgrNDMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTRSIgZGF0YS1jb2RlPSIrNDYiPlN3ZWRlbiAoKzQ2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTk8iIGRhdGEtY29kZT0iKzQ3Ij5Ob3J3YXkgKCs0Nyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRLIiBkYXRhLWNvZGU9Iis0NSI+RGVubWFyayAoKzQ1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRkkiIGRhdGEtY29kZT0iKzM1OCI+RmlubGFuZCAoKzM1OCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklFIiBkYXRhLWNvZGU9IiszNTMiPklyZWxhbmQgKCszNTMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQVCIgZGF0YS1jb2RlPSIrMzUxIj5Qb3J0dWdhbCAoKzM1MSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdSIiBkYXRhLWNvZGU9IiszMCI+R3JlZWNlICgrMzApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQTCIgZGF0YS1jb2RlPSIrNDgiPlBvbGFuZCAoKzQ4KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ1oiIGRhdGEtY29kZT0iKzQyMCI+Q3plY2ggUmVwdWJsaWMgKCs0MjApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIVSIgZGF0YS1jb2RlPSIrMzYiPkh1bmdhcnkgKCszNik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJPIiBkYXRhLWNvZGU9Iis0MCI+Um9tYW5pYSAoKzQwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQkciIGRhdGEtY29kZT0iKzM1OSI+QnVsZ2FyaWEgKCszNTkpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIUiIgZGF0YS1jb2RlPSIrMzg1Ij5Dcm9hdGlhICgrMzg1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0siIGRhdGEtY29kZT0iKzQyMSI+U2xvdmFraWEgKCs0MjEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTSSIgZGF0YS1jb2RlPSIrMzg2Ij5TbG92ZW5pYSAoKzM4Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxUIiBkYXRhLWNvZGU9IiszNzAiPkxpdGh1YW5pYSAoKzM3MCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxWIiBkYXRhLWNvZGU9IiszNzEiPkxhdHZpYSAoKzM3MSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVFIiBkYXRhLWNvZGU9IiszNzIiPkVzdG9uaWEgKCszNzIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMVSIgZGF0YS1jb2RlPSIrMzUyIj5MdXhlbWJvdXJnICgrMzUyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTVQiIGRhdGEtY29kZT0iKzM1NiI+TWFsdGEgKCszNTYpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDWSIgZGF0YS1jb2RlPSIrMzU3Ij5DeXBydXMgKCszNTcpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJUyIgZGF0YS1jb2RlPSIrMzU0Ij5JY2VsYW5kICgrMzU0KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSlAiIGRhdGEtY29kZT0iKzgxIj5KYXBhbiAoKzgxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS1IiIGRhdGEtY29kZT0iKzgyIj5Tb3V0aCBLb3JlYSAoKzgyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ04iIGRhdGEtY29kZT0iKzg2Ij5DaGluYSAoKzg2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSU4iIGRhdGEtY29kZT0iKzkxIj5JbmRpYSAoKzkxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0ciIGRhdGEtY29kZT0iKzY1Ij5TaW5nYXBvcmUgKCs2NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhLIiBkYXRhLWNvZGU9Iis4NTIiPkhvbmcgS29uZyAoKzg1Mik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1ZIiBkYXRhLWNvZGU9Iis2MCI+TWFsYXlzaWEgKCs2MCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRIIiBkYXRhLWNvZGU9Iis2NiI+VGhhaWxhbmQgKCs2Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklEIiBkYXRhLWNvZGU9Iis2MiI+SW5kb25lc2lhICgrNjIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQSCIgZGF0YS1jb2RlPSIrNjMiPlBoaWxpcHBpbmVzICgrNjMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWTiIgZGF0YS1jb2RlPSIrODQiPlZpZXRuYW0gKCs4NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFFIiBkYXRhLWNvZGU9Iis5NzEiPlVuaXRlZCBBcmFiIEVtaXJhdGVzICgrOTcxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0EiIGRhdGEtY29kZT0iKzk2NiI+U2F1ZGkgQXJhYmlhICgrOTY2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUUEiIGRhdGEtY29kZT0iKzk3NCI+UWF0YXIgKCs5NzQpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLVyIgZGF0YS1jb2RlPSIrOTY1Ij5LdXdhaXQgKCs5NjUpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCSCIgZGF0YS1jb2RlPSIrOTczIj5CYWhyYWluICgrOTczKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT00iIGRhdGEtY29kZT0iKzk2OCI+T21hbiAoKzk2OCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklMIiBkYXRhLWNvZGU9Iis5NzIiPklzcmFlbCAoKzk3Mik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRSIiBkYXRhLWNvZGU9Iis5MCI+VHVya2V5ICgrOTApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCUiIgZGF0YS1jb2RlPSIrNTUiPkJyYXppbCAoKzU1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQVIiIGRhdGEtY29kZT0iKzU0Ij5BcmdlbnRpbmEgKCs1NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNMIiBkYXRhLWNvZGU9Iis1NiI+Q2hpbGUgKCs1Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNPIiBkYXRhLWNvZGU9Iis1NyI+Q29sb21iaWEgKCs1Nyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBFIiBkYXRhLWNvZGU9Iis1MSI+UGVydSAoKzUxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVkUiIGRhdGEtY29kZT0iKzU4Ij5WZW5lenVlbGEgKCs1OCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVZIiBkYXRhLWNvZGU9Iis1OTgiPlVydWd1YXkgKCs1OTgpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQWSIgZGF0YS1jb2RlPSIrNTk1Ij5QYXJhZ3VheSAoKzU5NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJPIiBkYXRhLWNvZGU9Iis1OTEiPkJvbGl2aWEgKCs1OTEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFQyIgZGF0YS1jb2RlPSIrNTkzIj5FY3VhZG9yICgrNTkzKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTVgiIGRhdGEtY29kZT0iKzUyIj5NZXhpY28gKCs1Mik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBBIiBkYXRhLWNvZGU9Iis1MDciPlBhbmFtYSAoKzUwNyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNSIiBkYXRhLWNvZGU9Iis1MDYiPkNvc3RhIFJpY2EgKCs1MDYpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHVCIgZGF0YS1jb2RlPSIrNTAyIj5HdWF0ZW1hbGEgKCs1MDIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJITiIgZGF0YS1jb2RlPSIrNTA0Ij5Ib25kdXJhcyAoKzUwNCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNWIiBkYXRhLWNvZGU9Iis1MDMiPkVsIFNhbHZhZG9yICgrNTAzKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTkkiIGRhdGEtY29kZT0iKzUwNSI+TmljYXJhZ3VhICgrNTA1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRE8iIGRhdGEtY29kZT0iKzEiPkRvbWluaWNhbiBSZXB1YmxpYyAoKzEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKTSIgZGF0YS1jb2RlPSIrMSI+SmFtYWljYSAoKzEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCUyIgZGF0YS1jb2RlPSIrMSI+QmFoYW1hcyAoKzEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCQiIgZGF0YS1jb2RlPSIrMSI+QmFyYmFkb3MgKCsxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVFQiIGRhdGEtY29kZT0iKzEiPlRyaW5pZGFkICYgVG9iYWdvICgrMSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5aIiBkYXRhLWNvZGU9Iis2NCI+TmV3IFplYWxhbmQgKCs2NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZKIiBkYXRhLWNvZGU9Iis2NzkiPkZpamkgKCs2NzkpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQRyIgZGF0YS1jb2RlPSIrNjc1Ij5QYXB1YSBOZXcgR3VpbmVhICgrNjc1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUlUiIGRhdGEtY29kZT0iKzciPlJ1c3NpYSAoKzcpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVQSIgZGF0YS1jb2RlPSIrMzgwIj5Va3JhaW5lICgrMzgwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQlkiIGRhdGEtY29kZT0iKzM3NSI+QmVsYXJ1cyAoKzM3NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1EIiBkYXRhLWNvZGU9IiszNzMiPk1vbGRvdmEgKCszNzMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHRSIgZGF0YS1jb2RlPSIrOTk1Ij5HZW9yZ2lhICgrOTk1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQU0iIGRhdGEtY29kZT0iKzM3NCI+QXJtZW5pYSAoKzM3NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFaIiBkYXRhLWNvZGU9Iis5OTQiPkF6ZXJiYWlqYW4gKCs5OTQpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLWiIgZGF0YS1jb2RlPSIrNyI+S2F6YWtoc3RhbiAoKzcpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVWiIgZGF0YS1jb2RlPSIrOTk4Ij5VemJla2lzdGFuICgrOTk4KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS0ciIGRhdGEtY29kZT0iKzk5NiI+S3lyZ3l6c3RhbiAoKzk5Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRKIiBkYXRhLWNvZGU9Iis5OTIiPlRhamlraXN0YW4gKCs5OTIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUTSIgZGF0YS1jb2RlPSIrOTkzIj5UdXJrbWVuaXN0YW4gKCs5OTMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQSyIgZGF0YS1jb2RlPSIrOTIiPlBha2lzdGFuICgrOTIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCRCIgZGF0YS1jb2RlPSIrODgwIj5CYW5nbGFkZXNoICgrODgwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTEsiIGRhdGEtY29kZT0iKzk0Ij5TcmkgTGFua2EgKCs5NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5QIiBkYXRhLWNvZGU9Iis5NzciPk5lcGFsICgrOTc3KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTU0iIGRhdGEtY29kZT0iKzk1Ij5NeWFubWFyICgrOTUpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLSCIgZGF0YS1jb2RlPSIrODU1Ij5DYW1ib2RpYSAoKzg1NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxBIiBkYXRhLWNvZGU9Iis4NTYiPkxhb3MgKCs4NTYpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCTiIgZGF0YS1jb2RlPSIrNjczIj5CcnVuZWkgKCs2NzMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNTiIgZGF0YS1jb2RlPSIrOTc2Ij5Nb25nb2xpYSAoKzk3Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRXIiBkYXRhLWNvZGU9Iis4ODYiPlRhaXdhbiAoKzg4Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1PIiBkYXRhLWNvZGU9Iis4NTMiPk1hY2F1ICgrODUzKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS1IiIGRhdGEtY29kZT0iKzgyIj5Tb3V0aCBLb3JlYSAoKzgyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY291bnRyeUNvZGVEaXNwbGF5IiBjbGFzcz0iYWJzb2x1dGUgbGVmdC00IHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNDAwIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwIiBzdHlsZT0iZGlzcGxheTpub25lOyI+KzE8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZWwiIGlkPSJyZWdQaG9uZSIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iU2VsZWN0IGNvdW50cnkgZmlyc3QiIHJlcXVpcmVkIGRpc2FibGVkIGlucHV0bW9kZT0ibnVtZXJpYyI+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIC1tdC0zIiBpZD0icGhvbmVIaW50Ij5TZWxlY3QgeW91ciBjb3VudHJ5IHRvIGVuYWJsZSBwaG9uZSBlbnRyeTwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBpZD0icmVnRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCIgcGxhY2Vob2xkZXI9IkVtYWlsIGFkZHJlc3MiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0iZW1haWwiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC13cmFwcGVyIj48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJyZWdQYXNzd29yZCIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQgKG1pbiA4IGNoYXJzKSIgcmVxdWlyZWQgbWlubGVuZ3RoPSI4IiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCIgb25pbnB1dD0iY2hlY2tQYXNzd29yZFN0cmVuZ3RoKHRoaXMudmFsdWUpIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ3JlZ1Bhc3N3b3JkJywgdGhpcykiPjxpIGNsYXNzPSJmYXMgZmEtZXllIj48L2k+PC9idXR0b24+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBhc3N3b3JkU3RyZW5ndGhDb250YWluZXIiIGNsYXNzPSJzcGFjZS15LTIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5QYXNzd29yZCBzdHJlbmd0aDo8L3NwYW4+PHNwYW4gaWQ9InBhc3N3b3JkU3RyZW5ndGhUZXh0IiBjbGFzcz0idGV4dC14cyBmb250LW1lZGl1bSI+V2Vhazwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJoLTIgYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiI+PGRpdiBpZD0icGFzc3dvcmRTdHJlbmd0aEJhciIgY2xhc3M9ImgtZnVsbCByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIiBzdHlsZT0id2lkdGg6IDAlOyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBmbGV4LXdyYXAgZ2FwLTIgdGV4dC14cyI+PHNwYW4gaWQ9InJlcS1sZW5ndGgiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IDgrIGNoYXJzPC9zcGFuPjxzcGFuIGlkPSJyZXEtdXBwZXIiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IFVwcGVyY2FzZTwvc3Bhbj48c3BhbiBpZD0icmVxLWxvd2VyIiBjbGFzcz0idGV4dC1ncmF5LTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+PGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUgdGV4dC1bNnB4XSI+PC9pPiBMb3dlcmNhc2U8L3NwYW4+PHNwYW4gaWQ9InJlcS1udW1iZXIiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IE51bWJlcjwvc3Bhbj48c3BhbiBpZD0icmVxLXNwZWNpYWwiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IFNwZWNpYWwgY2hhcjwvc3Bhbj48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtd3JhcHBlciI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0icmVnQ29uZmlybVBhc3N3b3JkIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJDb25maXJtIHBhc3N3b3JkIiByZXF1aXJlZCBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJwYXNzd29yZC10b2dnbGUiIG9uY2xpY2s9InRvZ2dsZVBhc3N3b3JkKCdyZWdDb25maXJtUGFzc3dvcmQnLCB0aGlzKSI+PGkgY2xhc3M9ImZhcyBmYS1leWUiPjwvaT48L2J1dHRvbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVnUmVmZXJyYWxDb2RlIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJSZWZlcnJhbCBjb2RlIChvcHRpb25hbCkiIG1heGxlbmd0aD0iNTAiIHN0eWxlPSJ0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ij48ZGl2IGNsYXNzPSJhYnNvbHV0ZSByaWdodC0zIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNTAwIj48aSBjbGFzcz0iZmFzIGZhLWdpZnQgdGV4dC1zbSI+PC9pPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLXN0YXJ0IHNwYWNlLXgtMyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icmVnVGVybXMiIGNsYXNzPSJtdC0xIHctNSBoLTUgcm91bmRlZCBiZy1ncmF5LTgwMCBib3JkZXItZ3JheS02MDAiIHJlcXVpcmVkPjxsYWJlbCBmb3I9InJlZ1Rlcm1zIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj5JIGFncmVlIHRvIHRoZSBUZXJtcyBvZiBTZXJ2aWNlIGFuZCBQcml2YWN5IFBvbGljeTwvbGFiZWw+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0icmVnaXN0ZXJCdG4iIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktNCI+R2V0IFN0YXJ0ZWQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InB4LTYgcGItNCBwdC0zIGJvcmRlci10IGJvcmRlci1ncmF5LTgwMC81MCBtdC00Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi0yIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIGZvbnQtbWVkaXVtIHRyYWNraW5nLXdpZGUiPkxlZ2FsIHBvbGljeSBjZW50ZXI8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTMgbWItMiBmbGV4LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPlByaXZhY3kgcG9saWN5PC9hPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPlRlcm1zIG9mIHVzZTwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5BY2Nlc3NpYmlsaXR5PC9hPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPllvdXIgcHJpdmFjeSBjaG9pY2VzPC9hPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtZ3JheS02MDAiPjIwMjYgUGxhdGludW1FeCBJbnRlbGxlY3R1YWwgUHJvcGVydHkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgaWQ9Im1haW5BcHAiIGNsYXNzPSJtYWluLWFwcCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4NCiAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9InN0aWNreSB0b3AtMCB6LTUwIGdsYXNzIHB4LTQgcHktMyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS13aGl0ZSB0by1ncmF5LTMwMCByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLWN1YmUgdGV4dC1ibGFjayI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJmb250LWJvbGQgdGV4dC1sZyI+UGxhdGludW08c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+RXg8L3NwYW4+PC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiByZWxhdGl2ZSIgb25jbGljaz0ib3BlbkxpdmVTdXBwb3J0KCkiPjxpIGNsYXNzPSJmYXMgZmEtYmVsbCI+PC9pPjxzcGFuIGlkPSJoZWFkZXJDaGF0QmFkZ2UiIGNsYXNzPSJoaWRkZW4gYWJzb2x1dGUgLXRvcC0xIC1yaWdodC0xIHctNSBoLTUgYmctcm9zZS01MDAgcm91bmRlZC1mdWxsIHRleHQteHMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSBmb250LWJvbGQiPjA8L3NwYW4+PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiIG9uY2xpY2s9InRvZ2dsZVByb2ZpbGVNZW51KCkiIGlkPSJwcm9maWxlQnRuIj48ZGl2IGNsYXNzPSJ3LTggaC04IGJnLWdyYWRpZW50LXRvLWJyIGZyb20td2hpdGUgdG8tZ3JheS0zMDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIiBpZD0icHJvZmlsZUF2YXRhciI+PHNwYW4gY2xhc3M9InRleHQtYmxhY2sgZm9udC1ib2xkIHRleHQtc20iIGlkPSJwcm9maWxlSW5pdGlhbCI+VTwvc3Bhbj48L2Rpdj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InByb2ZpbGVNZW51IiBjbGFzcz0iaGlkZGVuIGFic29sdXRlIHJpZ2h0LTAgdG9wLWZ1bGwgbXQtMiB3LVsyNjBweF0gZ2xhc3Mgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1ncmF5LTcwMCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LTJ4bCB6LTUwIiBzdHlsZT0ibWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyMHB4KTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUHJvZmlsZSBIZWFkZXIgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1ncmF5LTkwMCB0by1ncmF5LTgwMCBib3JkZXItYiBib3JkZXItZ3JheS03MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy1ncmFkaWVudC10by1iciBmcm9tLXdoaXRlIHRvLWdyYXktMzAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByaW5nLTIgcmluZy1hbWJlci01MDAvMzAgZmxleC1zaHJpbmstMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtYmxhY2sgZm9udC1ib2xkIHRleHQtbGciIGlkPSJtZW51UHJvZmlsZUluaXRpYWwiPlU8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1pbi13LTAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSB0cnVuY2F0ZSIgaWQ9Im1lbnVQcm9maWxlTmFtZSI+VXNlcjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIHRydW5jYXRlIiBpZD0ibWVudVByb2ZpbGVFbWFpbCI+dXNlckBleGFtcGxlLmNvbTwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBtdC0wLjUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idy0xLjUgaC0xLjUgYmctZW1lcmFsZC01MDAgcm91bmRlZC1mdWxsIj48L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWVtZXJhbGQtNDAwIiBpZD0icHJvZmlsZVJvbGVMYWJlbCI+QWN0aXZlIFRyYWRlcjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFF1aWNrIFN0YXRzIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlLzUgcm91bmRlZC1sZyBwLTIgYm9yZGVyIGJvcmRlci13aGl0ZS8xMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtWzEwcHhdIHRleHQtZ3JheS00MDAiPlRvdGFsIEJhbGFuY2U8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJwcm9maWxlVG90YWxCYWxhbmNlIj4kMC4wMDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctd2hpdGUvNSByb3VuZGVkLWxnIHAtMiBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1bMTBweF0gdGV4dC1ncmF5LTQwMCI+SW52ZXN0IFByb2ZpdDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiIGlkPSJwcm9maWxlSW52ZXN0UHJvZml0Ij4kMC4wMDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE1lbnUgSXRlbXMgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHktMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ3dhbGxldHMnKTsgdG9nZ2xlUHJvZmlsZU1lbnUoKTsiIGNsYXNzPSJ3LWZ1bGwgcHgtMyBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctZW1lcmFsZC01MDAvMjAgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLXdhbGxldCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQteHMiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC14cyI+TXkgV2FsbGV0czwvc3Bhbj48cCBjbGFzcz0idGV4dC1bMTBweF0gdGV4dC1ncmF5LTUwMCBsZWFkaW5nLXRpZ2h0Ij5WaWV3IGJhbGFuY2VzICYgZGVwb3NpdDwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2Rhc2hib2FyZCcpOyB0b2dnbGVQcm9maWxlTWVudSgpOyIgY2xhc3M9InctZnVsbCBweC0zIHB5LTIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6Ymctd2hpdGUvNSB0cmFuc2l0aW9uLWNvbG9ycyB0ZXh0LWxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy03IGgtNyBiZy1ibHVlLTUwMC8yMCByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtbGluZSB0ZXh0LWJsdWUtNDAwIHRleHQteHMiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC14cyI+UG9ydGZvbGlvPC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctdGlnaHQiPlBlcmZvcm1hbmNlICYgYW5hbHl0aWNzPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignaW52ZXN0Jyk7IHRvZ2dsZVByb2ZpbGVNZW51KCk7IiBjbGFzcz0idy1mdWxsIHB4LTMgcHktMiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIHRleHQtbGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTcgaC03IGJnLWFtYmVyLTUwMC8yMCByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtcGlnZ3ktYmFuayB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQteHMiPkludmVzdG1lbnRzPC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctdGlnaHQiPlBsYW5zICYgcHJvZml0IHRyYWNraW5nPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuTGl2ZVN1cHBvcnQoKTsgdG9nZ2xlUHJvZmlsZU1lbnUoKTsiIGNsYXNzPSJ3LWZ1bGwgcHgtMyBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctcHVycGxlLTUwMC8yMCByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXB1cnBsZS00MDAgdGV4dC14cyI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhzIj5TdXBwb3J0PC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctdGlnaHQiPjI0LzcgbGl2ZSBjaGF0PC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3JkZXItdCBib3JkZXItZ3JheS03MDAgcHktMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ib3BlbkNoYW5nZVBhc3N3b3JkTW9kYWwoKTsgdG9nZ2xlUHJvZmlsZU1lbnUoKTsiIGNsYXNzPSJ3LWZ1bGwgcHgtMyBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctZ3JheS02MDAvMzAgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLWxvY2sgdGV4dC1ncmF5LTQwMCB0ZXh0LXhzIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhzIj5DaGFuZ2UgUGFzc3dvcmQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvZ291dCgpOyB0b2dnbGVQcm9maWxlTWVudSgpOyIgY2xhc3M9InctZnVsbCBweC0zIHB5LTIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6Ymctcm9zZS02MDAvMjAgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctcm9zZS01MDAvMjAgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLXNpZ24tb3V0LWFsdCB0ZXh0LXJvc2UtNDAwIHRleHQteHMiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGZvbnQtbWVkaXVtIHRleHQteHMiPlNpZ24gT3V0PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9oZWFkZXI+DQoNCiAgICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZFNlY3Rpb24iIGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQgYWN0aXZlIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20td2hpdGUvMTAgdG8tZ3JheS0yMDAvMTAgYm9yZGVyLXdoaXRlLzIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtYi0xIj5Ub3RhbCBCYWxhbmNlPC9wPjxoMiBjbGFzcz0idGV4dC0zeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJ0b3RhbEJhbGFuY2UiPiQwLjAwPC9oMj48cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIG10LTEgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiPjxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctdXAiPjwvaT4gPHNwYW4gaWQ9ImJhbGFuY2VDaGFuZ2UiPiswLjAwJSAoJDAuMDApPC9zcGFuPiA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+MjRoPC9zcGFuPjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTQgaC0xNCBiZy13aGl0ZS8xMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IHRleHQtMnhsIHRleHQtd2hpdGUiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtNCBnYXAtMyBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignd2FsbGV0cycpIiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTIgcC00IGdsYXNzIHJvdW5kZWQteGwgaG92ZXI6Ymctd2hpdGUvNSB0cmFuc2l0aW9uLWNvbG9ycyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWVtZXJhbGQtNjAwLzIwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1wbHVzIHRleHQtZW1lcmFsZC00MDAiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EZXBvc2l0PC9zcGFuPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCd3YWxsZXRzJykiIGNsYXNzPSJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMiBwLTQgZ2xhc3Mgcm91bmRlZC14bCBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctcm9zZS02MDAvMjAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLW1pbnVzIHRleHQtcm9zZS00MDAiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5XaXRoZHJhdzwvc3Bhbj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbigndHJhZGUnKSIgY2xhc3M9ImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0yIHAtNCBnbGFzcyByb3VuZGVkLXhsIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMiPjxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy13aGl0ZS8yMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtZXhjaGFuZ2UtYWx0IHRleHQtd2hpdGUiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5UcmFkZTwvc3Bhbj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbigndHJhZGUnKTsgc2V0VGltZW91dCgoKSA9PiBzZXRUcmFkZU1haW5UYWIoJ2Z1dHVyZXMnKSwgMTAwKTsiIGNsYXNzPSJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMiBwLTQgZ2xhc3Mgcm91bmRlZC14bCBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctYmx1ZS02MDAvMjAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLWNoYXJ0LWJhciB0ZXh0LWJsdWUtNDAwIj48L2k+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RnV0dXJlczwvc3Bhbj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj48aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiPlBvcnRmb2xpbyBQZXJmb3JtYW5jZTwvaDM+PGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGJ1dHRvbiBjbGFzcz0idGltZS1idG4gdGV4dC14cyBweS0xIHB4LTMiIG9uY2xpY2s9InNldERhc2hib2FyZFRpbWVSYW5nZSgnMUQnLCB0aGlzKSI+MUQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biBhY3RpdmUgdGV4dC14cyBweS0xIHB4LTMiIG9uY2xpY2s9InNldERhc2hib2FyZFRpbWVSYW5nZSgnMVcnLCB0aGlzKSI+MVc8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biB0ZXh0LXhzIHB5LTEgcHgtMyIgb25jbGljaz0ic2V0RGFzaGJvYXJkVGltZVJhbmdlKCcxTScsIHRoaXMpIj4xTTwvYnV0dG9uPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJoZWlnaHQ6IDE4MHB4OyI+PGNhbnZhcyBpZD0icG9ydGZvbGlvQ2hhcnQiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjE4MCI+PC9jYW52YXM+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTIiPjxkaXYgY2xhc3M9InctOCBoLTggYmctZW1lcmFsZC02MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1hcnJvdy10cmVuZC11cCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj4yNGggUHJvZml0PC9zcGFuPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LWVtZXJhbGQtNDAwIiBpZD0icHJvZml0MjRoIj4rJDAuMDA8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00Ij48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yIj48ZGl2IGNsYXNzPSJ3LTggaC04IGJnLWJsdWUtNjAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtcGllIHRleHQtYmx1ZS00MDAgdGV4dC1zbSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20iPkFzc2V0czwvc3Bhbj48L2Rpdj48cCBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSIgaWQ9ImFzc2V0Q291bnQiPjA8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGNvbC1zcGFuLTIiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTIiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYW1iZXItNjAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtY29pbnMgdGV4dC1hbWJlci00MDAgdGV4dC1zbSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20iPkludmVzdG1lbnQgUHJvZml0PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiI+PHAgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtYW1iZXItNDAwIiBpZD0iaW52ZXN0bWVudFByb2ZpdEJhbGFuY2UiPiQwLjAwPC9wPjxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2ludmVzdCcpIiBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTQwMCBob3Zlcjp0ZXh0LWFtYmVyLTMwMCI+VmlldzwvYnV0dG9uPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj48aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiPlRyZW5kaW5nPC9oMz48YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCdtYXJrZXQnKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj5WaWV3IEFsbCA8aSBjbGFzcz0iZmFzIGZhLWNoZXZyb24tcmlnaHQgdGV4dC14cyI+PC9pPjwvYnV0dG9uPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlbiBtYi00IiBpZD0iZGFzaGJvYXJkQ3J5cHRvTGlzdCI+PC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuTGl2ZVN1cHBvcnQoKSIgY2xhc3M9InctZnVsbCBnbGFzcyByb3VuZGVkLXhsIHAtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaG92ZXI6Ymctd2hpdGUvNSB0cmFuc2l0aW9uLWNvbG9ycyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy1lbWVyYWxkLTYwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1sZWZ0Ij48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj5MaXZlIFN1cHBvcnQ8L3A+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+MjQvNyBDdXN0b21lciBTZXJ2aWNlPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48c3BhbiBjbGFzcz0idy0yIGgtMiBiZy1lbWVyYWxkLTUwMCByb3VuZGVkLWZ1bGwgYW5pbWF0ZS1wdWxzZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZW1lcmFsZC00MDAiPk9ubGluZTwvc3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNoZXZyb24tcmlnaHQgdGV4dC1ncmF5LTQwMCI+PC9pPjwvZGl2PjwvYnV0dG9uPg0KDQogICAgICAgICAgICAgICAgPCEtLSBQbGF0Zm9ybSBTZWN1cml0eSAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj5TZWN1cml0eSBGZWF0dXJlczwvaDM+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZW1lcmFsZC01MDAvMTAgYm9yZGVyIGJvcmRlci1lbWVyYWxkLTUwMC8yMCI+PGkgY2xhc3M9ImZhcyBmYS1zaGllbGQtaGFsdmVkIHRleHQtZW1lcmFsZC00MDAiPjwvaT48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPjJGQSBBdXRoPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkVuYWJsZWQ8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIj48aSBjbGFzcz0iZmFzIGZhLWxvY2sgdGV4dC1ibHVlLTQwMCI+PC9pPjxkaXY+PHAgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSI+Q29sZCBTdG9yYWdlPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPjk1JSBBc3NldHM8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1hbWJlci01MDAvMTAgYm9yZGVyIGJvcmRlci1hbWJlci01MDAvMjAiPjxpIGNsYXNzPSJmYXMgZmEtYmVsbCB0ZXh0LWFtYmVyLTQwMCI+PC9pPjxkaXY+PHAgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSI+UmVhbC10aW1lIEFsZXJ0czwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5BY3RpdmU8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1wdXJwbGUtNTAwLzEwIGJvcmRlciBib3JkZXItcHVycGxlLTUwMC8yMCI+PGkgY2xhc3M9ImZhcyBmYS1maWxlLXNoaWVsZCB0ZXh0LXB1cnBsZS00MDAiPjwvaT48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPkluc3VyYW5jZSBGdW5kPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPiQ1MDBNKzwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIEludmVzdG1lbnQgUGxhbnMgSGlnaGxpZ2h0IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+SW52ZXN0bWVudCBQbGFuczwvaDM+PGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignaW52ZXN0JykiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+VmlldyBBbGwgPGkgY2xhc3M9ImZhcyBmYS1jaGV2cm9uLXJpZ2h0IHRleHQteHMiPjwvaT48L2J1dHRvbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0zIiBpZD0iZGFzaGJvYXJkSW52ZXN0UGxhbnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyByb3VuZGVkLXhsIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1lbWVyYWxkLTUwMC8yMCB0by10cmFuc3BhcmVudCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWVtZXJhbGQtNjAwLzMwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1zZWVkbGluZyB0ZXh0LWVtZXJhbGQtNDAwIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPlN0YXJ0ZXIgUGxhbjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EYWlseSBST0kgMS4yJTwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij48cCBjbGFzcz0idGV4dC1zbSBmb250LWJvbGQgdGV4dC1lbWVyYWxkLTQwMCI+MzYlIEFQUjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4zMCBEYXlzPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC0zIHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tciBmcm9tLWJsdWUtNTAwLzIwIHRvLXRyYW5zcGFyZW50IGJvcmRlciBib3JkZXItYmx1ZS01MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctYmx1ZS02MDAvMzAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLXJvY2tldCB0ZXh0LWJsdWUtNDAwIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPkdyb3d0aCBQbGFuPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkRhaWx5IFJPSSAxLjglPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LWJsdWUtNDAwIj41NCUgQVBSPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPjkwIERheXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgcm91bmRlZC14bCBiZy1ncmFkaWVudC10by1yIGZyb20tYW1iZXItNTAwLzIwIHRvLXRyYW5zcGFyZW50IGJvcmRlciBib3JkZXItYW1iZXItNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWFtYmVyLTYwMC8zMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtY3Jvd24gdGV4dC1hbWJlci00MDAiPjwvaT48L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+UGxhdGludW0gUGxhbjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EYWlseSBST0kgMi41JTwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij48cCBjbGFzcz0idGV4dC1zbSBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiPjc1JSBBUFI8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+MTgwIERheXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFBsYXRmb3JtIFN0YXRzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPlBsYXRmb3JtIFN0YXRpc3RpY3M8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPiQyLjRCKzwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5UcmFkaW5nIFZvbHVtZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPjE4MEsrPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkFjdGl2ZSBUcmFkZXJzPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxwIGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+OTkuOSU8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VXB0aW1lPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxwIGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+JDUwTSs8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+UGFpZCBPdXQ8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBTY3JvbGxpbmcgTmV3cyBUaWNrZXIgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC0zIG1iLTQgb3ZlcmZsb3ctaGlkZGVuIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1ib2xkIHRleHQtZW1lcmFsZC00MDAgZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+PHNwYW4gY2xhc3M9InctMS41IGgtMS41IGJnLWVtZXJhbGQtNDAwIHJvdW5kZWQtZnVsbCBhbmltYXRlLXB1bHNlIj48L3NwYW4+TElWRTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93LWhpZGRlbiBmbGV4LTEgcmVsYXRpdmUgaC01Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJuZXdzVGlja2VyIiBjbGFzcz0iYWJzb2x1dGUgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1zbSB0ZXh0LWdyYXktMzAwIGZsZXggZ2FwLTgiIHN0eWxlPSJhbmltYXRpb246IHRpY2tlclNjcm9sbCAzMHMgbGluZWFyIGluZmluaXRlOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkJpdGNvaW4gRVRGIGluZmxvd3MgaGl0ICQyLjFCIHRoaXMgd2Vlazwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj48c3Bhbj5FdGhlcmV1bSBzdGFraW5nIEFQUiByZWFjaGVzIDQuMiU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZ3JheS02MDAiPnw8L3NwYW4+PHNwYW4+U29sYW5hIERlRmkgVFZMIGNyb3NzZXMgJDhCPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIj58PC9zcGFuPjxzcGFuPlNFQyBhcHByb3ZlcyBzcG90IEV0aGVyZXVtIEVURnM8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZ3JheS02MDAiPnw8L3NwYW4+PHNwYW4+UmlwcGxlIGV4cGFuZHMgdG8gQXNpYW4gbWFya2V0czwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj48c3Bhbj5CTkIgQ2hhaW4gbGF1bmNoZXMgbmV3IEwyIHNvbHV0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIj58PC9zcGFuPjxzcGFuPkNhcmRhbm8gaHlkcmEgdXBncmFkZSBnb2VzIGxpdmU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZ3JheS02MDAiPnw8L3NwYW4+PHNwYW4+TWljcm9TdHJhdGVneSBidXlzIDEyLDAwMCBtb3JlIEJUQzwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gTGF0ZXN0IE1hcmtldCBOZXdzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+TWFya2V0IEluc2lnaHRzPC9oMz48YnV0dG9uIG9uY2xpY2s9ImZldGNoQ3J5cHRvTmV3cygpIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPjxpIGNsYXNzPSJmYXMgZmEtcmVmcmVzaCBtci0xIj48L2k+UmVmcmVzaDwvYnV0dG9uPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiIGlkPSJtYXJrZXROZXdzTGlzdCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCB0ZXh0LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1zcGlubmVyIGZhLXNwaW4gdGV4dC1ncmF5LTQwMCBtci0yIj48L2k+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+TG9hZGluZyBsYXRlc3QgY3J5cHRvIG5ld3MuLi48L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBDdXN0b21lciBSZXZpZXdzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+Q3VzdG9tZXIgUmV2aWV3czwvaDM+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXNtIj48L2k+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIj40Ljk8L3NwYW4+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMiI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTQwMCB0by1wdXJwbGUtNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtd2hpdGUgdGV4dC14cyBmb250LWJvbGQiPkpNPC9kaXY+PGRpdj48cCBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIj5KYW1lcyBNaXRjaGVsbDwvcD48ZGl2IGNsYXNzPSJmbGV4IGdhcC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48L2Rpdj48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4iVGhlIGludmVzdG1lbnQgcGxhbnMgaGVyZSBhcmUgaW5jcmVkaWJsZS4gSSBoYXZlIGVhcm5lZCA0NyUgUk9JIGluIGp1c3QgMyBtb250aHMuIFRoZSBkYWlseSBhY2NydWFscyBhcmUgY29uc2lzdGVudCBhbmQgd2l0aGRyYXdhbHMgYXJlIHByb2Nlc3NlZCB3aXRoaW4gaG91cnMuIjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTIiPjxkaXYgY2xhc3M9InctOCBoLTggcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC00MDAgdG8tdGVhbC01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtYm9sZCI+U0s8L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPlNhcmFoIEtpbTwvcD48ZGl2IGNsYXNzPSJmbGV4IGdhcC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48L2Rpdj48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4iQmVzdCBjcnlwdG8gcGxhdGZvcm0gSSBoYXZlIHVzZWQuIFRoZSBpbnRlcmZhY2UgaXMgY2xlYW4sIHN1cHBvcnQgaXMgYWx3YXlzIGF2YWlsYWJsZSwgYW5kIHRoZSBzZWN1cml0eSBmZWF0dXJlcyBnaXZlIG1lIHBlYWNlIG9mIG1pbmQuIEhpZ2hseSByZWNvbW1lbmRlZCEiPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMiI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1vcmFuZ2UtNDAwIHRvLXJlZC01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtYm9sZCI+Ukw8L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPlJvYmVydCBMaXU8L3A+PGRpdiBjbGFzcz0iZmxleCBnYXAtMC41Ij48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3Rhci1oYWxmLWFsdCB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PC9kaXY+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCI+Ikkgc3RhcnRlZCB3aXRoIHRoZSBTdGFydGVyIFBsYW4gYW5kIHF1aWNrbHkgdXBncmFkZWQgdG8gUGxhdGludW0uIFRoZSByZXR1cm5zIHNwZWFrIGZvciB0aGVtc2VsdmVzLiBDdXN0b21lciBzdXBwb3J0IGhlbHBlZCBtZSBldmVyeSBzdGVwIG9mIHRoZSB3YXkuIjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUXVpY2sgQ3J5cHRvIFRpcHMgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyI+VHJhZGluZyBUaXBzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYmx1ZS01MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLWxpZ2h0YnVsYiB0ZXh0LWJsdWUtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+RGl2ZXJzaWZ5IHlvdXIgcG9ydGZvbGlvLjwvc3Bhbj4gTmV2ZXIgcHV0IGFsbCB5b3VyIGZ1bmRzIGluIGEgc2luZ2xlIGFzc2V0LiBTcHJlYWQgYWNyb3NzIEJUQywgRVRILCBhbmQgc3RhYmxlY29pbnMuPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+PGRpdiBjbGFzcz0idy04IGgtOCBiZy1lbWVyYWxkLTUwMC8yMCByb3VuZGVkLWxnIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtbGluZSB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+VXNlIGRvbGxhci1jb3N0IGF2ZXJhZ2luZy48L3NwYW4+IEludmVzdCBmaXhlZCBhbW91bnRzIHJlZ3VsYXJseSBpbnN0ZWFkIG9mIHRpbWluZyB0aGUgbWFya2V0LjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYW1iZXItNTAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS1zaGllbGQgdGV4dC1hbWJlci00MDAgdGV4dC1zbSI+PC9pPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS0zMDAiPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIj5FbmFibGUgYWxsIHNlY3VyaXR5IGZlYXR1cmVzLjwvc3Bhbj4gVXNlIDJGQSwgd2l0aGRyYXdhbCB3aGl0ZWxpc3RzLCBhbmQgZW1haWwgbm90aWZpY2F0aW9ucyB0byBwcm90ZWN0IHlvdXIgYXNzZXRzLjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRydXN0IEJhZGdlcyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIHRleHQtY2VudGVyIj5UcnVzdGVkICYgUmVndWxhdGVkPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTQgZmxleC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JheS00MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2VydGlmaWNhdGUgdGV4dC1lbWVyYWxkLTQwMCI+PC9pPjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIj5TT0MgMiBDZXJ0aWZpZWQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LWdyYXktNDAwIj48aSBjbGFzcz0iZmFzIGZhLWNlcnRpZmljYXRlIHRleHQtYmx1ZS00MDAiPjwvaT48c3BhbiBjbGFzcz0idGV4dC14cyI+SVNPIDI3MDAxPC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1ncmF5LTQwMCI+PGkgY2xhc3M9ImZhcyBmYS1jZXJ0aWZpY2F0ZSB0ZXh0LWFtYmVyLTQwMCI+PC9pPjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIj5GaW5DRU4gUmVnLjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JheS00MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2VydGlmaWNhdGUgdGV4dC1wdXJwbGUtNDAwIj48L2k+PHNwYW4gY2xhc3M9InRleHQteHMiPlNTTCBFbmNyeXB0ZWQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTMiPlBsYXRpbnVtR2xvYmFsRXhjaGFuZ2UgaXMgYSBsaWNlbnNlZCBhbmQgcmVndWxhdGVkIGNyeXB0b2N1cnJlbmN5IGV4Y2hhbmdlIHBsYXRmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJtYXJrZXRTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBtYi00Ij48ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4LTEiPjxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoIGFic29sdXRlIGxlZnQtNCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC1ncmF5LTQwMCI+PC9pPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWFya2V0U2VhcmNoIiBjbGFzcz0iaW5wdXQtZmllbGQgcGwtMTIiIHBsYWNlaG9sZGVyPSJTZWFyY2ggY3J5cHRvLi4uIiBvbmlucHV0PSJmaWx0ZXJNYXJrZXQoKSI+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgaWQ9InNlbGVjdGVkQ3J5cHRvSWNvbiIgY2xhc3M9ImNyeXB0by1pY29uIGJ0YyB0ZXh0LXhsIj48aSBjbGFzcz0iZmFiIGZhLWJpdGNvaW4iPjwvaT48L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSB0ZXh0LWxnIiBpZD0ic2VsZWN0ZWRDcnlwdG9OYW1lIj5CaXRjb2luPC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiIGlkPSJzZWxlY3RlZENyeXB0b1N5bWJvbCI+QlRDL1VTRFQ8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIiBpZD0ic2VsZWN0ZWRDcnlwdG9QcmljZSI+TG9hZGluZy4uLjwvcD48cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtIiBpZD0ic2VsZWN0ZWRDcnlwdG9DaGFuZ2UiPi0tPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtYi0zIHB4LTEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj4yNGggSGlnaDwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiIGlkPSJta3RIaWdoIj4tLTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+MjRoIExvdzwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiIGlkPSJta3RMb3ciPi0tPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj5Wb2x1bWU8L3A+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIiBpZD0ibWt0Vm9sIj4tLTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+TWt0IENhcDwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiIGlkPSJta3RDYXAiPi0tPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj48Y2FudmFzIGlkPSJtYXJrZXRDaGFydCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMjAwIj48L2NhbnZhcz48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+PGJ1dHRvbiBjbGFzcz0idGltZS1idG4iIGRhdGEtcmFuZ2U9IjEiIG9uY2xpY2s9InNldFRpbWVSYW5nZSgxKSI+MUg8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biBhY3RpdmUiIGRhdGEtcmFuZ2U9IjI0IiBvbmNsaWNrPSJzZXRUaW1lUmFuZ2UoMjQpIj4yNEg8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biIgZGF0YS1yYW5nZT0iMTY4IiBvbmNsaWNrPSJzZXRUaW1lUmFuZ2UoMTY4KSI+N0Q8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biIgZGF0YS1yYW5nZT0iNzIwIiBvbmNsaWNrPSJzZXRUaW1lUmFuZ2UoNzIwKSI+MzBEPC9idXR0b24+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPkFsbCBDcnlwdG9jdXJyZW5jaWVzPC9oMz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBvdmVyZmxvdy1oaWRkZW4iIGlkPSJtYXJrZXRDcnlwdG9MaXN0Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyBtdC00Ij5Ub3AgR2FpbmVyczwvaDM+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgb3ZlcmZsb3ctaGlkZGVuIiBpZD0idG9wR2FpbmVyc0xpc3QiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIG10LTQiPlRyYWRpbmcgUGFpcnM8L2gzPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMCIgaWQ9InRyYWRpbmdQYWlyc0xpc3QiPjwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBNYXJrZXQgRGVwdGggVmlzdWFsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IG10LTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiPk9yZGVyIEJvb2sgRGVwdGg8L2gzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+PHNwYW4gY2xhc3M9InctMS41IGgtMS41IGJnLWVtZXJhbGQtNDAwIHJvdW5kZWQtZnVsbCBhbmltYXRlLXB1bHNlIj48L3NwYW4+TGl2ZTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIGgtMzYgcm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4iIGlkPSJkZXB0aENoYXJ0Q29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoQ2hhcnQiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgYm90dG9tOjA7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtdC0zIHB4LTEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxkaXYgY2xhc3M9InctMiBoLTIgcm91bmRlZC1mdWxsIGJnLWVtZXJhbGQtNTAwIj48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5CaWRzIDxzcGFuIGNsYXNzPSJ0ZXh0LWVtZXJhbGQtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXB0aEJpZFBjdCI+NjIlPC9zcGFuPjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj5TcHJlYWQ8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIj4wLjA0JTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Bc2tzIDxzcGFuIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXB0aEFza1BjdCI+MzglPC9zcGFuPjwvc3Bhbj48ZGl2IGNsYXNzPSJ3LTIgaC0yIHJvdW5kZWQtZnVsbCBiZy1yb3NlLTUwMCI+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBUcmFkaW5nIFBhaXJzIFZvbHVtZSAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj4yNGggVm9sdW1lIExlYWRlcnM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiIGlkPSJ2b2x1bWVMZWFkZXJzTGlzdCI+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRlY2huaWNhbCBJbmRpY2F0b3JzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPlRlY2huaWNhbCBJbmRpY2F0b3JzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1lbWVyYWxkLTUwMC8xMCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzIwIHRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTEiPlJTSSAoMTQpPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWVtZXJhbGQtNDAwIj41OC40PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAvNzAiPk5ldXRyYWw8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtMyByb3VuZGVkLXhsIGJnLWVtZXJhbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZW1lcmFsZC01MDAvMjAgdGV4dC1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+TUFDRDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1lbWVyYWxkLTQwMCI+QnVsbGlzaDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWVtZXJhbGQtNDAwLzcwIj5CdXkgU2lnbmFsPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1hbWJlci01MDAvMTAgYm9yZGVyIGJvcmRlci1hbWJlci01MDAvMjAgdGV4dC1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+TW92aW5nIEF2ZzwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiPkFib3ZlPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtYW1iZXItNDAwLzcwIj4yMDAgRU1BPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1yb3NlLTUwMC8xMCBib3JkZXIgYm9yZGVyLXJvc2UtNTAwLzIwIHRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTEiPlN1cHBvcnQ8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtcm9zZS00MDAiPiQ3OC4ySzwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LXJvc2UtNDAwLzcwIj5LZXkgTGV2ZWw8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRyYWRpbmcgVGlwcyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj5Qcm8gVHJhZGluZyBUaXBzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYmx1ZS01MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLWNoYXJ0LWJhciB0ZXh0LWJsdWUtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+V2F0Y2ggdm9sdW1lIGJlZm9yZSBwcmljZS48L3NwYW4+IEhpZ2ggdm9sdW1lIGNvbmZpcm1zIGEgdHJlbmQuIExvdyB2b2x1bWUgYnJlYWtvdXRzIG9mdGVuIGZhaWwuPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+PGRpdiBjbGFzcz0idy04IGgtOCBiZy1lbWVyYWxkLTUwMC8yMCByb3VuZGVkLWxnIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtc2hpZWxkLWFsdCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+QWx3YXlzIHVzZSBzdG9wLWxvc3Nlcy48L3NwYW4+IE5ldmVyIHJpc2sgbW9yZSB0aGFuIDIlIG9mIHlvdXIgcG9ydGZvbGlvIG9uIGEgc2luZ2xlIHRyYWRlLjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYW1iZXItNTAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCI+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1tZWRpdW0iPlBhdGllbmNlIHBheXMuPC9zcGFuPiBUaGUgYmVzdCB0cmFkZXMgYXJlIHRoZSBvbmVzIHlvdSB3YWl0IGZvci4gRG8gbm90IGNoYXNlIGV2ZXJ5IHByaWNlIG1vdmVtZW50LjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIEFkdmFuY2VkIFRvb2xzIFByb21vIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC02MDAvMjAgdG8tYmx1ZS02MDAvMjAgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgbWItMyI+PGRpdiBjbGFzcz0idy0xMiBoLTEyIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC01MDAgdG8tYmx1ZS01MDAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1jaGFydC1saW5lIHRleHQtd2hpdGUgdGV4dC14bCI+PC9pPjwvZGl2PjxkaXY+PGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5BZHZhbmNlZCBDaGFydGluZzwvaDM+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTMwMCI+UHJvZmVzc2lvbmFsIHRvb2xzIGZvciBzZXJpb3VzIHRyYWRlcnM8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTIgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC80MCI+PGkgY2xhc3M9ImZhcyBmYS13YXZlLXNxdWFyZSB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20gbWItMSI+PC9pPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS0zMDAiPlJTSS9NQUNEPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0yIHJvdW5kZWQtbGcgYmctZ3JheS04MDAvNDAiPjxpIGNsYXNzPSJmYXMgZmEtbGF5ZXItZ3JvdXAgdGV4dC1ibHVlLTQwMCB0ZXh0LXNtIG1iLTEiPjwvaT48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktMzAwIj5GaWJvbmFjY2k8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC80MCI+PGkgY2xhc3M9ImZhcyBmYS1ib2x0IHRleHQtYW1iZXItNDAwIHRleHQtc20gbWItMSI+PC9pPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS0zMDAiPlJlYWwtVGltZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2ludmVzdCcpIiBjbGFzcz0idy1mdWxsIHB5LTMgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwIHRvLWJsdWUtNjAwIGhvdmVyOmZyb20tZW1lcmFsZC01MDAgaG92ZXI6dG8tYmx1ZS01MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwgdHJhbnNpdGlvbi1hbGwiPlN0YXJ0IEludmVzdGluZyBOb3c8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gTWFya2V0IFRydXN0IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMgdGV4dC1jZW50ZXIiPldoeSBUcmFkZXJzIENob29zZSBVczwvaDM+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxpIGNsYXNzPSJmYXMgZmEtYm9sdCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtbGcgbWItMSI+PC9pPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+MC4xcyBFeGVjdXRpb248L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VWx0cmEtZmFzdCB0cmFkZXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+PGkgY2xhc3M9ImZhcyBmYS1wZXJjZW50IHRleHQtYmx1ZS00MDAgdGV4dC1sZyBtYi0xIj48L2k+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4wLjA4JSBGZWVzPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkluZHVzdHJ5IGxvd2VzdDwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48aSBjbGFzcz0iZmFzIGZhLWxvY2sgdGV4dC1hbWJlci00MDAgdGV4dC1sZyBtYi0xIj48L2k+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4kNTAwTSBJbnN1cmFuY2U8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RnVuZCBwcm90ZWN0aW9uPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXB1cnBsZS00MDAgdGV4dC1sZyBtYi0xIj48L2k+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4yNC83IFN1cHBvcnQ8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+QWx3YXlzIGF2YWlsYWJsZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0idHJhZGVTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8IS0tIFBhaXIgSGVhZGVyIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3J5cHRvLWljb24gYnRjIHRleHQteGwiIGlkPSJ0cmFkZVBhaXJJY29uIj48aSBjbGFzcz0iZmFiIGZhLWJpdGNvaW4iPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LXdoaXRlIiBpZD0idHJhZGVQYWlyTmFtZSI+QlRDL1VTRFQ8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCIgaWQ9InRyYWRlUGFpclN1YiI+Qml0Y29pbjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSIgaWQ9InRyYWRlQnRjUHJpY2UiPkxvYWRpbmcuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXhzIiBpZD0idHJhZGVCdGNDaGFuZ2UiPi0tPC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gTWFpbiBUYWJzOiBDb252ZXJ0IHwgU3BvdCB8IEZ1dHVyZXMgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMSBtYi00IGJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC0xIj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzZXRUcmFkZU1haW5UYWIoJ2NvbnZlcnQnKSIgY2xhc3M9InRyYWRlLW1haW4tdGFiIGFjdGl2ZSBmbGV4LTEgcHktMiByb3VuZGVkLWxnIHRleHQtc20gZm9udC1zZW1pYm9sZCB0cmFuc2l0aW9uLWFsbCIgaWQ9InRyYWRlVGFiQ29udmVydCI+Q29udmVydDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNldFRyYWRlTWFpblRhYignc3BvdCcpIiBjbGFzcz0idHJhZGUtbWFpbi10YWIgZmxleC0xIHB5LTIgcm91bmRlZC1sZyB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdHJhbnNpdGlvbi1hbGwiIGlkPSJ0cmFkZVRhYlNwb3QiPlNwb3Q8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzZXRUcmFkZU1haW5UYWIoJ2Z1dHVyZXMnKSIgY2xhc3M9InRyYWRlLW1haW4tdGFiIGZsZXgtMSBweS0yIHJvdW5kZWQtbGcgdGV4dC1zbSBmb250LXNlbWlib2xkIHRyYW5zaXRpb24tYWxsIiBpZD0idHJhZGVUYWJGdXR1cmVzIj5GdXR1cmVzPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIENPTlZFUlQgUEFORUwgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBpZD0iY29udmVydFBhbmVsIiBjbGFzcz0idHJhZGUtcGFuZWwgYWN0aXZlIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRnJvbSAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC00IGJvcmRlciBib3JkZXItZ3JheS03MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGZvbnQtbWVkaXVtIj5Gcm9tPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIiBpZD0iY29udmVydEZyb21BdmFpbGFibGUiPkF2YWlsYWJsZTogMC4wMDAwIFVTRFQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJjb252ZXJ0RnJvbUN1cnJlbmN5IiBjbGFzcz0iYmctZ3JheS03MDAgYm9yZGVyLW5vbmUgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQiIG9uY2hhbmdlPSJ1cGRhdGVDb252ZXJ0UHJldmlldygpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZHQiPlVTRFQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJ0YyI+QlRDPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJldGgiPkVUSDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYm5iIj5CTkI8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZGMiPlVTREM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJjb252ZXJ0RnJvbUFtb3VudCIgY2xhc3M9ImJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIHRleHQtd2hpdGUgdGV4dC14bCBmb250LWJvbGQgdGV4dC1yaWdodCBmbGV4LTEgZm9jdXM6b3V0bGluZS1ub25lIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgb25pbnB1dD0idXBkYXRlQ29udmVydFByZXZpZXcoKSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dhcCBCdXR0b24gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktY2VudGVyIC1teS0yIHJlbGF0aXZlIHotMTAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic3dhcENvbnZlcnRDdXJyZW5jaWVzKCkiIGNsYXNzPSJ3LTEwIGgtMTAgYmctZ3JheS03MDAgaG92ZXI6YmctZ3JheS02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci0yIGJvcmRlci1ibGFjayB0cmFuc2l0aW9uLWFsbCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctdXAtZG93biB0ZXh0LXdoaXRlIHRleHQteHMiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUbyAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC00IGJvcmRlciBib3JkZXItZ3JheS03MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGZvbnQtbWVkaXVtIj5Ubzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCIgaWQ9ImNvbnZlcnRUb0F2YWlsYWJsZSI+QXZhaWxhYmxlOiAwLjAwMDAgQlRDPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iY29udmVydFRvQ3VycmVuY3kiIGNsYXNzPSJiZy1ncmF5LTcwMCBib3JkZXItbm9uZSByb3VuZGVkLWxnIHB4LTMgcHktMiB0ZXh0LXdoaXRlIHRleHQtc20gZm9udC1zZW1pYm9sZCIgb25jaGFuZ2U9InVwZGF0ZUNvbnZlcnRQcmV2aWV3KCkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnRjIj5CVEM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZHQiPlVTRFQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImV0aCI+RVRIPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idXNkYyI+VVNEQzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29udmVydFRvQW1vdW50IiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXJpZ2h0IGZsZXgtMSI+LS08L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSYXRlICYgQ29udmVydCBCdXR0b24gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMC8zMCByb3VuZGVkLXhsIHAtMyBtdC0yIGJvcmRlciBib3JkZXItZ3JheS03MDAvMjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCIgaWQ9ImNvbnZlcnRSYXRlIj4xIFVTRFQg4omIIC0tIEJUQzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayBtci0xIj48L2k+My0xMCBtaW48L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJleGVjdXRlQ29udmVydCgpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTMiIGlkPSJjb252ZXJ0QnRuIj48aSBjbGFzcz0iZmFzIGZhLWV4Y2hhbmdlLWFsdCBtci0yIj48L2k+Q29udmVydCBOb3c8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnZlcnNpb24gSGlzdG9yeSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXQtNiIgaWQ9ImNvbnZlcnNpb25IaXN0b3J5U2VjdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1zbSBmb250LWJvbGQgdGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS1oaXN0b3J5IHRleHQtYmx1ZS00MDAgbXItMiI+PC9pPkNvbnZlcnNpb24gSGlzdG9yeTwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkQ29udmVyc2lvbkhpc3RvcnkoKSIgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMSI+PGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29udmVyc2lvbkhpc3RvcnlMaXN0IiBjbGFzcz0ic3BhY2UteS0yIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFNQT1QgUEFORUwgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBpZD0ic3BvdFBhbmVsIiBjbGFzcz0idHJhZGUtcGFuZWwiPg0KICAgICAgICAgICAgICAgICAgICA8IS0tIEJ1eS9TZWxsIFRvZ2dsZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0VHJhZGVTaWRlKCdidXknKSIgY2xhc3M9ImZsZXgtMSBweS0zIHJvdW5kZWQteGwgZm9udC1ib2xkIHRleHQtc20gdHJhbnNpdGlvbi1hbGwgYmctZW1lcmFsZC02MDAgdGV4dC13aGl0ZSIgaWQ9InNwb3RCdXlCdG4iPkJ1eTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzZXRUcmFkZVNpZGUoJ3NlbGwnKSIgY2xhc3M9ImZsZXgtMSBweS0zIHJvdW5kZWQteGwgZm9udC1ib2xkIHRleHQtc20gdHJhbnNpdGlvbi1hbGwgYmctcm9zZS02MDAgdGV4dC13aGl0ZSIgaWQ9InNwb3RTZWxsQnRuIj5TZWxsPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8IS0tIEF2YWlsYWJsZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5BdmFpbGFibGU8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSIgaWQ9InNwb3RBdmFpbGFibGUiPjAuMDAgVVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwhLS0gT3JkZXIgVHlwZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdE9yZGVyVHlwZSgnbGltaXQnKSIgY2xhc3M9InB4LTQgcHktMS41IHJvdW5kZWQtbGcgdGV4dC14cyBmb250LW1lZGl1bSBiZy13aGl0ZSB0ZXh0LWJsYWNrIiBpZD0ic3BvdFR5cGVMaW1pdCI+TGltaXQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdE9yZGVyVHlwZSgnbWFya2V0JykiIGNsYXNzPSJweC00IHB5LTEuNSByb3VuZGVkLWxnIHRleHQteHMgZm9udC1tZWRpdW0gYmctZ3JheS03MDAgdGV4dC1ncmF5LTQwMCIgaWQ9InNwb3RUeXBlTWFya2V0Ij5NYXJrZXQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwhLS0gUHJpY2UgLS0+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgYmxvY2sgbWItMSI+UHJpY2UgKFVTRFQpPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcHgtMyBweS0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ic3BvdFByaWNlIiBjbGFzcz0iYmctdHJhbnNwYXJlbnQgYm9yZGVyLW5vbmUgdGV4dC13aGl0ZSB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgZmxleC0xIGZvY3VzOm91dGxpbmUtbm9uZSIgcGxhY2Vob2xkZXI9IjAuMDAiIHN0ZXA9IjAuMDEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWwtMiI+VVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPCEtLSBBbW91bnQgLS0+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgYmxvY2sgbWItMSI+QW1vdW50ICg8c3BhbiBpZD0ic3BvdEFtb3VudExhYmVsIj5CVEM8L3NwYW4+KTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTgwMC81MCByb3VuZGVkLXhsIHB4LTMgcHktMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InNwb3RBbW91bnQiIGNsYXNzPSJiZy10cmFuc3BhcmVudCBib3JkZXItbm9uZSB0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1zZW1pYm9sZCBmbGV4LTEgZm9jdXM6b3V0bGluZS1ub25lIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgb25pbnB1dD0iY2FsY3VsYXRlU3BvdFRvdGFsKCkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWwtMiIgaWQ9InNwb3RBbW91bnRVbml0Ij5CVEM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwhLS0gUXVpY2sgJSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoMjUpIiBjbGFzcz0iZmxleC0xIHB5LTEuNSBiZy1ncmF5LTcwMC81MCByb3VuZGVkLWxnIHRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj4yNSU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoNTApIiBjbGFzcz0iZmxleC0xIHB5LTEuNSBiZy1ncmF5LTcwMC81MCByb3VuZGVkLWxnIHRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj41MCU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoNzUpIiBjbGFzcz0iZmxleC0xIHB5LTEuNSBiZy1ncmF5LTcwMC81MCByb3VuZGVkLWxnIHRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj43NSU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoMTAwKSIgY2xhc3M9ImZsZXgtMSBweS0xLjUgYmctZ3JheS03MDAvNTAgcm91bmRlZC1sZyB0ZXh0LXhzIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+MTAwJTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPCEtLSBUb3RhbCAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBibG9jayBtYi0xIj5Ub3RhbCAoVVNEVCk8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgYmctZ3JheS04MDAvNTAgcm91bmRlZC14bCBweC0zIHB5LTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJzcG90VG90YWwiIGNsYXNzPSJiZy10cmFuc3BhcmVudCBib3JkZXItbm9uZSB0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1zZW1pYm9sZCBmbGV4LTEgZm9jdXM6b3V0bGluZS1ub25lIiBwbGFjZWhvbGRlcj0iMC4wMCIgcmVhZG9ubHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtbC0yIj5VU0RUPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImV4ZWN1dGVTcG90VHJhZGUoKSIgY2xhc3M9InctZnVsbCBweS00IGJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNzAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHJvdW5kZWQteGwgdHJhbnNpdGlvbi1hbGwiIGlkPSJzcG90QWN0aW9uQnRuIj5CdXkgQlRDPC9idXR0b24+DQoNCiAgICAgICAgICAgICAgICAgICAgPCEtLSBPcmRlciBCb29rIC0tPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdC01IGdsYXNzIHJvdW5kZWQtMnhsIHAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5PcmRlciBCb29rPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj5CVEMvVVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMyB0ZXh0LXhzIHRleHQtZ3JheS01MDAgbWItMSBweC0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5QcmljZTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yaWdodCI+UXR5PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij5Ub3RhbDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ib3JkZXJCb29rQXNrcyIgY2xhc3M9InNwYWNlLXktMC41IG1iLTEiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHktMS41IHRleHQtY2VudGVyIGJvcmRlci15IGJvcmRlci1ncmF5LTcwMC81MCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJvcmRlckJvb2tNaWRQcmljZSI+LS08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im9yZGVyQm9va0JpZHMiIGNsYXNzPSJzcGFjZS15LTAuNSBtdC0xIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG10LTIgcHgtMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmb250LW1lZGl1bSIgaWQ9ImJpZFJhdGlvIj5CIDAlPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtcm9zZS00MDAgZm9udC1tZWRpdW0iIGlkPSJhc2tSYXRpbyI+UyAwJTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gRlVUVVJFUyBQQU5FTCAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmdXR1cmVzUGFuZWwiIGNsYXNzPSJ0cmFkZS1wYW5lbCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IGJnLWdyYWRpZW50LXRvLXIgZnJvbS1ibHVlLTYwMC8yMCB0by1wdXJwbGUtNjAwLzIwIGJvcmRlci1ibHVlLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ibHVlLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtIj5GdXR1cmVzIFRyYWRpbmc8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5CVENVU0RUIFBlcnBldHVhbDwvaDI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtdC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMiPk1hcmsgUHJpY2U8L3A+PHAgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJmdXR1cmVzQnRjUHJpY2UiPkxvYWRpbmcuLi48L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyI+MjRoIENoYW5nZTwvcD48cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCIgaWQ9ImZ1dHVyZXNCdGNDaGFuZ2UiPi0tPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1tZWRpdW0iPkxldmVyYWdlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtYm9sZCB0ZXh0LXhsIiBpZD0ibGV2ZXJhZ2VWYWx1ZSI+MTB4PC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBtaW49IjEiIG1heD0iMTI1IiB2YWx1ZT0iMTAiIGNsYXNzPSJsZXZlcmFnZS1zbGlkZXIiIGlkPSJsZXZlcmFnZVNsaWRlciIgb25pbnB1dD0idXBkYXRlTGV2ZXJhZ2UodGhpcy52YWx1ZSkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTIiPjxzcGFuPjF4PC9zcGFuPjxzcGFuPjI1eDwvc3Bhbj48c3Bhbj41MHg8L3NwYW4+PHNwYW4+NzV4PC9zcGFuPjxzcGFuPjEwMHg8L3NwYW4+PHNwYW4+MTI1eDwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTMgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9Im9wZW5Qb3NpdGlvbignbG9uZycpIiBjbGFzcz0iZmxleC0xIHB5LTQgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCI+PGkgY2xhc3M9ImZhcyBmYS1hcnJvdy10cmVuZC11cCBtci0yIj48L2k+TG9uZzwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuUG9zaXRpb24oJ3Nob3J0JykiIGNsYXNzPSJmbGV4LTEgcHktNCBiZy1yb3NlLTYwMCBob3ZlcjpiZy1yb3NlLTcwMCB0ZXh0LXdoaXRlIGZvbnQtYm9sZCByb3VuZGVkLXhsIHRyYW5zaXRpb24tYWxsIj48aSBjbGFzcz0iZmFzIGZhLWFycm93LXRyZW5kLWRvd24gbXItMiI+PC9pPlNob3J0PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+TWFyZ2luIChVU0RUKTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZnV0dXJlc01hcmdpbiIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIHBsYWNlaG9sZGVyPSIwLjAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTIgbXQtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMiI+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyI+UG9zaXRpb24gU2l6ZTwvcD48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSIgaWQ9InBvc2l0aW9uU2l6ZSI+MC4wMCBCVEM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIiPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMiPkVzdC4gTGlxdWlkYXRpb248L3A+PHAgY2xhc3M9InRleHQtcm9zZS00MDAgZm9udC1tZWRpdW0iIGlkPSJsaXF1aWRhdGlvblByaWNlIj4tLTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj5NYXJrZXQgSW5mbzwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHAtMiBiZy1ncmF5LTgwMCByb3VuZGVkLWxnIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RnVuZGluZyBSYXRlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVtZXJhbGQtNDAwIj4wLjAxJTwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBwLTIgYmctZ3JheS04MDAgcm91bmRlZC1sZyI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPk5leHQgRnVuZGluZzwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+MDI6MzQ6MTI8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gcC0yIGJnLWdyYXktODAwIHJvdW5kZWQtbGciPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5PcGVuIEludGVyZXN0PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIj4kMi40Qjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBwLTIgYmctZ3JheS04MDAgcm91bmRlZC1sZyI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPjI0aCBWb2x1bWU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUiPiQxNS4yQjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG10LTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPk9wZW4gUG9zaXRpb25zPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im9wZW5Qb3NpdGlvbnMiIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS04IHRleHQtZ3JheS01MDAiPjxwPk5vIG9wZW4gcG9zaXRpb25zPC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIG10LTEiPlN0YXJ0IHRyYWRpbmcgdG8gc2VlIHlvdXIgcG9zaXRpb25zPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJpbnZlc3RTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20tYW1iZXItNjAwLzIwIHRvLW9yYW5nZS02MDAvMjAgYm9yZGVyLWFtYmVyLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWItMSI+VG90YWwgSW52ZXN0bWVudCBQcm9maXQ8L3A+DQogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC0zeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJpbnZlc3RUb3RhbFByb2ZpdCI+JDAuMDA8L2gyPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1hbWJlci00MDAgdGV4dC1zbSBtdC0xIj5Gcm9tIGFjdGl2ZSBpbnZlc3RtZW50czwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5JbnZlc3RtZW50IFBsYW5zPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+Q2hvb3NlIGEgcGxhbiAmIGVhcm4gZGFpbHk8L3NwYW4+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBpZD0iaW52ZXN0bWVudFBsYW5zTGlzdCIgY2xhc3M9InNwYWNlLXktMyBtYi02Ij48L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5NeSBBY3RpdmUgSW52ZXN0bWVudHM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvYWRJbnZlc3RtZW50cygpIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgcC0xIj48aSBjbGFzcz0iZmFzIGZhLXJvdGF0ZS1yaWdodCI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFjdGl2ZUludmVzdG1lbnRzTGlzdCIgY2xhc3M9InNwYWNlLXktMyBtYi02Ij48L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImNvbXBsZXRlZEludmVzdG1lbnRzU2VjdGlvbiIgY2xhc3M9ImhpZGRlbiBtYi02Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj48aSBjbGFzcz0iZmFzIGZhLWNoZWNrLWNpcmNsZSB0ZXh0LWJsdWUtNDAwIG1yLTIiPjwvaT5Db21wbGV0ZWQgUGxhbnM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29tcGxldGVkSW52ZXN0bWVudHNMaXN0IiBjbGFzcz0ic3BhY2UteS0zIj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IndpdGhkcmF3bkludmVzdG1lbnRzU2VjdGlvbiIgY2xhc3M9ImhpZGRlbiI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjay1kb3VibGUgdGV4dC1ncmF5LTQwMCBtci0yIj48L2k+QWxsIFByb2ZpdCBXaXRoZHJhd248L2gzPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0id2l0aGRyYXduSW52ZXN0bWVudHNMaXN0IiBjbGFzcz0ic3BhY2UteS0zIG9wYWNpdHktNjAiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgaWQ9IndhbGxldHNTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20tZW1lcmFsZC02MDAvMjAgdG8tdGVhbC02MDAvMjAgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj48cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTEiPlRvdGFsIEJhbGFuY2U8L3A+PGgyIGNsYXNzPSJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC13aGl0ZSIgaWQ9IndhbGxldFRvdGFsQmFsYW5jZSI+JDAuMDA8L2gyPjxkaXYgY2xhc3M9ImZsZXggZ2FwLTMgbXQtNCI+PGJ1dHRvbiBvbmNsaWNrPSJzaG93RGVwb3NpdE1vZGFsKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy1lbWVyYWxkLTYwMCBob3ZlcjpiZy1lbWVyYWxkLTcwMCB0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgcm91bmRlZC14bCI+PGkgY2xhc3M9ImZhcyBmYS1wbHVzIG1yLTIiPjwvaT5EZXBvc2l0PC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJzaG93V2l0aGRyYXdNb2RhbCgpIiBjbGFzcz0iZmxleC0xIHB5LTMgYmctZ3JheS03MDAgaG92ZXI6YmctZ3JheS02MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwiPjxpIGNsYXNzPSJmYXMgZmEtbWludXMgbXItMiI+PC9pPldpdGhkcmF3PC9idXR0b24+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPllvdXIgQXNzZXRzPC9oMz48ZGl2IGlkPSJ3YWxsZXRMaXN0IiBjbGFzcz0ic3BhY2UteS0zIj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyBtdC02IGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj5NeSBEZXBvc2l0cyA8c3BhbiBpZD0iZGVwb3NpdEJhZGdlIiBjbGFzcz0iaGlkZGVuIHB4LTIgcHktMC41IGJnLXllbGxvdy01MDAgdGV4dC1ibGFjayB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmb250LWJvbGQiPjA8L3NwYW4+PC9oMz48ZGl2IGlkPSJteURlcG9zaXRzTGlzdCIgY2xhc3M9InNwYWNlLXktMiI+PC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMgbXQtNiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPlJlY2VudCBUcmFuc2FjdGlvbnMgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkVHJhbnNhY3Rpb25zKCkiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTEiPjxpIGNsYXNzPSJmYXMgZmEtcm90YXRlLXJpZ2h0Ij48L2k+IFJlZnJlc2g8L2J1dHRvbj48L2gzPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlbiIgaWQ9InRyYW5zYWN0aW9uTGlzdCI+PGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIHRyYW5zYWN0aW9ucyB5ZXQ8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0iYWRtaW5TZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8IS0tIEFkbWluIFN0YXRzIENhcmRzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJnLWdyYWRpZW50LXRvLXIgZnJvbS1wdXJwbGUtNjAwLzIwIHRvLXBpbmstNjAwLzIwIGJvcmRlciBib3JkZXItcHVycGxlLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTggaC04IGJnLXB1cnBsZS02MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY2xvY2sgdGV4dC1wdXJwbGUtNDAwIHRleHQtc20iPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj5QZW5kaW5nPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJhZG1pblBlbmRpbmdDb3VudCI+MDwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJnLWdyYWRpZW50LXRvLXIgZnJvbS1lbWVyYWxkLTYwMC8yMCB0by10ZWFsLTYwMC8yMCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctOCBoLTggYmctZW1lcmFsZC02MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY2hlY2stY2lyY2xlIHRleHQtZW1lcmFsZC00MDAgdGV4dC1zbSI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20iPkFwcHJvdmVkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJhZG1pbkFwcHJvdmVkQ291bnQiPjA8L3A+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQZW5kaW5nIFdpdGhkcmF3YWxzIFBhbmVsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXNoaWVsZC1oYWx2ZWQgdGV4dC1wdXJwbGUtNDAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVuZGluZyBXaXRoZHJhd2Fscw0KICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ibG9hZEFkbWluV2l0aGRyYXdhbHMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT4gUmVmcmVzaA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdy14LWF1dG8iIGlkPSJhZG1pbldpdGhkcmF3YWxzQ29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Mb2FkaW5nIHdpdGhkcmF3YWxzLi4uPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQcm9maXQgV2l0aGRyYXdhbCBSZXF1ZXN0cyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1jb2lucyB0ZXh0LWFtYmVyLTQwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2ZpdCBXaXRoZHJhd2FsIFJlcXVlc3RzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImFkbWluUHJvZml0V2l0aGRyYXdhbEJhZGdlIiBjbGFzcz0iaGlkZGVuIHB4LTIgcHktMC41IGJnLWFtYmVyLTUwMCB0ZXh0LWJsYWNrIHRleHQteHMgcm91bmRlZC1mdWxsIGZvbnQtYm9sZCI+MDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvYWRBZG1pblByb2ZpdFdpdGhkcmF3YWxzKCkiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtcm90YXRlLXJpZ2h0Ij48L2k+IFJlZnJlc2gNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iYWRtaW5Qcm9maXRXaXRoZHJhd2Fsc0NvbnRhaW5lciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTggdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TG9hZGluZyBwcm9maXQgd2l0aGRyYXdhbCByZXF1ZXN0cy4uLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUGVuZGluZyBEZXBvc2l0cyBQYW5lbCAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1kb3duIHRleHQtZW1lcmFsZC00MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZW5kaW5nIERlcG9zaXRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImFkbWluRGVwb3NpdEJhZGdlIiBjbGFzcz0iaGlkZGVuIHB4LTIgcHktMC41IGJnLXllbGxvdy01MDAgdGV4dC1ibGFjayB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmb250LWJvbGQiPjA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkQWRtaW5EZXBvc2l0cygpIiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXJvdGF0ZS1yaWdodCI+PC9pPiBSZWZyZXNoDQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFkbWluRGVwb3NpdHNDb250YWluZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvYWRpbmcgZGVwb3NpdHMuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFBhc3N3b3JkIFJlc2V0IFJlcXVlc3RzIFBhbmVsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLWtleSB0ZXh0LWFtYmVyLTQwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3N3b3JkIFJlc2V0IENvZGVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImFkbWluUmVzZXRCYWRnZSIgY2xhc3M9ImhpZGRlbiBweC0yIHB5LTAuNSBiZy1hbWJlci01MDAgdGV4dC1ibGFjayB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmb250LWJvbGQiPjA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkQWRtaW5QYXNzd29yZFJlc2V0UmVxdWVzdHMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT4gUmVmcmVzaA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pblBhc3N3b3JkUmVzZXRDb250YWluZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvYWRpbmcgcmVzZXQgcmVxdWVzdHMuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20tcHVycGxlLTYwMC8yMCB0by1waW5rLTYwMC8yMCBib3JkZXItcHVycGxlLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWItMSI+QWRtaW4gVG90YWwgQmFsYW5jZTwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+VW5saW1pdGVkPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtcHVycGxlLTQwMCB0ZXh0LXNtIG10LTEiPlNlbmQgYW55IGFtb3VudCB0byBjdXN0b21lcnM8L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPkF2YWlsYWJsZSBDdXJyZW5jaWVzPC9oMz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGdhcC0zIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gYnRjIHRleHQtbGciPjxpIGNsYXNzPSJmYWIgZmEtYml0Y29pbiI+PC9pPjwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5CaXRjb2luPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiPlVubGltaXRlZDwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uIGV0aCB0ZXh0LWxnIj48aSBjbGFzcz0iZmFiIGZhLWV0aGVyZXVtIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0iZm9udC1ib2xkIHRleHQtd2hpdGUiPkV0aGVyZXVtPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiPlVubGltaXRlZDwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uIHVzZHQgdGV4dC1sZyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+PC9kaXY+PGRpdj48cCBjbGFzcz0iZm9udC1ib2xkIHRleHQtd2hpdGUiPlRldGhlcjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWVtZXJhbGQtNDAwIj5VbmxpbWl0ZWQ8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC0zIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiB1c2RjIHRleHQtbGciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NzAwOyI+JDwvc3Bhbj48L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSI+VVNEIENvaW48L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCI+VW5saW1pdGVkPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gYm5iIHRleHQtbGciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6ODAwOyI+Qjwvc3Bhbj48L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSI+Qk5CPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiPlVubGltaXRlZDwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+PGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpIGNsYXNzPSJmYXMgZmEtcGFwZXItcGxhbmUgdGV4dC1wdXJwbGUtNDAwIj48L2k+RnVuZCBDdXN0b21lciBBY2NvdW50PC9oMz48Zm9ybSBvbnN1Ym1pdD0icmV0dXJuIGhhbmRsZUFkbWluVHJhbnNmZXIoZXZlbnQpIj48ZGl2IGNsYXNzPSJzcGFjZS15LTMiPjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkN1c3RvbWVyIEVtYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJ0cmFuc2ZlckN1c3RvbWVyRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iY3VzdG9tZXJAZW1haWwuY29tIiByZXF1aXJlZD48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5TZWxlY3QgQ3VycmVuY3k8L2xhYmVsPjxzZWxlY3QgaWQ9InRyYW5zZmVyQ3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIj48b3B0aW9uIHZhbHVlPSJidGMiPkJpdGNvaW4gKEJUQyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJldGgiPkV0aGVyZXVtIChFVEgpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNkdCI+VGV0aGVyIChVU0RUKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZGMiPlVTRCBDb2luIChVU0RDKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJuYiI+Qk5CPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+QW1vdW50PC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idHJhbnNmZXJBbW91bnQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgcmVxdWlyZWQ+PHAgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBtdC0xIj4mIzEwMDAzOyBVbmxpbWl0ZWQgZnVuZHMgYXZhaWxhYmxlPC9wPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkRlc2NyaXB0aW9uIChzaG93biB0byBjdXN0b21lcik8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idHJhbnNmZXJEZXNjcmlwdGlvbiIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSJlLmcuIEludmVzdG1lbnQgYm9udXMsIFdlbGNvbWUgY3JlZGl0Li4uIj48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMyI+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+VHJhbnNmZXIgU3VtbWFyeTwvcD48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtdC0yIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RnJvbTo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUiPkFkbWluIFdhbGxldDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPlRvOjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSIgaWQ9InRyYW5zZmVyVG9FbWFpbCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkFtb3VudDo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUiIGlkPSJ0cmFuc2ZlclN1bW1hcnlBbW91bnQiPi08L3NwYW4+PC9kaXY+PC9kaXY+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJ3LWZ1bGwgcHktMyBiZy1ncmFkaWVudC10by1yIGZyb20tcHVycGxlLTYwMCB0by1waW5rLTYwMCBob3Zlcjpmcm9tLXB1cnBsZS03MDAgaG92ZXI6dG8tcGluay03MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwiPjxpIGNsYXNzPSJmYXMgZmEtcGFwZXItcGxhbmUgbXItMiI+PC9pPlNlbmQgRnVuZHM8L2J1dHRvbj48L2Rpdj48L2Zvcm0+PC9kaXY+DQogICAgICAgICAgICAgICAgPCEtLSBBZG1pbiBDaGF0IEluYm94IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IG10LTYiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY29tbWVudHMgdGV4dC1lbWVyYWxkLTQwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXQgSW5ib3gNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iYWRtaW5DaGF0QmFkZ2UiIGNsYXNzPSJoaWRkZW4gcHgtMiBweS0xIGJnLXJvc2UtNTAwIHRleHQtd2hpdGUgdGV4dC14cyByb3VuZGVkLWZ1bGwgZm9udC1ib2xkIj4wPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iYWRtaW5DaGF0Q29udmVyc2F0aW9ucyIgY2xhc3M9InNwYWNlLXktMiBtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC00IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk5vIG1lc3NhZ2VzIHlldDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gQWRtaW4gQ2hhdCBQYW5lbCAoaGlkZGVuIGJ5IGRlZmF1bHQpIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFkbWluQ2hhdFBhbmVsIiBjbGFzcz0iaGlkZGVuIGdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktNzAwIHBiLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNjAwIHRvLXRlYWwtNjAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtdXNlciB0ZXh0LXdoaXRlIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSIgaWQ9ImFkbWluQ2hhdFVzZXJOYW1lIj5Vc2VyPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIiBpZD0iYWRtaW5DaGF0VXNlckVtYWlsIj51c2VyQGVtYWlsLmNvbTwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZUFkbWluQ2hhdCgpIiBjbGFzcz0idGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIj48aSBjbGFzcz0iZmFzIGZhLXRpbWVzIj48L2k+PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pbkNoYXRNZXNzYWdlcyIgY2xhc3M9ImgtNjQgb3ZlcmZsb3cteS1hdXRvIHNwYWNlLXktMyBtYi0zIHAtMiI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZG1pbkNoYXRJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIGZsZXgtMSIgcGxhY2Vob2xkZXI9IlJlcGx5IHRvIHVzZXIuLi4iIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJylzZW5kQWRtaW5SZXBseSgpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2VuZEFkbWluUmVwbHkoKSIgY2xhc3M9InctMTIgaC0xMiBiZy1lbWVyYWxkLTYwMCBob3ZlcjpiZy1lbWVyYWxkLTcwMCByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLXBhcGVyLXBsYW5lIHRleHQtd2hpdGUiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyI+QWxsIEN1c3RvbWVyczwvaDM+PGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgb3ZlcmZsb3ctaGlkZGVuIiBpZD0iYWRtaW5DdXN0b21lckxpc3QiPjxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5Mb2FkaW5nIGN1c3RvbWVycy4uLjwvcD48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gSW52ZXN0bWVudCBQbGFucyBNYW5hZ2VtZW50IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IG10LTYiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtZ2VtIHRleHQtYW1iZXItNDAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52ZXN0bWVudCBQbGFucw0KICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ibG9hZEFkbWluUGxhbnMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT4gUmVmcmVzaA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pblBsYW5zQ29udGFpbmVyIiBjbGFzcz0ic3BhY2UteS0zIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC00IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvYWRpbmcgcGxhbnMuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvcmRlci10IGJvcmRlci1ncmF5LTcwMCBwdC00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUgbWItMyI+Q3JlYXRlIE5ldyBQbGFuPC9oND4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJuZXdQbGFuTmFtZSIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iUGxhbiBOYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJuZXdQbGFuQ3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZHQiPlVTRFQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnRjIj5CVEM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZXRoIj5FVEg8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idXNkYyI+VVNEQzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJuZXdQbGFuTWluIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJNaW4gQW1vdW50Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ibmV3UGxhbk1heCIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iTWF4IEFtb3VudCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9Im5ld1BsYW5EYWlseVJvaSIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iRGFpbHkgUk9JICUiIHN0ZXA9IjAuMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9Im5ld1BsYW5EdXJhdGlvbiIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iRHVyYXRpb24gKGRheXMpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJuZXdQbGFuRGVzYyIgY2xhc3M9ImlucHV0LWZpZWxkIG1iLTMiIHBsYWNlaG9sZGVyPSJEZXNjcmlwdGlvbiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNyZWF0ZVBsYW4oKSIgY2xhc3M9InctZnVsbCBweS0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1hbWJlci02MDAgdG8tb3JhbmdlLTYwMCBob3Zlcjpmcm9tLWFtYmVyLTcwMCBob3Zlcjp0by1vcmFuZ2UtNzAwIHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXBsdXMgbXItMiI+PC9pPkNyZWF0ZSBQbGFuDQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFByb2ZpdCBBY2NydWFsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1jb2lucyB0ZXh0LXllbGxvdy00MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIERhaWx5IFByb2ZpdCBEaXN0cmlidXRpb24NCiAgICAgICAgICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC14bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIG1iLTIiPkhvdyBpdCB3b3Jrczo8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBzcGFjZS15LTEgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjEuIENsaWNrICJBY2NydWUgUHJvZml0cyIgYmVsb3c8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yLiBBbGwgYWN0aXZlIGludmVzdG1lbnRzIGdldCBkYWlseSBwcm9maXQgYWRkZWQgdG8gdGhlaXIgd2FsbGV0PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+My4gQ29tcGxldGVkIHBsYW5zIChkdXJhdGlvbiByZWFjaGVkKSBhcmUgYXV0by1tYXJrZWQ8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFjY3J1ZVByb2ZpdHMoKSIgY2xhc3M9ImZsZXgtMSBweS0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS15ZWxsb3ctNjAwIHRvLWFtYmVyLTYwMCBob3Zlcjpmcm9tLXllbGxvdy03MDAgaG92ZXI6dG8tYW1iZXItNzAwIHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1wbGF5IG1yLTIiPjwvaT5BY2NydWUgUHJvZml0cw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pbkludmVzdG1lbnRzQ29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5DbGljayBhYm92ZSB0byBzZWUgYWN0aXZlIGludmVzdG1lbnRzPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBSZWZlcnJhbCBDb2RlcyBNYW5hZ2VtZW50IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48aSBjbGFzcz0iZmFzIGZhLWdpZnQgdGV4dC1lbWVyYWxkLTQwMCI+PC9pPlJlZmVycmFsIENvZGVzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ibG9hZFJlZmVycmFsQ29kZXMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+PGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJjcmVhdGVSZWZlcnJhbEZvcm0iIGNsYXNzPSJzcGFjZS15LTMgbWItNCBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCIgb25zdWJtaXQ9InJldHVybiBjcmVhdGVSZWZlcnJhbENvZGUoZXZlbnQpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVmQ29kZUlucHV0IiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJDb2RlIChlLmcuIFdFTENPTUU1MCkiIG1heGxlbmd0aD0iNTAiIHN0eWxlPSJ0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IiByZXF1aXJlZD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0icmVmQm9udXNJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iQm9udXMgYW1vdW50IiBzdGVwPSIwLjAxIiBtaW49IjAuMDEiIHJlcXVpcmVkPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0icmVmQ3VycmVuY3lJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIj48b3B0aW9uIHZhbHVlPSJ1c2R0Ij5VU0RUPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYnRjIj5CVEM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJldGgiPkVUSDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZGMiPlVTREM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPjwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJyZWZNYXhVc2FnZUlucHV0IiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJNYXggdXNlcyAoZGVmYXVsdDogMSkiIG1pbj0iMSIgdmFsdWU9IjEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS0zIj48aSBjbGFzcz0iZmFzIGZhLXBsdXMgbXItMiI+PC9pPkNyZWF0ZSBSZWZlcnJhbCBDb2RlPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icmVmZXJyYWxTdGF0cyIgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTIgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC8zMCI+PHAgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJyZWZTdGF0VG90YWwiPjA8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VG90YWw8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC8zMCI+PHAgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC00MDAiIGlkPSJyZWZTdGF0QWN0aXZlIj4wPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkFjdGl2ZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMiByb3VuZGVkLWxnIGJnLWdyYXktODAwLzMwIj48cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1ibHVlLTQwMCIgaWQ9InJlZlN0YXRVc2VzIj4wPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlVzZXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdy14LWF1dG8iIGlkPSJyZWZlcnJhbENvZGVzQ29udGFpbmVyIj48ZGl2IGNsYXNzPSJwLTQgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PHA+TG9hZGluZyByZWZlcnJhbCBjb2Rlcy4uLjwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUGF5UGFsIFNldHRpbmdzIChBZG1pbikgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpIGNsYXNzPSJmYWIgZmEtcGF5cGFsIHRleHQtYmx1ZS00MDAiPjwvaT5QYXlQYWwgRGVwb3NpdCBTZXR0aW5nczwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvYWRBZG1pblBheXBhbEVtYWlsKCkiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiPjxpIGNsYXNzPSJmYXMgZmEtcm90YXRlLXJpZ2h0Ij48L2k+PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQteGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCBtYi0yIj5TZXQgdGhlIFBheVBhbCBlbWFpbCBhZGRyZXNzIHdoZXJlIEV1cm9wZWFuIGN1c3RvbWVycyB3aWxsIHNlbmQgdGhlaXIgZGVwb3NpdHMuPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+VGhpcyBlbWFpbCB3aWxsIGJlIHNob3duIHRvIEVVIGN1c3RvbWVycyBpbiB0aGUgZGVwb3NpdCBtb2RhbC48L3A+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+UGF5UGFsIEVtYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJhZG1pblBheXBhbEVtYWlsIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9ImUuZy4gZGVwb3NpdHNAeW91cmNvbXBhbnkuY29tIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2F2ZUFkbWluUGF5cGFsRW1haWwoKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IGZsZXgtMSBweS0zIj48aSBjbGFzcz0iZmFzIGZhLXNhdmUgbXItMiI+PC9pPlNhdmUgUGF5UGFsIEVtYWlsPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbGVhckFkbWluUGF5cGFsRW1haWwoKSIgY2xhc3M9InB5LTMgcHgtNCBiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgdGV4dC1zbSI+PGkgY2xhc3M9ImZhcyBmYS10cmFzaCI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pblBheXBhbFN0YXR1cyIgY2xhc3M9Im10LTMgdGV4dC14cyB0ZXh0LWNlbnRlciI+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPG5hdiBjbGFzcz0iYm90dG9tLW5hdiI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1hcm91bmQgcHgtMiI+PGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignZGFzaGJvYXJkJykiIGNsYXNzPSJib3R0b20tbmF2LWl0ZW0gYWN0aXZlIiBpZD0ibmF2SG9tZSI+PGkgY2xhc3M9ImZhcyBmYS1ob21lIj48L2k+PHNwYW4+SG9tZTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCdtYXJrZXQnKSIgY2xhc3M9ImJvdHRvbS1uYXYtaXRlbSIgaWQ9Im5hdk1hcmtldCI+PGkgY2xhc3M9ImZhcyBmYS1jaGFydC1saW5lIj48L2k+PHNwYW4+TWFya2V0PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2ludmVzdCcpIiBjbGFzcz0iYm90dG9tLW5hdi1pdGVtIiBpZD0ibmF2SW52ZXN0Ij48aSBjbGFzcz0iZmFzIGZhLXBpZ2d5LWJhbmsiPjwvaT48c3Bhbj5JbnZlc3Q8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbigndHJhZGUnKSIgY2xhc3M9ImJvdHRvbS1uYXYtaXRlbSIgaWQ9Im5hdlRyYWRlIj48aSBjbGFzcz0iZmFzIGZhLWV4Y2hhbmdlLWFsdCI+PC9pPjxzcGFuPlRyYWRlPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ3dhbGxldHMnKSIgY2xhc3M9ImJvdHRvbS1uYXYtaXRlbSIgaWQ9Im5hdldhbGxldHMiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0Ij48L2k+PHNwYW4+V2FsbGV0czwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCdhZG1pbicpIiBjbGFzcz0iYm90dG9tLW5hdi1pdGVtIGhpZGRlbiIgaWQ9Im5hdkFkbWluIj48aSBjbGFzcz0iZmFzIGZhLWNyb3duIj48L2k+PHNwYW4+QWRtaW48L3NwYW4+PC9idXR0b24+PC9kaXY+PC9uYXY+DQoNCiAgICAgICAgICAgIDwhLS0gQ3VzdG9tIENvbmZpcm0gTW9kYWwgLS0+DQogICAgICAgICAgICA8ZGl2IGlkPSJjb25maXJtTW9kYWwiIGNsYXNzPSJtb2RhbCIgc3R5bGU9InotaW5kZXg6MTAwMTsiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctc20gbS00Ij48ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi01Ij48ZGl2IGNsYXNzPSJ3LTE0IGgtMTQgYmctYmx1ZS01MDAvMTAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItMyI+PGkgY2xhc3M9ImZhcyBmYS1xdWVzdGlvbi1jaXJjbGUgdGV4dC1ibHVlLTQwMCB0ZXh0LTJ4bCI+PC9pPjwvZGl2PjxwIGlkPSJjb25maXJtTW9kYWxNZXNzYWdlIiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXNtIj5BcmUgeW91IHN1cmU/PC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggZ2FwLTMiPjxidXR0b24gb25jbGljaz0ib25Db25maXJtQ2FuY2VsKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LW1lZGl1bSI+Q2FuY2VsPC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJvbkNvbmZpcm1PaygpIiBjbGFzcz0iZmxleC0xIHB5LTMgYmctd2hpdGUgaG92ZXI6YmctZ3JheS0yMDAgdGV4dC1ibGFjayByb3VuZGVkLXhsIHRleHQtc20gZm9udC1ib2xkIj5Db25maXJtPC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gQ3VzdG9tIFByb21wdCBNb2RhbCAtLT4NCiAgICAgICAgICAgIDxkaXYgaWQ9InByb21wdE1vZGFsIiBjbGFzcz0ibW9kYWwiIHN0eWxlPSJ6LWluZGV4OjEwMDE7Ij48ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgdy1mdWxsIG1heC13LXNtIG0tNCI+PGRpdiBjbGFzcz0ibWItNCI+PHAgaWQ9InByb21wdE1vZGFsTWVzc2FnZSIgY2xhc3M9InRleHQtd2hpdGUgdGV4dC1zbSBtYi0zIj5FbnRlciB2YWx1ZTo8L3A+PGlucHV0IHR5cGU9InRleHQiIGlkPSJwcm9tcHRNb2RhbElucHV0IiBjbGFzcz0iaW5wdXQtZmllbGQgdy1mdWxsIiBwbGFjZWhvbGRlcj0iIj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGdhcC0zIj48YnV0dG9uIG9uY2xpY2s9Im9uUHJvbXB0Q2FuY2VsKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LW1lZGl1bSI+Q2FuY2VsPC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJvblByb21wdE9rKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy13aGl0ZSBob3ZlcjpiZy1ncmF5LTIwMCB0ZXh0LWJsYWNrIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LWJvbGQiPk9LPC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gTW9kYWxzIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0iZGVwb3NpdE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00IiBzdHlsZT0ibWF4LWhlaWdodDo5MHZoO292ZXJmbG93LXk6YXV0bzsiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij48aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPkRlcG9zaXQ8L2gzPjxidXR0b24gb25jbGljaz0iY2xvc2VNb2RhbCgnZGVwb3NpdE1vZGFsJykiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+U2VsZWN0IEN1cnJlbmN5PC9sYWJlbD48c2VsZWN0IGlkPSJkZXBvc2l0Q3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBvbmNoYW5nZT0idXBkYXRlRGVwb3NpdEFkZHJlc3MoKSI+PG9wdGlvbiB2YWx1ZT0iYnRjIj5CaXRjb2luIChCVEMpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZXRoIj5FdGhlcmV1bSAoRVRIKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZHQiPlRldGhlciAoVVNEVCk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2RjIj5VU0QgQ29pbiAoVVNEQyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgaWQ9ImRlcG9zaXRQYXlwYWxPcHRpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+UGF5bWVudCBNZXRob2Q8L2xhYmVsPjxzZWxlY3QgaWQ9ImRlcG9zaXRNZXRob2QiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBvbmNoYW5nZT0ib25EZXBvc2l0TWV0aG9kQ2hhbmdlKCkiPjxvcHRpb24gdmFsdWU9ImNyeXB0byI+Q3J5cHRvY3VycmVuY3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJwYXlwYWwiPlBheVBhbDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgaWQ9ImRlcG9zaXRDcnlwdG9TZWN0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQteGwgcC00IHRleHQtY2VudGVyIj48cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTIiPlNlbmQgVG8gQWRkcmVzczwvcD48Y29kZSBpZD0iZGVwb3NpdEFkZHJlc3MiIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtc20gYnJlYWstYWxsIj5iYzFxa3Z1Yzc5eXRjdzczNDN5a25wM2Z5YTR1d3dkNGoyd2E3N2Z0bnU8L2NvZGU+PGJ1dHRvbiBvbmNsaWNrPSJjb3B5RGVwb3NpdEFkZHJlc3MoKSIgY2xhc3M9Im10LTMgcHgtNCBweS0yIGJnLXdoaXRlIHRleHQtYmxhY2sgcm91bmRlZC1sZyBmb250LW1lZGl1bSI+PGkgY2xhc3M9ImZhcyBmYS1jb3B5IG1yLTIiPjwvaT5Db3B5PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZGVwb3NpdFBheXBhbFNlY3Rpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGNsYXNzPSJiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQteGwgcC00IHRleHQtY2VudGVyIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiBtYi0yIj48aSBjbGFzcz0iZmFiIGZhLXBheXBhbCB0ZXh0LWJsdWUtNDAwIHRleHQtMnhsIj48L2k+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1ib2xkIj5QYXlQYWw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYmctYW1iZXItNTAwLzEwIGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIHJvdW5kZWQtbGcgcC0yIG1iLTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIj48aSBjbGFzcz0iZmFzIGZhLWNsb2NrIHRleHQtYW1iZXItNDAwIHRleHQtc20iPjwvaT48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTMwMCBmb250LW1lZGl1bSI+RGVwb3NpdCBkZXRhaWxzIHZhbGlkIGZvciAyNCBob3VycyBvbmx5PC9zcGFuPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS0zMDAgbWItMiI+U2VuZCB5b3VyIGRlcG9zaXQgdG8gdGhpcyBQYXlQYWwgYWRkcmVzczo8L3A+PGRpdiBjbGFzcz0iYmctZ3JheS05MDAgcm91bmRlZC1sZyBwLTMiPjxjb2RlIGlkPSJkZXBvc2l0UGF5cGFsRGlzcGxheUVtYWlsIiBjbGFzcz0idGV4dC1zbSB0ZXh0LXdoaXRlIGJyZWFrLWFsbCI+TG9hZGluZy4uLjwvY29kZT48L2Rpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG10LTIiPlN1Ym1pdCB3aXRoaW4gMjQgaG91cnMgb3IgcmVxdWVzdCBuZXcgZGV0YWlsczwvcD48cCBpZD0icGF5cGFsRXhwaXJ5RGlzcGxheSIgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmb250LW1lZGl1bSBtdC0yIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYm9yZGVyLXQgYm9yZGVyLWdyYXktNzAwIHB0LTQiPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItMyBmb250LXNlbWlib2xkIj5TdWJtaXQgRGVwb3NpdCBmb3IgQXBwcm92YWw8L3A+PGRpdiBjbGFzcz0ic3BhY2UteS0zIj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5BbW91bnQgKFVTRCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJkZXBvc2l0QW1vdW50IiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9Ijc1MC4wMCIgc3RlcD0iMC4wMSI+PC9kaXY+PGRpdiBpZD0iZGVwb3NpdFBheXBhbEVtYWlsUm93IiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPllvdXIgUGF5UGFsIEVtYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJkZXBvc2l0UGF5cGFsRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0ieW91ckBwYXlwYWwuY29tIj48L2Rpdj48ZGl2IGlkPSJkZXBvc2l0VHhIYXNoUm93Ij48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+VHJhbnNhY3Rpb24gSGFzaCAvIFByb29mIElEIChvcHRpb25hbCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVwb3NpdFR4SGFzaCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSIweC4uLiBvciB0eGlkIC8gcmVjZWlwdCBJRCI+PC9kaXY+PGRpdiBpZD0iZGVwb3NpdEZyb21BZGRyZXNzUm93Ij48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+RnJvbSBBZGRyZXNzIChvcHRpb25hbCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVwb3NpdEZyb21BZGRyZXNzIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9IllvdXIgc2VuZGluZyB3YWxsZXQgYWRkcmVzcyI+PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJzdWJtaXREZXBvc2l0KCkiIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktMyI+PGkgY2xhc3M9ImZhcyBmYS1wYXBlci1wbGFuZSBtci0yIj48L2k+U3VibWl0IERlcG9zaXQ8L2J1dHRvbj48L2Rpdj48L2Rpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIHRleHQtY2VudGVyIG10LTMiPllvdXIgZGVwb3NpdCB3aWxsIGJlIHJldmlld2VkIGFuZCBjcmVkaXRlZCB3aXRoaW4gMjQgaG91cnMuPC9wPjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJ3aXRoZHJhd01vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00IiBzdHlsZT0ibWF4LWhlaWdodDo5MHZoO292ZXJmbG93LXk6YXV0bzsiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij48aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPldpdGhkcmF3PC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ3dpdGhkcmF3TW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyB0ZXh0LXhsIj48L2k+PC9idXR0b24+PC9kaXY+PGZvcm0gb25zdWJtaXQ9InJldHVybiBoYW5kbGVXaXRoZHJhdyhldmVudCkiPjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+Q3VycmVuY3k8L2xhYmVsPjxzZWxlY3QgaWQ9IndpdGhkcmF3Q3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBvbmNoYW5nZT0idXBkYXRlV2l0aGRyYXdBdmFpbGFibGUoKSI+PG9wdGlvbiB2YWx1ZT0iYnRjIj5CaXRjb2luIChCVEMpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZXRoIj5FdGhlcmV1bSAoRVRIKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZHQiPlRldGhlciAoVVNEVCk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2RjIj5VU0QgQ29pbiAoVVNEQyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPldpdGhkcmF3YWwgTWV0aG9kPC9sYWJlbD48c2VsZWN0IGlkPSJ3aXRoZHJhd01ldGhvZCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIG9uY2hhbmdlPSJvbldpdGhkcmF3TWV0aG9kQ2hhbmdlKCkiPjxvcHRpb24gdmFsdWU9ImNyeXB0byI+Q3J5cHRvY3VycmVuY3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ3aXJlIj5XaXJlIFRyYW5zZmVyPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdiBpZD0id2l0aGRyYXdDcnlwdG9TZWN0aW9uIj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5SZWNpcGllbnQgQWRkcmVzczwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aXRoZHJhd0FkZHJlc3MiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iRW50ZXIgd2FsbGV0IGFkZHJlc3MuLi4iPjwvZGl2PjwvZGl2PjxkaXYgaWQ9IndpdGhkcmF3V2lyZVNlY3Rpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGNsYXNzPSJiZy1hbWJlci01MDAvMTAgYm9yZGVyIGJvcmRlci1hbWJlci01MDAvMjAgcm91bmRlZC1sZyBwLTMgbWItMyI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1hbWJlci0zMDAiPjxpIGNsYXNzPSJmYXMgZmEtY2xvY2sgbXItMSI+PC9pPldpcmUgdHJhbnNmZXJzIGFyZSBwcm9jZXNzZWQgd2l0aGluIDEtMyBidXNpbmVzcyBkYXlzPC9wPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkJhbmsgTmFtZTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aXRoZHJhd0JhbmtOYW1lIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9ImUuZy4gQmFuayBvZiBBbWVyaWNhIj48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5BY2NvdW50IEhvbGRlciBOYW1lPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9IndpdGhkcmF3QWNjb3VudEhvbGRlciIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSJGdWxsIG5hbWUgb24gYWNjb3VudCI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+QWNjb3VudCBOdW1iZXI8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0id2l0aGRyYXdBY2NvdW50TnVtYmVyIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9IkFjY291bnQgbnVtYmVyIj48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5Sb3V0aW5nIE51bWJlcjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aXRoZHJhd1JvdXRpbmdOdW1iZXIiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iUm91dGluZyBudW1iZXIiPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPlNXSUZUL0JJQyBDb2RlPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9IndpdGhkcmF3U3dpZnRDb2RlIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9IlNXSUZUIGNvZGUgKG9wdGlvbmFsKSI+PC9kaXY+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+QW1vdW50PC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0id2l0aGRyYXdBbW91bnQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgcmVxdWlyZWQ+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkF2YWlsYWJsZTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSIgaWQ9IndpdGhkcmF3QXZhaWxhYmxlIj4wLjAwMDAgQlRDPC9zcGFuPjwvZGl2PjxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0id2l0aGRyYXdTdWJtaXRCdG4iIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktNCI+V2l0aGRyYXc8L2J1dHRvbj48L2Rpdj48L2Zvcm0+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgaWQ9ImludmVzdE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00Ij48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+PGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIiBpZD0iaW52ZXN0TW9kYWxUaXRsZSI+SW52ZXN0PC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ2ludmVzdE1vZGFsJykiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC14bCBwLTQiPjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTIiPjxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPlBsYW48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCIgaWQ9ImludmVzdE1vZGFsUGxhbk5hbWUiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gbWItMiI+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+RGFpbHkgUk9JPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVtZXJhbGQtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJpbnZlc3RNb2RhbFJvaSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtYi0yIj48c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5EdXJhdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIiBpZD0iaW52ZXN0TW9kYWxEdXJhdGlvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiI+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+Q3VycmVuY3k8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCIgaWQ9ImludmVzdE1vZGFsQ3VycmVuY3kiPi08L3NwYW4+PC9kaXY+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+SW52ZXN0bWVudCBBbW91bnQ8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnZlc3RBbW91bnQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgb25pbnB1dD0idXBkYXRlSW52ZXN0UHJldmlldygpIj48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMyI+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBtYi0yIj5JbnZlc3RtZW50IFByZXZpZXc8L3A+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkRhaWx5IFByb2ZpdDo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZW1lcmFsZC00MDAgZm9udC1tZWRpdW0iIGlkPSJpbnZlc3RQcmV2aWV3RGFpbHkiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPlRvdGFsIFByb2ZpdDo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZW1lcmFsZC00MDAgZm9udC1tZWRpdW0iIGlkPSJpbnZlc3RQcmV2aWV3VG90YWwiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkF2YWlsYWJsZTo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1tZWRpdW0iIGlkPSJpbnZlc3RQcmV2aWV3QXZhaWxhYmxlIj4tPC9zcGFuPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAiPkJhbGFuY2Ugd2lsbCBiZSBkZWR1Y3RlZCBpbW1lZGlhdGVseS4gUHJvZml0cyBhcmUgYWRkZWQgdG8geW91ciB3YWxsZXQgZGFpbHkuPC9wPjxidXR0b24gaWQ9ImNvbmZpcm1JbnZlc3RCdG4iIG9uY2xpY2s9InN1Ym1pdEludmVzdG1lbnQoKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS00Ij5Db25maXJtIEludmVzdG1lbnQ8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0iY2hhbmdlUGFzc3dvcmRNb2RhbCIgY2xhc3M9Im1vZGFsIj48ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgdy1mdWxsIG1heC13LW1kIG0tNCI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPjxoMyBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+Q2hhbmdlIFBhc3N3b3JkPC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ2NoYW5nZVBhc3N3b3JkTW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyB0ZXh0LXhsIj48L2k+PC9idXR0b24+PC9kaXY+PGZvcm0gb25zdWJtaXQ9InJldHVybiBoYW5kbGVDaGFuZ2VQYXNzd29yZChldmVudCkiPjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+Q3VycmVudCBQYXNzd29yZDwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtd3JhcHBlciI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iY3VycmVudFBhc3N3b3JkIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMiIgcGxhY2Vob2xkZXI9IkVudGVyIGN1cnJlbnQgcGFzc3dvcmQiIHJlcXVpcmVkIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjUwcHg7Ij48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgc3R5bGU9InJpZ2h0OjhweDt0b3A6Y2FsYyg1MCUgKyA0cHgpOyIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ2N1cnJlbnRQYXNzd29yZCcsIHRoaXMpIj48aSBjbGFzcz0iZmFzIGZhLWV5ZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPk5ldyBQYXNzd29yZDwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtd3JhcHBlciI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ibmV3UGFzc3dvcmQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iTWluIDYgY2hhcmFjdGVycyIgcmVxdWlyZWQgbWlubGVuZ3RoPSI2IiBzdHlsZT0icGFkZGluZy1yaWdodDo1MHB4OyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJwYXNzd29yZC10b2dnbGUiIHN0eWxlPSJyaWdodDo4cHg7dG9wOmNhbGMoNTAlICsgNHB4KTsiIG9uY2xpY2s9InRvZ2dsZVBhc3N3b3JkKCduZXdQYXNzd29yZCcsIHRoaXMpIj48aSBjbGFzcz0iZmFzIGZhLWV5ZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkNvbmZpcm0gTmV3IFBhc3N3b3JkPC9sYWJlbD48ZGl2IGNsYXNzPSJwYXNzd29yZC13cmFwcGVyIj48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJjb25maXJtTmV3UGFzc3dvcmQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iUmUtZW50ZXIgbmV3IHBhc3N3b3JkIiByZXF1aXJlZCBtaW5sZW5ndGg9IjYiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjUwcHg7Ij48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgc3R5bGU9InJpZ2h0OjhweDt0b3A6Y2FsYyg1MCUgKyA0cHgpOyIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ2NvbmZpcm1OZXdQYXNzd29yZCcsIHRoaXMpIj48aSBjbGFzcz0iZmFzIGZhLWV5ZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTQiPjxpIGNsYXNzPSJmYXMgZmEtbG9jayBtci0yIj48L2k+VXBkYXRlIFBhc3N3b3JkPC9idXR0b24+PC9kaXY+PC9mb3JtPjwvZGl2PjwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJmb3Jnb3RQYXNzd29yZE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00IiBzdHlsZT0ibWF4LWhlaWdodDo5MHZoO292ZXJmbG93LXk6YXV0bzsiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij48aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPlJlc2V0IFBhc3N3b3JkPC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ2ZvcmdvdFBhc3N3b3JkTW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyB0ZXh0LXhsIj48L2k+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic3BhY2UteS00Ij48ZGl2IGlkPSJmb3Jnb3RFbWFpbFNlY3Rpb24iPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItMyI+RW50ZXIgeW91ciByZWdpc3RlcmVkIGVtYWlsIHRvIHJlcXVlc3QgYSBwYXNzd29yZCByZXNldC48L3A+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+RW1haWwgQWRkcmVzczwvbGFiZWw+PGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iZm9yZ290RW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0ieW91QGV4YW1wbGUuY29tIj48L2Rpdj48YnV0dG9uIG9uY2xpY2s9InN1Ym1pdEZvcmdvdFBhc3N3b3JkKCkiIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktNCBtdC0yIj48aSBjbGFzcz0iZmFzIGZhLXBhcGVyLXBsYW5lIG1yLTIiPjwvaT5SZXF1ZXN0IFJlc2V0PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZm9yZ290Q29kZVNlY3Rpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGNsYXNzPSJiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQteGwgcC00IG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtYmx1ZS00MDAgbWItMiI+PGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtaW5mbyBtci0xIj48L2k+PHN0cm9uZz5Db2RlIEdlbmVyYXRlZCBTdWNjZXNzZnVsbHk8L3N0cm9uZz48L3A+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCI+QSA2LWRpZ2l0IHZlcmlmaWNhdGlvbiBjb2RlIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHlvdXIgYWNjb3VudC48L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctYW1iZXItNTAwLzEwIGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIHJvdW5kZWQteGwgcC00IG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtYW1iZXItNDAwIG1iLTIiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCBtci0xIj48L2k+PHN0cm9uZz5Ib3cgdG8gR2V0IFlvdXIgQ29kZTwvc3Ryb25nPjwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIG1iLTIiPjEuIE9wZW4gPHN0cm9uZz5MaXZlIFN1cHBvcnQ8L3N0cm9uZz4gY2hhdCAoYm90dG9tIHJpZ2h0KTwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIG1iLTIiPjIuIFRlbGwgdGhlIGFnZW50IHlvdXIgZW1haWwgYWRkcmVzczwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4zLiBUaGUgYWdlbnQgd2lsbCBzZW5kIHlvdSB0aGUgNi1kaWdpdCBjb2RlPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQteGwgcC00IHRleHQtY2VudGVyIG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+Q29kZSBFeHBpcmVzIEluPC9wPjxwIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj4zMCBtaW51dGVzPC9wPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgdGV4dC1jZW50ZXIiPklmIG5vIGFnZW50IGlzIG9ubGluZSwgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlciB3aGVuIHN1cHBvcnQgaXMgYXZhaWxhYmxlLjwvcD48aHIgY2xhc3M9ImJvcmRlci1ncmF5LTcwMCBteS0zIj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5FbnRlciA2LURpZ2l0IENvZGUgZnJvbSBTdXBwb3J0PC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvcmdvdENvZGVJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIHBsYWNlaG9sZGVyPSIwMDAwMDAiIG1heGxlbmd0aD0iNiI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+TmV3IFBhc3N3b3JkPC9sYWJlbD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJmb3Jnb3ROZXdQYXNzd29yZCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIHBsYWNlaG9sZGVyPSJNaW4gNiBjaGFyYWN0ZXJzIiBtaW5sZW5ndGg9IjYiPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkNvbmZpcm0gTmV3IFBhc3N3b3JkPC9sYWJlbD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJmb3Jnb3RDb25maXJtUGFzc3dvcmQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iUmUtZW50ZXIgbmV3IHBhc3N3b3JkIiBtaW5sZW5ndGg9IjYiPjwvZGl2PjxidXR0b24gb25jbGljaz0ic3VibWl0UmVzZXRQYXNzd29yZCgpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTQiPjxpIGNsYXNzPSJmYXMgZmEtbG9jayBtci0yIj48L2k+UmVzZXQgUGFzc3dvcmQ8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBTdXBwb3J0IE1vZGFsIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0ic3VwcG9ydE1vZGFsIiBjbGFzcz0ibW9kYWwiIHN0eWxlPSJ6LWluZGV4OjEwMDthbGlnbi1pdGVtczpmbGV4LWVuZDtwYWRkaW5nLWJvdHRvbToyMHB4OyI+PGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgdy1mdWxsIG1heC13LW1kIG0tNCBmbGV4IGZsZXgtY29sIiBzdHlsZT0ibWF4LWhlaWdodDo4MHZoOyI+PGRpdiBjbGFzcz0icC00IGJvcmRlci1iIGJvcmRlci1ncmF5LTcwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTYwMCB0by10ZWFsLTYwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj5MaXZlIFN1cHBvcnQ8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCIgaWQ9ImNoYXRTdGF0dXMiPk9ubGluZTwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PGJ1dHRvbiBvbmNsaWNrPSJ0b2dnbGVDaGF0U291bmQoKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiIGlkPSJjaGF0U291bmRCdG4iPjxpIGNsYXNzPSJmYXMgZmEtdm9sdW1lLXVwIj48L2k+PC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFsKCdzdXBwb3J0TW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gcC00IHNwYWNlLXktMyIgaWQ9ImNoYXRNZXNzYWdlc0NvbnRhaW5lciIgc3R5bGU9Im1pbi1oZWlnaHQ6MzAwcHg7Ij48ZGl2IGlkPSJjaGF0R3Vlc3RGb3JtIiBjbGFzcz0iY2hhdC1ndWVzdC1mb3JtIHNwYWNlLXktMyI+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+UGxlYXNlIGVudGVyIHlvdXIgZGV0YWlscyB0byBzdGFydCBjaGF0dGluZyB3aXRoIG91ciBTdXBwb3J0IEFnZW50LjwvcD48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Zb3VyIE5hbWU8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2hhdEd1ZXN0TmFtZSIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSJKb2huIERvZSI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+WW91ciBFbWFpbDwvbGFiZWw+PGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iY2hhdEd1ZXN0RW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iam9obkBleGFtcGxlLmNvbSI+PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJzYXZlR3Vlc3RDaGF0SW5mbygpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTIgdGV4dC1zbSI+PGkgY2xhc3M9ImZhcyBmYS1jb21tZW50IG1yLTIiPjwvaT5TdGFydCBDaGF0PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2hhdE1lc3NhZ2VzTGlzdCIgY2xhc3M9InNwYWNlLXktMyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icC00IGJvcmRlci10IGJvcmRlci1ncmF5LTcwMCI+PGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJjaGF0SW5wdXQiIGNsYXNzPSJpbnB1dC1maWVsZCBmbGV4LTEiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgbWVzc2FnZS4uLiIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInKXNlbmRDaGF0TWVzc2FnZSgpIj48YnV0dG9uIG9uY2xpY2s9InNlbmRDaGF0TWVzc2FnZSgpIiBjbGFzcz0icHgtNCBweS0yIGJnLXdoaXRlIHRleHQtYmxhY2sgcm91bmRlZC14bCBmb250LW1lZGl1bSI+PGkgY2xhc3M9ImZhcyBmYS1wYXBlci1wbGFuZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQogICAgICAgICAgICA8IS0tIEVkaXQgSW52ZXN0bWVudCBNb2RhbCAoQWRtaW4pIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0iZWRpdEludmVzdG1lbnRNb2RhbCIgY2xhc3M9Im1vZGFsIj48ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgdy1mdWxsIG1heC13LW1kIG0tNCI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPjxoMyBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS1lZGl0IHRleHQtYW1iZXItNDAwIG1yLTIiPjwvaT5FZGl0IEludmVzdG1lbnQ8L2gzPjxidXR0b24gb25jbGljaz0iY2xvc2VFZGl0SW52ZXN0bWVudE1vZGFsKCkiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlZGl0SW52SWQiPjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+VG90YWwgUHJvZml0PC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZWRpdFRvdGFsUHJvZml0IiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMiIgcGxhY2Vob2xkZXI9Ijc1MC4wMCIgc3RlcD0iMC4wMSI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+V2l0aGRyYXduIFByb2ZpdDwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImVkaXRXaXRoZHJhd25Qcm9maXQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iNzUwLjAwIiBzdGVwPSIwLjAxIj48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLXhsIHAtMyI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5BdmFpbGFibGUgUHJvZml0PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ibHVlLTQwMCIgaWQ9ImVkaXRBdmFpbGFibGVQcm9maXQiPjAgVVNEVDwvcD48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5TdGF0dXM8L2xhYmVsPjxzZWxlY3QgaWQ9ImVkaXRJbnZTdGF0dXMiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIj48b3B0aW9uIHZhbHVlPSJhY3RpdmUiPkFjdGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbXBsZXRlZCI+Q29tcGxldGVkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2FuY2VsbGVkIj5DYW5jZWxsZWQ8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48YnV0dG9uIG9uY2xpY2s9InNhdmVJbnZlc3RtZW50RWRpdCgpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTMiPjxpIGNsYXNzPSJmYXMgZmEtc2F2ZSBtci0yIj48L2k+U2F2ZSBDaGFuZ2VzPC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gRGVwb3NpdCBSZXF1aXJlZCBNb2RhbCAtLT4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImRlcG9zaXRSZXF1aXJlZE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctc20gbS00Ij48ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi01Ij48ZGl2IGNsYXNzPSJ3LTE2IGgtMTYgYmctYW1iZXItNTAwLzEwIGJvcmRlci0yIGJvcmRlci1hbWJlci01MDAvMzAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItMyI+PGkgY2xhc3M9ImZhcyBmYS1zaGllbGQtaGFsdmVkIHRleHQtYW1iZXItNDAwIHRleHQtMnhsIj48L2k+PC9kaXY+PGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5FbnRyeSBDYXBpdGFsaXphdGlvbiBSZXF1aXJlZDwvaDM+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBtdC0xIj5TdGFydCB5b3VyIGludmVzdG1lbnQgam91cm5leTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMC81MCByb3VuZGVkLXhsIHAtNCBtYi00Ij48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIHRleHQtY2VudGVyIG1iLTMiPlRvIGFjdGl2YXRlIGFueSBpbnZlc3RtZW50IHBsYW4sIGEgbWluaW11bSA8c3Ryb25nIGNsYXNzPSJ0ZXh0LWFtYmVyLTQwMCI+SW5pdGlhbCBDYXBpdGFsIFJlcXVpcmVtZW50PC9zdHJvbmc+IG9mIDxzdHJvbmcgY2xhc3M9InRleHQtYW1iZXItNDAwIj4kNzUwPC9zdHJvbmc+IGlzIHJlcXVpcmVkLjwvcD48ZGl2IGNsYXNzPSJzcGFjZS15LTIiPjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20iPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj5Zb3UgaGF2ZSBkZXBvc2l0ZWQ8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtYW1iZXItNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXBvc2l0UmVxRGVwb3NpdGVkIj4kMC4wMDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJoLXB4IGJnLWdyYXktNzAwIj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+U3RpbGwgbmVlZGVkPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXBvc2l0UmVxUmVtYWluaW5nIj4kNzUwLjAwPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20iPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj5EZXBvc2l0IGluIGNyeXB0bzwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIj48c3BhbiBpZD0iZGVwb3NpdFJlcUNyeXB0b0Ftb3VudCI+MDwvc3Bhbj4gPHNwYW4gaWQ9ImRlcG9zaXRSZXFDcnlwdG9TeW1ib2wiPlVTRFQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC0zIG1iLTQiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48Y29kZSBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGZsZXgtMSBicmVhay1hbGwiIGlkPSJkZXBvc2l0UmVxV2FsbGV0Ij4tLTwvY29kZT48YnV0dG9uIG9uY2xpY2s9ImNvcHlEZXBvc2l0UmVxV2FsbGV0KCkiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGhvdmVyOnRleHQtd2hpdGUgdGV4dC1zbSI+PGkgY2xhc3M9ImZhcyBmYS1jb3B5Ij48L2k+PC9idXR0b24+PC9kaXY+PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJnb1RvRGVwb3NpdEZyb21JbnZlc3QoKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS0zIG1iLTIiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IG1yLTIiPjwvaT5NYWtlIERlcG9zaXQ8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9ImNsb3NlRGVwb3NpdFJlcXVpcmVkTW9kYWwoKSIgY2xhc3M9InctZnVsbCBweS0yIHRleHQtc20gdGV4dC1ncmF5LTUwMCBob3Zlcjp0ZXh0LXdoaXRlIj5DYW5jZWw8L2J1dHRvbj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBDb252ZXJzaW9uIFByb2dyZXNzIE1vZGFsIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0iY29udmVyc2lvblByb2dyZXNzTW9kYWwiIGNsYXNzPSJtb2RhbCBoaWRkZW4iPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNiB3LWZ1bGwgbWF4LXctc20gbS00IHRleHQtY2VudGVyIj48ZGl2IGNsYXNzPSJtYi00Ij48ZGl2IGNsYXNzPSJ3LTE2IGgtMTYgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tYmx1ZS02MDAgdG8tcHVycGxlLTYwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTMiPjxpIGlkPSJjb252ZXJzaW9uU3RlcEljb24iIGNsYXNzPSJmYXMgZmEtZmlsZS1zaWduYXR1cmUgdGV4dC13aGl0ZSB0ZXh0LXhsIj48L2k+PC9kaXY+PHAgaWQ9ImNvbnZlcnNpb25TdGVwTGFiZWwiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkNvbmZpcm1pbmcgdHJhbnNhY3Rpb24uLi48L3A+PC9kaXY+PGRpdiBjbGFzcz0ibWItNCI+PHAgaWQ9ImNvbnZlcnNpb25Qcm9ncmVzc1N0YXR1cyIgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMiI+Q29udmVydGluZy4uLjwvcD48ZGl2IGNsYXNzPSJoLTMgYmctZ3JheS04MDAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiI+PGRpdiBpZD0iY29udmVyc2lvblByb2dyZXNzQmFyIiBjbGFzcz0iaC1mdWxsIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tYmx1ZS01MDAgdmlhLXB1cnBsZS01MDAgdG8tZW1lcmFsZC01MDAgdHJhbnNpdGlvbi1hbGwiIHN0eWxlPSJ3aWR0aDowJSI+PC9kaXY+PC9kaXY+PHAgaWQ9ImNvbnZlcnNpb25Qcm9ncmVzc1BlcmNlbnQiIGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSBtdC0yIj4wJTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMC81MCByb3VuZGVkLXhsIHAtMyBtYi00Ij48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMiI+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RnJvbTwvc3Bhbj48c3BhbiBpZD0iY29udlByb2dyZXNzRnJvbSIgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4tLTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteS0xIj48aSBjbGFzcz0iZmFzIGZhLWFycm93LWRvd24gdGV4dC1ncmF5LTUwMCB0ZXh0LXhzIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Ubzwvc3Bhbj48c3BhbiBpZD0iY29udlByb2dyZXNzVG8iIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1lbWVyYWxkLTQwMCI+LS08L3NwYW4+PC9kaXY+PC9kaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0zIj5Fc3RpbWF0ZWQ6IDxzcGFuIGlkPSJjb252ZXJzaW9uRXN0VGltZSI+fjUgbWluPC9zcGFuPjwvcD48YnV0dG9uIG9uY2xpY2s9ImNsb3NlQ29udmVyc2lvbk1vZGFsKCkiIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC13aGl0ZSBweC00IHB5LTIgcm91bmRlZC1sZyBob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWFsbCI+Q2xvc2U8L2J1dHRvbj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBGbG9hdGluZyBDaGF0IEJ1dHRvbiAtLT4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImZsb2F0aW5nQ2hhdEJ0biIgY2xhc3M9ImZsb2F0aW5nLWNoYXQtYnRuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGkgY2xhc3M9ImZhcyBmYS1jb21tZW50LWRvdHMiPjwvaT48c3BhbiBpZD0iZmxvYXRpbmdDaGF0QmFkZ2UiIGNsYXNzPSJmbG9hdGluZy1jaGF0LWJhZGdlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+MDwvc3Bhbj48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8c2NyaXB0Pg0KICAgICAgICBjb25zdCBBUElfVVJMID0gJ2h0dHBzOi8vcGxhdGludW1nbG9iYWxleGNoYW5nZS5jb20vYXBpJzsNCiAgICAgICAgbGV0IGN1cnJlbnRVc2VyID0gbnVsbCwgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKSwgaXNBZG1pbiA9IGZhbHNlLCBjdXJyZW50U2VjdGlvbiA9ICdkYXNoYm9hcmQnLCB0cmFkZVNpZGUgPSAnYnV5Jywgc2VsZWN0ZWRDcnlwdG8gPSAnYnRjJzsNCiAgICAgICAgbGV0IGNyeXB0b0RhdGEgPSB7DQogICAgICAgICAgICBidGM6IHsgbmFtZTogJ0JpdGNvaW4nLCBzeW1ib2w6ICdCVEMnLCBwcmljZTogOTYwMDAuMDAsIGNoYW5nZTogMC4zMiwgdm9sdW1lOiAzODUwMDAwMDAwMCwgbWFya2V0Q2FwOiAxODk1MDAwMDAwMDAwLCBpY29uOiAnPGkgY2xhc3M9ImZhYiBmYS1iaXRjb2luIj48L2k+JywgY29sb3I6ICdidGMnLCBjZ0lkOiAnYml0Y29pbicsIGxhc3RVcGRhdGVkOiAwIH0sDQogICAgICAgICAgICBldGg6IHsgbmFtZTogJ0V0aGVyZXVtJywgc3ltYm9sOiAnRVRIJywgcHJpY2U6IDIzNTAuMDAsIGNoYW5nZTogMC44NSwgdm9sdW1lOiAxNTIwMDAwMDAwMCwgbWFya2V0Q2FwOiAyODIwMDAwMDAwMDAsIGljb246ICc8aSBjbGFzcz0iZmFiIGZhLWV0aGVyZXVtIj48L2k+JywgY29sb3I6ICdldGgnLCBjZ0lkOiAnZXRoZXJldW0nLCBsYXN0VXBkYXRlZDogMCB9LA0KICAgICAgICAgICAgeHJwOiB7IG5hbWU6ICdYUlAnLCBzeW1ib2w6ICdYUlAnLCBwcmljZTogMi4yNSwgY2hhbmdlOiAxLjEyLCB2b2x1bWU6IDMyMDAwMDAwMDAsIG1hcmtldENhcDogMTI4MDAwMDAwMDAwLCBpY29uOiAnPHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE4LjUgNEwxMiAxMC41TDUuNSA0SDJsMTAgMTBMMjIgNGgtMy41eiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNNS41IDIwTDEyIDEzLjVMMTguNSAyMEgyMkwxMiAxMEwyIDIwaDMuNXoiIGZpbGw9IndoaXRlIi8+PC9zdmc+JywgY29sb3I6ICd4cnAnLCBjZ0lkOiAncmlwcGxlJywgbGFzdFVwZGF0ZWQ6IDAgfSwNCiAgICAgICAgICAgIHNvbDogeyBuYW1lOiAnU29sYW5hJywgc3ltYm9sOiAnU09MJywgcHJpY2U6IDE0OC4wMCwgY2hhbmdlOiAyLjQ1LCB2b2x1bWU6IDQ4MDAwMDAwMDAsIG1hcmtldENhcDogNjgwMDAwMDAwMDAsIGljb246ICc8c3ZnIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBkPSJNNCAxNS41TDggMTEuNUwxMiAxNS41TDIwIDcuNSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik00IDguNUw4IDQuNUwxMiA4LjVMMjAgMC41IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIwLjUiLz48L3N2Zz4nLCBjb2xvcjogJ3NvbCcsIGNnSWQ6ICdzb2xhbmEnLCBsYXN0VXBkYXRlZDogMCB9LA0KICAgICAgICAgICAgYm5iOiB7IG5hbWU6ICdCTkInLCBzeW1ib2w6ICdCTkInLCBwcmljZTogNjEwLjAwLCBjaGFuZ2U6IC0wLjE1LCB2b2x1bWU6IDEyMDAwMDAwMDAsIG1hcmtldENhcDogODkwMDAwMDAwMDAsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjgwMDsiPkI8L3NwYW4+JywgY29sb3I6ICdibmInLCBjZ0lkOiAnYmluYW5jZWNvaW4nLCBsYXN0VXBkYXRlZDogMCB9LA0KICAgICAgICAgICAgYWRhOiB7IG5hbWU6ICdDYXJkYW5vJywgc3ltYm9sOiAnQURBJywgcHJpY2U6IDAuMzYsIGNoYW5nZTogMS42OCwgdm9sdW1lOiA0ODAwMDAwMDAsIG1hcmtldENhcDogMTI4MDAwMDAwMDAsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPuKCszwvc3Bhbj4nLCBjb2xvcjogJ2FkYScsIGNnSWQ6ICdjYXJkYW5vJywgbGFzdFVwZGF0ZWQ6IDAgfSwNCiAgICAgICAgICAgIHVzZHQ6IHsgbmFtZTogJ1RldGhlcicsIHN5bWJvbDogJ1VTRFQnLCBwcmljZTogMS4wMCwgY2hhbmdlOiAwLjAwLCB2b2x1bWU6IDYyMDAwMDAwMDAwLCBtYXJrZXRDYXA6IDk1MDAwMDAwMDAwLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JywgY29sb3I6ICd1c2R0JywgY2dJZDogJ3RldGhlcicsIGxhc3RVcGRhdGVkOiAwIH0sDQogICAgICAgICAgICB1c2RjOiB7IG5hbWU6ICdVU0QgQ29pbicsIHN5bWJvbDogJ1VTREMnLCBwcmljZTogMS4wMCwgY2hhbmdlOiAwLjAwLCB2b2x1bWU6IDU4MDAwMDAwMDAsIG1hcmtldENhcDogMzIwMDAwMDAwMDAsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPiQ8L3NwYW4+JywgY29sb3I6ICd1c2RjJywgY2dJZDogJ3VzZC1jb2luJywgbGFzdFVwZGF0ZWQ6IDAgfQ0KICAgICAgICB9Ow0KICAgICAgICBjb25zdCB3YWxsZXRBZGRyZXNzZXMgPSB7IGJ0YzogJ2JjMXFrdnVjNzl5dGN3NzM0M3lrbnAzZnlhNHV3d2Q0ajJ3YTc3ZnRudScsIGV0aDogJzB4NzFDNzY1NkVDN2FiODhiMDk4ZGVmQjc1MUI3NDAxQjVmNmQ4OTc2RicsIHVzZHQ6ICdUOXlEMTROajlqN3hBQjRkYkdlaVg5aDh1bmtLSHh1V3diJywgdXNkYzogJzB4NzFDNzY1NkVDN2FiODhiMDk4ZGVmQjc1MUI3NDAxQjVmNmQ4OTc2RicsIGJuYjogJ2JuYjFncnBmMDk1NWgweWt6cTNhcjVubXBoN3hmN3phMmUwcjZsMHo4ZScgfTsNCiAgICAgICAgY29uc3QgY29pbkdlY2tvTWFwID0geyBiaXRjb2luOiAnYnRjJywgZXRoZXJldW06ICdldGgnLCByaXBwbGU6ICd4cnAnLCBzb2xhbmE6ICdzb2wnLCBiaW5hbmNlY29pbjogJ2JuYicsIGNhcmRhbm86ICdhZGEnIH07DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hMaXZlUHJpY2VzKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCdodHRwczovL2FwaS5jb2luZ2Vja28uY29tL2FwaS92My9jb2lucy9tYXJrZXRzP3ZzX2N1cnJlbmN5PXVzZCZpZHM9Yml0Y29pbixldGhlcmV1bSxyaXBwbGUsc29sYW5hLGJpbmFuY2Vjb2luLGNhcmRhbm8mcHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2U9MjRoJyk7DQogICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgbmV3IEVycm9yKCdQcmljZSBBUEkgZmFpbGVkJyk7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTsNCiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goY29pbiA9PiB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN5bWJvbCA9IGNvaW5HZWNrb01hcFtjb2luLmlkXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHN5bWJvbCAmJiBjcnlwdG9EYXRhW3N5bWJvbF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNyeXB0b0RhdGFbc3ltYm9sXS5wcmljZSA9IGNvaW4uY3VycmVudF9wcmljZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNyeXB0b0RhdGFbc3ltYm9sXS5jaGFuZ2UgPSBjb2luLnByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aCB8fCAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgY3J5cHRvRGF0YVtzeW1ib2xdLnZvbHVtZSA9IGNvaW4udG90YWxfdm9sdW1lIHx8IGNyeXB0b0RhdGFbc3ltYm9sXS52b2x1bWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG9EYXRhW3N5bWJvbF0ubWFya2V0Q2FwID0gY29pbi5tYXJrZXRfY2FwIHx8IGNyeXB0b0RhdGFbc3ltYm9sXS5tYXJrZXRDYXA7DQogICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG9EYXRhW3N5bWJvbF0ubGFzdFVwZGF0ZWQgPSBEYXRlLm5vdygpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkQ3J5cHRvICYmIGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxlY3RlZENyeXB0b1ByaWNlJyk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGVkQ3J5cHRvQ2hhbmdlJyk7DQogICAgICAgICAgICAgICAgICAgIGlmIChwcmljZUVsKSBwcmljZUVsLnRleHRDb250ZW50ID0gJyQnICsgYy5wcmljZS50b0xvY2FsZVN0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlRWwpIHsgY2hhbmdlRWwudGV4dENvbnRlbnQgPSAoYy5jaGFuZ2UgPj0gMCA/ICcrJyA6ICcnKSArIGMuY2hhbmdlLnRvRml4ZWQoMikgKyAnJSc7IGNoYW5nZUVsLmNsYXNzTmFtZSA9IGMuY2hhbmdlID49IDAgPyAndGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtJyA6ICd0ZXh0LXJvc2UtNDAwIHRleHQtc20gZm9udC1tZWRpdW0nOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbiA9PT0gJ2Rhc2hib2FyZCcpIHsgdXBkYXRlRGFzaGJvYXJkU3RhdHMoKTsgbG9hZERhc2hib2FyZCgpOyB9DQogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTZWN0aW9uID09PSAnbWFya2V0JykgeyBsb2FkTWFya2V0KCk7IH0NCiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNlY3Rpb24gPT09ICd0cmFkZScpIHsgbG9hZE9yZGVyQm9vaygpOyB1cGRhdGVDb252ZXJ0UHJldmlldygpOyB1cGRhdGVGdXR1cmVzUHJpY2UoKTsgfQ0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbiA9PT0gJ2ludmVzdCcpIHsgbG9hZEludmVzdG1lbnRzKCk7IH0NCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0xpdmUgcHJpY2UgZmV0Y2ggZmFpbGVkLCB1c2luZyBjYWNoZWQgcHJpY2VzOicsIGVycm9yLm1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZldGNoTGl2ZVByaWNlcygpOw0KICAgICAgICBzZXRJbnRlcnZhbChmZXRjaExpdmVQcmljZXMsIDMwMDAwKTsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBhcGlDYWxsKGVuZHBvaW50LCBvcHRpb25zID0ge30pIHsNCiAgICAgICAgICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludC5zdWJzdHJpbmcoMSkgOiBlbmRwb2ludDsNCiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke0FQSV9VUkx9LyR7Y2xlYW5FbmRwb2ludH1gOw0KICAgICAgICAgICAgY29uc29sZS5sb2coJ0FQSSBDYWxsOicsIHVybCwgJ2JvZHk6Jywgb3B0aW9ucy5ib2R5KTsNCiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHsgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAuLi4oYXV0aFRva2VuID8geyAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGF1dGhUb2tlbiB9IDoge30pLCAuLi5vcHRpb25zLmhlYWRlcnMgfSwgLi4ub3B0aW9ucyB9Ow0KICAgICAgICAgICAgaWYgKGNvbmZpZy5ib2R5ICYmIHR5cGVvZiBjb25maWcuYm9keSA9PT0gJ29iamVjdCcpIGNvbmZpZy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnLmJvZHkpOw0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgY29uZmlnKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQVBJIFJlc3BvbnNlIHN0YXR1czonLCByZXNwb25zZS5zdGF0dXMpOw0KICAgICAgICAgICAgICAgIGxldCBkYXRhOw0KICAgICAgICAgICAgICAgIHRyeSB7IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7IH0gY2F0Y2ggKGUpIHsgZGF0YSA9IHsgZXJyb3I6ICdJbnZhbGlkIEpTT04gcmVzcG9uc2UnIH07IH0NCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQVBJIFJlc3BvbnNlIGRhdGE6JywgZGF0YSk7DQogICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykgeyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKGRhdGEuZXJyb3IgfHwgZGF0YS5tZXNzYWdlIHx8IGBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke3Jlc3BvbnNlLnN0YXR1c31gKTsgDQogICAgICAgICAgICAgICAgICAgIGVyci5yZXNwb25zZURhdGEgPSBkYXRhOyANCiAgICAgICAgICAgICAgICAgICAgZXJyLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1czsgDQogICAgICAgICAgICAgICAgICAgIHRocm93IGVycjsgDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOw0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignQVBJIEVycm9yOicsIGVycm9yKTsgdGhyb3cgZXJyb3I7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHNob3dTZWN0aW9uKHNlY3Rpb24pIHsNCiAgICAgICAgICAgIFsnZGFzaGJvYXJkJywgJ21hcmtldCcsICd0cmFkZScsICdpbnZlc3QnLCAnd2FsbGV0cycsICdhZG1pbiddLmZvckVhY2gocyA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzICsgJ1NlY3Rpb24nKSwgbmF2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdicgKyBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSk7DQogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgaWYgKG5hdikgbmF2LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uICsgJ1NlY3Rpb24nKSwgc2VsTmF2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdicgKyBzZWN0aW9uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc2VjdGlvbi5zbGljZSgxKSk7DQogICAgICAgICAgICBpZiAoc2VsKSBzZWwuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IGlmIChzZWxOYXYpIHNlbE5hdi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbjsNCiAgICAgICAgICAgIGlmIChzZWN0aW9uID09PSAnZGFzaGJvYXJkJykgeyBsb2FkVXNlckRhdGEoKTsgc3RhcnRQb3J0Zm9saW9DaGFydCgpOyBzdGFydE5ld3NBdXRvUmVmcmVzaCgpOyB9IGVsc2UgeyBzdG9wUG9ydGZvbGlvQ2hhcnQoKTsgc3RvcE5ld3NBdXRvUmVmcmVzaCgpOyB9IGlmIChzZWN0aW9uID09PSAnd2FsbGV0cycpIHsgdXBkYXRlRGVwb3NpdFBheXBhbFZpc2liaWxpdHkoKTsgfQ0KICAgICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdtYXJrZXQnKSB7IGxvYWRNYXJrZXQoKTsgc3RhcnRNYXJrZXRDaGFydEFuaW1hdGlvbigpOyB9IGVsc2UgeyBzdG9wTWFya2V0Q2hhcnRBbmltYXRpb24oKTsgfQ0KICAgICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICd3YWxsZXRzJykgeyBsb2FkV2FsbGV0cygpOyBsb2FkTXlEZXBvc2l0cygpOyB9IGlmIChzZWN0aW9uID09PSAndHJhZGUnKSB7IGxvYWRPcmRlckJvb2soKTsgdXBkYXRlQ29udmVydFByZXZpZXcoKTsgdXBkYXRlRnV0dXJlc1ByaWNlKCk7IGxvYWRDb252ZXJzaW9uSGlzdG9yeSgpOyB9IGlmIChzZWN0aW9uID09PSAnaW52ZXN0JykgeyBsb2FkUGxhbnMoKTsgbG9hZEludmVzdG1lbnRzKCk7IH0gaWYgKHNlY3Rpb24gPT09ICdhZG1pbicpIHsgbG9hZEFkbWluQ3VzdG9tZXJzKCk7IGxvYWRBZG1pbldpdGhkcmF3YWxzKCk7IGxvYWRBZG1pbkRlcG9zaXRzKCk7IGxvYWRBZG1pblBhc3N3b3JkUmVzZXRSZXF1ZXN0cygpOyBsb2FkQWRtaW5DaGF0Q29udmVyc2F0aW9ucygpOyBsb2FkQWRtaW5Qcm9maXRXaXRoZHJhd2FscygpOyBsb2FkUmVmZXJyYWxDb2RlcygpOyBsb2FkQWRtaW5QYXlwYWxFbWFpbCgpOyB9DQogICAgICAgICAgICBjb25zdCBjaGF0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJ0bicpOyBpZiAoY2hhdEJ0bikgY2hhdEJ0bi5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2hvd0xhbmRpbmcoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYW5kaW5nUGFnZScpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdXRoU2NyZWVuJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5BcHAnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBjb25zdCBjaGF0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJ0bicpOyBpZiAoY2hhdEJ0bikgY2hhdEJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyB9DQogICAgICAgIGZ1bmN0aW9uIHNob3dBdXRoKHR5cGUpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xhbmRpbmdQYWdlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhTY3JlZW4nKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbkFwcCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IHN3aXRjaEF1dGgodHlwZSk7IGNvbnN0IGNoYXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXRpbmdDaGF0QnRuJyk7IGlmIChjaGF0QnRuKSBjaGF0QnRuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH0NCiAgICAgICAgZnVuY3Rpb24gc3dpdGNoQXV0aCh0eXBlKSB7DQogICAgICAgICAgICBjb25zdCBsb2dpblRhYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dpblRhYicpLCByZWdpc3RlclRhYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWdpc3RlclRhYicpLCBsb2dpbkZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9naW5Gb3JtJyksIHJlZ2lzdGVyRm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWdpc3RlckZvcm0nKTsNCiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbG9naW4nKSB7IGxvZ2luVGFiLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyByZWdpc3RlclRhYi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgbG9naW5Gb3JtLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyByZWdpc3RlckZvcm0uY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0NCiAgICAgICAgICAgIGVsc2UgeyByZWdpc3RlclRhYi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgbG9naW5UYWIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7IHJlZ2lzdGVyRm9ybS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgbG9naW5Gb3JtLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBoYW5kbGVMb2dpbihlKSB7DQogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICBjb25zdCBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dpbkVtYWlsJykudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksIHBhc3N3b3JkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luUGFzc3dvcmQnKS52YWx1ZTsNCiAgICAgICAgICAgIGNvbnN0IGtlZXBTaWduZWRJbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZWVwU2lnbmVkSW4nKT8uY2hlY2tlZCB8fCBmYWxzZTsNCiAgICAgICAgICAgIGNvbnN0IGVycm9yRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luRXJyb3InKTsNCiAgICAgICAgICAgIGlmIChlcnJvckRpdikgZXJyb3JEaXYuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhdXRoL2xvZ2luJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbCwgcGFzc3dvcmQgfSB9KTsNCiAgICAgICAgICAgICAgICBhdXRoVG9rZW4gPSBkYXRhLnRva2VuOyBjdXJyZW50VXNlciA9IGRhdGEudXNlcjsgaXNBZG1pbiA9IGRhdGEudXNlci5yb2xlID09PSAnYWRtaW4nOw0KICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVRva2VuJywgYXV0aFRva2VuKTsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BsYXRpbnVtVXNlcicsIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRVc2VyKSk7DQogICAgICAgICAgICAgICAgaWYgKGtlZXBTaWduZWRJbikgew0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nLCAndHJ1ZScpOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1MYXN0QWN0aXZlJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKTsNCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbnRlclBsYXRmb3JtKGRhdGEudXNlcik7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAgICAgICAgIGlmIChlcnJvckRpdikgZXJyb3JEaXYuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCBjb3VudHJ5RGF0YSA9IHsNCiAgICAgICAgICAgICdVUyc6e25hbWU6J1VuaXRlZCBTdGF0ZXMnLGNvZGU6JysxJyxtaW46MTB9LCdDQSc6e25hbWU6J0NhbmFkYScsY29kZTonKzEnLG1pbjoxMH0sJ0dCJzp7bmFtZTonVW5pdGVkIEtpbmdkb20nLGNvZGU6Jys0NCcsbWluOjEwfSwnQVUnOntuYW1lOidBdXN0cmFsaWEnLGNvZGU6Jys2MScsbWluOjl9LCdERSc6e25hbWU6J0dlcm1hbnknLGNvZGU6Jys0OScsbWluOjEwfSwnRlInOntuYW1lOidGcmFuY2UnLGNvZGU6JyszMycsbWluOjl9LCdJVCc6e25hbWU6J0l0YWx5Jyxjb2RlOicrMzknLG1pbjo5fSwnRVMnOntuYW1lOidTcGFpbicsY29kZTonKzM0JyxtaW46OX0sJ05MJzp7bmFtZTonTmV0aGVybGFuZHMnLGNvZGU6JyszMScsbWluOjl9LCdCRSc6e25hbWU6J0JlbGdpdW0nLGNvZGU6JyszMicsbWluOjl9LCdDSCc6e25hbWU6J1N3aXR6ZXJsYW5kJyxjb2RlOicrNDEnLG1pbjo5fSwnQVQnOntuYW1lOidBdXN0cmlhJyxjb2RlOicrNDMnLG1pbjoxMH0sJ1NFJzp7bmFtZTonU3dlZGVuJyxjb2RlOicrNDYnLG1pbjo5fSwnTk8nOntuYW1lOidOb3J3YXknLGNvZGU6Jys0NycsbWluOjh9LCdESyc6e25hbWU6J0Rlbm1hcmsnLGNvZGU6Jys0NScsbWluOjh9LCdGSSc6e25hbWU6J0ZpbmxhbmQnLGNvZGU6JyszNTgnLG1pbjo5fSwnSUUnOntuYW1lOidJcmVsYW5kJyxjb2RlOicrMzUzJyxtaW46OX0sJ1BUJzp7bmFtZTonUG9ydHVnYWwnLGNvZGU6JyszNTEnLG1pbjo5fSwnR1InOntuYW1lOidHcmVlY2UnLGNvZGU6JyszMCcsbWluOjEwfSwnUEwnOntuYW1lOidQb2xhbmQnLGNvZGU6Jys0OCcsbWluOjl9LCdDWic6e25hbWU6J0N6ZWNoIFJlcHVibGljJyxjb2RlOicrNDIwJyxtaW46OX0sJ0hVJzp7bmFtZTonSHVuZ2FyeScsY29kZTonKzM2JyxtaW46OX0sJ1JPJzp7bmFtZTonUm9tYW5pYScsY29kZTonKzQwJyxtaW46OX0sJ0JHJzp7bmFtZTonQnVsZ2FyaWEnLGNvZGU6JyszNTknLG1pbjo5fSwnSFInOntuYW1lOidDcm9hdGlhJyxjb2RlOicrMzg1JyxtaW46OX0sJ1NLJzp7bmFtZTonU2xvdmFraWEnLGNvZGU6Jys0MjEnLG1pbjo5fSwnU0knOntuYW1lOidTbG92ZW5pYScsY29kZTonKzM4NicsbWluOjl9LCdMVCc6e25hbWU6J0xpdGh1YW5pYScsY29kZTonKzM3MCcsbWluOjh9LCdMVic6e25hbWU6J0xhdHZpYScsY29kZTonKzM3MScsbWluOjh9LCdFRSc6e25hbWU6J0VzdG9uaWEnLGNvZGU6JyszNzInLG1pbjo3fSwnTFUnOntuYW1lOidMdXhlbWJvdXJnJyxjb2RlOicrMzUyJyxtaW46OX0sJ01UJzp7bmFtZTonTWFsdGEnLGNvZGU6JyszNTYnLG1pbjo4fSwnQ1knOntuYW1lOidDeXBydXMnLGNvZGU6JyszNTcnLG1pbjo4fSwnSVMnOntuYW1lOidJY2VsYW5kJyxjb2RlOicrMzU0JyxtaW46N30sJ0pQJzp7bmFtZTonSmFwYW4nLGNvZGU6Jys4MScsbWluOjEwfSwnS1InOntuYW1lOidTb3V0aCBLb3JlYScsY29kZTonKzgyJyxtaW46MTB9LCdDTic6e25hbWU6J0NoaW5hJyxjb2RlOicrODYnLG1pbjoxMX0sJ0lOJzp7bmFtZTonSW5kaWEnLGNvZGU6Jys5MScsbWluOjEwfSwnU0cnOntuYW1lOidTaW5nYXBvcmUnLGNvZGU6Jys2NScsbWluOjh9LCdISyc6e25hbWU6J0hvbmcgS29uZycsY29kZTonKzg1MicsbWluOjh9LCdNWSc6e25hbWU6J01hbGF5c2lhJyxjb2RlOicrNjAnLG1pbjo5fSwnVEgnOntuYW1lOidUaGFpbGFuZCcsY29kZTonKzY2JyxtaW46OX0sJ0lEJzp7bmFtZTonSW5kb25lc2lhJyxjb2RlOicrNjInLG1pbjoxMH0sJ1BIJzp7bmFtZTonUGhpbGlwcGluZXMnLGNvZGU6Jys2MycsbWluOjEwfSwnVk4nOntuYW1lOidWaWV0bmFtJyxjb2RlOicrODQnLG1pbjo5fSwnQUUnOntuYW1lOidVQUUnLGNvZGU6Jys5NzEnLG1pbjo5fSwnU0EnOntuYW1lOidTYXVkaSBBcmFiaWEnLGNvZGU6Jys5NjYnLG1pbjo5fSwnUUEnOntuYW1lOidRYXRhcicsY29kZTonKzk3NCcsbWluOjh9LCdLVyc6e25hbWU6J0t1d2FpdCcsY29kZTonKzk2NScsbWluOjh9LCdCSCc6e25hbWU6J0JhaHJhaW4nLGNvZGU6Jys5NzMnLG1pbjo4fSwnT00nOntuYW1lOidPbWFuJyxjb2RlOicrOTY4JyxtaW46OH0sJ0lMJzp7bmFtZTonSXNyYWVsJyxjb2RlOicrOTcyJyxtaW46OX0sJ1RSJzp7bmFtZTonVHVya2V5Jyxjb2RlOicrOTAnLG1pbjoxMH0sJ0JSJzp7bmFtZTonQnJhemlsJyxjb2RlOicrNTUnLG1pbjoxMX0sJ0FSJzp7bmFtZTonQXJnZW50aW5hJyxjb2RlOicrNTQnLG1pbjoxMH0sJ0NMJzp7bmFtZTonQ2hpbGUnLGNvZGU6Jys1NicsbWluOjl9LCdDTyc6e25hbWU6J0NvbG9tYmlhJyxjb2RlOicrNTcnLG1pbjoxMH0sJ1BFJzp7bmFtZTonUGVydScsY29kZTonKzUxJyxtaW46OX0sJ1ZFJzp7bmFtZTonVmVuZXp1ZWxhJyxjb2RlOicrNTgnLG1pbjoxMH0sJ1VZJzp7bmFtZTonVXJ1Z3VheScsY29kZTonKzU5OCcsbWluOjh9LCdQWSc6e25hbWU6J1BhcmFndWF5Jyxjb2RlOicrNTk1JyxtaW46OX0sJ0JPJzp7bmFtZTonQm9saXZpYScsY29kZTonKzU5MScsbWluOjh9LCdFQyc6e25hbWU6J0VjdWFkb3InLGNvZGU6Jys1OTMnLG1pbjo5fSwnTVgnOntuYW1lOidNZXhpY28nLGNvZGU6Jys1MicsbWluOjEwfSwnUEEnOntuYW1lOidQYW5hbWEnLGNvZGU6Jys1MDcnLG1pbjo4fSwnQ1InOntuYW1lOidDb3N0YSBSaWNhJyxjb2RlOicrNTA2JyxtaW46OH0sJ0dUJzp7bmFtZTonR3VhdGVtYWxhJyxjb2RlOicrNTAyJyxtaW46OH0sJ0hOJzp7bmFtZTonSG9uZHVyYXMnLGNvZGU6Jys1MDQnLG1pbjo4fSwnU1YnOntuYW1lOidFbCBTYWx2YWRvcicsY29kZTonKzUwMycsbWluOjh9LCdOSSc6e25hbWU6J05pY2FyYWd1YScsY29kZTonKzUwNScsbWluOjh9LCdETyc6e25hbWU6J0RvbWluaWNhbiBSZXB1YmxpYycsY29kZTonKzEnLG1pbjoxMH0sJ0pNJzp7bmFtZTonSmFtYWljYScsY29kZTonKzEnLG1pbjoxMH0sJ0JTJzp7bmFtZTonQmFoYW1hcycsY29kZTonKzEnLG1pbjoxMH0sJ0JCJzp7bmFtZTonQmFyYmFkb3MnLGNvZGU6JysxJyxtaW46MTB9LCdUVCc6e25hbWU6J1RyaW5pZGFkICYgVG9iYWdvJyxjb2RlOicrMScsbWluOjEwfSwnTlonOntuYW1lOidOZXcgWmVhbGFuZCcsY29kZTonKzY0JyxtaW46OX0sJ0ZKJzp7bmFtZTonRmlqaScsY29kZTonKzY3OScsbWluOjd9LCdQRyc6e25hbWU6J1BhcHVhIE5ldyBHdWluZWEnLGNvZGU6Jys2NzUnLG1pbjo3fSwnUlUnOntuYW1lOidSdXNzaWEnLGNvZGU6Jys3JyxtaW46MTB9LCdVQSc6e25hbWU6J1VrcmFpbmUnLGNvZGU6JyszODAnLG1pbjo5fSwnQlknOntuYW1lOidCZWxhcnVzJyxjb2RlOicrMzc1JyxtaW46OX0sJ01EJzp7bmFtZTonTW9sZG92YScsY29kZTonKzM3MycsbWluOjh9LCdHRSc6e25hbWU6J0dlb3JnaWEnLGNvZGU6Jys5OTUnLG1pbjo5fSwnQU0nOntuYW1lOidBcm1lbmlhJyxjb2RlOicrMzc0JyxtaW46OH0sJ0FaJzp7bmFtZTonQXplcmJhaWphbicsY29kZTonKzk5NCcsbWluOjl9LCdLWic6e25hbWU6J0themFraHN0YW4nLGNvZGU6Jys3JyxtaW46MTB9LCdVWic6e25hbWU6J1V6YmVraXN0YW4nLGNvZGU6Jys5OTgnLG1pbjo5fSwnS0cnOntuYW1lOidLeXJneXpzdGFuJyxjb2RlOicrOTk2JyxtaW46OX0sJ1RKJzp7bmFtZTonVGFqaWtpc3RhbicsY29kZTonKzk5MicsbWluOjl9LCdUTSc6e25hbWU6J1R1cmttZW5pc3RhbicsY29kZTonKzk5MycsbWluOjh9LCdQSyc6e25hbWU6J1Bha2lzdGFuJyxjb2RlOicrOTInLG1pbjoxMH0sJ0JEJzp7bmFtZTonQmFuZ2xhZGVzaCcsY29kZTonKzg4MCcsbWluOjEwfSwnTEsnOntuYW1lOidTcmkgTGFua2EnLGNvZGU6Jys5NCcsbWluOjl9LCdOUCc6e25hbWU6J05lcGFsJyxjb2RlOicrOTc3JyxtaW46MTB9LCdNTSc6e25hbWU6J015YW5tYXInLGNvZGU6Jys5NScsbWluOjh9LCdLSCc6e25hbWU6J0NhbWJvZGlhJyxjb2RlOicrODU1JyxtaW46OH0sJ0xBJzp7bmFtZTonTGFvcycsY29kZTonKzg1NicsbWluOjl9LCdCTic6e25hbWU6J0JydW5laScsY29kZTonKzY3MycsbWluOjd9LCdNTic6e25hbWU6J01vbmdvbGlhJyxjb2RlOicrOTc2JyxtaW46OH0sJ1RXJzp7bmFtZTonVGFpd2FuJyxjb2RlOicrODg2JyxtaW46OX0sJ01PJzp7bmFtZTonTWFjYXUnLGNvZGU6Jys4NTMnLG1pbjo4fQ0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNvdW50cnlDb2RlKGNvdW50cnlDb2RlKSB7DQogICAgICAgICAgICBjb25zdCBwaG9uZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ1Bob25lJyk7DQogICAgICAgICAgICBjb25zdCBjb2RlRGlzcGxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudHJ5Q29kZURpc3BsYXknKTsNCiAgICAgICAgICAgIGNvbnN0IGhpbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGhvbmVIaW50Jyk7DQogICAgICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnQ291bnRyeScpOw0KICAgICAgICAgICAgY29uc3Qgb3B0ID0gc2VsLm9wdGlvbnNbc2VsLnNlbGVjdGVkSW5kZXhdOw0KICAgICAgICAgICAgaWYgKCFjb3VudHJ5Q29kZSB8fCAhY291bnRyeURhdGFbY291bnRyeUNvZGVdKSB7DQogICAgICAgICAgICAgICAgcGhvbmVJbnB1dC5kaXNhYmxlZCA9IHRydWU7IHBob25lSW5wdXQucGxhY2Vob2xkZXIgPSAnU2VsZWN0IGNvdW50cnkgZmlyc3QnOyBwaG9uZUlucHV0LnZhbHVlID0gJyc7DQogICAgICAgICAgICAgICAgY29kZURpc3BsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgaGludC50ZXh0Q29udGVudCA9ICdTZWxlY3QgeW91ciBjb3VudHJ5IHRvIGVuYWJsZSBwaG9uZSBlbnRyeSc7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgZGF0YSA9IGNvdW50cnlEYXRhW2NvdW50cnlDb2RlXTsNCiAgICAgICAgICAgIHBob25lSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsgcGhvbmVJbnB1dC5wbGFjZWhvbGRlciA9ICdFbnRlciBwaG9uZSBudW1iZXInOw0KICAgICAgICAgICAgY29kZURpc3BsYXkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IGNvZGVEaXNwbGF5LnRleHRDb250ZW50ID0gZGF0YS5jb2RlOw0KICAgICAgICAgICAgcGhvbmVJbnB1dC5zdHlsZS5wYWRkaW5nTGVmdCA9IChjb2RlRGlzcGxheS5vZmZzZXRXaWR0aCArIDI0KSArICdweCc7DQogICAgICAgICAgICBoaW50LnRleHRDb250ZW50ID0gZGF0YS5uYW1lICsgJyBudW1iZXJzIGFyZSB0eXBpY2FsbHkgJyArIGRhdGEubWluICsgJyBkaWdpdHMnOw0KICAgICAgICAgICAgcGhvbmVJbnB1dC5mb2N1cygpOw0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmVnaXN0ZXIoZSkgew0KICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ0ZpcnN0TmFtZScpLnZhbHVlLnRyaW0oKSwgbGFzdE5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnTGFzdE5hbWUnKS52YWx1ZS50cmltKCksIGNvdW50cnlDb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ0NvdW50cnknKS52YWx1ZSwgcGhvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnUGhvbmUnKS52YWx1ZS50cmltKCksIGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ0VtYWlsJykudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksIHBhc3N3b3JkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ1Bhc3N3b3JkJykudmFsdWUsIGNvbmZpcm1QYXNzd29yZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWdDb25maXJtUGFzc3dvcmQnKS52YWx1ZSwgcmVmZXJyYWxDb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ1JlZmVycmFsQ29kZScpPy52YWx1ZT8udHJpbSgpIHx8ICcnOw0KICAgICAgICAgICAgaWYgKCFjb3VudHJ5Q29kZSkgeyBzaG93QWxlcnQoJ1BsZWFzZSBzZWxlY3QgeW91ciBjb3VudHJ5JywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICAgICAgaWYgKHBhc3N3b3JkICE9PSBjb25maXJtUGFzc3dvcmQpIHsgc2hvd0FsZXJ0KCdQYXNzd29yZHMgZG8gbm90IG1hdGNoJywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICAgICAgaWYgKHBhc3N3b3JkLmxlbmd0aCA8IDgpIHsgc2hvd0FsZXJ0KCdQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycycsICdlcnJvcicpOyByZXR1cm4gZmFsc2U7IH0NCiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBjb3VudHJ5RGF0YVtjb3VudHJ5Q29kZV07DQogICAgICAgICAgICBjb25zdCBkaWdpdHNPbmx5ID0gcGhvbmUucmVwbGFjZSgvXEQvZywgJycpOw0KICAgICAgICAgICAgaWYgKGRpZ2l0c09ubHkubGVuZ3RoIDwgZGF0YS5taW4pIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCAnICsgZGF0YS5uYW1lICsgJyBwaG9uZSBudW1iZXIgKCcgKyBkYXRhLm1pbiArICcrIGRpZ2l0cyknLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRQaG9uZSA9IGRhdGEuY29kZSArIGRpZ2l0c09ubHk7DQogICAgICAgICAgICBjb25zdCBib2R5ID0geyBuYW1lOiBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWV9YCwgZW1haWwsIHBhc3N3b3JkLCBwaG9uZTogZm9ybWF0dGVkUGhvbmUsIGNvdW50cnk6IGRhdGEubmFtZSwgY291bnRyeUNvZGU6IGRhdGEuY29kZSB9Ow0KICAgICAgICAgICAgaWYgKHJlZmVycmFsQ29kZSkgYm9keS5yZWZlcnJhbENvZGUgPSByZWZlcnJhbENvZGU7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwaUNhbGwoJ2F1dGgvcmVnaXN0ZXInLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5IH0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXN1bHQucmVmZXJyYWxCb251cykgew0KICAgICAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ0FjY291bnQgY3JlYXRlZCEgUmVmZXJyYWwgYm9udXMgb2YgJyArIHJlc3VsdC5yZWZlcnJhbEJvbnVzLmFtb3VudCArICcgJyArIHJlc3VsdC5yZWZlcnJhbEJvbnVzLmN1cnJlbmN5LnRvVXBwZXJDYXNlKCkgKyAnIGNyZWRpdGVkIScsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgc2hvd0FsZXJ0KCdBY2NvdW50IGNyZWF0ZWQhIFBsZWFzZSBsb2cgaW4uJywgJ3N1Y2Nlc3MnKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgc3dpdGNoQXV0aCgnbG9naW4nKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydChlcnJvci5tZXNzYWdlIHx8ICdSZWdpc3RyYXRpb24gZmFpbGVkJywgJ2Vycm9yJyk7IH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGVudGVyUGxhdGZvcm0odXNlckRhdGEpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYW5kaW5nUGFnZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXV0aFNjcmVlbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbkFwcCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOw0KICAgICAgICAgICAgY29uc3QgY2hhdEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9hdGluZ0NoYXRCdG4nKTsNCiAgICAgICAgICAgIGlmIChjaGF0QnRuKSB7IGNoYXRCdG4uc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsgaW5pdENoYXRCdXR0b25EcmFnKCk7IH0NCiAgICAgICAgICAgIGlmICh1c2VyRGF0YSkgeyBjdXJyZW50VXNlciA9IHVzZXJEYXRhOyBpc0FkbWluID0gdXNlckRhdGEucm9sZSA9PT0gJ2FkbWluJzsgfQ0KICAgICAgICAgICAgLy8gUmVmcmVzaCB1c2VyIGRhdGEgZnJvbSBBUEkgdG8gZ2V0IGxhdGVzdCBuYW1lL3Byb2ZpbGUgY2hhbmdlcw0KICAgICAgICAgICAgaWYgKGF1dGhUb2tlbikgew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyZXNoID0gYXdhaXQgYXBpQ2FsbCgnYXV0aC9tZScpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZnJlc2gudXNlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFVzZXIgPSBmcmVzaC51c2VyOw0KICAgICAgICAgICAgICAgICAgICAgICAgaXNBZG1pbiA9IGZyZXNoLnVzZXIucm9sZSA9PT0gJ2FkbWluJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVVzZXInLCBKU09OLnN0cmluZ2lmeShjdXJyZW50VXNlcikpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyAvKiB1c2UgY2FjaGVkIGRhdGEgKi8gfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdXBkYXRlUHJvZmlsZURpc3BsYXkoKTsNCiAgICAgICAgICAgIHVwZGF0ZUJhbGFuY2VEaXNwbGF5KCk7DQogICAgICAgICAgICBzaG93QWRtaW5OYXYoKTsNCiAgICAgICAgICAgIHNob3dTZWN0aW9uKCdkYXNoYm9hcmQnKTsNCiAgICAgICAgICAgIGxvYWREYXNoYm9hcmQoKTsNCiAgICAgICAgICAgIGxvYWRUcmFuc2FjdGlvbnMoKTsNCiAgICAgICAgICAgIHNldEludGVydmFsKGNoZWNrVW5yZWFkTWVzc2FnZXMsIDEwMDAwKTsNCg0KICAgICAgICAgICAgLy8gVHJhY2sgdXNlciBhY3Rpdml0eSBmb3IgNDhoIHNlc3Npb24gZXhwaXJ5DQogICAgICAgICAgICBbJ2NsaWNrJywgJ3RvdWNoc3RhcnQnLCAnc2Nyb2xsJywgJ2tleWRvd24nXS5mb3JFYWNoKGV2dCA9PiB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldnQsIHRyYWNrQWN0aXZpdHksIHsgcGFzc2l2ZTogdHJ1ZSB9KTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgLy8gQ2hlY2sgZXhwaXJ5IGV2ZXJ5IDUgbWludXRlcw0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKSA9PT0gJ3RydWUnICYmIGlzU2Vzc2lvbkV4cGlyZWQoKSkgew0KICAgICAgICAgICAgICAgICAgICBsb2dvdXQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LCAzMDAwMDApOw0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFVzZXJEYXRhKCkgew0KICAgICAgICAgICAgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsgaWYgKCFhdXRoVG9rZW4pIHJldHVybjsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2F1dGgvbWUnKTsNCiAgICAgICAgICAgICAgICBjdXJyZW50VXNlciA9IGRhdGEudXNlcjsgaXNBZG1pbiA9IGRhdGEudXNlcj8ucm9sZSA9PT0gJ2FkbWluJzsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1Vc2VyJywgSlNPTi5zdHJpbmdpZnkoY3VycmVudFVzZXIpKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVCYWxhbmNlRGlzcGxheSgpOyB1cGRhdGVQcm9maWxlRGlzcGxheSgpOyByZXR1cm4gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChlcnJvcikgeyBpZiAoZXJyb3IubWVzc2FnZSAmJiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnNDAxJykgfHwgZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnQWNjZXNzIGRlbmllZCcpKSkgbG9nb3V0KCk7IHRocm93IGVycm9yOyB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVCYWxhbmNlRGlzcGxheSgpIHsgaWYgKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLndhbGxldHMpIHsgbGV0IHRvdGFsID0gMDsgT2JqZWN0LmVudHJpZXMoY3VycmVudFVzZXIud2FsbGV0cykuZm9yRWFjaCgoW2MsIHddKSA9PiB7IGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbY107IHRvdGFsICs9ICh3LmJhbGFuY2UgfHwgMCkgKiAoY3J5cHRvID8gY3J5cHRvLnByaWNlIDogMSk7IH0pOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxCYWxhbmNlJykudGV4dENvbnRlbnQgPSAnJCcgKyB0b3RhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FsbGV0VG90YWxCYWxhbmNlJykudGV4dENvbnRlbnQgPSAnJCcgKyB0b3RhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOyB9IH0NCiAgICAgICAgZnVuY3Rpb24gb3BlbkNoYW5nZVBhc3N3b3JkTW9kYWwoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFuZ2VQYXNzd29yZE1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdXJyZW50UGFzc3dvcmQnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGFzc3dvcmQnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybU5ld1Bhc3N3b3JkJykudmFsdWUgPSAnJzsgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBoYW5kbGVDaGFuZ2VQYXNzd29yZChlKSB7IGUucHJldmVudERlZmF1bHQoKTsgY29uc3QgY3VycmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdXJyZW50UGFzc3dvcmQnKS52YWx1ZSwgbmV3UGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQYXNzd29yZCcpLnZhbHVlLCBjb25maXJtUGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtTmV3UGFzc3dvcmQnKS52YWx1ZTsgaWYgKG5ld1Bhc3MgIT09IGNvbmZpcm1QYXNzKSB7IHNob3dBbGVydCgnTmV3IHBhc3N3b3JkcyBkbyBub3QgbWF0Y2gnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9IGlmIChuZXdQYXNzLmxlbmd0aCA8IDYpIHsgc2hvd0FsZXJ0KCdOZXcgcGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9IHRyeSB7IGF3YWl0IGFwaUNhbGwoJ2F1dGgvY2hhbmdlLXBhc3N3b3JkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBjdXJyZW50UGFzc3dvcmQ6IGN1cnJlbnQsIG5ld1Bhc3N3b3JkOiBuZXdQYXNzIH0gfSk7IHNob3dBbGVydCgnUGFzc3dvcmQgY2hhbmdlZCBzdWNjZXNzZnVsbHkhIFBsZWFzZSBsb2cgaW4gYWdhaW4uJywgJ3N1Y2Nlc3MnKTsgY2xvc2VNb2RhbCgnY2hhbmdlUGFzc3dvcmRNb2RhbCcpOyBzZXRUaW1lb3V0KGxvZ291dCwgMTUwMCk7IH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnUGFzc3dvcmQgY2hhbmdlIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICBsZXQgcmVzZXRFbWFpbCA9ICcnOw0KICAgICAgICBmdW5jdGlvbiBvcGVuRm9yZ290UGFzc3dvcmRNb2RhbCgpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdFBhc3N3b3JkTW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdEVtYWlsU2VjdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290Q29kZVNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290RW1haWwnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290Q29kZUlucHV0JykudmFsdWUgPSAnJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdE5ld1Bhc3N3b3JkJykudmFsdWUgPSAnJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdENvbmZpcm1QYXNzd29yZCcpLnZhbHVlID0gJyc7IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc3VibWl0Rm9yZ290UGFzc3dvcmQoKSB7IGNvbnN0IGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdEVtYWlsJykudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7IGlmICghZW1haWwgfHwgIWVtYWlsLmluY2x1ZGVzKCdAJykpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJywgJ2Vycm9yJyk7IHJldHVybjsgfSB0cnkgeyBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnYXV0aC9mb3Jnb3QtcGFzc3dvcmQnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IGVtYWlsOiBlbWFpbCB9IH0pOyByZXNldEVtYWlsID0gZW1haWw7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jnb3RFbWFpbFNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290Q29kZVNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsgc2hvd0FsZXJ0KGRhdGEubWVzc2FnZSwgJ3N1Y2Nlc3MnKTsgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBnZW5lcmF0ZSBjb2RlJywgJ2Vycm9yJyk7IH0gfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBzdWJtaXRSZXNldFBhc3N3b3JkKCkgeyBjb25zdCBjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdENvZGVJbnB1dCcpLnZhbHVlLnRyaW0oKTsgY29uc3QgbmV3UGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jnb3ROZXdQYXNzd29yZCcpLnZhbHVlOyBjb25zdCBjb25maXJtUGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jnb3RDb25maXJtUGFzc3dvcmQnKS52YWx1ZTsgaWYgKGNvZGUubGVuZ3RoICE9PSA2IHx8ICEvXlxkezZ9JC8udGVzdChjb2RlKSkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIDYtZGlnaXQgY29kZScsICdlcnJvcicpOyByZXR1cm47IH0gaWYgKG5ld1Bhc3MubGVuZ3RoIDwgNikgeyBzaG93QWxlcnQoJ1Bhc3N3b3JkIG11c3QgYmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzJywgJ2Vycm9yJyk7IHJldHVybjsgfSBpZiAobmV3UGFzcyAhPT0gY29uZmlybVBhc3MpIHsgc2hvd0FsZXJ0KCdQYXNzd29yZHMgZG8gbm90IG1hdGNoJywgJ2Vycm9yJyk7IHJldHVybjsgfSB0cnkgeyBhd2FpdCBhcGlDYWxsKCdhdXRoL3Jlc2V0LXBhc3N3b3JkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbDogcmVzZXRFbWFpbCwgY29kZTogY29kZSwgbmV3UGFzc3dvcmQ6IG5ld1Bhc3MgfSB9KTsgc2hvd0FsZXJ0KCdQYXNzd29yZCByZXNldCBzdWNjZXNzZnVsISBQbGVhc2UgbG9nIGluIHdpdGggeW91ciBuZXcgcGFzc3dvcmQuJywgJ3N1Y2Nlc3MnKTsgY2xvc2VNb2RhbCgnZm9yZ290UGFzc3dvcmRNb2RhbCcpOyBzd2l0Y2hBdXRoKCdsb2dpbicpOyB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ1Jlc2V0IGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluUGFzc3dvcmRSZXNldFJlcXVlc3RzKCkgeyBpZiAoIWlzQWRtaW4pIHJldHVybjsgdHJ5IHsgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL3Bhc3N3b3JkLXJlc2V0LXJlcXVlc3RzJyk7IGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBhc3N3b3JkUmVzZXRDb250YWluZXInKTsgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5SZXNldEJhZGdlJyk7IGlmICghY29udGFpbmVyKSByZXR1cm47IGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgY29uc3QgcmVxdWVzdHMgPSBkYXRhLnJlcXVlc3RzIHx8IFtdOyBpZiAocmVxdWVzdHMubGVuZ3RoID09PSAwKSB7IGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2stY2lyY2xlIHRleHQtNHhsIG1iLTMgdGV4dC1lbWVyYWxkLTUwMCI+PC9pPjxwPk5vIHBlbmRpbmcgcGFzc3dvcmQgcmVzZXQgcmVxdWVzdHM8L3A+PC9kaXY+JzsgaWYgKGJhZGdlKSBiYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgcmV0dXJuOyB9IGxldCBodG1sID0gJzxkaXYgY2xhc3M9InNwYWNlLXktMyI+JzsgcmVxdWVzdHMuZm9yRWFjaChyID0+IHsgY29uc3QgZXhwaXJlcyA9IG5ldyBEYXRlKHIuZXhwaXJlc0F0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IGNvbnN0IHBob25lRGlzcGxheSA9IHIudXNlclBob25lIHx8IHIucGhvbmUgfHwgJ04vQSc7IGh0bWwgKz0gYDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIj48ZGl2IGNsYXNzPSJtYi0zIj48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4ke3IudXNlck5hbWUgfHwgJ1Vua25vd24nfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke3IuZW1haWx9PC9wPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG10LTIgcC0yIGJnLWVtZXJhbGQtNTAwLzEwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1lbWVyYWxkLTUwMC8yMCI+PGkgY2xhc3M9ImZhcyBmYS1waG9uZSB0ZXh0LWVtZXJhbGQtNDAwIj48L2k+PHAgY2xhc3M9InRleHQtc20gdGV4dC1lbWVyYWxkLTQwMCBmb250LXNlbWlib2xkIj4ke3Bob25lRGlzcGxheX08L3A+PC9kaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1hbWJlci00MDAgbXQtMiI+PGkgY2xhc3M9ImZhcyBmYS1zbXMgbXItMSI+PC9pPlNlbmQgdGhlIDYtZGlnaXQgY29kZSB0byB0aGlzIHBob25lIG51bWJlciB2aWEgU01TL3RleHQgbWVzc2FnZTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMyBtYi0yIHRleHQtY2VudGVyIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTEiPjYtRGlnaXQgVmVyaWZpY2F0aW9uIENvZGU8L3A+PHAgY2xhc3M9InRleHQtM3hsIGZvbnQtYm9sZCB0ZXh0LWFtYmVyLTQwMCB0cmFja2luZy13aWRlc3QiIGlkPSJyZXNldENvZGVfJHtyLmlkfSI+JHtyLmNvZGV9PC9wPjxidXR0b24gb25jbGljaz0ibmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoJyR7ci5jb2RlfScpLnRoZW4oKCk9PnNob3dBbGVydCgnQ29kZSBjb3BpZWQgdG8gY2xpcGJvYXJkJywnc3VjY2VzcycpKSIgY2xhc3M9Im10LTIgdGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIj48aSBjbGFzcz0iZmFzIGZhLWNvcHkgbXItMSI+PC9pPkNvcHkgQ29kZTwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCI+PHNwYW4+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayBtci0xIj48L2k+RXhwaXJlczogJHtleHBpcmVzfTwvc3Bhbj48L2Rpdj48L2Rpdj5gOyB9KTsgaHRtbCArPSAnPC9kaXY+JzsgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7IGlmIChiYWRnZSkgeyBiYWRnZS50ZXh0Q29udGVudCA9IHJlcXVlc3RzLmxlbmd0aDsgYmFkZ2UuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0gfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgcmVzZXQgcmVxdWVzdHM6JywgZXJyb3IpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5QYXNzd29yZFJlc2V0Q29udGFpbmVyJykuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5GYWlsZWQgdG8gbG9hZCByZXNldCByZXF1ZXN0czwvcD48L2Rpdj4nOyB9IH0NCiAgICAgICAgZnVuY3Rpb24gZGVsZXRlQ3VzdG9tZXIodXNlcklkLCB1c2VyTmFtZSkgeyBpZiAoIWlzQWRtaW4pIHJldHVybjsgc2hvd0NvbmZpcm1Nb2RhbCgnV0FSTklORzogVGhpcyB3aWxsIHBlcm1hbmVudGx5IGRlbGV0ZSAnICsgdXNlck5hbWUgKyAnIGFuZCBBTEwgdGhlaXIgZGF0YS4gVGhpcyBjYW5ub3QgYmUgdW5kb25lLiBDb250aW51ZT8nLCBmdW5jdGlvbigpIHsgZG9EZWxldGVDdXN0b21lcih1c2VySWQsIHVzZXJOYW1lKTsgfSk7IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9EZWxldGVDdXN0b21lcih1c2VySWQsIHVzZXJOYW1lKSB7IHRyeSB7IGF3YWl0IGFwaUNhbGwoJ2FkbWluL3VzZXJzL2RlbGV0ZScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgdXNlcklkOiB1c2VySWQgfSB9KTsgc2hvd0FsZXJ0KHVzZXJOYW1lICsgJyBkZWxldGVkIHN1Y2Nlc3NmdWxseS4nLCAnc3VjY2VzcycpOyBsb2FkQWRtaW5DdXN0b21lcnMoKTsgbG9hZEFkbWluQ2hhdENvbnZlcnNhdGlvbnMoKTsgbG9hZEFkbWluUGFzc3dvcmRSZXNldFJlcXVlc3RzKCk7IH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRGVsZXRlIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9naW5Bc0N1c3RvbWVyKHVzZXJJZCkgew0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47DQogICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKCdMb2dpbiBhcyB0aGlzIGN1c3RvbWVyPyBZb3Ugd2lsbCBiZSBsb2dnZWQgb3V0IG9mIGFkbWluIGFuZCBsb2dnZWQgaW4gYXMgdGhpcyBjdXN0b21lci4nLCBmdW5jdGlvbigpIHsgZG9Mb2dpbkFzQ3VzdG9tZXIodXNlcklkKTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9Mb2dpbkFzQ3VzdG9tZXIodXNlcklkKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi91c2Vycy9pbXBlcnNvbmF0ZScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgdXNlcklkOiB1c2VySWQgfSB9KTsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YS50b2tlbiAmJiBkYXRhLnVzZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYWRtaW5SZXR1cm5Ub2tlbicsIGF1dGhUb2tlbik7DQogICAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2FkbWluUmV0dXJuVXNlcicsIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRVc2VyKSk7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVRva2VuJywgZGF0YS50b2tlbik7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVVzZXInLCBKU09OLnN0cmluZ2lmeShkYXRhLnVzZXIpKTsNCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BsYXRpbnVtSW1wZXJzb25hdGluZycsICd0cnVlJyk7DQogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0xvZ2luIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbG9nb3V0KCkgew0KICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUltcGVyc29uYXRpbmcnKSA9PT0gJ3RydWUnKSB7DQogICAgICAgICAgICAgICAgY29uc3QgYWRtaW5Ub2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2FkbWluUmV0dXJuVG9rZW4nKTsNCiAgICAgICAgICAgICAgICBjb25zdCBhZG1pblVzZXIgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhZG1pblJldHVyblVzZXInKTsNCiAgICAgICAgICAgICAgICBpZiAoYWRtaW5Ub2tlbiAmJiBhZG1pblVzZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnYWRtaW5SZXR1cm5Ub2tlbicpOw0KICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhZG1pblJldHVyblVzZXInKTsNCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtSW1wZXJzb25hdGluZycpOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1Ub2tlbicsIGFkbWluVG9rZW4pOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1Vc2VyJywgYWRtaW5Vc2VyKTsNCiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtVXNlcicpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKTsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1HdWVzdENoYXQnKTsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtSW1wZXJzb25hdGluZycpOyBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhZG1pblJldHVyblRva2VuJyk7IHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2FkbWluUmV0dXJuVXNlcicpOyBjdXJyZW50VXNlciA9IG51bGw7IGF1dGhUb2tlbiA9IG51bGw7IGd1ZXN0Q2hhdEluZm8gPSBudWxsOyBzaG93QXV0aCgnbG9naW4nKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWREYXNoYm9hcmQoKSB7DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGFzaGJvYXJkQ3J5cHRvTGlzdCcpOyBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICBPYmplY3QuZW50cmllcyhjcnlwdG9EYXRhKS5zbGljZSgwLCA0KS5mb3JFYWNoKChba2V5LCBjcnlwdG9dKSA9PiB7IGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkaXYuY2xhc3NOYW1lID0gJ2NyeXB0by1saXN0LWl0ZW0nOyBkaXYub25jbGljayA9ICgpID0+IHsgc2VsZWN0ZWRDcnlwdG8gPSBrZXk7IHNob3dTZWN0aW9uKCd0cmFkZScpOyB9OyBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImNyeXB0by1pY29uICR7Y3J5cHRvLmNvbG9yfSB0ZXh0LWxnIG1yLTMiPiR7Y3J5cHRvLmljb259PC9kaXY+PGRpdiBjbGFzcz0iZmxleC0xIj48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4ke2NyeXB0by5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPiR7Y3J5cHRvLm5hbWV9PC9wPjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiQke2NyeXB0by5wcmljZS50b0xvY2FsZVN0cmluZygpfTwvcD48cCBjbGFzcz0idGV4dC1zbSAke2NyeXB0by5jaGFuZ2UgPj0gMCA/ICd0cmVuZC11cCcgOiAndHJlbmQtZG93bid9Ij4ke2NyeXB0by5jaGFuZ2UgPj0gMCA/ICcrJyA6ICcnfSR7Y3J5cHRvLmNoYW5nZS50b0ZpeGVkKDIpfSU8L3A+PC9kaXY+YDsgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IH0pOw0KICAgICAgICAgICAgc3RhcnRQb3J0Zm9saW9DaGFydCgpOyB1cGRhdGVEYXNoYm9hcmRTdGF0cygpOyBmZXRjaENyeXB0b05ld3MoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IG5ld3NBcnRpY2xlUG9vbCA9IFsNCiAgICAgICAgICAgIHt0aXRsZTonQml0Y29pbiBTdXJnZXMgUGFzdCAkODEsMDAwIGFzIEluc3RpdHV0aW9uYWwgQnV5aW5nIEFjY2VsZXJhdGVzJywgYm9keTonQml0Y29pbiBoYXMgYnJva2VuIGFib3ZlIHRoZSAkODEsMDAwIHJlc2lzdGFuY2UgbGV2ZWwgYXMgaW5zdGl0dXRpb25hbCBpbnZlc3RvcnMgY29udGludWUgdG8gYWNjdW11bGF0ZS4gRVRGIGluZmxvd3MgcmVhY2hlZCAkODkwTSB0aGlzIHdlZWsuJywgdXJsOidodHRwczovL3d3dy5jb2luZGVzay5jb20nLCBzb3VyY2U6J0NvaW5EZXNrJywgY2F0ZWdvcmllczonQlRDJ30sDQogICAgICAgICAgICB7dGl0bGU6J0V0aGVyZXVtIDIuMCBTdGFraW5nIFJld2FyZHMgSGl0IEFsbC1UaW1lIEhpZ2gnLCBib2R5OidFdGhlcmV1bSBzdGFraW5nIHJld2FyZHMgaGF2ZSByZWFjaGVkIGEgbmV3IGFsbC10aW1lIGhpZ2ggb2YgNC4yJSBBUFIgZm9sbG93aW5nIHRoZSBsYXRlc3QgbmV0d29yayB1cGdyYWRlIGFuZCBpbmNyZWFzZWQgdmFsaWRhdG9yIHBhcnRpY2lwYXRpb24uJywgdXJsOidodHRwczovL2NvaW50ZWxlZ3JhcGguY29tJywgc291cmNlOidDb2ludGVsZWdyYXBoJywgY2F0ZWdvcmllczonRVRIJ30sDQogICAgICAgICAgICB7dGl0bGU6J1NvbGFuYSBEZUZpIFRWTCBDcm9zc2VzICQ4IEJpbGxpb24gTWlsZXN0b25lJywgYm9keTonVG90YWwgVmFsdWUgTG9ja2VkIG9uIFNvbGFuYSBoYXMgc3VycGFzc2VkICQ4IGJpbGxpb24sIGRyaXZlbiBieSBncm93aW5nIGFkb3B0aW9uIG9mIEp1cGl0ZXIsIE1hcmluYWRlLCBhbmQgS2FtaW5vIEZpbmFuY2UgcHJvdG9jb2xzLicsIHVybDonaHR0cHM6Ly9kZWNyeXB0LmNvJywgc291cmNlOidEZWNyeXB0JywgY2F0ZWdvcmllczonRGVGaSd9LA0KICAgICAgICAgICAge3RpdGxlOidTRUMgQXBwcm92ZXMgU3BvdCBFdGhlcmV1bSBFVEZzIGZvciBUcmFkaW5nJywgYm9keTonVGhlIFUuUy4gU2VjdXJpdGllcyBhbmQgRXhjaGFuZ2UgQ29tbWlzc2lvbiBoYXMgb2ZmaWNpYWxseSBhcHByb3ZlZCBzcG90IEV0aGVyZXVtIEVURnMsIG1hcmtpbmcgYSBoaXN0b3JpYyBtaWxlc3RvbmUgZm9yIHRoZSBjcnlwdG8gaW5kdXN0cnkuJywgdXJsOidodHRwczovL3d3dy5yZXV0ZXJzLmNvbScsIHNvdXJjZTonUmV1dGVycycsIGNhdGVnb3JpZXM6J1JlZ3VsYXRpb24nfSwNCiAgICAgICAgICAgIHt0aXRsZTonUmlwcGxlIEV4cGFuZHMgQ3Jvc3MtQm9yZGVyIFBheW1lbnQgTmV0d29yayB0byBBc2lhJywgYm9keTonUmlwcGxlIGhhcyBhbm5vdW5jZWQgcGFydG5lcnNoaXBzIHdpdGggdGhyZWUgbWFqb3IgQXNpYW4gYmFua3MgdG8gZXhwYW5kIGl0cyBPbi1EZW1hbmQgTGlxdWlkaXR5IHNlcnZpY2UgdXNpbmcgWFJQIGZvciBpbnN0YW50IGNyb3NzLWJvcmRlciBzZXR0bGVtZW50cy4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidYUlAnfSwNCiAgICAgICAgICAgIHt0aXRsZTonTWljcm9TdHJhdGVneSBBY3F1aXJlcyBBZGRpdGlvbmFsIDEyLDAwMCBCaXRjb2luJywgYm9keTonTWljaGFlbCBTYXlsb3JcJ3MgTWljcm9TdHJhdGVneSBoYXMgcHVyY2hhc2VkIGFuIGFkZGl0aW9uYWwgMTIsMDAwIEJUQyBmb3IgJDc4ME0sIGJyaW5naW5nIHRoZWlyIHRvdGFsIGhvbGRpbmdzIHRvIG92ZXIgMjA1LDAwMCBCaXRjb2luLicsIHVybDonaHR0cHM6Ly93d3cuY29pbmRlc2suY29tJywgc291cmNlOidDb2luRGVzaycsIGNhdGVnb3JpZXM6J0JUQyd9LA0KICAgICAgICAgICAge3RpdGxlOidCaW5hbmNlIExhdW5jaGVzIE5ldyBaZXJvLUZlZSBUcmFkaW5nIFByb21vdGlvbicsIGJvZHk6J0JpbmFuY2UgaGFzIGFubm91bmNlZCBhIG5ldyB6ZXJvLWZlZSB0cmFkaW5nIHByb21vdGlvbiBmb3Igc3BvdCBtYXJrZXRzLCBjb3ZlcmluZyBvdmVyIDIwMCB0cmFkaW5nIHBhaXJzIGZvciBhIGxpbWl0ZWQgdGltZSBwZXJpb2QuJywgdXJsOidodHRwczovL2NvaW50ZWxlZ3JhcGguY29tJywgc291cmNlOidDb2ludGVsZWdyYXBoJywgY2F0ZWdvcmllczonVHJhZGluZyd9LA0KICAgICAgICAgICAge3RpdGxlOidDYXJkYW5vIEh5ZHJhIFVwZ3JhZGUgUHJvY2Vzc2VzIDFNIFRQUyBpbiBUZXN0bmV0JywgYm9keTonQ2FyZGFub1wncyBMYXllciAyIHNjYWxpbmcgc29sdXRpb24gSHlkcmEgaGFzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQgb3ZlciAxIG1pbGxpb24gdHJhbnNhY3Rpb25zIHBlciBzZWNvbmQgaW4gdGhlIGxhdGVzdCB0ZXN0bmV0IGRlcGxveW1lbnQuJywgdXJsOidodHRwczovL2RlY3J5cHQuY28nLCBzb3VyY2U6J0RlY3J5cHQnLCBjYXRlZ29yaWVzOidUZWNobm9sb2d5J30sDQogICAgICAgICAgICB7dGl0bGU6J0NvaW5iYXNlIFJlcG9ydHMgJDEuMkIgUmV2ZW51ZSBpbiBRMiBFYXJuaW5ncycsIGJvZHk6J0NvaW5iYXNlIGhhcyBleGNlZWRlZCBhbmFseXN0IGV4cGVjdGF0aW9ucyB3aXRoICQxLjIgYmlsbGlvbiBpbiBxdWFydGVybHkgcmV2ZW51ZSwgZHJpdmVuIGJ5IGluY3JlYXNlZCB0cmFkaW5nIHZvbHVtZSBhbmQgc3Vic2NyaXB0aW9uIHNlcnZpY2VzLicsIHVybDonaHR0cHM6Ly93d3cucmV1dGVycy5jb20nLCBzb3VyY2U6J1JldXRlcnMnLCBjYXRlZ29yaWVzOidUcmFkaW5nJ30sDQogICAgICAgICAgICB7dGl0bGU6J0phcGFuIEFwcHJvdmVzIE5ldyBTdGFibGVjb2luIFJlZ3VsYXRvcnkgRnJhbWV3b3JrJywgYm9keTonSmFwYW5cJ3MgRmluYW5jaWFsIFNlcnZpY2VzIEFnZW5jeSBoYXMgYXBwcm92ZWQgYSBjb21wcmVoZW5zaXZlIHJlZ3VsYXRvcnkgZnJhbWV3b3JrIGZvciBzdGFibGVjb2luIGlzc3VlcnMsIHJlcXVpcmluZyAxMDAlIHJlc2VydmUgYmFja2luZy4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidSZWd1bGF0aW9uJ30sDQogICAgICAgICAgICB7dGl0bGU6J0JsYWNrUm9jayBCaXRjb2luIEVURiBCZWNvbWVzIExhcmdlc3QgRnVuZCBHbG9iYWxseScsIGJvZHk6J0JsYWNrUm9ja1wncyBJQklUIGhhcyBzdXJwYXNzZWQgR3JheXNjYWxlIHRvIGJlY29tZSB0aGUgd29ybGRcJ3MgbGFyZ2VzdCBCaXRjb2luIGZ1bmQgd2l0aCBvdmVyICQyNSBiaWxsaW9uIGluIGFzc2V0cyB1bmRlciBtYW5hZ2VtZW50LicsIHVybDonaHR0cHM6Ly93d3cuY29pbmRlc2suY29tJywgc291cmNlOidDb2luRGVzaycsIGNhdGVnb3JpZXM6J0JUQyd9LA0KICAgICAgICAgICAge3RpdGxlOidBdmFsYW5jaGUgU3VibmV0IEFkb3B0aW9uIEdyb3dzIDMwMCUgVGhpcyBRdWFydGVyJywgYm9keTonRW50ZXJwcmlzZSBhZG9wdGlvbiBvZiBBdmFsYW5jaGUgc3VibmV0cyBoYXMgZ3Jvd24gYnkgMzAwJSB0aGlzIHF1YXJ0ZXIsIHdpdGggbWFqb3IgZ2FtaW5nIGFuZCBEZUZpIHByb2plY3RzIGxhdW5jaGluZyBkZWRpY2F0ZWQgY2hhaW5zLicsIHVybDonaHR0cHM6Ly9kZWNyeXB0LmNvJywgc291cmNlOidEZWNyeXB0JywgY2F0ZWdvcmllczonVGVjaG5vbG9neSd9LA0KICAgICAgICAgICAge3RpdGxlOidQYXlQYWwgRXhwYW5kcyBDcnlwdG8gU2VydmljZXMgdG8gRXVyb3BlYW4gTWFya2V0cycsIGJvZHk6J1BheVBhbCBoYXMgcm9sbGVkIG91dCBpdHMgY3J5cHRvY3VycmVuY3kgYnV5LCBob2xkLCBhbmQgc2VsbCBmZWF0dXJlcyB0byAyOCBFdXJvcGVhbiBjb3VudHJpZXMsIGluY2x1ZGluZyBHZXJtYW55LCBGcmFuY2UsIGFuZCBJdGFseS4nLCB1cmw6J2h0dHBzOi8vd3d3LnJldXRlcnMuY29tJywgc291cmNlOidSZXV0ZXJzJywgY2F0ZWdvcmllczonVHJhZGluZyd9LA0KICAgICAgICAgICAge3RpdGxlOidDaGFpbmxpbmsgQ0NJUCBFbmFibGVzIENyb3NzLUNoYWluIERlRmkgTGVuZGluZycsIGJvZHk6J0NoYWlubGlua1wncyBDcm9zcy1DaGFpbiBJbnRlcm9wZXJhYmlsaXR5IFByb3RvY29sIGhhcyBlbmFibGVkIHRoZSBmaXJzdCBjcm9zcy1jaGFpbiBEZUZpIGxlbmRpbmcgcGxhdGZvcm0sIGFsbG93aW5nIGNvbGxhdGVyYWwgb24gb25lIGNoYWluIGFuZCBib3Jyb3dpbmcgb24gYW5vdGhlci4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidEZUZpJ30sDQogICAgICAgICAgICB7dGl0bGU6J1NvdXRoIEtvcmVhIE1hbmRhdGVzIENyeXB0byBFeGNoYW5nZSBJbnN1cmFuY2UnLCBib2R5OidTb3V0aCBLb3JlYW4gcmVndWxhdG9ycyBub3cgcmVxdWlyZSBhbGwgbGljZW5zZWQgY3J5cHRvY3VycmVuY3kgZXhjaGFuZ2VzIHRvIG1haW50YWluIGluc3VyYW5jZSBjb3ZlcmFnZSBlcXVpdmFsZW50IHRvIDgwJSBvZiB1c2VyIGRlcG9zaXRzLicsIHVybDonaHR0cHM6Ly93d3cuY29pbmRlc2suY29tJywgc291cmNlOidDb2luRGVzaycsIGNhdGVnb3JpZXM6J1JlZ3VsYXRpb24nfSwNCiAgICAgICAgICAgIHt0aXRsZTonUG9seWdvbiB6a0VWTSBBY2hpZXZlcyA1MCUgQ29zdCBSZWR1Y3Rpb24nLCBib2R5OidQb2x5Z29uXCdzIHplcm8ta25vd2xlZGdlIEVWTSBoYXMgYWNoaWV2ZWQgYSA1MCUgcmVkdWN0aW9uIGluIHRyYW5zYWN0aW9uIGNvc3RzIGZvbGxvd2luZyBpdHMgbGF0ZXN0IG5ldHdvcmsgb3B0aW1pemF0aW9uIHVwZ3JhZGUuJywgdXJsOidodHRwczovL2RlY3J5cHQuY28nLCBzb3VyY2U6J0RlY3J5cHQnLCBjYXRlZ29yaWVzOidUZWNobm9sb2d5J30sDQogICAgICAgICAgICB7dGl0bGU6J0ZpZGVsaXR5IExhdW5jaGVzIFNwb3QgRXRoZXJldW0gRnVuZCBmb3IgSW5zdGl0dXRpb25zJywgYm9keTonRmlkZWxpdHkgSW52ZXN0bWVudHMgaGFzIGxhdW5jaGVkIGEgbmV3IHNwb3QgRXRoZXJldW0gZnVuZCBzcGVjaWZpY2FsbHkgZGVzaWduZWQgZm9yIGluc3RpdHV0aW9uYWwgaW52ZXN0b3JzIHdpdGggYSBtaW5pbXVtIGVudHJ5IG9mICQxMDAsMDAwLicsIHVybDonaHR0cHM6Ly93d3cucmV1dGVycy5jb20nLCBzb3VyY2U6J1JldXRlcnMnLCBjYXRlZ29yaWVzOidFVEgnfSwNCiAgICAgICAgICAgIHt0aXRsZTonQ3J5cHRvIE1pbmluZyBEaWZmaWN1bHR5IFJlYWNoZXMgTmV3IEFsbC1UaW1lIEhpZ2gnLCBib2R5OidCaXRjb2luIG1pbmluZyBkaWZmaWN1bHR5IGhhcyBhZGp1c3RlZCB1cHdhcmQgYnkgOC41JSB0byBhIG5ldyBhbGwtdGltZSBoaWdoIG9mIDgzIHRyaWxsaW9uLCByZWZsZWN0aW5nIGluY3JlYXNlZCBuZXR3b3JrIHNlY3VyaXR5IGFuZCBjb21wZXRpdGlvbi4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidCVEMnfSwNCiAgICAgICAgICAgIHt0aXRsZTonVW5pc3dhcCBWNCBJbnRyb2R1Y2VzIEN1c3RvbWl6YWJsZSBMaXF1aWRpdHkgSG9va3MnLCBib2R5OidVbmlzd2FwIFY0IGhhcyBsYXVuY2hlZCB3aXRoIHJldm9sdXRpb25hcnkgY3VzdG9taXphYmxlIGhvb2tzLCBhbGxvd2luZyBkZXZlbG9wZXJzIHRvIGNyZWF0ZSBiZXNwb2tlIGxpcXVpZGl0eSBwb29scyB3aXRoIHVuaXF1ZSBmZWUgc3RydWN0dXJlcy4nLCB1cmw6J2h0dHBzOi8vZGVjcnlwdC5jbycsIHNvdXJjZTonRGVjcnlwdCcsIGNhdGVnb3JpZXM6J0RlRmknfSwNCiAgICAgICAgICAgIHt0aXRsZTonRHViYWkgR3JhbnRzIEZpcnN0IEFJLVBvd2VyZWQgQ3J5cHRvIFRyYWRpbmcgTGljZW5zZScsIGJvZHk6J0R1YmFpXCdzIFZpcnR1YWwgQXNzZXRzIFJlZ3VsYXRvcnkgQXV0aG9yaXR5IGhhcyBncmFudGVkIHRoZSBmaXJzdCBsaWNlbnNlIGZvciBhbiBBSS1wb3dlcmVkIGF1dG9tYXRlZCBjcnlwdG8gdHJhZGluZyBwbGF0Zm9ybSBpbiB0aGUgTWlkZGxlIEVhc3QuJywgdXJsOidodHRwczovL3d3dy5jb2luZGVzay5jb20nLCBzb3VyY2U6J0NvaW5EZXNrJywgY2F0ZWdvcmllczonUmVndWxhdGlvbid9DQogICAgICAgIF07DQoNCiAgICAgICAgZnVuY3Rpb24gc2h1ZmZsZUFycmF5KGFycikgew0KICAgICAgICAgICAgY29uc3QgYSA9IFsuLi5hcnJdOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IGEubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgeyBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7IFthW2ldLCBhW2pdXSA9IFthW2pdLCBhW2ldXTsgfQ0KICAgICAgICAgICAgcmV0dXJuIGE7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwaWNrUmFuZG9tQXJ0aWNsZXMoKSB7DQogICAgICAgICAgICBjb25zdCBzaHVmZmxlZCA9IHNodWZmbGVBcnJheShuZXdzQXJ0aWNsZVBvb2wpOw0KICAgICAgICAgICAgY29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7DQogICAgICAgICAgICByZXR1cm4gc2h1ZmZsZWQuc2xpY2UoMCwgNSkubWFwKChhLCBpKSA9PiAoew0KICAgICAgICAgICAgICAgIC4uLmEsIHB1Ymxpc2hlZF9vbjogbm93IC0gKGkgKyAxKSAqIDQyMDAgLSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxODAwKQ0KICAgICAgICAgICAgfSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IG5ld3NSZWZyZXNoVGltZXIgPSBudWxsOw0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGZldGNoQ3J5cHRvTmV3cygpIHsNCiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFya2V0TmV3c0xpc3QnKTsNCiAgICAgICAgICAgIGlmICghbGlzdCkgcmV0dXJuOw0KICAgICAgICAgICAgbGlzdC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAgdGV4dC1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtc3Bpbm5lciBmYS1zcGluIHRleHQtZ3JheS00MDAgbXItMiI+PC9pPjxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+JzsNCg0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgJHtBUElfVVJMfS9tYXJrZXQvbmV3c2ApOw0KICAgICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ05ld3MgQVBJIGZhaWxlZCcpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFydGljbGVzID0gZGF0YS5hcnRpY2xlcyB8fCBbXTsNCiAgICAgICAgICAgICAgICBpZiAoYXJ0aWNsZXMubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1OZXdzQ2FjaGUnLCBKU09OLnN0cmluZ2lmeSh7IGFydGljbGVzLCBzYXZlZEF0OiBEYXRlLm5vdygpIH0pKTsNCiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTmV3c0FydGljbGVzKGFydGljbGVzKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9DQoNCiAgICAgICAgICAgIC8vIFVzZSByb3RhdGluZyBmYWxsYmFjayBwb29sIOKAlCBkaWZmZXJlbnQgYXJ0aWNsZXMgZXZlcnkgdGltZQ0KICAgICAgICAgICAgcmVuZGVyTmV3c0FydGljbGVzKHBpY2tSYW5kb21BcnRpY2xlcygpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0YXJ0TmV3c0F1dG9SZWZyZXNoKCkgew0KICAgICAgICAgICAgaWYgKG5ld3NSZWZyZXNoVGltZXIpIGNsZWFySW50ZXJ2YWwobmV3c1JlZnJlc2hUaW1lcik7DQogICAgICAgICAgICBuZXdzUmVmcmVzaFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbiA9PT0gJ2Rhc2hib2FyZCcpIGZldGNoQ3J5cHRvTmV3cygpOw0KICAgICAgICAgICAgfSwgMzAwMDAwKTsgLy8gcmVmcmVzaCBldmVyeSA1IG1pbnV0ZXMNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0b3BOZXdzQXV0b1JlZnJlc2goKSB7DQogICAgICAgICAgICBpZiAobmV3c1JlZnJlc2hUaW1lcikgeyBjbGVhckludGVydmFsKG5ld3NSZWZyZXNoVGltZXIpOyBuZXdzUmVmcmVzaFRpbWVyID0gbnVsbDsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcmVuZGVyTmV3c0FydGljbGVzKGFydGljbGVzKSB7DQogICAgICAgICAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcmtldE5ld3NMaXN0Jyk7DQogICAgICAgICAgICBpZiAoIWxpc3QgfHwgIWFydGljbGVzIHx8IGFydGljbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOw0KICAgICAgICAgICAgbGlzdC5pbm5lckhUTUwgPSBhcnRpY2xlcy5tYXAoKGFydGljbGUsIGlkeCkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVBZ28gPSBnZXRUaW1lQWdvKGFydGljbGUucHVibGlzaGVkX29uKTsNCiAgICAgICAgICAgICAgICBjb25zdCBpY29uQ2xhc3MgPSBnZXROZXdzSWNvbihhcnRpY2xlLmNhdGVnb3JpZXMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGdyYWRpZW50ID0gZ2V0TmV3c0dyYWRpZW50KGFydGljbGUuY2F0ZWdvcmllcyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGA8YSBocmVmPSIke2FydGljbGUudXJsfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGNsYXNzPSJuZXdzLWNhcmQgZmxleCBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCBob3ZlcjpiZy13aGl0ZS8xMCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlciBuby11bmRlcmxpbmUgYmxvY2siIHN0eWxlPSJhbmltYXRpb24tZGVsYXk6JHtpZHggKiAwLjA3fXMiPjxkaXYgY2xhc3M9InctMTYgaC0xNiByb3VuZGVkLWxnIGJnLWdyYWRpZW50LXRvLWJyICR7Z3JhZGllbnR9IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSIke2ljb25DbGFzc30gdGV4dC13aGl0ZSB0ZXh0LXhsIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iZmxleC0xIG1pbi13LTAiPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdHJ1bmNhdGUiPiR7ZXNjYXBlSHRtbChhcnRpY2xlLnRpdGxlKX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBsaW5lLWNsYW1wLTIiPiR7ZXNjYXBlSHRtbCgoYXJ0aWNsZS5ib2R5IHx8ICcnKS5zdWJzdHJpbmcoMCwgMTIwKSl9Li4uPC9wPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG10LTEiPjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAiPiR7dGltZUFnb308L3NwYW4+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj4ke2VzY2FwZUh0bWwoYXJ0aWNsZS5zb3VyY2UpfTwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+YDsNCiAgICAgICAgICAgIH0pLmpvaW4oJycpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZ2V0VGltZUFnbyh0aW1lc3RhbXApIHsNCiAgICAgICAgICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSAtIHRpbWVzdGFtcDsNCiAgICAgICAgICAgIGlmIChzZWNvbmRzIDwgNjApIHJldHVybiAnSnVzdCBub3cnOw0KICAgICAgICAgICAgaWYgKHNlY29uZHMgPCAzNjAwKSByZXR1cm4gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApICsgJ20gYWdvJzsNCiAgICAgICAgICAgIGlmIChzZWNvbmRzIDwgODY0MDApIHJldHVybiBNYXRoLmZsb29yKHNlY29uZHMgLyAzNjAwKSArICdoIGFnbyc7DQogICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihzZWNvbmRzIC8gODY0MDApICsgJ2QgYWdvJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGdldE5ld3NJY29uKGNhdGVnb3JpZXMpIHsNCiAgICAgICAgICAgIGNvbnN0IGNhdCA9IChjYXRlZ29yaWVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygnYnRjJykgfHwgY2F0LmluY2x1ZGVzKCdiaXRjb2luJykpIHJldHVybiAnZmFiIGZhLWJpdGNvaW4nOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygnZXRoJykgfHwgY2F0LmluY2x1ZGVzKCdldGhlcmV1bScpKSByZXR1cm4gJ2ZhYiBmYS1ldGhlcmV1bSc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCd0cmFkaW5nJykgfHwgY2F0LmluY2x1ZGVzKCdtYXJrZXQnKSkgcmV0dXJuICdmYXMgZmEtY2hhcnQtbGluZSc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCdyZWd1bGF0aW9uJykgfHwgY2F0LmluY2x1ZGVzKCdzZWMnKSkgcmV0dXJuICdmYXMgZmEtbGFuZG1hcmsnOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygndGVjaG5vbG9neScpIHx8IGNhdC5pbmNsdWRlcygnZGVmaScpKSByZXR1cm4gJ2ZhcyBmYS1taWNyb2NoaXAnOw0KICAgICAgICAgICAgcmV0dXJuICdmYXMgZmEtbmV3c3BhcGVyJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGdldE5ld3NHcmFkaWVudChjYXRlZ29yaWVzKSB7DQogICAgICAgICAgICBjb25zdCBjYXQgPSAoY2F0ZWdvcmllcyB8fCAnJykudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGlmIChjYXQuaW5jbHVkZXMoJ2J0YycpIHx8IGNhdC5pbmNsdWRlcygnYml0Y29pbicpKSByZXR1cm4gJ2Zyb20tb3JhbmdlLTUwMCB0by1hbWJlci01MDAnOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygnZXRoJykgfHwgY2F0LmluY2x1ZGVzKCdldGhlcmV1bScpKSByZXR1cm4gJ2Zyb20tYmx1ZS01MDAgdG8taW5kaWdvLTUwMCc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCd0cmFkaW5nJykgfHwgY2F0LmluY2x1ZGVzKCdtYXJrZXQnKSkgcmV0dXJuICdmcm9tLWVtZXJhbGQtNTAwIHRvLXRlYWwtNTAwJzsNCiAgICAgICAgICAgIGlmIChjYXQuaW5jbHVkZXMoJ3JlZ3VsYXRpb24nKSB8fCBjYXQuaW5jbHVkZXMoJ3NlYycpKSByZXR1cm4gJ2Zyb20tcmVkLTUwMCB0by1yb3NlLTUwMCc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCd0ZWNobm9sb2d5JykgfHwgY2F0LmluY2x1ZGVzKCdkZWZpJykpIHJldHVybiAnZnJvbS1wdXJwbGUtNTAwIHRvLXZpb2xldC01MDAnOw0KICAgICAgICAgICAgcmV0dXJuICdmcm9tLWdyYXktNTAwIHRvLWdyYXktNjAwJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGVzY2FwZUh0bWwodGV4dCkgew0KICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgICAgICBkaXYudGV4dENvbnRlbnQgPSB0ZXh0Ow0KICAgICAgICAgICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiB1cGRhdGVEYXNoYm9hcmRTdGF0cygpIHsgY29uc3QgYXNzZXRDb3VudCA9IGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLndhbGxldHMgPyBPYmplY3Qua2V5cyhjdXJyZW50VXNlci53YWxsZXRzKS5sZW5ndGggOiAwOyBjb25zdCBhc3NldENvdW50RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXNzZXRDb3VudCcpOyBpZiAoYXNzZXRDb3VudEVsKSBhc3NldENvdW50RWwudGV4dENvbnRlbnQgPSBhc3NldENvdW50OyBpZiAoY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIud2FsbGV0cykgeyBsZXQgdG90YWxCYWxhbmNlID0gMDsgT2JqZWN0LmVudHJpZXMoY3VycmVudFVzZXIud2FsbGV0cykuZm9yRWFjaCgoW2MsIHddKSA9PiB7IGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbY107IHRvdGFsQmFsYW5jZSArPSAody5iYWxhbmNlIHx8IDApICogKGNyeXB0byA/IGNyeXB0by5wcmljZSA6IDEpOyB9KTsgY29uc3QgcHJvZml0MjRoID0gdG90YWxCYWxhbmNlICogMC4wMjM0OyBjb25zdCBwcm9maXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9maXQyNGgnKTsgaWYgKHByb2ZpdEVsKSBwcm9maXRFbC50ZXh0Q29udGVudCA9ICcrJCcgKyBwcm9maXQyNGgudG9GaXhlZCgyKTsgY29uc3QgYmFsYW5jZUNoYW5nZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhbGFuY2VDaGFuZ2UnKTsgaWYgKGJhbGFuY2VDaGFuZ2VFbCkgYmFsYW5jZUNoYW5nZUVsLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iZmFzIGZhLWFycm93LXVwIj48L2k+ICsyLjM0JSAoJCcgKyBwcm9maXQyNGgudG9GaXhlZCgyKSArICcpJzsgfSB0cnkgeyBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMnKTsgY29uc3QgaW52ZXN0bWVudHMgPSBkYXRhLmludmVzdG1lbnRzIHx8IFtdOyBsZXQgdG90YWxQcm9maXRVU0QgPSAwOyBpbnZlc3RtZW50cy5mb3JFYWNoKGludiA9PiB7IHZhciBwcmljZSA9IChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxOyB2YXIgYWNjUHJvZml0ID0gaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IChpbnYuZGFpbHlQcm9maXQgKiBpbnYuZGF5c0VsYXBzZWQpIHx8IDA7IHRvdGFsUHJvZml0VVNEICs9IGFjY1Byb2ZpdCAqIHByaWNlOyB9KTsgY29uc3QgaW52UHJvZml0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0bWVudFByb2ZpdEJhbGFuY2UnKTsgaWYgKGludlByb2ZpdEVsKSBpbnZQcm9maXRFbC50ZXh0Q29udGVudCA9ICckJyArIGZvcm1hdENsZWFuKHRvdGFsUHJvZml0VVNELCAyKTsgY29uc3QgcHJvZmlsZUludmVzdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVJbnZlc3RQcm9maXQnKTsgaWYgKHByb2ZpbGVJbnZlc3RFbCkgcHJvZmlsZUludmVzdEVsLnRleHRDb250ZW50ID0gJyQnICsgZm9ybWF0Q2xlYW4odG90YWxQcm9maXRVU0QsIDIpOyB9IGNhdGNoIChlKSB7fSB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFRyYW5zYWN0aW9ucygpIHsgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsgaWYgKCFhdXRoVG9rZW4gfHwgIWN1cnJlbnRVc2VyKSByZXR1cm47IHRyeSB7IGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCd0cmFuc2FjdGlvbnMnKTsgZGlzcGxheVRyYW5zYWN0aW9ucyhkYXRhLnRyYW5zYWN0aW9ucyB8fCBbXSk7IH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHRyYW5zYWN0aW9uczonLCBlcnJvcik7IH0gfQ0KDQogICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlUcmFuc2FjdGlvbnModHJhbnNhY3Rpb25zKSB7DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNhY3Rpb25MaXN0Jyk7IGlmICghY29udGFpbmVyKSByZXR1cm47DQogICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkgeyBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyB0cmFuc2FjdGlvbnMgeWV0PC9wPjwvZGl2Pic7IHJldHVybjsgfQ0KICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyB0cmFuc2FjdGlvbnMuZm9yRWFjaCh0eCA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5jbGFzc05hbWUgPSAncC00IGJvcmRlci1iIGJvcmRlci1ncmF5LTcwMC81MCBsYXN0OmJvcmRlci1iLTAnOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0eC50eXBlIHx8ICd1bmtub3duJzsNCiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSB0eC5zdGF0dXMgfHwgJ2NvbXBsZXRlZCc7DQogICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gc3RhdHVzID09PSAncGVuZGluZyc7DQogICAgICAgICAgICAgICAgY29uc3QgY3VycmVuY3kgPSB0eC5mcm9tQ3VycmVuY3kgfHwgdHgudG9DdXJyZW5jeSB8fCAnYnRjJzsNCiAgICAgICAgICAgICAgICBjb25zdCB0b0N1cnJlbmN5ID0gdHgudG9DdXJyZW5jeTsNCiAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW2N1cnJlbmN5XSB8fCB7IHN5bWJvbDogY3VycmVuY3kudG9VcHBlckNhc2UoKSB9Ow0KICAgICAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gdG9DdXJyZW5jeSA/IChjcnlwdG9EYXRhW3RvQ3VycmVuY3ldIHx8IHsgc3ltYm9sOiB0b0N1cnJlbmN5LnRvVXBwZXJDYXNlKCkgfSkgOiBudWxsOw0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0eC5jcmVhdGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsNCiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBbW91bnQgPSBmb3JtYXRDbGVhbih0eC5hbW91bnQsIDgpOw0KICAgICAgICAgICAgICAgIGxldCBpY29uQmcsIGljb25Db2xvciwgaWNvbkNsYXNzLCBhbW91bnRDbGFzcywgc2lnbiwgbGFiZWwsIGRldGFpbCwgbm90ZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGVwb3NpdCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctZW1lcmFsZC01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1lbWVyYWxkLTQwMCc7IGljb25DbGFzcyA9ICdmYS1hcnJvdy1kb3duJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gJ3RleHQtZW1lcmFsZC00MDAnOyBzaWduID0gJysnOw0KICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnRGVwb3NpdCc7DQogICAgICAgICAgICAgICAgICAgICAgICBub3RlID0gdHgud2l0aGRyYXdhbEFkZHJlc3MgfHwgbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdyZWZlcnJhbF9ib251cyc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctcHVycGxlLTUwMC8yMCc7IGljb25Db2xvciA9ICd0ZXh0LXB1cnBsZS00MDAnOyBpY29uQ2xhc3MgPSAnZmEtZ2lmdCc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LXB1cnBsZS00MDAnOyBzaWduID0gJysnOw0KICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnUmVmZXJyYWwgQm9udXMnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsID0gJ1JlZmVycmFsIGNvZGUgYm9udXMgY3JlZGl0ZWQnOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dpdGhkcmF3YWwnOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJnID0gJ2JnLXJvc2UtNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtcm9zZS00MDAnOyBpY29uQ2xhc3MgPSAnZmEtYXJyb3ctdXAnOw0KICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50Q2xhc3MgPSAndGV4dC1yb3NlLTQwMCc7IHNpZ24gPSAnLSc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHR4Lm1ldGhvZCA9PT0gJ3dpcmUnID8gJ1dpcmUgVHJhbnNmZXInIDogJ1dpdGhkcmF3YWwnOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR4Lm1ldGhvZCA9PT0gJ3dpcmUnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90ZSA9ICc8aSBjbGFzcz0iZmFzIGZhLXVuaXZlcnNpdHkgbXItMSB0ZXh0LWFtYmVyLTUwMC82MCI+PC9pPicgKyAodHguYmFua05hbWUgfHwgJ1dpcmUnKSArICcgLyAnICsgKHR4LmFjY291bnRIb2xkZXIgfHwgJycpICsgJyAvICoqKionICsgKHR4LmFjY291bnROdW1iZXIgPyB0eC5hY2NvdW50TnVtYmVyLnNsaWNlKC00KSA6ICcnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdpbnZlc3RtZW50JzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25CZyA9ICdiZy1hbWJlci01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1hbWJlci00MDAnOyBpY29uQ2xhc3MgPSAnZmEtcGlnZ3ktYmFuayc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LWFtYmVyLTQwMCc7IHNpZ24gPSAnLSc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICdJbnZlc3RtZW50JzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdwcm9maXRfd2l0aGRyYXdhbCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctYW1iZXItNjAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtYW1iZXItNDAwJzsgaWNvbkNsYXNzID0gJ2ZhLWNvaW5zJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gKHN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgfHwgc3RhdHVzID09PSAnYXBwcm92ZWQnKSA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6ICd0ZXh0LWFtYmVyLTQwMCc7DQogICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gKHN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgfHwgc3RhdHVzID09PSAnYXBwcm92ZWQnKSA/ICcrJyA6ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnUHJvZml0IFdpdGhkcmF3YWwnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsID0gYCR7c2lnbn0ke2Zvcm1hdHRlZEFtb3VudH0gJHtjcnlwdG8uc3ltYm9sfWA7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29udmVydCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctYmx1ZS01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1ibHVlLTQwMCc7IGljb25DbGFzcyA9ICdmYS1yaWdodC1sZWZ0JzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gdHguYW1vdW50IDwgMCA/ICd0ZXh0LWFtYmVyLTQwMCcgOiAndGV4dC1lbWVyYWxkLTQwMCc7DQogICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gdHguYW1vdW50IDwgMCA/ICctJyA6ICcrJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ0NvbnZlcnQnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsID0gdG9DcnlwdG8gPyAodHguYW1vdW50IDwgMCA/IGBTZW50ICR7Zm9ybWF0dGVkQW1vdW50fSAke2NyeXB0by5zeW1ib2x9YCA6IGBSZWNlaXZlZCAke2Zvcm1hdHRlZEFtb3VudH0gJHt0b0NyeXB0by5zeW1ib2x9YCkgOiBgJHtzaWdufSR7Zm9ybWF0dGVkQW1vdW50fSAke2NyeXB0by5zeW1ib2x9YDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdidXknOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJnID0gJ2JnLWVtZXJhbGQtNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtZW1lcmFsZC00MDAnOyBpY29uQ2xhc3MgPSAnZmEtY2FydC1zaG9wcGluZyc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LWVtZXJhbGQtNDAwJzsgc2lnbiA9ICcrJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ0J1eSc7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgPSB0b0NyeXB0byA/IGBTcGVudCAke2Zvcm1hdHRlZEFtb3VudH0gJHtjcnlwdG8uc3ltYm9sfSBmb3IgJHt0b0NyeXB0by5zeW1ib2x9YCA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VsbCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctcm9zZS01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1yb3NlLTQwMCc7IGljb25DbGFzcyA9ICdmYS10YWcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50Q2xhc3MgPSAndGV4dC1yb3NlLTQwMCc7IHNpZ24gPSAnLSc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICdTZWxsJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbCA9IHRvQ3J5cHRvID8gYFNvbGQgJHtmb3JtYXR0ZWRBbW91bnR9ICR7Y3J5cHRvLnN5bWJvbH0gZm9yICR7dG9DcnlwdG8uc3ltYm9sfWAgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RyYW5zZmVyJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25CZyA9ICdiZy1wdXJwbGUtNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtcHVycGxlLTQwMCc7IGljb25DbGFzcyA9ICdmYS1wYXBlci1wbGFuZSc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LXB1cnBsZS00MDAnOyBzaWduID0gdHguYW1vdW50ID4gMCA/ICcrJyA6ICctJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ1RyYW5zZmVyJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJnID0gJ2JnLWdyYXktNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtZ3JheS00MDAnOyBpY29uQ2xhc3MgPSAnZmEtY2lyY2xlJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gJ3RleHQtZ3JheS00MDAnOyBzaWduID0gJyc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHR5cGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsZXQgc3RhdHVzVGV4dCwgc3RhdHVzQ29sb3IsIHN0YXR1c0ljb247DQogICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAncGVuZGluZyc6DQogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0ID0gJ3BlbmRpbmcgLSBhZG1pbiByZXZpZXcnOyBzdGF0dXNDb2xvciA9ICd0ZXh0LXllbGxvdy00MDAnOyBzdGF0dXNJY29uID0gJ2ZhLWNsb2NrJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25CZyA9ICdiZy15ZWxsb3ctNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQteWVsbG93LTQwMCc7IGljb25DbGFzcyA9ICdmYS1jbG9jayc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVqZWN0ZWQnOg0KICAgICAgICAgICAgICAgICAgICBjYXNlICdjYW5jZWxsZWQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdyZWplY3RlZCAtIGZ1bmRzIHJlZnVuZGVkJzsgc3RhdHVzQ29sb3IgPSAndGV4dC1yb3NlLTQwMCc7IHN0YXR1c0ljb24gPSAnZmEtdGltZXMtY2lyY2xlJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdmYWlsZWQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdmYWlsZWQnOyBzdGF0dXNDb2xvciA9ICd0ZXh0LXJlZC00MDAnOyBzdGF0dXNJY29uID0gJ2ZhLWV4Y2xhbWF0aW9uLWNpcmNsZSc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tcGxldGVkJzoNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgPSAnY29tcGxldGVkJzsgc3RhdHVzQ29sb3IgPSAndGV4dC1lbWVyYWxkLTQwMCc7IHN0YXR1c0ljb24gPSAnZmEtY2hlY2stY2lyY2xlJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29uc3QgYW1vdW50TGluZSA9IGRldGFpbCB8fCBgJHtzaWdufSR7Zm9ybWF0dGVkQW1vdW50fSAke2NyeXB0by5zeW1ib2x9YDsNCiAgICAgICAgICAgICAgICBjb25zdCBub3RlTGluZSA9IG5vdGUgPyBgPHAgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBtdC0xIj48aSBjbGFzcz0iZmFzIGZhLWNvbW1lbnQtYWx0IG1yLTEgdGV4dC1lbWVyYWxkLTUwMC82MCI+PC9pPiR7bm90ZX08L3A+YCA6ICcnOw0KICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIHJvdW5kZWQtZnVsbCAke2ljb25CZ30gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgJHtpY29uQ2xhc3N9ICR7aWNvbkNvbG9yfSI+PC9pPjwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JHtsYWJlbH08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JHtkYXRlfTwvcD4ke25vdGVMaW5lfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LWJvbGQgJHtzdGF0dXMgPT09ICdwZW5kaW5nJyA/ICd0ZXh0LXllbGxvdy00MDAnIDogKHN0YXR1cyA9PT0gJ3JlamVjdGVkJyB8fCBzdGF0dXMgPT09ICdjYW5jZWxsZWQnIHx8IHN0YXR1cyA9PT0gJ2ZhaWxlZCcgPyAndGV4dC1yb3NlLTQwMCcgOiBhbW91bnRDbGFzcyl9Ij4ke2Ftb3VudExpbmV9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzICR7c3RhdHVzQ29sb3J9Ij48aSBjbGFzcz0iZmFzICR7c3RhdHVzSWNvbn0iPjwvaT4gJHtzdGF0dXNUZXh0fTwvcD48L2Rpdj48L2Rpdj5gOw0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzZXREYXNoYm9hcmRUaW1lUmFuZ2UocmFuZ2UsIGJ0bikgeyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjZGFzaGJvYXJkU2VjdGlvbiAudGltZS1idG4nKS5mb3JFYWNoKGIgPT4gYi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKSk7IGJ0bi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgaW5pdFBvcnRmb2xpb0NoYXJ0KCk7IH0NCiAgICAgICAgbGV0IHBvcnRmb2xpb0NoYXJ0UG9pbnRzID0gW107DQogICAgICAgIGxldCBwb3J0Zm9saW9DaGFydEludGVydmFsID0gbnVsbDsNCiAgICAgICAgbGV0IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlID0gMTAwMDA7DQogICAgICAgIGxldCBwb3J0Zm9saW9DaGFydFB1bHNlUGhhc2UgPSAwOw0KICAgICAgICBsZXQgcG9ydGZvbGlvQ2hhcnRUcmVuZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gZ2V0UG9ydGZvbGlvVmFsdWUoKSB7DQogICAgICAgICAgICBsZXQgdmFsID0gMDsNCiAgICAgICAgICAgIGlmIChjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci53YWxsZXRzKSB7DQogICAgICAgICAgICAgICAgdmFsID0gT2JqZWN0LmVudHJpZXMoY3VycmVudFVzZXIud2FsbGV0cykucmVkdWNlKChzdW0sIFtjLCB3XSkgPT4gew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VtICsgKHcuYmFsYW5jZSB8fCAwKSAqIChjcnlwdG9EYXRhW2NdPy5wcmljZSB8fCAxKTsNCiAgICAgICAgICAgICAgICB9LCAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB2YWwgPCAxMDAgPyAxMDAwMCA6IHZhbDsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGluaXRQb3J0Zm9saW9DaGFydCgpIHsNCiAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlID0gZ2V0UG9ydGZvbGlvVmFsdWUoKTsNCiAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0UG9pbnRzID0gW107DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFRyZW5kID0gKE1hdGgucmFuZG9tKCkgLSAwLjQpICogMC4wMDI7DQogICAgICAgICAgICBsZXQgdiA9IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMC43Ow0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2MDsgaSsrKSB7DQogICAgICAgICAgICAgICAgdiA9IHYgKiAoMSArIChNYXRoLnJhbmRvbSgpIC0gMC4zNSkgKiAwLjAzKTsNCiAgICAgICAgICAgICAgICBpZiAodiA8IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMC41KSB2ID0gcG9ydGZvbGlvQ2hhcnRCYXNlVmFsdWUgKiAwLjU7DQogICAgICAgICAgICAgICAgaWYgKHYgPiBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSAqIDEuNSkgdiA9IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMS41Ow0KICAgICAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0UG9pbnRzLnB1c2godik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFBvaW50c1twb3J0Zm9saW9DaGFydFBvaW50cy5sZW5ndGggLSAxXSA9IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZHJhd1BvcnRmb2xpb0NoYXJ0RnJhbWUoKSB7DQogICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9ydGZvbGlvQ2hhcnQnKTsNCiAgICAgICAgICAgIGlmICghY2FudmFzKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBjYW52YXMucGFyZW50RWxlbWVudDsNCiAgICAgICAgICAgIGlmICghY29udGFpbmVyIHx8IGNvbnRhaW5lci5vZmZzZXRXaWR0aCA9PT0gMCkgcmV0dXJuOw0KICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyksIHdpZHRoID0gY2FudmFzLndpZHRoID0gY29udGFpbmVyLm9mZnNldFdpZHRoIC0gMzIsIGhlaWdodCA9IGNhbnZhcy5oZWlnaHQgPSAxODA7DQogICAgICAgICAgICBjb25zdCBwb2ludHMgPSBwb3J0Zm9saW9DaGFydFBvaW50czsNCiAgICAgICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi5wb2ludHMpLCBtYXggPSBNYXRoLm1heCguLi5wb2ludHMpLCByYW5nZSA9IG1heCAtIG1pbiB8fCAxOw0KDQogICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOw0KDQogICAgICAgICAgICAvLyBTdWJ0bGUgZ3JpZA0KICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC4wMjUpJzsNCiAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA1OyBpKyspIHsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gKGhlaWdodCAvIDUpICogaTsNCiAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7IGN0eC5tb3ZlVG8oMCwgeSk7IGN0eC5saW5lVG8od2lkdGgsIHkpOyBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEFyZWEgZmlsbA0KICAgICAgICAgICAgY29uc3QgZ3JhZCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCBoZWlnaHQpOw0KICAgICAgICAgICAgZ3JhZC5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMTYsIDE4NSwgMTI5LCAwLjM1KScpOw0KICAgICAgICAgICAgZ3JhZC5hZGRDb2xvclN0b3AoMC43LCAncmdiYSgxNiwgMTg1LCAxMjksIDAuMDgpJyk7DQogICAgICAgICAgICBncmFkLmFkZENvbG9yU3RvcCgxLCAncmdiYSgxNiwgMTg1LCAxMjksIDAuMDEpJyk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5tb3ZlVG8oMCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeCA9IChpIC8gKHBvaW50cy5sZW5ndGggLSAxKSkgKiB3aWR0aDsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gaGVpZ2h0IC0gKChwIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuNzUgLSBoZWlnaHQgKiAwLjE7DQogICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIGN0eC5saW5lVG8oeCwgeSk7DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZYID0gKChpIC0gMSkgLyAocG9pbnRzLmxlbmd0aCAtIDEpKSAqIHdpZHRoOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2WSA9IGhlaWdodCAtICgocG9pbnRzW2ktMV0gLSBtaW4pIC8gcmFuZ2UpICogaGVpZ2h0ICogMC43NSAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3ggPSAocHJldlggKyB4KSAvIDI7DQogICAgICAgICAgICAgICAgICAgIGN0eC5iZXppZXJDdXJ2ZVRvKGN4LCBwcmV2WSwgY3gsIHksIHgsIHkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgY3R4LmxpbmVUbyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBncmFkOw0KICAgICAgICAgICAgY3R4LmZpbGwoKTsNCg0KICAgICAgICAgICAgLy8gTGluZSBzdHJva2UNCiAgICAgICAgICAgIGN0eC5zYXZlKCk7DQogICAgICAgICAgICBjdHguc2hhZG93Q29sb3IgPSAncmdiYSgxNiwgMTg1LCAxMjksIDAuNCknOw0KICAgICAgICAgICAgY3R4LnNoYWRvd0JsdXIgPSA2Ow0KICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgICAgICAgcG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB4ID0gKGkgLyAocG9pbnRzLmxlbmd0aCAtIDEpKSAqIHdpZHRoOw0KICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBoZWlnaHQgLSAoKHAgLSBtaW4pIC8gcmFuZ2UpICogaGVpZ2h0ICogMC43NSAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgY3R4Lm1vdmVUbyh4LCB5KTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlggPSAoKGkgLSAxKSAvIChwb2ludHMubGVuZ3RoIC0gMSkpICogd2lkdGg7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZZID0gaGVpZ2h0IC0gKChwb2ludHNbaS0xXSAtIG1pbikgLyByYW5nZSkgKiBoZWlnaHQgKiAwLjc1IC0gaGVpZ2h0ICogMC4xOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjeCA9IChwcmV2WCArIHgpIC8gMjsNCiAgICAgICAgICAgICAgICAgICAgY3R4LmJlemllckN1cnZlVG8oY3gsIHByZXZZLCBjeCwgeSwgeCwgeSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnIzEwYjk4MSc7DQogICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMjsNCiAgICAgICAgICAgIGN0eC5saW5lQ2FwID0gJ3JvdW5kJzsNCiAgICAgICAgICAgIGN0eC5saW5lSm9pbiA9ICdyb3VuZCc7DQogICAgICAgICAgICBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICBjdHgucmVzdG9yZSgpOw0KDQogICAgICAgICAgICAvLyBMZWFkaW5nIGRvdA0KICAgICAgICAgICAgY29uc3QgbGFzdFggPSB3aWR0aCAtIDU7DQogICAgICAgICAgICBjb25zdCBsYXN0WSA9IGhlaWdodCAtICgocG9pbnRzW3BvaW50cy5sZW5ndGgtMV0gLSBtaW4pIC8gcmFuZ2UpICogaGVpZ2h0ICogMC43NSAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0UHVsc2VQaGFzZSArPSAwLjA4Ow0KICAgICAgICAgICAgY29uc3QgcHVsc2VTaXplID0gNCArIE1hdGguc2luKHBvcnRmb2xpb0NoYXJ0UHVsc2VQaGFzZSkgKiAxLjU7DQogICAgICAgICAgICBjb25zdCBnbG93U2l6ZSA9IDcgKyBNYXRoLnNpbihwb3J0Zm9saW9DaGFydFB1bHNlUGhhc2UpICogMzsNCg0KICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgICAgICAgY3R4LmFyYyhsYXN0WCwgbGFzdFksIGdsb3dTaXplLCAwLCBNYXRoLlBJICogMik7DQogICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMTYsIDE4NSwgMTI5LCAwLjIpJzsNCiAgICAgICAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5hcmMobGFzdFgsIGxhc3RZLCBwdWxzZVNpemUsIDAsIE1hdGguUEkgKiAyKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnIzEwYjk4MSc7DQogICAgICAgICAgICBjdHguZmlsbCgpOw0KICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnOw0KICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDI7DQogICAgICAgICAgICBjdHguc3Ryb2tlKCk7DQoNCiAgICAgICAgICAgIC8vIFZhbHVlIGxhYmVsDQogICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnOw0KICAgICAgICAgICAgY3R4LmZvbnQgPSAnYm9sZCAxMXB4IEludGVyLCBzYW5zLXNlcmlmJzsNCiAgICAgICAgICAgIGN0eC50ZXh0QWxpZ24gPSAncmlnaHQnOw0KICAgICAgICAgICAgY29uc3QgdmFsU3RyID0gJyQnICsgTWF0aC5yb3VuZChwb2ludHNbcG9pbnRzLmxlbmd0aC0xXSkudG9Mb2NhbGVTdHJpbmcoKTsNCiAgICAgICAgICAgIGN0eC5maWxsVGV4dCh2YWxTdHIsIGxhc3RYIC0gMTUsIGxhc3RZIC0gMTIpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdGlja1BvcnRmb2xpb0NoYXJ0KCkgew0KICAgICAgICAgICAgLy8gU2xvdywgcmVhbGlzdGljIG1hcmtldCBtb3ZlbWVudA0KICAgICAgICAgICAgcG9ydGZvbGlvQ2hhcnRQdWxzZVBoYXNlICs9IDAuMDg7DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFBvaW50cy5zaGlmdCgpOw0KICAgICAgICAgICAgY29uc3QgbGFzdFZhbCA9IHBvcnRmb2xpb0NoYXJ0UG9pbnRzW3BvcnRmb2xpb0NoYXJ0UG9pbnRzLmxlbmd0aCAtIDFdOw0KICAgICAgICAgICAgLy8gT2NjYXNpb25hbGx5IHNoaWZ0IHRyZW5kIGRpcmVjdGlvbiAobGlrZSByZWFsIG1hcmtldHMpDQogICAgICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuMDUpIHBvcnRmb2xpb0NoYXJ0VHJlbmQgPSAoTWF0aC5yYW5kb20oKSAtIDAuNDgpICogMC4wMDM7DQogICAgICAgICAgICBjb25zdCBub2lzZSA9IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIDAuMDA2Ow0KICAgICAgICAgICAgbGV0IG5ld1ZhbCA9IGxhc3RWYWwgKiAoMSArIHBvcnRmb2xpb0NoYXJ0VHJlbmQgKyBub2lzZSk7DQogICAgICAgICAgICBjb25zdCBjdXJCYXNlID0gZ2V0UG9ydGZvbGlvVmFsdWUoKTsNCiAgICAgICAgICAgIGlmIChjdXJCYXNlICE9PSBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSkgcG9ydGZvbGlvQ2hhcnRCYXNlVmFsdWUgPSBjdXJCYXNlOw0KICAgICAgICAgICAgaWYgKG5ld1ZhbCA8IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMC41KSBuZXdWYWwgPSBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSAqIDAuNTsNCiAgICAgICAgICAgIGlmIChuZXdWYWwgPiBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSAqIDEuNSkgbmV3VmFsID0gcG9ydGZvbGlvQ2hhcnRCYXNlVmFsdWUgKiAxLjU7DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFBvaW50cy5wdXNoKG5ld1ZhbCk7DQogICAgICAgICAgICBkcmF3UG9ydGZvbGlvQ2hhcnRGcmFtZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhcnRQb3J0Zm9saW9DaGFydCgpIHsNCiAgICAgICAgICAgIGlmIChwb3J0Zm9saW9DaGFydEludGVydmFsKSBjbGVhckludGVydmFsKHBvcnRmb2xpb0NoYXJ0SW50ZXJ2YWwpOw0KICAgICAgICAgICAgaWYgKHBvcnRmb2xpb0NoYXJ0UG9pbnRzLmxlbmd0aCA9PT0gMCkgaW5pdFBvcnRmb2xpb0NoYXJ0KCk7DQogICAgICAgICAgICBkcmF3UG9ydGZvbGlvQ2hhcnRGcmFtZSgpOw0KICAgICAgICAgICAgcG9ydGZvbGlvQ2hhcnRJbnRlcnZhbCA9IHNldEludGVydmFsKHRpY2tQb3J0Zm9saW9DaGFydCwgMjUwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0b3BQb3J0Zm9saW9DaGFydCgpIHsNCiAgICAgICAgICAgIGlmIChwb3J0Zm9saW9DaGFydEludGVydmFsKSB7IGNsZWFySW50ZXJ2YWwocG9ydGZvbGlvQ2hhcnRJbnRlcnZhbCk7IHBvcnRmb2xpb0NoYXJ0SW50ZXJ2YWwgPSBudWxsOyB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBpc1Nlc3Npb25FeHBpcmVkKCkgew0KICAgICAgICAgICAgY29uc3QgbGFzdEFjdGl2ZSA9IHBhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUxhc3RBY3RpdmUnKSB8fCAnMCcpOw0KICAgICAgICAgICAgaWYgKCFsYXN0QWN0aXZlKSByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIGNvbnN0IGhvdXJzU2luY2VBY3RpdmUgPSAoRGF0ZS5ub3coKSAtIGxhc3RBY3RpdmUpIC8gMzYwMDAwMDsNCiAgICAgICAgICAgIHJldHVybiBob3Vyc1NpbmNlQWN0aXZlID4gNDg7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB0cmFja0FjdGl2aXR5KCkgew0KICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUtlZXBTaWduZWRJbicpID09PSAndHJ1ZScgJiYgYXV0aFRva2VuKSB7DQogICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScsIERhdGUubm93KCkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiByZXN0b3JlU2Vzc2lvbigpIHsNCiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsNCiAgICAgICAgICAgIGNvbnN0IGtlZXBTaWduZWRJbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUtlZXBTaWduZWRJbicpID09PSAndHJ1ZSc7DQoNCiAgICAgICAgICAgIC8vIE5vIHRva2VuIGF0IGFsbCDihpIgc2hvdyBXZWxjb21lL0xhbmRpbmcgcGFnZSAoTk9UIGxvZ2luKQ0KICAgICAgICAgICAgaWYgKCF0b2tlbiB8fCB0b2tlbiA9PT0gJ251bGwnIHx8IHRva2VuID09PSAndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgIGF1dGhUb2tlbiA9IG51bGw7IGN1cnJlbnRVc2VyID0gbnVsbDsgaXNBZG1pbiA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHNob3dMYW5kaW5nKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBUb2tlbiBleGlzdHMgYnV0IHVzZXIgY2hvc2UgTk9UIHRvIGtlZXAgc2lnbmVkIGluIOKGkiBzaG93IFdlbGNvbWUgcGFnZQ0KICAgICAgICAgICAgaWYgKCFrZWVwU2lnbmVkSW4pIHsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1Ub2tlbicpOw0KICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bVVzZXInKTsNCiAgICAgICAgICAgICAgICBhdXRoVG9rZW4gPSBudWxsOyBjdXJyZW50VXNlciA9IG51bGw7IGlzQWRtaW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBzaG93TGFuZGluZygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gVG9rZW4gKyBrZWVwU2lnbmVkSW4gYnV0IDQ4aCBleHBpcmVkIOKGkiBjbGVhciBhbmQgc2hvdyBXZWxjb21lIHBhZ2UNCiAgICAgICAgICAgIGlmIChpc1Nlc3Npb25FeHBpcmVkKCkpIHsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1Ub2tlbicpOw0KICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bVVzZXInKTsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKTsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1MYXN0QWN0aXZlJyk7DQogICAgICAgICAgICAgICAgYXV0aFRva2VuID0gbnVsbDsgY3VycmVudFVzZXIgPSBudWxsOyBpc0FkbWluID0gZmFsc2U7DQogICAgICAgICAgICAgICAgc2hvd0xhbmRpbmcoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFRva2VuICsga2VlcFNpZ25lZEluICsgd2l0aGluIDQ4aCDihpIgcmVzdG9yZSBzZXNzaW9uDQogICAgICAgICAgICBhdXRoVG9rZW4gPSB0b2tlbjsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2F1dGgvbWUnKTsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YS51c2VyKSB7DQogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VyID0gZGF0YS51c2VyOw0KICAgICAgICAgICAgICAgICAgICBpc0FkbWluID0gZGF0YS51c2VyLnJvbGUgPT09ICdhZG1pbic7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVVzZXInLCBKU09OLnN0cmluZ2lmeShjdXJyZW50VXNlcikpOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1MYXN0QWN0aXZlJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgZW50ZXJQbGF0Zm9ybShkYXRhLnVzZXIpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2Vzc2lvbiByZXN0b3JlIGZhaWxlZDonLCBlcnJvci5tZXNzYWdlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFRva2VuIGludmFsaWQg4oaSIGNsZWFyIGFuZCBzaG93IFdlbGNvbWUgcGFnZQ0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsNCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bVVzZXInKTsNCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bUtlZXBTaWduZWRJbicpOw0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScpOw0KICAgICAgICAgICAgYXV0aFRva2VuID0gbnVsbDsgY3VycmVudFVzZXIgPSBudWxsOyBpc0FkbWluID0gZmFsc2U7DQogICAgICAgICAgICBzaG93TGFuZGluZygpOw0KICAgICAgICB9DQogICAgICAgIHJlc3RvcmVTZXNzaW9uKCk7DQoNCiAgICAgICAgbGV0IGd1ZXN0Q2hhdEluZm8gPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBnZXRHdWVzdENoYXRJbmZvKCkgeyBpZiAoZ3Vlc3RDaGF0SW5mbykgcmV0dXJuIGd1ZXN0Q2hhdEluZm87IGNvbnN0IHNhdmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtR3Vlc3RDaGF0Jyk7IGlmIChzYXZlZCkgeyBndWVzdENoYXRJbmZvID0gSlNPTi5wYXJzZShzYXZlZCk7IHJldHVybiBndWVzdENoYXRJbmZvOyB9IHJldHVybiBudWxsOyB9DQogICAgICAgIGZ1bmN0aW9uIHNhdmVHdWVzdENoYXRJbmZvKCkgeyBjb25zdCBuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRHdWVzdE5hbWUnKS52YWx1ZS50cmltKCk7IGNvbnN0IGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRHdWVzdEVtYWlsJykudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7IGlmIChuYW1lLmxlbmd0aCA8IDIpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgeW91ciBuYW1lJywgJ2Vycm9yJyk7IHJldHVybjsgfSBpZiAoIWVtYWlsIHx8ICFlbWFpbC5pbmNsdWRlcygnQCcpKSB7IHNob3dBbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwnLCAnZXJyb3InKTsgcmV0dXJuOyB9IGd1ZXN0Q2hhdEluZm8gPSB7IG5hbWU6IG5hbWUsIGVtYWlsOiBlbWFpbCB9OyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1HdWVzdENoYXQnLCBKU09OLnN0cmluZ2lmeShndWVzdENoYXRJbmZvKSk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0R3Vlc3RGb3JtJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRNZXNzYWdlc0xpc3QnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsgbG9hZENoYXRIaXN0b3J5KCk7IHN0YXJ0Q2hhdFBvbGxpbmcoKTsgfQ0KICAgICAgICBmdW5jdGlvbiBpc0d1ZXN0Q2hhdCgpIHsgcmV0dXJuICFjdXJyZW50VXNlciAmJiAhIWdldEd1ZXN0Q2hhdEluZm8oKTsgfQ0KICAgICAgICBmdW5jdGlvbiBvcGVuTGl2ZVN1cHBvcnQoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdXBwb3J0TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgaWYgKCFjdXJyZW50VXNlciAmJiAhZ2V0R3Vlc3RDaGF0SW5mbygpKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0R3Vlc3RGb3JtJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0TWVzc2FnZXNMaXN0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgfSBlbHNlIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRHdWVzdEZvcm0nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhdE1lc3NhZ2VzTGlzdCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBsb2FkQ2hhdEhpc3RvcnkoKTsgbWFya0NoYXRBc1JlYWQoKTsgc3RhcnRDaGF0UG9sbGluZygpOyB9IH0NCg0KICAgICAgICBmdW5jdGlvbiBpbml0Q2hhdEJ1dHRvbkRyYWcoKSB7DQogICAgICAgICAgICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXRpbmdDaGF0QnRuJyk7DQogICAgICAgICAgICBpZiAoIWJ0biB8fCBidG4uZGF0YXNldC5kcmFnSW5pdCkgcmV0dXJuOw0KICAgICAgICAgICAgYnRuLmRhdGFzZXQuZHJhZ0luaXQgPSAndHJ1ZSc7DQogICAgICAgICAgICBsZXQgc3RhcnRYID0gMCwgc3RhcnRZID0gMCwgbW92ZWQgPSBmYWxzZSwgaXNEb3duID0gZmFsc2UsIGRyYWdnaW5nID0gZmFsc2U7DQogICAgICAgICAgICBjb25zdCBDTElDS19USFJFU0hPTEQgPSAxMjsNCiAgICAgICAgICAgIGNvbnN0IERSQUdfVEhSRVNIT0xEID0gNjsNCg0KICAgICAgICAgICAgY29uc3QgZ2V0UG9zID0gKGUpID0+IGUudG91Y2hlcyA/IHsgeDogZS50b3VjaGVzWzBdLmNsaWVudFgsIHk6IGUudG91Y2hlc1swXS5jbGllbnRZIH0gOiB7IHg6IGUuY2xpZW50WCwgeTogZS5jbGllbnRZIH07DQoNCiAgICAgICAgICAgIGNvbnN0IG9uU3RhcnQgPSAoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IGdldFBvcyhlKTsNCiAgICAgICAgICAgICAgICBzdGFydFggPSBwb3MueDsgc3RhcnRZID0gcG9zLnk7IG1vdmVkID0gZmFsc2U7IGlzRG93biA9IHRydWU7IGRyYWdnaW5nID0gZmFsc2U7DQogICAgICAgICAgICAgICAgYnRuLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBjb25zdCBvbk1vdmUgPSAoZSkgPT4gew0KICAgICAgICAgICAgICAgIGlmICghaXNEb3duKSByZXR1cm47DQogICAgICAgICAgICAgICAgY29uc3QgcG9zID0gZ2V0UG9zKGUpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGR4ID0gcG9zLnggLSBzdGFydFgsIGR5ID0gcG9zLnkgLSBzdGFydFk7DQogICAgICAgICAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTsNCg0KICAgICAgICAgICAgICAgIGlmICghZHJhZ2dpbmcgJiYgZGlzdCA+IERSQUdfVEhSRVNIT0xEKSB7DQogICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBidG4uY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoZHJhZ2dpbmcpIHsNCiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCAmJiBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBidG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHZ3ID0gd2luZG93LmlubmVyV2lkdGgsIHZoID0gd2luZG93LmlubmVySGVpZ2h0Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gNTY7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RYID0gcGFyc2VGbG9hdChidG4uc3R5bGUubGVmdCB8fCAodncgLSBzaXplIC0gMjApKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFkgPSBwYXJzZUZsb2F0KGJ0bi5zdHlsZS50b3AgfHwgKHZoIC0gc2l6ZSAtIDIwKSk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xlZnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih2dyAtIHNpemUsIGxhc3RYICsgZHgpKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VG9wID0gTWF0aC5tYXgoMCwgTWF0aC5taW4odmggLSBzaXplLCBsYXN0WSArIGR5KSk7DQogICAgICAgICAgICAgICAgICAgIHN0YXJ0WCA9IHBvcy54OyBzdGFydFkgPSBwb3MueTsNCiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLmxlZnQgPSBuZXdMZWZ0ICsgJ3B4JzsNCiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLnRvcCA9IG5ld1RvcCArICdweCc7DQogICAgICAgICAgICAgICAgICAgIGJ0bi5zdHlsZS5ib3R0b20gPSAnYXV0byc7DQogICAgICAgICAgICAgICAgICAgIGJ0bi5zdHlsZS5yaWdodCA9ICdhdXRvJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBjb25zdCBvbkVuZCA9IChlKSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKCFpc0Rvd24pIHJldHVybjsNCiAgICAgICAgICAgICAgICBpc0Rvd24gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBidG4uY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnKTsNCiAgICAgICAgICAgICAgICBidG4uc3R5bGUudHJhbnNpdGlvbiA9ICd0cmFuc2Zvcm0gMC4xNXMsIGJveC1zaGFkb3cgMC4xNXMnOw0KDQogICAgICAgICAgICAgICAgaWYgKGRyYWdnaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBidG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bUNoYXRQb3MnLCBKU09OLnN0cmluZ2lmeSh7IGxlZnQ6IHJlY3QubGVmdCwgdG9wOiByZWN0LnRvcCB9KSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFtb3ZlZCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBlLmNoYW5nZWRUb3VjaGVzID8geyB4OiBlLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsIHk6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSB9IDogeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0ID0gTWF0aC5zcXJ0KE1hdGgucG93KHBvcy54IC0gc3RhcnRYLCAyKSArIE1hdGgucG93KHBvcy55IC0gc3RhcnRZLCAyKSk7DQogICAgICAgICAgICAgICAgICAgIGlmIChkaXN0IDw9IENMSUNLX1RIUkVTSE9MRCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkxpdmVTdXBwb3J0KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBkcmFnZ2luZyA9IGZhbHNlOyBtb3ZlZCA9IGZhbHNlOw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uU3RhcnQpOw0KICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Nb3ZlKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBvbkVuZCk7DQoNCiAgICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgb25TdGFydCwgeyBwYXNzaXZlOiB0cnVlIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Nb3ZlLCB7IHBhc3NpdmU6IGZhbHNlIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbkVuZCwgeyBwYXNzaXZlOiB0cnVlIH0pOw0KDQogICAgICAgICAgICBjb25zdCBzYXZlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUNoYXRQb3MnKTsNCiAgICAgICAgICAgIGlmIChzYXZlZCkgew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IEpTT04ucGFyc2Uoc2F2ZWQpOw0KICAgICAgICAgICAgICAgICAgICBidG4uc3R5bGUubGVmdCA9IHBvcy5sZWZ0ICsgJ3B4JzsNCiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLnRvcCA9IHBvcy50b3AgKyAncHgnOw0KICAgICAgICAgICAgICAgICAgICBidG4uc3R5bGUuYm90dG9tID0gJ2F1dG8nOw0KICAgICAgICAgICAgICAgICAgICBidG4uc3R5bGUucmlnaHQgPSAnYXV0byc7DQogICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7fQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IGNoYXRQb2xsaW5nSW50ZXJ2YWwgPSBudWxsLCBjdXJyZW50Q2hhdFVzZXJJZCA9IG51bGwsIGFkbWluQ2hhdFVzZXJJZCA9IG51bGwsIGFkbWluQ2hhdEd1ZXN0RW1haWwgPSBudWxsLCBhZG1pbkNoYXRQb2xsaW5nID0gbnVsbDsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkQ2hhdEhpc3RvcnkoKSB7IA0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRNZXNzYWdlc0xpc3QnKTsgDQogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImZsZXggZ2FwLTMiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYmx1ZS01MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIHRleHQteHMiPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJjaGF0LW1zZy1hZG1pbiBwLTMgbWF4LXctWzgwJV0iPjxwIGNsYXNzPSJ0ZXh0LXNtIj5IZWxsbyEgV2VsY29tZSB0byBQbGF0aW51bUdsb2JhbEV4Y2hhbmdlIHN1cHBvcnQuIEhvdyBjYW4gSSBoZWxwIHlvdSB0b2RheT88L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xIj5TdXBwb3J0IEFnZW50ICZidWxsOyBKdXN0IG5vdzwvcD48L2Rpdj48L2Rpdj4nOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VXNlcikgeyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2NoYXQvbWVzc2FnZXM/dXNlcklkPTEnKTsgDQogICAgICAgICAgICAgICAgICAgIGRhdGEubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4geyBhcHBlbmRDaGF0TWVzc2FnZShtc2csIG1zZy5zZW5kZXJJZCA9PT0gY3VycmVudFVzZXIuaWQpOyB9KTsgDQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnZXRHdWVzdENoYXRJbmZvKCkpIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGcgPSBnZXRHdWVzdENoYXRJbmZvKCk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnZ3Vlc3QtY2hhdC9tZXNzYWdlcz9lbWFpbD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGcuZW1haWwpKTsgDQogICAgICAgICAgICAgICAgICAgIGRhdGEubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4geyBhcHBlbmRHdWVzdENoYXRNZXNzYWdlKG1zZyk7IH0pOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgY2hhdDonLCBlcnJvcik7IH0gDQogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7IH0sIDEwMCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbWFya0NoYXRBc1JlYWQoKSB7IGlmICghY3VycmVudFVzZXIpIHJldHVybjsgdHJ5IHsgYXdhaXQgYXBpQ2FsbCgnY2hhdC9tYXJrLXJlYWQnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHNlbmRlcklkOiAxIH0gfSk7IGNvbnN0IGhlYWRlckJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlYWRlckNoYXRCYWRnZScpOyBjb25zdCBmbG9hdEJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJhZGdlJyk7IGlmIChoZWFkZXJCYWRnZSkgaGVhZGVyQmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IGlmIChmbG9hdEJhZGdlKSBmbG9hdEJhZGdlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH0gY2F0Y2ggKGVycm9yKSB7fSB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIG1hcmtBZG1pbkNoYXRBc1JlYWQodXNlcklkKSB7IGlmICghaXNBZG1pbiB8fCAhdXNlcklkKSByZXR1cm47IHRyeSB7IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2NoYXQvbWFyay1yZWFkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBzZW5kZXJJZDogdXNlcklkIH0gfSk7IGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQ2hhdEJhZGdlJyk7IGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gY2F0Y2ggKGVycm9yKSB7fSB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIG1hcmtBZG1pbkd1ZXN0QXNSZWFkKGVtYWlsKSB7IGlmICghaXNBZG1pbiB8fCAhZW1haWwpIHJldHVybjsgdHJ5IHsgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vZ3Vlc3QtbWVzc2FnZXMvbWFyay1yZWFkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbDogZW1haWwgfSB9KTsgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0QmFkZ2UnKTsgaWYgKGJhZGdlKSBiYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgfSBjYXRjaCAoZXJyb3IpIHt9IH0NCg0KICAgICAgICBmdW5jdGlvbiBzY3JvbGxDaGF0VG9Cb3R0b20oKSB7IGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0TWVzc2FnZXNMaXN0Jyk7IGlmIChjb250YWluZXIpIHNldFRpbWVvdXQoKCkgPT4geyBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodDsgfSwgNTApOyB9DQoNCiAgICAgICAgZnVuY3Rpb24gYXBwZW5kQ2hhdE1lc3NhZ2UobXNnLCBpc093bikgeyANCiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0TWVzc2FnZXNMaXN0Jyk7IA0KICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9IGlzT3duID8gJ2ZsZXggZ2FwLTMganVzdGlmeS1lbmQnIDogJ2ZsZXggZ2FwLTMnOyANCiAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZShtc2cuY3JlYXRlZEF0KS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyANCiAgICAgICAgICAgIGlmIChpc093bikgeyANCiAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtbGcgcC0zIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJsYWNrIj4ke21zZy5tZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEgdGV4dC1yaWdodCI+JHt0aW1lfTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJ3LTggaC04IGJnLWdyYXktNzAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLXVzZXIgdGV4dC13aGl0ZSB0ZXh0LXhzIj48L2k+PC9kaXY+YDsgDQogICAgICAgICAgICB9IGVsc2UgeyANCiAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InctOCBoLTggYmctZW1lcmFsZC02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIHRleHQteHMiPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJjaGF0LW1zZy1hZG1pbiBwLTMgbWF4LXctWzgwJV0iPjxwIGNsYXNzPSJ0ZXh0LXNtIj4ke21zZy5tZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEiPiR7bXNnLnNlbmRlck5hbWV9ICZidWxsOyAke3RpbWV9PC9wPjwvZGl2PmA7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgIHNjcm9sbENoYXRUb0JvdHRvbSgpOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGFwcGVuZEd1ZXN0Q2hhdE1lc3NhZ2UobXNnKSB7IA0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRNZXNzYWdlc0xpc3QnKTsgDQogICAgICAgICAgICBjb25zdCB0aW1lID0gbmV3IERhdGUobXNnLmNyZWF0ZWRBdCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgDQogICAgICAgICAgICBpZiAobXNnLmFkbWluUmVwbHkpIHsgDQogICAgICAgICAgICAgICAgY29uc3QgcmVwbHlEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgcmVwbHlEaXYuY2xhc3NOYW1lID0gJ2ZsZXggZ2FwLTMnOyANCiAgICAgICAgICAgICAgICByZXBseURpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0idy04IGgtOCBiZy1ibHVlLTUwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS1oZWFkc2V0IHRleHQtd2hpdGUgdGV4dC14cyI+PC9pPjwvZGl2PjxkaXYgY2xhc3M9ImNoYXQtbXNnLWFkbWluIHAtMyBtYXgtdy1bODAlXSI+PHAgY2xhc3M9InRleHQtc20iPiR7bXNnLmFkbWluUmVwbHl9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMSI+U3VwcG9ydCBBZ2VudCAmYnVsbDsgJHtuZXcgRGF0ZShtc2cucmVwbGllZEF0KS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocmVwbHlEaXYpOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ2ZsZXggZ2FwLTMganVzdGlmeS1lbmQnOyANCiAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY2hhdC1tc2ctZ3Vlc3QgcC0zIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttc2cubWVzc2FnZX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtdC0xIHRleHQtcmlnaHQiPiR7dGltZX08L3A+PC9kaXY+PGRpdiBjbGFzcz0idy04IGgtOCBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS11c2VyIHRleHQtd2hpdGUgdGV4dC14cyI+PC9pPjwvZGl2PmA7IA0KICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgc2Nyb2xsQ2hhdFRvQm90dG9tKCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2VuZENoYXRNZXNzYWdlKCkgeyANCiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRJbnB1dCcpOyANCiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBpbnB1dC52YWx1ZS50cmltKCk7IA0KICAgICAgICAgICAgaWYgKCFtZXNzYWdlKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRVc2VyKSB7IA0KICAgICAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdjaGF0L3NlbmQnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHJlY2lwaWVudElkOiAxLCBtZXNzYWdlOiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGF0TWVzc2FnZSh7IHNlbmRlcklkOiBjdXJyZW50VXNlci5pZCwgc2VuZGVyTmFtZTogY3VycmVudFVzZXIubmFtZSwgbWVzc2FnZTogbWVzc2FnZSwgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSwgdHJ1ZSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0R3Vlc3RDaGF0SW5mbygpKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBnID0gZ2V0R3Vlc3RDaGF0SW5mbygpOyANCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnZ3Vlc3QtY2hhdC9zZW5kJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbDogZy5lbWFpbCwgbmFtZTogZy5uYW1lLCBtZXNzYWdlOiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgICAgICBhcHBlbmRHdWVzdENoYXRNZXNzYWdlKHsgbWVzc2FnZTogbWVzc2FnZSwgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciB5b3VyIG5hbWUgYW5kIGVtYWlsIGZpcnN0JywgJ2Vycm9yJyk7IHJldHVybjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICcnOyBwbGF5U291bmQoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyANCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc2VuZDonLCBlcnJvcik7IHNob3dBbGVydCgnRmFpbGVkIHRvIHNlbmQ6ICcgKyAoZXJyb3IubWVzc2FnZSB8fCAnUGxlYXNlIGNoZWNrIHlvdXIgY29ubmVjdGlvbicpLCAnZXJyb3InKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhcnRDaGF0UG9sbGluZygpIHsgDQogICAgICAgICAgICBpZiAoY2hhdFBvbGxpbmdJbnRlcnZhbCkgY2xlYXJJbnRlcnZhbChjaGF0UG9sbGluZ0ludGVydmFsKTsgDQogICAgICAgICAgICBjaGF0UG9sbGluZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4geyANCiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1cHBvcnRNb2RhbCcpLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykgPT09IGZhbHNlKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFVzZXIpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnY2hhdC9tZXNzYWdlcz91c2VySWQ9MScpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVucmVhZCA9IGRhdGEubWVzc2FnZXMuZmlsdGVyKG0gPT4gbS5zZW5kZXJJZCAhPT0gY3VycmVudFVzZXIuaWQgJiYgIW0uaXNSZWFkKTsgDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5yZWFkLmxlbmd0aCA+IDApIHsgbG9hZENoYXRIaXN0b3J5KCk7IG1hcmtDaGF0QXNSZWFkKCk7IHBsYXlTb3VuZCgpOyB9IA0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdldEd1ZXN0Q2hhdEluZm8oKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGcgPSBnZXRHdWVzdENoYXRJbmZvKCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2d1ZXN0LWNoYXQvbWVzc2FnZXM/ZW1haWw9JyArIGVuY29kZVVSSUNvbXBvbmVudChnLmVtYWlsKSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzTmV3ID0gZGF0YS5tZXNzYWdlcy5zb21lKG0gPT4gbS5hZG1pblJlcGx5ICYmICFtLmlzUmVhZCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc05ldykgeyBsb2FkQ2hhdEhpc3RvcnkoKTsgcGxheVNvdW5kKCk7IH0gDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9IA0KICAgICAgICAgICAgfSwgNTAwMCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tVbnJlYWRNZXNzYWdlcygpIHsgDQogICAgICAgICAgICBpZiAoIWN1cnJlbnRVc2VyKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2NoYXQvdW5yZWFkLWNvdW50Jyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlckJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlYWRlckNoYXRCYWRnZScpOyANCiAgICAgICAgICAgICAgICBjb25zdCBmbG9hdEJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJhZGdlJyk7IA0KICAgICAgICAgICAgICAgIGlmIChkYXRhLnVucmVhZENvdW50ID4gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlckJhZGdlKSB7IGhlYWRlckJhZGdlLnRleHRDb250ZW50ID0gZGF0YS51bnJlYWRDb3VudDsgaGVhZGVyQmFkZ2UuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgICAgIGlmIChmbG9hdEJhZGdlKSB7IGZsb2F0QmFkZ2UudGV4dENvbnRlbnQgPSBkYXRhLnVucmVhZENvdW50OyBmbG9hdEJhZGdlLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7IH0gDQogICAgICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgICAgIGlmIChoZWFkZXJCYWRnZSkgaGVhZGVyQmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoZmxvYXRCYWRnZSkgZmxvYXRCYWRnZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcGxheVNvdW5kKCkgeyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSgpOyANCiAgICAgICAgICAgICAgICBjb25zdCBvc2MgPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpOyANCiAgICAgICAgICAgICAgICBjb25zdCBnYWluID0gY3R4LmNyZWF0ZUdhaW4oKTsgDQogICAgICAgICAgICAgICAgb3NjLmNvbm5lY3QoZ2Fpbik7IGdhaW4uY29ubmVjdChjdHguZGVzdGluYXRpb24pOyANCiAgICAgICAgICAgICAgICBvc2MuZnJlcXVlbmN5LnZhbHVlID0gODAwOyBvc2MudHlwZSA9ICdzaW5lJzsgDQogICAgICAgICAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAuMSwgY3R4LmN1cnJlbnRUaW1lKTsgDQogICAgICAgICAgICAgICAgZ2Fpbi5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC4wMDEsIGN0eC5jdXJyZW50VGltZSArIDAuMyk7IA0KICAgICAgICAgICAgICAgIG9zYy5zdGFydChjdHguY3VycmVudFRpbWUpOyBvc2Muc3RvcChjdHguY3VycmVudFRpbWUgKyAwLjMpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluQ2hhdENvbnZlcnNhdGlvbnMoKSB7IA0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgW3VzZXJEYXRhLCBndWVzdERhdGFdID0gYXdhaXQgUHJvbWlzZS5hbGwoWw0KICAgICAgICAgICAgICAgICAgICBhcGlDYWxsKCdhZG1pbi9jaGF0L2NvbnZlcnNhdGlvbnMnKS5jYXRjaCgoKSA9PiAoe2NvbnZlcnNhdGlvbnM6IFtdfSkpLCANCiAgICAgICAgICAgICAgICAgICAgYXBpQ2FsbCgnYWRtaW4vZ3Vlc3QtbWVzc2FnZXMnKS5jYXRjaCgoKSA9PiAoe2NvbnZlcnNhdGlvbnM6IFtdfSkpDQogICAgICAgICAgICAgICAgXSk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRDb252ZXJzYXRpb25zJyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQ2hhdEJhZGdlJyk7IA0KICAgICAgICAgICAgICAgIGxldCB0b3RhbFVucmVhZCA9IDA7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgY29uc3QgYWxsQ29udmVyc2F0aW9ucyA9IFtdOyANCiAgICAgICAgICAgICAgICAodXNlckRhdGEuY29udmVyc2F0aW9ucyB8fCBbXSkuZm9yRWFjaChjID0+IHsgYWxsQ29udmVyc2F0aW9ucy5wdXNoKHsgLi4uYywgdHlwZTogJ3VzZXInLCBzb3J0S2V5OiBjLmxhc3RNZXNzYWdlVGltZSB9KTsgfSk7IA0KICAgICAgICAgICAgICAgIChndWVzdERhdGEuY29udmVyc2F0aW9ucyB8fCBbXSkuZm9yRWFjaChjID0+IHsgYWxsQ29udmVyc2F0aW9ucy5wdXNoKHsgLi4uYywgdHlwZTogJ2d1ZXN0Jywgc29ydEtleTogYy5sYXN0TWVzc2FnZVRpbWUgfSk7IH0pOyANCiAgICAgICAgICAgICAgICBhbGxDb252ZXJzYXRpb25zLnNvcnQoKGEsIGIpID0+IG5ldyBEYXRlKGIuc29ydEtleSkgLSBuZXcgRGF0ZShhLnNvcnRLZXkpKTsgDQogICAgICAgICAgICAgICAgaWYgKGFsbENvbnZlcnNhdGlvbnMubGVuZ3RoID09PSAwKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyBtZXNzYWdlcyB5ZXQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgYWxsQ29udmVyc2F0aW9ucy5mb3JFYWNoKGNvbnYgPT4geyANCiAgICAgICAgICAgICAgICAgICAgdG90YWxVbnJlYWQgKz0gY29udi51bnJlYWRDb3VudCB8fCAwOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ2ZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHAtMyByb3VuZGVkLXhsIGhvdmVyOmJnLXdoaXRlLzUgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1jb2xvcnMnOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmdDbGFzcyA9IChjb252LnVucmVhZENvdW50IHx8IDApID4gMCA/ICdiZy1lbWVyYWxkLTYwMCcgOiAnYmctZ3JheS02MDAnOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZUxhYmVsID0gY29udi50eXBlID09PSAnZ3Vlc3QnID8gJzxzcGFuIGNsYXNzPSJ0ZXh0LVsxMHB4XSBiZy1hbWJlci01MDAgdGV4dC1ibGFjayBweC0xIHJvdW5kZWQgbWwtMSI+R1VFU1Q8L3NwYW4+JyA6ICcnOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgJHtiZ0NsYXNzfSByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtc20iPiR7KGNvbnYudXNlck5hbWUgfHwgY29udi5uYW1lIHx8ICdVJykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgtMSBtaW4tdy0wIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSB0cnVuY2F0ZSI+JHtjb252LnVzZXJOYW1lIHx8IGNvbnYubmFtZSB8fCBjb252LnVzZXJFbWFpbCB8fCBjb252LmVtYWlsIHx8ICdVbmtub3duJ30ke3R5cGVMYWJlbH08L3A+JHsoY29udi51bnJlYWRDb3VudCB8fCAwKSA+IDAgPyBgPHNwYW4gY2xhc3M9InctNSBoLTUgYmctcm9zZS01MDAgcm91bmRlZC1mdWxsIHRleHQteHMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSBmb250LWJvbGQgbWwtMiI+JHtjb252LnVucmVhZENvdW50fTwvc3Bhbj5gIDogJyd9PC9kaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCB0cnVuY2F0ZSI+JHtjb252Lmxhc3RNZXNzYWdlIHx8ICdObyBtZXNzYWdlcyB5ZXQnfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnYudHlwZSA9PT0gJ2d1ZXN0JykgeyBkaXYub25jbGljayA9ICgpID0+IG9wZW5BZG1pbkd1ZXN0Q2hhdChjb252LmVtYWlsLCBjb252Lm5hbWUpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgZGl2Lm9uY2xpY2sgPSAoKSA9PiBvcGVuQWRtaW5DaGF0KGNvbnYudXNlcklkLCBjb252LnVzZXJOYW1lLCBjb252LnVzZXJFbWFpbCk7IH0gDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgaWYgKGJhZGdlKSB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxVbnJlYWQgPiAwKSB7IGJhZGdlLnRleHRDb250ZW50ID0gdG90YWxVbnJlYWQ7IGJhZGdlLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFkbWluIGNoYXQ6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gb3BlbkFkbWluR3Vlc3RDaGF0KGVtYWlsLCBuYW1lKSB7IA0KICAgICAgICAgICAgYWRtaW5DaGF0R3Vlc3RFbWFpbCA9IGVtYWlsOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRQYW5lbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRVc2VyTmFtZScpLnRleHRDb250ZW50ID0gKG5hbWUgfHwgJ0d1ZXN0JykgKyAnIChHdWVzdCknOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRVc2VyRW1haWwnKS50ZXh0Q29udGVudCA9IGVtYWlsOyANCiAgICAgICAgICAgIG1hcmtBZG1pbkd1ZXN0QXNSZWFkKGVtYWlsKTsgDQogICAgICAgICAgICBsb2FkQWRtaW5HdWVzdENoYXRNZXNzYWdlcygpOyANCiAgICAgICAgICAgIGlmIChhZG1pbkNoYXRQb2xsaW5nKSBjbGVhckludGVydmFsKGFkbWluQ2hhdFBvbGxpbmcpOyANCiAgICAgICAgICAgIGFkbWluQ2hhdFBvbGxpbmcgPSBzZXRJbnRlcnZhbChsb2FkQWRtaW5HdWVzdENoYXRNZXNzYWdlcywgNDAwMCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluR3Vlc3RDaGF0TWVzc2FnZXMoKSB7IA0KICAgICAgICAgICAgaWYgKCFhZG1pbkNoYXRHdWVzdEVtYWlsIHx8ICFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2d1ZXN0LWNoYXQvbWVzc2FnZXM/ZW1haWw9JyArIGVuY29kZVVSSUNvbXBvbmVudChhZG1pbkNoYXRHdWVzdEVtYWlsKSk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRNZXNzYWdlcycpOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGRhdGEubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKG1zZy5jcmVhdGVkQXQpLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZmxleCBnYXAtMic7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InctNiBoLTYgYmctZ3JheS02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtdXNlciB0ZXh0LXdoaXRlIHRleHQtWzEwcHhdIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iY2hhdC1tc2ctZ3Vlc3QgcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttc2cubWVzc2FnZX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtdC0xIj4ke21zZy5uYW1lfSAmYnVsbDsgJHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgICAgICBpZiAobXNnLmFkbWluUmVwbHkpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBseURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5RGl2LmNsYXNzTmFtZSA9ICdmbGV4IGdhcC0yIGp1c3RpZnktZW5kJzsgDQogICAgICAgICAgICAgICAgICAgICAgICByZXBseURpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY2hhdC1tc2ctYWRtaW4gcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttc2cuYWRtaW5SZXBseX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xIHRleHQtcmlnaHQiPiR7bmV3IERhdGUobXNnLnJlcGxpZWRBdCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KX08L3A+PC9kaXY+YDsgDQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocmVwbHlEaXYpOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0OyB9LCAxMDApOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGd1ZXN0IG1lc3NhZ2VzOicsIGVycm9yKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNlbmRBZG1pbkd1ZXN0UmVwbHkoKSB7IA0KICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0SW5wdXQnKSwgbWVzc2FnZSA9IGlucHV0LnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICBpZiAoIW1lc3NhZ2UgfHwgIWFkbWluQ2hhdEd1ZXN0RW1haWwgfHwgIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9ndWVzdC1tZXNzYWdlcy9yZXBseScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgZW1haWw6IGFkbWluQ2hhdEd1ZXN0RW1haWwsIHJlcGx5OiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRNZXNzYWdlcycpOyANCiAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdmbGV4IGdhcC0yIGp1c3RpZnktZW5kJzsgDQogICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JywgfSk7IA0KICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY2hhdC1tc2ctYWRtaW4gcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEgdGV4dC1yaWdodCI+JHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7IA0KICAgICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7IHBsYXlTb3VuZCgpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzZW5kIGd1ZXN0IHJlcGx5OicsIGVycm9yKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIG9wZW5BZG1pbkNoYXQodXNlcklkLCB1c2VyTmFtZSwgdXNlckVtYWlsKSB7IA0KICAgICAgICAgICAgYWRtaW5DaGF0VXNlcklkID0gdXNlcklkOyBhZG1pbkNoYXRHdWVzdEVtYWlsID0gbnVsbDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0UGFuZWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0VXNlck5hbWUnKS50ZXh0Q29udGVudCA9IHVzZXJOYW1lIHx8ICdVc2VyJzsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0VXNlckVtYWlsJykudGV4dENvbnRlbnQgPSB1c2VyRW1haWwgfHwgJyc7IA0KICAgICAgICAgICAgbWFya0FkbWluQ2hhdEFzUmVhZCh1c2VySWQpOyANCiAgICAgICAgICAgIGxvYWRBZG1pbkNoYXRNZXNzYWdlcygpOyANCiAgICAgICAgICAgIGlmIChhZG1pbkNoYXRQb2xsaW5nKSBjbGVhckludGVydmFsKGFkbWluQ2hhdFBvbGxpbmcpOyANCiAgICAgICAgICAgIGFkbWluQ2hhdFBvbGxpbmcgPSBzZXRJbnRlcnZhbChsb2FkQWRtaW5DaGF0TWVzc2FnZXMsIDQwMDApOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGNsb3NlQWRtaW5DaGF0KCkgeyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRQYW5lbCcpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyANCiAgICAgICAgICAgIGFkbWluQ2hhdFVzZXJJZCA9IG51bGw7IGFkbWluQ2hhdEd1ZXN0RW1haWwgPSBudWxsOyANCiAgICAgICAgICAgIGlmIChhZG1pbkNoYXRQb2xsaW5nKSB7IGNsZWFySW50ZXJ2YWwoYWRtaW5DaGF0UG9sbGluZyk7IGFkbWluQ2hhdFBvbGxpbmcgPSBudWxsOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluQ2hhdE1lc3NhZ2VzKCkgeyANCiAgICAgICAgICAgIGlmICghYWRtaW5DaGF0VXNlcklkIHx8ICFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2NoYXQvbWVzc2FnZXM/dXNlcklkPScgKyBhZG1pbkNoYXRVc2VySWQpOyANCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0TWVzc2FnZXMnKTsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyANCiAgICAgICAgICAgICAgICBkYXRhLm1lc3NhZ2VzLmZvckVhY2gobXNnID0+IHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPd24gPSBtc2cuc2VuZGVySWQgPT09IGN1cnJlbnRVc2VyLmlkOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKG1zZy5jcmVhdGVkQXQpLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gaXNPd24gPyAnZmxleCBnYXAtMiBqdXN0aWZ5LWVuZCcgOiAnZmxleCBnYXAtMic7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNPd24pIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtbGcgcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJsYWNrIj4ke21zZy5tZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEgdGV4dC1yaWdodCI+JHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InctNiBoLTYgYmctZW1lcmFsZC02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtdXNlciB0ZXh0LXdoaXRlIHRleHQtWzEwcHhdIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgbWF4LXctWzgwJV0iPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtd2hpdGUiPiR7bXNnLm1lc3NhZ2V9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMSI+JHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7IH0sIDEwMCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgYWRtaW4gbWVzc2FnZXM6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2VuZEFkbWluUmVwbHkoKSB7IA0KICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0SW5wdXQnKSwgbWVzc2FnZSA9IGlucHV0LnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICBpZiAoIW1lc3NhZ2UgfHwgIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBpZiAoYWRtaW5DaGF0R3Vlc3RFbWFpbCkgeyANCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vZ3Vlc3QtbWVzc2FnZXMvcmVwbHknLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IGVtYWlsOiBhZG1pbkNoYXRHdWVzdEVtYWlsLCByZXBseTogbWVzc2FnZSB9IH0pOyANCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFkbWluQ2hhdFVzZXJJZCkgeyANCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnY2hhdC9zZW5kJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyByZWNpcGllbnRJZDogYWRtaW5DaGF0VXNlcklkLCBtZXNzYWdlOiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IHJldHVybjsgfSANCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0TWVzc2FnZXMnKTsgDQogICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZmxleCBnYXAtMiBqdXN0aWZ5LWVuZCc7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIH0pOyANCiAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtbGcgcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJsYWNrIj4ke21lc3NhZ2V9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMSB0ZXh0LXJpZ2h0Ij4ke3RpbWV9PC9wPjwvZGl2PmA7IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodDsgDQogICAgICAgICAgICAgICAgaW5wdXQudmFsdWUgPSAnJzsgcGxheVNvdW5kKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNlbmQgcmVwbHk6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IG1hcmtldENoYXJ0SGlzdG9yeSA9IFtdOw0KICAgICAgICBsZXQgbWFya2V0Q2hhcnRJbnRlcnZhbCA9IG51bGw7DQogICAgICAgIGxldCBjdXJyZW50VGltZVJhbmdlID0gMjQ7DQogICAgICAgIGxldCBtYXJrZXRDaGFydFB1bHNlID0gMDsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBmZXRjaENvaW5HZWNrb0NoYXJ0KGNvaW5JZCwgaG91cnMpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF5cyA9IGhvdXJzIDw9IDI0ID8gJzEnIDogaG91cnMgPD0gMTY4ID8gJzcnIDogJzMwJzsNCiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgaHR0cHM6Ly9hcGkuY29pbmdlY2tvLmNvbS9hcGkvdjMvY29pbnMvJHtjb2luSWR9L21hcmtldF9jaGFydD92c19jdXJyZW5jeT11c2QmZGF5cz0ke2RheXN9YCk7DQogICAgICAgICAgICAgICAgaWYgKCFyZXMub2spIHRocm93IG5ldyBFcnJvcignQ0cgcmF0ZSBsaW1pdCcpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlcyA9IGRhdGEucHJpY2VzLm1hcChwID0+IHBbMV0pOw0KICAgICAgICAgICAgICAgIGlmIChob3VycyA8PSAyNCkgcmV0dXJuIHByaWNlcy5zbGljZSgtTWF0aC5taW4ocHJpY2VzLmxlbmd0aCwgNDgpKTsNCiAgICAgICAgICAgICAgICBpZiAoaG91cnMgPD0gMTY4KSByZXR1cm4gcHJpY2VzOw0KICAgICAgICAgICAgICAgIHJldHVybiBwcmljZXMuZmlsdGVyKChfLCBpKSA9PiBpICUgNCA9PT0gMCk7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NoYXJ0IEFQSSBmYWlsZWQsIHVzaW5nIHNpbXVsYXRlZCBkYXRhJyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlU2ltdWxhdGVkQ2hhcnQoaG91cnMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0ZWRDaGFydChob3Vycykgew0KICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gW107DQogICAgICAgICAgICBjb25zdCBiYXNlUHJpY2UgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2UgfHwgNTAwMDA7DQogICAgICAgICAgICBjb25zdCB2b2xhdGlsaXR5ID0gaG91cnMgPD0gMjQgPyAwLjAwOCA6IGhvdXJzIDw9IDE2OCA/IDAuMDE1IDogMC4wMzsNCiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gaG91cnMgPD0gMjQgPyA0OCA6IGhvdXJzIDw9IDE2OCA/IDE2OCA6IDE4MDsNCiAgICAgICAgICAgIGxldCBwcmljZSA9IGJhc2VQcmljZSAqICgxIC0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogdm9sYXRpbGl0eSAqIDUpOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7DQogICAgICAgICAgICAgICAgcHJpY2UgPSBwcmljZSAqICgxICsgKE1hdGgucmFuZG9tKCkgLSAwLjQ4KSAqIHZvbGF0aWxpdHkpOw0KICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHByaWNlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV0gPSBiYXNlUHJpY2U7DQogICAgICAgICAgICByZXR1cm4gcG9pbnRzOw0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZE1hcmtldENoYXJ0KCkgew0KICAgICAgICAgICAgY29uc3QgY29pbklkID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LmNnSWQgfHwgJ2JpdGNvaW4nOw0KICAgICAgICAgICAgbWFya2V0Q2hhcnRIaXN0b3J5ID0gYXdhaXQgZmV0Y2hDb2luR2Vja29DaGFydChjb2luSWQsIGN1cnJlbnRUaW1lUmFuZ2UpOw0KICAgICAgICAgICAgc3RhcnRNYXJrZXRDaGFydEFuaW1hdGlvbigpOw0KICAgICAgICAgICAgdXBkYXRlTWFya2V0U3RhdHMoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGRyYXdNYXJrZXRDaGFydEZyYW1lKCkgew0KICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcmtldENoYXJ0Jyk7DQogICAgICAgICAgICBpZiAoIWNhbnZhcykgcmV0dXJuOw0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gY2FudmFzLnBhcmVudEVsZW1lbnQ7DQogICAgICAgICAgICBpZiAoIWNvbnRhaW5lciB8fCBjb250YWluZXIub2Zmc2V0V2lkdGggPT09IDApIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBjYW52YXMud2lkdGggPSBjb250YWluZXIub2Zmc2V0V2lkdGg7DQogICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBjYW52YXMuaGVpZ2h0ID0gMjAwOw0KICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gbWFya2V0Q2hhcnRIaXN0b3J5Ow0KICAgICAgICAgICAgaWYgKCFwb2ludHMgfHwgcG9pbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOw0KDQogICAgICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi5wb2ludHMpLCBtYXggPSBNYXRoLm1heCguLi5wb2ludHMpOw0KICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gfHwgMTsNCiAgICAgICAgICAgIGNvbnN0IGlzVXAgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdID49IHBvaW50c1swXTsNCiAgICAgICAgICAgIGNvbnN0IGxpbmVDb2xvciA9IGlzVXAgPyAnIzEwYjk4MScgOiAnI2Y0M2Y1ZSc7DQoNCiAgICAgICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7DQoNCiAgICAgICAgICAgIC8vIFN1YnRsZSBob3Jpem9udGFsIGdyaWQNCiAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMDMpJzsNCiAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA0OyBpKyspIHsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gKGhlaWdodCAvIDQpICogaTsNCiAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7IGN0eC5tb3ZlVG8oMCwgeSk7IGN0eC5saW5lVG8od2lkdGgsIHkpOyBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEdyYWRpZW50IGFyZWEgZmlsbA0KICAgICAgICAgICAgY29uc3QgZ3JhZCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCBoZWlnaHQpOw0KICAgICAgICAgICAgZ3JhZC5hZGRDb2xvclN0b3AoMCwgaXNVcCA/ICdyZ2JhKDE2LDE4NSwxMjksMC4zKScgOiAncmdiYSgyNDQsNjMsOTQsMC4yNSknKTsNCiAgICAgICAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAuNSwgaXNVcCA/ICdyZ2JhKDE2LDE4NSwxMjksMC4xKScgOiAncmdiYSgyNDQsNjMsOTQsMC4wOCknKTsNCiAgICAgICAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDEsICdyZ2JhKDAsMCwwLDApJyk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5tb3ZlVG8oMCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeCA9IChpIC8gKHBvaW50cy5sZW5ndGggLSAxKSkgKiB3aWR0aDsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gaGVpZ2h0IC0gKChwIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuOCAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgY3R4LmxpbmVUbyh4LCB5KTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlggPSAoKGkgLSAxKSAvIChwb2ludHMubGVuZ3RoIC0gMSkpICogd2lkdGg7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZZID0gaGVpZ2h0IC0gKChwb2ludHNbaS0xXSAtIG1pbikgLyByYW5nZSkgKiBoZWlnaHQgKiAwLjggLSBoZWlnaHQgKiAwLjE7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGN4ID0gKHByZXZYICsgeCkgLyAyOw0KICAgICAgICAgICAgICAgICAgICBjdHguYmV6aWVyQ3VydmVUbyhjeCwgcHJldlksIGN4LCB5LCB4LCB5KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGN0eC5saW5lVG8od2lkdGgsIGhlaWdodCk7DQogICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7DQogICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gZ3JhZDsNCiAgICAgICAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgICAgICAgIC8vIExpbmUgc3Ryb2tlIHdpdGggZ2xvdw0KICAgICAgICAgICAgY3R4LnNhdmUoKTsNCiAgICAgICAgICAgIGN0eC5zaGFkb3dDb2xvciA9IGxpbmVDb2xvcjsNCiAgICAgICAgICAgIGN0eC5zaGFkb3dCbHVyID0gODsNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeCA9IChpIC8gKHBvaW50cy5sZW5ndGggLSAxKSkgKiB3aWR0aDsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gaGVpZ2h0IC0gKChwIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuOCAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgY3R4Lm1vdmVUbyh4LCB5KTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlggPSAoKGkgLSAxKSAvIChwb2ludHMubGVuZ3RoIC0gMSkpICogd2lkdGg7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZZID0gaGVpZ2h0IC0gKChwb2ludHNbaS0xXSAtIG1pbikgLyByYW5nZSkgKiBoZWlnaHQgKiAwLjggLSBoZWlnaHQgKiAwLjE7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGN4ID0gKHByZXZYICsgeCkgLyAyOw0KICAgICAgICAgICAgICAgICAgICBjdHguYmV6aWVyQ3VydmVUbyhjeCwgcHJldlksIGN4LCB5LCB4LCB5KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IGxpbmVDb2xvcjsNCiAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAyLjU7DQogICAgICAgICAgICBjdHgubGluZUNhcCA9ICdyb3VuZCc7DQogICAgICAgICAgICBjdHgubGluZUpvaW4gPSAncm91bmQnOw0KICAgICAgICAgICAgY3R4LnN0cm9rZSgpOw0KICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTsNCg0KICAgICAgICAgICAgLy8gQW5pbWF0ZWQgbGVhZGluZyBkb3QNCiAgICAgICAgICAgIGNvbnN0IGxhc3RYID0gd2lkdGggLSA0Ow0KICAgICAgICAgICAgY29uc3QgbGFzdFkgPSBoZWlnaHQgLSAoKHBvaW50c1twb2ludHMubGVuZ3RoLTFdIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuOCAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgIG1hcmtldENoYXJ0UHVsc2UgKz0gMC4wNjsNCiAgICAgICAgICAgIGNvbnN0IHB1bHNlUiA9IDQgKyBNYXRoLnNpbihtYXJrZXRDaGFydFB1bHNlICogMikgKiAxLjU7DQogICAgICAgICAgICBjb25zdCBnbG93UiA9IDcgKyBNYXRoLnNpbihtYXJrZXRDaGFydFB1bHNlICogMikgKiAzOw0KDQogICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICAgICAgICBjdHguYXJjKGxhc3RYLCBsYXN0WSwgZ2xvd1IsIDAsIE1hdGguUEkgKiAyKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBpc1VwID8gJ3JnYmEoMTYsMTg1LDEyOSwwLjIpJyA6ICdyZ2JhKDI0NCw2Myw5NCwwLjIpJzsNCiAgICAgICAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5hcmMobGFzdFgsIGxhc3RZLCBwdWxzZVIsIDAsIE1hdGguUEkgKiAyKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBsaW5lQ29sb3I7DQogICAgICAgICAgICBjdHguZmlsbCgpOw0KICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnOw0KICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDI7DQogICAgICAgICAgICBjdHguc3Ryb2tlKCk7DQoNCiAgICAgICAgICAgIC8vIFByaWNlIGxhYmVsIGF0IHRoZSBkb3QNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7DQogICAgICAgICAgICBjdHguZm9udCA9ICdib2xkIDExcHggSW50ZXIsIHNhbnMtc2VyaWYnOw0KICAgICAgICAgICAgY3R4LnRleHRBbGlnbiA9ICdyaWdodCc7DQogICAgICAgICAgICBjb25zdCB2YWxTdHIgPSAnJCcgKyBwb2ludHNbcG9pbnRzLmxlbmd0aC0xXS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOw0KICAgICAgICAgICAgY3R4LmZpbGxUZXh0KHZhbFN0ciwgbGFzdFggLSAxNCwgbGFzdFkgLSAxMCk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB0aWNrTWFya2V0Q2hhcnQoKSB7DQogICAgICAgICAgICBtYXJrZXRDaGFydFB1bHNlICs9IDAuMDY7DQogICAgICAgICAgICBpZiAoIW1hcmtldENoYXJ0SGlzdG9yeSB8fCBtYXJrZXRDaGFydEhpc3RvcnkubGVuZ3RoID09PSAwKSByZXR1cm47DQogICAgICAgICAgICAvLyBMaXZlIHByaWNlIHVwZGF0ZTogc2hpZnQgYW5kIGFkZCBuZXcgcG9pbnQgYmFzZWQgb24gY3VycmVudCBwcmljZQ0KICAgICAgICAgICAgbWFya2V0Q2hhcnRIaXN0b3J5LnNoaWZ0KCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50UHJpY2UgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2UgfHwgbWFya2V0Q2hhcnRIaXN0b3J5W21hcmtldENoYXJ0SGlzdG9yeS5sZW5ndGggLSAxXTsNCiAgICAgICAgICAgIGNvbnN0IGxhc3RQcmljZSA9IG1hcmtldENoYXJ0SGlzdG9yeVttYXJrZXRDaGFydEhpc3RvcnkubGVuZ3RoIC0gMV07DQogICAgICAgICAgICBjb25zdCBqaXR0ZXIgPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiBsYXN0UHJpY2UgKiAwLjAwMTsNCiAgICAgICAgICAgIG1hcmtldENoYXJ0SGlzdG9yeS5wdXNoKGN1cnJlbnRQcmljZSArIGppdHRlcik7DQogICAgICAgICAgICBkcmF3TWFya2V0Q2hhcnRGcmFtZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhcnRNYXJrZXRDaGFydEFuaW1hdGlvbigpIHsNCiAgICAgICAgICAgIGlmIChtYXJrZXRDaGFydEludGVydmFsKSBjbGVhckludGVydmFsKG1hcmtldENoYXJ0SW50ZXJ2YWwpOw0KICAgICAgICAgICAgZHJhd01hcmtldENoYXJ0RnJhbWUoKTsNCiAgICAgICAgICAgIG1hcmtldENoYXJ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aWNrTWFya2V0Q2hhcnQsIDQwMCk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzdG9wTWFya2V0Q2hhcnRBbmltYXRpb24oKSB7DQogICAgICAgICAgICBpZiAobWFya2V0Q2hhcnRJbnRlcnZhbCkgeyBjbGVhckludGVydmFsKG1hcmtldENoYXJ0SW50ZXJ2YWwpOyBtYXJrZXRDaGFydEludGVydmFsID0gbnVsbDsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2V0VGltZVJhbmdlKGhvdXJzKSB7DQogICAgICAgICAgICBjdXJyZW50VGltZVJhbmdlID0gaG91cnM7DQogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGltZS1idG4nKS5mb3JFYWNoKGJ0biA9PiBidG4uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpOw0KICAgICAgICAgICAgY29uc3QgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLnRpbWUtYnRuW2RhdGEtcmFuZ2U9IiR7aG91cnN9Il1gKTsNCiAgICAgICAgICAgIGlmIChidG4pIGJ0bi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIGF3YWl0IGxvYWRNYXJrZXRDaGFydCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlTWFya2V0U3RhdHMoKSB7DQogICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXTsNCiAgICAgICAgICAgIGlmICghY3J5cHRvKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBwcmljZSA9IGNyeXB0by5wcmljZTsNCiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IGNyeXB0by5jaGFuZ2U7DQogICAgICAgICAgICBjb25zdCB2b2wgPSBjcnlwdG8udm9sdW1lIHx8IHByaWNlICogMjUwMDAwMDA7DQogICAgICAgICAgICBjb25zdCBtY2FwID0gY3J5cHRvLm1hcmtldENhcCB8fCBwcmljZSAqIDE5NTAwMDAwOw0KICAgICAgICAgICAgY29uc3QgaGlnaCA9IHByaWNlICogKDEgKyBNYXRoLmFicyhjaGFuZ2UpICogMC4wMSArIE1hdGgucmFuZG9tKCkgKiAwLjAxKTsNCiAgICAgICAgICAgIGNvbnN0IGxvdyA9IHByaWNlICogKDEgLSBNYXRoLmFicyhjaGFuZ2UpICogMC4wMSAtIE1hdGgucmFuZG9tKCkgKiAwLjAxKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdta3RIaWdoJykudGV4dENvbnRlbnQgPSAnJCcgKyBoaWdoLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21rdExvdycpLnRleHRDb250ZW50ID0gJyQnICsgbG93LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21rdFZvbCcpLnRleHRDb250ZW50ID0gJyQnICsgKHZvbCAvIDFlOSkudG9GaXhlZCgyKSArICdCJzsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdta3RDYXAnKS50ZXh0Q29udGVudCA9ICckJyArIChtY2FwIC8gMWU5KS50b0ZpeGVkKDIpICsgJ0InOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZHJhd0RlcHRoQ2hhcnQoKSB7DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwdGhDaGFydCcpOw0KICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDk2MDAwOw0KICAgICAgICAgICAgY29uc3Qgc2VlZCA9IHNlbGVjdGVkQ3J5cHRvID8gc2VsZWN0ZWRDcnlwdG8uY2hhckNvZGVBdCgwKSA6IDE7DQogICAgICAgICAgICBjb25zdCByID0gKGksIHMpID0+IHsgcmV0dXJuIE1hdGguYWJzKE1hdGguc2luKHNlZWQgKiA5MzAxICsgaSAqIDQ5Mjk3ICsgcyAqIDIzMykpOyB9Ow0KDQogICAgICAgICAgICAvLyBHZW5lcmF0ZSBiaWQgY3VydmUgcG9pbnRzIChsZWZ0IGhhbGYpDQogICAgICAgICAgICBjb25zdCBiaWRQb2ludHMgPSBbXTsNCiAgICAgICAgICAgIGNvbnN0IGJpZFN0ZXBzID0gMjA7DQogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiaWRTdGVwczsgaSsrKSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IGkgLyBiaWRTdGVwczsNCiAgICAgICAgICAgICAgICBjb25zdCBkZXB0aCA9IE1hdGguZXhwKC10ICogMy41KSAqICg1MCArIHIoaSwgMSkgKiAzNSk7DQogICAgICAgICAgICAgICAgYmlkUG9pbnRzLnB1c2goYCR7KDEgLSB0KSAqIDUwfSUgJHsxMDAgLSBkZXB0aH0lYCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBiaWRQb2ludHMucHVzaCgnNTAlIDEwMCUnKTsNCiAgICAgICAgICAgIGJpZFBvaW50cy5wdXNoKCcwJSAxMDAlJyk7DQoNCiAgICAgICAgICAgIC8vIEdlbmVyYXRlIGFzayBjdXJ2ZSBwb2ludHMgKHJpZ2h0IGhhbGYpDQogICAgICAgICAgICBjb25zdCBhc2tQb2ludHMgPSBbXTsNCiAgICAgICAgICAgIGNvbnN0IGFza1N0ZXBzID0gMjA7DQogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBhc2tTdGVwczsgaSsrKSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IGkgLyBhc2tTdGVwczsNCiAgICAgICAgICAgICAgICBjb25zdCBkZXB0aCA9IE1hdGguZXhwKC10ICogMy4yKSAqICg0NSArIHIoaSwgMikgKiAzNSk7DQogICAgICAgICAgICAgICAgYXNrUG9pbnRzLnB1c2goYCR7NTAgKyB0ICogNTB9JSAkezEwMCAtIGRlcHRofSVgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGFza1BvaW50cy5wdXNoKCcxMDAlIDEwMCUnKTsNCiAgICAgICAgICAgIGFza1BvaW50cy5wdXNoKCc1MCUgMTAwJScpOw0KDQogICAgICAgICAgICAvLyBSYW5kb21pemUgYmlkL2FzayByYXRpbw0KICAgICAgICAgICAgY29uc3QgYmlkUGN0ID0gNTUgKyBNYXRoLmZsb29yKHIoMSwgMykgKiAxNSk7DQogICAgICAgICAgICBjb25zdCBhc2tQY3QgPSAxMDAgLSBiaWRQY3Q7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwdGhCaWRQY3QnKS50ZXh0Q29udGVudCA9IGJpZFBjdCArICclJzsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXB0aEFza1BjdCcpLnRleHRDb250ZW50ID0gYXNrUGN0ICsgJyUnOw0KDQogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYA0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDo1MCU7IGhlaWdodDoxMDAlOyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE2LDE4NSwxMjksMC4zNSkgMCUsIHJnYmEoMTYsMTg1LDEyOSwwLjA1KSAxMDAlKTsgY2xpcC1wYXRoOnBvbHlnb24oJHtiaWRQb2ludHMuam9pbignLCcpfSk7IGJvcmRlci1yaWdodDoycHggc29saWQgIzEwYjk4MTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgbGVmdDo4cHg7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOjEwcHg7IGNvbG9yOiMxMGI5ODE7IGZvbnQtd2VpZ2h0OjYwMDsiPkJJRFM8L3A+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDo1MCU7IHdpZHRoOjUwJTsgaGVpZ2h0OjEwMCU7Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjQ0LDYzLDk0LDAuMykgMCUsIHJnYmEoMjQ0LDYzLDk0LDAuMDUpIDEwMCUpOyBjbGlwLXBhdGg6cG9seWdvbigke2Fza1BvaW50cy5qb2luKCcsJyl9KTsgYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICNmNDNmNWU7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IHJpZ2h0OjhweDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6MTBweDsgY29sb3I6I2Y0M2Y1ZTsgZm9udC13ZWlnaHQ6NjAwOyI+QVNLUzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjUwJTsgd2lkdGg6MXB4OyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOyBib3JkZXItbGVmdDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NnB4OyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpOyBwYWRkaW5nOjJweCA4cHg7IGJvcmRlci1yYWRpdXM6NHB4OyI+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6NzAwOyI+JCR7TWF0aC5yb3VuZChwcmljZSkudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICBgOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcmVuZGVyVm9sdW1lTGVhZGVycygpIHsNCiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndm9sdW1lTGVhZGVyc0xpc3QnKTsNCiAgICAgICAgICAgIGlmICghbGlzdCkgcmV0dXJuOw0KICAgICAgICAgICAgY29uc3Qgc29ydGVkID0gT2JqZWN0LmVudHJpZXMoY3J5cHRvRGF0YSkuc29ydCgoYSwgYikgPT4gKGJbMV0udm9sdW1lIHx8IDApIC0gKGFbMV0udm9sdW1lIHx8IDApKS5zbGljZSgwLCA1KTsNCiAgICAgICAgICAgIGNvbnN0IG1heFZvbCA9IHNvcnRlZFswXVsxXS52b2x1bWUgfHwgMTsNCiAgICAgICAgICAgIGxpc3QuaW5uZXJIVE1MID0gc29ydGVkLm1hcCgoW2tleSwgY10pID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwY3QgPSBNYXRoLm1heCg4LCBNYXRoLnJvdW5kKCgoYy52b2x1bWUgfHwgMCkgLyBtYXhWb2wpICogMTAwKSk7DQogICAgICAgICAgICAgICAgY29uc3Qgdm9sU3RyID0gKGMudm9sdW1lIHx8IDApID49IDFlOSA/ICckJyArICgoYy52b2x1bWUgfHwgMCkgLyAxZTkpLnRvRml4ZWQoMSkgKyAnQicgOiAnJCcgKyAoKGMudm9sdW1lIHx8IDApIC8gMWU2KS50b0ZpeGVkKDApICsgJ00nOw0KICAgICAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJHtjLmNvbG9yfSB0ZXh0LXNtIj4ke2MuaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JHtjLnN5bWJvbH0vVVNEVDwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2MubmFtZX08L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4ke3ZvbFN0cn08L3A+PGRpdiBjbGFzcz0idy0yNCBoLTEuNSBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgbXQtMSI+PGRpdiBjbGFzcz0iaC1mdWxsIGJnLWVtZXJhbGQtNTAwIHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCIgc3R5bGU9IndpZHRoOiR7cGN0fSUiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PmA7DQogICAgICAgICAgICB9KS5qb2luKCcnKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHJlbmRlclRvcEdhaW5lcnNMb3NlcnMoKSB7DQogICAgICAgICAgICBjb25zdCBzb3J0ZWQgPSBPYmplY3QuZW50cmllcyhjcnlwdG9EYXRhKS5zb3J0KChhLCBiKSA9PiBiWzFdLmNoYW5nZSAtIGFbMV0uY2hhbmdlKTsNCiAgICAgICAgICAgIGNvbnN0IGdhaW5lcnMgPSBzb3J0ZWQuc2xpY2UoMCwgMyk7DQoNCiAgICAgICAgICAgIGNvbnN0IGdhaW5lcnNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3BHYWluZXJzTGlzdCcpOw0KICAgICAgICAgICAgY29uc3QgcGFpcnNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFkaW5nUGFpcnNMaXN0Jyk7DQoNCiAgICAgICAgICAgIGlmIChnYWluZXJzRWwpIHsNCiAgICAgICAgICAgICAgICBnYWluZXJzRWwuaW5uZXJIVE1MID0gZ2FpbmVycy5tYXAoKFtrZXksIGNdKSA9Pg0KICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz0iY3J5cHRvLWxpc3QtaXRlbSIgb25jbGljaz0ic2VsZWN0Q3J5cHRvKCcke2tleX0nKSI+YCArDQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2MuY29sb3J9IHRleHQtbGcgbXItMyI+JHtjLmljb259PC9kaXY+YCArDQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJmbGV4LTEiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7Yy5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPiR7Yy5uYW1lfTwvcD48L2Rpdj5gICsNCiAgICAgICAgICAgICAgICAgICAgYDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiQke2MucHJpY2UudG9Mb2NhbGVTdHJpbmcoKX08L3A+PHAgY2xhc3M9InRleHQtc20gdHJlbmQtdXAiPiske2MuY2hhbmdlLnRvRml4ZWQoMil9JTwvcD48L2Rpdj48L2Rpdj5gDQogICAgICAgICAgICAgICAgKS5qb2luKCcnKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gVHJhZGluZyBQYWlycyDigJQgc3R5bGVkIGxpa2UgdGhlIHNjcmVlbnNob3Qgd2l0aCBpY29uLCBwYWlyIG5hbWUsIHZvbHVtZQ0KICAgICAgICAgICAgaWYgKHBhaXJzRWwpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBhbGxDb2lucyA9IE9iamVjdC5lbnRyaWVzKGNyeXB0b0RhdGEpOw0KICAgICAgICAgICAgICAgIHBhaXJzRWwuaW5uZXJIVE1MID0gYWxsQ29pbnMubWFwKChba2V5LCBjXSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2xOdW0gPSBjLnZvbHVtZSB8fCAwOw0KICAgICAgICAgICAgICAgICAgICBsZXQgdm9sU3RyOw0KICAgICAgICAgICAgICAgICAgICBpZiAodm9sTnVtID49IDFlOSkgdm9sU3RyID0gKHZvbE51bSAvIDFlOSkudG9GaXhlZCgxKSArICdCJzsNCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodm9sTnVtID49IDFlNikgdm9sU3RyID0gTWF0aC5yb3VuZCh2b2xOdW0gLyAxZTYpICsgJ00nOw0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh2b2xOdW0gPj0gMWUzKSB2b2xTdHIgPSBNYXRoLnJvdW5kKHZvbE51bSAvIDFlMykgKyAnSyc7DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugdm9sU3RyID0gTWF0aC5yb3VuZCh2b2xOdW0pLnRvU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTMgcHgtNCBiZy1ncmF5LTgwMC8zMCBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIGN1cnNvci1wb2ludGVyIiBvbmNsaWNrPSJzZWxlY3RDcnlwdG8oJyR7a2V5fScpIj5gICsNCiAgICAgICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJHtjLmNvbG9yfSB0ZXh0LXNtIj4ke2MuaWNvbn08L2Rpdj48c3BhbiBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIj4ke2Muc3ltYm9sfS9VU0RUPC9zcGFuPjwvZGl2PmAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgYDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlZvbDogPHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCI+JHt2b2xTdHJ9PC9zcGFuPjwvc3Bhbj48L2Rpdj5gOw0KICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gbG9hZE1hcmtldCgpIHsNCiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJrZXRDcnlwdG9MaXN0Jyk7DQogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICBPYmplY3QuZW50cmllcyhjcnlwdG9EYXRhKS5mb3JFYWNoKChba2V5LCBjcnlwdG9dKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdjcnlwdG8tbGlzdC1pdGVtJzsNCiAgICAgICAgICAgICAgICBkaXYub25jbGljayA9ICgpID0+IHNlbGVjdENyeXB0byhrZXkpOw0KICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJHtjcnlwdG8uY29sb3J9IHRleHQtbGcgbXItMyI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2IGNsYXNzPSJmbGV4LTEiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7Y3J5cHRvLnN5bWJvbH08L3A+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+JHtjcnlwdG8ubmFtZX08L3A+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JCR7Y3J5cHRvLnByaWNlLnRvTG9jYWxlU3RyaW5nKCl9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtICR7Y3J5cHRvLmNoYW5nZSA+PSAwID8gJ3RyZW5kLXVwJyA6ICd0cmVuZC1kb3duJ30iPiR7Y3J5cHRvLmNoYW5nZSA+PSAwID8gJysnIDogJyd9JHtjcnlwdG8uY2hhbmdlLnRvRml4ZWQoMil9JTwvcD48L2Rpdj5gOw0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICByZW5kZXJUb3BHYWluZXJzTG9zZXJzKCk7DQogICAgICAgICAgICB1cGRhdGVNYXJrZXRTdGF0cygpOw0KICAgICAgICAgICAgcmVuZGVyVm9sdW1lTGVhZGVycygpOw0KICAgICAgICAgICAgZHJhd0RlcHRoQ2hhcnQoKTsNCiAgICAgICAgICAgIGlmICghbWFya2V0Q2hhcnRJbnRlcnZhbCB8fCBtYXJrZXRDaGFydEhpc3RvcnkubGVuZ3RoID09PSAwKSBsb2FkTWFya2V0Q2hhcnQoKTsNCiAgICAgICAgICAgIGVsc2UgZHJhd01hcmtldENoYXJ0RnJhbWUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHNlbGVjdENyeXB0byhrZXkpIHsNCiAgICAgICAgICAgIHNlbGVjdGVkQ3J5cHRvID0ga2V5Ow0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtrZXldOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGVkQ3J5cHRvTmFtZScpLnRleHRDb250ZW50ID0gY3J5cHRvLm5hbWU7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VsZWN0ZWRDcnlwdG9TeW1ib2wnKS50ZXh0Q29udGVudCA9IGNyeXB0by5zeW1ib2wgKyAnL1VTRFQnOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGVkQ3J5cHRvUHJpY2UnKS50ZXh0Q29udGVudCA9ICckJyArIGNyeXB0by5wcmljZS50b0xvY2FsZVN0cmluZygpOw0KICAgICAgICAgICAgY29uc3QgY2hFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxlY3RlZENyeXB0b0NoYW5nZScpOw0KICAgICAgICAgICAgY2hFbC50ZXh0Q29udGVudCA9IChjcnlwdG8uY2hhbmdlID49IDAgPyAnKycgOiAnJykgKyBjcnlwdG8uY2hhbmdlLnRvRml4ZWQoMikgKyAnJSc7DQogICAgICAgICAgICBjaEVsLmNsYXNzTmFtZSA9IGNyeXB0by5jaGFuZ2UgPj0gMCA/ICd0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20gZm9udC1tZWRpdW0nIDogJ3RleHQtcm9zZS00MDAgdGV4dC1zbSBmb250LW1lZGl1bSc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VsZWN0ZWRDcnlwdG9JY29uJykuaW5uZXJIVE1MID0gY3J5cHRvLmljb247DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VsZWN0ZWRDcnlwdG9JY29uJykuY2xhc3NOYW1lID0gJ2NyeXB0by1pY29uICcgKyBjcnlwdG8uY29sb3IgKyAnIHRleHQteGwnOw0KICAgICAgICAgICAgZHJhd0RlcHRoQ2hhcnQoKTsNCiAgICAgICAgICAgIGxvYWRNYXJrZXRDaGFydCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZmlsdGVyTWFya2V0KCkgew0KICAgICAgICAgICAgY29uc3Qgc2VhcmNoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcmtldFNlYXJjaCcpLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBBcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJrZXRDcnlwdG9MaXN0JykuY2hpbGRyZW4pLmZvckVhY2goaXRlbSA9PiB7DQogICAgICAgICAgICAgICAgaXRlbS5zdHlsZS5kaXNwbGF5ID0gaXRlbS50ZXh0Q29udGVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgPyAnZmxleCcgOiAnbm9uZSc7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHNldFRyYWRlTWFpblRhYih0YWIpIHsgWydjb252ZXJ0JywgJ3Nwb3QnLCAnZnV0dXJlcyddLmZvckVhY2godCA9PiB7IGNvbnN0IGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFkZVRhYicgKyB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdC5zbGljZSgxKSk7IGNvbnN0IHBhbmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCArICdQYW5lbCcpOyBpZiAoYnRuKSBidG4uY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgdCA9PT0gdGFiKTsgaWYgKHBhbmVsKSBwYW5lbC5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCB0ID09PSB0YWIpOyB9KTsgaWYgKHRhYiA9PT0gJ3Nwb3QnKSB7IGxvYWRPcmRlckJvb2soKTsgfSBpZiAodGFiID09PSAnZnV0dXJlcycpIHsgdXBkYXRlRnV0dXJlc1ByaWNlKCk7IH0gfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUZ1dHVyZXNQcmljZSgpIHsNCiAgICAgICAgICAgIGNvbnN0IHByaWNlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnV0dXJlc0J0Y1ByaWNlJyk7DQogICAgICAgICAgICBjb25zdCBjaGFuZ2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdXR1cmVzQnRjQ2hhbmdlJyk7DQogICAgICAgICAgICBpZiAoIXByaWNlRWwpIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDY2OTI1Ow0KICAgICAgICAgICAgcHJpY2VFbC50ZXh0Q29udGVudCA9ICckJyArIHByaWNlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7DQogICAgICAgICAgICBpZiAoY2hhbmdlRWwgJiYgY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10pIHsNCiAgICAgICAgICAgICAgICBjb25zdCBjaCA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dLmNoYW5nZTsNCiAgICAgICAgICAgICAgICBjaGFuZ2VFbC50ZXh0Q29udGVudCA9IChjaCA+PSAwID8gJysnIDogJycpICsgY2gudG9GaXhlZCgyKSArICclJzsNCiAgICAgICAgICAgICAgICBjaGFuZ2VFbC5jbGFzc05hbWUgPSBjaCA+PSAwID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtcm9zZS00MDAnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHNldENvbnZlcnRUeXBlKHR5cGUpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRJbnN0YW50VGFiJykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctd2hpdGUnLCB0eXBlID09PSAnaW5zdGFudCcpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEluc3RhbnRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWJsYWNrJywgdHlwZSA9PT0gJ2luc3RhbnQnKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRJbnN0YW50VGFiJykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctZ3JheS03MDAnLCB0eXBlICE9PSAnaW5zdGFudCcpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEluc3RhbnRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWdyYXktNDAwJywgdHlwZSAhPT0gJ2luc3RhbnQnKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRMaW1pdFRhYicpLmNsYXNzTGlzdC50b2dnbGUoJ2JnLXdoaXRlJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJ0TGltaXRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWJsYWNrJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJ0TGltaXRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1ncmF5LTcwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydExpbWl0VGFiJykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ29udmVydFByZXZpZXcoKSB7IA0KICAgICAgICAgICAgY29uc3QgZnJvbUN1cnJlbmN5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQ3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICBjb25zdCB0b0N1cnJlbmN5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0N1cnJlbmN5JykudmFsdWU7IA0KICAgICAgICAgICAgY29uc3QgZnJvbUFtb3VudCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQW1vdW50JykudmFsdWUpIHx8IDA7IA0KICAgICAgICAgICAgY29uc3QgZnJvbUNyeXB0byA9IGNyeXB0b0RhdGFbZnJvbUN1cnJlbmN5XTsgDQogICAgICAgICAgICBjb25zdCB0b0NyeXB0byA9IGNyeXB0b0RhdGFbdG9DdXJyZW5jeV07IA0KICAgICAgICAgICAgaWYgKGZyb21DcnlwdG8gJiYgdG9DcnlwdG8gJiYgZnJvbUFtb3VudCA+IDApIHsgDQogICAgICAgICAgICAgICAgY29uc3QgcmF0ZSA9IGZyb21DcnlwdG8ucHJpY2UgLyB0b0NyeXB0by5wcmljZTsgDQogICAgICAgICAgICAgICAgY29uc3QgdG9BbW91bnQgPSBmcm9tQW1vdW50ICogcmF0ZTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0Ftb3VudCcpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4odG9BbW91bnQsIDQpOyANCiAgICAgICAgICAgICAgICBjb25zdCBmcm9tTGl2ZSA9IGZyb21DcnlwdG8ubGFzdFVwZGF0ZWQgPiAwICYmIChEYXRlLm5vdygpIC0gZnJvbUNyeXB0by5sYXN0VXBkYXRlZCkgPCAzMDAwMDA7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHRvTGl2ZSA9IHRvQ3J5cHRvLmxhc3RVcGRhdGVkID4gMCAmJiAoRGF0ZS5ub3coKSAtIHRvQ3J5cHRvLmxhc3RVcGRhdGVkKSA8IDMwMDAwMDsgDQogICAgICAgICAgICAgICAgY29uc3QgbGl2ZVRhZyA9IChmcm9tTGl2ZSB8fCBmcm9tQ3VycmVuY3kgPT09ICd1c2R0JyB8fCBmcm9tQ3VycmVuY3kgPT09ICd1c2RjJykgJiYgKHRvTGl2ZSB8fCB0b0N1cnJlbmN5ID09PSAndXNkdCcgfHwgdG9DdXJyZW5jeSA9PT0gJ3VzZGMnKSA/ICc8c3BhbiBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCI+JmJ1bGw7IExpdmU8L3NwYW4+JyA6ICc8c3BhbiBjbGFzcz0idGV4dC1hbWJlci00MDAiPiZidWxsOyBFc3Q8L3NwYW4+JzsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRSYXRlJykuaW5uZXJIVE1MID0gJzEgJyArIGZyb21DcnlwdG8uc3ltYm9sICsgJyAmYXN5bXA7ICcgKyBmb3JtYXRDbGVhbihyYXRlLCA0KSArICcgJyArIHRvQ3J5cHRvLnN5bWJvbCArICcgJyArIGxpdmVUYWc7IA0KICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0Ftb3VudCcpLnRleHRDb250ZW50ID0gJy0tJzsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRSYXRlJykudGV4dENvbnRlbnQgPSAnMSAnICsgKGZyb21DcnlwdG8/LnN5bWJvbCB8fCBmcm9tQ3VycmVuY3kudG9VcHBlckNhc2UoKSkgKyAnIOKJiCAtLSAnICsgKHRvQ3J5cHRvPy5zeW1ib2wgfHwgdG9DdXJyZW5jeS50b1VwcGVyQ2FzZSgpKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgY29uc3QgZnJvbUJhbCA9IGN1cnJlbnRVc2VyPy53YWxsZXRzPy5bZnJvbUN1cnJlbmN5XT8uYmFsYW5jZSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IHRvQmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/Llt0b0N1cnJlbmN5XT8uYmFsYW5jZSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IGZyb21TeW1ib2wgPSBmcm9tQ3J5cHRvPy5zeW1ib2wgfHwgZnJvbUN1cnJlbmN5LnRvVXBwZXJDYXNlKCk7IA0KICAgICAgICAgICAgY29uc3QgdG9TeW1ib2wgPSB0b0NyeXB0bz8uc3ltYm9sIHx8IHRvQ3VycmVuY3kudG9VcHBlckNhc2UoKTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEZyb21BdmFpbGFibGUnKS50ZXh0Q29udGVudCA9ICdBdmFpbGFibGU6ICcgKyBmb3JtYXRDbGVhbihmcm9tQmFsLCA0KSArICcgJyArIGZyb21TeW1ib2w7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0F2YWlsYWJsZScpLnRleHRDb250ZW50ID0gJ0F2YWlsYWJsZTogJyArIGZvcm1hdENsZWFuKHRvQmFsLCA0KSArICcgJyArIHRvU3ltYm9sOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN3YXBDb252ZXJ0Q3VycmVuY2llcygpIHsgDQogICAgICAgICAgICBjb25zdCBmcm9tU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQ3VycmVuY3knKTsgDQogICAgICAgICAgICBjb25zdCB0b1NlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJ0VG9DdXJyZW5jeScpOyANCiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBmcm9tU2VsZWN0LnZhbHVlOyANCiAgICAgICAgICAgIGZyb21TZWxlY3QudmFsdWUgPSB0b1NlbGVjdC52YWx1ZTsgDQogICAgICAgICAgICB0b1NlbGVjdC52YWx1ZSA9IHRlbXA7IA0KICAgICAgICAgICAgdXBkYXRlQ29udmVydFByZXZpZXcoKTsgDQogICAgICAgIH0NCg0KICAgICAgICBsZXQgYWN0aXZlQ29udmVyc2lvbiA9IG51bGw7DQogICAgICAgIGxldCBjb252ZXJzaW9uUG9sbEludGVydmFsID0gbnVsbDsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlQ29udmVydCgpIHsgDQogICAgICAgICAgICBjb25zdCBmcm9tQ3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEZyb21DdXJyZW5jeScpLnZhbHVlOyANCiAgICAgICAgICAgIGNvbnN0IHRvQ3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydFRvQ3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICBjb25zdCBmcm9tQW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEZyb21BbW91bnQnKS52YWx1ZSk7IA0KICAgICAgICAgICAgaWYgKCFmcm9tQW1vdW50IHx8IGZyb21BbW91bnQgPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGFtb3VudCcsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBmcm9tQmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/Lltmcm9tQ3VycmVuY3ldPy5iYWxhbmNlIHx8IDA7IA0KICAgICAgICAgICAgaWYgKGZyb21CYWwgPCBmcm9tQW1vdW50KSB7IHNob3dBbGVydCgnSW5zdWZmaWNpZW50ICcgKyBmcm9tQ3VycmVuY3kudG9VcHBlckNhc2UoKSArICcgYmFsYW5jZScsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBmcm9tUHJpY2UgPSBjcnlwdG9EYXRhW2Zyb21DdXJyZW5jeV0/LnByaWNlIHx8IDA7IA0KICAgICAgICAgICAgY29uc3QgdG9QcmljZSA9IGNyeXB0b0RhdGFbdG9DdXJyZW5jeV0/LnByaWNlIHx8IDA7IA0KICAgICAgICAgICAgaWYgKGZyb21QcmljZSA8PSAwIHx8IHRvUHJpY2UgPD0gMCkgeyBzaG93QWxlcnQoJ1ByaWNlIGRhdGEgdW5hdmFpbGFibGUuIFBsZWFzZSB3YWl0IGZvciBwcmljZXMgdG8gbG9hZC4nLCAnZXJyb3InKTsgcmV0dXJuOyB9IA0KICAgICAgICAgICAgY29uc3QgdG9BbW91bnQgPSBmcm9tQW1vdW50ICogKGZyb21QcmljZSAvIHRvUHJpY2UpOw0KICAgICAgICAgICAgY29uc3QgZnJvbUNyeXB0byA9IGNyeXB0b0RhdGFbZnJvbUN1cnJlbmN5XTsNCiAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gY3J5cHRvRGF0YVt0b0N1cnJlbmN5XTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQ29udmVydCAnICsgZm9ybWF0Q2xlYW4oZnJvbUFtb3VudCwgNCkgKyAnICcgKyBmcm9tQ3J5cHRvLnN5bWJvbCArICcgdG8gYXBwcm94aW1hdGVseSAnICsgZm9ybWF0Q2xlYW4odG9BbW91bnQsIDQpICsgJyAnICsgdG9DcnlwdG8uc3ltYm9sICsgJz8nLCBmdW5jdGlvbigpIHsgZG9FeGVjdXRlQ29udmVydChmcm9tQ3VycmVuY3ksIHRvQ3VycmVuY3ksIGZyb21BbW91bnQsIHRvQW1vdW50LCBmcm9tUHJpY2UsIHRvUHJpY2UpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9FeGVjdXRlQ29udmVydChmcm9tQ3VycmVuY3ksIHRvQ3VycmVuY3ksIGZyb21BbW91bnQsIHRvQW1vdW50LCBmcm9tUHJpY2UsIHRvUHJpY2UpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRCdG4nKS5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRCdG4nKS5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpbiBtci0yIj48L2k+UHJvY2Vzc2luZy4uLic7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpQ2FsbCgnY29udmVyc2lvbnMnLCB7DQogICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLA0KICAgICAgICAgICAgICAgICAgICBib2R5OiB7IGZyb21DdXJyZW5jeSwgdG9DdXJyZW5jeSwgZnJvbUFtb3VudCwgdG9BbW91bnQsIGZyb21QcmljZSwgdG9QcmljZSB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQW1vdW50JykudmFsdWUgPSAnJzsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydFRvQW1vdW50JykudGV4dENvbnRlbnQgPSAnLS0nOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnZlcnRQcmV2aWV3KCk7DQogICAgICAgICAgICAgICAgbG9hZFVzZXJEYXRhKCk7IGxvYWRXYWxsZXRzKCk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgY29uc3QgY29udiA9IHJlc3VsdC5jb252ZXJzaW9uOw0KICAgICAgICAgICAgICAgIGFjdGl2ZUNvbnZlcnNpb24gPSB7IGlkOiBjb252LmlkLCBmcm9tQ3VycmVuY3ksIHRvQ3VycmVuY3ksIGZyb21BbW91bnQsIHRvQW1vdW50IH07DQogICAgICAgICAgICAgICAgc3RhcnRDb252ZXJzaW9uUHJvZ3Jlc3MoY29udi5lc3RpbWF0ZWRTZWNvbmRzKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICAgICAgc2hvd0FsZXJ0KCdDb252ZXJzaW9uIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOw0KICAgICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEJ0bicpLmRpc2FibGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRCdG4nKS5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1leGNoYW5nZS1hbHQgbXItMiI+PC9pPkNvbnZlcnQgTm93JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0YXJ0Q29udmVyc2lvblByb2dyZXNzKGVzdGltYXRlZFNlY29uZHMpIHsNCiAgICAgICAgICAgIGNvbnN0IG1vZGFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25Qcm9ncmVzc01vZGFsJyk7DQogICAgICAgICAgICBjb25zdCBiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzQmFyJyk7DQogICAgICAgICAgICBjb25zdCBwY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzUGVyY2VudCcpOw0KICAgICAgICAgICAgY29uc3Qgc3RhdHVzVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uUHJvZ3Jlc3NTdGF0dXMnKTsNCiAgICAgICAgICAgIGNvbnN0IHN0ZXBJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwSWNvbicpOw0KICAgICAgICAgICAgY29uc3Qgc3RlcExhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwTGFiZWwnKTsNCiAgICAgICAgICAgIGNvbnN0IGVzdFRpbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvbkVzdFRpbWUnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgbW9kYWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7DQogICAgICAgICAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgY29uc3QgZnJvbUNyeXB0byA9IGNyeXB0b0RhdGFbYWN0aXZlQ29udmVyc2lvbi5mcm9tQ3VycmVuY3ldOw0KICAgICAgICAgICAgY29uc3QgdG9DcnlwdG8gPSBjcnlwdG9EYXRhW2FjdGl2ZUNvbnZlcnNpb24udG9DdXJyZW5jeV07DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udlByb2dyZXNzRnJvbScpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4oYWN0aXZlQ29udmVyc2lvbi5mcm9tQW1vdW50LCA0KSArICcgJyArIGZyb21DcnlwdG8uc3ltYm9sOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZQcm9ncmVzc1RvJykudGV4dENvbnRlbnQgPSBmb3JtYXRDbGVhbihhY3RpdmVDb252ZXJzaW9uLnRvQW1vdW50LCA0KSArICcgJyArIHRvQ3J5cHRvLnN5bWJvbDsNCiAgICAgICAgICAgIGVzdFRpbWUudGV4dENvbnRlbnQgPSAnficgKyBNYXRoLmNlaWwoZXN0aW1hdGVkU2Vjb25kcyAvIDYwKSArICcgbWluJzsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSBbDQogICAgICAgICAgICAgICAgeyBpY29uOiAnZmEtZmlsZS1zaWduYXR1cmUnLCBsYWJlbDogJ0NvbmZpcm1pbmcgdHJhbnNhY3Rpb24uLi4nIH0sDQogICAgICAgICAgICAgICAgeyBpY29uOiAnZmEtbG9jaycsIGxhYmVsOiAnU2VjdXJpbmcgZnVuZHMuLi4nIH0sDQogICAgICAgICAgICAgICAgeyBpY29uOiAnZmEtc2VhcmNoLWRvbGxhcicsIGxhYmVsOiAnRmV0Y2hpbmcgYmVzdCByYXRlLi4uJyB9LA0KICAgICAgICAgICAgICAgIHsgaWNvbjogJ2ZhLWV4Y2hhbmdlLWFsdCcsIGxhYmVsOiAnUHJvY2Vzc2luZyBzd2FwLi4uJyB9LA0KICAgICAgICAgICAgICAgIHsgaWNvbjogJ2ZhLWNoZWNrLWNpcmNsZScsIGxhYmVsOiAnRmluYWxpemluZy4uLicgfQ0KICAgICAgICAgICAgXTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gMDsNCiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUludGVydmFsID0gMTAwMDsNCiAgICAgICAgICAgIGNvbnN0IGluY3JlbWVudFBlclNlY29uZCA9IDEwMCAvIGVzdGltYXRlZFNlY29uZHM7DQogICAgICAgICAgICBsZXQgc2Vjb25kc0VsYXBzZWQgPSAwOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZiAoY29udmVyc2lvblBvbGxJbnRlcnZhbCkgY2xlYXJJbnRlcnZhbChjb252ZXJzaW9uUG9sbEludGVydmFsKTsNCiAgICAgICAgICAgIGNvbnZlcnNpb25Qb2xsSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICBzZWNvbmRzRWxhcHNlZCsrOw0KICAgICAgICAgICAgICAgIHByb2dyZXNzID0gTWF0aC5taW4oOTUsIHNlY29uZHNFbGFwc2VkICogaW5jcmVtZW50UGVyU2Vjb25kKTsNCiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U3RlcCA9IE1hdGgubWluKHN0ZXBzLmxlbmd0aCAtIDEsIE1hdGguZmxvb3IoKHByb2dyZXNzIC8gMTAwKSAqIHN0ZXBzLmxlbmd0aCkpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGJhci5zdHlsZS53aWR0aCA9IHByb2dyZXNzICsgJyUnOw0KICAgICAgICAgICAgICAgIHBjdC50ZXh0Q29udGVudCA9IE1hdGgucm91bmQocHJvZ3Jlc3MpICsgJyUnOw0KICAgICAgICAgICAgICAgIHN0ZXBJY29uLmNsYXNzTmFtZSA9ICdmYXMgJyArIHN0ZXBzW2N1cnJlbnRTdGVwXS5pY29uOw0KICAgICAgICAgICAgICAgIHN0ZXBMYWJlbC50ZXh0Q29udGVudCA9IHN0ZXBzW2N1cnJlbnRTdGVwXS5sYWJlbDsNCiAgICAgICAgICAgICAgICBlc3RUaW1lLnRleHRDb250ZW50ID0gJ34nICsgTWF0aC5tYXgoMCwgTWF0aC5jZWlsKChlc3RpbWF0ZWRTZWNvbmRzIC0gc2Vjb25kc0VsYXBzZWQpIC8gNjApKSArICcgbWluJzsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoc2Vjb25kc0VsYXBzZWQgJSA4ID09PSAwKSB7IHBvbGxDb252ZXJzaW9uU3RhdHVzKCk7IH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoc2Vjb25kc0VsYXBzZWQgPj0gZXN0aW1hdGVkU2Vjb25kcykgeyBmaW5pc2hDb252ZXJzaW9uUHJvZ3Jlc3MoKTsgfQ0KICAgICAgICAgICAgfSwgdXBkYXRlSW50ZXJ2YWwpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBhc3luYyBmdW5jdGlvbiBwb2xsQ29udmVyc2lvblN0YXR1cygpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2NvbnZlcnNpb25zJyk7DQogICAgICAgICAgICAgICAgY29uc3QgY29udiA9IChkYXRhLmNvbnZlcnNpb25zIHx8IFtdKS5maW5kKGZ1bmN0aW9uKGMpIHsgcmV0dXJuIGMuaWQgPT09IGFjdGl2ZUNvbnZlcnNpb24uaWQ7IH0pOw0KICAgICAgICAgICAgICAgIGlmIChjb252ICYmIGNvbnYuc3RhdHVzID09PSAnY29tcGxldGVkJykgeyBmaW5pc2hDb252ZXJzaW9uUHJvZ3Jlc3MoKTsgfQ0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyAvKiBzaWxlbnQgcG9sbCAqLyB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGZ1bmN0aW9uIGZpbmlzaENvbnZlcnNpb25Qcm9ncmVzcygpIHsNCiAgICAgICAgICAgIGlmIChjb252ZXJzaW9uUG9sbEludGVydmFsKSB7IGNsZWFySW50ZXJ2YWwoY29udmVyc2lvblBvbGxJbnRlcnZhbCk7IGNvbnZlcnNpb25Qb2xsSW50ZXJ2YWwgPSBudWxsOyB9DQogICAgICAgICAgICBjb25zdCBiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzQmFyJyk7DQogICAgICAgICAgICBjb25zdCBwY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzUGVyY2VudCcpOw0KICAgICAgICAgICAgY29uc3Qgc3RhdHVzVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uUHJvZ3Jlc3NTdGF0dXMnKTsNCiAgICAgICAgICAgIGNvbnN0IHN0ZXBJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwSWNvbicpOw0KICAgICAgICAgICAgY29uc3Qgc3RlcExhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwTGFiZWwnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgYmFyLnN0eWxlLndpZHRoID0gJzEwMCUnOw0KICAgICAgICAgICAgcGN0LnRleHRDb250ZW50ID0gJzEwMCUnOw0KICAgICAgICAgICAgc3RhdHVzVGV4dC50ZXh0Q29udGVudCA9ICdDb252ZXJzaW9uIENvbXBsZXRlJzsNCiAgICAgICAgICAgIHN0YXR1c1RleHQuY2xhc3NOYW1lID0gJ3RleHQtbGcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC00MDAgbXQtMyc7DQogICAgICAgICAgICBzdGVwSWNvbi5jbGFzc05hbWUgPSAnZmFzIGZhLWNoZWNrLWNpcmNsZSB0ZXh0LWVtZXJhbGQtNDAwJzsNCiAgICAgICAgICAgIHN0ZXBMYWJlbC50ZXh0Q29udGVudCA9ICdGdW5kcyBjcmVkaXRlZCB0byB5b3VyIHdhbGxldCc7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gY3J5cHRvRGF0YVthY3RpdmVDb252ZXJzaW9uLnRvQ3VycmVuY3ldOw0KICAgICAgICAgICAgc2hvd0FsZXJ0KCdDb252ZXJzaW9uIGNvbXBsZXRlISBZb3UgcmVjZWl2ZWQgJyArIGZvcm1hdENsZWFuKGFjdGl2ZUNvbnZlcnNpb24udG9BbW91bnQsIDQpICsgJyAnICsgdG9DcnlwdG8uc3ltYm9sLCAnc3VjY2VzcycpOw0KICAgICAgICAgICAgbG9hZFVzZXJEYXRhKCk7IGxvYWRXYWxsZXRzKCk7IGxvYWRDb252ZXJzaW9uSGlzdG9yeSgpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjbG9zZUNvbnZlcnNpb25Nb2RhbCgpOyB9LCAyNTAwKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgZnVuY3Rpb24gY2xvc2VDb252ZXJzaW9uTW9kYWwoKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzTW9kYWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uUHJvZ3Jlc3NNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOw0KICAgICAgICAgICAgaWYgKGNvbnZlcnNpb25Qb2xsSW50ZXJ2YWwpIHsgY2xlYXJJbnRlcnZhbChjb252ZXJzaW9uUG9sbEludGVydmFsKTsgY29udmVyc2lvblBvbGxJbnRlcnZhbCA9IG51bGw7IH0NCiAgICAgICAgICAgIGFjdGl2ZUNvbnZlcnNpb24gPSBudWxsOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkQ29udmVyc2lvbkhpc3RvcnkoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdjb252ZXJzaW9ucycpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkYXRhLmNvbnZlcnNpb25zIHx8IFtdOw0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uSGlzdG9yeUxpc3QnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25IaXN0b3J5U2VjdGlvbicpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkgeyBzZWN0aW9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IHJldHVybjsgfQ0KICAgICAgICAgICAgICAgIHNlY3Rpb24uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbihjb252KSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyb21DcnlwdG8gPSBjcnlwdG9EYXRhW2NvbnYuZnJvbUN1cnJlbmN5XSB8fCB7IHN5bWJvbDogY29udi5mcm9tQ3VycmVuY3kudG9VcHBlckNhc2UoKSwgY29sb3I6IGNvbnYuZnJvbUN1cnJlbmN5LCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNHB4OyI+Pzwvc3Bhbj4nIH07DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gY3J5cHRvRGF0YVtjb252LnRvQ3VycmVuY3ldIHx8IHsgc3ltYm9sOiBjb252LnRvQ3VycmVuY3kudG9VcHBlckNhc2UoKSwgY29sb3I6IGNvbnYudG9DdXJyZW5jeSwgaWNvbjogJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTRweDsiPj88L3NwYW4+JyB9Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY29udi5zdGFydGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQcm9jZXNzaW5nID0gY29udi5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJzsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBpc1Byb2Nlc3NpbmcgPyAndGV4dC1hbWJlci00MDAnIDogJ3RleHQtZW1lcmFsZC00MDAnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNCZyA9IGlzUHJvY2Vzc2luZyA/ICdiZy1hbWJlci01MDAvMTAnIDogJ2JnLWVtZXJhbGQtNTAwLzEwJzsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBpc1Byb2Nlc3NpbmcgPyAnPGRpdiBjbGFzcz0iaC0xLjUgYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIG10LTIgb3ZlcmZsb3ctaGlkZGVuIj48ZGl2IGNsYXNzPSJoLWZ1bGwgYmctYW1iZXItNTAwIHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCIgc3R5bGU9IndpZHRoOicgKyBjb252LnByb2dyZXNzICsgJyUiPjwvZGl2PjwvZGl2PicgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ2dsYXNzIHJvdW5kZWQteGwgcC0zIGJvcmRlciBib3JkZXItZ3JheS03MDAvMzAnOw0KICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0yIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktMzAwIj4nICsgZnJvbUNyeXB0by5zeW1ib2wgKyAnPC9zcGFuPjxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgdGV4dC1ncmF5LTUwMCB0ZXh0LXhzIj48L2k+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4nICsgdG9DcnlwdG8uc3ltYm9sICsgJzwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyBmb250LW1lZGl1bSAnICsgc3RhdHVzQ29sb3IgKyAnIHB4LTIgcHktMC41IHJvdW5kZWQgJyArIHN0YXR1c0JnICsgJyI+JyArIGNvbnYuc3RhdHVzLnRvVXBwZXJDYXNlKCkgKyAnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIHRleHQtZ3JheS00MDAiPjxzcGFuPicgKyBmb3JtYXRDbGVhbihjb252LmZyb21BbW91bnQsIDQpICsgJyDihpIgJyArIGZvcm1hdENsZWFuKGNvbnYudG9BbW91bnQsIDQpICsgJzwvc3Bhbj48c3Bhbj4nICsgZGF0ZSArICc8L3NwYW4+PC9kaXY+JyArIHByb2dyZXNzQmFyOw0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGNvbnZlcnNpb25zOicsIGVycm9yKTsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0VHJhZGVTaWRlKHNpZGUpIHsgDQogICAgICAgICAgICB0cmFkZVNpZGUgPSBzaWRlOyANCiAgICAgICAgICAgIGNvbnN0IGlzQnV5ID0gc2lkZSA9PT0gJ2J1eSc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RCdXlCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1lbWVyYWxkLTYwMCcsIGlzQnV5KTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEJ1eUJ0bicpLmNsYXNzTGlzdC50b2dnbGUoJ3RleHQtd2hpdGUnLCBpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RCdXlCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1ncmF5LTcwMCcsICFpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RCdXlCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWdyYXktNDAwJywgIWlzQnV5KTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFNlbGxCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1yb3NlLTYwMCcsICFpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RTZWxsQnRuJykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC13aGl0ZScsICFpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RTZWxsQnRuJykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctZ3JheS03MDAnLCBpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RTZWxsQnRuJykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIGlzQnV5KTsgDQogICAgICAgICAgICBjb25zdCBhY3Rpb25CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFjdGlvbkJ0bicpOyANCiAgICAgICAgICAgIGNvbnN0IHBhaXJTeW1ib2wgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8uc3ltYm9sIHx8ICdCVEMnOyANCiAgICAgICAgICAgIGlmIChhY3Rpb25CdG4pIHsgDQogICAgICAgICAgICAgICAgYWN0aW9uQnRuLnRleHRDb250ZW50ID0gKGlzQnV5ID8gJ0J1eSAnIDogJ1NlbGwgJykgKyBwYWlyU3ltYm9sOyANCiAgICAgICAgICAgICAgICBhY3Rpb25CdG4uY2xhc3NOYW1lID0gaXNCdXkgPyAndy1mdWxsIHB5LTQgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCcgOiAndy1mdWxsIHB5LTQgYmctcm9zZS02MDAgaG92ZXI6Ymctcm9zZS03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCc7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHVwZGF0ZVNwb3RBdmFpbGFibGUoKTsgDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzZXRTcG90T3JkZXJUeXBlKHR5cGUpIHsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFR5cGVMaW1pdCcpLmNsYXNzTGlzdC50b2dnbGUoJ2JnLXdoaXRlJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTGltaXQnKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWJsYWNrJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTGltaXQnKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1ncmF5LTcwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VHlwZUxpbWl0JykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VHlwZU1hcmtldCcpLmNsYXNzTGlzdC50b2dnbGUoJ2JnLXdoaXRlJywgdHlwZSA9PT0gJ21hcmtldCcpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VHlwZU1hcmtldCcpLmNsYXNzTGlzdC50b2dnbGUoJ3RleHQtYmxhY2snLCB0eXBlID09PSAnbWFya2V0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTWFya2V0JykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctZ3JheS03MDAnLCB0eXBlICE9PSAnbWFya2V0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTWFya2V0JykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIHR5cGUgIT09ICdtYXJrZXQnKTsgDQogICAgICAgICAgICBjb25zdCBwcmljZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RQcmljZScpOyANCiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbWFya2V0JyAmJiBwcmljZUlucHV0KSB7IHByaWNlSW5wdXQudmFsdWUgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2U/LnRvRml4ZWQoMikgfHwgJyc7IHByaWNlSW5wdXQucmVhZE9ubHkgPSB0cnVlOyBwcmljZUlucHV0LmNsYXNzTGlzdC5hZGQoJ3RleHQtZ3JheS00MDAnKTsgfSANCiAgICAgICAgICAgIGVsc2UgaWYgKHByaWNlSW5wdXQpIHsgcHJpY2VJbnB1dC5yZWFkT25seSA9IGZhbHNlOyBwcmljZUlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ3RleHQtZ3JheS00MDAnKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNwb3RBdmFpbGFibGUoKSB7IA0KICAgICAgICAgICAgY29uc3QgaXNCdXkgPSB0cmFkZVNpZGUgPT09ICdidXknOyANCiAgICAgICAgICAgIGNvbnN0IGF2YWlsRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEF2YWlsYWJsZScpOyANCiAgICAgICAgICAgIGlmICghYXZhaWxFbCkgcmV0dXJuOyANCiAgICAgICAgICAgIGlmIChpc0J1eSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCB1c2R0QmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/LnVzZHQ/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICAgICAgYXZhaWxFbC50ZXh0Q29udGVudCA9IHVzZHRCYWwudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogNCB9KSArICcgVVNEVCc7IA0KICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvQmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/LltzZWxlY3RlZENyeXB0b10/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICAgICAgY29uc3Qgc3ltYm9sID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnN5bWJvbCB8fCBzZWxlY3RlZENyeXB0by50b1VwcGVyQ2FzZSgpOyANCiAgICAgICAgICAgICAgICBhdmFpbEVsLnRleHRDb250ZW50ID0gY3J5cHRvQmFsLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDggfSkgKyAnICcgKyBzeW1ib2w7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnN0IHN5bWJvbCA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dPy5zeW1ib2wgfHwgJ0JUQyc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RBbW91bnRMYWJlbCcpLnRleHRDb250ZW50ID0gc3ltYm9sOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90QW1vdW50VW5pdCcpLnRleHRDb250ZW50ID0gc3ltYm9sOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZVNwb3RUb3RhbCgpIHsgDQogICAgICAgICAgICBjb25zdCBwcmljZSA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RQcmljZScpLnZhbHVlKSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RBbW91bnQnKS52YWx1ZSkgfHwgMDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFRvdGFsJykudmFsdWUgPSAocHJpY2UgKiBhbW91bnQpLnRvRml4ZWQoMik7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0U3BvdFBlcmNlbnQocGN0KSB7IA0KICAgICAgICAgICAgY29uc3QgaXNCdXkgPSB0cmFkZVNpZGUgPT09ICdidXknOyANCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFByaWNlJykudmFsdWUpIHx8IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dPy5wcmljZSB8fCAwOyANCiAgICAgICAgICAgIGlmIChpc0J1eSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCB1c2R0QmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/LnVzZHQ/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB1c2R0QmFsICogKHBjdCAvIDEwMCk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IHByaWNlID4gMCA/IHRvdGFsIC8gcHJpY2UgOiAwOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFtb3VudCcpLnZhbHVlID0gZm9ybWF0Q2xlYW4oYW1vdW50LCA2KTsgDQogICAgICAgICAgICB9IGVsc2UgeyANCiAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG9CYWwgPSBjdXJyZW50VXNlcj8ud2FsbGV0cz8uW3NlbGVjdGVkQ3J5cHRvXT8uYmFsYW5jZSB8fCAwOyANCiAgICAgICAgICAgICAgICBjb25zdCBhbW91bnQgPSBjcnlwdG9CYWwgKiAocGN0IC8gMTAwKTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RBbW91bnQnKS52YWx1ZSA9IGZvcm1hdENsZWFuKGFtb3VudCwgNik7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNhbGN1bGF0ZVNwb3RUb3RhbCgpOyANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVTcG90VHJhZGUoKSB7IA0KICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFtb3VudCcpLnZhbHVlKTsgDQogICAgICAgICAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGFtb3VudCcsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBwcmljZSA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RQcmljZScpLnZhbHVlKSB8fCBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2UgfHwgMDsgDQogICAgICAgICAgICBjb25zdCB0b3RhbCA9IHByaWNlICogYW1vdW50OyANCiAgICAgICAgICAgIGNvbnN0IGlzQnV5ID0gdHJhZGVTaWRlID09PSAnYnV5JzsgDQogICAgICAgICAgICBpZiAoaXNCdXkpIHsgDQogICAgICAgICAgICAgICAgY29uc3QgdXNkdEJhbCA9IGN1cnJlbnRVc2VyPy53YWxsZXRzPy51c2R0Py5iYWxhbmNlIHx8IDA7IA0KICAgICAgICAgICAgICAgIGlmICh1c2R0QmFsIDwgdG90YWwpIHsgc2hvd0FsZXJ0KCdJbnN1ZmZpY2llbnQgVVNEVCBiYWxhbmNlJywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0b0JhbCA9IGN1cnJlbnRVc2VyPy53YWxsZXRzPy5bc2VsZWN0ZWRDcnlwdG9dPy5iYWxhbmNlIHx8IDA7IA0KICAgICAgICAgICAgICAgIGlmIChjcnlwdG9CYWwgPCBhbW91bnQpIHsgc2hvd0FsZXJ0KCdJbnN1ZmZpY2llbnQgJyArIChjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8uc3ltYm9sIHx8IHNlbGVjdGVkQ3J5cHRvLnRvVXBwZXJDYXNlKCkpICsgJyBiYWxhbmNlJywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCd0cmFuc2FjdGlvbnMnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHR5cGU6IHRyYWRlU2lkZSwgZnJvbUN1cnJlbmN5OiBpc0J1eSA/ICd1c2R0JyA6IHNlbGVjdGVkQ3J5cHRvLCB0b0N1cnJlbmN5OiBpc0J1eSA/IHNlbGVjdGVkQ3J5cHRvIDogJ3VzZHQnLCBhbW91bnQ6IGlzQnV5ID8gdG90YWwgOiBhbW91bnQsIHN0YXR1czogJ2NvbXBsZXRlZCcgfSB9KTsgDQogICAgICAgICAgICAgICAgc2hvd0FsZXJ0KGAke2lzQnV5ID8gJ0J1eScgOiAnU2VsbCd9IG9yZGVyIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSFgLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFtb3VudCcpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VG90YWwnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBsb2FkVXNlckRhdGEoKTsgbG9hZFdhbGxldHMoKTsgbG9hZFRyYW5zYWN0aW9ucygpOyB1cGRhdGVTcG90QXZhaWxhYmxlKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdUcmFkZSBmYWlsZWQ6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWRPcmRlckJvb2soKSB7IA0KICAgICAgICAgICAgY29uc3QgYXNrc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmRlckJvb2tBc2tzJyksIGJpZHNDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3JkZXJCb29rQmlkcycpOyANCiAgICAgICAgICAgIGlmICghYXNrc0NvbnRhaW5lciB8fCAhYmlkc0NvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgIGxldCBhc2tzSHRtbCA9ICcnLCBiaWRzSHRtbCA9ICcnOyANCiAgICAgICAgICAgIGNvbnN0IGJhc2VQcmljZSA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dPy5wcmljZSB8fCA2NjkyNTsgDQogICAgICAgICAgICBjb25zdCBzcHJlYWQgPSBiYXNlUHJpY2UgKiAwLjAwMjsgDQogICAgICAgICAgICBmb3IgKGxldCBpID0gNTsgaSA+IDA7IGktLSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBwcmljZSA9IGJhc2VQcmljZSArIHNwcmVhZCAqIGksIGFtb3VudCA9IChNYXRoLnJhbmRvbSgpICogMiArIDAuMDEpLnRvRml4ZWQoNCk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gKHByaWNlICogYW1vdW50KS50b0ZpeGVkKDIpOyANCiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKDEwMCwgKGFtb3VudCAvIDIuNSkgKiAxMDApOyANCiAgICAgICAgICAgICAgICBhc2tzSHRtbCArPSBgPGRpdiBjbGFzcz0ib3JkZXItYm9vay1yb3cgb3JkZXItYm9vay1zZWxsIHJlbGF0aXZlIj48ZGl2IGNsYXNzPSJhYnNvbHV0ZSByaWdodC0wIHRvcC0wIGJvdHRvbS0wIGJnLXJvc2UtNTAwLzEwIiBzdHlsZT0id2lkdGg6JHt3aWR0aH0lIj48L2Rpdj48c3Bhbj4ke3ByaWNlLnRvRml4ZWQoMil9PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4ke2Ftb3VudH08L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtcmlnaHQgdGV4dC1ncmF5LTQwMCI+JHt0b3RhbH08L3NwYW4+PC9kaXY+YDsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNTsgaSsrKSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlID0gYmFzZVByaWNlIC0gc3ByZWFkICogaSwgYW1vdW50ID0gKE1hdGgucmFuZG9tKCkgKiAyICsgMC4wMSkudG9GaXhlZCg0KTsgDQogICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSAocHJpY2UgKiBhbW91bnQpLnRvRml4ZWQoMik7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4oMTAwLCAoYW1vdW50IC8gMi41KSAqIDEwMCk7IA0KICAgICAgICAgICAgICAgIGJpZHNIdG1sICs9IGA8ZGl2IGNsYXNzPSJvcmRlci1ib29rLXJvdyBvcmRlci1ib29rLWJ1eSByZWxhdGl2ZSI+PGRpdiBjbGFzcz0iYWJzb2x1dGUgcmlnaHQtMCB0b3AtMCBib3R0b20tMCBiZy1lbWVyYWxkLTUwMC8xMCIgc3R5bGU9IndpZHRoOiR7d2lkdGh9JSI+PC9kaXY+PHNwYW4+JHtwcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1yaWdodCI+JHthbW91bnR9PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0IHRleHQtZ3JheS00MDAiPiR7dG90YWx9PC9zcGFuPjwvZGl2PmA7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGFza3NDb250YWluZXIuaW5uZXJIVE1MID0gYXNrc0h0bWw7IA0KICAgICAgICAgICAgYmlkc0NvbnRhaW5lci5pbm5lckhUTUwgPSBiaWRzSHRtbDsgDQogICAgICAgICAgICBjb25zdCBtaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmRlckJvb2tNaWRQcmljZScpOyANCiAgICAgICAgICAgIGlmIChtaWRFbCkgbWlkRWwudGV4dENvbnRlbnQgPSBiYXNlUHJpY2UudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KTsgDQogICAgICAgICAgICBjb25zdCBwcmljZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWRlQnRjUHJpY2UnKTsgDQogICAgICAgICAgICBpZiAocHJpY2VFbCkgcHJpY2VFbC50ZXh0Q29udGVudCA9ICckJyArIGJhc2VQcmljZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOyANCiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWRlQnRjQ2hhbmdlJyk7IA0KICAgICAgICAgICAgaWYgKGNoYW5nZUVsICYmIGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dKSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNoID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10uY2hhbmdlOyANCiAgICAgICAgICAgICAgICBjaGFuZ2VFbC50ZXh0Q29udGVudCA9IChjaCA+PSAwID8gJysnIDogJycpICsgY2gudG9GaXhlZCgyKSArICclJzsgDQogICAgICAgICAgICAgICAgY2hhbmdlRWwuY2xhc3NOYW1lID0gY2ggPj0gMCA/ICd0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20nIDogJ3RleHQtcm9zZS00MDAgdGV4dC1zbSc7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnN0IHNwb3RQcmljZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90UHJpY2UnKTsgDQogICAgICAgICAgICBpZiAoc3BvdFByaWNlICYmICFzcG90UHJpY2UucmVhZE9ubHkpIHNwb3RQcmljZS52YWx1ZSA9IGJhc2VQcmljZS50b0ZpeGVkKDIpOyANCiAgICAgICAgICAgIHVwZGF0ZVNwb3RBdmFpbGFibGUoKTsgDQogICAgICAgICAgICBjb25zdCBiaWRSYXRpbyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMwICsgMzUpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaWRSYXRpbycpLnRleHRDb250ZW50ID0gJ0IgJyArIGJpZFJhdGlvICsgJyUnOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhc2tSYXRpbycpLnRleHRDb250ZW50ID0gJ1MgJyArICgxMDAgLSBiaWRSYXRpbykgKyAnJSc7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlTGV2ZXJhZ2UodmFsdWUpIHsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGV2ZXJhZ2VWYWx1ZScpLnRleHRDb250ZW50ID0gdmFsdWUgKyAneCc7IA0KICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnV0dXJlc01hcmdpbicpLnZhbHVlKSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDY2OTI1OyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3NpdGlvblNpemUnKS50ZXh0Q29udGVudCA9IChtYXJnaW4gKiB2YWx1ZSAvIHByaWNlKS50b0ZpeGVkKDQpICsgJyBCVEMnOyANCiAgICAgICAgICAgIGlmIChtYXJnaW4gPiAwKSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGlxdWlkYXRpb25QcmljZScpLnRleHRDb250ZW50ID0gJyQnICsgKHByaWNlICogKDEgLSAwLjkgLyB2YWx1ZSkpLnRvRml4ZWQoMik7IA0KICAgICAgICAgICAgY29uc3QgcHJpY2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdXR1cmVzQnRjUHJpY2UnKTsgDQogICAgICAgICAgICBpZiAocHJpY2VFbCkgcHJpY2VFbC50ZXh0Q29udGVudCA9ICckJyArIHByaWNlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7IA0KICAgICAgICAgICAgY29uc3QgY2hhbmdlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnV0dXJlc0J0Y0NoYW5nZScpOyANCiAgICAgICAgICAgIGlmIChjaGFuZ2VFbCAmJiBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBjaCA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dLmNoYW5nZTsgDQogICAgICAgICAgICAgICAgY2hhbmdlRWwudGV4dENvbnRlbnQgPSAoY2ggPj0gMCA/ICcrJyA6ICcnKSArIGNoLnRvRml4ZWQoMikgKyAnJSc7IA0KICAgICAgICAgICAgICAgIGNoYW5nZUVsLmNsYXNzTmFtZSA9IGNoID49IDAgPyAndGV4dC1lbWVyYWxkLTQwMCcgOiAndGV4dC1yb3NlLTQwMCc7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9wZW5Qb3NpdGlvbihzaWRlKSB7IA0KICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z1dHVyZXNNYXJnaW4nKS52YWx1ZSwgbGV2ZXJhZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGV2ZXJhZ2VTbGlkZXInKS52YWx1ZTsgDQogICAgICAgICAgICBpZiAoIW1hcmdpbiB8fCBtYXJnaW4gPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBtYXJnaW4gYW1vdW50JywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDY2OTI1OyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ3RyYW5zYWN0aW9ucycsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgdHlwZTogJ3RyYWRlJywgZnJvbUN1cnJlbmN5OiAndXNkdCcsIHRvQ3VycmVuY3k6IHNlbGVjdGVkQ3J5cHRvLCBhbW91bnQ6IHBhcnNlRmxvYXQobWFyZ2luKSAqIHBhcnNlSW50KGxldmVyYWdlKSAvIHByaWNlLCBzdGF0dXM6ICdjb21wbGV0ZWQnIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydChgJHtzaWRlLnRvVXBwZXJDYXNlKCl9IHBvc2l0aW9uIG9wZW5lZCFgLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3BlblBvc2l0aW9ucycpLmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBtYi0yICR7c2lkZSA9PT0gJ2xvbmcnID8gJ3Bvc2l0aW9uLWxvbmcnIDogJ3Bvc2l0aW9uLXNob3J0J30iPjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIj48c3BhbiBjbGFzcz0iZm9udC1ib2xkIj5CVEMvVVNEVCAke3NpZGUudG9VcHBlckNhc2UoKX08L3NwYW4+PHNwYW4+JHtsZXZlcmFnZX14PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20gbXQtMSI+PHNwYW4+U2l6ZTogJHsobWFyZ2luICogbGV2ZXJhZ2UgLyBwcmljZSkudG9GaXhlZCg0KX0gQlRDPC9zcGFuPjxzcGFuPk1hcmdpbjogJCR7bWFyZ2lufTwvc3Bhbj48L2Rpdj48L2Rpdj5gOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIG9wZW4gcG9zaXRpb246ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRXYWxsZXRzKCkgeyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhdXRoL21lJyksIHdhbGxldHMgPSBkYXRhLnVzZXI/LndhbGxldHMgfHwge30sIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWxsZXRMaXN0Jyk7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgbGV0IHRvdGFsQmFsYW5jZSA9IDA7IA0KICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHdhbGxldHMpLmZvckVhY2goKFtjdXJyZW5jeSwgd2FsbGV0XSkgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV0gfHwgeyBuYW1lOiBjdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBzeW1ib2w6IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCksIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE1cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPuKCrjwvc3Bhbj4nLCBjb2xvcjogJ3VzZHQnIH0sIHVzZFZhbHVlID0gKHdhbGxldC5iYWxhbmNlIHx8IDApICogKGNyeXB0by5wcmljZSB8fCAxKTsgDQogICAgICAgICAgICAgICAgICAgIHRvdGFsQmFsYW5jZSArPSB1c2RWYWx1ZTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdnbGFzcyByb3VuZGVkLXhsIHAtNCc7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uICR7Y3J5cHRvLmNvbG9yfSB0ZXh0LWxnIj4ke2NyeXB0by5pY29ufTwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LXdoaXRlIj4ke2NyeXB0by5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPiR7d2FsbGV0LmJhbGFuY2U/LnRvRml4ZWQoNCkgfHwgJzAuMDAwMCd9PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSI+JCR7dXNkVmFsdWUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JHtjcnlwdG8ubmFtZX08L3A+PC9kaXY+PC9kaXY+YDsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dhbGxldFRvdGFsQmFsYW5jZScpLnRleHRDb250ZW50ID0gJyQnICsgdG90YWxCYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgd2FsbGV0czonLCBlcnJvcik7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBzdWJtaXREZXBvc2l0KCkgeyANCiAgICAgICAgICAgIHZhciBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0Q3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICB2YXIgYW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEFtb3VudCcpLnZhbHVlKTsgDQogICAgICAgICAgICB2YXIgdHhIYXNoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRUeEhhc2gnKS52YWx1ZS50cmltKCk7IA0KICAgICAgICAgICAgdmFyIGZyb21BZGRyZXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRGcm9tQWRkcmVzcycpLnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICB2YXIgbWV0aG9kRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdE1ldGhvZCcpOw0KICAgICAgICAgICAgdmFyIG1ldGhvZCA9IG1ldGhvZEVsID8gbWV0aG9kRWwudmFsdWUgOiAnY3J5cHRvJzsNCiAgICAgICAgICAgIHZhciBwYXlwYWxFbWFpbCA9ICcnOw0KICAgICAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ3BheXBhbCcpIHsNCiAgICAgICAgICAgICAgICB2YXIgZW1haWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsRW1haWwnKTsNCiAgICAgICAgICAgICAgICBwYXlwYWxFbWFpbCA9IGVtYWlsRWwgPyBlbWFpbEVsLnZhbHVlLnRyaW0oKSA6ICcnOw0KICAgICAgICAgICAgICAgIGlmICghcGF5cGFsRW1haWwpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgeW91ciBQYXlQYWwgZW1haWwnLCAnZXJyb3InKTsgcmV0dXJuOyB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGFtb3VudCcsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICB2YXIgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV07DQogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQcmljZSA9IGNyeXB0byA/IChjcnlwdG8ucHJpY2UgfHwgMCkgOiAwOw0KICAgICAgICAgICAgICAgIHZhciBib2R5ID0geyBjdXJyZW5jeTogY3VycmVuY3ksIGFtb3VudDogYW1vdW50LCBjdXJyZW50UHJpY2U6IGN1cnJlbnRQcmljZSwgdHhIYXNoOiB0eEhhc2ggfHwgbnVsbCwgZnJvbUFkZHJlc3M6IGZyb21BZGRyZXNzIHx8IG51bGwgfTsNCiAgICAgICAgICAgICAgICBpZiAobWV0aG9kID09PSAncGF5cGFsJykgeyBib2R5Lm1ldGhvZCA9ICdwYXlwYWwnOyBib2R5LnBheXBhbEVtYWlsID0gcGF5cGFsRW1haWw7IH0NCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdkZXBvc2l0cycsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IGJvZHkgfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRGVwb3NpdCBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5ISBJdCB3aWxsIGJlIHJldmlld2VkIHNob3J0bHkuJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRBbW91bnQnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFR4SGFzaCcpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0RnJvbUFkZHJlc3MnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICB2YXIgcGF5cGFsRW1haWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsRW1haWwnKTsNCiAgICAgICAgICAgICAgICBpZiAocGF5cGFsRW1haWxFbCkgcGF5cGFsRW1haWxFbC52YWx1ZSA9ICcnOw0KICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0Jyk7DQogICAgICAgICAgICAgICAgaWYgKHBheXBhbEV4cGlyeVRpbWVyKSB7IGNsZWFySW50ZXJ2YWwocGF5cGFsRXhwaXJ5VGltZXIpOyBwYXlwYWxFeHBpcnlUaW1lciA9IG51bGw7IH0NCiAgICAgICAgICAgICAgICBjbG9zZU1vZGFsKCdkZXBvc2l0TW9kYWwnKTsgDQogICAgICAgICAgICAgICAgbG9hZE15RGVwb3NpdHMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyANCiAgICAgICAgICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2VEYXRhICYmIGVycm9yLnJlc3BvbnNlRGF0YS5leHBpcmVkKSB7DQogICAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0Jyk7DQogICAgICAgICAgICAgICAgICAgIGlmIChwYXlwYWxFeHBpcnlUaW1lcikgeyBjbGVhckludGVydmFsKHBheXBhbEV4cGlyeVRpbWVyKTsgcGF5cGFsRXhwaXJ5VGltZXIgPSBudWxsOyB9DQogICAgICAgICAgICAgICAgICAgIHNob3dBbGVydCgnWW91ciBQYXlQYWwgZGVwb3NpdCB3aW5kb3cgaGFzIGV4cGlyZWQuIFBsZWFzZSBjbG9zZSBhbmQgcmVvcGVuIHRoZSBkZXBvc2l0IG1vZGFsIHRvIGdldCBmcmVzaCBkZXRhaWxzLicsICdlcnJvcicpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRmFpbGVkIHRvIHN1Ym1pdCBkZXBvc2l0OiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkTXlEZXBvc2l0cygpIHsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnZGVwb3NpdHMnKTsgDQogICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215RGVwb3NpdHNMaXN0Jyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRCYWRnZScpOyANCiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRlcG9zaXRzID0gZGF0YS5kZXBvc2l0cyB8fCBbXTsgDQogICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdDb3VudCA9IDA7IA0KICAgICAgICAgICAgICAgIGlmIChkZXBvc2l0cy5sZW5ndGggPT09IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC00IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAgdGV4dC1zbSI+PHA+Tm8gZGVwb3NpdCBoaXN0b3J5PC9wPjwvZGl2Pic7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoYmFkZ2UpIGJhZGdlLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyANCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGRlcG9zaXRzLmZvckVhY2goZCA9PiB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoZC5zdGF0dXMgPT09ICdwZW5kaW5nJykgcGVuZGluZ0NvdW50Kys7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW2QuY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBkLmN1cnJlbmN5LnRvVXBwZXJDYXNlKCksIGNvbG9yOiAndXNkdCcsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE1cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPuKCrjwvc3Bhbj4nIH07IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IGQuc3RhdHVzID09PSAncGVuZGluZycgPyAndGV4dC15ZWxsb3ctNDAwJyA6IChkLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6ICd0ZXh0LXJlZC00MDAnKTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0JnID0gZC5zdGF0dXMgPT09ICdwZW5kaW5nJyA/ICdiZy15ZWxsb3ctNTAwLzEwJyA6IChkLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/ICdiZy1lbWVyYWxkLTUwMC8xMCcgOiAnYmctcmVkLTUwMC8xMCcpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGQuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSBgZ2xhc3Mgcm91bmRlZC14bCBwLTMgJHtzdGF0dXNCZ31gOyANCiAgICAgICAgICAgICAgICAgICAgdmFyIG1ldGhvZExhYmVsID0gZC5tZXRob2QgPT09ICdwYXlwYWwnID8gJzxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLWJsdWUtNTAwLzIwIHRleHQtYmx1ZS00MDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIG1sLTEiPlBheVBhbDwvc3Bhbj4nIDogJyc7DQogICAgICAgICAgICAgICAgICAgIHZhciBwYXlwYWxJbmZvID0gZC5tZXRob2QgPT09ICdwYXlwYWwnICYmIGQucGF5cGFsRW1haWwgPyBgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ibHVlLTQwMCBtdC0xIj5QYXlQYWw6ICR7ZC5wYXlwYWxFbWFpbH08L3A+YCA6ICcnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbm90ZUluZm8gPSBkLmFkbWluTm90ZSA/IGA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWVtZXJhbGQtNDAwIG10LTEiPjxpIGNsYXNzPSJmYXMgZmEtY29tbWVudC1hbHQgbXItMSI+PC9pPiR7ZC5hZG1pbk5vdGV9PC9wPmAgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2NyeXB0by5jb2xvcn0gdGV4dC1zbSI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSI+JHtOdW1iZXIoZC5hbW91bnQpLnRvTG9jYWxlU3RyaW5nKCl9ICR7Y3J5cHRvLnN5bWJvbH0ke21ldGhvZExhYmVsfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2RhdGV9PC9wPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbWVkaXVtICR7c3RhdHVzQ29sb3J9IGNhcGl0YWxpemUiPiR7ZC5zdGF0dXN9PC9zcGFuPjwvZGl2PiR7ZC50eEhhc2ggPyBgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xIHRydW5jYXRlIj5UWDogJHtkLnR4SGFzaH08L3A+YCA6ICcnfSR7cGF5cGFsSW5mb30ke25vdGVJbmZvfWA7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsgDQogICAgICAgICAgICAgICAgfSk7IA0KICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgeyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdDb3VudCA+IDApIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBwZW5kaW5nQ291bnQ7IGJhZGdlLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRlcG9zaXRzOicsIGVycm9yKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pbkRlcG9zaXRzKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi9kZXBvc2l0cycpOyANCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5EZXBvc2l0c0NvbnRhaW5lcicpOyANCiAgICAgICAgICAgICAgICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkRlcG9zaXRCYWRnZScpOyANCiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRlcG9zaXRzID0gZGF0YS5kZXBvc2l0cyB8fCBbXTsgDQogICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdDb3VudCA9IDA7IA0KICAgICAgICAgICAgICAgIGlmIChkZXBvc2l0cy5sZW5ndGggPT09IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2stY2lyY2xlIHRleHQtNHhsIG1iLTMgdGV4dC1lbWVyYWxkLTUwMCI+PC9pPjxwPk5vIGRlcG9zaXQgcmVxdWVzdHMgZm91bmQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPGRpdiBjbGFzcz0ic3BhY2UteS0zIj4nOyANCiAgICAgICAgICAgICAgICBkZXBvc2l0cy5mb3JFYWNoKGQgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gZC5zdGF0dXMgPT09ICdwZW5kaW5nJzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChpc1BlbmRpbmcpIHBlbmRpbmdDb3VudCsrOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtkLmN1cnJlbmN5XSB8fCB7IHN5bWJvbDogZC5jdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBjb2xvcjogJ3VzZHQnLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JyB9OyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGQuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IGlzUGVuZGluZyA/ICd0ZXh0LXllbGxvdy00MDAnIDogKGQuc3RhdHVzID09PSAnYXBwcm92ZWQnID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtcmVkLTQwMCcpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQmcgPSBpc1BlbmRpbmcgPyAnYmcteWVsbG93LTUwMC8xMCBib3JkZXIteWVsbG93LTUwMC8yMCcgOiAoZC5zdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAnYmctZW1lcmFsZC01MDAvMTAgYm9yZGVyLWVtZXJhbGQtNTAwLzIwJyA6ICdiZy1yZWQtNTAwLzEwIGJvcmRlci1yZWQtNTAwLzIwJyk7IA0KICAgICAgICAgICAgICAgICAgICB2YXIgbWV0aG9kQmFkZ2UgPSBkLm1ldGhvZCA9PT0gJ3BheXBhbCcgPyAnIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLWJsdWUtNTAwLzIwIHRleHQtYmx1ZS00MDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIj5QYXlQYWw8L3NwYW4+JyA6ICcnOw0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtNCBib3JkZXIgJHtzdGF0dXNCZ30iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2NyeXB0by5jb2xvcn0gdGV4dC1zbSI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7TnVtYmVyKGQuYW1vdW50KS50b0xvY2FsZVN0cmluZygpfSAke2NyeXB0by5zeW1ib2x9JHttZXRob2RCYWRnZX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JHtkLnVzZXJOYW1lIHx8IGQudXNlckVtYWlsfTwvcD48L2Rpdj48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyBmb250LW1lZGl1bSAke3N0YXR1c0NvbG9yfSBweC0yIHB5LTEgcm91bmRlZC1sZyAke2lzUGVuZGluZyA/ICdiZy15ZWxsb3ctNTAwLzEwJyA6IChkLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/ICdiZy1lbWVyYWxkLTUwMC8xMCcgOiAnYmctcmVkLTUwMC8xMCcpfSI+JHtkLnN0YXR1cy50b1VwcGVyQ2FzZSgpfTwvc3Bhbj48L2Rpdj4ke2QubWV0aG9kID09PSAncGF5cGFsJyAmJiBkLnBheXBhbEVtYWlsID8gYDxkaXYgY2xhc3M9ImJnLWJsdWUtNTAwLzEwIHJvdW5kZWQtbGcgcC0yIG1iLTIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtYmx1ZS00MDAgbWItMSI+UGF5UGFsIEVtYWlsPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtd2hpdGUiPiR7ZC5wYXlwYWxFbWFpbH08L3A+PC9kaXY+YCA6ICcnfSR7ZC50eEhhc2ggPyBgPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgbWItMiI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5UcmFuc2FjdGlvbiBIYXNoPC9wPjxjb2RlIGNsYXNzPSJ0ZXh0LXhzIHRleHQtd2hpdGUgYnJlYWstYWxsIj4ke2QudHhIYXNofTwvY29kZT48L2Rpdj5gIDogJyd9JHtkLmZyb21BZGRyZXNzID8gYDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMiI+RnJvbTogJHtkLmZyb21BZGRyZXNzfTwvcD5gIDogJyd9PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0yIj48c3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyIG1yLTEiPjwvaT4ke2RhdGV9PC9zcGFuPjxzcGFuPklEOiAjJHtkLmlkfTwvc3Bhbj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGVuZGluZykgeyANCiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIiPjxidXR0b24gb25jbGljaz0iYXBwcm92ZURlcG9zaXQoJyR7ZC5pZH0nKSIgY2xhc3M9ImZsZXgtMSBweS0yIGJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNzAwIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LXNlbWlib2xkIHJvdW5kZWQtbGciPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2sgbXItMSI+PC9pPkFwcHJvdmUgJiBDcmVkaXQ8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InJlamVjdERlcG9zaXQoJyR7ZC5pZH0nKSIgY2xhc3M9ImZsZXgtMSBweS0yIGJnLXJvc2UtNjAwIGhvdmVyOmJnLXJvc2UtNzAwIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LXNlbWlib2xkIHJvdW5kZWQtbGciPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgbXItMSI+PC9pPlJlamVjdDwvYnV0dG9uPjwvZGl2PmA7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8L2Rpdj4nOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7IA0KICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgeyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdDb3VudCA+IDApIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBwZW5kaW5nQ291bnQ7IGJhZGdlLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFkbWluIGRlcG9zaXRzOicsIGVycm9yKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluRGVwb3NpdHNDb250YWluZXInKS5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPkZhaWxlZCB0byBsb2FkIGRlcG9zaXRzPC9wPjwvZGl2Pic7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBhcHByb3ZlRGVwb3NpdChpZCkgeyANCiAgICAgICAgICAgIHNob3dQcm9tcHRNb2RhbCgnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoZSBjdXN0b21lciAob3B0aW9uYWwpOicsICcnLCBmdW5jdGlvbihub3RlKSB7IGRvQXBwcm92ZURlcG9zaXQoaWQsIG5vdGUpOyB9LCBmdW5jdGlvbigpIHt9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb0FwcHJvdmVEZXBvc2l0KGlkLCBub3RlKSB7DQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9kZXBvc2l0cy9hcHByb3ZlJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBkZXBvc2l0SWQ6IGlkLCBub3RlOiBub3RlIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRGVwb3NpdCBhcHByb3ZlZCBhbmQgYmFsYW5jZSBjcmVkaXRlZCEnLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5EZXBvc2l0cygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGFwcHJvdmUgZGVwb3NpdDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gcmVqZWN0RGVwb3NpdChpZCkgeyANCiAgICAgICAgICAgIHNob3dQcm9tcHRNb2RhbCgnUmVqZWN0aW9uIHJlYXNvbiAob3B0aW9uYWwpOicsICcnLCBmdW5jdGlvbihub3RlKSB7IGRvUmVqZWN0RGVwb3NpdChpZCwgbm90ZSk7IH0sIGZ1bmN0aW9uKCkge30pOw0KICAgICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvUmVqZWN0RGVwb3NpdChpZCwgbm90ZSkgew0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vZGVwb3NpdHMvcmVqZWN0JywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBkZXBvc2l0SWQ6IGlkLCBub3RlOiBub3RlIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRGVwb3NpdCByZWplY3RlZC4nLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5EZXBvc2l0cygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIHJlamVjdCBkZXBvc2l0OiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzaG93QWRtaW5OYXYoKSB7IGNvbnN0IG5hdkFkbWluID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdkFkbWluJyk7IGlmIChuYXZBZG1pbiAmJiBpc0FkbWluKSBuYXZBZG1pbi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pbkN1c3RvbWVycygpIHsgDQogICAgICAgICAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnYWRtaW4vdXNlcnMnKSwgdXNlcnMgPSBkYXRhLnVzZXJzIHx8IFtdLCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DdXN0b21lckxpc3QnKTsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyANCiAgICAgICAgICAgICAgICBpZiAodXNlcnMubGVuZ3RoID09PSAwKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyBjdXN0b21lcnMgZm91bmQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIHJldHVybjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB1c2Vycy5mb3JFYWNoKHVzZXIgPT4geyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIucm9sZSA9PT0gJ2FkbWluJykgcmV0dXJuOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ3AtNCBib3JkZXItYiBib3JkZXItZ3JheS04MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuJzsgDQogICAgICAgICAgICAgICAgICAgIGxldCB1c2VyVG90YWwgPSAwOyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIud2FsbGV0cykgT2JqZWN0LmVudHJpZXModXNlci53YWxsZXRzKS5mb3JFYWNoKChbYywgd10pID0+IHsgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjXTsgdXNlclRvdGFsICs9ICh3LmJhbGFuY2UgfHwgMCkgKiAoY3J5cHRvID8gY3J5cHRvLnByaWNlIDogMSk7IH0pOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZ3JheS02MDAgdG8tZ3JheS03MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LWJvbGQiPiR7dXNlci5uYW1lPy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSB8fCAnVSd9PC9zcGFuPjwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JHt1c2VyLm5hbWUgfHwgJ1Vua25vd24nfTwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj4ke3VzZXIuZW1haWx9PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiQke3VzZXJUb3RhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pfTwvcD48ZGl2IGNsYXNzPSJmbGV4IGdhcC0yIGp1c3RpZnktZW5kIG10LTEiPjxidXR0b24gb25jbGljaz0icHJlZmlsbFRyYW5zZmVyRW1haWwoJyR7dXNlci5lbWFpbH0nKSIgY2xhc3M9InRleHQteHMgdGV4dC1wdXJwbGUtNDAwIGhvdmVyOnRleHQtcHVycGxlLTMwMCI+PGkgY2xhc3M9ImZhcyBmYS1wYXBlci1wbGFuZSBtci0xIj48L2k+U2VuZCBGdW5kczwvYnV0dG9uPjxidXR0b24gb25jbGljaz0ibG9naW5Bc0N1c3RvbWVyKCR7dXNlci5pZH0pIiBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTQwMCBob3Zlcjp0ZXh0LWFtYmVyLTMwMCI+PGkgY2xhc3M9ImZhcyBmYS1zaWduLWluLWFsdCBtci0xIj48L2k+TG9naW4gQXM8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9ImRlbGV0ZUN1c3RvbWVyKCR7dXNlci5pZH0sICcke3VzZXIubmFtZT8ucmVwbGFjZSgvJy9nLCAiXCciKSB8fCAnQ3VzdG9tZXInfScpIiBjbGFzcz0idGV4dC14cyB0ZXh0LXJvc2UtNDAwIGhvdmVyOnRleHQtcm9zZS0zMDAiPjxpIGNsYXNzPSJmYXMgZmEtdHJhc2ggbXItMSI+PC9pPkRlbGV0ZTwvYnV0dG9uPjwvZGl2PjwvZGl2PmA7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsgDQogICAgICAgICAgICAgICAgfSk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgY3VzdG9tZXJzOicsIGVycm9yKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQ3VzdG9tZXJMaXN0JykuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5GYWlsZWQgdG8gbG9hZCBjdXN0b21lcnM8L3A+PC9kaXY+JzsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pbldpdGhkcmF3YWxzKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi93aXRoZHJhd2FscycpLCB3aXRoZHJhd2FscyA9IGRhdGEud2l0aGRyYXdhbHMgfHwgW10sIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbldpdGhkcmF3YWxzQ29udGFpbmVyJyk7IA0KICAgICAgICAgICAgICAgIGxldCBwZW5kaW5nQ291bnQgPSAwLCBhcHByb3ZlZENvdW50ID0gMDsgDQogICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjsgDQogICAgICAgICAgICAgICAgaWYgKHdpdGhkcmF3YWxzLmxlbmd0aCA9PT0gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJwLTggdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjay1jaXJjbGUgdGV4dC00eGwgbWItMyB0ZXh0LWVtZXJhbGQtNTAwIj48L2k+PHA+Tm8gd2l0aGRyYXdhbCByZXF1ZXN0cyBmb3VuZDwvcD48L2Rpdj4nOyANCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUGVuZGluZ0NvdW50JykudGV4dENvbnRlbnQgPSAnMCc7IA0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5BcHByb3ZlZENvdW50JykudGV4dENvbnRlbnQgPSAnMCc7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPGRpdiBjbGFzcz0ic3BhY2UteS0zIj4nOyANCiAgICAgICAgICAgICAgICB3aXRoZHJhd2Fscy5mb3JFYWNoKHcgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gdy5zdGF0dXMgPT09ICdwZW5kaW5nJzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChpc1BlbmRpbmcpIHBlbmRpbmdDb3VudCsrOyBlbHNlIGFwcHJvdmVkQ291bnQrKzsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbdy5mcm9tQ3VycmVuY3ldIHx8IHsgc3ltYm9sOiB3LmZyb21DdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBjb2xvcjogJ3VzZHQnLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JyB9OyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHcuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBbW91bnQgPSBOdW1iZXIody5hbW91bnQpLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDggfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1JlamVjdGVkID0gdy5zdGF0dXMgPT09ICdyZWplY3RlZCcgfHwgdy5zdGF0dXMgPT09ICdjYW5jZWxsZWQnOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBpc1BlbmRpbmcgPyAndGV4dC15ZWxsb3ctNDAwJyA6ICh3LnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgPyAndGV4dC1lbWVyYWxkLTQwMCcgOiAoaXNSZWplY3RlZCA/ICd0ZXh0LXJvc2UtNDAwJyA6ICd0ZXh0LWdyYXktNDAwJykpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQmcgPSBpc1BlbmRpbmcgPyAnYmcteWVsbG93LTUwMC8xMCBib3JkZXIteWVsbG93LTUwMC8yMCcgOiAody5zdGF0dXMgPT09ICdjb21wbGV0ZWQnID8gJ2JnLWVtZXJhbGQtNTAwLzEwIGJvcmRlci1lbWVyYWxkLTUwMC8yMCcgOiAoaXNSZWplY3RlZCA/ICdiZy1yb3NlLTUwMC8xMCBib3JkZXItcm9zZS01MDAvMjAnIDogJ2JnLWdyYXktNTAwLzEwIGJvcmRlci1ncmF5LTUwMC8yMCcpKTsgDQogICAgICAgICAgICAgICAgICAgIHZhciBpc1dpcmUgPSB3Lm1ldGhvZCA9PT0gJ3dpcmUnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbWV0aG9kQmFkZ2UgPSBpc1dpcmUgPyAnIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLWFtYmVyLTUwMC8yMCB0ZXh0LWFtYmVyLTQwMCBweC0xLjUgcHktMC41IHJvdW5kZWQiPldpcmU8L3NwYW4+JyA6ICcgPHNwYW4gY2xhc3M9InRleHQteHMgYmctcHVycGxlLTUwMC8yMCB0ZXh0LXB1cnBsZS00MDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIj5DcnlwdG88L3NwYW4+JzsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRldGFpbEJsb2NrID0gJyc7DQogICAgICAgICAgICAgICAgICAgIGlmIChpc1dpcmUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbEJsb2NrID0gJzxkaXYgY2xhc3M9ImJnLWFtYmVyLTUwMC8xMCBib3JkZXIgYm9yZGVyLWFtYmVyLTUwMC8yMCByb3VuZGVkLWxnIHAtMyBtYi0zIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTQwMCBmb250LXNlbWlib2xkIG1iLTIiPjxpIGNsYXNzPSJmYXMgZmEtdW5pdmVyc2l0eSBtci0xIj48L2k+V2lyZSBUcmFuc2ZlciBEZXRhaWxzPC9wPjxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTIgdGV4dC14cyI+PGRpdj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+QmFuazwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LmJhbmtOYW1lIHx8ICctJykgKyAnPC9wPjwvZGl2PjxkaXY+PHNwYW4gY2xhc3M9InRleHQtZ3JheS01MDAiPkFjY291bnQgSG9sZGVyPC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LXdoaXRlIj4nICsgKHcuYWNjb3VudEhvbGRlciB8fCAnLScpICsgJzwvcD48L2Rpdj48ZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj5BY2NvdW50IE51bWJlcjwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LmFjY291bnROdW1iZXIgfHwgJy0nKSArICc8L3A+PC9kaXY+PGRpdj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+Um91dGluZzwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LnJvdXRpbmdOdW1iZXIgfHwgJy0nKSArICc8L3A+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXNwYW4tMiI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS01MDAiPlNXSUZUL0JJQzwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LnN3aWZ0Q29kZSB8fCAnLScpICsgJzwvcD48L2Rpdj48L2Rpdj48L2Rpdj4nOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsQmxvY2sgPSAnPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgbWItMyI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5XaXRoZHJhd2FsIEFkZHJlc3M8L3A+PGNvZGUgY2xhc3M9InRleHQteHMgdGV4dC13aGl0ZSBicmVhay1hbGwiPicgKyAody53aXRoZHJhd2FsQWRkcmVzcyB8fCAnLScpICsgJzwvY29kZT48L2Rpdj4nOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJvcmRlciAnICsgc3RhdHVzQmcgKyAnIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBtYi0zIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJyArIGNyeXB0by5jb2xvciArICcgdGV4dC1zbSI+JyArIGNyeXB0by5pY29uICsgJzwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JyArIGZvcm1hdHRlZEFtb3VudCArICcgJyArIGNyeXB0by5zeW1ib2wgKyBtZXRob2RCYWRnZSArICc8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JyArICh3LnVzZXJOYW1lIHx8IHcudXNlckVtYWlsKSArICc8L3A+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1tZWRpdW0gJyArIHN0YXR1c0NvbG9yICsgJyBweC0yIHB5LTEgcm91bmRlZC1sZyAnICsgKGlzUGVuZGluZyA/ICdiZy15ZWxsb3ctNTAwLzEwJyA6ICh3LnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLWdyYXktNTAwLzEwJykpICsgJyI+JyArIChpc1JlamVjdGVkID8gJ1JFSkVDVEVEJyA6IHcuc3RhdHVzLnRvVXBwZXJDYXNlKCkpICsgJzwvc3Bhbj48L2Rpdj4nICsgZGV0YWlsQmxvY2sgKyAnPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0zIj48c3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyIG1yLTEiPjwvaT4nICsgZGF0ZSArICc8L3NwYW4+PHNwYW4+SUQ6ICMnICsgdy5faWQgKyAnPC9zcGFuPjwvZGl2Pic7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNQZW5kaW5nKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGJ1dHRvbiBvbmNsaWNrPSJhcHByb3ZlV2l0aGRyYXdhbCgnJHt3Ll9pZH0nKSIgY2xhc3M9ImZsZXgtMSBweS0yIGJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNzAwIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LXNlbWlib2xkIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnMiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2sgbXItMSI+PC9pPkFwcHJvdmU8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InJlamVjdFdpdGhkcmF3YWwoJyR7dy5faWR9JykiIGNsYXNzPSJmbGV4LTEgcHktMiBiZy1yb3NlLTYwMCBob3ZlcjpiZy1yb3NlLTcwMCB0ZXh0LXdoaXRlIHRleHQtc20gZm9udC1zZW1pYm9sZCByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIj48aSBjbGFzcz0iZmFzIGZhLXRpbWVzIG1yLTEiPjwvaT5SZWplY3Q8L2J1dHRvbj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsgDQogICAgICAgICAgICAgICAgfSk7IA0KICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBodG1sOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5QZW5kaW5nQ291bnQnKS50ZXh0Q29udGVudCA9IHBlbmRpbmdDb3VudDsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQXBwcm92ZWRDb3VudCcpLnRleHRDb250ZW50ID0gYXBwcm92ZWRDb3VudDsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCB3aXRoZHJhd2FsczonLCBlcnJvcik7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbldpdGhkcmF3YWxzQ29udGFpbmVyJykuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5GYWlsZWQgdG8gbG9hZCB3aXRoZHJhd2FsczwvcD48L2Rpdj4nOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gYXBwcm92ZVdpdGhkcmF3YWwoaWQpIHsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi93aXRoZHJhd2Fscy9hcHByb3ZlJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyB3aXRoZHJhd2FsSWQ6IGlkIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnV2l0aGRyYXdhbCBhcHByb3ZlZCBzdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgbG9hZEFkbWluV2l0aGRyYXdhbHMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZCB0byBhcHByb3ZlOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiByZWplY3RXaXRoZHJhd2FsKGlkKSB7IA0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQXJlIHlvdSBzdXJlPyBGdW5kcyB3aWxsIGJlIHJlZnVuZGVkIHRvIHRoZSB1c2VyLicsIGZ1bmN0aW9uKCkgeyBkb1JlamVjdFdpdGhkcmF3YWwoaWQpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb1JlamVjdFdpdGhkcmF3YWwoaWQpIHsNCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ2FkbWluL3dpdGhkcmF3YWxzL3JlamVjdCcsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgd2l0aGRyYXdhbElkOiBpZCB9IH0pOyANCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1dpdGhkcmF3YWwgcmVqZWN0ZWQgYW5kIGZ1bmRzIHJlZnVuZGVkLicsICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGxvYWRBZG1pbldpdGhkcmF3YWxzKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdGYWlsZWQgdG8gcmVqZWN0OiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkQWRtaW5Qcm9maXRXaXRoZHJhd2FscygpIHsgDQogICAgICAgICAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcHJvZml0LXdpdGhkcmF3YWxzJyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblByb2ZpdFdpdGhkcmF3YWxzQ29udGFpbmVyJyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUHJvZml0V2l0aGRyYXdhbEJhZGdlJyk7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgY29uc3Qgd2l0aGRyYXdhbHMgPSBkYXRhLndpdGhkcmF3YWxzIHx8IFtdOyANCiAgICAgICAgICAgICAgICBsZXQgcGVuZGluZ0NvdW50ID0gMDsgDQogICAgICAgICAgICAgICAgaWYgKHdpdGhkcmF3YWxzLmxlbmd0aCA9PT0gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJwLTggdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjay1jaXJjbGUgdGV4dC00eGwgbWItMyB0ZXh0LWVtZXJhbGQtNTAwIj48L2k+PHA+Tm8gcHJvZml0IHdpdGhkcmF3YWwgcmVxdWVzdHM8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPGRpdiBjbGFzcz0ic3BhY2UteS0zIj4nOyANCiAgICAgICAgICAgICAgICB3aXRoZHJhd2Fscy5mb3JFYWNoKHcgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gdy5zdGF0dXMgPT09ICdwZW5kaW5nJzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChpc1BlbmRpbmcpIHBlbmRpbmdDb3VudCsrOyANCiAgICAgICAgICAgICAgICAgICAgdmFyIHdDdXJyZW5jeSA9IHcuY3VycmVuY3kgfHwgdy5mcm9tQ3VycmVuY3kgfHwgJ3VzZHQnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW3dDdXJyZW5jeV0gfHwgeyBzeW1ib2w6IHdDdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBjb2xvcjogJ3VzZHQnLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JyB9Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUody5jcmVhdGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNEb25lID0gdy5zdGF0dXMgPT09ICdhcHByb3ZlZCcgfHwgdy5zdGF0dXMgPT09ICdjb21wbGV0ZWQnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IGlzUGVuZGluZyA/ICd0ZXh0LWFtYmVyLTQwMCcgOiAoaXNEb25lID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtcm9zZS00MDAnKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQmcgPSBpc1BlbmRpbmcgPyAnYmctYW1iZXItNTAwLzEwIGJvcmRlci1hbWJlci01MDAvMjAnIDogKGlzRG9uZSA/ICdiZy1lbWVyYWxkLTUwMC8xMCBib3JkZXItZW1lcmFsZC01MDAvMjAnIDogJ2JnLXJvc2UtNTAwLzEwIGJvcmRlci1yb3NlLTUwMC8yMCcpOw0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtNCBib3JkZXIgJHtzdGF0dXNCZ30iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2NyeXB0by5jb2xvcn0gdGV4dC1zbSI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7Zm9ybWF0Q2xlYW4ody5hbW91bnQsIDQpfSAke2NyeXB0by5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPiR7dy51c2VyTmFtZSB8fCB3LnVzZXJFbWFpbH08L3A+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1tZWRpdW0gJHtzdGF0dXNDb2xvcn0gcHgtMiBweS0xIHJvdW5kZWQtbGcgJHtpc1BlbmRpbmcgPyAnYmctYW1iZXItNTAwLzEwJyA6IChpc0RvbmUgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLXJvc2UtNTAwLzEwJyl9Ij4ke3cuc3RhdHVzLnRvVXBwZXJDYXNlKCl9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQtbGcgcC0yIG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+RGVzY3JpcHRpb248L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC13aGl0ZSI+JHt3LmRlc2NyaXB0aW9uIHx8ICctJ308L3A+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0zIj48c3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyIG1yLTEiPjwvaT4ke2RhdGV9PC9zcGFuPjxzcGFuPklEOiAjJHt3LmlkfTwvc3Bhbj48L2Rpdj5gOw0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNQZW5kaW5nKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGJ1dHRvbiBvbmNsaWNrPSJhcHByb3ZlUHJvZml0V2l0aGRyYXdhbCgnJHt3LmlkfScpIiBjbGFzcz0iZmxleC0xIHB5LTIgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC03MDAgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjayBtci0xIj48L2k+QXBwcm92ZTwvYnV0dG9uPjxidXR0b24gb25jbGljaz0icmVqZWN0UHJvZml0V2l0aGRyYXdhbCgnJHt3LmlkfScpIiBjbGFzcz0iZmxleC0xIHB5LTIgYmctcm9zZS02MDAgaG92ZXI6Ymctcm9zZS03MDAgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyBtci0xIj48L2k+UmVqZWN0PC9idXR0b24+PC9kaXY+YDsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7IA0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgICAgICAgICBodG1sICs9ICc8L2Rpdj4nOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gaHRtbDsgDQogICAgICAgICAgICAgICAgaWYgKGJhZGdlKSB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAocGVuZGluZ0NvdW50ID4gMCkgeyBiYWRnZS50ZXh0Q29udGVudCA9IHBlbmRpbmdDb3VudDsgYmFkZ2UuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyBiYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgfSANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgcHJvZml0IHdpdGhkcmF3YWxzOicsIGVycm9yKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUHJvZml0V2l0aGRyYXdhbHNDb250YWluZXInKS5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPkZhaWxlZCB0byBsb2FkIHByb2ZpdCB3aXRoZHJhd2FsczwvcD48L2Rpdj4nOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gYXBwcm92ZVByb2ZpdFdpdGhkcmF3YWwoaWQpIHsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9wcm9maXQtd2l0aGRyYXdhbHMvYXBwcm92ZScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgd2l0aGRyYXdhbElkOiBpZCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUHJvZml0IHdpdGhkcmF3YWwgYXBwcm92ZWQhIEZ1bmRzIGFkZGVkIHRvIGN1c3RvbWVyIHdhbGxldC4nLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5Qcm9maXRXaXRoZHJhd2FscygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGFwcHJvdmU6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHJlamVjdFByb2ZpdFdpdGhkcmF3YWwoaWQpIHsgDQogICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVqZWN0IHRoaXMgcHJvZml0IHdpdGhkcmF3YWw/JywgZnVuY3Rpb24oKSB7IGRvUmVqZWN0UHJvZml0V2l0aGRyYXdhbChpZCk7IH0pOw0KICAgICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvUmVqZWN0UHJvZml0V2l0aGRyYXdhbChpZCkgew0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcHJvZml0LXdpdGhkcmF3YWxzL3JlamVjdCcsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgd2l0aGRyYXdhbElkOiBpZCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUHJvZml0IHdpdGhkcmF3YWwgcmVqZWN0ZWQuJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgbG9hZEFkbWluUHJvZml0V2l0aGRyYXdhbHMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZCB0byByZWplY3Q6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckFtb3VudCcpPy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJTdW1tYXJ5QW1vdW50JykudGV4dENvbnRlbnQgPSBgJHt0aGlzLnZhbHVlfSAke2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1cnJlbmN5JykudmFsdWUudG9VcHBlckNhc2UoKX1gOyB9KTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYW5zZmVyQ3VzdG9tZXJFbWFpbCcpPy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJUb0VtYWlsJykudGV4dENvbnRlbnQgPSB0aGlzLnZhbHVlIHx8ICctJzsgfSk7DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQWRtaW5UcmFuc2ZlcihlKSB7IA0KICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyANCiAgICAgICAgICAgIHZhciBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1c3RvbWVyRW1haWwnKS52YWx1ZSwgY3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJDdXJyZW5jeScpLnZhbHVlLCBhbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckFtb3VudCcpLnZhbHVlKTsgDQogICAgICAgICAgICB2YXIgZGVzY0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYW5zZmVyRGVzY3JpcHRpb24nKTsNCiAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRlc2NFbCA/IGRlc2NFbC52YWx1ZS50cmltKCkgOiAnJzsNCiAgICAgICAgICAgIGlmICghYW1vdW50IHx8IGFtb3VudCA8PSAwKSB7IHNob3dBbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgYW1vdW50JywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfSANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ2FkbWluL3RyYW5zZmVyJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyByZWNpcGllbnRFbWFpbDogZW1haWwsIGN1cnJlbmN5OiBjdXJyZW5jeSwgYW1vdW50OiBhbW91bnQsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9IH0pOyANCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1N1Y2Nlc3NmdWxseSBzZW50ICcgKyBhbW91bnQgKyAnICcgKyBjdXJyZW5jeS50b1VwcGVyQ2FzZSgpICsgJyB0byAnICsgZW1haWwsICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1c3RvbWVyRW1haWwnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJBbW91bnQnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBpZiAoZGVzY0VsKSBkZXNjRWwudmFsdWUgPSAnJzsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJUb0VtYWlsJykudGV4dENvbnRlbnQgPSAnLSc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlclN1bW1hcnlBbW91bnQnKS50ZXh0Q29udGVudCA9ICctJzsgDQogICAgICAgICAgICAgICAgbG9hZEFkbWluQ3VzdG9tZXJzKCk7IA0KICAgICAgICAgICAgICAgIGxvYWRVc2VyRGF0YSgpOyANCiAgICAgICAgICAgICAgICBsb2FkVHJhbnNhY3Rpb25zKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdUcmFuc2ZlciBmYWlsZWQ6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwcmVmaWxsVHJhbnNmZXJFbWFpbChlbWFpbCkgeyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1c3RvbWVyRW1haWwnKS52YWx1ZSA9IGVtYWlsOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlclRvRW1haWwnKS50ZXh0Q29udGVudCA9IGVtYWlsOyANCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNhZG1pblNlY3Rpb24gZm9ybScpLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOyANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNob3dEZXBvc2l0TW9kYWwoKSB7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyANCiAgICAgICAgICAgIHVwZGF0ZURlcG9zaXRBZGRyZXNzKCk7IA0KICAgICAgICAgICAgdXBkYXRlRGVwb3NpdFBheXBhbFZpc2liaWxpdHkoKTsgDQogICAgICAgICAgICBpZiAoaXNFdXJvcGVhbkN1c3RvbWVyKCkpIHsgYXdhaXQgbG9hZFBheXBhbEVtYWlsKCk7IH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ3NldHRpbmdzL3BheXBhbCcpOw0KICAgICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsRGlzcGxheUVtYWlsJyk7DQogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IGRhdGEucGF5cGFsRW1haWwgfHwgJ05vdCBjb25maWd1cmVkLiBDb250YWN0IHN1cHBvcnQuJzsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFBheXBhbERpc3BsYXlFbWFpbCcpOw0KICAgICAgICAgICAgICAgIGlmIChlbCkgZWwudGV4dENvbnRlbnQgPSAnTm90IGNvbmZpZ3VyZWQuIENvbnRhY3Qgc3VwcG9ydC4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHNob3dXaXRoZHJhd01vZGFsKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyB1cGRhdGVXaXRoZHJhd0F2YWlsYWJsZSgpOyB9DQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVdpdGhkcmF3QXZhaWxhYmxlKCkgeyBjb25zdCBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0N1cnJlbmN5JykudmFsdWU7IGNvbnN0IGJhbGFuY2UgPSBjdXJyZW50VXNlcj8ud2FsbGV0cz8uW2N1cnJlbmN5XT8uYmFsYW5jZSB8fCAwOyBjb25zdCBzeW1ib2wgPSBjcnlwdG9EYXRhW2N1cnJlbmN5XT8uc3ltYm9sIHx8IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0F2YWlsYWJsZScpLnRleHRDb250ZW50ID0gYmFsYW5jZS50b0ZpeGVkKDQpICsgJyAnICsgc3ltYm9sOyB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pblBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL3NldHRpbmdzL3BheXBhbCcpOw0KICAgICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBheXBhbEVtYWlsJyk7DQogICAgICAgICAgICAgICAgaWYgKGVsICYmIGRhdGEucGF5cGFsRW1haWwpIGVsLnZhbHVlID0gZGF0YS5wYXlwYWxFbWFpbDsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgUGF5UGFsIHNldHRpbmdzOicsIGUpOyB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNhdmVBZG1pblBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdmFyIGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUGF5cGFsRW1haWwnKS52YWx1ZS50cmltKCk7DQogICAgICAgICAgICBpZiAoZW1haWwgJiYgIWVtYWlsLmluY2x1ZGVzKCdAJykpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJywgJ2Vycm9yJyk7IHJldHVybjsgfQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9zZXR0aW5ncy9wYXlwYWwnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHBheXBhbEVtYWlsOiBlbWFpbCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGF5UGFsIGVtYWlsIHNhdmVkIHN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpOw0KICAgICAgICAgICAgICAgIHZhciBzdGF0dXNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBheXBhbFN0YXR1cycpOw0KICAgICAgICAgICAgICAgIGlmIChzdGF0dXNFbCkgeyBzdGF0dXNFbC50ZXh0Q29udGVudCA9IGVtYWlsID8gJ0FjdGl2ZTogJyArIGVtYWlsIDogJ0NsZWFyZWQnOyBzdGF0dXNFbC5jbGFzc05hbWUgPSAnbXQtMyB0ZXh0LXhzIHRleHQtY2VudGVyIHRleHQtZW1lcmFsZC00MDAnOyB9DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZCB0byBzYXZlOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2xlYXJBZG1pblBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQ2xlYXIgdGhlIFBheVBhbCBlbWFpbD8gRXVyb3BlYW4gY3VzdG9tZXJzIHdpbGwgbm90IGJlIGFibGUgdG8gZGVwb3NpdCB2aWEgUGF5UGFsLicsIGZ1bmN0aW9uKCkgeyBkb0NsZWFyUGF5cGFsRW1haWwoKTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9DbGVhclBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9zZXR0aW5ncy9wYXlwYWwnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHBheXBhbEVtYWlsOiAnJyB9IH0pOw0KICAgICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBheXBhbEVtYWlsJyk7DQogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC52YWx1ZSA9ICcnOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGF5UGFsIGVtYWlsIGNsZWFyZWQuJywgJ3N1Y2Nlc3MnKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGNsZWFyOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEN1c3RvbSBjb25maXJtL3Byb21wdCBzeXN0ZW0gKG5vIG5hdGl2ZSBicm93c2VyIGRpYWxvZ3MpDQogICAgICAgIHZhciBjb25maXJtQ2FsbGJhY2sgPSBudWxsOw0KICAgICAgICB2YXIgcHJvbXB0Q2FsbGJhY2sgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBzaG93Q29uZmlybU1vZGFsKG1lc3NhZ2UsIG9uQ29uZmlybSwgb25DYW5jZWwpIHsNCiAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtTW9kYWxNZXNzYWdlJyk7DQogICAgICAgICAgICBpZiAoZWwpIGVsLnRleHRDb250ZW50ID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGNvbmZpcm1DYWxsYmFjayA9IHsgY29uZmlybTogb25Db25maXJtIHx8IGZ1bmN0aW9uKCl7fSwgY2FuY2VsOiBvbkNhbmNlbCB8fCBmdW5jdGlvbigpe30gfTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtTW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBvbkNvbmZpcm1PaygpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm1Nb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAoY29uZmlybUNhbGxiYWNrKSBjb25maXJtQ2FsbGJhY2suY29uZmlybSgpOyBjb25maXJtQ2FsbGJhY2sgPSBudWxsOyB9DQogICAgICAgIGZ1bmN0aW9uIG9uQ29uZmlybUNhbmNlbCgpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm1Nb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAoY29uZmlybUNhbGxiYWNrKSBjb25maXJtQ2FsbGJhY2suY2FuY2VsKCk7IGNvbmZpcm1DYWxsYmFjayA9IG51bGw7IHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdTdWJtaXRCdG4nKTsgaWYgKGJ0bikgYnRuLmRpc2FibGVkID0gZmFsc2U7IH0NCiAgICAgICAgZnVuY3Rpb24gc2hvd1Byb21wdE1vZGFsKG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSwgb25TdWJtaXQsIG9uQ2FuY2VsKSB7DQogICAgICAgICAgICB2YXIgbXNnRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvbXB0TW9kYWxNZXNzYWdlJyk7DQogICAgICAgICAgICB2YXIgaW5wdXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbElucHV0Jyk7DQogICAgICAgICAgICBpZiAobXNnRWwpIG1zZ0VsLnRleHRDb250ZW50ID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGlmIChpbnB1dEVsKSB7IGlucHV0RWwudmFsdWUgPSBkZWZhdWx0VmFsdWUgfHwgJyc7IGlucHV0RWwuZm9jdXMoKTsgfQ0KICAgICAgICAgICAgcHJvbXB0Q2FsbGJhY2sgPSB7IHN1Ym1pdDogb25TdWJtaXQgfHwgZnVuY3Rpb24oKXt9LCBjYW5jZWw6IG9uQ2FuY2VsIHx8IGZ1bmN0aW9uKCl7fSB9Ow0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb21wdE1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gb25Qcm9tcHRPaygpIHsgdmFyIHZhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbElucHV0JykudmFsdWU7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAocHJvbXB0Q2FsbGJhY2spIHByb21wdENhbGxiYWNrLnN1Ym1pdCh2YWwpOyBwcm9tcHRDYWxsYmFjayA9IG51bGw7IH0NCiAgICAgICAgZnVuY3Rpb24gb25Qcm9tcHRDYW5jZWwoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAocHJvbXB0Q2FsbGJhY2spIHByb21wdENhbGxiYWNrLmNhbmNlbCgpOyBwcm9tcHRDYWxsYmFjayA9IG51bGw7IH0NCg0KICAgICAgICBmdW5jdGlvbiBpc0V1cm9wZWFuQ3VzdG9tZXIoKSB7DQogICAgICAgICAgICBpZiAoIWN1cnJlbnRVc2VyIHx8ICFjdXJyZW50VXNlci5waG9uZSkgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgdmFyIHBob25lID0gY3VycmVudFVzZXIucGhvbmU7DQogICAgICAgICAgICB2YXIgZXVQcmVmaXhlcyA9IFsnKzMzJywnKzQ5JywnKzM5JywnKzM0JywnKzM1MScsJys0MScsJys0MycsJyszMicsJys0NScsJyszNTgnLCcrMzUzJywnKzMxJywnKzQ3JywnKzQ2JywnKzQ4JywnKzMwJywnKzQyMCcsJyszNicsJys0MCcsJys0MjEnLCcrMzg2JywnKzM3MicsJyszNzEnLCcrMzcwJywnKzM1NycsJyszNTYnLCcrMzg1JywnKzM1OSddOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldVByZWZpeGVzLmxlbmd0aDsgaSsrKSB7IGlmIChwaG9uZS5pbmRleE9mKGV1UHJlZml4ZXNbaV0pID09PSAwKSByZXR1cm4gdHJ1ZTsgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVEZXBvc2l0UGF5cGFsVmlzaWJpbGl0eSgpIHsNCiAgICAgICAgICAgIHZhciBwYXlwYWxPcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFBheXBhbE9wdGlvbicpOw0KICAgICAgICAgICAgaWYgKHBheXBhbE9wdGlvbikgeyBwYXlwYWxPcHRpb24uc3R5bGUuZGlzcGxheSA9IGlzRXVyb3BlYW5DdXN0b21lcigpID8gJ2Jsb2NrJyA6ICdub25lJzsgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBvbkRlcG9zaXRNZXRob2RDaGFuZ2UoKSB7DQogICAgICAgICAgICB2YXIgbWV0aG9kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRNZXRob2QnKS52YWx1ZTsNCiAgICAgICAgICAgIHZhciBjcnlwdG9TZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRDcnlwdG9TZWN0aW9uJyk7DQogICAgICAgICAgICB2YXIgcGF5cGFsU2VjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsU2VjdGlvbicpOw0KICAgICAgICAgICAgdmFyIHR4SGFzaFJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0VHhIYXNoUm93Jyk7DQogICAgICAgICAgICB2YXIgZnJvbUFkZHJSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEZyb21BZGRyZXNzUm93Jyk7DQogICAgICAgICAgICB2YXIgcGF5cGFsRW1haWxSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFBheXBhbEVtYWlsUm93Jyk7DQogICAgICAgICAgICBpZiAoY3J5cHRvU2VjdGlvbikgY3J5cHRvU2VjdGlvbi5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAnY3J5cHRvJyA/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICBpZiAocGF5cGFsU2VjdGlvbikgcGF5cGFsU2VjdGlvbi5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAncGF5cGFsJyA/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICBpZiAodHhIYXNoUm93KSB0eEhhc2hSb3cuc3R5bGUuZGlzcGxheSA9IG1ldGhvZCA9PT0gJ3BheXBhbCcgPyAnbm9uZScgOiAnYmxvY2snOw0KICAgICAgICAgICAgaWYgKGZyb21BZGRyUm93KSBmcm9tQWRkclJvdy5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAncGF5cGFsJyA/ICdub25lJyA6ICdibG9jayc7DQogICAgICAgICAgICBpZiAocGF5cGFsRW1haWxSb3cpIHBheXBhbEVtYWlsUm93LnN0eWxlLmRpc3BsYXkgPSBtZXRob2QgPT09ICdwYXlwYWwnID8gJ2Jsb2NrJyA6ICdub25lJzsNCiAgICAgICAgICAgIGlmIChtZXRob2QgPT09ICdwYXlwYWwnKSB7IHN0YXJ0UGF5cGFsRXhwaXJ5VGltZXIoKTsgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICB2YXIgcGF5cGFsRXhwaXJ5VGltZXIgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBzdGFydFBheXBhbEV4cGlyeVRpbWVyKCkgew0KICAgICAgICAgICAgaWYgKHBheXBhbEV4cGlyeVRpbWVyKSBjbGVhckludGVydmFsKHBheXBhbEV4cGlyeVRpbWVyKTsNCiAgICAgICAgICAgIHZhciBpbml0aWF0ZWRBdCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0Jyk7DQogICAgICAgICAgICBpZiAoIWluaXRpYXRlZEF0KSB7DQogICAgICAgICAgICAgICAgaW5pdGlhdGVkQXQgPSBEYXRlLm5vdygpOw0KICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0JywgaW5pdGlhdGVkQXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGV4cGlyeVRpbWUgPSBwYXJzZUludChpbml0aWF0ZWRBdCkgKyAoMjQgKiA2MCAqIDYwICogMTAwMCk7DQogICAgICAgICAgICB1cGRhdGVQYXlwYWxFeHBpcnlEaXNwbGF5KGV4cGlyeVRpbWUpOw0KICAgICAgICAgICAgcGF5cGFsRXhwaXJ5VGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsgdXBkYXRlUGF5cGFsRXhwaXJ5RGlzcGxheShleHBpcnlUaW1lKTsgfSwgNjAwMDApOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVQYXlwYWxFeHBpcnlEaXNwbGF5KGV4cGlyeVRpbWUpIHsNCiAgICAgICAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpOw0KICAgICAgICAgICAgdmFyIHJlbWFpbmluZyA9IGV4cGlyeVRpbWUgLSBub3c7DQogICAgICAgICAgICB2YXIgZGlzcGxheUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BheXBhbEV4cGlyeURpc3BsYXknKTsNCiAgICAgICAgICAgIGlmICghZGlzcGxheUVsKSByZXR1cm47DQogICAgICAgICAgICBpZiAocmVtYWluaW5nIDw9IDApIHsgZGlzcGxheUVsLnRleHRDb250ZW50ID0gJ0V4cGlyZWQgLSBSZXF1ZXN0IG5ldyBkZXRhaWxzJzsgZGlzcGxheUVsLmNsYXNzTmFtZSA9ICd0ZXh0LXhzIHRleHQtcm9zZS00MDAgZm9udC1tZWRpdW0gbXQtMic7IH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBob3VycyA9IE1hdGguZmxvb3IocmVtYWluaW5nIC8gMzYwMDAwMCk7DQogICAgICAgICAgICAgICAgdmFyIG1pbnMgPSBNYXRoLmZsb29yKChyZW1haW5pbmcgJSAzNjAwMDAwKSAvIDYwMDAwKTsNCiAgICAgICAgICAgICAgICBkaXNwbGF5RWwudGV4dENvbnRlbnQgPSAnRXhwaXJlcyBpbjogJyArIGhvdXJzICsgJ2ggJyArIG1pbnMgKyAnbSc7DQogICAgICAgICAgICAgICAgZGlzcGxheUVsLmNsYXNzTmFtZSA9IGhvdXJzIDwgMiA/ICd0ZXh0LXhzIHRleHQtYW1iZXItNDAwIGZvbnQtbWVkaXVtIG10LTInIDogJ3RleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmb250LW1lZGl1bSBtdC0yJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbChtb2RhbElkKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZGFsSWQpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyB9DQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURlcG9zaXRBZGRyZXNzKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEFkZHJlc3MnKS50ZXh0Q29udGVudCA9IHdhbGxldEFkZHJlc3Nlc1tkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEN1cnJlbmN5JykudmFsdWVdIHx8ICdBZGRyZXNzIG5vdCBhdmFpbGFibGUnOyB9DQogICAgICAgIGZ1bmN0aW9uIGNvcHlEZXBvc2l0QWRkcmVzcygpIHsgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRBZGRyZXNzJykudGV4dENvbnRlbnQpOyBzaG93QWxlcnQoJ0FkZHJlc3MgY29waWVkIScsICdzdWNjZXNzJyk7IH0NCg0KICAgICAgICBmdW5jdGlvbiBvbldpdGhkcmF3TWV0aG9kQ2hhbmdlKCkgew0KICAgICAgICAgICAgdmFyIG1ldGhvZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd01ldGhvZCcpLnZhbHVlOw0KICAgICAgICAgICAgdmFyIGNyeXB0b1NlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdDcnlwdG9TZWN0aW9uJyk7DQogICAgICAgICAgICB2YXIgd2lyZVNlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdXaXJlU2VjdGlvbicpOw0KICAgICAgICAgICAgaWYgKGNyeXB0b1NlY3Rpb24pIGNyeXB0b1NlY3Rpb24uc3R5bGUuZGlzcGxheSA9IG1ldGhvZCA9PT0gJ2NyeXB0bycgPyAnYmxvY2snIDogJ25vbmUnOw0KICAgICAgICAgICAgaWYgKHdpcmVTZWN0aW9uKSB3aXJlU2VjdGlvbi5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAnd2lyZScgPyAnYmxvY2snIDogJ25vbmUnOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBoYW5kbGVXaXRoZHJhdyhlKSB7IA0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd1N1Ym1pdEJ0bicpOw0KICAgICAgICAgICAgICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gdHJ1ZTsgfQ0KICAgICAgICAgICAgICAgIHZhciBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0N1cnJlbmN5JykudmFsdWU7DQogICAgICAgICAgICAgICAgdmFyIGFtb3VudCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3QW1vdW50JykudmFsdWUpOw0KICAgICAgICAgICAgICAgIHZhciBtZXRob2RFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd01ldGhvZCcpOw0KICAgICAgICAgICAgICAgIHZhciBtZXRob2QgPSBtZXRob2RFbCA/IG1ldGhvZEVsLnZhbHVlIDogJ2NyeXB0byc7DQogICAgICAgICAgICAgICAgaWYgKCFhbW91bnQgfHwgYW1vdW50IDw9IDApIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBhbW91bnQnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9IA0KICAgICAgICAgICAgICAgIHZhciB3YWxsZXRCYWxhbmNlID0gY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIud2FsbGV0cyAmJiBjdXJyZW50VXNlci53YWxsZXRzW2N1cnJlbmN5XSA/IChjdXJyZW50VXNlci53YWxsZXRzW2N1cnJlbmN5XS5iYWxhbmNlIHx8IDApIDogMDsgDQogICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IHdhbGxldEJhbGFuY2UpIHsgc2hvd0FsZXJ0KCdJbnN1ZmZpY2llbnQgYmFsYW5jZSBmb3IgdGhpcyB3aXRoZHJhd2FsJywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICAgICAgICAgIHZhciBib2R5ID0geyB0eXBlOiAnd2l0aGRyYXdhbCcsIGZyb21DdXJyZW5jeTogY3VycmVuY3ksIHRvQ3VycmVuY3k6IGN1cnJlbmN5LCBhbW91bnQ6IGFtb3VudCwgc3RhdHVzOiAncGVuZGluZycsIG1ldGhvZDogbWV0aG9kIH07DQogICAgICAgICAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ2NyeXB0bycpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGFkZHJlc3NFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0FkZHJlc3MnKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGFkZHJlc3MgPSBhZGRyZXNzRWwgPyBhZGRyZXNzRWwudmFsdWUudHJpbSgpIDogJyc7DQogICAgICAgICAgICAgICAgICAgIGlmICghYWRkcmVzcykgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHJlY2lwaWVudCB3YWxsZXQgYWRkcmVzcycsICdlcnJvcicpOyByZXR1cm4gZmFsc2U7IH0NCiAgICAgICAgICAgICAgICAgICAgYm9keS53aXRoZHJhd2FsQWRkcmVzcyA9IGFkZHJlc3M7DQogICAgICAgICAgICAgICAgICAgIGRvU3VibWl0V2l0aGRyYXcoYm9keSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGJhbmtOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3QmFua05hbWUnKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGFjY291bnRIb2xkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdBY2NvdW50SG9sZGVyJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBhY2NvdW50TnVtYmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3QWNjb3VudE51bWJlcicpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYk5hbWUgPSBiYW5rTmFtZSA/IGJhbmtOYW1lLnZhbHVlLnRyaW0oKSA6ICcnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYkhvbGRlciA9IGFjY291bnRIb2xkZXIgPyBhY2NvdW50SG9sZGVyLnZhbHVlLnRyaW0oKSA6ICcnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYkFjY3QgPSBhY2NvdW50TnVtYmVyID8gYWNjb3VudE51bWJlci52YWx1ZS50cmltKCkgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFiTmFtZSB8fCAhYkhvbGRlciB8fCAhYkFjY3QpIHsgc2hvd0FsZXJ0KCdCYW5rIG5hbWUsIGFjY291bnQgaG9sZGVyIG5hbWUsIGFuZCBhY2NvdW50IG51bWJlciBhcmUgcmVxdWlyZWQnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICAgICAgICAgIGJvZHkuYmFua05hbWUgPSBiTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYm9keS5hY2NvdW50SG9sZGVyID0gYkhvbGRlcjsNCiAgICAgICAgICAgICAgICAgICAgYm9keS5hY2NvdW50TnVtYmVyID0gYkFjY3Q7DQogICAgICAgICAgICAgICAgICAgIHZhciByb3V0aW5nRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdSb3V0aW5nTnVtYmVyJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBzd2lmdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3U3dpZnRDb2RlJyk7DQogICAgICAgICAgICAgICAgICAgIGJvZHkucm91dGluZ051bWJlciA9IHJvdXRpbmdFbCA/IHJvdXRpbmdFbC52YWx1ZS50cmltKCkgfHwgbnVsbCA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgIGJvZHkuc3dpZnRDb2RlID0gc3dpZnRFbCA/IHN3aWZ0RWwudmFsdWUudHJpbSgpIHx8IG51bGwgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV0gfHwgeyBzeW1ib2w6IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCksIHByaWNlOiAxIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB1c2RBbW91bnQgPSBhbW91bnQgKiAoY3J5cHRvLnByaWNlIHx8IDEpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY29uZmlybU1zZyA9ICdXaXRoZHJhdyAnICsgZm9ybWF0Q2xlYW4oYW1vdW50LCA2KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnICh+JCcgKyBmb3JtYXRDbGVhbih1c2RBbW91bnQsIDIpICsgJykgdmlhIFdpcmUgVHJhbnNmZXIgdG8gJyArIGJOYW1lICsgJz8nOw0KICAgICAgICAgICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKGNvbmZpcm1Nc2csIGZ1bmN0aW9uKCkgeyBkb1N1Ym1pdFdpdGhkcmF3KGJvZHkpOyB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdoYW5kbGVXaXRoZHJhdyBlcnJvcjonLCBlcnIpOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnV2l0aGRyYXcgZXJyb3I6ICcgKyAoZXJyLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InKSwgJ2Vycm9yJyk7DQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICAgIHZhciBidG4yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3U3VibWl0QnRuJyk7DQogICAgICAgICAgICAgICAgaWYgKGJ0bjIgJiYgYnRuMi5pbm5lckhUTUwuaW5kZXhPZignUHJvY2Vzc2luZycpID09PSAtMSkgeyBidG4yLmRpc2FibGVkID0gZmFsc2U7IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgDQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9TdWJtaXRXaXRoZHJhdyhib2R5KSB7DQogICAgICAgICAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3U3VibWl0QnRuJyk7DQogICAgICAgICAgICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpbiBtci0yIj48L2k+UHJvY2Vzc2luZy4uLic7IH0NCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ3RyYW5zYWN0aW9ucycsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IGJvZHkgfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnV2l0aGRyYXdhbCBzdWJtaXR0ZWQhIFBlbmRpbmcgYWRtaW4gYXV0aG9yaXphdGlvbiBmb3Igc2VjdXJpdHkgcmVhc29ucy4nLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBjbG9zZU1vZGFsKCd3aXRoZHJhd01vZGFsJyk7IA0KICAgICAgICAgICAgICAgIHZhciBpZHMgPSBbJ3dpdGhkcmF3QWRkcmVzcycsJ3dpdGhkcmF3QW1vdW50Jywnd2l0aGRyYXdCYW5rTmFtZScsJ3dpdGhkcmF3QWNjb3VudEhvbGRlcicsJ3dpdGhkcmF3QWNjb3VudE51bWJlcicsJ3dpdGhkcmF3Um91dGluZ051bWJlcicsJ3dpdGhkcmF3U3dpZnRDb2RlJ107DQogICAgICAgICAgICAgICAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQpIHsgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyBpZiAoZWwpIGVsLnZhbHVlID0gJyc7IH0pOw0KICAgICAgICAgICAgICAgIGxvYWRUcmFuc2FjdGlvbnMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ1dpdGhkcmF3YWwgZmFpbGVkOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgICAgICBmaW5hbGx5IHsgaWYgKGJ0bikgeyBidG4uZGlzYWJsZWQgPSBmYWxzZTsgYnRuLmlubmVySFRNTCA9ICdXaXRoZHJhdyc7IH0gfQ0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IHNlbGVjdGVkUGxhbiA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIGZvcm1hdENsZWFuKG51bSwgbWF4RGVjID0gOCkgeyANCiAgICAgICAgICAgIGlmIChudW0gPT09IHVuZGVmaW5lZCB8fCBudW0gPT09IG51bGwpIHJldHVybiAnMCc7IA0KICAgICAgICAgICAgY29uc3QgbiA9IE51bWJlcihudW0pOyANCiAgICAgICAgICAgIGlmIChpc05hTihuKSkgcmV0dXJuICcwJzsgDQogICAgICAgICAgICBjb25zdCBzdHIgPSBuLnRvRml4ZWQobWF4RGVjKTsgDQogICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChzdHIpLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IG1heERlYyB9KTsgDQogICAgICAgIH0NCg0KICAgICAgICBsZXQgX2NhY2hlZFBsYW5zID0gbnVsbDsNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBsYW5zKCkgeyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGlmIChfY2FjaGVkUGxhbnMpIHsgcmVuZGVyUGxhbnMoX2NhY2hlZFBsYW5zKTsgcmV0dXJuOyB9DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ3BsYW5zJyksIHBsYW5zID0gZGF0YS5wbGFucyB8fCBbXTsNCiAgICAgICAgICAgICAgICBfY2FjaGVkUGxhbnMgPSBwbGFuczsNCiAgICAgICAgICAgICAgICByZW5kZXJQbGFucyhwbGFucyk7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBwbGFuczonLCBlcnJvcik7IH0gDQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcmVuZGVyUGxhbnMocGxhbnMpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0bWVudFBsYW5zTGlzdCcpOyANCiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGlmIChwbGFucy5sZW5ndGggPT09IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIGludmVzdG1lbnQgcGxhbnMgYXZhaWxhYmxlPC9wPjwvZGl2Pic7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgcGxhbnMuZm9yRWFjaChwbGFuID0+IHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdnbGFzcyByb3VuZGVkLXhsIHAtNCBib3JkZXIgYm9yZGVyLWFtYmVyLTUwMC8yMCBob3Zlcjpib3JkZXItYW1iZXItNTAwLzQwIHRyYW5zaXRpb24tY29sb3JzJzsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbcGxhbi5jdXJyZW5jeV0gfHwgeyBzeW1ib2w6IHBsYW4uY3VycmVuY3kudG9VcHBlckNhc2UoKSwgaWNvbjogJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTVweDsgZm9udC13ZWlnaHQ6NzAwOyI+4oKuPC9zcGFuPicsIGNvbG9yOiAndXNkdCcgfTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbkZvcm1hdHRlZCA9IGZvcm1hdENsZWFuKHBsYW4ubWluQW1vdW50KTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heEZvcm1hdHRlZCA9IGZvcm1hdENsZWFuKHBsYW4ubWF4QW1vdW50KTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PGRpdj48cCBjbGFzcz0iZm9udC1ib2xkIHRleHQtd2hpdGUgdGV4dC1sZyI+JHtwbGFuLm5hbWV9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbXQtMSI+JHtwbGFuLmRlc2NyaXB0aW9uIHx8ICcnfTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctYW1iZXItNjAwLzIwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1jaGFydC1saW5lIHRleHQtYW1iZXItNDAwIj48L2k+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMiBtYi0zIj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMiB0ZXh0LWNlbnRlciI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RGFpbHkgUk9JPC9wPjxwIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWVtZXJhbGQtNDAwIj4ke3BsYW4uZGFpbHlSb2lQZXJjZW50fSU8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgdGV4dC1jZW50ZXIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlRvdGFsIFJPSTwvcD48cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiPiR7cGxhbi5kYWlseVJvaVBlcmNlbnQgKiBwbGFuLmR1cmF0aW9uRGF5c30lPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20gbWItMyI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPlJhbmdlOjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+JHttaW5Gb3JtYXR0ZWR9IC0gJHttYXhGb3JtYXR0ZWR9ICR7Y3J5cHRvLnN5bWJvbH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSBtYi0zIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RHVyYXRpb246PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIj4ke3BsYW4uZHVyYXRpb25EYXlzfSBkYXlzPC9zcGFuPjwvZGl2PjxidXR0b24gb25jbGljaz0ib3BlbkludmVzdE1vZGFsKCR7cGxhbi5pZH0sICcke3BsYW4ubmFtZS5yZXBsYWNlKC8nL2csICJcXCciKX0nLCAke3BsYW4uZGFpbHlSb2lQZXJjZW50fSwgJHtwbGFuLmR1cmF0aW9uRGF5c30sICR7cGxhbi5taW5BbW91bnR9LCAke3BsYW4ubWF4QW1vdW50fSwgJyR7cGxhbi5jdXJyZW5jeX0nLCAke3BsYW4uZGFpbHlSb2lQZXJjZW50ICogcGxhbi5kdXJhdGlvbkRheXN9KSIgY2xhc3M9InctZnVsbCBweS0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1hbWJlci02MDAgdG8tb3JhbmdlLTYwMCBob3Zlcjpmcm9tLWFtYmVyLTcwMCBob3Zlcjp0by1vcmFuZ2UtNzAwIHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIj48aSBjbGFzcz0iZmFzIGZhLXBpZ2d5LWJhbmsgbXItMiI+PC9pPkludmVzdCBOb3c8L2J1dHRvbj5gOyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIG9wZW5JbnZlc3RNb2RhbChpZCwgbmFtZSwgZGFpbHlSb2ksIGR1cmF0aW9uLCBtaW5BbW91bnQsIG1heEFtb3VudCwgY3VycmVuY3ksIHRvdGFsUm9pKSB7IA0KICAgICAgICAgICAgc2VsZWN0ZWRQbGFuID0geyBpZCwgbmFtZSwgZGFpbHlSb2ksIGR1cmF0aW9uLCBtaW5BbW91bnQsIG1heEFtb3VudCwgY3VycmVuY3ksIHRvdGFsUm9pIH07IA0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV0gfHwgeyBzeW1ib2w6IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCkgfTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0TW9kYWxQbGFuTmFtZScpLnRleHRDb250ZW50ID0gbmFtZTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0TW9kYWxSb2knKS50ZXh0Q29udGVudCA9IGRhaWx5Um9pICsgJyUnOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RNb2RhbER1cmF0aW9uJykudGV4dENvbnRlbnQgPSBkdXJhdGlvbiArICcgZGF5cyc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdE1vZGFsQ3VycmVuY3knKS50ZXh0Q29udGVudCA9IGNyeXB0by5zeW1ib2w7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdEFtb3VudCcpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdEFtb3VudCcpLm1pbiA9IG1pbkFtb3VudDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0QW1vdW50JykubWF4ID0gbWF4QW1vdW50OyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RBbW91bnQnKS5wbGFjZWhvbGRlciA9IGZvcm1hdENsZWFuKG1pbkFtb3VudCkgKyAnIC0gJyArIGZvcm1hdENsZWFuKG1heEFtb3VudCk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdFByZXZpZXdEYWlseScpLnRleHRDb250ZW50ID0gJy0nOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RQcmV2aWV3VG90YWwnKS50ZXh0Q29udGVudCA9ICctJzsgDQogICAgICAgICAgICBjb25zdCBiYWxhbmNlID0gY3VycmVudFVzZXI/LndhbGxldHM/LltjdXJyZW5jeV0/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0UHJldmlld0F2YWlsYWJsZScpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4oYmFsYW5jZSwgNCkgKyAnICcgKyBjcnlwdG8uc3ltYm9sOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUludmVzdFByZXZpZXcoKSB7IA0KICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFBsYW4pIHJldHVybjsgDQogICAgICAgICAgICBjb25zdCBhbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RBbW91bnQnKS52YWx1ZSkgfHwgMDsgDQogICAgICAgICAgICBjb25zdCBkYWlseVByb2ZpdCA9IGFtb3VudCAqIChzZWxlY3RlZFBsYW4uZGFpbHlSb2kgLyAxMDApOyANCiAgICAgICAgICAgIGNvbnN0IHRvdGFsUHJvZml0ID0gYW1vdW50ICogKHNlbGVjdGVkUGxhbi50b3RhbFJvaSAvIDEwMCk7IA0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtzZWxlY3RlZFBsYW4uY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBzZWxlY3RlZFBsYW4uY3VycmVuY3kudG9VcHBlckNhc2UoKSB9OyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RQcmV2aWV3RGFpbHknKS50ZXh0Q29udGVudCA9IGZvcm1hdENsZWFuKGRhaWx5UHJvZml0LCA0KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnL2RheSc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdFByZXZpZXdUb3RhbCcpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4odG90YWxQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbDsgDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBzdWJtaXRJbnZlc3RtZW50KCkgeyANCiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRQbGFuKSB7IHNob3dBbGVydCgnUGxlYXNlIHNlbGVjdCBhIHBsYW4nLCAnZXJyb3InKTsgcmV0dXJuOyB9IA0KICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0QW1vdW50JykudmFsdWUpOyANCiAgICAgICAgICAgIGlmICghYW1vdW50IHx8IGFtb3VudCA8PSAwKSB7IHNob3dBbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgaW52ZXN0bWVudCBhbW91bnQnLCAnZXJyb3InKTsgcmV0dXJuOyB9DQogICAgICAgICAgICBpZiAoYW1vdW50IDwgc2VsZWN0ZWRQbGFuLm1pbkFtb3VudCB8fCBhbW91bnQgPiBzZWxlY3RlZFBsYW4ubWF4QW1vdW50KSB7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnQW1vdW50IG11c3QgYmUgYmV0d2VlbiAnICsgZm9ybWF0Q2xlYW4oc2VsZWN0ZWRQbGFuLm1pbkFtb3VudCkgKyAnIGFuZCAnICsgZm9ybWF0Q2xlYW4oc2VsZWN0ZWRQbGFuLm1heEFtb3VudCksICdlcnJvcicpOyANCiAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtSW52ZXN0QnRuJyk7DQogICAgICAgICAgICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpbiBtci0yIj48L2k+UHJvY2Vzc2luZy4uLic7IH0NCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRQbGFuLmN1cnJlbmN5XSB8fCB7IHByaWNlOiAxIH07DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHBsYW5JZDogc2VsZWN0ZWRQbGFuLmlkLCBhbW91bnQ6IGFtb3VudCwgY3VycmVudFByaWNlOiBjcnlwdG8ucHJpY2UgfHwgMSB9IH0pOyANCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ0ludmVzdG1lbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgY2xvc2VNb2RhbCgnaW52ZXN0TW9kYWwnKTsgDQogICAgICAgICAgICAgICAgbG9hZEludmVzdG1lbnRzKCk7IGxvYWRXYWxsZXRzKCk7IGxvYWRVc2VyRGF0YSgpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IA0KICAgICAgICAgICAgICAgIHZhciBpc0RlcG9zaXRFcnJvciA9IGVycm9yLnN0YXR1cyA9PT0gNDAzICYmIGVycm9yLnJlc3BvbnNlRGF0YSAmJiBlcnJvci5yZXNwb25zZURhdGEuZGVwb3NpdFJlcXVpcmVkOw0KICAgICAgICAgICAgICAgIGlmIChpc0RlcG9zaXRFcnJvcikgeyANCiAgICAgICAgICAgICAgICAgICAgY2xvc2VNb2RhbCgnaW52ZXN0TW9kYWwnKTsNCiAgICAgICAgICAgICAgICAgICAgc2hvd0RlcG9zaXRSZXF1aXJlZE1vZGFsKGVycm9yLnJlc3BvbnNlRGF0YSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ0ludmVzdG1lbnQgZmFpbGVkOiAnICsgKGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InKSwgJ2Vycm9yJyk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi5pbm5lckhUTUwgPSAnQ29uZmlybSBJbnZlc3RtZW50JzsgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBzaG93RGVwb3NpdFJlcXVpcmVkTW9kYWwoZXJyb3JEYXRhKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIHZhciBjdXJyZW5jeSA9IChlcnJvckRhdGEgJiYgZXJyb3JEYXRhLmN1cnJlbmN5KSB8fCAoc2VsZWN0ZWRQbGFuICYmIHNlbGVjdGVkUGxhbi5jdXJyZW5jeSkgfHwgJ3VzZHQnOw0KICAgICAgICAgICAgICAgIHZhciBjcnlwdG8gPSBjcnlwdG9EYXRhW2N1cnJlbmN5XSB8fCB7IHN5bWJvbDogY3VycmVuY3kudG9VcHBlckNhc2UoKSwgbmFtZTogY3VycmVuY3kudG9VcHBlckNhc2UoKSB9Ow0KICAgICAgICAgICAgICAgIHZhciB1c2REZXBvc2l0ZWQgPSAoZXJyb3JEYXRhICYmIGVycm9yRGF0YS51c2REZXBvc2l0ZWQpIHx8IDA7DQogICAgICAgICAgICAgICAgdmFyIHJlbWFpbmluZ1VzZCA9IChlcnJvckRhdGEgJiYgZXJyb3JEYXRhLnJlbWFpbmluZ1VzZCkgfHwgNzUwOw0KICAgICAgICAgICAgICAgIHZhciByZW1haW5pbmdDcnlwdG8gPSAoZXJyb3JEYXRhICYmIGVycm9yRGF0YS5yZW1haW5pbmdDcnlwdG8pIHx8IHJlbWFpbmluZ1VzZDsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB2YXIgZWxEZXBvc2l0ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFJlcURlcG9zaXRlZCcpOw0KICAgICAgICAgICAgICAgIHZhciBlbFJlbWFpbmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UmVxUmVtYWluaW5nJyk7DQogICAgICAgICAgICAgICAgdmFyIGVsQ3J5cHRvQW10ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRSZXFDcnlwdG9BbW91bnQnKTsNCiAgICAgICAgICAgICAgICB2YXIgZWxDdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UmVxQ3J5cHRvU3ltYm9sJyk7DQogICAgICAgICAgICAgICAgdmFyIGVsV2FsbGV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRSZXFXYWxsZXQnKTsNCiAgICAgICAgICAgICAgICB2YXIgZWxNb2RhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UmVxdWlyZWRNb2RhbCcpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmIChlbERlcG9zaXRlZCkgZWxEZXBvc2l0ZWQudGV4dENvbnRlbnQgPSAnJCcgKyB1c2REZXBvc2l0ZWQudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KTsNCiAgICAgICAgICAgICAgICBpZiAoZWxSZW1haW5pbmcpIGVsUmVtYWluaW5nLnRleHRDb250ZW50ID0gJyQnICsgcmVtYWluaW5nVXNkLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7DQogICAgICAgICAgICAgICAgaWYgKGVsQ3J5cHRvQW10KSBlbENyeXB0b0FtdC50ZXh0Q29udGVudCA9IGZvcm1hdENsZWFuKHJlbWFpbmluZ0NyeXB0bywgNik7DQogICAgICAgICAgICAgICAgaWYgKGVsQ3VycmVuY3kpIGVsQ3VycmVuY3kudGV4dENvbnRlbnQgPSBjcnlwdG8uc3ltYm9sOw0KICAgICAgICAgICAgICAgIGlmIChlbFdhbGxldCkgZWxXYWxsZXQudGV4dENvbnRlbnQgPSB3YWxsZXRBZGRyZXNzZXNbY3VycmVuY3ldIHx8ICdBZGRyZXNzIG5vdCBhdmFpbGFibGUnOw0KICAgICAgICAgICAgICAgIGlmIChlbE1vZGFsKSBlbE1vZGFsLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnQSAkNzUwIGRlcG9zaXQgaXMgcmVxdWlyZWQgYmVmb3JlIGludmVzdGluZy4gUGxlYXNlIG1ha2UgYSBkZXBvc2l0IGZpcnN0LicsICdlcnJvcicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBjbG9zZURlcG9zaXRSZXF1aXJlZE1vZGFsKCkgew0KICAgICAgICAgICAgdmFyIG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFJlcXVpcmVkTW9kYWwnKTsNCiAgICAgICAgICAgIGlmIChtKSBtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBnb1RvRGVwb3NpdEZyb21JbnZlc3QoKSB7DQogICAgICAgICAgICBjbG9zZURlcG9zaXRSZXF1aXJlZE1vZGFsKCk7DQogICAgICAgICAgICBzaG93U2VjdGlvbignd2FsbGV0cycpOw0KICAgICAgICAgICAgc2V0VGltZW91dChzaG93RGVwb3NpdE1vZGFsLCAzMDApOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBjb3B5RGVwb3NpdFJlcVdhbGxldCgpIHsNCiAgICAgICAgICAgIHZhciBhZGRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRSZXFXYWxsZXQnKTsNCiAgICAgICAgICAgIGlmIChhZGRyKSBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChhZGRyLnRleHRDb250ZW50KS50aGVuKGZ1bmN0aW9uKCkgeyBzaG93QWxlcnQoJ1dhbGxldCBhZGRyZXNzIGNvcGllZCEnLCAnc3VjY2VzcycpOyB9KS5jYXRjaChmdW5jdGlvbigpIHsgc2hvd0FsZXJ0KCdGYWlsZWQgdG8gY29weScsICdlcnJvcicpOyB9KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHdpdGhkcmF3UHJvZml0KGludmVzdG1lbnRJZCwgYXZhaWxhYmxlQW1vdW50LCBjdXJyZW5jeSkgew0KICAgICAgICAgICAgdmFyIGNyeXB0byA9IGNyeXB0b0RhdGFbY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBjdXJyZW5jeS50b1VwcGVyQ2FzZSgpIH07DQogICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKCdXaXRoZHJhdyAnICsgZm9ybWF0Q2xlYW4oYXZhaWxhYmxlQW1vdW50LCA0KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnIHByb2ZpdCB0byB5b3VyIHdhbGxldD8gVGhpcyB3aWxsIHJlcXVpcmUgYWRtaW4gYXBwcm92YWwuJywgZnVuY3Rpb24oKSB7IGRvV2l0aGRyYXdQcm9maXQoaW52ZXN0bWVudElkLCBhdmFpbGFibGVBbW91bnQsIGN1cnJlbmN5KTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9XaXRoZHJhd1Byb2ZpdChpbnZlc3RtZW50SWQsIGF2YWlsYWJsZUFtb3VudCwgY3VycmVuY3kpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMvd2l0aGRyYXctcHJvZml0JywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBpbnZlc3RtZW50SWQ6IGludmVzdG1lbnRJZCwgYW1vdW50OiBhdmFpbGFibGVBbW91bnQsIGN1cnJlbmN5OiBjdXJyZW5jeSB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUHJvZml0IHdpdGhkcmF3YWwgcmVxdWVzdCBzdWJtaXR0ZWQhIFdhaXRpbmcgZm9yIGFkbWluIGFwcHJvdmFsLicsICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGxvYWRJbnZlc3RtZW50cygpOyANCiAgICAgICAgICAgICAgICBsb2FkVHJhbnNhY3Rpb25zKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdXaXRoZHJhd2FsIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEludmVzdG1lbnRzKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMnKSwgaW52ZXN0bWVudHMgPSBkYXRhLmludmVzdG1lbnRzIHx8IFtdOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVJbnZlc3RtZW50c0xpc3QnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZWRTZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbXBsZXRlZEludmVzdG1lbnRzU2VjdGlvbicpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21wbGV0ZWRJbnZlc3RtZW50c0xpc3QnKTsNCiAgICAgICAgICAgICAgICBjb25zdCB3aXRoZHJhd25TZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3bkludmVzdG1lbnRzU2VjdGlvbicpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHdpdGhkcmF3bkNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd25JbnZlc3RtZW50c0xpc3QnKTsNCiAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZUNvbnRhaW5lcikgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGxldCB0b3RhbFByb2ZpdFVTRCA9IDAsIHRvdGFsQXZhaWxhYmxlVVNEID0gMDsNCiAgICAgICAgICAgICAgICBhY3RpdmVDb250YWluZXIuaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZENvbnRhaW5lcikgY29tcGxldGVkQ29udGFpbmVyLmlubmVySFRNTCA9ICcnOw0KICAgICAgICAgICAgICAgIGlmICh3aXRoZHJhd25Db250YWluZXIpIHdpdGhkcmF3bkNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsNCiAgICAgICAgICAgICAgICBpZiAoaW52ZXN0bWVudHMubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIGludmVzdG1lbnRzIHlldDwvcD48cCBjbGFzcz0idGV4dC1zbSBtdC0xIj5DaG9vc2UgYSBwbGFuIGFib3ZlIHRvIHN0YXJ0IGVhcm5pbmc8L3A+PC9kaXY+JzsNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdFRvdGFsUHJvZml0JykudGV4dENvbnRlbnQgPSAnJDAuMDAnOw0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0bWVudFByb2ZpdEJhbGFuY2UnKS50ZXh0Q29udGVudCA9ICckMC4wMCc7DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlTGlzdCA9IGludmVzdG1lbnRzLmZpbHRlcihpbnYgPT4gaW52LnN0YXR1cyA9PT0gJ2FjdGl2ZScpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZExpc3QgPSBpbnZlc3RtZW50cy5maWx0ZXIoaW52ID0+IGludi5zdGF0dXMgPT09ICdjb21wbGV0ZWQnICYmIGludi5hdmFpbGFibGVQcm9maXQgPiAwKTsNCiAgICAgICAgICAgICAgICBjb25zdCB3aXRoZHJhd25MaXN0ID0gaW52ZXN0bWVudHMuZmlsdGVyKGludiA9PiBpbnYuc3RhdHVzID09PSAnY29tcGxldGVkJyAmJiBpbnYuYXZhaWxhYmxlUHJvZml0IDw9IDApOw0KICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZWRTZWN0aW9uKSBjb21wbGV0ZWRTZWN0aW9uLmNsYXNzTGlzdC50b2dnbGUoJ2hpZGRlbicsIGNvbXBsZXRlZExpc3QubGVuZ3RoID09PSAwKTsNCiAgICAgICAgICAgICAgICBpZiAod2l0aGRyYXduU2VjdGlvbikgd2l0aGRyYXduU2VjdGlvbi5jbGFzc0xpc3QudG9nZ2xlKCdoaWRkZW4nLCB3aXRoZHJhd25MaXN0Lmxlbmd0aCA9PT0gMCk7DQogICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUxpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC02IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIGFjdGl2ZSBpbnZlc3RtZW50czwvcD48cCBjbGFzcz0idGV4dC1zbSBtdC0xIj5BbGwgcGxhbnMgaGF2ZSBiZWVuIGNvbXBsZXRlZDwvcD48L2Rpdj4nOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBhY3RpdmVMaXN0LmZvckVhY2goaW52ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHByaWNlID0gKGNyeXB0b0RhdGFbaW52LmN1cnJlbmN5XSAmJiBjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0ucHJpY2UpIHx8IDE7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZml0VVNEICs9IChpbnYuYWNjdW11bGF0ZWRQcm9maXQgfHwgMCkgKiBwcmljZTsNCiAgICAgICAgICAgICAgICAgICAgdG90YWxBdmFpbGFibGVVU0QgKz0gaW52LmF2YWlsYWJsZVByb2ZpdCAqIHByaWNlOw0KICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb250YWluZXIuYXBwZW5kQ2hpbGQocmVuZGVySW52Q2FyZChpbnYsIHRydWUsIGZhbHNlKSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgY29tcGxldGVkTGlzdC5mb3JFYWNoKGludiA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciBwcmljZSA9IChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxOw0KICAgICAgICAgICAgICAgICAgICB0b3RhbFByb2ZpdFVTRCArPSAoaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IDApICogcHJpY2U7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsQXZhaWxhYmxlVVNEICs9IGludi5hdmFpbGFibGVQcm9maXQgKiBwcmljZTsNCiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlbmRlckludkNhcmQoaW52LCBmYWxzZSwgZmFsc2UpKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB3aXRoZHJhd25MaXN0LmZvckVhY2goaW52ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHByaWNlID0gKGNyeXB0b0RhdGFbaW52LmN1cnJlbmN5XSAmJiBjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0ucHJpY2UpIHx8IDE7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZml0VVNEICs9IChpbnYuYWNjdW11bGF0ZWRQcm9maXQgfHwgMCkgKiBwcmljZTsNCiAgICAgICAgICAgICAgICAgICAgd2l0aGRyYXduQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlbmRlckludkNhcmQoaW52LCBmYWxzZSwgdHJ1ZSkpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsUHJvZml0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0VG90YWxQcm9maXQnKTsNCiAgICAgICAgICAgICAgICBpZiAodG90YWxQcm9maXRFbCkgdG90YWxQcm9maXRFbC50ZXh0Q29udGVudCA9ICckJyArIGZvcm1hdENsZWFuKHRvdGFsUHJvZml0VVNELCAyKTsNCiAgICAgICAgICAgICAgICBjb25zdCBpbnZQcm9maXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RtZW50UHJvZml0QmFsYW5jZScpOw0KICAgICAgICAgICAgICAgIGlmIChpbnZQcm9maXRFbCkgaW52UHJvZml0RWwudGV4dENvbnRlbnQgPSAnJCcgKyBmb3JtYXRDbGVhbih0b3RhbEF2YWlsYWJsZVVTRCwgMik7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBpbnZlc3RtZW50czonLCBlcnJvcik7IH0NCiAgICAgICAgfQ0KDQoNCiAgICAgICAgZnVuY3Rpb24gcmVuZGVySW52Q2FyZChpbnYsIGlzQWN0aXZlLCBpc1dpdGhkcmF3bikgew0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBpbnYuY3VycmVuY3kudG9VcHBlckNhc2UoKSwgaWNvbjogJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTVweDsgZm9udC13ZWlnaHQ6NzAwOyI+4oKuPC9zcGFuPicsIGNvbG9yOiAndXNkdCcgfTsNCiAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9IGlzV2l0aGRyYXduID8gJ2dsYXNzIHJvdW5kZWQteGwgcC00IGJvcmRlci1sLTIgYm9yZGVyLWdyYXktNTAwLzQwJyA6ICdnbGFzcyByb3VuZGVkLXhsIHAtNCc7DQogICAgICAgICAgICBjb25zdCBzYyA9IGlzQWN0aXZlID8gJ3RleHQtZW1lcmFsZC00MDAnIDogKGlzV2l0aGRyYXduID8gJ3RleHQtZ3JheS00MDAnIDogJ3RleHQtYmx1ZS00MDAnKTsNCiAgICAgICAgICAgIGNvbnN0IHNiID0gaXNBY3RpdmUgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogKGlzV2l0aGRyYXduID8gJ2JnLWdyYXktNTAwLzEwJyA6ICdiZy1ibHVlLTUwMC8xMCcpOw0KICAgICAgICAgICAgY29uc3Qgc2wgPSBpc0FjdGl2ZSA/ICdBQ1RJVkUnIDogKGlzV2l0aGRyYXduID8gJ1dJVEhEUkFXTicgOiAnQ09NUExFVEVEJyk7DQogICAgICAgICAgICB2YXIgYWNjUHJvZml0ID0gaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IChpbnYuZGFpbHlQcm9maXQgKiBpbnYuZGF5c0VsYXBzZWQpIHx8IDA7DQogICAgICAgICAgICB2YXIgcHJvZml0VVNEID0gYWNjUHJvZml0ICogKChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxKTsNCiAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uICcgKyBjcnlwdG8uY29sb3IgKyAnIHRleHQtc20iPicgKyBjcnlwdG8uaWNvbiArICc8L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPicgKyBpbnYucGxhbk5hbWUgKyAnPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPicgKyBmb3JtYXRDbGVhbihpbnYuYW1vdW50KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnPC9wPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbWVkaXVtICcgKyBzYyArICcgcHgtMiBweS0xIHJvdW5kZWQtbGcgJyArIHNiICsgJyI+JyArIHNsICsgJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJtYi0zIj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+PHNwYW4+UHJvZ3Jlc3M6ICcgKyBpbnYucHJvZ3Jlc3MgKyAnJTwvc3Bhbj48c3Bhbj4nICsgaW52LmRheXNFbGFwc2VkICsgJy8nICsgaW52LmR1cmF0aW9uRGF5cyArICcgZGF5czwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJoLTIgYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiI+PGRpdiBjbGFzcz0iaC1mdWxsIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tYW1iZXItNTAwIHRvLW9yYW5nZS01MDAgdHJhbnNpdGlvbi1hbGwiIHN0eWxlPSJ3aWR0aDogJyArIGludi5wcm9ncmVzcyArICclIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0zIGdhcC0yIG1iLTMiPjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQtbGcgcC0yIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EYWlseTwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZW1lcmFsZC00MDAiPicgKyBmb3JtYXRDbGVhbihpbnYuZGFpbHlQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbCArICc8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlRvdGFsICgnICsgaW52LmRheXNFbGFwc2VkICsgJ2QpPC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci00MDAiPicgKyBmb3JtYXRDbGVhbihhY2NQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbCArICc8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+fiQnICsgZm9ybWF0Q2xlYW4ocHJvZml0VVNELCAwKSArICc8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkF2YWlsYWJsZTwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtYmx1ZS00MDAiPicgKyBmb3JtYXRDbGVhbihpbnYuYXZhaWxhYmxlUHJvZml0LCA0KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjdGlvbi1hcmVhIj48L2Rpdj4nOw0KICAgICAgICAgICAgY29uc3QgYWN0aW9uQXJlYSA9IGRpdi5xdWVyeVNlbGVjdG9yKCcuYWN0aW9uLWFyZWEnKTsNCiAgICAgICAgICAgIGlmIChpc0FjdGl2ZSkgew0KICAgICAgICAgICAgICAgIGFjdGlvbkFyZWEuaW5uZXJIVE1MID0gJzxidXR0b24gZGlzYWJsZWQgY2xhc3M9InctZnVsbCBweS0yIG10LTIgYmctZ3JheS03MDAvNTAgdGV4dC1ncmF5LTUwMCBmb250LXNlbWlib2xkIHJvdW5kZWQteGwgdGV4dC1zbSBjdXJzb3Itbm90LWFsbG93ZWQiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IG1yLTIiPjwvaT5XaXRoZHJhdyBQcm9maXQ8L2J1dHRvbj48ZGl2IGNsYXNzPSJtdC0yIGJnLWFtYmVyLTUwMC8xMCBib3JkZXIgYm9yZGVyLWFtYmVyLTUwMC8yMCByb3VuZGVkLWxnIHB4LTMgcHktMiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1hbWJlci00MDAiPlRoaXMgcGxhbiBpcyBzdGlsbCBydW5uaW5nLiBQcm9maXQgd2l0aGRyYXdhbCB3aWxsIGJlIGF2YWlsYWJsZSBhZnRlciAnICsgaW52LmR1cmF0aW9uRGF5cyArICcgZGF5cy48L3NwYW4+PC9kaXY+JzsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaXRoZHJhd24pIHsNCiAgICAgICAgICAgICAgICBhY3Rpb25BcmVhLmlubmVySFRNTCA9ICc8YnV0dG9uIGRpc2FibGVkIGNsYXNzPSJ3LWZ1bGwgcHktMiBtdC0yIGJnLWdyYXktNzAwLzUwIHRleHQtZ3JheS01MDAgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIHRleHQtc20gY3Vyc29yLW5vdC1hbGxvd2VkIj48aSBjbGFzcz0iZmFzIGZhLXdhbGxldCBtci0yIj48L2k+QWxsIFByb2ZpdCBXaXRoZHJhd248L2J1dHRvbj4nOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBjb25zdCBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsNCiAgICAgICAgICAgICAgICBidG4uY2xhc3NOYW1lID0gJ3ctZnVsbCBweS0yIG10LTIgYmctZ3JhZGllbnQtdG8tciBmcm9tLWFtYmVyLTYwMCB0by1vcmFuZ2UtNjAwIGhvdmVyOmZyb20tYW1iZXItNzAwIGhvdmVyOnRvLW9yYW5nZS03MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwgdGV4dC1zbSc7DQogICAgICAgICAgICAgICAgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iZmFzIGZhLXdhbGxldCBtci0yIj48L2k+V2l0aGRyYXcgJyArIGZvcm1hdENsZWFuKGludi5hdmFpbGFibGVQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbCArICcgUHJvZml0JzsNCiAgICAgICAgICAgICAgICBidG4ub25jbGljayA9IGZ1bmN0aW9uKCkgeyB3aXRoZHJhd1Byb2ZpdChpbnYuaWQsIGludi5hdmFpbGFibGVQcm9maXQsIGludi5jdXJyZW5jeSk7IH07DQogICAgICAgICAgICAgICAgYWN0aW9uQXJlYS5hcHBlbmRDaGlsZChidG4pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGRpdjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVDb3VudGRvd25zKCkgeyANCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jb3VudGRvd24nKS5mb3JFYWNoKGVsID0+IHsgDQogICAgICAgICAgICAgICAgbGV0IHNlY3MgPSBwYXJzZUludChlbC5kYXRhc2V0LnNlY3MpIHx8IDA7IA0KICAgICAgICAgICAgICAgIHNlY3MgPSBNYXRoLm1heCgwLCBzZWNzIC0gNjApOyANCiAgICAgICAgICAgICAgICBlbC5kYXRhc2V0LnNlY3MgPSBzZWNzOyANCiAgICAgICAgICAgICAgICBpZiAoc2VjcyA+IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihzZWNzIC8gMzYwMCk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigoc2VjcyAlIDM2MDApIC8gNjApOyANCiAgICAgICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSBob3VycyArICdoICcgKyBtaW51dGVzICsgJ20nOyANCiAgICAgICAgICAgICAgICB9IGVsc2UgeyANCiAgICAgICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSAnRHVlLi4uJzsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0pOyANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pblBsYW5zKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi9wbGFucycpLCBwbGFucyA9IGRhdGEucGxhbnMgfHwgW10sIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBsYW5zQ29udGFpbmVyJyk7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgaWYgKHBsYW5zLmxlbmd0aCA9PT0gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJwLTQgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PHA+Tm8gcGxhbnMgY3JlYXRlZCB5ZXQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIHJldHVybjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICBwbGFucy5mb3JFYWNoKHBsYW4gPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtwbGFuLmN1cnJlbmN5XSB8fCB7IHN5bWJvbDogcGxhbi5jdXJyZW5jeS50b1VwcGVyQ2FzZSgpIH07IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZ2xhc3Mgcm91bmRlZC14bCBwLTMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuJzsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iZmxleC0xIG1pbi13LTAiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdHJ1bmNhdGUiPiR7cGxhbi5uYW1lfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke3BsYW4uZGFpbHlSb2lQZXJjZW50fSUgZGFpbHkgfCAke3BsYW4uZHVyYXRpb25EYXlzfSBkYXlzIHwgJHtjcnlwdG8uc3ltYm9sfTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBtbC0yIj48ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2Zvcm1hdENsZWFuKHBsYW4ubWluQW1vdW50KX0gLSAke2Zvcm1hdENsZWFuKHBsYW4ubWF4QW1vdW50KX08L3A+PHNwYW4gY2xhc3M9InRleHQteHMgJHtwbGFuLmlzQWN0aXZlID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtZ3JheS00MDAnfSI+JHtwbGFuLmlzQWN0aXZlID8gJ0FjdGl2ZScgOiAnSW5hY3RpdmUnfTwvc3Bhbj48L2Rpdj48YnV0dG9uIGNsYXNzPSJkZWxldGUtcGxhbi1idG4gdy03IGgtNyByb3VuZGVkLWxnIGJnLXJvc2UtNTAwLzIwIGhvdmVyOmJnLXJvc2UtNTAwLzQwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24tY29sb3JzIiBkYXRhLXBsYW4taWQ9IiR7cGxhbi5pZH0iIGRhdGEtcGxhbi1uYW1lPSIke3BsYW4ubmFtZS5yZXBsYWNlKC8iL2csICcmcXVvdDsnKX0iIHRpdGxlPSJEZWxldGUgcGxhbiI+PGkgY2xhc3M9ImZhcyBmYS10cmFzaCB0ZXh0LXJvc2UtNDAwIHRleHQteHMiPjwvaT48L2J1dHRvbj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIC8vIEF0dGFjaCBkZWxldGUgaGFuZGxlcnMgYWZ0ZXIgRE9NIGluc2VydGlvbiAoc2FmZSwgbm8gaW5saW5lIG9uY2xpY2spDQogICAgICAgICAgICAgICAgY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kZWxldGUtcGxhbi1idG4nKS5mb3JFYWNoKGJ0biA9PiB7DQogICAgICAgICAgICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpZCA9IHBhcnNlSW50KGJ0bi5kYXRhc2V0LnBsYW5JZCk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG5hbWUgPSBidG4uZGF0YXNldC5wbGFuTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb25maXJtTW9kYWwoJ0RlbGV0ZSAiJyArIHBuYW1lICsgJyI/IFRoaXMgY2Fubm90IGJlIHVuZG9uZS4nLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlDYWxsKCdhZG1pbi9wbGFucycsIHsgbWV0aG9kOiAnREVMRVRFJywgYm9keTogeyBwbGFuSWQ6IHBpZCB9IH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyBzaG93QWxlcnQoJ1BsYW4gZGVsZXRlZCcsICdzdWNjZXNzJyk7IGxvYWRBZG1pblBsYW5zKCk7IH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihlcnIpIHsgc2hvd0FsZXJ0KCdEZWxldGUgZmFpbGVkOiAnICsgZXJyLm1lc3NhZ2UsICdlcnJvcicpOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBhZG1pbiBwbGFuczonLCBlcnJvcik7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGVQbGFuKCkgeyANCiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk5hbWUnKS52YWx1ZS50cmltKCk7IA0KICAgICAgICAgICAgY29uc3QgbWluQW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk1pbicpLnZhbHVlKTsgDQogICAgICAgICAgICBjb25zdCBtYXhBbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuTWF4JykudmFsdWUpOyANCiAgICAgICAgICAgIGNvbnN0IGRhaWx5Um9pID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbkRhaWx5Um9pJykudmFsdWUpOyANCiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld1BsYW5EdXJhdGlvbicpLnZhbHVlKTsgDQogICAgICAgICAgICBjb25zdCBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuQ3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuRGVzYycpLnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICBpZiAoIW5hbWUgfHwgIW1pbkFtb3VudCB8fCAhbWF4QW1vdW50IHx8ICFkYWlseVJvaSB8fCAhZHVyYXRpb24pIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZmlsbCBpbiBhbGwgcmVxdWlyZWQgZmllbGRzJywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ2FkbWluL3BsYW5zJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBuYW1lLCBkZXNjcmlwdGlvbiwgbWluQW1vdW50LCBtYXhBbW91bnQsIGRhaWx5Um9pUGVyY2VudDogZGFpbHlSb2ksIGR1cmF0aW9uRGF5czogZHVyYXRpb24sIGN1cnJlbmN5IH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGxhbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk5hbWUnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk1pbicpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuTWF4JykudmFsdWUgPSAnJzsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld1BsYW5EYWlseVJvaScpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuRHVyYXRpb24nKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbkRlc2MnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5QbGFucygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBwbGFuOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBkZWxldGVQbGFuKHBsYW5JZCwgcGxhbk5hbWUpIHsNCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOw0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAiJyArIHBsYW5OYW1lICsgJyI/IFRoaXMgcGxhbiB3aWxsIGJlIHBlcm1hbmVudGx5IHJlbW92ZWQgZnJvbSB0aGUgc3lzdGVtLicsIGZ1bmN0aW9uKCkgeyBkb0RlbGV0ZVBsYW4ocGxhbklkKTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9EZWxldGVQbGFuKHBsYW5JZCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9wbGFucycsIHsgbWV0aG9kOiAnREVMRVRFJywgYm9keTogeyBwbGFuSWQ6IHBsYW5JZCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGxhbiBkZWxldGVkIHN1Y2Nlc3NmdWxseScsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgbG9hZEFkbWluUGxhbnMoKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGRlbGV0ZSBwbGFuOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRSZWZlcnJhbENvZGVzKCkgew0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IFtjb2Rlc0RhdGEsIHN0YXRzRGF0YV0gPSBhd2FpdCBQcm9taXNlLmFsbChbDQogICAgICAgICAgICAgICAgICAgIGFwaUNhbGwoJ2FkbWluL3JlZmVycmFsLWNvZGVzJyksDQogICAgICAgICAgICAgICAgICAgIGFwaUNhbGwoJ2FkbWluL3JlZmVycmFsLWNvZGVzL3N0YXRzJykNCiAgICAgICAgICAgICAgICBdKTsNCiAgICAgICAgICAgICAgICBjb25zdCBjb2RlcyA9IGNvZGVzRGF0YS5jb2RlcyB8fCBbXTsNCiAgICAgICAgICAgICAgICBjb25zdCBzdGF0cyA9IHN0YXRzRGF0YS5zdGF0cyB8fCB7fTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmU3RhdFRvdGFsJykudGV4dENvbnRlbnQgPSBzdGF0cy50b3RhbENvZGVzIHx8IDA7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZlN0YXRBY3RpdmUnKS50ZXh0Q29udGVudCA9IHN0YXRzLmFjdGl2ZUNvZGVzIHx8IDA7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZlN0YXRVc2VzJykudGV4dENvbnRlbnQgPSBzdGF0cy50b3RhbFVzZXMgfHwgMDsNCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmZXJyYWxDb2Rlc0NvbnRhaW5lcicpOw0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47DQogICAgICAgICAgICAgICAgaWYgKGNvZGVzLmxlbmd0aCA9PT0gMCkgeyBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyByZWZlcnJhbCBjb2RlcyB5ZXQ8L3A+PC9kaXY+JzsgcmV0dXJuOyB9DQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPHRhYmxlIGNsYXNzPSJ3LWZ1bGwgdGV4dC1zbSI+PHRoZWFkPjx0ciBjbGFzcz0idGV4dC1ncmF5LTQwMCBib3JkZXItYiBib3JkZXItZ3JheS03MDAiPjx0aCBjbGFzcz0idGV4dC1sZWZ0IHB5LTIgcHgtMiI+Q29kZTwvdGg+PHRoIGNsYXNzPSJ0ZXh0LWxlZnQgcHktMiBweC0yIj5Cb251czwvdGg+PHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS0yIHB4LTIiPlVzZWQ8L3RoPjx0aCBjbGFzcz0idGV4dC1jZW50ZXIgcHktMiBweC0yIj5TdGF0dXM8L3RoPjx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0yIHB4LTIiPkFjdGlvbjwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOw0KICAgICAgICAgICAgICAgIGNvZGVzLmZvckVhY2goYyA9PiB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NvbG9yID0gYy5pc0FjdGl2ZSA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6ICd0ZXh0LWdyYXktNDAwJzsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzVGV4dCA9IGMuaXNBY3RpdmUgPyAnQWN0aXZlJyA6ICdJbmFjdGl2ZSc7DQogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYDx0ciBjbGFzcz0iYm9yZGVyLWIgYm9yZGVyLWdyYXktODAwIGhvdmVyOmJnLXdoaXRlLzUiPjx0ZCBjbGFzcz0icHktMiBweC0yIGZvbnQtbW9ubyB0ZXh0LXdoaXRlIj4ke2MuY29kZX08L3RkPjx0ZCBjbGFzcz0icHktMiBweC0yIHRleHQtd2hpdGUiPiR7Yy5ib251c0Ftb3VudH0gJHtjLmN1cnJlbmN5LnRvVXBwZXJDYXNlKCl9PC90ZD48dGQgY2xhc3M9InB5LTIgcHgtMiB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIj5OL0E8L3RkPjx0ZCBjbGFzcz0icHktMiBweC0yIHRleHQtY2VudGVyICR7c3RhdHVzQ29sb3J9Ij4ke3N0YXR1c1RleHR9PC90ZD48dGQgY2xhc3M9InB5LTIgcHgtMiB0ZXh0LXJpZ2h0Ij48YnV0dG9uIG9uY2xpY2s9ImRlbGV0ZVJlZmVycmFsQ29kZSgke2MuaWR9LCAnJHtjLmNvZGV9JykiIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGhvdmVyOnRleHQtcm9zZS0zMDAgcC0xIj48aSBjbGFzcz0iZmFzIGZhLXRyYXNoIj48L2k+PC9idXR0b24+PC90ZD48L3RyPmA7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPic7DQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmxvZygnRmFpbGVkIHRvIGxvYWQgcmVmZXJyYWwgY29kZXM6JywgZXJyb3IpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGVSZWZlcnJhbENvZGUoZSkgew0KICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZkNvZGVJbnB1dCcpLnZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICAgICAgY29uc3QgYm9udXNBbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWZCb251c0lucHV0JykudmFsdWUpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmQ3VycmVuY3lJbnB1dCcpLnZhbHVlOw0KICAgICAgICAgICAgY29uc3QgbWF4VXNhZ2UgPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmTWF4VXNhZ2VJbnB1dCcpLnZhbHVlKSB8fCAxOw0KICAgICAgICAgICAgaWYgKCFjb2RlIHx8IGNvZGUubGVuZ3RoIDwgMykgeyBzaG93QWxlcnQoJ0NvZGUgbXVzdCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICBpZiAoIWJvbnVzQW1vdW50IHx8IGJvbnVzQW1vdW50IDw9IDApIHsgc2hvd0FsZXJ0KCdCb251cyBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCcsICdlcnJvcicpOyByZXR1cm4gZmFsc2U7IH0NCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcmVmZXJyYWwtY29kZXMnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IGNvZGUsIGJvbnVzQW1vdW50LCBjdXJyZW5jeSwgbWF4VXNhZ2UgfSB9KTsNCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1JlZmVycmFsIGNvZGUgY3JlYXRlZCEnLCAnc3VjY2VzcycpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcmVhdGVSZWZlcnJhbEZvcm0nKS5yZXNldCgpOw0KICAgICAgICAgICAgICAgIGxvYWRSZWZlcnJhbENvZGVzKCk7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZDogJyArIChlcnJvci5tZXNzYWdlIHx8ICdDb2RlIG1heSBhbHJlYWR5IGV4aXN0JyksICdlcnJvcicpOyB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBkZWxldGVSZWZlcnJhbENvZGUoY29kZUlkLCBjb2RlKSB7DQogICAgICAgICAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsNCiAgICAgICAgICAgIHNob3dDb25maXJtTW9kYWwoJ0RlbGV0ZSByZWZlcnJhbCBjb2RlICInICsgY29kZSArICciPycsIGZ1bmN0aW9uKCkgeyBkb0RlbGV0ZVJlZmVycmFsQ29kZShjb2RlSWQpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb0RlbGV0ZVJlZmVycmFsQ29kZShjb2RlSWQpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcmVmZXJyYWwtY29kZXMnLCB7IG1ldGhvZDogJ0RFTEVURScsIGJvZHk6IHsgY29kZUlkOiBjb2RlSWQgfSB9KTsNCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1JlZmVycmFsIGNvZGUgZGVsZXRlZCcsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgbG9hZFJlZmVycmFsQ29kZXMoKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRGVsZXRlIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBhY2NydWVQcm9maXRzKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHNob3dDb25maXJtTW9kYWwoJ1RoaXMgd2lsbCBkaXN0cmlidXRlIGRhaWx5IHByb2ZpdHMgdG8gQUxMIGFjdGl2ZSBpbnZlc3RtZW50cy4gQ29udGludWU/JywgZnVuY3Rpb24oKSB7IGRvQWNjcnVlUHJvZml0cygpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb0FjY3J1ZVByb2ZpdHMoKSB7IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2ludmVzdG1lbnRzL2FjY3J1ZScsIHsgbWV0aG9kOiAnUE9TVCcgfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydChkYXRhLm1lc3NhZ2UgKyAnLiBUb3RhbCBkaXN0cmlidXRlZDogJyArIGZvcm1hdENsZWFuKGRhdGEudG90YWxQcm9maXREaXN0cmlidXRlZCwgNCksICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGxvYWRBZG1pbkludmVzdG1lbnRzKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdBY2NydWFsIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluSW52ZXN0bWVudHMoKSB7IA0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2ludmVzdG1lbnRzJyksIGludmVzdG1lbnRzID0gZGF0YS5pbnZlc3RtZW50cyB8fCBbXSwgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluSW52ZXN0bWVudHNDb250YWluZXInKTsgDQogICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyANCiAgICAgICAgICAgICAgICBpZiAoaW52ZXN0bWVudHMubGVuZ3RoID09PSAwKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyBpbnZlc3RtZW50cyBmb3VuZDwvcD48L2Rpdj4nOyANCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGxldCBodG1sID0gJzxkaXYgY2xhc3M9InNwYWNlLXktMyI+JzsgDQogICAgICAgICAgICAgICAgaW52ZXN0bWVudHMuZm9yRWFjaChpbnYgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBpbnYuY3VycmVuY3kudG9VcHBlckNhc2UoKSB9OyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBpbnYuc3RhdHVzID09PSAnYWN0aXZlJyA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6IChpbnYuc3RhdHVzID09PSAnY29tcGxldGVkJyA/ICd0ZXh0LWJsdWUtNDAwJyA6ICd0ZXh0LWdyYXktNDAwJyk7IA0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtMyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTIiPjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSB0ZXh0LXNtIj4ke2ludi51c2VyTmFtZSB8fCBpbnYudXNlckVtYWlsfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2ludi5wbGFuTmFtZX0gfCAke2Zvcm1hdENsZWFuKGludi5hbW91bnQpfSAke2NyeXB0by5zeW1ib2x9PC9wPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXhzICR7c3RhdHVzQ29sb3J9Ij4ke2ludi5zdGF0dXMudG9VcHBlckNhc2UoKX08L3NwYW4+PGJ1dHRvbiBvbmNsaWNrPSJlZGl0SW52ZXN0bWVudFByb2ZpdCgke2ludi5pZH0sICR7aW52LnRvdGFsUHJvZml0IHx8IDB9LCAke2ludi53aXRoZHJhd25Qcm9maXQgfHwgMH0pIiBjbGFzcz0ibWwtMiB0ZXh0LWFtYmVyLTQwMCBob3Zlcjp0ZXh0LWFtYmVyLTMwMCB0ZXh0LXhzIj48aSBjbGFzcz0iZmFzIGZhLWVkaXQiPjwvaT48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIHRleHQtZ3JheS01MDAiPjxzcGFuPlByb2ZpdDogJHtmb3JtYXRDbGVhbihpbnYudG90YWxQcm9maXQsIDQpfTwvc3Bhbj48c3Bhbj4ke2ludi5wcm9ncmVzc30lICgke2ludi5kYXlzRWxhcHNlZH0vJHtpbnYuZHVyYXRpb25EYXlzfSBkYXlzKTwvc3Bhbj48L2Rpdj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgYWRtaW4gaW52ZXN0bWVudHM6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZWRpdEludmVzdG1lbnRQcm9maXQoaW52SWQsIHRvdGFsUHJvZml0LCB3aXRoZHJhd25Qcm9maXQpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0SW52SWQnKS52YWx1ZSA9IGludklkOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRUb3RhbFByb2ZpdCcpLnZhbHVlID0gdG90YWxQcm9maXQ7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdFdpdGhkcmF3blByb2ZpdCcpLnZhbHVlID0gd2l0aGRyYXduUHJvZml0Ow0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRBdmFpbGFibGVQcm9maXQnKS50ZXh0Q29udGVudCA9IGZvcm1hdENsZWFuKHRvdGFsUHJvZml0IC0gd2l0aGRyYXduUHJvZml0LCA4KSArICcgVVNEVCc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdEludmVzdG1lbnRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRJbnZlc3RtZW50TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdmbGV4Jyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gY2xvc2VFZGl0SW52ZXN0bWVudE1vZGFsKCkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRJbnZlc3RtZW50TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0SW52ZXN0bWVudE1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnZmxleCcpOw0KICAgICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNhdmVJbnZlc3RtZW50RWRpdCgpIHsNCiAgICAgICAgICAgIGNvbnN0IGludklkID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRJbnZJZCcpLnZhbHVlKTsNCiAgICAgICAgICAgIGNvbnN0IHRvdGFsUHJvZml0ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdFRvdGFsUHJvZml0JykudmFsdWUpOw0KICAgICAgICAgICAgY29uc3Qgd2l0aGRyYXduUHJvZml0ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdFdpdGhkcmF3blByb2ZpdCcpLnZhbHVlKTsNCiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0SW52U3RhdHVzJykudmFsdWU7DQogICAgICAgICAgICBpZiAoIWludklkKSB7IHNob3dBbGVydCgnSW52YWxpZCBpbnZlc3RtZW50IElEJywgJ2Vycm9yJyk7IHJldHVybjsgfQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9pbnZlc3RtZW50cy91cGRhdGUnLCB7DQogICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLA0KICAgICAgICAgICAgICAgICAgICBib2R5OiB7IGludmVzdG1lbnRJZDogaW52SWQsIHRvdGFsUHJvZml0LCB3aXRoZHJhd25Qcm9maXQsIHN0YXR1cyB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgY2xvc2VFZGl0SW52ZXN0bWVudE1vZGFsKCk7DQogICAgICAgICAgICAgICAgc2hvd0FsZXJ0KCdJbnZlc3RtZW50IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5JywgJ3N1Y2Nlc3MnKTsNCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5JbnZlc3RtZW50cygpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdVcGRhdGUgZmFpbGVkOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBzaG93QWxlcnQobWVzc2FnZSwgdHlwZSA9ICdlcnJvcicpIHsgDQogICAgICAgICAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N1c3RvbUFsZXJ0JyksIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydEJveCcpLCB0aXRsZURpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydFRpdGxlJyksIG1lc3NhZ2VEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnRNZXNzYWdlJyksIGljb25EaXYgPSBib3gucXVlcnlTZWxlY3RvcignLmFsZXJ0LWljb24nKTsgDQogICAgICAgICAgICB0aXRsZURpdi50ZXh0Q29udGVudCA9IHR5cGUgPT09ICdlcnJvcicgPyAnRXJyb3InIDogJ1N1Y2Nlc3MnOyANCiAgICAgICAgICAgIG1lc3NhZ2VEaXYudGV4dENvbnRlbnQgPSBtZXNzYWdlOyANCiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZXJyb3InKSB7IGljb25EaXYuc3R5bGUuYmFja2dyb3VuZCA9ICcjZWY0NDQ0JzsgaWNvbkRpdi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbiI+PC9pPic7IH0gDQogICAgICAgICAgICBlbHNlIHsgaWNvbkRpdi5zdHlsZS5iYWNrZ3JvdW5kID0gJyMxMGI5ODEnOyBpY29uRGl2LmlubmVySFRNTCA9ICc8aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+JzsgfSANCiAgICAgICAgICAgIG92ZXJsYXkuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY2xvc2VBbGVydCgpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N1c3RvbUFsZXJ0JykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7IH0NCiAgICAgICAgZnVuY3Rpb24gdG9nZ2xlUGFzc3dvcmQoaW5wdXRJZCwgYnV0dG9uKSB7IGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCksIGljb24gPSBidXR0b24ucXVlcnlTZWxlY3RvcignaScpOyBpZiAoaW5wdXQudHlwZSA9PT0gJ3Bhc3N3b3JkJykgeyBpbnB1dC50eXBlID0gJ3RleHQnOyBpY29uLmNsYXNzTGlzdC5yZW1vdmUoJ2ZhLWV5ZScpOyBpY29uLmNsYXNzTGlzdC5hZGQoJ2ZhLWV5ZS1zbGFzaCcpOyB9IGVsc2UgeyBpbnB1dC50eXBlID0gJ3Bhc3N3b3JkJzsgaWNvbi5jbGFzc0xpc3QucmVtb3ZlKCdmYS1leWUtc2xhc2gnKTsgaWNvbi5jbGFzc0xpc3QuYWRkKCdmYS1leWUnKTsgfSB9DQogICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVByb2ZpbGVNZW51KCkgeyBjb25zdCBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVNZW51Jyk7IGlmIChtZW51KSBtZW51LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGRlbicpOyB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlUHJvZmlsZURpc3BsYXkoKSB7IA0KICAgICAgICAgICAgaWYgKCFjdXJyZW50VXNlcikgcmV0dXJuOyANCiAgICAgICAgICAgIGNvbnN0IGlzVXNlckFkbWluID0gaXNBZG1pbiB8fCBjdXJyZW50VXNlci5yb2xlID09PSAnYWRtaW4nOw0KICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBpc1VzZXJBZG1pbiA/ICdBZG1pbicgOiAoY3VycmVudFVzZXIubmFtZSB8fCAnVXNlcicpOw0KICAgICAgICAgICAgY29uc3QgZW1haWwgPSBjdXJyZW50VXNlci5lbWFpbCB8fCAndXNlckBleGFtcGxlLmNvbSc7DQogICAgICAgICAgICBjb25zdCBpbml0aWFsID0gZGlzcGxheU5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7IA0KICAgICAgICAgICAgY29uc3QgcHJvZmlsZUluaXRpYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZmlsZUluaXRpYWwnKTsgDQogICAgICAgICAgICBpZiAocHJvZmlsZUluaXRpYWwpIHByb2ZpbGVJbml0aWFsLnRleHRDb250ZW50ID0gaW5pdGlhbDsgDQogICAgICAgICAgICBjb25zdCBtZW51UHJvZmlsZUluaXRpYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudVByb2ZpbGVJbml0aWFsJyksIG1lbnVQcm9maWxlTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51UHJvZmlsZU5hbWUnKSwgbWVudVByb2ZpbGVFbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51UHJvZmlsZUVtYWlsJyk7IA0KICAgICAgICAgICAgaWYgKG1lbnVQcm9maWxlSW5pdGlhbCkgbWVudVByb2ZpbGVJbml0aWFsLnRleHRDb250ZW50ID0gaW5pdGlhbDsgDQogICAgICAgICAgICBpZiAobWVudVByb2ZpbGVOYW1lKSBtZW51UHJvZmlsZU5hbWUudGV4dENvbnRlbnQgPSBkaXNwbGF5TmFtZTsgDQogICAgICAgICAgICBpZiAobWVudVByb2ZpbGVFbWFpbCkgbWVudVByb2ZpbGVFbWFpbC50ZXh0Q29udGVudCA9IGVtYWlsOw0KICAgICAgICAgICAgY29uc3Qgcm9sZUxhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVSb2xlTGFiZWwnKTsNCiAgICAgICAgICAgIGlmIChyb2xlTGFiZWwpIHsgcm9sZUxhYmVsLnRleHRDb250ZW50ID0gaXNVc2VyQWRtaW4gPyAnQWRtaW5pc3RyYXRvcicgOiAnQWN0aXZlIFRyYWRlcic7IH0NCiAgICAgICAgICAgIGNvbnN0IHByb2ZpbGVUb3RhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9maWxlVG90YWxCYWxhbmNlJyk7IA0KICAgICAgICAgICAgaWYgKHByb2ZpbGVUb3RhbCkgeyANCiAgICAgICAgICAgICAgICBsZXQgdG90YWwgPSAwOyANCiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjdXJyZW50VXNlci53YWxsZXRzIHx8IHt9KS5mb3JFYWNoKChbYywgd10pID0+IHsgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjXTsgdG90YWwgKz0gKHc/LmJhbGFuY2UgfHwgMCkgKiAoY3J5cHRvID8gY3J5cHRvLnByaWNlIDogMSk7IH0pOyANCiAgICAgICAgICAgICAgICBwcm9maWxlVG90YWwudGV4dENvbnRlbnQgPSAnJCcgKyBmb3JtYXRDbGVhbih0b3RhbCwgMik7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGludkRhdGEgPSBhd2FpdCBhcGlDYWxsKCdpbnZlc3RtZW50cycpOyANCiAgICAgICAgICAgICAgICBjb25zdCBpbnZlc3RtZW50cyA9IGludkRhdGEuaW52ZXN0bWVudHMgfHwgW107IA0KICAgICAgICAgICAgICAgIGxldCB0b3RhbFByb2ZpdFVTRCA9IDA7IA0KICAgICAgICAgICAgICAgIGludmVzdG1lbnRzLmZvckVhY2goaW52ID0+IHsgDQogICAgICAgICAgICAgICAgICAgIHZhciBwcmljZSA9IChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYWNjUHJvZml0ID0gaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IChpbnYuZGFpbHlQcm9maXQgKiBpbnYuZGF5c0VsYXBzZWQpIHx8IDA7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZml0VVNEICs9IGFjY1Byb2ZpdCAqIHByaWNlOw0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgICAgICAgICBjb25zdCBwcm9maWxlSW52ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVJbnZlc3RQcm9maXQnKTsgDQogICAgICAgICAgICAgICAgaWYgKHByb2ZpbGVJbnZlc3QpIHByb2ZpbGVJbnZlc3QudGV4dENvbnRlbnQgPSAnJCcgKyBmb3JtYXRDbGVhbih0b3RhbFByb2ZpdFVTRCwgMik7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBwcm9maWxlSW52ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVJbnZlc3RQcm9maXQnKTsgDQogICAgICAgICAgICAgICAgaWYgKHByb2ZpbGVJbnZlc3QpIHByb2ZpbGVJbnZlc3QudGV4dENvbnRlbnQgPSAnJDAuMDAnOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0NCg0KICAgICAgICB3aW5kb3cub25jbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7IA0KICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ21vZGFsJykpIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgDQogICAgICAgICAgICBjb25zdCBwcm9maWxlTWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9maWxlTWVudScpLCBwcm9maWxlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVCdG4nKTsgDQogICAgICAgICAgICBpZiAocHJvZmlsZU1lbnUgJiYgIXByb2ZpbGVNZW51LmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJykgJiYgIXByb2ZpbGVNZW51LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgIXByb2ZpbGVCdG4uY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgcHJvZmlsZU1lbnUuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZm9ybWF0UGhvbmUoaW5wdXQpIHsgDQogICAgICAgICAgICBsZXQgdmFsID0gaW5wdXQudmFsdWUucmVwbGFjZSgvXEQvZywgJycpOyANCiAgICAgICAgICAgIGlmICh2YWwubGVuZ3RoID49IDYpIGlucHV0LnZhbHVlID0gJygnICsgdmFsLnN1YnN0cmluZygwLDMpICsgJykgJyArIHZhbC5zdWJzdHJpbmcoMyw2KSArICctJyArIHZhbC5zdWJzdHJpbmcoNiwxMCk7IA0KICAgICAgICAgICAgZWxzZSBpZiAodmFsLmxlbmd0aCA+PSAzKSBpbnB1dC52YWx1ZSA9ICcoJyArIHZhbC5zdWJzdHJpbmcoMCwzKSArICcpICcgKyB2YWwuc3Vic3RyaW5nKDMpOyANCiAgICAgICAgICAgIGVsc2UgaW5wdXQudmFsdWUgPSB2YWw7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY2hlY2tQYXNzd29yZFN0cmVuZ3RoKHBhc3N3b3JkKSB7IA0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkU3RyZW5ndGhDb250YWluZXInKSwgYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkU3RyZW5ndGhCYXInKSwgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZFN0cmVuZ3RoVGV4dCcpOyANCiAgICAgICAgICAgIGlmIChwYXNzd29yZC5sZW5ndGggPiAwKSBjb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IA0KICAgICAgICAgICAgZWxzZSB7IGNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBoYXNMZW5ndGggPSBwYXNzd29yZC5sZW5ndGggPj0gOCwgaGFzVXBwZXIgPSAvW0EtWl0vLnRlc3QocGFzc3dvcmQpLCBoYXNMb3dlciA9IC9bYS16XS8udGVzdChwYXNzd29yZCksIGhhc051bWJlciA9IC9bMC05XS8udGVzdChwYXNzd29yZCksIGhhc1NwZWNpYWwgPSAvWyFAIyQlXiYqKCksLj8iOnt9fDw+XS8udGVzdChwYXNzd29yZCk7IA0KICAgICAgICAgICAgdXBkYXRlUmVxdWlyZW1lbnQoJ3JlcS1sZW5ndGgnLCBoYXNMZW5ndGgpOyANCiAgICAgICAgICAgIHVwZGF0ZVJlcXVpcmVtZW50KCdyZXEtdXBwZXInLCBoYXNVcHBlcik7IA0KICAgICAgICAgICAgdXBkYXRlUmVxdWlyZW1lbnQoJ3JlcS1sb3dlcicsIGhhc0xvd2VyKTsgDQogICAgICAgICAgICB1cGRhdGVSZXF1aXJlbWVudCgncmVxLW51bWJlcicsIGhhc051bWJlcik7IA0KICAgICAgICAgICAgdXBkYXRlUmVxdWlyZW1lbnQoJ3JlcS1zcGVjaWFsJywgaGFzU3BlY2lhbCk7IA0KICAgICAgICAgICAgbGV0IHNjb3JlID0gMDsgDQogICAgICAgICAgICBpZiAoaGFzTGVuZ3RoKSBzY29yZSsrOyBpZiAoaGFzVXBwZXIpIHNjb3JlKys7IGlmIChoYXNMb3dlcikgc2NvcmUrKzsgaWYgKGhhc051bWJlcikgc2NvcmUrKzsgaWYgKGhhc1NwZWNpYWwpIHNjb3JlKys7IA0KICAgICAgICAgICAgbGV0IHdpZHRoLCBjb2xvciwgbGFiZWw7IA0KICAgICAgICAgICAgaWYgKHNjb3JlIDw9IDEpIHsgd2lkdGggPSAnMjAlJzsgY29sb3IgPSAnI2VmNDQ0NCc7IGxhYmVsID0gJ1dlYWsnOyB9IA0KICAgICAgICAgICAgZWxzZSBpZiAoc2NvcmUgPT09IDIpIHsgd2lkdGggPSAnNDAlJzsgY29sb3IgPSAnI2Y5NzMxNic7IGxhYmVsID0gJ0ZhaXInOyB9IA0KICAgICAgICAgICAgZWxzZSBpZiAoc2NvcmUgPT09IDMpIHsgd2lkdGggPSAnNjAlJzsgY29sb3IgPSAnI2VhYjMwOCc7IGxhYmVsID0gJ0dvb2QnOyB9IA0KICAgICAgICAgICAgZWxzZSBpZiAoc2NvcmUgPT09IDQpIHsgd2lkdGggPSAnODAlJzsgY29sb3IgPSAnIzIyYzU1ZSc7IGxhYmVsID0gJ1N0cm9uZyc7IH0gDQogICAgICAgICAgICBlbHNlIHsgd2lkdGggPSAnMTAwJSc7IGNvbG9yID0gJyMxMGI5ODEnOyBsYWJlbCA9ICdWZXJ5IFN0cm9uZyc7IH0gDQogICAgICAgICAgICBiYXIuc3R5bGUud2lkdGggPSB3aWR0aDsgYmFyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yOyB0ZXh0LnRleHRDb250ZW50ID0gbGFiZWw7IHRleHQuc3R5bGUuY29sb3IgPSBjb2xvcjsgDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVSZXF1aXJlbWVudChpZCwgbWV0KSB7IA0KICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IA0KICAgICAgICAgICAgaWYgKGVsKSB7IA0KICAgICAgICAgICAgICAgIGlmIChtZXQpIHsgZWwuY2xhc3NMaXN0LnJlbW92ZSgndGV4dC1ncmF5LTUwMCcpOyBlbC5jbGFzc0xpc3QuYWRkKCd0ZXh0LWVtZXJhbGQtNDAwJyk7IGVsLnF1ZXJ5U2VsZWN0b3IoJ2knKS5jbGFzc05hbWUgPSAnZmFzIGZhLWNoZWNrIHRleHQtWzhweF0nOyB9IA0KICAgICAgICAgICAgICAgIGVsc2UgeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCd0ZXh0LWVtZXJhbGQtNDAwJyk7IGVsLmNsYXNzTGlzdC5hZGQoJ3RleHQtZ3JheS01MDAnKTsgZWwucXVlcnlTZWxlY3RvcignaScpLmNsYXNzTmFtZSA9ICdmYXMgZmEtY2lyY2xlIHRleHQtWzZweF0nOyB9IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfQ0KDQogICAgICAgIC8vID09PT09PT09PT0gUFJPRkVTU0lPTkFMIEJBQ0tHUk9VTkQgQU5JTUFUSU9OID09PT09PT09PT0NCiAgICAgICAgKGZ1bmN0aW9uIGluaXRDcnlwdG9CZygpIHsNCiAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZ0NhbnZhcycpOw0KICAgICAgICAgICAgaWYgKCFjYW52YXMpIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgbGV0IFcsIEg7DQoNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOw0KICAgICAgICAgICAgICAgIFcgPSBjYW52YXMub2Zmc2V0V2lkdGggfHwgd2luZG93LmlubmVyV2lkdGg7DQogICAgICAgICAgICAgICAgSCA9IGNhbnZhcy5vZmZzZXRIZWlnaHQgfHwgd2luZG93LmlubmVySGVpZ2h0Ow0KICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IFcgKiBkcHI7DQogICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IEggKiBkcHI7DQogICAgICAgICAgICAgICAgY3R4LnNldFRyYW5zZm9ybShkcHIsIDAsIDAsIGRwciwgMCwgMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXNpemUoKTsNCiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXNpemUpOw0KDQogICAgICAgICAgICAvLyBTdWJ0bGUgcGFydGljbGVzIHRoYXQgZHJpZnQgc2xvd2x5DQogICAgICAgICAgICBjbGFzcyBQYXJ0aWNsZSB7DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7IHRoaXMucmVzZXQoKTsgfQ0KICAgICAgICAgICAgICAgIHJlc2V0KCkgeyB0aGlzLnggPSBNYXRoLnJhbmRvbSgpICogVzsgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEg7IHRoaXMudnggPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiAwLjE1OyB0aGlzLnZ5ID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogMC4xNTsgdGhpcy5yID0gTWF0aC5yYW5kb20oKSAqIDEuMiArIDAuMzsgdGhpcy5hbHBoYSA9IE1hdGgucmFuZG9tKCkgKiAwLjMgKyAwLjE7IH0NCiAgICAgICAgICAgICAgICB1cGRhdGUoKSB7IHRoaXMueCArPSB0aGlzLnZ4OyB0aGlzLnkgKz0gdGhpcy52eTsgaWYgKHRoaXMueCA8IC0yMCB8fCB0aGlzLnggPiBXICsgMjAgfHwgdGhpcy55IDwgLTIwIHx8IHRoaXMueSA+IEggKyAyMCkgdGhpcy5yZXNldCgpOyB9DQogICAgICAgICAgICAgICAgZHJhdygpIHsgY3R4LmJlZ2luUGF0aCgpOyBjdHguYXJjKHRoaXMueCwgdGhpcy55LCB0aGlzLnIsIDAsIE1hdGguUEkgKiAyKTsgY3R4LmZpbGxTdHlsZSA9IGByZ2JhKDI1NSwyNTUsMjU1LCR7dGhpcy5hbHBoYX0pYDsgY3R4LmZpbGwoKTsgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgUEFSVElDTEVfQ09VTlQgPSBNYXRoLm1pbig1MCwgTWF0aC5mbG9vcigoVyAqIEgpIC8gMjUwMDApKTsNCiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IFBBUlRJQ0xFX0NPVU5UIH0sICgpID0+IG5ldyBQYXJ0aWNsZSgpKTsNCg0KICAgICAgICAgICAgLy8gRmxvd2luZyBwcmljZSBjaGFydCBsaW5lcyAoc3BhcmtsaW5lcykNCiAgICAgICAgICAgIGNsYXNzIFNwYXJrTGluZSB7DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7IHRoaXMucmVzZXQoKTsgfQ0KICAgICAgICAgICAgICAgIHJlc2V0KCkgew0KICAgICAgICAgICAgICAgICAgICB0aGlzLnggPSBNYXRoLnJhbmRvbSgpICogVzsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEggKiAwLjggKyBIICogMC4xOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLnZ4ID0gKE1hdGgucmFuZG9tKCkgKyAwLjMpICogMC4zOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5yYW5kb20oKSAqIDE4MCArIDEyMDsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludHMgPSBbXTsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbCA9IE1hdGgucmFuZG9tKCkgKiAzMCArIDEwOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGVwcyA9IDMwOw0KICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzdGVwczsgaSsrKSB7IHZhbCArPSAoTWF0aC5yYW5kb20oKSAtIDAuNDgpICogNjsgdGhpcy5wb2ludHMucHVzaCh2YWwpOyB9DQogICAgICAgICAgICAgICAgICAgIHRoaXMuaXNVcCA9IHRoaXMucG9pbnRzW3RoaXMucG9pbnRzLmxlbmd0aCAtIDFdID49IHRoaXMucG9pbnRzWzBdOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFscGhhID0gTWF0aC5yYW5kb20oKSAqIDAuMDYgKyAwLjAzOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmVXaWR0aCA9IE1hdGgucmFuZG9tKCkgKiAwLjggKyAwLjQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHVwZGF0ZSgpIHsgdGhpcy54ICs9IHRoaXMudng7IGlmICh0aGlzLnggPiBXICsgdGhpcy53aWR0aCkgeyB0aGlzLnggPSAtdGhpcy53aWR0aDsgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEggKiAwLjggKyBIICogMC4xOyB0aGlzLnJlc2V0KCk7IH0gfQ0KICAgICAgICAgICAgICAgIGRyYXcoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKC4uLnRoaXMucG9pbnRzKSwgbWF4ID0gTWF0aC5tYXgoLi4udGhpcy5wb2ludHMpLCByYW5nZSA9IG1heCAtIG1pbiB8fCAxOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuaXNVcCA/ICcxNiwgMTg1LCAxMjknIDogJzI0NCwgNjMsIDk0JzsNCiAgICAgICAgICAgICAgICAgICAgLy8gTGluZQ0KICAgICAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHsgY29uc3QgcHggPSB0aGlzLnggKyAoaSAvICh0aGlzLnBvaW50cy5sZW5ndGggLSAxKSkgKiB0aGlzLndpZHRoOyBjb25zdCBweSA9IHRoaXMueSAtICgocCAtIG1pbikgLyByYW5nZSkgKiAyMDsgaWYgKGkgPT09IDApIGN0eC5tb3ZlVG8ocHgsIHB5KTsgZWxzZSBjdHgubGluZVRvKHB4LCBweSk7IH0pOw0KICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke3RoaXMuYWxwaGF9KWA7IGN0eC5saW5lV2lkdGggPSB0aGlzLmxpbmVXaWR0aDsgY3R4LnN0cm9rZSgpOw0KICAgICAgICAgICAgICAgICAgICAvLyBBcmVhIGZpbGwNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFggPSB0aGlzLnggKyB0aGlzLndpZHRoOw0KICAgICAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHsgY29uc3QgcHggPSB0aGlzLnggKyAoaSAvICh0aGlzLnBvaW50cy5sZW5ndGggLSAxKSkgKiB0aGlzLndpZHRoOyBjb25zdCBweSA9IHRoaXMueSAtICgocCAtIG1pbikgLyByYW5nZSkgKiAyMDsgaWYgKGkgPT09IDApIGN0eC5tb3ZlVG8ocHgsIHB5KTsgZWxzZSBjdHgubGluZVRvKHB4LCBweSk7IH0pOw0KICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKGxhc3RYLCB0aGlzLnkgKyA4KTsgY3R4LmxpbmVUbyh0aGlzLngsIHRoaXMueSArIDgpOyBjdHguY2xvc2VQYXRoKCk7DQogICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke3RoaXMuYWxwaGEgKiAwLjN9KWA7IGN0eC5maWxsKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgU1BBUktfQ09VTlQgPSBNYXRoLm1pbigxNSwgTWF0aC5mbG9vcigoVyAqIEgpIC8gNjAwMDApKTsNCiAgICAgICAgICAgIGNvbnN0IHNwYXJrbGluZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBTUEFSS19DT1VOVCB9LCAoKSA9PiBuZXcgU3BhcmtMaW5lKCkpOw0KDQogICAgICAgICAgICAvLyBDb25uZWN0aW9uIGxpbmVzIGJldHdlZW4gbmVhcmJ5IHBhcnRpY2xlcw0KICAgICAgICAgICAgZnVuY3Rpb24gZHJhd0Nvbm5lY3Rpb25zKCkgew0KICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydGljbGVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IHBhcnRpY2xlcy5sZW5ndGg7IGorKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHggPSBwYXJ0aWNsZXNbaV0ueCAtIHBhcnRpY2xlc1tqXS54LCBkeSA9IHBhcnRpY2xlc1tpXS55IC0gcGFydGljbGVzW2pdLnk7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0ID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgMTQwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOyBjdHgubW92ZVRvKHBhcnRpY2xlc1tpXS54LCBwYXJ0aWNsZXNbaV0ueSk7IGN0eC5saW5lVG8ocGFydGljbGVzW2pdLngsIHBhcnRpY2xlc1tqXS55KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgxMDAsMTUwLDI1NSwkezAuMDYgKiAoMSAtIGRpc3QgLyAxNDApfSlgOyBjdHgubGluZVdpZHRoID0gMC41OyBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFN1YnRsZSBtb3ZpbmcgYWNjZW50IGRvdHMNCiAgICAgICAgICAgIGNsYXNzIEFjY2VudERvdCB7DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7IHRoaXMucmVzZXQoKTsgfQ0KICAgICAgICAgICAgICAgIHJlc2V0KCkgeyB0aGlzLnggPSBNYXRoLnJhbmRvbSgpICogVzsgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEg7IHRoaXMudnggPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiAwLjI7IHRoaXMudnkgPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiAwLjI7IHRoaXMuciA9IE1hdGgucmFuZG9tKCkgKiAyICsgMTsgdGhpcy5jb2xvciA9IFsnNTksIDEzMCwgMjQ2JywgJzE2LCAxODUsIDEyOScsICcxMzksIDkyLCAyNDYnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzKV07IHRoaXMuYWxwaGEgPSBNYXRoLnJhbmRvbSgpICogMC4xNSArIDAuMDg7IHRoaXMucHVsc2UgPSBNYXRoLnJhbmRvbSgpICogTWF0aC5QSSAqIDI7IH0NCiAgICAgICAgICAgICAgICB1cGRhdGUoKSB7IHRoaXMueCArPSB0aGlzLnZ4OyB0aGlzLnkgKz0gdGhpcy52eTsgdGhpcy5wdWxzZSArPSAwLjAyOyBpZiAodGhpcy54IDwgLTIwIHx8IHRoaXMueCA+IFcgKyAyMCB8fCB0aGlzLnkgPCAtMjAgfHwgdGhpcy55ID4gSCArIDIwKSB0aGlzLnJlc2V0KCk7IH0NCiAgICAgICAgICAgICAgICBkcmF3KCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhpcy5hbHBoYSAqICgwLjcgKyBNYXRoLnNpbih0aGlzLnB1bHNlKSAqIDAuMyk7DQogICAgICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsgY3R4LmFyYyh0aGlzLngsIHRoaXMueSwgdGhpcy5yLCAwLCBNYXRoLlBJICogMik7DQogICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiYSgke3RoaXMuY29sb3J9LCR7YX0pYDsgY3R4LnNoYWRvd0NvbG9yID0gYHJnYmEoJHt0aGlzLmNvbG9yfSwwLjQpYDsgY3R4LnNoYWRvd0JsdXIgPSA4OyBjdHguZmlsbCgpOyBjdHguc2hhZG93Qmx1ciA9IDA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgQUNDRU5UX0NPVU5UID0gTWF0aC5taW4oOCwgTWF0aC5mbG9vcigoVyAqIEgpIC8gMTAwMDAwKSk7DQogICAgICAgICAgICBjb25zdCBhY2NlbnRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogQUNDRU5UX0NPVU5UIH0sICgpID0+IG5ldyBBY2NlbnREb3QoKSk7DQoNCiAgICAgICAgICAgIGZ1bmN0aW9uIGFuaW1hdGUoKSB7DQogICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBXLCBIKTsNCiAgICAgICAgICAgICAgICBzcGFya2xpbmVzLmZvckVhY2gocyA9PiB7IHMudXBkYXRlKCk7IHMuZHJhdygpOyB9KTsNCiAgICAgICAgICAgICAgICBkcmF3Q29ubmVjdGlvbnMoKTsNCiAgICAgICAgICAgICAgICBwYXJ0aWNsZXMuZm9yRWFjaChwID0+IHsgcC51cGRhdGUoKTsgcC5kcmF3KCk7IH0pOw0KICAgICAgICAgICAgICAgIGFjY2VudHMuZm9yRWFjaChhID0+IHsgYS51cGRhdGUoKTsgYS5kcmF3KCk7IH0pOw0KICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGFuaW1hdGUoKTsNCiAgICAgICAgfSkoKTsNCiAgICA8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4NCg0K"}},"time_used":646,"timings":{"blocked":-1,"dns":45,"connect":105,"send":0,"wait":98,"receive":197,"ssl":201},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/webfonts/fa-solid-900.woff2","fqdn":"cdnjs.cloudflare.com","domain":"cloudflare.com","tld":"com"},"ip":{"addr":"104.17.24.14","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.644Z","timestamp":1785142155644,"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":"cdnjs.cloudflare.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 10 Jul 2026 07:07:58 GMT","end":"Thu, 08 Oct 2026 08:07:45 GMT"},"fingerprint":{"sha1":"DF:66:97:F5:13:A2:C0:81:D3:5B:60:C4:B0:7F:CD:78:F5:91:14:D5","sha256":"3C:F2:95:73:83:BA:4D:D9:CC:85:8F:BC:7D:2C:22:CF:F3:49:9A:3A:E4:1D:FC:AE:CB:07:3D:66:89:74:0E:C5"}}},"request":{"raw":"GET /ajax/libs/font-awesome/6.4.0/webfonts/fa-solid-900.woff2 HTTP/1.1\r\nHost: cdnjs.cloudflare.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nOrigin: https://platinumglobalexchange.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=5\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 08:49:15 GMT\r\ncontent-type: application/octet-stream; charset=utf-8\r\ncontent-length: 150124\r\ncf-cache-status: BYPASS\r\naccess-control-allow-origin: *\r\ncache-control: no-transform, public, s-maxage=30672000, max-age=30672000, immutable\r\nlast-modified: Mon, 27 Mar 2023 17:46:59 GMT\r\nvary: Accept-Encoding\r\nx-cdnjs-cache: HIT\r\ncross-origin-resource-policy: cross-origin\r\ntiming-allow-origin: *\r\nx-content-type-options: nosniff\r\ncf-cdnjs-via: cfworker/r2\r\nstrict-transport-security: max-age=15780000\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Ue2svjuRFqQ4x1FalOSc1dy3agzUTY%2FdmSlBAPSeELQC8uHcT8r30%2Fe6qXCnSjCax6H9mcZBthrN9ir34SdW%2FY7h5tKFyc31UQEO64K9ViAj2WCGXUegRJ2yknhK4I3sJKWGHhE5\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.01,\"max_age\":604800}\r\npriority: u=5,i=?0\r\nserver: cloudflare\r\ncf-ray: a21a63c8db14b51d-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]},{"name":"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":150124,"size_decoded":151110,"mime_type":"application/octet-stream; charset=utf-8","magic":"Web Open Font Format (Version 2), TrueType, length 150124, version 772.256","md5":"c64278386c2bbb5e293e11b94ca2f6d1","sha1":"6b99aa650bd12a36caa14e0127435d8f4cd3ba73","sha256":"7152a6933ee3d690ec2af3d09da9d701723d16aa3410a6d80f28ff8866f3b880","sha512":"0ccdc1515510d902c0b4a48b863c48bad86e1f766b1f9c890a64e28d91ee7c6d488241c531fc094d15b29c211da71e092587a987e24ee8e67ef8ea99c284e821","ssdeep":"3072:7sCbk7w0ZXdkN6iMjif3Lr7x7wAtf+D7gDk1feXDLnurWHqrNIuv5n0:7sCbkFZXdC7MaLr9w2mIY1feXXurWyNW","tlshash":"28e3123cf2c6d486735f5aeadb79636894fd0a2e74ecc67d26b982112048f828174d1d","first_seen":"2023-04-09T20:30:06Z","last_seen":"2026-07-29T09:39:18.408974Z","times_seen":44235,"resource_available":false,"data":"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"}},"time_used":57,"timings":{"blocked":-1,"dns":0,"connect":8,"send":0,"wait":45,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"platinumglobalexchange.com/favicon.ico","fqdn":"platinumglobalexchange.com","domain":"platinumglobalexchange.com","tld":"com"},"ip":{"addr":"2.25.141.192","port":443,"asn":12576,"as":"EE Limited","country":"United Kingdom","country_code":"GB"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://platinumglobalexchange.com/","date":"2026-07-27T08:49:15.887Z","timestamp":1785142155887,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"platinumglobalexchange.com","organization":""},"issuer":{"commonName":"R13","organization":"Let's Encrypt"},"validity":{"start":"Thu, 28 May 2026 04:08:45 GMT","end":"Wed, 26 Aug 2026 04:08:44 GMT"},"fingerprint":{"sha1":"F1:EB:A7:99:4C:6E:CE:D6:1F:92:20:91:91:C3:81:76:20:9A:D6:32","sha256":"7B:FA:E7:B2:89:CA:63:B1:3D:30:9F:59:CB:12:58:36:C9:9A:B5:87:36:8F:80:24:DD:C1:34:DF:77:35:B0:04"}}},"request":{"raw":"GET /favicon.ico HTTP/1.1\r\nHost: platinumglobalexchange.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://platinumglobalexchange.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=6\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\netag: \"58bc9-6a6504bd-13e0f8;br\"\r\nlast-modified: Sat, 25 Jul 2026 18:47:25 GMT\r\ncontent-type: text/html\r\ncontent-length: 58389\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 08:49:15 GMT\r\nserver: LiteSpeed\r\nx-powered-by: CyberPanel-OLS/2.4.4\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Tailwind CSS","description":"Tailwind is a utility-first CSS framework.","website":"https://tailwindcss.com/","common_platform_enumeration":"","icon":"tailwindcss.svg","categories":["UI frameworks"]},{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":363465,"size_decoded":58869,"mime_type":"text/html","magic":"HTML document, ASCII text, with very long lines (1134), with CRLF line terminators","md5":"d4062df667e738d673d9f2876f4429a0","sha1":"e71aa474329605b7f9377af2ae651ebec7690016","sha256":"d70020e6278a15aec61774ceacaf29fb619b3299d40fc48b2b3279166ad98afb","sha512":"22cf64d7b2523b2b93cdb27378a7ea7e2acca5fdd1a99983ef8b48697abb953b07144a1dec319cbebc8292e5dddc6028be36c92e357d3b14b4703fb7d695d33e","ssdeep":"3072:BZXACx/mVtqm/I6cC9vFiJhbhpSS/ZcyKVp8CjimlxsFwco/ycm7F4MwLMG:B5aA6cwvUhpSSS8SlxRqd7FhwLMG","tlshash":"3774a77531a11a7682f792feb6634729f965c307d607c948baac83c50ff3c449c27a98","first_seen":"2026-07-27T05:56:47.591546Z","last_seen":"2026-07-27T08:50:16.79327Z","times_seen":3,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+DQo8aHRtbCBsYW5nPSJlbiI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+DQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPW5vLCB2aWV3cG9ydC1maXQ9Y292ZXIiPg0KICAgIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMDAwMDAwIj4NCiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiPg0KICAgIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGUiIGNvbnRlbnQ9ImJsYWNrLXRyYW5zbHVjZW50Ij4NCiAgICA8dGl0bGU+UGxhdGludW1HbG9iYWxFeGNoYW5nZSB8IENyeXB0byBJbnZlc3RtZW50IFBsYXRmb3JtPC90aXRsZT4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4udGFpbHdpbmRjc3MuY29tIj48L3NjcmlwdD4NCiAgICA8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9SmV0QnJhaW5zK01vbm86d2dodEA0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9mb250LWF3ZXNvbWUvNi40LjAvY3NzL2FsbC5taW4uY3NzIj4NCiAgICA8c3R5bGU+DQogICAgICAgICogeyBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH0NCiAgICAgICAgaHRtbCwgYm9keSB7IGhlaWdodDogMTAwJTsgb3ZlcmZsb3cteDogaGlkZGVuOyBiYWNrZ3JvdW5kOiAjMDAwOyB9DQogICAgICAgIGJvZHkgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGNvbG9yOiB3aGl0ZTsgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTsgfQ0KICAgICAgICAjY3J5cHRvQ2FudmFzIHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IHotaW5kZXg6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lOyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMGEwZTI3IDAlLCAjMDUwNzE0IDUwJSwgIzAwMDAwMCAxMDAlKTsgb3ZlcmZsb3c6IGhpZGRlbjsgfQ0KICAgICAgICAuZ2xvdy1vcmIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvcmRlci1yYWRpdXM6IDUwJTsgZmlsdGVyOiBibHVyKDgwcHgpOyBhbmltYXRpb246IHB1bHNlIDhzIGluZmluaXRlIGVhc2UtaW4tb3V0OyB9DQogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMzsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSA1MCUgeyBvcGFjaXR5OiAwLjU7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfSB9DQogICAgICAgICNiZ0NhbnZhcyB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9DQogICAgICAgICNhcHBDb250YWluZXIgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IG1pbi1oZWlnaHQ6IDEwMHZoOyB9DQogICAgICAgIC5ncmFkaWVudC1iZyB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBwb3NpdGlvbjogcmVsYXRpdmU7IH0NCiAgICAgICAgLmdyYWRpZW50LWJnOjpiZWZvcmUgeyBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBoZWlnaHQ6IDYwdmg7IGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IHRvcCBjZW50ZXIsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjI1KSAwJSwgdHJhbnNwYXJlbnQgNzAlKTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IC0xOyB9DQogICAgICAgIEBrZXlmcmFtZXMgcHVsc2UtZ2xvdyB7IDAlLCAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDIwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9IDUwJSB7IGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTsgfSB9DQogICAgICAgIC5sb2dvLWljb24geyB3aWR0aDogNDhweDsgaGVpZ2h0OiA0OHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZmZmZmLCAjZTVlN2ViKTsgYm9yZGVyLXJhZGl1czogNTAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYW5pbWF0aW9uOiBwdWxzZS1nbG93IDNzIGluZmluaXRlOyBmbGV4LXNocmluazogMDsgfQ0KICAgICAgICAuZmVhdHVyZS1pY29uIHsgd2lkdGg6IDQ0cHg7IGhlaWdodDogNDRweDsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7IGJvcmRlci1yYWRpdXM6IDEycHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXNpemU6IDE4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgZmxleC1zaHJpbms6IDA7IH0NCiAgICAgICAgLmJ0bi1wcmltYXJ5IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZmZmZiAwJSwgI2U1ZTdlYiAxMDAlKTsgY29sb3I6IGJsYWNrOyBib3JkZXItcmFkaXVzOiAyOHB4OyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE3cHg7IHRyYW5zaXRpb246IGFsbCAwLjNzOyBwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IGFwcGVhcmFuY2U6IG5vbmU7IHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9DQogICAgICAgIC5idG4tcHJpbWFyeTphY3RpdmUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpOyB9DQogICAgICAgIC5idG4tc2Vjb25kYXJ5IHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOyBjb2xvcjogd2hpdGU7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgYm9yZGVyLXJhZGl1czogMjhweDsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxN3B4OyB0cmFuc2l0aW9uOiBhbGwgMC4zczsgY3Vyc29yOiBwb2ludGVyOyB9DQogICAgICAgIC5idG4tc2Vjb25kYXJ5OmhvdmVyIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsgfQ0KICAgICAgICAuYWxlcnQtb3ZlcmxheSB7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7IGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpOyB6LWluZGV4OiAxMDAwMDsgZGlzcGxheTogbm9uZTsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IDIwcHg7IH0NCiAgICAgICAgLmFsZXJ0LW92ZXJsYXkuYWN0aXZlIHsgZGlzcGxheTogZmxleDsgfQ0KICAgICAgICAuYWxlcnQtYm94IHsgYmFja2dyb3VuZDogIzFmMjkzNzsgYm9yZGVyLXJhZGl1czogMjBweDsgcGFkZGluZzogMjRweCAyMHB4IDIwcHggMjBweDsgbWF4LXdpZHRoOiAzMjBweDsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjsgYm9yZGVyOiAxcHggc29saWQgIzM3NDE1MTsgfQ0KICAgICAgICAuYWxlcnQtaWNvbiB7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7IGJhY2tncm91bmQ6ICNlZjQ0NDQ7IGJvcmRlci1yYWRpdXM6IDUwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG1hcmdpbjogMCBhdXRvIDE2cHggYXV0bzsgZm9udC1zaXplOiAyNHB4OyBjb2xvcjogd2hpdGU7IH0NCiAgICAgICAgLmFsZXJ0LWJveC5zdWNjZXNzIC5hbGVydC1pY29uIHsgYmFja2dyb3VuZDogIzEwYjk4MTsgfQ0KICAgICAgICAuYWxlcnQtdGl0bGUgeyBmb250LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB3aGl0ZTsgbWFyZ2luLWJvdHRvbTogOHB4OyB9DQogICAgICAgIC5hbGVydC1tZXNzYWdlIHsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzljYTNhZjsgbWFyZ2luLWJvdHRvbTogMjBweDsgbGluZS1oZWlnaHQ6IDEuNDsgfQ0KICAgICAgICAuYWxlcnQtYnRuIHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDEycHggMjBweDsgYm9yZGVyLXJhZGl1czogMTJweDsgYm9yZGVyOiBub25lOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgYmFja2dyb3VuZDogI2ZmZmZmZjsgY29sb3I6IGJsYWNrOyB9DQogICAgICAgIC5pbnB1dC1maWVsZCB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7IGJvcmRlci1yYWRpdXM6IDEycHg7IGNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAxNnB4OyB0cmFuc2l0aW9uOiBhbGwgMC4zczsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDE2cHg7IH0NCiAgICAgICAgLmlucHV0LWZpZWxkOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOyBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9DQogICAgICAgIC5wYXNzd29yZC13cmFwcGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9DQogICAgICAgIC5wYXNzd29yZC13cmFwcGVyIGlucHV0IHsgcGFkZGluZy1yaWdodDogNTBweCAhaW1wb3J0YW50OyB9DQogICAgICAgIC5wYXNzd29yZC10b2dnbGUgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHJpZ2h0OiAxMnB4OyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7IGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogOHB4OyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDZweCA4cHg7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDE7IHotaW5kZXg6IDEwOyB9DQogICAgICAgIC5wYXNzd29yZC10b2dnbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7IGNvbG9yOiB3aGl0ZTsgfQ0KICAgICAgICAubWFpbi1hcHAgeyBkaXNwbGF5OiBub25lOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgbWluLWhlaWdodDogMTAwdmg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgcGFkZGluZy1ib3R0b206IDkwcHg7IH0NCiAgICAgICAgLmdsYXNzIHsgYmFja2dyb3VuZDogcmdiYSgzMSwgNDEsIDU5LCAwLjcpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTVweCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfQ0KICAgICAgICAuY3J5cHRvLWljb24geyB3aWR0aDogNDBweDsgaGVpZ2h0OiA0MHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6IHdoaXRlOyBmbGV4LXNocmluazogMDsgZm9udC1zaXplOiAxOHB4OyBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOyBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjMpOyB9DQogICAgICAgIC5jcnlwdG8taWNvbiBpbWcgeyB3aWR0aDogMjRweDsgaGVpZ2h0OiAyNHB4OyBvYmplY3QtZml0OiBjb250YWluOyB9DQogICAgICAgIC5idGMgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjc5MzFhLCAjZjVhNjIzKTsgfQ0KICAgICAgICAuZXRoIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYyN2VlYSwgIzhjOWVmZik7IH0NCiAgICAgICAgLnVzZHQgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjZhMTdiLCAjNTBjODc4KTsgfQ0KICAgICAgICAudXNkYyB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyNzc1Y2EsICM1YjliZDUpOyB9DQogICAgICAgIC5ibmIgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBiOTBiLCAjZmNkNTM1KTsgY29sb3I6ICMxYTFhMmU7IH0NCiAgICAgICAgLnNvbCB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM5OTQ1ZmYsICMwMGQ0YWEpOyB9DQogICAgICAgIC54cnAgeyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjMyOTJmLCAjM2E0NTU2KTsgfQ0KICAgICAgICAuYWRhIHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwMzNhZCwgIzAwNTFkNSk7IH0NCiAgICAgICAgLnNlY3Rpb24tY29udGVudCB7IGRpc3BsYXk6IG5vbmU7IGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZS1vdXQ7IHBhZGRpbmc6IDE2cHg7IG1heC13aWR0aDogMTIwMHB4OyBtYXJnaW46IDAgYXV0bzsgfQ0KICAgICAgICAuc2VjdGlvbi1jb250ZW50LmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9DQogICAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9DQogICAgICAgIEBrZXlmcmFtZXMgdGlja2VyU2Nyb2xsIHsgMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9DQogICAgICAgIEBrZXlmcmFtZXMgc2xpZGVJblVwIHsgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfSB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9DQogICAgICAgIEBrZXlmcmFtZXMgc2hpbW1lciB7IDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfSAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwOyB9IH0NCiAgICAgICAgLm5ld3MtY2FyZCB7IGFuaW1hdGlvbjogc2xpZGVJblVwIDAuNHMgZWFzZS1vdXQgYm90aDsgfQ0KICAgICAgICAubmV3cy1jYXJkOm50aC1jaGlsZCgxKSB7IGFuaW1hdGlvbi1kZWxheTogMC4wNXM7IH0NCiAgICAgICAgLm5ld3MtY2FyZDpudGgtY2hpbGQoMikgeyBhbmltYXRpb24tZGVsYXk6IDAuMTJzOyB9DQogICAgICAgIC5uZXdzLWNhcmQ6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjE5czsgfQ0KICAgICAgICAubmV3cy1jYXJkOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC4yNnM7IH0NCiAgICAgICAgLm5ld3MtY2FyZDpudGgtY2hpbGQoNSkgeyBhbmltYXRpb24tZGVsYXk6IDAuMzNzOyB9DQogICAgICAgIC5ib3R0b20tbmF2IHsgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOTUpOyBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IHotaW5kZXg6IDEwMDsgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTsgfQ0KICAgICAgICAuYm90dG9tLW5hdi1pdGVtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IDhweCA0cHg7IGNvbG9yOiAjNmI3MjgwOyB0cmFuc2l0aW9uOiBhbGwgMC4zczsgZm9udC1zaXplOiAxMXB4OyBnYXA6IDRweDsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IGZsZXg6IDE7IH0NCiAgICAgICAgLmJvdHRvbS1uYXYtaXRlbS5hY3RpdmUgeyBjb2xvcjogI2ZmZmZmZjsgfQ0KICAgICAgICAuYm90dG9tLW5hdi1pdGVtIGkgeyBmb250LXNpemU6IDIwcHg7IH0NCiAgICAgICAgLmNyeXB0by1saXN0LWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAxNnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7IH0NCiAgICAgICAgLmNyeXB0by1saXN0LWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyB9DQogICAgICAgIC5jcnlwdG8tbGlzdC1pdGVtOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9DQogICAgICAgIC50cmVuZC11cCB7IGNvbG9yOiAjMTBiOTgxOyB9DQogICAgICAgIC50cmVuZC1kb3duIHsgY29sb3I6ICNlZjQ0NDQ7IH0NCiAgICAgICAgLm1vZGFsIHsgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsgei1pbmRleDogMTAwMDsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7IH0NCiAgICAgICAgLm1vZGFsLmFjdGl2ZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9DQogICAgICAgIC5mbG9hdGluZy1jaGF0LWJ0biB7IHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiA5MHB4OyByaWdodDogMjBweDsgd2lkdGg6IDU2cHg7IGhlaWdodDogNTZweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB3aGl0ZTsgY29sb3I6IGJsYWNrOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZm9udC1zaXplOiAyNHB4OyBjdXJzb3I6IGdyYWI7IHotaW5kZXg6IDIwMDsgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsMCwwLDAuMyk7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cywgYm94LXNoYWRvdyAwLjE1czsgdXNlci1zZWxlY3Q6IG5vbmU7IC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IHRvdWNoLWFjdGlvbjogbm9uZTsgfQ0KICAgICAgICAuZmxvYXRpbmctY2hhdC1idG46aG92ZXIgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpOyBib3gtc2hhZG93OiAwIDZweCAyNHB4IHJnYmEoMCwwLDAsMC40KTsgfQ0KICAgICAgICAuZmxvYXRpbmctY2hhdC1idG4uZHJhZ2dpbmcgeyBjdXJzb3I6IGdyYWJiaW5nOyB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpOyBib3gtc2hhZG93OiAwIDhweCAzMHB4IHJnYmEoMCwwLDAsMC41KTsgei1pbmRleDogOTk5OTsgfQ0KICAgICAgICAuZmxvYXRpbmctY2hhdC1iYWRnZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtNHB4OyByaWdodDogLTRweDsgYmFja2dyb3VuZDogI2VmNDQ0NDsgY29sb3I6IHdoaXRlOyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiBib2xkOyB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9DQogICAgICAgIC5jaGF0LW1zZy1ndWVzdCB7IGJhY2tncm91bmQ6ICMzNzQxNTE7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDJweCAxMnB4OyB9DQogICAgICAgIC5jaGF0LW1zZy1hZG1pbiB7IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzYjgyZjYgMCUsICM2MzY2ZjEgMTAwJSk7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDEycHggMnB4OyB9DQogICAgICAgIC5jaGF0LW1zZy1hZG1pbiAudGV4dC1ncmF5LTUwMCB7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNikgIWltcG9ydGFudDsgfQ0KICAgICAgICAuY2hhdC1ndWVzdC1mb3JtIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzNzQxNTE7IHBhZGRpbmctYm90dG9tOiAxMnB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OyB9DQogICAgICAgIC5vcmRlci1ib29rLXJvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciAxZnI7IHBhZGRpbmc6IDRweCA4cHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1mYW1pbHk6ICdKZXRCcmFpbnMgTW9ubycsIG1vbm9zcGFjZTsgfQ0KICAgICAgICAub3JkZXItYm9vay1zZWxsIHsgY29sb3I6ICNlZjQ0NDQ7IH0NCiAgICAgICAgLm9yZGVyLWJvb2stYnV5IHsgY29sb3I6ICMxMGI5ODE7IH0NCiAgICAgICAgLmNoYXJ0LWNvbnRhaW5lciB7IGhlaWdodDogMjAwcHg7IGJhY2tncm91bmQ6IHJnYmEoMzEsIDQxLCA1OSwgMC41KTsgYm9yZGVyLXJhZGl1czogMTJweDsgcGFkZGluZzogMTZweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQ0KICAgICAgICAudGltZS1zZWxlY3RvciB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBtYXJnaW4tdG9wOiAxMnB4OyB9DQogICAgICAgIC50aW1lLWJ0biB7IHBhZGRpbmc6IDZweCAxMnB4OyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogMXB4IHNvbGlkICMzNzQxNTE7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogIzljYTNhZjsgZm9udC1zaXplOiAxMnB4OyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGFsbCAwLjJzOyB9DQogICAgICAgIC50aW1lLWJ0bi5hY3RpdmUgeyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyBjb2xvcjogYmxhY2s7IGJvcmRlci1jb2xvcjogI2ZmZmZmZjsgfQ0KICAgICAgICAubGV2ZXJhZ2Utc2xpZGVyIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGJhY2tncm91bmQ6ICMzNzQxNTE7IG91dGxpbmU6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfQ0KICAgICAgICAubGV2ZXJhZ2Utc2xpZGVyOjotd2Via2l0LXNsaWRlci10aHVtYiB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyBjdXJzb3I6IHBvaW50ZXI7IH0NCiAgICAgICAgLnRhYi1idG4geyBwYWRkaW5nOiAxMnB4IDI0cHg7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjOWNhM2FmOyBmb250LXdlaWdodDogNjAwOyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDsgdHJhbnNpdGlvbjogYWxsIDAuMnM7IH0NCiAgICAgICAgLnRhYi1idG4uYWN0aXZlIHsgY29sb3I6ICNmZmZmZmY7IGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmZmZmY7IH0NCiAgICAgICAgLnRyYWRlLW1haW4tdGFiIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjOWNhM2FmOyBib3JkZXI6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsgfQ0KICAgICAgICAudHJhZGUtbWFpbi10YWIuYWN0aXZlIHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgY29sb3I6ICMwMDAwMDA7IH0NCiAgICAgICAgLnRyYWRlLXBhbmVsIHsgZGlzcGxheTogbm9uZTsgYW5pbWF0aW9uOiBmYWRlSW4gMC4zcyBlYXNlLW91dDsgfQ0KICAgICAgICAudHJhZGUtcGFuZWwuYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH0NCiAgICAgICAgLnRyYWRlLWJ0bi1idXkgeyBiYWNrZ3JvdW5kOiAjMTBiOTgxOyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDE2cHg7IGJvcmRlci1yYWRpdXM6IDEycHg7IGJvcmRlcjogbm9uZTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNnB4OyBjdXJzb3I6IHBvaW50ZXI7IHdpZHRoOiAxMDAlOyB9DQogICAgICAgIC50cmFkZS1idG4tc2VsbCB7IGJhY2tncm91bmQ6ICNlZjQ0NDQ7IGNvbG9yOiB3aGl0ZTsgcGFkZGluZzogMTZweDsgYm9yZGVyLXJhZGl1czogMTJweDsgYm9yZGVyOiBub25lOyBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsgd2lkdGg6IDEwMCU7IH0NCiAgICAgICAgLnBvc2l0aW9uLWxvbmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKTsgYm9yZGVyOiAxcHggc29saWQgIzEwYjk4MTsgY29sb3I6ICMxMGI5ODE7IH0NCiAgICAgICAgLnBvc2l0aW9uLXNob3J0IHsgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTsgYm9yZGVyOiAxcHggc29saWQgI2VmNDQ0NDsgY29sb3I6ICNlZjQ0NDQ7IH0NCiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7IC5zZWN0aW9uLWNvbnRlbnQgeyBwYWRkaW5nOiAyNHB4OyB9IC5ib3R0b20tbmF2IHsgZGlzcGxheTogbm9uZTsgfSAubWFpbi1hcHAgeyBwYWRkaW5nLWJvdHRvbTogMDsgfSAuZmxvYXRpbmctY2hhdC1idG4geyBib3R0b206IDIwcHg7IHotaW5kZXg6IDIwMDsgfSB9DQogICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgeyAuZGVza3RvcC1vbmx5IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH0NCiAgICA8L3N0eWxlPg0KPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPg0KPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPg0KPGJhc2UgdGFyZ2V0PSJfYmxhbmsiPg0KPC9oZWFkPg0KPGJvZHk+DQogICAgPGRpdiBpZD0iY3J5cHRvQ2FudmFzIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IGJhY2tncm91bmQ6ICMzYjgyZjY7IHRvcDogLTEwMHB4OyBsZWZ0OiAtMTAwcHg7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogMzAwcHg7IGJhY2tncm91bmQ6ICM4YjVjZjY7IHRvcDogMjAlOyByaWdodDogLTUwcHg7IGFuaW1hdGlvbi1kZWxheTogMnM7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogMzUwcHg7IGhlaWdodDogMzUwcHg7IGJhY2tncm91bmQ6ICMwNmI2ZDQ7IGJvdHRvbTogMTAlOyBsZWZ0OiAxMCU7IGFuaW1hdGlvbi1kZWxheTogNHM7Ij48L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZ2xvdy1vcmIiIHN0eWxlPSJ3aWR0aDogMjUwcHg7IGhlaWdodDogMjUwcHg7IGJhY2tncm91bmQ6ICNmNTllMGI7IGJvdHRvbTogMjAlOyByaWdodDogMjAlOyBhbmltYXRpb24tZGVsYXk6IDFzOyI+PC9kaXY+DQogICAgICAgIDxjYW52YXMgaWQ9ImJnQ2FudmFzIj48L2NhbnZhcz4NCiAgICA8L2Rpdj4NCg0KICAgIDxkaXYgaWQ9ImFwcENvbnRhaW5lciI+DQogICAgICAgIDxkaXYgaWQ9ImN1c3RvbUFsZXJ0IiBjbGFzcz0iYWxlcnQtb3ZlcmxheSI+DQogICAgICAgICAgICA8ZGl2IGlkPSJhbGVydEJveCIgY2xhc3M9ImFsZXJ0LWJveCI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQtaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbiI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFsZXJ0LXRpdGxlIiBpZD0iYWxlcnRUaXRsZSI+RXJyb3I8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGVydC1tZXNzYWdlIiBpZD0iYWxlcnRNZXNzYWdlIj5JbnZhbGlkIGNyZWRlbnRpYWxzPC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYWxlcnQtYnRuIiBvbmNsaWNrPSJjbG9zZUFsZXJ0KCkiPk9LPC9idXR0b24+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0ibGFuZGluZ1BhZ2UiIGNsYXNzPSJncmFkaWVudC1iZyBtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwdC0xMiBweC02IGZsZXggaXRlbXMtY2VudGVyIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtY3ViZSB0ZXh0LWJsYWNrIHRleHQteGwiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibWwtMyB0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1sZyB0cmFja2luZy13aWRlIj5QbGF0aW51bUdsb2JhbEV4Y2hhbmdlPC9zcGFuPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcHgtNiBwdC0xMiBwYi04IGZsZXggZmxleC1jb2wiPg0KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0idGV4dC00eGwgc206dGV4dC01eGwgZm9udC1zZXJpZiBsZWFkaW5nLXRpZ2h0IG1iLTgiIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmOyI+UHJvZmVzc2lvbmFsIGludmVzdG1lbnQgc29sdXRpb25zIGZvciBzZXJpb3VzIGludmVzdG9yczwvaDE+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS01IG1iLWF1dG8iPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTQiPjxkaXYgY2xhc3M9ImZlYXR1cmUtaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1sYXllci1ncm91cCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC1sZyBmb250LW1lZGl1bSI+TXVsdGktQXNzZXQgSW52ZXN0aW5nPC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTQiPjxkaXYgY2xhc3M9ImZlYXR1cmUtaWNvbiI+PGkgY2xhc3M9ImZhcyBmYS1hcnJvdy10cmVuZC11cCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC1sZyBmb250LW1lZGl1bSI+SW5kdXN0cnktTGVhZGluZyBZaWVsZHM8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIHNwYWNlLXgtNCI+PGRpdiBjbGFzcz0iZmVhdHVyZS1pY29uIj48aSBjbGFzcz0iZmFzIGZhLXdhbmQtbWFnaWMtc3BhcmtsZXMgdGV4dC13aGl0ZSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1tZWRpdW0iPjJYLVBvd2VyZWQgQXV0b21hdGlvbjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC00Ij48ZGl2IGNsYXNzPSJmZWF0dXJlLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtaGVhcnQgdGV4dC13aGl0ZSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1tZWRpdW0iPkF3YXJkLVdpbm5pbmcgU3VwcG9ydDwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gVHJhZGUgT3B0aW9ucyBQcm9tbyBTZWN0aW9uIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSBtdC04IG1iLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDYsNzgsNTksMC4zKSAwJSwgcmdiYSgxNywyNCwzOSwwLjYpIDUwJSwgcmdiYSg2LDc4LDU5LDAuMikgMTAwJSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoOTQsMjM0LDIxMiwwLjE1KTsiPg0KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtM3hsIHNtOnRleHQtNHhsIGxlYWRpbmctdGlnaHQgbWItMSIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmOyBjb2xvcjogI2ZmZmZmZjsiPlRyYWRlIG9wdGlvbnMuPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LTN4bCBzbTp0ZXh0LTR4bCBsZWFkaW5nLXRpZ2h0IG1iLTQiIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjsgY29sb3I6ICM1ZWVhZDQ7Ij5FYXJuIHJlYmF0ZXMuPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS0zMDAgdGV4dC1zbSBsZWFkaW5nLXJlbGF4ZWQgbWItNSI+QWR2YW5jZWQgdG9vbHMsIHplcm8gY29tbWlzc2lvbnMsIGFuZCByZWJhdGVzIG9uIHlvdXIgdHJhZGVzLiBQcm9mZXNzaW9uYWwtZ3JhZGUgY2hhcnRpbmcgd2l0aCByZWFsLXRpbWUgbWFya2V0IGRhdGEuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlbiBiZy1ncmF5LTkwMC82MCBib3JkZXIgYm9yZGVyLWdyYXktNzAwLzQwIHNoYWRvdy1pbm5lciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2NDI3OTAxMDYxMTctZTgyOWUxNGE3OTVmP3c9ODAwJmg9NDgwJmZpdD1jcm9wJnE9ODAiIGFsdD0iVHJhZGluZyBEYXNoYm9hcmQiIGNsYXNzPSJ3LWZ1bGwgaC1hdXRvIG9iamVjdC1jb3ZlciIgbG9hZGluZz0ibGF6eSIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ij4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im10LTUgdGV4dC1jZW50ZXIgcGItMiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCBzbTp0ZXh0LTJ4bCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmOyBjb2xvcjogI2ZmZmZmZjsiPkRvbid0IG1pc3MgeW91ciBjcnlwdG8gcmV3YXJkcy48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCBzbTp0ZXh0LTJ4bCIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgVGltZXMsIHNlcmlmOyBjb2xvcjogIzVlZWFkNDsiPkNhcHR1cmUgZXZlcnkgb3Bwb3J0dW5pdHkuPC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gV2h5IFBsYXRpbnVtRXggU2VjdGlvbiAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdC04IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtM3hsIHNtOnRleHQtNHhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTYiIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjsiPldoeSBQbGF0aW51bUV4PzwvaDI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ncmF5LTMwMCB0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCI+UGxhdGludW1FeCBpcyBidWlsdCBmb3IgYSBkaXZlcnNlIGNvbW11bml0eSBvZiBpbmRpdmlkdWFscywgcHJvZmVzc2lvbmFscywgYW5kIGluc3RpdHV0aW9ucyB3aG8gc2hhcmUgb25lIGdvYWw6IHRvIG1vdmUgY29uZmlkZW50bHkgd2l0aGluIHRoZSBkaWdpdGFsIGVjb25vbXkuIEFjcm9zcyA8c3Ryb25nIGNsYXNzPSJ0ZXh0LXdoaXRlIj4xODUrIGNvdW50cmllczwvc3Ryb25nPiwgd2UgZW1wb3dlciBhbnlvbmUgZnJvbSBmaXJzdC10aW1lIHVzZXJzIHRvIGhpZ2gtdm9sdW1lIHRyYWRlcnMgYW5kIGdsb2JhbCBidXNpbmVzc2VzIHRvIGFjY2VzcywgbWFuYWdlLCBhbmQgZ3JvdyB0aGVpciBkaWdpdGFsIHdlYWx0aCB3aXRoIGVhc2UgYW5kIHRydXN0LjwvcD4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWxnIGJnLWVtZXJhbGQtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAgbXQtMC41Ij48aSBjbGFzcz0iZmFzIGZhLXVzZXItY2hlY2sgdGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+Rm9yIEJlZ2lubmVycyAmIEVudGh1c2lhc3RzPC9wPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIj5Gb3IgYmVnaW5uZXJzIGFuZCBzZWFzb25lZCBjcnlwdG8gZW50aHVzaWFzdHMsIHdlIHByb3ZpZGUgYSBzZWN1cmUsIGd1aWRlZCBlbnRyeSBwb2ludCBpbnRvIHRoZSB3b3JsZCBvZiBkaWdpdGFsIGFzc2V0cy4gRmFzdCBpZGVudGl0eSB2ZXJpZmljYXRpb24gKEtZQykgbGV0cyBuZXcgcGFydGljaXBhbnRzIHN0YXJ0IHRyYWRpbmcgd2l0aGluIG1pbnV0ZXMsIHdoaWxlIGluc3RhbnQgY3J5cHRvIGRlcG9zaXRzIGFuZCB3aXRoZHJhd2FscyBtYWtlIGl0IGVmZm9ydGxlc3MgdG8gbW92ZSBmdW5kcyBiZXR3ZWVuIHdhbGxldHMgYW5kIGV4Y2hhbmdlcy48L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWxnIGJnLWJsdWUtNTAwLzIwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAgbXQtMC41Ij48aSBjbGFzcz0iZmFzIGZhLW1vYmlsZS1hbHQgdGV4dC1ibHVlLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+VHJhZGUgT24gVGhlIEdvPC9wPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIj5XaXRoIHRoZSBQbGF0aW51bUV4IGVsaWdpYmxlIHVzZXJzIGNhbiBidXksIHNlbGwsIGNvbnZlcnQsIHRyYWRlLCBhbmQgdHJhY2sgY3J5cHRvIG9uIHRoZSBnbywgc2V0IHByaWNlIGFsZXJ0cywgYW5kIG1hbmFnZSBwb3J0Zm9saW9zIGZyb20gYSBzaW5nbGUgZGFzaGJvYXJkLCB3aXRob3V0IGNvbXBsZXggdG9vbHMgb3IgcHJpb3IgZXhwZXJpZW5jZS48L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiIHN0eWxlPSJiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWxnIGJnLXB1cnBsZS01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCBtdC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IHRleHQtcHVycGxlLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+RnJlZWxhbmNlcnMgJiBFbnRyZXByZW5ldXJzPC9wPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIj5GcmVlbGFuY2VycyBhbmQgZW50cmVwcmVuZXVycyB3aG8gcmVjZWl2ZSBjcnlwdG8gcGF5bWVudHMgY2FuIHJlbHkgb24gb3VyIGZyZWUgQ3J5cHRvICYgQml0Y29pbiBXYWxsZXQsIGEgc2VjdXJlIGFuZCBpbnR1aXRpdmUgc3BhY2UgdG8gc3RvcmUsIGNvbnZlcnQsIGFuZCB3aXRoZHJhdyBmdW5kcyB0byBmaWF0LiBXaXRoaW4gb3VyIGVjb3N5c3RlbSwgemVyby1mZWUgdHJhbnNmZXJzIGJldHdlZW4gUGxhdGludW1FeCBhY2NvdW50cyBlbmFibGUgaW5zdGFudCBwZWVyLXRvLXBlZXIgcGF5bWVudHMgYW5kIGJ1c2luZXNzIHNldHRsZW1lbnRzLCBlbGltaW5hdGluZyBibG9ja2NoYWluIGZlZXMgYW5kIHdhaXRpbmcgdGltZXMuPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IiBzdHlsZT0iYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjAzKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMiPjxkaXYgY2xhc3M9InctOCBoLTggcm91bmRlZC1sZyBiZy1hbWJlci01MDAvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCBtdC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtbGluZSB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc20gbWItMSI+UHJvZmVzc2lvbmFsIFRyYWRlcnMgJiBJbnN0aXR1dGlvbnM8L3A+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQiPlByb2Zlc3Npb25hbCB0cmFkZXJzIGFuZCBpbnN0aXR1dGlvbnMgbWF5IHRha2UgYWR2YW50YWdlIG9mIGRlZXAgbGlxdWlkaXR5LCB0aWdodCBzcHJlYWRzLCBhbmQgYWR2YW5jZWQgdHJhZGluZyB0b29scywgaW5jbHVkaW5nIFNwb3QgYW5kIE1hcmdpbiBUcmFkaW5nIHdpdGggdXAgdG8gMjB4IGxldmVyYWdlLiBXaXRoIHNlYW1sZXNzIGZpYXQgb24tIGFuZCBvZmYtcmFtcHMgYWNyb3NzIHRoZSBVUyBhbmQgRVUsIGluY2x1ZGluZyBTRVBBLCBTV0lGVCwgRmFzdGVyIFBheW1lbnRzLCBhbmQgbWFqb3IgY2FyZCBuZXR3b3JrcywgdXNlcnMgZW5qb3kgZmFzdCBhbmQgcmVsaWFibGUgdHJhbnNhY3Rpb25zIHdoZXJldmVyIHRoZXkgb3BlcmF0ZS48L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC00IHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwLzEwIHRvLWJsdWUtNjAwLzEwIGJvcmRlciBib3JkZXItZW1lcmFsZC01MDAvMTUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgtc2hyaW5rLTAgdy0xMCBoLTEwIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNTAwIHRvLWJsdWUtNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLXNoaWVsZC1oYWx2ZWQgdGV4dC13aGl0ZSB0ZXh0LXNtIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtZ3JheS0zMDAgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQiPkJhY2tlZCBieSA8c3Ryb25nIGNsYXNzPSJ0ZXh0LXdoaXRlIj5GaW5DRU4gTVNCIHJlZ2lzdHJhdGlvbjwvc3Ryb25nPiBpbiB0aGUgVVMgYW5kIDxzdHJvbmcgY2xhc3M9InRleHQtd2hpdGUiPlBDSSBEU1MgTGV2ZWwgMTwvc3Ryb25nPiBjZXJ0aWZpY2F0aW9uIHJlY29nbml6ZWQgZ2xvYmFsbHksIFBsYXRpbnVtRXggY29tYmluZXMgcmVndWxhdG9yeSB0cnVzdCwgcGVyZm9ybWFuY2UsIGFuZCBjb252ZW5pZW5jZSB0byBlbXBvd2VyIHVzZXJzIGFjcm9zcyBib3RoIEV1cm9wZWFuIGFuZCBBbWVyaWNhbiBtYXJrZXRzLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMyBtdC04Ij4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93QXV0aCgncmVnaXN0ZXInKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS00Ij5HZXQgU3RhcnRlZDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dBdXRoKCdsb2dpbicpIiBjbGFzcz0iYnRuLXNlY29uZGFyeSB3LWZ1bGwgcHktNCI+TG9nIGluPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYXV0aFNjcmVlbiIgY2xhc3M9ImF1dGgtc2NyZWVuIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgbWluLWhlaWdodDogMTAwdmg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTYiPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIj48ZGl2IGNsYXNzPSJsb2dvLWljb24iPjxpIGNsYXNzPSJmYXMgZmEtY3ViZSB0ZXh0LWJsYWNrIHRleHQteGwiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0ibWwtMyB0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1sZyI+UGxhdGludW1HbG9iYWxFeGNoYW5nZTwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dMYW5kaW5nKCkiIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtMnhsIHAtMiI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4LTEgcHgtNiBwYi04Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtNiBtYi04IGJvcmRlci1iIGJvcmRlci1ncmF5LTgwMCI+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic3dpdGNoQXV0aCgnbG9naW4nKSIgaWQ9ImxvZ2luVGFiIiBjbGFzcz0idGFiLWJ0biBhY3RpdmUiPkxvZyBpbjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InN3aXRjaEF1dGgoJ3JlZ2lzdGVyJykiIGlkPSJyZWdpc3RlclRhYiIgY2xhc3M9InRhYi1idG4iPlNpZ24gdXA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8Zm9ybSBpZD0ibG9naW5Gb3JtIiBjbGFzcz0ic3BhY2UteS01IiBvbnN1Ym1pdD0icmV0dXJuIGhhbmRsZUxvZ2luKGV2ZW50KSI+DQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImxvZ2luRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCIgcGxhY2Vob2xkZXI9IkVtYWlsIGFkZHJlc3MiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0iZW1haWwiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC13cmFwcGVyIj48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJsb2dpblBhc3N3b3JkIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgcmVxdWlyZWQgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ2xvZ2luUGFzc3dvcmQnLCB0aGlzKSI+PGkgY2xhc3M9ImZhcyBmYS1leWUiPjwvaT48L2J1dHRvbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibG9naW5FcnJvciIgY2xhc3M9ImhpZGRlbiB0ZXh0LXJvc2UtNDAwIHRleHQtc20gZm9udC1tZWRpdW0gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpIGNsYXNzPSJmYXMgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGUiPjwvaT48c3Bhbj5JbnZhbGlkIGxvZ2luIGNyZWRlbnRpYWxzLiBQbGVhc2UgdHJ5IGFnYWluLjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBzcGFjZS14LTMiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImtlZXBTaWduZWRJbiIgY2xhc3M9Im10LTEgdy01IGgtNSByb3VuZGVkIGJnLWdyYXktODAwIGJvcmRlci1ncmF5LTYwMCI+PGxhYmVsIGZvcj0ia2VlcFNpZ25lZEluIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj5LZWVwIG1lIHNpZ25lZCBpbiBmb3IgNDggaG91cnM8L2xhYmVsPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgaWQ9ImxvZ2luQnRuIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTQiPkxvZyBpbjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciI+PGEgaHJlZj0iL2ZvcmdldHBhc3N3b3JkIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPkZvcmdvdCBwYXNzd29yZD88L2E+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJyZWdpc3RlckZvcm0iIGNsYXNzPSJzcGFjZS15LTUgaGlkZGVuIiBvbnN1Ym1pdD0icmV0dXJuIGhhbmRsZVJlZ2lzdGVyKGV2ZW50KSI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTQiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVnRmlyc3ROYW1lIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJGaXJzdCBuYW1lIiByZXF1aXJlZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlZ0xhc3ROYW1lIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJMYXN0IG5hbWUiIHJlcXVpcmVkPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJyZWdDb3VudHJ5IiBjbGFzcz0iaW5wdXQtZmllbGQiIHJlcXVpcmVkIG9uY2hhbmdlPSJ1cGRhdGVDb3VudHJ5Q29kZSh0aGlzLnZhbHVlKSI+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIiPlNlbGVjdCB5b3VyIGNvdW50cnk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVTIiBkYXRhLWNvZGU9IisxIj5Vbml0ZWQgU3RhdGVzICgrMSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNBIiBkYXRhLWNvZGU9IisxIj5DYW5hZGEgKCsxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR0IiIGRhdGEtY29kZT0iKzQ0Ij5Vbml0ZWQgS2luZ2RvbSAoKzQ0KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQVUiIGRhdGEtY29kZT0iKzYxIj5BdXN0cmFsaWEgKCs2MSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRFIiBkYXRhLWNvZGU9Iis0OSI+R2VybWFueSAoKzQ5KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRlIiIGRhdGEtY29kZT0iKzMzIj5GcmFuY2UgKCszMyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklUIiBkYXRhLWNvZGU9IiszOSI+SXRhbHkgKCszOSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVTIiBkYXRhLWNvZGU9IiszNCI+U3BhaW4gKCszNCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5MIiBkYXRhLWNvZGU9IiszMSI+TmV0aGVybGFuZHMgKCszMSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJFIiBkYXRhLWNvZGU9IiszMiI+QmVsZ2l1bSAoKzMyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ0giIGRhdGEtY29kZT0iKzQxIj5Td2l0emVybGFuZCAoKzQxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQVQiIGRhdGEtY29kZT0iKzQzIj5BdXN0cmlhICgrNDMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTRSIgZGF0YS1jb2RlPSIrNDYiPlN3ZWRlbiAoKzQ2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTk8iIGRhdGEtY29kZT0iKzQ3Ij5Ob3J3YXkgKCs0Nyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRLIiBkYXRhLWNvZGU9Iis0NSI+RGVubWFyayAoKzQ1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRkkiIGRhdGEtY29kZT0iKzM1OCI+RmlubGFuZCAoKzM1OCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklFIiBkYXRhLWNvZGU9IiszNTMiPklyZWxhbmQgKCszNTMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQVCIgZGF0YS1jb2RlPSIrMzUxIj5Qb3J0dWdhbCAoKzM1MSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdSIiBkYXRhLWNvZGU9IiszMCI+R3JlZWNlICgrMzApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQTCIgZGF0YS1jb2RlPSIrNDgiPlBvbGFuZCAoKzQ4KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ1oiIGRhdGEtY29kZT0iKzQyMCI+Q3plY2ggUmVwdWJsaWMgKCs0MjApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIVSIgZGF0YS1jb2RlPSIrMzYiPkh1bmdhcnkgKCszNik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJPIiBkYXRhLWNvZGU9Iis0MCI+Um9tYW5pYSAoKzQwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQkciIGRhdGEtY29kZT0iKzM1OSI+QnVsZ2FyaWEgKCszNTkpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIUiIgZGF0YS1jb2RlPSIrMzg1Ij5Dcm9hdGlhICgrMzg1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0siIGRhdGEtY29kZT0iKzQyMSI+U2xvdmFraWEgKCs0MjEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTSSIgZGF0YS1jb2RlPSIrMzg2Ij5TbG92ZW5pYSAoKzM4Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxUIiBkYXRhLWNvZGU9IiszNzAiPkxpdGh1YW5pYSAoKzM3MCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxWIiBkYXRhLWNvZGU9IiszNzEiPkxhdHZpYSAoKzM3MSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVFIiBkYXRhLWNvZGU9IiszNzIiPkVzdG9uaWEgKCszNzIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMVSIgZGF0YS1jb2RlPSIrMzUyIj5MdXhlbWJvdXJnICgrMzUyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTVQiIGRhdGEtY29kZT0iKzM1NiI+TWFsdGEgKCszNTYpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDWSIgZGF0YS1jb2RlPSIrMzU3Ij5DeXBydXMgKCszNTcpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJUyIgZGF0YS1jb2RlPSIrMzU0Ij5JY2VsYW5kICgrMzU0KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSlAiIGRhdGEtY29kZT0iKzgxIj5KYXBhbiAoKzgxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS1IiIGRhdGEtY29kZT0iKzgyIj5Tb3V0aCBLb3JlYSAoKzgyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ04iIGRhdGEtY29kZT0iKzg2Ij5DaGluYSAoKzg2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSU4iIGRhdGEtY29kZT0iKzkxIj5JbmRpYSAoKzkxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0ciIGRhdGEtY29kZT0iKzY1Ij5TaW5nYXBvcmUgKCs2NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhLIiBkYXRhLWNvZGU9Iis4NTIiPkhvbmcgS29uZyAoKzg1Mik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1ZIiBkYXRhLWNvZGU9Iis2MCI+TWFsYXlzaWEgKCs2MCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRIIiBkYXRhLWNvZGU9Iis2NiI+VGhhaWxhbmQgKCs2Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklEIiBkYXRhLWNvZGU9Iis2MiI+SW5kb25lc2lhICgrNjIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQSCIgZGF0YS1jb2RlPSIrNjMiPlBoaWxpcHBpbmVzICgrNjMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWTiIgZGF0YS1jb2RlPSIrODQiPlZpZXRuYW0gKCs4NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFFIiBkYXRhLWNvZGU9Iis5NzEiPlVuaXRlZCBBcmFiIEVtaXJhdGVzICgrOTcxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU0EiIGRhdGEtY29kZT0iKzk2NiI+U2F1ZGkgQXJhYmlhICgrOTY2KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUUEiIGRhdGEtY29kZT0iKzk3NCI+UWF0YXIgKCs5NzQpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLVyIgZGF0YS1jb2RlPSIrOTY1Ij5LdXdhaXQgKCs5NjUpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCSCIgZGF0YS1jb2RlPSIrOTczIj5CYWhyYWluICgrOTczKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT00iIGRhdGEtY29kZT0iKzk2OCI+T21hbiAoKzk2OCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklMIiBkYXRhLWNvZGU9Iis5NzIiPklzcmFlbCAoKzk3Mik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRSIiBkYXRhLWNvZGU9Iis5MCI+VHVya2V5ICgrOTApPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCUiIgZGF0YS1jb2RlPSIrNTUiPkJyYXppbCAoKzU1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQVIiIGRhdGEtY29kZT0iKzU0Ij5BcmdlbnRpbmEgKCs1NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNMIiBkYXRhLWNvZGU9Iis1NiI+Q2hpbGUgKCs1Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNPIiBkYXRhLWNvZGU9Iis1NyI+Q29sb21iaWEgKCs1Nyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBFIiBkYXRhLWNvZGU9Iis1MSI+UGVydSAoKzUxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVkUiIGRhdGEtY29kZT0iKzU4Ij5WZW5lenVlbGEgKCs1OCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVZIiBkYXRhLWNvZGU9Iis1OTgiPlVydWd1YXkgKCs1OTgpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQWSIgZGF0YS1jb2RlPSIrNTk1Ij5QYXJhZ3VheSAoKzU5NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJPIiBkYXRhLWNvZGU9Iis1OTEiPkJvbGl2aWEgKCs1OTEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFQyIgZGF0YS1jb2RlPSIrNTkzIj5FY3VhZG9yICgrNTkzKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTVgiIGRhdGEtY29kZT0iKzUyIj5NZXhpY28gKCs1Mik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBBIiBkYXRhLWNvZGU9Iis1MDciPlBhbmFtYSAoKzUwNyk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNSIiBkYXRhLWNvZGU9Iis1MDYiPkNvc3RhIFJpY2EgKCs1MDYpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHVCIgZGF0YS1jb2RlPSIrNTAyIj5HdWF0ZW1hbGEgKCs1MDIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJITiIgZGF0YS1jb2RlPSIrNTA0Ij5Ib25kdXJhcyAoKzUwNCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNWIiBkYXRhLWNvZGU9Iis1MDMiPkVsIFNhbHZhZG9yICgrNTAzKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTkkiIGRhdGEtY29kZT0iKzUwNSI+TmljYXJhZ3VhICgrNTA1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRE8iIGRhdGEtY29kZT0iKzEiPkRvbWluaWNhbiBSZXB1YmxpYyAoKzEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKTSIgZGF0YS1jb2RlPSIrMSI+SmFtYWljYSAoKzEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCUyIgZGF0YS1jb2RlPSIrMSI+QmFoYW1hcyAoKzEpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCQiIgZGF0YS1jb2RlPSIrMSI+QmFyYmFkb3MgKCsxKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVFQiIGRhdGEtY29kZT0iKzEiPlRyaW5pZGFkICYgVG9iYWdvICgrMSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5aIiBkYXRhLWNvZGU9Iis2NCI+TmV3IFplYWxhbmQgKCs2NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZKIiBkYXRhLWNvZGU9Iis2NzkiPkZpamkgKCs2NzkpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQRyIgZGF0YS1jb2RlPSIrNjc1Ij5QYXB1YSBOZXcgR3VpbmVhICgrNjc1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUlUiIGRhdGEtY29kZT0iKzciPlJ1c3NpYSAoKzcpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVQSIgZGF0YS1jb2RlPSIrMzgwIj5Va3JhaW5lICgrMzgwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQlkiIGRhdGEtY29kZT0iKzM3NSI+QmVsYXJ1cyAoKzM3NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1EIiBkYXRhLWNvZGU9IiszNzMiPk1vbGRvdmEgKCszNzMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHRSIgZGF0YS1jb2RlPSIrOTk1Ij5HZW9yZ2lhICgrOTk1KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQU0iIGRhdGEtY29kZT0iKzM3NCI+QXJtZW5pYSAoKzM3NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFaIiBkYXRhLWNvZGU9Iis5OTQiPkF6ZXJiYWlqYW4gKCs5OTQpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLWiIgZGF0YS1jb2RlPSIrNyI+S2F6YWtoc3RhbiAoKzcpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVWiIgZGF0YS1jb2RlPSIrOTk4Ij5VemJla2lzdGFuICgrOTk4KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS0ciIGRhdGEtY29kZT0iKzk5NiI+S3lyZ3l6c3RhbiAoKzk5Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRKIiBkYXRhLWNvZGU9Iis5OTIiPlRhamlraXN0YW4gKCs5OTIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUTSIgZGF0YS1jb2RlPSIrOTkzIj5UdXJrbWVuaXN0YW4gKCs5OTMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQSyIgZGF0YS1jb2RlPSIrOTIiPlBha2lzdGFuICgrOTIpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCRCIgZGF0YS1jb2RlPSIrODgwIj5CYW5nbGFkZXNoICgrODgwKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTEsiIGRhdGEtY29kZT0iKzk0Ij5TcmkgTGFua2EgKCs5NCk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5QIiBkYXRhLWNvZGU9Iis5NzciPk5lcGFsICgrOTc3KTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTU0iIGRhdGEtY29kZT0iKzk1Ij5NeWFubWFyICgrOTUpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLSCIgZGF0YS1jb2RlPSIrODU1Ij5DYW1ib2RpYSAoKzg1NSk8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxBIiBkYXRhLWNvZGU9Iis4NTYiPkxhb3MgKCs4NTYpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCTiIgZGF0YS1jb2RlPSIrNjczIj5CcnVuZWkgKCs2NzMpPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNTiIgZGF0YS1jb2RlPSIrOTc2Ij5Nb25nb2xpYSAoKzk3Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRXIiBkYXRhLWNvZGU9Iis4ODYiPlRhaXdhbiAoKzg4Nik8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1PIiBkYXRhLWNvZGU9Iis4NTMiPk1hY2F1ICgrODUzKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS1IiIGRhdGEtY29kZT0iKzgyIj5Tb3V0aCBLb3JlYSAoKzgyKTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY291bnRyeUNvZGVEaXNwbGF5IiBjbGFzcz0iYWJzb2x1dGUgbGVmdC00IHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNDAwIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwIiBzdHlsZT0iZGlzcGxheTpub25lOyI+KzE8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZWwiIGlkPSJyZWdQaG9uZSIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iU2VsZWN0IGNvdW50cnkgZmlyc3QiIHJlcXVpcmVkIGRpc2FibGVkIGlucHV0bW9kZT0ibnVtZXJpYyI+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIC1tdC0zIiBpZD0icGhvbmVIaW50Ij5TZWxlY3QgeW91ciBjb3VudHJ5IHRvIGVuYWJsZSBwaG9uZSBlbnRyeTwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImVtYWlsIiBpZD0icmVnRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCIgcGxhY2Vob2xkZXI9IkVtYWlsIGFkZHJlc3MiIHJlcXVpcmVkIGF1dG9jb21wbGV0ZT0iZW1haWwiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYXNzd29yZC13cmFwcGVyIj48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJyZWdQYXNzd29yZCIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQgKG1pbiA4IGNoYXJzKSIgcmVxdWlyZWQgbWlubGVuZ3RoPSI4IiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCIgb25pbnB1dD0iY2hlY2tQYXNzd29yZFN0cmVuZ3RoKHRoaXMudmFsdWUpIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ3JlZ1Bhc3N3b3JkJywgdGhpcykiPjxpIGNsYXNzPSJmYXMgZmEtZXllIj48L2k+PC9idXR0b24+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InBhc3N3b3JkU3RyZW5ndGhDb250YWluZXIiIGNsYXNzPSJzcGFjZS15LTIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5QYXNzd29yZCBzdHJlbmd0aDo8L3NwYW4+PHNwYW4gaWQ9InBhc3N3b3JkU3RyZW5ndGhUZXh0IiBjbGFzcz0idGV4dC14cyBmb250LW1lZGl1bSI+V2Vhazwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJoLTIgYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiI+PGRpdiBpZD0icGFzc3dvcmRTdHJlbmd0aEJhciIgY2xhc3M9ImgtZnVsbCByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIiBzdHlsZT0id2lkdGg6IDAlOyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBmbGV4LXdyYXAgZ2FwLTIgdGV4dC14cyI+PHNwYW4gaWQ9InJlcS1sZW5ndGgiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IDgrIGNoYXJzPC9zcGFuPjxzcGFuIGlkPSJyZXEtdXBwZXIiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IFVwcGVyY2FzZTwvc3Bhbj48c3BhbiBpZD0icmVxLWxvd2VyIiBjbGFzcz0idGV4dC1ncmF5LTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+PGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUgdGV4dC1bNnB4XSI+PC9pPiBMb3dlcmNhc2U8L3NwYW4+PHNwYW4gaWQ9InJlcS1udW1iZXIiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IE51bWJlcjwvc3Bhbj48c3BhbiBpZD0icmVxLXNwZWNpYWwiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj48aSBjbGFzcz0iZmFzIGZhLWNpcmNsZSB0ZXh0LVs2cHhdIj48L2k+IFNwZWNpYWwgY2hhcjwvc3Bhbj48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFzc3dvcmQtd3JhcHBlciI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0icmVnQ29uZmlybVBhc3N3b3JkIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJDb25maXJtIHBhc3N3b3JkIiByZXF1aXJlZCBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJwYXNzd29yZC10b2dnbGUiIG9uY2xpY2s9InRvZ2dsZVBhc3N3b3JkKCdyZWdDb25maXJtUGFzc3dvcmQnLCB0aGlzKSI+PGkgY2xhc3M9ImZhcyBmYS1leWUiPjwvaT48L2J1dHRvbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVsYXRpdmUiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVnUmVmZXJyYWxDb2RlIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJSZWZlcnJhbCBjb2RlIChvcHRpb25hbCkiIG1heGxlbmd0aD0iNTAiIHN0eWxlPSJ0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Ij48ZGl2IGNsYXNzPSJhYnNvbHV0ZSByaWdodC0zIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LWdyYXktNTAwIj48aSBjbGFzcz0iZmFzIGZhLWdpZnQgdGV4dC1zbSI+PC9pPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLXN0YXJ0IHNwYWNlLXgtMyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icmVnVGVybXMiIGNsYXNzPSJtdC0xIHctNSBoLTUgcm91bmRlZCBiZy1ncmF5LTgwMCBib3JkZXItZ3JheS02MDAiIHJlcXVpcmVkPjxsYWJlbCBmb3I9InJlZ1Rlcm1zIiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj5JIGFncmVlIHRvIHRoZSBUZXJtcyBvZiBTZXJ2aWNlIGFuZCBQcml2YWN5IFBvbGljeTwvbGFiZWw+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0icmVnaXN0ZXJCdG4iIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktNCI+R2V0IFN0YXJ0ZWQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Zvcm0+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InB4LTYgcGItNCBwdC0zIGJvcmRlci10IGJvcmRlci1ncmF5LTgwMC81MCBtdC00Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi0yIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIGZvbnQtbWVkaXVtIHRyYWNraW5nLXdpZGUiPkxlZ2FsIHBvbGljeSBjZW50ZXI8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTMgbWItMiBmbGV4LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPlByaXZhY3kgcG9saWN5PC9hPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPlRlcm1zIG9mIHVzZTwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5BY2Nlc3NpYmlsaXR5PC9hPg0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPllvdXIgcHJpdmFjeSBjaG9pY2VzPC9hPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciB0ZXh0LXhzIHRleHQtZ3JheS02MDAiPjIwMjYgUGxhdGludW1FeCBJbnRlbGxlY3R1YWwgUHJvcGVydHkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgaWQ9Im1haW5BcHAiIGNsYXNzPSJtYWluLWFwcCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4NCiAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9InN0aWNreSB0b3AtMCB6LTUwIGdsYXNzIHB4LTQgcHktMyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS13aGl0ZSB0by1ncmF5LTMwMCByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLWN1YmUgdGV4dC1ibGFjayI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJmb250LWJvbGQgdGV4dC1sZyI+UGxhdGludW08c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+RXg8L3NwYW4+PC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiByZWxhdGl2ZSIgb25jbGljaz0ib3BlbkxpdmVTdXBwb3J0KCkiPjxpIGNsYXNzPSJmYXMgZmEtYmVsbCI+PC9pPjxzcGFuIGlkPSJoZWFkZXJDaGF0QmFkZ2UiIGNsYXNzPSJoaWRkZW4gYWJzb2x1dGUgLXRvcC0xIC1yaWdodC0xIHctNSBoLTUgYmctcm9zZS01MDAgcm91bmRlZC1mdWxsIHRleHQteHMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSBmb250LWJvbGQiPjA8L3NwYW4+PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiIG9uY2xpY2s9InRvZ2dsZVByb2ZpbGVNZW51KCkiIGlkPSJwcm9maWxlQnRuIj48ZGl2IGNsYXNzPSJ3LTggaC04IGJnLWdyYWRpZW50LXRvLWJyIGZyb20td2hpdGUgdG8tZ3JheS0zMDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIiBpZD0icHJvZmlsZUF2YXRhciI+PHNwYW4gY2xhc3M9InRleHQtYmxhY2sgZm9udC1ib2xkIHRleHQtc20iIGlkPSJwcm9maWxlSW5pdGlhbCI+VTwvc3Bhbj48L2Rpdj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InByb2ZpbGVNZW51IiBjbGFzcz0iaGlkZGVuIGFic29sdXRlIHJpZ2h0LTAgdG9wLWZ1bGwgbXQtMiB3LVsyNjBweF0gZ2xhc3Mgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1ncmF5LTcwMCBvdmVyZmxvdy1oaWRkZW4gc2hhZG93LTJ4bCB6LTUwIiBzdHlsZT0ibWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyMHB4KTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUHJvZmlsZSBIZWFkZXIgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1ncmF5LTkwMCB0by1ncmF5LTgwMCBib3JkZXItYiBib3JkZXItZ3JheS03MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy1ncmFkaWVudC10by1iciBmcm9tLXdoaXRlIHRvLWdyYXktMzAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByaW5nLTIgcmluZy1hbWJlci01MDAvMzAgZmxleC1zaHJpbmstMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtYmxhY2sgZm9udC1ib2xkIHRleHQtbGciIGlkPSJtZW51UHJvZmlsZUluaXRpYWwiPlU8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1pbi13LTAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSB0cnVuY2F0ZSIgaWQ9Im1lbnVQcm9maWxlTmFtZSI+VXNlcjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIHRydW5jYXRlIiBpZD0ibWVudVByb2ZpbGVFbWFpbCI+dXNlckBleGFtcGxlLmNvbTwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBtdC0wLjUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idy0xLjUgaC0xLjUgYmctZW1lcmFsZC01MDAgcm91bmRlZC1mdWxsIj48L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWVtZXJhbGQtNDAwIiBpZD0icHJvZmlsZVJvbGVMYWJlbCI+QWN0aXZlIFRyYWRlcjwvc3Bhbj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFF1aWNrIFN0YXRzIC0tPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLXdoaXRlLzUgcm91bmRlZC1sZyBwLTIgYm9yZGVyIGJvcmRlci13aGl0ZS8xMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtWzEwcHhdIHRleHQtZ3JheS00MDAiPlRvdGFsIEJhbGFuY2U8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJwcm9maWxlVG90YWxCYWxhbmNlIj4kMC4wMDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctd2hpdGUvNSByb3VuZGVkLWxnIHAtMiBib3JkZXIgYm9yZGVyLXdoaXRlLzEwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1bMTBweF0gdGV4dC1ncmF5LTQwMCI+SW52ZXN0IFByb2ZpdDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiIGlkPSJwcm9maWxlSW52ZXN0UHJvZml0Ij4kMC4wMDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE1lbnUgSXRlbXMgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHktMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ3dhbGxldHMnKTsgdG9nZ2xlUHJvZmlsZU1lbnUoKTsiIGNsYXNzPSJ3LWZ1bGwgcHgtMyBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctZW1lcmFsZC01MDAvMjAgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLXdhbGxldCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQteHMiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC14cyI+TXkgV2FsbGV0czwvc3Bhbj48cCBjbGFzcz0idGV4dC1bMTBweF0gdGV4dC1ncmF5LTUwMCBsZWFkaW5nLXRpZ2h0Ij5WaWV3IGJhbGFuY2VzICYgZGVwb3NpdDwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2Rhc2hib2FyZCcpOyB0b2dnbGVQcm9maWxlTWVudSgpOyIgY2xhc3M9InctZnVsbCBweC0zIHB5LTIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6Ymctd2hpdGUvNSB0cmFuc2l0aW9uLWNvbG9ycyB0ZXh0LWxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idy03IGgtNyBiZy1ibHVlLTUwMC8yMCByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtbGluZSB0ZXh0LWJsdWUtNDAwIHRleHQteHMiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgdGV4dC14cyI+UG9ydGZvbGlvPC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctdGlnaHQiPlBlcmZvcm1hbmNlICYgYW5hbHl0aWNzPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignaW52ZXN0Jyk7IHRvZ2dsZVByb2ZpbGVNZW51KCk7IiBjbGFzcz0idy1mdWxsIHB4LTMgcHktMiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIHRleHQtbGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTcgaC03IGJnLWFtYmVyLTUwMC8yMCByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtcGlnZ3ktYmFuayB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQteHMiPkludmVzdG1lbnRzPC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctdGlnaHQiPlBsYW5zICYgcHJvZml0IHRyYWNraW5nPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuTGl2ZVN1cHBvcnQoKTsgdG9nZ2xlUHJvZmlsZU1lbnUoKTsiIGNsYXNzPSJ3LWZ1bGwgcHgtMyBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctcHVycGxlLTUwMC8yMCByb3VuZGVkLW1kIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXB1cnBsZS00MDAgdGV4dC14cyI+PC9pPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhzIj5TdXBwb3J0PC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LVsxMHB4XSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctdGlnaHQiPjI0LzcgbGl2ZSBjaGF0PC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJib3JkZXItdCBib3JkZXItZ3JheS03MDAgcHktMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ib3BlbkNoYW5nZVBhc3N3b3JkTW9kYWwoKTsgdG9nZ2xlUHJvZmlsZU1lbnUoKTsiIGNsYXNzPSJ3LWZ1bGwgcHgtMyBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctZ3JheS02MDAvMzAgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLWxvY2sgdGV4dC1ncmF5LTQwMCB0ZXh0LXhzIj48L2k+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhzIj5DaGFuZ2UgUGFzc3dvcmQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvZ291dCgpOyB0b2dnbGVQcm9maWxlTWVudSgpOyIgY2xhc3M9InctZnVsbCBweC0zIHB5LTIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6Ymctcm9zZS02MDAvMjAgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1sZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctNyBoLTcgYmctcm9zZS01MDAvMjAgcm91bmRlZC1tZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLXNpZ24tb3V0LWFsdCB0ZXh0LXJvc2UtNDAwIHRleHQteHMiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGZvbnQtbWVkaXVtIHRleHQteHMiPlNpZ24gT3V0PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9oZWFkZXI+DQoNCiAgICAgICAgICAgIDxkaXYgaWQ9ImRhc2hib2FyZFNlY3Rpb24iIGNsYXNzPSJzZWN0aW9uLWNvbnRlbnQgYWN0aXZlIj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20td2hpdGUvMTAgdG8tZ3JheS0yMDAvMTAgYm9yZGVyLXdoaXRlLzIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtYi0xIj5Ub3RhbCBCYWxhbmNlPC9wPjxoMiBjbGFzcz0idGV4dC0zeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJ0b3RhbEJhbGFuY2UiPiQwLjAwPC9oMj48cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIG10LTEgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiPjxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctdXAiPjwvaT4gPHNwYW4gaWQ9ImJhbGFuY2VDaGFuZ2UiPiswLjAwJSAoJDAuMDApPC9zcGFuPiA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+MjRoPC9zcGFuPjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTQgaC0xNCBiZy13aGl0ZS8xMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IHRleHQtMnhsIHRleHQtd2hpdGUiPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtNCBnYXAtMyBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignd2FsbGV0cycpIiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgZ2FwLTIgcC00IGdsYXNzIHJvdW5kZWQteGwgaG92ZXI6Ymctd2hpdGUvNSB0cmFuc2l0aW9uLWNvbG9ycyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWVtZXJhbGQtNjAwLzIwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1wbHVzIHRleHQtZW1lcmFsZC00MDAiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EZXBvc2l0PC9zcGFuPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCd3YWxsZXRzJykiIGNsYXNzPSJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMiBwLTQgZ2xhc3Mgcm91bmRlZC14bCBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctcm9zZS02MDAvMjAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLW1pbnVzIHRleHQtcm9zZS00MDAiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5XaXRoZHJhdzwvc3Bhbj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbigndHJhZGUnKSIgY2xhc3M9ImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0yIHAtNCBnbGFzcyByb3VuZGVkLXhsIGhvdmVyOmJnLXdoaXRlLzUgdHJhbnNpdGlvbi1jb2xvcnMiPjxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy13aGl0ZS8yMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtZXhjaGFuZ2UtYWx0IHRleHQtd2hpdGUiPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5UcmFkZTwvc3Bhbj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbigndHJhZGUnKTsgc2V0VGltZW91dCgoKSA9PiBzZXRUcmFkZU1haW5UYWIoJ2Z1dHVyZXMnKSwgMTAwKTsiIGNsYXNzPSJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMiBwLTQgZ2xhc3Mgcm91bmRlZC14bCBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctYmx1ZS02MDAvMjAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLWNoYXJ0LWJhciB0ZXh0LWJsdWUtNDAwIj48L2k+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RnV0dXJlczwvc3Bhbj48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj48aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiPlBvcnRmb2xpbyBQZXJmb3JtYW5jZTwvaDM+PGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGJ1dHRvbiBjbGFzcz0idGltZS1idG4gdGV4dC14cyBweS0xIHB4LTMiIG9uY2xpY2s9InNldERhc2hib2FyZFRpbWVSYW5nZSgnMUQnLCB0aGlzKSI+MUQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biBhY3RpdmUgdGV4dC14cyBweS0xIHB4LTMiIG9uY2xpY2s9InNldERhc2hib2FyZFRpbWVSYW5nZSgnMVcnLCB0aGlzKSI+MVc8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biB0ZXh0LXhzIHB5LTEgcHgtMyIgb25jbGljaz0ic2V0RGFzaGJvYXJkVGltZVJhbmdlKCcxTScsIHRoaXMpIj4xTTwvYnV0dG9uPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjaGFydC1jb250YWluZXIiIHN0eWxlPSJoZWlnaHQ6IDE4MHB4OyI+PGNhbnZhcyBpZD0icG9ydGZvbGlvQ2hhcnQiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjE4MCI+PC9jYW52YXM+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTQiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTIiPjxkaXYgY2xhc3M9InctOCBoLTggYmctZW1lcmFsZC02MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1hcnJvdy10cmVuZC11cCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj4yNGggUHJvZml0PC9zcGFuPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LWVtZXJhbGQtNDAwIiBpZD0icHJvZml0MjRoIj4rJDAuMDA8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00Ij48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yIj48ZGl2IGNsYXNzPSJ3LTggaC04IGJnLWJsdWUtNjAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtcGllIHRleHQtYmx1ZS00MDAgdGV4dC1zbSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20iPkFzc2V0czwvc3Bhbj48L2Rpdj48cCBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSIgaWQ9ImFzc2V0Q291bnQiPjA8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGNvbC1zcGFuLTIiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTIiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYW1iZXItNjAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtY29pbnMgdGV4dC1hbWJlci00MDAgdGV4dC1zbSI+PC9pPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20iPkludmVzdG1lbnQgUHJvZml0PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiI+PHAgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtYW1iZXItNDAwIiBpZD0iaW52ZXN0bWVudFByb2ZpdEJhbGFuY2UiPiQwLjAwPC9wPjxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2ludmVzdCcpIiBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTQwMCBob3Zlcjp0ZXh0LWFtYmVyLTMwMCI+VmlldzwvYnV0dG9uPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj48aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiPlRyZW5kaW5nPC9oMz48YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCdtYXJrZXQnKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIj5WaWV3IEFsbCA8aSBjbGFzcz0iZmFzIGZhLWNoZXZyb24tcmlnaHQgdGV4dC14cyI+PC9pPjwvYnV0dG9uPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlbiBtYi00IiBpZD0iZGFzaGJvYXJkQ3J5cHRvTGlzdCI+PC9kaXY+DQogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuTGl2ZVN1cHBvcnQoKSIgY2xhc3M9InctZnVsbCBnbGFzcyByb3VuZGVkLXhsIHAtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaG92ZXI6Ymctd2hpdGUvNSB0cmFuc2l0aW9uLWNvbG9ycyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy1lbWVyYWxkLTYwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1sZWZ0Ij48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj5MaXZlIFN1cHBvcnQ8L3A+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+MjQvNyBDdXN0b21lciBTZXJ2aWNlPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48c3BhbiBjbGFzcz0idy0yIGgtMiBiZy1lbWVyYWxkLTUwMCByb3VuZGVkLWZ1bGwgYW5pbWF0ZS1wdWxzZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZW1lcmFsZC00MDAiPk9ubGluZTwvc3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNoZXZyb24tcmlnaHQgdGV4dC1ncmF5LTQwMCI+PC9pPjwvZGl2PjwvYnV0dG9uPg0KDQogICAgICAgICAgICAgICAgPCEtLSBQbGF0Zm9ybSBTZWN1cml0eSAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj5TZWN1cml0eSBGZWF0dXJlczwvaDM+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZW1lcmFsZC01MDAvMTAgYm9yZGVyIGJvcmRlci1lbWVyYWxkLTUwMC8yMCI+PGkgY2xhc3M9ImZhcyBmYS1zaGllbGQtaGFsdmVkIHRleHQtZW1lcmFsZC00MDAiPjwvaT48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPjJGQSBBdXRoPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkVuYWJsZWQ8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIj48aSBjbGFzcz0iZmFzIGZhLWxvY2sgdGV4dC1ibHVlLTQwMCI+PC9pPjxkaXY+PHAgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSI+Q29sZCBTdG9yYWdlPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPjk1JSBBc3NldHM8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1hbWJlci01MDAvMTAgYm9yZGVyIGJvcmRlci1hbWJlci01MDAvMjAiPjxpIGNsYXNzPSJmYXMgZmEtYmVsbCB0ZXh0LWFtYmVyLTQwMCI+PC9pPjxkaXY+PHAgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSI+UmVhbC10aW1lIEFsZXJ0czwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5BY3RpdmU8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1wdXJwbGUtNTAwLzEwIGJvcmRlciBib3JkZXItcHVycGxlLTUwMC8yMCI+PGkgY2xhc3M9ImZhcyBmYS1maWxlLXNoaWVsZCB0ZXh0LXB1cnBsZS00MDAiPjwvaT48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPkluc3VyYW5jZSBGdW5kPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPiQ1MDBNKzwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIEludmVzdG1lbnQgUGxhbnMgSGlnaGxpZ2h0IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+SW52ZXN0bWVudCBQbGFuczwvaDM+PGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignaW52ZXN0JykiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+VmlldyBBbGwgPGkgY2xhc3M9ImZhcyBmYS1jaGV2cm9uLXJpZ2h0IHRleHQteHMiPjwvaT48L2J1dHRvbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0zIiBpZD0iZGFzaGJvYXJkSW52ZXN0UGxhbnMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyByb3VuZGVkLXhsIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1lbWVyYWxkLTUwMC8yMCB0by10cmFuc3BhcmVudCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWVtZXJhbGQtNjAwLzMwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1zZWVkbGluZyB0ZXh0LWVtZXJhbGQtNDAwIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPlN0YXJ0ZXIgUGxhbjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EYWlseSBST0kgMS4yJTwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij48cCBjbGFzcz0idGV4dC1zbSBmb250LWJvbGQgdGV4dC1lbWVyYWxkLTQwMCI+MzYlIEFQUjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4zMCBEYXlzPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC0zIHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tciBmcm9tLWJsdWUtNTAwLzIwIHRvLXRyYW5zcGFyZW50IGJvcmRlciBib3JkZXItYmx1ZS01MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctYmx1ZS02MDAvMzAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLXJvY2tldCB0ZXh0LWJsdWUtNDAwIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPkdyb3d0aCBQbGFuPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkRhaWx5IFJPSSAxLjglPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LWJsdWUtNDAwIj41NCUgQVBSPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPjkwIERheXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgcm91bmRlZC14bCBiZy1ncmFkaWVudC10by1yIGZyb20tYW1iZXItNTAwLzIwIHRvLXRyYW5zcGFyZW50IGJvcmRlciBib3JkZXItYW1iZXItNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWFtYmVyLTYwMC8zMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtY3Jvd24gdGV4dC1hbWJlci00MDAiPjwvaT48L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+UGxhdGludW0gUGxhbjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EYWlseSBST0kgMi41JTwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij48cCBjbGFzcz0idGV4dC1zbSBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiPjc1JSBBUFI8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+MTgwIERheXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFBsYXRmb3JtIFN0YXRzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPlBsYXRmb3JtIFN0YXRpc3RpY3M8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPiQyLjRCKzwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5UcmFkaW5nIFZvbHVtZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPjE4MEsrPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkFjdGl2ZSBUcmFkZXJzPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxwIGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+OTkuOSU8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VXB0aW1lPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxwIGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+JDUwTSs8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+UGFpZCBPdXQ8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBTY3JvbGxpbmcgTmV3cyBUaWNrZXIgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC0zIG1iLTQgb3ZlcmZsb3ctaGlkZGVuIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1ib2xkIHRleHQtZW1lcmFsZC00MDAgZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+PHNwYW4gY2xhc3M9InctMS41IGgtMS41IGJnLWVtZXJhbGQtNDAwIHJvdW5kZWQtZnVsbCBhbmltYXRlLXB1bHNlIj48L3NwYW4+TElWRTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJmbG93LWhpZGRlbiBmbGV4LTEgcmVsYXRpdmUgaC01Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJuZXdzVGlja2VyIiBjbGFzcz0iYWJzb2x1dGUgd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1zbSB0ZXh0LWdyYXktMzAwIGZsZXggZ2FwLTgiIHN0eWxlPSJhbmltYXRpb246IHRpY2tlclNjcm9sbCAzMHMgbGluZWFyIGluZmluaXRlOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkJpdGNvaW4gRVRGIGluZmxvd3MgaGl0ICQyLjFCIHRoaXMgd2Vlazwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj48c3Bhbj5FdGhlcmV1bSBzdGFraW5nIEFQUiByZWFjaGVzIDQuMiU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZ3JheS02MDAiPnw8L3NwYW4+PHNwYW4+U29sYW5hIERlRmkgVFZMIGNyb3NzZXMgJDhCPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIj58PC9zcGFuPjxzcGFuPlNFQyBhcHByb3ZlcyBzcG90IEV0aGVyZXVtIEVURnM8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZ3JheS02MDAiPnw8L3NwYW4+PHNwYW4+UmlwcGxlIGV4cGFuZHMgdG8gQXNpYW4gbWFya2V0czwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj48c3Bhbj5CTkIgQ2hhaW4gbGF1bmNoZXMgbmV3IEwyIHNvbHV0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIj58PC9zcGFuPjxzcGFuPkNhcmRhbm8gaHlkcmEgdXBncmFkZSBnb2VzIGxpdmU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZ3JheS02MDAiPnw8L3NwYW4+PHNwYW4+TWljcm9TdHJhdGVneSBidXlzIDEyLDAwMCBtb3JlIEJUQzwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gTGF0ZXN0IE1hcmtldCBOZXdzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+TWFya2V0IEluc2lnaHRzPC9oMz48YnV0dG9uIG9uY2xpY2s9ImZldGNoQ3J5cHRvTmV3cygpIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdHJhbnNpdGlvbi1jb2xvcnMiPjxpIGNsYXNzPSJmYXMgZmEtcmVmcmVzaCBtci0xIj48L2k+UmVmcmVzaDwvYnV0dG9uPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiIGlkPSJtYXJrZXROZXdzTGlzdCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCB0ZXh0LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1zcGlubmVyIGZhLXNwaW4gdGV4dC1ncmF5LTQwMCBtci0yIj48L2k+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+TG9hZGluZyBsYXRlc3QgY3J5cHRvIG5ld3MuLi48L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBDdXN0b21lciBSZXZpZXdzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+Q3VzdG9tZXIgUmV2aWV3czwvaDM+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXNtIj48L2k+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIj40Ljk8L3NwYW4+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMiI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1ibHVlLTQwMCB0by1wdXJwbGUtNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtd2hpdGUgdGV4dC14cyBmb250LWJvbGQiPkpNPC9kaXY+PGRpdj48cCBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIj5KYW1lcyBNaXRjaGVsbDwvcD48ZGl2IGNsYXNzPSJmbGV4IGdhcC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48L2Rpdj48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4iVGhlIGludmVzdG1lbnQgcGxhbnMgaGVyZSBhcmUgaW5jcmVkaWJsZS4gSSBoYXZlIGVhcm5lZCA0NyUgUk9JIGluIGp1c3QgMyBtb250aHMuIFRoZSBkYWlseSBhY2NydWFscyBhcmUgY29uc2lzdGVudCBhbmQgd2l0aGRyYXdhbHMgYXJlIHByb2Nlc3NlZCB3aXRoaW4gaG91cnMuIjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTIiPjxkaXYgY2xhc3M9InctOCBoLTggcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC00MDAgdG8tdGVhbC01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtYm9sZCI+U0s8L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPlNhcmFoIEtpbTwvcD48ZGl2IGNsYXNzPSJmbGV4IGdhcC0wLjUiPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48L2Rpdj48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4iQmVzdCBjcnlwdG8gcGxhdGZvcm0gSSBoYXZlIHVzZWQuIFRoZSBpbnRlcmZhY2UgaXMgY2xlYW4sIHN1cHBvcnQgaXMgYWx3YXlzIGF2YWlsYWJsZSwgYW5kIHRoZSBzZWN1cml0eSBmZWF0dXJlcyBnaXZlIG1lIHBlYWNlIG9mIG1pbmQuIEhpZ2hseSByZWNvbW1lbmRlZCEiPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMiI+PGRpdiBjbGFzcz0idy04IGgtOCByb3VuZGVkLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1vcmFuZ2UtNDAwIHRvLXJlZC01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSB0ZXh0LXhzIGZvbnQtYm9sZCI+Ukw8L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUiPlJvYmVydCBMaXU8L3A+PGRpdiBjbGFzcz0iZmxleCBnYXAtMC41Ij48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3RhciB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PGkgY2xhc3M9ImZhcyBmYS1zdGFyIHRleHQtYW1iZXItNDAwIHRleHQteHMiPjwvaT48aSBjbGFzcz0iZmFzIGZhLXN0YXIgdGV4dC1hbWJlci00MDAgdGV4dC14cyI+PC9pPjxpIGNsYXNzPSJmYXMgZmEtc3Rhci1oYWxmLWFsdCB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PC9kaXY+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCI+Ikkgc3RhcnRlZCB3aXRoIHRoZSBTdGFydGVyIFBsYW4gYW5kIHF1aWNrbHkgdXBncmFkZWQgdG8gUGxhdGludW0uIFRoZSByZXR1cm5zIHNwZWFrIGZvciB0aGVtc2VsdmVzLiBDdXN0b21lciBzdXBwb3J0IGhlbHBlZCBtZSBldmVyeSBzdGVwIG9mIHRoZSB3YXkuIjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUXVpY2sgQ3J5cHRvIFRpcHMgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyI+VHJhZGluZyBUaXBzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYmx1ZS01MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLWxpZ2h0YnVsYiB0ZXh0LWJsdWUtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+RGl2ZXJzaWZ5IHlvdXIgcG9ydGZvbGlvLjwvc3Bhbj4gTmV2ZXIgcHV0IGFsbCB5b3VyIGZ1bmRzIGluIGEgc2luZ2xlIGFzc2V0LiBTcHJlYWQgYWNyb3NzIEJUQywgRVRILCBhbmQgc3RhYmxlY29pbnMuPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+PGRpdiBjbGFzcz0idy04IGgtOCBiZy1lbWVyYWxkLTUwMC8yMCByb3VuZGVkLWxnIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtY2hhcnQtbGluZSB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+VXNlIGRvbGxhci1jb3N0IGF2ZXJhZ2luZy48L3NwYW4+IEludmVzdCBmaXhlZCBhbW91bnRzIHJlZ3VsYXJseSBpbnN0ZWFkIG9mIHRpbWluZyB0aGUgbWFya2V0LjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYW1iZXItNTAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS1zaGllbGQgdGV4dC1hbWJlci00MDAgdGV4dC1zbSI+PC9pPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS0zMDAiPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIj5FbmFibGUgYWxsIHNlY3VyaXR5IGZlYXR1cmVzLjwvc3Bhbj4gVXNlIDJGQSwgd2l0aGRyYXdhbCB3aGl0ZWxpc3RzLCBhbmQgZW1haWwgbm90aWZpY2F0aW9ucyB0byBwcm90ZWN0IHlvdXIgYXNzZXRzLjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRydXN0IEJhZGdlcyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIHRleHQtY2VudGVyIj5UcnVzdGVkICYgUmVndWxhdGVkPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTQgZmxleC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JheS00MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2VydGlmaWNhdGUgdGV4dC1lbWVyYWxkLTQwMCI+PC9pPjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIj5TT0MgMiBDZXJ0aWZpZWQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LWdyYXktNDAwIj48aSBjbGFzcz0iZmFzIGZhLWNlcnRpZmljYXRlIHRleHQtYmx1ZS00MDAiPjwvaT48c3BhbiBjbGFzcz0idGV4dC14cyI+SVNPIDI3MDAxPC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1ncmF5LTQwMCI+PGkgY2xhc3M9ImZhcyBmYS1jZXJ0aWZpY2F0ZSB0ZXh0LWFtYmVyLTQwMCI+PC9pPjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIj5GaW5DRU4gUmVnLjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JheS00MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2VydGlmaWNhdGUgdGV4dC1wdXJwbGUtNDAwIj48L2k+PHNwYW4gY2xhc3M9InRleHQteHMiPlNTTCBFbmNyeXB0ZWQ8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTMiPlBsYXRpbnVtR2xvYmFsRXhjaGFuZ2UgaXMgYSBsaWNlbnNlZCBhbmQgcmVndWxhdGVkIGNyeXB0b2N1cnJlbmN5IGV4Y2hhbmdlIHBsYXRmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJtYXJrZXRTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBtYi00Ij48ZGl2IGNsYXNzPSJyZWxhdGl2ZSBmbGV4LTEiPjxpIGNsYXNzPSJmYXMgZmEtc2VhcmNoIGFic29sdXRlIGxlZnQtNCB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC1ncmF5LTQwMCI+PC9pPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWFya2V0U2VhcmNoIiBjbGFzcz0iaW5wdXQtZmllbGQgcGwtMTIiIHBsYWNlaG9sZGVyPSJTZWFyY2ggY3J5cHRvLi4uIiBvbmlucHV0PSJmaWx0ZXJNYXJrZXQoKSI+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgaWQ9InNlbGVjdGVkQ3J5cHRvSWNvbiIgY2xhc3M9ImNyeXB0by1pY29uIGJ0YyB0ZXh0LXhsIj48aSBjbGFzcz0iZmFiIGZhLWJpdGNvaW4iPjwvaT48L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSB0ZXh0LWxnIiBpZD0ic2VsZWN0ZWRDcnlwdG9OYW1lIj5CaXRjb2luPC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiIGlkPSJzZWxlY3RlZENyeXB0b1N5bWJvbCI+QlRDL1VTRFQ8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIiBpZD0ic2VsZWN0ZWRDcnlwdG9QcmljZSI+TG9hZGluZy4uLjwvcD48cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtIiBpZD0ic2VsZWN0ZWRDcnlwdG9DaGFuZ2UiPi0tPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtYi0zIHB4LTEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj4yNGggSGlnaDwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiIGlkPSJta3RIaWdoIj4tLTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+MjRoIExvdzwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiIGlkPSJta3RMb3ciPi0tPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj5Wb2x1bWU8L3A+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIiBpZD0ibWt0Vm9sIj4tLTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+TWt0IENhcDwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUiIGlkPSJta3RDYXAiPi0tPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2hhcnQtY29udGFpbmVyIj48Y2FudmFzIGlkPSJtYXJrZXRDaGFydCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMjAwIj48L2NhbnZhcz48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZS1zZWxlY3RvciI+PGJ1dHRvbiBjbGFzcz0idGltZS1idG4iIGRhdGEtcmFuZ2U9IjEiIG9uY2xpY2s9InNldFRpbWVSYW5nZSgxKSI+MUg8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biBhY3RpdmUiIGRhdGEtcmFuZ2U9IjI0IiBvbmNsaWNrPSJzZXRUaW1lUmFuZ2UoMjQpIj4yNEg8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biIgZGF0YS1yYW5nZT0iMTY4IiBvbmNsaWNrPSJzZXRUaW1lUmFuZ2UoMTY4KSI+N0Q8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJ0aW1lLWJ0biIgZGF0YS1yYW5nZT0iNzIwIiBvbmNsaWNrPSJzZXRUaW1lUmFuZ2UoNzIwKSI+MzBEPC9idXR0b24+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPkFsbCBDcnlwdG9jdXJyZW5jaWVzPC9oMz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBvdmVyZmxvdy1oaWRkZW4iIGlkPSJtYXJrZXRDcnlwdG9MaXN0Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyBtdC00Ij5Ub3AgR2FpbmVyczwvaDM+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgb3ZlcmZsb3ctaGlkZGVuIiBpZD0idG9wR2FpbmVyc0xpc3QiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIG10LTQiPlRyYWRpbmcgUGFpcnM8L2gzPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNwYWNlLXktMCIgaWQ9InRyYWRpbmdQYWlyc0xpc3QiPjwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBNYXJrZXQgRGVwdGggVmlzdWFsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IG10LTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiPk9yZGVyIEJvb2sgRGVwdGg8L2gzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+PHNwYW4gY2xhc3M9InctMS41IGgtMS41IGJnLWVtZXJhbGQtNDAwIHJvdW5kZWQtZnVsbCBhbmltYXRlLXB1bHNlIj48L3NwYW4+TGl2ZTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlbGF0aXZlIGgtMzYgcm91bmRlZC14bCBvdmVyZmxvdy1oaWRkZW4iIGlkPSJkZXB0aENoYXJ0Q29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoQ2hhcnQiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgYm90dG9tOjA7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtdC0zIHB4LTEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxkaXYgY2xhc3M9InctMiBoLTIgcm91bmRlZC1mdWxsIGJnLWVtZXJhbGQtNTAwIj48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5CaWRzIDxzcGFuIGNsYXNzPSJ0ZXh0LWVtZXJhbGQtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXB0aEJpZFBjdCI+NjIlPC9zcGFuPjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj5TcHJlYWQ8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIj4wLjA0JTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Bc2tzIDxzcGFuIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXB0aEFza1BjdCI+MzglPC9zcGFuPjwvc3Bhbj48ZGl2IGNsYXNzPSJ3LTIgaC0yIHJvdW5kZWQtZnVsbCBiZy1yb3NlLTUwMCI+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBUcmFkaW5nIFBhaXJzIFZvbHVtZSAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj4yNGggVm9sdW1lIExlYWRlcnM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiIGlkPSJ2b2x1bWVMZWFkZXJzTGlzdCI+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRlY2huaWNhbCBJbmRpY2F0b3JzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPlRlY2huaWNhbCBJbmRpY2F0b3JzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1lbWVyYWxkLTUwMC8xMCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzIwIHRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTEiPlJTSSAoMTQpPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWVtZXJhbGQtNDAwIj41OC40PC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAvNzAiPk5ldXRyYWw8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtMyByb3VuZGVkLXhsIGJnLWVtZXJhbGQtNTAwLzEwIGJvcmRlciBib3JkZXItZW1lcmFsZC01MDAvMjAgdGV4dC1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+TUFDRDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1lbWVyYWxkLTQwMCI+QnVsbGlzaDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWVtZXJhbGQtNDAwLzcwIj5CdXkgU2lnbmFsPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1hbWJlci01MDAvMTAgYm9yZGVyIGJvcmRlci1hbWJlci01MDAvMjAgdGV4dC1jZW50ZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+TW92aW5nIEF2ZzwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiPkFib3ZlPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtYW1iZXItNDAwLzcwIj4yMDAgRU1BPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBiZy1yb3NlLTUwMC8xMCBib3JkZXIgYm9yZGVyLXJvc2UtNTAwLzIwIHRleHQtY2VudGVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTEiPlN1cHBvcnQ8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtcm9zZS00MDAiPiQ3OC4ySzwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LXJvc2UtNDAwLzcwIj5LZXkgTGV2ZWw8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFRyYWRpbmcgVGlwcyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj5Qcm8gVHJhZGluZyBUaXBzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYmx1ZS01MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLWNoYXJ0LWJhciB0ZXh0LWJsdWUtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+V2F0Y2ggdm9sdW1lIGJlZm9yZSBwcmljZS48L3NwYW4+IEhpZ2ggdm9sdW1lIGNvbmZpcm1zIGEgdHJlbmQuIExvdyB2b2x1bWUgYnJlYWtvdXRzIG9mdGVuIGZhaWwuPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+PGRpdiBjbGFzcz0idy04IGgtOCBiZy1lbWVyYWxkLTUwMC8yMCByb3VuZGVkLWxnIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtc2hpZWxkLWFsdCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20iPjwvaT48L2Rpdj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSI+QWx3YXlzIHVzZSBzdG9wLWxvc3Nlcy48L3NwYW4+IE5ldmVyIHJpc2sgbW9yZSB0aGFuIDIlIG9mIHlvdXIgcG9ydGZvbGlvIG9uIGEgc2luZ2xlIHRyYWRlLjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYW1iZXItNTAwLzIwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXNtIj48L2k+PC9kaXY+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCI+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1tZWRpdW0iPlBhdGllbmNlIHBheXMuPC9zcGFuPiBUaGUgYmVzdCB0cmFkZXMgYXJlIHRoZSBvbmVzIHlvdSB3YWl0IGZvci4gRG8gbm90IGNoYXNlIGV2ZXJ5IHByaWNlIG1vdmVtZW50LjwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIEFkdmFuY2VkIFRvb2xzIFByb21vIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC02MDAvMjAgdG8tYmx1ZS02MDAvMjAgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgbWItMyI+PGRpdiBjbGFzcz0idy0xMiBoLTEyIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC01MDAgdG8tYmx1ZS01MDAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1jaGFydC1saW5lIHRleHQtd2hpdGUgdGV4dC14bCI+PC9pPjwvZGl2PjxkaXY+PGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5BZHZhbmNlZCBDaGFydGluZzwvaDM+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTMwMCI+UHJvZmVzc2lvbmFsIHRvb2xzIGZvciBzZXJpb3VzIHRyYWRlcnM8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTIgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC80MCI+PGkgY2xhc3M9ImZhcyBmYS13YXZlLXNxdWFyZSB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20gbWItMSI+PC9pPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS0zMDAiPlJTSS9NQUNEPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0yIHJvdW5kZWQtbGcgYmctZ3JheS04MDAvNDAiPjxpIGNsYXNzPSJmYXMgZmEtbGF5ZXItZ3JvdXAgdGV4dC1ibHVlLTQwMCB0ZXh0LXNtIG1iLTEiPjwvaT48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktMzAwIj5GaWJvbmFjY2k8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC80MCI+PGkgY2xhc3M9ImZhcyBmYS1ib2x0IHRleHQtYW1iZXItNDAwIHRleHQtc20gbWItMSI+PC9pPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS0zMDAiPlJlYWwtVGltZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2ludmVzdCcpIiBjbGFzcz0idy1mdWxsIHB5LTMgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwIHRvLWJsdWUtNjAwIGhvdmVyOmZyb20tZW1lcmFsZC01MDAgaG92ZXI6dG8tYmx1ZS01MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwgdHJhbnNpdGlvbi1hbGwiPlN0YXJ0IEludmVzdGluZyBOb3c8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gTWFya2V0IFRydXN0IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMgdGV4dC1jZW50ZXIiPldoeSBUcmFkZXJzIENob29zZSBVczwvaDM+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxpIGNsYXNzPSJmYXMgZmEtYm9sdCB0ZXh0LWVtZXJhbGQtNDAwIHRleHQtbGcgbWItMSI+PC9pPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+MC4xcyBFeGVjdXRpb248L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VWx0cmEtZmFzdCB0cmFkZXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCI+PGkgY2xhc3M9ImZhcyBmYS1wZXJjZW50IHRleHQtYmx1ZS00MDAgdGV4dC1sZyBtYi0xIj48L2k+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4wLjA4JSBGZWVzPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkluZHVzdHJ5IGxvd2VzdDwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48aSBjbGFzcz0iZmFzIGZhLWxvY2sgdGV4dC1hbWJlci00MDAgdGV4dC1sZyBtYi0xIj48L2k+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4kNTAwTSBJbnN1cmFuY2U8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RnVuZCBwcm90ZWN0aW9uPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1jZW50ZXIgcC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXB1cnBsZS00MDAgdGV4dC1sZyBtYi0xIj48L2k+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4yNC83IFN1cHBvcnQ8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+QWx3YXlzIGF2YWlsYWJsZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0idHJhZGVTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8IS0tIFBhaXIgSGVhZGVyIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY3J5cHRvLWljb24gYnRjIHRleHQteGwiIGlkPSJ0cmFkZVBhaXJJY29uIj48aSBjbGFzcz0iZmFiIGZhLWJpdGNvaW4iPjwvaT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LXdoaXRlIiBpZD0idHJhZGVQYWlyTmFtZSI+QlRDL1VTRFQ8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCIgaWQ9InRyYWRlUGFpclN1YiI+Qml0Y29pbjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSIgaWQ9InRyYWRlQnRjUHJpY2UiPkxvYWRpbmcuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXhzIiBpZD0idHJhZGVCdGNDaGFuZ2UiPi0tPC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gTWFpbiBUYWJzOiBDb252ZXJ0IHwgU3BvdCB8IEZ1dHVyZXMgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMSBtYi00IGJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC0xIj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzZXRUcmFkZU1haW5UYWIoJ2NvbnZlcnQnKSIgY2xhc3M9InRyYWRlLW1haW4tdGFiIGFjdGl2ZSBmbGV4LTEgcHktMiByb3VuZGVkLWxnIHRleHQtc20gZm9udC1zZW1pYm9sZCB0cmFuc2l0aW9uLWFsbCIgaWQ9InRyYWRlVGFiQ29udmVydCI+Q29udmVydDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InNldFRyYWRlTWFpblRhYignc3BvdCcpIiBjbGFzcz0idHJhZGUtbWFpbi10YWIgZmxleC0xIHB5LTIgcm91bmRlZC1sZyB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdHJhbnNpdGlvbi1hbGwiIGlkPSJ0cmFkZVRhYlNwb3QiPlNwb3Q8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzZXRUcmFkZU1haW5UYWIoJ2Z1dHVyZXMnKSIgY2xhc3M9InRyYWRlLW1haW4tdGFiIGZsZXgtMSBweS0yIHJvdW5kZWQtbGcgdGV4dC1zbSBmb250LXNlbWlib2xkIHRyYW5zaXRpb24tYWxsIiBpZD0idHJhZGVUYWJGdXR1cmVzIj5GdXR1cmVzPC9idXR0b24+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIENPTlZFUlQgUEFORUwgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBpZD0iY29udmVydFBhbmVsIiBjbGFzcz0idHJhZGUtcGFuZWwgYWN0aXZlIj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3BhY2UteS0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRnJvbSAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC00IGJvcmRlciBib3JkZXItZ3JheS03MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGZvbnQtbWVkaXVtIj5Gcm9tPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIiBpZD0iY29udmVydEZyb21BdmFpbGFibGUiPkF2YWlsYWJsZTogMC4wMDAwIFVTRFQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJjb252ZXJ0RnJvbUN1cnJlbmN5IiBjbGFzcz0iYmctZ3JheS03MDAgYm9yZGVyLW5vbmUgcm91bmRlZC1sZyBweC0zIHB5LTIgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQiIG9uY2hhbmdlPSJ1cGRhdGVDb252ZXJ0UHJldmlldygpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZHQiPlVTRFQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImJ0YyI+QlRDPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJldGgiPkVUSDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYm5iIj5CTkI8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZGMiPlVTREM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJjb252ZXJ0RnJvbUFtb3VudCIgY2xhc3M9ImJnLXRyYW5zcGFyZW50IGJvcmRlci1ub25lIHRleHQtd2hpdGUgdGV4dC14bCBmb250LWJvbGQgdGV4dC1yaWdodCBmbGV4LTEgZm9jdXM6b3V0bGluZS1ub25lIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgb25pbnB1dD0idXBkYXRlQ29udmVydFByZXZpZXcoKSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3dhcCBCdXR0b24gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktY2VudGVyIC1teS0yIHJlbGF0aXZlIHotMTAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic3dhcENvbnZlcnRDdXJyZW5jaWVzKCkiIGNsYXNzPSJ3LTEwIGgtMTAgYmctZ3JheS03MDAgaG92ZXI6YmctZ3JheS02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci0yIGJvcmRlci1ibGFjayB0cmFuc2l0aW9uLWFsbCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctdXAtZG93biB0ZXh0LXdoaXRlIHRleHQteHMiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUbyAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC00IGJvcmRlciBib3JkZXItZ3JheS03MDAvMzAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGZvbnQtbWVkaXVtIj5Ubzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCIgaWQ9ImNvbnZlcnRUb0F2YWlsYWJsZSI+QXZhaWxhYmxlOiAwLjAwMDAgQlRDPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iY29udmVydFRvQ3VycmVuY3kiIGNsYXNzPSJiZy1ncmF5LTcwMCBib3JkZXItbm9uZSByb3VuZGVkLWxnIHB4LTMgcHktMiB0ZXh0LXdoaXRlIHRleHQtc20gZm9udC1zZW1pYm9sZCIgb25jaGFuZ2U9InVwZGF0ZUNvbnZlcnRQcmV2aWV3KCkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnRjIj5CVEM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZHQiPlVTRFQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImV0aCI+RVRIPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idXNkYyI+VVNEQzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29udmVydFRvQW1vdW50IiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXJpZ2h0IGZsZXgtMSI+LS08L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSYXRlICYgQ29udmVydCBCdXR0b24gLS0+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMC8zMCByb3VuZGVkLXhsIHAtMyBtdC0yIGJvcmRlciBib3JkZXItZ3JheS03MDAvMjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCIgaWQ9ImNvbnZlcnRSYXRlIj4xIFVTRFQg4omIIC0tIEJUQzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayBtci0xIj48L2k+My0xMCBtaW48L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJleGVjdXRlQ29udmVydCgpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTMiIGlkPSJjb252ZXJ0QnRuIj48aSBjbGFzcz0iZmFzIGZhLWV4Y2hhbmdlLWFsdCBtci0yIj48L2k+Q29udmVydCBOb3c8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnZlcnNpb24gSGlzdG9yeSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXQtNiIgaWQ9ImNvbnZlcnNpb25IaXN0b3J5U2VjdGlvbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1zbSBmb250LWJvbGQgdGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS1oaXN0b3J5IHRleHQtYmx1ZS00MDAgbXItMiI+PC9pPkNvbnZlcnNpb24gSGlzdG9yeTwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkQ29udmVyc2lvbkhpc3RvcnkoKSIgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMSI+PGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29udmVyc2lvbkhpc3RvcnlMaXN0IiBjbGFzcz0ic3BhY2UteS0yIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFNQT1QgUEFORUwgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBpZD0ic3BvdFBhbmVsIiBjbGFzcz0idHJhZGUtcGFuZWwiPg0KICAgICAgICAgICAgICAgICAgICA8IS0tIEJ1eS9TZWxsIFRvZ2dsZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0VHJhZGVTaWRlKCdidXknKSIgY2xhc3M9ImZsZXgtMSBweS0zIHJvdW5kZWQteGwgZm9udC1ib2xkIHRleHQtc20gdHJhbnNpdGlvbi1hbGwgYmctZW1lcmFsZC02MDAgdGV4dC13aGl0ZSIgaWQ9InNwb3RCdXlCdG4iPkJ1eTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzZXRUcmFkZVNpZGUoJ3NlbGwnKSIgY2xhc3M9ImZsZXgtMSBweS0zIHJvdW5kZWQteGwgZm9udC1ib2xkIHRleHQtc20gdHJhbnNpdGlvbi1hbGwgYmctcm9zZS02MDAgdGV4dC13aGl0ZSIgaWQ9InNwb3RTZWxsQnRuIj5TZWxsPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8IS0tIEF2YWlsYWJsZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5BdmFpbGFibGU8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSIgaWQ9InNwb3RBdmFpbGFibGUiPjAuMDAgVVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwhLS0gT3JkZXIgVHlwZSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdE9yZGVyVHlwZSgnbGltaXQnKSIgY2xhc3M9InB4LTQgcHktMS41IHJvdW5kZWQtbGcgdGV4dC14cyBmb250LW1lZGl1bSBiZy13aGl0ZSB0ZXh0LWJsYWNrIiBpZD0ic3BvdFR5cGVMaW1pdCI+TGltaXQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdE9yZGVyVHlwZSgnbWFya2V0JykiIGNsYXNzPSJweC00IHB5LTEuNSByb3VuZGVkLWxnIHRleHQteHMgZm9udC1tZWRpdW0gYmctZ3JheS03MDAgdGV4dC1ncmF5LTQwMCIgaWQ9InNwb3RUeXBlTWFya2V0Ij5NYXJrZXQ8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwhLS0gUHJpY2UgLS0+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgYmxvY2sgbWItMSI+UHJpY2UgKFVTRFQpPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcHgtMyBweS0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ic3BvdFByaWNlIiBjbGFzcz0iYmctdHJhbnNwYXJlbnQgYm9yZGVyLW5vbmUgdGV4dC13aGl0ZSB0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgZmxleC0xIGZvY3VzOm91dGxpbmUtbm9uZSIgcGxhY2Vob2xkZXI9IjAuMDAiIHN0ZXA9IjAuMDEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWwtMiI+VVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPCEtLSBBbW91bnQgLS0+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgYmxvY2sgbWItMSI+QW1vdW50ICg8c3BhbiBpZD0ic3BvdEFtb3VudExhYmVsIj5CVEM8L3NwYW4+KTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTgwMC81MCByb3VuZGVkLXhsIHB4LTMgcHktMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InNwb3RBbW91bnQiIGNsYXNzPSJiZy10cmFuc3BhcmVudCBib3JkZXItbm9uZSB0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1zZW1pYm9sZCBmbGV4LTEgZm9jdXM6b3V0bGluZS1ub25lIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgb25pbnB1dD0iY2FsY3VsYXRlU3BvdFRvdGFsKCkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWwtMiIgaWQ9InNwb3RBbW91bnRVbml0Ij5CVEM8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwhLS0gUXVpY2sgJSAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoMjUpIiBjbGFzcz0iZmxleC0xIHB5LTEuNSBiZy1ncmF5LTcwMC81MCByb3VuZGVkLWxnIHRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj4yNSU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoNTApIiBjbGFzcz0iZmxleC0xIHB5LTEuNSBiZy1ncmF5LTcwMC81MCByb3VuZGVkLWxnIHRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj41MCU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoNzUpIiBjbGFzcz0iZmxleC0xIHB5LTEuNSBiZy1ncmF5LTcwMC81MCByb3VuZGVkLWxnIHRleHQteHMgdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIj43NSU8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2V0U3BvdFBlcmNlbnQoMTAwKSIgY2xhc3M9ImZsZXgtMSBweS0xLjUgYmctZ3JheS03MDAvNTAgcm91bmRlZC1sZyB0ZXh0LXhzIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSB0cmFuc2l0aW9uLWNvbG9ycyI+MTAwJTwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPCEtLSBUb3RhbCAtLT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBibG9jayBtYi0xIj5Ub3RhbCAoVVNEVCk8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgYmctZ3JheS04MDAvNTAgcm91bmRlZC14bCBweC0zIHB5LTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJzcG90VG90YWwiIGNsYXNzPSJiZy10cmFuc3BhcmVudCBib3JkZXItbm9uZSB0ZXh0LXdoaXRlIHRleHQtbGcgZm9udC1zZW1pYm9sZCBmbGV4LTEgZm9jdXM6b3V0bGluZS1ub25lIiBwbGFjZWhvbGRlcj0iMC4wMCIgcmVhZG9ubHk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSBtbC0yIj5VU0RUPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImV4ZWN1dGVTcG90VHJhZGUoKSIgY2xhc3M9InctZnVsbCBweS00IGJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNzAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHJvdW5kZWQteGwgdHJhbnNpdGlvbi1hbGwiIGlkPSJzcG90QWN0aW9uQnRuIj5CdXkgQlRDPC9idXR0b24+DQoNCiAgICAgICAgICAgICAgICAgICAgPCEtLSBPcmRlciBCb29rIC0tPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtdC01IGdsYXNzIHJvdW5kZWQtMnhsIHAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5PcmRlciBCb29rPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj5CVEMvVVNEVDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMyB0ZXh0LXhzIHRleHQtZ3JheS01MDAgbWItMSBweC0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5QcmljZTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1yaWdodCI+UXR5PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij5Ub3RhbDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ib3JkZXJCb29rQXNrcyIgY2xhc3M9InNwYWNlLXktMC41IG1iLTEiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHktMS41IHRleHQtY2VudGVyIGJvcmRlci15IGJvcmRlci1ncmF5LTcwMC81MCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJvcmRlckJvb2tNaWRQcmljZSI+LS08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im9yZGVyQm9va0JpZHMiIGNsYXNzPSJzcGFjZS15LTAuNSBtdC0xIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG10LTIgcHgtMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmb250LW1lZGl1bSIgaWQ9ImJpZFJhdGlvIj5CIDAlPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtcm9zZS00MDAgZm9udC1tZWRpdW0iIGlkPSJhc2tSYXRpbyI+UyAwJTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gRlVUVVJFUyBQQU5FTCAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJmdXR1cmVzUGFuZWwiIGNsYXNzPSJ0cmFkZS1wYW5lbCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IGJnLWdyYWRpZW50LXRvLXIgZnJvbS1ibHVlLTYwMC8yMCB0by1wdXJwbGUtNjAwLzIwIGJvcmRlci1ibHVlLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1ibHVlLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtIj5GdXR1cmVzIFRyYWRpbmc8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5CVENVU0RUIFBlcnBldHVhbDwvaDI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtdC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMiPk1hcmsgUHJpY2U8L3A+PHAgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJmdXR1cmVzQnRjUHJpY2UiPkxvYWRpbmcuLi48L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyI+MjRoIENoYW5nZTwvcD48cCBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCIgaWQ9ImZ1dHVyZXNCdGNDaGFuZ2UiPi0tPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1tZWRpdW0iPkxldmVyYWdlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIGZvbnQtYm9sZCB0ZXh0LXhsIiBpZD0ibGV2ZXJhZ2VWYWx1ZSI+MTB4PC9zcGFuPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhbmdlIiBtaW49IjEiIG1heD0iMTI1IiB2YWx1ZT0iMTAiIGNsYXNzPSJsZXZlcmFnZS1zbGlkZXIiIGlkPSJsZXZlcmFnZVNsaWRlciIgb25pbnB1dD0idXBkYXRlTGV2ZXJhZ2UodGhpcy52YWx1ZSkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTIiPjxzcGFuPjF4PC9zcGFuPjxzcGFuPjI1eDwvc3Bhbj48c3Bhbj41MHg8L3NwYW4+PHNwYW4+NzV4PC9zcGFuPjxzcGFuPjEwMHg8L3NwYW4+PHNwYW4+MTI1eDwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTMgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9Im9wZW5Qb3NpdGlvbignbG9uZycpIiBjbGFzcz0iZmxleC0xIHB5LTQgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCI+PGkgY2xhc3M9ImZhcyBmYS1hcnJvdy10cmVuZC11cCBtci0yIj48L2k+TG9uZzwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJvcGVuUG9zaXRpb24oJ3Nob3J0JykiIGNsYXNzPSJmbGV4LTEgcHktNCBiZy1yb3NlLTYwMCBob3ZlcjpiZy1yb3NlLTcwMCB0ZXh0LXdoaXRlIGZvbnQtYm9sZCByb3VuZGVkLXhsIHRyYW5zaXRpb24tYWxsIj48aSBjbGFzcz0iZmFzIGZhLWFycm93LXRyZW5kLWRvd24gbXItMiI+PC9pPlNob3J0PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+TWFyZ2luIChVU0RUKTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZnV0dXJlc01hcmdpbiIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIHBsYWNlaG9sZGVyPSIwLjAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTIgbXQtMyB0ZXh0LXNtIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMiI+PHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC14cyI+UG9zaXRpb24gU2l6ZTwvcD48cCBjbGFzcz0idGV4dC13aGl0ZSBmb250LW1lZGl1bSIgaWQ9InBvc2l0aW9uU2l6ZSI+MC4wMCBCVEM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIiPjxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQteHMiPkVzdC4gTGlxdWlkYXRpb248L3A+PHAgY2xhc3M9InRleHQtcm9zZS00MDAgZm9udC1tZWRpdW0iIGlkPSJsaXF1aWRhdGlvblByaWNlIj4tLTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBtYi0zIj5NYXJrZXQgSW5mbzwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHAtMiBiZy1ncmF5LTgwMCByb3VuZGVkLWxnIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RnVuZGluZyBSYXRlPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVtZXJhbGQtNDAwIj4wLjAxJTwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBwLTIgYmctZ3JheS04MDAgcm91bmRlZC1sZyI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPk5leHQgRnVuZGluZzwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+MDI6MzQ6MTI8L3NwYW4+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gcC0yIGJnLWdyYXktODAwIHJvdW5kZWQtbGciPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIj5PcGVuIEludGVyZXN0PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIj4kMi40Qjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBwLTIgYmctZ3JheS04MDAgcm91bmRlZC1sZyI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPjI0aCBWb2x1bWU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUiPiQxNS4yQjwvc3Bhbj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG10LTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPk9wZW4gUG9zaXRpb25zPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Im9wZW5Qb3NpdGlvbnMiIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS04IHRleHQtZ3JheS01MDAiPjxwPk5vIG9wZW4gcG9zaXRpb25zPC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIG10LTEiPlN0YXJ0IHRyYWRpbmcgdG8gc2VlIHlvdXIgcG9zaXRpb25zPC9wPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJpbnZlc3RTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20tYW1iZXItNjAwLzIwIHRvLW9yYW5nZS02MDAvMjAgYm9yZGVyLWFtYmVyLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWItMSI+VG90YWwgSW52ZXN0bWVudCBQcm9maXQ8L3A+DQogICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idGV4dC0zeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJpbnZlc3RUb3RhbFByb2ZpdCI+JDAuMDA8L2gyPg0KICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1hbWJlci00MDAgdGV4dC1zbSBtdC0xIj5Gcm9tIGFjdGl2ZSBpbnZlc3RtZW50czwvcD4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5JbnZlc3RtZW50IFBsYW5zPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+Q2hvb3NlIGEgcGxhbiAmIGVhcm4gZGFpbHk8L3NwYW4+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBpZD0iaW52ZXN0bWVudFBsYW5zTGlzdCIgY2xhc3M9InNwYWNlLXktMyBtYi02Ij48L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5NeSBBY3RpdmUgSW52ZXN0bWVudHM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvYWRJbnZlc3RtZW50cygpIiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgcC0xIj48aSBjbGFzcz0iZmFzIGZhLXJvdGF0ZS1yaWdodCI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFjdGl2ZUludmVzdG1lbnRzTGlzdCIgY2xhc3M9InNwYWNlLXktMyBtYi02Ij48L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImNvbXBsZXRlZEludmVzdG1lbnRzU2VjdGlvbiIgY2xhc3M9ImhpZGRlbiBtYi02Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj48aSBjbGFzcz0iZmFzIGZhLWNoZWNrLWNpcmNsZSB0ZXh0LWJsdWUtNDAwIG1yLTIiPjwvaT5Db21wbGV0ZWQgUGxhbnM8L2gzPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iY29tcGxldGVkSW52ZXN0bWVudHNMaXN0IiBjbGFzcz0ic3BhY2UteS0zIj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9IndpdGhkcmF3bkludmVzdG1lbnRzU2VjdGlvbiIgY2xhc3M9ImhpZGRlbiI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjay1kb3VibGUgdGV4dC1ncmF5LTQwMCBtci0yIj48L2k+QWxsIFByb2ZpdCBXaXRoZHJhd248L2gzPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0id2l0aGRyYXduSW52ZXN0bWVudHNMaXN0IiBjbGFzcz0ic3BhY2UteS0zIG9wYWNpdHktNjAiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgaWQ9IndhbGxldHNTZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20tZW1lcmFsZC02MDAvMjAgdG8tdGVhbC02MDAvMjAgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj48cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTEiPlRvdGFsIEJhbGFuY2U8L3A+PGgyIGNsYXNzPSJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC13aGl0ZSIgaWQ9IndhbGxldFRvdGFsQmFsYW5jZSI+JDAuMDA8L2gyPjxkaXYgY2xhc3M9ImZsZXggZ2FwLTMgbXQtNCI+PGJ1dHRvbiBvbmNsaWNrPSJzaG93RGVwb3NpdE1vZGFsKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy1lbWVyYWxkLTYwMCBob3ZlcjpiZy1lbWVyYWxkLTcwMCB0ZXh0LXdoaXRlIGZvbnQtc2VtaWJvbGQgcm91bmRlZC14bCI+PGkgY2xhc3M9ImZhcyBmYS1wbHVzIG1yLTIiPjwvaT5EZXBvc2l0PC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJzaG93V2l0aGRyYXdNb2RhbCgpIiBjbGFzcz0iZmxleC0xIHB5LTMgYmctZ3JheS03MDAgaG92ZXI6YmctZ3JheS02MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwiPjxpIGNsYXNzPSJmYXMgZmEtbWludXMgbXItMiI+PC9pPldpdGhkcmF3PC9idXR0b24+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPllvdXIgQXNzZXRzPC9oMz48ZGl2IGlkPSJ3YWxsZXRMaXN0IiBjbGFzcz0ic3BhY2UteS0zIj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyBtdC02IGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj5NeSBEZXBvc2l0cyA8c3BhbiBpZD0iZGVwb3NpdEJhZGdlIiBjbGFzcz0iaGlkZGVuIHB4LTIgcHktMC41IGJnLXllbGxvdy01MDAgdGV4dC1ibGFjayB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmb250LWJvbGQiPjA8L3NwYW4+PC9oMz48ZGl2IGlkPSJteURlcG9zaXRzTGlzdCIgY2xhc3M9InNwYWNlLXktMiI+PC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMgbXQtNiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPlJlY2VudCBUcmFuc2FjdGlvbnMgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkVHJhbnNhY3Rpb25zKCkiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTEiPjxpIGNsYXNzPSJmYXMgZmEtcm90YXRlLXJpZ2h0Ij48L2k+IFJlZnJlc2g8L2J1dHRvbj48L2gzPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlbiIgaWQ9InRyYW5zYWN0aW9uTGlzdCI+PGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIHRyYW5zYWN0aW9ucyB5ZXQ8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0iYWRtaW5TZWN0aW9uIiBjbGFzcz0ic2VjdGlvbi1jb250ZW50Ij4NCiAgICAgICAgICAgICAgICA8IS0tIEFkbWluIFN0YXRzIENhcmRzIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJnLWdyYWRpZW50LXRvLXIgZnJvbS1wdXJwbGUtNjAwLzIwIHRvLXBpbmstNjAwLzIwIGJvcmRlciBib3JkZXItcHVycGxlLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LTggaC04IGJnLXB1cnBsZS02MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY2xvY2sgdGV4dC1wdXJwbGUtNDAwIHRleHQtc20iPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIj5QZW5kaW5nPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJhZG1pblBlbmRpbmdDb3VudCI+MDwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJnLWdyYWRpZW50LXRvLXIgZnJvbS1lbWVyYWxkLTYwMC8yMCB0by10ZWFsLTYwMC8yMCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzMwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG1iLTEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctOCBoLTggYmctZW1lcmFsZC02MDAvMjAgcm91bmRlZC1sZyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY2hlY2stY2lyY2xlIHRleHQtZW1lcmFsZC00MDAgdGV4dC1zbSI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20iPkFwcHJvdmVkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJhZG1pbkFwcHJvdmVkQ291bnQiPjA8L3A+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQZW5kaW5nIFdpdGhkcmF3YWxzIFBhbmVsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXNoaWVsZC1oYWx2ZWQgdGV4dC1wdXJwbGUtNDAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVuZGluZyBXaXRoZHJhd2Fscw0KICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ibG9hZEFkbWluV2l0aGRyYXdhbHMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT4gUmVmcmVzaA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdy14LWF1dG8iIGlkPSJhZG1pbldpdGhkcmF3YWxzQ29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Mb2FkaW5nIHdpdGhkcmF3YWxzLi4uPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBQcm9maXQgV2l0aGRyYXdhbCBSZXF1ZXN0cyAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1jb2lucyB0ZXh0LWFtYmVyLTQwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2ZpdCBXaXRoZHJhd2FsIFJlcXVlc3RzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImFkbWluUHJvZml0V2l0aGRyYXdhbEJhZGdlIiBjbGFzcz0iaGlkZGVuIHB4LTIgcHktMC41IGJnLWFtYmVyLTUwMCB0ZXh0LWJsYWNrIHRleHQteHMgcm91bmRlZC1mdWxsIGZvbnQtYm9sZCI+MDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvYWRBZG1pblByb2ZpdFdpdGhkcmF3YWxzKCkiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtcm90YXRlLXJpZ2h0Ij48L2k+IFJlZnJlc2gNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iYWRtaW5Qcm9maXRXaXRoZHJhd2Fsc0NvbnRhaW5lciI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwLTggdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+TG9hZGluZyBwcm9maXQgd2l0aGRyYXdhbCByZXF1ZXN0cy4uLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUGVuZGluZyBEZXBvc2l0cyBQYW5lbCAtLT4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1hcnJvdy1kb3duIHRleHQtZW1lcmFsZC00MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZW5kaW5nIERlcG9zaXRzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImFkbWluRGVwb3NpdEJhZGdlIiBjbGFzcz0iaGlkZGVuIHB4LTIgcHktMC41IGJnLXllbGxvdy01MDAgdGV4dC1ibGFjayB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmb250LWJvbGQiPjA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkQWRtaW5EZXBvc2l0cygpIiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXJvdGF0ZS1yaWdodCI+PC9pPiBSZWZyZXNoDQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFkbWluRGVwb3NpdHNDb250YWluZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvYWRpbmcgZGVwb3NpdHMuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFBhc3N3b3JkIFJlc2V0IFJlcXVlc3RzIFBhbmVsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLWtleSB0ZXh0LWFtYmVyLTQwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3N3b3JkIFJlc2V0IENvZGVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9ImFkbWluUmVzZXRCYWRnZSIgY2xhc3M9ImhpZGRlbiBweC0yIHB5LTAuNSBiZy1hbWJlci01MDAgdGV4dC1ibGFjayB0ZXh0LXhzIHJvdW5kZWQtZnVsbCBmb250LWJvbGQiPjA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJsb2FkQWRtaW5QYXNzd29yZFJlc2V0UmVxdWVzdHMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT4gUmVmcmVzaA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pblBhc3N3b3JkUmVzZXRDb250YWluZXIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvYWRpbmcgcmVzZXQgcmVxdWVzdHMuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgbWItNCBiZy1ncmFkaWVudC10by1yIGZyb20tcHVycGxlLTYwMC8yMCB0by1waW5rLTYwMC8yMCBib3JkZXItcHVycGxlLTUwMC8zMCI+DQogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIHRleHQtc20gbWItMSI+QWRtaW4gVG90YWwgQmFsYW5jZTwvcD4NCiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJ0ZXh0LTN4bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+VW5saW1pdGVkPC9oMj4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtcHVycGxlLTQwMCB0ZXh0LXNtIG10LTEiPlNlbmQgYW55IGFtb3VudCB0byBjdXN0b21lcnM8L3A+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTMiPkF2YWlsYWJsZSBDdXJyZW5jaWVzPC9oMz4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0yIGdhcC0zIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gYnRjIHRleHQtbGciPjxpIGNsYXNzPSJmYWIgZmEtYml0Y29pbiI+PC9pPjwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5CaXRjb2luPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiPlVubGltaXRlZDwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uIGV0aCB0ZXh0LWxnIj48aSBjbGFzcz0iZmFiIGZhLWV0aGVyZXVtIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0iZm9udC1ib2xkIHRleHQtd2hpdGUiPkV0aGVyZXVtPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiPlVubGltaXRlZDwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC14bCBwLTMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uIHVzZHQgdGV4dC1sZyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+PC9kaXY+PGRpdj48cCBjbGFzcz0iZm9udC1ib2xkIHRleHQtd2hpdGUiPlRldGhlcjwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWVtZXJhbGQtNDAwIj5VbmxpbWl0ZWQ8L3A+PC9kaXY+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC0zIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiB1c2RjIHRleHQtbGciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTRweDsgZm9udC13ZWlnaHQ6NzAwOyI+JDwvc3Bhbj48L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSI+VVNEIENvaW48L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCI+VW5saW1pdGVkPC9wPjwvZGl2PjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtMyBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gYm5iIHRleHQtbGciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6ODAwOyI+Qjwvc3Bhbj48L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSI+Qk5CPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZW1lcmFsZC00MDAiPlVubGltaXRlZDwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTQgbWItNCI+PGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpIGNsYXNzPSJmYXMgZmEtcGFwZXItcGxhbmUgdGV4dC1wdXJwbGUtNDAwIj48L2k+RnVuZCBDdXN0b21lciBBY2NvdW50PC9oMz48Zm9ybSBvbnN1Ym1pdD0icmV0dXJuIGhhbmRsZUFkbWluVHJhbnNmZXIoZXZlbnQpIj48ZGl2IGNsYXNzPSJzcGFjZS15LTMiPjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkN1c3RvbWVyIEVtYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJ0cmFuc2ZlckN1c3RvbWVyRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iY3VzdG9tZXJAZW1haWwuY29tIiByZXF1aXJlZD48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5TZWxlY3QgQ3VycmVuY3k8L2xhYmVsPjxzZWxlY3QgaWQ9InRyYW5zZmVyQ3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIj48b3B0aW9uIHZhbHVlPSJidGMiPkJpdGNvaW4gKEJUQyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJldGgiPkV0aGVyZXVtIChFVEgpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0idXNkdCI+VGV0aGVyIChVU0RUKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZGMiPlVTRCBDb2luIChVU0RDKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJuYiI+Qk5CPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+QW1vdW50PC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idHJhbnNmZXJBbW91bnQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgcmVxdWlyZWQ+PHAgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBtdC0xIj4mIzEwMDAzOyBVbmxpbWl0ZWQgZnVuZHMgYXZhaWxhYmxlPC9wPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkRlc2NyaXB0aW9uIChzaG93biB0byBjdXN0b21lcik8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idHJhbnNmZXJEZXNjcmlwdGlvbiIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSJlLmcuIEludmVzdG1lbnQgYm9udXMsIFdlbGNvbWUgY3JlZGl0Li4uIj48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMyI+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+VHJhbnNmZXIgU3VtbWFyeTwvcD48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtdC0yIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RnJvbTo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUiPkFkbWluIFdhbGxldDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPlRvOjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSIgaWQ9InRyYW5zZmVyVG9FbWFpbCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkFtb3VudDo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUiIGlkPSJ0cmFuc2ZlclN1bW1hcnlBbW91bnQiPi08L3NwYW4+PC9kaXY+PC9kaXY+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJ3LWZ1bGwgcHktMyBiZy1ncmFkaWVudC10by1yIGZyb20tcHVycGxlLTYwMCB0by1waW5rLTYwMCBob3Zlcjpmcm9tLXB1cnBsZS03MDAgaG92ZXI6dG8tcGluay03MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwiPjxpIGNsYXNzPSJmYXMgZmEtcGFwZXItcGxhbmUgbXItMiI+PC9pPlNlbmQgRnVuZHM8L2J1dHRvbj48L2Rpdj48L2Zvcm0+PC9kaXY+DQogICAgICAgICAgICAgICAgPCEtLSBBZG1pbiBDaGF0IEluYm94IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IG10LTYiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtY29tbWVudHMgdGV4dC1lbWVyYWxkLTQwMCI+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXQgSW5ib3gNCiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0iYWRtaW5DaGF0QmFkZ2UiIGNsYXNzPSJoaWRkZW4gcHgtMiBweS0xIGJnLXJvc2UtNTAwIHRleHQtd2hpdGUgdGV4dC14cyByb3VuZGVkLWZ1bGwgZm9udC1ib2xkIj4wPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iYWRtaW5DaGF0Q29udmVyc2F0aW9ucyIgY2xhc3M9InNwYWNlLXktMiBtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8iPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC00IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPk5vIG1lc3NhZ2VzIHlldDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gQWRtaW4gQ2hhdCBQYW5lbCAoaGlkZGVuIGJ5IGRlZmF1bHQpIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImFkbWluQ2hhdFBhbmVsIiBjbGFzcz0iaGlkZGVuIGdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktNzAwIHBiLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAgaC0xMCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNjAwIHRvLXRlYWwtNjAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtdXNlciB0ZXh0LXdoaXRlIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSIgaWQ9ImFkbWluQ2hhdFVzZXJOYW1lIj5Vc2VyPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIiBpZD0iYWRtaW5DaGF0VXNlckVtYWlsIj51c2VyQGVtYWlsLmNvbTwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZUFkbWluQ2hhdCgpIiBjbGFzcz0idGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIj48aSBjbGFzcz0iZmFzIGZhLXRpbWVzIj48L2k+PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pbkNoYXRNZXNzYWdlcyIgY2xhc3M9ImgtNjQgb3ZlcmZsb3cteS1hdXRvIHNwYWNlLXktMyBtYi0zIHAtMiI+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZG1pbkNoYXRJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIGZsZXgtMSIgcGxhY2Vob2xkZXI9IlJlcGx5IHRvIHVzZXIuLi4iIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJylzZW5kQWRtaW5SZXBseSgpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2VuZEFkbWluUmVwbHkoKSIgY2xhc3M9InctMTIgaC0xMiBiZy1lbWVyYWxkLTYwMCBob3ZlcjpiZy1lbWVyYWxkLTcwMCByb3VuZGVkLXhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48aSBjbGFzcz0iZmFzIGZhLXBhcGVyLXBsYW5lIHRleHQtd2hpdGUiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMyI+QWxsIEN1c3RvbWVyczwvaDM+PGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgb3ZlcmZsb3ctaGlkZGVuIiBpZD0iYWRtaW5DdXN0b21lckxpc3QiPjxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5Mb2FkaW5nIGN1c3RvbWVycy4uLjwvcD48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gSW52ZXN0bWVudCBQbGFucyBNYW5hZ2VtZW50IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00IG10LTYiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYXMgZmEtZ2VtIHRleHQtYW1iZXItNDAwIj48L2k+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW52ZXN0bWVudCBQbGFucw0KICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ibG9hZEFkbWluUGxhbnMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT4gUmVmcmVzaA0KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pblBsYW5zQ29udGFpbmVyIiBjbGFzcz0ic3BhY2UteS0zIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icC00IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPkxvYWRpbmcgcGxhbnMuLi48L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJvcmRlci10IGJvcmRlci1ncmF5LTcwMCBwdC00Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtd2hpdGUgbWItMyI+Q3JlYXRlIE5ldyBQbGFuPC9oND4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJuZXdQbGFuTmFtZSIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iUGxhbiBOYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJuZXdQbGFuQ3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InVzZHQiPlVTRFQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnRjIj5CVEM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZXRoIj5FVEg8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idXNkYyI+VVNEQzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJuZXdQbGFuTWluIiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJNaW4gQW1vdW50Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0ibmV3UGxhbk1heCIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iTWF4IEFtb3VudCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9Im5ld1BsYW5EYWlseVJvaSIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iRGFpbHkgUk9JICUiIHN0ZXA9IjAuMSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgaWQ9Im5ld1BsYW5EdXJhdGlvbiIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iRHVyYXRpb24gKGRheXMpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJuZXdQbGFuRGVzYyIgY2xhc3M9ImlucHV0LWZpZWxkIG1iLTMiIHBsYWNlaG9sZGVyPSJEZXNjcmlwdGlvbiI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNyZWF0ZVBsYW4oKSIgY2xhc3M9InctZnVsbCBweS0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1hbWJlci02MDAgdG8tb3JhbmdlLTYwMCBob3Zlcjpmcm9tLWFtYmVyLTcwMCBob3Zlcjp0by1vcmFuZ2UtNzAwIHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLXBsdXMgbXItMiI+PC9pPkNyZWF0ZSBQbGFuDQogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgICAgICAgICA8IS0tIFByb2ZpdCBBY2NydWFsIC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIG1iLTQgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1jb2lucyB0ZXh0LXllbGxvdy00MDAiPjwvaT4NCiAgICAgICAgICAgICAgICAgICAgICAgIERhaWx5IFByb2ZpdCBEaXN0cmlidXRpb24NCiAgICAgICAgICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC14bCBwLTQgbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIG1iLTIiPkhvdyBpdCB3b3Jrczo8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBzcGFjZS15LTEgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjEuIENsaWNrICJBY2NydWUgUHJvZml0cyIgYmVsb3c8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4yLiBBbGwgYWN0aXZlIGludmVzdG1lbnRzIGdldCBkYWlseSBwcm9maXQgYWRkZWQgdG8gdGhlaXIgd2FsbGV0PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+My4gQ29tcGxldGVkIHBsYW5zIChkdXJhdGlvbiByZWFjaGVkKSBhcmUgYXV0by1tYXJrZWQ8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFjY3J1ZVByb2ZpdHMoKSIgY2xhc3M9ImZsZXgtMSBweS0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS15ZWxsb3ctNjAwIHRvLWFtYmVyLTYwMCBob3Zlcjpmcm9tLXllbGxvdy03MDAgaG92ZXI6dG8tYW1iZXItNzAwIHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhcyBmYS1wbGF5IG1yLTIiPjwvaT5BY2NydWUgUHJvZml0cw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pbkludmVzdG1lbnRzQ29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5DbGljayBhYm92ZSB0byBzZWUgYWN0aXZlIGludmVzdG1lbnRzPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgICAgICAgPCEtLSBSZWZlcnJhbCBDb2RlcyBNYW5hZ2VtZW50IC0tPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNCBtYi00Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48aSBjbGFzcz0iZmFzIGZhLWdpZnQgdGV4dC1lbWVyYWxkLTQwMCI+PC9pPlJlZmVycmFsIENvZGVzPC9oMz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ibG9hZFJlZmVycmFsQ29kZXMoKSIgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBob3Zlcjp0ZXh0LXdoaXRlIHAtMiI+PGkgY2xhc3M9ImZhcyBmYS1yb3RhdGUtcmlnaHQiPjwvaT48L2J1dHRvbj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJjcmVhdGVSZWZlcnJhbEZvcm0iIGNsYXNzPSJzcGFjZS15LTMgbWItNCBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCIgb25zdWJtaXQ9InJldHVybiBjcmVhdGVSZWZlcnJhbENvZGUoZXZlbnQpIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTMiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVmQ29kZUlucHV0IiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJDb2RlIChlLmcuIFdFTENPTUU1MCkiIG1heGxlbmd0aD0iNTAiIHN0eWxlPSJ0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IiByZXF1aXJlZD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0icmVmQm9udXNJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIiBwbGFjZWhvbGRlcj0iQm9udXMgYW1vdW50IiBzdGVwPSIwLjAxIiBtaW49IjAuMDEiIHJlcXVpcmVkPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0icmVmQ3VycmVuY3lJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIj48b3B0aW9uIHZhbHVlPSJ1c2R0Ij5VU0RUPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYnRjIj5CVEM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJldGgiPkVUSDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZGMiPlVTREM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPjwvc2VsZWN0Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJyZWZNYXhVc2FnZUlucHV0IiBjbGFzcz0iaW5wdXQtZmllbGQiIHBsYWNlaG9sZGVyPSJNYXggdXNlcyAoZGVmYXVsdDogMSkiIG1pbj0iMSIgdmFsdWU9IjEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS0zIj48aSBjbGFzcz0iZmFzIGZhLXBsdXMgbXItMiI+PC9pPkNyZWF0ZSBSZWZlcnJhbCBDb2RlPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icmVmZXJyYWxTdGF0cyIgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTMgZ2FwLTIgbWItMyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC8zMCI+PHAgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUiIGlkPSJyZWZTdGF0VG90YWwiPjA8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+VG90YWw8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBwLTIgcm91bmRlZC1sZyBiZy1ncmF5LTgwMC8zMCI+PHAgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC00MDAiIGlkPSJyZWZTdGF0QWN0aXZlIj4wPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkFjdGl2ZTwvcD48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtY2VudGVyIHAtMiByb3VuZGVkLWxnIGJnLWdyYXktODAwLzMwIj48cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1ibHVlLTQwMCIgaWQ9InJlZlN0YXRVc2VzIj4wPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlVzZXM8L3A+PC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVyZmxvdy14LWF1dG8iIGlkPSJyZWZlcnJhbENvZGVzQ29udGFpbmVyIj48ZGl2IGNsYXNzPSJwLTQgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PHA+TG9hZGluZyByZWZlcnJhbCBjb2Rlcy4uLjwvcD48L2Rpdj48L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDwhLS0gUGF5UGFsIFNldHRpbmdzIChBZG1pbikgLS0+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiPjxpIGNsYXNzPSJmYWIgZmEtcGF5cGFsIHRleHQtYmx1ZS00MDAiPjwvaT5QYXlQYWwgRGVwb3NpdCBTZXR0aW5nczwvaDM+DQogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImxvYWRBZG1pblBheXBhbEVtYWlsKCkiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiPjxpIGNsYXNzPSJmYXMgZmEtcm90YXRlLXJpZ2h0Ij48L2k+PC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQteGwgcC00IG1iLTQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCBtYi0yIj5TZXQgdGhlIFBheVBhbCBlbWFpbCBhZGRyZXNzIHdoZXJlIEV1cm9wZWFuIGN1c3RvbWVycyB3aWxsIHNlbmQgdGhlaXIgZGVwb3NpdHMuPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+VGhpcyBlbWFpbCB3aWxsIGJlIHNob3duIHRvIEVVIGN1c3RvbWVycyBpbiB0aGUgZGVwb3NpdCBtb2RhbC48L3A+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGFjZS15LTMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+UGF5UGFsIEVtYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJhZG1pblBheXBhbEVtYWlsIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9ImUuZy4gZGVwb3NpdHNAeW91cmNvbXBhbnkuY29tIj48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0ic2F2ZUFkbWluUGF5cGFsRW1haWwoKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IGZsZXgtMSBweS0zIj48aSBjbGFzcz0iZmFzIGZhLXNhdmUgbXItMiI+PC9pPlNhdmUgUGF5UGFsIEVtYWlsPC9idXR0b24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbGVhckFkbWluUGF5cGFsRW1haWwoKSIgY2xhc3M9InB5LTMgcHgtNCBiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgdGV4dC1zbSI+PGkgY2xhc3M9ImZhcyBmYS10cmFzaCI+PC9pPjwvYnV0dG9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJhZG1pblBheXBhbFN0YXR1cyIgY2xhc3M9Im10LTMgdGV4dC14cyB0ZXh0LWNlbnRlciI+PC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgPG5hdiBjbGFzcz0iYm90dG9tLW5hdiI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1hcm91bmQgcHgtMiI+PGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbignZGFzaGJvYXJkJykiIGNsYXNzPSJib3R0b20tbmF2LWl0ZW0gYWN0aXZlIiBpZD0ibmF2SG9tZSI+PGkgY2xhc3M9ImZhcyBmYS1ob21lIj48L2k+PHNwYW4+SG9tZTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCdtYXJrZXQnKSIgY2xhc3M9ImJvdHRvbS1uYXYtaXRlbSIgaWQ9Im5hdk1hcmtldCI+PGkgY2xhc3M9ImZhcyBmYS1jaGFydC1saW5lIj48L2k+PHNwYW4+TWFya2V0PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ2ludmVzdCcpIiBjbGFzcz0iYm90dG9tLW5hdi1pdGVtIiBpZD0ibmF2SW52ZXN0Ij48aSBjbGFzcz0iZmFzIGZhLXBpZ2d5LWJhbmsiPjwvaT48c3Bhbj5JbnZlc3Q8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJzaG93U2VjdGlvbigndHJhZGUnKSIgY2xhc3M9ImJvdHRvbS1uYXYtaXRlbSIgaWQ9Im5hdlRyYWRlIj48aSBjbGFzcz0iZmFzIGZhLWV4Y2hhbmdlLWFsdCI+PC9pPjxzcGFuPlRyYWRlPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gb25jbGljaz0ic2hvd1NlY3Rpb24oJ3dhbGxldHMnKSIgY2xhc3M9ImJvdHRvbS1uYXYtaXRlbSIgaWQ9Im5hdldhbGxldHMiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0Ij48L2k+PHNwYW4+V2FsbGV0czwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InNob3dTZWN0aW9uKCdhZG1pbicpIiBjbGFzcz0iYm90dG9tLW5hdi1pdGVtIGhpZGRlbiIgaWQ9Im5hdkFkbWluIj48aSBjbGFzcz0iZmFzIGZhLWNyb3duIj48L2k+PHNwYW4+QWRtaW48L3NwYW4+PC9idXR0b24+PC9kaXY+PC9uYXY+DQoNCiAgICAgICAgICAgIDwhLS0gQ3VzdG9tIENvbmZpcm0gTW9kYWwgLS0+DQogICAgICAgICAgICA8ZGl2IGlkPSJjb25maXJtTW9kYWwiIGNsYXNzPSJtb2RhbCIgc3R5bGU9InotaW5kZXg6MTAwMTsiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctc20gbS00Ij48ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi01Ij48ZGl2IGNsYXNzPSJ3LTE0IGgtMTQgYmctYmx1ZS01MDAvMTAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItMyI+PGkgY2xhc3M9ImZhcyBmYS1xdWVzdGlvbi1jaXJjbGUgdGV4dC1ibHVlLTQwMCB0ZXh0LTJ4bCI+PC9pPjwvZGl2PjxwIGlkPSJjb25maXJtTW9kYWxNZXNzYWdlIiBjbGFzcz0idGV4dC13aGl0ZSB0ZXh0LXNtIj5BcmUgeW91IHN1cmU/PC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggZ2FwLTMiPjxidXR0b24gb25jbGljaz0ib25Db25maXJtQ2FuY2VsKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LW1lZGl1bSI+Q2FuY2VsPC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJvbkNvbmZpcm1PaygpIiBjbGFzcz0iZmxleC0xIHB5LTMgYmctd2hpdGUgaG92ZXI6YmctZ3JheS0yMDAgdGV4dC1ibGFjayByb3VuZGVkLXhsIHRleHQtc20gZm9udC1ib2xkIj5Db25maXJtPC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gQ3VzdG9tIFByb21wdCBNb2RhbCAtLT4NCiAgICAgICAgICAgIDxkaXYgaWQ9InByb21wdE1vZGFsIiBjbGFzcz0ibW9kYWwiIHN0eWxlPSJ6LWluZGV4OjEwMDE7Ij48ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgdy1mdWxsIG1heC13LXNtIG0tNCI+PGRpdiBjbGFzcz0ibWItNCI+PHAgaWQ9InByb21wdE1vZGFsTWVzc2FnZSIgY2xhc3M9InRleHQtd2hpdGUgdGV4dC1zbSBtYi0zIj5FbnRlciB2YWx1ZTo8L3A+PGlucHV0IHR5cGU9InRleHQiIGlkPSJwcm9tcHRNb2RhbElucHV0IiBjbGFzcz0iaW5wdXQtZmllbGQgdy1mdWxsIiBwbGFjZWhvbGRlcj0iIj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGdhcC0zIj48YnV0dG9uIG9uY2xpY2s9Im9uUHJvbXB0Q2FuY2VsKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LXdoaXRlIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LW1lZGl1bSI+Q2FuY2VsPC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJvblByb21wdE9rKCkiIGNsYXNzPSJmbGV4LTEgcHktMyBiZy13aGl0ZSBob3ZlcjpiZy1ncmF5LTIwMCB0ZXh0LWJsYWNrIHJvdW5kZWQteGwgdGV4dC1zbSBmb250LWJvbGQiPk9LPC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gTW9kYWxzIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0iZGVwb3NpdE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00IiBzdHlsZT0ibWF4LWhlaWdodDo5MHZoO292ZXJmbG93LXk6YXV0bzsiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij48aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPkRlcG9zaXQ8L2gzPjxidXR0b24gb25jbGljaz0iY2xvc2VNb2RhbCgnZGVwb3NpdE1vZGFsJykiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+U2VsZWN0IEN1cnJlbmN5PC9sYWJlbD48c2VsZWN0IGlkPSJkZXBvc2l0Q3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBvbmNoYW5nZT0idXBkYXRlRGVwb3NpdEFkZHJlc3MoKSI+PG9wdGlvbiB2YWx1ZT0iYnRjIj5CaXRjb2luIChCVEMpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZXRoIj5FdGhlcmV1bSAoRVRIKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZHQiPlRldGhlciAoVVNEVCk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2RjIj5VU0QgQ29pbiAoVVNEQyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgaWQ9ImRlcG9zaXRQYXlwYWxPcHRpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+UGF5bWVudCBNZXRob2Q8L2xhYmVsPjxzZWxlY3QgaWQ9ImRlcG9zaXRNZXRob2QiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBvbmNoYW5nZT0ib25EZXBvc2l0TWV0aG9kQ2hhbmdlKCkiPjxvcHRpb24gdmFsdWU9ImNyeXB0byI+Q3J5cHRvY3VycmVuY3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJwYXlwYWwiPlBheVBhbDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgaWQ9ImRlcG9zaXRDcnlwdG9TZWN0aW9uIiBzdHlsZT0iZGlzcGxheTpibG9jazsiPjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQteGwgcC00IHRleHQtY2VudGVyIj48cCBjbGFzcz0idGV4dC1ncmF5LTQwMCB0ZXh0LXNtIG1iLTIiPlNlbmQgVG8gQWRkcmVzczwvcD48Y29kZSBpZD0iZGVwb3NpdEFkZHJlc3MiIGNsYXNzPSJ0ZXh0LXdoaXRlIHRleHQtc20gYnJlYWstYWxsIj5iYzFxa3Z1Yzc5eXRjdzczNDN5a25wM2Z5YTR1d3dkNGoyd2E3N2Z0bnU8L2NvZGU+PGJ1dHRvbiBvbmNsaWNrPSJjb3B5RGVwb3NpdEFkZHJlc3MoKSIgY2xhc3M9Im10LTMgcHgtNCBweS0yIGJnLXdoaXRlIHRleHQtYmxhY2sgcm91bmRlZC1sZyBmb250LW1lZGl1bSI+PGkgY2xhc3M9ImZhcyBmYS1jb3B5IG1yLTIiPjwvaT5Db3B5PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZGVwb3NpdFBheXBhbFNlY3Rpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGNsYXNzPSJiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQteGwgcC00IHRleHQtY2VudGVyIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiBtYi0yIj48aSBjbGFzcz0iZmFiIGZhLXBheXBhbCB0ZXh0LWJsdWUtNDAwIHRleHQtMnhsIj48L2k+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1ib2xkIj5QYXlQYWw8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYmctYW1iZXItNTAwLzEwIGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIHJvdW5kZWQtbGcgcC0yIG1iLTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIj48aSBjbGFzcz0iZmFzIGZhLWNsb2NrIHRleHQtYW1iZXItNDAwIHRleHQtc20iPjwvaT48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTMwMCBmb250LW1lZGl1bSI+RGVwb3NpdCBkZXRhaWxzIHZhbGlkIGZvciAyNCBob3VycyBvbmx5PC9zcGFuPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS0zMDAgbWItMiI+U2VuZCB5b3VyIGRlcG9zaXQgdG8gdGhpcyBQYXlQYWwgYWRkcmVzczo8L3A+PGRpdiBjbGFzcz0iYmctZ3JheS05MDAgcm91bmRlZC1sZyBwLTMiPjxjb2RlIGlkPSJkZXBvc2l0UGF5cGFsRGlzcGxheUVtYWlsIiBjbGFzcz0idGV4dC1zbSB0ZXh0LXdoaXRlIGJyZWFrLWFsbCI+TG9hZGluZy4uLjwvY29kZT48L2Rpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG10LTIiPlN1Ym1pdCB3aXRoaW4gMjQgaG91cnMgb3IgcmVxdWVzdCBuZXcgZGV0YWlsczwvcD48cCBpZD0icGF5cGFsRXhwaXJ5RGlzcGxheSIgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmb250LW1lZGl1bSBtdC0yIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYm9yZGVyLXQgYm9yZGVyLWdyYXktNzAwIHB0LTQiPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItMyBmb250LXNlbWlib2xkIj5TdWJtaXQgRGVwb3NpdCBmb3IgQXBwcm92YWw8L3A+PGRpdiBjbGFzcz0ic3BhY2UteS0zIj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5BbW91bnQgKFVTRCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJkZXBvc2l0QW1vdW50IiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9Ijc1MC4wMCIgc3RlcD0iMC4wMSI+PC9kaXY+PGRpdiBpZD0iZGVwb3NpdFBheXBhbEVtYWlsUm93IiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPllvdXIgUGF5UGFsIEVtYWlsPC9sYWJlbD48aW5wdXQgdHlwZT0iZW1haWwiIGlkPSJkZXBvc2l0UGF5cGFsRW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0ieW91ckBwYXlwYWwuY29tIj48L2Rpdj48ZGl2IGlkPSJkZXBvc2l0VHhIYXNoUm93Ij48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+VHJhbnNhY3Rpb24gSGFzaCAvIFByb29mIElEIChvcHRpb25hbCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVwb3NpdFR4SGFzaCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSIweC4uLiBvciB0eGlkIC8gcmVjZWlwdCBJRCI+PC9kaXY+PGRpdiBpZD0iZGVwb3NpdEZyb21BZGRyZXNzUm93Ij48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+RnJvbSBBZGRyZXNzIChvcHRpb25hbCk8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZGVwb3NpdEZyb21BZGRyZXNzIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9IllvdXIgc2VuZGluZyB3YWxsZXQgYWRkcmVzcyI+PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJzdWJtaXREZXBvc2l0KCkiIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktMyI+PGkgY2xhc3M9ImZhcyBmYS1wYXBlci1wbGFuZSBtci0yIj48L2k+U3VibWl0IERlcG9zaXQ8L2J1dHRvbj48L2Rpdj48L2Rpdj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIHRleHQtY2VudGVyIG10LTMiPllvdXIgZGVwb3NpdCB3aWxsIGJlIHJldmlld2VkIGFuZCBjcmVkaXRlZCB3aXRoaW4gMjQgaG91cnMuPC9wPjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJ3aXRoZHJhd01vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00IiBzdHlsZT0ibWF4LWhlaWdodDo5MHZoO292ZXJmbG93LXk6YXV0bzsiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij48aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPldpdGhkcmF3PC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ3dpdGhkcmF3TW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyB0ZXh0LXhsIj48L2k+PC9idXR0b24+PC9kaXY+PGZvcm0gb25zdWJtaXQ9InJldHVybiBoYW5kbGVXaXRoZHJhdyhldmVudCkiPjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+Q3VycmVuY3k8L2xhYmVsPjxzZWxlY3QgaWQ9IndpdGhkcmF3Q3VycmVuY3kiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBvbmNoYW5nZT0idXBkYXRlV2l0aGRyYXdBdmFpbGFibGUoKSI+PG9wdGlvbiB2YWx1ZT0iYnRjIj5CaXRjb2luIChCVEMpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZXRoIj5FdGhlcmV1bSAoRVRIKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InVzZHQiPlRldGhlciAoVVNEVCk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ1c2RjIj5VU0QgQ29pbiAoVVNEQyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJibmIiPkJOQjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPldpdGhkcmF3YWwgTWV0aG9kPC9sYWJlbD48c2VsZWN0IGlkPSJ3aXRoZHJhd01ldGhvZCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIG9uY2hhbmdlPSJvbldpdGhkcmF3TWV0aG9kQ2hhbmdlKCkiPjxvcHRpb24gdmFsdWU9ImNyeXB0byI+Q3J5cHRvY3VycmVuY3k8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJ3aXJlIj5XaXJlIFRyYW5zZmVyPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdiBpZD0id2l0aGRyYXdDcnlwdG9TZWN0aW9uIj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5SZWNpcGllbnQgQWRkcmVzczwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aXRoZHJhd0FkZHJlc3MiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iRW50ZXIgd2FsbGV0IGFkZHJlc3MuLi4iPjwvZGl2PjwvZGl2PjxkaXYgaWQ9IndpdGhkcmF3V2lyZVNlY3Rpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGNsYXNzPSJiZy1hbWJlci01MDAvMTAgYm9yZGVyIGJvcmRlci1hbWJlci01MDAvMjAgcm91bmRlZC1sZyBwLTMgbWItMyI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1hbWJlci0zMDAiPjxpIGNsYXNzPSJmYXMgZmEtY2xvY2sgbXItMSI+PC9pPldpcmUgdHJhbnNmZXJzIGFyZSBwcm9jZXNzZWQgd2l0aGluIDEtMyBidXNpbmVzcyBkYXlzPC9wPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkJhbmsgTmFtZTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aXRoZHJhd0JhbmtOYW1lIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9ImUuZy4gQmFuayBvZiBBbWVyaWNhIj48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5BY2NvdW50IEhvbGRlciBOYW1lPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9IndpdGhkcmF3QWNjb3VudEhvbGRlciIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSJGdWxsIG5hbWUgb24gYWNjb3VudCI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+QWNjb3VudCBOdW1iZXI8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0id2l0aGRyYXdBY2NvdW50TnVtYmVyIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9IkFjY291bnQgbnVtYmVyIj48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5Sb3V0aW5nIE51bWJlcjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ3aXRoZHJhd1JvdXRpbmdOdW1iZXIiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iUm91dGluZyBudW1iZXIiPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPlNXSUZUL0JJQyBDb2RlPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9IndpdGhkcmF3U3dpZnRDb2RlIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMSIgcGxhY2Vob2xkZXI9IlNXSUZUIGNvZGUgKG9wdGlvbmFsKSI+PC9kaXY+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+QW1vdW50PC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0id2l0aGRyYXdBbW91bnQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgcmVxdWlyZWQ+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkF2YWlsYWJsZTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSIgaWQ9IndpdGhkcmF3QXZhaWxhYmxlIj4wLjAwMDAgQlRDPC9zcGFuPjwvZGl2PjxidXR0b24gdHlwZT0ic3VibWl0IiBpZD0id2l0aGRyYXdTdWJtaXRCdG4iIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktNCI+V2l0aGRyYXc8L2J1dHRvbj48L2Rpdj48L2Zvcm0+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgaWQ9ImludmVzdE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00Ij48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItNCI+PGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIiBpZD0iaW52ZXN0TW9kYWxUaXRsZSI+SW52ZXN0PC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ2ludmVzdE1vZGFsJykiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC14bCBwLTQiPjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIG1iLTIiPjxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPlBsYW48L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCIgaWQ9ImludmVzdE1vZGFsUGxhbk5hbWUiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gbWItMiI+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+RGFpbHkgUk9JPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LWVtZXJhbGQtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJpbnZlc3RNb2RhbFJvaSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiBtYi0yIj48c3BhbiBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5EdXJhdGlvbjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIiBpZD0iaW52ZXN0TW9kYWxEdXJhdGlvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiI+PHNwYW4gY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+Q3VycmVuY3k8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCIgaWQ9ImludmVzdE1vZGFsQ3VycmVuY3kiPi08L3NwYW4+PC9kaXY+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+SW52ZXN0bWVudCBBbW91bnQ8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJpbnZlc3RBbW91bnQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iMC4wMCIgc3RlcD0iMC4wMDAwMDAwMSIgb25pbnB1dD0idXBkYXRlSW52ZXN0UHJldmlldygpIj48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMyI+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBtYi0yIj5JbnZlc3RtZW50IFByZXZpZXc8L3A+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkRhaWx5IFByb2ZpdDo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZW1lcmFsZC00MDAgZm9udC1tZWRpdW0iIGlkPSJpbnZlc3RQcmV2aWV3RGFpbHkiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPlRvdGFsIFByb2ZpdDo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtZW1lcmFsZC00MDAgZm9udC1tZWRpdW0iIGlkPSJpbnZlc3RQcmV2aWV3VG90YWwiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPkF2YWlsYWJsZTo8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1tZWRpdW0iIGlkPSJpbnZlc3RQcmV2aWV3QXZhaWxhYmxlIj4tPC9zcGFuPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAiPkJhbGFuY2Ugd2lsbCBiZSBkZWR1Y3RlZCBpbW1lZGlhdGVseS4gUHJvZml0cyBhcmUgYWRkZWQgdG8geW91ciB3YWxsZXQgZGFpbHkuPC9wPjxidXR0b24gaWQ9ImNvbmZpcm1JbnZlc3RCdG4iIG9uY2xpY2s9InN1Ym1pdEludmVzdG1lbnQoKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS00Ij5Db25maXJtIEludmVzdG1lbnQ8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPGRpdiBpZD0iY2hhbmdlUGFzc3dvcmRNb2RhbCIgY2xhc3M9Im1vZGFsIj48ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgdy1mdWxsIG1heC13LW1kIG0tNCI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPjxoMyBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+Q2hhbmdlIFBhc3N3b3JkPC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ2NoYW5nZVBhc3N3b3JkTW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyB0ZXh0LXhsIj48L2k+PC9idXR0b24+PC9kaXY+PGZvcm0gb25zdWJtaXQ9InJldHVybiBoYW5kbGVDaGFuZ2VQYXNzd29yZChldmVudCkiPjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+Q3VycmVudCBQYXNzd29yZDwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtd3JhcHBlciI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0iY3VycmVudFBhc3N3b3JkIiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMiIgcGxhY2Vob2xkZXI9IkVudGVyIGN1cnJlbnQgcGFzc3dvcmQiIHJlcXVpcmVkIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjUwcHg7Ij48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgc3R5bGU9InJpZ2h0OjhweDt0b3A6Y2FsYyg1MCUgKyA0cHgpOyIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ2N1cnJlbnRQYXNzd29yZCcsIHRoaXMpIj48aSBjbGFzcz0iZmFzIGZhLWV5ZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPk5ldyBQYXNzd29yZDwvbGFiZWw+PGRpdiBjbGFzcz0icGFzc3dvcmQtd3JhcHBlciI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0ibmV3UGFzc3dvcmQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iTWluIDYgY2hhcmFjdGVycyIgcmVxdWlyZWQgbWlubGVuZ3RoPSI2IiBzdHlsZT0icGFkZGluZy1yaWdodDo1MHB4OyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJwYXNzd29yZC10b2dnbGUiIHN0eWxlPSJyaWdodDo4cHg7dG9wOmNhbGMoNTAlICsgNHB4KTsiIG9uY2xpY2s9InRvZ2dsZVBhc3N3b3JkKCduZXdQYXNzd29yZCcsIHRoaXMpIj48aSBjbGFzcz0iZmFzIGZhLWV5ZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkNvbmZpcm0gTmV3IFBhc3N3b3JkPC9sYWJlbD48ZGl2IGNsYXNzPSJwYXNzd29yZC13cmFwcGVyIj48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJjb25maXJtTmV3UGFzc3dvcmQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iUmUtZW50ZXIgbmV3IHBhc3N3b3JkIiByZXF1aXJlZCBtaW5sZW5ndGg9IjYiIHN0eWxlPSJwYWRkaW5nLXJpZ2h0OjUwcHg7Ij48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgc3R5bGU9InJpZ2h0OjhweDt0b3A6Y2FsYyg1MCUgKyA0cHgpOyIgb25jbGljaz0idG9nZ2xlUGFzc3dvcmQoJ2NvbmZpcm1OZXdQYXNzd29yZCcsIHRoaXMpIj48aSBjbGFzcz0iZmFzIGZhLWV5ZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTQiPjxpIGNsYXNzPSJmYXMgZmEtbG9jayBtci0yIj48L2k+VXBkYXRlIFBhc3N3b3JkPC9idXR0b24+PC9kaXY+PC9mb3JtPjwvZGl2PjwvZGl2Pg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJmb3Jnb3RQYXNzd29yZE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctbWQgbS00IiBzdHlsZT0ibWF4LWhlaWdodDo5MHZoO292ZXJmbG93LXk6YXV0bzsiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00Ij48aDMgY2xhc3M9InRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUiPlJlc2V0IFBhc3N3b3JkPC9oMz48YnV0dG9uIG9uY2xpY2s9ImNsb3NlTW9kYWwoJ2ZvcmdvdFBhc3N3b3JkTW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyB0ZXh0LXhsIj48L2k+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic3BhY2UteS00Ij48ZGl2IGlkPSJmb3Jnb3RFbWFpbFNlY3Rpb24iPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbWItMyI+RW50ZXIgeW91ciByZWdpc3RlcmVkIGVtYWlsIHRvIHJlcXVlc3QgYSBwYXNzd29yZCByZXNldC48L3A+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+RW1haWwgQWRkcmVzczwvbGFiZWw+PGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iZm9yZ290RW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0ieW91QGV4YW1wbGUuY29tIj48L2Rpdj48YnV0dG9uIG9uY2xpY2s9InN1Ym1pdEZvcmdvdFBhc3N3b3JkKCkiIGNsYXNzPSJidG4tcHJpbWFyeSB3LWZ1bGwgcHktNCBtdC0yIj48aSBjbGFzcz0iZmFzIGZhLXBhcGVyLXBsYW5lIG1yLTIiPjwvaT5SZXF1ZXN0IFJlc2V0PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZm9yZ290Q29kZVNlY3Rpb24iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48ZGl2IGNsYXNzPSJiZy1ibHVlLTUwMC8xMCBib3JkZXIgYm9yZGVyLWJsdWUtNTAwLzIwIHJvdW5kZWQteGwgcC00IG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtYmx1ZS00MDAgbWItMiI+PGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtaW5mbyBtci0xIj48L2k+PHN0cm9uZz5Db2RlIEdlbmVyYXRlZCBTdWNjZXNzZnVsbHk8L3N0cm9uZz48L3A+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTMwMCI+QSA2LWRpZ2l0IHZlcmlmaWNhdGlvbiBjb2RlIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHlvdXIgYWNjb3VudC48L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctYW1iZXItNTAwLzEwIGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIHJvdW5kZWQteGwgcC00IG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtYW1iZXItNDAwIG1iLTIiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCBtci0xIj48L2k+PHN0cm9uZz5Ib3cgdG8gR2V0IFlvdXIgQ29kZTwvc3Ryb25nPjwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIG1iLTIiPjEuIE9wZW4gPHN0cm9uZz5MaXZlIFN1cHBvcnQ8L3N0cm9uZz4gY2hhdCAoYm90dG9tIHJpZ2h0KTwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIG1iLTIiPjIuIFRlbGwgdGhlIGFnZW50IHlvdXIgZW1haWwgYWRkcmVzczwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIj4zLiBUaGUgYWdlbnQgd2lsbCBzZW5kIHlvdSB0aGUgNi1kaWdpdCBjb2RlPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQteGwgcC00IHRleHQtY2VudGVyIG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+Q29kZSBFeHBpcmVzIEluPC9wPjxwIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj4zMCBtaW51dGVzPC9wPjwvZGl2PjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgdGV4dC1jZW50ZXIiPklmIG5vIGFnZW50IGlzIG9ubGluZSwgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlciB3aGVuIHN1cHBvcnQgaXMgYXZhaWxhYmxlLjwvcD48aHIgY2xhc3M9ImJvcmRlci1ncmF5LTcwMCBteS0zIj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5FbnRlciA2LURpZ2l0IENvZGUgZnJvbSBTdXBwb3J0PC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvcmdvdENvZGVJbnB1dCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIHBsYWNlaG9sZGVyPSIwMDAwMDAiIG1heGxlbmd0aD0iNiI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+TmV3IFBhc3N3b3JkPC9sYWJlbD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJmb3Jnb3ROZXdQYXNzd29yZCIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTIiIHBsYWNlaG9sZGVyPSJNaW4gNiBjaGFyYWN0ZXJzIiBtaW5sZW5ndGg9IjYiPjwvZGl2PjxkaXY+PGxhYmVsIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkNvbmZpcm0gTmV3IFBhc3N3b3JkPC9sYWJlbD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJmb3Jnb3RDb25maXJtUGFzc3dvcmQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iUmUtZW50ZXIgbmV3IHBhc3N3b3JkIiBtaW5sZW5ndGg9IjYiPjwvZGl2PjxidXR0b24gb25jbGljaz0ic3VibWl0UmVzZXRQYXNzd29yZCgpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTQiPjxpIGNsYXNzPSJmYXMgZmEtbG9jayBtci0yIj48L2k+UmVzZXQgUGFzc3dvcmQ8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBTdXBwb3J0IE1vZGFsIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0ic3VwcG9ydE1vZGFsIiBjbGFzcz0ibW9kYWwiIHN0eWxlPSJ6LWluZGV4OjEwMDthbGlnbi1pdGVtczpmbGV4LWVuZDtwYWRkaW5nLWJvdHRvbToyMHB4OyI+PGRpdiBjbGFzcz0iZ2xhc3Mgcm91bmRlZC0yeGwgdy1mdWxsIG1heC13LW1kIG0tNCBmbGV4IGZsZXgtY29sIiBzdHlsZT0ibWF4LWhlaWdodDo4MHZoOyI+PGRpdiBjbGFzcz0icC00IGJvcmRlci1iIGJvcmRlci1ncmF5LTcwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTYwMCB0by10ZWFsLTYwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIj48L2k+PC9kaXY+PGRpdj48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj5MaXZlIFN1cHBvcnQ8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCIgaWQ9ImNoYXRTdGF0dXMiPk9ubGluZTwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PGJ1dHRvbiBvbmNsaWNrPSJ0b2dnbGVDaGF0U291bmQoKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiIGlkPSJjaGF0U291bmRCdG4iPjxpIGNsYXNzPSJmYXMgZmEtdm9sdW1lLXVwIj48L2k+PC9idXR0b24+PGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFsKCdzdXBwb3J0TW9kYWwnKSIgY2xhc3M9InRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC13aGl0ZSBwLTIiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gcC00IHNwYWNlLXktMyIgaWQ9ImNoYXRNZXNzYWdlc0NvbnRhaW5lciIgc3R5bGU9Im1pbi1oZWlnaHQ6MzAwcHg7Ij48ZGl2IGlkPSJjaGF0R3Vlc3RGb3JtIiBjbGFzcz0iY2hhdC1ndWVzdC1mb3JtIHNwYWNlLXktMyI+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+UGxlYXNlIGVudGVyIHlvdXIgZGV0YWlscyB0byBzdGFydCBjaGF0dGluZyB3aXRoIG91ciBTdXBwb3J0IEFnZW50LjwvcD48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Zb3VyIE5hbWU8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2hhdEd1ZXN0TmFtZSIgY2xhc3M9ImlucHV0LWZpZWxkIG10LTEiIHBsYWNlaG9sZGVyPSJKb2huIERvZSI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+WW91ciBFbWFpbDwvbGFiZWw+PGlucHV0IHR5cGU9ImVtYWlsIiBpZD0iY2hhdEd1ZXN0RW1haWwiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0xIiBwbGFjZWhvbGRlcj0iam9obkBleGFtcGxlLmNvbSI+PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJzYXZlR3Vlc3RDaGF0SW5mbygpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTIgdGV4dC1zbSI+PGkgY2xhc3M9ImZhcyBmYS1jb21tZW50IG1yLTIiPjwvaT5TdGFydCBDaGF0PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2hhdE1lc3NhZ2VzTGlzdCIgY2xhc3M9InNwYWNlLXktMyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icC00IGJvcmRlci10IGJvcmRlci1ncmF5LTcwMCI+PGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJjaGF0SW5wdXQiIGNsYXNzPSJpbnB1dC1maWVsZCBmbGV4LTEiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgbWVzc2FnZS4uLiIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInKXNlbmRDaGF0TWVzc2FnZSgpIj48YnV0dG9uIG9uY2xpY2s9InNlbmRDaGF0TWVzc2FnZSgpIiBjbGFzcz0icHgtNCBweS0yIGJnLXdoaXRlIHRleHQtYmxhY2sgcm91bmRlZC14bCBmb250LW1lZGl1bSI+PGkgY2xhc3M9ImZhcyBmYS1wYXBlci1wbGFuZSI+PC9pPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQogICAgICAgICAgICA8IS0tIEVkaXQgSW52ZXN0bWVudCBNb2RhbCAoQWRtaW4pIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0iZWRpdEludmVzdG1lbnRNb2RhbCIgY2xhc3M9Im1vZGFsIj48ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLTJ4bCBwLTUgdy1mdWxsIG1heC13LW1kIG0tNCI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTQiPjxoMyBjbGFzcz0idGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZSI+PGkgY2xhc3M9ImZhcyBmYS1lZGl0IHRleHQtYW1iZXItNDAwIG1yLTIiPjwvaT5FZGl0IEludmVzdG1lbnQ8L2gzPjxidXR0b24gb25jbGljaz0iY2xvc2VFZGl0SW52ZXN0bWVudE1vZGFsKCkiIGNsYXNzPSJ0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUiPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgdGV4dC14bCI+PC9pPjwvYnV0dG9uPjwvZGl2PjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlZGl0SW52SWQiPjxkaXYgY2xhc3M9InNwYWNlLXktNCI+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+VG90YWwgUHJvZml0PC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0iZWRpdFRvdGFsUHJvZml0IiBjbGFzcz0iaW5wdXQtZmllbGQgbXQtMiIgcGxhY2Vob2xkZXI9Ijc1MC4wMCIgc3RlcD0iMC4wMSI+PC9kaXY+PGRpdj48bGFiZWwgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+V2l0aGRyYXduIFByb2ZpdDwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9ImVkaXRXaXRoZHJhd25Qcm9maXQiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIiBwbGFjZWhvbGRlcj0iNzUwLjAwIiBzdGVwPSIwLjAxIj48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLXhsIHAtMyI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5BdmFpbGFibGUgUHJvZml0PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ibHVlLTQwMCIgaWQ9ImVkaXRBdmFpbGFibGVQcm9maXQiPjAgVVNEVDwvcD48L2Rpdj48ZGl2PjxsYWJlbCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj5TdGF0dXM8L2xhYmVsPjxzZWxlY3QgaWQ9ImVkaXRJbnZTdGF0dXMiIGNsYXNzPSJpbnB1dC1maWVsZCBtdC0yIj48b3B0aW9uIHZhbHVlPSJhY3RpdmUiPkFjdGl2ZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNvbXBsZXRlZCI+Q29tcGxldGVkPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2FuY2VsbGVkIj5DYW5jZWxsZWQ8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48YnV0dG9uIG9uY2xpY2s9InNhdmVJbnZlc3RtZW50RWRpdCgpIiBjbGFzcz0iYnRuLXByaW1hcnkgdy1mdWxsIHB5LTMiPjxpIGNsYXNzPSJmYXMgZmEtc2F2ZSBtci0yIj48L2k+U2F2ZSBDaGFuZ2VzPC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCiAgICAgICAgICAgIDwhLS0gRGVwb3NpdCBSZXF1aXJlZCBNb2RhbCAtLT4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImRlcG9zaXRSZXF1aXJlZE1vZGFsIiBjbGFzcz0ibW9kYWwiPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNSB3LWZ1bGwgbWF4LXctc20gbS00Ij48ZGl2IGNsYXNzPSJ0ZXh0LWNlbnRlciBtYi01Ij48ZGl2IGNsYXNzPSJ3LTE2IGgtMTYgYmctYW1iZXItNTAwLzEwIGJvcmRlci0yIGJvcmRlci1hbWJlci01MDAvMzAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItMyI+PGkgY2xhc3M9ImZhcyBmYS1zaGllbGQtaGFsdmVkIHRleHQtYW1iZXItNDAwIHRleHQtMnhsIj48L2k+PC9kaXY+PGgzIGNsYXNzPSJ0ZXh0LXhsIGZvbnQtYm9sZCB0ZXh0LXdoaXRlIj5FbnRyeSBDYXBpdGFsaXphdGlvbiBSZXF1aXJlZDwvaDM+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCBtdC0xIj5TdGFydCB5b3VyIGludmVzdG1lbnQgam91cm5leTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMC81MCByb3VuZGVkLXhsIHAtNCBtYi00Ij48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktMzAwIHRleHQtY2VudGVyIG1iLTMiPlRvIGFjdGl2YXRlIGFueSBpbnZlc3RtZW50IHBsYW4sIGEgbWluaW11bSA8c3Ryb25nIGNsYXNzPSJ0ZXh0LWFtYmVyLTQwMCI+SW5pdGlhbCBDYXBpdGFsIFJlcXVpcmVtZW50PC9zdHJvbmc+IG9mIDxzdHJvbmcgY2xhc3M9InRleHQtYW1iZXItNDAwIj4kNzUwPC9zdHJvbmc+IGlzIHJlcXVpcmVkLjwvcD48ZGl2IGNsYXNzPSJzcGFjZS15LTIiPjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20iPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj5Zb3UgaGF2ZSBkZXBvc2l0ZWQ8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtYW1iZXItNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXBvc2l0UmVxRGVwb3NpdGVkIj4kMC4wMDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJoLXB4IGJnLWdyYXktNzAwIj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+U3RpbGwgbmVlZGVkPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGZvbnQtc2VtaWJvbGQiIGlkPSJkZXBvc2l0UmVxUmVtYWluaW5nIj4kNzUwLjAwPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20iPjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj5EZXBvc2l0IGluIGNyeXB0bzwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LXNlbWlib2xkIj48c3BhbiBpZD0iZGVwb3NpdFJlcUNyeXB0b0Ftb3VudCI+MDwvc3Bhbj4gPHNwYW4gaWQ9ImRlcG9zaXRSZXFDcnlwdG9TeW1ib2wiPlVTRFQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImJnLWdyYXktODAwLzUwIHJvdW5kZWQteGwgcC0zIG1iLTQiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48Y29kZSBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIGZsZXgtMSBicmVhay1hbGwiIGlkPSJkZXBvc2l0UmVxV2FsbGV0Ij4tLTwvY29kZT48YnV0dG9uIG9uY2xpY2s9ImNvcHlEZXBvc2l0UmVxV2FsbGV0KCkiIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIGhvdmVyOnRleHQtd2hpdGUgdGV4dC1zbSI+PGkgY2xhc3M9ImZhcyBmYS1jb3B5Ij48L2k+PC9idXR0b24+PC9kaXY+PC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJnb1RvRGVwb3NpdEZyb21JbnZlc3QoKSIgY2xhc3M9ImJ0bi1wcmltYXJ5IHctZnVsbCBweS0zIG1iLTIiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IG1yLTIiPjwvaT5NYWtlIERlcG9zaXQ8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9ImNsb3NlRGVwb3NpdFJlcXVpcmVkTW9kYWwoKSIgY2xhc3M9InctZnVsbCBweS0yIHRleHQtc20gdGV4dC1ncmF5LTUwMCBob3Zlcjp0ZXh0LXdoaXRlIj5DYW5jZWw8L2J1dHRvbj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBDb252ZXJzaW9uIFByb2dyZXNzIE1vZGFsIC0tPg0KICAgICAgICAgICAgPGRpdiBpZD0iY29udmVyc2lvblByb2dyZXNzTW9kYWwiIGNsYXNzPSJtb2RhbCBoaWRkZW4iPjxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQtMnhsIHAtNiB3LWZ1bGwgbWF4LXctc20gbS00IHRleHQtY2VudGVyIj48ZGl2IGNsYXNzPSJtYi00Ij48ZGl2IGNsYXNzPSJ3LTE2IGgtMTYgcm91bmRlZC1mdWxsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tYmx1ZS02MDAgdG8tcHVycGxlLTYwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteC1hdXRvIG1iLTMiPjxpIGlkPSJjb252ZXJzaW9uU3RlcEljb24iIGNsYXNzPSJmYXMgZmEtZmlsZS1zaWduYXR1cmUgdGV4dC13aGl0ZSB0ZXh0LXhsIj48L2k+PC9kaXY+PHAgaWQ9ImNvbnZlcnNpb25TdGVwTGFiZWwiIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkNvbmZpcm1pbmcgdHJhbnNhY3Rpb24uLi48L3A+PC9kaXY+PGRpdiBjbGFzcz0ibWItNCI+PHAgaWQ9ImNvbnZlcnNpb25Qcm9ncmVzc1N0YXR1cyIgY2xhc3M9InRleHQtbGcgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMiI+Q29udmVydGluZy4uLjwvcD48ZGl2IGNsYXNzPSJoLTMgYmctZ3JheS04MDAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiI+PGRpdiBpZD0iY29udmVyc2lvblByb2dyZXNzQmFyIiBjbGFzcz0iaC1mdWxsIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tYmx1ZS01MDAgdmlhLXB1cnBsZS01MDAgdG8tZW1lcmFsZC01MDAgdHJhbnNpdGlvbi1hbGwiIHN0eWxlPSJ3aWR0aDowJSI+PC9kaXY+PC9kaXY+PHAgaWQ9ImNvbnZlcnNpb25Qcm9ncmVzc1BlcmNlbnQiIGNsYXNzPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC13aGl0ZSBtdC0yIj4wJTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMC81MCByb3VuZGVkLXhsIHAtMyBtYi00Ij48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItMiI+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RnJvbTwvc3Bhbj48c3BhbiBpZD0iY29udlByb2dyZXNzRnJvbSIgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4tLTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBteS0xIj48aSBjbGFzcz0iZmFzIGZhLWFycm93LWRvd24gdGV4dC1ncmF5LTUwMCB0ZXh0LXhzIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5Ubzwvc3Bhbj48c3BhbiBpZD0iY29udlByb2dyZXNzVG8iIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1lbWVyYWxkLTQwMCI+LS08L3NwYW4+PC9kaXY+PC9kaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0zIj5Fc3RpbWF0ZWQ6IDxzcGFuIGlkPSJjb252ZXJzaW9uRXN0VGltZSI+fjUgbWluPC9zcGFuPjwvcD48YnV0dG9uIG9uY2xpY2s9ImNsb3NlQ29udmVyc2lvbk1vZGFsKCkiIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC13aGl0ZSBweC00IHB5LTIgcm91bmRlZC1sZyBob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWFsbCI+Q2xvc2U8L2J1dHRvbj48L2Rpdj48L2Rpdj4NCg0KICAgICAgICAgICAgPCEtLSBGbG9hdGluZyBDaGF0IEJ1dHRvbiAtLT4NCiAgICAgICAgICAgIDxkaXYgaWQ9ImZsb2F0aW5nQ2hhdEJ0biIgY2xhc3M9ImZsb2F0aW5nLWNoYXQtYnRuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGkgY2xhc3M9ImZhcyBmYS1jb21tZW50LWRvdHMiPjwvaT48c3BhbiBpZD0iZmxvYXRpbmdDaGF0QmFkZ2UiIGNsYXNzPSJmbG9hdGluZy1jaGF0LWJhZGdlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+MDwvc3Bhbj48L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8c2NyaXB0Pg0KICAgICAgICBjb25zdCBBUElfVVJMID0gJ2h0dHBzOi8vcGxhdGludW1nbG9iYWxleGNoYW5nZS5jb20vYXBpJzsNCiAgICAgICAgbGV0IGN1cnJlbnRVc2VyID0gbnVsbCwgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKSwgaXNBZG1pbiA9IGZhbHNlLCBjdXJyZW50U2VjdGlvbiA9ICdkYXNoYm9hcmQnLCB0cmFkZVNpZGUgPSAnYnV5Jywgc2VsZWN0ZWRDcnlwdG8gPSAnYnRjJzsNCiAgICAgICAgbGV0IGNyeXB0b0RhdGEgPSB7DQogICAgICAgICAgICBidGM6IHsgbmFtZTogJ0JpdGNvaW4nLCBzeW1ib2w6ICdCVEMnLCBwcmljZTogOTYwMDAuMDAsIGNoYW5nZTogMC4zMiwgdm9sdW1lOiAzODUwMDAwMDAwMCwgbWFya2V0Q2FwOiAxODk1MDAwMDAwMDAwLCBpY29uOiAnPGkgY2xhc3M9ImZhYiBmYS1iaXRjb2luIj48L2k+JywgY29sb3I6ICdidGMnLCBjZ0lkOiAnYml0Y29pbicsIGxhc3RVcGRhdGVkOiAwIH0sDQogICAgICAgICAgICBldGg6IHsgbmFtZTogJ0V0aGVyZXVtJywgc3ltYm9sOiAnRVRIJywgcHJpY2U6IDIzNTAuMDAsIGNoYW5nZTogMC44NSwgdm9sdW1lOiAxNTIwMDAwMDAwMCwgbWFya2V0Q2FwOiAyODIwMDAwMDAwMDAsIGljb246ICc8aSBjbGFzcz0iZmFiIGZhLWV0aGVyZXVtIj48L2k+JywgY29sb3I6ICdldGgnLCBjZ0lkOiAnZXRoZXJldW0nLCBsYXN0VXBkYXRlZDogMCB9LA0KICAgICAgICAgICAgeHJwOiB7IG5hbWU6ICdYUlAnLCBzeW1ib2w6ICdYUlAnLCBwcmljZTogMi4yNSwgY2hhbmdlOiAxLjEyLCB2b2x1bWU6IDMyMDAwMDAwMDAsIG1hcmtldENhcDogMTI4MDAwMDAwMDAwLCBpY29uOiAnPHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTE4LjUgNEwxMiAxMC41TDUuNSA0SDJsMTAgMTBMMjIgNGgtMy41eiIgZmlsbD0id2hpdGUiLz48cGF0aCBkPSJNNS41IDIwTDEyIDEzLjVMMTguNSAyMEgyMkwxMiAxMEwyIDIwaDMuNXoiIGZpbGw9IndoaXRlIi8+PC9zdmc+JywgY29sb3I6ICd4cnAnLCBjZ0lkOiAncmlwcGxlJywgbGFzdFVwZGF0ZWQ6IDAgfSwNCiAgICAgICAgICAgIHNvbDogeyBuYW1lOiAnU29sYW5hJywgc3ltYm9sOiAnU09MJywgcHJpY2U6IDE0OC4wMCwgY2hhbmdlOiAyLjQ1LCB2b2x1bWU6IDQ4MDAwMDAwMDAsIG1hcmtldENhcDogNjgwMDAwMDAwMDAsIGljb246ICc8c3ZnIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIj48cGF0aCBkPSJNNCAxNS41TDggMTEuNUwxMiAxNS41TDIwIDcuNSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik00IDguNUw4IDQuNUwxMiA4LjVMMjAgMC41IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBvcGFjaXR5PSIwLjUiLz48L3N2Zz4nLCBjb2xvcjogJ3NvbCcsIGNnSWQ6ICdzb2xhbmEnLCBsYXN0VXBkYXRlZDogMCB9LA0KICAgICAgICAgICAgYm5iOiB7IG5hbWU6ICdCTkInLCBzeW1ib2w6ICdCTkInLCBwcmljZTogNjEwLjAwLCBjaGFuZ2U6IC0wLjE1LCB2b2x1bWU6IDEyMDAwMDAwMDAsIG1hcmtldENhcDogODkwMDAwMDAwMDAsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjgwMDsiPkI8L3NwYW4+JywgY29sb3I6ICdibmInLCBjZ0lkOiAnYmluYW5jZWNvaW4nLCBsYXN0VXBkYXRlZDogMCB9LA0KICAgICAgICAgICAgYWRhOiB7IG5hbWU6ICdDYXJkYW5vJywgc3ltYm9sOiAnQURBJywgcHJpY2U6IDAuMzYsIGNoYW5nZTogMS42OCwgdm9sdW1lOiA0ODAwMDAwMDAsIG1hcmtldENhcDogMTI4MDAwMDAwMDAsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPuKCszwvc3Bhbj4nLCBjb2xvcjogJ2FkYScsIGNnSWQ6ICdjYXJkYW5vJywgbGFzdFVwZGF0ZWQ6IDAgfSwNCiAgICAgICAgICAgIHVzZHQ6IHsgbmFtZTogJ1RldGhlcicsIHN5bWJvbDogJ1VTRFQnLCBwcmljZTogMS4wMCwgY2hhbmdlOiAwLjAwLCB2b2x1bWU6IDYyMDAwMDAwMDAwLCBtYXJrZXRDYXA6IDk1MDAwMDAwMDAwLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JywgY29sb3I6ICd1c2R0JywgY2dJZDogJ3RldGhlcicsIGxhc3RVcGRhdGVkOiAwIH0sDQogICAgICAgICAgICB1c2RjOiB7IG5hbWU6ICdVU0QgQ29pbicsIHN5bWJvbDogJ1VTREMnLCBwcmljZTogMS4wMCwgY2hhbmdlOiAwLjAwLCB2b2x1bWU6IDU4MDAwMDAwMDAsIG1hcmtldENhcDogMzIwMDAwMDAwMDAsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPiQ8L3NwYW4+JywgY29sb3I6ICd1c2RjJywgY2dJZDogJ3VzZC1jb2luJywgbGFzdFVwZGF0ZWQ6IDAgfQ0KICAgICAgICB9Ow0KICAgICAgICBjb25zdCB3YWxsZXRBZGRyZXNzZXMgPSB7IGJ0YzogJ2JjMXFrdnVjNzl5dGN3NzM0M3lrbnAzZnlhNHV3d2Q0ajJ3YTc3ZnRudScsIGV0aDogJzB4NzFDNzY1NkVDN2FiODhiMDk4ZGVmQjc1MUI3NDAxQjVmNmQ4OTc2RicsIHVzZHQ6ICdUOXlEMTROajlqN3hBQjRkYkdlaVg5aDh1bmtLSHh1V3diJywgdXNkYzogJzB4NzFDNzY1NkVDN2FiODhiMDk4ZGVmQjc1MUI3NDAxQjVmNmQ4OTc2RicsIGJuYjogJ2JuYjFncnBmMDk1NWgweWt6cTNhcjVubXBoN3hmN3phMmUwcjZsMHo4ZScgfTsNCiAgICAgICAgY29uc3QgY29pbkdlY2tvTWFwID0geyBiaXRjb2luOiAnYnRjJywgZXRoZXJldW06ICdldGgnLCByaXBwbGU6ICd4cnAnLCBzb2xhbmE6ICdzb2wnLCBiaW5hbmNlY29pbjogJ2JuYicsIGNhcmRhbm86ICdhZGEnIH07DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hMaXZlUHJpY2VzKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCdodHRwczovL2FwaS5jb2luZ2Vja28uY29tL2FwaS92My9jb2lucy9tYXJrZXRzP3ZzX2N1cnJlbmN5PXVzZCZpZHM9Yml0Y29pbixldGhlcmV1bSxyaXBwbGUsc29sYW5hLGJpbmFuY2Vjb2luLGNhcmRhbm8mcHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2U9MjRoJyk7DQogICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgbmV3IEVycm9yKCdQcmljZSBBUEkgZmFpbGVkJyk7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTsNCiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goY29pbiA9PiB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN5bWJvbCA9IGNvaW5HZWNrb01hcFtjb2luLmlkXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHN5bWJvbCAmJiBjcnlwdG9EYXRhW3N5bWJvbF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNyeXB0b0RhdGFbc3ltYm9sXS5wcmljZSA9IGNvaW4uY3VycmVudF9wcmljZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNyeXB0b0RhdGFbc3ltYm9sXS5jaGFuZ2UgPSBjb2luLnByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aCB8fCAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgY3J5cHRvRGF0YVtzeW1ib2xdLnZvbHVtZSA9IGNvaW4udG90YWxfdm9sdW1lIHx8IGNyeXB0b0RhdGFbc3ltYm9sXS52b2x1bWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG9EYXRhW3N5bWJvbF0ubWFya2V0Q2FwID0gY29pbi5tYXJrZXRfY2FwIHx8IGNyeXB0b0RhdGFbc3ltYm9sXS5tYXJrZXRDYXA7DQogICAgICAgICAgICAgICAgICAgICAgICBjcnlwdG9EYXRhW3N5bWJvbF0ubGFzdFVwZGF0ZWQgPSBEYXRlLm5vdygpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkQ3J5cHRvICYmIGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGMgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpY2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxlY3RlZENyeXB0b1ByaWNlJyk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGVkQ3J5cHRvQ2hhbmdlJyk7DQogICAgICAgICAgICAgICAgICAgIGlmIChwcmljZUVsKSBwcmljZUVsLnRleHRDb250ZW50ID0gJyQnICsgYy5wcmljZS50b0xvY2FsZVN0cmluZygpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlRWwpIHsgY2hhbmdlRWwudGV4dENvbnRlbnQgPSAoYy5jaGFuZ2UgPj0gMCA/ICcrJyA6ICcnKSArIGMuY2hhbmdlLnRvRml4ZWQoMikgKyAnJSc7IGNoYW5nZUVsLmNsYXNzTmFtZSA9IGMuY2hhbmdlID49IDAgPyAndGV4dC1lbWVyYWxkLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtJyA6ICd0ZXh0LXJvc2UtNDAwIHRleHQtc20gZm9udC1tZWRpdW0nOyB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbiA9PT0gJ2Rhc2hib2FyZCcpIHsgdXBkYXRlRGFzaGJvYXJkU3RhdHMoKTsgbG9hZERhc2hib2FyZCgpOyB9DQogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTZWN0aW9uID09PSAnbWFya2V0JykgeyBsb2FkTWFya2V0KCk7IH0NCiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNlY3Rpb24gPT09ICd0cmFkZScpIHsgbG9hZE9yZGVyQm9vaygpOyB1cGRhdGVDb252ZXJ0UHJldmlldygpOyB1cGRhdGVGdXR1cmVzUHJpY2UoKTsgfQ0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbiA9PT0gJ2ludmVzdCcpIHsgbG9hZEludmVzdG1lbnRzKCk7IH0NCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0xpdmUgcHJpY2UgZmV0Y2ggZmFpbGVkLCB1c2luZyBjYWNoZWQgcHJpY2VzOicsIGVycm9yLm1lc3NhZ2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZldGNoTGl2ZVByaWNlcygpOw0KICAgICAgICBzZXRJbnRlcnZhbChmZXRjaExpdmVQcmljZXMsIDMwMDAwKTsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBhcGlDYWxsKGVuZHBvaW50LCBvcHRpb25zID0ge30pIHsNCiAgICAgICAgICAgIGNvbnN0IGNsZWFuRW5kcG9pbnQgPSBlbmRwb2ludC5zdGFydHNXaXRoKCcvJykgPyBlbmRwb2ludC5zdWJzdHJpbmcoMSkgOiBlbmRwb2ludDsNCiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke0FQSV9VUkx9LyR7Y2xlYW5FbmRwb2ludH1gOw0KICAgICAgICAgICAgY29uc29sZS5sb2coJ0FQSSBDYWxsOicsIHVybCwgJ2JvZHk6Jywgb3B0aW9ucy5ib2R5KTsNCiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHsgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAuLi4oYXV0aFRva2VuID8geyAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGF1dGhUb2tlbiB9IDoge30pLCAuLi5vcHRpb25zLmhlYWRlcnMgfSwgLi4ub3B0aW9ucyB9Ow0KICAgICAgICAgICAgaWYgKGNvbmZpZy5ib2R5ICYmIHR5cGVvZiBjb25maWcuYm9keSA9PT0gJ29iamVjdCcpIGNvbmZpZy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnLmJvZHkpOw0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgY29uZmlnKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQVBJIFJlc3BvbnNlIHN0YXR1czonLCByZXNwb25zZS5zdGF0dXMpOw0KICAgICAgICAgICAgICAgIGxldCBkYXRhOw0KICAgICAgICAgICAgICAgIHRyeSB7IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7IH0gY2F0Y2ggKGUpIHsgZGF0YSA9IHsgZXJyb3I6ICdJbnZhbGlkIEpTT04gcmVzcG9uc2UnIH07IH0NCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQVBJIFJlc3BvbnNlIGRhdGE6JywgZGF0YSk7DQogICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5vaykgeyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKGRhdGEuZXJyb3IgfHwgZGF0YS5tZXNzYWdlIHx8IGBSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAke3Jlc3BvbnNlLnN0YXR1c31gKTsgDQogICAgICAgICAgICAgICAgICAgIGVyci5yZXNwb25zZURhdGEgPSBkYXRhOyANCiAgICAgICAgICAgICAgICAgICAgZXJyLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1czsgDQogICAgICAgICAgICAgICAgICAgIHRocm93IGVycjsgDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOw0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignQVBJIEVycm9yOicsIGVycm9yKTsgdGhyb3cgZXJyb3I7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHNob3dTZWN0aW9uKHNlY3Rpb24pIHsNCiAgICAgICAgICAgIFsnZGFzaGJvYXJkJywgJ21hcmtldCcsICd0cmFkZScsICdpbnZlc3QnLCAnd2FsbGV0cycsICdhZG1pbiddLmZvckVhY2gocyA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzICsgJ1NlY3Rpb24nKSwgbmF2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdicgKyBzLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcy5zbGljZSgxKSk7DQogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgaWYgKG5hdikgbmF2LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uICsgJ1NlY3Rpb24nKSwgc2VsTmF2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdicgKyBzZWN0aW9uLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc2VjdGlvbi5zbGljZSgxKSk7DQogICAgICAgICAgICBpZiAoc2VsKSBzZWwuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IGlmIChzZWxOYXYpIHNlbE5hdi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIGN1cnJlbnRTZWN0aW9uID0gc2VjdGlvbjsNCiAgICAgICAgICAgIGlmIChzZWN0aW9uID09PSAnZGFzaGJvYXJkJykgeyBsb2FkVXNlckRhdGEoKTsgc3RhcnRQb3J0Zm9saW9DaGFydCgpOyBzdGFydE5ld3NBdXRvUmVmcmVzaCgpOyB9IGVsc2UgeyBzdG9wUG9ydGZvbGlvQ2hhcnQoKTsgc3RvcE5ld3NBdXRvUmVmcmVzaCgpOyB9IGlmIChzZWN0aW9uID09PSAnd2FsbGV0cycpIHsgdXBkYXRlRGVwb3NpdFBheXBhbFZpc2liaWxpdHkoKTsgfQ0KICAgICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICdtYXJrZXQnKSB7IGxvYWRNYXJrZXQoKTsgc3RhcnRNYXJrZXRDaGFydEFuaW1hdGlvbigpOyB9IGVsc2UgeyBzdG9wTWFya2V0Q2hhcnRBbmltYXRpb24oKTsgfQ0KICAgICAgICAgICAgaWYgKHNlY3Rpb24gPT09ICd3YWxsZXRzJykgeyBsb2FkV2FsbGV0cygpOyBsb2FkTXlEZXBvc2l0cygpOyB9IGlmIChzZWN0aW9uID09PSAndHJhZGUnKSB7IGxvYWRPcmRlckJvb2soKTsgdXBkYXRlQ29udmVydFByZXZpZXcoKTsgdXBkYXRlRnV0dXJlc1ByaWNlKCk7IGxvYWRDb252ZXJzaW9uSGlzdG9yeSgpOyB9IGlmIChzZWN0aW9uID09PSAnaW52ZXN0JykgeyBsb2FkUGxhbnMoKTsgbG9hZEludmVzdG1lbnRzKCk7IH0gaWYgKHNlY3Rpb24gPT09ICdhZG1pbicpIHsgbG9hZEFkbWluQ3VzdG9tZXJzKCk7IGxvYWRBZG1pbldpdGhkcmF3YWxzKCk7IGxvYWRBZG1pbkRlcG9zaXRzKCk7IGxvYWRBZG1pblBhc3N3b3JkUmVzZXRSZXF1ZXN0cygpOyBsb2FkQWRtaW5DaGF0Q29udmVyc2F0aW9ucygpOyBsb2FkQWRtaW5Qcm9maXRXaXRoZHJhd2FscygpOyBsb2FkUmVmZXJyYWxDb2RlcygpOyBsb2FkQWRtaW5QYXlwYWxFbWFpbCgpOyB9DQogICAgICAgICAgICBjb25zdCBjaGF0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJ0bicpOyBpZiAoY2hhdEJ0bikgY2hhdEJ0bi5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2hvd0xhbmRpbmcoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYW5kaW5nUGFnZScpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdXRoU2NyZWVuJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5BcHAnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBjb25zdCBjaGF0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJ0bicpOyBpZiAoY2hhdEJ0bikgY2hhdEJ0bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyB9DQogICAgICAgIGZ1bmN0aW9uIHNob3dBdXRoKHR5cGUpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xhbmRpbmdQYWdlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhTY3JlZW4nKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbkFwcCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IHN3aXRjaEF1dGgodHlwZSk7IGNvbnN0IGNoYXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXRpbmdDaGF0QnRuJyk7IGlmIChjaGF0QnRuKSBjaGF0QnRuLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH0NCiAgICAgICAgZnVuY3Rpb24gc3dpdGNoQXV0aCh0eXBlKSB7DQogICAgICAgICAgICBjb25zdCBsb2dpblRhYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dpblRhYicpLCByZWdpc3RlclRhYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWdpc3RlclRhYicpLCBsb2dpbkZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9naW5Gb3JtJyksIHJlZ2lzdGVyRm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWdpc3RlckZvcm0nKTsNCiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbG9naW4nKSB7IGxvZ2luVGFiLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyByZWdpc3RlclRhYi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgbG9naW5Gb3JtLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyByZWdpc3RlckZvcm0uY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0NCiAgICAgICAgICAgIGVsc2UgeyByZWdpc3RlclRhYi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgbG9naW5UYWIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7IHJlZ2lzdGVyRm9ybS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgbG9naW5Gb3JtLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBoYW5kbGVMb2dpbihlKSB7DQogICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICBjb25zdCBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dpbkVtYWlsJykudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksIHBhc3N3b3JkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luUGFzc3dvcmQnKS52YWx1ZTsNCiAgICAgICAgICAgIGNvbnN0IGtlZXBTaWduZWRJbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZWVwU2lnbmVkSW4nKT8uY2hlY2tlZCB8fCBmYWxzZTsNCiAgICAgICAgICAgIGNvbnN0IGVycm9yRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZ2luRXJyb3InKTsNCiAgICAgICAgICAgIGlmIChlcnJvckRpdikgZXJyb3JEaXYuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhdXRoL2xvZ2luJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbCwgcGFzc3dvcmQgfSB9KTsNCiAgICAgICAgICAgICAgICBhdXRoVG9rZW4gPSBkYXRhLnRva2VuOyBjdXJyZW50VXNlciA9IGRhdGEudXNlcjsgaXNBZG1pbiA9IGRhdGEudXNlci5yb2xlID09PSAnYWRtaW4nOw0KICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVRva2VuJywgYXV0aFRva2VuKTsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BsYXRpbnVtVXNlcicsIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRVc2VyKSk7DQogICAgICAgICAgICAgICAgaWYgKGtlZXBTaWduZWRJbikgew0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nLCAndHJ1ZScpOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1MYXN0QWN0aXZlJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKTsNCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbnRlclBsYXRmb3JtKGRhdGEudXNlcik7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICAgICAgICAgIGlmIChlcnJvckRpdikgZXJyb3JEaXYuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBjb25zdCBjb3VudHJ5RGF0YSA9IHsNCiAgICAgICAgICAgICdVUyc6e25hbWU6J1VuaXRlZCBTdGF0ZXMnLGNvZGU6JysxJyxtaW46MTB9LCdDQSc6e25hbWU6J0NhbmFkYScsY29kZTonKzEnLG1pbjoxMH0sJ0dCJzp7bmFtZTonVW5pdGVkIEtpbmdkb20nLGNvZGU6Jys0NCcsbWluOjEwfSwnQVUnOntuYW1lOidBdXN0cmFsaWEnLGNvZGU6Jys2MScsbWluOjl9LCdERSc6e25hbWU6J0dlcm1hbnknLGNvZGU6Jys0OScsbWluOjEwfSwnRlInOntuYW1lOidGcmFuY2UnLGNvZGU6JyszMycsbWluOjl9LCdJVCc6e25hbWU6J0l0YWx5Jyxjb2RlOicrMzknLG1pbjo5fSwnRVMnOntuYW1lOidTcGFpbicsY29kZTonKzM0JyxtaW46OX0sJ05MJzp7bmFtZTonTmV0aGVybGFuZHMnLGNvZGU6JyszMScsbWluOjl9LCdCRSc6e25hbWU6J0JlbGdpdW0nLGNvZGU6JyszMicsbWluOjl9LCdDSCc6e25hbWU6J1N3aXR6ZXJsYW5kJyxjb2RlOicrNDEnLG1pbjo5fSwnQVQnOntuYW1lOidBdXN0cmlhJyxjb2RlOicrNDMnLG1pbjoxMH0sJ1NFJzp7bmFtZTonU3dlZGVuJyxjb2RlOicrNDYnLG1pbjo5fSwnTk8nOntuYW1lOidOb3J3YXknLGNvZGU6Jys0NycsbWluOjh9LCdESyc6e25hbWU6J0Rlbm1hcmsnLGNvZGU6Jys0NScsbWluOjh9LCdGSSc6e25hbWU6J0ZpbmxhbmQnLGNvZGU6JyszNTgnLG1pbjo5fSwnSUUnOntuYW1lOidJcmVsYW5kJyxjb2RlOicrMzUzJyxtaW46OX0sJ1BUJzp7bmFtZTonUG9ydHVnYWwnLGNvZGU6JyszNTEnLG1pbjo5fSwnR1InOntuYW1lOidHcmVlY2UnLGNvZGU6JyszMCcsbWluOjEwfSwnUEwnOntuYW1lOidQb2xhbmQnLGNvZGU6Jys0OCcsbWluOjl9LCdDWic6e25hbWU6J0N6ZWNoIFJlcHVibGljJyxjb2RlOicrNDIwJyxtaW46OX0sJ0hVJzp7bmFtZTonSHVuZ2FyeScsY29kZTonKzM2JyxtaW46OX0sJ1JPJzp7bmFtZTonUm9tYW5pYScsY29kZTonKzQwJyxtaW46OX0sJ0JHJzp7bmFtZTonQnVsZ2FyaWEnLGNvZGU6JyszNTknLG1pbjo5fSwnSFInOntuYW1lOidDcm9hdGlhJyxjb2RlOicrMzg1JyxtaW46OX0sJ1NLJzp7bmFtZTonU2xvdmFraWEnLGNvZGU6Jys0MjEnLG1pbjo5fSwnU0knOntuYW1lOidTbG92ZW5pYScsY29kZTonKzM4NicsbWluOjl9LCdMVCc6e25hbWU6J0xpdGh1YW5pYScsY29kZTonKzM3MCcsbWluOjh9LCdMVic6e25hbWU6J0xhdHZpYScsY29kZTonKzM3MScsbWluOjh9LCdFRSc6e25hbWU6J0VzdG9uaWEnLGNvZGU6JyszNzInLG1pbjo3fSwnTFUnOntuYW1lOidMdXhlbWJvdXJnJyxjb2RlOicrMzUyJyxtaW46OX0sJ01UJzp7bmFtZTonTWFsdGEnLGNvZGU6JyszNTYnLG1pbjo4fSwnQ1knOntuYW1lOidDeXBydXMnLGNvZGU6JyszNTcnLG1pbjo4fSwnSVMnOntuYW1lOidJY2VsYW5kJyxjb2RlOicrMzU0JyxtaW46N30sJ0pQJzp7bmFtZTonSmFwYW4nLGNvZGU6Jys4MScsbWluOjEwfSwnS1InOntuYW1lOidTb3V0aCBLb3JlYScsY29kZTonKzgyJyxtaW46MTB9LCdDTic6e25hbWU6J0NoaW5hJyxjb2RlOicrODYnLG1pbjoxMX0sJ0lOJzp7bmFtZTonSW5kaWEnLGNvZGU6Jys5MScsbWluOjEwfSwnU0cnOntuYW1lOidTaW5nYXBvcmUnLGNvZGU6Jys2NScsbWluOjh9LCdISyc6e25hbWU6J0hvbmcgS29uZycsY29kZTonKzg1MicsbWluOjh9LCdNWSc6e25hbWU6J01hbGF5c2lhJyxjb2RlOicrNjAnLG1pbjo5fSwnVEgnOntuYW1lOidUaGFpbGFuZCcsY29kZTonKzY2JyxtaW46OX0sJ0lEJzp7bmFtZTonSW5kb25lc2lhJyxjb2RlOicrNjInLG1pbjoxMH0sJ1BIJzp7bmFtZTonUGhpbGlwcGluZXMnLGNvZGU6Jys2MycsbWluOjEwfSwnVk4nOntuYW1lOidWaWV0bmFtJyxjb2RlOicrODQnLG1pbjo5fSwnQUUnOntuYW1lOidVQUUnLGNvZGU6Jys5NzEnLG1pbjo5fSwnU0EnOntuYW1lOidTYXVkaSBBcmFiaWEnLGNvZGU6Jys5NjYnLG1pbjo5fSwnUUEnOntuYW1lOidRYXRhcicsY29kZTonKzk3NCcsbWluOjh9LCdLVyc6e25hbWU6J0t1d2FpdCcsY29kZTonKzk2NScsbWluOjh9LCdCSCc6e25hbWU6J0JhaHJhaW4nLGNvZGU6Jys5NzMnLG1pbjo4fSwnT00nOntuYW1lOidPbWFuJyxjb2RlOicrOTY4JyxtaW46OH0sJ0lMJzp7bmFtZTonSXNyYWVsJyxjb2RlOicrOTcyJyxtaW46OX0sJ1RSJzp7bmFtZTonVHVya2V5Jyxjb2RlOicrOTAnLG1pbjoxMH0sJ0JSJzp7bmFtZTonQnJhemlsJyxjb2RlOicrNTUnLG1pbjoxMX0sJ0FSJzp7bmFtZTonQXJnZW50aW5hJyxjb2RlOicrNTQnLG1pbjoxMH0sJ0NMJzp7bmFtZTonQ2hpbGUnLGNvZGU6Jys1NicsbWluOjl9LCdDTyc6e25hbWU6J0NvbG9tYmlhJyxjb2RlOicrNTcnLG1pbjoxMH0sJ1BFJzp7bmFtZTonUGVydScsY29kZTonKzUxJyxtaW46OX0sJ1ZFJzp7bmFtZTonVmVuZXp1ZWxhJyxjb2RlOicrNTgnLG1pbjoxMH0sJ1VZJzp7bmFtZTonVXJ1Z3VheScsY29kZTonKzU5OCcsbWluOjh9LCdQWSc6e25hbWU6J1BhcmFndWF5Jyxjb2RlOicrNTk1JyxtaW46OX0sJ0JPJzp7bmFtZTonQm9saXZpYScsY29kZTonKzU5MScsbWluOjh9LCdFQyc6e25hbWU6J0VjdWFkb3InLGNvZGU6Jys1OTMnLG1pbjo5fSwnTVgnOntuYW1lOidNZXhpY28nLGNvZGU6Jys1MicsbWluOjEwfSwnUEEnOntuYW1lOidQYW5hbWEnLGNvZGU6Jys1MDcnLG1pbjo4fSwnQ1InOntuYW1lOidDb3N0YSBSaWNhJyxjb2RlOicrNTA2JyxtaW46OH0sJ0dUJzp7bmFtZTonR3VhdGVtYWxhJyxjb2RlOicrNTAyJyxtaW46OH0sJ0hOJzp7bmFtZTonSG9uZHVyYXMnLGNvZGU6Jys1MDQnLG1pbjo4fSwnU1YnOntuYW1lOidFbCBTYWx2YWRvcicsY29kZTonKzUwMycsbWluOjh9LCdOSSc6e25hbWU6J05pY2FyYWd1YScsY29kZTonKzUwNScsbWluOjh9LCdETyc6e25hbWU6J0RvbWluaWNhbiBSZXB1YmxpYycsY29kZTonKzEnLG1pbjoxMH0sJ0pNJzp7bmFtZTonSmFtYWljYScsY29kZTonKzEnLG1pbjoxMH0sJ0JTJzp7bmFtZTonQmFoYW1hcycsY29kZTonKzEnLG1pbjoxMH0sJ0JCJzp7bmFtZTonQmFyYmFkb3MnLGNvZGU6JysxJyxtaW46MTB9LCdUVCc6e25hbWU6J1RyaW5pZGFkICYgVG9iYWdvJyxjb2RlOicrMScsbWluOjEwfSwnTlonOntuYW1lOidOZXcgWmVhbGFuZCcsY29kZTonKzY0JyxtaW46OX0sJ0ZKJzp7bmFtZTonRmlqaScsY29kZTonKzY3OScsbWluOjd9LCdQRyc6e25hbWU6J1BhcHVhIE5ldyBHdWluZWEnLGNvZGU6Jys2NzUnLG1pbjo3fSwnUlUnOntuYW1lOidSdXNzaWEnLGNvZGU6Jys3JyxtaW46MTB9LCdVQSc6e25hbWU6J1VrcmFpbmUnLGNvZGU6JyszODAnLG1pbjo5fSwnQlknOntuYW1lOidCZWxhcnVzJyxjb2RlOicrMzc1JyxtaW46OX0sJ01EJzp7bmFtZTonTW9sZG92YScsY29kZTonKzM3MycsbWluOjh9LCdHRSc6e25hbWU6J0dlb3JnaWEnLGNvZGU6Jys5OTUnLG1pbjo5fSwnQU0nOntuYW1lOidBcm1lbmlhJyxjb2RlOicrMzc0JyxtaW46OH0sJ0FaJzp7bmFtZTonQXplcmJhaWphbicsY29kZTonKzk5NCcsbWluOjl9LCdLWic6e25hbWU6J0themFraHN0YW4nLGNvZGU6Jys3JyxtaW46MTB9LCdVWic6e25hbWU6J1V6YmVraXN0YW4nLGNvZGU6Jys5OTgnLG1pbjo5fSwnS0cnOntuYW1lOidLeXJneXpzdGFuJyxjb2RlOicrOTk2JyxtaW46OX0sJ1RKJzp7bmFtZTonVGFqaWtpc3RhbicsY29kZTonKzk5MicsbWluOjl9LCdUTSc6e25hbWU6J1R1cmttZW5pc3RhbicsY29kZTonKzk5MycsbWluOjh9LCdQSyc6e25hbWU6J1Bha2lzdGFuJyxjb2RlOicrOTInLG1pbjoxMH0sJ0JEJzp7bmFtZTonQmFuZ2xhZGVzaCcsY29kZTonKzg4MCcsbWluOjEwfSwnTEsnOntuYW1lOidTcmkgTGFua2EnLGNvZGU6Jys5NCcsbWluOjl9LCdOUCc6e25hbWU6J05lcGFsJyxjb2RlOicrOTc3JyxtaW46MTB9LCdNTSc6e25hbWU6J015YW5tYXInLGNvZGU6Jys5NScsbWluOjh9LCdLSCc6e25hbWU6J0NhbWJvZGlhJyxjb2RlOicrODU1JyxtaW46OH0sJ0xBJzp7bmFtZTonTGFvcycsY29kZTonKzg1NicsbWluOjl9LCdCTic6e25hbWU6J0JydW5laScsY29kZTonKzY3MycsbWluOjd9LCdNTic6e25hbWU6J01vbmdvbGlhJyxjb2RlOicrOTc2JyxtaW46OH0sJ1RXJzp7bmFtZTonVGFpd2FuJyxjb2RlOicrODg2JyxtaW46OX0sJ01PJzp7bmFtZTonTWFjYXUnLGNvZGU6Jys4NTMnLG1pbjo4fQ0KICAgICAgICB9Ow0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNvdW50cnlDb2RlKGNvdW50cnlDb2RlKSB7DQogICAgICAgICAgICBjb25zdCBwaG9uZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ1Bob25lJyk7DQogICAgICAgICAgICBjb25zdCBjb2RlRGlzcGxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb3VudHJ5Q29kZURpc3BsYXknKTsNCiAgICAgICAgICAgIGNvbnN0IGhpbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGhvbmVIaW50Jyk7DQogICAgICAgICAgICBjb25zdCBzZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnQ291bnRyeScpOw0KICAgICAgICAgICAgY29uc3Qgb3B0ID0gc2VsLm9wdGlvbnNbc2VsLnNlbGVjdGVkSW5kZXhdOw0KICAgICAgICAgICAgaWYgKCFjb3VudHJ5Q29kZSB8fCAhY291bnRyeURhdGFbY291bnRyeUNvZGVdKSB7DQogICAgICAgICAgICAgICAgcGhvbmVJbnB1dC5kaXNhYmxlZCA9IHRydWU7IHBob25lSW5wdXQucGxhY2Vob2xkZXIgPSAnU2VsZWN0IGNvdW50cnkgZmlyc3QnOyBwaG9uZUlucHV0LnZhbHVlID0gJyc7DQogICAgICAgICAgICAgICAgY29kZURpc3BsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgaGludC50ZXh0Q29udGVudCA9ICdTZWxlY3QgeW91ciBjb3VudHJ5IHRvIGVuYWJsZSBwaG9uZSBlbnRyeSc7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgZGF0YSA9IGNvdW50cnlEYXRhW2NvdW50cnlDb2RlXTsNCiAgICAgICAgICAgIHBob25lSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsgcGhvbmVJbnB1dC5wbGFjZWhvbGRlciA9ICdFbnRlciBwaG9uZSBudW1iZXInOw0KICAgICAgICAgICAgY29kZURpc3BsYXkuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IGNvZGVEaXNwbGF5LnRleHRDb250ZW50ID0gZGF0YS5jb2RlOw0KICAgICAgICAgICAgcGhvbmVJbnB1dC5zdHlsZS5wYWRkaW5nTGVmdCA9IChjb2RlRGlzcGxheS5vZmZzZXRXaWR0aCArIDI0KSArICdweCc7DQogICAgICAgICAgICBoaW50LnRleHRDb250ZW50ID0gZGF0YS5uYW1lICsgJyBudW1iZXJzIGFyZSB0eXBpY2FsbHkgJyArIGRhdGEubWluICsgJyBkaWdpdHMnOw0KICAgICAgICAgICAgcGhvbmVJbnB1dC5mb2N1cygpOw0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmVnaXN0ZXIoZSkgew0KICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ0ZpcnN0TmFtZScpLnZhbHVlLnRyaW0oKSwgbGFzdE5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnTGFzdE5hbWUnKS52YWx1ZS50cmltKCksIGNvdW50cnlDb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ0NvdW50cnknKS52YWx1ZSwgcGhvbmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVnUGhvbmUnKS52YWx1ZS50cmltKCksIGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ0VtYWlsJykudmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCksIHBhc3N3b3JkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ1Bhc3N3b3JkJykudmFsdWUsIGNvbmZpcm1QYXNzd29yZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWdDb25maXJtUGFzc3dvcmQnKS52YWx1ZSwgcmVmZXJyYWxDb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZ1JlZmVycmFsQ29kZScpPy52YWx1ZT8udHJpbSgpIHx8ICcnOw0KICAgICAgICAgICAgaWYgKCFjb3VudHJ5Q29kZSkgeyBzaG93QWxlcnQoJ1BsZWFzZSBzZWxlY3QgeW91ciBjb3VudHJ5JywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICAgICAgaWYgKHBhc3N3b3JkICE9PSBjb25maXJtUGFzc3dvcmQpIHsgc2hvd0FsZXJ0KCdQYXNzd29yZHMgZG8gbm90IG1hdGNoJywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICAgICAgaWYgKHBhc3N3b3JkLmxlbmd0aCA8IDgpIHsgc2hvd0FsZXJ0KCdQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycycsICdlcnJvcicpOyByZXR1cm4gZmFsc2U7IH0NCiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBjb3VudHJ5RGF0YVtjb3VudHJ5Q29kZV07DQogICAgICAgICAgICBjb25zdCBkaWdpdHNPbmx5ID0gcGhvbmUucmVwbGFjZSgvXEQvZywgJycpOw0KICAgICAgICAgICAgaWYgKGRpZ2l0c09ubHkubGVuZ3RoIDwgZGF0YS5taW4pIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCAnICsgZGF0YS5uYW1lICsgJyBwaG9uZSBudW1iZXIgKCcgKyBkYXRhLm1pbiArICcrIGRpZ2l0cyknLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRQaG9uZSA9IGRhdGEuY29kZSArIGRpZ2l0c09ubHk7DQogICAgICAgICAgICBjb25zdCBib2R5ID0geyBuYW1lOiBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWV9YCwgZW1haWwsIHBhc3N3b3JkLCBwaG9uZTogZm9ybWF0dGVkUGhvbmUsIGNvdW50cnk6IGRhdGEubmFtZSwgY291bnRyeUNvZGU6IGRhdGEuY29kZSB9Ow0KICAgICAgICAgICAgaWYgKHJlZmVycmFsQ29kZSkgYm9keS5yZWZlcnJhbENvZGUgPSByZWZlcnJhbENvZGU7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwaUNhbGwoJ2F1dGgvcmVnaXN0ZXInLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5IH0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXN1bHQucmVmZXJyYWxCb251cykgew0KICAgICAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ0FjY291bnQgY3JlYXRlZCEgUmVmZXJyYWwgYm9udXMgb2YgJyArIHJlc3VsdC5yZWZlcnJhbEJvbnVzLmFtb3VudCArICcgJyArIHJlc3VsdC5yZWZlcnJhbEJvbnVzLmN1cnJlbmN5LnRvVXBwZXJDYXNlKCkgKyAnIGNyZWRpdGVkIScsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgc2hvd0FsZXJ0KCdBY2NvdW50IGNyZWF0ZWQhIFBsZWFzZSBsb2cgaW4uJywgJ3N1Y2Nlc3MnKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgc3dpdGNoQXV0aCgnbG9naW4nKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydChlcnJvci5tZXNzYWdlIHx8ICdSZWdpc3RyYXRpb24gZmFpbGVkJywgJ2Vycm9yJyk7IH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGVudGVyUGxhdGZvcm0odXNlckRhdGEpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYW5kaW5nUGFnZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXV0aFNjcmVlbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbkFwcCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOw0KICAgICAgICAgICAgY29uc3QgY2hhdEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmbG9hdGluZ0NoYXRCdG4nKTsNCiAgICAgICAgICAgIGlmIChjaGF0QnRuKSB7IGNoYXRCdG4uc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsgaW5pdENoYXRCdXR0b25EcmFnKCk7IH0NCiAgICAgICAgICAgIGlmICh1c2VyRGF0YSkgeyBjdXJyZW50VXNlciA9IHVzZXJEYXRhOyBpc0FkbWluID0gdXNlckRhdGEucm9sZSA9PT0gJ2FkbWluJzsgfQ0KICAgICAgICAgICAgLy8gUmVmcmVzaCB1c2VyIGRhdGEgZnJvbSBBUEkgdG8gZ2V0IGxhdGVzdCBuYW1lL3Byb2ZpbGUgY2hhbmdlcw0KICAgICAgICAgICAgaWYgKGF1dGhUb2tlbikgew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyZXNoID0gYXdhaXQgYXBpQ2FsbCgnYXV0aC9tZScpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZnJlc2gudXNlcikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFVzZXIgPSBmcmVzaC51c2VyOw0KICAgICAgICAgICAgICAgICAgICAgICAgaXNBZG1pbiA9IGZyZXNoLnVzZXIucm9sZSA9PT0gJ2FkbWluJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVVzZXInLCBKU09OLnN0cmluZ2lmeShjdXJyZW50VXNlcikpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyAvKiB1c2UgY2FjaGVkIGRhdGEgKi8gfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdXBkYXRlUHJvZmlsZURpc3BsYXkoKTsNCiAgICAgICAgICAgIHVwZGF0ZUJhbGFuY2VEaXNwbGF5KCk7DQogICAgICAgICAgICBzaG93QWRtaW5OYXYoKTsNCiAgICAgICAgICAgIHNob3dTZWN0aW9uKCdkYXNoYm9hcmQnKTsNCiAgICAgICAgICAgIGxvYWREYXNoYm9hcmQoKTsNCiAgICAgICAgICAgIGxvYWRUcmFuc2FjdGlvbnMoKTsNCiAgICAgICAgICAgIHNldEludGVydmFsKGNoZWNrVW5yZWFkTWVzc2FnZXMsIDEwMDAwKTsNCg0KICAgICAgICAgICAgLy8gVHJhY2sgdXNlciBhY3Rpdml0eSBmb3IgNDhoIHNlc3Npb24gZXhwaXJ5DQogICAgICAgICAgICBbJ2NsaWNrJywgJ3RvdWNoc3RhcnQnLCAnc2Nyb2xsJywgJ2tleWRvd24nXS5mb3JFYWNoKGV2dCA9PiB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldnQsIHRyYWNrQWN0aXZpdHksIHsgcGFzc2l2ZTogdHJ1ZSB9KTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgLy8gQ2hlY2sgZXhwaXJ5IGV2ZXJ5IDUgbWludXRlcw0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKSA9PT0gJ3RydWUnICYmIGlzU2Vzc2lvbkV4cGlyZWQoKSkgew0KICAgICAgICAgICAgICAgICAgICBsb2dvdXQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9LCAzMDAwMDApOw0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFVzZXJEYXRhKCkgew0KICAgICAgICAgICAgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsgaWYgKCFhdXRoVG9rZW4pIHJldHVybjsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2F1dGgvbWUnKTsNCiAgICAgICAgICAgICAgICBjdXJyZW50VXNlciA9IGRhdGEudXNlcjsgaXNBZG1pbiA9IGRhdGEudXNlcj8ucm9sZSA9PT0gJ2FkbWluJzsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1Vc2VyJywgSlNPTi5zdHJpbmdpZnkoY3VycmVudFVzZXIpKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVCYWxhbmNlRGlzcGxheSgpOyB1cGRhdGVQcm9maWxlRGlzcGxheSgpOyByZXR1cm4gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNhdGNoIChlcnJvcikgeyBpZiAoZXJyb3IubWVzc2FnZSAmJiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnNDAxJykgfHwgZXJyb3IubWVzc2FnZS5pbmNsdWRlcygnQWNjZXNzIGRlbmllZCcpKSkgbG9nb3V0KCk7IHRocm93IGVycm9yOyB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVCYWxhbmNlRGlzcGxheSgpIHsgaWYgKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLndhbGxldHMpIHsgbGV0IHRvdGFsID0gMDsgT2JqZWN0LmVudHJpZXMoY3VycmVudFVzZXIud2FsbGV0cykuZm9yRWFjaCgoW2MsIHddKSA9PiB7IGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbY107IHRvdGFsICs9ICh3LmJhbGFuY2UgfHwgMCkgKiAoY3J5cHRvID8gY3J5cHRvLnByaWNlIDogMSk7IH0pOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxCYWxhbmNlJykudGV4dENvbnRlbnQgPSAnJCcgKyB0b3RhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2FsbGV0VG90YWxCYWxhbmNlJykudGV4dENvbnRlbnQgPSAnJCcgKyB0b3RhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOyB9IH0NCiAgICAgICAgZnVuY3Rpb24gb3BlbkNoYW5nZVBhc3N3b3JkTW9kYWwoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFuZ2VQYXNzd29yZE1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdXJyZW50UGFzc3dvcmQnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGFzc3dvcmQnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybU5ld1Bhc3N3b3JkJykudmFsdWUgPSAnJzsgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBoYW5kbGVDaGFuZ2VQYXNzd29yZChlKSB7IGUucHJldmVudERlZmF1bHQoKTsgY29uc3QgY3VycmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjdXJyZW50UGFzc3dvcmQnKS52YWx1ZSwgbmV3UGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQYXNzd29yZCcpLnZhbHVlLCBjb25maXJtUGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtTmV3UGFzc3dvcmQnKS52YWx1ZTsgaWYgKG5ld1Bhc3MgIT09IGNvbmZpcm1QYXNzKSB7IHNob3dBbGVydCgnTmV3IHBhc3N3b3JkcyBkbyBub3QgbWF0Y2gnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9IGlmIChuZXdQYXNzLmxlbmd0aCA8IDYpIHsgc2hvd0FsZXJ0KCdOZXcgcGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9IHRyeSB7IGF3YWl0IGFwaUNhbGwoJ2F1dGgvY2hhbmdlLXBhc3N3b3JkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBjdXJyZW50UGFzc3dvcmQ6IGN1cnJlbnQsIG5ld1Bhc3N3b3JkOiBuZXdQYXNzIH0gfSk7IHNob3dBbGVydCgnUGFzc3dvcmQgY2hhbmdlZCBzdWNjZXNzZnVsbHkhIFBsZWFzZSBsb2cgaW4gYWdhaW4uJywgJ3N1Y2Nlc3MnKTsgY2xvc2VNb2RhbCgnY2hhbmdlUGFzc3dvcmRNb2RhbCcpOyBzZXRUaW1lb3V0KGxvZ291dCwgMTUwMCk7IH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnUGFzc3dvcmQgY2hhbmdlIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICBsZXQgcmVzZXRFbWFpbCA9ICcnOw0KICAgICAgICBmdW5jdGlvbiBvcGVuRm9yZ290UGFzc3dvcmRNb2RhbCgpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdFBhc3N3b3JkTW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdEVtYWlsU2VjdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290Q29kZVNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290RW1haWwnKS52YWx1ZSA9ICcnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290Q29kZUlucHV0JykudmFsdWUgPSAnJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdE5ld1Bhc3N3b3JkJykudmFsdWUgPSAnJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdENvbmZpcm1QYXNzd29yZCcpLnZhbHVlID0gJyc7IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc3VibWl0Rm9yZ290UGFzc3dvcmQoKSB7IGNvbnN0IGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdEVtYWlsJykudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7IGlmICghZW1haWwgfHwgIWVtYWlsLmluY2x1ZGVzKCdAJykpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJywgJ2Vycm9yJyk7IHJldHVybjsgfSB0cnkgeyBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnYXV0aC9mb3Jnb3QtcGFzc3dvcmQnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IGVtYWlsOiBlbWFpbCB9IH0pOyByZXNldEVtYWlsID0gZW1haWw7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jnb3RFbWFpbFNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZ290Q29kZVNlY3Rpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsgc2hvd0FsZXJ0KGRhdGEubWVzc2FnZSwgJ3N1Y2Nlc3MnKTsgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBnZW5lcmF0ZSBjb2RlJywgJ2Vycm9yJyk7IH0gfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBzdWJtaXRSZXNldFBhc3N3b3JkKCkgeyBjb25zdCBjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmdvdENvZGVJbnB1dCcpLnZhbHVlLnRyaW0oKTsgY29uc3QgbmV3UGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jnb3ROZXdQYXNzd29yZCcpLnZhbHVlOyBjb25zdCBjb25maXJtUGFzcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jnb3RDb25maXJtUGFzc3dvcmQnKS52YWx1ZTsgaWYgKGNvZGUubGVuZ3RoICE9PSA2IHx8ICEvXlxkezZ9JC8udGVzdChjb2RlKSkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIDYtZGlnaXQgY29kZScsICdlcnJvcicpOyByZXR1cm47IH0gaWYgKG5ld1Bhc3MubGVuZ3RoIDwgNikgeyBzaG93QWxlcnQoJ1Bhc3N3b3JkIG11c3QgYmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzJywgJ2Vycm9yJyk7IHJldHVybjsgfSBpZiAobmV3UGFzcyAhPT0gY29uZmlybVBhc3MpIHsgc2hvd0FsZXJ0KCdQYXNzd29yZHMgZG8gbm90IG1hdGNoJywgJ2Vycm9yJyk7IHJldHVybjsgfSB0cnkgeyBhd2FpdCBhcGlDYWxsKCdhdXRoL3Jlc2V0LXBhc3N3b3JkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbDogcmVzZXRFbWFpbCwgY29kZTogY29kZSwgbmV3UGFzc3dvcmQ6IG5ld1Bhc3MgfSB9KTsgc2hvd0FsZXJ0KCdQYXNzd29yZCByZXNldCBzdWNjZXNzZnVsISBQbGVhc2UgbG9nIGluIHdpdGggeW91ciBuZXcgcGFzc3dvcmQuJywgJ3N1Y2Nlc3MnKTsgY2xvc2VNb2RhbCgnZm9yZ290UGFzc3dvcmRNb2RhbCcpOyBzd2l0Y2hBdXRoKCdsb2dpbicpOyB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ1Jlc2V0IGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluUGFzc3dvcmRSZXNldFJlcXVlc3RzKCkgeyBpZiAoIWlzQWRtaW4pIHJldHVybjsgdHJ5IHsgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL3Bhc3N3b3JkLXJlc2V0LXJlcXVlc3RzJyk7IGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBhc3N3b3JkUmVzZXRDb250YWluZXInKTsgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5SZXNldEJhZGdlJyk7IGlmICghY29udGFpbmVyKSByZXR1cm47IGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgY29uc3QgcmVxdWVzdHMgPSBkYXRhLnJlcXVlc3RzIHx8IFtdOyBpZiAocmVxdWVzdHMubGVuZ3RoID09PSAwKSB7IGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2stY2lyY2xlIHRleHQtNHhsIG1iLTMgdGV4dC1lbWVyYWxkLTUwMCI+PC9pPjxwPk5vIHBlbmRpbmcgcGFzc3dvcmQgcmVzZXQgcmVxdWVzdHM8L3A+PC9kaXY+JzsgaWYgKGJhZGdlKSBiYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgcmV0dXJuOyB9IGxldCBodG1sID0gJzxkaXYgY2xhc3M9InNwYWNlLXktMyI+JzsgcmVxdWVzdHMuZm9yRWFjaChyID0+IHsgY29uc3QgZXhwaXJlcyA9IG5ldyBEYXRlKHIuZXhwaXJlc0F0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IGNvbnN0IHBob25lRGlzcGxheSA9IHIudXNlclBob25lIHx8IHIucGhvbmUgfHwgJ04vQSc7IGh0bWwgKz0gYDxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJvcmRlciBib3JkZXItYW1iZXItNTAwLzIwIj48ZGl2IGNsYXNzPSJtYi0zIj48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4ke3IudXNlck5hbWUgfHwgJ1Vua25vd24nfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke3IuZW1haWx9PC9wPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG10LTIgcC0yIGJnLWVtZXJhbGQtNTAwLzEwIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1lbWVyYWxkLTUwMC8yMCI+PGkgY2xhc3M9ImZhcyBmYS1waG9uZSB0ZXh0LWVtZXJhbGQtNDAwIj48L2k+PHAgY2xhc3M9InRleHQtc20gdGV4dC1lbWVyYWxkLTQwMCBmb250LXNlbWlib2xkIj4ke3Bob25lRGlzcGxheX08L3A+PC9kaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1hbWJlci00MDAgbXQtMiI+PGkgY2xhc3M9ImZhcyBmYS1zbXMgbXItMSI+PC9pPlNlbmQgdGhlIDYtZGlnaXQgY29kZSB0byB0aGlzIHBob25lIG51bWJlciB2aWEgU01TL3RleHQgbWVzc2FnZTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMyBtYi0yIHRleHQtY2VudGVyIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIG1iLTEiPjYtRGlnaXQgVmVyaWZpY2F0aW9uIENvZGU8L3A+PHAgY2xhc3M9InRleHQtM3hsIGZvbnQtYm9sZCB0ZXh0LWFtYmVyLTQwMCB0cmFja2luZy13aWRlc3QiIGlkPSJyZXNldENvZGVfJHtyLmlkfSI+JHtyLmNvZGV9PC9wPjxidXR0b24gb25jbGljaz0ibmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoJyR7ci5jb2RlfScpLnRoZW4oKCk9PnNob3dBbGVydCgnQ29kZSBjb3BpZWQgdG8gY2xpcGJvYXJkJywnc3VjY2VzcycpKSIgY2xhc3M9Im10LTIgdGV4dC14cyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtd2hpdGUgdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyIj48aSBjbGFzcz0iZmFzIGZhLWNvcHkgbXItMSI+PC9pPkNvcHkgQ29kZTwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCI+PHNwYW4+PGkgY2xhc3M9ImZhcyBmYS1jbG9jayBtci0xIj48L2k+RXhwaXJlczogJHtleHBpcmVzfTwvc3Bhbj48L2Rpdj48L2Rpdj5gOyB9KTsgaHRtbCArPSAnPC9kaXY+JzsgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7IGlmIChiYWRnZSkgeyBiYWRnZS50ZXh0Q29udGVudCA9IHJlcXVlc3RzLmxlbmd0aDsgYmFkZ2UuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0gfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgcmVzZXQgcmVxdWVzdHM6JywgZXJyb3IpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5QYXNzd29yZFJlc2V0Q29udGFpbmVyJykuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5GYWlsZWQgdG8gbG9hZCByZXNldCByZXF1ZXN0czwvcD48L2Rpdj4nOyB9IH0NCiAgICAgICAgZnVuY3Rpb24gZGVsZXRlQ3VzdG9tZXIodXNlcklkLCB1c2VyTmFtZSkgeyBpZiAoIWlzQWRtaW4pIHJldHVybjsgc2hvd0NvbmZpcm1Nb2RhbCgnV0FSTklORzogVGhpcyB3aWxsIHBlcm1hbmVudGx5IGRlbGV0ZSAnICsgdXNlck5hbWUgKyAnIGFuZCBBTEwgdGhlaXIgZGF0YS4gVGhpcyBjYW5ub3QgYmUgdW5kb25lLiBDb250aW51ZT8nLCBmdW5jdGlvbigpIHsgZG9EZWxldGVDdXN0b21lcih1c2VySWQsIHVzZXJOYW1lKTsgfSk7IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9EZWxldGVDdXN0b21lcih1c2VySWQsIHVzZXJOYW1lKSB7IHRyeSB7IGF3YWl0IGFwaUNhbGwoJ2FkbWluL3VzZXJzL2RlbGV0ZScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgdXNlcklkOiB1c2VySWQgfSB9KTsgc2hvd0FsZXJ0KHVzZXJOYW1lICsgJyBkZWxldGVkIHN1Y2Nlc3NmdWxseS4nLCAnc3VjY2VzcycpOyBsb2FkQWRtaW5DdXN0b21lcnMoKTsgbG9hZEFkbWluQ2hhdENvbnZlcnNhdGlvbnMoKTsgbG9hZEFkbWluUGFzc3dvcmRSZXNldFJlcXVlc3RzKCk7IH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRGVsZXRlIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9naW5Bc0N1c3RvbWVyKHVzZXJJZCkgew0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47DQogICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKCdMb2dpbiBhcyB0aGlzIGN1c3RvbWVyPyBZb3Ugd2lsbCBiZSBsb2dnZWQgb3V0IG9mIGFkbWluIGFuZCBsb2dnZWQgaW4gYXMgdGhpcyBjdXN0b21lci4nLCBmdW5jdGlvbigpIHsgZG9Mb2dpbkFzQ3VzdG9tZXIodXNlcklkKTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9Mb2dpbkFzQ3VzdG9tZXIodXNlcklkKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi91c2Vycy9pbXBlcnNvbmF0ZScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgdXNlcklkOiB1c2VySWQgfSB9KTsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YS50b2tlbiAmJiBkYXRhLnVzZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYWRtaW5SZXR1cm5Ub2tlbicsIGF1dGhUb2tlbik7DQogICAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2FkbWluUmV0dXJuVXNlcicsIEpTT04uc3RyaW5naWZ5KGN1cnJlbnRVc2VyKSk7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVRva2VuJywgZGF0YS50b2tlbik7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVVzZXInLCBKU09OLnN0cmluZ2lmeShkYXRhLnVzZXIpKTsNCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BsYXRpbnVtSW1wZXJzb25hdGluZycsICd0cnVlJyk7DQogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0xvZ2luIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gbG9nb3V0KCkgew0KICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUltcGVyc29uYXRpbmcnKSA9PT0gJ3RydWUnKSB7DQogICAgICAgICAgICAgICAgY29uc3QgYWRtaW5Ub2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2FkbWluUmV0dXJuVG9rZW4nKTsNCiAgICAgICAgICAgICAgICBjb25zdCBhZG1pblVzZXIgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhZG1pblJldHVyblVzZXInKTsNCiAgICAgICAgICAgICAgICBpZiAoYWRtaW5Ub2tlbiAmJiBhZG1pblVzZXIpIHsNCiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnYWRtaW5SZXR1cm5Ub2tlbicpOw0KICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhZG1pblJldHVyblVzZXInKTsNCiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtSW1wZXJzb25hdGluZycpOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1Ub2tlbicsIGFkbWluVG9rZW4pOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1Vc2VyJywgYWRtaW5Vc2VyKTsNCiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtVXNlcicpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKTsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScpOyBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1HdWVzdENoYXQnKTsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtSW1wZXJzb25hdGluZycpOyBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhZG1pblJldHVyblRva2VuJyk7IHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2FkbWluUmV0dXJuVXNlcicpOyBjdXJyZW50VXNlciA9IG51bGw7IGF1dGhUb2tlbiA9IG51bGw7IGd1ZXN0Q2hhdEluZm8gPSBudWxsOyBzaG93QXV0aCgnbG9naW4nKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWREYXNoYm9hcmQoKSB7DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGFzaGJvYXJkQ3J5cHRvTGlzdCcpOyBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICBPYmplY3QuZW50cmllcyhjcnlwdG9EYXRhKS5zbGljZSgwLCA0KS5mb3JFYWNoKChba2V5LCBjcnlwdG9dKSA9PiB7IGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkaXYuY2xhc3NOYW1lID0gJ2NyeXB0by1saXN0LWl0ZW0nOyBkaXYub25jbGljayA9ICgpID0+IHsgc2VsZWN0ZWRDcnlwdG8gPSBrZXk7IHNob3dTZWN0aW9uKCd0cmFkZScpOyB9OyBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImNyeXB0by1pY29uICR7Y3J5cHRvLmNvbG9yfSB0ZXh0LWxnIG1yLTMiPiR7Y3J5cHRvLmljb259PC9kaXY+PGRpdiBjbGFzcz0iZmxleC0xIj48cCBjbGFzcz0iZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4ke2NyeXB0by5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPiR7Y3J5cHRvLm5hbWV9PC9wPjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiQke2NyeXB0by5wcmljZS50b0xvY2FsZVN0cmluZygpfTwvcD48cCBjbGFzcz0idGV4dC1zbSAke2NyeXB0by5jaGFuZ2UgPj0gMCA/ICd0cmVuZC11cCcgOiAndHJlbmQtZG93bid9Ij4ke2NyeXB0by5jaGFuZ2UgPj0gMCA/ICcrJyA6ICcnfSR7Y3J5cHRvLmNoYW5nZS50b0ZpeGVkKDIpfSU8L3A+PC9kaXY+YDsgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IH0pOw0KICAgICAgICAgICAgc3RhcnRQb3J0Zm9saW9DaGFydCgpOyB1cGRhdGVEYXNoYm9hcmRTdGF0cygpOyBmZXRjaENyeXB0b05ld3MoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGNvbnN0IG5ld3NBcnRpY2xlUG9vbCA9IFsNCiAgICAgICAgICAgIHt0aXRsZTonQml0Y29pbiBTdXJnZXMgUGFzdCAkODEsMDAwIGFzIEluc3RpdHV0aW9uYWwgQnV5aW5nIEFjY2VsZXJhdGVzJywgYm9keTonQml0Y29pbiBoYXMgYnJva2VuIGFib3ZlIHRoZSAkODEsMDAwIHJlc2lzdGFuY2UgbGV2ZWwgYXMgaW5zdGl0dXRpb25hbCBpbnZlc3RvcnMgY29udGludWUgdG8gYWNjdW11bGF0ZS4gRVRGIGluZmxvd3MgcmVhY2hlZCAkODkwTSB0aGlzIHdlZWsuJywgdXJsOidodHRwczovL3d3dy5jb2luZGVzay5jb20nLCBzb3VyY2U6J0NvaW5EZXNrJywgY2F0ZWdvcmllczonQlRDJ30sDQogICAgICAgICAgICB7dGl0bGU6J0V0aGVyZXVtIDIuMCBTdGFraW5nIFJld2FyZHMgSGl0IEFsbC1UaW1lIEhpZ2gnLCBib2R5OidFdGhlcmV1bSBzdGFraW5nIHJld2FyZHMgaGF2ZSByZWFjaGVkIGEgbmV3IGFsbC10aW1lIGhpZ2ggb2YgNC4yJSBBUFIgZm9sbG93aW5nIHRoZSBsYXRlc3QgbmV0d29yayB1cGdyYWRlIGFuZCBpbmNyZWFzZWQgdmFsaWRhdG9yIHBhcnRpY2lwYXRpb24uJywgdXJsOidodHRwczovL2NvaW50ZWxlZ3JhcGguY29tJywgc291cmNlOidDb2ludGVsZWdyYXBoJywgY2F0ZWdvcmllczonRVRIJ30sDQogICAgICAgICAgICB7dGl0bGU6J1NvbGFuYSBEZUZpIFRWTCBDcm9zc2VzICQ4IEJpbGxpb24gTWlsZXN0b25lJywgYm9keTonVG90YWwgVmFsdWUgTG9ja2VkIG9uIFNvbGFuYSBoYXMgc3VycGFzc2VkICQ4IGJpbGxpb24sIGRyaXZlbiBieSBncm93aW5nIGFkb3B0aW9uIG9mIEp1cGl0ZXIsIE1hcmluYWRlLCBhbmQgS2FtaW5vIEZpbmFuY2UgcHJvdG9jb2xzLicsIHVybDonaHR0cHM6Ly9kZWNyeXB0LmNvJywgc291cmNlOidEZWNyeXB0JywgY2F0ZWdvcmllczonRGVGaSd9LA0KICAgICAgICAgICAge3RpdGxlOidTRUMgQXBwcm92ZXMgU3BvdCBFdGhlcmV1bSBFVEZzIGZvciBUcmFkaW5nJywgYm9keTonVGhlIFUuUy4gU2VjdXJpdGllcyBhbmQgRXhjaGFuZ2UgQ29tbWlzc2lvbiBoYXMgb2ZmaWNpYWxseSBhcHByb3ZlZCBzcG90IEV0aGVyZXVtIEVURnMsIG1hcmtpbmcgYSBoaXN0b3JpYyBtaWxlc3RvbmUgZm9yIHRoZSBjcnlwdG8gaW5kdXN0cnkuJywgdXJsOidodHRwczovL3d3dy5yZXV0ZXJzLmNvbScsIHNvdXJjZTonUmV1dGVycycsIGNhdGVnb3JpZXM6J1JlZ3VsYXRpb24nfSwNCiAgICAgICAgICAgIHt0aXRsZTonUmlwcGxlIEV4cGFuZHMgQ3Jvc3MtQm9yZGVyIFBheW1lbnQgTmV0d29yayB0byBBc2lhJywgYm9keTonUmlwcGxlIGhhcyBhbm5vdW5jZWQgcGFydG5lcnNoaXBzIHdpdGggdGhyZWUgbWFqb3IgQXNpYW4gYmFua3MgdG8gZXhwYW5kIGl0cyBPbi1EZW1hbmQgTGlxdWlkaXR5IHNlcnZpY2UgdXNpbmcgWFJQIGZvciBpbnN0YW50IGNyb3NzLWJvcmRlciBzZXR0bGVtZW50cy4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidYUlAnfSwNCiAgICAgICAgICAgIHt0aXRsZTonTWljcm9TdHJhdGVneSBBY3F1aXJlcyBBZGRpdGlvbmFsIDEyLDAwMCBCaXRjb2luJywgYm9keTonTWljaGFlbCBTYXlsb3JcJ3MgTWljcm9TdHJhdGVneSBoYXMgcHVyY2hhc2VkIGFuIGFkZGl0aW9uYWwgMTIsMDAwIEJUQyBmb3IgJDc4ME0sIGJyaW5naW5nIHRoZWlyIHRvdGFsIGhvbGRpbmdzIHRvIG92ZXIgMjA1LDAwMCBCaXRjb2luLicsIHVybDonaHR0cHM6Ly93d3cuY29pbmRlc2suY29tJywgc291cmNlOidDb2luRGVzaycsIGNhdGVnb3JpZXM6J0JUQyd9LA0KICAgICAgICAgICAge3RpdGxlOidCaW5hbmNlIExhdW5jaGVzIE5ldyBaZXJvLUZlZSBUcmFkaW5nIFByb21vdGlvbicsIGJvZHk6J0JpbmFuY2UgaGFzIGFubm91bmNlZCBhIG5ldyB6ZXJvLWZlZSB0cmFkaW5nIHByb21vdGlvbiBmb3Igc3BvdCBtYXJrZXRzLCBjb3ZlcmluZyBvdmVyIDIwMCB0cmFkaW5nIHBhaXJzIGZvciBhIGxpbWl0ZWQgdGltZSBwZXJpb2QuJywgdXJsOidodHRwczovL2NvaW50ZWxlZ3JhcGguY29tJywgc291cmNlOidDb2ludGVsZWdyYXBoJywgY2F0ZWdvcmllczonVHJhZGluZyd9LA0KICAgICAgICAgICAge3RpdGxlOidDYXJkYW5vIEh5ZHJhIFVwZ3JhZGUgUHJvY2Vzc2VzIDFNIFRQUyBpbiBUZXN0bmV0JywgYm9keTonQ2FyZGFub1wncyBMYXllciAyIHNjYWxpbmcgc29sdXRpb24gSHlkcmEgaGFzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQgb3ZlciAxIG1pbGxpb24gdHJhbnNhY3Rpb25zIHBlciBzZWNvbmQgaW4gdGhlIGxhdGVzdCB0ZXN0bmV0IGRlcGxveW1lbnQuJywgdXJsOidodHRwczovL2RlY3J5cHQuY28nLCBzb3VyY2U6J0RlY3J5cHQnLCBjYXRlZ29yaWVzOidUZWNobm9sb2d5J30sDQogICAgICAgICAgICB7dGl0bGU6J0NvaW5iYXNlIFJlcG9ydHMgJDEuMkIgUmV2ZW51ZSBpbiBRMiBFYXJuaW5ncycsIGJvZHk6J0NvaW5iYXNlIGhhcyBleGNlZWRlZCBhbmFseXN0IGV4cGVjdGF0aW9ucyB3aXRoICQxLjIgYmlsbGlvbiBpbiBxdWFydGVybHkgcmV2ZW51ZSwgZHJpdmVuIGJ5IGluY3JlYXNlZCB0cmFkaW5nIHZvbHVtZSBhbmQgc3Vic2NyaXB0aW9uIHNlcnZpY2VzLicsIHVybDonaHR0cHM6Ly93d3cucmV1dGVycy5jb20nLCBzb3VyY2U6J1JldXRlcnMnLCBjYXRlZ29yaWVzOidUcmFkaW5nJ30sDQogICAgICAgICAgICB7dGl0bGU6J0phcGFuIEFwcHJvdmVzIE5ldyBTdGFibGVjb2luIFJlZ3VsYXRvcnkgRnJhbWV3b3JrJywgYm9keTonSmFwYW5cJ3MgRmluYW5jaWFsIFNlcnZpY2VzIEFnZW5jeSBoYXMgYXBwcm92ZWQgYSBjb21wcmVoZW5zaXZlIHJlZ3VsYXRvcnkgZnJhbWV3b3JrIGZvciBzdGFibGVjb2luIGlzc3VlcnMsIHJlcXVpcmluZyAxMDAlIHJlc2VydmUgYmFja2luZy4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidSZWd1bGF0aW9uJ30sDQogICAgICAgICAgICB7dGl0bGU6J0JsYWNrUm9jayBCaXRjb2luIEVURiBCZWNvbWVzIExhcmdlc3QgRnVuZCBHbG9iYWxseScsIGJvZHk6J0JsYWNrUm9ja1wncyBJQklUIGhhcyBzdXJwYXNzZWQgR3JheXNjYWxlIHRvIGJlY29tZSB0aGUgd29ybGRcJ3MgbGFyZ2VzdCBCaXRjb2luIGZ1bmQgd2l0aCBvdmVyICQyNSBiaWxsaW9uIGluIGFzc2V0cyB1bmRlciBtYW5hZ2VtZW50LicsIHVybDonaHR0cHM6Ly93d3cuY29pbmRlc2suY29tJywgc291cmNlOidDb2luRGVzaycsIGNhdGVnb3JpZXM6J0JUQyd9LA0KICAgICAgICAgICAge3RpdGxlOidBdmFsYW5jaGUgU3VibmV0IEFkb3B0aW9uIEdyb3dzIDMwMCUgVGhpcyBRdWFydGVyJywgYm9keTonRW50ZXJwcmlzZSBhZG9wdGlvbiBvZiBBdmFsYW5jaGUgc3VibmV0cyBoYXMgZ3Jvd24gYnkgMzAwJSB0aGlzIHF1YXJ0ZXIsIHdpdGggbWFqb3IgZ2FtaW5nIGFuZCBEZUZpIHByb2plY3RzIGxhdW5jaGluZyBkZWRpY2F0ZWQgY2hhaW5zLicsIHVybDonaHR0cHM6Ly9kZWNyeXB0LmNvJywgc291cmNlOidEZWNyeXB0JywgY2F0ZWdvcmllczonVGVjaG5vbG9neSd9LA0KICAgICAgICAgICAge3RpdGxlOidQYXlQYWwgRXhwYW5kcyBDcnlwdG8gU2VydmljZXMgdG8gRXVyb3BlYW4gTWFya2V0cycsIGJvZHk6J1BheVBhbCBoYXMgcm9sbGVkIG91dCBpdHMgY3J5cHRvY3VycmVuY3kgYnV5LCBob2xkLCBhbmQgc2VsbCBmZWF0dXJlcyB0byAyOCBFdXJvcGVhbiBjb3VudHJpZXMsIGluY2x1ZGluZyBHZXJtYW55LCBGcmFuY2UsIGFuZCBJdGFseS4nLCB1cmw6J2h0dHBzOi8vd3d3LnJldXRlcnMuY29tJywgc291cmNlOidSZXV0ZXJzJywgY2F0ZWdvcmllczonVHJhZGluZyd9LA0KICAgICAgICAgICAge3RpdGxlOidDaGFpbmxpbmsgQ0NJUCBFbmFibGVzIENyb3NzLUNoYWluIERlRmkgTGVuZGluZycsIGJvZHk6J0NoYWlubGlua1wncyBDcm9zcy1DaGFpbiBJbnRlcm9wZXJhYmlsaXR5IFByb3RvY29sIGhhcyBlbmFibGVkIHRoZSBmaXJzdCBjcm9zcy1jaGFpbiBEZUZpIGxlbmRpbmcgcGxhdGZvcm0sIGFsbG93aW5nIGNvbGxhdGVyYWwgb24gb25lIGNoYWluIGFuZCBib3Jyb3dpbmcgb24gYW5vdGhlci4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidEZUZpJ30sDQogICAgICAgICAgICB7dGl0bGU6J1NvdXRoIEtvcmVhIE1hbmRhdGVzIENyeXB0byBFeGNoYW5nZSBJbnN1cmFuY2UnLCBib2R5OidTb3V0aCBLb3JlYW4gcmVndWxhdG9ycyBub3cgcmVxdWlyZSBhbGwgbGljZW5zZWQgY3J5cHRvY3VycmVuY3kgZXhjaGFuZ2VzIHRvIG1haW50YWluIGluc3VyYW5jZSBjb3ZlcmFnZSBlcXVpdmFsZW50IHRvIDgwJSBvZiB1c2VyIGRlcG9zaXRzLicsIHVybDonaHR0cHM6Ly93d3cuY29pbmRlc2suY29tJywgc291cmNlOidDb2luRGVzaycsIGNhdGVnb3JpZXM6J1JlZ3VsYXRpb24nfSwNCiAgICAgICAgICAgIHt0aXRsZTonUG9seWdvbiB6a0VWTSBBY2hpZXZlcyA1MCUgQ29zdCBSZWR1Y3Rpb24nLCBib2R5OidQb2x5Z29uXCdzIHplcm8ta25vd2xlZGdlIEVWTSBoYXMgYWNoaWV2ZWQgYSA1MCUgcmVkdWN0aW9uIGluIHRyYW5zYWN0aW9uIGNvc3RzIGZvbGxvd2luZyBpdHMgbGF0ZXN0IG5ldHdvcmsgb3B0aW1pemF0aW9uIHVwZ3JhZGUuJywgdXJsOidodHRwczovL2RlY3J5cHQuY28nLCBzb3VyY2U6J0RlY3J5cHQnLCBjYXRlZ29yaWVzOidUZWNobm9sb2d5J30sDQogICAgICAgICAgICB7dGl0bGU6J0ZpZGVsaXR5IExhdW5jaGVzIFNwb3QgRXRoZXJldW0gRnVuZCBmb3IgSW5zdGl0dXRpb25zJywgYm9keTonRmlkZWxpdHkgSW52ZXN0bWVudHMgaGFzIGxhdW5jaGVkIGEgbmV3IHNwb3QgRXRoZXJldW0gZnVuZCBzcGVjaWZpY2FsbHkgZGVzaWduZWQgZm9yIGluc3RpdHV0aW9uYWwgaW52ZXN0b3JzIHdpdGggYSBtaW5pbXVtIGVudHJ5IG9mICQxMDAsMDAwLicsIHVybDonaHR0cHM6Ly93d3cucmV1dGVycy5jb20nLCBzb3VyY2U6J1JldXRlcnMnLCBjYXRlZ29yaWVzOidFVEgnfSwNCiAgICAgICAgICAgIHt0aXRsZTonQ3J5cHRvIE1pbmluZyBEaWZmaWN1bHR5IFJlYWNoZXMgTmV3IEFsbC1UaW1lIEhpZ2gnLCBib2R5OidCaXRjb2luIG1pbmluZyBkaWZmaWN1bHR5IGhhcyBhZGp1c3RlZCB1cHdhcmQgYnkgOC41JSB0byBhIG5ldyBhbGwtdGltZSBoaWdoIG9mIDgzIHRyaWxsaW9uLCByZWZsZWN0aW5nIGluY3JlYXNlZCBuZXR3b3JrIHNlY3VyaXR5IGFuZCBjb21wZXRpdGlvbi4nLCB1cmw6J2h0dHBzOi8vY29pbnRlbGVncmFwaC5jb20nLCBzb3VyY2U6J0NvaW50ZWxlZ3JhcGgnLCBjYXRlZ29yaWVzOidCVEMnfSwNCiAgICAgICAgICAgIHt0aXRsZTonVW5pc3dhcCBWNCBJbnRyb2R1Y2VzIEN1c3RvbWl6YWJsZSBMaXF1aWRpdHkgSG9va3MnLCBib2R5OidVbmlzd2FwIFY0IGhhcyBsYXVuY2hlZCB3aXRoIHJldm9sdXRpb25hcnkgY3VzdG9taXphYmxlIGhvb2tzLCBhbGxvd2luZyBkZXZlbG9wZXJzIHRvIGNyZWF0ZSBiZXNwb2tlIGxpcXVpZGl0eSBwb29scyB3aXRoIHVuaXF1ZSBmZWUgc3RydWN0dXJlcy4nLCB1cmw6J2h0dHBzOi8vZGVjcnlwdC5jbycsIHNvdXJjZTonRGVjcnlwdCcsIGNhdGVnb3JpZXM6J0RlRmknfSwNCiAgICAgICAgICAgIHt0aXRsZTonRHViYWkgR3JhbnRzIEZpcnN0IEFJLVBvd2VyZWQgQ3J5cHRvIFRyYWRpbmcgTGljZW5zZScsIGJvZHk6J0R1YmFpXCdzIFZpcnR1YWwgQXNzZXRzIFJlZ3VsYXRvcnkgQXV0aG9yaXR5IGhhcyBncmFudGVkIHRoZSBmaXJzdCBsaWNlbnNlIGZvciBhbiBBSS1wb3dlcmVkIGF1dG9tYXRlZCBjcnlwdG8gdHJhZGluZyBwbGF0Zm9ybSBpbiB0aGUgTWlkZGxlIEVhc3QuJywgdXJsOidodHRwczovL3d3dy5jb2luZGVzay5jb20nLCBzb3VyY2U6J0NvaW5EZXNrJywgY2F0ZWdvcmllczonUmVndWxhdGlvbid9DQogICAgICAgIF07DQoNCiAgICAgICAgZnVuY3Rpb24gc2h1ZmZsZUFycmF5KGFycikgew0KICAgICAgICAgICAgY29uc3QgYSA9IFsuLi5hcnJdOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IGEubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgeyBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7IFthW2ldLCBhW2pdXSA9IFthW2pdLCBhW2ldXTsgfQ0KICAgICAgICAgICAgcmV0dXJuIGE7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwaWNrUmFuZG9tQXJ0aWNsZXMoKSB7DQogICAgICAgICAgICBjb25zdCBzaHVmZmxlZCA9IHNodWZmbGVBcnJheShuZXdzQXJ0aWNsZVBvb2wpOw0KICAgICAgICAgICAgY29uc3Qgbm93ID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7DQogICAgICAgICAgICByZXR1cm4gc2h1ZmZsZWQuc2xpY2UoMCwgNSkubWFwKChhLCBpKSA9PiAoew0KICAgICAgICAgICAgICAgIC4uLmEsIHB1Ymxpc2hlZF9vbjogbm93IC0gKGkgKyAxKSAqIDQyMDAgLSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxODAwKQ0KICAgICAgICAgICAgfSkpOw0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IG5ld3NSZWZyZXNoVGltZXIgPSBudWxsOw0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGZldGNoQ3J5cHRvTmV3cygpIHsNCiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFya2V0TmV3c0xpc3QnKTsNCiAgICAgICAgICAgIGlmICghbGlzdCkgcmV0dXJuOw0KICAgICAgICAgICAgbGlzdC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC0zIHJvdW5kZWQteGwgYmctZ3JheS04MDAvMzAgdGV4dC1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgZmEtc3Bpbm5lciBmYS1zcGluIHRleHQtZ3JheS00MDAgbXItMiI+PC9pPjxzcGFuIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3NwYW4+PC9kaXY+JzsNCg0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgJHtBUElfVVJMfS9tYXJrZXQvbmV3c2ApOw0KICAgICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ05ld3MgQVBJIGZhaWxlZCcpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFydGljbGVzID0gZGF0YS5hcnRpY2xlcyB8fCBbXTsNCiAgICAgICAgICAgICAgICBpZiAoYXJ0aWNsZXMubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1OZXdzQ2FjaGUnLCBKU09OLnN0cmluZ2lmeSh7IGFydGljbGVzLCBzYXZlZEF0OiBEYXRlLm5vdygpIH0pKTsNCiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTmV3c0FydGljbGVzKGFydGljbGVzKTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9DQoNCiAgICAgICAgICAgIC8vIFVzZSByb3RhdGluZyBmYWxsYmFjayBwb29sIOKAlCBkaWZmZXJlbnQgYXJ0aWNsZXMgZXZlcnkgdGltZQ0KICAgICAgICAgICAgcmVuZGVyTmV3c0FydGljbGVzKHBpY2tSYW5kb21BcnRpY2xlcygpKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0YXJ0TmV3c0F1dG9SZWZyZXNoKCkgew0KICAgICAgICAgICAgaWYgKG5ld3NSZWZyZXNoVGltZXIpIGNsZWFySW50ZXJ2YWwobmV3c1JlZnJlc2hUaW1lcik7DQogICAgICAgICAgICBuZXdzUmVmcmVzaFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gew0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2VjdGlvbiA9PT0gJ2Rhc2hib2FyZCcpIGZldGNoQ3J5cHRvTmV3cygpOw0KICAgICAgICAgICAgfSwgMzAwMDAwKTsgLy8gcmVmcmVzaCBldmVyeSA1IG1pbnV0ZXMNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0b3BOZXdzQXV0b1JlZnJlc2goKSB7DQogICAgICAgICAgICBpZiAobmV3c1JlZnJlc2hUaW1lcikgeyBjbGVhckludGVydmFsKG5ld3NSZWZyZXNoVGltZXIpOyBuZXdzUmVmcmVzaFRpbWVyID0gbnVsbDsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcmVuZGVyTmV3c0FydGljbGVzKGFydGljbGVzKSB7DQogICAgICAgICAgICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcmtldE5ld3NMaXN0Jyk7DQogICAgICAgICAgICBpZiAoIWxpc3QgfHwgIWFydGljbGVzIHx8IGFydGljbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOw0KICAgICAgICAgICAgbGlzdC5pbm5lckhUTUwgPSBhcnRpY2xlcy5tYXAoKGFydGljbGUsIGlkeCkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVBZ28gPSBnZXRUaW1lQWdvKGFydGljbGUucHVibGlzaGVkX29uKTsNCiAgICAgICAgICAgICAgICBjb25zdCBpY29uQ2xhc3MgPSBnZXROZXdzSWNvbihhcnRpY2xlLmNhdGVnb3JpZXMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGdyYWRpZW50ID0gZ2V0TmV3c0dyYWRpZW50KGFydGljbGUuY2F0ZWdvcmllcyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGA8YSBocmVmPSIke2FydGljbGUudXJsfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGNsYXNzPSJuZXdzLWNhcmQgZmxleCBnYXAtMyBwLTMgcm91bmRlZC14bCBiZy1ncmF5LTgwMC8zMCBob3ZlcjpiZy13aGl0ZS8xMCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlciBuby11bmRlcmxpbmUgYmxvY2siIHN0eWxlPSJhbmltYXRpb24tZGVsYXk6JHtpZHggKiAwLjA3fXMiPjxkaXYgY2xhc3M9InctMTYgaC0xNiByb3VuZGVkLWxnIGJnLWdyYWRpZW50LXRvLWJyICR7Z3JhZGllbnR9IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSIke2ljb25DbGFzc30gdGV4dC13aGl0ZSB0ZXh0LXhsIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iZmxleC0xIG1pbi13LTAiPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdHJ1bmNhdGUiPiR7ZXNjYXBlSHRtbChhcnRpY2xlLnRpdGxlKX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBsaW5lLWNsYW1wLTIiPiR7ZXNjYXBlSHRtbCgoYXJ0aWNsZS5ib2R5IHx8ICcnKS5zdWJzdHJpbmcoMCwgMTIwKSl9Li4uPC9wPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIG10LTEiPjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAiPiR7dGltZUFnb308L3NwYW4+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTYwMCI+fDwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIj4ke2VzY2FwZUh0bWwoYXJ0aWNsZS5zb3VyY2UpfTwvc3Bhbj48L2Rpdj48L2Rpdj48L2E+YDsNCiAgICAgICAgICAgIH0pLmpvaW4oJycpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZ2V0VGltZUFnbyh0aW1lc3RhbXApIHsNCiAgICAgICAgICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSAtIHRpbWVzdGFtcDsNCiAgICAgICAgICAgIGlmIChzZWNvbmRzIDwgNjApIHJldHVybiAnSnVzdCBub3cnOw0KICAgICAgICAgICAgaWYgKHNlY29uZHMgPCAzNjAwKSByZXR1cm4gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApICsgJ20gYWdvJzsNCiAgICAgICAgICAgIGlmIChzZWNvbmRzIDwgODY0MDApIHJldHVybiBNYXRoLmZsb29yKHNlY29uZHMgLyAzNjAwKSArICdoIGFnbyc7DQogICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihzZWNvbmRzIC8gODY0MDApICsgJ2QgYWdvJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGdldE5ld3NJY29uKGNhdGVnb3JpZXMpIHsNCiAgICAgICAgICAgIGNvbnN0IGNhdCA9IChjYXRlZ29yaWVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygnYnRjJykgfHwgY2F0LmluY2x1ZGVzKCdiaXRjb2luJykpIHJldHVybiAnZmFiIGZhLWJpdGNvaW4nOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygnZXRoJykgfHwgY2F0LmluY2x1ZGVzKCdldGhlcmV1bScpKSByZXR1cm4gJ2ZhYiBmYS1ldGhlcmV1bSc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCd0cmFkaW5nJykgfHwgY2F0LmluY2x1ZGVzKCdtYXJrZXQnKSkgcmV0dXJuICdmYXMgZmEtY2hhcnQtbGluZSc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCdyZWd1bGF0aW9uJykgfHwgY2F0LmluY2x1ZGVzKCdzZWMnKSkgcmV0dXJuICdmYXMgZmEtbGFuZG1hcmsnOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygndGVjaG5vbG9neScpIHx8IGNhdC5pbmNsdWRlcygnZGVmaScpKSByZXR1cm4gJ2ZhcyBmYS1taWNyb2NoaXAnOw0KICAgICAgICAgICAgcmV0dXJuICdmYXMgZmEtbmV3c3BhcGVyJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGdldE5ld3NHcmFkaWVudChjYXRlZ29yaWVzKSB7DQogICAgICAgICAgICBjb25zdCBjYXQgPSAoY2F0ZWdvcmllcyB8fCAnJykudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGlmIChjYXQuaW5jbHVkZXMoJ2J0YycpIHx8IGNhdC5pbmNsdWRlcygnYml0Y29pbicpKSByZXR1cm4gJ2Zyb20tb3JhbmdlLTUwMCB0by1hbWJlci01MDAnOw0KICAgICAgICAgICAgaWYgKGNhdC5pbmNsdWRlcygnZXRoJykgfHwgY2F0LmluY2x1ZGVzKCdldGhlcmV1bScpKSByZXR1cm4gJ2Zyb20tYmx1ZS01MDAgdG8taW5kaWdvLTUwMCc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCd0cmFkaW5nJykgfHwgY2F0LmluY2x1ZGVzKCdtYXJrZXQnKSkgcmV0dXJuICdmcm9tLWVtZXJhbGQtNTAwIHRvLXRlYWwtNTAwJzsNCiAgICAgICAgICAgIGlmIChjYXQuaW5jbHVkZXMoJ3JlZ3VsYXRpb24nKSB8fCBjYXQuaW5jbHVkZXMoJ3NlYycpKSByZXR1cm4gJ2Zyb20tcmVkLTUwMCB0by1yb3NlLTUwMCc7DQogICAgICAgICAgICBpZiAoY2F0LmluY2x1ZGVzKCd0ZWNobm9sb2d5JykgfHwgY2F0LmluY2x1ZGVzKCdkZWZpJykpIHJldHVybiAnZnJvbS1wdXJwbGUtNTAwIHRvLXZpb2xldC01MDAnOw0KICAgICAgICAgICAgcmV0dXJuICdmcm9tLWdyYXktNTAwIHRvLWdyYXktNjAwJzsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGVzY2FwZUh0bWwodGV4dCkgew0KICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgICAgICBkaXYudGV4dENvbnRlbnQgPSB0ZXh0Ow0KICAgICAgICAgICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiB1cGRhdGVEYXNoYm9hcmRTdGF0cygpIHsgY29uc3QgYXNzZXRDb3VudCA9IGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLndhbGxldHMgPyBPYmplY3Qua2V5cyhjdXJyZW50VXNlci53YWxsZXRzKS5sZW5ndGggOiAwOyBjb25zdCBhc3NldENvdW50RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXNzZXRDb3VudCcpOyBpZiAoYXNzZXRDb3VudEVsKSBhc3NldENvdW50RWwudGV4dENvbnRlbnQgPSBhc3NldENvdW50OyBpZiAoY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIud2FsbGV0cykgeyBsZXQgdG90YWxCYWxhbmNlID0gMDsgT2JqZWN0LmVudHJpZXMoY3VycmVudFVzZXIud2FsbGV0cykuZm9yRWFjaCgoW2MsIHddKSA9PiB7IGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbY107IHRvdGFsQmFsYW5jZSArPSAody5iYWxhbmNlIHx8IDApICogKGNyeXB0byA/IGNyeXB0by5wcmljZSA6IDEpOyB9KTsgY29uc3QgcHJvZml0MjRoID0gdG90YWxCYWxhbmNlICogMC4wMjM0OyBjb25zdCBwcm9maXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9maXQyNGgnKTsgaWYgKHByb2ZpdEVsKSBwcm9maXRFbC50ZXh0Q29udGVudCA9ICcrJCcgKyBwcm9maXQyNGgudG9GaXhlZCgyKTsgY29uc3QgYmFsYW5jZUNoYW5nZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JhbGFuY2VDaGFuZ2UnKTsgaWYgKGJhbGFuY2VDaGFuZ2VFbCkgYmFsYW5jZUNoYW5nZUVsLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iZmFzIGZhLWFycm93LXVwIj48L2k+ICsyLjM0JSAoJCcgKyBwcm9maXQyNGgudG9GaXhlZCgyKSArICcpJzsgfSB0cnkgeyBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMnKTsgY29uc3QgaW52ZXN0bWVudHMgPSBkYXRhLmludmVzdG1lbnRzIHx8IFtdOyBsZXQgdG90YWxQcm9maXRVU0QgPSAwOyBpbnZlc3RtZW50cy5mb3JFYWNoKGludiA9PiB7IHZhciBwcmljZSA9IChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxOyB2YXIgYWNjUHJvZml0ID0gaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IChpbnYuZGFpbHlQcm9maXQgKiBpbnYuZGF5c0VsYXBzZWQpIHx8IDA7IHRvdGFsUHJvZml0VVNEICs9IGFjY1Byb2ZpdCAqIHByaWNlOyB9KTsgY29uc3QgaW52UHJvZml0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0bWVudFByb2ZpdEJhbGFuY2UnKTsgaWYgKGludlByb2ZpdEVsKSBpbnZQcm9maXRFbC50ZXh0Q29udGVudCA9ICckJyArIGZvcm1hdENsZWFuKHRvdGFsUHJvZml0VVNELCAyKTsgY29uc3QgcHJvZmlsZUludmVzdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVJbnZlc3RQcm9maXQnKTsgaWYgKHByb2ZpbGVJbnZlc3RFbCkgcHJvZmlsZUludmVzdEVsLnRleHRDb250ZW50ID0gJyQnICsgZm9ybWF0Q2xlYW4odG90YWxQcm9maXRVU0QsIDIpOyB9IGNhdGNoIChlKSB7fSB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFRyYW5zYWN0aW9ucygpIHsgYXV0aFRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsgaWYgKCFhdXRoVG9rZW4gfHwgIWN1cnJlbnRVc2VyKSByZXR1cm47IHRyeSB7IGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCd0cmFuc2FjdGlvbnMnKTsgZGlzcGxheVRyYW5zYWN0aW9ucyhkYXRhLnRyYW5zYWN0aW9ucyB8fCBbXSk7IH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHRyYW5zYWN0aW9uczonLCBlcnJvcik7IH0gfQ0KDQogICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlUcmFuc2FjdGlvbnModHJhbnNhY3Rpb25zKSB7DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNhY3Rpb25MaXN0Jyk7IGlmICghY29udGFpbmVyKSByZXR1cm47DQogICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkgeyBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyB0cmFuc2FjdGlvbnMgeWV0PC9wPjwvZGl2Pic7IHJldHVybjsgfQ0KICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyB0cmFuc2FjdGlvbnMuZm9yRWFjaCh0eCA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5jbGFzc05hbWUgPSAncC00IGJvcmRlci1iIGJvcmRlci1ncmF5LTcwMC81MCBsYXN0OmJvcmRlci1iLTAnOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0eC50eXBlIHx8ICd1bmtub3duJzsNCiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSB0eC5zdGF0dXMgfHwgJ2NvbXBsZXRlZCc7DQogICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gc3RhdHVzID09PSAncGVuZGluZyc7DQogICAgICAgICAgICAgICAgY29uc3QgY3VycmVuY3kgPSB0eC5mcm9tQ3VycmVuY3kgfHwgdHgudG9DdXJyZW5jeSB8fCAnYnRjJzsNCiAgICAgICAgICAgICAgICBjb25zdCB0b0N1cnJlbmN5ID0gdHgudG9DdXJyZW5jeTsNCiAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW2N1cnJlbmN5XSB8fCB7IHN5bWJvbDogY3VycmVuY3kudG9VcHBlckNhc2UoKSB9Ow0KICAgICAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gdG9DdXJyZW5jeSA/IChjcnlwdG9EYXRhW3RvQ3VycmVuY3ldIHx8IHsgc3ltYm9sOiB0b0N1cnJlbmN5LnRvVXBwZXJDYXNlKCkgfSkgOiBudWxsOw0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0eC5jcmVhdGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsNCiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBbW91bnQgPSBmb3JtYXRDbGVhbih0eC5hbW91bnQsIDgpOw0KICAgICAgICAgICAgICAgIGxldCBpY29uQmcsIGljb25Db2xvciwgaWNvbkNsYXNzLCBhbW91bnRDbGFzcywgc2lnbiwgbGFiZWwsIGRldGFpbCwgbm90ZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGVwb3NpdCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctZW1lcmFsZC01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1lbWVyYWxkLTQwMCc7IGljb25DbGFzcyA9ICdmYS1hcnJvdy1kb3duJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gJ3RleHQtZW1lcmFsZC00MDAnOyBzaWduID0gJysnOw0KICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnRGVwb3NpdCc7DQogICAgICAgICAgICAgICAgICAgICAgICBub3RlID0gdHgud2l0aGRyYXdhbEFkZHJlc3MgfHwgbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdyZWZlcnJhbF9ib251cyc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctcHVycGxlLTUwMC8yMCc7IGljb25Db2xvciA9ICd0ZXh0LXB1cnBsZS00MDAnOyBpY29uQ2xhc3MgPSAnZmEtZ2lmdCc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LXB1cnBsZS00MDAnOyBzaWduID0gJysnOw0KICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnUmVmZXJyYWwgQm9udXMnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsID0gJ1JlZmVycmFsIGNvZGUgYm9udXMgY3JlZGl0ZWQnOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dpdGhkcmF3YWwnOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJnID0gJ2JnLXJvc2UtNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtcm9zZS00MDAnOyBpY29uQ2xhc3MgPSAnZmEtYXJyb3ctdXAnOw0KICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50Q2xhc3MgPSAndGV4dC1yb3NlLTQwMCc7IHNpZ24gPSAnLSc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHR4Lm1ldGhvZCA9PT0gJ3dpcmUnID8gJ1dpcmUgVHJhbnNmZXInIDogJ1dpdGhkcmF3YWwnOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR4Lm1ldGhvZCA9PT0gJ3dpcmUnKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90ZSA9ICc8aSBjbGFzcz0iZmFzIGZhLXVuaXZlcnNpdHkgbXItMSB0ZXh0LWFtYmVyLTUwMC82MCI+PC9pPicgKyAodHguYmFua05hbWUgfHwgJ1dpcmUnKSArICcgLyAnICsgKHR4LmFjY291bnRIb2xkZXIgfHwgJycpICsgJyAvICoqKionICsgKHR4LmFjY291bnROdW1iZXIgPyB0eC5hY2NvdW50TnVtYmVyLnNsaWNlKC00KSA6ICcnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdpbnZlc3RtZW50JzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25CZyA9ICdiZy1hbWJlci01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1hbWJlci00MDAnOyBpY29uQ2xhc3MgPSAnZmEtcGlnZ3ktYmFuayc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LWFtYmVyLTQwMCc7IHNpZ24gPSAnLSc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICdJbnZlc3RtZW50JzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdwcm9maXRfd2l0aGRyYXdhbCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctYW1iZXItNjAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtYW1iZXItNDAwJzsgaWNvbkNsYXNzID0gJ2ZhLWNvaW5zJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gKHN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgfHwgc3RhdHVzID09PSAnYXBwcm92ZWQnKSA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6ICd0ZXh0LWFtYmVyLTQwMCc7DQogICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gKHN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgfHwgc3RhdHVzID09PSAnYXBwcm92ZWQnKSA/ICcrJyA6ICcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSAnUHJvZml0IFdpdGhkcmF3YWwnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsID0gYCR7c2lnbn0ke2Zvcm1hdHRlZEFtb3VudH0gJHtjcnlwdG8uc3ltYm9sfWA7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29udmVydCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctYmx1ZS01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1ibHVlLTQwMCc7IGljb25DbGFzcyA9ICdmYS1yaWdodC1sZWZ0JzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gdHguYW1vdW50IDwgMCA/ICd0ZXh0LWFtYmVyLTQwMCcgOiAndGV4dC1lbWVyYWxkLTQwMCc7DQogICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gdHguYW1vdW50IDwgMCA/ICctJyA6ICcrJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ0NvbnZlcnQnOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsID0gdG9DcnlwdG8gPyAodHguYW1vdW50IDwgMCA/IGBTZW50ICR7Zm9ybWF0dGVkQW1vdW50fSAke2NyeXB0by5zeW1ib2x9YCA6IGBSZWNlaXZlZCAke2Zvcm1hdHRlZEFtb3VudH0gJHt0b0NyeXB0by5zeW1ib2x9YCkgOiBgJHtzaWdufSR7Zm9ybWF0dGVkQW1vdW50fSAke2NyeXB0by5zeW1ib2x9YDsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdidXknOg0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJnID0gJ2JnLWVtZXJhbGQtNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtZW1lcmFsZC00MDAnOyBpY29uQ2xhc3MgPSAnZmEtY2FydC1zaG9wcGluZyc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LWVtZXJhbGQtNDAwJzsgc2lnbiA9ICcrJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ0J1eSc7DQogICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgPSB0b0NyeXB0byA/IGBTcGVudCAke2Zvcm1hdHRlZEFtb3VudH0gJHtjcnlwdG8uc3ltYm9sfSBmb3IgJHt0b0NyeXB0by5zeW1ib2x9YCA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VsbCc6DQogICAgICAgICAgICAgICAgICAgICAgICBpY29uQmcgPSAnYmctcm9zZS01MDAvMjAnOyBpY29uQ29sb3IgPSAndGV4dC1yb3NlLTQwMCc7IGljb25DbGFzcyA9ICdmYS10YWcnOw0KICAgICAgICAgICAgICAgICAgICAgICAgYW1vdW50Q2xhc3MgPSAndGV4dC1yb3NlLTQwMCc7IHNpZ24gPSAnLSc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICdTZWxsJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbCA9IHRvQ3J5cHRvID8gYFNvbGQgJHtmb3JtYXR0ZWRBbW91bnR9ICR7Y3J5cHRvLnN5bWJvbH0gZm9yICR7dG9DcnlwdG8uc3ltYm9sfWAgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RyYW5zZmVyJzoNCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25CZyA9ICdiZy1wdXJwbGUtNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtcHVycGxlLTQwMCc7IGljb25DbGFzcyA9ICdmYS1wYXBlci1wbGFuZSc7DQogICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRDbGFzcyA9ICd0ZXh0LXB1cnBsZS00MDAnOyBzaWduID0gdHguYW1vdW50ID4gMCA/ICcrJyA6ICctJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gJ1RyYW5zZmVyJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaWNvbkJnID0gJ2JnLWdyYXktNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQtZ3JheS00MDAnOyBpY29uQ2xhc3MgPSAnZmEtY2lyY2xlJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudENsYXNzID0gJ3RleHQtZ3JheS00MDAnOyBzaWduID0gJyc7DQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHR5cGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsZXQgc3RhdHVzVGV4dCwgc3RhdHVzQ29sb3IsIHN0YXR1c0ljb247DQogICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAncGVuZGluZyc6DQogICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0ID0gJ3BlbmRpbmcgLSBhZG1pbiByZXZpZXcnOyBzdGF0dXNDb2xvciA9ICd0ZXh0LXllbGxvdy00MDAnOyBzdGF0dXNJY29uID0gJ2ZhLWNsb2NrJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGljb25CZyA9ICdiZy15ZWxsb3ctNTAwLzIwJzsgaWNvbkNvbG9yID0gJ3RleHQteWVsbG93LTQwMCc7IGljb25DbGFzcyA9ICdmYS1jbG9jayc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVqZWN0ZWQnOg0KICAgICAgICAgICAgICAgICAgICBjYXNlICdjYW5jZWxsZWQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdyZWplY3RlZCAtIGZ1bmRzIHJlZnVuZGVkJzsgc3RhdHVzQ29sb3IgPSAndGV4dC1yb3NlLTQwMCc7IHN0YXR1c0ljb24gPSAnZmEtdGltZXMtY2lyY2xlJzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICdmYWlsZWQnOg0KICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dCA9ICdmYWlsZWQnOyBzdGF0dXNDb2xvciA9ICd0ZXh0LXJlZC00MDAnOyBzdGF0dXNJY29uID0gJ2ZhLWV4Y2xhbWF0aW9uLWNpcmNsZSc7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tcGxldGVkJzoNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQgPSAnY29tcGxldGVkJzsgc3RhdHVzQ29sb3IgPSAndGV4dC1lbWVyYWxkLTQwMCc7IHN0YXR1c0ljb24gPSAnZmEtY2hlY2stY2lyY2xlJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29uc3QgYW1vdW50TGluZSA9IGRldGFpbCB8fCBgJHtzaWdufSR7Zm9ybWF0dGVkQW1vdW50fSAke2NyeXB0by5zeW1ib2x9YDsNCiAgICAgICAgICAgICAgICBjb25zdCBub3RlTGluZSA9IG5vdGUgPyBgPHAgY2xhc3M9InRleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBtdC0xIj48aSBjbGFzcz0iZmFzIGZhLWNvbW1lbnQtYWx0IG1yLTEgdGV4dC1lbWVyYWxkLTUwMC82MCI+PC9pPiR7bm90ZX08L3A+YCA6ICcnOw0KICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIHJvdW5kZWQtZnVsbCAke2ljb25CZ30gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPjxpIGNsYXNzPSJmYXMgJHtpY29uQ2xhc3N9ICR7aWNvbkNvbG9yfSI+PC9pPjwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JHtsYWJlbH08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JHtkYXRlfTwvcD4ke25vdGVMaW5lfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LWJvbGQgJHtzdGF0dXMgPT09ICdwZW5kaW5nJyA/ICd0ZXh0LXllbGxvdy00MDAnIDogKHN0YXR1cyA9PT0gJ3JlamVjdGVkJyB8fCBzdGF0dXMgPT09ICdjYW5jZWxsZWQnIHx8IHN0YXR1cyA9PT0gJ2ZhaWxlZCcgPyAndGV4dC1yb3NlLTQwMCcgOiBhbW91bnRDbGFzcyl9Ij4ke2Ftb3VudExpbmV9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzICR7c3RhdHVzQ29sb3J9Ij48aSBjbGFzcz0iZmFzICR7c3RhdHVzSWNvbn0iPjwvaT4gJHtzdGF0dXNUZXh0fTwvcD48L2Rpdj48L2Rpdj5gOw0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzZXREYXNoYm9hcmRUaW1lUmFuZ2UocmFuZ2UsIGJ0bikgeyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjZGFzaGJvYXJkU2VjdGlvbiAudGltZS1idG4nKS5mb3JFYWNoKGIgPT4gYi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKSk7IGJ0bi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgaW5pdFBvcnRmb2xpb0NoYXJ0KCk7IH0NCiAgICAgICAgbGV0IHBvcnRmb2xpb0NoYXJ0UG9pbnRzID0gW107DQogICAgICAgIGxldCBwb3J0Zm9saW9DaGFydEludGVydmFsID0gbnVsbDsNCiAgICAgICAgbGV0IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlID0gMTAwMDA7DQogICAgICAgIGxldCBwb3J0Zm9saW9DaGFydFB1bHNlUGhhc2UgPSAwOw0KICAgICAgICBsZXQgcG9ydGZvbGlvQ2hhcnRUcmVuZCA9IDA7DQoNCiAgICAgICAgZnVuY3Rpb24gZ2V0UG9ydGZvbGlvVmFsdWUoKSB7DQogICAgICAgICAgICBsZXQgdmFsID0gMDsNCiAgICAgICAgICAgIGlmIChjdXJyZW50VXNlciAmJiBjdXJyZW50VXNlci53YWxsZXRzKSB7DQogICAgICAgICAgICAgICAgdmFsID0gT2JqZWN0LmVudHJpZXMoY3VycmVudFVzZXIud2FsbGV0cykucmVkdWNlKChzdW0sIFtjLCB3XSkgPT4gew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VtICsgKHcuYmFsYW5jZSB8fCAwKSAqIChjcnlwdG9EYXRhW2NdPy5wcmljZSB8fCAxKTsNCiAgICAgICAgICAgICAgICB9LCAwKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiB2YWwgPCAxMDAgPyAxMDAwMCA6IHZhbDsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGluaXRQb3J0Zm9saW9DaGFydCgpIHsNCiAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlID0gZ2V0UG9ydGZvbGlvVmFsdWUoKTsNCiAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0UG9pbnRzID0gW107DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFRyZW5kID0gKE1hdGgucmFuZG9tKCkgLSAwLjQpICogMC4wMDI7DQogICAgICAgICAgICBsZXQgdiA9IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMC43Ow0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2MDsgaSsrKSB7DQogICAgICAgICAgICAgICAgdiA9IHYgKiAoMSArIChNYXRoLnJhbmRvbSgpIC0gMC4zNSkgKiAwLjAzKTsNCiAgICAgICAgICAgICAgICBpZiAodiA8IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMC41KSB2ID0gcG9ydGZvbGlvQ2hhcnRCYXNlVmFsdWUgKiAwLjU7DQogICAgICAgICAgICAgICAgaWYgKHYgPiBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSAqIDEuNSkgdiA9IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMS41Ow0KICAgICAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0UG9pbnRzLnB1c2godik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFBvaW50c1twb3J0Zm9saW9DaGFydFBvaW50cy5sZW5ndGggLSAxXSA9IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZHJhd1BvcnRmb2xpb0NoYXJ0RnJhbWUoKSB7DQogICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9ydGZvbGlvQ2hhcnQnKTsNCiAgICAgICAgICAgIGlmICghY2FudmFzKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBjYW52YXMucGFyZW50RWxlbWVudDsNCiAgICAgICAgICAgIGlmICghY29udGFpbmVyIHx8IGNvbnRhaW5lci5vZmZzZXRXaWR0aCA9PT0gMCkgcmV0dXJuOw0KICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyksIHdpZHRoID0gY2FudmFzLndpZHRoID0gY29udGFpbmVyLm9mZnNldFdpZHRoIC0gMzIsIGhlaWdodCA9IGNhbnZhcy5oZWlnaHQgPSAxODA7DQogICAgICAgICAgICBjb25zdCBwb2ludHMgPSBwb3J0Zm9saW9DaGFydFBvaW50czsNCiAgICAgICAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi5wb2ludHMpLCBtYXggPSBNYXRoLm1heCguLi5wb2ludHMpLCByYW5nZSA9IG1heCAtIG1pbiB8fCAxOw0KDQogICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOw0KDQogICAgICAgICAgICAvLyBTdWJ0bGUgZ3JpZA0KICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC4wMjUpJzsNCiAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA1OyBpKyspIHsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gKGhlaWdodCAvIDUpICogaTsNCiAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7IGN0eC5tb3ZlVG8oMCwgeSk7IGN0eC5saW5lVG8od2lkdGgsIHkpOyBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEFyZWEgZmlsbA0KICAgICAgICAgICAgY29uc3QgZ3JhZCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCBoZWlnaHQpOw0KICAgICAgICAgICAgZ3JhZC5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMTYsIDE4NSwgMTI5LCAwLjM1KScpOw0KICAgICAgICAgICAgZ3JhZC5hZGRDb2xvclN0b3AoMC43LCAncmdiYSgxNiwgMTg1LCAxMjksIDAuMDgpJyk7DQogICAgICAgICAgICBncmFkLmFkZENvbG9yU3RvcCgxLCAncmdiYSgxNiwgMTg1LCAxMjksIDAuMDEpJyk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5tb3ZlVG8oMCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeCA9IChpIC8gKHBvaW50cy5sZW5ndGggLSAxKSkgKiB3aWR0aDsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gaGVpZ2h0IC0gKChwIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuNzUgLSBoZWlnaHQgKiAwLjE7DQogICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIGN0eC5saW5lVG8oeCwgeSk7DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZYID0gKChpIC0gMSkgLyAocG9pbnRzLmxlbmd0aCAtIDEpKSAqIHdpZHRoOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmV2WSA9IGhlaWdodCAtICgocG9pbnRzW2ktMV0gLSBtaW4pIC8gcmFuZ2UpICogaGVpZ2h0ICogMC43NSAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3ggPSAocHJldlggKyB4KSAvIDI7DQogICAgICAgICAgICAgICAgICAgIGN0eC5iZXppZXJDdXJ2ZVRvKGN4LCBwcmV2WSwgY3gsIHksIHgsIHkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgY3R4LmxpbmVUbyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBncmFkOw0KICAgICAgICAgICAgY3R4LmZpbGwoKTsNCg0KICAgICAgICAgICAgLy8gTGluZSBzdHJva2UNCiAgICAgICAgICAgIGN0eC5zYXZlKCk7DQogICAgICAgICAgICBjdHguc2hhZG93Q29sb3IgPSAncmdiYSgxNiwgMTg1LCAxMjksIDAuNCknOw0KICAgICAgICAgICAgY3R4LnNoYWRvd0JsdXIgPSA2Ow0KICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgICAgICAgcG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCB4ID0gKGkgLyAocG9pbnRzLmxlbmd0aCAtIDEpKSAqIHdpZHRoOw0KICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBoZWlnaHQgLSAoKHAgLSBtaW4pIC8gcmFuZ2UpICogaGVpZ2h0ICogMC43NSAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgY3R4Lm1vdmVUbyh4LCB5KTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlggPSAoKGkgLSAxKSAvIChwb2ludHMubGVuZ3RoIC0gMSkpICogd2lkdGg7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZZID0gaGVpZ2h0IC0gKChwb2ludHNbaS0xXSAtIG1pbikgLyByYW5nZSkgKiBoZWlnaHQgKiAwLjc1IC0gaGVpZ2h0ICogMC4xOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjeCA9IChwcmV2WCArIHgpIC8gMjsNCiAgICAgICAgICAgICAgICAgICAgY3R4LmJlemllckN1cnZlVG8oY3gsIHByZXZZLCBjeCwgeSwgeCwgeSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnIzEwYjk4MSc7DQogICAgICAgICAgICBjdHgubGluZVdpZHRoID0gMjsNCiAgICAgICAgICAgIGN0eC5saW5lQ2FwID0gJ3JvdW5kJzsNCiAgICAgICAgICAgIGN0eC5saW5lSm9pbiA9ICdyb3VuZCc7DQogICAgICAgICAgICBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICBjdHgucmVzdG9yZSgpOw0KDQogICAgICAgICAgICAvLyBMZWFkaW5nIGRvdA0KICAgICAgICAgICAgY29uc3QgbGFzdFggPSB3aWR0aCAtIDU7DQogICAgICAgICAgICBjb25zdCBsYXN0WSA9IGhlaWdodCAtICgocG9pbnRzW3BvaW50cy5sZW5ndGgtMV0gLSBtaW4pIC8gcmFuZ2UpICogaGVpZ2h0ICogMC43NSAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgIHBvcnRmb2xpb0NoYXJ0UHVsc2VQaGFzZSArPSAwLjA4Ow0KICAgICAgICAgICAgY29uc3QgcHVsc2VTaXplID0gNCArIE1hdGguc2luKHBvcnRmb2xpb0NoYXJ0UHVsc2VQaGFzZSkgKiAxLjU7DQogICAgICAgICAgICBjb25zdCBnbG93U2l6ZSA9IDcgKyBNYXRoLnNpbihwb3J0Zm9saW9DaGFydFB1bHNlUGhhc2UpICogMzsNCg0KICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgICAgICAgY3R4LmFyYyhsYXN0WCwgbGFzdFksIGdsb3dTaXplLCAwLCBNYXRoLlBJICogMik7DQogICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMTYsIDE4NSwgMTI5LCAwLjIpJzsNCiAgICAgICAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5hcmMobGFzdFgsIGxhc3RZLCBwdWxzZVNpemUsIDAsIE1hdGguUEkgKiAyKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnIzEwYjk4MSc7DQogICAgICAgICAgICBjdHguZmlsbCgpOw0KICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnOw0KICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDI7DQogICAgICAgICAgICBjdHguc3Ryb2tlKCk7DQoNCiAgICAgICAgICAgIC8vIFZhbHVlIGxhYmVsDQogICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnOw0KICAgICAgICAgICAgY3R4LmZvbnQgPSAnYm9sZCAxMXB4IEludGVyLCBzYW5zLXNlcmlmJzsNCiAgICAgICAgICAgIGN0eC50ZXh0QWxpZ24gPSAncmlnaHQnOw0KICAgICAgICAgICAgY29uc3QgdmFsU3RyID0gJyQnICsgTWF0aC5yb3VuZChwb2ludHNbcG9pbnRzLmxlbmd0aC0xXSkudG9Mb2NhbGVTdHJpbmcoKTsNCiAgICAgICAgICAgIGN0eC5maWxsVGV4dCh2YWxTdHIsIGxhc3RYIC0gMTUsIGxhc3RZIC0gMTIpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdGlja1BvcnRmb2xpb0NoYXJ0KCkgew0KICAgICAgICAgICAgLy8gU2xvdywgcmVhbGlzdGljIG1hcmtldCBtb3ZlbWVudA0KICAgICAgICAgICAgcG9ydGZvbGlvQ2hhcnRQdWxzZVBoYXNlICs9IDAuMDg7DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFBvaW50cy5zaGlmdCgpOw0KICAgICAgICAgICAgY29uc3QgbGFzdFZhbCA9IHBvcnRmb2xpb0NoYXJ0UG9pbnRzW3BvcnRmb2xpb0NoYXJ0UG9pbnRzLmxlbmd0aCAtIDFdOw0KICAgICAgICAgICAgLy8gT2NjYXNpb25hbGx5IHNoaWZ0IHRyZW5kIGRpcmVjdGlvbiAobGlrZSByZWFsIG1hcmtldHMpDQogICAgICAgICAgICBpZiAoTWF0aC5yYW5kb20oKSA8IDAuMDUpIHBvcnRmb2xpb0NoYXJ0VHJlbmQgPSAoTWF0aC5yYW5kb20oKSAtIDAuNDgpICogMC4wMDM7DQogICAgICAgICAgICBjb25zdCBub2lzZSA9IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIDAuMDA2Ow0KICAgICAgICAgICAgbGV0IG5ld1ZhbCA9IGxhc3RWYWwgKiAoMSArIHBvcnRmb2xpb0NoYXJ0VHJlbmQgKyBub2lzZSk7DQogICAgICAgICAgICBjb25zdCBjdXJCYXNlID0gZ2V0UG9ydGZvbGlvVmFsdWUoKTsNCiAgICAgICAgICAgIGlmIChjdXJCYXNlICE9PSBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSkgcG9ydGZvbGlvQ2hhcnRCYXNlVmFsdWUgPSBjdXJCYXNlOw0KICAgICAgICAgICAgaWYgKG5ld1ZhbCA8IHBvcnRmb2xpb0NoYXJ0QmFzZVZhbHVlICogMC41KSBuZXdWYWwgPSBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSAqIDAuNTsNCiAgICAgICAgICAgIGlmIChuZXdWYWwgPiBwb3J0Zm9saW9DaGFydEJhc2VWYWx1ZSAqIDEuNSkgbmV3VmFsID0gcG9ydGZvbGlvQ2hhcnRCYXNlVmFsdWUgKiAxLjU7DQogICAgICAgICAgICBwb3J0Zm9saW9DaGFydFBvaW50cy5wdXNoKG5ld1ZhbCk7DQogICAgICAgICAgICBkcmF3UG9ydGZvbGlvQ2hhcnRGcmFtZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhcnRQb3J0Zm9saW9DaGFydCgpIHsNCiAgICAgICAgICAgIGlmIChwb3J0Zm9saW9DaGFydEludGVydmFsKSBjbGVhckludGVydmFsKHBvcnRmb2xpb0NoYXJ0SW50ZXJ2YWwpOw0KICAgICAgICAgICAgaWYgKHBvcnRmb2xpb0NoYXJ0UG9pbnRzLmxlbmd0aCA9PT0gMCkgaW5pdFBvcnRmb2xpb0NoYXJ0KCk7DQogICAgICAgICAgICBkcmF3UG9ydGZvbGlvQ2hhcnRGcmFtZSgpOw0KICAgICAgICAgICAgcG9ydGZvbGlvQ2hhcnRJbnRlcnZhbCA9IHNldEludGVydmFsKHRpY2tQb3J0Zm9saW9DaGFydCwgMjUwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0b3BQb3J0Zm9saW9DaGFydCgpIHsNCiAgICAgICAgICAgIGlmIChwb3J0Zm9saW9DaGFydEludGVydmFsKSB7IGNsZWFySW50ZXJ2YWwocG9ydGZvbGlvQ2hhcnRJbnRlcnZhbCk7IHBvcnRmb2xpb0NoYXJ0SW50ZXJ2YWwgPSBudWxsOyB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBpc1Nlc3Npb25FeHBpcmVkKCkgew0KICAgICAgICAgICAgY29uc3QgbGFzdEFjdGl2ZSA9IHBhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUxhc3RBY3RpdmUnKSB8fCAnMCcpOw0KICAgICAgICAgICAgaWYgKCFsYXN0QWN0aXZlKSByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIGNvbnN0IGhvdXJzU2luY2VBY3RpdmUgPSAoRGF0ZS5ub3coKSAtIGxhc3RBY3RpdmUpIC8gMzYwMDAwMDsNCiAgICAgICAgICAgIHJldHVybiBob3Vyc1NpbmNlQWN0aXZlID4gNDg7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB0cmFja0FjdGl2aXR5KCkgew0KICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUtlZXBTaWduZWRJbicpID09PSAndHJ1ZScgJiYgYXV0aFRva2VuKSB7DQogICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScsIERhdGUubm93KCkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiByZXN0b3JlU2Vzc2lvbigpIHsNCiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsNCiAgICAgICAgICAgIGNvbnN0IGtlZXBTaWduZWRJbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUtlZXBTaWduZWRJbicpID09PSAndHJ1ZSc7DQoNCiAgICAgICAgICAgIC8vIE5vIHRva2VuIGF0IGFsbCDihpIgc2hvdyBXZWxjb21lL0xhbmRpbmcgcGFnZSAoTk9UIGxvZ2luKQ0KICAgICAgICAgICAgaWYgKCF0b2tlbiB8fCB0b2tlbiA9PT0gJ251bGwnIHx8IHRva2VuID09PSAndW5kZWZpbmVkJykgew0KICAgICAgICAgICAgICAgIGF1dGhUb2tlbiA9IG51bGw7IGN1cnJlbnRVc2VyID0gbnVsbDsgaXNBZG1pbiA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHNob3dMYW5kaW5nKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAvLyBUb2tlbiBleGlzdHMgYnV0IHVzZXIgY2hvc2UgTk9UIHRvIGtlZXAgc2lnbmVkIGluIOKGkiBzaG93IFdlbGNvbWUgcGFnZQ0KICAgICAgICAgICAgaWYgKCFrZWVwU2lnbmVkSW4pIHsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1Ub2tlbicpOw0KICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bVVzZXInKTsNCiAgICAgICAgICAgICAgICBhdXRoVG9rZW4gPSBudWxsOyBjdXJyZW50VXNlciA9IG51bGw7IGlzQWRtaW4gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBzaG93TGFuZGluZygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gVG9rZW4gKyBrZWVwU2lnbmVkSW4gYnV0IDQ4aCBleHBpcmVkIOKGkiBjbGVhciBhbmQgc2hvdyBXZWxjb21lIHBhZ2UNCiAgICAgICAgICAgIGlmIChpc1Nlc3Npb25FeHBpcmVkKCkpIHsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1Ub2tlbicpOw0KICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bVVzZXInKTsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1LZWVwU2lnbmVkSW4nKTsNCiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncGxhdGludW1MYXN0QWN0aXZlJyk7DQogICAgICAgICAgICAgICAgYXV0aFRva2VuID0gbnVsbDsgY3VycmVudFVzZXIgPSBudWxsOyBpc0FkbWluID0gZmFsc2U7DQogICAgICAgICAgICAgICAgc2hvd0xhbmRpbmcoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFRva2VuICsga2VlcFNpZ25lZEluICsgd2l0aGluIDQ4aCDihpIgcmVzdG9yZSBzZXNzaW9uDQogICAgICAgICAgICBhdXRoVG9rZW4gPSB0b2tlbjsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2F1dGgvbWUnKTsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YS51c2VyKSB7DQogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VyID0gZGF0YS51c2VyOw0KICAgICAgICAgICAgICAgICAgICBpc0FkbWluID0gZGF0YS51c2VyLnJvbGUgPT09ICdhZG1pbic7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bVVzZXInLCBKU09OLnN0cmluZ2lmeShjdXJyZW50VXNlcikpOw0KICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1MYXN0QWN0aXZlJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgZW50ZXJQbGF0Zm9ybShkYXRhLnVzZXIpOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2Vzc2lvbiByZXN0b3JlIGZhaWxlZDonLCBlcnJvci5tZXNzYWdlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFRva2VuIGludmFsaWQg4oaSIGNsZWFyIGFuZCBzaG93IFdlbGNvbWUgcGFnZQ0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtVG9rZW4nKTsNCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bVVzZXInKTsNCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdwbGF0aW51bUtlZXBTaWduZWRJbicpOw0KICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3BsYXRpbnVtTGFzdEFjdGl2ZScpOw0KICAgICAgICAgICAgYXV0aFRva2VuID0gbnVsbDsgY3VycmVudFVzZXIgPSBudWxsOyBpc0FkbWluID0gZmFsc2U7DQogICAgICAgICAgICBzaG93TGFuZGluZygpOw0KICAgICAgICB9DQogICAgICAgIHJlc3RvcmVTZXNzaW9uKCk7DQoNCiAgICAgICAgbGV0IGd1ZXN0Q2hhdEluZm8gPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBnZXRHdWVzdENoYXRJbmZvKCkgeyBpZiAoZ3Vlc3RDaGF0SW5mbykgcmV0dXJuIGd1ZXN0Q2hhdEluZm87IGNvbnN0IHNhdmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BsYXRpbnVtR3Vlc3RDaGF0Jyk7IGlmIChzYXZlZCkgeyBndWVzdENoYXRJbmZvID0gSlNPTi5wYXJzZShzYXZlZCk7IHJldHVybiBndWVzdENoYXRJbmZvOyB9IHJldHVybiBudWxsOyB9DQogICAgICAgIGZ1bmN0aW9uIHNhdmVHdWVzdENoYXRJbmZvKCkgeyBjb25zdCBuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRHdWVzdE5hbWUnKS52YWx1ZS50cmltKCk7IGNvbnN0IGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRHdWVzdEVtYWlsJykudmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7IGlmIChuYW1lLmxlbmd0aCA8IDIpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgeW91ciBuYW1lJywgJ2Vycm9yJyk7IHJldHVybjsgfSBpZiAoIWVtYWlsIHx8ICFlbWFpbC5pbmNsdWRlcygnQCcpKSB7IHNob3dBbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwnLCAnZXJyb3InKTsgcmV0dXJuOyB9IGd1ZXN0Q2hhdEluZm8gPSB7IG5hbWU6IG5hbWUsIGVtYWlsOiBlbWFpbCB9OyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncGxhdGludW1HdWVzdENoYXQnLCBKU09OLnN0cmluZ2lmeShndWVzdENoYXRJbmZvKSk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0R3Vlc3RGb3JtJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRNZXNzYWdlc0xpc3QnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsgbG9hZENoYXRIaXN0b3J5KCk7IHN0YXJ0Q2hhdFBvbGxpbmcoKTsgfQ0KICAgICAgICBmdW5jdGlvbiBpc0d1ZXN0Q2hhdCgpIHsgcmV0dXJuICFjdXJyZW50VXNlciAmJiAhIWdldEd1ZXN0Q2hhdEluZm8oKTsgfQ0KICAgICAgICBmdW5jdGlvbiBvcGVuTGl2ZVN1cHBvcnQoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdXBwb3J0TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsgaWYgKCFjdXJyZW50VXNlciAmJiAhZ2V0R3Vlc3RDaGF0SW5mbygpKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0R3Vlc3RGb3JtJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0TWVzc2FnZXNMaXN0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgfSBlbHNlIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRHdWVzdEZvcm0nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhdE1lc3NhZ2VzTGlzdCcpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBsb2FkQ2hhdEhpc3RvcnkoKTsgbWFya0NoYXRBc1JlYWQoKTsgc3RhcnRDaGF0UG9sbGluZygpOyB9IH0NCg0KICAgICAgICBmdW5jdGlvbiBpbml0Q2hhdEJ1dHRvbkRyYWcoKSB7DQogICAgICAgICAgICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXRpbmdDaGF0QnRuJyk7DQogICAgICAgICAgICBpZiAoIWJ0biB8fCBidG4uZGF0YXNldC5kcmFnSW5pdCkgcmV0dXJuOw0KICAgICAgICAgICAgYnRuLmRhdGFzZXQuZHJhZ0luaXQgPSAndHJ1ZSc7DQogICAgICAgICAgICBsZXQgc3RhcnRYID0gMCwgc3RhcnRZID0gMCwgbW92ZWQgPSBmYWxzZSwgaXNEb3duID0gZmFsc2UsIGRyYWdnaW5nID0gZmFsc2U7DQogICAgICAgICAgICBjb25zdCBDTElDS19USFJFU0hPTEQgPSAxMjsNCiAgICAgICAgICAgIGNvbnN0IERSQUdfVEhSRVNIT0xEID0gNjsNCg0KICAgICAgICAgICAgY29uc3QgZ2V0UG9zID0gKGUpID0+IGUudG91Y2hlcyA/IHsgeDogZS50b3VjaGVzWzBdLmNsaWVudFgsIHk6IGUudG91Y2hlc1swXS5jbGllbnRZIH0gOiB7IHg6IGUuY2xpZW50WCwgeTogZS5jbGllbnRZIH07DQoNCiAgICAgICAgICAgIGNvbnN0IG9uU3RhcnQgPSAoZSkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IGdldFBvcyhlKTsNCiAgICAgICAgICAgICAgICBzdGFydFggPSBwb3MueDsgc3RhcnRZID0gcG9zLnk7IG1vdmVkID0gZmFsc2U7IGlzRG93biA9IHRydWU7IGRyYWdnaW5nID0gZmFsc2U7DQogICAgICAgICAgICAgICAgYnRuLnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBjb25zdCBvbk1vdmUgPSAoZSkgPT4gew0KICAgICAgICAgICAgICAgIGlmICghaXNEb3duKSByZXR1cm47DQogICAgICAgICAgICAgICAgY29uc3QgcG9zID0gZ2V0UG9zKGUpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGR4ID0gcG9zLnggLSBzdGFydFgsIGR5ID0gcG9zLnkgLSBzdGFydFk7DQogICAgICAgICAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguc3FydChkeCpkeCArIGR5KmR5KTsNCg0KICAgICAgICAgICAgICAgIGlmICghZHJhZ2dpbmcgJiYgZGlzdCA+IERSQUdfVEhSRVNIT0xEKSB7DQogICAgICAgICAgICAgICAgICAgIGRyYWdnaW5nID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBidG4uY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoZHJhZ2dpbmcpIHsNCiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCAmJiBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBidG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHZ3ID0gd2luZG93LmlubmVyV2lkdGgsIHZoID0gd2luZG93LmlubmVySGVpZ2h0Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gNTY7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RYID0gcGFyc2VGbG9hdChidG4uc3R5bGUubGVmdCB8fCAodncgLSBzaXplIC0gMjApKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFkgPSBwYXJzZUZsb2F0KGJ0bi5zdHlsZS50b3AgfHwgKHZoIC0gc2l6ZSAtIDIwKSk7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xlZnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih2dyAtIHNpemUsIGxhc3RYICsgZHgpKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VG9wID0gTWF0aC5tYXgoMCwgTWF0aC5taW4odmggLSBzaXplLCBsYXN0WSArIGR5KSk7DQogICAgICAgICAgICAgICAgICAgIHN0YXJ0WCA9IHBvcy54OyBzdGFydFkgPSBwb3MueTsNCiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLmxlZnQgPSBuZXdMZWZ0ICsgJ3B4JzsNCiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLnRvcCA9IG5ld1RvcCArICdweCc7DQogICAgICAgICAgICAgICAgICAgIGJ0bi5zdHlsZS5ib3R0b20gPSAnYXV0byc7DQogICAgICAgICAgICAgICAgICAgIGJ0bi5zdHlsZS5yaWdodCA9ICdhdXRvJzsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICBjb25zdCBvbkVuZCA9IChlKSA9PiB7DQogICAgICAgICAgICAgICAgaWYgKCFpc0Rvd24pIHJldHVybjsNCiAgICAgICAgICAgICAgICBpc0Rvd24gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBidG4uY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmcnKTsNCiAgICAgICAgICAgICAgICBidG4uc3R5bGUudHJhbnNpdGlvbiA9ICd0cmFuc2Zvcm0gMC4xNXMsIGJveC1zaGFkb3cgMC4xNXMnOw0KDQogICAgICAgICAgICAgICAgaWYgKGRyYWdnaW5nKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBidG4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwbGF0aW51bUNoYXRQb3MnLCBKU09OLnN0cmluZ2lmeSh7IGxlZnQ6IHJlY3QubGVmdCwgdG9wOiByZWN0LnRvcCB9KSk7DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgaWYgKCFtb3ZlZCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSBlLmNoYW5nZWRUb3VjaGVzID8geyB4OiBlLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFgsIHk6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSB9IDogeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0ID0gTWF0aC5zcXJ0KE1hdGgucG93KHBvcy54IC0gc3RhcnRYLCAyKSArIE1hdGgucG93KHBvcy55IC0gc3RhcnRZLCAyKSk7DQogICAgICAgICAgICAgICAgICAgIGlmIChkaXN0IDw9IENMSUNLX1RIUkVTSE9MRCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkxpdmVTdXBwb3J0KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBkcmFnZ2luZyA9IGZhbHNlOyBtb3ZlZCA9IGZhbHNlOw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uU3RhcnQpOw0KICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Nb3ZlKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBvbkVuZCk7DQoNCiAgICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgb25TdGFydCwgeyBwYXNzaXZlOiB0cnVlIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Nb3ZlLCB7IHBhc3NpdmU6IGZhbHNlIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbkVuZCwgeyBwYXNzaXZlOiB0cnVlIH0pOw0KDQogICAgICAgICAgICBjb25zdCBzYXZlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdwbGF0aW51bUNoYXRQb3MnKTsNCiAgICAgICAgICAgIGlmIChzYXZlZCkgew0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IEpTT04ucGFyc2Uoc2F2ZWQpOw0KICAgICAgICAgICAgICAgICAgICBidG4uc3R5bGUubGVmdCA9IHBvcy5sZWZ0ICsgJ3B4JzsNCiAgICAgICAgICAgICAgICAgICAgYnRuLnN0eWxlLnRvcCA9IHBvcy50b3AgKyAncHgnOw0KICAgICAgICAgICAgICAgICAgICBidG4uc3R5bGUuYm90dG9tID0gJ2F1dG8nOw0KICAgICAgICAgICAgICAgICAgICBidG4uc3R5bGUucmlnaHQgPSAnYXV0byc7DQogICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7fQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IGNoYXRQb2xsaW5nSW50ZXJ2YWwgPSBudWxsLCBjdXJyZW50Q2hhdFVzZXJJZCA9IG51bGwsIGFkbWluQ2hhdFVzZXJJZCA9IG51bGwsIGFkbWluQ2hhdEd1ZXN0RW1haWwgPSBudWxsLCBhZG1pbkNoYXRQb2xsaW5nID0gbnVsbDsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkQ2hhdEhpc3RvcnkoKSB7IA0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRNZXNzYWdlc0xpc3QnKTsgDQogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImZsZXggZ2FwLTMiPjxkaXYgY2xhc3M9InctOCBoLTggYmctYmx1ZS01MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIHRleHQteHMiPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJjaGF0LW1zZy1hZG1pbiBwLTMgbWF4LXctWzgwJV0iPjxwIGNsYXNzPSJ0ZXh0LXNtIj5IZWxsbyEgV2VsY29tZSB0byBQbGF0aW51bUdsb2JhbEV4Y2hhbmdlIHN1cHBvcnQuIEhvdyBjYW4gSSBoZWxwIHlvdSB0b2RheT88L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xIj5TdXBwb3J0IEFnZW50ICZidWxsOyBKdXN0IG5vdzwvcD48L2Rpdj48L2Rpdj4nOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VXNlcikgeyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2NoYXQvbWVzc2FnZXM/dXNlcklkPTEnKTsgDQogICAgICAgICAgICAgICAgICAgIGRhdGEubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4geyBhcHBlbmRDaGF0TWVzc2FnZShtc2csIG1zZy5zZW5kZXJJZCA9PT0gY3VycmVudFVzZXIuaWQpOyB9KTsgDQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnZXRHdWVzdENoYXRJbmZvKCkpIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGcgPSBnZXRHdWVzdENoYXRJbmZvKCk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnZ3Vlc3QtY2hhdC9tZXNzYWdlcz9lbWFpbD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGcuZW1haWwpKTsgDQogICAgICAgICAgICAgICAgICAgIGRhdGEubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4geyBhcHBlbmRHdWVzdENoYXRNZXNzYWdlKG1zZyk7IH0pOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgY2hhdDonLCBlcnJvcik7IH0gDQogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7IH0sIDEwMCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbWFya0NoYXRBc1JlYWQoKSB7IGlmICghY3VycmVudFVzZXIpIHJldHVybjsgdHJ5IHsgYXdhaXQgYXBpQ2FsbCgnY2hhdC9tYXJrLXJlYWQnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHNlbmRlcklkOiAxIH0gfSk7IGNvbnN0IGhlYWRlckJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlYWRlckNoYXRCYWRnZScpOyBjb25zdCBmbG9hdEJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJhZGdlJyk7IGlmIChoZWFkZXJCYWRnZSkgaGVhZGVyQmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IGlmIChmbG9hdEJhZGdlKSBmbG9hdEJhZGdlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH0gY2F0Y2ggKGVycm9yKSB7fSB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIG1hcmtBZG1pbkNoYXRBc1JlYWQodXNlcklkKSB7IGlmICghaXNBZG1pbiB8fCAhdXNlcklkKSByZXR1cm47IHRyeSB7IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2NoYXQvbWFyay1yZWFkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBzZW5kZXJJZDogdXNlcklkIH0gfSk7IGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQ2hhdEJhZGdlJyk7IGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gY2F0Y2ggKGVycm9yKSB7fSB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIG1hcmtBZG1pbkd1ZXN0QXNSZWFkKGVtYWlsKSB7IGlmICghaXNBZG1pbiB8fCAhZW1haWwpIHJldHVybjsgdHJ5IHsgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vZ3Vlc3QtbWVzc2FnZXMvbWFyay1yZWFkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbDogZW1haWwgfSB9KTsgY29uc3QgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0QmFkZ2UnKTsgaWYgKGJhZGdlKSBiYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgfSBjYXRjaCAoZXJyb3IpIHt9IH0NCg0KICAgICAgICBmdW5jdGlvbiBzY3JvbGxDaGF0VG9Cb3R0b20oKSB7IGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0TWVzc2FnZXNMaXN0Jyk7IGlmIChjb250YWluZXIpIHNldFRpbWVvdXQoKCkgPT4geyBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodDsgfSwgNTApOyB9DQoNCiAgICAgICAgZnVuY3Rpb24gYXBwZW5kQ2hhdE1lc3NhZ2UobXNnLCBpc093bikgeyANCiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGF0TWVzc2FnZXNMaXN0Jyk7IA0KICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9IGlzT3duID8gJ2ZsZXggZ2FwLTMganVzdGlmeS1lbmQnIDogJ2ZsZXggZ2FwLTMnOyANCiAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZShtc2cuY3JlYXRlZEF0KS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pOyANCiAgICAgICAgICAgIGlmIChpc093bikgeyANCiAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtbGcgcC0zIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJsYWNrIj4ke21zZy5tZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEgdGV4dC1yaWdodCI+JHt0aW1lfTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJ3LTggaC04IGJnLWdyYXktNzAwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmbGV4LXNocmluay0wIj48aSBjbGFzcz0iZmFzIGZhLXVzZXIgdGV4dC13aGl0ZSB0ZXh0LXhzIj48L2k+PC9kaXY+YDsgDQogICAgICAgICAgICB9IGVsc2UgeyANCiAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InctOCBoLTggYmctZW1lcmFsZC02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtaGVhZHNldCB0ZXh0LXdoaXRlIHRleHQteHMiPjwvaT48L2Rpdj48ZGl2IGNsYXNzPSJjaGF0LW1zZy1hZG1pbiBwLTMgbWF4LXctWzgwJV0iPjxwIGNsYXNzPSJ0ZXh0LXNtIj4ke21zZy5tZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEiPiR7bXNnLnNlbmRlck5hbWV9ICZidWxsOyAke3RpbWV9PC9wPjwvZGl2PmA7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgIHNjcm9sbENoYXRUb0JvdHRvbSgpOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGFwcGVuZEd1ZXN0Q2hhdE1lc3NhZ2UobXNnKSB7IA0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRNZXNzYWdlc0xpc3QnKTsgDQogICAgICAgICAgICBjb25zdCB0aW1lID0gbmV3IERhdGUobXNnLmNyZWF0ZWRBdCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsgDQogICAgICAgICAgICBpZiAobXNnLmFkbWluUmVwbHkpIHsgDQogICAgICAgICAgICAgICAgY29uc3QgcmVwbHlEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgcmVwbHlEaXYuY2xhc3NOYW1lID0gJ2ZsZXggZ2FwLTMnOyANCiAgICAgICAgICAgICAgICByZXBseURpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0idy04IGgtOCBiZy1ibHVlLTUwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS1oZWFkc2V0IHRleHQtd2hpdGUgdGV4dC14cyI+PC9pPjwvZGl2PjxkaXYgY2xhc3M9ImNoYXQtbXNnLWFkbWluIHAtMyBtYXgtdy1bODAlXSI+PHAgY2xhc3M9InRleHQtc20iPiR7bXNnLmFkbWluUmVwbHl9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMSI+U3VwcG9ydCBBZ2VudCAmYnVsbDsgJHtuZXcgRGF0ZShtc2cucmVwbGllZEF0KS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywgeyBob3VyOiAnMi1kaWdpdCcsIG1pbnV0ZTogJzItZGlnaXQnIH0pfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocmVwbHlEaXYpOyANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ2ZsZXggZ2FwLTMganVzdGlmeS1lbmQnOyANCiAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY2hhdC1tc2ctZ3Vlc3QgcC0zIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttc2cubWVzc2FnZX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtdC0xIHRleHQtcmlnaHQiPiR7dGltZX08L3A+PC9kaXY+PGRpdiBjbGFzcz0idy04IGgtOCBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PGkgY2xhc3M9ImZhcyBmYS11c2VyIHRleHQtd2hpdGUgdGV4dC14cyI+PC9pPjwvZGl2PmA7IA0KICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgc2Nyb2xsQ2hhdFRvQm90dG9tKCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2VuZENoYXRNZXNzYWdlKCkgeyANCiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYXRJbnB1dCcpOyANCiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBpbnB1dC52YWx1ZS50cmltKCk7IA0KICAgICAgICAgICAgaWYgKCFtZXNzYWdlKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRVc2VyKSB7IA0KICAgICAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdjaGF0L3NlbmQnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHJlY2lwaWVudElkOiAxLCBtZXNzYWdlOiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGF0TWVzc2FnZSh7IHNlbmRlcklkOiBjdXJyZW50VXNlci5pZCwgc2VuZGVyTmFtZTogY3VycmVudFVzZXIubmFtZSwgbWVzc2FnZTogbWVzc2FnZSwgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSwgdHJ1ZSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2V0R3Vlc3RDaGF0SW5mbygpKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBnID0gZ2V0R3Vlc3RDaGF0SW5mbygpOyANCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnZ3Vlc3QtY2hhdC9zZW5kJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBlbWFpbDogZy5lbWFpbCwgbmFtZTogZy5uYW1lLCBtZXNzYWdlOiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgICAgICBhcHBlbmRHdWVzdENoYXRNZXNzYWdlKHsgbWVzc2FnZTogbWVzc2FnZSwgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgfSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciB5b3VyIG5hbWUgYW5kIGVtYWlsIGZpcnN0JywgJ2Vycm9yJyk7IHJldHVybjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICcnOyBwbGF5U291bmQoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyANCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc2VuZDonLCBlcnJvcik7IHNob3dBbGVydCgnRmFpbGVkIHRvIHNlbmQ6ICcgKyAoZXJyb3IubWVzc2FnZSB8fCAnUGxlYXNlIGNoZWNrIHlvdXIgY29ubmVjdGlvbicpLCAnZXJyb3InKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhcnRDaGF0UG9sbGluZygpIHsgDQogICAgICAgICAgICBpZiAoY2hhdFBvbGxpbmdJbnRlcnZhbCkgY2xlYXJJbnRlcnZhbChjaGF0UG9sbGluZ0ludGVydmFsKTsgDQogICAgICAgICAgICBjaGF0UG9sbGluZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4geyANCiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1cHBvcnRNb2RhbCcpLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykgPT09IGZhbHNlKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFVzZXIpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnY2hhdC9tZXNzYWdlcz91c2VySWQ9MScpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVucmVhZCA9IGRhdGEubWVzc2FnZXMuZmlsdGVyKG0gPT4gbS5zZW5kZXJJZCAhPT0gY3VycmVudFVzZXIuaWQgJiYgIW0uaXNSZWFkKTsgDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5yZWFkLmxlbmd0aCA+IDApIHsgbG9hZENoYXRIaXN0b3J5KCk7IG1hcmtDaGF0QXNSZWFkKCk7IHBsYXlTb3VuZCgpOyB9IA0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdldEd1ZXN0Q2hhdEluZm8oKSkgeyANCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGcgPSBnZXRHdWVzdENoYXRJbmZvKCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2d1ZXN0LWNoYXQvbWVzc2FnZXM/ZW1haWw9JyArIGVuY29kZVVSSUNvbXBvbmVudChnLmVtYWlsKSk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzTmV3ID0gZGF0YS5tZXNzYWdlcy5zb21lKG0gPT4gbS5hZG1pblJlcGx5ICYmICFtLmlzUmVhZCk7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc05ldykgeyBsb2FkQ2hhdEhpc3RvcnkoKTsgcGxheVNvdW5kKCk7IH0gDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9IA0KICAgICAgICAgICAgfSwgNTAwMCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tVbnJlYWRNZXNzYWdlcygpIHsgDQogICAgICAgICAgICBpZiAoIWN1cnJlbnRVc2VyKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2NoYXQvdW5yZWFkLWNvdW50Jyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlckJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlYWRlckNoYXRCYWRnZScpOyANCiAgICAgICAgICAgICAgICBjb25zdCBmbG9hdEJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aW5nQ2hhdEJhZGdlJyk7IA0KICAgICAgICAgICAgICAgIGlmIChkYXRhLnVucmVhZENvdW50ID4gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlckJhZGdlKSB7IGhlYWRlckJhZGdlLnRleHRDb250ZW50ID0gZGF0YS51bnJlYWRDb3VudDsgaGVhZGVyQmFkZ2UuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgICAgIGlmIChmbG9hdEJhZGdlKSB7IGZsb2F0QmFkZ2UudGV4dENvbnRlbnQgPSBkYXRhLnVucmVhZENvdW50OyBmbG9hdEJhZGdlLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7IH0gDQogICAgICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgICAgIGlmIChoZWFkZXJCYWRnZSkgaGVhZGVyQmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoZmxvYXRCYWRnZSkgZmxvYXRCYWRnZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcGxheVNvdW5kKCkgeyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSgpOyANCiAgICAgICAgICAgICAgICBjb25zdCBvc2MgPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpOyANCiAgICAgICAgICAgICAgICBjb25zdCBnYWluID0gY3R4LmNyZWF0ZUdhaW4oKTsgDQogICAgICAgICAgICAgICAgb3NjLmNvbm5lY3QoZ2Fpbik7IGdhaW4uY29ubmVjdChjdHguZGVzdGluYXRpb24pOyANCiAgICAgICAgICAgICAgICBvc2MuZnJlcXVlbmN5LnZhbHVlID0gODAwOyBvc2MudHlwZSA9ICdzaW5lJzsgDQogICAgICAgICAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAuMSwgY3R4LmN1cnJlbnRUaW1lKTsgDQogICAgICAgICAgICAgICAgZ2Fpbi5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC4wMDEsIGN0eC5jdXJyZW50VGltZSArIDAuMyk7IA0KICAgICAgICAgICAgICAgIG9zYy5zdGFydChjdHguY3VycmVudFRpbWUpOyBvc2Muc3RvcChjdHguY3VycmVudFRpbWUgKyAwLjMpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluQ2hhdENvbnZlcnNhdGlvbnMoKSB7IA0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgW3VzZXJEYXRhLCBndWVzdERhdGFdID0gYXdhaXQgUHJvbWlzZS5hbGwoWw0KICAgICAgICAgICAgICAgICAgICBhcGlDYWxsKCdhZG1pbi9jaGF0L2NvbnZlcnNhdGlvbnMnKS5jYXRjaCgoKSA9PiAoe2NvbnZlcnNhdGlvbnM6IFtdfSkpLCANCiAgICAgICAgICAgICAgICAgICAgYXBpQ2FsbCgnYWRtaW4vZ3Vlc3QtbWVzc2FnZXMnKS5jYXRjaCgoKSA9PiAoe2NvbnZlcnNhdGlvbnM6IFtdfSkpDQogICAgICAgICAgICAgICAgXSk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRDb252ZXJzYXRpb25zJyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQ2hhdEJhZGdlJyk7IA0KICAgICAgICAgICAgICAgIGxldCB0b3RhbFVucmVhZCA9IDA7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgY29uc3QgYWxsQ29udmVyc2F0aW9ucyA9IFtdOyANCiAgICAgICAgICAgICAgICAodXNlckRhdGEuY29udmVyc2F0aW9ucyB8fCBbXSkuZm9yRWFjaChjID0+IHsgYWxsQ29udmVyc2F0aW9ucy5wdXNoKHsgLi4uYywgdHlwZTogJ3VzZXInLCBzb3J0S2V5OiBjLmxhc3RNZXNzYWdlVGltZSB9KTsgfSk7IA0KICAgICAgICAgICAgICAgIChndWVzdERhdGEuY29udmVyc2F0aW9ucyB8fCBbXSkuZm9yRWFjaChjID0+IHsgYWxsQ29udmVyc2F0aW9ucy5wdXNoKHsgLi4uYywgdHlwZTogJ2d1ZXN0Jywgc29ydEtleTogYy5sYXN0TWVzc2FnZVRpbWUgfSk7IH0pOyANCiAgICAgICAgICAgICAgICBhbGxDb252ZXJzYXRpb25zLnNvcnQoKGEsIGIpID0+IG5ldyBEYXRlKGIuc29ydEtleSkgLSBuZXcgRGF0ZShhLnNvcnRLZXkpKTsgDQogICAgICAgICAgICAgICAgaWYgKGFsbENvbnZlcnNhdGlvbnMubGVuZ3RoID09PSAwKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyBtZXNzYWdlcyB5ZXQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgYWxsQ29udmVyc2F0aW9ucy5mb3JFYWNoKGNvbnYgPT4geyANCiAgICAgICAgICAgICAgICAgICAgdG90YWxVbnJlYWQgKz0gY29udi51bnJlYWRDb3VudCB8fCAwOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ2ZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHAtMyByb3VuZGVkLXhsIGhvdmVyOmJnLXdoaXRlLzUgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1jb2xvcnMnOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmdDbGFzcyA9IChjb252LnVucmVhZENvdW50IHx8IDApID4gMCA/ICdiZy1lbWVyYWxkLTYwMCcgOiAnYmctZ3JheS02MDAnOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZUxhYmVsID0gY29udi50eXBlID09PSAnZ3Vlc3QnID8gJzxzcGFuIGNsYXNzPSJ0ZXh0LVsxMHB4XSBiZy1hbWJlci01MDAgdGV4dC1ibGFjayBweC0xIHJvdW5kZWQgbWwtMSI+R1VFU1Q8L3NwYW4+JyA6ICcnOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgJHtiZ0NsYXNzfSByb3VuZGVkLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZmxleC1zaHJpbmstMCI+PHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1ib2xkIHRleHQtc20iPiR7KGNvbnYudXNlck5hbWUgfHwgY29udi5uYW1lIHx8ICdVJykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgtMSBtaW4tdy0wIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSB0cnVuY2F0ZSI+JHtjb252LnVzZXJOYW1lIHx8IGNvbnYubmFtZSB8fCBjb252LnVzZXJFbWFpbCB8fCBjb252LmVtYWlsIHx8ICdVbmtub3duJ30ke3R5cGVMYWJlbH08L3A+JHsoY29udi51bnJlYWRDb3VudCB8fCAwKSA+IDAgPyBgPHNwYW4gY2xhc3M9InctNSBoLTUgYmctcm9zZS01MDAgcm91bmRlZC1mdWxsIHRleHQteHMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSBmb250LWJvbGQgbWwtMiI+JHtjb252LnVucmVhZENvdW50fTwvc3Bhbj5gIDogJyd9PC9kaXY+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCB0cnVuY2F0ZSI+JHtjb252Lmxhc3RNZXNzYWdlIHx8ICdObyBtZXNzYWdlcyB5ZXQnfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnYudHlwZSA9PT0gJ2d1ZXN0JykgeyBkaXYub25jbGljayA9ICgpID0+IG9wZW5BZG1pbkd1ZXN0Q2hhdChjb252LmVtYWlsLCBjb252Lm5hbWUpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgZGl2Lm9uY2xpY2sgPSAoKSA9PiBvcGVuQWRtaW5DaGF0KGNvbnYudXNlcklkLCBjb252LnVzZXJOYW1lLCBjb252LnVzZXJFbWFpbCk7IH0gDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgaWYgKGJhZGdlKSB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxVbnJlYWQgPiAwKSB7IGJhZGdlLnRleHRDb250ZW50ID0gdG90YWxVbnJlYWQ7IGJhZGdlLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFkbWluIGNoYXQ6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gb3BlbkFkbWluR3Vlc3RDaGF0KGVtYWlsLCBuYW1lKSB7IA0KICAgICAgICAgICAgYWRtaW5DaGF0R3Vlc3RFbWFpbCA9IGVtYWlsOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRQYW5lbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRVc2VyTmFtZScpLnRleHRDb250ZW50ID0gKG5hbWUgfHwgJ0d1ZXN0JykgKyAnIChHdWVzdCknOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRVc2VyRW1haWwnKS50ZXh0Q29udGVudCA9IGVtYWlsOyANCiAgICAgICAgICAgIG1hcmtBZG1pbkd1ZXN0QXNSZWFkKGVtYWlsKTsgDQogICAgICAgICAgICBsb2FkQWRtaW5HdWVzdENoYXRNZXNzYWdlcygpOyANCiAgICAgICAgICAgIGlmIChhZG1pbkNoYXRQb2xsaW5nKSBjbGVhckludGVydmFsKGFkbWluQ2hhdFBvbGxpbmcpOyANCiAgICAgICAgICAgIGFkbWluQ2hhdFBvbGxpbmcgPSBzZXRJbnRlcnZhbChsb2FkQWRtaW5HdWVzdENoYXRNZXNzYWdlcywgNDAwMCk7IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluR3Vlc3RDaGF0TWVzc2FnZXMoKSB7IA0KICAgICAgICAgICAgaWYgKCFhZG1pbkNoYXRHdWVzdEVtYWlsIHx8ICFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2d1ZXN0LWNoYXQvbWVzc2FnZXM/ZW1haWw9JyArIGVuY29kZVVSSUNvbXBvbmVudChhZG1pbkNoYXRHdWVzdEVtYWlsKSk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRNZXNzYWdlcycpOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGRhdGEubWVzc2FnZXMuZm9yRWFjaChtc2cgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKG1zZy5jcmVhdGVkQXQpLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZmxleCBnYXAtMic7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InctNiBoLTYgYmctZ3JheS02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtdXNlciB0ZXh0LXdoaXRlIHRleHQtWzEwcHhdIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iY2hhdC1tc2ctZ3Vlc3QgcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttc2cubWVzc2FnZX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtdC0xIj4ke21zZy5uYW1lfSAmYnVsbDsgJHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgICAgICBpZiAobXNnLmFkbWluUmVwbHkpIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBseURpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGx5RGl2LmNsYXNzTmFtZSA9ICdmbGV4IGdhcC0yIGp1c3RpZnktZW5kJzsgDQogICAgICAgICAgICAgICAgICAgICAgICByZXBseURpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY2hhdC1tc2ctYWRtaW4gcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttc2cuYWRtaW5SZXBseX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xIHRleHQtcmlnaHQiPiR7bmV3IERhdGUobXNnLnJlcGxpZWRBdCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KX08L3A+PC9kaXY+YDsgDQogICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQocmVwbHlEaXYpOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0OyB9LCAxMDApOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGd1ZXN0IG1lc3NhZ2VzOicsIGVycm9yKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNlbmRBZG1pbkd1ZXN0UmVwbHkoKSB7IA0KICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0SW5wdXQnKSwgbWVzc2FnZSA9IGlucHV0LnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICBpZiAoIW1lc3NhZ2UgfHwgIWFkbWluQ2hhdEd1ZXN0RW1haWwgfHwgIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9ndWVzdC1tZXNzYWdlcy9yZXBseScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgZW1haWw6IGFkbWluQ2hhdEd1ZXN0RW1haWwsIHJlcGx5OiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRNZXNzYWdlcycpOyANCiAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdmbGV4IGdhcC0yIGp1c3RpZnktZW5kJzsgDQogICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKCkudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JywgfSk7IA0KICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY2hhdC1tc2ctYWRtaW4gcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSI+JHttZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEgdGV4dC1yaWdodCI+JHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7IA0KICAgICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7IHBsYXlTb3VuZCgpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzZW5kIGd1ZXN0IHJlcGx5OicsIGVycm9yKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIG9wZW5BZG1pbkNoYXQodXNlcklkLCB1c2VyTmFtZSwgdXNlckVtYWlsKSB7IA0KICAgICAgICAgICAgYWRtaW5DaGF0VXNlcklkID0gdXNlcklkOyBhZG1pbkNoYXRHdWVzdEVtYWlsID0gbnVsbDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0UGFuZWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0VXNlck5hbWUnKS50ZXh0Q29udGVudCA9IHVzZXJOYW1lIHx8ICdVc2VyJzsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0VXNlckVtYWlsJykudGV4dENvbnRlbnQgPSB1c2VyRW1haWwgfHwgJyc7IA0KICAgICAgICAgICAgbWFya0FkbWluQ2hhdEFzUmVhZCh1c2VySWQpOyANCiAgICAgICAgICAgIGxvYWRBZG1pbkNoYXRNZXNzYWdlcygpOyANCiAgICAgICAgICAgIGlmIChhZG1pbkNoYXRQb2xsaW5nKSBjbGVhckludGVydmFsKGFkbWluQ2hhdFBvbGxpbmcpOyANCiAgICAgICAgICAgIGFkbWluQ2hhdFBvbGxpbmcgPSBzZXRJbnRlcnZhbChsb2FkQWRtaW5DaGF0TWVzc2FnZXMsIDQwMDApOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGNsb3NlQWRtaW5DaGF0KCkgeyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkNoYXRQYW5lbCcpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyANCiAgICAgICAgICAgIGFkbWluQ2hhdFVzZXJJZCA9IG51bGw7IGFkbWluQ2hhdEd1ZXN0RW1haWwgPSBudWxsOyANCiAgICAgICAgICAgIGlmIChhZG1pbkNoYXRQb2xsaW5nKSB7IGNsZWFySW50ZXJ2YWwoYWRtaW5DaGF0UG9sbGluZyk7IGFkbWluQ2hhdFBvbGxpbmcgPSBudWxsOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluQ2hhdE1lc3NhZ2VzKCkgeyANCiAgICAgICAgICAgIGlmICghYWRtaW5DaGF0VXNlcklkIHx8ICFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2NoYXQvbWVzc2FnZXM/dXNlcklkPScgKyBhZG1pbkNoYXRVc2VySWQpOyANCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0TWVzc2FnZXMnKTsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyANCiAgICAgICAgICAgICAgICBkYXRhLm1lc3NhZ2VzLmZvckVhY2gobXNnID0+IHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPd24gPSBtc2cuc2VuZGVySWQgPT09IGN1cnJlbnRVc2VyLmlkOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IG5ldyBEYXRlKG1zZy5jcmVhdGVkQXQpLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gaXNPd24gPyAnZmxleCBnYXAtMiBqdXN0aWZ5LWVuZCcgOiAnZmxleCBnYXAtMic7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNPd24pIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtbGcgcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJsYWNrIj4ke21zZy5tZXNzYWdlfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIG10LTEgdGV4dC1yaWdodCI+JHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9InctNiBoLTYgYmctZW1lcmFsZC02MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZsZXgtc2hyaW5rLTAiPjxpIGNsYXNzPSJmYXMgZmEtdXNlciB0ZXh0LXdoaXRlIHRleHQtWzEwcHhdIj48L2k+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgbWF4LXctWzgwJV0iPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtd2hpdGUiPiR7bXNnLm1lc3NhZ2V9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMSI+JHt0aW1lfTwvcD48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgY29udGFpbmVyLnNjcm9sbFRvcCA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7IH0sIDEwMCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgYWRtaW4gbWVzc2FnZXM6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2VuZEFkbWluUmVwbHkoKSB7IA0KICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0SW5wdXQnKSwgbWVzc2FnZSA9IGlucHV0LnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICBpZiAoIW1lc3NhZ2UgfHwgIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBpZiAoYWRtaW5DaGF0R3Vlc3RFbWFpbCkgeyANCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vZ3Vlc3QtbWVzc2FnZXMvcmVwbHknLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IGVtYWlsOiBhZG1pbkNoYXRHdWVzdEVtYWlsLCByZXBseTogbWVzc2FnZSB9IH0pOyANCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFkbWluQ2hhdFVzZXJJZCkgeyANCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnY2hhdC9zZW5kJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyByZWNpcGllbnRJZDogYWRtaW5DaGF0VXNlcklkLCBtZXNzYWdlOiBtZXNzYWdlIH0gfSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IHJldHVybjsgfSANCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DaGF0TWVzc2FnZXMnKTsgDQogICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZmxleCBnYXAtMiBqdXN0aWZ5LWVuZCc7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIH0pOyANCiAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImJnLXdoaXRlIHJvdW5kZWQtbGcgcC0yIG1heC13LVs4MCVdIj48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJsYWNrIj4ke21lc3NhZ2V9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbXQtMSB0ZXh0LXJpZ2h0Ij4ke3RpbWV9PC9wPjwvZGl2PmA7IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodDsgDQogICAgICAgICAgICAgICAgaW5wdXQudmFsdWUgPSAnJzsgcGxheVNvdW5kKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNlbmQgcmVwbHk6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IG1hcmtldENoYXJ0SGlzdG9yeSA9IFtdOw0KICAgICAgICBsZXQgbWFya2V0Q2hhcnRJbnRlcnZhbCA9IG51bGw7DQogICAgICAgIGxldCBjdXJyZW50VGltZVJhbmdlID0gMjQ7DQogICAgICAgIGxldCBtYXJrZXRDaGFydFB1bHNlID0gMDsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBmZXRjaENvaW5HZWNrb0NoYXJ0KGNvaW5JZCwgaG91cnMpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF5cyA9IGhvdXJzIDw9IDI0ID8gJzEnIDogaG91cnMgPD0gMTY4ID8gJzcnIDogJzMwJzsNCiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChgaHR0cHM6Ly9hcGkuY29pbmdlY2tvLmNvbS9hcGkvdjMvY29pbnMvJHtjb2luSWR9L21hcmtldF9jaGFydD92c19jdXJyZW5jeT11c2QmZGF5cz0ke2RheXN9YCk7DQogICAgICAgICAgICAgICAgaWYgKCFyZXMub2spIHRocm93IG5ldyBFcnJvcignQ0cgcmF0ZSBsaW1pdCcpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlcyA9IGRhdGEucHJpY2VzLm1hcChwID0+IHBbMV0pOw0KICAgICAgICAgICAgICAgIGlmIChob3VycyA8PSAyNCkgcmV0dXJuIHByaWNlcy5zbGljZSgtTWF0aC5taW4ocHJpY2VzLmxlbmd0aCwgNDgpKTsNCiAgICAgICAgICAgICAgICBpZiAoaG91cnMgPD0gMTY4KSByZXR1cm4gcHJpY2VzOw0KICAgICAgICAgICAgICAgIHJldHVybiBwcmljZXMuZmlsdGVyKChfLCBpKSA9PiBpICUgNCA9PT0gMCk7DQogICAgICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NoYXJ0IEFQSSBmYWlsZWQsIHVzaW5nIHNpbXVsYXRlZCBkYXRhJyk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRlU2ltdWxhdGVkQ2hhcnQoaG91cnMpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZ2VuZXJhdGVTaW11bGF0ZWRDaGFydChob3Vycykgew0KICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gW107DQogICAgICAgICAgICBjb25zdCBiYXNlUHJpY2UgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2UgfHwgNTAwMDA7DQogICAgICAgICAgICBjb25zdCB2b2xhdGlsaXR5ID0gaG91cnMgPD0gMjQgPyAwLjAwOCA6IGhvdXJzIDw9IDE2OCA/IDAuMDE1IDogMC4wMzsNCiAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gaG91cnMgPD0gMjQgPyA0OCA6IGhvdXJzIDw9IDE2OCA/IDE2OCA6IDE4MDsNCiAgICAgICAgICAgIGxldCBwcmljZSA9IGJhc2VQcmljZSAqICgxIC0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogdm9sYXRpbGl0eSAqIDUpOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7DQogICAgICAgICAgICAgICAgcHJpY2UgPSBwcmljZSAqICgxICsgKE1hdGgucmFuZG9tKCkgLSAwLjQ4KSAqIHZvbGF0aWxpdHkpOw0KICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHByaWNlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV0gPSBiYXNlUHJpY2U7DQogICAgICAgICAgICByZXR1cm4gcG9pbnRzOw0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZE1hcmtldENoYXJ0KCkgew0KICAgICAgICAgICAgY29uc3QgY29pbklkID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LmNnSWQgfHwgJ2JpdGNvaW4nOw0KICAgICAgICAgICAgbWFya2V0Q2hhcnRIaXN0b3J5ID0gYXdhaXQgZmV0Y2hDb2luR2Vja29DaGFydChjb2luSWQsIGN1cnJlbnRUaW1lUmFuZ2UpOw0KICAgICAgICAgICAgc3RhcnRNYXJrZXRDaGFydEFuaW1hdGlvbigpOw0KICAgICAgICAgICAgdXBkYXRlTWFya2V0U3RhdHMoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGRyYXdNYXJrZXRDaGFydEZyYW1lKCkgew0KICAgICAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcmtldENoYXJ0Jyk7DQogICAgICAgICAgICBpZiAoIWNhbnZhcykgcmV0dXJuOw0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gY2FudmFzLnBhcmVudEVsZW1lbnQ7DQogICAgICAgICAgICBpZiAoIWNvbnRhaW5lciB8fCBjb250YWluZXIub2Zmc2V0V2lkdGggPT09IDApIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBjYW52YXMud2lkdGggPSBjb250YWluZXIub2Zmc2V0V2lkdGg7DQogICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBjYW52YXMuaGVpZ2h0ID0gMjAwOw0KICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gbWFya2V0Q2hhcnRIaXN0b3J5Ow0KICAgICAgICAgICAgaWYgKCFwb2ludHMgfHwgcG9pbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOw0KDQogICAgICAgICAgICBjb25zdCBtaW4gPSBNYXRoLm1pbiguLi5wb2ludHMpLCBtYXggPSBNYXRoLm1heCguLi5wb2ludHMpOw0KICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBtYXggLSBtaW4gfHwgMTsNCiAgICAgICAgICAgIGNvbnN0IGlzVXAgPSBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdID49IHBvaW50c1swXTsNCiAgICAgICAgICAgIGNvbnN0IGxpbmVDb2xvciA9IGlzVXAgPyAnIzEwYjk4MScgOiAnI2Y0M2Y1ZSc7DQoNCiAgICAgICAgICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7DQoNCiAgICAgICAgICAgIC8vIFN1YnRsZSBob3Jpem9udGFsIGdyaWQNCiAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMDMpJzsNCiAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAxOw0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCA0OyBpKyspIHsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gKGhlaWdodCAvIDQpICogaTsNCiAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7IGN0eC5tb3ZlVG8oMCwgeSk7IGN0eC5saW5lVG8od2lkdGgsIHkpOyBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIEdyYWRpZW50IGFyZWEgZmlsbA0KICAgICAgICAgICAgY29uc3QgZ3JhZCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCBoZWlnaHQpOw0KICAgICAgICAgICAgZ3JhZC5hZGRDb2xvclN0b3AoMCwgaXNVcCA/ICdyZ2JhKDE2LDE4NSwxMjksMC4zKScgOiAncmdiYSgyNDQsNjMsOTQsMC4yNSknKTsNCiAgICAgICAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDAuNSwgaXNVcCA/ICdyZ2JhKDE2LDE4NSwxMjksMC4xKScgOiAncmdiYSgyNDQsNjMsOTQsMC4wOCknKTsNCiAgICAgICAgICAgIGdyYWQuYWRkQ29sb3JTdG9wKDEsICdyZ2JhKDAsMCwwLDApJyk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5tb3ZlVG8oMCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeCA9IChpIC8gKHBvaW50cy5sZW5ndGggLSAxKSkgKiB3aWR0aDsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gaGVpZ2h0IC0gKChwIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuOCAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgY3R4LmxpbmVUbyh4LCB5KTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlggPSAoKGkgLSAxKSAvIChwb2ludHMubGVuZ3RoIC0gMSkpICogd2lkdGg7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZZID0gaGVpZ2h0IC0gKChwb2ludHNbaS0xXSAtIG1pbikgLyByYW5nZSkgKiBoZWlnaHQgKiAwLjggLSBoZWlnaHQgKiAwLjE7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGN4ID0gKHByZXZYICsgeCkgLyAyOw0KICAgICAgICAgICAgICAgICAgICBjdHguYmV6aWVyQ3VydmVUbyhjeCwgcHJldlksIGN4LCB5LCB4LCB5KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGN0eC5saW5lVG8od2lkdGgsIGhlaWdodCk7DQogICAgICAgICAgICBjdHguY2xvc2VQYXRoKCk7DQogICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gZ3JhZDsNCiAgICAgICAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgICAgICAgIC8vIExpbmUgc3Ryb2tlIHdpdGggZ2xvdw0KICAgICAgICAgICAgY3R4LnNhdmUoKTsNCiAgICAgICAgICAgIGN0eC5zaGFkb3dDb2xvciA9IGxpbmVDb2xvcjsNCiAgICAgICAgICAgIGN0eC5zaGFkb3dCbHVyID0gODsNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIHBvaW50cy5mb3JFYWNoKChwLCBpKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgeCA9IChpIC8gKHBvaW50cy5sZW5ndGggLSAxKSkgKiB3aWR0aDsNCiAgICAgICAgICAgICAgICBjb25zdCB5ID0gaGVpZ2h0IC0gKChwIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuOCAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgY3R4Lm1vdmVUbyh4LCB5KTsNCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldlggPSAoKGkgLSAxKSAvIChwb2ludHMubGVuZ3RoIC0gMSkpICogd2lkdGg7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZZID0gaGVpZ2h0IC0gKChwb2ludHNbaS0xXSAtIG1pbikgLyByYW5nZSkgKiBoZWlnaHQgKiAwLjggLSBoZWlnaHQgKiAwLjE7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGN4ID0gKHByZXZYICsgeCkgLyAyOw0KICAgICAgICAgICAgICAgICAgICBjdHguYmV6aWVyQ3VydmVUbyhjeCwgcHJldlksIGN4LCB5LCB4LCB5KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IGxpbmVDb2xvcjsNCiAgICAgICAgICAgIGN0eC5saW5lV2lkdGggPSAyLjU7DQogICAgICAgICAgICBjdHgubGluZUNhcCA9ICdyb3VuZCc7DQogICAgICAgICAgICBjdHgubGluZUpvaW4gPSAncm91bmQnOw0KICAgICAgICAgICAgY3R4LnN0cm9rZSgpOw0KICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTsNCg0KICAgICAgICAgICAgLy8gQW5pbWF0ZWQgbGVhZGluZyBkb3QNCiAgICAgICAgICAgIGNvbnN0IGxhc3RYID0gd2lkdGggLSA0Ow0KICAgICAgICAgICAgY29uc3QgbGFzdFkgPSBoZWlnaHQgLSAoKHBvaW50c1twb2ludHMubGVuZ3RoLTFdIC0gbWluKSAvIHJhbmdlKSAqIGhlaWdodCAqIDAuOCAtIGhlaWdodCAqIDAuMTsNCiAgICAgICAgICAgIG1hcmtldENoYXJ0UHVsc2UgKz0gMC4wNjsNCiAgICAgICAgICAgIGNvbnN0IHB1bHNlUiA9IDQgKyBNYXRoLnNpbihtYXJrZXRDaGFydFB1bHNlICogMikgKiAxLjU7DQogICAgICAgICAgICBjb25zdCBnbG93UiA9IDcgKyBNYXRoLnNpbihtYXJrZXRDaGFydFB1bHNlICogMikgKiAzOw0KDQogICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICAgICAgICBjdHguYXJjKGxhc3RYLCBsYXN0WSwgZ2xvd1IsIDAsIE1hdGguUEkgKiAyKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBpc1VwID8gJ3JnYmEoMTYsMTg1LDEyOSwwLjIpJyA6ICdyZ2JhKDI0NCw2Myw5NCwwLjIpJzsNCiAgICAgICAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICAgICAgICAgIGN0eC5hcmMobGFzdFgsIGxhc3RZLCBwdWxzZVIsIDAsIE1hdGguUEkgKiAyKTsNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBsaW5lQ29sb3I7DQogICAgICAgICAgICBjdHguZmlsbCgpOw0KICAgICAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnOw0KICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IDI7DQogICAgICAgICAgICBjdHguc3Ryb2tlKCk7DQoNCiAgICAgICAgICAgIC8vIFByaWNlIGxhYmVsIGF0IHRoZSBkb3QNCiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7DQogICAgICAgICAgICBjdHguZm9udCA9ICdib2xkIDExcHggSW50ZXIsIHNhbnMtc2VyaWYnOw0KICAgICAgICAgICAgY3R4LnRleHRBbGlnbiA9ICdyaWdodCc7DQogICAgICAgICAgICBjb25zdCB2YWxTdHIgPSAnJCcgKyBwb2ludHNbcG9pbnRzLmxlbmd0aC0xXS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOw0KICAgICAgICAgICAgY3R4LmZpbGxUZXh0KHZhbFN0ciwgbGFzdFggLSAxNCwgbGFzdFkgLSAxMCk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB0aWNrTWFya2V0Q2hhcnQoKSB7DQogICAgICAgICAgICBtYXJrZXRDaGFydFB1bHNlICs9IDAuMDY7DQogICAgICAgICAgICBpZiAoIW1hcmtldENoYXJ0SGlzdG9yeSB8fCBtYXJrZXRDaGFydEhpc3RvcnkubGVuZ3RoID09PSAwKSByZXR1cm47DQogICAgICAgICAgICAvLyBMaXZlIHByaWNlIHVwZGF0ZTogc2hpZnQgYW5kIGFkZCBuZXcgcG9pbnQgYmFzZWQgb24gY3VycmVudCBwcmljZQ0KICAgICAgICAgICAgbWFya2V0Q2hhcnRIaXN0b3J5LnNoaWZ0KCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50UHJpY2UgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2UgfHwgbWFya2V0Q2hhcnRIaXN0b3J5W21hcmtldENoYXJ0SGlzdG9yeS5sZW5ndGggLSAxXTsNCiAgICAgICAgICAgIGNvbnN0IGxhc3RQcmljZSA9IG1hcmtldENoYXJ0SGlzdG9yeVttYXJrZXRDaGFydEhpc3RvcnkubGVuZ3RoIC0gMV07DQogICAgICAgICAgICBjb25zdCBqaXR0ZXIgPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiBsYXN0UHJpY2UgKiAwLjAwMTsNCiAgICAgICAgICAgIG1hcmtldENoYXJ0SGlzdG9yeS5wdXNoKGN1cnJlbnRQcmljZSArIGppdHRlcik7DQogICAgICAgICAgICBkcmF3TWFya2V0Q2hhcnRGcmFtZSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc3RhcnRNYXJrZXRDaGFydEFuaW1hdGlvbigpIHsNCiAgICAgICAgICAgIGlmIChtYXJrZXRDaGFydEludGVydmFsKSBjbGVhckludGVydmFsKG1hcmtldENoYXJ0SW50ZXJ2YWwpOw0KICAgICAgICAgICAgZHJhd01hcmtldENoYXJ0RnJhbWUoKTsNCiAgICAgICAgICAgIG1hcmtldENoYXJ0SW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCh0aWNrTWFya2V0Q2hhcnQsIDQwMCk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzdG9wTWFya2V0Q2hhcnRBbmltYXRpb24oKSB7DQogICAgICAgICAgICBpZiAobWFya2V0Q2hhcnRJbnRlcnZhbCkgeyBjbGVhckludGVydmFsKG1hcmtldENoYXJ0SW50ZXJ2YWwpOyBtYXJrZXRDaGFydEludGVydmFsID0gbnVsbDsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gc2V0VGltZVJhbmdlKGhvdXJzKSB7DQogICAgICAgICAgICBjdXJyZW50VGltZVJhbmdlID0gaG91cnM7DQogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGltZS1idG4nKS5mb3JFYWNoKGJ0biA9PiBidG4uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpOw0KICAgICAgICAgICAgY29uc3QgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLnRpbWUtYnRuW2RhdGEtcmFuZ2U9IiR7aG91cnN9Il1gKTsNCiAgICAgICAgICAgIGlmIChidG4pIGJ0bi5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIGF3YWl0IGxvYWRNYXJrZXRDaGFydCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlTWFya2V0U3RhdHMoKSB7DQogICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXTsNCiAgICAgICAgICAgIGlmICghY3J5cHRvKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBwcmljZSA9IGNyeXB0by5wcmljZTsNCiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IGNyeXB0by5jaGFuZ2U7DQogICAgICAgICAgICBjb25zdCB2b2wgPSBjcnlwdG8udm9sdW1lIHx8IHByaWNlICogMjUwMDAwMDA7DQogICAgICAgICAgICBjb25zdCBtY2FwID0gY3J5cHRvLm1hcmtldENhcCB8fCBwcmljZSAqIDE5NTAwMDAwOw0KICAgICAgICAgICAgY29uc3QgaGlnaCA9IHByaWNlICogKDEgKyBNYXRoLmFicyhjaGFuZ2UpICogMC4wMSArIE1hdGgucmFuZG9tKCkgKiAwLjAxKTsNCiAgICAgICAgICAgIGNvbnN0IGxvdyA9IHByaWNlICogKDEgLSBNYXRoLmFicyhjaGFuZ2UpICogMC4wMSAtIE1hdGgucmFuZG9tKCkgKiAwLjAxKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdta3RIaWdoJykudGV4dENvbnRlbnQgPSAnJCcgKyBoaWdoLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21rdExvdycpLnRleHRDb250ZW50ID0gJyQnICsgbG93LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAwIH0pOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21rdFZvbCcpLnRleHRDb250ZW50ID0gJyQnICsgKHZvbCAvIDFlOSkudG9GaXhlZCgyKSArICdCJzsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdta3RDYXAnKS50ZXh0Q29udGVudCA9ICckJyArIChtY2FwIC8gMWU5KS50b0ZpeGVkKDIpICsgJ0InOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZHJhd0RlcHRoQ2hhcnQoKSB7DQogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwdGhDaGFydCcpOw0KICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDk2MDAwOw0KICAgICAgICAgICAgY29uc3Qgc2VlZCA9IHNlbGVjdGVkQ3J5cHRvID8gc2VsZWN0ZWRDcnlwdG8uY2hhckNvZGVBdCgwKSA6IDE7DQogICAgICAgICAgICBjb25zdCByID0gKGksIHMpID0+IHsgcmV0dXJuIE1hdGguYWJzKE1hdGguc2luKHNlZWQgKiA5MzAxICsgaSAqIDQ5Mjk3ICsgcyAqIDIzMykpOyB9Ow0KDQogICAgICAgICAgICAvLyBHZW5lcmF0ZSBiaWQgY3VydmUgcG9pbnRzIChsZWZ0IGhhbGYpDQogICAgICAgICAgICBjb25zdCBiaWRQb2ludHMgPSBbXTsNCiAgICAgICAgICAgIGNvbnN0IGJpZFN0ZXBzID0gMjA7DQogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiaWRTdGVwczsgaSsrKSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IGkgLyBiaWRTdGVwczsNCiAgICAgICAgICAgICAgICBjb25zdCBkZXB0aCA9IE1hdGguZXhwKC10ICogMy41KSAqICg1MCArIHIoaSwgMSkgKiAzNSk7DQogICAgICAgICAgICAgICAgYmlkUG9pbnRzLnB1c2goYCR7KDEgLSB0KSAqIDUwfSUgJHsxMDAgLSBkZXB0aH0lYCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBiaWRQb2ludHMucHVzaCgnNTAlIDEwMCUnKTsNCiAgICAgICAgICAgIGJpZFBvaW50cy5wdXNoKCcwJSAxMDAlJyk7DQoNCiAgICAgICAgICAgIC8vIEdlbmVyYXRlIGFzayBjdXJ2ZSBwb2ludHMgKHJpZ2h0IGhhbGYpDQogICAgICAgICAgICBjb25zdCBhc2tQb2ludHMgPSBbXTsNCiAgICAgICAgICAgIGNvbnN0IGFza1N0ZXBzID0gMjA7DQogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBhc2tTdGVwczsgaSsrKSB7DQogICAgICAgICAgICAgICAgY29uc3QgdCA9IGkgLyBhc2tTdGVwczsNCiAgICAgICAgICAgICAgICBjb25zdCBkZXB0aCA9IE1hdGguZXhwKC10ICogMy4yKSAqICg0NSArIHIoaSwgMikgKiAzNSk7DQogICAgICAgICAgICAgICAgYXNrUG9pbnRzLnB1c2goYCR7NTAgKyB0ICogNTB9JSAkezEwMCAtIGRlcHRofSVgKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGFza1BvaW50cy5wdXNoKCcxMDAlIDEwMCUnKTsNCiAgICAgICAgICAgIGFza1BvaW50cy5wdXNoKCc1MCUgMTAwJScpOw0KDQogICAgICAgICAgICAvLyBSYW5kb21pemUgYmlkL2FzayByYXRpbw0KICAgICAgICAgICAgY29uc3QgYmlkUGN0ID0gNTUgKyBNYXRoLmZsb29yKHIoMSwgMykgKiAxNSk7DQogICAgICAgICAgICBjb25zdCBhc2tQY3QgPSAxMDAgLSBiaWRQY3Q7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwdGhCaWRQY3QnKS50ZXh0Q29udGVudCA9IGJpZFBjdCArICclJzsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXB0aEFza1BjdCcpLnRleHRDb250ZW50ID0gYXNrUGN0ICsgJyUnOw0KDQogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gYA0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDo1MCU7IGhlaWdodDoxMDAlOyI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE2LDE4NSwxMjksMC4zNSkgMCUsIHJnYmEoMTYsMTg1LDEyOSwwLjA1KSAxMDAlKTsgY2xpcC1wYXRoOnBvbHlnb24oJHtiaWRQb2ludHMuam9pbignLCcpfSk7IGJvcmRlci1yaWdodDoycHggc29saWQgIzEwYjk4MTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgbGVmdDo4cHg7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyI+DQogICAgICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOjEwcHg7IGNvbG9yOiMxMGI5ODE7IGZvbnQtd2VpZ2h0OjYwMDsiPkJJRFM8L3A+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDo1MCU7IHdpZHRoOjUwJTsgaGVpZ2h0OjEwMCU7Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjQ0LDYzLDk0LDAuMykgMCUsIHJnYmEoMjQ0LDYzLDk0LDAuMDUpIDEwMCUpOyBjbGlwLXBhdGg6cG9seWdvbigke2Fza1BvaW50cy5qb2luKCcsJyl9KTsgYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICNmNDNmNWU7Ij48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IHJpZ2h0OjhweDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6MTBweDsgY29sb3I6I2Y0M2Y1ZTsgZm9udC13ZWlnaHQ6NjAwOyI+QVNLUzwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjUwJTsgd2lkdGg6MXB4OyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOyBib3JkZXItbGVmdDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyBib3R0b206NnB4OyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpOyBwYWRkaW5nOjJweCA4cHg7IGJvcmRlci1yYWRpdXM6NHB4OyI+DQogICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPSJmb250LXNpemU6MTBweDsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6NzAwOyI+JCR7TWF0aC5yb3VuZChwcmljZSkudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICBgOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gcmVuZGVyVm9sdW1lTGVhZGVycygpIHsNCiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndm9sdW1lTGVhZGVyc0xpc3QnKTsNCiAgICAgICAgICAgIGlmICghbGlzdCkgcmV0dXJuOw0KICAgICAgICAgICAgY29uc3Qgc29ydGVkID0gT2JqZWN0LmVudHJpZXMoY3J5cHRvRGF0YSkuc29ydCgoYSwgYikgPT4gKGJbMV0udm9sdW1lIHx8IDApIC0gKGFbMV0udm9sdW1lIHx8IDApKS5zbGljZSgwLCA1KTsNCiAgICAgICAgICAgIGNvbnN0IG1heFZvbCA9IHNvcnRlZFswXVsxXS52b2x1bWUgfHwgMTsNCiAgICAgICAgICAgIGxpc3QuaW5uZXJIVE1MID0gc29ydGVkLm1hcCgoW2tleSwgY10pID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwY3QgPSBNYXRoLm1heCg4LCBNYXRoLnJvdW5kKCgoYy52b2x1bWUgfHwgMCkgLyBtYXhWb2wpICogMTAwKSk7DQogICAgICAgICAgICAgICAgY29uc3Qgdm9sU3RyID0gKGMudm9sdW1lIHx8IDApID49IDFlOSA/ICckJyArICgoYy52b2x1bWUgfHwgMCkgLyAxZTkpLnRvRml4ZWQoMSkgKyAnQicgOiAnJCcgKyAoKGMudm9sdW1lIHx8IDApIC8gMWU2KS50b0ZpeGVkKDApICsgJ00nOw0KICAgICAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyByb3VuZGVkLXhsIGJnLWdyYXktODAwLzMwIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJHtjLmNvbG9yfSB0ZXh0LXNtIj4ke2MuaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JHtjLnN5bWJvbH0vVVNEVDwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2MubmFtZX08L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4ke3ZvbFN0cn08L3A+PGRpdiBjbGFzcz0idy0yNCBoLTEuNSBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgbXQtMSI+PGRpdiBjbGFzcz0iaC1mdWxsIGJnLWVtZXJhbGQtNTAwIHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCIgc3R5bGU9IndpZHRoOiR7cGN0fSUiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PmA7DQogICAgICAgICAgICB9KS5qb2luKCcnKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHJlbmRlclRvcEdhaW5lcnNMb3NlcnMoKSB7DQogICAgICAgICAgICBjb25zdCBzb3J0ZWQgPSBPYmplY3QuZW50cmllcyhjcnlwdG9EYXRhKS5zb3J0KChhLCBiKSA9PiBiWzFdLmNoYW5nZSAtIGFbMV0uY2hhbmdlKTsNCiAgICAgICAgICAgIGNvbnN0IGdhaW5lcnMgPSBzb3J0ZWQuc2xpY2UoMCwgMyk7DQoNCiAgICAgICAgICAgIGNvbnN0IGdhaW5lcnNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3BHYWluZXJzTGlzdCcpOw0KICAgICAgICAgICAgY29uc3QgcGFpcnNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFkaW5nUGFpcnNMaXN0Jyk7DQoNCiAgICAgICAgICAgIGlmIChnYWluZXJzRWwpIHsNCiAgICAgICAgICAgICAgICBnYWluZXJzRWwuaW5uZXJIVE1MID0gZ2FpbmVycy5tYXAoKFtrZXksIGNdKSA9Pg0KICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz0iY3J5cHRvLWxpc3QtaXRlbSIgb25jbGljaz0ic2VsZWN0Q3J5cHRvKCcke2tleX0nKSI+YCArDQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2MuY29sb3J9IHRleHQtbGcgbXItMyI+JHtjLmljb259PC9kaXY+YCArDQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJmbGV4LTEiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7Yy5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPiR7Yy5uYW1lfTwvcD48L2Rpdj5gICsNCiAgICAgICAgICAgICAgICAgICAgYDxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiQke2MucHJpY2UudG9Mb2NhbGVTdHJpbmcoKX08L3A+PHAgY2xhc3M9InRleHQtc20gdHJlbmQtdXAiPiske2MuY2hhbmdlLnRvRml4ZWQoMil9JTwvcD48L2Rpdj48L2Rpdj5gDQogICAgICAgICAgICAgICAgKS5qb2luKCcnKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gVHJhZGluZyBQYWlycyDigJQgc3R5bGVkIGxpa2UgdGhlIHNjcmVlbnNob3Qgd2l0aCBpY29uLCBwYWlyIG5hbWUsIHZvbHVtZQ0KICAgICAgICAgICAgaWYgKHBhaXJzRWwpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBhbGxDb2lucyA9IE9iamVjdC5lbnRyaWVzKGNyeXB0b0RhdGEpOw0KICAgICAgICAgICAgICAgIHBhaXJzRWwuaW5uZXJIVE1MID0gYWxsQ29pbnMubWFwKChba2V5LCBjXSkgPT4gew0KICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2xOdW0gPSBjLnZvbHVtZSB8fCAwOw0KICAgICAgICAgICAgICAgICAgICBsZXQgdm9sU3RyOw0KICAgICAgICAgICAgICAgICAgICBpZiAodm9sTnVtID49IDFlOSkgdm9sU3RyID0gKHZvbE51bSAvIDFlOSkudG9GaXhlZCgxKSArICdCJzsNCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodm9sTnVtID49IDFlNikgdm9sU3RyID0gTWF0aC5yb3VuZCh2b2xOdW0gLyAxZTYpICsgJ00nOw0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh2b2xOdW0gPj0gMWUzKSB2b2xTdHIgPSBNYXRoLnJvdW5kKHZvbE51bSAvIDFlMykgKyAnSyc7DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugdm9sU3RyID0gTWF0aC5yb3VuZCh2b2xOdW0pLnRvU3RyaW5nKCk7DQogICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHB5LTMgcHgtNCBiZy1ncmF5LTgwMC8zMCBob3ZlcjpiZy13aGl0ZS81IHRyYW5zaXRpb24tY29sb3JzIGN1cnNvci1wb2ludGVyIiBvbmNsaWNrPSJzZWxlY3RDcnlwdG8oJyR7a2V5fScpIj5gICsNCiAgICAgICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJHtjLmNvbG9yfSB0ZXh0LXNtIj4ke2MuaWNvbn08L2Rpdj48c3BhbiBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIj4ke2Muc3ltYm9sfS9VU0RUPC9zcGFuPjwvZGl2PmAgKw0KICAgICAgICAgICAgICAgICAgICAgICAgYDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlZvbDogPHNwYW4gY2xhc3M9InRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCI+JHt2b2xTdHJ9PC9zcGFuPjwvc3Bhbj48L2Rpdj5gOw0KICAgICAgICAgICAgICAgIH0pLmpvaW4oJycpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gbG9hZE1hcmtldCgpIHsNCiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJrZXRDcnlwdG9MaXN0Jyk7DQogICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICBPYmplY3QuZW50cmllcyhjcnlwdG9EYXRhKS5mb3JFYWNoKChba2V5LCBjcnlwdG9dKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdjcnlwdG8tbGlzdC1pdGVtJzsNCiAgICAgICAgICAgICAgICBkaXYub25jbGljayA9ICgpID0+IHNlbGVjdENyeXB0byhrZXkpOw0KICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJHtjcnlwdG8uY29sb3J9IHRleHQtbGcgbXItMyI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2IGNsYXNzPSJmbGV4LTEiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7Y3J5cHRvLnN5bWJvbH08L3A+PHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTQwMCI+JHtjcnlwdG8ubmFtZX08L3A+PC9kaXY+PGRpdiBjbGFzcz0idGV4dC1yaWdodCI+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JCR7Y3J5cHRvLnByaWNlLnRvTG9jYWxlU3RyaW5nKCl9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtICR7Y3J5cHRvLmNoYW5nZSA+PSAwID8gJ3RyZW5kLXVwJyA6ICd0cmVuZC1kb3duJ30iPiR7Y3J5cHRvLmNoYW5nZSA+PSAwID8gJysnIDogJyd9JHtjcnlwdG8uY2hhbmdlLnRvRml4ZWQoMil9JTwvcD48L2Rpdj5gOw0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICByZW5kZXJUb3BHYWluZXJzTG9zZXJzKCk7DQogICAgICAgICAgICB1cGRhdGVNYXJrZXRTdGF0cygpOw0KICAgICAgICAgICAgcmVuZGVyVm9sdW1lTGVhZGVycygpOw0KICAgICAgICAgICAgZHJhd0RlcHRoQ2hhcnQoKTsNCiAgICAgICAgICAgIGlmICghbWFya2V0Q2hhcnRJbnRlcnZhbCB8fCBtYXJrZXRDaGFydEhpc3RvcnkubGVuZ3RoID09PSAwKSBsb2FkTWFya2V0Q2hhcnQoKTsNCiAgICAgICAgICAgIGVsc2UgZHJhd01hcmtldENoYXJ0RnJhbWUoKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHNlbGVjdENyeXB0byhrZXkpIHsNCiAgICAgICAgICAgIHNlbGVjdGVkQ3J5cHRvID0ga2V5Ow0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtrZXldOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGVkQ3J5cHRvTmFtZScpLnRleHRDb250ZW50ID0gY3J5cHRvLm5hbWU7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VsZWN0ZWRDcnlwdG9TeW1ib2wnKS50ZXh0Q29udGVudCA9IGNyeXB0by5zeW1ib2wgKyAnL1VTRFQnOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdGVkQ3J5cHRvUHJpY2UnKS50ZXh0Q29udGVudCA9ICckJyArIGNyeXB0by5wcmljZS50b0xvY2FsZVN0cmluZygpOw0KICAgICAgICAgICAgY29uc3QgY2hFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxlY3RlZENyeXB0b0NoYW5nZScpOw0KICAgICAgICAgICAgY2hFbC50ZXh0Q29udGVudCA9IChjcnlwdG8uY2hhbmdlID49IDAgPyAnKycgOiAnJykgKyBjcnlwdG8uY2hhbmdlLnRvRml4ZWQoMikgKyAnJSc7DQogICAgICAgICAgICBjaEVsLmNsYXNzTmFtZSA9IGNyeXB0by5jaGFuZ2UgPj0gMCA/ICd0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20gZm9udC1tZWRpdW0nIDogJ3RleHQtcm9zZS00MDAgdGV4dC1zbSBmb250LW1lZGl1bSc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VsZWN0ZWRDcnlwdG9JY29uJykuaW5uZXJIVE1MID0gY3J5cHRvLmljb247DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VsZWN0ZWRDcnlwdG9JY29uJykuY2xhc3NOYW1lID0gJ2NyeXB0by1pY29uICcgKyBjcnlwdG8uY29sb3IgKyAnIHRleHQteGwnOw0KICAgICAgICAgICAgZHJhd0RlcHRoQ2hhcnQoKTsNCiAgICAgICAgICAgIGxvYWRNYXJrZXRDaGFydCgpOw0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZmlsdGVyTWFya2V0KCkgew0KICAgICAgICAgICAgY29uc3Qgc2VhcmNoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcmtldFNlYXJjaCcpLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBBcnJheS5mcm9tKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJrZXRDcnlwdG9MaXN0JykuY2hpbGRyZW4pLmZvckVhY2goaXRlbSA9PiB7DQogICAgICAgICAgICAgICAgaXRlbS5zdHlsZS5kaXNwbGF5ID0gaXRlbS50ZXh0Q29udGVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgPyAnZmxleCcgOiAnbm9uZSc7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHNldFRyYWRlTWFpblRhYih0YWIpIHsgWydjb252ZXJ0JywgJ3Nwb3QnLCAnZnV0dXJlcyddLmZvckVhY2godCA9PiB7IGNvbnN0IGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFkZVRhYicgKyB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdC5zbGljZSgxKSk7IGNvbnN0IHBhbmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCArICdQYW5lbCcpOyBpZiAoYnRuKSBidG4uY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgdCA9PT0gdGFiKTsgaWYgKHBhbmVsKSBwYW5lbC5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCB0ID09PSB0YWIpOyB9KTsgaWYgKHRhYiA9PT0gJ3Nwb3QnKSB7IGxvYWRPcmRlckJvb2soKTsgfSBpZiAodGFiID09PSAnZnV0dXJlcycpIHsgdXBkYXRlRnV0dXJlc1ByaWNlKCk7IH0gfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUZ1dHVyZXNQcmljZSgpIHsNCiAgICAgICAgICAgIGNvbnN0IHByaWNlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnV0dXJlc0J0Y1ByaWNlJyk7DQogICAgICAgICAgICBjb25zdCBjaGFuZ2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdXR1cmVzQnRjQ2hhbmdlJyk7DQogICAgICAgICAgICBpZiAoIXByaWNlRWwpIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDY2OTI1Ow0KICAgICAgICAgICAgcHJpY2VFbC50ZXh0Q29udGVudCA9ICckJyArIHByaWNlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7DQogICAgICAgICAgICBpZiAoY2hhbmdlRWwgJiYgY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10pIHsNCiAgICAgICAgICAgICAgICBjb25zdCBjaCA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dLmNoYW5nZTsNCiAgICAgICAgICAgICAgICBjaGFuZ2VFbC50ZXh0Q29udGVudCA9IChjaCA+PSAwID8gJysnIDogJycpICsgY2gudG9GaXhlZCgyKSArICclJzsNCiAgICAgICAgICAgICAgICBjaGFuZ2VFbC5jbGFzc05hbWUgPSBjaCA+PSAwID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtcm9zZS00MDAnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHNldENvbnZlcnRUeXBlKHR5cGUpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRJbnN0YW50VGFiJykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctd2hpdGUnLCB0eXBlID09PSAnaW5zdGFudCcpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEluc3RhbnRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWJsYWNrJywgdHlwZSA9PT0gJ2luc3RhbnQnKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRJbnN0YW50VGFiJykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctZ3JheS03MDAnLCB0eXBlICE9PSAnaW5zdGFudCcpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEluc3RhbnRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWdyYXktNDAwJywgdHlwZSAhPT0gJ2luc3RhbnQnKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRMaW1pdFRhYicpLmNsYXNzTGlzdC50b2dnbGUoJ2JnLXdoaXRlJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJ0TGltaXRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWJsYWNrJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJ0TGltaXRUYWInKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1ncmF5LTcwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydExpbWl0VGFiJykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlQ29udmVydFByZXZpZXcoKSB7IA0KICAgICAgICAgICAgY29uc3QgZnJvbUN1cnJlbmN5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQ3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICBjb25zdCB0b0N1cnJlbmN5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0N1cnJlbmN5JykudmFsdWU7IA0KICAgICAgICAgICAgY29uc3QgZnJvbUFtb3VudCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQW1vdW50JykudmFsdWUpIHx8IDA7IA0KICAgICAgICAgICAgY29uc3QgZnJvbUNyeXB0byA9IGNyeXB0b0RhdGFbZnJvbUN1cnJlbmN5XTsgDQogICAgICAgICAgICBjb25zdCB0b0NyeXB0byA9IGNyeXB0b0RhdGFbdG9DdXJyZW5jeV07IA0KICAgICAgICAgICAgaWYgKGZyb21DcnlwdG8gJiYgdG9DcnlwdG8gJiYgZnJvbUFtb3VudCA+IDApIHsgDQogICAgICAgICAgICAgICAgY29uc3QgcmF0ZSA9IGZyb21DcnlwdG8ucHJpY2UgLyB0b0NyeXB0by5wcmljZTsgDQogICAgICAgICAgICAgICAgY29uc3QgdG9BbW91bnQgPSBmcm9tQW1vdW50ICogcmF0ZTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0Ftb3VudCcpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4odG9BbW91bnQsIDQpOyANCiAgICAgICAgICAgICAgICBjb25zdCBmcm9tTGl2ZSA9IGZyb21DcnlwdG8ubGFzdFVwZGF0ZWQgPiAwICYmIChEYXRlLm5vdygpIC0gZnJvbUNyeXB0by5sYXN0VXBkYXRlZCkgPCAzMDAwMDA7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHRvTGl2ZSA9IHRvQ3J5cHRvLmxhc3RVcGRhdGVkID4gMCAmJiAoRGF0ZS5ub3coKSAtIHRvQ3J5cHRvLmxhc3RVcGRhdGVkKSA8IDMwMDAwMDsgDQogICAgICAgICAgICAgICAgY29uc3QgbGl2ZVRhZyA9IChmcm9tTGl2ZSB8fCBmcm9tQ3VycmVuY3kgPT09ICd1c2R0JyB8fCBmcm9tQ3VycmVuY3kgPT09ICd1c2RjJykgJiYgKHRvTGl2ZSB8fCB0b0N1cnJlbmN5ID09PSAndXNkdCcgfHwgdG9DdXJyZW5jeSA9PT0gJ3VzZGMnKSA/ICc8c3BhbiBjbGFzcz0idGV4dC1lbWVyYWxkLTQwMCI+JmJ1bGw7IExpdmU8L3NwYW4+JyA6ICc8c3BhbiBjbGFzcz0idGV4dC1hbWJlci00MDAiPiZidWxsOyBFc3Q8L3NwYW4+JzsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRSYXRlJykuaW5uZXJIVE1MID0gJzEgJyArIGZyb21DcnlwdG8uc3ltYm9sICsgJyAmYXN5bXA7ICcgKyBmb3JtYXRDbGVhbihyYXRlLCA0KSArICcgJyArIHRvQ3J5cHRvLnN5bWJvbCArICcgJyArIGxpdmVUYWc7IA0KICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0Ftb3VudCcpLnRleHRDb250ZW50ID0gJy0tJzsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRSYXRlJykudGV4dENvbnRlbnQgPSAnMSAnICsgKGZyb21DcnlwdG8/LnN5bWJvbCB8fCBmcm9tQ3VycmVuY3kudG9VcHBlckNhc2UoKSkgKyAnIOKJiCAtLSAnICsgKHRvQ3J5cHRvPy5zeW1ib2wgfHwgdG9DdXJyZW5jeS50b1VwcGVyQ2FzZSgpKTsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgY29uc3QgZnJvbUJhbCA9IGN1cnJlbnRVc2VyPy53YWxsZXRzPy5bZnJvbUN1cnJlbmN5XT8uYmFsYW5jZSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IHRvQmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/Llt0b0N1cnJlbmN5XT8uYmFsYW5jZSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IGZyb21TeW1ib2wgPSBmcm9tQ3J5cHRvPy5zeW1ib2wgfHwgZnJvbUN1cnJlbmN5LnRvVXBwZXJDYXNlKCk7IA0KICAgICAgICAgICAgY29uc3QgdG9TeW1ib2wgPSB0b0NyeXB0bz8uc3ltYm9sIHx8IHRvQ3VycmVuY3kudG9VcHBlckNhc2UoKTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEZyb21BdmFpbGFibGUnKS50ZXh0Q29udGVudCA9ICdBdmFpbGFibGU6ICcgKyBmb3JtYXRDbGVhbihmcm9tQmFsLCA0KSArICcgJyArIGZyb21TeW1ib2w7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRUb0F2YWlsYWJsZScpLnRleHRDb250ZW50ID0gJ0F2YWlsYWJsZTogJyArIGZvcm1hdENsZWFuKHRvQmFsLCA0KSArICcgJyArIHRvU3ltYm9sOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN3YXBDb252ZXJ0Q3VycmVuY2llcygpIHsgDQogICAgICAgICAgICBjb25zdCBmcm9tU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQ3VycmVuY3knKTsgDQogICAgICAgICAgICBjb25zdCB0b1NlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJ0VG9DdXJyZW5jeScpOyANCiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBmcm9tU2VsZWN0LnZhbHVlOyANCiAgICAgICAgICAgIGZyb21TZWxlY3QudmFsdWUgPSB0b1NlbGVjdC52YWx1ZTsgDQogICAgICAgICAgICB0b1NlbGVjdC52YWx1ZSA9IHRlbXA7IA0KICAgICAgICAgICAgdXBkYXRlQ29udmVydFByZXZpZXcoKTsgDQogICAgICAgIH0NCg0KICAgICAgICBsZXQgYWN0aXZlQ29udmVyc2lvbiA9IG51bGw7DQogICAgICAgIGxldCBjb252ZXJzaW9uUG9sbEludGVydmFsID0gbnVsbDsNCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBleGVjdXRlQ29udmVydCgpIHsgDQogICAgICAgICAgICBjb25zdCBmcm9tQ3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEZyb21DdXJyZW5jeScpLnZhbHVlOyANCiAgICAgICAgICAgIGNvbnN0IHRvQ3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydFRvQ3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICBjb25zdCBmcm9tQW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEZyb21BbW91bnQnKS52YWx1ZSk7IA0KICAgICAgICAgICAgaWYgKCFmcm9tQW1vdW50IHx8IGZyb21BbW91bnQgPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGFtb3VudCcsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBmcm9tQmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/Lltmcm9tQ3VycmVuY3ldPy5iYWxhbmNlIHx8IDA7IA0KICAgICAgICAgICAgaWYgKGZyb21CYWwgPCBmcm9tQW1vdW50KSB7IHNob3dBbGVydCgnSW5zdWZmaWNpZW50ICcgKyBmcm9tQ3VycmVuY3kudG9VcHBlckNhc2UoKSArICcgYmFsYW5jZScsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBmcm9tUHJpY2UgPSBjcnlwdG9EYXRhW2Zyb21DdXJyZW5jeV0/LnByaWNlIHx8IDA7IA0KICAgICAgICAgICAgY29uc3QgdG9QcmljZSA9IGNyeXB0b0RhdGFbdG9DdXJyZW5jeV0/LnByaWNlIHx8IDA7IA0KICAgICAgICAgICAgaWYgKGZyb21QcmljZSA8PSAwIHx8IHRvUHJpY2UgPD0gMCkgeyBzaG93QWxlcnQoJ1ByaWNlIGRhdGEgdW5hdmFpbGFibGUuIFBsZWFzZSB3YWl0IGZvciBwcmljZXMgdG8gbG9hZC4nLCAnZXJyb3InKTsgcmV0dXJuOyB9IA0KICAgICAgICAgICAgY29uc3QgdG9BbW91bnQgPSBmcm9tQW1vdW50ICogKGZyb21QcmljZSAvIHRvUHJpY2UpOw0KICAgICAgICAgICAgY29uc3QgZnJvbUNyeXB0byA9IGNyeXB0b0RhdGFbZnJvbUN1cnJlbmN5XTsNCiAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gY3J5cHRvRGF0YVt0b0N1cnJlbmN5XTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQ29udmVydCAnICsgZm9ybWF0Q2xlYW4oZnJvbUFtb3VudCwgNCkgKyAnICcgKyBmcm9tQ3J5cHRvLnN5bWJvbCArICcgdG8gYXBwcm94aW1hdGVseSAnICsgZm9ybWF0Q2xlYW4odG9BbW91bnQsIDQpICsgJyAnICsgdG9DcnlwdG8uc3ltYm9sICsgJz8nLCBmdW5jdGlvbigpIHsgZG9FeGVjdXRlQ29udmVydChmcm9tQ3VycmVuY3ksIHRvQ3VycmVuY3ksIGZyb21BbW91bnQsIHRvQW1vdW50LCBmcm9tUHJpY2UsIHRvUHJpY2UpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9FeGVjdXRlQ29udmVydChmcm9tQ3VycmVuY3ksIHRvQ3VycmVuY3ksIGZyb21BbW91bnQsIHRvQW1vdW50LCBmcm9tUHJpY2UsIHRvUHJpY2UpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRCdG4nKS5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRCdG4nKS5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpbiBtci0yIj48L2k+UHJvY2Vzc2luZy4uLic7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpQ2FsbCgnY29udmVyc2lvbnMnLCB7DQogICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLA0KICAgICAgICAgICAgICAgICAgICBib2R5OiB7IGZyb21DdXJyZW5jeSwgdG9DdXJyZW5jeSwgZnJvbUFtb3VudCwgdG9BbW91bnQsIGZyb21QcmljZSwgdG9QcmljZSB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRGcm9tQW1vdW50JykudmFsdWUgPSAnJzsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydFRvQW1vdW50JykudGV4dENvbnRlbnQgPSAnLS0nOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUNvbnZlcnRQcmV2aWV3KCk7DQogICAgICAgICAgICAgICAgbG9hZFVzZXJEYXRhKCk7IGxvYWRXYWxsZXRzKCk7DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgY29uc3QgY29udiA9IHJlc3VsdC5jb252ZXJzaW9uOw0KICAgICAgICAgICAgICAgIGFjdGl2ZUNvbnZlcnNpb24gPSB7IGlkOiBjb252LmlkLCBmcm9tQ3VycmVuY3ksIHRvQ3VycmVuY3ksIGZyb21BbW91bnQsIHRvQW1vdW50IH07DQogICAgICAgICAgICAgICAgc3RhcnRDb252ZXJzaW9uUHJvZ3Jlc3MoY29udi5lc3RpbWF0ZWRTZWNvbmRzKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgICAgICAgICAgc2hvd0FsZXJ0KCdDb252ZXJzaW9uIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOw0KICAgICAgICAgICAgfSBmaW5hbGx5IHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVydEJ0bicpLmRpc2FibGVkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnRCdG4nKS5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1leGNoYW5nZS1hbHQgbXItMiI+PC9pPkNvbnZlcnQgTm93JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHN0YXJ0Q29udmVyc2lvblByb2dyZXNzKGVzdGltYXRlZFNlY29uZHMpIHsNCiAgICAgICAgICAgIGNvbnN0IG1vZGFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25Qcm9ncmVzc01vZGFsJyk7DQogICAgICAgICAgICBjb25zdCBiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzQmFyJyk7DQogICAgICAgICAgICBjb25zdCBwY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzUGVyY2VudCcpOw0KICAgICAgICAgICAgY29uc3Qgc3RhdHVzVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uUHJvZ3Jlc3NTdGF0dXMnKTsNCiAgICAgICAgICAgIGNvbnN0IHN0ZXBJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwSWNvbicpOw0KICAgICAgICAgICAgY29uc3Qgc3RlcExhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwTGFiZWwnKTsNCiAgICAgICAgICAgIGNvbnN0IGVzdFRpbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvbkVzdFRpbWUnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgbW9kYWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7DQogICAgICAgICAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgY29uc3QgZnJvbUNyeXB0byA9IGNyeXB0b0RhdGFbYWN0aXZlQ29udmVyc2lvbi5mcm9tQ3VycmVuY3ldOw0KICAgICAgICAgICAgY29uc3QgdG9DcnlwdG8gPSBjcnlwdG9EYXRhW2FjdGl2ZUNvbnZlcnNpb24udG9DdXJyZW5jeV07DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udlByb2dyZXNzRnJvbScpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4oYWN0aXZlQ29udmVyc2lvbi5mcm9tQW1vdW50LCA0KSArICcgJyArIGZyb21DcnlwdG8uc3ltYm9sOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZQcm9ncmVzc1RvJykudGV4dENvbnRlbnQgPSBmb3JtYXRDbGVhbihhY3RpdmVDb252ZXJzaW9uLnRvQW1vdW50LCA0KSArICcgJyArIHRvQ3J5cHRvLnN5bWJvbDsNCiAgICAgICAgICAgIGVzdFRpbWUudGV4dENvbnRlbnQgPSAnficgKyBNYXRoLmNlaWwoZXN0aW1hdGVkU2Vjb25kcyAvIDYwKSArICcgbWluJzsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSBbDQogICAgICAgICAgICAgICAgeyBpY29uOiAnZmEtZmlsZS1zaWduYXR1cmUnLCBsYWJlbDogJ0NvbmZpcm1pbmcgdHJhbnNhY3Rpb24uLi4nIH0sDQogICAgICAgICAgICAgICAgeyBpY29uOiAnZmEtbG9jaycsIGxhYmVsOiAnU2VjdXJpbmcgZnVuZHMuLi4nIH0sDQogICAgICAgICAgICAgICAgeyBpY29uOiAnZmEtc2VhcmNoLWRvbGxhcicsIGxhYmVsOiAnRmV0Y2hpbmcgYmVzdCByYXRlLi4uJyB9LA0KICAgICAgICAgICAgICAgIHsgaWNvbjogJ2ZhLWV4Y2hhbmdlLWFsdCcsIGxhYmVsOiAnUHJvY2Vzc2luZyBzd2FwLi4uJyB9LA0KICAgICAgICAgICAgICAgIHsgaWNvbjogJ2ZhLWNoZWNrLWNpcmNsZScsIGxhYmVsOiAnRmluYWxpemluZy4uLicgfQ0KICAgICAgICAgICAgXTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gMDsNCiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUludGVydmFsID0gMTAwMDsNCiAgICAgICAgICAgIGNvbnN0IGluY3JlbWVudFBlclNlY29uZCA9IDEwMCAvIGVzdGltYXRlZFNlY29uZHM7DQogICAgICAgICAgICBsZXQgc2Vjb25kc0VsYXBzZWQgPSAwOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBpZiAoY29udmVyc2lvblBvbGxJbnRlcnZhbCkgY2xlYXJJbnRlcnZhbChjb252ZXJzaW9uUG9sbEludGVydmFsKTsNCiAgICAgICAgICAgIGNvbnZlcnNpb25Qb2xsSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICBzZWNvbmRzRWxhcHNlZCsrOw0KICAgICAgICAgICAgICAgIHByb2dyZXNzID0gTWF0aC5taW4oOTUsIHNlY29uZHNFbGFwc2VkICogaW5jcmVtZW50UGVyU2Vjb25kKTsNCiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U3RlcCA9IE1hdGgubWluKHN0ZXBzLmxlbmd0aCAtIDEsIE1hdGguZmxvb3IoKHByb2dyZXNzIC8gMTAwKSAqIHN0ZXBzLmxlbmd0aCkpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGJhci5zdHlsZS53aWR0aCA9IHByb2dyZXNzICsgJyUnOw0KICAgICAgICAgICAgICAgIHBjdC50ZXh0Q29udGVudCA9IE1hdGgucm91bmQocHJvZ3Jlc3MpICsgJyUnOw0KICAgICAgICAgICAgICAgIHN0ZXBJY29uLmNsYXNzTmFtZSA9ICdmYXMgJyArIHN0ZXBzW2N1cnJlbnRTdGVwXS5pY29uOw0KICAgICAgICAgICAgICAgIHN0ZXBMYWJlbC50ZXh0Q29udGVudCA9IHN0ZXBzW2N1cnJlbnRTdGVwXS5sYWJlbDsNCiAgICAgICAgICAgICAgICBlc3RUaW1lLnRleHRDb250ZW50ID0gJ34nICsgTWF0aC5tYXgoMCwgTWF0aC5jZWlsKChlc3RpbWF0ZWRTZWNvbmRzIC0gc2Vjb25kc0VsYXBzZWQpIC8gNjApKSArICcgbWluJzsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoc2Vjb25kc0VsYXBzZWQgJSA4ID09PSAwKSB7IHBvbGxDb252ZXJzaW9uU3RhdHVzKCk7IH0NCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICBpZiAoc2Vjb25kc0VsYXBzZWQgPj0gZXN0aW1hdGVkU2Vjb25kcykgeyBmaW5pc2hDb252ZXJzaW9uUHJvZ3Jlc3MoKTsgfQ0KICAgICAgICAgICAgfSwgdXBkYXRlSW50ZXJ2YWwpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBhc3luYyBmdW5jdGlvbiBwb2xsQ29udmVyc2lvblN0YXR1cygpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2NvbnZlcnNpb25zJyk7DQogICAgICAgICAgICAgICAgY29uc3QgY29udiA9IChkYXRhLmNvbnZlcnNpb25zIHx8IFtdKS5maW5kKGZ1bmN0aW9uKGMpIHsgcmV0dXJuIGMuaWQgPT09IGFjdGl2ZUNvbnZlcnNpb24uaWQ7IH0pOw0KICAgICAgICAgICAgICAgIGlmIChjb252ICYmIGNvbnYuc3RhdHVzID09PSAnY29tcGxldGVkJykgeyBmaW5pc2hDb252ZXJzaW9uUHJvZ3Jlc3MoKTsgfQ0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyAvKiBzaWxlbnQgcG9sbCAqLyB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGZ1bmN0aW9uIGZpbmlzaENvbnZlcnNpb25Qcm9ncmVzcygpIHsNCiAgICAgICAgICAgIGlmIChjb252ZXJzaW9uUG9sbEludGVydmFsKSB7IGNsZWFySW50ZXJ2YWwoY29udmVyc2lvblBvbGxJbnRlcnZhbCk7IGNvbnZlcnNpb25Qb2xsSW50ZXJ2YWwgPSBudWxsOyB9DQogICAgICAgICAgICBjb25zdCBiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzQmFyJyk7DQogICAgICAgICAgICBjb25zdCBwY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzUGVyY2VudCcpOw0KICAgICAgICAgICAgY29uc3Qgc3RhdHVzVGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uUHJvZ3Jlc3NTdGF0dXMnKTsNCiAgICAgICAgICAgIGNvbnN0IHN0ZXBJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwSWNvbicpOw0KICAgICAgICAgICAgY29uc3Qgc3RlcExhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25TdGVwTGFiZWwnKTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgYmFyLnN0eWxlLndpZHRoID0gJzEwMCUnOw0KICAgICAgICAgICAgcGN0LnRleHRDb250ZW50ID0gJzEwMCUnOw0KICAgICAgICAgICAgc3RhdHVzVGV4dC50ZXh0Q29udGVudCA9ICdDb252ZXJzaW9uIENvbXBsZXRlJzsNCiAgICAgICAgICAgIHN0YXR1c1RleHQuY2xhc3NOYW1lID0gJ3RleHQtbGcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC00MDAgbXQtMyc7DQogICAgICAgICAgICBzdGVwSWNvbi5jbGFzc05hbWUgPSAnZmFzIGZhLWNoZWNrLWNpcmNsZSB0ZXh0LWVtZXJhbGQtNDAwJzsNCiAgICAgICAgICAgIHN0ZXBMYWJlbC50ZXh0Q29udGVudCA9ICdGdW5kcyBjcmVkaXRlZCB0byB5b3VyIHdhbGxldCc7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gY3J5cHRvRGF0YVthY3RpdmVDb252ZXJzaW9uLnRvQ3VycmVuY3ldOw0KICAgICAgICAgICAgc2hvd0FsZXJ0KCdDb252ZXJzaW9uIGNvbXBsZXRlISBZb3UgcmVjZWl2ZWQgJyArIGZvcm1hdENsZWFuKGFjdGl2ZUNvbnZlcnNpb24udG9BbW91bnQsIDQpICsgJyAnICsgdG9DcnlwdG8uc3ltYm9sLCAnc3VjY2VzcycpOw0KICAgICAgICAgICAgbG9hZFVzZXJEYXRhKCk7IGxvYWRXYWxsZXRzKCk7IGxvYWRDb252ZXJzaW9uSGlzdG9yeSgpOw0KICAgICAgICAgICAgDQogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjbG9zZUNvbnZlcnNpb25Nb2RhbCgpOyB9LCAyNTAwKTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgZnVuY3Rpb24gY2xvc2VDb252ZXJzaW9uTW9kYWwoKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udmVyc2lvblByb2dyZXNzTW9kYWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uUHJvZ3Jlc3NNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOw0KICAgICAgICAgICAgaWYgKGNvbnZlcnNpb25Qb2xsSW50ZXJ2YWwpIHsgY2xlYXJJbnRlcnZhbChjb252ZXJzaW9uUG9sbEludGVydmFsKTsgY29udmVyc2lvblBvbGxJbnRlcnZhbCA9IG51bGw7IH0NCiAgICAgICAgICAgIGFjdGl2ZUNvbnZlcnNpb24gPSBudWxsOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkQ29udmVyc2lvbkhpc3RvcnkoKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdjb252ZXJzaW9ucycpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkYXRhLmNvbnZlcnNpb25zIHx8IFtdOw0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb252ZXJzaW9uSGlzdG9yeUxpc3QnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnZlcnNpb25IaXN0b3J5U2VjdGlvbicpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkgeyBzZWN0aW9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IHJldHVybjsgfQ0KICAgICAgICAgICAgICAgIHNlY3Rpb24uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbihjb252KSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyb21DcnlwdG8gPSBjcnlwdG9EYXRhW2NvbnYuZnJvbUN1cnJlbmN5XSB8fCB7IHN5bWJvbDogY29udi5mcm9tQ3VycmVuY3kudG9VcHBlckNhc2UoKSwgY29sb3I6IGNvbnYuZnJvbUN1cnJlbmN5LCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNHB4OyI+Pzwvc3Bhbj4nIH07DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvQ3J5cHRvID0gY3J5cHRvRGF0YVtjb252LnRvQ3VycmVuY3ldIHx8IHsgc3ltYm9sOiBjb252LnRvQ3VycmVuY3kudG9VcHBlckNhc2UoKSwgY29sb3I6IGNvbnYudG9DdXJyZW5jeSwgaWNvbjogJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTRweDsiPj88L3NwYW4+JyB9Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoY29udi5zdGFydGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQcm9jZXNzaW5nID0gY29udi5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJzsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBpc1Byb2Nlc3NpbmcgPyAndGV4dC1hbWJlci00MDAnIDogJ3RleHQtZW1lcmFsZC00MDAnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNCZyA9IGlzUHJvY2Vzc2luZyA/ICdiZy1hbWJlci01MDAvMTAnIDogJ2JnLWVtZXJhbGQtNTAwLzEwJzsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBpc1Byb2Nlc3NpbmcgPyAnPGRpdiBjbGFzcz0iaC0xLjUgYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIG10LTIgb3ZlcmZsb3ctaGlkZGVuIj48ZGl2IGNsYXNzPSJoLWZ1bGwgYmctYW1iZXItNTAwIHJvdW5kZWQtZnVsbCB0cmFuc2l0aW9uLWFsbCIgc3R5bGU9IndpZHRoOicgKyBjb252LnByb2dyZXNzICsgJyUiPjwvZGl2PjwvZGl2PicgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ2dsYXNzIHJvdW5kZWQteGwgcC0zIGJvcmRlciBib3JkZXItZ3JheS03MDAvMzAnOw0KICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0yIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktMzAwIj4nICsgZnJvbUNyeXB0by5zeW1ib2wgKyAnPC9zcGFuPjxpIGNsYXNzPSJmYXMgZmEtYXJyb3ctcmlnaHQgdGV4dC1ncmF5LTUwMCB0ZXh0LXhzIj48L2k+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIj4nICsgdG9DcnlwdG8uc3ltYm9sICsgJzwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyBmb250LW1lZGl1bSAnICsgc3RhdHVzQ29sb3IgKyAnIHB4LTIgcHktMC41IHJvdW5kZWQgJyArIHN0YXR1c0JnICsgJyI+JyArIGNvbnYuc3RhdHVzLnRvVXBwZXJDYXNlKCkgKyAnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIHRleHQtZ3JheS00MDAiPjxzcGFuPicgKyBmb3JtYXRDbGVhbihjb252LmZyb21BbW91bnQsIDQpICsgJyDihpIgJyArIGZvcm1hdENsZWFuKGNvbnYudG9BbW91bnQsIDQpICsgJzwvc3Bhbj48c3Bhbj4nICsgZGF0ZSArICc8L3NwYW4+PC9kaXY+JyArIHByb2dyZXNzQmFyOw0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGNvbnZlcnNpb25zOicsIGVycm9yKTsgfQ0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0VHJhZGVTaWRlKHNpZGUpIHsgDQogICAgICAgICAgICB0cmFkZVNpZGUgPSBzaWRlOyANCiAgICAgICAgICAgIGNvbnN0IGlzQnV5ID0gc2lkZSA9PT0gJ2J1eSc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RCdXlCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1lbWVyYWxkLTYwMCcsIGlzQnV5KTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEJ1eUJ0bicpLmNsYXNzTGlzdC50b2dnbGUoJ3RleHQtd2hpdGUnLCBpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RCdXlCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1ncmF5LTcwMCcsICFpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RCdXlCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWdyYXktNDAwJywgIWlzQnV5KTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFNlbGxCdG4nKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1yb3NlLTYwMCcsICFpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RTZWxsQnRuJykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC13aGl0ZScsICFpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RTZWxsQnRuJykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctZ3JheS03MDAnLCBpc0J1eSk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RTZWxsQnRuJykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIGlzQnV5KTsgDQogICAgICAgICAgICBjb25zdCBhY3Rpb25CdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFjdGlvbkJ0bicpOyANCiAgICAgICAgICAgIGNvbnN0IHBhaXJTeW1ib2wgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8uc3ltYm9sIHx8ICdCVEMnOyANCiAgICAgICAgICAgIGlmIChhY3Rpb25CdG4pIHsgDQogICAgICAgICAgICAgICAgYWN0aW9uQnRuLnRleHRDb250ZW50ID0gKGlzQnV5ID8gJ0J1eSAnIDogJ1NlbGwgJykgKyBwYWlyU3ltYm9sOyANCiAgICAgICAgICAgICAgICBhY3Rpb25CdG4uY2xhc3NOYW1lID0gaXNCdXkgPyAndy1mdWxsIHB5LTQgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCcgOiAndy1mdWxsIHB5LTQgYmctcm9zZS02MDAgaG92ZXI6Ymctcm9zZS03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCB0cmFuc2l0aW9uLWFsbCc7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHVwZGF0ZVNwb3RBdmFpbGFibGUoKTsgDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzZXRTcG90T3JkZXJUeXBlKHR5cGUpIHsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFR5cGVMaW1pdCcpLmNsYXNzTGlzdC50b2dnbGUoJ2JnLXdoaXRlJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTGltaXQnKS5jbGFzc0xpc3QudG9nZ2xlKCd0ZXh0LWJsYWNrJywgdHlwZSA9PT0gJ2xpbWl0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTGltaXQnKS5jbGFzc0xpc3QudG9nZ2xlKCdiZy1ncmF5LTcwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VHlwZUxpbWl0JykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIHR5cGUgIT09ICdsaW1pdCcpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VHlwZU1hcmtldCcpLmNsYXNzTGlzdC50b2dnbGUoJ2JnLXdoaXRlJywgdHlwZSA9PT0gJ21hcmtldCcpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VHlwZU1hcmtldCcpLmNsYXNzTGlzdC50b2dnbGUoJ3RleHQtYmxhY2snLCB0eXBlID09PSAnbWFya2V0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTWFya2V0JykuY2xhc3NMaXN0LnRvZ2dsZSgnYmctZ3JheS03MDAnLCB0eXBlICE9PSAnbWFya2V0Jyk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RUeXBlTWFya2V0JykuY2xhc3NMaXN0LnRvZ2dsZSgndGV4dC1ncmF5LTQwMCcsIHR5cGUgIT09ICdtYXJrZXQnKTsgDQogICAgICAgICAgICBjb25zdCBwcmljZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RQcmljZScpOyANCiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbWFya2V0JyAmJiBwcmljZUlucHV0KSB7IHByaWNlSW5wdXQudmFsdWUgPSBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2U/LnRvRml4ZWQoMikgfHwgJyc7IHByaWNlSW5wdXQucmVhZE9ubHkgPSB0cnVlOyBwcmljZUlucHV0LmNsYXNzTGlzdC5hZGQoJ3RleHQtZ3JheS00MDAnKTsgfSANCiAgICAgICAgICAgIGVsc2UgaWYgKHByaWNlSW5wdXQpIHsgcHJpY2VJbnB1dC5yZWFkT25seSA9IGZhbHNlOyBwcmljZUlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ3RleHQtZ3JheS00MDAnKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNwb3RBdmFpbGFibGUoKSB7IA0KICAgICAgICAgICAgY29uc3QgaXNCdXkgPSB0cmFkZVNpZGUgPT09ICdidXknOyANCiAgICAgICAgICAgIGNvbnN0IGF2YWlsRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEF2YWlsYWJsZScpOyANCiAgICAgICAgICAgIGlmICghYXZhaWxFbCkgcmV0dXJuOyANCiAgICAgICAgICAgIGlmIChpc0J1eSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCB1c2R0QmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/LnVzZHQ/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICAgICAgYXZhaWxFbC50ZXh0Q29udGVudCA9IHVzZHRCYWwudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogNCB9KSArICcgVVNEVCc7IA0KICAgICAgICAgICAgfSBlbHNlIHsgDQogICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvQmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/LltzZWxlY3RlZENyeXB0b10/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICAgICAgY29uc3Qgc3ltYm9sID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnN5bWJvbCB8fCBzZWxlY3RlZENyeXB0by50b1VwcGVyQ2FzZSgpOyANCiAgICAgICAgICAgICAgICBhdmFpbEVsLnRleHRDb250ZW50ID0gY3J5cHRvQmFsLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDggfSkgKyAnICcgKyBzeW1ib2w7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnN0IHN5bWJvbCA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dPy5zeW1ib2wgfHwgJ0JUQyc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RBbW91bnRMYWJlbCcpLnRleHRDb250ZW50ID0gc3ltYm9sOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90QW1vdW50VW5pdCcpLnRleHRDb250ZW50ID0gc3ltYm9sOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZVNwb3RUb3RhbCgpIHsgDQogICAgICAgICAgICBjb25zdCBwcmljZSA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RQcmljZScpLnZhbHVlKSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RBbW91bnQnKS52YWx1ZSkgfHwgMDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFRvdGFsJykudmFsdWUgPSAocHJpY2UgKiBhbW91bnQpLnRvRml4ZWQoMik7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gc2V0U3BvdFBlcmNlbnQocGN0KSB7IA0KICAgICAgICAgICAgY29uc3QgaXNCdXkgPSB0cmFkZVNpZGUgPT09ICdidXknOyANCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdFByaWNlJykudmFsdWUpIHx8IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dPy5wcmljZSB8fCAwOyANCiAgICAgICAgICAgIGlmIChpc0J1eSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCB1c2R0QmFsID0gY3VycmVudFVzZXI/LndhbGxldHM/LnVzZHQ/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB1c2R0QmFsICogKHBjdCAvIDEwMCk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGFtb3VudCA9IHByaWNlID4gMCA/IHRvdGFsIC8gcHJpY2UgOiAwOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFtb3VudCcpLnZhbHVlID0gZm9ybWF0Q2xlYW4oYW1vdW50LCA2KTsgDQogICAgICAgICAgICB9IGVsc2UgeyANCiAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG9CYWwgPSBjdXJyZW50VXNlcj8ud2FsbGV0cz8uW3NlbGVjdGVkQ3J5cHRvXT8uYmFsYW5jZSB8fCAwOyANCiAgICAgICAgICAgICAgICBjb25zdCBhbW91bnQgPSBjcnlwdG9CYWwgKiAocGN0IC8gMTAwKTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RBbW91bnQnKS52YWx1ZSA9IGZvcm1hdENsZWFuKGFtb3VudCwgNik7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNhbGN1bGF0ZVNwb3RUb3RhbCgpOyANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVTcG90VHJhZGUoKSB7IA0KICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFtb3VudCcpLnZhbHVlKTsgDQogICAgICAgICAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGFtb3VudCcsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBwcmljZSA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nwb3RQcmljZScpLnZhbHVlKSB8fCBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8ucHJpY2UgfHwgMDsgDQogICAgICAgICAgICBjb25zdCB0b3RhbCA9IHByaWNlICogYW1vdW50OyANCiAgICAgICAgICAgIGNvbnN0IGlzQnV5ID0gdHJhZGVTaWRlID09PSAnYnV5JzsgDQogICAgICAgICAgICBpZiAoaXNCdXkpIHsgDQogICAgICAgICAgICAgICAgY29uc3QgdXNkdEJhbCA9IGN1cnJlbnRVc2VyPy53YWxsZXRzPy51c2R0Py5iYWxhbmNlIHx8IDA7IA0KICAgICAgICAgICAgICAgIGlmICh1c2R0QmFsIDwgdG90YWwpIHsgc2hvd0FsZXJ0KCdJbnN1ZmZpY2llbnQgVVNEVCBiYWxhbmNlJywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0b0JhbCA9IGN1cnJlbnRVc2VyPy53YWxsZXRzPy5bc2VsZWN0ZWRDcnlwdG9dPy5iYWxhbmNlIHx8IDA7IA0KICAgICAgICAgICAgICAgIGlmIChjcnlwdG9CYWwgPCBhbW91bnQpIHsgc2hvd0FsZXJ0KCdJbnN1ZmZpY2llbnQgJyArIChjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXT8uc3ltYm9sIHx8IHNlbGVjdGVkQ3J5cHRvLnRvVXBwZXJDYXNlKCkpICsgJyBiYWxhbmNlJywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIH0gDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCd0cmFuc2FjdGlvbnMnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHR5cGU6IHRyYWRlU2lkZSwgZnJvbUN1cnJlbmN5OiBpc0J1eSA/ICd1c2R0JyA6IHNlbGVjdGVkQ3J5cHRvLCB0b0N1cnJlbmN5OiBpc0J1eSA/IHNlbGVjdGVkQ3J5cHRvIDogJ3VzZHQnLCBhbW91bnQ6IGlzQnV5ID8gdG90YWwgOiBhbW91bnQsIHN0YXR1czogJ2NvbXBsZXRlZCcgfSB9KTsgDQogICAgICAgICAgICAgICAgc2hvd0FsZXJ0KGAke2lzQnV5ID8gJ0J1eScgOiAnU2VsbCd9IG9yZGVyIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSFgLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BvdEFtb3VudCcpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90VG90YWwnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBsb2FkVXNlckRhdGEoKTsgbG9hZFdhbGxldHMoKTsgbG9hZFRyYW5zYWN0aW9ucygpOyB1cGRhdGVTcG90QXZhaWxhYmxlKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdUcmFkZSBmYWlsZWQ6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIGxvYWRPcmRlckJvb2soKSB7IA0KICAgICAgICAgICAgY29uc3QgYXNrc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmRlckJvb2tBc2tzJyksIGJpZHNDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3JkZXJCb29rQmlkcycpOyANCiAgICAgICAgICAgIGlmICghYXNrc0NvbnRhaW5lciB8fCAhYmlkc0NvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgIGxldCBhc2tzSHRtbCA9ICcnLCBiaWRzSHRtbCA9ICcnOyANCiAgICAgICAgICAgIGNvbnN0IGJhc2VQcmljZSA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dPy5wcmljZSB8fCA2NjkyNTsgDQogICAgICAgICAgICBjb25zdCBzcHJlYWQgPSBiYXNlUHJpY2UgKiAwLjAwMjsgDQogICAgICAgICAgICBmb3IgKGxldCBpID0gNTsgaSA+IDA7IGktLSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBwcmljZSA9IGJhc2VQcmljZSArIHNwcmVhZCAqIGksIGFtb3VudCA9IChNYXRoLnJhbmRvbSgpICogMiArIDAuMDEpLnRvRml4ZWQoNCk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gKHByaWNlICogYW1vdW50KS50b0ZpeGVkKDIpOyANCiAgICAgICAgICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKDEwMCwgKGFtb3VudCAvIDIuNSkgKiAxMDApOyANCiAgICAgICAgICAgICAgICBhc2tzSHRtbCArPSBgPGRpdiBjbGFzcz0ib3JkZXItYm9vay1yb3cgb3JkZXItYm9vay1zZWxsIHJlbGF0aXZlIj48ZGl2IGNsYXNzPSJhYnNvbHV0ZSByaWdodC0wIHRvcC0wIGJvdHRvbS0wIGJnLXJvc2UtNTAwLzEwIiBzdHlsZT0id2lkdGg6JHt3aWR0aH0lIj48L2Rpdj48c3Bhbj4ke3ByaWNlLnRvRml4ZWQoMil9PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0Ij4ke2Ftb3VudH08L3NwYW4+PHNwYW4gY2xhc3M9InRleHQtcmlnaHQgdGV4dC1ncmF5LTQwMCI+JHt0b3RhbH08L3NwYW4+PC9kaXY+YDsgDQogICAgICAgICAgICB9IA0KICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNTsgaSsrKSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlID0gYmFzZVByaWNlIC0gc3ByZWFkICogaSwgYW1vdW50ID0gKE1hdGgucmFuZG9tKCkgKiAyICsgMC4wMSkudG9GaXhlZCg0KTsgDQogICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSAocHJpY2UgKiBhbW91bnQpLnRvRml4ZWQoMik7IA0KICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4oMTAwLCAoYW1vdW50IC8gMi41KSAqIDEwMCk7IA0KICAgICAgICAgICAgICAgIGJpZHNIdG1sICs9IGA8ZGl2IGNsYXNzPSJvcmRlci1ib29rLXJvdyBvcmRlci1ib29rLWJ1eSByZWxhdGl2ZSI+PGRpdiBjbGFzcz0iYWJzb2x1dGUgcmlnaHQtMCB0b3AtMCBib3R0b20tMCBiZy1lbWVyYWxkLTUwMC8xMCIgc3R5bGU9IndpZHRoOiR7d2lkdGh9JSI+PC9kaXY+PHNwYW4+JHtwcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC1yaWdodCI+JHthbW91bnR9PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXJpZ2h0IHRleHQtZ3JheS00MDAiPiR7dG90YWx9PC9zcGFuPjwvZGl2PmA7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGFza3NDb250YWluZXIuaW5uZXJIVE1MID0gYXNrc0h0bWw7IA0KICAgICAgICAgICAgYmlkc0NvbnRhaW5lci5pbm5lckhUTUwgPSBiaWRzSHRtbDsgDQogICAgICAgICAgICBjb25zdCBtaWRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmRlckJvb2tNaWRQcmljZScpOyANCiAgICAgICAgICAgIGlmIChtaWRFbCkgbWlkRWwudGV4dENvbnRlbnQgPSBiYXNlUHJpY2UudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KTsgDQogICAgICAgICAgICBjb25zdCBwcmljZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWRlQnRjUHJpY2UnKTsgDQogICAgICAgICAgICBpZiAocHJpY2VFbCkgcHJpY2VFbC50ZXh0Q29udGVudCA9ICckJyArIGJhc2VQcmljZS50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pOyANCiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYWRlQnRjQ2hhbmdlJyk7IA0KICAgICAgICAgICAgaWYgKGNoYW5nZUVsICYmIGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dKSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNoID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10uY2hhbmdlOyANCiAgICAgICAgICAgICAgICBjaGFuZ2VFbC50ZXh0Q29udGVudCA9IChjaCA+PSAwID8gJysnIDogJycpICsgY2gudG9GaXhlZCgyKSArICclJzsgDQogICAgICAgICAgICAgICAgY2hhbmdlRWwuY2xhc3NOYW1lID0gY2ggPj0gMCA/ICd0ZXh0LWVtZXJhbGQtNDAwIHRleHQtc20nIDogJ3RleHQtcm9zZS00MDAgdGV4dC1zbSc7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnN0IHNwb3RQcmljZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcG90UHJpY2UnKTsgDQogICAgICAgICAgICBpZiAoc3BvdFByaWNlICYmICFzcG90UHJpY2UucmVhZE9ubHkpIHNwb3RQcmljZS52YWx1ZSA9IGJhc2VQcmljZS50b0ZpeGVkKDIpOyANCiAgICAgICAgICAgIHVwZGF0ZVNwb3RBdmFpbGFibGUoKTsgDQogICAgICAgICAgICBjb25zdCBiaWRSYXRpbyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMwICsgMzUpOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaWRSYXRpbycpLnRleHRDb250ZW50ID0gJ0IgJyArIGJpZFJhdGlvICsgJyUnOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhc2tSYXRpbycpLnRleHRDb250ZW50ID0gJ1MgJyArICgxMDAgLSBiaWRSYXRpbykgKyAnJSc7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlTGV2ZXJhZ2UodmFsdWUpIHsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGV2ZXJhZ2VWYWx1ZScpLnRleHRDb250ZW50ID0gdmFsdWUgKyAneCc7IA0KICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnV0dXJlc01hcmdpbicpLnZhbHVlKSB8fCAwOyANCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDY2OTI1OyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3NpdGlvblNpemUnKS50ZXh0Q29udGVudCA9IChtYXJnaW4gKiB2YWx1ZSAvIHByaWNlKS50b0ZpeGVkKDQpICsgJyBCVEMnOyANCiAgICAgICAgICAgIGlmIChtYXJnaW4gPiAwKSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGlxdWlkYXRpb25QcmljZScpLnRleHRDb250ZW50ID0gJyQnICsgKHByaWNlICogKDEgLSAwLjkgLyB2YWx1ZSkpLnRvRml4ZWQoMik7IA0KICAgICAgICAgICAgY29uc3QgcHJpY2VFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdXR1cmVzQnRjUHJpY2UnKTsgDQogICAgICAgICAgICBpZiAocHJpY2VFbCkgcHJpY2VFbC50ZXh0Q29udGVudCA9ICckJyArIHByaWNlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7IA0KICAgICAgICAgICAgY29uc3QgY2hhbmdlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnV0dXJlc0J0Y0NoYW5nZScpOyANCiAgICAgICAgICAgIGlmIChjaGFuZ2VFbCAmJiBjcnlwdG9EYXRhW3NlbGVjdGVkQ3J5cHRvXSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBjaCA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRDcnlwdG9dLmNoYW5nZTsgDQogICAgICAgICAgICAgICAgY2hhbmdlRWwudGV4dENvbnRlbnQgPSAoY2ggPj0gMCA/ICcrJyA6ICcnKSArIGNoLnRvRml4ZWQoMikgKyAnJSc7IA0KICAgICAgICAgICAgICAgIGNoYW5nZUVsLmNsYXNzTmFtZSA9IGNoID49IDAgPyAndGV4dC1lbWVyYWxkLTQwMCcgOiAndGV4dC1yb3NlLTQwMCc7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9wZW5Qb3NpdGlvbihzaWRlKSB7IA0KICAgICAgICAgICAgY29uc3QgbWFyZ2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Z1dHVyZXNNYXJnaW4nKS52YWx1ZSwgbGV2ZXJhZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGV2ZXJhZ2VTbGlkZXInKS52YWx1ZTsgDQogICAgICAgICAgICBpZiAoIW1hcmdpbiB8fCBtYXJnaW4gPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBtYXJnaW4gYW1vdW50JywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gY3J5cHRvRGF0YVtzZWxlY3RlZENyeXB0b10/LnByaWNlIHx8IDY2OTI1OyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ3RyYW5zYWN0aW9ucycsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgdHlwZTogJ3RyYWRlJywgZnJvbUN1cnJlbmN5OiAndXNkdCcsIHRvQ3VycmVuY3k6IHNlbGVjdGVkQ3J5cHRvLCBhbW91bnQ6IHBhcnNlRmxvYXQobWFyZ2luKSAqIHBhcnNlSW50KGxldmVyYWdlKSAvIHByaWNlLCBzdGF0dXM6ICdjb21wbGV0ZWQnIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydChgJHtzaWRlLnRvVXBwZXJDYXNlKCl9IHBvc2l0aW9uIG9wZW5lZCFgLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3BlblBvc2l0aW9ucycpLmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJwLTMgcm91bmRlZC14bCBtYi0yICR7c2lkZSA9PT0gJ2xvbmcnID8gJ3Bvc2l0aW9uLWxvbmcnIDogJ3Bvc2l0aW9uLXNob3J0J30iPjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIj48c3BhbiBjbGFzcz0iZm9udC1ib2xkIj5CVEMvVVNEVCAke3NpZGUudG9VcHBlckNhc2UoKX08L3NwYW4+PHNwYW4+JHtsZXZlcmFnZX14PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20gbXQtMSI+PHNwYW4+U2l6ZTogJHsobWFyZ2luICogbGV2ZXJhZ2UgLyBwcmljZSkudG9GaXhlZCg0KX0gQlRDPC9zcGFuPjxzcGFuPk1hcmdpbjogJCR7bWFyZ2lufTwvc3Bhbj48L2Rpdj48L2Rpdj5gOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIG9wZW4gcG9zaXRpb246ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRXYWxsZXRzKCkgeyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhdXRoL21lJyksIHdhbGxldHMgPSBkYXRhLnVzZXI/LndhbGxldHMgfHwge30sIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3YWxsZXRMaXN0Jyk7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgbGV0IHRvdGFsQmFsYW5jZSA9IDA7IA0KICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHdhbGxldHMpLmZvckVhY2goKFtjdXJyZW5jeSwgd2FsbGV0XSkgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV0gfHwgeyBuYW1lOiBjdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBzeW1ib2w6IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCksIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE1cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPuKCrjwvc3Bhbj4nLCBjb2xvcjogJ3VzZHQnIH0sIHVzZFZhbHVlID0gKHdhbGxldC5iYWxhbmNlIHx8IDApICogKGNyeXB0by5wcmljZSB8fCAxKTsgDQogICAgICAgICAgICAgICAgICAgIHRvdGFsQmFsYW5jZSArPSB1c2RWYWx1ZTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdnbGFzcyByb3VuZGVkLXhsIHAtNCc7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uICR7Y3J5cHRvLmNvbG9yfSB0ZXh0LWxnIj4ke2NyeXB0by5pY29ufTwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtYm9sZCB0ZXh0LXdoaXRlIj4ke2NyeXB0by5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIHRleHQtZ3JheS00MDAiPiR7d2FsbGV0LmJhbGFuY2U/LnRvRml4ZWQoNCkgfHwgJzAuMDAwMCd9PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LWJvbGQgdGV4dC13aGl0ZSI+JCR7dXNkVmFsdWUudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JHtjcnlwdG8ubmFtZX08L3A+PC9kaXY+PC9kaXY+YDsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dhbGxldFRvdGFsQmFsYW5jZScpLnRleHRDb250ZW50ID0gJyQnICsgdG90YWxCYWxhbmNlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgd2FsbGV0czonLCBlcnJvcik7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBzdWJtaXREZXBvc2l0KCkgeyANCiAgICAgICAgICAgIHZhciBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0Q3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICB2YXIgYW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEFtb3VudCcpLnZhbHVlKTsgDQogICAgICAgICAgICB2YXIgdHhIYXNoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRUeEhhc2gnKS52YWx1ZS50cmltKCk7IA0KICAgICAgICAgICAgdmFyIGZyb21BZGRyZXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRGcm9tQWRkcmVzcycpLnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICB2YXIgbWV0aG9kRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdE1ldGhvZCcpOw0KICAgICAgICAgICAgdmFyIG1ldGhvZCA9IG1ldGhvZEVsID8gbWV0aG9kRWwudmFsdWUgOiAnY3J5cHRvJzsNCiAgICAgICAgICAgIHZhciBwYXlwYWxFbWFpbCA9ICcnOw0KICAgICAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ3BheXBhbCcpIHsNCiAgICAgICAgICAgICAgICB2YXIgZW1haWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsRW1haWwnKTsNCiAgICAgICAgICAgICAgICBwYXlwYWxFbWFpbCA9IGVtYWlsRWwgPyBlbWFpbEVsLnZhbHVlLnRyaW0oKSA6ICcnOw0KICAgICAgICAgICAgICAgIGlmICghcGF5cGFsRW1haWwpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgeW91ciBQYXlQYWwgZW1haWwnLCAnZXJyb3InKTsgcmV0dXJuOyB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPD0gMCkgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGFtb3VudCcsICdlcnJvcicpOyByZXR1cm47IH0gDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICB2YXIgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV07DQogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRQcmljZSA9IGNyeXB0byA/IChjcnlwdG8ucHJpY2UgfHwgMCkgOiAwOw0KICAgICAgICAgICAgICAgIHZhciBib2R5ID0geyBjdXJyZW5jeTogY3VycmVuY3ksIGFtb3VudDogYW1vdW50LCBjdXJyZW50UHJpY2U6IGN1cnJlbnRQcmljZSwgdHhIYXNoOiB0eEhhc2ggfHwgbnVsbCwgZnJvbUFkZHJlc3M6IGZyb21BZGRyZXNzIHx8IG51bGwgfTsNCiAgICAgICAgICAgICAgICBpZiAobWV0aG9kID09PSAncGF5cGFsJykgeyBib2R5Lm1ldGhvZCA9ICdwYXlwYWwnOyBib2R5LnBheXBhbEVtYWlsID0gcGF5cGFsRW1haWw7IH0NCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdkZXBvc2l0cycsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IGJvZHkgfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRGVwb3NpdCBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5ISBJdCB3aWxsIGJlIHJldmlld2VkIHNob3J0bHkuJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRBbW91bnQnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFR4SGFzaCcpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0RnJvbUFkZHJlc3MnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICB2YXIgcGF5cGFsRW1haWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsRW1haWwnKTsNCiAgICAgICAgICAgICAgICBpZiAocGF5cGFsRW1haWxFbCkgcGF5cGFsRW1haWxFbC52YWx1ZSA9ICcnOw0KICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0Jyk7DQogICAgICAgICAgICAgICAgaWYgKHBheXBhbEV4cGlyeVRpbWVyKSB7IGNsZWFySW50ZXJ2YWwocGF5cGFsRXhwaXJ5VGltZXIpOyBwYXlwYWxFeHBpcnlUaW1lciA9IG51bGw7IH0NCiAgICAgICAgICAgICAgICBjbG9zZU1vZGFsKCdkZXBvc2l0TW9kYWwnKTsgDQogICAgICAgICAgICAgICAgbG9hZE15RGVwb3NpdHMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyANCiAgICAgICAgICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2VEYXRhICYmIGVycm9yLnJlc3BvbnNlRGF0YS5leHBpcmVkKSB7DQogICAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0Jyk7DQogICAgICAgICAgICAgICAgICAgIGlmIChwYXlwYWxFeHBpcnlUaW1lcikgeyBjbGVhckludGVydmFsKHBheXBhbEV4cGlyeVRpbWVyKTsgcGF5cGFsRXhwaXJ5VGltZXIgPSBudWxsOyB9DQogICAgICAgICAgICAgICAgICAgIHNob3dBbGVydCgnWW91ciBQYXlQYWwgZGVwb3NpdCB3aW5kb3cgaGFzIGV4cGlyZWQuIFBsZWFzZSBjbG9zZSBhbmQgcmVvcGVuIHRoZSBkZXBvc2l0IG1vZGFsIHRvIGdldCBmcmVzaCBkZXRhaWxzLicsICdlcnJvcicpOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRmFpbGVkIHRvIHN1Ym1pdCBkZXBvc2l0OiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkTXlEZXBvc2l0cygpIHsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnZGVwb3NpdHMnKTsgDQogICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ215RGVwb3NpdHNMaXN0Jyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRCYWRnZScpOyANCiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRlcG9zaXRzID0gZGF0YS5kZXBvc2l0cyB8fCBbXTsgDQogICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdDb3VudCA9IDA7IA0KICAgICAgICAgICAgICAgIGlmIChkZXBvc2l0cy5sZW5ndGggPT09IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC00IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAgdGV4dC1zbSI+PHA+Tm8gZGVwb3NpdCBoaXN0b3J5PC9wPjwvZGl2Pic7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoYmFkZ2UpIGJhZGdlLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOyANCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGRlcG9zaXRzLmZvckVhY2goZCA9PiB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoZC5zdGF0dXMgPT09ICdwZW5kaW5nJykgcGVuZGluZ0NvdW50Kys7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW2QuY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBkLmN1cnJlbmN5LnRvVXBwZXJDYXNlKCksIGNvbG9yOiAndXNkdCcsIGljb246ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjE1cHg7IGZvbnQtd2VpZ2h0OjcwMDsiPuKCrjwvc3Bhbj4nIH07IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IGQuc3RhdHVzID09PSAncGVuZGluZycgPyAndGV4dC15ZWxsb3ctNDAwJyA6IChkLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6ICd0ZXh0LXJlZC00MDAnKTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0JnID0gZC5zdGF0dXMgPT09ICdwZW5kaW5nJyA/ICdiZy15ZWxsb3ctNTAwLzEwJyA6IChkLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/ICdiZy1lbWVyYWxkLTUwMC8xMCcgOiAnYmctcmVkLTUwMC8xMCcpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGQuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSBgZ2xhc3Mgcm91bmRlZC14bCBwLTMgJHtzdGF0dXNCZ31gOyANCiAgICAgICAgICAgICAgICAgICAgdmFyIG1ldGhvZExhYmVsID0gZC5tZXRob2QgPT09ICdwYXlwYWwnID8gJzxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLWJsdWUtNTAwLzIwIHRleHQtYmx1ZS00MDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIG1sLTEiPlBheVBhbDwvc3Bhbj4nIDogJyc7DQogICAgICAgICAgICAgICAgICAgIHZhciBwYXlwYWxJbmZvID0gZC5tZXRob2QgPT09ICdwYXlwYWwnICYmIGQucGF5cGFsRW1haWwgPyBgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ibHVlLTQwMCBtdC0xIj5QYXlQYWw6ICR7ZC5wYXlwYWxFbWFpbH08L3A+YCA6ICcnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbm90ZUluZm8gPSBkLmFkbWluTm90ZSA/IGA8cCBjbGFzcz0idGV4dC14cyB0ZXh0LWVtZXJhbGQtNDAwIG10LTEiPjxpIGNsYXNzPSJmYXMgZmEtY29tbWVudC1hbHQgbXItMSI+PC9pPiR7ZC5hZG1pbk5vdGV9PC9wPmAgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2NyeXB0by5jb2xvcn0gdGV4dC1zbSI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdGV4dC1zbSI+JHtOdW1iZXIoZC5hbW91bnQpLnRvTG9jYWxlU3RyaW5nKCl9ICR7Y3J5cHRvLnN5bWJvbH0ke21ldGhvZExhYmVsfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2RhdGV9PC9wPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbWVkaXVtICR7c3RhdHVzQ29sb3J9IGNhcGl0YWxpemUiPiR7ZC5zdGF0dXN9PC9zcGFuPjwvZGl2PiR7ZC50eEhhc2ggPyBgPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCBtdC0xIHRydW5jYXRlIj5UWDogJHtkLnR4SGFzaH08L3A+YCA6ICcnfSR7cGF5cGFsSW5mb30ke25vdGVJbmZvfWA7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsgDQogICAgICAgICAgICAgICAgfSk7IA0KICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgeyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdDb3VudCA+IDApIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBwZW5kaW5nQ291bnQ7IGJhZGdlLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGRlcG9zaXRzOicsIGVycm9yKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pbkRlcG9zaXRzKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi9kZXBvc2l0cycpOyANCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5EZXBvc2l0c0NvbnRhaW5lcicpOyANCiAgICAgICAgICAgICAgICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbkRlcG9zaXRCYWRnZScpOyANCiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRlcG9zaXRzID0gZGF0YS5kZXBvc2l0cyB8fCBbXTsgDQogICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdDb3VudCA9IDA7IA0KICAgICAgICAgICAgICAgIGlmIChkZXBvc2l0cy5sZW5ndGggPT09IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2stY2lyY2xlIHRleHQtNHhsIG1iLTMgdGV4dC1lbWVyYWxkLTUwMCI+PC9pPjxwPk5vIGRlcG9zaXQgcmVxdWVzdHMgZm91bmQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPGRpdiBjbGFzcz0ic3BhY2UteS0zIj4nOyANCiAgICAgICAgICAgICAgICBkZXBvc2l0cy5mb3JFYWNoKGQgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gZC5zdGF0dXMgPT09ICdwZW5kaW5nJzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChpc1BlbmRpbmcpIHBlbmRpbmdDb3VudCsrOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtkLmN1cnJlbmN5XSB8fCB7IHN5bWJvbDogZC5jdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBjb2xvcjogJ3VzZHQnLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JyB9OyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGQuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IGlzUGVuZGluZyA/ICd0ZXh0LXllbGxvdy00MDAnIDogKGQuc3RhdHVzID09PSAnYXBwcm92ZWQnID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtcmVkLTQwMCcpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQmcgPSBpc1BlbmRpbmcgPyAnYmcteWVsbG93LTUwMC8xMCBib3JkZXIteWVsbG93LTUwMC8yMCcgOiAoZC5zdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAnYmctZW1lcmFsZC01MDAvMTAgYm9yZGVyLWVtZXJhbGQtNTAwLzIwJyA6ICdiZy1yZWQtNTAwLzEwIGJvcmRlci1yZWQtNTAwLzIwJyk7IA0KICAgICAgICAgICAgICAgICAgICB2YXIgbWV0aG9kQmFkZ2UgPSBkLm1ldGhvZCA9PT0gJ3BheXBhbCcgPyAnIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLWJsdWUtNTAwLzIwIHRleHQtYmx1ZS00MDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIj5QYXlQYWw8L3NwYW4+JyA6ICcnOw0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtNCBib3JkZXIgJHtzdGF0dXNCZ30iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2NyeXB0by5jb2xvcn0gdGV4dC1zbSI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7TnVtYmVyKGQuYW1vdW50KS50b0xvY2FsZVN0cmluZygpfSAke2NyeXB0by5zeW1ib2x9JHttZXRob2RCYWRnZX08L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JHtkLnVzZXJOYW1lIHx8IGQudXNlckVtYWlsfTwvcD48L2Rpdj48L2Rpdj48c3BhbiBjbGFzcz0idGV4dC14cyBmb250LW1lZGl1bSAke3N0YXR1c0NvbG9yfSBweC0yIHB5LTEgcm91bmRlZC1sZyAke2lzUGVuZGluZyA/ICdiZy15ZWxsb3ctNTAwLzEwJyA6IChkLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyA/ICdiZy1lbWVyYWxkLTUwMC8xMCcgOiAnYmctcmVkLTUwMC8xMCcpfSI+JHtkLnN0YXR1cy50b1VwcGVyQ2FzZSgpfTwvc3Bhbj48L2Rpdj4ke2QubWV0aG9kID09PSAncGF5cGFsJyAmJiBkLnBheXBhbEVtYWlsID8gYDxkaXYgY2xhc3M9ImJnLWJsdWUtNTAwLzEwIHJvdW5kZWQtbGcgcC0yIG1iLTIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtYmx1ZS00MDAgbWItMSI+UGF5UGFsIEVtYWlsPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtd2hpdGUiPiR7ZC5wYXlwYWxFbWFpbH08L3A+PC9kaXY+YCA6ICcnfSR7ZC50eEhhc2ggPyBgPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgbWItMiI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5UcmFuc2FjdGlvbiBIYXNoPC9wPjxjb2RlIGNsYXNzPSJ0ZXh0LXhzIHRleHQtd2hpdGUgYnJlYWstYWxsIj4ke2QudHhIYXNofTwvY29kZT48L2Rpdj5gIDogJyd9JHtkLmZyb21BZGRyZXNzID8gYDxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMiI+RnJvbTogJHtkLmZyb21BZGRyZXNzfTwvcD5gIDogJyd9PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0yIj48c3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyIG1yLTEiPjwvaT4ke2RhdGV9PC9zcGFuPjxzcGFuPklEOiAjJHtkLmlkfTwvc3Bhbj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGVuZGluZykgeyANCiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYDxkaXYgY2xhc3M9ImZsZXggZ2FwLTIiPjxidXR0b24gb25jbGljaz0iYXBwcm92ZURlcG9zaXQoJyR7ZC5pZH0nKSIgY2xhc3M9ImZsZXgtMSBweS0yIGJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNzAwIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LXNlbWlib2xkIHJvdW5kZWQtbGciPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2sgbXItMSI+PC9pPkFwcHJvdmUgJiBDcmVkaXQ8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InJlamVjdERlcG9zaXQoJyR7ZC5pZH0nKSIgY2xhc3M9ImZsZXgtMSBweS0yIGJnLXJvc2UtNjAwIGhvdmVyOmJnLXJvc2UtNzAwIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LXNlbWlib2xkIHJvdW5kZWQtbGciPjxpIGNsYXNzPSJmYXMgZmEtdGltZXMgbXItMSI+PC9pPlJlamVjdDwvYnV0dG9uPjwvZGl2PmA7IA0KICAgICAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8L2Rpdj4nOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7IA0KICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgeyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdDb3VudCA+IDApIHsgYmFkZ2UudGV4dENvbnRlbnQgPSBwZW5kaW5nQ291bnQ7IGJhZGdlLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOyB9IA0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGFkbWluIGRlcG9zaXRzOicsIGVycm9yKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluRGVwb3NpdHNDb250YWluZXInKS5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPkZhaWxlZCB0byBsb2FkIGRlcG9zaXRzPC9wPjwvZGl2Pic7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBhcHByb3ZlRGVwb3NpdChpZCkgeyANCiAgICAgICAgICAgIHNob3dQcm9tcHRNb2RhbCgnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoZSBjdXN0b21lciAob3B0aW9uYWwpOicsICcnLCBmdW5jdGlvbihub3RlKSB7IGRvQXBwcm92ZURlcG9zaXQoaWQsIG5vdGUpOyB9LCBmdW5jdGlvbigpIHt9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb0FwcHJvdmVEZXBvc2l0KGlkLCBub3RlKSB7DQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9kZXBvc2l0cy9hcHByb3ZlJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBkZXBvc2l0SWQ6IGlkLCBub3RlOiBub3RlIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRGVwb3NpdCBhcHByb3ZlZCBhbmQgYmFsYW5jZSBjcmVkaXRlZCEnLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5EZXBvc2l0cygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGFwcHJvdmUgZGVwb3NpdDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gcmVqZWN0RGVwb3NpdChpZCkgeyANCiAgICAgICAgICAgIHNob3dQcm9tcHRNb2RhbCgnUmVqZWN0aW9uIHJlYXNvbiAob3B0aW9uYWwpOicsICcnLCBmdW5jdGlvbihub3RlKSB7IGRvUmVqZWN0RGVwb3NpdChpZCwgbm90ZSk7IH0sIGZ1bmN0aW9uKCkge30pOw0KICAgICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvUmVqZWN0RGVwb3NpdChpZCwgbm90ZSkgew0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vZGVwb3NpdHMvcmVqZWN0JywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBkZXBvc2l0SWQ6IGlkLCBub3RlOiBub3RlIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnRGVwb3NpdCByZWplY3RlZC4nLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5EZXBvc2l0cygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIHJlamVjdCBkZXBvc2l0OiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzaG93QWRtaW5OYXYoKSB7IGNvbnN0IG5hdkFkbWluID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdkFkbWluJyk7IGlmIChuYXZBZG1pbiAmJiBpc0FkbWluKSBuYXZBZG1pbi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pbkN1c3RvbWVycygpIHsgDQogICAgICAgICAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnYWRtaW4vdXNlcnMnKSwgdXNlcnMgPSBkYXRhLnVzZXJzIHx8IFtdLCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5DdXN0b21lckxpc3QnKTsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyANCiAgICAgICAgICAgICAgICBpZiAodXNlcnMubGVuZ3RoID09PSAwKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyBjdXN0b21lcnMgZm91bmQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIHJldHVybjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICB1c2Vycy5mb3JFYWNoKHVzZXIgPT4geyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIucm9sZSA9PT0gJ2FkbWluJykgcmV0dXJuOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IA0KICAgICAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gJ3AtNCBib3JkZXItYiBib3JkZXItZ3JheS04MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuJzsgDQogICAgICAgICAgICAgICAgICAgIGxldCB1c2VyVG90YWwgPSAwOyANCiAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXIud2FsbGV0cykgT2JqZWN0LmVudHJpZXModXNlci53YWxsZXRzKS5mb3JFYWNoKChbYywgd10pID0+IHsgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjXTsgdXNlclRvdGFsICs9ICh3LmJhbGFuY2UgfHwgMCkgKiAoY3J5cHRvID8gY3J5cHRvLnByaWNlIDogMSk7IH0pOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0idy0xMCBoLTEwIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZ3JheS02MDAgdG8tZ3JheS03MDAgcm91bmRlZC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSBmb250LWJvbGQiPiR7dXNlci5uYW1lPy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSB8fCAnVSd9PC9zcGFuPjwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JHt1c2VyLm5hbWUgfHwgJ1Vua25vd24nfTwvcD48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWdyYXktNDAwIj4ke3VzZXIuZW1haWx9PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRleHQtcmlnaHQiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiQke3VzZXJUb3RhbC50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7IG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMiwgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyIH0pfTwvcD48ZGl2IGNsYXNzPSJmbGV4IGdhcC0yIGp1c3RpZnktZW5kIG10LTEiPjxidXR0b24gb25jbGljaz0icHJlZmlsbFRyYW5zZmVyRW1haWwoJyR7dXNlci5lbWFpbH0nKSIgY2xhc3M9InRleHQteHMgdGV4dC1wdXJwbGUtNDAwIGhvdmVyOnRleHQtcHVycGxlLTMwMCI+PGkgY2xhc3M9ImZhcyBmYS1wYXBlci1wbGFuZSBtci0xIj48L2k+U2VuZCBGdW5kczwvYnV0dG9uPjxidXR0b24gb25jbGljaz0ibG9naW5Bc0N1c3RvbWVyKCR7dXNlci5pZH0pIiBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTQwMCBob3Zlcjp0ZXh0LWFtYmVyLTMwMCI+PGkgY2xhc3M9ImZhcyBmYS1zaWduLWluLWFsdCBtci0xIj48L2k+TG9naW4gQXM8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9ImRlbGV0ZUN1c3RvbWVyKCR7dXNlci5pZH0sICcke3VzZXIubmFtZT8ucmVwbGFjZSgvJy9nLCAiXCciKSB8fCAnQ3VzdG9tZXInfScpIiBjbGFzcz0idGV4dC14cyB0ZXh0LXJvc2UtNDAwIGhvdmVyOnRleHQtcm9zZS0zMDAiPjxpIGNsYXNzPSJmYXMgZmEtdHJhc2ggbXItMSI+PC9pPkRlbGV0ZTwvYnV0dG9uPjwvZGl2PjwvZGl2PmA7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGl2KTsgDQogICAgICAgICAgICAgICAgfSk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgY3VzdG9tZXJzOicsIGVycm9yKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQ3VzdG9tZXJMaXN0JykuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5GYWlsZWQgdG8gbG9hZCBjdXN0b21lcnM8L3A+PC9kaXY+JzsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pbldpdGhkcmF3YWxzKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi93aXRoZHJhd2FscycpLCB3aXRoZHJhd2FscyA9IGRhdGEud2l0aGRyYXdhbHMgfHwgW10sIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbldpdGhkcmF3YWxzQ29udGFpbmVyJyk7IA0KICAgICAgICAgICAgICAgIGxldCBwZW5kaW5nQ291bnQgPSAwLCBhcHByb3ZlZENvdW50ID0gMDsgDQogICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjsgDQogICAgICAgICAgICAgICAgaWYgKHdpdGhkcmF3YWxzLmxlbmd0aCA9PT0gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJwLTggdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjay1jaXJjbGUgdGV4dC00eGwgbWItMyB0ZXh0LWVtZXJhbGQtNTAwIj48L2k+PHA+Tm8gd2l0aGRyYXdhbCByZXF1ZXN0cyBmb3VuZDwvcD48L2Rpdj4nOyANCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUGVuZGluZ0NvdW50JykudGV4dENvbnRlbnQgPSAnMCc7IA0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5BcHByb3ZlZENvdW50JykudGV4dENvbnRlbnQgPSAnMCc7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPGRpdiBjbGFzcz0ic3BhY2UteS0zIj4nOyANCiAgICAgICAgICAgICAgICB3aXRoZHJhd2Fscy5mb3JFYWNoKHcgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gdy5zdGF0dXMgPT09ICdwZW5kaW5nJzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChpc1BlbmRpbmcpIHBlbmRpbmdDb3VudCsrOyBlbHNlIGFwcHJvdmVkQ291bnQrKzsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbdy5mcm9tQ3VycmVuY3ldIHx8IHsgc3ltYm9sOiB3LmZyb21DdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBjb2xvcjogJ3VzZHQnLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JyB9OyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHcuY3JlYXRlZEF0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJywgeyBtb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcgfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBbW91bnQgPSBOdW1iZXIody5hbW91bnQpLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDggfSk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1JlamVjdGVkID0gdy5zdGF0dXMgPT09ICdyZWplY3RlZCcgfHwgdy5zdGF0dXMgPT09ICdjYW5jZWxsZWQnOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBpc1BlbmRpbmcgPyAndGV4dC15ZWxsb3ctNDAwJyA6ICh3LnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgPyAndGV4dC1lbWVyYWxkLTQwMCcgOiAoaXNSZWplY3RlZCA/ICd0ZXh0LXJvc2UtNDAwJyA6ICd0ZXh0LWdyYXktNDAwJykpOyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQmcgPSBpc1BlbmRpbmcgPyAnYmcteWVsbG93LTUwMC8xMCBib3JkZXIteWVsbG93LTUwMC8yMCcgOiAody5zdGF0dXMgPT09ICdjb21wbGV0ZWQnID8gJ2JnLWVtZXJhbGQtNTAwLzEwIGJvcmRlci1lbWVyYWxkLTUwMC8yMCcgOiAoaXNSZWplY3RlZCA/ICdiZy1yb3NlLTUwMC8xMCBib3JkZXItcm9zZS01MDAvMjAnIDogJ2JnLWdyYXktNTAwLzEwIGJvcmRlci1ncmF5LTUwMC8yMCcpKTsgDQogICAgICAgICAgICAgICAgICAgIHZhciBpc1dpcmUgPSB3Lm1ldGhvZCA9PT0gJ3dpcmUnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbWV0aG9kQmFkZ2UgPSBpc1dpcmUgPyAnIDxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGJnLWFtYmVyLTUwMC8yMCB0ZXh0LWFtYmVyLTQwMCBweC0xLjUgcHktMC41IHJvdW5kZWQiPldpcmU8L3NwYW4+JyA6ICcgPHNwYW4gY2xhc3M9InRleHQteHMgYmctcHVycGxlLTUwMC8yMCB0ZXh0LXB1cnBsZS00MDAgcHgtMS41IHB5LTAuNSByb3VuZGVkIj5DcnlwdG88L3NwYW4+JzsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRldGFpbEJsb2NrID0gJyc7DQogICAgICAgICAgICAgICAgICAgIGlmIChpc1dpcmUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbEJsb2NrID0gJzxkaXYgY2xhc3M9ImJnLWFtYmVyLTUwMC8xMCBib3JkZXIgYm9yZGVyLWFtYmVyLTUwMC8yMCByb3VuZGVkLWxnIHAtMyBtYi0zIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWFtYmVyLTQwMCBmb250LXNlbWlib2xkIG1iLTIiPjxpIGNsYXNzPSJmYXMgZmEtdW5pdmVyc2l0eSBtci0xIj48L2k+V2lyZSBUcmFuc2ZlciBEZXRhaWxzPC9wPjxkaXYgY2xhc3M9ImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTIgdGV4dC14cyI+PGRpdj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+QmFuazwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LmJhbmtOYW1lIHx8ICctJykgKyAnPC9wPjwvZGl2PjxkaXY+PHNwYW4gY2xhc3M9InRleHQtZ3JheS01MDAiPkFjY291bnQgSG9sZGVyPC9zcGFuPjxwIGNsYXNzPSJ0ZXh0LXdoaXRlIj4nICsgKHcuYWNjb3VudEhvbGRlciB8fCAnLScpICsgJzwvcD48L2Rpdj48ZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNTAwIj5BY2NvdW50IE51bWJlcjwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LmFjY291bnROdW1iZXIgfHwgJy0nKSArICc8L3A+PC9kaXY+PGRpdj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTUwMCI+Um91dGluZzwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LnJvdXRpbmdOdW1iZXIgfHwgJy0nKSArICc8L3A+PC9kaXY+PGRpdiBjbGFzcz0iY29sLXNwYW4tMiI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS01MDAiPlNXSUZUL0JJQzwvc3Bhbj48cCBjbGFzcz0idGV4dC13aGl0ZSI+JyArICh3LnN3aWZ0Q29kZSB8fCAnLScpICsgJzwvcD48L2Rpdj48L2Rpdj48L2Rpdj4nOw0KICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsQmxvY2sgPSAnPGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgbWItMyI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCBtYi0xIj5XaXRoZHJhd2FsIEFkZHJlc3M8L3A+PGNvZGUgY2xhc3M9InRleHQteHMgdGV4dC13aGl0ZSBicmVhay1hbGwiPicgKyAody53aXRoZHJhd2FsQWRkcmVzcyB8fCAnLScpICsgJzwvY29kZT48L2Rpdj4nOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9ImdsYXNzIHJvdW5kZWQteGwgcC00IGJvcmRlciAnICsgc3RhdHVzQmcgKyAnIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBtYi0zIj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyI+PGRpdiBjbGFzcz0iY3J5cHRvLWljb24gJyArIGNyeXB0by5jb2xvciArICcgdGV4dC1zbSI+JyArIGNyeXB0by5pY29uICsgJzwvZGl2PjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI+JyArIGZvcm1hdHRlZEFtb3VudCArICcgJyArIGNyeXB0by5zeW1ib2wgKyBtZXRob2RCYWRnZSArICc8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+JyArICh3LnVzZXJOYW1lIHx8IHcudXNlckVtYWlsKSArICc8L3A+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1tZWRpdW0gJyArIHN0YXR1c0NvbG9yICsgJyBweC0yIHB5LTEgcm91bmRlZC1sZyAnICsgKGlzUGVuZGluZyA/ICdiZy15ZWxsb3ctNTAwLzEwJyA6ICh3LnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLWdyYXktNTAwLzEwJykpICsgJyI+JyArIChpc1JlamVjdGVkID8gJ1JFSkVDVEVEJyA6IHcuc3RhdHVzLnRvVXBwZXJDYXNlKCkpICsgJzwvc3Bhbj48L2Rpdj4nICsgZGV0YWlsQmxvY2sgKyAnPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0zIj48c3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyIG1yLTEiPjwvaT4nICsgZGF0ZSArICc8L3NwYW4+PHNwYW4+SUQ6ICMnICsgdy5faWQgKyAnPC9zcGFuPjwvZGl2Pic7IA0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNQZW5kaW5nKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGJ1dHRvbiBvbmNsaWNrPSJhcHByb3ZlV2l0aGRyYXdhbCgnJHt3Ll9pZH0nKSIgY2xhc3M9ImZsZXgtMSBweS0yIGJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNzAwIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LXNlbWlib2xkIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnMiPjxpIGNsYXNzPSJmYXMgZmEtY2hlY2sgbXItMSI+PC9pPkFwcHJvdmU8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InJlamVjdFdpdGhkcmF3YWwoJyR7dy5faWR9JykiIGNsYXNzPSJmbGV4LTEgcHktMiBiZy1yb3NlLTYwMCBob3ZlcjpiZy1yb3NlLTcwMCB0ZXh0LXdoaXRlIHRleHQtc20gZm9udC1zZW1pYm9sZCByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIj48aSBjbGFzcz0iZmFzIGZhLXRpbWVzIG1yLTEiPjwvaT5SZWplY3Q8L2J1dHRvbj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsgDQogICAgICAgICAgICAgICAgfSk7IA0KICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBodG1sOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRtaW5QZW5kaW5nQ291bnQnKS50ZXh0Q29udGVudCA9IHBlbmRpbmdDb3VudDsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluQXBwcm92ZWRDb3VudCcpLnRleHRDb250ZW50ID0gYXBwcm92ZWRDb3VudDsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCB3aXRoZHJhd2FsczonLCBlcnJvcik7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pbldpdGhkcmF3YWxzQ29udGFpbmVyJykuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtOCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5GYWlsZWQgdG8gbG9hZCB3aXRoZHJhd2FsczwvcD48L2Rpdj4nOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gYXBwcm92ZVdpdGhkcmF3YWwoaWQpIHsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi93aXRoZHJhd2Fscy9hcHByb3ZlJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyB3aXRoZHJhd2FsSWQ6IGlkIH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnV2l0aGRyYXdhbCBhcHByb3ZlZCBzdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgbG9hZEFkbWluV2l0aGRyYXdhbHMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZCB0byBhcHByb3ZlOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiByZWplY3RXaXRoZHJhd2FsKGlkKSB7IA0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQXJlIHlvdSBzdXJlPyBGdW5kcyB3aWxsIGJlIHJlZnVuZGVkIHRvIHRoZSB1c2VyLicsIGZ1bmN0aW9uKCkgeyBkb1JlamVjdFdpdGhkcmF3YWwoaWQpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb1JlamVjdFdpdGhkcmF3YWwoaWQpIHsNCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ2FkbWluL3dpdGhkcmF3YWxzL3JlamVjdCcsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgd2l0aGRyYXdhbElkOiBpZCB9IH0pOyANCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1dpdGhkcmF3YWwgcmVqZWN0ZWQgYW5kIGZ1bmRzIHJlZnVuZGVkLicsICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGxvYWRBZG1pbldpdGhkcmF3YWxzKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdGYWlsZWQgdG8gcmVqZWN0OiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBsb2FkQWRtaW5Qcm9maXRXaXRoZHJhd2FscygpIHsgDQogICAgICAgICAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcHJvZml0LXdpdGhkcmF3YWxzJyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblByb2ZpdFdpdGhkcmF3YWxzQ29udGFpbmVyJyk7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUHJvZml0V2l0aGRyYXdhbEJhZGdlJyk7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgY29uc3Qgd2l0aGRyYXdhbHMgPSBkYXRhLndpdGhkcmF3YWxzIHx8IFtdOyANCiAgICAgICAgICAgICAgICBsZXQgcGVuZGluZ0NvdW50ID0gMDsgDQogICAgICAgICAgICAgICAgaWYgKHdpdGhkcmF3YWxzLmxlbmd0aCA9PT0gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJwLTggdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjay1jaXJjbGUgdGV4dC00eGwgbWItMyB0ZXh0LWVtZXJhbGQtNTAwIj48L2k+PHA+Tm8gcHJvZml0IHdpdGhkcmF3YWwgcmVxdWVzdHM8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChiYWRnZSkgYmFkZ2UuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPGRpdiBjbGFzcz0ic3BhY2UteS0zIj4nOyANCiAgICAgICAgICAgICAgICB3aXRoZHJhd2Fscy5mb3JFYWNoKHcgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNQZW5kaW5nID0gdy5zdGF0dXMgPT09ICdwZW5kaW5nJzsgDQogICAgICAgICAgICAgICAgICAgIGlmIChpc1BlbmRpbmcpIHBlbmRpbmdDb3VudCsrOyANCiAgICAgICAgICAgICAgICAgICAgdmFyIHdDdXJyZW5jeSA9IHcuY3VycmVuY3kgfHwgdy5mcm9tQ3VycmVuY3kgfHwgJ3VzZHQnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjcnlwdG8gPSBjcnlwdG9EYXRhW3dDdXJyZW5jeV0gfHwgeyBzeW1ib2w6IHdDdXJyZW5jeS50b1VwcGVyQ2FzZSgpLCBjb2xvcjogJ3VzZHQnLCBpY29uOiAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxNXB4OyBmb250LXdlaWdodDo3MDA7Ij7igq48L3NwYW4+JyB9Ow0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUody5jcmVhdGVkQXQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IG1vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JyB9KTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNEb25lID0gdy5zdGF0dXMgPT09ICdhcHByb3ZlZCcgfHwgdy5zdGF0dXMgPT09ICdjb21wbGV0ZWQnOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNDb2xvciA9IGlzUGVuZGluZyA/ICd0ZXh0LWFtYmVyLTQwMCcgOiAoaXNEb25lID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtcm9zZS00MDAnKTsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQmcgPSBpc1BlbmRpbmcgPyAnYmctYW1iZXItNTAwLzEwIGJvcmRlci1hbWJlci01MDAvMjAnIDogKGlzRG9uZSA/ICdiZy1lbWVyYWxkLTUwMC8xMCBib3JkZXItZW1lcmFsZC01MDAvMjAnIDogJ2JnLXJvc2UtNTAwLzEwIGJvcmRlci1yb3NlLTUwMC8yMCcpOw0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtNCBib3JkZXIgJHtzdGF0dXNCZ30iPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIG1iLTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj48ZGl2IGNsYXNzPSJjcnlwdG8taWNvbiAke2NyeXB0by5jb2xvcn0gdGV4dC1zbSI+JHtjcnlwdG8uaWNvbn08L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPiR7Zm9ybWF0Q2xlYW4ody5hbW91bnQsIDQpfSAke2NyeXB0by5zeW1ib2x9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPiR7dy51c2VyTmFtZSB8fCB3LnVzZXJFbWFpbH08L3A+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InRleHQteHMgZm9udC1tZWRpdW0gJHtzdGF0dXNDb2xvcn0gcHgtMiBweS0xIHJvdW5kZWQtbGcgJHtpc1BlbmRpbmcgPyAnYmctYW1iZXItNTAwLzEwJyA6IChpc0RvbmUgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLXJvc2UtNTAwLzEwJyl9Ij4ke3cuc3RhdHVzLnRvVXBwZXJDYXNlKCl9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQtbGcgcC0yIG1iLTMiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+RGVzY3JpcHRpb248L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC13aGl0ZSI+JHt3LmRlc2NyaXB0aW9uIHx8ICctJ308L3A+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHRleHQteHMgdGV4dC1ncmF5LTUwMCBtYi0zIj48c3Bhbj48aSBjbGFzcz0iZmFzIGZhLWNhbGVuZGFyIG1yLTEiPjwvaT4ke2RhdGV9PC9zcGFuPjxzcGFuPklEOiAjJHt3LmlkfTwvc3Bhbj48L2Rpdj5gOw0KICAgICAgICAgICAgICAgICAgICBpZiAoaXNQZW5kaW5nKSB7IA0KICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0iZmxleCBnYXAtMiI+PGJ1dHRvbiBvbmNsaWNrPSJhcHByb3ZlUHJvZml0V2l0aGRyYXdhbCgnJHt3LmlkfScpIiBjbGFzcz0iZmxleC0xIHB5LTIgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC03MDAgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyI+PGkgY2xhc3M9ImZhcyBmYS1jaGVjayBtci0xIj48L2k+QXBwcm92ZTwvYnV0dG9uPjxidXR0b24gb25jbGljaz0icmVqZWN0UHJvZml0V2l0aGRyYXdhbCgnJHt3LmlkfScpIiBjbGFzcz0iZmxleC0xIHB5LTIgYmctcm9zZS02MDAgaG92ZXI6Ymctcm9zZS03MDAgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWNvbG9ycyI+PGkgY2xhc3M9ImZhcyBmYS10aW1lcyBtci0xIj48L2k+UmVqZWN0PC9idXR0b24+PC9kaXY+YDsgDQogICAgICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7IA0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgICAgICAgICBodG1sICs9ICc8L2Rpdj4nOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gaHRtbDsgDQogICAgICAgICAgICAgICAgaWYgKGJhZGdlKSB7IA0KICAgICAgICAgICAgICAgICAgICBpZiAocGVuZGluZ0NvdW50ID4gMCkgeyBiYWRnZS50ZXh0Q29udGVudCA9IHBlbmRpbmdDb3VudDsgYmFkZ2UuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0gDQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyBiYWRnZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgfSANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgcHJvZml0IHdpdGhkcmF3YWxzOicsIGVycm9yKTsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUHJvZml0V2l0aGRyYXdhbHNDb250YWluZXInKS5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPkZhaWxlZCB0byBsb2FkIHByb2ZpdCB3aXRoZHJhd2FsczwvcD48L2Rpdj4nOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gYXBwcm92ZVByb2ZpdFdpdGhkcmF3YWwoaWQpIHsgDQogICAgICAgICAgICB0cnkgeyANCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9wcm9maXQtd2l0aGRyYXdhbHMvYXBwcm92ZScsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgd2l0aGRyYXdhbElkOiBpZCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUHJvZml0IHdpdGhkcmF3YWwgYXBwcm92ZWQhIEZ1bmRzIGFkZGVkIHRvIGN1c3RvbWVyIHdhbGxldC4nLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5Qcm9maXRXaXRoZHJhd2FscygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGFwcHJvdmU6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHJlamVjdFByb2ZpdFdpdGhkcmF3YWwoaWQpIHsgDQogICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVqZWN0IHRoaXMgcHJvZml0IHdpdGhkcmF3YWw/JywgZnVuY3Rpb24oKSB7IGRvUmVqZWN0UHJvZml0V2l0aGRyYXdhbChpZCk7IH0pOw0KICAgICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvUmVqZWN0UHJvZml0V2l0aGRyYXdhbChpZCkgew0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcHJvZml0LXdpdGhkcmF3YWxzL3JlamVjdCcsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IHsgd2l0aGRyYXdhbElkOiBpZCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUHJvZml0IHdpdGhkcmF3YWwgcmVqZWN0ZWQuJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgbG9hZEFkbWluUHJvZml0V2l0aGRyYXdhbHMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZCB0byByZWplY3Q6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgfQ0KDQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckFtb3VudCcpPy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJTdW1tYXJ5QW1vdW50JykudGV4dENvbnRlbnQgPSBgJHt0aGlzLnZhbHVlfSAke2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1cnJlbmN5JykudmFsdWUudG9VcHBlckNhc2UoKX1gOyB9KTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYW5zZmVyQ3VzdG9tZXJFbWFpbCcpPy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJUb0VtYWlsJykudGV4dENvbnRlbnQgPSB0aGlzLnZhbHVlIHx8ICctJzsgfSk7DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQWRtaW5UcmFuc2ZlcihlKSB7IA0KICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyANCiAgICAgICAgICAgIHZhciBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1c3RvbWVyRW1haWwnKS52YWx1ZSwgY3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJDdXJyZW5jeScpLnZhbHVlLCBhbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckFtb3VudCcpLnZhbHVlKTsgDQogICAgICAgICAgICB2YXIgZGVzY0VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyYW5zZmVyRGVzY3JpcHRpb24nKTsNCiAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRlc2NFbCA/IGRlc2NFbC52YWx1ZS50cmltKCkgOiAnJzsNCiAgICAgICAgICAgIGlmICghYW1vdW50IHx8IGFtb3VudCA8PSAwKSB7IHNob3dBbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgYW1vdW50JywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfSANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ2FkbWluL3RyYW5zZmVyJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyByZWNpcGllbnRFbWFpbDogZW1haWwsIGN1cnJlbmN5OiBjdXJyZW5jeSwgYW1vdW50OiBhbW91bnQsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9IH0pOyANCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1N1Y2Nlc3NmdWxseSBzZW50ICcgKyBhbW91bnQgKyAnICcgKyBjdXJyZW5jeS50b1VwcGVyQ2FzZSgpICsgJyB0byAnICsgZW1haWwsICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1c3RvbWVyRW1haWwnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJBbW91bnQnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBpZiAoZGVzY0VsKSBkZXNjRWwudmFsdWUgPSAnJzsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJhbnNmZXJUb0VtYWlsJykudGV4dENvbnRlbnQgPSAnLSc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlclN1bW1hcnlBbW91bnQnKS50ZXh0Q29udGVudCA9ICctJzsgDQogICAgICAgICAgICAgICAgbG9hZEFkbWluQ3VzdG9tZXJzKCk7IA0KICAgICAgICAgICAgICAgIGxvYWRVc2VyRGF0YSgpOyANCiAgICAgICAgICAgICAgICBsb2FkVHJhbnNhY3Rpb25zKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdUcmFuc2ZlciBmYWlsZWQ6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsgfSANCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwcmVmaWxsVHJhbnNmZXJFbWFpbChlbWFpbCkgeyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlckN1c3RvbWVyRW1haWwnKS52YWx1ZSA9IGVtYWlsOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cmFuc2ZlclRvRW1haWwnKS50ZXh0Q29udGVudCA9IGVtYWlsOyANCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNhZG1pblNlY3Rpb24gZm9ybScpLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pOyANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNob3dEZXBvc2l0TW9kYWwoKSB7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyANCiAgICAgICAgICAgIHVwZGF0ZURlcG9zaXRBZGRyZXNzKCk7IA0KICAgICAgICAgICAgdXBkYXRlRGVwb3NpdFBheXBhbFZpc2liaWxpdHkoKTsgDQogICAgICAgICAgICBpZiAoaXNFdXJvcGVhbkN1c3RvbWVyKCkpIHsgYXdhaXQgbG9hZFBheXBhbEVtYWlsKCk7IH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ3NldHRpbmdzL3BheXBhbCcpOw0KICAgICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsRGlzcGxheUVtYWlsJyk7DQogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IGRhdGEucGF5cGFsRW1haWwgfHwgJ05vdCBjb25maWd1cmVkLiBDb250YWN0IHN1cHBvcnQuJzsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFBheXBhbERpc3BsYXlFbWFpbCcpOw0KICAgICAgICAgICAgICAgIGlmIChlbCkgZWwudGV4dENvbnRlbnQgPSAnTm90IGNvbmZpZ3VyZWQuIENvbnRhY3Qgc3VwcG9ydC4nOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGZ1bmN0aW9uIHNob3dXaXRoZHJhd01vZGFsKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyB1cGRhdGVXaXRoZHJhd0F2YWlsYWJsZSgpOyB9DQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVdpdGhkcmF3QXZhaWxhYmxlKCkgeyBjb25zdCBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0N1cnJlbmN5JykudmFsdWU7IGNvbnN0IGJhbGFuY2UgPSBjdXJyZW50VXNlcj8ud2FsbGV0cz8uW2N1cnJlbmN5XT8uYmFsYW5jZSB8fCAwOyBjb25zdCBzeW1ib2wgPSBjcnlwdG9EYXRhW2N1cnJlbmN5XT8uc3ltYm9sIHx8IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCk7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0F2YWlsYWJsZScpLnRleHRDb250ZW50ID0gYmFsYW5jZS50b0ZpeGVkKDQpICsgJyAnICsgc3ltYm9sOyB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pblBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL3NldHRpbmdzL3BheXBhbCcpOw0KICAgICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBheXBhbEVtYWlsJyk7DQogICAgICAgICAgICAgICAgaWYgKGVsICYmIGRhdGEucGF5cGFsRW1haWwpIGVsLnZhbHVlID0gZGF0YS5wYXlwYWxFbWFpbDsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgUGF5UGFsIHNldHRpbmdzOicsIGUpOyB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNhdmVBZG1pblBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdmFyIGVtYWlsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluUGF5cGFsRW1haWwnKS52YWx1ZS50cmltKCk7DQogICAgICAgICAgICBpZiAoZW1haWwgJiYgIWVtYWlsLmluY2x1ZGVzKCdAJykpIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJywgJ2Vycm9yJyk7IHJldHVybjsgfQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9zZXR0aW5ncy9wYXlwYWwnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHBheXBhbEVtYWlsOiBlbWFpbCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGF5UGFsIGVtYWlsIHNhdmVkIHN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpOw0KICAgICAgICAgICAgICAgIHZhciBzdGF0dXNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBheXBhbFN0YXR1cycpOw0KICAgICAgICAgICAgICAgIGlmIChzdGF0dXNFbCkgeyBzdGF0dXNFbC50ZXh0Q29udGVudCA9IGVtYWlsID8gJ0FjdGl2ZTogJyArIGVtYWlsIDogJ0NsZWFyZWQnOyBzdGF0dXNFbC5jbGFzc05hbWUgPSAnbXQtMyB0ZXh0LXhzIHRleHQtY2VudGVyIHRleHQtZW1lcmFsZC00MDAnOyB9DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZCB0byBzYXZlOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2xlYXJBZG1pblBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQ2xlYXIgdGhlIFBheVBhbCBlbWFpbD8gRXVyb3BlYW4gY3VzdG9tZXJzIHdpbGwgbm90IGJlIGFibGUgdG8gZGVwb3NpdCB2aWEgUGF5UGFsLicsIGZ1bmN0aW9uKCkgeyBkb0NsZWFyUGF5cGFsRW1haWwoKTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9DbGVhclBheXBhbEVtYWlsKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9zZXR0aW5ncy9wYXlwYWwnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHBheXBhbEVtYWlsOiAnJyB9IH0pOw0KICAgICAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBheXBhbEVtYWlsJyk7DQogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC52YWx1ZSA9ICcnOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGF5UGFsIGVtYWlsIGNsZWFyZWQuJywgJ3N1Y2Nlc3MnKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGNsZWFyOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIC8vIEN1c3RvbSBjb25maXJtL3Byb21wdCBzeXN0ZW0gKG5vIG5hdGl2ZSBicm93c2VyIGRpYWxvZ3MpDQogICAgICAgIHZhciBjb25maXJtQ2FsbGJhY2sgPSBudWxsOw0KICAgICAgICB2YXIgcHJvbXB0Q2FsbGJhY2sgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBzaG93Q29uZmlybU1vZGFsKG1lc3NhZ2UsIG9uQ29uZmlybSwgb25DYW5jZWwpIHsNCiAgICAgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtTW9kYWxNZXNzYWdlJyk7DQogICAgICAgICAgICBpZiAoZWwpIGVsLnRleHRDb250ZW50ID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGNvbmZpcm1DYWxsYmFjayA9IHsgY29uZmlybTogb25Db25maXJtIHx8IGZ1bmN0aW9uKCl7fSwgY2FuY2VsOiBvbkNhbmNlbCB8fCBmdW5jdGlvbigpe30gfTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtTW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBvbkNvbmZpcm1PaygpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm1Nb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAoY29uZmlybUNhbGxiYWNrKSBjb25maXJtQ2FsbGJhY2suY29uZmlybSgpOyBjb25maXJtQ2FsbGJhY2sgPSBudWxsOyB9DQogICAgICAgIGZ1bmN0aW9uIG9uQ29uZmlybUNhbmNlbCgpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm1Nb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAoY29uZmlybUNhbGxiYWNrKSBjb25maXJtQ2FsbGJhY2suY2FuY2VsKCk7IGNvbmZpcm1DYWxsYmFjayA9IG51bGw7IHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdTdWJtaXRCdG4nKTsgaWYgKGJ0bikgYnRuLmRpc2FibGVkID0gZmFsc2U7IH0NCiAgICAgICAgZnVuY3Rpb24gc2hvd1Byb21wdE1vZGFsKG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSwgb25TdWJtaXQsIG9uQ2FuY2VsKSB7DQogICAgICAgICAgICB2YXIgbXNnRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvbXB0TW9kYWxNZXNzYWdlJyk7DQogICAgICAgICAgICB2YXIgaW5wdXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbElucHV0Jyk7DQogICAgICAgICAgICBpZiAobXNnRWwpIG1zZ0VsLnRleHRDb250ZW50ID0gbWVzc2FnZTsNCiAgICAgICAgICAgIGlmIChpbnB1dEVsKSB7IGlucHV0RWwudmFsdWUgPSBkZWZhdWx0VmFsdWUgfHwgJyc7IGlucHV0RWwuZm9jdXMoKTsgfQ0KICAgICAgICAgICAgcHJvbXB0Q2FsbGJhY2sgPSB7IHN1Ym1pdDogb25TdWJtaXQgfHwgZnVuY3Rpb24oKXt9LCBjYW5jZWw6IG9uQ2FuY2VsIHx8IGZ1bmN0aW9uKCl7fSB9Ow0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb21wdE1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gb25Qcm9tcHRPaygpIHsgdmFyIHZhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbElucHV0JykudmFsdWU7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAocHJvbXB0Q2FsbGJhY2spIHByb21wdENhbGxiYWNrLnN1Ym1pdCh2YWwpOyBwcm9tcHRDYWxsYmFjayA9IG51bGw7IH0NCiAgICAgICAgZnVuY3Rpb24gb25Qcm9tcHRDYW5jZWwoKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9tcHRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyBpZiAocHJvbXB0Q2FsbGJhY2spIHByb21wdENhbGxiYWNrLmNhbmNlbCgpOyBwcm9tcHRDYWxsYmFjayA9IG51bGw7IH0NCg0KICAgICAgICBmdW5jdGlvbiBpc0V1cm9wZWFuQ3VzdG9tZXIoKSB7DQogICAgICAgICAgICBpZiAoIWN1cnJlbnRVc2VyIHx8ICFjdXJyZW50VXNlci5waG9uZSkgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgdmFyIHBob25lID0gY3VycmVudFVzZXIucGhvbmU7DQogICAgICAgICAgICB2YXIgZXVQcmVmaXhlcyA9IFsnKzMzJywnKzQ5JywnKzM5JywnKzM0JywnKzM1MScsJys0MScsJys0MycsJyszMicsJys0NScsJyszNTgnLCcrMzUzJywnKzMxJywnKzQ3JywnKzQ2JywnKzQ4JywnKzMwJywnKzQyMCcsJyszNicsJys0MCcsJys0MjEnLCcrMzg2JywnKzM3MicsJyszNzEnLCcrMzcwJywnKzM1NycsJyszNTYnLCcrMzg1JywnKzM1OSddOw0KICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldVByZWZpeGVzLmxlbmd0aDsgaSsrKSB7IGlmIChwaG9uZS5pbmRleE9mKGV1UHJlZml4ZXNbaV0pID09PSAwKSByZXR1cm4gdHJ1ZTsgfQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVEZXBvc2l0UGF5cGFsVmlzaWJpbGl0eSgpIHsNCiAgICAgICAgICAgIHZhciBwYXlwYWxPcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFBheXBhbE9wdGlvbicpOw0KICAgICAgICAgICAgaWYgKHBheXBhbE9wdGlvbikgeyBwYXlwYWxPcHRpb24uc3R5bGUuZGlzcGxheSA9IGlzRXVyb3BlYW5DdXN0b21lcigpID8gJ2Jsb2NrJyA6ICdub25lJzsgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBvbkRlcG9zaXRNZXRob2RDaGFuZ2UoKSB7DQogICAgICAgICAgICB2YXIgbWV0aG9kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRNZXRob2QnKS52YWx1ZTsNCiAgICAgICAgICAgIHZhciBjcnlwdG9TZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRDcnlwdG9TZWN0aW9uJyk7DQogICAgICAgICAgICB2YXIgcGF5cGFsU2VjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UGF5cGFsU2VjdGlvbicpOw0KICAgICAgICAgICAgdmFyIHR4SGFzaFJvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0VHhIYXNoUm93Jyk7DQogICAgICAgICAgICB2YXIgZnJvbUFkZHJSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEZyb21BZGRyZXNzUm93Jyk7DQogICAgICAgICAgICB2YXIgcGF5cGFsRW1haWxSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFBheXBhbEVtYWlsUm93Jyk7DQogICAgICAgICAgICBpZiAoY3J5cHRvU2VjdGlvbikgY3J5cHRvU2VjdGlvbi5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAnY3J5cHRvJyA/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICBpZiAocGF5cGFsU2VjdGlvbikgcGF5cGFsU2VjdGlvbi5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAncGF5cGFsJyA/ICdibG9jaycgOiAnbm9uZSc7DQogICAgICAgICAgICBpZiAodHhIYXNoUm93KSB0eEhhc2hSb3cuc3R5bGUuZGlzcGxheSA9IG1ldGhvZCA9PT0gJ3BheXBhbCcgPyAnbm9uZScgOiAnYmxvY2snOw0KICAgICAgICAgICAgaWYgKGZyb21BZGRyUm93KSBmcm9tQWRkclJvdy5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAncGF5cGFsJyA/ICdub25lJyA6ICdibG9jayc7DQogICAgICAgICAgICBpZiAocGF5cGFsRW1haWxSb3cpIHBheXBhbEVtYWlsUm93LnN0eWxlLmRpc3BsYXkgPSBtZXRob2QgPT09ICdwYXlwYWwnID8gJ2Jsb2NrJyA6ICdub25lJzsNCiAgICAgICAgICAgIGlmIChtZXRob2QgPT09ICdwYXlwYWwnKSB7IHN0YXJ0UGF5cGFsRXhwaXJ5VGltZXIoKTsgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICB2YXIgcGF5cGFsRXhwaXJ5VGltZXIgPSBudWxsOw0KICAgICAgICBmdW5jdGlvbiBzdGFydFBheXBhbEV4cGlyeVRpbWVyKCkgew0KICAgICAgICAgICAgaWYgKHBheXBhbEV4cGlyeVRpbWVyKSBjbGVhckludGVydmFsKHBheXBhbEV4cGlyeVRpbWVyKTsNCiAgICAgICAgICAgIHZhciBpbml0aWF0ZWRBdCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0Jyk7DQogICAgICAgICAgICBpZiAoIWluaXRpYXRlZEF0KSB7DQogICAgICAgICAgICAgICAgaW5pdGlhdGVkQXQgPSBEYXRlLm5vdygpOw0KICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3BheXBhbEluaXRpYXRlZEF0JywgaW5pdGlhdGVkQXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGV4cGlyeVRpbWUgPSBwYXJzZUludChpbml0aWF0ZWRBdCkgKyAoMjQgKiA2MCAqIDYwICogMTAwMCk7DQogICAgICAgICAgICB1cGRhdGVQYXlwYWxFeHBpcnlEaXNwbGF5KGV4cGlyeVRpbWUpOw0KICAgICAgICAgICAgcGF5cGFsRXhwaXJ5VGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsgdXBkYXRlUGF5cGFsRXhwaXJ5RGlzcGxheShleHBpcnlUaW1lKTsgfSwgNjAwMDApOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVQYXlwYWxFeHBpcnlEaXNwbGF5KGV4cGlyeVRpbWUpIHsNCiAgICAgICAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpOw0KICAgICAgICAgICAgdmFyIHJlbWFpbmluZyA9IGV4cGlyeVRpbWUgLSBub3c7DQogICAgICAgICAgICB2YXIgZGlzcGxheUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BheXBhbEV4cGlyeURpc3BsYXknKTsNCiAgICAgICAgICAgIGlmICghZGlzcGxheUVsKSByZXR1cm47DQogICAgICAgICAgICBpZiAocmVtYWluaW5nIDw9IDApIHsgZGlzcGxheUVsLnRleHRDb250ZW50ID0gJ0V4cGlyZWQgLSBSZXF1ZXN0IG5ldyBkZXRhaWxzJzsgZGlzcGxheUVsLmNsYXNzTmFtZSA9ICd0ZXh0LXhzIHRleHQtcm9zZS00MDAgZm9udC1tZWRpdW0gbXQtMic7IH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBob3VycyA9IE1hdGguZmxvb3IocmVtYWluaW5nIC8gMzYwMDAwMCk7DQogICAgICAgICAgICAgICAgdmFyIG1pbnMgPSBNYXRoLmZsb29yKChyZW1haW5pbmcgJSAzNjAwMDAwKSAvIDYwMDAwKTsNCiAgICAgICAgICAgICAgICBkaXNwbGF5RWwudGV4dENvbnRlbnQgPSAnRXhwaXJlcyBpbjogJyArIGhvdXJzICsgJ2ggJyArIG1pbnMgKyAnbSc7DQogICAgICAgICAgICAgICAgZGlzcGxheUVsLmNsYXNzTmFtZSA9IGhvdXJzIDwgMiA/ICd0ZXh0LXhzIHRleHQtYW1iZXItNDAwIGZvbnQtbWVkaXVtIG10LTInIDogJ3RleHQteHMgdGV4dC1lbWVyYWxkLTQwMCBmb250LW1lZGl1bSBtdC0yJzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgZnVuY3Rpb24gY2xvc2VNb2RhbChtb2RhbElkKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vZGFsSWQpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyB9DQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZURlcG9zaXRBZGRyZXNzKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEFkZHJlc3MnKS50ZXh0Q29udGVudCA9IHdhbGxldEFkZHJlc3Nlc1tkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdEN1cnJlbmN5JykudmFsdWVdIHx8ICdBZGRyZXNzIG5vdCBhdmFpbGFibGUnOyB9DQogICAgICAgIGZ1bmN0aW9uIGNvcHlEZXBvc2l0QWRkcmVzcygpIHsgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRBZGRyZXNzJykudGV4dENvbnRlbnQpOyBzaG93QWxlcnQoJ0FkZHJlc3MgY29waWVkIScsICdzdWNjZXNzJyk7IH0NCg0KICAgICAgICBmdW5jdGlvbiBvbldpdGhkcmF3TWV0aG9kQ2hhbmdlKCkgew0KICAgICAgICAgICAgdmFyIG1ldGhvZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd01ldGhvZCcpLnZhbHVlOw0KICAgICAgICAgICAgdmFyIGNyeXB0b1NlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdDcnlwdG9TZWN0aW9uJyk7DQogICAgICAgICAgICB2YXIgd2lyZVNlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdXaXJlU2VjdGlvbicpOw0KICAgICAgICAgICAgaWYgKGNyeXB0b1NlY3Rpb24pIGNyeXB0b1NlY3Rpb24uc3R5bGUuZGlzcGxheSA9IG1ldGhvZCA9PT0gJ2NyeXB0bycgPyAnYmxvY2snIDogJ25vbmUnOw0KICAgICAgICAgICAgaWYgKHdpcmVTZWN0aW9uKSB3aXJlU2VjdGlvbi5zdHlsZS5kaXNwbGF5ID0gbWV0aG9kID09PSAnd2lyZScgPyAnYmxvY2snIDogJ25vbmUnOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBoYW5kbGVXaXRoZHJhdyhlKSB7IA0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgICAgICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd1N1Ym1pdEJ0bicpOw0KICAgICAgICAgICAgICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gdHJ1ZTsgfQ0KICAgICAgICAgICAgICAgIHZhciBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0N1cnJlbmN5JykudmFsdWU7DQogICAgICAgICAgICAgICAgdmFyIGFtb3VudCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3QW1vdW50JykudmFsdWUpOw0KICAgICAgICAgICAgICAgIHZhciBtZXRob2RFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd01ldGhvZCcpOw0KICAgICAgICAgICAgICAgIHZhciBtZXRob2QgPSBtZXRob2RFbCA/IG1ldGhvZEVsLnZhbHVlIDogJ2NyeXB0byc7DQogICAgICAgICAgICAgICAgaWYgKCFhbW91bnQgfHwgYW1vdW50IDw9IDApIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZW50ZXIgYSB2YWxpZCBhbW91bnQnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9IA0KICAgICAgICAgICAgICAgIHZhciB3YWxsZXRCYWxhbmNlID0gY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIud2FsbGV0cyAmJiBjdXJyZW50VXNlci53YWxsZXRzW2N1cnJlbmN5XSA/IChjdXJyZW50VXNlci53YWxsZXRzW2N1cnJlbmN5XS5iYWxhbmNlIHx8IDApIDogMDsgDQogICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IHdhbGxldEJhbGFuY2UpIHsgc2hvd0FsZXJ0KCdJbnN1ZmZpY2llbnQgYmFsYW5jZSBmb3IgdGhpcyB3aXRoZHJhd2FsJywgJ2Vycm9yJyk7IHJldHVybiBmYWxzZTsgfQ0KICAgICAgICAgICAgICAgIHZhciBib2R5ID0geyB0eXBlOiAnd2l0aGRyYXdhbCcsIGZyb21DdXJyZW5jeTogY3VycmVuY3ksIHRvQ3VycmVuY3k6IGN1cnJlbmN5LCBhbW91bnQ6IGFtb3VudCwgc3RhdHVzOiAncGVuZGluZycsIG1ldGhvZDogbWV0aG9kIH07DQogICAgICAgICAgICAgICAgaWYgKG1ldGhvZCA9PT0gJ2NyeXB0bycpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGFkZHJlc3NFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd0FkZHJlc3MnKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGFkZHJlc3MgPSBhZGRyZXNzRWwgPyBhZGRyZXNzRWwudmFsdWUudHJpbSgpIDogJyc7DQogICAgICAgICAgICAgICAgICAgIGlmICghYWRkcmVzcykgeyBzaG93QWxlcnQoJ1BsZWFzZSBlbnRlciBhIHJlY2lwaWVudCB3YWxsZXQgYWRkcmVzcycsICdlcnJvcicpOyByZXR1cm4gZmFsc2U7IH0NCiAgICAgICAgICAgICAgICAgICAgYm9keS53aXRoZHJhd2FsQWRkcmVzcyA9IGFkZHJlc3M7DQogICAgICAgICAgICAgICAgICAgIGRvU3VibWl0V2l0aGRyYXcoYm9keSk7DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGJhbmtOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3QmFua05hbWUnKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGFjY291bnRIb2xkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdBY2NvdW50SG9sZGVyJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBhY2NvdW50TnVtYmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3QWNjb3VudE51bWJlcicpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYk5hbWUgPSBiYW5rTmFtZSA/IGJhbmtOYW1lLnZhbHVlLnRyaW0oKSA6ICcnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYkhvbGRlciA9IGFjY291bnRIb2xkZXIgPyBhY2NvdW50SG9sZGVyLnZhbHVlLnRyaW0oKSA6ICcnOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYkFjY3QgPSBhY2NvdW50TnVtYmVyID8gYWNjb3VudE51bWJlci52YWx1ZS50cmltKCkgOiAnJzsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCFiTmFtZSB8fCAhYkhvbGRlciB8fCAhYkFjY3QpIHsgc2hvd0FsZXJ0KCdCYW5rIG5hbWUsIGFjY291bnQgaG9sZGVyIG5hbWUsIGFuZCBhY2NvdW50IG51bWJlciBhcmUgcmVxdWlyZWQnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICAgICAgICAgIGJvZHkuYmFua05hbWUgPSBiTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYm9keS5hY2NvdW50SG9sZGVyID0gYkhvbGRlcjsNCiAgICAgICAgICAgICAgICAgICAgYm9keS5hY2NvdW50TnVtYmVyID0gYkFjY3Q7DQogICAgICAgICAgICAgICAgICAgIHZhciByb3V0aW5nRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2l0aGRyYXdSb3V0aW5nTnVtYmVyJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBzd2lmdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3U3dpZnRDb2RlJyk7DQogICAgICAgICAgICAgICAgICAgIGJvZHkucm91dGluZ051bWJlciA9IHJvdXRpbmdFbCA/IHJvdXRpbmdFbC52YWx1ZS50cmltKCkgfHwgbnVsbCA6IG51bGw7DQogICAgICAgICAgICAgICAgICAgIGJvZHkuc3dpZnRDb2RlID0gc3dpZnRFbCA/IHN3aWZ0RWwudmFsdWUudHJpbSgpIHx8IG51bGwgOiBudWxsOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV0gfHwgeyBzeW1ib2w6IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCksIHByaWNlOiAxIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB1c2RBbW91bnQgPSBhbW91bnQgKiAoY3J5cHRvLnByaWNlIHx8IDEpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY29uZmlybU1zZyA9ICdXaXRoZHJhdyAnICsgZm9ybWF0Q2xlYW4oYW1vdW50LCA2KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnICh+JCcgKyBmb3JtYXRDbGVhbih1c2RBbW91bnQsIDIpICsgJykgdmlhIFdpcmUgVHJhbnNmZXIgdG8gJyArIGJOYW1lICsgJz8nOw0KICAgICAgICAgICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKGNvbmZpcm1Nc2csIGZ1bmN0aW9uKCkgeyBkb1N1Ym1pdFdpdGhkcmF3KGJvZHkpOyB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdoYW5kbGVXaXRoZHJhdyBlcnJvcjonLCBlcnIpOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnV2l0aGRyYXcgZXJyb3I6ICcgKyAoZXJyLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InKSwgJ2Vycm9yJyk7DQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICAgIHZhciBidG4yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3U3VibWl0QnRuJyk7DQogICAgICAgICAgICAgICAgaWYgKGJ0bjIgJiYgYnRuMi5pbm5lckhUTUwuaW5kZXhPZignUHJvY2Vzc2luZycpID09PSAtMSkgeyBidG4yLmRpc2FibGVkID0gZmFsc2U7IH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgDQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9TdWJtaXRXaXRoZHJhdyhib2R5KSB7DQogICAgICAgICAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3U3VibWl0QnRuJyk7DQogICAgICAgICAgICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpbiBtci0yIj48L2k+UHJvY2Vzc2luZy4uLic7IH0NCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ3RyYW5zYWN0aW9ucycsIHsgbWV0aG9kOiAnUE9TVCcsIGJvZHk6IGJvZHkgfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnV2l0aGRyYXdhbCBzdWJtaXR0ZWQhIFBlbmRpbmcgYWRtaW4gYXV0aG9yaXphdGlvbiBmb3Igc2VjdXJpdHkgcmVhc29ucy4nLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBjbG9zZU1vZGFsKCd3aXRoZHJhd01vZGFsJyk7IA0KICAgICAgICAgICAgICAgIHZhciBpZHMgPSBbJ3dpdGhkcmF3QWRkcmVzcycsJ3dpdGhkcmF3QW1vdW50Jywnd2l0aGRyYXdCYW5rTmFtZScsJ3dpdGhkcmF3QWNjb3VudEhvbGRlcicsJ3dpdGhkcmF3QWNjb3VudE51bWJlcicsJ3dpdGhkcmF3Um91dGluZ051bWJlcicsJ3dpdGhkcmF3U3dpZnRDb2RlJ107DQogICAgICAgICAgICAgICAgaWRzLmZvckVhY2goZnVuY3Rpb24oaWQpIHsgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOyBpZiAoZWwpIGVsLnZhbHVlID0gJyc7IH0pOw0KICAgICAgICAgICAgICAgIGxvYWRUcmFuc2FjdGlvbnMoKTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ1dpdGhkcmF3YWwgZmFpbGVkOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgICAgICBmaW5hbGx5IHsgaWYgKGJ0bikgeyBidG4uZGlzYWJsZWQgPSBmYWxzZTsgYnRuLmlubmVySFRNTCA9ICdXaXRoZHJhdyc7IH0gfQ0KICAgICAgICB9DQoNCiAgICAgICAgbGV0IHNlbGVjdGVkUGxhbiA9IG51bGw7DQogICAgICAgIGZ1bmN0aW9uIGZvcm1hdENsZWFuKG51bSwgbWF4RGVjID0gOCkgeyANCiAgICAgICAgICAgIGlmIChudW0gPT09IHVuZGVmaW5lZCB8fCBudW0gPT09IG51bGwpIHJldHVybiAnMCc7IA0KICAgICAgICAgICAgY29uc3QgbiA9IE51bWJlcihudW0pOyANCiAgICAgICAgICAgIGlmIChpc05hTihuKSkgcmV0dXJuICcwJzsgDQogICAgICAgICAgICBjb25zdCBzdHIgPSBuLnRvRml4ZWQobWF4RGVjKTsgDQogICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChzdHIpLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IG1heERlYyB9KTsgDQogICAgICAgIH0NCg0KICAgICAgICBsZXQgX2NhY2hlZFBsYW5zID0gbnVsbDsNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZFBsYW5zKCkgeyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGlmIChfY2FjaGVkUGxhbnMpIHsgcmVuZGVyUGxhbnMoX2NhY2hlZFBsYW5zKTsgcmV0dXJuOyB9DQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ3BsYW5zJyksIHBsYW5zID0gZGF0YS5wbGFucyB8fCBbXTsNCiAgICAgICAgICAgICAgICBfY2FjaGVkUGxhbnMgPSBwbGFuczsNCiAgICAgICAgICAgICAgICByZW5kZXJQbGFucyhwbGFucyk7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBwbGFuczonLCBlcnJvcik7IH0gDQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gcmVuZGVyUGxhbnMocGxhbnMpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0bWVudFBsYW5zTGlzdCcpOyANCiAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuOyANCiAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJyc7IA0KICAgICAgICAgICAgICAgIGlmIChwbGFucy5sZW5ndGggPT09IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIGludmVzdG1lbnQgcGxhbnMgYXZhaWxhYmxlPC9wPjwvZGl2Pic7IA0KICAgICAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgcGxhbnMuZm9yRWFjaChwbGFuID0+IHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyANCiAgICAgICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICdnbGFzcyByb3VuZGVkLXhsIHAtNCBib3JkZXIgYm9yZGVyLWFtYmVyLTUwMC8yMCBob3Zlcjpib3JkZXItYW1iZXItNTAwLzQwIHRyYW5zaXRpb24tY29sb3JzJzsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbcGxhbi5jdXJyZW5jeV0gfHwgeyBzeW1ib2w6IHBsYW4uY3VycmVuY3kudG9VcHBlckNhc2UoKSwgaWNvbjogJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTVweDsgZm9udC13ZWlnaHQ6NzAwOyI+4oKuPC9zcGFuPicsIGNvbG9yOiAndXNkdCcgfTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbkZvcm1hdHRlZCA9IGZvcm1hdENsZWFuKHBsYW4ubWluQW1vdW50KTsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heEZvcm1hdHRlZCA9IGZvcm1hdENsZWFuKHBsYW4ubWF4QW1vdW50KTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PGRpdj48cCBjbGFzcz0iZm9udC1ib2xkIHRleHQtd2hpdGUgdGV4dC1sZyI+JHtwbGFuLm5hbWV9PC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbXQtMSI+JHtwbGFuLmRlc2NyaXB0aW9uIHx8ICcnfTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJ3LTEwIGgtMTAgYmctYW1iZXItNjAwLzIwIHJvdW5kZWQtZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciI+PGkgY2xhc3M9ImZhcyBmYS1jaGFydC1saW5lIHRleHQtYW1iZXItNDAwIj48L2k+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMiBtYi0zIj48ZGl2IGNsYXNzPSJiZy1ncmF5LTgwMCByb3VuZGVkLWxnIHAtMiB0ZXh0LWNlbnRlciI+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTQwMCI+RGFpbHkgUk9JPC9wPjxwIGNsYXNzPSJ0ZXh0LWxnIGZvbnQtYm9sZCB0ZXh0LWVtZXJhbGQtNDAwIj4ke3BsYW4uZGFpbHlSb2lQZXJjZW50fSU8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIgdGV4dC1jZW50ZXIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlRvdGFsIFJPSTwvcD48cCBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQgdGV4dC1hbWJlci00MDAiPiR7cGxhbi5kYWlseVJvaVBlcmNlbnQgKiBwbGFuLmR1cmF0aW9uRGF5c30lPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc20gbWItMyI+PHNwYW4gY2xhc3M9InRleHQtZ3JheS00MDAiPlJhbmdlOjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dC13aGl0ZSI+JHttaW5Gb3JtYXR0ZWR9IC0gJHttYXhGb3JtYXR0ZWR9ICR7Y3J5cHRvLnN5bWJvbH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4gdGV4dC1zbSBtYi0zIj48c3BhbiBjbGFzcz0idGV4dC1ncmF5LTQwMCI+RHVyYXRpb246PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0LXdoaXRlIj4ke3BsYW4uZHVyYXRpb25EYXlzfSBkYXlzPC9zcGFuPjwvZGl2PjxidXR0b24gb25jbGljaz0ib3BlbkludmVzdE1vZGFsKCR7cGxhbi5pZH0sICcke3BsYW4ubmFtZS5yZXBsYWNlKC8nL2csICJcXCciKX0nLCAke3BsYW4uZGFpbHlSb2lQZXJjZW50fSwgJHtwbGFuLmR1cmF0aW9uRGF5c30sICR7cGxhbi5taW5BbW91bnR9LCAke3BsYW4ubWF4QW1vdW50fSwgJyR7cGxhbi5jdXJyZW5jeX0nLCAke3BsYW4uZGFpbHlSb2lQZXJjZW50ICogcGxhbi5kdXJhdGlvbkRheXN9KSIgY2xhc3M9InctZnVsbCBweS0zIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1hbWJlci02MDAgdG8tb3JhbmdlLTYwMCBob3Zlcjpmcm9tLWFtYmVyLTcwMCBob3Zlcjp0by1vcmFuZ2UtNzAwIHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIj48aSBjbGFzcz0iZmFzIGZhLXBpZ2d5LWJhbmsgbXItMiI+PC9pPkludmVzdCBOb3c8L2J1dHRvbj5gOyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIG9wZW5JbnZlc3RNb2RhbChpZCwgbmFtZSwgZGFpbHlSb2ksIGR1cmF0aW9uLCBtaW5BbW91bnQsIG1heEFtb3VudCwgY3VycmVuY3ksIHRvdGFsUm9pKSB7IA0KICAgICAgICAgICAgc2VsZWN0ZWRQbGFuID0geyBpZCwgbmFtZSwgZGFpbHlSb2ksIGR1cmF0aW9uLCBtaW5BbW91bnQsIG1heEFtb3VudCwgY3VycmVuY3ksIHRvdGFsUm9pIH07IA0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjdXJyZW5jeV0gfHwgeyBzeW1ib2w6IGN1cnJlbmN5LnRvVXBwZXJDYXNlKCkgfTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0TW9kYWxQbGFuTmFtZScpLnRleHRDb250ZW50ID0gbmFtZTsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0TW9kYWxSb2knKS50ZXh0Q29udGVudCA9IGRhaWx5Um9pICsgJyUnOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RNb2RhbER1cmF0aW9uJykudGV4dENvbnRlbnQgPSBkdXJhdGlvbiArICcgZGF5cyc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdE1vZGFsQ3VycmVuY3knKS50ZXh0Q29udGVudCA9IGNyeXB0by5zeW1ib2w7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdEFtb3VudCcpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdEFtb3VudCcpLm1pbiA9IG1pbkFtb3VudDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0QW1vdW50JykubWF4ID0gbWF4QW1vdW50OyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RBbW91bnQnKS5wbGFjZWhvbGRlciA9IGZvcm1hdENsZWFuKG1pbkFtb3VudCkgKyAnIC0gJyArIGZvcm1hdENsZWFuKG1heEFtb3VudCk7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdFByZXZpZXdEYWlseScpLnRleHRDb250ZW50ID0gJy0nOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RQcmV2aWV3VG90YWwnKS50ZXh0Q29udGVudCA9ICctJzsgDQogICAgICAgICAgICBjb25zdCBiYWxhbmNlID0gY3VycmVudFVzZXI/LndhbGxldHM/LltjdXJyZW5jeV0/LmJhbGFuY2UgfHwgMDsgDQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0UHJldmlld0F2YWlsYWJsZScpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4oYmFsYW5jZSwgNCkgKyAnICcgKyBjcnlwdG8uc3ltYm9sOyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RNb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOyANCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUludmVzdFByZXZpZXcoKSB7IA0KICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFBsYW4pIHJldHVybjsgDQogICAgICAgICAgICBjb25zdCBhbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RBbW91bnQnKS52YWx1ZSkgfHwgMDsgDQogICAgICAgICAgICBjb25zdCBkYWlseVByb2ZpdCA9IGFtb3VudCAqIChzZWxlY3RlZFBsYW4uZGFpbHlSb2kgLyAxMDApOyANCiAgICAgICAgICAgIGNvbnN0IHRvdGFsUHJvZml0ID0gYW1vdW50ICogKHNlbGVjdGVkUGxhbi50b3RhbFJvaSAvIDEwMCk7IA0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtzZWxlY3RlZFBsYW4uY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBzZWxlY3RlZFBsYW4uY3VycmVuY3kudG9VcHBlckNhc2UoKSB9OyANCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RQcmV2aWV3RGFpbHknKS50ZXh0Q29udGVudCA9IGZvcm1hdENsZWFuKGRhaWx5UHJvZml0LCA0KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnL2RheSc7IA0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdFByZXZpZXdUb3RhbCcpLnRleHRDb250ZW50ID0gZm9ybWF0Q2xlYW4odG90YWxQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbDsgDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBzdWJtaXRJbnZlc3RtZW50KCkgeyANCiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRQbGFuKSB7IHNob3dBbGVydCgnUGxlYXNlIHNlbGVjdCBhIHBsYW4nLCAnZXJyb3InKTsgcmV0dXJuOyB9IA0KICAgICAgICAgICAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0QW1vdW50JykudmFsdWUpOyANCiAgICAgICAgICAgIGlmICghYW1vdW50IHx8IGFtb3VudCA8PSAwKSB7IHNob3dBbGVydCgnUGxlYXNlIGVudGVyIGEgdmFsaWQgaW52ZXN0bWVudCBhbW91bnQnLCAnZXJyb3InKTsgcmV0dXJuOyB9DQogICAgICAgICAgICBpZiAoYW1vdW50IDwgc2VsZWN0ZWRQbGFuLm1pbkFtb3VudCB8fCBhbW91bnQgPiBzZWxlY3RlZFBsYW4ubWF4QW1vdW50KSB7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnQW1vdW50IG11c3QgYmUgYmV0d2VlbiAnICsgZm9ybWF0Q2xlYW4oc2VsZWN0ZWRQbGFuLm1pbkFtb3VudCkgKyAnIGFuZCAnICsgZm9ybWF0Q2xlYW4oc2VsZWN0ZWRQbGFuLm1heEFtb3VudCksICdlcnJvcicpOyANCiAgICAgICAgICAgICAgICByZXR1cm47IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIGNvbnN0IGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtSW52ZXN0QnRuJyk7DQogICAgICAgICAgICBpZiAoYnRuKSB7IGJ0bi5kaXNhYmxlZCA9IHRydWU7IGJ0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpbiBtci0yIj48L2k+UHJvY2Vzc2luZy4uLic7IH0NCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGNyeXB0byA9IGNyeXB0b0RhdGFbc2VsZWN0ZWRQbGFuLmN1cnJlbmN5XSB8fCB7IHByaWNlOiAxIH07DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IHBsYW5JZDogc2VsZWN0ZWRQbGFuLmlkLCBhbW91bnQ6IGFtb3VudCwgY3VycmVudFByaWNlOiBjcnlwdG8ucHJpY2UgfHwgMSB9IH0pOyANCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ0ludmVzdG1lbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHkhJywgJ3N1Y2Nlc3MnKTsgDQogICAgICAgICAgICAgICAgY2xvc2VNb2RhbCgnaW52ZXN0TW9kYWwnKTsgDQogICAgICAgICAgICAgICAgbG9hZEludmVzdG1lbnRzKCk7IGxvYWRXYWxsZXRzKCk7IGxvYWRVc2VyRGF0YSgpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IA0KICAgICAgICAgICAgICAgIHZhciBpc0RlcG9zaXRFcnJvciA9IGVycm9yLnN0YXR1cyA9PT0gNDAzICYmIGVycm9yLnJlc3BvbnNlRGF0YSAmJiBlcnJvci5yZXNwb25zZURhdGEuZGVwb3NpdFJlcXVpcmVkOw0KICAgICAgICAgICAgICAgIGlmIChpc0RlcG9zaXRFcnJvcikgeyANCiAgICAgICAgICAgICAgICAgICAgY2xvc2VNb2RhbCgnaW52ZXN0TW9kYWwnKTsNCiAgICAgICAgICAgICAgICAgICAgc2hvd0RlcG9zaXRSZXF1aXJlZE1vZGFsKGVycm9yLnJlc3BvbnNlRGF0YSk7IA0KICAgICAgICAgICAgICAgIH0gZWxzZSB7IA0KICAgICAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ0ludmVzdG1lbnQgZmFpbGVkOiAnICsgKGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InKSwgJ2Vycm9yJyk7IA0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgICAgIGlmIChidG4pIHsgYnRuLmRpc2FibGVkID0gZmFsc2U7IGJ0bi5pbm5lckhUTUwgPSAnQ29uZmlybSBJbnZlc3RtZW50JzsgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBzaG93RGVwb3NpdFJlcXVpcmVkTW9kYWwoZXJyb3JEYXRhKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIHZhciBjdXJyZW5jeSA9IChlcnJvckRhdGEgJiYgZXJyb3JEYXRhLmN1cnJlbmN5KSB8fCAoc2VsZWN0ZWRQbGFuICYmIHNlbGVjdGVkUGxhbi5jdXJyZW5jeSkgfHwgJ3VzZHQnOw0KICAgICAgICAgICAgICAgIHZhciBjcnlwdG8gPSBjcnlwdG9EYXRhW2N1cnJlbmN5XSB8fCB7IHN5bWJvbDogY3VycmVuY3kudG9VcHBlckNhc2UoKSwgbmFtZTogY3VycmVuY3kudG9VcHBlckNhc2UoKSB9Ow0KICAgICAgICAgICAgICAgIHZhciB1c2REZXBvc2l0ZWQgPSAoZXJyb3JEYXRhICYmIGVycm9yRGF0YS51c2REZXBvc2l0ZWQpIHx8IDA7DQogICAgICAgICAgICAgICAgdmFyIHJlbWFpbmluZ1VzZCA9IChlcnJvckRhdGEgJiYgZXJyb3JEYXRhLnJlbWFpbmluZ1VzZCkgfHwgNzUwOw0KICAgICAgICAgICAgICAgIHZhciByZW1haW5pbmdDcnlwdG8gPSAoZXJyb3JEYXRhICYmIGVycm9yRGF0YS5yZW1haW5pbmdDcnlwdG8pIHx8IHJlbWFpbmluZ1VzZDsNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICB2YXIgZWxEZXBvc2l0ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFJlcURlcG9zaXRlZCcpOw0KICAgICAgICAgICAgICAgIHZhciBlbFJlbWFpbmluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UmVxUmVtYWluaW5nJyk7DQogICAgICAgICAgICAgICAgdmFyIGVsQ3J5cHRvQW10ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRSZXFDcnlwdG9BbW91bnQnKTsNCiAgICAgICAgICAgICAgICB2YXIgZWxDdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UmVxQ3J5cHRvU3ltYm9sJyk7DQogICAgICAgICAgICAgICAgdmFyIGVsV2FsbGV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRSZXFXYWxsZXQnKTsNCiAgICAgICAgICAgICAgICB2YXIgZWxNb2RhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXBvc2l0UmVxdWlyZWRNb2RhbCcpOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIGlmIChlbERlcG9zaXRlZCkgZWxEZXBvc2l0ZWQudGV4dENvbnRlbnQgPSAnJCcgKyB1c2REZXBvc2l0ZWQudG9Mb2NhbGVTdHJpbmcoJ2VuLVVTJywgeyBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMiB9KTsNCiAgICAgICAgICAgICAgICBpZiAoZWxSZW1haW5pbmcpIGVsUmVtYWluaW5nLnRleHRDb250ZW50ID0gJyQnICsgcmVtYWluaW5nVXNkLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHsgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIgfSk7DQogICAgICAgICAgICAgICAgaWYgKGVsQ3J5cHRvQW10KSBlbENyeXB0b0FtdC50ZXh0Q29udGVudCA9IGZvcm1hdENsZWFuKHJlbWFpbmluZ0NyeXB0bywgNik7DQogICAgICAgICAgICAgICAgaWYgKGVsQ3VycmVuY3kpIGVsQ3VycmVuY3kudGV4dENvbnRlbnQgPSBjcnlwdG8uc3ltYm9sOw0KICAgICAgICAgICAgICAgIGlmIChlbFdhbGxldCkgZWxXYWxsZXQudGV4dENvbnRlbnQgPSB3YWxsZXRBZGRyZXNzZXNbY3VycmVuY3ldIHx8ICdBZGRyZXNzIG5vdCBhdmFpbGFibGUnOw0KICAgICAgICAgICAgICAgIGlmIChlbE1vZGFsKSBlbE1vZGFsLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnQSAkNzUwIGRlcG9zaXQgaXMgcmVxdWlyZWQgYmVmb3JlIGludmVzdGluZy4gUGxlYXNlIG1ha2UgYSBkZXBvc2l0IGZpcnN0LicsICdlcnJvcicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBjbG9zZURlcG9zaXRSZXF1aXJlZE1vZGFsKCkgew0KICAgICAgICAgICAgdmFyIG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVwb3NpdFJlcXVpcmVkTW9kYWwnKTsNCiAgICAgICAgICAgIGlmIChtKSBtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBnb1RvRGVwb3NpdEZyb21JbnZlc3QoKSB7DQogICAgICAgICAgICBjbG9zZURlcG9zaXRSZXF1aXJlZE1vZGFsKCk7DQogICAgICAgICAgICBzaG93U2VjdGlvbignd2FsbGV0cycpOw0KICAgICAgICAgICAgc2V0VGltZW91dChzaG93RGVwb3NpdE1vZGFsLCAzMDApOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBmdW5jdGlvbiBjb3B5RGVwb3NpdFJlcVdhbGxldCgpIHsNCiAgICAgICAgICAgIHZhciBhZGRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlcG9zaXRSZXFXYWxsZXQnKTsNCiAgICAgICAgICAgIGlmIChhZGRyKSBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChhZGRyLnRleHRDb250ZW50KS50aGVuKGZ1bmN0aW9uKCkgeyBzaG93QWxlcnQoJ1dhbGxldCBhZGRyZXNzIGNvcGllZCEnLCAnc3VjY2VzcycpOyB9KS5jYXRjaChmdW5jdGlvbigpIHsgc2hvd0FsZXJ0KCdGYWlsZWQgdG8gY29weScsICdlcnJvcicpOyB9KTsNCiAgICAgICAgfQ0KDQogICAgICAgIGZ1bmN0aW9uIHdpdGhkcmF3UHJvZml0KGludmVzdG1lbnRJZCwgYXZhaWxhYmxlQW1vdW50LCBjdXJyZW5jeSkgew0KICAgICAgICAgICAgdmFyIGNyeXB0byA9IGNyeXB0b0RhdGFbY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBjdXJyZW5jeS50b1VwcGVyQ2FzZSgpIH07DQogICAgICAgICAgICBzaG93Q29uZmlybU1vZGFsKCdXaXRoZHJhdyAnICsgZm9ybWF0Q2xlYW4oYXZhaWxhYmxlQW1vdW50LCA0KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnIHByb2ZpdCB0byB5b3VyIHdhbGxldD8gVGhpcyB3aWxsIHJlcXVpcmUgYWRtaW4gYXBwcm92YWwuJywgZnVuY3Rpb24oKSB7IGRvV2l0aGRyYXdQcm9maXQoaW52ZXN0bWVudElkLCBhdmFpbGFibGVBbW91bnQsIGN1cnJlbmN5KTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9XaXRoZHJhd1Byb2ZpdChpbnZlc3RtZW50SWQsIGF2YWlsYWJsZUFtb3VudCwgY3VycmVuY3kpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMvd2l0aGRyYXctcHJvZml0JywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBpbnZlc3RtZW50SWQ6IGludmVzdG1lbnRJZCwgYW1vdW50OiBhdmFpbGFibGVBbW91bnQsIGN1cnJlbmN5OiBjdXJyZW5jeSB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUHJvZml0IHdpdGhkcmF3YWwgcmVxdWVzdCBzdWJtaXR0ZWQhIFdhaXRpbmcgZm9yIGFkbWluIGFwcHJvdmFsLicsICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGxvYWRJbnZlc3RtZW50cygpOyANCiAgICAgICAgICAgICAgICBsb2FkVHJhbnNhY3Rpb25zKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdXaXRoZHJhd2FsIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEludmVzdG1lbnRzKCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgYXBpQ2FsbCgnaW52ZXN0bWVudHMnKSwgaW52ZXN0bWVudHMgPSBkYXRhLmludmVzdG1lbnRzIHx8IFtdOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVJbnZlc3RtZW50c0xpc3QnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZWRTZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbXBsZXRlZEludmVzdG1lbnRzU2VjdGlvbicpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21wbGV0ZWRJbnZlc3RtZW50c0xpc3QnKTsNCiAgICAgICAgICAgICAgICBjb25zdCB3aXRoZHJhd25TZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dpdGhkcmF3bkludmVzdG1lbnRzU2VjdGlvbicpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHdpdGhkcmF3bkNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3aXRoZHJhd25JbnZlc3RtZW50c0xpc3QnKTsNCiAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZUNvbnRhaW5lcikgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGxldCB0b3RhbFByb2ZpdFVTRCA9IDAsIHRvdGFsQXZhaWxhYmxlVVNEID0gMDsNCiAgICAgICAgICAgICAgICBhY3RpdmVDb250YWluZXIuaW5uZXJIVE1MID0gJyc7DQogICAgICAgICAgICAgICAgaWYgKGNvbXBsZXRlZENvbnRhaW5lcikgY29tcGxldGVkQ29udGFpbmVyLmlubmVySFRNTCA9ICcnOw0KICAgICAgICAgICAgICAgIGlmICh3aXRoZHJhd25Db250YWluZXIpIHdpdGhkcmF3bkNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsNCiAgICAgICAgICAgICAgICBpZiAoaW52ZXN0bWVudHMubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC04IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIGludmVzdG1lbnRzIHlldDwvcD48cCBjbGFzcz0idGV4dC1zbSBtdC0xIj5DaG9vc2UgYSBwbGFuIGFib3ZlIHRvIHN0YXJ0IGVhcm5pbmc8L3A+PC9kaXY+JzsNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ludmVzdFRvdGFsUHJvZml0JykudGV4dENvbnRlbnQgPSAnJDAuMDAnOw0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0bWVudFByb2ZpdEJhbGFuY2UnKS50ZXh0Q29udGVudCA9ICckMC4wMCc7DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlTGlzdCA9IGludmVzdG1lbnRzLmZpbHRlcihpbnYgPT4gaW52LnN0YXR1cyA9PT0gJ2FjdGl2ZScpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZExpc3QgPSBpbnZlc3RtZW50cy5maWx0ZXIoaW52ID0+IGludi5zdGF0dXMgPT09ICdjb21wbGV0ZWQnICYmIGludi5hdmFpbGFibGVQcm9maXQgPiAwKTsNCiAgICAgICAgICAgICAgICBjb25zdCB3aXRoZHJhd25MaXN0ID0gaW52ZXN0bWVudHMuZmlsdGVyKGludiA9PiBpbnYuc3RhdHVzID09PSAnY29tcGxldGVkJyAmJiBpbnYuYXZhaWxhYmxlUHJvZml0IDw9IDApOw0KICAgICAgICAgICAgICAgIGlmIChjb21wbGV0ZWRTZWN0aW9uKSBjb21wbGV0ZWRTZWN0aW9uLmNsYXNzTGlzdC50b2dnbGUoJ2hpZGRlbicsIGNvbXBsZXRlZExpc3QubGVuZ3RoID09PSAwKTsNCiAgICAgICAgICAgICAgICBpZiAod2l0aGRyYXduU2VjdGlvbikgd2l0aGRyYXduU2VjdGlvbi5jbGFzc0xpc3QudG9nZ2xlKCdoaWRkZW4nLCB3aXRoZHJhd25MaXN0Lmxlbmd0aCA9PT0gMCk7DQogICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUxpc3QubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0icC02IHRleHQtY2VudGVyIHRleHQtZ3JheS01MDAiPjxwPk5vIGFjdGl2ZSBpbnZlc3RtZW50czwvcD48cCBjbGFzcz0idGV4dC1zbSBtdC0xIj5BbGwgcGxhbnMgaGF2ZSBiZWVuIGNvbXBsZXRlZDwvcD48L2Rpdj4nOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBhY3RpdmVMaXN0LmZvckVhY2goaW52ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHByaWNlID0gKGNyeXB0b0RhdGFbaW52LmN1cnJlbmN5XSAmJiBjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0ucHJpY2UpIHx8IDE7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZml0VVNEICs9IChpbnYuYWNjdW11bGF0ZWRQcm9maXQgfHwgMCkgKiBwcmljZTsNCiAgICAgICAgICAgICAgICAgICAgdG90YWxBdmFpbGFibGVVU0QgKz0gaW52LmF2YWlsYWJsZVByb2ZpdCAqIHByaWNlOw0KICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb250YWluZXIuYXBwZW5kQ2hpbGQocmVuZGVySW52Q2FyZChpbnYsIHRydWUsIGZhbHNlKSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgY29tcGxldGVkTGlzdC5mb3JFYWNoKGludiA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciBwcmljZSA9IChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxOw0KICAgICAgICAgICAgICAgICAgICB0b3RhbFByb2ZpdFVTRCArPSAoaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IDApICogcHJpY2U7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsQXZhaWxhYmxlVVNEICs9IGludi5hdmFpbGFibGVQcm9maXQgKiBwcmljZTsNCiAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlbmRlckludkNhcmQoaW52LCBmYWxzZSwgZmFsc2UpKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB3aXRoZHJhd25MaXN0LmZvckVhY2goaW52ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHByaWNlID0gKGNyeXB0b0RhdGFbaW52LmN1cnJlbmN5XSAmJiBjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0ucHJpY2UpIHx8IDE7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZml0VVNEICs9IChpbnYuYWNjdW11bGF0ZWRQcm9maXQgfHwgMCkgKiBwcmljZTsNCiAgICAgICAgICAgICAgICAgICAgd2l0aGRyYXduQ29udGFpbmVyLmFwcGVuZENoaWxkKHJlbmRlckludkNhcmQoaW52LCBmYWxzZSwgdHJ1ZSkpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsUHJvZml0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW52ZXN0VG90YWxQcm9maXQnKTsNCiAgICAgICAgICAgICAgICBpZiAodG90YWxQcm9maXRFbCkgdG90YWxQcm9maXRFbC50ZXh0Q29udGVudCA9ICckJyArIGZvcm1hdENsZWFuKHRvdGFsUHJvZml0VVNELCAyKTsNCiAgICAgICAgICAgICAgICBjb25zdCBpbnZQcm9maXRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnZlc3RtZW50UHJvZml0QmFsYW5jZScpOw0KICAgICAgICAgICAgICAgIGlmIChpbnZQcm9maXRFbCkgaW52UHJvZml0RWwudGV4dENvbnRlbnQgPSAnJCcgKyBmb3JtYXRDbGVhbih0b3RhbEF2YWlsYWJsZVVTRCwgMik7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBpbnZlc3RtZW50czonLCBlcnJvcik7IH0NCiAgICAgICAgfQ0KDQoNCiAgICAgICAgZnVuY3Rpb24gcmVuZGVySW52Q2FyZChpbnYsIGlzQWN0aXZlLCBpc1dpdGhkcmF3bikgew0KICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBpbnYuY3VycmVuY3kudG9VcHBlckNhc2UoKSwgaWNvbjogJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTVweDsgZm9udC13ZWlnaHQ6NzAwOyI+4oKuPC9zcGFuPicsIGNvbG9yOiAndXNkdCcgfTsNCiAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9IGlzV2l0aGRyYXduID8gJ2dsYXNzIHJvdW5kZWQteGwgcC00IGJvcmRlci1sLTIgYm9yZGVyLWdyYXktNTAwLzQwJyA6ICdnbGFzcyByb3VuZGVkLXhsIHAtNCc7DQogICAgICAgICAgICBjb25zdCBzYyA9IGlzQWN0aXZlID8gJ3RleHQtZW1lcmFsZC00MDAnIDogKGlzV2l0aGRyYXduID8gJ3RleHQtZ3JheS00MDAnIDogJ3RleHQtYmx1ZS00MDAnKTsNCiAgICAgICAgICAgIGNvbnN0IHNiID0gaXNBY3RpdmUgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogKGlzV2l0aGRyYXduID8gJ2JnLWdyYXktNTAwLzEwJyA6ICdiZy1ibHVlLTUwMC8xMCcpOw0KICAgICAgICAgICAgY29uc3Qgc2wgPSBpc0FjdGl2ZSA/ICdBQ1RJVkUnIDogKGlzV2l0aGRyYXduID8gJ1dJVEhEUkFXTicgOiAnQ09NUExFVEVEJyk7DQogICAgICAgICAgICB2YXIgYWNjUHJvZml0ID0gaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IChpbnYuZGFpbHlQcm9maXQgKiBpbnYuZGF5c0VsYXBzZWQpIHx8IDA7DQogICAgICAgICAgICB2YXIgcHJvZml0VVNEID0gYWNjUHJvZml0ICogKChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxKTsNCiAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gbWItMyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPjxkaXYgY2xhc3M9ImNyeXB0by1pY29uICcgKyBjcnlwdG8uY29sb3IgKyAnIHRleHQtc20iPicgKyBjcnlwdG8uaWNvbiArICc8L2Rpdj48ZGl2PjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUiPicgKyBpbnYucGxhbk5hbWUgKyAnPC9wPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPicgKyBmb3JtYXRDbGVhbihpbnYuYW1vdW50KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnPC9wPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtbWVkaXVtICcgKyBzYyArICcgcHgtMiBweS0xIHJvdW5kZWQtbGcgJyArIHNiICsgJyI+JyArIHNsICsgJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJtYi0zIj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIHRleHQtZ3JheS00MDAgbWItMSI+PHNwYW4+UHJvZ3Jlc3M6ICcgKyBpbnYucHJvZ3Jlc3MgKyAnJTwvc3Bhbj48c3Bhbj4nICsgaW52LmRheXNFbGFwc2VkICsgJy8nICsgaW52LmR1cmF0aW9uRGF5cyArICcgZGF5czwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJoLTIgYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlbiI+PGRpdiBjbGFzcz0iaC1mdWxsIHJvdW5kZWQtZnVsbCBiZy1ncmFkaWVudC10by1yIGZyb20tYW1iZXItNTAwIHRvLW9yYW5nZS01MDAgdHJhbnNpdGlvbi1hbGwiIHN0eWxlPSJ3aWR0aDogJyArIGludi5wcm9ncmVzcyArICclIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJncmlkIGdyaWQtY29scy0zIGdhcC0yIG1iLTMiPjxkaXYgY2xhc3M9ImJnLWdyYXktODAwIHJvdW5kZWQtbGcgcC0yIj48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj5EYWlseTwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZW1lcmFsZC00MDAiPicgKyBmb3JtYXRDbGVhbihpbnYuZGFpbHlQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbCArICc8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPlRvdGFsICgnICsgaW52LmRheXNFbGFwc2VkICsgJ2QpPC9wPjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci00MDAiPicgKyBmb3JtYXRDbGVhbihhY2NQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbCArICc8L3A+PHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI+fiQnICsgZm9ybWF0Q2xlYW4ocHJvZml0VVNELCAwKSArICc8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYmctZ3JheS04MDAgcm91bmRlZC1sZyBwLTIiPjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS00MDAiPkF2YWlsYWJsZTwvcD48cCBjbGFzcz0idGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtYmx1ZS00MDAiPicgKyBmb3JtYXRDbGVhbihpbnYuYXZhaWxhYmxlUHJvZml0LCA0KSArICcgJyArIGNyeXB0by5zeW1ib2wgKyAnPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFjdGlvbi1hcmVhIj48L2Rpdj4nOw0KICAgICAgICAgICAgY29uc3QgYWN0aW9uQXJlYSA9IGRpdi5xdWVyeVNlbGVjdG9yKCcuYWN0aW9uLWFyZWEnKTsNCiAgICAgICAgICAgIGlmIChpc0FjdGl2ZSkgew0KICAgICAgICAgICAgICAgIGFjdGlvbkFyZWEuaW5uZXJIVE1MID0gJzxidXR0b24gZGlzYWJsZWQgY2xhc3M9InctZnVsbCBweS0yIG10LTIgYmctZ3JheS03MDAvNTAgdGV4dC1ncmF5LTUwMCBmb250LXNlbWlib2xkIHJvdW5kZWQteGwgdGV4dC1zbSBjdXJzb3Itbm90LWFsbG93ZWQiPjxpIGNsYXNzPSJmYXMgZmEtd2FsbGV0IG1yLTIiPjwvaT5XaXRoZHJhdyBQcm9maXQ8L2J1dHRvbj48ZGl2IGNsYXNzPSJtdC0yIGJnLWFtYmVyLTUwMC8xMCBib3JkZXIgYm9yZGVyLWFtYmVyLTUwMC8yMCByb3VuZGVkLWxnIHB4LTMgcHktMiBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbi10cmlhbmdsZSB0ZXh0LWFtYmVyLTQwMCB0ZXh0LXhzIj48L2k+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1hbWJlci00MDAiPlRoaXMgcGxhbiBpcyBzdGlsbCBydW5uaW5nLiBQcm9maXQgd2l0aGRyYXdhbCB3aWxsIGJlIGF2YWlsYWJsZSBhZnRlciAnICsgaW52LmR1cmF0aW9uRGF5cyArICcgZGF5cy48L3NwYW4+PC9kaXY+JzsNCiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNXaXRoZHJhd24pIHsNCiAgICAgICAgICAgICAgICBhY3Rpb25BcmVhLmlubmVySFRNTCA9ICc8YnV0dG9uIGRpc2FibGVkIGNsYXNzPSJ3LWZ1bGwgcHktMiBtdC0yIGJnLWdyYXktNzAwLzUwIHRleHQtZ3JheS01MDAgZm9udC1zZW1pYm9sZCByb3VuZGVkLXhsIHRleHQtc20gY3Vyc29yLW5vdC1hbGxvd2VkIj48aSBjbGFzcz0iZmFzIGZhLXdhbGxldCBtci0yIj48L2k+QWxsIFByb2ZpdCBXaXRoZHJhd248L2J1dHRvbj4nOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICBjb25zdCBidG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsNCiAgICAgICAgICAgICAgICBidG4uY2xhc3NOYW1lID0gJ3ctZnVsbCBweS0yIG10LTIgYmctZ3JhZGllbnQtdG8tciBmcm9tLWFtYmVyLTYwMCB0by1vcmFuZ2UtNjAwIGhvdmVyOmZyb20tYW1iZXItNzAwIGhvdmVyOnRvLW9yYW5nZS03MDAgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHJvdW5kZWQteGwgdGV4dC1zbSc7DQogICAgICAgICAgICAgICAgYnRuLmlubmVySFRNTCA9ICc8aSBjbGFzcz0iZmFzIGZhLXdhbGxldCBtci0yIj48L2k+V2l0aGRyYXcgJyArIGZvcm1hdENsZWFuKGludi5hdmFpbGFibGVQcm9maXQsIDQpICsgJyAnICsgY3J5cHRvLnN5bWJvbCArICcgUHJvZml0JzsNCiAgICAgICAgICAgICAgICBidG4ub25jbGljayA9IGZ1bmN0aW9uKCkgeyB3aXRoZHJhd1Byb2ZpdChpbnYuaWQsIGludi5hdmFpbGFibGVQcm9maXQsIGludi5jdXJyZW5jeSk7IH07DQogICAgICAgICAgICAgICAgYWN0aW9uQXJlYS5hcHBlbmRDaGlsZChidG4pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIGRpdjsNCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVDb3VudGRvd25zKCkgeyANCiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jb3VudGRvd24nKS5mb3JFYWNoKGVsID0+IHsgDQogICAgICAgICAgICAgICAgbGV0IHNlY3MgPSBwYXJzZUludChlbC5kYXRhc2V0LnNlY3MpIHx8IDA7IA0KICAgICAgICAgICAgICAgIHNlY3MgPSBNYXRoLm1heCgwLCBzZWNzIC0gNjApOyANCiAgICAgICAgICAgICAgICBlbC5kYXRhc2V0LnNlY3MgPSBzZWNzOyANCiAgICAgICAgICAgICAgICBpZiAoc2VjcyA+IDApIHsgDQogICAgICAgICAgICAgICAgICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihzZWNzIC8gMzYwMCk7IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcigoc2VjcyAlIDM2MDApIC8gNjApOyANCiAgICAgICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSBob3VycyArICdoICcgKyBtaW51dGVzICsgJ20nOyANCiAgICAgICAgICAgICAgICB9IGVsc2UgeyANCiAgICAgICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSAnRHVlLi4uJzsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgIH0pOyANCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRBZG1pblBsYW5zKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhcGlDYWxsKCdhZG1pbi9wbGFucycpLCBwbGFucyA9IGRhdGEucGxhbnMgfHwgW10sIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZG1pblBsYW5zQ29udGFpbmVyJyk7IA0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47IA0KICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsgDQogICAgICAgICAgICAgICAgaWYgKHBsYW5zLmxlbmd0aCA9PT0gMCkgeyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJwLTQgdGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCI+PHA+Tm8gcGxhbnMgY3JlYXRlZCB5ZXQ8L3A+PC9kaXY+JzsgDQogICAgICAgICAgICAgICAgICAgIHJldHVybjsgDQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICBwbGFucy5mb3JFYWNoKHBsYW4gPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtwbGFuLmN1cnJlbmN5XSB8fCB7IHN5bWJvbDogcGxhbi5jdXJyZW5jeS50b1VwcGVyQ2FzZSgpIH07IA0KICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZ2xhc3Mgcm91bmRlZC14bCBwLTMgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuJzsgDQogICAgICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0iZmxleC0xIG1pbi13LTAiPjxwIGNsYXNzPSJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgdHJ1bmNhdGUiPiR7cGxhbi5uYW1lfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke3BsYW4uZGFpbHlSb2lQZXJjZW50fSUgZGFpbHkgfCAke3BsYW4uZHVyYXRpb25EYXlzfSBkYXlzIHwgJHtjcnlwdG8uc3ltYm9sfTwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBtbC0yIj48ZGl2IGNsYXNzPSJ0ZXh0LXJpZ2h0Ij48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2Zvcm1hdENsZWFuKHBsYW4ubWluQW1vdW50KX0gLSAke2Zvcm1hdENsZWFuKHBsYW4ubWF4QW1vdW50KX08L3A+PHNwYW4gY2xhc3M9InRleHQteHMgJHtwbGFuLmlzQWN0aXZlID8gJ3RleHQtZW1lcmFsZC00MDAnIDogJ3RleHQtZ3JheS00MDAnfSI+JHtwbGFuLmlzQWN0aXZlID8gJ0FjdGl2ZScgOiAnSW5hY3RpdmUnfTwvc3Bhbj48L2Rpdj48YnV0dG9uIGNsYXNzPSJkZWxldGUtcGxhbi1idG4gdy03IGgtNyByb3VuZGVkLWxnIGJnLXJvc2UtNTAwLzIwIGhvdmVyOmJnLXJvc2UtNTAwLzQwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRyYW5zaXRpb24tY29sb3JzIiBkYXRhLXBsYW4taWQ9IiR7cGxhbi5pZH0iIGRhdGEtcGxhbi1uYW1lPSIke3BsYW4ubmFtZS5yZXBsYWNlKC8iL2csICcmcXVvdDsnKX0iIHRpdGxlPSJEZWxldGUgcGxhbiI+PGkgY2xhc3M9ImZhcyBmYS10cmFzaCB0ZXh0LXJvc2UtNDAwIHRleHQteHMiPjwvaT48L2J1dHRvbj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7IA0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIC8vIEF0dGFjaCBkZWxldGUgaGFuZGxlcnMgYWZ0ZXIgRE9NIGluc2VydGlvbiAoc2FmZSwgbm8gaW5saW5lIG9uY2xpY2spDQogICAgICAgICAgICAgICAgY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kZWxldGUtcGxhbi1idG4nKS5mb3JFYWNoKGJ0biA9PiB7DQogICAgICAgICAgICAgICAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBpZCA9IHBhcnNlSW50KGJ0bi5kYXRhc2V0LnBsYW5JZCk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgcG5hbWUgPSBidG4uZGF0YXNldC5wbGFuTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb25maXJtTW9kYWwoJ0RlbGV0ZSAiJyArIHBuYW1lICsgJyI/IFRoaXMgY2Fubm90IGJlIHVuZG9uZS4nLCBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlDYWxsKCdhZG1pbi9wbGFucycsIHsgbWV0aG9kOiAnREVMRVRFJywgYm9keTogeyBwbGFuSWQ6IHBpZCB9IH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyBzaG93QWxlcnQoJ1BsYW4gZGVsZXRlZCcsICdzdWNjZXNzJyk7IGxvYWRBZG1pblBsYW5zKCk7IH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihlcnIpIHsgc2hvd0FsZXJ0KCdEZWxldGUgZmFpbGVkOiAnICsgZXJyLm1lc3NhZ2UsICdlcnJvcicpOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBhZG1pbiBwbGFuczonLCBlcnJvcik7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGVQbGFuKCkgeyANCiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk5hbWUnKS52YWx1ZS50cmltKCk7IA0KICAgICAgICAgICAgY29uc3QgbWluQW1vdW50ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk1pbicpLnZhbHVlKTsgDQogICAgICAgICAgICBjb25zdCBtYXhBbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuTWF4JykudmFsdWUpOyANCiAgICAgICAgICAgIGNvbnN0IGRhaWx5Um9pID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbkRhaWx5Um9pJykudmFsdWUpOyANCiAgICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld1BsYW5EdXJhdGlvbicpLnZhbHVlKTsgDQogICAgICAgICAgICBjb25zdCBjdXJyZW5jeSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuQ3VycmVuY3knKS52YWx1ZTsgDQogICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuRGVzYycpLnZhbHVlLnRyaW0oKTsgDQogICAgICAgICAgICBpZiAoIW5hbWUgfHwgIW1pbkFtb3VudCB8fCAhbWF4QW1vdW50IHx8ICFkYWlseVJvaSB8fCAhZHVyYXRpb24pIHsgc2hvd0FsZXJ0KCdQbGVhc2UgZmlsbCBpbiBhbGwgcmVxdWlyZWQgZmllbGRzJywgJ2Vycm9yJyk7IHJldHVybjsgfSANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGF3YWl0IGFwaUNhbGwoJ2FkbWluL3BsYW5zJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogeyBuYW1lLCBkZXNjcmlwdGlvbiwgbWluQW1vdW50LCBtYXhBbW91bnQsIGRhaWx5Um9pUGVyY2VudDogZGFpbHlSb2ksIGR1cmF0aW9uRGF5czogZHVyYXRpb24sIGN1cnJlbmN5IH0gfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGxhbiBjcmVhdGVkIHN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk5hbWUnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbk1pbicpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuTWF4JykudmFsdWUgPSAnJzsgDQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25ld1BsYW5EYWlseVJvaScpLnZhbHVlID0gJyc7IA0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXdQbGFuRHVyYXRpb24nKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmV3UGxhbkRlc2MnKS52YWx1ZSA9ICcnOyANCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5QbGFucygpOyANCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGNyZWF0ZSBwbGFuOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0gDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBkZWxldGVQbGFuKHBsYW5JZCwgcGxhbk5hbWUpIHsNCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOw0KICAgICAgICAgICAgc2hvd0NvbmZpcm1Nb2RhbCgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAiJyArIHBsYW5OYW1lICsgJyI/IFRoaXMgcGxhbiB3aWxsIGJlIHBlcm1hbmVudGx5IHJlbW92ZWQgZnJvbSB0aGUgc3lzdGVtLicsIGZ1bmN0aW9uKCkgeyBkb0RlbGV0ZVBsYW4ocGxhbklkKTsgfSk7DQogICAgICAgIH0NCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9EZWxldGVQbGFuKHBsYW5JZCkgew0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9wbGFucycsIHsgbWV0aG9kOiAnREVMRVRFJywgYm9keTogeyBwbGFuSWQ6IHBsYW5JZCB9IH0pOw0KICAgICAgICAgICAgICAgIHNob3dBbGVydCgnUGxhbiBkZWxldGVkIHN1Y2Nlc3NmdWxseScsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgbG9hZEFkbWluUGxhbnMoKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRmFpbGVkIHRvIGRlbGV0ZSBwbGFuOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KDQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRSZWZlcnJhbENvZGVzKCkgew0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47DQogICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgIGNvbnN0IFtjb2Rlc0RhdGEsIHN0YXRzRGF0YV0gPSBhd2FpdCBQcm9taXNlLmFsbChbDQogICAgICAgICAgICAgICAgICAgIGFwaUNhbGwoJ2FkbWluL3JlZmVycmFsLWNvZGVzJyksDQogICAgICAgICAgICAgICAgICAgIGFwaUNhbGwoJ2FkbWluL3JlZmVycmFsLWNvZGVzL3N0YXRzJykNCiAgICAgICAgICAgICAgICBdKTsNCiAgICAgICAgICAgICAgICBjb25zdCBjb2RlcyA9IGNvZGVzRGF0YS5jb2RlcyB8fCBbXTsNCiAgICAgICAgICAgICAgICBjb25zdCBzdGF0cyA9IHN0YXRzRGF0YS5zdGF0cyB8fCB7fTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmU3RhdFRvdGFsJykudGV4dENvbnRlbnQgPSBzdGF0cy50b3RhbENvZGVzIHx8IDA7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZlN0YXRBY3RpdmUnKS50ZXh0Q29udGVudCA9IHN0YXRzLmFjdGl2ZUNvZGVzIHx8IDA7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZlN0YXRVc2VzJykudGV4dENvbnRlbnQgPSBzdGF0cy50b3RhbFVzZXMgfHwgMDsNCiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmZXJyYWxDb2Rlc0NvbnRhaW5lcicpOw0KICAgICAgICAgICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47DQogICAgICAgICAgICAgICAgaWYgKGNvZGVzLmxlbmd0aCA9PT0gMCkgeyBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyByZWZlcnJhbCBjb2RlcyB5ZXQ8L3A+PC9kaXY+JzsgcmV0dXJuOyB9DQogICAgICAgICAgICAgICAgbGV0IGh0bWwgPSAnPHRhYmxlIGNsYXNzPSJ3LWZ1bGwgdGV4dC1zbSI+PHRoZWFkPjx0ciBjbGFzcz0idGV4dC1ncmF5LTQwMCBib3JkZXItYiBib3JkZXItZ3JheS03MDAiPjx0aCBjbGFzcz0idGV4dC1sZWZ0IHB5LTIgcHgtMiI+Q29kZTwvdGg+PHRoIGNsYXNzPSJ0ZXh0LWxlZnQgcHktMiBweC0yIj5Cb251czwvdGg+PHRoIGNsYXNzPSJ0ZXh0LWNlbnRlciBweS0yIHB4LTIiPlVzZWQ8L3RoPjx0aCBjbGFzcz0idGV4dC1jZW50ZXIgcHktMiBweC0yIj5TdGF0dXM8L3RoPjx0aCBjbGFzcz0idGV4dC1yaWdodCBweS0yIHB4LTIiPkFjdGlvbjwvdGg+PC90cj48L3RoZWFkPjx0Ym9keT4nOw0KICAgICAgICAgICAgICAgIGNvZGVzLmZvckVhY2goYyA9PiB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NvbG9yID0gYy5pc0FjdGl2ZSA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6ICd0ZXh0LWdyYXktNDAwJzsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzVGV4dCA9IGMuaXNBY3RpdmUgPyAnQWN0aXZlJyA6ICdJbmFjdGl2ZSc7DQogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gYDx0ciBjbGFzcz0iYm9yZGVyLWIgYm9yZGVyLWdyYXktODAwIGhvdmVyOmJnLXdoaXRlLzUiPjx0ZCBjbGFzcz0icHktMiBweC0yIGZvbnQtbW9ubyB0ZXh0LXdoaXRlIj4ke2MuY29kZX08L3RkPjx0ZCBjbGFzcz0icHktMiBweC0yIHRleHQtd2hpdGUiPiR7Yy5ib251c0Ftb3VudH0gJHtjLmN1cnJlbmN5LnRvVXBwZXJDYXNlKCl9PC90ZD48dGQgY2xhc3M9InB5LTIgcHgtMiB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIj5OL0E8L3RkPjx0ZCBjbGFzcz0icHktMiBweC0yIHRleHQtY2VudGVyICR7c3RhdHVzQ29sb3J9Ij4ke3N0YXR1c1RleHR9PC90ZD48dGQgY2xhc3M9InB5LTIgcHgtMiB0ZXh0LXJpZ2h0Ij48YnV0dG9uIG9uY2xpY2s9ImRlbGV0ZVJlZmVycmFsQ29kZSgke2MuaWR9LCAnJHtjLmNvZGV9JykiIGNsYXNzPSJ0ZXh0LXJvc2UtNDAwIGhvdmVyOnRleHQtcm9zZS0zMDAgcC0xIj48aSBjbGFzcz0iZmFzIGZhLXRyYXNoIj48L2k+PC9idXR0b24+PC90ZD48L3RyPmA7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPic7DQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBjb25zb2xlLmxvZygnRmFpbGVkIHRvIGxvYWQgcmVmZXJyYWwgY29kZXM6JywgZXJyb3IpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGVSZWZlcnJhbENvZGUoZSkgew0KICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOw0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47DQogICAgICAgICAgICBjb25zdCBjb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZkNvZGVJbnB1dCcpLnZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICAgICAgY29uc3QgYm9udXNBbW91bnQgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWZCb251c0lucHV0JykudmFsdWUpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVuY3kgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmQ3VycmVuY3lJbnB1dCcpLnZhbHVlOw0KICAgICAgICAgICAgY29uc3QgbWF4VXNhZ2UgPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmTWF4VXNhZ2VJbnB1dCcpLnZhbHVlKSB8fCAxOw0KICAgICAgICAgICAgaWYgKCFjb2RlIHx8IGNvZGUubGVuZ3RoIDwgMykgeyBzaG93QWxlcnQoJ0NvZGUgbXVzdCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMnLCAnZXJyb3InKTsgcmV0dXJuIGZhbHNlOyB9DQogICAgICAgICAgICBpZiAoIWJvbnVzQW1vdW50IHx8IGJvbnVzQW1vdW50IDw9IDApIHsgc2hvd0FsZXJ0KCdCb251cyBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCcsICdlcnJvcicpOyByZXR1cm4gZmFsc2U7IH0NCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcmVmZXJyYWwtY29kZXMnLCB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiB7IGNvZGUsIGJvbnVzQW1vdW50LCBjdXJyZW5jeSwgbWF4VXNhZ2UgfSB9KTsNCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1JlZmVycmFsIGNvZGUgY3JlYXRlZCEnLCAnc3VjY2VzcycpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcmVhdGVSZWZlcnJhbEZvcm0nKS5yZXNldCgpOw0KICAgICAgICAgICAgICAgIGxvYWRSZWZlcnJhbENvZGVzKCk7DQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgeyBzaG93QWxlcnQoJ0ZhaWxlZDogJyArIChlcnJvci5tZXNzYWdlIHx8ICdDb2RlIG1heSBhbHJlYWR5IGV4aXN0JyksICdlcnJvcicpOyB9DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBkZWxldGVSZWZlcnJhbENvZGUoY29kZUlkLCBjb2RlKSB7DQogICAgICAgICAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsNCiAgICAgICAgICAgIHNob3dDb25maXJtTW9kYWwoJ0RlbGV0ZSByZWZlcnJhbCBjb2RlICInICsgY29kZSArICciPycsIGZ1bmN0aW9uKCkgeyBkb0RlbGV0ZVJlZmVycmFsQ29kZShjb2RlSWQpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb0RlbGV0ZVJlZmVycmFsQ29kZShjb2RlSWQpIHsNCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgYXdhaXQgYXBpQ2FsbCgnYWRtaW4vcmVmZXJyYWwtY29kZXMnLCB7IG1ldGhvZDogJ0RFTEVURScsIGJvZHk6IHsgY29kZUlkOiBjb2RlSWQgfSB9KTsNCiAgICAgICAgICAgICAgICBzaG93QWxlcnQoJ1JlZmVycmFsIGNvZGUgZGVsZXRlZCcsICdzdWNjZXNzJyk7DQogICAgICAgICAgICAgICAgbG9hZFJlZmVycmFsQ29kZXMoKTsNCiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHNob3dBbGVydCgnRGVsZXRlIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBhY2NydWVQcm9maXRzKCkgeyANCiAgICAgICAgICAgIGlmICghaXNBZG1pbikgcmV0dXJuOyANCiAgICAgICAgICAgIHNob3dDb25maXJtTW9kYWwoJ1RoaXMgd2lsbCBkaXN0cmlidXRlIGRhaWx5IHByb2ZpdHMgdG8gQUxMIGFjdGl2ZSBpbnZlc3RtZW50cy4gQ29udGludWU/JywgZnVuY3Rpb24oKSB7IGRvQWNjcnVlUHJvZml0cygpOyB9KTsNCiAgICAgICAgfQ0KICAgICAgICBhc3luYyBmdW5jdGlvbiBkb0FjY3J1ZVByb2ZpdHMoKSB7IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2ludmVzdG1lbnRzL2FjY3J1ZScsIHsgbWV0aG9kOiAnUE9TVCcgfSk7IA0KICAgICAgICAgICAgICAgIHNob3dBbGVydChkYXRhLm1lc3NhZ2UgKyAnLiBUb3RhbCBkaXN0cmlidXRlZDogJyArIGZvcm1hdENsZWFuKGRhdGEudG90YWxQcm9maXREaXN0cmlidXRlZCwgNCksICdzdWNjZXNzJyk7IA0KICAgICAgICAgICAgICAgIGxvYWRBZG1pbkludmVzdG1lbnRzKCk7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdBY2NydWFsIGZhaWxlZDogJyArIGVycm9yLm1lc3NhZ2UsICdlcnJvcicpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZEFkbWluSW52ZXN0bWVudHMoKSB7IA0KICAgICAgICAgICAgaWYgKCFpc0FkbWluKSByZXR1cm47IA0KICAgICAgICAgICAgdHJ5IHsgDQogICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFwaUNhbGwoJ2FkbWluL2ludmVzdG1lbnRzJyksIGludmVzdG1lbnRzID0gZGF0YS5pbnZlc3RtZW50cyB8fCBbXSwgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbWluSW52ZXN0bWVudHNDb250YWluZXInKTsgDQogICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9ICcnOyANCiAgICAgICAgICAgICAgICBpZiAoaW52ZXN0bWVudHMubGVuZ3RoID09PSAwKSB7IA0KICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9InAtNCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktNTAwIj48cD5ObyBpbnZlc3RtZW50cyBmb3VuZDwvcD48L2Rpdj4nOyANCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyANCiAgICAgICAgICAgICAgICB9IA0KICAgICAgICAgICAgICAgIGxldCBodG1sID0gJzxkaXYgY2xhc3M9InNwYWNlLXktMyI+JzsgDQogICAgICAgICAgICAgICAgaW52ZXN0bWVudHMuZm9yRWFjaChpbnYgPT4geyANCiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldIHx8IHsgc3ltYm9sOiBpbnYuY3VycmVuY3kudG9VcHBlckNhc2UoKSB9OyANCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzQ29sb3IgPSBpbnYuc3RhdHVzID09PSAnYWN0aXZlJyA/ICd0ZXh0LWVtZXJhbGQtNDAwJyA6IChpbnYuc3RhdHVzID09PSAnY29tcGxldGVkJyA/ICd0ZXh0LWJsdWUtNDAwJyA6ICd0ZXh0LWdyYXktNDAwJyk7IA0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8ZGl2IGNsYXNzPSJnbGFzcyByb3VuZGVkLXhsIHAtMyI+PGRpdiBjbGFzcz0iZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTIiPjxkaXY+PHAgY2xhc3M9ImZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSB0ZXh0LXNtIj4ke2ludi51c2VyTmFtZSB8fCBpbnYudXNlckVtYWlsfTwvcD48cCBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNDAwIj4ke2ludi5wbGFuTmFtZX0gfCAke2Zvcm1hdENsZWFuKGludi5hbW91bnQpfSAke2NyeXB0by5zeW1ib2x9PC9wPjwvZGl2PjxzcGFuIGNsYXNzPSJ0ZXh0LXhzICR7c3RhdHVzQ29sb3J9Ij4ke2ludi5zdGF0dXMudG9VcHBlckNhc2UoKX08L3NwYW4+PGJ1dHRvbiBvbmNsaWNrPSJlZGl0SW52ZXN0bWVudFByb2ZpdCgke2ludi5pZH0sICR7aW52LnRvdGFsUHJvZml0IHx8IDB9LCAke2ludi53aXRoZHJhd25Qcm9maXQgfHwgMH0pIiBjbGFzcz0ibWwtMiB0ZXh0LWFtYmVyLTQwMCBob3Zlcjp0ZXh0LWFtYmVyLTMwMCB0ZXh0LXhzIj48aSBjbGFzcz0iZmFzIGZhLWVkaXQiPjwvaT48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXhzIHRleHQtZ3JheS01MDAiPjxzcGFuPlByb2ZpdDogJHtmb3JtYXRDbGVhbihpbnYudG90YWxQcm9maXQsIDQpfTwvc3Bhbj48c3Bhbj4ke2ludi5wcm9ncmVzc30lICgke2ludi5kYXlzRWxhcHNlZH0vJHtpbnYuZHVyYXRpb25EYXlzfSBkYXlzKTwvc3Bhbj48L2Rpdj48L2Rpdj5gOyANCiAgICAgICAgICAgICAgICB9KTsgDQogICAgICAgICAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsgDQogICAgICAgICAgICAgICAgY29udGFpbmVyLmlubmVySFRNTCA9IGh0bWw7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGxvYWQgYWRtaW4gaW52ZXN0bWVudHM6JywgZXJyb3IpOyB9IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZWRpdEludmVzdG1lbnRQcm9maXQoaW52SWQsIHRvdGFsUHJvZml0LCB3aXRoZHJhd25Qcm9maXQpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0SW52SWQnKS52YWx1ZSA9IGludklkOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRUb3RhbFByb2ZpdCcpLnZhbHVlID0gdG90YWxQcm9maXQ7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdFdpdGhkcmF3blByb2ZpdCcpLnZhbHVlID0gd2l0aGRyYXduUHJvZml0Ow0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRBdmFpbGFibGVQcm9maXQnKS50ZXh0Q29udGVudCA9IGZvcm1hdENsZWFuKHRvdGFsUHJvZml0IC0gd2l0aGRyYXduUHJvZml0LCA4KSArICcgVVNEVCc7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdEludmVzdG1lbnRNb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRJbnZlc3RtZW50TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdmbGV4Jyk7DQogICAgICAgIH0NCiAgICAgICAgZnVuY3Rpb24gY2xvc2VFZGl0SW52ZXN0bWVudE1vZGFsKCkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRJbnZlc3RtZW50TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0SW52ZXN0bWVudE1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnZmxleCcpOw0KICAgICAgICB9DQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNhdmVJbnZlc3RtZW50RWRpdCgpIHsNCiAgICAgICAgICAgIGNvbnN0IGludklkID0gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRJbnZJZCcpLnZhbHVlKTsNCiAgICAgICAgICAgIGNvbnN0IHRvdGFsUHJvZml0ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdFRvdGFsUHJvZml0JykudmFsdWUpOw0KICAgICAgICAgICAgY29uc3Qgd2l0aGRyYXduUHJvZml0ID0gcGFyc2VGbG9hdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdFdpdGhkcmF3blByb2ZpdCcpLnZhbHVlKTsNCiAgICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0SW52U3RhdHVzJykudmFsdWU7DQogICAgICAgICAgICBpZiAoIWludklkKSB7IHNob3dBbGVydCgnSW52YWxpZCBpbnZlc3RtZW50IElEJywgJ2Vycm9yJyk7IHJldHVybjsgfQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICBhd2FpdCBhcGlDYWxsKCdhZG1pbi9pbnZlc3RtZW50cy91cGRhdGUnLCB7DQogICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLA0KICAgICAgICAgICAgICAgICAgICBib2R5OiB7IGludmVzdG1lbnRJZDogaW52SWQsIHRvdGFsUHJvZml0LCB3aXRoZHJhd25Qcm9maXQsIHN0YXR1cyB9DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgY2xvc2VFZGl0SW52ZXN0bWVudE1vZGFsKCk7DQogICAgICAgICAgICAgICAgc2hvd0FsZXJ0KCdJbnZlc3RtZW50IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5JywgJ3N1Y2Nlc3MnKTsNCiAgICAgICAgICAgICAgICBsb2FkQWRtaW5JbnZlc3RtZW50cygpOw0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgc2hvd0FsZXJ0KCdVcGRhdGUgZmFpbGVkOiAnICsgZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7IH0NCiAgICAgICAgfQ0KICAgICAgICBmdW5jdGlvbiBzaG93QWxlcnQobWVzc2FnZSwgdHlwZSA9ICdlcnJvcicpIHsgDQogICAgICAgICAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N1c3RvbUFsZXJ0JyksIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydEJveCcpLCB0aXRsZURpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbGVydFRpdGxlJyksIG1lc3NhZ2VEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnRNZXNzYWdlJyksIGljb25EaXYgPSBib3gucXVlcnlTZWxlY3RvcignLmFsZXJ0LWljb24nKTsgDQogICAgICAgICAgICB0aXRsZURpdi50ZXh0Q29udGVudCA9IHR5cGUgPT09ICdlcnJvcicgPyAnRXJyb3InIDogJ1N1Y2Nlc3MnOyANCiAgICAgICAgICAgIG1lc3NhZ2VEaXYudGV4dENvbnRlbnQgPSBtZXNzYWdlOyANCiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZXJyb3InKSB7IGljb25EaXYuc3R5bGUuYmFja2dyb3VuZCA9ICcjZWY0NDQ0JzsgaWNvbkRpdi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9ImZhcyBmYS1leGNsYW1hdGlvbiI+PC9pPic7IH0gDQogICAgICAgICAgICBlbHNlIHsgaWNvbkRpdi5zdHlsZS5iYWNrZ3JvdW5kID0gJyMxMGI5ODEnOyBpY29uRGl2LmlubmVySFRNTCA9ICc8aSBjbGFzcz0iZmFzIGZhLWNoZWNrIj48L2k+JzsgfSANCiAgICAgICAgICAgIG92ZXJsYXkuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY2xvc2VBbGVydCgpIHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N1c3RvbUFsZXJ0JykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7IH0NCiAgICAgICAgZnVuY3Rpb24gdG9nZ2xlUGFzc3dvcmQoaW5wdXRJZCwgYnV0dG9uKSB7IGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCksIGljb24gPSBidXR0b24ucXVlcnlTZWxlY3RvcignaScpOyBpZiAoaW5wdXQudHlwZSA9PT0gJ3Bhc3N3b3JkJykgeyBpbnB1dC50eXBlID0gJ3RleHQnOyBpY29uLmNsYXNzTGlzdC5yZW1vdmUoJ2ZhLWV5ZScpOyBpY29uLmNsYXNzTGlzdC5hZGQoJ2ZhLWV5ZS1zbGFzaCcpOyB9IGVsc2UgeyBpbnB1dC50eXBlID0gJ3Bhc3N3b3JkJzsgaWNvbi5jbGFzc0xpc3QucmVtb3ZlKCdmYS1leWUtc2xhc2gnKTsgaWNvbi5jbGFzc0xpc3QuYWRkKCdmYS1leWUnKTsgfSB9DQogICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVByb2ZpbGVNZW51KCkgeyBjb25zdCBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVNZW51Jyk7IGlmIChtZW51KSBtZW51LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGRlbicpOyB9DQoNCiAgICAgICAgYXN5bmMgZnVuY3Rpb24gdXBkYXRlUHJvZmlsZURpc3BsYXkoKSB7IA0KICAgICAgICAgICAgaWYgKCFjdXJyZW50VXNlcikgcmV0dXJuOyANCiAgICAgICAgICAgIGNvbnN0IGlzVXNlckFkbWluID0gaXNBZG1pbiB8fCBjdXJyZW50VXNlci5yb2xlID09PSAnYWRtaW4nOw0KICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBpc1VzZXJBZG1pbiA/ICdBZG1pbicgOiAoY3VycmVudFVzZXIubmFtZSB8fCAnVXNlcicpOw0KICAgICAgICAgICAgY29uc3QgZW1haWwgPSBjdXJyZW50VXNlci5lbWFpbCB8fCAndXNlckBleGFtcGxlLmNvbSc7DQogICAgICAgICAgICBjb25zdCBpbml0aWFsID0gZGlzcGxheU5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7IA0KICAgICAgICAgICAgY29uc3QgcHJvZmlsZUluaXRpYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZmlsZUluaXRpYWwnKTsgDQogICAgICAgICAgICBpZiAocHJvZmlsZUluaXRpYWwpIHByb2ZpbGVJbml0aWFsLnRleHRDb250ZW50ID0gaW5pdGlhbDsgDQogICAgICAgICAgICBjb25zdCBtZW51UHJvZmlsZUluaXRpYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudVByb2ZpbGVJbml0aWFsJyksIG1lbnVQcm9maWxlTmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51UHJvZmlsZU5hbWUnKSwgbWVudVByb2ZpbGVFbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51UHJvZmlsZUVtYWlsJyk7IA0KICAgICAgICAgICAgaWYgKG1lbnVQcm9maWxlSW5pdGlhbCkgbWVudVByb2ZpbGVJbml0aWFsLnRleHRDb250ZW50ID0gaW5pdGlhbDsgDQogICAgICAgICAgICBpZiAobWVudVByb2ZpbGVOYW1lKSBtZW51UHJvZmlsZU5hbWUudGV4dENvbnRlbnQgPSBkaXNwbGF5TmFtZTsgDQogICAgICAgICAgICBpZiAobWVudVByb2ZpbGVFbWFpbCkgbWVudVByb2ZpbGVFbWFpbC50ZXh0Q29udGVudCA9IGVtYWlsOw0KICAgICAgICAgICAgY29uc3Qgcm9sZUxhYmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVSb2xlTGFiZWwnKTsNCiAgICAgICAgICAgIGlmIChyb2xlTGFiZWwpIHsgcm9sZUxhYmVsLnRleHRDb250ZW50ID0gaXNVc2VyQWRtaW4gPyAnQWRtaW5pc3RyYXRvcicgOiAnQWN0aXZlIFRyYWRlcic7IH0NCiAgICAgICAgICAgIGNvbnN0IHByb2ZpbGVUb3RhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9maWxlVG90YWxCYWxhbmNlJyk7IA0KICAgICAgICAgICAgaWYgKHByb2ZpbGVUb3RhbCkgeyANCiAgICAgICAgICAgICAgICBsZXQgdG90YWwgPSAwOyANCiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjdXJyZW50VXNlci53YWxsZXRzIHx8IHt9KS5mb3JFYWNoKChbYywgd10pID0+IHsgY29uc3QgY3J5cHRvID0gY3J5cHRvRGF0YVtjXTsgdG90YWwgKz0gKHc/LmJhbGFuY2UgfHwgMCkgKiAoY3J5cHRvID8gY3J5cHRvLnByaWNlIDogMSk7IH0pOyANCiAgICAgICAgICAgICAgICBwcm9maWxlVG90YWwudGV4dENvbnRlbnQgPSAnJCcgKyBmb3JtYXRDbGVhbih0b3RhbCwgMik7IA0KICAgICAgICAgICAgfSANCiAgICAgICAgICAgIHRyeSB7IA0KICAgICAgICAgICAgICAgIGNvbnN0IGludkRhdGEgPSBhd2FpdCBhcGlDYWxsKCdpbnZlc3RtZW50cycpOyANCiAgICAgICAgICAgICAgICBjb25zdCBpbnZlc3RtZW50cyA9IGludkRhdGEuaW52ZXN0bWVudHMgfHwgW107IA0KICAgICAgICAgICAgICAgIGxldCB0b3RhbFByb2ZpdFVTRCA9IDA7IA0KICAgICAgICAgICAgICAgIGludmVzdG1lbnRzLmZvckVhY2goaW52ID0+IHsgDQogICAgICAgICAgICAgICAgICAgIHZhciBwcmljZSA9IChjcnlwdG9EYXRhW2ludi5jdXJyZW5jeV0gJiYgY3J5cHRvRGF0YVtpbnYuY3VycmVuY3ldLnByaWNlKSB8fCAxOw0KICAgICAgICAgICAgICAgICAgICB2YXIgYWNjUHJvZml0ID0gaW52LmFjY3VtdWxhdGVkUHJvZml0IHx8IChpbnYuZGFpbHlQcm9maXQgKiBpbnYuZGF5c0VsYXBzZWQpIHx8IDA7DQogICAgICAgICAgICAgICAgICAgIHRvdGFsUHJvZml0VVNEICs9IGFjY1Byb2ZpdCAqIHByaWNlOw0KICAgICAgICAgICAgICAgIH0pOyANCiAgICAgICAgICAgICAgICBjb25zdCBwcm9maWxlSW52ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVJbnZlc3RQcm9maXQnKTsgDQogICAgICAgICAgICAgICAgaWYgKHByb2ZpbGVJbnZlc3QpIHByb2ZpbGVJbnZlc3QudGV4dENvbnRlbnQgPSAnJCcgKyBmb3JtYXRDbGVhbih0b3RhbFByb2ZpdFVTRCwgMik7IA0KICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyANCiAgICAgICAgICAgICAgICBjb25zdCBwcm9maWxlSW52ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVJbnZlc3RQcm9maXQnKTsgDQogICAgICAgICAgICAgICAgaWYgKHByb2ZpbGVJbnZlc3QpIHByb2ZpbGVJbnZlc3QudGV4dENvbnRlbnQgPSAnJDAuMDAnOyANCiAgICAgICAgICAgIH0gDQogICAgICAgIH0NCg0KICAgICAgICB3aW5kb3cub25jbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7IA0KICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ21vZGFsJykpIGV2ZW50LnRhcmdldC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsgDQogICAgICAgICAgICBjb25zdCBwcm9maWxlTWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9maWxlTWVudScpLCBwcm9maWxlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2ZpbGVCdG4nKTsgDQogICAgICAgICAgICBpZiAocHJvZmlsZU1lbnUgJiYgIXByb2ZpbGVNZW51LmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJykgJiYgIXByb2ZpbGVNZW51LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgIXByb2ZpbGVCdG4uY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgcHJvZmlsZU1lbnUuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gZm9ybWF0UGhvbmUoaW5wdXQpIHsgDQogICAgICAgICAgICBsZXQgdmFsID0gaW5wdXQudmFsdWUucmVwbGFjZSgvXEQvZywgJycpOyANCiAgICAgICAgICAgIGlmICh2YWwubGVuZ3RoID49IDYpIGlucHV0LnZhbHVlID0gJygnICsgdmFsLnN1YnN0cmluZygwLDMpICsgJykgJyArIHZhbC5zdWJzdHJpbmcoMyw2KSArICctJyArIHZhbC5zdWJzdHJpbmcoNiwxMCk7IA0KICAgICAgICAgICAgZWxzZSBpZiAodmFsLmxlbmd0aCA+PSAzKSBpbnB1dC52YWx1ZSA9ICcoJyArIHZhbC5zdWJzdHJpbmcoMCwzKSArICcpICcgKyB2YWwuc3Vic3RyaW5nKDMpOyANCiAgICAgICAgICAgIGVsc2UgaW5wdXQudmFsdWUgPSB2YWw7IA0KICAgICAgICB9DQoNCiAgICAgICAgZnVuY3Rpb24gY2hlY2tQYXNzd29yZFN0cmVuZ3RoKHBhc3N3b3JkKSB7IA0KICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkU3RyZW5ndGhDb250YWluZXInKSwgYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkU3RyZW5ndGhCYXInKSwgdGV4dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZFN0cmVuZ3RoVGV4dCcpOyANCiAgICAgICAgICAgIGlmIChwYXNzd29yZC5sZW5ndGggPiAwKSBjb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IA0KICAgICAgICAgICAgZWxzZSB7IGNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyByZXR1cm47IH0gDQogICAgICAgICAgICBjb25zdCBoYXNMZW5ndGggPSBwYXNzd29yZC5sZW5ndGggPj0gOCwgaGFzVXBwZXIgPSAvW0EtWl0vLnRlc3QocGFzc3dvcmQpLCBoYXNMb3dlciA9IC9bYS16XS8udGVzdChwYXNzd29yZCksIGhhc051bWJlciA9IC9bMC05XS8udGVzdChwYXNzd29yZCksIGhhc1NwZWNpYWwgPSAvWyFAIyQlXiYqKCksLj8iOnt9fDw+XS8udGVzdChwYXNzd29yZCk7IA0KICAgICAgICAgICAgdXBkYXRlUmVxdWlyZW1lbnQoJ3JlcS1sZW5ndGgnLCBoYXNMZW5ndGgpOyANCiAgICAgICAgICAgIHVwZGF0ZVJlcXVpcmVtZW50KCdyZXEtdXBwZXInLCBoYXNVcHBlcik7IA0KICAgICAgICAgICAgdXBkYXRlUmVxdWlyZW1lbnQoJ3JlcS1sb3dlcicsIGhhc0xvd2VyKTsgDQogICAgICAgICAgICB1cGRhdGVSZXF1aXJlbWVudCgncmVxLW51bWJlcicsIGhhc051bWJlcik7IA0KICAgICAgICAgICAgdXBkYXRlUmVxdWlyZW1lbnQoJ3JlcS1zcGVjaWFsJywgaGFzU3BlY2lhbCk7IA0KICAgICAgICAgICAgbGV0IHNjb3JlID0gMDsgDQogICAgICAgICAgICBpZiAoaGFzTGVuZ3RoKSBzY29yZSsrOyBpZiAoaGFzVXBwZXIpIHNjb3JlKys7IGlmIChoYXNMb3dlcikgc2NvcmUrKzsgaWYgKGhhc051bWJlcikgc2NvcmUrKzsgaWYgKGhhc1NwZWNpYWwpIHNjb3JlKys7IA0KICAgICAgICAgICAgbGV0IHdpZHRoLCBjb2xvciwgbGFiZWw7IA0KICAgICAgICAgICAgaWYgKHNjb3JlIDw9IDEpIHsgd2lkdGggPSAnMjAlJzsgY29sb3IgPSAnI2VmNDQ0NCc7IGxhYmVsID0gJ1dlYWsnOyB9IA0KICAgICAgICAgICAgZWxzZSBpZiAoc2NvcmUgPT09IDIpIHsgd2lkdGggPSAnNDAlJzsgY29sb3IgPSAnI2Y5NzMxNic7IGxhYmVsID0gJ0ZhaXInOyB9IA0KICAgICAgICAgICAgZWxzZSBpZiAoc2NvcmUgPT09IDMpIHsgd2lkdGggPSAnNjAlJzsgY29sb3IgPSAnI2VhYjMwOCc7IGxhYmVsID0gJ0dvb2QnOyB9IA0KICAgICAgICAgICAgZWxzZSBpZiAoc2NvcmUgPT09IDQpIHsgd2lkdGggPSAnODAlJzsgY29sb3IgPSAnIzIyYzU1ZSc7IGxhYmVsID0gJ1N0cm9uZyc7IH0gDQogICAgICAgICAgICBlbHNlIHsgd2lkdGggPSAnMTAwJSc7IGNvbG9yID0gJyMxMGI5ODEnOyBsYWJlbCA9ICdWZXJ5IFN0cm9uZyc7IH0gDQogICAgICAgICAgICBiYXIuc3R5bGUud2lkdGggPSB3aWR0aDsgYmFyLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yOyB0ZXh0LnRleHRDb250ZW50ID0gbGFiZWw7IHRleHQuc3R5bGUuY29sb3IgPSBjb2xvcjsgDQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiB1cGRhdGVSZXF1aXJlbWVudChpZCwgbWV0KSB7IA0KICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7IA0KICAgICAgICAgICAgaWYgKGVsKSB7IA0KICAgICAgICAgICAgICAgIGlmIChtZXQpIHsgZWwuY2xhc3NMaXN0LnJlbW92ZSgndGV4dC1ncmF5LTUwMCcpOyBlbC5jbGFzc0xpc3QuYWRkKCd0ZXh0LWVtZXJhbGQtNDAwJyk7IGVsLnF1ZXJ5U2VsZWN0b3IoJ2knKS5jbGFzc05hbWUgPSAnZmFzIGZhLWNoZWNrIHRleHQtWzhweF0nOyB9IA0KICAgICAgICAgICAgICAgIGVsc2UgeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCd0ZXh0LWVtZXJhbGQtNDAwJyk7IGVsLmNsYXNzTGlzdC5hZGQoJ3RleHQtZ3JheS01MDAnKTsgZWwucXVlcnlTZWxlY3RvcignaScpLmNsYXNzTmFtZSA9ICdmYXMgZmEtY2lyY2xlIHRleHQtWzZweF0nOyB9IA0KICAgICAgICAgICAgfSANCiAgICAgICAgfQ0KDQogICAgICAgIC8vID09PT09PT09PT0gUFJPRkVTU0lPTkFMIEJBQ0tHUk9VTkQgQU5JTUFUSU9OID09PT09PT09PT0NCiAgICAgICAgKGZ1bmN0aW9uIGluaXRDcnlwdG9CZygpIHsNCiAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZ0NhbnZhcycpOw0KICAgICAgICAgICAgaWYgKCFjYW52YXMpIHJldHVybjsNCiAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgbGV0IFcsIEg7DQoNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsNCiAgICAgICAgICAgICAgICBjb25zdCBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxOw0KICAgICAgICAgICAgICAgIFcgPSBjYW52YXMub2Zmc2V0V2lkdGggfHwgd2luZG93LmlubmVyV2lkdGg7DQogICAgICAgICAgICAgICAgSCA9IGNhbnZhcy5vZmZzZXRIZWlnaHQgfHwgd2luZG93LmlubmVySGVpZ2h0Ow0KICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IFcgKiBkcHI7DQogICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IEggKiBkcHI7DQogICAgICAgICAgICAgICAgY3R4LnNldFRyYW5zZm9ybShkcHIsIDAsIDAsIGRwciwgMCwgMCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXNpemUoKTsNCiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXNpemUpOw0KDQogICAgICAgICAgICAvLyBTdWJ0bGUgcGFydGljbGVzIHRoYXQgZHJpZnQgc2xvd2x5DQogICAgICAgICAgICBjbGFzcyBQYXJ0aWNsZSB7DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7IHRoaXMucmVzZXQoKTsgfQ0KICAgICAgICAgICAgICAgIHJlc2V0KCkgeyB0aGlzLnggPSBNYXRoLnJhbmRvbSgpICogVzsgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEg7IHRoaXMudnggPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiAwLjE1OyB0aGlzLnZ5ID0gKE1hdGgucmFuZG9tKCkgLSAwLjUpICogMC4xNTsgdGhpcy5yID0gTWF0aC5yYW5kb20oKSAqIDEuMiArIDAuMzsgdGhpcy5hbHBoYSA9IE1hdGgucmFuZG9tKCkgKiAwLjMgKyAwLjE7IH0NCiAgICAgICAgICAgICAgICB1cGRhdGUoKSB7IHRoaXMueCArPSB0aGlzLnZ4OyB0aGlzLnkgKz0gdGhpcy52eTsgaWYgKHRoaXMueCA8IC0yMCB8fCB0aGlzLnggPiBXICsgMjAgfHwgdGhpcy55IDwgLTIwIHx8IHRoaXMueSA+IEggKyAyMCkgdGhpcy5yZXNldCgpOyB9DQogICAgICAgICAgICAgICAgZHJhdygpIHsgY3R4LmJlZ2luUGF0aCgpOyBjdHguYXJjKHRoaXMueCwgdGhpcy55LCB0aGlzLnIsIDAsIE1hdGguUEkgKiAyKTsgY3R4LmZpbGxTdHlsZSA9IGByZ2JhKDI1NSwyNTUsMjU1LCR7dGhpcy5hbHBoYX0pYDsgY3R4LmZpbGwoKTsgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgUEFSVElDTEVfQ09VTlQgPSBNYXRoLm1pbig1MCwgTWF0aC5mbG9vcigoVyAqIEgpIC8gMjUwMDApKTsNCiAgICAgICAgICAgIGNvbnN0IHBhcnRpY2xlcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IFBBUlRJQ0xFX0NPVU5UIH0sICgpID0+IG5ldyBQYXJ0aWNsZSgpKTsNCg0KICAgICAgICAgICAgLy8gRmxvd2luZyBwcmljZSBjaGFydCBsaW5lcyAoc3BhcmtsaW5lcykNCiAgICAgICAgICAgIGNsYXNzIFNwYXJrTGluZSB7DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7IHRoaXMucmVzZXQoKTsgfQ0KICAgICAgICAgICAgICAgIHJlc2V0KCkgew0KICAgICAgICAgICAgICAgICAgICB0aGlzLnggPSBNYXRoLnJhbmRvbSgpICogVzsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEggKiAwLjggKyBIICogMC4xOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLnZ4ID0gKE1hdGgucmFuZG9tKCkgKyAwLjMpICogMC4zOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5yYW5kb20oKSAqIDE4MCArIDEyMDsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludHMgPSBbXTsNCiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbCA9IE1hdGgucmFuZG9tKCkgKiAzMCArIDEwOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGVwcyA9IDMwOw0KICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBzdGVwczsgaSsrKSB7IHZhbCArPSAoTWF0aC5yYW5kb20oKSAtIDAuNDgpICogNjsgdGhpcy5wb2ludHMucHVzaCh2YWwpOyB9DQogICAgICAgICAgICAgICAgICAgIHRoaXMuaXNVcCA9IHRoaXMucG9pbnRzW3RoaXMucG9pbnRzLmxlbmd0aCAtIDFdID49IHRoaXMucG9pbnRzWzBdOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmFscGhhID0gTWF0aC5yYW5kb20oKSAqIDAuMDYgKyAwLjAzOw0KICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmVXaWR0aCA9IE1hdGgucmFuZG9tKCkgKiAwLjggKyAwLjQ7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHVwZGF0ZSgpIHsgdGhpcy54ICs9IHRoaXMudng7IGlmICh0aGlzLnggPiBXICsgdGhpcy53aWR0aCkgeyB0aGlzLnggPSAtdGhpcy53aWR0aDsgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEggKiAwLjggKyBIICogMC4xOyB0aGlzLnJlc2V0KCk7IH0gfQ0KICAgICAgICAgICAgICAgIGRyYXcoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKC4uLnRoaXMucG9pbnRzKSwgbWF4ID0gTWF0aC5tYXgoLi4udGhpcy5wb2ludHMpLCByYW5nZSA9IG1heCAtIG1pbiB8fCAxOw0KICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IHRoaXMuaXNVcCA/ICcxNiwgMTg1LCAxMjknIDogJzI0NCwgNjMsIDk0JzsNCiAgICAgICAgICAgICAgICAgICAgLy8gTGluZQ0KICAgICAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHsgY29uc3QgcHggPSB0aGlzLnggKyAoaSAvICh0aGlzLnBvaW50cy5sZW5ndGggLSAxKSkgKiB0aGlzLndpZHRoOyBjb25zdCBweSA9IHRoaXMueSAtICgocCAtIG1pbikgLyByYW5nZSkgKiAyMDsgaWYgKGkgPT09IDApIGN0eC5tb3ZlVG8ocHgsIHB5KTsgZWxzZSBjdHgubGluZVRvKHB4LCBweSk7IH0pOw0KICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke3RoaXMuYWxwaGF9KWA7IGN0eC5saW5lV2lkdGggPSB0aGlzLmxpbmVXaWR0aDsgY3R4LnN0cm9rZSgpOw0KICAgICAgICAgICAgICAgICAgICAvLyBBcmVhIGZpbGwNCiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFggPSB0aGlzLnggKyB0aGlzLndpZHRoOw0KICAgICAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRzLmZvckVhY2goKHAsIGkpID0+IHsgY29uc3QgcHggPSB0aGlzLnggKyAoaSAvICh0aGlzLnBvaW50cy5sZW5ndGggLSAxKSkgKiB0aGlzLndpZHRoOyBjb25zdCBweSA9IHRoaXMueSAtICgocCAtIG1pbikgLyByYW5nZSkgKiAyMDsgaWYgKGkgPT09IDApIGN0eC5tb3ZlVG8ocHgsIHB5KTsgZWxzZSBjdHgubGluZVRvKHB4LCBweSk7IH0pOw0KICAgICAgICAgICAgICAgICAgICBjdHgubGluZVRvKGxhc3RYLCB0aGlzLnkgKyA4KTsgY3R4LmxpbmVUbyh0aGlzLngsIHRoaXMueSArIDgpOyBjdHguY2xvc2VQYXRoKCk7DQogICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke3RoaXMuYWxwaGEgKiAwLjN9KWA7IGN0eC5maWxsKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgU1BBUktfQ09VTlQgPSBNYXRoLm1pbigxNSwgTWF0aC5mbG9vcigoVyAqIEgpIC8gNjAwMDApKTsNCiAgICAgICAgICAgIGNvbnN0IHNwYXJrbGluZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBTUEFSS19DT1VOVCB9LCAoKSA9PiBuZXcgU3BhcmtMaW5lKCkpOw0KDQogICAgICAgICAgICAvLyBDb25uZWN0aW9uIGxpbmVzIGJldHdlZW4gbmVhcmJ5IHBhcnRpY2xlcw0KICAgICAgICAgICAgZnVuY3Rpb24gZHJhd0Nvbm5lY3Rpb25zKCkgew0KICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydGljbGVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IHBhcnRpY2xlcy5sZW5ndGg7IGorKykgew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHggPSBwYXJ0aWNsZXNbaV0ueCAtIHBhcnRpY2xlc1tqXS54LCBkeSA9IHBhcnRpY2xlc1tpXS55IC0gcGFydGljbGVzW2pdLnk7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0ID0gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgMTQwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOyBjdHgubW92ZVRvKHBhcnRpY2xlc1tpXS54LCBwYXJ0aWNsZXNbaV0ueSk7IGN0eC5saW5lVG8ocGFydGljbGVzW2pdLngsIHBhcnRpY2xlc1tqXS55KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgxMDAsMTUwLDI1NSwkezAuMDYgKiAoMSAtIGRpc3QgLyAxNDApfSlgOyBjdHgubGluZVdpZHRoID0gMC41OyBjdHguc3Ryb2tlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIFN1YnRsZSBtb3ZpbmcgYWNjZW50IGRvdHMNCiAgICAgICAgICAgIGNsYXNzIEFjY2VudERvdCB7DQogICAgICAgICAgICAgICAgY29uc3RydWN0b3IoKSB7IHRoaXMucmVzZXQoKTsgfQ0KICAgICAgICAgICAgICAgIHJlc2V0KCkgeyB0aGlzLnggPSBNYXRoLnJhbmRvbSgpICogVzsgdGhpcy55ID0gTWF0aC5yYW5kb20oKSAqIEg7IHRoaXMudnggPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiAwLjI7IHRoaXMudnkgPSAoTWF0aC5yYW5kb20oKSAtIDAuNSkgKiAwLjI7IHRoaXMuciA9IE1hdGgucmFuZG9tKCkgKiAyICsgMTsgdGhpcy5jb2xvciA9IFsnNTksIDEzMCwgMjQ2JywgJzE2LCAxODUsIDEyOScsICcxMzksIDkyLCAyNDYnXVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzKV07IHRoaXMuYWxwaGEgPSBNYXRoLnJhbmRvbSgpICogMC4xNSArIDAuMDg7IHRoaXMucHVsc2UgPSBNYXRoLnJhbmRvbSgpICogTWF0aC5QSSAqIDI7IH0NCiAgICAgICAgICAgICAgICB1cGRhdGUoKSB7IHRoaXMueCArPSB0aGlzLnZ4OyB0aGlzLnkgKz0gdGhpcy52eTsgdGhpcy5wdWxzZSArPSAwLjAyOyBpZiAodGhpcy54IDwgLTIwIHx8IHRoaXMueCA+IFcgKyAyMCB8fCB0aGlzLnkgPCAtMjAgfHwgdGhpcy55ID4gSCArIDIwKSB0aGlzLnJlc2V0KCk7IH0NCiAgICAgICAgICAgICAgICBkcmF3KCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhpcy5hbHBoYSAqICgwLjcgKyBNYXRoLnNpbih0aGlzLnB1bHNlKSAqIDAuMyk7DQogICAgICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTsgY3R4LmFyYyh0aGlzLngsIHRoaXMueSwgdGhpcy5yLCAwLCBNYXRoLlBJICogMik7DQogICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiYSgke3RoaXMuY29sb3J9LCR7YX0pYDsgY3R4LnNoYWRvd0NvbG9yID0gYHJnYmEoJHt0aGlzLmNvbG9yfSwwLjQpYDsgY3R4LnNoYWRvd0JsdXIgPSA4OyBjdHguZmlsbCgpOyBjdHguc2hhZG93Qmx1ciA9IDA7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29uc3QgQUNDRU5UX0NPVU5UID0gTWF0aC5taW4oOCwgTWF0aC5mbG9vcigoVyAqIEgpIC8gMTAwMDAwKSk7DQogICAgICAgICAgICBjb25zdCBhY2NlbnRzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogQUNDRU5UX0NPVU5UIH0sICgpID0+IG5ldyBBY2NlbnREb3QoKSk7DQoNCiAgICAgICAgICAgIGZ1bmN0aW9uIGFuaW1hdGUoKSB7DQogICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBXLCBIKTsNCiAgICAgICAgICAgICAgICBzcGFya2xpbmVzLmZvckVhY2gocyA9PiB7IHMudXBkYXRlKCk7IHMuZHJhdygpOyB9KTsNCiAgICAgICAgICAgICAgICBkcmF3Q29ubmVjdGlvbnMoKTsNCiAgICAgICAgICAgICAgICBwYXJ0aWNsZXMuZm9yRWFjaChwID0+IHsgcC51cGRhdGUoKTsgcC5kcmF3KCk7IH0pOw0KICAgICAgICAgICAgICAgIGFjY2VudHMuZm9yRWFjaChhID0+IHsgYS51cGRhdGUoKTsgYS5kcmF3KCk7IH0pOw0KICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGFuaW1hdGUoKTsNCiAgICAgICAgfSkoKTsNCiAgICA8L3NjcmlwdD4NCjwvYm9keT4NCjwvaHRtbD4NCg0K"}},"time_used":226,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":98,"receive":128,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
